window._wpemojiSettings = {
    "baseUrl": "https:\/\/s.w.org\/images\/core\/emoji\/15.1.0\/72x72\/",
    "ext": ".png",
    "svgUrl": "https:\/\/s.w.org\/images\/core\/emoji\/15.1.0\/svg\/",
    "svgExt": ".svg",
    "source": {
        "concatemoji": "https:\/\/floorltech.com\/wp-includes\/js\/wp-emoji-release.min.js?ver=6.8"
    }
};
/*! This file is auto-generated */
! function(i, n) {
    var o, s, e;

    function c(e) {
        try {
            var t = {
                supportTests: e,
                timestamp: (new Date).valueOf()
            };
            sessionStorage.setItem(o, JSON.stringify(t))
        } catch (e) {}
    }

    function p(e, t, n) {
        e.clearRect(0, 0, e.canvas.width, e.canvas.height), e.fillText(t, 0, 0);
        var t = new Uint32Array(e.getImageData(0, 0, e.canvas.width, e.canvas.height).data),
            r = (e.clearRect(0, 0, e.canvas.width, e.canvas.height), e.fillText(n, 0, 0), new Uint32Array(e.getImageData(0, 0, e.canvas.width, e.canvas.height).data));
        return t.every(function(e, t) {
            return e === r[t]
        })
    }

    function u(e, t, n) {
        switch (t) {
            case "flag":
                return n(e, "\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f", "\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f") ? !1 : !n(e, "\ud83c\uddfa\ud83c\uddf3", "\ud83c\uddfa\u200b\ud83c\uddf3") && !n(e, "\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f", "\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");
            case "emoji":
                return !n(e, "\ud83d\udc26\u200d\ud83d\udd25", "\ud83d\udc26\u200b\ud83d\udd25")
        }
        return !1
    }

    function f(e, t, n) {
        var r = "undefined" != typeof WorkerGlobalScope && self instanceof WorkerGlobalScope ? new OffscreenCanvas(300, 150) : i.createElement("canvas"),
            a = r.getContext("2d", {
                willReadFrequently: !0
            }),
            o = (a.textBaseline = "top", a.font = "600 32px Arial", {});
        return e.forEach(function(e) {
            o[e] = t(a, e, n)
        }), o
    }

    function t(e) {
        var t = i.createElement("script");
        t.src = e, t.defer = !0, i.head.appendChild(t)
    }
    "undefined" != typeof Promise && (o = "wpEmojiSettingsSupports", s = ["flag", "emoji"], n.supports = {
        everything: !0,
        everythingExceptFlag: !0
    }, e = new Promise(function(e) {
        i.addEventListener("DOMContentLoaded", e, {
            once: !0
        })
    }), new Promise(function(t) {
        var n = function() {
            try {
                var e = JSON.parse(sessionStorage.getItem(o));
                if ("object" == typeof e && "number" == typeof e.timestamp && (new Date).valueOf() < e.timestamp + 604800 && "object" == typeof e.supportTests) return e.supportTests
            } catch (e) {}
            return null
        }();
        if (!n) {
            if ("undefined" != typeof Worker && "undefined" != typeof OffscreenCanvas && "undefined" != typeof URL && URL.createObjectURL && "undefined" != typeof Blob) try {
                var e = "postMessage(" + f.toString() + "(" + [JSON.stringify(s), u.toString(), p.toString()].join(",") + "));",
                    r = new Blob([e], {
                        type: "text/javascript"
                    }),
                    a = new Worker(URL.createObjectURL(r), {
                        name: "wpTestEmojiSupports"
                    });
                return void(a.onmessage = function(e) {
                    c(n = e.data), a.terminate(), t(n)
                })
            } catch (e) {}
            c(n = f(s, u, p))
        }
        t(n)
    }).then(function(e) {
        for (var t in e) n.supports[t] = e[t], n.supports.everything = n.supports.everything && n.supports[t], "flag" !== t && (n.supports.everythingExceptFlag = n.supports.everythingExceptFlag && n.supports[t]);
        n.supports.everythingExceptFlag = n.supports.everythingExceptFlag && !n.supports.flag, n.DOMReady = !1, n.readyCallback = function() {
            n.DOMReady = !0
        }
    }).then(function() {
        return e
    }).then(function() {
        var e;
        n.supports.everything || (n.readyCallback(), (e = n.source || {}).concatemoji ? t(e.concatemoji) : e.wpemoji && e.twemoji && (t(e.twemoji), t(e.wpemoji)))
    }))
}((window, document), window._wpemojiSettings); /*! jQuery v3.7.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */
! 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(ie, e) {
    "use strict";
    var oe = [],
        r = Object.getPrototypeOf,
        ae = oe.slice,
        g = oe.flat ? function(e) {
            return oe.flat.call(e)
        } : function(e) {
            return oe.concat.apply([], e)
        },
        s = oe.push,
        se = oe.indexOf,
        n = {},
        i = n.toString,
        ue = n.hasOwnProperty,
        o = ue.toString,
        a = o.call(Object),
        le = {},
        v = function(e) {
            return "function" == typeof e && "number" != typeof e.nodeType && "function" != typeof e.item
        },
        y = function(e) {
            return null != e && e === e.window
        },
        C = ie.document,
        u = {
            type: !0,
            src: !0,
            nonce: !0,
            noModule: !0
        };

    function m(e, t, n) {
        var r, i, o = (n = n || C).createElement("script");
        if (o.text = e, t)
            for (r in u)(i = t[r] || t.getAttribute && t.getAttribute(r)) && o.setAttribute(r, i);
        n.head.appendChild(o).parentNode.removeChild(o)
    }

    function x(e) {
        return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? n[i.call(e)] || "object" : typeof e
    }
    var t = "3.7.1",
        l = /HTML$/i,
        ce = function(e, t) {
            return new ce.fn.init(e, t)
        };

    function c(e) {
        var t = !!e && "length" in e && e.length,
            n = x(e);
        return !v(e) && !y(e) && ("array" === n || 0 === t || "number" == typeof t && 0 < t && t - 1 in e)
    }

    function fe(e, t) {
        return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase()
    }
    ce.fn = ce.prototype = {
        jquery: t,
        constructor: ce,
        length: 0,
        toArray: function() {
            return ae.call(this)
        },
        get: function(e) {
            return null == e ? ae.call(this) : e < 0 ? this[e + this.length] : this[e]
        },
        pushStack: function(e) {
            var t = ce.merge(this.constructor(), e);
            return t.prevObject = this, t
        },
        each: function(e) {
            return ce.each(this, e)
        },
        map: function(n) {
            return this.pushStack(ce.map(this, function(e, t) {
                return n.call(e, t, e)
            }))
        },
        slice: function() {
            return this.pushStack(ae.apply(this, arguments))
        },
        first: function() {
            return this.eq(0)
        },
        last: function() {
            return this.eq(-1)
        },
        even: function() {
            return this.pushStack(ce.grep(this, function(e, t) {
                return (t + 1) % 2
            }))
        },
        odd: function() {
            return this.pushStack(ce.grep(this, function(e, t) {
                return t % 2
            }))
        },
        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: s,
        sort: oe.sort,
        splice: oe.splice
    }, ce.extend = ce.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 || v(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 && (ce.isPlainObject(r) || (i = Array.isArray(r))) ? (n = a[t], o = i && !Array.isArray(n) ? [] : i || ce.isPlainObject(n) ? n : {}, i = !1, a[t] = ce.extend(l, o, r)) : void 0 !== r && (a[t] = r));
        return a
    }, ce.extend({
        expando: "jQuery" + (t + 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]" !== i.call(e)) && (!(t = r(e)) || "function" == typeof(n = ue.call(t, "constructor") && t.constructor) && o.call(n) === a)
        },
        isEmptyObject: function(e) {
            var t;
            for (t in e) return !1;
            return !0
        },
        globalEval: function(e, t, n) {
            m(e, {
                nonce: t && t.nonce
            }, n)
        },
        each: function(e, t) {
            var n, r = 0;
            if (c(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
        },
        text: function(e) {
            var t, n = "",
                r = 0,
                i = e.nodeType;
            if (!i)
                while (t = e[r++]) n += ce.text(t);
            return 1 === i || 11 === i ? e.textContent : 9 === i ? e.documentElement.textContent : 3 === i || 4 === i ? e.nodeValue : n
        },
        makeArray: function(e, t) {
            var n = t || [];
            return null != e && (c(Object(e)) ? ce.merge(n, "string" == typeof e ? [e] : e) : s.call(n, e)), n
        },
        inArray: function(e, t, n) {
            return null == t ? -1 : se.call(t, e, n)
        },
        isXMLDoc: function(e) {
            var t = e && e.namespaceURI,
                n = e && (e.ownerDocument || e).documentElement;
            return !l.test(t || n && n.nodeName || "HTML")
        },
        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 (c(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(a)
        },
        guid: 1,
        support: le
    }), "function" == typeof Symbol && (ce.fn[Symbol.iterator] = oe[Symbol.iterator]), ce.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function(e, t) {
        n["[object " + t + "]"] = t.toLowerCase()
    });
    var pe = oe.pop,
        de = oe.sort,
        he = oe.splice,
        ge = "[\\x20\\t\\r\\n\\f]",
        ve = new RegExp("^" + ge + "+|((?:^|[^\\\\])(?:\\\\.)*)" + ge + "+$", "g");
    ce.contains = function(e, t) {
        var n = t && t.parentNode;
        return e === n || !(!n || 1 !== n.nodeType || !(e.contains ? e.contains(n) : e.compareDocumentPosition && 16 & e.compareDocumentPosition(n)))
    };
    var f = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g;

    function p(e, t) {
        return t ? "\0" === e ? "\ufffd" : e.slice(0, -1) + "\\" + e.charCodeAt(e.length - 1).toString(16) + " " : "\\" + e
    }
    ce.escapeSelector = function(e) {
        return (e + "").replace(f, p)
    };
    var ye = C,
        me = s;
    ! function() {
        var e, b, w, o, a, T, r, C, d, i, k = me,
            S = ce.expando,
            E = 0,
            n = 0,
            s = W(),
            c = W(),
            u = W(),
            h = W(),
            l = function(e, t) {
                return e === t && (a = !0), 0
            },
            f = "checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",
            t = "(?:\\\\[\\da-fA-F]{1,6}" + ge + "?|\\\\[^\\r\\n\\f]|[\\w-]|[^\0-\\x7f])+",
            p = "\\[" + ge + "*(" + t + ")(?:" + ge + "*([*^$|!~]?=)" + ge + "*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|(" + t + "))|)" + ge + "*\\]",
            g = ":(" + t + ")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|" + p + ")*)|.*)\\)|)",
            v = new RegExp(ge + "+", "g"),
            y = new RegExp("^" + ge + "*," + ge + "*"),
            m = new RegExp("^" + ge + "*([>+~]|" + ge + ")" + ge + "*"),
            x = new RegExp(ge + "|>"),
            j = new RegExp(g),
            A = new RegExp("^" + t + "$"),
            D = {
                ID: new RegExp("^#(" + t + ")"),
                CLASS: new RegExp("^\\.(" + t + ")"),
                TAG: new RegExp("^(" + t + "|[*])"),
                ATTR: new RegExp("^" + p),
                PSEUDO: new RegExp("^" + g),
                CHILD: new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\(" + ge + "*(even|odd|(([+-]|)(\\d*)n|)" + ge + "*(?:([+-]|)" + ge + "*(\\d+)|))" + ge + "*\\)|)", "i"),
                bool: new RegExp("^(?:" + f + ")$", "i"),
                needsContext: new RegExp("^" + ge + "*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\(" + ge + "*((?:-\\d)?\\d*)" + ge + "*\\)|)(?=[^-]|$)", "i")
            },
            N = /^(?:input|select|textarea|button)$/i,
            q = /^h\d$/i,
            L = /^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,
            H = /[+~]/,
            O = new RegExp("\\\\[\\da-fA-F]{1,6}" + ge + "?|\\\\([^\\r\\n\\f])", "g"),
            P = function(e, t) {
                var n = "0x" + e.slice(1) - 65536;
                return t || (n < 0 ? String.fromCharCode(n + 65536) : String.fromCharCode(n >> 10 | 55296, 1023 & n | 56320))
            },
            M = function() {
                V()
            },
            R = J(function(e) {
                return !0 === e.disabled && fe(e, "fieldset")
            }, {
                dir: "parentNode",
                next: "legend"
            });
        try {
            k.apply(oe = ae.call(ye.childNodes), ye.childNodes), oe[ye.childNodes.length].nodeType
        } catch (e) {
            k = {
                apply: function(e, t) {
                    me.apply(e, ae.call(t))
                },
                call: function(e) {
                    me.apply(e, ae.call(arguments, 1))
                }
            }
        }

        function I(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 && (V(e), e = e || T, C)) {
                if (11 !== p && (u = L.exec(t)))
                    if (i = u[1]) {
                        if (9 === p) {
                            if (!(a = e.getElementById(i))) return n;
                            if (a.id === i) return k.call(n, a), n
                        } else if (f && (a = f.getElementById(i)) && I.contains(e, a) && a.id === i) return k.call(n, a), n
                    } else {
                        if (u[2]) return k.apply(n, e.getElementsByTagName(t)), n;
                        if ((i = u[3]) && e.getElementsByClassName) return k.apply(n, e.getElementsByClassName(i)), n
                    }
                if (!(h[t + " "] || d && d.test(t))) {
                    if (c = t, f = e, 1 === p && (x.test(t) || m.test(t))) {
                        (f = H.test(t) && U(e.parentNode) || e) == e && le.scope || ((s = e.getAttribute("id")) ? s = ce.escapeSelector(s) : e.setAttribute("id", s = S)), o = (l = Y(t)).length;
                        while (o--) l[o] = (s ? "#" + s : ":scope") + " " + Q(l[o]);
                        c = l.join(",")
                    }
                    try {
                        return k.apply(n, f.querySelectorAll(c)), n
                    } catch (e) {
                        h(t, !0)
                    } finally {
                        s === S && e.removeAttribute("id")
                    }
                }
            }
            return re(t.replace(ve, "$1"), e, n, r)
        }

        function W() {
            var r = [];
            return function e(t, n) {
                return r.push(t + " ") > b.cacheLength && delete e[r.shift()], e[t + " "] = n
            }
        }

        function F(e) {
            return e[S] = !0, e
        }

        function $(e) {
            var t = T.createElement("fieldset");
            try {
                return !!e(t)
            } catch (e) {
                return !1
            } finally {
                t.parentNode && t.parentNode.removeChild(t), t = null
            }
        }

        function B(t) {
            return function(e) {
                return fe(e, "input") && e.type === t
            }
        }

        function _(t) {
            return function(e) {
                return (fe(e, "input") || fe(e, "button")) && e.type === t
            }
        }

        function z(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 && R(e) === t : e.disabled === t : "label" in e && e.disabled === t
            }
        }

        function X(a) {
            return F(function(o) {
                return o = +o, F(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 U(e) {
            return e && "undefined" != typeof e.getElementsByTagName && e
        }

        function V(e) {
            var t, n = e ? e.ownerDocument || e : ye;
            return n != T && 9 === n.nodeType && n.documentElement && (r = (T = n).documentElement, C = !ce.isXMLDoc(T), i = r.matches || r.webkitMatchesSelector || r.msMatchesSelector, r.msMatchesSelector && ye != T && (t = T.defaultView) && t.top !== t && t.addEventListener("unload", M), le.getById = $(function(e) {
                return r.appendChild(e).id = ce.expando, !T.getElementsByName || !T.getElementsByName(ce.expando).length
            }), le.disconnectedMatch = $(function(e) {
                return i.call(e, "*")
            }), le.scope = $(function() {
                return T.querySelectorAll(":scope")
            }), le.cssHas = $(function() {
                try {
                    return T.querySelector(":has(*,:jqfake)"), !1
                } catch (e) {
                    return !0
                }
            }), le.getById ? (b.filter.ID = function(e) {
                var t = e.replace(O, P);
                return function(e) {
                    return e.getAttribute("id") === t
                }
            }, b.find.ID = function(e, t) {
                if ("undefined" != typeof t.getElementById && C) {
                    var n = t.getElementById(e);
                    return n ? [n] : []
                }
            }) : (b.filter.ID = function(e) {
                var n = e.replace(O, P);
                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 && C) {
                    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 = function(e, t) {
                return "undefined" != typeof t.getElementsByTagName ? t.getElementsByTagName(e) : t.querySelectorAll(e)
            }, b.find.CLASS = function(e, t) {
                if ("undefined" != typeof t.getElementsByClassName && C) return t.getElementsByClassName(e)
            }, d = [], $(function(e) {
                var t;
                r.appendChild(e).innerHTML = "<a id='" + S + "' href='' disabled='disabled'></a><select id='" + S + "-\r\\' disabled='disabled'><option selected=''></option></select>", e.querySelectorAll("[selected]").length || d.push("\\[" + ge + "*(?:value|" + f + ")"), e.querySelectorAll("[id~=" + S + "-]").length || d.push("~="), e.querySelectorAll("a#" + S + "+*").length || d.push(".#.+[+~]"), e.querySelectorAll(":checked").length || d.push(":checked"), (t = T.createElement("input")).setAttribute("type", "hidden"), e.appendChild(t).setAttribute("name", "D"), r.appendChild(e).disabled = !0, 2 !== e.querySelectorAll(":disabled").length && d.push(":enabled", ":disabled"), (t = T.createElement("input")).setAttribute("name", ""), e.appendChild(t), e.querySelectorAll("[name='']").length || d.push("\\[" + ge + "*name" + ge + "*=" + ge + "*(?:''|\"\")")
            }), le.cssHas || d.push(":has"), d = d.length && new RegExp(d.join("|")), l = function(e, t) {
                if (e === t) return a = !0, 0;
                var n = !e.compareDocumentPosition - !t.compareDocumentPosition;
                return n || (1 & (n = (e.ownerDocument || e) == (t.ownerDocument || t) ? e.compareDocumentPosition(t) : 1) || !le.sortDetached && t.compareDocumentPosition(e) === n ? e === T || e.ownerDocument == ye && I.contains(ye, e) ? -1 : t === T || t.ownerDocument == ye && I.contains(ye, t) ? 1 : o ? se.call(o, e) - se.call(o, t) : 0 : 4 & n ? -1 : 1)
            }), T
        }
        for (e in I.matches = function(e, t) {
                return I(e, null, null, t)
            }, I.matchesSelector = function(e, t) {
                if (V(e), C && !h[t + " "] && (!d || !d.test(t))) try {
                    var n = i.call(e, t);
                    if (n || le.disconnectedMatch || e.document && 11 !== e.document.nodeType) return n
                } catch (e) {
                    h(t, !0)
                }
                return 0 < I(t, T, null, [e]).length
            }, I.contains = function(e, t) {
                return (e.ownerDocument || e) != T && V(e), ce.contains(e, t)
            }, I.attr = function(e, t) {
                (e.ownerDocument || e) != T && V(e);
                var n = b.attrHandle[t.toLowerCase()],
                    r = n && ue.call(b.attrHandle, t.toLowerCase()) ? n(e, t, !C) : void 0;
                return void 0 !== r ? r : e.getAttribute(t)
            }, I.error = function(e) {
                throw new Error("Syntax error, unrecognized expression: " + e)
            }, ce.uniqueSort = function(e) {
                var t, n = [],
                    r = 0,
                    i = 0;
                if (a = !le.sortStable, o = !le.sortStable && ae.call(e, 0), de.call(e, l), a) {
                    while (t = e[i++]) t === e[i] && (r = n.push(i));
                    while (r--) he.call(e, n[r], 1)
                }
                return o = null, e
            }, ce.fn.uniqueSort = function() {
                return this.pushStack(ce.uniqueSort(ae.apply(this)))
            }, (b = ce.expr = {
                cacheLength: 50,
                createPseudo: F,
                match: D,
                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(O, P), e[3] = (e[3] || e[4] || e[5] || "").replace(O, P), "~=" === 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] || I.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] && I.error(e[0]), e
                    },
                    PSEUDO: function(e) {
                        var t, n = !e[6] && e[2];
                        return D.CHILD.test(e[0]) ? null : (e[3] ? e[2] = e[4] || e[5] || "" : n && j.test(n) && (t = Y(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(O, P).toLowerCase();
                        return "*" === e ? function() {
                            return !0
                        } : function(e) {
                            return fe(e, t)
                        }
                    },
                    CLASS: function(e) {
                        var t = s[e + " "];
                        return t || (t = new RegExp("(^|" + ge + ")" + e + "(" + ge + "|$)")) && s(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 = I.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(v, " ") + " ").indexOf(i) : "|=" === r && (t === i || t.slice(0, i.length + 1) === i + "-"))
                        }
                    },
                    CHILD: function(d, e, t, h, g) {
                        var v = "nth" !== d.slice(0, 3),
                            y = "last" !== d.slice(-4),
                            m = "of-type" === e;
                        return 1 === h && 0 === g ? function(e) {
                            return !!e.parentNode
                        } : function(e, t, n) {
                            var r, i, o, a, s, u = v !== y ? "nextSibling" : "previousSibling",
                                l = e.parentNode,
                                c = m && e.nodeName.toLowerCase(),
                                f = !n && !m,
                                p = !1;
                            if (l) {
                                if (v) {
                                    while (u) {
                                        o = e;
                                        while (o = o[u])
                                            if (m ? fe(o, c) : 1 === o.nodeType) return !1;
                                        s = u = "only" === d && !s && "nextSibling"
                                    }
                                    return !0
                                }
                                if (s = [y ? l.firstChild : l.lastChild], y && f) {
                                    p = (a = (r = (i = l[S] || (l[S] = {}))[d] || [])[0] === E && r[1]) && r[2], o = a && l.childNodes[a];
                                    while (o = ++a && o && o[u] || (p = a = 0) || s.pop())
                                        if (1 === o.nodeType && ++p && o === e) {
                                            i[d] = [E, a, p];
                                            break
                                        }
                                } else if (f && (p = a = (r = (i = e[S] || (e[S] = {}))[d] || [])[0] === E && r[1]), !1 === p)
                                    while (o = ++a && o && o[u] || (p = a = 0) || s.pop())
                                        if ((m ? fe(o, c) : 1 === o.nodeType) && ++p && (f && ((i = o[S] || (o[S] = {}))[d] = [E, p]), o === e)) break;
                                return (p -= g) === h || p % h == 0 && 0 <= p / h
                            }
                        }
                    },
                    PSEUDO: function(e, o) {
                        var t, a = b.pseudos[e] || b.setFilters[e.toLowerCase()] || I.error("unsupported pseudo: " + e);
                        return a[S] ? a(o) : 1 < a.length ? (t = [e, e, "", o], b.setFilters.hasOwnProperty(e.toLowerCase()) ? F(function(e, t) {
                            var n, r = a(e, o),
                                i = r.length;
                            while (i--) e[n = se.call(e, r[i])] = !(t[n] = r[i])
                        }) : function(e) {
                            return a(e, 0, t)
                        }) : a
                    }
                },
                pseudos: {
                    not: F(function(e) {
                        var r = [],
                            i = [],
                            s = ne(e.replace(ve, "$1"));
                        return s[S] ? F(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: F(function(t) {
                        return function(e) {
                            return 0 < I(t, e).length
                        }
                    }),
                    contains: F(function(t) {
                        return t = t.replace(O, P),
                            function(e) {
                                return -1 < (e.textContent || ce.text(e)).indexOf(t)
                            }
                    }),
                    lang: F(function(n) {
                        return A.test(n || "") || I.error("unsupported lang: " + n), n = n.replace(O, P).toLowerCase(),
                            function(e) {
                                var t;
                                do {
                                    if (t = C ? 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 = ie.location && ie.location.hash;
                        return t && t.slice(1) === e.id
                    },
                    root: function(e) {
                        return e === r
                    },
                    focus: function(e) {
                        return e === function() {
                            try {
                                return T.activeElement
                            } catch (e) {}
                        }() && T.hasFocus() && !!(e.type || e.href || ~e.tabIndex)
                    },
                    enabled: z(!1),
                    disabled: z(!0),
                    checked: function(e) {
                        return fe(e, "input") && !!e.checked || fe(e, "option") && !!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 q.test(e.nodeName)
                    },
                    input: function(e) {
                        return N.test(e.nodeName)
                    },
                    button: function(e) {
                        return fe(e, "input") && "button" === e.type || fe(e, "button")
                    },
                    text: function(e) {
                        var t;
                        return fe(e, "input") && "text" === e.type && (null == (t = e.getAttribute("type")) || "text" === t.toLowerCase())
                    },
                    first: X(function() {
                        return [0]
                    }),
                    last: X(function(e, t) {
                        return [t - 1]
                    }),
                    eq: X(function(e, t, n) {
                        return [n < 0 ? n + t : n]
                    }),
                    even: X(function(e, t) {
                        for (var n = 0; n < t; n += 2) e.push(n);
                        return e
                    }),
                    odd: X(function(e, t) {
                        for (var n = 1; n < t; n += 2) e.push(n);
                        return e
                    }),
                    lt: X(function(e, t, n) {
                        var r;
                        for (r = n < 0 ? n + t : t < n ? t : n; 0 <= --r;) e.push(r);
                        return e
                    }),
                    gt: X(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] = B(e);
        for (e in {
                submit: !0,
                reset: !0
            }) b.pseudos[e] = _(e);

        function G() {}

        function Y(e, t) {
            var n, r, i, o, a, s, u, l = c[e + " "];
            if (l) return t ? 0 : l.slice(0);
            a = e, s = [], u = b.preFilter;
            while (a) {
                for (o in n && !(r = y.exec(a)) || (r && (a = a.slice(r[0].length) || a), s.push(i = [])), n = !1, (r = m.exec(a)) && (n = r.shift(), i.push({
                        value: n,
                        type: r[0].replace(ve, " ")
                    }), a = a.slice(n.length)), b.filter) !(r = D[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 ? I.error(e) : c(e, s).slice(0)
        }

        function Q(e) {
            for (var t = 0, n = e.length, r = ""; t < n; t++) r += e[t].value;
            return r
        }

        function J(a, e, t) {
            var s = e.dir,
                u = e.next,
                l = u || s,
                c = t && "parentNode" === l,
                f = n++;
            return e.first ? function(e, t, n) {
                while (e = e[s])
                    if (1 === e.nodeType || c) return a(e, t, n);
                return !1
            } : function(e, t, n) {
                var r, i, o = [E, f];
                if (n) {
                    while (e = e[s])
                        if ((1 === e.nodeType || c) && a(e, t, n)) return !0
                } else
                    while (e = e[s])
                        if (1 === e.nodeType || c)
                            if (i = e[S] || (e[S] = {}), u && fe(e, u)) e = e[s] || e;
                            else {
                                if ((r = i[l]) && r[0] === E && r[1] === f) return o[2] = r[2];
                                if ((i[l] = o)[2] = a(e, t, n)) return !0
                            } return !1
            }
        }

        function K(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 Z(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 ee(d, h, g, v, y, e) {
            return v && !v[S] && (v = ee(v)), y && !y[S] && (y = ee(y, e)), F(function(e, t, n, r) {
                var i, o, a, s, u = [],
                    l = [],
                    c = t.length,
                    f = e || function(e, t, n) {
                        for (var r = 0, i = t.length; r < i; r++) I(e, t[r], n);
                        return n
                    }(h || "*", n.nodeType ? [n] : n, []),
                    p = !d || !e && h ? f : Z(f, u, d, n, r);
                if (g ? g(p, s = y || (e ? d : c || v) ? [] : t, n, r) : s = p, v) {
                    i = Z(s, l), v(i, [], n, r), o = i.length;
                    while (o--)(a = i[o]) && (s[l[o]] = !(p[l[o]] = a))
                }
                if (e) {
                    if (y || d) {
                        if (y) {
                            i = [], o = s.length;
                            while (o--)(a = s[o]) && i.push(p[o] = a);
                            y(null, s = [], i, r)
                        }
                        o = s.length;
                        while (o--)(a = s[o]) && -1 < (i = y ? se.call(e, a) : u[o]) && (e[i] = !(t[i] = a))
                    }
                } else s = Z(s === t ? s.splice(c, s.length) : s), y ? y(null, t, s, r) : k.apply(t, s)
            })
        }

        function te(e) {
            for (var i, t, n, r = e.length, o = b.relative[e[0].type], a = o || b.relative[" "], s = o ? 1 : 0, u = J(function(e) {
                    return e === i
                }, a, !0), l = J(function(e) {
                    return -1 < se.call(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 = [J(K(c), t)];
                else {
                    if ((t = b.filter[e[s].type].apply(null, e[s].matches))[S]) {
                        for (n = ++s; n < r; n++)
                            if (b.relative[e[n].type]) break;
                        return ee(1 < s && K(c), 1 < s && Q(e.slice(0, s - 1).concat({
                            value: " " === e[s - 2].type ? "*" : ""
                        })).replace(ve, "$1"), t, s < n && te(e.slice(s, n)), n < r && te(e = e.slice(n)), n < r && Q(e))
                    }
                    c.push(t)
                }
            return K(c)
        }

        function ne(e, t) {
            var n, v, y, m, x, r, i = [],
                o = [],
                a = u[e + " "];
            if (!a) {
                t || (t = Y(e)), n = t.length;
                while (n--)(a = te(t[n]))[S] ? i.push(a) : o.push(a);
                (a = u(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 = E += null == p ? 1 : Math.random() || .1,
                        g = d.length;
                    for (i && (w = t == T || t || i); l !== g && null != (o = d[l]); l++) {
                        if (x && o) {
                            a = 0, t || o.ownerDocument == T || (V(o), n = !C);
                            while (s = v[a++])
                                if (s(o, t || T, n)) {
                                    k.call(r, o);
                                    break
                                }
                            i && (E = 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] = pe.call(r));
                            f = Z(f)
                        }
                        k.apply(r, f), i && !e && 0 < f.length && 1 < u + y.length && ce.uniqueSort(r)
                    }
                    return i && (E = h, w = p), c
                }, m ? F(r) : r))).selector = e
            }
            return a
        }

        function re(e, t, n, r) {
            var i, o, a, s, u, l = "function" == typeof e && e,
                c = !r && Y(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 && C && b.relative[o[1].type]) {
                    if (!(t = (b.find.ID(a.matches[0].replace(O, P), t) || [])[0])) return n;
                    l && (t = t.parentNode), e = e.slice(o.shift().value.length)
                }
                i = D.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(O, P), H.test(o[0].type) && U(t.parentNode) || t))) {
                        if (o.splice(i, 1), !(e = r.length && Q(o))) return k.apply(n, r), n;
                        break
                    }
                }
            }
            return (l || ne(e, c))(r, t, !C, n, !t || H.test(e) && U(t.parentNode) || t), n
        }
        G.prototype = b.filters = b.pseudos, b.setFilters = new G, le.sortStable = S.split("").sort(l).join("") === S, V(), le.sortDetached = $(function(e) {
            return 1 & e.compareDocumentPosition(T.createElement("fieldset"))
        }), ce.find = I, ce.expr[":"] = ce.expr.pseudos, ce.unique = ce.uniqueSort, I.compile = ne, I.select = re, I.setDocument = V, I.tokenize = Y, I.escape = ce.escapeSelector, I.getText = ce.text, I.isXML = ce.isXMLDoc, I.selectors = ce.expr, I.support = ce.support, I.uniqueSort = ce.uniqueSort
    }();
    var d = function(e, t, n) {
            var r = [],
                i = void 0 !== n;
            while ((e = e[t]) && 9 !== e.nodeType)
                if (1 === e.nodeType) {
                    if (i && ce(e).is(n)) break;
                    r.push(e)
                }
            return r
        },
        h = function(e, t) {
            for (var n = []; e; e = e.nextSibling) 1 === e.nodeType && e !== t && n.push(e);
            return n
        },
        b = ce.expr.match.needsContext,
        w = /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;

    function T(e, n, r) {
        return v(n) ? ce.grep(e, function(e, t) {
            return !!n.call(e, t, e) !== r
        }) : n.nodeType ? ce.grep(e, function(e) {
            return e === n !== r
        }) : "string" != typeof n ? ce.grep(e, function(e) {
            return -1 < se.call(n, e) !== r
        }) : ce.filter(n, e, r)
    }
    ce.filter = function(e, t, n) {
        var r = t[0];
        return n && (e = ":not(" + e + ")"), 1 === t.length && 1 === r.nodeType ? ce.find.matchesSelector(r, e) ? [r] : [] : ce.find.matches(e, ce.grep(t, function(e) {
            return 1 === e.nodeType
        }))
    }, ce.fn.extend({
        find: function(e) {
            var t, n, r = this.length,
                i = this;
            if ("string" != typeof e) return this.pushStack(ce(e).filter(function() {
                for (t = 0; t < r; t++)
                    if (ce.contains(i[t], this)) return !0
            }));
            for (n = this.pushStack([]), t = 0; t < r; t++) ce.find(e, i[t], n);
            return 1 < r ? ce.uniqueSort(n) : n
        },
        filter: function(e) {
            return this.pushStack(T(this, e || [], !1))
        },
        not: function(e) {
            return this.pushStack(T(this, e || [], !0))
        },
        is: function(e) {
            return !!T(this, "string" == typeof e && b.test(e) ? ce(e) : e || [], !1).length
        }
    });
    var k, S = /^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/;
    (ce.fn.init = function(e, t, n) {
        var r, i;
        if (!e) return this;
        if (n = n || k, "string" == typeof e) {
            if (!(r = "<" === e[0] && ">" === e[e.length - 1] && 3 <= e.length ? [null, e, null] : S.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 ce ? t[0] : t, ce.merge(this, ce.parseHTML(r[1], t && t.nodeType ? t.ownerDocument || t : C, !0)), w.test(r[1]) && ce.isPlainObject(t))
                    for (r in t) v(this[r]) ? this[r](t[r]) : this.attr(r, t[r]);
                return this
            }
            return (i = C.getElementById(r[2])) && (this[0] = i, this.length = 1), this
        }
        return e.nodeType ? (this[0] = e, this.length = 1, this) : v(e) ? void 0 !== n.ready ? n.ready(e) : e(ce) : ce.makeArray(e, this)
    }).prototype = ce.fn, k = ce(C);
    var E = /^(?:parents|prev(?:Until|All))/,
        j = {
            children: !0,
            contents: !0,
            next: !0,
            prev: !0
        };

    function A(e, t) {
        while ((e = e[t]) && 1 !== e.nodeType);
        return e
    }
    ce.fn.extend({
        has: function(e) {
            var t = ce(e, this),
                n = t.length;
            return this.filter(function() {
                for (var e = 0; e < n; e++)
                    if (ce.contains(this, t[e])) return !0
            })
        },
        closest: function(e, t) {
            var n, r = 0,
                i = this.length,
                o = [],
                a = "string" != typeof e && ce(e);
            if (!b.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 && ce.find.matchesSelector(n, e))) {
                            o.push(n);
                            break
                        }
            return this.pushStack(1 < o.length ? ce.uniqueSort(o) : o)
        },
        index: function(e) {
            return e ? "string" == typeof e ? se.call(ce(e), this[0]) : se.call(this, e.jquery ? e[0] : e) : this[0] && this[0].parentNode ? this.first().prevAll().length : -1
        },
        add: function(e, t) {
            return this.pushStack(ce.uniqueSort(ce.merge(this.get(), ce(e, t))))
        },
        addBack: function(e) {
            return this.add(null == e ? this.prevObject : this.prevObject.filter(e))
        }
    }), ce.each({
        parent: function(e) {
            var t = e.parentNode;
            return t && 11 !== t.nodeType ? t : null
        },
        parents: function(e) {
            return d(e, "parentNode")
        },
        parentsUntil: function(e, t, n) {
            return d(e, "parentNode", n)
        },
        next: function(e) {
            return A(e, "nextSibling")
        },
        prev: function(e) {
            return A(e, "previousSibling")
        },
        nextAll: function(e) {
            return d(e, "nextSibling")
        },
        prevAll: function(e) {
            return d(e, "previousSibling")
        },
        nextUntil: function(e, t, n) {
            return d(e, "nextSibling", n)
        },
        prevUntil: function(e, t, n) {
            return d(e, "previousSibling", n)
        },
        siblings: function(e) {
            return h((e.parentNode || {}).firstChild, e)
        },
        children: function(e) {
            return h(e.firstChild)
        },
        contents: function(e) {
            return null != e.contentDocument && r(e.contentDocument) ? e.contentDocument : (fe(e, "template") && (e = e.content || e), ce.merge([], e.childNodes))
        }
    }, function(r, i) {
        ce.fn[r] = function(e, t) {
            var n = ce.map(this, i, e);
            return "Until" !== r.slice(-5) && (t = e), t && "string" == typeof t && (n = ce.filter(t, n)), 1 < this.length && (j[r] || ce.uniqueSort(n), E.test(r) && n.reverse()), this.pushStack(n)
        }
    });
    var D = /[^\x20\t\r\n\f]+/g;

    function N(e) {
        return e
    }

    function q(e) {
        throw e
    }

    function L(e, t, n, r) {
        var i;
        try {
            e && v(i = e.promise) ? i.call(e).done(t).fail(n) : e && v(i = e.then) ? i.call(e, t, n) : t.apply(void 0, [e].slice(r))
        } catch (e) {
            n.apply(void 0, [e])
        }
    }
    ce.Callbacks = function(r) {
        var e, n;
        r = "string" == typeof r ? (e = r, n = {}, ce.each(e.match(D) || [], function(e, t) {
            n[t] = !0
        }), n) : ce.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) {
                        ce.each(e, function(e, t) {
                            v(t) ? r.unique && f.has(t) || s.push(t) : t && t.length && "string" !== x(t) && n(t)
                        })
                    }(arguments), t && !i && c()), this
                },
                remove: function() {
                    return ce.each(arguments, function(e, t) {
                        var n;
                        while (-1 < (n = ce.inArray(t, s, n))) s.splice(n, 1), n <= l && l--
                    }), this
                },
                has: function(e) {
                    return e ? -1 < ce.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
    }, ce.extend({
        Deferred: function(e) {
            var o = [
                    ["notify", "progress", ce.Callbacks("memory"), ce.Callbacks("memory"), 2],
                    ["resolve", "done", ce.Callbacks("once memory"), ce.Callbacks("once memory"), 0, "resolved"],
                    ["reject", "fail", ce.Callbacks("once memory"), ce.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 ce.Deferred(function(r) {
                            ce.each(o, function(e, t) {
                                var n = v(i[t[4]]) && i[t[4]];
                                s[t[1]](function() {
                                    var e = n && n.apply(this, arguments);
                                    e && v(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, v(t) ? s ? t.call(e, l(u, o, N, s), l(u, o, q, s)) : (u++, t.call(e, l(u, o, N, s), l(u, o, q, s), l(u, o, N, o.notifyWith))) : (a !== N && (n = void 0, r = [e]), (s || o.resolveWith)(n, r))
                                        }
                                    },
                                    t = s ? e : function() {
                                        try {
                                            e()
                                        } catch (e) {
                                            ce.Deferred.exceptionHook && ce.Deferred.exceptionHook(e, t.error), u <= i + 1 && (a !== q && (n = void 0, r = [e]), o.rejectWith(n, r))
                                        }
                                    };
                                i ? t() : (ce.Deferred.getErrorHook ? t.error = ce.Deferred.getErrorHook() : ce.Deferred.getStackHook && (t.error = ce.Deferred.getStackHook()), ie.setTimeout(t))
                            }
                        }
                        return ce.Deferred(function(e) {
                            o[0][3].add(l(0, e, v(r) ? r : N, e.notifyWith)), o[1][3].add(l(0, e, v(t) ? t : N)), o[2][3].add(l(0, e, v(n) ? n : q))
                        }).promise()
                    },
                    promise: function(e) {
                        return null != e ? ce.extend(e, a) : a
                    }
                },
                s = {};
            return ce.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 = ae.call(arguments),
                o = ce.Deferred(),
                a = function(t) {
                    return function(e) {
                        r[t] = this, i[t] = 1 < arguments.length ? ae.call(arguments) : e, --n || o.resolveWith(r, i)
                    }
                };
            if (n <= 1 && (L(e, o.done(a(t)).resolve, o.reject, !n), "pending" === o.state() || v(i[t] && i[t].then))) return o.then();
            while (t--) L(i[t], a(t), o.reject);
            return o.promise()
        }
    });
    var H = /^(Eval|Internal|Range|Reference|Syntax|Type|URI)Error$/;
    ce.Deferred.exceptionHook = function(e, t) {
        ie.console && ie.console.warn && e && H.test(e.name) && ie.console.warn("jQuery.Deferred exception: " + e.message, e.stack, t)
    }, ce.readyException = function(e) {
        ie.setTimeout(function() {
            throw e
        })
    };
    var O = ce.Deferred();

    function P() {
        C.removeEventListener("DOMContentLoaded", P), ie.removeEventListener("load", P), ce.ready()
    }
    ce.fn.ready = function(e) {
        return O.then(e)["catch"](function(e) {
            ce.readyException(e)
        }), this
    }, ce.extend({
        isReady: !1,
        readyWait: 1,
        ready: function(e) {
            (!0 === e ? --ce.readyWait : ce.isReady) || (ce.isReady = !0) !== e && 0 < --ce.readyWait || O.resolveWith(C, [ce])
        }
    }), ce.ready.then = O.then, "complete" === C.readyState || "loading" !== C.readyState && !C.documentElement.doScroll ? ie.setTimeout(ce.ready) : (C.addEventListener("DOMContentLoaded", P), ie.addEventListener("load", P));
    var M = function(e, t, n, r, i, o, a) {
            var s = 0,
                u = e.length,
                l = null == n;
            if ("object" === x(n))
                for (s in i = !0, n) M(e, t, s, n[s], !0, o, a);
            else if (void 0 !== r && (i = !0, v(r) || (a = !0), l && (a ? (t.call(e, r), t = null) : (l = t, t = function(e, t, n) {
                    return l.call(ce(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
        },
        R = /^-ms-/,
        I = /-([a-z])/g;

    function W(e, t) {
        return t.toUpperCase()
    }

    function F(e) {
        return e.replace(R, "ms-").replace(I, W)
    }
    var $ = function(e) {
        return 1 === e.nodeType || 9 === e.nodeType || !+e.nodeType
    };

    function B() {
        this.expando = ce.expando + B.uid++
    }
    B.uid = 1, B.prototype = {
        cache: function(e) {
            var t = e[this.expando];
            return t || (t = {}, $(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[F(t)] = n;
            else
                for (r in t) i[F(r)] = t[r];
            return i
        },
        get: function(e, t) {
            return void 0 === t ? this.cache(e) : e[this.expando] && e[this.expando][F(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(F) : (t = F(t)) in r ? [t] : t.match(D) || []).length;
                    while (n--) delete r[t[n]]
                }(void 0 === t || ce.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 && !ce.isEmptyObject(t)
        }
    };
    var _ = new B,
        z = new B,
        X = /^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,
        U = /[A-Z]/g;

    function V(e, t, n) {
        var r, i;
        if (void 0 === n && 1 === e.nodeType)
            if (r = "data-" + t.replace(U, "-$&").toLowerCase(), "string" == typeof(n = e.getAttribute(r))) {
                try {
                    n = "true" === (i = n) || "false" !== i && ("null" === i ? null : i === +i + "" ? +i : X.test(i) ? JSON.parse(i) : i)
                } catch (e) {}
                z.set(e, t, n)
            } else n = void 0;
        return n
    }
    ce.extend({
        hasData: function(e) {
            return z.hasData(e) || _.hasData(e)
        },
        data: function(e, t, n) {
            return z.access(e, t, n)
        },
        removeData: function(e, t) {
            z.remove(e, t)
        },
        _data: function(e, t, n) {
            return _.access(e, t, n)
        },
        _removeData: function(e, t) {
            _.remove(e, t)
        }
    }), ce.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 = z.get(o), 1 === o.nodeType && !_.get(o, "hasDataAttrs"))) {
                    t = a.length;
                    while (t--) a[t] && 0 === (r = a[t].name).indexOf("data-") && (r = F(r.slice(5)), V(o, r, i[r]));
                    _.set(o, "hasDataAttrs", !0)
                }
                return i
            }
            return "object" == typeof n ? this.each(function() {
                z.set(this, n)
            }) : M(this, function(e) {
                var t;
                if (o && void 0 === e) return void 0 !== (t = z.get(o, n)) ? t : void 0 !== (t = V(o, n)) ? t : void 0;
                this.each(function() {
                    z.set(this, n, e)
                })
            }, null, e, 1 < arguments.length, null, !0)
        },
        removeData: function(e) {
            return this.each(function() {
                z.remove(this, e)
            })
        }
    }), ce.extend({
        queue: function(e, t, n) {
            var r;
            if (e) return t = (t || "fx") + "queue", r = _.get(e, t), n && (!r || Array.isArray(n) ? r = _.access(e, t, ce.makeArray(n)) : r.push(n)), r || []
        },
        dequeue: function(e, t) {
            t = t || "fx";
            var n = ce.queue(e, t),
                r = n.length,
                i = n.shift(),
                o = ce._queueHooks(e, t);
            "inprogress" === i && (i = n.shift(), r--), i && ("fx" === t && n.unshift("inprogress"), delete o.stop, i.call(e, function() {
                ce.dequeue(e, t)
            }, o)), !r && o && o.empty.fire()
        },
        _queueHooks: function(e, t) {
            var n = t + "queueHooks";
            return _.get(e, n) || _.access(e, n, {
                empty: ce.Callbacks("once memory").add(function() {
                    _.remove(e, [t + "queue", n])
                })
            })
        }
    }), ce.fn.extend({
        queue: function(t, n) {
            var e = 2;
            return "string" != typeof t && (n = t, t = "fx", e--), arguments.length < e ? ce.queue(this[0], t) : void 0 === n ? this : this.each(function() {
                var e = ce.queue(this, t, n);
                ce._queueHooks(this, t), "fx" === t && "inprogress" !== e[0] && ce.dequeue(this, t)
            })
        },
        dequeue: function(e) {
            return this.each(function() {
                ce.dequeue(this, e)
            })
        },
        clearQueue: function(e) {
            return this.queue(e || "fx", [])
        },
        promise: function(e, t) {
            var n, r = 1,
                i = ce.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 = _.get(o[a], e + "queueHooks")) && n.empty && (r++, n.empty.add(s));
            return s(), i.promise(t)
        }
    });
    var G = /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source,
        Y = new RegExp("^(?:([+-])=|)(" + G + ")([a-z%]*)$", "i"),
        Q = ["Top", "Right", "Bottom", "Left"],
        J = C.documentElement,
        K = function(e) {
            return ce.contains(e.ownerDocument, e)
        },
        Z = {
            composed: !0
        };
    J.getRootNode && (K = function(e) {
        return ce.contains(e.ownerDocument, e) || e.getRootNode(Z) === e.ownerDocument
    });
    var ee = function(e, t) {
        return "none" === (e = t || e).style.display || "" === e.style.display && K(e) && "none" === ce.css(e, "display")
    };

    function te(e, t, n, r) {
        var i, o, a = 20,
            s = r ? function() {
                return r.cur()
            } : function() {
                return ce.css(e, t, "")
            },
            u = s(),
            l = n && n[3] || (ce.cssNumber[t] ? "" : "px"),
            c = e.nodeType && (ce.cssNumber[t] || "px" !== l && +u) && Y.exec(ce.css(e, t));
        if (c && c[3] !== l) {
            u /= 2, l = l || c[3], c = +u || 1;
            while (a--) ce.style(e, t, c + l), (1 - o) * (1 - (o = s() / u || .5)) <= 0 && (a = 0), c /= o;
            c *= 2, ce.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 ne = {};

    function re(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] = _.get(r, "display") || null, l[c] || (r.style.display = "")), "" === r.style.display && ee(r) && (l[c] = (u = a = o = void 0, a = (i = r).ownerDocument, s = i.nodeName, (u = ne[s]) || (o = a.body.appendChild(a.createElement(s)), u = ce.css(o, "display"), o.parentNode.removeChild(o), "none" === u && (u = "block"), ne[s] = u)))) : "none" !== n && (l[c] = "none", _.set(r, "display", n)));
        for (c = 0; c < f; c++) null != l[c] && (e[c].style.display = l[c]);
        return e
    }
    ce.fn.extend({
        show: function() {
            return re(this, !0)
        },
        hide: function() {
            return re(this)
        },
        toggle: function(e) {
            return "boolean" == typeof e ? e ? this.show() : this.hide() : this.each(function() {
                ee(this) ? ce(this).show() : ce(this).hide()
            })
        }
    });
    var xe, be, we = /^(?:checkbox|radio)$/i,
        Te = /<([a-z][^\/\0>\x20\t\r\n\f]*)/i,
        Ce = /^$|^module$|\/(?:java|ecma)script/i;
    xe = C.createDocumentFragment().appendChild(C.createElement("div")), (be = C.createElement("input")).setAttribute("type", "radio"), be.setAttribute("checked", "checked"), be.setAttribute("name", "t"), xe.appendChild(be), le.checkClone = xe.cloneNode(!0).cloneNode(!0).lastChild.checked, xe.innerHTML = "<textarea>x</textarea>", le.noCloneChecked = !!xe.cloneNode(!0).lastChild.defaultValue, xe.innerHTML = "<option></option>", le.option = !!xe.lastChild;
    var ke = {
        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 Se(e, t) {
        var n;
        return n = "undefined" != typeof e.getElementsByTagName ? e.getElementsByTagName(t || "*") : "undefined" != typeof e.querySelectorAll ? e.querySelectorAll(t || "*") : [], void 0 === t || t && fe(e, t) ? ce.merge([e], n) : n
    }

    function Ee(e, t) {
        for (var n = 0, r = e.length; n < r; n++) _.set(e[n], "globalEval", !t || _.get(t[n], "globalEval"))
    }
    ke.tbody = ke.tfoot = ke.colgroup = ke.caption = ke.thead, ke.th = ke.td, le.option || (ke.optgroup = ke.option = [1, "<select multiple='multiple'>", "</select>"]);
    var je = /<|&#?\w+;/;

    function Ae(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" === x(o)) ce.merge(p, o.nodeType ? [o] : o);
                else if (je.test(o)) {
            a = a || f.appendChild(t.createElement("div")), s = (Te.exec(o) || ["", ""])[1].toLowerCase(), u = ke[s] || ke._default, a.innerHTML = u[1] + ce.htmlPrefilter(o) + u[2], c = u[0];
            while (c--) a = a.lastChild;
            ce.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 < ce.inArray(o, r)) i && i.push(o);
            else if (l = K(o), a = Se(f.appendChild(o), "script"), l && Ee(a), n) {
            c = 0;
            while (o = a[c++]) Ce.test(o.type || "") && n.push(o)
        }
        return f
    }
    var De = /^([^.]*)(?:\.(.+)|)/;

    function Ne() {
        return !0
    }

    function qe() {
        return !1
    }

    function Le(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) Le(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 = qe;
        else if (!i) return e;
        return 1 === o && (a = i, (i = function(e) {
            return ce().off(e), a.apply(this, arguments)
        }).guid = a.guid || (a.guid = ce.guid++)), e.each(function() {
            ce.event.add(this, t, i, r, n)
        })
    }

    function He(e, r, t) {
        t ? (_.set(e, r, !1), ce.event.add(e, r, {
            namespace: !1,
            handler: function(e) {
                var t, n = _.get(this, r);
                if (1 & e.isTrigger && this[r]) {
                    if (n)(ce.event.special[r] || {}).delegateType && e.stopPropagation();
                    else if (n = ae.call(arguments), _.set(this, r, n), this[r](), t = _.get(this, r), _.set(this, r, !1), n !== t) return e.stopImmediatePropagation(), e.preventDefault(), t
                } else n && (_.set(this, r, ce.event.trigger(n[0], n.slice(1), this)), e.stopPropagation(), e.isImmediatePropagationStopped = Ne)
            }
        })) : void 0 === _.get(e, r) && ce.event.add(e, r, Ne)
    }
    ce.event = {
        global: {},
        add: function(t, e, n, r, i) {
            var o, a, s, u, l, c, f, p, d, h, g, v = _.get(t);
            if ($(t)) {
                n.handler && (n = (o = n).handler, i = o.selector), i && ce.find.matchesSelector(J, i), n.guid || (n.guid = ce.guid++), (u = v.events) || (u = v.events = Object.create(null)), (a = v.handle) || (a = v.handle = function(e) {
                    return "undefined" != typeof ce && ce.event.triggered !== e.type ? ce.event.dispatch.apply(t, arguments) : void 0
                }), l = (e = (e || "").match(D) || [""]).length;
                while (l--) d = g = (s = De.exec(e[l]) || [])[1], h = (s[2] || "").split(".").sort(), d && (f = ce.event.special[d] || {}, d = (i ? f.delegateType : f.bindType) || d, f = ce.event.special[d] || {}, c = ce.extend({
                    type: d,
                    origType: g,
                    data: r,
                    handler: n,
                    guid: n.guid,
                    selector: i,
                    needsContext: i && ce.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), ce.event.global[d] = !0)
            }
        },
        remove: function(e, t, n, r, i) {
            var o, a, s, u, l, c, f, p, d, h, g, v = _.hasData(e) && _.get(e);
            if (v && (u = v.events)) {
                l = (t = (t || "").match(D) || [""]).length;
                while (l--)
                    if (d = g = (s = De.exec(t[l]) || [])[1], h = (s[2] || "").split(".").sort(), d) {
                        f = ce.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) || ce.removeEvent(e, d, v.handle), delete u[d])
                    } else
                        for (d in u) ce.event.remove(e, d + t[l], n, r, !0);
                ce.isEmptyObject(u) && _.remove(e, "handle events")
            }
        },
        dispatch: function(e) {
            var t, n, r, i, o, a, s = new Array(arguments.length),
                u = ce.event.fix(e),
                l = (_.get(this, "events") || Object.create(null))[u.type] || [],
                c = ce.event.special[u.type] || {};
            for (s[0] = u, t = 1; t < arguments.length; t++) s[t] = arguments[t];
            if (u.delegateTarget = this, !c.preDispatch || !1 !== c.preDispatch.call(this, u)) {
                a = ce.event.handlers.call(this, u, l), t = 0;
                while ((i = a[t++]) && !u.isPropagationStopped()) {
                    u.currentTarget = i.elem, n = 0;
                    while ((o = i.handlers[n++]) && !u.isImmediatePropagationStopped()) u.rnamespace && !1 !== o.namespace && !u.rnamespace.test(o.namespace) || (u.handleObj = o, u.data = o.data, void 0 !== (r = ((ce.event.special[o.origType] || {}).handle || o.handler).apply(i.elem, s)) && !1 === (u.result = r) && (u.preventDefault(), u.stopPropagation()))
                }
                return c.postDispatch && c.postDispatch.call(this, u), u.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 < ce(i, this).index(l) : ce.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(ce.Event.prototype, t, {
                enumerable: !0,
                configurable: !0,
                get: v(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[ce.expando] ? e : new ce.Event(e)
        },
        special: {
            load: {
                noBubble: !0
            },
            click: {
                setup: function(e) {
                    var t = this || e;
                    return we.test(t.type) && t.click && fe(t, "input") && He(t, "click", !0), !1
                },
                trigger: function(e) {
                    var t = this || e;
                    return we.test(t.type) && t.click && fe(t, "input") && He(t, "click"), !0
                },
                _default: function(e) {
                    var t = e.target;
                    return we.test(t.type) && t.click && fe(t, "input") && _.get(t, "click") || fe(t, "a")
                }
            },
            beforeunload: {
                postDispatch: function(e) {
                    void 0 !== e.result && e.originalEvent && (e.originalEvent.returnValue = e.result)
                }
            }
        }
    }, ce.removeEvent = function(e, t, n) {
        e.removeEventListener && e.removeEventListener(t, n)
    }, ce.Event = function(e, t) {
        if (!(this instanceof ce.Event)) return new ce.Event(e, t);
        e && e.type ? (this.originalEvent = e, this.type = e.type, this.isDefaultPrevented = e.defaultPrevented || void 0 === e.defaultPrevented && !1 === e.returnValue ? Ne : qe, 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 && ce.extend(this, t), this.timeStamp = e && e.timeStamp || Date.now(), this[ce.expando] = !0
    }, ce.Event.prototype = {
        constructor: ce.Event,
        isDefaultPrevented: qe,
        isPropagationStopped: qe,
        isImmediatePropagationStopped: qe,
        isSimulated: !1,
        preventDefault: function() {
            var e = this.originalEvent;
            this.isDefaultPrevented = Ne, e && !this.isSimulated && e.preventDefault()
        },
        stopPropagation: function() {
            var e = this.originalEvent;
            this.isPropagationStopped = Ne, e && !this.isSimulated && e.stopPropagation()
        },
        stopImmediatePropagation: function() {
            var e = this.originalEvent;
            this.isImmediatePropagationStopped = Ne, e && !this.isSimulated && e.stopImmediatePropagation(), this.stopPropagation()
        }
    }, ce.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: !0
    }, ce.event.addProp), ce.each({
        focus: "focusin",
        blur: "focusout"
    }, function(r, i) {
        function o(e) {
            if (C.documentMode) {
                var t = _.get(this, "handle"),
                    n = ce.event.fix(e);
                n.type = "focusin" === e.type ? "focus" : "blur", n.isSimulated = !0, t(e), n.target === n.currentTarget && t(n)
            } else ce.event.simulate(i, e.target, ce.event.fix(e))
        }
        ce.event.special[r] = {
            setup: function() {
                var e;
                if (He(this, r, !0), !C.documentMode) return !1;
                (e = _.get(this, i)) || this.addEventListener(i, o), _.set(this, i, (e || 0) + 1)
            },
            trigger: function() {
                return He(this, r), !0
            },
            teardown: function() {
                var e;
                if (!C.documentMode) return !1;
                (e = _.get(this, i) - 1) ? _.set(this, i, e): (this.removeEventListener(i, o), _.remove(this, i))
            },
            _default: function(e) {
                return _.get(e.target, r)
            },
            delegateType: i
        }, ce.event.special[i] = {
            setup: function() {
                var e = this.ownerDocument || this.document || this,
                    t = C.documentMode ? this : e,
                    n = _.get(t, i);
                n || (C.documentMode ? this.addEventListener(i, o) : e.addEventListener(r, o, !0)), _.set(t, i, (n || 0) + 1)
            },
            teardown: function() {
                var e = this.ownerDocument || this.document || this,
                    t = C.documentMode ? this : e,
                    n = _.get(t, i) - 1;
                n ? _.set(t, i, n) : (C.documentMode ? this.removeEventListener(i, o) : e.removeEventListener(r, o, !0), _.remove(t, i))
            }
        }
    }), ce.each({
        mouseenter: "mouseover",
        mouseleave: "mouseout",
        pointerenter: "pointerover",
        pointerleave: "pointerout"
    }, function(e, i) {
        ce.event.special[e] = {
            delegateType: i,
            bindType: i,
            handle: function(e) {
                var t, n = e.relatedTarget,
                    r = e.handleObj;
                return n && (n === this || ce.contains(this, n)) || (e.type = r.origType, t = r.handler.apply(this, arguments), e.type = i), t
            }
        }
    }), ce.fn.extend({
        on: function(e, t, n, r) {
            return Le(this, e, t, n, r)
        },
        one: function(e, t, n, r) {
            return Le(this, e, t, n, r, 1)
        },
        off: function(e, t, n) {
            var r, i;
            if (e && e.preventDefault && e.handleObj) return r = e.handleObj, ce(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 = qe), this.each(function() {
                ce.event.remove(this, e, n, t)
            })
        }
    });
    var Oe = /<script|<style|<link/i,
        Pe = /checked\s*(?:[^=]|=\s*.checked.)/i,
        Me = /^\s*<!\[CDATA\[|\]\]>\s*$/g;

    function Re(e, t) {
        return fe(e, "table") && fe(11 !== t.nodeType ? t : t.firstChild, "tr") && ce(e).children("tbody")[0] || e
    }

    function Ie(e) {
        return e.type = (null !== e.getAttribute("type")) + "/" + e.type, e
    }

    function We(e) {
        return "true/" === (e.type || "").slice(0, 5) ? e.type = e.type.slice(5) : e.removeAttribute("type"), e
    }

    function Fe(e, t) {
        var n, r, i, o, a, s;
        if (1 === t.nodeType) {
            if (_.hasData(e) && (s = _.get(e).events))
                for (i in _.remove(t, "handle events"), s)
                    for (n = 0, r = s[i].length; n < r; n++) ce.event.add(t, i, s[i][n]);
            z.hasData(e) && (o = z.access(e), a = ce.extend({}, o), z.set(t, a))
        }
    }

    function $e(n, r, i, o) {
        r = g(r);
        var e, t, a, s, u, l, c = 0,
            f = n.length,
            p = f - 1,
            d = r[0],
            h = v(d);
        if (h || 1 < f && "string" == typeof d && !le.checkClone && Pe.test(d)) return n.each(function(e) {
            var t = n.eq(e);
            h && (r[0] = d.call(this, e, t.html())), $e(t, r, i, o)
        });
        if (f && (t = (e = Ae(r, n[0].ownerDocument, !1, n, o)).firstChild, 1 === e.childNodes.length && (e = t), t || o)) {
            for (s = (a = ce.map(Se(e, "script"), Ie)).length; c < f; c++) u = e, c !== p && (u = ce.clone(u, !0, !0), s && ce.merge(a, Se(u, "script"))), i.call(n[c], u, c);
            if (s)
                for (l = a[a.length - 1].ownerDocument, ce.map(a, We), c = 0; c < s; c++) u = a[c], Ce.test(u.type || "") && !_.access(u, "globalEval") && ce.contains(l, u) && (u.src && "module" !== (u.type || "").toLowerCase() ? ce._evalUrl && !u.noModule && ce._evalUrl(u.src, {
                    nonce: u.nonce || u.getAttribute("nonce")
                }, l) : m(u.textContent.replace(Me, ""), u, l))
        }
        return n
    }

    function Be(e, t, n) {
        for (var r, i = t ? ce.filter(t, e) : e, o = 0; null != (r = i[o]); o++) n || 1 !== r.nodeType || ce.cleanData(Se(r)), r.parentNode && (n && K(r) && Ee(Se(r, "script")), r.parentNode.removeChild(r));
        return e
    }
    ce.extend({
        htmlPrefilter: function(e) {
            return e
        },
        clone: function(e, t, n) {
            var r, i, o, a, s, u, l, c = e.cloneNode(!0),
                f = K(e);
            if (!(le.noCloneChecked || 1 !== e.nodeType && 11 !== e.nodeType || ce.isXMLDoc(e)))
                for (a = Se(c), r = 0, i = (o = Se(e)).length; r < i; r++) s = o[r], u = a[r], void 0, "input" === (l = u.nodeName.toLowerCase()) && we.test(s.type) ? u.checked = s.checked : "input" !== l && "textarea" !== l || (u.defaultValue = s.defaultValue);
            if (t)
                if (n)
                    for (o = o || Se(e), a = a || Se(c), r = 0, i = o.length; r < i; r++) Fe(o[r], a[r]);
                else Fe(e, c);
            return 0 < (a = Se(c, "script")).length && Ee(a, !f && Se(e, "script")), c
        },
        cleanData: function(e) {
            for (var t, n, r, i = ce.event.special, o = 0; void 0 !== (n = e[o]); o++)
                if ($(n)) {
                    if (t = n[_.expando]) {
                        if (t.events)
                            for (r in t.events) i[r] ? ce.event.remove(n, r) : ce.removeEvent(n, r, t.handle);
                        n[_.expando] = void 0
                    }
                    n[z.expando] && (n[z.expando] = void 0)
                }
        }
    }), ce.fn.extend({
        detach: function(e) {
            return Be(this, e, !0)
        },
        remove: function(e) {
            return Be(this, e)
        },
        text: function(e) {
            return M(this, function(e) {
                return void 0 === e ? ce.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 $e(this, arguments, function(e) {
                1 !== this.nodeType && 11 !== this.nodeType && 9 !== this.nodeType || Re(this, e).appendChild(e)
            })
        },
        prepend: function() {
            return $e(this, arguments, function(e) {
                if (1 === this.nodeType || 11 === this.nodeType || 9 === this.nodeType) {
                    var t = Re(this, e);
                    t.insertBefore(e, t.firstChild)
                }
            })
        },
        before: function() {
            return $e(this, arguments, function(e) {
                this.parentNode && this.parentNode.insertBefore(e, this)
            })
        },
        after: function() {
            return $e(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 && (ce.cleanData(Se(e, !1)), e.textContent = "");
            return this
        },
        clone: function(e, t) {
            return e = null != e && e, t = null == t ? e : t, this.map(function() {
                return ce.clone(this, e, t)
            })
        },
        html: function(e) {
            return M(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 && !Oe.test(e) && !ke[(Te.exec(e) || ["", ""])[1].toLowerCase()]) {
                    e = ce.htmlPrefilter(e);
                    try {
                        for (; n < r; n++) 1 === (t = this[n] || {}).nodeType && (ce.cleanData(Se(t, !1)), t.innerHTML = e);
                        t = 0
                    } catch (e) {}
                }
                t && this.empty().append(e)
            }, null, e, arguments.length)
        },
        replaceWith: function() {
            var n = [];
            return $e(this, arguments, function(e) {
                var t = this.parentNode;
                ce.inArray(this, n) < 0 && (ce.cleanData(Se(this)), t && t.replaceChild(e, this))
            }, n)
        }
    }), ce.each({
        appendTo: "append",
        prependTo: "prepend",
        insertBefore: "before",
        insertAfter: "after",
        replaceAll: "replaceWith"
    }, function(e, a) {
        ce.fn[e] = function(e) {
            for (var t, n = [], r = ce(e), i = r.length - 1, o = 0; o <= i; o++) t = o === i ? this : this.clone(!0), ce(r[o])[a](t), s.apply(n, t.get());
            return this.pushStack(n)
        }
    });
    var _e = new RegExp("^(" + G + ")(?!px)[a-z%]+$", "i"),
        ze = /^--/,
        Xe = function(e) {
            var t = e.ownerDocument.defaultView;
            return t && t.opener || (t = ie), t.getComputedStyle(e)
        },
        Ue = function(e, t, n) {
            var r, i, o = {};
            for (i in t) o[i] = e.style[i], e.style[i] = t[i];
            for (i in r = n.call(e), t) e.style[i] = o[i];
            return r
        },
        Ve = new RegExp(Q.join("|"), "i");

    function Ge(e, t, n) {
        var r, i, o, a, s = ze.test(t),
            u = e.style;
        return (n = n || Xe(e)) && (a = n.getPropertyValue(t) || n[t], s && a && (a = a.replace(ve, "$1") || void 0), "" !== a || K(e) || (a = ce.style(e, t)), !le.pixelBoxStyles() && _e.test(a) && Ve.test(t) && (r = u.width, i = u.minWidth, o = u.maxWidth, u.minWidth = u.maxWidth = u.width = a, a = n.width, u.width = r, u.minWidth = i, u.maxWidth = o)), void 0 !== a ? a + "" : a
    }

    function Ye(e, t) {
        return {
            get: function() {
                if (!e()) return (this.get = t).apply(this, arguments);
                delete this.get
            }
        }
    }! function() {
        function e() {
            if (l) {
                u.style.cssText = "position:absolute;left:-11111px;width:60px;margin-top:1px;padding:0;border:0", l.style.cssText = "position:relative;display:block;box-sizing:border-box;overflow:scroll;margin:auto;border:1px;padding:1px;width:60%;top:1%", J.appendChild(u).appendChild(l);
                var e = ie.getComputedStyle(l);
                n = "1%" !== e.top, s = 12 === t(e.marginLeft), l.style.right = "60%", o = 36 === t(e.right), r = 36 === t(e.width), l.style.position = "absolute", i = 12 === t(l.offsetWidth / 3), J.removeChild(u), l = null
            }
        }

        function t(e) {
            return Math.round(parseFloat(e))
        }
        var n, r, i, o, a, s, u = C.createElement("div"),
            l = C.createElement("div");
        l.style && (l.style.backgroundClip = "content-box", l.cloneNode(!0).style.backgroundClip = "", le.clearCloneStyle = "content-box" === l.style.backgroundClip, ce.extend(le, {
            boxSizingReliable: function() {
                return e(), r
            },
            pixelBoxStyles: function() {
                return e(), o
            },
            pixelPosition: function() {
                return e(), n
            },
            reliableMarginLeft: function() {
                return e(), s
            },
            scrollboxSize: function() {
                return e(), i
            },
            reliableTrDimensions: function() {
                var e, t, n, r;
                return null == a && (e = C.createElement("table"), t = C.createElement("tr"), n = C.createElement("div"), e.style.cssText = "position:absolute;left:-11111px;border-collapse:separate", t.style.cssText = "box-sizing:content-box;border:1px solid", t.style.height = "1px", n.style.height = "9px", n.style.display = "block", J.appendChild(e).appendChild(t).appendChild(n), r = ie.getComputedStyle(t), a = parseInt(r.height, 10) + parseInt(r.borderTopWidth, 10) + parseInt(r.borderBottomWidth, 10) === t.offsetHeight, J.removeChild(e)), a
            }
        }))
    }();
    var Qe = ["Webkit", "Moz", "ms"],
        Je = C.createElement("div").style,
        Ke = {};

    function Ze(e) {
        var t = ce.cssProps[e] || Ke[e];
        return t || (e in Je ? e : Ke[e] = function(e) {
            var t = e[0].toUpperCase() + e.slice(1),
                n = Qe.length;
            while (n--)
                if ((e = Qe[n] + t) in Je) return e
        }(e) || e)
    }
    var et = /^(none|table(?!-c[ea]).+)/,
        tt = {
            position: "absolute",
            visibility: "hidden",
            display: "block"
        },
        nt = {
            letterSpacing: "0",
            fontWeight: "400"
        };

    function rt(e, t, n) {
        var r = Y.exec(t);
        return r ? Math.max(0, r[2] - (n || 0)) + (r[3] || "px") : t
    }

    function it(e, t, n, r, i, o) {
        var a = "width" === t ? 1 : 0,
            s = 0,
            u = 0,
            l = 0;
        if (n === (r ? "border" : "content")) return 0;
        for (; a < 4; a += 2) "margin" === n && (l += ce.css(e, n + Q[a], !0, i)), r ? ("content" === n && (u -= ce.css(e, "padding" + Q[a], !0, i)), "margin" !== n && (u -= ce.css(e, "border" + Q[a] + "Width", !0, i))) : (u += ce.css(e, "padding" + Q[a], !0, i), "padding" !== n ? u += ce.css(e, "border" + Q[a] + "Width", !0, i) : s += ce.css(e, "border" + Q[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 + l
    }

    function ot(e, t, n) {
        var r = Xe(e),
            i = (!le.boxSizingReliable() || n) && "border-box" === ce.css(e, "boxSizing", !1, r),
            o = i,
            a = Ge(e, t, r),
            s = "offset" + t[0].toUpperCase() + t.slice(1);
        if (_e.test(a)) {
            if (!n) return a;
            a = "auto"
        }
        return (!le.boxSizingReliable() && i || !le.reliableTrDimensions() && fe(e, "tr") || "auto" === a || !parseFloat(a) && "inline" === ce.css(e, "display", !1, r)) && e.getClientRects().length && (i = "border-box" === ce.css(e, "boxSizing", !1, r), (o = s in e) && (a = e[s])), (a = parseFloat(a) || 0) + it(e, t, n || (i ? "border" : "content"), o, r, a) + "px"
    }

    function at(e, t, n, r, i) {
        return new at.prototype.init(e, t, n, r, i)
    }
    ce.extend({
        cssHooks: {
            opacity: {
                get: function(e, t) {
                    if (t) {
                        var n = Ge(e, "opacity");
                        return "" === n ? "1" : n
                    }
                }
            }
        },
        cssNumber: {
            animationIterationCount: !0,
            aspectRatio: !0,
            borderImageSlice: !0,
            columnCount: !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,
            scale: !0,
            widows: !0,
            zIndex: !0,
            zoom: !0,
            fillOpacity: !0,
            floodOpacity: !0,
            stopOpacity: !0,
            strokeMiterlimit: !0,
            strokeOpacity: !0
        },
        cssProps: {},
        style: function(e, t, n, r) {
            if (e && 3 !== e.nodeType && 8 !== e.nodeType && e.style) {
                var i, o, a, s = F(t),
                    u = ze.test(t),
                    l = e.style;
                if (u || (t = Ze(s)), a = ce.cssHooks[t] || ce.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 = Y.exec(n)) && i[1] && (n = te(e, t, i), o = "number"), null != n && n == n && ("number" !== o || u || (n += i && i[3] || (ce.cssNumber[s] ? "" : "px")), le.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 = F(t);
            return ze.test(t) || (t = Ze(s)), (a = ce.cssHooks[t] || ce.cssHooks[s]) && "get" in a && (i = a.get(e, !0, n)), void 0 === i && (i = Ge(e, t, r)), "normal" === i && t in nt && (i = nt[t]), "" === n || n ? (o = parseFloat(i), !0 === n || isFinite(o) ? o || 0 : i) : i
        }
    }), ce.each(["height", "width"], function(e, u) {
        ce.cssHooks[u] = {
            get: function(e, t, n) {
                if (t) return !et.test(ce.css(e, "display")) || e.getClientRects().length && e.getBoundingClientRect().width ? ot(e, u, n) : Ue(e, tt, function() {
                    return ot(e, u, n)
                })
            },
            set: function(e, t, n) {
                var r, i = Xe(e),
                    o = !le.scrollboxSize() && "absolute" === i.position,
                    a = (o || n) && "border-box" === ce.css(e, "boxSizing", !1, i),
                    s = n ? it(e, u, n, a, i) : 0;
                return a && o && (s -= Math.ceil(e["offset" + u[0].toUpperCase() + u.slice(1)] - parseFloat(i[u]) - it(e, u, "border", !1, i) - .5)), s && (r = Y.exec(t)) && "px" !== (r[3] || "px") && (e.style[u] = t, t = ce.css(e, u)), rt(0, t, s)
            }
        }
    }), ce.cssHooks.marginLeft = Ye(le.reliableMarginLeft, function(e, t) {
        if (t) return (parseFloat(Ge(e, "marginLeft")) || e.getBoundingClientRect().left - Ue(e, {
            marginLeft: 0
        }, function() {
            return e.getBoundingClientRect().left
        })) + "px"
    }), ce.each({
        margin: "",
        padding: "",
        border: "Width"
    }, function(i, o) {
        ce.cssHooks[i + o] = {
            expand: function(e) {
                for (var t = 0, n = {}, r = "string" == typeof e ? e.split(" ") : [e]; t < 4; t++) n[i + Q[t] + o] = r[t] || r[t - 2] || r[0];
                return n
            }
        }, "margin" !== i && (ce.cssHooks[i + o].set = rt)
    }), ce.fn.extend({
        css: function(e, t) {
            return M(this, function(e, t, n) {
                var r, i, o = {},
                    a = 0;
                if (Array.isArray(t)) {
                    for (r = Xe(e), i = t.length; a < i; a++) o[t[a]] = ce.css(e, t[a], !1, r);
                    return o
                }
                return void 0 !== n ? ce.style(e, t, n) : ce.css(e, t)
            }, e, t, 1 < arguments.length)
        }
    }), ((ce.Tween = at).prototype = {
        constructor: at,
        init: function(e, t, n, r, i, o) {
            this.elem = e, this.prop = n, this.easing = i || ce.easing._default, this.options = t, this.start = this.now = this.cur(), this.end = r, this.unit = o || (ce.cssNumber[n] ? "" : "px")
        },
        cur: function() {
            var e = at.propHooks[this.prop];
            return e && e.get ? e.get(this) : at.propHooks._default.get(this)
        },
        run: function(e) {
            var t, n = at.propHooks[this.prop];
            return this.options.duration ? this.pos = t = ce.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) : at.propHooks._default.set(this), this
        }
    }).init.prototype = at.prototype, (at.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 = ce.css(e.elem, e.prop, "")) && "auto" !== t ? t : 0
            },
            set: function(e) {
                ce.fx.step[e.prop] ? ce.fx.step[e.prop](e) : 1 !== e.elem.nodeType || !ce.cssHooks[e.prop] && null == e.elem.style[Ze(e.prop)] ? e.elem[e.prop] = e.now : ce.style(e.elem, e.prop, e.now + e.unit)
            }
        }
    }).scrollTop = at.propHooks.scrollLeft = {
        set: function(e) {
            e.elem.nodeType && e.elem.parentNode && (e.elem[e.prop] = e.now)
        }
    }, ce.easing = {
        linear: function(e) {
            return e
        },
        swing: function(e) {
            return .5 - Math.cos(e * Math.PI) / 2
        },
        _default: "swing"
    }, ce.fx = at.prototype.init, ce.fx.step = {};
    var st, ut, lt, ct, ft = /^(?:toggle|show|hide)$/,
        pt = /queueHooks$/;

    function dt() {
        ut && (!1 === C.hidden && ie.requestAnimationFrame ? ie.requestAnimationFrame(dt) : ie.setTimeout(dt, ce.fx.interval), ce.fx.tick())
    }

    function ht() {
        return ie.setTimeout(function() {
            st = void 0
        }), st = Date.now()
    }

    function gt(e, t) {
        var n, r = 0,
            i = {
                height: e
            };
        for (t = t ? 1 : 0; r < 4; r += 2 - t) i["margin" + (n = Q[r])] = i["padding" + n] = e;
        return t && (i.opacity = i.width = e), i
    }

    function vt(e, t, n) {
        for (var r, i = (yt.tweeners[t] || []).concat(yt.tweeners["*"]), o = 0, a = i.length; o < a; o++)
            if (r = i[o].call(n, t, e)) return r
    }

    function yt(o, e, t) {
        var n, a, r = 0,
            i = yt.prefilters.length,
            s = ce.Deferred().always(function() {
                delete u.elem
            }),
            u = function() {
                if (a) return !1;
                for (var e = st || ht(), 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: ce.extend({}, e),
                opts: ce.extend(!0, {
                    specialEasing: {},
                    easing: ce.easing._default
                }, t),
                originalProperties: e,
                originalOptions: t,
                startTime: st || ht(),
                duration: t.duration,
                tweens: [],
                createTween: function(e, t) {
                    var n = ce.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 = F(n)], o = e[n], Array.isArray(o) && (i = o[1], o = e[n] = o[0]), n !== r && (e[r] = o, delete e[n]), (a = ce.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 = yt.prefilters[r].call(l, o, c, l.opts)) return v(n.stop) && (ce._queueHooks(l.elem, l.opts.queue).stop = n.stop.bind(n)), n;
        return ce.map(c, vt, l), v(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), ce.fx.timer(ce.extend(u, {
            elem: o,
            anim: l,
            queue: l.opts.queue
        })), l
    }
    ce.Animation = ce.extend(yt, {
        tweeners: {
            "*": [function(e, t) {
                var n = this.createTween(e, t);
                return te(n.elem, e, Y.exec(t), n), n
            }]
        },
        tweener: function(e, t) {
            v(e) ? (t = e, e = ["*"]) : e = e.match(D);
            for (var n, r = 0, i = e.length; r < i; r++) n = e[r], yt.tweeners[n] = yt.tweeners[n] || [], yt.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 && ee(e),
                v = _.get(e, "fxshow");
            for (r in n.queue || (null == (a = ce._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--, ce.queue(e, "fx").length || a.empty.fire()
                    })
                })), t)
                if (i = t[r], ft.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] || ce.style(e, r)
                }
            if ((u = !ce.isEmptyObject(t)) || !ce.isEmptyObject(d))
                for (r in f && 1 === e.nodeType && (n.overflow = [h.overflow, h.overflowX, h.overflowY], null == (l = v && v.display) && (l = _.get(e, "display")), "none" === (c = ce.css(e, "display")) && (l ? c = l : (re([e], !0), l = e.style.display || l, c = ce.css(e, "display"), re([e]))), ("inline" === c || "inline-block" === c && null != l) && "none" === ce.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 = _.access(e, "fxshow", {
                    display: l
                }), o && (v.hidden = !g), g && re([e], !0), p.done(function() {
                    for (r in g || re([e]), _.remove(e, "fxshow"), d) ce.style(e, r, d[r])
                })), u = vt(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 ? yt.prefilters.unshift(e) : yt.prefilters.push(e)
        }
    }), ce.speed = function(e, t, n) {
        var r = e && "object" == typeof e ? ce.extend({}, e) : {
            complete: n || !n && t || v(e) && e,
            duration: e,
            easing: n && t || t && !v(t) && t
        };
        return ce.fx.off ? r.duration = 0 : "number" != typeof r.duration && (r.duration in ce.fx.speeds ? r.duration = ce.fx.speeds[r.duration] : r.duration = ce.fx.speeds._default), null != r.queue && !0 !== r.queue || (r.queue = "fx"), r.old = r.complete, r.complete = function() {
            v(r.old) && r.old.call(this), r.queue && ce.dequeue(this, r.queue)
        }, r
    }, ce.fn.extend({
        fadeTo: function(e, t, n, r) {
            return this.filter(ee).css("opacity", 0).show().end().animate({
                opacity: t
            }, e, n, r)
        },
        animate: function(t, e, n, r) {
            var i = ce.isEmptyObject(t),
                o = ce.speed(e, n, r),
                a = function() {
                    var e = yt(this, ce.extend({}, t), o);
                    (i || _.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 && this.queue(i || "fx", []), this.each(function() {
                var e = !0,
                    t = null != i && i + "queueHooks",
                    n = ce.timers,
                    r = _.get(this);
                if (t) r[t] && r[t].stop && a(r[t]);
                else
                    for (t in r) r[t] && r[t].stop && pt.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 || ce.dequeue(this, i)
            })
        },
        finish: function(a) {
            return !1 !== a && (a = a || "fx"), this.each(function() {
                var e, t = _.get(this),
                    n = t[a + "queue"],
                    r = t[a + "queueHooks"],
                    i = ce.timers,
                    o = n ? n.length : 0;
                for (t.finish = !0, ce.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
            })
        }
    }), ce.each(["toggle", "show", "hide"], function(e, r) {
        var i = ce.fn[r];
        ce.fn[r] = function(e, t, n) {
            return null == e || "boolean" == typeof e ? i.apply(this, arguments) : this.animate(gt(r, !0), e, t, n)
        }
    }), ce.each({
        slideDown: gt("show"),
        slideUp: gt("hide"),
        slideToggle: gt("toggle"),
        fadeIn: {
            opacity: "show"
        },
        fadeOut: {
            opacity: "hide"
        },
        fadeToggle: {
            opacity: "toggle"
        }
    }, function(e, r) {
        ce.fn[e] = function(e, t, n) {
            return this.animate(r, e, t, n)
        }
    }), ce.timers = [], ce.fx.tick = function() {
        var e, t = 0,
            n = ce.timers;
        for (st = Date.now(); t < n.length; t++)(e = n[t])() || n[t] !== e || n.splice(t--, 1);
        n.length || ce.fx.stop(), st = void 0
    }, ce.fx.timer = function(e) {
        ce.timers.push(e), ce.fx.start()
    }, ce.fx.interval = 13, ce.fx.start = function() {
        ut || (ut = !0, dt())
    }, ce.fx.stop = function() {
        ut = null
    }, ce.fx.speeds = {
        slow: 600,
        fast: 200,
        _default: 400
    }, ce.fn.delay = function(r, e) {
        return r = ce.fx && ce.fx.speeds[r] || r, e = e || "fx", this.queue(e, function(e, t) {
            var n = ie.setTimeout(e, r);
            t.stop = function() {
                ie.clearTimeout(n)
            }
        })
    }, lt = C.createElement("input"), ct = C.createElement("select").appendChild(C.createElement("option")), lt.type = "checkbox", le.checkOn = "" !== lt.value, le.optSelected = ct.selected, (lt = C.createElement("input")).value = "t", lt.type = "radio", le.radioValue = "t" === lt.value;
    var mt, xt = ce.expr.attrHandle;
    ce.fn.extend({
        attr: function(e, t) {
            return M(this, ce.attr, e, t, 1 < arguments.length)
        },
        removeAttr: function(e) {
            return this.each(function() {
                ce.removeAttr(this, e)
            })
        }
    }), ce.extend({
        attr: function(e, t, n) {
            var r, i, o = e.nodeType;
            if (3 !== o && 8 !== o && 2 !== o) return "undefined" == typeof e.getAttribute ? ce.prop(e, t, n) : (1 === o && ce.isXMLDoc(e) || (i = ce.attrHooks[t.toLowerCase()] || (ce.expr.match.bool.test(t) ? mt : void 0)), void 0 !== n ? null === n ? void ce.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 = ce.find.attr(e, t)) ? void 0 : r)
        },
        attrHooks: {
            type: {
                set: function(e, t) {
                    if (!le.radioValue && "radio" === t && fe(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(D);
            if (i && 1 === e.nodeType)
                while (n = i[r++]) e.removeAttribute(n)
        }
    }), mt = {
        set: function(e, t, n) {
            return !1 === t ? ce.removeAttr(e, n) : e.setAttribute(n, n), n
        }
    }, ce.each(ce.expr.match.bool.source.match(/\w+/g), function(e, t) {
        var a = xt[t] || ce.find.attr;
        xt[t] = function(e, t, n) {
            var r, i, o = t.toLowerCase();
            return n || (i = xt[o], xt[o] = r, r = null != a(e, t, n) ? o : null, xt[o] = i), r
        }
    });
    var bt = /^(?:input|select|textarea|button)$/i,
        wt = /^(?:a|area)$/i;

    function Tt(e) {
        return (e.match(D) || []).join(" ")
    }

    function Ct(e) {
        return e.getAttribute && e.getAttribute("class") || ""
    }

    function kt(e) {
        return Array.isArray(e) ? e : "string" == typeof e && e.match(D) || []
    }
    ce.fn.extend({
        prop: function(e, t) {
            return M(this, ce.prop, e, t, 1 < arguments.length)
        },
        removeProp: function(e) {
            return this.each(function() {
                delete this[ce.propFix[e] || e]
            })
        }
    }), ce.extend({
        prop: function(e, t, n) {
            var r, i, o = e.nodeType;
            if (3 !== o && 8 !== o && 2 !== o) return 1 === o && ce.isXMLDoc(e) || (t = ce.propFix[t] || t, i = ce.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 = ce.find.attr(e, "tabindex");
                    return t ? parseInt(t, 10) : bt.test(e.nodeName) || wt.test(e.nodeName) && e.href ? 0 : -1
                }
            }
        },
        propFix: {
            "for": "htmlFor",
            "class": "className"
        }
    }), le.optSelected || (ce.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)
        }
    }), ce.each(["tabIndex", "readOnly", "maxLength", "cellSpacing", "cellPadding", "rowSpan", "colSpan", "useMap", "frameBorder", "contentEditable"], function() {
        ce.propFix[this.toLowerCase()] = this
    }), ce.fn.extend({
        addClass: function(t) {
            var e, n, r, i, o, a;
            return v(t) ? this.each(function(e) {
                ce(this).addClass(t.call(this, e, Ct(this)))
            }) : (e = kt(t)).length ? this.each(function() {
                if (r = Ct(this), n = 1 === this.nodeType && " " + Tt(r) + " ") {
                    for (o = 0; o < e.length; o++) i = e[o], n.indexOf(" " + i + " ") < 0 && (n += i + " ");
                    a = Tt(n), r !== a && this.setAttribute("class", a)
                }
            }) : this
        },
        removeClass: function(t) {
            var e, n, r, i, o, a;
            return v(t) ? this.each(function(e) {
                ce(this).removeClass(t.call(this, e, Ct(this)))
            }) : arguments.length ? (e = kt(t)).length ? this.each(function() {
                if (r = Ct(this), n = 1 === this.nodeType && " " + Tt(r) + " ") {
                    for (o = 0; o < e.length; o++) {
                        i = e[o];
                        while (-1 < n.indexOf(" " + i + " ")) n = n.replace(" " + i + " ", " ")
                    }
                    a = Tt(n), r !== a && this.setAttribute("class", a)
                }
            }) : this : this.attr("class", "")
        },
        toggleClass: function(t, n) {
            var e, r, i, o, a = typeof t,
                s = "string" === a || Array.isArray(t);
            return v(t) ? this.each(function(e) {
                ce(this).toggleClass(t.call(this, e, Ct(this), n), n)
            }) : "boolean" == typeof n && s ? n ? this.addClass(t) : this.removeClass(t) : (e = kt(t), this.each(function() {
                if (s)
                    for (o = ce(this), i = 0; i < e.length; i++) r = e[i], o.hasClass(r) ? o.removeClass(r) : o.addClass(r);
                else void 0 !== t && "boolean" !== a || ((r = Ct(this)) && _.set(this, "__className__", r), this.setAttribute && this.setAttribute("class", r || !1 === t ? "" : _.get(this, "__className__") || ""))
            }))
        },
        hasClass: function(e) {
            var t, n, r = 0;
            t = " " + e + " ";
            while (n = this[r++])
                if (1 === n.nodeType && -1 < (" " + Tt(Ct(n)) + " ").indexOf(t)) return !0;
            return !1
        }
    });
    var St = /\r/g;
    ce.fn.extend({
        val: function(n) {
            var r, e, i, t = this[0];
            return arguments.length ? (i = v(n), this.each(function(e) {
                var t;
                1 === this.nodeType && (null == (t = i ? n.call(this, e, ce(this).val()) : n) ? t = "" : "number" == typeof t ? t += "" : Array.isArray(t) && (t = ce.map(t, function(e) {
                    return null == e ? "" : e + ""
                })), (r = ce.valHooks[this.type] || ce.valHooks[this.nodeName.toLowerCase()]) && "set" in r && void 0 !== r.set(this, t, "value") || (this.value = t))
            })) : t ? (r = ce.valHooks[t.type] || ce.valHooks[t.nodeName.toLowerCase()]) && "get" in r && void 0 !== (e = r.get(t, "value")) ? e : "string" == typeof(e = t.value) ? e.replace(St, "") : null == e ? "" : e : void 0
        }
    }), ce.extend({
        valHooks: {
            option: {
                get: function(e) {
                    var t = ce.find.attr(e, "value");
                    return null != t ? t : Tt(ce.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 || !fe(n.parentNode, "optgroup"))) {
                            if (t = ce(n).val(), a) return t;
                            s.push(t)
                        }
                    return s
                },
                set: function(e, t) {
                    var n, r, i = e.options,
                        o = ce.makeArray(t),
                        a = i.length;
                    while (a--)((r = i[a]).selected = -1 < ce.inArray(ce.valHooks.option.get(r), o)) && (n = !0);
                    return n || (e.selectedIndex = -1), o
                }
            }
        }
    }), ce.each(["radio", "checkbox"], function() {
        ce.valHooks[this] = {
            set: function(e, t) {
                if (Array.isArray(t)) return e.checked = -1 < ce.inArray(ce(e).val(), t)
            }
        }, le.checkOn || (ce.valHooks[this].get = function(e) {
            return null === e.getAttribute("value") ? "on" : e.value
        })
    });
    var Et = ie.location,
        jt = {
            guid: Date.now()
        },
        At = /\?/;
    ce.parseXML = function(e) {
        var t, n;
        if (!e || "string" != typeof e) return null;
        try {
            t = (new ie.DOMParser).parseFromString(e, "text/xml")
        } catch (e) {}
        return n = t && t.getElementsByTagName("parsererror")[0], t && !n || ce.error("Invalid XML: " + (n ? ce.map(n.childNodes, function(e) {
            return e.textContent
        }).join("\n") : e)), t
    };
    var Dt = /^(?:focusinfocus|focusoutblur)$/,
        Nt = function(e) {
            e.stopPropagation()
        };
    ce.extend(ce.event, {
        trigger: function(e, t, n, r) {
            var i, o, a, s, u, l, c, f, p = [n || C],
                d = ue.call(e, "type") ? e.type : e,
                h = ue.call(e, "namespace") ? e.namespace.split(".") : [];
            if (o = f = a = n = n || C, 3 !== n.nodeType && 8 !== n.nodeType && !Dt.test(d + ce.event.triggered) && (-1 < d.indexOf(".") && (d = (h = d.split(".")).shift(), h.sort()), u = d.indexOf(":") < 0 && "on" + d, (e = e[ce.expando] ? e : new ce.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] : ce.makeArray(t, [e]), c = ce.event.special[d] || {}, r || !c.trigger || !1 !== c.trigger.apply(n, t))) {
                if (!r && !c.noBubble && !y(n)) {
                    for (s = c.delegateType || d, Dt.test(s + d) || (o = o.parentNode); o; o = o.parentNode) p.push(o), a = o;
                    a === (n.ownerDocument || C) && p.push(a.defaultView || a.parentWindow || ie)
                }
                i = 0;
                while ((o = p[i++]) && !e.isPropagationStopped()) f = o, e.type = 1 < i ? s : c.bindType || d, (l = (_.get(o, "events") || Object.create(null))[e.type] && _.get(o, "handle")) && l.apply(o, t), (l = u && o[u]) && l.apply && $(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) || !$(n) || u && v(n[d]) && !y(n) && ((a = n[u]) && (n[u] = null), ce.event.triggered = d, e.isPropagationStopped() && f.addEventListener(d, Nt), n[d](), e.isPropagationStopped() && f.removeEventListener(d, Nt), ce.event.triggered = void 0, a && (n[u] = a)), e.result
            }
        },
        simulate: function(e, t, n) {
            var r = ce.extend(new ce.Event, n, {
                type: e,
                isSimulated: !0
            });
            ce.event.trigger(r, null, t)
        }
    }), ce.fn.extend({
        trigger: function(e, t) {
            return this.each(function() {
                ce.event.trigger(e, t, this)
            })
        },
        triggerHandler: function(e, t) {
            var n = this[0];
            if (n) return ce.event.trigger(e, t, n, !0)
        }
    });
    var qt = /\[\]$/,
        Lt = /\r?\n/g,
        Ht = /^(?:submit|button|image|reset|file)$/i,
        Ot = /^(?:input|select|textarea|keygen)/i;

    function Pt(n, e, r, i) {
        var t;
        if (Array.isArray(e)) ce.each(e, function(e, t) {
            r || qt.test(n) ? i(n, t) : Pt(n + "[" + ("object" == typeof t && null != t ? e : "") + "]", t, r, i)
        });
        else if (r || "object" !== x(e)) i(n, e);
        else
            for (t in e) Pt(n + "[" + t + "]", e[t], r, i)
    }
    ce.param = function(e, t) {
        var n, r = [],
            i = function(e, t) {
                var n = v(t) ? t() : t;
                r[r.length] = encodeURIComponent(e) + "=" + encodeURIComponent(null == n ? "" : n)
            };
        if (null == e) return "";
        if (Array.isArray(e) || e.jquery && !ce.isPlainObject(e)) ce.each(e, function() {
            i(this.name, this.value)
        });
        else
            for (n in e) Pt(n, e[n], t, i);
        return r.join("&")
    }, ce.fn.extend({
        serialize: function() {
            return ce.param(this.serializeArray())
        },
        serializeArray: function() {
            return this.map(function() {
                var e = ce.prop(this, "elements");
                return e ? ce.makeArray(e) : this
            }).filter(function() {
                var e = this.type;
                return this.name && !ce(this).is(":disabled") && Ot.test(this.nodeName) && !Ht.test(e) && (this.checked || !we.test(e))
            }).map(function(e, t) {
                var n = ce(this).val();
                return null == n ? null : Array.isArray(n) ? ce.map(n, function(e) {
                    return {
                        name: t.name,
                        value: e.replace(Lt, "\r\n")
                    }
                }) : {
                    name: t.name,
                    value: n.replace(Lt, "\r\n")
                }
            }).get()
        }
    });
    var Mt = /%20/g,
        Rt = /#.*$/,
        It = /([?&])_=[^&]*/,
        Wt = /^(.*?):[ \t]*([^\r\n]*)$/gm,
        Ft = /^(?:GET|HEAD)$/,
        $t = /^\/\//,
        Bt = {},
        _t = {},
        zt = "*/".concat("*"),
        Xt = C.createElement("a");

    function Ut(o) {
        return function(e, t) {
            "string" != typeof e && (t = e, e = "*");
            var n, r = 0,
                i = e.toLowerCase().match(D) || [];
            if (v(t))
                while (n = i[r++]) "+" === n[0] ? (n = n.slice(1) || "*", (o[n] = o[n] || []).unshift(t)) : (o[n] = o[n] || []).push(t)
        }
    }

    function Vt(t, i, o, a) {
        var s = {},
            u = t === _t;

        function l(e) {
            var r;
            return s[e] = !0, ce.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 Gt(e, t) {
        var n, r, i = ce.ajaxSettings.flatOptions || {};
        for (n in t) void 0 !== t[n] && ((i[n] ? e : r || (r = {}))[n] = t[n]);
        return r && ce.extend(!0, e, r), e
    }
    Xt.href = Et.href, ce.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: {
                "*": zt,
                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": ce.parseXML
            },
            flatOptions: {
                url: !0,
                context: !0
            }
        },
        ajaxSetup: function(e, t) {
            return t ? Gt(Gt(e, ce.ajaxSettings), t) : Gt(ce.ajaxSettings, e)
        },
        ajaxPrefilter: Ut(Bt),
        ajaxTransport: Ut(_t),
        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 = ce.ajaxSetup({}, t),
                y = v.context || v,
                m = v.context && (y.nodeType || y.jquery) ? ce(y) : ce.event,
                x = ce.Deferred(),
                b = ce.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 = Wt.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($t, Et.protocol + "//"), v.type = t.method || t.type || v.method || v.type, v.dataTypes = (v.dataType || "*").toLowerCase().match(D) || [""], null == v.crossDomain) {
                r = C.createElement("a");
                try {
                    r.href = v.url, r.href = r.href, v.crossDomain = Xt.protocol + "//" + Xt.host != r.protocol + "//" + r.host
                } catch (e) {
                    v.crossDomain = !0
                }
            }
            if (v.data && v.processData && "string" != typeof v.data && (v.data = ce.param(v.data, v.traditional)), Vt(Bt, v, t, T), h) return T;
            for (i in (g = ce.event && v.global) && 0 == ce.active++ && ce.event.trigger("ajaxStart"), v.type = v.type.toUpperCase(), v.hasContent = !Ft.test(v.type), f = v.url.replace(Rt, ""), v.hasContent ? v.data && v.processData && 0 === (v.contentType || "").indexOf("application/x-www-form-urlencoded") && (v.data = v.data.replace(Mt, "+")) : (o = v.url.slice(f.length), v.data && (v.processData || "string" == typeof v.data) && (f += (At.test(f) ? "&" : "?") + v.data, delete v.data), !1 === v.cache && (f = f.replace(It, "$1"), o = (At.test(f) ? "&" : "?") + "_=" + jt.guid++ + o), v.url = f + o), v.ifModified && (ce.lastModified[f] && T.setRequestHeader("If-Modified-Since", ce.lastModified[f]), ce.etag[f] && T.setRequestHeader("If-None-Match", ce.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] ? ", " + zt + "; 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 = Vt(_t, v, t, T)) {
                if (T.readyState = 1, g && m.trigger("ajaxSend", [T, v]), h) return T;
                v.async && 0 < v.timeout && (d = ie.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 && ie.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)), !i && -1 < ce.inArray("script", v.dataTypes) && ce.inArray("json", v.dataTypes) < 0 && (v.converters["text script"] = function() {}), 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")) && (ce.lastModified[f] = u), (u = T.getResponseHeader("etag")) && (ce.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]), --ce.active || ce.event.trigger("ajaxStop")))
            }
            return T
        },
        getJSON: function(e, t, n) {
            return ce.get(e, t, n, "json")
        },
        getScript: function(e, t) {
            return ce.get(e, void 0, t, "script")
        }
    }), ce.each(["get", "post"], function(e, i) {
        ce[i] = function(e, t, n, r) {
            return v(t) && (r = r || n, n = t, t = void 0), ce.ajax(ce.extend({
                url: e,
                type: i,
                dataType: r,
                data: t,
                success: n
            }, ce.isPlainObject(e) && e))
        }
    }), ce.ajaxPrefilter(function(e) {
        var t;
        for (t in e.headers) "content-type" === t.toLowerCase() && (e.contentType = e.headers[t] || "")
    }), ce._evalUrl = function(e, t, n) {
        return ce.ajax({
            url: e,
            type: "GET",
            dataType: "script",
            cache: !0,
            async: !1,
            global: !1,
            converters: {
                "text script": function() {}
            },
            dataFilter: function(e) {
                ce.globalEval(e, t, n)
            }
        })
    }, ce.fn.extend({
        wrapAll: function(e) {
            var t;
            return this[0] && (v(e) && (e = e.call(this[0])), t = ce(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 v(n) ? this.each(function(e) {
                ce(this).wrapInner(n.call(this, e))
            }) : this.each(function() {
                var e = ce(this),
                    t = e.contents();
                t.length ? t.wrapAll(n) : e.append(n)
            })
        },
        wrap: function(t) {
            var n = v(t);
            return this.each(function(e) {
                ce(this).wrapAll(n ? t.call(this, e) : t)
            })
        },
        unwrap: function(e) {
            return this.parent(e).not("body").each(function() {
                ce(this).replaceWith(this.childNodes)
            }), this
        }
    }), ce.expr.pseudos.hidden = function(e) {
        return !ce.expr.pseudos.visible(e)
    }, ce.expr.pseudos.visible = function(e) {
        return !!(e.offsetWidth || e.offsetHeight || e.getClientRects().length)
    }, ce.ajaxSettings.xhr = function() {
        try {
            return new ie.XMLHttpRequest
        } catch (e) {}
    };
    var Yt = {
            0: 200,
            1223: 204
        },
        Qt = ce.ajaxSettings.xhr();
    le.cors = !!Qt && "withCredentials" in Qt, le.ajax = Qt = !!Qt, ce.ajaxTransport(function(i) {
        var o, a;
        if (le.cors || Qt && !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(Yt[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 && ie.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()
            }
        }
    }), ce.ajaxPrefilter(function(e) {
        e.crossDomain && (e.contents.script = !1)
    }), ce.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 ce.globalEval(e), e
            }
        }
    }), ce.ajaxPrefilter("script", function(e) {
        void 0 === e.cache && (e.cache = !1), e.crossDomain && (e.type = "GET")
    }), ce.ajaxTransport("script", function(n) {
        var r, i;
        if (n.crossDomain || n.scriptAttrs) return {
            send: function(e, t) {
                r = ce("<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)
                }), C.head.appendChild(r[0])
            },
            abort: function() {
                i && i()
            }
        }
    });
    var Jt, Kt = [],
        Zt = /(=)\?(?=&|$)|\?\?/;
    ce.ajaxSetup({
        jsonp: "callback",
        jsonpCallback: function() {
            var e = Kt.pop() || ce.expando + "_" + jt.guid++;
            return this[e] = !0, e
        }
    }), ce.ajaxPrefilter("json jsonp", function(e, t, n) {
        var r, i, o, a = !1 !== e.jsonp && (Zt.test(e.url) ? "url" : "string" == typeof e.data && 0 === (e.contentType || "").indexOf("application/x-www-form-urlencoded") && Zt.test(e.data) && "data");
        if (a || "jsonp" === e.dataTypes[0]) return r = e.jsonpCallback = v(e.jsonpCallback) ? e.jsonpCallback() : e.jsonpCallback, a ? e[a] = e[a].replace(Zt, "$1" + r) : !1 !== e.jsonp && (e.url += (At.test(e.url) ? "&" : "?") + e.jsonp + "=" + r), e.converters["script json"] = function() {
            return o || ce.error(r + " was not called"), o[0]
        }, e.dataTypes[0] = "json", i = ie[r], ie[r] = function() {
            o = arguments
        }, n.always(function() {
            void 0 === i ? ce(ie).removeProp(r) : ie[r] = i, e[r] && (e.jsonpCallback = t.jsonpCallback, Kt.push(r)), o && v(i) && i(o[0]), o = i = void 0
        }), "script"
    }), le.createHTMLDocument = ((Jt = C.implementation.createHTMLDocument("").body).innerHTML = "<form></form><form></form>", 2 === Jt.childNodes.length), ce.parseHTML = function(e, t, n) {
        return "string" != typeof e ? [] : ("boolean" == typeof t && (n = t, t = !1), t || (le.createHTMLDocument ? ((r = (t = C.implementation.createHTMLDocument("")).createElement("base")).href = C.location.href, t.head.appendChild(r)) : t = C), o = !n && [], (i = w.exec(e)) ? [t.createElement(i[1])] : (i = Ae([e], t, o), o && o.length && ce(o).remove(), ce.merge([], i.childNodes)));
        var r, i, o
    }, ce.fn.load = function(e, t, n) {
        var r, i, o, a = this,
            s = e.indexOf(" ");
        return -1 < s && (r = Tt(e.slice(s)), e = e.slice(0, s)), v(t) ? (n = t, t = void 0) : t && "object" == typeof t && (i = "POST"), 0 < a.length && ce.ajax({
            url: e,
            type: i || "GET",
            dataType: "html",
            data: t
        }).done(function(e) {
            o = arguments, a.html(r ? ce("<div>").append(ce.parseHTML(e)).find(r) : e)
        }).always(n && function(e, t) {
            a.each(function() {
                n.apply(this, o || [e.responseText, t, e])
            })
        }), this
    }, ce.expr.pseudos.animated = function(t) {
        return ce.grep(ce.timers, function(e) {
            return t === e.elem
        }).length
    }, ce.offset = {
        setOffset: function(e, t, n) {
            var r, i, o, a, s, u, l = ce.css(e, "position"),
                c = ce(e),
                f = {};
            "static" === l && (e.style.position = "relative"), s = c.offset(), o = ce.css(e, "top"), u = ce.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), v(t) && (t = t.call(e, n, ce.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)
        }
    }, ce.fn.extend({
        offset: function(t) {
            if (arguments.length) return void 0 === t ? this : this.each(function(e) {
                ce.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" === ce.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" === ce.css(e, "position")) e = e.parentNode;
                    e && e !== r && 1 === e.nodeType && ((i = ce(e).offset()).top += ce.css(e, "borderTopWidth", !0), i.left += ce.css(e, "borderLeftWidth", !0))
                }
                return {
                    top: t.top - i.top - ce.css(r, "marginTop", !0),
                    left: t.left - i.left - ce.css(r, "marginLeft", !0)
                }
            }
        },
        offsetParent: function() {
            return this.map(function() {
                var e = this.offsetParent;
                while (e && "static" === ce.css(e, "position")) e = e.offsetParent;
                return e || J
            })
        }
    }), ce.each({
        scrollLeft: "pageXOffset",
        scrollTop: "pageYOffset"
    }, function(t, i) {
        var o = "pageYOffset" === i;
        ce.fn[t] = function(e) {
            return M(this, function(e, t, n) {
                var r;
                if (y(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)
        }
    }), ce.each(["top", "left"], function(e, n) {
        ce.cssHooks[n] = Ye(le.pixelPosition, function(e, t) {
            if (t) return t = Ge(e, n), _e.test(t) ? ce(e).position()[n] + "px" : t
        })
    }), ce.each({
        Height: "height",
        Width: "width"
    }, function(a, s) {
        ce.each({
            padding: "inner" + a,
            content: s,
            "": "outer" + a
        }, function(r, o) {
            ce.fn[o] = function(e, t) {
                var n = arguments.length && (r || "boolean" != typeof e),
                    i = r || (!0 === e || !0 === t ? "margin" : "border");
                return M(this, function(e, t, n) {
                    var r;
                    return y(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 ? ce.css(e, t, i) : ce.style(e, t, n, i)
                }, s, n ? e : void 0, n)
            }
        })
    }), ce.each(["ajaxStart", "ajaxStop", "ajaxComplete", "ajaxError", "ajaxSuccess", "ajaxSend"], function(e, t) {
        ce.fn[t] = function(e) {
            return this.on(t, e)
        }
    }), ce.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)
        },
        hover: function(e, t) {
            return this.on("mouseenter", e).on("mouseleave", t || e)
        }
    }), ce.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) {
        ce.fn[n] = function(e, t) {
            return 0 < arguments.length ? this.on(n, null, e, t) : this.trigger(n)
        }
    });
    var en = /^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;
    ce.proxy = function(e, t) {
        var n, r, i;
        if ("string" == typeof t && (n = e[t], t = e, e = n), v(e)) return r = ae.call(arguments, 2), (i = function() {
            return e.apply(t || this, r.concat(ae.call(arguments)))
        }).guid = e.guid = e.guid || ce.guid++, i
    }, ce.holdReady = function(e) {
        e ? ce.readyWait++ : ce.ready(!0)
    }, ce.isArray = Array.isArray, ce.parseJSON = JSON.parse, ce.nodeName = fe, ce.isFunction = v, ce.isWindow = y, ce.camelCase = F, ce.type = x, ce.now = Date.now, ce.isNumeric = function(e) {
        var t = ce.type(e);
        return ("number" === t || "string" === t) && !isNaN(e - parseFloat(e))
    }, ce.trim = function(e) {
        return null == e ? "" : (e + "").replace(en, "$1")
    }, "function" == typeof define && define.amd && define("jquery", [], function() {
        return ce
    });
    var tn = ie.jQuery,
        nn = ie.$;
    return ce.noConflict = function(e) {
        return ie.$ === ce && (ie.$ = nn), e && ie.jQuery === ce && (ie.jQuery = tn), ce
    }, "undefined" == typeof e && (ie.jQuery = ie.$ = ce), ce
});
jQuery.noConflict(); /*! jQuery Migrate v3.4.1 | (c) OpenJS Foundation and other contributors | jquery.org/license */
"undefined" == typeof jQuery.migrateMute && (jQuery.migrateMute = !0),
    function(t) {
        "use strict";
        "function" == typeof define && define.amd ? define(["jquery"], function(e) {
            return t(e, window)
        }) : "object" == typeof module && module.exports ? module.exports = t(require("jquery"), window) : t(jQuery, window)
    }(function(s, n) {
        "use strict";

        function e(e) {
            return 0 <= function(e, t) {
                for (var r = /^(\d+)\.(\d+)\.(\d+)/, n = r.exec(e) || [], o = r.exec(t) || [], a = 1; a <= 3; a++) {
                    if (+o[a] < +n[a]) return 1;
                    if (+n[a] < +o[a]) return -1
                }
                return 0
            }(s.fn.jquery, e)
        }
        s.migrateVersion = "3.4.1";
        var t = Object.create(null);
        s.migrateDisablePatches = function() {
            for (var e = 0; e < arguments.length; e++) t[arguments[e]] = !0
        }, s.migrateEnablePatches = function() {
            for (var e = 0; e < arguments.length; e++) delete t[arguments[e]]
        }, s.migrateIsPatchEnabled = function(e) {
            return !t[e]
        }, n.console && n.console.log && (s && e("3.0.0") && !e("5.0.0") || n.console.log("JQMIGRATE: jQuery 3.x-4.x REQUIRED"), s.migrateWarnings && n.console.log("JQMIGRATE: Migrate plugin loaded multiple times"), n.console.log("JQMIGRATE: Migrate is installed" + (s.migrateMute ? "" : " with logging active") + ", version " + s.migrateVersion));
        var o = {};

        function u(e, t) {
            var r = n.console;
            !s.migrateIsPatchEnabled(e) || s.migrateDeduplicateWarnings && o[t] || (o[t] = !0, s.migrateWarnings.push(t + " [" + e + "]"), r && r.warn && !s.migrateMute && (r.warn("JQMIGRATE: " + t), s.migrateTrace && r.trace && r.trace()))
        }

        function r(e, t, r, n, o) {
            Object.defineProperty(e, t, {
                configurable: !0,
                enumerable: !0,
                get: function() {
                    return u(n, o), r
                },
                set: function(e) {
                    u(n, o), r = e
                }
            })
        }

        function a(e, t, r, n, o) {
            var a = e[t];
            e[t] = function() {
                return o && u(n, o), (s.migrateIsPatchEnabled(n) ? r : a || s.noop).apply(this, arguments)
            }
        }

        function c(e, t, r, n, o) {
            if (!o) throw new Error("No warning message provided");
            return a(e, t, r, n, o), 0
        }

        function i(e, t, r, n) {
            return a(e, t, r, n), 0
        }
        s.migrateDeduplicateWarnings = !0, s.migrateWarnings = [], void 0 === s.migrateTrace && (s.migrateTrace = !0), s.migrateReset = function() {
            o = {}, s.migrateWarnings.length = 0
        }, "BackCompat" === n.document.compatMode && u("quirks", "jQuery is not compatible with Quirks Mode");
        var d, l, p, f = {},
            m = s.fn.init,
            y = s.find,
            h = /\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/,
            g = /\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/g,
            v = /^[\s\uFEFF\xA0]+|([^\s\uFEFF\xA0])[\s\uFEFF\xA0]+$/g;
        for (d in i(s.fn, "init", function(e) {
                var t = Array.prototype.slice.call(arguments);
                return s.migrateIsPatchEnabled("selector-empty-id") && "string" == typeof e && "#" === e && (u("selector-empty-id", "jQuery( '#' ) is not a valid selector"), t[0] = []), m.apply(this, t)
            }, "selector-empty-id"), s.fn.init.prototype = s.fn, i(s, "find", function(t) {
                var r = Array.prototype.slice.call(arguments);
                if ("string" == typeof t && h.test(t)) try {
                    n.document.querySelector(t)
                } catch (e) {
                    t = t.replace(g, function(e, t, r, n) {
                        return "[" + t + r + '"' + n + '"]'
                    });
                    try {
                        n.document.querySelector(t), u("selector-hash", "Attribute selector with '#' must be quoted: " + r[0]), r[0] = t
                    } catch (e) {
                        u("selector-hash", "Attribute selector with '#' was not fixed: " + r[0])
                    }
                }
                return y.apply(this, r)
            }, "selector-hash"), y) Object.prototype.hasOwnProperty.call(y, d) && (s.find[d] = y[d]);
        c(s.fn, "size", function() {
            return this.length
        }, "size", "jQuery.fn.size() is deprecated and removed; use the .length property"), c(s, "parseJSON", function() {
            return JSON.parse.apply(null, arguments)
        }, "parseJSON", "jQuery.parseJSON is deprecated; use JSON.parse"), c(s, "holdReady", s.holdReady, "holdReady", "jQuery.holdReady is deprecated"), c(s, "unique", s.uniqueSort, "unique", "jQuery.unique is deprecated; use jQuery.uniqueSort"), r(s.expr, "filters", s.expr.pseudos, "expr-pre-pseudos", "jQuery.expr.filters is deprecated; use jQuery.expr.pseudos"), r(s.expr, ":", s.expr.pseudos, "expr-pre-pseudos", "jQuery.expr[':'] is deprecated; use jQuery.expr.pseudos"), e("3.1.1") && c(s, "trim", function(e) {
            return null == e ? "" : (e + "").replace(v, "$1")
        }, "trim", "jQuery.trim is deprecated; use String.prototype.trim"), e("3.2.0") && (c(s, "nodeName", function(e, t) {
            return e.nodeName && e.nodeName.toLowerCase() === t.toLowerCase()
        }, "nodeName", "jQuery.nodeName is deprecated"), c(s, "isArray", Array.isArray, "isArray", "jQuery.isArray is deprecated; use Array.isArray")), e("3.3.0") && (c(s, "isNumeric", function(e) {
            var t = typeof e;
            return ("number" == t || "string" == t) && !isNaN(e - parseFloat(e))
        }, "isNumeric", "jQuery.isNumeric() is deprecated"), s.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "), function(e, t) {
            f["[object " + t + "]"] = t.toLowerCase()
        }), c(s, "type", function(e) {
            return null == e ? e + "" : "object" == typeof e || "function" == typeof e ? f[Object.prototype.toString.call(e)] || "object" : typeof e
        }, "type", "jQuery.type is deprecated"), c(s, "isFunction", function(e) {
            return "function" == typeof e
        }, "isFunction", "jQuery.isFunction() is deprecated"), c(s, "isWindow", function(e) {
            return null != e && e === e.window
        }, "isWindow", "jQuery.isWindow() is deprecated")), s.ajax && (l = s.ajax, p = /(=)\?(?=&|$)|\?\?/, i(s, "ajax", function() {
            var e = l.apply(this, arguments);
            return e.promise && (c(e, "success", e.done, "jqXHR-methods", "jQXHR.success is deprecated and removed"), c(e, "error", e.fail, "jqXHR-methods", "jQXHR.error is deprecated and removed"), c(e, "complete", e.always, "jqXHR-methods", "jQXHR.complete is deprecated and removed")), e
        }, "jqXHR-methods"), e("4.0.0") || s.ajaxPrefilter("+json", function(e) {
            !1 !== e.jsonp && (p.test(e.url) || "string" == typeof e.data && 0 === (e.contentType || "").indexOf("application/x-www-form-urlencoded") && p.test(e.data)) && u("jsonp-promotion", "JSON-to-JSONP auto-promotion is deprecated")
        }));
        var j = s.fn.removeAttr,
            b = s.fn.toggleClass,
            w = /\S+/g;

        function x(e) {
            return e.replace(/-([a-z])/g, function(e, t) {
                return t.toUpperCase()
            })
        }
        i(s.fn, "removeAttr", function(e) {
            var r = this,
                n = !1;
            return s.each(e.match(w), function(e, t) {
                s.expr.match.bool.test(t) && r.each(function() {
                    if (!1 !== s(this).prop(t)) return !(n = !0)
                }), n && (u("removeAttr-bool", "jQuery.fn.removeAttr no longer sets boolean properties: " + t), r.prop(t, !1))
            }), j.apply(this, arguments)
        }, "removeAttr-bool"), i(s.fn, "toggleClass", function(t) {
            return void 0 !== t && "boolean" != typeof t ? b.apply(this, arguments) : (u("toggleClass-bool", "jQuery.fn.toggleClass( boolean ) is deprecated"), this.each(function() {
                var e = this.getAttribute && this.getAttribute("class") || "";
                e && s.data(this, "__className__", e), this.setAttribute && this.setAttribute("class", !e && !1 !== t && s.data(this, "__className__") || "")
            }))
        }, "toggleClass-bool");
        var Q, A, R = !1,
            C = /^[a-z]/,
            N = /^(?:Border(?:Top|Right|Bottom|Left)?(?:Width|)|(?:Margin|Padding)?(?:Top|Right|Bottom|Left)?|(?:Min|Max)?(?:Width|Height))$/;
        s.swap && s.each(["height", "width", "reliableMarginRight"], function(e, t) {
            var r = s.cssHooks[t] && s.cssHooks[t].get;
            r && (s.cssHooks[t].get = function() {
                var e;
                return R = !0, e = r.apply(this, arguments), R = !1, e
            })
        }), i(s, "swap", function(e, t, r, n) {
            var o, a, i = {};
            for (a in R || u("swap", "jQuery.swap() is undocumented and deprecated"), t) i[a] = e.style[a], e.style[a] = t[a];
            for (a in o = r.apply(e, n || []), t) e.style[a] = i[a];
            return o
        }, "swap"), e("3.4.0") && "undefined" != typeof Proxy && (s.cssProps = new Proxy(s.cssProps || {}, {
            set: function() {
                return u("cssProps", "jQuery.cssProps is deprecated"), Reflect.set.apply(this, arguments)
            }
        })), e("4.0.0") ? (A = {
            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
        }, "undefined" != typeof Proxy ? s.cssNumber = new Proxy(A, {
            get: function() {
                return u("css-number", "jQuery.cssNumber is deprecated"), Reflect.get.apply(this, arguments)
            },
            set: function() {
                return u("css-number", "jQuery.cssNumber is deprecated"), Reflect.set.apply(this, arguments)
            }
        }) : s.cssNumber = A) : A = s.cssNumber, Q = s.fn.css, i(s.fn, "css", function(e, t) {
            var r, n, o = this;
            return e && "object" == typeof e && !Array.isArray(e) ? (s.each(e, function(e, t) {
                s.fn.css.call(o, e, t)
            }), this) : ("number" == typeof t && (r = x(e), n = r, C.test(n) && N.test(n[0].toUpperCase() + n.slice(1)) || A[r] || u("css-number", 'Number-typed values are deprecated for jQuery.fn.css( "' + e + '", value )')), Q.apply(this, arguments))
        }, "css-number");
        var S, P, k, H, E = s.data;
        i(s, "data", function(e, t, r) {
            var n, o, a;
            if (t && "object" == typeof t && 2 === arguments.length) {
                for (a in n = s.hasData(e) && E.call(this, e), o = {}, t) a !== x(a) ? (u("data-camelCase", "jQuery.data() always sets/gets camelCased names: " + a), n[a] = t[a]) : o[a] = t[a];
                return E.call(this, e, o), t
            }
            return t && "string" == typeof t && t !== x(t) && (n = s.hasData(e) && E.call(this, e)) && t in n ? (u("data-camelCase", "jQuery.data() always sets/gets camelCased names: " + t), 2 < arguments.length && (n[t] = r), n[t]) : E.apply(this, arguments)
        }, "data-camelCase"), s.fx && (k = s.Tween.prototype.run, H = function(e) {
            return e
        }, i(s.Tween.prototype, "run", function() {
            1 < s.easing[this.easing].length && (u("easing-one-arg", "'jQuery.easing." + this.easing.toString() + "' should use only one argument"), s.easing[this.easing] = H), k.apply(this, arguments)
        }, "easing-one-arg"), S = s.fx.interval, P = "jQuery.fx.interval is deprecated", n.requestAnimationFrame && Object.defineProperty(s.fx, "interval", {
            configurable: !0,
            enumerable: !0,
            get: function() {
                return n.document.hidden || u("fx-interval", P), s.migrateIsPatchEnabled("fx-interval") && void 0 === S ? 13 : S
            },
            set: function(e) {
                u("fx-interval", P), S = e
            }
        }));
        var M = s.fn.load,
            q = s.event.add,
            O = s.event.fix;
        s.event.props = [], s.event.fixHooks = {}, r(s.event.props, "concat", s.event.props.concat, "event-old-patch", "jQuery.event.props.concat() is deprecated and removed"), i(s.event, "fix", function(e) {
            var t, r = e.type,
                n = this.fixHooks[r],
                o = s.event.props;
            if (o.length) {
                u("event-old-patch", "jQuery.event.props are deprecated and removed: " + o.join());
                while (o.length) s.event.addProp(o.pop())
            }
            if (n && !n._migrated_ && (n._migrated_ = !0, u("event-old-patch", "jQuery.event.fixHooks are deprecated and removed: " + r), (o = n.props) && o.length))
                while (o.length) s.event.addProp(o.pop());
            return t = O.call(this, e), n && n.filter ? n.filter(t, e) : t
        }, "event-old-patch"), i(s.event, "add", function(e, t) {
            return e === n && "load" === t && "complete" === n.document.readyState && u("load-after-event", "jQuery(window).on('load'...) called after load event occurred"), q.apply(this, arguments)
        }, "load-after-event"), s.each(["load", "unload", "error"], function(e, t) {
            i(s.fn, t, function() {
                var e = Array.prototype.slice.call(arguments, 0);
                return "load" === t && "string" == typeof e[0] ? M.apply(this, e) : (u("shorthand-removed-v3", "jQuery.fn." + t + "() is deprecated"), e.splice(0, 0, t), arguments.length ? this.on.apply(this, e) : (this.triggerHandler.apply(this, e), this))
            }, "shorthand-removed-v3")
        }), s.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, r) {
            c(s.fn, r, function(e, t) {
                return 0 < arguments.length ? this.on(r, null, e, t) : this.trigger(r)
            }, "shorthand-deprecated-v3", "jQuery.fn." + r + "() event shorthand is deprecated")
        }), s(function() {
            s(n.document).triggerHandler("ready")
        }), s.event.special.ready = {
            setup: function() {
                this === n.document && u("ready-event", "'ready' event is deprecated")
            }
        }, c(s.fn, "bind", function(e, t, r) {
            return this.on(e, null, t, r)
        }, "pre-on-methods", "jQuery.fn.bind() is deprecated"), c(s.fn, "unbind", function(e, t) {
            return this.off(e, null, t)
        }, "pre-on-methods", "jQuery.fn.unbind() is deprecated"), c(s.fn, "delegate", function(e, t, r, n) {
            return this.on(t, e, r, n)
        }, "pre-on-methods", "jQuery.fn.delegate() is deprecated"), c(s.fn, "undelegate", function(e, t, r) {
            return 1 === arguments.length ? this.off(e, "**") : this.off(t, e || "**", r)
        }, "pre-on-methods", "jQuery.fn.undelegate() is deprecated"), c(s.fn, "hover", function(e, t) {
            return this.on("mouseenter", e).on("mouseleave", t || e)
        }, "pre-on-methods", "jQuery.fn.hover() is deprecated");

        function T(e) {
            var t = n.document.implementation.createHTMLDocument("");
            return t.body.innerHTML = e, t.body && t.body.innerHTML
        }
        var F = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([a-z][^\/\0>\x20\t\r\n\f]*)[^>]*)\/>/gi;
        s.UNSAFE_restoreLegacyHtmlPrefilter = function() {
            s.migrateEnablePatches("self-closed-tags")
        }, i(s, "htmlPrefilter", function(e) {
            var t, r;
            return (r = (t = e).replace(F, "<$1></$2>")) !== t && T(t) !== T(r) && u("self-closed-tags", "HTML tags must be properly nested and closed: " + t), e.replace(F, "<$1></$2>")
        }, "self-closed-tags"), s.migrateDisablePatches("self-closed-tags");
        var D, W, _, I = s.fn.offset;
        return i(s.fn, "offset", function() {
            var e = this[0];
            return !e || e.nodeType && e.getBoundingClientRect ? I.apply(this, arguments) : (u("offset-valid-elem", "jQuery.fn.offset() requires a valid DOM element"), arguments.length ? this : void 0)
        }, "offset-valid-elem"), s.ajax && (D = s.param, i(s, "param", function(e, t) {
            var r = s.ajaxSettings && s.ajaxSettings.traditional;
            return void 0 === t && r && (u("param-ajax-traditional", "jQuery.param() no longer uses jQuery.ajaxSettings.traditional"), t = r), D.call(this, e, t)
        }, "param-ajax-traditional")), c(s.fn, "andSelf", s.fn.addBack, "andSelf", "jQuery.fn.andSelf() is deprecated and removed, use jQuery.fn.addBack()"), s.Deferred && (W = s.Deferred, _ = [
            ["resolve", "done", s.Callbacks("once memory"), s.Callbacks("once memory"), "resolved"],
            ["reject", "fail", s.Callbacks("once memory"), s.Callbacks("once memory"), "rejected"],
            ["notify", "progress", s.Callbacks("memory"), s.Callbacks("memory")]
        ], i(s, "Deferred", function(e) {
            var a = W(),
                i = a.promise();

            function t() {
                var o = arguments;
                return s.Deferred(function(n) {
                    s.each(_, function(e, t) {
                        var r = "function" == typeof o[e] && o[e];
                        a[t[1]](function() {
                            var e = r && r.apply(this, arguments);
                            e && "function" == typeof e.promise ? e.promise().done(n.resolve).fail(n.reject).progress(n.notify) : n[t[0] + "With"](this === i ? n.promise() : this, r ? [e] : arguments)
                        })
                    }), o = null
                }).promise()
            }
            return c(a, "pipe", t, "deferred-pipe", "deferred.pipe() is deprecated"), c(i, "pipe", t, "deferred-pipe", "deferred.pipe() is deprecated"), e && e.call(a, a), a
        }, "deferred-pipe"), s.Deferred.exceptionHook = W.exceptionHook), s
    });
/*!
 * Font Awesome Free 5.15.1 by @fontawesome - https://fontawesome.com
 * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
 */
(function() {
    var l, a;
    l = this, a = function() {
        "use strict";
        var l = {},
            a = {};
        try {
            "undefined" != typeof window && (l = window), "undefined" != typeof document && (a = document)
        } catch (l) {}
        var e = (l.navigator || {}).userAgent,
            r = void 0 === e ? "" : e,
            n = l,
            o = a,
            u = (n.document, !!o.documentElement && !!o.head && "function" == typeof o.addEventListener && o.createElement, ~r.indexOf("MSIE") || r.indexOf("Trident/"), "___FONT_AWESOME___"),
            t = function() {
                try {
                    return "production" === process.env.NODE_ENV
                } catch (l) {
                    return !1
                }
            }();
        var f = n || {};
        f[u] || (f[u] = {}), f[u].styles || (f[u].styles = {}), f[u].hooks || (f[u].hooks = {}), f[u].shims || (f[u].shims = []);
        var i = f[u],
            s = [
                ["glass", null, "glass-martini"],
                ["meetup", "fab", null],
                ["star-o", "far", "star"],
                ["remove", null, "times"],
                ["close", null, "times"],
                ["gear", null, "cog"],
                ["trash-o", "far", "trash-alt"],
                ["file-o", "far", "file"],
                ["clock-o", "far", "clock"],
                ["arrow-circle-o-down", "far", "arrow-alt-circle-down"],
                ["arrow-circle-o-up", "far", "arrow-alt-circle-up"],
                ["play-circle-o", "far", "play-circle"],
                ["repeat", null, "redo"],
                ["rotate-right", null, "redo"],
                ["refresh", null, "sync"],
                ["list-alt", "far", null],
                ["dedent", null, "outdent"],
                ["video-camera", null, "video"],
                ["picture-o", "far", "image"],
                ["photo", "far", "image"],
                ["image", "far", "image"],
                ["pencil", null, "pencil-alt"],
                ["map-marker", null, "map-marker-alt"],
                ["pencil-square-o", "far", "edit"],
                ["share-square-o", "far", "share-square"],
                ["check-square-o", "far", "check-square"],
                ["arrows", null, "arrows-alt"],
                ["times-circle-o", "far", "times-circle"],
                ["check-circle-o", "far", "check-circle"],
                ["mail-forward", null, "share"],
                ["expand", null, "expand-alt"],
                ["compress", null, "compress-alt"],
                ["eye", "far", null],
                ["eye-slash", "far", null],
                ["warning", null, "exclamation-triangle"],
                ["calendar", null, "calendar-alt"],
                ["arrows-v", null, "arrows-alt-v"],
                ["arrows-h", null, "arrows-alt-h"],
                ["bar-chart", "far", "chart-bar"],
                ["bar-chart-o", "far", "chart-bar"],
                ["twitter-square", "fab", null],
                ["facebook-square", "fab", null],
                ["gears", null, "cogs"],
                ["thumbs-o-up", "far", "thumbs-up"],
                ["thumbs-o-down", "far", "thumbs-down"],
                ["heart-o", "far", "heart"],
                ["sign-out", null, "sign-out-alt"],
                ["linkedin-square", "fab", "linkedin"],
                ["thumb-tack", null, "thumbtack"],
                ["external-link", null, "external-link-alt"],
                ["sign-in", null, "sign-in-alt"],
                ["github-square", "fab", null],
                ["lemon-o", "far", "lemon"],
                ["square-o", "far", "square"],
                ["bookmark-o", "far", "bookmark"],
                ["twitter", "fab", null],
                ["facebook", "fab", "facebook-f"],
                ["facebook-f", "fab", "facebook-f"],
                ["github", "fab", null],
                ["credit-card", "far", null],
                ["feed", null, "rss"],
                ["hdd-o", "far", "hdd"],
                ["hand-o-right", "far", "hand-point-right"],
                ["hand-o-left", "far", "hand-point-left"],
                ["hand-o-up", "far", "hand-point-up"],
                ["hand-o-down", "far", "hand-point-down"],
                ["arrows-alt", null, "expand-arrows-alt"],
                ["group", null, "users"],
                ["chain", null, "link"],
                ["scissors", null, "cut"],
                ["files-o", "far", "copy"],
                ["floppy-o", "far", "save"],
                ["navicon", null, "bars"],
                ["reorder", null, "bars"],
                ["pinterest", "fab", null],
                ["pinterest-square", "fab", null],
                ["google-plus-square", "fab", null],
                ["google-plus", "fab", "google-plus-g"],
                ["money", "far", "money-bill-alt"],
                ["unsorted", null, "sort"],
                ["sort-desc", null, "sort-down"],
                ["sort-asc", null, "sort-up"],
                ["linkedin", "fab", "linkedin-in"],
                ["rotate-left", null, "undo"],
                ["legal", null, "gavel"],
                ["tachometer", null, "tachometer-alt"],
                ["dashboard", null, "tachometer-alt"],
                ["comment-o", "far", "comment"],
                ["comments-o", "far", "comments"],
                ["flash", null, "bolt"],
                ["clipboard", "far", null],
                ["paste", "far", "clipboard"],
                ["lightbulb-o", "far", "lightbulb"],
                ["exchange", null, "exchange-alt"],
                ["cloud-download", null, "cloud-download-alt"],
                ["cloud-upload", null, "cloud-upload-alt"],
                ["bell-o", "far", "bell"],
                ["cutlery", null, "utensils"],
                ["file-text-o", "far", "file-alt"],
                ["building-o", "far", "building"],
                ["hospital-o", "far", "hospital"],
                ["tablet", null, "tablet-alt"],
                ["mobile", null, "mobile-alt"],
                ["mobile-phone", null, "mobile-alt"],
                ["circle-o", "far", "circle"],
                ["mail-reply", null, "reply"],
                ["github-alt", "fab", null],
                ["folder-o", "far", "folder"],
                ["folder-open-o", "far", "folder-open"],
                ["smile-o", "far", "smile"],
                ["frown-o", "far", "frown"],
                ["meh-o", "far", "meh"],
                ["keyboard-o", "far", "keyboard"],
                ["flag-o", "far", "flag"],
                ["mail-reply-all", null, "reply-all"],
                ["star-half-o", "far", "star-half"],
                ["star-half-empty", "far", "star-half"],
                ["star-half-full", "far", "star-half"],
                ["code-fork", null, "code-branch"],
                ["chain-broken", null, "unlink"],
                ["shield", null, "shield-alt"],
                ["calendar-o", "far", "calendar"],
                ["maxcdn", "fab", null],
                ["html5", "fab", null],
                ["css3", "fab", null],
                ["ticket", null, "ticket-alt"],
                ["minus-square-o", "far", "minus-square"],
                ["level-up", null, "level-up-alt"],
                ["level-down", null, "level-down-alt"],
                ["pencil-square", null, "pen-square"],
                ["external-link-square", null, "external-link-square-alt"],
                ["compass", "far", null],
                ["caret-square-o-down", "far", "caret-square-down"],
                ["toggle-down", "far", "caret-square-down"],
                ["caret-square-o-up", "far", "caret-square-up"],
                ["toggle-up", "far", "caret-square-up"],
                ["caret-square-o-right", "far", "caret-square-right"],
                ["toggle-right", "far", "caret-square-right"],
                ["eur", null, "euro-sign"],
                ["euro", null, "euro-sign"],
                ["gbp", null, "pound-sign"],
                ["usd", null, "dollar-sign"],
                ["dollar", null, "dollar-sign"],
                ["inr", null, "rupee-sign"],
                ["rupee", null, "rupee-sign"],
                ["jpy", null, "yen-sign"],
                ["cny", null, "yen-sign"],
                ["rmb", null, "yen-sign"],
                ["yen", null, "yen-sign"],
                ["rub", null, "ruble-sign"],
                ["ruble", null, "ruble-sign"],
                ["rouble", null, "ruble-sign"],
                ["krw", null, "won-sign"],
                ["won", null, "won-sign"],
                ["btc", "fab", null],
                ["bitcoin", "fab", "btc"],
                ["file-text", null, "file-alt"],
                ["sort-alpha-asc", null, "sort-alpha-down"],
                ["sort-alpha-desc", null, "sort-alpha-down-alt"],
                ["sort-amount-asc", null, "sort-amount-down"],
                ["sort-amount-desc", null, "sort-amount-down-alt"],
                ["sort-numeric-asc", null, "sort-numeric-down"],
                ["sort-numeric-desc", null, "sort-numeric-down-alt"],
                ["youtube-square", "fab", null],
                ["youtube", "fab", null],
                ["xing", "fab", null],
                ["xing-square", "fab", null],
                ["youtube-play", "fab", "youtube"],
                ["dropbox", "fab", null],
                ["stack-overflow", "fab", null],
                ["instagram", "fab", null],
                ["flickr", "fab", null],
                ["adn", "fab", null],
                ["bitbucket", "fab", null],
                ["bitbucket-square", "fab", "bitbucket"],
                ["tumblr", "fab", null],
                ["tumblr-square", "fab", null],
                ["long-arrow-down", null, "long-arrow-alt-down"],
                ["long-arrow-up", null, "long-arrow-alt-up"],
                ["long-arrow-left", null, "long-arrow-alt-left"],
                ["long-arrow-right", null, "long-arrow-alt-right"],
                ["apple", "fab", null],
                ["windows", "fab", null],
                ["android", "fab", null],
                ["linux", "fab", null],
                ["dribbble", "fab", null],
                ["skype", "fab", null],
                ["foursquare", "fab", null],
                ["trello", "fab", null],
                ["gratipay", "fab", null],
                ["gittip", "fab", "gratipay"],
                ["sun-o", "far", "sun"],
                ["moon-o", "far", "moon"],
                ["vk", "fab", null],
                ["weibo", "fab", null],
                ["renren", "fab", null],
                ["pagelines", "fab", null],
                ["stack-exchange", "fab", null],
                ["arrow-circle-o-right", "far", "arrow-alt-circle-right"],
                ["arrow-circle-o-left", "far", "arrow-alt-circle-left"],
                ["caret-square-o-left", "far", "caret-square-left"],
                ["toggle-left", "far", "caret-square-left"],
                ["dot-circle-o", "far", "dot-circle"],
                ["vimeo-square", "fab", null],
                ["try", null, "lira-sign"],
                ["turkish-lira", null, "lira-sign"],
                ["plus-square-o", "far", "plus-square"],
                ["slack", "fab", null],
                ["wordpress", "fab", null],
                ["openid", "fab", null],
                ["institution", null, "university"],
                ["bank", null, "university"],
                ["mortar-board", null, "graduation-cap"],
                ["yahoo", "fab", null],
                ["google", "fab", null],
                ["reddit", "fab", null],
                ["reddit-square", "fab", null],
                ["stumbleupon-circle", "fab", null],
                ["stumbleupon", "fab", null],
                ["delicious", "fab", null],
                ["digg", "fab", null],
                ["pied-piper-pp", "fab", null],
                ["pied-piper-alt", "fab", null],
                ["drupal", "fab", null],
                ["joomla", "fab", null],
                ["spoon", null, "utensil-spoon"],
                ["behance", "fab", null],
                ["behance-square", "fab", null],
                ["steam", "fab", null],
                ["steam-square", "fab", null],
                ["automobile", null, "car"],
                ["envelope-o", "far", "envelope"],
                ["spotify", "fab", null],
                ["deviantart", "fab", null],
                ["soundcloud", "fab", null],
                ["file-pdf-o", "far", "file-pdf"],
                ["file-word-o", "far", "file-word"],
                ["file-excel-o", "far", "file-excel"],
                ["file-powerpoint-o", "far", "file-powerpoint"],
                ["file-image-o", "far", "file-image"],
                ["file-photo-o", "far", "file-image"],
                ["file-picture-o", "far", "file-image"],
                ["file-archive-o", "far", "file-archive"],
                ["file-zip-o", "far", "file-archive"],
                ["file-audio-o", "far", "file-audio"],
                ["file-sound-o", "far", "file-audio"],
                ["file-video-o", "far", "file-video"],
                ["file-movie-o", "far", "file-video"],
                ["file-code-o", "far", "file-code"],
                ["vine", "fab", null],
                ["codepen", "fab", null],
                ["jsfiddle", "fab", null],
                ["life-ring", "far", null],
                ["life-bouy", "far", "life-ring"],
                ["life-buoy", "far", "life-ring"],
                ["life-saver", "far", "life-ring"],
                ["support", "far", "life-ring"],
                ["circle-o-notch", null, "circle-notch"],
                ["rebel", "fab", null],
                ["ra", "fab", "rebel"],
                ["resistance", "fab", "rebel"],
                ["empire", "fab", null],
                ["ge", "fab", "empire"],
                ["git-square", "fab", null],
                ["git", "fab", null],
                ["hacker-news", "fab", null],
                ["y-combinator-square", "fab", "hacker-news"],
                ["yc-square", "fab", "hacker-news"],
                ["tencent-weibo", "fab", null],
                ["qq", "fab", null],
                ["weixin", "fab", null],
                ["wechat", "fab", "weixin"],
                ["send", null, "paper-plane"],
                ["paper-plane-o", "far", "paper-plane"],
                ["send-o", "far", "paper-plane"],
                ["circle-thin", "far", "circle"],
                ["header", null, "heading"],
                ["sliders", null, "sliders-h"],
                ["futbol-o", "far", "futbol"],
                ["soccer-ball-o", "far", "futbol"],
                ["slideshare", "fab", null],
                ["twitch", "fab", null],
                ["yelp", "fab", null],
                ["newspaper-o", "far", "newspaper"],
                ["paypal", "fab", null],
                ["google-wallet", "fab", null],
                ["cc-visa", "fab", null],
                ["cc-mastercard", "fab", null],
                ["cc-discover", "fab", null],
                ["cc-amex", "fab", null],
                ["cc-paypal", "fab", null],
                ["cc-stripe", "fab", null],
                ["bell-slash-o", "far", "bell-slash"],
                ["trash", null, "trash-alt"],
                ["copyright", "far", null],
                ["eyedropper", null, "eye-dropper"],
                ["area-chart", null, "chart-area"],
                ["pie-chart", null, "chart-pie"],
                ["line-chart", null, "chart-line"],
                ["lastfm", "fab", null],
                ["lastfm-square", "fab", null],
                ["ioxhost", "fab", null],
                ["angellist", "fab", null],
                ["cc", "far", "closed-captioning"],
                ["ils", null, "shekel-sign"],
                ["shekel", null, "shekel-sign"],
                ["sheqel", null, "shekel-sign"],
                ["meanpath", "fab", "font-awesome"],
                ["buysellads", "fab", null],
                ["connectdevelop", "fab", null],
                ["dashcube", "fab", null],
                ["forumbee", "fab", null],
                ["leanpub", "fab", null],
                ["sellsy", "fab", null],
                ["shirtsinbulk", "fab", null],
                ["simplybuilt", "fab", null],
                ["skyatlas", "fab", null],
                ["diamond", "far", "gem"],
                ["intersex", null, "transgender"],
                ["facebook-official", "fab", "facebook"],
                ["pinterest-p", "fab", null],
                ["whatsapp", "fab", null],
                ["hotel", null, "bed"],
                ["viacoin", "fab", null],
                ["medium", "fab", null],
                ["y-combinator", "fab", null],
                ["yc", "fab", "y-combinator"],
                ["optin-monster", "fab", null],
                ["opencart", "fab", null],
                ["expeditedssl", "fab", null],
                ["battery-4", null, "battery-full"],
                ["battery", null, "battery-full"],
                ["battery-3", null, "battery-three-quarters"],
                ["battery-2", null, "battery-half"],
                ["battery-1", null, "battery-quarter"],
                ["battery-0", null, "battery-empty"],
                ["object-group", "far", null],
                ["object-ungroup", "far", null],
                ["sticky-note-o", "far", "sticky-note"],
                ["cc-jcb", "fab", null],
                ["cc-diners-club", "fab", null],
                ["clone", "far", null],
                ["hourglass-o", "far", "hourglass"],
                ["hourglass-1", null, "hourglass-start"],
                ["hourglass-2", null, "hourglass-half"],
                ["hourglass-3", null, "hourglass-end"],
                ["hand-rock-o", "far", "hand-rock"],
                ["hand-grab-o", "far", "hand-rock"],
                ["hand-paper-o", "far", "hand-paper"],
                ["hand-stop-o", "far", "hand-paper"],
                ["hand-scissors-o", "far", "hand-scissors"],
                ["hand-lizard-o", "far", "hand-lizard"],
                ["hand-spock-o", "far", "hand-spock"],
                ["hand-pointer-o", "far", "hand-pointer"],
                ["hand-peace-o", "far", "hand-peace"],
                ["registered", "far", null],
                ["creative-commons", "fab", null],
                ["gg", "fab", null],
                ["gg-circle", "fab", null],
                ["tripadvisor", "fab", null],
                ["odnoklassniki", "fab", null],
                ["odnoklassniki-square", "fab", null],
                ["get-pocket", "fab", null],
                ["wikipedia-w", "fab", null],
                ["safari", "fab", null],
                ["chrome", "fab", null],
                ["firefox", "fab", null],
                ["opera", "fab", null],
                ["internet-explorer", "fab", null],
                ["television", null, "tv"],
                ["contao", "fab", null],
                ["500px", "fab", null],
                ["amazon", "fab", null],
                ["calendar-plus-o", "far", "calendar-plus"],
                ["calendar-minus-o", "far", "calendar-minus"],
                ["calendar-times-o", "far", "calendar-times"],
                ["calendar-check-o", "far", "calendar-check"],
                ["map-o", "far", "map"],
                ["commenting", null, "comment-dots"],
                ["commenting-o", "far", "comment-dots"],
                ["houzz", "fab", null],
                ["vimeo", "fab", "vimeo-v"],
                ["black-tie", "fab", null],
                ["fonticons", "fab", null],
                ["reddit-alien", "fab", null],
                ["edge", "fab", null],
                ["credit-card-alt", null, "credit-card"],
                ["codiepie", "fab", null],
                ["modx", "fab", null],
                ["fort-awesome", "fab", null],
                ["usb", "fab", null],
                ["product-hunt", "fab", null],
                ["mixcloud", "fab", null],
                ["scribd", "fab", null],
                ["pause-circle-o", "far", "pause-circle"],
                ["stop-circle-o", "far", "stop-circle"],
                ["bluetooth", "fab", null],
                ["bluetooth-b", "fab", null],
                ["gitlab", "fab", null],
                ["wpbeginner", "fab", null],
                ["wpforms", "fab", null],
                ["envira", "fab", null],
                ["wheelchair-alt", "fab", "accessible-icon"],
                ["question-circle-o", "far", "question-circle"],
                ["volume-control-phone", null, "phone-volume"],
                ["asl-interpreting", null, "american-sign-language-interpreting"],
                ["deafness", null, "deaf"],
                ["hard-of-hearing", null, "deaf"],
                ["glide", "fab", null],
                ["glide-g", "fab", null],
                ["signing", null, "sign-language"],
                ["viadeo", "fab", null],
                ["viadeo-square", "fab", null],
                ["snapchat", "fab", null],
                ["snapchat-ghost", "fab", null],
                ["snapchat-square", "fab", null],
                ["pied-piper", "fab", null],
                ["first-order", "fab", null],
                ["yoast", "fab", null],
                ["themeisle", "fab", null],
                ["google-plus-official", "fab", "google-plus"],
                ["google-plus-circle", "fab", "google-plus"],
                ["font-awesome", "fab", null],
                ["fa", "fab", "font-awesome"],
                ["handshake-o", "far", "handshake"],
                ["envelope-open-o", "far", "envelope-open"],
                ["linode", "fab", null],
                ["address-book-o", "far", "address-book"],
                ["vcard", null, "address-card"],
                ["address-card-o", "far", "address-card"],
                ["vcard-o", "far", "address-card"],
                ["user-circle-o", "far", "user-circle"],
                ["user-o", "far", "user"],
                ["id-badge", "far", null],
                ["drivers-license", null, "id-card"],
                ["id-card-o", "far", "id-card"],
                ["drivers-license-o", "far", "id-card"],
                ["quora", "fab", null],
                ["free-code-camp", "fab", null],
                ["telegram", "fab", null],
                ["thermometer-4", null, "thermometer-full"],
                ["thermometer", null, "thermometer-full"],
                ["thermometer-3", null, "thermometer-three-quarters"],
                ["thermometer-2", null, "thermometer-half"],
                ["thermometer-1", null, "thermometer-quarter"],
                ["thermometer-0", null, "thermometer-empty"],
                ["bathtub", null, "bath"],
                ["s15", null, "bath"],
                ["window-maximize", "far", null],
                ["window-restore", "far", null],
                ["times-rectangle", null, "window-close"],
                ["window-close-o", "far", "window-close"],
                ["times-rectangle-o", "far", "window-close"],
                ["bandcamp", "fab", null],
                ["grav", "fab", null],
                ["etsy", "fab", null],
                ["imdb", "fab", null],
                ["ravelry", "fab", null],
                ["eercast", "fab", "sellcast"],
                ["snowflake-o", "far", "snowflake"],
                ["superpowers", "fab", null],
                ["wpexplorer", "fab", null],
                ["cab", null, "taxi"]
            ];
        return function(l) {
            try {
                l()
            } catch (l) {
                if (!t) throw l
            }
        }(function() {
            var l;
            "function" == typeof i.hooks.addShims ? i.hooks.addShims(s) : (l = i.shims).push.apply(l, s)
        }), s
    }, "object" == typeof exports && "undefined" != typeof module ? module.exports = a() : "function" == typeof define && define.amd ? define(a) : l["fontawesome-free-shims"] = a()
})(); /*! @license DOMPurify 3.1.6 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.1.6/LICENSE */
! function(e, t) {
    "object" == typeof exports && "undefined" != typeof module ? module.exports = t() : "function" == typeof define && define.amd ? define(t) : (e = "undefined" != typeof globalThis ? globalThis : e || self).DOMPurify = t()
}(this, (function() {
    "use strict";
    const {
        entries: e,
        setPrototypeOf: t,
        isFrozen: n,
        getPrototypeOf: o,
        getOwnPropertyDescriptor: r
    } = Object;
    let {
        freeze: i,
        seal: a,
        create: l
    } = Object, {
        apply: c,
        construct: s
    } = "undefined" != typeof Reflect && Reflect;
    i || (i = function(e) {
        return e
    }), a || (a = function(e) {
        return e
    }), c || (c = function(e, t, n) {
        return e.apply(t, n)
    }), s || (s = function(e, t) {
        return new e(...t)
    });
    const u = b(Array.prototype.forEach),
        m = b(Array.prototype.pop),
        p = b(Array.prototype.push),
        f = b(String.prototype.toLowerCase),
        d = b(String.prototype.toString),
        h = b(String.prototype.match),
        g = b(String.prototype.replace),
        T = b(String.prototype.indexOf),
        y = b(String.prototype.trim),
        E = b(Object.prototype.hasOwnProperty),
        _ = b(RegExp.prototype.test),
        A = (N = TypeError, function() {
            for (var e = arguments.length, t = new Array(e), n = 0; n < e; n++) t[n] = arguments[n];
            return s(N, t)
        });
    var N;

    function b(e) {
        return function(t) {
            for (var n = arguments.length, o = new Array(n > 1 ? n - 1 : 0), r = 1; r < n; r++) o[r - 1] = arguments[r];
            return c(e, t, o)
        }
    }

    function S(e, o) {
        let r = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : f;
        t && t(e, null);
        let i = o.length;
        for (; i--;) {
            let t = o[i];
            if ("string" == typeof t) {
                const e = r(t);
                e !== t && (n(o) || (o[i] = e), t = e)
            }
            e[t] = !0
        }
        return e
    }

    function R(e) {
        for (let t = 0; t < e.length; t++) {
            E(e, t) || (e[t] = null)
        }
        return e
    }

    function w(t) {
        const n = l(null);
        for (const [o, r] of e(t)) {
            E(t, o) && (Array.isArray(r) ? n[o] = R(r) : r && "object" == typeof r && r.constructor === Object ? n[o] = w(r) : n[o] = r)
        }
        return n
    }

    function C(e, t) {
        for (; null !== e;) {
            const n = r(e, t);
            if (n) {
                if (n.get) return b(n.get);
                if ("function" == typeof n.value) return b(n.value)
            }
            e = o(e)
        }
        return function() {
            return null
        }
    }
    const L = i(["a", "abbr", "acronym", "address", "area", "article", "aside", "audio", "b", "bdi", "bdo", "big", "blink", "blockquote", "body", "br", "button", "canvas", "caption", "center", "cite", "code", "col", "colgroup", "content", "data", "datalist", "dd", "decorator", "del", "details", "dfn", "dialog", "dir", "div", "dl", "dt", "element", "em", "fieldset", "figcaption", "figure", "font", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "head", "header", "hgroup", "hr", "html", "i", "img", "input", "ins", "kbd", "label", "legend", "li", "main", "map", "mark", "marquee", "menu", "menuitem", "meter", "nav", "nobr", "ol", "optgroup", "option", "output", "p", "picture", "pre", "progress", "q", "rp", "rt", "ruby", "s", "samp", "section", "select", "shadow", "small", "source", "spacer", "span", "strike", "strong", "style", "sub", "summary", "sup", "table", "tbody", "td", "template", "textarea", "tfoot", "th", "thead", "time", "tr", "track", "tt", "u", "ul", "var", "video", "wbr"]),
        D = i(["svg", "a", "altglyph", "altglyphdef", "altglyphitem", "animatecolor", "animatemotion", "animatetransform", "circle", "clippath", "defs", "desc", "ellipse", "filter", "font", "g", "glyph", "glyphref", "hkern", "image", "line", "lineargradient", "marker", "mask", "metadata", "mpath", "path", "pattern", "polygon", "polyline", "radialgradient", "rect", "stop", "style", "switch", "symbol", "text", "textpath", "title", "tref", "tspan", "view", "vkern"]),
        v = i(["feBlend", "feColorMatrix", "feComponentTransfer", "feComposite", "feConvolveMatrix", "feDiffuseLighting", "feDisplacementMap", "feDistantLight", "feDropShadow", "feFlood", "feFuncA", "feFuncB", "feFuncG", "feFuncR", "feGaussianBlur", "feImage", "feMerge", "feMergeNode", "feMorphology", "feOffset", "fePointLight", "feSpecularLighting", "feSpotLight", "feTile", "feTurbulence"]),
        O = i(["animate", "color-profile", "cursor", "discard", "font-face", "font-face-format", "font-face-name", "font-face-src", "font-face-uri", "foreignobject", "hatch", "hatchpath", "mesh", "meshgradient", "meshpatch", "meshrow", "missing-glyph", "script", "set", "solidcolor", "unknown", "use"]),
        x = i(["math", "menclose", "merror", "mfenced", "mfrac", "mglyph", "mi", "mlabeledtr", "mmultiscripts", "mn", "mo", "mover", "mpadded", "mphantom", "mroot", "mrow", "ms", "mspace", "msqrt", "mstyle", "msub", "msup", "msubsup", "mtable", "mtd", "mtext", "mtr", "munder", "munderover", "mprescripts"]),
        k = i(["maction", "maligngroup", "malignmark", "mlongdiv", "mscarries", "mscarry", "msgroup", "mstack", "msline", "msrow", "semantics", "annotation", "annotation-xml", "mprescripts", "none"]),
        M = i(["#text"]),
        I = i(["accept", "action", "align", "alt", "autocapitalize", "autocomplete", "autopictureinpicture", "autoplay", "background", "bgcolor", "border", "capture", "cellpadding", "cellspacing", "checked", "cite", "class", "clear", "color", "cols", "colspan", "controls", "controlslist", "coords", "crossorigin", "datetime", "decoding", "default", "dir", "disabled", "disablepictureinpicture", "disableremoteplayback", "download", "draggable", "enctype", "enterkeyhint", "face", "for", "headers", "height", "hidden", "high", "href", "hreflang", "id", "inputmode", "integrity", "ismap", "kind", "label", "lang", "list", "loading", "loop", "low", "max", "maxlength", "media", "method", "min", "minlength", "multiple", "muted", "name", "nonce", "noshade", "novalidate", "nowrap", "open", "optimum", "pattern", "placeholder", "playsinline", "popover", "popovertarget", "popovertargetaction", "poster", "preload", "pubdate", "radiogroup", "readonly", "rel", "required", "rev", "reversed", "role", "rows", "rowspan", "spellcheck", "scope", "selected", "shape", "size", "sizes", "span", "srclang", "start", "src", "srcset", "step", "style", "summary", "tabindex", "title", "translate", "type", "usemap", "valign", "value", "width", "wrap", "xmlns", "slot"]),
        U = i(["accent-height", "accumulate", "additive", "alignment-baseline", "ascent", "attributename", "attributetype", "azimuth", "basefrequency", "baseline-shift", "begin", "bias", "by", "class", "clip", "clippathunits", "clip-path", "clip-rule", "color", "color-interpolation", "color-interpolation-filters", "color-profile", "color-rendering", "cx", "cy", "d", "dx", "dy", "diffuseconstant", "direction", "display", "divisor", "dur", "edgemode", "elevation", "end", "fill", "fill-opacity", "fill-rule", "filter", "filterunits", "flood-color", "flood-opacity", "font-family", "font-size", "font-size-adjust", "font-stretch", "font-style", "font-variant", "font-weight", "fx", "fy", "g1", "g2", "glyph-name", "glyphref", "gradientunits", "gradienttransform", "height", "href", "id", "image-rendering", "in", "in2", "k", "k1", "k2", "k3", "k4", "kerning", "keypoints", "keysplines", "keytimes", "lang", "lengthadjust", "letter-spacing", "kernelmatrix", "kernelunitlength", "lighting-color", "local", "marker-end", "marker-mid", "marker-start", "markerheight", "markerunits", "markerwidth", "maskcontentunits", "maskunits", "max", "mask", "media", "method", "mode", "min", "name", "numoctaves", "offset", "operator", "opacity", "order", "orient", "orientation", "origin", "overflow", "paint-order", "path", "pathlength", "patterncontentunits", "patterntransform", "patternunits", "points", "preservealpha", "preserveaspectratio", "primitiveunits", "r", "rx", "ry", "radius", "refx", "refy", "repeatcount", "repeatdur", "restart", "result", "rotate", "scale", "seed", "shape-rendering", "specularconstant", "specularexponent", "spreadmethod", "startoffset", "stddeviation", "stitchtiles", "stop-color", "stop-opacity", "stroke-dasharray", "stroke-dashoffset", "stroke-linecap", "stroke-linejoin", "stroke-miterlimit", "stroke-opacity", "stroke", "stroke-width", "style", "surfacescale", "systemlanguage", "tabindex", "targetx", "targety", "transform", "transform-origin", "text-anchor", "text-decoration", "text-rendering", "textlength", "type", "u1", "u2", "unicode", "values", "viewbox", "visibility", "version", "vert-adv-y", "vert-origin-x", "vert-origin-y", "width", "word-spacing", "wrap", "writing-mode", "xchannelselector", "ychannelselector", "x", "x1", "x2", "xmlns", "y", "y1", "y2", "z", "zoomandpan"]),
        P = i(["accent", "accentunder", "align", "bevelled", "close", "columnsalign", "columnlines", "columnspan", "denomalign", "depth", "dir", "display", "displaystyle", "encoding", "fence", "frame", "height", "href", "id", "largeop", "length", "linethickness", "lspace", "lquote", "mathbackground", "mathcolor", "mathsize", "mathvariant", "maxsize", "minsize", "movablelimits", "notation", "numalign", "open", "rowalign", "rowlines", "rowspacing", "rowspan", "rspace", "rquote", "scriptlevel", "scriptminsize", "scriptsizemultiplier", "selection", "separator", "separators", "stretchy", "subscriptshift", "supscriptshift", "symmetric", "voffset", "width", "xmlns"]),
        F = i(["xlink:href", "xml:id", "xlink:title", "xml:space", "xmlns:xlink"]),
        H = a(/\{\{[\w\W]*|[\w\W]*\}\}/gm),
        z = a(/<%[\w\W]*|[\w\W]*%>/gm),
        B = a(/\${[\w\W]*}/gm),
        W = a(/^data-[\-\w.\u00B7-\uFFFF]/),
        G = a(/^aria-[\-\w]+$/),
        Y = a(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),
        j = a(/^(?:\w+script|data):/i),
        X = a(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),
        q = a(/^html$/i),
        $ = a(/^[a-z][.\w]*(-[.\w]+)+$/i);
    var K = Object.freeze({
        __proto__: null,
        MUSTACHE_EXPR: H,
        ERB_EXPR: z,
        TMPLIT_EXPR: B,
        DATA_ATTR: W,
        ARIA_ATTR: G,
        IS_ALLOWED_URI: Y,
        IS_SCRIPT_OR_DATA: j,
        ATTR_WHITESPACE: X,
        DOCTYPE_NAME: q,
        CUSTOM_ELEMENT: $
    });
    const V = 1,
        Z = 3,
        J = 7,
        Q = 8,
        ee = 9,
        te = function() {
            return "undefined" == typeof window ? null : window
        };
    var ne = function t() {
        let n = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : te();
        const o = e => t(e);
        if (o.version = "3.1.6", o.removed = [], !n || !n.document || n.document.nodeType !== ee) return o.isSupported = !1, o;
        let {
            document: r
        } = n;
        const a = r,
            c = a.currentScript,
            {
                DocumentFragment: s,
                HTMLTemplateElement: N,
                Node: b,
                Element: R,
                NodeFilter: H,
                NamedNodeMap: z = n.NamedNodeMap || n.MozNamedAttrMap,
                HTMLFormElement: B,
                DOMParser: W,
                trustedTypes: G
            } = n,
            j = R.prototype,
            X = C(j, "cloneNode"),
            $ = C(j, "remove"),
            ne = C(j, "nextSibling"),
            oe = C(j, "childNodes"),
            re = C(j, "parentNode");
        if ("function" == typeof N) {
            const e = r.createElement("template");
            e.content && e.content.ownerDocument && (r = e.content.ownerDocument)
        }
        let ie, ae = "";
        const {
            implementation: le,
            createNodeIterator: ce,
            createDocumentFragment: se,
            getElementsByTagName: ue
        } = r, {
            importNode: me
        } = a;
        let pe = {};
        o.isSupported = "function" == typeof e && "function" == typeof re && le && void 0 !== le.createHTMLDocument;
        const {
            MUSTACHE_EXPR: fe,
            ERB_EXPR: de,
            TMPLIT_EXPR: he,
            DATA_ATTR: ge,
            ARIA_ATTR: Te,
            IS_SCRIPT_OR_DATA: ye,
            ATTR_WHITESPACE: Ee,
            CUSTOM_ELEMENT: _e
        } = K;
        let {
            IS_ALLOWED_URI: Ae
        } = K, Ne = null;
        const be = S({}, [...L, ...D, ...v, ...x, ...M]);
        let Se = null;
        const Re = S({}, [...I, ...U, ...P, ...F]);
        let we = Object.seal(l(null, {
                tagNameCheck: {
                    writable: !0,
                    configurable: !1,
                    enumerable: !0,
                    value: null
                },
                attributeNameCheck: {
                    writable: !0,
                    configurable: !1,
                    enumerable: !0,
                    value: null
                },
                allowCustomizedBuiltInElements: {
                    writable: !0,
                    configurable: !1,
                    enumerable: !0,
                    value: !1
                }
            })),
            Ce = null,
            Le = null,
            De = !0,
            ve = !0,
            Oe = !1,
            xe = !0,
            ke = !1,
            Me = !0,
            Ie = !1,
            Ue = !1,
            Pe = !1,
            Fe = !1,
            He = !1,
            ze = !1,
            Be = !0,
            We = !1,
            Ge = !0,
            Ye = !1,
            je = {},
            Xe = null;
        const qe = S({}, ["annotation-xml", "audio", "colgroup", "desc", "foreignobject", "head", "iframe", "math", "mi", "mn", "mo", "ms", "mtext", "noembed", "noframes", "noscript", "plaintext", "script", "style", "svg", "template", "thead", "title", "video", "xmp"]);
        let $e = null;
        const Ke = S({}, ["audio", "video", "img", "source", "image", "track"]);
        let Ve = null;
        const Ze = S({}, ["alt", "class", "for", "id", "label", "name", "pattern", "placeholder", "role", "summary", "title", "value", "style", "xmlns"]),
            Je = "http://www.w3.org/1998/Math/MathML",
            Qe = "http://www.w3.org/2000/svg",
            et = "http://www.w3.org/1999/xhtml";
        let tt = et,
            nt = !1,
            ot = null;
        const rt = S({}, [Je, Qe, et], d);
        let it = null;
        const at = ["application/xhtml+xml", "text/html"];
        let lt = null,
            ct = null;
        const st = r.createElement("form"),
            ut = function(e) {
                return e instanceof RegExp || e instanceof Function
            },
            mt = function() {
                let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
                if (!ct || ct !== e) {
                    if (e && "object" == typeof e || (e = {}), e = w(e), it = -1 === at.indexOf(e.PARSER_MEDIA_TYPE) ? "text/html" : e.PARSER_MEDIA_TYPE, lt = "application/xhtml+xml" === it ? d : f, Ne = E(e, "ALLOWED_TAGS") ? S({}, e.ALLOWED_TAGS, lt) : be, Se = E(e, "ALLOWED_ATTR") ? S({}, e.ALLOWED_ATTR, lt) : Re, ot = E(e, "ALLOWED_NAMESPACES") ? S({}, e.ALLOWED_NAMESPACES, d) : rt, Ve = E(e, "ADD_URI_SAFE_ATTR") ? S(w(Ze), e.ADD_URI_SAFE_ATTR, lt) : Ze, $e = E(e, "ADD_DATA_URI_TAGS") ? S(w(Ke), e.ADD_DATA_URI_TAGS, lt) : Ke, Xe = E(e, "FORBID_CONTENTS") ? S({}, e.FORBID_CONTENTS, lt) : qe, Ce = E(e, "FORBID_TAGS") ? S({}, e.FORBID_TAGS, lt) : {}, Le = E(e, "FORBID_ATTR") ? S({}, e.FORBID_ATTR, lt) : {}, je = !!E(e, "USE_PROFILES") && e.USE_PROFILES, De = !1 !== e.ALLOW_ARIA_ATTR, ve = !1 !== e.ALLOW_DATA_ATTR, Oe = e.ALLOW_UNKNOWN_PROTOCOLS || !1, xe = !1 !== e.ALLOW_SELF_CLOSE_IN_ATTR, ke = e.SAFE_FOR_TEMPLATES || !1, Me = !1 !== e.SAFE_FOR_XML, Ie = e.WHOLE_DOCUMENT || !1, Fe = e.RETURN_DOM || !1, He = e.RETURN_DOM_FRAGMENT || !1, ze = e.RETURN_TRUSTED_TYPE || !1, Pe = e.FORCE_BODY || !1, Be = !1 !== e.SANITIZE_DOM, We = e.SANITIZE_NAMED_PROPS || !1, Ge = !1 !== e.KEEP_CONTENT, Ye = e.IN_PLACE || !1, Ae = e.ALLOWED_URI_REGEXP || Y, tt = e.NAMESPACE || et, we = e.CUSTOM_ELEMENT_HANDLING || {}, e.CUSTOM_ELEMENT_HANDLING && ut(e.CUSTOM_ELEMENT_HANDLING.tagNameCheck) && (we.tagNameCheck = e.CUSTOM_ELEMENT_HANDLING.tagNameCheck), e.CUSTOM_ELEMENT_HANDLING && ut(e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck) && (we.attributeNameCheck = e.CUSTOM_ELEMENT_HANDLING.attributeNameCheck), e.CUSTOM_ELEMENT_HANDLING && "boolean" == typeof e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements && (we.allowCustomizedBuiltInElements = e.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements), ke && (ve = !1), He && (Fe = !0), je && (Ne = S({}, M), Se = [], !0 === je.html && (S(Ne, L), S(Se, I)), !0 === je.svg && (S(Ne, D), S(Se, U), S(Se, F)), !0 === je.svgFilters && (S(Ne, v), S(Se, U), S(Se, F)), !0 === je.mathMl && (S(Ne, x), S(Se, P), S(Se, F))), e.ADD_TAGS && (Ne === be && (Ne = w(Ne)), S(Ne, e.ADD_TAGS, lt)), e.ADD_ATTR && (Se === Re && (Se = w(Se)), S(Se, e.ADD_ATTR, lt)), e.ADD_URI_SAFE_ATTR && S(Ve, e.ADD_URI_SAFE_ATTR, lt), e.FORBID_CONTENTS && (Xe === qe && (Xe = w(Xe)), S(Xe, e.FORBID_CONTENTS, lt)), Ge && (Ne["#text"] = !0), Ie && S(Ne, ["html", "head", "body"]), Ne.table && (S(Ne, ["tbody"]), delete Ce.tbody), e.TRUSTED_TYPES_POLICY) {
                        if ("function" != typeof e.TRUSTED_TYPES_POLICY.createHTML) throw A('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');
                        if ("function" != typeof e.TRUSTED_TYPES_POLICY.createScriptURL) throw A('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');
                        ie = e.TRUSTED_TYPES_POLICY, ae = ie.createHTML("")
                    } else void 0 === ie && (ie = function(e, t) {
                        if ("object" != typeof e || "function" != typeof e.createPolicy) return null;
                        let n = null;
                        const o = "data-tt-policy-suffix";
                        t && t.hasAttribute(o) && (n = t.getAttribute(o));
                        const r = "dompurify" + (n ? "#" + n : "");
                        try {
                            return e.createPolicy(r, {
                                createHTML: e => e,
                                createScriptURL: e => e
                            })
                        } catch (e) {
                            return console.warn("TrustedTypes policy " + r + " could not be created."), null
                        }
                    }(G, c)), null !== ie && "string" == typeof ae && (ae = ie.createHTML(""));
                    i && i(e), ct = e
                }
            },
            pt = S({}, ["mi", "mo", "mn", "ms", "mtext"]),
            ft = S({}, ["foreignobject", "annotation-xml"]),
            dt = S({}, ["title", "style", "font", "a", "script"]),
            ht = S({}, [...D, ...v, ...O]),
            gt = S({}, [...x, ...k]),
            Tt = function(e) {
                p(o.removed, {
                    element: e
                });
                try {
                    re(e).removeChild(e)
                } catch (t) {
                    $(e)
                }
            },
            yt = function(e, t) {
                try {
                    p(o.removed, {
                        attribute: t.getAttributeNode(e),
                        from: t
                    })
                } catch (e) {
                    p(o.removed, {
                        attribute: null,
                        from: t
                    })
                }
                if (t.removeAttribute(e), "is" === e && !Se[e])
                    if (Fe || He) try {
                        Tt(t)
                    } catch (e) {} else try {
                        t.setAttribute(e, "")
                    } catch (e) {}
            },
            Et = function(e) {
                let t = null,
                    n = null;
                if (Pe) e = "<remove></remove>" + e;
                else {
                    const t = h(e, /^[\r\n\t ]+/);
                    n = t && t[0]
                }
                "application/xhtml+xml" === it && tt === et && (e = '<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>' + e + "</body></html>");
                const o = ie ? ie.createHTML(e) : e;
                if (tt === et) try {
                    t = (new W).parseFromString(o, it)
                } catch (e) {}
                if (!t || !t.documentElement) {
                    t = le.createDocument(tt, "template", null);
                    try {
                        t.documentElement.innerHTML = nt ? ae : o
                    } catch (e) {}
                }
                const i = t.body || t.documentElement;
                return e && n && i.insertBefore(r.createTextNode(n), i.childNodes[0] || null), tt === et ? ue.call(t, Ie ? "html" : "body")[0] : Ie ? t.documentElement : i
            },
            _t = function(e) {
                return ce.call(e.ownerDocument || e, e, H.SHOW_ELEMENT | H.SHOW_COMMENT | H.SHOW_TEXT | H.SHOW_PROCESSING_INSTRUCTION | H.SHOW_CDATA_SECTION, null)
            },
            At = function(e) {
                return e instanceof B && ("string" != typeof e.nodeName || "string" != typeof e.textContent || "function" != typeof e.removeChild || !(e.attributes instanceof z) || "function" != typeof e.removeAttribute || "function" != typeof e.setAttribute || "string" != typeof e.namespaceURI || "function" != typeof e.insertBefore || "function" != typeof e.hasChildNodes)
            },
            Nt = function(e) {
                return "function" == typeof b && e instanceof b
            },
            bt = function(e, t, n) {
                pe[e] && u(pe[e], (e => {
                    e.call(o, t, n, ct)
                }))
            },
            St = function(e) {
                let t = null;
                if (bt("beforeSanitizeElements", e, null), At(e)) return Tt(e), !0;
                const n = lt(e.nodeName);
                if (bt("uponSanitizeElement", e, {
                        tagName: n,
                        allowedTags: Ne
                    }), e.hasChildNodes() && !Nt(e.firstElementChild) && _(/<[/\w]/g, e.innerHTML) && _(/<[/\w]/g, e.textContent)) return Tt(e), !0;
                if (e.nodeType === J) return Tt(e), !0;
                if (Me && e.nodeType === Q && _(/<[/\w]/g, e.data)) return Tt(e), !0;
                if (!Ne[n] || Ce[n]) {
                    if (!Ce[n] && wt(n)) {
                        if (we.tagNameCheck instanceof RegExp && _(we.tagNameCheck, n)) return !1;
                        if (we.tagNameCheck instanceof Function && we.tagNameCheck(n)) return !1
                    }
                    if (Ge && !Xe[n]) {
                        const t = re(e) || e.parentNode,
                            n = oe(e) || e.childNodes;
                        if (n && t) {
                            for (let o = n.length - 1; o >= 0; --o) {
                                const r = X(n[o], !0);
                                r.__removalCount = (e.__removalCount || 0) + 1, t.insertBefore(r, ne(e))
                            }
                        }
                    }
                    return Tt(e), !0
                }
                return e instanceof R && ! function(e) {
                    let t = re(e);
                    t && t.tagName || (t = {
                        namespaceURI: tt,
                        tagName: "template"
                    });
                    const n = f(e.tagName),
                        o = f(t.tagName);
                    return !!ot[e.namespaceURI] && (e.namespaceURI === Qe ? t.namespaceURI === et ? "svg" === n : t.namespaceURI === Je ? "svg" === n && ("annotation-xml" === o || pt[o]) : Boolean(ht[n]) : e.namespaceURI === Je ? t.namespaceURI === et ? "math" === n : t.namespaceURI === Qe ? "math" === n && ft[o] : Boolean(gt[n]) : e.namespaceURI === et ? !(t.namespaceURI === Qe && !ft[o]) && !(t.namespaceURI === Je && !pt[o]) && !gt[n] && (dt[n] || !ht[n]) : !("application/xhtml+xml" !== it || !ot[e.namespaceURI]))
                }(e) ? (Tt(e), !0) : "noscript" !== n && "noembed" !== n && "noframes" !== n || !_(/<\/no(script|embed|frames)/i, e.innerHTML) ? (ke && e.nodeType === Z && (t = e.textContent, u([fe, de, he], (e => {
                    t = g(t, e, " ")
                })), e.textContent !== t && (p(o.removed, {
                    element: e.cloneNode()
                }), e.textContent = t)), bt("afterSanitizeElements", e, null), !1) : (Tt(e), !0)
            },
            Rt = function(e, t, n) {
                if (Be && ("id" === t || "name" === t) && (n in r || n in st)) return !1;
                if (ve && !Le[t] && _(ge, t));
                else if (De && _(Te, t));
                else if (!Se[t] || Le[t]) {
                    if (!(wt(e) && (we.tagNameCheck instanceof RegExp && _(we.tagNameCheck, e) || we.tagNameCheck instanceof Function && we.tagNameCheck(e)) && (we.attributeNameCheck instanceof RegExp && _(we.attributeNameCheck, t) || we.attributeNameCheck instanceof Function && we.attributeNameCheck(t)) || "is" === t && we.allowCustomizedBuiltInElements && (we.tagNameCheck instanceof RegExp && _(we.tagNameCheck, n) || we.tagNameCheck instanceof Function && we.tagNameCheck(n)))) return !1
                } else if (Ve[t]);
                else if (_(Ae, g(n, Ee, "")));
                else if ("src" !== t && "xlink:href" !== t && "href" !== t || "script" === e || 0 !== T(n, "data:") || !$e[e]) {
                    if (Oe && !_(ye, g(n, Ee, "")));
                    else if (n) return !1
                }
                return !0
            },
            wt = function(e) {
                return "annotation-xml" !== e && h(e, _e)
            },
            Ct = function(e) {
                bt("beforeSanitizeAttributes", e, null);
                const {
                    attributes: t
                } = e;
                if (!t) return;
                const n = {
                    attrName: "",
                    attrValue: "",
                    keepAttr: !0,
                    allowedAttributes: Se
                };
                let r = t.length;
                for (; r--;) {
                    const i = t[r],
                        {
                            name: a,
                            namespaceURI: l,
                            value: c
                        } = i,
                        s = lt(a);
                    let p = "value" === a ? c : y(c);
                    if (n.attrName = s, n.attrValue = p, n.keepAttr = !0, n.forceKeepAttr = void 0, bt("uponSanitizeAttribute", e, n), p = n.attrValue, Me && _(/((--!?|])>)|<\/(style|title)/i, p)) {
                        yt(a, e);
                        continue
                    }
                    if (n.forceKeepAttr) continue;
                    if (yt(a, e), !n.keepAttr) continue;
                    if (!xe && _(/\/>/i, p)) {
                        yt(a, e);
                        continue
                    }
                    ke && u([fe, de, he], (e => {
                        p = g(p, e, " ")
                    }));
                    const f = lt(e.nodeName);
                    if (Rt(f, s, p)) {
                        if (!We || "id" !== s && "name" !== s || (yt(a, e), p = "user-content-" + p), ie && "object" == typeof G && "function" == typeof G.getAttributeType)
                            if (l);
                            else switch (G.getAttributeType(f, s)) {
                                case "TrustedHTML":
                                    p = ie.createHTML(p);
                                    break;
                                case "TrustedScriptURL":
                                    p = ie.createScriptURL(p)
                            }
                        try {
                            l ? e.setAttributeNS(l, a, p) : e.setAttribute(a, p), At(e) ? Tt(e) : m(o.removed)
                        } catch (e) {}
                    }
                }
                bt("afterSanitizeAttributes", e, null)
            },
            Lt = function e(t) {
                let n = null;
                const o = _t(t);
                for (bt("beforeSanitizeShadowDOM", t, null); n = o.nextNode();) bt("uponSanitizeShadowNode", n, null), St(n) || (n.content instanceof s && e(n.content), Ct(n));
                bt("afterSanitizeShadowDOM", t, null)
            };
        return o.sanitize = function(e) {
            let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {},
                n = null,
                r = null,
                i = null,
                l = null;
            if (nt = !e, nt && (e = "\x3c!--\x3e"), "string" != typeof e && !Nt(e)) {
                if ("function" != typeof e.toString) throw A("toString is not a function");
                if ("string" != typeof(e = e.toString())) throw A("dirty is not a string, aborting")
            }
            if (!o.isSupported) return e;
            if (Ue || mt(t), o.removed = [], "string" == typeof e && (Ye = !1), Ye) {
                if (e.nodeName) {
                    const t = lt(e.nodeName);
                    if (!Ne[t] || Ce[t]) throw A("root node is forbidden and cannot be sanitized in-place")
                }
            } else if (e instanceof b) n = Et("\x3c!----\x3e"), r = n.ownerDocument.importNode(e, !0), r.nodeType === V && "BODY" === r.nodeName || "HTML" === r.nodeName ? n = r : n.appendChild(r);
            else {
                if (!Fe && !ke && !Ie && -1 === e.indexOf("<")) return ie && ze ? ie.createHTML(e) : e;
                if (n = Et(e), !n) return Fe ? null : ze ? ae : ""
            }
            n && Pe && Tt(n.firstChild);
            const c = _t(Ye ? e : n);
            for (; i = c.nextNode();) St(i) || (i.content instanceof s && Lt(i.content), Ct(i));
            if (Ye) return e;
            if (Fe) {
                if (He)
                    for (l = se.call(n.ownerDocument); n.firstChild;) l.appendChild(n.firstChild);
                else l = n;
                return (Se.shadowroot || Se.shadowrootmode) && (l = me.call(a, l, !0)), l
            }
            let m = Ie ? n.outerHTML : n.innerHTML;
            return Ie && Ne["!doctype"] && n.ownerDocument && n.ownerDocument.doctype && n.ownerDocument.doctype.name && _(q, n.ownerDocument.doctype.name) && (m = "<!DOCTYPE " + n.ownerDocument.doctype.name + ">\n" + m), ke && u([fe, de, he], (e => {
                m = g(m, e, " ")
            })), ie && ze ? ie.createHTML(m) : m
        }, o.setConfig = function() {
            mt(arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {}), Ue = !0
        }, o.clearConfig = function() {
            ct = null, Ue = !1
        }, o.isValidAttribute = function(e, t, n) {
            ct || mt({});
            const o = lt(e),
                r = lt(t);
            return Rt(o, r, n)
        }, o.addHook = function(e, t) {
            "function" == typeof t && (pe[e] = pe[e] || [], p(pe[e], t))
        }, o.removeHook = function(e) {
            if (pe[e]) return m(pe[e])
        }, o.removeHooks = function(e) {
            pe[e] && (pe[e] = [])
        }, o.removeAllHooks = function() {
            pe = {}
        }, o
    }();
    return ne
}));
"use strict";
! function(e, t) {
    "object" == typeof exports && "undefined" != typeof module ? t(exports) : "function" == typeof define && define.amd ? define(["exports"], t) : t((e = "undefined" != typeof globalThis ? globalThis : e || self).Popper = {})
}(this, (function(e) {
    function t(e) {
        return {
            width: (e = e.getBoundingClientRect()).width,
            height: e.height,
            top: e.top,
            right: e.right,
            bottom: e.bottom,
            left: e.left,
            x: e.left,
            y: e.top
        }
    }

    function n(e) {
        return null == e ? window : "[object Window]" !== e.toString() ? (e = e.ownerDocument) && e.defaultView || window : e
    }

    function o(e) {
        return {
            scrollLeft: (e = n(e)).pageXOffset,
            scrollTop: e.pageYOffset
        }
    }

    function r(e) {
        return e instanceof n(e).Element || e instanceof Element
    }

    function i(e) {
        return e instanceof n(e).HTMLElement || e instanceof HTMLElement
    }

    function a(e) {
        return "undefined" != typeof ShadowRoot && (e instanceof n(e).ShadowRoot || e instanceof ShadowRoot)
    }

    function s(e) {
        return e ? (e.nodeName || "").toLowerCase() : null
    }

    function f(e) {
        return ((r(e) ? e.ownerDocument : e.document) || window.document).documentElement
    }

    function p(e) {
        return t(f(e)).left + o(e).scrollLeft
    }

    function c(e) {
        return n(e).getComputedStyle(e)
    }

    function l(e) {
        return e = c(e), /auto|scroll|overlay|hidden/.test(e.overflow + e.overflowY + e.overflowX)
    }

    function u(e, r, a) {
        void 0 === a && (a = !1);
        var c = f(r);
        e = t(e);
        var u = i(r),
            d = {
                scrollLeft: 0,
                scrollTop: 0
            },
            m = {
                x: 0,
                y: 0
            };
        return (u || !u && !a) && (("body" !== s(r) || l(c)) && (d = r !== n(r) && i(r) ? {
            scrollLeft: r.scrollLeft,
            scrollTop: r.scrollTop
        } : o(r)), i(r) ? ((m = t(r)).x += r.clientLeft, m.y += r.clientTop) : c && (m.x = p(c))), {
            x: e.left + d.scrollLeft - m.x,
            y: e.top + d.scrollTop - m.y,
            width: e.width,
            height: e.height
        }
    }

    function d(e) {
        var n = t(e),
            o = e.offsetWidth,
            r = e.offsetHeight;
        return 1 >= Math.abs(n.width - o) && (o = n.width), 1 >= Math.abs(n.height - r) && (r = n.height), {
            x: e.offsetLeft,
            y: e.offsetTop,
            width: o,
            height: r
        }
    }

    function m(e) {
        return "html" === s(e) ? e : e.assignedSlot || e.parentNode || (a(e) ? e.host : null) || f(e)
    }

    function h(e) {
        return 0 <= ["html", "body", "#document"].indexOf(s(e)) ? e.ownerDocument.body : i(e) && l(e) ? e : h(m(e))
    }

    function v(e, t) {
        var o;
        void 0 === t && (t = []);
        var r = h(e);
        return e = r === (null == (o = e.ownerDocument) ? void 0 : o.body), o = n(r), r = e ? [o].concat(o.visualViewport || [], l(r) ? r : []) : r, t = t.concat(r), e ? t : t.concat(v(m(r)))
    }

    function g(e) {
        return i(e) && "fixed" !== c(e).position ? e.offsetParent : null
    }

    function y(e) {
        for (var t = n(e), o = g(e); o && 0 <= ["table", "td", "th"].indexOf(s(o)) && "static" === c(o).position;) o = g(o);
        if (o && ("html" === s(o) || "body" === s(o) && "static" === c(o).position)) return t;
        if (!o) e: {
            if (o = -1 !== navigator.userAgent.toLowerCase().indexOf("firefox"), -1 === navigator.userAgent.indexOf("Trident") || !i(e) || "fixed" !== c(e).position)
                for (e = m(e); i(e) && 0 > ["html", "body"].indexOf(s(e));) {
                    var r = c(e);
                    if ("none" !== r.transform || "none" !== r.perspective || "paint" === r.contain || -1 !== ["transform", "perspective"].indexOf(r.willChange) || o && "filter" === r.willChange || o && r.filter && "none" !== r.filter) {
                        o = e;
                        break e
                    }
                    e = e.parentNode
                }
            o = null
        }
        return o || t
    }

    function b(e) {
        function t(e) {
            o.add(e.name), [].concat(e.requires || [], e.requiresIfExists || []).forEach((function(e) {
                o.has(e) || (e = n.get(e)) && t(e)
            })), r.push(e)
        }
        var n = new Map,
            o = new Set,
            r = [];
        return e.forEach((function(e) {
            n.set(e.name, e)
        })), e.forEach((function(e) {
            o.has(e.name) || t(e)
        })), r
    }

    function w(e) {
        var t;
        return function() {
            return t || (t = new Promise((function(n) {
                Promise.resolve().then((function() {
                    t = void 0, n(e())
                }))
            }))), t
        }
    }

    function x(e) {
        return e.split("-")[0]
    }

    function O(e, t) {
        var n = t.getRootNode && t.getRootNode();
        if (e.contains(t)) return !0;
        if (n && a(n))
            do {
                if (t && e.isSameNode(t)) return !0;
                t = t.parentNode || t.host
            } while (t);
        return !1
    }

    function j(e) {
        return Object.assign({}, e, {
            left: e.x,
            top: e.y,
            right: e.x + e.width,
            bottom: e.y + e.height
        })
    }

    function E(e, r) {
        if ("viewport" === r) {
            r = n(e);
            var a = f(e);
            r = r.visualViewport;
            var s = a.clientWidth;
            a = a.clientHeight;
            var l = 0,
                u = 0;
            r && (s = r.width, a = r.height, /^((?!chrome|android).)*safari/i.test(navigator.userAgent) || (l = r.offsetLeft, u = r.offsetTop)), e = j(e = {
                width: s,
                height: a,
                x: l + p(e),
                y: u
            })
        } else i(r) ? ((e = t(r)).top += r.clientTop, e.left += r.clientLeft, e.bottom = e.top + r.clientHeight, e.right = e.left + r.clientWidth, e.width = r.clientWidth, e.height = r.clientHeight, e.x = e.left, e.y = e.top) : (u = f(e), e = f(u), s = o(u), r = null == (a = u.ownerDocument) ? void 0 : a.body, a = _(e.scrollWidth, e.clientWidth, r ? r.scrollWidth : 0, r ? r.clientWidth : 0), l = _(e.scrollHeight, e.clientHeight, r ? r.scrollHeight : 0, r ? r.clientHeight : 0), u = -s.scrollLeft + p(u), s = -s.scrollTop, "rtl" === c(r || e).direction && (u += _(e.clientWidth, r ? r.clientWidth : 0) - a), e = j({
            width: a,
            height: l,
            x: u,
            y: s
        }));
        return e
    }

    function D(e, t, n) {
        return t = "clippingParents" === t ? function(e) {
            var t = v(m(e)),
                n = 0 <= ["absolute", "fixed"].indexOf(c(e).position) && i(e) ? y(e) : e;
            return r(n) ? t.filter((function(e) {
                return r(e) && O(e, n) && "body" !== s(e)
            })) : []
        }(e) : [].concat(t), (n = (n = [].concat(t, [n])).reduce((function(t, n) {
            return n = E(e, n), t.top = _(n.top, t.top), t.right = U(n.right, t.right), t.bottom = U(n.bottom, t.bottom), t.left = _(n.left, t.left), t
        }), E(e, n[0]))).width = n.right - n.left, n.height = n.bottom - n.top, n.x = n.left, n.y = n.top, n
    }

    function L(e) {
        return 0 <= ["top", "bottom"].indexOf(e) ? "x" : "y"
    }

    function P(e) {
        var t = e.reference,
            n = e.element,
            o = (e = e.placement) ? x(e) : null;
        e = e ? e.split("-")[1] : null;
        var r = t.x + t.width / 2 - n.width / 2,
            i = t.y + t.height / 2 - n.height / 2;
        switch (o) {
            case "top":
                r = {
                    x: r,
                    y: t.y - n.height
                };
                break;
            case "bottom":
                r = {
                    x: r,
                    y: t.y + t.height
                };
                break;
            case "right":
                r = {
                    x: t.x + t.width,
                    y: i
                };
                break;
            case "left":
                r = {
                    x: t.x - n.width,
                    y: i
                };
                break;
            default:
                r = {
                    x: t.x,
                    y: t.y
                }
        }
        if (null != (o = o ? L(o) : null)) switch (i = "y" === o ? "height" : "width", e) {
            case "start":
                r[o] -= t[i] / 2 - n[i] / 2;
                break;
            case "end":
                r[o] += t[i] / 2 - n[i] / 2
        }
        return r
    }

    function M(e) {
        return Object.assign({}, {
            top: 0,
            right: 0,
            bottom: 0,
            left: 0
        }, e)
    }

    function k(e, t) {
        return t.reduce((function(t, n) {
            return t[n] = e, t
        }), {})
    }

    function A(e, n) {
        void 0 === n && (n = {});
        var o = n;
        n = void 0 === (n = o.placement) ? e.placement : n;
        var i = o.boundary,
            a = void 0 === i ? "clippingParents" : i,
            s = void 0 === (i = o.rootBoundary) ? "viewport" : i;
        i = void 0 === (i = o.elementContext) ? "popper" : i;
        var p = o.altBoundary,
            c = void 0 !== p && p;
        o = M("number" != typeof(o = void 0 === (o = o.padding) ? 0 : o) ? o : k(o, C));
        var l = e.elements.reference;
        p = e.rects.popper, a = D(r(c = e.elements[c ? "popper" === i ? "reference" : "popper" : i]) ? c : c.contextElement || f(e.elements.popper), a, s), c = P({
            reference: s = t(l),
            element: p,
            strategy: "absolute",
            placement: n
        }), p = j(Object.assign({}, p, c)), s = "popper" === i ? p : s;
        var u = {
            top: a.top - s.top + o.top,
            bottom: s.bottom - a.bottom + o.bottom,
            left: a.left - s.left + o.left,
            right: s.right - a.right + o.right
        };
        if (e = e.modifiersData.offset, "popper" === i && e) {
            var d = e[n];
            Object.keys(u).forEach((function(e) {
                var t = 0 <= ["right", "bottom"].indexOf(e) ? 1 : -1,
                    n = 0 <= ["top", "bottom"].indexOf(e) ? "y" : "x";
                u[e] += d[n] * t
            }))
        }
        return u
    }

    function W() {
        for (var e = arguments.length, t = Array(e), n = 0; n < e; n++) t[n] = arguments[n];
        return !t.some((function(e) {
            return !(e && "function" == typeof e.getBoundingClientRect)
        }))
    }

    function B(e) {
        void 0 === e && (e = {});
        var t = e.defaultModifiers,
            n = void 0 === t ? [] : t,
            o = void 0 === (e = e.defaultOptions) ? F : e;
        return function(e, t, i) {
            function a() {
                f.forEach((function(e) {
                    return e()
                })), f = []
            }
            void 0 === i && (i = o);
            var s = {
                    placement: "bottom",
                    orderedModifiers: [],
                    options: Object.assign({}, F, o),
                    modifiersData: {},
                    elements: {
                        reference: e,
                        popper: t
                    },
                    attributes: {},
                    styles: {}
                },
                f = [],
                p = !1,
                c = {
                    state: s,
                    setOptions: function(i) {
                        return a(), s.options = Object.assign({}, o, s.options, i), s.scrollParents = {
                            reference: r(e) ? v(e) : e.contextElement ? v(e.contextElement) : [],
                            popper: v(t)
                        }, i = function(e) {
                            var t = b(e);
                            return I.reduce((function(e, n) {
                                return e.concat(t.filter((function(e) {
                                    return e.phase === n
                                })))
                            }), [])
                        }(function(e) {
                            var t = e.reduce((function(e, t) {
                                var n = e[t.name];
                                return e[t.name] = n ? Object.assign({}, n, t, {
                                    options: Object.assign({}, n.options, t.options),
                                    data: Object.assign({}, n.data, t.data)
                                }) : t, e
                            }), {});
                            return Object.keys(t).map((function(e) {
                                return t[e]
                            }))
                        }([].concat(n, s.options.modifiers))), s.orderedModifiers = i.filter((function(e) {
                            return e.enabled
                        })), s.orderedModifiers.forEach((function(e) {
                            var t = e.name,
                                n = e.options;
                            n = void 0 === n ? {} : n, "function" == typeof(e = e.effect) && (t = e({
                                state: s,
                                name: t,
                                instance: c,
                                options: n
                            }), f.push(t || function() {}))
                        })), c.update()
                    },
                    forceUpdate: function() {
                        if (!p) {
                            var e = s.elements,
                                t = e.reference;
                            if (W(t, e = e.popper))
                                for (s.rects = {
                                        reference: u(t, y(e), "fixed" === s.options.strategy),
                                        popper: d(e)
                                    }, s.reset = !1, s.placement = s.options.placement, s.orderedModifiers.forEach((function(e) {
                                        return s.modifiersData[e.name] = Object.assign({}, e.data)
                                    })), t = 0; t < s.orderedModifiers.length; t++)
                                    if (!0 === s.reset) s.reset = !1, t = -1;
                                    else {
                                        var n = s.orderedModifiers[t];
                                        e = n.fn;
                                        var o = n.options;
                                        o = void 0 === o ? {} : o, n = n.name, "function" == typeof e && (s = e({
                                            state: s,
                                            options: o,
                                            name: n,
                                            instance: c
                                        }) || s)
                                    }
                        }
                    },
                    update: w((function() {
                        return new Promise((function(e) {
                            c.forceUpdate(), e(s)
                        }))
                    })),
                    destroy: function() {
                        a(), p = !0
                    }
                };
            return W(e, t) ? (c.setOptions(i).then((function(e) {
                !p && i.onFirstUpdate && i.onFirstUpdate(e)
            })), c) : c
        }
    }

    function T(e) {
        var t, o = e.popper,
            r = e.popperRect,
            i = e.placement,
            a = e.offsets,
            s = e.position,
            p = e.gpuAcceleration,
            l = e.adaptive;
        if (!0 === (e = e.roundOffsets)) {
            e = a.y;
            var u = window.devicePixelRatio || 1;
            e = {
                x: z(z(a.x * u) / u) || 0,
                y: z(z(e * u) / u) || 0
            }
        } else e = "function" == typeof e ? e(a) : a;
        e = void 0 === (e = (u = e).x) ? 0 : e, u = void 0 === (u = u.y) ? 0 : u;
        var d = a.hasOwnProperty("x");
        a = a.hasOwnProperty("y");
        var m, h = "left",
            v = "top",
            g = window;
        if (l) {
            var b = y(o),
                w = "clientHeight",
                x = "clientWidth";
            b === n(o) && ("static" !== c(b = f(o)).position && (w = "scrollHeight", x = "scrollWidth")), "top" === i && (v = "bottom", u -= b[w] - r.height, u *= p ? 1 : -1), "left" === i && (h = "right", e -= b[x] - r.width, e *= p ? 1 : -1)
        }
        return o = Object.assign({
            position: s
        }, l && J), p ? Object.assign({}, o, ((m = {})[v] = a ? "0" : "", m[h] = d ? "0" : "", m.transform = 2 > (g.devicePixelRatio || 1) ? "translate(" + e + "px, " + u + "px)" : "translate3d(" + e + "px, " + u + "px, 0)", m)) : Object.assign({}, o, ((t = {})[v] = a ? u + "px" : "", t[h] = d ? e + "px" : "", t.transform = "", t))
    }

    function H(e) {
        return e.replace(/left|right|bottom|top/g, (function(e) {
            return $[e]
        }))
    }

    function R(e) {
        return e.replace(/start|end/g, (function(e) {
            return ee[e]
        }))
    }

    function S(e, t, n) {
        return void 0 === n && (n = {
            x: 0,
            y: 0
        }), {
            top: e.top - t.height - n.y,
            right: e.right - t.width + n.x,
            bottom: e.bottom - t.height + n.y,
            left: e.left - t.width - n.x
        }
    }

    function q(e) {
        return ["top", "right", "bottom", "left"].some((function(t) {
            return 0 <= e[t]
        }))
    }
    var C = ["top", "bottom", "right", "left"],
        N = C.reduce((function(e, t) {
            return e.concat([t + "-start", t + "-end"])
        }), []),
        V = [].concat(C, ["auto"]).reduce((function(e, t) {
            return e.concat([t, t + "-start", t + "-end"])
        }), []),
        I = "beforeRead read afterRead beforeMain main afterMain beforeWrite write afterWrite".split(" "),
        _ = Math.max,
        U = Math.min,
        z = Math.round,
        F = {
            placement: "bottom",
            modifiers: [],
            strategy: "absolute"
        },
        X = {
            passive: !0
        },
        Y = {
            name: "eventListeners",
            enabled: !0,
            phase: "write",
            fn: function() {},
            effect: function(e) {
                var t = e.state,
                    o = e.instance,
                    r = (e = e.options).scroll,
                    i = void 0 === r || r,
                    a = void 0 === (e = e.resize) || e,
                    s = n(t.elements.popper),
                    f = [].concat(t.scrollParents.reference, t.scrollParents.popper);
                return i && f.forEach((function(e) {
                        e.addEventListener("scroll", o.update, X)
                    })), a && s.addEventListener("resize", o.update, X),
                    function() {
                        i && f.forEach((function(e) {
                            e.removeEventListener("scroll", o.update, X)
                        })), a && s.removeEventListener("resize", o.update, X)
                    }
            },
            data: {}
        },
        G = {
            name: "popperOffsets",
            enabled: !0,
            phase: "read",
            fn: function(e) {
                var t = e.state;
                t.modifiersData[e.name] = P({
                    reference: t.rects.reference,
                    element: t.rects.popper,
                    strategy: "absolute",
                    placement: t.placement
                })
            },
            data: {}
        },
        J = {
            top: "auto",
            right: "auto",
            bottom: "auto",
            left: "auto"
        },
        K = {
            name: "computeStyles",
            enabled: !0,
            phase: "beforeWrite",
            fn: function(e) {
                var t = e.state,
                    n = e.options;
                e = void 0 === (e = n.gpuAcceleration) || e;
                var o = n.adaptive;
                o = void 0 === o || o, n = void 0 === (n = n.roundOffsets) || n, e = {
                    placement: x(t.placement),
                    popper: t.elements.popper,
                    popperRect: t.rects.popper,
                    gpuAcceleration: e
                }, null != t.modifiersData.popperOffsets && (t.styles.popper = Object.assign({}, t.styles.popper, T(Object.assign({}, e, {
                    offsets: t.modifiersData.popperOffsets,
                    position: t.options.strategy,
                    adaptive: o,
                    roundOffsets: n
                })))), null != t.modifiersData.arrow && (t.styles.arrow = Object.assign({}, t.styles.arrow, T(Object.assign({}, e, {
                    offsets: t.modifiersData.arrow,
                    position: "absolute",
                    adaptive: !1,
                    roundOffsets: n
                })))), t.attributes.popper = Object.assign({}, t.attributes.popper, {
                    "data-popper-placement": t.placement
                })
            },
            data: {}
        },
        Q = {
            name: "applyStyles",
            enabled: !0,
            phase: "write",
            fn: function(e) {
                var t = e.state;
                Object.keys(t.elements).forEach((function(e) {
                    var n = t.styles[e] || {},
                        o = t.attributes[e] || {},
                        r = t.elements[e];
                    i(r) && s(r) && (Object.assign(r.style, n), Object.keys(o).forEach((function(e) {
                        var t = o[e];
                        !1 === t ? r.removeAttribute(e) : r.setAttribute(e, !0 === t ? "" : t)
                    })))
                }))
            },
            effect: function(e) {
                var t = e.state,
                    n = {
                        popper: {
                            position: t.options.strategy,
                            left: "0",
                            top: "0",
                            margin: "0"
                        },
                        arrow: {
                            position: "absolute"
                        },
                        reference: {}
                    };
                return Object.assign(t.elements.popper.style, n.popper), t.styles = n, t.elements.arrow && Object.assign(t.elements.arrow.style, n.arrow),
                    function() {
                        Object.keys(t.elements).forEach((function(e) {
                            var o = t.elements[e],
                                r = t.attributes[e] || {};
                            e = Object.keys(t.styles.hasOwnProperty(e) ? t.styles[e] : n[e]).reduce((function(e, t) {
                                return e[t] = "", e
                            }), {}), i(o) && s(o) && (Object.assign(o.style, e), Object.keys(r).forEach((function(e) {
                                o.removeAttribute(e)
                            })))
                        }))
                    }
            },
            requires: ["computeStyles"]
        },
        Z = {
            name: "offset",
            enabled: !0,
            phase: "main",
            requires: ["popperOffsets"],
            fn: function(e) {
                var t = e.state,
                    n = e.name,
                    o = void 0 === (e = e.options.offset) ? [0, 0] : e,
                    r = (e = V.reduce((function(e, n) {
                        var r = t.rects,
                            i = x(n),
                            a = 0 <= ["left", "top"].indexOf(i) ? -1 : 1,
                            s = "function" == typeof o ? o(Object.assign({}, r, {
                                placement: n
                            })) : o;
                        return r = (r = s[0]) || 0, s = ((s = s[1]) || 0) * a, i = 0 <= ["left", "right"].indexOf(i) ? {
                            x: s,
                            y: r
                        } : {
                            x: r,
                            y: s
                        }, e[n] = i, e
                    }), {}))[t.placement],
                    i = r.x;
                r = r.y, null != t.modifiersData.popperOffsets && (t.modifiersData.popperOffsets.x += i, t.modifiersData.popperOffsets.y += r), t.modifiersData[n] = e
            }
        },
        $ = {
            left: "right",
            right: "left",
            bottom: "top",
            top: "bottom"
        },
        ee = {
            start: "end",
            end: "start"
        },
        te = {
            name: "flip",
            enabled: !0,
            phase: "main",
            fn: function(e) {
                var t = e.state,
                    n = e.options;
                if (e = e.name, !t.modifiersData[e]._skip) {
                    var o = n.mainAxis;
                    o = void 0 === o || o;
                    var r = n.altAxis;
                    r = void 0 === r || r;
                    var i = n.fallbackPlacements,
                        a = n.padding,
                        s = n.boundary,
                        f = n.rootBoundary,
                        p = n.altBoundary,
                        c = n.flipVariations,
                        l = void 0 === c || c,
                        u = n.allowedAutoPlacements;
                    c = x(n = t.options.placement), i = i || (c !== n && l ? function(e) {
                        if ("auto" === x(e)) return [];
                        var t = H(e);
                        return [R(e), t, R(t)]
                    }(n) : [H(n)]);
                    var d = [n].concat(i).reduce((function(e, n) {
                        return e.concat("auto" === x(n) ? function(e, t) {
                            void 0 === t && (t = {});
                            var n = t.boundary,
                                o = t.rootBoundary,
                                r = t.padding,
                                i = t.flipVariations,
                                a = t.allowedAutoPlacements,
                                s = void 0 === a ? V : a,
                                f = t.placement.split("-")[1];
                            0 === (i = (t = f ? i ? N : N.filter((function(e) {
                                return e.split("-")[1] === f
                            })) : C).filter((function(e) {
                                return 0 <= s.indexOf(e)
                            }))).length && (i = t);
                            var p = i.reduce((function(t, i) {
                                return t[i] = A(e, {
                                    placement: i,
                                    boundary: n,
                                    rootBoundary: o,
                                    padding: r
                                })[x(i)], t
                            }), {});
                            return Object.keys(p).sort((function(e, t) {
                                return p[e] - p[t]
                            }))
                        }(t, {
                            placement: n,
                            boundary: s,
                            rootBoundary: f,
                            padding: a,
                            flipVariations: l,
                            allowedAutoPlacements: u
                        }) : n)
                    }), []);
                    n = t.rects.reference, i = t.rects.popper;
                    var m = new Map;
                    c = !0;
                    for (var h = d[0], v = 0; v < d.length; v++) {
                        var g = d[v],
                            y = x(g),
                            b = "start" === g.split("-")[1],
                            w = 0 <= ["top", "bottom"].indexOf(y),
                            O = w ? "width" : "height",
                            j = A(t, {
                                placement: g,
                                boundary: s,
                                rootBoundary: f,
                                altBoundary: p,
                                padding: a
                            });
                        if (b = w ? b ? "right" : "left" : b ? "bottom" : "top", n[O] > i[O] && (b = H(b)), O = H(b), w = [], o && w.push(0 >= j[y]), r && w.push(0 >= j[b], 0 >= j[O]), w.every((function(e) {
                                return e
                            }))) {
                            h = g, c = !1;
                            break
                        }
                        m.set(g, w)
                    }
                    if (c)
                        for (o = function(e) {
                                var t = d.find((function(t) {
                                    if (t = m.get(t)) return t.slice(0, e).every((function(e) {
                                        return e
                                    }))
                                }));
                                if (t) return h = t, "break"
                            }, r = l ? 3 : 1; 0 < r && "break" !== o(r); r--);
                    t.placement !== h && (t.modifiersData[e]._skip = !0, t.placement = h, t.reset = !0)
                }
            },
            requiresIfExists: ["offset"],
            data: {
                _skip: !1
            }
        },
        ne = {
            name: "preventOverflow",
            enabled: !0,
            phase: "main",
            fn: function(e) {
                var t = e.state,
                    n = e.options;
                e = e.name;
                var o = n.mainAxis,
                    r = void 0 === o || o,
                    i = void 0 !== (o = n.altAxis) && o;
                o = void 0 === (o = n.tether) || o;
                var a = n.tetherOffset,
                    s = void 0 === a ? 0 : a,
                    f = A(t, {
                        boundary: n.boundary,
                        rootBoundary: n.rootBoundary,
                        padding: n.padding,
                        altBoundary: n.altBoundary
                    });
                n = x(t.placement);
                var p = t.placement.split("-")[1],
                    c = !p,
                    l = L(n);
                n = "x" === l ? "y" : "x", a = t.modifiersData.popperOffsets;
                var u = t.rects.reference,
                    m = t.rects.popper,
                    h = "function" == typeof s ? s(Object.assign({}, t.rects, {
                        placement: t.placement
                    })) : s;
                if (s = {
                        x: 0,
                        y: 0
                    }, a) {
                    if (r || i) {
                        var v = "y" === l ? "top" : "left",
                            g = "y" === l ? "bottom" : "right",
                            b = "y" === l ? "height" : "width",
                            w = a[l],
                            O = a[l] + f[v],
                            j = a[l] - f[g],
                            E = o ? -m[b] / 2 : 0,
                            D = "start" === p ? u[b] : m[b];
                        p = "start" === p ? -m[b] : -u[b], m = t.elements.arrow, m = o && m ? d(m) : {
                            width: 0,
                            height: 0
                        };
                        var P = t.modifiersData["arrow#persistent"] ? t.modifiersData["arrow#persistent"].padding : {
                            top: 0,
                            right: 0,
                            bottom: 0,
                            left: 0
                        };
                        v = P[v], g = P[g], m = _(0, U(u[b], m[b])), D = c ? u[b] / 2 - E - m - v - h : D - m - v - h, u = c ? -u[b] / 2 + E + m + g + h : p + m + g + h, c = t.elements.arrow && y(t.elements.arrow), h = t.modifiersData.offset ? t.modifiersData.offset[t.placement][l] : 0, c = a[l] + D - h - (c ? "y" === l ? c.clientTop || 0 : c.clientLeft || 0 : 0), u = a[l] + u - h, r && (r = o ? U(O, c) : O, j = o ? _(j, u) : j, r = _(r, U(w, j)), a[l] = r, s[l] = r - w), i && (r = (i = a[n]) + f["x" === l ? "top" : "left"], f = i - f["x" === l ? "bottom" : "right"], r = o ? U(r, c) : r, o = o ? _(f, u) : f, o = _(r, U(i, o)), a[n] = o, s[n] = o - i)
                    }
                    t.modifiersData[e] = s
                }
            },
            requiresIfExists: ["offset"]
        },
        oe = {
            name: "arrow",
            enabled: !0,
            phase: "main",
            fn: function(e) {
                var t, n = e.state,
                    o = e.name,
                    r = e.options,
                    i = n.elements.arrow,
                    a = n.modifiersData.popperOffsets,
                    s = x(n.placement);
                if (e = L(s), s = 0 <= ["left", "right"].indexOf(s) ? "height" : "width", i && a) {
                    r = M("number" != typeof(r = "function" == typeof(r = r.padding) ? r(Object.assign({}, n.rects, {
                        placement: n.placement
                    })) : r) ? r : k(r, C));
                    var f = d(i),
                        p = "y" === e ? "top" : "left",
                        c = "y" === e ? "bottom" : "right",
                        l = n.rects.reference[s] + n.rects.reference[e] - a[e] - n.rects.popper[s];
                    a = a[e] - n.rects.reference[e], a = (i = (i = y(i)) ? "y" === e ? i.clientHeight || 0 : i.clientWidth || 0 : 0) / 2 - f[s] / 2 + (l / 2 - a / 2), s = _(r[p], U(a, i - f[s] - r[c])), n.modifiersData[o] = ((t = {})[e] = s, t.centerOffset = s - a, t)
                }
            },
            effect: function(e) {
                var t = e.state;
                if (null != (e = void 0 === (e = e.options.element) ? "[data-popper-arrow]" : e)) {
                    if ("string" == typeof e && !(e = t.elements.popper.querySelector(e))) return;
                    O(t.elements.popper, e) && (t.elements.arrow = e)
                }
            },
            requires: ["popperOffsets"],
            requiresIfExists: ["preventOverflow"]
        },
        re = {
            name: "hide",
            enabled: !0,
            phase: "main",
            requiresIfExists: ["preventOverflow"],
            fn: function(e) {
                var t = e.state;
                e = e.name;
                var n = t.rects.reference,
                    o = t.rects.popper,
                    r = t.modifiersData.preventOverflow,
                    i = A(t, {
                        elementContext: "reference"
                    }),
                    a = A(t, {
                        altBoundary: !0
                    });
                n = S(i, n), o = S(a, o, r), r = q(n), a = q(o), t.modifiersData[e] = {
                    referenceClippingOffsets: n,
                    popperEscapeOffsets: o,
                    isReferenceHidden: r,
                    hasPopperEscaped: a
                }, t.attributes.popper = Object.assign({}, t.attributes.popper, {
                    "data-popper-reference-hidden": r,
                    "data-popper-escaped": a
                })
            }
        },
        ie = B({
            defaultModifiers: [Y, G, K, Q]
        }),
        ae = [Y, G, K, Q, Z, te, ne, oe, re],
        se = B({
            defaultModifiers: ae
        });
    e.applyStyles = Q, e.arrow = oe, e.computeStyles = K, e.createPopper = se, e.createPopperLite = ie, e.defaultModifiers = ae, e.detectOverflow = A, e.eventListeners = Y, e.flip = te, e.hide = re, e.offset = Z, e.popperGenerator = B, e.popperOffsets = G, e.preventOverflow = ne, Object.defineProperty(e, "__esModule", {
        value: !0
    })
}));
/*!
 * Bootstrap v4.0.0 (https://getbootstrap.com)
 * Copyright 2011-2018 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
 */
(function(global, factory) {
    typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery'), require('popper.js')) : typeof define === 'function' && define.amd ? define(['exports', 'jquery', 'popper.js'], factory) : (factory((global.bootstrap = {}), global.jQuery, global.Popper))
}(this, (function(exports, $, Popper) {
    'use strict';
    $ = $ && $.hasOwnProperty('default') ? $['default'] : $;
    Popper = Popper && Popper.hasOwnProperty('default') ? Popper['default'] : Popper;

    function _defineProperties(target, props) {
        for (var i = 0; i < props.length; i++) {
            var descriptor = props[i];
            descriptor.enumerable = descriptor.enumerable || !1;
            descriptor.configurable = !0;
            if ("value" in descriptor) descriptor.writable = !0;
            Object.defineProperty(target, descriptor.key, descriptor)
        }
    }

    function _createClass(Constructor, protoProps, staticProps) {
        if (protoProps) _defineProperties(Constructor.prototype, protoProps);
        if (staticProps) _defineProperties(Constructor, staticProps);
        return Constructor
    }

    function _extends() {
        _extends = Object.assign || function(target) {
            for (var i = 1; i < arguments.length; i++) {
                var source = arguments[i];
                for (var key in source) {
                    if (Object.prototype.hasOwnProperty.call(source, key)) {
                        target[key] = source[key]
                    }
                }
            }
            return target
        };
        return _extends.apply(this, arguments)
    }

    function _inheritsLoose(subClass, superClass) {
        subClass.prototype = Object.create(superClass.prototype);
        subClass.prototype.constructor = subClass;
        subClass.__proto__ = superClass
    }
    var Util = function($$$1) {
        var transition = !1;
        var MAX_UID = 1000000;

        function toType(obj) {
            return {}.toString.call(obj).match(/\s([a-zA-Z]+)/)[1].toLowerCase()
        }

        function getSpecialTransitionEndEvent() {
            return {
                bindType: transition.end,
                delegateType: transition.end,
                handle: function handle(event) {
                    if ($$$1(event.target).is(this)) {
                        return event.handleObj.handler.apply(this, arguments)
                    }
                    return undefined
                }
            }
        }

        function transitionEndTest() {
            if (typeof window !== 'undefined' && window.QUnit) {
                return !1
            }
            return {
                end: 'transitionend'
            }
        }

        function transitionEndEmulator(duration) {
            var _this = this;
            var called = !1;
            $$$1(this).one(Util.TRANSITION_END, function() {
                called = !0
            });
            setTimeout(function() {
                if (!called) {
                    Util.triggerTransitionEnd(_this)
                }
            }, duration);
            return this
        }

        function setTransitionEndSupport() {
            transition = transitionEndTest();
            $$$1.fn.emulateTransitionEnd = transitionEndEmulator;
            if (Util.supportsTransitionEnd()) {
                $$$1.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()
            }
        }

        function escapeId(selector) {
            selector = typeof $$$1.escapeSelector === 'function' ? $$$1.escapeSelector(selector).substr(1) : selector.replace(/(:|\.|\[|\]|,|=|@)/g, '\\$1');
            return selector
        }
        var Util = {
            TRANSITION_END: 'bsTransitionEnd',
            getUID: function getUID(prefix) {
                do {
                    prefix += ~~(Math.random() * MAX_UID)
                } while (document.getElementById(prefix));
                return prefix
            },
            getSelectorFromElement: function getSelectorFromElement(element) {
                var selector = element.getAttribute('data-target');
                if (!selector || selector === '#') {
                    selector = element.getAttribute('href') || ''
                }
                if (selector.charAt(0) === '#') {
                    selector = escapeId(selector)
                }
                try {
                    var $selector = $$$1(document).find(selector);
                    return $selector.length > 0 ? selector : null
                } catch (err) {
                    return null
                }
            },
            reflow: function reflow(element) {
                return element.offsetHeight
            },
            triggerTransitionEnd: function triggerTransitionEnd(element) {
                $$$1(element).trigger(transition.end)
            },
            supportsTransitionEnd: function supportsTransitionEnd() {
                return Boolean(transition)
            },
            isElement: function isElement(obj) {
                return (obj[0] || obj).nodeType
            },
            typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {
                for (var property in configTypes) {
                    if (Object.prototype.hasOwnProperty.call(configTypes, property)) {
                        var expectedTypes = configTypes[property];
                        var value = config[property];
                        var valueType = value && Util.isElement(value) ? 'element' : toType(value);
                        if (!new RegExp(expectedTypes).test(valueType)) {
                            throw new Error(componentName.toUpperCase() + ": " + ("Option \"" + property + "\" provided type \"" + valueType + "\" ") + ("but expected type \"" + expectedTypes + "\"."))
                        }
                    }
                }
            }
        };
        setTransitionEndSupport();
        return Util
    }($);
    var Alert = function($$$1) {
        var NAME = 'alert';
        var VERSION = '4.0.0';
        var DATA_KEY = 'bs.alert';
        var EVENT_KEY = "." + DATA_KEY;
        var DATA_API_KEY = '.data-api';
        var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
        var TRANSITION_DURATION = 150;
        var Selector = {
            DISMISS: '[data-dismiss="alert"]'
        };
        var Event = {
            CLOSE: "close" + EVENT_KEY,
            CLOSED: "closed" + EVENT_KEY,
            CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
        };
        var ClassName = {
            ALERT: 'alert',
            FADE: 'fade',
            SHOW: 'show'
        };
        var Alert = function() {
            function Alert(element) {
                this._element = element
            }
            var _proto = Alert.prototype;
            _proto.close = function close(element) {
                element = element || this._element;
                var rootElement = this._getRootElement(element);
                var customEvent = this._triggerCloseEvent(rootElement);
                if (customEvent.isDefaultPrevented()) {
                    return
                }
                this._removeElement(rootElement)
            };
            _proto.dispose = function dispose() {
                $$$1.removeData(this._element, DATA_KEY);
                this._element = null
            };
            _proto._getRootElement = function _getRootElement(element) {
                var selector = Util.getSelectorFromElement(element);
                var parent = !1;
                if (selector) {
                    parent = $$$1(selector)[0]
                }
                if (!parent) {
                    parent = $$$1(element).closest("." + ClassName.ALERT)[0]
                }
                return parent
            };
            _proto._triggerCloseEvent = function _triggerCloseEvent(element) {
                var closeEvent = $$$1.Event(Event.CLOSE);
                $$$1(element).trigger(closeEvent);
                return closeEvent
            };
            _proto._removeElement = function _removeElement(element) {
                var _this = this;
                $$$1(element).removeClass(ClassName.SHOW);
                if (!Util.supportsTransitionEnd() || !$$$1(element).hasClass(ClassName.FADE)) {
                    this._destroyElement(element);
                    return
                }
                $$$1(element).one(Util.TRANSITION_END, function(event) {
                    return _this._destroyElement(element, event)
                }).emulateTransitionEnd(TRANSITION_DURATION)
            };
            _proto._destroyElement = function _destroyElement(element) {
                $$$1(element).detach().trigger(Event.CLOSED).remove()
            };
            Alert._jQueryInterface = function _jQueryInterface(config) {
                return this.each(function() {
                    var $element = $$$1(this);
                    var data = $element.data(DATA_KEY);
                    if (!data) {
                        data = new Alert(this);
                        $element.data(DATA_KEY, data)
                    }
                    if (config === 'close') {
                        data[config](this)
                    }
                })
            };
            Alert._handleDismiss = function _handleDismiss(alertInstance) {
                return function(event) {
                    if (event) {
                        event.preventDefault()
                    }
                    alertInstance.close(this)
                }
            };
            _createClass(Alert, null, [{
                key: "VERSION",
                get: function get() {
                    return VERSION
                }
            }]);
            return Alert
        }();
        $$$1(document).on(Event.CLICK_DATA_API, Selector.DISMISS, Alert._handleDismiss(new Alert()));
        $$$1.fn[NAME] = Alert._jQueryInterface;
        $$$1.fn[NAME].Constructor = Alert;
        $$$1.fn[NAME].noConflict = function() {
            $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
            return Alert._jQueryInterface
        };
        return Alert
    }($);
    var Button = function($$$1) {
        var NAME = 'button';
        var VERSION = '4.0.0';
        var DATA_KEY = 'bs.button';
        var EVENT_KEY = "." + DATA_KEY;
        var DATA_API_KEY = '.data-api';
        var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
        var ClassName = {
            ACTIVE: 'active',
            BUTTON: 'btn',
            FOCUS: 'focus'
        };
        var Selector = {
            DATA_TOGGLE_CARROT: '[data-toggle^="button"]',
            DATA_TOGGLE: '[data-toggle="buttons"]',
            INPUT: 'input',
            ACTIVE: '.active',
            BUTTON: '.btn'
        };
        var Event = {
            CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
            FOCUS_BLUR_DATA_API: "focus" + EVENT_KEY + DATA_API_KEY + " " + ("blur" + EVENT_KEY + DATA_API_KEY)
        };
        var Button = function() {
            function Button(element) {
                this._element = element
            }
            var _proto = Button.prototype;
            _proto.toggle = function toggle() {
                var triggerChangeEvent = !0;
                var addAriaPressed = !0;
                var rootElement = $$$1(this._element).closest(Selector.DATA_TOGGLE)[0];
                if (rootElement) {
                    var input = $$$1(this._element).find(Selector.INPUT)[0];
                    if (input) {
                        if (input.type === 'radio') {
                            if (input.checked && $$$1(this._element).hasClass(ClassName.ACTIVE)) {
                                triggerChangeEvent = !1
                            } else {
                                var activeElement = $$$1(rootElement).find(Selector.ACTIVE)[0];
                                if (activeElement) {
                                    $$$1(activeElement).removeClass(ClassName.ACTIVE)
                                }
                            }
                        }
                        if (triggerChangeEvent) {
                            if (input.hasAttribute('disabled') || rootElement.hasAttribute('disabled') || input.classList.contains('disabled') || rootElement.classList.contains('disabled')) {
                                return
                            }
                            input.checked = !$$$1(this._element).hasClass(ClassName.ACTIVE);
                            $$$1(input).trigger('change')
                        }
                        input.focus();
                        addAriaPressed = !1
                    }
                }
                if (addAriaPressed) {
                    this._element.setAttribute('aria-pressed', !$$$1(this._element).hasClass(ClassName.ACTIVE))
                }
                if (triggerChangeEvent) {
                    $$$1(this._element).toggleClass(ClassName.ACTIVE)
                }
            };
            _proto.dispose = function dispose() {
                $$$1.removeData(this._element, DATA_KEY);
                this._element = null
            };
            Button._jQueryInterface = function _jQueryInterface(config) {
                return this.each(function() {
                    var data = $$$1(this).data(DATA_KEY);
                    if (!data) {
                        data = new Button(this);
                        $$$1(this).data(DATA_KEY, data)
                    }
                    if (config === 'toggle') {
                        data[config]()
                    }
                })
            };
            _createClass(Button, null, [{
                key: "VERSION",
                get: function get() {
                    return VERSION
                }
            }]);
            return Button
        }();
        $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, function(event) {
            event.preventDefault();
            var button = event.target;
            if (!$$$1(button).hasClass(ClassName.BUTTON)) {
                button = $$$1(button).closest(Selector.BUTTON)
            }
            Button._jQueryInterface.call($$$1(button), 'toggle')
        }).on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, function(event) {
            var button = $$$1(event.target).closest(Selector.BUTTON)[0];
            $$$1(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))
        });
        $$$1.fn[NAME] = Button._jQueryInterface;
        $$$1.fn[NAME].Constructor = Button;
        $$$1.fn[NAME].noConflict = function() {
            $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
            return Button._jQueryInterface
        };
        return Button
    }($);
    var Carousel = function($$$1) {
        var NAME = 'carousel';
        var VERSION = '4.0.0';
        var DATA_KEY = 'bs.carousel';
        var EVENT_KEY = "." + DATA_KEY;
        var DATA_API_KEY = '.data-api';
        var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
        var TRANSITION_DURATION = 600;
        var ARROW_LEFT_KEYCODE = 37;
        var ARROW_RIGHT_KEYCODE = 39;
        var TOUCHEVENT_COMPAT_WAIT = 500;
        var Default = {
            interval: 5000,
            keyboard: !0,
            slide: !1,
            pause: 'hover',
            wrap: !0
        };
        var DefaultType = {
            interval: '(number|boolean)',
            keyboard: 'boolean',
            slide: '(boolean|string)',
            pause: '(string|boolean)',
            wrap: 'boolean'
        };
        var Direction = {
            NEXT: 'next',
            PREV: 'prev',
            LEFT: 'left',
            RIGHT: 'right'
        };
        var Event = {
            SLIDE: "slide" + EVENT_KEY,
            SLID: "slid" + EVENT_KEY,
            KEYDOWN: "keydown" + EVENT_KEY,
            MOUSEENTER: "mouseenter" + EVENT_KEY,
            MOUSELEAVE: "mouseleave" + EVENT_KEY,
            TOUCHEND: "touchend" + EVENT_KEY,
            LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY,
            CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
        };
        var ClassName = {
            CAROUSEL: 'carousel',
            ACTIVE: 'active',
            SLIDE: 'slide',
            RIGHT: 'carousel-item-right',
            LEFT: 'carousel-item-left',
            NEXT: 'carousel-item-next',
            PREV: 'carousel-item-prev',
            ITEM: 'carousel-item'
        };
        var Selector = {
            ACTIVE: '.active',
            ACTIVE_ITEM: '.active.carousel-item',
            ITEM: '.carousel-item',
            NEXT_PREV: '.carousel-item-next, .carousel-item-prev',
            INDICATORS: '.carousel-indicators',
            DATA_SLIDE: '[data-slide], [data-slide-to]',
            DATA_RIDE: '[data-ride="carousel"]'
        };
        var Carousel = function() {
            function Carousel(element, config) {
                this._items = null;
                this._interval = null;
                this._activeElement = null;
                this._isPaused = !1;
                this._isSliding = !1;
                this.touchTimeout = null;
                this._config = this._getConfig(config);
                this._element = $$$1(element)[0];
                this._indicatorsElement = $$$1(this._element).find(Selector.INDICATORS)[0];
                this._addEventListeners()
            }
            var _proto = Carousel.prototype;
            _proto.next = function next() {
                if (!this._isSliding) {
                    this._slide(Direction.NEXT)
                }
            };
            _proto.nextWhenVisible = function nextWhenVisible() {
                if (!document.hidden && $$$1(this._element).is(':visible') && $$$1(this._element).css('visibility') !== 'hidden') {
                    this.next()
                }
            };
            _proto.prev = function prev() {
                if (!this._isSliding) {
                    this._slide(Direction.PREV)
                }
            };
            _proto.pause = function pause(event) {
                if (!event) {
                    this._isPaused = !0
                }
                if ($$$1(this._element).find(Selector.NEXT_PREV)[0] && Util.supportsTransitionEnd()) {
                    Util.triggerTransitionEnd(this._element);
                    this.cycle(!0)
                }
                clearInterval(this._interval);
                this._interval = null
            };
            _proto.cycle = function cycle(event) {
                if (!event) {
                    this._isPaused = !1
                }
                if (this._interval) {
                    clearInterval(this._interval);
                    this._interval = null
                }
                if (this._config.interval && !this._isPaused) {
                    this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval)
                }
            };
            _proto.to = function to(index) {
                var _this = this;
                this._activeElement = $$$1(this._element).find(Selector.ACTIVE_ITEM)[0];
                var activeIndex = this._getItemIndex(this._activeElement);
                if (index > this._items.length - 1 || index < 0) {
                    return
                }
                if (this._isSliding) {
                    $$$1(this._element).one(Event.SLID, function() {
                        return _this.to(index)
                    });
                    return
                }
                if (activeIndex === index) {
                    this.pause();
                    this.cycle();
                    return
                }
                var direction = index > activeIndex ? Direction.NEXT : Direction.PREV;
                this._slide(direction, this._items[index])
            };
            _proto.dispose = function dispose() {
                $$$1(this._element).off(EVENT_KEY);
                $$$1.removeData(this._element, DATA_KEY);
                this._items = null;
                this._config = null;
                this._element = null;
                this._interval = null;
                this._isPaused = null;
                this._isSliding = null;
                this._activeElement = null;
                this._indicatorsElement = null
            };
            _proto._getConfig = function _getConfig(config) {
                config = _extends({}, Default, config);
                Util.typeCheckConfig(NAME, config, DefaultType);
                return config
            };
            _proto._addEventListeners = function _addEventListeners() {
                var _this2 = this;
                if (this._config.keyboard) {
                    $$$1(this._element).on(Event.KEYDOWN, function(event) {
                        return _this2._keydown(event)
                    })
                }
                if (this._config.pause === 'hover') {
                    $$$1(this._element).on(Event.MOUSEENTER, function(event) {
                        return _this2.pause(event)
                    }).on(Event.MOUSELEAVE, function(event) {
                        return _this2.cycle(event)
                    });
                    if ('ontouchstart' in document.documentElement) {
                        $$$1(this._element).on(Event.TOUCHEND, function() {
                            _this2.pause();
                            if (_this2.touchTimeout) {
                                clearTimeout(_this2.touchTimeout)
                            }
                            _this2.touchTimeout = setTimeout(function(event) {
                                return _this2.cycle(event)
                            }, TOUCHEVENT_COMPAT_WAIT + _this2._config.interval)
                        })
                    }
                }
            };
            _proto._keydown = function _keydown(event) {
                if (/input|textarea/i.test(event.target.tagName)) {
                    return
                }
                switch (event.which) {
                    case ARROW_LEFT_KEYCODE:
                        event.preventDefault();
                        this.prev();
                        break;
                    case ARROW_RIGHT_KEYCODE:
                        event.preventDefault();
                        this.next();
                        break;
                    default:
                }
            };
            _proto._getItemIndex = function _getItemIndex(element) {
                this._items = $$$1.makeArray($$$1(element).parent().find(Selector.ITEM));
                return this._items.indexOf(element)
            };
            _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {
                var isNextDirection = direction === Direction.NEXT;
                var isPrevDirection = direction === Direction.PREV;
                var activeIndex = this._getItemIndex(activeElement);
                var lastItemIndex = this._items.length - 1;
                var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;
                if (isGoingToWrap && !this._config.wrap) {
                    return activeElement
                }
                var delta = direction === Direction.PREV ? -1 : 1;
                var itemIndex = (activeIndex + delta) % this._items.length;
                return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex]
            };
            _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {
                var targetIndex = this._getItemIndex(relatedTarget);
                var fromIndex = this._getItemIndex($$$1(this._element).find(Selector.ACTIVE_ITEM)[0]);
                var slideEvent = $$$1.Event(Event.SLIDE, {
                    relatedTarget: relatedTarget,
                    direction: eventDirectionName,
                    from: fromIndex,
                    to: targetIndex
                });
                $$$1(this._element).trigger(slideEvent);
                return slideEvent
            };
            _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {
                if (this._indicatorsElement) {
                    $$$1(this._indicatorsElement).find(Selector.ACTIVE).removeClass(ClassName.ACTIVE);
                    var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];
                    if (nextIndicator) {
                        $$$1(nextIndicator).addClass(ClassName.ACTIVE)
                    }
                }
            };
            _proto._slide = function _slide(direction, element) {
                var _this3 = this;
                var activeElement = $$$1(this._element).find(Selector.ACTIVE_ITEM)[0];
                var activeElementIndex = this._getItemIndex(activeElement);
                var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);
                var nextElementIndex = this._getItemIndex(nextElement);
                var isCycling = Boolean(this._interval);
                var directionalClassName;
                var orderClassName;
                var eventDirectionName;
                if (direction === Direction.NEXT) {
                    directionalClassName = ClassName.LEFT;
                    orderClassName = ClassName.NEXT;
                    eventDirectionName = Direction.LEFT
                } else {
                    directionalClassName = ClassName.RIGHT;
                    orderClassName = ClassName.PREV;
                    eventDirectionName = Direction.RIGHT
                }
                if (nextElement && $$$1(nextElement).hasClass(ClassName.ACTIVE)) {
                    this._isSliding = !1;
                    return
                }
                var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);
                if (slideEvent.isDefaultPrevented()) {
                    return
                }
                if (!activeElement || !nextElement) {
                    return
                }
                this._isSliding = !0;
                if (isCycling) {
                    this.pause()
                }
                this._setActiveIndicatorElement(nextElement);
                var slidEvent = $$$1.Event(Event.SLID, {
                    relatedTarget: nextElement,
                    direction: eventDirectionName,
                    from: activeElementIndex,
                    to: nextElementIndex
                });
                if (Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.SLIDE)) {
                    $$$1(nextElement).addClass(orderClassName);
                    Util.reflow(nextElement);
                    $$$1(activeElement).addClass(directionalClassName);
                    $$$1(nextElement).addClass(directionalClassName);
                    $$$1(activeElement).one(Util.TRANSITION_END, function() {
                        $$$1(nextElement).removeClass(directionalClassName + " " + orderClassName).addClass(ClassName.ACTIVE);
                        $$$1(activeElement).removeClass(ClassName.ACTIVE + " " + orderClassName + " " + directionalClassName);
                        _this3._isSliding = !1;
                        setTimeout(function() {
                            return $$$1(_this3._element).trigger(slidEvent)
                        }, 0)
                    }).emulateTransitionEnd(TRANSITION_DURATION)
                } else {
                    $$$1(activeElement).removeClass(ClassName.ACTIVE);
                    $$$1(nextElement).addClass(ClassName.ACTIVE);
                    this._isSliding = !1;
                    $$$1(this._element).trigger(slidEvent)
                }
                if (isCycling) {
                    this.cycle()
                }
            };
            Carousel._jQueryInterface = function _jQueryInterface(config) {
                return this.each(function() {
                    var data = $$$1(this).data(DATA_KEY);
                    var _config = _extends({}, Default, $$$1(this).data());
                    if (typeof config === 'object') {
                        _config = _extends({}, _config, config)
                    }
                    var action = typeof config === 'string' ? config : _config.slide;
                    if (!data) {
                        data = new Carousel(this, _config);
                        $$$1(this).data(DATA_KEY, data)
                    }
                    if (typeof config === 'number') {
                        data.to(config)
                    } else if (typeof action === 'string') {
                        if (typeof data[action] === 'undefined') {
                            throw new TypeError("No method named \"" + action + "\"")
                        }
                        data[action]()
                    } else if (_config.interval) {
                        data.pause();
                        data.cycle()
                    }
                })
            };
            Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {
                var selector = Util.getSelectorFromElement(this);
                if (!selector) {
                    return
                }
                var target = $$$1(selector)[0];
                if (!target || !$$$1(target).hasClass(ClassName.CAROUSEL)) {
                    return
                }
                var config = _extends({}, $$$1(target).data(), $$$1(this).data());
                var slideIndex = this.getAttribute('data-slide-to');
                if (slideIndex) {
                    config.interval = !1
                }
                Carousel._jQueryInterface.call($$$1(target), config);
                if (slideIndex) {
                    $$$1(target).data(DATA_KEY).to(slideIndex)
                }
                event.preventDefault()
            };
            _createClass(Carousel, null, [{
                key: "VERSION",
                get: function get() {
                    return VERSION
                }
            }, {
                key: "Default",
                get: function get() {
                    return Default
                }
            }]);
            return Carousel
        }();
        $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler);
        $$$1(window).on(Event.LOAD_DATA_API, function() {
            $$$1(Selector.DATA_RIDE).each(function() {
                var $carousel = $$$1(this);
                Carousel._jQueryInterface.call($carousel, $carousel.data())
            })
        });
        $$$1.fn[NAME] = Carousel._jQueryInterface;
        $$$1.fn[NAME].Constructor = Carousel;
        $$$1.fn[NAME].noConflict = function() {
            $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
            return Carousel._jQueryInterface
        };
        return Carousel
    }($);
    var Collapse = function($$$1) {
        var NAME = 'collapse';
        var VERSION = '4.0.0';
        var DATA_KEY = 'bs.collapse';
        var EVENT_KEY = "." + DATA_KEY;
        var DATA_API_KEY = '.data-api';
        var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
        var TRANSITION_DURATION = 600;
        var Default = {
            toggle: !0,
            parent: ''
        };
        var DefaultType = {
            toggle: 'boolean',
            parent: '(string|element)'
        };
        var Event = {
            SHOW: "show" + EVENT_KEY,
            SHOWN: "shown" + EVENT_KEY,
            HIDE: "hide" + EVENT_KEY,
            HIDDEN: "hidden" + EVENT_KEY,
            CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
        };
        var ClassName = {
            SHOW: 'show',
            COLLAPSE: 'collapse',
            COLLAPSING: 'collapsing',
            COLLAPSED: 'collapsed'
        };
        var Dimension = {
            WIDTH: 'width',
            HEIGHT: 'height'
        };
        var Selector = {
            ACTIVES: '.show, .collapsing',
            DATA_TOGGLE: '[data-toggle="collapse"]'
        };
        var Collapse = function() {
            function Collapse(element, config) {
                this._isTransitioning = !1;
                this._element = element;
                this._config = this._getConfig(config);
                this._triggerArray = $$$1.makeArray($$$1("[data-toggle=\"collapse\"][href=\"#" + element.id + "\"]," + ("[data-toggle=\"collapse\"][data-target=\"#" + element.id + "\"]")));
                var tabToggles = $$$1(Selector.DATA_TOGGLE);
                for (var i = 0; i < tabToggles.length; i++) {
                    var elem = tabToggles[i];
                    var selector = Util.getSelectorFromElement(elem);
                    if (selector !== null && $$$1(selector).filter(element).length > 0) {
                        this._selector = selector;
                        this._triggerArray.push(elem)
                    }
                }
                this._parent = this._config.parent ? this._getParent() : null;
                if (!this._config.parent) {
                    this._addAriaAndCollapsedClass(this._element, this._triggerArray)
                }
                if (this._config.toggle) {
                    this.toggle()
                }
            }
            var _proto = Collapse.prototype;
            _proto.toggle = function toggle() {
                if ($$$1(this._element).hasClass(ClassName.SHOW)) {
                    this.hide()
                } else {
                    this.show()
                }
            };
            _proto.show = function show() {
                var _this = this;
                if (this._isTransitioning || $$$1(this._element).hasClass(ClassName.SHOW)) {
                    return
                }
                var actives;
                var activesData;
                if (this._parent) {
                    actives = $$$1.makeArray($$$1(this._parent).find(Selector.ACTIVES).filter("[data-parent=\"" + this._config.parent + "\"]"));
                    if (actives.length === 0) {
                        actives = null
                    }
                }
                if (actives) {
                    activesData = $$$1(actives).not(this._selector).data(DATA_KEY);
                    if (activesData && activesData._isTransitioning) {
                        return
                    }
                }
                var startEvent = $$$1.Event(Event.SHOW);
                $$$1(this._element).trigger(startEvent);
                if (startEvent.isDefaultPrevented()) {
                    return
                }
                if (actives) {
                    Collapse._jQueryInterface.call($$$1(actives).not(this._selector), 'hide');
                    if (!activesData) {
                        $$$1(actives).data(DATA_KEY, null)
                    }
                }
                var dimension = this._getDimension();
                $$$1(this._element).removeClass(ClassName.COLLAPSE).addClass(ClassName.COLLAPSING);
                this._element.style[dimension] = 0;
                if (this._triggerArray.length > 0) {
                    $$$1(this._triggerArray).removeClass(ClassName.COLLAPSED).attr('aria-expanded', !0)
                }
                this.setTransitioning(!0);
                var complete = function complete() {
                    $$$1(_this._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).addClass(ClassName.SHOW);
                    _this._element.style[dimension] = '';
                    _this.setTransitioning(!1);
                    $$$1(_this._element).trigger(Event.SHOWN)
                };
                if (!Util.supportsTransitionEnd()) {
                    complete();
                    return
                }
                var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);
                var scrollSize = "scroll" + capitalizedDimension;
                $$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION);
                this._element.style[dimension] = this._element[scrollSize] + "px"
            };
            _proto.hide = function hide() {
                var _this2 = this;
                if (this._isTransitioning || !$$$1(this._element).hasClass(ClassName.SHOW)) {
                    return
                }
                var startEvent = $$$1.Event(Event.HIDE);
                $$$1(this._element).trigger(startEvent);
                if (startEvent.isDefaultPrevented()) {
                    return
                }
                var dimension = this._getDimension();
                this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + "px";
                Util.reflow(this._element);
                $$$1(this._element).addClass(ClassName.COLLAPSING).removeClass(ClassName.COLLAPSE).removeClass(ClassName.SHOW);
                if (this._triggerArray.length > 0) {
                    for (var i = 0; i < this._triggerArray.length; i++) {
                        var trigger = this._triggerArray[i];
                        var selector = Util.getSelectorFromElement(trigger);
                        if (selector !== null) {
                            var $elem = $$$1(selector);
                            if (!$elem.hasClass(ClassName.SHOW)) {
                                $$$1(trigger).addClass(ClassName.COLLAPSED).attr('aria-expanded', !1)
                            }
                        }
                    }
                }
                this.setTransitioning(!0);
                var complete = function complete() {
                    _this2.setTransitioning(!1);
                    $$$1(_this2._element).removeClass(ClassName.COLLAPSING).addClass(ClassName.COLLAPSE).trigger(Event.HIDDEN)
                };
                this._element.style[dimension] = '';
                if (!Util.supportsTransitionEnd()) {
                    complete();
                    return
                }
                $$$1(this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION)
            };
            _proto.setTransitioning = function setTransitioning(isTransitioning) {
                this._isTransitioning = isTransitioning
            };
            _proto.dispose = function dispose() {
                $$$1.removeData(this._element, DATA_KEY);
                this._config = null;
                this._parent = null;
                this._element = null;
                this._triggerArray = null;
                this._isTransitioning = null
            };
            _proto._getConfig = function _getConfig(config) {
                config = _extends({}, Default, config);
                config.toggle = Boolean(config.toggle);
                Util.typeCheckConfig(NAME, config, DefaultType);
                return config
            };
            _proto._getDimension = function _getDimension() {
                var hasWidth = $$$1(this._element).hasClass(Dimension.WIDTH);
                return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT
            };
            _proto._getParent = function _getParent() {
                var _this3 = this;
                var parent = null;
                if (Util.isElement(this._config.parent)) {
                    parent = this._config.parent;
                    if (typeof this._config.parent.jquery !== 'undefined') {
                        parent = this._config.parent[0]
                    }
                } else {
                    parent = $$$1(this._config.parent)[0]
                }
                var selector = "[data-toggle=\"collapse\"][data-parent=\"" + this._config.parent + "\"]";
                $$$1(parent).find(selector).each(function(i, element) {
                    _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element])
                });
                return parent
            };
            _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {
                if (element) {
                    var isOpen = $$$1(element).hasClass(ClassName.SHOW);
                    if (triggerArray.length > 0) {
                        $$$1(triggerArray).toggleClass(ClassName.COLLAPSED, !isOpen).attr('aria-expanded', isOpen)
                    }
                }
            };
            Collapse._getTargetFromElement = function _getTargetFromElement(element) {
                var selector = Util.getSelectorFromElement(element);
                return selector ? $$$1(selector)[0] : null
            };
            Collapse._jQueryInterface = function _jQueryInterface(config) {
                return this.each(function() {
                    var $this = $$$1(this);
                    var data = $this.data(DATA_KEY);
                    var _config = _extends({}, Default, $this.data(), typeof config === 'object' && config);
                    if (!data && _config.toggle && /show|hide/.test(config)) {
                        _config.toggle = !1
                    }
                    if (!data) {
                        data = new Collapse(this, _config);
                        $this.data(DATA_KEY, data)
                    }
                    if (typeof config === 'string') {
                        if (typeof data[config] === 'undefined') {
                            throw new TypeError("No method named \"" + config + "\"")
                        }
                        data[config]()
                    }
                })
            };
            _createClass(Collapse, null, [{
                key: "VERSION",
                get: function get() {
                    return VERSION
                }
            }, {
                key: "Default",
                get: function get() {
                    return Default
                }
            }]);
            return Collapse
        }();
        $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function(event) {
            if (event.currentTarget.tagName === 'A') {
                event.preventDefault()
            }
            var $trigger = $$$1(this);
            var selector = Util.getSelectorFromElement(this);
            $$$1(selector).each(function() {
                var $target = $$$1(this);
                var data = $target.data(DATA_KEY);
                var config = data ? 'toggle' : $trigger.data();
                Collapse._jQueryInterface.call($target, config)
            })
        });
        $$$1.fn[NAME] = Collapse._jQueryInterface;
        $$$1.fn[NAME].Constructor = Collapse;
        $$$1.fn[NAME].noConflict = function() {
            $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
            return Collapse._jQueryInterface
        };
        return Collapse
    }($);
    var Dropdown = function($$$1) {
        var NAME = 'dropdown';
        var VERSION = '4.0.0';
        var DATA_KEY = 'bs.dropdown';
        var EVENT_KEY = "." + DATA_KEY;
        var DATA_API_KEY = '.data-api';
        var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
        var ESCAPE_KEYCODE = 27;
        var SPACE_KEYCODE = 32;
        var TAB_KEYCODE = 9;
        var ARROW_UP_KEYCODE = 38;
        var ARROW_DOWN_KEYCODE = 40;
        var RIGHT_MOUSE_BUTTON_WHICH = 3;
        var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + "|" + ARROW_DOWN_KEYCODE + "|" + ESCAPE_KEYCODE);
        var Event = {
            HIDE: "hide" + EVENT_KEY,
            HIDDEN: "hidden" + EVENT_KEY,
            SHOW: "show" + EVENT_KEY,
            SHOWN: "shown" + EVENT_KEY,
            CLICK: "click" + EVENT_KEY,
            CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY,
            KEYDOWN_DATA_API: "keydown" + EVENT_KEY + DATA_API_KEY,
            KEYUP_DATA_API: "keyup" + EVENT_KEY + DATA_API_KEY
        };
        var ClassName = {
            DISABLED: 'disabled',
            SHOW: 'show',
            DROPUP: 'dropup',
            DROPRIGHT: 'dropright',
            DROPLEFT: 'dropleft',
            MENURIGHT: 'dropdown-menu-right',
            MENULEFT: 'dropdown-menu-left',
            POSITION_STATIC: 'position-static'
        };
        var Selector = {
            DATA_TOGGLE: '[data-toggle="dropdown"]',
            FORM_CHILD: '.dropdown form',
            MENU: '.dropdown-menu',
            NAVBAR_NAV: '.navbar-nav',
            VISIBLE_ITEMS: '.dropdown-menu .dropdown-item:not(.disabled)'
        };
        var AttachmentMap = {
            TOP: 'top-start',
            TOPEND: 'top-end',
            BOTTOM: 'bottom-start',
            BOTTOMEND: 'bottom-end',
            RIGHT: 'right-start',
            RIGHTEND: 'right-end',
            LEFT: 'left-start',
            LEFTEND: 'left-end'
        };
        var Default = {
            offset: 0,
            flip: !0,
            boundary: 'scrollParent'
        };
        var DefaultType = {
            offset: '(number|string|function)',
            flip: 'boolean',
            boundary: '(string|element)'
        };
        var Dropdown = function() {
            function Dropdown(element, config) {
                this._element = element;
                this._popper = null;
                this._config = this._getConfig(config);
                this._menu = this._getMenuElement();
                this._inNavbar = this._detectNavbar();
                this._addEventListeners()
            }
            var _proto = Dropdown.prototype;
            _proto.toggle = function toggle() {
                if (this._element.disabled || $$$1(this._element).hasClass(ClassName.DISABLED)) {
                    return
                }
                var parent = Dropdown._getParentFromElement(this._element);
                var isActive = $$$1(this._menu).hasClass(ClassName.SHOW);
                Dropdown._clearMenus();
                if (isActive) {
                    return
                }
                var relatedTarget = {
                    relatedTarget: this._element
                };
                var showEvent = $$$1.Event(Event.SHOW, relatedTarget);
                $$$1(parent).trigger(showEvent);
                if (showEvent.isDefaultPrevented()) {
                    return
                }
                if (!this._inNavbar) {
                    if (typeof Popper === 'undefined') {
                        throw new TypeError('Bootstrap dropdown require Popper.js (https://popper.js.org)')
                    }
                    var element = this._element;
                    if ($$$1(parent).hasClass(ClassName.DROPUP)) {
                        if ($$$1(this._menu).hasClass(ClassName.MENULEFT) || $$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
                            element = parent
                        }
                    }
                    if (this._config.boundary !== 'scrollParent') {
                        $$$1(parent).addClass(ClassName.POSITION_STATIC)
                    }
                    this._popper = new Popper(element, this._menu, this._getPopperConfig())
                }
                if ('ontouchstart' in document.documentElement && $$$1(parent).closest(Selector.NAVBAR_NAV).length === 0) {
                    $$$1('body').children().on('mouseover', null, $$$1.noop)
                }
                this._element.focus();
                this._element.setAttribute('aria-expanded', !0);
                $$$1(this._menu).toggleClass(ClassName.SHOW);
                $$$1(parent).toggleClass(ClassName.SHOW).trigger($$$1.Event(Event.SHOWN, relatedTarget))
            };
            _proto.dispose = function dispose() {
                $$$1.removeData(this._element, DATA_KEY);
                $$$1(this._element).off(EVENT_KEY);
                this._element = null;
                this._menu = null;
                if (this._popper !== null) {
                    this._popper.destroy();
                    this._popper = null
                }
            };
            _proto.update = function update() {
                this._inNavbar = this._detectNavbar();
                if (this._popper !== null) {
                    this._popper.scheduleUpdate()
                }
            };
            _proto._addEventListeners = function _addEventListeners() {
                var _this = this;
                $$$1(this._element).on(Event.CLICK, function(event) {
                    event.preventDefault();
                    event.stopPropagation();
                    _this.toggle()
                })
            };
            _proto._getConfig = function _getConfig(config) {
                config = _extends({}, this.constructor.Default, $$$1(this._element).data(), config);
                Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
                return config
            };
            _proto._getMenuElement = function _getMenuElement() {
                if (!this._menu) {
                    var parent = Dropdown._getParentFromElement(this._element);
                    this._menu = $$$1(parent).find(Selector.MENU)[0]
                }
                return this._menu
            };
            _proto._getPlacement = function _getPlacement() {
                var $parentDropdown = $$$1(this._element).parent();
                var placement = AttachmentMap.BOTTOM;
                if ($parentDropdown.hasClass(ClassName.DROPUP)) {
                    placement = AttachmentMap.TOP;
                    if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
                        placement = AttachmentMap.TOPEND
                    }
                } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {
                    placement = AttachmentMap.RIGHT
                } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {
                    placement = AttachmentMap.LEFT
                } else if ($$$1(this._menu).hasClass(ClassName.MENURIGHT)) {
                    placement = AttachmentMap.BOTTOMEND
                }
                return placement
            };
            _proto._detectNavbar = function _detectNavbar() {
                return $$$1(this._element).closest('.navbar').length > 0
            };
            _proto._getPopperConfig = function _getPopperConfig() {
                var _this2 = this;
                var offsetConf = {};
                if (typeof this._config.offset === 'function') {
                    offsetConf.fn = function(data) {
                        data.offsets = _extends({}, data.offsets, _this2._config.offset(data.offsets) || {});
                        return data
                    }
                } else {
                    offsetConf.offset = this._config.offset
                }
                var popperConfig = {
                    placement: this._getPlacement(),
                    modifiers: {
                        offset: offsetConf,
                        flip: {
                            enabled: this._config.flip
                        },
                        preventOverflow: {
                            boundariesElement: this._config.boundary
                        }
                    }
                };
                return popperConfig
            };
            Dropdown._jQueryInterface = function _jQueryInterface(config) {
                return this.each(function() {
                    var data = $$$1(this).data(DATA_KEY);
                    var _config = typeof config === 'object' ? config : null;
                    if (!data) {
                        data = new Dropdown(this, _config);
                        $$$1(this).data(DATA_KEY, data)
                    }
                    if (typeof config === 'string') {
                        if (typeof data[config] === 'undefined') {
                            throw new TypeError("No method named \"" + config + "\"")
                        }
                        data[config]()
                    }
                })
            };
            Dropdown._clearMenus = function _clearMenus(event) {
                if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {
                    return
                }
                var toggles = $$$1.makeArray($$$1(Selector.DATA_TOGGLE));
                for (var i = 0; i < toggles.length; i++) {
                    var parent = Dropdown._getParentFromElement(toggles[i]);
                    var context = $$$1(toggles[i]).data(DATA_KEY);
                    var relatedTarget = {
                        relatedTarget: toggles[i]
                    };
                    if (!context) {
                        continue
                    }
                    var dropdownMenu = context._menu;
                    if (!$$$1(parent).hasClass(ClassName.SHOW)) {
                        continue
                    }
                    if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $$$1.contains(parent, event.target)) {
                        continue
                    }
                    var hideEvent = $$$1.Event(Event.HIDE, relatedTarget);
                    $$$1(parent).trigger(hideEvent);
                    if (hideEvent.isDefaultPrevented()) {
                        continue
                    }
                    if ('ontouchstart' in document.documentElement) {
                        $$$1('body').children().off('mouseover', null, $$$1.noop)
                    }
                    toggles[i].setAttribute('aria-expanded', 'false');
                    $$$1(dropdownMenu).removeClass(ClassName.SHOW);
                    $$$1(parent).removeClass(ClassName.SHOW).trigger($$$1.Event(Event.HIDDEN, relatedTarget))
                }
            };
            Dropdown._getParentFromElement = function _getParentFromElement(element) {
                var parent;
                var selector = Util.getSelectorFromElement(element);
                if (selector) {
                    parent = $$$1(selector)[0]
                }
                return parent || element.parentNode
            };
            Dropdown._dataApiKeydownHandler = function _dataApiKeydownHandler(event) {
                if (/input|textarea/i.test(event.target.tagName) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $$$1(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {
                    return
                }
                event.preventDefault();
                event.stopPropagation();
                if (this.disabled || $$$1(this).hasClass(ClassName.DISABLED)) {
                    return
                }
                var parent = Dropdown._getParentFromElement(this);
                var isActive = $$$1(parent).hasClass(ClassName.SHOW);
                if (!isActive && (event.which !== ESCAPE_KEYCODE || event.which !== SPACE_KEYCODE) || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {
                    if (event.which === ESCAPE_KEYCODE) {
                        var toggle = $$$1(parent).find(Selector.DATA_TOGGLE)[0];
                        $$$1(toggle).trigger('focus')
                    }
                    $$$1(this).trigger('click');
                    return
                }
                var items = $$$1(parent).find(Selector.VISIBLE_ITEMS).get();
                if (items.length === 0) {
                    return
                }
                var index = items.indexOf(event.target);
                if (event.which === ARROW_UP_KEYCODE && index > 0) {
                    index--
                }
                if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {
                    index++
                }
                if (index < 0) {
                    index = 0
                }
                items[index].focus()
            };
            _createClass(Dropdown, null, [{
                key: "VERSION",
                get: function get() {
                    return VERSION
                }
            }, {
                key: "Default",
                get: function get() {
                    return Default
                }
            }, {
                key: "DefaultType",
                get: function get() {
                    return DefaultType
                }
            }]);
            return Dropdown
        }();
        $$$1(document).on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler).on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler).on(Event.CLICK_DATA_API + " " + Event.KEYUP_DATA_API, Dropdown._clearMenus).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function(event) {
            event.preventDefault();
            event.stopPropagation();
            Dropdown._jQueryInterface.call($$$1(this), 'toggle')
        }).on(Event.CLICK_DATA_API, Selector.FORM_CHILD, function(e) {
            e.stopPropagation()
        });
        $$$1.fn[NAME] = Dropdown._jQueryInterface;
        $$$1.fn[NAME].Constructor = Dropdown;
        $$$1.fn[NAME].noConflict = function() {
            $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
            return Dropdown._jQueryInterface
        };
        return Dropdown
    }($, Popper);
    var Modal = function($$$1) {
        var NAME = 'modal';
        var VERSION = '4.0.0';
        var DATA_KEY = 'bs.modal';
        var EVENT_KEY = "." + DATA_KEY;
        var DATA_API_KEY = '.data-api';
        var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
        var TRANSITION_DURATION = 300;
        var BACKDROP_TRANSITION_DURATION = 150;
        var ESCAPE_KEYCODE = 27;
        var Default = {
            backdrop: !0,
            keyboard: !0,
            focus: !0,
            show: !0
        };
        var DefaultType = {
            backdrop: '(boolean|string)',
            keyboard: 'boolean',
            focus: 'boolean',
            show: 'boolean'
        };
        var Event = {
            HIDE: "hide" + EVENT_KEY,
            HIDDEN: "hidden" + EVENT_KEY,
            SHOW: "show" + EVENT_KEY,
            SHOWN: "shown" + EVENT_KEY,
            FOCUSIN: "focusin" + EVENT_KEY,
            RESIZE: "resize" + EVENT_KEY,
            CLICK_DISMISS: "click.dismiss" + EVENT_KEY,
            KEYDOWN_DISMISS: "keydown.dismiss" + EVENT_KEY,
            MOUSEUP_DISMISS: "mouseup.dismiss" + EVENT_KEY,
            MOUSEDOWN_DISMISS: "mousedown.dismiss" + EVENT_KEY,
            CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
        };
        var ClassName = {
            SCROLLBAR_MEASURER: 'modal-scrollbar-measure',
            BACKDROP: 'modal-backdrop',
            OPEN: 'modal-open',
            FADE: 'fade',
            SHOW: 'show'
        };
        var Selector = {
            DIALOG: '.modal-dialog',
            DATA_TOGGLE: '[data-toggle="modal"]',
            DATA_DISMISS: '[data-dismiss="modal"]',
            FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',
            STICKY_CONTENT: '.sticky-top',
            NAVBAR_TOGGLER: '.navbar-toggler'
        };
        var Modal = function() {
            function Modal(element, config) {
                this._config = this._getConfig(config);
                this._element = element;
                this._dialog = $$$1(element).find(Selector.DIALOG)[0];
                this._backdrop = null;
                this._isShown = !1;
                this._isBodyOverflowing = !1;
                this._ignoreBackdropClick = !1;
                this._originalBodyPadding = 0;
                this._scrollbarWidth = 0
            }
            var _proto = Modal.prototype;
            _proto.toggle = function toggle(relatedTarget) {
                return this._isShown ? this.hide() : this.show(relatedTarget)
            };
            _proto.show = function show(relatedTarget) {
                var _this = this;
                if (this._isTransitioning || this._isShown) {
                    return
                }
                if (Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE)) {
                    this._isTransitioning = !0
                }
                var showEvent = $$$1.Event(Event.SHOW, {
                    relatedTarget: relatedTarget
                });
                $$$1(this._element).trigger(showEvent);
                if (this._isShown || showEvent.isDefaultPrevented()) {
                    return
                }
                this._isShown = !0;
                this._checkScrollbar();
                this._setScrollbar();
                this._adjustDialog();
                $$$1(document.body).addClass(ClassName.OPEN);
                this._setEscapeEvent();
                this._setResizeEvent();
                $$$1(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, function(event) {
                    return _this.hide(event)
                });
                $$$1(this._dialog).on(Event.MOUSEDOWN_DISMISS, function() {
                    $$$1(_this._element).one(Event.MOUSEUP_DISMISS, function(event) {
                        if ($$$1(event.target).is(_this._element)) {
                            _this._ignoreBackdropClick = !0
                        }
                    })
                });
                this._showBackdrop(function() {
                    return _this._showElement(relatedTarget)
                })
            };
            _proto.hide = function hide(event) {
                var _this2 = this;
                if (event) {
                    event.preventDefault()
                }
                if (this._isTransitioning || !this._isShown) {
                    return
                }
                var hideEvent = $$$1.Event(Event.HIDE);
                $$$1(this._element).trigger(hideEvent);
                if (!this._isShown || hideEvent.isDefaultPrevented()) {
                    return
                }
                this._isShown = !1;
                var transition = Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE);
                if (transition) {
                    this._isTransitioning = !0
                }
                this._setEscapeEvent();
                this._setResizeEvent();
                $$$1(document).off(Event.FOCUSIN);
                $$$1(this._element).removeClass(ClassName.SHOW);
                $$$1(this._element).off(Event.CLICK_DISMISS);
                $$$1(this._dialog).off(Event.MOUSEDOWN_DISMISS);
                if (transition) {
                    $$$1(this._element).one(Util.TRANSITION_END, function(event) {
                        return _this2._hideModal(event)
                    }).emulateTransitionEnd(TRANSITION_DURATION)
                } else {
                    this._hideModal()
                }
            };
            _proto.dispose = function dispose() {
                $$$1.removeData(this._element, DATA_KEY);
                $$$1(window, document, this._element, this._backdrop).off(EVENT_KEY);
                this._config = null;
                this._element = null;
                this._dialog = null;
                this._backdrop = null;
                this._isShown = null;
                this._isBodyOverflowing = null;
                this._ignoreBackdropClick = null;
                this._scrollbarWidth = null
            };
            _proto.handleUpdate = function handleUpdate() {
                this._adjustDialog()
            };
            _proto._getConfig = function _getConfig(config) {
                config = _extends({}, Default, config);
                Util.typeCheckConfig(NAME, config, DefaultType);
                return config
            };
            _proto._showElement = function _showElement(relatedTarget) {
                var _this3 = this;
                var transition = Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE);
                if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {
                    document.body.appendChild(this._element)
                }
                this._element.style.display = 'block';
                this._element.removeAttribute('aria-hidden');
                this._element.scrollTop = 0;
                if (transition) {
                    Util.reflow(this._element)
                }
                $$$1(this._element).addClass(ClassName.SHOW);
                if (this._config.focus) {
                    this._enforceFocus()
                }
                var shownEvent = $$$1.Event(Event.SHOWN, {
                    relatedTarget: relatedTarget
                });
                var transitionComplete = function transitionComplete() {
                    if (_this3._config.focus) {
                        _this3._element.focus()
                    }
                    _this3._isTransitioning = !1;
                    $$$1(_this3._element).trigger(shownEvent)
                };
                if (transition) {
                    $$$1(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(TRANSITION_DURATION)
                } else {
                    transitionComplete()
                }
            };
            _proto._enforceFocus = function _enforceFocus() {
                var _this4 = this;
                $$$1(document).off(Event.FOCUSIN).on(Event.FOCUSIN, function(event) {
                    if (document !== event.target && _this4._element !== event.target && $$$1(_this4._element).has(event.target).length === 0) {
                        _this4._element.focus()
                    }
                })
            };
            _proto._setEscapeEvent = function _setEscapeEvent() {
                var _this5 = this;
                if (this._isShown && this._config.keyboard) {
                    $$$1(this._element).on(Event.KEYDOWN_DISMISS, function(event) {
                        if (event.which === ESCAPE_KEYCODE) {
                            event.preventDefault();
                            _this5.hide()
                        }
                    })
                } else if (!this._isShown) {
                    $$$1(this._element).off(Event.KEYDOWN_DISMISS)
                }
            };
            _proto._setResizeEvent = function _setResizeEvent() {
                var _this6 = this;
                if (this._isShown) {
                    $$$1(window).on(Event.RESIZE, function(event) {
                        return _this6.handleUpdate(event)
                    })
                } else {
                    $$$1(window).off(Event.RESIZE)
                }
            };
            _proto._hideModal = function _hideModal() {
                var _this7 = this;
                this._element.style.display = 'none';
                this._element.setAttribute('aria-hidden', !0);
                this._isTransitioning = !1;
                this._showBackdrop(function() {
                    $$$1(document.body).removeClass(ClassName.OPEN);
                    _this7._resetAdjustments();
                    _this7._resetScrollbar();
                    $$$1(_this7._element).trigger(Event.HIDDEN)
                })
            };
            _proto._removeBackdrop = function _removeBackdrop() {
                if (this._backdrop) {
                    $$$1(this._backdrop).remove();
                    this._backdrop = null
                }
            };
            _proto._showBackdrop = function _showBackdrop(callback) {
                var _this8 = this;
                var animate = $$$1(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';
                if (this._isShown && this._config.backdrop) {
                    var doAnimate = Util.supportsTransitionEnd() && animate;
                    this._backdrop = document.createElement('div');
                    this._backdrop.className = ClassName.BACKDROP;
                    if (animate) {
                        $$$1(this._backdrop).addClass(animate)
                    }
                    $$$1(this._backdrop).appendTo(document.body);
                    $$$1(this._element).on(Event.CLICK_DISMISS, function(event) {
                        if (_this8._ignoreBackdropClick) {
                            _this8._ignoreBackdropClick = !1;
                            return
                        }
                        if (event.target !== event.currentTarget) {
                            return
                        }
                        if (_this8._config.backdrop === 'static') {
                            _this8._element.focus()
                        } else {
                            _this8.hide()
                        }
                    });
                    if (doAnimate) {
                        Util.reflow(this._backdrop)
                    }
                    $$$1(this._backdrop).addClass(ClassName.SHOW);
                    if (!callback) {
                        return
                    }
                    if (!doAnimate) {
                        callback();
                        return
                    }
                    $$$1(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)
                } else if (!this._isShown && this._backdrop) {
                    $$$1(this._backdrop).removeClass(ClassName.SHOW);
                    var callbackRemove = function callbackRemove() {
                        _this8._removeBackdrop();
                        if (callback) {
                            callback()
                        }
                    };
                    if (Util.supportsTransitionEnd() && $$$1(this._element).hasClass(ClassName.FADE)) {
                        $$$1(this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(BACKDROP_TRANSITION_DURATION)
                    } else {
                        callbackRemove()
                    }
                } else if (callback) {
                    callback()
                }
            };
            _proto._adjustDialog = function _adjustDialog() {
                var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;
                if (!this._isBodyOverflowing && isModalOverflowing) {
                    this._element.style.paddingLeft = this._scrollbarWidth + "px"
                }
                if (this._isBodyOverflowing && !isModalOverflowing) {
                    this._element.style.paddingRight = this._scrollbarWidth + "px"
                }
            };
            _proto._resetAdjustments = function _resetAdjustments() {
                this._element.style.paddingLeft = '';
                this._element.style.paddingRight = ''
            };
            _proto._checkScrollbar = function _checkScrollbar() {
                var rect = document.body.getBoundingClientRect();
                this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;
                this._scrollbarWidth = this._getScrollbarWidth()
            };
            _proto._setScrollbar = function _setScrollbar() {
                var _this9 = this;
                if (this._isBodyOverflowing) {
                    $$$1(Selector.FIXED_CONTENT).each(function(index, element) {
                        var actualPadding = $$$1(element)[0].style.paddingRight;
                        var calculatedPadding = $$$1(element).css('padding-right');
                        $$$1(element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this9._scrollbarWidth + "px")
                    });
                    $$$1(Selector.STICKY_CONTENT).each(function(index, element) {
                        var actualMargin = $$$1(element)[0].style.marginRight;
                        var calculatedMargin = $$$1(element).css('margin-right');
                        $$$1(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this9._scrollbarWidth + "px")
                    });
                    $$$1(Selector.NAVBAR_TOGGLER).each(function(index, element) {
                        var actualMargin = $$$1(element)[0].style.marginRight;
                        var calculatedMargin = $$$1(element).css('margin-right');
                        $$$1(element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) + _this9._scrollbarWidth + "px")
                    });
                    var actualPadding = document.body.style.paddingRight;
                    var calculatedPadding = $$$1('body').css('padding-right');
                    $$$1('body').data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + "px")
                }
            };
            _proto._resetScrollbar = function _resetScrollbar() {
                $$$1(Selector.FIXED_CONTENT).each(function(index, element) {
                    var padding = $$$1(element).data('padding-right');
                    if (typeof padding !== 'undefined') {
                        $$$1(element).css('padding-right', padding).removeData('padding-right')
                    }
                });
                $$$1(Selector.STICKY_CONTENT + ", " + Selector.NAVBAR_TOGGLER).each(function(index, element) {
                    var margin = $$$1(element).data('margin-right');
                    if (typeof margin !== 'undefined') {
                        $$$1(element).css('margin-right', margin).removeData('margin-right')
                    }
                });
                var padding = $$$1('body').data('padding-right');
                if (typeof padding !== 'undefined') {
                    $$$1('body').css('padding-right', padding).removeData('padding-right')
                }
            };
            _proto._getScrollbarWidth = function _getScrollbarWidth() {
                var scrollDiv = document.createElement('div');
                scrollDiv.className = ClassName.SCROLLBAR_MEASURER;
                document.body.appendChild(scrollDiv);
                var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;
                document.body.removeChild(scrollDiv);
                return scrollbarWidth
            };
            Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {
                return this.each(function() {
                    var data = $$$1(this).data(DATA_KEY);
                    var _config = _extends({}, Modal.Default, $$$1(this).data(), typeof config === 'object' && config);
                    if (!data) {
                        data = new Modal(this, _config);
                        $$$1(this).data(DATA_KEY, data)
                    }
                    if (typeof config === 'string') {
                        if (typeof data[config] === 'undefined') {
                            throw new TypeError("No method named \"" + config + "\"")
                        }
                        data[config](relatedTarget)
                    } else if (_config.show) {
                        data.show(relatedTarget)
                    }
                })
            };
            _createClass(Modal, null, [{
                key: "VERSION",
                get: function get() {
                    return VERSION
                }
            }, {
                key: "Default",
                get: function get() {
                    return Default
                }
            }]);
            return Modal
        }();
        $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function(event) {
            var _this10 = this;
            var target;
            var selector = Util.getSelectorFromElement(this);
            if (selector) {
                target = $$$1(selector)[0]
            }
            var config = $$$1(target).data(DATA_KEY) ? 'toggle' : _extends({}, $$$1(target).data(), $$$1(this).data());
            if (this.tagName === 'A' || this.tagName === 'AREA') {
                event.preventDefault()
            }
            var $target = $$$1(target).one(Event.SHOW, function(showEvent) {
                if (showEvent.isDefaultPrevented()) {
                    return
                }
                $target.one(Event.HIDDEN, function() {
                    if ($$$1(_this10).is(':visible')) {
                        _this10.focus()
                    }
                })
            });
            Modal._jQueryInterface.call($$$1(target), config, this)
        });
        $$$1.fn[NAME] = Modal._jQueryInterface;
        $$$1.fn[NAME].Constructor = Modal;
        $$$1.fn[NAME].noConflict = function() {
            $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
            return Modal._jQueryInterface
        };
        return Modal
    }($);
    var Tooltip = function($$$1) {
        var NAME = 'tooltip';
        var VERSION = '4.0.0';
        var DATA_KEY = 'bs.tooltip';
        var EVENT_KEY = "." + DATA_KEY;
        var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
        var TRANSITION_DURATION = 150;
        var CLASS_PREFIX = 'bs-tooltip';
        var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
        var DefaultType = {
            animation: 'boolean',
            template: 'string',
            title: '(string|element|function)',
            trigger: 'string',
            delay: '(number|object)',
            html: 'boolean',
            selector: '(string|boolean)',
            placement: '(string|function)',
            offset: '(number|string)',
            container: '(string|element|boolean)',
            fallbackPlacement: '(string|array)',
            boundary: '(string|element)'
        };
        var AttachmentMap = {
            AUTO: 'auto',
            TOP: 'top',
            RIGHT: 'right',
            BOTTOM: 'bottom',
            LEFT: 'left'
        };
        var Default = {
            animation: !0,
            template: '<div class="tooltip" role="tooltip">' + '<div class="arrow"></div>' + '<div class="tooltip-inner"></div></div>',
            trigger: 'hover focus',
            title: '',
            delay: 0,
            html: !1,
            selector: !1,
            placement: 'top',
            offset: 0,
            container: !1,
            fallbackPlacement: 'flip',
            boundary: 'scrollParent'
        };
        var HoverState = {
            SHOW: 'show',
            OUT: 'out'
        };
        var Event = {
            HIDE: "hide" + EVENT_KEY,
            HIDDEN: "hidden" + EVENT_KEY,
            SHOW: "show" + EVENT_KEY,
            SHOWN: "shown" + EVENT_KEY,
            INSERTED: "inserted" + EVENT_KEY,
            CLICK: "click" + EVENT_KEY,
            FOCUSIN: "focusin" + EVENT_KEY,
            FOCUSOUT: "focusout" + EVENT_KEY,
            MOUSEENTER: "mouseenter" + EVENT_KEY,
            MOUSELEAVE: "mouseleave" + EVENT_KEY
        };
        var ClassName = {
            FADE: 'fade',
            SHOW: 'show'
        };
        var Selector = {
            TOOLTIP: '.tooltip',
            TOOLTIP_INNER: '.tooltip-inner',
            ARROW: '.arrow'
        };
        var Trigger = {
            HOVER: 'hover',
            FOCUS: 'focus',
            CLICK: 'click',
            MANUAL: 'manual'
        };
        var Tooltip = function() {
            function Tooltip(element, config) {
                if (typeof Popper === 'undefined') {
                    throw new TypeError('Bootstrap tooltips require Popper.js (https://popper.js.org)')
                }
                this._isEnabled = !0;
                this._timeout = 0;
                this._hoverState = '';
                this._activeTrigger = {};
                this._popper = null;
                this.element = element;
                this.config = this._getConfig(config);
                this.tip = null;
                this._setListeners()
            }
            var _proto = Tooltip.prototype;
            _proto.enable = function enable() {
                this._isEnabled = !0
            };
            _proto.disable = function disable() {
                this._isEnabled = !1
            };
            _proto.toggleEnabled = function toggleEnabled() {
                this._isEnabled = !this._isEnabled
            };
            _proto.toggle = function toggle(event) {
                if (!this._isEnabled) {
                    return
                }
                if (event) {
                    var dataKey = this.constructor.DATA_KEY;
                    var context = $$$1(event.currentTarget).data(dataKey);
                    if (!context) {
                        context = new this.constructor(event.currentTarget, this._getDelegateConfig());
                        $$$1(event.currentTarget).data(dataKey, context)
                    }
                    context._activeTrigger.click = !context._activeTrigger.click;
                    if (context._isWithActiveTrigger()) {
                        context._enter(null, context)
                    } else {
                        context._leave(null, context)
                    }
                } else {
                    if ($$$1(this.getTipElement()).hasClass(ClassName.SHOW)) {
                        this._leave(null, this);
                        return
                    }
                    this._enter(null, this)
                }
            };
            _proto.dispose = function dispose() {
                clearTimeout(this._timeout);
                $$$1.removeData(this.element, this.constructor.DATA_KEY);
                $$$1(this.element).off(this.constructor.EVENT_KEY);
                $$$1(this.element).closest('.modal').off('hide.bs.modal');
                if (this.tip) {
                    $$$1(this.tip).remove()
                }
                this._isEnabled = null;
                this._timeout = null;
                this._hoverState = null;
                this._activeTrigger = null;
                if (this._popper !== null) {
                    this._popper.destroy()
                }
                this._popper = null;
                this.element = null;
                this.config = null;
                this.tip = null
            };
            _proto.show = function show() {
                var _this = this;
                if ($$$1(this.element).css('display') === 'none') {
                    throw new Error('Please use show on visible elements')
                }
                var showEvent = $$$1.Event(this.constructor.Event.SHOW);
                if (this.isWithContent() && this._isEnabled) {
                    $$$1(this.element).trigger(showEvent);
                    var isInTheDom = $$$1.contains(this.element.ownerDocument.documentElement, this.element);
                    if (showEvent.isDefaultPrevented() || !isInTheDom) {
                        return
                    }
                    var tip = this.getTipElement();
                    var tipId = Util.getUID(this.constructor.NAME);
                    tip.setAttribute('id', tipId);
                    this.element.setAttribute('aria-describedby', tipId);
                    this.setContent();
                    if (this.config.animation) {
                        $$$1(tip).addClass(ClassName.FADE)
                    }
                    var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;
                    var attachment = this._getAttachment(placement);
                    this.addAttachmentClass(attachment);
                    var container = this.config.container === !1 ? document.body : $$$1(this.config.container);
                    $$$1(tip).data(this.constructor.DATA_KEY, this);
                    if (!$$$1.contains(this.element.ownerDocument.documentElement, this.tip)) {
                        $$$1(tip).appendTo(container)
                    }
                    $$$1(this.element).trigger(this.constructor.Event.INSERTED);
                    this._popper = new Popper(this.element, tip, {
                        placement: attachment,
                        modifiers: {
                            offset: {
                                offset: this.config.offset
                            },
                            flip: {
                                behavior: this.config.fallbackPlacement
                            },
                            arrow: {
                                element: Selector.ARROW
                            },
                            preventOverflow: {
                                boundariesElement: this.config.boundary
                            }
                        },
                        onCreate: function onCreate(data) {
                            if (data.originalPlacement !== data.placement) {
                                _this._handlePopperPlacementChange(data)
                            }
                        },
                        onUpdate: function onUpdate(data) {
                            _this._handlePopperPlacementChange(data)
                        }
                    });
                    $$$1(tip).addClass(ClassName.SHOW);
                    if ('ontouchstart' in document.documentElement) {
                        $$$1('body').children().on('mouseover', null, $$$1.noop)
                    }
                    var complete = function complete() {
                        if (_this.config.animation) {
                            _this._fixTransition()
                        }
                        var prevHoverState = _this._hoverState;
                        _this._hoverState = null;
                        $$$1(_this.element).trigger(_this.constructor.Event.SHOWN);
                        if (prevHoverState === HoverState.OUT) {
                            _this._leave(null, _this)
                        }
                    };
                    if (Util.supportsTransitionEnd() && $$$1(this.tip).hasClass(ClassName.FADE)) {
                        $$$1(this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(Tooltip._TRANSITION_DURATION)
                    } else {
                        complete()
                    }
                }
            };
            _proto.hide = function hide(callback) {
                var _this2 = this;
                var tip = this.getTipElement();
                var hideEvent = $$$1.Event(this.constructor.Event.HIDE);
                var complete = function complete() {
                    if (_this2._hoverState !== HoverState.SHOW && tip.parentNode) {
                        tip.parentNode.removeChild(tip)
                    }
                    _this2._cleanTipClass();
                    _this2.element.removeAttribute('aria-describedby');
                    $$$1(_this2.element).trigger(_this2.constructor.Event.HIDDEN);
                    if (_this2._popper !== null) {
                        _this2._popper.destroy()
                    }
                    if (callback) {
                        callback()
                    }
                };
                $$$1(this.element).trigger(hideEvent);
                if (hideEvent.isDefaultPrevented()) {
                    return
                }
                $$$1(tip).removeClass(ClassName.SHOW);
                if ('ontouchstart' in document.documentElement) {
                    $$$1('body').children().off('mouseover', null, $$$1.noop)
                }
                this._activeTrigger[Trigger.CLICK] = !1;
                this._activeTrigger[Trigger.FOCUS] = !1;
                this._activeTrigger[Trigger.HOVER] = !1;
                if (Util.supportsTransitionEnd() && $$$1(this.tip).hasClass(ClassName.FADE)) {
                    $$$1(tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION)
                } else {
                    complete()
                }
                this._hoverState = ''
            };
            _proto.update = function update() {
                if (this._popper !== null) {
                    this._popper.scheduleUpdate()
                }
            };
            _proto.isWithContent = function isWithContent() {
                return Boolean(this.getTitle())
            };
            _proto.addAttachmentClass = function addAttachmentClass(attachment) {
                $$$1(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment)
            };
            _proto.getTipElement = function getTipElement() {
                this.tip = this.tip || $$$1(this.config.template)[0];
                return this.tip
            };
            _proto.setContent = function setContent() {
                var $tip = $$$1(this.getTipElement());
                this.setElementContent($tip.find(Selector.TOOLTIP_INNER), this.getTitle());
                $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW)
            };
            _proto.setElementContent = function setElementContent($element, content) {
                var html = this.config.html;
                if (typeof content === 'object' && (content.nodeType || content.jquery)) {
                    if (html) {
                        if (!$$$1(content).parent().is($element)) {
                            $element.empty().append(content)
                        }
                    } else {
                        $element.text($$$1(content).text())
                    }
                } else {
                    $element[html ? 'html' : 'text'](content)
                }
            };
            _proto.getTitle = function getTitle() {
                var title = this.element.getAttribute('data-original-title');
                if (!title) {
                    title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title
                }
                return title
            };
            _proto._getAttachment = function _getAttachment(placement) {
                return AttachmentMap[placement.toUpperCase()]
            };
            _proto._setListeners = function _setListeners() {
                var _this3 = this;
                var triggers = this.config.trigger.split(' ');
                triggers.forEach(function(trigger) {
                    if (trigger === 'click') {
                        $$$1(_this3.element).on(_this3.constructor.Event.CLICK, _this3.config.selector, function(event) {
                            return _this3.toggle(event)
                        })
                    } else if (trigger !== Trigger.MANUAL) {
                        var eventIn = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSEENTER : _this3.constructor.Event.FOCUSIN;
                        var eventOut = trigger === Trigger.HOVER ? _this3.constructor.Event.MOUSELEAVE : _this3.constructor.Event.FOCUSOUT;
                        $$$1(_this3.element).on(eventIn, _this3.config.selector, function(event) {
                            return _this3._enter(event)
                        }).on(eventOut, _this3.config.selector, function(event) {
                            return _this3._leave(event)
                        })
                    }
                    $$$1(_this3.element).closest('.modal').on('hide.bs.modal', function() {
                        return _this3.hide()
                    })
                });
                if (this.config.selector) {
                    this.config = _extends({}, this.config, {
                        trigger: 'manual',
                        selector: ''
                    })
                } else {
                    this._fixTitle()
                }
            };
            _proto._fixTitle = function _fixTitle() {
                var titleType = typeof this.element.getAttribute('data-original-title');
                if (this.element.getAttribute('title') || titleType !== 'string') {
                    this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');
                    this.element.setAttribute('title', '')
                }
            };
            _proto._enter = function _enter(event, context) {
                var dataKey = this.constructor.DATA_KEY;
                context = context || $$$1(event.currentTarget).data(dataKey);
                if (!context) {
                    context = new this.constructor(event.currentTarget, this._getDelegateConfig());
                    $$$1(event.currentTarget).data(dataKey, context)
                }
                if (event) {
                    context._activeTrigger[event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER] = !0
                }
                if ($$$1(context.getTipElement()).hasClass(ClassName.SHOW) || context._hoverState === HoverState.SHOW) {
                    context._hoverState = HoverState.SHOW;
                    return
                }
                clearTimeout(context._timeout);
                context._hoverState = HoverState.SHOW;
                if (!context.config.delay || !context.config.delay.show) {
                    context.show();
                    return
                }
                context._timeout = setTimeout(function() {
                    if (context._hoverState === HoverState.SHOW) {
                        context.show()
                    }
                }, context.config.delay.show)
            };
            _proto._leave = function _leave(event, context) {
                var dataKey = this.constructor.DATA_KEY;
                context = context || $$$1(event.currentTarget).data(dataKey);
                if (!context) {
                    context = new this.constructor(event.currentTarget, this._getDelegateConfig());
                    $$$1(event.currentTarget).data(dataKey, context)
                }
                if (event) {
                    context._activeTrigger[event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER] = !1
                }
                if (context._isWithActiveTrigger()) {
                    return
                }
                clearTimeout(context._timeout);
                context._hoverState = HoverState.OUT;
                if (!context.config.delay || !context.config.delay.hide) {
                    context.hide();
                    return
                }
                context._timeout = setTimeout(function() {
                    if (context._hoverState === HoverState.OUT) {
                        context.hide()
                    }
                }, context.config.delay.hide)
            };
            _proto._isWithActiveTrigger = function _isWithActiveTrigger() {
                for (var trigger in this._activeTrigger) {
                    if (this._activeTrigger[trigger]) {
                        return !0
                    }
                }
                return !1
            };
            _proto._getConfig = function _getConfig(config) {
                config = _extends({}, this.constructor.Default, $$$1(this.element).data(), config);
                if (typeof config.delay === 'number') {
                    config.delay = {
                        show: config.delay,
                        hide: config.delay
                    }
                }
                if (typeof config.title === 'number') {
                    config.title = config.title.toString()
                }
                if (typeof config.content === 'number') {
                    config.content = config.content.toString()
                }
                Util.typeCheckConfig(NAME, config, this.constructor.DefaultType);
                return config
            };
            _proto._getDelegateConfig = function _getDelegateConfig() {
                var config = {};
                if (this.config) {
                    for (var key in this.config) {
                        if (this.constructor.Default[key] !== this.config[key]) {
                            config[key] = this.config[key]
                        }
                    }
                }
                return config
            };
            _proto._cleanTipClass = function _cleanTipClass() {
                var $tip = $$$1(this.getTipElement());
                var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
                if (tabClass !== null && tabClass.length > 0) {
                    $tip.removeClass(tabClass.join(''))
                }
            };
            _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(data) {
                this._cleanTipClass();
                this.addAttachmentClass(this._getAttachment(data.placement))
            };
            _proto._fixTransition = function _fixTransition() {
                var tip = this.getTipElement();
                var initConfigAnimation = this.config.animation;
                if (tip.getAttribute('x-placement') !== null) {
                    return
                }
                $$$1(tip).removeClass(ClassName.FADE);
                this.config.animation = !1;
                this.hide();
                this.show();
                this.config.animation = initConfigAnimation
            };
            Tooltip._jQueryInterface = function _jQueryInterface(config) {
                return this.each(function() {
                    var data = $$$1(this).data(DATA_KEY);
                    var _config = typeof config === 'object' && config;
                    if (!data && /dispose|hide/.test(config)) {
                        return
                    }
                    if (!data) {
                        data = new Tooltip(this, _config);
                        $$$1(this).data(DATA_KEY, data)
                    }
                    if (typeof config === 'string') {
                        if (typeof data[config] === 'undefined') {
                            throw new TypeError("No method named \"" + config + "\"")
                        }
                        data[config]()
                    }
                })
            };
            _createClass(Tooltip, null, [{
                key: "VERSION",
                get: function get() {
                    return VERSION
                }
            }, {
                key: "Default",
                get: function get() {
                    return Default
                }
            }, {
                key: "NAME",
                get: function get() {
                    return NAME
                }
            }, {
                key: "DATA_KEY",
                get: function get() {
                    return DATA_KEY
                }
            }, {
                key: "Event",
                get: function get() {
                    return Event
                }
            }, {
                key: "EVENT_KEY",
                get: function get() {
                    return EVENT_KEY
                }
            }, {
                key: "DefaultType",
                get: function get() {
                    return DefaultType
                }
            }]);
            return Tooltip
        }();
        $$$1.fn[NAME] = Tooltip._jQueryInterface;
        $$$1.fn[NAME].Constructor = Tooltip;
        $$$1.fn[NAME].noConflict = function() {
            $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
            return Tooltip._jQueryInterface
        };
        return Tooltip
    }($, Popper);
    var Popover = function($$$1) {
        var NAME = 'popover';
        var VERSION = '4.0.0';
        var DATA_KEY = 'bs.popover';
        var EVENT_KEY = "." + DATA_KEY;
        var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
        var CLASS_PREFIX = 'bs-popover';
        var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
        var Default = _extends({}, Tooltip.Default, {
            placement: 'right',
            trigger: 'click',
            content: '',
            template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
        });
        var DefaultType = _extends({}, Tooltip.DefaultType, {
            content: '(string|element|function)'
        });
        var ClassName = {
            FADE: 'fade',
            SHOW: 'show'
        };
        var Selector = {
            TITLE: '.popover-header',
            CONTENT: '.popover-body'
        };
        var Event = {
            HIDE: "hide" + EVENT_KEY,
            HIDDEN: "hidden" + EVENT_KEY,
            SHOW: "show" + EVENT_KEY,
            SHOWN: "shown" + EVENT_KEY,
            INSERTED: "inserted" + EVENT_KEY,
            CLICK: "click" + EVENT_KEY,
            FOCUSIN: "focusin" + EVENT_KEY,
            FOCUSOUT: "focusout" + EVENT_KEY,
            MOUSEENTER: "mouseenter" + EVENT_KEY,
            MOUSELEAVE: "mouseleave" + EVENT_KEY
        };
        var Popover = function(_Tooltip) {
            _inheritsLoose(Popover, _Tooltip);

            function Popover() {
                return _Tooltip.apply(this, arguments) || this
            }
            var _proto = Popover.prototype;
            _proto.isWithContent = function isWithContent() {
                return this.getTitle() || this._getContent()
            };
            _proto.addAttachmentClass = function addAttachmentClass(attachment) {
                $$$1(this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment)
            };
            _proto.getTipElement = function getTipElement() {
                this.tip = this.tip || $$$1(this.config.template)[0];
                return this.tip
            };
            _proto.setContent = function setContent() {
                var $tip = $$$1(this.getTipElement());
                this.setElementContent($tip.find(Selector.TITLE), this.getTitle());
                var content = this._getContent();
                if (typeof content === 'function') {
                    content = content.call(this.element)
                }
                this.setElementContent($tip.find(Selector.CONTENT), content);
                $tip.removeClass(ClassName.FADE + " " + ClassName.SHOW)
            };
            _proto._getContent = function _getContent() {
                return this.element.getAttribute('data-content') || this.config.content
            };
            _proto._cleanTipClass = function _cleanTipClass() {
                var $tip = $$$1(this.getTipElement());
                var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
                if (tabClass !== null && tabClass.length > 0) {
                    $tip.removeClass(tabClass.join(''))
                }
            };
            Popover._jQueryInterface = function _jQueryInterface(config) {
                return this.each(function() {
                    var data = $$$1(this).data(DATA_KEY);
                    var _config = typeof config === 'object' ? config : null;
                    if (!data && /destroy|hide/.test(config)) {
                        return
                    }
                    if (!data) {
                        data = new Popover(this, _config);
                        $$$1(this).data(DATA_KEY, data)
                    }
                    if (typeof config === 'string') {
                        if (typeof data[config] === 'undefined') {
                            throw new TypeError("No method named \"" + config + "\"")
                        }
                        data[config]()
                    }
                })
            };
            _createClass(Popover, null, [{
                key: "VERSION",
                get: function get() {
                    return VERSION
                }
            }, {
                key: "Default",
                get: function get() {
                    return Default
                }
            }, {
                key: "NAME",
                get: function get() {
                    return NAME
                }
            }, {
                key: "DATA_KEY",
                get: function get() {
                    return DATA_KEY
                }
            }, {
                key: "Event",
                get: function get() {
                    return Event
                }
            }, {
                key: "EVENT_KEY",
                get: function get() {
                    return EVENT_KEY
                }
            }, {
                key: "DefaultType",
                get: function get() {
                    return DefaultType
                }
            }]);
            return Popover
        }(Tooltip);
        $$$1.fn[NAME] = Popover._jQueryInterface;
        $$$1.fn[NAME].Constructor = Popover;
        $$$1.fn[NAME].noConflict = function() {
            $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
            return Popover._jQueryInterface
        };
        return Popover
    }($);
    var ScrollSpy = function($$$1) {
        var NAME = 'scrollspy';
        var VERSION = '4.0.0';
        var DATA_KEY = 'bs.scrollspy';
        var EVENT_KEY = "." + DATA_KEY;
        var DATA_API_KEY = '.data-api';
        var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
        var Default = {
            offset: 10,
            method: 'auto',
            target: ''
        };
        var DefaultType = {
            offset: 'number',
            method: 'string',
            target: '(string|element)'
        };
        var Event = {
            ACTIVATE: "activate" + EVENT_KEY,
            SCROLL: "scroll" + EVENT_KEY,
            LOAD_DATA_API: "load" + EVENT_KEY + DATA_API_KEY
        };
        var ClassName = {
            DROPDOWN_ITEM: 'dropdown-item',
            DROPDOWN_MENU: 'dropdown-menu',
            ACTIVE: 'active'
        };
        var Selector = {
            DATA_SPY: '[data-spy="scroll"]',
            ACTIVE: '.active',
            NAV_LIST_GROUP: '.nav, .list-group',
            NAV_LINKS: '.nav-link',
            NAV_ITEMS: '.nav-item',
            LIST_ITEMS: '.list-group-item',
            DROPDOWN: '.dropdown',
            DROPDOWN_ITEMS: '.dropdown-item',
            DROPDOWN_TOGGLE: '.dropdown-toggle'
        };
        var OffsetMethod = {
            OFFSET: 'offset',
            POSITION: 'position'
        };
        var ScrollSpy = function() {
            function ScrollSpy(element, config) {
                var _this = this;
                this._element = element;
                this._scrollElement = element.tagName === 'BODY' ? window : element;
                this._config = this._getConfig(config);
                this._selector = this._config.target + " " + Selector.NAV_LINKS + "," + (this._config.target + " " + Selector.LIST_ITEMS + ",") + (this._config.target + " " + Selector.DROPDOWN_ITEMS);
                this._offsets = [];
                this._targets = [];
                this._activeTarget = null;
                this._scrollHeight = 0;
                $$$1(this._scrollElement).on(Event.SCROLL, function(event) {
                    return _this._process(event)
                });
                this.refresh();
                this._process()
            }
            var _proto = ScrollSpy.prototype;
            _proto.refresh = function refresh() {
                var _this2 = this;
                var autoMethod = this._scrollElement === this._scrollElement.window ? OffsetMethod.OFFSET : OffsetMethod.POSITION;
                var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;
                var offsetBase = offsetMethod === OffsetMethod.POSITION ? this._getScrollTop() : 0;
                this._offsets = [];
                this._targets = [];
                this._scrollHeight = this._getScrollHeight();
                var targets = $$$1.makeArray($$$1(this._selector));
                targets.map(function(element) {
                    var target;
                    var targetSelector = Util.getSelectorFromElement(element);
                    if (targetSelector) {
                        target = $$$1(targetSelector)[0]
                    }
                    if (target) {
                        var targetBCR = target.getBoundingClientRect();
                        if (targetBCR.width || targetBCR.height) {
                            return [$$$1(target)[offsetMethod]().top + offsetBase, targetSelector]
                        }
                    }
                    return null
                }).filter(function(item) {
                    return item
                }).sort(function(a, b) {
                    return a[0] - b[0]
                }).forEach(function(item) {
                    _this2._offsets.push(item[0]);
                    _this2._targets.push(item[1])
                })
            };
            _proto.dispose = function dispose() {
                $$$1.removeData(this._element, DATA_KEY);
                $$$1(this._scrollElement).off(EVENT_KEY);
                this._element = null;
                this._scrollElement = null;
                this._config = null;
                this._selector = null;
                this._offsets = null;
                this._targets = null;
                this._activeTarget = null;
                this._scrollHeight = null
            };
            _proto._getConfig = function _getConfig(config) {
                config = _extends({}, Default, config);
                if (typeof config.target !== 'string') {
                    var id = $$$1(config.target).attr('id');
                    if (!id) {
                        id = Util.getUID(NAME);
                        $$$1(config.target).attr('id', id)
                    }
                    config.target = "#" + id
                }
                Util.typeCheckConfig(NAME, config, DefaultType);
                return config
            };
            _proto._getScrollTop = function _getScrollTop() {
                return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop
            };
            _proto._getScrollHeight = function _getScrollHeight() {
                return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight)
            };
            _proto._getOffsetHeight = function _getOffsetHeight() {
                return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height
            };
            _proto._process = function _process() {
                var scrollTop = this._getScrollTop() + this._config.offset;
                var scrollHeight = this._getScrollHeight();
                var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();
                if (this._scrollHeight !== scrollHeight) {
                    this.refresh()
                }
                if (scrollTop >= maxScroll) {
                    var target = this._targets[this._targets.length - 1];
                    if (this._activeTarget !== target) {
                        this._activate(target)
                    }
                    return
                }
                if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {
                    this._activeTarget = null;
                    this._clear();
                    return
                }
                for (var i = this._offsets.length; i--;) {
                    var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);
                    if (isActiveTarget) {
                        this._activate(this._targets[i])
                    }
                }
            };
            _proto._activate = function _activate(target) {
                this._activeTarget = target;
                this._clear();
                var queries = this._selector.split(',');
                queries = queries.map(function(selector) {
                    return selector + "[data-target=\"" + target + "\"]," + (selector + "[href=\"" + target + "\"]")
                });
                var $link = $$$1(queries.join(','));
                if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {
                    $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE);
                    $link.addClass(ClassName.ACTIVE)
                } else {
                    $link.addClass(ClassName.ACTIVE);
                    $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_LINKS + ", " + Selector.LIST_ITEMS).addClass(ClassName.ACTIVE);
                    $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE)
                }
                $$$1(this._scrollElement).trigger(Event.ACTIVATE, {
                    relatedTarget: target
                })
            };
            _proto._clear = function _clear() {
                $$$1(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE)
            };
            ScrollSpy._jQueryInterface = function _jQueryInterface(config) {
                return this.each(function() {
                    var data = $$$1(this).data(DATA_KEY);
                    var _config = typeof config === 'object' && config;
                    if (!data) {
                        data = new ScrollSpy(this, _config);
                        $$$1(this).data(DATA_KEY, data)
                    }
                    if (typeof config === 'string') {
                        if (typeof data[config] === 'undefined') {
                            throw new TypeError("No method named \"" + config + "\"")
                        }
                        data[config]()
                    }
                })
            };
            _createClass(ScrollSpy, null, [{
                key: "VERSION",
                get: function get() {
                    return VERSION
                }
            }, {
                key: "Default",
                get: function get() {
                    return Default
                }
            }]);
            return ScrollSpy
        }();
        $$$1(window).on(Event.LOAD_DATA_API, function() {
            var scrollSpys = $$$1.makeArray($$$1(Selector.DATA_SPY));
            for (var i = scrollSpys.length; i--;) {
                var $spy = $$$1(scrollSpys[i]);
                ScrollSpy._jQueryInterface.call($spy, $spy.data())
            }
        });
        $$$1.fn[NAME] = ScrollSpy._jQueryInterface;
        $$$1.fn[NAME].Constructor = ScrollSpy;
        $$$1.fn[NAME].noConflict = function() {
            $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
            return ScrollSpy._jQueryInterface
        };
        return ScrollSpy
    }($);
    var Tab = function($$$1) {
        var NAME = 'tab';
        var VERSION = '4.0.0';
        var DATA_KEY = 'bs.tab';
        var EVENT_KEY = "." + DATA_KEY;
        var DATA_API_KEY = '.data-api';
        var JQUERY_NO_CONFLICT = $$$1.fn[NAME];
        var TRANSITION_DURATION = 150;
        var Event = {
            HIDE: "hide" + EVENT_KEY,
            HIDDEN: "hidden" + EVENT_KEY,
            SHOW: "show" + EVENT_KEY,
            SHOWN: "shown" + EVENT_KEY,
            CLICK_DATA_API: "click" + EVENT_KEY + DATA_API_KEY
        };
        var ClassName = {
            DROPDOWN_MENU: 'dropdown-menu',
            ACTIVE: 'active',
            DISABLED: 'disabled',
            FADE: 'fade',
            SHOW: 'show'
        };
        var Selector = {
            DROPDOWN: '.dropdown',
            NAV_LIST_GROUP: '.nav, .list-group',
            ACTIVE: '.active',
            ACTIVE_UL: '> li > .active',
            DATA_TOGGLE: '[data-toggle="tab"], [data-toggle="pill"], [data-toggle="list"]',
            DROPDOWN_TOGGLE: '.dropdown-toggle',
            DROPDOWN_ACTIVE_CHILD: '> .dropdown-menu .active'
        };
        var Tab = function() {
            function Tab(element) {
                this._element = element
            }
            var _proto = Tab.prototype;
            _proto.show = function show() {
                var _this = this;
                if (this._element.parentNode && this._element.parentNode.nodeType === Node.ELEMENT_NODE && $$$1(this._element).hasClass(ClassName.ACTIVE) || $$$1(this._element).hasClass(ClassName.DISABLED)) {
                    return
                }
                var target;
                var previous;
                var listElement = $$$1(this._element).closest(Selector.NAV_LIST_GROUP)[0];
                var selector = Util.getSelectorFromElement(this._element);
                if (listElement) {
                    var itemSelector = listElement.nodeName === 'UL' ? Selector.ACTIVE_UL : Selector.ACTIVE;
                    previous = $$$1.makeArray($$$1(listElement).find(itemSelector));
                    previous = previous[previous.length - 1]
                }
                var hideEvent = $$$1.Event(Event.HIDE, {
                    relatedTarget: this._element
                });
                var showEvent = $$$1.Event(Event.SHOW, {
                    relatedTarget: previous
                });
                if (previous) {
                    $$$1(previous).trigger(hideEvent)
                }
                $$$1(this._element).trigger(showEvent);
                if (showEvent.isDefaultPrevented() || hideEvent.isDefaultPrevented()) {
                    return
                }
                if (selector) {
                    target = $$$1(selector)[0]
                }
                this._activate(this._element, listElement);
                var complete = function complete() {
                    var hiddenEvent = $$$1.Event(Event.HIDDEN, {
                        relatedTarget: _this._element
                    });
                    var shownEvent = $$$1.Event(Event.SHOWN, {
                        relatedTarget: previous
                    });
                    $$$1(previous).trigger(hiddenEvent);
                    $$$1(_this._element).trigger(shownEvent)
                };
                if (target) {
                    this._activate(target, target.parentNode, complete)
                } else {
                    complete()
                }
            };
            _proto.dispose = function dispose() {
                $$$1.removeData(this._element, DATA_KEY);
                this._element = null
            };
            _proto._activate = function _activate(element, container, callback) {
                var _this2 = this;
                var activeElements;
                if (container.nodeName === 'UL') {
                    activeElements = $$$1(container).find(Selector.ACTIVE_UL)
                } else {
                    activeElements = $$$1(container).children(Selector.ACTIVE)
                }
                var active = activeElements[0];
                var isTransitioning = callback && Util.supportsTransitionEnd() && active && $$$1(active).hasClass(ClassName.FADE);
                var complete = function complete() {
                    return _this2._transitionComplete(element, active, callback)
                };
                if (active && isTransitioning) {
                    $$$1(active).one(Util.TRANSITION_END, complete).emulateTransitionEnd(TRANSITION_DURATION)
                } else {
                    complete()
                }
            };
            _proto._transitionComplete = function _transitionComplete(element, active, callback) {
                if (active) {
                    $$$1(active).removeClass(ClassName.SHOW + " " + ClassName.ACTIVE);
                    var dropdownChild = $$$1(active.parentNode).find(Selector.DROPDOWN_ACTIVE_CHILD)[0];
                    if (dropdownChild) {
                        $$$1(dropdownChild).removeClass(ClassName.ACTIVE)
                    }
                    if (active.getAttribute('role') === 'tab') {
                        active.setAttribute('aria-selected', !1)
                    }
                }
                $$$1(element).addClass(ClassName.ACTIVE);
                if (element.getAttribute('role') === 'tab') {
                    element.setAttribute('aria-selected', !0)
                }
                Util.reflow(element);
                $$$1(element).addClass(ClassName.SHOW);
                if (element.parentNode && $$$1(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {
                    var dropdownElement = $$$1(element).closest(Selector.DROPDOWN)[0];
                    if (dropdownElement) {
                        $$$1(dropdownElement).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)
                    }
                    element.setAttribute('aria-expanded', !0)
                }
                if (callback) {
                    callback()
                }
            };
            Tab._jQueryInterface = function _jQueryInterface(config) {
                return this.each(function() {
                    var $this = $$$1(this);
                    var data = $this.data(DATA_KEY);
                    if (!data) {
                        data = new Tab(this);
                        $this.data(DATA_KEY, data)
                    }
                    if (typeof config === 'string') {
                        if (typeof data[config] === 'undefined') {
                            throw new TypeError("No method named \"" + config + "\"")
                        }
                        data[config]()
                    }
                })
            };
            _createClass(Tab, null, [{
                key: "VERSION",
                get: function get() {
                    return VERSION
                }
            }]);
            return Tab
        }();
        $$$1(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function(event) {
            event.preventDefault();
            Tab._jQueryInterface.call($$$1(this), 'show')
        });
        $$$1.fn[NAME] = Tab._jQueryInterface;
        $$$1.fn[NAME].Constructor = Tab;
        $$$1.fn[NAME].noConflict = function() {
            $$$1.fn[NAME] = JQUERY_NO_CONFLICT;
            return Tab._jQueryInterface
        };
        return Tab
    }($);
    (function($$$1) {
        if (typeof $$$1 === 'undefined') {
            throw new TypeError('Bootstrap\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\'s JavaScript.')
        }
        var version = $$$1.fn.jquery.split(' ')[0].split('.');
        var minMajor = 1;
        var ltMajor = 2;
        var minMinor = 9;
        var minPatch = 1;
        var maxMajor = 4;
        if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {
            throw new Error('Bootstrap\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')
        }
    })($);
    exports.Util = Util;
    exports.Alert = Alert;
    exports.Button = Button;
    exports.Carousel = Carousel;
    exports.Collapse = Collapse;
    exports.Dropdown = Dropdown;
    exports.Modal = Modal;
    exports.Popover = Popover;
    exports.Scrollspy = ScrollSpy;
    exports.Tab = Tab;
    exports.Tooltip = Tooltip;
    Object.defineProperty(exports, '__esModule', {
        value: !0
    })
})));
! function t(e, n, r) {
    function o(l, s) {
        if (!n[l]) {
            if (!e[l]) {
                var a = "function" == typeof require && require;
                if (!s && a) return a(l, !0);
                if (i) return i(l, !0);
                var c = new Error("Cannot find module '" + l + "'");
                throw c.code = "MODULE_NOT_FOUND", c
            }
            var u = n[l] = {
                exports: {}
            };
            e[l][0].call(u.exports, function(t) {
                var n = e[l][1][t];
                return o(n ? n : t)
            }, u, u.exports, t, e, n, r)
        }
        return n[l].exports
    }
    for (var i = "function" == typeof require && require, l = 0; l < r.length; l++) o(r[l]);
    return o
}({
    1: [function(t, e, n) {
        "use strict";

        function r(t) {
            t.fn.perfectScrollbar = function(e) {
                return this.each(function() {
                    if ("object" == typeof e || "undefined" == typeof e) {
                        var n = e;
                        i.get(this) || o.initialize(this, n)
                    } else {
                        var r = e;
                        "update" === r ? o.update(this) : "destroy" === r && o.destroy(this)
                    }
                    return t(this)
                })
            }
        }
        var o = t("../main"),
            i = t("../plugin/instances");
        if ("function" == typeof define && define.amd) define(["jquery"], r);
        else {
            var l = window.jQuery ? window.jQuery : window.$;
            "undefined" != typeof l && r(l)
        }
        e.exports = r
    }, {
        "../main": 7,
        "../plugin/instances": 18
    }],
    2: [function(t, e, n) {
        "use strict";

        function r(t, e) {
            var n = t.className.split(" ");
            n.indexOf(e) < 0 && n.push(e), t.className = n.join(" ")
        }

        function o(t, e) {
            var n = t.className.split(" "),
                r = n.indexOf(e);
            r >= 0 && n.splice(r, 1), t.className = n.join(" ")
        }
        n.add = function(t, e) {
            t.classList ? t.classList.add(e) : r(t, e)
        }, n.remove = function(t, e) {
            t.classList ? t.classList.remove(e) : o(t, e)
        }, n.list = function(t) {
            return t.classList ? Array.prototype.slice.apply(t.classList) : t.className.split(" ")
        }
    }, {}],
    3: [function(t, e, n) {
        "use strict";

        function r(t, e) {
            return window.getComputedStyle(t)[e]
        }

        function o(t, e, n) {
            return "number" == typeof n && (n = n.toString() + "px"), t.style[e] = n, t
        }

        function i(t, e) {
            for (var n in e) {
                var r = e[n];
                "number" == typeof r && (r = r.toString() + "px"), t.style[n] = r
            }
            return t
        }
        var l = {};
        l.e = function(t, e) {
            var n = document.createElement(t);
            return n.className = e, n
        }, l.appendTo = function(t, e) {
            return e.appendChild(t), t
        }, l.css = function(t, e, n) {
            return "object" == typeof e ? i(t, e) : "undefined" == typeof n ? r(t, e) : o(t, e, n)
        }, l.matches = function(t, e) {
            return "undefined" != typeof t.matches ? t.matches(e) : "undefined" != typeof t.matchesSelector ? t.matchesSelector(e) : "undefined" != typeof t.webkitMatchesSelector ? t.webkitMatchesSelector(e) : "undefined" != typeof t.mozMatchesSelector ? t.mozMatchesSelector(e) : "undefined" != typeof t.msMatchesSelector ? t.msMatchesSelector(e) : void 0
        }, l.remove = function(t) {
            "undefined" != typeof t.remove ? t.remove() : t.parentNode && t.parentNode.removeChild(t)
        }, l.queryChildren = function(t, e) {
            return Array.prototype.filter.call(t.childNodes, function(t) {
                return l.matches(t, e)
            })
        }, e.exports = l
    }, {}],
    4: [function(t, e, n) {
        "use strict";
        var r = function(t) {
            this.element = t, this.events = {}
        };
        r.prototype.bind = function(t, e) {
            "undefined" == typeof this.events[t] && (this.events[t] = []), this.events[t].push(e), this.element.addEventListener(t, e, !1)
        }, r.prototype.unbind = function(t, e) {
            var n = "undefined" != typeof e;
            this.events[t] = this.events[t].filter(function(r) {
                return n && r !== e ? !0 : (this.element.removeEventListener(t, r, !1), !1)
            }, this)
        }, r.prototype.unbindAll = function() {
            for (var t in this.events) this.unbind(t)
        };
        var o = function() {
            this.eventElements = []
        };
        o.prototype.eventElement = function(t) {
            var e = this.eventElements.filter(function(e) {
                return e.element === t
            })[0];
            return "undefined" == typeof e && (e = new r(t), this.eventElements.push(e)), e
        }, o.prototype.bind = function(t, e, n) {
            this.eventElement(t).bind(e, n)
        }, o.prototype.unbind = function(t, e, n) {
            this.eventElement(t).unbind(e, n)
        }, o.prototype.unbindAll = function() {
            for (var t = 0; t < this.eventElements.length; t++) this.eventElements[t].unbindAll()
        }, o.prototype.once = function(t, e, n) {
            var r = this.eventElement(t),
                o = function(t) {
                    r.unbind(e, o), n(t)
                };
            r.bind(e, o)
        }, e.exports = o
    }, {}],
    5: [function(t, e, n) {
        "use strict";
        e.exports = function() {
            function t() {
                return Math.floor(65536 * (1 + Math.random())).toString(16).substring(1)
            }
            return function() {
                return t() + t() + "-" + t() + "-" + t() + "-" + t() + "-" + t() + t() + t()
            }
        }()
    }, {}],
    6: [function(t, e, n) {
        "use strict";
        var r = t("./class"),
            o = t("./dom");
        n.toInt = function(t) {
            return parseInt(t, 10) || 0
        }, n.clone = function(t) {
            if (null === t) return null;
            if ("object" == typeof t) {
                var e = {};
                for (var n in t) e[n] = this.clone(t[n]);
                return e
            }
            return t
        }, n.extend = function(t, e) {
            var n = this.clone(t);
            for (var r in e) n[r] = this.clone(e[r]);
            return n
        }, n.isEditable = function(t) {
            return o.matches(t, "input,[contenteditable]") || o.matches(t, "select,[contenteditable]") || o.matches(t, "textarea,[contenteditable]") || o.matches(t, "button,[contenteditable]")
        }, n.removePsClasses = function(t) {
            for (var e = r.list(t), n = 0; n < e.length; n++) {
                var o = e[n];
                0 === o.indexOf("ps-") && r.remove(t, o)
            }
        }, n.outerWidth = function(t) {
            return this.toInt(o.css(t, "width")) + this.toInt(o.css(t, "paddingLeft")) + this.toInt(o.css(t, "paddingRight")) + this.toInt(o.css(t, "borderLeftWidth")) + this.toInt(o.css(t, "borderRightWidth"))
        }, n.startScrolling = function(t, e) {
            r.add(t, "ps-in-scrolling"), "undefined" != typeof e ? r.add(t, "ps-" + e) : (r.add(t, "ps-x"), r.add(t, "ps-y"))
        }, n.stopScrolling = function(t, e) {
            r.remove(t, "ps-in-scrolling"), "undefined" != typeof e ? r.remove(t, "ps-" + e) : (r.remove(t, "ps-x"), r.remove(t, "ps-y"))
        }, n.env = {
            isWebKit: "WebkitAppearance" in document.documentElement.style,
            supportsTouch: "ontouchstart" in window || window.DocumentTouch && document instanceof window.DocumentTouch,
            supportsIePointer: null !== window.navigator.msMaxTouchPoints
        }
    }, {
        "./class": 2,
        "./dom": 3
    }],
    7: [function(t, e, n) {
        "use strict";
        var r = t("./plugin/destroy"),
            o = t("./plugin/initialize"),
            i = t("./plugin/update");
        e.exports = {
            initialize: o,
            update: i,
            destroy: r
        }
    }, {
        "./plugin/destroy": 9,
        "./plugin/initialize": 17,
        "./plugin/update": 21
    }],
    8: [function(t, e, n) {
        "use strict";
        e.exports = {
            maxScrollbarLength: null,
            minScrollbarLength: null,
            scrollXMarginOffset: 0,
            scrollYMarginOffset: 0,
            stopPropagationOnClick: !0,
            suppressScrollX: !1,
            suppressScrollY: !1,
            swipePropagation: !0,
            useBothWheelAxes: !1,
            useKeyboard: !0,
            useSelectionScroll: !1,
            wheelPropagation: !1,
            wheelSpeed: 1
        }
    }, {}],
    9: [function(t, e, n) {
        "use strict";
        var r = t("../lib/dom"),
            o = t("../lib/helper"),
            i = t("./instances");
        e.exports = function(t) {
            var e = i.get(t);
            e && (e.event.unbindAll(), r.remove(e.scrollbarX), r.remove(e.scrollbarY), r.remove(e.scrollbarXRail), r.remove(e.scrollbarYRail), o.removePsClasses(t), i.remove(t))
        }
    }, {
        "../lib/dom": 3,
        "../lib/helper": 6,
        "./instances": 18
    }],
    10: [function(t, e, n) {
        "use strict";

        function r(t, e) {
            function n(t) {
                return t.getBoundingClientRect()
            }
            var r = window.Event.prototype.stopPropagation.bind;
            e.settings.stopPropagationOnClick && e.event.bind(e.scrollbarY, "click", r), e.event.bind(e.scrollbarYRail, "click", function(r) {
                var i = o.toInt(e.scrollbarYHeight / 2),
                    a = e.railYRatio * (r.pageY - window.scrollY - n(e.scrollbarYRail).top - i),
                    c = e.railYRatio * (e.railYHeight - e.scrollbarYHeight),
                    u = a / c;
                0 > u ? u = 0 : u > 1 && (u = 1), s(t, "top", (e.contentHeight - e.containerHeight) * u), l(t), r.stopPropagation()
            }), e.settings.stopPropagationOnClick && e.event.bind(e.scrollbarX, "click", r), e.event.bind(e.scrollbarXRail, "click", function(r) {
                var i = o.toInt(e.scrollbarXWidth / 2),
                    a = e.railXRatio * (r.pageX - window.scrollX - n(e.scrollbarXRail).left - i),
                    c = e.railXRatio * (e.railXWidth - e.scrollbarXWidth),
                    u = a / c;
                0 > u ? u = 0 : u > 1 && (u = 1), s(t, "left", (e.contentWidth - e.containerWidth) * u - e.negativeScrollAdjustment), l(t), r.stopPropagation()
            })
        }
        var o = t("../../lib/helper"),
            i = t("../instances"),
            l = t("../update-geometry"),
            s = t("../update-scroll");
        e.exports = function(t) {
            var e = i.get(t);
            r(t, e)
        }
    }, {
        "../../lib/helper": 6,
        "../instances": 18,
        "../update-geometry": 19,
        "../update-scroll": 20
    }],
    11: [function(t, e, n) {
        "use strict";

        function r(t, e) {
            function n(n) {
                var o = r + n * e.railXRatio,
                    i = e.scrollbarXRail.getBoundingClientRect().left + e.railXRatio * (e.railXWidth - e.scrollbarXWidth);
                0 > o ? e.scrollbarXLeft = 0 : o > i ? e.scrollbarXLeft = i : e.scrollbarXLeft = o;
                var s = l.toInt(e.scrollbarXLeft * (e.contentWidth - e.containerWidth) / (e.containerWidth - e.railXRatio * e.scrollbarXWidth)) - e.negativeScrollAdjustment;
                c(t, "left", s)
            }
            var r = null,
                o = null,
                s = function(e) {
                    n(e.pageX - o), a(t), e.stopPropagation(), e.preventDefault()
                },
                u = function() {
                    l.stopScrolling(t, "x"), e.event.unbind(e.ownerDocument, "mousemove", s)
                };
            e.event.bind(e.scrollbarX, "mousedown", function(n) {
                o = n.pageX, r = l.toInt(i.css(e.scrollbarX, "left")) * e.railXRatio, l.startScrolling(t, "x"), e.event.bind(e.ownerDocument, "mousemove", s), e.event.once(e.ownerDocument, "mouseup", u), n.stopPropagation(), n.preventDefault()
            })
        }

        function o(t, e) {
            function n(n) {
                var o = r + n * e.railYRatio,
                    i = e.scrollbarYRail.getBoundingClientRect().top + e.railYRatio * (e.railYHeight - e.scrollbarYHeight);
                0 > o ? e.scrollbarYTop = 0 : o > i ? e.scrollbarYTop = i : e.scrollbarYTop = o;
                var s = l.toInt(e.scrollbarYTop * (e.contentHeight - e.containerHeight) / (e.containerHeight - e.railYRatio * e.scrollbarYHeight));
                c(t, "top", s)
            }
            var r = null,
                o = null,
                s = function(e) {
                    n(e.pageY - o), a(t), e.stopPropagation(), e.preventDefault()
                },
                u = function() {
                    l.stopScrolling(t, "y"), e.event.unbind(e.ownerDocument, "mousemove", s)
                };
            e.event.bind(e.scrollbarY, "mousedown", function(n) {
                o = n.pageY, r = l.toInt(i.css(e.scrollbarY, "top")) * e.railYRatio, l.startScrolling(t, "y"), e.event.bind(e.ownerDocument, "mousemove", s), e.event.once(e.ownerDocument, "mouseup", u), n.stopPropagation(), n.preventDefault()
            })
        }
        var i = t("../../lib/dom"),
            l = t("../../lib/helper"),
            s = t("../instances"),
            a = t("../update-geometry"),
            c = t("../update-scroll");
        e.exports = function(t) {
            var e = s.get(t);
            r(t, e), o(t, e)
        }
    }, {
        "../../lib/dom": 3,
        "../../lib/helper": 6,
        "../instances": 18,
        "../update-geometry": 19,
        "../update-scroll": 20
    }],
    12: [function(t, e, n) {
        "use strict";

        function r(t, e) {
            function n(n, r) {
                var o = t.scrollTop;
                if (0 === n) {
                    if (!e.scrollbarYActive) return !1;
                    if (0 === o && r > 0 || o >= e.contentHeight - e.containerHeight && 0 > r) return !e.settings.wheelPropagation
                }
                var i = t.scrollLeft;
                if (0 === r) {
                    if (!e.scrollbarXActive) return !1;
                    if (0 === i && 0 > n || i >= e.contentWidth - e.containerWidth && n > 0) return !e.settings.wheelPropagation
                }
                return !0
            }
            var r = !1;
            e.event.bind(t, "mouseenter", function() {
                r = !0
            }), e.event.bind(t, "mouseleave", function() {
                r = !1
            });
            var i = !1;
            e.event.bind(e.ownerDocument, "keydown", function(a) {
                if ((!a.isDefaultPrevented || !a.isDefaultPrevented()) && r) {
                    var c = document.activeElement ? document.activeElement : e.ownerDocument.activeElement;
                    if (c) {
                        for (; c.shadowRoot;) c = c.shadowRoot.activeElement;
                        if (o.isEditable(c)) return
                    }
                    var u = 0,
                        d = 0;
                    switch (a.which) {
                        case 37:
                            u = -30;
                            break;
                        case 38:
                            d = 30;
                            break;
                        case 39:
                            u = 30;
                            break;
                        case 40:
                            d = -30;
                            break;
                        case 33:
                            d = 90;
                            break;
                        case 32:
                            d = a.shiftKey ? 90 : -90;
                            break;
                        case 34:
                            d = -90;
                            break;
                        case 35:
                            d = a.ctrlKey ? -e.contentHeight : -e.containerHeight;
                            break;
                        case 36:
                            d = a.ctrlKey ? t.scrollTop : e.containerHeight;
                            break;
                        default:
                            return
                    }
                    s(t, "top", t.scrollTop - d), s(t, "left", t.scrollLeft + u), l(t), i = n(u, d), i && a.preventDefault()
                }
            })
        }
        var o = t("../../lib/helper"),
            i = t("../instances"),
            l = t("../update-geometry"),
            s = t("../update-scroll");
        e.exports = function(t) {
            var e = i.get(t);
            r(t, e)
        }
    }, {
        "../../lib/helper": 6,
        "../instances": 18,
        "../update-geometry": 19,
        "../update-scroll": 20
    }],
    13: [function(t, e, n) {
        "use strict";

        function r(t, e) {
            function n(n, r) {
                var o = t.scrollTop;
                if (0 === n) {
                    if (!e.scrollbarYActive) return !1;
                    if (0 === o && r > 0 || o >= e.contentHeight - e.containerHeight && 0 > r) return !e.settings.wheelPropagation
                }
                var i = t.scrollLeft;
                if (0 === r) {
                    if (!e.scrollbarXActive) return !1;
                    if (0 === i && 0 > n || i >= e.contentWidth - e.containerWidth && n > 0) return !e.settings.wheelPropagation
                }
                return !0
            }

            function r(t) {
                var e = t.deltaX,
                    n = -1 * t.deltaY;
                return ("undefined" == typeof e || "undefined" == typeof n) && (e = -1 * t.wheelDeltaX / 6, n = t.wheelDeltaY / 6), t.deltaMode && 1 === t.deltaMode && (e *= 10, n *= 10), e !== e && n !== n && (e = 0, n = t.wheelDelta), [e, n]
            }

            function i(e, n) {
                var r = t.querySelector("textarea:hover");
                if (r) {
                    var o = r.scrollHeight - r.clientHeight;
                    if (o > 0 && !(0 === r.scrollTop && n > 0 || r.scrollTop === o && 0 > n)) return !0;
                    var i = r.scrollLeft - r.clientWidth;
                    if (i > 0 && !(0 === r.scrollLeft && 0 > e || r.scrollLeft === i && e > 0)) return !0
                }
                return !1
            }

            function a(a) {
                if (o.env.isWebKit || !t.querySelector("select:focus")) {
                    var u = r(a),
                        d = u[0],
                        p = u[1];
                    i(d, p) || (c = !1, e.settings.useBothWheelAxes ? e.scrollbarYActive && !e.scrollbarXActive ? (p ? s(t, "top", t.scrollTop - p * e.settings.wheelSpeed) : s(t, "top", t.scrollTop + d * e.settings.wheelSpeed), c = !0) : e.scrollbarXActive && !e.scrollbarYActive && (d ? s(t, "left", t.scrollLeft + d * e.settings.wheelSpeed) : s(t, "left", t.scrollLeft - p * e.settings.wheelSpeed), c = !0) : (s(t, "top", t.scrollTop - p * e.settings.wheelSpeed), s(t, "left", t.scrollLeft + d * e.settings.wheelSpeed)), l(t), c = c || n(d, p), c && (a.stopPropagation(), a.preventDefault()))
                }
            }
            var c = !1;
            "undefined" != typeof window.onwheel ? e.event.bind(t, "wheel", a) : "undefined" != typeof window.onmousewheel && e.event.bind(t, "mousewheel", a)
        }
        var o = t("../../lib/helper"),
            i = t("../instances"),
            l = t("../update-geometry"),
            s = t("../update-scroll");
        e.exports = function(t) {
            var e = i.get(t);
            r(t, e)
        }
    }, {
        "../../lib/helper": 6,
        "../instances": 18,
        "../update-geometry": 19,
        "../update-scroll": 20
    }],
    14: [function(t, e, n) {
        "use strict";

        function r(t, e) {
            e.event.bind(t, "scroll", function() {
                i(t)
            })
        }
        var o = t("../instances"),
            i = t("../update-geometry");
        e.exports = function(t) {
            var e = o.get(t);
            r(t, e)
        }
    }, {
        "../instances": 18,
        "../update-geometry": 19
    }],
    15: [function(t, e, n) {
        "use strict";

        function r(t, e) {
            function n() {
                var t = window.getSelection ? window.getSelection() : document.getSelection ? document.getSelection() : "";
                return 0 === t.toString().length ? null : t.getRangeAt(0).commonAncestorContainer
            }

            function r() {
                c || (c = setInterval(function() {
                    return i.get(t) ? (s(t, "top", t.scrollTop + u.top), s(t, "left", t.scrollLeft + u.left), void l(t)) : void clearInterval(c)
                }, 50))
            }

            function a() {
                c && (clearInterval(c), c = null), o.stopScrolling(t)
            }
            var c = null,
                u = {
                    top: 0,
                    left: 0
                },
                d = !1;
            e.event.bind(e.ownerDocument, "selectionchange", function() {
                t.contains(n()) ? d = !0 : (d = !1, a())
            }), e.event.bind(window, "mouseup", function() {
                d && (d = !1, a())
            }), e.event.bind(window, "mousemove", function(e) {
                if (d) {
                    var n = {
                            x: e.pageX,
                            y: e.pageY
                        },
                        i = {
                            left: t.offsetLeft,
                            right: t.offsetLeft + t.offsetWidth,
                            top: t.offsetTop,
                            bottom: t.offsetTop + t.offsetHeight
                        };
                    n.x < i.left + 3 ? (u.left = -5, o.startScrolling(t, "x")) : n.x > i.right - 3 ? (u.left = 5, o.startScrolling(t, "x")) : u.left = 0, n.y < i.top + 3 ? (i.top + 3 - n.y < 5 ? u.top = -5 : u.top = -20, o.startScrolling(t, "y")) : n.y > i.bottom - 3 ? (n.y - i.bottom + 3 < 5 ? u.top = 5 : u.top = 20, o.startScrolling(t, "y")) : u.top = 0, 0 === u.top && 0 === u.left ? a() : r()
                }
            })
        }
        var o = t("../../lib/helper"),
            i = t("../instances"),
            l = t("../update-geometry"),
            s = t("../update-scroll");
        e.exports = function(t) {
            var e = i.get(t);
            r(t, e)
        }
    }, {
        "../../lib/helper": 6,
        "../instances": 18,
        "../update-geometry": 19,
        "../update-scroll": 20
    }],
    16: [function(t, e, n) {
        "use strict";

        function r(t, e, n, r) {
            function s(n, r) {
                var o = t.scrollTop,
                    i = t.scrollLeft,
                    l = Math.abs(n),
                    s = Math.abs(r);
                if (s > l) {
                    if (0 > r && o === e.contentHeight - e.containerHeight || r > 0 && 0 === o) return !e.settings.swipePropagation
                } else if (l > s && (0 > n && i === e.contentWidth - e.containerWidth || n > 0 && 0 === i)) return !e.settings.swipePropagation;
                return !0
            }

            function a(e, n) {
                l(t, "top", t.scrollTop - n), l(t, "left", t.scrollLeft - e), i(t)
            }

            function c() {
                Y = !0
            }

            function u() {
                Y = !1
            }

            function d(t) {
                return t.targetTouches ? t.targetTouches[0] : t
            }

            function p(t) {
                return t.targetTouches && 1 === t.targetTouches.length ? !0 : t.pointerType && "mouse" !== t.pointerType && t.pointerType !== t.MSPOINTER_TYPE_MOUSE ? !0 : !1
            }

            function f(t) {
                if (p(t)) {
                    w = !0;
                    var e = d(t);
                    b.pageX = e.pageX, b.pageY = e.pageY, g = (new Date).getTime(), null !== y && clearInterval(y), t.stopPropagation()
                }
            }

            function h(t) {
                if (!Y && w && p(t)) {
                    var e = d(t),
                        n = {
                            pageX: e.pageX,
                            pageY: e.pageY
                        },
                        r = n.pageX - b.pageX,
                        o = n.pageY - b.pageY;
                    a(r, o), b = n;
                    var i = (new Date).getTime(),
                        l = i - g;
                    l > 0 && (m.x = r / l, m.y = o / l, g = i), s(r, o) && (t.stopPropagation(), t.preventDefault())
                }
            }

            function v() {
                !Y && w && (w = !1, clearInterval(y), y = setInterval(function() {
                    return o.get(t) ? Math.abs(m.x) < .01 && Math.abs(m.y) < .01 ? void clearInterval(y) : (a(30 * m.x, 30 * m.y), m.x *= .8, void(m.y *= .8)) : void clearInterval(y)
                }, 10))
            }
            var b = {},
                g = 0,
                m = {},
                y = null,
                Y = !1,
                w = !1;
            n && (e.event.bind(window, "touchstart", c), e.event.bind(window, "touchend", u), e.event.bind(t, "touchstart", f), e.event.bind(t, "touchmove", h), e.event.bind(t, "touchend", v)), r && (window.PointerEvent ? (e.event.bind(window, "pointerdown", c), e.event.bind(window, "pointerup", u), e.event.bind(t, "pointerdown", f), e.event.bind(t, "pointermove", h), e.event.bind(t, "pointerup", v)) : window.MSPointerEvent && (e.event.bind(window, "MSPointerDown", c), e.event.bind(window, "MSPointerUp", u), e.event.bind(t, "MSPointerDown", f), e.event.bind(t, "MSPointerMove", h), e.event.bind(t, "MSPointerUp", v)))
        }
        var o = t("../instances"),
            i = t("../update-geometry"),
            l = t("../update-scroll");
        e.exports = function(t, e, n) {
            var i = o.get(t);
            r(t, i, e, n)
        }
    }, {
        "../instances": 18,
        "../update-geometry": 19,
        "../update-scroll": 20
    }],
    17: [function(t, e, n) {
        "use strict";
        var r = t("../lib/class"),
            o = t("../lib/helper"),
            i = t("./instances"),
            l = t("./update-geometry"),
            s = t("./handler/click-rail"),
            a = t("./handler/drag-scrollbar"),
            c = t("./handler/keyboard"),
            u = t("./handler/mouse-wheel"),
            d = t("./handler/native-scroll"),
            p = t("./handler/selection"),
            f = t("./handler/touch");
        e.exports = function(t, e) {
            e = "object" == typeof e ? e : {}, r.add(t, "ps-container");
            var n = i.add(t);
            n.settings = o.extend(n.settings, e), s(t), a(t), u(t), d(t), n.settings.useSelectionScroll && p(t), (o.env.supportsTouch || o.env.supportsIePointer) && f(t, o.env.supportsTouch, o.env.supportsIePointer), n.settings.useKeyboard && c(t), l(t)
        }
    }, {
        "../lib/class": 2,
        "../lib/helper": 6,
        "./handler/click-rail": 10,
        "./handler/drag-scrollbar": 11,
        "./handler/keyboard": 12,
        "./handler/mouse-wheel": 13,
        "./handler/native-scroll": 14,
        "./handler/selection": 15,
        "./handler/touch": 16,
        "./instances": 18,
        "./update-geometry": 19
    }],
    18: [function(t, e, n) {
        "use strict";

        function r(t) {
            var e = this;
            e.settings = d.clone(a), e.containerWidth = null, e.containerHeight = null, e.contentWidth = null, e.contentHeight = null, e.isRtl = "rtl" === s.css(t, "direction"), e.isNegativeScroll = function() {
                var e = t.scrollLeft,
                    n = null;
                return t.scrollLeft = -1, n = t.scrollLeft < 0, t.scrollLeft = e, n
            }(), e.negativeScrollAdjustment = e.isNegativeScroll ? t.scrollWidth - t.clientWidth : 0, e.event = new c, e.ownerDocument = t.ownerDocument || document, e.scrollbarXRail = s.appendTo(s.e("div", "ps-scrollbar-x-rail"), t), e.scrollbarX = s.appendTo(s.e("div", "ps-scrollbar-x"), e.scrollbarXRail), e.scrollbarXActive = null, e.scrollbarXWidth = null, e.scrollbarXLeft = null, e.scrollbarXBottom = d.toInt(s.css(e.scrollbarXRail, "bottom")), e.isScrollbarXUsingBottom = e.scrollbarXBottom === e.scrollbarXBottom, e.scrollbarXTop = e.isScrollbarXUsingBottom ? null : d.toInt(s.css(e.scrollbarXRail, "top")), e.railBorderXWidth = d.toInt(s.css(e.scrollbarXRail, "borderLeftWidth")) + d.toInt(s.css(e.scrollbarXRail, "borderRightWidth")), s.css(e.scrollbarXRail, "display", "block"), e.railXMarginWidth = d.toInt(s.css(e.scrollbarXRail, "marginLeft")) + d.toInt(s.css(e.scrollbarXRail, "marginRight")), s.css(e.scrollbarXRail, "display", ""), e.railXWidth = null, e.railXRatio = null, e.scrollbarYRail = s.appendTo(s.e("div", "ps-scrollbar-y-rail"), t), e.scrollbarY = s.appendTo(s.e("div", "ps-scrollbar-y"), e.scrollbarYRail), e.scrollbarYActive = null, e.scrollbarYHeight = null, e.scrollbarYTop = null, e.scrollbarYRight = d.toInt(s.css(e.scrollbarYRail, "right")), e.isScrollbarYUsingRight = e.scrollbarYRight === e.scrollbarYRight, e.scrollbarYLeft = e.isScrollbarYUsingRight ? null : d.toInt(s.css(e.scrollbarYRail, "left")), e.scrollbarYOuterWidth = e.isRtl ? d.outerWidth(e.scrollbarY) : null, e.railBorderYWidth = d.toInt(s.css(e.scrollbarYRail, "borderTopWidth")) + d.toInt(s.css(e.scrollbarYRail, "borderBottomWidth")), s.css(e.scrollbarYRail, "display", "block"), e.railYMarginHeight = d.toInt(s.css(e.scrollbarYRail, "marginTop")) + d.toInt(s.css(e.scrollbarYRail, "marginBottom")), s.css(e.scrollbarYRail, "display", ""), e.railYHeight = null, e.railYRatio = null
        }

        function o(t) {
            return "undefined" == typeof t.dataset ? t.getAttribute("data-ps-id") : t.dataset.psId
        }

        function i(t, e) {
            "undefined" == typeof t.dataset ? t.setAttribute("data-ps-id", e) : t.dataset.psId = e
        }

        function l(t) {
            "undefined" == typeof t.dataset ? t.removeAttribute("data-ps-id") : delete t.dataset.psId
        }
        var s = t("../lib/dom"),
            a = t("./default-setting"),
            c = t("../lib/event-manager"),
            u = t("../lib/guid"),
            d = t("../lib/helper"),
            p = {};
        n.add = function(t) {
            var e = u();
            return i(t, e), p[e] = new r(t), p[e]
        }, n.remove = function(t) {
            delete p[o(t)], l(t)
        }, n.get = function(t) {
            return p[o(t)]
        }
    }, {
        "../lib/dom": 3,
        "../lib/event-manager": 4,
        "../lib/guid": 5,
        "../lib/helper": 6,
        "./default-setting": 8
    }],
    19: [function(t, e, n) {
        "use strict";

        function r(t, e) {
            return t.settings.minScrollbarLength && (e = Math.max(e, t.settings.minScrollbarLength)), t.settings.maxScrollbarLength && (e = Math.min(e, t.settings.maxScrollbarLength)), e
        }

        function o(t, e) {
            var n = {
                width: e.railXWidth
            };
            e.isRtl ? n.left = e.negativeScrollAdjustment + t.scrollLeft + e.containerWidth - e.contentWidth : n.left = t.scrollLeft, e.isScrollbarXUsingBottom ? n.bottom = e.scrollbarXBottom - t.scrollTop : n.top = e.scrollbarXTop + t.scrollTop, l.css(e.scrollbarXRail, n);
            var r = {
                top: t.scrollTop,
                height: e.railYHeight
            };
            e.isScrollbarYUsingRight ? e.isRtl ? r.right = e.contentWidth - (e.negativeScrollAdjustment + t.scrollLeft) - e.scrollbarYRight - e.scrollbarYOuterWidth : r.right = e.scrollbarYRight - t.scrollLeft : e.isRtl ? r.left = e.negativeScrollAdjustment + t.scrollLeft + 2 * e.containerWidth - e.contentWidth - e.scrollbarYLeft - e.scrollbarYOuterWidth : r.left = e.scrollbarYLeft + t.scrollLeft, l.css(e.scrollbarYRail, r), l.css(e.scrollbarX, {
                left: e.scrollbarXLeft,
                width: e.scrollbarXWidth - e.railBorderXWidth
            }), l.css(e.scrollbarY, {
                top: e.scrollbarYTop,
                height: e.scrollbarYHeight - e.railBorderYWidth
            })
        }
        var i = t("../lib/class"),
            l = t("../lib/dom"),
            s = t("../lib/helper"),
            a = t("./instances"),
            c = t("./update-scroll");
        e.exports = function(t) {
            var e = a.get(t);
            e.containerWidth = t.clientWidth, e.containerHeight = t.clientHeight, e.contentWidth = t.scrollWidth, e.contentHeight = t.scrollHeight;
            var n;
            t.contains(e.scrollbarXRail) || (n = l.queryChildren(t, ".ps-scrollbar-x-rail"), n.length > 0 && n.forEach(function(t) {
                l.remove(t)
            }), l.appendTo(e.scrollbarXRail, t)), t.contains(e.scrollbarYRail) || (n = l.queryChildren(t, ".ps-scrollbar-y-rail"), n.length > 0 && n.forEach(function(t) {
                l.remove(t)
            }), l.appendTo(e.scrollbarYRail, t)), !e.settings.suppressScrollX && e.containerWidth + e.settings.scrollXMarginOffset < e.contentWidth ? (e.scrollbarXActive = !0, e.railXWidth = e.containerWidth - e.railXMarginWidth, e.railXRatio = e.containerWidth / e.railXWidth, e.scrollbarXWidth = r(e, s.toInt(e.railXWidth * e.containerWidth / e.contentWidth)), e.scrollbarXLeft = s.toInt((e.negativeScrollAdjustment + t.scrollLeft) * (e.railXWidth - e.scrollbarXWidth) / (e.contentWidth - e.containerWidth))) : (e.scrollbarXActive = !1, e.scrollbarXWidth = 0, e.scrollbarXLeft = 0, t.scrollLeft = 0), !e.settings.suppressScrollY && e.containerHeight + e.settings.scrollYMarginOffset < e.contentHeight ? (e.scrollbarYActive = !0, e.railYHeight = e.containerHeight - e.railYMarginHeight, e.railYRatio = e.containerHeight / e.railYHeight, e.scrollbarYHeight = r(e, s.toInt(e.railYHeight * e.containerHeight / e.contentHeight)), e.scrollbarYTop = s.toInt(t.scrollTop * (e.railYHeight - e.scrollbarYHeight) / (e.contentHeight - e.containerHeight))) : (e.scrollbarYActive = !1, e.scrollbarYHeight = 0, e.scrollbarYTop = 0, c(t, "top", 0)), e.scrollbarXLeft >= e.railXWidth - e.scrollbarXWidth && (e.scrollbarXLeft = e.railXWidth - e.scrollbarXWidth), e.scrollbarYTop >= e.railYHeight - e.scrollbarYHeight && (e.scrollbarYTop = e.railYHeight - e.scrollbarYHeight), o(t, e), i[e.scrollbarXActive ? "add" : "remove"](t, "ps-active-x"), i[e.scrollbarYActive ? "add" : "remove"](t, "ps-active-y")
        }
    }, {
        "../lib/class": 2,
        "../lib/dom": 3,
        "../lib/helper": 6,
        "./instances": 18,
        "./update-scroll": 20
    }],
    20: [function(t, e, n) {
        "use strict";
        var r, o, i = t("./instances"),
            l = document.createEvent("Event"),
            s = document.createEvent("Event"),
            a = document.createEvent("Event"),
            c = document.createEvent("Event"),
            u = document.createEvent("Event"),
            d = document.createEvent("Event"),
            p = document.createEvent("Event"),
            f = document.createEvent("Event"),
            h = document.createEvent("Event"),
            v = document.createEvent("Event");
        l.initEvent("ps-scroll-up", !0, !0), s.initEvent("ps-scroll-down", !0, !0), a.initEvent("ps-scroll-left", !0, !0), c.initEvent("ps-scroll-right", !0, !0), u.initEvent("ps-scroll-y", !0, !0), d.initEvent("ps-scroll-x", !0, !0), p.initEvent("ps-x-reach-start", !0, !0), f.initEvent("ps-x-reach-end", !0, !0), h.initEvent("ps-y-reach-start", !0, !0), v.initEvent("ps-y-reach-end", !0, !0), e.exports = function(t, e, n) {
            if ("undefined" == typeof t) throw "You must provide an element to the update-scroll function";
            if ("undefined" == typeof e) throw "You must provide an axis to the update-scroll function";
            if ("undefined" == typeof n) throw "You must provide a value to the update-scroll function";
            if ("top" === e && 0 >= n) return t.scrollTop = 0, void t.dispatchEvent(h);
            if ("left" === e && 0 >= n) return t.scrollLeft = 0, void t.dispatchEvent(p);
            var b = i.get(t);
            return "top" === e && n > b.contentHeight - b.containerHeight ? (t.scrollTop = b.contentHeight - b.containerHeight, void t.dispatchEvent(v)) : "left" === e && n > b.contentWidth - b.containerWidth ? (t.scrollLeft = b.contentWidth - b.containerWidth, void t.dispatchEvent(f)) : (r || (r = t.scrollTop), o || (o = t.scrollLeft), "top" === e && r > n && t.dispatchEvent(l), "top" === e && n > r && t.dispatchEvent(s), "left" === e && o > n && t.dispatchEvent(a), "left" === e && n > o && t.dispatchEvent(c), "top" === e && (t.scrollTop = r = n, t.dispatchEvent(u)), void("left" === e && (t.scrollLeft = o = n, t.dispatchEvent(d))))
        }
    }, {
        "./instances": 18
    }],
    21: [function(t, e, n) {
        "use strict";
        var r = t("../lib/dom"),
            o = t("../lib/helper"),
            i = t("./instances"),
            l = t("./update-geometry");
        e.exports = function(t) {
            var e = i.get(t);
            e && (e.negativeScrollAdjustment = e.isNegativeScroll ? t.scrollWidth - t.clientWidth : 0, r.css(e.scrollbarXRail, "display", "block"), r.css(e.scrollbarYRail, "display", "block"), e.railXMarginWidth = o.toInt(r.css(e.scrollbarXRail, "marginLeft")) + o.toInt(r.css(e.scrollbarXRail, "marginRight")), e.railYMarginHeight = o.toInt(r.css(e.scrollbarYRail, "marginTop")) + o.toInt(r.css(e.scrollbarYRail, "marginBottom")), r.css(e.scrollbarXRail, "display", "none"), r.css(e.scrollbarYRail, "display", "none"), l(t), r.css(e.scrollbarXRail, "display", ""), r.css(e.scrollbarYRail, "display", ""))
        }
    }, {
        "../lib/dom": 3,
        "../lib/helper": 6,
        "./instances": 18,
        "./update-geometry": 19
    }]
}, {}, [1]);
/*!
 * jQuery Cookie Plugin v1.4.1
 * https://github.com/carhartl/jquery-cookie
 *
 * Copyright 2006, 2014 Klaus Hartl
 * Released under the MIT license
 */
(function(factory) {
    if (typeof define === 'function' && define.amd) {
        define(['jquery'], factory)
    } else if (typeof exports === 'object') {
        module.exports = factory(require('jquery'))
    } else {
        factory(jQuery)
    }
}(function($) {
    var pluses = /\+/g;

    function encode(s) {
        return config.raw ? s : encodeURIComponent(s)
    }

    function decode(s) {
        return config.raw ? s : decodeURIComponent(s)
    }

    function stringifyCookieValue(value) {
        return encode(config.json ? JSON.stringify(value) : String(value))
    }

    function parseCookieValue(s) {
        if (s.indexOf('"') === 0) {
            s = s.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, '\\')
        }
        try {
            s = decodeURIComponent(s.replace(pluses, ' '));
            return config.json ? JSON.parse(s) : s
        } catch (e) {}
    }

    function read(s, converter) {
        var value = config.raw ? s : parseCookieValue(s);
        return $.isFunction(converter) ? converter(value) : value
    }
    var config = $.cookie = function(key, value, options) {
        if (arguments.length > 1 && !$.isFunction(value)) {
            options = $.extend({}, config.defaults, options);
            if (typeof options.expires === 'number') {
                var days = options.expires,
                    t = options.expires = new Date();
                t.setMilliseconds(t.getMilliseconds() + days * 864e+5)
            }
            return (document.cookie = [encode(key), '=', stringifyCookieValue(value), options.expires ? '; expires=' + options.expires.toUTCString() : '', options.path ? '; path=' + options.path : '', options.domain ? '; domain=' + options.domain : '', options.secure ? '; secure' : ''].join(''))
        }
        var result = key ? undefined : {},
            cookies = document.cookie ? document.cookie.split('; ') : [],
            i = 0,
            l = cookies.length;
        for (; i < l; i++) {
            var parts = cookies[i].split('='),
                name = decode(parts.shift()),
                cookie = parts.join('=');
            if (key === name) {
                result = read(cookie, value);
                break
            }
            if (!key && (cookie = read(cookie)) !== undefined) {
                result[name] = cookie
            }
        }
        return result
    };
    config.defaults = {};
    $.removeCookie = function(key, options) {
        $.cookie(key, '', $.extend({}, options, {
            expires: -1
        }));
        return !$.cookie(key)
    }
}));
! function(a, b, c, d) {
    function e(b, c) {
        this.settings = null, this.options = a.extend({}, e.Defaults, c), this.$element = a(b), this._handlers = {}, this._plugins = {}, this._supress = {}, this._current = null, this._speed = null, this._coordinates = [], this._breakpoint = null, this._width = null, this._items = [], this._clones = [], this._mergers = [], this._widths = [], this._invalidated = {}, this._pipe = [], this._drag = {
            time: null,
            target: null,
            pointer: null,
            stage: {
                start: null,
                current: null
            },
            direction: null
        }, this._states = {
            current: {},
            tags: {
                initializing: ["busy"],
                animating: ["busy"],
                dragging: ["interacting"]
            }
        }, a.each(["onResize", "onThrottledResize"], a.proxy(function(b, c) {
            this._handlers[c] = a.proxy(this[c], this)
        }, this)), a.each(e.Plugins, a.proxy(function(a, b) {
            this._plugins[a.charAt(0).toLowerCase() + a.slice(1)] = new b(this)
        }, this)), a.each(e.Workers, a.proxy(function(b, c) {
            this._pipe.push({
                filter: c.filter,
                run: a.proxy(c.run, this)
            })
        }, this)), this.setup(), this.initialize()
    }
    e.Defaults = {
        items: 3,
        loop: !1,
        center: !1,
        rewind: !1,
        mouseDrag: !0,
        touchDrag: !0,
        pullDrag: !0,
        freeDrag: !1,
        margin: 0,
        stagePadding: 0,
        merge: !1,
        mergeFit: !0,
        autoWidth: !1,
        startPosition: 0,
        rtl: !1,
        smartSpeed: 250,
        fluidSpeed: !1,
        dragEndSpeed: !1,
        responsive: {},
        responsiveRefreshRate: 200,
        responsiveBaseElement: b,
        fallbackEasing: "swing",
        info: !1,
        nestedItemSelector: !1,
        itemElement: "div",
        stageElement: "div",
        refreshClass: "owl-refresh",
        loadedClass: "owl-loaded",
        loadingClass: "owl-loading",
        rtlClass: "owl-rtl",
        responsiveClass: "owl-responsive",
        dragClass: "owl-drag",
        itemClass: "owl-item",
        stageClass: "owl-stage",
        stageOuterClass: "owl-stage-outer",
        grabClass: "owl-grab"
    }, e.Width = {
        Default: "default",
        Inner: "inner",
        Outer: "outer"
    }, e.Type = {
        Event: "event",
        State: "state"
    }, e.Plugins = {}, e.Workers = [{
        filter: ["width", "settings"],
        run: function() {
            this._width = this.$element.width()
        }
    }, {
        filter: ["width", "items", "settings"],
        run: function(a) {
            a.current = this._items && this._items[this.relative(this._current)]
        }
    }, {
        filter: ["items", "settings"],
        run: function() {
            this.$stage.children(".cloned").remove()
        }
    }, {
        filter: ["width", "items", "settings"],
        run: function(a) {
            var b = this.settings.margin || "",
                c = !this.settings.autoWidth,
                d = this.settings.rtl,
                e = {
                    width: "auto",
                    "margin-left": d ? b : "",
                    "margin-right": d ? "" : b
                };
            !c && this.$stage.children().css(e), a.css = e
        }
    }, {
        filter: ["width", "items", "settings"],
        run: function(a) {
            var b = (this.width() / this.settings.items).toFixed(3) - this.settings.margin,
                c = null,
                d = this._items.length,
                e = !this.settings.autoWidth,
                f = [];
            for (a.items = {
                    merge: !1,
                    width: b
                }; d--;) c = this._mergers[d], c = this.settings.mergeFit && Math.min(c, this.settings.items) || c, a.items.merge = c > 1 || a.items.merge, f[d] = e ? b * c : this._items[d].width();
            this._widths = f
        }
    }, {
        filter: ["items", "settings"],
        run: function() {
            var b = [],
                c = this._items,
                d = this.settings,
                e = Math.max(2 * d.items, 4),
                f = 2 * Math.ceil(c.length / 2),
                g = d.loop && c.length ? d.rewind ? e : Math.max(e, f) : 0,
                h = "",
                i = "";
            for (g /= 2; g--;) b.push(this.normalize(b.length / 2, !0)), h += c[b[b.length - 1]][0].outerHTML, b.push(this.normalize(c.length - 1 - (b.length - 1) / 2, !0)), i = c[b[b.length - 1]][0].outerHTML + i;
            this._clones = b, a(h).addClass("cloned").appendTo(this.$stage), a(i).addClass("cloned").prependTo(this.$stage)
        }
    }, {
        filter: ["width", "items", "settings"],
        run: function() {
            for (var a = this.settings.rtl ? 1 : -1, b = this._clones.length + this._items.length, c = -1, d = 0, e = 0, f = []; ++c < b;) d = f[c - 1] || 0, e = this._widths[this.relative(c)] + this.settings.margin, f.push(d + e * a);
            this._coordinates = f
        }
    }, {
        filter: ["width", "items", "settings"],
        run: function() {
            var a = this.settings.stagePadding,
                b = this._coordinates,
                c = {
                    width: Math.ceil(Math.abs(b[b.length - 1])) + 2 * a,
                    "padding-left": a || "",
                    "padding-right": a || ""
                };
            this.$stage.css(c)
        }
    }, {
        filter: ["width", "items", "settings"],
        run: function(a) {
            var b = this._coordinates.length,
                c = !this.settings.autoWidth,
                d = this.$stage.children();
            if (c && a.items.merge)
                for (; b--;) a.css.width = this._widths[this.relative(b)], d.eq(b).css(a.css);
            else c && (a.css.width = a.items.width, d.css(a.css))
        }
    }, {
        filter: ["items"],
        run: function() {
            this._coordinates.length < 1 && this.$stage.removeAttr("style")
        }
    }, {
        filter: ["width", "items", "settings"],
        run: function(a) {
            a.current = a.current ? this.$stage.children().index(a.current) : 0, a.current = Math.max(this.minimum(), Math.min(this.maximum(), a.current)), this.reset(a.current)
        }
    }, {
        filter: ["position"],
        run: function() {
            this.animate(this.coordinates(this._current))
        }
    }, {
        filter: ["width", "position", "items", "settings"],
        run: function() {
            var a, b, c, d, e = this.settings.rtl ? 1 : -1,
                f = 2 * this.settings.stagePadding,
                g = this.coordinates(this.current()) + f,
                h = g + this.width() * e,
                i = [];
            for (c = 0, d = this._coordinates.length; d > c; c++) a = this._coordinates[c - 1] || 0, b = Math.abs(this._coordinates[c]) + f * e, (this.op(a, "<=", g) && this.op(a, ">", h) || this.op(b, "<", g) && this.op(b, ">", h)) && i.push(c);
            this.$stage.children(".active").removeClass("active"), this.$stage.children(":eq(" + i.join("), :eq(") + ")").addClass("active"), this.settings.center && (this.$stage.children(".center").removeClass("center"), this.$stage.children().eq(this.current()).addClass("center"))
        }
    }], e.prototype.initialize = function() {
        if (this.enter("initializing"), this.trigger("initialize"), this.$element.toggleClass(this.settings.rtlClass, this.settings.rtl), this.settings.autoWidth && !this.is("pre-loading")) {
            var b, c, e;
            b = this.$element.find("img"), c = this.settings.nestedItemSelector ? "." + this.settings.nestedItemSelector : d, e = this.$element.children(c).width(), b.length && 0 >= e && this.preloadAutoWidthImages(b)
        }
        this.$element.addClass(this.options.loadingClass), this.$stage = a("<" + this.settings.stageElement + ' class="' + this.settings.stageClass + '"/>').wrap('<div class="' + this.settings.stageOuterClass + '"/>'), this.$element.append(this.$stage.parent()), this.replace(this.$element.children().not(this.$stage.parent())), this.$element.is(":visible") ? this.refresh() : this.invalidate("width"), this.$element.removeClass(this.options.loadingClass).addClass(this.options.loadedClass), this.registerEventHandlers(), this.leave("initializing"), this.trigger("initialized")
    }, e.prototype.setup = function() {
        var b = this.viewport(),
            c = this.options.responsive,
            d = -1,
            e = null;
        c ? (a.each(c, function(a) {
            b >= a && a > d && (d = Number(a))
        }), e = a.extend({}, this.options, c[d]), delete e.responsive, e.responsiveClass && this.$element.attr("class", this.$element.attr("class").replace(new RegExp("(" + this.options.responsiveClass + "-)\\S+\\s", "g"), "$1" + d))) : e = a.extend({}, this.options), (null === this.settings || this._breakpoint !== d) && (this.trigger("change", {
            property: {
                name: "settings",
                value: e
            }
        }), this._breakpoint = d, this.settings = e, this.invalidate("settings"), this.trigger("changed", {
            property: {
                name: "settings",
                value: this.settings
            }
        }))
    }, e.prototype.optionsLogic = function() {
        this.settings.autoWidth && (this.settings.stagePadding = !1, this.settings.merge = !1)
    }, e.prototype.prepare = function(b) {
        var c = this.trigger("prepare", {
            content: b
        });
        return c.data || (c.data = a("<" + this.settings.itemElement + "/>").addClass(this.options.itemClass).append(b)), this.trigger("prepared", {
            content: c.data
        }), c.data
    }, e.prototype.update = function() {
        for (var b = 0, c = this._pipe.length, d = a.proxy(function(a) {
                return this[a]
            }, this._invalidated), e = {}; c > b;)(this._invalidated.all || a.grep(this._pipe[b].filter, d).length > 0) && this._pipe[b].run(e), b++;
        this._invalidated = {}, !this.is("valid") && this.enter("valid")
    }, e.prototype.width = function(a) {
        switch (a = a || e.Width.Default) {
            case e.Width.Inner:
            case e.Width.Outer:
                return this._width;
            default:
                return this._width - 2 * this.settings.stagePadding + this.settings.margin
        }
    }, e.prototype.refresh = function() {
        this.enter("refreshing"), this.trigger("refresh"), this.setup(), this.optionsLogic(), this.$element.addClass(this.options.refreshClass), this.update(), this.$element.removeClass(this.options.refreshClass), this.leave("refreshing"), this.trigger("refreshed")
    }, e.prototype.onThrottledResize = function() {
        b.clearTimeout(this.resizeTimer), this.resizeTimer = b.setTimeout(this._handlers.onResize, this.settings.responsiveRefreshRate)
    }, e.prototype.onResize = function() {
        return this._items.length ? this._width === this.$element.width() ? !1 : this.$element.is(":visible") ? (this.enter("resizing"), this.trigger("resize").isDefaultPrevented() ? (this.leave("resizing"), !1) : (this.invalidate("width"), this.refresh(), this.leave("resizing"), void this.trigger("resized"))) : !1 : !1
    }, e.prototype.registerEventHandlers = function() {
        a.support.transition && this.$stage.on(a.support.transition.end + ".owl.core", a.proxy(this.onTransitionEnd, this)), this.settings.responsive !== !1 && this.on(b, "resize", this._handlers.onThrottledResize), this.settings.mouseDrag && (this.$element.addClass(this.options.dragClass), this.$stage.on("mousedown.owl.core", a.proxy(this.onDragStart, this)), this.$stage.on("dragstart.owl.core selectstart.owl.core", function() {
            return !1
        })), this.settings.touchDrag && (this.$stage.on("touchstart.owl.core", a.proxy(this.onDragStart, this)), this.$stage.on("touchcancel.owl.core", a.proxy(this.onDragEnd, this)))
    }, e.prototype.onDragStart = function(b) {
        var d = null;
        3 !== b.which && (a.support.transform ? (d = this.$stage.css("transform").replace(/.*\(|\)| /g, "").split(","), d = {
            x: d[16 === d.length ? 12 : 4],
            y: d[16 === d.length ? 13 : 5]
        }) : (d = this.$stage.position(), d = {
            x: this.settings.rtl ? d.left + this.$stage.width() - this.width() + this.settings.margin : d.left,
            y: d.top
        }), this.is("animating") && (a.support.transform ? this.animate(d.x) : this.$stage.stop(), this.invalidate("position")), this.$element.toggleClass(this.options.grabClass, "mousedown" === b.type), this.speed(0), this._drag.time = (new Date).getTime(), this._drag.target = a(b.target), this._drag.stage.start = d, this._drag.stage.current = d, this._drag.pointer = this.pointer(b), a(c).on("mouseup.owl.core touchend.owl.core", a.proxy(this.onDragEnd, this)), a(c).one("mousemove.owl.core touchmove.owl.core", a.proxy(function(b) {
            var d = this.difference(this._drag.pointer, this.pointer(b));
            a(c).on("mousemove.owl.core touchmove.owl.core", a.proxy(this.onDragMove, this)), Math.abs(d.x) < Math.abs(d.y) && this.is("valid") || (b.preventDefault(), this.enter("dragging"), this.trigger("drag"))
        }, this)))
    }, e.prototype.onDragMove = function(a) {
        var b = null,
            c = null,
            d = null,
            e = this.difference(this._drag.pointer, this.pointer(a)),
            f = this.difference(this._drag.stage.start, e);
        this.is("dragging") && (a.preventDefault(), this.settings.loop ? (b = this.coordinates(this.minimum()), c = this.coordinates(this.maximum() + 1) - b, f.x = ((f.x - b) % c + c) % c + b) : (b = this.coordinates(this.settings.rtl ? this.maximum() : this.minimum()), c = this.coordinates(this.settings.rtl ? this.minimum() : this.maximum()), d = this.settings.pullDrag ? -1 * e.x / 5 : 0, f.x = Math.max(Math.min(f.x, b + d), c + d)), this._drag.stage.current = f, this.animate(f.x))
    }, e.prototype.onDragEnd = function(b) {
        var d = this.difference(this._drag.pointer, this.pointer(b)),
            e = this._drag.stage.current,
            f = d.x > 0 ^ this.settings.rtl ? "left" : "right";
        a(c).off(".owl.core"), this.$element.removeClass(this.options.grabClass), (0 !== d.x && this.is("dragging") || !this.is("valid")) && (this.speed(this.settings.dragEndSpeed || this.settings.smartSpeed), this.current(this.closest(e.x, 0 !== d.x ? f : this._drag.direction)), this.invalidate("position"), this.update(), this._drag.direction = f, (Math.abs(d.x) > 3 || (new Date).getTime() - this._drag.time > 300) && this._drag.target.one("click.owl.core", function() {
            return !1
        })), this.is("dragging") && (this.leave("dragging"), this.trigger("dragged"))
    }, e.prototype.closest = function(b, c) {
        var d = -1,
            e = 30,
            f = this.width(),
            g = this.coordinates();
        return this.settings.freeDrag || a.each(g, a.proxy(function(a, h) {
            return b > h - e && h + e > b ? d = a : this.op(b, "<", h) && this.op(b, ">", g[a + 1] || h - f) && (d = "left" === c ? a + 1 : a), -1 === d
        }, this)), this.settings.loop || (this.op(b, ">", g[this.minimum()]) ? d = b = this.minimum() : this.op(b, "<", g[this.maximum()]) && (d = b = this.maximum())), d
    }, e.prototype.animate = function(b) {
        var c = this.speed() > 0;
        this.is("animating") && this.onTransitionEnd(), c && (this.enter("animating"), this.trigger("translate")), a.support.transform3d && a.support.transition ? this.$stage.css({
            transform: "translate3d(" + b + "px,0px,0px)",
            transition: this.speed() / 1e3 + "s"
        }) : c ? this.$stage.animate({
            left: b + "px"
        }, this.speed(), this.settings.fallbackEasing, a.proxy(this.onTransitionEnd, this)) : this.$stage.css({
            left: b + "px"
        })
    }, e.prototype.is = function(a) {
        return this._states.current[a] && this._states.current[a] > 0
    }, e.prototype.current = function(a) {
        if (a === d) return this._current;
        if (0 === this._items.length) return d;
        if (a = this.normalize(a), this._current !== a) {
            var b = this.trigger("change", {
                property: {
                    name: "position",
                    value: a
                }
            });
            b.data !== d && (a = this.normalize(b.data)), this._current = a, this.invalidate("position"), this.trigger("changed", {
                property: {
                    name: "position",
                    value: this._current
                }
            })
        }
        return this._current
    }, e.prototype.invalidate = function(b) {
        return "string" === a.type(b) && (this._invalidated[b] = !0, this.is("valid") && this.leave("valid")), a.map(this._invalidated, function(a, b) {
            return b
        })
    }, e.prototype.reset = function(a) {
        a = this.normalize(a), a !== d && (this._speed = 0, this._current = a, this.suppress(["translate", "translated"]), this.animate(this.coordinates(a)), this.release(["translate", "translated"]))
    }, e.prototype.normalize = function(b, c) {
        var e = this._items.length,
            f = c ? 0 : this._clones.length;
        return !a.isNumeric(b) || 1 > e ? b = d : (0 > b || b >= e + f) && (b = ((b - f / 2) % e + e) % e + f / 2), b
    }, e.prototype.relative = function(a) {
        return a -= this._clones.length / 2, this.normalize(a, !0)
    }, e.prototype.maximum = function(a) {
        var b, c = this.settings,
            d = this._coordinates.length,
            e = Math.abs(this._coordinates[d - 1]) - this._width,
            f = -1;
        if (c.loop) d = this._clones.length / 2 + this._items.length - 1;
        else if (c.autoWidth || c.merge)
            for (; d - f > 1;) Math.abs(this._coordinates[b = d + f >> 1]) < e ? f = b : d = b;
        else d = c.center ? this._items.length - 1 : this._items.length - c.items;
        return a && (d -= this._clones.length / 2), Math.max(d, 0)
    }, e.prototype.minimum = function(a) {
        return a ? 0 : this._clones.length / 2
    }, e.prototype.items = function(a) {
        return a === d ? this._items.slice() : (a = this.normalize(a, !0), this._items[a])
    }, e.prototype.mergers = function(a) {
        return a === d ? this._mergers.slice() : (a = this.normalize(a, !0), this._mergers[a])
    }, e.prototype.clones = function(b) {
        var c = this._clones.length / 2,
            e = c + this._items.length,
            f = function(a) {
                return a % 2 === 0 ? e + a / 2 : c - (a + 1) / 2
            };
        return b === d ? a.map(this._clones, function(a, b) {
            return f(b)
        }) : a.map(this._clones, function(a, c) {
            return a === b ? f(c) : null
        })
    }, e.prototype.speed = function(a) {
        return a !== d && (this._speed = a), this._speed
    }, e.prototype.coordinates = function(b) {
        var c = null;
        return b === d ? a.map(this._coordinates, a.proxy(function(a, b) {
            return this.coordinates(b)
        }, this)) : (this.settings.center ? (c = this._coordinates[b], c += (this.width() - c + (this._coordinates[b - 1] || 0)) / 2 * (this.settings.rtl ? -1 : 1)) : c = this._coordinates[b - 1] || 0, c)
    }, e.prototype.duration = function(a, b, c) {
        return Math.min(Math.max(Math.abs(b - a), 1), 6) * Math.abs(c || this.settings.smartSpeed)
    }, e.prototype.to = function(a, b) {
        var c = this.current(),
            d = null,
            e = a - this.relative(c),
            f = (e > 0) - (0 > e),
            g = this._items.length,
            h = this.minimum(),
            i = this.maximum();
        this.settings.loop ? (!this.settings.rewind && Math.abs(e) > g / 2 && (e += -1 * f * g), a = c + e, d = ((a - h) % g + g) % g + h, d !== a && i >= d - e && d - e > 0 && (c = d - e, a = d, this.reset(c))) : this.settings.rewind ? (i += 1, a = (a % i + i) % i) : a = Math.max(h, Math.min(i, a)), this.speed(this.duration(c, a, b)), this.current(a), this.$element.is(":visible") && this.update()
    }, e.prototype.next = function(a) {
        a = a || !1, this.to(this.relative(this.current()) + 1, a)
    }, e.prototype.prev = function(a) {
        a = a || !1, this.to(this.relative(this.current()) - 1, a)
    }, e.prototype.onTransitionEnd = function(a) {
        return a !== d && (a.stopPropagation(), (a.target || a.srcElement || a.originalTarget) !== this.$stage.get(0)) ? !1 : (this.leave("animating"), void this.trigger("translated"))
    }, e.prototype.viewport = function() {
        var d;
        if (this.options.responsiveBaseElement !== b) d = a(this.options.responsiveBaseElement).width();
        else if (b.innerWidth) d = b.innerWidth;
        else {
            if (!c.documentElement || !c.documentElement.clientWidth) throw "Can not detect viewport width.";
            d = c.documentElement.clientWidth
        }
        return d
    }, e.prototype.replace = function(b) {
        this.$stage.empty(), this._items = [], b && (b = b instanceof jQuery ? b : a(b)), this.settings.nestedItemSelector && (b = b.find("." + this.settings.nestedItemSelector)), b.filter(function() {
            return 1 === this.nodeType
        }).each(a.proxy(function(a, b) {
            b = this.prepare(b), this.$stage.append(b), this._items.push(b), this._mergers.push(1 * b.find("[data-merge]").andSelf("[data-merge]").attr("data-merge") || 1)
        }, this)), this.reset(a.isNumeric(this.settings.startPosition) ? this.settings.startPosition : 0), this.invalidate("items")
    }, e.prototype.add = function(b, c) {
        var e = this.relative(this._current);
        c = c === d ? this._items.length : this.normalize(c, !0), b = b instanceof jQuery ? b : a(b), this.trigger("add", {
            content: b,
            position: c
        }), b = this.prepare(b), 0 === this._items.length || c === this._items.length ? (0 === this._items.length && this.$stage.append(b), 0 !== this._items.length && this._items[c - 1].after(b), this._items.push(b), this._mergers.push(1 * b.find("[data-merge]").andSelf("[data-merge]").attr("data-merge") || 1)) : (this._items[c].before(b), this._items.splice(c, 0, b), this._mergers.splice(c, 0, 1 * b.find("[data-merge]").andSelf("[data-merge]").attr("data-merge") || 1)), this._items[e] && this.reset(this._items[e].index()), this.invalidate("items"), this.trigger("added", {
            content: b,
            position: c
        })
    }, e.prototype.remove = function(a) {
        a = this.normalize(a, !0), a !== d && (this.trigger("remove", {
            content: this._items[a],
            position: a
        }), this._items[a].remove(), this._items.splice(a, 1), this._mergers.splice(a, 1), this.invalidate("items"), this.trigger("removed", {
            content: null,
            position: a
        }))
    }, e.prototype.preloadAutoWidthImages = function(b) {
        b.each(a.proxy(function(b, c) {
            this.enter("pre-loading"), c = a(c), a(new Image).one("load", a.proxy(function(a) {
                c.attr("src", a.target.src), c.css("opacity", 1), this.leave("pre-loading"), !this.is("pre-loading") && !this.is("initializing") && this.refresh()
            }, this)).attr("src", c.attr("src") || c.attr("data-src") || c.attr("data-src-retina"))
        }, this))
    }, e.prototype.destroy = function() {
        this.$element.off(".owl.core"), this.$stage.off(".owl.core"), a(c).off(".owl.core"), this.settings.responsive !== !1 && (b.clearTimeout(this.resizeTimer), this.off(b, "resize", this._handlers.onThrottledResize));
        for (var d in this._plugins) this._plugins[d].destroy();
        this.$stage.children(".cloned").remove(), this.$stage.unwrap(), this.$stage.children().contents().unwrap(), this.$stage.children().unwrap(), this.$element.removeClass(this.options.refreshClass).removeClass(this.options.loadingClass).removeClass(this.options.loadedClass).removeClass(this.options.rtlClass).removeClass(this.options.dragClass).removeClass(this.options.grabClass).attr("class", this.$element.attr("class").replace(new RegExp(this.options.responsiveClass + "-\\S+\\s", "g"), "")).removeData("owl.carousel")
    }, e.prototype.op = function(a, b, c) {
        var d = this.settings.rtl;
        switch (b) {
            case "<":
                return d ? a > c : c > a;
            case ">":
                return d ? c > a : a > c;
            case ">=":
                return d ? c >= a : a >= c;
            case "<=":
                return d ? a >= c : c >= a
        }
    }, e.prototype.on = function(a, b, c, d) {
        a.addEventListener ? a.addEventListener(b, c, d) : a.attachEvent && a.attachEvent("on" + b, c)
    }, e.prototype.off = function(a, b, c, d) {
        a.removeEventListener ? a.removeEventListener(b, c, d) : a.detachEvent && a.detachEvent("on" + b, c)
    }, e.prototype.trigger = function(b, c, d, f, g) {
        var h = {
                item: {
                    count: this._items.length,
                    index: this.current()
                }
            },
            i = a.camelCase(a.grep(["on", b, d], function(a) {
                return a
            }).join("-").toLowerCase()),
            j = a.Event([b, "owl", d || "carousel"].join(".").toLowerCase(), a.extend({
                relatedTarget: this
            }, h, c));
        return this._supress[b] || (a.each(this._plugins, function(a, b) {
            b.onTrigger && b.onTrigger(j)
        }), this.register({
            type: e.Type.Event,
            name: b
        }), this.$element.trigger(j), this.settings && "function" == typeof this.settings[i] && this.settings[i].call(this, j)), j
    }, e.prototype.enter = function(b) {
        a.each([b].concat(this._states.tags[b] || []), a.proxy(function(a, b) {
            this._states.current[b] === d && (this._states.current[b] = 0), this._states.current[b]++
        }, this))
    }, e.prototype.leave = function(b) {
        a.each([b].concat(this._states.tags[b] || []), a.proxy(function(a, b) {
            this._states.current[b]--
        }, this))
    }, e.prototype.register = function(b) {
        if (b.type === e.Type.Event) {
            if (a.event.special[b.name] || (a.event.special[b.name] = {}), !a.event.special[b.name].owl) {
                var c = a.event.special[b.name]._default;
                a.event.special[b.name]._default = function(a) {
                    return !c || !c.apply || a.namespace && -1 !== a.namespace.indexOf("owl") ? a.namespace && a.namespace.indexOf("owl") > -1 : c.apply(this, arguments)
                }, a.event.special[b.name].owl = !0
            }
        } else b.type === e.Type.State && (this._states.tags[b.name] ? this._states.tags[b.name] = this._states.tags[b.name].concat(b.tags) : this._states.tags[b.name] = b.tags, this._states.tags[b.name] = a.grep(this._states.tags[b.name], a.proxy(function(c, d) {
            return a.inArray(c, this._states.tags[b.name]) === d
        }, this)))
    }, e.prototype.suppress = function(b) {
        a.each(b, a.proxy(function(a, b) {
            this._supress[b] = !0
        }, this))
    }, e.prototype.release = function(b) {
        a.each(b, a.proxy(function(a, b) {
            delete this._supress[b]
        }, this))
    }, e.prototype.pointer = function(a) {
        var c = {
            x: null,
            y: null
        };
        return a = a.originalEvent || a || b.event, a = a.touches && a.touches.length ? a.touches[0] : a.changedTouches && a.changedTouches.length ? a.changedTouches[0] : a, a.pageX ? (c.x = a.pageX, c.y = a.pageY) : (c.x = a.clientX, c.y = a.clientY), c
    }, e.prototype.difference = function(a, b) {
        return {
            x: a.x - b.x,
            y: a.y - b.y
        }
    }, a.fn.owlCarousel = function(b) {
        var c = Array.prototype.slice.call(arguments, 1);
        return this.each(function() {
            var d = a(this),
                f = d.data("owl.carousel");
            f || (f = new e(this, "object" == typeof b && b), d.data("owl.carousel", f), a.each(["next", "prev", "to", "destroy", "refresh", "replace", "add", "remove"], function(b, c) {
                f.register({
                    type: e.Type.Event,
                    name: c
                }), f.$element.on(c + ".owl.carousel.core", a.proxy(function(a) {
                    a.namespace && a.relatedTarget !== this && (this.suppress([c]), f[c].apply(this, [].slice.call(arguments, 1)), this.release([c]))
                }, f))
            })), "string" == typeof b && "_" !== b.charAt(0) && f[b].apply(f, c)
        })
    }, a.fn.owlCarousel.Constructor = e
}(window.Zepto || window.jQuery, window, document),
function(a, b, c, d) {
    var e = function(b) {
        this._core = b, this._interval = null, this._visible = null, this._handlers = {
            "initialized.owl.carousel": a.proxy(function(a) {
                a.namespace && this._core.settings.autoRefresh && this.watch()
            }, this)
        }, this._core.options = a.extend({}, e.Defaults, this._core.options), this._core.$element.on(this._handlers)
    };
    e.Defaults = {
        autoRefresh: !0,
        autoRefreshInterval: 500
    }, e.prototype.watch = function() {
        this._interval || (this._visible = this._core.$element.is(":visible"), this._interval = b.setInterval(a.proxy(this.refresh, this), this._core.settings.autoRefreshInterval))
    }, e.prototype.refresh = function() {
        this._core.$element.is(":visible") !== this._visible && (this._visible = !this._visible, this._core.$element.toggleClass("owl-hidden", !this._visible), this._visible && this._core.invalidate("width") && this._core.refresh())
    }, e.prototype.destroy = function() {
        var a, c;
        b.clearInterval(this._interval);
        for (a in this._handlers) this._core.$element.off(a, this._handlers[a]);
        for (c in Object.getOwnPropertyNames(this)) "function" != typeof this[c] && (this[c] = null)
    }, a.fn.owlCarousel.Constructor.Plugins.AutoRefresh = e
}(window.Zepto || window.jQuery, window, document),
function(a, b, c, d) {
    var e = function(b) {
        this._core = b, this._loaded = [], this._handlers = {
            "initialized.owl.carousel change.owl.carousel": a.proxy(function(b) {
                if (b.namespace && this._core.settings && this._core.settings.lazyLoad && (b.property && "position" == b.property.name || "initialized" == b.type))
                    for (var c = this._core.settings, d = c.center && Math.ceil(c.items / 2) || c.items, e = c.center && -1 * d || 0, f = (b.property && b.property.value || this._core.current()) + e, g = this._core.clones().length, h = a.proxy(function(a, b) {
                            this.load(b)
                        }, this); e++ < d;) this.load(g / 2 + this._core.relative(f)), g && a.each(this._core.clones(this._core.relative(f)), h), f++
            }, this)
        }, this._core.options = a.extend({}, e.Defaults, this._core.options), this._core.$element.on(this._handlers)
    };
    e.Defaults = {
        lazyLoad: !1
    }, e.prototype.load = function(c) {
        var d = this._core.$stage.children().eq(c),
            e = d && d.find(".owl-lazy");
        !e || a.inArray(d.get(0), this._loaded) > -1 || (e.each(a.proxy(function(c, d) {
            var e, f = a(d),
                g = b.devicePixelRatio > 1 && f.attr("data-src-retina") || f.attr("data-src");
            this._core.trigger("load", {
                element: f,
                url: g
            }, "lazy"), f.is("img") ? f.one("load.owl.lazy", a.proxy(function() {
                f.css("opacity", 1), this._core.trigger("loaded", {
                    element: f,
                    url: g
                }, "lazy")
            }, this)).attr("src", g) : (e = new Image, e.onload = a.proxy(function() {
                f.css({
                    "background-image": "url(" + g + ")",
                    opacity: "1"
                }), this._core.trigger("loaded", {
                    element: f,
                    url: g
                }, "lazy")
            }, this), e.src = g)
        }, this)), this._loaded.push(d.get(0)))
    }, e.prototype.destroy = function() {
        var a, b;
        for (a in this.handlers) this._core.$element.off(a, this.handlers[a]);
        for (b in Object.getOwnPropertyNames(this)) "function" != typeof this[b] && (this[b] = null)
    }, a.fn.owlCarousel.Constructor.Plugins.Lazy = e
}(window.Zepto || window.jQuery, window, document),
function(a, b, c, d) {
    var e = function(b) {
        this._core = b, this._handlers = {
            "initialized.owl.carousel refreshed.owl.carousel": a.proxy(function(a) {
                a.namespace && this._core.settings.autoHeight && this.update()
            }, this),
            "changed.owl.carousel": a.proxy(function(a) {
                a.namespace && this._core.settings.autoHeight && "position" == a.property.name && this.update()
            }, this),
            "loaded.owl.lazy": a.proxy(function(a) {
                a.namespace && this._core.settings.autoHeight && a.element.closest("." + this._core.settings.itemClass).index() === this._core.current() && this.update()
            }, this)
        }, this._core.options = a.extend({}, e.Defaults, this._core.options), this._core.$element.on(this._handlers)
    };
    e.Defaults = {
        autoHeight: !1,
        autoHeightClass: "owl-height"
    }, e.prototype.update = function() {
        var b = this._core._current,
            c = b + this._core.settings.items,
            d = this._core.$stage.children().toArray().slice(b, c);
        heights = [], maxheight = 0, a.each(d, function(b, c) {
            heights.push(a(c).height())
        }), maxheight = Math.max.apply(null, heights), this._core.$stage.parent().height(maxheight).addClass(this._core.settings.autoHeightClass)
    }, e.prototype.destroy = function() {
        var a, b;
        for (a in this._handlers) this._core.$element.off(a, this._handlers[a]);
        for (b in Object.getOwnPropertyNames(this)) "function" != typeof this[b] && (this[b] = null)
    }, a.fn.owlCarousel.Constructor.Plugins.AutoHeight = e
}(window.Zepto || window.jQuery, window, document),
function(a, b, c, d) {
    var e = function(b) {
        this._core = b, this._videos = {}, this._playing = null, this._handlers = {
            "initialized.owl.carousel": a.proxy(function(a) {
                a.namespace && this._core.register({
                    type: "state",
                    name: "playing",
                    tags: ["interacting"]
                })
            }, this),
            "resize.owl.carousel": a.proxy(function(a) {
                a.namespace && this._core.settings.video && this.isInFullScreen() && a.preventDefault()
            }, this),
            "refreshed.owl.carousel": a.proxy(function(a) {
                a.namespace && this._core.is("resizing") && this._core.$stage.find(".cloned .owl-video-frame").remove()
            }, this),
            "changed.owl.carousel": a.proxy(function(a) {
                a.namespace && "position" === a.property.name && this._playing && this.stop()
            }, this),
            "prepared.owl.carousel": a.proxy(function(b) {
                if (b.namespace) {
                    var c = a(b.content).find(".owl-video");
                    c.length && (c.css("display", "none"), this.fetch(c, a(b.content)))
                }
            }, this)
        }, this._core.options = a.extend({}, e.Defaults, this._core.options), this._core.$element.on(this._handlers), this._core.$element.on("click.owl.video", ".owl-video-play-icon", a.proxy(function(a) {
            this.play(a)
        }, this))
    };
    e.Defaults = {
        video: !1,
        videoHeight: !1,
        videoWidth: !1
    }, e.prototype.fetch = function(a, b) {
        var c = a.attr("data-vimeo-id") ? "vimeo" : "youtube",
            d = a.attr("data-vimeo-id") || a.attr("data-youtube-id"),
            e = a.attr("data-width") || this._core.settings.videoWidth,
            f = a.attr("data-height") || this._core.settings.videoHeight,
            g = a.attr("href");
        if (!g) throw new Error("Missing video URL.");
        if (d = g.match(/(http:|https:|)\/\/(player.|www.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com))\/(video\/|embed\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/), d[3].indexOf("youtu") > -1) c = "youtube";
        else {
            if (!(d[3].indexOf("vimeo") > -1)) throw new Error("Video URL not supported.");
            c = "vimeo"
        }
        d = d[6], this._videos[g] = {
            type: c,
            id: d,
            width: e,
            height: f
        }, b.attr("data-video", g), this.thumbnail(a, this._videos[g])
    }, e.prototype.thumbnail = function(b, c) {
        var d, e, f, g = c.width && c.height ? 'style="width:' + c.width + "px;height:" + c.height + 'px;"' : "",
            h = b.find("img"),
            i = "src",
            j = "",
            k = this._core.settings,
            l = function(a) {
                e = '<div class="owl-video-play-icon"></div>', d = k.lazyLoad ? '<div class="owl-video-tn ' + j + '" ' + i + '="' + a + '"></div>' : '<div class="owl-video-tn" style="opacity:1;background-image:url(' + a + ')"></div>', b.after(d), b.after(e)
            };
        return b.wrap('<div class="owl-video-wrapper"' + g + "></div>"), this._core.settings.lazyLoad && (i = "data-src", j = "owl-lazy"), h.length ? (l(h.attr(i)), h.remove(), !1) : void("youtube" === c.type ? (f = "http://img.youtube.com/vi/" + c.id + "/hqdefault.jpg", l(f)) : "vimeo" === c.type && a.ajax({
            type: "GET",
            url: "http://vimeo.com/api/v2/video/" + c.id + ".json",
            jsonp: "callback",
            dataType: "jsonp",
            success: function(a) {
                f = a[0].thumbnail_large, l(f)
            }
        }))
    }, e.prototype.stop = function() {
        this._core.trigger("stop", null, "video"), this._playing.find(".owl-video-frame").remove(), this._playing.removeClass("owl-video-playing"), this._playing = null, this._core.leave("playing"), this._core.trigger("stopped", null, "video")
    }, e.prototype.play = function(b) {
        var c, d = a(b.target),
            e = d.closest("." + this._core.settings.itemClass),
            f = this._videos[e.attr("data-video")],
            g = f.width || "100%",
            h = f.height || this._core.$stage.height();
        this._playing || (this._core.enter("playing"), this._core.trigger("play", null, "video"), e = this._core.items(this._core.relative(e.index())), this._core.reset(e.index()), "youtube" === f.type ? c = '<iframe width="' + g + '" height="' + h + '" src="http://www.youtube.com/embed/' + f.id + "?autoplay=1&v=" + f.id + '" frameborder="0" allowfullscreen></iframe>' : "vimeo" === f.type && (c = '<iframe src="http://player.vimeo.com/video/' + f.id + '?autoplay=1" width="' + g + '" height="' + h + '" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe>'), a('<div class="owl-video-frame">' + c + "</div>").insertAfter(e.find(".owl-video")), this._playing = e.addClass("owl-video-playing"))
    }, e.prototype.isInFullScreen = function() {
        var b = c.fullscreenElement || c.mozFullScreenElement || c.webkitFullscreenElement;
        return b && a(b).parent().hasClass("owl-video-frame")
    }, e.prototype.destroy = function() {
        var a, b;
        this._core.$element.off("click.owl.video");
        for (a in this._handlers) this._core.$element.off(a, this._handlers[a]);
        for (b in Object.getOwnPropertyNames(this)) "function" != typeof this[b] && (this[b] = null)
    }, a.fn.owlCarousel.Constructor.Plugins.Video = e
}(window.Zepto || window.jQuery, window, document),
function(a, b, c, d) {
    var e = function(b) {
        this.core = b, this.core.options = a.extend({}, e.Defaults, this.core.options), this.swapping = !0, this.previous = d, this.next = d, this.handlers = {
            "change.owl.carousel": a.proxy(function(a) {
                a.namespace && "position" == a.property.name && (this.previous = this.core.current(), this.next = a.property.value)
            }, this),
            "drag.owl.carousel dragged.owl.carousel translated.owl.carousel": a.proxy(function(a) {
                a.namespace && (this.swapping = "translated" == a.type)
            }, this),
            "translate.owl.carousel": a.proxy(function(a) {
                a.namespace && this.swapping && (this.core.options.animateOut || this.core.options.animateIn) && this.swap()
            }, this)
        }, this.core.$element.on(this.handlers)
    };
    e.Defaults = {
        animateOut: !1,
        animateIn: !1
    }, e.prototype.swap = function() {
        if (1 === this.core.settings.items && a.support.animation && a.support.transition) {
            this.core.speed(0);
            var b, c = a.proxy(this.clear, this),
                d = this.core.$stage.children().eq(this.previous),
                e = this.core.$stage.children().eq(this.next),
                f = this.core.settings.animateIn,
                g = this.core.settings.animateOut;
            this.core.current() !== this.previous && (g && (b = this.core.coordinates(this.previous) - this.core.coordinates(this.next), d.one(a.support.animation.end, c).css({
                left: b + "px"
            }).addClass("animated owl-animated-out").addClass(g)), f && e.one(a.support.animation.end, c).addClass("animated owl-animated-in").addClass(f))
        }
    }, e.prototype.clear = function(b) {
        a(b.target).css({
            left: ""
        }).removeClass("animated owl-animated-out owl-animated-in").removeClass(this.core.settings.animateIn).removeClass(this.core.settings.animateOut), this.core.onTransitionEnd()
    }, e.prototype.destroy = function() {
        var a, b;
        for (a in this.handlers) this.core.$element.off(a, this.handlers[a]);
        for (b in Object.getOwnPropertyNames(this)) "function" != typeof this[b] && (this[b] = null)
    }, a.fn.owlCarousel.Constructor.Plugins.Animate = e
}(window.Zepto || window.jQuery, window, document),
function(a, b, c, d) {
    var e = function(b) {
        this._core = b, this._interval = null, this._paused = !1, this._handlers = {
            "changed.owl.carousel": a.proxy(function(a) {
                a.namespace && "settings" === a.property.name && (this._core.settings.autoplay ? this.play() : this.stop())
            }, this),
            "initialized.owl.carousel": a.proxy(function(a) {
                a.namespace && this._core.settings.autoplay && this.play()
            }, this),
            "play.owl.autoplay": a.proxy(function(a, b, c) {
                a.namespace && this.play(b, c)
            }, this),
            "stop.owl.autoplay": a.proxy(function(a) {
                a.namespace && this.stop()
            }, this),
            "mouseover.owl.autoplay": a.proxy(function() {
                this._core.settings.autoplayHoverPause && this._core.is("rotating") && this.pause()
            }, this),
            "mouseleave.owl.autoplay": a.proxy(function() {
                this._core.settings.autoplayHoverPause && this._core.is("rotating") && this.play()
            }, this)
        }, this._core.$element.on(this._handlers), this._core.options = a.extend({}, e.Defaults, this._core.options)
    };
    e.Defaults = {
        autoplay: !1,
        autoplayTimeout: 5e3,
        autoplayHoverPause: !1,
        autoplaySpeed: !1
    }, e.prototype.play = function(d, e) {
        this._paused = !1, this._core.is("rotating") || (this._core.enter("rotating"), this._interval = b.setInterval(a.proxy(function() {
            this._paused || this._core.is("busy") || this._core.is("interacting") || c.hidden || this._core.next(e || this._core.settings.autoplaySpeed)
        }, this), d || this._core.settings.autoplayTimeout))
    }, e.prototype.stop = function() {
        this._core.is("rotating") && (b.clearInterval(this._interval), this._core.leave("rotating"))
    }, e.prototype.pause = function() {
        this._core.is("rotating") && (this._paused = !0)
    }, e.prototype.destroy = function() {
        var a, b;
        this.stop();
        for (a in this._handlers) this._core.$element.off(a, this._handlers[a]);
        for (b in Object.getOwnPropertyNames(this)) "function" != typeof this[b] && (this[b] = null)
    }, a.fn.owlCarousel.Constructor.Plugins.autoplay = e
}(window.Zepto || window.jQuery, window, document),
function(a, b, c, d) {
    "use strict";
    var e = function(b) {
        this._core = b, this._initialized = !1, this._pages = [], this._controls = {}, this._templates = [], this.$element = this._core.$element, this._overrides = {
            next: this._core.next,
            prev: this._core.prev,
            to: this._core.to
        }, this._handlers = {
            "prepared.owl.carousel": a.proxy(function(b) {
                b.namespace && this._core.settings.dotsData && this._templates.push('<div class="' + this._core.settings.dotClass + '">' + a(b.content).find("[data-dot]").andSelf("[data-dot]").attr("data-dot") + "</div>")
            }, this),
            "added.owl.carousel": a.proxy(function(a) {
                a.namespace && this._core.settings.dotsData && this._templates.splice(a.position, 0, this._templates.pop())
            }, this),
            "remove.owl.carousel": a.proxy(function(a) {
                a.namespace && this._core.settings.dotsData && this._templates.splice(a.position, 1)
            }, this),
            "changed.owl.carousel": a.proxy(function(a) {
                a.namespace && "position" == a.property.name && this.draw()
            }, this),
            "initialized.owl.carousel": a.proxy(function(a) {
                a.namespace && !this._initialized && (this._core.trigger("initialize", null, "navigation"), this.initialize(), this.update(), this.draw(), this._initialized = !0, this._core.trigger("initialized", null, "navigation"))
            }, this),
            "refreshed.owl.carousel": a.proxy(function(a) {
                a.namespace && this._initialized && (this._core.trigger("refresh", null, "navigation"), this.update(), this.draw(), this._core.trigger("refreshed", null, "navigation"))
            }, this)
        }, this._core.options = a.extend({}, e.Defaults, this._core.options), this.$element.on(this._handlers)
    };
    e.Defaults = {
        nav: !1,
        navText: ["prev", "next"],
        navSpeed: !1,
        navElement: "div",
        navContainer: !1,
        navContainerClass: "owl-nav",
        navClass: ["owl-prev", "owl-next"],
        slideBy: 1,
        dotClass: "owl-dot",
        dotsClass: "owl-dots",
        dots: !0,
        dotsEach: !1,
        dotsData: !1,
        dotsSpeed: !1,
        dotsContainer: !1
    }, e.prototype.initialize = function() {
        var b, c = this._core.settings;
        this._controls.$relative = (c.navContainer ? a(c.navContainer) : a("<div>").addClass(c.navContainerClass).appendTo(this.$element)).addClass("disabled"), this._controls.$previous = a("<" + c.navElement + ">").addClass(c.navClass[0]).html(c.navText[0]).prependTo(this._controls.$relative).on("click", a.proxy(function(a) {
            this.prev(c.navSpeed)
        }, this)), this._controls.$next = a("<" + c.navElement + ">").addClass(c.navClass[1]).html(c.navText[1]).appendTo(this._controls.$relative).on("click", a.proxy(function(a) {
            this.next(c.navSpeed)
        }, this)), c.dotsData || (this._templates = [a("<div>").addClass(c.dotClass).append(a("<span>")).prop("outerHTML")]), this._controls.$absolute = (c.dotsContainer ? a(c.dotsContainer) : a("<div>").addClass(c.dotsClass).appendTo(this.$element)).addClass("disabled"), this._controls.$absolute.on("click", "div", a.proxy(function(b) {
            var d = a(b.target).parent().is(this._controls.$absolute) ? a(b.target).index() : a(b.target).parent().index();
            b.preventDefault(), this.to(d, c.dotsSpeed)
        }, this));
        for (b in this._overrides) this._core[b] = a.proxy(this[b], this)
    }, e.prototype.destroy = function() {
        var a, b, c, d;
        for (a in this._handlers) this.$element.off(a, this._handlers[a]);
        for (b in this._controls) this._controls[b].remove();
        for (d in this.overides) this._core[d] = this._overrides[d];
        for (c in Object.getOwnPropertyNames(this)) "function" != typeof this[c] && (this[c] = null)
    }, e.prototype.update = function() {
        var a, b, c, d = this._core.clones().length / 2,
            e = d + this._core.items().length,
            f = this._core.maximum(!0),
            g = this._core.settings,
            h = g.center || g.autoWidth || g.dotsData ? 1 : g.dotsEach || g.items;
        if ("page" !== g.slideBy && (g.slideBy = Math.min(g.slideBy, g.items)), g.dots || "page" == g.slideBy)
            for (this._pages = [], a = d, b = 0, c = 0; e > a; a++) {
                if (b >= h || 0 === b) {
                    if (this._pages.push({
                            start: Math.min(f, a - d),
                            end: a - d + h - 1
                        }), Math.min(f, a - d) === f) break;
                    b = 0, ++c
                }
                b += this._core.mergers(this._core.relative(a))
            }
    }, e.prototype.draw = function() {
        var b, c = this._core.settings,
            d = this._core.items().length <= c.items,
            e = this._core.relative(this._core.current()),
            f = c.loop || c.rewind;
        this._controls.$relative.toggleClass("disabled", !c.nav || d), c.nav && (this._controls.$previous.toggleClass("disabled", !f && e <= this._core.minimum(!0)), this._controls.$next.toggleClass("disabled", !f && e >= this._core.maximum(!0))), this._controls.$absolute.toggleClass("disabled", !c.dots || d), c.dots && (b = this._pages.length - this._controls.$absolute.children().length, c.dotsData && 0 !== b ? this._controls.$absolute.html(this._templates.join("")) : b > 0 ? this._controls.$absolute.append(new Array(b + 1).join(this._templates[0])) : 0 > b && this._controls.$absolute.children().slice(b).remove(), this._controls.$absolute.find(".active").removeClass("active"), this._controls.$absolute.children().eq(a.inArray(this.current(), this._pages)).addClass("active"))
    }, e.prototype.onTrigger = function(b) {
        var c = this._core.settings;
        b.page = {
            index: a.inArray(this.current(), this._pages),
            count: this._pages.length,
            size: c && (c.center || c.autoWidth || c.dotsData ? 1 : c.dotsEach || c.items)
        }
    }, e.prototype.current = function() {
        var b = this._core.relative(this._core.current());
        return a.grep(this._pages, a.proxy(function(a, c) {
            return a.start <= b && a.end >= b
        }, this)).pop()
    }, e.prototype.getPosition = function(b) {
        var c, d, e = this._core.settings;
        return "page" == e.slideBy ? (c = a.inArray(this.current(), this._pages), d = this._pages.length, b ? ++c : --c, c = this._pages[(c % d + d) % d].start) : (c = this._core.relative(this._core.current()), d = this._core.items().length, b ? c += e.slideBy : c -= e.slideBy), c
    }, e.prototype.next = function(b) {
        a.proxy(this._overrides.to, this._core)(this.getPosition(!0), b)
    }, e.prototype.prev = function(b) {
        a.proxy(this._overrides.to, this._core)(this.getPosition(!1), b)
    }, e.prototype.to = function(b, c, d) {
        var e;
        d ? a.proxy(this._overrides.to, this._core)(b, c) : (e = this._pages.length, a.proxy(this._overrides.to, this._core)(this._pages[(b % e + e) % e].start, c))
    }, a.fn.owlCarousel.Constructor.Plugins.Navigation = e
}(window.Zepto || window.jQuery, window, document),
function(a, b, c, d) {
    "use strict";
    var e = function(c) {
        this._core = c, this._hashes = {}, this.$element = this._core.$element, this._handlers = {
            "initialized.owl.carousel": a.proxy(function(c) {
                c.namespace && "URLHash" === this._core.settings.startPosition && a(b).trigger("hashchange.owl.navigation")
            }, this),
            "prepared.owl.carousel": a.proxy(function(b) {
                if (b.namespace) {
                    var c = a(b.content).find("[data-hash]").andSelf("[data-hash]").attr("data-hash");
                    if (!c) return;
                    this._hashes[c] = b.content
                }
            }, this),
            "changed.owl.carousel": a.proxy(function(c) {
                if (c.namespace && "position" === c.property.name) {
                    var d = this._core.items(this._core.relative(this._core.current())),
                        e = a.map(this._hashes, function(a, b) {
                            return a === d ? b : null
                        }).join();
                    if (!e || b.location.hash.slice(1) === e) return;
                    b.location.hash = e
                }
            }, this)
        }, this._core.options = a.extend({}, e.Defaults, this._core.options), this.$element.on(this._handlers), a(b).on("hashchange.owl.navigation", a.proxy(function(a) {
            var c = b.location.hash.substring(1),
                e = this._core.$stage.children(),
                f = this._hashes[c] && e.index(this._hashes[c]);
            f !== d && f !== this._core.current() && this._core.to(this._core.relative(f), !1, !0)
        }, this))
    };
    e.Defaults = {
        URLhashListener: !1
    }, e.prototype.destroy = function() {
        var c, d;
        a(b).off("hashchange.owl.navigation");
        for (c in this._handlers) this._core.$element.off(c, this._handlers[c]);
        for (d in Object.getOwnPropertyNames(this)) "function" != typeof this[d] && (this[d] = null)
    }, a.fn.owlCarousel.Constructor.Plugins.Hash = e
}(window.Zepto || window.jQuery, window, document),
function(a, b, c, d) {
    function e(b, c) {
        var e = !1,
            f = b.charAt(0).toUpperCase() + b.slice(1);
        return a.each((b + " " + h.join(f + " ") + f).split(" "), function(a, b) {
            return g[b] !== d ? (e = c ? b : !0, !1) : void 0
        }), e
    }

    function f(a) {
        return e(a, !0)
    }
    var g = a("<support>").get(0).style,
        h = "Webkit Moz O ms".split(" "),
        i = {
            transition: {
                end: {
                    WebkitTransition: "webkitTransitionEnd",
                    MozTransition: "transitionend",
                    OTransition: "oTransitionEnd",
                    transition: "transitionend"
                }
            },
            animation: {
                end: {
                    WebkitAnimation: "webkitAnimationEnd",
                    MozAnimation: "animationend",
                    OAnimation: "oAnimationEnd",
                    animation: "animationend"
                }
            }
        },
        j = {
            csstransforms: function() {
                return !!e("transform")
            },
            csstransforms3d: function() {
                return !!e("perspective")
            },
            csstransitions: function() {
                return !!e("transition")
            },
            cssanimations: function() {
                return !!e("animation")
            }
        };
    j.csstransitions() && (a.support.transition = new String(f("transition")), a.support.transition.end = i.transition.end[a.support.transition]), j.cssanimations() && (a.support.animation = new String(f("animation")), a.support.animation.end = i.animation.end[a.support.animation]), j.csstransforms() && (a.support.transform = new String(f("transform")), a.support.transform3d = j.csstransforms3d())
}(window.Zepto || window.jQuery, window, document);
(function($) {
    $.fn.appear = function(fn, options) {
        var settings = $.extend({
            data: undefined,
            one: !0,
            accX: 0,
            accY: 0
        }, options);
        return this.each(function() {
            var t = $(this);
            t.appeared = !1;
            if (!fn) {
                t.trigger('appear', settings.data);
                return
            }
            var w = $(window);
            var check = function() {
                if (!t.is(':visible')) {
                    t.appeared = !1;
                    return
                }
                var a = w.scrollLeft();
                var b = w.scrollTop();
                var o = t.offset();
                var x = o.left;
                var y = o.top;
                var ax = settings.accX;
                var ay = settings.accY;
                var th = t.height();
                var wh = w.height();
                var tw = t.width();
                var ww = w.width();
                if (y + th + ay >= b && y <= b + wh + ay && x + tw + ax >= a && x <= a + ww + ax) {
                    if (!t.appeared) t.trigger('appear', settings.data)
                } else {
                    t.appeared = !1
                }
            };
            var modifiedFn = function() {
                t.appeared = !0;
                if (settings.one) {
                    w.unbind('scroll', check);
                    var i = $.inArray(check, $.fn.appear.checks);
                    if (i >= 0) $.fn.appear.checks.splice(i, 1)
                }
                fn.apply(this, arguments)
            };
            if (settings.one) t.one('appear', settings.data, modifiedFn);
            else t.bind('appear', settings.data, modifiedFn);
            w.scroll(check);
            $.fn.appear.checks.push(check);
            (check)()
        })
    };
    $.extend($.fn.appear, {
        checks: [],
        timeout: null,
        checkAll: function() {
            var length = $.fn.appear.checks.length;
            if (length > 0)
                while (length--)($.fn.appear.checks[length])();
        },
        run: function() {
            if ($.fn.appear.timeout) clearTimeout($.fn.appear.timeout);
            $.fn.appear.timeout = setTimeout($.fn.appear.checkAll, 20)
        }
    });
    $.each(['append', 'prepend', 'after', 'before', 'attr', 'removeAttr', 'addClass', 'removeClass', 'toggleClass', 'remove', 'css', 'show', 'hide'], function(i, n) {
        var old = $.fn[n];
        if (old) {
            $.fn[n] = function() {
                var r = old.apply(this, arguments);
                $.fn.appear.run();
                return r
            }
        }
    })
})(jQuery); /*! This file is auto-generated */
/*!
 * imagesLoaded PACKAGED v5.0.0
 * JavaScript is all like "You images are done yet or what?"
 * MIT License
 */
! function(t, e) {
    "object" == typeof module && module.exports ? module.exports = e() : t.EvEmitter = e()
}("undefined" != typeof window ? window : this, (function() {
    function t() {}
    let e = t.prototype;
    return e.on = function(t, e) {
        if (!t || !e) return this;
        let i = this._events = this._events || {},
            s = i[t] = i[t] || [];
        return s.includes(e) || s.push(e), this
    }, e.once = function(t, e) {
        if (!t || !e) return this;
        this.on(t, e);
        let i = this._onceEvents = this._onceEvents || {};
        return (i[t] = i[t] || {})[e] = !0, this
    }, e.off = function(t, e) {
        let i = this._events && this._events[t];
        if (!i || !i.length) return this;
        let s = i.indexOf(e);
        return -1 != s && i.splice(s, 1), this
    }, e.emitEvent = function(t, e) {
        let i = this._events && this._events[t];
        if (!i || !i.length) return this;
        i = i.slice(0), e = e || [];
        let s = this._onceEvents && this._onceEvents[t];
        for (let n of i) {
            s && s[n] && (this.off(t, n), delete s[n]), n.apply(this, e)
        }
        return this
    }, e.allOff = function() {
        return delete this._events, delete this._onceEvents, this
    }, t
})),
/*!
 * imagesLoaded v5.0.0
 * JavaScript is all like "You images are done yet or what?"
 * MIT License
 */
function(t, e) {
    "object" == typeof module && module.exports ? module.exports = e(t, require("ev-emitter")) : t.imagesLoaded = e(t, t.EvEmitter)
}("undefined" != typeof window ? window : this, (function(t, e) {
    let i = t.jQuery,
        s = t.console;

    function n(t, e, o) {
        if (!(this instanceof n)) return new n(t, e, o);
        let r = t;
        var h;
        ("string" == typeof t && (r = document.querySelectorAll(t)), r) ? (this.elements = (h = r, Array.isArray(h) ? h : "object" == typeof h && "number" == typeof h.length ? [...h] : [h]), this.options = {}, "function" == typeof e ? o = e : Object.assign(this.options, e), o && this.on("always", o), this.getImages(), i && (this.jqDeferred = new i.Deferred), setTimeout(this.check.bind(this))) : s.error(`Bad element for imagesLoaded ${r||t}`)
    }
    n.prototype = Object.create(e.prototype), n.prototype.getImages = function() {
        this.images = [], this.elements.forEach(this.addElementImages, this)
    };
    const o = [1, 9, 11];
    n.prototype.addElementImages = function(t) {
        "IMG" === t.nodeName && this.addImage(t), !0 === this.options.background && this.addElementBackgroundImages(t);
        let {
            nodeType: e
        } = t;
        if (!e || !o.includes(e)) return;
        let i = t.querySelectorAll("img");
        for (let t of i) this.addImage(t);
        if ("string" == typeof this.options.background) {
            let e = t.querySelectorAll(this.options.background);
            for (let t of e) this.addElementBackgroundImages(t)
        }
    };
    const r = /url\((['"])?(.*?)\1\)/gi;

    function h(t) {
        this.img = t
    }

    function d(t, e) {
        this.url = t, this.element = e, this.img = new Image
    }
    return n.prototype.addElementBackgroundImages = function(t) {
        let e = getComputedStyle(t);
        if (!e) return;
        let i = r.exec(e.backgroundImage);
        for (; null !== i;) {
            let s = i && i[2];
            s && this.addBackground(s, t), i = r.exec(e.backgroundImage)
        }
    }, n.prototype.addImage = function(t) {
        let e = new h(t);
        this.images.push(e)
    }, n.prototype.addBackground = function(t, e) {
        let i = new d(t, e);
        this.images.push(i)
    }, n.prototype.check = function() {
        if (this.progressedCount = 0, this.hasAnyBroken = !1, !this.images.length) return void this.complete();
        let t = (t, e, i) => {
            setTimeout((() => {
                this.progress(t, e, i)
            }))
        };
        this.images.forEach((function(e) {
            e.once("progress", t), e.check()
        }))
    }, n.prototype.progress = function(t, e, i) {
        this.progressedCount++, this.hasAnyBroken = this.hasAnyBroken || !t.isLoaded, this.emitEvent("progress", [this, t, e]), this.jqDeferred && this.jqDeferred.notify && this.jqDeferred.notify(this, t), this.progressedCount === this.images.length && this.complete(), this.options.debug && s && s.log(`progress: ${i}`, t, e)
    }, n.prototype.complete = function() {
        let t = this.hasAnyBroken ? "fail" : "done";
        if (this.isComplete = !0, this.emitEvent(t, [this]), this.emitEvent("always", [this]), this.jqDeferred) {
            let t = this.hasAnyBroken ? "reject" : "resolve";
            this.jqDeferred[t](this)
        }
    }, h.prototype = Object.create(e.prototype), h.prototype.check = function() {
        this.getIsImageComplete() ? this.confirm(0 !== this.img.naturalWidth, "naturalWidth") : (this.proxyImage = new Image, this.img.crossOrigin && (this.proxyImage.crossOrigin = this.img.crossOrigin), this.proxyImage.addEventListener("load", this), this.proxyImage.addEventListener("error", this), this.img.addEventListener("load", this), this.img.addEventListener("error", this), this.proxyImage.src = this.img.currentSrc || this.img.src)
    }, h.prototype.getIsImageComplete = function() {
        return this.img.complete && this.img.naturalWidth
    }, h.prototype.confirm = function(t, e) {
        this.isLoaded = t;
        let {
            parentNode: i
        } = this.img, s = "PICTURE" === i.nodeName ? i : this.img;
        this.emitEvent("progress", [this, s, e])
    }, h.prototype.handleEvent = function(t) {
        let e = "on" + t.type;
        this[e] && this[e](t)
    }, h.prototype.onload = function() {
        this.confirm(!0, "onload"), this.unbindEvents()
    }, h.prototype.onerror = function() {
        this.confirm(!1, "onerror"), this.unbindEvents()
    }, h.prototype.unbindEvents = function() {
        this.proxyImage.removeEventListener("load", this), this.proxyImage.removeEventListener("error", this), this.img.removeEventListener("load", this), this.img.removeEventListener("error", this)
    }, d.prototype = Object.create(h.prototype), d.prototype.check = function() {
        this.img.addEventListener("load", this), this.img.addEventListener("error", this), this.img.src = this.url, this.getIsImageComplete() && (this.confirm(0 !== this.img.naturalWidth, "naturalWidth"), this.unbindEvents())
    }, d.prototype.unbindEvents = function() {
        this.img.removeEventListener("load", this), this.img.removeEventListener("error", this)
    }, d.prototype.confirm = function(t, e) {
        this.isLoaded = t, this.emitEvent("progress", [this, this.element, e])
    }, n.makeJQueryPlugin = function(e) {
        (e = e || t.jQuery) && (i = e, i.fn.imagesLoaded = function(t, e) {
            return new n(this, t, e).jqDeferred.promise(i(this))
        })
    }, n.makeJQueryPlugin(), n
})); /*! This file is auto-generated */
/*!
 * Masonry PACKAGED v4.2.2
 * Cascading grid layout library
 * https://masonry.desandro.com
 * MIT License
 * by David DeSandro
 */
! function(t, e) {
    "function" == typeof define && define.amd ? define("jquery-bridget/jquery-bridget", ["jquery"], function(i) {
        return e(t, i)
    }) : "object" == typeof module && module.exports ? module.exports = e(t, require("jquery")) : t.jQueryBridget = e(t, t.jQuery)
}(window, function(t, e) {
    "use strict";

    function i(i, r, a) {
        function h(t, e, n) {
            var o, r = "$()." + i + '("' + e + '")';
            return t.each(function(t, h) {
                var u = a.data(h, i);
                if (!u) return void s(i + " not initialized. Cannot call methods, i.e. " + r);
                var d = u[e];
                if (!d || "_" == e.charAt(0)) return void s(r + " is not a valid method");
                var l = d.apply(u, n);
                o = void 0 === o ? l : o
            }), void 0 !== o ? o : t
        }

        function u(t, e) {
            t.each(function(t, n) {
                var o = a.data(n, i);
                o ? (o.option(e), o._init()) : (o = new r(n, e), a.data(n, i, o))
            })
        }
        a = a || e || t.jQuery, a && (r.prototype.option || (r.prototype.option = function(t) {
            a.isPlainObject(t) && (this.options = a.extend(!0, this.options, t))
        }), a.fn[i] = function(t) {
            if ("string" == typeof t) {
                var e = o.call(arguments, 1);
                return h(this, t, e)
            }
            return u(this, t), this
        }, n(a))
    }

    function n(t) {
        !t || t && t.bridget || (t.bridget = i)
    }
    var o = Array.prototype.slice,
        r = t.console,
        s = "undefined" == typeof r ? function() {} : function(t) {
            r.error(t)
        };
    return n(e || t.jQuery), i
}),
function(t, e) {
    "function" == typeof define && define.amd ? define("ev-emitter/ev-emitter", e) : "object" == typeof module && module.exports ? module.exports = e() : t.EvEmitter = e()
}("undefined" != typeof window ? window : this, function() {
    function t() {}
    var e = t.prototype;
    return e.on = function(t, e) {
        if (t && e) {
            var i = this._events = this._events || {},
                n = i[t] = i[t] || [];
            return -1 == n.indexOf(e) && n.push(e), this
        }
    }, e.once = function(t, e) {
        if (t && e) {
            this.on(t, e);
            var i = this._onceEvents = this._onceEvents || {},
                n = i[t] = i[t] || {};
            return n[e] = !0, this
        }
    }, e.off = function(t, e) {
        var i = this._events && this._events[t];
        if (i && i.length) {
            var n = i.indexOf(e);
            return -1 != n && i.splice(n, 1), this
        }
    }, e.emitEvent = function(t, e) {
        var i = this._events && this._events[t];
        if (i && i.length) {
            i = i.slice(0), e = e || [];
            for (var n = this._onceEvents && this._onceEvents[t], o = 0; o < i.length; o++) {
                var r = i[o],
                    s = n && n[r];
                s && (this.off(t, r), delete n[r]), r.apply(this, e)
            }
            return this
        }
    }, e.allOff = function() {
        delete this._events, delete this._onceEvents
    }, t
}),
function(t, e) {
    "function" == typeof define && define.amd ? define("get-size/get-size", e) : "object" == typeof module && module.exports ? module.exports = e() : t.getSize = e()
}(window, function() {
    "use strict";

    function t(t) {
        var e = parseFloat(t),
            i = -1 == t.indexOf("%") && !isNaN(e);
        return i && e
    }

    function e() {}

    function i() {
        for (var t = {
                width: 0,
                height: 0,
                innerWidth: 0,
                innerHeight: 0,
                outerWidth: 0,
                outerHeight: 0
            }, e = 0; u > e; e++) {
            var i = h[e];
            t[i] = 0
        }
        return t
    }

    function n(t) {
        var e = getComputedStyle(t);
        return e || a("Style returned " + e + ". Are you running this code in a hidden iframe on Firefox? See https://bit.ly/getsizebug1"), e
    }

    function o() {
        if (!d) {
            d = !0;
            var e = document.createElement("div");
            e.style.width = "200px", e.style.padding = "1px 2px 3px 4px", e.style.borderStyle = "solid", e.style.borderWidth = "1px 2px 3px 4px", e.style.boxSizing = "border-box";
            var i = document.body || document.documentElement;
            i.appendChild(e);
            var o = n(e);
            s = 200 == Math.round(t(o.width)), r.isBoxSizeOuter = s, i.removeChild(e)
        }
    }

    function r(e) {
        if (o(), "string" == typeof e && (e = document.querySelector(e)), e && "object" == typeof e && e.nodeType) {
            var r = n(e);
            if ("none" == r.display) return i();
            var a = {};
            a.width = e.offsetWidth, a.height = e.offsetHeight;
            for (var d = a.isBorderBox = "border-box" == r.boxSizing, l = 0; u > l; l++) {
                var c = h[l],
                    f = r[c],
                    m = parseFloat(f);
                a[c] = isNaN(m) ? 0 : m
            }
            var p = a.paddingLeft + a.paddingRight,
                g = a.paddingTop + a.paddingBottom,
                y = a.marginLeft + a.marginRight,
                v = a.marginTop + a.marginBottom,
                _ = a.borderLeftWidth + a.borderRightWidth,
                z = a.borderTopWidth + a.borderBottomWidth,
                E = d && s,
                b = t(r.width);
            b !== !1 && (a.width = b + (E ? 0 : p + _));
            var x = t(r.height);
            return x !== !1 && (a.height = x + (E ? 0 : g + z)), a.innerWidth = a.width - (p + _), a.innerHeight = a.height - (g + z), a.outerWidth = a.width + y, a.outerHeight = a.height + v, a
        }
    }
    var s, a = "undefined" == typeof console ? e : function(t) {
            console.error(t)
        },
        h = ["paddingLeft", "paddingRight", "paddingTop", "paddingBottom", "marginLeft", "marginRight", "marginTop", "marginBottom", "borderLeftWidth", "borderRightWidth", "borderTopWidth", "borderBottomWidth"],
        u = h.length,
        d = !1;
    return r
}),
function(t, e) {
    "use strict";
    "function" == typeof define && define.amd ? define("desandro-matches-selector/matches-selector", e) : "object" == typeof module && module.exports ? module.exports = e() : t.matchesSelector = e()
}(window, function() {
    "use strict";
    var t = function() {
        var t = window.Element.prototype;
        if (t.matches) return "matches";
        if (t.matchesSelector) return "matchesSelector";
        for (var e = ["webkit", "moz", "ms", "o"], i = 0; i < e.length; i++) {
            var n = e[i],
                o = n + "MatchesSelector";
            if (t[o]) return o
        }
    }();
    return function(e, i) {
        return e[t](i)
    }
}),
function(t, e) {
    "function" == typeof define && define.amd ? define("fizzy-ui-utils/utils", ["desandro-matches-selector/matches-selector"], function(i) {
        return e(t, i)
    }) : "object" == typeof module && module.exports ? module.exports = e(t, require("desandro-matches-selector")) : t.fizzyUIUtils = e(t, t.matchesSelector)
}(window, function(t, e) {
    var i = {};
    i.extend = function(t, e) {
        for (var i in e) t[i] = e[i];
        return t
    }, i.modulo = function(t, e) {
        return (t % e + e) % e
    };
    var n = Array.prototype.slice;
    i.makeArray = function(t) {
        if (Array.isArray(t)) return t;
        if (null === t || void 0 === t) return [];
        var e = "object" == typeof t && "number" == typeof t.length;
        return e ? n.call(t) : [t]
    }, i.removeFrom = function(t, e) {
        var i = t.indexOf(e); - 1 != i && t.splice(i, 1)
    }, i.getParent = function(t, i) {
        for (; t.parentNode && t != document.body;)
            if (t = t.parentNode, e(t, i)) return t
    }, i.getQueryElement = function(t) {
        return "string" == typeof t ? document.querySelector(t) : t
    }, i.handleEvent = function(t) {
        var e = "on" + t.type;
        this[e] && this[e](t)
    }, i.filterFindElements = function(t, n) {
        t = i.makeArray(t);
        var o = [];
        return t.forEach(function(t) {
            if (t instanceof HTMLElement) {
                if (!n) return void o.push(t);
                e(t, n) && o.push(t);
                for (var i = t.querySelectorAll(n), r = 0; r < i.length; r++) o.push(i[r])
            }
        }), o
    }, i.debounceMethod = function(t, e, i) {
        i = i || 100;
        var n = t.prototype[e],
            o = e + "Timeout";
        t.prototype[e] = function() {
            var t = this[o];
            clearTimeout(t);
            var e = arguments,
                r = this;
            this[o] = setTimeout(function() {
                n.apply(r, e), delete r[o]
            }, i)
        }
    }, i.docReady = function(t) {
        var e = document.readyState;
        "complete" == e || "interactive" == e ? setTimeout(t) : document.addEventListener("DOMContentLoaded", t)
    }, i.toDashed = function(t) {
        return t.replace(/(.)([A-Z])/g, function(t, e, i) {
            return e + "-" + i
        }).toLowerCase()
    };
    var o = t.console;
    return i.htmlInit = function(e, n) {
        i.docReady(function() {
            var r = i.toDashed(n),
                s = "data-" + r,
                a = document.querySelectorAll("[" + s + "]"),
                h = document.querySelectorAll(".js-" + r),
                u = i.makeArray(a).concat(i.makeArray(h)),
                d = s + "-options",
                l = t.jQuery;
            u.forEach(function(t) {
                var i, r = t.getAttribute(s) || t.getAttribute(d);
                try {
                    i = r && JSON.parse(r)
                } catch (a) {
                    return void(o && o.error("Error parsing " + s + " on " + t.className + ": " + a))
                }
                var h = new e(t, i);
                l && l.data(t, n, h)
            })
        })
    }, i
}),
function(t, e) {
    "function" == typeof define && define.amd ? define("outlayer/item", ["ev-emitter/ev-emitter", "get-size/get-size"], e) : "object" == typeof module && module.exports ? module.exports = e(require("ev-emitter"), require("get-size")) : (t.Outlayer = {}, t.Outlayer.Item = e(t.EvEmitter, t.getSize))
}(window, function(t, e) {
    "use strict";

    function i(t) {
        for (var e in t) return !1;
        return e = null, !0
    }

    function n(t, e) {
        t && (this.element = t, this.layout = e, this.position = {
            x: 0,
            y: 0
        }, this._create())
    }

    function o(t) {
        return t.replace(/([A-Z])/g, function(t) {
            return "-" + t.toLowerCase()
        })
    }
    var r = document.documentElement.style,
        s = "string" == typeof r.transition ? "transition" : "WebkitTransition",
        a = "string" == typeof r.transform ? "transform" : "WebkitTransform",
        h = {
            WebkitTransition: "webkitTransitionEnd",
            transition: "transitionend"
        }[s],
        u = {
            transform: a,
            transition: s,
            transitionDuration: s + "Duration",
            transitionProperty: s + "Property",
            transitionDelay: s + "Delay"
        },
        d = n.prototype = Object.create(t.prototype);
    d.constructor = n, d._create = function() {
        this._transn = {
            ingProperties: {},
            clean: {},
            onEnd: {}
        }, this.css({
            position: "absolute"
        })
    }, d.handleEvent = function(t) {
        var e = "on" + t.type;
        this[e] && this[e](t)
    }, d.getSize = function() {
        this.size = e(this.element)
    }, d.css = function(t) {
        var e = this.element.style;
        for (var i in t) {
            var n = u[i] || i;
            e[n] = t[i]
        }
    }, d.getPosition = function() {
        var t = getComputedStyle(this.element),
            e = this.layout._getOption("originLeft"),
            i = this.layout._getOption("originTop"),
            n = t[e ? "left" : "right"],
            o = t[i ? "top" : "bottom"],
            r = parseFloat(n),
            s = parseFloat(o),
            a = this.layout.size; - 1 != n.indexOf("%") && (r = r / 100 * a.width), -1 != o.indexOf("%") && (s = s / 100 * a.height), r = isNaN(r) ? 0 : r, s = isNaN(s) ? 0 : s, r -= e ? a.paddingLeft : a.paddingRight, s -= i ? a.paddingTop : a.paddingBottom, this.position.x = r, this.position.y = s
    }, d.layoutPosition = function() {
        var t = this.layout.size,
            e = {},
            i = this.layout._getOption("originLeft"),
            n = this.layout._getOption("originTop"),
            o = i ? "paddingLeft" : "paddingRight",
            r = i ? "left" : "right",
            s = i ? "right" : "left",
            a = this.position.x + t[o];
        e[r] = this.getXValue(a), e[s] = "";
        var h = n ? "paddingTop" : "paddingBottom",
            u = n ? "top" : "bottom",
            d = n ? "bottom" : "top",
            l = this.position.y + t[h];
        e[u] = this.getYValue(l), e[d] = "", this.css(e), this.emitEvent("layout", [this])
    }, d.getXValue = function(t) {
        var e = this.layout._getOption("horizontal");
        return this.layout.options.percentPosition && !e ? t / this.layout.size.width * 100 + "%" : t + "px"
    }, d.getYValue = function(t) {
        var e = this.layout._getOption("horizontal");
        return this.layout.options.percentPosition && e ? t / this.layout.size.height * 100 + "%" : t + "px"
    }, d._transitionTo = function(t, e) {
        this.getPosition();
        var i = this.position.x,
            n = this.position.y,
            o = t == this.position.x && e == this.position.y;
        if (this.setPosition(t, e), o && !this.isTransitioning) return void this.layoutPosition();
        var r = t - i,
            s = e - n,
            a = {};
        a.transform = this.getTranslate(r, s), this.transition({
            to: a,
            onTransitionEnd: {
                transform: this.layoutPosition
            },
            isCleaning: !0
        })
    }, d.getTranslate = function(t, e) {
        var i = this.layout._getOption("originLeft"),
            n = this.layout._getOption("originTop");
        return t = i ? t : -t, e = n ? e : -e, "translate3d(" + t + "px, " + e + "px, 0)"
    }, d.goTo = function(t, e) {
        this.setPosition(t, e), this.layoutPosition()
    }, d.moveTo = d._transitionTo, d.setPosition = function(t, e) {
        this.position.x = parseFloat(t), this.position.y = parseFloat(e)
    }, d._nonTransition = function(t) {
        this.css(t.to), t.isCleaning && this._removeStyles(t.to);
        for (var e in t.onTransitionEnd) t.onTransitionEnd[e].call(this)
    }, d.transition = function(t) {
        if (!parseFloat(this.layout.options.transitionDuration)) return void this._nonTransition(t);
        var e = this._transn;
        for (var i in t.onTransitionEnd) e.onEnd[i] = t.onTransitionEnd[i];
        for (i in t.to) e.ingProperties[i] = !0, t.isCleaning && (e.clean[i] = !0);
        if (t.from) {
            this.css(t.from);
            var n = this.element.offsetHeight;
            n = null
        }
        this.enableTransition(t.to), this.css(t.to), this.isTransitioning = !0
    };
    var l = "opacity," + o(a);
    d.enableTransition = function() {
        if (!this.isTransitioning) {
            var t = this.layout.options.transitionDuration;
            t = "number" == typeof t ? t + "ms" : t, this.css({
                transitionProperty: l,
                transitionDuration: t,
                transitionDelay: this.staggerDelay || 0
            }), this.element.addEventListener(h, this, !1)
        }
    }, d.onwebkitTransitionEnd = function(t) {
        this.ontransitionend(t)
    }, d.onotransitionend = function(t) {
        this.ontransitionend(t)
    };
    var c = {
        "-webkit-transform": "transform"
    };
    d.ontransitionend = function(t) {
        if (t.target === this.element) {
            var e = this._transn,
                n = c[t.propertyName] || t.propertyName;
            if (delete e.ingProperties[n], i(e.ingProperties) && this.disableTransition(), n in e.clean && (this.element.style[t.propertyName] = "", delete e.clean[n]), n in e.onEnd) {
                var o = e.onEnd[n];
                o.call(this), delete e.onEnd[n]
            }
            this.emitEvent("transitionEnd", [this])
        }
    }, d.disableTransition = function() {
        this.removeTransitionStyles(), this.element.removeEventListener(h, this, !1), this.isTransitioning = !1
    }, d._removeStyles = function(t) {
        var e = {};
        for (var i in t) e[i] = "";
        this.css(e)
    };
    var f = {
        transitionProperty: "",
        transitionDuration: "",
        transitionDelay: ""
    };
    return d.removeTransitionStyles = function() {
        this.css(f)
    }, d.stagger = function(t) {
        t = isNaN(t) ? 0 : t, this.staggerDelay = t + "ms"
    }, d.removeElem = function() {
        this.element.parentNode.removeChild(this.element), this.css({
            display: ""
        }), this.emitEvent("remove", [this])
    }, d.remove = function() {
        return s && parseFloat(this.layout.options.transitionDuration) ? (this.once("transitionEnd", function() {
            this.removeElem()
        }), void this.hide()) : void this.removeElem()
    }, d.reveal = function() {
        delete this.isHidden, this.css({
            display: ""
        });
        var t = this.layout.options,
            e = {},
            i = this.getHideRevealTransitionEndProperty("visibleStyle");
        e[i] = this.onRevealTransitionEnd, this.transition({
            from: t.hiddenStyle,
            to: t.visibleStyle,
            isCleaning: !0,
            onTransitionEnd: e
        })
    }, d.onRevealTransitionEnd = function() {
        this.isHidden || this.emitEvent("reveal")
    }, d.getHideRevealTransitionEndProperty = function(t) {
        var e = this.layout.options[t];
        if (e.opacity) return "opacity";
        for (var i in e) return i
    }, d.hide = function() {
        this.isHidden = !0, this.css({
            display: ""
        });
        var t = this.layout.options,
            e = {},
            i = this.getHideRevealTransitionEndProperty("hiddenStyle");
        e[i] = this.onHideTransitionEnd, this.transition({
            from: t.visibleStyle,
            to: t.hiddenStyle,
            isCleaning: !0,
            onTransitionEnd: e
        })
    }, d.onHideTransitionEnd = function() {
        this.isHidden && (this.css({
            display: "none"
        }), this.emitEvent("hide"))
    }, d.destroy = function() {
        this.css({
            position: "",
            left: "",
            right: "",
            top: "",
            bottom: "",
            transition: "",
            transform: ""
        })
    }, n
}),
function(t, e) {
    "use strict";
    "function" == typeof define && define.amd ? define("outlayer/outlayer", ["ev-emitter/ev-emitter", "get-size/get-size", "fizzy-ui-utils/utils", "./item"], function(i, n, o, r) {
        return e(t, i, n, o, r)
    }) : "object" == typeof module && module.exports ? module.exports = e(t, require("ev-emitter"), require("get-size"), require("fizzy-ui-utils"), require("./item")) : t.Outlayer = e(t, t.EvEmitter, t.getSize, t.fizzyUIUtils, t.Outlayer.Item)
}(window, function(t, e, i, n, o) {
    "use strict";

    function r(t, e) {
        var i = n.getQueryElement(t);
        if (!i) return void(h && h.error("Bad element for " + this.constructor.namespace + ": " + (i || t)));
        this.element = i, u && (this.$element = u(this.element)), this.options = n.extend({}, this.constructor.defaults), this.option(e);
        var o = ++l;
        this.element.outlayerGUID = o, c[o] = this, this._create();
        var r = this._getOption("initLayout");
        r && this.layout()
    }

    function s(t) {
        function e() {
            t.apply(this, arguments)
        }
        return e.prototype = Object.create(t.prototype), e.prototype.constructor = e, e
    }

    function a(t) {
        if ("number" == typeof t) return t;
        var e = t.match(/(^\d*\.?\d*)(\w*)/),
            i = e && e[1],
            n = e && e[2];
        if (!i.length) return 0;
        i = parseFloat(i);
        var o = m[n] || 1;
        return i * o
    }
    var h = t.console,
        u = t.jQuery,
        d = function() {},
        l = 0,
        c = {};
    r.namespace = "outlayer", r.Item = o, r.defaults = {
        containerStyle: {
            position: "relative"
        },
        initLayout: !0,
        originLeft: !0,
        originTop: !0,
        resize: !0,
        resizeContainer: !0,
        transitionDuration: "0.4s",
        hiddenStyle: {
            opacity: 0,
            transform: "scale(0.001)"
        },
        visibleStyle: {
            opacity: 1,
            transform: "scale(1)"
        }
    };
    var f = r.prototype;
    n.extend(f, e.prototype), f.option = function(t) {
        n.extend(this.options, t)
    }, f._getOption = function(t) {
        var e = this.constructor.compatOptions[t];
        return e && void 0 !== this.options[e] ? this.options[e] : this.options[t]
    }, r.compatOptions = {
        initLayout: "isInitLayout",
        horizontal: "isHorizontal",
        layoutInstant: "isLayoutInstant",
        originLeft: "isOriginLeft",
        originTop: "isOriginTop",
        resize: "isResizeBound",
        resizeContainer: "isResizingContainer"
    }, f._create = function() {
        this.reloadItems(), this.stamps = [], this.stamp(this.options.stamp), n.extend(this.element.style, this.options.containerStyle);
        var t = this._getOption("resize");
        t && this.bindResize()
    }, f.reloadItems = function() {
        this.items = this._itemize(this.element.children)
    }, f._itemize = function(t) {
        for (var e = this._filterFindItemElements(t), i = this.constructor.Item, n = [], o = 0; o < e.length; o++) {
            var r = e[o],
                s = new i(r, this);
            n.push(s)
        }
        return n
    }, f._filterFindItemElements = function(t) {
        return n.filterFindElements(t, this.options.itemSelector)
    }, f.getItemElements = function() {
        return this.items.map(function(t) {
            return t.element
        })
    }, f.layout = function() {
        this._resetLayout(), this._manageStamps();
        var t = this._getOption("layoutInstant"),
            e = void 0 !== t ? t : !this._isLayoutInited;
        this.layoutItems(this.items, e), this._isLayoutInited = !0
    }, f._init = f.layout, f._resetLayout = function() {
        this.getSize()
    }, f.getSize = function() {
        this.size = i(this.element)
    }, f._getMeasurement = function(t, e) {
        var n, o = this.options[t];
        o ? ("string" == typeof o ? n = this.element.querySelector(o) : o instanceof HTMLElement && (n = o), this[t] = n ? i(n)[e] : o) : this[t] = 0
    }, f.layoutItems = function(t, e) {
        t = this._getItemsForLayout(t), this._layoutItems(t, e), this._postLayout()
    }, f._getItemsForLayout = function(t) {
        return t.filter(function(t) {
            return !t.isIgnored
        })
    }, f._layoutItems = function(t, e) {
        if (this._emitCompleteOnItems("layout", t), t && t.length) {
            var i = [];
            t.forEach(function(t) {
                var n = this._getItemLayoutPosition(t);
                n.item = t, n.isInstant = e || t.isLayoutInstant, i.push(n)
            }, this), this._processLayoutQueue(i)
        }
    }, f._getItemLayoutPosition = function() {
        return {
            x: 0,
            y: 0
        }
    }, f._processLayoutQueue = function(t) {
        this.updateStagger(), t.forEach(function(t, e) {
            this._positionItem(t.item, t.x, t.y, t.isInstant, e)
        }, this)
    }, f.updateStagger = function() {
        var t = this.options.stagger;
        return null === t || void 0 === t ? void(this.stagger = 0) : (this.stagger = a(t), this.stagger)
    }, f._positionItem = function(t, e, i, n, o) {
        n ? t.goTo(e, i) : (t.stagger(o * this.stagger), t.moveTo(e, i))
    }, f._postLayout = function() {
        this.resizeContainer()
    }, f.resizeContainer = function() {
        var t = this._getOption("resizeContainer");
        if (t) {
            var e = this._getContainerSize();
            e && (this._setContainerMeasure(e.width, !0), this._setContainerMeasure(e.height, !1))
        }
    }, f._getContainerSize = d, f._setContainerMeasure = function(t, e) {
        if (void 0 !== t) {
            var i = this.size;
            i.isBorderBox && (t += e ? i.paddingLeft + i.paddingRight + i.borderLeftWidth + i.borderRightWidth : i.paddingBottom + i.paddingTop + i.borderTopWidth + i.borderBottomWidth), t = Math.max(t, 0), this.element.style[e ? "width" : "height"] = t + "px"
        }
    }, f._emitCompleteOnItems = function(t, e) {
        function i() {
            o.dispatchEvent(t + "Complete", null, [e])
        }

        function n() {
            s++, s == r && i()
        }
        var o = this,
            r = e.length;
        if (!e || !r) return void i();
        var s = 0;
        e.forEach(function(e) {
            e.once(t, n)
        })
    }, f.dispatchEvent = function(t, e, i) {
        var n = e ? [e].concat(i) : i;
        if (this.emitEvent(t, n), u)
            if (this.$element = this.$element || u(this.element), e) {
                var o = u.Event(e);
                o.type = t, this.$element.trigger(o, i)
            } else this.$element.trigger(t, i)
    }, f.ignore = function(t) {
        var e = this.getItem(t);
        e && (e.isIgnored = !0)
    }, f.unignore = function(t) {
        var e = this.getItem(t);
        e && delete e.isIgnored
    }, f.stamp = function(t) {
        t = this._find(t), t && (this.stamps = this.stamps.concat(t), t.forEach(this.ignore, this))
    }, f.unstamp = function(t) {
        t = this._find(t), t && t.forEach(function(t) {
            n.removeFrom(this.stamps, t), this.unignore(t)
        }, this)
    }, f._find = function(t) {
        return t ? ("string" == typeof t && (t = this.element.querySelectorAll(t)), t = n.makeArray(t)) : void 0
    }, f._manageStamps = function() {
        this.stamps && this.stamps.length && (this._getBoundingRect(), this.stamps.forEach(this._manageStamp, this))
    }, f._getBoundingRect = function() {
        var t = this.element.getBoundingClientRect(),
            e = this.size;
        this._boundingRect = {
            left: t.left + e.paddingLeft + e.borderLeftWidth,
            top: t.top + e.paddingTop + e.borderTopWidth,
            right: t.right - (e.paddingRight + e.borderRightWidth),
            bottom: t.bottom - (e.paddingBottom + e.borderBottomWidth)
        }
    }, f._manageStamp = d, f._getElementOffset = function(t) {
        var e = t.getBoundingClientRect(),
            n = this._boundingRect,
            o = i(t),
            r = {
                left: e.left - n.left - o.marginLeft,
                top: e.top - n.top - o.marginTop,
                right: n.right - e.right - o.marginRight,
                bottom: n.bottom - e.bottom - o.marginBottom
            };
        return r
    }, f.handleEvent = n.handleEvent, f.bindResize = function() {
        t.addEventListener("resize", this), this.isResizeBound = !0
    }, f.unbindResize = function() {
        t.removeEventListener("resize", this), this.isResizeBound = !1
    }, f.onresize = function() {
        this.resize()
    }, n.debounceMethod(r, "onresize", 100), f.resize = function() {
        this.isResizeBound && this.needsResizeLayout() && this.layout()
    }, f.needsResizeLayout = function() {
        var t = i(this.element),
            e = this.size && t;
        return e && t.innerWidth !== this.size.innerWidth
    }, f.addItems = function(t) {
        var e = this._itemize(t);
        return e.length && (this.items = this.items.concat(e)), e
    }, f.appended = function(t) {
        var e = this.addItems(t);
        e.length && (this.layoutItems(e, !0), this.reveal(e))
    }, f.prepended = function(t) {
        var e = this._itemize(t);
        if (e.length) {
            var i = this.items.slice(0);
            this.items = e.concat(i), this._resetLayout(), this._manageStamps(), this.layoutItems(e, !0), this.reveal(e), this.layoutItems(i)
        }
    }, f.reveal = function(t) {
        if (this._emitCompleteOnItems("reveal", t), t && t.length) {
            var e = this.updateStagger();
            t.forEach(function(t, i) {
                t.stagger(i * e), t.reveal()
            })
        }
    }, f.hide = function(t) {
        if (this._emitCompleteOnItems("hide", t), t && t.length) {
            var e = this.updateStagger();
            t.forEach(function(t, i) {
                t.stagger(i * e), t.hide()
            })
        }
    }, f.revealItemElements = function(t) {
        var e = this.getItems(t);
        this.reveal(e)
    }, f.hideItemElements = function(t) {
        var e = this.getItems(t);
        this.hide(e)
    }, f.getItem = function(t) {
        for (var e = 0; e < this.items.length; e++) {
            var i = this.items[e];
            if (i.element == t) return i
        }
    }, f.getItems = function(t) {
        t = n.makeArray(t);
        var e = [];
        return t.forEach(function(t) {
            var i = this.getItem(t);
            i && e.push(i)
        }, this), e
    }, f.remove = function(t) {
        var e = this.getItems(t);
        this._emitCompleteOnItems("remove", e), e && e.length && e.forEach(function(t) {
            t.remove(), n.removeFrom(this.items, t)
        }, this)
    }, f.destroy = function() {
        var t = this.element.style;
        t.height = "", t.position = "", t.width = "", this.items.forEach(function(t) {
            t.destroy()
        }), this.unbindResize();
        var e = this.element.outlayerGUID;
        delete c[e], delete this.element.outlayerGUID, u && u.removeData(this.element, this.constructor.namespace)
    }, r.data = function(t) {
        t = n.getQueryElement(t);
        var e = t && t.outlayerGUID;
        return e && c[e]
    }, r.create = function(t, e) {
        var i = s(r);
        return i.defaults = n.extend({}, r.defaults), n.extend(i.defaults, e), i.compatOptions = n.extend({}, r.compatOptions), i.namespace = t, i.data = r.data, i.Item = s(o), n.htmlInit(i, t), u && u.bridget && u.bridget(t, i), i
    };
    var m = {
        ms: 1,
        s: 1e3
    };
    return r.Item = o, r
}),
function(t, e) {
    "function" == typeof define && define.amd ? define(["outlayer/outlayer", "get-size/get-size"], e) : "object" == typeof module && module.exports ? module.exports = e(require("outlayer"), require("get-size")) : t.Masonry = e(t.Outlayer, t.getSize)
}(window, function(t, e) {
    var i = t.create("masonry");
    i.compatOptions.fitWidth = "isFitWidth";
    var n = i.prototype;
    return n._resetLayout = function() {
        this.getSize(), this._getMeasurement("columnWidth", "outerWidth"), this._getMeasurement("gutter", "outerWidth"), this.measureColumns(), this.colYs = [];
        for (var t = 0; t < this.cols; t++) this.colYs.push(0);
        this.maxY = 0, this.horizontalColIndex = 0
    }, n.measureColumns = function() {
        if (this.getContainerWidth(), !this.columnWidth) {
            var t = this.items[0],
                i = t && t.element;
            this.columnWidth = i && e(i).outerWidth || this.containerWidth
        }
        var n = this.columnWidth += this.gutter,
            o = this.containerWidth + this.gutter,
            r = o / n,
            s = n - o % n,
            a = s && 1 > s ? "round" : "floor";
        r = Math[a](r), this.cols = Math.max(r, 1)
    }, n.getContainerWidth = function() {
        var t = this._getOption("fitWidth"),
            i = t ? this.element.parentNode : this.element,
            n = e(i);
        this.containerWidth = n && n.innerWidth
    }, n._getItemLayoutPosition = function(t) {
        t.getSize();
        var e = t.size.outerWidth % this.columnWidth,
            i = e && 1 > e ? "round" : "ceil",
            n = Math[i](t.size.outerWidth / this.columnWidth);
        n = Math.min(n, this.cols);
        for (var o = this.options.horizontalOrder ? "_getHorizontalColPosition" : "_getTopColPosition", r = this[o](n, t), s = {
                x: this.columnWidth * r.col,
                y: r.y
            }, a = r.y + t.size.outerHeight, h = n + r.col, u = r.col; h > u; u++) this.colYs[u] = a;
        return s
    }, n._getTopColPosition = function(t) {
        var e = this._getTopColGroup(t),
            i = Math.min.apply(Math, e);
        return {
            col: e.indexOf(i),
            y: i
        }
    }, n._getTopColGroup = function(t) {
        if (2 > t) return this.colYs;
        for (var e = [], i = this.cols + 1 - t, n = 0; i > n; n++) e[n] = this._getColGroupY(n, t);
        return e
    }, n._getColGroupY = function(t, e) {
        if (2 > e) return this.colYs[t];
        var i = this.colYs.slice(t, t + e);
        return Math.max.apply(Math, i)
    }, n._getHorizontalColPosition = function(t, e) {
        var i = this.horizontalColIndex % this.cols,
            n = t > 1 && i + t > this.cols;
        i = n ? 0 : i;
        var o = e.size.outerWidth && e.size.outerHeight;
        return this.horizontalColIndex = o ? i + t : this.horizontalColIndex, {
            col: i,
            y: this._getColGroupY(i, t)
        }
    }, n._manageStamp = function(t) {
        var i = e(t),
            n = this._getElementOffset(t),
            o = this._getOption("originLeft"),
            r = o ? n.left : n.right,
            s = r + i.outerWidth,
            a = Math.floor(r / this.columnWidth);
        a = Math.max(0, a);
        var h = Math.floor(s / this.columnWidth);
        h -= s % this.columnWidth ? 0 : 1, h = Math.min(this.cols - 1, h);
        for (var u = this._getOption("originTop"), d = (u ? n.top : n.bottom) + i.outerHeight, l = a; h >= l; l++) this.colYs[l] = Math.max(d, this.colYs[l])
    }, n._getContainerSize = function() {
        this.maxY = Math.max.apply(Math, this.colYs);
        var t = {
            height: this.maxY
        };
        return this._getOption("fitWidth") && (t.width = this._getContainerFitWidth()), t
    }, n._getContainerFitWidth = function() {
        for (var t = 0, e = this.cols; --e && 0 === this.colYs[e];) t++;
        return (this.cols - t) * this.columnWidth - this.gutter
    }, n.needsResizeLayout = function() {
        var t = this.containerWidth;
        return this.getContainerWidth(), t != this.containerWidth
    }, i
});
/*!
 * Masonry v2 shim
 * to maintain backwards compatibility
 * as of Masonry v3.1.2
 *
 * Cascading grid layout library
 * http://masonry.desandro.com
 * MIT License
 * by David DeSandro
 */
! function(a) {
    "use strict";
    var b = a.Masonry;
    b.prototype._remapV2Options = function() {
        this._remapOption("gutterWidth", "gutter"), this._remapOption("isResizable", "isResizeBound"), this._remapOption("isRTL", "isOriginLeft", function(a) {
            return !a
        });
        var a = this.options.isAnimated;
        if (void 0 !== a && (this.options.transitionDuration = a ? this.options.transitionDuration : 0), void 0 === a || a) {
            var b = this.options.animationOptions,
                c = b && b.duration;
            c && (this.options.transitionDuration = "string" == typeof c ? c : c + "ms")
        }
    }, b.prototype._remapOption = function(a, b, c) {
        var d = this.options[a];
        void 0 !== d && (this.options[b] = c ? c(d) : d)
    };
    var c = b.prototype._create;
    b.prototype._create = function() {
        var a = this;
        this._remapV2Options(), c.apply(this, arguments), setTimeout(function() {
            jQuery(a.element).addClass("masonry")
        }, 0)
    };
    var d = b.prototype.layout;
    b.prototype.layout = function() {
        this._remapV2Options(), d.apply(this, arguments)
    };
    var e = b.prototype.option;
    b.prototype.option = function() {
        e.apply(this, arguments), this._remapV2Options()
    };
    var f = b.prototype._itemize;
    b.prototype._itemize = function(a) {
        var b = f.apply(this, arguments);
        return jQuery(a).addClass("masonry-brick"), b
    };
    var g = b.prototype.measureColumns;
    b.prototype.measureColumns = function() {
        var a = this.options.columnWidth;
        a && "function" == typeof a && (this.getContainerWidth(), this.columnWidth = a(this.containerWidth)), g.apply(this, arguments)
    }, b.prototype.reload = function() {
        this.reloadItems.apply(this, arguments), this.layout.apply(this)
    };
    var h = b.prototype.destroy;
    b.prototype.destroy = function() {
        var a = this.getItemElements();
        jQuery(this.element).removeClass("masonry"), jQuery(a).removeClass("masonry-brick"), h.apply(this, arguments)
    }
}(window);
(function($) {
    "use strict";
    var GaviasTheme = {
        init: function() {
            this.initResponsive();
            this.initCarousel();
            this.menuMobile();
            this.postMasonry();
            this.scrollTop();
            this.stickyMenu();
            this.other();
            $('.team__progress-bar').each(function() {
                var $progressbar = $(this);
                $progressbar.css('width', $progressbar.data('progress-max'))
            })
        },
        initResponsive: function() {
            var $event = $.event,
                $special, resizeTimeout;
            $special = $event.special.debouncedresize = {
                setup: function() {
                    $(this).on("resize", $special.handler)
                },
                teardown: function() {
                    $(this).off("resize", $special.handler)
                },
                handler: function(event, execAsap) {
                    var context = this,
                        args = arguments,
                        dispatch = function() {
                            event.type = "debouncedresize";
                            $event.dispatch.apply(context, args)
                        };
                    if (resizeTimeout) {
                        clearTimeout(resizeTimeout)
                    }
                    execAsap ? dispatch() : resizeTimeout = setTimeout(dispatch, $special.threshold)
                },
                threshold: 150
            }
        },
        initCarousel: function() {
            $('.init-carousel-owl-theme').each(function() {
                var items = GaviasTheme.carouselOptInit('items', this);
                var items_lg = GaviasTheme.carouselOptInit('items_lg', this);
                var items_md = GaviasTheme.carouselOptInit('items_md', this);
                var items_sm = GaviasTheme.carouselOptInit('items_sm', this);
                var items_xs = GaviasTheme.carouselOptInit('items_xs', this);
                var loop = GaviasTheme.carouselOptInit('loop', this);
                var speed = GaviasTheme.carouselOptInit('speed', this);
                var auto_play = GaviasTheme.carouselOptInit('auto_play', this);
                var auto_play_speed = GaviasTheme.carouselOptInit('auto_play_speed', this);
                var auto_play_timeout = GaviasTheme.carouselOptInit('auto_play_timeout', this);
                var auto_play_hover = GaviasTheme.carouselOptInit('auto_play_hover', this);
                var navigation = GaviasTheme.carouselOptInit('navigation', this);
                var rewind_nav = GaviasTheme.carouselOptInit('rewind_nav', this);
                var pagination = GaviasTheme.carouselOptInit('pagination', this);
                var mouse_drag = GaviasTheme.carouselOptInit('mouse_drag', this);
                var touch_drag = GaviasTheme.carouselOptInit('touch_drag', this);
                $(this).owlCarousel({
                    nav: navigation,
                    autoplay: auto_play,
                    autoplayTimeout: auto_play_timeout,
                    autoplaySpeed: auto_play_speed,
                    autoplayHoverPause: auto_play_hover,
                    navText: ['<span><i class="fas fa-chevron-left"></i></span>', '<span><i class="fas fa-chevron-right"></i></span>'],
                    autoHeight: !1,
                    loop: loop,
                    dots: pagination,
                    rewind: rewind_nav,
                    smartSpeed: speed,
                    mouseDrag: mouse_drag,
                    touchDrag: touch_drag,
                    responsive: {
                        0: {
                            items: 1,
                            nav: !1
                        },
                        580: {
                            items: items_xs,
                            nav: !1
                        },
                        768: {
                            items: items_sm,
                            nav: !1
                        },
                        992: {
                            items: items_md
                        },
                        1200: {
                            items: items_lg
                        },
                        1400: {
                            items: items
                        }
                    }
                })
            })
        },
        carouselOptInit: function(opt, context) {
            const opts = {
                items: 5,
                items_lg: 4,
                items_md: 3,
                items_sm: 2,
                items_xs: 1,
                loop: !1,
                speed: 200,
                auto_play: !1,
                auto_play_speed: !1,
                auto_play_timeout: 1000,
                auto_play_hover: !1,
                navigation: !1,
                rewind_nav: !1,
                pagination: !1,
                mouse_drag: !1,
                touch_drag: !1
            }
            return $(context).data(opt) ? $(context).data(opt) : opts[opt]
        },
        menuMobile: function() {
            $('.gva-offcanvas-content ul.gva-mobile-menu > li:has(ul)').addClass("has-sub");
            $('.gva-offcanvas-content ul.gva-mobile-menu > li:has(ul) > a').after('<span class="caret"></span>');
            $(document).on('click', '.gva-offcanvas-content ul.gva-mobile-menu > li > .caret', function(e) {
                e.preventDefault();
                var checkElement = $(this).next();
                $('.gva-offcanvas-content ul.gva-mobile-menu > li').removeClass('menu-active');
                $(this).closest('li').addClass('menu-active');
                if ((checkElement.is('.submenu-inner')) && (checkElement.is(':visible'))) {
                    $(this).closest('li').removeClass('menu-active');
                    checkElement.slideUp('normal')
                }
                if ((checkElement.is('.submenu-inner')) && (!checkElement.is(':visible'))) {
                    $('.gva-offcanvas-content ul.gva-mobile-menu .submenu-inner:visible').slideUp('normal');
                    checkElement.slideDown('normal')
                }
                if (checkElement.is('.submenu-inner')) {
                    return !1
                } else {
                    return !0
                }
            })
            $(document).on('click', '.canvas-menu.gva-offcanvas > a.dropdown-toggle', function(e) {
                e.preventDefault();
                var $style = $(this).data('canvas');
                if ($('.gva-offcanvas-content' + $style).hasClass('open')) {
                    $('.gva-offcanvas-content' + $style).removeClass('open');
                    $('#gva-overlay').removeClass('open');
                    $('#wp-main-content').removeClass('blur')
                } else {
                    $('.gva-offcanvas-content' + $style).addClass('open');
                    $('#gva-overlay').addClass('open');
                    $('#wp-main-content').addClass('blur')
                }
            });
            $(document).on('click', '#gva-overlay', function(e) {
                e.preventDefault();
                $(this).removeClass('open');
                $('.gva-offcanvas-content').removeClass('open');
                $('#wp-main-content').removeClass('blur')
            })
            $(document).on('click', '.close-canvas', function(e) {
                e.preventDefault();
                $('.gva-offcanvas-content').removeClass('open');
                $('#gva-overlay').removeClass('open');
                $('#wp-main-content').removeClass('blur')
            })
        },
        postMasonry: function() {
            var $container = $('.post-masonry-style');
            $container.imagesLoaded(function() {
                $container.masonry({
                    itemSelector: '.item-masory',
                    gutterWidth: 2,
                    columnWidth: 1,
                })
            })
        },
        scrollTop: function() {
            var offset = 300;
            var duration = 500;
            jQuery(window).scroll(function() {
                if (jQuery(this).scrollTop() > offset) {
                    jQuery('.return-top').fadeIn(duration)
                } else {
                    jQuery('.return-top').fadeOut(duration)
                }
            });
            $(document).on('click', '.return-top', function(event) {
                event.preventDefault();
                jQuery('html, body').animate({
                    scrollTop: 0
                }, duration);
                return !1
            })
        },
        carouselProductThumbnail: function() {
            $('ol.flex-control-nav').each(function() {
                $(this).owlCarousel({
                    nav: !0,
                    navText: ['<span><i class="fas fa-chevron-left"></i></span>', '<span><i class="fas fa-chevron-right"></i></span>'],
                    margin: 10,
                    dots: !1,
                    responsive: {
                        0: {
                            items: 2,
                            nav: !1
                        },
                        640: {
                            items: 3,
                            nav: !1
                        },
                        768: {
                            items: 4,
                            nav: !1
                        },
                        992: {
                            items: 4
                        },
                        1200: {
                            items: 4
                        },
                        1400: {
                            items: 4
                        }
                    }
                })
            })
        },
        stickyMenu: function() {
            if ($('.gv-sticky-mobile').length > 0) {
                var sticky = new Waypoint.Sticky({
                    element: $('.gv-sticky-mobile')[0],
                    wrapper: '<div class="sticky-wrapper-mobile" />',
                })
            }
            if ($('.gv-sticky-menu').length > 0) {
                var sticky = new Waypoint.Sticky({
                    element: $('.gv-sticky-menu')[0],
                    offset: 0
                })
            }
        },
        other: function() {
            $('.team-block.team-v1 .team-image .socials-team .share-social').on('click', function(e) {
                e.preventDefault();
                if ($(this).parents('.team-block').hasClass('active')) {
                    $(this).parents('.team-block').removeClass('active')
                } else {
                    $(this).parents('.team-block').addClass('active')
                }
            });
            $('.popup-video').magnificPopup({
                type: 'iframe',
                fixedContentPos: !1
            });
            $(document).on('click', '.yith-wcwl-add-button.show a', function() {
                $(this).addClass('loading')
            });
            $(document).on('click', '.gva-search > a.control-search', function() {
                if ($(this).hasClass('search-open')) {
                    $(this).parents('.gva-search').removeClass('open');
                    $(this).removeClass('search-open')
                } else {
                    $(this).parents('.gva-search').addClass('open');
                    $(this).addClass('search-open')
                }
            });
            $('.gva-offcanvas-content .sidebar, .mini-cart-header .dropdown .minicart-content').perfectScrollbar();
            $('[data-toggle="tooltip"]').tooltip()
            $('.gva-portfolio-grid .portfolio-filter').each(function() {
                $(this).find('.btn-filter').each(function() {
                    let _btn = $(this);
                    let filter = _btn.attr('data-filter');
                    let items = _btn.parents('.gva-portfolio-grid').find('.isotope-items').first();
                    _btn.find('.count').first().html('(' + items.find('> ' + filter).length + ')')
                })
            })
        }
    }
    $(document).ready(function() {
        GaviasTheme.init()
    })
    $(window).on('load', function() {
        GaviasTheme.carouselProductThumbnail()
    })
})(jQuery);
var ajaxurl = "https://floorltech.com/wp-admin/admin-ajax.php";
document.documentElement.className = document.documentElement.className.replace('no-js', 'js');
var ajaxurl = "https://floorltech.com/wp-admin/admin-ajax.php";
window.RS_MODULES = window.RS_MODULES || {};
window.RS_MODULES.modules = window.RS_MODULES.modules || {};
window.RS_MODULES.waiting = window.RS_MODULES.waiting || [];
window.RS_MODULES.defered = !0;
window.RS_MODULES.moduleWaiting = window.RS_MODULES.moduleWaiting || {};
window.RS_MODULES.type = 'compiled';
(function($, w) {
    'use strict';
    let $window = $(w);
    $(document).ready(function() {
        let isEnable = "";
        let isEnableLazyMove = "";
        let speed = isEnableLazyMove ? '0.7' : '0.2';
        if (!isEnable) {
            return
        }
        if (typeof haCursor == 'undefined' || haCursor == null) {
            initiateHaCursorObject(speed)
        }
        setTimeout(function() {
            let targetCursor = $('.ha-cursor');
            if (targetCursor) {
                if (!isEnable) {
                    $('body').removeClass('hm-init-default-cursor-none');
                    $('.ha-cursor').addClass('ha-init-hide')
                } else {
                    $('body').addClass('hm-init-default-cursor-none');
                    $('.ha-cursor').removeClass('ha-init-hide')
                }
            }
        }, 500)
    })
}(jQuery, window));
const lazyloadRunObserver = () => {
    const lazyloadBackgrounds = document.querySelectorAll(`.e-con.e-parent:not(.e-lazyloaded)`);
    const lazyloadBackgroundObserver = new IntersectionObserver((entries) => {
        entries.forEach((entry) => {
            if (entry.isIntersecting) {
                let lazyloadBackground = entry.target;
                if (lazyloadBackground) {
                    lazyloadBackground.classList.add('e-lazyloaded')
                }
                lazyloadBackgroundObserver.unobserve(entry.target)
            }
        })
    }, {
        rootMargin: '200px 0px 200px 0px'
    });
    lazyloadBackgrounds.forEach((lazyloadBackground) => {
        lazyloadBackgroundObserver.observe(lazyloadBackground)
    })
};
const events = ['DOMContentLoaded', 'elementor/lazyload/observe', ];
events.forEach((event) => {
    document.addEventListener(event, lazyloadRunObserver)
});
if (typeof revslider_showDoubleJqueryError === "undefined") {
    function revslider_showDoubleJqueryError(sliderID) {
        console.log("You have some jquery.js library include that comes after the Slider Revolution files js inclusion.");
        console.log("To fix this, you can:");
        console.log("1. Set 'Module General Options' -> 'Advanced' -> 'jQuery & OutPut Filters' -> 'Put JS to Body' to on");
        console.log("2. Find the double jQuery.js inclusion and remove it");
        return "Double Included jQuery Library"
    }
};
(() => {
    var t;
    (t = jQuery)((function() {
        var e = window.location.href,
            c = void 0 !== document.title ? document.title : "",
            n = "no";
        try {
            n = void 0 !== navigator.userAgent && navigator.userAgent.match(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i) ? "yes" : "no"
        } catch (t) {}
        "no" == n && (n = void 0 !== screen.width && screen.width > 1025 ? "no" : "yes");
        var a = "",
            _ = {};

        function o() {
            localStorage.getItem("ht_ctc_storage") && (_ = localStorage.getItem("ht_ctc_storage"), _ = JSON.parse(_))
        }

        function i(t) {
            return !!_[t] && _[t]
        }

        function r(t, e) {
            o(), _[t] = e;
            var c = JSON.stringify(_);
            localStorage.setItem("ht_ctc_storage", c)
        }
        o();
        var s = "";
        ! function() {
            if ("undefined" != typeof ht_ctc_chat_var) s = ht_ctc_chat_var;
            else try {
                if (document.querySelector(".ht_ctc_chat_data")) {
                    var e = t(".ht_ctc_chat_data").attr("data-settings");
                    s = JSON.parse(e), window.ht_ctc_chat_var = s
                }
            } catch (t) {
                s = {}
            }
        }();
        var h, u = {};

        function d() {
            var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "open";
            f(), t(".ctc_cta_stick").remove(), "init" == e ? t(".ht_ctc_chat_greetings_box").show(70) : t(".ht_ctc_chat_greetings_box").show(400), t(".ht_ctc_chat_greetings_box").addClass("ctc_greetings_opened").removeClass("ctc_greetings_closed"), r("g_action", e), "user_opened" == e && r("g_user_action", e)
        }

        function l() {
            setTimeout((function() {
                g("chat_clicked")
            }), 500)
        }

        function g() {
            var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "close";
            "element" == e ? t(".ht_ctc_chat_greetings_box").hide(70) : t(".ht_ctc_chat_greetings_box").hide(400), t(".ht_ctc_chat_greetings_box").addClass("ctc_greetings_closed").removeClass("ctc_greetings_opened"), r("g_action", e), "user_closed" == e && r("g_user_action", e)
        }

        function p(t) {
            var e;
            "yes" == n ? "show" == s.dis_m && ((e = document.querySelector(".ht_ctc_desktop_chat")) && e.remove(), t.style.cssText = s.pos_m + s.css, v(t)) : "show" == s.dis_d && ((e = document.querySelector(".ht_ctc_mobile_chat")) && e.remove(), t.style.cssText = s.pos_d + s.css, v(t))
        }

        function v(e) {
            try {
                t(e).show(parseInt(s.se))
            } catch (t) {
                e.style.display = "block"
            }! function() {
                if (t(".ht_ctc_chat_greetings_box").length) {
                    if (s.g_device) {
                        if ("yes" !== n && "mobile" == s.g_device) return void t(".ht_ctc_chat_greetings_box").remove();
                        if ("yes" == n && "desktop" == s.g_device) return void t(".ht_ctc_chat_greetings_box").remove()
                    }
                    document.dispatchEvent(new CustomEvent("ht_ctc_event_after_chat_displayed", {
                        detail: {
                            ctc: s,
                            greetings_open: d,
                            greetings_close: g
                        }
                    })), s.g_init && "user_closed" !== i("g_user_action") && ("default" == s.g_init ? "yes" !== n && d("init") : "open" == s.g_init && d("init")), t(document).on("click", '.ctc_greetings, #ctc_greetings, .ctc_greetings_now, [href="#ctc_greetings"]', (function(t) {
                        t.preventDefault(), g("element"), d("element")
                    }))
                }
            }(),
            function() {
                if (document.querySelector(".ht_ctc_notification") && "stop" !== i("n_badge")) {
                    if (document.querySelector(".ctc_nb")) {
                        var e = t(".ht_ctc_badge").closest(".ht_ctc_style");
                        t(".ht_ctc_badge").css({
                            top: t(e).find(".ctc_nb").attr("data-nb_top"),
                            right: t(e).find(".ctc_nb").attr("data-nb_right")
                        })
                    }
                    var c = s.n_time ? 1e3 * s.n_time : "150";
                    setTimeout((function() {
                        t(".ht_ctc_notification").show(400)
                    }), c)
                }
            }(),
            function(e) {
                var c = t(e).hasClass("ht_ctc_entry_animation") ? 1200 : 120;
                setTimeout((function() {
                    e.classList.add("ht_ctc_animation", s.ani)
                }), c), t(".ht-ctc-chat").hover((function() {
                    t(".ht-ctc-chat .ht-ctc-cta-hover").show(120)
                }), (function() {
                    t(".ht-ctc-chat .ht-ctc-cta-hover").hide(100)
                }))
            }(e)
        }

        function m() {
            t(".for_greetings_header_image_badge").length && (t(".for_greetings_header_image_badge").addClass("g_header_badge_online"), t(".for_greetings_header_image_badge").show())
        }

        function f() {
            document.querySelector(".ht_ctc_notification") && (r("n_badge", "stop"), t(".ht_ctc_notification").remove())
        }

        function y(_) {
            document.dispatchEvent(new CustomEvent("ht_ctc_event_number", {
                detail: {
                    ctc: s
                }
            }));
            var o = s.number,
                i = s.pre_filled;
            _.hasAttribute("data-number") && "" !== _.getAttribute("data-number") && (o = _.getAttribute("data-number")), _.hasAttribute("data-pre_filled") && (i = _.getAttribute("data-pre_filled"));
            try {
                i = i.replaceAll("%", "%25");
                var r = window.location.href;
                i = i.replace(/\[url]/gi, r), i = encodeURIComponent(decodeURI(i))
            } catch (t) {}
            if ("" != o) {
                var h = "https://wa.me/" + o + "?text=" + i,
                    d = s.url_target_d ? s.url_target_d : "_blank";
                "yes" == n ? (s.url_structure_m && (h = "whatsapp://send?phone=" + o + "&text=" + i, d = "_self"), s.custom_url_m && "" !== s.custom_url_m && (h = s.custom_url_m)) : (s.url_structure_d && (h = "https://web.whatsapp.com/send?phone=" + o + "&text=" + i), s.custom_url_d && "" !== s.custom_url_d && (h = s.custom_url_d));
                var l = "popup" == d ? "scrollbars=no,resizable=no,status=no,location=no,toolbar=no,menubar=no,width=788,height=514,left=100,top=100" : "noopener";
                window.open(h, d, l), s.chat_number = o,
                    function() {
                        if (s.analytics && "session" == s.analytics) {
                            if (sessionStorage.getItem("ht_ctc_analytics")) return;
                            sessionStorage.setItem("ht_ctc_analytics", "done")
                        }

                        function t(t) {
                            var n = s.chat_number && "" !== s.chat_number ? s.chat_number : s.number;
                            try {
                                document.dispatchEvent(new CustomEvent("ht_ctc_event_apply_variables", {
                                    detail: {
                                        v: t
                                    }
                                })), t = (t = (t = (t = void 0 !== window.apply_variables_value ? window.apply_variables_value : t).replace("{number}", n)).replace("{title}", c)).replace("{url}", e)
                            } catch (t) {}
                            return t
                        }
                        document.dispatchEvent(new CustomEvent("ht_ctc_event_analytics"));
                        var n = s.chat_number && "" !== s.chat_number ? s.chat_number : s.number,
                            a = {},
                            _ = "Click to Chat for WhatsApp",
                            o = "chat: " + n,
                            i = c + ", " + e;
                        if (s.ga) {
                            var r = s.g_an_event_name && "" !== s.g_an_event_name ? s.g_an_event_name : "click to chat";
                            r = t(r), u.g_an_params && u.g_an_params.forEach((function(e) {
                                if (u[e]) {
                                    var c = u[e],
                                        n = c.key,
                                        _ = c.value;
                                    n = t(n), _ = t(_), a[n] = _
                                }
                            }));
                            var h = 0,
                                d = "no";
                            if ("undefined" != typeof dataLayer) try {
                                var l = function(t) {
                                    t = t.toUpperCase(), g.includes(t) || (g.push(t), (t.startsWith("G-") || t.startsWith("GT-")) && (a.send_to = t, gtag("event", r, a), h++))
                                };
                                "undefined" == typeof gtag && (window.gtag = function() {
                                    dataLayer.push(arguments)
                                }, d = "yes");
                                var g = [];
                                if (window.google_tag_data && window.google_tag_data.tidr && window.google_tag_data.tidr.destination)
                                    for (var p in window.google_tag_data.tidr.destination) l(p);
                                dataLayer.forEach((function(t) {
                                    "config" == t[0] && t[1] && (p = t[1], l(p))
                                }))
                            } catch (t) {}
                            0 == h && "no" == d && ("undefined" != typeof gtag ? gtag("event", r, a) : "undefined" != typeof ga && void 0 !== ga.getAll ? ga.getAll()[0].send("event", _, o, i) : "undefined" != typeof __gaTracker && __gaTracker("send", "event", _, o, i))
                        }
                        if ("undefined" != typeof dataLayer && dataLayer.push({
                                event: "Click to Chat",
                                type: "chat",
                                number: n,
                                title: c,
                                url: e,
                                event_category: _,
                                event_label: i,
                                event_action: o,
                                ref: "dataLayer push"
                            }), s.ads && "undefined" != typeof gtag_report_conversion && gtag_report_conversion(), s.fb && "undefined" != typeof fbq) {
                            var v = s.pixel_event_name && "" !== s.pixel_event_name ? s.pixel_event_name : "Click to Chat by HoliThemes",
                                m = u.pixel_event_type && "" !== u.pixel_event_type ? u.pixel_event_type : "trackCustom",
                                f = {};
                            u.pixel_params && u.pixel_params.forEach((function(e) {
                                if (u[e]) {
                                    var c = u[e],
                                        n = c.key,
                                        a = c.value;
                                    n = t(n), a = t(a), f[n] = a
                                }
                            })), fbq(m, v, f)
                        }
                    }(),
                    function(e) {
                        if (s.hook_url) {
                            var c = {};
                            if (s.hook_v) {
                                c = void 0 !== b ? b : s.hook_v;
                                var n = {},
                                    a = 1;
                                c.forEach((function(t) {
                                    n["value" + a] = t, a++
                                })), s.hook_v = n
                            }
                            document.dispatchEvent(new CustomEvent("ht_ctc_event_hook", {
                                detail: {
                                    ctc: s,
                                    number: e
                                }
                            }));
                            var _ = s.hook_url;
                            if (c = s.hook_v, s.webhook_format && "json" == s.webhook_format) var o = c;
                            else o = JSON.stringify(c);
                            t.ajax({
                                url: _,
                                type: "POST",
                                mode: "no-cors",
                                data: o,
                                success: function(t) {}
                            })
                        }
                    }(o), f()
            } else t(".ht-ctc-chat").html(a)
        }
        "undefined" != typeof ht_ctc_variables ? u = ht_ctc_variables : (u = {
                g_an_event_name: "click to chat",
                pixel_event_name: "Click to Chat by HoliThemes",
                pixel_event_type: "trackCustom",
                g_an_params: ["g_an_param_1", "g_an_param_2", "g_an_param_3"],
                g_an_param_1: {
                    key: "number",
                    value: "{number}"
                },
                g_an_param_2: {
                    key: "title",
                    value: "{title}"
                },
                g_an_param_3: {
                    key: "url",
                    value: "{url}"
                },
                pixel_params: ["pixel_param_1", "pixel_param_2", "pixel_param_3", "pixel_param_4"],
                pixel_param_1: {
                    key: "Category",
                    value: "Click to Chat for WhatsApp"
                },
                pixel_param_2: {
                    key: "return_type",
                    value: "chat"
                },
                pixel_param_3: {
                    key: "ID",
                    value: "{number}"
                },
                pixel_param_4: {
                    key: "Title",
                    value: "{title}"
                }
            }, window.ht_ctc_variables = u),
            function() {
                var e = document.querySelector(".ht_ctc_chat_data");
                e && (a = t(".ht_ctc_chat_data").attr("data-no_number"), e.remove())
            }(), document.dispatchEvent(new CustomEvent("ht_ctc_event_settings", {
                detail: {
                    ctc: s
                }
            })), (h = document.querySelector(".ht-ctc-chat")) && (document.dispatchEvent(new CustomEvent("ht_ctc_event_chat")), function(t) {
                "yes" == s.schedule ? document.dispatchEvent(new CustomEvent("ht_ctc_event_display", {
                    detail: {
                        ctc: s,
                        display_chat: p,
                        ht_ctc_chat: t,
                        online_content: m
                    }
                })) : (p(t), m())
            }(h), h.addEventListener("click", (function() {
                t(".ht_ctc_chat_greetings_box").length || y(h)
            })), t(".ht_ctc_chat_greetings_box").length && t(document).on("click", ".ht_ctc_chat_style", (function(e) {
                t(".ht_ctc_chat_greetings_box").hasClass("ctc_greetings_opened") ? g("user_closed") : d("user_opened")
            })), t(document).on("click", ".ctc_greetings_close_btn", (function(t) {
                g("user_closed")
            })), t(document).on("click", ".ht_ctc_chat_greetings_box_link", (function(e) {
                e.preventDefault(), document.querySelector("#ctc_opt") ? t("#ctc_opt").is(":checked") || i("g_optin") ? (y(h), l()) : t(".ctc_opt_in").show(400).fadeOut("1").fadeIn("1") : (y(h), l()), document.dispatchEvent(new CustomEvent("ht_ctc_event_greetings"))
            })), document.querySelector("#ctc_opt") && t("#ctc_opt").on("change", (function(e) {
                t("#ctc_opt").is(":checked") && (t(".ctc_opt_in").hide(100), r("g_optin", "y"), setTimeout((function() {
                    y(h), l()
                }), 500))
            }))), t(document).on("click", ".ht-ctc-sc-chat", (function() {
                y(this)
            })), t(document).on("click", ".ctc_chat, #ctc_chat", (function(e) {
                y(this), t(this).hasClass("ctc_woo_place") && e.preventDefault()
            })), t(document).on("click", '[href="#ctc_chat"]', (function(t) {
                t.preventDefault(), y(this)
            }));
        var b = s.hook_v ? s.hook_v : ""
    }))
})();
(function($) {
    "use strict";
    jQuery(document).ready(function() {
        $('.widget_product_categories  ul.product-categories > li:has(ul)').addClass("has-sub");
        $('.widget_product_categories  ul.product-categories > li:has(ul) > a').after('<span class="cat-caret"></span>');
        $('.widget_product_categories  ul.product-categories > li .cat-caret').click(function() {
            var checkElement = $(this).next();
            $('.widget_product_categories  ul.product-categories li').removeClass('active');
            $(this).closest('li').addClass('active');
            if ((checkElement.is('ul')) && (checkElement.is(':visible'))) {
                $(this).closest('li').removeClass('active');
                checkElement.slideUp('normal')
            }
            if ((checkElement.is('ul')) && (!checkElement.is(':visible'))) {
                $('.widget_product_categories ul.product-categories ul:visible').slideUp('normal');
                checkElement.slideDown('normal')
            }
            if (checkElement.is('ul')) {
                return !1
            } else {
                return !0
            }
        })
    });
    jQuery(document).on('click', '.qty-plus', function(e) {
        e.preventDefault();
        var quantityInput = jQuery(this).parents('.quantity').find('input.qty'),
            step = parseInt(quantityInput.attr('step'), 10),
            newValue = parseInt(quantityInput.val(), 10) + step,
            maxValue = parseInt(quantityInput.attr('max'), 10);
        if (!maxValue) {
            maxValue = 9999999999
        }
        if (newValue <= maxValue) {
            quantityInput.val(newValue);
            quantityInput.change()
        }
    });
    jQuery(document).on('click', '.qty-minus', function(e) {
        e.preventDefault();
        var quantityInput = jQuery(this).parents('.quantity').find('input.qty'),
            step = parseInt(quantityInput.attr('step'), 10),
            newValue = parseInt(quantityInput.val(), 10) - step,
            minValue = parseInt(quantityInput.attr('min'), 10);
        if (!minValue) {
            minValue = 1
        }
        if (newValue >= minValue) {
            quantityInput.val(newValue);
            quantityInput.change()
        }
    })
})(jQuery);
! function(t) {
    var e = {};

    function n(r) {
        if (e[r]) return e[r].exports;
        var i = e[r] = {
            i: r,
            l: !1,
            exports: {}
        };
        return t[r].call(i.exports, i, i.exports, n), i.l = !0, i.exports
    }
    n.m = t, n.c = e, n.d = function(t, e, r) {
        n.o(t, e) || Object.defineProperty(t, e, {
            enumerable: !0,
            get: r
        })
    }, n.r = function(t) {
        "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(t, Symbol.toStringTag, {
            value: "Module"
        }), Object.defineProperty(t, "__esModule", {
            value: !0
        })
    }, n.t = function(t, e) {
        if (1 & e && (t = n(t)), 8 & e) return t;
        if (4 & e && "object" == typeof t && t && t.__esModule) return t;
        var r = Object.create(null);
        if (n.r(r), Object.defineProperty(r, "default", {
                enumerable: !0,
                value: t
            }), 2 & e && "string" != typeof t)
            for (var i in t) n.d(r, i, function(e) {
                return t[e]
            }.bind(null, i));
        return r
    }, n.n = function(t) {
        var e = t && t.__esModule ? function() {
            return t.default
        } : function() {
            return t
        };
        return n.d(e, "a", e), e
    }, n.o = function(t, e) {
        return Object.prototype.hasOwnProperty.call(t, e)
    }, n.p = "", n(n.s = 1)
}([function(t, e) {
    t.exports = jQuery
}, function(t, e, n) {
    n(2), n(6), t.exports = n(4)
}, function(t, e, n) {
    var r, i, o, s;
    /*!
     * @fileOverview TouchSwipe - jQuery Plugin @version 1.6.18 / SANDBOXED VERSION FOR TP
     * @author Matt Bryson http://www.github.com/mattbryson
     * @see https://github.com/mattbryson/TouchSwipe-Jquery-Plugin
     * @see http://labs.rampinteractive.co.uk/touchSwipe/
     * @see http://plugins.jquery.com/project/touchSwipe
     * @license
     * Copyright (c) 2010-2015 Matt Bryson
     * Dual licensed under the MIT or GPL Version 2 licenses.
     *
     */
    s = function(t) {
        "use strict";
        var e = "left",
            n = "right",
            r = "up",
            i = "down",
            o = "none",
            s = "doubletap",
            a = "longtap",
            u = "horizontal",
            l = "vertical",
            h = "all",
            c = "move",
            f = "end",
            p = "cancel",
            d = "ontouchstart" in window,
            g = window.navigator.msPointerEnabled && !window.PointerEvent && !d,
            D = (window.PointerEvent || window.navigator.msPointerEnabled) && !d,
            m = "TouchSwipe";

        function v(v, _) {
            _ = t.extend({}, _);
            var y = d || D || !_.fallbackToMouseEvents,
                x = y ? D ? g ? "MSPointerDown" : "pointerdown" : "touchstart" : "mousedown",
                w = y ? D ? g ? "MSPointerMove" : "pointermove" : "touchmove" : "mousemove",
                C = y ? D ? g ? "MSPointerUp" : "pointerup" : "touchend" : "mouseup",
                F = y ? D ? "mouseleave" : null : "mouseleave",
                E = D ? g ? "MSPointerCancel" : "pointercancel" : "touchcancel",
                b = 0,
                T = null,
                M = null,
                A = 0,
                P = 0,
                S = 0,
                O = 1,
                k = 0,
                B = 0,
                L = null,
                N = t(v),
                R = "start",
                X = 0,
                Y = {},
                I = 0,
                z = 0,
                H = 0,
                W = 0,
                V = 0,
                j = null,
                U = null;
            try {
                N.on(x, q), N.on(E, Q)
            } catch (v) {
                t.error("events not supported " + x + "," + E + " on jQuery.swipe")
            }

            function q(o) {
                if (!0 !== N.data(m + "_intouch") && !(0 < t(o.target).closest(_.excludedElements, N).length)) {
                    var s = o.originalEvent ? o.originalEvent : o;
                    if (!s.pointerType || "mouse" != s.pointerType || 0 != _.fallbackToMouseEvents) {
                        var a, u, l = s.touches,
                            c = l ? l[0] : s;
                        return R = "start", l ? X = l.length : !1 !== _.preventDefaultEvents && o.preventDefault(), B = M = T = null, O = 1, k = S = P = A = b = 0, (u = {})[e] = yt(e), u[n] = yt(n), u.up = yt(r), u[i] = yt(i), L = u, dt(), mt(0, c), !l || X === _.fingers || _.fingers === h || st() ? (I = Ft(), 2 == X && (mt(1, l[1]), P = S = wt(Y[0].start, Y[1].start)), (_.swipeStatus || _.pinchStatus) && (a = tt(s, R))) : a = !1, !1 === a ? (tt(s, R = p), a) : (_.hold && (U = setTimeout(t.proxy((function() {
                            N.trigger("hold", [s.target]), _.hold && (a = _.hold.call(N, s, s.target))
                        }), this), _.longTapThreshold)), Dt(!0), null)
                    }
                }
            }

            function G(s) {
                var a = s.originalEvent ? s.originalEvent : s;
                if (R !== f && R !== p && !gt()) {
                    var d, g, D, m, v, y, x, w = a.touches,
                        C = vt(w ? w[0] : a);
                    if (z = Ft(), w && (X = w.length), _.hold && clearTimeout(U), R = c, 2 == X && (0 == P ? (mt(1, w[1]), P = S = wt(Y[0].start, Y[1].start)) : (vt(w[1]), S = wt(Y[0].end, Y[1].end), Y[0].end, Y[1].end, B = O < 1 ? "out" : "in"), O = (S / P * 1).toFixed(2), k = Math.abs(P - S)), X === _.fingers || _.fingers === h || !w || st()) {
                        if (T = Ct(C.start, C.end), function(t, s) {
                                if (!1 !== _.preventDefaultEvents)
                                    if (_.allowPageScroll === o) t.preventDefault();
                                    else {
                                        var a = "auto" === _.allowPageScroll;
                                        switch (s) {
                                            case e:
                                                (_.swipeLeft && a || !a && _.allowPageScroll != u) && t.preventDefault();
                                                break;
                                            case n:
                                                (_.swipeRight && a || !a && _.allowPageScroll != u) && t.preventDefault();
                                                break;
                                            case r:
                                                (_.swipeUp && a || !a && _.allowPageScroll != l) && t.preventDefault();
                                                break;
                                            case i:
                                                (_.swipeDown && a || !a && _.allowPageScroll != l) && t.preventDefault()
                                        }
                                    }
                            }(s, M = Ct(C.last, C.end)), y = C.start, x = C.end, b = Math.round(Math.sqrt(Math.pow(x.x - y.x, 2) + Math.pow(x.y - y.y, 2))), A = xt(), function(t, e) {
                                t != o && (e = Math.max(e, _t(t)), L[t].distance = e)
                            }(T, b), d = tt(a, R), !_.triggerOnTouchEnd || _.triggerOnTouchLeave) {
                            var F = !0;
                            _.triggerOnTouchLeave && (D = {
                                left: (v = (m = t(m = this)).offset()).left,
                                right: v.left + m.outerWidth(),
                                top: v.top,
                                bottom: v.top + m.outerHeight()
                            }, F = (g = C.end).x > D.left && g.x < D.right && g.y > D.top && g.y < D.bottom), !_.triggerOnTouchEnd && F ? R = J(c) : _.triggerOnTouchLeave && !F && (R = J(f)), R != p && R != f || tt(a, R)
                        }
                    } else tt(a, R = p);
                    !1 === d && tt(a, R = p)
                }
            }

            function K(t) {
                var e, n = t.originalEvent ? t.originalEvent : t,
                    r = n.touches;
                if (r) {
                    if (r.length && !gt()) return e = n, H = Ft(), W = e.touches.length + 1, !0;
                    if (r.length && gt()) return !0
                }
                return gt() && (X = W), z = Ft(), A = xt(), rt() || !nt() ? tt(n, R = p) : _.triggerOnTouchEnd || !1 === _.triggerOnTouchEnd && R === c ? (!1 !== _.preventDefaultEvents && !1 !== t.cancelable && t.preventDefault(), tt(n, R = f)) : !_.triggerOnTouchEnd && ct() ? et(n, R = f, "tap") : R === c && tt(n, R = p), Dt(!1), null
            }

            function Q() {
                S = P = I = z = X = 0, O = 1, dt(), Dt(!1)
            }

            function Z(t) {
                var e = t.originalEvent ? t.originalEvent : t;
                _.triggerOnTouchLeave && tt(e, R = J(f))
            }

            function $() {
                N.off(x, q), N.off(E, Q), N.off(w, G), N.off(C, K), F && N.off(F, Z), Dt(!1)
            }

            function J(t) {
                var e = t,
                    n = it(),
                    r = nt(),
                    i = rt();
                return !n || i ? e = p : !r || t != c || _.triggerOnTouchEnd && !_.triggerOnTouchLeave ? !r && t == f && _.triggerOnTouchLeave && (e = p) : e = f, e
            }

            function tt(t, e) {
                var n, r = t.touches;
                return (at() && ut() || ut()) && (n = et(t, e, "swipe")), (ot() && st() || st()) && !1 !== n && (n = et(t, e, "pinch")), pt() && ft() && !1 !== n ? n = et(t, e, s) : A > _.longTapThreshold && b < 10 && _.longTap && !1 !== n ? n = et(t, e, a) : 1 !== X && d || !(isNaN(b) || b < _.threshold) || !ct() || !1 === n || (n = et(t, e, "tap")), e === p && Q(), e === f && (r && r.length || Q()), n
            }

            function et(o, u, l) {
                var h;
                if ("swipe" == l) {
                    if (N.trigger("swipeStatus", [u, T || null, b || 0, A || 0, X, Y, M]), _.swipeStatus && !1 === (h = _.swipeStatus.call(N, o, u, T || null, b || 0, A || 0, X, Y, M))) return !1;
                    if (u == f && at()) {
                        if (clearTimeout(j), clearTimeout(U), N.trigger("swipe", [T, b, A, X, Y, M]), _.swipe && !1 === (h = _.swipe.call(N, o, T, b, A, X, Y, M))) return !1;
                        switch (T) {
                            case e:
                                N.trigger("swipeLeft", [T, b, A, X, Y, M]), _.swipeLeft && (h = _.swipeLeft.call(N, o, T, b, A, X, Y, M));
                                break;
                            case n:
                                N.trigger("swipeRight", [T, b, A, X, Y, M]), _.swipeRight && (h = _.swipeRight.call(N, o, T, b, A, X, Y, M));
                                break;
                            case r:
                                N.trigger("swipeUp", [T, b, A, X, Y, M]), _.swipeUp && (h = _.swipeUp.call(N, o, T, b, A, X, Y, M));
                                break;
                            case i:
                                N.trigger("swipeDown", [T, b, A, X, Y, M]), _.swipeDown && (h = _.swipeDown.call(N, o, T, b, A, X, Y, M))
                        }
                    }
                }
                if ("pinch" == l) {
                    if (N.trigger("pinchStatus", [u, B || null, k || 0, A || 0, X, O, Y]), _.pinchStatus && !1 === (h = _.pinchStatus.call(N, o, u, B || null, k || 0, A || 0, X, O, Y))) return !1;
                    if (u == f && ot()) switch (B) {
                        case "in":
                            N.trigger("pinchIn", [B || null, k || 0, A || 0, X, O, Y]), _.pinchIn && (h = _.pinchIn.call(N, o, B || null, k || 0, A || 0, X, O, Y));
                            break;
                        case "out":
                            N.trigger("pinchOut", [B || null, k || 0, A || 0, X, O, Y]), _.pinchOut && (h = _.pinchOut.call(N, o, B || null, k || 0, A || 0, X, O, Y))
                    }
                }
                return "tap" == l ? u !== p && u !== f || (clearTimeout(j), clearTimeout(U), ft() && !pt() ? (V = Ft(), j = setTimeout(t.proxy((function() {
                    V = null, N.trigger("tap", [o.target]), _.tap && (h = _.tap.call(N, o, o.target))
                }), this), _.doubleTapThreshold)) : (V = null, N.trigger("tap", [o.target]), _.tap && (h = _.tap.call(N, o, o.target)))) : l == s ? u !== p && u !== f || (clearTimeout(j), clearTimeout(U), V = null, N.trigger("doubletap", [o.target]), _.doubleTap && (h = _.doubleTap.call(N, o, o.target))) : l == a && (u !== p && u !== f || (clearTimeout(j), V = null, N.trigger("longtap", [o.target]), _.longTap && (h = _.longTap.call(N, o, o.target)))), h
            }

            function nt() {
                var t = !0;
                return null !== _.threshold && (t = b >= _.threshold), t
            }

            function rt() {
                var t = !1;
                return null !== _.cancelThreshold && null !== T && (t = _t(T) - b >= _.cancelThreshold), t
            }

            function it() {
                return !(_.maxTimeThreshold && A >= _.maxTimeThreshold)
            }

            function ot() {
                var t = lt(),
                    e = ht(),
                    n = null === _.pinchThreshold || k >= _.pinchThreshold;
                return t && e && n
            }

            function st() {
                return _.pinchStatus || _.pinchIn || _.pinchOut
            }

            function at() {
                var t = it(),
                    e = nt(),
                    n = lt(),
                    r = ht();
                return !rt() && r && n && e && t
            }

            function ut() {
                return _.swipe || _.swipeStatus || _.swipeLeft || _.swipeRight || _.swipeUp || _.swipeDown
            }

            function lt() {
                return X === _.fingers || _.fingers === h || !d
            }

            function ht() {
                return 0 !== Y[0].end.x
            }

            function ct() {
                return _.tap
            }

            function ft() {
                return !!_.doubleTap
            }

            function pt() {
                if (null == V) return !1;
                var t = Ft();
                return ft() && t - V <= _.doubleTapThreshold
            }

            function dt() {
                W = H = 0
            }

            function gt() {
                var t = !1;
                return H && Ft() - H <= _.fingerReleaseThreshold && (t = !0), t
            }

            function Dt(t) {
                N && (!0 === t ? (N.on(w, G), N.on(C, K), F && N.on(F, Z)) : (N.off(w, G, !1), N.off(C, K, !1), F && N.off(F, Z, !1)), N.data(m + "_intouch", !0 === t))
            }

            function mt(t, e) {
                var n = {
                    start: {
                        x: 0,
                        y: 0
                    },
                    last: {
                        x: 0,
                        y: 0
                    },
                    end: {
                        x: 0,
                        y: 0
                    }
                };
                return n.start.x = n.last.x = n.end.x = e.pageX || e.clientX, n.start.y = n.last.y = n.end.y = e.pageY || e.clientY, Y[t] = n
            }

            function vt(t) {
                var e = void 0 !== t.identifier ? t.identifier : 0,
                    n = Y[e] || null;
                return null === n && (n = mt(e, t)), n.last.x = n.end.x, n.last.y = n.end.y, n.end.x = t.pageX || t.clientX, n.end.y = t.pageY || t.clientY, n
            }

            function _t(t) {
                if (L[t]) return L[t].distance
            }

            function yt(t) {
                return {
                    direction: t,
                    distance: 0
                }
            }

            function xt() {
                return z - I
            }

            function wt(t, e) {
                var n = Math.abs(t.x - e.x),
                    r = Math.abs(t.y - e.y);
                return Math.round(Math.sqrt(n * n + r * r))
            }

            function Ct(t, s) {
                if (u = s, (a = t).x == u.x && a.y == u.y) return o;
                var a, u, l, h, c, f, p, d, g = (h = s, c = (l = t).x - h.x, f = h.y - l.y, p = Math.atan2(f, c), (d = Math.round(180 * p / Math.PI)) < 0 && (d = 360 - Math.abs(d)), d);
                return g <= 45 && 0 <= g || g <= 360 && 315 <= g ? e : 135 <= g && g <= 225 ? n : 45 < g && g < 135 ? i : r
            }

            function Ft() {
                return (new Date).getTime()
            }
            this.enable = function() {
                return this.disable(), N.on(x, q), N.on(E, Q), N
            }, this.disable = function() {
                return $(), N
            }, this.destroy = function() {
                $(), N.data(m, null), N = null
            }, this.option = function(e, n) {
                if ("object" == typeof e) _ = t.extend(_, e);
                else if (void 0 !== _[e]) {
                    if (void 0 === n) return _[e];
                    _[e] = n
                } else {
                    if (!e) return _;
                    t.error("Option " + e + " does not exist on jQuery.swipe.options")
                }
                return null
            }
        }
        t.fn.rsswipe = function(e) {
            var n = t(this),
                r = n.data(m);
            if (r && "string" == typeof e) {
                if (r[e]) return r[e].apply(r, Array.prototype.slice.call(arguments, 1));
                t.error("Method " + e + " does not exist on jQuery.rsswipe")
            } else if (r && "object" == typeof e) r.option.apply(r, arguments);
            else if (!(r || "object" != typeof e && e)) return function(e) {
                return !e || void 0 !== e.allowPageScroll || void 0 === e.swipe && void 0 === e.swipeStatus || (e.allowPageScroll = o), void 0 !== e.click && void 0 === e.tap && (e.tap = e.click), e = e || {}, e = t.extend({}, t.fn.rsswipe.defaults, e), this.each((function() {
                    var n = t(this),
                        r = n.data(m);
                    r || (r = new v(this, e), n.data(m, r))
                }))
            }.apply(this, arguments);
            return n
        }, t.fn.rsswipe.version = "1.6.18", t.fn.rsswipe.defaults = {
            fingers: 1,
            threshold: 75,
            cancelThreshold: null,
            pinchThreshold: 20,
            maxTimeThreshold: null,
            fingerReleaseThreshold: 250,
            longTapThreshold: 500,
            doubleTapThreshold: 200,
            swipe: null,
            swipeLeft: null,
            swipeRight: null,
            swipeUp: null,
            swipeDown: null,
            swipeStatus: null,
            pinchIn: null,
            pinchOut: null,
            pinchStatus: null,
            click: null,
            tap: null,
            doubleTap: null,
            longTap: null,
            hold: null,
            triggerOnTouchEnd: !0,
            triggerOnTouchLeave: !1,
            allowPageScroll: "auto",
            fallbackToMouseEvents: !0,
            excludedElements: ".noSwipe",
            preventDefaultEvents: !0
        }, t.fn.rsswipe.phases = {
            PHASE_START: "start",
            PHASE_MOVE: c,
            PHASE_END: f,
            PHASE_CANCEL: p
        }, t.fn.rsswipe.directions = {
            LEFT: e,
            RIGHT: n,
            UP: r,
            DOWN: i,
            IN: "in",
            OUT: "out"
        }, t.fn.rsswipe.pageScroll = {
            NONE: o,
            HORIZONTAL: u,
            VERTICAL: l,
            AUTO: "auto"
        }, t.fn.rsswipe.fingers = {
            ONE: 1,
            TWO: 2,
            THREE: 3,
            FOUR: 4,
            FIVE: 5,
            ALL: h
        }
    }, n(3).jQuery ? (i = [n(0)], void 0 === (o = "function" == typeof(r = s) ? r.apply(e, i) : r) || (t.exports = o)) : t.exports ? s(n(0)) : s(jQuery)
}, function(t, e) {
    (function(e) {
        t.exports = e
    }).call(this, {})
}, function(t, e) {
    var n;
    (n = jQuery).waitForImages = {
        hasImageProperties: ["backgroundImage", "listStyleImage", "borderImage", "borderCornerImage"]
    }, n.expr.pseudos.uncached = function(t) {
        var e = document.createElement("img");
        return e.src = t.src, n(t).is('img[src!=""]') && !e.complete
    }, n.fn.waitForImages = function(t, e, r) {
        if (n.isPlainObject(t) && (e = t.each, r = t.waitForAll, t = t.finished), t = t || n.noop, e = e || n.noop, r = !!r, !n.isFunction(t) || !n.isFunction(e)) throw new TypeError("An invalid callback was supplied.");
        return this.each((function() {
            var i = n(this),
                o = [];
            if (r) {
                var s = n.waitForImages.hasImageProperties || [],
                    a = /url\((['"]?)(.*?)\1\)/g;
                i.find("*").each((function() {
                    var t = n(this);
                    t.is("img:uncached") && o.push({
                        src: t.attr("src"),
                        element: t[0]
                    }), n.each(s, (function(e, n) {
                        var r, i = t.css(n);
                        if (!i) return !0;
                        for (; r = a.exec(i);) o.push({
                            src: r[2],
                            element: t[0]
                        })
                    }))
                }))
            } else i.find("img:uncached").each((function() {
                o.push({
                    src: this.src,
                    element: this
                })
            }));
            var u = o.length,
                l = 0;
            0 == u && t.call(i[0]), n.each(o, (function(r, o) {
                var s = new Image;
                n(s).bind("load error", (function(n) {
                    if (l++, e.call(o.element, l, u, "load" == n.type), l == u) return t.call(i[0]), !1
                })), s.src = o.src
            }))
        }))
    }
}, , function(t, e, n) {
    "use strict";

    function r(t) {
        if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
        return t
    }

    function i(t, e) {
        t.prototype = Object.create(e.prototype), t.prototype.constructor = t, t.__proto__ = e
    }
    /*!
     * GSAP 3.9.1
     * https://greensock.com
     *
     * @license Copyright 2008-2021, GreenSock. All rights reserved.
     * Subject to the terms at https://greensock.com/standard-license or for
     * Club GreenSock members, the agreement issued with that membership.
     * @author: Jack Doyle, jack@greensock.com
     */
    n.r(e);
    var o, s, a, u, l, h, c, f, p, d, g, D, m, v = {
            autoSleep: 120,
            force3D: "auto",
            nullTargetWarn: 1,
            units: {
                lineHeight: ""
            }
        },
        _ = {
            duration: .5,
            overwrite: !1,
            delay: 0
        },
        y = 1e8,
        x = 2 * Math.PI,
        w = x / 4,
        C = 0,
        F = Math.sqrt,
        E = Math.cos,
        b = Math.sin,
        T = function(t) {
            return "string" == typeof t
        },
        M = function(t) {
            return "function" == typeof t
        },
        A = function(t) {
            return "number" == typeof t
        },
        P = function(t) {
            return void 0 === t
        },
        S = function(t) {
            return "object" == typeof t
        },
        O = function(t) {
            return !1 !== t
        },
        k = function() {
            return "undefined" != typeof window
        },
        B = function(t) {
            return M(t) || T(t)
        },
        L = "function" == typeof ArrayBuffer && ArrayBuffer.isView || function() {},
        N = Array.isArray,
        R = /(?:-?\.?\d|\.)+/gi,
        X = /[-+=.]*\d+[.e\-+]*\d*[e\-+]*\d*/g,
        Y = /[-+=.]*\d+[.e-]*\d*[a-z%]*/g,
        I = /[-+=.]*\d+\.?\d*(?:e-|e\+)?\d*/gi,
        z = /[+-]=-?[.\d]+/,
        H = /[^,'"\[\]\s]+/gi,
        W = /[\d.+\-=]+(?:e[-+]\d*)*/i,
        V = {},
        j = {},
        U = function(t) {
            return (j = mt(t, V)) && nn
        },
        q = function(t, e) {
            return console.warn("Invalid property", t, "set to", e, "Missing plugin? gsap.registerPlugin()")
        },
        G = function(t, e) {
            return !e && console.warn(t)
        },
        K = function(t, e) {
            return t && (V[t] = e) && j && (j[t] = e) || V
        },
        Q = function() {
            return 0
        },
        Z = {},
        $ = [],
        J = {},
        tt = {},
        et = {},
        nt = 30,
        rt = [],
        it = "",
        ot = function(t) {
            var e, n, r = t[0];
            if (S(r) || M(r) || (t = [t]), !(e = (r._gsap || {}).harness)) {
                for (n = rt.length; n-- && !rt[n].targetTest(r););
                e = rt[n]
            }
            for (n = t.length; n--;) t[n] && (t[n]._gsap || (t[n]._gsap = new be(t[n], e))) || t.splice(n, 1);
            return t
        },
        st = function(t) {
            return t._gsap || ot(Ut(t))[0]._gsap
        },
        at = function(t, e, n) {
            return (n = t[e]) && M(n) ? t[e]() : P(n) && t.getAttribute && t.getAttribute(e) || n
        },
        ut = function(t, e) {
            return (t = t.split(",")).forEach(e) || t
        },
        lt = function(t) {
            return Math.round(1e5 * t) / 1e5 || 0
        },
        ht = function(t) {
            return Math.round(1e7 * t) / 1e7 || 0
        },
        ct = function(t, e) {
            for (var n = e.length, r = 0; t.indexOf(e[r]) < 0 && ++r < n;);
            return r < n
        },
        ft = function() {
            var t, e, n = $.length,
                r = $.slice(0);
            for (J = {}, $.length = 0, t = 0; t < n; t++)(e = r[t]) && e._lazy && (e.render(e._lazy[0], e._lazy[1], !0)._lazy = 0)
        },
        pt = function(t, e, n, r) {
            $.length && ft(), t.render(e, n, r), $.length && ft()
        },
        dt = function(t) {
            var e = parseFloat(t);
            return (e || 0 === e) && (t + "").match(H).length < 2 ? e : T(t) ? t.trim() : t
        },
        gt = function(t) {
            return t
        },
        Dt = function(t, e) {
            for (var n in e) n in t || (t[n] = e[n]);
            return t
        },
        mt = function(t, e) {
            for (var n in e) t[n] = e[n];
            return t
        },
        vt = function t(e, n) {
            for (var r in n) "__proto__" !== r && "constructor" !== r && "prototype" !== r && (e[r] = S(n[r]) ? t(e[r] || (e[r] = {}), n[r]) : n[r]);
            return e
        },
        _t = function(t, e) {
            var n, r = {};
            for (n in t) n in e || (r[n] = t[n]);
            return r
        },
        yt = function(t) {
            var e, n = t.parent || s,
                r = t.keyframes ? (e = N(t.keyframes), function(t, n) {
                    for (var r in n) r in t || "duration" === r && e || "ease" === r || (t[r] = n[r])
                }) : Dt;
            if (O(t.inherit))
                for (; n;) r(t, n.vars.defaults), n = n.parent || n._dp;
            return t
        },
        xt = function(t, e, n, r) {
            void 0 === n && (n = "_first"), void 0 === r && (r = "_last");
            var i = e._prev,
                o = e._next;
            i ? i._next = o : t[n] === e && (t[n] = o), o ? o._prev = i : t[r] === e && (t[r] = i), e._next = e._prev = e.parent = null
        },
        wt = function(t, e) {
            t.parent && (!e || t.parent.autoRemoveChildren) && t.parent.remove(t), t._act = 0
        },
        Ct = function(t, e) {
            if (t && (!e || e._end > t._dur || e._start < 0))
                for (var n = t; n;) n._dirty = 1, n = n.parent;
            return t
        },
        Ft = function(t) {
            for (var e = t.parent; e && e.parent;) e._dirty = 1, e.totalDuration(), e = e.parent;
            return t
        },
        Et = function(t) {
            return t._repeat ? bt(t._tTime, t = t.duration() + t._rDelay) * t : 0
        },
        bt = function(t, e) {
            var n = Math.floor(t /= e);
            return t && n === t ? n - 1 : n
        },
        Tt = function(t, e) {
            return (t - e._start) * e._ts + (e._ts >= 0 ? 0 : e._dirty ? e.totalDuration() : e._tDur)
        },
        Mt = function(t) {
            return t._end = ht(t._start + (t._tDur / Math.abs(t._ts || t._rts || 1e-8) || 0))
        },
        At = function(t, e) {
            var n = t._dp;
            return n && n.smoothChildTiming && t._ts && (t._start = ht(n._time - (t._ts > 0 ? e / t._ts : ((t._dirty ? t.totalDuration() : t._tDur) - e) / -t._ts)), Mt(t), n._dirty || Ct(n, t)), t
        },
        Pt = function(t, e) {
            var n;
            if ((e._time || e._initted && !e._dur) && (n = Tt(t.rawTime(), e), (!e._dur || zt(0, e.totalDuration(), n) - e._tTime > 1e-8) && e.render(n, !0)), Ct(t, e)._dp && t._initted && t._time >= t._dur && t._ts) {
                if (t._dur < t.duration())
                    for (n = t; n._dp;) n.rawTime() >= 0 && n.totalTime(n._tTime), n = n._dp;
                t._zTime = -1e-8
            }
        },
        St = function(t, e, n, r) {
            return e.parent && wt(e), e._start = ht((A(n) ? n : n || t !== s ? Xt(t, n, e) : t._time) + e._delay), e._end = ht(e._start + (e.totalDuration() / Math.abs(e.timeScale()) || 0)),
                function(t, e, n, r, i) {
                    void 0 === n && (n = "_first"), void 0 === r && (r = "_last");
                    var o, s = t[r];
                    if (i)
                        for (o = e[i]; s && s[i] > o;) s = s._prev;
                    s ? (e._next = s._next, s._next = e) : (e._next = t[n], t[n] = e), e._next ? e._next._prev = e : t[r] = e, e._prev = s, e.parent = e._dp = t
                }(t, e, "_first", "_last", t._sort ? "_start" : 0), Bt(e) || (t._recent = e), r || Pt(t, e), t
        },
        Ot = function(t, e) {
            return (V.ScrollTrigger || q("scrollTrigger", e)) && V.ScrollTrigger.create(e, t)
        },
        kt = function(t, e, n, r) {
            return ke(t, e), t._initted ? !n && t._pt && (t._dur && !1 !== t.vars.lazy || !t._dur && t.vars.lazy) && c !== pe.frame ? ($.push(t), t._lazy = [e, r], 1) : void 0 : 1
        },
        Bt = function(t) {
            var e = t.data;
            return "isFromStart" === e || "isStart" === e
        },
        Lt = function(t, e, n, r) {
            var i = t._repeat,
                o = ht(e) || 0,
                s = t._tTime / t._tDur;
            return s && !r && (t._time *= o / t._dur), t._dur = o, t._tDur = i ? i < 0 ? 1e10 : ht(o * (i + 1) + t._rDelay * i) : o, s > 0 && !r ? At(t, t._tTime = t._tDur * s) : t.parent && Mt(t), n || Ct(t.parent, t), t
        },
        Nt = function(t) {
            return t instanceof Me ? Ct(t) : Lt(t, t._dur)
        },
        Rt = {
            _start: 0,
            endTime: Q,
            totalDuration: Q
        },
        Xt = function t(e, n, r) {
            var i, o, s, a = e.labels,
                u = e._recent || Rt,
                l = e.duration() >= y ? u.endTime(!1) : e._dur;
            return T(n) && (isNaN(n) || n in a) ? (o = n.charAt(0), s = "%" === n.substr(-1), i = n.indexOf("="), "<" === o || ">" === o ? (i >= 0 && (n = n.replace(/=/, "")), ("<" === o ? u._start : u.endTime(u._repeat >= 0)) + (parseFloat(n.substr(1)) || 0) * (s ? (i < 0 ? u : r).totalDuration() / 100 : 1)) : i < 0 ? (n in a || (a[n] = l), a[n]) : (o = parseFloat(n.charAt(i - 1) + n.substr(i + 1)), s && r && (o = o / 100 * (N(r) ? r[0] : r).totalDuration()), i > 1 ? t(e, n.substr(0, i - 1), r) + o : l + o)) : null == n ? l : +n
        },
        Yt = function(t, e, n) {
            var r, i, o = A(e[1]),
                s = (o ? 2 : 1) + (t < 2 ? 0 : 1),
                a = e[s];
            if (o && (a.duration = e[1]), a.parent = n, t) {
                for (r = a, i = n; i && !("immediateRender" in r);) r = i.vars.defaults || {}, i = O(i.vars.inherit) && i.parent;
                a.immediateRender = O(r.immediateRender), t < 2 ? a.runBackwards = 1 : a.startAt = e[s - 1]
            }
            return new Xe(e[0], a, e[s + 1])
        },
        It = function(t, e) {
            return t || 0 === t ? e(t) : e
        },
        zt = function(t, e, n) {
            return n < t ? t : n > e ? e : n
        },
        Ht = function(t, e) {
            return T(t) && (e = W.exec(t)) ? t.substr(e.index + e[0].length) : ""
        },
        Wt = [].slice,
        Vt = function(t, e) {
            return t && S(t) && "length" in t && (!e && !t.length || t.length - 1 in t && S(t[0])) && !t.nodeType && t !== a
        },
        jt = function(t, e, n) {
            return void 0 === n && (n = []), t.forEach((function(t) {
                var r;
                return T(t) && !e || Vt(t, 1) ? (r = n).push.apply(r, Ut(t)) : n.push(t)
            })) || n
        },
        Ut = function(t, e, n) {
            return !T(t) || n || !u && de() ? N(t) ? jt(t, n) : Vt(t) ? Wt.call(t, 0) : t ? [t] : [] : Wt.call((e || l).querySelectorAll(t), 0)
        },
        qt = function(t) {
            return t.sort((function() {
                return .5 - Math.random()
            }))
        },
        Gt = function(t) {
            if (M(t)) return t;
            var e = S(t) ? t : {
                    each: t
                },
                n = xe(e.ease),
                r = e.from || 0,
                i = parseFloat(e.base) || 0,
                o = {},
                s = r > 0 && r < 1,
                a = isNaN(r) || s,
                u = e.axis,
                l = r,
                h = r;
            return T(r) ? l = h = {
                    center: .5,
                    edges: .5,
                    end: 1
                }[r] || 0 : !s && a && (l = r[0], h = r[1]),
                function(t, s, c) {
                    var f, p, d, g, D, m, v, _, x, w = (c || e).length,
                        C = o[w];
                    if (!C) {
                        if (!(x = "auto" === e.grid ? 0 : (e.grid || [1, y])[1])) {
                            for (v = -y; v < (v = c[x++].getBoundingClientRect().left) && x < w;);
                            x--
                        }
                        for (C = o[w] = [], f = a ? Math.min(x, w) * l - .5 : r % x, p = x === y ? 0 : a ? w * h / x - .5 : r / x | 0, v = 0, _ = y, m = 0; m < w; m++) d = m % x - f, g = p - (m / x | 0), C[m] = D = u ? Math.abs("y" === u ? g : d) : F(d * d + g * g), D > v && (v = D), D < _ && (_ = D);
                        "random" === r && qt(C), C.max = v - _, C.min = _, C.v = w = (parseFloat(e.amount) || parseFloat(e.each) * (x > w ? w - 1 : u ? "y" === u ? w / x : x : Math.max(x, w / x)) || 0) * ("edges" === r ? -1 : 1), C.b = w < 0 ? i - w : i, C.u = Ht(e.amount || e.each) || 0, n = n && w < 0 ? _e(n) : n
                    }
                    return w = (C[t] - C.min) / C.max || 0, ht(C.b + (n ? n(w) : w) * C.v) + C.u
                }
        },
        Kt = function(t) {
            var e = Math.pow(10, ((t + "").split(".")[1] || "").length);
            return function(n) {
                var r = Math.round(parseFloat(n) / t) * t * e;
                return (r - r % 1) / e + (A(n) ? 0 : Ht(n))
            }
        },
        Qt = function(t, e) {
            var n, r, i = N(t);
            return !i && S(t) && (n = i = t.radius || y, t.values ? (t = Ut(t.values), (r = !A(t[0])) && (n *= n)) : t = Kt(t.increment)), It(e, i ? M(t) ? function(e) {
                return r = t(e), Math.abs(r - e) <= n ? r : e
            } : function(e) {
                for (var i, o, s = parseFloat(r ? e.x : e), a = parseFloat(r ? e.y : 0), u = y, l = 0, h = t.length; h--;)(i = r ? (i = t[h].x - s) * i + (o = t[h].y - a) * o : Math.abs(t[h] - s)) < u && (u = i, l = h);
                return l = !n || u <= n ? t[l] : e, r || l === e || A(e) ? l : l + Ht(e)
            } : Kt(t))
        },
        Zt = function(t, e, n, r) {
            return It(N(t) ? !e : !0 === n ? !!(n = 0) : !r, (function() {
                return N(t) ? t[~~(Math.random() * t.length)] : (n = n || 1e-5) && (r = n < 1 ? Math.pow(10, (n + "").length - 2) : 1) && Math.floor(Math.round((t - n / 2 + Math.random() * (e - t + .99 * n)) / n) * n * r) / r
            }))
        },
        $t = function(t, e, n) {
            return It(n, (function(n) {
                return t[~~e(n)]
            }))
        },
        Jt = function(t) {
            for (var e, n, r, i, o = 0, s = ""; ~(e = t.indexOf("random(", o));) r = t.indexOf(")", e), i = "[" === t.charAt(e + 7), n = t.substr(e + 7, r - e - 7).match(i ? H : R), s += t.substr(o, e - o) + Zt(i ? n : +n[0], i ? 0 : +n[1], +n[2] || 1e-5), o = r + 1;
            return s + t.substr(o, t.length - o)
        },
        te = function(t, e, n, r, i) {
            var o = e - t,
                s = r - n;
            return It(i, (function(e) {
                return n + ((e - t) / o * s || 0)
            }))
        },
        ee = function(t, e, n) {
            var r, i, o, s = t.labels,
                a = y;
            for (r in s)(i = s[r] - e) < 0 == !!n && i && a > (i = Math.abs(i)) && (o = r, a = i);
            return o
        },
        ne = function(t, e, n) {
            var r, i, o = t.vars,
                s = o[e];
            if (s) return r = o[e + "Params"], i = o.callbackScope || t, n && $.length && ft(), r ? s.apply(i, r) : s.call(i)
        },
        re = function(t) {
            return wt(t), t.scrollTrigger && t.scrollTrigger.kill(!1), t.progress() < 1 && ne(t, "onInterrupt"), t
        },
        ie = function(t) {
            var e = (t = !t.name && t.default || t).name,
                n = M(t),
                r = e && !n && t.init ? function() {
                    this._props = []
                } : t,
                i = {
                    init: Q,
                    render: qe,
                    add: Se,
                    kill: Ke,
                    modifier: Ge,
                    rawVars: 0
                },
                o = {
                    targetTest: 0,
                    get: 0,
                    getSetter: We,
                    aliases: {},
                    register: 0
                };
            if (de(), t !== r) {
                if (tt[e]) return;
                Dt(r, Dt(_t(t, i), o)), mt(r.prototype, mt(i, _t(t, o))), tt[r.prop = e] = r, t.targetTest && (rt.push(r), Z[e] = 1), e = ("css" === e ? "CSS" : e.charAt(0).toUpperCase() + e.substr(1)) + "Plugin"
            }
            K(e, r), t.register && t.register(nn, r, $e)
        },
        oe = {
            aqua: [0, 255, 255],
            lime: [0, 255, 0],
            silver: [192, 192, 192],
            black: [0, 0, 0],
            maroon: [128, 0, 0],
            teal: [0, 128, 128],
            blue: [0, 0, 255],
            navy: [0, 0, 128],
            white: [255, 255, 255],
            olive: [128, 128, 0],
            yellow: [255, 255, 0],
            orange: [255, 165, 0],
            gray: [128, 128, 128],
            purple: [128, 0, 128],
            green: [0, 128, 0],
            red: [255, 0, 0],
            pink: [255, 192, 203],
            cyan: [0, 255, 255],
            transparent: [255, 255, 255, 0]
        },
        se = function(t, e, n) {
            return 255 * (6 * (t += t < 0 ? 1 : t > 1 ? -1 : 0) < 1 ? e + (n - e) * t * 6 : t < .5 ? n : 3 * t < 2 ? e + (n - e) * (2 / 3 - t) * 6 : e) + .5 | 0
        },
        ae = function(t, e, n) {
            var r, i, o, s, a, u, l, h, c, f, p = t ? A(t) ? [t >> 16, t >> 8 & 255, 255 & t] : 0 : oe.black;
            if (!p) {
                if ("," === t.substr(-1) && (t = t.substr(0, t.length - 1)), oe[t]) p = oe[t];
                else if ("#" === t.charAt(0)) {
                    if (t.length < 6 && (r = t.charAt(1), i = t.charAt(2), o = t.charAt(3), t = "#" + r + r + i + i + o + o + (5 === t.length ? t.charAt(4) + t.charAt(4) : "")), 9 === t.length) return [(p = parseInt(t.substr(1, 6), 16)) >> 16, p >> 8 & 255, 255 & p, parseInt(t.substr(7), 16) / 255];
                    p = [(t = parseInt(t.substr(1), 16)) >> 16, t >> 8 & 255, 255 & t]
                } else if ("hsl" === t.substr(0, 3))
                    if (p = f = t.match(R), e) {
                        if (~t.indexOf("=")) return p = t.match(X), n && p.length < 4 && (p[3] = 1), p
                    } else s = +p[0] % 360 / 360, a = +p[1] / 100, r = 2 * (u = +p[2] / 100) - (i = u <= .5 ? u * (a + 1) : u + a - u * a), p.length > 3 && (p[3] *= 1), p[0] = se(s + 1 / 3, r, i), p[1] = se(s, r, i), p[2] = se(s - 1 / 3, r, i);
                else p = t.match(R) || oe.transparent;
                p = p.map(Number)
            }
            return e && !f && (r = p[0] / 255, i = p[1] / 255, o = p[2] / 255, u = ((l = Math.max(r, i, o)) + (h = Math.min(r, i, o))) / 2, l === h ? s = a = 0 : (c = l - h, a = u > .5 ? c / (2 - l - h) : c / (l + h), s = l === r ? (i - o) / c + (i < o ? 6 : 0) : l === i ? (o - r) / c + 2 : (r - i) / c + 4, s *= 60), p[0] = ~~(s + .5), p[1] = ~~(100 * a + .5), p[2] = ~~(100 * u + .5)), n && p.length < 4 && (p[3] = 1), p
        },
        ue = function(t) {
            var e = [],
                n = [],
                r = -1;
            return t.split(he).forEach((function(t) {
                var i = t.match(Y) || [];
                e.push.apply(e, i), n.push(r += i.length + 1)
            })), e.c = n, e
        },
        le = function(t, e, n) {
            var r, i, o, s, a = "",
                u = (t + a).match(he),
                l = e ? "hsla(" : "rgba(",
                h = 0;
            if (!u) return t;
            if (u = u.map((function(t) {
                    return (t = ae(t, e, 1)) && l + (e ? t[0] + "," + t[1] + "%," + t[2] + "%," + t[3] : t.join(",")) + ")"
                })), n && (o = ue(t), (r = n.c).join(a) !== o.c.join(a)))
                for (s = (i = t.replace(he, "1").split(Y)).length - 1; h < s; h++) a += i[h] + (~r.indexOf(h) ? u.shift() || l + "0,0,0,0)" : (o.length ? o : u.length ? u : n).shift());
            if (!i)
                for (s = (i = t.split(he)).length - 1; h < s; h++) a += i[h] + u[h];
            return a + i[s]
        },
        he = function() {
            var t, e = "(?:\\b(?:(?:rgb|rgba|hsl|hsla)\\(.+?\\))|\\B#(?:[0-9a-f]{3,4}){1,2}\\b";
            for (t in oe) e += "|" + t + "\\b";
            return new RegExp(e + ")", "gi")
        }(),
        ce = /hsl[a]?\(/,
        fe = function(t) {
            var e, n = t.join(" ");
            if (he.lastIndex = 0, he.test(n)) return e = ce.test(n), t[1] = le(t[1], e), t[0] = le(t[0], e, ue(t[1])), !0
        },
        pe = function() {
            var t, e, n, r, i, o, s = Date.now,
                c = 500,
                f = 33,
                d = s(),
                g = d,
                D = 1e3 / 240,
                m = D,
                v = [],
                _ = function n(a) {
                    var u, l, h, p, _ = s() - g,
                        y = !0 === a;
                    if (_ > c && (d += _ - f), ((u = (h = (g += _) - d) - m) > 0 || y) && (p = ++r.frame, i = h - 1e3 * r.time, r.time = h /= 1e3, m += u + (u >= D ? 4 : D - u), l = 1), y || (t = e(n)), l)
                        for (o = 0; o < v.length; o++) v[o](h, i, p, a)
                };
            return r = {
                time: 0,
                frame: 0,
                tick: function() {
                    _(!0)
                },
                deltaRatio: function(t) {
                    return i / (1e3 / (t || 60))
                },
                wake: function() {
                    h && (!u && k() && (a = u = window, l = a.document || {}, V.gsap = nn, (a.gsapVersions || (a.gsapVersions = [])).push(nn.version), U(j || a.GreenSockGlobals || !a.gsap && a || {}), n = a.requestAnimationFrame), t && r.sleep(), e = n || function(t) {
                        return setTimeout(t, m - 1e3 * r.time + 1 | 0)
                    }, p = 1, _(2))
                },
                sleep: function() {
                    (n ? a.cancelAnimationFrame : clearTimeout)(t), p = 0, e = Q
                },
                lagSmoothing: function(t, e) {
                    c = t || 1 / 1e-8, f = Math.min(e, c, 0)
                },
                fps: function(t) {
                    D = 1e3 / (t || 240), m = 1e3 * r.time + D
                },
                add: function(t) {
                    v.indexOf(t) < 0 && v.push(t), de()
                },
                remove: function(t, e) {
                    ~(e = v.indexOf(t)) && v.splice(e, 1) && o >= e && o--
                },
                _listeners: v
            }
        }(),
        de = function() {
            return !p && pe.wake()
        },
        ge = {},
        De = /^[\d.\-M][\d.\-,\s]/,
        me = /["']/g,
        ve = function(t) {
            for (var e, n, r, i = {}, o = t.substr(1, t.length - 3).split(":"), s = o[0], a = 1, u = o.length; a < u; a++) n = o[a], e = a !== u - 1 ? n.lastIndexOf(",") : n.length, r = n.substr(0, e), i[s] = isNaN(r) ? r.replace(me, "").trim() : +r, s = n.substr(e + 1).trim();
            return i
        },
        _e = function(t) {
            return function(e) {
                return 1 - t(1 - e)
            }
        },
        ye = function t(e, n) {
            for (var r, i = e._first; i;) i instanceof Me ? t(i, n) : !i.vars.yoyoEase || i._yoyo && i._repeat || i._yoyo === n || (i.timeline ? t(i.timeline, n) : (r = i._ease, i._ease = i._yEase, i._yEase = r, i._yoyo = n)), i = i._next
        },
        xe = function(t, e) {
            return t && (M(t) ? t : ge[t] || function(t) {
                var e, n, r, i, o = (t + "").split("("),
                    s = ge[o[0]];
                return s && o.length > 1 && s.config ? s.config.apply(null, ~t.indexOf("{") ? [ve(o[1])] : (e = t, n = e.indexOf("(") + 1, r = e.indexOf(")"), i = e.indexOf("(", n), e.substring(n, ~i && i < r ? e.indexOf(")", r + 1) : r)).split(",").map(dt)) : ge._CE && De.test(t) ? ge._CE("", t) : s
            }(t)) || e
        },
        we = function(t, e, n, r) {
            void 0 === n && (n = function(t) {
                return 1 - e(1 - t)
            }), void 0 === r && (r = function(t) {
                return t < .5 ? e(2 * t) / 2 : 1 - e(2 * (1 - t)) / 2
            });
            var i, o = {
                easeIn: e,
                easeOut: n,
                easeInOut: r
            };
            return ut(t, (function(t) {
                for (var e in ge[t] = V[t] = o, ge[i = t.toLowerCase()] = n, o) ge[i + ("easeIn" === e ? ".in" : "easeOut" === e ? ".out" : ".inOut")] = ge[t + "." + e] = o[e]
            })), o
        },
        Ce = function(t) {
            return function(e) {
                return e < .5 ? (1 - t(1 - 2 * e)) / 2 : .5 + t(2 * (e - .5)) / 2
            }
        },
        Fe = function t(e, n, r) {
            var i = n >= 1 ? n : 1,
                o = (r || (e ? .3 : .45)) / (n < 1 ? n : 1),
                s = o / x * (Math.asin(1 / i) || 0),
                a = function(t) {
                    return 1 === t ? 1 : i * Math.pow(2, -10 * t) * b((t - s) * o) + 1
                },
                u = "out" === e ? a : "in" === e ? function(t) {
                    return 1 - a(1 - t)
                } : Ce(a);
            return o = x / o, u.config = function(n, r) {
                return t(e, n, r)
            }, u
        },
        Ee = function t(e, n) {
            void 0 === n && (n = 1.70158);
            var r = function(t) {
                    return t ? --t * t * ((n + 1) * t + n) + 1 : 0
                },
                i = "out" === e ? r : "in" === e ? function(t) {
                    return 1 - r(1 - t)
                } : Ce(r);
            return i.config = function(n) {
                return t(e, n)
            }, i
        };
    ut("Linear,Quad,Cubic,Quart,Quint,Strong", (function(t, e) {
        var n = e < 5 ? e + 1 : e;
        we(t + ",Power" + (n - 1), e ? function(t) {
            return Math.pow(t, n)
        } : function(t) {
            return t
        }, (function(t) {
            return 1 - Math.pow(1 - t, n)
        }), (function(t) {
            return t < .5 ? Math.pow(2 * t, n) / 2 : 1 - Math.pow(2 * (1 - t), n) / 2
        }))
    })), ge.Linear.easeNone = ge.none = ge.Linear.easeIn, we("Elastic", Fe("in"), Fe("out"), Fe()), d = 7.5625, D = 1 / (g = 2.75), we("Bounce", (function(t) {
        return 1 - m(1 - t)
    }), m = function(t) {
        return t < D ? d * t * t : t < .7272727272727273 ? d * Math.pow(t - 1.5 / g, 2) + .75 : t < .9090909090909092 ? d * (t -= 2.25 / g) * t + .9375 : d * Math.pow(t - 2.625 / g, 2) + .984375
    }), we("Expo", (function(t) {
        return t ? Math.pow(2, 10 * (t - 1)) : 0
    })), we("Circ", (function(t) {
        return -(F(1 - t * t) - 1)
    })), we("Sine", (function(t) {
        return 1 === t ? 1 : 1 - E(t * w)
    })), we("Back", Ee("in"), Ee("out"), Ee()), ge.SteppedEase = ge.steps = V.SteppedEase = {
        config: function(t, e) {
            void 0 === t && (t = 1);
            var n = 1 / t,
                r = t + (e ? 0 : 1),
                i = e ? 1 : 0;
            return function(t) {
                return ((r * zt(0, 1 - 1e-8, t) | 0) + i) * n
            }
        }
    }, _.ease = ge["quad.out"], ut("onComplete,onUpdate,onStart,onRepeat,onReverseComplete,onInterrupt", (function(t) {
        return it += t + "," + t + "Params,"
    }));
    var be = function(t, e) {
            this.id = C++, t._gsap = this, this.target = t, this.harness = e, this.get = e ? e.get : at, this.set = e ? e.getSetter : We
        },
        Te = function() {
            function t(t) {
                this.vars = t, this._delay = +t.delay || 0, (this._repeat = t.repeat === 1 / 0 ? -2 : t.repeat || 0) && (this._rDelay = t.repeatDelay || 0, this._yoyo = !!t.yoyo || !!t.yoyoEase), this._ts = 1, Lt(this, +t.duration, 1, 1), this.data = t.data, p || pe.wake()
            }
            var e = t.prototype;
            return e.delay = function(t) {
                return t || 0 === t ? (this.parent && this.parent.smoothChildTiming && this.startTime(this._start + t - this._delay), this._delay = t, this) : this._delay
            }, e.duration = function(t) {
                return arguments.length ? this.totalDuration(this._repeat > 0 ? t + (t + this._rDelay) * this._repeat : t) : this.totalDuration() && this._dur
            }, e.totalDuration = function(t) {
                return arguments.length ? (this._dirty = 0, Lt(this, this._repeat < 0 ? t : (t - this._repeat * this._rDelay) / (this._repeat + 1))) : this._tDur
            }, e.totalTime = function(t, e) {
                if (de(), !arguments.length) return this._tTime;
                var n = this._dp;
                if (n && n.smoothChildTiming && this._ts) {
                    for (At(this, t), !n._dp || n.parent || Pt(n, this); n && n.parent;) n.parent._time !== n._start + (n._ts >= 0 ? n._tTime / n._ts : (n.totalDuration() - n._tTime) / -n._ts) && n.totalTime(n._tTime, !0), n = n.parent;
                    !this.parent && this._dp.autoRemoveChildren && (this._ts > 0 && t < this._tDur || this._ts < 0 && t > 0 || !this._tDur && !t) && St(this._dp, this, this._start - this._delay)
                }
                return (this._tTime !== t || !this._dur && !e || this._initted && 1e-8 === Math.abs(this._zTime) || !t && !this._initted && (this.add || this._ptLookup)) && (this._ts || (this._pTime = t), pt(this, t, e)), this
            }, e.time = function(t, e) {
                return arguments.length ? this.totalTime(Math.min(this.totalDuration(), t + Et(this)) % (this._dur + this._rDelay) || (t ? this._dur : 0), e) : this._time
            }, e.totalProgress = function(t, e) {
                return arguments.length ? this.totalTime(this.totalDuration() * t, e) : this.totalDuration() ? Math.min(1, this._tTime / this._tDur) : this.ratio
            }, e.progress = function(t, e) {
                return arguments.length ? this.totalTime(this.duration() * (!this._yoyo || 1 & this.iteration() ? t : 1 - t) + Et(this), e) : this.duration() ? Math.min(1, this._time / this._dur) : this.ratio
            }, e.iteration = function(t, e) {
                var n = this.duration() + this._rDelay;
                return arguments.length ? this.totalTime(this._time + (t - 1) * n, e) : this._repeat ? bt(this._tTime, n) + 1 : 1
            }, e.timeScale = function(t) {
                if (!arguments.length) return -1e-8 === this._rts ? 0 : this._rts;
                if (this._rts === t) return this;
                var e = this.parent && this._ts ? Tt(this.parent._time, this) : this._tTime;
                return this._rts = +t || 0, this._ts = this._ps || -1e-8 === t ? 0 : this._rts, Ft(this.totalTime(zt(-this._delay, this._tDur, e), !0)), Mt(this), this
            }, e.paused = function(t) {
                return arguments.length ? (this._ps !== t && (this._ps = t, t ? (this._pTime = this._tTime || Math.max(-this._delay, this.rawTime()), this._ts = this._act = 0) : (de(), this._ts = this._rts, this.totalTime(this.parent && !this.parent.smoothChildTiming ? this.rawTime() : this._tTime || this._pTime, 1 === this.progress() && 1e-8 !== Math.abs(this._zTime) && (this._tTime -= 1e-8)))), this) : this._ps
            }, e.startTime = function(t) {
                if (arguments.length) {
                    this._start = t;
                    var e = this.parent || this._dp;
                    return e && (e._sort || !this.parent) && St(e, this, t - this._delay), this
                }
                return this._start
            }, e.endTime = function(t) {
                return this._start + (O(t) ? this.totalDuration() : this.duration()) / Math.abs(this._ts || 1)
            }, e.rawTime = function(t) {
                var e = this.parent || this._dp;
                return e ? t && (!this._ts || this._repeat && this._time && this.totalProgress() < 1) ? this._tTime % (this._dur + this._rDelay) : this._ts ? Tt(e.rawTime(t), this) : this._tTime : this._tTime
            }, e.globalTime = function(t) {
                for (var e = this, n = arguments.length ? t : e.rawTime(); e;) n = e._start + n / (e._ts || 1), e = e._dp;
                return n
            }, e.repeat = function(t) {
                return arguments.length ? (this._repeat = t === 1 / 0 ? -2 : t, Nt(this)) : -2 === this._repeat ? 1 / 0 : this._repeat
            }, e.repeatDelay = function(t) {
                if (arguments.length) {
                    var e = this._time;
                    return this._rDelay = t, Nt(this), e ? this.time(e) : this
                }
                return this._rDelay
            }, e.yoyo = function(t) {
                return arguments.length ? (this._yoyo = t, this) : this._yoyo
            }, e.seek = function(t, e) {
                return this.totalTime(Xt(this, t), O(e))
            }, e.restart = function(t, e) {
                return this.play().totalTime(t ? -this._delay : 0, O(e))
            }, e.play = function(t, e) {
                return null != t && this.seek(t, e), this.reversed(!1).paused(!1)
            }, e.reverse = function(t, e) {
                return null != t && this.seek(t || this.totalDuration(), e), this.reversed(!0).paused(!1)
            }, e.pause = function(t, e) {
                return null != t && this.seek(t, e), this.paused(!0)
            }, e.resume = function() {
                return this.paused(!1)
            }, e.reversed = function(t) {
                return arguments.length ? (!!t !== this.reversed() && this.timeScale(-this._rts || (t ? -1e-8 : 0)), this) : this._rts < 0
            }, e.invalidate = function() {
                return this._initted = this._act = 0, this._zTime = -1e-8, this
            }, e.isActive = function() {
                var t, e = this.parent || this._dp,
                    n = this._start;
                return !(e && !(this._ts && this._initted && e.isActive() && (t = e.rawTime(!0)) >= n && t < this.endTime(!0) - 1e-8))
            }, e.eventCallback = function(t, e, n) {
                var r = this.vars;
                return arguments.length > 1 ? (e ? (r[t] = e, n && (r[t + "Params"] = n), "onUpdate" === t && (this._onUpdate = e)) : delete r[t], this) : r[t]
            }, e.then = function(t) {
                var e = this;
                return new Promise((function(n) {
                    var r = M(t) ? t : gt,
                        i = function() {
                            var t = e.then;
                            e.then = null, M(r) && (r = r(e)) && (r.then || r === e) && (e.then = t), n(r), e.then = t
                        };
                    e._initted && 1 === e.totalProgress() && e._ts >= 0 || !e._tTime && e._ts < 0 ? i() : e._prom = i
                }))
            }, e.kill = function() {
                re(this)
            }, t
        }();
    Dt(Te.prototype, {
        _time: 0,
        _start: 0,
        _end: 0,
        _tTime: 0,
        _tDur: 0,
        _dirty: 0,
        _repeat: 0,
        _yoyo: !1,
        parent: null,
        _initted: !1,
        _rDelay: 0,
        _ts: 1,
        _dp: 0,
        ratio: 0,
        _zTime: -1e-8,
        _prom: 0,
        _ps: !1,
        _rts: 1
    });
    var Me = function(t) {
        function e(e, n) {
            var i;
            return void 0 === e && (e = {}), (i = t.call(this, e) || this).labels = {}, i.smoothChildTiming = !!e.smoothChildTiming, i.autoRemoveChildren = !!e.autoRemoveChildren, i._sort = O(e.sortChildren), s && St(e.parent || s, r(i), n), e.reversed && i.reverse(), e.paused && i.paused(!0), e.scrollTrigger && Ot(r(i), e.scrollTrigger), i
        }
        i(e, t);
        var n = e.prototype;
        return n.to = function(t, e, n) {
            return Yt(0, arguments, this), this
        }, n.from = function(t, e, n) {
            return Yt(1, arguments, this), this
        }, n.fromTo = function(t, e, n, r) {
            return Yt(2, arguments, this), this
        }, n.set = function(t, e, n) {
            return e.duration = 0, e.parent = this, yt(e).repeatDelay || (e.repeat = 0), e.immediateRender = !!e.immediateRender, new Xe(t, e, Xt(this, n), 1), this
        }, n.call = function(t, e, n) {
            return St(this, Xe.delayedCall(0, t, e), n)
        }, n.staggerTo = function(t, e, n, r, i, o, s) {
            return n.duration = e, n.stagger = n.stagger || r, n.onComplete = o, n.onCompleteParams = s, n.parent = this, new Xe(t, n, Xt(this, i)), this
        }, n.staggerFrom = function(t, e, n, r, i, o, s) {
            return n.runBackwards = 1, yt(n).immediateRender = O(n.immediateRender), this.staggerTo(t, e, n, r, i, o, s)
        }, n.staggerFromTo = function(t, e, n, r, i, o, s, a) {
            return r.startAt = n, yt(r).immediateRender = O(r.immediateRender), this.staggerTo(t, e, r, i, o, s, a)
        }, n.render = function(t, e, n) {
            var r, i, o, a, u, l, h, c, f, p, d, g, D = this._time,
                m = this._dirty ? this.totalDuration() : this._tDur,
                v = this._dur,
                _ = t <= 0 ? 0 : ht(t),
                y = this._zTime < 0 != t < 0 && (this._initted || !v);
            if (this !== s && _ > m && t >= 0 && (_ = m), _ !== this._tTime || n || y) {
                if (D !== this._time && v && (_ += this._time - D, t += this._time - D), r = _, f = this._start, l = !(c = this._ts), y && (v || (D = this._zTime), (t || !e) && (this._zTime = t)), this._repeat) {
                    if (d = this._yoyo, u = v + this._rDelay, this._repeat < -1 && t < 0) return this.totalTime(100 * u + t, e, n);
                    if (r = ht(_ % u), _ === m ? (a = this._repeat, r = v) : ((a = ~~(_ / u)) && a === _ / u && (r = v, a--), r > v && (r = v)), p = bt(this._tTime, u), !D && this._tTime && p !== a && (p = a), d && 1 & a && (r = v - r, g = 1), a !== p && !this._lock) {
                        var x = d && 1 & p,
                            w = x === (d && 1 & a);
                        if (a < p && (x = !x), D = x ? 0 : v, this._lock = 1, this.render(D || (g ? 0 : ht(a * u)), e, !v)._lock = 0, this._tTime = _, !e && this.parent && ne(this, "onRepeat"), this.vars.repeatRefresh && !g && (this.invalidate()._lock = 1), D && D !== this._time || l !== !this._ts || this.vars.onRepeat && !this.parent && !this._act) return this;
                        if (v = this._dur, m = this._tDur, w && (this._lock = 2, D = x ? v : -1e-4, this.render(D, !0), this.vars.repeatRefresh && !g && this.invalidate()), this._lock = 0, !this._ts && !l) return this;
                        ye(this, g)
                    }
                }
                if (this._hasPause && !this._forcing && this._lock < 2 && (h = function(t, e, n) {
                        var r;
                        if (n > e)
                            for (r = t._first; r && r._start <= n;) {
                                if ("isPause" === r.data && r._start > e) return r;
                                r = r._next
                            } else
                                for (r = t._last; r && r._start >= n;) {
                                    if ("isPause" === r.data && r._start < e) return r;
                                    r = r._prev
                                }
                    }(this, ht(D), ht(r))) && (_ -= r - (r = h._start)), this._tTime = _, this._time = r, this._act = !c, this._initted || (this._onUpdate = this.vars.onUpdate, this._initted = 1, this._zTime = t, D = 0), !D && r && !e && (ne(this, "onStart"), this._tTime !== _)) return this;
                if (r >= D && t >= 0)
                    for (i = this._first; i;) {
                        if (o = i._next, (i._act || r >= i._start) && i._ts && h !== i) {
                            if (i.parent !== this) return this.render(t, e, n);
                            if (i.render(i._ts > 0 ? (r - i._start) * i._ts : (i._dirty ? i.totalDuration() : i._tDur) + (r - i._start) * i._ts, e, n), r !== this._time || !this._ts && !l) {
                                h = 0, o && (_ += this._zTime = -1e-8);
                                break
                            }
                        }
                        i = o
                    } else {
                        i = this._last;
                        for (var C = t < 0 ? t : r; i;) {
                            if (o = i._prev, (i._act || C <= i._end) && i._ts && h !== i) {
                                if (i.parent !== this) return this.render(t, e, n);
                                if (i.render(i._ts > 0 ? (C - i._start) * i._ts : (i._dirty ? i.totalDuration() : i._tDur) + (C - i._start) * i._ts, e, n), r !== this._time || !this._ts && !l) {
                                    h = 0, o && (_ += this._zTime = C ? -1e-8 : 1e-8);
                                    break
                                }
                            }
                            i = o
                        }
                    }
                if (h && !e && (this.pause(), h.render(r >= D ? 0 : -1e-8)._zTime = r >= D ? 1 : -1, this._ts)) return this._start = f, Mt(this), this.render(t, e, n);
                this._onUpdate && !e && ne(this, "onUpdate", !0), (_ === m && m >= this.totalDuration() || !_ && D) && (f !== this._start && Math.abs(c) === Math.abs(this._ts) || this._lock || ((t || !v) && (_ === m && this._ts > 0 || !_ && this._ts < 0) && wt(this, 1), e || t < 0 && !D || !_ && !D && m || (ne(this, _ === m && t >= 0 ? "onComplete" : "onReverseComplete", !0), this._prom && !(_ < m && this.timeScale() > 0) && this._prom())))
            }
            return this
        }, n.add = function(t, e) {
            var n = this;
            if (A(e) || (e = Xt(this, e, t)), !(t instanceof Te)) {
                if (N(t)) return t.forEach((function(t) {
                    return n.add(t, e)
                })), this;
                if (T(t)) return this.addLabel(t, e);
                if (!M(t)) return this;
                t = Xe.delayedCall(0, t)
            }
            return this !== t ? St(this, t, e) : this
        }, n.getChildren = function(t, e, n, r) {
            void 0 === t && (t = !0), void 0 === e && (e = !0), void 0 === n && (n = !0), void 0 === r && (r = -y);
            for (var i = [], o = this._first; o;) o._start >= r && (o instanceof Xe ? e && i.push(o) : (n && i.push(o), t && i.push.apply(i, o.getChildren(!0, e, n)))), o = o._next;
            return i
        }, n.getById = function(t) {
            for (var e = this.getChildren(1, 1, 1), n = e.length; n--;)
                if (e[n].vars.id === t) return e[n]
        }, n.remove = function(t) {
            return T(t) ? this.removeLabel(t) : M(t) ? this.killTweensOf(t) : (xt(this, t), t === this._recent && (this._recent = this._last), Ct(this))
        }, n.totalTime = function(e, n) {
            return arguments.length ? (this._forcing = 1, !this._dp && this._ts && (this._start = ht(pe.time - (this._ts > 0 ? e / this._ts : (this.totalDuration() - e) / -this._ts))), t.prototype.totalTime.call(this, e, n), this._forcing = 0, this) : this._tTime
        }, n.addLabel = function(t, e) {
            return this.labels[t] = Xt(this, e), this
        }, n.removeLabel = function(t) {
            return delete this.labels[t], this
        }, n.addPause = function(t, e, n) {
            var r = Xe.delayedCall(0, e || Q, n);
            return r.data = "isPause", this._hasPause = 1, St(this, r, Xt(this, t))
        }, n.removePause = function(t) {
            var e = this._first;
            for (t = Xt(this, t); e;) e._start === t && "isPause" === e.data && wt(e), e = e._next
        }, n.killTweensOf = function(t, e, n) {
            for (var r = this.getTweensOf(t, n), i = r.length; i--;) Ae !== r[i] && r[i].kill(t, e);
            return this
        }, n.getTweensOf = function(t, e) {
            for (var n, r = [], i = Ut(t), o = this._first, s = A(e); o;) o instanceof Xe ? ct(o._targets, i) && (s ? (!Ae || o._initted && o._ts) && o.globalTime(0) <= e && o.globalTime(o.totalDuration()) > e : !e || o.isActive()) && r.push(o) : (n = o.getTweensOf(i, e)).length && r.push.apply(r, n), o = o._next;
            return r
        }, n.tweenTo = function(t, e) {
            e = e || {};
            var n, r = this,
                i = Xt(r, t),
                o = e,
                s = o.startAt,
                a = o.onStart,
                u = o.onStartParams,
                l = o.immediateRender,
                h = Xe.to(r, Dt({
                    ease: e.ease || "none",
                    lazy: !1,
                    immediateRender: !1,
                    time: i,
                    overwrite: "auto",
                    duration: e.duration || Math.abs((i - (s && "time" in s ? s.time : r._time)) / r.timeScale()) || 1e-8,
                    onStart: function() {
                        if (r.pause(), !n) {
                            var t = e.duration || Math.abs((i - (s && "time" in s ? s.time : r._time)) / r.timeScale());
                            h._dur !== t && Lt(h, t, 0, 1).render(h._time, !0, !0), n = 1
                        }
                        a && a.apply(h, u || [])
                    }
                }, e));
            return l ? h.render(0) : h
        }, n.tweenFromTo = function(t, e, n) {
            return this.tweenTo(e, Dt({
                startAt: {
                    time: Xt(this, t)
                }
            }, n))
        }, n.recent = function() {
            return this._recent
        }, n.nextLabel = function(t) {
            return void 0 === t && (t = this._time), ee(this, Xt(this, t))
        }, n.previousLabel = function(t) {
            return void 0 === t && (t = this._time), ee(this, Xt(this, t), 1)
        }, n.currentLabel = function(t) {
            return arguments.length ? this.seek(t, !0) : this.previousLabel(this._time + 1e-8)
        }, n.shiftChildren = function(t, e, n) {
            void 0 === n && (n = 0);
            for (var r, i = this._first, o = this.labels; i;) i._start >= n && (i._start += t, i._end += t), i = i._next;
            if (e)
                for (r in o) o[r] >= n && (o[r] += t);
            return Ct(this)
        }, n.invalidate = function() {
            var e = this._first;
            for (this._lock = 0; e;) e.invalidate(), e = e._next;
            return t.prototype.invalidate.call(this)
        }, n.clear = function(t) {
            void 0 === t && (t = !0);
            for (var e, n = this._first; n;) e = n._next, this.remove(n), n = e;
            return this._dp && (this._time = this._tTime = this._pTime = 0), t && (this.labels = {}), Ct(this)
        }, n.totalDuration = function(t) {
            var e, n, r, i = 0,
                o = this,
                a = o._last,
                u = y;
            if (arguments.length) return o.timeScale((o._repeat < 0 ? o.duration() : o.totalDuration()) / (o.reversed() ? -t : t));
            if (o._dirty) {
                for (r = o.parent; a;) e = a._prev, a._dirty && a.totalDuration(), (n = a._start) > u && o._sort && a._ts && !o._lock ? (o._lock = 1, St(o, a, n - a._delay, 1)._lock = 0) : u = n, n < 0 && a._ts && (i -= n, (!r && !o._dp || r && r.smoothChildTiming) && (o._start += n / o._ts, o._time -= n, o._tTime -= n), o.shiftChildren(-n, !1, -Infinity), u = 0), a._end > i && a._ts && (i = a._end), a = e;
                Lt(o, o === s && o._time > i ? o._time : i, 1, 1), o._dirty = 0
            }
            return o._tDur
        }, e.updateRoot = function(t) {
            if (s._ts && (pt(s, Tt(t, s)), c = pe.frame), pe.frame >= nt) {
                nt += v.autoSleep || 120;
                var e = s._first;
                if ((!e || !e._ts) && v.autoSleep && pe._listeners.length < 2) {
                    for (; e && !e._ts;) e = e._next;
                    e || pe.sleep()
                }
            }
        }, e
    }(Te);
    Dt(Me.prototype, {
        _lock: 0,
        _hasPause: 0,
        _forcing: 0
    });
    var Ae, Pe = function(t, e, n, r, i, o, s) {
            var a, u, l, h, c, f, p, d, g = new $e(this._pt, t, e, 0, 1, Ue, null, i),
                D = 0,
                m = 0;
            for (g.b = n, g.e = r, n += "", (p = ~(r += "").indexOf("random(")) && (r = Jt(r)), o && (o(d = [n, r], t, e), n = d[0], r = d[1]), u = n.match(I) || []; a = I.exec(r);) h = a[0], c = r.substring(D, a.index), l ? l = (l + 1) % 5 : "rgba(" === c.substr(-5) && (l = 1), h !== u[m++] && (f = parseFloat(u[m - 1]) || 0, g._pt = {
                _next: g._pt,
                p: c || 1 === m ? c : ",",
                s: f,
                c: "=" === h.charAt(1) ? parseFloat(h.substr(2)) * ("-" === h.charAt(0) ? -1 : 1) : parseFloat(h) - f,
                m: l && l < 4 ? Math.round : 0
            }, D = I.lastIndex);
            return g.c = D < r.length ? r.substring(D, r.length) : "", g.fp = s, (z.test(r) || p) && (g.e = 0), this._pt = g, g
        },
        Se = function(t, e, n, r, i, o, s, a, u) {
            M(r) && (r = r(i || 0, t, o));
            var l, h = t[e],
                c = "get" !== n ? n : M(h) ? u ? t[e.indexOf("set") || !M(t["get" + e.substr(3)]) ? e : "get" + e.substr(3)](u) : t[e]() : h,
                f = M(h) ? u ? ze : Ie : Ye;
            if (T(r) && (~r.indexOf("random(") && (r = Jt(r)), "=" === r.charAt(1) && ((l = parseFloat(c) + parseFloat(r.substr(2)) * ("-" === r.charAt(0) ? -1 : 1) + (Ht(c) || 0)) || 0 === l) && (r = l)), c !== r) return isNaN(c * r) || "" === r ? (!h && !(e in t) && q(e, r), Pe.call(this, t, e, c, r, f, a || v.stringFilter, u)) : (l = new $e(this._pt, t, e, +c || 0, r - (c || 0), "boolean" == typeof h ? je : Ve, 0, f), u && (l.fp = u), s && l.modifier(s, this, t), this._pt = l)
        },
        Oe = function(t, e, n, r, i, o) {
            var s, a, u, l;
            if (tt[t] && !1 !== (s = new tt[t]).init(i, s.rawVars ? e[t] : function(t, e, n, r, i) {
                    if (M(t) && (t = Le(t, i, e, n, r)), !S(t) || t.style && t.nodeType || N(t) || L(t)) return T(t) ? Le(t, i, e, n, r) : t;
                    var o, s = {};
                    for (o in t) s[o] = Le(t[o], i, e, n, r);
                    return s
                }(e[t], r, i, o, n), n, r, o) && (n._pt = a = new $e(n._pt, i, t, 0, 1, s.render, s, 0, s.priority), n !== f))
                for (u = n._ptLookup[n._targets.indexOf(i)], l = s._props.length; l--;) u[s._props[l]] = a;
            return s
        },
        ke = function t(e, n) {
            var r, i, a, u, l, h, c, f, p, d, g, D, m, v = e.vars,
                x = v.ease,
                w = v.startAt,
                C = v.immediateRender,
                F = v.lazy,
                E = v.onUpdate,
                b = v.onUpdateParams,
                T = v.callbackScope,
                M = v.runBackwards,
                A = v.yoyoEase,
                P = v.keyframes,
                S = v.autoRevert,
                k = e._dur,
                B = e._startAt,
                L = e._targets,
                N = e.parent,
                R = N && "nested" === N.data ? N.parent._targets : L,
                X = "auto" === e._overwrite && !o,
                Y = e.timeline;
            if (Y && (!P || !x) && (x = "none"), e._ease = xe(x, _.ease), e._yEase = A ? _e(xe(!0 === A ? x : A, _.ease)) : 0, A && e._yoyo && !e._repeat && (A = e._yEase, e._yEase = e._ease, e._ease = A), e._from = !Y && !!v.runBackwards, !Y || P && !v.stagger) {
                if (D = (f = L[0] ? st(L[0]).harness : 0) && v[f.prop], r = _t(v, Z), B && wt(B.render(-1, !0)), w)
                    if (wt(e._startAt = Xe.set(L, Dt({
                            data: "isStart",
                            overwrite: !1,
                            parent: N,
                            immediateRender: !0,
                            lazy: O(F),
                            startAt: null,
                            delay: 0,
                            onUpdate: E,
                            onUpdateParams: b,
                            callbackScope: T,
                            stagger: 0
                        }, w))), n < 0 && !C && !S && e._startAt.render(-1, !0), C) {
                        if (n > 0 && !S && (e._startAt = 0), k && n <= 0) return void(n && (e._zTime = n))
                    } else !1 === S && (e._startAt = 0);
                else if (M && k)
                    if (B) !S && (e._startAt = 0);
                    else if (n && (C = !1), a = Dt({
                        overwrite: !1,
                        data: "isFromStart",
                        lazy: C && O(F),
                        immediateRender: C,
                        stagger: 0,
                        parent: N
                    }, r), D && (a[f.prop] = D), wt(e._startAt = Xe.set(L, a)), n < 0 && e._startAt.render(-1, !0), e._zTime = n, C) {
                    if (!n) return
                } else t(e._startAt, 1e-8);
                for (e._pt = 0, F = k && O(F) || F && !k, i = 0; i < L.length; i++) {
                    if (c = (l = L[i])._gsap || ot(L)[i]._gsap, e._ptLookup[i] = d = {}, J[c.id] && $.length && ft(), g = R === L ? i : R.indexOf(l), f && !1 !== (p = new f).init(l, D || r, e, g, R) && (e._pt = u = new $e(e._pt, l, p.name, 0, 1, p.render, p, 0, p.priority), p._props.forEach((function(t) {
                            d[t] = u
                        })), p.priority && (h = 1)), !f || D)
                        for (a in r) tt[a] && (p = Oe(a, r, e, g, l, R)) ? p.priority && (h = 1) : d[a] = u = Se.call(e, l, a, "get", r[a], g, R, 0, v.stringFilter);
                    e._op && e._op[i] && e.kill(l, e._op[i]), X && e._pt && (Ae = e, s.killTweensOf(l, d, e.globalTime(n)), m = !e.parent, Ae = 0), e._pt && F && (J[c.id] = 1)
                }
                h && Ze(e), e._onInit && e._onInit(e)
            }
            e._onUpdate = E, e._initted = (!e._op || e._pt) && !m, P && n <= 0 && Y.render(y, !0, !0)
        },
        Be = function(t, e, n, r) {
            var i, o, s = e.ease || r || "power1.inOut";
            if (N(e)) o = n[t] || (n[t] = []), e.forEach((function(t, n) {
                return o.push({
                    t: n / (e.length - 1) * 100,
                    v: t,
                    e: s
                })
            }));
            else
                for (i in e) o = n[i] || (n[i] = []), "ease" === i || o.push({
                    t: parseFloat(t),
                    v: e[i],
                    e: s
                })
        },
        Le = function(t, e, n, r, i) {
            return M(t) ? t.call(e, n, r, i) : T(t) && ~t.indexOf("random(") ? Jt(t) : t
        },
        Ne = it + "repeat,repeatDelay,yoyo,repeatRefresh,yoyoEase",
        Re = {};
    ut(Ne + ",id,stagger,delay,duration,paused,scrollTrigger", (function(t) {
        return Re[t] = 1
    }));
    var Xe = function(t) {
        function e(e, n, i, a) {
            var u;
            "number" == typeof n && (i.duration = n, n = i, i = null);
            var l, h, c, f, p, d, g, D, m = (u = t.call(this, a ? n : yt(n)) || this).vars,
                _ = m.duration,
                y = m.delay,
                x = m.immediateRender,
                w = m.stagger,
                C = m.overwrite,
                F = m.keyframes,
                E = m.defaults,
                b = m.scrollTrigger,
                T = m.yoyoEase,
                M = n.parent || s,
                P = (N(e) || L(e) ? A(e[0]) : "length" in n) ? [e] : Ut(e);
            if (u._targets = P.length ? ot(P) : G("GSAP target " + e + " not found. https://greensock.com", !v.nullTargetWarn) || [], u._ptLookup = [], u._overwrite = C, F || w || B(_) || B(y)) {
                if (n = u.vars, (l = u.timeline = new Me({
                        data: "nested",
                        defaults: E || {}
                    })).kill(), l.parent = l._dp = r(u), l._start = 0, w || B(_) || B(y)) {
                    if (f = P.length, g = w && Gt(w), S(w))
                        for (p in w) ~Ne.indexOf(p) && (D || (D = {}), D[p] = w[p]);
                    for (h = 0; h < f; h++)(c = _t(n, Re)).stagger = 0, T && (c.yoyoEase = T), D && mt(c, D), d = P[h], c.duration = +Le(_, r(u), h, d, P), c.delay = (+Le(y, r(u), h, d, P) || 0) - u._delay, !w && 1 === f && c.delay && (u._delay = y = c.delay, u._start += y, c.delay = 0), l.to(d, c, g ? g(h, d, P) : 0), l._ease = ge.none;
                    l.duration() ? _ = y = 0 : u.timeline = 0
                } else if (F) {
                    yt(Dt(l.vars.defaults, {
                        ease: "none"
                    })), l._ease = xe(F.ease || n.ease || "none");
                    var k, R, X, Y = 0;
                    if (N(F)) F.forEach((function(t) {
                        return l.to(P, t, ">")
                    }));
                    else {
                        for (p in c = {}, F) "ease" === p || "easeEach" === p || Be(p, F[p], c, F.easeEach);
                        for (p in c)
                            for (k = c[p].sort((function(t, e) {
                                    return t.t - e.t
                                })), Y = 0, h = 0; h < k.length; h++)(X = {
                                ease: (R = k[h]).e,
                                duration: (R.t - (h ? k[h - 1].t : 0)) / 100 * _
                            })[p] = R.v, l.to(P, X, Y), Y += X.duration;
                        l.duration() < _ && l.to({}, {
                            duration: _ - l.duration()
                        })
                    }
                }
                _ || u.duration(_ = l.duration())
            } else u.timeline = 0;
            return !0 !== C || o || (Ae = r(u), s.killTweensOf(P), Ae = 0), St(M, r(u), i), n.reversed && u.reverse(), n.paused && u.paused(!0), (x || !_ && !F && u._start === ht(M._time) && O(x) && function t(e) {
                return !e || e._ts && t(e.parent)
            }(r(u)) && "nested" !== M.data) && (u._tTime = -1e-8, u.render(Math.max(0, -y))), b && Ot(r(u), b), u
        }
        i(e, t);
        var n = e.prototype;
        return n.render = function(t, e, n) {
            var r, i, o, s, a, u, l, h, c, f = this._time,
                p = this._tDur,
                d = this._dur,
                g = t > p - 1e-8 && t >= 0 ? p : t < 1e-8 ? 0 : t;
            if (d) {
                if (g !== this._tTime || !t || n || !this._initted && this._tTime || this._startAt && this._zTime < 0 != t < 0) {
                    if (r = g, h = this.timeline, this._repeat) {
                        if (s = d + this._rDelay, this._repeat < -1 && t < 0) return this.totalTime(100 * s + t, e, n);
                        if (r = ht(g % s), g === p ? (o = this._repeat, r = d) : ((o = ~~(g / s)) && o === g / s && (r = d, o--), r > d && (r = d)), (u = this._yoyo && 1 & o) && (c = this._yEase, r = d - r), a = bt(this._tTime, s), r === f && !n && this._initted) return this;
                        o !== a && (h && this._yEase && ye(h, u), !this.vars.repeatRefresh || u || this._lock || (this._lock = n = 1, this.render(ht(s * o), !0).invalidate()._lock = 0))
                    }
                    if (!this._initted) {
                        if (kt(this, t < 0 ? t : r, n, e)) return this._tTime = 0, this;
                        if (d !== this._dur) return this.render(t, e, n)
                    }
                    if (this._tTime = g, this._time = r, !this._act && this._ts && (this._act = 1, this._lazy = 0), this.ratio = l = (c || this._ease)(r / d), this._from && (this.ratio = l = 1 - l), r && !f && !e && (ne(this, "onStart"), this._tTime !== g)) return this;
                    for (i = this._pt; i;) i.r(l, i.d), i = i._next;
                    h && h.render(t < 0 ? t : !r && u ? -1e-8 : h._dur * h._ease(r / this._dur), e, n) || this._startAt && (this._zTime = t), this._onUpdate && !e && (t < 0 && this._startAt && this._startAt.render(t, !0, n), ne(this, "onUpdate")), this._repeat && o !== a && this.vars.onRepeat && !e && this.parent && ne(this, "onRepeat"), g !== this._tDur && g || this._tTime !== g || (t < 0 && this._startAt && !this._onUpdate && this._startAt.render(t, !0, !0), (t || !d) && (g === this._tDur && this._ts > 0 || !g && this._ts < 0) && wt(this, 1), e || t < 0 && !f || !g && !f || (ne(this, g === p ? "onComplete" : "onReverseComplete", !0), this._prom && !(g < p && this.timeScale() > 0) && this._prom()))
                }
            } else ! function(t, e, n, r) {
                var i, o, s, a = t.ratio,
                    u = e < 0 || !e && (!t._start && function t(e) {
                        var n = e.parent;
                        return n && n._ts && n._initted && !n._lock && (n.rawTime() < 0 || t(n))
                    }(t) && (t._initted || !Bt(t)) || (t._ts < 0 || t._dp._ts < 0) && !Bt(t)) ? 0 : 1,
                    l = t._rDelay,
                    h = 0;
                if (l && t._repeat && (h = zt(0, t._tDur, e), o = bt(h, l), t._yoyo && 1 & o && (u = 1 - u), o !== bt(t._tTime, l) && (a = 1 - u, t.vars.repeatRefresh && t._initted && t.invalidate())), u !== a || r || 1e-8 === t._zTime || !e && t._zTime) {
                    if (!t._initted && kt(t, e, r, n)) return;
                    for (s = t._zTime, t._zTime = e || (n ? 1e-8 : 0), n || (n = e && !s), t.ratio = u, t._from && (u = 1 - u), t._time = 0, t._tTime = h, i = t._pt; i;) i.r(u, i.d), i = i._next;
                    t._startAt && e < 0 && t._startAt.render(e, !0, !0), t._onUpdate && !n && ne(t, "onUpdate"), h && t._repeat && !n && t.parent && ne(t, "onRepeat"), (e >= t._tDur || e < 0) && t.ratio === u && (u && wt(t, 1), n || (ne(t, u ? "onComplete" : "onReverseComplete", !0), t._prom && t._prom()))
                } else t._zTime || (t._zTime = e)
            }(this, t, e, n);
            return this
        }, n.targets = function() {
            return this._targets
        }, n.invalidate = function() {
            return this._pt = this._op = this._startAt = this._onUpdate = this._lazy = this.ratio = 0, this._ptLookup = [], this.timeline && this.timeline.invalidate(), t.prototype.invalidate.call(this)
        }, n.kill = function(t, e) {
            if (void 0 === e && (e = "all"), !(t || e && "all" !== e)) return this._lazy = this._pt = 0, this.parent ? re(this) : this;
            if (this.timeline) {
                var n = this.timeline.totalDuration();
                return this.timeline.killTweensOf(t, e, Ae && !0 !== Ae.vars.overwrite)._first || re(this), this.parent && n !== this.timeline.totalDuration() && Lt(this, this._dur * this.timeline._tDur / n, 0, 1), this
            }
            var r, i, o, s, a, u, l, h = this._targets,
                c = t ? Ut(t) : h,
                f = this._ptLookup,
                p = this._pt;
            if ((!e || "all" === e) && function(t, e) {
                    for (var n = t.length, r = n === e.length; r && n-- && t[n] === e[n];);
                    return n < 0
                }(h, c)) return "all" === e && (this._pt = 0), re(this);
            for (r = this._op = this._op || [], "all" !== e && (T(e) && (a = {}, ut(e, (function(t) {
                    return a[t] = 1
                })), e = a), e = function(t, e) {
                    var n, r, i, o, s = t[0] ? st(t[0]).harness : 0,
                        a = s && s.aliases;
                    if (!a) return e;
                    for (r in n = mt({}, e), a)
                        if (r in n)
                            for (i = (o = a[r].split(",")).length; i--;) n[o[i]] = n[r];
                    return n
                }(h, e)), l = h.length; l--;)
                if (~c.indexOf(h[l]))
                    for (a in i = f[l], "all" === e ? (r[l] = e, s = i, o = {}) : (o = r[l] = r[l] || {}, s = e), s)(u = i && i[a]) && ("kill" in u.d && !0 !== u.d.kill(a) || xt(this, u, "_pt"), delete i[a]), "all" !== o && (o[a] = 1);
            return this._initted && !this._pt && p && re(this), this
        }, e.to = function(t, n) {
            return new e(t, n, arguments[2])
        }, e.from = function(t, e) {
            return Yt(1, arguments)
        }, e.delayedCall = function(t, n, r, i) {
            return new e(n, 0, {
                immediateRender: !1,
                lazy: !1,
                overwrite: !1,
                delay: t,
                onComplete: n,
                onReverseComplete: n,
                onCompleteParams: r,
                onReverseCompleteParams: r,
                callbackScope: i
            })
        }, e.fromTo = function(t, e, n) {
            return Yt(2, arguments)
        }, e.set = function(t, n) {
            return n.duration = 0, n.repeatDelay || (n.repeat = 0), new e(t, n)
        }, e.killTweensOf = function(t, e, n) {
            return s.killTweensOf(t, e, n)
        }, e
    }(Te);
    Dt(Xe.prototype, {
        _targets: [],
        _lazy: 0,
        _startAt: 0,
        _op: 0,
        _onInit: 0
    }), ut("staggerTo,staggerFrom,staggerFromTo", (function(t) {
        Xe[t] = function() {
            var e = new Me,
                n = Wt.call(arguments, 0);
            return n.splice("staggerFromTo" === t ? 5 : 4, 0, 0), e[t].apply(e, n)
        }
    }));
    var Ye = function(t, e, n) {
            return t[e] = n
        },
        Ie = function(t, e, n) {
            return t[e](n)
        },
        ze = function(t, e, n, r) {
            return t[e](r.fp, n)
        },
        He = function(t, e, n) {
            return t.setAttribute(e, n)
        },
        We = function(t, e) {
            return M(t[e]) ? Ie : P(t[e]) && t.setAttribute ? He : Ye
        },
        Ve = function(t, e) {
            return e.set(e.t, e.p, Math.round(1e6 * (e.s + e.c * t)) / 1e6, e)
        },
        je = function(t, e) {
            return e.set(e.t, e.p, !!(e.s + e.c * t), e)
        },
        Ue = function(t, e) {
            var n = e._pt,
                r = "";
            if (!t && e.b) r = e.b;
            else if (1 === t && e.e) r = e.e;
            else {
                for (; n;) r = n.p + (n.m ? n.m(n.s + n.c * t) : Math.round(1e4 * (n.s + n.c * t)) / 1e4) + r, n = n._next;
                r += e.c
            }
            e.set(e.t, e.p, r, e)
        },
        qe = function(t, e) {
            for (var n = e._pt; n;) n.r(t, n.d), n = n._next
        },
        Ge = function(t, e, n, r) {
            for (var i, o = this._pt; o;) i = o._next, o.p === r && o.modifier(t, e, n), o = i
        },
        Ke = function(t) {
            for (var e, n, r = this._pt; r;) n = r._next, r.p === t && !r.op || r.op === t ? xt(this, r, "_pt") : r.dep || (e = 1), r = n;
            return !e
        },
        Qe = function(t, e, n, r) {
            r.mSet(t, e, r.m.call(r.tween, n, r.mt), r)
        },
        Ze = function(t) {
            for (var e, n, r, i, o = t._pt; o;) {
                for (e = o._next, n = r; n && n.pr > o.pr;) n = n._next;
                (o._prev = n ? n._prev : i) ? o._prev._next = o: r = o, (o._next = n) ? n._prev = o : i = o, o = e
            }
            t._pt = r
        },
        $e = function() {
            function t(t, e, n, r, i, o, s, a, u) {
                this.t = e, this.s = r, this.c = i, this.p = n, this.r = o || Ve, this.d = s || this, this.set = a || Ye, this.pr = u || 0, this._next = t, t && (t._prev = this)
            }
            return t.prototype.modifier = function(t, e, n) {
                this.mSet = this.mSet || this.set, this.set = Qe, this.m = t, this.mt = n, this.tween = e
            }, t
        }();
    ut(it + "parent,duration,ease,delay,overwrite,runBackwards,startAt,yoyo,immediateRender,repeat,repeatDelay,data,paused,reversed,lazy,callbackScope,stringFilter,id,yoyoEase,stagger,inherit,repeatRefresh,keyframes,autoRevert,scrollTrigger", (function(t) {
        return Z[t] = 1
    })), V.TweenMax = V.TweenLite = Xe, V.TimelineLite = V.TimelineMax = Me, s = new Me({
        sortChildren: !1,
        defaults: _,
        autoRemoveChildren: !0,
        id: "root",
        smoothChildTiming: !0
    }), v.stringFilter = fe;
    var Je = {
        registerPlugin: function() {
            for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++) e[n] = arguments[n];
            e.forEach((function(t) {
                return ie(t)
            }))
        },
        timeline: function(t) {
            return new Me(t)
        },
        getTweensOf: function(t, e) {
            return s.getTweensOf(t, e)
        },
        getProperty: function(t, e, n, r) {
            T(t) && (t = Ut(t)[0]);
            var i = st(t || {}).get,
                o = n ? gt : dt;
            return "native" === n && (n = ""), t ? e ? o((tt[e] && tt[e].get || i)(t, e, n, r)) : function(e, n, r) {
                return o((tt[e] && tt[e].get || i)(t, e, n, r))
            } : t
        },
        quickSetter: function(t, e, n) {
            if ((t = Ut(t)).length > 1) {
                var r = t.map((function(t) {
                        return nn.quickSetter(t, e, n)
                    })),
                    i = r.length;
                return function(t) {
                    for (var e = i; e--;) r[e](t)
                }
            }
            t = t[0] || {};
            var o = tt[e],
                s = st(t),
                a = s.harness && (s.harness.aliases || {})[e] || e,
                u = o ? function(e) {
                    var r = new o;
                    f._pt = 0, r.init(t, n ? e + n : e, f, 0, [t]), r.render(1, r), f._pt && qe(1, f)
                } : s.set(t, a);
            return o ? u : function(e) {
                return u(t, a, n ? e + n : e, s, 1)
            }
        },
        isTweening: function(t) {
            return s.getTweensOf(t, !0).length > 0
        },
        defaults: function(t) {
            return t && t.ease && (t.ease = xe(t.ease, _.ease)), vt(_, t || {})
        },
        config: function(t) {
            return vt(v, t || {})
        },
        registerEffect: function(t) {
            var e = t.name,
                n = t.effect,
                r = t.plugins,
                i = t.defaults,
                o = t.extendTimeline;
            (r || "").split(",").forEach((function(t) {
                return t && !tt[t] && !V[t] && G(e + " effect requires " + t + " plugin.")
            })), et[e] = function(t, e, r) {
                return n(Ut(t), Dt(e || {}, i), r)
            }, o && (Me.prototype[e] = function(t, n, r) {
                return this.add(et[e](t, S(n) ? n : (r = n) && {}, this), r)
            })
        },
        registerEase: function(t, e) {
            ge[t] = xe(e)
        },
        parseEase: function(t, e) {
            return arguments.length ? xe(t, e) : ge
        },
        getById: function(t) {
            return s.getById(t)
        },
        exportRoot: function(t, e) {
            void 0 === t && (t = {});
            var n, r, i = new Me(t);
            for (i.smoothChildTiming = O(t.smoothChildTiming), s.remove(i), i._dp = 0, i._time = i._tTime = s._time, n = s._first; n;) r = n._next, !e && !n._dur && n instanceof Xe && n.vars.onComplete === n._targets[0] || St(i, n, n._start - n._delay), n = r;
            return St(s, i, 0), i
        },
        utils: {
            wrap: function t(e, n, r) {
                var i = n - e;
                return N(e) ? $t(e, t(0, e.length), n) : It(r, (function(t) {
                    return (i + (t - e) % i) % i + e
                }))
            },
            wrapYoyo: function t(e, n, r) {
                var i = n - e,
                    o = 2 * i;
                return N(e) ? $t(e, t(0, e.length - 1), n) : It(r, (function(t) {
                    return e + ((t = (o + (t - e) % o) % o || 0) > i ? o - t : t)
                }))
            },
            distribute: Gt,
            random: Zt,
            snap: Qt,
            normalize: function(t, e, n) {
                return te(t, e, 0, 1, n)
            },
            getUnit: Ht,
            clamp: function(t, e, n) {
                return It(n, (function(n) {
                    return zt(t, e, n)
                }))
            },
            splitColor: ae,
            toArray: Ut,
            selector: function(t) {
                return t = Ut(t)[0] || G("Invalid scope") || {},
                    function(e) {
                        var n = t.current || t.nativeElement || t;
                        return Ut(e, n.querySelectorAll ? n : n === t ? G("Invalid scope") || l.createElement("div") : t)
                    }
            },
            mapRange: te,
            pipe: function() {
                for (var t = arguments.length, e = new Array(t), n = 0; n < t; n++) e[n] = arguments[n];
                return function(t) {
                    return e.reduce((function(t, e) {
                        return e(t)
                    }), t)
                }
            },
            unitize: function(t, e) {
                return function(n) {
                    return t(parseFloat(n)) + (e || Ht(n))
                }
            },
            interpolate: function t(e, n, r, i) {
                var o = isNaN(e + n) ? 0 : function(t) {
                    return (1 - t) * e + t * n
                };
                if (!o) {
                    var s, a, u, l, h, c = T(e),
                        f = {};
                    if (!0 === r && (i = 1) && (r = null), c) e = {
                        p: e
                    }, n = {
                        p: n
                    };
                    else if (N(e) && !N(n)) {
                        for (u = [], l = e.length, h = l - 2, a = 1; a < l; a++) u.push(t(e[a - 1], e[a]));
                        l--, o = function(t) {
                            t *= l;
                            var e = Math.min(h, ~~t);
                            return u[e](t - e)
                        }, r = n
                    } else i || (e = mt(N(e) ? [] : {}, e));
                    if (!u) {
                        for (s in n) Se.call(f, e, s, "get", n[s]);
                        o = function(t) {
                            return qe(t, f) || (c ? e.p : e)
                        }
                    }
                }
                return It(r, o)
            },
            shuffle: qt
        },
        install: U,
        effects: et,
        ticker: pe,
        updateRoot: Me.updateRoot,
        plugins: tt,
        globalTimeline: s,
        core: {
            PropTween: $e,
            globals: K,
            Tween: Xe,
            Timeline: Me,
            Animation: Te,
            getCache: st,
            _removeLinkedListItem: xt,
            suppressOverwrites: function(t) {
                return o = t
            }
        }
    };
    ut("to,from,fromTo,delayedCall,set,killTweensOf", (function(t) {
        return Je[t] = Xe[t]
    })), pe.add(Me.updateRoot), f = Je.to({}, {
        duration: 0
    });
    var tn = function(t, e) {
            for (var n = t._pt; n && n.p !== e && n.op !== e && n.fp !== e;) n = n._next;
            return n
        },
        en = function(t, e) {
            return {
                name: t,
                rawVars: 1,
                init: function(t, n, r) {
                    r._onInit = function(t) {
                        var r, i;
                        if (T(n) && (r = {}, ut(n, (function(t) {
                                return r[t] = 1
                            })), n = r), e) {
                            for (i in r = {}, n) r[i] = e(n[i]);
                            n = r
                        }! function(t, e) {
                            var n, r, i, o = t._targets;
                            for (n in e)
                                for (r = o.length; r--;)(i = t._ptLookup[r][n]) && (i = i.d) && (i._pt && (i = tn(i, n)), i && i.modifier && i.modifier(e[n], t, o[r], n))
                        }(t, n)
                    }
                }
            }
        },
        nn = Je.registerPlugin({
            name: "attr",
            init: function(t, e, n, r, i) {
                var o, s;
                for (o in e)(s = this.add(t, "setAttribute", (t.getAttribute(o) || 0) + "", e[o], r, i, 0, 0, o)) && (s.op = o), this._props.push(o)
            }
        }, {
            name: "endArray",
            init: function(t, e) {
                for (var n = e.length; n--;) this.add(t, n, t[n] || 0, e[n])
            }
        }, en("roundProps", Kt), en("modifiers"), en("snap", Qt)) || Je;
    Xe.version = Me.version = nn.version = "3.9.1", h = 1, k() && de();
    ge.Power0, ge.Power1, ge.Power2, ge.Power3, ge.Power4, ge.Linear, ge.Quad, ge.Cubic, ge.Quart, ge.Quint, ge.Strong, ge.Elastic, ge.Back, ge.SteppedEase, ge.Bounce, ge.Sine, ge.Expo, ge.Circ;
    /*!
     * CSSPlugin 3.9.1
     * https://greensock.com
     *
     * Copyright 2008-2021, GreenSock. All rights reserved.
     * Subject to the terms at https://greensock.com/standard-license or for
     * Club GreenSock members, the agreement issued with that membership.
     * @author: Jack Doyle, jack@greensock.com
     */
    var rn, on, sn, an, un, ln, hn, cn = {},
        fn = 180 / Math.PI,
        pn = Math.PI / 180,
        dn = Math.atan2,
        gn = /([A-Z])/g,
        Dn = /(?:left|right|width|margin|padding|x)/i,
        mn = /[\s,\(]\S/,
        vn = {
            autoAlpha: "opacity,visibility",
            scale: "scaleX,scaleY",
            alpha: "opacity"
        },
        _n = function(t, e) {
            return e.set(e.t, e.p, Math.round(1e4 * (e.s + e.c * t)) / 1e4 + e.u, e)
        },
        yn = function(t, e) {
            return e.set(e.t, e.p, 1 === t ? e.e : Math.round(1e4 * (e.s + e.c * t)) / 1e4 + e.u, e)
        },
        xn = function(t, e) {
            return e.set(e.t, e.p, t ? Math.round(1e4 * (e.s + e.c * t)) / 1e4 + e.u : e.b, e)
        },
        wn = function(t, e) {
            var n = e.s + e.c * t;
            e.set(e.t, e.p, ~~(n + (n < 0 ? -.5 : .5)) + e.u, e)
        },
        Cn = function(t, e) {
            return e.set(e.t, e.p, t ? e.e : e.b, e)
        },
        Fn = function(t, e) {
            return e.set(e.t, e.p, 1 !== t ? e.b : e.e, e)
        },
        En = function(t, e, n) {
            return t.style[e] = n
        },
        bn = function(t, e, n) {
            return t.style.setProperty(e, n)
        },
        Tn = function(t, e, n) {
            return t._gsap[e] = n
        },
        Mn = function(t, e, n) {
            return t._gsap.scaleX = t._gsap.scaleY = n
        },
        An = function(t, e, n, r, i) {
            var o = t._gsap;
            o.scaleX = o.scaleY = n, o.renderTransform(i, o)
        },
        Pn = function(t, e, n, r, i) {
            var o = t._gsap;
            o[e] = n, o.renderTransform(i, o)
        },
        Sn = "transform",
        On = Sn + "Origin",
        kn = function(t, e) {
            var n = on.createElementNS ? on.createElementNS((e || "http://www.w3.org/1999/xhtml").replace(/^https/, "http"), t) : on.createElement(t);
            return n.style ? n : on.createElement(t)
        },
        Bn = function t(e, n, r) {
            var i = getComputedStyle(e);
            return i[n] || i.getPropertyValue(n.replace(gn, "-$1").toLowerCase()) || i.getPropertyValue(n) || !r && t(e, Nn(n) || n, 1) || ""
        },
        Ln = "O,Moz,ms,Ms,Webkit".split(","),
        Nn = function(t, e, n) {
            var r = (e || un).style,
                i = 5;
            if (t in r && !n) return t;
            for (t = t.charAt(0).toUpperCase() + t.substr(1); i-- && !(Ln[i] + t in r););
            return i < 0 ? null : (3 === i ? "ms" : i >= 0 ? Ln[i] : "") + t
        },
        Rn = function() {
            "undefined" != typeof window && window.document && (rn = window, on = rn.document, sn = on.documentElement, un = kn("div") || {
                style: {}
            }, kn("div"), Sn = Nn(Sn), On = Sn + "Origin", un.style.cssText = "border-width:0;line-height:0;position:absolute;padding:0", hn = !!Nn("perspective"), an = 1)
        },
        Xn = function t(e) {
            var n, r = kn("svg", this.ownerSVGElement && this.ownerSVGElement.getAttribute("xmlns") || "http://www.w3.org/2000/svg"),
                i = this.parentNode,
                o = this.nextSibling,
                s = this.style.cssText;
            if (sn.appendChild(r), r.appendChild(this), this.style.display = "block", e) try {
                n = this.getBBox(), this._gsapBBox = this.getBBox, this.getBBox = t
            } catch (t) {} else this._gsapBBox && (n = this._gsapBBox());
            return i && (o ? i.insertBefore(this, o) : i.appendChild(this)), sn.removeChild(r), this.style.cssText = s, n
        },
        Yn = function(t, e) {
            for (var n = e.length; n--;)
                if (t.hasAttribute(e[n])) return t.getAttribute(e[n])
        },
        In = function(t) {
            var e;
            try {
                e = t.getBBox()
            } catch (n) {
                e = Xn.call(t, !0)
            }
            return e && (e.width || e.height) || t.getBBox === Xn || (e = Xn.call(t, !0)), !e || e.width || e.x || e.y ? e : {
                x: +Yn(t, ["x", "cx", "x1"]) || 0,
                y: +Yn(t, ["y", "cy", "y1"]) || 0,
                width: 0,
                height: 0
            }
        },
        zn = function(t) {
            return !(!t.getCTM || t.parentNode && !t.ownerSVGElement || !In(t))
        },
        Hn = function(t, e) {
            if (e) {
                var n = t.style;
                e in cn && e !== On && (e = Sn), n.removeProperty ? ("ms" !== e.substr(0, 2) && "webkit" !== e.substr(0, 6) || (e = "-" + e), n.removeProperty(e.replace(gn, "-$1").toLowerCase())) : n.removeAttribute(e)
            }
        },
        Wn = function(t, e, n, r, i, o) {
            var s = new $e(t._pt, e, n, 0, 1, o ? Fn : Cn);
            return t._pt = s, s.b = r, s.e = i, t._props.push(n), s
        },
        Vn = {
            deg: 1,
            rad: 1,
            turn: 1
        },
        jn = function t(e, n, r, i) {
            var o, s, a, u, l = parseFloat(r) || 0,
                h = (r + "").trim().substr((l + "").length) || "px",
                c = un.style,
                f = Dn.test(n),
                p = "svg" === e.tagName.toLowerCase(),
                d = (p ? "client" : "offset") + (f ? "Width" : "Height"),
                g = "px" === i,
                D = "%" === i;
            return i === h || !l || Vn[i] || Vn[h] ? l : ("px" !== h && !g && (l = t(e, n, r, "px")), u = e.getCTM && zn(e), !D && "%" !== h || !cn[n] && !~n.indexOf("adius") ? (c[f ? "width" : "height"] = 100 + (g ? h : i), s = ~n.indexOf("adius") || "em" === i && e.appendChild && !p ? e : e.parentNode, u && (s = (e.ownerSVGElement || {}).parentNode), s && s !== on && s.appendChild || (s = on.body), (a = s._gsap) && D && a.width && f && a.time === pe.time ? lt(l / a.width * 100) : ((D || "%" === h) && (c.position = Bn(e, "position")), s === e && (c.position = "static"), s.appendChild(un), o = un[d], s.removeChild(un), c.position = "absolute", f && D && ((a = st(s)).time = pe.time, a.width = s[d]), lt(g ? o * l / 100 : o && l ? 100 / o * l : 0))) : (o = u ? e.getBBox()[f ? "width" : "height"] : e[d], lt(D ? l / o * 100 : l / 100 * o)))
        },
        Un = function(t, e, n, r) {
            var i;
            return an || Rn(), e in vn && "transform" !== e && ~(e = vn[e]).indexOf(",") && (e = e.split(",")[0]), cn[e] && "transform" !== e ? (i = rr(t, r), i = "transformOrigin" !== e ? i[e] : i.svg ? i.origin : ir(Bn(t, On)) + " " + i.zOrigin + "px") : (!(i = t.style[e]) || "auto" === i || r || ~(i + "").indexOf("calc(")) && (i = Qn[e] && Qn[e](t, e, n) || Bn(t, e) || at(t, e) || ("opacity" === e ? 1 : 0)), n && !~(i + "").trim().indexOf(" ") ? jn(t, e, i, n) + n : i
        },
        qn = function(t, e, n, r) {
            if (!n || "none" === n) {
                var i = Nn(e, t, 1),
                    o = i && Bn(t, i, 1);
                o && o !== n ? (e = i, n = o) : "borderColor" === e && (n = Bn(t, "borderTopColor"))
            }
            var s, a, u, l, h, c, f, p, d, g, D, m, _ = new $e(this._pt, t.style, e, 0, 1, Ue),
                y = 0,
                x = 0;
            if (_.b = n, _.e = r, n += "", "auto" === (r += "") && (t.style[e] = r, r = Bn(t, e) || r, t.style[e] = n), fe(s = [n, r]), r = s[1], u = (n = s[0]).match(Y) || [], (r.match(Y) || []).length) {
                for (; a = Y.exec(r);) f = a[0], d = r.substring(y, a.index), h ? h = (h + 1) % 5 : "rgba(" !== d.substr(-5) && "hsla(" !== d.substr(-5) || (h = 1), f !== (c = u[x++] || "") && (l = parseFloat(c) || 0, D = c.substr((l + "").length), (m = "=" === f.charAt(1) ? +(f.charAt(0) + "1") : 0) && (f = f.substr(2)), p = parseFloat(f), g = f.substr((p + "").length), y = Y.lastIndex - g.length, g || (g = g || v.units[e] || D, y === r.length && (r += g, _.e += g)), D !== g && (l = jn(t, e, c, g) || 0), _._pt = {
                    _next: _._pt,
                    p: d || 1 === x ? d : ",",
                    s: l,
                    c: m ? m * p : p - l,
                    m: h && h < 4 || "zIndex" === e ? Math.round : 0
                });
                _.c = y < r.length ? r.substring(y, r.length) : ""
            } else _.r = "display" === e && "none" === r ? Fn : Cn;
            return z.test(r) && (_.e = 0), this._pt = _, _
        },
        Gn = {
            top: "0%",
            bottom: "100%",
            left: "0%",
            right: "100%",
            center: "50%"
        },
        Kn = function(t, e) {
            if (e.tween && e.tween._time === e.tween._dur) {
                var n, r, i, o = e.t,
                    s = o.style,
                    a = e.u,
                    u = o._gsap;
                if ("all" === a || !0 === a) s.cssText = "", r = 1;
                else
                    for (i = (a = a.split(",")).length; --i > -1;) n = a[i], cn[n] && (r = 1, n = "transformOrigin" === n ? On : Sn), Hn(o, n);
                r && (Hn(o, Sn), u && (u.svg && o.removeAttribute("transform"), rr(o, 1), u.uncache = 1))
            }
        },
        Qn = {
            clearProps: function(t, e, n, r, i) {
                if ("isFromStart" !== i.data) {
                    var o = t._pt = new $e(t._pt, e, n, 0, 0, Kn);
                    return o.u = r, o.pr = -10, o.tween = i, t._props.push(n), 1
                }
            }
        },
        Zn = [1, 0, 0, 1, 0, 0],
        $n = {},
        Jn = function(t) {
            return "matrix(1, 0, 0, 1, 0, 0)" === t || "none" === t || !t
        },
        tr = function(t) {
            var e = Bn(t, Sn);
            return Jn(e) ? Zn : e.substr(7).match(X).map(lt)
        },
        er = function(t, e) {
            var n, r, i, o, s = t._gsap || st(t),
                a = t.style,
                u = tr(t);
            return s.svg && t.getAttribute("transform") ? "1,0,0,1,0,0" === (u = [(i = t.transform.baseVal.consolidate().matrix).a, i.b, i.c, i.d, i.e, i.f]).join(",") ? Zn : u : (u !== Zn || t.offsetParent || t === sn || s.svg || (i = a.display, a.display = "block", (n = t.parentNode) && t.offsetParent || (o = 1, r = t.nextSibling, sn.appendChild(t)), u = tr(t), i ? a.display = i : Hn(t, "display"), o && (r ? n.insertBefore(t, r) : n ? n.appendChild(t) : sn.removeChild(t))), e && u.length > 6 ? [u[0], u[1], u[4], u[5], u[12], u[13]] : u)
        },
        nr = function(t, e, n, r, i, o) {
            var s, a, u, l = t._gsap,
                h = i || er(t, !0),
                c = l.xOrigin || 0,
                f = l.yOrigin || 0,
                p = l.xOffset || 0,
                d = l.yOffset || 0,
                g = h[0],
                D = h[1],
                m = h[2],
                v = h[3],
                _ = h[4],
                y = h[5],
                x = e.split(" "),
                w = parseFloat(x[0]) || 0,
                C = parseFloat(x[1]) || 0;
            n ? h !== Zn && (a = g * v - D * m) && (u = w * (-D / a) + C * (g / a) - (g * y - D * _) / a, w = w * (v / a) + C * (-m / a) + (m * y - v * _) / a, C = u) : (w = (s = In(t)).x + (~x[0].indexOf("%") ? w / 100 * s.width : w), C = s.y + (~(x[1] || x[0]).indexOf("%") ? C / 100 * s.height : C)), r || !1 !== r && l.smooth ? (_ = w - c, y = C - f, l.xOffset = p + (_ * g + y * m) - _, l.yOffset = d + (_ * D + y * v) - y) : l.xOffset = l.yOffset = 0, l.xOrigin = w, l.yOrigin = C, l.smooth = !!r, l.origin = e, l.originIsAbsolute = !!n, t.style[On] = "0px 0px", o && (Wn(o, l, "xOrigin", c, w), Wn(o, l, "yOrigin", f, C), Wn(o, l, "xOffset", p, l.xOffset), Wn(o, l, "yOffset", d, l.yOffset)), t.setAttribute("data-svg-origin", w + " " + C)
        },
        rr = function(t, e) {
            var n = t._gsap || new be(t);
            if ("x" in n && !e && !n.uncache) return n;
            var r, i, o, s, a, u, l, h, c, f, p, d, g, D, m, _, y, x, w, C, F, E, b, T, M, A, P, S, O, k, B, L, N = t.style,
                R = n.scaleX < 0,
                X = Bn(t, On) || "0";
            return r = i = o = u = l = h = c = f = p = 0, s = a = 1, n.svg = !(!t.getCTM || !zn(t)), D = er(t, n.svg), n.svg && (T = (!n.uncache || "0px 0px" === X) && !e && t.getAttribute("data-svg-origin"), nr(t, T || X, !!T || n.originIsAbsolute, !1 !== n.smooth, D)), d = n.xOrigin || 0, g = n.yOrigin || 0, D !== Zn && (x = D[0], w = D[1], C = D[2], F = D[3], r = E = D[4], i = b = D[5], 6 === D.length ? (s = Math.sqrt(x * x + w * w), a = Math.sqrt(F * F + C * C), u = x || w ? dn(w, x) * fn : 0, (c = C || F ? dn(C, F) * fn + u : 0) && (a *= Math.abs(Math.cos(c * pn))), n.svg && (r -= d - (d * x + g * C), i -= g - (d * w + g * F))) : (L = D[6], k = D[7], P = D[8], S = D[9], O = D[10], B = D[11], r = D[12], i = D[13], o = D[14], l = (m = dn(L, O)) * fn, m && (T = E * (_ = Math.cos(-m)) + P * (y = Math.sin(-m)), M = b * _ + S * y, A = L * _ + O * y, P = E * -y + P * _, S = b * -y + S * _, O = L * -y + O * _, B = k * -y + B * _, E = T, b = M, L = A), h = (m = dn(-C, O)) * fn, m && (_ = Math.cos(-m), B = F * (y = Math.sin(-m)) + B * _, x = T = x * _ - P * y, w = M = w * _ - S * y, C = A = C * _ - O * y), u = (m = dn(w, x)) * fn, m && (T = x * (_ = Math.cos(m)) + w * (y = Math.sin(m)), M = E * _ + b * y, w = w * _ - x * y, b = b * _ - E * y, x = T, E = M), l && Math.abs(l) + Math.abs(u) > 359.9 && (l = u = 0, h = 180 - h), s = lt(Math.sqrt(x * x + w * w + C * C)), a = lt(Math.sqrt(b * b + L * L)), m = dn(E, b), c = Math.abs(m) > 2e-4 ? m * fn : 0, p = B ? 1 / (B < 0 ? -B : B) : 0), n.svg && (T = t.getAttribute("transform"), n.forceCSS = t.setAttribute("transform", "") || !Jn(Bn(t, Sn)), T && t.setAttribute("transform", T))), Math.abs(c) > 90 && Math.abs(c) < 270 && (R ? (s *= -1, c += u <= 0 ? 180 : -180, u += u <= 0 ? 180 : -180) : (a *= -1, c += c <= 0 ? 180 : -180)), n.x = r - ((n.xPercent = r && (n.xPercent || (Math.round(t.offsetWidth / 2) === Math.round(-r) ? -50 : 0))) ? t.offsetWidth * n.xPercent / 100 : 0) + "px", n.y = i - ((n.yPercent = i && (n.yPercent || (Math.round(t.offsetHeight / 2) === Math.round(-i) ? -50 : 0))) ? t.offsetHeight * n.yPercent / 100 : 0) + "px", n.z = o + "px", n.scaleX = lt(s), n.scaleY = lt(a), n.rotation = lt(u) + "deg", n.rotationX = lt(l) + "deg", n.rotationY = lt(h) + "deg", n.skewX = c + "deg", n.skewY = f + "deg", n.transformPerspective = p + "px", (n.zOrigin = parseFloat(X.split(" ")[2]) || 0) && (N[On] = ir(X)), n.xOffset = n.yOffset = 0, n.force3D = v.force3D, n.renderTransform = n.svg ? ur : hn ? ar : sr, n.uncache = 0, n
        },
        ir = function(t) {
            return (t = t.split(" "))[0] + " " + t[1]
        },
        or = function(t, e, n) {
            var r = Ht(e);
            return lt(parseFloat(e) + parseFloat(jn(t, "x", n + "px", r))) + r
        },
        sr = function(t, e) {
            e.z = "0px", e.rotationY = e.rotationX = "0deg", e.force3D = 0, ar(t, e)
        },
        ar = function(t, e) {
            var n = e || this,
                r = n.xPercent,
                i = n.yPercent,
                o = n.x,
                s = n.y,
                a = n.z,
                u = n.rotation,
                l = n.rotationY,
                h = n.rotationX,
                c = n.skewX,
                f = n.skewY,
                p = n.scaleX,
                d = n.scaleY,
                g = n.transformPerspective,
                D = n.force3D,
                m = n.target,
                v = n.zOrigin,
                _ = "",
                y = "auto" === D && t && 1 !== t || !0 === D;
            if (v && ("0deg" !== h || "0deg" !== l)) {
                var x, w = parseFloat(l) * pn,
                    C = Math.sin(w),
                    F = Math.cos(w);
                w = parseFloat(h) * pn, x = Math.cos(w), o = or(m, o, C * x * -v), s = or(m, s, -Math.sin(w) * -v), a = or(m, a, F * x * -v + v)
            }
            "0px" !== g && (_ += "perspective(" + g + ") "), (r || i) && (_ += "translate(" + r + "%, " + i + "%) "), (y || "0px" !== o || "0px" !== s || "0px" !== a) && (_ += "0px" !== a || y ? "translate3d(" + o + ", " + s + ", " + a + ") " : "translate(" + o + ", " + s + ") "), "0deg" !== u && (_ += "rotate(" + u + ") "), "0deg" !== l && (_ += "rotateY(" + l + ") "), "0deg" !== h && (_ += "rotateX(" + h + ") "), "0deg" === c && "0deg" === f || (_ += "skew(" + c + ", " + f + ") "), 1 === p && 1 === d || (_ += "scale(" + p + ", " + d + ") "), m.style[Sn] = _ || "translate(0, 0)"
        },
        ur = function(t, e) {
            var n, r, i, o, s, a = e || this,
                u = a.xPercent,
                l = a.yPercent,
                h = a.x,
                c = a.y,
                f = a.rotation,
                p = a.skewX,
                d = a.skewY,
                g = a.scaleX,
                D = a.scaleY,
                m = a.target,
                v = a.xOrigin,
                _ = a.yOrigin,
                y = a.xOffset,
                x = a.yOffset,
                w = a.forceCSS,
                C = parseFloat(h),
                F = parseFloat(c);
            f = parseFloat(f), p = parseFloat(p), (d = parseFloat(d)) && (p += d = parseFloat(d), f += d), f || p ? (f *= pn, p *= pn, n = Math.cos(f) * g, r = Math.sin(f) * g, i = Math.sin(f - p) * -D, o = Math.cos(f - p) * D, p && (d *= pn, s = Math.tan(p - d), i *= s = Math.sqrt(1 + s * s), o *= s, d && (s = Math.tan(d), n *= s = Math.sqrt(1 + s * s), r *= s)), n = lt(n), r = lt(r), i = lt(i), o = lt(o)) : (n = g, o = D, r = i = 0), (C && !~(h + "").indexOf("px") || F && !~(c + "").indexOf("px")) && (C = jn(m, "x", h, "px"), F = jn(m, "y", c, "px")), (v || _ || y || x) && (C = lt(C + v - (v * n + _ * i) + y), F = lt(F + _ - (v * r + _ * o) + x)), (u || l) && (s = m.getBBox(), C = lt(C + u / 100 * s.width), F = lt(F + l / 100 * s.height)), s = "matrix(" + n + "," + r + "," + i + "," + o + "," + C + "," + F + ")", m.setAttribute("transform", s), w && (m.style[Sn] = s)
        },
        lr = function(t, e, n, r, i, o) {
            var s, a, u = T(i),
                l = parseFloat(i) * (u && ~i.indexOf("rad") ? fn : 1),
                h = o ? l * o : l - r,
                c = r + h + "deg";
            return u && ("short" === (s = i.split("_")[1]) && (h %= 360) !== h % 180 && (h += h < 0 ? 360 : -360), "cw" === s && h < 0 ? h = (h + 36e9) % 360 - 360 * ~~(h / 360) : "ccw" === s && h > 0 && (h = (h - 36e9) % 360 - 360 * ~~(h / 360))), t._pt = a = new $e(t._pt, e, n, r, h, yn), a.e = c, a.u = "deg", t._props.push(n), a
        },
        hr = function(t, e) {
            for (var n in e) t[n] = e[n];
            return t
        },
        cr = function(t, e, n) {
            var r, i, o, s, a, u, l, h = hr({}, n._gsap),
                c = n.style;
            for (i in h.svg ? (o = n.getAttribute("transform"), n.setAttribute("transform", ""), c[Sn] = e, r = rr(n, 1), Hn(n, Sn), n.setAttribute("transform", o)) : (o = getComputedStyle(n)[Sn], c[Sn] = e, r = rr(n, 1), c[Sn] = o), cn)(o = h[i]) !== (s = r[i]) && "perspective,force3D,transformOrigin,svgOrigin".indexOf(i) < 0 && (a = Ht(o) !== (l = Ht(s)) ? jn(n, i, o, l) : parseFloat(o), u = parseFloat(s), t._pt = new $e(t._pt, r, i, a, u - a, _n), t._pt.u = l || 0, t._props.push(i));
            hr(r, h)
        };
    ut("padding,margin,Width,Radius", (function(t, e) {
        var n = "Top",
            r = "Right",
            i = "Bottom",
            o = "Left",
            s = (e < 3 ? [n, r, i, o] : [n + o, n + r, i + r, i + o]).map((function(n) {
                return e < 2 ? t + n : "border" + n + t
            }));
        Qn[e > 1 ? "border" + t : t] = function(t, e, n, r, i) {
            var o, a;
            if (arguments.length < 4) return o = s.map((function(e) {
                return Un(t, e, n)
            })), 5 === (a = o.join(" ")).split(o[0]).length ? o[0] : a;
            o = (r + "").split(" "), a = {}, s.forEach((function(t, e) {
                return a[t] = o[e] = o[e] || o[(e - 1) / 2 | 0]
            })), t.init(e, a, i)
        }
    }));
    var fr, pr, dr = {
        name: "css",
        register: Rn,
        targetTest: function(t) {
            return t.style && t.nodeType
        },
        init: function(t, e, n, r, i) {
            var o, s, a, u, l, h, c, f, p, d, g, D, m, _, y, x, w, C, F, E = this._props,
                b = t.style,
                M = n.vars.startAt;
            for (c in an || Rn(), e)
                if ("autoRound" !== c && (s = e[c], !tt[c] || !Oe(c, e, n, r, t, i)))
                    if (l = typeof s, h = Qn[c], "function" === l && (l = typeof(s = s.call(n, r, t, i))), "string" === l && ~s.indexOf("random(") && (s = Jt(s)), h) h(this, t, c, s, n) && (y = 1);
                    else if ("--" === c.substr(0, 2)) o = (getComputedStyle(t).getPropertyValue(c) + "").trim(), s += "", he.lastIndex = 0, he.test(o) || (f = Ht(o), p = Ht(s)), p ? f !== p && (o = jn(t, c, o, p) + p) : f && (s += f), this.add(b, "setProperty", o, s, r, i, 0, 0, c), E.push(c);
            else if ("undefined" !== l) {
                if (M && c in M ? (o = "function" == typeof M[c] ? M[c].call(n, r, t, i) : M[c], T(o) && ~o.indexOf("random(") && (o = Jt(o)), Ht(o + "") || (o += v.units[c] || Ht(Un(t, c)) || ""), "=" === (o + "").charAt(1) && (o = Un(t, c))) : o = Un(t, c), u = parseFloat(o), (d = "string" === l && "=" === s.charAt(1) ? +(s.charAt(0) + "1") : 0) && (s = s.substr(2)), a = parseFloat(s), c in vn && ("autoAlpha" === c && (1 === u && "hidden" === Un(t, "visibility") && a && (u = 0), Wn(this, b, "visibility", u ? "inherit" : "hidden", a ? "inherit" : "hidden", !a)), "scale" !== c && "transform" !== c && ~(c = vn[c]).indexOf(",") && (c = c.split(",")[0])), g = c in cn)
                    if (D || ((m = t._gsap).renderTransform && !e.parseTransform || rr(t, e.parseTransform), _ = !1 !== e.smoothOrigin && m.smooth, (D = this._pt = new $e(this._pt, b, Sn, 0, 1, m.renderTransform, m, 0, -1)).dep = 1), "scale" === c) this._pt = new $e(this._pt, m, "scaleY", m.scaleY, (d ? d * a : a - m.scaleY) || 0), E.push("scaleY", c), c += "X";
                    else {
                        if ("transformOrigin" === c) {
                            w = void 0, C = void 0, F = void 0, w = (x = s).split(" "), C = w[0], F = w[1] || "50%", "top" !== C && "bottom" !== C && "left" !== F && "right" !== F || (x = C, C = F, F = x), w[0] = Gn[C] || C, w[1] = Gn[F] || F, s = w.join(" "), m.svg ? nr(t, s, 0, _, 0, this) : ((p = parseFloat(s.split(" ")[2]) || 0) !== m.zOrigin && Wn(this, m, "zOrigin", m.zOrigin, p), Wn(this, b, c, ir(o), ir(s)));
                            continue
                        }
                        if ("svgOrigin" === c) {
                            nr(t, s, 1, _, 0, this);
                            continue
                        }
                        if (c in $n) {
                            lr(this, m, c, u, s, d);
                            continue
                        }
                        if ("smoothOrigin" === c) {
                            Wn(this, m, "smooth", m.smooth, s);
                            continue
                        }
                        if ("force3D" === c) {
                            m[c] = s;
                            continue
                        }
                        if ("transform" === c) {
                            cr(this, s, t);
                            continue
                        }
                    }
                else c in b || (c = Nn(c) || c);
                if (g || (a || 0 === a) && (u || 0 === u) && !mn.test(s) && c in b) a || (a = 0), (f = (o + "").substr((u + "").length)) !== (p = Ht(s) || (c in v.units ? v.units[c] : f)) && (u = jn(t, c, o, p)), this._pt = new $e(this._pt, g ? m : b, c, u, d ? d * a : a - u, g || "px" !== p && "zIndex" !== c || !1 === e.autoRound ? _n : wn), this._pt.u = p || 0, f !== p && "%" !== p && (this._pt.b = o, this._pt.r = xn);
                else if (c in b) qn.call(this, t, c, o, s);
                else {
                    if (!(c in t)) {
                        q(c, s);
                        continue
                    }
                    this.add(t, c, o || t[c], s, r, i)
                }
                E.push(c)
            }
            y && Ze(this)
        },
        get: Un,
        aliases: vn,
        getSetter: function(t, e, n) {
            var r = vn[e];
            return r && r.indexOf(",") < 0 && (e = r), e in cn && e !== On && (t._gsap.x || Un(t, "x")) ? n && ln === n ? "scale" === e ? Mn : Tn : (ln = n || {}) && ("scale" === e ? An : Pn) : t.style && !P(t.style[e]) ? En : ~e.indexOf("-") ? bn : We(t, e)
        },
        core: {
            _removeProperty: Hn,
            _getMatrix: er
        }
    };
    nn.utils.checkPrefix = Nn, pr = ut("x,y,z,scale,scaleX,scaleY,xPercent,yPercent," + (fr = "rotation,rotationX,rotationY,skewX,skewY") + ",transform,transformOrigin,svgOrigin,force3D,smoothOrigin,transformPerspective", (function(t) {
        cn[t] = 1
    })), ut(fr, (function(t) {
        v.units[t] = "deg", $n[t] = 1
    })), vn[pr[13]] = "x,y,z,scale,scaleX,scaleY,xPercent,yPercent," + fr, ut("0:translateX,1:translateY,2:translateZ,8:rotate,8:rotationZ,8:rotateZ,9:rotateX,10:rotateY", (function(t) {
        var e = t.split(":");
        vn[e[1]] = pr[e[0]]
    })), ut("x,y,z,top,right,bottom,left,width,height,fontSize,padding,margin,perspective", (function(t) {
        v.units[t] = "px"
    })), nn.registerPlugin(dr);
    var gr, Dr, mr, vr = nn.registerPlugin(dr) || nn,
        _r = vr.core.Tween,
        yr = function() {
            return gr || "undefined" != typeof window && (gr = window.gsap) && gr.registerPlugin && gr
        },
        xr = function(t) {
            gr = yr(), (mr = gr && gr.parseEase("_CE")) ? (Dr = 1, gr.parseEase("bounce").config = function(t) {
                return "object" == typeof t ? Cr("", t) : Cr("bounce(" + t + ")", {
                    strength: +t
                })
            }) : t && console.warn("Please gsap.registerPlugin(CustomEase, CustomBounce)")
        },
        wr = function(t) {
            var e, n = t.length,
                r = 1 / t[n - 2];
            for (e = 2; e < n; e += 2) t[e] = ~~(t[e] * r * 1e3) / 1e3;
            t[n - 2] = 1
        },
        Cr = function(t, e) {
            Dr || xr(1), e = e || {};
            var n, r, i, o, s, a, u, l = Math.min(.999, e.strength || .7),
                h = l,
                c = (e.squash || 0) / 100,
                f = c,
                p = 1 / .03,
                d = .2,
                g = 1,
                D = .1,
                m = [0, 0, .07, 0, .1, 1, .1, 1],
                v = [0, 0, 0, 0, .1, 0, .1, 0];
            for (s = 0; s < 200 && (a = D + (d *= h * ((h + 1) / 2)), o = 1 - (g *= l * l), r = (i = D + .49 * d) + .8 * (i - (n = D + g / p)), c && (D += c, n += c, i += c, r += c, a += c, u = c / f, v.push(D - c, 0, D - c, u, D - c / 2, u, D, u, D, 0, D, 0, D, -.6 * u, D + (a - D) / 6, 0, a, 0), m.push(D - c, 1, D, 1, D, 1), c *= l * l), m.push(D, 1, n, o, i, o, r, o, a, 1, a, 1), l *= .95, p = g / (a - r), D = a, !(o > .999)); s++);
            if (e.endAtStart && "false" !== e.endAtStart) {
                if (i = -.1, m.unshift(i, 1, i, 1, -.07, 0), f)
                    for (i -= c = 2.5 * f, m.unshift(i, 1, i, 1, i, 1), v.splice(0, 6), v.unshift(i, 0, i, 0, i, 1, i + c / 2, 1, i + c, 1, i + c, 0, i + c, 0, i + c, -.6, i + c + .033, 0), s = 0; s < v.length; s += 2) v[s] -= i;
                for (s = 0; s < m.length; s += 2) m[s] -= i, m[s + 1] = 1 - m[s + 1]
            }
            return c && (wr(v), v[2] = "C" + v[2], mr(e.squashID || t + "-squash", "M" + v.join(","))), wr(m), m[2] = "C" + m[2], mr(t, "M" + m.join(","))
        },
        Fr = function() {
            function t(t, e) {
                this.ease = Cr(t, e)
            }
            return t.create = function(t, e) {
                return Cr(t, e)
            }, t.register = function(t) {
                gr = t, xr()
            }, t
        }();
    /*!
     * CustomBounce 3.9.1
     * https://greensock.com
     *
     * @license Copyright 2008-2021, GreenSock. All rights reserved.
     * Subject to the terms at https://greensock.com/standard-license or for
     * Club GreenSock members, the agreement issued with that membership.
     * @author: Jack Doyle, jack@greensock.com
     */
    yr() && gr.registerPlugin(Fr), Fr.version = "3.9.1";
    /*!
     * paths 3.9.1
     * https://greensock.com
     *
     * Copyright 2008-2021, GreenSock. All rights reserved.
     * Subject to the terms at https://greensock.com/standard-license or for
     * Club GreenSock members, the agreement issued with that membership.
     * @author: Jack Doyle, jack@greensock.com
     */
    var Er = /[achlmqstvz]|(-?\d*\.?\d*(?:e[\-+]?\d+)?)[0-9]/gi,
        br = /(?:(-)?\d*\.?\d*(?:e[\-+]?\d+)?)[0-9]/gi,
        Tr = /[\+\-]?\d*\.?\d+e[\+\-]?\d+/gi,
        Mr = /(^[#\.][a-z]|[a-y][a-z])/i,
        Ar = Math.PI / 180,
        Pr = 180 / Math.PI,
        Sr = Math.sin,
        Or = Math.cos,
        kr = Math.abs,
        Br = Math.sqrt,
        Lr = Math.atan2,
        Nr = function(t) {
            return "string" == typeof t
        },
        Rr = function(t) {
            return "number" == typeof t
        },
        Xr = {},
        Yr = {},
        Ir = function(t) {
            return Math.round((t + 1e8) % 1 * 1e5) / 1e5 || (t < 0 ? 0 : 1)
        },
        zr = function(t) {
            return Math.round(1e5 * t) / 1e5 || 0
        },
        Hr = function(t) {
            return Math.round(1e10 * t) / 1e10 || 0
        },
        Wr = function(t, e, n, r) {
            var i = t[e],
                o = 1 === r ? 6 : ei(i, n, r);
            if (o && o + n + 2 < i.length) return t.splice(e, 0, i.slice(0, n + o + 2)), i.splice(0, n + o), 1
        },
        Vr = function(t, e, n) {
            var r = t.length,
                i = ~~(n * r);
            if (t[i] > e)
                for (; --i && t[i] > e;);
            else
                for (; t[++i] < e && i < r;);
            return i < r ? i : r - 1
        },
        jr = function(t, e) {
            return e.totalLength = t.totalLength, t.samples ? (e.samples = t.samples.slice(0), e.lookup = t.lookup.slice(0), e.minLength = t.minLength, e.resolution = t.resolution) : t.totalPoints && (e.totalPoints = t.totalPoints), e
        },
        Ur = function(t, e) {
            var n = t.length,
                r = t[n - 1] || [],
                i = r.length;
            n && e[0] === r[i - 2] && e[1] === r[i - 1] && (e = r.concat(e.slice(2)), n--), t[n] = e
        };

    function qr(t) {
        var e, n = (t = Nr(t) && Mr.test(t) && document.querySelector(t) || t).getAttribute ? t : 0;
        return n && (t = t.getAttribute("d")) ? (n._gsPath || (n._gsPath = {}), (e = n._gsPath[t]) && !e._dirty ? e : n._gsPath[t] = si(t)) : t ? Nr(t) ? si(t) : Rr(t[0]) ? [t] : t : console.warn("Expecting a <path> element or an SVG path data string")
    }

    function Gr(t) {
        var e, n = 0;
        for (t.reverse(); n < t.length; n += 2) e = t[n], t[n] = t[n + 1], t[n + 1] = e;
        t.reversed = !t.reversed
    }
    var Kr = {
        rect: "rx,ry,x,y,width,height",
        circle: "r,cx,cy",
        ellipse: "rx,ry,cx,cy",
        line: "x1,x2,y1,y2"
    };

    function Qr(t, e) {
        var n, r, i, o, s, a, u, l, h, c, f, p, d, g, D, m, v, _, y, x, w, C, F = t.tagName.toLowerCase(),
            E = .552284749831;
        return "path" !== F && t.getBBox ? (a = function(t, e) {
            var n, r = document.createElementNS("http://www.w3.org/2000/svg", "path"),
                i = [].slice.call(t.attributes),
                o = i.length;
            for (e = "," + e + ","; --o > -1;) n = i[o].nodeName.toLowerCase(), e.indexOf("," + n + ",") < 0 && r.setAttributeNS(null, n, i[o].nodeValue);
            return r
        }(t, "x,y,width,height,cx,cy,rx,ry,r,x1,x2,y1,y2,points"), C = function(t, e) {
            for (var n = e ? e.split(",") : [], r = {}, i = n.length; --i > -1;) r[n[i]] = +t.getAttribute(n[i]) || 0;
            return r
        }(t, Kr[F]), "rect" === F ? (o = C.rx, s = C.ry || o, r = C.x, i = C.y, c = C.width - 2 * o, f = C.height - 2 * s, n = o || s ? "M" + (m = (g = (d = r + o) + c) + o) + "," + (_ = i + s) + " V" + (y = _ + f) + " C" + [m, x = y + s * E, D = g + o * E, w = y + s, g, w, g - (g - d) / 3, w, d + (g - d) / 3, w, d, w, p = r + o * (1 - E), w, r, x, r, y, r, y - (y - _) / 3, r, _ + (y - _) / 3, r, _, r, v = i + s * (1 - E), p, i, d, i, d + (g - d) / 3, i, g - (g - d) / 3, i, g, i, D, i, m, v, m, _].join(",") + "z" : "M" + (r + c) + "," + i + " v" + f + " h" + -c + " v" + -f + " h" + c + "z") : "circle" === F || "ellipse" === F ? ("circle" === F ? l = (o = s = C.r) * E : (o = C.rx, l = (s = C.ry) * E), n = "M" + ((r = C.cx) + o) + "," + (i = C.cy) + " C" + [r + o, i + l, r + (u = o * E), i + s, r, i + s, r - u, i + s, r - o, i + l, r - o, i, r - o, i - l, r - u, i - s, r, i - s, r + u, i - s, r + o, i - l, r + o, i].join(",") + "z") : "line" === F ? n = "M" + C.x1 + "," + C.y1 + " L" + C.x2 + "," + C.y2 : "polyline" !== F && "polygon" !== F || (n = "M" + (r = (h = (t.getAttribute("points") + "").match(br) || []).shift()) + "," + (i = h.shift()) + " L" + h.join(","), "polygon" === F && (n += "," + r + "," + i + "z")), a.setAttribute("d", li(a._gsRawPath = si(n))), e && t.parentNode && (t.parentNode.insertBefore(a, t), t.parentNode.removeChild(t)), a) : t
    }

    function Zr(t, e, n) {
        var r, i = t[e],
            o = t[e + 2],
            s = t[e + 4];
        return i += (o - i) * n, i += ((o += (s - o) * n) - i) * n, r = o + (s + (t[e + 6] - s) * n - o) * n - i, i = t[e + 1], i += ((o = t[e + 3]) - i) * n, i += ((o += ((s = t[e + 5]) - o) * n) - i) * n, zr(Lr(o + (s + (t[e + 7] - s) * n - o) * n - i, r) * Pr)
    }

    function $r(t, e, n) {
        n = void 0 === n ? 1 : Hr(n) || 0, e = Hr(e) || 0;
        var r = Math.max(0, ~~(kr(n - e) - 1e-8)),
            i = function(t) {
                for (var e = [], n = 0; n < t.length; n++) e[n] = jr(t[n], t[n].slice(0));
                return jr(t, e)
            }(t);
        if (e > n && (e = 1 - e, n = 1 - n, function(t, e) {
                var n = t.length;
                for (e || t.reverse(); n--;) t[n].reversed || Gr(t[n])
            }(i), i.totalLength = 0), e < 0 || n < 0) {
            var o = Math.abs(~~Math.min(e, n)) + 1;
            e += o, n += o
        }
        i.totalLength || ti(i);
        var s, a, u, l, h, c, f, p, d = n > 1,
            g = ni(i, e, Xr, !0),
            D = ni(i, n, Yr),
            m = D.segment,
            v = g.segment,
            _ = D.segIndex,
            y = g.segIndex,
            x = D.i,
            w = g.i,
            C = y === _,
            F = x === w && C;
        if (d || r) {
            for (s = _ < y || C && x < w || F && D.t < g.t, Wr(i, y, w, g.t) && (y++, s || (_++, F ? (D.t = (D.t - g.t) / (1 - g.t), x = 0) : C && (x -= w))), Math.abs(1 - (n - e)) < 1e-5 ? _ = y - 1 : !D.t && _ ? _-- : Wr(i, _, x, D.t) && s && y++, 1 === g.t && (y = (y + 1) % i.length), h = [], f = 1 + (c = i.length) * r, p = y, f += (c - y + _) % c, l = 0; l < f; l++) Ur(h, i[p++ % c]);
            i = h
        } else if (u = 1 === D.t ? 6 : ei(m, x, D.t), e !== n)
            for (a = ei(v, w, F ? g.t / D.t : g.t), C && (u += a), m.splice(x + u + 2), (a || w) && v.splice(0, w + a), l = i.length; l--;)(l < y || l > _) && i.splice(l, 1);
        else m.angle = Zr(m, x + u, 0), g = m[x += u], D = m[x + 1], m.length = m.totalLength = 0, m.totalPoints = i.totalPoints = 8, m.push(g, D, g, D, g, D, g, D);
        return i.totalLength = 0, i
    }

    function Jr(t, e, n) {
        e = e || 0, t.samples || (t.samples = [], t.lookup = []);
        var r, i, o, s, a, u, l, h, c, f, p, d, g, D, m, v, _, y = ~~t.resolution || 12,
            x = 1 / y,
            w = n ? e + 6 * n + 1 : t.length,
            C = t[e],
            F = t[e + 1],
            E = e ? e / 6 * y : 0,
            b = t.samples,
            T = t.lookup,
            M = (e ? t.minLength : 1e8) || 1e8,
            A = b[E + n * y - 1],
            P = e ? b[E - 1] : 0;
        for (b.length = T.length = 0, i = e + 2; i < w; i += 6) {
            if (o = t[i + 4] - C, s = t[i + 2] - C, a = t[i] - C, h = t[i + 5] - F, c = t[i + 3] - F, f = t[i + 1] - F, u = l = p = d = 0, kr(o) < .01 && kr(h) < .01 && kr(a) + kr(f) < .01) t.length > 8 && (t.splice(i, 6), i -= 6, w -= 6);
            else
                for (r = 1; r <= y; r++) u = l - (l = ((D = x * r) * D * o + 3 * (g = 1 - D) * (D * s + g * a)) * D), p = d - (d = (D * D * h + 3 * g * (D * c + g * f)) * D), (v = Br(p * p + u * u)) < M && (M = v), P += v, b[E++] = P;
            C += o, F += h
        }
        if (A)
            for (A -= P; E < b.length; E++) b[E] += A;
        if (b.length && M) {
            if (t.totalLength = _ = b[b.length - 1] || 0, t.minLength = M, _ / M < 9999)
                for (v = m = 0, r = 0; r < _; r += M) T[v++] = b[m] < r ? ++m : m
        } else t.totalLength = b[0] = 0;
        return e ? P - b[e / 2 - 1] : P
    }

    function ti(t, e) {
        var n, r, i;
        for (i = n = r = 0; i < t.length; i++) t[i].resolution = ~~e || 12, r += t[i].length, n += Jr(t[i]);
        return t.totalPoints = r, t.totalLength = n, t
    }

    function ei(t, e, n) {
        if (n <= 0 || n >= 1) return 0;
        var r = t[e],
            i = t[e + 1],
            o = t[e + 2],
            s = t[e + 3],
            a = t[e + 4],
            u = t[e + 5],
            l = r + (o - r) * n,
            h = o + (a - o) * n,
            c = i + (s - i) * n,
            f = s + (u - s) * n,
            p = l + (h - l) * n,
            d = c + (f - c) * n,
            g = a + (t[e + 6] - a) * n,
            D = u + (t[e + 7] - u) * n;
        return h += (g - h) * n, f += (D - f) * n, t.splice(e + 2, 4, zr(l), zr(c), zr(p), zr(d), zr(p + (h - p) * n), zr(d + (f - d) * n), zr(h), zr(f), zr(g), zr(D)), t.samples && t.samples.splice(e / 6 * t.resolution | 0, 0, 0, 0, 0, 0, 0, 0), 6
    }

    function ni(t, e, n, r) {
        n = n || {}, t.totalLength || ti(t), (e < 0 || e > 1) && (e = Ir(e));
        var i, o, s, a, u, l, h, c = 0,
            f = t[0];
        if (e)
            if (1 === e) h = 1, l = (f = t[c = t.length - 1]).length - 8;
            else {
                if (t.length > 1) {
                    for (s = t.totalLength * e, u = l = 0;
                        (u += t[l++].totalLength) < s;) c = l;
                    e = (s - (a = u - (f = t[c]).totalLength)) / (u - a) || 0
                }
                i = f.samples, o = f.resolution, s = f.totalLength * e, a = (l = f.lookup.length ? f.lookup[~~(s / f.minLength)] || 0 : Vr(i, s, e)) ? i[l - 1] : 0, (u = i[l]) < s && (a = u, u = i[++l]), h = 1 / o * ((s - a) / (u - a) + l % o), l = 6 * ~~(l / o), r && 1 === h && (l + 6 < f.length ? (l += 6, h = 0) : c + 1 < t.length && (l = h = 0, f = t[++c]))
            }
        else h = l = c = 0, f = t[0];
        return n.t = h, n.i = l, n.path = t, n.segment = f, n.segIndex = c, n
    }

    function ri(t, e, n, r) {
        var i, o, s, a, u, l, h, c, f, p = t[0],
            d = r || {};
        if ((e < 0 || e > 1) && (e = Ir(e)), t.length > 1) {
            for (s = t.totalLength * e, u = l = 0;
                (u += t[l++].totalLength) < s;) p = t[l];
            e = (s - (a = u - p.totalLength)) / (u - a) || 0
        }
        return i = p.samples, o = p.resolution, s = p.totalLength * e, a = (l = p.lookup.length ? p.lookup[e < 1 ? ~~(s / p.minLength) : p.lookup.length - 1] || 0 : Vr(i, s, e)) ? i[l - 1] : 0, (u = i[l]) < s && (a = u, u = i[++l]), f = 1 - (h = 1 / o * ((s - a) / (u - a) + l % o) || 0), c = p[l = 6 * ~~(l / o)], d.x = zr((h * h * (p[l + 6] - c) + 3 * f * (h * (p[l + 4] - c) + f * (p[l + 2] - c))) * h + c), d.y = zr((h * h * (p[l + 7] - (c = p[l + 1])) + 3 * f * (h * (p[l + 5] - c) + f * (p[l + 3] - c))) * h + c), n && (d.angle = p.totalLength ? Zr(p, l, h >= 1 ? 1 - 1e-9 : h || 1e-9) : p.angle || 0), d
    }

    function ii(t, e, n, r, i, o, s) {
        for (var a, u, l, h, c, f = t.length; --f > -1;)
            for (u = (a = t[f]).length, l = 0; l < u; l += 2) h = a[l], c = a[l + 1], a[l] = h * e + c * r + o, a[l + 1] = h * n + c * i + s;
        return t._dirty = 1, t
    }

    function oi(t, e, n, r, i, o, s, a, u) {
        if (t !== a || e !== u) {
            n = kr(n), r = kr(r);
            var l = i % 360 * Ar,
                h = Or(l),
                c = Sr(l),
                f = Math.PI,
                p = 2 * f,
                d = (t - a) / 2,
                g = (e - u) / 2,
                D = h * d + c * g,
                m = -c * d + h * g,
                v = D * D,
                _ = m * m,
                y = v / (n * n) + _ / (r * r);
            y > 1 && (n = Br(y) * n, r = Br(y) * r);
            var x = n * n,
                w = r * r,
                C = (x * w - x * _ - w * v) / (x * _ + w * v);
            C < 0 && (C = 0);
            var F = (o === s ? -1 : 1) * Br(C),
                E = F * (n * m / r),
                b = F * (-r * D / n),
                T = (t + a) / 2 + (h * E - c * b),
                M = (e + u) / 2 + (c * E + h * b),
                A = (D - E) / n,
                P = (m - b) / r,
                S = (-D - E) / n,
                O = (-m - b) / r,
                k = A * A + P * P,
                B = (P < 0 ? -1 : 1) * Math.acos(A / Br(k)),
                L = (A * O - P * S < 0 ? -1 : 1) * Math.acos((A * S + P * O) / Br(k * (S * S + O * O)));
            isNaN(L) && (L = f), !s && L > 0 ? L -= p : s && L < 0 && (L += p), B %= p, L %= p;
            var N, R = Math.ceil(kr(L) / (p / 4)),
                X = [],
                Y = L / R,
                I = 4 / 3 * Sr(Y / 2) / (1 + Or(Y / 2)),
                z = h * n,
                H = c * n,
                W = c * -r,
                V = h * r;
            for (N = 0; N < R; N++) D = Or(i = B + N * Y), m = Sr(i), A = Or(i += Y), P = Sr(i), X.push(D - I * m, m + I * D, A + I * P, P - I * A, A, P);
            for (N = 0; N < X.length; N += 2) D = X[N], m = X[N + 1], X[N] = D * z + m * W + T, X[N + 1] = D * H + m * V + M;
            return X[N - 2] = a, X[N - 1] = u, X
        }
    }

    function si(t) {
        var e, n, r, i, o, s, a, u, l, h, c, f, p, d, g, D = (t + "").replace(Tr, (function(t) {
                var e = +t;
                return e < 1e-4 && e > -1e-4 ? 0 : e
            })).match(Er) || [],
            m = [],
            v = 0,
            _ = 0,
            y = D.length,
            x = 0,
            w = "ERROR: malformed path: " + t,
            C = function(t, e, n, r) {
                h = (n - t) / 3, c = (r - e) / 3, a.push(t + h, e + c, n - h, r - c, n, r)
            };
        if (!t || !isNaN(D[0]) || isNaN(D[1])) return console.log(w), m;
        for (e = 0; e < y; e++)
            if (p = o, isNaN(D[e]) ? s = (o = D[e].toUpperCase()) !== D[e] : e--, r = +D[e + 1], i = +D[e + 2], s && (r += v, i += _), e || (u = r, l = i), "M" === o) a && (a.length < 8 ? m.length -= 1 : x += a.length), v = u = r, _ = l = i, a = [r, i], m.push(a), e += 2, o = "L";
            else if ("C" === o) a || (a = [0, 0]), s || (v = _ = 0), a.push(r, i, v + 1 * D[e + 3], _ + 1 * D[e + 4], v += 1 * D[e + 5], _ += 1 * D[e + 6]), e += 6;
        else if ("S" === o) h = v, c = _, "C" !== p && "S" !== p || (h += v - a[a.length - 4], c += _ - a[a.length - 3]), s || (v = _ = 0), a.push(h, c, r, i, v += 1 * D[e + 3], _ += 1 * D[e + 4]), e += 4;
        else if ("Q" === o) h = v + 2 / 3 * (r - v), c = _ + 2 / 3 * (i - _), s || (v = _ = 0), v += 1 * D[e + 3], _ += 1 * D[e + 4], a.push(h, c, v + 2 / 3 * (r - v), _ + 2 / 3 * (i - _), v, _), e += 4;
        else if ("T" === o) h = v - a[a.length - 4], c = _ - a[a.length - 3], a.push(v + h, _ + c, r + 2 / 3 * (v + 1.5 * h - r), i + 2 / 3 * (_ + 1.5 * c - i), v = r, _ = i), e += 2;
        else if ("H" === o) C(v, _, v = r, _), e += 1;
        else if ("V" === o) C(v, _, v, _ = r + (s ? _ - v : 0)), e += 1;
        else if ("L" === o || "Z" === o) "Z" === o && (r = u, i = l, a.closed = !0), ("L" === o || kr(v - r) > .5 || kr(_ - i) > .5) && (C(v, _, r, i), "L" === o && (e += 2)), v = r, _ = i;
        else if ("A" === o) {
            if (d = D[e + 4], g = D[e + 5], h = D[e + 6], c = D[e + 7], n = 7, d.length > 1 && (d.length < 3 ? (c = h, h = g, n--) : (c = g, h = d.substr(2), n -= 2), g = d.charAt(1), d = d.charAt(0)), f = oi(v, _, +D[e + 1], +D[e + 2], +D[e + 3], +d, +g, (s ? v : 0) + 1 * h, (s ? _ : 0) + 1 * c), e += n, f)
                for (n = 0; n < f.length; n++) a.push(f[n]);
            v = a[a.length - 2], _ = a[a.length - 1]
        } else console.log(w);
        return (e = a.length) < 6 ? (m.pop(), e = 0) : a[0] === a[e - 2] && a[1] === a[e - 1] && (a.closed = !0), m.totalPoints = x + e, m
    }

    function ai(t, e) {
        void 0 === e && (e = 1);
        for (var n = t[0], r = 0, i = [n, r], o = 2; o < t.length; o += 2) i.push(n, r, t[o], r = (t[o] - n) * e / 2, n = t[o], -r);
        return i
    }

    function ui(t, e, n) {
        kr(t[0] - t[2]) < 1e-4 && kr(t[1] - t[3]) < 1e-4 && (t = t.slice(2));
        var r, i, o, s, a, u, l, h, c, f, p, d, g, D, m = t.length - 2,
            v = +t[0],
            _ = +t[1],
            y = +t[2],
            x = +t[3],
            w = [v, _, v, _],
            C = y - v,
            F = x - _,
            E = Math.abs(t[m] - v) < .001 && Math.abs(t[m + 1] - _) < .001;
        for (isNaN(n) && (n = Math.PI / 10), E && (t.push(y, x), y = v, x = _, v = t[m - 2], _ = t[m - 1], t.unshift(v, _), m += 4), e = e || 0 === e ? +e : 1, a = 2; a < m; a += 2) r = v, i = _, v = y, _ = x, y = +t[a + 2], x = +t[a + 3], v === y && _ === x || (d = (u = C) * u + (h = F) * h, g = (C = y - v) * C + (F = x - _) * F, D = (l = y - r) * l + (c = x - i) * c, p = (o = Math.acos((d + g - D) / Br(4 * d * g))) / Math.PI * e, f = Br(d) * p, p *= Br(g), v === r && _ === i || (o > n ? (s = Lr(c, l), w.push(zr(v - Or(s) * f), zr(_ - Sr(s) * f), zr(v), zr(_), zr(v + Or(s) * p), zr(_ + Sr(s) * p))) : (s = Lr(h, u), w.push(zr(v - Or(s) * f), zr(_ - Sr(s) * f)), s = Lr(F, C), w.push(zr(v), zr(_), zr(v + Or(s) * p), zr(_ + Sr(s) * p)))));
        return v !== y || _ !== x || w.length < 4 ? w.push(zr(y), zr(x), zr(y), zr(x)) : w.length -= 2, E && (w.splice(0, 6), w.length = w.length - 6), w
    }

    function li(t) {
        Rr(t[0]) && (t = [t]);
        var e, n, r, i, o = "",
            s = t.length;
        for (n = 0; n < s; n++) {
            for (i = t[n], o += "M" + zr(i[0]) + "," + zr(i[1]) + " C", e = i.length, r = 2; r < e; r++) o += zr(i[r++]) + "," + zr(i[r++]) + " " + zr(i[r++]) + "," + zr(i[r++]) + " " + zr(i[r++]) + "," + zr(i[r]) + " ";
            i.closed && (o += "z")
        }
        return o
    }
    /*!
     * CustomEase 3.9.1
     * https://greensock.com
     *
     * @license Copyright 2008-2021, GreenSock. All rights reserved.
     * Subject to the terms at https://greensock.com/standard-license or for
     * Club GreenSock members, the agreement issued with that membership.
     * @author: Jack Doyle, jack@greensock.com
     */
    var hi, ci, fi = function() {
            return hi || "undefined" != typeof window && (hi = window.gsap) && hi.registerPlugin && hi
        },
        pi = function() {
            (hi = fi()) ? (hi.registerEase("_CE", vi.create), ci = 1) : console.warn("Please gsap.registerPlugin(CustomEase)")
        },
        di = function(t) {
            return ~~(1e3 * t + (t < 0 ? -.5 : .5)) / 1e3
        },
        gi = /[-+=\.]*\d+[\.e\-\+]*\d*[e\-\+]*\d*/gi,
        Di = /[cLlsSaAhHvVtTqQ]/g,
        mi = function t(e, n, r, i, o, s, a, u, l, h, c) {
            var f, p = (e + r) / 2,
                d = (n + i) / 2,
                g = (r + o) / 2,
                D = (i + s) / 2,
                m = (o + a) / 2,
                v = (s + u) / 2,
                _ = (p + g) / 2,
                y = (d + D) / 2,
                x = (g + m) / 2,
                w = (D + v) / 2,
                C = (_ + x) / 2,
                F = (y + w) / 2,
                E = a - e,
                b = u - n,
                T = Math.abs((r - a) * b - (i - u) * E),
                M = Math.abs((o - a) * b - (s - u) * E);
            return h || (h = [{
                x: e,
                y: n
            }, {
                x: a,
                y: u
            }], c = 1), h.splice(c || h.length - 1, 0, {
                x: C,
                y: F
            }), (T + M) * (T + M) > l * (E * E + b * b) && (f = h.length, t(e, n, p, d, _, y, C, F, l, h, c), t(C, F, x, w, m, v, a, u, l, h, c + 1 + (h.length - f))), h
        },
        vi = function() {
            function t(t, e, n) {
                ci || pi(), this.id = t, this.setData(e, n)
            }
            var e = t.prototype;
            return e.setData = function(t, e) {
                e = e || {};
                var n, r, i, o, s, a, u, l, h, c = (t = t || "0,0,1,1").match(gi),
                    f = 1,
                    p = [],
                    d = [],
                    g = e.precision || 1,
                    D = g <= 1;
                if (this.data = t, (Di.test(t) || ~t.indexOf("M") && t.indexOf("C") < 0) && (c = si(t)[0]), 4 === (n = c.length)) c.unshift(0, 0), c.push(1, 1), n = 8;
                else if ((n - 2) % 6) throw "Invalid CustomEase";
                for (0 == +c[0] && 1 == +c[n - 2] || function(t, e, n) {
                        n || 0 === n || (n = Math.max(+t[t.length - 1], +t[1]));
                        var r, i = -1 * +t[0],
                            o = -n,
                            s = t.length,
                            a = 1 / (+t[s - 2] + i),
                            u = -e || (Math.abs(+t[s - 1] - +t[1]) < .01 * (+t[s - 2] - +t[0]) ? function(t) {
                                var e, n = t.length,
                                    r = 1e20;
                                for (e = 1; e < n; e += 6) + t[e] < r && (r = +t[e]);
                                return r
                            }(t) + o : +t[s - 1] + o);
                        for (u = u ? 1 / u : -a, r = 0; r < s; r += 2) t[r] = (+t[r] + i) * a, t[r + 1] = (+t[r + 1] + o) * u
                    }(c, e.height, e.originY), this.segment = c, o = 2; o < n; o += 6) r = {
                    x: +c[o - 2],
                    y: +c[o - 1]
                }, i = {
                    x: +c[o + 4],
                    y: +c[o + 5]
                }, p.push(r, i), mi(r.x, r.y, +c[o], +c[o + 1], +c[o + 2], +c[o + 3], i.x, i.y, 1 / (2e5 * g), p, p.length - 1);
                for (n = p.length, o = 0; o < n; o++) u = p[o], l = p[o - 1] || u, (u.x > l.x || l.y !== u.y && l.x === u.x || u === l) && u.x <= 1 ? (l.cx = u.x - l.x, l.cy = u.y - l.y, l.n = u, l.nx = u.x, D && o > 1 && Math.abs(l.cy / l.cx - p[o - 2].cy / p[o - 2].cx) > 2 && (D = 0), l.cx < f && (l.cx ? f = l.cx : (l.cx = .001, o === n - 1 && (l.x -= .001, f = Math.min(f, .001), D = 0)))) : (p.splice(o--, 1), n--);
                if (s = 1 / (n = 1 / f + 1 | 0), a = 0, u = p[0], D) {
                    for (o = 0; o < n; o++) h = o * s, u.nx < h && (u = p[++a]), r = u.y + (h - u.x) / u.cx * u.cy, d[o] = {
                        x: h,
                        cx: s,
                        y: r,
                        cy: 0,
                        nx: 9
                    }, o && (d[o - 1].cy = r - d[o - 1].y);
                    d[n - 1].cy = p[p.length - 1].y - r
                } else {
                    for (o = 0; o < n; o++) u.nx < o * s && (u = p[++a]), d[o] = u;
                    a < p.length - 1 && (d[o - 1] = p[p.length - 2])
                }
                return this.ease = function(t) {
                    var e = d[t * n | 0] || d[n - 1];
                    return e.nx < t && (e = e.n), e.y + (t - e.x) / e.cx * e.cy
                }, this.ease.custom = this, this.id && hi && hi.registerEase(this.id, this.ease), this
            }, e.getSVGData = function(e) {
                return t.getSVGData(this, e)
            }, t.create = function(e, n, r) {
                return new t(e, n, r).ease
            }, t.register = function(t) {
                hi = t, pi()
            }, t.get = function(t) {
                return hi.parseEase(t)
            }, t.getSVGData = function(e, n) {
                var r, i, o, s, a, u, l, h, c, f, p = (n = n || {}).width || 100,
                    d = n.height || 100,
                    g = n.x || 0,
                    D = (n.y || 0) + d,
                    m = hi.utils.toArray(n.path)[0];
                if (n.invert && (d = -d, D = 0), "string" == typeof e && (e = hi.parseEase(e)), e.custom && (e = e.custom), e instanceof t) r = li(ii([e.segment], p, 0, 0, -d, g, D));
                else {
                    for (r = [g, D], s = 1 / (l = Math.max(5, 200 * (n.precision || 1))), h = 5 / (l += 2), c = di(g + s * p), i = ((f = di(D + e(s) * -d)) - D) / (c - g), o = 2; o < l; o++) a = di(g + o * s * p), u = di(D + e(o * s) * -d), (Math.abs((u - f) / (a - c) - i) > h || o === l - 1) && (r.push(c, f), i = (u - f) / (a - c)), c = a, f = u;
                    r = "M" + r.join(",")
                }
                return m && m.setAttribute("d", r), r
            }, t
        }();
    fi() && hi.registerPlugin(vi), vi.version = "3.9.1";
    /*!
     * CustomWiggle 3.9.1
     * https://greensock.com
     *
     * @license Copyright 2008-2021, GreenSock. All rights reserved.
     * Subject to the terms at https://greensock.com/standard-license or for
     * Club GreenSock members, the agreement issued with that membership.
     * @author: Jack Doyle, jack@greensock.com
     */
    var _i, yi, xi, wi = function() {
            return _i || "undefined" != typeof window && (_i = window.gsap) && _i.registerPlugin && _i
        },
        Ci = {
            easeOut: "M0,1,C0.7,1,0.6,0,1,0",
            easeInOut: "M0,0,C0.1,0,0.24,1,0.444,1,0.644,1,0.6,0,1,0",
            anticipate: "M0,0,C0,0.222,0.024,0.386,0,0.4,0.18,0.455,0.65,0.646,0.7,0.67,0.9,0.76,1,0.846,1,1",
            uniform: "M0,0,C0,0.95,0,1,0,1,0,1,1,1,1,1,1,1,1,0,1,0"
        },
        Fi = function(t) {
            return t
        },
        Ei = function(t) {
            if (!yi)
                if (_i = wi(), xi = _i && _i.parseEase("_CE")) {
                    for (var e in Ci) Ci[e] = xi("", Ci[e]);
                    yi = 1, Ti("wiggle").config = function(t) {
                        return "object" == typeof t ? Ti("", t) : Ti("wiggle(" + t + ")", {
                            wiggles: +t
                        })
                    }
                } else t && console.warn("Please gsap.registerPlugin(CustomEase, CustomWiggle)")
        },
        bi = function(t, e) {
            return "function" != typeof t && (t = _i.parseEase(t) || xi("", t)), t.custom || !e ? t : function(e) {
                return 1 - t(e)
            }
        },
        Ti = function(t, e) {
            yi || Ei(1);
            var n, r, i, o, s, a, u, l, h, c = 0 | ((e = e || {}).wiggles || 10),
                f = 1 / c,
                p = f / 2,
                d = "anticipate" === e.type,
                g = Ci[e.type] || Ci.easeOut,
                D = Fi;
            if (d && (D = g, g = Ci.easeOut), e.timingEase && (D = bi(e.timingEase)), e.amplitudeEase && (g = bi(e.amplitudeEase, !0)), l = [0, 0, (a = D(p)) / 4, 0, a / 2, u = d ? -g(p) : g(p), a, u], "random" === e.type) {
                for (l.length = 4, n = D(f), r = 2 * Math.random() - 1, h = 2; h < c; h++) p = n, u = r, n = D(f * h), r = 2 * Math.random() - 1, i = Math.atan2(r - l[l.length - 3], n - l[l.length - 4]), o = Math.cos(i) * f, s = Math.sin(i) * f, l.push(p - o, u - s, p, u, p + o, u + s);
                l.push(n, 0, 1, 0)
            } else {
                for (h = 1; h < c; h++) l.push(D(p + f / 2), u), p += f, u = (u > 0 ? -1 : 1) * g(h * f), a = D(p), l.push(D(p - f / 2), u, a, u);
                l.push(D(p + f / 4), u, D(p + f / 4), 0, 1, 0)
            }
            for (h = l.length; --h > -1;) l[h] = ~~(1e3 * l[h]) / 1e3;
            return l[2] = "C" + l[2], xi(t, "M" + l.join(","))
        },
        Mi = function() {
            function t(t, e) {
                this.ease = Ti(t, e)
            }
            return t.create = function(t, e) {
                return Ti(t, e)
            }, t.register = function(t) {
                _i = t, Ei()
            }, t
        }();
    wi() && _i.registerPlugin(Mi), Mi.version = "3.9.1";
    /*!
     * DrawSVGPlugin 3.9.1
     * https://greensock.com
     *
     * @license Copyright 2008-2021, GreenSock. All rights reserved.
     * Subject to the terms at https://greensock.com/standard-license or for
     * Club GreenSock members, the agreement issued with that membership.
     * @author: Jack Doyle, jack@greensock.com
     */
    var Ai, Pi, Si, Oi, ki, Bi = function() {
            return "undefined" != typeof window
        },
        Li = function() {
            return Ai || Bi() && (Ai = window.gsap) && Ai.registerPlugin && Ai
        },
        Ni = /[-+=\.]*\d+[\.e\-\+]*\d*[e\-\+]*\d*/gi,
        Ri = {
            rect: ["width", "height"],
            circle: ["r", "r"],
            ellipse: ["rx", "ry"],
            line: ["x2", "y2"]
        },
        Xi = function(t) {
            return Math.round(1e4 * t) / 1e4
        },
        Yi = function(t) {
            return parseFloat(t) || 0
        },
        Ii = function(t, e) {
            var n = Yi(t);
            return ~t.indexOf("%") ? n / 100 * e : n
        },
        zi = function(t, e) {
            return Yi(t.getAttribute(e))
        },
        Hi = Math.sqrt,
        Wi = function(t, e, n, r, i, o) {
            return Hi(Math.pow((Yi(n) - Yi(t)) * i, 2) + Math.pow((Yi(r) - Yi(e)) * o, 2))
        },
        Vi = function(t) {
            return console.warn(t)
        },
        ji = function(t) {
            return "non-scaling-stroke" === t.getAttribute("vector-effect")
        },
        Ui = function(t) {
            if (!(t = Pi(t)[0])) return 0;
            var e, n, r, i, o, s, a, u = t.tagName.toLowerCase(),
                l = t.style,
                h = 1,
                c = 1;
            ji(t) && (c = t.getScreenCTM(), h = Hi(c.a * c.a + c.b * c.b), c = Hi(c.d * c.d + c.c * c.c));
            try {
                n = t.getBBox()
            } catch (t) {
                Vi("Some browsers won't measure invisible elements (like display:none or masks inside defs).")
            }
            var f = n || {
                    x: 0,
                    y: 0,
                    width: 0,
                    height: 0
                },
                p = f.x,
                d = f.y,
                g = f.width,
                D = f.height;
            if (n && (g || D) || !Ri[u] || (g = zi(t, Ri[u][0]), D = zi(t, Ri[u][1]), "rect" !== u && "line" !== u && (g *= 2, D *= 2), "line" === u && (p = zi(t, "x1"), d = zi(t, "y1"), g = Math.abs(g - p), D = Math.abs(D - d))), "path" === u) i = l.strokeDasharray, l.strokeDasharray = "none", e = t.getTotalLength() || 0, h !== c && Vi("Warning: <path> length cannot be measured when vector-effect is non-scaling-stroke and the element isn't proportionally scaled."), e *= (h + c) / 2, l.strokeDasharray = i;
            else if ("rect" === u) e = 2 * g * h + 2 * D * c;
            else if ("line" === u) e = Wi(p, d, p + g, d + D, h, c);
            else if ("polyline" === u || "polygon" === u)
                for (r = t.getAttribute("points").match(Ni) || [], "polygon" === u && r.push(r[0], r[1]), e = 0, o = 2; o < r.length; o += 2) e += Wi(r[o - 2], r[o - 1], r[o], r[o + 1], h, c) || 0;
            else "circle" !== u && "ellipse" !== u || (s = g / 2 * h, a = D / 2 * c, e = Math.PI * (3 * (s + a) - Hi((3 * s + a) * (s + 3 * a))));
            return e || 0
        },
        qi = function(t, e) {
            if (!(t = Pi(t)[0])) return [0, 0];
            e || (e = Ui(t) + 1);
            var n = Si.getComputedStyle(t),
                r = n.strokeDasharray || "",
                i = Yi(n.strokeDashoffset),
                o = r.indexOf(",");
            return o < 0 && (o = r.indexOf(" ")), (r = o < 0 ? e : Yi(r.substr(0, o))) > e && (r = e), [-i || 0, r - i || 0]
        },
        Gi = function() {
            Bi() && (document, Si = window, ki = Ai = Li(), Pi = Ai.utils.toArray, Oi = -1 !== ((Si.navigator || {}).userAgent || "").indexOf("Edge"))
        },
        Ki = {
            version: "3.9.1",
            name: "drawSVG",
            register: function(t) {
                Ai = t, Gi()
            },
            init: function(t, e, n, r, i) {
                if (!t.getBBox) return !1;
                ki || Gi();
                var o, s, a, u = Ui(t);
                return this._style = t.style, this._target = t, e + "" == "true" ? e = "0 100%" : e ? -1 === (e + "").indexOf(" ") && (e = "0 " + e) : e = "0 0", s = function(t, e, n) {
                    var r, i, o = t.indexOf(" ");
                    return o < 0 ? (r = void 0 !== n ? n + "" : t, i = t) : (r = t.substr(0, o), i = t.substr(o + 1)), (r = Ii(r, e)) > (i = Ii(i, e)) ? [i, r] : [r, i]
                }(e, u, (o = qi(t, u))[0]), this._length = Xi(u), this._dash = Xi(o[1] - o[0]), this._offset = Xi(-o[0]), this._dashPT = this.add(this, "_dash", this._dash, Xi(s[1] - s[0])), this._offsetPT = this.add(this, "_offset", this._offset, Xi(-s[0])), Oi && (a = Si.getComputedStyle(t)).strokeLinecap !== a.strokeLinejoin && (s = Yi(a.strokeMiterlimit), this.add(t.style, "strokeMiterlimit", s, s + .01)), this._live = ji(t) || ~(e + "").indexOf("live"), this._nowrap = ~(e + "").indexOf("nowrap"), this._props.push("drawSVG"), 1
            },
            render: function(t, e) {
                var n, r, i, o, s = e._pt,
                    a = e._style;
                if (s) {
                    for (e._live && (n = Ui(e._target)) !== e._length && (r = n / e._length, e._length = n, e._offsetPT && (e._offsetPT.s *= r, e._offsetPT.c *= r), e._dashPT ? (e._dashPT.s *= r, e._dashPT.c *= r) : e._dash *= r); s;) s.r(t, s.d), s = s._next;
                    i = e._dash || t && 1 !== t && 1e-4 || 0, n = e._length - i + .1, o = e._offset, i && o && i + Math.abs(o % e._length) > e._length - .2 && (o += o < 0 ? .1 : -.1) && (n += .1), a.strokeDashoffset = i ? o : o + .001, a.strokeDasharray = n < .2 ? "none" : i ? i + "px," + (e._nowrap ? 999999 : n) + "px" : "0px, 999999px"
                }
            },
            getLength: Ui,
            getPosition: qi
        };
    Li() && Ai.registerPlugin(Ki);
    /*!
     * matrix 3.9.1
     * https://greensock.com
     *
     * Copyright 2008-2021, GreenSock. All rights reserved.
     * Subject to the terms at https://greensock.com/standard-license or for
     * Club GreenSock members, the agreement issued with that membership.
     * @author: Jack Doyle, jack@greensock.com
     */
    var Qi, Zi, $i, Ji, to, eo, no, ro, io, oo = "transform",
        so = oo + "Origin",
        ao = function(t) {
            var e = t.ownerDocument || t;
            !(oo in t.style) && "msTransform" in t.style && (so = (oo = "msTransform") + "Origin");
            for (; e.parentNode && (e = e.parentNode););
            if (Zi = window, no = new go, e) {
                Qi = e, $i = e.documentElement, Ji = e.body, (ro = Qi.createElementNS("http://www.w3.org/2000/svg", "g")).style.transform = "none";
                var n = e.createElement("div"),
                    r = e.createElement("div");
                Ji.appendChild(n), n.appendChild(r), n.style.position = "static", n.style[oo] = "translate3d(0,0,1px)", io = r.offsetParent !== n, Ji.removeChild(n)
            }
            return e
        },
        uo = [],
        lo = [],
        ho = function(t) {
            return t.ownerSVGElement || ("svg" === (t.tagName + "").toLowerCase() ? t : null)
        },
        co = function t(e, n) {
            if (e.parentNode && (Qi || ao(e))) {
                var r = ho(e),
                    i = r ? r.getAttribute("xmlns") || "http://www.w3.org/2000/svg" : "http://www.w3.org/1999/xhtml",
                    o = r ? n ? "rect" : "g" : "div",
                    s = 2 !== n ? 0 : 100,
                    a = 3 === n ? 100 : 0,
                    u = "position:absolute;display:block;pointer-events:none;margin:0;padding:0;",
                    l = Qi.createElementNS ? Qi.createElementNS(i.replace(/^https/, "http"), o) : Qi.createElement(o);
                return n && (r ? (eo || (eo = t(e)), l.setAttribute("width", .01), l.setAttribute("height", .01), l.setAttribute("transform", "translate(" + s + "," + a + ")"), eo.appendChild(l)) : (to || ((to = t(e)).style.cssText = u), l.style.cssText = u + "width:0.1px;height:0.1px;top:" + a + "px;left:" + s + "px", to.appendChild(l))), l
            }
            throw "Need document and parent."
        },
        fo = function(t, e) {
            var n, r, i, o, s, a, u = ho(t),
                l = t === u,
                h = u ? uo : lo,
                c = t.parentNode;
            if (t === Zi) return t;
            if (h.length || h.push(co(t, 1), co(t, 2), co(t, 3)), n = u ? eo : to, u) l ? (o = -(i = function(t) {
                var e, n = t.getCTM();
                return n || (e = t.style[oo], t.style[oo] = "none", t.appendChild(ro), n = ro.getCTM(), t.removeChild(ro), e ? t.style[oo] = e : t.style.removeProperty(oo.replace(/([A-Z])/g, "-$1").toLowerCase())), n || no.clone()
            }(t)).e / i.a, s = -i.f / i.d, r = no) : (i = t.getBBox(), o = (r = (r = t.transform ? t.transform.baseVal : {}).numberOfItems ? r.numberOfItems > 1 ? function(t) {
                for (var e = new go, n = 0; n < t.numberOfItems; n++) e.multiply(t.getItem(n).matrix);
                return e
            }(r) : r.getItem(0).matrix : no).a * i.x + r.c * i.y, s = r.b * i.x + r.d * i.y), e && "g" === t.tagName.toLowerCase() && (o = s = 0), (l ? u : c).appendChild(n), n.setAttribute("transform", "matrix(" + r.a + "," + r.b + "," + r.c + "," + r.d + "," + (r.e + o) + "," + (r.f + s) + ")");
            else {
                if (o = s = 0, io)
                    for (r = t.offsetParent, i = t; i && (i = i.parentNode) && i !== r && i.parentNode;)(Zi.getComputedStyle(i)[oo] + "").length > 4 && (o = i.offsetLeft, s = i.offsetTop, i = 0);
                if ("absolute" !== (a = Zi.getComputedStyle(t)).position && "fixed" !== a.position)
                    for (r = t.offsetParent; c && c !== r;) o += c.scrollLeft || 0, s += c.scrollTop || 0, c = c.parentNode;
                (i = n.style).top = t.offsetTop - s + "px", i.left = t.offsetLeft - o + "px", i[oo] = a[oo], i[so] = a[so], i.position = "fixed" === a.position ? "fixed" : "absolute", t.parentNode.appendChild(n)
            }
            return n
        },
        po = function(t, e, n, r, i, o, s) {
            return t.a = e, t.b = n, t.c = r, t.d = i, t.e = o, t.f = s, t
        },
        go = function() {
            function t(t, e, n, r, i, o) {
                void 0 === t && (t = 1), void 0 === e && (e = 0), void 0 === n && (n = 0), void 0 === r && (r = 1), void 0 === i && (i = 0), void 0 === o && (o = 0), po(this, t, e, n, r, i, o)
            }
            var e = t.prototype;
            return e.inverse = function() {
                var t = this.a,
                    e = this.b,
                    n = this.c,
                    r = this.d,
                    i = this.e,
                    o = this.f,
                    s = t * r - e * n || 1e-10;
                return po(this, r / s, -e / s, -n / s, t / s, (n * o - r * i) / s, -(t * o - e * i) / s)
            }, e.multiply = function(t) {
                var e = this.a,
                    n = this.b,
                    r = this.c,
                    i = this.d,
                    o = this.e,
                    s = this.f,
                    a = t.a,
                    u = t.c,
                    l = t.b,
                    h = t.d,
                    c = t.e,
                    f = t.f;
                return po(this, a * e + l * r, a * n + l * i, u * e + h * r, u * n + h * i, o + c * e + f * r, s + c * n + f * i)
            }, e.clone = function() {
                return new t(this.a, this.b, this.c, this.d, this.e, this.f)
            }, e.equals = function(t) {
                var e = this.a,
                    n = this.b,
                    r = this.c,
                    i = this.d,
                    o = this.e,
                    s = this.f;
                return e === t.a && n === t.b && r === t.c && i === t.d && o === t.e && s === t.f
            }, e.apply = function(t, e) {
                void 0 === e && (e = {});
                var n = t.x,
                    r = t.y,
                    i = this.a,
                    o = this.b,
                    s = this.c,
                    a = this.d,
                    u = this.e,
                    l = this.f;
                return e.x = n * i + r * s + u || 0, e.y = n * o + r * a + l || 0, e
            }, t
        }();

    function Do(t, e, n, r) {
        if (!t || !t.parentNode || (Qi || ao(t)).documentElement === t) return new go;
        var i = function(t) {
                for (var e, n; t && t !== Ji;)(n = t._gsap) && n.uncache && n.get(t, "x"), n && !n.scaleX && !n.scaleY && n.renderTransform && (n.scaleX = n.scaleY = 1e-4, n.renderTransform(1, n), e ? e.push(n) : e = [n]), t = t.parentNode;
                return e
            }(t),
            o = ho(t) ? uo : lo,
            s = fo(t, n),
            a = o[0].getBoundingClientRect(),
            u = o[1].getBoundingClientRect(),
            l = o[2].getBoundingClientRect(),
            h = s.parentNode,
            c = !r && function t(e) {
                return "fixed" === Zi.getComputedStyle(e).position || ((e = e.parentNode) && 1 === e.nodeType ? t(e) : void 0)
            }(t),
            f = new go((u.left - a.left) / 100, (u.top - a.top) / 100, (l.left - a.left) / 100, (l.top - a.top) / 100, a.left + (c ? 0 : Zi.pageXOffset || Qi.scrollLeft || $i.scrollLeft || Ji.scrollLeft || 0), a.top + (c ? 0 : Zi.pageYOffset || Qi.scrollTop || $i.scrollTop || Ji.scrollTop || 0));
        if (h.removeChild(s), i)
            for (a = i.length; a--;)(u = i[a]).scaleX = u.scaleY = 0, u.renderTransform(1, u);
        return e ? f.inverse() : f
    }
    /*!
     * MotionPathPlugin 3.9.1
     * https://greensock.com
     *
     * @license Copyright 2008-2021, GreenSock. All rights reserved.
     * Subject to the terms at https://greensock.com/standard-license or for
     * Club GreenSock members, the agreement issued with that membership.
     * @author: Jack Doyle, jack@greensock.com
     */
    var mo, vo, _o, yo, xo = "x,translateX,left,marginLeft,xPercent".split(","),
        wo = "y,translateY,top,marginTop,yPercent".split(","),
        Co = Math.PI / 180,
        Fo = function(t, e, n, r) {
            for (var i = e.length, o = 2 === r ? 0 : r, s = 0; s < i; s++) t[o] = parseFloat(e[s][n]), 2 === r && (t[o + 1] = 0), o += 2;
            return t
        },
        Eo = function(t, e, n) {
            return parseFloat(t._gsap.get(t, e, n || "px")) || 0
        },
        bo = function(t) {
            var e, n = t[0],
                r = t[1];
            for (e = 2; e < t.length; e += 2) n = t[e] += n, r = t[e + 1] += r
        },
        To = function(t, e, n, r, i, o, s, a, u) {
            "cubic" === s.type ? e = [e] : (!1 !== s.fromCurrent && e.unshift(Eo(n, r, a), i ? Eo(n, i, u) : 0), s.relative && bo(e), e = [(i ? ui : ai)(e, s.curviness)]);
            return e = o(Oo(e, n, s)), ko(t, n, r, e, "x", a), i && ko(t, n, i, e, "y", u), ti(e, s.resolution || (0 === s.curviness ? 20 : 12))
        },
        Mo = function(t) {
            return t
        },
        Ao = /[-+\.]*\d+\.?(?:e-|e\+)?\d*/g,
        Po = function(t, e, n) {
            var r, i = Do(t),
                o = 0,
                s = 0;
            return "svg" === (t.tagName + "").toLowerCase() ? (r = t.viewBox.baseVal).width || (r = {
                width: +t.getAttribute("width"),
                height: +t.getAttribute("height")
            }) : r = e && t.getBBox && t.getBBox(), e && "auto" !== e && (o = e.push ? e[0] * (r ? r.width : t.offsetWidth || 0) : e.x, s = e.push ? e[1] * (r ? r.height : t.offsetHeight || 0) : e.y), n.apply(o || s ? i.apply({
                x: o,
                y: s
            }) : {
                x: i.e,
                y: i.f
            })
        },
        So = function(t, e, n, r) {
            var i, o = Do(t.parentNode, !0, !0),
                s = o.clone().multiply(Do(e)),
                a = Po(t, n, o),
                u = Po(e, r, o),
                l = u.x,
                h = u.y;
            return s.e = s.f = 0, "auto" === r && e.getTotalLength && "path" === e.tagName.toLowerCase() && (i = e.getAttribute("d").match(Ao) || [], l += (i = s.apply({
                x: +i[0],
                y: +i[1]
            })).x, h += i.y), (i || e.getBBox && t.getBBox && e.ownerSVGElement === t.ownerSVGElement) && (l -= (i = s.apply(e.getBBox())).x, h -= i.y), s.e = l - a.x, s.f = h - a.y, s
        },
        Oo = function(t, e, n) {
            var r, i, o, s = n.align,
                a = n.matrix,
                u = n.offsetX,
                l = n.offsetY,
                h = n.alignOrigin,
                c = t[0][0],
                f = t[0][1],
                p = Eo(e, "x"),
                d = Eo(e, "y");
            return t && t.length ? (s && ("self" === s || (r = yo(s)[0] || e) === e ? ii(t, 1, 0, 0, 1, p - c, d - f) : (h && !1 !== h[2] ? mo.set(e, {
                transformOrigin: 100 * h[0] + "% " + 100 * h[1] + "%"
            }) : h = [Eo(e, "xPercent") / -100, Eo(e, "yPercent") / -100], o = (i = So(e, r, h, "auto")).apply({
                x: c,
                y: f
            }), ii(t, i.a, i.b, i.c, i.d, p + i.e - (o.x - i.e), d + i.f - (o.y - i.f)))), a ? ii(t, a.a, a.b, a.c, a.d, a.e, a.f) : (u || l) && ii(t, 1, 0, 0, 1, u || 0, l || 0), t) : qr("M0,0L0,0")
        },
        ko = function(t, e, n, r, i, o) {
            var s = e._gsap,
                a = s.harness,
                u = a && a.aliases && a.aliases[n],
                l = u && u.indexOf(",") < 0 ? u : n,
                h = t._pt = new vo(t._pt, e, l, 0, 0, Mo, 0, s.set(e, l, t));
            h.u = _o(s.get(e, l, o)) || 0, h.path = r, h.pp = i, t._props.push(l)
        },
        Bo = {
            version: "3.9.1",
            name: "motionPath",
            register: function(t, e, n) {
                _o = (mo = t).utils.getUnit, yo = mo.utils.toArray, vo = n
            },
            init: function(t, e) {
                if (!mo) return console.warn("Please gsap.registerPlugin(MotionPathPlugin)"), !1;
                "object" == typeof e && !e.style && e.path || (e = {
                    path: e
                });
                var n, r, i, o, s = [],
                    a = e,
                    u = a.path,
                    l = a.autoRotate,
                    h = a.unitX,
                    c = a.unitY,
                    f = a.x,
                    p = a.y,
                    d = u[0],
                    g = (i = e.start, o = "end" in e ? e.end : 1, function(t) {
                        return i || 1 !== o ? $r(t, i, o) : t
                    });
                if (this.rawPaths = s, this.target = t, (this.rotate = l || 0 === l) && (this.rOffset = parseFloat(l) || 0, this.radians = !!e.useRadians, this.rProp = e.rotation || "rotation", this.rSet = t._gsap.set(t, this.rProp, this), this.ru = _o(t._gsap.get(t, this.rProp)) || 0), Array.isArray(u) && !("closed" in u) && "number" != typeof d) {
                    for (r in d) !f && ~xo.indexOf(r) ? f = r : !p && ~wo.indexOf(r) && (p = r);
                    for (r in f && p ? s.push(To(this, Fo(Fo([], u, f, 0), u, p, 1), t, f, p, g, e, h || _o(u[0][f]), c || _o(u[0][p]))) : f = p = 0, d) r !== f && r !== p && s.push(To(this, Fo([], u, r, 2), t, r, 0, g, e, _o(u[0][r])))
                } else ti(n = g(Oo(qr(e.path), t, e)), e.resolution), s.push(n), ko(this, t, e.x || "x", n, "x", e.unitX || "px"), ko(this, t, e.y || "y", n, "y", e.unitY || "px")
            },
            render: function(t, e) {
                var n = e.rawPaths,
                    r = n.length,
                    i = e._pt;
                for (t > 1 ? t = 1 : t < 0 && (t = 0); r--;) ri(n[r], t, !r && e.rotate, n[r]);
                for (; i;) i.set(i.t, i.p, i.path[i.pp] + i.u, i.d, t), i = i._next;
                e.rotate && e.rSet(e.target, e.rProp, n[0].angle * (e.radians ? Co : 1) + e.rOffset + e.ru, e, t)
            },
            getLength: function(t) {
                return ti(qr(t)).totalLength
            },
            sliceRawPath: $r,
            getRawPath: qr,
            pointsToSegment: ui,
            stringToRawPath: si,
            rawPathToString: li,
            transformRawPath: ii,
            getGlobalMatrix: Do,
            getPositionOnPath: ri,
            cacheRawPathMeasurements: ti,
            convertToPath: function(t, e) {
                return yo(t).map((function(t) {
                    return Qr(t, !1 !== e)
                }))
            },
            convertCoordinates: function(t, e, n) {
                var r = Do(e, !0, !0).multiply(Do(t));
                return n ? r.apply(n) : r
            },
            getAlignMatrix: So,
            getRelativePosition: function(t, e, n, r) {
                var i = So(t, e, n, r);
                return {
                    x: i.e,
                    y: i.f
                }
            },
            arrayToRawPath: function(t, e) {
                var n = Fo(Fo([], t, (e = e || {}).x || "x", 0), t, e.y || "y", 1);
                return e.relative && bo(n), ["cubic" === e.type ? n : ui(n, e.curviness)]
            }
        };
    (mo || "undefined" != typeof window && (mo = window.gsap) && mo.registerPlugin && mo) && mo.registerPlugin(Bo);
    /*!
     * ScrollToPlugin 3.9.1
     * https://greensock.com
     *
     * @license Copyright 2008-2021, GreenSock. All rights reserved.
     * Subject to the terms at https://greensock.com/standard-license or for
     * Club GreenSock members, the agreement issued with that membership.
     * @author: Jack Doyle, jack@greensock.com
     */
    var Lo, No, Ro, Xo, Yo, Io, zo, Ho = function() {
            return "undefined" != typeof window
        },
        Wo = function() {
            return Lo || Ho() && (Lo = window.gsap) && Lo.registerPlugin && Lo
        },
        Vo = function(t) {
            return "string" == typeof t
        },
        jo = function(t) {
            return "function" == typeof t
        },
        Uo = function(t, e) {
            var n = "x" === e ? "Width" : "Height",
                r = "scroll" + n,
                i = "client" + n;
            return t === Ro || t === Xo || t === Yo ? Math.max(Xo[r], Yo[r]) - (Ro["inner" + n] || Xo[i] || Yo[i]) : t[r] - t["offset" + n]
        },
        qo = function(t, e) {
            var n = "scroll" + ("x" === e ? "Left" : "Top");
            return t === Ro && (null != t.pageXOffset ? n = "page" + e.toUpperCase() + "Offset" : t = null != Xo[n] ? Xo : Yo),
                function() {
                    return t[n]
                }
        },
        Go = function(t, e) {
            if (!(t = Io(t)[0]) || !t.getBoundingClientRect) return console.warn("scrollTo target doesn't exist. Using 0") || {
                x: 0,
                y: 0
            };
            var n = t.getBoundingClientRect(),
                r = !e || e === Ro || e === Yo,
                i = r ? {
                    top: Xo.clientTop - (Ro.pageYOffset || Xo.scrollTop || Yo.scrollTop || 0),
                    left: Xo.clientLeft - (Ro.pageXOffset || Xo.scrollLeft || Yo.scrollLeft || 0)
                } : e.getBoundingClientRect(),
                o = {
                    x: n.left - i.left,
                    y: n.top - i.top
                };
            return !r && e && (o.x += qo(e, "x")(), o.y += qo(e, "y")()), o
        },
        Ko = function(t, e, n, r, i) {
            return isNaN(t) || "object" == typeof t ? Vo(t) && "=" === t.charAt(1) ? parseFloat(t.substr(2)) * ("-" === t.charAt(0) ? -1 : 1) + r - i : "max" === t ? Uo(e, n) - i : Math.min(Uo(e, n), Go(t, e)[n] - i) : parseFloat(t) - i
        },
        Qo = function() {
            Lo = Wo(), Ho() && Lo && document.body && (Ro = window, Yo = document.body, Xo = document.documentElement, Io = Lo.utils.toArray, Lo.config({
                autoKillThreshold: 7
            }), zo = Lo.config(), No = 1)
        },
        Zo = {
            version: "3.9.1",
            name: "scrollTo",
            rawVars: 1,
            register: function(t) {
                Lo = t, Qo()
            },
            init: function(t, e, n, r, i) {
                No || Qo();
                var o = Lo.getProperty(t, "scrollSnapType");
                this.isWin = t === Ro, this.target = t, this.tween = n, e = function(t, e, n, r) {
                    if (jo(t) && (t = t(e, n, r)), "object" != typeof t) return Vo(t) && "max" !== t && "=" !== t.charAt(1) ? {
                        x: t,
                        y: t
                    } : {
                        y: t
                    };
                    if (t.nodeType) return {
                        y: t,
                        x: t
                    };
                    var i, o = {};
                    for (i in t) o[i] = "onAutoKill" !== i && jo(t[i]) ? t[i](e, n, r) : t[i];
                    return o
                }(e, r, t, i), this.vars = e, this.autoKill = !!e.autoKill, this.getX = qo(t, "x"), this.getY = qo(t, "y"), this.x = this.xPrev = this.getX(), this.y = this.yPrev = this.getY(), o && "none" !== o && (this.snap = 1, this.snapInline = t.style.scrollSnapType, t.style.scrollSnapType = "none"), null != e.x ? (this.add(this, "x", this.x, Ko(e.x, t, "x", this.x, e.offsetX || 0), r, i), this._props.push("scrollTo_x")) : this.skipX = 1, null != e.y ? (this.add(this, "y", this.y, Ko(e.y, t, "y", this.y, e.offsetY || 0), r, i), this._props.push("scrollTo_y")) : this.skipY = 1
            },
            render: function(t, e) {
                for (var n, r, i, o, s, a = e._pt, u = e.target, l = e.tween, h = e.autoKill, c = e.xPrev, f = e.yPrev, p = e.isWin, d = e.snap, g = e.snapInline; a;) a.r(t, a.d), a = a._next;
                n = p || !e.skipX ? e.getX() : c, i = (r = p || !e.skipY ? e.getY() : f) - f, o = n - c, s = zo.autoKillThreshold, e.x < 0 && (e.x = 0), e.y < 0 && (e.y = 0), h && (!e.skipX && (o > s || o < -s) && n < Uo(u, "x") && (e.skipX = 1), !e.skipY && (i > s || i < -s) && r < Uo(u, "y") && (e.skipY = 1), e.skipX && e.skipY && (l.kill(), e.vars.onAutoKill && e.vars.onAutoKill.apply(l, e.vars.onAutoKillParams || []))), p ? Ro.scrollTo(e.skipX ? n : e.x, e.skipY ? r : e.y) : (e.skipY || (u.scrollTop = e.y), e.skipX || (u.scrollLeft = e.x)), !d || 1 !== t && 0 !== t || (r = u.scrollTop, n = u.scrollLeft, g ? u.style.scrollSnapType = g : u.style.removeProperty("scroll-snap-type"), u.scrollTop = r + 1, u.scrollLeft = n + 1, u.scrollTop = r, u.scrollLeft = n), e.xPrev = e.x, e.yPrev = e.y
            },
            kill: function(t) {
                var e = "scrollTo" === t;
                (e || "scrollTo_x" === t) && (this.skipX = 1), (e || "scrollTo_y" === t) && (this.skipY = 1)
            }
        };
    Zo.max = Uo, Zo.getOffset = Go, Zo.buildGetter = qo, Wo() && Lo.registerPlugin(Zo);
    /*!
     * Draggable 3.9.1
     * https://greensock.com
     *
     * @license Copyright 2008-2021, GreenSock. All rights reserved.
     * Subject to the terms at https://greensock.com/standard-license or for
     * Club GreenSock members, the agreement issued with that membership.
     * @author: Jack Doyle, jack@greensock.com
     */
    var $o, Jo, ts, es, ns, rs, is, os, ss, as, us, ls, hs, cs, fs, ps, ds, gs, Ds, ms, vs, _s = function() {
            return "undefined" != typeof window
        },
        ys = function() {
            return $o || _s() && ($o = window.gsap) && $o.registerPlugin && $o
        },
        xs = function(t) {
            return "function" == typeof t
        },
        ws = function(t) {
            return "object" == typeof t
        },
        Cs = function(t) {
            return void 0 === t
        },
        Fs = function() {
            return !1
        },
        Es = "transform",
        bs = "transformOrigin",
        Ts = function(t) {
            return Math.round(1e4 * t) / 1e4
        },
        Ms = Array.isArray,
        As = function(t, e) {
            var n = ts.createElementNS ? ts.createElementNS((e || "http://www.w3.org/1999/xhtml").replace(/^https/, "http"), t) : ts.createElement(t);
            return n.style ? n : ts.createElement(t)
        },
        Ps = 180 / Math.PI,
        Ss = new go,
        Os = Date.now || function() {
            return (new Date).getTime()
        },
        ks = [],
        Bs = {},
        Ls = 0,
        Ns = /^(?:a|input|textarea|button|select)$/i,
        Rs = 0,
        Xs = {},
        Ys = {},
        Is = function(t, e) {
            var n, r = {};
            for (n in t) r[n] = e ? t[n] * e : t[n];
            return r
        },
        zs = function t(e, n) {
            for (var r, i = e.length; i--;) n ? e[i].style.touchAction = n : e[i].style.removeProperty("touch-action"), (r = e[i].children) && r.length && t(r, n)
        },
        Hs = function() {
            return ks.forEach((function(t) {
                return t()
            }))
        },
        Ws = function() {
            return !ks.length && $o.ticker.remove(Hs)
        },
        Vs = function(t) {
            for (var e = ks.length; e--;) ks[e] === t && ks.splice(e, 1);
            $o.to(Ws, {
                overwrite: !0,
                delay: 15,
                duration: 0,
                onComplete: Ws,
                data: "_draggable"
            })
        },
        js = function(t, e, n, r) {
            if (t.addEventListener) {
                var i = hs[e];
                r = r || (us ? {
                    passive: !1
                } : null), t.addEventListener(i || e, n, r), i && e !== i && t.addEventListener(e, n, r)
            }
        },
        Us = function(t, e, n) {
            if (t.removeEventListener) {
                var r = hs[e];
                t.removeEventListener(r || e, n), r && e !== r && t.removeEventListener(e, n)
            }
        },
        qs = function(t) {
            t.preventDefault && t.preventDefault(), t.preventManipulation && t.preventManipulation()
        },
        Gs = function t(e) {
            fs = e.touches && cs < e.touches.length, Us(e.target, "touchend", t)
        },
        Ks = function(t) {
            fs = t.touches && cs < t.touches.length, js(t.target, "touchend", Gs)
        },
        Qs = function(t) {
            return Jo.pageYOffset || t.scrollTop || t.documentElement.scrollTop || t.body.scrollTop || 0
        },
        Zs = function(t) {
            return Jo.pageXOffset || t.scrollLeft || t.documentElement.scrollLeft || t.body.scrollLeft || 0
        },
        $s = function t(e, n) {
            js(e, "scroll", n), ta(e.parentNode) || t(e.parentNode, n)
        },
        Js = function t(e, n) {
            Us(e, "scroll", n), ta(e.parentNode) || t(e.parentNode, n)
        },
        ta = function(t) {
            return !(t && t !== es && 9 !== t.nodeType && t !== ts.body && t !== Jo && t.nodeType && t.parentNode)
        },
        ea = function(t, e) {
            var n = "x" === e ? "Width" : "Height",
                r = "scroll" + n,
                i = "client" + n;
            return Math.max(0, ta(t) ? Math.max(es[r], ns[r]) - (Jo["inner" + n] || es[i] || ns[i]) : t[r] - t[i])
        },
        na = function t(e, n) {
            var r = ea(e, "x"),
                i = ea(e, "y");
            ta(e) ? e = Ys : t(e.parentNode, n), e._gsMaxScrollX = r, e._gsMaxScrollY = i, n || (e._gsScrollX = e.scrollLeft || 0, e._gsScrollY = e.scrollTop || 0)
        },
        ra = function(t, e, n) {
            var r = t.style;
            r && (Cs(r[e]) && (e = ss(e, t) || e), null == n ? r.removeProperty && r.removeProperty(e.replace(/([A-Z])/g, "-$1").toLowerCase()) : r[e] = n)
        },
        ia = function(t) {
            return Jo.getComputedStyle(t instanceof Element ? t : t.host || (t.parentNode || {}).host || t)
        },
        oa = {},
        sa = function(t) {
            if (t === Jo) return oa.left = oa.top = 0, oa.width = oa.right = es.clientWidth || t.innerWidth || ns.clientWidth || 0, oa.height = oa.bottom = (t.innerHeight || 0) - 20 < es.clientHeight ? es.clientHeight : t.innerHeight || ns.clientHeight || 0, oa;
            var e = t.ownerDocument || ts,
                n = Cs(t.pageX) ? t.nodeType || Cs(t.left) || Cs(t.top) ? as(t)[0].getBoundingClientRect() : t : {
                    left: t.pageX - Zs(e),
                    top: t.pageY - Qs(e),
                    right: t.pageX - Zs(e) + 1,
                    bottom: t.pageY - Qs(e) + 1
                };
            return Cs(n.right) && !Cs(n.width) ? (n.right = n.left + n.width, n.bottom = n.top + n.height) : Cs(n.width) && (n = {
                width: n.right - n.left,
                height: n.bottom - n.top,
                right: n.right,
                left: n.left,
                bottom: n.bottom,
                top: n.top
            }), n
        },
        aa = function(t, e, n) {
            var r, i = t.vars,
                o = i[n],
                s = t._listeners[e];
            return xs(o) && (r = o.apply(i.callbackScope || t, i[n + "Params"] || [t.pointerEvent])), s && !1 === t.dispatchEvent(e) && (r = !1), r
        },
        ua = function(t, e) {
            var n, r, i, o = as(t)[0];
            return o.nodeType || o === Jo ? ha(o, e) : Cs(t.left) ? {
                left: r = t.min || t.minX || t.minRotation || 0,
                top: n = t.min || t.minY || 0,
                width: (t.max || t.maxX || t.maxRotation || 0) - r,
                height: (t.max || t.maxY || 0) - n
            } : (i = {
                x: 0,
                y: 0
            }, {
                left: t.left - i.x,
                top: t.top - i.y,
                width: t.width,
                height: t.height
            })
        },
        la = {},
        ha = function(t, e) {
            e = as(e)[0];
            var n, r, i, o, s, a, u, l, h, c, f, p, d, g, D = t.getBBox && t.ownerSVGElement,
                m = t.ownerDocument || ts;
            if (t === Jo) i = Qs(m), r = (n = Zs(m)) + (m.documentElement.clientWidth || t.innerWidth || m.body.clientWidth || 0), o = i + ((t.innerHeight || 0) - 20 < m.documentElement.clientHeight ? m.documentElement.clientHeight : t.innerHeight || m.body.clientHeight || 0);
            else {
                if (e === Jo || Cs(e)) return t.getBoundingClientRect();
                n = i = 0, D ? (f = (c = t.getBBox()).width, p = c.height) : (t.viewBox && (c = t.viewBox.baseVal) && (n = c.x || 0, i = c.y || 0, f = c.width, p = c.height), f || (c = "border-box" === (d = ia(t)).boxSizing, f = (parseFloat(d.width) || t.clientWidth || 0) + (c ? 0 : parseFloat(d.borderLeftWidth) + parseFloat(d.borderRightWidth)), p = (parseFloat(d.height) || t.clientHeight || 0) + (c ? 0 : parseFloat(d.borderTopWidth) + parseFloat(d.borderBottomWidth)))), r = f, o = p
            }
            return t === e ? {
                left: n,
                top: i,
                width: r - n,
                height: o - i
            } : (a = (s = Do(e, !0).multiply(Do(t))).apply({
                x: n,
                y: i
            }), u = s.apply({
                x: r,
                y: i
            }), l = s.apply({
                x: r,
                y: o
            }), h = s.apply({
                x: n,
                y: o
            }), n = Math.min(a.x, u.x, l.x, h.x), i = Math.min(a.y, u.y, l.y, h.y), {
                left: n + ((g = e.parentNode || {}).scrollLeft || 0),
                top: i + (g.scrollTop || 0),
                width: Math.max(a.x, u.x, l.x, h.x) - n,
                height: Math.max(a.y, u.y, l.y, h.y) - i
            })
        },
        ca = function(t, e, n, r, i, o) {
            var s, a, u, l = {};
            if (e)
                if (1 !== i && e instanceof Array) {
                    if (l.end = s = [], u = e.length, ws(e[0]))
                        for (a = 0; a < u; a++) s[a] = Is(e[a], i);
                    else
                        for (a = 0; a < u; a++) s[a] = e[a] * i;
                    n += 1.1, r -= 1.1
                } else xs(e) ? l.end = function(n) {
                    var r, o, s = e.call(t, n);
                    if (1 !== i)
                        if (ws(s)) {
                            for (o in r = {}, s) r[o] = s[o] * i;
                            s = r
                        } else s *= i;
                    return s
                } : l.end = e;
            return (n || 0 === n) && (l.max = n), (r || 0 === r) && (l.min = r), o && (l.velocity = 0), l
        },
        fa = function t(e) {
            var n;
            return !(!e || !e.getAttribute || e === ns) && (!("true" !== (n = e.getAttribute("data-clickable")) && ("false" === n || !e.onclick && !Ns.test(e.nodeName + "") && "true" !== e.getAttribute("contentEditable"))) || t(e.parentNode))
        },
        pa = function(t, e) {
            for (var n, r = t.length; r--;)(n = t[r]).ondragstart = n.onselectstart = e ? null : Fs, $o.set(n, {
                lazy: !0,
                userSelect: e ? "text" : "none"
            })
        },
        da = function(t, e) {
            t = $o.utils.toArray(t)[0], e = e || {};
            var n, r, i, o, s, a, u = document.createElement("div"),
                l = u.style,
                h = t.firstChild,
                c = 0,
                f = 0,
                p = t.scrollTop,
                d = t.scrollLeft,
                g = t.scrollWidth,
                D = t.scrollHeight,
                m = 0,
                v = 0,
                _ = 0;
            ms && !1 !== e.force3D ? (s = "translate3d(", a = "px,0px)") : Es && (s = "translate(", a = "px)"), this.scrollTop = function(t, e) {
                if (!arguments.length) return -this.top();
                this.top(-t, e)
            }, this.scrollLeft = function(t, e) {
                if (!arguments.length) return -this.left();
                this.left(-t, e)
            }, this.left = function(n, r) {
                if (!arguments.length) return -(t.scrollLeft + f);
                var i = t.scrollLeft - d,
                    o = f;
                if ((i > 2 || i < -2) && !r) return d = t.scrollLeft, $o.killTweensOf(this, {
                    left: 1,
                    scrollLeft: 1
                }), this.left(-d), void(e.onKill && e.onKill());
                (n = -n) < 0 ? (f = n - .5 | 0, n = 0) : n > v ? (f = n - v | 0, n = v) : f = 0, (f || o) && (this._skip || (l[Es] = s + -f + "px," + -c + a), f + m >= 0 && (l.paddingRight = f + m + "px")), t.scrollLeft = 0 | n, d = t.scrollLeft
            }, this.top = function(n, r) {
                if (!arguments.length) return -(t.scrollTop + c);
                var i = t.scrollTop - p,
                    o = c;
                if ((i > 2 || i < -2) && !r) return p = t.scrollTop, $o.killTweensOf(this, {
                    top: 1,
                    scrollTop: 1
                }), this.top(-p), void(e.onKill && e.onKill());
                (n = -n) < 0 ? (c = n - .5 | 0, n = 0) : n > _ ? (c = n - _ | 0, n = _) : c = 0, (c || o) && (this._skip || (l[Es] = s + -f + "px," + -c + a)), t.scrollTop = 0 | n, p = t.scrollTop
            }, this.maxScrollTop = function() {
                return _
            }, this.maxScrollLeft = function() {
                return v
            }, this.disable = function() {
                for (h = u.firstChild; h;) o = h.nextSibling, t.appendChild(h), h = o;
                t === u.parentNode && t.removeChild(u)
            }, this.enable = function() {
                if ((h = t.firstChild) !== u) {
                    for (; h;) o = h.nextSibling, u.appendChild(h), h = o;
                    t.appendChild(u), this.calibrate()
                }
            }, this.calibrate = function(e) {
                var o, s, a, h = t.clientWidth === n;
                p = t.scrollTop, d = t.scrollLeft, h && t.clientHeight === r && u.offsetHeight === i && g === t.scrollWidth && D === t.scrollHeight && !e || ((c || f) && (s = this.left(), a = this.top(), this.left(-t.scrollLeft), this.top(-t.scrollTop)), o = ia(t), h && !e || (l.display = "block", l.width = "auto", l.paddingRight = "0px", (m = Math.max(0, t.scrollWidth - t.clientWidth)) && (m += parseFloat(o.paddingLeft) + (vs ? parseFloat(o.paddingRight) : 0))), l.display = "inline-block", l.position = "relative", l.overflow = "visible", l.verticalAlign = "top", l.boxSizing = "content-box", l.width = "100%", l.paddingRight = m + "px", vs && (l.paddingBottom = o.paddingBottom), n = t.clientWidth, r = t.clientHeight, g = t.scrollWidth, D = t.scrollHeight, v = t.scrollWidth - n, _ = t.scrollHeight - r, i = u.offsetHeight, l.display = "block", (s || a) && (this.left(s), this.top(a)))
            }, this.content = u, this.element = t, this._skip = !1, this.enable()
        },
        ga = function(t) {
            if (_s() && document.body) {
                var e = window && window.navigator;
                Jo = window, ts = document, es = ts.documentElement, ns = ts.body, rs = As("div"), Ds = !!window.PointerEvent, (is = As("div")).style.cssText = "visibility:hidden;height:1px;top:-1px;pointer-events:none;position:relative;clear:both;cursor:grab", gs = "grab" === is.style.cursor ? "grab" : "move", ps = e && -1 !== e.userAgent.toLowerCase().indexOf("android"), ls = "ontouchstart" in es && "orientation" in Jo || e && (e.MaxTouchPoints > 0 || e.msMaxTouchPoints > 0), r = As("div"), i = As("div"), o = i.style, s = ns, o.display = "inline-block", o.position = "relative", r.style.cssText = i.innerHTML = "width:90px;height:40px;padding:10px;overflow:auto;visibility:hidden", r.appendChild(i), s.appendChild(r), n = i.offsetHeight + 18 > r.scrollHeight, s.removeChild(r), vs = n, hs = function(t) {
                    for (var e = t.split(","), n = (("onpointerdown" in rs ? "pointerdown,pointermove,pointerup,pointercancel" : "onmspointerdown" in rs ? "MSPointerDown,MSPointerMove,MSPointerUp,MSPointerCancel" : t).split(",")), r = {}, i = 4; --i > -1;) r[e[i]] = n[i], r[n[i]] = e[i];
                    try {
                        es.addEventListener("test", null, Object.defineProperty({}, "passive", {
                            get: function() {
                                us = 1
                            }
                        }))
                    } catch (t) {}
                    return r
                }("touchstart,touchmove,touchend,touchcancel"), js(ts, "touchcancel", Fs), js(Jo, "touchmove", Fs), ns && ns.addEventListener("touchstart", Fs), js(ts, "contextmenu", (function() {
                    for (var t in Bs) Bs[t].isPressed && Bs[t].endDrag()
                })), $o = os = ys()
            }
            var n, r, i, o, s;
            $o ? (ds = $o.plugins.inertia, ss = $o.utils.checkPrefix, Es = ss(Es), bs = ss(bs), as = $o.utils.toArray, ms = !!ss("perspective")) : t && console.warn("Please gsap.registerPlugin(Draggable)")
        },
        Da = function(t) {
            var e, n;

            function r(e, n) {
                var i;
                i = t.call(this) || this, os || ga(1), e = as(e)[0], ds || (ds = $o.plugins.inertia), i.vars = n = Is(n || {}), i.target = e, i.x = i.y = i.rotation = 0, i.dragResistance = parseFloat(n.dragResistance) || 0, i.edgeResistance = isNaN(n.edgeResistance) ? 1 : parseFloat(n.edgeResistance) || 0, i.lockAxis = n.lockAxis, i.autoScroll = n.autoScroll || 0, i.lockedAxis = null, i.allowEventDefault = !!n.allowEventDefault, $o.getProperty(e, "x");
                var o, s, a, u, l, h, c, f, p, d, g, D, m, v, _, y, x, w, C, F, E, b, T, M, A, P, S, O, k, B, L, N, R = (n.type || "x,y").toLowerCase(),
                    X = ~R.indexOf("x") || ~R.indexOf("y"),
                    Y = -1 !== R.indexOf("rotation"),
                    I = Y ? "rotation" : X ? "x" : "left",
                    z = X ? "y" : "top",
                    H = !(!~R.indexOf("x") && !~R.indexOf("left") && "scroll" !== R),
                    W = !(!~R.indexOf("y") && !~R.indexOf("top") && "scroll" !== R),
                    V = n.minimumMovement || 2,
                    j = function(t) {
                        if (void 0 === t) throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
                        return t
                    }(i),
                    U = as(n.trigger || n.handle || e),
                    q = {},
                    G = 0,
                    K = !1,
                    Q = n.autoScrollMarginTop || 40,
                    Z = n.autoScrollMarginRight || 40,
                    $ = n.autoScrollMarginBottom || 40,
                    J = n.autoScrollMarginLeft || 40,
                    tt = n.clickableTest || fa,
                    et = 0,
                    nt = e._gsap || $o.core.getCache(e),
                    rt = function t(e) {
                        return "fixed" === ia(e).position || ((e = e.parentNode) && 1 === e.nodeType ? t(e) : void 0)
                    }(e),
                    it = function(t, n) {
                        return parseFloat(nt.get(e, t, n))
                    },
                    ot = e.ownerDocument || ts,
                    st = function(t) {
                        return qs(t), t.stopImmediatePropagation && t.stopImmediatePropagation(), !1
                    },
                    at = function t(n) {
                        if (j.autoScroll && j.isDragging && (K || x)) {
                            var r, i, o, a, u, l, h, c, p = e,
                                d = 15 * j.autoScroll;
                            for (K = !1, Ys.scrollTop = null != Jo.pageYOffset ? Jo.pageYOffset : null != ot.documentElement.scrollTop ? ot.documentElement.scrollTop : ot.body.scrollTop, Ys.scrollLeft = null != Jo.pageXOffset ? Jo.pageXOffset : null != ot.documentElement.scrollLeft ? ot.documentElement.scrollLeft : ot.body.scrollLeft, a = j.pointerX - Ys.scrollLeft, u = j.pointerY - Ys.scrollTop; p && !i;) r = (i = ta(p.parentNode)) ? Ys : p.parentNode, o = i ? {
                                bottom: Math.max(es.clientHeight, Jo.innerHeight || 0),
                                right: Math.max(es.clientWidth, Jo.innerWidth || 0),
                                left: 0,
                                top: 0
                            } : r.getBoundingClientRect(), l = h = 0, W && ((c = r._gsMaxScrollY - r.scrollTop) < 0 ? h = c : u > o.bottom - $ && c ? (K = !0, h = Math.min(c, d * (1 - Math.max(0, o.bottom - u) / $) | 0)) : u < o.top + Q && r.scrollTop && (K = !0, h = -Math.min(r.scrollTop, d * (1 - Math.max(0, u - o.top) / Q) | 0)), h && (r.scrollTop += h)), H && ((c = r._gsMaxScrollX - r.scrollLeft) < 0 ? l = c : a > o.right - Z && c ? (K = !0, l = Math.min(c, d * (1 - Math.max(0, o.right - a) / Z) | 0)) : a < o.left + J && r.scrollLeft && (K = !0, l = -Math.min(r.scrollLeft, d * (1 - Math.max(0, a - o.left) / J) | 0)), l && (r.scrollLeft += l)), i && (l || h) && (Jo.scrollTo(r.scrollLeft, r.scrollTop), yt(j.pointerX + l, j.pointerY + h)), p = r
                        }
                        if (x) {
                            var g = j.x,
                                D = j.y;
                            Y ? (j.deltaX = g - parseFloat(nt.rotation), j.rotation = g, nt.rotation = g + "deg", nt.renderTransform(1, nt)) : s ? (W && (j.deltaY = D - s.top(), s.top(D)), H && (j.deltaX = g - s.left(), s.left(g))) : X ? (W && (j.deltaY = D - parseFloat(nt.y), nt.y = D + "px"), H && (j.deltaX = g - parseFloat(nt.x), nt.x = g + "px"), nt.renderTransform(1, nt)) : (W && (j.deltaY = D - parseFloat(e.style.top || 0), e.style.top = D + "px"), H && (j.deltaX = g - parseFloat(e.style.left || 0), e.style.left = g + "px")), !f || n || O || (O = !0, !1 === aa(j, "drag", "onDrag") && (H && (j.x -= j.deltaX), W && (j.y -= j.deltaY), t(!0)), O = !1)
                        }
                        x = !1
                    },
                    ut = function(t, n) {
                        var r, i, o = j.x,
                            a = j.y;
                        e._gsap || (nt = $o.core.getCache(e)), nt.uncache && $o.getProperty(e, "x"), X ? (j.x = parseFloat(nt.x), j.y = parseFloat(nt.y)) : Y ? j.x = j.rotation = parseFloat(nt.rotation) : s ? (j.y = s.top(), j.x = s.left()) : (j.y = parseFloat(e.style.top || (i = ia(e)) && i.top) || 0, j.x = parseFloat(e.style.left || (i || {}).left) || 0), (C || F || E) && !n && (j.isDragging || j.isThrowing) && (E && (Xs.x = j.x, Xs.y = j.y, (r = E(Xs)).x !== j.x && (j.x = r.x, x = !0), r.y !== j.y && (j.y = r.y, x = !0)), C && (r = C(j.x)) !== j.x && (j.x = r, Y && (j.rotation = r), x = !0), F && ((r = F(j.y)) !== j.y && (j.y = r), x = !0)), x && at(!0), t || (j.deltaX = j.x - o, j.deltaY = j.y - a, aa(j, "throwupdate", "onThrowUpdate"))
                    },
                    lt = function(t, e, n, r) {
                        return null == e && (e = -1e20), null == n && (n = 1e20), xs(t) ? function(i) {
                            var o = j.isPressed ? 1 - j.edgeResistance : 1;
                            return t.call(j, i > n ? n + (i - n) * o : i < e ? e + (i - e) * o : i) * r
                        } : Ms(t) ? function(r) {
                            for (var i, o, s = t.length, a = 0, u = 1e20; --s > -1;)(o = (i = t[s]) - r) < 0 && (o = -o), o < u && i >= e && i <= n && (a = s, u = o);
                            return t[a]
                        } : isNaN(t) ? function(t) {
                            return t
                        } : function() {
                            return t * r
                        }
                    },
                    ht = function() {
                        var t, r, i, o;
                        c = !1, s ? (s.calibrate(), j.minX = g = -s.maxScrollLeft(), j.minY = m = -s.maxScrollTop(), j.maxX = d = j.maxY = D = 0, c = !0) : n.bounds && (t = ua(n.bounds, e.parentNode), Y ? (j.minX = g = t.left, j.maxX = d = t.left + t.width, j.minY = m = j.maxY = D = 0) : Cs(n.bounds.maxX) && Cs(n.bounds.maxY) ? (r = ua(e, e.parentNode), j.minX = g = Math.round(it(I, "px") + t.left - r.left), j.minY = m = Math.round(it(z, "px") + t.top - r.top), j.maxX = d = Math.round(g + (t.width - r.width)), j.maxY = D = Math.round(m + (t.height - r.height))) : (t = n.bounds, j.minX = g = t.minX, j.minY = m = t.minY, j.maxX = d = t.maxX, j.maxY = D = t.maxY), g > d && (j.minX = d, j.maxX = d = g, g = j.minX), m > D && (j.minY = D, j.maxY = D = m, m = j.minY), Y && (j.minRotation = g, j.maxRotation = d), c = !0), n.liveSnap && (i = !0 === n.liveSnap ? n.snap || {} : n.liveSnap, o = Ms(i) || xs(i), Y ? (C = lt(o ? i : i.rotation, g, d, 1), F = null) : i.points ? E = function(t, e, n, r, i, o, s) {
                            return o = o && o < 1e20 ? o * o : 1e20, xs(t) ? function(a) {
                                var u, l, h, c = j.isPressed ? 1 - j.edgeResistance : 1,
                                    f = a.x,
                                    p = a.y;
                                return a.x = f = f > n ? n + (f - n) * c : f < e ? e + (f - e) * c : f, a.y = p = p > i ? i + (p - i) * c : p < r ? r + (p - r) * c : p, (u = t.call(j, a)) !== a && (a.x = u.x, a.y = u.y), 1 !== s && (a.x *= s, a.y *= s), o < 1e20 && (l = a.x - f) * l + (h = a.y - p) * h > o && (a.x = f, a.y = p), a
                            } : Ms(t) ? function(e) {
                                for (var n, r, i, s, a = t.length, u = 0, l = 1e20; --a > -1;)(s = (n = (i = t[a]).x - e.x) * n + (r = i.y - e.y) * r) < l && (u = a, l = s);
                                return l <= o ? t[u] : e
                            } : function(t) {
                                return t
                            }
                        }(o ? i : i.points, g, d, m, D, i.radius, s ? -1 : 1) : (H && (C = lt(o ? i : i.x || i.left || i.scrollLeft, g, d, s ? -1 : 1)), W && (F = lt(o ? i : i.y || i.top || i.scrollTop, m, D, s ? -1 : 1))))
                    },
                    ct = function() {
                        j.isThrowing = !1, aa(j, "throwcomplete", "onThrowComplete")
                    },
                    ft = function() {
                        j.isThrowing = !1
                    },
                    pt = function(t, r) {
                        var i, o, a, u;
                        t && ds ? (!0 === t && (i = n.snap || n.liveSnap || {}, o = Ms(i) || xs(i), t = {
                            resistance: (n.throwResistance || n.resistance || 1e3) / (Y ? 10 : 1)
                        }, Y ? t.rotation = ca(j, o ? i : i.rotation, d, g, 1, r) : (H && (t[I] = ca(j, o ? i : i.points || i.x || i.left, d, g, s ? -1 : 1, r || "x" === j.lockedAxis)), W && (t[z] = ca(j, o ? i : i.points || i.y || i.top, D, m, s ? -1 : 1, r || "y" === j.lockedAxis)), (i.points || Ms(i) && ws(i[0])) && (t.linkedProps = I + "," + z, t.radius = i.radius))), j.isThrowing = !0, u = isNaN(n.overshootTolerance) ? 1 === n.edgeResistance ? 0 : 1 - j.edgeResistance + .2 : n.overshootTolerance, t.duration || (t.duration = {
                            max: Math.max(n.minDuration || 0, "maxDuration" in n ? n.maxDuration : 2),
                            min: isNaN(n.minDuration) ? 0 === u || ws(t) && t.resistance > 1e3 ? 0 : .5 : n.minDuration,
                            overshoot: u
                        }), j.tween = a = $o.to(s || e, {
                            inertia: t,
                            data: "_draggable",
                            onComplete: ct,
                            onInterrupt: ft,
                            onUpdate: n.fastMode ? aa : ut,
                            onUpdateParams: n.fastMode ? [j, "onthrowupdate", "onThrowUpdate"] : i && i.radius ? [!1, !0] : []
                        }), n.fastMode || (s && (s._skip = !0), a.render(1e9, !0, !0), ut(!0, !0), j.endX = j.x, j.endY = j.y, Y && (j.endRotation = j.x), a.play(0), ut(!0, !0), s && (s._skip = !1))) : c && j.applyBounds()
                    },
                    dt = function(t) {
                        var n, r = M;
                        M = Do(e.parentNode, !0), t && j.isPressed && !M.equals(r || new go) && (n = r.inverse().apply({
                            x: a,
                            y: u
                        }), M.apply(n, n), a = n.x, u = n.y), M.equals(Ss) && (M = null)
                    },
                    gt = function() {
                        var t, n, r, i = 1 - j.edgeResistance,
                            o = rt ? Zs(ot) : 0,
                            f = rt ? Qs(ot) : 0;
                        dt(!1), la.x = j.pointerX - o, la.y = j.pointerY - f, M && M.apply(la, la), a = la.x, u = la.y, x && (yt(j.pointerX, j.pointerY), at(!0)), N = Do(e), s ? (ht(), h = s.top(), l = s.left()) : (Dt() ? (ut(!0, !0), ht()) : j.applyBounds(), Y ? (t = e.ownerSVGElement ? [nt.xOrigin - e.getBBox().x, nt.yOrigin - e.getBBox().y] : (ia(e)[bs] || "0 0").split(" "), y = j.rotationOrigin = Do(e).apply({
                            x: parseFloat(t[0]) || 0,
                            y: parseFloat(t[1]) || 0
                        }), ut(!0, !0), n = j.pointerX - y.x - o, r = y.y - j.pointerY + f, l = j.x, h = j.y = Math.atan2(r, n) * Ps) : (h = it(z, "px"), l = it(I, "px"))), c && i && (l > d ? l = d + (l - d) / i : l < g && (l = g - (g - l) / i), Y || (h > D ? h = D + (h - D) / i : h < m && (h = m - (m - h) / i))), j.startX = l = Ts(l), j.startY = h = Ts(h)
                    },
                    Dt = function() {
                        return j.tween && j.tween.isActive()
                    },
                    mt = function() {
                        !is.parentNode || Dt() || j.isDragging || is.parentNode.removeChild(is)
                    },
                    vt = function(t, i) {
                        var l;
                        if (!o || j.isPressed || !t || !("mousedown" !== t.type && "pointerdown" !== t.type || i) && Os() - et < 30 && hs[j.pointerEvent.type]) L && t && o && qs(t);
                        else {
                            if (A = Dt(), j.pointerEvent = t, hs[t.type] ? (T = ~t.type.indexOf("touch") ? t.currentTarget || t.target : ot, js(T, "touchend", xt), js(T, "touchmove", _t), js(T, "touchcancel", xt), js(ot, "touchstart", Ks)) : (T = null, js(ot, "mousemove", _t)), S = null, Ds && T || (js(ot, "mouseup", xt), t && t.target && js(t.target, "mouseup", xt)), b = tt.call(j, t.target) && !1 === n.dragClickables && !i) return js(t.target, "change", xt), aa(j, "pressInit", "onPressInit"), aa(j, "press", "onPress"), pa(U, !0), void(L = !1);
                            var h;
                            if (P = !(!T || H === W || !1 === j.vars.allowNativeTouchScrolling || j.vars.allowContextMenu && t && (t.ctrlKey || t.which > 2)) && (H ? "y" : "x"), (L = !P && !j.allowEventDefault) && (qs(t), js(Jo, "touchforcechange", qs)), t.changedTouches ? (t = v = t.changedTouches[0], _ = t.identifier) : t.pointerId ? _ = t.pointerId : v = _ = null, cs++, h = at, ks.push(h), 1 === ks.length && $o.ticker.add(Hs), u = j.pointerY = t.pageY, a = j.pointerX = t.pageX, aa(j, "pressInit", "onPressInit"), (P || j.autoScroll) && na(e.parentNode), !e.parentNode || !j.autoScroll || s || Y || !e.parentNode._gsMaxScrollX || is.parentNode || e.getBBox || (is.style.width = e.parentNode.scrollWidth + "px", e.parentNode.appendChild(is)), gt(), j.tween && j.tween.kill(), j.isThrowing = !1, $o.killTweensOf(s || e, q, !0), s && $o.killTweensOf(e, {
                                    scrollTo: 1
                                }, !0), j.tween = j.lockedAxis = null, (n.zIndexBoost || !Y && !s && !1 !== n.zIndexBoost) && (e.style.zIndex = r.zIndex++), j.isPressed = !0, f = !(!n.onDrag && !j._listeners.drag), p = !(!n.onMove && !j._listeners.move), !1 !== n.cursor || n.activeCursor)
                                for (l = U.length; --l > -1;) $o.set(U[l], {
                                    cursor: n.activeCursor || n.cursor || ("grab" === gs ? "grabbing" : gs)
                                });
                            aa(j, "press", "onPress")
                        }
                    },
                    _t = function(t) {
                        var n, r, i, s, l, h, c = t;
                        if (o && !fs && j.isPressed && t) {
                            if (j.pointerEvent = t, n = t.changedTouches) {
                                if ((t = n[0]) !== v && t.identifier !== _) {
                                    for (s = n.length; --s > -1 && (t = n[s]).identifier !== _ && t.target !== e;);
                                    if (s < 0) return
                                }
                            } else if (t.pointerId && _ && t.pointerId !== _) return;
                            T && P && !S && (la.x = t.pageX - (rt ? Zs(ot) : 0), la.y = t.pageY - (rt ? Qs(ot) : 0), M && M.apply(la, la), r = la.x, i = la.y, ((l = Math.abs(r - a)) !== (h = Math.abs(i - u)) && (l > V || h > V) || ps && P === S) && (S = l > h && H ? "x" : "y", P && S !== P && js(Jo, "touchforcechange", qs), !1 !== j.vars.lockAxisOnTouchScroll && H && W && (j.lockedAxis = "x" === S ? "y" : "x", xs(j.vars.onLockAxis) && j.vars.onLockAxis.call(j, c)), ps && P === S)) ? xt(c) : (j.allowEventDefault || P && (!S || P === S) || !1 === c.cancelable ? L && (L = !1) : (qs(c), L = !0), j.autoScroll && (K = !0), yt(t.pageX, t.pageY, p))
                        } else L && t && o && qs(t)
                    },
                    yt = function(t, e, n) {
                        var r, i, o, s, f, p, v = 1 - j.dragResistance,
                            _ = 1 - j.edgeResistance,
                            w = j.pointerX,
                            b = j.pointerY,
                            T = h,
                            A = j.x,
                            P = j.y,
                            S = j.endX,
                            O = j.endY,
                            k = j.endRotation,
                            B = x;
                        j.pointerX = t, j.pointerY = e, rt && (t -= Zs(ot), e -= Qs(ot)), Y ? (s = Math.atan2(y.y - e, t - y.x) * Ps, (f = j.y - s) > 180 ? (h -= 360, j.y = s) : f < -180 && (h += 360, j.y = s), j.x !== l || Math.abs(h - s) > V ? (j.y = s, o = l + (h - s) * v) : o = l) : (M && (p = t * M.a + e * M.c + M.e, e = t * M.b + e * M.d + M.f, t = p), (i = e - u) < V && i > -V && (i = 0), (r = t - a) < V && r > -V && (r = 0), (j.lockAxis || j.lockedAxis) && (r || i) && ((p = j.lockedAxis) || (j.lockedAxis = p = H && Math.abs(r) > Math.abs(i) ? "y" : W ? "x" : null, p && xs(j.vars.onLockAxis) && j.vars.onLockAxis.call(j, j.pointerEvent)), "y" === p ? i = 0 : "x" === p && (r = 0)), o = Ts(l + r * v), s = Ts(h + i * v)), (C || F || E) && (j.x !== o || j.y !== s && !Y) && (E && (Xs.x = o, Xs.y = s, p = E(Xs), o = Ts(p.x), s = Ts(p.y)), C && (o = Ts(C(o))), F && (s = Ts(F(s)))), c && (o > d ? o = d + Math.round((o - d) * _) : o < g && (o = g + Math.round((o - g) * _)), Y || (s > D ? s = Math.round(D + (s - D) * _) : s < m && (s = Math.round(m + (s - m) * _)))), (j.x !== o || j.y !== s && !Y) && (Y ? (j.endRotation = j.x = j.endX = o, x = !0) : (W && (j.y = j.endY = s, x = !0), H && (j.x = j.endX = o, x = !0)), n && !1 === aa(j, "move", "onMove") ? (j.pointerX = w, j.pointerY = b, h = T, j.x = A, j.y = P, j.endX = S, j.endY = O, j.endRotation = k, x = B) : !j.isDragging && j.isPressed && (j.isDragging = !0, aa(j, "dragstart", "onDragStart")))
                    },
                    xt = function t(r, i) {
                        if (o && j.isPressed && (!r || null == _ || i || !(r.pointerId && r.pointerId !== _ && r.target !== e || r.changedTouches && ! function(t, e) {
                                for (var n = t.length; n--;)
                                    if (t[n].identifier === e) return !0
                            }(r.changedTouches, _)))) {
                            j.isPressed = !1;
                            var s, a, u, l, h, c = r,
                                f = j.isDragging,
                                p = j.vars.allowContextMenu && r && (r.ctrlKey || r.which > 2),
                                d = $o.delayedCall(.001, mt);
                            if (T ? (Us(T, "touchend", t), Us(T, "touchmove", _t), Us(T, "touchcancel", t), Us(ot, "touchstart", Ks)) : Us(ot, "mousemove", _t), Us(Jo, "touchforcechange", qs), Ds && T || (Us(ot, "mouseup", t), r && r.target && Us(r.target, "mouseup", t)), x = !1, f && (G = Rs = Os(), j.isDragging = !1), b && !p) return r && (Us(r.target, "change", t), j.pointerEvent = c), pa(U, !1), aa(j, "release", "onRelease"), aa(j, "click", "onClick"), void(b = !1);
                            for (Vs(at), a = U.length; --a > -1;) ra(U[a], "cursor", n.cursor || (!1 !== n.cursor ? gs : null));
                            if (cs--, r) {
                                if ((s = r.changedTouches) && (r = s[0]) !== v && r.identifier !== _) {
                                    for (a = s.length; --a > -1 && (r = s[a]).identifier !== _ && r.target !== e;);
                                    if (a < 0) return
                                }
                                j.pointerEvent = c, j.pointerX = r.pageX, j.pointerY = r.pageY
                            }
                            return p && c ? (qs(c), L = !0, aa(j, "release", "onRelease")) : c && !f ? (L = !1, A && (n.snap || n.bounds) && pt(n.inertia || n.throwProps), aa(j, "release", "onRelease"), ps && "touchmove" === c.type || -1 !== c.type.indexOf("cancel") || (aa(j, "click", "onClick"), Os() - et < 300 && aa(j, "doubleclick", "onDoubleClick"), l = c.target || e, et = Os(), h = function() {
                                et === k || !j.enabled() || j.isPressed || c.defaultPrevented || (l.click ? l.click() : ot.createEvent && ((u = ot.createEvent("MouseEvents")).initMouseEvent("click", !0, !0, Jo, 1, j.pointerEvent.screenX, j.pointerEvent.screenY, j.pointerX, j.pointerY, !1, !1, !1, !1, 0, null), l.dispatchEvent(u)))
                            }, ps || c.defaultPrevented || $o.delayedCall(.05, h))) : (pt(n.inertia || n.throwProps), j.allowEventDefault || !c || !1 === n.dragClickables && tt.call(j, c.target) || !f || P && (!S || P !== S) || !1 === c.cancelable ? L = !1 : (L = !0, qs(c)), aa(j, "release", "onRelease")), Dt() && d.duration(j.tween.duration()), f && aa(j, "dragend", "onDragEnd"), !0
                        }
                        L && r && o && qs(r)
                    },
                    wt = function(t) {
                        if (t && j.isDragging && !s) {
                            var n = t.target || e.parentNode,
                                r = n.scrollLeft - n._gsScrollX,
                                i = n.scrollTop - n._gsScrollY;
                            (r || i) && (M ? (a -= r * M.a + i * M.c, u -= i * M.d + r * M.b) : (a -= r, u -= i), n._gsScrollX += r, n._gsScrollY += i, yt(j.pointerX, j.pointerY))
                        }
                    },
                    Ct = function(t) {
                        var e = Os(),
                            n = e - et < 100,
                            r = e - G < 50,
                            i = n && k === et,
                            o = j.pointerEvent && j.pointerEvent.defaultPrevented,
                            s = n && B === et,
                            a = t.isTrusted || null == t.isTrusted && n && i;
                        if ((i || r && !1 !== j.vars.suppressClickOnDrag) && t.stopImmediatePropagation && t.stopImmediatePropagation(), n && (!j.pointerEvent || !j.pointerEvent.defaultPrevented) && (!i || a && !s)) return a && i && (B = et), void(k = et);
                        (j.isPressed || r || n) && (a && t.detail && n && !o || qs(t)), n || r || (t && t.target && (j.pointerEvent = t), aa(j, "click", "onClick"))
                    },
                    Ft = function(t) {
                        return M ? {
                            x: t.x * M.a + t.y * M.c + M.e,
                            y: t.x * M.b + t.y * M.d + M.f
                        } : {
                            x: t.x,
                            y: t.y
                        }
                    };
                return (w = r.get(e)) && w.kill(), i.startDrag = function(t, n) {
                    var r, i, o, s;
                    vt(t || j.pointerEvent, !0), n && !j.hitTest(t || j.pointerEvent) && (r = sa(t || j.pointerEvent), i = sa(e), o = Ft({
                        x: r.left + r.width / 2,
                        y: r.top + r.height / 2
                    }), s = Ft({
                        x: i.left + i.width / 2,
                        y: i.top + i.height / 2
                    }), a -= o.x - s.x, u -= o.y - s.y), j.isDragging || (j.isDragging = !0, aa(j, "dragstart", "onDragStart"))
                }, i.drag = _t, i.endDrag = function(t) {
                    return xt(t || j.pointerEvent, !0)
                }, i.timeSinceDrag = function() {
                    return j.isDragging ? 0 : (Os() - G) / 1e3
                }, i.timeSinceClick = function() {
                    return (Os() - et) / 1e3
                }, i.hitTest = function(t, e) {
                    return r.hitTest(j.target, t, e)
                }, i.getDirection = function(t, n) {
                    var r, i, o, s, a, u, c = "velocity" === t && ds ? t : ws(t) && !Y ? "element" : "start";
                    return "element" === c && (a = sa(j.target), u = sa(t)), r = "start" === c ? j.x - l : "velocity" === c ? ds.getVelocity(e, I) : a.left + a.width / 2 - (u.left + u.width / 2), Y ? r < 0 ? "counter-clockwise" : "clockwise" : (n = n || 2, i = "start" === c ? j.y - h : "velocity" === c ? ds.getVelocity(e, z) : a.top + a.height / 2 - (u.top + u.height / 2), s = (o = Math.abs(r / i)) < 1 / n ? "" : r < 0 ? "left" : "right", o < n && ("" !== s && (s += "-"), s += i < 0 ? "up" : "down"), s)
                }, i.applyBounds = function(t, r) {
                    var i, o, s, a, u, l;
                    if (t && n.bounds !== t) return n.bounds = t, j.update(!0, r);
                    if (ut(!0), ht(), c && !Dt()) {
                        if (i = j.x, o = j.y, i > d ? i = d : i < g && (i = g), o > D ? o = D : o < m && (o = m), (j.x !== i || j.y !== o) && (s = !0, j.x = j.endX = i, Y ? j.endRotation = i : j.y = j.endY = o, x = !0, at(!0), j.autoScroll && !j.isDragging))
                            for (na(e.parentNode), a = e, Ys.scrollTop = null != Jo.pageYOffset ? Jo.pageYOffset : null != ot.documentElement.scrollTop ? ot.documentElement.scrollTop : ot.body.scrollTop, Ys.scrollLeft = null != Jo.pageXOffset ? Jo.pageXOffset : null != ot.documentElement.scrollLeft ? ot.documentElement.scrollLeft : ot.body.scrollLeft; a && !l;) u = (l = ta(a.parentNode)) ? Ys : a.parentNode, W && u.scrollTop > u._gsMaxScrollY && (u.scrollTop = u._gsMaxScrollY), H && u.scrollLeft > u._gsMaxScrollX && (u.scrollLeft = u._gsMaxScrollX), a = u;
                        j.isThrowing && (s || j.endX > d || j.endX < g || j.endY > D || j.endY < m) && pt(n.inertia || n.throwProps, s)
                    }
                    return j
                }, i.update = function(t, n, r) {
                    if (n && j.isPressed) {
                        var i = Do(e),
                            o = N.apply({
                                x: j.x - l,
                                y: j.y - h
                            }),
                            s = Do(e.parentNode, !0);
                        s.apply({
                            x: i.e - o.x,
                            y: i.f - o.y
                        }, o), j.x -= o.x - s.e, j.y -= o.y - s.f, at(!0), gt()
                    }
                    var a = j.x,
                        u = j.y;
                    return dt(!n), t ? j.applyBounds() : (x && r && at(!0), ut(!0)), n && (yt(j.pointerX, j.pointerY), x && at(!0)), j.isPressed && !n && (H && Math.abs(a - j.x) > .01 || W && Math.abs(u - j.y) > .01 && !Y) && gt(), j.autoScroll && (na(e.parentNode, j.isDragging), K = j.isDragging, at(!0), Js(e, wt), $s(e, wt)), j
                }, i.enable = function(t) {
                    var r, i, a, u = {
                        lazy: !0
                    };
                    if (!1 !== n.cursor && (u.cursor = n.cursor || gs), $o.utils.checkPrefix("touchCallout") && (u.touchCallout = "none"), "soft" !== t) {
                        for (zs(U, H === W ? "none" : n.allowNativeTouchScrolling && e.scrollHeight === e.clientHeight == (e.scrollWidth === e.clientHeight) || n.allowEventDefault ? "manipulation" : H ? "pan-y" : "pan-x"), i = U.length; --i > -1;) a = U[i], Ds || js(a, "mousedown", vt), js(a, "touchstart", vt), js(a, "click", Ct, !0), $o.set(a, u), a.getBBox && a.ownerSVGElement && $o.set(a.ownerSVGElement, {
                            touchAction: H === W ? "none" : n.allowNativeTouchScrolling || n.allowEventDefault ? "manipulation" : H ? "pan-y" : "pan-x"
                        }), n.allowContextMenu || js(a, "contextmenu", st);
                        pa(U, !1)
                    }
                    return $s(e, wt), o = !0, ds && "soft" !== t && ds.track(s || e, X ? "x,y" : Y ? "rotation" : "top,left"), e._gsDragID = r = "d" + Ls++, Bs[r] = j, s && (s.enable(), s.element._gsDragID = r), (n.bounds || Y) && gt(), n.bounds && j.applyBounds(), j
                }, i.disable = function(t) {
                    for (var n, r = j.isDragging, i = U.length; --i > -1;) ra(U[i], "cursor", null);
                    if ("soft" !== t) {
                        for (zs(U, null), i = U.length; --i > -1;) n = U[i], ra(n, "touchCallout", null), Us(n, "mousedown", vt), Us(n, "touchstart", vt), Us(n, "click", Ct), Us(n, "contextmenu", st);
                        pa(U, !0), T && (Us(T, "touchcancel", xt), Us(T, "touchend", xt), Us(T, "touchmove", _t)), Us(ot, "mouseup", xt), Us(ot, "mousemove", _t)
                    }
                    return Js(e, wt), o = !1, ds && "soft" !== t && ds.untrack(s || e, X ? "x,y" : Y ? "rotation" : "top,left"), s && s.disable(), Vs(at), j.isDragging = j.isPressed = b = !1, r && aa(j, "dragend", "onDragEnd"), j
                }, i.enabled = function(t, e) {
                    return arguments.length ? t ? j.enable(e) : j.disable(e) : o
                }, i.kill = function() {
                    return j.isThrowing = !1, j.tween && j.tween.kill(), j.disable(), $o.set(U, {
                        clearProps: "userSelect"
                    }), delete Bs[e._gsDragID], j
                }, ~R.indexOf("scroll") && (s = i.scrollProxy = new da(e, function(t, e) {
                    for (var n in e) n in t || (t[n] = e[n]);
                    return t
                }({
                    onKill: function() {
                        j.isPressed && xt(null)
                    }
                }, n)), e.style.overflowY = W && !ls ? "auto" : "hidden", e.style.overflowX = H && !ls ? "auto" : "hidden", e = s.content), Y ? q.rotation = 1 : (H && (q[I] = 1), W && (q[z] = 1)), nt.force3D = !("force3D" in n) || n.force3D, i.enable(), i
            }
            return n = t, (e = r).prototype = Object.create(n.prototype), e.prototype.constructor = e, e.__proto__ = n, r.register = function(t) {
                $o = t, ga()
            }, r.create = function(t, e) {
                return os || ga(!0), as(t).map((function(t) {
                    return new r(t, e)
                }))
            }, r.get = function(t) {
                return Bs[(as(t)[0] || {})._gsDragID]
            }, r.timeSinceDrag = function() {
                return (Os() - Rs) / 1e3
            }, r.hitTest = function(t, e, n) {
                if (t === e) return !1;
                var r, i, o, s = sa(t),
                    a = sa(e),
                    u = s.top,
                    l = s.left,
                    h = s.right,
                    c = s.bottom,
                    f = s.width,
                    p = s.height,
                    d = a.left > h || a.right < l || a.top > c || a.bottom < u;
                return d || !n ? !d : (o = -1 !== (n + "").indexOf("%"), n = parseFloat(n) || 0, (r = {
                    left: Math.max(l, a.left),
                    top: Math.max(u, a.top)
                }).width = Math.min(h, a.right) - r.left, r.height = Math.min(c, a.bottom) - r.top, !(r.width < 0 || r.height < 0) && (o ? (n *= .01, (i = r.width * r.height) >= f * p * n || i >= a.width * a.height * n) : r.width > n && r.height > n))
            }, r
        }(function() {
            function t(t) {
                this._listeners = {}, this.target = t || this
            }
            var e = t.prototype;
            return e.addEventListener = function(t, e) {
                var n = this._listeners[t] || (this._listeners[t] = []);
                ~n.indexOf(e) || n.push(e)
            }, e.removeEventListener = function(t, e) {
                var n = this._listeners[t],
                    r = n && n.indexOf(e) || -1;
                r > -1 && n.splice(r, 1)
            }, e.dispatchEvent = function(t) {
                var e, n = this;
                return (this._listeners[t] || []).forEach((function(r) {
                    return !1 === r.call(n, {
                        type: t,
                        target: n.target
                    }) && (e = !1)
                })), e
            }, t
        }());
    ! function(t, e) {
        for (var n in e) n in t || (t[n] = e[n])
    }(Da.prototype, {
        pointerX: 0,
        pointerY: 0,
        startX: 0,
        startY: 0,
        deltaX: 0,
        deltaY: 0,
        isDragging: !1,
        isPressed: !1
    }), Da.zIndex = 1e3, Da.version = "3.9.1", ys() && $o.registerPlugin(Da);
    /*!
     * VelocityTracker: 3.9.1
     * https://greensock.com
     *
     * Copyright 2008-2021, GreenSock. All rights reserved.
     * Subject to the terms at https://greensock.com/standard-license or for
     * Club GreenSock members, the agreement issued with that membership.
     * @author: Jack Doyle, jack@greensock.com
     */
    var ma, va, _a, ya, xa, wa, Ca, Fa, Ea = function() {
            return ma || "undefined" != typeof window && (ma = window.gsap)
        },
        ba = {},
        Ta = function(t) {
            return Fa(t).id
        },
        Ma = function(t) {
            return ba[Ta("string" == typeof t ? _a(t)[0] : t)]
        },
        Aa = function(t) {
            var e, n = xa;
            if (t - Ca >= .05)
                for (Ca, Ca = t; n;)((e = n.g(n.t, n.p)) !== n.v1 || t - n.t1 > .2) && (n.v2 = n.v1, n.v1 = e, n.t2 = n.t1, n.t1 = t), n = n._next
        },
        Pa = {
            deg: 360,
            rad: 2 * Math.PI
        },
        Sa = function() {
            (ma = Ea()) && (_a = ma.utils.toArray, ya = ma.utils.getUnit, Fa = ma.core.getCache, wa = ma.ticker, va = 1)
        },
        Oa = function(t, e, n, r) {
            this.t = t, this.p = e, this.g = t._gsap.get, this.rCap = Pa[n || ya(this.g(t, e))], this.v1 = this.v2 = 0, this.t1 = this.t2 = wa.time, r && (this._next = r, r._prev = this)
        },
        ka = function() {
            function t(t, e) {
                va || Sa(), this.target = _a(t)[0], ba[Ta(this.target)] = this, this._props = {}, e && this.add(e)
            }
            t.register = function(t) {
                ma = t, Sa()
            };
            var e = t.prototype;
            return e.get = function(t, e) {
                var n, r, i, o = this._props[t] || console.warn("Not tracking " + t + " velocity.");
                return n = parseFloat(e ? o.v1 : o.g(o.t, o.p)) - parseFloat(o.v2), (r = o.rCap) && (n %= r) !== n % (r / 2) && (n = n < 0 ? n + r : n - r), i = n / ((e ? o.t1 : wa.time) - o.t2), Math.round(1e4 * i) / 1e4
            }, e.getAll = function() {
                var t, e = {},
                    n = this._props;
                for (t in n) e[t] = this.get(t);
                return e
            }, e.isTracking = function(t) {
                return t in this._props
            }, e.add = function(t, e) {
                t in this._props || (xa || (wa.add(Aa), Ca = wa.time), xa = this._props[t] = new Oa(this.target, t, e, xa))
            }, e.remove = function(t) {
                var e, n, r = this._props[t];
                r && (e = r._prev, n = r._next, e && (e._next = n), n ? n._prev = e : xa === r && (wa.remove(Aa), xa = 0), delete this._props[t])
            }, e.kill = function(t) {
                for (var e in this._props) this.remove(e);
                t || delete ba[Ta(this.target)]
            }, t.track = function(e, n, r) {
                va || Sa();
                for (var i, o, s = [], a = _a(e), u = n.split(","), l = (r || "").split(","), h = a.length; h--;) {
                    for (i = Ma(a[h]) || new t(a[h]), o = u.length; o--;) i.add(u[o], l[o] || l[0]);
                    s.push(i)
                }
                return s
            }, t.untrack = function(t, e) {
                var n = (e || "").split(",");
                _a(t).forEach((function(t) {
                    var e = Ma(t);
                    e && (n.length ? n.forEach((function(t) {
                        return e.remove(t)
                    })) : e.kill(1))
                }))
            }, t.isTracking = function(t, e) {
                var n = Ma(t);
                return n && n.isTracking(e)
            }, t.getVelocity = function(t, e) {
                var n = Ma(t);
                return n && n.isTracking(e) ? n.get(e) : console.warn("Not tracking velocity of " + e)
            }, t
        }();
    ka.getByTarget = Ma, Ea() && ma.registerPlugin(ka);
    /*!
     * InertiaPlugin 3.9.1
     * https://greensock.com
     *
     * @license Copyright 2008-2021, GreenSock. All rights reserved.
     * Subject to the terms at https://greensock.com/standard-license or for
     * Club GreenSock members, the agreement issued with that membership.
     * @author: Jack Doyle, jack@greensock.com
     */
    var Ba, La, Na, Ra, Xa, Ya, Ia, za, Ha, Wa, Va, ja, Ua = ka.getByTarget,
        qa = function() {
            return Ba || "undefined" != typeof window && (Ba = window.gsap) && Ba.registerPlugin && Ba
        },
        Ga = function(t) {
            return "number" == typeof t
        },
        Ka = function(t) {
            return "object" == typeof t
        },
        Qa = function(t) {
            return "function" == typeof t
        },
        Za = Array.isArray,
        $a = function(t) {
            return t
        },
        Ja = function(t, e, n) {
            for (var r in e) r in t || r === n || (t[r] = e[r]);
            return t
        },
        tu = function t(e) {
            var n, r, i = {};
            for (n in e) i[n] = Ka(r = e[n]) && !Za(r) ? t(r) : r;
            return i
        },
        eu = function(t, e, n, r, i) {
            var o, s, a, u, l = e.length,
                h = 0,
                c = 1e10;
            if (Ka(t)) {
                for (; l--;) {
                    for (a in o = e[l], s = 0, t) s += (u = o[a] - t[a]) * u;
                    s < c && (h = l, c = s)
                }
                if ((i || 1e10) < 1e10 && i < Math.sqrt(c)) return t
            } else
                for (; l--;)(s = (o = e[l]) - t) < 0 && (s = -s), s < c && o >= r && o <= n && (h = l, c = s);
            return e[h]
        },
        nu = function(t, e, n, r, i, o, s) {
            if ("auto" === t.end) return t;
            var a, u, l = t.end;
            if (n = isNaN(n) ? 1e10 : n, r = isNaN(r) ? -1e10 : r, Ka(e)) {
                if (a = e.calculated ? e : (Qa(l) ? l(e, s) : eu(e, l, n, r, o)) || e, !e.calculated) {
                    for (u in a) e[u] = a[u];
                    e.calculated = !0
                }
                a = a[i]
            } else a = Qa(l) ? l(e, s) : Za(l) ? eu(e, l, n, r, o) : parseFloat(l);
            return a > n ? a = n : a < r && (a = r), {
                max: a,
                min: a,
                unitFactor: t.unitFactor
            }
        },
        ru = function(t, e, n) {
            return isNaN(t[e]) ? n : +t[e]
        },
        iu = function(t, e) {
            return .05 * e * t / Wa
        },
        ou = function(t, e, n) {
            return Math.abs((e - t) * Wa / n / .05)
        },
        su = {
            resistance: 1,
            checkpoint: 1,
            preventOvershoot: 1,
            linkedProps: 1,
            radius: 1,
            duration: 1
        },
        au = function(t, e, n, r) {
            if (e.linkedProps) {
                var i, o, s, a, u, l, h = e.linkedProps.split(","),
                    c = {};
                for (i = 0; i < h.length; i++)(s = e[o = h[i]]) && (a = Ga(s.velocity) ? s.velocity : (u = u || Ua(t)) && u.isTracking(o) ? u.get(o) : 0, l = Math.abs(a / ru(s, "resistance", r)), c[o] = parseFloat(n(t, o)) + iu(a, l));
                return c
            }
        },
        uu = function() {
            (Ba = qa()) && (Na = Ba.parseEase, Ra = Ba.utils.toArray, Ia = Ba.utils.getUnit, Ha = Ba.core.getCache, Va = Ba.utils.clamp, Xa = Na("power3"), Wa = Xa(.05), za = Ba.core.PropTween, Ba.config({
                resistance: 100,
                unitFactors: {
                    time: 1e3,
                    totalTime: 1e3,
                    progress: 1e3,
                    totalProgress: 1e3
                }
            }), Ya = Ba.config(), Ba.registerPlugin(ka), La = 1)
        },
        lu = {
            version: "3.9.1",
            name: "inertia",
            register: function(t) {
                Ba = t, uu()
            },
            init: function(t, e, n, r, i) {
                La || uu();
                var o = Ua(t);
                if ("auto" === e) {
                    if (!o) return void console.warn("No inertia tracking on " + t + ". InertiaPlugin.track(target) first.");
                    e = o.getAll()
                }
                this.target = t, this.tween = n, ja = e;
                var s, a, u, l, h, c, f, p, d, g = t._gsap,
                    D = g.get,
                    m = e.duration,
                    v = Ka(m),
                    _ = e.preventOvershoot || v && 0 === m.overshoot,
                    y = ru(e, "resistance", Ya.resistance),
                    x = Ga(m) ? m : function(t, e, n, r, i, o) {
                        if (void 0 === n && (n = 10), void 0 === r && (r = .2), void 0 === i && (i = 1), void 0 === o && (o = 0), "string" == typeof t && (t = Ra(t)[0]), !t) return 0;
                        var s, a, u, l, h, c, f, p, d, g, D = 0,
                            m = 1e10,
                            v = e.inertia || e,
                            _ = Ha(t).get,
                            y = ru(v, "resistance", Ya.resistance);
                        for (s in g = au(t, v, _, y), v) su[s] || (a = v[s], Ka(a) || ((p = p || Ua(t)) && p.isTracking(s) ? a = Ga(a) ? {
                            velocity: a
                        } : {
                            velocity: p.get(s)
                        } : (l = +a || 0, u = Math.abs(l / y))), Ka(a) && (l = Ga(a.velocity) ? a.velocity : (p = p || Ua(t)) && p.isTracking(s) ? p.get(s) : 0, u = Va(r, n, Math.abs(l / ru(a, "resistance", y))), c = (h = parseFloat(_(t, s)) || 0) + iu(l, u), "end" in a && (a = nu(a, g && s in g ? g : c, a.max, a.min, s, v.radius, l), o && (ja === e && (ja = v = tu(e)), v[s] = Ja(a, v[s], "end"))), "max" in a && c > +a.max + 1e-10 ? (d = a.unitFactor || Ya.unitFactors[s] || 1, (f = h > a.max && a.min !== a.max || l * d > -15 && l * d < 45 ? r + .1 * (n - r) : ou(h, a.max, l)) + i < m && (m = f + i)) : "min" in a && c < +a.min - 1e-10 && (d = a.unitFactor || Ya.unitFactors[s] || 1, (f = h < a.min && a.min !== a.max || l * d > -45 && l * d < 15 ? r + .1 * (n - r) : ou(h, a.min, l)) + i < m && (m = f + i)), f > D && (D = f)), u > D && (D = u));
                        return D > m && (D = m), D > n ? n : D < r ? r : D
                    }(t, e, v && m.max || 10, v && m.min || .2, v && "overshoot" in m ? +m.overshoot : _ ? 0 : 1, !0);
                for (s in e = ja, ja = 0, d = au(t, e, D, y), e) su[s] || (a = e[s], Qa(a) && (a = a(r, t, i)), Ga(a) ? h = a : Ka(a) && !isNaN(a.velocity) ? h = +a.velocity : o && o.isTracking(s) ? h = o.get(s) : console.warn("ERROR: No velocity was defined for " + t + " property: " + s), c = iu(h, x), p = 0, u = D(t, s), l = Ia(u), u = parseFloat(u), Ka(a) && (f = u + c, "end" in a && (a = nu(a, d && s in d ? d : f, a.max, a.min, s, e.radius, h)), "max" in a && +a.max < f ? _ || a.preventOvershoot ? c = a.max - u : p = a.max - u - c : "min" in a && +a.min > f && (_ || a.preventOvershoot ? c = a.min - u : p = a.min - u - c)), this._props.push(s), this._pt = new za(this._pt, t, s, u, 0, $a, 0, g.set(t, s, this)), this._pt.u = l || 0, this._pt.c1 = c, this._pt.c2 = p);
                return n.duration(x), 1
            },
            render: function(t, e) {
                var n, r = e._pt;
                for (t = Xa(e.tween._time / e.tween._dur); r;) r.set(r.t, r.p, (n = r.s + r.c1 * t + r.c2 * t * t, Math.round(1e4 * n) / 1e4 + r.u), r.d, t), r = r._next
            }
        };
    "track,untrack,isTracking,getVelocity,getByTarget".split(",").forEach((function(t) {
        return lu[t] = ka[t]
    })), qa() && Ba.registerPlugin(lu);
    /*!
     * strings: 3.9.1
     * https://greensock.com
     *
     * Copyright 2008-2021, GreenSock. All rights reserved.
     * Subject to the terms at https://greensock.com/standard-license or for
     * Club GreenSock members, the agreement issued with that membership.
     * @author: Jack Doyle, jack@greensock.com
     */
    var hu = /([\uD800-\uDBFF][\uDC00-\uDFFF](?:[\u200D\uFE0F][\uD800-\uDBFF][\uDC00-\uDFFF]){2,}|\uD83D\uDC69(?:\u200D(?:(?:\uD83D\uDC69\u200D)?\uD83D\uDC67|(?:\uD83D\uDC69\u200D)?\uD83D\uDC66)|\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D(?:\uD83D\uDC69\u200D)?\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D(?:\uD83D\uDC69\u200D)?\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]\uFE0F|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC6F\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3C-\uDD3E\uDDD6-\uDDDF])\u200D[\u2640\u2642]\uFE0F|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F\u200D[\u2640\u2642]|(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642])\uFE0F|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83D\uDC69(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|\uD83D\uDC69\u200D[\u2695\u2696\u2708]|\uD83D\uDC68(?:(?:\uD83C[\uDFFB-\uDFFF])\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708]))\uFE0F|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83D\uDC69\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|[#\*0-9]\uFE0F\u20E3|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|\uD83D\uDC68(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:(?:\uD83D[\uDC68\uDC69])\u200D)?\uD83D\uDC66\u200D\uD83D\uDC66|(?:(?:\uD83D[\uDC68\uDC69])\u200D)?\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92])|(?:\uD83C[\uDFFB-\uDFFF])\u200D(?:\uD83C[\uDF3E\uDF73\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]))|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uD83C[\uDFFB-\uDFFF])|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD37-\uDD39\uDD3D\uDD3E\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270A-\u270D]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC70\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDCAA\uDD74\uDD7A\uDD90\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD36\uDDD1-\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\u200D(?:(?:(?:\uD83D[\uDC68\uDC69])\u200D)?\uD83D\uDC67|(?:(?:\uD83D[\uDC68\uDC69])\u200D)?\uD83D\uDC66)|\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC69\uDC6E\uDC70-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD18-\uDD1C\uDD1E\uDD1F\uDD26\uDD30-\uDD39\uDD3D\uDD3E\uDDD1-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])?|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDEEB\uDEEC\uDEF4-\uDEF8]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD4C\uDD50-\uDD6B\uDD80-\uDD97\uDDC0\uDDD0-\uDDE6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u2660\u2663\u2665\u2666\u2668\u267B\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEF8]|\uD83E[\uDD10-\uDD3A\uDD3C-\uDD3E\uDD40-\uDD45\uDD47-\uDD4C\uDD50-\uDD6B\uDD80-\uDD97\uDDC0\uDDD0-\uDDE6])\uFE0F)/;
    /*!
     * SplitText: 3.9.1
     * https://greensock.com
     *
     * @license Copyright 2008-2021, GreenSock. All rights reserved.
     * Subject to the terms at https://greensock.com/standard-license or for
     * Club GreenSock members, the agreement issued with that membership.
     * @author: Jack Doyle, jack@greensock.com
     */
    var cu, fu, pu, du, gu = /(?:\r|\n|\t\t)/g,
        Du = /(?:\s\s+)/g,
        mu = function(t) {
            return fu.getComputedStyle(t)
        },
        vu = Array.isArray,
        _u = [].slice,
        yu = function(t, e) {
            var n;
            return vu(t) ? t : "string" == (n = typeof t) && !e && t ? _u.call(cu.querySelectorAll(t), 0) : t && "object" === n && "length" in t ? _u.call(t, 0) : t ? [t] : []
        },
        xu = function(t) {
            return "absolute" === t.position || !0 === t.absolute
        },
        wu = function(t, e) {
            for (var n, r = e.length; --r > -1;)
                if (n = e[r], t.substr(0, n.length) === n) return n.length
        },
        Cu = function(t, e) {
            void 0 === t && (t = "");
            var n = ~t.indexOf("++"),
                r = 1;
            return n && (t = t.split("++").join("")),
                function() {
                    return "<" + e + " style='position:relative;display:inline-block;'" + (t ? " class='" + t + (n ? r++ : "") + "'>" : ">")
                }
        },
        Fu = function t(e, n, r) {
            var i = e.nodeType;
            if (1 === i || 9 === i || 11 === i)
                for (e = e.firstChild; e; e = e.nextSibling) t(e, n, r);
            else 3 !== i && 4 !== i || (e.nodeValue = e.nodeValue.split(n).join(r))
        },
        Eu = function(t, e) {
            for (var n = e.length; --n > -1;) t.push(e[n])
        },
        bu = function(t, e, n) {
            for (var r; t && t !== e;) {
                if (r = t._next || t.nextSibling) return r.textContent.charAt(0) === n;
                t = t.parentNode || t._parent
            }
        },
        Tu = function t(e) {
            var n, r, i = yu(e.childNodes),
                o = i.length;
            for (n = 0; n < o; n++)(r = i[n])._isSplit ? t(r) : n && r.previousSibling && 3 === r.previousSibling.nodeType ? (r.previousSibling.nodeValue += 3 === r.nodeType ? r.nodeValue : r.firstChild.nodeValue, e.removeChild(r)) : 3 !== r.nodeType && (e.insertBefore(r.firstChild, r), e.removeChild(r))
        },
        Mu = function(t, e) {
            return parseFloat(e[t]) || 0
        },
        Au = function(t, e, n, r, i, o, s) {
            var a, u, l, h, c, f, p, d, g, D, m, v, _ = mu(t),
                y = Mu("paddingLeft", _),
                x = -999,
                w = Mu("borderBottomWidth", _) + Mu("borderTopWidth", _),
                C = Mu("borderLeftWidth", _) + Mu("borderRightWidth", _),
                F = Mu("paddingTop", _) + Mu("paddingBottom", _),
                E = Mu("paddingLeft", _) + Mu("paddingRight", _),
                b = Mu("fontSize", _) * (e.lineThreshold || .2),
                T = _.textAlign,
                M = [],
                A = [],
                P = [],
                S = e.wordDelimiter || " ",
                O = e.tag ? e.tag : e.span ? "span" : "div",
                k = e.type || e.split || "chars,words,lines",
                B = i && ~k.indexOf("lines") ? [] : null,
                L = ~k.indexOf("words"),
                N = ~k.indexOf("chars"),
                R = xu(e),
                X = e.linesClass,
                Y = ~(X || "").indexOf("++"),
                I = [],
                z = "flex" === _.display,
                H = t.style.display;
            for (Y && (X = X.split("++").join("")), z && (t.style.display = "block"), l = (u = t.getElementsByTagName("*")).length, c = [], a = 0; a < l; a++) c[a] = u[a];
            if (B || R)
                for (a = 0; a < l; a++)((f = (h = c[a]).parentNode === t) || R || N && !L) && (v = h.offsetTop, B && f && Math.abs(v - x) > b && ("BR" !== h.nodeName || 0 === a) && (p = [], B.push(p), x = v), R && (h._x = h.offsetLeft, h._y = v, h._w = h.offsetWidth, h._h = h.offsetHeight), B && ((h._isSplit && f || !N && f || L && f || !L && h.parentNode.parentNode === t && !h.parentNode._isSplit) && (p.push(h), h._x -= y, bu(h, t, S) && (h._wordEnd = !0)), "BR" === h.nodeName && (h.nextSibling && "BR" === h.nextSibling.nodeName || 0 === a) && B.push([])));
            for (a = 0; a < l; a++)
                if (f = (h = c[a]).parentNode === t, "BR" !== h.nodeName)
                    if (R && (g = h.style, L || f || (h._x += h.parentNode._x, h._y += h.parentNode._y), g.left = h._x + "px", g.top = h._y + "px", g.position = "absolute", g.display = "block", g.width = h._w + 1 + "px", g.height = h._h + "px"), !L && N)
                        if (h._isSplit)
                            for (h._next = u = h.nextSibling, h.parentNode.appendChild(h); u && 3 === u.nodeType && " " === u.textContent;) h._next = u.nextSibling, h.parentNode.appendChild(u), u = u.nextSibling;
                        else h.parentNode._isSplit ? (h._parent = h.parentNode, !h.previousSibling && h.firstChild && (h.firstChild._isFirst = !0), h.nextSibling && " " === h.nextSibling.textContent && !h.nextSibling.nextSibling && I.push(h.nextSibling), h._next = h.nextSibling && h.nextSibling._isFirst ? null : h.nextSibling, h.parentNode.removeChild(h), c.splice(a--, 1), l--) : f || (v = !h.nextSibling && bu(h.parentNode, t, S), h.parentNode._parent && h.parentNode._parent.appendChild(h), v && h.parentNode.appendChild(cu.createTextNode(" ")), "span" === O && (h.style.display = "inline"), M.push(h));
            else h.parentNode._isSplit && !h._isSplit && "" !== h.innerHTML ? A.push(h) : N && !h._isSplit && ("span" === O && (h.style.display = "inline"), M.push(h));
            else B || R ? (h.parentNode && h.parentNode.removeChild(h), c.splice(a--, 1), l--) : L || t.appendChild(h);
            for (a = I.length; --a > -1;) I[a].parentNode.removeChild(I[a]);
            if (B) {
                for (R && (D = cu.createElement(O), t.appendChild(D), m = D.offsetWidth + "px", v = D.offsetParent === t ? 0 : t.offsetLeft, t.removeChild(D)), g = t.style.cssText, t.style.cssText = "display:none;"; t.firstChild;) t.removeChild(t.firstChild);
                for (d = " " === S && (!R || !L && !N), a = 0; a < B.length; a++) {
                    for (p = B[a], (D = cu.createElement(O)).style.cssText = "display:block;text-align:" + T + ";position:" + (R ? "absolute;" : "relative;"), X && (D.className = X + (Y ? a + 1 : "")), P.push(D), l = p.length, u = 0; u < l; u++) "BR" !== p[u].nodeName && (h = p[u], D.appendChild(h), d && h._wordEnd && D.appendChild(cu.createTextNode(" ")), R && (0 === u && (D.style.top = h._y + "px", D.style.left = y + v + "px"), h.style.top = "0px", v && (h.style.left = h._x - v + "px")));
                    0 === l ? D.innerHTML = "&nbsp;" : L || N || (Tu(D), Fu(D, String.fromCharCode(160), " ")), R && (D.style.width = m, D.style.height = h._h + "px"), t.appendChild(D)
                }
                t.style.cssText = g
            }
            R && (s > t.clientHeight && (t.style.height = s - F + "px", t.clientHeight < s && (t.style.height = s + w + "px")), o > t.clientWidth && (t.style.width = o - E + "px", t.clientWidth < o && (t.style.width = o + C + "px"))), z && (H ? t.style.display = H : t.style.removeProperty("display")), Eu(n, M), L && Eu(r, A), Eu(i, P)
        },
        Pu = function(t, e, n, r) {
            var i, o, s, a, u, l, h, c, f = e.tag ? e.tag : e.span ? "span" : "div",
                p = ~(e.type || e.split || "chars,words,lines").indexOf("chars"),
                d = xu(e),
                g = e.wordDelimiter || " ",
                D = " " !== g ? "" : d ? "&#173; " : " ",
                m = "</" + f + ">",
                v = 1,
                _ = e.specialChars ? "function" == typeof e.specialChars ? e.specialChars : wu : null,
                y = cu.createElement("div"),
                x = t.parentNode;
            for (x.insertBefore(y, t), y.textContent = t.nodeValue, x.removeChild(t), h = -1 !== (i = function t(e) {
                    var n = e.nodeType,
                        r = "";
                    if (1 === n || 9 === n || 11 === n) {
                        if ("string" == typeof e.textContent) return e.textContent;
                        for (e = e.firstChild; e; e = e.nextSibling) r += t(e)
                    } else if (3 === n || 4 === n) return e.nodeValue;
                    return r
                }(t = y)).indexOf("<"), !1 !== e.reduceWhiteSpace && (i = i.replace(Du, " ").replace(gu, "")), h && (i = i.split("<").join("{{LT}}")), u = i.length, o = (" " === i.charAt(0) ? D : "") + n(), s = 0; s < u; s++)
                if (l = i.charAt(s), _ && (c = _(i.substr(s), e.specialChars))) l = i.substr(s, c || 1), o += p && " " !== l ? r() + l + "</" + f + ">" : l, s += c - 1;
                else if (l === g && i.charAt(s - 1) !== g && s) {
                for (o += v ? m : "", v = 0; i.charAt(s + 1) === g;) o += D, s++;
                s === u - 1 ? o += D : ")" !== i.charAt(s + 1) && (o += D + n(), v = 1)
            } else "{" === l && "{{LT}}" === i.substr(s, 6) ? (o += p ? r() + "{{LT}}</" + f + ">" : "{{LT}}", s += 5) : l.charCodeAt(0) >= 55296 && l.charCodeAt(0) <= 56319 || i.charCodeAt(s + 1) >= 65024 && i.charCodeAt(s + 1) <= 65039 ? (a = ((i.substr(s, 12).split(hu) || [])[1] || "").length || 2, o += p && " " !== l ? r() + i.substr(s, a) + "</" + f + ">" : i.substr(s, a), s += a - 1) : o += p && " " !== l ? r() + l + "</" + f + ">" : l;
            t.outerHTML = o + (v ? m : ""), h && Fu(x, "{{LT}}", "<")
        },
        Su = function t(e, n, r, i) {
            var o, s, a = yu(e.childNodes),
                u = a.length,
                l = xu(n);
            if (3 !== e.nodeType || u > 1) {
                for (n.absolute = !1, o = 0; o < u; o++)(s = a[o])._next = s._isFirst = s._parent = s._wordEnd = null, (3 !== s.nodeType || /\S+/.test(s.nodeValue)) && (l && 3 !== s.nodeType && "inline" === mu(s).display && (s.style.display = "inline-block", s.style.position = "relative"), s._isSplit = !0, t(s, n, r, i));
                return n.absolute = l, void(e._isSplit = !0)
            }
            Pu(e, n, r, i)
        },
        Ou = function() {
            function t(t, e) {
                pu || (cu = document, fu = window, pu = 1), this.elements = yu(t), this.chars = [], this.words = [], this.lines = [], this._originals = [], this.vars = e || {}, this.split(e)
            }
            var e = t.prototype;
            return e.split = function(t) {
                this.isSplit && this.revert(), this.vars = t = t || this.vars, this._originals.length = this.chars.length = this.words.length = this.lines.length = 0;
                for (var e, n, r, i = this.elements.length, o = t.tag ? t.tag : t.span ? "span" : "div", s = Cu(t.wordsClass, o), a = Cu(t.charsClass, o); --i > -1;) r = this.elements[i], this._originals[i] = r.innerHTML, e = r.clientHeight, n = r.clientWidth, Su(r, t, s, a), Au(r, t, this.chars, this.words, this.lines, n, e);
                return this.chars.reverse(), this.words.reverse(), this.lines.reverse(), this.isSplit = !0, this
            }, e.revert = function() {
                var t = this._originals;
                if (!t) throw "revert() call wasn't scoped properly.";
                return this.elements.forEach((function(e, n) {
                    return e.innerHTML = t[n]
                })), this.chars = [], this.words = [], this.lines = [], this.isSplit = !1, this
            }, t.create = function(e, n) {
                return new t(e, n)
            }, t
        }();
    Ou.version = "3.9.1", vr.registerPlugin(Xe, _r, Me, Me, Fr, vi, Mi, Ki, Bo, Zo, dr, Da, lu);
    var ku = du = window.punchgs = window.tpGS = {};
    for (var Bu in ku.gsap = vr, ku.TweenLite = Xe, ku.TweenMax = _r, ku.TimelineLite = Me, ku.TimelineMax = Me, ku.CustomBounce = Fr, ku.CustomEase = vi, ku.CustomWiggle = Mi, ku.DrawSVGPlugin = Ki, ku.MotionPathPlugin = Bo, ku.ScrollToPlugin = Zo, ku.CSSPlugin = dr, ku.draggable = Da, ku.inertia = lu,
            /*! Map SplitText to tpGS TPGSSPLITTEXT */
            ku.SplitText = Ou, ku.RAD2DEG = 180 / Math.PI, ku.DEG2RAD = Math.PI / 180,
            /*! REGISTER MOTION PATH (BEZIER) */
            ku.gsap.registerPlugin(ku.MotionPathPlugin), ku.gsap.config({
                nullTargetWarn: !1
            }),
            /*!FallBack for old and new Eases*/
            ku.eases = ku.gsap.parseEase(), ku.eases) ku.eases.hasOwnProperty(Bu) && void 0 === ku[Bu] && (ku[Bu] = ku.eases[Bu])
    /*! FallBack for Essential Grid */
    ;
    void 0 !== du && void 0 !== du.TweenLite && void 0 === du.TweenLite.lagSmoothing && (du.TweenLite.lagSmoothing = function() {});
    var Lu = [];

    function Nu(t, e, n) {
        var r = document.createElement("canvas"),
            i = r.getContext("2d");
        if (r.width = 100, r.height = 200, 0 === t.length) i.fillStyle = n;
        else {
            for (var o = i.createLinearGradient(0, 0, 100, 0), s = 0; s < t.length; s++) o.addColorStop(t[s].stop / 100, t[s].color);
            i.fillStyle = o
        }
        i.fillRect(0, 0, 100, 200);
        var a = i.getImageData(0, 0, 100, 2).data,
            u = "";
        for (s = 0; s < e.length; s++) {
            var l = Math.ceil(e[s]),
                h = 4 * (0 !== l ? l - 1 : l);
            u += "rgba(" + a[h] + "," + a[h + 1] + "," + a[h + 2] + "," + a[h + 3] / 255 + ")", u += " " + l + (e.length - 1 === s ? "%" : "%,")
        }
        return r.remove(), u
    }

    function Ru(t, e, n, r) {
        for (var i = "", o = ku.gsap.utils.mapRange(0, r.length - 1, 0, t.length - 1), s = 0; s < r.length; s++) {
            var a = Math.round(o(s));
            i += t[a].color, i += " " + t[a].stop + (r.length - 1 === s ? "%" : "%,")
        }
        return i
    }

    function Xu(t) {
        var e = /rgb([\s\S]*?)%/g,
            n = [],
            r = [],
            i = [];
        do {
            (s = e.exec(t)) && n.push(s[0])
        } while (s);
        for (var o = 0; o < n.length; o++) {
            var s = n[o],
                a = (t = /rgb([\s\S]*?)\)/.exec(s), /\)([\s\S]*?)%/.exec(s));
            t[0] && (t = t[0]), a[1] && (a = a[1]), i.push(parseFloat(a)), r.push({
                color: t,
                stop: parseFloat(a)
            })
        }
        return 0 === r.length && (r.push({
            color: t,
            stop: 0
        }), i.push(0), r.push({
            color: t,
            stop: 100
        }), i.push(100)), {
            points: r,
            stops: i
        }
    }
    ku.getSSGColors = function(t, e, n) {
        if (n = void 0 === n ? "fading" : n, -1 === t.indexOf("gradient") && -1 === e.indexOf("gradient")) return {
            from: t,
            to: e
        };
        for (var r = {
                from: t,
                to: e
            }, i = 0; i < Lu.length; i++) {
            if (Lu[i].from === t && Lu[i].to === e && Lu[i].type === n) return {
                from: Lu[i].rFrom,
                to: Lu[i].rTo
            };
            if (Lu[i].from === e && Lu[i].to === t && Lu[i].type === n) return {
                from: Lu[i].rTo,
                to: Lu[i].rFrom
            }
        }
        var o = Xu(t),
            s = Xu(e);
        if (o.stops.length === s.stops.length && -1 !== t.indexOf("gradient") && -1 !== e.indexOf("gradient")) return {
            from: t,
            to: e
        };
        var a, u, l = o.stops;
        for (i = 0; i < s.stops.length; i++) - 1 === l.indexOf(s.stops[i]) && l.push(s.stops[i]);
        if (l.sort((function(t, e) {
                return t - e
            })), -1 !== t.indexOf("gradient(")) {
            var h = -1 !== t.indexOf("deg,") ? t.indexOf("deg,") + 4 : -1 !== t.indexOf("at center,") ? t.indexOf("at center,") + 10 : t.indexOf("gradient(") + 9;
            a = t.substring(0, h), -1 === e.indexOf("gradient(") && (u = t.substring(0, h))
        }
        if (-1 !== e.indexOf("gradient(")) {
            h = -1 !== e.indexOf("deg,") ? e.indexOf("deg,") + 4 : -1 !== e.indexOf("at center,") ? e.indexOf("at center,") + 10 : e.indexOf("gradient(") + 9;
            u = e.substring(0, h), -1 === t.indexOf("gradient(") && (a = e.substring(0, h))
        }
        return "fading" === n ? (o.stops.length, s.stops.length, a += Nu(o.points, l, t), u += Nu(s.points, l, e)) : "sliding" === n && (o.stops.length > s.stops.length ? u += Ru(s.points, l, e, o.points) : a += Ru(o.points, l, t, s.points)), a += ")", u += ")", "sliding" === n && (o.stops.length > s.stops.length ? a = t : u = e), r.rFrom = a, r.rTo = u, r.tyep = n, Lu.push(r), {
            from: a,
            to: u
        }
    }
}]);
window.RS_MODULES = window.RS_MODULES || {};
window.RS_MODULES.tpGS = {
    loaded: !0,
    version: "6.6.1"
};
if (window.RS_MODULES.checkMinimal) window.RS_MODULES.checkMinimal();
/*!

  - Slider Revolution JavaScript Plugin -

..........................xXXXXX.................
................. xXXXXX..xXXXXX..xXXXXX.........
..................xXXXXX..xXXXXX..xXXXXX.........
..........xXXXXX..xXXXXX..xXXXXX..xXXXXX.........
..........xXXXXX..xXXXXX..xXXXXX..xXXXXX.........
..........xXXXXX..xXXXXX..xXXXXX..xXXXXX.........
..........xXXXXX..xXXXXX..xXXXXX..xXXXXX.........
..........xXXXXX..xXXXXX..xXXXXX..xXXXXX.........
.........,xXXXXX..xXXXXX..xXXXXX..xXXXXX.........
.........,xXXXXX..xXXXXX..xXXXXX..xXXXXX.........
.........,xXXXXX..xXXXXX..xXXXXX..xXXXXX.........
..........xXXXXX..xXXXXX..xXXXXX..xXXXXX.........
.....................xxxxxxxxxxxxxxxxxxx.........
.....................xxxxxxxxxxxxxxxxxxx.........
.....................xxxxxxxxxxxxxxxxxxx.........

			   DATE: 2023-12-07
	@author: Krisztian Horvath, ThemePunch OHG.

INTRODUCING GIT
UPDATES AND DOCS AT:
https://www.themepunch.com/support-center

GET LICENSE AT:
https://www.themepunch.com/links/slider_revolution_wordpress_regular_license

LICENSE:
Copyright (c) 2009-2019, ThemePunch. All rights reserved.
This work is subject to the terms at https://www.themepunch.com/links/slider_revolution_wordpress_regular_license (Regular / Extended)

*/
! function(e, t) {
    "use strict";
    var i = "Slider Revolution 6.6.19";
    window.RSANYID = window.RSANYID === t ? [] : window.RSANYID, window.RSANYID_sliderID = window.RSANYID_sliderID === t ? [] : window.RSANYID_sliderID, e.fn.revolution = e.fn.revolution || {};
    var a = e.fn.revolution;
    e.fn.revolutionInit = function(i) {
        return this.each((function() {
            a.ISM = a.ISM || a.is_mobile();
            for (var s = document.getElementsByClassName("rs-p-wp-fix"); s[0];) s[0].parentNode.removeChild(s[0]);
            this.id !== t ? (a[n] = {
                anyid: []
            }, this.id = a.revCheckIDS(n, this, !0)) : this.id = "rs_module_" + Math.round(1e7 * Math.random());
            var n = this.id,
                l = a.clone(i);
            a[n] = W(i), a[n].ignoreHeightChange = a.ISM && "fullscreen" === a[n].sliderLayout && a[n].ignoreHeightChange, a[n].option_export = l, a[n].anyid = [], a[n]._Lshortcuts = {}, a[n].computedStyle = {}, a[n].c = e(this), a[n].cpar = a[n].c.parent(), a[n].canvas = a[n].c.find("rs-slides"), a[n].caches = {
                calcResponsiveLayersList: [],
                contWidthManager: {},
                middleHeights: {}
            }, a[n].sbgs = {}, window.RSBrowser = window.RSBrowser === t ? a.get_browser() : window.RSBrowser, a.setIsIOS(), a.setIsChrome8889(), a.useBackdrop === t && a.checkBackdrop(), a[n].noDetach = a[n].BUG_ie_clipPath = "Edge" === window.RSBrowser || "IE" === window.RSBrowser, a.getByTag = r(), a[n].indexhelper = 0, a[n].fullScreenOffsetResult = 0, a[n].level = 0, a[n].rtl = e("body").hasClass("rtl") || "rtl" == document.dir, a[n]._L = a[n]._L === t ? {} : a[n]._L, a[n].emptyObject = "{}", a[n].dimensionReCheck = {}, a.globalListener === t && a.pageHandler(n), a[n].stopAfterLoops != t && a[n].stopAfterLoops > -1 ? a[n].looptogo = a[n].stopAfterLoops : a[n].looptogo = "disabled", window.T = a[n], a[n].BUG_safari_clipPath = "Safari" === a.get_browser() && a.get_browser_version() > "12", a[n].minHeight = "fullwidth" === a[n].sliderLayout || "carousel" === a[n].sliderType ? 0 : a[n].minHeight != t && "" !== a[n].minHeight ? parseInt(a[n].minHeight, 0) : 0, a[n].minHeight = a[n].minHeight === t ? 0 : a[n].minHeight, a[n].isEdge = "Edge" === a.get_browser(), o(n), a.updateVisibleArea(n), H(n), a.mesuredScrollBarDone || a.mesureScrollBar(), window.requestAnimationFrame((function() {
                if ("fullscreen" === a[n].sliderLayout) {
                    var e = a.getFullscreenOffsets(n);
                    0 !== e && a[n].cpar.height(a.getWinH(n) - e)
                }
                a[n].cpar[0].style.visibility = "visible"
            })), "hero" == a[n].sliderType && a[n].c.find("rs-slide").each((function(t) {
                t > 0 && e(this).remove()
            })), a[n].navigation.use = "hero" !== a[n].sliderType && ("carousel" == a[n].sliderType || a[n].navigation.keyboardNavigation || "on" == a[n].navigation.mouseScrollNavigation || "carousel" == a[n].navigation.mouseScrollNavigation || a[n].navigation.touch.touchenabled || a[n].navigation.arrows.enable || a[n].navigation.bullets.enable || a[n].navigation.thumbnails.enable || a[n].navigation.tabs.enable), a[n].c.find("rs-bgvideo").each((function() {
                "RS-BGVIDEO" !== this.tagName || this.id !== t && "" !== this.id || (this.id = "rs-bg-video-" + Math.round(1e6 * Math.random()))
            })), tpGS.force3D = "auto", !0 === a[n].modal.useAsModal && -1 === a.RS_prioList.indexOf(n) && (a.RS_toInit[n] = !1, a.RS_prioList.push(n)), a.RS_killedlist !== t && -1 !== a.RS_killedlist.indexOf(n) && (a.RS_toInit[n] = !1, a.RS_prioList.push(n)), !0 === a.RS_prioListFirstInit && !0 !== a[n].modal.useAsModal && -1 === a.RS_prioList.indexOf(n) && (a.RS_toInit[n] = !1, a.RS_prioList.push(n)), a.initNextRevslider(n)
        }))
    };
    a = window.RS_F;
    e.fn.extend({
        getRSJASONOptions: function(e) {
            console.log(JSON.stringify(a[e].option_export))
        },
        getRSVersion: function(e) {
            var t, i, a = window.SliderRevolutionVersion;
            if (!e) {
                for (var r in t = i = "---------------------------------------------------------\n", t += "    Currently Loaded Slider Revolution & SR Modules :\n" + i, a) a.hasOwnProperty(r) && (t += a[r].alias + ": " + a[r].ver + "\n");
                t += i
            }
            return e ? a : t
        },
        revremoveslide: function(t) {
            return this.each((function() {
                var i = this.id;
                if (!(t < 0 || t > a[i].slideamount) && a[i] && a[i].slides.length > 0 && (t > 0 || t <= a[i].slides.length)) {
                    var r = a.gA(a[i].slides[t], "key");
                    a[i].slideamount = a[i].slideamount - 1, a[i].realslideamount = a[i].realslideamount - 1, n("rs-bullet", r, i), n("rs-tab", r, i), n("rs-thumb", r, i), e(a[i].slides[t]).remove(), a[i].thumbs = s(a[i].thumbs, t), a.updateNavIndexes && a.updateNavIndexes(i), t <= a[i].pr_active_key && (a[i].pr_active_key = a[i].pr_active_key - 1)
                }
            }))
        },
        revaddcallback: function(e) {
            return this.each((function() {
                a[this.id] && (a[this.id].callBackArray === t && (a[this.id].callBackArray = []), a[this.id].callBackArray.push(e))
            }))
        },
        revgetparallaxproc: function() {
            if (a[this[0].id]) return a[this[0].id].scrollproc
        },
        revdebugmode: function() {},
        revscroll: function(t) {
            return this.each((function() {
                var i = e(this);
                e("body,html").animate({
                    scrollTop: i.offset().top + i.height() - t + "px"
                }, {
                    duration: 400
                })
            }))
        },
        revredraw: function() {
            return this.each((function() {
                v(this.id, t, !0)
            }))
        },
        revGoToFrame: function(i) {
            if (i.layerid != t && i.frame != t && this != t && null != this && (i.moduleid = this[0].id, i.targetlayer = e("#" + i.layerid), i.targetlayer != t && 0 != i.targetlayer.length)) {
                var r = {
                    layer: i.targetlayer,
                    frame: i.frame,
                    mode: "trigger",
                    id: i.moduleid
                };
                !0 === i.children && (r.updateChildren = !0, r.fastforward = !0), a.renderLayerAnimation && a.renderLayerAnimation(r)
            }
        },
        revkill: function() {
            return this.each((function() {
                if (this != t && null != this) {
                    var i = this.id;
                    a[i].c.data("conthover", 1), a[i].c.data("conthoverchanged", 1), a[i].c.trigger("revolution.slide.onpause"), a[i].tonpause = !0, a[i].c.trigger("stoptimer"), a[i].sliderisrunning = !1;
                    var r = "updateContainerSizes." + a[i].c.attr("id");
                    a.window.off(r), tpGS.gsap.killTweensOf(a[i].c.find("*"), !1), tpGS.gsap.killTweensOf(a[i].c, !1), a[i].c.off("hover, mouseover, mouseenter,mouseleave, resize"), a[i].c.find("*").each((function() {
                        var i = e(this);
                        i.off("on, hover, mouseenter,mouseleave,mouseover, resize,restarttimer, stoptimer"), i.data("mySplitText", null), i.data("ctl", null), i.data("tween") != t && i.data("tween").kill(), i.data("pztl") != t && i.data("pztl").kill(), i.data("timeline_out") != t && i.data("timeline_out").kill(), i.data("timeline") != t && i.data("timeline").kill(), i.remove(), i.empty(), i = null
                    })), tpGS.gsap.killTweensOf(a[i].c.find("*"), !1), tpGS.gsap.killTweensOf(a[i].c, !1), a[i].progressC.remove();
                    try {
                        a[i].c.closest(".rev_slider_wrapper").detach()
                    } catch (e) {}
                    try {
                        a[i].c.closest("rs-fullwidth-wrap").remove()
                    } catch (e) {}
                    try {
                        a[i].c.closest("rs-module-wrap").remove()
                    } catch (e) {}
                    try {
                        a[i].c.remove()
                    } catch (e) {}
                    a[i].cpar.detach(), a[i].c.html(""), a[i].c = null, window[a[i].revapi] = t, delete a[i], delete a.RS_swapList[i], delete a.slidersToScroll[i], delete a.RS_toInit[i], a.nextSlider == i && delete a.nextSlider, a.RS_prioList.splice(a.RS_prioList.indexOf(i), 1), a.RS_killedlist = a.RS_killedlist === t ? [] : a.RS_killedlist, -1 === a.RS_killedlist.indexOf(i) && a.RS_killedlist.push(i)
                }
            }))
        },
        revpause: function() {
            return this.each((function() {
                var i = e(this);
                i != t && i.length > 0 && e("body").find("#" + i.attr("id")).length > 0 && (i.data("conthover", 1), i.data("conthoverchanged", 1), i.trigger("revolution.slide.onpause"), a[this.id].tonpause = !0, i.trigger("stoptimer"))
            }))
        },
        revresume: function() {
            return this.each((function() {
                if (a[this.id] !== t) {
                    var i = e(this);
                    i.data("conthover", 0), i.data("conthoverchanged", 1), i.trigger("revolution.slide.onresume"), a[this.id].tonpause = !1, i.trigger("starttimer")
                }
            }))
        },
        revmodal: function(i) {
            var r = this instanceof e ? this[0] : this,
                o = r.id;
            a[r.id] !== t && a.revModal(o, i)
        },
        revstart: function() {
            var i = this instanceof e ? this[0] : this;
            return a[i.id] === t ? (console.log("Slider is Not Existing"), !1) : a[i.id].sliderisrunning || !0 === a[i.id].initEnded ? (console.log("Slider Is Running Already"), !1) : (a[i.id].c = e(i), a[i.id].canvas = a[i.id].c.find("rs-slides"), h(i.id), !0)
        },
        revnext: function() {
            return this.each((function() {
                a[this.id] !== t && a.callingNewSlide(this.id, 1, "carousel" === a[this.id].sliderType)
            }))
        },
        revprev: function() {
            return this.each((function() {
                a[this.id] !== t && a.callingNewSlide(this.id, -1, "carousel" === a[this.id].sliderType)
            }))
        },
        revmaxslide: function() {
            return e(this).find("rs-slide").length
        },
        revcurrentslide: function() {
            if (a[e(this)[0].id] !== t) return parseInt(a[e(this)[0].id].pr_active_key, 0) + 1
        },
        revlastslide: function() {
            return e(this).find("rs-slide").length
        },
        revshowslide: function(e) {
            return this.each((function() {
                a[this.id] !== t && e !== t && a.callingNewSlide(this.id, "to" + (e - 1))
            }))
        },
        revcallslidewithid: function(e) {
            return this.each((function() {
                a[this.id] !== t && a.callingNewSlide(this.id, e, "carousel" === a[this.id].sliderType)
            }))
        }
    }), a = e.fn.revolution, e.extend(!0, a, {
        isNumeric: function(e) {
            return !isNaN(parseFloat(e)) && isFinite(e)
        },
        trim: function(e) {
            return e !== t && null !== e && "string" == typeof e ? e.trim() : e
        },
        setCookie: function(e, t, i) {
            var a = new Date;
            a.setTime(a.getTime() + 60 * i * 60 * 1e3);
            var r = "expires=" + a.toUTCString();
            document.cookie = e + "=" + t + ";" + r + ";path=/"
        },
        getCookie: function(e) {
            for (var t = e + "=", i = document.cookie.split(";"), a = 0; a < i.length; a++) {
                for (var r = i[a];
                    " " == r.charAt(0);) r = r.substring(1);
                if (0 == r.indexOf(t)) return decodeURIComponent(r.substring(t.length, r.length))
            }
            return ""
        },
        mesureScrollBar: function() {
            a.mesuredScrollBarDone = !0, requestAnimationFrame((function() {
                var e = document.createElement("div");
                e.className = "RSscrollbar-measure", document.body.appendChild(e), a.mesuredScrollbarWidth = e.offsetWidth - e.clientWidth, document.body.removeChild(e)
            }))
        },
        mobileTimedHeightCheck: function() {
            requestAnimationFrame((function() {
                a.mobileTimedHeightCheck()
            })), a.mobileHeights.now = Date.now(), a.mobileHeights.elapsed = a.mobileHeights.now - a.mobileHeights.then, a.mobileHeights.elapsed > a.mobileHeights.fpsInterval && (a.mobileHeights.then = a.mobileHeights.now - a.mobileHeights.elapsed % a.mobileHeights.fpsInterval, a.getWindowDimension())
        },
        pageHandler: function(i) {
            a.globalListener = !0, a.window = e(window), a.document = e(document), a.RS_toInit = {}, a.RS_prioList = [], a.RS_swapping = [], a.RS_swapList = {}, window.isSafari11 === t && (window.isSafari11 = a.isSafari11(), document.body.classList.add("rs-safari")), a.ISM ? (window.addEventListener("orientationchange", (function() {
                a.getWindowDimension(!1, !0), setTimeout((function() {
                    a.getWindowDimension(!0, !0)
                }), 400)
            })), window.addEventListener("resize", a.getWindowDimension), tpGS.gsap.delayedCall(3, (function() {
                window.removeEventListener("resize", a.getWindowDimension)
            })), a.mobileHeights = {
                fpsInterval: 500,
                then: Date.now()
            }, a[i].ignoreHeightChange || a.mobileHeights.checking || (a.mobileHeights.checking = !0, a.mobileTimedHeightCheck())) : window.addEventListener("resize", a.getWindowDimension), a.getWindowDimension(!1), a.stickySupported = !1, "IE" !== window.RSBrowser && (a.stickySupported = !0), a.checkParrentOverflows(i);
            var r = a.getByTag(document, "RS-MODULE");
            for (var o in r) r.hasOwnProperty(o) && (a.RS_toInit[r[o].id] = !1, a.RS_prioList.push(r[o].id));
            a.nextSlider = i, a.RS_prioListFirstInit = !0, a.document.one("click", (function() {
                a.clickedOnce = !0
            })), document.addEventListener("visibilitychange", B), a.hasNavClickListener === t && (a.document.on(a.is_mobile() ? "touchstart" : "mouseenter", ".tparrows, .tp-bullets, .tp-bullet, .tp-tab, .tp-thumb, .tp-thumbs, .tp-tabs, .tp-rightarrow, .tp-leftarrow", (function(e) {
                this.classList.add("rs-touchhover")
            })), a.document.on(a.is_mobile() ? "touchend" : "mouseleave", ".tparrows, .tp-bullets, .tp-bullet, .tp-tab, .tp-thumb, .tp-tabs,  .tp-rightarrow, .tp-leftarrow", (function(e) {
                var t = this;
                requestAnimationFrame((function() {
                    t.classList.remove("rs-touchhover")
                }))
            })), a.hasNavClickListener = !0)
        },
        destroyCanvas: function(e) {
            e && (e.width = e.height = 0, e.remove(), e = null)
        },
        checkParrentOverflows: function(e) {
            window.requestAnimationFrame((function() {
                for (var t = a[e].cpar[0]; t.parentNode && !1 !== a.stickySupported;) {
                    if ("RS-MODULE-WRAP" !== t.tagName && "RS-FULLWIDTH-WRAP" !== t.tagName && "RS-MODULE-WRAP" !== t.tagName && -1 === t.className.indexOf("wp-block-themepunch-revslider")) {
                        var i = window.getComputedStyle(t);
                        a.stickySupported = "hidden" !== i.overflow && "hidden" !== i.overflowX && "hidden" !== i.overflowY
                    }
                    t = t.parentNode
                }
            }))
        },
        observeRemoved: function(e) {
            new MutationObserver((function(t) {
                try {
                    document.body.contains(t[0].target) || a[e].c.revkill()
                } catch (t) {}
            })).observe(a[e].cpar[0], {
                childList: !0
            })
        },
        initNextRevslider: function(e) {
            a.RS_prioList[0] === e && !1 === a.RS_toInit[e] ? (a.RS_toInit[e] = "waiting", c(e), setTimeout((function() {
                a.initNextRevslider(e)
            }), 19)) : a.RS_prioList[0] === e && "waiting" === a.RS_toInit[e] ? setTimeout((function() {
                a.initNextRevslider(e)
            }), 19) : a.RS_prioList[0] === e && !0 === a.RS_toInit[e] ? (a.RS_prioList.shift(), 0 !== a.RS_prioList.length && setTimeout((function() {
                a.initNextRevslider(e)
            }), 19)) : a.RS_prioList[0] !== e && !1 === a.RS_toInit[e] ? setTimeout((function() {
                a.initNextRevslider(e)
            }), 19) : 0 === a.RS_prioList.length && !0 === a.RS_toInit[e] && c(e)
        },
        scrollTicker: function(e) {
            1 != a.scrollTickerAdded && (a.slidersToScroll = [], a.scrollTickerAdded = !0, a.ISM ? (tpGS.gsap.ticker.fps(150), tpGS.gsap.ticker.add((function() {
                a.generalObserver()
            }))) : document.addEventListener("scroll", (function(e) {
                a.scrollRaF === t && (a.scrollRaF = requestAnimationFrame(a.generalObserver.bind(this, !0)))
            }), {
                passive: !0
            })), a.slidersToScroll.push(e), a.generalObserver(a.ISM)
        },
        generalObserver: function(e, i) {
            for (var r in a.scrollRaF && (a.scrollRaF = cancelAnimationFrame(a.scrollRaF)), a.lastwindowheight = a.lastwindowheight || a.winH, a.scrollY = window.scrollY, a.slidersToScroll) a.slidersToScroll.hasOwnProperty(r) && a.scrollHandling(a.slidersToScroll[r], e, t, i)
        },
        wrapObserver: {
            targets: [],
            init: function(e) {
                var t = 0,
                    i = 0,
                    r = o.bind(a.wrapObserver);

                function o() {
                    if (i++, requestAnimationFrame(r), !(i - t < 30)) {
                        t = i;
                        for (var o = 0; o < a.wrapObserver.targets.length; o++)
                            if (a.wrapObserver.targets.hasOwnProperty(o)) {
                                var s = a.wrapObserver.targets[o],
                                    n = s.elem.getBoundingClientRect();
                                s.lw === n.width && s.lh === n.height || 0 === n.width || (s.callback && (s.callback.pause(), s.callback.kill(), s.callback = null), s.callback = tpGS.gsap.to({}, {
                                    duration: .2,
                                    onComplete: e.bind(window, s.elem, s.id)
                                })), s.lw = n.width, s.lh = n.height
                            }
                    }
                }
                o()
            },
            observe: function(e, t) {
                if ("" !== (e = e.getBoundingClientRect ? e : e[0].getBoundingClientRect ? e[0] : "")) {
                    var i = e.getBoundingClientRect();
                    a.wrapObserver.targets.push({
                        elem: e,
                        id: t,
                        lw: i.width,
                        lh: i.height
                    })
                }
            }
        },
        enterViewPort: function(i, r) {
            !0 !== a[i].started ? (a[i].started = !0, a.lazyLoadAllSlides(i), a[i].c.trigger("revolution.slide.firstrun"), setTimeout((function() {
                R(i), "hero" !== a[i].sliderType && a.manageNavigation && a[i].navigation.use && !0 === a[i].navigation.createNavigationDone && a.manageNavigation(i), a[i].slideamount > 1 && A(i), setTimeout((function() {
                    a[i] !== t && (a[i].revolutionSlideOnLoaded = !0, a[i].c.trigger("revolution.slide.onloaded"), a.calcScrollToId())
                }), 50)
            }), a[i].startDelay), a[i].startDelay = 0, window.requestAnimationFrame((function() {
                m(i)
            }))) : (a[i].waitForCountDown && (A(i), a[i].waitForCountDown = !1), "playing" != a[i].sliderlaststatus && a[i].sliderlaststatus != t || a[i].c.trigger("starttimer"), a[i].lastplayedvideos != t && a[i].lastplayedvideos.length > 0 && e.each(a[i].lastplayedvideos, (function(e, t) {
                a.playVideo(t, i)
            })))
        },
        leaveViewPort: function(i) {
            a[i].sliderlaststatus = a[i].sliderstatus, a[i].c.trigger("stoptimer"), a[i].playingvideos != t && a[i].playingvideos.length > 0 && (a[i].lastplayedvideos = e.extend(!0, [], a[i].playingvideos), a[i].playingvideos && e.each(a[i].playingvideos, (function(e, t) {
                a[i].leaveViewPortBasedStop = !0, a.stopVideo && a.stopVideo(t, i)
            })))
        },
        scrollHandling: function(e, i, r, o) {
            if (a[e] !== t) {
                var s = a[e].topc !== t ? a[e].topc[0].getBoundingClientRect() : 0 === a[e].canv.height ? a[e].cpar[0].getBoundingClientRect() : a[e].c[0].getBoundingClientRect(),
                    n = a.ISM ? window.innerHeight : a.lastwindowheight;
                s.hheight = 0 === s.height ? 0 === a[e].canv.height ? a[e].module.height : a[e].canv.height : s.height, a[e].scrollproc = s.top < 0 || s.hheight > n && s.top < n ? s.top / s.hheight : s.bottom > n ? (s.bottom - n) / s.hheight : 0;
                var l = Math.max(0, 1 - Math.abs(a[e].scrollproc));
                a[e].viewPort.enable && ("%" === a[e].viewPort.vaType[a[e].level] && (a[e].viewPort.visible_area[a[e].level] <= l || l > 0 && l <= 1 && a[e].sbtimeline.fixed) || "px" === a[e].viewPort.vaType[a[e].level] && (s.top <= 0 && s.bottom >= a.lastwindowheight || s.top >= 0 && s.bottom <= a.lastwindowheight || s.top >= 0 && s.top < a.lastwindowheight - a[e].viewPort.visible_area[a[e].level] || s.bottom >= a[e].viewPort.visible_area[a[e].level] && s.bottom < a.lastwindowheight) ? a[e].inviewport || (a[e].inviewport = !0, a.enterViewPort(e, !0), a[e].c.trigger("enterviewport")) : a[e].inviewport && (a[e].inviewport = !1, a.leaveViewPort(e), a[e].c.trigger("leftviewport"))), a[e].inviewport ? (a.callBackHandling && a.callBackHandling(e, "parallax", "start"), requestAnimationFrame((function() {
                    "fullscreen" === a[e].sliderLayout && a.getFullscreenOffsets(e)
                })), a.parallaxProcesses(e, s, o, r), a.callBackHandling && a.callBackHandling(e, "parallax", "end")) : !0 !== a.stickySupported && !1 !== a[e].fixedScrollOnState && (a[e].topc.removeClass("rs-fixedscrollon"), tpGS.gsap.set(a[e].cpar, {
                    top: 0,
                    y: 0
                }), a[e].fixedScrollOnState = !1)
            }
        },
        clone: function(e, i) {
            if (i === t && e === t) return {};
            return function e(i, a) {
                var r = Array.isArray(i) ? [] : {};
                for (var o in i) i.hasOwnProperty(o) && (i[o] !== t && "object" == typeof i[o] && a ? r[o] = e(i[o], !0) : i[o] !== t && (r[o] = i[o]));
                return r
            }(e, i)
        },
        closest: function(e, t) {
            return e && (t(e) ? e : a.closest(e.parentNode, t))
        },
        closestNode: function(e, t) {
            return a.closest(e, (function(e) {
                return e.nodeName === t
            }))
        },
        closestClass: function(e, t) {
            return a.closest(e, (function(e) {
                return (" " + e.className + " ").indexOf(" " + t + " ") >= 0
            }))
        },
        getWinH: function(e) {
            return a[e].ignoreHeightChange ? a.mobileWinH : a.winH
        },
        getWindowDimension: function(e, i) {
            !1 === e ? (a.rAfScrollbar = "skip", a.winWAll = a.ISM && window.visualViewport ? document.documentElement.clientWidth : window.innerWidth, a.winWSbar = document.documentElement.clientWidth, a.ISM ? (a.zoom = i ? 1 : a.winWSbar / a.winWAll, a.winW = 1 !== a.zoom ? a.winWSbar * a.zoom : Math.min(a.winWAll, a.winWSbar), a.winH = 1 !== a.zoom ? window.innerHeight * a.zoom : window.innerHeight, i && window.visualViewport && (a.winH *= window.visualViewport.scale, a.winWAll *= window.visualViewport.scale), a.scrollBarWidth = 0) : (a.isModalOpen && a.openModalId !== t && a[a.openModalId] !== t && a[a.openModalId].canv.height > a.winH ? a.scrollBarWidth = a.mesuredScrollbarWidth : a.scrollBarWidth = a.winWAll - a.winWSbar, a.winW = Math.min(a.winWAll, a.winWSbar), a.winH = window.innerHeight), a.ISM && a.winH > 125 && (a.lastwindowheight !== t && Math.abs(a.lastwindowheight - a.winH) < 125 ? a.mobileWinH = a.lastwindowheight : a.mobileWinH = a.winH)) : clearTimeout(a.windowDimenstionDelay), a.windowDimenstionDelay = setTimeout((function() {
                a.rAfScrollbar = t, a.winWAll = a.ISM && window.visualViewport ? document.documentElement.clientWidth : window.innerWidth, a.winWSbar = document.documentElement.clientWidth, a.ISM ? (a.zoom = i ? 1 : a.winWSbar / a.winWAll, a.RS_px_ratio = window.devicePixelRatio || window.screen.availWidth / document.documentElement.clientWidth, a.winW = 1 !== a.zoom ? a.winWSbar * a.zoom : Math.min(a.winWAll, a.winWSbar), a.winH = 1 !== a.zoom ? window.innerHeight * a.zoom : window.innerHeight, i && window.visualViewport && (a.winH *= window.visualViewport.scale, a.winWAll *= window.visualViewport.scale), a.scrollBarWidth = 0, i && tpGS.gsap.delayedCall(.1, (function() {
                    a.getWindowDimension()
                }))) : (a.isModalOpen && a.openModalId !== t && a[a.openModalId] !== t && a[a.openModalId].canv.height > a.winH ? a.scrollBarWidth = a.mesuredScrollbarWidth : a.scrollBarWidth = a.winWAll - a.winWSbar, a.winW = Math.min(a.winWAll, a.winWSbar), a.winH = window.innerHeight), a.ISM && a.winH > 125 && (a.lastwindowheight !== t && Math.abs(a.lastwindowheight - a.winH) < 125 ? a.mobileWinH = a.lastwindowheight : a.mobileWinH = a.winH), !1 !== e && a.document.trigger("updateContainerSizes")
            }), 100)
        },
        aC: function(t, i) {
            t && (t.classList && t.classList.add ? t.classList.add("" + i) : e(t).addClass(i))
        },
        rC: function(t, i) {
            t && (t.classList && t.classList.remove ? t.classList.remove("" + i) : e(t).removeClass(i))
        },
        sA: function(e, t, i) {
            e && e.setAttribute && e.setAttribute("data-" + t, i)
        },
        gA: function(e, i, a) {
            return e === t ? t : e.hasAttribute && e.hasAttribute("data-" + i) && e.getAttribute("data-" + i) !== t && null !== e.getAttribute("data-" + i) ? e.getAttribute("data-" + i) : a !== t ? a : t
        },
        rA: function(e, t) {
            e && e.removeAttribute && e.removeAttribute("data-" + t)
        },
        iWA: function(e, i) {
            return a[e].justifyCarousel ? "static" === i ? a[e].carousel.wrapwidth : a[e].carousel.slide_widths[i !== t ? i : a[e].carousel.focused] : a[e].gridwidth[a[e].level]
        },
        iHE: function(e, t) {
            return a[e].useFullScreenHeight ? a[e].canv.height : Math.max(a[e].currentRowsHeight, a[e].gridheight[a[e].level])
        },
        updateFixedScrollTimes: function(e) {
            !0 === a[e].sbtimeline.set && !0 === a[e].sbtimeline.fixed && "auto" !== a[e].sliderLayout && (a[e].sbtimeline.rest = a[e].duration - a[e].sbtimeline.fixEnd, a[e].sbtimeline.time = a[e].duration - (a[e].sbtimeline.fixStart + a[e].sbtimeline.rest), a[e].sbtimeline.extended = a[e].sbtimeline.time / 10)
        },
        addSafariFix: function(e) {
            !0 === window.isSafari11 && !0 !== a[e].safari3dFix && (a[e].safari3dFix = !0, a[e].c[0].className += " safarifix")
        },
        openModalAPI: function(i, r, o, s, n, l) {
            if (window.RS_60_MODALS !== t && -1 != e.inArray(i, window.RS_60_MODALS) || window.RS_60_MODAL_API_CALLS !== t && -1 != e.inArray(i, window.RS_60_MODAL_API_CALLS)) e.inArray(i, window.RS_60_MODALS) >= 0 && e.fn.revolution.document.trigger("RS_OPENMODAL_" + i, r);
            else {
                window.RS_60_MODAL_API_CALLS = window.RS_60_MODAL_API_CALLS || [], window.RS_60_MODAL_API_CALLS.push(i), l === t && (l = {}), l.alias === t && (l.alias = i), s && a.showModalCover(n, l, "show"), o.indexOf("?") > 0 ? o += "&srengine=6" : o += "?srengine=6";
                var d = {
                    action: "revslider_ajax_call_front",
                    client_action: "get_slider_html",
                    alias: i,
                    usage: "modal"
                };
                e.ajax({
                    type: "post",
                    url: o,
                    dataType: "json",
                    data: d,
                    success: function(o, d, c) {
                        if (null !== o && 1 == o.success) {
                            var p;
                            if (n = n == t ? o.htmlid : n, o.waiting !== t)
                                for (p in o.waiting) - 1 == e.inArray(o.waiting[p], RS_MODULES.waiting) && (RS_MODULES.waiting.push(o.waiting[p]), window.RS_MODULES.minimal = !1);
                            if (o.toload !== t) {
                                var g = "";
                                for (p in RS_MODULES = RS_MODULES || {}, RS_MODULES.requestedScripts = [], o.toload) o.toload.hasOwnProperty(p) && (RS_MODULES != t && RS_MODULES[p] != t && !0 === RS_MODULES[p].loaded || -1 === e.inArray(p, RS_MODULES.requestedScripts) && (RS_MODULES.requestedScripts.push(p), g += o.toload[p]));
                                "" !== g && e("body").append(g)
                            }
                            RS_MODULES !== t && RS_MODULES.modules[o.htmlid] != t || e("body").append(o.data), s && a.showModalCover(n, l, "hide"), a[i] !== t && a[i].openModalApiListener ? e.fn.revolution.document.trigger("RS_OPENMODAL_" + i, r) : e(document).on("RS_MODALOPENLISTENER_" + i, (function(t) {
                                e.fn.revolution.document.trigger("RS_OPENMODAL_" + i, r)
                            }))
                        } else s && a.showModalCover(n, l, "hide")
                    },
                    error: function(e) {
                        s && a.showModalCover(n, l, "hide"), console.log("Modal Can not be Loaded"), console.log(e)
                    }
                })
            }
        },
        showModalCover: function(i, r, o) {
            switch (o) {
                case "show":
                    var s;
                    if (r.spin !== t && "off" !== r.spin && (s = a.buildSpinner(i, "spinner" + r.spin, r.spinc, "modalspinner")), r.bg !== t && !1 !== r.bg && "false" !== r.bg && "transparent" !== r.bg) {
                        var n = e('<rs-modal-cover data-alias="' + r.alias + '" data-rid="' + i + '" id="' + i + '_modal_bg" style="display:none;opacity:0;background:' + r.bg + '"></rs-modal-cover>');
                        e("body").append(n), r.speed = parseFloat(r.speed), r.speed = r.speed > 200 ? r.speed / 1e3 : r.speed, r.speed = Math.max(Math.min(3, r.speed), .3), tpGS.gsap.to(n, r.speed, {
                            display: "block",
                            opacity: 1,
                            ease: "power3.inOut"
                        }), a.isModalOpen = !0, s !== t && n.append(s)
                    } else s !== t && a[i].c.append(s);
                    break;
                case "hide":
                    (n = e('rs-modal-cover[data-alias="' + r.alias + '"] .modalspinner')) !== t && n.length > 0 ? n.remove() : i !== t && a[i].c.find(".modalspinner").remove()
            }
        },
        revModal: function(i, r) {
            if (i !== t && a[i] !== t && "clicked" !== a[i].modal.closeProtection) {
                if (!0 === a[i].modal.closeProtection) return a[i].modal.closeProtection, void setTimeout((function() {
                    a[i].modal.closeProtection = !1, a.revModal(i, r)
                }), 750);
                switch (a[i].modal.lastModalCall = r.mode, r.mode) {
                    case "show":
                        if (!0 === a[i].modal.isLive) return;
                        if (!0 === a.anyModalclosing) return;
                        a.document.trigger("RS_MODALOPENED"), a[i].modal.isLive = !0, r.slide = r.slide === t ? "to0" : r.slide, a[i].modal.bodyclass !== t && a[i].modal.bodyclass.length >= 0 && document.body.classList.add(a[i].modal.bodyclass), a[i].modal.bg.attr("data-rid", i), tpGS.gsap.to(a[i].modal.bg, a[i].modal.coverSpeed, {
                            display: "block",
                            opacity: 1,
                            ease: "power3.inOut"
                        }), tpGS.gsap.set(a[i].modal.c, {
                            display: "auto" === a[i].sliderLayout ? "inline-block" : "block",
                            opacity: 0
                        }), a[i].cpar.removeClass("hideallscrollbars"), tpGS.gsap.set(a[i].cpar, {
                            display: "block",
                            opacity: 1
                        });
                        var o = {
                            a: 0
                        };
                        a.isModalOpen = !0, a[i].clearModalBG = !0, "carousel" === a[i].sliderType && a[i].pr_active_bg !== t && a[i].pr_active_bg.length > 0 && tpGS.gsap.to(a[i].pr_active_bg, .5, {
                            opacity: 1
                        }), tpGS.gsap.fromTo(o, a[i].modal.coverSpeed / 5, {
                            a: 0
                        }, {
                            a: 10,
                            ease: "power3.inOut",
                            onComplete: function() {
                                if (a.openModalId = i, a[i].sliderisrunning) {
                                    if ("to0" !== r.slide && (a[i].startedWithOtherSlide = !0), "carousel" === a[i].sliderType && "all" === a[i].carousel.showLayersAllTime)
                                        for (var e = 0; e < a[i].slides.length; e++) {
                                            var t = a[i].slides[e].dataset.key;
                                            e !== r.slide && a[i].layers && a[i].layers[t] && 0 !== a[i].layers[t].length && a.animateTheLayers({
                                                slide: e,
                                                id: i,
                                                mode: "start"
                                            })
                                        }
                                    a.callingNewSlide(i, r.slide)
                                } else "to0" !== r.slide && (a[i].startWithSlideKey = r.slide), h(i)
                            }
                        }), setTimeout((function() {
                            tpGS.gsap.fromTo([a[i].modal.c], .01, {
                                opacity: 0
                            }, {
                                opacity: 1,
                                delay: a[i].modal.coverSpeed / 4,
                                ease: "power3.inOut",
                                onComplete: function() {}
                            }), window.overscrollhistory = document.body.style.overflow, a[i].modal.allowPageScroll || (document.body.style.overflow = "hidden"), "fullscreen" === a[i].sliderLayout && a.getWindowDimension()
                        }), 250), "fullscreen" !== a[i].sliderLayout && a.getWindowDimension();
                        break;
                    case "close":
                        if (!0 === a.anyModalclosing) return;
                        a.anyModalclosing = !0, a.openModalId = t, k(i), document.body.style.overflow = window.overscrollhistory, a[i].cpar.addClass("hideallscrollbars"), a[i].c.trigger("stoptimer"), a[i].modal.bodyclass !== t && a[i].modal.bodyclass.length >= 0 && document.body.classList.remove(a[i].modal.bodyclass), tpGS.gsap.to(a[i].modal.bg, a[i].modal.coverSpeed, {
                            display: "none",
                            opacity: 0,
                            ease: "power3.inOut"
                        }), tpGS.gsap.to(a[i].modal.c, a[i].modal.coverSpeed / 6.5, {
                            display: "none",
                            delay: a[i].modal.coverSpeed / 4,
                            opacity: 0,
                            onComplete: function() {
                                tpGS.gsap.set(a[i].cpar, {
                                    display: "none",
                                    opacity: 0
                                }), a.document.trigger("revolution.all.resize"), a.document.trigger("revolution.modal.close", [a[i].modal]), a.getWindowDimension(), a.isModalOpen = !1
                            }
                        }), a[i].modal.closeProtection = !0, clearTimeout(a[i].modal.closeTimer), a[i].modal.closeTimer = setTimeout((function() {
                            a.anyModalclosing = !1, a[i].modal.isLive = !1, a[i].modal.closeProtection = !1
                        }), Math.max(750, 1020 * a[i].modal.coverSpeed));
                        break;
                    case "init":
                        if (window.RS_60_MODALS = window.RS_60_MODALS === t ? [] : window.RS_60_MODALS, -1 === e.inArray(a[i].modal.alias, window.RS_60_MODALS) && window.RS_60_MODALS.push(a[i].modal.alias), a[i].modal.listener === t && (a[i].modal.c = e("#" + i + "_modal"), !1 !== a[i].modal.cover && "false" !== a[i].modal.cover || (a[i].modal.coverColor = "transparent"), a[i].modal.bg = e('rs-modal-cover[data-alias="' + a[i].modal.alias + '"]'), a[i].modal.bg === t || 0 === a[i].modal.bg.length ? (a[i].modal.bg = e('<rs-modal-cover style="display:none;opacity:0;background:' + a[i].modal.coverColor + '" data-rid="' + i + '" id="' + i + '_modal_bg"></rs-modal-cover>'), "auto" === a[i].sliderLayout && a[i].modal.cover ? e("body").append(a[i].modal.bg) : a[i].modal.c.append(a[i].modal.bg)) : a[i].modal.bg.attr("data-rid", i), a[i].modal.c[0].className += "rs-modal-" + a[i].sliderLayout, a[i].modal.calibration = {
                                left: "auto" === a[i].sliderLayout ? "center" === a[i].modal.horizontal ? "50%" : "left" === a[i].modal.horizontal ? "0px" : "auto" : "0px",
                                right: "auto" === a[i].sliderLayout && ("center" === a[i].modal.horizontal || "left" === a[i].modal.horizontal) ? "auto" : "0px",
                                top: "auto" === a[i].sliderLayout || "fullwidth" === a[i].sliderLayout ? "middle" === a[i].modal.vertical ? "50%" : "top" === a[i].modal.vertical ? "0px" : "auto" : "0px",
                                bottom: !("auto" !== a[i].sliderLayout && "fullwidth" !== a[i].sliderLayout || "middle" !== a[i].modal.vertical && "top" !== a[i].modal.vertical) ? "auto" : "0px",
                                y: ("auto" === a[i].sliderLayout || "fullwidth" === a[i].sliderLayout) && "middle" === a[i].modal.vertical ? "-50%" : 0,
                                x: "auto" === a[i].sliderLayout && "center" === a[i].modal.horizontal ? "-50%" : 0
                            }, "-50%" === a[i].modal.calibration.y && (a[i].modal.calibration.filter = "blur(0px)"), tpGS.gsap.set(a[i].modal.c, "auto" === a[i].sliderLayout || "fullscreen" === a[i].sliderLayout ? e.extend(!0, a[i].modal.calibration, {
                                opacity: 0,
                                display: "none"
                            }) : {
                                opacity: 0,
                                display: "none"
                            }), "fullwidth" === a[i].sliderLayout && tpGS.gsap.set(a[i].modal.c.find("rs-module-wrap"), a[i].modal.calibration), a.document.on("RS_OPENMODAL_" + a[i].modal.alias, (function(e, r) {
                                e !== t && e.detail !== t && e.detail.slide !== t && r == t && (r = e.detail.slide), a[i].initEnded = !0, a.revModal(i, {
                                    mode: "show",
                                    slide: r
                                })
                            })), a[a[i].modal.alias] = a[a[i].modal.alias] || {}, a[a[i].modal.alias].openModalApiListener = !0, a.document.trigger("RS_MODALOPENLISTENER_" + a[i].modal.alias), a.document.on("click", "rs-modal-cover", (function() {
                                a.revModal(a.gA(this, "rid"), {
                                    mode: "close"
                                })
                            })), a[i].modal.listener = !0, a[i].modal.trigger !== t)) {
                            var s, n = a[i].modal.trigger.split(";");
                            for (o in a[i].modal.trigger = {}, n)
                                if (n.hasOwnProperty(o)) switch ((s = n[o].split(":"))[0]) {
                                    case "t":
                                        a[i].modal.trigger.time = parseInt(s[1], 0);
                                        break;
                                    case "s":
                                        a[i].modal.trigger.scroll = s[1];
                                        break;
                                    case "so":
                                        a[i].modal.trigger.scrollo = parseInt(s[1], 0);
                                        break;
                                    case "e":
                                        a[i].modal.trigger.event = s[1];
                                        break;
                                    case "ha":
                                        a[i].modal.trigger.hash = s[1];
                                        break;
                                    case "co":
                                        a[i].modal.trigger.cookie = s[1]
                                }
                            var l = !0;
                            if (a[i].modal.trigger.cookie !== t ? l = "true" !== a.getCookie(a[i].modal.alias + "_modal_one_time") : "true" == a.getCookie(a[i].modal.alias + "_modal_one_time") && a.setCookie(a[i].modal.alias + "_modal_one_time", !1, 10), l && (a[i].modal.trigger.time !== t && 0 !== a[i].modal.trigger.time && (a[i].modal.trigger.cookie !== t && a.setCookie(a[i].modal.alias + "_modal_one_time", !0, a[i].modal.trigger.cookie), setTimeout((function() {
                                    a.document.trigger("RS_OPENMODAL_" + a[i].modal.alias)
                                }), a[i].modal.trigger.time)), a[i].modal.trigger.scrollo !== t || a[i].modal.trigger.scroll !== t)) {
                                a[i].modal.trigger.scroll !== t && e(a[i].modal.trigger.scroll)[0] !== t && (a[i].modal.trigger.scroll = e(a[i].modal.trigger.scroll)[0]);
                                var d = function() {
                                    if (a[i].modal.trigger.scroll !== t) var e = "string" == typeof a[i].modal.trigger.scroll ? document.getElementById(a[i].modal.trigger.scroll) : "object" == typeof a[i].modal.trigger.scroll ? a[i].modal.trigger.scroll : t,
                                        r = e !== t && null !== e ? a[i].modal.trigger.scroll.getBoundingClientRect() : t;
                                    (a[i].modal.trigger.scroll !== t && r !== t && Math.abs(r.top + (r.bottom - r.top) / 2 - a.getWinH(i) / 2) < 50 || a[i].modal.trigger.scrollo !== t && Math.abs(a[i].modal.trigger.scrollo - (a.scrollY !== t ? a.scrollY : window.scrollY)) < 100) && (a.document.trigger("RS_OPENMODAL_" + a[i].modal.alias), a[i].modal.trigger.cookie !== t && a.setCookie(a[i].modal.alias + "_modal_one_time", !0, a[i].modal.trigger.cookie), document.removeEventListener("scroll", d))
                                };
                                document.addEventListener("scroll", d, {
                                    id: i,
                                    passive: !0
                                })
                            }
                            a[i].modal.trigger.event !== t && a.document.on(a[i].modal.trigger.event, (function() {
                                a.document.trigger("RS_OPENMODAL_" + a[i].modal.alias)
                            })), "t" == a[i].modal.trigger.hash && window.location.hash.substring(1) == a[i].modal.alias && a.document.trigger("RS_OPENMODAL_" + a[i].modal.alias)
                        }
                }
            }
        },
        smartConvertDivs: function(e) {
            var t = "";
            if ("string" == typeof e && e.indexOf("#") >= 0) {
                var i = e.split(","),
                    a = i.length - 1;
                for (var r in i) t = "string" == typeof i[r] && "#" === i[r][0] ? t + i[r][1] / i[r][3] * 100 + "%" + (r < a ? "," : "") : t + i[r] + (r < a ? "," : "")
            } else t = e;
            return t
        },
        revToResp: function(e, i, a, r) {
            if ((e = e === t ? a : e) !== t) {
                if (r = r === t ? "," : r, "boolean" != typeof e && ("object" != typeof e || Array.isArray(e))) {
                    try {
                        e = e.replace(/[[\]]/g, "").replace(/\'/g, "").split(r)
                    } catch (e) {}
                    for (e = Array.isArray(e) ? e : [e]; e.length < i;) e[e.length] = e[e.length - 1]
                }
                return e
            }
        },
        loadImages: function(i, r, o, s) {
            if (i !== t && 0 !== i.length) {
                var n = [];
                if (Array.isArray(i))
                    for (var l in i) i.hasOwnProperty(l) && i[l] !== t && n.push(i[l]);
                else n.push(i);
                for (var d in n)
                    if (n.hasOwnProperty(d)) {
                        var c = n[d].querySelectorAll("img, rs-sbg, .rs-svg"),
                            p = a[r].lazyOnBg ? n[d].querySelectorAll("rs-bg-elem, rs-column, rs-layer") : [];
                        for (var l in c)
                            if (c.hasOwnProperty(l)) {
                                c[l] !== t && c[l].dataset !== t && c[l].dataset.src !== t && c[l].dataset.src.indexOf("dummy.png") >= 0 && c[l].src.indexOf("data") >= 0 && delete c[l].dataset.src, c[l] ? .dataset ? .srcRsRef && (c[l].dataset.srcRsRef = c[l].dataset.srcRsRef.replace("/revslider/public/assets/assets/svg/", "/revslider/public/assets/svg/")), c[l] ? .dataset ? .svg_src && (c[l].dataset.svg_src = c[l].dataset.svg_src.replace("/revslider/public/assets/assets/svg/", "/revslider/public/assets/svg/"));
                                var u = g(c[l], t, r),
                                    h = u !== t ? u : a.gA(c[l], "svg_src") != t ? a.gA(c[l], "svg_src") : c[l].src === t ? e(c[l]).data("src") : c[l].src,
                                    m = a.gA(c[l], "svg_src") != t ? "svg" : "img";
                                h !== t && a[r].loadqueue !== t && 0 == a[r].loadqueue.filter((function(e) {
                                    return e.src === h
                                })).length && a[r].loadqueue.push({
                                    src: h,
                                    img: c[l],
                                    index: l,
                                    starttoload: Date.now(),
                                    type: m || "img",
                                    prio: o,
                                    progress: c[l].complete && h === c[l].src ? "loaded" : "prepared",
                                    static: s,
                                    width: c[l].complete && h === c[l].src ? c[l].width : t,
                                    height: c[l].complete && h === c[l].src ? c[l].height : t
                                })
                            }
                        for (var l in p) p.hasOwnProperty(l) && p[l] !== t && p[l].dataset !== t && p[l].dataset.bglazy !== t && p[l].style.backgroundImage.indexOf("dummy.png") >= 0 && (p[l].style.backgroundImage = 'url("' + p[l].dataset.bglazy + '")');
                        p[l] !== t && p[l].dataset !== t && p[l].dataset.bglazy !== t && p[l].style.backgroundImage.indexOf("dummy.png") >= 0 && (p[l].style.backgroundImage = 'url("' + p[l].dataset.bglazy + '")')
                    }!a[r].cparBgChecked && a[r].cpar[0] !== t && a[r].cpar[0].dataset !== t && a[r].cpar[0].dataset.bglazy !== t && a[r].cpar[0].style.backgroundImage.indexOf("dummy.png") >= 0 && (a[r].cparBgChecked = !0, a[r].cpar[0].style.backgroundImage = 'url("' + a[r].cpar[0].dataset.bglazy + '")'), _(r)
            }
        },
        waitForCurrentImages: function(i, r, o) {
            if (i !== t && 0 !== i.length && a[r] !== t) {
                var s = !1,
                    n = [];
                if (Array.isArray(i))
                    for (var l in i) i.hasOwnProperty(l) && i[l] !== t && n.push(i[l]);
                else n.push(i);
                for (var d in n)
                    if (n.hasOwnProperty(d)) {
                        var c = n[d].querySelectorAll("img, rs-sbg, .rs-svg");
                        for (l in c)
                            if (c.hasOwnProperty(l) && "length" !== l && !(c[l].className.indexOf("rs-pzimg") >= 0)) {
                                var p = e(c[l]).data(),
                                    u = g(c[l], t, r),
                                    h = u !== t ? u : a.gA(c[l], "svg_src") != t ? a.gA(c[l], "svg_src") : c[l].src === t ? p.src : c[l].src,
                                    m = a.getLoadObj(r, h);
                                if (a.sA(c[l], "src-rs-ref", h), p.loaded === t && m !== t && m.progress && "loaded" == m.progress) {
                                    if ("img" == m.type) {
                                        if (c[l].src.slice(c[l].src.length - 10) !== m.src.slice(m.src.length - 10) && (c[l].src = m.src), p.slidebgimage) {
                                            -1 == m.src.indexOf("images/transparent.png") && -1 == m.src.indexOf("assets/transparent.png") || p.bgcolor === t || p.bgcolor !== t && "transparent" !== p.bgcolor && (m.bgColor = !0, m.useBGColor = !0), a.sA(n[d], "owidth", m.width), a.sA(n[d], "oheight", m.height);
                                            var v = a.getByTag(n[d], "RS-SBG-WRAP"),
                                                f = a.gA(n[d], "key");
                                            if (a[r].sbgs[f].loadobj = m, v.length > 0 && (a.sA(v[0], "owidth", m.width), a.sA(v[0], "oheight", m.height)), "carousel" === a[r].sliderType) {
                                                var y = e(v),
                                                    w = a.getSlideIndex(r, f);
                                                (a[r].carousel.justify && a[r].carousel.slide_widths === t || a[r].carousel.slide_width === t) && a.setCarouselDefaults(r, !0), y.data("panzoom") === t || a[r].panzoomTLs !== t && a[r].panzoomTLs[w] !== t || a.startPanZoom(y, r, 0, w, "prepare", f), a[r].sbgs[f].isHTML5 && !a[r].sbgs[f].videoisplaying && (a[r].sbgs[f].video = a[r].sbgs[f].loadobj.img), n[d].getAttribute("data-iratio") !== t && !n[d].getAttribute("data-iratio") && m.img && m.img.naturalWidth && (n[d].setAttribute("data-iratio", m.img.naturalWidth / m.img.naturalHeight), a.setCarouselDefaults(r, "redraw", !0), !0 === a[r].carousel.ocfirsttun && a.organiseCarousel(r, "right", !0, !1, !1)), a.updateSlideBGs(r, f, a[r].sbgs[f])
                                            }
                                        }
                                    } else "svg" == m.type && "loaded" == m.progress && (c[l].innerHTML = m.innerHTML);
                                    p.loaded = !0
                                }
                                m && m.progress && m.progress.match(/inprogress|inload|prepared/g) && (!m.error && Date.now() - m.starttoload < 15e3 ? s = !0 : (m.progress = "failed", m.reported_img || (m.reported_img = !0, console.log(h + "  Could not be loaded !")))), 1 != a[r].youtubeapineeded || window.YT && YT.Player != t || (s = x("youtube", r)), 1 != a[r].vimeoapineeded || window.Vimeo || (s = x("vimeo", r))
                            }
                    }
                e.each(a[r].loadqueue, (function(e, t) {
                    !0 === t.static && ("loaded" != t.progress && "done" !== t.progress || "failed" === t.progress) && ("failed" != t.progress || t.reported ? !t.error && Date.now() - t.starttoload < 5e3 ? s = !0 : t.reported || (t.reported = S(t.src, t.error)) : t.reported = S(t.src, t.error))
                })), s ? tpGS.gsap.delayedCall(.02, a.waitForCurrentImages, [i, r, o]) : o !== t && tpGS.gsap.delayedCall(1e-4, o)
            }
        },
        updateVisibleArea: function(e) {
            for (var i in a[e].viewPort.visible_area = a.revToResp(a[e].viewPort.visible_area, a[e].rle, "0px"), a[e].viewPort.vaType = new Array(4), a[e].viewPort.visible_area) a[e].viewPort.visible_area.hasOwnProperty(i) && (!1 === a[e].viewPort.local && !0 === a[e].viewPort.global ? (a[e].viewPort.vaType[i] = a[e].viewPort.globalDist.indexOf("%") >= 0 ? "%" : "px", a[e].viewPort.visible_area[i] = parseInt(a[e].viewPort.globalDist)) : (a.isNumeric(a[e].viewPort.visible_area[i]) && (a[e].viewPort.visible_area[i] += "%"), a[e].viewPort.visible_area[i] !== t && (a[e].viewPort.vaType[i] = a[e].viewPort.visible_area[i].indexOf("%") >= 0 ? "%" : "px"), a[e].viewPort.visible_area[i] = parseInt(a[e].viewPort.visible_area[i], 0)), a[e].viewPort.visible_area[i] = "%" == a[e].viewPort.vaType[i] ? a[e].viewPort.visible_area[i] / 100 : a[e].viewPort.visible_area[i])
        },
        observeFonts: function(e, i, r) {
            r = r === t ? 0 : r, a.fonts === t && (a.fonts = {}, a.monoWidth = l("monospace"), a.sansWidth = l("sans-serif"), a.serifWidth = l("serif")), r++;
            var o = a.fonts[e];
            !0 !== a.fonts[e] && (a.fonts[e] = a.monoWidth !== l(e + ",monospace") || a.sansWidth !== l(e + ",sans-serif") || a.serifWidth !== l(e + ",serif")), 100 === r || (!1 === o || o === t) && !0 === a.fonts[e] ? (l(e + ",monospace", !0), l(e + ",sans-serif", !0), l(e + ",serif", !0), i()) : setTimeout((function() {
                a.observeFonts(e, i, r)
            }), 19)
        },
        getversion: function() {
            return i
        },
        currentSlideIndex: function(e) {
            return a[e].pr_active_key
        },
        iOSVersion: function() {
            return !!(navigator.userAgent.match(/iPhone/i) || navigator.userAgent.match(/iPod/i) || navigator.userAgent.match(/iPad/i)) && navigator.userAgent.match(/OS 4_\d like Mac OS X/i)
        },
        setIsIOS: function() {
            a.isiPhone = /iPhone|iPod/.test(navigator.userAgent) && !window.MSStream, a.isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream || "MacIntel" === navigator.platform && void 0 !== navigator.standalone
        },
        setIsChrome8889: function() {
            a.isChrome8889 = a.isChrome8889 === t ? navigator.userAgent.indexOf("Chrome/88") >= 0 || navigator.userAgent.indexOf("Chrome/89") >= 0 : a.isChrome8889
        },
        isIE: function() {
            if (a.isIERes === t) {
                var i = e('<div style="display:none;"/>').appendTo(e("body"));
                i.html("\x3c!--[if IE 8]><a>&nbsp;</a><![endif]--\x3e"), a.isIERes = i.find("a").length, i.remove()
            }
            return a.isIERes
        },
        is_mobile: function() {
            var e = ["android", "webos", "iphone", "ipad", "blackberry", "Android", "webos", "iPod", "iPhone", "iPad", "Blackberry", "BlackBerry"],
                i = !1;
            if (window.orientation !== t) i = !0;
            else
                for (var a in e) e.hasOwnProperty(a) && (i = !!(i || navigator.userAgent.split(e[a]).length > 1) || i);
            return i && document.body && -1 === document.body.className.indexOf("rs-ISM") && (document.body.className += " rs-ISM"), i
        },
        is_android: function() {
            var e = ["android", "Android"],
                t = !1;
            for (var i in e) e.hasOwnProperty(i) && (t = !!(t || navigator.userAgent.split(e[i]).length > 1) || t);
            return t
        },
        callBackHandling: function(t, i, r) {
            a[t].callBackArray && e.each(a[t].callBackArray, (function(e, t) {
                t && t.inmodule && t.inmodule === i && t.atposition && t.atposition === r && t.callback && t.callback.call()
            }))
        },
        get_browser: function() {
            var e, t = navigator.userAgent,
                i = t.match(/(opera|chrome|safari|firefox|msie|trident(?=\/))\/?\s*(\d+)/i) || [];
            return /trident/i.test(i[1]) ? (e = /\brv[ :]+(\d+)/g.exec(t) || [], "IE") : "Chrome" === i[1] && null != (e = t.match(/\b(OPR|Edge)\/(\d+)/)) ? e[1].replace("OPR", "Opera") : (i = i[2] ? [i[1], i[2]] : [navigator.appName, navigator.appVersion, "-?"], null != (e = t.match(/version\/(\d+)/i)) && i.splice(1, 1, e[1]), i[0])
        },
        get_browser_version: function() {
            var e, t = navigator.appName,
                i = navigator.userAgent,
                a = i.match(/(edge|opera|chrome|safari|firefox|msie)\/?\s*(\.?\d+(\.\d+)*)/i);
            return a && null != (e = i.match(/version\/([\.\d]+)/i)) && (a[2] = e[1]), (a = a ? [a[1], a[2]] : [t, navigator.appVersion, "-?"])[1]
        },
        isFaceBook: function() {
            return a.isFaceBookApp == t && (a.isFaceBookApp = navigator.userAgent || navigator.vendor || window.opera, a.isFaceBookApp = a.isFaceBookApp.indexOf("FBAN") > -1 || a.isFaceBookApp.indexOf("FBAV") > -1), a.isFaceBookApp
        },
        isFirefox: function(e) {
            return a[e].isFirefox = a[e].isFirefox === t ? "Firefox" === a.get_browser() : a[e].isFirefox, a.isFF = a[e].isFirefox, a[e].isFirefox
        },
        isSafari11: function() {
            return "safari" === a.trim(a.get_browser().toLowerCase()) && parseFloat(a.get_browser_version()) >= 11
        },
        isWebkit: function() {
            var e = /(webkit)[ \/]([\w.]+)/.exec(navigator.userAgent.toLowerCase());
            return e && e[1] && "webkit" === e[1]
        },
        isIE11: function() {
            return a.IE11 = a.IE11 === t ? !!navigator.userAgent.match(/Trident.*rv\:11\./) : a.IE11, a.IE11
        },
        checkBackdrop: function() {
            var e = document.createElement("div");
            e.style.cssText = "-webkit-backdrop-filter: blur(2px)";
            var i = 0 != e.style.length,
                r = document.documentMode === t || document.documentMode > 9;
            i && r || (e.style.cssText = "backdrop-filter: blur(2px)", i = 0 != e.style.length), e = null, a.useBackdrop = i && r
        },
        deepLink: function(e, i) {
            if (i !== t) {
                var r = parseInt(i.toString().replace(/^slide/, "").replace("-", ""), 10);
                if (isNaN(r))
                    for (var o in a[e].slides)
                        if (a[e].slides.hasOwnProperty(o) && a.gA(a[e].slides[o], "deeplink") === i) {
                            r = parseInt(a.gA(a[e].slides[o], "originalindex"), 10);
                            break
                        }
                return isNaN(r) || r < 1 || r > a[e].realslideamount ? void 0 : r
            }
        },
        getHorizontalOffset: function(e, t) {
            var i = d(e, ".outer-left"),
                a = d(e, ".outer-right");
            return "left" == t ? i : "right" == t ? a : "all" == t ? {
                left: i,
                right: a,
                both: i + a,
                inuse: i + a != 0
            } : i + a
        },
        getComingSlide: function(e, i) {
            var r = a[e].pr_next_key !== t ? a[e].pr_next_key : a[e].pr_processing_key !== t ? a[e].pr_processing_key : a[e].pr_active_key,
                o = 0;
            if (o = 0, a[e].pr_active_slide !== t && "true" == a.gA(a[e].pr_active_slide[0], "not_in_nav") && (r = a[e].pr_lastshown_key), i !== t && a.isNumeric(i) || i !== t && i.match(/to/g)) o = 1 === i || -1 === i ? parseInt(r, 0) + i < 0 ? a[e].slideamount - 1 : parseInt(r, 0) + i >= a[e].slideamount ? 0 : parseInt(r, 0) + i : (i = a.isNumeric(i) ? i : parseInt(i.split("to")[1], 0)) < 0 ? 0 : i > a[e].slideamount - 1 ? a[e].slideamount - 1 : i;
            else if (i)
                for (var s in a[e].slides) a[e].slides.hasOwnProperty(s) && (o = a[e].slides && a[e].slides[s] && (a.gA(a[e].slides[s], "key") === i || a[e].slides[s].id === i) ? s : o);
            return {
                nindex: o,
                aindex: r
            }
        },
        callingNewSlide: function(e, i, r, o) {
            var s = a.getComingSlide(e, i);
            a[e].pr_next_key = s.nindex, a[e].sdir = "bullet" !== a[e].sc_indicator && a[e].pr_active_key == a[e].slideamount - 1 && 0 == a[e].pr_next_key ? 0 : a[e].pr_next_key < a[e].pr_active_key ? 1 : 0, r && a[e].carousel !== t && (a[e].carousel.focused = a[e].pr_next_key), "carousel" === a[e].sliderType && a[e].startedWithOtherSlide && (a[e].carousel.focused = a[e].pr_next_key, delete a[e].startedWithOtherSlide), a[e].ctNavElement ? a[e].ctNavElement = !1 : a[e].c.trigger("revolution.nextslide.waiting"), (a[e].started && s.aindex === a[e].pr_next_key && s.aindex === a[e].pr_lastshown_key || a[e].pr_next_key !== s.aindex && -1 != a[e].pr_next_key && a[e].pr_lastshown_key !== t) && R(e, r, o)
        },
        getLoadObj: function(e, i) {
            var r = a[e].loadqueue !== t && a[e].loadqueue.filter((function(e) {
                return e.src === i
            }))[0];
            return r === t ? {
                src: i
            } : r
        },
        getResponsiveLevel: function(e) {
            var t = 9999,
                i = 0,
                r = 0,
                o = 0;
            if (a[e].responsiveLevels && a[e].responsiveLevels.length)
                for (var s in a[e].responsiveLevels) a[e].responsiveLevels.hasOwnProperty(s) && (a.winWAll < a[e].responsiveLevels[s] && (0 == i || i > parseInt(a[e].responsiveLevels[s])) && (t = parseInt(a[e].responsiveLevels[s]), o = parseInt(s), i = parseInt(a[e].responsiveLevels[s])), a.winWAll > a[e].responsiveLevels[s] && i < a[e].responsiveLevels[s] && (i = parseInt(a[e].responsiveLevels[s]), r = parseInt(s)));
            return i < t ? r : o
        },
        getSizeMultpilicator: function(e, t, i) {
            var r = {
                h: 0,
                w: 0
            };
            return a[e].justifyCarousel ? r.h = r.w = 1 : (r.w = i.width / a[e].gridwidth[a[e].level], r.h = i.height / a[e].gridheight[a[e].level], r.w = isNaN(r.w) ? 1 : r.w, r.h = isNaN(r.h) ? 1 : r.h, 1 == a[e].enableUpscaling ? r.h = r.w : (r.h > r.w ? r.h = r.w : r.w = r.h, (r.h > 1 || r.w > 1) && (r.w = 1, r.h = 1))), r
        },
        updateDims: function(e, i) {
            var r = a[e].pr_processing_key || a[e].pr_active_key || 0,
                o = a[e].pr_active_key || 0,
                s = a[e].modal !== t && a[e].modal.useAsModal,
                n = s ? a.winWAll : a.winW,
                l = !1;
            if (a[e].lastScrollBarWidth = a.scrollBarWidth, a[e].redraw = a[e].redraw === t ? {} : a[e].redraw, a[e].module = a[e].module === t ? {} : a[e].module, a[e].canv = a[e].canv === t ? {} : a[e].canv, a[e].content = a[e].content === t ? {} : a[e].content, a[e].drawUpdates = {
                    c: {},
                    cpar: {},
                    canv: {}
                }, "carousel" == a[e].sliderType ? a[e].module.margins = {
                    top: parseInt(a[e].carousel.padding_top || 0, 0),
                    bottom: parseInt(a[e].carousel.padding_bottom || 0, 0)
                } : a[e].module.margins = {
                    top: 0,
                    bottom: 0
                }, a[e].module.paddings === t && (a[e].module.paddings = {
                    top: parseInt(a[e].cpar.css("paddingTop"), 0) || 0,
                    bottom: parseInt(a[e].cpar.css("paddingBottom"), 0) || 0
                }), a[e].blockSpacing !== t ? (a[e].block = {
                    bottom: a[e].blockSpacing.bottom !== t ? parseInt(a[e].blockSpacing.bottom[a[e].level], 0) : 0,
                    top: a[e].blockSpacing.top !== t ? parseInt(a[e].blockSpacing.top[a[e].level], 0) : 0,
                    left: a[e].blockSpacing.left !== t ? parseInt(a[e].blockSpacing.left[a[e].level], 0) : 0,
                    right: a[e].blockSpacing.right !== t ? parseInt(a[e].blockSpacing.right[a[e].level], 0) : 0
                }, a[e].block.hor = a[e].block.left + a[e].block.right, a[e].block.ver = a[e].block.top + a[e].block.bottom) : a[e].block === t && (a[e].block = {
                    top: 0,
                    left: 0,
                    right: 0,
                    bottom: 0,
                    hor: 0,
                    ver: 0
                }), a[e].blockSpacing !== t) {
                var d = {
                        paddingLeft: a[e].block.left,
                        paddingRight: a[e].block.right,
                        marginTop: a[e].block.top,
                        marginBottom: a[e].block.bottom
                    },
                    c = JSON.stringify(d);
                d !== a[e].emptyObject && c !== a[e].caches.setsizeBLOCKOBJ && (tpGS.gsap.set(a[e].blockSpacing.block, d), a[e].caches.setsizeBLOCKOBJ = c, l = !0)
            }
            if (a[e].levelForced = a[e].level = a.getResponsiveLevel(e), a[e].rowHeights = a.getRowHeights(e), a[e].aratio = a[e].gridheight[a[e].level] / a[e].gridwidth[a[e].level], a[e].module.width = "auto" === a[e].sliderLayout || 1 == a[e].disableForceFullWidth ? a[e].cpar.width() : n - a[e].block.hor, a[e].outNavDims = a.getOuterNavDimension(e), a[e].canv.width = a[e].module.width - a[e].outNavDims.horizontal - (s ? a.scrollBarWidth : 0), s && "auto" === a[e].sliderLayout && (a[e].canv.width = Math.min(a[e].gridwidth[a[e].level], n)), "fullscreen" === a[e].sliderLayout || a[e].infullscreenmode) {
                var p = a.getWinH(e) - (!0 === a[e].modal.useAsModal ? 0 : a.getFullscreenOffsets(e));
                a[e].canv.height = Math.max(a[e].rowHeights.cur, Math.max(p - a[e].outNavDims.vertical, a[e].minHeight)), "carousel" === a[e].sliderType && "v" !== a[e].carousel.orientation && (a[e].canv.height = a[e].canv.height - parseInt(a[e].carousel.padding_top) - parseInt(a[e].carousel.padding_bottom)), o !== r && (a[e].currentSlideHeight = Math.max(a[e].rowHeights.last, Math.max(p - a[e].outNavDims.vertical, a[e].minHeight)), a[e].redraw.maxHeightOld = !0), a[e].drawUpdates.c.height = "100%"
            } else a[e].canv.height = a[e].keepBPHeight ? a[e].gridheight[a[e].level] : Math.round(a[e].canv.width * a[e].aratio), a[e].canv.height = a[e].autoHeight ? a[e].canv.height : Math.min(a[e].canv.height, a[e].gridheight[a[e].level]), a[e].carousel.prevNextVisCalculated = "carousel" == a[e].sliderType && "v" == a[e].carousel.orientation ? "%" == a[e].carousel.prevNextVisType ? a[e].canv.height * a[e].carousel.prevNextVis : a[e].carousel.prevNextVis : 0, a[e].canv.height = Math.max(Math.max(a[e].rowHeights.cur, a[e].canv.height), a[e].minHeight) + a[e].carousel.prevNextVisCalculated, "carousel" == a[e].sliderType && "v" == a[e].carousel.orientation && (a[e].canv.height = Math.min(a[e].canv.height, a.winH)), a[e].drawUpdates.c.height = a[e].canv.height;
            "fullscreen" !== a[e].sliderLayout && "fullwidth" !== a[e].sliderLayout || (a[e].canv.width -= a[e].cpar.outerWidth() - a[e].cpar.width(), "fullscreen" === a[e].sliderLayout && (a[e].canv.height -= a[e].cpar.outerHeight() - a[e].cpar.height())), a[e].module.height = a[e].canv.height, "fullwidth" != a[e].sliderLayout || a[e].fixedOnTop || (a[e].drawUpdates.c.maxHeight = 0 != a[e].maxHeight ? Math.min(a[e].canv.height, a[e].maxHeight) : a[e].canv.height), a[e].CM = a.getSizeMultpilicator(e, a[e].enableUpscaling, {
                width: a[e].canv.width,
                height: a[e].canv.height
            }), a[e].content.width = a[e].gridwidth[a[e].level] * a[e].CM.w, a[e].content.height = Math.round(Math.max(a[e].rowHeights.cur, a[e].gridheight[a[e].level] * a[e].CM.h));
            var g = a[e].module.margins.top + a[e].module.margins.bottom + ("fullscreen" === a[e].sliderLayout ? 0 : a[e].outNavDims.vertical) + a[e].canv.height + a[e].module.paddings.top + a[e].module.paddings.bottom;
            a[e].drawUpdates.cpar.height = g, a[e].drawUpdates.cpar.width = "auto" === a[e].sliderLayout ? "auto" : a[e].module.width, "auto" === a[e].sliderLayout || "fullscreen" === a[e].sliderLayout && !0 === a[e].disableForceFullWidth || a[e].rsFullWidthWrap === t ? "fullscreen" == a[e].sliderLayout && 1 == a[e].disableForceFullWidth && (a[e].drawUpdates.cpar.left = 0) : a[e].drawUpdates.cpar.left = 0 - Math.ceil(a[e].rsFullWidthWrap.offset().left - (a[e].outNavDims.left + a[e].block.left)), a[e].sbtimeline.set && a[e].sbtimeline.fixed ? (a[e].sbtimeline.extended === t && a.updateFixedScrollTimes(e), a[e].forcerHeight = 2 * g + a[e].sbtimeline.extended, a[e].sbtimeline.pullc && a[e].rsFullWidthWrap !== t && null !== a[e].rsFullWidthWrap[0] && requestAnimationFrame((function() {
                var t = a[e].rsFullWidthWrapMarginBottom + -1 * a[e].forcerHeight;
                a[e].rsFullWidthWrap[0].style.marginBottom = (isNaN(t) ? a[e].rsFullWidthBottomMarginPush : a[e].rsFullWidthBottomMarginPush + t) + "px"
            })), a[e].rsFullWidthWrap !== t && null !== a[e].rsFullWidthWrap[0] && "fullscreen" == a[e].sliderLayout && (a[e].rsFullWidthBottomMarginPush = a.getFullscreenOffsets(e), a[e].rsFullWidthWrap[0].style.marginBottom = a[e].rsFullWidthBottomMarginPush + "px")) : a[e].forcerHeight = g, a[e].forcerHeight !== a[e].caches.setsizeForcerHeight && a[e].forcer !== t && (a[e].caches.setsizeForcerHeight = a[e].forcerHeight, l = !0, a[e].redraw.forcer = !0), a[e].drawUpdates.c.width = a[e].canv.width, "auto" === a[e].sliderLayout && (a[e].drawUpdates.c.left = a[e].outNavDims.left), a[e].drawUpdates.c !== a[e].emptyObject && JSON.stringify(a[e].drawUpdates.c) !== a[e].caches.setsizeCOBJ && (a[e].caches.setsizeCOBJ = JSON.stringify(a[e].drawUpdates.c), l = !0, a[e].redraw.c = !0), a[e].drawUpdates.cpar !== a[e].emptyObject && JSON.stringify(a[e].drawUpdates.cpar) !== a[e].caches.setsizeCPAROBJ && (a[e].caches.setsizeCPAROBJ = JSON.stringify(a[e].drawUpdates.cpar), l = !0, a[e].redraw.cpar = !0), s && "auto" === a[e].sliderLayout && a[e].caches.canWidth !== a[e].canv.width && (a[e].caches.canWidth = a[e].canv.width, l = !0, a[e].redraw.modalcanvas = !0), a[e].slayers && a[e].slayers.length > 0 && a[e].outNavDims.left !== a[e].caches.outNavDimsLeft && "fullwidth" != a[e].sliderLayout && "fullscreen" != a[e].sliderLayout && (a[e].caches.outNavDimsLeft = a[e].outNavDims.left, a[e].redraw.slayers = !0), s && a[e].modal.calibration !== t && "middle" === a[e].modal.vertical && (a[e].modal.calibration.top = a.getWinH(e) < g ? "0%" : "50%", a[e].modal.calibration.y = a.getWinH(e) < g ? "0px" : "-50%", "fullwidth" === a[e].sliderLayout && (l = !0, a[e].redraw.modulewrap = !0)), a[e].gridOffsetWidth = (a[e].module.width - a[e].gridwidth[a[e].level]) / 2, a[e].gridOffsetHeight = (a[e].module.height - a[e].content.height) / 2, a[e].caches.curRowsHeight = a[e].currentRowsHeight = a[e].rowHeights.cur, a[e].caches.moduleWidth = a[e].width = a[e].module.width, a[e].caches.moduleHeight = a[e].height = a[e].module.height, a[e].caches.canWidth = a[e].conw = a[e].canv.width, a[e].caches.canHeight = a[e].conh = a[e].canv.height, a[e].bw = a[e].CM.w, a[e].bh = a[e].CM.h, a[e].caches.outNavDimsLeft = a[e].outNavDims.left, window.requestAnimationFrame((function() {
                a[e].redraw.forcer && tpGS.gsap.set(a[e].forcer, {
                    height: a[e].forcerHeight
                }), a[e].redraw.c && tpGS.gsap.set(a[e].c, a[e].drawUpdates.c), a[e].redraw.cpar && tpGS.gsap.set(a[e].cpar, a[e].drawUpdates.cpar), a[e].redraw.modalcanvas && a[e] !== t && (a[e].modal !== t && a[e].modal.c !== t && tpGS.gsap.set(a[e].modal.c, {
                    width: a[e].canv.width
                }), a[e].canvas !== t && tpGS.gsap.set(a[e].canvas, {
                    width: a[e].canv.width
                })), a[e].redraw.maxHeightOld && (a[e].slides[o].style.maxHeight = a[e].currentSlideHeight !== a[e].canv.height ? a[e].currentSlideHeight + "px" : "none"), a[e].redraw.slayers && tpGS.gsap.set(a[e].slayers, {
                    left: a[e].outNavDims.left
                }), a[e].redraw.modulewrap && tpGS.gsap.set(a[e].modal.c.find("rs-module-wrap"), a[e].modal.calibration), !0 !== a[e].navigation.initialised && "prepared" === i && ("hero" !== a[e].sliderType && a.createNavigation && a[e].navigation.use && !0 !== a[e].navigation.createNavigationDone && a.createNavigation(e), a.resizeThumbsTabs && a.resizeThumbsTabs && a[e].navigation.use && a.resizeThumbsTabs(e)), a[e].rebuildProgressBar && M(e), a.putRowsInPosition(e), a[e].redraw = {}
            }));
            var u = a[e].inviewport && (a[e].heightInLayers !== t && a[e].module.height !== a[e].heightInLayers || a[e].widthInLayers !== t && a[e].module.width !== a[e].widthInLayers);
            return "ignore" !== i && u && (a[e].heightInLayers = t, a[e].widthInLayers = t, "carousel" !== a[e].sliderType && (a[e].pr_next_key !== t ? a.animateTheLayers({
                slide: a[e].pr_next_key,
                id: e,
                mode: "rebuild",
                caller: "swapSlideProgress_1"
            }) : a[e].pr_processing_key !== t ? a.animateTheLayers({
                slide: a[e].pr_processing_key,
                id: e,
                mode: "rebuild",
                caller: "swapSlideProgress_2"
            }) : a[e].pr_active_key !== t && a.animateTheLayers({
                slide: a[e].pr_active_key,
                id: e,
                mode: "rebuild",
                caller: "swapSlideProgress_3"
            })), l = !0), l && "ignore" !== i && a.requestLayerUpdates(e, "enterstage"), a[e].module.height !== a[e].module.lastHeight && (a[e].module.lastHeight = a[e].module.height, window.requestAnimationFrame((function() {
                window.innerHeight !== screen.height && Math.round(window.innerHeight * window.devicePixelRatio) !== screen.height && v(e, t, !1)
            }))), tpGS.gsap.delayedCall(.1, (function() {
                a[e].lastScrollBarWidth !== a.scrollBarWidth ? (a.updateDims(e, "ignore"), v(e)) : a.isModalOpen || a.scrollBarWidth === window.innerWidth - document.documentElement.clientWidth || a.rAfScrollbar === t && (a.rAfScrollbar = requestAnimationFrame((function() {
                    a.rAfScrollbar = t, a.getWindowDimension(e, !1)
                })))
            })), l
        },
        putMiddleZoneInPosition: function(e, i) {
            a[e].middleZones == t || a[e].middleZones[i] == t || a[e].rowMiddleHeights == t || a[e].rowMiddleHeights[i] == t || a[e].caches.middleHeights[i] === a[e].rowMiddleHeights[i] && a[e].caches.lastModuleHeight === a[e].module.height || (tpGS.gsap.set(a[e].middleZones[i], {
                top: Math.round(a[e].module.height / 2 - a[e].rowMiddleHeights[i] / 2)
            }), a[e].caches.middleHeights[i] = a[e].rowMiddleHeights[i])
        },
        putRowsInPosition: function(e) {
            var i = a[e].activeRSSlide || 0,
                r = a[e].pr_processing_key;
            a.putMiddleZoneInPosition(e, i), i !== r && r !== t && a.putMiddleZoneInPosition(e, r), a[e].smiddleZones == t || a[e].rowMiddleHeights == t || a[e].rowMiddleHeights.static == t || a[e].caches.middleHeights.static === a[e].rowMiddleHeights.static && a[e].caches.lastModuleHeight === a[e].module.height || (tpGS.gsap.set(a[e].smiddleZones[0], {
                top: Math.round(a[e].module.height / 2 - a[e].rowMiddleHeights.static / 2)
            }), a[e].caches.middleHeights.static = a[e].rowMiddleHeights.static), a[e].caches.lastModuleHeight = a[e].module.height
        },
        getSlideIndex: function(e, t) {
            var i = !1;
            for (var r in a[e].slides) {
                if (!a[e].slides.hasOwnProperty(r) || !1 !== i) continue;
                i = a.gA(a[e].slides[r], "key") === t ? r : i
            }
            return !1 === i ? 0 : i
        },
        loadUpcomingContent: function(e) {
            if ("smart" == a[e].lazyType) {
                var t = [],
                    i = parseInt(a.getSlideIndex(e, a.gA(a[e].pr_next_slide[0], "key")), 0),
                    r = i - 1 < 0 ? a[e].realslideamount - 1 : i - 1,
                    o = i + 1 == a[e].realslideamount ? 0 : i + 1;
                r !== i && t.push(a[e].slides[r]), o !== i && t.push(a[e].slides[o]), t.length > 0 && (a.loadImages(t, e, 2), a.waitForCurrentImages(t, e, (function() {})))
            }
        },
        lazyLoadAllSlides: function(e) {
            if ("all" == a[e].lazyType && !0 !== a[e].lazyLoad_AllDone && (a[e].viewPort.enable && a[e].inviewport || !a[e].viewPort.enable)) {
                for (var t in a[e].slides) a[e].slides.hasOwnProperty(t) && (a.loadImages(a[e].slides[t], e, t), a.waitForCurrentImages(a[e].slides[t], e, (function() {})));
                a[e].lazyLoad_AllDone = !0
            }
        },
        getFullscreenOffsets: function(i) {
            var r = 0;
            if (a[i].fullScreenOffsetContainer != t) {
                var o = ("" + a[i].fullScreenOffsetContainer).split(",");
                for (var s in o) o.hasOwnProperty(s) && (r += e(o[s]).outerHeight(!0) || 0)
            }
            return a[i].fullScreenOffset != t && (!a.isNumeric(a[i].fullScreenOffset) && a[i].fullScreenOffset.split("%").length > 1 ? r += a.getWinH(i) * parseInt(a[i].fullScreenOffset, 0) / 100 : a.isNumeric(parseInt(a[i].fullScreenOffset, 0)) && (r += parseInt(a[i].fullScreenOffset, 0) || 0)), a[i].fullScreenOffsetResult = r, r
        },
        unToggleState: function(e) {
            if (e !== t)
                for (var i = 0; i < e.length; i++) try {
                    document.getElementById(e[i]).classList.remove("rs-tc-active")
                } catch (e) {}
        },
        toggleState: function(e) {
            if (e !== t)
                for (var i = 0; i < e.length; i++) try {
                    document.getElementById(e[i]).classList.add("rs-tc-active")
                } catch (e) {}
        },
        swaptoggleState: function(e) {
            if (e != t && e.length > 0)
                for (var i = 0; i < e.length; i++) {
                    var r = document.getElementById(e[i]);
                    if (a.gA(r, "toggletimestamp") !== t && (new Date).getTime() - a.gA(r, "toggletimestamp") < 250) return;
                    a.sA(r, "toggletimestamp", (new Date).getTime()), null !== r && (r.className.indexOf("rs-tc-active") >= 0 ? r.classList.remove("rs-tc-active") : r.classList.add("rs-tc-active"))
                }
        },
        lastToggleState: function(e) {
            var i;
            if (e !== t)
                for (var a = 0; a < e.length; a++) {
                    var r = document.getElementById(e[a]);
                    i = !0 === i || null !== r && r.className.indexOf("rs-tc-active") >= 0 || i
                }
            return i
        },
        revCheckIDS: function(i, r) {
            if (a.gA(r, "idcheck") === t) {
                var o = r.id,
                    s = e.inArray(r.id, window.RSANYID),
                    n = -1; - 1 !== s && (n = e.inArray(r.id, a[i].anyid), window.RSANYID_sliderID[s] === i && -1 === n || (r.id = r.id + "_" + Math.round(9999 * Math.random()), console.log("Warning - ID:" + o + " exists already. New Runtime ID:" + r.id), s = n = -1)), -1 === n && a[i].anyid.push(r.id), -1 === s && (window.RSANYID.push(r.id), window.RSANYID_sliderID.push(i))
            }
            return a.sA(r, "idcheck", !0), r.id
        },
        buildSpinner: function(i, a, r, o) {
            var s;
            if ("off" !== a) {
                o = o === t ? "" : o, r = r === t ? "#ffffff" : r;
                var n = parseInt(a.replace("spinner", ""), 10);
                if (isNaN(n) || n < 6) {
                    var l = 'style="background-color:' + r + '"',
                        d = o === t || 3 !== n && 4 != n ? "" : l;
                    s = e("<rs-loader " + (o === t || 1 !== n && 2 != n ? "" : l) + ' class="' + a + " " + o + '"><div ' + d + ' class="dot1"></div><div ' + d + ' class="dot2"></div><div ' + d + ' class="bounce1"></div><div ' + d + ' class="bounce2"></div><div ' + d + ' class="bounce3"></div></rs-loader>')
                } else {
                    var c, p = '<div class="rs-spinner-inner"';
                    if (7 === n) - 1 !== r.search("#") ? (c = r.replace("#", ""), c = "rgba(" + parseInt(c.substring(0, 2), 16) + ", " + parseInt(c.substring(2, 4), 16) + ", " + parseInt(c.substring(4, 6), 16) + ", ") : -1 !== r.search("rgb") && (c = r.substring(r.indexOf("(") + 1, r.lastIndexOf(")")).split(",")).length > 2 && (c = "rgba(" + c[0].trim() + ", " + c[1].trim() + ", " + c[2].trim() + ", "), c && "string" == typeof c && (p += ' style="border-top-color: ' + c + "0.65); border-bottom-color: " + c + "0.15); border-left-color: " + c + "0.65); border-right-color: " + c + '0.15)"');
                    else 12 === n && (p += ' style="background:' + r + '"');
                    p += ">";
                    for (var g = [10, 0, 4, 2, 5, 9, 0, 4, 4, 2][n - 6], u = 0; u < g; u++) u > 0 && (p += " "), p += '<span style="background:' + r + '"></span>';
                    s = e('<rs-loader class="' + a + " " + o + '">' + (p += "</div>") + "</div></rs-loader>")
                }
                return s
            }
        },
        addStaticLayerTo: function(e, t, i) {
            if (a[e].slayers.length < 2) {
                var r = document.createElement("rs-static-layers");
                r.className = "rs-stl-" + t, r.appendChild(i[0]), a[e].c[0].appendChild(r), a[e].slayers.push(r)
            } else a[e].slayers[1].appendChild(i[0])
        }
    });
    var r = function() {
            return a.isIE11() ? function(e, t) {
                return e.querySelectorAll(t)
            } : function(e, t) {
                return e.getElementsByTagName(t)
            }
        },
        o = function(e) {
            a[e].responsiveLevels = a.revToResp(a[e].responsiveLevels, a[e].rle), a[e].visibilityLevels = a.revToResp(a[e].visibilityLevels, a[e].rle), a[e].responsiveLevels[0] = 9999, a[e].rle = a[e].responsiveLevels.length || 1, a[e].gridwidth = a.revToResp(a[e].gridwidth, a[e].rle), a[e].gridheight = a.revToResp(a[e].gridheight, a[e].rle), a[e].editorheight !== t && (a[e].editorheight = a.revToResp(a[e].editorheight, a[e].rle)), a.updateDims(e)
        },
        s = function(t, i) {
            var a = [];
            return e.each(t, (function(e, t) {
                e != i && a.push(t)
            })), a
        },
        n = function(t, i, r) {
            a[r].c.find(t).each((function() {
                var t = e(this);
                t.data("key") === i && t.remove()
            }))
        },
        l = function(e, i) {
            if (a["rsfont_" + e] == t && (a["rsfont_" + e] = document.createElement("span"), a["rsfont_" + e].innerHTML = Array(100).join("wi"), a["rsfont_" + e].style.cssText = ["position:absolute", "width:auto", "font-size:128px", "left:-99999px"].join(" !important;"), a["rsfont_" + e].style.fontFamily = e, document.body.appendChild(a["rsfont_" + e])), i === t) return a["rsfont_" + e].clientWidth;
            document.body.removeChild(a["rsfont_" + e])
        },
        d = function(t, i) {
            var a = 0;
            return t.find(i).each((function() {
                var t = e(this);
                !t.hasClass("tp-forcenotvisible") && a < t.outerWidth() && (a = t.outerWidth())
            })), a
        },
        c = function(i) {
            if (i === t || a[i] === t || a[i].c === t) return !1;
            if (a[i].cpar !== t && a[i].cpar.data("aimg") != t && ("enabled" == a[i].cpar.data("aie8") && a.isIE(8) || "enabled" == a[i].cpar.data("amobile") && a.ISM)) a[i].c.html('<img class="tp-slider-alternative-image" src="' + a[i].cpar.data("aimg") + '">');
            else {
                window._rs_firefox13 = !1, window._rs_firefox = a.isFirefox(), window._rs_ie = window._rs_ie === t ? !e.support.opacity : window._rs_ie, window._rs_ie9 = window._rs_ie9 === t ? 9 == document.documentMode : window._rs_ie9;
                var r = e.fn.jquery.split("."),
                    o = parseFloat(r[0]),
                    s = parseFloat(r[1]);
                1 == o && s < 7 && a[i].c.html('<div style="text-align:center; padding:40px 0px; font-size:20px; color:#992222;"> The Current Version of jQuery:' + r + " <br>Please update your jQuery Version to min. 1.7 in Case you wish to use the Revolution Slider Plugin</div>"), o > 1 && (window._rs_ie = !1), a[i].realslideamount = a[i].slideamount = 0;
                var n = a.getByTag(a[i].canvas[0], "RS-SLIDE"),
                    l = [];
                for (var d in a[i].notInNav = [], a[i].slides = [], n) n.hasOwnProperty(d) && ("on" == a.gA(n[d], "hsom") && a.ISM ? l.push(n[d]) : (a.gA(n[d], "invisible") || 1 == a.gA(n[d], "invisible") ? a[i].notInNav.push(n[d]) : (a[i].slides.push(n[d]), a[i].slideamount++), a[i].realslideamount++, a.sA(n[d], "originalindex", a[i].realslideamount), a.sA(n[d], "origindex", a[i].realslideamount - 1)));
                for (d in l) l.hasOwnProperty(d) && l[d].remove();
                for (d in a[i].notInNav) a[i].notInNav.hasOwnProperty(d) && (a.sA(a[i].notInNav[d], "not_in_nav", !0), a[i].canvas[0].appendChild(a[i].notInNav[d]));
                if (a[i].canvas.css({
                        visibility: "visible"
                    }), a[i].slayers = a[i].c.find("rs-static-layers"), a[i].slayers[0] && a[i].slayers.className && -1 !== a[i].slayers[0].className.indexOf("rs-stl-visible") && a[i].c.addClass("rs-stl-visible"), a[i].slayers.length > 0 && a.sA(a[i].slayers[0], "key", "staticlayers"), !0 === a[i].modal.useAsModal && (a[i].cpar.wrap('<rs-modal id="' + a[i].c[0].id + '_modal"></rs-modal>'), a[i].modal.c = e(a.closestNode(a[i].cpar[0], "RS-MODAL")), a[i].modal.c.appendTo(e("body")), a[i].modal !== t && a[i].modal.alias !== t && a.revModal(i, {
                        mode: "init"
                    })), 1 == a[i].waitForInit || 1 == a[i].modal.useAsModal) return a.RS_toInit !== t && (a.RS_toInit[i] = !0), a[i].c.trigger("revolution.slide.waitingforinit"), void(a[i].waitingForInit = !0);
                window.requestAnimationFrame((function() {
                    h(i)
                })), a[i].initEnded = !0
            }
        },
        p = function() {
            e("body").data("rs-fullScreenMode", !e("body").data("rs-fullScreenMode")), e("body").data("rs-fullScreenMode") && setTimeout((function() {
                a.window.trigger("resize")
            }), 200)
        },
        g = function(e, i, r) {
            return a.gA(e, "lazyload") !== t ? a.gA(e, "lazyload") : a[r].lazyloaddata !== t && a[r].lazyloaddata.length > 0 && a.gA(e, a[r].lazyloaddata) !== t ? a.gA(e, a[r].lazyloaddata) : a.gA(e, "lazy-src") !== t ? a.gA(e, "lazy-src") : a.gA(e, "lazy-wpfc-original-src") !== t ? a.gA(e, "lazy-wpfc-original-src") : a.gA(e, "lazy") !== t ? a.gA(e, "lazy") : i
        },
        u = function(t, i) {
            return e(0 == i ? t : 1 == i ? t.parentNode : 2 == i ? t.parentNode.parentNode : 3 == i ? t.parentNode.parentNode.parentNode : 4 == i ? t.parentNode.parentNode.parentNode.parentNode : t.parentNode.parentNode.parentNode.parentNode.parentNode)
        },
        h = function(i) {
            if (a[i] !== t) {
                a[i].sliderisrunning = !0, !0 !== a[i].noDetach && a[i].c.detach();
                var r = a[i].canvas.find("rs-slide:first-child");
                if (a[i].shuffle) {
                    for (var o = a.gA(r[0], "firstanim"), s = 0; s < a[i].slideamount; s++) a[i].canvas.find("rs-slide:eq(" + Math.round(Math.random() * a[i].slideamount) + ")").prependTo(a[i].canvas);
                    a.sA(a[i].canvas.find("rs-slide:first-child")[0], "firstanim", o)
                }
                a[i].slides = a.getByTag(a[i].canvas[0], "RS-SLIDE"), a[i].thumbs = new Array(a[i].slides.length), a[i].slots = 1, a[i].firststart = 1, a[i].loadqueue = [], a[i].syncload = 0;
                var n = 0,
                    l = "carousel" === a[i].sliderType && a[i].carousel.border_radius !== t ? parseInt(a[i].carousel.border_radius, 0) : 0;
                for (var d in "carousel" !== a[i].sliderType && tpGS.gsap.set(a[i].slides, {
                        display: "none"
                    }), "carousel" !== a[i].sliderType && tpGS.gsap.set(r, {
                        display: "block"
                    }), a[i].slides)
                    if (a[i].slides.hasOwnProperty(d) && "length" !== d) {
                        var c = a[i].slides[d],
                            h = a.getByTag(c, "IMG")[0];
                        a.gA(c, "key") === t && a.sA(c, "key", "rs-" + Math.round(999999 * Math.random()));
                        var m = {
                            params: Array(12),
                            id: a.gA(c, "key"),
                            src: a.gA(c, "thumb") !== t ? a.gA(c, "thumb") : g(h, h !== t ? h.src : t, i)
                        };
                        a.gA(c, "title") === t && a.sA(c, "title", ""), a.gA(c, "description") === t && a.sA(c, "description", ""), m.params[0] = {
                            from: RegExp("\\{\\{title\\}\\}", "g"),
                            to: a.gA(c, "title")
                        }, m.params[1] = {
                            from: RegExp("\\{\\{description\\}\\}", "g"),
                            to: a.gA(c, "description")
                        };
                        for (var f = 1; f <= 10; f++) a.gA(c, "p" + f) !== t ? m.params[f + 1] = {
                            from: RegExp("\\{\\{param" + f + "\\}\\}", "g"),
                            to: a.gA(c, "p" + f)
                        } : m.params[f + 1] = {
                            from: RegExp("\\{\\{param" + f + "\\}\\}", "g"),
                            to: ""
                        };
                        if (a[i].thumbs[n] = e.extend({}, !0, m), l > 0 && tpGS.gsap.set(c, {
                                borderRadius: l + "px"
                            }), a.gA(c, "link") != t || a.gA(c, "linktoslide") !== t) {
                            var w = a.gA(c, "link"),
                                b = w !== t ? w : "slide",
                                _ = "slide" != b ? "no" : a.gA(c, "linktoslide"),
                                S = a.gA(c, "seoz"),
                                x = a.gA(c, "tag");
                            if (_ != t && "no" != _ && "next" != _ && "prev" != _)
                                for (var k in a[i].slides) a[i].slides.hasOwnProperty(k) && parseInt(a.gA(a[i].slides[k], "origindex"), 0) + 1 == a.gA(c, "linktoslide") && (_ = a.gA(a[i].slides[k], "key"));
                            "slide" == b || "a" != x ? e(c).prepend('<rs-layer class="rs-layer slidelink" id="rs_slidelink_' + Math.round(1e5 * Math.random()) + '" data-zindex="' + ("back" === S ? 0 : "front" === S ? 95 : S !== t ? parseInt(S, 0) : 100) + '" dataxy="x:c;y:c" data-dim="w:100%;h:100%" data-basealign="slide"' + ("no" == _ ? "slide" == b || a.ISM ? "" : "  data-actions='o:click;a:simplelink;target:" + (a.gA(c, "target") || "_self") + ";url:" + b + ";'" : "  data-actions='" + ("scroll_under" === _ ? "o:click;a:scrollbelow;offset:100px;" : "prev" === _ ? "o:click;a:jumptoslide;slide:prev;d:0.2;" : "next" === _ ? "o:click;a:jumptoslide;slide:next;d:0.2;" : "o:click;a:jumptoslide;slide:" + _ + ";d:0.2;") + "'") + " data-frame_1='e:power3.inOut;st:100;sp:100' data-frame_999='e:power3.inOut;o:0;st:w;sp:100'>" + (a.ISM ? "<a " + ("slide" != b ? ("_blank" === a.gA(c, "target") ? 'rel="noopener" ' : "") + 'target="' + (a.gA(c, "target") || "_self") + '" href="' + b + '"' : "") + "><span></span></a>" : "") + "</rs-layer>") : e(c).prepend('<a class="rs-layer slidelink" id="rs_slidelink_' + Math.round(1e5 * Math.random()) + '" data-zindex="' + ("back" === S ? 0 : "front" === S ? 95 : S !== t ? parseInt(S, 0) : 100) + '" dataxy="x:c;y:c" data-dim="w:100%;h:100%" data-basealign="slide" href="' + b + '" target="' + (a.gA(c, "target") || "_self") + '" rel="noopener" data-frame_1="e:power3.inOut;st:100;sp:100" data-frame_999="e:power3.inOut;o:0;st:w;sp:100"><span></span></a>')
                        }
                        n++
                    }
                if (a[i].simplifyAll && (a.isIE(8) || a.iOSVersion()) && (a[i].c.find(".rs-layer").each((function() {
                        var t = e(this);
                        t.removeClass("customin customout").addClass("fadein fadeout"), t.data("splitin", ""), t.data("speed", 400)
                    })), a[i].c.find("rs-slide").each((function() {
                        var t = e(this);
                        t.data("transition", "fade"), t.data("masterspeed", 500), t.data("slotamount", 1), (t.find(".rev-slidebg") || t.find(">img").first()).data("panzoom", null)
                    }))), window._rs_desktop = window._rs_desktop === t ? !navigator.userAgent.match(/(iPhone|iPod|iPad|Android|BlackBerry|BB10|mobi|tablet|opera mini|nexus 7)/i) : window._rs_desktop, a[i].autoHeight = "fullscreen" == a[i].sliderLayout || a[i].autoHeight, "fullwidth" != a[i].sliderLayout || a[i].autoHeight || "carousel" === a[i].sliderType && "v" === a[i].carousel.orientation || a[i].c.css({
                        maxHeight: a[i].gridheight[a[i].level] + "px"
                    }), "auto" == a[i].sliderLayout || null !== a.closestNode(a[i].c[0], "RS-FULLWIDTH-WRAP") || "fullscreen" === a[i].sliderLayout && 1 == a[i].disableForceFullWidth) a[i].topc = a[i].cpar;
                else {
                    var R = a[i].cpar[0].style.marginTop,
                        O = a[i].cpar[0].style.marginBottom;
                    a[i].rsFullWidthWrapMarginBottom = parseInt(O, 0), R = R === t || "" === R ? "" : "margin-top:" + R + ";", O = O === t || "" === O ? "" : "margin-bottom:" + O + ";", a[i].rsFullWidthWrap = a[i].topc = e('<rs-fullwidth-wrap id="' + a[i].c[0].id + '_forcefullwidth" style="' + R + O + '"></rs-fullwidth-wrap>'), a[i].forcer = e('<rs-fw-forcer style="height:' + (a[i].forcerHeight === t ? a[i].cpar.height() : a[i].forcerHeight) + 'px"></rs-fw-forcer>'), a[i].topc.append(a[i].forcer), a[i].topc.insertBefore(a[i].cpar), a[i].cpar.detach(), a[i].cpar.css({
                        marginTop: "0px",
                        marginBottom: "0px",
                        position: "absolute"
                    }), a[i].cpar.prependTo(a[i].topc)
                }
                if (a[i].forceOverflow ? a[i].topc[0].classList.add("rs-forceoverflow") : "3D" === a[i].parallax.type && a[i].topc[0].classList.add("rs-parallax-hidden-of"), "carousel" === a[i].sliderType && !0 !== a[i].overflowHidden && a[i].c.css({
                        overflow: "visible"
                    }), 0 !== a[i].maxHeight && tpGS.gsap.set([a[i].cpar, a[i].c, a[i].topc], {
                        maxHeight: a[i].maxHeight + "px"
                    }), a[i].fixedOnTop && tpGS.gsap.set(a[i].blockSpacing !== t && a[i].blockSpacing.block !== t ? a[i].blockSpacing.block : a[i].topc, {
                        position: "fixed",
                        top: "0px",
                        left: "0px",
                        pointerEvents: "none",
                        zIndex: 5e3
                    }), a[i].shadow !== t && a[i].shadow > 0 && a[i].cpar.addClass("tp-shadow" + a[i].shadow).append('<div class="tp-shadowcover" style="background-color:' + a[i].cpar.css("backgroundColor") + ";background-image:" + a[i].cpar.css("backgroundImage") + '"></div>'), a.updateDims(i, "prepared"), a.observeWraps === t && (a.observeWraps = new a.wrapObserver.init((function(e, i) {
                        v(i, t, !0)
                    }))), !a[i].c.hasClass("revslider-initialised")) {
                    a[i].c[0].classList.add("revslider-initialised"), a[i].c[0].id = a[i].c[0].id === t ? "revslider-" + Math.round(1e3 * Math.random() + 5) : a[i].c[0].id, a.revCheckIDS(i, a[i].c[0]), a[i].origcd = parseInt(a[i].duration, 0), a[i].scrolleffect._L = [], a[i].sbas = a[i].sbas === t ? {} : a[i].sbas, a[i].layers = a[i].layers || {}, a[i].sortedLayers = a[i].sortedLayers || {};
                    var L = a[i].c[0].querySelectorAll("rs-layer, rs-row, rs-column, rs-group,  rs-bgvideo, .rs-layer");
                    for (var I in L)
                        if (L.hasOwnProperty(I)) {
                            !a.ISM && L[I].classList.contains("iospermaccwait") && L[I].remove();
                            var M, T, C = e(L[I]),
                                A = C.data();
                            if (A.startclasses = L[I].className, A.startclasses = A.startclasses === t || null === A.startclasses ? "" : A.startclasses, A.animationonscroll = !!a[i].sbtimeline.set && a[i].sbtimeline.layers, A.animationonscroll = !0 === A.animationonscroll || "true" == A.animationonscroll, A.filteronscroll = !!a[i].scrolleffect.set && a[i].scrolleffect.layers, A.pxundermask = A.startclasses.indexOf("rs-pxmask") >= 0 && "off" !== a[i].parallax.type && A.startclasses.indexOf("rs-pxl-") >= 0, A.noPevents = A.startclasses.indexOf("rs-noevents") >= 0, A.sba)
                                for (var f in M = A.sba.split(";")) M.hasOwnProperty(f) && ("t" == (T = M[f].split(":"))[0] && (A.animationonscroll = T[1], "false" == T[1] && (A.animOnScrollForceDisable = !0)), "e" == T[0] && (A.filteronscroll = T[1]), "so" == T[0] && (A.scrollBasedOffset = parseInt(T[1]) / 1e3));
                            if ("true" != A.animationonscroll && 1 != A.animationonscroll || (A.startclasses += " rs-sba", C[0].className += " rs-sba"), A.startclasses.indexOf("rs-layer-static") >= 0 && a.handleStaticLayers && a.handleStaticLayers(C, i), "RS-BGVIDEO" !== C[0].tagName) {
                                if (C[0].classList.add("rs-layer"), "column" === A.type && (A.columnwidth = "33.33%", A.verticalalign = "top", A.column !== t))
                                    for (var D in M = A.column.split(";")) M.hasOwnProperty(D) && ("w" === (T = M[D].split(":"))[0] && (A.columnwidth = T[1]), "a" === T[0] && (A.verticalalign = T[1]));
                                if ("group" === A.type && (A.verticalalign = "top", A.column !== t))
                                    for (var D in M = A.column.split(";")) M.hasOwnProperty(D) && "a" === (T = M[D].split(":"))[0] && (A.verticalalign = T[1]);
                                var P = A.startclasses.indexOf("slidelink") >= 0 ? "z-index:" + A.zindex + ";width:100% !important;height:100% !important;" : "",
                                    B = "column" !== A.type && "group" !== A.type ? "" : A.verticalalign === t ? " vertical-align:top;" : " vertical-align:" + A.verticalalign + ";",
                                    H = "row" === A.type || "column" === A.type || "r" === A.pos ? "position:relative;" : "position:absolute;",
                                    z = "",
                                    W = "row" === A.type ? "rs-row-wrap" : "column" === A.type ? "rs-column-wrap" : "group" === A.type ? "rs-group-wrap" : "rs-layer-wrap",
                                    E = "",
                                    N = "",
                                    j = (A.noPevents, ";pointer-events:none");
                                "row" === A.type || "column" === A.type || "group" === A.type ? (C[0].classList.remove("tp-resizeme"), "column" === A.type && (A.width = "auto", C[0].group = "row", tpGS.gsap.set(C, {
                                    width: "auto"
                                }), A.filteronscroll = !1)) : (E = "display:" + ("inline-block" === C[0].style.display ? "inline-block" : "block") + ";", null !== a.closestNode(C[0], "RS-COLUMN") ? (C[0].group = "column", A.filteronscroll = !1) : null !== a.closestNode(C[0], "RS-GROUP-WRAP") && (C[0].group = "group", A.filteronscroll = !1)), A.wrpcls !== t && (z = z + " " + A.wrpcls), A.wrpid !== t && (N = 'id="' + A.wrpid + '"'), A.thFixed = A.wrpcls !== t && A.wrpcls.includes("th-fixed") || A.startclasses !== t && A.startclasses.includes("ddd_mousebox"), A.reqWrp = {
                                    loop: !(1 != a[i].rtl && !A.thFixed && A.loop_0 === t && A.loop_999 === t),
                                    level: {
                                        m: 0,
                                        lp: 0,
                                        p: 0
                                    }
                                }, A.perspFix = window.isSafari11 && (A.btrans !== t && A.btrans.includes("iosfx:p") || "carousel" === a[i].sliderType && !L[I].classList.contains("rs-mtrap")), A.reqWrp.mask = !!(A.perspFix || A.reqWrp.loop || 1 == a[i].rtl || A.pxundermask || A.thFixed || A.btrans !== t || A.frame_hover !== t && A.frame_hover.includes("m:t") || A.clip !== t || A.sba !== t || A.frame_0_sfx !== t || A.frame_1_sfx !== t || A.frame_999_sfx !== t || A.frame_0_mask !== t || A.frame_1_mask !== t || A.frame_2_mask !== t || A.frame_3_mask !== t || A.frame_4_mask !== t || A.frame_999_mask !== t), A.reqWrp.level.m = A.pxundermask ? 2 : A.reqWrp.mask ? 1 : 0, A.reqWrp.level.lp = A.reqWrp.level.m + (A.reqWrp.loop ? 1 : 0), A.reqWrp.level.p = A.reqWrp.level.lp + 1, A.perspFix && (P += "transform:perspective(600px);"), C.wrap("<" + W + " " + N + ' class="rs-parallax-wrap ' + z + '" style="' + B + " " + P + H + E + j + '">' + (A.reqWrp.loop ? '<rs-loop-wrap style="' + P + H + E + '">' : "") + (A.reqWrp.mask ? '<rs-mask-wrap style="' + P + H + E + '">' : "") + (A.pxundermask ? "<rs-px-mask></rs-px-mask>" : "") + (A.reqWrp.mask ? "</rs-mask-wrap>" : "") + (A.reqWrp.loop ? "</rs-loop-wrap>" : "") + "</" + W + ">"), !0 !== A.filteronscroll && "true" != A.filteronscroll || a[i].scrolleffect._L.push(C.parent()), C[0].id = C[0].id === t ? "layer-" + Math.round(999999999 * Math.random()) : C[0].id, a.revCheckIDS(i, C[0]), a[i]._Lshortcuts[C[0].id] = {
                                    p: u(C[0], A.reqWrp.level.p),
                                    lp: u(C[0], A.reqWrp.level.lp),
                                    m: u(C[0], A.reqWrp.level.m)
                                }, "column" !== A.type || "" == C[0].style.background && "" === C[0].style.backgroundColor && "" === C[0].style.backgroundImage && A.border === t ? A.cbgexists = !1 : (a[i]._Lshortcuts[C[0].id].p.append('<rs-cbg-mask-wrap><rs-column-bg id="' + C[0].id + '_rs_cbg"></rs-column-bg></rs-cbg-mask-wrap>'), A.cbgexists = !0), "text" === A.type && a.getByTag(C[0], "IFRAME").length > 0 && (a[i].slideHasIframe = !0, C[0].classList.add("rs-ii-o")), a[i].BUG_safari_clipPath && "true" != A.animationonscroll && 1 != A.animationonscroll && C[0].classList.add("rs-pelock"), C[0].dataset.staticz !== t && "row" !== A.type && "row" !== C[0].group && "column" !== C[0].group && a.addStaticLayerTo(i, C[0].dataset.staticz, a[i]._Lshortcuts[C[0].id].p)
                            }
                            a.gA(C[0], "actions") && a.checkActions && a.checkActions(C, i, a[i]), !a.checkVideoApis || window.rs_addedvim && window.rs_addedyt || a[i].youtubeapineeded && a[i].vimeoapineeded || a.checkVideoApis(C, i)
                        }
                    a.checkActions && a.checkActions(t, i), a[i].c[0].addEventListener("mousedown", (function() {
                        if (!0 !== a[i].onceClicked && (a[i].onceClicked = !0, !0 !== a[i].onceVideoPlayed && a[i].activeRSSlide !== t && a[i].slides !== t && a[i].slides[a[i].activeRSSlide] !== t)) {
                            var r = e(a[i].slides[a[i].activeRSSlide]).find("rs-bgvideo");
                            r !== t && null !== r && r.length > 0 && a.playVideo(r, i)
                        }
                    })), a[i].c[0].addEventListener("mouseenter", (function() {
                        a[i].c.trigger("tp-mouseenter"), a[i].overcontainer = !0
                    }), {
                        passive: !0
                    }), a[i].c[0].addEventListener("mouseover", (function() {
                        a[i].c.trigger("tp-mouseover"), a[i].overcontainer = !0
                    }), {
                        passive: !0
                    }), a[i].c[0].addEventListener("mouseleave", (function() {
                        a[i].c.trigger("tp-mouseleft"), a[i].overcontainer = !1
                    }), {
                        passive: !0
                    }), a[i].c.find(".rs-layer video").each((function(t) {
                        var i = e(this);
                        i.removeClass("video-js vjs-default-skin"), i.attr("preload", ""), i.css({
                            display: "none"
                        })
                    })), a[i].rs_static_layer = a.getByTag(a[i].c[0], "RS-STATIC-LAYERS"), a.preLoadAudio && a[i].rs_static_layer.length > 0 && a.preLoadAudio(e(a[i].rs_static_layer), i, 1), a[i].rs_static_layer.length > 0 && (a.loadImages(a[i].rs_static_layer[0], i, 0, !0), a.waitForCurrentImages(a[i].rs_static_layer[0], i, (function() {
                        a[i] !== t && a[i].c.find("rs-static-layers img").each((function() {
                            this.src = a.getLoadObj(i, a.gA(this, "src") != t ? a.gA(this, "src") : this.src).src
                        }))
                    }))), a[i].rowzones = [], a[i].rowzonesHeights = [], a[i].topZones = [], a[i].middleZones = [], a[i].bottomZones = [], a[i].rowMiddleHeights = {};
                    var V = a.deepLink(i, F("#")[0]);
                    V !== t && (a[i].startWithSlide = V, a[i].deepLinkListener = !0, window.addEventListener("hashchange", (function() {
                        if (!0 !== a[i].ignoreDeeplinkChange) {
                            var e = a.deepLink(i, F("#")[0]);
                            e !== t && a.callingNewSlide(i, e, !0)
                        }
                        a[i].ignoreDeeplinkChange = !1
                    }))), a[i].loader = a.buildSpinner(i, a[i].spinner, a[i].spinnerclr), a[i].loaderVisible = !0, a[i].c.append(a[i].loader), y(i), ("off" !== a[i].parallax.type || a[i].scrolleffect.set || a[i].sbtimeline.set) && a.checkForParallax && a.checkForParallax(i), a[i].fallbacks.disableFocusListener || "true" == a[i].fallbacks.disableFocusListener || !0 === a[i].fallbacks.disableFocusListener || (a[i].c.addClass("rev_redraw_on_blurfocus"), G());
                    var X = a[i].viewPort;
                    for (var f in "on" === a[i].navigation.mouseScrollNavigation && (X.enable = !0), a[i].slides)
                        if (a[i].slides.hasOwnProperty(f)) {
                            var U = e(a[i].slides[f]);
                            a[i].rowzones[f] = [], a[i].rowzonesHeights[f] = [], a[i].topZones[f] = [], a[i].middleZones[f] = [], a[i].bottomZones[f] = [], U.find("rs-zone").each((function() {
                                a[i].rowzones[f].push(e(this)), this.className.indexOf("rev_row_zone_top") >= 0 && a[i].topZones[f].push(this), this.className.indexOf("rev_row_zone_middle") >= 0 && (a[i].middleZones[f].push(this), this.dataset.middle = "true"), this.className.indexOf("rev_row_zone_bottom") >= 0 && a[i].bottomZones[f].push(this)
                            }))
                        }
                    a.lazyLoadAllSlides(i), a[i].srowzones = [], a[i].smiddleZones = [], a[i].slayers && a[i].slayers.find("rs-zone").each((function() {
                        a[i].srowzones.push(e(this)), this.className.indexOf("rev_row_zone_middle") >= 0 && (a[i].smiddleZones.push(this), this.dataset.middle = "true")
                    })), "carousel" === a[i].sliderType && tpGS.gsap.set(a[i].canvas, {
                        scale: 1,
                        perspective: 1200,
                        transformStyle: "flat",
                        opacity: 0
                    }), a[i].c.prependTo(a[i].cpar), e("body").data("rs-fullScreenMode", !1), window.addEventListener("fullscreenchange", p, {
                        passive: !0
                    }), window.addEventListener("mozfullscreenchange", p, {
                        passive: !0
                    }), window.addEventListener("webkitfullscreenchange", p, {
                        passive: !0
                    }), a.document.on("updateContainerSizes." + a[i].c.attr("id"), (function() {
                        if (a[i] !== t) return a[i].c != t && void(a.updateDims(i, "ignore") && window.requestAnimationFrame((function() {
                            a.updateDims(i, "ignore"), a[i].fullScreenMode = a.checkfullscreenEnabled(i), a.lastwindowheight = a.getWinH(i), v(i)
                        })))
                    })), X.presize && (a[i].pr_next_slide = e(a[i].slides[0]), a.loadImages(a[i].pr_next_slide[0], i, 0, !0), a.waitForCurrentImages(a[i].pr_next_slide.find(".tp-layers"), i, (function() {
                        a.animateTheLayers && a.animateTheLayers({
                            slide: a[i].pr_next_key,
                            id: i,
                            mode: "preset",
                            caller: "runSlider"
                        })
                    }))), ("off" != a[i].parallax.type || a[i].sbtimeline.set || !0 === X.enable) && a.scrollTicker(i), !0 !== X.enable && (a[i].inviewport = !0, a.enterViewPort(i)), a.RS_toInit !== t && (a.RS_toInit[i] = !0), a[i].observeWrap && a.observeWraps && a.wrapObserver.observe(a[i].rsFullWidthWrap !== t ? a[i].rsFullWidthWrap[0] : a[i].cpar[0], i)
                }
            }
        },
        m = function(e, i) {
            a.winW < a[e].hideSliderAtLimit ? (a[e].c.trigger("stoptimer"), !0 !== a[e].sliderIsHidden && (a.sA(a[e].cpar[0], "displaycache", "none" != a[e].cpar.css("display") ? a[e].cpar.css("display") : a.gA(a[e].cpar[0], "displaycache")), a[e].cpar.css({
                display: "none"
            }), a[e].sliderIsHidden = !0)) : (!0 === a[e].sliderIsHidden || a[e].sliderIsHidden === t && a[e].c.is(":hidden")) && i && (a[e].cpar[0].style.display = a.gA(a[e].cpar[0], "displaycache") != t && "none" != a.gA(a[e].cpar[0], "displaycache") ? a.gA(a[e].cpar[0], "displaycache") : "block", a[e].sliderIsHidden = !1, a[e].c.trigger("restarttimer"), window.requestAnimationFrame((function() {
                v(e, !0)
            }))), a.hideUnHideNav && a[e].navigation.use && a.hideUnHideNav(e)
        },
        v = function(e, i, r) {
            if (a[e].c === t) return !1;
            if (a[e].dimensionReCheck = {}, a[e].c.trigger("revolution.slide.beforeredraw"), 1 == a[e].infullscreenmode && (a[e].minHeight = a.getWinH(e)), a.ISM && (a[e].lastMobileHeight = a.getWinH(e)), r && a.updateDims(e), !a.resizeThumbsTabs || !0 === a.resizeThumbsTabs(e)) {
                if (window.requestAnimationFrame((function() {
                        m(e, !0 !== i), M(e)
                    })), a[e].started) {
                    if ("carousel" == a[e].sliderType)
                        for (var o in a.prepareCarousel(e), a[e].sbgs) a[e].sbgs.hasOwnProperty(o) && a[e].sbgs[o].mDIM !== t && a.updateSlideBGs(e, a[e].sbgs[o].key, a[e].sbgs[o]);
                    else a.updateSlideBGs(e);
                    if ("carousel" === a[e].sliderType && (a[e].carCheckconW != a[e].canv.width || "fullscreen" == a[e].sliderLayout && a[e].carCheckconH != a[e].canv.height)) {
                        for (var s in clearTimeout(a[e].pcartimer), a[e].sbgs) a[e].sbgs[s].loadobj !== t && a.updateSlideBGs(e, a[e].sbgs[s].key, a[e].sbgs[s]);
                        "v" == a[e].carousel.orientation && tpGS.gsap.set(a[e].canvas, {
                            height: a[e].carousel.slide_height
                        }), requestAnimationFrame((function() {
                            a.prepareCarousel(e), a.animateTheLayers({
                                slide: "individual",
                                id: e,
                                mode: "rebuild",
                                caller: "containerResized_1"
                            }), a[e].carCheckconW = a[e].canv.width, a[e].carCheckconH = a[e].canv.height
                        })), a[e].lastconw = a[e].canv.width
                    }
                    if (a[e].pr_processing_key !== t ? a.animateTheLayers({
                            slide: a[e].pr_processing_key,
                            id: e,
                            mode: "rebuild",
                            caller: "containerResized_2"
                        }) : a[e].pr_active_key !== t && a.animateTheLayers({
                            slide: a[e].pr_active_key,
                            id: e,
                            mode: "rebuild",
                            caller: "containerResized_3"
                        }), "carousel" === a[e].sliderType) {
                        for (var s in a[e].panzoomTLs)
                            if (a[e].panzoomTLs.hasOwnProperty(s)) {
                                var n = a.gA(a[e].panzoomBGs[s][0], "key");
                                a.startPanZoom(a[e].panzoomBGs[s], e, a[e].panzoomTLs[s].progress(), s, a[e].panzoomTLs[s].isActive() ? "play" : "reset", n)
                            }
                    } else a[e].pr_active_bg !== t && a[e].pr_active_bg[0] !== t && f(e, a[e].pr_active_bg, a[e].pr_active_bg[0].dataset.key), a[e].pr_next_bg !== t && a[e].pr_next_bg[0] !== t && f(e, a[e].pr_next_bg, a[e].pr_next_bg[0].dataset.key);
                    clearTimeout(a[e].mNavigTimeout), a.manageNavigation && (a[e].mNavigTimeout = setTimeout((function() {
                        a.manageNavigation(e)
                    }), 20))
                }
                a.prepareCoveredVideo(e)
            }
            a[e].c.trigger("revolution.slide.afterdraw", [{
                id: e
            }])
        },
        f = function(e, i, r) {
            if (a[e].panzoomTLs !== t) {
                var o = a.getSlideIndex(e, r);
                a.startPanZoom(i, e, a[e].panzoomTLs[o] !== t ? a[e].panzoomTLs[o].progress() : 0, o, "play", r)
            }
        },
        y = function(i) {
            !0 !== a[i].noDetach && a[i].canvas.detach();
            var r = a.isFaceBook() ? "visible" : "hidden";
            if (a[i].autoHeight && tpGS.gsap.set([a[i].c, a[i].cpar], {
                    maxHeight: "none"
                }), tpGS.gsap.set(a[i].canvas, a[i].modal !== t && a[i].modal.useAsModal ? {
                    overflow: r,
                    width: "100%",
                    height: "100%"
                } : {
                    overflow: r,
                    width: "100%",
                    height: "100%",
                    maxHeight: a[i].autoHeight ? "none" : a[i].cpar.css("maxHeight")
                }), "carousel" === a[i].sliderType) {
                var o = "margin-top:" + parseInt(a[i].carousel.padding_top || 0, 0) + "px;";
                a[i].canvas.css({
                    overflow: "visible"
                }).wrap('<rs-carousel-wrap style="' + o + '"></rs-carousel-wrap>'), a[i].cpar.prepend("<rs-carousel-space></rs-carousel-space>").append("<rs-carousel-space></rs-carousel-space>"), a.defineCarouselElements(i)
            }
            a[i].startWithSlide = a[i].startWithSlide === t ? t : Math.max(1, (a[i].sliderType, parseInt(a[i].startWithSlide))), a[i].cpar.css({
                overflow: "visible"
            }), a[i].scrolleffect.bgs = [];
            for (var s = 0; s < a[i].slides.length; s++) {
                var n = e(a[i].slides[s]),
                    l = a.gA(n[0], "key"),
                    d = n.find(".rev-slidebg") || n.find(">img"),
                    c = a[i].sbgs[l] = w(d.data(), i),
                    p = n.data("mediafilter");
                if (c.skeyindex = a.getSlideIndex(i, l), c.bgvid = n.find("rs-bgvideo"), d.detach(), c.bgvid.detach(), (a[i].startWithSlide != t && a.gA(a[i].slides[s], "originalindex") == a[i].startWithSlide || a[i].startWithSlide === t && 0 == s) && (a[i].pr_next_key = a[i].carousel.focused = n.index()), tpGS.gsap.set(n, {
                        width: "100%",
                        height: "100%",
                        overflow: r
                    }), d.wrap('<rs-sbg-px><rs-sbg-wrap data-key="' + l + '"></rs-sbg-wrap></rs-sbg-px>'), c.wrap = e(a.closestNode(d[0], "RS-SBG-WRAP")), c.src = d[0].src, c.lazyload = c.lazyload = g(d[0], t, i), c.slidebgimage = !0, c.loadobj = c.loadobj === t ? {} : c.loadobj, c.mediafilter = p = "none" === p || p === t ? "" : p, c.sbg = document.createElement("rs-sbg"), c.sbg.alt = d[0].alt, a[i].overlay !== t && "none" != a[i].overlay.type && a[i].overlay.type != t) {
                    var u = a.createOverlay(i, a[i].overlay.type, a[i].overlay.size, {
                            0: a[i].overlay.colora,
                            1: a[i].overlay.colorb
                        }),
                        h = document.createElement("rs-dotted");
                    h.style.backgroundImage = u, c.wrap.append(h), c.overlay = h
                }
                d.data("mediafilter", p), c.canvas = document.createElement("canvas"), c.sbg.appendChild(c.canvas), c.canvas.style.width = "100%", c.canvas.style.height = "100%", c.ctx = c.canvas.getContext("2d"), c.lazyload !== t && (c.sbg.dataset.lazyload = c.lazyload), c.sbg.className = p, c.sbg.src = c.src, c.sbg.dataset.bgcolor = c.bgcolor, c.sbg.style.width = "100%", c.sbg.style.height = "100%", c.key = l, c.wrap[0].dataset.key = l, e(c.sbg).data(c), c.wrap.data(c), c.wrap[0].appendChild(c.sbg);
                var m = document.createComment("Runtime Modification - Img tag is Still Available for SEO Goals in Source - " + d.get(0).outerHTML);
                d.replaceWith(m), a.gA(n[0], "sba") === t && a.sA(n[0], "sba", "");
                var v = {},
                    f = a.gA(n[0], "sba").split(";");
                for (var y in f)
                    if (f.hasOwnProperty(y)) {
                        var b = f[y].split(":");
                        switch (b[0]) {
                            case "f":
                                v.f = b[1];
                                break;
                            case "b":
                                v.b = b[1];
                                break;
                            case "g":
                                v.g = b[1];
                                break;
                            case "t":
                                v.s = b[1]
                        }
                    }
                a.sA(n[0], "scroll-based", !!a[i].sbtimeline.set && (v.s !== t && v.s)), c.bgvid.length > 0 && (c.bgvidid = c.bgvid[0].id, c.animateDirection = "idle", c.bgvid.addClass("defaultvid").css({
                    zIndex: 30
                }), p !== t && "" !== p && "none" !== p && c.bgvid.addClass(p), c.bgvid.appendTo(c.wrap), c.parallax != t && (c.bgvid.data("parallax", c.parallax), c.bgvid.data("showcoveronpause", "on"), c.bgvid.data("mediafilter", p)), c.poster = !1, (c.src !== t && -1 == c.src.indexOf("assets/dummy.png") && -1 == c.src.indexOf("assets/transparent.png") || c.lazyload !== t && -1 == c.lazyload.indexOf("assets/transparent.png") && -1 == c.lazyload.indexOf("assets/dummy.png")) && (c.poster = !0), c.bgvid.data("bgvideo", 1), c.bgvid[0].dataset.key = l, 0 == c.bgvid.find(".rs-fullvideo-cover").length && c.bgvid.append('<div class="rs-fullvideo-cover"></div>')), a[i].scrolleffect.set ? (a[i].scrolleffect.bgs.push({
                    fade: v.f !== t ? v.f : !!a[i].scrolleffect.slide && a[i].scrolleffect.fade,
                    blur: v.b !== t ? v.b : !!a[i].scrolleffect.slide && a[i].scrolleffect.blur,
                    grayscale: v.g !== t ? v.g : !!a[i].scrolleffect.slide && a[i].scrolleffect.grayscale,
                    c: c.wrap.wrap("<rs-sbg-effectwrap></rs-sbg-effectwrap>").parent()
                }), n.prepend(c.wrap.parent().parent())) : n.prepend(c.wrap.parent())
            }
            "carousel" === a[i].sliderType ? (tpGS.gsap.set(a[i].carousel.wrap, {
                opacity: 0
            }), a[i].c[0].appendChild(a[i].carousel.wrap[0])) : a[i].c[0].appendChild(a[i].canvas[0])
        },
        w = function(i, r) {
            i.bg = i.bg === t ? "" : i.bg;
            var o = i.bg.split(";"),
                s = {
                    bgposition: "50% 50%",
                    bgfit: "cover",
                    bgrepeat: "no-repeat",
                    bgcolor: "transparent"
                };
            for (var n in o)
                if (o.hasOwnProperty(n)) {
                    var l = o[n].split(":"),
                        d = l[0],
                        c = l[1],
                        p = "";
                    switch (d) {
                        case "p":
                            p = "bgposition";
                            break;
                        case "f":
                            p = "bgfit";
                            break;
                        case "r":
                            p = "bgrepeat";
                            break;
                        case "c":
                            p = "bgcolor"
                    }
                    p !== t && (s[p] = c)
                }
            return a[r].fallbacks.panZoomDisableOnMobile && a.ISM && (s.panzoom = t, s.bgfit = "cover", i.panzoom = t), e.extend(!0, i, s)
        },
        b = function(e, i, r) {
            if (a[i] !== t) {
                a[i].syncload--;
                var o = a.gA(e, "reference");
                for (var s in a[i].loadqueue) a[i].loadqueue.hasOwnProperty(s) && "loaded" !== a[i].loadqueue[s].progress && o == a[i].loadqueue[s].src && (a[i].loadqueue[s].img = e, a[i].loadqueue[s].progress = r, a[i].loadqueue[s].width = e.naturalWidth, a[i].loadqueue[s].height = e.naturalHeight);
                _(i)
            }
        },
        _ = function(i) {
            4 != a[i].syncload && a[i].loadqueue && e.each(a[i].loadqueue, (function(r, o) {
                if ("prepared" == o.progress && a[i].syncload <= 4) {
                    if (a[i].syncload++, "img" == o.type) {
                        var s = new Image;
                        a.sA(s, "reference", o.src), "RS-SBG" == o.img.tagName && o.img && o.img.alt && (s.alt = o.img.alt), !/^([\w]+\:)?\/\//.test(o.src) || -1 !== o.src.indexOf(location.host) && -1 === o.src.indexOf("." + location.host) || "" === a[i].imgCrossOrigin || a[i].imgCrossOrigin === t || (s.crossOrigin = a[i].imgCrossOrigin), s.onload = function() {
                            b(this, i, "loaded"), o.error = !1
                        }, s.onerror = function() {
                            s.failedOnce || (s.failedOnce = !0, delete s.crossOrigin, s.removeAttribute("crossorigin"), s.src = o.src, b(this, i, "failed"), o.error = !0)
                        }, s.src = o.src, o.starttoload = Date.now()
                    } else e.get(o.src, (function(e) {
                        o.innerHTML = (new XMLSerializer).serializeToString(e.documentElement), o.progress = "loaded", a[i].syncload--, _(i)
                    })).fail((function() {
                        o.progress = "failed", a[i].syncload--, _(i)
                    }));
                    o.progress = "inload"
                }
            }))
        },
        S = function(e, t) {
            return console.log("Static Image " + e + "  Could not be loaded in time. Error Exists:" + t), !0
        },
        x = function(e, t) {
            if (Date.now() - a[t][e + "starttime"] > 5e3 && 1 != a[t][e + "warning"]) {
                a[t][e + "warning"] = !0;
                var i = e + " Api Could not be loaded !";
                "https:" === location.protocol && (i += " Please Check and Renew SSL Certificate !"), console.error(i), a[t].c.append('<div style="position:absolute;top:50%;width:100%;color:#e74c3c;  font-size:16px; text-align:center; padding:15px;background:#000; display:block;"><strong>' + i + "</strong></div>")
            }
            return !0
        },
        k = function(i) {
            if (a[i] !== t) {
                var r = a[i];
                if (a[i].pr_active_slide = e(a[i].slides[a[i].pr_active_key]), a[i].pr_next_slide = e(a[i].slides[a[i].pr_processing_key]), a[i].pr_active_bg = a[i].pr_active_slide.find("rs-sbg-wrap"), a[i].pr_next_bg = a[i].pr_next_slide.find("rs-sbg-wrap"), a[i].pr_active_bg !== t && a[i].pr_active_bg.length > 0 && tpGS.gsap.to(a[i].pr_active_bg, .5, {
                        opacity: 0
                    }), a[i].pr_next_bg !== t && a[i].pr_next_bg.length > 0 && tpGS.gsap.to(a[i].pr_next_bg, .5, {
                        opacity: 0
                    }), tpGS.gsap.set(a[i].pr_active_slide, {
                        zIndex: 18
                    }), a[i].pr_next_slide !== t && a[i].pr_next_slide.length > 0 && tpGS.gsap.set(a[i].pr_next_slide, {
                        autoAlpha: 0,
                        zIndex: 20
                    }), a[i].tonpause = !1, "carousel" === r.sliderType && "all" === r.carousel.showLayersAllTime)
                    for (var o = 0; o < a[i].slides.length; o++) {
                        var s = a[i].slides[o].dataset.key;
                        a[i].layers[s] = a.getLayersInSlide(e(a[i].slides[o]), "rs-layer", "carousel"), a[i].pr_active_key !== s && a.removeTheLayers(e(a[i].slides[o]), i, !0)
                    }
                a[i].pr_active_key !== t && a.removeTheLayers(a[i].pr_active_slide, i, !0), a[i].firststart = 1, setTimeout((function() {
                    delete a[i].pr_active_key, delete a[i].pr_processing_key
                }), 200)
            }
        },
        R = function(i, r, o) {
            if (a[i] !== t)
                if (clearTimeout(a[i].waitWithSwapSlide), a[i].pr_processing_key === t || !0 !== a[i].firstSlideShown) {
                    if (clearTimeout(a[i].waitWithSwapSlide), a[i].startWithSlideKey !== t && (a[i].pr_next_key = a.getComingSlide(i, a[i].startWithSlideKey).nindex, a[i].startedWithOtherSlide = !0, delete a[i].startWithSlideKey), a[i].pr_active_slide = e(a[i].slides[a[i].pr_active_key]), a[i].pr_next_slide = e(a[i].slides[a[i].pr_next_key]), a[i].pr_next_key == a[i].pr_active_key) return delete a[i].pr_next_key;
                    var s = a.gA(a[i].pr_next_slide[0], "key");
                    a[i].sbgs[s] !== t && a[i].sbgs[s].bgvid && a[i].sbgs[s].bgvid.length > 0 && (a[i].videos == t || a[i].videos[a[i].sbgs[s].bgvid[0].id] === t) && a.manageVideoLayer(a[i].sbgs[s].bgvid, i, s), a[i].pr_processing_key = a[i].pr_next_key, a[i].pr_cache_pr_next_key = a[i].pr_next_key, delete a[i].pr_next_key, a[i].pr_next_slide !== t && a[i].pr_next_slide[0] !== t && a.gA(a[i].pr_next_slide[0], "hal") !== t && a.sA(a[i].pr_next_slide[0], "sofacounter", a.gA(a[i].pr_next_slide[0], "sofacounter") === t ? 1 : parseInt(a.gA(a[i].pr_next_slide[0], "sofacounter"), 0) + 1), a[i].stopLoop && a[i].pr_processing_key == a[i].lastslidetoshow - 1 && (a[i].progressC.css({
                        visibility: "hidden"
                    }), a[i].c.trigger("revolution.slide.onstop"), a[i].noloopanymore = 1), a[i].pr_next_slide.index() === a[i].slideamount - 1 && a[i].looptogo > 0 && "disabled" !== a[i].looptogo && (a[i].looptogo--, a[i].looptogo <= 0 && (a[i].stopLoop = !0)), a[i].tonpause = !0, a[i].slideInSwapTimer = !0, a[i].c.trigger("stoptimer"), "off" === a[i].spinner ? a[i].loader !== t && !0 === a[i].loaderVisible && (a[i].loader.css({
                        display: "none"
                    }), a[i].loaderVisible = !1) : a[i].loadertimer = setTimeout((function() {
                        a[i].loader !== t && !0 !== a[i].loaderVisible && (a[i].loader.css({
                            display: "block"
                        }), a[i].loaderVisible = !0)
                    }), 100);
                    var n = "carousel" === a[i].sliderType && "all" !== a[i].lazyType ? a.loadVisibleCarouselItems(i) : a[i].pr_next_slide[0];
                    a.loadImages(n, i, 1), a.preLoadAudio && a.preLoadAudio(a[i].pr_next_slide, i, 1), a.waitForCurrentImages(n, i, (function() {
                        a[i].firstSlideShown = !0, a[i].pr_next_slide.find("rs-bgvideo").each((function() {
                            a.prepareCoveredVideo(i)
                        })), a.loadUpcomingContent(i), window.requestAnimationFrame((function() {
                            O(a[i].pr_next_slide.find("rs-sbg"), i, r, o)
                        }))
                    }))
                } else a[i].waitWithSwapSlide = setTimeout((function() {
                    R(i, r)
                }), 18)
        },
        O = function(i, r, o, s) {
            if (a[r] !== t) {
                M(r), a[r].pr_active_slide = e(a[r].slides[a[r].pr_active_key]), a[r].pr_next_slide = e(a[r].slides[a[r].pr_processing_key]), a[r].pr_active_bg = a[r].pr_active_slide.find("rs-sbg-wrap"), a[r].pr_next_bg = a[r].pr_next_slide.find("rs-sbg-wrap"), a[r].tonpause = !1, clearTimeout(a[r].loadertimer), a[r].loader !== t && !0 === a[r].loaderVisible && (window.requestAnimationFrame((function() {
                    a[r].loader.css({
                        display: "none"
                    })
                })), a[r].loaderVisible = !1), a[r].onBeforeSwap = {
                    slider: r,
                    slideIndex: parseInt(a[r].pr_active_key, 0) + 1,
                    slideLIIndex: a[r].pr_active_key,
                    nextSlideIndex: parseInt(a[r].pr_processing_key, 0) + 1,
                    nextSlideLIIndex: a[r].pr_processing_key,
                    nextslide: a[r].pr_next_slide,
                    slide: a[r].pr_active_slide,
                    currentslide: a[r].pr_active_slide,
                    prevslide: a[r].pr_lastshown_key !== t ? a[r].slides[a[r].pr_lastshown_key] : ""
                }, "carousel" !== a[r].sliderType && tpGS.gsap.set(a[r].pr_next_slide, {
                    display: "block"
                }), a[r].c.trigger("revolution.slide.onbeforeswap", a[r].onBeforeSwap);
                var n = a.gA(a[r].pr_active_slide[0], "key"),
                    l = a[r].sbgs[n];
                if (l && l.panzoom && l.pzAnim && (l.pzLastFrame = !0, a.pzDrawShadow(r, l, l.pzAnim.start)), a[r].sbgs[a.gA(a[r].pr_next_slide[0], "key")] && tpGS.gsap.fromTo(a[r].sbgs[a.gA(a[r].pr_next_slide[0], "key")].overlay, {
                        opacity: 0
                    }, {
                        opacity: 1,
                        duration: 1,
                        ease: "none"
                    }), l && tpGS.gsap.to(l.overlay, {
                        opacity: 0,
                        duration: 1,
                        ease: "none"
                    }), a[r].transition = 1, a[r].stopByVideo = !1, a[r].pr_next_slide[0] !== t && a.gA(a[r].pr_next_slide[0], "duration") != t && "" != a.gA(a[r].pr_next_slide[0], "duration") ? a[r].duration = parseInt(a.gA(a[r].pr_next_slide[0], "duration"), 0) : a[r].duration = a[r].origcd, a[r].pr_next_slide[0] === t || "true" != a.gA(a[r].pr_next_slide[0], "ssop") && !0 !== a.gA(a[r].pr_next_slide[0], "ssop") ? a[r].ssop = !1 : a[r].ssop = !0, a[r].sbtimeline.set && a[r].sbtimeline.fixed && a.updateFixedScrollTimes(r), a[r].c.trigger("nulltimer"), a[r].sdir = "bullet" !== a[r].sc_indicator && a[r].pr_active_key == a[r].slideamount - 1 && 0 == a[r].pr_processing_key ? 0 : a[r].pr_processing_key < a[r].pr_active_key ? 1 : 0, "arrow" == a[r].sc_indicator && (a[r].sdir = a[r].sc_indicator_dir), a[r].lsdir = a[r].sdir, a[r].pr_active_key != a[r].pr_processing_key && 1 != a[r].firststart && "carousel" !== a[r].sliderType && a.removeTheLayers && a.removeTheLayers(a[r].pr_active_slide, r), 1 !== a.gA(a[r].pr_next_slide[0], "rspausetimeronce") && 1 !== a.gA(a[r].pr_next_slide[0], "rspausetimeralways") ? a[r].c.trigger("restarttimer") : (a[r].stopByVideo = !0, a.unToggleState(a[r].slidertoggledby)), a.sA(a[r].pr_next_slide[0], "rspausetimeronce", 0), a[r].pr_next_slide[0] !== t && a.sA(a[r].c[0], "slideactive", a.gA(a[r].pr_next_slide[0], "key")), "carousel" == a[r].sliderType) {
                    if (a[r].mtl = tpGS.gsap.timeline(), a[r].carousel.focused = a[r].pr_processing_key, a.prepareCarousel(r), "v" != a[r].carousel.orientation && "fullscreen" !== a[r].sliderLayout || tpGS.gsap.set(a[r].canvas, {
                            height: a[r].carousel.slide_height
                        }), L(r, s), a.updateSlideBGs(r), !0 !== a[r].carousel.checkFVideo) {
                        var d = a.gA(a[r].pr_next_slide[0], "key");
                        a[r].sbgs[d] !== t && a[r].sbgs[d].bgvid !== t && 0 !== a[r].sbgs[d].bgvid.length && a.playBGVideo(r, d), a[r].carousel.checkFVideo = !0
                    }
                    a[r].transition = 0, a[r].startedWithOtherSlide && (setTimeout((function() {
                        a[r].carousel.focused = a[r].pr_active_key, a.positionCarousel(r)
                    })), delete a[r].startedWithOtherSlide)
                } else {
                    a[r].pr_lastshown_key = a[r].pr_lastshown_key === t ? a[r].pr_next_key !== t ? a[r].pr_next_key : a[r].pr_processing_key !== t ? a[r].pr_processing_key : a[r].pr_active_key !== t ? a[r].pr_active_key : a[r].pr_lastshown_key : a[r].pr_lastshown_key, a[r].mtl = tpGS.gsap.timeline({
                        paused: !0,
                        onComplete: function() {
                            L(r)
                        }
                    }), a[r].pr_next_key !== t ? a.animateTheLayers({
                        slide: a[r].pr_next_key,
                        id: r,
                        mode: "preset",
                        caller: "swapSlideProgress_1"
                    }) : a[r].pr_processing_key !== t ? a.animateTheLayers({
                        slide: a[r].pr_processing_key,
                        id: r,
                        mode: "preset",
                        caller: "swapSlideProgress_2"
                    }) : a[r].pr_active_key !== t && a.animateTheLayers({
                        slide: a[r].pr_active_key,
                        id: r,
                        mode: "preset",
                        caller: "swapSlideProgress_3"
                    }), 1 == a[r].firststart && (a[r].pr_active_slide[0] !== t && tpGS.gsap.set(a[r].pr_active_slide, {
                        autoAlpha: 0
                    }), a[r].firststart = 0), a[r].pr_active_slide[0] !== t && tpGS.gsap.set(a[r].pr_active_slide, {
                        zIndex: 18
                    }), a[r].pr_next_slide[0] !== t && tpGS.gsap.set(a[r].pr_next_slide, {
                        autoAlpha: 0,
                        zIndex: 20
                    });
                    d = a.gA(a[r].pr_next_slide[0], "key");
                    a[r].sbgs[d] !== t && a[r].sbgs[d].alt === t && (a[r].sbgs[d].alt = a.gA(a[r].pr_next_slide[0], "alttrans") || !1, a[r].sbgs[d].alt = !1 !== a[r].sbgs[d].alt && a[r].sbgs[d].alt.split(","), a[r].sbgs[d].altIndex = 0, a[r].sbgs[d].altLen = !1 !== a[r].sbgs[d].alt ? a[r].sbgs[d].alt.length : 0);
                    a[r].firstSlideAnimDone === t && a[r].fanim !== t && !1 !== a[r].fanim || (a[r].sbgs[d].slideanimation === t || a[r].sbgs[d].slideanimationRebuild || (a[r].sbgs[d].random !== t && a.SLTR !== t || a[r].sbgs[d].altLen > 0 && a.SLTR));
                    a[r].sbgs[d].slideanimation = a[r].firstSlideAnimDone === t && a[r].fanim !== t && !1 !== a[r].fanim ? a.convertSlideAnimVals(e.extend(!0, {}, a.getSlideAnim_EmptyObject(), a[r].fanim)) : a[r].sbgs[d].slideanimation === t || a[r].sbgs[d].slideanimationRebuild || a[r].sbgs[d].altLen > 0 && "default_first_anim" == a[r].sbgs[d].alt[a[r].sbgs[d].altIndex] ? a.getSlideAnimationObj(r, {
                        anim: a.gA(a[r].pr_next_slide[0], "anim"),
                        filter: a.gA(a[r].pr_next_slide[0], "filter"),
                        in: a.gA(a[r].pr_next_slide[0], "in"),
                        out: a.gA(a[r].pr_next_slide[0], "out"),
                        d3: a.gA(a[r].pr_next_slide[0], "d3")
                    }, d) : a[r].sbgs[d].random !== t && a.SLTR !== t ? a.convertSlideAnimVals(e.extend(!0, {}, a.getSlideAnim_EmptyObject(), a.getAnimObjectByKey(a.getRandomSlideTrans(a[r].sbgs[d].random.rndmain, a[r].sbgs[d].random.rndgrp, a.SLTR), a.SLTR))) : a[r].sbgs[d].altLen > 0 && a.SLTR !== t ? a.convertSlideAnimVals(e.extend(!0, {
                        altAnim: a[r].sbgs[d].alt[a[r].sbgs[d].altIndex]
                    }, a.getSlideAnim_EmptyObject(), a.getAnimObjectByKey(a[r].sbgs[d].alt[a[r].sbgs[d].altIndex], a.SLTR))) : a[r].sbgs[d].slideanimation, a[r].sbgs[d].altLen > 0 && (a[r].sbgs[d].firstSlideAnimDone !== t ? (a[r].sbgs[d].altIndex++, a[r].sbgs[d].altIndex = a[r].sbgs[d].altIndex >= a[r].sbgs[d].altLen ? 0 : a[r].sbgs[d].altIndex) : (a[r].sbgs[d].firstSlideAnimDone = !0, a.SLTR === t && a.SLTR_loading === t && a.loadSlideAnimLibrary(r), a[r].sbgs[d].alt.push("default_first_anim"), a[r].sbgs[d].altLen++)), a[r].sbgs[d].currentState = "animating", a.animateSlide(r, a[r].sbgs[d].slideanimation), a[r].firstSlideAnimDone === t && a[r].fanim !== t && !1 !== a[r].fanim && (a[r].sbgs[d].slideanimationRebuild = !0), a[r].firstSlideAnimDone = !0, a[r].pr_next_bg.data("panzoom") !== t && requestAnimationFrame((function() {
                        var e = a.gA(a[r].pr_next_slide[0], "key");
                        a.startPanZoom(a[r].pr_next_bg, r, 0, a.getSlideIndex(r, e), "first", e)
                    })), a[r].mtl.pause()
                }
                if (a.animateTheLayers ? "carousel" === a[r].sliderType ? (!1 !== a[r].carousel.showLayersAllTime && (a[r].carousel.allLayersStarted ? a.animateTheLayers({
                        slide: "individual",
                        id: r,
                        mode: "rebuild",
                        caller: "swapSlideProgress_5"
                    }) : a.animateTheLayers({
                        slide: "individual",
                        id: r,
                        mode: "start",
                        caller: "swapSlideProgress_4"
                    }), a[r].carousel.allLayersStarted == t && (a.updateCarouselRows(r), a[r].carousel.allLayersStarted = !0)), 0 !== a[r].firststart ? a.animateTheLayers({
                        slide: 0,
                        id: r,
                        mode: "start",
                        caller: "swapSlideProgress_6"
                    }) : !0 !== o && a.animateTheLayers({
                        slide: a[r].pr_next_key !== t ? a[r].pr_next_key : a[r].pr_processing_key !== t ? a[r].pr_processing_key : a[r].pr_active_key,
                        id: r,
                        mode: "start",
                        caller: "swapSlideProgress_7"
                    }), a[r].firststart = 0) : a.animateTheLayers({
                        slide: a[r].pr_next_key !== t ? a[r].pr_next_key : a[r].pr_processing_key !== t ? a[r].pr_processing_key : a[r].pr_active_key,
                        id: r,
                        mode: "start",
                        caller: "swapSlideProgress_8"
                    }) : a[r].mtl != t && setTimeout((function() {
                        a[r].mtl.resume()
                    }), 18), "carousel" !== a[r].sliderType)
                    if (a[r].scwDur = .001, Array.isArray(a[r].scwCallback) && a[r].scwCallback.length > 0 && a[r].pr_next_slide[0].classList.contains("rs-addon-pano-active")) {
                        a[r].scwDone = !1, a[r].scwCount = a[r].scwCallback.length;
                        for (var c = 0; c < a[r].scwCallback.length; c++) a[r].scwCallback[c]();
                        a[r].scwTimeout = tpGS.gsap.delayedCall(2, (function() {
                            a[r].scwCount > 0 && (a[r].scwTween && "function" == typeof a[r].scwTween.kill && (a[r].scwTween.kill(), a[r].scwTween = null), a[r].scwTween = tpGS.gsap.to(a[r].pr_next_slide, {
                                duration: a[r].scwDur,
                                autoAlpha: 1
                            }))
                        }))
                    } else tpGS.gsap.to(a[r].pr_next_slide, {
                        duration: a[r].scwDur,
                        autoAlpha: 1
                    })
            }
        },
        L = function(i) {
            if (a[i] !== t) {
                if ("done" !== a.RS_swapList[i]) {
                    a.RS_swapList[i] = "done";
                    var r = e.inArray(i, a.RS_swapping);
                    a.RS_swapping.splice(r, 1)
                }
                if (a[i].firstSlideAvailable === t && (a[i].firstSlideAvailable = !0, window.requestAnimationFrame((function() {
                        "hero" !== a[i].sliderType && a.createNavigation && a[i].navigation.use && !0 !== a[i].navigation.createNavigationDone && a.createNavigation(i)
                    }))), "carousel" === a[i].sliderType && tpGS.gsap.to(a[i].carousel.wrap, 1, {
                        opacity: 1
                    }), a[i].pr_active_key = a[i].pr_processing_key !== t ? a[i].pr_processing_key : a[i].pr_active_key, delete a[i].pr_processing_key, "scroll" != a[i].parallax.type && "scroll+mouse" != a[i].parallax.type && "mouse+scroll" != a[i].parallax.type || (a[i].lastscrolltop = -999, a.generalObserver(a.ISM)), a[i].mtldiff = a[i].mtl.time(), delete a[i].mtl, a[i].pr_active_key !== t) {
                    a.gA(a[i].slides[a[i].pr_active_key], "sloop") !== t && function(e) {
                        if (a[e] !== t) {
                            a[e].sloops = a[e].sloops === t ? {} : a[e].sloops;
                            var i = a.gA(a[e].slides[a[e].pr_active_key], "key"),
                                r = a[e].sloops[i];
                            if (r === t) {
                                r = {
                                    s: 2500,
                                    e: 4500,
                                    r: "unlimited"
                                };
                                var o = a.gA(a[e].slides[a[e].pr_active_key], "sloop").split(";");
                                for (var s in o)
                                    if (o.hasOwnProperty(s)) {
                                        var n = o[s].split(":");
                                        switch (n[0]) {
                                            case "s":
                                                r.s = parseInt(n[1], 0) / 1e3;
                                                break;
                                            case "e":
                                                r.e = parseInt(n[1], 0) / 1e3;
                                                break;
                                            case "r":
                                                r.r = n[1]
                                        }
                                    }
                                r.r = "unlimited" === r.r ? -1 : parseInt(r.r, 0), a[e].sloops[i] = r, r.key = i
                            }
                            r.ct = {
                                time: r.s
                            }, r.tl = tpGS.gsap.timeline({}), r.timer = tpGS.gsap.fromTo(r.ct, r.e - r.s, {
                                time: r.s
                            }, {
                                time: r.e,
                                ease: "none",
                                onRepeat: function() {
                                    for (var i in a[e].layers[r.key]) a[e].layers[r.key].hasOwnProperty(i) && a[e]._L[i].timeline.play(r.s);
                                    var o = a[e].progressC;
                                    o !== t && o[0] !== t && o[0].tween !== t && o[0].tween.time(r.s)
                                },
                                onUpdate: function() {},
                                onComplete: function() {}
                            }).repeat(r.r), r.tl.add(r.timer, r.s), r.tl.time(a[e].mtldiff)
                        }
                    }(i), a.sA(a[i].slides[a[i].activeRSSlide], "isactiveslide", !1), a[i].activeRSSlide = a[i].pr_active_key, a.sA(a[i].slides[a[i].activeRSSlide], "isactiveslide", !0);
                    var o = a.gA(a[i].slides[a[i].pr_active_key], "key"),
                        s = a.gA(a[i].slides[a[i].pr_lastshown_key], "key");
                    a.sA(a[i].c[0], "slideactive", o), s !== t && a[i].panzoomTLs !== t && a[i].panzoomTLs[a.getSlideIndex(i, s)] !== t && ("carousel" === a[i].sliderType ? (a[i].panzoomTLs[a.getSlideIndex(i, s)].timeScale(3), a[i].panzoomTLs[a.getSlideIndex(i, s)].reverse()) : a[i].panzoomTLs[a.getSlideIndex(i, s)].pause()), I(i, o);
                    var n = {
                        slider: i,
                        slideIndex: parseInt(a[i].pr_active_key, 0) + 1,
                        slideLIIndex: a[i].pr_active_key,
                        slide: a[i].pr_next_slide,
                        currentslide: a[i].pr_next_slide,
                        prevSlideIndex: a[i].pr_lastshown_key !== t && parseInt(a[i].pr_lastshown_key, 0) + 1,
                        prevSlideLIIndex: a[i].pr_lastshown_key !== t && parseInt(a[i].pr_lastshown_key, 0),
                        prevSlide: a[i].pr_lastshown_key !== t && a[i].slides[a[i].pr_lastshown_key]
                    };
                    if (a[i].c.trigger("revolution.slide.onchange", n), a[i].c.trigger("revolution.slide.onafterswap", n), "" + a[i].pr_lastshown_key != "" + a[i].pr_active_key && "carousel" !== a[i].sliderType && tpGS.gsap.set(n.prevSlide, {
                            display: "none",
                            delay: .01
                        }), a[i].deepLinkListener || a[i].enableDeeplinkHash) {
                        var l = a.gA(a[i].slides[a[i].pr_active_key], "deeplink");
                        l !== t && l.length > 0 && (a[i].ignoreDeeplinkChange = !0, window.location.hash = a.gA(a[i].slides[a[i].pr_active_key], "deeplink"))
                    }
                    a[i].pr_lastshown_key = a[i].pr_active_key, a[i].startWithSlide !== t && "done" !== a[i].startWithSlide && "carousel" === a[i].sliderType && (a[i].firststart = 0), a[i].duringslidechange = !1, a[i].pr_active_slide.length > 0 && 0 != a.gA(a[i].pr_active_slide[0], "hal") && a.gA(a[i].pr_active_slide[0], "hal") <= a.gA(a[i].pr_active_slide[0], "sofacounter") && a[i].c.revremoveslide(a[i].pr_active_slide.index());
                    var d = a[i].pr_processing_key || a[i].pr_active_key || 0;
                    a[i].rowzones != t && (d = d > a[i].rowzones.length ? a[i].rowzones.length : d), (a[i].rowzones != t && a[i].rowzones.length > 0 && a[i].rowzones[d] != t && d >= 0 && d <= a[i].rowzones.length && a[i].rowzones[d].length > 0 || a.winH < a[i].module.height) && a.updateDims(i), a[i].firstLetItFree === t && (a.generalObserver(a.ISM), a[i].firstLetItFree = !0), a[i].skipAttachDetach = !1
                }
            }
        },
        I = function(e, i) {
            a[e].sbgs[i] === t || a[e].sbgs[i].loadobj.img ? a[e].pr_next_bg.data("panzoom") !== t && (a[e].panzoomTLs !== t && a[e].panzoomTLs[a.getSlideIndex(e, i)] !== t ? (a[e].panzoomTLs[a.getSlideIndex(e, i)].timeScale(1), a[e].panzoomTLs[a.getSlideIndex(e, i)].play()) : a.startPanZoom(a[e].pr_next_bg, e, 0, a.getSlideIndex(e, i), "play", i)) : tpGS.gsap.delayedCall(.1, (function() {
                I(e, i)
            }))
        },
        M = function(i) {
            var r = a[i].progressBar;
            if (a[i].progressC === t || 0 == a[i].progressC.length)
                if (a[i].progressC = e('<rs-progress style="visibility:hidden;"></rs-progress>'), "horizontal" === r.style || "vertical" === r.style) {
                    if ("module" === r.basedon) {
                        for (var o = "", s = 0; s < a[i].slideamount; s++) o += "<rs-progress-bar></rs-progress-bar>";
                        o += "<rs-progress-bgs>";
                        for (s = 0; s < a[i].slideamount; s++) o += "<rs-progress-bg></rs-progress-bg>";
                        if (o += "</rs-progress-bgs>", "nogap" !== r.gaptype)
                            for (s = 0; s < a[i].slideamount; s++) o += "<rs-progress-gap></rs-progress-gap>";
                        a[i].progressC[0].innerHTML = o, !0 === a[i].noDetach && a[i].c.append(a[i].progressC), a[i].progressCBarBGS = a.getByTag(a[i].progressC[0], "RS-PROGRESS-BG"), a[i].progressCBarGAPS = a.getByTag(a[i].progressC[0], "RS-PROGRESS-GAP"), "nogap" !== r.gaptype && tpGS.gsap.set(a[i].progressCBarGAPS, {
                            backgroundColor: r.gapcolor,
                            zIndex: "gapbg" === r.gaptype ? 17 : 27
                        }), tpGS.gsap.set(a[i].progressCBarBGS, {
                            backgroundColor: r.bgcolor
                        })
                    } else a[i].progressC[0].innerHTML = "<rs-progress-bar></rs-progress-bar>", !0 === a[i].noDetach && a[i].c.append(a[i].progressC);
                    a[i].progressCBarInner = a.getByTag(a[i].progressC[0], "RS-PROGRESS-BAR"), tpGS.gsap.set(a[i].progressCBarInner, {
                        background: r.color
                    })
                } else a[i].progressC[0].innerHTML = '<canvas width="' + 2 * r.radius + '" height="' + 2 * r.radius + '" style="position:absolute" class="rs-progress-bar"></canvas>', !0 === a[i].noDetach && a[i].c.append(a[i].progressC), a[i].progressCBarInner = a[i].progressC[0].getElementsByClassName("rs-progress-bar")[0], a[i].progressBCanvas = a[i].progressCBarInner.getContext("2d"), a[i].progressBar.degree = "cw" === a[i].progressBar.style ? 360 : 0, T(i);
            if (!0 !== a[i].noDetach && a[i].progressC.detach(), a[i].progressBar.visibility[a[i].level] && 1 != a[i].progressBar.disableProgressBar)
                if ("horizontal" === r.style || "vertical" === r.style) {
                    var n, l, d = a[i].slideamount - 1;
                    if ("horizontal" === r.style) {
                        var c = "grid" === r.alignby ? a[i].gridwidth[a[i].level] : a[i].module.width;
                        n = Math.ceil(c / a[i].slideamount), l = Math.ceil((c - d * r.gapsize) / a[i].slideamount), tpGS.gsap.set(a[i].progressC, {
                            visibility: "visible",
                            top: "top" === r.vertical ? r.y + ("grid" === r.alignby && a[i].gridOffsetHeight !== t ? Math.max(0, a[i].gridOffsetHeight) : 0) : "center" === r.vertical ? "50%" : "auto",
                            bottom: "top" === r.vertical || "center" === r.vertical ? "auto" : r.y + ("grid" === r.alignby && a[i].gridOffsetHeight !== t ? Math.max(0, a[i].gridOffsetHeight) : 0),
                            left: "left" === r.horizontal && "grid" === r.alignby && a[i].gridOffsetWidth !== t ? Math.max(0, a[i].gridOffsetWidth) : "auto",
                            right: "right" === r.horizontal && "grid" === r.alignby && a[i].gridOffsetWidth !== t ? Math.max(0, a[i].gridOffsetWidth) : "auto",
                            y: "center" === r.vertical ? r.y : 0,
                            height: r.size,
                            backgroundColor: "module" === r.basedon ? "transparent" : r.bgcolor,
                            marginTop: "bottom" === r.vertical || "top" === r.vertical ? 0 : parseInt(r.size, 0) / 2,
                            width: "grid" === r.alignby ? a[i].gridwidth[a[i].level] : "100%"
                        }), tpGS.gsap.set(a[i].progressCBarInner, {
                            x: "module" === r.basedon ? r.gap ? function(e) {
                                return ("right" === r.horizontal ? d - e : e) * (l + r.gapsize)
                            } : function(e) {
                                return ("right" === r.horizontal ? d - e : e) * n
                            } : 0,
                            width: "module" === r.basedon ? r.gap ? l + "px" : 100 / a[i].slideamount + "%" : "100%"
                        }), "module" === r.basedon && (tpGS.gsap.set(a[i].progressCBarBGS, {
                            x: "module" === r.basedon ? r.gap ? function(e) {
                                return e * (l + r.gapsize)
                            } : function(e) {
                                return e * n
                            } : 0,
                            width: "module" === r.basedon ? r.gap ? l + "px" : 100 / a[i].slideamount + "%" : "100%"
                        }), tpGS.gsap.set(a[i].progressCBarGAPS, {
                            width: r.gap ? r.gapsize + "px" : 0,
                            x: r.gap ? function(e) {
                                return (e + 1) * l + parseInt(r.gapsize, 0) * e
                            } : 0
                        }))
                    } else if ("vertical" === r.style) {
                        c = "grid" === r.alignby ? a[i].gridheight[a[i].level] : a[i].module.height;
                        n = Math.ceil(c / a[i].slideamount), l = Math.ceil((c - d * r.gapsize) / a[i].slideamount), tpGS.gsap.set(a[i].progressC, {
                            visibility: "visible",
                            left: "left" === r.horizontal ? r.x + ("grid" === r.alignby && a[i].gridOffsetWidth !== t ? Math.max(0, a[i].gridOffsetWidth) : 0) : "center" === r.horizontal ? "50%" : "auto",
                            right: "left" === r.horizontal || "center" === r.horizontal ? "auto" : r.x + ("grid" === r.alignby && a[i].gridOffsetWidth !== t ? Math.max(0, a[i].gridOffsetWidth) : 0),
                            x: "center" === r.horizontal ? r.x : 0,
                            top: "top" === r.vertical && "grid" === r.alignby && a[i].gridOffsetHeight !== t ? Math.max(a[i].gridOffsetHeight, 0) : "auto",
                            bottom: "bottom" === r.vertical && "grid" === r.alignby && a[i].gridOffsetHeight !== t ? Math.max(a[i].gridOffsetHeight, 0) : "auto",
                            width: r.size,
                            marginLeft: "left" === r.horizontal || "right" === r.horizontal ? 0 : parseInt(r.size, 0) / 2,
                            backgroundColor: "module" === r.basedon ? "transparent" : r.bgcolor,
                            height: "grid" === r.alignby ? a[i].gridheight[a[i].level] : "100%"
                        }), tpGS.gsap.set(a[i].progressCBarInner, {
                            y: "module" === r.basedon ? r.gap ? function(e) {
                                return ("bottom" === r.vertical ? d - e : e) * (l + r.gapsize)
                            } : function(e) {
                                return ("bottom" === r.vertical ? d - e : e) * n
                            } : 0,
                            height: "module" === r.basedon ? r.gap ? l + "px" : 100 / a[i].slideamount + "%" : "100%"
                        }), "module" === r.basedon && (tpGS.gsap.set(a[i].progressCBarBGS, {
                            y: "module" === r.basedon ? r.gap ? function(e) {
                                return e * (l + r.gapsize)
                            } : function(e) {
                                return e * n
                            } : 0,
                            height: "module" === r.basedon ? r.gap ? l + "px" : 100 / a[i].slideamount + "%" : "100%"
                        }), tpGS.gsap.set(a[i].progressCBarGAPS, {
                            height: r.gap ? r.gapsize + "px" : 0,
                            y: r.gap ? function(e) {
                                return (e + 1) * l + parseInt(r.gapsize, 0) * e
                            } : 0
                        }))
                    }
                } else tpGS.gsap.set(a[i].progressC, {
                    top: "top" === r.vertical ? r.y + ("grid" === r.alignby && a[i].gridOffsetHeight !== t ? Math.max(0, a[i].gridOffsetHeight) : 0) : "center" === r.vertical ? "50%" : "auto",
                    bottom: "top" === r.vertical || "center" === r.vertical ? "auto" : r.y + ("grid" === r.alignby && a[i].gridOffsetHeight !== t ? Math.max(0, a[i].gridOffsetHeight) : 0),
                    left: "left" === r.horizontal ? r.x + ("grid" === r.alignby && a[i].gridOffsetWidth !== t ? Math.max(0, a[i].gridOffsetWidth) : 0) : "center" === r.horizontal ? "50%" : "auto",
                    right: "left" === r.horizontal || "center" === r.horizontal ? "auto" : r.x + ("grid" === r.alignby && a[i].gridOffsetWidth !== t ? Math.max(0, a[i].gridOffsetWidth) : 0),
                    y: "center" === r.vertical ? r.y : 0,
                    x: "center" === r.horizontal ? r.x : 0,
                    width: 2 * r.radius,
                    height: 2 * r.radius,
                    marginTop: "center" === r.vertical ? 0 - r.radius : 0,
                    marginLeft: "center" === r.horizontal ? 0 - r.radius : 0,
                    backgroundColor: "transparent",
                    visibility: "visible"
                });
            else a[i].progressC[0].style.visibility = "hidden";
            !0 !== a[i].noDetach && a[i].c.append(a[i].progressC), a[i].gridOffsetWidth === t && "grid" === r.alignby ? a[i].rebuildProgressBar = !0 : a[i].rebuildProgressBar = !1
        },
        T = function(e) {
            var t = a[e].progressBar;
            t.radius - parseInt(t.size, 0) <= 0 && (t.size = t.radius / 4);
            var i = parseInt(t.radius),
                r = parseInt(t.radius);
            a[e].progressBCanvas.lineCap = "round", a[e].progressBCanvas.clearRect(0, 0, 2 * t.radius, 2 * t.radius), a[e].progressBCanvas.beginPath(), a[e].progressBCanvas.arc(i, r, t.radius - parseInt(t.size, 0), Math.PI / 180 * 270, Math.PI / 180 * 630), a[e].progressBCanvas.strokeStyle = t.bgcolor, a[e].progressBCanvas.lineWidth = parseInt(t.size, 0) - 1, a[e].progressBCanvas.stroke(), a[e].progressBCanvas.beginPath(), a[e].progressBCanvas.strokeStyle = t.color, a[e].progressBCanvas.lineWidth = parseInt(t.size, 0), a[e].progressBCanvas.arc(i, r, t.radius - parseInt(t.size, 0), Math.PI / 180 * 270, Math.PI / 180 * (270 + a[e].progressBar.degree), "cw" !== t.style), a[e].progressBCanvas.stroke()
        },
        C = function(i) {
            var r = function() {
                    i !== t && a !== t && a[i] !== t && (0 == e("body").find(a[i].c).length || null === a[i] || null === a[i].c || a[i].c === t || 0 === a[i].length ? (! function(t) {
                        a[t].c.children().each((function() {
                            try {
                                e(this).die("click")
                            } catch (e) {}
                            try {
                                e(this).die("mouseenter")
                            } catch (e) {}
                            try {
                                e(this).die("mouseleave")
                            } catch (e) {}
                            try {
                                e(this).off("hover")
                            } catch (e) {}
                        }));
                        try {
                            a[t].c.die("click", "mouseenter", "mouseleave")
                        } catch (e) {}
                        clearInterval(a[t].cdint), a[t].c = null
                    }(i), clearInterval(a[i].cdint)) : (a[i].c.trigger("revolution.slide.slideatend"), 1 == a[i].c.data("conthoverchanged") && (a[i].conthover = a[i].c.data("conthover"), a[i].c.data("conthoverchanged", 0)), a.callingNewSlide(i, 1, !0)))
                },
                o = tpGS.gsap.timeline({
                    paused: !0
                }),
                s = "reset" === a[i].progressBar.reset || a[i].progressBar.notnew === t ? 0 : .2,
                n = "slide" === a[i].progressBar.basedon ? 0 : a[i].pr_processing_key !== t ? a[i].pr_processing_key : a[i].pr_active_key;
            if (n = n === t ? 0 : n, "horizontal" === a[i].progressBar.style) {
                if (o.add(tpGS.gsap.to(a[i].progressCBarInner[n], s, {
                        scaleX: 0,
                        transformOrigin: "right" === a[i].progressBar.horizontal ? "100% 50%" : "0% 50%"
                    })), o.add(tpGS.gsap.to(a[i].progressCBarInner[n], a[i].duration / 1e3, {
                        transformOrigin: "right" === a[i].progressBar.horizontal ? "100% 50%" : "0% 50%",
                        force3D: "auto",
                        scaleX: 1,
                        onComplete: r,
                        delay: .5,
                        ease: a[i].progressBar.ease
                    })), "module" === a[i].progressBar.basedon)
                    for (var l = 0; l < a[i].slideamount; l++) l !== n && o.add(tpGS.gsap.set(a[i].progressCBarInner[l], {
                        scaleX: l < n ? 1 : 0,
                        transformOrigin: "right" === a[i].progressBar.horizontal ? "100% 50%" : "0% 50%"
                    }), 0)
            } else if ("vertical" === a[i].progressBar.style) {
                if (a[i].progressCBarInner[n] !== t && o.add(tpGS.gsap.to(a[i].progressCBarInner[n], s, {
                        scaleY: 0,
                        transformOrigin: "bottom" === a[i].progressBar.vertical ? "50% 100%" : "50% 0%"
                    })), a[i].progressCBarInner[n] !== t && o.add(tpGS.gsap.to(a[i].progressCBarInner[n], a[i].duration / 1e3, {
                        transformOrigin: "bottom" === a[i].progressBar.vertical ? "50% 100%" : "50% 0%",
                        force3D: "auto",
                        scaleY: 1,
                        onComplete: r,
                        delay: .5,
                        ease: a[i].progressBar.ease
                    })), "module" === a[i].progressBar.basedon)
                    for (l = 0; l < a[i].slideamount; l++) l !== n && a[i].progressCBarInner[l] !== t && o.add(tpGS.gsap.set(a[i].progressCBarInner[l], {
                        scaleY: l < n ? 1 : 0,
                        transformOrigin: "botton" === a[i].progressBar.vertical ? "50% 100%" : "50% 0%"
                    }), 0)
            } else {
                var d = "slide" === a[i].progressBar.basedon ? 0 : Math.max(0, 360 / a[i].slideamount * n),
                    c = "slide" === a[i].progressBar.basedon ? 360 : 360 / a[i].slideamount * (n + 1);
                "ccw" === a[i].progressBar.style && "slide" !== a[i].progressBar.basedon && (d = 360 - c, c = 360 - 360 / a[i].slideamount * n), o.add(tpGS.gsap.to(a[i].progressBar, s, {
                    degree: "cw" === a[i].progressBar.style ? d : c,
                    onUpdate: function() {
                        T(i)
                    }
                })), o.add(tpGS.gsap.to(a[i].progressBar, a[i].duration / 1e3, {
                    degree: "cw" === a[i].progressBar.style ? c : d,
                    onUpdate: function() {
                        T(i)
                    },
                    onComplete: r,
                    delay: .5,
                    ease: a[i].progressBar.ease
                }))
            }
            return a[i].progressBar.notnew = !0, o
        },
        A = function(e) {
            a[e].progressC == t && M(e), a[e].loop = 0, a[e].stopAtSlide != t && a[e].stopAtSlide > -1 ? a[e].lastslidetoshow = a[e].stopAtSlide : a[e].lastslidetoshow = 999, a[e].stopLoop = !1, 0 == a[e].looptogo && (a[e].stopLoop = !0), a[e].c.on("stoptimer", (function() {
                a[e].progressC != t && (a[e].progressC[0].tween.pause(), a[e].progressBar.disableProgressBar && (a[e].progressC[0].style.visibility = "hidden"), a[e].sliderstatus = "paused", a[e].slideInSwapTimer || a.unToggleState(a[e].slidertoggledby), a[e].slideInSwapTimer = !1)
            })), a[e].c.on("starttimer", (function() {
                a[e].progressC != t && (a[e].forcepaused || (1 != a[e].conthover && 1 != a[e].stopByVideo && a[e].module.width > a[e].hideSliderAtLimit && 1 != a[e].tonpause && 1 != a[e].overnav && 1 != a[e].ssop && (1 === a[e].noloopanymore || a[e].viewPort.enable && !a[e].inviewport || (a[e].progressBar.visibility[a[e].level] || (a[e].progressC[0].style.visibility = "visible"), a[e].progressC[0].tween.resume(), a[e].sliderstatus = "playing")), !a[e].progressBar.disableProgressBar && a[e].progressBar.visibility[a[e].level] || (a[e].progressC[0].style.visibility = "hidden"), a.toggleState(a[e].slidertoggledby)))
            })), a[e].c.on("restarttimer", (function() {
                if (!(a[e].modal !== t && a[e].modal.useAsModal && "close" == a[e].modal.lastModalCall || a[e].progressC == t || a[e].forcepaused)) {
                    if (a[e].mouseoncontainer && "on" == a[e].navigation.onHoverStop && !a.ISM) return !1;
                    1 === a[e].noloopanymore || a[e].viewPort.enable && !a[e].inviewport || 1 == a[e].ssop ? a.unToggleState(a[e].slidertoggledby) : (a[e].progressBar.visibility[a[e].level] || (a[e].progressC[0].style.visibility = "visible"), a[e].progressC[0].tween !== t && a[e].progressC[0].tween.kill(), a[e].progressC[0].tween = C(e), a[e].progressC[0].tween.play(), a[e].sliderstatus = "playing", a.toggleState(a[e].slidertoggledby)), !a[e].progressBar.disableProgressBar && a[e].progressBar.visibility[a[e].level] || (a[e].progressC[0].style.visibility = "hidden"), a[e].mouseoncontainer && 1 == a[e].navigation.onHoverStop && !a.ISM && (a[e].c.trigger("stoptimer"), a[e].c.trigger("revolution.slide.onpause"))
                }
            })), a[e].c.on("nulltimer", (function() {
                a[e].progressC != t && a[e].progressC[0] !== t && (a[e].progressC[0].tween !== t && a[e].progressC[0].tween.kill(), a[e].progressC[0].tween = C(e), a[e].progressC[0].tween.pause(0), !a[e].progressBar.disableProgressBar && a[e].progressBar.visibility[a[e].level] || (a[e].progressC[0].style.visibility = "hidden"), a[e].sliderstatus = "paused")
            })), a[e].progressC !== t && (a[e].progressC[0].tween = C(e)), a[e].slideamount > 1 && (0 != a[e].stopAfterLoops || 1 != a[e].stopAtSlide) ? a[e].c.trigger("starttimer") : (a[e].noloopanymore = 1, a[e].c.trigger("nulltimer")), a[e].c.on("tp-mouseenter", (function() {
                a[e].mouseoncontainer = !0, 1 != a[e].navigation.onHoverStop || a.ISM || (a[e].c.trigger("stoptimer"), a[e].c.trigger("revolution.slide.onpause"))
            })), a[e].c.on("tp-mouseleft", (function() {
                a[e].mouseoncontainer = !1, 1 != a[e].c.data("conthover") && 1 == a[e].navigation.onHoverStop && (1 == a[e].viewPort.enable && a[e].inviewport || 0 == a[e].viewPort.enable) && (a[e].c.trigger("revolution.slide.onresume"), a[e].c.trigger("starttimer"))
            }))
        },
        D = function() {
            e(".rev_redraw_on_blurfocus").each((function() {
                var e = this.id;
                if (a[e] == t || a[e].c == t || 0 === a[e].c.length) return !1;
                1 != a[e].windowfocused && (a[e].windowfocused = !0, tpGS.gsap.delayedCall(.1, (function() {
                    a[e].fallbacks.nextSlideOnWindowFocus && a[e].c.revnext(), a[e].c.revredraw(), "playing" == a[e].lastsliderstatus && a[e].c.revresume(), a[e].c.trigger("revolution.slide.tabfocused")
                })))
            }))
        },
        P = function() {
            document.hasFocus() || e(".rev_redraw_on_blurfocus").each((function(e) {
                var t = this.id;
                a[t].windowfocused = !1, a[t].lastsliderstatus = a[t].sliderstatus, a[t].c.revpause(), a[t].c.trigger("revolution.slide.tabblured")
            }))
        },
        B = function() {
            e("rs-module").each((function() {
                var e = this.id;
                if (a[e].inviewport || !a[e].viewPort.enable) {
                    var i = a[e].pr_active_slide !== t && a[e].pr_active_slide.data("key") !== t ? a[e].pr_active_slide.data("key") : a[e].pr_next_slide !== t && a[e].pr_next_slide.data("key") !== t ? a[e].pr_next_slide.data("key") : t;
                    if (i == t) return;
                    a[e].sbgs[i].bgvid.length > 0 && a[e].videos[a[e].sbgs[i].bgvid[0].id].loop && ("visible" === document.visibilityState ? a.playVideo(a[e].sbgs[i].bgvid, e) : a.stopVideo(a[e].sbgs[i].bgvid, e))
                }
            }))
        },
        G = function() {
            var e = document.documentMode === t,
                i = window.chrome;
            1 !== a.revslider_focus_blur_listener && (a.revslider_focus_blur_listener = 1, e && !i ? a.window.on("focusin", (function() {
                !0 !== a.windowIsFocused && D(), a.windowIsFocused = !0
            })).on("focusout", (function() {
                !0 !== a.windowIsFocused && a.windowIsFocused !== t || P(), a.windowIsFocused = !1
            })) : window.addEventListener ? (window.addEventListener("focus", (function(e) {
                !0 !== a.windowIsFocused && D(), a.windowIsFocused = !0
            }), {
                capture: !1,
                passive: !0
            }), window.addEventListener("blur", (function(e) {
                !0 !== a.windowIsFocused && a.windowIsFocused !== t || P(), a.windowIsFocused = !1
            }), {
                capture: !1,
                passive: !0
            })) : (window.attachEvent("focus", (function(e) {
                !0 !== a.windowIsFocused && D(), a.windowIsFocused = !0
            })), window.attachEvent("blur", (function(e) {
                !0 !== a.windowIsFocused && a.windowIsFocused !== t || P(), a.windowIsFocused = !1
            }))))
        },
        F = function(e) {
            for (var t, i = [], a = window.location.href.slice(window.location.href.indexOf(e) + 1).split("_"), r = 0; r < a.length; r++) a[r] = a[r].replace("%3D", "="), t = a[r].split("="), i.push(t[0]), i[t[0]] = t[1];
            return i
        },
        H = function(i) {
            if (a[i].blockSpacing !== t) {
                var r = a[i].blockSpacing.split(";");
                for (var o in a[i].blockSpacing = {}, r)
                    if (r.hasOwnProperty(o)) {
                        var s = r[o].split(":");
                        switch (s[0]) {
                            case "t":
                                a[i].blockSpacing.top = a.revToResp(s[1], 4, 0);
                                break;
                            case "b":
                                a[i].blockSpacing.bottom = a.revToResp(s[1], 4, 0);
                                break;
                            case "l":
                                a[i].blockSpacing.left = a.revToResp(s[1], 4, 0);
                                break;
                            case "r":
                                a[i].blockSpacing.right = a.revToResp(s[1], 4, 0)
                        }
                    }
                a[i].blockSpacing.block = e(a.closestClass(a[i].c[0], "wp-block-themepunch-revslider")), a[i].level !== t && a[i].blockSpacing !== t && tpGS.gsap.set(a[i].blockSpacing.block, {
                    paddingLeft: a[i].blockSpacing.left[a[i].level],
                    paddingRight: a[i].blockSpacing.right[a[i].level],
                    marginTop: a[i].blockSpacing.top[a[i].level],
                    marginBottom: a[i].blockSpacing.bottom[a[i].level]
                })
            }
        },
        z = function(e) {
            return e.charAt(0).toUpperCase() + e.slice(1)
        },
        W = function(i) {
            return function(e) {
                for (var i in e.minHeight = e.minHeight !== t ? "none" === e.minHeight || "0" === e.minHeight || "0px" === e.minHeight || "" == e.minHeight || " " == e.minHeight ? 0 : parseInt(e.minHeight, 0) : 0, e.maxHeight = "none" === e.maxHeight || "0" === e.maxHeight ? 0 : parseInt(e.maxHeight, 0), e.carousel.maxVisibleItems = e.carousel.maxVisibleItems < 1 ? 999 : e.carousel.maxVisibleItems, e.carousel.vertical_align = "top" === e.carousel.vertical_align ? "0%" : "bottom" === e.carousel.vertical_align ? "100%" : "50%", e.carousel.space = parseInt(e.carousel.space, 0), e.carousel.maxOpacity = parseInt(e.carousel.maxOpacity, 0), e.carousel.maxOpacity = e.carousel.maxOpacity > 1 ? e.carousel.maxOpacity / 100 : e.carousel.maxOpacity, e.carousel.showLayersAllTime = "true" === e.carousel.showLayersAllTime || !0 === e.carousel.showLayersAllTime ? "all" : e.carousel.showLayersAllTime, e.carousel.maxRotation = parseInt(e.carousel.maxRotation, 0), e.carousel.minScale = parseInt(e.carousel.minScale, 0), e.carousel.minScale = e.carousel.minScale > .9 ? e.carousel.minScale / 100 : e.carousel.minScale, e.carousel.speed = parseInt(e.carousel.speed, 0), e.carousel.skewX = parseFloat(e.carousel.skewX), e.carousel.skewY = parseFloat(e.carousel.skewY), e.carousel.spinAngle = parseFloat(e.carousel.spinAngle), 0 === e.carousel.spinAngle && (e.carousel.spinAngle = 1), "v" === e.carousel.orientation && (e.carousel.justify = !1), e.navigation.maintypes = ["arrows", "tabs", "thumbnails", "bullets"], e.perspective = parseInt(e.perspective, 0), e.navigation.maintypes) e.navigation.maintypes.hasOwnProperty(i) && e.navigation[e.navigation.maintypes[i]] !== t && (e.navigation[e.navigation.maintypes[i]].animDelay = e.navigation[e.navigation.maintypes[i]].animDelay === t ? 1e3 : e.navigation[e.navigation.maintypes[i]].animDelay, e.navigation[e.navigation.maintypes[i]].animSpeed = e.navigation[e.navigation.maintypes[i]].animSpeed === t ? 1e3 : e.navigation[e.navigation.maintypes[i]].animSpeed, e.navigation[e.navigation.maintypes[i]].animDelay = parseInt(e.navigation[e.navigation.maintypes[i]].animDelay, 0) / 1e3, e.navigation[e.navigation.maintypes[i]].animSpeed = parseInt(e.navigation[e.navigation.maintypes[i]].animSpeed, 0) / 1e3);
                if (a.isNumeric(e.scrolleffect.tilt) || -1 !== e.scrolleffect.tilt.indexOf("%") && (e.scrolleffect.tilt = parseInt(e.scrolleffect.tilt)), e.scrolleffect.tilt = e.scrolleffect.tilt / 100, e.navigation.thumbnails.position = "outer-horizontal" == e.navigation.thumbnails.position ? "bottom" == e.navigation.thumbnails.v_align ? "outer-bottom" : "outer-top" : "outer-vertical" == e.navigation.thumbnails.position ? "left" == e.navigation.thumbnails.h_align ? "outer-left" : "outer-right" : e.navigation.thumbnails.position, e.navigation.tabs.position = "outer-horizontal" == e.navigation.tabs.position ? "bottom" == e.navigation.tabs.v_align ? "outer-bottom" : "outer-top" : "outer-vertical" == e.navigation.tabs.position ? "left" == e.navigation.tabs.h_align ? "outer-left" : "outer-right" : e.navigation.tabs.position, e.sbtimeline.speed = parseInt(e.sbtimeline.speed, 0) / 1e3 || .5, !0 === e.sbtimeline.set && !0 === e.sbtimeline.fixed && "auto" !== e.sliderLayout ? (e.sbtimeline.fixStart = parseInt(e.sbtimeline.fixStart), e.sbtimeline.fixEnd = parseInt(e.sbtimeline.fixEnd)) : e.sbtimeline.fixed = !1, e.progressBar === t || "true" != e.progressBar.disableProgressBar && 1 != e.progressBar.disableProgressBar || (e.progressBar.disableProgressBar = !0), e.startDelay = parseInt(e.startDelay, 0) || 0, e.navigation !== t && e.navigation.arrows != t && e.navigation.arrows.hide_under != t && (e.navigation.arrows.hide_under = parseInt(e.navigation.arrows.hide_under)), e.navigation !== t && e.navigation.bullets != t && e.navigation.bullets.hide_under != t && (e.navigation.bullets.hide_under = parseInt(e.navigation.bullets.hide_under)), e.navigation !== t && e.navigation.thumbnails != t && e.navigation.thumbnails.hide_under != t && (e.navigation.thumbnails.hide_under = parseInt(e.navigation.thumbnails.hide_under)), e.navigation !== t && e.navigation.tabs != t && e.navigation.tabs.hide_under != t && (e.navigation.tabs.hide_under = parseInt(e.navigation.tabs.hide_under)), e.navigation !== t && e.navigation.arrows != t && e.navigation.arrows.hide_over != t && (e.navigation.arrows.hide_over = parseInt(e.navigation.arrows.hide_over)), e.navigation !== t && e.navigation.bullets != t && e.navigation.bullets.hide_over != t && (e.navigation.bullets.hide_over = parseInt(e.navigation.bullets.hide_over)), e.navigation !== t && e.navigation.thumbnails != t && e.navigation.thumbnails.hide_over != t && (e.navigation.thumbnails.hide_over = parseInt(e.navigation.thumbnails.hide_over)), e.navigation !== t && e.navigation.tabs != t && e.navigation.tabs.hide_over != t && (e.navigation.tabs.hide_over = parseInt(e.navigation.tabs.hide_over)), e.lazyloaddata !== t && e.lazyloaddata.length > 0 && e.lazyloaddata.indexOf("-") > 0) {
                    var r = e.lazyloaddata.split("-");
                    for (e.lazyloaddata = r[0], i = 1; i < r.length; i++) e.lazyloaddata += z(r[i])
                }
                return e.duration = parseInt(e.duration), "single" === e.lazyType && "carousel" === e.sliderType && (e.lazyType = "smart"), "carousel" === e.sliderType && e.carousel.justify && (e.justifyCarousel = !0, e.keepBPHeight = !0), e.enableUpscaling = 1 == e.enableUpscaling && "carousel" !== e.sliderType && "fullwidth" === e.sliderLayout, e.useFullScreenHeight = "carousel" === e.sliderType && "fullscreen" === e.sliderLayout && !0 === e.useFullScreenHeight && "v" !== e.carousel.orientation, e.progressBar.y = parseInt(e.progressBar.y, 0), e.progressBar.x = parseInt(e.progressBar.x, 0),
                    /*! Custom Eases */
                    "IE" !== window.RSBrowser && e.customEases !== t && (!e.customEases.SFXBounceLite && "true" != e.customEases.SFXBounceLite || tpGS.SFXBounceLite !== t || (tpGS.SFXBounceLite = tpGS.CustomBounce.create("SFXBounceLite", {
                        strength: .3,
                        squash: 1,
                        squashID: "SFXBounceLite-squash"
                    })), !e.customEases.SFXBounceSolid && "true" != e.customEases.SFXBounceSolid || tpGS.SFXBounceSolid !== t || (tpGS.SFXBounceSolid = tpGS.CustomBounce.create("SFXBounceSolid", {
                        strength: .5,
                        squash: 2,
                        squashID: "SFXBounceSolid-squash"
                    })), !e.customEases.SFXBounceStrong && "true" != e.customEases.SFXBounceStrong || tpGS.SFXBounceStrong !== t || (tpGS.SFXBounceStrong = tpGS.CustomBounce.create("SFXBounceStrong", {
                        strength: .7,
                        squash: 3,
                        squashID: "SFXBounceStrong-squash"
                    })), !e.customEases.SFXBounceExtrem && "true" != e.customEases.SFXBounceExtrem || tpGS.SFXBounceExtrem !== t || (tpGS.SFXBounceExtrem = tpGS.CustomBounce.create("SFXBounceExtrem", {
                        strength: .9,
                        squash: 4,
                        squashID: "SFXBounceExtrem-squash"
                    })), !e.customEases.BounceLite && "true" != e.customEases.BounceLite || tpGS.BounceLite !== t || (tpGS.BounceLite = tpGS.CustomBounce.create("BounceLite", {
                        strength: .3
                    })), !e.customEases.BounceSolid && "true" != e.customEases.BounceSolid || tpGS.BounceSolid !== t || (tpGS.BounceSolid = tpGS.CustomBounce.create("BounceSolid", {
                        strength: .5
                    })), !e.customEases.BounceStrong && "true" != e.customEases.BounceStrong || tpGS.BounceStrong !== t || (tpGS.BounceStrong = tpGS.CustomBounce.create("BounceStrong", {
                        strength: .7
                    })), !e.customEases.BounceExtrem && "true" != e.customEases.BounceExtrem || tpGS.BounceExtrem !== t || (tpGS.BounceExtrem = tpGS.CustomBounce.create("BounceExtrem", {
                        strength: .9
                    }))), e.modal.coverSpeed = parseFloat(e.modal.coverSpeed), e.modal.coverSpeed = e.modal.coverSpeed > 200 ? e.modal.coverSpeed / 1e3 : e.modal.coverSpeed, e.modal.coverSpeed = Math.max(Math.min(3, e.modal.coverSpeed), .3), e.navigation.wheelViewPort = e.navigation.wheelViewPort === t ? .5 : e.navigation.wheelViewPort / 100, e.navigation.wheelCallDelay = e.navigation.wheelCallDelay === t ? 1e3 : parseInt(e.navigation.wheelCallDelay), e.autoDPR = "string" == typeof e.DPR && -1 !== e.DPR.indexOf("ax"), e.DPR = e.DPR.replace("ax", ""), e.DPR = parseInt(e.DPR.replace("x", "")), e.DPR = isNaN(e.DPR) ? window.devicePixelRatio : e.autoDPR ? Math.min(window.devicePixelRatio, e.DPR) : e.DPR, e.DPR = 1 != e.onedpronmobile && "true" != e.onedpronmobile || !a.ISM ? e.DPR : 1, !1 === e.viewPort.global ? e.viewPort.enable = !1 : !0 === e.viewPort.global && (e.viewPort.local = e.viewPort.enable, e.viewPort.enable = !0), e.carousel !== t && "v" == e.carousel.orientation && (e.carousel.prevNextVisType = ("" + e.carousel.prevNextVis).includes("%") ? "%" : "px", e.carousel.prevNextVis = parseInt(e.carousel.prevNextVis, 0) / ("%" == e.carousel.prevNextVisType ? 100 : 1)), e
            }(e.extend(!0, {
                DPR: "dpr",
                sliderType: "standard",
                sliderLayout: "auto",
                overlay: {
                    type: "none",
                    size: 1,
                    colora: "transparent",
                    colorb: "#000000"
                },
                duration: 9e3,
                imgCrossOrigin: "",
                modal: {
                    useAsModal: !1,
                    cover: !0,
                    coverColor: "rgba(0,0,0,0.5)",
                    horizontal: "center",
                    vertical: "middle",
                    coverSpeed: 1
                },
                navigation: {
                    keyboardNavigation: !1,
                    keyboard_direction: "horizontal",
                    mouseScrollNavigation: "off",
                    wheelViewPort: 50,
                    wheelCallDelay: "1000ms",
                    onHoverStop: !0,
                    mouseScrollReverse: "default",
                    target: "window",
                    threshold: 50,
                    touch: {
                        touchenabled: !1,
                        touchOnDesktop: !1,
                        swipe_treshold: 75,
                        swipe_min_touches: 1,
                        swipe_direction: "horizontal",
                        drag_block_vertical: !1,
                        mobileCarousel: !0,
                        desktopCarousel: !0
                    },
                    arrows: {
                        style: "",
                        enable: !1,
                        hide_onmobile: !1,
                        hide_under: 0,
                        hide_onleave: !1,
                        hide_delay: 200,
                        hide_delay_mobile: 1200,
                        hide_over: 9999,
                        tmp: "",
                        rtl: !1,
                        left: {
                            h_align: "left",
                            v_align: "center",
                            h_offset: 20,
                            v_offset: 0,
                            container: "slider"
                        },
                        right: {
                            h_align: "right",
                            v_align: "center",
                            h_offset: 20,
                            v_offset: 0,
                            container: "slider"
                        }
                    },
                    bullets: {
                        enable: !1,
                        hide_onmobile: !1,
                        hide_onleave: !1,
                        hide_delay: 200,
                        hide_delay_mobile: 1200,
                        hide_under: 0,
                        hide_over: 9999,
                        direction: "horizontal",
                        h_align: "center",
                        v_align: "bottom",
                        space: 5,
                        h_offset: 0,
                        v_offset: 20,
                        tmp: '<span class="tp-bullet-image"></span><span class="tp-bullet-title"></span>',
                        container: "slider",
                        rtl: !1,
                        style: ""
                    },
                    thumbnails: {
                        container: "slider",
                        rtl: !1,
                        style: "",
                        enable: !1,
                        width: 100,
                        height: 50,
                        min_width: 100,
                        wrapper_padding: 2,
                        wrapper_color: "transparent",
                        tmp: '<span class="tp-thumb-image"></span><span class="tp-thumb-title"></span>',
                        visibleAmount: 5,
                        hide_onmobile: !1,
                        hide_onleave: !1,
                        hide_delay: 200,
                        hide_delay_mobile: 1200,
                        hide_under: 0,
                        hide_over: 9999,
                        direction: "horizontal",
                        span: !1,
                        position: "inner",
                        space: 2,
                        h_align: "center",
                        v_align: "bottom",
                        h_offset: 0,
                        v_offset: 20,
                        mhoff: 0,
                        mvoff: 0
                    },
                    tabs: {
                        container: "slider",
                        rtl: !1,
                        style: "",
                        enable: !1,
                        width: 100,
                        min_width: 100,
                        height: 50,
                        wrapper_padding: 10,
                        wrapper_color: "transparent",
                        tmp: '<span class="tp-tab-image"></span>',
                        visibleAmount: 5,
                        hide_onmobile: !1,
                        hide_onleave: !1,
                        hide_delay: 200,
                        hide_delay_mobile: 1200,
                        hide_under: 0,
                        hide_over: 9999,
                        direction: "horizontal",
                        span: !1,
                        space: 0,
                        position: "inner",
                        h_align: "center",
                        v_align: "bottom",
                        h_offset: 0,
                        v_offset: 20,
                        mhoff: 0,
                        mvoff: 0
                    }
                },
                responsiveLevels: 4064,
                visibilityLevels: [2048, 1024, 778, 480],
                gridwidth: 960,
                gridheight: 500,
                minHeight: 0,
                maxHeight: 0,
                keepBPHeight: !1,
                useFullScreenHeight: !0,
                overflowHidden: !1,
                forceOverflow: !1,
                fixedOnTop: !1,
                autoHeight: !1,
                gridEQModule: !1,
                disableForceFullWidth: !1,
                fullScreenOffsetContainer: "",
                fullScreenOffset: "0",
                hideLayerAtLimit: 0,
                hideAllLayerAtLimit: 0,
                hideSliderAtLimit: 0,
                progressBar: {
                    disableProgressBar: !1,
                    style: "horizontal",
                    size: "5px",
                    radius: 10,
                    vertical: "bottom",
                    horizontal: "left",
                    x: 0,
                    y: 0,
                    color: "rgba(255,255,255,0.5)",
                    bgcolor: "transparent",
                    basedon: "slide",
                    gapsize: 0,
                    reset: "reset",
                    gaptype: "gapboth",
                    gapcolor: "rgba(255,255,255,0.5)",
                    ease: "none",
                    visibility: {
                        0: !0,
                        1: !0,
                        2: !0,
                        3: !0
                    }
                },
                stopAtSlide: -1,
                stopAfterLoops: 0,
                shadow: 0,
                startDelay: 0,
                lazyType: "none",
                lazyOnBg: !1,
                spinner: "off",
                shuffle: !1,
                perspective: "600px",
                perspectiveType: "local",
                viewPort: {
                    enable: !1,
                    global: !1,
                    globalDist: "-400px",
                    outof: "wait",
                    visible_area: "200px",
                    presize: !1
                },
                fallbacks: {
                    isJoomla: !1,
                    panZoomDisableOnMobile: !1,
                    simplifyAll: !0,
                    nextSlideOnWindowFocus: !1,
                    disableFocusListener: !1,
                    allowHTML5AutoPlayOnAndroid: !0
                },
                fanim: !1,
                parallax: {
                    type: "off",
                    levels: [10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85],
                    origo: "enterpoint",
                    disable_onmobile: !1,
                    ddd_shadow: !1,
                    ddd_bgfreeze: !1,
                    ddd_overflow: "visible",
                    ddd_layer_overflow: "visible",
                    ddd_z_correction: 65,
                    speed: 400,
                    speedbg: 0,
                    speedls: 0
                },
                scrolleffect: {
                    set: !1,
                    fade: !1,
                    blur: !1,
                    scale: !1,
                    grayscale: !1,
                    maxblur: 10,
                    layers: !1,
                    slide: !1,
                    direction: "both",
                    multiplicator: 1.35,
                    multiplicator_layers: .5,
                    tilt: 30,
                    disable_onmobile: !1
                },
                sbtimeline: {
                    set: !1,
                    fixed: !1,
                    fixStart: 0,
                    fixEnd: 0,
                    layers: !1,
                    slide: !1,
                    ease: "none",
                    speed: 500
                },
                carousel: {
                    orientation: "h",
                    prevNextVis: "50px",
                    easing: "power3.inOut",
                    speed: 800,
                    showLayersAllTime: !1,
                    horizontal_align: "center",
                    vertical_align: "center",
                    snap: !0,
                    infinity: !1,
                    stopOnClick: !0,
                    space: 0,
                    maxVisibleItems: 3,
                    stretch: !1,
                    fadeout: !0,
                    maxRotation: 0,
                    maxOpacity: 100,
                    minScale: 0,
                    offsetScale: !1,
                    vary_fade: !1,
                    vary_rotation: !1,
                    vary_scale: !1,
                    border_radius: "0px",
                    padding_top: 0,
                    padding_bottom: 0,
                    skewX: 0,
                    skewY: 0,
                    spin: "off",
                    spinAngle: 0,
                    overshoot: !1
                },
                observeWrap: !1,
                extensions: "extensions/",
                extensions_suffix: ".min.js",
                stopLoop: !1,
                waitForInit: !1,
                ignoreHeightChange: !0,
                onedpronmobile: !1
            }, i))
        };
    window.RS_MODULES = window.RS_MODULES || {}, window.RS_MODULES.waiting = window.RS_MODULES.waiting || [];
    var E = ["DOM", "main", "parallax", "video", "slideanims", "actions", "layeranimation", "navigation", "carousel", "panzoom"];
    for (var N in E) - 1 == window.RS_MODULES.waiting.indexOf(E[N]) && window.RS_MODULES.waiting.push(E[N]);

    function j(e) {
        window.elementorFrontend !== t && elementorFrontend.hooks !== t && elementorFrontend.hooks.removeAction("frontend/element_ready/global", j), window.RS_MODULES.elementor = {
            loaded: !0,
            version: "6.5.0"
        }, window.RS_MODULES.checkMinimal && window.RS_MODULES.checkMinimal()
    }

    function V() {
        if (window.elementorFrontend === t || window.elementorFrontend.hooks === t || window.elementorFrontend.hooks.addAction === t) return window.RS_MODULES.elementorCounter++, window.RS_MODULES.elementorCounterCheck && window.RS_MODULES.elementorCounter > 20 ? void j() : void requestAnimationFrame(V);
        window.elementorFrontend.config.environmentMode.edit ? elementorFrontend.hooks.addAction("frontend/element_ready/widget", j) : j()
    }

    function X() {
        1 != RS_MODULES.checkElementorCalled && (RS_MODULES.checkElementorCalled = !0, document.body && (document.body.className.indexOf("elementor-page") >= 0 || document.body.className.indexOf("elementor-default") >= 0) && (window.RS_MODULES.waiting = window.RS_MODULES.waiting === t ? [] : window.RS_MODULES.waiting, -1 == window.RS_MODULES.waiting.indexOf("elementor") && window.RS_MODULES.waiting.push("elementor"), document.body && -1 == document.body.className.indexOf("elementor-editor-active") && (window.RS_MODULES.elementorCounterCheck = !0), window.RS_MODULES.elementorCounter = 0, V()))
    }
    window.RS_MODULES.main = {
        loaded: !0,
        version: i
    }, window.RS_MODULES.minimal = !1, window.RS_MODULES.callSliders = function() {
        for (var e in RS_MODULES.modules) !0 !== RS_MODULES.modules[e].once && window.RS_MODULES !== t && window.RS_MODULES.minimal && (RS_MODULES.modules[e].once = !0, RS_MODULES.modules[e].init())
    }, "loading" === document.readyState ? document.addEventListener("readystatechange", (function() {
        "interactive" !== document.readyState && "complete" !== document.readyState || (X(), window.RS_MODULES.DOM = {
            loaded: !0
        }, window.RS_MODULES.checkMinimal())
    })) : "complete" !== document.readyState && "interactive" !== document.readyState || (X(), window.RS_MODULES.DOM = {
        loaded: !0
    }), window.RS_MODULES.checkMinimal = function() {
        if (0 == window.RS_MODULES.minimal) {
            var i = 1 == window.RS_MODULES.minimal || window.RS_MODULES.waiting !== t && e.fn.revolution !== t && window.tpGS !== t && window.tpGS.gsap !== t;
            if (i)
                for (var a in window.RS_MODULES.waiting) window.RS_MODULES.waiting.hasOwnProperty(a) && "function" != typeof window.RS_MODULES.waiting[a] && i && window.RS_MODULES[window.RS_MODULES.waiting[a]] === t && (i = !1);
            i && (!0 !== window.RS_MODULES.minimal && e(document).trigger("REVSLIDER_READY_TO_USE"), window.RS_MODULES.minimal = !0)
        } else window.RS_MODULES.minimal = !0;
        !0 === window.RS_MODULES.minimal && window.RS_MODULES.callSliders()
    }, window.RS_MODULES.checkMinimal()
}(jQuery),
function($, undefined) {
    "use strict";
    var version = "6.6.0";
    jQuery.fn.revolution = jQuery.fn.revolution || {};
    var _R = jQuery.fn.revolution;
    jQuery.extend(!0, _R, {
        checkActions: function(e, t) {
            e === undefined ? moduleEnterLeaveActions(t) : checkActions_intern(e, t)
        },
        delayer: function(e, t, i) {
            _R[e].timeStamps = _R[e].timeStamps === undefined ? {} : _R[e].timeStamps;
            var a = (new Date).getTime(),
                r = _R[e].timeStamps[i] === undefined ? parseInt(t) + 100 : a - _R[e].timeStamps[i],
                o = parseInt(r) > t;
            return o && (_R[e].timeStamps[i] = a), o
        },
        getURLDetails: function(e) {
            (e = e === undefined ? {} : e).url = e.url === undefined ? window.location.href : e.url, e.url = e.url.replace("www", ""), e.protocol = 0 === e.url.indexOf("http://") ? "http://" : 0 === e.url.indexOf("https://") ? "https://" : 0 === e.url.indexOf("//") ? "//" : "relative";
            var t = e.url.replace("https://", "");
            t = t.replace("http://", ""), "relative" === e.protocol && (t = t.replace("//", "")), t = t.split("#"), e.anchor = (e.anchor === undefined || "" == e.anchor || 0 == e.anchor.length) && t.length > 1 ? t[1] : e.anchor === undefined ? "" : e.anchor.replace("#", ""), e.anchor = e.anchor.split("?"), e.queries = t[0].split("?"), e.queries = e.queries.length > 1 ? e.queries[1] : "", e.queries = e.queries.length > 1 ? e.queries[1] : e.anchor.length > 1 ? e.anchor[1] : e.queries, e.anchor = e.anchor[0];
            (t = t[0]).split("/");
            var i = t.split("/");
            return e.host = i[0], i.splice(0, 1), e.path = "/" + i.join("/"), "/" == e.path[e.path.length - 1] && (e.path = e.path.slice(0, -1)), e.origin = "relative" !== e.protocol ? e.protocol + e.host : window.location.origin.replace("www", "") + window.location.pathname, e.hash = ("" !== e.queries && e.queries !== undefined ? "?" + e.queries : "") + ("" !== e.anchor && e.anchor !== undefined ? "#" + e.anchor : ""), e
        },
        scrollToId: function(e) {
            if (_R.scrollToObj = e, !window.isSafari11) {
                var t = tpGS.gsap.getProperty("html", "scrollBehavior"),
                    i = tpGS.gsap.getProperty("body", "scrollBehavior");
                tpGS.gsap.set("html,body", {
                    scrollBehavior: "auto"
                }), e.scrollBehaviorHtml = t, e.scrollBehaviorBody = i
            }
            _R.calcScrollToId()
        },
        calcScrollToId: function() {
            if (_R.scrollToObj) {
                var e = _R.scrollToObj,
                    t = e.tween && e.tween.progress ? e.tween.progress() : 0;
                e.tween && e.tween.kill && e.tween.kill(), e.startScrollPos !== undefined && null !== e.startScrollPos || (e.startScrollPos = _R[e.id].modal.useAsModal ? _R[e.id].cpar.scrollTop() : _R.document.scrollTop());
                var i = "scrollbelow" === e.action ? (getOffContH(_R[e.id].fullScreenOffsetContainer) || 0) - (parseInt(e.offset, 0) || 0) || 0 : 0 - (parseInt(e.offset, 0) || 0),
                    a = "scrollbelow" === e.action ? _R[e.id].c : jQuery("#" + e.anchor),
                    r = a.length > 0 ? a.offset().top : 0,
                    o = {
                        _y: _R[e.id].modal.useAsModal ? _R[e.id].cpar[0].scrollTop : window.pageYOffset !== document.documentElement.scrollTop ? 0 !== window.pageYOffset ? window.pageYOffset : document.documentElement.scrollTop : window.pageYOffset
                    };
                r += "scrollbelow" === e.action ? _R[e.id].sbtimeline.fixed ? _R[e.id].cpar.parent().height() + _R[e.id].fullScreenOffsetResult : jQuery(_R[e.id].slides[0]).height() : 0, e.tween = tpGS.gsap.fromTo(o, e.speed / 1e3, {
                    _y: e.startScrollPos
                }, {
                    _y: r - i,
                    ease: e.ease,
                    onUpdate: function() {
                        _R[e.id].modal.useAsModal ? _R[e.id].cpar.scrollTop(o._y) : _R.document.scrollTop(o._y)
                    },
                    onComplete: function() {
                        e.hash !== undefined && history.pushState(null, null, e.hash), window.isSafari11 || (tpGS.gsap.set("html", {
                            scrollBehavior: e.scrollBehaviorHtml
                        }), tpGS.gsap.set("body", {
                            scrollBehavior: e.scrollBehaviorBody
                        })), _R.scrollToObj && (_R.scrollToObj.tween && (_R.scrollToObj.tween.kill(), _R.scrollToObj.tween = null), _R.scrollToObj.startScrollPos = null, _R.scrollToObj = null)
                    }
                }), e.tween.progress(t)
            }
        }
    });
    var moduleEnterLeaveActions = function(e) {
            !_R[e].moduleActionsPrepared && _R[e].c[0].getElementsByClassName("rs-on-sh").length > 0 && (_R[e].c.on("tp-mouseenter", (function() {
                _R[e].mouseoncontainer = !0;
                var t, i = _R[e].pr_next_key !== undefined ? _R[e].pr_next_key : _R[e].pr_processing_key !== undefined ? _R[e].pr_processing_key : _R[e].pr_active_key !== undefined ? _R[e].pr_active_key : _R[e].pr_next_key;
                if ("none" !== i && i !== undefined) {
                    if ((i = _R.gA(_R[e].slides[i], "key")) !== undefined && _R[e].layers[i])
                        for (t in _R[e].layers[i]) _R[e].layers[i][t].className.indexOf("rs-on-sh") >= 0 && _R.renderLayerAnimation({
                            layer: jQuery(_R[e].layers[i][t]),
                            frame: "frame_1",
                            mode: "trigger",
                            id: e
                        });
                    for (t in _R[e].layers.static) _R[e].layers.static[t].className.indexOf("rs-on-sh") >= 0 && _R.renderLayerAnimation({
                        layer: jQuery(_R[e].layers.static[t]),
                        frame: "frame_1",
                        mode: "trigger",
                        id: e
                    })
                }
            })), _R[e].c.on("tp-mouseleft", (function() {
                _R[e].mouseoncontainer = !0;
                var t, i = _R[e].pr_next_key !== undefined ? _R[e].pr_next_key : _R[e].pr_processing_key !== undefined ? _R[e].pr_processing_key : _R[e].pr_active_key !== undefined ? _R[e].pr_active_key : _R[e].pr_next_key;
                if ("none" !== i && i !== undefined) {
                    if ((i = _R.gA(_R[e].slides[i], "key")) !== undefined && _R[e].layers[i])
                        for (t in _R[e].layers[i]) _R[e].layers[i][t].className.indexOf("rs-on-sh") >= 0 && _R.renderLayerAnimation({
                            layer: jQuery(_R[e].layers[i][t]),
                            frame: "frame_999",
                            mode: "trigger",
                            id: e
                        });
                    for (t in _R[e].layers.static) _R[e].layers.static[t].className.indexOf("rs-on-sh") >= 0 && _R.renderLayerAnimation({
                        layer: jQuery(_R[e].layers.static[t]),
                        frame: "frame_999",
                        mode: "trigger",
                        id: e
                    })
                }
            }))), _R[e].moduleActionsPrepared = !0
        },
        checkActions_intern = function(layer, id) {
            var actions = _R.gA(layer[0], "actions");
            if ("RS-COLUMN" == layer[0].tagName) {
                var wrap = _R.closestNode(layer[0], "RS-COLUMN-WRAP");
                null !== wrap && wrap !== undefined && (_R.sA(wrap, "action", actions), layer = jQuery(wrap))
            }
            var _L = layer.data();
            for (var ei in actions = actions.split("||"), layer.addClass("rs-waction"), _L.events = _L.events === undefined ? [] : _L.events, actions)
                if (actions.hasOwnProperty(ei)) {
                    var event = getEventParams(actions[ei].split(";"));
                    _L.events.push(event), "click" === event.on && layer[0].classList.add("rs-wclickaction"), _R[id].fullscreen_esclistener || "exitfullscreen" != event.action && "togglefullscreen" != event.action || (_R.document.keyup((function(e) {
                        27 == e.keyCode && jQuery("#rs-go-fullscreen").length > 0 && layer.trigger(event.on)
                    })), _R[id].fullscreen_esclistener = !0);
                    var targetlayer = "backgroundvideo" == event.layer ? jQuery("rs-bgvideo") : "firstvideo" == event.layer ? jQuery("rs-slide").find(".rs-layer-video") : jQuery("#" + event.layer);
                    switch (-1 != jQuery.inArray(event.action, ["toggleslider", "toggle_mute_video", "toggle_global_mute_video", "togglefullscreen"]) && (_L._togglelisteners = !0), event.action) {
                        case "togglevideo":
                            jQuery.each(targetlayer, (function() {
                                updateToggleByList(jQuery(this), "videotoggledby", layer[0].id)
                            }));
                            break;
                        case "togglelayer":
                            jQuery.each(targetlayer, (function() {
                                updateToggleByList(jQuery(this), "layertoggledby", layer[0].id), jQuery(this).data("triggered_startstatus", event.togglestate)
                            }));
                            break;
                        case "toggle_global_mute_video":
                        case "toggle_mute_video":
                            jQuery.each(targetlayer, (function() {
                                updateToggleByList(jQuery(this), "videomutetoggledby", layer[0].id)
                            }));
                            break;
                        case "toggleslider":
                            _R[id].slidertoggledby == undefined && (_R[id].slidertoggledby = []), _R[id].slidertoggledby.push(layer[0].id);
                            break;
                        case "togglefullscreen":
                            _R[id].fullscreentoggledby == undefined && (_R[id].fullscreentoggledby = []), _R[id].fullscreentoggledby.push(layer[0].id)
                    }
                }
            _R[id].actionsPrepared = !0, _R[id].actionListenerHook = _R[id].actionListenerHook == undefined ? {
                _on: ""
            } : _R[id].actionListenerHook, layer.on("click mouseenter mouseleave " + _R[id].actionListenerHook._on, (function(e) {
                for (var i in _L.events)
                    if (_L.events.hasOwnProperty(i) && _L.events[i].on.includes(e.type)) {
                        var event = _L.events[i];
                        if (!(event.repeat !== undefined && event.repeat > 0) || _R.delayer(id, 1e3 * event.repeat, _L.c[0].id + "_" + event.action)) {
                            if ("click" === event.on && layer.hasClass("tp-temporarydisabled")) return !1;
                            ("" + event.layer).includes("layer-sta_") && (_R[id].staticPrefix = _R[id].staticPrefix ? _R[id].staticPrefix : Object.keys(_R[id].layers.static)[0], ("" + _R[id].staticPrefix).includes("layer-") && (event.layer = _R[id].staticPrefix.split("layer-")[0] + "layer-" + event.layer.split("layer-sta_")[1]));
                            var targetlayer = "backgroundvideo" == event.layer ? jQuery(_R[id].slides[_R[id].pr_active_key]).find("rs-sbg-wrap rs-bgvideo") : "firstvideo" == event.layer ? jQuery(_R[id].slides[_R[id].pr_active_key]).find(".rs-layer-video").first() : jQuery("#" + event.layer),
                                tex = targetlayer.length > 0;
                            if ("" != _R[id].actionListenerHook._on && "click" !== e.type && "mouseenter" !== e.type && "mouseleave" !== e.type) {
                                var keepgoing = !0;
                                for (var cbs in _R[id].actionListenerHook.callBacks) {
                                    if (!0 !== keepgoing) break;
                                    _R[id].actionListenerHook.callBacks.hasOwnProperty(cbs) && "function" == typeof _R[id].actionListenerHook.callBacks[cbs] && (keepgoing = _R[id].actionListenerHook.callBacks[cbs]({
                                        event: event,
                                        layer: layer,
                                        targetlayer: targetlayer,
                                        L: _L
                                    }))
                                }
                                if (!keepgoing) continue
                            }
                            switch (event.action) {
                                case "menulink":
                                    var linkto = _R.getURLDetails({
                                            url: event.url,
                                            anchor: event.anchor
                                        }),
                                        linkfrom = _R.getURLDetails();
                                    linkto.host == linkfrom.host && linkto.path == linkfrom.path && "_self" === event.target ? _R.scrollToId({
                                        id: id,
                                        offset: event.offset,
                                        action: event.action,
                                        anchor: event.anchor,
                                        hash: linkto.hash,
                                        speed: event.speed,
                                        ease: event.ease
                                    }) : "_self" === event.target ? window.location = linkto.url + (linkto.anchor !== undefined && "" !== linkto.anchor ? "#" + linkto.anchor : "") : window.open(linkto.url + (linkto.anchor !== undefined && "" !== linkto.anchor ? "#" + linkto.anchor : "")), e.preventDefault();
                                    break;
                                case "getAccelerationPermission":
                                    _R.getAccelerationPermission(id);
                                    break;
                                case "nextframe":
                                case "prevframe":
                                case "gotoframe":
                                case "togglelayer":
                                case "toggleframes":
                                case "startlayer":
                                case "stoplayer":
                                    if (targetlayer[0] === undefined) continue;
                                    var _ = _R[id]._L[targetlayer[0].id],
                                        frame = event.frame,
                                        tou = "triggerdelay";
                                    if ("click" === e.type && _.clicked_time_stamp !== undefined && (new Date).getTime() - _.clicked_time_stamp < 300) return;
                                    if ("mouseenter" === e.type && _.mouseentered_time_stamp !== undefined && (new Date).getTime() - _.mouseentered_time_stamp < 300) return;
                                    if (clearTimeout(_.triggerdelayIn), clearTimeout(_.triggerdelayOut), clearTimeout(_.triggerdelay), "click" === e.type && (_.clicked_time_stamp = (new Date).getTime()), "mouseenter" === e.type && (_.mouseentered_time_stamp = (new Date).getTime()), "mouseleave" === e.type && (_.mouseentered_time_stamp = undefined), "nextframe" === event.action || "prevframe" === event.action) {
                                        _.forda = _.forda === undefined ? getFordWithAction(_) : _.forda;
                                        var inx = jQuery.inArray(_.currentframe, _.ford);
                                        for ("nextframe" === event.action && inx++, "prevframe" === event.action && inx--;
                                            "skip" !== _.forda[inx] && inx > 0 && inx < _.forda.length - 1;) "nextframe" === event.action && inx++, "prevframe" === event.action && inx--, inx = Math.min(Math.max(0, inx), _.forda.length - 1);
                                        frame = _.ford[inx]
                                    }
                                    jQuery.inArray(event.action, ["toggleframes", "togglelayer", "startlayer", "stoplayer"]) >= 0 && (_.triggeredstate = "startlayer" === event.action || "togglelayer" === event.action && "frame_1" !== _.currentframe || "toggleframes" === event.action && _.currentframe !== event.frameN, "togglelayer" === event.action && !0 === _.triggeredstate && _.currentframe !== undefined && "frame_999" !== _.currentframe && (_.triggeredstate = !1), frame = _.triggeredstate ? "toggleframes" === event.action ? event.frameN : "frame_1" : "toggleframes" === event.action ? event.frameM : "frame_999", tou = _.triggeredstate ? "triggerdelayIn" : "triggerdelayOut", _.triggeredstate ? _R.toggleState(_.layertoggledby) : (_R.stopVideo && _R.stopVideo(targetlayer, id), _R.unToggleState(_.layertoggledby)));
                                    var pars = {
                                        layer: targetlayer,
                                        frame: frame,
                                        mode: "trigger",
                                        id: id
                                    };
                                    !0 === event.children && (pars.updateChildren = !0, pars.fastforward = !0), _R.renderLayerAnimation && (clearTimeout(_[tou]), _[tou] = setTimeout((function(e) {
                                        _R.renderLayerAnimation(e)
                                    }), 1e3 * event.delay, pars));
                                    break;
                                case "playvideo":
                                    tex && _R.playVideo(targetlayer, id);
                                    break;
                                case "stopvideo":
                                    tex && _R.stopVideo && _R.stopVideo(targetlayer, id);
                                    break;
                                case "togglevideo":
                                    tex && (_R.isVideoPlaying(targetlayer, id) ? _R.stopVideo && _R.stopVideo(targetlayer, id) : _R.playVideo(targetlayer, id));
                                    break;
                                case "mutevideo":
                                    tex && _R.Mute(targetlayer, id, !0);
                                    break;
                                case "unmutevideo":
                                    tex && _R.Mute && _R.Mute(targetlayer, id, !1);
                                    break;
                                case "toggle_mute_video":
                                    tex && (_R.Mute(targetlayer, id) ? _R.Mute(targetlayer, id, !1) : _R.Mute && _R.Mute(targetlayer, id, !0));
                                    break;
                                case "toggle_global_mute_video":
                                    var pvl = _R[id].playingvideos != undefined && _R[id].playingvideos.length > 0;
                                    pvl && (_R[id].globalmute ? jQuery.each(_R[id].playingvideos, (function(e, t) {
                                        _R.Mute && _R.Mute(t, id, !1)
                                    })) : jQuery.each(_R[id].playingvideos, (function(e, t) {
                                        _R.Mute && _R.Mute(t, id, !0)
                                    }))), _R[id].globalmute = !_R[id].globalmute;
                                    break;
                                default:
                                    tpGS.gsap.delayedCall(event.delay, (function(targetlayer, id, event, layer) {
                                        switch (event.action) {
                                            case "openmodal":
                                                _R.openModalAPI(event.modal, event.modalslide === undefined ? 0 : event.modalslide, _R[id].ajaxUrl, !0, id, event);
                                                break;
                                            case "closemodal":
                                                _R.revModal(id, {
                                                    mode: "close"
                                                });
                                                break;
                                            case "callback":
                                                eval(event.callback);
                                                break;
                                            case "simplelink":
                                                window.open(event.url, event.target);
                                                break;
                                            case "simulateclick":
                                                targetlayer.length > 0 && targetlayer.trigger("click");
                                                break;
                                            case "toggleclass":
                                                targetlayer.length > 0 && targetlayer.toggleClass(event.classname);
                                                break;
                                            case "scrollbelow":
                                            case "scrollto":
                                                "scrollbelow" === event.action && layer.addClass("tp-scrollbelowslider"), _R.scrollToId({
                                                    id: id,
                                                    offset: event.offset,
                                                    action: event.action,
                                                    anchor: event.id,
                                                    speed: event.speed,
                                                    ease: event.ease
                                                });
                                                break;
                                            case "jumptoslide":
                                                switch (_R[id].skipAttachDetach = !0, event.slide.toLowerCase()) {
                                                    case "rs-random":
                                                        var ts = Math.min(Math.max(0, Math.ceil(Math.random() * _R[id].realslideamount) - 1));
                                                        ts = _R[id].activeRSSlide == ts ? ts > 0 ? ts - 1 : ts + 1 : ts, _R.callingNewSlide(id, _R[id].slides[ts].dataset.key, "carousel" === _R[id].sliderType);
                                                        break;
                                                    case "+1":
                                                    case "next":
                                                    case "rs-next":
                                                        _R[id].sc_indicator = "arrow", _R[id].sc_indicator_dir = 0, _R.callingNewSlide(id, 1, "carousel" === _R[id].sliderType);
                                                        break;
                                                    case "rs-previous":
                                                    case "rs-prev":
                                                    case "previous":
                                                    case "prev":
                                                    case "-1":
                                                        _R[id].sc_indicator = "arrow", _R[id].sc_indicator_dir = 1, _R.callingNewSlide(id, -1, "carousel" === _R[id].sliderType);
                                                        break;
                                                    case "first":
                                                    case "rs-first":
                                                        _R[id].sc_indicator = "arrow", _R[id].sc_indicator_dir = 1, _R.callingNewSlide(id, 0, "carousel" === _R[id].sliderType);
                                                        break;
                                                    case "last":
                                                    case "rs-last":
                                                        _R[id].sc_indicator = "arrow", _R[id].sc_indicator_dir = 0, _R.callingNewSlide(id, _R[id].slideamount - 1, "carousel" === _R[id].sliderType);
                                                        break;
                                                    default:
                                                        var ts = _R.isNumeric(event.slide) ? parseInt(event.slide, 0) : event.slide;
                                                        _R.callingNewSlide(id, ts, "carousel" === _R[id].sliderType)
                                                }
                                                break;
                                            case "toggleslider":
                                                _R[id].noloopanymore = 0, "playing" == _R[id].sliderstatus ? (_R[id].c.revpause(), _R[id].forcepaused = !0, _R.unToggleState(_R[id].slidertoggledby)) : (_R[id].forcepaused = !1, _R[id].c.revresume(), _R.toggleState(_R[id].slidertoggledby));
                                                break;
                                            case "pauseslider":
                                                _R[id].c.revpause(), _R.unToggleState(_R[id].slidertoggledby);
                                                break;
                                            case "playslider":
                                                _R[id].noloopanymore = 0, _R[id].c.revresume(), _R.toggleState(_R[id].slidertoggledby);
                                                break;
                                            case "gofullscreen":
                                            case "exitfullscreen":
                                            case "togglefullscreen":
                                                var gf;
                                                tpGS.gsap.set(_R[id].parallax.bgcontainers, {
                                                    y: 0
                                                }), jQuery(".rs-go-fullscreen").length > 0 && ("togglefullscreen" == event.action || "exitfullscreen" == event.action) ? (jQuery(".rs-go-fullscreen").removeClass("rs-go-fullscreen"), gf = _R[id].c.closest("rs-fullwidth-wrap").length > 0 ? _R[id].c.closest("rs-fullwidth-wrap") : _R[id].c.closest("rs-module-wrap"), _R[id].minHeight = _R[id].oldminheight, _R[id].infullscreenmode = !1, _R[id].c.revredraw(), _R[id].c.revredraw(), jQuery(window).trigger("resize"), _R.unToggleState(_R[id].fullscreentoggledby)) : 0 != jQuery(".rs-go-fullscreen").length || "togglefullscreen" != event.action && "gofullscreen" != event.action || (gf = _R[id].c.closest("rs-fullwidth-wrap").length > 0 ? _R[id].c.closest("rs-fullwidth-wrap") : _R[id].c.closest("rs-module-wrap"), gf.addClass("rs-go-fullscreen"), _R[id].oldminheight = _R[id].minHeight, _R[id].minHeight = _R.getWinH(id), _R[id].infullscreenmode = !0, jQuery(window).trigger("resize"), _R.toggleState(_R[id].fullscreentoggledby), _R[id].c.revredraw());
                                                break;
                                            default:
                                                _R[id].c.trigger("layeraction", [event.action, layer, event])
                                        }
                                    }), [targetlayer, id, event, layer])
                            }
                        }
                    }
            }))
        };

    function getFordWithAction(e) {
        var t = [];
        for (var i in e.ford) e.frames[e.ford[i]].timeline.waitoncall ? t.push(e.ford[i]) : t.push("skip");
        return t
    }

    function updateToggleByList(e, t, i) {
        var a = e.data(t);
        a === undefined && (a = []), a.push(i), e.data(t, a)
    }

    function getEventParams(e) {
        var t = {
            on: "click",
            delay: 0,
            ease: "power2.out",
            speed: 400
        };
        for (var i in e)
            if (e.hasOwnProperty(i)) {
                var a = e[i].split(":");
                switch (a.length > 2 && "call" === a[0] && (a[1] = a.join(":").replace(a[0] + ":", "")), a[0]) {
                    case "modal":
                        t.modal = a[1];
                        break;
                    case "ms":
                        t.modalslide = a[1];
                        break;
                    case "m":
                        t.frameM = a[1];
                        break;
                    case "n":
                        t.frameN = a[1];
                        break;
                    case "o":
                        t.on = "click" === a[1] || "c" === a[1] ? "click" : "ml" === a[1] || "mouseleave" === a[1] ? "mouseleave" : "mouseenter" === a[1] || "me" === a[1] ? "mouseenter" : a[1];
                        break;
                    case "d":
                        t.delay = parseInt(a[1], 0) / 1e3, t.delay = "NaN" === t.delay || isNaN(t.delay) ? 0 : t.delay;
                        break;
                    case "rd":
                        t.repeat = parseInt(a[1], 0) / 1e3, t.repeat = "NaN" === t.repeat || isNaN(t.repeat) ? 0 : t.repeat;
                        break;
                    case "a":
                        t.action = a[1];
                        break;
                    case "f":
                        t.frame = a[1];
                        break;
                    case "slide":
                        t.slide = a[1];
                        break;
                    case "layer":
                        t.layer = a[1];
                        break;
                    case "sp":
                        t.speed = parseInt(a[1], 0);
                        break;
                    case "e":
                        t.ease = a[1];
                        break;
                    case "ls":
                        t.togglestate = a[1];
                        break;
                    case "offset":
                        t.offset = a[1];
                        break;
                    case "call":
                        t.callback = a[1];
                        break;
                    case "url":
                        t.url = "";
                        for (var r = 1; r < a.length; r++) t.url += a[r] + (r === a.length - 1 ? "" : ":");
                        break;
                    case "target":
                        t.target = a[1];
                        break;
                    case "class":
                        t.classname = a[1];
                        break;
                    case "ch":
                        t.children = "true" == a[1] || 1 == a[1] || "t" == a[1];
                        break;
                    default:
                        a[0].length > 0 && "" !== a[0] && (t[a[0]] = a[1])
                }
            }
        return t
    }
    var getOffContH = function(e) {
        if (e == undefined) return 0;
        if (e.split(",").length > 1) {
            var t = e.split(","),
                i = 0;
            return t && jQuery.each(t, (function(e, t) {
                jQuery(t).length > 0 && (i += jQuery(t).outerHeight(!0))
            })), i
        }
        return jQuery(e).height()
    };
    window.RS_MODULES = window.RS_MODULES || {}, window.RS_MODULES.actions = {
        loaded: !0,
        version: version
    }, window.RS_MODULES.checkMinimal && window.RS_MODULES.checkMinimal()
}(jQuery),
function(e) {
    "use strict";
    jQuery.fn.revolution = jQuery.fn.revolution || {};
    var t = jQuery.fn.revolution;
    jQuery.extend(!0, t, {
        prepareCarousel: function(e, i, a, r) {
            if (void 0 !== e) {
                var s = t[e].carousel;
                s.slidesWithRowAdjustions = {}, i = s.lastdirection = o(i, s.lastdirection), t.setCarouselDefaults(e, void 0, r), t.organiseCarousel(e, "right", !0, !1, !1), void 0 !== s.swipeTo && t.isNumeric(s.swipeTo) ? void 0 !== a ? t.swipeAnimate({
                    id: e,
                    to: s.swipeTo,
                    distance: s.swipeToDistance,
                    direction: i,
                    fix: !0,
                    speed: a
                }) : t.swipeAnimate({
                    id: e,
                    to: s.swipeTo,
                    distance: s.swipeToDistance,
                    direction: i,
                    fix: !0
                }) : t.swipeAnimate({
                    id: e,
                    to: 0,
                    direction: i,
                    speed: 0
                }), "carousel" !== t[e].sliderType || s.fadein || (tpGS.gsap.to(t[e].canvas, 1, {
                    scale: 1,
                    opacity: 1
                }), s.fadein = !0)
            }
        },
        setupCarousel: function(e) {
            var o = t[e].carousel;
            "v" == o.orientation ? (o.length = "height", o.translate = "y", o.slide_dims = "slide_heights", o.deltaT = "deltaY", o.sliderLength = "sliderHeight", o.slide_length = "slide_height", o.wraplength = "wrapheight", o.align = "0%" === o.vertical_align ? "start" : "50%" === o.vertical_align ? "center" : "end", !o.snap || o.justify || o.infinity || (o.forceBAlign = !0)) : (o.length = "width", o.translate = "x", o.slide_dims = "slide_widths", o.deltaT = "deltaX", o.sliderLength = "sliderWidth", o.slide_length = "slide_width", o.wraplength = "wrapwidth", o.align = "left" === o.horizontal_align ? "start" : "center" === o.horizontal_align ? "center" : "end"), o[o.sliderLength] = t[e].canv[o.length], o.proxy = document.createElement("div"), o.follower = document.createElement("div"), o.slideamount = t[e].slideamount, o.infinity || o.snap || (t[e].carousel.align = "start"), r(e), a(e, o.align), o.inited = !0, o.lerpHandler = t.carLerpHandler.bind(this, e), void 0 === o.animInList && (o.animInList = []), o.draggableObj = {
                trigger: t[e].c[0],
                type: o.translate,
                edgeResistance: .5,
                zIndexBoost: !1,
                cursor: "grab",
                activeCursor: "grabbing",
                allowContextMenu: !0,
                inertia: !0,
                throwResistance: o.snap ? 8e3 : 500,
                onPress: function(i) {
                    t.closestClass(i.target, "rs-nav-element") ? (o.draggable.endDrag(), o.draggable.disable()) : t[e].c.trigger("stoptimer"), o.focusedOnPress = o.focused, o.isPressed = !0, o.fromWheel = !1, o.cX = o.lerpX = this.pointerX, o.cY = o.lerpY = this.pointerY, o.tween && o.tween.kill && (o.tween.kill(), delete o.tween)
                },
                onClick: function(i) {
                    o.isPressed = !1, t.closestClass(i.target, "rs-nav-element") || t.closestClass(i.target, "rs-waction") || o.draggable.enabled() && !1 === t[e].carousel.stopOnClick && t[e].c.trigger("starttimer")
                },
                onDragStart: function() {
                    o.lerpSpeed = .1, o.lerp || (o.lerp = requestAnimationFrame(o.lerpHandler)), t.ISM && o.forceBAlign && ("up" === this.getDirection() && o.focused == o.slideamount - 1 || "down" === this.getDirection() && 0 == o.focused ? o.forceScroll = !0 : o.forceScroll = !1)
                },
                onDrag: function() {
                    o.cX = this.pointerX, o.cY = this.pointerY
                },
                snap: function(i) {
                    var a;
                    return t.getLastPos(e), o.isPressed = !1, o.forceScroll && o.forceBAlign ? (a = "up" === this.getDirection() ? t[e].cpar.offset().top + t[e].module.height : t.document.scrollTop() - (window.innerHeight - t[e].cpar[0].getBoundingClientRect().top), t[e].modal.useAsModal || tpGS.gsap.to([window, "body"], {
                        scrollTo: a
                    }), o.focused != o.slideamount - 1 || o.infinity ? o.lastPos : o[o.wraplength] - o.totalWidth) : (t.calculateSnap(e, i), i)
                }
            }, o.draggable = tpGS.draggable.create(o.proxy, o.draggableObj)[0], t[e].c.one("revolution.slide.onchange", (function() {
                i(e)
            }))
        },
        positionCarousel: function(e) {
            var i = t[e].carousel;
            if (i[i.sliderLength] = t[e].canv[i.length], i.draggable && !i.draggable.isPressed) {
                for (var a = 0, o = 0; o < i.slideamount; o++) i.arr[o].elem === t[e].slides[i.closest] && (a = i.arr[o].prog);
                if (Number.isNaN(a) && (a = 0), r(e), t.ISM && t[e].navigation.touch.mobileCarousel || !0 !== t.ISM && t[e].navigation.touch.desktopCarousel ? (i.draggable.vars.cursor = "grab", i.draggable.enable()) : (i.draggable.vars.cursor = "pointer", i.draggable.disable()), t[e].carousel.justify) {
                    i.wrapperWidth = 0;
                    for (o = 0; o < t[e].carousel[i.slide_dims].length; o++) i.wrapperWidth += t[e].carousel[i.slide_dims][o]
                } else i.wrapperWidth = i.slide_width * t[e].slides.length;
                void 0 === i.focused && (i.focused = 0), i.activeSlide = i.oldfocused = void 0 === i.focused || void 0 === i.closest ? 0 : i.closest;
                for (o = 0; o < i.arr.length; o++) t.updateSlideWidth(e, o);
                var s, n, l = 0;
                i.lastWrapwidth = i.wrapwidth, i.lastWrapheight = i.wrapheight, n = s = "start" === t[e].carousel.align ? 0 : "center" === t[e].carousel.align ? (i[i.wraplength] - i.arr[i.activeSlide][i.length]) / 2 : i[i.wraplength] - i.arr[i.activeSlide][i.length], i.infinity || "v" !== i.orientation || i.activeSlide != i.slideamount - 1 || (s = i[i.wraplength] - i.arr[i.activeSlide][i.length]), tpGS.gsap.set([i.proxy, i.follower], {
                    x: s,
                    y: s
                });
                var d = i.arr[0][i.length] * a;
                if (i.infinity) {
                    for (o = i.activeSlide; o < i.arr.length; o++) o !== i.activeSlide && (l += i.space), "h" === i.orientation ? tpGS.gsap.set(i.arr[o].elem, {
                        x: l + s + d
                    }) : tpGS.gsap.set(i.arr[o].elem, {
                        y: l + s + d
                    }), i.arr[o].posX = l + s + d, i.arr[o][i.translate] = l + s + d, l += i.arr[o][i.length];
                    var c = s + d;
                    for (o = i.activeSlide - 1; o >= 0; o--) c -= i.arr[o][i.length] + i.space, i.arr[o].posX = c + d, i.arr[o][i.translate] = c, "h" === i.orientation ? tpGS.gsap.set(i.arr[o].elem, {
                        x: c
                    }) : tpGS.gsap.set(i.arr[o].elem, {
                        y: c
                    }), l += i.arr[o][i.length] + i.space
                } else {
                    var p = 0;
                    for (o = 0; o < i.arr.length; o++) o > 0 && (l += i.space), o == i.activeSlide && (p += l), i.arr[o].posX = l + s + d, i.arr[o][i.translate] = l + s + d, "h" === i.orientation ? tpGS.gsap.set(i.arr[o].elem, {
                        x: l + s + d
                    }) : tpGS.gsap.set(i.arr[o].elem, {
                        y: l + s + d
                    }), l += i.arr[o][i.length];
                    tpGS.gsap.set([i.proxy, i.follower], {
                        x: s - p,
                        y: s - p
                    }), "h" === i.orientation ? tpGS.gsap.set([t[e].slides], {
                        x: "-=" + p
                    }) : tpGS.gsap.set([t[e].slides], {
                        y: "-=" + p
                    });
                    for (o = 0; o < i.arr.length; o++) i.arr[o].posX -= p, i.arr[o][i.translate] -= p
                }
                if (i.startOffset = n, t.swapCarouselSlides(e, !0), i.infinity ? i.draggable.applyBounds({
                        minX: -1 / 0,
                        maxX: 1 / 0
                    }) : !i.infinity && i.snap ? i.draggable.applyBounds({
                        minX: -(i.startOffset + l),
                        maxX: i.startOffset
                    }) : i.infinity || i.snap || i.draggable.applyBounds({
                        minX: i.wrapwidth - l,
                        maxX: 0
                    }), i.lastActiveSlide = i.activeSlide, i.totalWidth = l, i.lastTotalWidth = l, "off" !== i.spin) {
                    var g = i[i.slide_length] / 2;
                    i.spinAngle = Math.max(Math.min(i.spinAngle, 360 / i.arr.length), -360 / i.arr.length);
                    var u = g / Math.sin(i.spinAngle / 2 * Math.PI / 180);
                    i.spinR = (Math.sqrt(u * u - g * g) + i.space) * Math.sign(i.spinAngle), "2d" === i.spin && "h" === i.orientation ? i.spinR += (i.spinAngle <= 0 ? 0 : 1) * ("fullscreen" === t[e].sliderLayout ? i.wrapheight : i.slide_height) : "2d" === i.spin && (i.spinR += (i.spinAngle <= 0 ? 0 : 1) * ("fullscreen" === t[e].sliderLayout ? i.wrapwidth : i.slide_width))
                }
                for (o = 0; o < i.trackArr.length; o++)
                    for (var h = 0; h < i.arr.length; h++) i.trackArr[o].elem === i.arr[h].elem && (i.trackArr[o].width = i.arr[h].width, i.trackArr[o].height = i.arr[h].height);
                t.swapCarouselSlides(e, !0), t.applyDistanceEffect(e), t.swipeAnimate({
                    id: e,
                    from: "none"
                })
            }
        },
        updateSlideWidth: function(e, i) {
            var a = t[e].carousel;
            if (a.justify)
                for (var r = 0; r < t[e].slides.length; r++) t[e].slides[r] === a.arr[i].elem && (a.arr[i][a.length] = a[a.slide_dims][r]);
            else a.arr[i][a.length] = a[a.slide_length]
        },
        swapCarouselSlides: function(e) {
            var i = t[e].carousel,
                a = !0;
            if (i.infinity && !(i.totalWidth < i[i.wraplength]))
                for (var r; a;) {
                    var o = parseFloat(i.arr[0][i.translate]) > 0 || void 0 !== i.arr[0].progress && i.arr[0].progress <= i.maxVisibleItems / 2 && !(i.arr[i.arr.length - 1].progress <= i.maxVisibleItems / 2) && parseFloat(i.arr[i.arr.length - 1][i.translate]) >= i[i.wraplength],
                        s = parseFloat(i.arr[i.arr.length - 1][i.translate]) < i[i.wraplength] - i.arr[i.arr.length - 1][i.length] || void 0 !== i.arr[i.arr.length - 1].progress && i.arr[i.arr.length - 1].progress <= i.maxVisibleItems / 2 && !(i.arr[0].progress <= i.maxVisibleItems / 2) && parseFloat(i.arr[0][i.translate]) + i.arr[0][i.length] <= 0;
                    if (o) {
                        var n = parseFloat(i.arr[0][i.translate]) - i.space,
                            l = i.arr.pop();
                        i.arr.unshift(l), r === l && (a = !1), r = l, i.arr[0].posX = i.arr[0][i.translate] = n - i.arr[0][i.length], t.getCarActiveSlide(e)
                    } else if (s) {
                        n = parseFloat(i.arr[i.arr.length - 1][i.translate]) + i.space, l = i.arr.shift();
                        i.arr.push(l), r === l && (a = !1), r = l, i.arr[i.arr.length - 1].posX = i.arr[i.arr.length - 1][i.translate] = n + i.arr[i.arr.length - 2][i.length], t.getCarActiveSlide(e)
                    } else a = !1
                }
        },
        onThrowComplete: function(e) {
            var a = t[e].carousel;
            "carousel" !== t[e].sliderType || a.fadein || (tpGS.gsap.to(t[e].canvas, 1, {
                scale: 1,
                opacity: 1
            }), a.fadein = !0), t.getCarActiveSlide(e, !0);
            for (var r = a.arr[a.activeSlide], o = 0; o < t[e].slides.length; o++) {
                if (t[e].slides[o] === r.elem) {
                    if (a.focused = parseFloat(o), t[e].pr_next_key = a.focused, a.animInList.includes(a.oldfocused.toString()) || a.animInList.push(a.oldfocused.toString()), "all" !== a.showLayersAllTime)
                        for (; a.animInList.length >= 1;) {
                            var s = a.animInList.pop();
                            a.focused != s && t.removeTheLayers(jQuery(t[e].slides[s]), e)
                        }
                    for (var n in t.callingNewSlide(e, t[e].slides[o].getAttribute("data-key"), !0, !0), t[e].c.trigger("revolution.nextslide.waiting"), i(e), a.focused != a.oldfocused && "all" !== a.showLayersAllTime && (a.animInList.includes(a.focused.toString()) || a.animInList.push(a.focused.toString()), t.animateTheLayers({
                            slide: a.focused,
                            id: e,
                            mode: "start"
                        }), t.animateTheLayers({
                            slide: "individual",
                            id: e,
                            mode: t[e].carousel.allLayersStarted ? "rebuild" : "start"
                        })), t[e].sbgs) t[e].sbgs.hasOwnProperty(n) && void 0 !== t[e].sbgs[n].bgvid && 0 !== t[e].sbgs[n].bgvid.length && ("" + t[e].sbgs[n].skeyindex == "" + a.focused ? t.playBGVideo(e, t.gA(t[e].pr_next_slide[0], "key")) : t.stopBGVideo(e, t[e].sbgs[n].key));
                    a.oldfocused = a.focused
                }
                for (var l = t[e].slides[o].querySelectorAll(".rs-on-car"), d = 0; d < l.length; d++) t[e].slides[o] !== r.elem && l[d].classList.contains("rs-layer-video") && t[e].videos[l[d].id].pauseOnSlideChange && t.stopVideo(jQuery(l[d]), e)
            }
            a.draggable[a.deltaT] = 0, t[e].c.trigger("restarttimer")
        },
        calculateSnap: function(e, i) {
            var a = t[e].carousel;
            tpGS.gsap.killTweensOf(a.proxy, a.translate);
            var r = "v" === a.orientation ? i - a.draggable.endY : i - a.draggable.endX;
            Math.abs(r) < 3 && (r = 0);
            var o, s = !0,
                n = "v" === a.orientation ? Math.abs(a.draggable.endY - a.draggable.startY) : Math.abs(a.draggable.endX - a.draggable.startX);
            if (a.focusedPreSnap = a.focused, a.snap) {
                o = a.direction = a.draggable[a.deltaT] >= 0 ? "right" : "left";
                var l = t.getNextSlide(e, r, o, !0, n < 300);
                r = l.delta, s = l.overshoot, a.target = l.target
            } else a.target = i;
            if ((!a.infinity && !a.snap || !a.infinity && "v" === a.orientation) && (a.target <= a[a.wraplength] - a.totalWidth ? a.target = a[a.wraplength] - a.totalWidth : a.target >= 0 && !a.snap && (a.target = 0)), a.swiped = !0, a.overshoot && s) {
                tpGS.gsap.to(a, {
                    duration: a.snap ? .3 : .5,
                    lerpSpeed: .8
                }), s = Math.min(0 === a.draggable[a.deltaT] ? Math.abs(r) / 20 : Math.abs(a.draggable[a.deltaT]) / 2, a[a.wraplength] / 4) * Math.sign(r);
                var d = Math.abs(s / 100);
                a.time = Math.min(Math.max(d / 10, a.speed / 1e3 * .6), a.speed / 1e3), a.tween = tpGS.gsap.timeline({
                    onComplete: function() {
                        t.snapCompleted(e)
                    }
                }), a.tween.to(a.proxy, {
                    x: a.target + s,
                    y: a.target + s,
                    duration: a.time,
                    ease: "power2.out"
                }).to(a.proxy, {
                    x: a.target,
                    y: a.target,
                    duration: Math.min(2 * a.time, .6),
                    ease: a.easing.replace(".inOut", ".out").replace(".in", ".out")
                }, "overshoot").to(a, {
                    duration: Math.min(2 * a.time, .6),
                    lerpSpeed: 1
                }, "overshoot")
            } else d = Math.abs(r / 100), a.time = Math.min(Math.max(d / 10, a.speed / 1e3 * .6), a.speed / 1e3), a.tween = tpGS.gsap.to(a.proxy, {
                x: a.target,
                y: a.target,
                duration: a.time,
                ease: a.easing.replace(".inOut", ".out").replace(".in", ".out"),
                onComplete: function() {
                    t.snapCompleted(e)
                }
            }), tpGS.gsap.to(a, {
                duration: a.time,
                lerpSpeed: 1
            })
        },
        carLerpHandler: function(e, i) {
            var a = t[e].carousel;
            "skip" !== i && (a.lerp = requestAnimationFrame(a.lerpHandler));
            var r = parseFloat(a.proxy._gsap[a.translate]),
                o = parseFloat(a.follower._gsap[a.translate]),
                s = o + (r - o) * a.lerpSpeed - o;
            "mousedrag" == t[e].parallax.type && (a.delta = s, a.lerpX = a.lerpX + (a.cX - a.lerpX) * a.lerpSpeed, a.lerpY = a.lerpY + (a.cY - a.lerpY) * a.lerpSpeed, t[e].parallax.frame = window.requestAnimationFrame(t[e].parallax.parallaxHandler)), tpGS.gsap.set(t[e].canvas, {
                skewX: a.skewX * Math.max(-1, Math.min(1, s / 100)),
                skewY: a.skewY * Math.max(-1, Math.min(1, s / 100))
            }), "h" === a.orientation ? (tpGS.gsap.set(a.follower, {
                x: "+=" + s
            }), tpGS.gsap.set(a.arr, {
                x: "+=" + s
            })) : (tpGS.gsap.set(a.follower, {
                y: "+=" + s
            }), tpGS.gsap.set(a.arr, {
                y: "+=" + s
            })), t.swapCarouselSlides(e), t.applyDistanceEffect(e)
        },
        snapCompleted: function(e) {
            var i = t[e].carousel;
            i.lerp = cancelAnimationFrame(i.lerp), i.scrollFrame = cancelAnimationFrame(i.scrollFrame), i.swiped = !1, tpGS.gsap.set(i.follower, {
                x: i.proxy._gsap[i.translate],
                y: i.proxy._gsap[i.translate]
            }), t.onThrowComplete(e)
        },
        applyDistanceEffect: function(e) {
            var r = t[e].carousel,
                o = 1 / 0,
                s = 0,
                n = 0;
            void 0 === r.lastSlideProgress && (r.lastSlideProgress = 1);
            var l = r.startOffset;
            for (var d in r.startOffsetCache = r.startOffset, void 0 === r.tempAlign && (r.tempAlign = r.align), "v" !== r.orientation || r.infinity || r.justify || (l = r.startOffset + (r[r.wraplength] - r[r.slide_length] - r.startOffset) * (1 - r.lastSlideProgress)), r.arr) {
                var c = parseFloat(r.arr[d][r.translate]) - l;
                if (r.infinity && (c %= r.totalWidth), Math.abs(c) < o) {
                    for (var p = 0; p < t[e].slides.length; p++) t[e].slides[p] === r.arr[d].elem && (n = p, r.closestArr = d);
                    o = Math.abs(c)
                }
                r.arr[d].loaded && s++, r.infinity || r.snap || (0 === r.activeSlide ? c = parseFloat(r.arr[d][r.translate]) : r.activeSlide === r.arr.length - 1 && (c = parseFloat(r.arr[d][r.translate]) - (r[r.wraplength] - r.arr[d][r.length])));
                var g = Math.sign(c),
                    u = r.arr[d].progress = Math.abs(c) / (r[r.slide_length] + r.space);
                if (r.arr[d].prog = c / (r[r.slide_length] + r.space), !r.justify && "mousedrag" === t[e].parallax.type)
                    for (p = 0; p < t[e].slides.length; p++) t[e].slides[p] === r.arr[d].elem && (r.trackArr[p].progress = u);
                "v" !== r.orientation || r.infinity || d != r.slideamount - 1 || (u <= ("left" === r.direction ? .9 : .1) && !r.vertAlignBottom ? (tpGS.gsap.to(r, {
                    lastSlideProgress: 0,
                    duration: .2
                }), r.vertAlignDefault = !1, r.vertAlignBottom = !0, r.tempAlign = "end", a(e, "end")) : u > ("left" === r.direction ? .9 : .1) && !r.vertAlignDefault && (tpGS.gsap.to(r, {
                    lastSlideProgress: 1,
                    duration: .2
                }), r.vertAlignDefault = !0, r.vertAlignBottom = !1, r.tempAlign = r.align, a(e, r.align))), r.arr[d].sign = g;
                var h = r.arr[d].progress;
                h = h / Math.ceil(r.pDiv) * ("center" === r.tempAlign ? 1 : "start" === r.tempAlign ? g : -g);
                var m = Math.min(r.arr[d].progress, 1) / 1,
                    v = 100 - 5 * Math.round(r.arr[d].progress),
                    f = {};
                if (r.justify || "off" === r.spin)
                    if (0 === r.minScale || r.justify) f[r.translate] = r.arr[d][r.translate];
                    else {
                        var y = 1 - (r.vary_scale ? h : m) * (1 - r.minScale),
                            w = r.offsetScale ? r.arr[d].sign * (r[r.slide_length] + r.space - (r[r.slide_length] + r.space) * y) / 2 * r.arr[d].progress : r.arr[d].sign * (r[r.slide_length] - r[r.slide_length] * y) / 2 * r.arr[d].progress;
                        f[r.translate] = r.arr[d][r.translate] - w, window.isSafari11 && (f.z = -150 * (1 - y)), f.scale = y
                    }
                else f[r.translate] = l, "2d" === r.spin ? (f.rotation = r.spinAngle * u * ("h" === r.orientation ? g : -g), "h" === r.orientation ? f.transformOrigin = "center " + r.spinR + "px 0" : f.transformOrigin = r.spinR + "px center 0") : ("h" === r.orientation ? f.rotationY = r.spinAngle * r.arr[d].progress * -g : f.rotationX = r.spinAngle * r.arr[d].progress * g, f.transformOrigin = "center center " + r.spinR + "px");
                f.opacity = 1, r.justify || (0 !== r.maxRotation && (f.rotationY = r.maxRotation * (r.vary_rotation ? h : m) * -g), f.opacity = 1 + (r.maxOpacity - 1) * (r.vary_fade ? h : m), h > r.edgeRatio ? f.opacity = r.oRange(h) : h < 0 ? f.opacity = r.oRangeMin(h) : 1 === r.maxOpacity && (f.opacity = 1)), f.zIndex = v, f.opacity > 0 ? ("visible" !== r.arr[d].elem.style.visibility && (f.visibility = "visible"), tpGS.gsap.set(r.arr[d].elem, f)) : ("hidden" !== r.arr[d].elem.style.visibility && (f.visibility = "hidden"), tpGS.gsap.set(r.arr[d].elem, {
                    visibility: f.visibility,
                    opacity: f.opacity
                }))
            }
            if (n !== r.closest) {
                if (r.closest = n, s !== r.arr.length && t.loadVisibleCarouselItems(e, !0, r.closest), r.draggable.isPressed) {
                    if (r.focused = r.closest, t[e].pr_next_key = r.focused, r.oldfocused = void 0 === r.oldfocused ? 0 : r.oldfocused, t[e].carousel.allLayersStarted ? t.updateCarouselRows(e) : t.carouselRowAdjustment(r, e, r.focused), "all" !== r.showLayersAllTime)
                        for (r.animInList.includes(r.oldfocused.toString()) || r.animInList.push(r.oldfocused.toString()); r.animInList.length >= 1;) {
                            var b = r.animInList.pop();
                            r.focused != b && t.removeTheLayers(jQuery(t[e].slides[b]), e)
                        }
                    r.focused != r.oldfocused && ("all" !== r.showLayersAllTime && (r.animInList.includes(r.focused.toString()) || r.animInList.push(r.focused.toString()), t.animateTheLayers({
                        slide: r.focused,
                        id: e,
                        mode: "start"
                    }), t.animateTheLayers({
                        slide: "individual",
                        id: e,
                        mode: t[e].carousel.allLayersStarted ? "rebuild" : "start"
                    })), i(e, !0), r.oldfocused = r.focused), t[e].c.trigger("revolution.nextslide.waiting")
                }
                for (var _ in t[e].sbgs) t[e].sbgs.hasOwnProperty(_) && void 0 !== t[e].sbgs[_].bgvid && 0 !== t[e].sbgs[_].bgvid.length && "" + t[e].sbgs[_].skeyindex != "" + r.focused && t.stopBGVideo(e, t[e].sbgs[_].key)
            }
        },
        getCarActiveSlide: function(e) {
            var i, a = t[e].carousel,
                r = 999999,
                o = 0;
            for (var s in a.arr) {
                var n;
                if (a.arr.hasOwnProperty(s)) n = "center" === t[e].carousel.align ? Math.abs(parseFloat(a.arr[s][a.translate]) - (a[a.wraplength] - a.arr[s][a.length]) / 2) : "start" === t[e].carousel.align ? Math.abs(parseFloat(a.arr[s][a.translate])) : Math.abs(parseFloat(a.arr[s][a.translate]) - (a[a.wraplength] - a.arr[s][a.length])), a.vertAlignBottom && (n = Math.abs(parseFloat(a.arr[s][a.translate]) - (a[a.wraplength] - a.arr[s][a.length]))), n < r && (i = a.arr[s], r = n, o = s)
            }
            return o = parseInt(o), a.activeSlide = o, i
        },
        loadVisibleCarouselItems: function(e, i, a) {
            var r = t[e].carousel,
                o = [],
                s = a ? r.closest : r.focused;
            r.focused = parseInt(s, 0), r.focused = t.isNumeric(s) ? s : 0;
            for (var n = 0; n < Math.ceil(t[e].carousel.maxVisibleItems / 2); n++) {
                var l = "end" === t[e].carousel.align ? s - n : s + n,
                    d = "center" === t[e].carousel.align ? s - n : "start" === t[e].carousel.align ? t[e].carousel.maxVisibleItems + l - 1 : l - t[e].carousel.maxVisibleItems + 1;
                if (l = l >= t[e].slideamount ? l - t[e].slideamount + 0 : l, d = d >= t[e].slideamount ? d - t[e].slideamount + 0 : d, l = l < 0 ? t[e].slideamount + l : l, d = d < 0 ? t[e].slideamount + d : d, o.push(t[e].slides[l]), l !== d && o.push(t[e].slides[d]), r.arr)
                    for (var c = 0; c < r.arr.length; c++) t[e].slides[l] === r.arr[c].elem && (r.arr[c].loaded = !0), t[e].slides[d] === r.arr[c].elem && (r.arr[c].loaded = !0)
            }
            return i && (t.loadImages(o, e, 1), t.waitForCurrentImages(o, e)), o
        },
        organiseCarousel: function(e, i, a, r, o) {
            var s = t[e].carousel;
            if (t[e].slides)
                for (var n = 0; n < t[e].slides.length; n++) {
                    var l = {
                        width: !0 === s.justify ? s.slide_widths[n] : s.slide_width
                    };
                    "off" === s.spin && (l.transformOrigin = "50% " + ("h" === s.orientation ? s.vertical_align : "center")), l.force3D = !0, l.transformStyle = "3D" != t[e].parallax.type && "3d" != t[e].parallax.type ? "flat" : "preserve-3d", !0 !== o && tpGS.gsap.set(t[e].slides[n], l)
                }
        },
        updateCarouselRows: function(e) {
            if ("carousel" === t[e].sliderType)
                for (var i = 0; i < t[e].slideamount; i++) t.carouselRowAdjustment(t[e].carousel, e, i)
        },
        carouselRowAdjustment: function(e, i, a) {
            void 0 !== e.slidesWithRowAdjustions && void 0 === e.slidesWithRowAdjustions[a] && (e.slidesWithRowAdjustions[a] = !0, t.getRowHeights(i, a), t.putMiddleZoneInPosition(i, a))
        },
        getNextSlide: function(e, i, a, r, o) {
            var s, n = t[e].carousel,
                l = 0,
                d = !1,
                c = i,
                p = i;
            if (void 0 === n.trackIndex) {
                for (var g = 0; g < n.trackArr.length; g++)
                    if (n.arr[n.activeSlide].elem === n.trackArr[g].elem) {
                        s = g;
                        break
                    }
            } else s = n.trackIndex;
            void 0 === a && (d = !0);
            for (var u = !1;
                (n.snap || !r) && !d;) {
                if (u || r && Math.abs(l) >= Math.abs(i) || void 0 === i && t[e].slides[n.focused] === n.trackArr[s].elem) {
                    i = l;
                    break
                }
                c = l;
                var h = t.getNext(e, a, l, s, void 0 === r);
                (u = h.breakLoop) || (l = h.tempDelta, s = h.trackIndex)
            }
            var m = n.lastPos + i;
            return r && n.focusedOnPress != n.focusedPreSnap && (m = Math.abs(p + n.lastPos - m) <= Math.abs(p + n.lastPos - (c + n.lastPos)) ? m : c + n.lastPos), d && (m = n.lastPos, i = -n.arr[n.closestArr][n.translate]), {
                target: m,
                overshoot: !0,
                delta: i,
                trackIndex: s
            }
        },
        getNext: function(e, i, a, r, o) {
            var s = t[e].carousel,
                n = "right" === i ? 1 : -1,
                l = !1;
            return "start" === s.align && "left" === i ? a += (s.trackArr[r][s.length] + s.space) * n : "center" === s.align ? a += (s.trackArr[r][s.length] + s.space) / 2 * n : "end" === s.align && "right" === i && (a += (s.trackArr[r][s.length] + s.space) * n), "right" === i ? --r < 0 && (r = s.infinity ? s.trackArr.length - 1 : r + 1, s.infinity || (l = !0)) : ++r >= s.trackArr.length && (r = s.infinity ? 0 : r - 1, s.infinity || (l = !0)), l || ("start" === s.align && "right" === i && (a += (s.trackArr[r][s.length] + s.space) * n), "center" === s.align ? a += (s.trackArr[r][s.length] + s.space) / 2 * n : "end" === s.align && "left" === i && (a += (s.trackArr[r][s.length] + s.space) * n)), {
                tempDelta: a,
                trackIndex: r,
                breakLoop: l
            }
        },
        getCarDir: function(e, i, a) {
            var r = t[e].carousel,
                o = a - i,
                s = "right";
            r.sameSlide = !1;
            var n = 0,
                l = 0;
            if (r.infinity) {
                for (var d = i; d != a;) l += 1, d = ++d >= r.slideamount ? 0 : d;
                for (d = i; d != a;) n += 1, d = --d < 0 ? r.slideamount - 1 : d;
                s = l <= n ? "left" : "right"
            } else r.infinity || (s = a - i >= 0 ? "left" : "right", l = Math.abs(a - i), 0 === o && (s = "right", r.sameSlide = !0));
            return r.steps = l <= n ? l : n, r.direction = s, s
        },
        getLastPos: function(e) {
            var i = t[e].carousel;
            if (i.trackArr) {
                for (var a = 0, r = 0, o = 0; o < i.trackArr.length; o++) t[e].slides[i.closest] === i.trackArr[o].elem && (i.trackIndex = o), t[e].slides[i.closest] === i.arr[o].elem && (a = i.arr[o][i.translate], "center" === i.align && (r = (i[i.wraplength] - i.arr[o][i.length]) / 2), "end" === i.align && (r = i[i.wraplength] - i.arr[o][i.length]), i.lastOffset = r);
                i.lastPos = parseFloat(i.proxy._gsap[i.translate]) - a - (parseFloat(i.proxy._gsap[i.translate]) - parseFloat(i.follower._gsap[i.translate])), i.lastPos += r
            }
        },
        swipeAnimate: function(e) {
            var i = t[e.id].carousel,
                a = e.id;
            if (t.getLastPos(a), i.arr && i.arr[i.closestArr] && i.arr[i.closestArr].elem != t[e.id].slides[i.focused]) {
                var r = t.getCarDir(a, i.trackIndex, i.focused),
                    o = t.getNextSlide(e.id, void 0, r, !1);
                i.target = o.target, (!i.infinity && !i.snap || !i.infinity && "v" === i.orientation) && (i.target <= i[i.wraplength] - i.totalWidth ? i.target = i[i.wraplength] - i.totalWidth : i.target >= 0 && !i.snap && (i.target = 0)), i.lerpSpeed = 1, i.fromWheel = !1, i.tween && i.tween.kill && (i.tween.kill(), delete i.tween), i.tween = tpGS.gsap.to(i.proxy, {
                    x: i.target,
                    y: i.target,
                    ease: i.easing,
                    duration: i.speed / 1e3 + (i.steps >= 2 ? (i.steps - 1) * i.speed / 2e3 : 0),
                    onComplete: function() {
                        i.lerp = cancelAnimationFrame(i.lerp), i.scrollFrame = cancelAnimationFrame(i.scrollFrame), t.carLerpHandler(a, "skip"), i.activeSlide = i.closestArr, t.snapCompleted(a)
                    }
                }), i.lerp = cancelAnimationFrame(i.lerp), i.scrollFrame = cancelAnimationFrame(i.scrollFrame), i.lerp || (i.lerp = requestAnimationFrame(i.lerpHandler))
            }
        },
        carScrollTicker: function(e) {
            var i = t[e].carousel;
            i.scrollFrame = requestAnimationFrame(i.scrollTicker);
            var a = parseFloat(i.proxy._gsap[i.translate]),
                r = a + .5 * (i.scrollProxy - a),
                o = r - a;
            tpGS.gsap.set(i.proxy, {
                [i.translate]: r
            }), Math.abs(o) < .03 && (i.scrollFrame = cancelAnimationFrame(i.scrollFrame), i.lerp = cancelAnimationFrame(i.lerp), i.activeSlide = i.closestArr, t.snapCompleted(e))
        },
        scrollCar: function(e, i, a) {
            var r = t[e].carousel;
            r.scrollFrame = cancelAnimationFrame(r.scrollFrame), r.lerp = cancelAnimationFrame(r.lerp), tpGS.gsap.to(r, {
                lerpSpeed: 1
            }), r.fromWheel = !0;
            var o, s = Math.round(parseFloat(r.proxy._gsap[r.translate]));
            if (r.tween && r.tween.kill && (r.tween.kill(), delete r.tween), 1 == a && r.focused == r.slideamount - 1 && s <= r[r.wraplength] - r.totalWidth && !r.infinity || -1 == a && 0 == r.focused && s >= 0 && !r.infinity) return o = 1 == a ? t[e].cpar.offset().top + t[e].module.height : t.document.scrollTop() - (window.innerHeight - t[e].cpar[0].getBoundingClientRect().top), void(t[e].modal.useAsModal || tpGS.gsap.to([window, "body"], {
                scrollTo: o
            }));
            var n = s + -8 * i;
            (!r.infinity && !r.snap || !r.infinity && "v" === r.orientation) && (n <= r[r.wraplength] - r.totalWidth ? n = r[r.wraplength] - r.totalWidth : n >= 0 && !r.snap && (n = 0)), r.tween = tpGS.gsap.to(r, {
                scrollProxy: n,
                duration: .5,
                ease: r.easing
            }), r.scrollFrame = requestAnimationFrame(r.scrollTicker), r.lerp || (r.lerp = requestAnimationFrame(r.lerpHandler))
        },
        defineCarouselElements: function(e) {
            var i = t[e].carousel;
            i.infbackup = i.infinity, i.maxVisiblebackup = i.maxVisibleItems, i.slide_offset = "none", i.slide_offset = 0, i.cached_slide_offset = 0, i.wrap = jQuery(t[e].canvas[0].parentNode), 0 !== i.maxRotation && ("3D" !== t[e].parallax.type && "3d" !== t[e].parallax.type || tpGS.gsap.set(i.wrap, {
                perspective: "1600px",
                transformStyle: "preserve-3d"
            }))
        },
        setCarouselDefaults: function(e, i, a) {
            var r = t[e].carousel;
            if (r.stretchCache = void 0 === r.stretchCache ? r.stretch : r.stretchCache, r.stretch = !!t[e].infullscreenmode || r.stretchCache, r.slide_width = Math.round(!0 !== r.stretch && "v" !== r.orientation ? t[e].gridwidth[t[e].level] * (0 === t[e].CM.w ? 1 : t[e].CM.w) : t[e].canv.width), r.slide_height = Math.round(!0 !== r.stretch ? "fullscreen" === t[e].sliderLayout || t[e].infullscreenmode ? t.getWinH(e) - t.getFullscreenOffsets(e) : t[e].gridheight[t[e].level] * (0 === t[e].CM.w ? 1 : t[e].CM.w) : t[e].canv.height), r.ratio = r.slide_width / r.slide_height, r.len = t[e].slides.length, r.maxwidth = t[e].slideamount * r.slide_width, r.maxheight = t[e].slideamount * r.slide_height, 1 != r.justify && r.maxVisiblebackup > r.len && (r.maxVisibleItems = r.len % 2 ? r.len : r.len + 1), r.spaceCache = void 0 === r.gapCache ? r.space : r.spaceCache, r.space = r.spaceCache < -1 * r[r.slide_length] ? -.8 * r[r.slide_length] : r.spaceCache, r.wrapwidth = r.maxVisibleItems * r.slide_width + (r.maxVisibleItems - 1) * r.space, r.wrapheight = r.maxVisibleItems * r.slide_height + (r.maxVisibleItems - 1) * r.space, r.wrapwidth = "auto" != t[e].sliderLayout ? r.wrapwidth > t[e].canv.width ? t[e].canv.width : r.wrapwidth : r.wrapwidth > t[e].module.width ? 0 !== t[e].module.width ? t[e].module.width : t[e].canv.width : r.wrapwidth, r.wrapheight = "auto" != t[e].sliderLayout ? r.wrapheight > t[e].canv.height ? t[e].canv.height : r.wrapheight : r.wrapheight > t[e].module.height ? 0 !== t[e].module.height ? t[e].module.height : t[e].canv.height : r.wrapheight, !0 === r.justify) {
                r.slide_height = Math.round("fullscreen" === t[e].sliderLayout ? t[e].module.height : t[e].gridheight[t[e].level]), r.slide_widths = [], r.slide_heights = [], r.slide_widthsCache = void 0 === r.slide_widthsCache ? [] : r.slide_widthsCache, r.slide_heightsCache = void 0 === r.slide_heightsCache ? [] : r.slide_heightsCache, r.maxwidth = 0;
                for (var o = 0; o < r.len; o++)
                    if (t[e].slides.hasOwnProperty(o)) {
                        var s = t.gA(t[e].slides[o], "iratio");
                        s = void 0 === s || 0 === s || null === s ? r.ratio : s, s = parseFloat(s), r.slide_widths[o] = Math.round(r.slide_height * s), r.slide_heights[o] = Math.round(r.slide_height), !1 !== r.justifyMaxWidth && (r.slide_widths[o] = Math.min(r.wrapwidth, r.slide_widths[o])), !1 !== r.justifyMaxWidth && (r.slide_heights[o] = Math.min(r.wrapheight, r.slide_heights[o])), r.slide_widths[o] !== r.slide_widthsCache[o] && (r.slide_widthsCache[o] = r.slide_widths[o], !0 !== i && tpGS.gsap.set(t[e].slides[o], {
                            width: r.slide_widths[o]
                        })), r.slide_heights[o] !== r.slide_heightsCache[o] && (r.slide_heightsCache[o] = r.slide_heights[o], !0 !== i && tpGS.gsap.set(t[e].slides[o], {
                            height: r.slide_heights[o]
                        })), r.maxwidth += r.slide_widths[o] + r.space, r.maxheight += r.slide_heights[o] + r.space
                    }
            }
            if (r.infinity = !(r.wrapwidth >= r.maxwidth) && r.infbackup, r.forceBAlign && r.slide_height < .6 * r.wrapheight && r.wrapwidth < r.maxwidth ? r.infinity = !0 : r.forceBAlign && (r.infinity = !1), !0 !== r.quickmode) {
                r.wrapoffset = "center" === r.horizontal_align ? (t[e].canv.width - t[e].outNavDims.right - t[e].outNavDims.left - r.wrapwidth) / 2 : 0, r.wrapoffset = "auto" != t[e].sliderLayout && t[e].outernav ? 0 : r.wrapoffset < t[e].outNavDims.left ? t[e].outNavDims.left : r.wrapoffset;
                var n = "3D" == t[e].parallax.type || "3d" == t[e].parallax.type ? "visible" : "hidden",
                    l = "right" === r.horizontal_align ? {
                        left: "auto",
                        right: r.wrapoffset + "px",
                        width: r.wrapwidth,
                        overflow: n
                    } : "left" === r.horizontal_align || r.wrapwidth < t.winW ? {
                        right: "auto",
                        left: r.wrapoffset + "px",
                        width: r.wrapwidth,
                        overflow: n
                    } : {
                        right: "auto",
                        left: "auto",
                        width: "100%",
                        overflow: n
                    };
                void 0 !== r.cacheWrapObj && l.left === r.cacheWrapObj.left && l.right === r.cacheWrapObj.right && l.width === r.cacheWrapObj.width || (window.requestAnimationFrame((function() {
                    tpGS.gsap.set(r.wrap, l), t[e].carousel.wrapoffset > 0 && tpGS.gsap.set(t[e].canvas, {
                        left: 0
                    })
                })), r.cacheWrapObj = jQuery.extend(!0, {}, l)), r.inneroffset = "right" === r.horizontal_align ? r.wrapwidth - r.slide_width : 0, r.windhalf = "auto" === t[e].sliderLayout ? t[e].module.width / 2 : t.winW / 2
            }
            r.lastWrapwidth === r.wrapwidth && r.lastWrapheight === r.wrapheight || window.requestAnimationFrame((function() {
                t.positionCarousel(e)
            }))
        }
    });
    var i = function(e, i) {
            var a = t[e].carousel,
                r = i && t[e].slides[t[e].pr_next_key] ? jQuery(t[e].slides[t[e].pr_next_key]) : t[e].pr_next_slide;
            t[e].c.trigger("revolution.slide.carouselchange", {
                slider: e,
                slideIndex: parseInt(t[e].pr_active_key, 0) + 1,
                slideLIIndex: t[e].pr_active_key,
                slide: r,
                currentslide: r,
                prevSlideIndex: void 0 !== t[e].pr_lastshown_key && parseInt(t[e].pr_lastshown_key, 0) + 1,
                prevSlideLIIndex: void 0 !== t[e].pr_lastshown_key && parseInt(t[e].pr_lastshown_key, 0),
                prevSlide: void 0 !== a.oldfocused && t[e].slides[a.oldfocused]
            })
        },
        a = function(e, i) {
            var a = t[e].carousel;
            void 0 !== e && void 0 !== a && (a.pDiv = "center" === i ? a.maxVisibleItems / 2 : a.maxVisibleItems, a.edgeRatio = Math.floor(a.pDiv - ("center" === i ? 0 : 1)) / Math.ceil(a.pDiv), 1 === a.maxVisibleItems && (a.edgeRatio = 1), a.oEdge = 1 === a.maxOpacity ? 1 : a.vary_fade ? 1 + (a.maxOpacity - 1) * a.edgeRatio : a.maxOpacity, a.oEdge = 1 === a.maxVisibleItems ? a.maxOpacity : a.oEdge, a.oRange = a.maxVisibleItems > 1 ? tpGS.gsap.utils.mapRange(a.edgeRatio, 1, a.oEdge, 0) : tpGS.gsap.utils.mapRange(1, 1.1, a.oEdge, 0), a.oRangeMin = tpGS.gsap.utils.mapRange(-1 / a.maxVisibleItems, -1.1 / a.maxVisibleItems, 1, 0))
        },
        r = function(e) {
            var i = t[e].carousel;
            if (void 0 !== e && void 0 !== i) {
                tpGS.gsap.set([i.proxy, i.follower], {
                    x: "+=0",
                    y: "+=0"
                }), i.arr = [], i.trackArr = [];
                for (var a = 0; a < t[e].slides.length; a++) i.arr.push({
                    elem: t[e].slides[a]
                }), i.trackArr.push({
                    elem: t[e].slides[a]
                })
            }
        },
        o = function(e, t) {
            return null === e || jQuery.isEmptyObject(e) ? t : void 0 === e ? "right" : e
        };
    window.RS_MODULES = window.RS_MODULES || {}, window.RS_MODULES.carousel = {
        loaded: !0,
        version: "6.6.17"
    }, window.RS_MODULES.checkMinimal && window.RS_MODULES.checkMinimal()
}(jQuery),
function(e) {
    "use strict";
    var t = ["chars", "words", "lines"],
        i = ["Top", "Right", "Bottom", "Left"],
        a = ["TopLeft", "TopRight", "BottomRight", "BottomLeft"],
        r = ["top", "right", "bottom", "left"];
    jQuery.fn.revolution = jQuery.fn.revolution || {};
    var o = jQuery.fn.revolution;
    jQuery.extend(!0, o, {
        checkLayerDimensions: function(e) {
            var t = !1;
            for (var i in o[e.id].layers[e.skey])
                if (o[e.id].layers[e.skey].hasOwnProperty(i)) {
                    var a = o[e.id].layers[e.skey][i],
                        r = o[e.id]._L[a.id];
                    r.eow !== a.offsetWidth && "true" !== o.gA(a, "vary-layer-dims") && (t = !0), r.lastknownwidth = r.eow, r.lastknownheight = r.eoh, r._slidelink || o[e.id].caches.calcResponsiveLayersList.push({
                        a: o[e.id]._L[a.id].c,
                        b: e.id,
                        c: 0,
                        d: r.rsp_bd,
                        e: e.slideIndex
                    })
                }
            return t
        },
        requestLayerUpdates: function(e, t, i, a) {
            var r, s, n;
            if (void 0 !== i) {
                let l = o[e]._L[i],
                    d = void 0 !== l._ligid ? o[e]._L[l._ligid] : void 0;
                l.pVisRequest !== l.pVisStatus && (null == d || !0 !== d.childrenAtStartNotVisible ? (l.pVisStatus = l.pVisRequest, n = ("row" === l.type || "column" === l.type || "group" === l.type) && void 0 !== l.frames && void 0 !== l.frames.frame_999 && void 0 !== l.frames.frame_999.transform && "" + l.frames.frame_999.transform.opacity != "0", s = 1 === l.pVisRequest ? "remove" : n ? s : "add", r = 1 === l.pVisRequest ? "remove" : n ? "add" : r) : (s = "add", r = "remove"), "group" === l.type && "add" == r && "hidden" == (1 === l.pVisStatus ? "visible" : 0 === l.pVisStatus ? "hidden" : l.pVisStatus) && (s = "add"), void 0 !== r && l.p[0].classList[r]("rs-forceuntouchable"), void 0 !== s && l.p[0].classList[s]("rs-forcehidden")), l.pPointerStatus !== l.pPeventsRequest && (l.pPointerStatus = l.pPeventsRequest, tpGS.gsap.set(l.p[0], {
                    pointerEvents: l.pPointerStatus,
                    visibility: 1 === l.pVisStatus ? "visible" : 0 === l.pVisStatus ? "hidden" : l.pVisStatus
                })), void 0 !== a && "ignore" !== a && 0 !== a && (a++, "enterstage" === t || "leavestage" === t || "framestarted" === t ? o.isFirefox(e) ? -1 === l.p[0].style.transform.indexOf("perspective") && (l.p[0].style.transform += (0 === l.p[0].style.transform.length ? " " : "") + "perspective(" + a + "px)") : (!window.isSafari11 && !0 !== l.maskHasPerspective && 0 === l.p[0].style.perspective.length || "none" == l.p[0].style.perspective) && (l.p[0].style.perspective = a + "px") : "frameended" === t && (o.isFirefox(e) ? l.p[0].style.transform = l.p[0].style.transform.replace("perspective(" + a + "px)", "") : window.isSafari11 || (l.p[0].style.perspective = l.p[0].style.perspective.replace(a - 1 + "px", ""))))
            } else
                for (let t in o[e]._L) o[e]._L.hasOwnProperty(t) && (o[e]._L[t].pVisRequest !== o[e]._L[t].pVisStatus && (o[e]._L[t].pVisStatus = o[e]._L[t].pVisRequest, 0 === o[e]._L[t].pVisStatus ? o[e]._L[t].p[0].classList.add("rs-forcehidden") : o[e]._L[t].p[0].classList.remove("rs-forcehidden")), o[e]._L[t].pPointerStatus !== o[e]._L[t].pPeventsRequest && (o[e]._L[t].pPointerStatus = o[e]._L[t].pPeventsRequest, tpGS.gsap.set(o[e]._L[t].p[0], {
                    pointerEvents: o[e]._L[t].pPointerStatus,
                    visibility: o[e]._L[t].pVisStatus
                })));
            "enterstage" === t && void 0 !== i && void 0 !== o[e]._L[i].esginside && o[e]._L[i].esginside.length > 0 && void 0 !== o[e]._L[i].esginside.esredraw && o[e]._L[i].esginside.esredraw()
        },
        updateMiddleZonesAndESG: function(e) {
            var t, i = o[e].pr_processing_key || o[e].pr_active_key || 0;
            if (o[e].middleZones && o[e].middleZones.length > 0 && void 0 !== o[e].middleZones[i])
                for (t = 0; t < o[e].middleZones[i].length; t++) tpGS.gsap.set(o[e].middleZones[i][t], {
                    y: Math.round(o[e].module.height / 2 - o[e].middleZones[i][t].offsetHeight / 2) + "px"
                });
            if (o[e].smiddleZones && o[e].smiddleZones.length > 0)
                for (t = 0; t < o[e].smiddleZones.length; t++) tpGS.gsap.set(o[e].smiddleZones[t], {
                    y: Math.round(o[e].module.height / 2 - o[e].smiddleZones[t].offsetHeight / 2) + "px"
                })
        },
        getRowHeights: function(e, t) {
            if (!o[e].firstLayerCalculated) return {
                cur: 0,
                last: 0,
                cache: [],
                tz: 0
            };
            var i = 0,
                a = 0,
                r = 0,
                s = void 0 !== t ? t : o[e].pr_processing_key || o[e].pr_active_key || 0,
                n = void 0 !== t ? t : o[e].pr_active_key || 0;
            if (o[e].rowMiddleHeights = null == o[e].rowMiddleHeights ? {} : o[e].rowMiddleHeights, o[e].rowMiddleHeights[s] = 0, o[e].rowzones && o[e].rowzones.length > 0) {
                if (void 0 !== o[e].rowzones[s])
                    for (var l = 0; l < o[e].rowzones[s].length; l++) o[e].rowzonesHeights[s][l] = o[e].rowzones[s][l][0].offsetHeight, i += o[e].rowzonesHeights[s][l], "true" == o[e].rowzones[s][l][0].dataset.middle && (o[e].rowMiddleHeights[s] += o[e].rowzonesHeights[s][l]);
                if (n !== s)
                    for (o[e].rowMiddleHeights[n] = 0, l = 0; l < o[e].rowzones[n].length; l++) o[e].rowzonesHeights[n][l] = o[e].rowzones[n][l][0].offsetHeight, a += o[e].rowzonesHeights[n][l], "true" == o[e].rowzones[n][l][0].dataset.middle && (o[e].rowMiddleHeights[n] += o[e].rowzonesHeights[n][l])
            }
            if (o[e].srowzones && o[e].srowzones.length > 0)
                for (o[e].rowMiddleHeights.static = 0, l = 0; l < o[e].srowzones.length; l++) r += o[e].srowzones[l][0].offsetHeight, "true" == o[e].srowzones[l][0].dataset.middle && (o[e].rowMiddleHeights.static += o[e].srowzones[l][0].offsetHeight);
            i = i < r ? r : i;
            var d = void 0 === o[e].rowHeights ? [] : o[e].rowHeights.cache,
                c = (new Date).getTime();
            return void 0 !== o[e].rowHeights && c - o[e].rowHeights.tz < 300 ? o[e].rowHeights.cache.length > 5 && (i = o[e].rowHeights.cache[o[e].rowHeights.cache.length - 1] === i ? o[e].rowHeights.cache[o[e].rowHeights.cache.length - 2] : o[e].rowHeights.cache[o[e].rowHeights.cache.length - 1], c = o[e].rowHeights.tz) : d = [], {
                cur: i,
                last: a,
                cache: d,
                tz: c
            }
        },
        getGridOffset: function(e, t, i, a) {
            var r = "grid" === i || "carousel" !== o[e].sliderType || a ? o[e].canv.width : o[e].carousel.slide_width,
                s = o[e].useFullScreenHeight ? o[e].module.height : "grid" === i ? o[e].content.height : "carousel" !== o[e].sliderType || a ? o[e].module.height : o[e].canv.height,
                n = "slide" === i || "carousel" == o[e].sliderType && "v" == o[e].carousel.orientation ? 0 : Math.max(0, "fullscreen" == o[e].sliderLayout ? o[e].module.height / 2 - o.iHE(e) * (o[e].keepBPHeight ? 1 : o[e].CM.h) / 2 : o[e].autoHeight || null != o[e].minHeight && o[e].minHeight > 0 || o[e].keepBPHeight ? o[e].canv.height / 2 - o.iHE(e) * o[e].CM.h / 2 : 0),
                l = "slide" === i ? 0 : Math.max(0, "carousel" === o[e].sliderType && "v" !== o[e].carousel.orientation ? 0 : o[e].canv.width / 2 - o.iWA(e, t) * o[e].CM.w / 2);
            return "slide" !== i && "carousel" === o[e].sliderType && a && void 0 !== o[e].carousel && void 0 !== o[e].carousel.horizontal_align && (l = Math.max(0, "center" === o[e].carousel.horizontal_align ? 0 + (o[e].module.width - o.iWA(e, "static") * o[e].CM.w) / 2 : "right" === o[e].carousel.horizontal_align ? o[e].module.width - o[e].gridwidth[o[e].level] * o[e].CM.w : l)), [r, s, l, n]
        },
        initLayer: function(e) {
            var t, i, a, r = e.id,
                s = e.skey;
            for (var n in o[r].layers[e.skey])
                if (o[r].layers[e.skey].hasOwnProperty(n)) {
                    var l = o[r].layers[e.skey][n],
                        d = jQuery(l),
                        c = o.gA(l, "initialised"),
                        p = c ? o[r]._L[l.id] : d.data();
                    if ("individual" === e.skey && (p.slideKey = void 0 === p.slideKey ? o.gA(d.closest("rs-slide")[0], "key") : p.slideKey, p.slideIndex = void 0 === p.slideIndex ? o.getSlideIndex(r, p.slideKey) : p.slideIndex, e.slideIndex = p.slideIndex, s = p.slideKey), void 0 === c) {
                        if (o.revCheckIDS(r, l), o[r]._L[l.id] = p, p.ford = void 0 === p.ford ? "frame_0;frame_1;frame_999" : p.ford, p.ford = ";" == p.ford[p.ford.length - 1] ? p.ford.substring(0, p.ford.length - 1) : p.ford, p.ford = p.ford.split(";"), void 0 !== p.clip)
                            for (t in p.clipPath = {
                                    use: !1,
                                    origin: "l",
                                    type: "rectangle"
                                }, p.clip = p.clip.split(";"), p.clip) p.clip.hasOwnProperty(t) && ("u" == (i = p.clip[t].split(":"))[0] && (p.clipPath.use = "true" == i[1]), "o" == i[0] && (p.clipPath.origin = i[1]), "t" == i[0] && (p.clipPath.type = i[1]));
                        let n;
                        if (p.frames = k(p, r), p.caches = {}, p.OBJUPD = {}, p.c = d, p.p = o[r]._Lshortcuts[l.id].p, p.lp = p.reqWrp.loop ? o[r]._Lshortcuts[l.id].lp : void 0, p.m = p.reqWrp.mask ? o[r]._Lshortcuts[l.id].m : void 0, p.triggercache = void 0 === p.triggercache ? "reset" : p.triggercache, p.rsp_bd = void 0 === p.rsp_bd ? "column" === p.type || "row" === p.type ? "off" : "on" : p.rsp_bd, p.rsp_o = void 0 === p.rsp_o ? "on" : p.rsp_o, p.basealign = void 0 === p.basealign ? "grid" : p.basealign, p.group = "group" !== p.type && null !== (n = o.closestNode(d[0], "RS-GROUP")) || "group" === p.type && null !== (n = o.closestNode(d[0].parentNode, "RS-GROUP")) ? "group" : "column" !== p.type && null !== (n = o.closestNode(d[0], "RS-COLUMN")) ? "column" : "row" !== p.type && null !== (n = o.closestNode(d[0], "RS-ROW")) ? "row" : void 0, p._lig = null != n ? jQuery(n) : void 0, p._ligid = void 0 !== p._lig ? p._lig[0].id : void 0, p._column = "RS-COLUMN" === d[0].tagName ? jQuery(o.closestNode(d[0], "RS-COLUMN-WRAP")) : "none", p._row = "RS-COLUMN" === d[0].tagName && jQuery(o.closestNode(d[0], "RS-ROW")), p._ingroup = "group" === p.group, p._incolumn = "column" === p.group, p._inrow = "row" === p.group, p.fsom = "true" == p.fsom || 1 == p.fsom, p.fullinset = "" + p.fullinset == "true", p.position = void 0 !== p.pos ? "r" == p.pos ? "relative" : "absolute" : p._incolumn ? "relative" : "absolute", (p._ingroup || p._incolumn) && p._lig[0].className.indexOf("rs-sba") >= 0 && (!1 !== p.animationonscroll || void 0 === p.frames.loop) && !0 !== p.animOnScrollForceDisable && (p.animationonscroll = !0, d[0].className += " rs-sba", o[r].sbas[s][l.id] = d[0]), p.animOnScrollRepeats = 0, p._isgroup = "RS-GROUP" === d[0].tagName, p.type = p.type || "none", "row" === p.type && (void 0 === p.cbreak && (p.cbreak = 2), void 0 === p.zone && (p.zone = o.closestNode(d[0], "RS-ZONE"), p.zone = null !== p.zone && void 0 !== p.zone ? p.zone.className : "")), p.esginside = jQuery(d[0].getElementsByClassName("esg-grid")[0]), p._isnotext = -1 !== jQuery.inArray(p.type, ["video", "image", "audio", "shape", "row", "group"]), p._mediatag = "html5" == p.audio ? "audio" : "video", p.img = d.find("img"), p.deepiframe = o.getByTag(d[0], "iframe"), p.deepmedia = o.getByTag(d[0], p._mediatag), p.layertype = "image" === p.type ? "image" : d[0].className.indexOf("rs-layer-video") >= 0 || d[0].className.indexOf("rs-layer-audio") >= 0 || p.deepiframe.length > 0 && (p.deepiframe[0].src.toLowerCase().indexOf("youtube") > 0 || p.deepiframe[0].src.toLowerCase().indexOf("vimeo") > 0) || p.deepmedia.length > 0 ? "video" : "html", p.deepiframe.length > 0 && o.sA(p.deepiframe[0], "layertype", p.layertype), "column" === p.type && p.cbgexists && (p.cbg = jQuery(o.getByTag(p.p[0], "RS-COLUMN-BG")[0]), p.cbgmask = jQuery(o.getByTag(p.p[0], "RS-CBG-MASK-WRAP")[0])), p._slidelink = d[0].className.indexOf("slidelink") >= 0, p._isstatic = d[0].className.indexOf("rs-layer-static") >= 0, p.slidekey = p._isstatic ? "staticlayers" : s, p._togglelisteners = d[0].getElementsByClassName("rs-toggled-content").length > 0, "text" === p.type && (-1 !== p.c[0].innerHTML.indexOf("{{total_slide_count}}") && (p.c[0].innerHTML = p.c[0].innerHTML.replace("{{total_slide_count}}", o[r].realslideamount)), p.c[0].innerHTML.indexOf("{{current_slide_index}}") >= 0))
                            if (p._isstatic) p.metas = p.metas || {}, p.metas.csi = {}, p.c[0].innerHTML = p.c[0].innerHTML.replace("{{current_slide_index}}", "<cusli>" + o[r].realslideamount + "</cusli>"), p.metas.csi.c = p.c[0].getElementsByTagName("CUSLI")[0];
                            else {
                                var g = parseInt(e.slideIndex) + 1;
                                p.c[0].innerHTML = p.c[0].innerHTML.replace("{{current_slide_index}}", (g < 10 && o[r].realslideamount > 9 ? "0" : "") + g)
                            }
                        if (p.bgcol = void 0 === p.bgcol ? d[0].style.background.indexOf("gradient") >= 0 ? d[0].style.background : d[0].style.backgroundColor : p.bgcol, p.bgcol = "" === p.bgcol ? "rgba(0, 0, 0, 0)" : p.bgcol, p.bgcol = 0 === p.bgcol.indexOf("rgba(0, 0, 0, 0)") && p.bgcol.length > 18 ? p.bgcol.replace("rgba(0, 0, 0, 0)", "") : p.bgcol, p.zindex = void 0 === p.zindex ? parseInt(d[0].style.zIndex) : parseInt(p.zindex), p._isgroup && (p.frames.frame_1.timeline.waitoncall && (p.childrenAtStartNotVisible = !0), p.pVisRequest = 0), p._togglelisteners && d.on("click", (function() {
                                o.swaptoggleState([this.id])
                            })), void 0 !== p.border)
                            for (t in p.border = p.border.split(";"), p.bordercolor = "transparent", p.border)
                                if (p.border.hasOwnProperty(t)) switch ((i = p.border[t].split(":"))[0]) {
                                    case "boc":
                                        p.bordercolor = i[1];
                                        break;
                                    case "bow":
                                        p.borderwidth = o.revToResp(i[1], 4, 0);
                                        break;
                                    case "bos":
                                        p.borderstyle = o.revToResp(i[1], 4, 0);
                                        break;
                                    case "bor":
                                        p.borderradius = o.revToResp(i[1], 4, 0)
                                }
                        if ("svg" === p.type && (p.svg = d.find("svg"), p.svgI = f(p.svgi, r), p.svgPath = p.svg.find(p.svgI.svgAll ? "path, circle, ellipse, line, polygon, polyline, rect" : "path"), p.svgH = void 0 !== p.svgi && -1 === p.svgi.indexOf("oc:t") ? f(p.svgh, r) : {}), void 0 !== p.btrans) {
                            var u = p.btrans;
                            for (t in p.btrans = {
                                    rX: 0,
                                    rY: 0,
                                    rZ: 0,
                                    o: 1
                                }, u = u.split(";"))
                                if (u.hasOwnProperty(t)) switch ((i = u[t].split(":"))[0]) {
                                    case "rX":
                                        p.btrans.rX = i[1];
                                        break;
                                    case "rY":
                                        p.btrans.rY = i[1];
                                        break;
                                    case "rZ":
                                        p.btrans.rZ = i[1];
                                        break;
                                    case "o":
                                        p.btrans.o = i[1];
                                        break;
                                    case "iosfx":
                                        p.iOSFix = "default" == i[1] ? "d" : "r" == i[1] ? "rotationX" : "p" == i[1] ? "d" : i[1]
                                }
                        }
                        if (void 0 !== p.tsh)
                            for (t in p.tshadow = {
                                    c: "rgba(0,0,0,0.25)",
                                    v: 0,
                                    h: 0,
                                    b: 0
                                }, p.tsh = p.tsh.split(";"), p.tsh)
                                if (p.tsh.hasOwnProperty(t)) switch ((i = p.tsh[t].split(":"))[0]) {
                                    case "c":
                                        p.tshadow.c = i[1];
                                        break;
                                    case "h":
                                        p.tshadow.h = i[1];
                                        break;
                                    case "v":
                                        p.tshadow.v = i[1];
                                        break;
                                    case "b":
                                        p.tshadow.b = i[1]
                                }
                        if (void 0 !== p.tst)
                            for (t in p.tstroke = {
                                    c: "rgba(0,0,0,0.25)",
                                    w: 1
                                }, p.tst = p.tst.split(";"), p.tst)
                                if (p.tst.hasOwnProperty(t)) switch ((i = p.tst[t].split(":"))[0]) {
                                    case "c":
                                        p.tstroke.c = i[1];
                                        break;
                                    case "w":
                                        p.tstroke.w = i[1]
                                }
                        if (void 0 !== p.bsh)
                            for (t in p.bshadow = {
                                    e: "c",
                                    c: "rgba(0,0,0,0.25)",
                                    v: 0,
                                    h: 0,
                                    b: 0,
                                    s: 0
                                }, p.bsh = p.bsh.split(";"), p.bsh)
                                if (p.bsh.hasOwnProperty(t)) switch ((i = p.bsh[t].split(":"))[0]) {
                                    case "c":
                                        p.bshadow.c = i[1];
                                        break;
                                    case "h":
                                        p.bshadow.h = i[1];
                                        break;
                                    case "v":
                                        p.bshadow.v = i[1];
                                        break;
                                    case "b":
                                        p.bshadow.b = i[1];
                                        break;
                                    case "s":
                                        p.bshadow.s = i[1];
                                        break;
                                    case "e":
                                        p.bshadow.e = i[1]
                                }
                        if (void 0 !== p.dim)
                            for (t in p.dim = p.dim.split(";"), p.dim)
                                if (p.dim.hasOwnProperty(t)) switch ((i = p.dim[t].split(":"))[0]) {
                                    case "w":
                                        p.width = i[1];
                                        break;
                                    case "h":
                                        p.height = i[1];
                                        break;
                                    case "maxw":
                                        p.maxwidth = i[1];
                                        break;
                                    case "maxh":
                                        p.maxheight = i[1];
                                        break;
                                    case "minw":
                                        p.minwidth = i[1];
                                        break;
                                    case "minh":
                                        p.minheight = i[1]
                                }
                        if (void 0 !== p.xy && "row" !== p.type && "column" !== p.type)
                            for (t in p.xy = p.xy.split(";"), p.xy)
                                if (p.xy.hasOwnProperty(t)) switch ((i = p.xy[t].split(":"))[0]) {
                                    case "x":
                                        p.x = i[1].replace("px", "");
                                        break;
                                    case "y":
                                        p.y = i[1].replace("px", "");
                                        break;
                                    case "xo":
                                        p.hoffset = i[1].replace("px", "");
                                        break;
                                    case "yo":
                                        p.voffset = i[1].replace("px", "")
                                }
                        if (p._isnotext || void 0 === p.text)
                            if (p._isgroup && void 0 !== p.text) {
                                for (t in p.text = p.text.split(";"), p.text)
                                    if (p.text.hasOwnProperty(t) && "a" === (i = p.text[t].split(":"))[0]) p.textalign = i[1]
                            } else "column" === p.type && void 0 !== p.textDecoration && delete p.textDecoration;
                        else
                            for (t in p.text = p.text.split(";"), p.text)
                                if (p.text.hasOwnProperty(t)) switch ((i = p.text[t].split(":"))[0]) {
                                    case "w":
                                        p.whitespace = i[1];
                                        break;
                                    case "td":
                                        p.textDecoration = i[1];
                                        break;
                                    case "c":
                                        p.clear = i[1];
                                        break;
                                    case "f":
                                        p.float = i[1];
                                        break;
                                    case "s":
                                        p.fontsize = i[1];
                                        break;
                                    case "l":
                                        p.lineheight = i[1];
                                        break;
                                    case "ls":
                                        p.letterspacing = i[1];
                                        break;
                                    case "fw":
                                        p.fontweight = i[1];
                                        break;
                                    case "a":
                                        p.textalign = i[1]
                                }
                        if (void 0 !== p.flcr)
                            for (t in p.flcr = p.flcr.split(";"), p.flcr)
                                if (p.flcr.hasOwnProperty(t)) switch ((i = p.flcr[t].split(":"))[0]) {
                                    case "c":
                                        p.clear = i[1];
                                        break;
                                    case "f":
                                        p.float = i[1]
                                }
                        if (void 0 !== p.padding)
                            for (t in p.padding = p.padding.split(";"), p.padding)
                                if (p.padding.hasOwnProperty(t)) switch ((i = p.padding[t].split(":"))[0]) {
                                    case "t":
                                        p.paddingtop = i[1];
                                        break;
                                    case "b":
                                        p.paddingbottom = i[1];
                                        break;
                                    case "l":
                                        p.paddingleft = i[1];
                                        break;
                                    case "r":
                                        p.paddingright = i[1]
                                }
                        if (void 0 !== p.margin)
                            for (t in p.margin = p.margin.split(";"), p.margin)
                                if (p.margin.hasOwnProperty(t)) switch ((i = p.margin[t].split(":"))[0]) {
                                    case "t":
                                        p.margintop = i[1];
                                        break;
                                    case "b":
                                        p.marginbottom = i[1];
                                        break;
                                    case "l":
                                        p.marginleft = i[1];
                                        break;
                                    case "r":
                                        p.marginright = i[1]
                                }
                        if (void 0 !== p.spike && (p.spike = B(p.spike)), void 0 !== p.corners)
                            for (t in a = p.corners.split(";"), p.corners = {}, a) a.hasOwnProperty(t) && a[t].length > 0 && (p.corners[a[t]] = jQuery("<" + a[t] + "></" + a[t] + ">"), p.c.append(p.corners[a[t]]));
                        p.textalign = y(p.textalign), p.vbility = o.revToResp(p.vbility, o[r].rle, !0), p.hoffset = o.revToResp(p.hoffset, o[r].rle, 0), p.voffset = o.revToResp(p.voffset, o[r].rle, 0), p.x = o.revToResp(p.x, o[r].rle, "l"), p.y = o.revToResp(p.y, o[r].rle, "t"), T(d, 0, r), o.sA(l, "initialised", !0), o[r].c.trigger("layerinitialised", {
                            layer: d[0].id,
                            slider: r
                        })
                    }
                    var h = p.x[o[r].level],
                        m = p.y[o[r].level],
                        v = o.getGridOffset(r, e.slideIndex, p.basealign, p._isstatic),
                        w = v[0],
                        b = v[1],
                        _ = v[2],
                        S = v[3];
                    if (p.slideIndex = e.slideIndex, "updateposition" !== e.mode) {
                        if (0 == p.vbility[o[r].levelForced] || "f" == p.vbility[o[r].levelForced] || w < o[r].hideLayerAtLimit && "on" == p.layeronlimit || w < o[r].hideAllLayerAtLimit ? (!0 !== p.layerIsHidden && p.p[0].classList.add("rs-layer-hidden"), p.layerIsHidden = !0) : (p.layerIsHidden && p.p[0].classList.remove("rs-layer-hidden"), p.layerIsHidden = !1), p.poster = null == p.poster && void 0 !== p.thumbimage ? p.thumbimage : p.poster, "image" === p.layertype)
                            if (p.imgOBJ = {}, "cover-proportional" === p.img.data("c")) {
                                o.sA(p.img[0], "owidth", o.gA(p.img[0], "owidth", p.img[0].width)), o.sA(p.img[0], "oheight", o.gA(p.img[0], "oheight", p.img[0].height));
                                var x = o.gA(p.img[0], "owidth") / o.gA(p.img[0], "oheight"),
                                    R = p.img[0].width <= p.img[0].height ? b / w : w / b;
                                p.imgOBJ = x > R && x <= 1 || x < R && x > 1 ? {
                                    width: "100%",
                                    height: "auto",
                                    left: "c" === h || "center" === h ? "50%" : "left" === h || "l" === h ? "0" : "auto",
                                    right: "r" === h || "right" === h ? "0" : "auto",
                                    top: "c" === m || "center" === m || "middle" === m || "m" === m ? "50%" : "top" === m || "t" === m ? "0" : "auto",
                                    bottom: "b" === m || "bottom" === m ? "0" : "auto",
                                    x: "c" === h || "center" === h || "middle" === h || "m" === h ? "-50%" : "0",
                                    y: "c" === m || "center" === m || "middle" === m || "m" === m ? "-50%" : "0"
                                } : {
                                    height: "100%",
                                    width: "auto",
                                    left: "c" === h || "center" === h ? "50%" : "left" === h || "l" === h ? "0" : "auto",
                                    right: "r" === h || "right" === h ? "0" : "auto",
                                    top: "c" === m || "center" === m || "middle" === m || "m" === m ? "50%" : "top" === m || "t" === m ? "0" : "auto",
                                    bottom: "b" === m || "bottom" === m ? "0" : "auto",
                                    x: "c" === h || "center" === h || "middle" === h || "m" === h ? "-50%" : "0",
                                    y: "c" === m || "center" === m || "middle" === m || "m" === m ? "-50%" : "0"
                                }
                            } else void 0 === p.group && "auto" === p.width[o[r].level] && "auto" === p.height[o[r].level] && (p.width[o[r].level] = o.gA(p.img[0], "owidth", p.img[0].width), p.height[o[r].level] = o.gA(p.img[0], "owidth", p.img[0].height)), p.imgOBJ = {
                                width: "auto" !== p.width[o[r].level] || isNaN(p.width[o[r].level]) && p.width[o[r].level].indexOf("%") >= 0 ? "100%" : "auto",
                                height: "auto" !== p.height[o[r].level] || isNaN(p.height[o[r].level]) && p.height[o[r].level].indexOf("%") >= 0 ? "100%" : "auto"
                            };
                        else if ("video" === p.layertype) {
                            o.manageVideoLayer(d, r, s), "rebuild" !== e.mode && o.resetVideo(d, r, e.mode), null != p.aspectratio && p.aspectratio.split(":").length > 1 && 1 == p.bgvideo && o.prepareCoveredVideo(r, d), p.media = void 0 === p.media ? p.deepiframe.length > 0 ? jQuery(p.deepiframe[0]) : jQuery(p.deepmedia[0]) : p.media, p.html5vid = void 0 === p.html5vid ? !(p.deepiframe.length > 0) : p.html5vid, p.mediaOBJ = {
                                display: "block"
                            };
                            var O = p.width[o[r].level],
                                L = p.height[o[r].level];
                            if (O = "auto" === O ? O : !o.isNumeric(O) && O.indexOf("%") > 0 ? p._incolumn || p._ingroup ? "100%" : "grid" === p.basealign ? o.iWA(r, e.slideIndex) * o[r].CM.w * parseFloat(O) / 100 : w * parseFloat(O) / 100 : "off" !== p.rsp_bd ? parseFloat(O) * o[r].CM.w + "px" : parseFloat(O) + "px", L = "auto" === L ? L : !o.isNumeric(L) && L.indexOf("%") > 0 ? "grid" === p.basealign ? o.iHE(r) * o[r].CM.w : b : "off" !== p.rsp_bd ? parseFloat(L) * o[r].CM.h + "px" : parseFloat(L) + "px", p.vd = void 0 === p.vd ? o[r].videos[d[0].id].ratio.split(":").length > 1 ? o[r].videos[d[0].id].ratio.split(":")[0] / o[r].videos[d[0].id].ratio.split(":")[1] : 1 : p.vd, !p._incolumn || "100%" !== O && "auto" !== L || void 0 === p.ytid) - 1 == d[0].className.indexOf("rs-fsv") ? (L = "auto" === L && void 0 !== p.vd && "auto" !== O ? "100%" === O ? d.width() / p.vd : O / p.vd : L, p.vidOBJ = {
                                width: O,
                                height: L
                            }) : ("grid" !== p.basealign && (_ = 0, S = 0), p.x = o.revToResp(0, o[r].rle, 0), p.y = o.revToResp(0, o[r].rle, 0), p.vidOBJ = {
                                width: O,
                                height: o[r].autoHeight ? o[r].canv.height : L
                            }), 0 != p.html5vid && d.hasClass("rs-fsv") || (p.mediaOBJ = {
                                width: O,
                                height: L,
                                display: "block"
                            }), p._ingroup && null !== p.vidOBJ.width && void 0 !== p.vidOBJ.width && !o.isNumeric(p.vidOBJ.width) && p.vidOBJ.width.indexOf("%") > 0 && (p.OBJUPD.lppmOBJ = {
                                minWidth: O
                            });
                            else {
                                var I = d.width(),
                                    M = "auto" === L ? I / p.vd : L;
                                p.vidOBJ = {
                                    width: "auto",
                                    height: M
                                }, p.heightSetByVideo = !0
                            }
                        }
                        p._slidelink || o[r].caches.calcResponsiveLayersList.push({
                            a: d,
                            b: r,
                            c: 0,
                            d: p.rsp_bd,
                            e: e.slideIndex
                        }), "on" === p.rsp_ch && "row" !== p.type && "column" !== p.type && "group" !== p.type && "image" !== p.type && "video" !== p.type && "shape" !== p.type && d.find("*").each((function() {
                            var t = jQuery(this);
                            "true" !== o.gA(this, "stylerecorder") && !0 !== o.gA(this, "stylerecorder") && T(t, "rekursive", r), o[r].caches.calcResponsiveLayersList.push({
                                a: t,
                                b: r,
                                c: "rekursive",
                                d: p.rsp_bd,
                                e: e.slideIndex,
                                RSL: d
                            })
                        }))
                    }
                    if ("preset" !== e.mode) {
                        if (p.oldeow = p.eow, p.oldeoh = p.eoh, p.eow = d.outerWidth(!0), p.eoh = d.outerHeight(!0), 0 == p.eoh && "group" == p.type && "auto" == p.height[o[r].level] && (p.eoh = p.p[0].offsetHeight), void 0 !== p.metas && void 0 !== p.metas.csi && p.metas.csi.change !== o[r].focusedSlideIndex) {
                            p.metas.csi.change = o[r].focusedSlideIndex;
                            g = parseInt(p.metas.csi.change) + 1;
                            p.metas.csi.c.innerHTML = (o[r].realslideamount > 9 && g < 10 ? "0" : "") + g
                        }
                        if (p.imgInFirefox = "image" == p.type && "auto" == p.width[o[r].level] && "100%" == p.height[o[r].level] && o.isFirefox(r), p.imgInFirefox) {
                            var C = p.img.width();
                            p.eow = 0 !== C ? C : p.eow
                        }
                        if (p.eow <= 0 && void 0 !== p.lastknownwidth && (p.eow = p.lastknownwidth), p.eoh <= 0 && void 0 !== p.lastknownheight && (p.eoh = p.lastknownheight), void 0 !== p.corners && ("text" === p.type || "button" === p.type || "shape" === p.type)) {
                            for (a in p.corners)
                                if (p.corners.hasOwnProperty(a)) {
                                    p.corners[a].css("borderWidth", p.eoh + "px");
                                    var A = "rs-fcrt" === a || "rs-fcr" === a;
                                    p.corners[a].css("border" + (A ? "Right" : "Left"), "0px solid transparent"), p.corners[a].css("border" + ("rs-fcrt" == a || "rs-bcr" == a ? "Bottom" : "Top") + "Color", p.bgcol)
                                }
                            p.eow = d.outerWidth(!0)
                        }
                        0 == p.eow && 0 == p.eoh && (p.eow = "grid" === p.basealign ? o[r].content.width : o[r].module.width, p.eoh = "grid" === p.basealign ? o[r].content.height : o[r].module.height), p.basealign = o[r].justifyCarousel ? "grid" : p.basealign;
                        var D = "on" === p.rsp_o ? parseInt(p.voffset[o[r].level], 0) * o[r].CM.w : parseInt(p.voffset[o[r].level], 0),
                            P = "on" === p.rsp_o ? parseInt(p.hoffset[o[r].level], 0) * o[r].CM.h : parseInt(p.hoffset[o[r].level], 0),
                            G = "grid" === p.basealign ? o.iWA(r, e.slideIndex) * o[r].CM.w : w,
                            F = "grid" === p.basealign || "carousel" == o[r].sliderType && "v" === o[r].carousel.orientation ? o.iHE(r) * (o[r].keepBPHeight || o[r].currentRowsHeight > o[r].gridheight[o[r].level] ? 1 : o[r].CM.h) : b;
                        (1 == o[r].gridEQModule || void 0 !== p._lig && "row" !== p.type && "column" !== p.type && ("group" !== p.type || p._ingroup || p._incolumn)) && (G = void 0 !== p._lig ? p._lig.width() : o[r].module.width, F = void 0 !== p._lig ? p._lig.height() : o[r].module.height, _ = 0, S = 0), o[r].keepBPHeight && F == o[r].module.height && (S = 0), "video" === p.type && null != p.vidOBJ && (p.vidOBJ.height >= 0 && 0 === p.eoh && (p.eoh = p.vidOBJ.height), p.vidOBJ.width >= 0 && 0 === p.eow && (p.eow = p.vidOBJ.width)), h = "relative" == p.position ? 0 : "c" === h || "m" === h || "center" === h || "middle" === h ? G / 2 - p.eow / 2 + P : "l" === h || "left" === h ? P : "r" === h || "right" === h ? G - p.eow - P : "off" !== p.rsp_o ? h * o[r].CM.w : h, m = "relative" == p.position ? 0 : "m" === m || "c" === m || "center" === m || "middle" === m ? F / 2 - p.eoh / 2 + D : "t" === m || "top" == m ? D : "b" === m || "bottom" == m ? F - p.eoh - D : "off" !== p.rsp_o ? m * o[r].CM.w : m, h = p._slidelink ? 0 : o[r].rtl && -1 == ("" + p.width[o[r].level]).indexOf("%") ? parseInt(h) + p.eow : h, p.calcx = "relative" != p.position || "group" !== p.type && !p._incolumn ? parseInt(h, 0) + _ : 0, p.calcy = "relative" != p.position || "group" !== p.type && !p._incolumn ? parseInt(m, 0) + S : 0, "row" !== p.type && "column" !== p.type ? p.OBJUPD.POBJ = {
                            zIndex: p.zindex,
                            top: p.calcy,
                            left: p.calcx,
                            overwrite: "auto"
                        } : "row" !== p.type ? p.OBJUPD.POBJ = {
                            zIndex: p.zindex,
                            width: p.columnwidth,
                            top: 0,
                            left: 0,
                            overwrite: "auto"
                        } : "row" === p.type && (p.OBJUPD.POBJ = {
                            zIndex: p.zindex,
                            width: "grid" === p.basealign ? G + "px" : "100%",
                            top: 0,
                            left: o[r].rtl ? -1 * _ : _,
                            overwrite: "auto"
                        }, p.cbreak <= o[r].level ? -1 === d[0].className.indexOf("rev_break_columns") && d[0].classList.add("rev_break_columns") : d[0].className.indexOf("rev_break_columns") > 0 && d[0].classList.remove("rev_break_columns"), p.rowcalcx = p.OBJUPD.POBJ.left, p.pow = p.p.outerWidth(!0)), void 0 !== p.blendmode && (p.OBJUPD.POBJ.mixBlendMode = "color" === p.blendmode && window.isSafari11 ? "color-burn" : p.blendmode), (void 0 !== p.frames.loop || p.imgInFirefox) && (p.OBJUPD.LPOBJ = {
                            width: p.eow,
                            height: p.eoh
                        }), p._ingroup && (void 0 !== p._groupw && !o.isNumeric(p._groupw) && p._groupw.indexOf("%") > 0 && (p.OBJUPD.lppmOBJ.minWidth = p._groupw), void 0 !== p._grouph && !o.isNumeric(p._grouph) && p._grouph.indexOf("%") > 0 && (p.OBJUPD.lppmOBJ.minHeight = p._grouph)), "updateposition" === e.mode && (p.caches.POBJ_LEFT === p.OBJUPD.POBJ.left && p.caches.POBJ_TOP === p.OBJUPD.POBJ.top || (tpGS.gsap.set(p.p, p.OBJUPD.POBJ), p.caches.POBJ_LEFT = p.OBJUPD.POBJ.left, p.caches.POBJ_TOP = p.OBJUPD.POBJ.top)), e.animcompleted && o.animcompleted(d, r)
                    }
                }
        },
        hoverReverseDone: function(e) {
            o[e.id]._L[e.L[0].id].textDecoration && tpGS.gsap.set(o[e.id]._L[e.L[0].id].c, {
                textDecoration: o[e.id]._L[e.L[0].id].textDecoration
            })
        },
        animcompleted: function(e, t, i) {
            if (void 0 !== o[t].videos) {
                var a = o[t].videos[e[0].id];
                null != a && null != a.type && "none" != a.type && (1 == a.aplay || "true" == a.aplay || "on" == a.aplay || "1sttime" == a.aplay ? (("static" === a.slideid || "carousel" !== o[t].sliderType || e.closest("rs-slide").index() == o[t].carousel.focused || e.closest("rs-slide").index() == o[t].activeRSSlide && o[t].carousel.oldfocused == o[t].carousel.focused || i) && o.playVideo(e, t), o.toggleState(e.data("videotoggledby")), (a.aplay1 || "1sttime" == a.aplay) && (a.aplay1 = !1, a.aplay = !1)) : ("no1sttime" == a.aplay && (a.aplay = !0), o.unToggleState(e.data("videotoggledby"))))
            }
        },
        convertHoverTransform: function(e, t, i) {
            var a, r = o.clone(e.transform);
            if ((r.originX || r.originY || r.originZ) && (r.transformOrigin = (void 0 === r.originX ? "50%" : r.originX) + " " + (void 0 === r.originY ? "50%" : r.originY) + " " + (void 0 === r.originZ ? "50%" : r.originZ), delete r.originX, delete r.originY, delete r.originZ), void 0 !== e && void 0 !== e.filter && (r.filter = u(e.filter), r["-webkit-filter"] = r.filter), r.color = void 0 === r.color ? "rgba(255,255,255,1)" : r.color, r.force3D = "auto", void 0 !== r.borderRadius && ((a = r.borderRadius.split(" ")).length, r.borderTopLeftRadius = a[0], r.borderTopRightRadius = a[1], r.borderBottomRightRadius = a[2], r.borderBottomLeftRadius = a[3], delete r.borderRadius), void 0 !== r.borderWidth && ((a = r.borderWidth.split(" ")).length, r.borderTopWidth = a[0], r.borderRightWidth = a[1], r.borderBottomWidth = a[2], r.borderLeftWidth = a[3], delete r.borderWidth), void 0 === i.bg || -1 === i.bg.indexOf("url")) {
                var s = -1 !== i.bgCol.search("gradient"),
                    n = r.backgroundImage && "string" == typeof r.backgroundImage && -1 !== r.backgroundImage.search("gradient");
                n && s ? (180 !== v(i.bgCol) && 180 == v(r.backgroundImage) && (r.backgroundImage = m(r.backgroundImage, 180)), r.backgroundImage = tpGS.getSSGColors(i.bgCol, r.backgroundImage, void 0 === r.gs ? "fading" : r.gs).to) : n && !s ? r.backgroundImage = tpGS.getSSGColors(i.bgCol, r.backgroundImage, void 0 === r.gs ? "fading" : r.gs).to : !n && s && (r.backgroundImage = tpGS.getSSGColors(i.bgCol, r.backgroundColor, void 0 === r.gs ? "fading" : r.gs).to)
            }
            return delete r.gs, r
        },
        handleStaticLayers: function(e, t) {
            var i = 0,
                a = o[t].realslideamount + 1;
            if (void 0 !== o.gA(e[0], "onslides")) {
                var r = o.gA(e[0], "onslides").split(";");
                for (var s in r)
                    if (r.hasOwnProperty(s)) {
                        var n = r[s].split(":");
                        "s" === n[0] && (i = parseInt(n[1], 0)), "e" === n[0] && (a = parseInt(n[1], 0))
                    }
            }
            i = Math.max(0, i), a = Math.min(o[t].realslideamount, a < 0 ? o[t].realslideamount : a), a = 1 !== i && 0 !== i || a !== o[t].realslideamount ? a : o[t].realslideamount + 1, e.data("startslide", i), e.data("endslide", a), o.sA(e[0], "startslide", i), o.sA(e[0], "endslide", a)
        },
        updateLayersOnFullStage: function(e) {
            if (o[e].caches.calcResponsiveLayersList.length > 0) {
                !0 !== o[e].slideHasIframe && !0 !== o[e].fullScreenMode && !0 !== o[e].skipAttachDetach && ("carousel" === o[e].sliderType ? o[e].carousel.wrap.detach() : o[e].canvas.detach());
                for (var t = 0; t < o[e].caches.calcResponsiveLayersList.length; t++) void 0 !== o[e].caches.calcResponsiveLayersList[t] && P(o[e].caches.calcResponsiveLayersList[t]);
                !0 !== o[e].slideHasIframe && !0 !== o[e].fullScreenMode && !0 !== o[e].skipAttachDetach && ("carousel" === o[e].sliderType ? o[e].c[0].appendChild(o[e].carousel.wrap[0]) : o[e].c[0].appendChild(o[e].canvas[0]))
            }
        },
        animateTheLayers: function(e) {
            if (void 0 === e.slide) return !1;
            var t = e.id;
            if (void 0 === o[t].slides[e.slide] && "individual" !== e.slide) return !1;
            if ("carousel" === o[t].sliderType) {
                if ("start" === e.mode && "start" === o[t].lastATLmode) {
                    if (e.slide === o[t].lastATLslide && (new Date).getTime() - o[t].lastATLtime < 1500) return;
                    o[t].lastATLtime = (new Date).getTime()
                }
                o[t].lastATLmode = e.mode, o[t].lastATLslide = e.slide
            }
            var i = "individual" !== e.slide ? o.gA(o[t].slides[e.slide], "key") : "individual",
                a = void 0 !== o[t].pr_processing_key ? o[t].pr_processing_key : void 0 !== o[t].pr_active_key ? o[t].pr_active_key : 0;
            o[t].focusedSlideIndex = a, o[t].caches.calcResponsiveLayersList = [], o[t].layers = o[t].layers || {}, "individual" === i ? o[t].layers.individual = void 0 === o[t].layers.individual ? "all" === o[t].carousel.showLayersAllTime ? o.getLayersInSlide(jQuery(o[t].c), "rs-layer", "rs-layer-static") : o.getLayersInSlide(jQuery(o[t].c), "rs-on-car") : o[t].layers.individual : (o[t].layers[i] = void 0 === o[t].layers[i] ? "all" === o[t].carousel.showLayersAllTime ? [] : o.getLayersInSlide(jQuery(o[t].slides[e.slide]), "rs-layer", "carousel" === o[t].sliderType ? "rs-on-car" : void 0) : o[t].layers[i], o[t].layers.static = void 0 === o[t].layers.static ? o.getLayersInSlide(jQuery(o[t].c.find("rs-static-layers")), "rs-layer", "rs-on-car") : o[t].layers.static, o[t].sbas[i] = void 0 === o[t].sbas[i] ? o.getLayersInSlide(jQuery(o[t].slides[e.slide]), "rs-sba") : o[t].sbas[i]);
            var r = "rebuild" === e.mode && "carousel" === o[t].sliderType && "individual" === i;
            void 0 !== i && o[t].layers[i] && o.initLayer({
                id: t,
                slideIndex: e.slide,
                skey: i,
                mode: e.mode,
                animcompleted: r
            }), o[t].layers.static && o.initLayer({
                id: t,
                skey: "static",
                slideIndex: "static",
                mode: e.mode,
                animcompleted: r
            }), o.updateLayersOnFullStage(t), "preset" !== e.mode || void 0 !== o[t].slidePresets && void 0 !== o[t].slidePresets[e.slide] || (o[t].slidePresets = void 0 === o[t].slidePresets ? {} : o[t].slidePresets, o[t].slidePresets[e.slide] = !0, o[t].c.trigger("revolution.slideprepared", {
                slide: e.slide,
                key: i
            })), o[t].heightInLayers = o[t].module.height, o[t].widthInLayers = o[t].module.width, o[t].levelInLayers = o[t].level;
            var s = {
                id: t,
                skey: i,
                slide: e.slide,
                key: i,
                mode: e.mode,
                index: a
            };
            window.requestAnimationFrame((function() {
                if (void 0 === o[t].dimensionReCheck[i] ? (o.updateLayerDimensions(s), !0 !== o[t].doubleDimensionCheck ? setTimeout((function() {
                        o.updateLayerDimensions(s), o.updateRowZones(s)
                    }), 150) : o.updateRowZones(s), o[t].doubleDimensionCheck = !0, o[t].dimensionReCheck[i] = !0) : o.updateRowZones(s), void 0 !== i && o[t].layers[i])
                    for (var a in o[t].layers[i]) o[t].layers[i].hasOwnProperty(a) && o.renderLayerAnimation({
                        layer: jQuery(o[t].layers[i][a]),
                        id: t,
                        mode: e.mode,
                        caller: e.caller
                    });
                if (o[t].layers.static)
                    for (var a in o[t].layers.static) o[t].layers.static.hasOwnProperty(a) && o.renderLayerAnimation({
                        layer: jQuery(o[t].layers.static[a]),
                        id: t,
                        mode: e.mode,
                        caller: e.caller
                    });
                null != o[t].mtl && o[t].mtl.resume()
            }))
        },
        updateRowZones: function(e) {
            (void 0 !== o[e.id].rowzones && o[e.id].rowzones.length > 0 && e.index >= 0 && o[e.id].rowzones[Math.min(e.index, o[e.id].rowzones.length)] && o[e.id].rowzones[Math.min(e.index, o[e.id].rowzones.length)].length > 0 || void 0 !== o[e.id].srowzones && o[e.id].srowzones.length > 0 || void 0 !== o[e.id].smiddleZones && o[e.id].smiddleZones.length > 0) && (o.updateDims(e.id), o.initLayer({
                id: e.id,
                skey: e.key,
                slideIndex: e.slide,
                mode: "updateposition"
            }), o.initLayer({
                id: e.id,
                skey: "static",
                slideIndex: "static",
                mode: "updateposition"
            }), "start" !== e.mode && "preset" !== e.mode || o.manageNavigation(e.id), window.requestAnimationFrame((function() {
                o.putRowsInPosition(e.id)
            })))
        },
        updateLayerDimensions: function(e) {
            var t = !1;
            o[e.id].caches.calcResponsiveLayersList = [], void 0 === e.key || "individual" != e.key && void 0 === o[e.id].layers[e.key] || !o.checkLayerDimensions({
                id: e.id,
                skey: e.key,
                slideIndex: e.slide
            }) || (t = !0), o.initLayer({
                id: e.id,
                skey: e.key,
                slideIndex: e.slide,
                mode: "updateAndResize"
            }), o[e.id].layers.static && o.checkLayerDimensions({
                id: e.id,
                skey: "static",
                slideIndex: "static"
            }) && (t = !0, o.initLayer({
                id: e.id,
                skey: "static",
                slideIndex: "static",
                mode: "updateAndResize"
            })), t && o.updateLayersOnFullStage(e.id)
        },
        updateAnimatingLayerPositions: function(e) {
            o.initLayer({
                id: e.id,
                skey: e.key,
                slideIndex: e.slide,
                mode: "updateposition"
            })
        },
        removeTheLayers: function(e, t, i) {
            var a = o.gA(e[0], "key");
            for (var r in o[t].sloops && o[t].sloops[a] && o[t].sloops[a].tl && o[t].sloops[a].tl.pause(), o[t].layers[a]) o[t].layers[a].hasOwnProperty(r) && o.renderLayerAnimation({
                layer: jQuery(o[t].layers[a][r]),
                frame: "frame_999",
                mode: "continue",
                remove: !0,
                id: t,
                allforce: i
            });
            for (var r in o[t].layers.static) o[t].layers.static.hasOwnProperty(r) && o.renderLayerAnimation({
                layer: jQuery(o[t].layers.static[r]),
                frame: "frame_999",
                mode: "continue",
                remove: !0,
                id: t,
                allforce: i
            })
        },
        renderLayerAnimation: function(e) {
            var i, a = e.layer,
                r = e.id,
                u = o[r].level,
                h = o[r]._L[a[0].id],
                m = void 0 !== h.timeline ? h.timeline.time() : void 0,
                v = !1,
                f = !1,
                y = "none",
                _ = !1;
            if (("containerResized_2" === e.caller || "swapSlideProgress_2" === e.caller) && !0 !== h.animationRendered) return;
            if (h.animationRendered = !0, "preset" === e.mode && !0 !== h.frames.frame_1.timeline.waitoncall && void 0 === h.scrollBasedOffset) return;
            if ("trigger" == e.mode && (h.triggeredFrame = e.frame), h._isstatic) {
                var x = "carousel" === o[r].sliderType && void 0 !== o[r].carousel.oldfocused ? parseInt(o[r].carousel.oldfocused) + 1 : void 0 === o[r].focusedSlideIndex ? 0 : parseInt(o[r].focusedSlideIndex, 0) + 1,
                    k = "carousel" === o[r].sliderType ? void 0 === o[r].pr_next_key ? 0 == x ? 1 : x : parseInt(o[r].pr_next_key, 0) + 1 : void 0 === o[r].pr_processing_key ? 0 == x ? 1 : x : parseInt(o[r].pr_processing_key, 0) + 1,
                    R = x >= h.startslide && x <= h.endslide,
                    O = k >= h.startslide && k <= h.endslide,
                    L = void 0 !== h.frames.frame_999 && void 0 !== h.frames.frame_999.timeline && !0 !== h.frames.frame_999.timeline.waitoncall && x === h.endslide;
                if (void 0 === o[r].modal || "start" != e.mode && "continue" != e.mode || ("continue" === e.mode && "close" == o[r].modal.lastModalCall && (O = !1), "start" !== e.mode || "show" !== o[r].modal.lastModalCall && "init" !== o[r].modal.lastModalCall || o[r].modal.lastModalCall === h.lastModalCall || (h.triggeredFrame = void 0, h.triggercache = "reset", void 0 !== h.timeline && void 0 !== h.timeline.currentLabel() && -1 == h.timeline.currentLabel().indexOf("frame_999") && h.timeline.pause(0)), h.lastModalCall = o[r].modal.lastModalCall), y = !("start" !== e.mode || !L) || (x === h.endslide && "continue" === e.mode || ("continue" === e.mode || x === h.endslide) && "none"), "frame_999" === h.animatedFrame && "done" === h.animatingFrame | null == h.animatingFrame && (h.lastRequestedMainFrame = "frame_999"), void 0 !== h.timeline && void 0 !== h.timeline.currentLabel() && -1 == h.timeline.currentLabel().indexOf("frame_999") && (_ = !0), !0 === e.allforce || !0 === y) {
                    if ("continue" === e.mode && O && L && void 0 !== h.timeline) return void(h.timeline.currentLabel().indexOf("frame_999") >= 0 ? h.timeline.pause(h.timeline.previousLabel()) : h.timeline.pause(h.timeline.currentLabel()));
                    if ("continue" === e.mode && "frame_999" === e.frame && (O || void 0 === h.lastRequestedMainFrame)) return
                } else {
                    if ("preset" === e.mode && (h.elementHovered || !O)) return;
                    if ("rebuild" === e.mode && !R && !O) return;
                    if ("start" === e.mode && O && "frame_1" === h.lastRequestedMainFrame) return;
                    if (("start" === e.mode || "preset" === e.mode) && "frame_999" === h.lastRequestedMainFrame && !0 !== h.leftstage) return;
                    if ("continue" === e.mode && "frame_999" === e.frame && (O || void 0 === h.lastRequestedMainFrame)) return;
                    if ("start" === e.mode && !O) return;
                    if ("rebuild" === e.mode && h.elementHovered && h._isstatic && h.hovertimeline) return
                }
            } else "start" === e.mode && "keep" !== h.triggercache && (h.triggeredFrame = void 0);
            "start" === e.mode && (void 0 !== h.layerLoop && (h.layerLoop.count = 0), e.frame = void 0 === h.triggeredFrame ? _ ? void 0 : 0 : h.triggeredFrame), "continue" === e.mode || "trigger" === e.mode || void 0 === h.timeline || h._isstatic && !0 === h.leftstage || h.timeline.pause(0), "continue" !== e.mode && "trigger" !== e.mode || void 0 === h.timeline || h.timeline.pause(), h.timeline = tpGS.gsap.timeline({
                paused: !0
            }), "text" !== h.type && "button" !== h.type || void 0 !== h.splitText && (void 0 !== h.splitTextFix || "start" !== e.mode && "preset" !== e.mode) || (w({
                layer: a,
                id: r
            }), "start" === e.mode && (h.splitTextFix = !0));
            let I = o[r].duration;
            if ("carousel" === o[r].sliderType)
                for (let e of o[r].slides) h.slidekey == e.dataset.key && null != o.gA(e, "duration") && "" != o.gA(e, "duration") && (I = parseInt(o.gA(e, "duration"), 0));
            for (var M in h.ford)
                if (h.ford.hasOwnProperty(M)) {
                    var T = h.ford[M],
                        C = !1;
                    if ("frame_0" !== T && "frame_hover" !== T && "loop" !== T) {
                        if ("frame_999" === T && !h.frames[T].timeline.waitoncall && h.frames[T].timeline.start >= I && !0 !== e.remove && (h.frames[T].timeline.waitoncall = !0), "start" === e.mode && "keep" !== h.triggercache && (h.frames[T].timeline.callstate = h.frames[T].timeline.waitoncall ? "waiting" : ""), "trigger" === e.mode && h.frames[T].timeline.waitoncall && (T === e.frame ? (h.frames[T].timeline.triggered = !0, h.frames[T].timeline.callstate = "called") : h.frames[T].timeline.triggered = !1), "rebuild" === e.mode || h.frames[T].timeline.triggered || (h.frames[T].timeline.callstate = h.frames[T].timeline.waitoncall ? "waiting" : ""), !1 !== e.fastforward) {
                            if (("continue" === e.mode || "trigger" === e.mode) && !1 === f && T !== e.frame) continue;
                            if (("rebuild" === e.mode || "preset" === e.mode) && !1 === f && void 0 !== h.triggeredFrame && T !== h.triggeredFrame) continue;
                            (T === e.frame || "rebuild" === e.mode && T === h.triggeredFrame) && (f = !0)
                        } else T === e.frame && (f = !0);
                        if (T !== e.frame && h.frames[T].timeline.waitoncall && "called" !== h.frames[T].timeline.callstate && (v = !0), T !== e.frame && f && (v = !0 === v && h.frames[T].timeline.waitoncall ? "skiprest" : !0 !== v && v), void 0 === h.hideonfirststart && "frame_1" === T && h.frames[T].timeline.waitoncall && (h.hideonfirststart = !0), v && "waiting" === h.frames[T].timeline.callstate && "preset" === e.mode && 1 != h.firstTimeRendered) {
                            if (h._isstatic && void 0 === h.currentframe) continue;
                            C = !0, h.firstTimeRendered = !0
                        } else if ("skiprest" === v || "called" !== h.frames[T].timeline.callstate && v && e.toframe !== T) continue;
                        if ("frame_999" !== T || !1 !== y || "continue" !== e.mode && "start" !== e.mode && "rebuild" !== e.mode) {
                            h.fff = "frame_1" === T && ("trigger" !== e.mode || "frame_999" === h.currentframe || "frame_0" === h.currentframe || void 0 === h.currentframe), "trigger" === e.mode && "frame_1" === e.frame && !1 === h.leftstage && (h.fff = !1), C || (h.frames[T].timeline.callstate = "called", h.currentframe = T);
                            var A = h.frames[T],
                                D = h.fff ? h.frames.frame_0 : void 0,
                                P = tpGS.gsap.timeline(),
                                B = tpGS.gsap.timeline(),
                                G = h.c,
                                F = void 0 !== A.sfx && b(A.sfx.effect, h.m, A.timeline.ease),
                                H = A.timeline.speed / 1e3,
                                z = 0,
                                W = S({
                                    id: r,
                                    frame: A,
                                    layer: a,
                                    ease: A.timeline.ease,
                                    splitAmount: G.length,
                                    target: T,
                                    forcefilter: void 0 !== h.frames.frame_hover && void 0 !== h.frames.frame_hover.filter
                                }),
                                E = h.fff ? S({
                                    id: r,
                                    frame: D,
                                    layer: a,
                                    ease: A.timeline.ease,
                                    splitAmount: G.length,
                                    target: "frame_0"
                                }) : void 0,
                                N = void 0 !== A.mask ? S({
                                    id: r,
                                    frame: {
                                        transform: {
                                            x: A.mask.x,
                                            y: A.mask.y
                                        }
                                    },
                                    layer: a,
                                    ease: W.ease,
                                    target: "mask"
                                }) : void 0,
                                j = void 0 !== N && h.fff ? S({
                                    id: r,
                                    frame: {
                                        transform: {
                                            x: D.mask.x,
                                            y: D.mask.y
                                        }
                                    },
                                    layer: a,
                                    ease: W.ease,
                                    target: "frommask"
                                }) : void 0,
                                V = W.ease;
                            if (W.force3D = !0, "block" === F.type) {
                                if (F.ft[0].background = A.sfx.fxc, F.ft[0].visibility = "visible", F.ft[1].visibility = "visible", window.isSafari11) {
                                    let e = Math.max(E && E.z ? E.z : 0, W && W.z ? W.z : 0);
                                    F.ft[0].z = Math.max(0, e + 1), F.ft[1].z = Math.max(0, e + 1), F.t.z = Math.max(0, e + 1), F.ft[1].transformPerspective = F.ft[0].transformPerspective = F.t.transformPerspective = W.transformPerspective
                                }
                                P.add(tpGS.gsap.fromTo(F.bmask_in, H / 2, F.ft[0], F.ft[1], 0)), P.add(tpGS.gsap.fromTo(F.bmask_in, H / 2, F.ft[1], F.t, H / 2)), "frame_0" !== T && "frame_1" !== T || (E.opacity = 0)
                            }
                            if (void 0 !== A.color ? W.color = A.color : void 0 !== h.color && "npc" !== h.color[u] && (W.color = h.color[u]), void 0 !== D && void 0 !== D.color ? E.color = D.color : void 0 !== D && void 0 !== h.color && "npc" !== h.color[u] && (E.color = h.color[u]), void 0 !== A.bgcolor ? A.bgcolor.indexOf("gradient") >= 0 ? W.background = A.bgcolor : W.backgroundColor = A.bgcolor : !0 === h.bgcolinuse && (h.bgcol.indexOf("gradient") >= 0 ? W.background = h.bgcol : W.backgroundColor = h.bgcol), void 0 !== D && (void 0 !== D.bgcolor ? D.bgcolor.indexOf("gradient") >= 0 ? E.background = D.bgcolor : E.backgroundColor = D.bgcolor : !0 === h.bgcolinuse && (h.bgcol.indexOf("gradient") >= 0 ? E.background = h.bgcol : E.backgroundColor = h.bgcol)), void 0 !== h.splitText && !1 !== h.splitText)
                                for (var X in t)
                                    if (void 0 !== A[t[X]] && !h.quickRendering) {
                                        var U = h.splitText[t[X]],
                                            Y = S({
                                                id: r,
                                                frame: A,
                                                source: t[X],
                                                ease: V,
                                                layer: a,
                                                splitAmount: U.length,
                                                target: T + "_" + t[X]
                                            }),
                                            q = h.fff ? S({
                                                id: r,
                                                frame: D,
                                                ease: Y.ease,
                                                source: t[X],
                                                layer: a,
                                                splitAmount: U.length,
                                                target: "frame_0_" + t[X]
                                            }) : void 0,
                                            Q = h.frames[T].dosplit ? void 0 === A[t[X]].delay ? .05 : A[t[X]].delay / 100 : 0;
                                        h.color[u] === W.color && "frame_1" === T || (Y.color = W.color), void 0 !== E && h.color[u] !== E.color && (q.color = E.color), void 0 !== q && q.color !== W.color && (Y.color = W.color);
                                        var J = o.clone(Y),
                                            Z = h.fff ? o.clone(q) : void 0,
                                            K = A[t[X]].dir;
                                        delete J.dir, J.data = {
                                            splitted: !0
                                        }, J.stagger = "center" === K || "edge" === K ? d({
                                            each: Q,
                                            offset: Q / 2,
                                            from: K
                                        }) : {
                                            each: Q,
                                            from: K
                                        }, J.duration = H, void 0 !== Z && (void 0 !== Z.opacity && (o.ISM || window.isSafari11) && (Z.opacity = Math.max(.001, parseFloat(Z.opacity))), delete Z.dir), h.fff ? P.add(B.fromTo(U, Z, J), 0) : P.add(B.to(U, J), 0), z = Math.max(z, U.length * Q)
                                    }
                            if (H += z, void 0 === i && (i = "isometric" === o[r].perspectiveType ? 0 : "local" === o[r].perspectiveType ? void 0 !== W.transformPerspective ? W.transformPerspective : h.fff && void 0 !== E.transfromPerspective ? E.transfromPerspective : o[r].perspective : o[r].perspective), h.knowTransformPerspective = i, h.fsom && (void 0 !== W.filter || h.fff && void 0 !== E.filter) ? (N.filter = W.filter, N["-webkit-filter"] = W.filter, delete W.filter, delete W["-webkit-filter"], h.fff && void 0 !== E.filter && ((j = j || {}).filter = E.filter, j["-webkit-filter"] = E.filter, delete E.filter, delete E["-webkit-filter"]), h.forceFsom = !0) : h.forceFsom = !1, h.useMaskAnimation = h.pxundermask || void 0 !== N && (void 0 !== D && "hidden" === D.mask.overflow || "hidden" === A.mask.overflow), h.useMaskAnimation || h.forceFsom) h.useMaskAnimation ? P.add(tpGS.gsap.to(h.m, .001, {
                                overflow: "hidden"
                            }), 0) : P.add(tpGS.gsap.to(h.m, .001, {
                                overflow: "visible"
                            }), 0), "column" === h.type && h.cbgexists && h.useMaskAnimation && P.add(tpGS.gsap.to(h.cbgmask, .001, {
                                overflow: "hidden"
                            }), 0), h.btrans && (j && (j.rotationX = h.btrans.rX, j.rotationY = h.btrans.rY, j.rotationZ = h.btrans.rZ, j.opacity = h.btrans.o), N.rotationX = h.btrans.rX, N.rotationY = h.btrans.rY, N.rotationZ = h.btrans.rZ, N.opacity = h.btrans.o), h.fff ? P.add(tpGS.gsap.fromTo(void 0 !== h.m && void 0 !== h.cbgmask ? [h.m, h.cbgmask] : void 0 !== h.m ? h.m : h.cbgmask, H, o.clone(j), o.clone(N)), .001) : P.add(tpGS.gsap.to(void 0 !== h.m && void 0 !== h.cbgmask ? [h.m, h.cbgmask] : void 0 !== h.m ? h.m : h.cbgmask, H, o.clone(N)), .001);
                            else if (void 0 !== h.btrans) {
                                var $ = {
                                    x: 0,
                                    y: 0,
                                    filter: "none",
                                    opacity: h.btrans.o,
                                    rotationX: h.btrans.rX,
                                    rotationY: h.btrans.rY,
                                    rotationZ: h.btrans.rZ,
                                    overflow: "visible"
                                };
                                0 === h.btrans.rX && 0 == h.btrans.rY || (h.maskHasPerspective = !0, $.transformPerspective = i), P.add(tpGS.gsap.to(h.m, .001, $), 0)
                            } else P.add(tpGS.gsap.to(h.m, .001, {
                                clearProps: "transform",
                                overflow: "hidden" == h.ofHidOnHov ? "hidden" : "visible"
                            }), 0);
                            W.force3D = "auto", h.fff ? (W.visibility = "visible", void 0 !== h.cbg && P.fromTo(h.cbg, H, E, W, 0), o[r].BUG_safari_clipPath && (E.clipPath || W.clipPath || h.spike), H = H > 0 ? H - .001 : H, void 0 !== h.cbg && "column" === h.type ? P.fromTo(G, H, s(E), s(W), 0) : P.fromTo(G, H, E, W, 0), P.invalidate()) : ("frame_999" !== h.frame && (W.visibility = "visible"), void 0 !== h.cbg && P.to(h.cbg, H, W, 0), void 0 !== h.cbg && "column" === h.type ? P.to(G, H, s(W), 0) : P.to(G, H, W, 0)), void 0 !== V && "object" != typeof V && "function" != typeof V && V.indexOf("SFXBounce") >= 0 && P.to(G, H, {
                                scaleY: .5,
                                scaleX: 1.3,
                                ease: W.ease + "-squash",
                                transformOrigin: "bottom"
                            }, 1e-4);
                            var ee = "trigger" !== e.mode && (!0 !== v && "skiprest" !== v || "rebuild" !== e.mode) || e.frame === T || void 0 === A.timeline.start || !o.isNumeric(A.timeline.start) ? "+=0" === A.timeline.start || void 0 === A.timeline.start ? "+=0.001" : parseInt(A.timeline.start, 0) / 1e3 : "+=" + parseInt(void 0 === A.timeline.startRelative ? 0 : A.timeline.startRelative, 0) / 1e3;
                            h.timeline.addLabel(T, ee), h.timeline.add(P, ee), h.timeline.addLabel(T + "_end", "+=0.01"), P.eventCallback("onStart", c, [{
                                id: r,
                                frame: T,
                                L: a,
                                tPE: i
                            }]), "true" == h.animationonscroll || 1 == h.animationonscroll ? (P.eventCallback("onUpdate", p, [{
                                id: r,
                                frame: T,
                                L: a
                            }]), P.smoothChildTiming = !0) : P.eventCallback("onUpdate", p, [{
                                id: r,
                                frame: T,
                                L: a
                            }]), P.eventCallback("onComplete", g, [{
                                id: r,
                                frame: T,
                                L: a,
                                tPE: i
                            }])
                        }
                    }
                }
            if (void 0 !== h.frames.loop) {
                var te = parseInt(h.frames.loop.timeline.speed, 0) / 1e3,
                    ie = parseInt(h.frames.loop.timeline.start) / 1e3 || 0,
                    ae = "trigger" !== e.mode && "frame_999" !== e.frame || "frame_999" !== e.frame ? .2 : 0,
                    re = ie + ae;
                h.loop = {
                    root: tpGS.gsap.timeline({}),
                    preset: tpGS.gsap.timeline({}),
                    move: tpGS.gsap.timeline({
                        repeat: -1,
                        yoyo: h.frames.loop.timeline.yoyo_move
                    }),
                    rotate: tpGS.gsap.timeline({
                        repeat: -1,
                        yoyo: h.frames.loop.timeline.yoyo_rotate
                    }),
                    scale: tpGS.gsap.timeline({
                        repeat: -1,
                        yoyo: h.frames.loop.timeline.yoyo_scale
                    }),
                    filter: tpGS.gsap.timeline({
                        repeat: -1,
                        yoyo: h.frames.loop.timeline.yoyo_filter
                    })
                };
                var oe = h.frames.loop.frame_0,
                    se = h.frames.loop.frame_999,
                    ne = "blur(" + parseInt(oe.blur || 0, 0) + "px) grayscale(" + parseInt(oe.grayscale || 0, 0) + "%) brightness(" + parseInt(oe.brightness || 100, 0) + "%)",
                    le = "blur(" + (se.blur || 0) + "px) grayscale(" + (se.grayscale || 0) + "%) brightness(" + (se.brightness || 100) + "%)";
                if (h.loop.root.add(h.loop.preset, 0), h.loop.root.add(h.loop.move, ae), h.loop.root.add(h.loop.rotate, ae), h.loop.root.add(h.loop.scale, ae), h.loop.root.add(h.loop.filter, ae), "blur(0px) grayscale(0%) brightness(100%)" === ne && "blur(0px) grayscale(0%) brightness(100%)" === le && (ne = "none", le = "none"), se.originX = oe.originX, se.originY = oe.originY, se.originZ = oe.originZ, void 0 === i && (i = "isometric" === o[r].perspectiveType ? 0 : "local" === o[r].perspectiveType && void 0 !== W ? void 0 !== W.transformPerspective ? W.transformPerspective : h.fff && void 0 !== E.transfromPerspective ? E.transfromPerspective : o[r].perspective : o[r].perspective), h.frames.loop.timeline.curved) {
                    var de = parseInt(h.frames.loop.timeline.radiusAngle, 0) || 0,
                        ce = [{
                            x: (oe.x - oe.xr) * o[r].CM.w,
                            y: 0,
                            z: (oe.z - oe.zr) * o[r].CM.w
                        }, {
                            x: 0,
                            y: (oe.y + oe.yr) * o[r].CM.w,
                            z: 0
                        }, {
                            x: (se.x + se.xr) * o[r].CM.w,
                            y: 0,
                            z: (se.z + se.zr) * o[r].CM.w
                        }, {
                            x: 0,
                            y: (se.y - se.yr) * o[r].CM.w,
                            z: 0
                        }],
                        pe = {
                            type: "thru",
                            curviness: h.frames.loop.timeline.curviness,
                            path: [],
                            autoRotate: h.frames.loop.timeline.autoRotate
                        };
                    for (var ge in ce) ce.hasOwnProperty(ge) && (pe.path[ge] = ce[de], de = ++de == ce.length ? 0 : de);
                    ("trigger" !== e.mode && "frame_999" !== e.frame || "frame_999" !== e.frame) && h.loop.preset.fromTo(h.lp, ae, {
                        "-webkit-filter": ne,
                        filter: ne,
                        x: 0,
                        y: 0,
                        z: 0,
                        minWidth: h._incolumn || h._ingroup ? "100%" : void 0 === h.eow ? 0 : h.eow,
                        minHeight: h._incolumn || h._ingroup ? "100%" : void 0 === h.eoh ? 0 : h.eoh,
                        scaleX: 1,
                        scaleY: 1,
                        skewX: 0,
                        skewY: 0,
                        rotationX: 0,
                        rotationY: 0,
                        rotationZ: 0,
                        transformPerspective: i,
                        transformOrigin: se.originX + " " + se.originY + " " + se.originZ,
                        opacity: 1
                    }, l({
                        x: pe.path[3].x,
                        y: pe.path[3].y,
                        z: pe.path[3].z,
                        scaleX: oe.scaleX,
                        skewX: oe.skewX,
                        skewY: oe.skewY,
                        scaleY: oe.scaleY,
                        rotationX: oe.rotationX,
                        rotationY: oe.rotationY,
                        rotationZ: oe.rotationZ,
                        "-webkit-filter": ne,
                        filter: ne,
                        ease: "sine.inOut",
                        opacity: oe.opacity
                    }), 0), n(pe) && h.loop.move.to(h.lp, h.frames.loop.timeline.yoyo_move ? te / 2 : te, {
                        motionPath: pe,
                        ease: h.frames.loop.timeline.ease
                    })
                } else("trigger" !== e.mode && "frame_999" !== e.frame || "frame_999" !== e.frame) && h.loop.preset.fromTo(h.lp, ae, {
                    "-webkit-filter": ne,
                    filter: ne,
                    x: 0,
                    y: 0,
                    z: 0,
                    minWidth: h._incolumn || h._ingroup ? "100%" : void 0 === h.eow ? 0 : h.eow,
                    minHeight: h._incolumn || h._ingroup ? "100%" : void 0 === h.eoh ? 0 : h.eoh,
                    scaleX: 1,
                    scaleY: 1,
                    skewX: 0,
                    skewY: 0,
                    rotationX: 0,
                    rotationY: 0,
                    rotationZ: 0,
                    transformPerspective: i,
                    transformOrigin: se.originX + " " + se.originY + " " + se.originZ,
                    opacity: 1
                }, l({
                    x: oe.x * o[r].CM.w,
                    y: oe.y * o[r].CM.w,
                    z: oe.z * o[r].CM.w,
                    scaleX: oe.scaleX,
                    skewX: oe.skewX,
                    skewY: oe.skewY,
                    scaleY: oe.scaleY,
                    rotationX: oe.rotationX,
                    rotationY: oe.rotationY,
                    rotationZ: oe.rotationZ,
                    ease: "sine.out",
                    opacity: oe.opacity,
                    "-webkit-filter": ne,
                    filter: ne
                }), 0), h.loop.move.to(h.lp, h.frames.loop.timeline.yoyo_move ? te / 2 : te, {
                    x: se.x * o[r].CM.w,
                    y: se.y * o[r].CM.w,
                    z: se.z * o[r].CM.w,
                    ease: h.frames.loop.timeline.ease
                });
                h.loop.rotate.to(h.lp, h.frames.loop.timeline.yoyo_rotate ? te / 2 : te, {
                    rotationX: se.rotationX,
                    rotationY: se.rotationY,
                    rotationZ: se.rotationZ,
                    ease: h.frames.loop.timeline.ease
                }), h.loop.scale.to(h.lp, h.frames.loop.timeline.yoyo_scale ? te / 2 : te, l({
                    scaleX: se.scaleX,
                    scaleY: se.scaleY,
                    skewX: se.skewX,
                    skewY: se.skewY,
                    ease: h.frames.loop.timeline.ease
                }));
                var ue = {
                    opacity: se.opacity || 1,
                    ease: h.frames.loop.timeline.ease,
                    "-webkit-filter": le,
                    filter: le
                };
                h.loop.filter.to(h.lp, h.frames.loop.timeline.yoyo_filter ? te / 2 : te, ue), h.timeline.add(h.loop.root, re)
            }
            if (void 0 !== h.frames.frame_hover && ("start" === e.mode || void 0 === h.hoverframeadded)) {
                h.hoverframeadded = !0;
                var he = h.frames.frame_hover.timeline.speed / 1e3;
                he = 0 === he ? 1e-5 : he, h.cachedHoverSpeed = he, h.hoverlistener || (h.hoverlistener = !0, o.document.on("mouseenter mousemove", ("column" === h.type && void 0 !== h.cbg ? "#" + h.cbg[0].id + "," : "") + "#" + h.c[0].id, (function(e) {
                    if (h.mouseIsOver = !0, 1 != h.ignoreHoverFrames && ("mousemove" !== e.type || !0 !== h.ignoremousemove)) {
                        if (h.animationonscroll || h.readyForHover) {
                            if (h.elementHovered = !0, h.hovertimeline || (h.hovertimeline = tpGS.gsap.timeline({
                                    paused: !0
                                })), 0 == h.hovertimeline.progress() && (void 0 === h.lastHoveredTimeStamp || (new Date).getTime() - h.lastHoveredTimeStamp > 150)) {
                                if (h.ignoremousemove = !0, h.ofHidOnHov = h.frames.frame_hover.mask ? "hidden" : "visible", h.hovertimeline.to(void 0 !== h.m && void 0 !== h.cbgmask ? [h.m, h.cbgmask] : void 0 !== h.m ? h.m : h.cbgmask, he, {
                                        overflow: h.ofHidOnHov
                                    }, 0), "column" === h.type && null != h.cbg && h.hovertimeline.to(h.cbg, he, o.clone(o.convertHoverTransform(h.frames.frame_hover, h.cbg, {
                                        bgCol: h.bgcol,
                                        bg: h.styleProps.background
                                    })), 0), "text" !== h.type && "button" !== h.type || void 0 === h.splitText || !1 === h.splitText || h.hovertimeline.to([h.splitText.lines, h.splitText.words, h.splitText.chars], he, {
                                        color: h.frames.frame_hover.color,
                                        ease: h.frames.frame_hover.transform.ease
                                    }, 0), "column" === h.type) {
                                    let e = o.clone(o.convertHoverTransform(h.frames.frame_hover, h.c, {
                                        bgCol: h.bgcol,
                                        bg: h.styleProps.background
                                    }));
                                    delete e.borderTopWidth, delete e.borderRightWidth, delete e.borderBottomWidth, delete e.borderLeftWidth, h.hovertimeline.to(h.c, he, s(e), 0)
                                } else h.hovertimeline.to(h.c, he, o.clone(o.convertHoverTransform(h.frames.frame_hover, h.c, {
                                    bgCol: h.bgcol,
                                    bg: h.styleProps.background
                                })), 0);
                                if (h.pZindex = h.p[0].style.zIndex, h.p[0].style.zIndex = parseInt(h.frames && h.frames.frame_hover && void 0 !== h.frames.frame_hover.transform.zIndex ? h.frames.frame_hover.transform.zIndex : h.pZindex), "svg" === h.type) {
                                    h.svgHTemp = o.clone(h.svgH), delete h.svgHTemp.svgAll;
                                    var t = Array.isArray(h.svgHTemp.fill) ? h.svgHTemp.fill[o[r].level] : h.svgHTemp.fill;
                                    h.svgHTemp.fill = t, h.hovertimeline.to(h.svg, he, h.svgHTemp, 0), h.svg.length <= 0 && (h.svg = a.find("svg")), h.svgPath.length <= 0 && (h.svgPath = h.svg.find(h.svgI.svgAll ? "path, circle, ellipse, line, polygon, polyline, rect" : "path")), h.hovertimeline.to(h.svgPath, he, {
                                        fill: t
                                    }, 0)
                                }
                            }
                            h.hovertimeline.play()
                        }
                        h.lastHoveredTimeStamp = (new Date).getTime()
                    }
                })), o.document.on("mouseleave", ("column" === h.type && void 0 !== h.cbg ? "#" + h.cbg[0].id + "," : "") + "#" + h.c[0].id, (function() {
                    h.mouseIsOver = !1, 1 != h.ignoreHoverFrames && (h.elementHovered = !1, (h.animationonscroll || h.readyForHover) && void 0 !== h.hovertimeline && (h.hovertimeline.reverse(), h.p[0].style.zIndex = h.pZindex || h.zIndex, h.hovertimeline.eventCallback("onReverseComplete", o.hoverReverseDone, [{
                        id: r,
                        L: a
                    }])))
                })))
            }
            if (C || (h.lastRequestedMainFrame = "start" === e.mode ? "frame_1" : "continue" === e.mode ? void 0 === e.frame ? h.currentframe : e.frame : h.lastRequestedMainFrame), void 0 !== e.totime ? h.tSTART = e.totime : void 0 !== m && void 0 === e.frame ? h.tSTART = m : void 0 !== e.frame ? h.tSTART = e.frame : h.tSTART = 0, 0 === h.tSTART && void 0 === h.startedAnimOnce && void 0 === h.leftstage && void 0 === h.startedAnimOnce && !0 === h.hideonfirststart && "preset" === e.mode && (o[r]._L[a[0].id].pVisRequest = 0, h.hideonfirststart = !1), "frame_999" !== h.tSTART && "frame_999" !== h.triggeredFrame || !h.leftstage && void 0 !== h.startedAnimOnce) {
                if ("true" != h.animationonscroll && 1 != h.animationonscroll ? h.timeline.play(h.tSTART) : h.timeline.time(h.tSTART), jQuery.inArray(h.type, ["group", "row", "column"]) >= 0 && (void 0 !== e.frame || !0 === e.updateChildren)) {
                    if (void 0 === h.childrenJS)
                        for (var X in h.childrenJS = {}, o[r]._L) {
                            let e = void 0 !== o[r]._L[X]._lig ? o[r]._L[X]._lig[0] : void 0;
                            null != e && (e.id === a[0].id && e.id !== o[r]._L[X].c[0].id && (h.childrenJS[o[r]._L[X].c[0].id] = o[r]._L[X].c))
                        }
                    e.frame = "0" == e.frame ? "frame_0" : e.frame, e.frame = "1" == e.frame ? "frame_1" : e.frame, e.frame = "999" == e.frame ? "frame_999" : e.frame;
                    var me = void 0 === e.totime ? void 0 !== h.frames[e.frame].timeline.startAbsolute ? parseInt(h.frames[e.frame].timeline.startAbsolute, 0) / 1e3 : void 0 !== h.frames[e.frame].timeline.start ? o.isNumeric(h.frames[e.frame].timeline.start) ? parseInt(h.frames[e.frame].timeline.start, 0) / 1e3 : 0 : .001 : e.totime;
                    if (!0 === e.updateChildren)
                        for (var X in h.childrenJS) h.childrenJS.hasOwnProperty(X) && o.renderLayerAnimation({
                            layer: h.childrenJS[X],
                            fastforward: !1,
                            id: r,
                            mode: "continue",
                            updateChildren: !0,
                            totime: me
                        });
                    else
                        for (var X in h.childrenJS) h.childrenJS.hasOwnProperty(X) && o[r]._L[X].pausedTrueParrent && (o.renderLayerAnimation({
                            layer: h.childrenJS[X],
                            fastforward: !1,
                            id: r,
                            mode: "continue",
                            updateChildren: !0,
                            totime: me
                        }), o[r]._L[X].pausedTrueParrent = !1)
                }
            }
        }
    }), o.getLayersInSlide = function(e, t, i) {
        if (0 === e.length) return {};
        for (var a = e[0].getElementsByClassName(t), r = {}, o = 0; o < a.length; o++) void 0 !== i && -1 !== a[o].className.indexOf(i) || (r[a[o].id] = a[o]);
        if (void 0 !== e[1])
            for (a = e[1].getElementsByClassName(t), o = 0; o < a.length; o++) void 0 !== i && -1 !== a[o].className.indexOf(i) || (r[a[o].id] = a[o]);
        return r
    };
    var s = function(e) {
            var t = o.clone(e);
            return delete t.backgroundColor, delete t.background, delete t.backgroundImage, delete t.borderSize, delete t.borderStyle, delete t["backdrop-filter"], t
        },
        n = function(e) {
            if (void 0 !== e && void 0 !== e.path && Array.isArray(e.path)) {
                var t = 0,
                    i = 0;
                for (var a in e.path) !e.path.hasOwnProperty(a) || t > 0 || i > 0 || (t += e.path[a].x, i += e.path[a].y);
                return 0 != t || 0 != i
            }
        },
        l = function(e) {
            return void 0 === e.skewX && delete e.skewX, void 0 === e.skewY && delete e.skewY, e
        },
        d = function(e) {
            e.from = "edge" === e.from ? "edges" : e.from;
            var t = tpGS.gsap.utils.distribute(e);
            return function(i, a, r) {
                return t(i, a, r) + (i <= r.length / 2 ? 0 : e.offset || 0)
            }
        },
        c = function(e) {
            let t = o[e.id]._L[e.L[0].id],
                i = o[e.id]._L[t._ligid];
            o[e.id].BUG_safari_clipPath && e.L[0].classList.remove("rs-pelock"), (t._ingroup || t._incolumn || t._inrow) && void 0 !== i && void 0 !== i.timeline && (i.timeline.isActive() || void 0 === t || void 0 === t.frames[t.timeline.currentLabel()] || (null == i.timezone || i.timezone.to <= parseInt(t.frames[t.timeline.currentLabel()].timeline.start, 0)) && !0 !== t.animOnScrollForceDisable && (t.pausedTrueParrent = !0, t.timeline.pause()));
            let a = t.hovertimeline;
            a && a.time() > 0 && (a.pause(), a.time(0), a.kill(), delete t.hovertimeline), delete t.childrenAtStartNotVisible, t.pVisRequest = 1;
            var r = {
                layer: e.L
            };
            t.tweenOnStart = !0, t.animatingFrame = e.frame, t.ignoremousemove = !1, t.leftstage = !1, t.readyForHover = !1, t.tweenDirection = 1 == t.animationonscroll || "true" == t.animationonscroll ? t.animteToTimeCache > t.animteToTime ? -1 : 1 : void 0, void 0 !== t.layerLoop && t.layerLoop.from === e.frame && t.layerLoop.count++, "" + t.tweenDirection == "-1" && ("frame_0" === e.frame || "frame_1" == e.frame && t.animteToTime <= .01) && "column" !== t.type && "row" !== t.type && "group" !== t.type ? (t.leftstage = !0, t.pVisRequest = 0, t.pPeventsRequest = "none", window.requestAnimationFrame((function() {
                o.requestLayerUpdates(e.id, "leftstage", e.L[0].id)
            }))) : ("frame_1" === e.frame && "Safari" === window.RSBrowser && void 0 === t.safariRenderIssue && (tpGS.gsap.set([t.c], {
                opacity: 1
            }), t.safariRenderIssue = !0), "frame_999" !== e.frame && (t.startedAnimOnce = !0, t.pPeventsRequest = t.noPevents ? "none" : "auto"), r.eventtype = "frame_0" === e.frame || "frame_1" === e.frame ? "enterstage" : "frame_999" === e.frame ? "leavestage" : "framestarted", t._ingroup && void 0 !== i && !0 !== i.frames.frame_1.timeline.waitoncall && (i.pVisRequest = 1), o.requestLayerUpdates(e.id, r.eventtype, e.L[0].id, void 0 !== t.frames[e.frame] && void 0 !== t.frames[e.frame].timeline && 0 == t.frames[e.frame].timeline.usePerspective ? e.tPE : "ignore")), r.id = e.id, r.layerid = e.L[0].id, r.layertype = t.type, r.frame_index = e.frame, r.layersettings = t, o[e.id].c.trigger("revolution.layeraction", [r]), "enterstage" === r.eventtype && o.toggleState(t.layertoggledby), "frame_1" === e.frame && o.animcompleted(e.L, e.id)
        },
        p = function(e) {
            let t = o[e.id]._L[e.L[0].id];
            t.animatingFrame = e.frame, t.tweenOnStart = !1, t.tweenOnEnd = !1, "frame_999" === e.frame && (t.pVisRequest = 1, t.pPeventsRequest = t.noPevents ? "none" : "auto", t.leftstage = !1, window.requestAnimationFrame((function() {
                o.requestLayerUpdates(e.id, "update", e.L[0].id)
            })))
        },
        g = function(e) {
            let t = o[e.id]._L[e.L[0].id];
            var i = !0;
            if ("column" === t.type || "row" === t.type || "group" === t.type) {
                var a = t.timeline.currentLabel(),
                    r = jQuery.inArray(a, t.ford);
                r++, r = t.ford.length > r ? t.ford[r] : a, void 0 !== t.frames[r] && void 0 !== t.frames[a] && (t.timezone = {
                    from: parseInt(t.frames[a].timeline.startAbsolute, 0),
                    to: parseInt(t.frames[r].timeline.startAbsolute, 0)
                })
            }
            if ("frame_999" !== e.frame && o[e.id].isEdge && "shape" === t.type) {
                var s = t.c[0].style.opacity;
                t.c[0].style.opacity = s - 1e-4, tpGS.gsap.set(t.c[0], {
                    opacity: s - .001,
                    delay: .05
                }), tpGS.gsap.set(t.c[0], {
                    opacity: s,
                    delay: .1
                })
            }
            t.animatingFrame = "done", t.animatedFrame = e.frame, t.tweenOnStart = !1, t.tweenOnEnd = !0, t.tweenDirection = 1 == t.animationonscroll || "true" == t.animationonscroll ? t.animteToTimeCache > t.animteToTime ? -1 : 1 : void 0;
            var n = {};
            n.layer = e.L, n.eventtype = "frame_0" === e.frame || "frame_1" === e.frame ? "enteredstage" : "frame_999" === e.frame ? "leftstage" : "frameended", t.readyForHover = !0, n.layertype = t.type, n.frame_index = e.frame, n.layersettings = t, o[e.id].c.trigger("revolution.layeraction", [n]), "frame_999" === e.frame && "leftstage" === n.eventtype ? (t.leftstage = !0, t.pVisRequest = 0, t.pPeventsRequest = "none", i = !1, window.requestAnimationFrame((function() {
                o.requestLayerUpdates(e.id, "leftstage", e.L[0].id)
            }))) : (e.L[0].id, void 0 !== t.frames[e.frame] && void 0 !== t.frames[e.frame].timeline && 0 == t.frames[e.frame].timeline.usePerspective && window.requestAnimationFrame((function() {
                o.requestLayerUpdates(e.id, "frameended", e.L[0].id, e.tPE)
            }))), "leftstage" === n.eventtype && void 0 !== o[e.id].videos && void 0 !== o[e.id].videos[e.L[0].id] && o.stopVideo && o.stopVideo(e.L, e.id), "column" === t.type && void 0 !== t.cbg && tpGS.gsap.to(t.cbg, .01, {
                visibility: "visible"
            }), "leftstage" === n.eventtype && (o.unToggleState(e.layertoggledby), "video" === t.type && o.resetVideo && setTimeout((function() {
                o.resetVideo(e.L, e.id)
            }), 100)), o[e.id].BUG_safari_clipPath && !i && e.L[0].classList.add("rs-pelock"), void 0 !== t.layerLoop && t.layerLoop.to === e.frame && (-1 == t.layerLoop.repeat || t.layerLoop.repeat > t.layerLoop.count) && t.timeline.seek(t.layerLoop.from).play()
        },
        u = function(e) {
            if (void 0 === e) return "";
            var t = "";
            return o.isChrome8889 && 0 === e.blur && (e.blur = .05), t = void 0 !== e.blur ? "blur(" + (e.blur || 0) + "px)" : "", t += void 0 !== e.grayscale ? (t.length > 0 ? " " : "") + "grayscale(" + (e.grayscale || 0) + "%)" : "", "" === (t += void 0 !== e.brightness ? (t.length > 0 ? " " : "") + "brightness(" + (e.brightness || 100) + "%)" : "") ? "none" : t
        },
        h = function(e) {
            if (void 0 === e) return "";
            var t = "";
            return o.isChrome8889 && 0 === e.b_blur && (e.b_blur = .05), t = void 0 !== e.b_blur ? "blur(" + (e.b_blur || 0) + "px)" : "", t += void 0 !== e.b_grayscale ? (t.length > 0 ? " " : "") + "grayscale(" + (e.b_grayscale || 0) + "%)" : "", t += void 0 !== e.b_sepia ? (t.length > 0 ? " " : "") + "sepia(" + (e.b_sepia || 0) + "%)" : "", t += void 0 !== e.b_invert ? (t.length > 0 ? " " : "") + "invert(" + (e.b_invert || 0) + "%)" : "", "" === (t += void 0 !== e.b_brightness ? (t.length > 0 ? " " : "") + "brightness(" + (e.b_brightness || 100) + "%)" : "") ? "none" : t
        },
        m = function(e, t) {
            var i = (e = e.split("("))[0];
            return e.shift(), i + "(" + t + "deg, " + e.join("(")
        },
        v = function(e) {
            if (-1 !== e.search("deg,")) {
                var t = e.split("deg,")[0];
                if (-1 !== t.search(/\(/)) return parseInt(t.split("(")[1], 10)
            }
            return 180
        },
        f = function(e, t) {
            if (void 0 !== e && e.indexOf("oc:t") >= 0) return {};
            e = void 0 === e ? "" : e.split(";");
            var i = {
                fill: o.revToResp("#ffffff", o[t].rle),
                stroke: "transparent",
                "stroke-width": "0px",
                "stroke-dasharray": "0",
                "stroke-dashoffset": "0"
            };
            for (var a in e)
                if (e.hasOwnProperty(a)) {
                    var r = e[a].split(":");
                    switch (r[0]) {
                        case "c":
                            i.fill = o.revToResp(r[1], o[t].rle, void 0, "||");
                            break;
                        case "sw":
                            i["stroke-width"] = r[1];
                            break;
                        case "sc":
                            i.stroke = r[1];
                            break;
                        case "so":
                            i["stroke-dashoffset"] = r[1];
                            break;
                        case "sa":
                            i["stroke-dasharray"] = r[1];
                            break;
                        case "sall":
                            i.svgAll = r[1]
                    }
                }
            return i
        },
        y = function(e) {
            return "c" === e ? "center" : "l" === e ? "left" : "r" === e ? "right" : e
        },
        w = function(e) {
            var t = o[e.id]._L[e.layer[0].id],
                i = !1;
            if (t.splitText && !1 !== t.splitText && t.splitText.revert(), "text" === t.type || "button" === t.type) {
                for (var a in t.frames)
                    if (void 0 !== t.frames[a].chars || void 0 !== t.frames[a].words || void 0 !== t.frames[a].lines) {
                        i = !0;
                        break
                    }
                t.splitText = !!i && new tpGS.SplitText(t.c, {
                    type: "lines,words,chars",
                    wordsClass: "rs_splitted_words",
                    linesClass: "rs_splitted_lines",
                    charsClass: "rs_splitted_chars"
                })
            } else t.splitText = !1
        },
        b = function(e, t, i) {
            if (void 0 !== e && e.indexOf("block") >= 0) {
                var a = {};
                switch (0 === t[0].getElementsByClassName("tp-blockmask_in").length && (t.append('<div class="tp-blockmask_in"></div>'), t.append('<div class="tp-blockmask_out"></div>')), i = void 0 === i ? "power3.inOut" : i, a.ft = [{
                    scaleY: 1,
                    scaleX: 0,
                    transformOrigin: "0% 50%"
                }, {
                    scaleY: 1,
                    scaleX: 1,
                    ease: i,
                    immediateRender: !1
                }], a.t = {
                    scaleY: 1,
                    scaleX: 0,
                    transformOrigin: "100% 50%",
                    ease: i,
                    immediateRender: !1
                }, a.bmask_in = t.find(".tp-blockmask_in"), a.bmask_out = t.find(".tp-blockmask_out"), a.type = "block", e) {
                    case "blocktoleft":
                    case "blockfromright":
                        a.ft[0].transformOrigin = "100% 50%", a.t.transformOrigin = "0% 50%";
                        break;
                    case "blockfromtop":
                    case "blocktobottom":
                        a.ft = [{
                            scaleX: 1,
                            scaleY: 0,
                            transformOrigin: "50% 0%"
                        }, {
                            scaleX: 1,
                            scaleY: 1,
                            ease: i,
                            immediateRender: !1
                        }], a.t = {
                            scaleX: 1,
                            scaleY: 0,
                            transformOrigin: "50% 100%",
                            ease: i,
                            immediateRender: !1
                        };
                        break;
                    case "blocktotop":
                    case "blockfrombottom":
                        a.ft = [{
                            scaleX: 1,
                            scaleY: 0,
                            transformOrigin: "50% 100%"
                        }, {
                            scaleX: 1,
                            scaleY: 1,
                            ease: i,
                            immediateRender: !1
                        }], a.t = {
                            scaleX: 1,
                            scaleY: 0,
                            transformOrigin: "50% 0%",
                            ease: i,
                            immediateRender: !1
                        }
                }
                return a.ft[1].overwrite = "auto", a.t.overwrite = "auto", a
            }
            return !1
        },
        _ = function(e, t, i, a, r) {
            return t && (t[a] = "true" === t[a] || t[a]), 0 === o[r].sdir || void 0 === t ? e : ("mask" === i ? a = "x" === a ? "mX" : "y" === a ? "mY" : a : "chars" === i ? a = "x" === a ? "cX" : "y" === a ? "cY" : "dir" === a ? "cD" : a : "words" === i ? a = "x" === a ? "wX" : "y" === a ? "wY" : "dir" === a ? "wD" : a : "lines" === i && (a = "x" === a ? "lX" : "y" === a ? "lY" : "dir" === a ? "lD" : a), void 0 === t[a] || !1 === t[a] ? e : void 0 !== t && !0 === t[a] ? "t" === e || "top" === e ? "b" : "b" === e || "bottom" === e ? "t" : "l" === e || "left" === e ? "r" : "r" === e || "right" === e ? "l" : -1 * parseFloat(e) + (("" + e).indexOf("px") >= 0 ? "px" : ("" + e).indexOf("%") >= 0 ? "%" : "") : void 0)
        },
        S = function(e) {
            var t, i = o[e.id]._L[e.layer[0].id],
                a = void 0 === e.source ? o.clone(e.frame.transform) : o.clone(e.frame[e.source]),
                r = {
                    originX: "50%",
                    originY: "50%",
                    originZ: "0"
                },
                s = void 0 !== i._lig && void 0 !== o[e.id]._L[i._lig[0].id] ? o[e.id]._L[i._lig[0].id].eow : o[e.id].conw,
                n = void 0 !== i._lig && void 0 !== o[e.id]._L[i._lig[0].id] ? o[e.id]._L[i._lig[0].id].eoh : o[e.id].conh;
            for (var l in a)
                if (a.hasOwnProperty(l)) {
                    if (a[l] = "object" == typeof a[l] ? a[l][o[e.id].level] : a[l], "inherit" === a[l] || "delay" === l || "direction" === l || "use" === l) delete a[l];
                    else if ("originX" === l || "originY" === l || "originZ" === l) r[l] = a[l], delete a[l];
                    else if (o.isNumeric(a[l], 0)) a[l] = _(a[l], e.frame.reverse, e.target, l, e.id, e.id);
                    else if ("r" === a[l][0] && "a" === a[l][1] && "(" === a[l][3]) a[l] = a[l].replace("ran", "random");
                    else if (a[l].indexOf("cyc(") >= 0) {
                        var d = a[l].replace("cyc(", "").replace(")", "").replace("[", "").replace("]", "").split("|");
                        a[l] = new function(e) {
                            return tpGS.gsap.utils.wrap(d, void 0)
                        }
                    } else if (a[l].indexOf("%") >= 0 && o.isNumeric(t = parseInt(a[l], 0))) a[l] = "x" === l ? _((i.eow || 0) * t / 100, e.frame.reverse, e.target, l, e.id) : "y" === l ? _((i.eoh || 0) * t / 100, e.frame.reverse, e.target, l, e.id) : a[l];
                    else {
                        a[l] = a[l].replace("[", "").replace("]", ""), a[l] = _(a[l], e.frame.reverse, e.target, l, e.id, e.id);
                        var c = {
                            t: 0,
                            b: 0
                        };
                        switch ("row" === i.type && ("rev_row_zone_top" === i.zone && void 0 !== o[e.id].topZones[i.slideIndex] && void 0 !== o[e.id].topZones[i.slideIndex][0] ? c = {
                            t: 0,
                            b: 0
                        } : "rev_row_zone_middle" === i.zone && void 0 !== o[e.id].middleZones[i.slideIndex] && void 0 !== o[e.id].middleZones[i.slideIndex][0] ? c = {
                            t: Math.round(o[e.id].module.height / 2 - o[e.id].middleZones[i.slideIndex][0].offsetHeight / 2),
                            b: Math.round(o[e.id].module.height / 2 + o[e.id].middleZones[i.slideIndex][0].offsetHeight / 2)
                        } : "rev_row_zone_bottom" === i.zone && void 0 !== o[e.id].bottomZones[i.slideIndex] && void 0 !== o[e.id].bottomZones[i.slideIndex][0] && (c = {
                            t: Math.round(o[e.id].module.height - o[e.id].bottomZones[i.slideIndex][0].offsetHeight),
                            b: o[e.id].module.height + o[e.id].bottomZones[i.slideIndex][0].offsetHeight
                        })), a[l]) {
                            case "t":
                            case "top":
                                a[l] = 0 - (i.eoh || 0) - ("column" === i.type ? 0 : i.calcy || 0) - o.getLayerParallaxOffset(e.id, e.layer[0].id, "v") - ("row" === i.type && void 0 !== i.marginTop ? i.marginTop[o[e.id].level] : 0) - c.b;
                                break;
                            case "b":
                            case "bottom":
                                a[l] = n - ("column" === i.type || "row" === i.type ? 0 : i.calcy || 0) + o.getLayerParallaxOffset(e.id, e.layer[0].id, "v") - c.t;
                                break;
                            case "l":
                            case "left":
                                a[l] = 0 - ("row" === i.type ? i.pow : i.eow || 0) - ("column" === i.type ? 0 : "row" === i.type ? i.rowcalcx : i.calcx || 0) - o.getLayerParallaxOffset(e.id, e.layer[0].id, "h");
                                break;
                            case "r":
                            case "right":
                                a[l] = s - ("column" === i.type ? 0 : "row" === i.type ? i.rowcalcx : i.calcx || 0) + o.getLayerParallaxOffset(e.id, e.layer[0].id, "h");
                                break;
                            case "m":
                            case "c":
                            case "middle":
                            case "center":
                                a[l] = "x" === l ? _(s / 2 - ("column" === i.type ? 0 : i.calcx || 0) - (i.eow || 0) / 2, e.frame.reverse, e.target, l, e.id) : "y" === l ? _(n / 2 - ("column" === i.type ? 0 : i.calcy || 0) - (i.eoh || 0) / 2, e.frame.reverse, e.target, l, e.id) : a[l]
                        }
                    }
                    "skewX" === l && void 0 !== a[l] && (a.scaleY = void 0 === a.scaleY ? 1 : parseFloat(a.scaleY), a.scaleY *= Math.cos(parseFloat(a[l]) * tpGS.DEG2RAD)), "skewY" === l && void 0 !== a[l] && (a.scaleX = void 0 === a.scaleX ? 1 : parseFloat(a.scaleX), a.scaleX *= Math.cos(parseFloat(a[l]) * tpGS.DEG2RAD))
                }
            if (a.transformOrigin = r.originX + " " + r.originY + " " + r.originZ, !o[e.id].BUG_ie_clipPath && void 0 !== a.clip && void 0 !== i.clipPath && i.clipPath.use) {
                a.clipB = null == a.clipB ? 100 : a.clipB;
                var p = "rectangle" == i.clipPath.type,
                    g = parseInt(a.clip, 0),
                    m = 100 - parseInt(a.clipB, 0),
                    v = Math.round(g / 2);
                switch (i.clipPath.origin) {
                    case "invh":
                        a.clipPath = "polygon(0% 0%, 0% 100%, " + g + "% 100%, " + g + "% 0%, 100% 0%, 100% 100%, " + m + "% 100%, " + m + "% 0%, 0% 0%)";
                        break;
                    case "invv":
                        a.clipPath = "polygon(100% 0%, 0% 0%, 0% " + g + "%, 100% " + g + "%, 100% 100%, 0% 100%, 0% " + m + "%, 100% " + m + "%, 100% 0%)";
                        break;
                    case "cv":
                        a.clipPath = p ? "polygon(" + (50 - v) + "% 0%, " + (50 + v) + "% 0%, " + (50 + v) + "% 100%, " + (50 - v) + "% 100%)" : "circle(" + g + "% at 50% 50%)";
                        break;
                    case "ch":
                        a.clipPath = p ? "polygon(0% " + (50 - v) + "%, 0% " + (50 + v) + "%, 100% " + (50 + v) + "%, 100% " + (50 - v) + "%)" : "circle(" + g + "% at 50% 50%)";
                        break;
                    case "l":
                        a.clipPath = p ? "polygon(0% 0%, " + g + "% 0%, " + g + "% 100%, 0% 100%)" : "circle(" + g + "% at 0% 50%)";
                        break;
                    case "r":
                        a.clipPath = p ? "polygon(" + (100 - g) + "% 0%, 100% 0%, 100% 100%, " + (100 - g) + "% 100%)" : "circle(" + g + "% at 100% 50%)";
                        break;
                    case "t":
                        a.clipPath = p ? "polygon(0% 0%, 100% 0%, 100% " + g + "%, 0% " + g + "%)" : "circle(" + g + "% at 50% 0%)";
                        break;
                    case "b":
                        a.clipPath = p ? "polygon(0% 100%, 100% 100%, 100% " + (100 - g) + "%, 0% " + (100 - g) + "%)" : "circle(" + g + "% at 50% 100%)";
                        break;
                    case "lt":
                        a.clipPath = p ? "polygon(0% 0%," + 2 * g + "% 0%, 0% " + 2 * g + "%)" : "circle(" + g + "% at 0% 0%)";
                        break;
                    case "lb":
                        a.clipPath = p ? "polygon(0% " + (100 - 2 * g) + "%, 0% 100%," + 2 * g + "% 100%)" : "circle(" + g + "% at 0% 100%)";
                        break;
                    case "rt":
                        a.clipPath = p ? "polygon(" + (100 - 2 * g) + "% 0%, 100% 0%, 100% " + 2 * g + "%)" : "circle(" + g + "% at 100% 0%)";
                        break;
                    case "rb":
                        a.clipPath = p ? "polygon(" + (100 - 2 * g) + "% 100%, 100% 100%, 100% " + (100 - 2 * g) + "%)" : "circle(" + g + "% at 100% 100%)";
                        break;
                    case "clr":
                        a.clipPath = p ? "polygon(0% 0%, 0% " + g + "%, " + (100 - g) + "% 100%, 100% 100%, 100% " + (100 - g) + "%, " + g + "% 0%)" : "circle(" + g + "% at 50% 50%)";
                        break;
                    case "crl":
                        a.clipPath = p ? "polygon(0% " + (100 - g) + "%, 0% 100%, " + g + "% 100%, 100% " + g + "%, 100% 0%, " + (100 - g) + "% 0%)" : "circle(" + g + "% at 50% 50%)"
                }!0 !== o.isFirefox(e.id) && (a["-webkit-clip-path"] = a.clipPath), a["clip-path"] = a.clipPath, delete a.clip, delete a.clipB
            } else delete a.clip;
            return "mask" !== e.target && (void 0 === e.frame || void 0 === e.frame.filter && !e.forcefilter || (a.filter = u(e.frame.filter), a["-webkit-filter"] = a.filter, o.useBackdrop && (window.isSafari11 ? a["-webkit-backdrop-filter"] = h(e.frame.filter) : a["backdrop-filter"] = h(e.frame.filter)), window.isSafari11 && void 0 !== a.filter && void 0 === a[null == i.iOSFix || "d" == i.iOSFix ? "shape" == i.type ? "z" : "x" : i.iOSFix] && void 0 !== e.frame.filter && void 0 !== e.frame.filter.blur && (a[null == i.iOSFix || "d" == i.iOSFix ? "shape" == i.type ? "z" : "x" : i.iOSFix] = 1e-4)), jQuery.inArray(e.source, ["chars", "words", "lines"]) >= 0 && (void 0 !== e.frame[e.source].blur || e.forcefilter) && (a.filter = u(e.frame[e.source]), a["-webkit-filter"] = a.filter), delete a.grayscale, delete a.blur, delete a.brightness), a.ease = void 0 !== a.ease ? a.ease : void 0 === a.ease && void 0 !== e.ease || void 0 !== a.ease && void 0 !== e.ease && "inherit" === a.ease ? e.ease : e.frame.timeline.ease, a.ease = void 0 === a.ease || "default" === a.ease ? "power3.inOut" : a.ease, a
        },
        x = function(e, t, i, a, r) {
            var s, n, l = {},
                d = {},
                c = {};
            for (var p in a = void 0 === a ? "transform" : a, "loop" === r ? (c.autoRotate = !1, c.yoyo_filter = !1, c.yoyo_rotate = !1, c.yoyo_move = !1, c.yoyo_scale = !1, c.curved = !1, c.curviness = 2, c.ease = "none", c.speed = 1e3, c.st = 0, l.x = 0, l.y = 0, l.z = 0, l.xr = 0, l.yr = 0, l.zr = 0, l.scaleX = 1, l.scaleY = 1, l.originX = "50%", l.originY = "50%", l.originZ = "0", l.rotationX = "0deg", l.rotationY = "0deg", l.rotationZ = "0deg") : (c.speed = 300, i ? c.ease = "default" : l.ease = "default"), "sfx" === r && (l.fxc = "#ffffff"), e = e.split(";"))
                if (e.hasOwnProperty(p)) {
                    var g = e[p].split(":");
                    switch (g[0]) {
                        case "u":
                            l.use = "true" === g[1] || "t" === g[1] || fasle;
                            break;
                        case "c":
                            s = g[1];
                            break;
                        case "fxc":
                            l.fxc = g[1];
                            break;
                        case "bgc":
                            n = g[1];
                            break;
                        case "auto":
                            l.auto = "t" === g[1] || void 0 === g[1] || "true" === g[1];
                            break;
                        case "o":
                            l.opacity = g[1];
                            break;
                        case "oX":
                            l.originX = g[1];
                            break;
                        case "oY":
                            l.originY = g[1];
                            break;
                        case "oZ":
                            l.originZ = g[1];
                            break;
                        case "sX":
                            l.scaleX = g[1];
                            break;
                        case "sY":
                            l.scaleY = g[1];
                            break;
                        case "skX":
                            l.skewX = g[1];
                            break;
                        case "skY":
                            l.skewY = g[1];
                            break;
                        case "rX":
                            l.rotationX = g[1], 0 != g[1] && "0deg" !== g[1] && o.addSafariFix(t);
                            break;
                        case "rY":
                            l.rotationY = g[1], 0 != g[1] && "0deg" !== g[1] && o.addSafariFix(t);
                            break;
                        case "rZ":
                            l.rotationZ = g[1];
                            break;
                        case "sc":
                            l.color = g[1];
                            break;
                        case "se":
                            l.effect = g[1];
                            break;
                        case "bos":
                            l.borderStyle = g[1];
                            break;
                        case "boc":
                            l.borderColor = g[1];
                            break;
                        case "td":
                            l.textDecoration = g[1];
                            break;
                        case "zI":
                            l.zIndex = g[1];
                            break;
                        case "tp":
                            l.transformPerspective = "isometric" === o[t].perspectiveType ? 0 : "global" === o[t].perspectiveType ? o[t].perspective : g[1];
                            break;
                        case "cp":
                            l.clip = parseInt(g[1], 0);
                            break;
                        case "cpb":
                            l.clipB = parseInt(g[1], 0);
                            break;
                        case "aR":
                            c.autoRotate = "t" == g[1];
                            break;
                        case "rA":
                            c.radiusAngle = g[1];
                            break;
                        case "yyf":
                            c.yoyo_filter = "t" == g[1];
                            break;
                        case "yym":
                            c.yoyo_move = "t" == g[1];
                            break;
                        case "yyr":
                            c.yoyo_rotate = "t" == g[1];
                            break;
                        case "yys":
                            c.yoyo_scale = "t" == g[1];
                            break;
                        case "crd":
                            c.curved = "t" == g[1];
                            break;
                        case "x":
                            l.x = "reverse" === r ? "t" === g[1] || !0 === g[1] || "true" == g[1] : "loop" === r ? parseInt(g[1], 0) : o.revToResp(g[1], o[t].rle);
                            break;
                        case "y":
                            l.y = "reverse" === r ? "t" === g[1] || !0 === g[1] || "true" == g[1] : "loop" === r ? parseInt(g[1], 0) : o.revToResp(g[1], o[t].rle);
                            break;
                        case "z":
                            l.z = "loop" === r ? parseInt(g[1], 0) : o.revToResp(g[1], o[t].rle), 0 != g[1] && o.addSafariFix(t);
                            break;
                        case "bow":
                            l.borderWidth = o.revToResp(g[1], 4, 0).toString().replace(/,/g, " ");
                            break;
                        case "bor":
                            l.borderRadius = o.revToResp(g[1], 4, 0).toString().replace(/,/g, " ");
                            break;
                        case "m":
                            l.mask = "t" === g[1] || "f" !== g[1] && g[1];
                            break;
                        case "iC":
                            l.instantClick = "t" === g[1] || "f" !== g[1] && g[1];
                            break;
                        case "xR":
                            l.xr = parseInt(g[1], 0), o.addSafariFix(t);
                            break;
                        case "yR":
                            l.yr = parseInt(g[1], 0), o.addSafariFix(t);
                            break;
                        case "zR":
                            l.zr = parseInt(g[1], 0);
                            break;
                        case "iosfx":
                            "default" !== g[1] && "d" !== g[1] && "p" !== g[1] && (d.iosfx = g[1]);
                            break;
                        case "blu":
                            "loop" === r ? l.blur = parseInt(g[1], 0) : d.blur = parseInt(g[1], 0);
                            break;
                        case "gra":
                            "loop" === r ? l.grayscale = parseInt(g[1], 0) : d.grayscale = parseInt(g[1], 0);
                            break;
                        case "bri":
                            "loop" === r ? l.brightness = parseInt(g[1], 0) : d.brightness = parseInt(g[1], 0);
                            break;
                        case "bB":
                            d.b_blur = parseInt(g[1], 0);
                            break;
                        case "bG":
                            d.b_grayscale = parseInt(g[1], 0);
                            break;
                        case "bR":
                            d.b_brightness = parseInt(g[1], 0);
                            break;
                        case "bI":
                            d.b_invert = parseInt(g[1], 0);
                            break;
                        case "bS":
                            d.b_sepia = parseInt(g[1], 0);
                            break;
                        case "sp":
                            c.speed = parseInt(g[1], 0);
                            break;
                        case "d":
                            l.delay = parseInt(g[1], 0);
                            break;
                        case "crns":
                            c.curviness = parseInt(g[1], 0);
                            break;
                        case "st":
                            c.start = "w" === g[1] || "a" === g[1] ? "+=0" : g[1], c.waitoncall = "w" === g[1] || "a" === g[1];
                            break;
                        case "sA":
                            c.startAbsolute = g[1];
                            break;
                        case "sR":
                            c.startRelative = g[1];
                            break;
                        case "e":
                            i ? c.ease = g[1] : l.ease = g[1];
                            break;
                        default:
                            g[0].length > 0 && (l[g[0]] = "t" === g[1] || "f" !== g[1] && g[1])
                    }
                }
            var u = {
                timeline: c
            };
            return jQuery.isEmptyObject(d) || ("split" === r ? l = jQuery.extend(!0, l, d) : u.filter = d), "split" === r && (l.dir = void 0 === l.dir ? "start" : "backward" === l.dir ? "end" : "middletoedge" === l.dir ? "center" : "edgetomiddle" === l.dir ? "edge" : l.dir), jQuery.isEmptyObject(s) || (u.color = s), jQuery.isEmptyObject(n) || (u.bgcolor = n), u[a] = l, u
        },
        k = function(e, t) {
            var i = {},
                a = 0;
            if (void 0 === o[t]._rdF0) {
                var r = x("x:0;y:0;z:0;rX:0;rY:0;rZ:0;o:0;skX:0;skY:0;sX:0;sY:0;oX:50%;oY:50%;oZ:0;dir:forward;d:5", t).transform;
                o[t]._rdF0 = o[t]._rdF1 = {
                    transform: x("x:0;y:0;z:0;rX:0;rY:0;rZ:0;o:0;skX:0;skY:0;sX:0;sY:0;oX:50%;oY:50%;oZ:0;tp:600px", t, !0).transform,
                    mask: x("x:0;y:0", t, !0).transform,
                    chars: jQuery.extend(!0, {
                        blur: 0,
                        grayscale: 0,
                        brightness: 100
                    }, r),
                    words: jQuery.extend(!0, {
                        blur: 0,
                        grayscale: 0,
                        brightness: 100
                    }, r),
                    lines: jQuery.extend(!0, {
                        blur: 0,
                        grayscale: 0,
                        brightness: 100
                    }, r)
                }, o[t]._rdF1.transform.opacity = o[t]._rdF1.chars.opacity = o[t]._rdF1.words.opacity = o[t]._rdF1.lines.opacity = o[t]._rdF1.transform.scaleX = o[t]._rdF1.chars.scaleX = o[t]._rdF1.words.scaleX = o[t]._rdF1.lines.scaleX = o[t]._rdF1.transform.scaleY = o[t]._rdF1.chars.scaleY = o[t]._rdF1.words.scaleY = o[t]._rdF1.lines.scaleY = 1
            }
            for (var a in void 0 === e.frame_0 && (e.frame_0 = "x:0"), void 0 === e.frame_1 && (e.frame_1 = "x:0"), e.dddNeeded = !1, e.ford)
                if (e.ford.hasOwnProperty(a)) {
                    var s = e.ford[a];
                    if (e[s]) {
                        if (i[s] = x(e[s], t, !0), void 0 !== i[s].bgcolor && (e.bgcolinuse = !0), o[t].BUG_ie_clipPath && void 0 !== e.clipPath && e.clipPath.use && void 0 !== i[s].transform.clip) {
                            var n = "rectangle" === e.clipPath.type ? 100 - parseInt(i[s].transform.clip) : 100 - Math.min(100, 2 * parseInt(i[s].transform.clip));
                            switch (e.clipPath.origin) {
                                case "clr":
                                case "rb":
                                case "rt":
                                case "r":
                                    e[s + "_mask"] = "u:t;x:" + n + "%;y:0px;", i[s].transform.x = o.revToResp("-" + n + "%", o[t].rle);
                                    break;
                                case "crl":
                                case "lb":
                                case "lt":
                                case "cv":
                                case "l":
                                    e[s + "_mask"] = "u:t;x:-" + n + "%;y:0px;", i[s].transform.x = o.revToResp(n + "%", o[t].rle);
                                    break;
                                case "ch":
                                case "t":
                                    e[s + "_mask"] = "u:t;y:-" + n + "%;y:0px;", i[s].transform.y = o.revToResp(n + "%", o[t].rle);
                                    break;
                                case "b":
                                    e[s + "_mask"] = "u:t;y:" + n + "%;y:0px;", i[s].transform.y = o.revToResp("-" + n + "%", o[t].rle)
                            }
                            delete i[s].transform.clip, delete i[s].transform.clipB
                        }
                        e[s + "_mask"] && (i[s].mask = x(e[s + "_mask"], t).transform), null != i[s].mask && i[s].mask.use ? (i[s].mask.x = void 0 === i[s].mask.x ? 0 : i[s].mask.x, i[s].mask.y = void 0 === i[s].mask.y ? 0 : i[s].mask.y, delete i[s].mask.use, i[s].mask.overflow = "hidden") : i[s].mask = {
                            ease: "default",
                            overflow: "visible"
                        }, e[s + "_chars"] && (i[s].chars = x(e[s + "_chars"], t, void 0, void 0, "split").transform), e[s + "_words"] && (i[s].words = x(e[s + "_words"], t, void 0, void 0, "split").transform), e[s + "_lines"] && (i[s].lines = x(e[s + "_lines"], t, void 0, void 0, "split").transform), (e[s + "_chars"] || e[s + "_words"] || e[s + "_lines"]) && (i[s].dosplit = !0), i.frame_0 = void 0 === i.frame_0 ? {
                            transform: {}
                        } : i.frame_0, i[s].transform.auto && (i[s].transform = o.clone(i.frame_0.transform), i[s].transform.opacity = void 0 === i[s].transform.opacity ? 0 : i[s].transform.opacity, void 0 !== i.frame_0.filter && (i[s].filter = o.clone(i.frame_0.filter)), void 0 !== i.frame_0.mask && (i[s].mask = o.clone(i.frame_0.mask)), void 0 !== i.frame_0.chars && (i[s].chars = o.clone(i.frame_0.chars)), void 0 !== i.frame_0.words && (i[s].words = o.clone(i.frame_0.words)), void 0 !== i.frame_0.lines && (i[s].lines = o.clone(i.frame_0.lines)), void 0 === i.frame_0.chars && void 0 === i.frame_0.words && void 0 === i.frame_0.lines || (i[s].dosplit = !0)), e[s + "_sfx"] && (i[s].sfx = x(e[s + "_sfx"], t, !1, void 0, "sfx").transform), e[s + "_reverse"] && (i[s].reverse = x(e[s + "_reverse"], t, !1, void 0, "reverse").transform)
                    }
                }
            if (i.frame_0.dosplit && (i.frame_1.dosplit = !0), void 0 === e.frame_hover && void 0 === e.svgh || (i.frame_hover = x(void 0 === e.frame_hover ? "" : e.frame_hover, t), !o.ISM || "true" != i.frame_hover.transform.instantClick && 1 != i.frame_hover.transform.instantClick ? (delete i.frame_hover.transform.instantClick, i.frame_hover.transform.color = i.frame_hover.color, void 0 === i.frame_hover.transform.color && delete i.frame_hover.transform.color, void 0 !== i.frame_hover.bgcolor && i.frame_hover.bgcolor.indexOf("gradient") >= 0 ? i.frame_hover.transform.backgroundImage = i.frame_hover.bgcolor : void 0 !== i.frame_hover.bgcolor && (i.frame_hover.transform.backgroundColor = i.frame_hover.bgcolor), void 0 !== i.frame_hover.bgcolor && (e.bgcolinuse = !0), i.frame_hover.transform.opacity = void 0 === i.frame_hover.transform.opacity ? 1 : i.frame_hover.transform.opacity, i.frame_hover.mask = void 0 !== i.frame_hover.transform.mask && i.frame_hover.transform.mask, delete i.frame_hover.transform.mask, void 0 !== i.frame_hover.transform && ((i.frame_hover.transform.borderWidth || i.frame_hover.transform.borderStyle) && (i.frame_hover.transform.borderColor = void 0 === i.frame_hover.transform.borderColor ? "transparent" : i.frame_hover.transform.borderColor), "none" !== i.frame_hover.transform.borderStyle && void 0 === i.frame_hover.transform.borderWidth && (i.frame_hover.transform.borderWidth = o.revToResp(0, 4, 0).toString().replace(/,/g, " ")), void 0 === e.bordercolor && void 0 !== i.frame_hover.transform.borderColor && (e.bordercolor = "transparent"), void 0 === e.borderwidth && void 0 !== i.frame_hover.transform.borderWidth && (e.borderwidth = o.revToResp(i.frame_hover.transform.borderWidth, 4, 0)), void 0 === e.borderstyle && void 0 !== i.frame_hover.transform.borderStyle && (e.borderstyle = o.revToResp(i.frame_hover.transform.borderStyle, 4, 0)))) : delete i.frame_hover), void 0 !== e.tloop) {
                e.layerLoop = {
                    from: "frame_1",
                    to: "frame_999",
                    repeat: -1,
                    keep: !0,
                    children: !0
                };
                var l = e.tloop.split(";");
                for (var a in l)
                    if (l.hasOwnProperty(a)) {
                        var d = l[a].split(":");
                        switch (d[0]) {
                            case "f":
                                e.layerLoop.from = d[1];
                                break;
                            case "t":
                                e.layerLoop.to = d[1];
                                break;
                            case "k":
                                e.layerLoop.keep = d[1];
                                break;
                            case "r":
                                e.layerLoop.repeat = parseInt(d[1], 0);
                                break;
                            case "c":
                                e.layerLoop.children = d[1]
                        }
                    }
                e.layerLoop.count = 0
            }
            for (var a in (e.loop_0 || e.loop_999) && (i.loop = x(e.loop_999, t, !0, "frame_999", "loop"), i.loop.frame_0 = x(e.loop_0 || "", t, !1, void 0, "loop").transform), i.frame_0.transform.opacity = void 0 === i.frame_0.transform.opacity ? 0 : i.frame_0.transform.opacity, i.frame_1.transform.opacity = void 0 === i.frame_1.transform.opacity ? 1 : i.frame_1.transform.opacity, i.frame_999.transform.opacity = void 0 === i.frame_999.transform.opacity ? "inherit" : i.frame_999.transform.opacity, e.clipPath && e.clipPath.use && (i.frame_0.transform.clip = void 0 === i.frame_0.transform.clip ? 100 : parseInt(i.frame_0.transform.clip), i.frame_1.transform.clip = void 0 === i.frame_1.transform.clip ? 100 : parseInt(i.frame_1.transform.clip)), e.resetfilter = !1, e.useFilter = {
                    blur: !1,
                    grayscale: !1,
                    brightness: !1,
                    b_blur: !1,
                    b_grayscale: !1,
                    b_brightness: !1,
                    b_invert: !1,
                    b_sepia: !1
                }, i) void 0 !== i[a].filter ? (e.resetfilter = !0, e.useFilter = O(e.useFilter, i[a].filter)) : null == i[a].filter && (i[a].filter = {}, e.useFilter.blur && (i[a].filter.blur = 0), e.useFilter.grayscale && (i[a].filter.grayscale = 0), e.useFilter.brightness && (i[a].filter.brightness = 100), e.useFilter.b_blur && (i[a].filter.b_blur = 0), e.useFilter.b_grayscale && (i[a].filter.b_grayscale = 0), e.useFilter.b_brightness && (i[a].filter.b_brightness = 100));
            if (!0 !== e.resetFilter && void 0 !== i.frame_hover && (e.useFilter = O(e.useFilter, i.frame_hover)), e.resetfilter)
                for (var a in i.frame_0.filter = o.clone(i.frame_0.filter), i.frame_0.filter = R(e.useFilter, o.clone(i.frame_0.filter)), i) void 0 !== i[a].filter && "frame_1" !== a && "frame_0" !== a && (i[a].filter = o.clone(i[a].filter), i[a].filter = R(e.useFilter, o.clone(i[a].filter)));
            return void 0 !== i.frame_0.filter && (i.frame_1.filter = o.clone(i.frame_1.filter), void 0 !== i.frame_0.filter.blur && 0 !== i.frame_1.filter.blur && (i.frame_1.filter.blur = void 0 === i.frame_1.filter.blur ? 0 : i.frame_1.filter.blur), void 0 !== i.frame_0.filter.brightness && 100 !== i.frame_1.filter.brightness && (i.frame_1.filter.brightness = void 0 === i.frame_1.filter.brightness ? 100 : i.frame_1.filter.brightness), void 0 !== i.frame_0.filter.grayscale && 0 !== i.frame_1.filter.grayscale && (i.frame_1.filter.grayscale = void 0 === i.frame_1.filter.grayscale ? 0 : i.frame_1.filter.grayscale), void 0 !== i.frame_0.filter.b_blur && 0 !== i.frame_1.filter.b_blur && (i.frame_1.filter.b_blur = void 0 === i.frame_1.filter.b_blur ? 0 : i.frame_1.filter.b_blur), void 0 !== i.frame_0.filter.b_brightness && 100 !== i.frame_1.filter.b_brightness && (i.frame_1.filter.b_brightness = void 0 === i.frame_1.filter.b_brightness ? 100 : i.frame_1.filter.b_brightness), void 0 !== i.frame_0.filter.b_grayscale && 0 !== i.frame_1.filter.b_grayscale && (i.frame_1.filter.b_grayscale = void 0 === i.frame_1.filter.b_grayscale ? 0 : i.frame_1.filter.b_grayscale), void 0 !== i.frame_0.filter.b_invert && 0 !== i.frame_1.filter.b_invert && (i.frame_1.filter.b_invert = void 0 === i.frame_1.filter.b_invert ? 0 : i.frame_1.filter.b_invert), void 0 !== i.frame_0.filter.b_sepia && 0 !== i.frame_1.filter.b_sepia && (i.frame_1.filter.b_sepia = void 0 === i.frame_1.filter.b_sepia ? 0 : i.frame_1.filter.b_sepia)), I(i, t, e)
        },
        R = function(e, t) {
            return e.blur ? t.blur = void 0 === t.blur ? 0 : t.blur : delete t.blur, e.brightness ? t.brightness = void 0 === t.brightness ? 100 : t.brightness : delete t.brightness, e.grayscale ? t.grayscale = void 0 === t.grayscale ? 0 : t.grayscale : delete t.grayscale, e.b_blur ? t.b_blur = void 0 === t.b_blur ? 0 : t.b_blur : delete t.b_blur, e.b_brightness ? t.b_brightness = void 0 === t.b_brightness ? 100 : t.b_brightness : delete t.b_brightness, e.b_grayscale ? t.b_grayscale = void 0 === t.b_grayscale ? 0 : t.b_grayscale : delete t.b_grayscale, e.b_invert ? t.b_invert = void 0 === t.b_invert ? 0 : t.b_invert : delete t.b_invert, e.b_sepia ? t.b_sepia = void 0 === t.b_sepia ? 0 : t.b_sepia : delete t.b_sepia, t
        },
        O = function(e, t) {
            return e.blur = !0 === e.blur || void 0 !== t.blur && 0 !== t.blur && "0px" !== t.blur, e.grayscale = !0 === e.grayscale || void 0 !== t.grayscale && 0 !== t.grayscale && "0%" !== t.grayscale, e.brightness = !0 === e.brightness || void 0 !== t.brightness && 100 !== t.brightness && "100%" !== t.brightness, e.b_blur = !0 === e.b_blur || void 0 !== t.b_blur && 0 !== t.b_blur && "0px" !== t.b_blur, e.b_grayscale = !0 === e.b_grayscale || void 0 !== t.b_grayscale && 0 !== t.b_grayscale && "0%" !== t.b_grayscale, e.b_brightness = !0 === e.b_brightness || void 0 !== t.b_brightness && 100 !== t.b_brightness && "100%" !== t.b_brightness, e.b_invert = !0 === e.b_invert || void 0 !== t.b_invert && 0 !== t.b_invert && "0%" !== t.b_invert, e.b_sepia = !0 === e.b_sepia || void 0 !== t.b_sepia && 0 !== t.b_sepia && "0%" !== t.b_sepia, e
        },
        L = function(e) {
            return void 0 !== e && (void 0 !== e.rotationY || void 0 !== e.rotationX || void 0 !== e.z)
        },
        I = function(e, t, i) {
            var a, r = {},
                s = ["transform", "words", "chars", "lines", "mask"],
                n = "global" == o[t].perspectiveType ? o[t].perspective : 0,
                l = !0,
                d = !1;
            for (var c in e) "loop" !== c && "frame_hover" !== c && (r = jQuery.extend(!0, r, e[c]));
            for (var c in e)
                if (e.hasOwnProperty(c) && (void 0 !== e[c].timeline && (e[c].timeline.usePerspective = !1), "loop" !== c && "frame_hover" !== c)) {
                    for (a in r.transform) r.transform.hasOwnProperty(a) && (r.transform[a] = void 0 === e[c].transform[a] ? "frame_0" === c ? o[t]._rdF0.transform[a] : "frame_1" === c ? o[t]._rdF1.transform[a] : r.transform[a] : e[c].transform[a], e[c].transform[a] = void 0 === e[c].transform[a] ? r.transform[a] : e[c].transform[a]);
                    for (var p = 1; p <= 4; p++)
                        for (a in r[s[p]]) r[s[p]].hasOwnProperty(a) && (e[c][s[p]] = void 0 === e[c][s[p]] ? {} : e[c][s[p]], r[s[p]][a] = void 0 === e[c][s[p]][a] ? "frame_0" === c ? o[t]._rdF0[s[p]][a] : "frame_1" === c ? o[t]._rdF1[s[p]][a] : r[s[p]][a] : e[c][s[p]][a], e[c][s[p]][a] = void 0 === e[c][s[p]][a] ? r[s[p]][a] : e[c][s[p]][a]);
                    void 0 !== e[c].timeline && !1 === e[c].timeline.usePerspective && void 0 !== e[c].transform && (void 0 !== e[c].transform.rotationY || void 0 !== e[c].transform.rotationX || void 0 !== e[c].transform.z || L(e[c].chars) || L(e[c].words) || L(e[c].lines)) && (n = "local" == o[t].perspectiveType ? void 0 === e[c].transform.transformPerspective ? 600 : e[c].transform.transformPerspective : n, e[c].timeline.usePerspective = !0, (L(e[c].chars) || L(e[c].words) || L(e[c].lines)) && !o.isFirefox(t) && (d = !0), l = !1)
                }
            if (d && requestAnimationFrame((function() {
                    tpGS.gsap.set(i.c, {
                        transformStyle: "preserve-3d"
                    })
                })), void 0 !== e.frame_0.timeline && e.frame_0.timeline.usePerspective && (e.frame_0.transform.transformPerspective = "local" === o[t].perspectiveType ? void 0 === e.frame_0.transform.transformPerspective ? n : e.frame_0.transform.transformPerspective : "isometric" === o[t].perspectiveType ? 0 : o[t].perspective), l)
                for (var c in e) {
                    if (!e.hasOwnProperty(c) || void 0 === e[c].transform) continue;
                    delete e[c].transform.transformPerspective
                }
            return e
        },
        M = function(e) {
            return "thin" === (e = o.isNumeric(e) ? e : e.toLowerCase()) ? "00" : "extra light" === e ? 200 : "light" === e ? 300 : "normal" === e ? 400 : "medium" === e ? 500 : "semi bold" === e ? 600 : "bold" === e ? 700 : "extra bold" === e ? 800 : "ultra bold" === e || "black" === e ? 900 : e
        },
        T = function(e, t, s) {
            if ("BR" == e[0].nodeName || "br" == e[0].tagName || "object" != typeof e[0].className && e[0].className.indexOf("rs_splitted_") >= 0) return !1;
            o.sA(e[0], "stylerecorder", !0), void 0 === e[0].id && (e[0].id = "rs-layer-sub-" + Math.round(1e6 * Math.random())), o[s].computedStyle[e[0].id] = window.getComputedStyle(e[0], null);
            var n = void 0 !== e[0].id && void 0 !== o[s]._L[e[0].id] ? o[s]._L[e[0].id] : e.data(),
                l = "rekursive" === t ? jQuery(o.closestClass(e[0], "rs-layer")) : void 0;
            void 0 !== l && (o[s].computedStyle[l[0].id] = void 0 === o[s].computedStyle[l[0].id] ? window.getComputedStyle(l[0], null) : o[s].computedStyle[l[0].id]);
            var d = void 0 !== l && o[s].computedStyle[e[0].id].fontSize == o[s].computedStyle[l[0].id].fontSize && M(o[s].computedStyle[e[0].id].fontWeight) == M(o[s].computedStyle[l[0].id].fontWeight) && o[s].computedStyle[e[0].id].lineHeight == o[s].computedStyle[l[0].id].lineHeight,
                c = d ? void 0 !== l[0].id && void 0 !== o[s]._L[l[0].id] ? o[s]._L[l[0].id] : l.data() : void 0,
                p = 0;
            for (n.basealign = void 0 === n.basealign ? "grid" : n.basealign, n._isnotext || (n.fontSize = o.revToResp(d ? void 0 === c.fontsize ? parseInt(o[s].computedStyle[l[0].id].fontSize, 0) || 20 : c.fontsize : void 0 === n.fontsize ? "rekursive" !== t ? 20 : "inherit" : n.fontsize, o[s].rle), n.fontWeight = o.revToResp(d ? void 0 === c.fontweight ? o[s].computedStyle[l[0].id].fontWeight || "inherit" : c.fontweight : void 0 === n.fontweight ? o[s].computedStyle[e[0].id].fontWeight || "inherit" : n.fontweight, o[s].rle), n.whiteSpace = o.revToResp(d ? void 0 === c.whitespace ? "nowrap" : c.whitespace : void 0 === n.whitespace ? "nowrap" : n.whitespace, o[s].rle), n.textAlign = o.revToResp(d ? void 0 === c.textalign ? "left" : c.textalign : void 0 === n.textalign ? "left" : n.textalign, o[s].rle), n.letterSpacing = o.revToResp(d ? void 0 === c.letterspacing ? parseInt(o[s].computedStyle[l[0].id].letterSpacing, 0) || "inherit" : c.letterspacing : void 0 === n.letterspacing ? parseInt("normal" === o[s].computedStyle[e[0].id].letterSpacing ? 0 : o[s].computedStyle[e[0].id].letterSpacing, 0) || "inherit" : n.letterspacing, o[s].rle), n.textDecoration = d ? void 0 === c.textDecoration ? "none" : c.textDecoration : void 0 === n.textDecoration ? "none" : n.textDecoration, p = 25, p = void 0 === l || "I" !== e[0].tagName && "STRONG" !== e[0].tagName ? p : "inherit", void 0 !== n.tshadow && (n.tshadow.b = o.revToResp(n.tshadow.b, o[s].rle), n.tshadow.h = o.revToResp(n.tshadow.h, o[s].rle), n.tshadow.v = o.revToResp(n.tshadow.v, o[s].rle))), "group" === n.type && (n.whiteSpace = "normal", n.textAlign = o.revToResp(d ? void 0 === c.textalign ? "left" : c.textalign : void 0 === n.textalign ? "left" : n.textalign, o[s].rle)), void 0 !== n.bshadow && (n.bshadow.b = o.revToResp(n.bshadow.b, o[s].rle), n.bshadow.h = o.revToResp(n.bshadow.h, o[s].rle), n.bshadow.v = o.revToResp(n.bshadow.v, o[s].rle), n.bshadow.s = o.revToResp(n.bshadow.s, o[s].rle)), void 0 !== n.tstroke && (n.tstroke.w = o.revToResp(n.tstroke.w, o[s].rle)), n.display = d ? void 0 === c.display ? o[s].computedStyle[l[0].id].display : c.display : void 0 === n.display ? o[s].computedStyle[e[0].id].display : n.display, n.float = o.revToResp(d ? void 0 === c.float ? o[s].computedStyle[l[0].id].float || "none" : c.float : void 0 === n.float ? "none" : n.float, o[s].rle), n.clear = o.revToResp(d ? void 0 === c.clear ? o[s].computedStyle[l[0].id].clear || "none" : c.clear : void 0 === n.clear ? "none" : n.clear, o[s].rle), n.lineHeight = o.revToResp(e.is("img") || -1 != jQuery.inArray(n.layertype, ["video", "image", "audio"]) ? p : d ? void 0 === c.lineheight ? parseInt(o[s].computedStyle[l[0].id].lineHeight, 0) || p : c.lineheight : void 0 === n.lineheight ? p : n.lineheight, o[s].rle), n.zIndex = d ? void 0 === c.zindex ? parseInt(o[s].computedStyle[l[0].id].zIndex, 0) || "inherit" : c.zindex : void 0 === n.zindex ? parseInt(o[s].computedStyle[e[0].id].zIndex, 0) || "inherit" : parseInt(n.zindex), g = 0; g < 4; g++) n["padding" + i[g]] = o.revToResp(void 0 === n["padding" + r[g]] ? parseInt(o[s].computedStyle[e[0].id]["padding" + i[g]], 0) || 0 : n["padding" + r[g]], o[s].rle), n["margin" + i[g]] = o.revToResp(void 0 === n["margin" + r[g]] ? parseInt(o[s].computedStyle[e[0].id]["margin" + i[g]], 0) || 0 : n["margin" + r[g]], o[s].rle), n["border" + i[g] + "Width"] = void 0 === n.borderwidth ? parseInt(o[s].computedStyle[e[0].id]["border" + i[g] + "Width"], 0) || 0 : n.borderwidth[g], n["border" + i[g] + "Color"] = void 0 === n.bordercolor ? o[s].computedStyle[e[0].id]["border-" + r[g] + "-color"] : n.bordercolor, n["border" + a[g] + "Radius"] = o.revToResp(void 0 === n.borderradius ? o[s].computedStyle[e[0].id]["border" + a[g] + "Radius"] || 0 : n.borderradius[g], o[s].rle);
            if (n.borderStyle = o.revToResp(void 0 === n.borderstyle ? o[s].computedStyle[e[0].id].borderStyle || 0 : n.borderstyle, o[s].rle), "rekursive" !== t ? (n.color = o.revToResp(void 0 === n.color ? "#ffffff" : n.color, o[s].rle, void 0, "||"), n.minWidth = o.revToResp(void 0 === n.minwidth ? parseInt(o[s].computedStyle[e[0].id].minWidth, 0) || 0 : n.minwidth, o[s].rle), n.minHeight = o.revToResp(void 0 === n.minheight ? parseInt(o[s].computedStyle[e[0].id].minHeight, 0) || 0 : n.minheight, o[s].rle), n.width = o.revToResp(void 0 === n.width ? "auto" : o.smartConvertDivs(n.width), o[s].rle), n.height = o.revToResp(void 0 === n.height ? "auto" : o.smartConvertDivs(n.height), o[s].rle), n.maxWidth = o.revToResp(void 0 === n.maxwidth ? parseInt(o[s].computedStyle[e[0].id].maxWidth, 0) || "none" : n.maxwidth, o[s].rle), n.maxHeight = o.revToResp(-1 !== jQuery.inArray(n.type, ["column", "row"]) ? "none" : void 0 !== n.maxheight ? parseInt(o[s].computedStyle[e[0].id].maxHeight, 0) || "none" : n.maxheight, o[s].rle)) : "html" === n.layertype && (n.width = o.revToResp(e[0].width, o[s].rle), n.height = o.revToResp(e[0].height, o[s].rle)), n._incolumn)
                for (var g = 0; g < n.height.length; g++) - 1 !== n.height[g].indexOf("%") && parseFloat(n.height[g]) > 98 && (n.height[g] = n.height[g].replace("%", "px"));
            for (n.styleProps = {
                    background: e[0].style.background,
                    "background-color": e[0].style["background-color"],
                    color: e[0].style.color,
                    cursor: e[0].style.cursor,
                    "font-style": e[0].style["font-style"]
                }, null == n.bshadow && (n.styleProps.boxShadow = e[0].style.boxShadow), "" !== n.styleProps.background && void 0 !== n.styleProps.background && n.styleProps.background !== n.styleProps["background-color"] || delete n.styleProps.background, "" == n.styleProps.color && (n.styleProps.color = o[s].computedStyle[e[0].id].color), g = 0; g < 4; g++) C(n["padding" + i[g]], 0) && delete n["padding" + i[g]], C(n["margin" + i[g]], 0) && delete n["margin" + i[g]], (C(n["border" + a[g] + "Radius"], "0px") || C(n["border" + a[g] + "Radius"], "0")) && delete n["border" + a[g] + "Radius"];
            if (C(n.borderStyle, "none"))
                for (delete n.borderStyle, g = 0; g < 4; g++) delete n["border" + i[g] + "Width"], delete n["border" + i[g] + "Color"]
        },
        C = function(e, t) {
            return t === e[0] && t === e[1] && t === e[2] && t === e[3]
        },
        A = function(e, t, i, a, r) {
            var s = o.isNumeric(e) || void 0 === e ? "" : e.indexOf("px") >= 0 ? "px" : e.indexOf("%") >= 0 ? "%" : "";
            return e = o.isNumeric(parseInt(e)) ? parseInt(e) : e, e = null == (e = "full" === (e = o.isNumeric(e) ? e * t + s : e) ? a : "auto" === e || "none" === e ? i : e) ? r : e
        },
        D = function(e) {
            return null != e && 0 !== parseInt(e, 0)
        },
        P = function(e) {
            var t, s, n, l, d, c, p, g, u, h, m = e.a,
                v = e.b,
                f = e.c,
                y = e.d,
                w = e.e,
                b = {},
                _ = {},
                S = o[v]._L[m[0].id],
                x = m[0].className;
            if (S = void 0 === S ? {} : S, "object" == typeof x && (x = ""), void 0 !== m && void 0 !== m[0] && (x.indexOf("rs_splitted") >= 0 || "BR" == m[0].nodeName || "br" == m[0].tagName || m[0].tagName.indexOf("FCR") > 0 || m[0].tagName.indexOf("BCR") > 0)) return !1;
            w = "individual" === w ? S.slideIndex : w;
            var k, R = function(e, t, r) {
                    if (void 0 !== e) {
                        if ("BR" == e[0].nodeName || "br" == e[0].tagName) return !1;
                        var s, n = o[t].level,
                            l = void 0 !== e[0] && void 0 !== e[0].id && void 0 !== o[t]._L[e[0].id] ? o[t]._L[e[0].id] : e.data();
                        void 0 === (l = void 0 === l.basealign ? r.data() : l)._isnotext && (l._isnotext = void 0 !== r && void 0 !== r[0] && r[0].length > 0 ? o.gA(r[0], "_isnotext") : l._isnotext);
                        var d = {
                            basealign: void 0 === l.basealign ? "grid" : l.basealign,
                            lineHeight: void 0 === l.basealign ? "inherit" : parseInt(l.lineHeight[n]),
                            color: void 0 === l.color ? void 0 : l.color[n],
                            width: void 0 === l.width ? void 0 : "a" === l.width[n] ? "auto" : l.width[n],
                            height: void 0 === l.height ? void 0 : "a" === l.height[n] ? "auto" : l.height[n],
                            minWidth: void 0 === l.minWidth ? void 0 : "n" === l.minWidth[n] ? "none" : l.minWidth[n],
                            minHeight: void 0 === l.minHeight ? void 0 : "n" == l.minHeight[n] ? "none" : l.minHeight[n],
                            maxWidth: void 0 === l.maxWidth ? void 0 : "n" == l.maxWidth[n] ? "none" : l.maxWidth[n],
                            maxHeight: void 0 === l.maxHeight ? void 0 : "n" == l.maxHeight[n] ? "none" : l.maxHeight[n],
                            float: l.float[n],
                            clear: l.clear[n]
                        };
                        for (l.borderStyle && (d.borderStyle = l.borderStyle[n]), s = 0; s < 4; s++) l["padding" + i[s]] && (d["padding" + i[s]] = l["padding" + i[s]][n]), l["margin" + i[s]] && (d["margin" + i[s]] = parseInt(l["margin" + i[s]][n])), l["border" + a[s] + "Radius"] && (d["border" + a[s] + "Radius"] = l["border" + a[s] + "Radius"][n]), void 0 !== d.borderStyle && "none" !== d.borderStyle && (l["border" + i[s] + "Color"] && (d["border" + i[s] + "Color"] = l["border" + i[s] + "Color"]), l["border" + i[s] + "Width"] && (d["border" + i[s] + "Width"] = parseInt(l["border" + i[s] + "Width"])));
                        return l._isnotext || (d.textDecoration = l.textDecoration, d.fontSize = parseInt(l.fontSize[n]), d.fontWeight = parseInt(l.fontWeight[n]), d.letterSpacing = parseInt(l.letterSpacing[n]) || 0, d.textAlign = l.textAlign[n], d.whiteSpace = l.whiteSpace[n], d.whiteSpace = "normal" === d.whiteSpace && "auto" === d.width && (!0 !== l._incolumn && !0 !== l._ingroup || "relative" !== l.position) ? "nowrap" : d.whiteSpace, d.display = l.display, void 0 !== l.tshadow && (d.textShadow = parseInt(l.tshadow.h[n], 0) + "px " + parseInt(l.tshadow.v[n], 0) + "px " + l.tshadow.b[n] + " " + l.tshadow.c), void 0 !== l.tstroke && (d.textStroke = parseInt(l.tstroke.w[n], 0) + "px " + l.tstroke.c)), "group" === l.type && (d.whiteSpace = l.whiteSpace, d.textAlign = l.textAlign[n], d.display = l.display), void 0 !== l.bshadow && (d.boxShadow = parseInt(l.bshadow.h[n], 0) + "px " + parseInt(l.bshadow.v[n], 0) + "px " + parseInt(l.bshadow.b[n], 0) + "px " + parseInt(l.bshadow.s[n], 0) + "px " + l.bshadow.c), d
                    }
                }(m, v, e.RSL),
                O = "off" === y ? 1 : o[v].CM.w;
            if (void 0 === S._isnotext && (S._isnotext = void 0 !== R.RSL && void 0 !== R.RSL[0] && R.RSL[0].length > 0 ? o.gA(R.RSL[0], "_isnotext") : S._isnotext), S._incolumn && ("shape" === S.type || "text" === S.type || "button" === S.type) && ("" + R.height).indexOf(!1) && (R.height = R.height), S.OBJUPD = null == S.OBJUPD ? {} : S.OBJUPD, S.caches = null == S.caches ? {} : S.caches, "column" === S.type) {
                for (s = {}, k = {}, t = 0; t < 4; t++) void 0 !== R["margin" + i[t]] && (s["padding" + i[t]] = Math.round(R["margin" + i[t]] * O) + "px", k["margin" + i[t]] = R["margin" + i[t]], delete R["margin" + i[t]]);
                jQuery.isEmptyObject(s) || tpGS.gsap.set(S._column, s)
            }
            var L = o.clone(S.OBJUPD.POBJ),
                I = o.clone(S.OBJUPD.LPOBJ);
            if (-1 === x.indexOf("rs_splitted_")) {
                for (s = {
                        overwrite: "auto"
                    }, t = 0; t < 4; t++) void 0 !== R["border" + a[t] + "Radius"] && (s["border" + a[t] + "Radius"] = R["border" + a[t] + "Radius"]), void 0 !== R["padding" + i[t]] && (s["padding" + i[t]] = Math.round(R["padding" + i[t]] * O) + "px"), void 0 === R["margin" + i[t]] || S._incolumn || S._ingroup && "absolute" != S.position || (s["margin" + i[t]] = "row" === S.type ? 0 : Math.round(R["margin" + i[t]] * O) + "px");
                if (void 0 !== S.spike && (s["clip-path"] = s["-webkit-clip-path"] = S.spike), R.boxShadow && (s.boxShadow = R.boxShadow), "column" !== S.type && (void 0 !== R.borderStyle && "none" !== R.borderStyle && (0 !== R.borderTopWidth || R.borderBottomWidth > 0 || R.borderLeftWidth > 0 || R.borderRightWidth > 0) ? (s.borderTopWidth = Math.round(R.borderTopWidth * O) + "px", s.borderBottomWidth = Math.round(R.borderBottomWidth * O) + "px", s.borderLeftWidth = Math.round(R.borderLeftWidth * O) + "px", s.borderRightWidth = Math.round(R.borderRightWidth * O) + "px", s.borderStyle = R.borderStyle, s.borderTopColor = R.borderTopColor, s.borderBottomColor = R.borderBottomColor, s.borderLeftColor = R.borderLeftColor, s.borderRightColor = R.borderRightColor) : ("none" === R.borderStyle && (s.borderStyle = "none"), void 0 !== R.borderTopColor && (s.borderTopColor = R.borderTopColor), void 0 !== R.borderBottomColor && (s.borderBottomColor = R.borderBottomColor), void 0 !== R.borderLeftColor && (s.borderLeftColor = R.borderLeftColor), void 0 !== R.borderRightColor && (s.borderRightColor = R.borderRightColor))), "shape" !== S.type && "image" !== S.type || !(D(R.borderTopLeftRadius) || D(R.borderTopRightRadius) || D(R.borderBottomLeftRadius) || D(R.borderBottomRightRadius)) || (s.overflow = "hidden"), S._isnotext || ("column" !== S.type && (s.fontSize = Math.round(R.fontSize * O) + "px", "thefont" == m[0].id && console.log(s.fontSize, O), s.fontWeight = R.fontWeight, s.letterSpacing = R.letterSpacing * O + "px", R.textShadow && (s.textShadow = R.textShadow), R.textStroke && (s["-webkit-text-stroke"] = R.textStroke)), s.lineHeight = Math.round(R.lineHeight * O) + "px", s.textAlign = R.textAlign), "video" === S.type && S.html5vid && void 0 !== S.deepmedia && void 0 !== S.deepmedia[0] && null != S.deepmedia[0].parentNode && (D(R.borderTopLeftRadius) || D(R.borderTopRightRadius) || D(R.borderBottomLeftRadius) || D(R.borderBottomRightRadius)) && tpGS.gsap.set(S.deepmedia[0].parentNode, function(e) {
                        var t = o.clone(e);
                        return t.top = 0 - ((parseInt(t.borderTopWidth) || 0) + (parseInt(t.borderBottomWidth) || 0)) / 2 + "px", t.left = 0 - ((parseInt(t.borderLeftWidth) || 0) + (parseInt(t.borderRightWidth) || 0)) / 2 + "px", t.borderStyle = void 0 !== t.borderTopWidth || void 0 !== t.borderBottomWidth || void 0 !== t.borderLeftWidth || void 0 !== t.borderRightWidth ? "solid" : "none", t.borderColor = "transparent", t.boxSizing = "content-box", t
                    }(s)), "column" === S.type && void 0 !== S.cbg && (void 0 === S.cbg_set && (S.cbg_set = S.styleProps["background-color"], S.cbg_set = "" == S.cbg_set || void 0 === S.cbg_set || 0 == S.cbg_set.length ? "transparent" : S.cbg_set, S.cbg_img = void 0 !== m[0].dataset.bglazy ? 'url("' + m[0].dataset.bglazy + '")' : m.css("backgroundImage"), "" !== S.cbg_img && void 0 !== S.cbg_img && "none" !== S.cbg_img && (S.cbg_img_r = m.css("backgroundRepeat"), S.cbg_img_p = m.css("backgroundPosition"), S.cbg_img_s = m.css("backgroundSize")), S.cbg_o = S.bgopacity ? 1 : S.bgopacity, b.backgroundColor = "transparent", b.backgroundImage = ""), s.backgroundColor = "transparent", s.backgroundImage = "none"), S._isstatic && S.elementHovered && (p = m.data("frames")) && p.frame_hover && p.frame_hover.transform)
                    for (g in s) s.hasOwnProperty(g) && p.frame_hover.transform.hasOwnProperty(g) && delete s[g];
                if ("IFRAME" == m[0].nodeName && "html" === o.gA(m[0], "layertype") && (u = "slide" == R.basealign ? o[v].module.width : o.iWA(v, w), h = "slide" == R.basealign || "carousel" == o[v].sliderType && "v" === o[v].carousel.orientation ? o[v].module.height : o.iHE(v), s.width = !o.isNumeric(R.width) && R.width.indexOf("%") >= 0 ? !S._isstatic || S._incolumn || S._ingroup ? R.width : u * parseInt(R.width, 0) / 100 : A(R.width, O, "auto", u, "auto"), s.height = !o.isNumeric(R.height) && R.height.indexOf("%") >= 0 ? !S._isstatic || S._incolumn || S._ingroup ? R.height : h * parseInt(R.height, 0) / 100 : A(R.height, O, "auto", u, "auto")), b = jQuery.extend(!0, b, s), o[v].firstLayerCalculated = !0, "rekursive" != f) {
                    u = "slide" == R.basealign ? o[v].module.width : o.iWA(v, w), h = "slide" == R.basealign || "carousel" == o[v].sliderType && "v" === o[v].carousel.orientation ? o[v].module.height : o.iHE(v);
                    var M = !o.isNumeric(R.width) && R.width.indexOf("%") >= 0 ? !S._isstatic || S._incolumn || S._ingroup ? R.width : u * parseInt(R.width, 0) / 100 : A(R.width, O, "auto", u, "auto"),
                        T = !o.isNumeric(R.height) && R.height.indexOf("%") >= 0 ? !S._isstatic || S._incolumn || S._ingroup ? R.height : h * parseInt(R.height, 0) / 100 : A(R.height, O, "auto", u, "auto"),
                        C = {
                            maxWidth: A(R.maxWidth, O, "none", u, "none"),
                            maxHeight: A(R.maxHeight, O, "none", h, "none"),
                            minWidth: A(R.minWidth, O, "0px", u, 0),
                            minHeight: A(R.minHeight, O, "0px", h, 0),
                            height: T,
                            width: M,
                            overwrite: "auto"
                        };
                    1 == S.heightSetByVideo && (C.height = S.vidOBJ.height);
                    var P = !1;
                    if (S._incolumn) {
                        for (L = jQuery.extend(!0, L, {
                                minWidth: M,
                                maxWidth: M,
                                float: R.float,
                                clear: R.clear
                            }), t = 0; t < 4; t++) void 0 !== R["margin" + i[t]] && (L["margin" + i[t]] = R["margin" + i[t]] * O + "px");
                        I.width = "100%", void 0 !== R.display && "inline-block" !== R.display || (_ = {
                            width: "100%"
                        }), C.width = !o.isNumeric(R.width) && R.width.indexOf("%") >= 0 ? "100%" : M, "image" === S.type && tpGS.gsap.set(S.img, {
                            width: "100%"
                        })
                    } else !o.isNumeric(R.width) && R.width.indexOf("%") >= 0 && (S._isgroup && "absolute" === S.position || (!0 === S._ingroup || 1 == S._incolumn) && "relative" === S.position || void 0 !== S.reqWrp && (!S.reqWrp.loop || !S.reqWrp.mask) ? L.width = "slide" === S.basealign || !0 === S._ingroup || S._isstatic ? M : o.iWA(v, w) * o[v].CM.w * parseInt(M) / 100 + "px" : L.minWidth = "slide" === S.basealign || !0 === S._ingroup || S._isstatic ? M : o.iWA(v, w) * o[v].CM.w * parseInt(M) / 100 + "px", I.width = "100%", _.width = "100%");
                    if (!0 === S._ingroup && "relative" === S.position && (L.float = R.float, L.lineHeight = R.lineHeight + "px", b.verticalAlign = "top", _.verticalAlign = "top", I.verticalAlign = "top"), S._incolumn && (L.verticalAlign = jQuery(o.closestNode(m[0], "RS-COLUMN")).data("verticalalign")), !o.isNumeric(R.height) && R.height.indexOf("%") >= 0 && (L.minHeight = "slide" === S.basealign || !0 === S._ingroup || S._isstatic ? T : o.iHE(v) * (o[v].currentRowsHeight > o[v].gridheight[o[v].level] ? 1 : o[v].CM.w) * parseInt(T) / 100 + "px", void 0 === S.reqWrp || S.reqWrp.loop || S.reqWrp.mask || (L.height = L.minHeight), I.height = "100%", _.height = "100%", P = !0), S._isnotext ? "group" == S.type && (C.whiteSpace = "normal") : (C.whiteSpace = R.whiteSpace, C.textAlign = R.textAlign, C.textDecoration = R.textDecoration), "npc" != R.color && void 0 !== R.color && (C.color = R.color), S._ingroup && (S._groupw = C.minWidth, S._grouph = C.minHeight), "row" === S.type && (o.isNumeric(C.minHeight) || C.minHeight.indexOf("px") >= 0) && "0px" !== C.minHeight && 0 !== C.minHeight && "0" !== C.minHeight && "none" !== C.minHeight ? C.height = C.minHeight : "row" === S.type && (C.height = "auto"), S._isstatic && S.elementHovered && (p = m.data("frames")) && p.frame_hover && p.frame_hover.transform)
                        for (g in C) C.hasOwnProperty(g) && p.frame_hover.transform.hasOwnProperty(g) && delete C[g];
                    if ("group" !== S.type && "row" !== S.type && "column" !== S.type && (!o.isNumeric(C.width) && C.width.indexOf("%") >= 0 && (C.width = "100%"), !o.isNumeric(C.height) && C.height.indexOf("%") >= 0 && (C.height = "100%")), S._isgroup) {
                        for (!o.isNumeric(C.width) && C.width.indexOf("%") >= 0 && (C.width = "100%"), "absolute" != S.position || S._ingroup || S._incolumn || !P ? L.height = P ? "100%" : C.height : (L.height = L.minHeight, C.height = "100%"), C.lineHeight = void 0 === R.lineHeight || P ? "initial" : R.lineHeight + "px", C.verticalAlign = S.verticalalign, C.textAlign = R.textAlign, t = 0; t < 4; t++) void 0 !== b["border" + a[t] + "Radius"] && (_["border" + a[t] + "Radius"] = b["border" + a[t] + "Radius"]);
                        "relative" == S.position && void 0 !== R.display && (L.display = R.display), "auto" == R.width && (_.position = "relative")
                    }
                    b = jQuery.extend(!0, b, C), null != S.svg_src && void 0 !== S.svgI && ("string" == typeof S.svgI.fill && (S.svgI.fill = [S.svgI.fill]), S.svgTemp = o.clone(S.svgI), delete S.svgTemp.svgAll, void 0 !== S.svgTemp.fill && !0 !== (S.elementHovered && S._isstatic) && (S.svgTemp.fill = S.svgTemp.fill[o[v].level], S.svg.length <= 0 && (S.svg = m.find("svg")), S.svgPath.length <= 0 && (S.svgPath = S.svg.find(S.svgI.svgAll ? "path, circle, ellipse, line, polygon, polyline, rect" : "path")), tpGS.gsap.set(S.svgPath, {
                        fill: S.svgI.fill[o[v].level]
                    })), tpGS.gsap.set(S.svg, S.svgTemp))
                }
                if ("row" === S.type)
                    for (t = 0; t < 4; t++) void 0 !== R["margin" + i[t]] && (L["padding" + i[t]] = R["margin" + i[t]] * O + "px");
                if (S._ingroup && "relative" == S.position) {
                    for (t = 0; t < 4; t++) void 0 !== R["margin" + i[t]] && (L["margin" + i[t]] = R["margin" + i[t]] * O + "px");
                    "shape" === S.type && "100%" == _.width && "100%" == _.height && (_.position = "absolute")
                }
                if ("column" === S.type && S.cbg && S.cbg.length > 0) {
                    for (void 0 !== S.cbg_img_s && void 0 !== S.cbg && (S.cbg[0].style.backgroundSize = S.cbg_img_s), s = {}, "" !== S.styleProps.cursor && (s.cursor = S.styleProps.cursor), "" !== S.cbg_set && "transparent" !== S.cbg_set && (s.backgroundColor = S.cbg_set), "" !== S.cbg_img && "none" !== S.cbg_img && (s.backgroundImage = S.cbg_img, "" !== S.cbg_img_r && (s.backgroundRepeat = S.cbg_img_r), "" !== S.cbg_img_p && (s.backgroundPosition = S.cbg_img_p)), "" !== S.cbg_o && void 0 !== S.cbg_o && (s.opacity = S.cbg_o), t = 0; t < 4; t++) void 0 !== R.borderStyle && "none" !== R.borderStyle && (void 0 !== R["border" + i[t] + "Width"] && (s["border" + i[t] + "Width"] = Math.round(parseInt(R["border" + i[t] + "Width"]) * O) + "px"), void 0 !== R["border" + i[t] + "Color"] && (s["border" + i[t] + "Color"] = R["border" + i[t] + "Color"])), R["border" + a[t] + "Radius"] && (s["border" + a[t] + "Radius"] = R["border" + a[t] + "Radius"]);
                    for (void 0 !== R.borderStyle && "none" !== R.borderStyle && (s.borderStyle = R.borderStyle), (n = JSON.stringify(s)) !== o[v].emptyObject && n !== S.caches.cbgS && tpGS.gsap.set(S.cbg, s), S.caches.cbgS = n, s = {}, t = 0; t < 4; t++) k["margin" + i[t]] && (s[r[t]] = k["margin" + i[t]] * O + "px");
                    (n = JSON.stringify(s)) !== o[v].emptyObject && n !== S.caches.cbgmaskS && (tpGS.gsap.set(S.cbgmask, s), S.caches.cbgmaskS = n)
                }
                for (var B in void 0 === S.reqWrp || S.reqWrp.loop || S.reqWrp.mask || "100%" != b.width || "100%" != b.height || (b.position = "absolute"), "auto" === L.maxWidth && (L.maxWidth = "inherit"), "auto" === L.maxHeight && (L.maxHeight = "inherit"), "auto" === _.maxWidth && (_.maxWidth = "inherit"), "auto" === _.maxHeight && (_.maxHeight = "inherit"), "auto" === I.maxWidth && (I.maxWidth = "inherit"), "auto" === I.maxHeight && (I.maxHeight = "inherit"), S.fullinset && 1 == S._ingroup && "absolute" === S.position && (L.width = "auto", L.minHeight = "auto", L.height = "auto", L.left = void 0 !== b.marginLeft && "0px" !== b.marginLeft ? b.marginLeft : "0px", L.right = void 0 !== b.marginRight && "0px" !== b.marginRight ? b.marginRight : "0px", L.top = void 0 !== b.marginTop && "0px" !== b.marginTop ? b.marginTop : "0px", L.bottom = void 0 !== b.marginBottom && "0px" !== b.marginBottom ? b.marginBottom : "0px", delete b.marginLeft, delete b.marginRight, delete b.marginTop, delete b.marginBottom), void 0 !== S.vidOBJ && (b.width = S.vidOBJ.width, b.height = S.vidOBJ.height), void 0 !== S.OBJUPD.lppmOBJ && (void 0 !== S.OBJUPD.lppmOBJ.minWidth && (I.minWidth = S.OBJUPD.lppmOBJ.minWidth, _.minWidth = S.OBJUPD.lppmOBJ.minWidth), void 0 !== S.OBJUPD.lppmOBJ.minHeight && (I.minHeight = S.OBJUPD.lppmOBJ.minHeight, _.minHeight = S.OBJUPD.lppmOBJ.minHeight, L.minHeight = S.OBJUPD.lppmOBJ.minHeight)), S._incolumn && "group" == S.type && void 0 !== L && "100%" == L.minWidth && (_.width = "100%"), S._isgroup && S.thFixed && void 0 !== S.reqWrp && S.reqWrp.loop && S.reqWrp.mask && "auto" == R.width && (I.position = "relative"), !S._ingroup || S.reqWrp.loop || S.reqWrp.mask || "absolute" != S.position || "100%" != L.minHeight || (L.height = "100%"), o[v].calcResponsiveLayerHooks) {
                    var G = o[v].calcResponsiveLayerHooks[B]({
                        id: v,
                        L: m,
                        obj: R,
                        _: S,
                        inobj: e,
                        LOBJ: b,
                        LPOBJ: I,
                        MOBJ: _,
                        POBJ: L
                    });
                    null != G && (void 0 !== G.obj && (R = jQuery.extend(!0, R, G.obj)), void 0 !== G.LOBJ && (b = jQuery.extend(!0, b, G.LOBJ)), void 0 !== G.LPOBJ && (I = jQuery.extend(!0, I, G.LPOBJ)), void 0 !== G.MOBJ && (_ = jQuery.extend(!0, _, G.MOBJ)), void 0 !== G.POBJ && (L = jQuery.extend(!0, L, G.POBJ)))
                }
                n = JSON.stringify(b), l = JSON.stringify(I), d = JSON.stringify(_), c = JSON.stringify(L), void 0 === S.imgOBJ || void 0 !== S.caches.imgOBJ && S.caches.imgOBJ.width === S.imgOBJ.width && S.caches.imgOBJ.height === S.imgOBJ.height && S.caches.imgOBJ.left === S.imgOBJ.left && S.caches.imgOBJ.right === S.imgOBJ.right && S.caches.imgOBJ.top === S.imgOBJ.top && S.caches.imgOBJ.bottom === S.imgOBJ.bottom || (S.caches.imgOBJ = o.clone(S.imgOBJ), S.imgOBJ.position = "relative", tpGS.gsap.set(S.img, S.imgOBJ)), void 0 === S.mediaOBJ || void 0 !== S.caches.mediaOBJ && S.caches.mediaOBJ.width === S.mediaOBJ.width && S.caches.mediaOBJ.height === S.mediaOBJ.height && S.caches.mediaOBJ.display === S.mediaOBJ.display || (S.caches.mediaOBJ = o.clone(S.mediaOBJ), S.media.css(S.mediaOBJ)), n != o[v].emptyObject && n != S.caches.LOBJ && (tpGS.gsap.set(m, b), S.caches.LOBJ = n), void 0 !== S.lp && l != o[v].emptyObject && l != S.caches.LPOBJ && (tpGS.gsap.set(S.lp, I), S.caches.LPOBJ = l), d != o[v].emptyObject && d != S.caches.MOBJ && (tpGS.gsap.set(S.m, _), S.caches.MOBJ = d), c != o[v].emptyObject && c != S.caches.POBJ && (tpGS.gsap.set(S.p, L), S.caches.POBJ = c, S.caches.POBJ_LEFT = L.left, S.caches.POBJ_TOP = L.top)
            }
        },
        B = function(e) {
            var t = {
                l: "none",
                lw: 10,
                r: "none",
                rw: 10
            };
            for (var i in e = e.split(";"))
                if (e.hasOwnProperty(i)) {
                    var a = e[i].split(":");
                    switch (a[0]) {
                        case "l":
                            t.l = a[1];
                            break;
                        case "r":
                            t.r = a[1];
                            break;
                        case "lw":
                            t.lw = a[1];
                            break;
                        case "rw":
                            t.rw = a[1]
                    }
                }
            return "polygon(" + G(t.l, 0, parseFloat(t.lw)) + "," + G(t.r, 100, 100 - parseFloat(t.rw), !0) + ")"
        },
        G = function(e, t, i, a) {
            var r;
            switch (e) {
                case "none":
                    r = t + "% 100%," + t + "% 0%";
                    break;
                case "top":
                    r = i + "% 100%," + t + "% 0%";
                    break;
                case "middle":
                    r = i + "% 100%," + t + "% 50%," + i + "% 0%";
                    break;
                case "bottom":
                    r = t + "% 100%," + i + "% 0%";
                    break;
                case "two":
                    r = i + "% 100%," + t + "% 75%," + i + "% 50%," + t + "% 25%," + i + "% 0%";
                    break;
                case "three":
                    r = t + "% 100%," + i + "% 75%," + t + "% 50%," + i + "% 25%," + t + "% 0%";
                    break;
                case "four":
                    r = t + "% 100%," + i + "% 87.5%," + t + "% 75%," + i + "% 62.5%," + t + "% 50%," + i + "% 37.5%," + t + "% 25%," + i + "% 12.5%," + t + "% 0%";
                    break;
                case "five":
                    r = t + "% 100%," + i + "% 90%," + t + "% 80%," + i + "% 70%," + t + "% 60%," + i + "% 50%," + t + "% 40%," + i + "% 30%," + t + "% 20%," + i + "% 10%," + t + "% 0%"
            }
            if (a) {
                var o = r.split(",");
                for (var i in r = "", o) o.hasOwnProperty(i) && (r += o[o.length - 1 - i] + (i < o.length - 1 ? "," : ""))
            }
            return r
        };
    window.RS_MODULES = window.RS_MODULES || {}, window.RS_MODULES.layeranimation = {
        loaded: !0,
        version: "6.6.17"
    }, window.RS_MODULES.checkMinimal && window.RS_MODULES.checkMinimal()
}(jQuery),
function(e) {
    "use strict";
    jQuery.fn.revolution = jQuery.fn.revolution || {};
    var t = jQuery.fn.revolution;

    function i(e, i) {
        var a = new Object({
            single: ".tp-" + i,
            c: t[e].cpar.find(".tp-" + i + "s")
        });
        return a.mask = a.c.find(".tp-" + i + "-mask"), a.wrap = a.c.find(".tp-" + i + "s-inner-wrapper"), a
    }
    jQuery.extend(!0, t, {
        hideUnHideNav: function(e) {
            window.requestAnimationFrame((function() {
                var i = !1;
                c(t[e].navigation.arrows) && (i = S(t[e].navigation.arrows, e, i)), c(t[e].navigation.bullets) && (i = S(t[e].navigation.bullets, e, i)), c(t[e].navigation.thumbnails) && (i = S(t[e].navigation.thumbnails, e, i)), c(t[e].navigation.tabs) && (i = S(t[e].navigation.tabs, e, i)), i && t.manageNavigation(e)
            }))
        },
        getOuterNavDimension: function(e) {
            t[e].navigation.scaler = Math.max(0, Math.min(1, (t.winW - 480) / 500));
            var i = {
                left: 0,
                right: 0,
                horizontal: 0,
                vertical: 0,
                top: 0,
                bottom: 0
            };
            return t[e].navigation.thumbnails && t[e].navigation.thumbnails.enable && (t[e].navigation.thumbnails.isVisible = t[e].navigation.thumbnails.hide_under < t[e].module.width && t[e].navigation.thumbnails.hide_over > t[e].module.width, t[e].navigation.thumbnails.cw = Math.max(Math.round(t[e].navigation.thumbnails.width * t[e].navigation.scaler), t[e].navigation.thumbnails.min_width), t[e].navigation.thumbnails.ch = Math.round(t[e].navigation.thumbnails.cw / t[e].navigation.thumbnails.width * t[e].navigation.thumbnails.height), t[e].navigation.thumbnails.isVisible && "outer-left" === t[e].navigation.thumbnails.position ? i.left = t[e].navigation.thumbnails.cw + 2 * t[e].navigation.thumbnails.wrapper_padding : t[e].navigation.thumbnails.isVisible && "outer-right" === t[e].navigation.thumbnails.position ? i.right = t[e].navigation.thumbnails.cw + 2 * t[e].navigation.thumbnails.wrapper_padding : t[e].navigation.thumbnails.isVisible && "outer-top" === t[e].navigation.thumbnails.position ? i.top = t[e].navigation.thumbnails.ch + 2 * t[e].navigation.thumbnails.wrapper_padding : t[e].navigation.thumbnails.isVisible && "outer-bottom" === t[e].navigation.thumbnails.position && (i.bottom = t[e].navigation.thumbnails.ch + 2 * t[e].navigation.thumbnails.wrapper_padding)), t[e].navigation.tabs && t[e].navigation.tabs.enable && (t[e].navigation.tabs.isVisible = t[e].navigation.tabs.hide_under < t[e].module.width && t[e].navigation.tabs.hide_over > t[e].module.width, t[e].navigation.tabs.cw = Math.max(Math.round(t[e].navigation.tabs.width * t[e].navigation.scaler), t[e].navigation.tabs.min_width), t[e].navigation.tabs.ch = Math.round(t[e].navigation.tabs.cw / t[e].navigation.tabs.width * t[e].navigation.tabs.height), t[e].navigation.tabs.isVisible && "outer-left" === t[e].navigation.tabs.position ? i.left += t[e].navigation.tabs.cw + 2 * t[e].navigation.tabs.wrapper_padding : t[e].navigation.tabs.isVisible && "outer-right" === t[e].navigation.tabs.position ? i.right += t[e].navigation.tabs.cw + 2 * t[e].navigation.tabs.wrapper_padding : t[e].navigation.tabs.isVisible && "outer-top" === t[e].navigation.tabs.position ? i.top += t[e].navigation.tabs.ch + 2 * t[e].navigation.tabs.wrapper_padding : t[e].navigation.tabs.isVisible && "outer-bottom" === t[e].navigation.tabs.position && (i.bottom += t[e].navigation.tabs.ch + 2 * t[e].navigation.tabs.wrapper_padding)), {
                left: i.left,
                right: i.right,
                horizontal: i.left + i.right,
                vertical: i.top + i.bottom,
                top: i.top,
                bottom: i.bottom
            }
        },
        resizeThumbsTabs: function(e, i) {
            if (void 0 !== t[e] && t[e].navigation.use && (t[e].navigation && t[e].navigation.bullets.enable || t[e].navigation && t[e].navigation.tabs.enable || t[e].navigation && t[e].navigation.thumbnails.enable)) {
                var a = tpGS.gsap.timeline(),
                    o = t[e].navigation.tabs,
                    s = t[e].navigation.thumbnails,
                    n = t[e].navigation.bullets;
                if (a.pause(), c(o) && (i || o.width > o.min_width) && r(e, a, t[e].c, o, t[e].slideamount, "tab"), c(s) && (i || s.width > s.min_width) && r(e, a, t[e].c, s, t[e].slideamount, "thumb", e), c(n) && i) {
                    var l = t[e].c.find(".tp-bullets");
                    l.find(".tp-bullet").each((function(e) {
                        var t = jQuery(this),
                            i = e + 1,
                            a = t.outerWidth() + parseInt(void 0 === n.space ? 0 : n.space, 0),
                            r = t.outerHeight() + parseInt(void 0 === n.space ? 0 : n.space, 0);
                        "vertical" === n.direction ? (t.css({
                            top: (i - 1) * r + "px",
                            left: "0px"
                        }), l.css({
                            height: (i - 1) * r + t.outerHeight(),
                            width: t.outerWidth()
                        })) : (t.css({
                            left: (i - 1) * a + "px",
                            top: "0px"
                        }), l.css({
                            width: (i - 1) * a + t.outerWidth(),
                            height: t.outerHeight()
                        }))
                    }))
                }
                a.play()
            }
            return !0
        },
        updateNavIndexes: function(e) {
            var i = t[e].c;

            function a(e) {
                i.find(e).lenght > 0 && i.find(e).each((function(e) {
                    jQuery(this).data("liindex", e)
                }))
            }
            a("rs-tab"), a("rs-bullet"), a("rs-thumb"), t.resizeThumbsTabs(e, !0), t.manageNavigation(e)
        },
        manageNavigation: function(e, i) {
            t[e].navigation.use && (c(t[e].navigation.bullets) && ("fullscreen" != t[e].sliderLayout && "fullwidth" != t[e].sliderLayout && (t[e].navigation.bullets.h_offset_old = void 0 === t[e].navigation.bullets.h_offset_old ? parseInt(t[e].navigation.bullets.h_offset, 0) : t[e].navigation.bullets.h_offset_old, t[e].navigation.bullets.h_offset = "center" === t[e].navigation.bullets.h_align ? t[e].navigation.bullets.h_offset_old + t[e].outNavDims.left / 2 - t[e].outNavDims.right / 2 : t[e].navigation.bullets.h_offset_old + t[e].outNavDims.left), w(t[e].navigation.bullets, e)), c(t[e].navigation.thumbnails) && w(t[e].navigation.thumbnails, e), c(t[e].navigation.tabs) && w(t[e].navigation.tabs, e), c(t[e].navigation.arrows) && ("fullscreen" != t[e].sliderLayout && "fullwidth" != t[e].sliderLayout && (t[e].navigation.arrows.left.h_offset_old = void 0 === t[e].navigation.arrows.left.h_offset_old ? parseInt(t[e].navigation.arrows.left.h_offset, 0) : t[e].navigation.arrows.left.h_offset_old, t[e].navigation.arrows.left.h_offset = (t[e].navigation.arrows.left.h_align, t[e].navigation.arrows.left.h_offset_old), t[e].navigation.arrows.right.h_offset_old = void 0 === t[e].navigation.arrows.right.h_offset_old ? parseInt(t[e].navigation.arrows.right.h_offset, 0) : t[e].navigation.arrows.right.h_offset_old, t[e].navigation.arrows.right.h_offset = (t[e].navigation.arrows.right.h_align, t[e].navigation.arrows.right.h_offset_old)), w(t[e].navigation.arrows.left, e), w(t[e].navigation.arrows.right, e)), !1 !== i && (c(t[e].navigation.thumbnails) && a(t[e].navigation.thumbnails, e), c(t[e].navigation.tabs) && a(t[e].navigation.tabs, e)))
        },
        showFirstTime: function(e) {
            g(e), t.hideUnHideNav(e)
        },
        selectNavElement: function(e, i, a, r) {
            for (var o = t[e].cpar[0].getElementsByClassName(a), s = 0; s < o.length; s++) t.gA(o[s], "key") === i ? (o[s].classList.add("selected"), void 0 !== r && r()) : o[s].classList.remove("selected")
        },
        transferParams: function(e, t) {
            if (void 0 !== t)
                for (var i in t.params) e = e.replace(t.params[i].from, t.params[i].to);
            return e
        },
        updateNavElementContent: function(e, i, r, o, s) {
            if (void 0 !== t[e].pr_next_key || void 0 !== t[e].pr_active_key) {
                var n = void 0 === t[e].pr_next_key ? void 0 === t[e].pr_cache_pr_next_key ? t[e].pr_active_key : t[e].pr_cache_pr_next_key : t[e].pr_next_key,
                    l = t.gA(t[e].slides[n], "key"),
                    d = 0,
                    c = !1;
                for (var p in r.enable && t.selectNavElement(e, l, "tp-bullet"), o.enable && t.selectNavElement(e, l, "tp-thumb", (function() {
                        a(o, e)
                    })), s.enable && t.selectNavElement(e, l, "tp-tab", (function() {
                        a(s, e)
                    })), t[e].thumbs) d = !0 === c ? d : p, c = t[e].thumbs[p].id === l || p == l || c;
                var g = (d = parseInt(d, 0)) > 0 ? d - 1 : t[e].slideamount - 1,
                    u = d + 1 == t[e].slideamount ? 0 : d + 1;
                if (!0 === i.enable && i.pi !== g && i.ni !== u) {
                    if (i.pi = g, i.ni = u, i.left.c[0].innerHTML = t.transferParams(i.tmp, t[e].thumbs[g]), u > t[e].slideamount) return;
                    i.right.c[0].innerHTML = t.transferParams(i.tmp, t[e].thumbs[u]), i.right.iholder = i.right.c.find(".tp-arr-imgholder"), i.left.iholder = i.left.c.find(".tp-arr-imgholder"), i.rtl ? (void 0 !== i.left.iholder[0] && tpGS.gsap.set(i.left.iholder, {
                        backgroundImage: "url(" + t[e].thumbs[u].src + ")"
                    }), void 0 !== t[e].thumbs[g] && void 0 !== i.right.iholder[0] && tpGS.gsap.set(i.right.iholder, {
                        backgroundImage: "url(" + t[e].thumbs[g].src + ")"
                    })) : (void 0 !== t[e].thumbs[g] && void 0 !== i.left.iholder[0] && tpGS.gsap.set(i.left.iholder, {
                        backgroundImage: "url(" + t[e].thumbs[g].src + ")"
                    }), void 0 !== i.right.iholder[0] && tpGS.gsap.set(i.right.iholder, {
                        backgroundImage: "url(" + t[e].thumbs[u].src + ")"
                    }))
                }
            }
        },
        createNavigation: function(e) {
            var a = t[e].navigation.arrows,
                r = t[e].navigation.bullets,
                n = t[e].navigation.thumbnails,
                u = t[e].navigation.tabs,
                m = c(a),
                f = c(r),
                y = c(n),
                S = c(u);
            for (var x in o(e), s(e), m && (v(a, e), a.c = t[e].cpar.find(".tparrows")), t[e].slides)
                if (t[e].slides.hasOwnProperty(x) && "true" != t.gA(t[e].slides[x], "not_in_nav")) {
                    var k = jQuery(t[e].slides[t[e].slides.length - 1 - x]),
                        R = jQuery(t[e].slides[x]);
                    f && (t[e].navigation.bullets.rtl ? b(t[e].c, r, k, e) : b(t[e].c, r, R, e)), y && (t[e].navigation.thumbnails.rtl ? _(t[e].c, n, k, "tp-thumb", e) : _(t[e].c, n, R, "tp-thumb", e)), S && (t[e].navigation.tabs.rtl ? _(t[e].c, u, k, "tp-tab", e) : _(t[e].c, u, R, "tp-tab", e))
                }
            f && w(r, e), y && w(n, e), S && w(u, e), (y || S) && t.updateDims(e), t[e].navigation.createNavigationDone = !0, y && jQuery.extend(!0, n, i(e, "thumb")), S && jQuery.extend(!0, u, i(e, "tab")), t[e].c.on("revolution.slide.onafterswap revolution.nextslide.waiting", (function() {
                t.updateNavElementContent(e, a, r, n, u)
            })), d(a), d(r), d(n), d(u), t[e].cpar.on(t.ISM ? "touchstart touchmove" : "mouseenter mousemove", (function(i) {
                void 0 !== i.target && void 0 !== i.target.className && "string" == typeof i.target.className && i.target.className.indexOf("rs-waction") >= 0 || !0 !== t[e].tpMouseOver && t[e].firstSlideAvailable && (t[e].tpMouseOver = !0, g(e), t.ISM && !0 !== t[e].someNavIsDragged && (p(t[e].hideAllNavElementTimer), t[e].hideAllNavElementTimer = setTimeout((function() {
                    t[e].tpMouseOver = !1, h(e)
                }), 150)))
            })), t[e].cpar.on(t.ISM ? "touchend" : "mouseleave ", (function() {
                t[e].tpMouseOver = !1, h(e)
            })), (y || S || "carousel" === t[e].sliderType || t[e].navigation.touch.touchOnDesktop || t[e].navigation.touch.touchenabled && t.ISM) && l(e), t[e].navigation.initialised = !0, t.updateNavElementContent(e, a, r, n, u), t.showFirstTime(e)
        }
    });
    var a = function(e, i) {
            if (void 0 !== e && null != e.mask) {
                var a = "vertical" === e.direction ? e.mask.find(e.single).first().outerHeight(!0) + e.space : e.mask.find(e.single).first().outerWidth(!0) + e.space,
                    r = "vertical" === e.direction ? e.mask.height() : e.mask.width(),
                    o = e.mask.find(e.single + ".selected").data("liindex");
                o = (o = void 0 === (o = e.rtl ? t[i].slideamount - o : o) ? 0 : o) > 0 && 1 === t[i].sdir && e.visibleAmount > 1 ? o - 1 : o;
                var s = r / a,
                    n = "vertical" === e.direction ? e.mask.height() : e.mask.width(),
                    l = 0 - o * a,
                    d = "vertical" === e.direction ? e.wrap.height() : e.wrap.width(),
                    c = l < 0 - (d - n) ? 0 - (d - n) : l,
                    p = t.gA(e.wrap[0], "offset");
                p = void 0 === p ? 0 : p, s > 2 && (c = l - (p + a) <= 0 ? l - (p + a) < 0 - a ? p : c + a : c, c = l - a + p + r < a && l + (Math.round(s) - 2) * a < p ? l + (Math.round(s) - 2) * a : c), c = "vertical" !== e.direction && e.mask.width() >= e.wrap.width() || "vertical" === e.direction && e.mask.height() >= e.wrap.height() ? 0 : c < 0 - (d - n) ? 0 - (d - n) : c > 0 ? 0 : c, e.c.hasClass("dragged") || ("vertical" === e.direction ? e.wrap.data("tmmove", tpGS.gsap.to(e.wrap, .5, {
                    top: c + "px",
                    ease: "power3.inOut"
                })) : e.wrap.data("tmmove", tpGS.gsap.to(e.wrap, .5, {
                    left: c + "px",
                    ease: "power3.inOut"
                })), e.wrap.data("offset", c))
            }
        },
        r = function(e, i, a, r, o, s) {
            var n = a.parent().find(".tp-" + s + "s"),
                l = n.find(".tp-" + s + "s-inner-wrapper"),
                d = n.find(".tp-" + s + "-mask"),
                c = "vertical" === r.direction ? r.cw : r.cw * o + parseFloat(r.space) * (o - 1),
                p = "vertical" === r.direction ? r.ch * o + parseInt(r.space) * (o - 1) : r.ch,
                g = "vertical" === r.direction ? {
                    width: r.cw + "px"
                } : {
                    height: r.ch + "px"
                };
            if (i.add(tpGS.gsap.set(n, g)), i.add(tpGS.gsap.set(l, {
                    width: c + "px",
                    height: p + "px"
                })), "horizontal" === r.direction) {
                var u = Math.min(c, r.cw * r.visibleAmount + parseFloat(r.space) * (r.visibleAmount - 1));
                i.add(tpGS.gsap.set(d, {
                    width: u + "px",
                    height: p + "px"
                }))
            } else {
                var h = Math.min(p, r.ch * r.visibleAmount + parseFloat(r.space) * (r.visibleAmount - 1));
                i.add(tpGS.gsap.set(d, {
                    width: c + "px",
                    height: h + "px"
                }))
            }
            null !== l.outerWidth() && (t[e].thumbResized = !0);
            var m = l.find(".tp-" + s);
            return m && jQuery.each(m, (function(e, t) {
                "vertical" === r.direction ? i.add(tpGS.gsap.set(t, {
                    top: e * (r.ch + parseInt(void 0 === r.space ? 0 : r.space, 0)),
                    width: r.cw + "px",
                    height: r.ch + "px"
                })) : "horizontal" === r.direction && i.add(tpGS.gsap.set(t, {
                    left: e * (r.cw + parseInt(void 0 === r.space ? 0 : r.space, 0)),
                    width: r.cw + "px",
                    height: r.ch + "px"
                }))
            })), i
        },
        o = function(e) {
            !0 === t[e].navigation.keyboardNavigation && t.document.on("keydown", (function(i) {
                if ("horizontal" == t[e].navigation.keyboard_direction && 39 == i.keyCode || "vertical" == t[e].navigation.keyboard_direction && 40 == i.keyCode) {
                    if (void 0 !== t[e].keydown_time_stamp && (new Date).getTime() - t[e].keydown_time_stamp < 1e3) return;
                    t[e].sc_indicator = "arrow", t[e].sc_indicator_dir = 0, "carousel" === t[e].sliderType && (t[e].ctNavElement = !0), t.callingNewSlide(e, 1, "carousel" === t[e].sliderType)
                }
                if ("horizontal" == t[e].navigation.keyboard_direction && 37 == i.keyCode || "vertical" == t[e].navigation.keyboard_direction && 38 == i.keyCode) {
                    if (void 0 !== t[e].keydown_time_stamp && (new Date).getTime() - t[e].keydown_time_stamp < 1e3) return;
                    t[e].sc_indicator = "arrow", t[e].sc_indicator_dir = 1, "carousel" === t[e].sliderType && (t[e].ctNavElement = !0), t.callingNewSlide(e, -1, "carousel" === t[e].sliderType)
                }
                t[e].keydown_time_stamp = (new Date).getTime()
            }))
        },
        s = function(e) {
            t[e].carousel.scrollTicker = t.carScrollTicker.bind(window, e), !0 !== t[e].navigation.mouseScrollNavigation && "on" !== t[e].navigation.mouseScrollNavigation && "carousel" !== t[e].navigation.mouseScrollNavigation || t[e].c[0].addEventListener("wheel", (function(i) {
                var a = function(e) {
                        var t = 0;
                        return "deltaY" in e || "deltaX" in e ? t = 0 != e.deltaY && -0 != e.deltaY || !(e.deltaX < 0 || e.deltaX > 0) ? e.deltaY : e.deltaX : ("detail" in e && (t = e.detail), "wheelDelta" in e && (t = -e.wheelDelta / 120), "wheelDeltaY" in e && (t = -e.wheelDeltaY / 120)), ((t = navigator.userAgent.match(/mozilla/i) ? 10 * t : t) > 300 || t < -300) && (t /= 10), t
                    }(i),
                    r = !1,
                    o = 0 == t[e].pr_active_key || 0 == t[e].pr_processing_key,
                    s = t[e].pr_active_key == t[e].slideamount - 1 || t[e].pr_processing_key == t[e].slideamount - 1,
                    n = void 0 !== t[e].topc ? t[e].topc[0].getBoundingClientRect() : 0 === t[e].canv.height ? t[e].cpar[0].getBoundingClientRect() : t[e].c[0].getBoundingClientRect(),
                    l = n.top >= 0 && n.bottom <= t.winH ? 1 : n.top >= 0 && n.bottom >= t.winH ? (t.winH - Math.round(n.top)) / n.height : n.top <= 0 && n.bottom <= t.winH ? Math.round(n.bottom) / n.height : 1,
                    d = a < 0 ? -1 : 1,
                    c = t[e].navigation.wheelViewPort;
                if (l = Math.round(100 * l) / 100, "reverse" == t[e].navigation.mouseScrollReverse) {
                    var p = s;
                    s = o, o = p
                }
                if (c - l <= t[e].navigation.threshold / 100 && !(l >= c) && !(n.top >= 0 && -1 === d || n.top <= 0 && 1 === d) && (i.preventDefault(), !t[e].mScrollTween)) {
                    var g = "window" !== t[e].navigation.target && t[e].navigation.target ? t[e].navigation.target : window;
                    t[e].mScrollTween = tpGS.gsap.to(g, {
                        duration: jQuery.fn.revolution.isWebkit() ? .1 : .7,
                        scrollTo: {
                            y: t[e].topc
                        },
                        ease: "power2.out",
                        onComplete: function() {
                            t[e].mScrollTween.kill(), delete t[e].mScrollTween
                        }
                    })
                }
                if (Math.abs(l - c) < .1 || l >= c) return t[e].sc_indicator_dir = "reverse" === t[e].navigation.mouseScrollReverse && d < 0 || "reverse" !== t[e].navigation.mouseScrollReverse && d > 0 ? "reverse" !== t[e].navigation.mouseScrollReverse ? 0 : 1 : "reverse" !== t[e].navigation.mouseScrollReverse ? 1 : 0, "carousel" == t[e].navigation.mouseScrollNavigation || 0 === t[e].sc_indicator_dir && !s || 1 === t[e].sc_indicator_dir && !o ? void 0 === t[e].pr_processing_key && !0 !== t[e].justmouseScrolled && (t[e].sc_indicator = "arrow", "carousel" === t[e].sliderType && (t[e].ctNavElement = !0), t.callingNewSlide(e, 0 === t[e].sc_indicator_dir ? "reverse" === t[e].navigation.mouseScrollReverse ? -1 : 1 : "reverse" === t[e].navigation.mouseScrollReverse ? 1 : -1, "carousel" === t[e].sliderType), t[e].justmouseScrolled = !0, setTimeout((function() {
                    t[e].justmouseScrolled = !1
                }), t[e].navigation.wheelCallDelay)) : !0 !== t[e].justmouseScrolled && (r = !0), !!r || (i.preventDefault(i), !1)
            }), {
                passive: !1
            })
        },
        n = function(e, i) {
            var a = !1;
            for (var r in (void 0 === i.path || t.ISM) && (a = function(e, t) {
                    for (; e && e !== document; e = e.parentNode)
                        if (e.tagName === t) return e;
                    return !1
                }(i.target, e)), i.path) i.path.hasOwnProperty(r) && i.path[r].tagName === e && (a = !0);
            return a
        },
        l = function(e) {
            var i = t[e].carousel,
                a = t.is_android();
            if (jQuery(".bullet, .bullets, .tp-bullets, .tparrows").addClass("noSwipe"), t[e].navigation.touch = void 0 === t[e].navigation.touch ? {} : t[e].navigation.touch, t[e].navigation.touch.swipe_direction = void 0 === t[e].navigation.touch.swipe_direction ? "horizontal" : t[e].navigation.touch.swipe_direction, t[e].cpar.find(".rs-nav-element").rsswipe({
                    allowPageScroll: "vertical",
                    triggerOnTouchLeave: !0,
                    treshold: t[e].navigation.touch.swipe_treshold,
                    fingers: t[e].navigation.touch.swipe_min_touches > 5 ? 1 : t[e].navigation.touch.swipe_min_touches,
                    excludedElements: "button, input, select, textarea, .noSwipe, .rs-waction",
                    tap: function(e, t) {
                        if (void 0 !== t) var i = jQuery(t).closest("rs-thumb");
                        (void 0 !== i && i.length > 0 || (i = jQuery(t).closest("rs-tab")).length > 0 || (i = jQuery(t).closest("rs-bullet")).length > 0) && i.trigger("click")
                    },
                    swipeStatus: function(r, o, s, l, d, c, g) {
                        if ("start" !== o && "move" !== o && "end" !== o && "cancel" != o) return !0;
                        var h = n("RS-THUMB", r),
                            m = n("RS-TAB", r);
                        !1 === h && !1 === m && !0 !== (h = "RS-THUMBS-WRAP" === r.target.tagName || "RS-THUMBS" === r.target.tagName || r.target.className.indexOf("tp-thumb-mask") >= 0) && (m = "RS-TABS-WRAP" === r.target.tagName || "RS-TABS" === r.target.tagName || r.target.className.indexOf("tp-tab-mask") >= 0);
                        var v = "start" === o ? 0 : a ? g[0].end.x - g[0].start.x : r.pageX - i.screenX,
                            f = "start" === o ? 0 : a ? g[0].end.y - g[0].start.y : r.pageY - i.screenY,
                            y = h ? ".tp-thumbs" : ".tp-tabs",
                            w = h ? ".tp-thumb-mask" : ".tp-tab-mask",
                            b = h ? ".tp-thumbs-inner-wrapper" : ".tp-tabs-inner-wrapper",
                            _ = h ? ".tp-thumb" : ".tp-tab",
                            S = h ? t[e].navigation.thumbnails : t[e].navigation.tabs,
                            x = t[e].cpar.find(w),
                            k = x.find(b),
                            R = S.direction,
                            O = "vertical" === R ? k.height() : k.width(),
                            L = "vertical" === R ? x.height() : x.width(),
                            I = "vertical" === R ? x.find(_).first().outerHeight(!0) + parseFloat(S.space) : x.find(_).first().outerWidth(!0) + parseFloat(S.space),
                            M = void 0 === k.data("offset") ? 0 : parseInt(k.data("offset"), 0),
                            T = 0;
                        switch (o) {
                            case "start":
                                "vertical" === R && r.preventDefault(), i.screenX = a ? g[0].end.x : r.pageX, i.screenY = a ? g[0].end.y : r.pageY, t[e].cpar.find(y).addClass("dragged"), M = "vertical" === R ? k.position().top : k.position().left, k.data("offset", M), k.data("tmmove") && k.data("tmmove").pause(), t[e].someNavIsDragged = !0, u(e);
                                break;
                            case "move":
                                if (O <= L) return !1;
                                T = (T = M + ("vertical" === R ? f : v)) > 0 ? "horizontal" === R ? T - k.width() * (T / k.width() * T / k.width()) : T - k.height() * (T / k.height() * T / k.height()) : T;
                                var C = "vertical" === R ? 0 - (k.height() - x.height()) : 0 - (k.width() - x.width());
                                T = T < C ? "horizontal" === R ? T + k.width() * (T - C) / k.width() * (T - C) / k.width() : T + k.height() * (T - C) / k.height() * (T - C) / k.height() : T, "vertical" === R ? tpGS.gsap.set(k, {
                                    top: T + "px"
                                }) : tpGS.gsap.set(k, {
                                    left: T + "px"
                                }), p(t[e].hideAllNavElementTimer);
                                break;
                            case "end":
                            case "cancel":
                                return t[e].navigation.draggable && t[e].navigation.draggable.enable && t[e].navigation.draggable.enable(), i.draggable && i.draggable.enable && i.draggable.enable(), T = M + ("vertical" === R ? f : v), T = (T = "vertical" === R ? T < 0 - (k.height() - x.height()) ? 0 - (k.height() - x.height()) : T : T < 0 - (k.width() - x.width()) ? 0 - (k.width() - x.width()) : T) > 0 ? 0 : T, T = Math.abs(l) > I / 10 ? l <= 0 ? Math.floor(T / I) * I : Math.ceil(T / I) * I : l < 0 ? Math.ceil(T / I) * I : Math.floor(T / I) * I, T = (T = "vertical" === R ? T < 0 - (k.height() - x.height()) ? 0 - (k.height() - x.height()) : T : T < 0 - (k.width() - x.width()) ? 0 - (k.width() - x.width()) : T) > 0 ? 0 : T, "vertical" === R ? tpGS.gsap.to(k, .5, {
                                    top: T + "px",
                                    ease: "power3.out"
                                }) : tpGS.gsap.to(k, .5, {
                                    left: T + "px",
                                    ease: "power3.out"
                                }), T = T || ("vertical" === R ? k.position().top : k.position().left), k.data("offset", T), k.data("distance", l), t[e].cpar.find(y).removeClass("dragged"), t[e].someNavIsDragged = !1, !0
                        }
                    }
                }), "carousel" === t[e].sliderType && t.setupCarousel(e), "carousel" !== t[e].sliderType && (t.ISM && t[e].navigation.touch.touchenabled || !0 !== t.ISM && t[e].navigation.touch.touchOnDesktop)) {
                t[e].navigation.proxy = document.createElement("div");
                var r = t[e].navigation,
                    o = {
                        trigger: t[e].c[0],
                        type: "horizontal" === t[e].navigation.touch.swipe_direction ? "x" : "y",
                        cursor: "pointer",
                        lockAxis: !0,
                        onPress: function(i) {
                            t.closestClass(i.target, "rs-nav-element") && (t[e].navigation.draggable.endDrag(), t[e].navigation.draggable.disable()), r.touch.pressX = i.pageX, r.touch.pressY = i.pageY
                        },
                        onDragStart: function() {
                            var i = void 0 !== t[e].pr_processing_key ? t[e].pr_processing_key : void 0 === t[e].pr_active_key ? 0 : t[e].pr_active_key;
                            "up" === this.getDirection() && i == t[e].slideamount - 1 || "down" === this.getDirection() && 0 === i ? r.forceScroll = !0 : r.forceScroll = !1
                        },
                        onDragEnd: function(i) {
                            t[e].sc_indicator = "arrow";
                            var a, r = this.getDirection(),
                                o = t[e].navigation;
                            if (Math.abs(i.pageY - o.touch.pressY) > Math.abs(i.pageX - o.touch.pressX)) {
                                if ("right" === r || "left" === r) return
                            } else if (Math.abs(i.pageY - o.touch.pressY) > Math.abs(i.pageX - o.touch.pressX) && ("up" === r || "down" === r)) return;
                            return o.forceScroll ? (a = "up" === this.getDirection() ? t[e].cpar.offset().top + t[e].module.height : t.document.scrollTop() - (window.innerHeight - t[e].cpar[0].getBoundingClientRect().top), void(t[e].modal.useAsModal || tpGS.gsap.to([window, "body"], {
                                scrollTo: a
                            }))) : "horizontal" == t[e].navigation.touch.swipe_direction && "left" == r || "vertical" == t[e].navigation.touch.swipe_direction && "up" == r ? (t[e].sc_indicator_dir = 0, t.callingNewSlide(e, 1), !1) : "horizontal" == t[e].navigation.touch.swipe_direction && "right" == r || "vertical" == t[e].navigation.touch.swipe_direction && "down" == r ? (t[e].sc_indicator_dir = 1, t.callingNewSlide(e, -1), !1) : void 0
                        }
                    };
                r.touch.drag_block_vertical || (t.ISM && (o.allowContextMenu = !0), o.allowEventDefault = !0), t[e].navigation.draggable = tpGS.draggable.create(t[e].navigation.proxy, o)
            }
            "carousel" === t[e].sliderType && (t.ISM && 0 == t[e].navigation.touch.mobileCarousel || !0 !== t.ISM && !1 === t[e].navigation.touch.desktopCarousel) && i.wrap.addClass("noswipe"), t[e].navigation.touch.drag_block_vertical && t[e].c.addClass("disableVerticalScroll")
        },
        d = function(e) {
            e.hide_delay = t.isNumeric(parseInt(e.hide_delay, 0)) ? e.hide_delay : .2, e.hide_delay_mobile = t.isNumeric(parseInt(e.hide_delay_mobile, 0)) ? e.hide_delay_mobile : .2
        },
        c = function(e) {
            return e && e.enable
        },
        p = function(e) {
            clearTimeout(e)
        },
        g = function(e) {
            var i = t[e].navigation.maintypes;
            for (var a in i) i.hasOwnProperty(a) && c(t[e].navigation[i[a]]) && void 0 !== t[e].navigation[i[a]].c && (p(t[e].navigation[i[a]].showCall), t[e].navigation[i[a]].showCall = setTimeout((function(i) {
                p(i.hideCall), i.hide_onleave && !0 !== t[e].tpMouseOver || (void 0 === i.tween ? i.tween = m(i) : i.tween.play())
            }), t[e].navigation[i[a]].hide_onleave && !0 !== t[e].tpMouseOver ? 0 : parseInt(t[e].navigation[i[a]].animDelay), t[e].navigation[i[a]]))
        },
        u = function(e) {
            var i = t[e].navigation.maintypes;
            for (var a in i) i.hasOwnProperty(a) && void 0 !== t[e].navigation[i[a]] && t[e].navigation[i[a]].hide_onleave && c(t[e].navigation[i[a]]) && p(t[e].navigation[i[a]].hideCall)
        },
        h = function(e, i) {
            var a = t[e].navigation.maintypes;
            for (var r in a) a.hasOwnProperty(r) && void 0 !== t[e].navigation[a[r]] && t[e].navigation[a[r]].hide_onleave && c(t[e].navigation[a[r]]) && (p(t[e].navigation[a[r]].hideCall), t[e].navigation[a[r]].hideCall = setTimeout((function(e) {
                p(e.showCall), e.tween && e.tween.reverse()
            }), t.ISM ? parseInt(t[e].navigation[a[r]].hide_delay_mobile, 0) : parseInt(t[e].navigation[a[r]].hide_delay, 0), t[e].navigation[a[r]]))
        },
        m = function(e) {
            e.speed = void 0 === e.animSpeed ? .5 : e.animSpeed, e.anims = [], void 0 !== e.anim && void 0 === e.left && e.anims.push(e.anim), void 0 !== e.left && e.anims.push(e.left.anim), void 0 !== e.right && e.anims.push(e.right.anim);
            var t = tpGS.gsap.timeline();
            for (var i in t.add(tpGS.gsap.to(e.c, e.speed, {
                    delay: e.animDelay,
                    opacity: 1,
                    ease: "power3.inOut"
                }), 0), e.anims)
                if (e.anims.hasOwnProperty(i)) switch (e.anims[i]) {
                    case "left":
                        t.add(tpGS.gsap.fromTo(e.c[i], e.speed, {
                            marginLeft: -50
                        }, {
                            delay: e.animDelay,
                            marginLeft: "0px",
                            ease: "power3.inOut"
                        }), 0);
                        break;
                    case "right":
                        t.add(tpGS.gsap.fromTo(e.c[i], e.speed, {
                            marginLeft: 50
                        }, {
                            delay: e.animDelay,
                            marginLeft: "0px",
                            ease: "power3.inOut"
                        }), 0);
                        break;
                    case "top":
                        t.add(tpGS.gsap.fromTo(e.c[i], e.speed, {
                            marginTop: -50
                        }, {
                            delay: e.animDelay,
                            marginTop: "0px",
                            ease: "power3.inOut"
                        }), 0);
                        break;
                    case "bottom":
                        t.add(tpGS.gsap.fromTo(e.c[i], e.speed, {
                            marginTop: 50
                        }, {
                            delay: e.animDelay,
                            marginTop: "0px",
                            ease: "power3.inOut"
                        }), 0);
                        break;
                    case "zoomin":
                        t.add(tpGS.gsap.fromTo(e.c[i], e.speed, {
                            scale: .5
                        }, {
                            delay: e.animDelay,
                            scale: 1,
                            ease: "power3.inOut"
                        }), 0);
                        break;
                    case "zoomout":
                        t.add(tpGS.gsap.fromTo(e.c[i], e.speed, {
                            scale: 1.2
                        }, {
                            delay: e.animDelay,
                            scale: 1,
                            ease: "power3.inOut"
                        }), 0)
                }
            return t.play(), t
        },
        v = function(e, i) {
            e.style = void 0 === e.style ? "" : e.style, e.left.style = void 0 === e.left.style ? "" : e.left.style, e.right.style = void 0 === e.right.style ? "" : e.right.style, void 0 === e.left.c && (e.left.c = jQuery('<rs-arrow style="opacity:0" class="tp-leftarrow tparrows ' + e.style + " " + e.left.style + '">' + e.tmp + "</rs-arrow>"), t[i].c.append(e.left.c)), void 0 === e.right.c && (e.right.c = jQuery('<rs-arrow style="opacity:0"  class="tp-rightarrow tparrows ' + e.style + " " + e.right.style + '">' + e.tmp + "</rs-arrow>"), t[i].c.append(e.right.c)), e[e.rtl ? "left" : "right"].c.on("click", (function() {
                "carousel" === t[i].sliderType && (t[i].ctNavElement = !0), t[i].sc_indicator = "arrow", t[i].sc_indicator_dir = 0, t[i].c.revnext()
            })), e[e.rtl ? "right" : "left"].c.on("click", (function() {
                "carousel" === t[i].sliderType && (t[i].ctNavElement = !0), t[i].sc_indicator = "arrow", t[i].sc_indicator_dir = 1, t[i].c.revprev()
            })), e.padding_top = parseInt(t[i].carousel.padding_top || 0, 0), e.padding_bottom = parseInt(t[i].carousel.padding_bottom || 0, 0), w(e.left, i), w(e.right, i), "outer-left" != e.position && "outer-right" != e.position || (t[i].outernav = !0)
        },
        f = function(e, i, a, r) {
            r = void 0 === r ? e.outerHeight(!0) : r;
            var o = null == t[a] ? 0 : 0 == t[a].canv.height ? t[a].module.height : t[a].canv.height,
                s = "layergrid" == i.container ? "fullscreen" == t[a].sliderLayout ? t[a].module.height / 2 - t[a].gridheight[t[a].level] * t[a].CM.h / 2 : t[a].autoHeight || null != t[a].minHeight && t[a].minHeight > 0 ? o / 2 - t[a].gridheight[t[a].level] * t[a].CM.h / 2 : 0 : 0,
                n = "top" === i.v_align ? {
                    top: "0px",
                    y: Math.round(i.v_offset + s) + "px"
                } : "center" === i.v_align ? {
                    top: "50%",
                    y: Math.round(0 - r / 2 + i.v_offset) + "px"
                } : {
                    top: "100%",
                    y: Math.round(0 - (r + i.v_offset + s)) + "px"
                };
            e.hasClass("outer-bottom") || tpGS.gsap.set(e, n)
        },
        y = function(e, i, a, r) {
            r = void 0 === r ? e.outerWidth() : r;
            var o = "layergrid" === i.container ? t[a].module.width / 2 - t[a].gridwidth[t[a].level] * t[a].CM.w / 2 : 0,
                s = "left" === i.h_align ? {
                    left: "0px",
                    x: Math.round(i.h_offset + o) + "px"
                } : "center" === i.h_align ? {
                    left: "50%",
                    x: Math.round(0 - r / 2 + i.h_offset) + "px"
                } : {
                    left: "100%",
                    x: Math.round(0 - (r + i.h_offset + o)) + "px"
                };
            tpGS.gsap.set(e, s)
        },
        w = function(e, i) {
            if (null != e && void 0 !== e.c) {
                var a = "fullwidth" == t[i].sliderLayout || "fullscreen" == t[i].sliderLayout ? t[i].module.width : t[i].canv.width,
                    r = e.c.outerWidth(),
                    o = e.c.outerHeight();
                if (!(r <= 0 || o <= 0) && (f(e.c, e, i, o), y(e.c, e, i, r), "outer-left" === e.position ? tpGS.gsap.set(e.c, {
                        left: 0 - r + "px",
                        x: e.h_offset + "px"
                    }) : "outer-right" === e.position && tpGS.gsap.set(e.c, {
                        right: 0 - r + "px",
                        x: e.h_offset + "px"
                    }), "tp-thumb" === e.type || "tp-tab" === e.type)) {
                    var s = parseInt(e.padding_top || 0, 0),
                        n = parseInt(e.padding_bottom || 0, 0),
                        l = {},
                        d = {};
                    e.maxw > a && "outer-left" !== e.position && "outer-right" !== e.position ? (l.left = "0px", l.x = 0, l.maxWidth = a - 2 * e.wpad + "px", d.maxWidth = a - 2 * e.wpad + "px") : (l.maxWidth = e.maxw, d.maxWidth = a + "px"), e.maxh + 2 * e.wpad > t[i].conh && "outer-bottom" !== e.position && "outer-top" !== e.position ? (l.top = "0px", l.y = 0, l.maxHeight = s + n + (t[i].conh - 2 * e.wpad) + "px", d.maxHeight = s + n + (t[i].conh - 2 * e.wpad) + "px") : (l.maxHeight = e.maxh + "px", d.maxHeight = e.maxh + "px"), e.mask = void 0 === e.mask ? e.c.find("rs-navmask") : e.mask, (e.mhoff > 0 || e.mvoff > 0) && (d.padding = e.mvoff + "px " + e.mhoff + "px"), e.span ? ("layergrid" == e.container && "outer-left" !== e.position && "outer-right" !== e.position && (s = n = 0), "vertical" === e.direction ? (l.maxHeight = s + n + (t[i].conh - 2 * e.wpad) + "px", l.height = s + n + (t[i].conh - 2 * e.wpad) + "px", l.top = 0, l.y = 0, d.maxHeight = s + n + Math.min(e.maxh, t[i].conh - 2 * e.wpad) + "px", tpGS.gsap.set(e.c, l), tpGS.gsap.set(e.mask, d), f(e.mask, e, i)) : "horizontal" === e.direction && (l.maxWidth = "100%", l.width = a - 2 * e.wpad + "px", l.left = 0, l.x = 0, d.maxWidth = e.maxw >= a ? "100%" : Math.min(e.maxw, a) + "px", tpGS.gsap.set(e.c, l), tpGS.gsap.set(e.mask, d), y(e.mask, e, i))) : (tpGS.gsap.set(e.c, l), tpGS.gsap.set(e.mask, d))
                }
            }
        },
        b = function(e, i, a, r) {
            0 === e.find(".tp-bullets").length && (i.style = void 0 === i.style ? "" : i.style, i.c = jQuery('<rs-bullets style="opacity:0"  class="tp-bullets ' + i.style + " " + i.direction + " nav-pos-hor-" + i.h_align + " nav-pos-ver-" + i.v_align + " nav-dir-" + i.direction + '"></rs-bullets>'));
            var o = a.data("key"),
                s = i.tmp;
            void 0 !== t[r].thumbs[a.index()] && jQuery.each(t[r].thumbs[a.index()].params, (function(e, t) {
                s = s.replace(t.from, t.to)
            }));
            var n = jQuery('<rs-bullet data-key="' + o + '" class="tp-bullet">' + s + "</rs-bullet>");
            void 0 !== t[r].thumbs[a.index()] && n.find(".tp-bullet-image").css({
                backgroundImage: "url(" + t[r].thumbs[a.index()].src + ")"
            }), i.c.append(n), e.append(i.c);
            var l = i.c.find(".tp-bullet").length,
                d = n.outerWidth(),
                c = n.outerHeight(),
                p = d + parseInt(void 0 === i.space ? 0 : i.space, 0),
                g = c + parseInt(void 0 === i.space ? 0 : i.space, 0);
            "vertical" === i.direction ? (n.css({
                top: (l - 1) * g + "px",
                left: "0px"
            }), i.c.css({
                height: (l - 1) * g + c,
                width: d
            })) : (n.css({
                left: (l - 1) * p + "px",
                top: "0px"
            }), i.c.css({
                width: (l - 1) * p + d,
                height: c
            })), n.on("click", (function() {
                "carousel" === t[r].sliderType && (t[r].ctNavElement = !0), t[r].sc_indicator = "bullet", e.revcallslidewithid(o), e.find(".tp-bullet").removeClass("selected"), jQuery(this).addClass("selected")
            })), i.padding_top = parseInt(t[r].carousel.padding_top || 0, 0), i.padding_bottom = parseInt(t[r].carousel.padding_bottom || 0, 0), "outer-left" != i.position && "outer-right" != i.position || (t[r].outernav = !0)
        },
        _ = function(e, i, a, r, o) {
            var s = "tp-thumb" === r ? ".tp-thumbs" : ".tp-tabs",
                n = "tp-thumb" === r ? ".tp-thumb-mask" : ".tp-tab-mask",
                l = "tp-thumb" === r ? ".tp-thumbs-inner-wrapper" : ".tp-tabs-inner-wrapper",
                d = "tp-thumb" === r ? ".tp-thumb" : ".tp-tab",
                c = "tp-thumb" === r ? ".tp-thumb-image" : ".tp-tab-image",
                p = "tp-thumb" === r ? "rs-thumb" : "rs-tab";
            i.type = r, i.visibleAmount = i.visibleAmount > t[o].slideamount ? t[o].slideamount : i.visibleAmount, i.sliderLayout = t[o].sliderLayout, void 0 === i.c && (i.wpad = i.wrapper_padding, i.c = jQuery("<" + p + 's style="opacity:0" class="nav-dir-' + i.direction + " nav-pos-ver-" + i.v_align + " nav-pos-hor-" + i.h_align + " rs-nav-element " + r + "s " + (!0 === i.span ? "tp-span-wrapper" : "") + " " + i.position + " " + (void 0 === i.style ? "" : i.style) + '"><rs-navmask class="' + r + '-mask" style="overflow:hidden;position:relative"><' + p + 's-wrap class="' + r + 's-inner-wrapper" style="position:relative;"></' + p + "s-wrap></rs-navmask></" + p + "s>"), i.c.css({
                overflow: "visible",
                position: "outer-top" === i.position || "outer-bottom" === i.position ? "relative" : "absolute",
                background: i.wrapper_color,
                padding: i.wpad + "px",
                boxSizing: "contet-box"
            }), "outer-top" === i.position ? e.parent().prepend(i.c) : "outer-bottom" === i.position ? e.after(i.c) : e.append(i.c), "outer-left" !== i.position && "outer-right" !== i.position || tpGS.gsap.set(t[o].c, {
                overflow: "visible"
            }), i.padding_top = parseInt(t[o].carousel.padding_top || 0, 0), i.padding_bottom = parseInt(t[o].carousel.padding_bottom || 0, 0), "outer-left" != i.position && "outer-right" != i.position || (t[o].outernav = !0));
            var g = a.data("key"),
                u = i.c.find(n),
                h = u.find(l),
                m = i.tmp;
            i.space = parseFloat(i.space) || 0, i.maxw = "horizontal" === i.direction ? i.width * i.visibleAmount + i.space * (i.visibleAmount - 1) : i.width, i.maxh = "horizontal" === i.direction ? i.height : i.height * i.visibleAmount + i.space * (i.visibleAmount - 1), i.maxw += 2 * i.mhoff, i.maxh += 2 * i.mvoff, void 0 !== t[o].thumbs[a.index()] && jQuery.each(t[o].thumbs[a.index()].params, (function(e, t) {
                m = m.replace(t.from, t.to)
            }));
            var v = jQuery("<" + p + ' data-liindex="' + a.index() + '" data-key="' + g + '" class="' + r + '" style="width:' + i.width + "px;height:" + i.height + 'px;">' + m + "<" + p + ">");
            void 0 !== t[o].thumbs[a.index()] && v.find(c).css({
                backgroundImage: "url(" + t[o].thumbs[a.index()].src + ")"
            }), h.append(v);
            var f = i.c.find(d).length,
                y = v.outerWidth(),
                w = v.outerHeight(),
                b = y + parseInt(void 0 === i.space ? 0 : i.space, 0),
                _ = w + parseInt(void 0 === i.space ? 0 : i.space, 0);
            "vertical" === i.direction ? (v.css({
                top: (f - 1) * _ + "px",
                left: "0px"
            }), h.css({
                height: (f - 1) * _ + w,
                width: y
            })) : (v.css({
                left: (f - 1) * b + "px",
                top: "0px"
            }), h.css({
                width: (f - 1) * b + y,
                height: w
            })), u.css({
                maxWidth: i.maxw + "px",
                maxHeight: i.maxh + "px"
            }), i.c.css({
                maxWidth: i.maxw + "px",
                maxHeight: i.maxh + "px"
            }), v.on("click", (function() {
                t[o].sc_indicator = "bullet", "carousel" === t[o].sliderType && (t[o].ctNavElement = !0);
                var i = e.parent().find(l).data("distance");
                i = void 0 === i ? 0 : i, Math.abs(i) < 10 && (e.revcallslidewithid(g), e.parent().find(s).removeClass("selected"), jQuery(this).addClass("selected"))
            }))
        },
        S = function(e, i, a) {
            return null == e || void 0 === e.c || (e.hide_under > t[i].canv.width || t[i].canv.width > e.hide_over ? (!0 !== e.tpForceNotVisible && (e.c.addClass("tp-forcenotvisible"), e.isVisible = !1, a = !0), e.tpForceNotVisible = !0) : (!1 !== e.tpForceNotVisible && (e.c.removeClass("tp-forcenotvisible"), e.isVisible = !0, a = !0), e.tpForceNotVisible = !1)), a
        };
    window.RS_MODULES = window.RS_MODULES || {}, window.RS_MODULES.navigation = {
        loaded: !0,
        version: "6.6.0"
    }, window.RS_MODULES.checkMinimal && window.RS_MODULES.checkMinimal()
}(jQuery),
function(e) {
    "use strict";
    window._R_is_Editor ? RVS._R = void 0 === RVS._R ? {} : RVS._R : window._R_is_Editor = !1, jQuery.fn.revolution = jQuery.fn.revolution || {};
    var t = _R_is_Editor ? RVS._R : jQuery.fn.revolution;
    jQuery.extend(!0, t, {
        bgW: function(e, i) {
            return _R_is_Editor ? RVS.RMD.width : "carousel" === t[e].sliderType ? t[e].justifyCarousel ? t[e].carousel.slide_widths[void 0 !== i ? i : t[e].carousel.focused] : t[e].carousel.slide_width : t[e].module.width
        },
        bgH: function(e, i) {
            return _R_is_Editor ? RVS.RMD.height : "carousel" === t[e].sliderType ? t[e].carousel.slide_height : t[e].module.height
        },
        getPZSides: function(e, t, i, a, r, o, s) {
            var n = e * i,
                l = t * i,
                d = Math.abs(a - n),
                c = Math.abs(r - l),
                p = new Object;
            return p.l = (0 - o) * d, p.r = p.l + n, p.t = (0 - s) * c, p.b = p.t + l, p.h = o, p.v = s, p
        },
        getPZCorners: function(e, i, a, r) {
            var o = e.bgposition.split(" ") || "center center",
                s = "center" == o[0] ? "50%" : "left" == o[0] || "left" == o[1] ? "0%" : "right" == o[0] || "right" == o[1] ? "100%" : o[0],
                n = "center" == o[1] ? "50%" : "top" == o[0] || "top" == o[1] ? "0%" : "bottom" == o[0] || "bottom" == o[1] ? "100%" : o[1];
            s = parseInt(s, 0) / 100 || 0, n = parseInt(n, 0) / 100 || 0;
            var l = new Object;
            return l.start = t.getPZSides(r.start.width, r.start.height, r.start.scale, i, a, s, n), l.end = t.getPZSides(r.start.width, r.start.height, r.end.scale, i, a, s, n), l
        },
        getPZValues: function(e) {
            var t = e.panzoom.split(";"),
                i = {
                    duration: 10,
                    ease: "none",
                    scalestart: 1,
                    scaleend: 1,
                    rotatestart: .01,
                    rotateend: 0,
                    blurstart: 0,
                    blurend: 0,
                    offsetstart: "0/0",
                    offsetend: "0/0"
                };
            for (var a in t)
                if (t.hasOwnProperty(a)) {
                    var r = t[a].split(":"),
                        o = r[0],
                        s = r[1];
                    switch (o) {
                        case "d":
                            i.duration = parseInt(s, 0) / 1e3;
                            break;
                        case "e":
                            i.ease = s;
                            break;
                        case "ss":
                            i.scalestart = parseInt(s, 0) / 100;
                            break;
                        case "se":
                            i.scaleend = parseInt(s, 0) / 100;
                            break;
                        case "rs":
                            i.rotatestart = parseInt(s, 0);
                            break;
                        case "re":
                            i.rotateend = parseInt(s, 0);
                            break;
                        case "bs":
                            i.blurstart = parseInt(s, 0);
                            break;
                        case "be":
                            i.blurend = parseInt(s, 0);
                            break;
                        case "os":
                            i.offsetstart = s;
                            break;
                        case "oe":
                            i.offsetend = s
                    }
                }
            return i.offsetstart = i.offsetstart.split("/") || [0, 0], i.offsetend = i.offsetend.split("/") || [0, 0], i.rotatestart = 0 === i.rotatestart ? .01 : i.rotatestart, e.panvalues = i, e.bgposition = "center center" == e.bgposition ? "50% 50%" : e.bgposition, i
        },
        pzCalcL: function(e, i, a) {
            var r, o, s, n, l, d, c = void 0 === a.panvalues ? jQuery.extend(!0, {}, t.getPZValues(a)) : jQuery.extend(!0, {}, a.panvalues),
                p = c.offsetstart,
                g = c.offsetend,
                u = {
                    start: {
                        width: e,
                        height: _R_is_Editor ? e / a.loadobj.width * a.loadobj.height : e / a.owidth * a.oheight,
                        rotation: Math.PI / 180 * c.rotatestart,
                        rotationV: c.rotatestart,
                        scale: c.scalestart,
                        transformOrigin: "0% 0%"
                    },
                    end: {
                        rotation: Math.PI / 180 * c.rotateend,
                        rotationV: c.rotateend,
                        scale: c.scaleend
                    }
                };
            c.scalestart, a.owidth, a.oheight, c.scaleend, a.owidth, a.oheight;
            return u.start.height < i && (d = i / u.start.height, u.start.height = i, u.start.width = u.start.width * d), .01 === c.rotatestart && 0 === c.rotateend && (delete u.start.rotation, delete u.end.rotation), r = t.getPZCorners(a, e, i, u), p[0] = parseFloat(p[0]) + r.start.l, g[0] = parseFloat(g[0]) + r.end.l, p[1] = parseFloat(p[1]) + r.start.t, g[1] = parseFloat(g[1]) + r.end.t, o = r.start.r - r.start.l, s = r.start.b - r.start.t, n = r.end.r - r.end.l, l = r.end.b - r.end.t, p[0] = p[0] > 0 ? 0 : o + p[0] < e ? e - o : p[0], g[0] = g[0] > 0 ? 0 : n + g[0] < e ? e - n : g[0], p[1] = p[1] > 0 ? 0 : s + p[1] < i ? i - s : p[1], g[1] = g[1] > 0 ? 0 : l + g[1] < i ? i - l : g[1], u.start.x = p[0], u.start.y = p[1], u.end.x = g[0], u.end.y = g[1], u.end.ease = c.ease, u
        },
        pzDrawShadow: function(e, i, a) {
            ("animating" === i.currentState || null == i.panFake || i.pzLastFrame) && (i.pzLastFrame = !1, i.shadowCTX.clearRect(0, 0, i.shadowCanvas.width, i.shadowCanvas.height), i.shadowCTX.save(), void 0 !== a.rotation ? i.shadowCTX.transform(Math.cos(a.rotation) * a.scale, Math.sin(a.rotation) * a.scale, Math.sin(a.rotation) * -a.scale, Math.cos(a.rotation) * a.scale, a.x, a.y) : i.shadowCTX.transform(a.scale, 0, 0, a.scale, a.x, a.y), i.shadowCTX.drawImage(i.loadobj.img, 0, 0, a.width, a.height), i.shadowCTX.restore()), "animating" !== i.currentState ? null != i.panFake ? (i.panFake.visible || (i.panFake.visible = !0, i.panFake.img.style.opacity = 1, i.canvas.style.opacity = 0), tpGS.gsap.set(i.panFake.img, {
                width: a.width,
                height: a.height,
                force3D: !0,
                x: a.x,
                y: a.y,
                transformOrigin: "0% 0%",
                rotationZ: a.rotationV + "deg",
                scale: a.scale
            }), void 0 !== a.blur && (i.panFake.img.style.filter = 0 === a.blur ? "none" : "blur(" + a.blur + "px)")) : (t.updateSlideBGs(e, a.slidekey, i, !0), void 0 !== a.blur && (i.canvas.style.filter = 0 === a.blur ? "none" : "blur(" + a.blur + "px)")) : (void 0 !== i.panFake && !1 !== i.panFake.visible && (i.panFake.visible = !1, i.panFake.img.style.opacity = 0, i.canvas.style.opacity = 1, i.panFake.img.style.filter = "none"), void 0 !== a.blur && i.canvasFilter ? i.canvasFilterBlur = a.blur : i.canvas.style.filter = 0 === a.blur ? "none" : "blur(" + a.blur + "px)")
        },
        startPanZoom: function(e, i, a, r, o, s) {
            var n = _R_is_Editor ? e : e.data();
            if (void 0 !== n.panzoom && null !== n.panzoom) {
                var l = _R_is_Editor ? n : t[i].sbgs[s];
                _R_is_Editor || "carousel" !== t[i].sliderType || (t[i].carousel.justify && void 0 === t[i].carousel.slide_widths && t.setCarouselDefaults(i, !0), t[i].carousel.justify || (void 0 === t[i].carousel.slide_width && (t[i].carousel.slide_width = !0 !== t[i].carousel.stretch ? t[i].gridwidth[t[i].level] * (0 === t[i].CM.w ? 1 : t[i].CM.w) : t[i].canv.width), void 0 === t[i].carousel.slide_height && (t[i].carousel.slide_height = !0 !== t[i].carousel.stretch ? t[i].gridheight[t[i].level] * (0 === t[i].CM.w ? 1 : t[i].CM.w) : t[i].canv.height)));
                var d, c = t.getmDim(i, r, l),
                    p = t.pzCalcL(c.width, c.height, n);
                l.pzAnim = p, _R_is_Editor || (t[i].panzoomTLs = void 0 === t[i].panzoomTLs ? {} : t[i].panzoomTLs, t[i].panzoomBGs = void 0 === t[i].panzoomBGs ? {} : t[i].panzoomBGs, void 0 === t[i].panzoomBGs[r] && (t[i].panzoomBGs[r] = e), d = t[i].panzoomTLs[r]), a = a || 0, void 0 !== d && (d.pause(), d.kill(), d = void 0), d = tpGS.gsap.timeline({
                    paused: !0
                }), n.panvalues.duration = NaN === n.panvalues.duration || void 0 === n.panvalues.duration ? 10 : n.panvalues.duration, _R_is_Editor || void 0 === n || void 0 === l || (l.panvalues = n.panvalues), void 0 !== l && (void 0 === l.shadowCanvas && (l.shadowCanvas = document.createElement("canvas"), l.shadowCTX = l.shadowCanvas.getContext("2d"), l.shadowCanvas.style.background = "transparent", l.shadowCanvas.style.opacity = 1), l.shadowCanvas.width !== c.width && (l.shadowCanvas.width = c.width), l.shadowCanvas.height !== c.height && (l.shadowCanvas.height = c.height), p.slideindex = r, p.slidekey = _R_is_Editor ? void 0 : s, p.start.slidekey = p.slidekey, t.pzDrawShadow(i, l, p.start), p.end.onUpdate = function() {
                    t.pzDrawShadow(i, l, p.start)
                }, l.panStart = jQuery.extend(!0, {}, p.start), void 0 === n.panvalues.blurstart || void 0 === n.panvalues.blurend || 0 === n.panvalues.blurstart && 0 === n.panvalues.blurend || (p.start.blur = n.panvalues.blurstart, p.end.blur = n.panvalues.blurend), (!_R_is_Editor && void 0 === p.start.blur && !t.isFF || window.isSafari11 && t.ISM) && (l.panFake = void 0 === l.panFake ? {
                    img: l.loadobj.img.cloneNode(!0)
                } : l.panFake, void 0 !== l.panFake && (!0 !== l.panFake.appended && (l.panFake.appended = !0, l.sbg.appendChild(l.panFake.img), l.panFake.img.style.position = "absolute", l.panFake.img.style.display = "block", l.panFake.img.style.zIndex = 0, l.panFake.img.style.opacity = 0, l.panFake.img.style.top = "0px", l.panFake.img.style.left = "0px"), l.panFake.img.width = p.start.width, l.panFake.img.height = p.start.height)), d.add(tpGS.gsap.to(p.start, n.panvalues.duration, p.end), 0), d.progress(a), "play" !== o && "first" !== o || d.play(), _R_is_Editor ? RVS.TL[RVS.S.slideId].panzoom = d : t[i].panzoomTLs[r] = d)
            }
        }
    }), window.RS_MODULES = window.RS_MODULES || {}, window.RS_MODULES.panzoom = {
        loaded: !0,
        version: "6.6.0"
    }, window.RS_MODULES.checkMinimal && window.RS_MODULES.checkMinimal()
}(jQuery),
function(e) {
    "use strict";
    jQuery.fn.revolution = jQuery.fn.revolution || {};
    var t = jQuery.fn.revolution;
    jQuery.extend(!0, t, {
        checkForParallax: function(e) {
            var r = t[e].parallax;
            if (!r.done) {
                if (r.done = !0, t.ISM && r.disable_onmobile) return !1;
                if ("3D" == r.type || "3d" == r.type) {
                    if (t.addSafariFix(e), tpGS.gsap.set(t[e].c, {
                            overflow: r.ddd_overflow
                        }), tpGS.gsap.set(t[e].canvas, {
                            overflow: r.ddd_overflow
                        }), ("carousel" != t[e].sliderType || "carousel" == t[e].sliderType && "mousedrag" == t[e].parallax.type) && r.ddd_shadow) {
                        var o = jQuery('<div class="dddwrappershadow"></div>');
                        tpGS.gsap.set(o, {
                            force3D: "auto",
                            transformPerspective: 1600,
                            transformOrigin: "50% 50%",
                            width: "100%",
                            height: "100%",
                            position: "absolute",
                            top: 0,
                            left: 0,
                            zIndex: 0
                        }), t[e].c.prepend(o)
                    }
                    for (var s in t[e].slides) t[e].slides.hasOwnProperty(s) && i(jQuery(t[e].slides[s]), e);
                    t[e].c.find("rs-static-layers").length > 0 && (tpGS.gsap.set(t[e].c.find("rs-static-layers"), {
                        top: 0,
                        left: 0,
                        width: "100%",
                        height: "100%"
                    }), i(t[e].c.find("rs-static-layers"), e))
                }
                r.pcontainers = {}, r.bgcontainers = [], r.bgcontainer_depths = [], r.speed = void 0 === r.speed ? 0 : parseInt(r.speed, 0), r.speedbg = void 0 === r.speedbg ? 0 : parseInt(r.speedbg, 0), r.speedls = void 0 === r.speedls ? 0 : parseInt(r.speedls, 0), t[e].c.find("rs-slide rs-sbg-wrap, rs-slide rs-bgvideo").each((function() {
                    var i = jQuery(this),
                        a = i.data("parallax");
                    window.isSafari11 || (t[e].parZ = 1), void 0 !== (a = "on" == a || !0 === a ? 1 : a) && "off" !== a && !1 !== a && (r.bgcontainers.push(i.closest("rs-sbg-px")), r.bgcontainer_depths.push(t[e].parallax.levels[parseInt(a, 0) - 1] / 100))
                }));
                for (s = 1; s <= r.levels.length; s++) {
                    for (var n in t[e].slides)
                        if (t[e].slides.hasOwnProperty(n)) {
                            var l = (c = t[e].slides[n]).dataset.key;
                            void 0 === r.pcontainers[l] && (r.pcontainers[l] = {}), a(s, r, c, r.pcontainers[l])
                        }
                    l = "static";
                    void 0 === r.pcontainers[l] && (r.pcontainers[l] = {}), a(s, r, t[e].slayers[0], r.pcontainers[l]), JSON.stringify(r.pcontainers[l]) == JSON.stringify({}) && delete r.pcontainers[l]
                }
                if ("mouse" == r.type || "mousedrag" == r.type || "mousescroll" == r.type || "3D" == r.type || "3d" == r.type) {
                    var d = "rs-slide .dddwrapper, .dddwrappershadow, rs-slide .dddwrapper-layer, rs-static-layers .dddwrapper-layer";
                    for (var n in "carousel" === t[e].sliderType && (d = "rs-slide .dddwrapper, rs-slide .dddwrapper-layer, rs-static-layers .dddwrapper-layer"), r.sctors = {}, t[e].slides)
                        if (t[e].slides.hasOwnProperty(n)) {
                            var c;
                            l = (c = t[e].slides[n]).dataset.key;
                            r.sctors[l] = c.querySelectorAll(d)
                        }
                    t[e].slayers[0] && (r.sctors.static = t[e].slayers[0].querySelectorAll(d)), r.mouseEntered = !1, t[e].c.on("mouseenter", (function(i) {
                        var a = t[e].c.offset().top,
                            o = t[e].c.offset().left;
                        r.mouseEnterX = i.pageX - o, r.mouseEnterY = i.pageY - a, r.mouseEntered = !0
                    })), r.parallaxHandler = this.updateParallax.bind(this, e, r), r.hasAlreadyPermission = !1, "mousedrag" != r.type && t[e].c.on("mousemove.hoverdir, mouseleave.hoverdir, trigger3dpath", (function(e) {
                        r.eventData = e, void 0 !== r.frame && "mouseleave" !== e.type || (r.frame = window.requestAnimationFrame(r.parallaxHandler))
                    })), t.ISM && (t.modulesNeedOrientationListener = null == t.modulesNeedOrientationListener ? {} : t.modulesNeedOrientationListener, t.modulesNeedOrientationListener[e] = !0, t.addDeviceOrientationListener(e))
                }
                var p = t[e].scrolleffect;
                p.set && (p.multiplicator_layers = parseFloat(p.multiplicator_layers), p.multiplicator = parseFloat(p.multiplicator)), void 0 !== p._L && 0 === p._L.length && (p._L = !1), void 0 !== p.bgs && 0 === p.bgs.length && (p.bgs = !1)
            }
        },
        removeIOSPermissionWait: function() {
            document.querySelectorAll(".iospermaccwait").forEach((function(e) {
                e.classList.add("permanenthidden")
            }))
        },
        addDeviceOrientationListener: function(e) {
            var i = t[e].parallax;
            window.addEventListener("deviceorientation", (function(a) {
                t.modulesNeedOrientationListener[e] && (t.modulesNeedOrientationListener[e] = !1, t.removeIOSPermissionWait()), i.eventData = a, void 0 === i.frame && (i.frame = window.requestAnimationFrame(i.parallaxHandler))
            }))
        },
        getAccelerationPermission: function(e) {
            DeviceMotionEvent.requestPermission().then((function(e) {
                if ("granted" == e)
                    for (var i in t.modulesNeedOrientationListener) t.modulesNeedOrientationListener.hasOwnProperty(i) && (t.modulesNeedOrientationListener[i] = !1, t.removeIOSPermissionWait(), t.addDeviceOrientationListener(i))
            }))
        },
        getLayerParallaxOffset: function(e, i, a) {
            return void 0 !== t[e].parallax && void 0 !== t[e].parallax.pcontainers && void 0 !== t[e].parallax.pcontainers[t[e]._L[i].slidekey] && void 0 !== t[e].parallax.pcontainers[t[e]._L[i].slidekey][i] ? Math.abs(t[e].parallax.pcontainers[t[e]._L[i].slidekey][i]["offs" + a]) : 0
        },
        updateParallax: function(e, i) {
            i.frame && (i.frame = window.cancelAnimationFrame(i.frame));
            var a, r, o = i.eventData,
                s = t[e].c.offset().left,
                n = t[e].c.offset().top,
                l = t[e].canv.width,
                d = t[e].canv.height,
                c = i.speed / 1e3 || 3;
            if ("mousedrag" == i.type ? (r = -20 * t[e].carousel.delta, a = -20 * t[e].carousel.delta, t[e].carousel.fromWheel ? "v" === t[e].carousel.orientation ? a = 0 : r = 0 : "v" === t[e].carousel.orientation ? a = t[e].carousel.cX - t[e].carousel.lerpX : r = t[e].carousel.cY - t[e].carousel.lerpY) : "enterpoint" == i.origo && "deviceorientation" !== o.type ? (!1 === i.mouseEntered && (i.mouseEnterX = o.pageX - s, i.mouseEnterY = o.pageY - n, i.mouseEntered = !0), a = i.mouseEnterX - (o.pageX - s), r = i.mouseEnterY - (o.pageY - n), c = i.speed / 1e3 || .4) : "deviceorientation" !== o.type && (a = l / 2 - (o.pageX - s), r = d / 2 - (o.pageY - n)), ("mousedrag" != t[e].parallax.type || t[e].carousel.isPressed) && o && "deviceorientation" == o.type) {
                var p, g, u;
                p = o.beta - 60, g = o.gamma, u = p;
                var h = Math.abs(i.orientationX - g) > 1 || Math.abs(i.orientationY - u) > 1;
                if (i.orientationX = g, i.orientationY = u, !h) return;
                if (t.winW > t.getWinH(e)) {
                    var m = g;
                    g = u, u = m
                }
                a = 360 / l * (g *= 1.5), r = 180 / d * (u *= 1.5)
            }
            for (var v in !o || "mouseleave" !== o.type && "mouseout" !== o.type ? "mousedrag" == t[e].parallax.type && t[e].carousel.isPressed && ("v" === t[e].carousel.orientation && "same" == i.car_dir && (a = 0), "same" == i.car_dir ? "v" === t[e].carousel.orientation ? a = 0 : r = 0 : "opposite" == i.car_dir && ("v" === t[e].carousel.orientation ? (a = r, r = 0) : (r = a, a = 0)), "v" === t[e].carousel.orientation ? (r *= i.car_smulti, a *= i.car_omulti) : (r *= i.car_omulti, a *= i.car_smulti)) : i.mouseEntered = !1, i.pcontainers)
                if (i.pcontainers.hasOwnProperty(v)) {
                    var f = !1;
                    if ("mousedrag" == i.type && !t[e].carousel.justify)
                        for (var y = 0; y < t[e].slideamount; y++) t[e].carousel.trackArr[y].elem.getAttribute("data-key") === v && Math.abs(t[e].carousel.trackArr[y].progress <= 1) && (f = !0);
                    if (void 0 === t[e].activeRSSlide || "static" === v || f && "all" == i.car_env || t[e].slides[t[e].activeRSSlide].dataset.key === v)
                        for (var y in i.pcontainers[v])
                            if (i.pcontainers[v].hasOwnProperty(y)) {
                                var w = i.pcontainers[v][y];
                                w.pl = "3D" == i.type || "3d" == i.type ? w.depth / 200 : w.depth / 100, w.offsh = a * w.pl, w.offsv = r * w.pl, "mousescroll" == i.type ? tpGS.gsap.to(w.tpw, c, {
                                    force3D: "auto",
                                    x: w.offsh,
                                    ease: "power3.out",
                                    overwrite: "all"
                                }) : tpGS.gsap.to(w.tpw, c, {
                                    force3D: "auto",
                                    x: w.offsh,
                                    y: w.offsv,
                                    ease: "power3.out",
                                    overwrite: "all"
                                })
                            }
                }
            if ("3D" == i.type || "3d" == i.type)
                for (var v in i.sctors)
                    if (i.sctors.hasOwnProperty(v) && (void 0 === t[e].activeRSSlide || "static" === v || t[e].slides[t[e].activeRSSlide].dataset.key === v || t.isFF))
                        for (var y in i.sctors[v])
                            if (i.sctors[v].hasOwnProperty(y)) {
                                n = jQuery(i.sctors[v][y]);
                                var b = t.isFirefox() ? Math.min(25, i.levels[i.levels.length - 1]) / 200 : i.levels[i.levels.length - 1] / 200,
                                    _ = a * b,
                                    S = r * b,
                                    x = 0 == t[e].canv.width ? 0 : Math.round(a / t[e].canv.width * b * 100) || 0,
                                    k = 0 == t[e].canv.height ? 0 : Math.round(r / t[e].canv.height * b * 100) || 0,
                                    R = n.closest("rs-slide"),
                                    O = 0,
                                    L = !1;
                                "deviceorientation" === o.type && (_ = a * (b = i.levels[i.levels.length - 1] / 200), S = r * b * 3, x = 0 == t[e].canv.width ? 0 : Math.round(a / t[e].canv.width * b * 500) || 0, k = 0 == t[e].canv.height ? 0 : Math.round(r / t[e].canv.height * b * 700) || 0), n.hasClass("dddwrapper-layer") && (O = i.ddd_z_correction || 65, L = !0), n.hasClass("dddwrapper-layer") && (_ = 0, S = 0), R.index() === t[e].pr_active_key || "carousel" != t[e].sliderType || "carousel" == t[e].sliderType && "mousedrag" == t[e].parallax.type ? !i.ddd_bgfreeze || L ? tpGS.gsap.to(n, c, {
                                    rotationX: k,
                                    rotationY: -x,
                                    x: _,
                                    z: O,
                                    y: S,
                                    ease: "power3.out",
                                    overwrite: "all"
                                }) : tpGS.gsap.to(n, .5, {
                                    force3D: "auto",
                                    rotationY: 0,
                                    rotationX: 0,
                                    z: 0,
                                    ease: "power3.out",
                                    overwrite: "all"
                                }) : tpGS.gsap.to(n, .5, {
                                    force3D: "auto",
                                    rotationY: 0,
                                    x: 0,
                                    y: 0,
                                    rotationX: 0,
                                    z: 0,
                                    ease: "power3.out",
                                    overwrite: "all"
                                }), "mouseleave" != o.type && "mouseout" !== o.type || tpGS.gsap.to(this, 3.8, {
                                    z: 0,
                                    ease: "power3.out"
                                })
                            }
        },
        parallaxProcesses: function(e, i, a, r) {
            var o = t[e].fixedOnTop ? Math.min(1, Math.max(0, window.scrollY / t.lastwindowheight)) : Math.min(1, Math.max(0, (0 - (i.top - t.lastwindowheight)) / (i.hheight + t.lastwindowheight))),
                s = (i.top >= 0 && i.top <= t.lastwindowheight || i.top <= 0 && i.bottom >= 0 || i.top <= 0 && i.bottom, t[e].slides[void 0 === t[e].pr_active_key ? 0 : t[e].pr_active_key]);
            if (t[e].scrollProg = o, t[e].scrollProgBasics = {
                    top: i.top,
                    height: i.hheight,
                    bottom: i.bottom
                }, t[e].sbtimeline.fixed ? (!1 === t[e].fixedScrollOnState || 0 !== t[e].drawUpdates.cpar.left || !t.stickySupported || 0 != t[e].fullScreenOffsetResult && null != t[e].fullScreenOffsetResult ? t.stickySupported = !1 : (t[e].topc.addClass("rs-stickyscrollon"), t[e].fixedScrollOnState = !0), void 0 === t[e].sbtimeline.rest && t.updateFixedScrollTimes(e), i.top >= t[e].fullScreenOffsetResult && i.top <= t.lastwindowheight ? (o = t[e].sbtimeline.fixStart * (1 - i.top / t.lastwindowheight) / 1e3, !0 !== t.stickySupported && !1 !== t[e].fixedScrollOnState && (t[e].topc.removeClass("rs-fixedscrollon"), tpGS.gsap.set(t[e].cpar, {
                    top: 0,
                    y: 0
                }), t[e].fixedScrollOnState = !1)) : i.top <= t[e].fullScreenOffsetResult && i.bottom >= t[e].module.height ? (!0 !== t.stickySupported && !0 !== t[e].fixedScrollOnState && (t[e].fixedScrollOnState = !0, t[e].topc.addClass("rs-fixedscrollon"), tpGS.gsap.set(t[e].cpar, {
                    top: 0,
                    y: t[e].fullScreenOffsetResult
                })), o = (t[e].sbtimeline.fixStart + t[e].sbtimeline.time * (Math.abs(i.top) / (i.hheight - t[e].module.height))) / 1e3) : (!0 !== t.stickySupported && (tpGS.gsap.set(t[e].cpar, {
                    top: t[e].scrollproc >= 0 ? 0 : i.height - t[e].module.height
                }), !1 !== t[e].fixedScrollOnState && (t[e].topc.removeClass("rs-fixedscrollon"), t[e].fixedScrollOnState = !1)), o = i.top > t.lastwindowheight ? 0 : (t[e].sbtimeline.fixEnd + t[e].sbtimeline.rest * (1 - i.bottom / t[e].module.height)) / 1e3)) : o = t[e].duration * o / 1e3, void 0 !== s && void 0 !== t.gA(s, "key") && !0 !== a) {
                var n = 0;
                for (var l in t[e].sbas[t.gA(s, "key")])
                    if (void 0 !== t[e]._L[l] && null == t[e]._L[l].timeline && n++, void 0 !== t[e]._L[l] && void 0 !== t[e]._L[l].timeline && (1 == t[e]._L[l].animationonscroll || "true" == t[e]._L[l].animationonscroll)) {
                        n = -9999;
                        var d = void 0 !== t[e]._L[l].scrollBasedOffset ? o + t[e]._L[l].scrollBasedOffset : o;
                        d = d <= 0 ? 0 : d < .1 ? .1 : d, t[e]._L[l].animteToTime !== d && (t[e]._L[l].animteToTimeCache = t[e]._L[l].animteToTime, t[e]._L[l].animteToTime = d, tpGS.gsap.to(t[e]._L[l].timeline, t[e].sbtimeline.speed, {
                            time: d,
                            ease: t[e].sbtimeline.ease
                        }))
                    }
                n > 0 && requestAnimationFrame((function() {
                    t.parallaxProcesses(e, i, a, r)
                })), t[e].c.trigger("timeline_scroll_processed", {
                    id: e,
                    mproc: o,
                    speed: t[e].sbtimeline.speed
                })
            }
            if (t.ISM && t[e].parallax.disable_onmobile) return !1;
            var c, p = t[e].parallax;
            if (void 0 !== t[e].slides[t[e].pr_processing_key] && void 0 !== t[e].slides[t[e].pr_processing_key].dataset && (c = t[e].slides[t[e].pr_processing_key].dataset.key), "3d" != p.type && "3D" != p.type) {
                if ("scroll" == p.type || "mousescroll" == p.type)
                    for (var g in p.pcontainers)
                        if (p.pcontainers.hasOwnProperty(g) && (void 0 === t[e].activeRSSlide || "static" === g || t[e].slides[t[e].activeRSSlide].dataset.key === g || c === g))
                            for (var u in p.pcontainers[g])
                                if (p.pcontainers[g].hasOwnProperty(u)) {
                                    var h = p.pcontainers[g][u],
                                        m = void 0 !== r ? r : p.speedls / 1e3 || 0;
                                    h.pl = h.depth / 100, h.offsv = Math.round(t[e].scrollproc * (-h.pl * t[e].canv.height) * 10) / 10 || 0, tpGS.gsap.to(h.tpw, m, {
                                        overwrite: "auto",
                                        force3D: "auto",
                                        y: h.offsv
                                    })
                                }
                if (p.bgcontainers)
                    for (u = 0; u < p.bgcontainers.length; u++) {
                        var v = p.bgcontainers[u],
                            f = p.bgcontainer_depths[u],
                            y = t[e].scrollproc * (-f * t[e].canv.height) || 0;
                        m = void 0 !== r ? r : p.speedbg / 1e3 || .015;
                        m = void 0 !== t[e].parallax.lastBGY && 0 === m && Math.abs(y - t[e].parallax.lastBGY) > 50 ? .15 : m, tpGS.gsap.to(v, m, {
                            position: "absolute",
                            top: "0px",
                            left: "0px",
                            backfaceVisibility: "hidden",
                            force3D: "true",
                            y: y + "px"
                        }), t[e].parallax.lastBGY = y
                    }
            }
            var w = t[e].scrolleffect;
            if (w.set && (!t.ISM || !1 === w.disable_onmobile)) {
                var b = Math.abs(t[e].scrollproc) - w.tilt / 100;
                if (b = b < 0 ? 0 : b, !1 !== w._L) {
                    var _ = 1 - b * w.multiplicator_layers,
                        S = {
                            force3D: "true"
                        };
                    if ("top" == w.direction && t[e].scrollproc >= 0 && (_ = 1), "bottom" == w.direction && t[e].scrollproc <= 0 && (_ = 1), _ = _ > 1 ? 1 : _ < 0 ? 0 : _, w.fade && (S.opacity = _), w.scale) {
                        var x = _;
                        S.scale = 1 - x + 1
                    }
                    if (w.blur) O = (O = (1 - _) * w.maxblur) <= .03 ? 0 : O, S["-webkit-filter"] = "blur(" + O + "px)", S.filter = "blur(" + O + "px)", window.isSafari11 && void 0 !== w._L && void 0 !== w._L[0] && void 0 !== w._L[0][0] && "RS-MASK-WRAP" == w._L[0][0].tagName && (S.z = .001);
                    if (w.grayscale) {
                        var k = "grayscale(" + 100 * (1 - _) + "%)";
                        S["-webkit-filter"] = void 0 === S["-webkit-filter"] ? k : S["-webkit-filter"] + " " + k, S.filter = void 0 === S.filter ? k : S.filter + " " + k
                    }
                    tpGS.gsap.set(w._L, S)
                }
                if (!1 !== w.bgs) {
                    _ = 1 - b * w.multiplicator, S = {
                        backfaceVisibility: "hidden",
                        force3D: "true"
                    };
                    for (var R in "top" == w.direction && t[e].scrollproc >= 0 && (_ = 1), "bottom" == w.direction && t[e].scrollproc <= 0 && (_ = 1), _ = _ > 1 ? 1 : _ < 0 ? 0 : _, w.bgs)
                        if (w.bgs.hasOwnProperty(R)) {
                            if (w.bgs[R].fade && (S.opacity = _), w.bgs[R].blur) {
                                var O = (1 - _) * w.maxblur;
                                S["-webkit-filter"] = "blur(" + O + "px)", S.filter = "blur(" + O + "px)"
                            }
                            if (w.bgs[R].grayscale) {
                                k = "grayscale(" + 100 * (1 - _) + "%)";
                                S["-webkit-filter"] = void 0 === S["-webkit-filter"] ? k : S["-webkit-filter"] + " " + k, S.filter = void 0 === S.filter ? k : S.filter + " " + k
                            }
                            tpGS.gsap.set(w.bgs[R].c, S)
                        }
                }
            }
        }
    });
    var i = function(e, i) {
        var a = t[i].parallax;
        e.find("rs-sbg-wrap").wrapAll('<div class="dddwrapper" style="width:100%;height:100%;position:absolute;top:0px;left:0px;overflow:hidden"></div>');
        var r = e[0].querySelectorAll(".rs-parallax-wrap"),
            o = document.createElement("div");
        o.className = "dddwrapper-layer", o.style.width = "100%", o.style.height = "100%", o.style.position = "absolute", o.style.top = "0px", o.style.left = "0px", o.style.zIndex = 5, o.style.overflow = a.ddd_layer_overflow;
        for (var s = 0; s < r.length; s++) r.hasOwnProperty(s) && null === t.closestNode(r[s], "RS-GROUP") && null === t.closestNode(r[s], "RS-ROW") && o.appendChild(r[s]);
        e[0].appendChild(o), e.find(".rs-pxl-tobggroup").closest(".rs-parallax-wrap").wrapAll('<div class="dddwrapper-layertobggroup" style="position:absolute;top:0px;left:0px;z-index:50;width:100%;height:100%"></div>');
        var n = e.find(".dddwrapper"),
            l = e.find(".dddwrapper-layer");
        e.find(".dddwrapper-layertobggroup").appendTo(n), "carousel" == t[i].sliderType && (a.ddd_shadow && n.addClass("dddwrappershadow"), tpGS.gsap.set(n, {
            borderRadius: t[i].carousel.border_radius
        })), tpGS.gsap.set(e, {
            overflow: "visible",
            transformStyle: "preserve-3d",
            perspective: 1600
        }), tpGS.gsap.set(n, {
            force3D: "auto",
            transformOrigin: "50% 50%",
            transformStyle: "preserve-3d",
            transformPerspective: 1600
        }), tpGS.gsap.set(l, {
            force3D: "auto",
            transformOrigin: "50% 50%",
            zIndex: 5,
            transformStyle: "flat",
            transformPerspective: 1600
        }), tpGS.gsap.set(t[i].canvas, {
            transformStyle: "preserve-3d",
            transformPerspective: 1600
        })
    };

    function a(i, a, r, o) {
        e(r).find(".rs-pxl-" + i).each((function() {
            var e = this.className.indexOf("rs-pxmask") >= 0,
                r = e ? t.closestNode(this, "RS-PX-MASK") : t.closestClass(this, "rs-parallax-wrap");
            r && (e && !window.isSafari11 && (tpGS.gsap.set(r, {
                z: 1
            }), tpGS.gsap.set(t.closestNode(r, "RS-BG-ELEM"), {
                z: 1
            })), r.dataset.parallaxlevel = a.levels[i - 1], r.classList.add("tp-parallax-container"), o[this.id] = {
                tpw: r,
                depth: a.levels[i - 1],
                offsv: 0,
                offsh: 0
            })
        }))
    }
    window.RS_MODULES = window.RS_MODULES || {}, window.RS_MODULES.parallax = {
        loaded: !0,
        version: "6.6.0"
    }, window.RS_MODULES.checkMinimal && window.RS_MODULES.checkMinimal()
}(jQuery),
function(e) {
    "use strict";
    window._R_is_Editor ? RVS._R = void 0 === RVS._R ? {} : RVS._R : window._R_is_Editor = !1;
    var t = "power1.inOut",
        i = "power2.inOut";
    jQuery.fn.revolution = jQuery.fn.revolution || {};
    var a = _R_is_Editor ? RVS._R : jQuery.fn.revolution;
    _R_is_Editor && (RVS._R.isNumeric = RVS.F.isNumeric), jQuery.extend(!0, a, {
        getSlideAnimationObj: function(e, t, i) {
            var r, o = {};
            for (var s in void 0 === t.anim && null == t.in && (t.in = "o:0"), t)
                if (t.hasOwnProperty(s) && void 0 !== t[s]) {
                    var n = t[s].split(";");
                    for (var l in n) n.hasOwnProperty(l) && void 0 !== (r = n[l].split(":"))[0] && void 0 !== r[1] && (o[s] = void 0 === o[s] ? {} : o[s], o[s][r[0]] = "d3" === s && "c" === r[0] ? r[1] : r[1].split(",")[0])
                }
            return o.in = void 0 === o.in ? {} : o.in, o.anim = void 0 === o.anim ? {
                e: "basic"
            } : o.anim, _R_is_Editor || void 0 === o.in || void 0 === o.in.prst || a.loadSlideAnimLibrary(e, {
                key: i,
                prst: o.in.prst
            }), a[e].sbgs[i].slideanimationRebuild = !1, o
        },
        loadSlideAnimLibrary: function(e, t) {
            void 0 === a.SLTR && !0 !== a.SLTR_loading ? (a.SLTR_loading = !0, jQuery.ajax({
                type: "post",
                url: a[e].ajaxUrl,
                dataType: "json",
                data: {
                    action: "revslider_ajax_call_front",
                    client_action: "get_transitions"
                },
                success: function(i, r, o) {
                    1 == i.success && (a.SLTR = i.transitions, void 0 !== t && a.setRandomDefaults(e, t.key, t.prst))
                },
                error: function(e) {
                    console.log("Transition Table can not be loaded"), console.log(e)
                }
            })) : void 0 !== t && void 0 !== a.SLTR && a.setRandomDefaults(e, t.key, t.prst)
        },
        convertSlideAnimVals: function(e) {
            return {
                anim: {
                    eng: e.eng,
                    ms: parseInt(e.speed, 0),
                    o: e.o,
                    e: e.e,
                    f: e.f,
                    p: e.p,
                    d: parseInt(e.d, 0),
                    adpr: e.adpr
                },
                d3: {
                    f: e.d3.f,
                    d: e.d3.d,
                    z: e.d3.z,
                    t: e.d3.t,
                    c: e.d3.c,
                    e: e.d3.e,
                    fdi: e.d3.fdi,
                    fdo: e.d3.fdo,
                    fz: e.d3.fz,
                    su: e.d3.su,
                    smi: e.d3.smi,
                    sma: e.d3.sma,
                    sc: e.d3.sc,
                    sl: e.d3.sl
                },
                in: {
                    eng: e.in.eng,
                    o: _R_is_Editor && void 0 !== e.preset && 0 === e.preset.indexOf("rnd") ? 0 : a.valBeau(e.in.o),
                    x: a.valBeau(e.in.x),
                    y: a.valBeau(e.in.y),
                    r: a.valBeau(e.in.r),
                    sx: a.valBeau(e.in.sx),
                    sy: a.valBeau(e.in.sy),
                    m: e.in.m,
                    e: e.in.e,
                    row: e.in.row,
                    col: e.in.col,
                    mo: "false" !== e.in.mou && !1 !== e.in.mou ? a.valBeau(e.in.mo) : 0,
                    moo: "false" !== e.in.mou && !1 !== e.in.mou ? a.valBeau(e.in.moo) : "none",
                    mou: e.in.mou
                },
                out: void 0 === e.out.a || "true" == e.out.a || !0 === e.out.a ? void 0 : {
                    a: c(e.out.a),
                    o: a.valBeau(e.out.o),
                    x: a.valBeau(e.out.x),
                    y: a.valBeau(e.out.y),
                    r: a.valBeau(e.out.r),
                    sx: a.valBeau(e.out.sx),
                    sy: a.valBeau(e.out.sy),
                    m: e.out.m,
                    e: e.out.e,
                    row: a.valBeau(e.out.row),
                    col: a.valBeau(e.out.col)
                },
                filter: {
                    u: e.filter.u,
                    e: e.filter.e,
                    b: e.filter.b,
                    g: e.filter.g,
                    h: e.filter.h,
                    s: e.filter.s,
                    c: e.filter.c,
                    i: e.filter.i
                },
                addOns: e.addOns
            }
        },
        setRandomDefaults: function(e, t, i) {
            a[e].sbgs[t].random = a.getAnimObjectByKey(i, a.SLTR)
        },
        getSlideAnim_AddonDefaults: function() {
            var e = {};
            for (var t in a.enabledSlideAnimAddons) e = jQuery.extend(!0, e, a[a.enabledSlideAnimAddons[t]].defaults());
            return e
        },
        getSlideAnim_EmptyObject: function() {
            return {
                speed: 1e3,
                o: "inout",
                e: "basic",
                f: "start",
                p: "none",
                d: 15,
                eng: "animateCore",
                adpr: !0,
                d3: {
                    f: "none",
                    d: "horizontal",
                    z: 300,
                    t: 0,
                    c: "#ccc",
                    e: "power2.inOut",
                    fdi: 1.5,
                    fdo: 2,
                    fz: 0,
                    su: !1,
                    smi: 0,
                    sma: .5,
                    sc: "#000",
                    sl: 1
                },
                filter: {
                    u: !1,
                    e: "default",
                    b: 0,
                    g: 0,
                    h: 100,
                    s: 0,
                    c: 100,
                    i: 0
                },
                in: {
                    o: 1,
                    x: 0,
                    y: 0,
                    r: 0,
                    sx: 1,
                    sy: 1,
                    m: !1,
                    e: "power2.inOut",
                    row: 1,
                    col: 1,
                    mo: 80,
                    mou: !1
                },
                out: {
                    a: "true",
                    o: 1,
                    x: 0,
                    y: 0,
                    r: 0,
                    sx: 1,
                    sy: 1,
                    m: !1,
                    e: "power2.inOut",
                    row: 1,
                    col: 1
                },
                addOns: a.getSlideAnim_AddonDefaults()
            }
        },
        getAnimObjectByKey: function(e, t) {
            if (a.getAnimObjectCacheKey === e) return a.getAnimObjectCache;
            var i;
            for (var r in a.getAnimObjectCacheKey = e, t)
                if (t.hasOwnProperty(r) && void 0 === i)
                    for (var o in t[r])
                        if (t[r].hasOwnProperty(o) && void 0 === i)
                            if (e === o && 0 === e.indexOf("rnd"))(i = t[r][o]).main = r, i.group = o;
                            else
                                for (var s in t[r][o]) t[r][o].hasOwnProperty(s) && void 0 === i && s === e && ((i = t[r][o][s]).main = r, i.group = o);
            return a.getAnimObjectCache = jQuery.extend(!0, {}, i), i
        },
        getRandomSlideTrans: function(e, t, i) {
            if (void 0 !== a.randomSlideAnimCache && void 0 !== a.randomSlideAnimCache[e] && void 0 !== a.randomSlideAnimCache[e][t]) return a.randomSlideAnimCache[e][t][Math.floor(Math.random() * a.randomSlideAnimCache[e][t].length)];
            for (var r in a.randomSlideAnimCache = void 0 === a.randomSlideAnimCache ? {} : a.randomSlideAnimCache, a.randomSlideAnimCache[e] = void 0 === a.randomSlideAnimCache[e] ? {} : a.randomSlideAnimCache[e], a.randomSlideAnimCache[e][t] = void 0 === a.randomSlideAnimCache[e][t] ? [] : a.randomSlideAnimCache[e][t], i)
                if (i.hasOwnProperty(r) && "random" !== r && "custom" !== r && ("all" == e || r == e))
                    for (var o in i[r])
                        if (i[r].hasOwnProperty(o) && "icon" !== o && ("" + t == "undefined" || t.indexOf(o) >= 0))
                            for (var s in i[r][o]) i[r][o].hasOwnProperty(s) && -1 == jQuery.inArray(i[r][o][s].title, ["*north*", "*south*", "*east*", "*west*"]) && a.randomSlideAnimCache[e][t].push(s);
            return a.randomSlideAnimCache[e][t][Math.floor(Math.random() * a.randomSlideAnimCache[e][t].length)]
        },
        cbgW: function(e, t) {
            return _R_is_Editor ? RVS.RMD.width : "carousel" === a[e].sliderType ? a[e].justifyCarousel ? a[e].carousel.slide_widths[void 0 !== t ? t : a[e].carousel.focused] : a[e].carousel.slide_width : a[e].canv.width
        },
        cbgH: function(e, t) {
            return _R_is_Editor ? RVS.RMD.height : "carousel" === a[e].sliderType ? "v" != a[e].carousel.orientation || "fullscreen" !== a[e].sliderLayout && !a[e].infullscreenmode ? !0 === a[e].carousel.justify ? a[e].carousel.slide_height : "fullscreen" === a[e].sliderLayout || a[e].infullscreenmode ? a[e].module.height : Math.min(a[e].canv.height, a[e].gridheight[a[e].level]) : a[e].carousel.slide_height : void 0 !== a[e].maxHeight && a[e].maxHeight > 0 && !a[e].fixedOnTop ? Math.min(a[e].canv.height, a[e].maxHeight) : a[e].canv.height
        },
        valBeau: function(e) {
            return e = ("" + (e = ("" + (e = ("" + (e = ("" + (e = ("" + e).split(",").join("|"))).replace("{", "ran("))).replace("}", ")"))).replace("[", "cyc("))).replace("]", ")")
        },
        animateSlide: function(e, t) {
            return _R_is_Editor && RVS.F.resetSlideTL(), void 0 === tpGS.eases.late && (tpGS.CustomEase.create("late", "M0,0,C0,0,0.474,0.078,0.724,0.26,0.969,0.438,1,1,1,1"), tpGS.CustomEase.create("late2", "M0,0 C0,0 0.738,-0.06 0.868,0.22 1,0.506 1,1 1,1 "), tpGS.CustomEase.create("late3", "M0,0,C0,0,0.682,0.157,0.812,0.438,0.944,0.724,1,1,1,1")), n(e, t)
        },
        getBasic: function(e) {
            return jQuery.extend(!0, {
                attr: null == e || void 0 === e.attr ? ["o", "r", "sx", "sy", "x", "y", "m", "e", "row", "col", "mo", "moo"] : e.attr,
                in: {
                    f: "start",
                    m: !1,
                    o: 1,
                    r: 0,
                    sx: 1,
                    sy: 1,
                    x: 0,
                    y: 0,
                    row: 1,
                    col: 1,
                    e: i,
                    ms: 1e3,
                    mo: 0,
                    moo: "none"
                },
                out: {
                    f: "start",
                    m: !1,
                    o: 1,
                    r: 0,
                    sx: 1,
                    sy: 1,
                    x: 0,
                    y: 0,
                    row: 1,
                    col: 1,
                    e: i,
                    ms: 1e3
                }
            }, e)
        },
        playBGVideo: function(e, t, i) {
            if (_R_is_Editor) i = void 0 === i ? RVS.SBGS[RVS.S.slideId].n : i;
            else {
                if (void 0 === i && (void 0 === a[e].pr_next_bg || 0 === a[e].pr_next_bg.length)) return;
                i = void 0 === i ? a[e].sbgs[void 0 === t ? a[e].pr_next_bg[0].dataset.key : t] : i
            }
            void 0 !== i.bgvid && i.bgvid.length > 0 && (g(e, {}, i, "in"), a.resetVideo(i.bgvid, e), a.playVideo(i.bgvid, e, !0), tpGS.gsap.to(i.bgvid[0], .2, {
                zIndex: 30,
                display: "block",
                autoAlpha: 1,
                delay: .075,
                overwrite: "all"
            }))
        },
        stopBGVideo: function(e, t, i) {
            if (_R_is_Editor) i = void 0 === i ? RVS.SBGS[RVS.S.slideId].n : i;
            else {
                if (void 0 === i && (void 0 === a[e].pr_next_bg || 0 === a[e].pr_next_bg.length)) return;
                i = void 0 === i ? a[e].sbgs[void 0 === t ? a[e].pr_next_bg[0].dataset.key : t] : i
            }
            void 0 !== i.bgvid && i.bgvid.length > 0 && (i.drawVideoCanvasImagesRecall = !1, a.stopVideo(i.bgvid, e), tpGS.gsap.to(i.bgvid[0], .2, {
                autoAlpha: 0,
                zIndex: 0,
                display: "none"
            }))
        },
        SATools: {
            getOffset: function(e, t, i, r) {
                var o = ("" + e).indexOf("%") >= 0;
                return 0 == (e = a.SATools.getSpecialValue(e, r, i)) || void 0 === e ? 0 : o ? t * (parseInt(e) / 100) : parseInt(e)
            },
            getSpecialValue: function(e, t, i, r) {
                if (a.isNumeric(parseFloat(e, 0))) return parseFloat(e, 0);
                var o = ("" + e).split("ran(").length > 1 ? "random" : ("" + e).split("cyc(").length > 1 ? "wrap" : ("" + e).split("(").length > 1 ? "dir" : "unknown",
                    s = ("random" === o || "wrap" === o ? e.slice(4, -1) : e.slice(1, -1)).split("|");
                if ("random" === o) return tpGS.gsap.utils.random(parseFloat(s[0]), parseFloat(s.length > 1 ? s[1] : 0 - s[0]));
                if ("wrap" === o) {
                    var n = tpGS.gsap.utils.wrap(s, t);
                    return ("" + n).split("(").length > 1 ? parseFloat(n.slice(1, -1)) * i + (r ? "%" : "") : n
                }
                return "dir" === o ? parseFloat(s[0]) * i + (r ? "%" : "") : void 0
            }
        },
        getmDim: function(e, t, i) {
            var r = a.cbgW(e, t),
                o = a.cbgH(e, t);
            return i.DPR = _R_is_Editor ? Math.min(window.devicePixelRatio, 2) : a[e].DPR, a.maxDimCheck(i, r, o)
        },
        maxDimCheck: function(e, t, i) {
            var r, o;
            void 0 !== e.video && ("img" === e.video.tagName || null == e.video.videoWidth || e.video.videoWidth);
            if ("animating" !== e.currentState && null == e.panzoom || "animating" === e.currentState && null == e.panzoom && (null == e.slideanimation || null == e.slideanimation.anim || "true" !== e.slideanimation.anim.adpr))
                if (e.DPR > 1 && a.ISM && i > 1024) e.DPR = 1, r = t, o = i;
                else {
                    var s = {
                        w: null == e.video || e.isVidImg || 0 == e.video.videoWidth ? e.loadobj.width : e.video.videoWidth,
                        h: null == e.video || e.isVidImg || 0 == e.video.videoHeight ? e.loadobj.height : e.video.videoHeight
                    };
                    void 0 === s.w && (s.w = e.loadobj.width), void 0 === s.h && (s.h = e.loadobj.height);
                    var n = i / s.w,
                        l = t / s.h,
                        d = Math.max(n, l);
                    if (d > e.DPR || n >= 1 && l >= 1 ? e.DPR = 1 : e.DPR > d && (e.DPR = Math.min(e.DPR, e.DPR / d)), r = t * e.DPR, o = i * e.DPR, e.DPR > 1) {
                        var c = t / i;
                        s.w > s.h && s.w < r ? (o = (r = Math.max(r, s.w)) / c, e.DPR = 1) : s.h > s.w && s.h < o && (r = (o = Math.max(o, s.h)) * c, e.DPR = 1)
                    }
                }
            else e.DPR = 1, r = t, o = i;
            return {
                width: Math.round(r),
                height: Math.round(o),
                w: t,
                h: i
            }
        },
        updateSlideBGs: function(e, t, i, r) {
            if (_R_is_Editor) i = void 0 === i ? RVS.SBGS[RVS.S.slideId].n : i;
            else {
                if (void 0 === i && (void 0 === a[e].pr_next_bg || 0 === a[e].pr_next_bg.length)) return;
                i = void 0 === i ? a[e].sbgs[void 0 === t ? a[e].pr_next_bg[0].dataset.key : t] : i
            }(r = void 0 !== i.mDIM && r) || (i.mDIM = a.getmDim(e, i.skeyindex, i)), void 0 !== i.video ? ("IMG" !== i.video.tagName && (i.isVidImg = ""), i.cDIMS = a.getBGCanvasDetails(e, i), i.canvas.width = i.mDIM.width, i.canvas.height = i.mDIM.height, i.ctx.clearRect(0, 0, i.mDIM.width, i.mDIM.height), i.ctx.drawImage(i.shadowCanvas, 0, 0)) : (i.cDIMS = a.getBGCanvasDetails(e, i, r), i.canvas.width = i.mDIM.width, i.canvas.height = i.mDIM.height, "panzoom" === i.currentState || "animating" === i.currentState || void 0 === i.currentState && !_R_is_Editor && "carousel" != a[e].sliderType || (i.ctx.clearRect(0, 0, i.mDIM.width, i.mDIM.height), 0 !== i.shadowCanvas.width && 0 !== i.shadowCanvas.height && i.ctx.drawImage(i.shadowCanvas, 0, 0))), "animating" === i.currentState && "carousel" !== a[e].sliderType && a.animatedCanvasUpdate(e, i)
        },
        addCanvas: function() {
            var e = document.createElement("canvas");
            return x = e.getContext("2d"), e.style.background = "transparent", e.style.opacity = 1, x
        },
        updateVideoFrames: function(e, t, i) {
            if (t.now = Date.now(), t.then = void 0 === t.then ? t.now - 500 : t.then, t.elapsed = t.now - t.then, t.fps = "animating" === t.currentState && window._rs_firefox ? 50 : 33, t.elapsed > t.fps) {
                t.then = t.now - t.elapsed % t.fps;
                var r = "img" === t.video.tagName || null == t.video.videoWidth || 0 == t.video.videoWidth;
                void 0 !== t.video && !t.video.BGrendered && void 0 !== t.loadobj && void 0 !== t.loadobj.img || a.ISM && a.isFirefox(e) ? (t.mDIM = a.getmDim(e, t.skeyindex, t), t.pDIMS = l(t.mDIM, t, {
                    width: t.mDIM.width,
                    height: t.mDIM.height,
                    x: 0,
                    y: 0,
                    contw: t.loadobj.width,
                    conth: t.loadobj.height
                }), t.shadowCanvas.width !== t.mDIM.width && (t.shadowCanvas.width = t.mDIM.width), t.shadowCanvas.height !== t.mDIM.height && (t.shadowCanvas.height = t.mDIM.height), t.shadowCTX.drawImage(t.loadobj.img, t.pDIMS.x, t.pDIMS.y, t.pDIMS.width, t.pDIMS.height)) : ((i || void 0 === t.sDIMS || r !== t.isVidImg || 0 === t.sDIMS.width || 0 === t.sDIMS.height) && (t.isVidImg = r, t.mDIM = a.getmDim(e, t.skeyindex, t), t.sDIMS = l(t.mDIM, t, {
                    width: t.mDIM.width,
                    height: t.mDIM.height,
                    x: 0,
                    y: 0,
                    contw: t.isVidImg ? t.loadobj.width : t.video.videoWidth,
                    conth: t.isVidImg ? t.loadobj.height : t.video.videoHeight
                })), void 0 !== t.sDIMS && 0 !== t.sDIMS.width && 0 !== t.sDIMS.height && ("animating" === t.currentState ? (t.shadowCanvas.width !== t.mDIM.width && (t.shadowCanvas.width = t.mDIM.width), t.shadowCanvas.height !== t.mDIM.height && (t.shadowCanvas.height = t.mDIM.height), t.shadowCTX.drawImage(t.video, t.sDIMS.x, t.sDIMS.y, t.sDIMS.width, t.sDIMS.height)) : void 0 === t.animateDirection && (t.canvas.width !== t.mDIM.width && (t.canvas.width = t.mDIM.width), t.canvas.height !== t.mDIM.height && (t.canvas.height = t.mDIM.height), t.ctx.drawImage(t.video, t.sDIMS.x, t.sDIMS.y, t.sDIMS.width, t.sDIMS.height)), t.shadowCanvas_Drawn = !0))
            }(i || t.drawVideoCanvasImagesRecall && "animating" === t.currentState || "animating" === t.currentState && void 0 === t.shadowCanvas_Drawn) && window.requestAnimationFrame((function() {
                a.updateVideoFrames(e, t)
            }))
        },
        createOverlay: function(e, t, i, r) {
            if ("none" === t) return "none";
            i = void 0 === i ? 1 : i;
            r = void 0 === r ? {
                0: "rgba(0, 0, 0, 0)",
                1: "rgba(0, 0, 0, 1)"
            } : r;
            var o = {
                    none: [
                        [0]
                    ],
                    1: [
                        [1, 0],
                        [0, 0]
                    ],
                    2: [
                        [1, 0, 0],
                        [0, 0, 0],
                        [0, 0, 0]
                    ],
                    3: [
                        [1, 0, 0, 0],
                        [0, 0, 0, 0],
                        [0, 0, 0, 0]
                    ],
                    4: [
                        [1],
                        [0]
                    ],
                    5: [
                        [1],
                        [0],
                        [0]
                    ],
                    6: [
                        [1],
                        [0],
                        [0],
                        [0]
                    ],
                    7: [
                        [1, 0]
                    ],
                    8: [
                        [1, 0, 0]
                    ],
                    9: [
                        [1, 0, 0, 0]
                    ],
                    10: [
                        [1, 0, 0, 0, 0],
                        [0, 1, 0, 1, 0],
                        [0, 0, 0, 0, 0],
                        [0, 1, 0, 1, 0],
                        [0, 0, 0, 0, 1]
                    ],
                    11: [
                        [0, 0, 1, 0, 0],
                        [0, 1, 0, 1, 0],
                        [1, 0, 0, 0, 1],
                        [0, 1, 0, 1, 0],
                        [0, 0, 1, 0, 0]
                    ],
                    12: [
                        [1, 0, 0],
                        [0, 1, 0],
                        [0, 0, 1]
                    ],
                    13: [
                        [0, 0, 1],
                        [0, 1, 0],
                        [1, 0, 0]
                    ],
                    14: [
                        [1, 0, 0, 0, 0],
                        [0, 1, 0, 0, 0],
                        [0, 0, 1, 0, 0],
                        [0, 0, 0, 1, 0],
                        [0, 0, 0, 0, 0]
                    ],
                    15: [
                        [0, 0, 0, 0, 1],
                        [0, 0, 0, 1, 0],
                        [0, 0, 1, 0, 0],
                        [0, 1, 0, 0, 0],
                        [1, 0, 0, 0, 0]
                    ],
                    16: [
                        [1, 0, 0, 0, 1],
                        [0, 1, 0, 1, 0],
                        [0, 0, 1, 0, 0],
                        [0, 1, 0, 1, 0],
                        [1, 0, 0, 0, 1]
                    ]
                },
                s = void 0 === o[t = void 0 === t ? 1 : t] ? o[2] : o[t];
            _R_is_Editor && (a[e] = void 0 === a[e] ? {} : a[e]), a[e].patternCanvas = document.createElement("canvas"), a[e].patternCtx = a[e].patternCanvas.getContext("2d"), a[e].patternCanvas.width = s[0].length * i, a[e].patternCanvas.height = s.length * i;
            for (var n = 0; n < s.length; n++)
                for (var l = 0; l < s[n].length; l++) "transparent" != r[s[n][l]] && (a[e].patternCtx.fillStyle = r[s[n][l]], a[e].patternCtx.fillRect(l * i, n * i, i, i));
            return "url(" + a[e].patternCanvas.toDataURL() + ")"
        },
        getBGCanvasDetails: function(e, t, i) {
            var r;
            return i || (t.mDIM = a.getmDim(e, t.skeyindex, t)), t.usepattern = ("auto" === t.bgfit || t.bgfit.indexOf("%") >= 0) && (void 0 === t.loadobj || !0 !== t.loadobj.useBGColor), _R_is_Editor && void 0 === t.panzoom && delete t.shadowCanvas, void 0 === t.shadowCanvas && (t.shadowCanvas = document.createElement("canvas"), t.shadowCTX = t.shadowCanvas.getContext("2d"), t.shadowCanvas.style.background = "transparent", t.shadowCanvas.style.opacity = 1), !0 === t.replaceShadowCanvas || !0 === t.loadobj.bgColor || !0 === t.usebgColor || void 0 !== t.panzoom || null != t.isHTML5 && 1 != t.poster || t.usepattern ? (r = {
                width: t.mDIM.width,
                height: t.mDIM.height,
                x: 0,
                y: 0
            }, t.usepattern && void 0 !== t.loadobj && void 0 !== t.loadobj.img ? a.getCanvasPattern(e, t, {
                ratio: t.loadobj.height / t.loadobj.width
            }) : (t.loadobj.bgColor || t.usebgColor) && (t.shadowCanvas.width !== t.mDIM.width && (t.shadowCanvas.width = t.mDIM.width), t.shadowCanvas.height !== t.mDIM.height && (t.shadowCanvas.height = t.mDIM.height), a.getCanvasGradients(e, t))) : (r = l(t.mDIM, t, {
                width: t.mDIM.width,
                height: t.mDIM.height,
                x: 0,
                y: 0,
                contw: t.loadobj.width,
                conth: t.loadobj.height
            }), t.shadowCanvas.width !== t.mDIM.width && (t.shadowCanvas.width = t.mDIM.width), t.shadowCanvas.height !== t.mDIM.height && (t.shadowCanvas.height = t.mDIM.height), void 0 !== t.loadobj && void 0 !== t.loadobj.img && (t.shadowCTX.clearRect(r.x, r.y, r.width, r.height), t.shadowCTX.drawImage(t.loadobj.img, r.x, r.y, r.width, r.height)), r = {
                width: t.mDIM.width,
                height: t.mDIM.height,
                x: 0,
                y: 0
            }), r
        },
        getCanvasPattern: function(e, t, i) {
            void 0 === t.patternImageCanvas && (t.patternImageCanvas = document.createElement("canvas"), t.patternImageCTX = t.patternImageCanvas.getContext("2d"));
            var r = t.bgfit.split(" ");
            1 === r.length && (r[1] = r[0]), i.width = "auto" === r[0] ? t.loadobj.width : t.loadobj.width * (parseInt(r[0], 0) / 100), i.height = "auto" === r[1] ? t.loadobj.height : i.width * i.ratio, t.DPR = _R_is_Editor ? Math.min(window.devicePixelRatio, 2) : a[e].DPR;
            var o = i.width / i.height;
            i.width = i.width * t.DPR, i.height = i.height * t.DPR, a.isIOS && i.width * i.height > 15728640 && (t.mDIM.width > t.mDIM.height ? (i.width = t.mDIM.width, i.height = Math.round(t.mDIM.width / o)) : (i.height = t.mDIM.height, i.width = Math.round(t.mDIM.height * o))), t.patternImageCanvas.width = i.width, t.patternImageCanvas.height = i.height, t.patternImageCTX.drawImage(t.loadobj.img, 0, 0, i.width, i.height), t.shadowCanvas.width !== t.mDIM.width && (t.shadowCanvas.width = t.mDIM.width), t.shadowCanvas.height !== t.mDIM.height && (t.shadowCanvas.height = t.mDIM.height), t.shadowCTX.clearRect(0, 0, t.shadowCTX.canvas.width, t.shadowCTX.canvas.height), t.pattern = t.shadowCTX.createPattern(t.patternImageCanvas, t.bgrepeat), t.shadowCTX.fillStyle = t.pattern, t.shadowShifts = {
                h: t.bgposition.split(" ")[0],
                v: t.bgposition.split(" ")[1]
            }, t.shadowShifts.hperc = a.isNumeric(parseInt(t.shadowShifts.h)) ? parseInt(t.shadowShifts.h) / 100 * t.mDIM.width : 0, t.shadowShifts.vperc = a.isNumeric(parseInt(t.shadowShifts.v)) ? parseInt(t.shadowShifts.v) / 100 * t.mDIM.height : 0, t.shadowShifts.x = "left" === t.shadowShifts.h ? 0 : "center" === t.shadowShifts.h || "50%" == t.shadowShifts.h ? "repeat" == t.bgrepeat || "repeat-x" == t.bgrepeat ? t.mDIM.width / 2 - i.width / 2 - Math.ceil(t.mDIM.width / 2 / i.width) * i.width : t.mDIM.width / 2 - i.width / 2 : "right" === t.shadowShifts.h ? "repeat" == t.bgrepeat || "repeat-x" == t.bgrepeat ? -(i.width - t.mDIM.width % i.width) : t.mDIM.width - i.width : "repeat" == t.bgrepeat || "repeat-x" == t.bgrepeat ? -(i.width - t.shadowShifts.hperc % i.width) : t.shadowShifts.hperc, t.shadowShifts.y = "top" === t.shadowShifts.v ? 0 : "center" === t.shadowShifts.v || "50%" == t.shadowShifts.v ? "repeat" == t.bgrepeat || "repeat-y" == t.bgrepeat ? t.mDIM.height / 2 - i.height / 2 - Math.ceil(t.mDIM.height / 2 / i.height) * i.height : t.mDIM.height / 2 - i.height / 2 : "bottom" === t.shadowShifts.v ? "repeat" == t.bgrepeat || "repeat-y" == t.bgrepeat ? -(i.height - t.mDIM.height % i.height) : t.mDIM.height - i.height : "repeat" == t.bgrepeat || "repeat-y" == t.bgrepeat ? -(i.height - t.shadowShifts.vperc % i.height) : t.shadowShifts.vperc, t.shadowCTX.save(), t.shadowCTX.translate(t.shadowShifts.x, t.shadowShifts.y), t.shadowCTX.fillRect(0, 0, t.mDIM.width - t.shadowShifts.x, t.mDIM.height - t.shadowShifts.y), t.shadowCTX.restore()
        },
        getCanvasGradients: function(e, t) {
            if (t.bgcolor.indexOf("gradient") >= 0) {
                t.gradient = null == t.gradient || _R_is_Editor ? a.getGradients(t.bgcolor) : t.gradient, t.shadowGrd = "radialGradient" === t.gradient.type ? t.shadowCTX.createRadialGradient(t.mDIM.width / 2, t.mDIM.height / 2, 0, t.mDIM.width / 2, t.mDIM.height / 2, Math.max(t.mDIM.width / 2, t.mDIM.height / 2)) : a.calcLinearGradient(t.shadowCTX, t.shadowCanvas.width, t.shadowCanvas.height, t.gradient.deg);
                for (var i = 0; i < t.gradient.stops.length; i += 2) t.shadowGrd.addColorStop(t.gradient.stops[i + 1], t.gradient.stops[i]);
                t.shadowCTX.clearRect(0, 0, t.mDIM.width, t.mDIM.height), t.shadowCTX.fillStyle = t.shadowGrd, t.shadowCTX.fillRect(0, 0, t.mDIM.width, t.mDIM.height)
            } else t.shadowCTX.clearRect(0, 0, t.mDIM.width, t.mDIM.height), t.shadowCTX.fillStyle = t.bgcolor, t.shadowCTX.fillRect(0, 0, t.mDIM.width, t.mDIM.height)
        },
        cNS: function(e) {
            var t;
            for (t in e.n = document.createElementNS("http://www.w3.org/2000/svg", e.n), e.v) e.n.setAttributeNS(null, t.replace(/[A-Z]/g, (function(e, t, i, a) {
                return "-" + e.toLowerCase()
            })), e.v[t]);
            for (t in void 0 !== e.c && e.n.setAttribute("class", e.c), void 0 !== e.id && (e.n.id = e.id), void 0 !== e.t && (e.n.textContent = e.t), e.s) e.s.hasOwnProperty(t) && (e.n.style[t] = e.s[t]);
            return e.n
        },
        rgbToHex: function(e) {
            return "#" + p(e[0]) + p(e[1]) + p(e[2])
        },
        getSVGGradient: function(e) {
            if (void 0 === e) return e;
            if (_R_is_Editor && (e = RSColor.convert(e)), -1 == e.indexOf("gradient")) return e;
            var t = a.getGradients(e);
            void 0 === a.gradSVG && (a.gradSVG = a.cNS({
                n: "svg",
                id: "tp_svg_gradients",
                s: {
                    width: "100%",
                    height: "100%",
                    opacity: 0,
                    pointerEvents: "none"
                }
            }), a.gradSVG.setAttribute("viewBox", "0 0 1 1"), a.gradSVG.setAttribute("preserveAspectRatio", "none"), document.body.appendChild(a.gradSVG), a.svgGradients = []);
            for (var i = !1, r = JSON.stringify(e), o = 0; o < a.svgGradients.length; o++) i || a.svgGradients[o].src == r && (i = !0, e = a.svgGradients[o].url);
            if (!i) {
                var s, n, l, d = "radialGradient" === t.type ? 0 : t.deg * (Math.PI / 180),
                    c = "radialGradient" === t.type ? 0 : {
                        x1: Math.round(50 + 50 * Math.sin(d)) + "%",
                        y1: Math.round(50 + 50 * Math.cos(d)) + "%",
                        x2: Math.round(50 + 50 * Math.sin(d + Math.PI)) + "%",
                        y2: Math.round(50 + 50 * Math.cos(d + Math.PI)) + "%"
                    };
                l = a.cNS({
                    n: t.type,
                    id: "tp_svg_gradient_" + a.svgGradients.length,
                    v: "radialGradient" === t.type ? void 0 : {
                        gradientUnits: "userSpaceOnUse",
                        x1: c.x1,
                        y1: c.y1,
                        x2: c.x2,
                        y2: c.y2
                    }
                });
                for (var p = 0; p <= t.stops.length / 2; p += 2) n = tpGS.gsap.utils.splitColor(t.stops[p]), s = a.cNS({
                    n: "stop",
                    v: {
                        offset: 100 * t.stops[p + 1] + "%",
                        stopColor: a.rgbToHex(n),
                        stopOpacity: n.length > 3 ? n[3] : 1
                    }
                }), l.appendChild(s);
                a.gradSVG.appendChild(l), e = "url(#tp_svg_gradient_" + a.svgGradients.length + ")", a.svgGradients.push({
                    url: e,
                    src: r,
                    g: l
                })
            }
            return e
        },
        getGradients: function(e) {
            return e.indexOf("radial-gradient") >= 0 ? {
                stops: a.getGradientColorStopPoints(e.split("radial-gradient(ellipse at center, ")[1]),
                type: "radialGradient",
                deg: 0
            } : -1 !== e.indexOf("gradient") ? a.getLinearGradientStops(e) : e
        },
        getLinearGradientStops: function(e) {
            var t = e.split("linear-gradient(")[1];
            _R_is_Editor && (t = (t = t.split(", ").join(",")).split(",rgba").join(", rgba"));
            var i = t.split("deg, ");
            for (var a in t = (i.length > 1 ? i[1] : i[0]).split(" "), i = i.length > 1 ? i[0] : 180, t) t.hasOwnProperty(a) && t[a].indexOf("%") >= 0 && (t[a] = "" + Math.round(100 * parseFloat(t[a].split("%,")[0].split("%)")[0])) / 1e4);
            return {
                stops: t,
                deg: i,
                type: "linearGradient"
            }
        },
        getGradientColorStopPoints: function(e) {
            var t = /rgb([\s\S]*?)%/g,
                i = [],
                a = [];
            do {
                (o = t.exec(e)) && i.push(o[0])
            } while (o);
            for (var r = 0; r < i.length; r++) {
                var o = i[r],
                    s = (e = /rgb([\s\S]*?)\)/.exec(o), /\)([\s\S]*?)%/.exec(o));
                e[0] && (e = e[0]), s[1] && (s = s[1]), a.push(e), a.push(parseFloat(s) / 100)
            }
            return a
        },
        calcLinearGradient: function(e, t, i, a) {
            a = a * Math.PI / 180 + Math.PI / 2;
            for (var r, o, s, n, l = t / 2, d = i / 2, c = Math.sqrt(l * l + d * d), p = {
                    x1: Math.cos(a) * c + l,
                    y1: Math.sin(a) * c + d,
                    x2: l,
                    y2: d
                }, g = [h({
                    x: 0,
                    y: 0
                }, a), h({
                    x: t,
                    y: 0
                }, a), h({
                    x: t,
                    y: i
                }, a), h({
                    x: 0,
                    y: i
                }, a)], v = [], f = 0; f < g.length; f++) v.push(m(g[f], p));
            if (u(l, d, v[0].x, v[0].y) > u(l, d, v[1].x, v[1].y) ? (r = v[0].x, o = v[0].y) : (r = v[1].x, o = v[1].y), u(l, d, v[2].x, v[2].y) > u(l, d, v[3].x, v[3].y) ? (s = v[2].x, n = v[2].y) : (s = v[3].x, n = v[3].y), Math.round(100 * Math.atan2(d - o, l - r)) / 100 === Math.round(a % (2 * Math.PI) * 100) / 100) {
                var y = r,
                    w = o;
                r = s, o = n, s = y, n = w
            }
            return e.createLinearGradient(Math.round(r), Math.round(o), Math.round(s), Math.round(n))
        },
        transitions: {
            filter: {
                update: function(e, t, i) {
                    if (void 0 !== e && void 0 !== e.tl) {
                        var a = void 0 !== i || void 0 !== e.tl.blur ? " blur(" + (void 0 !== i ? i : 0 + e.tl.blur !== void 0 ? e.tl.blur : 0) + "px)" : "";
                        t.canvas.style.filter = void 0 === e.tl.filter ? "" + a : e.tl.filter + a
                    }
                },
                extendTimeLine: function(e, t, i) {
                    if (null != t) {
                        var a = void 0 !== t.g && "0%" !== t.g && 0 !== t.g ? ("" === a ? "" : " ") + "grayscale(_g_%)" : "";
                        a += void 0 !== t.h && "100%" !== t.h && 100 !== t.h ? ("" === a ? "" : " ") + "brightness(_h_%)" : "", a += void 0 !== t.s && "0px" !== t.s && 0 !== t.s ? ("" === a ? "" : " ") + "sepia(_s_%)" : "", a += void 0 !== t.c && 100 !== t.c ? ("" === a ? "" : " ") + "contrast(_c_%)" : "", "" !== (a += void 0 !== t.i && 0 !== t.i ? ("" === a ? "" : " ") + "invert(_i_%)" : "") && (t.tl = {
                            filter: a.replace("_g_", parseFloat(t.g)).replace("_h_", parseFloat(t.h)).replace("_s_", parseFloat(t.s)).replace("_c_", parseFloat(t.c)).replace("_i_", parseFloat(t.i))
                        }), void 0 !== t.b && "0px" !== t.b && 0 !== t.b && (void 0 === t.tl ? t.tl = {
                            blur: parseFloat(t.b)
                        } : t.tl.blur = parseFloat(t.b)), void 0 !== t.tl && (e.add(tpGS.gsap.to(t.tl, t.ms / t.sec, void 0 === t.tl.filter ? {
                            blur: 0
                        } : void 0 === t.tl.blur ? {
                            filter: a.replace("_g_", "0").replace("_h_", "100").replace("_s_", "0").replace("_c_", 100).replace("_i_", 0),
                            ease: t.e
                        } : {
                            blur: 0,
                            filter: a.replace("_g_", "0").replace("_h_", "100").replace("_s_", "0").replace("_c_", 100).replace("_i_", 0),
                            ease: t.e
                        }), 0), i.canvasFilter = !0)
                    }
                }
            },
            slidingoverlay: {
                getBasic: function() {
                    return a.getBasic({
                        attr: ["x", "y"],
                        in: {
                            m: !0,
                            o: -1,
                            _xy: 20,
                            _gxys: 10,
                            _gxye: -10,
                            zIndex: 20,
                            e: t
                        },
                        out: {
                            m: !0,
                            reversed: !1,
                            _xy: -100,
                            o: 0,
                            zIndex: 10,
                            e: t
                        }
                    })
                },
                updateAnim: function(e, t, i) {
                    var r = void 0 !== t.in.x && 0 !== t.in.x && "0%" !== t.in.x ? "x" : "y";
                    t.in["g" + r + "s"] = a.SATools.getOffset(t.in[r], t.in._gxys, i, 1) + "%", t.in["g" + r + "e"] = a.SATools.getOffset(t.in[r], t.in._gxye, i, 1) + "%", t.out[r] = a.SATools.getOffset(t.in[r], t.out._xy, i, 1) + "%", t.in[r] = a.SATools.getOffset(t.in[r], t.in._xy, i, 1) + "%";
                    var o = parseInt(t.in[r]) >= 0;
                    return t.in.d = "x" === r ? o ? "left" : "right" : o ? "up" : "down", t
                },
                beforeDraw: function(e, t, i, a) {
                    void 0 !== i.d && (i._dxs = "right" === i.d ? 0 + i.mw : "left" === i.d ? 0 - i.mw : 0, i._dys = "down" === i.d ? 0 + i.mh : "up" === i.d ? 0 - i.mh : 0, i._xs = "left" === i.d ? 0 - i.mw : 0, i._ys = "up" === i.d ? 0 - i.mh : 0, i._xe = "right" === i.d ? a.SLOT.OW + i.mw : "left" === i.d ? a.SLOT.OW - i.mw : a.SLOT.OW, i._ye = "down" === i.d ? a.SLOT.OH + i.mh : "up" === i.d ? a.SLOT.OH - i.mh : a.SLOT.OH, t.beginPath(), t.rect("left" === i.d ? Math.max(0, i._xs) : "right" === i.d ? Math.min(0, i._xs) : 0, "up" === i.d ? Math.max(0, i._ys) : "down" === i.d ? Math.min(0, i._ys) : 0, "left" === i.d ? Math.max(a.SLOT.OW, i._xe) : "right" === i.d ? Math.min(a.SLOT.OW, i._xe) : i._xe, "up" === i.d ? Math.max(a.SLOT.OH, i._ye) : "down" === i.d ? Math.min(a.SLOT.OH, i._ye) : i._ye), t.clip())
                },
                afterDraw: function(e, t, i, a, r) {
                    void 0 !== i.d && (t.save(), t.beginPath(), t.rect(Math.max(0, i._dxs), Math.max(0, i._dys), i._xe, i._ye), t.clip(), t.save(), t.transform(r.csx, r.ssx, r.ssy, r.csy, .5 * a.SLOT.OW + i.x + i.sgx, .5 * a.SLOT.OH + i.y + i.sgy), t.drawImage(void 0 !== a.shadowCanvas ? a.shadowCanvas : a.loadobj.img, 0, 0, a.SLOT.OW, a.SLOT.OH, i.sgx - a.SLOT.OW / 2, i.sgy - a.SLOT.OH / 2, a.SLOT.OW, a.SLOT.OH), t.restore(), t.fillStyle = "rgba(0,0,0,0.6)", t.fillRect(i.gx, i.gy, a.SLOT.OW, a.SLOT.OH), t.restore())
                },
                extendTimeLine: function(e, t, i, r, o, s) {
                    "in" !== o.direction || void 0 === r.gxe && void 0 === r.gye || (jQuery.extend(!0, i[0], {
                        d: r.d,
                        gx: void 0 === r.gxs ? 0 : 2 * a.SATools.getOffset(r.gxs, s.width, o.sdir, 0),
                        gy: void 0 === r.gys ? 0 : 2 * a.SATools.getOffset(r.gys, s.height, o.sdir, 0),
                        sgx: void 0 === r.gxs ? 0 : a.SATools.getOffset(r.gxs, s.width, o.sdir, 0),
                        sgy: void 0 === r.gys ? 0 : a.SATools.getOffset(r.gys, s.height, o.sdir, 0),
                        mw: 0 - s.width,
                        mh: 0 - s.height
                    }), t.add(tpGS.gsap.to(i, r.ms / r.sec, {
                        gx: void 0 === r.gxe ? 0 : 2 * a.SATools.getOffset(r.gxe, s.width, o.sdir, 0),
                        gy: void 0 === r.gye ? 0 : 2 * a.SATools.getOffset(r.gye, s.height, o.sdir, 0),
                        sgx: void 0 === r.gxe ? 0 : 2 * a.SATools.getOffset(r.gxe, s.width, o.sdir, 0),
                        sgy: void 0 === r.gye ? 0 : 2 * a.SATools.getOffset(r.gye, s.height, o.sdir, 0),
                        mw: s.width,
                        mh: s.height,
                        ease: r.e
                    }), 0))
                }
            },
            motionFilter: {
                init: function(e, t) {
                    return void 0 !== t && parseFloat(t) > 0 ? (t = parseFloat(t), e.fmExists = !0, e.fmShadow = void 0 === e.fmShadow ? document.createElement("canvas") : e.fmShadow, e.fmCtx = e.fmShadow.getContext("2d"), e.fmShadow.width = e.ctx.canvas.width, e.fmShadow.height = e.ctx.canvas.height, e.fmCtx.globalAlpha = tpGS.gsap.utils.mapRange(100, 0, 40, 0, t) / 100, e.fmCtx.clearRect(0, 0, e.ctx.canvas.width, e.ctx.canvas.height)) : e.fmExists = !1, t
                },
                render: function(e, t) {
                    "partial" === t && (e.fmCtx.globalCompositeOperation = "source-over"), e.fmCtx.drawImage(e.canvas, 0, 0, e.canvas.width, e.canvas.height), e.ctx.clearRect(0, 0, e.canvas.width, e.canvas.height), e.ctx.drawImage(e.fmCtx.canvas, 0, 0, e.canvas.width, e.canvas.height), "partial" === t && (e.fmCtx.globalCompositeOperation = "source-atop"), "partial" !== t && "full" !== t || (e.fmCtx.fillStyle = "rgba(255, 255, 255, 0.1)", e.fmCtx.fillRect(0, 0, e.canvas.width, e.canvas.height))
                },
                clearFull: function(e, t) {
                    e.fmExists && void 0 !== e.fmCtx && (e.ctx.clearRect(0, 0, e.canvas.width, e.canvas.height), e.fmCtx.clearRect(0, 0, e.canvas.width, e.canvas.height), void 0 !== t && t.render(t.time(), !0, !0))
                },
                complete: function(e) {
                    e.fmShadow && e.fmShadow.remove()
                }
            },
            d3: {
                ticker: function(e, t, i) {
                    if (void 0 !== e.helper) {
                        var a = e.smi * ("in" === i ? e.helper.oo : e.helper.o),
                            r = e.sma * ("in" === i ? e.helper.oo : e.helper.o);
                        if (e.gradient = "vertical" === e.d ? "in" === i ? t.ctx.createLinearGradient(0, 0, 0, t.canvas.height) : t.ctx.createLinearGradient(0, t.canvas.height, 0, 0) : "in" === i ? t.ctx.createLinearGradient(0, 0, t.canvas.width, 0) : t.ctx.createLinearGradient(t.canvas.width, 0, 0, 0), e.gradient.addColorStop(0, "rgba(" + e.sc + "," + a + ")"), e.gradient.addColorStop(e.sl, "rgba(" + e.sc + "," + r + ")"), t.ctx.fillStyle = e.gradient, t.ctx.fillRect(0, 0, t.canvas.width, t.canvas.height), void 0 !== t.cube && t.cube.ctx) {
                            var o = void 0 !== e.roomhelper && !1 !== e.roomhelper && (90 - e.roomhelper.r) / 90;
                            a = !1 !== o ? o : e.smi * e.helper.o, r = !1 !== o ? o : e.sma * e.helper.o, t.cube.ctx.clearRect(0, 0, t.cube.ctx.canvas.width, t.cube.ctx.canvas.height), e.gradientW = !1 !== o ? "vertical" === e.d ? e.t < 0 && 1 === e.sdir || e.t > 0 && -1 === e.sdir ? t.ctx.createRadialGradient(0, t.cube.ctx.canvas.width / 2, 0, 0, 0, 2 * t.cube.ctx.canvas.width) : t.ctx.createRadialGradient(t.cube.ctx.canvas.width, 0, 0, 0, 0, 2 * t.cube.ctx.canvas.width) : e.t > 0 && 1 === e.sdir || e.t < 0 && -1 === e.sdir ? t.ctx.createRadialGradient(t.cube.ctx.canvas.width / 2, t.cube.ctx.canvas.height, 0, t.cube.ctx.canvas.width / 2, t.cube.ctx.canvas.height, t.cube.ctx.canvas.width) : t.ctx.createRadialGradient(t.cube.ctx.canvas.width / 2, .2 * t.cube.ctx.canvas.height, 0, t.cube.ctx.canvas.width / 2, .2 * t.cube.ctx.canvas.height, t.cube.ctx.canvas.width) : "vertical" === e.d ? t.ctx.createLinearGradient(0, 0, 0, t.cube.ctx.canvas.height) : t.ctx.createLinearGradient(0, 0, t.cube.ctx.canvas.width, 0), e.gradientW.addColorStop(0, "rgba(" + e.sc + "," + (!1 !== o ? "a" === e.DIR ? r : 0 : "a" === e.DIR ? 0 : r) + ")"), e.gradientW.addColorStop(1, "rgba(" + e.sc + "," + (!1 !== o ? "a" === e.DIR ? 0 : r : "a" === e.DIR ? r : 0) + ")"), t.cube.ctx.fillStyle = e.gradientW, t.cube.ctx.fillRect(0, 0, t.cube.ctx.canvas.width, t.cube.ctx.canvas.height)
                        }
                    }
                },
                setWall: function(e, t, i, a, r, o) {
                    return e.TL = tpGS.gsap.timeline(), e.TL.add(tpGS.gsap.to(e.c, .2, {
                        display: "block"
                    }), 0), "rotationX" === i ? (e.ctx.canvas.width = a.w, e.ctx.canvas.height = a.w, e.TL.add(tpGS.gsap.set(e.w, {
                        backgroundColor: r,
                        width: a.w,
                        height: a.w,
                        transformOrigin: "50% 50% -" + a.w / 2 + "px",
                        x: 0,
                        y: t > 0 ? -(a.w - a.h) : 0,
                        rotationX: t > 0 ? -90 : 90,
                        rotationY: 0
                    }), 0)) : (e.ctx.canvas.width = o ? a.w : a.h, e.ctx.canvas.height = a.h, e.TL.add(tpGS.gsap.set(e.w, {
                        backgroundColor: r,
                        width: o ? a.w : a.h,
                        height: a.h,
                        transformOrigin: "50% 50% -" + (o ? a.w : a.h) / 2 + "px",
                        x: t < 0 ? a.w - a.h : 0,
                        y: 0,
                        rotationX: 0,
                        rotationY: t > 0 ? -90 : 90
                    }), 0)), e.TL
                },
                buildCube: function(e) {
                    e.cube = {
                        c: document.createElement("div"),
                        w: document.createElement("canvas")
                    }, e.cube.ctx = e.cube.w.getContext("2d"), e.cube.c.className = "rs_fake_cube", e.cube.w.className = "rs_fake_cube_wall", tpGS.gsap.set(e.cube.c, {
                        width: e.mDIM.w,
                        height: e.mDIM.h
                    }), tpGS.gsap.set(e.cube.w, {
                        width: e.mDIM.w,
                        height: e.mDIM.h,
                        backgroundColor: "#ccc"
                    }), e.cube.c.appendChild(e.cube.w), e.sbg.appendChild(e.cube.c)
                },
                cubeTL: function(e, t, i, r) {
                    if ("none" !== t.f && void 0 !== t.f) {
                        i.sbg.style.transformStyle = "preserve-3d";
                        var o = tpGS.gsap.timeline(),
                            s = "incube" === t.f ? 1 : -1,
                            n = "incube" === t.f || "cube" === t.f,
                            l = "fly" === t.f ? -30 : 90,
                            d = "turn" !== t.f && !1 !== t.t && (_R_is_Editor || !0 === a[e].firstSlideAnimDone),
                            c = -1 * t.z,
                            p = {},
                            g = {
                                z: d ? 0 : c,
                                ease: "power1.inOut"
                            },
                            u = {
                                ease: t.e
                            },
                            h = [i.canvas],
                            m = n ? "50% 50% " : "20% 20% ",
                            v = "rotationX",
                            f = "rotationY",
                            y = "y",
                            w = "height",
                            b = t.fd;
                        if ("vertical" !== t.d ? (v = "rotationY", f = "rotationX", y = "x", w = "width", t.DIR = 1 === t.sdir ? "b" : "a") : t.DIR = 1 === t.sdir ? "a" : "b", w = "width" === w ? "w" : "height" === w ? "h" : w, "turn" === t.f ? (l = "vertical" === t.d ? -120 : 120, m = "vertical" === t.d ? 1 === t.sdir ? "in" === r ? "0% 0% 0%" : "0% 100% 0%" : "in" === r ? "0% 100% 0%" : "0% 0% 0%" : 1 === t.sdir ? "in" === r ? "0% 0% 0%" : "100% 0% 0%" : "in" === r ? "100% 0% 0%" : "0% 0% 0%", g.z = 0, u.ease = "out" === r ? "power3.out" : u.ease, b = "out" === r ? b / 2 : b) : m += s * i.mDIM[w] / 2 + "px", u[v] = 0, u[y] = 0, "in" === r ? p[v] = l * t.sdir : u[v] = -l * t.sdir, "fly" === t.f) {
                            var _ = void 0 === t.fz ? 20 * Math.random() - 10 : parseInt(t.fz);
                            "in" === r ? (p[y] = i.mDIM[w] * (void 0 === t.fdi ? 1.5 : parseFloat(t.fdi)) * t.sdir, p.rotateZ = t.sdir * _, u.rotateZ = 0) : (u[y] = i.mDIM[w] * (void 0 === t.fdo ? 2 : parseFloat(t.fdo)) * t.sdir * -1, u.rotateZ = t.sdir * _ * -1)
                        }
                        if (i.sbg.style.perspective = d ? "2500px" : "1500px", d) {
                            var S = {
                                    z: c * ("fly" === t.f ? 1.5 : 3),
                                    ease: "power1.inOut"
                                },
                                x = {
                                    z: 0,
                                    ease: "power1.inOut"
                                };
                            S[f] = -1 * t.t, x[f] = 0, t.roomhelper = {
                                r: 0
                            }, o.add(tpGS.gsap.set(_R_is_Editor ? RVS.SBGS[RVS.S.slideId].wrap : i.wrap[0], {
                                perspective: 1200,
                                transformStyle: "preserve-3d",
                                transformOrigin: m
                            }), 0), o.add(tpGS.gsap.to(i.sbg, 3 * t.md, S), 0), o.add(tpGS.gsap.to(i.sbg, 3 * t.md, x), b - t.md), o.add(tpGS.gsap.to(t.roomhelper, 3 * t.md, {
                                r: Math.abs(t.t)
                            }), 0), o.add(tpGS.gsap.to(t.roomhelper, 3 * t.md, {
                                r: 0
                            }), b - t.md), "in" === r && 1 !== s && n && (void 0 === i.cube && a.transitions.d3.buildCube(i), o.add(a.transitions.d3.setWall(i.cube, S[f], f, i.mDIM, t.c), 0), h.push(i.cube.c))
                        } else t.roomhelper = !1, o.add(tpGS.gsap.set(_R_is_Editor ? RVS.SBGS[RVS.S.slideId].wrap : i.wrap[0], {
                            perspective: "none",
                            transformStyle: "none",
                            transformOrigin: "50% 50%"
                        }), 0), !_R_is_Editor && !0 !== a[e].firstSlideAnimDone && n && (void 0 === i.cube && a.transitions.d3.buildCube(i), o.add(a.transitions.d3.setWall(i.cube, p[v], v, i.mDIM, t.c, !0), 0), o.add(tpGS.gsap.fromTo(i.cube.w, 4 * t.md, {
                            opacity: 0
                        }, {
                            opacity: 1
                        }), 0), h.push(i.cube.c));
                        return t.helper = {
                            o: 0,
                            oo: 1
                        }, o.add(tpGS.gsap.to(t.helper, b, {
                            o: 1,
                            oo: 0,
                            ease: t.e
                        }), t.md + 0), o.add(tpGS.gsap.set(h, jQuery.extend(!0, {}, p, {
                            force3D: !0,
                            transformOrigin: m
                        })), 0), "turn" !== t.f && o.add(tpGS.gsap.to(h, 3 * t.md, g), 0), o.add(tpGS.gsap.to(h, b, u), t.md + 0), "turn" !== t.f && o.add(tpGS.gsap.to(h, 3 * t.md, {
                            z: 0,
                            ease: "power1.inOut"
                        }), b - t.md), "out" === r && 1 !== s && o.add(tpGS.gsap.to(h, 2 * t.md, {
                            opacity: 0
                        }), t.dur - 2 * t.md), o
                    }
                }
            }
        },
        animatedCanvasUpdate: function(e, t) {
            t.cDIMS = a.getBGCanvasDetails(e, t), t.canvas.style.backgroundColor = "transparent", t.canvas.style.opacity = 1, t.canvas.width !== t.mDIM.width && (t.canvas.width = t.mDIM.width), t.canvas.height !== t.mDIM.height && (t.canvas.height = t.mDIM.height), _R_is_Editor || !0 !== a[e].clearModalBG || (t.ctx.clearRect(0, 0, t.canvas.width, t.canvas.height), a[e].clearModalBG = !1, t.sbg.parentNode.style.opacity = 1), t.col = Math.min(t.col || 1, Math.max(t.canvas.width - 10, 1)), t.row = Math.min(t.row || 1, Math.max(t.canvas.height - 10, 1)), t.SLOT = jQuery.extend(!0, {
                s: {},
                c: {}
            }, o(e, t.col, t.row, t.mDIM, "OW", "OH")), t.SLOT.DX = 0 - t.SLOT.OW / 2, t.SLOT.DY = 0 - t.SLOT.OH / 2, t.row = Math.ceil(t.mDIM.height / t.SLOT.OH) || 1, void 0 !== t.callFromAnimatedCanvasUpdate && t.callFromAnimatedCanvasUpdate()
        },
        slideAnimFinished: function(e, t, i, r) {
            void 0 !== t && (void 0 !== t.bgvid && t.bgvid.length > 0 && "out" === i.direction && (t.drawVideoCanvasImagesRecall = !1, a.stopVideo(t.bgvid, e), t.bgvid[0].style.display = "none", t.bgvid[0].style.zIndex = 0), t.panFake && t.panFake.img && ("out" === i.direction ? t.panFake.img.style.display = "none" : t.panFake.img.style.display = "block"), "in" === i.direction && (a.transitions.motionFilter.complete(t), t.ctx.canvas.style.filter = "none", tpGS.gsap.set(i.slide, {
                zIndex: 20
            }), delete t.animateDirection, t.bgvid.length > 0 && (t.isHTML5 ? tpGS.gsap.set(t.bgvid[0], {
                zIndex: 30,
                display: "block",
                opacity: 1
            }) : (a.resetVideo(t.bgvid, e), tpGS.gsap.delayedCall(.1, (function() {
                a.playVideo(t.bgvid, e, !0), tpGS.gsap.set(t.bgvid[0], {
                    zIndex: 30,
                    display: "block",
                    opacity: 1
                })
            }))))), "out" === i.direction ? (tpGS.gsap.set(i.slide, {
                zIndex: 10
            }), tpGS.gsap.set(t.canvas, {
                rotationX: 0,
                rotationY: 0,
                rotationZ: 0,
                x: 0,
                y: 0,
                z: 0,
                opacity: 1
            }), t.currentState = void 0) : t.currentState = "idle", void 0 !== t.cube && (t.cube.c.style.display = "none"), "in" === i.direction && (a.updateSlideBGs(e, t.skeyindex, t), void 0 === t.panzoom || _R_is_Editor || a.startPanZoom(a[e].pr_next_bg, e, void 0 !== a[e].panzoomTLs[t.skeyindex] ? a[e].panzoomTLs[t.skeyindex].progress() : 0, t.skeyindex, "play", t.key), void 0 !== i.BG && !0 !== r && i.BG.ctx.clearRect(0, 0, 2 * t.canvas.width, 2 * t.canvas.height)))
        },
        animateCore: function(e, t, i, r) {
            var o, s, n, l, d = t.canvas,
                c = t.ctx,
                p = 0;
            if (t.col = i.col, t.row = i.row, _R_is_Editor && t.three) {
                for (t.canvas.style.display = "block"; t.three.scene.children.length > 0;) t.three.scene.remove(t.three.scene.children[0]);
                t.three.canvas.parentNode.removeChild(t.three.canvas), t.three = void 0
            }
            a.animatedCanvasUpdate(e, t), i.row = t.row, t.animateDirection = r.direction, r.delay = void 0 === r.delay ? 0 : r.delay, n = i.col * i.row, l = Array(n), void 0 === t.help_canvas && "out" === r.direction && void 0 !== r.bgColor && (t.help_canvas = document.createElement("canvas"), t.help_ctx = t.help_canvas.getContext("2d"), t.help_canvas.style.backgroundColor = "transparent"), "out" === r.direction && void 0 !== r.bgColor && (t.help_canvas.width = t.mDIM.width, t.help_canvas.height = t.mDIM.height, t.help_ctx.fillStyle = r.bgColor, t.help_ctx.fillRect(0, 0, t.mDIM.width, t.mDIM.height)), i.mo = a.transitions.motionFilter.init(t, i.mo), i.dur = i.ms / i.sec, void 0 !== r.d3 && (r.d3.dur = i.dur, r.d3.fd = .7 * i.dur, r.d3.md = .15 * i.dur, r.d3.sdir = r.sdir), t.SLOT.c = {
                ws: 0,
                hs: 0,
                wd: 0,
                hd: 0
            }, i.mo > 0 && _R_is_Editor && c.clearRect(0, 0, d.width, d.height);
            var g = tpGS.gsap.timeline({
                onUpdate: function() {
                    if (p = 0, i.mo > 0 ? a.transitions.motionFilter.render(t, i.moo) : c.clearRect(0, 0, d.width, d.height), t.help_canvas && "out" === r.direction && c.drawImage(t.help_canvas, 0, 0), (r.filter && r.filter.u || !_R_is_Editor) && a.transitions.filter.update(r.filter, c, t.canvasFilterBlur), _R_is_Editor && 0 !== i.zIndex && void 0 !== i.zIndex && tpGS.gsap.set(r.slide, {
                            zIndex: i.zIndex
                        }), void 0 !== t.shadowCanvas)
                        for (o = 0; o < i.col; o++)
                            for (t.SLOT.SX = t.SLOT.OW * o, t.SLOT.tw = t.SLOT.OW * (o + .5), t.SLOT.c.wd = t.mDIM.width - (t.SLOT.tw + t.SLOT.DX + t.SLOT.OW), t.SLOT.c.wd = t.SLOT.c.wd < 0 ? t.SLOT.c.wd : 0, t.SLOT.DW = t.SLOT.SW = t.SLOT.OW + t.SLOT.c.wd, s = 0; s < i.row; s++) {
                                c.save();
                                var n = -Math.PI / 180 * l[p].r,
                                    g = 0 !== i.r ? Math.cos(n) * l[p].sx : l[p].sx,
                                    u = 0 !== i.r ? Math.cos(n) * l[p].sy : l[p].sy,
                                    h = 0 !== i.r ? Math.sin(n) * l[p].sx : 0,
                                    m = 0 !== i.r ? Math.sin(n) * -l[p].sy : 0;
                                t.SLOT.SY = t.SLOT.OH * s, t.SLOT.th = t.SLOT.OH * (s + .5), a.transitions[r.effect] && a.transitions[r.effect].beforeDraw && a.transitions[r.effect].beforeDraw(e, c, l[p], t), i.m && (c.beginPath(), c.rect(t.SLOT.OW * o, t.SLOT.OH * s, t.SLOT.OW, t.SLOT.OH), c.clip()), c.transform(g, h, m, u, t.SLOT.tw + l[p].x, t.SLOT.th + l[p].y), c.globalAlpha = Math.max(0, l[p].o), t.SLOT.c.hd = t.mDIM.height - (t.SLOT.th + t.SLOT.DY + t.SLOT.OH), t.SLOT.c.hd = t.SLOT.c.hd < 0 ? t.SLOT.c.hd : 0, t.SLOT.DH = t.SLOT.SH = t.SLOT.OH + t.SLOT.c.hd, t.SLOT.SW > 1 && t.SLOT.SH > 1 && c.drawImage(t.shadowCanvas, t.SLOT.SX, t.SLOT.SY, t.SLOT.SW, t.SLOT.SH, t.SLOT.DX, t.SLOT.DY, t.SLOT.DW, t.SLOT.DH), c.restore(), a.transitions[r.effect] && a.transitions[r.effect].afterDraw && a.transitions[r.effect].afterDraw(e, c, l[p], t, {
                                    csx: g,
                                    csy: u,
                                    ssx: h,
                                    ssy: m
                                }), p++
                            }
                    void 0 !== r.d3 && r.d3.su && a.transitions.d3.ticker(r.d3, t, r.direction), t.currentState = "animating"
                },
                onComplete: function() {
                    a.slideAnimFinished(e, t, r)
                }
            });
            if (i.col * i.row < 2 && (i.f = "start"), 0 !== i.zIndex && void 0 !== i.zIndex && g.add(tpGS.gsap.set(r.slide, {
                    zIndex: parseInt(i.zIndex, 0)
                }), 0), i.m = "false" != i.m && !1 !== i.m, "in" === r.direction) {
                for (o = 0; o < n; o++) l[o] = {
                    x: a.SATools.getOffset(i.x, i.m ? t.SLOT.OW : t.mDIM.width, r.sdir, o),
                    y: a.SATools.getOffset(i.y, i.m ? t.SLOT.OH : t.mDIM.height, r.sdir, o),
                    o: a.SATools.getSpecialValue(i.o, o, r.sdir),
                    sx: a.SATools.getSpecialValue(i.sx, o, r.sdir),
                    sy: a.SATools.getSpecialValue(i.sy, o, r.sdir),
                    r: 0 !== i.r ? a.SATools.getSpecialValue(i.r, o, r.sdir) : 0
                };
                g.add(tpGS.gsap.to(l, i.dur, {
                    o: 1,
                    sx: 1,
                    sy: 1,
                    r: 0,
                    x: 0,
                    y: 0,
                    ease: i.e,
                    stagger: {
                        amount: "nodelay" === i.f ? 0 : i.ms / i.stasec,
                        grid: [i.col, i.row],
                        from: "nodelay" === i.f ? "start" : i.f
                    }
                }), r.delay), void 0 !== r.d3 && g.add(a.transitions.d3.cubeTL(e, r.d3, t, "in"), 0), a.transitions.filter.extendTimeLine(g, r.filter, t)
            } else {
                for (o = 0; o < n; o++) l[o] = {
                    x: 0,
                    y: 0,
                    o: 1,
                    sx: 1,
                    sy: 1,
                    r: 0
                };
                g.add(tpGS.gsap.to(l, i.dur, {
                    o: function(e) {
                        return a.SATools.getSpecialValue(i.o, e, r.sdir)
                    },
                    sx: function(e) {
                        return a.SATools.getSpecialValue(i.sx, e, r.sdir)
                    },
                    sy: function(e) {
                        return a.SATools.getSpecialValue(i.sy, e, r.sdir)
                    },
                    r: 0 !== i.r && void 0 !== i.r ? function(e) {
                        return a.SATools.getSpecialValue(i.r, e, r.sdir)
                    } : 0,
                    x: function(e) {
                        return a.SATools.getOffset(i.x, i.m ? t.SLOT.OW : t.mDIM.width, r.sdir, e) * (i.reversed ? -1 : 1)
                    },
                    y: function(e) {
                        return a.SATools.getOffset(i.y, i.m ? t.SLOT.OH : t.mDIM.height, r.sdir, e) * (i.reversed ? -1 : 1)
                    },
                    ease: i.e,
                    stagger: {
                        amount: "nodelay" === i.f ? 0 : i.ms / i.stasec,
                        grid: [i.col, i.row],
                        from: "nodelay" === i.f ? "start" : i.f
                    }
                }), r.delay + (void 0 !== i.outdelay ? i.outdelay : 0)), void 0 !== r.d3 && g.add(a.transitions.d3.cubeTL(e, r.d3, t, "out"), 0)
            }
            a.transitions[r.effect] && a.transitions[r.effect].extendTimeLine && a.transitions[r.effect].extendTimeLine(e, g, l, i, r, t.mDIM), _R_is_Editor ? RVS.TL[RVS.S.slideId].slide.add(g, 0) : a[e].mtl.add(g, r.delay)
        }
    });
    var r = function(e, t) {
            return void 0 !== t && a.isNumeric(t) ? parseFloat(t, 0) : null == t || "default" === t || "d" === t ? e : t
        },
        o = function(e, t, i, a, r, o) {
            var s = {};
            return s[r] = Math.ceil(a.width / t), s[o] = (_R_is_Editor, Math.ceil(a.height / i)), s
        },
        s = function(e) {
            return null == e || 0 === e || NaN === e ? 1 : e
        },
        n = function(e, t) {
            _R_is_Editor || (a[e].duringslidechange = !0);
            var i, o = _R_is_Editor ? -1 : "arrow" == a[e].sc_indicator ? void 0 === a[e].sc_indicator_dir ? a[e].sdir : a[e].sc_indicator_dir : a[e].sdir,
                n = !!_R_is_Editor || void 0 !== a[e].pr_next_bg && a[e].pr_next_bg.length > 0 && void 0 !== a[e].pr_next_bg[0],
                l = !!_R_is_Editor || void 0 !== a[e].pr_active_bg && a[e].pr_active_bg.length > 0 && void 0 !== a[e].pr_active_bg[0],
                c = _R_is_Editor ? RVS.SBGS[RVS.S.slideId].n : n ? a[e].sbgs[a[e].pr_next_bg[0].dataset.key] : void 0,
                p = _R_is_Editor ? RVS.SBGS[RVS.S.slideId].c : l ? a[e].sbgs[a[e].pr_active_bg[0].dataset.key] : void 0;
            o = 1 === o ? -1 : 1, _R_is_Editor || (delete a[e].sc_indicator, delete a[e].sc_indicator_dir), i = jQuery.extend(!0, {}, function(e, t, i) {
                var o = void 0 !== a.transitions[t.anim.e] && void 0 !== a.transitions[t.anim.e].getBasic ? a.transitions[t.anim.e].getBasic() : a.getBasic(),
                    n = "";
                for (var l in o.out = null == o.out ? {} : o.out, o.out.reversed = void 0 === t.out && (void 0 === o.out.reversed || o.out.reversed), void 0 !== t.iw && parseInt(t.iw, 0), void 0 !== t.ow && parseInt(t.ow, 0), o.attr) n = o.attr[l], o.in[n] = r(o.in[n], t.in[n]), o.out[n] = o.out.reversed ? o.in[n] : void 0 === t.out ? o.out[n] : r(o.out[n], t.out[n]);
                return o.filter = void 0 !== t.filter ? jQuery.extend(!0, t.filter, t.filter) : o.filter, a.transitions[t.anim.e] && a.transitions[t.anim.e].updateAnim && (o = a.transitions[t.anim.e].updateAnim(e, o, i)), o.e = t.anim.e, void 0 !== o.in && (o.in.col = "random" === o.in.col ? tpGS.gsap.utils.random(1, 10, 1) : s(o.in.col), o.in.row = "random" === o.in.row ? tpGS.gsap.utils.random(1, 10, 1) : s(o.in.row)), void 0 !== o.out && (o.out.col = "random" === o.out.col ? tpGS.gsap.utils.random(1, 10, 1) : s(o.out.col), o.out.row = "random" === o.out.row ? tpGS.gsap.utils.random(1, 10, 1) : s(o.out.row)), o
            }(e, t, o)), void 0 !== c.random && void 0 !== a.SLTR && void 0 !== p && (delete p.help_canvas, delete p.help_ctx), i.ms = r(void 0, void 0 === t.anim.ms ? 1e3 : t.anim.ms), i.f = r(void 0, t.anim.f), i.p = r(void 0, t.anim.p), i.d = r(void 0, t.anim.d), i.o = t.anim.o, void 0 !== t.d3 && (t.d3.t = void 0 !== t.d3.t && 0 !== t.d3.t && t.d3.t, t.d3.su = "true" == t.d3.su || 1 == t.d3.su, t.d3.su && (t.d3.smi = void 0 === t.d3.smi ? 0 : parseFloat(t.d3.smi), t.d3.sl = void 0 === t.d3.sl ? 1 : parseFloat(t.d3.sl), t.d3.sma = void 0 === t.d3.sma ? .5 : parseFloat(t.d3.sma), t.d3.sc = void 0 === t.d3.sc ? "0,0,0" : tpGS.gsap.utils.splitColor(t.d3.sc).join(",")), i.p = "none", void 0 !== i.in.row && void 0 !== i.in.col && i.in.row * i.in.col > 200 && (i.filter = void 0)), i.in.sec = void 0 === i.in.sec ? 1e3 : i.in.sec, i.in.stasec = void 0 === i.in.stasec ? void 0 === i.d ? 1500 : 100 * i.d : i.in.stasec, i.in.ms = "default" === i.ms || "d" === i.ms ? i.in.ms : "random" === i.ms ? Math.round(1e3 * Math.random() + 300) : null != i.ms ? parseInt(i.ms, 0) : i.in.ms, i.out.ms = i.in.ms, void 0 !== i.filter && (i.filter.ms = i.in.ms, i.filter.sec = i.in.sec, i.filter.e = void 0 === i.filter.e || "default" === i.filter.e ? i.in.e : i.filter.e), i.in.f = void 0 === i.f || "default" === i.f || "d" === i.f ? i.in.f : i.f, i.in.f = "slidebased" === i.in.f ? 1 == o ? "start" : "end" : "oppslidebased" === i.in.f ? 1 === o ? "end" : "start" : i.in.f, i.out.f = i.in.f, i.out = jQuery.extend(!0, {}, i.in, i.out), i.in.eng = i.out.eng = t.anim.eng, void 0 !== i.out.eng && null == a[i.out.eng] && (i.out.o = 0, i.in.o = 0, i.in.ms = i.out.ms = 1e3, i.in.eng = i.out.eng = "animateCore"), void 0 !== i.p && "none" !== i.p && (i.in.bg = "dark" === i.p ? "#000" : "light" === i.p ? "#fff" : "transparent", i.out.delay = "none" !== i.p ? function(e, t) {
                return e / 2.5
            } : 0, 1 === i.out.o && 0 === i.out.x && 0 === i.out.y && (i.out.o = 0)), "forceinout" === i.o ? (i.in.zIndex = 20, i.out.zIndex = 10) : "outin" !== i.o && (1 !== i.in.o || 0 !== i.in.x || 0 !== i.in.y || void 0 === t.out || 1 === i.out.o && 0 === i.out.x && 0 === i.out.y) || (i.in.zIndex = 10, i.out.zIndex = 20), c.bgvid.length > 0 && (i.in = g(e, i.in, c, "in")), l && void 0 !== p.bgvid && p.bgvid.length > 0 && (i.out = g(e, i.out, p, "out")), void 0 !== i.out && (i.out.simplify || i.in.simplify) && (i.out = d(i.out)), i.in.simplify && (i.in = d(i.in)), _R_is_Editor || requestAnimationFrame((function() {
                a.generalObserver(a.ISM, !0)
            })), i.in.eng = void 0 === i.in.eng ? "animateCore" : i.in.eng, i.out.eng = void 0 === i.out.eng ? "animateCore" : i.out.eng, l && !0 !== i.out.skip && a[i.out.eng](e, p, i.out, {
                effect: i.e,
                slide: _R_is_Editor ? RVS.SBGS[RVS.S.slideId].c.sbg : a[e].pr_active_slide,
                direction: "out",
                delay: 0,
                bgColor: i.in.bg,
                sdir: o,
                filter: void 0,
                d3: t.d3,
                addOns: _R_is_Editor ? t.addOns : void 0
            }), !0 !== i.in.skip && a[i.in.eng](e, c, i.in, {
                effect: i.e,
                slide: _R_is_Editor ? RVS.SBGS[RVS.S.slideId].n.sbg : a[e].pr_next_slide,
                direction: "in",
                delay: l ? "function" == typeof i.out.delay ? i.out.delay(i.in.ms / 1e3, i.out.row * i.out.col) : i.out.delay : i.in.delay,
                BG: p,
                outslide: _R_is_Editor ? RVS.SBGS[RVS.S.slideId].c.sbg : a[e].pr_active_slide,
                sdir: o,
                filter: i.filter,
                d3: t.d3,
                addOns: _R_is_Editor ? t.addOns : void 0
            })
        },
        l = function(e, t, i) {
            var r = e.height / e.width;
            if (i.ratio = i.conth / i.contw, i.ratio < r && "contain" === t.bgfit || i.ratio > r && "cover" === t.bgfit) i.height = e.width * i.ratio;
            else if (i.ratio > r && "contain" === t.bgfit || i.ratio < r && "cover" === t.bgfit) i.width = e.width * r / i.ratio;
            else if (i.ratio !== r || "contain" !== t.bgfit && "cover" !== t.bgfit) {
                var o = t.bgfit.split(" ");
                1 === o.length && (o[1] = o[0]), i.width = "auto" === o[0] ? i.contw : e.width * (parseInt(o[0], 0) / 100), i.height = "auto" === o[1] ? i.conth : i.width * i.ratio, t.usepattern = !0
            } else i.width = e.width;
            var s = function(e, t, i) {
                return 1 === (i = i.split(" ")).length && (i[1] = i[0]), {
                    x: "center" === i[0] || "50%" === i[0] ? (e.width - t.width) / 2 : "left" === i[0] ? 0 : "right" === i[0] ? e.width - t.width : a.isNumeric(i[0]) ? 0 : i[0].indexOf("%") >= 0 ? parseInt(i[0], 0) / 100 * e.width - parseInt(i[0], 0) / 100 * t.width : parseInt(i[0], 0),
                    y: "center" === i[1] || "50%" === i[1] ? (e.height - t.height) / 2 : "top" === i[1] ? 0 : "bottom" === i[1] ? e.height - t.height : a.isNumeric(i[1]) ? 0 : i[1].indexOf("%") >= 0 ? parseInt(i[1], 0) / 100 * e.height - parseInt(i[1], 0) / 100 * t.height : parseInt(i[1], 0)
                }
            }(e, i, t.bgposition);
            return i.x = s.x, i.y = s.y, i
        },
        d = function(e) {
            return e.o = 0, e.r = 0, e.row = 1, e.col = 1, e.x = 0, e.y = 0, e.sx = 1, e.sy = 1, e
        },
        c = function(e) {
            return e = "false" !== e && !1 !== e && "off" !== e && void 0 !== e && 0 !== e && -1 !== e
        },
        p = function(e) {
            var t = e.toString(16);
            return 1 == t.length ? "0" + t : t
        },
        g = function(e, t, i, r) {
            return t.skip = !1, "in" === r ? i.isHTML5 ? (i.bgvid[0].style.display = "none", a.resetVideo(i.bgvid, e), i.animateDirection = "in", i.currentState = "animating", i.drawVideoCanvasImagesRecall = !0, a.updateVideoFrames(e, i, !0), a.playVideo(i.bgvid, e)) : (a[e].videos[i.bgvid[0].id].pauseCalled = !1, t.waitToSlideTrans = a[e].videos[i.bgvid[0].id].waitToSlideTrans, !0 !== i.poster ? (a.resetVideo(i.bgvid, e), a[e].videos[i.bgvid[0].id].prePlayForaWhile = !1, !0 !== t.waitToSlideTrans && a.playVideo(i.bgvid, e, !0), tpGS.gsap.fromTo(i.bgvid, t.ms / t.sec, {
                zIndex: 30,
                display: "block",
                opacity: 0
            }, {
                opacity: 1,
                zIndex: 30,
                display: "block"
            }), i.loadobj.bgColor = !0, i.bgcolor = "#000", t.simplify = !0) : (a[e].videos[i.bgvid[0].id].prePlayForaWhile = !1, a.resetVideo(i.bgvid, e), a.playVideo(i.bgvid, e), i.bgvid[0].style.display = "none", i.bgvid[0].style.zIndex = 0, i.bgvid[0].style.opacity = 0)) : "out" === r && (i.isHTML5 ? (i.currentState = "animating", i.drawVideoCanvasImagesRecall = !0, a.updateVideoFrames(e, i, !0), window.requestAnimationFrame((function() {
                tpGS.gsap.to(i.bgvid, .1, {
                    zIndex: 0,
                    display: "none"
                })
            }))) : (a.stopVideo(i.bgvid, e, !0), !0 !== i.poster && (i.loadobj.bgColor = !0, i.bgcolor = "#000"))), t
        },
        u = function(e, t, i, a) {
            return Math.sqrt(Math.pow(e - i, 2) + Math.pow(t - a, 2))
        },
        h = function(e, t) {
            var i = t + Math.PI / 2;
            return {
                x1: e.x,
                y1: e.y,
                x2: e.x + 100 * Math.cos(i),
                y2: e.y + 100 * Math.sin(i)
            }
        },
        m = function(e, t) {
            var i = e.y2 - e.y1,
                a = e.x1 - e.x2,
                r = i * e.x1 + a * e.y1,
                o = t.y2 - t.y1,
                s = t.x1 - t.x2,
                n = o * t.x1 + s * t.y1,
                l = i * s - o * a;
            return 0 !== l && {
                x: Math.round((s * r - a * n) / l * 100) / 100,
                y: Math.round((i * n - o * r) / l * 100) / 100
            }
        };
    window.RS_MODULES = window.RS_MODULES || {}, window.RS_MODULES.slideanims = {
        loaded: !0,
        version: "6.6.0"
    }, window.RS_MODULES.checkMinimal && window.RS_MODULES.checkMinimal()
}(jQuery),
function(e) {
    "use strict";
    jQuery.fn.revolution = jQuery.fn.revolution || {};
    var t = jQuery.fn.revolution;

    function i(e) {
        return null == e ? -1 : t.isNumeric(e) ? e : e.split(":").length > 1 ? 60 * parseInt(e.split(":")[0], 0) + parseInt(e.split(":")[1], 0) : e
    }
    jQuery.extend(!0, t, {
        preLoadAudio: function(e, i) {
            t[i].videos = void 0 === t[i].videos ? {} : t[i].videos, e.find(".rs-layer-audio").each((function() {
                var a = jQuery(this),
                    r = t[i].videos[a[0].id] = void 0 === t[i].videos[a[0].id] ? f(a.data(), "audio", t.gA(e[0], "key")) : t[i].videos[a[0].id],
                    o = {};
                0 === a.find("audio").length && (o.src = null != r.mp4 ? r.mp4 : "", o.pre = r.pload || "", this.id = void 0 === this.id || "" === this.id ? a.attr("audio-layer-" + Math.round(199999 * Math.random())) : this.id, o.id = this.id, void 0 === t[i].audioqueue && (t[i].audioqueue = []), t[i].audioqueue.push(o), t.manageVideoLayer(a, i, t.gA(e[0], "key"), !0))
            }))
        },
        preLoadAudioDone: function(e, i, a) {
            var r = t[i].videos[e[0].id];
            t[i].audioqueue && t[i].audioqueue.length > 0 && jQuery.each(t[i].audioqueue, (function(e, t) {
                r.mp4 !== t.src || t.pre !== a && "auto" !== t.pre || (t.status = "loaded")
            }))
        },
        checkfullscreenEnabled: function(e) {
            if (void 0 !== window.fullScreen) return window.fullScreen;
            if (void 0 !== document.fullscreen) return document.fullscreen;
            if (void 0 !== document.mozFullScreen) return document.mozFullScreen;
            if (void 0 !== document.webkitIsFullScreen) return document.webkitIsFullScreen;
            var i = t.isWebkit() && /Apple Computer/.test(navigator.vendor) ? 42 : 5;
            return screen.width == t.winW && Math.abs(screen.height - t.getWinH(e)) < i
        },
        showVideo: function(e) {
            tpGS.gsap.to(e, .3, {
                opacity: 1,
                display: "block",
                ease: "power3.inOut"
            })
        },
        resetVideo: function(e, i, a) {
            if ("updateAndResize" !== a) {
                var r = t[i].videos[e[0].id];
                if ("resetVideo" !== r.cRS) switch (r.cRS = "resetVideo", r.type) {
                    case "youtube":
                        r.rwd && null != r.player && void 0 !== r.player.seekTo && (r.player.seekTo(-1 == r.ssec ? 0 : r.ssec), r.player.pauseVideo()), r.bgvideo || "preset" === a || 0 != r.jsposter.length || t.showVideo(e.find("iframe"));
                        break;
                    case "vimeo":
                        void 0 !== r.vimeoplayer && r.rwd && (0 !== r.ssec && -1 !== r.ssec || r.bgvideo || r.jsposter.length > 0) && (r.vimeoplayer.setCurrentTime(-1 == r.ssec ? 0 : r.ssec), r.vimeoplayer.pause()), 0 != r.jsposter.length || r.bgvideo || "preset" === a || t.showVideo(e.find("iframe"));
                        break;
                    case "html5":
                        if (t.ISM && r.notonmobile) return !1;
                        r.bgvideo || t.showVideo(r.jvideo), r.rwd && "playing" !== r.cSS && !isNaN(r.video.duration) && (r.justReseted = !0, r.video.currentTime = -1 == r.ssec ? 0 : r.ssec), ("mute" == r.volume || t.lastToggleState(e.videomutetoggledby) || !0 === t[i].globalmute) && (r.video.muted = !0)
                }
            }
        },
        Mute: function(e, i, a) {
            var r = !1,
                o = t[i].videos[e[0].id];
            switch (o.type) {
                case "youtube":
                    o.player && (!0 === a && o.player.mute(), !1 === a && n(o, parseInt(o.volcache, 0)), r = o.player.isMuted ? o.player.isMuted() : "mute" === o.volume);
                    break;
                case "vimeo":
                    o.volcachecheck || (o.volcache = o.volcache > 1 ? o.volcache / 100 : o.volcache, o.volcachecheck = !0), o.volume = !0 === a ? "mute" : !1 === a ? o.volcache : o.volume, void 0 !== a && null != o.vimeoplayer && s(o, !0 === a ? 0 : o.volcache), r = "mute" == o.volume || 0 === o.volume;
                    break;
                case "html5":
                    o.volcachecheck || (o.volcache = o.volcache > 1 ? o.volcache / 100 : o.volcache, o.volcachecheck = !0), o.video.volume = o.volcache, void 0 !== a && o.video && (o.video.muted = a), r = void 0 !== o.video ? o.video.muted : r
            }
            if (void 0 === a) return r
        },
        stopVideo: function(e, i, a) {
            if (void 0 !== t[i] && void 0 !== t[i]) {
                var r = t[i].videos[e[0].id];
                if (void 0 !== r && ("stopVideo" !== r.cRS || "paused" !== r.cSS)) switch (r.cRS = "stopVideo", t[i].leaveViewPortBasedStop || (t[i].lastplayedvideos = []), t[i].leaveViewPortBasedStop = !1, r.type) {
                    case "youtube":
                        void 0 !== r.player && 2 !== r.player.getPlayerState() && 5 !== r.player.getPlayerState() && (r.player.pauseVideo(), void 0 !== a && p(i, r, "hide"));
                        break;
                    case "vimeo":
                        void 0 !== r.vimeoplayer && (r.vimeoplayer.pause(), void 0 !== a && p(i, r, "hide"));
                        break;
                    case "html5":
                        r.video && (r.video.pause(), t.ISM && b(r, 1))
                }
            }
        },
        playVideo: function(e, i, r) {
            var o = t[i].videos[e[0].id];
            if (clearTimeout(o.videoplaywait), "playVideo" !== o.cRS || "playing" !== o.cSS) switch (o.cRS = "playVideo", o.type) {
                case "youtube":
                    if (0 == e.find("iframe").length) e.append(o.videomarkup), u(e, i, !0);
                    else if (void 0 !== o.player && null != o.player.playVideo) {
                        var s = o.player.getCurrentTime();
                        o.nseTriggered && (s = -1, o.nseTriggered = !1), -1 != o.ssec && o.ssec > s && o.player.seekTo(o.ssec), c(o)
                    } else o.videoplaywait = setTimeout((function() {
                        t.playVideo(e, i)
                    }), 50);
                    break;
                case "vimeo":
                    if (0 == e.find("iframe").length) delete o.vimeoplayer, e.append(o.videomarkup), u(e, i, !0);
                    else if (e.hasClass("rs-apiready"))
                        if (o.vimeoplayer = null == o.vimeoplayer ? new Vimeo.Player(e.find("iframe").attr("id")) : o.vimeoplayer, o.vimeoplayer.getPaused()) {
                            s = void 0 === o.currenttime ? 0 : o.currenttime;
                            o.nseTriggered && (s = -1, o.nseTriggered = !1), -1 != o.ssec && o.ssec > s && o.vimeoplayer.setCurrentTime(o.ssec), ("mute" == o.volume || 0 === o.volume || t.lastToggleState(e.data("videomutetoggledby")) || !0 === t[i].globalmute) && (o.volumetoken = !0, o.vimeoplayer.setMuted(!0)), d(o)
                        } else o.videoplaywait = setTimeout((function() {
                            t.playVideo(e, i)
                        }), 50);
                    else o.videoplaywait = setTimeout((function() {
                        t.playVideo(e, i)
                    }), 50);
                    break;
                case "html5":
                    if (o.metaloaded) {
                        if (("" + o.video.duration == "NaN" || o.video.readyState < 4) && !r) return o.loadRequested || (o.video.load(), o.loadRequested = !0), void setTimeout((function() {
                            t.playVideo(e, i)
                        }), 50);
                        s = o.video.currentTime;
                        o.nseTriggered && (s = -1, o.nseTriggered = !1), -1 != o.ssec && o.ssec > s && o.ssec < o.video.duration && (o.video.currentTime = o.ssec), l(o, void 0, i)
                    } else a(o.video, "loadedmetadata", function(e) {
                        t.playVideo(e, i)
                    }(e))
            }
        },
        isVideoPlaying: function(e, i) {
            var a = !1;
            return null != t[i].playingvideos && jQuery.each(t[i].playingvideos, (function(t, i) {
                e.attr("id") == i.attr("id") && (a = !0)
            })), a
        },
        removeMediaFromList: function(e, t) {
            w(e, t)
        },
        prepareCoveredVideo: function(e) {
            clearTimeout(t[e].resizePrepareCoverVideolistener);
            var i = "carousel" === t[e].sliderType ? t[e].carousel.justify ? void 0 === t[e].carousel.slide_widths ? void 0 : t[e].carousel.slide_widths[t[e].carousel.focused] : t[e].carousel.slide_width : t[e].canv.width,
                a = "carousel" === t[e].sliderType ? t[e].carousel.slide_height : t[e].canv.height;
            if (0 !== i && 0 !== a && void 0 !== i && void 0 !== a)
                for (var r in t[e].videos) {
                    var o = t[e].videos[r];
                    if (void 0 !== o.jvideo && ((o.bgvideo || o.jvideo.parent().hasClass("rs-fsv") || t.closestNode(o.video, "RS-LAYER") && t.closestNode(o.video, "RS-LAYER").classList.contains("rs-fsv")) && ("html5" === o.type && void 0 !== o.jvideo && tpGS.gsap.set(o.jvideo, {
                            width: i
                        }), void 0 === t[e].activeRSSlide || o.slideid === t.gA(t[e].slides[t[e].activeRSSlide], "key") || void 0 === t[e].pr_next_slide || o.slideid === t.gA(t[e].pr_next_slide[0], "key")))) {
                        o.vd = o.ratio.split(":").length > 1 ? o.ratio.split(":")[0] / o.ratio.split(":")[1] : 1;
                        var s, n = i / a,
                            l = o.vd * n * 100,
                            d = o.vd / n * 100;
                        "Edge" === t.get_browser() || "IE" === t.get_browser() ? s = n > o.vd ? {
                            minWidth: "100%",
                            height: l + "%",
                            x: "-50%",
                            y: "-50%",
                            top: "50%",
                            left: "50%",
                            position: "absolute"
                        } : {
                            minHeight: "100%",
                            width: d + "%",
                            x: "-50%",
                            y: "-50%",
                            top: "50%",
                            left: "50%",
                            position: "absolute"
                        } : (o.bgvideo && void 0 !== o.vimeoid && "carousel" == t[e].sliderType && (l = 100, d = 100), s = n > o.vd ? {
                            height: (o.fitCover ? 100 : l) + "%",
                            width: "100%",
                            top: o.fitCover ? 0 : -(l - 100) / 2 + "%",
                            left: "0px",
                            position: "absolute"
                        } : {
                            width: (o.fitCover ? 100 : d) + "%",
                            height: "100%",
                            left: o.fitCover ? 0 : -(d - 100) / 2 + "%",
                            top: "0px",
                            position: "absolute"
                        }), void 0 === o.vimeoid && void 0 === o.ytid || (s.maxWidth = "none", s.maxHeight = "none"), tpGS.gsap.set(o.jvideo, s)
                    }
                } else t[e].resizePrepareCoverVideolistener = setTimeout((function() {
                    t.prepareCoveredVideo(e)
                }), 100)
        },
        checkVideoApis: function(e, i) {
            location.protocol;
            if (!t[i].youtubeapineeded) {
                var a = e.find("iframe");
                if ((null != e.data("ytid") || a.length > 0 && a.attr("src") && a.attr("src").toLowerCase().indexOf("youtube") > 0) && (t[i].youtubeapineeded = !0), t[i].youtubeapineeded && !window.rs_addedyt) {
                    t[i].youtubestarttime = Date.now(), window.rs_addedyt = !0;
                    var r = document.createElement("script"),
                        o = t.getByTag(document, "script")[0],
                        s = !0;
                    r.src = "https://www.youtube.com/iframe_api", jQuery("head").find("*").each((function() {
                        "https://www.youtube.com/iframe_api" == jQuery(this).attr("src") && (s = !1)
                    })), s && o.parentNode.insertBefore(r, o)
                }
            }
            if (!t[i].vimeoapineeded) {
                var n = e.find("iframe");
                if ((null != e.data("vimeoid") || n.length > 0 && n.attr("src") && n.attr("src").toLowerCase().indexOf("vimeo") > 0) && (t[i].vimeoapineeded = !0), t[i].vimeoapineeded && !window.rs_addedvim) {
                    t[i].vimeostarttime = Date.now(), window.rs_addedvim = !0;
                    var l = document.createElement("script");
                    o = t.getByTag(document, "script")[0], s = !0;
                    l.src = "https://player.vimeo.com/api/player.js", jQuery("head").find("*").each((function() {
                        "https://player.vimeo.com/api/player.js" == jQuery(this).attr("src") && (s = !1)
                    })), s && o.parentNode.insertBefore(l, o)
                }
            }
        },
        manageVideoLayer: function(e, i, r, o) {
            if (t[i].videos = void 0 === t[i].videos ? {} : t[i].videos, void 0 === t[i].videos[e[0].id] || !0 === o) {
                var s = t[i].videos[e[0].id] = void 0 === t[i].videos[e[0].id] ? f(e.data(), void 0, r) : t[i].videos[e[0].id];
                if (s.audio = void 0 !== s.audio && s.audio, t.ISM && s.opom) 0 == e.find("rs-poster").length && e.append('<rs-poster class="noSwipe" style="background-image:url(' + s.poster + ');"></rs-poster>');
                else {
                    s.jsposter = e.find("rs-poster"), s.id = e[0].id, s.pload = "auto" === s.pload || "canplay" === s.pload || "canplaythrough" === s.pload || "progress" === s.pload ? "auto" : s.pload, s.type = null != s.mp4 || null != s.webm ? "html5" : null != s.ytid && String(s.ytid).length > 1 ? "youtube" : null != s.vimeoid && String(s.vimeoid).length > 1 ? "vimeo" : "none", s.newtype = "html5" == s.type && 0 == e.find(s.audio ? "audio" : "video").length ? "html5" : "youtube" == s.type && 0 == e.find("iframe").length ? "youtube" : "vimeo" == s.type && 0 == e.find("iframe").length ? "vimeo" : "none", s.extras = "", s.posterMarkup = void 0 === s.posterMarkup ? "" : s.posterMarkup, !s.audio && "1sttime" == s.aplay && s.pausetimer && s.bgvideo && t.sA(e.closest("rs-slide")[0], "rspausetimeronce", 1), s.audio || !s.bgvideo || !s.pausetimer || 1 != s.aplay && "true" != s.aplay && "no1sttime" != s.aplay || t.sA(e.closest("rs-slide")[0], "rspausetimeralways", 1), s.noInt && e.find("*").addClass("rs-nointeraction"), !(null != s.poster && s.poster.length > 2) || t.ISM && s.npom || 0 == s.jsposter.length && (s.posterMarkup += '<rs-poster class="noSwipe" style="background-image:url(' + s.poster + ');"></rs-poster>');
                    var n = !0;
                    switch (s.cSS = "created", s.cRS = "created", s.newtype) {
                        case "html5":
                            1 == window.isSafari11 && (t[i].slideHasIframe = !0), s.audio && e.addClass("rs-audio"), s.tag = s.audio ? "audio" : "video";
                            var l = "video" === s.tag && (t.is_mobile() || t.isSafari11()) ? s.aplay && "no1sttime" !== s.aplay || "true" === s.aplay ? "muted playsinline autoplay" : s.inline ? " playsinline" : "" : "",
                                d = '<div class="html5vid rs_html5vidbasicstyles ' + (!1 === s.afs ? "hidefullscreen" : "") + '">',
                                c = s.bgvideo && /^([\w]+\:)?\/\//.test(s.mp4) && (-1 === s.mp4.indexOf(location.host) || -1 !== s.mp4.indexOf("." + location.host)) && s.crossOriginVideo ? ' crossOrigin="anonymous" ' : "";
                            d += "<" + s.tag + " " + l + " " + (s.controls && "none" !== s.controls ? " controls" : "") + c + (s.bgvideo && -1 == l.indexOf("autoplay") ? " autoplay" : "") + (s.bgvideo && -1 == l.indexOf("muted") ? " muted" : "") + ' style="' + ("Edge" !== t.get_browser() ? (s.fitCover ? "object-fit:cover;background-size:cover;" : "") + "opacity:0;width:100%; height:100%" : "") + '" class="" ' + (s.loop ? "loop" : "") + ' preload="' + s.pload + '">', "video" === s.tag && null != s.webm && "firefox" == t.get_browser().toLowerCase() && (d = d + '<source src="' + s.webm + '" type="video/webm" />'), null != s.mp4 && (d = d + '<source src="' + s.mp4 + '" type="' + ("video" === s.tag ? "video/mp4" : s.mp4.toLowerCase().indexOf("m4a") > 0 ? "audio/x-m4a" : "audio/mpeg") + '" />'), null != s.ogv && (d = d + '<source src="' + s.mp4 + '" type="' + s.tag + '/ogg" />'), d += "</" + s.tag + "></div>", d += s.posterMarkup, s.controls && !s.audio && void 0 === s.poster || s.bgvideo || (d += '<div class="tp-video-play-button"><i class="revicon-right-dir"></i><span class="tp-revstop">&nbsp;</span></div>'), s.videomarkup = d, n = !1, t.ISM && s.notonmobile || t.isIE(8) || e.append(d), s.jvideo = e.find(s.tag), s.video = s.jvideo[0], s.html5vid = s.jvideo.parent(), a(s.video, "canplay", function(e) {
                                m(e, i), t.resetVideo(e, i)
                            }(e));
                            break;
                        case "youtube":
                            t[i].slideHasIframe = !0, s.controls && "none" !== s.controls || (s.vatr = s.vatr.replace("controls=1", "controls=0"), -1 == s.vatr.toLowerCase().indexOf("controls") && (s.vatr = s.vatr + "&controls=0")), (s.inline || "RS-BGVIDEO" === e[0].tagName) && (s.vatr = s.vatr + "&playsinline=1"), -1 != s.ssec && (s.vatr += "&start=" + s.ssec), -1 != s.esec && (s.vatr += "&end=" + s.esec);
                            var p = s.vatr.split("origin=https://");
                            s.vatrnew = p.length > 1 ? p[0] + "origin=https://" + (self.location.href.match(/www/gi) && !p[1].match(/www/gi) ? "www." + p[1] : p[1]) : s.vatr, s.videomarkup = '<iframe allow="autoplay; ' + (!0 === s.afs ? "fullscreen" : "") + '" type="text/html" src="https://www.youtube-nocookie.com/embed/' + s.ytid + "?" + s.vatrnew + '"  width="100%" height="100%" class="intrinsic-ignore" style="opacity:0;visibility:visible;width:100%;height:100%"></iframe>';
                            break;
                        case "vimeo":
                            t[i].slideHasIframe = !0, s.vatr = s.vatr.replaceAll("&background=0", "").replaceAll("&background=1", ""), s.vatr = s.vatr.replaceAll("background=0", "").replaceAll("background=1", ""), !s.controls || "none" === s.controls || s.bgvideo ? (s.vatr = s.vatr.replace("background=0", "background=1"), -1 == s.vatr.toLowerCase().indexOf("background") && (s.vatr = s.vatr + "&background=1")) : (s.vatr = s.vatr.replace("background=1", "background=0"), -1 == s.vatr.toLowerCase().indexOf("background") && (s.vatr = s.vatr + "&background=0")), s.vatr = "autoplay=" + (!0 === s.aplay ? 1 : 0) + ("&" == s.vatr[0] ? "" : "&") + s.vatr, s.bgvideo && (s.prePlayForaWhile = !0), t.ISM && !0 === s.aplay && (s.vatr = "muted=1" + ("&" == s.vatr[0] ? "" : "&") + s.vatr), s.loop && (s.vatr = "loop=1" + ("&" == s.vatr[0] ? "" : "&") + s.vatr), s.videomarkup = '<iframe  allow="autoplay; ' + (!0 === s.afs ? "fullscreen" : "") + '" src="https://player.vimeo.com/video/' + s.vimeoid + "?" + s.vatr + '" ' + (!0 === s.afs ? "webkitallowfullscreen mozallowfullscreen allowfullscreen" : "") + ' width="100%" height="100%" class="intrinsic-ignore" style="opacity:0;visibility:visible;width:100%;height:100%"></iframe>'
                    }
                    if (!(null != s.poster && s.poster.length > 2) || t.ISM && s.npom) {
                        if (t.ISM && s.notonmobile) return !1;
                        0 != e.find("iframe").length || "youtube" != s.type && "vimeo" != s.type || (delete s.vimeoplayer, e.append(s.videomarkup), u(e, i, !("vimeo" !== s.newtype || !s.bgvideo), !0))
                    } else n && 0 == e.find("rs-poster").length && e.append(s.posterMarkup), 0 == e.find("iframe").length && (s.jsposter = e.find("rs-poster"), s.jsposter.on("click", (function() {
                        if (t.playVideo(e, i, !0), t.ISM) {
                            if (s.notonmobile) return !1;
                            tpGS.gsap.to(s.jsposter, .3, {
                                opacity: 0,
                                visibility: "hidden",
                                force3D: "auto",
                                ease: "power3.inOut"
                            }), t.showVideo(e.find("iframe"))
                        }
                    })));
                    if ("none" !== s.doverlay && void 0 !== s.doverlay) {
                        var g = t.createOverlay(i, s.doverlay, s.doverlaysize, {
                            0: s.doverlaycolora,
                            1: s.doverlaycolorb
                        });
                        s.bgvideo && 1 != e.closest("rs-sbg-wrap").find("rs-dotted").length ? e.closest("rs-sbg-wrap").append('<rs-dotted style="background-image:' + g + '"></rs-dotted>') : s.bgvideo || 1 == e.find("rs-dotted").length || e.append('<rs-dotted style="background-image:' + g + '"></rs-dotted>')
                    }
                    s.bgvideo && ("youtube" !== s.type && "vimeo" !== s.type && (e[0].style.display = "none"), e[0].style.zIndex = 0, tpGS.gsap.set(e.find("video, iframe"), {
                        opacity: 0
                    }))
                }
            }
        }
    });
    var a = function(e, t, i) {
            e.addEventListener ? e.addEventListener(t, i, {
                capture: !1,
                passive: !0
            }) : e.attachEvent(t, i, {
                capture: !1,
                passive: !0
            })
        },
        r = function(e, t, i) {
            var a = {};
            return a.video = e, a.type = t, a.settings = i, a
        },
        o = function(e, i) {
            var a = t[e].videos[i[0].id];
            (a.bgvideo || i.hasClass("rs-fsv")) && ((void 0 === a.ratio || a.ratio.split(":").length <= 1) && (a.ratio = "16:9"), requestAnimationFrame((function() {
                t.prepareCoveredVideo(e)
            })))
        },
        s = function(e, i) {
            var a = e.vimeoplayer;
            a.getPaused().then((function(r) {
                e.volumetoken = !0;
                var o = !r,
                    s = a.setVolume(i);
                void 0 !== s && s.then((function(t) {
                    a.getPaused().then((function(t) {
                        o === t && (e.volume = "mute", a.getMuted().then((function(t) {
                            t || (e.volumetoken = !0, a.setMuted(!0))
                        })), a.play())
                    })).catch((function(e) {
                        console.log("Get Paused Function Failed for Vimeo Volume Changes Inside the Promise")
                    }))
                })).catch((function(i) {
                    o && (e.volume = "mute", e.volumetoken = !0, a.setMuted(!0), a.play()), t.ISM && b(e, 0)
                }))
            })).catch((function() {
                console.log("Get Paused Function Failed for Vimeo Volume Changes")
            }))
        },
        n = function(e, t) {
            var i = e.player.getPlayerState ? e.player.getPlayerState() : -1;
            "mute" === t ? e.player.mute && e.player.mute() : (e.player.unMute && e.player.unMute(), e.player.setVolume && e.player.setVolume(t)), setTimeout((function() {
                1 === i && 1 !== e.player.getPlayerState() && (e.player.mute(), e.player.playVideo())
            }), 39)
        },
        l = function(e, i, a) {
            if ("playVideo" === e.cRS) {
                var r = e.video.play();
                void 0 !== r && r.then((function(i) {
                    !0 === e.twaudio && !0 !== t[a].globalmute && (e.twaudio = !1, t.clickedOnce && (e.video.volume = e.volcache, e.volume = e.volcache, e.video.muted = !1))
                })).catch((function(t) {
                    e.video.pause(), !0 !== i && l(e, !0, a)
                })), t.ISM && b(e, 0)
            }
        },
        d = function(e) {
            if ("playVideo" === e.cRS) {
                var t = e.vimeoplayer.play();
                void 0 !== t && t.then((function(e) {})).catch((function(t) {
                    e.vimeoplayer.volumetoken = !0, e.vimeoplayer.setMuted(!0), e.vimeoplayer.play()
                }))
            }
        },
        c = function(e) {
            "playVideo" === e.cRS && (e.player.playVideo(), 1 !== e.player.getPlayerState() && tpGS.gsap.delayedCall(.5, (function() {
                c(e)
            })))
        },
        p = function(e, i, a, r) {
            clearTimeout(i.repeatedPosterCalls), i.repeatedPosterCalls = setTimeout((function() {
                "show" === a || "playing" === i.cSS && !0 !== i.VideoIsVisible ? (void 0 !== i.showhideposter && i.showhideposter.pause(), i.showhideposter = tpGS.gsap.timeline(), i.jsposter.length > 0 && i.showhideposter.add(tpGS.gsap.to(i.jsposter, .3, {
                    zIndex: 5,
                    autoAlpha: 0,
                    force3D: "auto",
                    ease: "power3.inOut"
                }), 0), i.jvideo.length > 0 && i.showhideposter.add(tpGS.gsap.to(i.jvideo, void 0 !== r ? r : .001, {
                    opacity: 1,
                    display: "block",
                    ease: i.jsposter.length > 0 ? "power3.inOut" : "power3.out"
                }), 0), i.VideoIsVisible = !0) : ("hide" === a || "paused" === i.cSS && 1 != t.checkfullscreenEnabled(e) && i.jsposter.length > 0 && !1 !== i.VideoIsVisible && !0 !== i.seeking) && (void 0 !== i.showhideposter && i.showhideposter.pause(), i.showhideposter = tpGS.gsap.timeline(), (a || i.npom) && (i.jsposter.length > 0 && i.showhideposter.add(tpGS.gsap.to(i.jsposter, .3, {
                    zIndex: 5,
                    autoAlpha: 1,
                    force3D: "auto",
                    ease: "power3.inOut"
                }), 0), i.jvideo.length > 0 && i.showhideposter.add(tpGS.gsap.to(i.jvideo, void 0 !== r ? r : .001, {
                    opacity: 0,
                    ease: i.jsposter.length > 0 ? "power3.inOut" : "power3.out"
                }), .3), i.bgvideo && void 0 !== i.nBG && void 0 !== i.nBG.loadobj && (i.nBG.video = i.nBG.loadobj.img), i.VideoIsVisible = !1))
            }), void 0 !== a ? 0 : 100)
        },
        g = function(e, i, a) {
            e.cSS = "playing", e.vimeostarted = !0, e.nextslidecalled = !1, e.jsposter = void 0 === e.jsposter || 0 === e.jsposter.length ? i.find("rs-poster") : e.jsposter, e.jvideo = i.find("iframe"), t[a].c.trigger("revolution.slide.onvideoplay", r(e.vimeoplayer, "vimeo", e)), t[a].stopByVideo = e.pausetimer, y(i, a), "mute" == e.volume || 0 === e.volume || t.lastToggleState(i.data("videomutetoggledby")) || !0 === t[a].globalmute ? (e.volumetoken = !0, e.vimeoplayer.setMuted(!0)) : s(e, parseInt(e.volcache, 0) / 100 || .75), t.toggleState(e.videotoggledby)
        },
        u = function(e, i, a, s) {
            var l = t[i].videos[e[0].id],
                d = "iframe" + Math.round(1e5 * Math.random() + 1);
            if (l.jvideo = e.find("iframe"), o(i, e), l.jvideo.attr("id", d), l.startvideonow = a, l.videolistenerexist) {
                if (a) switch (l.type) {
                    case "youtube":
                        t.playVideo(e, i), -1 != l.ssec && l.player.seekTo(l.ssec);
                        break;
                    case "vimeo":
                        t.playVideo(e, i), -1 != l.ssec && l.vimeoplayer.seekTo(l.ssec)
                }
            } else switch (l.type) {
                case "youtube":
                    if ("undefined" == typeof YT || void 0 === YT.Player) return t.checkVideoApis(e, i), void setTimeout((function() {
                        u(e, i, a, s)
                    }), 50);
                    l.player = new YT.Player(d, {
                        events: {
                            onStateChange: function(a) {
                                a.data == YT.PlayerState.PLAYING ? (l.cSS = "playing", t[i].onceVideoPlayed = !0, !1 === l.player.isMuted() && (l.volume = l.volcache = l.player.getVolume()), "mute" == l.volume || 0 === l.volume || t.lastToggleState(e.data("videomutetoggledby")) || !0 === t[i].globalmute ? l.player.mute() : n(l, parseInt(l.volcache, 0) || 75), t[i].stopByVideo = !0, y(e, i), l.pausetimer ? t[i].c.trigger("stoptimer") : t[i].stopByVideo = !1, t[i].c.trigger("revolution.slide.onvideoplay", r(l.player, "youtube", l)), t.toggleState(l.videotoggledby)) : (l.cSS = "paused", 0 == a.data && l.loop && (-1 != l.ssec && l.player.seekTo(l.ssec), t.playVideo(e, i), t.toggleState(l.videotoggledby)), -1 != a.data && 3 != a.data && (t[i].stopByVideo = !1, t[i].tonpause = !1, w(e, i), t[i].c.trigger("starttimer"), t[i].c.trigger("revolution.slide.onvideostop", r(l.player, "youtube", l)), null != t[i].videoIsPlaying && t[i].videoIsPlaying.attr("id") != e.attr("id") || t.unToggleState(l.videotoggledby)), 0 == a.data && l.nse ? (document.fullscreenElement !== e.find("iframe")[0] && document.webkitFullscreenElement !== e.find("iframe")[0] || h(), l.nseTriggered = !0, t[i].c.revnext(), w(e, i)) : (w(e, i), t[i].stopByVideo = !1, 3 !== a.data && (-1 != l.lasteventdata && 3 != l.lasteventdata && void 0 !== l.lasteventdata || -1 != a.data && 3 != a.data) && t[i].c.trigger("starttimer"), t[i].c.trigger("revolution.slide.onvideostop", r(l.player, "youtube", l)), null != t[i].videoIsPlaying && t[i].videoIsPlaying.attr("id") != e.attr("id") || t.unToggleState(l.videotoggledby))), clearTimeout(l.postOrVideoTimer), 3 !== a.data && (l.postOrVideoTimer = setTimeout((function() {
                                    p(i, l)
                                }), 1 === l.lasteventdata && 2 === a.data || 2 === l.lasteventdata && 3 !== a.data ? 1e3 : 0), l.lasteventdata = a.data)
                            },
                            onReady: function(a) {
                                var r, o = t.is_mobile(),
                                    n = e.hasClass("rs-layer-video");
                                l.ready = !0, !o && (!t.isSafari11() || o && n) || "RS-BGVIDEO" !== e[0].tagName && (!n || !0 !== l.aplay && "true" !== l.aplay) || (r = !0, l.player.setVolume(l.volcache), l.volume = "mute", l.player.mute(), clearTimeout(e.data("mobilevideotimr")), 2 !== l.player.getPlayerState() && -1 !== l.player.getPlayerState() || e.data("mobilevideotimr", setTimeout((function() {
                                    t.playVideo(e, i)
                                }), 500))), r || "mute" != l.volume || (l.player.setVolume(l.volcache), l.player.mute()), e.addClass("rs-apiready"), null == l.speed && 1 === l.speed || a.target.setPlaybackRate(parseFloat(l.speed)), l.jsposter.off("click"), l.jsposter.on("click", (function() {
                                    t.playVideo(e, i, !0)
                                })), l.startvideonow ? (t.playVideo(e, i), -1 != l.ssec && l.player.seekTo(l.ssec)) : s && p(i, l, "show", .2), l.videolistenerexist = !0
                            }
                        }
                    });
                    break;
                case "vimeo":
                    if ("undefined" == typeof Vimeo || void 0 === Vimeo.Player) return t.checkVideoApis(e, i), void setTimeout((function() {
                        u(e, i, a, s)
                    }), 50);
                    for (var c, m = l.jvideo.attr("src"), v = {}, f = m, b = /([^&=]+)=([^&]*)/g; c = b.exec(f);) v[decodeURIComponent(c[1])] = decodeURIComponent(c[2]);
                    m = (m = null != v.player_id ? m.replace(v.player_id, d) : m + "&player_id=" + d).replace(/&api=0|&api=1/g, "");
                    var _, S = t.is_mobile() || t.isSafari11(),
                        x = "RS-BGVIDEO" === e[0].tagName;
                    if (S && x && (m += "&background=1"), l.jvideo.attr("src", m), l.vimeoplayer = void 0 === l.vimeoplayer || !1 === l.vimeoplayer ? new Vimeo.Player(d) : l.vimeoplayer, S)(x || l.aplay || "true" === l.aplay) && (_ = !0), _ && (l.volumetoken = !0, l.vimeoplayer.setMuted(!0), l.volume = "mute");
                    l.vimeoplayer.on("play", (function(a) {
                        t[i].onceVideoPlayed = !0, l.cSS = "playing", l.vimeostarted || g(l, e, i)
                    })), l.vimeoplayer.on("loaded", (function(a) {
                        var r = {};
                        l.vimeoplayer.getVideoWidth().then((function(t) {
                            r.width = t, void 0 !== r.width && void 0 !== r.height && (l.ratio = r.width + ":" + r.height, l.vimeoplayerloaded = !0, o(i, e))
                        })), l.vimeoplayer.getVideoHeight().then((function(t) {
                            r.height = t, void 0 !== r.width && void 0 !== r.height && (l.ratio = r.width + ":" + r.height, l.vimeoplayerloaded = !0, o(i, e))
                        })), l.startvideonow ? ("mute" === l.volume && (l.volumetoken = !0, l.vimeoplayer.setMuted(!0)), t.playVideo(e, i), -1 != l.ssec && l.vimeoplayer.setCurrentTime(l.ssec)) : s && p(i, l, "show", .2), null == l.speed && 1 === l.speed || l.vimeoplayer.setPlaybackRate(parseFloat(l.speed))
                    })), e.addClass("rs-apiready"), l.vimeoplayer.on("volumechange", (function(e) {
                        l.volumetoken && (l.volume = e.volume), l.volumetoken = !1
                    })), l.vimeoplayer.on("timeupdate", (function(a) {
                        p(i, l), l.vimeostarted || 0 === a.percent || void 0 !== t[i].activeRSSlide && l.slideid !== t.gA(t[i].slides[t[i].activeRSSlide], "key") || g(l, e, i), l.pausetimer && "playing" == t[i].sliderstatus && (t[i].stopByVideo = !0, t[i].c.trigger("stoptimer")), l.currenttime = a.seconds, 0 != l.esec && -1 !== l.esec && l.esec < a.seconds && !0 !== l.nextslidecalled && (l.loop ? (t.playVideo(e, i), l.vimeoplayer.setCurrentTime(-1 !== l.ssec ? l.ssec : 0)) : (l.nse && (l.nseTriggered = !0, l.nextslidecalled = !0, t[i].c.revnext()), l.vimeoplayer.pause())), l.prePlayForaWhile && l.vimeoplayer.pause()
                    })), l.vimeoplayer.on("ended", (function(a) {
                        l.cSS = "paused", p(i, l), l.vimeostarted = !1, w(e, i), t[i].stopByVideo = !1, t[i].c.trigger("starttimer"), t[i].c.trigger("revolution.slide.onvideostop", r(l.vimeoplayer, "vimeo", l)), l.nse && (l.nseTriggered = !0, t[i].c.revnext()), null != t[i].videoIsPlaying && t[i].videoIsPlaying.attr("id") != e.attr("id") || t.unToggleState(l.videotoggledby)
                    })), l.vimeoplayer.on("pause", (function(a) {
                        l.vimeostarted = !1, l.cSS = "paused", p(i, l), t[i].stopByVideo = !1, t[i].tonpause = !1, w(e, i), t[i].c.trigger("starttimer"), t[i].c.trigger("revolution.slide.onvideostop", r(l.vimeoplayer, "vimeo", l)), null != t[i].videoIsPlaying && t[i].videoIsPlaying.attr("id") != e.attr("id") || t.unToggleState(l.videotoggledby)
                    })), l.jsposter.off("click"), l.jsposter.on("click", (function() {
                        if (!t.ISM) return t.playVideo(e, i, !0), !1
                    })), l.videolistenerexist = !0
            }
        },
        h = function() {
            document.exitFullscreen && document.fullscreen ? document.exitFullscreen() : document.mozCancelFullScreen && document.mozFullScreen ? document.mozCancelFullScreen() : document.webkitExitFullscreen && document.webkitIsFullScreen && document.webkitExitFullscreen()
        },
        m = function(e, i, o) {
            var s = t[i].videos[e[0].id];
            if (t.ISM && s.notonmobile) return !1;
            if (s.metaloaded = !0, "html5" === s.newtype && s.bgvideo && (s.nBG = t[i].sbgs[e[0].dataset.key], void 0 === s.nBG.shadowCanvas && (s.nBG.shadowCanvas = document.createElement("canvas"), s.nBG.shadowCTX = s.nBG.shadowCanvas.getContext("2d"), s.nBG.shadowCanvas.style.background = "transparent", s.nBG.shadowCanvas.style.opacity = 1), s.nBG.isHTML5 = !0, s.nBG.video = void 0 !== s.nBG.loadobj && void 0 !== s.nBG.loadobj.img ? s.nBG.loadobj.img : s.video, s.nBG.drawVideoCanvasImagesRecall = !1), (!s.controls || s.audio || void 0 !== s.poster) && !s.noInt) {
                0 != e.find(".tp-video-play-button").length || t.ISM || e.append('<div class="tp-video-play-button"><i class="revicon-right-dir"></i><span class="tp-revstop">&nbsp;</span></div>');
                var n = "video, rs-poster, .tp-video-play-button";
                void 0 !== s.poster && s.controls && (n = ".tp-video-play-button"), e.find(n).on("click", (function() {
                    !1 === s.loop && s.esec > 0 && s.esec <= s.video.currentTime || (e.hasClass("videoisplaying") ? t.stopVideo(e, i) : t.playVideo(e, i, !0))
                }))
            }(e.hasClass("rs-fsv") || s.bgvideo) && (s.bgvideo || e.hasClass("rs-fsv") ? (s.html5vid.addClass("fullcoveredvideo"), void 0 !== s.ratio && 1 != s.ratio.split(":").length || (s.ratio = "16:9"), t.prepareCoveredVideo(i)) : s.html5vid.addClass("rs-fsv")), a(s.video, "canplaythrough", (function() {
                t.preLoadAudioDone(e, i, "canplaythrough")
            })), a(s.video, "canplay", (function() {
                t.preLoadAudioDone(e, i, "canplay")
            })), a(s.video, "progress", (function() {
                t.preLoadAudioDone(e, i, "progress")
            })), a(s.video, "pause", (function() {
                t.ISM && b(s, 1)
            })), a(s.video, "timeupdate", (function(e) {
                this.BGrendered = !0, p(i, s), -1 === s.esec && s.loop && 1 == window.isSafari11 && (s.esec = s.video.duration - .075), void 0 !== s.lastCurrentTime ? s.fps = s.video.currentTime - s.lastCurrentTime : s.fps = .1, s.lastCurrentTime = s.video.currentTime, 0 != s.esec && -1 != s.esec && s.esec < s.video.currentTime && !s.nextslidecalled && (s.loop ? (l(s, void 0, i), s.video.currentTime = -1 === s.ssec ? .5 : s.ssec) : (s.nse && (s.nseTriggered = !0, s.nextslidecalled = !0, t[i].jcnah = !0, t[i].c.revnext(), setTimeout((function() {
                    t[i].jcnah = !1
                }), 1e3)), s.video.pause()))
            })), a(s.video, "play", (function() {
                s.cSS = "playing", p(i, s), s.bgvideo && (s.nBG.drawVideoCanvasImagesRecall = !0, s.nBG.videoisplaying = !0, s.nBG.video = s.video, t.updateVideoFrames(i, s.nBG)), t[i].onceVideoPlayed = !0, s.nextslidecalled = !1, s.volume = null != s.volume && "mute" != s.volume ? parseFloat(s.volcache) : s.volume, s.volcache = null != s.volcache && "mute" != s.volcache ? parseFloat(s.volcache) : s.volcache, t.is_mobile() || (!0 === t[i].globalmute ? s.video.muted = !0 : s.video.muted = "mute" == s.volume, s.volcache = t.isNumeric(s.volcache) && s.volcache > 1 ? s.volcache / 100 : s.volcache, "mute" == s.volume ? s.video.muted = !0 : null != s.volcache && (s.video.volume = s.volcache)), e.addClass("videoisplaying"), y(e, i), clearTimeout(s.showCoverSoon), !0 !== s.pausetimer || "audio" == s.tag ? (t[i].stopByVideo = !1, t[i].c.trigger("revolution.slide.onvideostop", r(s.video, "html5", s))) : (t[i].stopByVideo = !0, t[i].c.trigger("revolution.slide.onvideoplay", r(s.video, "html5", s))), s.pausetimer && "playing" == t[i].sliderstatus && (t[i].stopByVideo = !0, t[i].c.trigger("stoptimer")), t.toggleState(s.videotoggledby)
            })), a(s.video, "seeked", (function() {
                s.seeking = !1
            })), a(s.video, "seeking", (function() {
                s.seeking = !0
            })), a(s.video, "pause", (function(a) {
                s.cSS = "paused", p(i, s), e.removeClass("videoisplaying"), s.bgvideo && (s.nBG.drawVideoCanvasImagesRecall = !1, s.nBG.videoisplaying = !1), t[i].stopByVideo = !1, w(e, i), "audio" != s.tag && t[i].c.trigger("starttimer"), t[i].c.trigger("revolution.slide.onvideostop", r(s.video, "html5", s)), null != t[i].videoIsPlaying && t[i].videoIsPlaying.attr("id") != e.attr("id") || t.unToggleState(s.videotoggledby)
            })), a(s.video, "ended", (function() {
                s.cSS = "paused", document.fullscreenElement !== s.video && document.webkitFullscreenElement !== s.video || h(), p(i, s), w(e, i), t[i].stopByVideo = !1, w(e, i), "audio" != s.tag && t[i].c.trigger("starttimer"), t[i].c.trigger("revolution.slide.onvideostop", r(s.video, "html5", e.data())), s.nse && s.video.currentTime > 0 && (1 == !t[i].jcnah && (s.nseTriggered = !0, t[i].c.revnext(), t[i].jcnah = !0), setTimeout((function() {
                    t[i].jcnah = !1
                }), 1500)), e.removeClass("videoisplaying"), s.bgvideo && (s.nBG.drawVideoCanvasImagesRecall = !1, s.nBG.videoisplaying = !1), !0 !== t[i].inviewport && void 0 !== t[i].inviewport || (t[i].lastplayedvideos = [])
            })), a(s.video, "volumechange", (function() {
                s.video.muted ? s.volume = "mute" : s.volume = s.volcache = s.video.volume
            }))
        },
        v = function(e) {
            return "t" === e || !0 === e || "true" === e || "f" !== e && !1 !== e && "false" !== e && e
        },
        f = function(e, t, a) {
            e.audio = "audio" === t;
            var r = void 0 === e.video ? [] : e.video.split(";"),
                o = {
                    volume: e.audio ? 1 : "mute",
                    pload: "auto",
                    ratio: "16:9",
                    loop: !0,
                    aplay: "true",
                    fitCover: !0,
                    afs: !0,
                    controls: !1,
                    nse: !0,
                    npom: !1,
                    opom: !1,
                    inline: !0,
                    notonmobile: !1,
                    start: -1,
                    end: -1,
                    doverlay: "none",
                    doverlaysize: 1,
                    doverlaycolora: "transparent",
                    doverlaycolorb: "#000000",
                    scop: !1,
                    rwd: !0,
                    speed: 1,
                    ploadwait: 5,
                    stopAV: 1 !== e.bgvideo,
                    noInt: !1,
                    volcache: 75,
                    crossOriginVideo: !1
                };
            for (var s in r)
                if (r.hasOwnProperty(s)) {
                    var n = r[s].split(":");
                    switch (n[0]) {
                        case "v":
                            o.volume = n[1];
                            break;
                        case "twa":
                            o.twaudio = n[1];
                            break;
                        case "vd":
                            o.volcache = n[1];
                            break;
                        case "p":
                            o.pload = n[1];
                            break;
                        case "ar":
                            o.ratio = n[1] + (void 0 !== n[2] ? ":" + n[2] : "");
                            break;
                        case "ap":
                            o.aplay = v(n[1]);
                            break;
                        case "vfc":
                            o.fitCover = v(n[1]);
                            break;
                        case "afs":
                            o.afs = v(n[1]);
                            break;
                        case "vc":
                            o.controls = n[1];
                            break;
                        case "nse":
                            o.nse = v(n[1]);
                            break;
                        case "npom":
                            o.npom = v(n[1]);
                            break;
                        case "opom":
                            o.opom = v(n[1]);
                            break;
                        case "t":
                            o.vtype = n[1];
                            break;
                        case "inl":
                            o.inline = v(n[1]);
                            break;
                        case "nomo":
                            o.notonmobile = v(n[1]);
                            break;
                        case "sta":
                            o.start = n[1] + (void 0 !== n[2] ? ":" + n[2] : "");
                            break;
                        case "end":
                            o.end = n[1] + (void 0 !== n[2] ? ":" + n[2] : "");
                            break;
                        case "do":
                            o.doverlay = n[1];
                            break;
                        case "dos":
                            o.doverlaysize = n[1];
                            break;
                        case "doca":
                            o.doverlaycolora = n[1];
                            break;
                        case "docb":
                            o.doverlaycolorb = n[1];
                            break;
                        case "scop":
                            o.scop = v(n[1]);
                            break;
                        case "rwd":
                            o.rwd = v(n[1]);
                            break;
                        case "sp":
                            o.speed = n[1];
                            break;
                        case "vw":
                            o.ploadwait = parseInt(n[1], 0) || 5;
                            break;
                        case "sav":
                            o.stopAV = v(n[1]);
                            break;
                        case "noint":
                            o.noInt = v(n[1]);
                            break;
                        case "l":
                            o.loopcache = n[1], o.loop = "loop" === n[1] || "loopandnoslidestop" === n[1] || "none" !== n[1] && v(n[1]);
                            break;
                        case "ptimer":
                            o.pausetimer = v(n[1]);
                            break;
                        case "sat":
                            o.waitToSlideTrans = v(n[1]);
                            break;
                        case "crossOriginVideo":
                            o.crossOriginVideo = v(n[1]);
                            break;
                        case "poch":
                            o.pauseOnSlideChange = v(n[1])
                    }
                }
            return null == e.mp4 && null == e.webm && (o.fitCover = !1), void 0 !== e.bgvideo && (o.bgvideo = e.bgvideo), o.noInt && (o.controls = !1), void 0 !== e.mp4 && (o.mp4 = e.mp4), void 0 !== e.videomp4 && (o.mp4 = e.videomp4), void 0 !== e.ytid && (o.ytid = e.ytid), void 0 !== e.ogv && (o.ogv = e.ogv), void 0 !== e.webm && (o.webm = e.webm), void 0 !== e.vimeoid && (o.vimeoid = e.vimeoid), void 0 !== e.vatr && (o.vatr = e.vatr), void 0 !== e.videoattributes && (o.vatr = e.videoattributes), void 0 !== e.poster && (o.poster = e.poster), o.slideid = a, o.aplay = "true" === o.aplay || o.aplay, 1 === o.bgvideo && (o.volume = "mute"), o.ssec = i(o.start), o.esec = i(o.end), o.pausetimer = void 0 === o.pausetimer ? "loopandnoslidestop" !== o.loopcache : o.pausetimer, o.inColumn = e._incolumn, o.audio = e.audio, !0 !== o.loop && "true" !== o.loop || !0 !== o.nse && "true" !== o.nse || (o.loop = !1), o.aplay && o.twaudio && !o.bgvideo && (o.twaudio = !0), o
        },
        y = function(e, i) {
            if (t[i].playingvideos = void 0 === t[i].playingvideos ? new Array : t[i].playingvideos, t[i].videos[e[0].id].stopAV && void 0 !== t[i].playingvideos && t[i].playingvideos.length > 0)
                for (var a in t[i].lastplayedvideos = jQuery.extend(!0, [], t[i].playingvideos), t[i].playingvideos) t[i].playingvideos.hasOwnProperty(a) && t.stopVideo(t[i].playingvideos[a], i);
            t[i].playingvideos.push(e), t[i].videoIsPlaying = e
        },
        w = function(e, i) {
            void 0 !== t[i] && void 0 !== t[i] && null != t[i].playingvideos && jQuery.inArray(e, t[i].playingvideos) >= 0 && t[i].playingvideos.splice(jQuery.inArray(e, t[i].playingvideos), 1)
        },
        b = function(e, i) {
            if (void 0 !== e && (void 0 === i && (i = 0), t.ISM && !e.bgvideo)) {
                e.playPauseBtnTween && e.playPauseBtnTween.kill && e.playPauseBtnTween.kill();
                var a = t.closestNode(e.video, "RS-LAYER"),
                    r = e.controls ? 1 : 0,
                    o = e.controls ? 0 : .3;
                e.controls && e.poster && 0 === i && (o = 0, r = 0), a && (e.playPauseBtnTween = tpGS.gsap.to(a.querySelector(".tp-video-play-button"), {
                    duration: o,
                    delay: r,
                    opacity: i
                }))
            }
        };
    window.RS_MODULES = window.RS_MODULES || {}, window.RS_MODULES.video = {
        loaded: !0,
        version: "6.6.9"
    }, window.RS_MODULES.checkMinimal && window.RS_MODULES.checkMinimal()
}(jQuery);
/*! SmartMenus jQuery Plugin - v1.2.1 - November 3, 2022
 * http://www.smartmenus.org/
 * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */
! function(a) {
    "function" == typeof define && define.amd ? define(["jquery"], a) : "object" == typeof module && "object" == typeof module.exports ? module.exports = a(require("jquery")) : a(jQuery)
}(function(a) {
    function b(b) {
        var i = ".smartmenus_mouse";
        if (h || b) h && b && (a(document).off(i), h = !1);
        else {
            var j = !0,
                k = null,
                l = {
                    mousemove: function(b) {
                        var c = {
                            x: b.pageX,
                            y: b.pageY,
                            timeStamp: (new Date).getTime()
                        };
                        if (k) {
                            var d = Math.abs(k.x - c.x),
                                g = Math.abs(k.y - c.y);
                            if ((d > 0 || g > 0) && d <= 4 && g <= 4 && c.timeStamp - k.timeStamp <= 300 && (f = !0, j)) {
                                var h = a(b.target).closest("a");
                                h.is("a") && a.each(e, function() {
                                    if (a.contains(this.$root[0], h[0])) return this.itemEnter({
                                        currentTarget: h[0]
                                    }), !1
                                }), j = !1
                            }
                        }
                        k = c
                    }
                };
            l[g ? "touchstart" : "pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"] = function(a) {
                c(a.originalEvent) && (f = !1)
            }, a(document).on(d(l, i)), h = !0
        }
    }

    function c(a) {
        return !/^(4|mouse)$/.test(a.pointerType)
    }

    function d(a, b) {
        b || (b = "");
        var c = {};
        for (var d in a) c[d.split(" ").join(b + " ") + b] = a[d];
        return c
    }
    var e = [],
        f = !1,
        g = "ontouchstart" in window,
        h = !1,
        i = window.requestAnimationFrame || function(a) {
            return setTimeout(a, 1e3 / 60)
        },
        j = window.cancelAnimationFrame || function(a) {
            clearTimeout(a)
        },
        k = !!a.fn.animate;
    return a.SmartMenus = function(b, c) {
        this.$root = a(b), this.opts = c, this.rootId = "", this.accessIdPrefix = "", this.$subArrow = null, this.activatedItems = [], this.visibleSubMenus = [], this.showTimeout = 0, this.hideTimeout = 0, this.scrollTimeout = 0, this.clickActivated = !1, this.focusActivated = !1, this.zIndexInc = 0, this.idInc = 0, this.$firstLink = null, this.$firstSub = null, this.disabled = !1, this.$disableOverlay = null, this.$touchScrollingSub = null, this.cssTransforms3d = "perspective" in b.style || "webkitPerspective" in b.style, this.wasCollapsible = !1, this.init()
    }, a.extend(a.SmartMenus, {
        hideAll: function() {
            a.each(e, function() {
                this.menuHideAll()
            })
        },
        destroy: function() {
            for (; e.length;) e[0].destroy();
            b(!0)
        },
        prototype: {
            init: function(c) {
                var f = this;
                if (!c) {
                    e.push(this), this.rootId = ((new Date).getTime() + Math.random() + "").replace(/\D/g, ""), this.accessIdPrefix = "sm-" + this.rootId + "-", this.$root.hasClass("sm-rtl") && (this.opts.rightToLeftSubMenus = !0);
                    var g = ".smartmenus";
                    this.$root.data("smartmenus", this).attr("data-smartmenus-id", this.rootId).dataSM("level", 1).on(d({
                        "mouseover focusin": a.proxy(this.rootOver, this),
                        "mouseout focusout": a.proxy(this.rootOut, this),
                        keydown: a.proxy(this.rootKeyDown, this)
                    }, g)).on(d({
                        mouseenter: a.proxy(this.itemEnter, this),
                        mouseleave: a.proxy(this.itemLeave, this),
                        mousedown: a.proxy(this.itemDown, this),
                        focus: a.proxy(this.itemFocus, this),
                        blur: a.proxy(this.itemBlur, this),
                        click: a.proxy(this.itemClick, this)
                    }, g), "a"), g += this.rootId, this.opts.hideOnClick && a(document).on(d({
                        touchstart: a.proxy(this.docTouchStart, this),
                        touchmove: a.proxy(this.docTouchMove, this),
                        touchend: a.proxy(this.docTouchEnd, this),
                        click: a.proxy(this.docClick, this)
                    }, g)), a(window).on(d({
                        "resize orientationchange": a.proxy(this.winResize, this)
                    }, g)), this.opts.subIndicators && (this.$subArrow = a("<span/>").addClass("sub-arrow"), this.opts.subIndicatorsText && this.$subArrow.html(this.opts.subIndicatorsText)), b()
                }
                if (this.$firstSub = this.$root.find("ul").each(function() {
                        f.menuInit(a(this))
                    }).eq(0), this.$firstLink = this.$root.find("a").eq(0), this.opts.markCurrentItem) {
                    var h = /(index|default)\.[^#\?\/]*/i,
                        i = /#.*/,
                        j = window.location.href.replace(h, ""),
                        k = j.replace(i, "");
                    this.$root.find("a:not(.mega-menu a)").each(function() {
                        var b = this.href.replace(h, ""),
                            c = a(this);
                        b != j && b != k || (c.addClass("current"), f.opts.markCurrentTree && c.parentsUntil("[data-smartmenus-id]", "ul").each(function() {
                            a(this).dataSM("parent-a").addClass("current")
                        }))
                    })
                }
                this.wasCollapsible = this.isCollapsible()
            },
            destroy: function(b) {
                if (!b) {
                    var c = ".smartmenus";
                    this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(c), c += this.rootId, a(document).off(c), a(window).off(c), this.opts.subIndicators && (this.$subArrow = null)
                }
                this.menuHideAll();
                var d = this;
                this.$root.find("ul").each(function() {
                    var b = a(this);
                    b.dataSM("scroll-arrows") && b.dataSM("scroll-arrows").remove(), b.dataSM("shown-before") && ((d.opts.subMenusMinWidth || d.opts.subMenusMaxWidth) && b.css({
                        width: "",
                        minWidth: "",
                        maxWidth: ""
                    }).removeClass("sm-nowrap"), b.dataSM("scroll-arrows") && b.dataSM("scroll-arrows").remove(), b.css({
                        zIndex: "",
                        top: "",
                        left: "",
                        marginLeft: "",
                        marginTop: "",
                        display: ""
                    })), 0 == (b.attr("id") || "").indexOf(d.accessIdPrefix) && b.removeAttr("id")
                }).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"), this.$root.find("a.has-submenu").each(function() {
                    var b = a(this);
                    0 == b.attr("id").indexOf(d.accessIdPrefix) && b.removeAttr("id")
                }).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"), this.opts.subIndicators && this.$root.find("span.sub-arrow").remove(), this.opts.markCurrentItem && this.$root.find("a.current").removeClass("current"), b || (this.$root = null, this.$firstLink = null, this.$firstSub = null, this.$disableOverlay && (this.$disableOverlay.remove(), this.$disableOverlay = null), e.splice(a.inArray(this, e), 1))
            },
            disable: function(b) {
                if (!this.disabled) {
                    if (this.menuHideAll(), !b && !this.opts.isPopup && this.$root.is(":visible")) {
                        var c = this.$root.offset();
                        this.$disableOverlay = a('<div class="sm-jquery-disable-overlay"/>').css({
                            position: "absolute",
                            top: c.top,
                            left: c.left,
                            width: this.$root.outerWidth(),
                            height: this.$root.outerHeight(),
                            zIndex: this.getStartZIndex(!0),
                            opacity: 0
                        }).appendTo(document.body)
                    }
                    this.disabled = !0
                }
            },
            docClick: function(b) {
                return this.$touchScrollingSub ? void(this.$touchScrollingSub = null) : void((this.visibleSubMenus.length && !a.contains(this.$root[0], b.target) || a(b.target).closest("a").length) && this.menuHideAll())
            },
            docTouchEnd: function(b) {
                if (this.lastTouch) {
                    if (this.visibleSubMenus.length && (void 0 === this.lastTouch.x2 || this.lastTouch.x1 == this.lastTouch.x2) && (void 0 === this.lastTouch.y2 || this.lastTouch.y1 == this.lastTouch.y2) && (!this.lastTouch.target || !a.contains(this.$root[0], this.lastTouch.target))) {
                        this.hideTimeout && (clearTimeout(this.hideTimeout), this.hideTimeout = 0);
                        var c = this;
                        this.hideTimeout = setTimeout(function() {
                            c.menuHideAll()
                        }, 350)
                    }
                    this.lastTouch = null
                }
            },
            docTouchMove: function(a) {
                if (this.lastTouch) {
                    var b = a.originalEvent.touches[0];
                    this.lastTouch.x2 = b.pageX, this.lastTouch.y2 = b.pageY
                }
            },
            docTouchStart: function(a) {
                var b = a.originalEvent.touches[0];
                this.lastTouch = {
                    x1: b.pageX,
                    y1: b.pageY,
                    target: b.target
                }
            },
            enable: function() {
                this.disabled && (this.$disableOverlay && (this.$disableOverlay.remove(), this.$disableOverlay = null), this.disabled = !1)
            },
            getClosestMenu: function(b) {
                for (var c = a(b).closest("ul"); c.dataSM("in-mega");) c = c.parent().closest("ul");
                return c[0] || null
            },
            getHeight: function(a) {
                return this.getOffset(a, !0)
            },
            getOffset: function(a, b) {
                var c;
                "none" == a.css("display") && (c = {
                    position: a[0].style.position,
                    visibility: a[0].style.visibility
                }, a.css({
                    position: "absolute",
                    visibility: "hidden"
                }).show());
                var d = a[0].getBoundingClientRect && a[0].getBoundingClientRect(),
                    e = d && (b ? d.height || d.bottom - d.top : d.width || d.right - d.left);
                return e || 0 === e || (e = b ? a[0].offsetHeight : a[0].offsetWidth), c && a.hide().css(c), e
            },
            getStartZIndex: function(a) {
                var b = parseInt(this[a ? "$root" : "$firstSub"].css("z-index"));
                return !a && isNaN(b) && (b = parseInt(this.$root.css("z-index"))), isNaN(b) ? 1 : b
            },
            getTouchPoint: function(a) {
                return a.touches && a.touches[0] || a.changedTouches && a.changedTouches[0] || a
            },
            getViewport: function(a) {
                var b = a ? "Height" : "Width",
                    c = document.documentElement["client" + b],
                    d = window["inner" + b];
                return d && (c = Math.min(c, d)), c
            },
            getViewportHeight: function() {
                return this.getViewport(!0)
            },
            getViewportWidth: function() {
                return this.getViewport()
            },
            getWidth: function(a) {
                return this.getOffset(a)
            },
            handleEvents: function() {
                return !this.disabled && this.isCSSOn()
            },
            handleItemEvents: function(a) {
                return this.handleEvents() && !this.isLinkInMegaMenu(a)
            },
            isCollapsible: function() {
                return "static" == this.$firstSub.css("position")
            },
            isCSSOn: function() {
                return "inline" != this.$firstLink.css("display")
            },
            isFixed: function() {
                var b = "fixed" == this.$root.css("position");
                return b || this.$root.parentsUntil("body").each(function() {
                    if ("fixed" == a(this).css("position")) return b = !0, !1
                }), b
            },
            isLinkInMegaMenu: function(b) {
                return a(this.getClosestMenu(b[0])).hasClass("mega-menu")
            },
            isTouchMode: function() {
                return !f || this.opts.noMouseOver || this.isCollapsible()
            },
            itemActivate: function(b, c) {
                var d = b.closest("ul"),
                    e = d.dataSM("level");
                if (e > 1 && (!this.activatedItems[e - 2] || this.activatedItems[e - 2][0] != d.dataSM("parent-a")[0])) {
                    var f = this;
                    a(d.parentsUntil("[data-smartmenus-id]", "ul").get().reverse()).add(d).each(function() {
                        f.itemActivate(a(this).dataSM("parent-a"))
                    })
                }
                if (this.isCollapsible() && !c || this.menuHideSubMenus(this.activatedItems[e - 1] && this.activatedItems[e - 1][0] == b[0] ? e : e - 1), this.activatedItems[e - 1] = b, this.$root.triggerHandler("activate.smapi", b[0]) !== !1) {
                    var g = b.dataSM("sub");
                    g && (this.isTouchMode() || !this.opts.showOnClick || this.clickActivated) && this.menuShow(g)
                }
            },
            itemBlur: function(b) {
                var c = a(b.currentTarget);
                this.handleItemEvents(c) && this.$root.triggerHandler("blur.smapi", c[0])
            },
            itemClick: function(b) {
                var c = a(b.currentTarget);
                if (this.handleItemEvents(c)) {
                    if (this.$touchScrollingSub && this.$touchScrollingSub[0] == c.closest("ul")[0]) return this.$touchScrollingSub = null, b.stopPropagation(), !1;
                    if (this.$root.triggerHandler("click.smapi", c[0]) === !1) return !1;
                    var d = c.dataSM("sub"),
                        e = !!d && 2 == d.dataSM("level");
                    if (d) {
                        var f = a(b.target).is(".sub-arrow"),
                            g = this.isCollapsible(),
                            h = /toggle$/.test(this.opts.collapsibleBehavior),
                            i = /link$/.test(this.opts.collapsibleBehavior),
                            j = /^accordion/.test(this.opts.collapsibleBehavior);
                        if (d.is(":visible")) {
                            if (!g && this.opts.showOnClick && e) return this.menuHide(d), this.clickActivated = !1, this.focusActivated = !1, !1;
                            if (g && (h || f)) return this.itemActivate(c, j), this.menuHide(d), !1
                        } else if ((!i || !g || f) && (!g && this.opts.showOnClick && e && (this.clickActivated = !0), this.itemActivate(c, j), d.is(":visible"))) return this.focusActivated = !0, !1
                    }
                    return !(!g && this.opts.showOnClick && e || c.hasClass("disabled") || this.$root.triggerHandler("select.smapi", c[0]) === !1) && void 0
                }
            },
            itemDown: function(b) {
                var c = a(b.currentTarget);
                this.handleItemEvents(c) && c.dataSM("mousedown", !0)
            },
            itemEnter: function(b) {
                var c = a(b.currentTarget);
                if (this.handleItemEvents(c)) {
                    if (!this.isTouchMode()) {
                        this.showTimeout && (clearTimeout(this.showTimeout), this.showTimeout = 0);
                        var d = this;
                        this.showTimeout = setTimeout(function() {
                            d.itemActivate(c)
                        }, this.opts.showOnClick && 1 == c.closest("ul").dataSM("level") ? 1 : this.opts.showTimeout)
                    }
                    this.$root.triggerHandler("mouseenter.smapi", c[0])
                }
            },
            itemFocus: function(b) {
                var c = a(b.currentTarget);
                this.handleItemEvents(c) && (!this.focusActivated || this.isTouchMode() && c.dataSM("mousedown") || this.activatedItems.length && this.activatedItems[this.activatedItems.length - 1][0] == c[0] || this.itemActivate(c, !0), this.$root.triggerHandler("focus.smapi", c[0]))
            },
            itemLeave: function(b) {
                var c = a(b.currentTarget);
                this.handleItemEvents(c) && (this.isTouchMode() || (c[0].blur(), this.showTimeout && (clearTimeout(this.showTimeout), this.showTimeout = 0)), c.removeDataSM("mousedown"), this.$root.triggerHandler("mouseleave.smapi", c[0]))
            },
            menuHide: function(b) {
                if (this.$root.triggerHandler("beforehide.smapi", b[0]) !== !1 && (k && b.stop(!0, !0), "none" != b.css("display"))) {
                    var c = function() {
                        b.css("z-index", "")
                    };
                    this.isCollapsible() ? k && this.opts.collapsibleHideFunction ? this.opts.collapsibleHideFunction.call(this, b, c) : b.hide(this.opts.collapsibleHideDuration, c) : k && this.opts.hideFunction ? this.opts.hideFunction.call(this, b, c) : b.hide(this.opts.hideDuration, c), b.dataSM("scroll") && (this.menuScrollStop(b), b.css({
                        "touch-action": "",
                        "-ms-touch-action": "",
                        "-webkit-transform": "",
                        transform: ""
                    }).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()), b.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded", "false"), b.attr({
                        "aria-expanded": "false",
                        "aria-hidden": "true"
                    });
                    var d = b.dataSM("level");
                    this.activatedItems.splice(d - 1, 1), this.visibleSubMenus.splice(a.inArray(b, this.visibleSubMenus), 1), this.$root.triggerHandler("hide.smapi", b[0])
                }
            },
            menuHideAll: function() {
                this.showTimeout && (clearTimeout(this.showTimeout), this.showTimeout = 0);
                for (var a = this.opts.isPopup ? 1 : 0, b = this.visibleSubMenus.length - 1; b >= a; b--) this.menuHide(this.visibleSubMenus[b]);
                this.opts.isPopup && (k && this.$root.stop(!0, !0), this.$root.is(":visible") && (k && this.opts.hideFunction ? this.opts.hideFunction.call(this, this.$root) : this.$root.hide(this.opts.hideDuration))), this.activatedItems = [], this.visibleSubMenus = [], this.clickActivated = !1, this.focusActivated = !1, this.zIndexInc = 0, this.$root.triggerHandler("hideAll.smapi")
            },
            menuHideSubMenus: function(a) {
                for (var b = this.activatedItems.length - 1; b >= a; b--) {
                    var c = this.activatedItems[b].dataSM("sub");
                    c && this.menuHide(c)
                }
            },
            menuInit: function(a) {
                if (!a.dataSM("in-mega")) {
                    a.hasClass("mega-menu") && a.find("ul").dataSM("in-mega", !0);
                    for (var b = 2, c = a[0];
                        (c = c.parentNode.parentNode) != this.$root[0];) b++;
                    var d = a.prevAll("a").eq(-1);
                    d.length || (d = a.prevAll().find("a").eq(-1)), d.addClass("has-submenu").dataSM("sub", a), a.dataSM("parent-a", d).dataSM("level", b).parent().dataSM("sub", a);
                    var e = d.attr("id") || this.accessIdPrefix + ++this.idInc,
                        f = a.attr("id") || this.accessIdPrefix + ++this.idInc;
                    d.attr({
                        id: e,
                        "aria-haspopup": "true",
                        "aria-controls": f,
                        "aria-expanded": "false"
                    }), a.attr({
                        id: f,
                        role: "group",
                        "aria-hidden": "true",
                        "aria-labelledby": e,
                        "aria-expanded": "false"
                    }), this.opts.subIndicators && d[this.opts.subIndicatorsPos](this.$subArrow.clone())
                }
            },
            menuPosition: function(b) {
                var c, e, f = b.dataSM("parent-a"),
                    h = f.closest("li"),
                    i = h.parent(),
                    j = b.dataSM("level"),
                    k = this.getWidth(b),
                    l = this.getHeight(b),
                    m = f.offset(),
                    n = m.left,
                    o = m.top,
                    p = this.getWidth(f),
                    q = this.getHeight(f),
                    r = a(window),
                    s = r.scrollLeft(),
                    t = r.scrollTop(),
                    u = this.getViewportWidth(),
                    v = this.getViewportHeight(),
                    w = i.parent().is("[data-sm-horizontal-sub]") || 2 == j && !i.hasClass("sm-vertical"),
                    x = this.opts.rightToLeftSubMenus && !h.is("[data-sm-reverse]") || !this.opts.rightToLeftSubMenus && h.is("[data-sm-reverse]"),
                    y = 2 == j ? this.opts.mainMenuSubOffsetX : this.opts.subMenusSubOffsetX,
                    z = 2 == j ? this.opts.mainMenuSubOffsetY : this.opts.subMenusSubOffsetY;
                if (w ? (c = x ? p - k - y : y, e = this.opts.bottomToTopSubMenus ? -l - z : q + z) : (c = x ? y - k : p - y, e = this.opts.bottomToTopSubMenus ? q - z - l : z), this.opts.keepInViewport) {
                    var A = n + c,
                        B = o + e;
                    if (x && A < s ? c = w ? s - A + c : p - y : !x && A + k > s + u && (c = w ? s + u - k - A + c : y - k), w || (l < v && B + l > t + v ? e += t + v - l - B : (l >= v || B < t) && (e += t - B)), w && (B + l > t + v + .49 || B < t) || !w && l > v + .49) {
                        var C = this;
                        b.dataSM("scroll-arrows") || b.dataSM("scroll-arrows", a([a('<span class="scroll-up"><span class="scroll-up-arrow"></span></span>')[0], a('<span class="scroll-down"><span class="scroll-down-arrow"></span></span>')[0]]).on({
                            mouseenter: function() {
                                b.dataSM("scroll").up = a(this).hasClass("scroll-up"), C.menuScroll(b)
                            },
                            mouseleave: function(a) {
                                C.menuScrollStop(b), C.menuScrollOut(b, a)
                            },
                            "mousewheel DOMMouseScroll": function(a) {
                                a.preventDefault()
                            }
                        }).insertAfter(b));
                        var D = ".smartmenus_scroll";
                        if (b.dataSM("scroll", {
                                y: this.cssTransforms3d ? 0 : e - q,
                                step: 1,
                                itemH: q,
                                subH: l,
                                arrowDownH: this.getHeight(b.dataSM("scroll-arrows").eq(1))
                            }).on(d({
                                mouseover: function(a) {
                                    C.menuScrollOver(b, a)
                                },
                                mouseout: function(a) {
                                    C.menuScrollOut(b, a)
                                },
                                "mousewheel DOMMouseScroll": function(a) {
                                    C.menuScrollMousewheel(b, a)
                                }
                            }, D)).dataSM("scroll-arrows").css({
                                top: "auto",
                                left: "0",
                                marginLeft: c + (parseInt(b.css("border-left-width")) || 0),
                                width: k - (parseInt(b.css("border-left-width")) || 0) - (parseInt(b.css("border-right-width")) || 0),
                                zIndex: b.css("z-index")
                            }).eq(w && this.opts.bottomToTopSubMenus ? 0 : 1).show(), this.isFixed()) {
                            var E = {};
                            E[g ? "touchstart touchmove touchend" : "pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"] = function(a) {
                                C.menuScrollTouch(b, a)
                            }, b.css({
                                "touch-action": "none",
                                "-ms-touch-action": "none"
                            }).on(d(E, D))
                        }
                    }
                }
                b.css({
                    top: "auto",
                    left: "0",
                    marginLeft: c,
                    marginTop: e - q
                })
            },
            menuScroll: function(a, b, c) {
                var d, e = a.dataSM("scroll"),
                    g = a.dataSM("scroll-arrows"),
                    h = e.up ? e.upEnd : e.downEnd;
                if (!b && e.momentum) {
                    if (e.momentum *= .92, d = e.momentum, d < .5) return void this.menuScrollStop(a)
                } else d = c || (b || !this.opts.scrollAccelerate ? this.opts.scrollStep : Math.floor(e.step));
                var j = a.dataSM("level");
                if (this.activatedItems[j - 1] && this.activatedItems[j - 1].dataSM("sub") && this.activatedItems[j - 1].dataSM("sub").is(":visible") && this.menuHideSubMenus(j - 1), e.y = e.up && h <= e.y || !e.up && h >= e.y ? e.y : Math.abs(h - e.y) > d ? e.y + (e.up ? d : -d) : h, a.css(this.cssTransforms3d ? {
                        "-webkit-transform": "translate3d(0, " + e.y + "px, 0)",
                        transform: "translate3d(0, " + e.y + "px, 0)"
                    } : {
                        marginTop: e.y
                    }), f && (e.up && e.y > e.downEnd || !e.up && e.y < e.upEnd) && g.eq(e.up ? 1 : 0).show(), e.y == h) f && g.eq(e.up ? 0 : 1).hide(), this.menuScrollStop(a);
                else if (!b) {
                    this.opts.scrollAccelerate && e.step < this.opts.scrollStep && (e.step += .2);
                    var k = this;
                    this.scrollTimeout = i(function() {
                        k.menuScroll(a)
                    })
                }
            },
            menuScrollMousewheel: function(a, b) {
                if (this.getClosestMenu(b.target) == a[0]) {
                    b = b.originalEvent;
                    var c = (b.wheelDelta || -b.detail) > 0;
                    a.dataSM("scroll-arrows").eq(c ? 0 : 1).is(":visible") && (a.dataSM("scroll").up = c, this.menuScroll(a, !0))
                }
                b.preventDefault()
            },
            menuScrollOut: function(b, c) {
                f && (/^scroll-(up|down)/.test((c.relatedTarget || "").className) || (b[0] == c.relatedTarget || a.contains(b[0], c.relatedTarget)) && this.getClosestMenu(c.relatedTarget) == b[0] || b.dataSM("scroll-arrows").css("visibility", "hidden"))
            },
            menuScrollOver: function(b, c) {
                if (f && !/^scroll-(up|down)/.test(c.target.className) && this.getClosestMenu(c.target) == b[0]) {
                    this.menuScrollRefreshData(b);
                    var d = b.dataSM("scroll"),
                        e = a(window).scrollTop() - b.dataSM("parent-a").offset().top - d.itemH;
                    b.dataSM("scroll-arrows").eq(0).css("margin-top", e).end().eq(1).css("margin-top", e + this.getViewportHeight() - d.arrowDownH).end().css("visibility", "visible")
                }
            },
            menuScrollRefreshData: function(b) {
                var c = b.dataSM("scroll"),
                    d = a(window).scrollTop() - b.dataSM("parent-a").offset().top - c.itemH;
                this.cssTransforms3d && (d = -(parseFloat(b.css("margin-top")) - d)), a.extend(c, {
                    upEnd: d,
                    downEnd: d + this.getViewportHeight() - c.subH
                })
            },
            menuScrollStop: function(a) {
                if (this.scrollTimeout) return j(this.scrollTimeout), this.scrollTimeout = 0, a.dataSM("scroll").step = 1, !0
            },
            menuScrollTouch: function(b, d) {
                if (d = d.originalEvent, c(d)) {
                    var e = this.getTouchPoint(d);
                    if (this.getClosestMenu(e.target) == b[0]) {
                        var f = b.dataSM("scroll");
                        if (/(start|down)$/i.test(d.type)) this.menuScrollStop(b) ? (d.preventDefault(), this.$touchScrollingSub = b) : this.$touchScrollingSub = null, this.menuScrollRefreshData(b), a.extend(f, {
                            touchStartY: e.pageY,
                            touchStartTime: d.timeStamp
                        });
                        else if (/move$/i.test(d.type)) {
                            var g = void 0 !== f.touchY ? f.touchY : f.touchStartY;
                            if (void 0 !== g && g != e.pageY) {
                                this.$touchScrollingSub = b;
                                var h = g < e.pageY;
                                void 0 !== f.up && f.up != h && a.extend(f, {
                                    touchStartY: e.pageY,
                                    touchStartTime: d.timeStamp
                                }), a.extend(f, {
                                    up: h,
                                    touchY: e.pageY
                                }), this.menuScroll(b, !0, Math.abs(e.pageY - g))
                            }
                            d.preventDefault()
                        } else void 0 !== f.touchY && ((f.momentum = 15 * Math.pow(Math.abs(e.pageY - f.touchStartY) / (d.timeStamp - f.touchStartTime), 2)) && (this.menuScrollStop(b), this.menuScroll(b), d.preventDefault()), delete f.touchY)
                    }
                }
            },
            menuShow: function(a) {
                if ((a.dataSM("beforefirstshowfired") || (a.dataSM("beforefirstshowfired", !0), this.$root.triggerHandler("beforefirstshow.smapi", a[0]) !== !1)) && this.$root.triggerHandler("beforeshow.smapi", a[0]) !== !1 && (a.dataSM("shown-before", !0), k && a.stop(!0, !0), !a.is(":visible"))) {
                    var b = a.dataSM("parent-a"),
                        c = this.isCollapsible();
                    if ((this.opts.keepHighlighted || c) && b.addClass("highlighted"), c) a.removeClass("sm-nowrap").css({
                        zIndex: "",
                        width: "auto",
                        minWidth: "",
                        maxWidth: "",
                        top: "",
                        left: "",
                        marginLeft: "",
                        marginTop: ""
                    });
                    else {
                        if (a.css("z-index", this.zIndexInc = (this.zIndexInc || this.getStartZIndex()) + 1), (this.opts.subMenusMinWidth || this.opts.subMenusMaxWidth) && (a.css({
                                width: "auto",
                                minWidth: "",
                                maxWidth: ""
                            }).addClass("sm-nowrap"), this.opts.subMenusMinWidth && a.css("min-width", this.opts.subMenusMinWidth), this.opts.subMenusMaxWidth)) {
                            var d = this.getWidth(a);
                            a.css("max-width", this.opts.subMenusMaxWidth), d > this.getWidth(a) && a.removeClass("sm-nowrap").css("width", this.opts.subMenusMaxWidth)
                        }
                        this.menuPosition(a)
                    }
                    var e = function() {
                        a.css("overflow", "")
                    };
                    c ? k && this.opts.collapsibleShowFunction ? this.opts.collapsibleShowFunction.call(this, a, e) : a.show(this.opts.collapsibleShowDuration, e) : k && this.opts.showFunction ? this.opts.showFunction.call(this, a, e) : a.show(this.opts.showDuration, e), b.attr("aria-expanded", "true"), a.attr({
                        "aria-expanded": "true",
                        "aria-hidden": "false"
                    }), this.visibleSubMenus.push(a), this.$root.triggerHandler("show.smapi", a[0])
                }
            },
            popupHide: function(a) {
                this.hideTimeout && (clearTimeout(this.hideTimeout), this.hideTimeout = 0);
                var b = this;
                this.hideTimeout = setTimeout(function() {
                    b.menuHideAll()
                }, a ? 1 : this.opts.hideTimeout)
            },
            popupShow: function(a, b) {
                if (!this.opts.isPopup) return void alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.');
                if (this.hideTimeout && (clearTimeout(this.hideTimeout), this.hideTimeout = 0), this.$root.dataSM("shown-before", !0), k && this.$root.stop(!0, !0), !this.$root.is(":visible")) {
                    this.$root.css({
                        left: a,
                        top: b
                    });
                    var c = this,
                        d = function() {
                            c.$root.css("overflow", "")
                        };
                    k && this.opts.showFunction ? this.opts.showFunction.call(this, this.$root, d) : this.$root.show(this.opts.showDuration, d), this.visibleSubMenus[0] = this.$root
                }
            },
            refresh: function() {
                this.destroy(!0), this.init(!0)
            },
            rootKeyDown: function(b) {
                if (this.handleEvents()) switch (b.keyCode) {
                    case 27:
                        var c = this.activatedItems[0];
                        if (c) {
                            this.menuHideAll(), c[0].focus();
                            var d = c.dataSM("sub");
                            d && this.menuHide(d)
                        }
                        break;
                    case 32:
                        var e = a(b.target);
                        if (e.is("a") && this.handleItemEvents(e)) {
                            var d = e.dataSM("sub");
                            d && !d.is(":visible") && (this.itemClick({
                                currentTarget: b.target
                            }), b.preventDefault())
                        }
                }
            },
            rootOut: function(a) {
                if (this.handleEvents() && !this.isTouchMode() && a.target != this.$root[0] && (this.hideTimeout && (clearTimeout(this.hideTimeout), this.hideTimeout = 0), !this.opts.showOnClick || !this.opts.hideOnClick)) {
                    var b = this;
                    this.hideTimeout = setTimeout(function() {
                        b.menuHideAll()
                    }, this.opts.hideTimeout)
                }
            },
            rootOver: function(a) {
                this.handleEvents() && !this.isTouchMode() && a.target != this.$root[0] && this.hideTimeout && (clearTimeout(this.hideTimeout), this.hideTimeout = 0)
            },
            winResize: function(a) {
                if (this.handleEvents()) {
                    if (!("onorientationchange" in window) || "orientationchange" == a.type) {
                        var b = this.isCollapsible();
                        this.wasCollapsible && b || (this.activatedItems.length && this.activatedItems[this.activatedItems.length - 1][0].blur(), this.menuHideAll()), this.wasCollapsible = b
                    }
                } else if (this.$disableOverlay) {
                    var c = this.$root.offset();
                    this.$disableOverlay.css({
                        top: c.top,
                        left: c.left,
                        width: this.$root.outerWidth(),
                        height: this.$root.outerHeight()
                    })
                }
            }
        }
    }), a.fn.dataSM = function(a, b) {
        return b ? this.data(a + "_smartmenus", b) : this.data(a + "_smartmenus")
    }, a.fn.removeDataSM = function(a) {
        return this.removeData(a + "_smartmenus")
    }, a.fn.smartmenus = function(b) {
        if ("string" == typeof b) {
            var c = arguments,
                d = b;
            return Array.prototype.shift.call(c), this.each(function() {
                var b = a(this).data("smartmenus");
                b && b[d] && b[d].apply(b, c)
            })
        }
        return this.each(function() {
            var c = a(this).data("sm-options") || null;
            c && "object" != typeof c && (c = null, alert('ERROR\n\nSmartMenus jQuery init:\nThe value of the "data-sm-options" attribute must be valid JSON.')), c && a.each(["showFunction", "hideFunction", "collapsibleShowFunction", "collapsibleHideFunction"], function() {
                this in c && delete c[this]
            }), new a.SmartMenus(this, a.extend({}, a.fn.smartmenus.defaults, b, c))
        })
    }, a.fn.smartmenus.defaults = {
        isPopup: !1,
        mainMenuSubOffsetX: 0,
        mainMenuSubOffsetY: 0,
        subMenusSubOffsetX: 0,
        subMenusSubOffsetY: 0,
        subMenusMinWidth: "10em",
        subMenusMaxWidth: "20em",
        subIndicators: !0,
        subIndicatorsPos: "append",
        subIndicatorsText: "",
        scrollStep: 30,
        scrollAccelerate: !0,
        showTimeout: 250,
        hideTimeout: 500,
        showDuration: 0,
        showFunction: null,
        hideDuration: 0,
        hideFunction: function(a, b) {
            a.fadeOut(200, b)
        },
        collapsibleShowDuration: 0,
        collapsibleShowFunction: function(a, b) {
            a.slideDown(200, b)
        },
        collapsibleHideDuration: 0,
        collapsibleHideFunction: function(a, b) {
            a.slideUp(200, b)
        },
        showOnClick: !1,
        hideOnClick: !0,
        noMouseOver: !1,
        keepInViewport: !0,
        keepHighlighted: !0,
        markCurrentItem: !1,
        markCurrentTree: !0,
        rightToLeftSubMenus: !1,
        bottomToTopSubMenus: !1,
        collapsibleBehavior: "default"
    }, a
});
! function(t) {
    var o = function(o, s) {
        var i, e, n, r, a = !1,
            c = !1,
            f = !1,
            p = {},
            l = {
                to: "top",
                offset: 0,
                effectsOffset: 0,
                parent: !1,
                classes: {
                    sticky: "sticky",
                    stickyActive: "sticky-active",
                    stickyEffects: "sticky-effects",
                    spacer: "sticky-spacer"
                },
                isRTL: !1,
                handleScrollbarWidth: !1
            },
            d = function(t, o, s) {
                var i = {},
                    e = t[0].style;
                s.forEach((function(t) {
                    i[t] = void 0 !== e[t] ? e[t] : ""
                })), t.data("css-backup-" + o, i)
            },
            m = function(t, o) {
                return t.data("css-backup-" + o)
            };
        const u = () => {
            if (r = b(i, "width"), n = i.offset().left, e.isRTL) {
                const t = e.handleScrollbarWidth ? window.innerWidth : document.body.offsetWidth;
                n = Math.max(t - r - n, 0)
            }
        };
        var h = function() {
                p.$spacer = i.clone().addClass(e.classes.spacer).css({
                    visibility: "hidden",
                    transition: "none",
                    animation: "none"
                }), i.after(p.$spacer)
            },
            y = function() {
                p.$spacer.remove()
            },
            k = function() {
                d(i, "unsticky", ["position", "width", "margin-top", "margin-bottom", "top", "bottom", "inset-inline-start"]);
                const t = {
                    position: "fixed",
                    width: r,
                    marginTop: 0,
                    marginBottom: 0
                };
                t[e.to] = e.offset, t["top" === e.to ? "bottom" : "top"] = "", n && (t["inset-inline-start"] = n + "px"), i.css(t).addClass(e.classes.stickyActive)
            },
            v = function() {
                i.css(m(i, "unsticky")).removeClass(e.classes.stickyActive)
            },
            b = function(t, o, s) {
                var i = getComputedStyle(t[0]),
                    e = parseFloat(i[o]),
                    n = "height" === o ? ["top", "bottom"] : ["left", "right"],
                    r = [];
                return "border-box" !== i.boxSizing && r.push("border", "padding"), s && r.push("margin"), r.forEach((function(t) {
                    n.forEach((function(o) {
                        e += parseFloat(i[t + "-" + o])
                    }))
                })), e
            },
            w = function(t) {
                var o = p.$window.scrollTop(),
                    s = b(t, "height"),
                    i = innerHeight,
                    e = t.offset().top - o,
                    n = e - i;
                return {
                    top: {
                        fromTop: e,
                        fromBottom: n
                    },
                    bottom: {
                        fromTop: e + s,
                        fromBottom: n + s
                    }
                }
            },
            g = function() {
                v(), y(), a = !1, i.trigger("sticky:unstick")
            },
            $ = function() {
                var t = w(i),
                    o = "top" === e.to;
                if (c) {
                    (o ? t.top.fromTop > e.offset : t.bottom.fromBottom < -e.offset) && (p.$parent.css(m(p.$parent, "childNotFollowing")), i.css(m(i, "notFollowing")), c = !1)
                } else {
                    var s = w(p.$parent),
                        a = getComputedStyle(p.$parent[0]),
                        f = parseFloat(a[o ? "borderBottomWidth" : "borderTopWidth"]),
                        l = o ? s.bottom.fromTop - f : s.top.fromBottom + f;
                    (o ? l <= t.bottom.fromTop : l >= t.top.fromBottom) && function() {
                        d(p.$parent, "childNotFollowing", ["position"]), p.$parent.css("position", "relative"), d(i, "notFollowing", ["position", "inset-inline-start", "top", "bottom"]);
                        const t = {
                            position: "absolute"
                        };
                        if (n = p.$spacer.position().left, e.isRTL) {
                            const t = i.parent().outerWidth(),
                                o = p.$spacer.position().left;
                            r = p.$spacer.outerWidth(), n = Math.max(t - r - o, 0)
                        }
                        t["inset-inline-start"] = n + "px", t[e.to] = "", t["top" === e.to ? "bottom" : "top"] = 0, i.css(t), c = !0
                    }()
                }
            },
            T = function() {
                var t, o = e.offset;
                if (a) {
                    var s = w(p.$spacer);
                    t = "top" === e.to ? s.top.fromTop - o : -s.bottom.fromBottom - o, e.parent && $(), t > 0 && g()
                } else {
                    var n = w(i);
                    (t = "top" === e.to ? n.top.fromTop - o : -n.bottom.fromBottom - o) <= 0 && (u(), h(), k(), a = !0, i.trigger("sticky:stick"), e.parent && $())
                }! function(t) {
                    f && -t < e.effectsOffset ? (i.removeClass(e.classes.stickyEffects), f = !1) : !f && -t >= e.effectsOffset && (i.addClass(e.classes.stickyEffects), f = !0)
                }(t)
            },
            B = function() {
                T()
            },
            C = function() {
                a && (v(), y(), u(), h(), k(), e.parent && (c = !1, $()))
            };
        this.destroy = function() {
            a && g(), p.$window.off("scroll", B).off("resize", C), i.removeClass(e.classes.sticky)
        }, e = jQuery.extend(!0, l, s), i = t(o).addClass(e.classes.sticky), p.$window = t(window), e.parent && (p.$parent = i.parent(), "parent" !== e.parent && (p.$parent = p.$parent.closest(e.parent))), p.$window.on({
            scroll: B,
            resize: C
        }), T()
    };
    t.fn.sticky = function(s) {
        var i = "string" == typeof s;
        return this.each((function() {
            var e = t(this);
            if (i) {
                var n = e.data("sticky");
                if (!n) throw Error("Trying to perform the `" + s + "` method prior to initialization");
                if (!n[s]) throw ReferenceError("Method `" + s + "` not found in sticky instance");
                n[s].apply(n, Array.prototype.slice.call(arguments, 1)), "destroy" === s && e.removeData("sticky")
            } else e.data("sticky", new o(this, s))
        })), this
    }, window.Sticky = o
}(jQuery);
/**
 * Owl carousel
 * @version 2.3.4
 * @author Bartosz Wojciechowski
 * @author David Deutsch
 * @license The MIT License (MIT)
 * @todo Lazy Load Icon
 * @todo prevent animationend bubling
 * @todo itemsScaleUp
 * @todo Test Zepto
 * @todo stagePadding calculate wrong active classes
 */
;
(function($, window, document, undefined) {
    function Owl(element, options) {
        this.settings = null;
        this.options = $.extend({}, Owl.Defaults, options);
        this.$element = $(element);
        this._handlers = {};
        this._plugins = {};
        this._supress = {};
        this._current = null;
        this._speed = null;
        this._coordinates = [];
        this._breakpoint = null;
        this._width = null;
        this._items = [];
        this._clones = [];
        this._mergers = [];
        this._widths = [];
        this._invalidated = {};
        this._pipe = [];
        this._drag = {
            time: null,
            target: null,
            pointer: null,
            stage: {
                start: null,
                current: null
            },
            direction: null
        };
        this._states = {
            current: {},
            tags: {
                'initializing': ['busy'],
                'animating': ['busy'],
                'dragging': ['interacting']
            }
        };
        $.each(['onResize', 'onThrottledResize'], $.proxy(function(i, handler) {
            this._handlers[handler] = $.proxy(this[handler], this)
        }, this));
        $.each(Owl.Plugins, $.proxy(function(key, plugin) {
            this._plugins[key.charAt(0).toLowerCase() + key.slice(1)] = new plugin(this)
        }, this));
        $.each(Owl.Workers, $.proxy(function(priority, worker) {
            this._pipe.push({
                'filter': worker.filter,
                'run': $.proxy(worker.run, this)
            })
        }, this));
        this.setup();
        this.initialize()
    }
    Owl.Defaults = {
        items: 3,
        loop: !1,
        center: !1,
        rewind: !1,
        checkVisibility: !0,
        mouseDrag: !0,
        touchDrag: !0,
        pullDrag: !0,
        freeDrag: !1,
        margin: 0,
        stagePadding: 0,
        merge: !1,
        mergeFit: !0,
        autoWidth: !1,
        startPosition: 0,
        rtl: !1,
        smartSpeed: 250,
        fluidSpeed: !1,
        dragEndSpeed: !1,
        responsive: {},
        responsiveRefreshRate: 200,
        responsiveBaseElement: window,
        fallbackEasing: 'swing',
        slideTransition: '',
        info: !1,
        nestedItemSelector: !1,
        itemElement: 'div',
        stageElement: 'div',
        refreshClass: 'owl-refresh',
        loadedClass: 'owl-loaded',
        loadingClass: 'owl-loading',
        rtlClass: 'owl-rtl',
        responsiveClass: 'owl-responsive',
        dragClass: 'owl-drag',
        itemClass: 'owl-item',
        stageClass: 'owl-stage',
        stageOuterClass: 'owl-stage-outer',
        grabClass: 'owl-grab'
    };
    Owl.Width = {
        Default: 'default',
        Inner: 'inner',
        Outer: 'outer'
    };
    Owl.Type = {
        Event: 'event',
        State: 'state'
    };
    Owl.Plugins = {};
    Owl.Workers = [{
        filter: ['width', 'settings'],
        run: function() {
            this._width = this.$element.width()
        }
    }, {
        filter: ['width', 'items', 'settings'],
        run: function(cache) {
            cache.current = this._items && this._items[this.relative(this._current)]
        }
    }, {
        filter: ['items', 'settings'],
        run: function() {
            this.$stage.children('.cloned').remove()
        }
    }, {
        filter: ['width', 'items', 'settings'],
        run: function(cache) {
            var margin = this.settings.margin || '',
                grid = !this.settings.autoWidth,
                rtl = this.settings.rtl,
                css = {
                    'width': 'auto',
                    'margin-left': rtl ? margin : '',
                    'margin-right': rtl ? '' : margin
                };
            !grid && this.$stage.children().css(css);
            cache.css = css
        }
    }, {
        filter: ['width', 'items', 'settings'],
        run: function(cache) {
            var width = (this.width() / this.settings.items).toFixed(3) - this.settings.margin,
                merge = null,
                iterator = this._items.length,
                grid = !this.settings.autoWidth,
                widths = [];
            cache.items = {
                merge: !1,
                width: width
            };
            while (iterator--) {
                merge = this._mergers[iterator];
                merge = this.settings.mergeFit && Math.min(merge, this.settings.items) || merge;
                cache.items.merge = merge > 1 || cache.items.merge;
                widths[iterator] = !grid ? this._items[iterator].width() : width * merge
            }
            this._widths = widths
        }
    }, {
        filter: ['items', 'settings'],
        run: function() {
            var clones = [],
                items = this._items,
                settings = this.settings,
                view = Math.max(settings.items * 2, 4),
                size = Math.ceil(items.length / 2) * 2,
                repeat = settings.loop && items.length ? settings.rewind ? view : Math.max(view, size) : 0,
                append = '',
                prepend = '';
            repeat /= 2;
            while (repeat > 0) {
                clones.push(this.normalize(clones.length / 2, !0));
                append = append + items[clones[clones.length - 1]][0].outerHTML;
                clones.push(this.normalize(items.length - 1 - (clones.length - 1) / 2, !0));
                prepend = items[clones[clones.length - 1]][0].outerHTML + prepend;
                repeat -= 1
            }
            this._clones = clones;
            $(append).addClass('cloned').appendTo(this.$stage);
            $(prepend).addClass('cloned').prependTo(this.$stage)
        }
    }, {
        filter: ['width', 'items', 'settings'],
        run: function() {
            var rtl = this.settings.rtl ? 1 : -1,
                size = this._clones.length + this._items.length,
                iterator = -1,
                previous = 0,
                current = 0,
                coordinates = [];
            while (++iterator < size) {
                previous = coordinates[iterator - 1] || 0;
                current = this._widths[this.relative(iterator)] + this.settings.margin;
                coordinates.push(previous + current * rtl)
            }
            this._coordinates = coordinates
        }
    }, {
        filter: ['width', 'items', 'settings'],
        run: function() {
            var padding = this.settings.stagePadding,
                coordinates = this._coordinates,
                css = {
                    'width': Math.ceil(Math.abs(coordinates[coordinates.length - 1])) + padding * 2,
                    'padding-left': padding || '',
                    'padding-right': padding || ''
                };
            this.$stage.css(css)
        }
    }, {
        filter: ['width', 'items', 'settings'],
        run: function(cache) {
            var iterator = this._coordinates.length,
                grid = !this.settings.autoWidth,
                items = this.$stage.children();
            if (grid && cache.items.merge) {
                while (iterator--) {
                    cache.css.width = this._widths[this.relative(iterator)];
                    items.eq(iterator).css(cache.css)
                }
            } else if (grid) {
                cache.css.width = cache.items.width;
                items.css(cache.css)
            }
        }
    }, {
        filter: ['items'],
        run: function() {
            this._coordinates.length < 1 && this.$stage.removeAttr('style')
        }
    }, {
        filter: ['width', 'items', 'settings'],
        run: function(cache) {
            cache.current = cache.current ? this.$stage.children().index(cache.current) : 0;
            cache.current = Math.max(this.minimum(), Math.min(this.maximum(), cache.current));
            this.reset(cache.current)
        }
    }, {
        filter: ['position'],
        run: function() {
            this.animate(this.coordinates(this._current))
        }
    }, {
        filter: ['width', 'position', 'items', 'settings'],
        run: function() {
            var rtl = this.settings.rtl ? 1 : -1,
                padding = this.settings.stagePadding * 2,
                begin = this.coordinates(this.current()) + padding,
                end = begin + this.width() * rtl,
                inner, outer, matches = [],
                i, n;
            for (i = 0, n = this._coordinates.length; i < n; i++) {
                inner = this._coordinates[i - 1] || 0;
                outer = Math.abs(this._coordinates[i]) + padding * rtl;
                if ((this.op(inner, '<=', begin) && (this.op(inner, '>', end))) || (this.op(outer, '<', begin) && this.op(outer, '>', end))) {
                    matches.push(i)
                }
            }
            this.$stage.children('.active').removeClass('active');
            this.$stage.children(':eq(' + matches.join('), :eq(') + ')').addClass('active');
            this.$stage.children('.center').removeClass('center');
            if (this.settings.center) {
                this.$stage.children().eq(this.current()).addClass('center')
            }
        }
    }];
    Owl.prototype.initializeStage = function() {
        this.$stage = this.$element.find('.' + this.settings.stageClass);
        if (this.$stage.length) {
            return
        }
        this.$element.addClass(this.options.loadingClass);
        this.$stage = $('<' + this.settings.stageElement + '>', {
            "class": this.settings.stageClass
        }).wrap($('<div/>', {
            "class": this.settings.stageOuterClass
        }));
        this.$element.append(this.$stage.parent())
    };
    Owl.prototype.initializeItems = function() {
        var $items = this.$element.find('.owl-item');
        if ($items.length) {
            this._items = $items.get().map(function(item) {
                return $(item)
            });
            this._mergers = this._items.map(function() {
                return 1
            });
            this.refresh();
            return
        }
        this.replace(this.$element.children().not(this.$stage.parent()));
        if (this.isVisible()) {
            this.refresh()
        } else {
            this.invalidate('width')
        }
        this.$element.removeClass(this.options.loadingClass).addClass(this.options.loadedClass)
    };
    Owl.prototype.initialize = function() {
        this.enter('initializing');
        this.trigger('initialize');
        this.$element.toggleClass(this.settings.rtlClass, this.settings.rtl);
        if (this.settings.autoWidth && !this.is('pre-loading')) {
            var imgs, nestedSelector, width;
            imgs = this.$element.find('img');
            nestedSelector = this.settings.nestedItemSelector ? '.' + this.settings.nestedItemSelector : undefined;
            width = this.$element.children(nestedSelector).width();
            if (imgs.length && width <= 0) {
                this.preloadAutoWidthImages(imgs)
            }
        }
        this.initializeStage();
        this.initializeItems();
        this.registerEventHandlers();
        this.leave('initializing');
        this.trigger('initialized')
    };
    Owl.prototype.isVisible = function() {
        return this.settings.checkVisibility ? this.$element.is(':visible') : !0
    };
    Owl.prototype.setup = function() {
        var viewport = this.viewport(),
            overwrites = this.options.responsive,
            match = -1,
            settings = null;
        if (!overwrites) {
            settings = $.extend({}, this.options)
        } else {
            $.each(overwrites, function(breakpoint) {
                if (breakpoint <= viewport && breakpoint > match) {
                    match = Number(breakpoint)
                }
            });
            settings = $.extend({}, this.options, overwrites[match]);
            if (typeof settings.stagePadding === 'function') {
                settings.stagePadding = settings.stagePadding()
            }
            delete settings.responsive;
            if (settings.responsiveClass) {
                this.$element.attr('class', this.$element.attr('class').replace(new RegExp('(' + this.options.responsiveClass + '-)\\S+\\s', 'g'), '$1' + match))
            }
        }
        this.trigger('change', {
            property: {
                name: 'settings',
                value: settings
            }
        });
        this._breakpoint = match;
        this.settings = settings;
        this.invalidate('settings');
        this.trigger('changed', {
            property: {
                name: 'settings',
                value: this.settings
            }
        })
    };
    Owl.prototype.optionsLogic = function() {
        if (this.settings.autoWidth) {
            this.settings.stagePadding = !1;
            this.settings.merge = !1
        }
    };
    Owl.prototype.prepare = function(item) {
        var event = this.trigger('prepare', {
            content: item
        });
        if (!event.data) {
            event.data = $('<' + this.settings.itemElement + '/>').addClass(this.options.itemClass).append(item)
        }
        this.trigger('prepared', {
            content: event.data
        });
        return event.data
    };
    Owl.prototype.update = function() {
        var i = 0,
            n = this._pipe.length,
            filter = $.proxy(function(p) {
                return this[p]
            }, this._invalidated),
            cache = {};
        while (i < n) {
            if (this._invalidated.all || $.grep(this._pipe[i].filter, filter).length > 0) {
                this._pipe[i].run(cache)
            }
            i++
        }
        this._invalidated = {};
        !this.is('valid') && this.enter('valid')
    };
    Owl.prototype.width = function(dimension) {
        dimension = dimension || Owl.Width.Default;
        switch (dimension) {
            case Owl.Width.Inner:
            case Owl.Width.Outer:
                return this._width;
            default:
                return this._width - this.settings.stagePadding * 2 + this.settings.margin
        }
    };
    Owl.prototype.refresh = function() {
        this.enter('refreshing');
        this.trigger('refresh');
        this.setup();
        this.optionsLogic();
        this.$element.addClass(this.options.refreshClass);
        this.update();
        this.$element.removeClass(this.options.refreshClass);
        this.leave('refreshing');
        this.trigger('refreshed')
    };
    Owl.prototype.onThrottledResize = function() {
        window.clearTimeout(this.resizeTimer);
        this.resizeTimer = window.setTimeout(this._handlers.onResize, this.settings.responsiveRefreshRate)
    };
    Owl.prototype.onResize = function() {
        if (!this._items.length) {
            return !1
        }
        if (this._width === this.$element.width()) {
            return !1
        }
        if (!this.isVisible()) {
            return !1
        }
        this.enter('resizing');
        if (this.trigger('resize').isDefaultPrevented()) {
            this.leave('resizing');
            return !1
        }
        this.invalidate('width');
        this.refresh();
        this.leave('resizing');
        this.trigger('resized')
    };
    Owl.prototype.registerEventHandlers = function() {
        if ($.support.transition) {
            this.$stage.on($.support.transition.end + '.owl.core', $.proxy(this.onTransitionEnd, this))
        }
        if (this.settings.responsive !== !1) {
            this.on(window, 'resize', this._handlers.onThrottledResize)
        }
        if (this.settings.mouseDrag) {
            this.$element.addClass(this.options.dragClass);
            this.$stage.on('mousedown.owl.core', $.proxy(this.onDragStart, this));
            this.$stage.on('dragstart.owl.core selectstart.owl.core', function() {
                return !1
            })
        }
        if (this.settings.touchDrag) {
            this.$stage.on('touchstart.owl.core', $.proxy(this.onDragStart, this));
            this.$stage.on('touchcancel.owl.core', $.proxy(this.onDragEnd, this))
        }
    };
    Owl.prototype.onDragStart = function(event) {
        var stage = null;
        if (event.which === 3) {
            return
        }
        if ($.support.transform) {
            stage = this.$stage.css('transform').replace(/.*\(|\)| /g, '').split(',');
            stage = {
                x: stage[stage.length === 16 ? 12 : 4],
                y: stage[stage.length === 16 ? 13 : 5]
            }
        } else {
            stage = this.$stage.position();
            stage = {
                x: this.settings.rtl ? stage.left + this.$stage.width() - this.width() + this.settings.margin : stage.left,
                y: stage.top
            }
        }
        if (this.is('animating')) {
            $.support.transform ? this.animate(stage.x) : this.$stage.stop()
            this.invalidate('position')
        }
        this.$element.toggleClass(this.options.grabClass, event.type === 'mousedown');
        this.speed(0);
        this._drag.time = new Date().getTime();
        this._drag.target = $(event.target);
        this._drag.stage.start = stage;
        this._drag.stage.current = stage;
        this._drag.pointer = this.pointer(event);
        $(document).on('mouseup.owl.core touchend.owl.core', $.proxy(this.onDragEnd, this));
        $(document).one('mousemove.owl.core touchmove.owl.core', $.proxy(function(event) {
            var delta = this.difference(this._drag.pointer, this.pointer(event));
            $(document).on('mousemove.owl.core touchmove.owl.core', $.proxy(this.onDragMove, this));
            if (Math.abs(delta.x) < Math.abs(delta.y) && this.is('valid')) {
                return
            }
            event.preventDefault();
            this.enter('dragging');
            this.trigger('drag')
        }, this))
    };
    Owl.prototype.onDragMove = function(event) {
        var minimum = null,
            maximum = null,
            pull = null,
            delta = this.difference(this._drag.pointer, this.pointer(event)),
            stage = this.difference(this._drag.stage.start, delta);
        if (!this.is('dragging')) {
            return
        }
        event.preventDefault();
        if (this.settings.loop) {
            minimum = this.coordinates(this.minimum());
            maximum = this.coordinates(this.maximum() + 1) - minimum;
            stage.x = (((stage.x - minimum) % maximum + maximum) % maximum) + minimum
        } else {
            minimum = this.settings.rtl ? this.coordinates(this.maximum()) : this.coordinates(this.minimum());
            maximum = this.settings.rtl ? this.coordinates(this.minimum()) : this.coordinates(this.maximum());
            pull = this.settings.pullDrag ? -1 * delta.x / 5 : 0;
            stage.x = Math.max(Math.min(stage.x, minimum + pull), maximum + pull)
        }
        this._drag.stage.current = stage;
        this.animate(stage.x)
    };
    Owl.prototype.onDragEnd = function(event) {
        var delta = this.difference(this._drag.pointer, this.pointer(event)),
            stage = this._drag.stage.current,
            direction = delta.x > 0 ^ this.settings.rtl ? 'left' : 'right';
        $(document).off('.owl.core');
        this.$element.removeClass(this.options.grabClass);
        if (delta.x !== 0 && this.is('dragging') || !this.is('valid')) {
            this.speed(this.settings.dragEndSpeed || this.settings.smartSpeed);
            this.current(this.closest(stage.x, delta.x !== 0 ? direction : this._drag.direction));
            this.invalidate('position');
            this.update();
            this._drag.direction = direction;
            if (Math.abs(delta.x) > 3 || new Date().getTime() - this._drag.time > 300) {
                this._drag.target.one('click.owl.core', function() {
                    return !1
                })
            }
        }
        if (!this.is('dragging')) {
            return
        }
        this.leave('dragging');
        this.trigger('dragged')
    };
    Owl.prototype.closest = function(coordinate, direction) {
        var position = -1,
            pull = 30,
            width = this.width(),
            coordinates = this.coordinates();
        if (!this.settings.freeDrag) {
            $.each(coordinates, $.proxy(function(index, value) {
                if (direction === 'left' && coordinate > value - pull && coordinate < value + pull) {
                    position = index
                } else if (direction === 'right' && coordinate > value - width - pull && coordinate < value - width + pull) {
                    position = index + 1
                } else if (this.op(coordinate, '<', value) && this.op(coordinate, '>', coordinates[index + 1] !== undefined ? coordinates[index + 1] : value - width)) {
                    position = direction === 'left' ? index + 1 : index
                }
                return position === -1
            }, this))
        }
        if (!this.settings.loop) {
            if (this.op(coordinate, '>', coordinates[this.minimum()])) {
                position = coordinate = this.minimum()
            } else if (this.op(coordinate, '<', coordinates[this.maximum()])) {
                position = coordinate = this.maximum()
            }
        }
        return position
    };
    Owl.prototype.animate = function(coordinate) {
        var animate = this.speed() > 0;
        this.is('animating') && this.onTransitionEnd();
        if (animate) {
            this.enter('animating');
            this.trigger('translate')
        }
        if ($.support.transform3d && $.support.transition) {
            this.$stage.css({
                transform: 'translate3d(' + coordinate + 'px,0px,0px)',
                transition: (this.speed() / 1000) + 's' + (this.settings.slideTransition ? ' ' + this.settings.slideTransition : '')
            })
        } else if (animate) {
            this.$stage.animate({
                left: coordinate + 'px'
            }, this.speed(), this.settings.fallbackEasing, $.proxy(this.onTransitionEnd, this))
        } else {
            this.$stage.css({
                left: coordinate + 'px'
            })
        }
    };
    Owl.prototype.is = function(state) {
        return this._states.current[state] && this._states.current[state] > 0
    };
    Owl.prototype.current = function(position) {
        if (position === undefined) {
            return this._current
        }
        if (this._items.length === 0) {
            return undefined
        }
        position = this.normalize(position);
        if (this._current !== position) {
            var event = this.trigger('change', {
                property: {
                    name: 'position',
                    value: position
                }
            });
            if (event.data !== undefined) {
                position = this.normalize(event.data)
            }
            this._current = position;
            this.invalidate('position');
            this.trigger('changed', {
                property: {
                    name: 'position',
                    value: this._current
                }
            })
        }
        return this._current
    };
    Owl.prototype.invalidate = function(part) {
        if ($.type(part) === 'string') {
            this._invalidated[part] = !0;
            this.is('valid') && this.leave('valid')
        }
        return $.map(this._invalidated, function(v, i) {
            return i
        })
    };
    Owl.prototype.reset = function(position) {
        position = this.normalize(position);
        if (position === undefined) {
            return
        }
        this._speed = 0;
        this._current = position;
        this.suppress(['translate', 'translated']);
        this.animate(this.coordinates(position));
        this.release(['translate', 'translated'])
    };
    Owl.prototype.normalize = function(position, relative) {
        var n = this._items.length,
            m = relative ? 0 : this._clones.length;
        if (!this.isNumeric(position) || n < 1) {
            position = undefined
        } else if (position < 0 || position >= n + m) {
            position = ((position - m / 2) % n + n) % n + m / 2
        }
        return position
    };
    Owl.prototype.relative = function(position) {
        position -= this._clones.length / 2;
        return this.normalize(position, !0)
    };
    Owl.prototype.maximum = function(relative) {
        var settings = this.settings,
            maximum = this._coordinates.length,
            iterator, reciprocalItemsWidth, elementWidth;
        if (settings.loop) {
            maximum = this._clones.length / 2 + this._items.length - 1
        } else if (settings.autoWidth || settings.merge) {
            iterator = this._items.length;
            if (iterator) {
                reciprocalItemsWidth = this._items[--iterator].width();
                elementWidth = this.$element.width();
                while (iterator--) {
                    reciprocalItemsWidth += this._items[iterator].width() + this.settings.margin;
                    if (reciprocalItemsWidth > elementWidth) {
                        break
                    }
                }
            }
            maximum = iterator + 1
        } else if (settings.center) {
            maximum = this._items.length - 1
        } else {
            maximum = this._items.length - settings.items
        }
        if (relative) {
            maximum -= this._clones.length / 2
        }
        return Math.max(maximum, 0)
    };
    Owl.prototype.minimum = function(relative) {
        return relative ? 0 : this._clones.length / 2
    };
    Owl.prototype.items = function(position) {
        if (position === undefined) {
            return this._items.slice()
        }
        position = this.normalize(position, !0);
        return this._items[position]
    };
    Owl.prototype.mergers = function(position) {
        if (position === undefined) {
            return this._mergers.slice()
        }
        position = this.normalize(position, !0);
        return this._mergers[position]
    };
    Owl.prototype.clones = function(position) {
        var odd = this._clones.length / 2,
            even = odd + this._items.length,
            map = function(index) {
                return index % 2 === 0 ? even + index / 2 : odd - (index + 1) / 2
            };
        if (position === undefined) {
            return $.map(this._clones, function(v, i) {
                return map(i)
            })
        }
        return $.map(this._clones, function(v, i) {
            return v === position ? map(i) : null
        })
    };
    Owl.prototype.speed = function(speed) {
        if (speed !== undefined) {
            this._speed = speed
        }
        return this._speed
    };
    Owl.prototype.coordinates = function(position) {
        var multiplier = 1,
            newPosition = position - 1,
            coordinate;
        if (position === undefined) {
            return $.map(this._coordinates, $.proxy(function(coordinate, index) {
                return this.coordinates(index)
            }, this))
        }
        if (this.settings.center) {
            if (this.settings.rtl) {
                multiplier = -1;
                newPosition = position + 1
            }
            coordinate = this._coordinates[position];
            coordinate += (this.width() - coordinate + (this._coordinates[newPosition] || 0)) / 2 * multiplier
        } else {
            coordinate = this._coordinates[newPosition] || 0
        }
        coordinate = Math.ceil(coordinate);
        return coordinate
    };
    Owl.prototype.duration = function(from, to, factor) {
        if (factor === 0) {
            return 0
        }
        return Math.min(Math.max(Math.abs(to - from), 1), 6) * Math.abs((factor || this.settings.smartSpeed))
    };
    Owl.prototype.to = function(position, speed) {
        var current = this.current(),
            revert = null,
            distance = position - this.relative(current),
            direction = (distance > 0) - (distance < 0),
            items = this._items.length,
            minimum = this.minimum(),
            maximum = this.maximum();
        if (this.settings.loop) {
            if (!this.settings.rewind && Math.abs(distance) > items / 2) {
                distance += direction * -1 * items
            }
            position = current + distance;
            revert = ((position - minimum) % items + items) % items + minimum;
            if (revert !== position && revert - distance <= maximum && revert - distance > 0) {
                current = revert - distance;
                position = revert;
                this.reset(current)
            }
        } else if (this.settings.rewind) {
            maximum += 1;
            position = (position % maximum + maximum) % maximum
        } else {
            position = Math.max(minimum, Math.min(maximum, position))
        }
        this.speed(this.duration(current, position, speed));
        this.current(position);
        if (this.isVisible()) {
            this.update()
        }
    };
    Owl.prototype.next = function(speed) {
        speed = speed || !1;
        this.to(this.relative(this.current()) + 1, speed)
    };
    Owl.prototype.prev = function(speed) {
        speed = speed || !1;
        this.to(this.relative(this.current()) - 1, speed)
    };
    Owl.prototype.onTransitionEnd = function(event) {
        if (event !== undefined) {
            event.stopPropagation();
            if ((event.target || event.srcElement || event.originalTarget) !== this.$stage.get(0)) {
                return !1
            }
        }
        this.leave('animating');
        this.trigger('translated')
    };
    Owl.prototype.viewport = function() {
        var width;
        if (this.options.responsiveBaseElement !== window) {
            width = $(this.options.responsiveBaseElement).width()
        } else if (window.innerWidth) {
            width = window.innerWidth
        } else if (document.documentElement && document.documentElement.clientWidth) {
            width = document.documentElement.clientWidth
        } else {
            console.warn('Can not detect viewport width.')
        }
        return width
    };
    Owl.prototype.replace = function(content) {
        this.$stage.empty();
        this._items = [];
        if (content) {
            content = (content instanceof jQuery) ? content : $(content)
        }
        if (this.settings.nestedItemSelector) {
            content = content.find('.' + this.settings.nestedItemSelector)
        }
        content.filter(function() {
            return this.nodeType === 1
        }).each($.proxy(function(index, item) {
            item = this.prepare(item);
            this.$stage.append(item);
            this._items.push(item);
            this._mergers.push(item.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1 || 1)
        }, this));
        this.reset(this.isNumeric(this.settings.startPosition) ? this.settings.startPosition : 0);
        this.invalidate('items')
    };
    Owl.prototype.add = function(content, position) {
        var current = this.relative(this._current);
        position = position === undefined ? this._items.length : this.normalize(position, !0);
        content = content instanceof jQuery ? content : $(content);
        this.trigger('add', {
            content: content,
            position: position
        });
        content = this.prepare(content);
        if (this._items.length === 0 || position === this._items.length) {
            this._items.length === 0 && this.$stage.append(content);
            this._items.length !== 0 && this._items[position - 1].after(content);
            this._items.push(content);
            this._mergers.push(content.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1 || 1)
        } else {
            this._items[position].before(content);
            this._items.splice(position, 0, content);
            this._mergers.splice(position, 0, content.find('[data-merge]').addBack('[data-merge]').attr('data-merge') * 1 || 1)
        }
        this._items[current] && this.reset(this._items[current].index());
        this.invalidate('items');
        this.trigger('added', {
            content: content,
            position: position
        })
    };
    Owl.prototype.remove = function(position) {
        position = this.normalize(position, !0);
        if (position === undefined) {
            return
        }
        this.trigger('remove', {
            content: this._items[position],
            position: position
        });
        this._items[position].remove();
        this._items.splice(position, 1);
        this._mergers.splice(position, 1);
        this.invalidate('items');
        this.trigger('removed', {
            content: null,
            position: position
        })
    };
    Owl.prototype.preloadAutoWidthImages = function(images) {
        images.each($.proxy(function(i, element) {
            this.enter('pre-loading');
            element = $(element);
            $(new Image()).one('load', $.proxy(function(e) {
                element.attr('src', e.target.src);
                element.css('opacity', 1);
                this.leave('pre-loading');
                !this.is('pre-loading') && !this.is('initializing') && this.refresh()
            }, this)).attr('src', element.attr('src') || element.attr('data-src') || element.attr('data-src-retina'))
        }, this))
    };
    Owl.prototype.destroy = function() {
        this.$element.off('.owl.core');
        this.$stage.off('.owl.core');
        $(document).off('.owl.core');
        if (this.settings.responsive !== !1) {
            window.clearTimeout(this.resizeTimer);
            this.off(window, 'resize', this._handlers.onThrottledResize)
        }
        for (var i in this._plugins) {
            this._plugins[i].destroy()
        }
        this.$stage.children('.cloned').remove();
        this.$stage.unwrap();
        this.$stage.children().contents().unwrap();
        this.$stage.children().unwrap();
        this.$stage.remove();
        this.$element.removeClass(this.options.refreshClass).removeClass(this.options.loadingClass).removeClass(this.options.loadedClass).removeClass(this.options.rtlClass).removeClass(this.options.dragClass).removeClass(this.options.grabClass).attr('class', this.$element.attr('class').replace(new RegExp(this.options.responsiveClass + '-\\S+\\s', 'g'), '')).removeData('owl.carousel')
    };
    Owl.prototype.op = function(a, o, b) {
        var rtl = this.settings.rtl;
        switch (o) {
            case '<':
                return rtl ? a > b : a < b;
            case '>':
                return rtl ? a < b : a > b;
            case '>=':
                return rtl ? a <= b : a >= b;
            case '<=':
                return rtl ? a >= b : a <= b;
            default:
                break
        }
    };
    Owl.prototype.on = function(element, event, listener, capture) {
        if (element.addEventListener) {
            element.addEventListener(event, listener, capture)
        } else if (element.attachEvent) {
            element.attachEvent('on' + event, listener)
        }
    };
    Owl.prototype.off = function(element, event, listener, capture) {
        if (element.removeEventListener) {
            element.removeEventListener(event, listener, capture)
        } else if (element.detachEvent) {
            element.detachEvent('on' + event, listener)
        }
    };
    Owl.prototype.trigger = function(name, data, namespace, state, enter) {
        var status = {
                item: {
                    count: this._items.length,
                    index: this.current()
                }
            },
            handler = $.camelCase($.grep(['on', name, namespace], function(v) {
                return v
            }).join('-').toLowerCase()),
            event = $.Event([name, 'owl', namespace || 'carousel'].join('.').toLowerCase(), $.extend({
                relatedTarget: this
            }, status, data));
        if (!this._supress[name]) {
            $.each(this._plugins, function(name, plugin) {
                if (plugin.onTrigger) {
                    plugin.onTrigger(event)
                }
            });
            this.register({
                type: Owl.Type.Event,
                name: name
            });
            this.$element.trigger(event);
            if (this.settings && typeof this.settings[handler] === 'function') {
                this.settings[handler].call(this, event)
            }
        }
        return event
    };
    Owl.prototype.enter = function(name) {
        $.each([name].concat(this._states.tags[name] || []), $.proxy(function(i, name) {
            if (this._states.current[name] === undefined) {
                this._states.current[name] = 0
            }
            this._states.current[name]++
        }, this))
    };
    Owl.prototype.leave = function(name) {
        $.each([name].concat(this._states.tags[name] || []), $.proxy(function(i, name) {
            this._states.current[name]--
        }, this))
    };
    Owl.prototype.register = function(object) {
        if (object.type === Owl.Type.Event) {
            if (!$.event.special[object.name]) {
                $.event.special[object.name] = {}
            }
            if (!$.event.special[object.name].owl) {
                var _default = $.event.special[object.name]._default;
                $.event.special[object.name]._default = function(e) {
                    if (_default && _default.apply && (!e.namespace || e.namespace.indexOf('owl') === -1)) {
                        return _default.apply(this, arguments)
                    }
                    return e.namespace && e.namespace.indexOf('owl') > -1
                };
                $.event.special[object.name].owl = !0
            }
        } else if (object.type === Owl.Type.State) {
            if (!this._states.tags[object.name]) {
                this._states.tags[object.name] = object.tags
            } else {
                this._states.tags[object.name] = this._states.tags[object.name].concat(object.tags)
            }
            this._states.tags[object.name] = $.grep(this._states.tags[object.name], $.proxy(function(tag, i) {
                return $.inArray(tag, this._states.tags[object.name]) === i
            }, this))
        }
    };
    Owl.prototype.suppress = function(events) {
        $.each(events, $.proxy(function(index, event) {
            this._supress[event] = !0
        }, this))
    };
    Owl.prototype.release = function(events) {
        $.each(events, $.proxy(function(index, event) {
            delete this._supress[event]
        }, this))
    };
    Owl.prototype.pointer = function(event) {
        var result = {
            x: null,
            y: null
        };
        event = event.originalEvent || event || window.event;
        event = event.touches && event.touches.length ? event.touches[0] : event.changedTouches && event.changedTouches.length ? event.changedTouches[0] : event;
        if (event.pageX) {
            result.x = event.pageX;
            result.y = event.pageY
        } else {
            result.x = event.clientX;
            result.y = event.clientY
        }
        return result
    };
    Owl.prototype.isNumeric = function(number) {
        return !isNaN(parseFloat(number))
    };
    Owl.prototype.difference = function(first, second) {
        return {
            x: first.x - second.x,
            y: first.y - second.y
        }
    };
    $.fn.owlCarousel = function(option) {
        var args = Array.prototype.slice.call(arguments, 1);
        return this.each(function() {
            var $this = $(this),
                data = $this.data('owl.carousel');
            if (!data) {
                data = new Owl(this, typeof option == 'object' && option);
                $this.data('owl.carousel', data);
                $.each(['next', 'prev', 'to', 'destroy', 'refresh', 'replace', 'add', 'remove'], function(i, event) {
                    data.register({
                        type: Owl.Type.Event,
                        name: event
                    });
                    data.$element.on(event + '.owl.carousel.core', $.proxy(function(e) {
                        if (e.namespace && e.relatedTarget !== this) {
                            this.suppress([event]);
                            data[event].apply(this, [].slice.call(arguments, 1));
                            this.release([event])
                        }
                    }, data))
                })
            }
            if (typeof option == 'string' && option.charAt(0) !== '_') {
                data[option].apply(data, args)
            }
        })
    };
    $.fn.owlCarousel.Constructor = Owl
})(window.Zepto || window.jQuery, window, document);
/**
 * AutoRefresh Plugin
 * @version 2.3.4
 * @author Artus Kolanowski
 * @author David Deutsch
 * @license The MIT License (MIT)
 */
;
(function($, window, document, undefined) {
    var AutoRefresh = function(carousel) {
        this._core = carousel;
        this._interval = null;
        this._visible = null;
        this._handlers = {
            'initialized.owl.carousel': $.proxy(function(e) {
                if (e.namespace && this._core.settings.autoRefresh) {
                    this.watch()
                }
            }, this)
        };
        this._core.options = $.extend({}, AutoRefresh.Defaults, this._core.options);
        this._core.$element.on(this._handlers)
    };
    AutoRefresh.Defaults = {
        autoRefresh: !0,
        autoRefreshInterval: 500
    };
    AutoRefresh.prototype.watch = function() {
        if (this._interval) {
            return
        }
        this._visible = this._core.isVisible();
        this._interval = window.setInterval($.proxy(this.refresh, this), this._core.settings.autoRefreshInterval)
    };
    AutoRefresh.prototype.refresh = function() {
        if (this._core.isVisible() === this._visible) {
            return
        }
        this._visible = !this._visible;
        this._core.$element.toggleClass('owl-hidden', !this._visible);
        this._visible && (this._core.invalidate('width') && this._core.refresh())
    };
    AutoRefresh.prototype.destroy = function() {
        var handler, property;
        window.clearInterval(this._interval);
        for (handler in this._handlers) {
            this._core.$element.off(handler, this._handlers[handler])
        }
        for (property in Object.getOwnPropertyNames(this)) {
            typeof this[property] != 'function' && (this[property] = null)
        }
    };
    $.fn.owlCarousel.Constructor.Plugins.AutoRefresh = AutoRefresh
})(window.Zepto || window.jQuery, window, document);
/**
 * Lazy Plugin
 * @version 2.3.4
 * @author Bartosz Wojciechowski
 * @author David Deutsch
 * @license The MIT License (MIT)
 */
;
(function($, window, document, undefined) {
    var Lazy = function(carousel) {
        this._core = carousel;
        this._loaded = [];
        this._handlers = {
            'initialized.owl.carousel change.owl.carousel resized.owl.carousel': $.proxy(function(e) {
                if (!e.namespace) {
                    return
                }
                if (!this._core.settings || !this._core.settings.lazyLoad) {
                    return
                }
                if ((e.property && e.property.name == 'position') || e.type == 'initialized') {
                    var settings = this._core.settings,
                        n = (settings.center && Math.ceil(settings.items / 2) || settings.items),
                        i = ((settings.center && n * -1) || 0),
                        position = (e.property && e.property.value !== undefined ? e.property.value : this._core.current()) + i,
                        clones = this._core.clones().length,
                        load = $.proxy(function(i, v) {
                            this.load(v)
                        }, this);
                    if (settings.lazyLoadEager > 0) {
                        n += settings.lazyLoadEager;
                        if (settings.loop) {
                            position -= settings.lazyLoadEager;
                            n++
                        }
                    }
                    while (i++ < n) {
                        this.load(clones / 2 + this._core.relative(position));
                        clones && $.each(this._core.clones(this._core.relative(position)), load);
                        position++
                    }
                }
            }, this)
        };
        this._core.options = $.extend({}, Lazy.Defaults, this._core.options);
        this._core.$element.on(this._handlers)
    };
    Lazy.Defaults = {
        lazyLoad: !1,
        lazyLoadEager: 0
    };
    Lazy.prototype.load = function(position) {
        var $item = this._core.$stage.children().eq(position),
            $elements = $item && $item.find('.owl-lazy');
        if (!$elements || $.inArray($item.get(0), this._loaded) > -1) {
            return
        }
        $elements.each($.proxy(function(index, element) {
            var $element = $(element),
                image, url = (window.devicePixelRatio > 1 && $element.attr('data-src-retina')) || $element.attr('data-src') || $element.attr('data-srcset');
            this._core.trigger('load', {
                element: $element,
                url: url
            }, 'lazy');
            if ($element.is('img')) {
                $element.one('load.owl.lazy', $.proxy(function() {
                    $element.css('opacity', 1);
                    this._core.trigger('loaded', {
                        element: $element,
                        url: url
                    }, 'lazy')
                }, this)).attr('src', url)
            } else if ($element.is('source')) {
                $element.one('load.owl.lazy', $.proxy(function() {
                    this._core.trigger('loaded', {
                        element: $element,
                        url: url
                    }, 'lazy')
                }, this)).attr('srcset', url)
            } else {
                image = new Image();
                image.onload = $.proxy(function() {
                    $element.css({
                        'background-image': 'url("' + url + '")',
                        'opacity': '1'
                    });
                    this._core.trigger('loaded', {
                        element: $element,
                        url: url
                    }, 'lazy')
                }, this);
                image.src = url
            }
        }, this));
        this._loaded.push($item.get(0))
    };
    Lazy.prototype.destroy = function() {
        var handler, property;
        for (handler in this.handlers) {
            this._core.$element.off(handler, this.handlers[handler])
        }
        for (property in Object.getOwnPropertyNames(this)) {
            typeof this[property] != 'function' && (this[property] = null)
        }
    };
    $.fn.owlCarousel.Constructor.Plugins.Lazy = Lazy
})(window.Zepto || window.jQuery, window, document);
/**
 * AutoHeight Plugin
 * @version 2.3.4
 * @author Bartosz Wojciechowski
 * @author David Deutsch
 * @license The MIT License (MIT)
 */
;
(function($, window, document, undefined) {
    var AutoHeight = function(carousel) {
        this._core = carousel;
        this._previousHeight = null;
        this._handlers = {
            'initialized.owl.carousel refreshed.owl.carousel': $.proxy(function(e) {
                if (e.namespace && this._core.settings.autoHeight) {
                    this.update()
                }
            }, this),
            'changed.owl.carousel': $.proxy(function(e) {
                if (e.namespace && this._core.settings.autoHeight && e.property.name === 'position') {
                    this.update()
                }
            }, this),
            'loaded.owl.lazy': $.proxy(function(e) {
                if (e.namespace && this._core.settings.autoHeight && e.element.closest('.' + this._core.settings.itemClass).index() === this._core.current()) {
                    this.update()
                }
            }, this)
        };
        this._core.options = $.extend({}, AutoHeight.Defaults, this._core.options);
        this._core.$element.on(this._handlers);
        this._intervalId = null;
        var refThis = this;
        $(window).on('load', function() {
            if (refThis._core.settings.autoHeight) {
                refThis.update()
            }
        });
        $(window).resize(function() {
            if (refThis._core.settings.autoHeight) {
                if (refThis._intervalId != null) {
                    clearTimeout(refThis._intervalId)
                }
                refThis._intervalId = setTimeout(function() {
                    refThis.update()
                }, 250)
            }
        })
    };
    AutoHeight.Defaults = {
        autoHeight: !1,
        autoHeightClass: 'owl-height'
    };
    AutoHeight.prototype.update = function() {
        var start = this._core._current,
            end = start + this._core.settings.items,
            lazyLoadEnabled = this._core.settings.lazyLoad,
            visible = this._core.$stage.children().toArray().slice(start, end),
            heights = [],
            maxheight = 0;
        $.each(visible, function(index, item) {
            heights.push($(item).height())
        });
        maxheight = Math.max.apply(null, heights);
        if (maxheight <= 1 && lazyLoadEnabled && this._previousHeight) {
            maxheight = this._previousHeight
        }
        this._previousHeight = maxheight;
        this._core.$stage.parent().height(maxheight).addClass(this._core.settings.autoHeightClass)
    };
    AutoHeight.prototype.destroy = function() {
        var handler, property;
        for (handler in this._handlers) {
            this._core.$element.off(handler, this._handlers[handler])
        }
        for (property in Object.getOwnPropertyNames(this)) {
            typeof this[property] !== 'function' && (this[property] = null)
        }
    };
    $.fn.owlCarousel.Constructor.Plugins.AutoHeight = AutoHeight
})(window.Zepto || window.jQuery, window, document);
/**
 * Video Plugin
 * @version 2.3.4
 * @author Bartosz Wojciechowski
 * @author David Deutsch
 * @license The MIT License (MIT)
 */
;
(function($, window, document, undefined) {
    var Video = function(carousel) {
        this._core = carousel;
        this._videos = {};
        this._playing = null;
        this._handlers = {
            'initialized.owl.carousel': $.proxy(function(e) {
                if (e.namespace) {
                    this._core.register({
                        type: 'state',
                        name: 'playing',
                        tags: ['interacting']
                    })
                }
            }, this),
            'resize.owl.carousel': $.proxy(function(e) {
                if (e.namespace && this._core.settings.video && this.isInFullScreen()) {
                    e.preventDefault()
                }
            }, this),
            'refreshed.owl.carousel': $.proxy(function(e) {
                if (e.namespace && this._core.is('resizing')) {
                    this._core.$stage.find('.cloned .owl-video-frame').remove()
                }
            }, this),
            'changed.owl.carousel': $.proxy(function(e) {
                if (e.namespace && e.property.name === 'position' && this._playing) {
                    this.stop()
                }
            }, this),
            'prepared.owl.carousel': $.proxy(function(e) {
                if (!e.namespace) {
                    return
                }
                var $element = $(e.content).find('.owl-video');
                if ($element.length) {
                    $element.css('display', 'none');
                    this.fetch($element, $(e.content))
                }
            }, this)
        };
        this._core.options = $.extend({}, Video.Defaults, this._core.options);
        this._core.$element.on(this._handlers);
        this._core.$element.on('click.owl.video', '.owl-video-play-icon', $.proxy(function(e) {
            this.play(e)
        }, this))
    };
    Video.Defaults = {
        video: !1,
        videoHeight: !1,
        videoWidth: !1
    };
    Video.prototype.fetch = function(target, item) {
        var type = (function() {
                if (target.attr('data-vimeo-id')) {
                    return 'vimeo'
                } else if (target.attr('data-vzaar-id')) {
                    return 'vzaar'
                } else {
                    return 'youtube'
                }
            })(),
            id = target.attr('data-vimeo-id') || target.attr('data-youtube-id') || target.attr('data-vzaar-id'),
            width = target.attr('data-width') || this._core.settings.videoWidth,
            height = target.attr('data-height') || this._core.settings.videoHeight,
            url = target.attr('href');
        if (url) {
            id = url.match(/(http:|https:|)\/\/(player.|www.|app.)?(vimeo\.com|youtu(be\.com|\.be|be\.googleapis\.com|be\-nocookie\.com)|vzaar\.com)\/(video\/|videos\/|embed\/|channels\/.+\/|groups\/.+\/|watch\?v=|v\/)?([A-Za-z0-9._%-]*)(\&\S+)?/);
            if (id[3].indexOf('youtu') > -1) {
                type = 'youtube'
            } else if (id[3].indexOf('vimeo') > -1) {
                type = 'vimeo'
            } else if (id[3].indexOf('vzaar') > -1) {
                type = 'vzaar'
            } else {
                throw new Error('Video URL not supported.')
            }
            id = id[6]
        } else {
            throw new Error('Missing video URL.')
        }
        this._videos[url] = {
            type: type,
            id: id,
            width: width,
            height: height
        };
        item.attr('data-video', url);
        this.thumbnail(target, this._videos[url])
    };
    Video.prototype.thumbnail = function(target, video) {
        var tnLink, icon, path, dimensions = video.width && video.height ? 'width:' + video.width + 'px;height:' + video.height + 'px;' : '',
            customTn = target.find('img'),
            srcType = 'src',
            lazyClass = '',
            settings = this._core.settings,
            create = function(path) {
                icon = '<div class="owl-video-play-icon"></div>';
                if (settings.lazyLoad) {
                    tnLink = $('<div/>', {
                        "class": 'owl-video-tn ' + lazyClass,
                        "srcType": path
                    })
                } else {
                    tnLink = $('<div/>', {
                        "class": "owl-video-tn",
                        "style": 'opacity:1;background-image:url(' + path + ')'
                    })
                }
                target.after(tnLink);
                target.after(icon)
            };
        target.wrap($('<div/>', {
            "class": "owl-video-wrapper",
            "style": dimensions
        }));
        if (this._core.settings.lazyLoad) {
            srcType = 'data-src';
            lazyClass = 'owl-lazy'
        }
        if (customTn.length) {
            create(customTn.attr(srcType));
            customTn.remove();
            return !1
        }
        if (video.type === 'youtube') {
            path = "//img.youtube.com/vi/" + video.id + "/hqdefault.jpg";
            create(path)
        } else if (video.type === 'vimeo') {
            $.ajax({
                type: 'GET',
                url: '//vimeo.com/api/v2/video/' + video.id + '.json',
                jsonp: 'callback',
                dataType: 'jsonp',
                success: function(data) {
                    path = data[0].thumbnail_large;
                    create(path)
                }
            })
        } else if (video.type === 'vzaar') {
            $.ajax({
                type: 'GET',
                url: '//vzaar.com/api/videos/' + video.id + '.json',
                jsonp: 'callback',
                dataType: 'jsonp',
                success: function(data) {
                    path = data.framegrab_url;
                    create(path)
                }
            })
        }
    };
    Video.prototype.stop = function() {
        this._core.trigger('stop', null, 'video');
        this._playing.find('.owl-video-frame').remove();
        this._playing.removeClass('owl-video-playing');
        this._playing = null;
        this._core.leave('playing');
        this._core.trigger('stopped', null, 'video')
    };
    Video.prototype.play = function(event) {
        var target = $(event.target),
            item = target.closest('.' + this._core.settings.itemClass),
            video = this._videos[item.attr('data-video')],
            width = video.width || '100%',
            height = video.height || this._core.$stage.height(),
            html, iframe;
        if (this._playing) {
            return
        }
        this._core.enter('playing');
        this._core.trigger('play', null, 'video');
        item = this._core.items(this._core.relative(item.index()));
        this._core.reset(item.index());
        html = $('<iframe frameborder="0" allowfullscreen mozallowfullscreen webkitAllowFullScreen ></iframe>');
        html.attr('height', height);
        html.attr('width', width);
        if (video.type === 'youtube') {
            html.attr('src', '//www.youtube.com/embed/' + video.id + '?autoplay=1&rel=0&v=' + video.id)
        } else if (video.type === 'vimeo') {
            html.attr('src', '//player.vimeo.com/video/' + video.id + '?autoplay=1')
        } else if (video.type === 'vzaar') {
            html.attr('src', '//view.vzaar.com/' + video.id + '/player?autoplay=true')
        }
        iframe = $(html).wrap('<div class="owl-video-frame" />').insertAfter(item.find('.owl-video'));
        this._playing = item.addClass('owl-video-playing')
    };
    Video.prototype.isInFullScreen = function() {
        var element = document.fullscreenElement || document.mozFullScreenElement || document.webkitFullscreenElement;
        return element && $(element).parent().hasClass('owl-video-frame')
    };
    Video.prototype.destroy = function() {
        var handler, property;
        this._core.$element.off('click.owl.video');
        for (handler in this._handlers) {
            this._core.$element.off(handler, this._handlers[handler])
        }
        for (property in Object.getOwnPropertyNames(this)) {
            typeof this[property] != 'function' && (this[property] = null)
        }
    };
    $.fn.owlCarousel.Constructor.Plugins.Video = Video
})(window.Zepto || window.jQuery, window, document);
/**
 * Animate Plugin
 * @version 2.3.4
 * @author Bartosz Wojciechowski
 * @author David Deutsch
 * @license The MIT License (MIT)
 */
;
(function($, window, document, undefined) {
    var Animate = function(scope) {
        this.core = scope;
        this.core.options = $.extend({}, Animate.Defaults, this.core.options);
        this.swapping = !0;
        this.previous = undefined;
        this.next = undefined;
        this.handlers = {
            'change.owl.carousel': $.proxy(function(e) {
                if (e.namespace && e.property.name == 'position') {
                    this.previous = this.core.current();
                    this.next = e.property.value
                }
            }, this),
            'drag.owl.carousel dragged.owl.carousel translated.owl.carousel': $.proxy(function(e) {
                if (e.namespace) {
                    this.swapping = e.type == 'translated'
                }
            }, this),
            'translate.owl.carousel': $.proxy(function(e) {
                if (e.namespace && this.swapping && (this.core.options.animateOut || this.core.options.animateIn)) {
                    this.swap()
                }
            }, this)
        };
        this.core.$element.on(this.handlers)
    };
    Animate.Defaults = {
        animateOut: !1,
        animateIn: !1
    };
    Animate.prototype.swap = function() {
        if (this.core.settings.items !== 1) {
            return
        }
        if (!$.support.animation || !$.support.transition) {
            return
        }
        this.core.speed(0);
        var left, clear = $.proxy(this.clear, this),
            previous = this.core.$stage.children().eq(this.previous),
            next = this.core.$stage.children().eq(this.next),
            incoming = this.core.settings.animateIn,
            outgoing = this.core.settings.animateOut;
        if (this.core.current() === this.previous) {
            return
        }
        if (outgoing) {
            left = this.core.coordinates(this.previous) - this.core.coordinates(this.next);
            previous.one($.support.animation.end, clear).css({
                'left': left + 'px'
            }).addClass('animated owl-animated-out').addClass(outgoing)
        }
        if (incoming) {
            next.one($.support.animation.end, clear).addClass('animated owl-animated-in').addClass(incoming)
        }
    };
    Animate.prototype.clear = function(e) {
        $(e.target).css({
            'left': ''
        }).removeClass('animated owl-animated-out owl-animated-in').removeClass(this.core.settings.animateIn).removeClass(this.core.settings.animateOut);
        this.core.onTransitionEnd()
    };
    Animate.prototype.destroy = function() {
        var handler, property;
        for (handler in this.handlers) {
            this.core.$element.off(handler, this.handlers[handler])
        }
        for (property in Object.getOwnPropertyNames(this)) {
            typeof this[property] != 'function' && (this[property] = null)
        }
    };
    $.fn.owlCarousel.Constructor.Plugins.Animate = Animate
})(window.Zepto || window.jQuery, window, document);
/**
 * Autoplay Plugin
 * @version 2.3.4
 * @author Bartosz Wojciechowski
 * @author Artus Kolanowski
 * @author David Deutsch
 * @author Tom De Caluwé
 * @license The MIT License (MIT)
 */
;
(function($, window, document, undefined) {
    var Autoplay = function(carousel) {
        this._core = carousel;
        this._call = null;
        this._time = 0;
        this._timeout = 0;
        this._paused = !0;
        this._handlers = {
            'changed.owl.carousel': $.proxy(function(e) {
                if (e.namespace && e.property.name === 'settings') {
                    if (this._core.settings.autoplay) {
                        this.play()
                    } else {
                        this.stop()
                    }
                } else if (e.namespace && e.property.name === 'position' && this._paused) {
                    this._time = 0
                }
            }, this),
            'initialized.owl.carousel': $.proxy(function(e) {
                if (e.namespace && this._core.settings.autoplay) {
                    this.play()
                }
            }, this),
            'play.owl.autoplay': $.proxy(function(e, t, s) {
                if (e.namespace) {
                    this.play(t, s)
                }
            }, this),
            'stop.owl.autoplay': $.proxy(function(e) {
                if (e.namespace) {
                    this.stop()
                }
            }, this),
            'mouseover.owl.autoplay': $.proxy(function() {
                if (this._core.settings.autoplayHoverPause && this._core.is('rotating')) {
                    this.pause()
                }
            }, this),
            'mouseleave.owl.autoplay': $.proxy(function() {
                if (this._core.settings.autoplayHoverPause && this._core.is('rotating')) {
                    this.play()
                }
            }, this),
            'touchstart.owl.core': $.proxy(function() {
                if (this._core.settings.autoplayHoverPause && this._core.is('rotating')) {
                    this.pause()
                }
            }, this),
            'touchend.owl.core': $.proxy(function() {
                if (this._core.settings.autoplayHoverPause) {
                    this.play()
                }
            }, this)
        };
        this._core.$element.on(this._handlers);
        this._core.options = $.extend({}, Autoplay.Defaults, this._core.options)
    };
    Autoplay.Defaults = {
        autoplay: !1,
        autoplayTimeout: 5000,
        autoplayHoverPause: !1,
        autoplaySpeed: !1
    };
    Autoplay.prototype._next = function(speed) {
        this._call = window.setTimeout($.proxy(this._next, this, speed), this._timeout * (Math.round(this.read() / this._timeout) + 1) - this.read());
        if (this._core.is('interacting') || document.hidden) {
            return
        }
        this._core.next(speed || this._core.settings.autoplaySpeed)
    }
    Autoplay.prototype.read = function() {
        return new Date().getTime() - this._time
    };
    Autoplay.prototype.play = function(timeout, speed) {
        var elapsed;
        if (!this._core.is('rotating')) {
            this._core.enter('rotating')
        }
        timeout = timeout || this._core.settings.autoplayTimeout;
        elapsed = Math.min(this._time % (this._timeout || timeout), timeout);
        if (this._paused) {
            this._time = this.read();
            this._paused = !1
        } else {
            window.clearTimeout(this._call)
        }
        this._time += this.read() % timeout - elapsed;
        this._timeout = timeout;
        this._call = window.setTimeout($.proxy(this._next, this, speed), timeout - elapsed)
    };
    Autoplay.prototype.stop = function() {
        if (this._core.is('rotating')) {
            this._time = 0;
            this._paused = !0;
            window.clearTimeout(this._call);
            this._core.leave('rotating')
        }
    };
    Autoplay.prototype.pause = function() {
        if (this._core.is('rotating') && !this._paused) {
            this._time = this.read();
            this._paused = !0;
            window.clearTimeout(this._call)
        }
    };
    Autoplay.prototype.destroy = function() {
        var handler, property;
        this.stop();
        for (handler in this._handlers) {
            this._core.$element.off(handler, this._handlers[handler])
        }
        for (property in Object.getOwnPropertyNames(this)) {
            typeof this[property] != 'function' && (this[property] = null)
        }
    };
    $.fn.owlCarousel.Constructor.Plugins.autoplay = Autoplay
})(window.Zepto || window.jQuery, window, document);
/**
 * Navigation Plugin
 * @version 2.3.4
 * @author Artus Kolanowski
 * @author David Deutsch
 * @license The MIT License (MIT)
 */
;
(function($, window, document, undefined) {
    'use strict';
    var Navigation = function(carousel) {
        this._core = carousel;
        this._initialized = !1;
        this._pages = [];
        this._controls = {};
        this._templates = [];
        this.$element = this._core.$element;
        this._overrides = {
            next: this._core.next,
            prev: this._core.prev,
            to: this._core.to
        };
        this._handlers = {
            'prepared.owl.carousel': $.proxy(function(e) {
                if (e.namespace && this._core.settings.dotsData) {
                    this._templates.push('<div class="' + this._core.settings.dotClass + '">' + $(e.content).find('[data-dot]').addBack('[data-dot]').attr('data-dot') + '</div>')
                }
            }, this),
            'added.owl.carousel': $.proxy(function(e) {
                if (e.namespace && this._core.settings.dotsData) {
                    this._templates.splice(e.position, 0, this._templates.pop())
                }
            }, this),
            'remove.owl.carousel': $.proxy(function(e) {
                if (e.namespace && this._core.settings.dotsData) {
                    this._templates.splice(e.position, 1)
                }
            }, this),
            'changed.owl.carousel': $.proxy(function(e) {
                if (e.namespace && e.property.name == 'position') {
                    this.draw()
                }
            }, this),
            'initialized.owl.carousel': $.proxy(function(e) {
                if (e.namespace && !this._initialized) {
                    this._core.trigger('initialize', null, 'navigation');
                    this.initialize();
                    this.update();
                    this.draw();
                    this._initialized = !0;
                    this._core.trigger('initialized', null, 'navigation')
                }
            }, this),
            'refreshed.owl.carousel': $.proxy(function(e) {
                if (e.namespace && this._initialized) {
                    this._core.trigger('refresh', null, 'navigation');
                    this.update();
                    this.draw();
                    this._core.trigger('refreshed', null, 'navigation')
                }
            }, this)
        };
        this._core.options = $.extend({}, Navigation.Defaults, this._core.options);
        this.$element.on(this._handlers)
    };
    Navigation.Defaults = {
        nav: !1,
        navText: ['<i class="fa fa-angle-left"></i>', '<i class="fa fa-angle-right"></i>'],
        navSpeed: !1,
        navElement: 'div role="presentation"',
        navContainer: !1,
        navContainerClass: 'owl-nav',
        navClass: ['owl-prev', 'owl-next'],
        slideBy: 1,
        dotClass: 'owl-dot',
        dotsClass: 'owl-dots',
        dots: !0,
        dotsEach: !1,
        dotsData: !1,
        dotsSpeed: !1,
        dotsContainer: !1
    };
    Navigation.prototype.initialize = function() {
        var override, settings = this._core.settings;
        this._controls.$relative = (settings.navContainer ? $(settings.navContainer) : $('<div>').addClass(settings.navContainerClass).appendTo(this.$element)).addClass('disabled');
        this._controls.$previous = $('<' + settings.navElement + '>').addClass(settings.navClass[0]).html(settings.navText[0]).prependTo(this._controls.$relative).on('click', $.proxy(function(e) {
            this.prev(settings.navSpeed)
        }, this));
        this._controls.$next = $('<' + settings.navElement + '>').addClass(settings.navClass[1]).html(settings.navText[1]).appendTo(this._controls.$relative).on('click', $.proxy(function(e) {
            this.next(settings.navSpeed)
        }, this));
        if (!settings.dotsData) {
            this._templates = [$('<button role="button">').addClass(settings.dotClass).append($('<span>')).prop('outerHTML')]
        }
        this._controls.$absolute = (settings.dotsContainer ? $(settings.dotsContainer) : $('<div>').addClass(settings.dotsClass).appendTo(this.$element)).addClass('disabled');
        this._controls.$absolute.on('click', 'button', $.proxy(function(e) {
            var index = $(e.target).parent().is(this._controls.$absolute) ? $(e.target).index() : $(e.target).parent().index();
            e.preventDefault();
            this.to(index, settings.dotsSpeed)
        }, this));
        for (override in this._overrides) {
            this._core[override] = $.proxy(this[override], this)
        }
    };
    Navigation.prototype.destroy = function() {
        var handler, control, property, override, settings;
        settings = this._core.settings;
        for (handler in this._handlers) {
            this.$element.off(handler, this._handlers[handler])
        }
        for (control in this._controls) {
            if (control === '$relative' && settings.navContainer) {
                this._controls[control].html('')
            } else {
                this._controls[control].remove()
            }
        }
        for (override in this.overides) {
            this._core[override] = this._overrides[override]
        }
        for (property in Object.getOwnPropertyNames(this)) {
            typeof this[property] != 'function' && (this[property] = null)
        }
    };
    Navigation.prototype.update = function() {
        var i, j, k, lower = this._core.clones().length / 2,
            upper = lower + this._core.items().length,
            maximum = this._core.maximum(!0),
            settings = this._core.settings,
            size = settings.center || settings.autoWidth || settings.dotsData ? 1 : settings.dotsEach || settings.items;
        if (settings.slideBy !== 'page') {
            settings.slideBy = Math.min(settings.slideBy, settings.items)
        }
        if (settings.dots || settings.slideBy == 'page') {
            this._pages = [];
            for (i = lower, j = 0, k = 0; i < upper; i++) {
                if (j >= size || j === 0) {
                    this._pages.push({
                        start: Math.min(maximum, i - lower),
                        end: i - lower + size - 1
                    });
                    if (Math.min(maximum, i - lower) === maximum) {
                        break
                    }
                    j = 0, ++k
                }
                j += this._core.mergers(this._core.relative(i))
            }
        }
    };
    Navigation.prototype.draw = function() {
        var difference, settings = this._core.settings,
            disabled = this._core.items().length <= settings.items,
            index = this._core.relative(this._core.current()),
            loop = settings.loop || settings.rewind;
        this._controls.$relative.toggleClass('disabled', !settings.nav || disabled);
        if (settings.nav) {
            this._controls.$previous.toggleClass('disabled', !loop && index <= this._core.minimum(!0));
            this._controls.$next.toggleClass('disabled', !loop && index >= this._core.maximum(!0))
        }
        this._controls.$absolute.toggleClass('disabled', !settings.dots || disabled);
        if (settings.dots) {
            difference = this._pages.length - this._controls.$absolute.children().length;
            if (settings.dotsData && difference !== 0) {
                this._controls.$absolute.html(this._templates.join(''))
            } else if (difference > 0) {
                this._controls.$absolute.append(new Array(difference + 1).join(this._templates[0]))
            } else if (difference < 0) {
                this._controls.$absolute.children().slice(difference).remove()
            }
            this._controls.$absolute.find('.active').removeClass('active');
            this._controls.$absolute.children().eq($.inArray(this.current(), this._pages)).addClass('active')
        }
    };
    Navigation.prototype.onTrigger = function(event) {
        var settings = this._core.settings;
        event.page = {
            index: $.inArray(this.current(), this._pages),
            count: this._pages.length,
            size: settings && (settings.center || settings.autoWidth || settings.dotsData ? 1 : settings.dotsEach || settings.items)
        }
    };
    Navigation.prototype.current = function() {
        var current = this._core.relative(this._core.current());
        return $.grep(this._pages, $.proxy(function(page, index) {
            return page.start <= current && page.end >= current
        }, this)).pop()
    };
    Navigation.prototype.getPosition = function(successor) {
        var position, length, settings = this._core.settings;
        if (settings.slideBy == 'page') {
            position = $.inArray(this.current(), this._pages);
            length = this._pages.length;
            successor ? ++position : --position;
            position = this._pages[((position % length) + length) % length].start
        } else {
            position = this._core.relative(this._core.current());
            length = this._core.items().length;
            successor ? position += settings.slideBy : position -= settings.slideBy
        }
        return position
    };
    Navigation.prototype.next = function(speed) {
        $.proxy(this._overrides.to, this._core)(this.getPosition(!0), speed)
    };
    Navigation.prototype.prev = function(speed) {
        $.proxy(this._overrides.to, this._core)(this.getPosition(!1), speed)
    };
    Navigation.prototype.to = function(position, speed, standard) {
        var length;
        if (!standard && this._pages.length) {
            length = this._pages.length;
            $.proxy(this._overrides.to, this._core)(this._pages[((position % length) + length) % length].start, speed)
        } else {
            $.proxy(this._overrides.to, this._core)(position, speed)
        }
    };
    $.fn.owlCarousel.Constructor.Plugins.Navigation = Navigation
})(window.Zepto || window.jQuery, window, document);
/**
 * Hash Plugin
 * @version 2.3.4
 * @author Artus Kolanowski
 * @author David Deutsch
 * @license The MIT License (MIT)
 */
;
(function($, window, document, undefined) {
    'use strict';
    var Hash = function(carousel) {
        this._core = carousel;
        this._hashes = {};
        this.$element = this._core.$element;
        this._handlers = {
            'initialized.owl.carousel': $.proxy(function(e) {
                if (e.namespace && this._core.settings.startPosition === 'URLHash') {
                    $(window).trigger('hashchange.owl.navigation')
                }
            }, this),
            'prepared.owl.carousel': $.proxy(function(e) {
                if (e.namespace) {
                    var hash = $(e.content).find('[data-hash]').addBack('[data-hash]').attr('data-hash');
                    if (!hash) {
                        return
                    }
                    this._hashes[hash] = e.content
                }
            }, this),
            'changed.owl.carousel': $.proxy(function(e) {
                if (e.namespace && e.property.name === 'position') {
                    var current = this._core.items(this._core.relative(this._core.current())),
                        hash = $.map(this._hashes, function(item, hash) {
                            return item === current ? hash : null
                        }).join();
                    if (!hash || window.location.hash.slice(1) === hash) {
                        return
                    }
                    window.location.hash = hash
                }
            }, this)
        };
        this._core.options = $.extend({}, Hash.Defaults, this._core.options);
        this.$element.on(this._handlers);
        $(window).on('hashchange.owl.navigation', $.proxy(function(e) {
            var hash = window.location.hash.substring(1),
                items = this._core.$stage.children(),
                position = this._hashes[hash] && items.index(this._hashes[hash]);
            if (position === undefined || position === this._core.current()) {
                return
            }
            this._core.to(this._core.relative(position), !1, !0)
        }, this))
    };
    Hash.Defaults = {
        URLhashListener: !1
    };
    Hash.prototype.destroy = function() {
        var handler, property;
        $(window).off('hashchange.owl.navigation');
        for (handler in this._handlers) {
            this._core.$element.off(handler, this._handlers[handler])
        }
        for (property in Object.getOwnPropertyNames(this)) {
            typeof this[property] != 'function' && (this[property] = null)
        }
    };
    $.fn.owlCarousel.Constructor.Plugins.Hash = Hash
})(window.Zepto || window.jQuery, window, document);
/**
 * Support Plugin
 *
 * @version 2.3.4
 * @author Vivid Planet Software GmbH
 * @author Artus Kolanowski
 * @author David Deutsch
 * @license The MIT License (MIT)
 */
;
(function($, window, document, undefined) {
    var style = $('<support>').get(0).style,
        prefixes = 'Webkit Moz O ms'.split(' '),
        events = {
            transition: {
                end: {
                    WebkitTransition: 'webkitTransitionEnd',
                    MozTransition: 'transitionend',
                    OTransition: 'oTransitionEnd',
                    transition: 'transitionend'
                }
            },
            animation: {
                end: {
                    WebkitAnimation: 'webkitAnimationEnd',
                    MozAnimation: 'animationend',
                    OAnimation: 'oAnimationEnd',
                    animation: 'animationend'
                }
            }
        },
        tests = {
            csstransforms: function() {
                return !!test('transform')
            },
            csstransforms3d: function() {
                return !!test('perspective')
            },
            csstransitions: function() {
                return !!test('transition')
            },
            cssanimations: function() {
                return !!test('animation')
            }
        };

    function test(property, prefixed) {
        var result = !1,
            upper = property.charAt(0).toUpperCase() + property.slice(1);
        $.each((property + ' ' + prefixes.join(upper + ' ') + upper).split(' '), function(i, property) {
            if (style[property] !== undefined) {
                result = prefixed ? property : !0;
                return !1
            }
        });
        return result
    }

    function prefixed(property) {
        return test(property, !0)
    }
    if (tests.csstransitions()) {
        $.support.transition = new String(prefixed('transition'))
        $.support.transition.end = events.transition.end[$.support.transition]
    }
    if (tests.cssanimations()) {
        $.support.animation = new String(prefixed('animation'))
        $.support.animation.end = events.animation.end[$.support.animation]
    }
    if (tests.csstransforms()) {
        $.support.transform = new String(prefixed('transform'));
        $.support.transform3d = tests.csstransforms3d()
    }
})(window.Zepto || window.jQuery, window, document);
/*!
 * Isotope PACKAGED v3.0.5
 *
 * Licensed GPLv3 for open source use
 * or Isotope Commercial License for commercial use
 *
 * https://isotope.metafizzy.co
 * Copyright 2017 Metafizzy
 */
! function(t, e) {
    "function" == typeof define && define.amd ? define("jquery-bridget/jquery-bridget", ["jquery"], function(i) {
        return e(t, i)
    }) : "object" == typeof module && module.exports ? module.exports = e(t, require("jquery")) : t.jQueryBridget = e(t, t.jQuery)
}(window, function(t, e) {
    "use strict";

    function i(i, s, a) {
        function u(t, e, o) {
            var n, s = "$()." + i + '("' + e + '")';
            return t.each(function(t, u) {
                var h = a.data(u, i);
                if (!h) return void r(i + " not initialized. Cannot call methods, i.e. " + s);
                var d = h[e];
                if (!d || "_" == e.charAt(0)) return void r(s + " is not a valid method");
                var l = d.apply(h, o);
                n = void 0 === n ? l : n
            }), void 0 !== n ? n : t
        }

        function h(t, e) {
            t.each(function(t, o) {
                var n = a.data(o, i);
                n ? (n.option(e), n._init()) : (n = new s(o, e), a.data(o, i, n))
            })
        }
        a = a || e || t.jQuery, a && (s.prototype.option || (s.prototype.option = function(t) {
            a.isPlainObject(t) && (this.options = a.extend(!0, this.options, t))
        }), a.fn[i] = function(t) {
            if ("string" == typeof t) {
                var e = n.call(arguments, 1);
                return u(this, t, e)
            }
            return h(this, t), this
        }, o(a))
    }

    function o(t) {
        !t || t && t.bridget || (t.bridget = i)
    }
    var n = Array.prototype.slice,
        s = t.console,
        r = "undefined" == typeof s ? function() {} : function(t) {
            s.error(t)
        };
    return o(e || t.jQuery), i
}),
function(t, e) {
    "function" == typeof define && define.amd ? define("ev-emitter/ev-emitter", e) : "object" == typeof module && module.exports ? module.exports = e() : t.EvEmitter = e()
}("undefined" != typeof window ? window : this, function() {
    function t() {}
    var e = t.prototype;
    return e.on = function(t, e) {
        if (t && e) {
            var i = this._events = this._events || {},
                o = i[t] = i[t] || [];
            return o.indexOf(e) == -1 && o.push(e), this
        }
    }, e.once = function(t, e) {
        if (t && e) {
            this.on(t, e);
            var i = this._onceEvents = this._onceEvents || {},
                o = i[t] = i[t] || {};
            return o[e] = !0, this
        }
    }, e.off = function(t, e) {
        var i = this._events && this._events[t];
        if (i && i.length) {
            var o = i.indexOf(e);
            return o != -1 && i.splice(o, 1), this
        }
    }, e.emitEvent = function(t, e) {
        var i = this._events && this._events[t];
        if (i && i.length) {
            i = i.slice(0), e = e || [];
            for (var o = this._onceEvents && this._onceEvents[t], n = 0; n < i.length; n++) {
                var s = i[n],
                    r = o && o[s];
                r && (this.off(t, s), delete o[s]), s.apply(this, e)
            }
            return this
        }
    }, e.allOff = function() {
        delete this._events, delete this._onceEvents
    }, t
}),
function(t, e) {
    "use strict";
    "function" == typeof define && define.amd ? define("get-size/get-size", [], function() {
        return e()
    }) : "object" == typeof module && module.exports ? module.exports = e() : t.getSize = e()
}(window, function() {
    "use strict";

    function t(t) {
        var e = parseFloat(t),
            i = t.indexOf("%") == -1 && !isNaN(e);
        return i && e
    }

    function e() {}

    function i() {
        for (var t = {
                width: 0,
                height: 0,
                innerWidth: 0,
                innerHeight: 0,
                outerWidth: 0,
                outerHeight: 0
            }, e = 0; e < h; e++) {
            var i = u[e];
            t[i] = 0
        }
        return t
    }

    function o(t) {
        var e = getComputedStyle(t);
        return e || a("Style returned " + e + ". Are you running this code in a hidden iframe on Firefox? See http://bit.ly/getsizebug1"), e
    }

    function n() {
        if (!d) {
            d = !0;
            var e = document.createElement("div");
            e.style.width = "200px", e.style.padding = "1px 2px 3px 4px", e.style.borderStyle = "solid", e.style.borderWidth = "1px 2px 3px 4px", e.style.boxSizing = "border-box";
            var i = document.body || document.documentElement;
            i.appendChild(e);
            var n = o(e);
            s.isBoxSizeOuter = r = 200 == t(n.width), i.removeChild(e)
        }
    }

    function s(e) {
        if (n(), "string" == typeof e && (e = document.querySelector(e)), e && "object" == typeof e && e.nodeType) {
            var s = o(e);
            if ("none" == s.display) return i();
            var a = {};
            a.width = e.offsetWidth, a.height = e.offsetHeight;
            for (var d = a.isBorderBox = "border-box" == s.boxSizing, l = 0; l < h; l++) {
                var f = u[l],
                    c = s[f],
                    m = parseFloat(c);
                a[f] = isNaN(m) ? 0 : m
            }
            var p = a.paddingLeft + a.paddingRight,
                y = a.paddingTop + a.paddingBottom,
                g = a.marginLeft + a.marginRight,
                v = a.marginTop + a.marginBottom,
                _ = a.borderLeftWidth + a.borderRightWidth,
                I = a.borderTopWidth + a.borderBottomWidth,
                z = d && r,
                x = t(s.width);
            x !== !1 && (a.width = x + (z ? 0 : p + _));
            var S = t(s.height);
            return S !== !1 && (a.height = S + (z ? 0 : y + I)), a.innerWidth = a.width - (p + _), a.innerHeight = a.height - (y + I), a.outerWidth = a.width + g, a.outerHeight = a.height + v, a
        }
    }
    var r, a = "undefined" == typeof console ? e : function(t) {
            console.error(t)
        },
        u = ["paddingLeft", "paddingRight", "paddingTop", "paddingBottom", "marginLeft", "marginRight", "marginTop", "marginBottom", "borderLeftWidth", "borderRightWidth", "borderTopWidth", "borderBottomWidth"],
        h = u.length,
        d = !1;
    return s
}),
function(t, e) {
    "use strict";
    "function" == typeof define && define.amd ? define("desandro-matches-selector/matches-selector", e) : "object" == typeof module && module.exports ? module.exports = e() : t.matchesSelector = e()
}(window, function() {
    "use strict";
    var t = function() {
        var t = window.Element.prototype;
        if (t.matches) return "matches";
        if (t.matchesSelector) return "matchesSelector";
        for (var e = ["webkit", "moz", "ms", "o"], i = 0; i < e.length; i++) {
            var o = e[i],
                n = o + "MatchesSelector";
            if (t[n]) return n
        }
    }();
    return function(e, i) {
        return e[t](i)
    }
}),
function(t, e) {
    "function" == typeof define && define.amd ? define("fizzy-ui-utils/utils", ["desandro-matches-selector/matches-selector"], function(i) {
        return e(t, i)
    }) : "object" == typeof module && module.exports ? module.exports = e(t, require("desandro-matches-selector")) : t.fizzyUIUtils = e(t, t.matchesSelector)
}(window, function(t, e) {
    var i = {};
    i.extend = function(t, e) {
        for (var i in e) t[i] = e[i];
        return t
    }, i.modulo = function(t, e) {
        return (t % e + e) % e
    }, i.makeArray = function(t) {
        var e = [];
        if (Array.isArray(t)) e = t;
        else if (t && "object" == typeof t && "number" == typeof t.length)
            for (var i = 0; i < t.length; i++) e.push(t[i]);
        else e.push(t);
        return e
    }, i.removeFrom = function(t, e) {
        var i = t.indexOf(e);
        i != -1 && t.splice(i, 1)
    }, i.getParent = function(t, i) {
        for (; t.parentNode && t != document.body;)
            if (t = t.parentNode, e(t, i)) return t
    }, i.getQueryElement = function(t) {
        return "string" == typeof t ? document.querySelector(t) : t
    }, i.handleEvent = function(t) {
        var e = "on" + t.type;
        this[e] && this[e](t)
    }, i.filterFindElements = function(t, o) {
        t = i.makeArray(t);
        var n = [];
        return t.forEach(function(t) {
            if (t instanceof HTMLElement) {
                if (!o) return void n.push(t);
                e(t, o) && n.push(t);
                for (var i = t.querySelectorAll(o), s = 0; s < i.length; s++) n.push(i[s])
            }
        }), n
    }, i.debounceMethod = function(t, e, i) {
        var o = t.prototype[e],
            n = e + "Timeout";
        t.prototype[e] = function() {
            var t = this[n];
            t && clearTimeout(t);
            var e = arguments,
                s = this;
            this[n] = setTimeout(function() {
                o.apply(s, e), delete s[n]
            }, i || 100)
        }
    }, i.docReady = function(t) {
        var e = document.readyState;
        "complete" == e || "interactive" == e ? setTimeout(t) : document.addEventListener("DOMContentLoaded", t)
    }, i.toDashed = function(t) {
        return t.replace(/(.)([A-Z])/g, function(t, e, i) {
            return e + "-" + i
        }).toLowerCase()
    };
    var o = t.console;
    return i.htmlInit = function(e, n) {
        i.docReady(function() {
            var s = i.toDashed(n),
                r = "data-" + s,
                a = document.querySelectorAll("[" + r + "]"),
                u = document.querySelectorAll(".js-" + s),
                h = i.makeArray(a).concat(i.makeArray(u)),
                d = r + "-options",
                l = t.jQuery;
            h.forEach(function(t) {
                var i, s = t.getAttribute(r) || t.getAttribute(d);
                try {
                    i = s && JSON.parse(s)
                } catch (a) {
                    return void(o && o.error("Error parsing " + r + " on " + t.className + ": " + a))
                }
                var u = new e(t, i);
                l && l.data(t, n, u)
            })
        })
    }, i
}),
function(t, e) {
    "function" == typeof define && define.amd ? define("outlayer/item", ["ev-emitter/ev-emitter", "get-size/get-size"], e) : "object" == typeof module && module.exports ? module.exports = e(require("ev-emitter"), require("get-size")) : (t.Outlayer = {}, t.Outlayer.Item = e(t.EvEmitter, t.getSize))
}(window, function(t, e) {
    "use strict";

    function i(t) {
        for (var e in t) return !1;
        return e = null, !0
    }

    function o(t, e) {
        t && (this.element = t, this.layout = e, this.position = {
            x: 0,
            y: 0
        }, this._create())
    }

    function n(t) {
        return t.replace(/([A-Z])/g, function(t) {
            return "-" + t.toLowerCase()
        })
    }
    var s = document.documentElement.style,
        r = "string" == typeof s.transition ? "transition" : "WebkitTransition",
        a = "string" == typeof s.transform ? "transform" : "WebkitTransform",
        u = {
            WebkitTransition: "webkitTransitionEnd",
            transition: "transitionend"
        }[r],
        h = {
            transform: a,
            transition: r,
            transitionDuration: r + "Duration",
            transitionProperty: r + "Property",
            transitionDelay: r + "Delay"
        },
        d = o.prototype = Object.create(t.prototype);
    d.constructor = o, d._create = function() {
        this._transn = {
            ingProperties: {},
            clean: {},
            onEnd: {}
        }, this.css({
            position: "absolute"
        })
    }, d.handleEvent = function(t) {
        var e = "on" + t.type;
        this[e] && this[e](t)
    }, d.getSize = function() {
        this.size = e(this.element)
    }, d.css = function(t) {
        var e = this.element.style;
        for (var i in t) {
            var o = h[i] || i;
            e[o] = t[i]
        }
    }, d.getPosition = function() {
        var t = getComputedStyle(this.element),
            e = this.layout._getOption("originLeft"),
            i = this.layout._getOption("originTop"),
            o = t[e ? "left" : "right"],
            n = t[i ? "top" : "bottom"],
            s = this.layout.size,
            r = o.indexOf("%") != -1 ? parseFloat(o) / 100 * s.width : parseInt(o, 10),
            a = n.indexOf("%") != -1 ? parseFloat(n) / 100 * s.height : parseInt(n, 10);
        r = isNaN(r) ? 0 : r, a = isNaN(a) ? 0 : a, r -= e ? s.paddingLeft : s.paddingRight, a -= i ? s.paddingTop : s.paddingBottom, this.position.x = r, this.position.y = a
    }, d.layoutPosition = function() {
        var t = this.layout.size,
            e = {},
            i = this.layout._getOption("originLeft"),
            o = this.layout._getOption("originTop"),
            n = i ? "paddingLeft" : "paddingRight",
            s = i ? "left" : "right",
            r = i ? "right" : "left",
            a = this.position.x + t[n];
        e[s] = this.getXValue(a), e[r] = "";
        var u = o ? "paddingTop" : "paddingBottom",
            h = o ? "top" : "bottom",
            d = o ? "bottom" : "top",
            l = this.position.y + t[u];
        e[h] = this.getYValue(l), e[d] = "", this.css(e), this.emitEvent("layout", [this])
    }, d.getXValue = function(t) {
        var e = this.layout._getOption("horizontal");
        return this.layout.options.percentPosition && !e ? t / this.layout.size.width * 100 + "%" : t + "px"
    }, d.getYValue = function(t) {
        var e = this.layout._getOption("horizontal");
        return this.layout.options.percentPosition && e ? t / this.layout.size.height * 100 + "%" : t + "px"
    }, d._transitionTo = function(t, e) {
        this.getPosition();
        var i = this.position.x,
            o = this.position.y,
            n = parseInt(t, 10),
            s = parseInt(e, 10),
            r = n === this.position.x && s === this.position.y;
        if (this.setPosition(t, e), r && !this.isTransitioning) return void this.layoutPosition();
        var a = t - i,
            u = e - o,
            h = {};
        h.transform = this.getTranslate(a, u), this.transition({
            to: h,
            onTransitionEnd: {
                transform: this.layoutPosition
            },
            isCleaning: !0
        })
    }, d.getTranslate = function(t, e) {
        var i = this.layout._getOption("originLeft"),
            o = this.layout._getOption("originTop");
        return t = i ? t : -t, e = o ? e : -e, "translate3d(" + t + "px, " + e + "px, 0)"
    }, d.goTo = function(t, e) {
        this.setPosition(t, e), this.layoutPosition()
    }, d.moveTo = d._transitionTo, d.setPosition = function(t, e) {
        this.position.x = parseInt(t, 10), this.position.y = parseInt(e, 10)
    }, d._nonTransition = function(t) {
        this.css(t.to), t.isCleaning && this._removeStyles(t.to);
        for (var e in t.onTransitionEnd) t.onTransitionEnd[e].call(this)
    }, d.transition = function(t) {
        if (!parseFloat(this.layout.options.transitionDuration)) return void this._nonTransition(t);
        var e = this._transn;
        for (var i in t.onTransitionEnd) e.onEnd[i] = t.onTransitionEnd[i];
        for (i in t.to) e.ingProperties[i] = !0, t.isCleaning && (e.clean[i] = !0);
        if (t.from) {
            this.css(t.from);
            var o = this.element.offsetHeight;
            o = null
        }
        this.enableTransition(t.to), this.css(t.to), this.isTransitioning = !0
    };
    var l = "opacity," + n(a);
    d.enableTransition = function() {
        if (!this.isTransitioning) {
            var t = this.layout.options.transitionDuration;
            t = "number" == typeof t ? t + "ms" : t, this.css({
                transitionProperty: l,
                transitionDuration: t,
                transitionDelay: this.staggerDelay || 0
            }), this.element.addEventListener(u, this, !1)
        }
    }, d.onwebkitTransitionEnd = function(t) {
        this.ontransitionend(t)
    }, d.onotransitionend = function(t) {
        this.ontransitionend(t)
    };
    var f = {
        "-webkit-transform": "transform"
    };
    d.ontransitionend = function(t) {
        if (t.target === this.element) {
            var e = this._transn,
                o = f[t.propertyName] || t.propertyName;
            if (delete e.ingProperties[o], i(e.ingProperties) && this.disableTransition(), o in e.clean && (this.element.style[t.propertyName] = "", delete e.clean[o]), o in e.onEnd) {
                var n = e.onEnd[o];
                n.call(this), delete e.onEnd[o]
            }
            this.emitEvent("transitionEnd", [this])
        }
    }, d.disableTransition = function() {
        this.removeTransitionStyles(), this.element.removeEventListener(u, this, !1), this.isTransitioning = !1
    }, d._removeStyles = function(t) {
        var e = {};
        for (var i in t) e[i] = "";
        this.css(e)
    };
    var c = {
        transitionProperty: "",
        transitionDuration: "",
        transitionDelay: ""
    };
    return d.removeTransitionStyles = function() {
        this.css(c)
    }, d.stagger = function(t) {
        t = isNaN(t) ? 0 : t, this.staggerDelay = t + "ms"
    }, d.removeElem = function() {
        this.element.parentNode.removeChild(this.element), this.css({
            display: ""
        }), this.emitEvent("remove", [this])
    }, d.remove = function() {
        return r && parseFloat(this.layout.options.transitionDuration) ? (this.once("transitionEnd", function() {
            this.removeElem()
        }), void this.hide()) : void this.removeElem()
    }, d.reveal = function() {
        delete this.isHidden, this.css({
            display: ""
        });
        var t = this.layout.options,
            e = {},
            i = this.getHideRevealTransitionEndProperty("visibleStyle");
        e[i] = this.onRevealTransitionEnd, this.transition({
            from: t.hiddenStyle,
            to: t.visibleStyle,
            isCleaning: !0,
            onTransitionEnd: e
        })
    }, d.onRevealTransitionEnd = function() {
        this.isHidden || this.emitEvent("reveal")
    }, d.getHideRevealTransitionEndProperty = function(t) {
        var e = this.layout.options[t];
        if (e.opacity) return "opacity";
        for (var i in e) return i
    }, d.hide = function() {
        this.isHidden = !0, this.css({
            display: ""
        });
        var t = this.layout.options,
            e = {},
            i = this.getHideRevealTransitionEndProperty("hiddenStyle");
        e[i] = this.onHideTransitionEnd, this.transition({
            from: t.visibleStyle,
            to: t.hiddenStyle,
            isCleaning: !0,
            onTransitionEnd: e
        })
    }, d.onHideTransitionEnd = function() {
        this.isHidden && (this.css({
            display: "none"
        }), this.emitEvent("hide"))
    }, d.destroy = function() {
        this.css({
            position: "",
            left: "",
            right: "",
            top: "",
            bottom: "",
            transition: "",
            transform: ""
        })
    }, o
}),
function(t, e) {
    "use strict";
    "function" == typeof define && define.amd ? define("outlayer/outlayer", ["ev-emitter/ev-emitter", "get-size/get-size", "fizzy-ui-utils/utils", "./item"], function(i, o, n, s) {
        return e(t, i, o, n, s)
    }) : "object" == typeof module && module.exports ? module.exports = e(t, require("ev-emitter"), require("get-size"), require("fizzy-ui-utils"), require("./item")) : t.Outlayer = e(t, t.EvEmitter, t.getSize, t.fizzyUIUtils, t.Outlayer.Item)
}(window, function(t, e, i, o, n) {
    "use strict";

    function s(t, e) {
        var i = o.getQueryElement(t);
        if (!i) return void(u && u.error("Bad element for " + this.constructor.namespace + ": " + (i || t)));
        this.element = i, h && (this.$element = h(this.element)), this.options = o.extend({}, this.constructor.defaults), this.option(e);
        var n = ++l;
        this.element.outlayerGUID = n, f[n] = this, this._create();
        var s = this._getOption("initLayout");
        s && this.layout()
    }

    function r(t) {
        function e() {
            t.apply(this, arguments)
        }
        return e.prototype = Object.create(t.prototype), e.prototype.constructor = e, e
    }

    function a(t) {
        if ("number" == typeof t) return t;
        var e = t.match(/(^\d*\.?\d*)(\w*)/),
            i = e && e[1],
            o = e && e[2];
        if (!i.length) return 0;
        i = parseFloat(i);
        var n = m[o] || 1;
        return i * n
    }
    var u = t.console,
        h = t.jQuery,
        d = function() {},
        l = 0,
        f = {};
    s.namespace = "outlayer", s.Item = n, s.defaults = {
        containerStyle: {
            position: "relative"
        },
        initLayout: !0,
        originLeft: !0,
        originTop: !0,
        resize: !0,
        resizeContainer: !0,
        transitionDuration: "0.4s",
        hiddenStyle: {
            opacity: 0,
            transform: "scale(0.001)"
        },
        visibleStyle: {
            opacity: 1,
            transform: "scale(1)"
        }
    };
    var c = s.prototype;
    o.extend(c, e.prototype), c.option = function(t) {
        o.extend(this.options, t)
    }, c._getOption = function(t) {
        var e = this.constructor.compatOptions[t];
        return e && void 0 !== this.options[e] ? this.options[e] : this.options[t]
    }, s.compatOptions = {
        initLayout: "isInitLayout",
        horizontal: "isHorizontal",
        layoutInstant: "isLayoutInstant",
        originLeft: "isOriginLeft",
        originTop: "isOriginTop",
        resize: "isResizeBound",
        resizeContainer: "isResizingContainer"
    }, c._create = function() {
        this.reloadItems(), this.stamps = [], this.stamp(this.options.stamp), o.extend(this.element.style, this.options.containerStyle);
        var t = this._getOption("resize");
        t && this.bindResize()
    }, c.reloadItems = function() {
        this.items = this._itemize(this.element.children)
    }, c._itemize = function(t) {
        for (var e = this._filterFindItemElements(t), i = this.constructor.Item, o = [], n = 0; n < e.length; n++) {
            var s = e[n],
                r = new i(s, this);
            o.push(r)
        }
        return o
    }, c._filterFindItemElements = function(t) {
        return o.filterFindElements(t, this.options.itemSelector)
    }, c.getItemElements = function() {
        return this.items.map(function(t) {
            return t.element
        })
    }, c.layout = function() {
        this._resetLayout(), this._manageStamps();
        var t = this._getOption("layoutInstant"),
            e = void 0 !== t ? t : !this._isLayoutInited;
        this.layoutItems(this.items, e), this._isLayoutInited = !0
    }, c._init = c.layout, c._resetLayout = function() {
        this.getSize()
    }, c.getSize = function() {
        this.size = i(this.element)
    }, c._getMeasurement = function(t, e) {
        var o, n = this.options[t];
        n ? ("string" == typeof n ? o = this.element.querySelector(n) : n instanceof HTMLElement && (o = n), this[t] = o ? i(o)[e] : n) : this[t] = 0
    }, c.layoutItems = function(t, e) {
        t = this._getItemsForLayout(t), this._layoutItems(t, e), this._postLayout()
    }, c._getItemsForLayout = function(t) {
        return t.filter(function(t) {
            return !t.isIgnored
        })
    }, c._layoutItems = function(t, e) {
        if (this._emitCompleteOnItems("layout", t), t && t.length) {
            var i = [];
            t.forEach(function(t) {
                var o = this._getItemLayoutPosition(t);
                o.item = t, o.isInstant = e || t.isLayoutInstant, i.push(o)
            }, this), this._processLayoutQueue(i)
        }
    }, c._getItemLayoutPosition = function() {
        return {
            x: 0,
            y: 0
        }
    }, c._processLayoutQueue = function(t) {
        this.updateStagger(), t.forEach(function(t, e) {
            this._positionItem(t.item, t.x, t.y, t.isInstant, e)
        }, this)
    }, c.updateStagger = function() {
        var t = this.options.stagger;
        return null === t || void 0 === t ? void(this.stagger = 0) : (this.stagger = a(t), this.stagger)
    }, c._positionItem = function(t, e, i, o, n) {
        o ? t.goTo(e, i) : (t.stagger(n * this.stagger), t.moveTo(e, i))
    }, c._postLayout = function() {
        this.resizeContainer()
    }, c.resizeContainer = function() {
        var t = this._getOption("resizeContainer");
        if (t) {
            var e = this._getContainerSize();
            e && (this._setContainerMeasure(e.width, !0), this._setContainerMeasure(e.height, !1))
        }
    }, c._getContainerSize = d, c._setContainerMeasure = function(t, e) {
        if (void 0 !== t) {
            var i = this.size;
            i.isBorderBox && (t += e ? i.paddingLeft + i.paddingRight + i.borderLeftWidth + i.borderRightWidth : i.paddingBottom + i.paddingTop + i.borderTopWidth + i.borderBottomWidth), t = Math.max(t, 0), this.element.style[e ? "width" : "height"] = t + "px"
        }
    }, c._emitCompleteOnItems = function(t, e) {
        function i() {
            n.dispatchEvent(t + "Complete", null, [e])
        }

        function o() {
            r++, r == s && i()
        }
        var n = this,
            s = e.length;
        if (!e || !s) return void i();
        var r = 0;
        e.forEach(function(e) {
            e.once(t, o)
        })
    }, c.dispatchEvent = function(t, e, i) {
        var o = e ? [e].concat(i) : i;
        if (this.emitEvent(t, o), h)
            if (this.$element = this.$element || h(this.element), e) {
                var n = h.Event(e);
                n.type = t, this.$element.trigger(n, i)
            } else this.$element.trigger(t, i)
    }, c.ignore = function(t) {
        var e = this.getItem(t);
        e && (e.isIgnored = !0)
    }, c.unignore = function(t) {
        var e = this.getItem(t);
        e && delete e.isIgnored
    }, c.stamp = function(t) {
        t = this._find(t), t && (this.stamps = this.stamps.concat(t), t.forEach(this.ignore, this))
    }, c.unstamp = function(t) {
        t = this._find(t), t && t.forEach(function(t) {
            o.removeFrom(this.stamps, t), this.unignore(t)
        }, this)
    }, c._find = function(t) {
        if (t) return "string" == typeof t && (t = this.element.querySelectorAll(t)), t = o.makeArray(t)
    }, c._manageStamps = function() {
        this.stamps && this.stamps.length && (this._getBoundingRect(), this.stamps.forEach(this._manageStamp, this))
    }, c._getBoundingRect = function() {
        var t = this.element.getBoundingClientRect(),
            e = this.size;
        this._boundingRect = {
            left: t.left + e.paddingLeft + e.borderLeftWidth,
            top: t.top + e.paddingTop + e.borderTopWidth,
            right: t.right - (e.paddingRight + e.borderRightWidth),
            bottom: t.bottom - (e.paddingBottom + e.borderBottomWidth)
        }
    }, c._manageStamp = d, c._getElementOffset = function(t) {
        var e = t.getBoundingClientRect(),
            o = this._boundingRect,
            n = i(t),
            s = {
                left: e.left - o.left - n.marginLeft,
                top: e.top - o.top - n.marginTop,
                right: o.right - e.right - n.marginRight,
                bottom: o.bottom - e.bottom - n.marginBottom
            };
        return s
    }, c.handleEvent = o.handleEvent, c.bindResize = function() {
        t.addEventListener("resize", this), this.isResizeBound = !0
    }, c.unbindResize = function() {
        t.removeEventListener("resize", this), this.isResizeBound = !1
    }, c.onresize = function() {
        this.resize()
    }, o.debounceMethod(s, "onresize", 100), c.resize = function() {
        this.isResizeBound && this.needsResizeLayout() && this.layout()
    }, c.needsResizeLayout = function() {
        var t = i(this.element),
            e = this.size && t;
        return e && t.innerWidth !== this.size.innerWidth
    }, c.addItems = function(t) {
        var e = this._itemize(t);
        return e.length && (this.items = this.items.concat(e)), e
    }, c.appended = function(t) {
        var e = this.addItems(t);
        e.length && (this.layoutItems(e, !0), this.reveal(e))
    }, c.prepended = function(t) {
        var e = this._itemize(t);
        if (e.length) {
            var i = this.items.slice(0);
            this.items = e.concat(i), this._resetLayout(), this._manageStamps(), this.layoutItems(e, !0), this.reveal(e), this.layoutItems(i)
        }
    }, c.reveal = function(t) {
        if (this._emitCompleteOnItems("reveal", t), t && t.length) {
            var e = this.updateStagger();
            t.forEach(function(t, i) {
                t.stagger(i * e), t.reveal()
            })
        }
    }, c.hide = function(t) {
        if (this._emitCompleteOnItems("hide", t), t && t.length) {
            var e = this.updateStagger();
            t.forEach(function(t, i) {
                t.stagger(i * e), t.hide()
            })
        }
    }, c.revealItemElements = function(t) {
        var e = this.getItems(t);
        this.reveal(e)
    }, c.hideItemElements = function(t) {
        var e = this.getItems(t);
        this.hide(e)
    }, c.getItem = function(t) {
        for (var e = 0; e < this.items.length; e++) {
            var i = this.items[e];
            if (i.element == t) return i
        }
    }, c.getItems = function(t) {
        t = o.makeArray(t);
        var e = [];
        return t.forEach(function(t) {
            var i = this.getItem(t);
            i && e.push(i)
        }, this), e
    }, c.remove = function(t) {
        var e = this.getItems(t);
        this._emitCompleteOnItems("remove", e), e && e.length && e.forEach(function(t) {
            t.remove(), o.removeFrom(this.items, t)
        }, this)
    }, c.destroy = function() {
        var t = this.element.style;
        t.height = "", t.position = "", t.width = "", this.items.forEach(function(t) {
            t.destroy()
        }), this.unbindResize();
        var e = this.element.outlayerGUID;
        delete f[e], delete this.element.outlayerGUID, h && h.removeData(this.element, this.constructor.namespace)
    }, s.data = function(t) {
        t = o.getQueryElement(t);
        var e = t && t.outlayerGUID;
        return e && f[e]
    }, s.create = function(t, e) {
        var i = r(s);
        return i.defaults = o.extend({}, s.defaults), o.extend(i.defaults, e), i.compatOptions = o.extend({}, s.compatOptions), i.namespace = t, i.data = s.data, i.Item = r(n), o.htmlInit(i, t), h && h.bridget && h.bridget(t, i), i
    };
    var m = {
        ms: 1,
        s: 1e3
    };
    return s.Item = n, s
}),
function(t, e) {
    "function" == typeof define && define.amd ? define("isotope-layout/js/item", ["outlayer/outlayer"], e) : "object" == typeof module && module.exports ? module.exports = e(require("outlayer")) : (t.Isotope = t.Isotope || {}, t.Isotope.Item = e(t.Outlayer))
}(window, function(t) {
    "use strict";

    function e() {
        t.Item.apply(this, arguments)
    }
    var i = e.prototype = Object.create(t.Item.prototype),
        o = i._create;
    i._create = function() {
        this.id = this.layout.itemGUID++, o.call(this), this.sortData = {}
    }, i.updateSortData = function() {
        if (!this.isIgnored) {
            this.sortData.id = this.id, this.sortData["original-order"] = this.id, this.sortData.random = Math.random();
            var t = this.layout.options.getSortData,
                e = this.layout._sorters;
            for (var i in t) {
                var o = e[i];
                this.sortData[i] = o(this.element, this)
            }
        }
    };
    var n = i.destroy;
    return i.destroy = function() {
        n.apply(this, arguments), this.css({
            display: ""
        })
    }, e
}),
function(t, e) {
    "function" == typeof define && define.amd ? define("isotope-layout/js/layout-mode", ["get-size/get-size", "outlayer/outlayer"], e) : "object" == typeof module && module.exports ? module.exports = e(require("get-size"), require("outlayer")) : (t.Isotope = t.Isotope || {}, t.Isotope.LayoutMode = e(t.getSize, t.Outlayer))
}(window, function(t, e) {
    "use strict";

    function i(t) {
        this.isotope = t, t && (this.options = t.options[this.namespace], this.element = t.element, this.items = t.filteredItems, this.size = t.size)
    }
    var o = i.prototype,
        n = ["_resetLayout", "_getItemLayoutPosition", "_manageStamp", "_getContainerSize", "_getElementOffset", "needsResizeLayout", "_getOption"];
    return n.forEach(function(t) {
        o[t] = function() {
            return e.prototype[t].apply(this.isotope, arguments)
        }
    }), o.needsVerticalResizeLayout = function() {
        var e = t(this.isotope.element),
            i = this.isotope.size && e;
        return i && e.innerHeight != this.isotope.size.innerHeight
    }, o._getMeasurement = function() {
        this.isotope._getMeasurement.apply(this, arguments)
    }, o.getColumnWidth = function() {
        this.getSegmentSize("column", "Width")
    }, o.getRowHeight = function() {
        this.getSegmentSize("row", "Height")
    }, o.getSegmentSize = function(t, e) {
        var i = t + e,
            o = "outer" + e;
        if (this._getMeasurement(i, o), !this[i]) {
            var n = this.getFirstItemSize();
            this[i] = n && n[o] || this.isotope.size["inner" + e]
        }
    }, o.getFirstItemSize = function() {
        var e = this.isotope.filteredItems[0];
        return e && e.element && t(e.element)
    }, o.layout = function() {
        this.isotope.layout.apply(this.isotope, arguments)
    }, o.getSize = function() {
        this.isotope.getSize(), this.size = this.isotope.size
    }, i.modes = {}, i.create = function(t, e) {
        function n() {
            i.apply(this, arguments)
        }
        return n.prototype = Object.create(o), n.prototype.constructor = n, e && (n.options = e), n.prototype.namespace = t, i.modes[t] = n, n
    }, i
}),
function(t, e) {
    "function" == typeof define && define.amd ? define("masonry-layout/masonry", ["outlayer/outlayer", "get-size/get-size"], e) : "object" == typeof module && module.exports ? module.exports = e(require("outlayer"), require("get-size")) : t.Masonry = e(t.Outlayer, t.getSize)
}(window, function(t, e) {
    var i = t.create("masonry");
    i.compatOptions.fitWidth = "isFitWidth";
    var o = i.prototype;
    return o._resetLayout = function() {
        this.getSize(), this._getMeasurement("columnWidth", "outerWidth"), this._getMeasurement("gutter", "outerWidth"), this.measureColumns(), this.colYs = [];
        for (var t = 0; t < this.cols; t++) this.colYs.push(0);
        this.maxY = 0, this.horizontalColIndex = 0
    }, o.measureColumns = function() {
        if (this.getContainerWidth(), !this.columnWidth) {
            var t = this.items[0],
                i = t && t.element;
            this.columnWidth = i && e(i).outerWidth || this.containerWidth
        }
        var o = this.columnWidth += this.gutter,
            n = this.containerWidth + this.gutter,
            s = n / o,
            r = o - n % o,
            a = r && r < 1 ? "round" : "floor";
        s = Math[a](s), this.cols = Math.max(s, 1)
    }, o.getContainerWidth = function() {
        var t = this._getOption("fitWidth"),
            i = t ? this.element.parentNode : this.element,
            o = e(i);
        this.containerWidth = o && o.innerWidth
    }, o._getItemLayoutPosition = function(t) {
        t.getSize();
        var e = t.size.outerWidth % this.columnWidth,
            i = e && e < 1 ? "round" : "ceil",
            o = Math[i](t.size.outerWidth / this.columnWidth);
        o = Math.min(o, this.cols);
        for (var n = this.options.horizontalOrder ? "_getHorizontalColPosition" : "_getTopColPosition", s = this[n](o, t), r = {
                x: this.columnWidth * s.col,
                y: s.y
            }, a = s.y + t.size.outerHeight, u = o + s.col, h = s.col; h < u; h++) this.colYs[h] = a;
        return r
    }, o._getTopColPosition = function(t) {
        var e = this._getTopColGroup(t),
            i = Math.min.apply(Math, e);
        return {
            col: e.indexOf(i),
            y: i
        }
    }, o._getTopColGroup = function(t) {
        if (t < 2) return this.colYs;
        for (var e = [], i = this.cols + 1 - t, o = 0; o < i; o++) e[o] = this._getColGroupY(o, t);
        return e
    }, o._getColGroupY = function(t, e) {
        if (e < 2) return this.colYs[t];
        var i = this.colYs.slice(t, t + e);
        return Math.max.apply(Math, i)
    }, o._getHorizontalColPosition = function(t, e) {
        var i = this.horizontalColIndex % this.cols,
            o = t > 1 && i + t > this.cols;
        i = o ? 0 : i;
        var n = e.size.outerWidth && e.size.outerHeight;
        return this.horizontalColIndex = n ? i + t : this.horizontalColIndex, {
            col: i,
            y: this._getColGroupY(i, t)
        }
    }, o._manageStamp = function(t) {
        var i = e(t),
            o = this._getElementOffset(t),
            n = this._getOption("originLeft"),
            s = n ? o.left : o.right,
            r = s + i.outerWidth,
            a = Math.floor(s / this.columnWidth);
        a = Math.max(0, a);
        var u = Math.floor(r / this.columnWidth);
        u -= r % this.columnWidth ? 0 : 1, u = Math.min(this.cols - 1, u);
        for (var h = this._getOption("originTop"), d = (h ? o.top : o.bottom) + i.outerHeight, l = a; l <= u; l++) this.colYs[l] = Math.max(d, this.colYs[l])
    }, o._getContainerSize = function() {
        this.maxY = Math.max.apply(Math, this.colYs);
        var t = {
            height: this.maxY
        };
        return this._getOption("fitWidth") && (t.width = this._getContainerFitWidth()), t
    }, o._getContainerFitWidth = function() {
        for (var t = 0, e = this.cols; --e && 0 === this.colYs[e];) t++;
        return (this.cols - t) * this.columnWidth - this.gutter
    }, o.needsResizeLayout = function() {
        var t = this.containerWidth;
        return this.getContainerWidth(), t != this.containerWidth
    }, i
}),
function(t, e) {
    "function" == typeof define && define.amd ? define("isotope-layout/js/layout-modes/masonry", ["../layout-mode", "masonry-layout/masonry"], e) : "object" == typeof module && module.exports ? module.exports = e(require("../layout-mode"), require("masonry-layout")) : e(t.Isotope.LayoutMode, t.Masonry)
}(window, function(t, e) {
    "use strict";
    var i = t.create("masonry"),
        o = i.prototype,
        n = {
            _getElementOffset: !0,
            layout: !0,
            _getMeasurement: !0
        };
    for (var s in e.prototype) n[s] || (o[s] = e.prototype[s]);
    var r = o.measureColumns;
    o.measureColumns = function() {
        this.items = this.isotope.filteredItems, r.call(this)
    };
    var a = o._getOption;
    return o._getOption = function(t) {
        return "fitWidth" == t ? void 0 !== this.options.isFitWidth ? this.options.isFitWidth : this.options.fitWidth : a.apply(this.isotope, arguments)
    }, i
}),
function(t, e) {
    "function" == typeof define && define.amd ? define("isotope-layout/js/layout-modes/fit-rows", ["../layout-mode"], e) : "object" == typeof exports ? module.exports = e(require("../layout-mode")) : e(t.Isotope.LayoutMode)
}(window, function(t) {
    "use strict";
    var e = t.create("fitRows"),
        i = e.prototype;
    return i._resetLayout = function() {
        this.x = 0, this.y = 0, this.maxY = 0, this._getMeasurement("gutter", "outerWidth")
    }, i._getItemLayoutPosition = function(t) {
        t.getSize();
        var e = t.size.outerWidth + this.gutter,
            i = this.isotope.size.innerWidth + this.gutter;
        0 !== this.x && e + this.x > i && (this.x = 0, this.y = this.maxY);
        var o = {
            x: this.x,
            y: this.y
        };
        return this.maxY = Math.max(this.maxY, this.y + t.size.outerHeight), this.x += e, o
    }, i._getContainerSize = function() {
        return {
            height: this.maxY
        }
    }, e
}),
function(t, e) {
    "function" == typeof define && define.amd ? define("isotope-layout/js/layout-modes/vertical", ["../layout-mode"], e) : "object" == typeof module && module.exports ? module.exports = e(require("../layout-mode")) : e(t.Isotope.LayoutMode)
}(window, function(t) {
    "use strict";
    var e = t.create("vertical", {
            horizontalAlignment: 0
        }),
        i = e.prototype;
    return i._resetLayout = function() {
        this.y = 0
    }, i._getItemLayoutPosition = function(t) {
        t.getSize();
        var e = (this.isotope.size.innerWidth - t.size.outerWidth) * this.options.horizontalAlignment,
            i = this.y;
        return this.y += t.size.outerHeight, {
            x: e,
            y: i
        }
    }, i._getContainerSize = function() {
        return {
            height: this.y
        }
    }, e
}),
function(t, e) {
    "function" == typeof define && define.amd ? define(["outlayer/outlayer", "get-size/get-size", "desandro-matches-selector/matches-selector", "fizzy-ui-utils/utils", "isotope-layout/js/item", "isotope-layout/js/layout-mode", "isotope-layout/js/layout-modes/masonry", "isotope-layout/js/layout-modes/fit-rows", "isotope-layout/js/layout-modes/vertical"], function(i, o, n, s, r, a) {
        return e(t, i, o, n, s, r, a)
    }) : "object" == typeof module && module.exports ? module.exports = e(t, require("outlayer"), require("get-size"), require("desandro-matches-selector"), require("fizzy-ui-utils"), require("isotope-layout/js/item"), require("isotope-layout/js/layout-mode"), require("isotope-layout/js/layout-modes/masonry"), require("isotope-layout/js/layout-modes/fit-rows"), require("isotope-layout/js/layout-modes/vertical")) : t.Isotope = e(t, t.Outlayer, t.getSize, t.matchesSelector, t.fizzyUIUtils, t.Isotope.Item, t.Isotope.LayoutMode)
}(window, function(t, e, i, o, n, s, r) {
    function a(t, e) {
        return function(i, o) {
            for (var n = 0; n < t.length; n++) {
                var s = t[n],
                    r = i.sortData[s],
                    a = o.sortData[s];
                if (r > a || r < a) {
                    var u = void 0 !== e[s] ? e[s] : e,
                        h = u ? 1 : -1;
                    return (r > a ? 1 : -1) * h
                }
            }
            return 0
        }
    }
    var u = t.jQuery,
        h = String.prototype.trim ? function(t) {
            return t.trim()
        } : function(t) {
            return t.replace(/^\s+|\s+$/g, "")
        },
        d = e.create("isotope", {
            layoutMode: "masonry",
            isJQueryFiltering: !0,
            sortAscending: !0
        });
    d.Item = s, d.LayoutMode = r;
    var l = d.prototype;
    l._create = function() {
        this.itemGUID = 0, this._sorters = {}, this._getSorters(), e.prototype._create.call(this), this.modes = {}, this.filteredItems = this.items, this.sortHistory = ["original-order"];
        for (var t in r.modes) this._initLayoutMode(t)
    }, l.reloadItems = function() {
        this.itemGUID = 0, e.prototype.reloadItems.call(this)
    }, l._itemize = function() {
        for (var t = e.prototype._itemize.apply(this, arguments), i = 0; i < t.length; i++) {
            var o = t[i];
            o.id = this.itemGUID++
        }
        return this._updateItemsSortData(t), t
    }, l._initLayoutMode = function(t) {
        var e = r.modes[t],
            i = this.options[t] || {};
        this.options[t] = e.options ? n.extend(e.options, i) : i, this.modes[t] = new e(this)
    }, l.layout = function() {
        return !this._isLayoutInited && this._getOption("initLayout") ? void this.arrange() : void this._layout()
    }, l._layout = function() {
        var t = this._getIsInstant();
        this._resetLayout(), this._manageStamps(), this.layoutItems(this.filteredItems, t), this._isLayoutInited = !0
    }, l.arrange = function(t) {
        this.option(t), this._getIsInstant();
        var e = this._filter(this.items);
        this.filteredItems = e.matches, this._bindArrangeComplete(), this._isInstant ? this._noTransition(this._hideReveal, [e]) : this._hideReveal(e), this._sort(), this._layout()
    }, l._init = l.arrange, l._hideReveal = function(t) {
        this.reveal(t.needReveal), this.hide(t.needHide)
    }, l._getIsInstant = function() {
        var t = this._getOption("layoutInstant"),
            e = void 0 !== t ? t : !this._isLayoutInited;
        return this._isInstant = e, e
    }, l._bindArrangeComplete = function() {
        function t() {
            e && i && o && n.dispatchEvent("arrangeComplete", null, [n.filteredItems])
        }
        var e, i, o, n = this;
        this.once("layoutComplete", function() {
            e = !0, t()
        }), this.once("hideComplete", function() {
            i = !0, t()
        }), this.once("revealComplete", function() {
            o = !0, t()
        })
    }, l._filter = function(t) {
        var e = this.options.filter;
        e = e || "*";
        for (var i = [], o = [], n = [], s = this._getFilterTest(e), r = 0; r < t.length; r++) {
            var a = t[r];
            if (!a.isIgnored) {
                var u = s(a);
                u && i.push(a), u && a.isHidden ? o.push(a) : u || a.isHidden || n.push(a)
            }
        }
        return {
            matches: i,
            needReveal: o,
            needHide: n
        }
    }, l._getFilterTest = function(t) {
        return u && this.options.isJQueryFiltering ? function(e) {
            return u(e.element).is(t)
        } : "function" == typeof t ? function(e) {
            return t(e.element)
        } : function(e) {
            return o(e.element, t)
        }
    }, l.updateSortData = function(t) {
        var e;
        t ? (t = n.makeArray(t), e = this.getItems(t)) : e = this.items, this._getSorters(), this._updateItemsSortData(e)
    }, l._getSorters = function() {
        var t = this.options.getSortData;
        for (var e in t) {
            var i = t[e];
            this._sorters[e] = f(i)
        }
    }, l._updateItemsSortData = function(t) {
        for (var e = t && t.length, i = 0; e && i < e; i++) {
            var o = t[i];
            o.updateSortData()
        }
    };
    var f = function() {
        function t(t) {
            if ("string" != typeof t) return t;
            var i = h(t).split(" "),
                o = i[0],
                n = o.match(/^\[(.+)\]$/),
                s = n && n[1],
                r = e(s, o),
                a = d.sortDataParsers[i[1]];
            return t = a ? function(t) {
                return t && a(r(t))
            } : function(t) {
                return t && r(t)
            }
        }

        function e(t, e) {
            return t ? function(e) {
                return e.getAttribute(t)
            } : function(t) {
                var i = t.querySelector(e);
                return i && i.textContent
            }
        }
        return t
    }();
    d.sortDataParsers = {
        parseInt: function(t) {
            return parseInt(t, 10)
        },
        parseFloat: function(t) {
            return parseFloat(t)
        }
    }, l._sort = function() {
        if (this.options.sortBy) {
            var t = n.makeArray(this.options.sortBy);
            this._getIsSameSortBy(t) || (this.sortHistory = t.concat(this.sortHistory));
            var e = a(this.sortHistory, this.options.sortAscending);
            this.filteredItems.sort(e)
        }
    }, l._getIsSameSortBy = function(t) {
        for (var e = 0; e < t.length; e++)
            if (t[e] != this.sortHistory[e]) return !1;
        return !0
    }, l._mode = function() {
        var t = this.options.layoutMode,
            e = this.modes[t];
        if (!e) throw new Error("No layout mode: " + t);
        return e.options = this.options[t], e
    }, l._resetLayout = function() {
        e.prototype._resetLayout.call(this), this._mode()._resetLayout()
    }, l._getItemLayoutPosition = function(t) {
        return this._mode()._getItemLayoutPosition(t)
    }, l._manageStamp = function(t) {
        this._mode()._manageStamp(t)
    }, l._getContainerSize = function() {
        return this._mode()._getContainerSize()
    }, l.needsResizeLayout = function() {
        return this._mode().needsResizeLayout()
    }, l.appended = function(t) {
        var e = this.addItems(t);
        if (e.length) {
            var i = this._filterRevealAdded(e);
            this.filteredItems = this.filteredItems.concat(i)
        }
    }, l.prepended = function(t) {
        var e = this._itemize(t);
        if (e.length) {
            this._resetLayout(), this._manageStamps();
            var i = this._filterRevealAdded(e);
            this.layoutItems(this.filteredItems), this.filteredItems = i.concat(this.filteredItems), this.items = e.concat(this.items)
        }
    }, l._filterRevealAdded = function(t) {
        var e = this._filter(t);
        return this.hide(e.needHide), this.reveal(e.matches), this.layoutItems(e.matches, !0), e.matches
    }, l.insert = function(t) {
        var e = this.addItems(t);
        if (e.length) {
            var i, o, n = e.length;
            for (i = 0; i < n; i++) o = e[i], this.element.appendChild(o.element);
            var s = this._filter(e).matches;
            for (i = 0; i < n; i++) e[i].isLayoutInstant = !0;
            for (this.arrange(), i = 0; i < n; i++) delete e[i].isLayoutInstant;
            this.reveal(s)
        }
    };
    var c = l.remove;
    return l.remove = function(t) {
        t = n.makeArray(t);
        var e = this.getItems(t);
        c.call(this, t);
        for (var i = e && e.length, o = 0; i && o < i; o++) {
            var s = e[o];
            n.removeFrom(this.filteredItems, s)
        }
    }, l.shuffle = function() {
        for (var t = 0; t < this.items.length; t++) {
            var e = this.items[t];
            e.sortData.random = Math.random()
        }
        this.options.sortBy = "random", this._sort(), this._layout()
    }, l._noTransition = function(t, e) {
        var i = this.options.transitionDuration;
        this.options.transitionDuration = 0;
        var o = t.apply(this, e);
        return this.options.transitionDuration = i, o
    }, l.getFilteredItemElements = function() {
        return this.filteredItems.map(function(t) {
            return t.element
        })
    }, d
});
(function($) {
    "use strict";
    var GaviasElements = {
        init: function() {
            GaviasElements.initDebouncedresize();
            elementorFrontend.hooks.addAction('frontend/element_ready/gva-testimonials.default', GaviasElements.elementTestimonial);
            elementorFrontend.hooks.addAction('frontend/element_ready/gva-posts.default', GaviasElements.elementPosts);
            elementorFrontend.hooks.addAction('frontend/element_ready/gva-portfolio.default', GaviasElements.elementPortfolio);
            elementorFrontend.hooks.addAction('frontend/element_ready/gva-give-forms.default', GaviasElements.elementGiveForms);
            elementorFrontend.hooks.addAction('frontend/element_ready/gva-teams.default', GaviasElements.elementTeams);
            elementorFrontend.hooks.addAction('frontend/element_ready/gva-information.default', GaviasElements.elementInformation);
            elementorFrontend.hooks.addAction('frontend/element_ready/gva-events.default', GaviasElements.elementEvents);
            elementorFrontend.hooks.addAction('frontend/element_ready/gva-brand.default', GaviasElements.elementBrand);
            elementorFrontend.hooks.addAction('frontend/element_ready/gva-counter.default', GaviasElements.elementCounter);
            elementorFrontend.hooks.addAction('frontend/element_ready/fidelity-counter.default', GaviasElements.elementCounterFidelity);
            elementorFrontend.hooks.addAction('frontend/element_ready/gva-services.default', GaviasElements.elementServices);
            elementorFrontend.hooks.addAction('frontend/element_ready/gva-icon-box-group.default', GaviasElements.elementIconBoxGroup);
            elementorFrontend.hooks.addAction('frontend/element_ready/gva-testimonials-single.default', GaviasElements.elementTestimonialSingle);
            elementorFrontend.hooks.addAction('frontend/element_ready/wp-widget-custom-twitter-feeds-widget.default', GaviasElements.elementCustomTwitterFeeds);
            elementorFrontend.hooks.addAction('frontend/element_ready/gva-countdown.default', GaviasElements.elementCountDown);
            elementorFrontend.hooks.addAction('frontend/element_ready/gva-box-hover.default', GaviasElements.elementBoxHover);
            elementorFrontend.hooks.addAction('frontend/element_ready/gva-video-carousel.default', GaviasElements.elementVideoCarousel);
            elementorFrontend.hooks.addAction('frontend/element_ready/gva-content-horizontal.default', GaviasElements.elementContentHorizontal);
            elementorFrontend.hooks.addAction('frontend/element_ready/gva-campaign.default', GaviasElements.elementCampaign);
            elementorFrontend.hooks.addAction('frontend/element_ready/gva-locations_map.default', GaviasElements.elementLocationMap);
            elementorFrontend.hooks.addAction('frontend/element_ready/gva-circle-progress.default', GaviasElements.elementCircleProgress);
            elementorFrontend.hooks.addAction('frontend/element_ready/gva-services-group.default', GaviasElements.elementServices);
            elementorFrontend.hooks.addAction('frontend/element_ready/gva-gallery.default', GaviasElements.elementGallery);
            elementorFrontend.hooks.addAction('frontend/element_ready/column', GaviasElements.elementColumn)
        },
        initDebouncedresize: function() {
            var $event = $.event,
                $special, resizeTimeout;
            $special = $event.special.debouncedresize = {
                setup: function() {
                    $(this).on("resize", $special.handler)
                },
                teardown: function() {
                    $(this).off("resize", $special.handler)
                },
                handler: function(event, execAsap) {
                    var context = this,
                        args = arguments,
                        dispatch = function() {
                            event.type = "debouncedresize";
                            $event.dispatch.apply(context, args)
                        };
                    if (resizeTimeout) {
                        clearTimeout(resizeTimeout)
                    }
                    execAsap ? dispatch() : resizeTimeout = setTimeout(dispatch, $special.threshold)
                },
                threshold: 150
            }
        },
        elementColumn: function($scope) {
            if (($scope).hasClass('column-style-bg-overflow-right')) {
                var left = $scope.offset().left;
                var rwidth = $(window).width() - left + 10;
                $scope.children('.elementor-column-wrap, .elementor-widget-wrap').append('<div class="bg-overfolow"></div>');
                $scope.children('.elementor-column-wrap, .elementor-widget-wrap').children('.bg-overfolow').css('width', rwidth);
                $(window).on("debouncedresize", function(event) {
                    var left = $scope.offset().left;
                    rwidth = $(window).width() - left + 10;
                    $scope.children('.elementor-column-wrap, .elementor-widget-wrap').children('.bg-overfolow').css('width', rwidth)
                })
            }
            if (($scope).hasClass('column-style-bg-overflow-left')) {
                var right = $(window).width() - ($scope.offset().left + $scope.outerWidth(!0));
                var lwidth = $(window).width() - right + 10;
                $scope.children('.elementor-column-wrap, .elementor-widget-wrap').append('<div class="bg-overfolow"></div>');
                $scope.children('.elementor-column-wrap, .elementor-widget-wrap').children('.bg-overfolow').css('width', lwidth);
                $(window).on("debouncedresize", function(event) {
                    lwidth = $(window).width() - right + 10;
                    $scope.children('.elementor-column-wrap, .elementor-widget-wrap').children('.bg-overfolow').css('width', lwidth)
                })
            }
        },
        elementTestimonial: function($scope) {
            var $carousel = $scope.find('.init-carousel-owl');
            GaviasElements.initCarousel($carousel)
        },
        elementCustomTwitterFeeds: function($scope) {
            $scope.find('.ctf-tweets').owlCarousel({
                nav: !1,
                autoplay: !1,
                autoHeight: !1,
                loop: !0,
                dots: !0,
                mouseDrag: !0,
                touchDrag: !0,
                items: 1
            })
        },
        elementTestimonialSingle: function($scope) {
            var $carousel = $scope.find('.init-carousel-owl');
            GaviasElements.initCarousel($carousel)
        },
        elementPosts: function($scope) {
            var $carousel = $scope.find('.init-carousel-owl');
            GaviasElements.initCarousel($carousel)
        },
        elementServices: function($scope) {
            var $carousel = $scope.find('.init-carousel-owl');
            GaviasElements.initCarousel($carousel)
        },
        elementPortfolio: function($scope) {
            var $carousel = $scope.find('.init-carousel-owl');
            GaviasElements.initCarousel($carousel);
            if ($.fn.isotope) {
                if ($('.isotope-items').length) {
                    $('.isotope-items').each(function() {
                        var $el = $(this),
                            $filter = $('.portfolio-filter a'),
                            $loop = $(this);
                        $loop.isotope();
                        $(window).load(function() {
                            $loop.isotope('layout')
                        });
                        if ($filter.length > 0) {
                            $filter.on('click', function(e) {
                                e.preventDefault();
                                var $a = $(this);
                                $filter.removeClass('active');
                                $a.addClass('active');
                                $loop.isotope({
                                    filter: $a.data('filter')
                                })
                            })
                        }
                    })
                }
            }
        },
        elementTeams: function($scope) {
            var $carousel = $scope.find('.init-carousel-owl');
            GaviasElements.initCarousel($carousel)
        },
        elementInformation: function($scope) {
            var $carousel = $scope.find('.init-carousel-owl');
            GaviasElements.initCarousel($carousel)
        },
        elementGallery: function($scope) {
            var $carousel = $scope.find('.init-carousel-owl');
            GaviasElements.initCarousel($carousel)
        },
        elementEvents: function($scope) {
            var $carousel = $scope.find('.init-carousel-owl');
            GaviasElements.initCarousel($carousel)
        },
        elementBrand: function($scope) {
            var $carousel = $scope.find('.init-carousel-owl');
            GaviasElements.initCarousel($carousel)
        },
        elementCounter: function($scope) {
            var $block = $scope.find('.milestone-content');
            $block.appear(function() {
                var $endNum = parseInt(jQuery(this).find('.milestone-number').text());
                jQuery(this).find('.milestone-number').countTo({
                    from: 0,
                    to: $endNum,
                    speed: 4000,
                    refreshInterval: 60,
                    formatter: function(value, options) {
                        value = value.toFixed(options.decimals);
                        value = value.replace(/\B(?=(\d{3})+(?!\d))/g, ',');
                        return value
                    }
                })
            }, {
                accX: 0,
                accY: 0
            })
        },
        elementCounterFidelity: function($scope) {
            var number = $scope.find('.milestone-number');
            number.appear(function() {
                const data = number.data(),
                    decimalDigits = data.toValue.toString().match(/\.(.*)/);
                if (decimalDigits) {
                    data.rounding = decimalDigits[1].length
                }
                number.numerator(data)
            })
        },
        elementIconBoxGroup: function($scope) {
            var $carousel = $scope.find('.init-carousel-owl');
            GaviasElements.initCarousel($carousel)
        },
        elementCountDown: function($scope) {
            $('[data-countdown="countdown"]').each(function(index, el) {
                var $this = $(this);
                var $date = $this.data('date').split("-");
                $this.gvaCountDown({
                    TargetDate: $date[0] + "/" + $date[1] + "/" + $date[2] + " " + $date[3] + ":" + $date[4] + ":" + $date[5],
                    DisplayFormat: "<div class=\"countdown-times\"><div class=\"day\">%%D%% <span class=\"label\">Days</span> </div><div class=\"hours\">%%H%% <span class=\"label\">Hours</span> </div><div class=\"minutes\">%%M%% <span class=\"label\">Minutes</span> </div><div class=\"seconds\">%%S%% <span class=\"label\">Seconds</span></div></div>",
                    FinishMessage: "Expired"
                })
            })
        },
        elementBoxHover: function($scope) {
            var $carousel = $scope.find('.init-carousel-owl');
            GaviasElements.initCarousel($carousel)
        },
        elementVideoCarousel: function($scope) {
            var $carousel = $scope.find('.init-carousel-owl');
            GaviasElements.initCarousel($carousel)
        },
        elementGiveForms: function($scope) {
            elementorFrontend.waypoint($scope.find('.give__progress-bar'), function() {
                var $progressbar = $(this);
                $progressbar.css('width', $progressbar.data('progress-max'))
            });
            var $carousel = $scope.find('.init-carousel-owl');
            GaviasElements.initCarousel($carousel)
        },
        elementContentHorizontal: function($scope) {
            $('.content-hover-horizontal .content-item').on('click', function() {
                $(this).parent().find('.content-item').removeClass('active');
                $(this).addClass('active')
            });
            $('.gva-content-horizontal').each(function() {
                var col = parseInt($(this).attr('data-col'));
                $('.content-hover-horizontal .content-item .image').css('width', ($('.content-hover-horizontal').width() / (col + 1)) - 10)
            });
            $(window).on("debouncedresize", function(event) {
                $('.gva-content-horizontal').each(function() {
                    var col = parseInt($(this).attr('data-col'));
                    $('.content-hover-horizontal .content-item .image').css('width', ($('.content-hover-horizontal').width() / (col + 1)) - 10)
                })
            })
        },
        elementLocationMap: function($scope) {
            var location_data = [];
            var i = 0;
            $('#locations_map_content .maker-item').each(function() {
                var location_item = [];
                location_item.id = $(this).data('id');
                var lat = $(this).data('lat');
                if (lat) {
                    lat = lat.split(",");
                    location_item.latLng = [lat[0], lat[1]]
                }
                location_item.data = '';
                location_item.options = {};
                location_data[i] = location_item;
                i++
            });
            $('#map_canvas_gva_01').gmap3({
                map: {
                    options: {
                        "draggable": !0,
                        "mapTypeControl": !0,
                        "mapTypeId": google.maps.MapTypeId.ROADMAP,
                        "scrollwheel": !1,
                        "panControl": !0,
                        "rotateControl": !1,
                        "scaleControl": !0,
                        "streetViewControl": !0,
                        "zoomControl": !0,
                        "center": location_data[0].latLng,
                        "zoom": 12,
                    }
                },
                marker: {
                    values: location_data,
                    options: {
                        draggable: !1
                    },
                    events: {
                        click: function(marker, event, context) {
                            var id = context.id;
                            var content = $('div[data-id=' + id + '].maker-item .marker-hidden-content').html();
                            var map = $(this).gmap3("get"),
                                infowindow = $(this).gmap3({
                                    get: {
                                        name: "infowindow"
                                    }
                                });
                            if (infowindow) {
                                infowindow.open(map, marker);
                                infowindow.setContent(content)
                            } else {
                                $(this).gmap3({
                                    infowindow: {
                                        anchor: marker,
                                        options: {
                                            content: content
                                        }
                                    }
                                })
                            }
                        }
                    }
                }
            });
            var map = $('#map_canvas_gva_01').gmap3("get");
            $(".location-item").on('click', function() {
                $('.location-item .location-item-inner').removeClass('active');
                $(this).find('.location-item-inner').first().addClass('active');
                var id = $(this).data('id');
                var marker = $('#map_canvas_gva_01').gmap3({
                    get: {
                        id: id
                    }
                });
                new google.maps.event.trigger(marker, 'click');
                map.setCenter(marker.getPosition())
            })
        },
        elementCampaign: function($scope) {
            var $carousel = $scope.find('.init-carousel-owl');
            GaviasElements.initCarousel($carousel);
            $("[data-progress-animation]").each(function() {
                var $this = $(this);
                $this.appear(function() {
                    var delay = ($this.attr("data-appear-animation-delay") ? $this.attr("data-appear-animation-delay") : 1);
                    if (delay > 1) $this.css("animation-delay", delay + "ms");
                    setTimeout(function() {
                        $this.animate({
                            width: $this.attr("data-progress-animation")
                        }, 800)
                    }, delay)
                }, {
                    accX: 0,
                    accY: -50
                })
            })
        },
        elementCircleProgress: function($scope) {
            $scope.find(".circle-progress").appear(function() {
                $scope.find(".circle-progress").each(function() {
                    let progress = $(this);
                    let progressOptions = progress.data("options");
                    progress.circleProgress({
                        startAngle: -Math.PI / 2
                    }).on('circle-animation-progress', function(event, progress, stepValue) {
                        $(this).find('strong').html(Math.round(stepValue.toFixed(2).substr(1) * 100) + '<i>%</i>')
                    })
                })
            })
        },
        initCarousel: function($target) {
            if (!$target.length) {
                return
            }
            var items = $target.data('items') ? $target.data('items') : 5;
            var items_lg = $target.data('items_lg') ? $target.data('items_lg') : 4;
            var items_md = $target.data('items_md') ? $target.data('items_md') : 3;
            var items_sm = $target.data('items_sm') ? $target.data('items_sm') : 2;
            var items_xs = $target.data('items_xs') ? $target.data('items_xs') : 1;
            var items_xx = $target.data('items_xx') ? $target.data('items_xx') : 1;
            var loop = $target.data('loop') ? $target.data('loop') : !1;
            var speed = $target.data('speed') ? $target.data('speed') : 200;
            var auto_play = $target.data('auto_play') ? $target.data('auto_play') : !1;
            var auto_play_speed = $target.data('auto_play_speed') ? $target.data('auto_play_speed') : !1;
            var auto_play_timeout = $target.data('auto_play_timeout') ? $target.data('auto_play_timeout') : 1000;
            var auto_play_hover = $target.data('auto_play_hover') ? $target.data('auto_play_hover') : !1;
            var navigation = $target.data('navigation') ? $target.data('navigation') : !1;
            var pagination = $target.data('pagination') ? $target.data('pagination') : !1;
            var mouse_drag = $target.data('mouse_drag') ? $target.data('mouse_drag') : !1;
            var touch_drag = $target.data('touch_drag') ? $target.data('touch_drag') : !1;
            var center = $target.hasClass('carousel-center') ? !0 : !1;
            $target.owlCarousel({
                center: center,
                nav: navigation,
                autoplay: auto_play,
                autoplayTimeout: auto_play_timeout,
                autoplaySpeed: auto_play_speed,
                autoplayHoverPause: auto_play_hover,
                navText: ['<span><i class="fas fa-chevron-left"></i></span>', '<span><i class="fas fa-chevron-right"></i></span>'],
                autoHeight: !1,
                loop: loop,
                dots: pagination,
                rewind: !0,
                smartSpeed: speed,
                mouseDrag: mouse_drag,
                touchDrag: touch_drag,
                merge: !0,
                responsive: {
                    0: {
                        items: 1,
                        nav: !1
                    },
                    320: {
                        items: items_xx,
                        nav: !1
                    },
                    640: {
                        items: items_xs,
                        nav: !1
                    },
                    768: {
                        items: items_sm,
                    },
                    992: {
                        items: items_md
                    },
                    1200: {
                        items: items_lg
                    },
                    1400: {
                        items: items
                    }
                }
            });
            $target.find('.owl-item.active').eq(1).addClass('center');
            $target.on('translated.owl.carousel', function(e) {
                $target.find('.owl-item.center').removeClass('center');
                $target.find('.owl-stage .active').eq(1).addClass('center')
            })
        }
    };
    $(window).on('elementor/frontend/init', GaviasElements.init)
}(jQuery));
(function($) {
    $.fn.countTo = function(options) {
        options = options || {};
        return $(this).each(function() {
            var settings = $.extend({}, $.fn.countTo.defaults, {
                from: $(this).data('from'),
                to: $(this).data('to'),
                speed: $(this).data('speed'),
                refreshInterval: $(this).data('refresh-interval'),
                decimals: $(this).data('decimals')
            }, options);
            var loops = Math.ceil(settings.speed / settings.refreshInterval),
                increment = (settings.to - settings.from) / loops;
            var self = this,
                $self = $(this),
                loopCount = 0,
                value = settings.from,
                data = $self.data('countTo') || {};
            $self.data('countTo', data);
            if (data.interval) {
                clearInterval(data.interval)
            }
            data.interval = setInterval(updateTimer, settings.refreshInterval);
            render(value);

            function updateTimer() {
                value += increment;
                loopCount++;
                render(value);
                if (typeof(settings.onUpdate) == 'function') {
                    settings.onUpdate.call(self, value)
                }
                if (loopCount >= loops) {
                    $self.removeData('countTo');
                    clearInterval(data.interval);
                    value = settings.to;
                    if (typeof(settings.onComplete) == 'function') {
                        settings.onComplete.call(self, value)
                    }
                }
            }

            function render(value) {
                var formattedValue = settings.formatter.call(self, value, settings);
                $self.html(formattedValue)
            }
        })
    };
    $.fn.countTo.defaults = {
        from: 0,
        to: 0,
        speed: 1000,
        refreshInterval: 100,
        decimals: 0,
        formatter: formatter,
        onUpdate: null,
        onComplete: null
    };

    function formatter(value, settings) {
        return value.toFixed(settings.decimals)
    }
}(jQuery));
(function($) {
    $.fn.appear = function(fn, options) {
        var settings = $.extend({
            data: undefined,
            one: !0,
            accX: 0,
            accY: 0
        }, options);
        return this.each(function() {
            var t = $(this);
            t.appeared = !1;
            if (!fn) {
                t.trigger('appear', settings.data);
                return
            }
            var w = $(window);
            var check = function() {
                if (!t.is(':visible')) {
                    t.appeared = !1;
                    return
                }
                var a = w.scrollLeft();
                var b = w.scrollTop();
                var o = t.offset();
                var x = o.left;
                var y = o.top;
                var ax = settings.accX;
                var ay = settings.accY;
                var th = t.height();
                var wh = w.height();
                var tw = t.width();
                var ww = w.width();
                if (y + th + ay >= b && y <= b + wh + ay && x + tw + ax >= a && x <= a + ww + ax) {
                    if (!t.appeared) t.trigger('appear', settings.data)
                } else {
                    t.appeared = !1
                }
            };
            var modifiedFn = function() {
                t.appeared = !0;
                if (settings.one) {
                    w.unbind('scroll', check);
                    var i = $.inArray(check, $.fn.appear.checks);
                    if (i >= 0) $.fn.appear.checks.splice(i, 1)
                }
                fn.apply(this, arguments)
            };
            if (settings.one) t.one('appear', settings.data, modifiedFn);
            else t.bind('appear', settings.data, modifiedFn);
            w.scroll(check);
            $.fn.appear.checks.push(check);
            (check)()
        })
    };
    $.extend($.fn.appear, {
        checks: [],
        timeout: null,
        checkAll: function() {
            var length = $.fn.appear.checks.length;
            if (length > 0)
                while (length--)($.fn.appear.checks[length])();
        },
        run: function() {
            if ($.fn.appear.timeout) clearTimeout($.fn.appear.timeout);
            $.fn.appear.timeout = setTimeout($.fn.appear.checkAll, 20)
        }
    });
    $.each(['append', 'prepend', 'after', 'before', 'attr', 'removeAttr', 'addClass', 'removeClass', 'toggleClass', 'remove', 'css', 'show', 'hide'], function(i, n) {
        var old = $.fn[n];
        if (old) {
            $.fn[n] = function() {
                var r = old.apply(this, arguments);
                $.fn.appear.run();
                return r
            }
        }
    })
})(jQuery);

function _typeof(e) {
    return (_typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(e) {
        return typeof e
    } : function(e) {
        return e && "function" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? "symbol" : typeof e
    })(e)
}

function ownKeys(t, e) {
    var n, i = Object.keys(t);
    return Object.getOwnPropertySymbols && (n = Object.getOwnPropertySymbols(t), e && (n = n.filter(function(e) {
        return Object.getOwnPropertyDescriptor(t, e).enumerable
    })), i.push.apply(i, n)), i
}

function _objectSpread(t) {
    for (var e = 1; e < arguments.length; e++) {
        var n = null != arguments[e] ? arguments[e] : {};
        e % 2 ? ownKeys(Object(n), !0).forEach(function(e) {
            _defineProperty(t, e, n[e])
        }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(t, Object.getOwnPropertyDescriptors(n)) : ownKeys(Object(n)).forEach(function(e) {
            Object.defineProperty(t, e, Object.getOwnPropertyDescriptor(n, e))
        })
    }
    return t
}

function _defineProperty(e, t, n) {
    return (t = _toPropertyKey(t)) in e ? Object.defineProperty(e, t, {
        value: n,
        enumerable: !0,
        configurable: !0,
        writable: !0
    }) : e[t] = n, e
}

function _toPropertyKey(e) {
    e = _toPrimitive(e, "string");
    return "symbol" == _typeof(e) ? e : e + ""
}

function _toPrimitive(e, t) {
    if ("object" != _typeof(e) || !e) return e;
    var n = e[Symbol.toPrimitive];
    if (void 0 === n) return ("string" === t ? String : Number)(e);
    n = n.call(e, t || "default");
    if ("object" != _typeof(n)) return n;
    throw new TypeError("@@toPrimitive must return a primitive value.")
}

function haObserveTarget(e, n) {
    new IntersectionObserver(function(e, t) {
        e.forEach(function(e) {
            e.isIntersecting && n(e)
        })
    }, 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : {}).observe(e)
}(c => {
    var d = c(window);

    function h(i, a, o) {
        var r;
        return function() {
            var e = this,
                t = arguments,
                n = o && !r;
            clearTimeout(r), r = setTimeout(function() {
                r = null, o || i.apply(e, t)
            }, a), n && i.apply(e, t)
        }
    }

    function u(e, t) {
        var e = e.find(".hajs-filter"),
            n = e.data("default-filter");
        e.length && (e.on("click.onFilterNav", "button", function(e) {
            e.stopPropagation();
            e = c(this);
            e.addClass("ha-filter__item--active").siblings().removeClass("ha-filter__item--active"), t(e.data("filter"))
        }), e.find('[data-filter="' + n + '"]').click())
    }

    function g(e) {
        var t, n, i;
        e.$element.on("click", e.selector, function(e) {
            e.preventDefault()
        }), c.fn.magnificPopup && (e.isEnabled ? (t = c(window).width(), n = elementorFrontendConfig.breakpoints.md, i = elementorFrontendConfig.breakpoints.lg, e.$element.find(e.selector).magnificPopup({
            key: e.key,
            type: "image",
            image: {
                titleSrc: function(e) {
                    return e.el.attr("title") ? e.el.attr("title") : e.el.find("img").attr("alt")
                }
            },
            gallery: {
                enabled: !0,
                preload: [1, 2]
            },
            zoom: {
                enabled: !0,
                duration: 300,
                easing: "ease-in-out",
                opener: function(e) {
                    return e.is("img") ? e : e.find("img")
                }
            },
            disableOn: function() {
                return !(e.disableOnMobile && t < n || e.disableOnTablet && n <= t && t < i)
            }
        })) : c.magnificPopup.close())
    }

    function f(e) {
        var t = e.find(".hajs-image-comparison"),
            n = t.getHappySettings();
        n[{
            on_hover: "move_slider_on_hover",
            on_swipe: "move_with_handle_only",
            on_click: "click_to_move"
        }[n.move_handle || "on_swipe"]] = !0, delete n.move_handle, t.imagesLoaded().done(function() {
            t.twentytwenty(n);
            var e = setTimeout(function() {
                d.trigger("resize.twentytwenty"), clearTimeout(e)
            }, 400)
        })
    }
    c.fn.getHappySettings = function() {
        return this.data("happy-settings")
    }, d.on("elementor/frontend/init", function() {
        function e(e) {
            e.hasClass("elementor-element-edit-mode") && e.addClass("ha-has-bg-overlay")
        }
        var t = elementorModules.frontend.handlers.Base,
            n = t.extend({
                bindEvents: function() {
                    this.removeArrows(), this.run()
                },
                removeArrows: function() {
                    var e = this;
                    this.elements.$container.on("init", function() {
                        e.elements.$container.siblings().hide()
                    })
                },
                getDefaultSettings: function() {
                    return {
                        autoplay: !0,
                        arrows: !1,
                        checkVisible: !1,
                        container: ".hajs-slick",
                        dots: !1,
                        infinite: !0,
                        rows: 0,
                        slidesToShow: 1,
                        prevArrow: c("<div />").append(this.findElement(".slick-prev").clone().show()).html(),
                        nextArrow: c("<div />").append(this.findElement(".slick-next").clone().show()).html()
                    }
                },
                getDefaultElements: function() {
                    return {
                        $container: this.findElement(this.getSettings("container"))
                    }
                },
                onElementChange: h(function() {
                    this.elements.$container.slick("unslick"), this.run()
                }, 200),
                getSlickSettings: function() {
                    var e = 1 == c('html[dir="rtl"]').length || c("body").hasClass("rtl");
                    "yes" == this.getElementSettings("vertical") && (e = !1);
                    var t = {
                        fade: this.$element.hasClass("ha-slider") ? "fade" === this.getElementSettings("slides_transition") : "fade" === this.getElementSettings("slides_transition") && 1 === parseInt(this.getElementSettings("slides_to_show")),
                        infinite: !!this.getElementSettings("loop"),
                        autoplay: !!this.getElementSettings("autoplay"),
                        autoplaySpeed: this.getElementSettings("autoplay_speed"),
                        speed: this.getElementSettings("animation_speed"),
                        centerMode: !!this.getElementSettings("center"),
                        vertical: !!this.getElementSettings("vertical"),
                        rtl: e
                    };
                    switch (this.getElementSettings("navigation")) {
                        case "arrow":
                            t.arrows = !0;
                            break;
                        case "dots":
                            t.dots = !0;
                            break;
                        case "both":
                            t.arrows = !0, t.dots = !0
                    }
                    e = !!this.getElementSettings("slides_to_scroll");
                    return t.slidesToShow = parseInt(this.getElementSettings("slides_to_show")) || 1, t.slidesToScroll = e && parseInt(this.getElementSettings("slides_to_show")) || 1, t.responsive = [{
                        breakpoint: elementorFrontend.config.breakpoints.lg,
                        settings: {
                            slidesToShow: parseInt(this.getElementSettings("slides_to_show_tablet")) || t.slidesToShow,
                            slidesToScroll: e ? parseInt(this.getElementSettings("slides_to_show_tablet")) || t.slidesToShow : 1
                        }
                    }, {
                        breakpoint: elementorFrontend.config.breakpoints.md,
                        settings: {
                            slidesToShow: parseInt(this.getElementSettings("slides_to_show_mobile")) || parseInt(this.getElementSettings("slides_to_show_tablet")) || t.slidesToShow,
                            slidesToScroll: e ? parseInt(this.getElementSettings("slides_to_show_mobile")) || parseInt(this.getElementSettings("slides_to_show_tablet")) || t.slidesToShow : 1
                        }
                    }], c.extend({}, this.getSettings(), t)
                },
                run: function() {
                    this.elements.$container.slick(this.getSlickSettings())
                }
            }),
            i = t.extend({
                onInit: function() {
                    t.prototype.onInit.apply(this, arguments), this.run(), this.runFilter(), d.on("resize", h(this.run.bind(this), 100))
                },
                getLayoutMode: function() {
                    var e = this.getElementSettings("layout");
                    return "even" === e ? "masonry" : e
                },
                getDefaultSettings: function() {
                    return {
                        itemSelector: ".ha-image-grid__item",
                        percentPosition: !0,
                        layoutMode: this.getLayoutMode()
                    }
                },
                getDefaultElements: function() {
                    return {
                        $container: this.findElement(".hajs-isotope")
                    }
                },
                getLightBoxSettings: function() {
                    return {
                        key: "imagegrid",
                        $element: this.$element,
                        selector: ".ha-js-lightbox",
                        isEnabled: !!this.getElementSettings("enable_popup"),
                        disableOnTablet: !!this.getElementSettings("disable_lightbox_on_tablet"),
                        disableOnMobile: !!this.getElementSettings("disable_lightbox_on_mobile")
                    }
                },
                runFilter: function() {
                    var t = this,
                        n = this.getLightBoxSettings();
                    u(this.$element, function(e) {
                        t.elements.$container.isotope({
                            filter: e
                        }), "*" !== e && (n.selector = e), g(n)
                    })
                },
                onElementChange: function(e) {
                    -1 !== ["layout", "image_height", "columns", "image_margin", "enable_popup"].indexOf(e) && this.run()
                },
                run: function() {
                    var e = this;
                    e.elements.$container.isotope(e.getDefaultSettings()).imagesLoaded().progress(function() {
                        e.elements.$container.isotope("layout")
                    }), g(e.getLightBoxSettings())
                }
            }),
            a = t.extend({
                onInit: function() {
                    t.prototype.onInit.apply(this, arguments), this.run(), this.runFilter(), d.on("resize", h(this.run.bind(this), 100))
                },
                getDefaultSettings: function() {
                    var e = {
                            rowHeight: +this.getElementSettings("row_height.size") || 150,
                            lastRow: this.getElementSettings("last_row"),
                            margins: +this.getElementSettings("margins.size"),
                            captions: !!this.getElementSettings("show_caption")
                        },
                        t = {};
                    return "yes" == this.getElementSettings("max_row_height") && (t = {
                        maxRowHeight: +this.getElementSettings("row_height.size") || 150
                    }), c.extend(e, t)
                },
                getDefaultElements: function() {
                    return {
                        $container: this.findElement(".hajs-justified-grid")
                    }
                },
                getLightBoxSettings: function() {
                    return {
                        key: "justifiedgallery",
                        $element: this.$element,
                        selector: ".ha-js-lightbox",
                        isEnabled: !!this.getElementSettings("enable_popup"),
                        disableOnTablet: !!this.getElementSettings("disable_lightbox_on_tablet"),
                        disableOnMobile: !!this.getElementSettings("disable_lightbox_on_mobile")
                    }
                },
                runFilter: function() {
                    var t = this,
                        n = this.getLightBoxSettings(),
                        i = {
                            lastRow: this.getElementSettings("last_row")
                        };
                    u(t.$element, function(e) {
                        "*" !== e && (i.lastRow = "nojustify", n.selector = e), i.filter = e, t.elements.$container.justifiedGallery(i), g(n)
                    })
                },
                onElementChange: function(e) {
                    -1 !== ["row_height", "max_row_height", "last_row", "margins", "show_caption", "enable_popup"].indexOf(e) && this.run()
                },
                run: function() {
                    this.elements.$container.justifiedGallery(this.getDefaultSettings()), g(this.getLightBoxSettings())
                }
            }),
            o = t.extend({
                onInit: function() {
                    t.prototype.onInit.apply(this, arguments), this.wrapper = this.$element.find(".ha-news-ticker-wrapper"), this.run()
                },
                onElementChange: function(e) {
                    "item_space" !== e && "title_typography_font_size" !== e || this.run()
                },
                run: function() {
                    var e, t, n, i, a, o, r, s;
                    0 != this.wrapper.length && (i = this.wrapper.innerHeight(), s = this.wrapper.innerWidth(), t = (e = this.wrapper.find(".ha-news-ticker-container")).find(".ha-news-ticker-item"), i = "scroll" + (n = this.wrapper.data("scroll-direction")) + parseInt(i) + parseInt(s), a = this.wrapper.data("duration"), o = "normal", r = 10, s = {
                        transform: "translateX(0" + s + "px)"
                    }, "right" === n && (o = "reverse"), t.each(function() {
                        r += c(this).outerWidth(!0)
                    }), e.css({
                        width: r,
                        display: "flex"
                    }), c.keyframe.define([{
                        name: i,
                        "0%": s,
                        "100%": {
                            transform: "translateX(-101%)"
                        }
                    }]), e.playKeyframe({
                        name: i,
                        duration: a.toString() + "ms",
                        timingFunction: "linear",
                        delay: "0s",
                        iterationCount: "infinite",
                        direction: o,
                        fillMode: "none",
                        complete: function() {}
                    }))
                }
            }),
            r = t.extend({
                onInit: function() {
                    t.prototype.onInit.apply(this, arguments), this.wrapper = this.$element.find(".ha-post-tab"), this.run()
                },
                run: function() {
                    var r = this.wrapper.find(".ha-post-tab-filter").find("li"),
                        e = this.wrapper.data("event"),
                        s = this.wrapper.data("query-args");
                    r.on(e, h(function(e) {
                        e.preventDefault();
                        var e = c(this),
                            n = e.data("term"),
                            t = e.closest(".ha-post-tab").find(".ha-post-tab-content"),
                            i = t.find(".ha-post-tab-loading"),
                            a = t.find(".ha-post-tab-item-wrapper"),
                            o = !1;
                        0 === i.length && (r.removeClass("active"), a.removeClass("active"), e.addClass("active"), a.each(function() {
                            var e = c(this),
                                t = e.data("term");
                            n === t && (e.addClass("active"), o = !0)
                        }), !1 === o) && c.ajax({
                            url: HappyLocalize.ajax_url,
                            type: "POST",
                            data: {
                                action: "ha_post_tab_action",
                                security: HappyLocalize.nonce,
                                post_tab_query: s,
                                term_id: n
                            },
                            beforeSend: function() {
                                t.append('<span class="ha-post-tab-loading"><i class="eicon-spinner eicon-animation-spin"></i></span>')
                            },
                            success: function(e) {
                                t.find(".ha-post-tab-loading").remove(), t.append(e)
                            },
                            error: function(e) {}
                        })
                    }, 200))
                }
            }),
            i = (elementorFrontend.hooks.addAction("frontend/element_ready/ha-slider.default", function(e) {
                elementorFrontend.elementsHandler.addHandler(n, {
                    $element: e
                })
            }), elementorFrontend.hooks.addAction("frontend/element_ready/ha-carousel.default", function(e) {
                elementorFrontend.elementsHandler.addHandler(n, {
                    $element: e
                })
            }), elementorFrontend.hooks.addAction("frontend/element_ready/ha-horizontal-timeline.default", function(e) {
                elementorFrontend.elementsHandler.addHandler(n, {
                    $element: e,
                    autoplay: !1,
                    container: ".ha-horizontal-timeline-wrapper",
                    navigation: "arrow",
                    arrows: !0
                });
                e = e.find(".ha-horizontal-timeline-image");
                void 0 !== e.data("mfp-src") && e.magnificPopup({
                    type: "image",
                    gallery: {
                        enabled: !0
                    }
                })
            }), c("body").on("click.onWrapperLink", "[data-ha-element-link]", function() {
                var e, t, n = c(this),
                    i = n.data("ha-element-link"),
                    n = n.data("id"),
                    a = document.createElement("a");
                a.id = "happy-addons-wrapper-link-" + n, a.href = i.url, a.target = i.is_external ? "_blank" : "_self", a.rel = i.nofollow ? "nofollow noreferer" : "", a.style.display = "none", document.body.appendChild(a), (e = document.getElementById(a.id)).click(), t = setTimeout(function() {
                    document.body.removeChild(e), clearTimeout(t)
                })
            }), c.each({
                "ha-image-compare.default": f,
                "ha-number.default": function(t) {
                    haObserveTarget(t[0], function() {
                        var e = t.find(".ha-number-text");
                        e.numerator(e.data("animation"))
                    })
                },
                "ha-skills.default": function(e) {
                    haObserveTarget(e[0], function() {
                        e.find(".ha-skill-level").each(function() {
                            var e = c(this),
                                t = e.find(".ha-skill-level-text"),
                                n = e.data("level");
                            e.animate({
                                width: n + "%"
                            }, 500), t.numerator({
                                toValue: n + "%",
                                duration: 1300,
                                onStep: function() {
                                    t.append("%")
                                }
                            })
                        })
                    })
                },
                "ha-fun-factor.default": function(t) {
                    haObserveTarget(t[0], function() {
                        var e = t.find(".ha-fun-factor__content-number");
                        e.numerator(e.data("animation"))
                    })
                },
                "ha-bar-chart.default": function(i) {
                    haObserveTarget(i[0], function() {
                        var e = i.find(".ha-bar-chart-container"),
                            t = i.find("#ha-bar-chart"),
                            n = e.data("settings");
                        e.length && new Chart(t, n)
                    })
                },
                "ha-twitter-feed.default": function(a) {
                    var e = a.find(".ha-twitter-load-more"),
                        o = a.find(".ha-tweet-items");
                    e.on("click", function(e) {
                        e.preventDefault();
                        var t = c(this),
                            e = t.data("settings"),
                            n = t.data("total"),
                            i = a.find(".ha-tweet-item").length;
                        c.ajax({
                            url: HappyLocalize.ajax_url,
                            type: "POST",
                            data: {
                                action: "ha_twitter_feed_action",
                                security: HappyLocalize.nonce,
                                query_settings: e,
                                loaded_item: i
                            },
                            success: function(e) {
                                i < n ? c(e).appendTo(o) : (t.text("All Loaded").addClass("loaded"), setTimeout(function() {
                                    t.css({
                                        display: "none"
                                    })
                                }, 800))
                            },
                            error: function(e) {}
                        })
                    })
                },
                "ha-threesixty-rotation.default": function(i) {
                    var e, a = i.find(".ha-threesixty-rotation-inner"),
                        t = a.data("selector"),
                        n = a.data("autoplay"),
                        o = i.find(".ha-threesixty-rotation-magnify"),
                        r = i.find(".ha-threesixty-rotation-360img"),
                        s = o.data("zoom"),
                        l = i.find(".ha-threesixty-rotation-play"),
                        d = circlr(t, {
                            play: !0
                        });
                    "on" === n ? ((e = i.find(".ha-threesixty-rotation-autoplay")).on("click", function(e) {
                        e.preventDefault(), d.play(), r.remove()
                    }), setTimeout(function() {
                        e.trigger("click"), e.remove()
                    }, 1e3)) : l.on("click", function(e) {
                        e.preventDefault();
                        e = c(this).find("i");
                        e.hasClass("hm-play-button") ? (e.removeClass("hm-play-button"), e.addClass("hm-stop"), d.play()) : (e.removeClass("hm-stop"), e.addClass("hm-play-button"), d.stop()), r.remove()
                    }), o.on("click", function(e) {
                        i.find("img").each(function() {
                            -1 !== c(this).attr("style").indexOf("block") && (HappySimplaMagnify(c(this)[0], s), o.css("display", "none"), r.remove())
                        })
                    }), c(document).on("click", function(e) {
                        var e = c(e.target),
                            t = i.find(".ha-img-magnifier-glass"),
                            n = o.find("i");
                        t.length && e[0] !== n[0] && (t.remove(), o.removeAttr("style")), e[0] === a[0] && r.remove()
                    }), a.on("mouseup mousedown touchstart touchend", function(e) {
                        r.remove()
                    })
                },
                "ha-data-table.default": function(e) {
                    var n = e.find(".ha-table__head-column-cell");
                    e.find(".ha-table__body-row").each(function(e, t) {
                        c(t).find(".ha-table__body-row-cell").each(function(e, t) {
                            c(t).prepend('<div class="ha-table__head-column-cell">' + n.eq(e).html() + "</div>")
                        })
                    })
                },
                section: e,
                column: e,
                "ha-event-calendar.default": function(b) {
                    var e = b.find(".ha-ec"),
                        S = b.find(".ha-ec-popup-wrapper"),
                        t = b.find(".ha-ec-popup-close"),
                        n = e.data("initialview"),
                        i = e.data("firstday"),
                        a = e.data("locale"),
                        x = e.data("show-popup"),
                        k = e.data("allday-text"),
                        C = e.data("time-format"),
                        o = window["HaECjson" + b.data("id")];
                    void 0 !== o && (new FullCalendar.Calendar(e[0], {
                        stickyHeaderDates: !1,
                        locale: a,
                        headerToolbar: {
                            left: "prev,next today",
                            center: "title",
                            right: "dayGridMonth,timeGridWeek,timeGridDay,listMonth"
                        },
                        initialView: n,
                        firstDay: i,
                        eventTimeFormat: {
                            hour: "numeric",
                            minute: "2-digit",
                            meridiem: "short"
                        },
                        events: o,
                        height: "auto",
                        eventClick: function(e) {
                            if ("yes" == x) {
                                var t = function(e) {
                                        return new Date(e)
                                    },
                                    n = function(e) {
                                        var t, n, i = 1 < arguments.length && void 0 !== arguments[1] ? arguments[1] : "g:i a";
                                        return t = (e = e).getHours(), n = e.getMinutes(), (e = new Date).setHours(t), e.setMinutes(n), t = {}, i.includes("H") ? (t.hour = "2-digit", t.hour12 = !1) : (t.hour = "numeric", t.hour12 = !0, (i.includes("a") || i.includes("A")) && (t.hour = "numeric")), t.minute = "2-digit", n = new Intl.DateTimeFormat("en-US", t).format(e), n = i.includes("a") ? n.toLowerCase() : n
                                    },
                                    i = (e.jsEvent.preventDefault(), e.view.calendar.currentData.currentDate.toString(), e.event.allDay),
                                    a = e.event.title,
                                    o = e.event.startStr,
                                    r = e.event.endStr,
                                    s = e.event.extendedProps.guest,
                                    l = e.event.extendedProps.location,
                                    d = e.event.extendedProps.description,
                                    c = e.event.url,
                                    h = e.event.extendedProps.image,
                                    u = S.find(".ha-ec-event-title"),
                                    g = S.find(".ha-ec-event-time-wrap"),
                                    f = S.find(".ha-ec-event-guest-wrap"),
                                    p = S.find(".ha-ec-event-location-wrap"),
                                    m = S.find(".ha-ec-popup-desc"),
                                    y = S.find(".ha-ec-popup-readmore-link"),
                                    v = S.find(".ha-ec-popup-image");
                                v.css("display", "none"), u.css("display", "none"), g.css("display", "none"), f.css("display", "none"), p.css("display", "none"), m.css("display", "none"), y.css("display", "none"), S.addClass("ha-ec-popup-ready"), h && (v.removeAttr("style"), v.find("img").attr("src", h), v.find("img").attr("alt", a)), a && (u.removeAttr("style"), u.text(a)), s && (f.removeAttr("style"), f.find("span.ha-ec-event-guest").text(s)), l && (p.removeAttr("style"), p.find("span.ha-ec-event-location").text(l)), d && (m.removeAttr("style"), m.html(d)), !0 !== i ? (g.removeAttr("style"), o = Date.parse(t(o)), r = Date.parse(t(r)), h = n(t(o), C), v = "Invalid Data", o < r && (v = n(t(r), C)), g.find("span.ha-ec-event-time").text(h + " - " + v)) : (g.removeAttr("style"), g.find("span.ha-ec-event-time").text(k)), c && (y.removeAttr("style"), y.attr("href", c), "on" === e.event.extendedProps.external && y.attr("target", "_blank"), "on" === e.event.extendedProps.nofollow) && y.attr("rel", "nofollow")
                            } else {
                                var w, _;
                                if (e.event.url && e.event.extendedProps.external) return e.jsEvent.preventDefault(), u = b.data("id"), (a = document.createElement("a")).id = "happy-even-calender-link-" + u, a.href = e.event.url, a.target = e.event.extendedProps.external ? "_blank" : "_self", a.rel = e.event.extendedProps.nofollow ? "nofollow noreferer" : "", a.style.display = "none", document.body.appendChild(a), (w = document.getElementById(a.id)).click(), _ = setTimeout(function() {
                                    document.body.removeChild(w), clearTimeout(_)
                                }), !1
                            }
                        },
                        dateClick: function(e) {
                            itemDate = e.date.toUTCString()
                        }
                    }).render(), b.find(".ha-ec-popup-wrapper").on("click", function(e) {
                        e.stopPropagation(), e.target !== e.currentTarget && e.target != t[0] && e.target != t.find(".eicon-editor-close")[0] || S.addClass("ha-ec-popup-removing").removeClass("ha-ec-popup-ready")
                    }))
                },
                "ha-mailchimp.default": function(e) {
                    var n = e.find(".ha-mailchimp-form"),
                        i = e.find(".ha-mc-response-message"),
                        a = n.data("success-message");
                    n.on("submit", function(e) {
                        e.preventDefault();
                        e = {
                            action: "ha_mailchimp_ajax",
                            security: HappyLocalize.nonce,
                            subscriber_info: n.serialize(),
                            list_id: n.data("list-id"),
                            post_id: n.parent().data("post-id"),
                            widget_id: n.parent().data("widget-id")
                        };
                        c.ajax({
                            type: "post",
                            url: HappyLocalize.ajax_url,
                            data: e,
                            success: function(e) {
                                n.trigger("reset"), e.status ? (i.removeClass("error"), i.addClass("success"), i.text(a)) : (i.addClass("error"), i.removeClass("success"), i.text(e.msg));
                                var t = setTimeout(function() {
                                    i.removeClass("error"), i.removeClass("success"), clearTimeout(t)
                                }, 5e3)
                            },
                            error: function(e) {}
                        })
                    })
                },
                "ha-image-accordion.default": function(e) {
                    var n;
                    e.hasClass("ha-image-accordion-click") && (n = e.find(".ha-ia-item")).each(function(e, t) {
                        c(this).on("click", function(e) {
                            c(this).hasClass("active") || (n.removeClass("active"), c(this).addClass("active"))
                        })
                    })
                },
                "ha-content-switcher.default": function(e) {
                    var n, i, t, a, o, r, s, l = e.find(".ha-content-switcher-wrapper");
                    "button" == l.data("design-type") ? (n = l.find(".ha-cs-button"), i = l.find(".ha-cs-content-section"), n.each(function(e, t) {
                        c(this).on("click", function(e) {
                            e.preventDefault(), c(this).hasClass("active") || (n.removeClass("active"), c(this).addClass("active"), i.removeClass("active"), e = c(this).data("content-id"), l.find("#" + e).addClass("active"))
                        })
                    })) : (e = l.find(".ha-cs-switch.ha-input-label"), t = l.find("input.ha-cs-toggle-switch"), a = l.find(".ha-cs-switch.primary"), o = l.find(".ha-cs-switch.secondary"), r = l.find(".ha-cs-content-section.primary"), s = l.find(".ha-cs-content-section.secondary"), e.on("click", function(e) {
                        (t.is(":checked") ? (a.removeClass("active"), r.removeClass("active"), o.addClass("active"), s) : (o.removeClass("active"), s.removeClass("active"), a.addClass("active"), r)).addClass("active")
                    }))
                },
                "ha-member.default": function(e) {
                    var t, n = e.find(".ha-btn"),
                        i = e.find(".ha-member-lightbox");
                    0 < i.length && (t = i.find(".ha-member-lightbox-close"), n.on("click", function() {
                        i.addClass("ha-member-lightbox-show")
                    }), i.on("click", function(e) {
                        !i.hasClass("ha-member-lightbox-show") || e.target != i[0] && e.target != t[0] && e.target != t.find("i.eicon-editor-close")[0] || i.removeClass("ha-member-lightbox-show")
                    }))
                },
                "ha-creative-button.default": function(e) {
                    var n = e.find(".ha-creative-btn-wrap"),
                        t = n.data("magnetic"),
                        i = n.find("a.ha-creative-btn"),
                        t = ("yes" == t && (n.on("mousemove", function(e) {
                            var t = e.pageX - (n.offset().left + n.outerWidth() / 2),
                                e = e.pageY - (n.offset().top + n.outerHeight() / 2);
                            i.css("transform", "translate(" + .3 * t + "px, " + .5 * e + "px)")
                        }), n.on("mouseout", function(e) {
                            i.css("transform", "translate(0px, 0px)")
                        })), e.find(".ha-eft--expandable")),
                        a = t.find(".text");
                    0 < t.length && 0 < a.length && (a[0].addEventListener("transitionend", function() {
                        a[0].style.width && (a[0].style.width = "auto")
                    }), t[0].addEventListener("mouseenter", function(e) {
                        e.currentTarget.classList.add("hover"), a[0].style.width = "auto";
                        e = a[0].offsetWidth;
                        a[0].style.width = "0", window.getComputedStyle(a[0]).transform, a[0].style.width = "".concat(e, "px")
                    }), t[0].addEventListener("mouseleave", function(e) {
                        e.currentTarget.classList.remove("hover"), a[0].style.width = "".concat(a[0].offsetWidth, "px"), window.getComputedStyle(a[0]).transform, a[0].style.width = ""
                    }))
                },
                "ha-pdf-view.default": function(e) {
                    var t = e.data("id"),
                        e = e.find(".viewer-" + t).data("pdf-settings"),
                        t = {
                            width: e.width,
                            height: e.height,
                            page: e.page_number
                        };
                    PDFObject.embed(e.pdf_url, "#" + e.unique_id, t)
                },
                "ha-comparison-table.default": function(e) {
                    var t = e.find(".ha-comparison-table-wrapper"),
                        n = e.find(".ha-comparison-table__head"),
                        i = n.data("sticky-header"),
                        a = (e.height(), t.innerHeight()),
                        o = t.offset().top;
                    "yes" === i && d.scroll(function() {
                        var e = c(this).scrollTop();
                        o <= e ? n.addClass("table-sticky") : a < e && n.removeClass("table-sticky")
                    })
                }
            }, function(e, t) {
                elementorFrontend.hooks.addAction("frontend/element_ready/" + e, t)
            }), {
                "ha-image-grid.default": i,
                "ha-justified-gallery.default": a,
                "ha-news-ticker.default": o,
                "ha-post-tab.default": r
            }),
            s = (c.each(i, function(e, t) {
                elementorFrontend.hooks.addAction("frontend/element_ready/" + e, function(e) {
                    elementorFrontend.elementsHandler.addHandler(t, {
                        $element: e
                    })
                })
            }), elementorFrontend.hooks.addAction("frontend/element_ready/ha-navigation-menu.default", function(e) {
                var i = e.find(".ha-nav-menu");

                function t() {
                    jQuery(window).width() < 768 ? (i.removeClass("ha-navigation-menu-wrapper"), i.addClass("ha-navigation-burger-menu"), i.find(".ha-submenu-indicator-wrap").on("click", function(e) {
                        e.preventDefault();
                        e = c(this).parent("li.menu-item-has-children");
                        e && e.children("ul.sub-menu").slideToggle()
                    })) : (i.addClass("ha-navigation-menu-wrapper"), i.removeClass("ha-navigation-burger-menu"), i.find("ul.menu").removeAttr("style"), i.find("ul.sub-menu").removeAttr("style"))
                }
                jQuery(window).width() < 1025 && 767 < jQuery(window).width() && i.find(".ha-submenu-indicator-wrap").on("click", function(e) {
                    e.preventDefault();
                    e = c(this).parent("li.menu-item-has-children");
                    e && e.children("ul.sub-menu").slideToggle()
                }), i.find(".ha-menu-toggler").on("click", function(e) {
                    var t = c(this).data("humberger"),
                        n = i.find("ul.menu");
                    "open" == t ? (c(".ha-menu-open-icon").addClass("hide-icon"), c(".ha-menu-close-icon").removeClass("hide-icon"), c(".ha-menu-close-icon").addClass("show-icon"), n.slideDown()) : (c(".ha-menu-close-icon").addClass("hide-icon"), c(".ha-menu-open-icon").removeClass("hide-icon"), c(".ha-menu-open-icon").addClass("show-icon"), n.slideUp())
                }), t(), d.on("resize", h(t, 100))
            }), elementorFrontend.hooks.addAction("frontend/element_ready/ha-age-gate.default", function(e, t) {
                var n, i, a, o, r, s;
                elementorFrontend.isEditMode() ? (localStorage.removeItem("ha-age-gate-expire-time"), e.find(".ha-age-gate-wrapper").length && "no" == e.find(".ha-age-gate-wrapper").data("editor_mood") && e.find(".ha-age-gate-wrapper").hide()) : elementorFrontend.isEditMode() || (i = (n = e.find(".ha-age-gate-wrapper")).data("age_gate_cookies_time"), a = localStorage.getItem("ha-age-gate-expire-time"), n.closest("body").css("overflow", "hidden"), o = new Date, (r = new Date).setDate(o.getDate() + i), t("body,html,document").scrollTop(e.offset().top), s = setTimeout(function() {
                    t("body,html,document").scrollTop(t("body").offset().top), clearTimeout(s)
                }, 1e3), "" != a && null != a && new Date(o) <= new Date(a) ? (t(".ha-age-gate-wrapper").hide(), n.closest("body").css("overflow", "")) : ("" != a && null != a && new Date(o) > new Date(a) && localStorage.removeItem("ha-age-gate-expire-time"), t(".ha-age-gate-wrapper").show()), e.find(".ha-age-gate-wrapper.ha-age-gate-confirm-age").length && t(".ha-age-gate-confirm-age-btn").on("click", function() {
                    localStorage.setItem("ha-age-gate-expire-time", r), t(this).closest(".ha-age-gate-wrapper").hide(), t(this).closest("body").css("overflow", "")
                }), e.find(".ha-age-gate-wrapper.ha-age-gate-confirm-dob").length && t(".ha-age-gate-confirm-dob-btn").on("click", function() {
                    var e = new Date(Date.parse(t(this).closest(".ha-age-gate-form-body").find(".ha-age-gate-date-input").val())).getFullYear();
                    o.getFullYear() - e < t(this).closest(".ha-age-gate-wrapper").data("userbirth") ? t(this).closest(".ha-age-gate-boxes").find(".ha-age-gate-warning-msg").show() : (localStorage.setItem("ha-age-gate-expire-time", r), t(this).closest(".ha-age-gate-wrapper").hide(), t(this).closest("body").css("overflow", ""))
                }), e.find(".ha-age-gate-wrapper.ha-age-gate-confirm-by-boolean").length && (t(".ha-age-gate-wrapper .ha-age-gate-confirm-yes-btn").on("click", function() {
                    localStorage.setItem("ha-age-gate-expire-time", r), t(this).closest(".ha-age-gate-wrapper").hide(), t(this).closest("body").css("overflow", "")
                }), t(".ha-age-gate-wrapper .ha-age-gate-confirm-no-btn").on("click", function() {
                    t(this).closest(".ha-age-gate-boxes").find(".ha-age-gate-warning-msg").show()
                })))
            }), t.extend({
                onInit: function() {
                    t.prototype.onInit.apply(this, arguments), this.run()
                },
                onElementChange: h(function(e) {
                    -1 !== ["width", "title_typography_typography", "title_typography_font_size", "title_typography_line_height", "title_typography_font_weight", "sub_title_typography_typography", "sub_title_typography_font_size", "sub_title_typography_line_height", "sub_title_typography_font_weight"].indexOf(e) && this.run()
                }, 300),
                run: function() {
                    var i, e, t, n, a, o, r = this,
                        s = JSON.parse(r.$element.find(".ha-lhi-image-area").attr("data-settings")),
                        l = r.$element.find(".ha-lhi-image"),
                        d = r.$element.find(".ha-lhi-title h2"),
                        c = r.$element.find(".ha-lhi-title p"),
                        h = r.$element.find("canvas"),
                        u = s.hover_style,
                        g = s.plugin_url + "liquid-hover-image/" + s.hover_effect;
                    "custom" == s.hover_effect && (g = s.custom_effect || ""), h && h.remove(), new hoverEffect({
                        parent: l[0],
                        intensity: s.intensity,
                        image1: s.first_image,
                        image2: s.second_image,
                        displacementImage: g,
                        imagesRatio: l.height() / l.width(),
                        angle1: (s.angle - 45) * (Math.PI / 180) * -1,
                        angle2: (s.angle - 45) * (Math.PI / 180) * -1,
                        speedIn: s.speed,
                        speedOut: s.speed
                    });
                    "style-1" == u && (d.length || c.length) && (i = s.style_1_direction, d.length && (d[0].innerHTML = d[0].textContent.replace(/\S/g, "<span class='letter'>$&</span>")), c.length && c.addClass("letter"), e = [0, 0], t = [0, 0], n = [0, 0], a = [0, 0], "left" == i ? (e = [80, 0], t = [0, -80]) : "right" == i ? (e = [0, 80], t = [80, 200]) : "up" == i ? (n = [80, 0], a = [0, -80]) : "down" == i && (n = [-80, 0], a = [0, 80]), r.$element.hover(function() {
                        anime.timeline({
                            loop: !1
                        }).add({
                            targets: ".elementor-element-" + r.getID() + " .ha-lhi-title .letter",
                            translateX: e,
                            translateY: n,
                            translateZ: 0,
                            opacity: [0, 1],
                            easing: "easeOutExpo",
                            duration: 800,
                            delay: function(e, t) {
                                return 40 * t
                            }
                        })
                    }, function() {
                        anime.timeline({
                            loop: !1
                        }).add({
                            targets: ".elementor-element-" + r.getID() + " .ha-lhi-title .letter",
                            translateX: t,
                            translateY: a,
                            opacity: [1, 0],
                            duration: 850,
                            delay: function(e, t, n) {
                                return t = t, n = n, "right" == i ? 40 * (n - t) : 40 * t
                            }
                        })
                    })), "style-2" == u && (d.length || c.length) && (d.length && (o = d.find(".normal").outerHeight(), d.height(o)), c.length && (o = c.find(".normal").outerHeight(), c.height(o)), r.$element.hover(function() {
                        d.addClass("play"), c.addClass("play")
                    }, function() {
                        d.removeClass("play"), c.removeClass("play")
                    })), "style-5" == u && (d.length || c.length) && d.length && (o = d.find(".normal").outerHeight(), d.attr("style", "--ha-lhi-style-5-height:" + o + "px"))
                }
            })),
            l = (elementorFrontend.hooks.addAction("frontend/element_ready/ha-liquid-hover-image.default", function(e) {
                elementorFrontend.elementsHandler.addHandler(s, {
                    $element: e
                })
            }), t.extend({
                onInit: function() {
                    t.prototype.onInit.apply(this, arguments), this.run()
                },
                onElementChange: h(function(e) {
                    -1 !== ["text_scroll_type"].indexOf(e) && this.run()
                }, 300),
                getReadySettings: function() {
                    var e = {},
                        t = this.getElementSettings("text_scroll_type");
                    return t && (e.scroll_type = t), c.extend({}, this.getSettings(), e)
                },
                run: function() {
                    var e = this.getReadySettings(),
                        t = this.$element,
                        n = t.find(".ha-split-lines")[0],
                        i = [],
                        a = e.scroll_type;
                    "undefined" == typeof gsap || "undefined" == typeof ScrollTrigger || (gsap.registerPlugin(ScrollTrigger), n.length <= 0) || ("horizontal_line_mask" === a || "vertical_line_mask" === a ? (c(n).each(function(e) {
                        var t = c(this);
                        i[e] = new SplitType(t, {
                            types: "lines, words"
                        })
                    }), c(n).find(".line").each(function(e) {
                        c(this).append("<div class='ha-line-mask'></div>")
                    })) : "horizontal_line_highlight" === a ? c(n).each(function(e) {
                        var t = c(this);
                        i[e] = new SplitType(t, {
                            types: "words, chars"
                        })
                    }) : new SplitType(n, {
                        types: "lines, words"
                    }), "horizontal_line_mask" === a || "vertical_line_mask" === a ? t.find(".line").each(function(e, t) {
                        var n, i = c(t).find(".ha-line-mask");
                        i.length <= 0 || (c(t).addClass("mask-active"), n = "horizontal_line_mask" === a ? {
                            width: "0%"
                        } : {
                            height: "0%"
                        }, gsap.timeline({
                            scrollTrigger: _objectSpread({
                                trigger: t
                            }, {
                                start: "horizontal_line_mask" === a ? "bottom 50%" : "bottom center",
                                end: "bottom center",
                                scrub: 3
                            })
                        }).to(i, _objectSpread(_objectSpread({}, n), {}, {
                            duration: 1
                        })))
                    }) : "horizontal_line_highlight" === a ? (e = t.find(".word .char"), n = t.find(".ha-split-lines"), 0 <= e.length && 0 <= n.length && gsap.to(e, {
                        scrollTrigger: {
                            trigger: n,
                            start: "top 40%",
                            end: "bottom center",
                            scrub: 1
                        },
                        opacity: 1,
                        duration: 2,
                        stagger: 1
                    })) : t.find(".line").each(function() {
                        var e = this;
                        gsap.to(this, {
                            scrollTrigger: {
                                trigger: this,
                                start: "top 50%",
                                end: "bottom 50%",
                                onEnter: function() {
                                    c(e).addClass("highlight")
                                },
                                onLeaveBack: function() {
                                    c(e).removeClass("highlight")
                                }
                            }
                        })
                    }))
                }
            }));
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-text-scroll.default", function(e) {
            elementorFrontend.elementsHandler.addHandler(l, {
                $element: e
            })
        })
    })
})(jQuery);
"use strict";

function _typeof(obj) {
    "@babel/helpers - typeof";
    return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function(obj) {
        return typeof obj
    } : function(obj) {
        return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj
    }, _typeof(obj)
}
window.Happy = window.Happy || {};
(function($, Happy, w) {
    var $window = $(w);
    $(function() {
        var $container = $('.ha-fsb-container');
        if ($container.length > 0) {
            if (window.history && window.history.pushState) {
                ha_manage_fsb()
            };
            $(document.body).on("added_to_cart", function(event, fragments, cart_hash, $button) {
                ha_manage_fsb()
            });
            $(document.body).on("removed_from_cart", function(event, fragments, cart_hash, $button) {
                ha_manage_fsb()
            })
        }

        function ha_manage_fsb() {
            $.ajax({
                url: HappyProLocalize.ajax_url,
                type: "POST",
                data: {
                    action: "ha_get_cart_subtotal_action",
                    security: HappyProLocalize.nonce
                },
                success: function success(response) {
                    var $data = JSON.parse(response);
                    var $subTotalAmount = $data.subTotalAmount;
                    if ($data.status == 'true' && $subTotalAmount >= 0) {
                        var $container = $('.ha-fsb-container');
                        var $elem = $container.find('.ha-fsb-size');
                        var $settings = $container.data('fsb_settings');
                        if ($settings != undefined) {
                            var $aimationSpeed = $settings.hasOwnProperty('ha_fsb_animation_speed') ? $settings.ha_fsb_animation_speed : 15;
                            var $progressType = $settings.hasOwnProperty('progress_type') ? $settings.progress_type : 'percent';
                            var $currencySymbol = $settings.hasOwnProperty('currencySymbol') && $progressType == 'percent' ? '%' : $settings.currencySymbol;
                            var $targetAmount = $settings.hasOwnProperty('target_amount') ? $settings.target_amount : 0;
                            var $totalPercent = 0;
                            if (parseFloat($subTotalAmount) >= parseFloat($targetAmount)) {
                                $totalPercent = 100
                            } else {
                                if (parseFloat($targetAmount) == 0) {
                                    $totalPercent = 0
                                } else {
                                    $totalPercent = parseFloat($subTotalAmount) * 100 / parseFloat($targetAmount)
                                }
                            }
                            $totalPercent = parseFloat(Math.round($totalPercent)) >= 100 ? 100 : parseFloat(Math.round($totalPercent));
                            var $progressText = $progressType == 'percent' ? $totalPercent : $subTotalAmount;
                            var defaultWidth = $(window).width() <= 768 ? 12 : 5;
                            if ($totalPercent > 0) {
                                $elem.text($progressText + $currencySymbol);
                                $elem.css({
                                    'width': $totalPercent + "%",
                                    'transition': 'width ' + $aimationSpeed + 'ms ease-in-out'
                                })
                            }
                            fsbMessageControl($totalPercent);
                            if ($progressText <= 0) {
                                $elem.css('width', +defaultWidth + "%");
                                $elem.text('0' + $currencySymbol)
                            }
                        }
                    }
                },
                error: function error(_error) {}
            })
        };

        function fsbMessageControl() {
            var totalPercent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
            var fsbContainer = $('.ha-fsb-container');
            var settings = fsbContainer.data('fsb_settings');
            if (fsbContainer && settings) {
                if (totalPercent >= 100) {
                    $('.ha-fsb-inner-content').html(settings.fsb_success_message)
                } else {
                    $('.ha-fsb-inner-content').html(settings.announcement)
                }
            }
        };

        function log(event, item, level) {
            $(document).on(event, item, level)
        }
        var e;
        e = $(".ha-menu-container");
        $(e).each(function() {
            var button = $(this);
            if ("yes" != button.attr("ha-dom-added")) {
                if (0 === button.parents(".elementor-widget-ha-nav-menu").length) {
                    button.parents(".ha-wid-con").addClass("ha_menu_responsive_tablet")
                }
                button.attr("ha-dom-added", "yes")
            }
        });
        $(".ha-dropdown-has > a").on("click", function(event) {
            if (!$(this).parents(".ha-navbar-nav, .ha-vertical-navbar-nav").hasClass("submenu-click-on-icon") || $(event.target).hasClass("ha-submenu-indicator-wrap")) {
                event.preventDefault();
                var $oElemDragged = $(this).parent().find(">.ha-dropdown, >.ha-megamenu-panel");
                $oElemDragged.find(".ha-dropdown-open").removeClass("ha-dropdown-open");
                if ($oElemDragged.hasClass("ha-dropdown-open")) {
                    $oElemDragged.removeClass("ha-dropdown-open")
                } else {
                    $oElemDragged.addClass("ha-dropdown-open")
                }
            }
        });
        $(".ha-navbar-nav li a").on("click", function(event) {
            if (!$(this).attr("href") && "ha-submenu-indicator-wrap" == event.target.className) {
                var thirdItem = $(this);
                var lnk = thirdItem.get(0);
                var oldUrl = lnk.href;
                var sepor = oldUrl.indexOf("#");
                var s = thirdItem.parents(".ha-menu-container").hasClass("ha-nav-menu-one-page-yes");
                if (-1 !== sepor && oldUrl.length > 1 && s && lnk.pathname == window.location.pathname) {
                    event.preventDefault();
                    thirdItem.parents(".ha-wid-con").find(".ha-menu-close").trigger("click")
                }
            }
        })
    });

    function debounce(func, wait, immediate) {
        var timeout;
        return function() {
            var context = this,
                args = arguments;
            var later = function later() {
                timeout = null;
                if (!immediate) func.apply(context, args)
            };
            var callNow = immediate && !timeout;
            clearTimeout(timeout);
            timeout = setTimeout(later, wait);
            if (callNow) func.apply(context, args)
        }
    }
    $window.on("elementor/frontend/init", function() {
        if (typeof haDisplayCondition != "undefined" && haDisplayCondition.status == "true") {
            var HappyLocalTimeZone = new Date().toString().match(/([A-Z]+[\+-][0-9]+.*)/)[1];
            var ha_secure = document.location.protocol === "https:" ? "secure" : "";
            document.cookie = "HappyLocalTimeZone=" + HappyLocalTimeZone + ";SameSite=Strict;" + ha_secure
        } else {
            var now = new Date();
            now.setTime(now.getTime() - 1000 * 3600);
            document.cookie = "HappyLocalTimeZone=;expires=" + now.toUTCString() + ";"
        }
        var CountDown = function CountDown($scope) {
            var $item = $scope.find(".ha-countdown");
            var $countdown_item = $item.find(".ha-countdown-item");
            var $end_action = $item.data("end-action");
            var $redirect_link = $item.data("redirect-link");
            var $end_action_div = $item.find(".ha-countdown-end-action");
            var $editor_mode_on = $scope.hasClass("elementor-element-edit-mode");
            $item.countdown({
                end: function end() {
                    if (("message" === $end_action || "img" === $end_action) && $end_action_div !== undefined) {
                        $countdown_item.css("display", "none");
                        $end_action_div.css("display", "block")
                    } else if ("url" === $end_action && $redirect_link !== undefined && $editor_mode_on !== !0) {
                        window.location.replace($redirect_link)
                    }
                }
            })
        };
        var SliderBase = elementorModules.frontend.handlers.Base.extend({
            onInit: function onInit() {
                elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
                this.run()
            },
            getDefaultSettings: function getDefaultSettings() {
                return {
                    selectors: {
                        container: ".ha-slider-container"
                    }
                }
            },
            getDefaultElements: function getDefaultElements() {
                var selectors = this.getSettings("selectors");
                return {
                    $container: this.$element.find(selectors.container)
                }
            },
            getReadySettings: function getReadySettings() {
                var $this = this;
                var slidesPerView = parseInt(this.getElementSettings("slides_per_view")) || 1;
                if (this.getElementSettings("thumbs_navigation") == "yes") {
                    var selectorThumbs = this.elements.$container.find(".ha-slider-gallery-thumbs");
                    var haGallaryThumbs = new HaSwiper(selectorThumbs[0], {
                        spaceBetween: this.getElementSettings("space_between_thumbs"),
                        freeMode: !0,
                        watchSlidesVisibility: !0,
                        watchSlidesProgress: !0
                    })
                }
                var tempEffect = this.getElementSettings("effect");
                if (tempEffect == 'cube') {
                    tempEffect = !1
                }
                var settings = {
                    direction: this.getElementSettings("slider_direction"),
                    slidesPerView: slidesPerView || 1,
                    spaceBetween: parseInt(this.getElementSettings("space_between_slides")) || 0,
                    loop: !!(this.getElementSettings("infinity_loop") || !1),
                    speed: parseInt(this.getElementSettings("effect_speed")),
                    effect: this.getElementSettings("slider_type") == "multiple" ? this.getElementSettings("effect_multiple") : tempEffect,
                    ha_animation: this.getElementSettings("slider_content_animation"),
                    sliderType: this.getElementSettings("slider_type")
                };
                if (this.getElementSettings("effect") == "flip") {
                    settings.flipEffect = {
                        limitRotation: !0,
                        slideShadows: !0
                    }
                }
                if (this.getElementSettings("effect_multiple") == "coverflow") {
                    settings.coverflowEffect = {
                        rotate: 50,
                        stretch: 0,
                        depth: 100,
                        modifier: 1,
                        slideShadows: !0
                    }
                }
                if (this.getElementSettings("slider_type") == "multiple") {
                    var bpObj = {
                        desktop: {
                            slidesPerView: slidesPerView || 1,
                            spaceBetween: parseInt(this.getElementSettings("space_between_slides")) || 0
                        }
                    };
                    var breakpoints = elementorFrontend.config.responsive.breakpoints;
                    $.each(breakpoints, function(idx, val) {
                        if (val.is_enabled) {
                            bpObj[idx] = {
                                screenSize: val.value,
                                slidesPerView: parseInt($this.getElementSettings("slides_per_view_" + idx)) || slidesPerView,
                                spaceBetween: parseInt($this.getElementSettings("space_between_slides_" + idx)) || 0
                            }
                        }
                    });
                    settings.customBreakpoints = bpObj;
                    settings.customMultiple = !0
                }
                if (this.getElementSettings("autoplay") == "yes") {
                    settings.autoplay = {
                        delay: this.getElementSettings("autoplay_speed"),
                        disableOnInteraction: !1,
                        stopOnLastSlide: !(this.getElementSettings("infinity_loop") || !1)
                    }
                }
                if (this.getElementSettings("arrow_navigation") == "yes") {
                    var selectorNext = this.elements.$container.find(".ha-slider-next");
                    var selectorPrev = this.elements.$container.find(".ha-slider-prev");
                    settings.navigation = {
                        nextEl: selectorNext[0],
                        prevEl: selectorPrev[0]
                    }
                }
                if (this.getElementSettings("pagination_type") == "dots") {
                    var selectorPagi = this.elements.$container.find(".ha-slider-pagination");
                    settings.pagination = {
                        el: selectorPagi[0],
                        clickable: !0
                    }
                }
                if (this.getElementSettings("pagination_type") == "progressbar") {
                    var selectorPagi = this.elements.$container.find(".ha-slider-pagination");
                    settings.pagination = {
                        el: selectorPagi[0],
                        clickable: !0,
                        type: "progressbar"
                    }
                }
                if (this.getElementSettings("pagination_type") == "numbers") {
                    var selectorPagi = this.elements.$container.find(".ha-slider-pagination");
                    settings.pagination = {
                        el: selectorPagi[0],
                        clickable: !0,
                        type: this.getElementSettings("number_pagination_type"),
                        renderBullet: function renderBullet(index, className) {
                            return '<span class="' + className + '">' + (index + 1) + "</span>"
                        },
                        renderFraction: function renderFraction(currentClass, totalClass) {
                            return '<span class="' + currentClass + '"></span>' + "<span>/</span>" + '<span class="' + totalClass + '"></span>'
                        }
                    }
                }
                if (this.getElementSettings("scroll_bar") == "yes") {
                    var selectorScroll = this.elements.$container.find(".ha-slider-scrollbar");
                    settings.scrollbar = {
                        el: selectorScroll[0],
                        hide: this.getElementSettings("scroll_bar_visibility") == "true",
                        draggable: !0
                    }
                }
                if (this.getElementSettings("thumbs_navigation") == "yes") {
                    settings.thumbs = {
                        swiper: haGallaryThumbs
                    }
                }
                return $.extend({}, settings)
            },
            run: function run() {
                var elContainer = this.elements.$container;
                var slider = elContainer.find(".ha-slider-container");
                var readySettings = this.getReadySettings();
                var sliderObj = new HaSwiper(slider[0], readySettings);
                if (readySettings.customMultiple) {
                    $(window).on('resize', function() {
                        var mode = $('body').attr('data-elementor-device-mode');
                        sliderObj.params.slidesPerView = readySettings.customBreakpoints[mode].slidesPerView;
                        sliderObj.params.spaceBetween = readySettings.customBreakpoints[mode].spaceBetween;
                        sliderObj.update()
                    }).resize()
                }
                sliderObj.on("slideChange", function() {
                    if (readySettings.sliderType == "multiple") {
                        return
                    }
                    var aI = sliderObj.activeIndex;
                    var elSlide = elContainer.find(".ha-slider-slide");
                    var elSlideContent = elContainer.find(".ha-slider-content");
                    var currentSlide = elSlideContent.eq(aI);
                    currentSlide.hide();
                    if (currentSlide.length <= 0) {}
                    setTimeout(function() {
                        currentSlide.show()
                    }, readySettings.speed);
                    elSlide.eq(aI).find(".elementor-invisible, .animated").each(function(e, t) {
                        var i = $(this).data("settings");
                        if (i && (i._animation || i.animation)) {
                            var n = i._animation_delay ? i._animation_delay : 0,
                                a = i._animation || i.animation;
                            $(this).removeClass("elementor-invisible");
                            $(this).addClass(a + " animated")
                        }
                    })
                });
                sliderObj.on("transitionEnd", function() {
                    var aI = sliderObj.activeIndex;
                    var elSlide = elContainer.find(".ha-slider-slide");
                    var elSlideContent = elContainer.find(".ha-slider-content");
                    var currentSlide = elSlideContent.eq(aI);
                    setTimeout(function() {
                        elSlide.eq(aI).find(".animated").each(function(e, t) {
                            var i = $(this).data("settings");
                            if (i && (i._animation || i.animation)) {
                                var n = i._animation_delay ? i._animation_delay : 0,
                                    a = i._animation || i.animation;
                                $(this).removeClass(a)
                            }
                        })
                    }, readySettings.speed)
                })
            }
        });
        var CarouselBase = elementorModules.frontend.handlers.Base.extend({
            onInit: function onInit() {
                elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
                this.run()
            },
            getDefaultSettings: function getDefaultSettings() {
                return {
                    selectors: {
                        container: ".ha-carousel-container"
                    },
                    arrows: !1,
                    dots: !1,
                    checkVisible: !1,
                    infinite: !0,
                    slidesToShow: 3,
                    rows: 0,
                    prevArrow: '<button type="button" class="slick-prev"><i class="fa fa-chevron-left"></i></button>',
                    nextArrow: '<button type="button" class="slick-next"><i class="fa fa-chevron-right"></i></button>'
                }
            },
            getDefaultElements: function getDefaultElements() {
                var selectors = this.getSettings("selectors");
                return {
                    $container: this.findElement(selectors.container)
                }
            },
            onElementChange: function onElementChange() {
                this.elements.$container.slick("unslick");
                this.run()
            },
            getReadySettings: function getReadySettings() {
                var $rtl = $('html[dir="rtl"]').length == 1 || $('body').hasClass('rtl');
                if ('yes' == this.getElementSettings('vertical')) {
                    $rtl = !1
                }
                var settings = {
                    infinite: !!this.getElementSettings("loop"),
                    autoplay: !!this.getElementSettings("autoplay"),
                    autoplaySpeed: this.getElementSettings("autoplay_speed"),
                    speed: this.getElementSettings("animation_speed"),
                    centerMode: !!this.getElementSettings("center"),
                    vertical: !!this.getElementSettings("vertical"),
                    rtl: $rtl
                };
                switch (this.getElementSettings("navigation")) {
                    case "arrow":
                        settings.arrows = !0;
                        break;
                    case "dots":
                        settings.dots = !0;
                        break;
                    case "both":
                        settings.arrows = !0;
                        settings.dots = !0;
                        break
                }
                var slides_to_scroll = !!this.getElementSettings('slides_to_scroll');
                settings.slidesToShow = parseInt(this.getElementSettings("slides_to_show")) || 1;
                settings.slidesToScroll = slides_to_scroll ? parseInt(this.getElementSettings('slides_to_show')) || 1 : 1;
                settings.responsive = [{
                    breakpoint: elementorFrontend.config.breakpoints.lg,
                    settings: {
                        slidesToShow: parseInt(this.getElementSettings("slides_to_show_tablet")) || settings.slidesToShow,
                        slidesToScroll: slides_to_scroll ? parseInt(this.getElementSettings('slides_to_show_tablet')) || settings.slidesToShow : 1
                    }
                }, {
                    breakpoint: elementorFrontend.config.breakpoints.md,
                    settings: {
                        slidesToShow: parseInt(this.getElementSettings("slides_to_show_mobile")) || parseInt(this.getElementSettings("slides_to_show_tablet")) || settings.slidesToShow,
                        slidesToScroll: slides_to_scroll ? parseInt(this.getElementSettings('slides_to_show_mobile')) || parseInt(this.getElementSettings('slides_to_show_tablet')) || settings.slidesToShow : 1
                    }
                }];
                return $.extend({}, this.getSettings(), settings)
            },
            run: function run() {
                this.elements.$container.slick(this.getReadySettings())
            }
        });
        var SourceCode = function SourceCode($scope) {
            var $item = $scope.find('.ha-source-code');
            var $lng_type = $item.data('lng-type');
            var $after_copy_text = $item.data('after-copy');
            var $code = $item.find('code.language-' + $lng_type);
            var $copy_btn = $scope.find('.ha-copy-code-button');
            $copy_btn.on('click', function() {
                var $temp = $("<textarea>");
                $(this).append($temp);
                $temp.val($code.text()).select();
                document.execCommand("copy");
                $temp.remove();
                if ($after_copy_text.length) {
                    $(this).text($after_copy_text)
                }
            });
            if ($lng_type !== undefined && $code !== undefined) {
                Prism.highlightElement($code.get(0))
            }
        };
        var AnimatedText = function AnimatedText($scope) {
            var $item = $scope.find(".cd-headline"),
                $animationDelay = $item.data("animation-delay");
            happyAnimatedText({
                selector: $item,
                animationDelay: $animationDelay
            })
        };
        var InstagramFeed = function InstagramFeed($scope) {
            var button = $scope.find(".ha-insta-load-more");
            var instagram_wrap = $scope.find(".ha-insta-default");
            button.on("click", function(e) {
                e.preventDefault();
                var $self = $(this),
                    query_settings = $self.data("settings"),
                    total = $self.data("total"),
                    items = $scope.find(".ha-insta-item").length;
                $.ajax({
                    url: HappyProLocalize.ajax_url,
                    type: "POST",
                    data: {
                        action: "ha_instagram_feed_action",
                        security: HappyProLocalize.nonce,
                        query_settings: query_settings,
                        loaded_item: items
                    },
                    success: function success(response) {
                        if (total > items) {
                            $(response).appendTo(instagram_wrap)
                        } else {
                            $self.text("All Loaded").addClass("loaded");
                            setTimeout(function() {
                                $self.css({
                                    display: "none"
                                })
                            }, 800)
                        }
                    },
                    error: function error(_error2) {}
                })
            })
        };
        var ScrollingImage = elementorModules.frontend.handlers.Base.extend({
            onInit: function onInit() {
                elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
                this.wrapper = this.$element.find(".ha-scrolling-image-wrapper");
                this.run()
            },
            onElementChange: function onElementChange() {
                this.run()
            },
            run: function run() {
                var container_height = this.wrapper.innerHeight(),
                    container_width = this.wrapper.innerWidth(),
                    image_align = this.wrapper.data("align"),
                    scroll_direction = this.wrapper.data("scroll-direction"),
                    items = this.wrapper.find(".ha-scrolling-image-container"),
                    single_image_box = items.find(".ha-scrolling-image-item"),
                    scroll = "scroll" + image_align + scroll_direction + parseInt(container_height) + parseInt(container_width),
                    duration = this.wrapper.data("duration"),
                    direction = "normal",
                    horizontal_align_width = 10,
                    vertical_align_height = 10;
                var start = {
                        transform: "translateY(" + container_height + "px)"
                    },
                    end = {
                        transform: "translateY(-101%)"
                    };
                if ("bottom" === scroll_direction || "right" === scroll_direction) {
                    direction = "reverse"
                }
                if ("ha-horizontal" === image_align) {
                    start = {
                        transform: "translateX(" + container_width + "px)"
                    };
                    end = {
                        transform: "translateX(-101%)"
                    };
                    single_image_box.each(function() {
                        horizontal_align_width += $(this).outerWidth(!0)
                    });
                    items.css({
                        width: horizontal_align_width,
                        display: "flex"
                    });
                    items.find("img").css({
                        "max-width": "100%"
                    });
                    single_image_box.css({
                        display: "inline-flex"
                    })
                }
                if ("ha-vertical" === image_align) {
                    single_image_box.each(function() {
                        vertical_align_height += $(this).outerHeight(!0)
                    })
                }
                $.keyframe.define([{
                    name: scroll,
                    "0%": start,
                    "100%": end
                }]);
                items.playKeyframe({
                    name: scroll,
                    duration: duration.toString() + "ms",
                    timingFunction: "linear",
                    delay: "0s",
                    iterationCount: "infinite",
                    direction: direction,
                    fillMode: "none",
                    complete: function complete() {}
                })
            }
        });
        var PricingTableToolTip = function PricingTableToolTip($scope) {
            var tooltip_area = $scope.find(".ha-pricing-table-feature-tooltip");
            tooltip_area.on({
                mouseenter: function mouseenter(e) {
                    var $this = $(this),
                        direction = $this[0].getBoundingClientRect(),
                        tooltip = $this.find(".ha-pricing-table-feature-tooltip-text"),
                        tooltipW = tooltip.outerWidth(!0),
                        tooltipH = tooltip.outerHeight(!0),
                        W_width = $(window).width(),
                        W_height = $(window).height();
                    tooltip.css({
                        left: "0",
                        right: "auto",
                        top: "calc(100% + 1px)",
                        bottom: "auto"
                    });
                    if (W_width - direction.left < tooltipW && direction.right < tooltipW) {
                        tooltip.css({
                            left: "calc(50% - (" + tooltipW + "px/2))"
                        })
                    } else if (W_width - direction.left < tooltipW) {
                        tooltip.css({
                            left: "auto",
                            right: "0"
                        })
                    }
                    if (W_height - direction.bottom < tooltipH) {
                        tooltip.css({
                            top: "auto",
                            bottom: "calc(100% + 1px)"
                        })
                    }
                }
            })
        };
        var TabHandlerBase = elementorModules.frontend.handlers.Base.extend({
            $activeContent: null,
            getDefaultSettings: function getDefaultSettings() {
                return {
                    selectors: {
                        tabTitle: ".ha-tab__title",
                        tabContent: ".ha-tab__content"
                    },
                    classes: {
                        active: "ha-tab--active"
                    },
                    showTabFn: "show",
                    hideTabFn: "hide",
                    toggleSelf: !1,
                    hidePrevious: !0,
                    autoExpand: !0
                }
            },
            getDefaultElements: function getDefaultElements() {
                var selectors = this.getSettings("selectors");
                return {
                    $tabTitles: this.findElement(selectors.tabTitle),
                    $tabContents: this.findElement(selectors.tabContent)
                }
            },
            activateDefaultTab: function activateDefaultTab() {
                var settings = this.getSettings();
                if (!settings.autoExpand || "editor" === settings.autoExpand && !this.isEdit) {
                    return
                }
                var defaultActiveTab = this.getEditSettings("activeItemIndex") || 1,
                    originalToggleMethods = {
                        showTabFn: settings.showTabFn,
                        hideTabFn: settings.hideTabFn
                    };
                this.setSettings({
                    showTabFn: "show",
                    hideTabFn: "hide"
                });
                this.changeActiveTab(defaultActiveTab);
                this.setSettings(originalToggleMethods)
            },
            deactivateActiveTab: function deactivateActiveTab(tabIndex) {
                var settings = this.getSettings(),
                    activeClass = settings.classes.active,
                    activeFilter = tabIndex ? '[data-tab="' + tabIndex + '"]' : "." + activeClass,
                    $activeTitle = this.elements.$tabTitles.filter(activeFilter),
                    $activeContent = this.elements.$tabContents.filter(activeFilter);
                $activeTitle.add($activeContent).removeClass(activeClass);
                $activeContent[settings.hideTabFn]()
            },
            activateTab: function activateTab(tabIndex) {
                var settings = this.getSettings(),
                    activeClass = settings.classes.active,
                    $requestedTitle = this.elements.$tabTitles.filter('[data-tab="' + tabIndex + '"]'),
                    $requestedContent = this.elements.$tabContents.filter('[data-tab="' + tabIndex + '"]');
                $requestedTitle.add($requestedContent).addClass(activeClass);
                $requestedContent[settings.showTabFn]()
            },
            isActiveTab: function isActiveTab(tabIndex) {
                return this.elements.$tabTitles.filter('[data-tab="' + tabIndex + '"]').hasClass(this.getSettings("classes.active"))
            },
            bindEvents: function bindEvents() {
                var _this = this;
                this.elements.$tabTitles.on({
                    keydown: function keydown(event) {
                        if ("Enter" === event.key) {
                            if ('A' == event.currentTarget.tagName && event.currentTarget.classList.contains('ha-tab__title')) {
                                return
                            }
                            event.preventDefault();
                            _this.changeActiveTab(event.currentTarget.getAttribute("data-tab"))
                        }
                    },
                    click: function click(event) {
                        if ('A' == event.currentTarget.tagName && event.currentTarget.classList.contains('ha-tab__title')) {
                            return
                        }
                        event.preventDefault();
                        _this.changeActiveTab(event.currentTarget.getAttribute("data-tab"))
                    }
                })
            },
            onInit: function onInit() {
                elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
                this.activateDefaultTab()
            },
            onEditSettingsChange: function onEditSettingsChange(propertyName) {
                if ("activeItemIndex" === propertyName) {
                    this.activateDefaultTab()
                }
            },
            changeActiveTab: function changeActiveTab(tabIndex) {
                var isActiveTab = this.isActiveTab(tabIndex),
                    settings = this.getSettings();
                if ((settings.toggleSelf || !isActiveTab) && settings.hidePrevious) {
                    this.deactivateActiveTab()
                }
                if (!settings.hidePrevious && isActiveTab) {
                    this.deactivateActiveTab(tabIndex)
                }
                if (!isActiveTab) {
                    this.activateTab(tabIndex)
                }
                $(window).trigger("resize")
            }
        });
        var TimeLine = function TimeLine($scope) {
            var T_ID = $scope.data("id");
            var timeline = $scope.find(".ha-timeline-wrap");
            var dataScroll = timeline.data("scroll");
            var timeline_block = timeline.find(".ha-timeline-block");
            var event = "scroll.timelineScroll" + T_ID + " resize.timelineScroll" + T_ID;

            function scroll_tree() {
                timeline_block.each(function() {
                    var block_height = $(this).outerHeight(!0);
                    var $offsetTop = $(this).offset().top;
                    var window_middle_p = $window.scrollTop() + $window.height() / 2;
                    if ($offsetTop < window_middle_p) {
                        $(this).addClass("ha-timeline-scroll-tree")
                    } else {
                        $(this).removeClass("ha-timeline-scroll-tree")
                    }
                    var scroll_tree_wrap = $(this).find(".ha-timeline-tree-inner");
                    var scroll_height = $window.scrollTop() - scroll_tree_wrap.offset().top + $window.outerHeight() / 2;
                    if ($offsetTop < window_middle_p && timeline_block.hasClass("ha-timeline-scroll-tree")) {
                        if (block_height > scroll_height) {
                            scroll_tree_wrap.css({
                                height: scroll_height * 1.5 + "px"
                            })
                        } else {
                            scroll_tree_wrap.css({
                                height: block_height * 1.2 + "px"
                            })
                        }
                    } else {
                        scroll_tree_wrap.css("height", "0px")
                    }
                })
            }
            if ("yes" === dataScroll) {
                scroll_tree();
                $window.on(event, scroll_tree)
            } else {
                $window.off(event)
            }
        };
        var HotSpots = elementorModules.frontend.handlers.Base.extend({
            onInit: function onInit() {
                elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
                this.init()
            },
            bindEvents: function bindEvents() {
                if (!this.isEdit) {
                    this.elements.$items.on("click.spotClick", function(e) {
                        e.preventDefault()
                    })
                }
            },
            getDefaultSettings: function getDefaultSettings() {
                return {
                    selectors: {
                        item: ".ha-hotspots__item"
                    }
                }
            },
            getDefaultElements: function getDefaultElements() {
                return {
                    $items: this.findElement(this.getSettings("selectors.item"))
                }
            },
            onElementChange: function onElementChange(changedProp) {
                if (!this.hasTipso()) {
                    return
                }
                if (changedProp.indexOf("tooltip_") === 0) {
                    this.elements.$items.tipso("destroy");
                    this.init()
                }
            },
            hasTipso: function hasTipso() {
                return $.fn.tipso
            },
            init: function init() {
                var position = this.getElementSettings("tooltip_position"),
                    width = this.getElementSettings("tooltip_width"),
                    background = this.getElementSettings("tooltip_bg_color"),
                    color = this.getElementSettings("tooltip_color"),
                    speed = this.getElementSettings("tooltip_speed"),
                    delay = this.getElementSettings("tooltip_delay"),
                    hideDelay = this.getElementSettings("tooltip_hide_delay"),
                    hideArrow = this.getElementSettings("tooltip_hide_arrow"),
                    hover = this.getElementSettings("tooltip_hover"),
                    elementId = this.getID();
                if (!this.hasTipso()) {
                    return
                }
                this.elements.$items.each(function(index, item) {
                    var $item = $(item),
                        target = $item.data("target"),
                        settings = $item.data("settings"),
                        classes = ["ha-hotspots--" + elementId, "elementor-repeater-item-" + target];
                    $item.tipso({
                        color: color,
                        width: width.size || 200,
                        position: settings.position || position,
                        speed: speed,
                        delay: delay,
                        showArrow: !hideArrow,
                        tooltipHover: !!hover,
                        hideDelay: hideDelay,
                        background: background,
                        useTitle: !1,
                        content: $("#ha-" + target).html(),
                        onBeforeShow: function onBeforeShow($e, e, tooltip) {
                            $(document).find('.elementor-repeater-item-' + target).remove();
                            tooltip.tipso_bubble.addClass(classes.join(" "))
                        }
                    })
                })
            }
        });
        var LineChart = function LineChart($scope) {
            elementorFrontend.waypoint($scope, function() {
                var $chart = $(this),
                    $container = $chart.find(".ha-line-chart-container"),
                    $chart_canvas = $chart.find("#ha-line-chart"),
                    settings = $container.data("settings");
                if ($container.length) {
                    var chart = new Chart($chart_canvas, settings)
                }
            })
        };
        var RadarChart = function RadarChart($scope) {
            elementorFrontend.waypoint($scope, function() {
                var $chart = $(this),
                    $container = $chart.find(".ha-radar-chart-container"),
                    $chart_canvas = $chart.find("#ha-radar-chart"),
                    settings = $container.data("settings");
                if ($container.length) {
                    var chart = new Chart($chart_canvas, settings)
                }
            })
        };
        var PolarChart = function PolarChart($scope) {
            elementorFrontend.waypoint($scope, function() {
                var $chart = $(this),
                    $container = $chart.find(".ha-polar-chart-container"),
                    $chart_canvas = $chart.find("#ha-polar-chart"),
                    settings = $container.data("settings");
                if ($container.length) {
                    var chart = new Chart($chart_canvas, settings)
                }
            })
        };
        var PieChart = function PieChart($scope) {
            elementorFrontend.waypoint($scope, function() {
                var $chart = $(this),
                    $container = $chart.find(".ha-pie-chart-container"),
                    $chart_canvas = $chart.find("#ha-pie-chart"),
                    settings = $container.data("settings");
                if ($container.length) {
                    var chart = new Chart($chart_canvas, settings)
                }
            })
        };
        var StickyVideoArray = [];
        var StickyVideo = function StickyVideo($scope) {
            var $id = "#ha-sticky-video-player-" + $scope.data("id"),
                $wrap = $scope.find(".ha-sticky-video-wrap"),
                $settting = $wrap.data("ha-player"),
                $box = $wrap.find(".ha-sticky-video-box"),
                $overlay_box = $wrap.find(".ha-sticky-video-overlay"),
                $overlay_play = $overlay_box.find(".ha-sticky-video-overlay-icon"),
                $sticky_close = $wrap.find(".ha-sticky-video-close i"),
                $all_box = $(".ha-sticky-video-box"),
                event = "scroll.haStickyVideo" + $scope.data("id"),
                set;
            var playerAbc = new Plyr($id);
            var StickyVideoObject = {
                player: playerAbc,
                event: event,
                player_box: $box
            };
            StickyVideoArray.push(StickyVideoObject);
            playerAbc.on("ready", function(e) {
                var $box_plyr = $box.find('.plyr.plyr--video');
                if (!0 == $settting.autoplay) {
                    $box_plyr.trigger("click")
                }
            });
            if (0 !== $overlay_box.length) {
                var $el = 0 !== $overlay_play.length ? $overlay_play : $overlay_box;
                $el.on("click", function() {
                    playerAbc.play()
                })
            }
            $sticky_close.on("click", function() {
                $box.removeClass("sticky");
                $box.addClass("sticky-close");
                playerAbc.pause()
            });
            playerAbc.on("play", function(e) {
                $overlay_box.css("display", "none");
                if ($box.hasClass("sticky-close")) {
                    $box.removeClass("sticky-close")
                }
                StickyVideoArray.forEach(function(item, index) {
                    if (item.player !== playerAbc) {
                        item.player.pause()
                    }
                    if (item.event !== event) {
                        $window.off(item.event)
                    }
                    if (item.player_box !== $box) {
                        item.player_box.removeClass("sticky")
                    }
                });
                if (!0 === $settting.sticky) {
                    $window.on(event, function() {
                        var height = $box.outerHeight(!0);
                        var $offsetTop = $wrap.offset().top;
                        var videoBoxTopPoint = $window.scrollTop();
                        var videoBoxMiddlePoint = $offsetTop + height / 2;
                        if (!$box.hasClass("sticky-close")) {
                            if (videoBoxMiddlePoint < videoBoxTopPoint) {
                                $box.addClass("sticky")
                            } else {
                                $box.removeClass("sticky")
                            }
                        }
                    })
                } else {
                    $window.off(event)
                }
            });
            playerAbc.on("pause", function(e) {
                $window.off(event)
            });
            $window.on("load resize", debounce(function() {
                var height = $box.find(".plyr").height();
                $wrap.css("min-height", height + "px")
            }, 100))
        };
        var FacebookFeed = function FacebookFeed($scope) {
            var button = $scope.find(".ha-facebook-load-more");
            var facebook_wrap = $scope.find(".ha-facebook-items");
            button.on("click", function(e) {
                e.preventDefault();
                var $self = $(this),
                    query_settings = $self.data("settings"),
                    total = $self.data("total"),
                    items = $scope.find(".ha-facebook-item").length;
                $.ajax({
                    url: HappyProLocalize.ajax_url,
                    type: "POST",
                    data: {
                        action: "ha_facebook_feed_action",
                        security: HappyProLocalize.nonce,
                        query_settings: query_settings,
                        loaded_item: items
                    },
                    success: function success(response) {
                        if (total > items) {
                            $(response).appendTo(facebook_wrap)
                        } else {
                            $self.text("All Loaded").addClass("loaded");
                            setTimeout(function() {
                                $self.css({
                                    display: "none"
                                })
                            }, 800)
                        }
                    },
                    error: function error(_error3) {}
                })
            })
        };
        var SmartPostList = function SmartPostList($scope) {
            var filterWrap = $scope.find(".ha-spl-filter"),
                customSelect = $scope.find(".ha-spl-custom-select"),
                gridWrap = $scope.find(".ha-spl-grid-area"),
                mainWrapper = $scope.find(".ha-spl-wrapper"),
                querySettings = mainWrapper.data("settings"),
                dataOffset = mainWrapper.attr("data-offset"),
                nav = $scope.find(".ha-spl-pagination button"),
                navPrev = $scope.find(".ha-spl-pagination button.prev"),
                navNext = $scope.find(".ha-spl-pagination button.next"),
                filter = $scope.find("ul.ha-spl-filter-list li span"),
                event;
            customSelect.niceSelect();
            var select = $scope.find(".ha-spl-custom-select li");

            function afterClick(e) {
                e.preventDefault();
                var $self = $(this),
                    dataFilter = filterWrap.attr("data-active"),
                    dataTotalOffset = mainWrapper.attr("data-total-offset"),
                    offset = "",
                    termId = "";
                if (e.target.classList.contains("prev") || e.target.classList.contains("fa-angle-left")) {
                    if (0 == parseInt(dataTotalOffset)) {
                        navPrev.attr("disabled", !0);
                        return
                    }
                    offset = 0 !== parseInt(dataTotalOffset) ? parseInt(dataTotalOffset) - parseInt(dataOffset) : "0";
                    if (undefined !== dataFilter) {
                        termId = dataFilter
                    }
                } else if (e.target.classList.contains("next") || e.target.classList.contains("fa-angle-right")) {
                    offset = parseInt(dataTotalOffset) + parseInt(dataOffset);
                    if (undefined !== dataFilter) {
                        termId = dataFilter
                    }
                }
                if (e.target.hasAttribute("data-value")) {
                    termId = e.target.dataset.value;
                    filterWrap[0].setAttribute("data-active", termId);
                    if ("SPAN" === e.target.tagName) {
                        filter.removeClass("ha-active");
                        e.target.classList.toggle("ha-active")
                    }
                    offset = 0;
                    navPrev.attr("disabled", !0);
                    navNext.removeAttr("disabled")
                }
                $.ajax({
                    url: HappyProLocalize.ajax_url,
                    type: "POST",
                    data: {
                        action: "ha_smart_post_list_action",
                        security: HappyProLocalize.nonce,
                        querySettings: querySettings,
                        offset: offset,
                        termId: termId
                    },
                    success: function success(response) {
                        if ($(response).length > 0) {
                            gridWrap.css("height", gridWrap.outerHeight(!0) + "px");
                            gridWrap.html("");
                            $(response).appendTo(gridWrap);
                            gridWrap.css("height", "");
                            mainWrapper[0].attributes["data-total-offset"].value = offset;
                            if (e.target.classList.contains("prev") || e.target.classList.contains("fa-angle-left")) {
                                navNext.removeAttr("disabled")
                            }
                            if (e.target.classList.contains("next") || e.target.classList.contains("fa-angle-right")) {
                                navPrev.removeAttr("disabled")
                            }
                        } else {
                            if (e.target.classList.contains("next") || e.target.classList.contains("fa-angle-right")) {
                                navNext.attr("disabled", !0)
                            }
                        }
                    },
                    error: function error(_error4) {}
                })
            }
            nav.on("click", afterClick);
            filter.on("click", afterClick);
            select.on("click", afterClick)
        };
        var postGridSkins = ["classic", "hawai", "standard", "monastic", "stylica", "outbox", "crossroad"];
        var PostGrid = function PostGrid($scope) {
            var wrapper = $scope.find(".ha-pg-wrapper"),
                gridWrap = wrapper.find(".ha-pg-grid-wrap"),
                button = wrapper.find("button.ha-pg-loadmore");
            button.on("click", function(e) {
                e.preventDefault();
                var $self = $(this),
                    querySettings = $self.data("settings"),
                    items = wrapper.find(".ha-pg-item").length;
                $self.attr("disabled", !0);
                $.ajax({
                    url: HappyProLocalize.ajax_url,
                    type: "POST",
                    data: {
                        action: "hapro_post_grid_action",
                        security: HappyProLocalize.nonce,
                        querySettings: querySettings,
                        loadedItem: items
                    },
                    beforeSend: function beforeSend() {
                        $self.find(".eicon-loading").css({
                            display: "inline-block"
                        })
                    },
                    success: function success(response) {
                        if (response) {
                            $(response).each(function() {
                                var $self = $(this);
                                if ($self.hasClass("ha-pg-item")) {
                                    $self.addClass("ha-pg-item-loaded").appendTo(gridWrap)
                                } else {
                                    $self.appendTo(gridWrap)
                                }
                            })
                        } else {
                            $self.text("All Loaded").addClass("loaded");
                            setTimeout(function() {
                                $self.css({
                                    display: "none"
                                })
                            }, 800)
                        }
                        $self.find(".eicon-loading").css({
                            display: "none"
                        });
                        $self.removeAttr("disabled")
                    },
                    error: function error(_error5) {}
                })
            })
        };
        var DataTable = function DataTable($scope) {
            var dataTable = $scope.find(".ha-advanced-table");
            var widgetWrapper = $scope.find(".elementor-widget-container");
            var row_td = $scope.find(".ha-advanced-table__body-row-cell");
            var search = dataTable.data("search") == !0 ? !0 : !1;
            var paging = dataTable.data("paging") == !0 ? !0 : !1;
            var scrollX = dataTable.data("scroll-x") == undefined ? !1 : !0;
            if (window.innerWidth <= 767) {
                var scrollX = !0
            }
            $(dataTable).DataTable({
                searching: search,
                paging: paging,
                orderCellsTop: !0,
                scrollX: scrollX,
                aaSorting: []
            });
            var column_th = $scope.find(".ha-advanced-table__head-column-cell");
            column_th.each(function(index, v) {
                $(column_th[index]).css("width", "")
            });
            if (dataTable.data("export-table") == !0) {
                widgetWrapper.prepend('<div class="ha-advanced-table-btn-wrap"><button class="ha-advanced-table-btn">' + dataTable.data("export-table-text") + "</button></div>");
                var dataTableBtn = $scope.find(".ha-advanced-table-btn");
                dataTableBtn.on("click", function() {
                    var oldDownloadNode = document.querySelector(".ha-advanced-data-table-export");
                    if (oldDownloadNode) {
                        oldDownloadNode.parentNode.removeChild(oldDownloadNode)
                    }
                    var csv = [];
                    dataTable.find("tr").each(function(index, tr) {
                        var data = [];
                        $(tr).find("th").each(function(index, th) {
                            data.push(th.textContent)
                        });
                        $(tr).find("td").each(function(index, td) {
                            data.push(td.textContent)
                        });
                        csv.push(data.join(","))
                    });
                    var csvFile = new Blob([csv.join("\n")], {
                        type: "text/csv"
                    });
                    var downloadNode = document.createElement("a");
                    var url = URL.createObjectURL(csvFile);
                    var date = new Date();
                    var options = {
                        day: "2-digit",
                        month: "short",
                        year: "numeric",
                        hour: "numeric",
                        minute: "numeric",
                        second: "numeric"
                    };
                    var formatedDate = date.toLocaleDateString("en-BD", options);
                    var dateString = JSON.stringify(formatedDate.replace(/[ , :]/g, "-"));
                    downloadNode.download = "advanced-data-table-" + dateString + "~" + dataTable.data("widget-id") + ".csv";
                    downloadNode.setAttribute("href", url);
                    downloadNode.classList.add("ha-advanced-data-table-export");
                    downloadNode.style.visibility = "hidden";
                    document.body.appendChild(downloadNode);
                    downloadNode.click()
                })
            }
            $(window).trigger('resize')
        };
        var ModalPopup = function ModalPopup($scope) {
            var boxWrapper = $scope.find(".ha-modal-popup-box-wrapper");
            var triggerType = boxWrapper.data("trigger-type");
            var trigger = $scope.find(".ha-modal-popup-trigger");
            var overlayClose = $scope.find(".ha-modal-popup-overlay");
            var iconClose = $scope.find(".ha-modal-popup-content-close");
            var modal = $scope.find(".ha-modal-popup-content-wrapper");
            var modalAnimation = modal.data("animation");
            var modalDelay = modal.data("display-delay");
            if ("pageload" == triggerType) {
                if (!modal.hasClass("ha-modal-show")) {
                    setTimeout(function() {
                        modal.addClass("ha-modal-show");
                        modal.find(".ha-modal-animation").addClass(modalAnimation)
                    }, parseInt(modalDelay))
                }
            } else {
                trigger.on("click", function(e) {
                    e.preventDefault();
                    var wrapper = $(this).closest(".ha-modal-popup-box-wrapper"),
                        modal = wrapper.find(".ha-modal-popup-content-wrapper"),
                        modalAnimation = modal.data("animation"),
                        modalContent = modal.find(".ha-modal-animation");
                    if (!modal.hasClass("ha-modal-show")) {
                        modal.addClass("ha-modal-show");
                        modalContent.addClass(modalAnimation)
                    }
                })
            }
            overlayClose.on("click", close_modal);
            iconClose.on("click", close_modal);

            function close_modal(el) {
                var wrap = $(this).closest(".ha-modal-popup-content-wrapper"),
                    modalAnimation = wrap.data("animation");
                if (wrap != null && wrap.hasClass("ha-modal-show")) {
                    var doSetTimeout = function doSetTimeout(target, source) {
                        setTimeout(function() {
                            target.attr("src", source)
                        }, 500)
                    };
                    var nVideo = wrap.find("iframe, video");
                    $.each(nVideo, function(idx, val) {
                        var videoSrc = $(this).attr("src");
                        $(this).attr("src", "https://happyaddons.com/marvin/index.html");
                        doSetTimeout($(this), videoSrc)
                    });
                    wrap.removeClass("ha-modal-show");
                    wrap.find("." + modalAnimation).removeClass(modalAnimation)
                }
            }
        };
        var miniCart = function miniCart($scope) {
            $scope.find(".ha-mini-cart-inner").on("click mouseenter mouseleave", function(e) {
                var cart_btn = $(this),
                    on_click = cart_btn.hasClass("ha-mini-cart-on-click"),
                    on_hover = cart_btn.hasClass("ha-mini-cart-on-hover"),
                    popup = cart_btn.find(".ha-mini-cart-popup");
                if (popup.length == 0) {
                    return
                }
                if ("click" === e.type && on_click) {
                    popup.fadeToggle()
                }
                if ("mouseenter" === e.type && on_hover) {
                    popup.fadeIn()
                }
                if ("mouseleave" === e.type && on_hover) {
                    popup.fadeOut()
                }
            });
            if ($scope.find(".ha-mini-cart-popup").length > 0 && $scope.find(".ha-mini-cart-on-click").length > 0) {
                $("body").on("click", function(e) {
                    if ($(e.target).hasClass("ha-mini-cart-popup") || $(e.target).parents().hasClass("ha-mini-cart-popup") || $(e.target).hasClass("ha-mini-cart-button") || $(e.target).parents().hasClass("ha-mini-cart-button")) {
                        return
                    } else {
                        $scope.find(".ha-mini-cart-popup").removeAttr("style")
                    }
                })
            }
        };
        var ImageScroller = elementorModules.frontend.handlers.Base.extend({
            onInit: function onInit() {
                elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
                this.wrapper = this.$element.find(".ha-image-scroller-wrapper");
                this.run()
            },
            onElementChange: function onElementChange() {
                this.run()
            },
            run: function run() {
                var triggerType = this.wrapper.data("trigger-type");
                if ("hover" !== triggerType) {
                    return
                }
                var figure = this.wrapper.find(".ha-image-scroller-container");
                var scrollType = this.wrapper.data("scroll-type");
                var scrollDirection = this.wrapper.data("scroll-direction");
                var imageScroll = figure.find("img");
                var transformY = imageScroll.height() - figure.height();
                var transformX = imageScroll.width() - figure.width();
                if (scrollType === "vertical" && transformY > 0) {
                    if ("top" === scrollDirection) {
                        mouseEvent("translateY", transformY)
                    } else {
                        imageScroll.css("transform", "translateY" + "( -" + transformY + "px)");
                        mouseEventRevers("translateY", transformY)
                    }
                }
                if (scrollType === "horizontal" && transformX > 0) {
                    if ("left" === scrollDirection) {
                        mouseEvent("translateX", transformX)
                    } else {
                        imageScroll.css("transform", "translateX" + "( -" + transformX + "px)");
                        mouseEventRevers("translateX", transformX)
                    }
                }

                function mouseEvent(cssProperty, value) {
                    figure.on("mouseenter", function() {
                        imageScroll.css("transform", cssProperty + "( -" + value + "px)")
                    });
                    figure.on("mouseleave", function() {
                        imageScroll.css("transform", cssProperty + "( 0px)")
                    })
                }

                function mouseEventRevers(cssProperty, value) {
                    figure.on("mouseenter", function() {
                        imageScroll.css("transform", cssProperty + "( 0px)")
                    });
                    figure.on("mouseleave", function() {
                        imageScroll.css("transform", cssProperty + "( -" + value + "px)")
                    })
                }
            }
        });
        var NavMenu = function _init($scope) {
            $scope.find(".ha-menu-toggler").on("click", function(event) {
                event.preventDefault();
                var el_form_group = $(this).parents(".ha-menu-container").parent();
                if (el_form_group.length < 1) {
                    el_form_group = $(this).parent()
                }
                var $wrapElement = el_form_group.find(".ha-menu-offcanvas-elements");
                if ($wrapElement.hasClass("active")) {
                    $wrapElement.removeClass("active")
                } else {
                    $wrapElement.addClass("active")
                }
            });
            if ($scope.find(".ha-menu-container").length > 0) {
                var additionalDigits = $scope.find(".ha-wid-con").data("responsive-breakpoint");
                var sidebar_mousemove = $scope.find(".ha-megamenu-has");
                var tabPadding = $scope.find(".ha-menu-container").outerHeight();
                $(window).on("resize", function() {
                    $scope.find(".ha-megamenu-panel").css({
                        top: tabPadding
                    })
                }).trigger("resize");
                sidebar_mousemove.on("mouseenter", function() {
                    var q = $(this).data("vertical-menu");
                    var jqel = $(this).children(".ha-megamenu-panel");
                    if ($(this).hasClass("ha-dropdown-menu-full_width") && $(this).hasClass("top_position")) {
                        var ffleft = Math.floor($(this).position().left - $(this).offset().left);
                        var $sharepreview = $(this);
                        $sharepreview.find(".ha-megamenu-panel").css("width", $(window).width());
                        $(window).on("resize", function() {
                            $sharepreview.find(".ha-megamenu-panel").css({
                                left: ffleft + "px"
                            })
                        }).trigger("resize")
                    }
                    if (!$(this).hasClass("ha-dropdown-menu-full_width") && $(this).hasClass("top_position")) {
                        $(this).on({
                            mouseenter: function setup() {
                                if (0 === $(".default_menu_position").length) {
                                    $(this).parents(".elementor-section-wrap").addClass("default_menu_position")
                                }
                            },
                            mouseleave: function setup() {
                                if (0 !== $(".default_menu_position").length) {
                                    $(this).parents(".elementor-section-wrap").removeClass("default_menu_position")
                                }
                            }
                        })
                    }
                    if (q && q !== undefined) {
                        if ("string" == typeof q) {
                            if (/^[0-9]/.test(q)) {
                                $(window).on("resize", function() {
                                    jqel.css({
                                        width: q
                                    });
                                    if (!($(document).width() > Number(additionalDigits))) {
                                        jqel.removeAttr("style")
                                    }
                                }).trigger("resize")
                            } else {
                                $(window).on("resize", function() {
                                    jqel.css({
                                        width: q + "px"
                                    });
                                    if (!($(document).width() > Number(additionalDigits))) {
                                        jqel.removeAttr("style")
                                    }
                                }).trigger("resize")
                            }
                        } else {
                            jqel.css({
                                width: q + "px"
                            })
                        }
                    } else {
                        $(window).on("resize", function() {
                            jqel.css({
                                width: q + "px"
                            });
                            if (!($(document).width() > Number(additionalDigits))) {
                                jqel.removeAttr("style")
                            }
                        }).trigger("resize")
                    }
                });
                sidebar_mousemove.trigger("mouseenter")
            }
        };
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-countdown.default", CountDown);
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-team-carousel.default", function($scope) {
            elementorFrontend.elementsHandler.addHandler(CarouselBase, {
                $element: $scope,
                selectors: {
                    container: ".ha-team-carousel-wrap"
                },
                prevArrow: '<button type="button" class="slick-prev"><i class="hm hm-arrow-left"></i></button>',
                nextArrow: '<button type="button" class="slick-next"><i class="hm hm-arrow-right"></i></button>'
            })
        });
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-source-code.default", SourceCode);
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-animated-text.default", AnimatedText);
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-logo-carousel.default", function($scope) {
            elementorFrontend.elementsHandler.addHandler(CarouselBase, {
                $element: $scope,
                selectors: {
                    container: ".ha-logo-carousel-wrap"
                }
            })
        });
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-testimonial-carousel.default", function($scope) {
            elementorFrontend.elementsHandler.addHandler(CarouselBase, {
                $element: $scope,
                selectors: {
                    container: ".ha-testimonial-carousel__wrap"
                }
            })
        });
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-advanced-tabs.default", function($scope) {
            elementorFrontend.elementsHandler.addHandler(TabHandlerBase, {
                $element: $scope
            })
        });
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-instagram-feed.default", InstagramFeed);
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-scrolling-image.default", function($scope) {
            elementorFrontend.elementsHandler.addHandler(ScrollingImage, {
                $element: $scope
            })
        });
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-pricing-table.default", PricingTableToolTip);
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-accordion.default", function($scope) {
            elementorFrontend.elementsHandler.addHandler(TabHandlerBase, {
                $element: $scope,
                selectors: {
                    tabTitle: ".ha-accordion__item-title",
                    tabContent: ".ha-accordion__item-content"
                },
                classes: {
                    active: "ha-accordion__item--active"
                },
                showTabFn: "slideDown",
                hideTabFn: "slideUp"
            })
        });
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-toggle.default", function($scope) {
            elementorFrontend.elementsHandler.addHandler(TabHandlerBase, {
                $element: $scope,
                selectors: {
                    tabTitle: ".ha-toggle__item-title",
                    tabContent: ".ha-toggle__item-content"
                },
                classes: {
                    active: "ha-toggle__item--active"
                },
                hidePrevious: !1,
                autoExpand: "editor",
                showTabFn: "slideDown",
                hideTabFn: "slideUp"
            })
        });
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-timeline.default", TimeLine);
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-hotspots.default", function($scope) {
            elementorFrontend.elementsHandler.addHandler(HotSpots, {
                $element: $scope
            })
        });
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-line-chart.default", LineChart);
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-pie-chart.default", PieChart);
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-polar-chart.default", PolarChart);
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-radar-chart.default", RadarChart);
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-facebook-feed.default", FacebookFeed);
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-smart-post-list.default", SmartPostList);
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-advanced-data-table.default", DataTable);
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-twitter-carousel.default", function($scope) {
            elementorFrontend.elementsHandler.addHandler(CarouselBase, {
                $element: $scope,
                selectors: {
                    container: ".ha-tweet-carousel-items"
                }
            })
        });
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-post-carousel.default", function($scope) {
            elementorFrontend.elementsHandler.addHandler(CarouselBase, {
                $element: $scope,
                selectors: {
                    container: ".ha-posts-carousel-wrapper"
                },
                prevArrow: '<button type="button" class="slick-prev"><i class="hm hm-arrow-left"></i></button>',
                nextArrow: '<button type="button" class="slick-next"><i class="hm hm-arrow-right"></i></button>'
            })
        });

        function initEddCarousel($scope) {
            elementorFrontend.elementsHandler.addHandler(CarouselBase, {
                $element: $scope,
                selectors: {
                    container: ".ha-edd-product-carousel-wrapper"
                },
                prevArrow: '<button type="button" class="slick-prev"><i class="hm hm-arrow-left"></i></button>',
                nextArrow: '<button type="button" class="slick-next"><i class="hm hm-arrow-right"></i></button>'
            })
        }

        function eddCarouselHandlerCallback($scope) {
            initEddCarousel($scope);
            initProductQuickView($scope)
        }
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-edd-product-carousel.default", eddCarouselHandlerCallback);

        function initProductCarousel($scope) {
            elementorFrontend.elementsHandler.addHandler(CarouselBase, {
                $element: $scope,
                selectors: {
                    container: ".ha-product-carousel-wrapper"
                },
                prevArrow: '<button type="button" class="slick-prev"><i class="hm hm-arrow-left"></i></button>',
                nextArrow: '<button type="button" class="slick-next"><i class="hm hm-arrow-right"></i></button>'
            })
        }

        function productCarouselHandlerCallback($scope) {
            initProductCarousel($scope);
            initProductQuickView($scope);
            if ($scope.find(".ha-product-carousel-wrapper").hasClass("ha-layout-modern")) {
                $scope.find(".ha-product-carousel-add-to-cart a").html('<i class="fas fa-shopping-cart"></i>')
            }
        }
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-product-carousel.classic", productCarouselHandlerCallback);
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-product-carousel.modern", productCarouselHandlerCallback);
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-product-carousel-new.default", productCarouselHandlerCallback);
        var productCategoryCarouselSkins = ["classic", "minimal"];

        function initProductCategoryCarousel($scope) {
            elementorFrontend.elementsHandler.addHandler(CarouselBase, {
                $element: $scope,
                selectors: {
                    container: ".ha-product-cat-carousel"
                },
                prevArrow: '<button type="button" class="slick-prev"><i class="hm hm-arrow-left"></i></button>',
                nextArrow: '<button type="button" class="slick-next"><i class="hm hm-arrow-right"></i></button>'
            })
        }
        productCategoryCarouselSkins.forEach(function(index) {
            elementorFrontend.hooks.addAction("frontend/element_ready/ha-product-category-carousel." + index, initProductCategoryCarousel)
        });
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-product-category-carousel-new.default", initProductCategoryCarousel);
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-edd-category-carousel.default", initProductCategoryCarousel);
        postGridSkins.forEach(function(index) {
            elementorFrontend.hooks.addAction("frontend/element_ready/ha-post-grid." + index, PostGrid)
        });
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-post-grid-new.default", PostGrid);
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-sticky-video.default", StickyVideo);
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-modal-popup.default", ModalPopup);

        function initProductQuickView($scope) {
            var $button = $scope.find(".ha-pqv-btn");
            if (!$.fn.magnificPopup) {
                return
            }
            $button.magnificPopup({
                type: "ajax",
                ajax: {
                    settings: {
                        cache: !0,
                        dataType: "html"
                    },
                    cursor: "mfp-ajax-cur",
                    tError: "The product could not be loaded."
                },
                callbacks: {
                    ajaxContentAdded: function ajaxContentAdded() {
                        $(this.content).addClass(this.currItem.el.data("modal-class"))
                    }
                }
            })
        }
        var initOnePageNav = elementorModules.frontend.handlers.Base.extend({
            onInit: function onInit() {
                elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
                this.run()
            },
            onElementChange: function onElementChange(e) {
                if (e == 'scroll_wheel' || e == 'touch_swipe' || e == 'scroll_keys') {
                    this.run()
                }
            },
            getReadySettings: function getReadySettings() {
                var settings = {
                    design: this.getElementSettings('select_design'),
                    speed: this.getElementSettings('scrolling_speed') || 700,
                    offset: this.getElementSettings('row_to_offset') || 0,
                    threshold: this.getEditSettings('section_threshold') || 0.50,
                    scrollWheel: this.getElementSettings('scroll_wheel') == 'yes',
                    touchSwipe: this.getElementSettings('touch_swipe') == 'yes',
                    scrollKeys: this.getElementSettings('scroll_keys') == 'yes'
                };
                return $.extend({}, this.getSettings(), settings)
            },
            scroll: function scroll(id, speed, offset) {
                $('html, body').animate({
                    scrollTop: $('#' + id).offset().top - offset
                }, speed)
            },
            run: function run() {
                var $this = this;
                var settings = this.getReadySettings();
                var track = !1;
                var $navWrapper = settings.design == 'ha-opn-design-default' ? this.$element.find(".ha-opn-dotted-item") : this.$element.find(".ha_opn__item");
                $navWrapper.on('click', function(e) {
                    e.preventDefault();
                    var targetId = $(this).find('a').data("section-id");
                    if ($('#' + targetId).length > 0) {
                        track = !1;
                        $this.scroll(targetId, settings.speed, settings.offset);
                        $navWrapper.removeClass('ha_opn__item--current');
                        $(this).addClass('ha_opn__item--current')
                    }
                });
                var sections = [];
                var navItems = {};
                if ($navWrapper.length > 0) {
                    $.each($navWrapper, function(index, nav) {
                        var targetId = $(this).find('a').data('section-id');
                        var targetSection = $('#' + targetId);
                        sections.push(targetSection[0]);
                        navItems[targetId] = $(this)[0]
                    })
                }
                var observerOptions = {
                    root: null,
                    rootMargin: "0px 0px -100px 0px",
                    threshold: settings.threshold
                };
                var currentEvent;
                var observer = new IntersectionObserver(function(entries) {
                    entries.forEach(function(entry) {
                        if (entry.isIntersecting) {
                            var navItem = navItems[entry.target.id];
                            navItem.classList.add('ha_opn__item--current');
                            Object.values(navItems).forEach(function(item) {
                                if (item != navItem) {
                                    item.classList.remove('ha_opn__item--current')
                                }
                            });
                            if (typeof elementor === 'undefined') {
                                if (currentEvent == 'load' && track) {
                                    track = !1;
                                    $this.scroll(entry.target.id, settings.speed, settings.offset)
                                }
                                if (settings.scrollWheel && currentEvent == 'scroll' && track) {
                                    track = !1;
                                    $this.scroll(entry.target.id, settings.speed, settings.offset)
                                }
                                if (settings.scrollKeys && currentEvent == 'keys' && track) {
                                    track = !1;
                                    $this.scroll(entry.target.id, settings.speed, settings.offset)
                                }
                                if (settings.touchSwipe && currentEvent == 'touch' && track) {
                                    track = !1;
                                    $this.scroll(entry.target.id, settings.speed, settings.offset)
                                }
                            }
                        }
                    })
                }, observerOptions);
                $(window).on('load', function() {
                    track = !0;
                    if (sections.length > 0) {
                        sections.forEach(function(sec) {
                            if (!(sec == undefined)) {
                                currentEvent = 'load';
                                observer.observe(sec)
                            }
                        })
                    }
                });
                $(window).on('mousewheel DOMMouseScroll', debounce(function(e) {
                    track = !0;
                    if (sections.length > 0) {
                        sections.forEach(function(sec) {
                            if (!(sec == undefined)) {
                                currentEvent = 'scroll';
                                observer.observe(sec)
                            }
                        })
                    }
                }, 200));
                if (typeof elementor === 'undefined') {
                    if (settings.scrollKeys) {
                        $(window).on('keydown', debounce(function(evt) {
                            track = !0;
                            var code = parseInt(evt.keyCode);
                            if (sections.length > 0) {
                                sections.forEach(function(sec) {
                                    if (!(sec == undefined)) {
                                        currentEvent = 'keys';
                                        observer.observe(sec)
                                    }
                                })
                            }
                        }, 200))
                    }
                    if (settings.touchSwipe) {
                        $(window).on('touchmove', debounce(function(evt) {
                            track = !0;
                            if (sections.length > 0) {
                                sections.forEach(function(sec) {
                                    if (!(sec == undefined)) {
                                        currentEvent = 'touch';
                                        observer.observe(sec)
                                    }
                                })
                            }
                        }, 200))
                    }
                }
            }
        });
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-one-page-nav.default", function($scope) {
            elementorFrontend.elementsHandler.addHandler(initOnePageNav, {
                $element: $scope
            })
        });
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-advanced-slider.default", function($scope) {
            elementorFrontend.elementsHandler.addHandler(SliderBase, {
                $element: $scope,
                selectors: {
                    container: ".ha-slider-widget-wrapper"
                }
            })
        });
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-product-grid.classic", initProductQuickView);
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-product-grid.hover", initProductQuickView);
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-product-grid-new.default", initProductQuickView);
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-single-product.classic", initProductQuickView);
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-single-product.standard", initProductQuickView);
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-single-product.landscape", initProductQuickView);
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-single-product-new.default", initProductQuickView);
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-edd-single-product.default", initProductQuickView);
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-edd-product-grid.default", initProductQuickView);
        $(document.body).on("added_to_cart", function(event, fragment, hash, $addToCart) {
            if ($addToCart != undefined && $addToCart.length > 0) {
                $addToCart.parent(".ha-product-grid__btns").removeClass("ha-is--adding").addClass("ha-is--added")
            }
        });
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-mini-cart.default", miniCart);
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-image-scroller.default", function($scope) {
            elementorFrontend.elementsHandler.addHandler(ImageScroller, {
                $element: $scope
            })
        });
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-nav-menu.default", NavMenu);
        var $trigger;
        var OffCanvas = function OffCanvas($scope) {
            this.node = $scope;
            this.wrap = $scope.find(".ha-offcanvas-content-wrap");
            this.cart_wrap = $scope.find(".ha-offcanvas-cart-container");
            this.content = $scope.find(".ha-offcanvas-content");
            this.button = $scope.find(".ha-offcanvas-toggle");
            this.settings = this.wrap.data("settings");
            this.toggle_source = this.settings.toggle_source;
            this.id = this.settings.content_id;
            this.toggle_id = this.settings.toggle_id;
            this.toggle_class = this.settings.toggle_class;
            this.transition = this.settings.transition;
            this.esc_close = this.settings.esc_close;
            this.body_click_close = this.settings.body_click_close;
            this.links_click_close = this.settings.links_click_close;
            this.direction = this.settings.direction;
            this.buttons_position = this.settings.buttons_position;
            this.duration = 500;
            this.destroy();
            this.init()
        };
        OffCanvas.prototype = {
            id: "",
            node: "",
            wrap: "",
            content: "",
            button: "",
            settings: {},
            transition: "",
            duration: 400,
            initialized: !1,
            animations: ["slide", "slide-along", "reveal", "push"],
            init: function init() {
                if (!this.wrap.length) {
                    return
                }
                $("html").addClass("ha-offcanvas-content-widget");
                if ($(".ha-offcanvas-container").length === 0) {
                    var faProJs = $("#font-awesome-pro-js").length > 0 ? $("#font-awesome-pro-js").attr("src") : !1;
                    if (faProJs) {
                        $("#font-awesome-pro-js").remove()
                    }
                    $("body").wrapInner('<div class="ha-offcanvas-container" />');
                    this.content.insertBefore(".ha-offcanvas-container");
                    if (faProJs) {
                        $("body").append('<script type="text/javascript" id="font-awesome-pro-js" src="' + faProJs + '"></script>')
                    }
                }
                if (this.wrap.find(".ha-offcanvas-content").length > 0) {
                    if ($(".ha-offcanvas-container > .ha-offcanvas-content-" + this.id).length > 0) {
                        $(".ha-offcanvas-container > .ha-offcanvas-content-" + this.id).remove()
                    }
                    if ($("body > .ha-offcanvas-content-" + this.id).length > 0) {
                        $("body > .ha-offcanvas-content-" + this.id).remove()
                    }
                    $("body").prepend(this.wrap.find(".ha-offcanvas-content"))
                }
                this.bindEvents()
            },
            destroy: function destroy() {
                this.close();
                this.animations.forEach(function(animation) {
                    if ($("html").hasClass("ha-offcanvas-content-" + animation)) {
                        $("html").removeClass("ha-offcanvas-content-" + animation)
                    }
                });
                if ($("body > .ha-offcanvas-content-" + this.id).length > 0) {}
            },
            setTrigger: function setTrigger() {
                var $trigger = !1;
                if (this.toggle_source == "element-id" && this.toggle_id != "") {
                    $trigger = $("#" + this.toggle_id)
                } else if (this.toggle_source == "element-class" && this.toggle_class != "") {
                    $trigger = $("." + this.toggle_class)
                } else {
                    $trigger = this.node.find(".ha-offcanvas-toggle")
                }
                return $trigger
            },
            bindEvents: function bindEvents() {
                $trigger = this.setTrigger();
                if ($trigger) {
                    $trigger.on("click", $.proxy(this.toggleContent, this))
                }
                $("body").delegate(".ha-offcanvas-content .ha-offcanvas-close", "click", $.proxy(this.close, this));
                if (this.links_click_close === "yes") {
                    $("body").delegate(".ha-offcanvas-content .ha-offcanvas-body a", "click", $.proxy(this.close, this))
                }
                if (this.esc_close === "yes") {
                    this.closeESC()
                }
                if (this.body_click_close === "yes") {
                    this.closeClick()
                }
                $(window).resize($.proxy(this._resize, this))
            },
            toggleContent: function toggleContent(e) {
                e.preventDefault();
                if (!$("html").hasClass("ha-offcanvas-content-open")) {
                    this.show()
                } else {
                    this.close()
                }
                this._resize()
            },
            show: function show() {
                $(".ha-offcanvas-content-" + this.id).addClass("ha-offcanvas-content-visible");
                $("html").addClass("ha-offcanvas-content-" + this.transition);
                $("html").addClass("ha-offcanvas-content-" + this.direction);
                $("html").addClass("ha-offcanvas-content-open");
                $("html").addClass("ha-offcanvas-content-" + this.id + "-open");
                $("html").addClass("ha-offcanvas-content-reset");
                this.button.addClass("ha-is-active");
                this._resize()
            },
            close: function close() {
                $("html").removeClass("ha-offcanvas-content-open");
                $("html").removeClass("ha-offcanvas-content-" + this.id + "-open");
                setTimeout($.proxy(function() {
                    $("html").removeClass("ha-offcanvas-content-reset");
                    $("html").removeClass("ha-offcanvas-content-" + this.transition);
                    $("html").removeClass("ha-offcanvas-content-" + this.direction);
                    $(".ha-offcanvas-content-" + this.id).removeClass("ha-offcanvas-content-visible")
                }, this), 500);
                this.button.removeClass("ha-is-active")
            },
            closeESC: function closeESC() {
                var self = this;
                if ("" === self.settings.esc_close) {
                    return
                }
                $(document).on("keydown", function(e) {
                    if (e.keyCode === 27) {
                        self.close()
                    }
                })
            },
            closeClick: function closeClick() {
                var self = this;
                if (this.toggle_source == "element-id" && this.toggle_id != "") {
                    $trigger = "#" + this.toggle_id
                } else if (this.toggle_source == "element-class" && this.toggle_class != "") {
                    $trigger = "." + this.toggle_class
                } else {
                    $trigger = ".ha-offcanvas-toggle"
                }
                $(document).on("click", function(e) {
                    if ($(e.target).is(".ha-offcanvas-content") || $(e.target).parents(".ha-offcanvas-content").length > 0 || $(e.target).is(".ha-offcanvas-toggle") || $(e.target).parents(".ha-offcanvas-toggle").length > 0 || $(e.target).is($trigger) || $(e.target).parents($trigger).length > 0 || !$(e.target).is(".ha-offcanvas-container")) {
                        return
                    } else {
                        self.close()
                    }
                })
            },
            _resize: function _resize() {
                if (!this.cart_wrap.length) {
                    return
                }
                var off_canvas = $(".ha-offcanvas-content-" + this.id);
                if (off_canvas && off_canvas.length > 0) {
                    if (this.buttons_position === "bottom") {
                        var winHeight = window.innerHeight;
                        var offset = 0;
                        if ($("body").hasClass("admin-bar")) {
                            offset = 32
                        }
                        winHeight = winHeight - offset;
                        off_canvas.find(".ha-offcanvas-inner").css({
                            height: winHeight + "px",
                            top: offset
                        });
                        headerHeight = off_canvas.find(".ha-offcanvas-cart-header").outerHeight(!0);
                        wrapHeight = off_canvas.find(".ha-offcanvas-wrap").outerHeight();
                        cartTotalHeight = off_canvas.find(".woocommerce-mini-cart__total").outerHeight();
                        cartButtonsHeight = off_canvas.find(".woocommerce-mini-cart__buttons").outerHeight();
                        cartMessageHeight = off_canvas.find(".ha-woo-menu-cart-message").outerHeight();
                        itemsHeight = winHeight - (headerHeight + cartTotalHeight + cartButtonsHeight + cartMessageHeight);
                        finalItemsHeight = itemsHeight - (winHeight - wrapHeight);
                        finalItemsHeight += "px"
                    } else {
                        finalItemsHeight = "auto"
                    }
                    var style = '<style id="ha-woo-style-' + this.id + '">';
                    style += "#" + off_canvas.attr("id") + " .woocommerce-mini-cart.cart_list {";
                    style += "height: " + finalItemsHeight;
                    style += "}";
                    style += "</style>";
                    if ($("#ha-woopack-style-" + this.id).length > 0) {
                        $("#ha-woopack-style-" + this.id).remove()
                    }
                    $("head").append(style)
                }
            }
        };
        var initOffCanvas = function initOffCanvas($scope, $) {
            var content_wrap = $scope.find(".ha-offcanvas-content-wrap");
            if ($(content_wrap).length > 0) {
                new OffCanvas($scope)
            }
        };
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-off-canvas.default", initOffCanvas);
        var Unfold = elementorModules.frontend.handlers.Base.extend({
            onInit: function onInit() {
                elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
                this.run()
            },
            onElementChange: function onElementChange(e) {
                if (e == "unfold_text" || e == "unfold_icon" || e == "fold_text" || e == "fold_icon" || e == "fold_height" || e == "transition_duration" || e == "trigger") {
                    this.run();
                    if (e == "fold_height") {
                        this.$element.find(".ha-unfold-data").css("height", this.getCollapseHeight() + "px")
                    }
                }
            },
            getReadySettings: function getReadySettings() {
                var settings = {
                    collapse_height: this.getElementSettings("fold_height") || 50,
                    collapse_height_tablet: this.getElementSettings("fold_height_tablet") || this.getElementSettings("fold_height") || 50,
                    collapse_height_mobile: this.getElementSettings("fold_height_mobile") || this.getElementSettings("fold_height_tablet") || this.getElementSettings("fold_height") || 50,
                    trigger: this.getElementSettings("trigger"),
                    transition_duration: this.getElementSettings("transition_duration") || 500,
                    collapse_text: this.getElementSettings("unfold_text"),
                    collapse_icon: this.getElementSettings("unfold_icon"),
                    expand_text: this.getElementSettings("fold_text"),
                    expand_icon: this.getElementSettings("fold_icon")
                };
                return $.extend({}, settings)
            },
            getCollapseHeight: function getCollapseHeight() {
                var body = this.$element.parents("body");
                var unfoldSettings = this.getReadySettings();
                var collapse_height = 50;
                if (body.attr("data-elementor-device-mode") == "desktop") {
                    collapse_height = unfoldSettings.collapse_height
                }
                if (body.attr("data-elementor-device-mode") == "tablet") {
                    collapse_height = unfoldSettings.collapse_height_tablet
                }
                if (body.attr("data-elementor-device-mode") == "mobile") {
                    collapse_height = unfoldSettings.collapse_height_mobile
                }
                return collapse_height
            },
            fold: function fold(unfoldData, button, collapse_height, unfoldRender) {
                var unfoldSettings = this.getReadySettings();
                var html = unfoldSettings.collapse_icon ? unfoldSettings.collapse_icon.value ? '<i aria-hidden="true" class="' + unfoldSettings.collapse_icon.value + '"></i>' : "" : "";
                html += unfoldSettings.collapse_text ? "<span>" + unfoldSettings.collapse_text + "</span>" : "";
                unfoldData.css({
                    "transition-duration": unfoldSettings.transition_duration + "ms",
                    "height": unfoldRender.outerHeight(!0) + 'px'
                });
                unfoldData.animate({
                    height: collapse_height
                }, 0);
                var timeOut = setTimeout(function() {
                    button.html(html);
                    clearTimeout(timeOut)
                }, unfoldSettings.transition_duration);
                unfoldData.removeClass("folded")
            },
            unfold: function unfold(unfoldData, unfoldRender, button) {
                var unfoldSettings = this.getReadySettings();
                var html = unfoldSettings.expand_icon ? unfoldSettings.expand_icon.value ? '<i aria-hidden="true" class="' + unfoldSettings.expand_icon.value + '"></i>' : "" : "";
                html += unfoldSettings.expand_text ? "<span>" + unfoldSettings.expand_text + "</span>" : "";
                unfoldData.css("transition-duration", unfoldSettings.transition_duration + "ms");
                unfoldData.animate({
                    height: unfoldRender.outerHeight(!0)
                }, 0);
                var timeOut = setTimeout(function() {
                    unfoldData.css("height", 'auto');
                    button.html(html);
                    clearTimeout(timeOut)
                }, unfoldSettings.transition_duration);
                unfoldData.addClass("folded")
            },
            run: function run() {
                var $this = this;
                var button = this.$element.find(".ha-unfold-btn"),
                    unfoldData = this.$element.find(".ha-unfold-data"),
                    unfoldRender = this.$element.find(".ha-unfold-data-render");
                var unfoldSettings = this.getReadySettings();
                var collapse_height = $this.getCollapseHeight();
                unfoldData.css("height", collapse_height + "px");
                if (unfoldSettings.trigger == "click") {
                    button.on("click", function() {
                        collapse_height = $this.getCollapseHeight();
                        if (unfoldData.hasClass("folded")) {
                            $this.fold(unfoldData, button, collapse_height, unfoldRender)
                        } else {
                            $this.unfold(unfoldData, unfoldRender, button)
                        }
                    })
                } else if (unfoldSettings.trigger == "hover") {
                    unfoldData.on("mouseenter", function() {
                        $this.unfold(unfoldData, unfoldRender, button)
                    });
                    unfoldData.on("mouseleave", function() {
                        collapse_height = $this.getCollapseHeight();
                        $this.fold(unfoldData, button, collapse_height, unfoldRender)
                    })
                }
            }
        });
        var Maps = elementorModules.frontend.handlers.Base.extend({
            onInit: function onInit() {
                elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments);
                this.runMap()
            },
            defaultStyle: function defaultStyle() {
                var defaultStyles = {
                    standard: "",
                    silver: [{
                        elementType: "geometry",
                        stylers: [{
                            color: "#f5f5f5"
                        }]
                    }, {
                        elementType: "labels.icon",
                        stylers: [{
                            visibility: "off"
                        }]
                    }, {
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#616161"
                        }]
                    }, {
                        elementType: "labels.text.stroke",
                        stylers: [{
                            color: "#f5f5f5"
                        }]
                    }, {
                        featureType: "administrative.land_parcel",
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#bdbdbd"
                        }]
                    }, {
                        featureType: "poi",
                        elementType: "geometry",
                        stylers: [{
                            color: "#eeeeee"
                        }]
                    }, {
                        featureType: "poi",
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#757575"
                        }]
                    }, {
                        featureType: "poi.park",
                        elementType: "geometry",
                        stylers: [{
                            color: "#e5e5e5"
                        }]
                    }, {
                        featureType: "poi.park",
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#9e9e9e"
                        }]
                    }, {
                        featureType: "road",
                        elementType: "geometry",
                        stylers: [{
                            color: "#ffffff"
                        }]
                    }, {
                        featureType: "road.arterial",
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#757575"
                        }]
                    }, {
                        featureType: "road.highway",
                        elementType: "geometry",
                        stylers: [{
                            color: "#dadada"
                        }]
                    }, {
                        featureType: "road.highway",
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#616161"
                        }]
                    }, {
                        featureType: "road.local",
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#9e9e9e"
                        }]
                    }, {
                        featureType: "transit.line",
                        elementType: "geometry",
                        stylers: [{
                            color: "#e5e5e5"
                        }]
                    }, {
                        featureType: "transit.station",
                        elementType: "geometry",
                        stylers: [{
                            color: "#eeeeee"
                        }]
                    }, {
                        featureType: "water",
                        elementType: "geometry",
                        stylers: [{
                            color: "#c9c9c9"
                        }]
                    }, {
                        featureType: "water",
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#9e9e9e"
                        }]
                    }],
                    retro: [{
                        elementType: "geometry",
                        stylers: [{
                            color: "#ebe3cd"
                        }]
                    }, {
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#523735"
                        }]
                    }, {
                        elementType: "labels.text.stroke",
                        stylers: [{
                            color: "#f5f1e6"
                        }]
                    }, {
                        featureType: "administrative",
                        elementType: "geometry.stroke",
                        stylers: [{
                            color: "#c9b2a6"
                        }]
                    }, {
                        featureType: "administrative.land_parcel",
                        elementType: "geometry.stroke",
                        stylers: [{
                            color: "#dcd2be"
                        }]
                    }, {
                        featureType: "administrative.land_parcel",
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#ae9e90"
                        }]
                    }, {
                        featureType: "landscape.natural",
                        elementType: "geometry",
                        stylers: [{
                            color: "#dfd2ae"
                        }]
                    }, {
                        featureType: "poi",
                        elementType: "geometry",
                        stylers: [{
                            color: "#dfd2ae"
                        }]
                    }, {
                        featureType: "poi",
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#93817c"
                        }]
                    }, {
                        featureType: "poi.park",
                        elementType: "geometry.fill",
                        stylers: [{
                            color: "#a5b076"
                        }]
                    }, {
                        featureType: "poi.park",
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#447530"
                        }]
                    }, {
                        featureType: "road",
                        elementType: "geometry",
                        stylers: [{
                            color: "#f5f1e6"
                        }]
                    }, {
                        featureType: "road.arterial",
                        elementType: "geometry",
                        stylers: [{
                            color: "#fdfcf8"
                        }]
                    }, {
                        featureType: "road.highway",
                        elementType: "geometry",
                        stylers: [{
                            color: "#f8c967"
                        }]
                    }, {
                        featureType: "road.highway",
                        elementType: "geometry.stroke",
                        stylers: [{
                            color: "#e9bc62"
                        }]
                    }, {
                        featureType: "road.highway.controlled_access",
                        elementType: "geometry",
                        stylers: [{
                            color: "#e98d58"
                        }]
                    }, {
                        featureType: "road.highway.controlled_access",
                        elementType: "geometry.stroke",
                        stylers: [{
                            color: "#db8555"
                        }]
                    }, {
                        featureType: "road.local",
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#806b63"
                        }]
                    }, {
                        featureType: "transit.line",
                        elementType: "geometry",
                        stylers: [{
                            color: "#dfd2ae"
                        }]
                    }, {
                        featureType: "transit.line",
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#8f7d77"
                        }]
                    }, {
                        featureType: "transit.line",
                        elementType: "labels.text.stroke",
                        stylers: [{
                            color: "#ebe3cd"
                        }]
                    }, {
                        featureType: "transit.station",
                        elementType: "geometry",
                        stylers: [{
                            color: "#dfd2ae"
                        }]
                    }, {
                        featureType: "water",
                        elementType: "geometry.fill",
                        stylers: [{
                            color: "#b9d3c2"
                        }]
                    }, {
                        featureType: "water",
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#92998d"
                        }]
                    }],
                    dark: [{
                        elementType: "geometry",
                        stylers: [{
                            color: "#212121"
                        }]
                    }, {
                        elementType: "labels.icon",
                        stylers: [{
                            visibility: "off"
                        }]
                    }, {
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#757575"
                        }]
                    }, {
                        elementType: "labels.text.stroke",
                        stylers: [{
                            color: "#212121"
                        }]
                    }, {
                        featureType: "administrative",
                        elementType: "geometry",
                        stylers: [{
                            color: "#757575"
                        }]
                    }, {
                        featureType: "administrative.country",
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#9e9e9e"
                        }]
                    }, {
                        featureType: "administrative.land_parcel",
                        stylers: [{
                            visibility: "off"
                        }]
                    }, {
                        featureType: "administrative.locality",
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#bdbdbd"
                        }]
                    }, {
                        featureType: "poi",
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#757575"
                        }]
                    }, {
                        featureType: "poi.park",
                        elementType: "geometry",
                        stylers: [{
                            color: "#181818"
                        }]
                    }, {
                        featureType: "poi.park",
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#616161"
                        }]
                    }, {
                        featureType: "poi.park",
                        elementType: "labels.text.stroke",
                        stylers: [{
                            color: "#1b1b1b"
                        }]
                    }, {
                        featureType: "road",
                        elementType: "geometry.fill",
                        stylers: [{
                            color: "#2c2c2c"
                        }]
                    }, {
                        featureType: "road",
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#8a8a8a"
                        }]
                    }, {
                        featureType: "road.arterial",
                        elementType: "geometry",
                        stylers: [{
                            color: "#373737"
                        }]
                    }, {
                        featureType: "road.highway",
                        elementType: "geometry",
                        stylers: [{
                            color: "#3c3c3c"
                        }]
                    }, {
                        featureType: "road.highway.controlled_access",
                        elementType: "geometry",
                        stylers: [{
                            color: "#4e4e4e"
                        }]
                    }, {
                        featureType: "road.local",
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#616161"
                        }]
                    }, {
                        featureType: "transit",
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#757575"
                        }]
                    }, {
                        featureType: "water",
                        elementType: "geometry",
                        stylers: [{
                            color: "#000000"
                        }]
                    }, {
                        featureType: "water",
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#3d3d3d"
                        }]
                    }],
                    night: [{
                        elementType: "geometry",
                        stylers: [{
                            color: "#242f3e"
                        }]
                    }, {
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#746855"
                        }]
                    }, {
                        elementType: "labels.text.stroke",
                        stylers: [{
                            color: "#242f3e"
                        }]
                    }, {
                        featureType: "administrative.locality",
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#d59563"
                        }]
                    }, {
                        featureType: "poi",
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#d59563"
                        }]
                    }, {
                        featureType: "poi.park",
                        elementType: "geometry",
                        stylers: [{
                            color: "#263c3f"
                        }]
                    }, {
                        featureType: "poi.park",
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#6b9a76"
                        }]
                    }, {
                        featureType: "road",
                        elementType: "geometry",
                        stylers: [{
                            color: "#38414e"
                        }]
                    }, {
                        featureType: "road",
                        elementType: "geometry.stroke",
                        stylers: [{
                            color: "#212a37"
                        }]
                    }, {
                        featureType: "road",
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#9ca5b3"
                        }]
                    }, {
                        featureType: "road.highway",
                        elementType: "geometry",
                        stylers: [{
                            color: "#746855"
                        }]
                    }, {
                        featureType: "road.highway",
                        elementType: "geometry.stroke",
                        stylers: [{
                            color: "#1f2835"
                        }]
                    }, {
                        featureType: "road.highway",
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#f3d19c"
                        }]
                    }, {
                        featureType: "transit",
                        elementType: "geometry",
                        stylers: [{
                            color: "#2f3948"
                        }]
                    }, {
                        featureType: "transit.station",
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#d59563"
                        }]
                    }, {
                        featureType: "water",
                        elementType: "geometry",
                        stylers: [{
                            color: "#17263c"
                        }]
                    }, {
                        featureType: "water",
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#515c6d"
                        }]
                    }, {
                        featureType: "water",
                        elementType: "labels.text.stroke",
                        stylers: [{
                            color: "#17263c"
                        }]
                    }],
                    aubergine: [{
                        elementType: "geometry",
                        stylers: [{
                            color: "#1d2c4d"
                        }]
                    }, {
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#8ec3b9"
                        }]
                    }, {
                        elementType: "labels.text.stroke",
                        stylers: [{
                            color: "#1a3646"
                        }]
                    }, {
                        featureType: "administrative.country",
                        elementType: "geometry.stroke",
                        stylers: [{
                            color: "#4b6878"
                        }]
                    }, {
                        featureType: "administrative.land_parcel",
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#64779e"
                        }]
                    }, {
                        featureType: "administrative.province",
                        elementType: "geometry.stroke",
                        stylers: [{
                            color: "#4b6878"
                        }]
                    }, {
                        featureType: "landscape.man_made",
                        elementType: "geometry.stroke",
                        stylers: [{
                            color: "#334e87"
                        }]
                    }, {
                        featureType: "landscape.natural",
                        elementType: "geometry",
                        stylers: [{
                            color: "#023e58"
                        }]
                    }, {
                        featureType: "poi",
                        elementType: "geometry",
                        stylers: [{
                            color: "#283d6a"
                        }]
                    }, {
                        featureType: "poi",
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#6f9ba5"
                        }]
                    }, {
                        featureType: "poi",
                        elementType: "labels.text.stroke",
                        stylers: [{
                            color: "#1d2c4d"
                        }]
                    }, {
                        featureType: "poi.park",
                        elementType: "geometry.fill",
                        stylers: [{
                            color: "#023e58"
                        }]
                    }, {
                        featureType: "poi.park",
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#3C7680"
                        }]
                    }, {
                        featureType: "road",
                        elementType: "geometry",
                        stylers: [{
                            color: "#304a7d"
                        }]
                    }, {
                        featureType: "road",
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#98a5be"
                        }]
                    }, {
                        featureType: "road",
                        elementType: "labels.text.stroke",
                        stylers: [{
                            color: "#1d2c4d"
                        }]
                    }, {
                        featureType: "road.highway",
                        elementType: "geometry",
                        stylers: [{
                            color: "#2c6675"
                        }]
                    }, {
                        featureType: "road.highway",
                        elementType: "geometry.stroke",
                        stylers: [{
                            color: "#255763"
                        }]
                    }, {
                        featureType: "road.highway",
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#b0d5ce"
                        }]
                    }, {
                        featureType: "road.highway",
                        elementType: "labels.text.stroke",
                        stylers: [{
                            color: "#023e58"
                        }]
                    }, {
                        featureType: "transit",
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#98a5be"
                        }]
                    }, {
                        featureType: "transit",
                        elementType: "labels.text.stroke",
                        stylers: [{
                            color: "#1d2c4d"
                        }]
                    }, {
                        featureType: "transit.line",
                        elementType: "geometry.fill",
                        stylers: [{
                            color: "#283d6a"
                        }]
                    }, {
                        featureType: "transit.station",
                        elementType: "geometry",
                        stylers: [{
                            color: "#3a4762"
                        }]
                    }, {
                        featureType: "water",
                        elementType: "geometry",
                        stylers: [{
                            color: "#0e1626"
                        }]
                    }, {
                        featureType: "water",
                        elementType: "labels.text.fill",
                        stylers: [{
                            color: "#4e6d70"
                        }]
                    }]
                };
                return defaultStyles
            },
            settings: function settings(wrapper) {
                var item = document.querySelector(wrapper);
                var settings = {
                    latitude: parseFloat(item.dataset.latitude),
                    longitude: parseFloat(item.dataset.longitude),
                    mapType: item.dataset.mapType,
                    markers: item.dataset.markers,
                    polylines: item.dataset.polylines,
                    mapZoom: parseInt(item.dataset.mapZoom),
                    mapZoomMobile: parseInt(item.dataset.mapZoomMobile),
                    mapZoomTablet: parseInt(item.dataset.mapZoomTablet),
                    scrollWheelZoom: item.dataset.scrollWheelZoom,
                    zoomControl: item.dataset.zoomControl,
                    fullscreenControl: item.dataset.fullScreen,
                    mapDraggable: item.dataset.disableMapDrag,
                    showLegend: item.dataset.showLegend,
                    showRoute: item.dataset.showRoute,
                    googleMapType: item.dataset.googleMapType,
                    mapTypeControl: item.dataset.mapTypeControl,
                    streetViewControl: item.dataset.streetView,
                    infoOpen: item.dataset.infoOpen,
                    infoOpenHover: item.dataset.infoOpenHover,
                    mapStyle: item.dataset.mapStyle,
                    customMapStyles: item.dataset.customMapStyle,
                    defaultStyle: this.defaultStyle(),
                    strokeColor: item.dataset.strokeColor,
                    strokeOpacity: item.dataset.strokeOpacity,
                    strokeWeight: item.dataset.strokeWeight,
                    strokeFill: item.dataset.strokeFill,
                    strokeFillOpacity: item.dataset.strokeFillOpacity,
                    originLat: item.dataset.originLat,
                    originLng: item.dataset.originLng,
                    destLat: item.dataset.destLat,
                    destLng: item.dataset.destLng,
                    travelMode: item.dataset.travelMode
                };
                return settings
            },
            isValidJsonString: function isValidJsonString(jsonString) {
                try {
                    JSON.parse(jsonString)
                } catch (e) {
                    return !1
                }
                return !0
            },
            mapInit: function mapInit(wrapper) {
                var settings = this.settings(wrapper);
                var markersOptionsArray = JSON.parse(settings.markers);
                var map;
                var directionsService = new google.maps.DirectionsService();
                var directionsRenderer = new google.maps.DirectionsRenderer();
                var finalZoomLevel = settings.mapZoom;
                window.addEventListener("resize", function() {
                    if (elementorFrontend.getCurrentDeviceMode() == "mobile") {
                        finalZoomLevel = settings.mapZoomMobile
                    } else if (elementorFrontend.getCurrentDeviceMode() == "tablet") {
                        finalZoomLevel = settings.mapZoomTablet
                    } else {
                        finalZoomLevel = settings.mapZoom
                    }
                });
                map = new google.maps.Map(document.querySelector(".ha-adv-google-map__wrapper" + wrapper), {
                    center: {
                        lat: settings.latitude === "" ? -34.391 : settings.latitude,
                        lng: settings.longitude === "" ? 150.644 : settings.longitude
                    },
                    zoom: finalZoomLevel,
                    mapTypeId: settings.mapType,
                    zoomControl: settings.zoomControl === "yes",
                    mapTypeControl: settings.mapTypeControl === "yes",
                    fullscreenControl: settings.fullscreenControl === "yes",
                    streetViewControl: settings.streetViewControl === "yes",
                    gestureHandling: settings.scrollWheelZoom === "yes" ? "greedy" : "cooperative",
                    draggable: settings.mapDraggable !== "yes",
                    styles: settings.mapStyle !== "custom" ? settings.defaultStyle[settings.mapStyle] : !this.isValidJsonString(settings.customMapStyles) ? "" : JSON.parse(settings.customMapStyles)
                });
                if (settings.mapDraggable === "yes") {
                    map.setOptions({
                        draggableCursor: "default"
                    })
                }
                markersOptionsArray.forEach(function(option) {
                    var marker = new google.maps.Marker({
                        icon: option.pin_icon.url === "" ? "" : {
                            url: option.pin_icon.url,
                            scaledSize: new google.maps.Size(option.rectangular_image === "yes" ? +option.rectangular_pin_size_width.size : +option.square_pin_size.size, option.rectangular_image === "yes" ? +option.rectangular_pin_size_height.size : +option.square_pin_size.size)
                        },
                        map: map,
                        position: {
                            lat: +option.pin_latitude,
                            lng: +option.pin_longitude
                        }
                    });
                    var infoWindow = new google.maps.InfoWindow({
                        content: '<div class="ha-adv-google-map__marker-wrapper">' + '<div class="ha-adv-google-map__marker-title-wrapper">' + '<div class="ha-adv-google-map__marker-title" style="display: inline-block">' + option.pin_item_title + "</div>" + "</div>" + '<div class="ha-adv-google-map__marker-description-wrapper">' + '<div class="ha-adv-google-map__marker-description">' + option.pin_item_description + "</div>" + "</div>" + "</div>"
                    });
                    if (settings.infoOpen === "yes") {
                        infoWindow.open(map, marker)
                    }
                    if (settings.infoOpenHover === "yes") {
                        marker.addListener("mouseover", function(e) {
                            infoWindow.open(map, marker)
                        });
                        marker.addListener("mouseout", function(e) {
                            var timeOut = setTimeout(function() {
                                infoWindow.close();
                                clearTimeout(timeOut)
                            }, 1000)
                        })
                    } else {
                        marker.addListener("click", function() {
                            infoWindow.open(map, marker)
                        })
                    }
                });
                if (settings.showLegend === "yes") {
                    var legend = document.querySelector(wrapper).nextElementSibling;
                    map.controls[google.maps.ControlPosition.RIGHT_BOTTOM].push(legend)
                }
                if (settings.googleMapType == "polyline") {
                    var polylines_data = JSON.parse(settings.polylines);
                    var polylines_arr = [];
                    polylines_data.forEach(function(polyline) {
                        polylines_arr.push({
                            lat: parseFloat(polyline.ha_gmap_polyline_lat),
                            lng: parseFloat(polyline.ha_gmap_polyline_lng)
                        })
                    });
                    var polyLinePath = JSON.parse(JSON.stringify(polylines_arr));
                    var polyPath = new google.maps.Polyline({
                        path: polyLinePath,
                        strokeColor: settings.strokeColor,
                        strokeOpacity: settings.strokeOpacity,
                        strokeWeight: settings.strokeWeight
                    });
                    polyPath.setMap(map)
                }
                if (settings.googleMapType == "polygon") {
                    var polylines_data = JSON.parse(settings.polylines);
                    var polylines_arr = [];
                    polylines_data.forEach(function(polyline) {
                        polylines_arr.push({
                            lat: parseFloat(polyline.ha_gmap_polyline_lat),
                            lng: parseFloat(polyline.ha_gmap_polyline_lng)
                        })
                    });
                    var polyLinePath = JSON.parse(JSON.stringify(polylines_arr));
                    var polygon = new google.maps.Polygon({
                        path: polyLinePath,
                        strokeColor: settings.strokeColor,
                        strokeOpacity: settings.strokeOpacity,
                        strokeWeight: settings.strokeWeight,
                        fillColor: settings.strokeFill,
                        fillOpacity: settings.strokeFillOpacity
                    });
                    polygon.setMap(map)
                }
                if (settings.googleMapType == "routes") {
                    this.routeDraw(directionsService, directionsRenderer, settings);
                    directionsRenderer.setMap(map)
                }
                google.maps.event.addDomListener(window, "resize", function() {
                    var center = map.getCenter();
                    google.maps.event.trigger(map, "resize");
                    map.setCenter(center);
                    map.setZoom(finalZoomLevel)
                })
            },
            routeDraw: function routeDraw(directionsService, directionsRenderer, settings) {
                var start = settings.originLat + "," + settings.originLng;
                var end = settings.destLat + "," + settings.destLng;
                directionsService.route({
                    origin: {
                        query: start
                    },
                    destination: {
                        query: end
                    },
                    travelMode: settings.travelMode.toUpperCase()
                }, function(response, status) {
                    if (status === "OK") {
                        directionsRenderer.setDirections(response)
                    } else {}
                })
            },
            runMap: function runMap() {
                var gmaper = document.querySelectorAll(".ha-adv-google-map__wrapper");
                for (var i = 0; i < gmaper.length; i++) {
                    gmaper[i].classList.add("ha-adv-google-map__wrapper--item" + i);
                    this.mapInit(".ha-adv-google-map__wrapper--item" + i)
                }
            }
        });
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-google-map.default", function($scope) {
            elementorFrontend.elementsHandler.addHandler(Maps, {
                $element: $scope,
                selectors: {
                    container: ".ha-adv-google-map__wrapper"
                }
            })
        });
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-unfold.default", function($scope) {
            elementorFrontend.elementsHandler.addHandler(Unfold, {
                $element: $scope
            })
        });
        var EddCart = function EddCart($scope) {
            var optionEL = $scope.find('.ha-edd-table-wrap');
            var settings = optionEL.data('options');
            var removeEl = $scope.find('.edd-remove-from-cart');
            if (settings.cart_btn_type == 'icon') {
                removeEl.html("<i class=\"".concat(settings.icon.value, "\"></i>"))
            } else {
                removeEl.text(settings.btn_text)
            }
        };
        elementorFrontend.hooks.addAction('frontend/element_ready/ha-edd-cart.default', EddCart);
        var EddCheckout = function EddCheckout($scope) {
            var optionEL = $scope.find('.ha-edd-table-wrap');
            var settings = optionEL.data('options');
            var removeEl = $scope.find('.edd_cart_remove_item_btn');
            if (settings.cart_btn_type == 'icon') {
                removeEl.html("<i class=\"".concat(settings.icon.value, "\"></i>"))
            } else {
                removeEl.text(settings.btn_text)
            }
        };
        elementorFrontend.hooks.addAction('frontend/element_ready/ha-edd-checkout.default', EddCheckout);
        var EddAjaxBtn = function EddAjaxBtn($scope) {
            var btn = $scope.find(".ha_edd_ajax_btn");
            btn.on('click', function(event) {
                event.preventDefault();
                var $self = $(this),
                    download_id = $self.data('download-id'),
                    nonce = $self.data('nonce');
                $.ajax({
                    url: HappyProLocalize.ajax_url,
                    type: "POST",
                    data: {
                        action: "ha_edd_ajax_add_to_cart_link",
                        security: HappyProLocalize.nonce,
                        download_id: download_id
                    },
                    success: function success(response) {
                        if (response.success == !0) {
                            $self.html("<i class=\"fas fa-cart-plus\"></i>")
                        }
                    }
                })
            })
        };
        elementorFrontend.hooks.addAction('frontend/element_ready/ha-edd-product-grid.default', EddAjaxBtn);
        elementorFrontend.hooks.addAction('frontend/element_ready/ha-edd-product-carousel.default', EddAjaxBtn);
        elementorFrontend.hooks.addAction('frontend/element_ready/ha-edd-single-product.default', EddAjaxBtn);
        var Image_Swap = function Image_Swap($scope) {
            var element = $scope.find('.ha-image-swap-wrapper');
            var trigger_type = element.data('trigger');
            var status;
            if (trigger_type === 'click') {
                element.on('click', element, function() {
                    var self = $(this);
                    var click = self.attr('data-click');
                    if ('inactive' == click) {
                        status = 'active'
                    } else {
                        status = 'inactive'
                    }
                    self.attr('data-click', status);
                    var first_img = self.find('.img_swap_first');
                    var second_img = self.find('.img_swap_second')
                })
            }
            var elm = $scope.find('.ha-image-swap-ctn');
            var elm_img = $scope.find('.ha-image-swap-item');
            var trigger = elm.data('trigger');
            if (elm.length > 0) {
                $('.ha-image-swap-ctn').on('click', '.ha-image-swap-item', function(e) {
                    var elem = $(this);
                    var parent = elem.parent('.ha-image-swap-insider');
                    var firstChild = parent.children('.ha-image-swap-item:first-of-type');
                    var secondChild = parent.children('.ha-image-swap-item:nth-of-type(2)');
                    if (!elem.is(':first-child')) {
                        parent.addClass('changed');
                        setTimeout(function() {
                            firstChild.remove();
                            parent.append(firstChild);
                            parent.removeClass('changed')
                        }, 400)
                    }
                })
            }
        };
        var FlipBox = function FlipBox($scope) {
            var element = $scope.find('.ha-flip-box-inner');
            element.on('mouseenter mouseleave touchstart', function(e) {
                if (('mouseenter' == e.type || 'touchstart' == e.type) && !$(this).hasClass('flip')) {
                    $(this).addClass('flip')
                } else if (('mouseleave' == e.type || 'touchstart' == e.type) && $(this).hasClass('flip')) {
                    $(this).removeClass('flip')
                } else if ('touchstart' == e.type && $(this).hasClass('flip')) {
                    $(this).removeClass('flip')
                }
            })
        };
        elementorFrontend.hooks.addAction('frontend/element_ready/ha-image-swap.default', Image_Swap);
        var FreeShippingBar = function FreeShippingBar($scope) {
            var $fsbContainer = $scope.find('.ha-fsb-container');
            if ($fsbContainer) {
                var $settings = $fsbContainer.data('fsb_settings');
                if ($settings != undefined) {
                    var $aimationSpeed = $settings.hasOwnProperty('ha_fsb_animation_speed') ? $settings.ha_fsb_animation_speed : 15;
                    var $achivePercent = $settings.hasOwnProperty('achive_percent') ? $settings.achive_percent : 0;
                    var $progressType = $settings.hasOwnProperty('progress_type') ? $settings.progress_type : 'percent';
                    var $currencySymbol = $settings.hasOwnProperty('currencySymbol') && $progressType == 'percent' ? '%' : $settings.currencySymbol;
                    var $cartTotal = $settings.hasOwnProperty('cart_total') ? $settings.cart_total : 0;
                    var $totalPercent = parseFloat(Math.round($achivePercent)) >= 100 ? 100 : parseFloat(Math.round($achivePercent));
                    var $progressText = $progressType == 'percent' ? $totalPercent : $cartTotal;
                    var $elem = $fsbContainer.find('.ha-fsb-size');
                    $elem.text($progressText + $currencySymbol);
                    var defaultWidth = $(window).width() <= 768 ? 12 : 5;
                    $totalPercent > 0 ? $elem.css({
                        'width': $totalPercent + "%",
                        'transition': 'width ' + $aimationSpeed + 'ms ease-in-out'
                    }) : $elem.css('width', +defaultWidth + "%")
                }
            }
        };
        elementorFrontend.hooks.addAction('frontend/element_ready/ha-shipping-bar.default', FreeShippingBar);
        $('.fsb-close-icon').on('click', function() {
            document.cookie = "ha_close_fsb = yes;path=/";
            $('.ha-fsb-container').hide()
        });
        elementorFrontend.hooks.addAction('frontend/element_ready/ha-flip-box.default', FlipBox);
        var HaRemoteCarousel = function HaRemoteCarousel($scope) {
            var $rcContainer = $scope.find('.ha-remote-carousel-container');
            if ($rcContainer) {
                var $rcBtn = $($rcContainer).find('.ha-custom-nav-remote-carousel');
                if ($rcBtn) {
                    var $prevSliderIndex = 0;
                    var $slides_to_show = 0;
                    var $ha_show_thumbnail = $($rcBtn).parent().data('show_thumbnail');
                    var $ha_rc_unique_id = $($rcBtn).parent().data('ha_rc_id');
                    var $haRcSelector = $ha_rc_unique_id ? $('[data-ha_rcc_uid="' + $ha_rc_unique_id + '"]') : '';
                    if ($ha_show_thumbnail && $ha_show_thumbnail == 'yes') {
                        $haRcSelector.on('init', function(event, slick, currentSlide) {
                            var $dataSettingsSelector = $haRcSelector.parent().parent();
                            var $dataSettings = $dataSettingsSelector.data('settings');
                            $slides_to_show = typeof $dataSettings === "undefined" ? $slides_to_show : $dataSettings.slides_to_show;
                            $prevSliderIndex = (currentSlide ? currentSlide : 0) - 1;
                            var $nextIndex = parseInt($slides_to_show) + parseInt($prevSliderIndex) + 1;
                            var $nextItem = $haRcSelector.find('[data-slick-index="' + $nextIndex + '"]');
                            var $nextImg = $nextItem.find('img').attr('src');
                            var $prevItem = $haRcSelector.find('[data-slick-index="' + $prevSliderIndex + '"]');
                            var $prevImg = $prevItem.find('img').attr('src');
                            var $nextBtn = $rcContainer.find('.ha-remote-carousel-btn-next');
                            var $prevBtn = $rcContainer.find('.ha-remote-carousel-btn-prev');
                            $nextBtn.css({
                                'background-image': 'url(' + $nextImg + ')',
                                'background-position': 'center'
                            });
                            $prevBtn.css({
                                'background-image': 'url(' + $prevImg + ')',
                                'background-position': 'center'
                            })
                        });
                        $haRcSelector.trigger('init');
                        $($rcBtn).on("click", function(e) {
                            e.preventDefault();
                            $haRcSelector.on('afterChange', function(event, slick, currentSlideIndex) {
                                var $dataSettingsSelector = $haRcSelector.parent().parent();
                                var $dataSettings = $dataSettingsSelector.data('settings');
                                var $slides_to_show = $dataSettings ? $dataSettings.slides_to_show : currentSlideIndex;
                                $prevSliderIndex = parseInt(currentSlideIndex - 1);
                                var $nextIndex = parseInt($slides_to_show) + parseInt($prevSliderIndex) + 1;
                                var $nextItem = $haRcSelector.find('[data-slick-index="' + $nextIndex + '"]');
                                var $nextImg = $nextItem.find('img').attr('src');
                                var $prevItem = $haRcSelector.find('[data-slick-index="' + $prevSliderIndex + '"]');
                                var $prevImg = $prevItem.find('img').attr('src');
                                var $nextBtn = $rcContainer.find('.ha-remote-carousel-btn-next');
                                var $prevBtn = $rcContainer.find('.ha-remote-carousel-btn-prev');
                                if ($nextBtn) {
                                    $nextBtn.css({
                                        'background-image': 'url(' + $nextImg + ')',
                                        'background-position': 'center'
                                    })
                                }
                                if ($prevBtn) {
                                    $prevBtn.css({
                                        'background-image': 'url(' + $prevImg + ')',
                                        'background-position': 'center'
                                    })
                                }
                            });
                            if ($(this).data("ha_rc_nav") == 'ha_rc_next_btn') {
                                $haRcSelector.slick("slickNext")
                            } else if ($(this).data("ha_rc_nav") == 'ha_rc_prev_btn') {
                                $haRcSelector.slick("slickPrev")
                            }
                        })
                    } else {
                        $($rcBtn).on("click", function(e) {
                            e.preventDefault();
                            if ($(this).data("ha_rc_nav") == 'ha_rc_next_btn') {
                                $haRcSelector.slick("slickNext")
                            } else if ($(this).data("ha_rc_nav") == 'ha_rc_prev_btn') {
                                $haRcSelector.slick("slickPrev")
                            }
                        })
                    }
                }
            }
        };
        elementorFrontend.hooks.addAction('frontend/element_ready/ha-remote-carousel.default', HaRemoteCarousel);
        var HaTOC = elementorModules.frontend.handlers.Base.extend({
            getDefaultSettings: function getDefaultSettings() {
                var elementSettings = this.getElementSettings(),
                    listWrapperTag = "numbers" === elementSettings.marker_view ? "ol" : "ul";
                return {
                    selectors: {
                        widgetContainer: ".ha-toc-wrapper",
                        container: '.elementor:not([data-elementor-type="header"]):not([data-elementor-type="footer"])',
                        expandButton: ".ha-toc__header",
                        collapseButton: ".ha-toc__header",
                        body: ".ha-toc__body",
                        headerTitle: ".ha-toc__header-title",
                        scrollTop: ".ha-toc__scroll-to-top--container"
                    },
                    classes: {
                        anchor: "ha-toc-menu-anchor",
                        listWrapper: "ha-toc__list-wrapper",
                        listItem: "ha-toc__list-item",
                        listTextWrapper: "ha-toc__list-item-text-wrapper",
                        firstLevelListItem: "ha-toc__top-level",
                        listItemText: "ha-toc__list-item-text",
                        activeItem: "ha-toc-item-active",
                        headingAnchor: "ha-toc__heading-anchor",
                        collapsed: "ha-toc--collapsed"
                    },
                    listWrapperTag: listWrapperTag
                }
            },
            getDefaultElements: function getDefaultElements() {
                var settings = this.getSettings(),
                    elementSettings = this.getElementSettings();
                return {
                    $pageContainer: jQuery(elementSettings.container || settings.selectors.container),
                    $widgetContainer: this.$element.find(settings.selectors.widgetContainer),
                    $expandButton: this.$element.find(settings.selectors.expandButton),
                    $collapseButton: this.$element.find(settings.selectors.collapseButton),
                    $tocBody: this.$element.find(settings.selectors.body),
                    $listItems: this.$element.find("." + settings.classes.listItem),
                    $scrollTop: this.$element.find(settings.selectors.scrollTop)
                }
            },
            bindEvents: function bindEvents() {
                var $self = this;
                var elementSettings = this.getElementSettings();
                if (elementSettings.minimize_box) {
                    this.elements.$expandButton.on("click", function() {
                        if (!$($self.$element).hasClass($self.getSettings("classes.collapsed"))) {
                            return $self.collapseBox()
                        } else {
                            return $self.expandBox()
                        }
                    })
                }
                if (elementSettings.collapse_subitems) {
                    this.elements.$listItems.hover(function(event) {
                        return jQuery(event.target).slideToggle()
                    })
                }
                if (elementSettings.sticky_toc_toggle) {
                    elementorFrontend.elements.$window.on("resize", this.handleStickyToc)
                }
                if (elementSettings.scroll_to_top_toggle) {
                    this.elements.$scrollTop.on("click", function() {
                        $self.scrollToTop()
                    })
                }
            },
            getHeadings: function getHeadings() {
                var elementSettings = this.getElementSettings(),
                    tags = elementSettings.headings_by_tags.join(","),
                    selectors = this.getSettings("selectors"),
                    excludedSelectors = elementSettings.exclude_headings_by_selector;
                return this.elements.$pageContainer.find(tags).not(selectors.headerTitle).filter(function(index, heading) {
                    return !jQuery(heading).closest(excludedSelectors).length
                })
            },
            addAnchorsBeforeHeadings: function addAnchorsBeforeHeadings() {
                var $this = this;
                var classes = this.getSettings("classes");
                this.elements.$headings.before(function(index) {
                    var anchorLink = $this.getHeadingAnchorLink(index, classes);
                    return '<span id="' + anchorLink + '" class="' + classes.anchor + ' "></span>'
                })
            },
            activateItem: function activateItem($listItem) {
                var classes = this.getSettings("classes");
                this.deactivateActiveItem($listItem);
                $listItem.addClass(classes.activeItem);
                this.$activeItem = $listItem;
                if (!this.getElementSettings("sticky_toc_toggle")) {
                    return
                }
                if (!this.getElementSettings("collapse_subitems")) {
                    return
                }
                var $activeList = void 0;
                if ($listItem.hasClass(classes.firstLevelListItem)) {
                    $activeList = $listItem.parent().next()
                } else {
                    $activeList = $listItem.parents("." + classes.listWrapper).eq(-2)
                }
                if (!$activeList.length) {
                    delete this.$activeList;
                    return
                }
                this.$activeList = $activeList;
                this.$activeList.stop().slideDown()
            },
            deactivateActiveItem: function deactivateActiveItem($activeToBe) {
                if (!this.$activeItem || this.$activeItem.is($activeToBe)) {
                    return
                }
                var _getSettings = this.getSettings(),
                    classes = _getSettings.classes;
                this.$activeItem.removeClass(classes.activeItem);
                if (this.$activeList && (!$activeToBe || !this.$activeList[0].contains($activeToBe[0]))) {
                    this.$activeList.slideUp()
                }
            },
            followAnchor: function followAnchor($element, index) {
                var $self = this;
                var anchorSelector = $element[0].hash;
                var $anchor = void 0;
                try {
                    $anchor = jQuery(decodeURIComponent(anchorSelector))
                } catch (e) {
                    return
                }
                if (0 === index) {
                    elementorFrontend.waypoint($anchor, function(direction) {
                        if ($self.itemClicked) {
                            return
                        }
                        if ("down" === direction) {
                            $self.activateItem($element)
                        } else {
                            $self.deactivateActiveItem()
                        }
                    }, {
                        offset: "bottom-in-view",
                        triggerOnce: !1
                    })
                }
                elementorFrontend.waypoint($anchor, function(direction) {
                    if ($self.itemClicked) {
                        return
                    }
                    if ("down" === direction) {
                        $self.activateItem($self.$listItemTexts.eq(index + 1))
                    } else {
                        $self.activateItem($element)
                    }
                }, {
                    offset: 0,
                    triggerOnce: !1
                })
            },
            followAnchors: function followAnchors() {
                var $self = this;
                this.$listItemTexts.each(function(index, element) {
                    return $self.followAnchor(jQuery(element), index)
                })
            },
            setOffset: function setOffset($listItem) {
                var $this = this;
                var settings = this.getSettings();
                var list = this.$element.find("." + settings.classes.listItem);
                var offset = this.getCurrentDeviceSetting("scroll_offset");
                list.each(function() {
                    $('a', this).on('click', function(e) {
                        e.preventDefault();
                        var hash = this.hash;
                        $('html, body').animate({
                            scrollTop: $(hash).offset().top - parseInt(offset.size)
                        }, 800)
                    })
                })
            },
            populateTOC: function populateTOC() {
                var $self = this;
                this.listItemPointer = 0;
                var elementSettings = this.getElementSettings();
                if (elementSettings.custom_style == 'yes') {
                    this.elements.$widgetContainer.html(this.createSideDot())
                } else {
                    if (elementSettings.hierarchical_view) {
                        this.createNestedList()
                    } else {
                        this.createFlatList()
                    }
                }
                this.$listItemTexts = this.$element.find(".ha-toc__list-item-text");
                this.$listItemTexts.on("click", this.onListItemClick.bind(this));
                if (!elementorFrontend.isEditMode()) {
                    this.followAnchors()
                }
                $(window).on('scroll', function() {
                    if ("window_top" === elementSettings.scroll_to_top_option) {
                        if ($(window).scrollTop() > 0) {
                            $self.elements.$scrollTop.show()
                        } else {
                            $self.elements.$scrollTop.hide()
                        }
                    } else {
                        var $id = $self.getID().parents('.elementor-widget-wrap');
                        if ($id.offset().top >= $(window).scrollTop()) {
                            $self.elements.$scrollTop.hide()
                        } else {
                            $self.elements.$scrollTop.show()
                        }
                    }
                })
            },
            createNestedList: function createNestedList() {
                var $self = this;
                this.headingsData.forEach(function(heading, index) {
                    heading.level = 0;
                    for (var i = index - 1; i >= 0; i--) {
                        var currentOrderedItem = $self.headingsData[i];
                        if (currentOrderedItem.tag <= heading.tag) {
                            heading.level = currentOrderedItem.level;
                            if (currentOrderedItem.tag < heading.tag) {
                                heading.level++
                            }
                            break
                        }
                    }
                });
                this.elements.$tocBody.html(this.getNestedLevel(0))
            },
            createFlatList: function createFlatList() {
                this.elements.$tocBody.html(this.getNestedLevel())
            },
            createSideDot: function createSideDot(level) {
                var settings = this.getSettings(),
                    elementSettings = this.getElementSettings(),
                    icon = this.getElementSettings("icon"),
                    htmlul = '';
                if (elementSettings.custom_style == 'yes') {
                    htmlul += "<div class=\"".concat(elementSettings.custom_style_list, "\">\n                    <div class=\"hm-toc \">\n                    <ul class=\"hm-toc-items\" style=\"list-style: none;\">\n                        <li>");
                    if (elementSettings.custom_style_list == 'hm-toc-slide-style') {
                        htmlul += "<".concat(elementSettings.html_tag, " class=\"hm-toc-title\"><span>").concat(elementSettings.widget_title, "<span></").concat(elementSettings.html_tag, ">")
                    } else {
                        htmlul += "<".concat(elementSettings.html_tag, " class=\"hm-toc-title\">").concat(elementSettings.widget_title, "</").concat(elementSettings.html_tag, ">")
                    }
                    htmlul += "<".concat(settings.listWrapperTag, " class=\"hm-toc-items-inner\">");
                    for (var i = 0; i < this.headingsData.length; i++) {
                        var list = '';
                        var currentItemDot = this.headingsData[i];
                        if (level > currentItemDot.level) {
                            break
                        }
                        var listItemTextClasses = settings.classes.listItemText;
                        if (0 === currentItemDot.level) {
                            listItemTextClasses += " " + settings.classes.firstLevelListItem
                        }
                        if (level === currentItemDot.level) {
                            list += "<li class=\"hm-toc-entry ".concat(settings.classes.listItem, "\">");
                            if ('bullets' === elementSettings.marker_view && icon && elementSettings.custom_style_list == 'hm-toc-slide-style') {
                                list += "<i class=\"".concat(icon.value, "\"></i>")
                            }
                            list += "<a href=\"#".concat(currentItemDot.anchorLink, "\" class=\"").concat(listItemTextClasses, "\"><span>").concat(currentItemDot.text, "</span></a>");
                            list += "</li>"
                        }
                        htmlul += list
                    }
                    htmlul += "</".concat(settings.listWrapperTag, ">");
                    htmlul += "</li>\n                    </ul>"
                }
                return htmlul
            },
            getNestedLevel: function getNestedLevel(level) {
                var settings = this.getSettings(),
                    elementSettings = this.getElementSettings(),
                    icon = this.getElementSettings("icon");
                var html = '';
                html += "<" + settings.listWrapperTag + ' class="' + settings.classes.listWrapper + '">';
                while (this.listItemPointer < this.headingsData.length) {
                    var currentItem = this.headingsData[this.listItemPointer];
                    var listItemTextClasses = settings.classes.listItemText;
                    if (0 === currentItem.level) {
                        listItemTextClasses += " " + settings.classes.firstLevelListItem
                    }
                    if (level > currentItem.level) {
                        break
                    }
                    if (level === currentItem.level) {
                        html += '<li class="' + settings.classes.listItem + " " + "level-" + level + '">';
                        html += '<div class="' + settings.classes.listTextWrapper + '">';
                        var liContent = '<a href="#' + currentItem.anchorLink + '" class="' + listItemTextClasses + '">' + currentItem.text + "</a>";
                        if ("bullets" === elementSettings.marker_view && icon) {
                            liContent = '<i class="' + icon.value + '"></i>' + liContent
                        }
                        html += liContent;
                        html += "</div>";
                        this.listItemPointer++;
                        var nextItem = this.headingsData[this.listItemPointer];
                        if (nextItem && level < nextItem.level) {
                            html += this.getNestedLevel(nextItem.level)
                        }
                        html += "</li>"
                    }
                }
                html += "</" + settings.listWrapperTag + ">";
                return html
            },
            handleNoHeadingsFound: function handleNoHeadingsFound() {
                var _messages = 'No headings were found on this page.';
                if (elementorFrontend.isEditMode()) {
                    return this.elements.$tocBody.html(_messages)
                }
            },
            collapseOnInit: function collapseOnInit() {
                var $self = this;
                var minimizedOn = this.getElementSettings("minimized_on"),
                    currentDeviceMode = elementorFrontend.getCurrentDeviceMode();
                if ("" !== minimizedOn && "array" !== typeof minimizedOn) {
                    minimizedOn = [minimizedOn]
                }
                if (0 !== minimizedOn.length && "object" === _typeof(minimizedOn)) {
                    minimizedOn.forEach(function(value) {
                        if ("desktop" === value[0] && "desktop" == currentDeviceMode && $(window).width() < elementorFrontend.config.breakpoints.xxl || "tablet" === value[0] && "tablet" === currentDeviceMode && $(window).width() < elementorFrontend.config.breakpoints.lg || "mobile" === value[0] && "mobile" === currentDeviceMode && $(window).width() < elementorFrontend.config.breakpoints.md) {
                            $self.collapseBox()
                        }
                    })
                }
            },
            getHeadingAnchorLink: function getHeadingAnchorLink(index, classes) {
                var headingID = this.elements.$headings[index].id,
                    wrapperID = this.elements.$headings[index].closest('.elementor-widget').id;
                var anchorLink = '';
                if (headingID) {
                    anchorLink = headingID
                } else if (wrapperID) {
                    anchorLink = wrapperID
                }
                if (headingID || wrapperID) {
                    jQuery(this.elements.$headings[index]).data('hasOwnID', !0)
                } else {
                    anchorLink = "".concat(classes.headingAnchor, "-").concat(index)
                }
                return anchorLink
            },
            setHeadingsData: function setHeadingsData() {
                var $this = this;
                this.headingsData = [];
                var classes = this.getSettings("classes");
                this.elements.$headings.each(function(index, element) {
                    var anchorLink = $this.getHeadingAnchorLink(index, classes);
                    $this.headingsData.push({
                        tag: +element.nodeName.slice(1),
                        text: element.textContent,
                        anchorLink: anchorLink
                    })
                })
            },
            run: function run() {
                var elementSettings = this.getElementSettings();
                this.elements.$headings = this.getHeadings();
                if (!this.elements.$headings.length) {
                    return this.handleNoHeadingsFound()
                }
                this.setHeadingsData();
                if (!elementorFrontend.isEditMode()) {
                    this.addAnchorsBeforeHeadings()
                }
                this.populateTOC();
                if (elementSettings.minimize_box) {
                    this.collapseOnInit()
                }
                if (elementSettings.sticky_toc_toggle) {
                    this.handleStickyToc()
                }
                if ("" !== elementSettings.scroll_offset.size) {
                    this.setOffset()
                }
            },
            expandBox: function expandBox() {
                var boxHeight = this.getCurrentDeviceSetting("min_height");
                this.$element.removeClass(this.getSettings("classes.collapsed"));
                this.elements.$tocBody.slideDown();
                this.elements.$widgetContainer.css("min-height", boxHeight.size + boxHeight.unit)
            },
            collapseBox: function collapseBox() {
                this.$element.addClass(this.getSettings("classes.collapsed"));
                this.elements.$tocBody.slideUp();
                this.elements.$widgetContainer.css("min-height", "0px")
            },
            onInit: function onInit() {
                var $self = this;
                this.initElements();
                this.bindEvents();
                jQuery(document).ready(function() {
                    $self.run()
                })
            },
            onListItemClick: function onListItemClick(event) {
                var $self = this;
                this.itemClicked = !0;
                setTimeout(function() {
                    return $self.itemClicked = !1
                }, 2000);
                var $clickedItem = jQuery(event.target),
                    $list = $clickedItem.parent().next(),
                    collapseNestedList = this.getElementSettings("collapse_subitems");
                if ("SPAN" == $clickedItem[0].tagName && 'yes' == this.getElementSettings("custom_style")) {
                    $clickedItem = jQuery(event.currentTarget)
                }
                var listIsActive = void 0;
                if (collapseNestedList && $clickedItem.hasClass(this.getSettings("classes.firstLevelListItem"))) {
                    if ($list.is(":visible")) {
                        listIsActive = !0
                    }
                }
                this.activateItem($clickedItem);
                if (collapseNestedList && listIsActive) {
                    $list.slideUp()
                }
            },
            handleStickyToc: function handleStickyToc() {
                var elementSettings = this.getElementSettings();
                var currentDeviceMode = elementorFrontend.getCurrentDeviceMode();
                var $devices = elementSettings.sticky_toc_disable_on;
                var target = this.getID();
                var type = elementSettings.sticky_toc_type;
                if ("in-place" === type) {
                    var parentWidth = target.parent().parent().outerWidth();
                    target.css("width", parentWidth)
                } else if ("custom-position" === type) {
                    var parentWidth = target.parent().parent().outerWidth();
                    target.css("width", parentWidth)
                }
                if (-1 == $.inArray(currentDeviceMode, $devices)) {
                    target.removeClass('floating-toc');
                    $(window).off('scroll', this.stickyScroll);
                    return
                }
                $(window).on('scroll', $.proxy(this.stickyScroll, this))
            },
            stickyScroll: function stickyScroll() {
                var target = this.getID();
                var elementSettings = this.getElementSettings();
                var item = document.querySelector(".ha-table-of-contents");
                var bound, tocHeight;
                bound = item.getBoundingClientRect();
                tocHeight = target.outerHeight();
                if (target.hasClass("floating-toc")) {
                    target.parent().parent().css("height", tocHeight)
                } else {
                    target.parent().parent().css("height", '')
                }
                if (bound.y + bound.height / 2 < 0) {
                    if (target.hasClass('floating-toc')) {
                        return
                    }
                    target.addClass("floating-toc")
                } else {
                    if (!target.hasClass('floating-toc')) {
                        return
                    }
                    target.removeClass("floating-toc")
                }
            },
            scrollToTop: function scrollToTop() {
                var $self = this;
                var scrollTo = this.getElementSettings("scroll_to_top_option");
                if ("window_top" === scrollTo) {
                    $("html, body").animate({
                        scrollTop: 0
                    }, 250)
                } else {
                    var $id = this.getID().parents('.ha-table-of-contents');
                    $("html, body").animate({
                        scrollTop: $($id).offset().top - 60
                    }, 1000)
                }
            },
            getID: function getID() {
                return $("#ha-toc-" + this.$element[0].attributes["data-id"].nodeValue)
            }
        });
        elementorFrontend.hooks.addAction("frontend/element_ready/ha-table-of-contents.default", function($scope) {
            elementorFrontend.elementsHandler.addHandler(HaTOC, {
                $element: $scope
            })
        });
        var HaCreativeSlider = function HaCreativeSlider($scope) {
            var $rcContainer = $scope.find('.ha-creative-slider-container');
            if ($rcContainer) {
                var $haCsWidth = window.innerWidth;
                var $haCsNextSelector = parseInt($haCsWidth) <= 767 ? $rcContainer.find('.ha_cs_mobile_next') : $rcContainer.find('.ha_cc_next_wrapper');
                var $haCsPrevSelector = parseInt($haCsWidth) <= 767 ? $rcContainer.find('.ha_cs_mobile_prev') : $rcContainer.find('.ha_cc_prev_wrapper');
                var csTextItemDelay = parseInt($haCsWidth) <= 767 ? 40 : 30;
                var csImageItemDelay = 40;
                var csPrevItemsOwl = $rcContainer.find('.ha_cc_prev_items');
                var csTextItemsOwl = $rcContainer.find('.ha_cc_text_items');
                var csImageItemsOwl = $rcContainer.find('.ha_cc_inner_image_items');
                var csNextItemsOwl = $rcContainer.find('.ha_cc_next_items');
                var csPrevNavOptions = {
                    loop: !0,
                    dots: !1,
                    nav: !1,
                    items: 1,
                    autoplay: !1,
                    smartSpeed: 500,
                    touchDrag: !1,
                    mouseDrag: !1,
                    rewind: !0,
                    startPosition: -1
                };
                var csNextNavOptions = {
                    loop: !0,
                    dots: !1,
                    nav: !1,
                    items: 1,
                    autoplay: !1,
                    smartSpeed: 500,
                    touchDrag: !1,
                    mouseDrag: !1,
                    rewind: !0,
                    startPosition: 1
                };
                var csGeneralOptions = {
                    loop: !0,
                    dots: !1,
                    nav: !1,
                    items: 1,
                    autoplay: !1,
                    smartSpeed: 1000,
                    touchDrag: !1,
                    mouseDrag: !1,
                    singleItem: !0,
                    animateOut: 'fadeOutRight',
                    animateIn: 'fadeInLeft',
                    rewind: !0
                }
            }
            csPrevItemsOwl.owlCarousel(csPrevNavOptions);
            csNextItemsOwl.owlCarousel(csNextNavOptions);
            csTextItemsOwl.owlCarousel(csGeneralOptions);
            csImageItemsOwl.owlCarousel(csGeneralOptions);
            window.parent.addEventListener('message', function(e) {
                if ('ha_cs_reinit' == e.data) {
                    csTextItemsOwl.owlCarousel('refresh');
                    csImageItemsOwl.owlCarousel('refresh')
                }
            });
            $($haCsPrevSelector).click(function(e) {
                e.preventDefault();
                csPrevItemsOwl.trigger('prev.owl.carousel');
                csNextItemsOwl.trigger('prev.owl.carousel');
                setTimeout(function() {
                    csTextItemsOwl.trigger('prev.owl.carousel')
                }, csTextItemDelay);
                setTimeout(function() {
                    csImageItemsOwl.trigger('prev.owl.carousel')
                }, csTextItemDelay + csImageItemDelay)
            });
            $($haCsNextSelector).click(function(e) {
                e.preventDefault();
                csPrevItemsOwl.trigger('next.owl.carousel');
                csNextItemsOwl.trigger('next.owl.carousel');
                setTimeout(function() {
                    csTextItemsOwl.trigger('next.owl.carousel')
                }, csTextItemDelay);
                setTimeout(function() {
                    csImageItemsOwl.trigger('next.owl.carousel')
                }, csTextItemDelay + csImageItemDelay)
            })
        };
        elementorFrontend.hooks.addAction('frontend/element_ready/ha-creative-slider.default', HaCreativeSlider)
    })
})(jQuery, Happy, window);
(s => {
    var o, e = window,
        r = s(".ha-reading-progress-bar");
    r.length <= 0 || (o = {}, "yes" === (o = JSON.parse(r.attr("data-ha_rpbsettings"))).ha_rpb_enable && (o.hasOwnProperty("progress_bar_type") && "vertical" === o.progress_bar_type && o.hasOwnProperty("rpb_vertical_position") && "right" == o.rpb_vertical_position ? s("body").addClass("no-scroll") : s("body").removeClass("no-scroll"), s(e).scroll(function() {
        var r = 0,
            t = (r = (s(e).scrollTop() || 0) / ((s(document).height() || 1) - (s(e).height() || 1)) * 100).toFixed(0);
        100 < r && (r = 100), o.hasOwnProperty("progress_bar_type") && "horizontal" === o.progress_bar_type ? (s(".hm-hrp-bar").css({
            display: "flex"
        }), s(".hm-hrp-bar").width(t + "%"), 1 < t && 0 < r ? (s(".hm-tool-tip").css({
            opacity: 1,
            transition: "opacity 0.3s"
        }), s(".hm-tool-tip").text(t + "%"), 98 <= t ? s(".hm-tool-tip").css({
            right: "5px"
        }) : s(".hm-tool-tip").css({
            right: "-28px"
        })) : (s(".hm-tool-tip").css({
            opacity: 0,
            transition: "opacity 0.3s"
        }), s(".hm-tool-tip").text("0%"))) : o.hasOwnProperty("progress_bar_type") && "vertical" === o.progress_bar_type ? (s(".hm-vrp-bar").css({
            display: "flex"
        }), 0 < r && 1 < t ? s(".hm-vrp-bar").height(t + "%") : s(".hm-vrp-bar").height("0%")) : o.hasOwnProperty("progress_bar_type") && "circle" === o.progress_bar_type && (t = 2 * Math.PI * 45, t = Math.round(t - r / 100 * t), 0 <= r) && (s(".hm-progress-circle").css("stroke-dashoffset", t.toFixed(2)), s(".hm-progress-percent-text").text("".concat(r.toFixed(0), "%")))
    })))
})(jQuery);
! function(r) {
    "use strict";
    var t, e, n;
    t = [function(r, t, e) {
        e(1), e(73), e(76), e(78), e(80), e(86), e(95), e(96), e(107), e(108), e(113), e(114), e(116), e(118), e(119), e(127), e(128), e(131), e(137), e(146), e(148), e(149), e(150), r.exports = e(151)
    }, function(r, t, e) {
        var n = e(2),
            o = e(67),
            a = e(11),
            i = e(68),
            c = Array;
        n({
            target: "Array",
            proto: !0
        }, {
            toReversed: function() {
                return o(a(this), c)
            }
        }), i("toReversed")
    }, function(t, e, n) {
        var o = n(3),
            a = n(4).f,
            i = n(42),
            c = n(46),
            u = n(36),
            f = n(54),
            s = n(66);
        t.exports = function(t, e) {
            var n, p, l, y, v, h = t.target,
                g = t.global,
                d = t.stat;
            if (n = g ? o : d ? o[h] || u(h, {}) : o[h] && o[h].prototype)
                for (p in e) {
                    if (y = e[p], l = t.dontCallGetSet ? (v = a(n, p)) && v.value : n[p], !s(g ? p : h + (d ? "." : "#") + p, t.forced) && l !== r) {
                        if (typeof y == typeof l) continue;
                        f(y, l)
                    }(t.sham || l && l.sham) && i(y, "sham", !0), c(n, p, y, t)
                }
        }
    }, function(r, t, e) {
        var n = function(r) {
            return r && r.Math === Math && r
        };
        r.exports = n("object" == typeof globalThis && globalThis) || n("object" == typeof window && window) || n("object" == typeof self && self) || n("object" == typeof global && global) || n("object" == typeof this && this) || function() {
            return this
        }() || Function("return this")()
    }, function(r, t, e) {
        var n = e(5),
            o = e(7),
            a = e(9),
            i = e(10),
            c = e(11),
            u = e(17),
            f = e(37),
            s = e(40),
            p = Object.getOwnPropertyDescriptor;
        t.f = n ? p : function(r, t) {
            if (r = c(r), t = u(t), s) try {
                return p(r, t)
            } catch (r) {}
            if (f(r, t)) return i(!o(a.f, r, t), r[t])
        }
    }, function(r, t, e) {
        var n = e(6);
        r.exports = !n((function() {
            return 7 !== Object.defineProperty({}, 1, {
                get: function() {
                    return 7
                }
            })[1]
        }))
    }, function(r, t, e) {
        r.exports = function(r) {
            try {
                return !!r()
            } catch (r) {
                return !0
            }
        }
    }, function(r, t, e) {
        var n = e(8),
            o = Function.prototype.call;
        r.exports = n ? o.bind(o) : function() {
            return o.apply(o, arguments)
        }
    }, function(r, t, e) {
        var n = e(6);
        r.exports = !n((function() {
            var r = function() {}.bind();
            return "function" != typeof r || r.hasOwnProperty("prototype")
        }))
    }, function(r, t, e) {
        var n = {}.propertyIsEnumerable,
            o = Object.getOwnPropertyDescriptor,
            a = o && !n.call({
                1: 2
            }, 1);
        t.f = a ? function(r) {
            var t = o(this, r);
            return !!t && t.enumerable
        } : n
    }, function(r, t, e) {
        r.exports = function(r, t) {
            return {
                enumerable: !(1 & r),
                configurable: !(2 & r),
                writable: !(4 & r),
                value: t
            }
        }
    }, function(r, t, e) {
        var n = e(12),
            o = e(15);
        r.exports = function(r) {
            return n(o(r))
        }
    }, function(r, t, e) {
        var n = e(13),
            o = e(6),
            a = e(14),
            i = Object,
            c = n("".split);
        r.exports = o((function() {
            return !i("z").propertyIsEnumerable(0)
        })) ? function(r) {
            return "String" === a(r) ? c(r, "") : i(r)
        } : i
    }, function(r, t, e) {
        var n = e(8),
            o = Function.prototype,
            a = o.call,
            i = n && o.bind.bind(a, a);
        r.exports = n ? i : function(r) {
            return function() {
                return a.apply(r, arguments)
            }
        }
    }, function(r, t, e) {
        var n = e(13),
            o = n({}.toString),
            a = n("".slice);
        r.exports = function(r) {
            return a(o(r), 8, -1)
        }
    }, function(r, t, e) {
        var n = e(16),
            o = TypeError;
        r.exports = function(r) {
            if (n(r)) throw new o("Can't call method on " + r);
            return r
        }
    }, function(t, e, n) {
        t.exports = function(t) {
            return null === t || t === r
        }
    }, function(r, t, e) {
        var n = e(18),
            o = e(21);
        r.exports = function(r) {
            var t = n(r, "string");
            return o(t) ? t : t + ""
        }
    }, function(t, e, n) {
        var o = n(7),
            a = n(19),
            i = n(21),
            c = n(28),
            u = n(31),
            f = n(32),
            s = TypeError,
            p = f("toPrimitive");
        t.exports = function(t, e) {
            if (!a(t) || i(t)) return t;
            var n, f = c(t, p);
            if (f) {
                if (e === r && (e = "default"), n = o(f, t, e), !a(n) || i(n)) return n;
                throw new s("Can't convert object to primitive value")
            }
            return e === r && (e = "number"), u(t, e)
        }
    }, function(r, t, e) {
        var n = e(20);
        r.exports = function(r) {
            return "object" == typeof r ? null !== r : n(r)
        }
    }, function(t, e, n) {
        var o = "object" == typeof document && document.all;
        t.exports = void 0 === o && o !== r ? function(r) {
            return "function" == typeof r || r === o
        } : function(r) {
            return "function" == typeof r
        }
    }, function(r, t, e) {
        var n = e(22),
            o = e(20),
            a = e(23),
            i = e(24),
            c = Object;
        r.exports = i ? function(r) {
            return "symbol" == typeof r
        } : function(r) {
            var t = n("Symbol");
            return o(t) && a(t.prototype, c(r))
        }
    }, function(t, e, n) {
        var o = n(3),
            a = n(20);
        t.exports = function(t, e) {
            return arguments.length < 2 ? (n = o[t], a(n) ? n : r) : o[t] && o[t][e];
            var n
        }
    }, function(r, t, e) {
        var n = e(13);
        r.exports = n({}.isPrototypeOf)
    }, function(r, t, e) {
        var n = e(25);
        r.exports = n && !Symbol.sham && "symbol" == typeof Symbol.iterator
    }, function(r, t, e) {
        var n = e(26),
            o = e(6),
            a = e(3).String;
        r.exports = !!Object.getOwnPropertySymbols && !o((function() {
            var r = Symbol("symbol detection");
            return !a(r) || !(Object(r) instanceof Symbol) || !Symbol.sham && n && n < 41
        }))
    }, function(r, t, e) {
        var n, o, a = e(3),
            i = e(27),
            c = a.process,
            u = a.Deno,
            f = c && c.versions || u && u.version,
            s = f && f.v8;
        s && (o = (n = s.split("."))[0] > 0 && n[0] < 4 ? 1 : +(n[0] + n[1])), !o && i && (!(n = i.match(/Edge\/(\d+)/)) || n[1] >= 74) && (n = i.match(/Chrome\/(\d+)/)) && (o = +n[1]), r.exports = o
    }, function(r, t, e) {
        var n = e(3).navigator,
            o = n && n.userAgent;
        r.exports = o ? String(o) : ""
    }, function(t, e, n) {
        var o = n(29),
            a = n(16);
        t.exports = function(t, e) {
            var n = t[e];
            return a(n) ? r : o(n)
        }
    }, function(r, t, e) {
        var n = e(20),
            o = e(30),
            a = TypeError;
        r.exports = function(r) {
            if (n(r)) return r;
            throw new a(o(r) + " is not a function")
        }
    }, function(r, t, e) {
        var n = String;
        r.exports = function(r) {
            try {
                return n(r)
            } catch (r) {
                return "Object"
            }
        }
    }, function(r, t, e) {
        var n = e(7),
            o = e(20),
            a = e(19),
            i = TypeError;
        r.exports = function(r, t) {
            var e, c;
            if ("string" === t && o(e = r.toString) && !a(c = n(e, r))) return c;
            if (o(e = r.valueOf) && !a(c = n(e, r))) return c;
            if ("string" !== t && o(e = r.toString) && !a(c = n(e, r))) return c;
            throw new i("Can't convert object to primitive value")
        }
    }, function(r, t, e) {
        var n = e(3),
            o = e(33),
            a = e(37),
            i = e(39),
            c = e(25),
            u = e(24),
            f = n.Symbol,
            s = o("wks"),
            p = u ? f.for || f : f && f.withoutSetter || i;
        r.exports = function(r) {
            return a(s, r) || (s[r] = c && a(f, r) ? f[r] : p("Symbol." + r)), s[r]
        }
    }, function(r, t, e) {
        var n = e(34);
        r.exports = function(r, t) {
            return n[r] || (n[r] = t || {})
        }
    }, function(r, t, e) {
        var n = e(35),
            o = e(3),
            a = e(36),
            i = "__core-js_shared__",
            c = r.exports = o[i] || a(i, {});
        (c.versions || (c.versions = [])).push({
            version: "3.39.0",
            mode: n ? "pure" : "global",
            copyright: "© 2014-2024 Denis Pushkarev (zloirock.ru)",
            license: "https://github.com/zloirock/core-js/blob/v3.39.0/LICENSE",
            source: "https://github.com/zloirock/core-js"
        })
    }, function(r, t, e) {
        r.exports = !1
    }, function(r, t, e) {
        var n = e(3),
            o = Object.defineProperty;
        r.exports = function(r, t) {
            try {
                o(n, r, {
                    value: t,
                    configurable: !0,
                    writable: !0
                })
            } catch (e) {
                n[r] = t
            }
            return t
        }
    }, function(r, t, e) {
        var n = e(13),
            o = e(38),
            a = n({}.hasOwnProperty);
        r.exports = Object.hasOwn || function(r, t) {
            return a(o(r), t)
        }
    }, function(r, t, e) {
        var n = e(15),
            o = Object;
        r.exports = function(r) {
            return o(n(r))
        }
    }, function(t, e, n) {
        var o = n(13),
            a = 0,
            i = Math.random(),
            c = o(1..toString);
        t.exports = function(t) {
            return "Symbol(" + (t === r ? "" : t) + ")_" + c(++a + i, 36)
        }
    }, function(r, t, e) {
        var n = e(5),
            o = e(6),
            a = e(41);
        r.exports = !n && !o((function() {
            return 7 !== Object.defineProperty(a("div"), "a", {
                get: function() {
                    return 7
                }
            }).a
        }))
    }, function(r, t, e) {
        var n = e(3),
            o = e(19),
            a = n.document,
            i = o(a) && o(a.createElement);
        r.exports = function(r) {
            return i ? a.createElement(r) : {}
        }
    }, function(r, t, e) {
        var n = e(5),
            o = e(43),
            a = e(10);
        r.exports = n ? function(r, t, e) {
            return o.f(r, t, a(1, e))
        } : function(r, t, e) {
            return r[t] = e, r
        }
    }, function(r, t, e) {
        var n = e(5),
            o = e(40),
            a = e(44),
            i = e(45),
            c = e(17),
            u = TypeError,
            f = Object.defineProperty,
            s = Object.getOwnPropertyDescriptor,
            p = "enumerable",
            l = "configurable",
            y = "writable";
        t.f = n ? a ? function(r, t, e) {
            if (i(r), t = c(t), i(e), "function" == typeof r && "prototype" === t && "value" in e && y in e && !e[y]) {
                var n = s(r, t);
                n && n[y] && (r[t] = e.value, e = {
                    configurable: l in e ? e[l] : n[l],
                    enumerable: p in e ? e[p] : n[p],
                    writable: !1
                })
            }
            return f(r, t, e)
        } : f : function(r, t, e) {
            if (i(r), t = c(t), i(e), o) try {
                return f(r, t, e)
            } catch (r) {}
            if ("get" in e || "set" in e) throw new u("Accessors not supported");
            return "value" in e && (r[t] = e.value), r
        }
    }, function(r, t, e) {
        var n = e(5),
            o = e(6);
        r.exports = n && o((function() {
            return 42 !== Object.defineProperty((function() {}), "prototype", {
                value: 42,
                writable: !1
            }).prototype
        }))
    }, function(r, t, e) {
        var n = e(19),
            o = String,
            a = TypeError;
        r.exports = function(r) {
            if (n(r)) return r;
            throw new a(o(r) + " is not an object")
        }
    }, function(t, e, n) {
        var o = n(20),
            a = n(43),
            i = n(47),
            c = n(36);
        t.exports = function(t, e, n, u) {
            u || (u = {});
            var f = u.enumerable,
                s = u.name !== r ? u.name : e;
            if (o(n) && i(n, s, u), u.global) f ? t[e] = n : c(e, n);
            else {
                try {
                    u.unsafe ? t[e] && (f = !0) : delete t[e]
                } catch (r) {}
                f ? t[e] = n : a.f(t, e, {
                    value: n,
                    enumerable: !1,
                    configurable: !u.nonConfigurable,
                    writable: !u.nonWritable
                })
            }
            return t
        }
    }, function(t, e, n) {
        var o = n(13),
            a = n(6),
            i = n(20),
            c = n(37),
            u = n(5),
            f = n(48).CONFIGURABLE,
            s = n(49),
            p = n(50),
            l = p.enforce,
            y = p.get,
            v = String,
            h = Object.defineProperty,
            g = o("".slice),
            d = o("".replace),
            b = o([].join),
            m = u && !a((function() {
                return 8 !== h((function() {}), "length", {
                    value: 8
                }).length
            })),
            w = String(String).split("String"),
            E = t.exports = function(t, e, n) {
                "Symbol(" === g(v(e), 0, 7) && (e = "[" + d(v(e), /^Symbol\(([^)]*)\).*$/, "$1") + "]"), n && n.getter && (e = "get " + e), n && n.setter && (e = "set " + e), (!c(t, "name") || f && t.name !== e) && (u ? h(t, "name", {
                    value: e,
                    configurable: !0
                }) : t.name = e), m && n && c(n, "arity") && t.length !== n.arity && h(t, "length", {
                    value: n.arity
                });
                try {
                    n && c(n, "constructor") && n.constructor ? u && h(t, "prototype", {
                        writable: !1
                    }) : t.prototype && (t.prototype = r)
                } catch (r) {}
                var o = l(t);
                return c(o, "source") || (o.source = b(w, "string" == typeof e ? e : "")), t
            };
        Function.prototype.toString = E((function() {
            return i(this) && y(this).source || s(this)
        }), "toString")
    }, function(r, t, e) {
        var n = e(5),
            o = e(37),
            a = Function.prototype,
            i = n && Object.getOwnPropertyDescriptor,
            c = o(a, "name"),
            u = c && "something" === function() {}.name,
            f = c && (!n || n && i(a, "name").configurable);
        r.exports = {
            EXISTS: c,
            PROPER: u,
            CONFIGURABLE: f
        }
    }, function(r, t, e) {
        var n = e(13),
            o = e(20),
            a = e(34),
            i = n(Function.toString);
        o(a.inspectSource) || (a.inspectSource = function(r) {
            return i(r)
        }), r.exports = a.inspectSource
    }, function(r, t, e) {
        var n, o, a, i = e(51),
            c = e(3),
            u = e(19),
            f = e(42),
            s = e(37),
            p = e(34),
            l = e(52),
            y = e(53),
            v = "Object already initialized",
            h = c.TypeError,
            g = c.WeakMap;
        if (i || p.state) {
            var d = p.state || (p.state = new g);
            d.get = d.get, d.has = d.has, d.set = d.set, n = function(r, t) {
                if (d.has(r)) throw new h(v);
                return t.facade = r, d.set(r, t), t
            }, o = function(r) {
                return d.get(r) || {}
            }, a = function(r) {
                return d.has(r)
            }
        } else {
            var b = l("state");
            y[b] = !0, n = function(r, t) {
                if (s(r, b)) throw new h(v);
                return t.facade = r, f(r, b, t), t
            }, o = function(r) {
                return s(r, b) ? r[b] : {}
            }, a = function(r) {
                return s(r, b)
            }
        }
        r.exports = {
            set: n,
            get: o,
            has: a,
            enforce: function(r) {
                return a(r) ? o(r) : n(r, {})
            },
            getterFor: function(r) {
                return function(t) {
                    var e;
                    if (!u(t) || (e = o(t)).type !== r) throw new h("Incompatible receiver, " + r + " required");
                    return e
                }
            }
        }
    }, function(r, t, e) {
        var n = e(3),
            o = e(20),
            a = n.WeakMap;
        r.exports = o(a) && /native code/.test(String(a))
    }, function(r, t, e) {
        var n = e(33),
            o = e(39),
            a = n("keys");
        r.exports = function(r) {
            return a[r] || (a[r] = o(r))
        }
    }, function(r, t, e) {
        r.exports = {}
    }, function(r, t, e) {
        var n = e(37),
            o = e(55),
            a = e(4),
            i = e(43);
        r.exports = function(r, t, e) {
            for (var c = o(t), u = i.f, f = a.f, s = 0; s < c.length; s++) {
                var p = c[s];
                n(r, p) || e && n(e, p) || u(r, p, f(t, p))
            }
        }
    }, function(r, t, e) {
        var n = e(22),
            o = e(13),
            a = e(56),
            i = e(65),
            c = e(45),
            u = o([].concat);
        r.exports = n("Reflect", "ownKeys") || function(r) {
            var t = a.f(c(r)),
                e = i.f;
            return e ? u(t, e(r)) : t
        }
    }, function(r, t, e) {
        var n = e(57),
            o = e(64).concat("length", "prototype");
        t.f = Object.getOwnPropertyNames || function(r) {
            return n(r, o)
        }
    }, function(r, t, e) {
        var n = e(13),
            o = e(37),
            a = e(11),
            i = e(58).indexOf,
            c = e(53),
            u = n([].push);
        r.exports = function(r, t) {
            var e, n = a(r),
                f = 0,
                s = [];
            for (e in n) !o(c, e) && o(n, e) && u(s, e);
            for (; t.length > f;) o(n, e = t[f++]) && (~i(s, e) || u(s, e));
            return s
        }
    }, function(r, t, e) {
        var n = e(11),
            o = e(59),
            a = e(62),
            i = function(r) {
                return function(t, e, i) {
                    var c = n(t),
                        u = a(c);
                    if (0 === u) return !r && -1;
                    var f, s = o(i, u);
                    if (r && e != e) {
                        for (; u > s;)
                            if ((f = c[s++]) != f) return !0
                    } else
                        for (; u > s; s++)
                            if ((r || s in c) && c[s] === e) return r || s || 0;
                    return !r && -1
                }
            };
        r.exports = {
            includes: i(!0),
            indexOf: i(!1)
        }
    }, function(r, t, e) {
        var n = e(60),
            o = Math.max,
            a = Math.min;
        r.exports = function(r, t) {
            var e = n(r);
            return e < 0 ? o(e + t, 0) : a(e, t)
        }
    }, function(r, t, e) {
        var n = e(61);
        r.exports = function(r) {
            var t = +r;
            return t != t || 0 === t ? 0 : n(t)
        }
    }, function(r, t, e) {
        var n = Math.ceil,
            o = Math.floor;
        r.exports = Math.trunc || function(r) {
            var t = +r;
            return (t > 0 ? o : n)(t)
        }
    }, function(r, t, e) {
        var n = e(63);
        r.exports = function(r) {
            return n(r.length)
        }
    }, function(r, t, e) {
        var n = e(60),
            o = Math.min;
        r.exports = function(r) {
            var t = n(r);
            return t > 0 ? o(t, 9007199254740991) : 0
        }
    }, function(r, t, e) {
        r.exports = ["constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf"]
    }, function(r, t, e) {
        t.f = Object.getOwnPropertySymbols
    }, function(r, t, e) {
        var n = e(6),
            o = e(20),
            a = /#|\.prototype\./,
            i = function(r, t) {
                var e = u[c(r)];
                return e === s || e !== f && (o(t) ? n(t) : !!t)
            },
            c = i.normalize = function(r) {
                return String(r).replace(a, ".").toLowerCase()
            },
            u = i.data = {},
            f = i.NATIVE = "N",
            s = i.POLYFILL = "P";
        r.exports = i
    }, function(r, t, e) {
        var n = e(62);
        r.exports = function(r, t) {
            for (var e = n(r), o = new t(e), a = 0; a < e; a++) o[a] = r[e - a - 1];
            return o
        }
    }, function(t, e, n) {
        var o = n(32),
            a = n(69),
            i = n(43).f,
            c = o("unscopables"),
            u = Array.prototype;
        u[c] === r && i(u, c, {
            configurable: !0,
            value: a(null)
        }), t.exports = function(r) {
            u[c][r] = !0
        }
    }, function(t, e, n) {
        var o, a = n(45),
            i = n(70),
            c = n(64),
            u = n(53),
            f = n(72),
            s = n(41),
            p = n(52),
            l = "prototype",
            y = "script",
            v = p("IE_PROTO"),
            h = function() {},
            g = function(r) {
                return "<" + y + ">" + r + "</" + y + ">"
            },
            d = function(r) {
                r.write(g("")), r.close();
                var t = r.parentWindow.Object;
                return r = null, t
            },
            b = function() {
                try {
                    o = new ActiveXObject("htmlfile")
                } catch (r) {}
                var r, t, e;
                b = "undefined" != typeof document ? document.domain && o ? d(o) : (t = s("iframe"), e = "java" + y + ":", t.style.display = "none", f.appendChild(t), t.src = String(e), (r = t.contentWindow.document).open(), r.write(g("document.F=Object")), r.close(), r.F) : d(o);
                for (var n = c.length; n--;) delete b[l][c[n]];
                return b()
            };
        u[v] = !0, t.exports = Object.create || function(t, e) {
            var n;
            return null !== t ? (h[l] = a(t), n = new h, h[l] = null, n[v] = t) : n = b(), e === r ? n : i.f(n, e)
        }
    }, function(r, t, e) {
        var n = e(5),
            o = e(44),
            a = e(43),
            i = e(45),
            c = e(11),
            u = e(71);
        t.f = n && !o ? Object.defineProperties : function(r, t) {
            i(r);
            for (var e, n = c(t), o = u(t), f = o.length, s = 0; f > s;) a.f(r, e = o[s++], n[e]);
            return r
        }
    }, function(r, t, e) {
        var n = e(57),
            o = e(64);
        r.exports = Object.keys || function(r) {
            return n(r, o)
        }
    }, function(r, t, e) {
        var n = e(22);
        r.exports = n("document", "documentElement")
    }, function(t, e, n) {
        var o = n(2),
            a = n(13),
            i = n(29),
            c = n(11),
            u = n(74),
            f = n(75),
            s = n(68),
            p = Array,
            l = a(f("Array", "sort"));
        o({
            target: "Array",
            proto: !0
        }, {
            toSorted: function(t) {
                t !== r && i(t);
                var e = c(this),
                    n = u(p, e);
                return l(n, t)
            }
        }), s("toSorted")
    }, function(r, t, e) {
        var n = e(62);
        r.exports = function(r, t, e) {
            for (var o = 0, a = arguments.length > 2 ? e : n(t), i = new r(a); a > o;) i[o] = t[o++];
            return i
        }
    }, function(r, t, e) {
        var n = e(3);
        r.exports = function(r, t) {
            var e = n[r],
                o = e && e.prototype;
            return o && o[t]
        }
    }, function(r, t, e) {
        var n = e(2),
            o = e(68),
            a = e(77),
            i = e(62),
            c = e(59),
            u = e(11),
            f = e(60),
            s = Array,
            p = Math.max,
            l = Math.min;
        n({
            target: "Array",
            proto: !0
        }, {
            toSpliced: function(r, t) {
                var e, n, o, y, v = u(this),
                    h = i(v),
                    g = c(r, h),
                    d = arguments.length,
                    b = 0;
                for (0 === d ? e = n = 0 : 1 === d ? (e = 0, n = h - g) : (e = d - 2, n = l(p(f(t), 0), h - g)), o = a(h + e - n), y = s(o); b < g; b++) y[b] = v[b];
                for (; b < g + e; b++) y[b] = arguments[b - g + 2];
                for (; b < o; b++) y[b] = v[b + n - e];
                return y
            }
        }), o("toSpliced")
    }, function(r, t, e) {
        var n = TypeError;
        r.exports = function(r) {
            if (r > 9007199254740991) throw n("Maximum allowed index exceeded");
            return r
        }
    }, function(r, t, e) {
        var n = e(2),
            o = e(79),
            a = e(11),
            i = Array;
        n({
            target: "Array",
            proto: !0
        }, {
            with: function(r, t) {
                return o(a(this), i, r, t)
            }
        })
    }, function(r, t, e) {
        var n = e(62),
            o = e(60),
            a = RangeError;
        r.exports = function(r, t, e, i) {
            var c = n(r),
                u = o(e),
                f = u < 0 ? c + u : u;
            if (f >= c || f < 0) throw new a("Incorrect index");
            for (var s = new t(c), p = 0; p < c; p++) s[p] = p === f ? i : r[p];
            return s
        }
    }, function(r, t, e) {
        var n = e(5),
            o = e(81),
            a = e(82),
            i = ArrayBuffer.prototype;
        n && !("detached" in i) && o(i, "detached", {
            configurable: !0,
            get: function() {
                return a(this)
            }
        })
    }, function(r, t, e) {
        var n = e(47),
            o = e(43);
        r.exports = function(r, t, e) {
            return e.get && n(e.get, t, {
                getter: !0
            }), e.set && n(e.set, t, {
                setter: !0
            }), o.f(r, t, e)
        }
    }, function(r, t, e) {
        var n = e(3),
            o = e(83),
            a = e(84),
            i = n.ArrayBuffer,
            c = i && i.prototype,
            u = c && o(c.slice);
        r.exports = function(r) {
            if (0 !== a(r)) return !1;
            if (!u) return !1;
            try {
                return u(r, 0, 0), !1
            } catch (r) {
                return !0
            }
        }
    }, function(r, t, e) {
        var n = e(14),
            o = e(13);
        r.exports = function(r) {
            if ("Function" === n(r)) return o(r)
        }
    }, function(r, t, e) {
        var n = e(3),
            o = e(85),
            a = e(14),
            i = n.ArrayBuffer,
            c = n.TypeError;
        r.exports = i && o(i.prototype, "byteLength", "get") || function(r) {
            if ("ArrayBuffer" !== a(r)) throw new c("ArrayBuffer expected");
            return r.byteLength
        }
    }, function(r, t, e) {
        var n = e(13),
            o = e(29);
        r.exports = function(r, t, e) {
            try {
                return n(o(Object.getOwnPropertyDescriptor(r, t)[e]))
            } catch (r) {}
        }
    }, function(t, e, n) {
        var o = n(2),
            a = n(87);
        a && o({
            target: "ArrayBuffer",
            proto: !0
        }, {
            transfer: function() {
                return a(this, arguments.length ? arguments[0] : r, !0)
            }
        })
    }, function(t, e, n) {
        var o = n(3),
            a = n(13),
            i = n(85),
            c = n(88),
            u = n(89),
            f = n(84),
            s = n(90),
            p = n(94),
            l = o.structuredClone,
            y = o.ArrayBuffer,
            v = o.DataView,
            h = Math.min,
            g = y.prototype,
            d = v.prototype,
            b = a(g.slice),
            m = i(g, "resizable", "get"),
            w = i(g, "maxByteLength", "get"),
            E = a(d.getInt8),
            x = a(d.setInt8);
        t.exports = (p || s) && function(t, e, n) {
            var o, a = f(t),
                i = e === r ? a : c(e),
                g = !m || !m(t);
            if (u(t), p && (t = l(t, {
                    transfer: [t]
                }), a === i && (n || g))) return t;
            if (a >= i && (!n || g)) o = b(t, 0, i);
            else {
                var d = n && !g && w ? {
                    maxByteLength: w(t)
                } : r;
                o = new y(i, d);
                for (var A = new v(t), O = new v(o), R = h(i, a), S = 0; S < R; S++) x(O, S, E(A, S))
            }
            return p || s(t), o
        }
    }, function(t, e, n) {
        var o = n(60),
            a = n(63),
            i = RangeError;
        t.exports = function(t) {
            if (t === r) return 0;
            var e = o(t),
                n = a(e);
            if (e !== n) throw new i("Wrong length or index");
            return n
        }
    }, function(r, t, e) {
        var n = e(82),
            o = TypeError;
        r.exports = function(r) {
            if (n(r)) throw new o("ArrayBuffer is detached");
            return r
        }
    }, function(r, t, e) {
        var n, o, a, i, c = e(3),
            u = e(91),
            f = e(94),
            s = c.structuredClone,
            p = c.ArrayBuffer,
            l = c.MessageChannel,
            y = !1;
        if (f) y = function(r) {
            s(r, {
                transfer: [r]
            })
        };
        else if (p) try {
            l || (n = u("worker_threads")) && (l = n.MessageChannel), l && (o = new l, a = new p(2), i = function(r) {
                o.port1.postMessage(null, [r])
            }, 2 === a.byteLength && (i(a), 0 === a.byteLength && (y = i)))
        } catch (r) {}
        r.exports = y
    }, function(r, t, e) {
        var n = e(3),
            o = e(92);
        r.exports = function(r) {
            if (o) {
                try {
                    return n.process.getBuiltinModule(r)
                } catch (r) {}
                try {
                    return Function('return require("' + r + '")')()
                } catch (r) {}
            }
        }
    }, function(r, t, e) {
        var n = e(93);
        r.exports = "NODE" === n
    }, function(r, t, e) {
        var n = e(3),
            o = e(27),
            a = e(14),
            i = function(r) {
                return o.slice(0, r.length) === r
            };
        r.exports = i("Bun/") ? "BUN" : i("Cloudflare-Workers") ? "CLOUDFLARE" : i("Deno/") ? "DENO" : i("Node.js/") ? "NODE" : n.Bun && "string" == typeof Bun.version ? "BUN" : n.Deno && "object" == typeof Deno.version ? "DENO" : "process" === a(n.process) ? "NODE" : n.window && n.document ? "BROWSER" : "REST"
    }, function(r, t, e) {
        var n = e(3),
            o = e(6),
            a = e(26),
            i = e(93),
            c = n.structuredClone;
        r.exports = !!c && !o((function() {
            if ("DENO" === i && a > 92 || "NODE" === i && a > 94 || "BROWSER" === i && a > 97) return !1;
            var r = new ArrayBuffer(8),
                t = c(r, {
                    transfer: [r]
                });
            return 0 !== r.byteLength || 8 !== t.byteLength
        }))
    }, function(t, e, n) {
        var o = n(2),
            a = n(87);
        a && o({
            target: "ArrayBuffer",
            proto: !0
        }, {
            transferToFixedLength: function() {
                return a(this, arguments.length ? arguments[0] : r, !1)
            }
        })
    }, function(r, t, e) {
        var n = e(2),
            o = e(13),
            a = e(29),
            i = e(15),
            c = e(97),
            u = e(106),
            f = e(35),
            s = e(6),
            p = u.Map,
            l = u.has,
            y = u.get,
            v = u.set,
            h = o([].push),
            g = f || s((function() {
                return 1 !== p.groupBy("ab", (function(r) {
                    return r
                })).get("a").length
            }));
        n({
            target: "Map",
            stat: !0,
            forced: f || g
        }, {
            groupBy: function(r, t) {
                i(r), a(t);
                var e = new p,
                    n = 0;
                return c(r, (function(r) {
                    var o = t(r, n++);
                    l(e, o) ? h(y(e, o), r) : v(e, o, [r])
                })), e
            }
        })
    }, function(r, t, e) {
        var n = e(98),
            o = e(7),
            a = e(45),
            i = e(30),
            c = e(99),
            u = e(62),
            f = e(23),
            s = e(101),
            p = e(102),
            l = e(105),
            y = TypeError,
            v = function(r, t) {
                this.stopped = r, this.result = t
            },
            h = v.prototype;
        r.exports = function(r, t, e) {
            var g, d, b, m, w, E, x, A = e && e.that,
                O = !(!e || !e.AS_ENTRIES),
                R = !(!e || !e.IS_RECORD),
                S = !(!e || !e.IS_ITERATOR),
                T = !(!e || !e.INTERRUPTED),
                I = n(t, A),
                _ = function(r) {
                    return g && l(g, "normal", r), new v(!0, r)
                },
                D = function(r) {
                    return O ? (a(r), T ? I(r[0], r[1], _) : I(r[0], r[1])) : T ? I(r, _) : I(r)
                };
            if (R) g = r.iterator;
            else if (S) g = r;
            else {
                if (!(d = p(r))) throw new y(i(r) + " is not iterable");
                if (c(d)) {
                    for (b = 0, m = u(r); m > b; b++)
                        if ((w = D(r[b])) && f(h, w)) return w;
                    return new v(!1)
                }
                g = s(r, d)
            }
            for (E = R ? r.next : g.next; !(x = o(E, g)).done;) {
                try {
                    w = D(x.value)
                } catch (r) {
                    l(g, "throw", r)
                }
                if ("object" == typeof w && w && f(h, w)) return w
            }
            return new v(!1)
        }
    }, function(t, e, n) {
        var o = n(83),
            a = n(29),
            i = n(8),
            c = o(o.bind);
        t.exports = function(t, e) {
            return a(t), e === r ? t : i ? c(t, e) : function() {
                return t.apply(e, arguments)
            }
        }
    }, function(t, e, n) {
        var o = n(32),
            a = n(100),
            i = o("iterator"),
            c = Array.prototype;
        t.exports = function(t) {
            return t !== r && (a.Array === t || c[i] === t)
        }
    }, function(r, t, e) {
        r.exports = {}
    }, function(r, t, e) {
        var n = e(7),
            o = e(29),
            a = e(45),
            i = e(30),
            c = e(102),
            u = TypeError;
        r.exports = function(r, t) {
            var e = arguments.length < 2 ? c(r) : t;
            if (o(e)) return a(n(e, r));
            throw new u(i(r) + " is not iterable")
        }
    }, function(r, t, e) {
        var n = e(103),
            o = e(28),
            a = e(16),
            i = e(100),
            c = e(32)("iterator");
        r.exports = function(r) {
            if (!a(r)) return o(r, c) || o(r, "@@iterator") || i[n(r)]
        }
    }, function(t, e, n) {
        var o = n(104),
            a = n(20),
            i = n(14),
            c = n(32)("toStringTag"),
            u = Object,
            f = "Arguments" === i(function() {
                return arguments
            }());
        t.exports = o ? i : function(t) {
            var e, n, o;
            return t === r ? "Undefined" : null === t ? "Null" : "string" == typeof(n = function(r, t) {
                try {
                    return r[t]
                } catch (r) {}
            }(e = u(t), c)) ? n : f ? i(e) : "Object" === (o = i(e)) && a(e.callee) ? "Arguments" : o
        }
    }, function(r, t, e) {
        var n = {};
        n[e(32)("toStringTag")] = "z", r.exports = "[object z]" === String(n)
    }, function(r, t, e) {
        var n = e(7),
            o = e(45),
            a = e(28);
        r.exports = function(r, t, e) {
            var i, c;
            o(r);
            try {
                if (!(i = a(r, "return"))) {
                    if ("throw" === t) throw e;
                    return e
                }
                i = n(i, r)
            } catch (r) {
                c = !0, i = r
            }
            if ("throw" === t) throw e;
            if (c) throw i;
            return o(i), e
        }
    }, function(r, t, e) {
        var n = e(13),
            o = Map.prototype;
        r.exports = {
            Map,
            set: n(o.set),
            get: n(o.get),
            has: n(o.has),
            remove: n(o.delete),
            proto: o
        }
    }, function(r, t, e) {
        var n = e(2),
            o = e(22),
            a = e(13),
            i = e(29),
            c = e(15),
            u = e(17),
            f = e(97),
            s = e(6),
            p = Object.groupBy,
            l = o("Object", "create"),
            y = a([].push);
        n({
            target: "Object",
            stat: !0,
            forced: !p || s((function() {
                return 1 !== p("ab", (function(r) {
                    return r
                })).a.length
            }))
        }, {
            groupBy: function(r, t) {
                c(r), i(t);
                var e = l(null),
                    n = 0;
                return f(r, (function(r) {
                    var o = u(t(r, n++));
                    o in e ? y(e[o], r) : e[o] = [r]
                })), e
            }
        })
    }, function(t, e, n) {
        var o = n(2),
            a = n(3),
            i = n(109),
            c = n(110),
            u = n(111),
            f = n(29),
            s = n(112),
            p = a.Promise,
            l = !1;
        o({
            target: "Promise",
            stat: !0,
            forced: !p || !p.try || s((function() {
                p.try((function(r) {
                    l = 8 === r
                }), 8)
            })).error || !l
        }, {
            try: function(t) {
                var e = arguments.length > 1 ? c(arguments, 1) : [],
                    n = u.f(this),
                    o = s((function() {
                        return i(f(t), r, e)
                    }));
                return (o.error ? n.reject : n.resolve)(o.value), n.promise
            }
        })
    }, function(r, t, e) {
        var n = e(8),
            o = Function.prototype,
            a = o.apply,
            i = o.call;
        r.exports = "object" == typeof Reflect && Reflect.apply || (n ? i.bind(a) : function() {
            return i.apply(a, arguments)
        })
    }, function(r, t, e) {
        var n = e(13);
        r.exports = n([].slice)
    }, function(t, e, n) {
        var o = n(29),
            a = TypeError,
            i = function(t) {
                var e, n;
                this.promise = new t((function(t, o) {
                    if (e !== r || n !== r) throw new a("Bad Promise constructor");
                    e = t, n = o
                })), this.resolve = o(e), this.reject = o(n)
            };
        t.exports.f = function(r) {
            return new i(r)
        }
    }, function(r, t, e) {
        r.exports = function(r) {
            try {
                return {
                    error: !1,
                    value: r()
                }
            } catch (r) {
                return {
                    error: !0,
                    value: r
                }
            }
        }
    }, function(r, t, e) {
        var n = e(2),
            o = e(111);
        n({
            target: "Promise",
            stat: !0
        }, {
            withResolvers: function() {
                var r = o.f(this);
                return {
                    promise: r.promise,
                    resolve: r.resolve,
                    reject: r.reject
                }
            }
        })
    }, function(r, t, e) {
        var n = e(3),
            o = e(5),
            a = e(81),
            i = e(115),
            c = e(6),
            u = n.RegExp,
            f = u.prototype;
        o && c((function() {
            var r = !0;
            try {
                u(".", "d")
            } catch (t) {
                r = !1
            }
            var t = {},
                e = "",
                n = r ? "dgimsy" : "gimsy",
                o = function(r, n) {
                    Object.defineProperty(t, r, {
                        get: function() {
                            return e += n, !0
                        }
                    })
                },
                a = {
                    dotAll: "s",
                    global: "g",
                    ignoreCase: "i",
                    multiline: "m",
                    sticky: "y"
                };
            for (var i in r && (a.hasIndices = "d"), a) o(i, a[i]);
            return Object.getOwnPropertyDescriptor(f, "flags").get.call(t) !== n || e !== n
        })) && a(f, "flags", {
            configurable: !0,
            get: i
        })
    }, function(r, t, e) {
        var n = e(45);
        r.exports = function() {
            var r = n(this),
                t = "";
            return r.hasIndices && (t += "d"), r.global && (t += "g"), r.ignoreCase && (t += "i"), r.multiline && (t += "m"), r.dotAll && (t += "s"), r.unicode && (t += "u"), r.unicodeSets && (t += "v"), r.sticky && (t += "y"), t
        }
    }, function(r, t, e) {
        var n = e(2),
            o = e(13),
            a = e(15),
            i = e(117),
            c = o("".charCodeAt);
        n({
            target: "String",
            proto: !0
        }, {
            isWellFormed: function() {
                for (var r = i(a(this)), t = r.length, e = 0; e < t; e++) {
                    var n = c(r, e);
                    if (55296 == (63488 & n) && (n >= 56320 || ++e >= t || 56320 != (64512 & c(r, e)))) return !1
                }
                return !0
            }
        })
    }, function(r, t, e) {
        var n = e(103),
            o = String;
        r.exports = function(r) {
            if ("Symbol" === n(r)) throw new TypeError("Cannot convert a Symbol value to a string");
            return o(r)
        }
    }, function(r, t, e) {
        var n = e(2),
            o = e(7),
            a = e(13),
            i = e(15),
            c = e(117),
            u = e(6),
            f = Array,
            s = a("".charAt),
            p = a("".charCodeAt),
            l = a([].join),
            y = "".toWellFormed,
            v = y && u((function() {
                return "1" !== o(y, 1)
            }));
        n({
            target: "String",
            proto: !0,
            forced: v
        }, {
            toWellFormed: function() {
                var r = c(i(this));
                if (v) return o(y, r);
                for (var t = r.length, e = f(t), n = 0; n < t; n++) {
                    var a = p(r, n);
                    55296 != (63488 & a) ? e[n] = s(r, n) : a >= 56320 || n + 1 >= t || 56320 != (64512 & p(r, n + 1)) ? e[n] = "�" : (e[n] = s(r, n), e[++n] = s(r, n))
                }
                return l(e, "")
            }
        })
    }, function(r, t, e) {
        var n = e(67),
            o = e(120),
            a = o.aTypedArray,
            i = o.exportTypedArrayMethod,
            c = o.getTypedArrayConstructor;
        i("toReversed", (function() {
            return n(a(this), c(this))
        }))
    }, function(t, e, n) {
        var o, a, i, c = n(121),
            u = n(5),
            f = n(3),
            s = n(20),
            p = n(19),
            l = n(37),
            y = n(103),
            v = n(30),
            h = n(42),
            g = n(46),
            d = n(81),
            b = n(23),
            m = n(122),
            w = n(124),
            E = n(32),
            x = n(39),
            A = n(50),
            O = A.enforce,
            R = A.get,
            S = f.Int8Array,
            T = S && S.prototype,
            I = f.Uint8ClampedArray,
            _ = I && I.prototype,
            D = S && m(S),
            j = T && m(T),
            M = Object.prototype,
            P = f.TypeError,
            C = E("toStringTag"),
            k = x("TYPED_ARRAY_TAG"),
            B = "TypedArrayConstructor",
            L = c && !!w && "Opera" !== y(f.opera),
            U = !1,
            N = {
                Int8Array: 1,
                Uint8Array: 1,
                Uint8ClampedArray: 1,
                Int16Array: 2,
                Uint16Array: 2,
                Int32Array: 4,
                Uint32Array: 4,
                Float32Array: 4,
                Float64Array: 8
            },
            F = {
                BigInt64Array: 8,
                BigUint64Array: 8
            },
            W = function(r) {
                var t = m(r);
                if (p(t)) {
                    var e = R(t);
                    return e && l(e, B) ? e[B] : W(t)
                }
            },
            V = function(r) {
                if (!p(r)) return !1;
                var t = y(r);
                return l(N, t) || l(F, t)
            };
        for (o in N)(i = (a = f[o]) && a.prototype) ? O(i)[B] = a : L = !1;
        for (o in F)(i = (a = f[o]) && a.prototype) && (O(i)[B] = a);
        if ((!L || !s(D) || D === Function.prototype) && (D = function() {
                throw new P("Incorrect invocation")
            }, L))
            for (o in N) f[o] && w(f[o], D);
        if ((!L || !j || j === M) && (j = D.prototype, L))
            for (o in N) f[o] && w(f[o].prototype, j);
        if (L && m(_) !== j && w(_, j), u && !l(j, C))
            for (o in U = !0, d(j, C, {
                    configurable: !0,
                    get: function() {
                        return p(this) ? this[k] : r
                    }
                }), N) f[o] && h(f[o], k, o);
        t.exports = {
            NATIVE_ARRAY_BUFFER_VIEWS: L,
            TYPED_ARRAY_TAG: U && k,
            aTypedArray: function(r) {
                if (V(r)) return r;
                throw new P("Target is not a typed array")
            },
            aTypedArrayConstructor: function(r) {
                if (s(r) && (!w || b(D, r))) return r;
                throw new P(v(r) + " is not a typed array constructor")
            },
            exportTypedArrayMethod: function(r, t, e, n) {
                if (u) {
                    if (e)
                        for (var o in N) {
                            var a = f[o];
                            if (a && l(a.prototype, r)) try {
                                delete a.prototype[r]
                            } catch (e) {
                                try {
                                    a.prototype[r] = t
                                } catch (r) {}
                            }
                        }
                    j[r] && !e || g(j, r, e ? t : L && T[r] || t, n)
                }
            },
            exportTypedArrayStaticMethod: function(r, t, e) {
                var n, o;
                if (u) {
                    if (w) {
                        if (e)
                            for (n in N)
                                if ((o = f[n]) && l(o, r)) try {
                                    delete o[r]
                                } catch (r) {}
                        if (D[r] && !e) return;
                        try {
                            return g(D, r, e ? t : L && D[r] || t)
                        } catch (r) {}
                    }
                    for (n in N) !(o = f[n]) || o[r] && !e || g(o, r, t)
                }
            },
            getTypedArrayConstructor: W,
            isView: function(r) {
                if (!p(r)) return !1;
                var t = y(r);
                return "DataView" === t || l(N, t) || l(F, t)
            },
            isTypedArray: V,
            TypedArray: D,
            TypedArrayPrototype: j
        }
    }, function(r, t, e) {
        r.exports = "undefined" != typeof ArrayBuffer && "undefined" != typeof DataView
    }, function(r, t, e) {
        var n = e(37),
            o = e(20),
            a = e(38),
            i = e(52),
            c = e(123),
            u = i("IE_PROTO"),
            f = Object,
            s = f.prototype;
        r.exports = c ? f.getPrototypeOf : function(r) {
            var t = a(r);
            if (n(t, u)) return t[u];
            var e = t.constructor;
            return o(e) && t instanceof e ? e.prototype : t instanceof f ? s : null
        }
    }, function(r, t, e) {
        var n = e(6);
        r.exports = !n((function() {
            function r() {}
            return r.prototype.constructor = null, Object.getPrototypeOf(new r) !== r.prototype
        }))
    }, function(t, e, n) {
        var o = n(85),
            a = n(19),
            i = n(15),
            c = n(125);
        t.exports = Object.setPrototypeOf || ("__proto__" in {} ? function() {
            var r, t = !1,
                e = {};
            try {
                (r = o(Object.prototype, "__proto__", "set"))(e, []), t = e instanceof Array
            } catch (r) {}
            return function(e, n) {
                return i(e), c(n), a(e) ? (t ? r(e, n) : e.__proto__ = n, e) : e
            }
        }() : r)
    }, function(r, t, e) {
        var n = e(126),
            o = String,
            a = TypeError;
        r.exports = function(r) {
            if (n(r)) return r;
            throw new a("Can't set " + o(r) + " as a prototype")
        }
    }, function(r, t, e) {
        var n = e(19);
        r.exports = function(r) {
            return n(r) || null === r
        }
    }, function(t, e, n) {
        var o = n(120),
            a = n(13),
            i = n(29),
            c = n(74),
            u = o.aTypedArray,
            f = o.getTypedArrayConstructor,
            s = o.exportTypedArrayMethod,
            p = a(o.TypedArrayPrototype.sort);
        s("toSorted", (function(t) {
            t !== r && i(t);
            var e = u(this),
                n = c(f(e), e);
            return p(n, t)
        }))
    }, function(r, t, e) {
        var n = e(79),
            o = e(120),
            a = e(129),
            i = e(60),
            c = e(130),
            u = o.aTypedArray,
            f = o.getTypedArrayConstructor,
            s = o.exportTypedArrayMethod,
            p = !! function() {
                try {
                    new Int8Array(1).with(2, {
                        valueOf: function() {
                            throw 8
                        }
                    })
                } catch (r) {
                    return 8 === r
                }
            }();
        s("with", {
            with: function(r, t) {
                var e = u(this),
                    o = i(r),
                    s = a(e) ? c(t) : +t;
                return n(e, f(e), o, s)
            }
        }.with, !p)
    }, function(r, t, e) {
        var n = e(103);
        r.exports = function(r) {
            var t = n(r);
            return "BigInt64Array" === t || "BigUint64Array" === t
        }
    }, function(r, t, e) {
        var n = e(18),
            o = TypeError;
        r.exports = function(r) {
            var t = n(r, "number");
            if ("number" == typeof t) throw new o("Can't convert number to bigint");
            return BigInt(t)
        }
    }, function(t, e, n) {
        var o = n(2),
            a = n(3),
            i = n(22),
            c = n(10),
            u = n(43).f,
            f = n(37),
            s = n(132),
            p = n(133),
            l = n(134),
            y = n(135),
            v = n(136),
            h = n(5),
            g = n(35),
            d = "DOMException",
            b = i("Error"),
            m = i(d),
            w = function() {
                s(this, E);
                var t = arguments.length,
                    e = l(t < 1 ? r : arguments[0]),
                    n = l(t < 2 ? r : arguments[1], "Error"),
                    o = new m(e, n),
                    a = new b(e);
                return a.name = d, u(o, "stack", c(1, v(a.stack, 1))), p(o, this, w), o
            },
            E = w.prototype = m.prototype,
            x = "stack" in new b(d),
            A = "stack" in new m(1, 2),
            O = m && h && Object.getOwnPropertyDescriptor(a, d),
            R = !(!O || O.writable && O.configurable),
            S = x && !R && !A;
        o({
            global: !0,
            constructor: !0,
            forced: g || S
        }, {
            DOMException: S ? w : m
        });
        var T = i(d),
            I = T.prototype;
        if (I.constructor !== T)
            for (var _ in g || u(I, "constructor", c(1, T)), y)
                if (f(y, _)) {
                    var D = y[_],
                        j = D.s;
                    f(T, j) || u(T, j, c(6, D.c))
                }
    }, function(r, t, e) {
        var n = e(23),
            o = TypeError;
        r.exports = function(r, t) {
            if (n(t, r)) return r;
            throw new o("Incorrect invocation")
        }
    }, function(r, t, e) {
        var n = e(20),
            o = e(19),
            a = e(124);
        r.exports = function(r, t, e) {
            var i, c;
            return a && n(i = t.constructor) && i !== e && o(c = i.prototype) && c !== e.prototype && a(r, c), r
        }
    }, function(t, e, n) {
        var o = n(117);
        t.exports = function(t, e) {
            return t === r ? arguments.length < 2 ? "" : e : o(t)
        }
    }, function(r, t, e) {
        r.exports = {
            IndexSizeError: {
                s: "INDEX_SIZE_ERR",
                c: 1,
                m: 1
            },
            DOMStringSizeError: {
                s: "DOMSTRING_SIZE_ERR",
                c: 2,
                m: 0
            },
            HierarchyRequestError: {
                s: "HIERARCHY_REQUEST_ERR",
                c: 3,
                m: 1
            },
            WrongDocumentError: {
                s: "WRONG_DOCUMENT_ERR",
                c: 4,
                m: 1
            },
            InvalidCharacterError: {
                s: "INVALID_CHARACTER_ERR",
                c: 5,
                m: 1
            },
            NoDataAllowedError: {
                s: "NO_DATA_ALLOWED_ERR",
                c: 6,
                m: 0
            },
            NoModificationAllowedError: {
                s: "NO_MODIFICATION_ALLOWED_ERR",
                c: 7,
                m: 1
            },
            NotFoundError: {
                s: "NOT_FOUND_ERR",
                c: 8,
                m: 1
            },
            NotSupportedError: {
                s: "NOT_SUPPORTED_ERR",
                c: 9,
                m: 1
            },
            InUseAttributeError: {
                s: "INUSE_ATTRIBUTE_ERR",
                c: 10,
                m: 1
            },
            InvalidStateError: {
                s: "INVALID_STATE_ERR",
                c: 11,
                m: 1
            },
            SyntaxError: {
                s: "SYNTAX_ERR",
                c: 12,
                m: 1
            },
            InvalidModificationError: {
                s: "INVALID_MODIFICATION_ERR",
                c: 13,
                m: 1
            },
            NamespaceError: {
                s: "NAMESPACE_ERR",
                c: 14,
                m: 1
            },
            InvalidAccessError: {
                s: "INVALID_ACCESS_ERR",
                c: 15,
                m: 1
            },
            ValidationError: {
                s: "VALIDATION_ERR",
                c: 16,
                m: 0
            },
            TypeMismatchError: {
                s: "TYPE_MISMATCH_ERR",
                c: 17,
                m: 1
            },
            SecurityError: {
                s: "SECURITY_ERR",
                c: 18,
                m: 1
            },
            NetworkError: {
                s: "NETWORK_ERR",
                c: 19,
                m: 1
            },
            AbortError: {
                s: "ABORT_ERR",
                c: 20,
                m: 1
            },
            URLMismatchError: {
                s: "URL_MISMATCH_ERR",
                c: 21,
                m: 1
            },
            QuotaExceededError: {
                s: "QUOTA_EXCEEDED_ERR",
                c: 22,
                m: 1
            },
            TimeoutError: {
                s: "TIMEOUT_ERR",
                c: 23,
                m: 1
            },
            InvalidNodeTypeError: {
                s: "INVALID_NODE_TYPE_ERR",
                c: 24,
                m: 1
            },
            DataCloneError: {
                s: "DATA_CLONE_ERR",
                c: 25,
                m: 1
            }
        }
    }, function(r, t, e) {
        var n = e(13),
            o = Error,
            a = n("".replace),
            i = String(new o("zxcasd").stack),
            c = /\n\s*at [^:]*:[^\n]*/,
            u = c.test(i);
        r.exports = function(r, t) {
            if (u && "string" == typeof r && !o.prepareStackTrace)
                for (; t--;) r = a(r, c, "");
            return r
        }
    }, function(t, e, n) {
        var o, a = n(35),
            i = n(2),
            c = n(3),
            u = n(22),
            f = n(13),
            s = n(6),
            p = n(39),
            l = n(20),
            y = n(138),
            v = n(16),
            h = n(19),
            g = n(21),
            d = n(97),
            b = n(45),
            m = n(103),
            w = n(37),
            E = n(139),
            x = n(42),
            A = n(62),
            O = n(140),
            R = n(141),
            S = n(106),
            T = n(142),
            I = n(143),
            _ = n(90),
            D = n(145),
            j = n(94),
            M = c.Object,
            P = c.Array,
            C = c.Date,
            k = c.Error,
            B = c.TypeError,
            L = c.PerformanceMark,
            U = u("DOMException"),
            N = S.Map,
            F = S.has,
            W = S.get,
            V = S.set,
            z = T.Set,
            G = T.add,
            Y = T.has,
            H = u("Object", "keys"),
            Q = f([].push),
            X = f((!0).valueOf),
            q = f(1..valueOf),
            K = f("".valueOf),
            Z = f(C.prototype.getTime),
            $ = p("structuredClone"),
            J = "DataCloneError",
            rr = "Transferring",
            tr = function(r) {
                return !s((function() {
                    var t = new c.Set([7]),
                        e = r(t),
                        n = r(M(7));
                    return e === t || !e.has(7) || !h(n) || 7 != +n
                })) && r
            },
            er = function(r, t) {
                return !s((function() {
                    var e = new t,
                        n = r({
                            a: e,
                            b: e
                        });
                    return !(n && n.a === n.b && n.a instanceof t && n.a.stack === e.stack)
                }))
            },
            nr = c.structuredClone,
            or = a || !er(nr, k) || !er(nr, U) || (o = nr, !!s((function() {
                var r = o(new c.AggregateError([1], $, {
                    cause: 3
                }));
                return "AggregateError" !== r.name || 1 !== r.errors[0] || r.message !== $ || 3 !== r.cause
            }))),
            ar = !nr && tr((function(r) {
                return new L($, {
                    detail: r
                }).detail
            })),
            ir = tr(nr) || ar,
            cr = function(r) {
                throw new U("Uncloneable type: " + r, J)
            },
            ur = function(r, t) {
                throw new U((t || "Cloning") + " of " + r + " cannot be properly polyfilled in this engine", J)
            },
            fr = function(r, t) {
                return ir || ur(t), ir(r)
            },
            sr = function(t, e, n) {
                if (F(e, t)) return W(e, t);
                var o, a, i, u, f, s;
                if ("SharedArrayBuffer" === (n || m(t))) o = ir ? ir(t) : t;
                else {
                    var p = c.DataView;
                    p || l(t.slice) || ur("ArrayBuffer");
                    try {
                        if (l(t.slice) && !t.resizable) o = t.slice(0);
                        else {
                            a = t.byteLength, i = "maxByteLength" in t ? {
                                maxByteLength: t.maxByteLength
                            } : r, o = new ArrayBuffer(a, i), u = new p(t), f = new p(o);
                            for (s = 0; s < a; s++) f.setUint8(s, u.getUint8(s))
                        }
                    } catch (r) {
                        throw new U("ArrayBuffer is detached", J)
                    }
                }
                return V(e, t, o), o
            },
            pr = function(t, e) {
                if (g(t) && cr("Symbol"), !h(t)) return t;
                if (e) {
                    if (F(e, t)) return W(e, t)
                } else e = new N;
                var n, o, a, i, f, s, p, y, v = m(t);
                switch (v) {
                    case "Array":
                        a = P(A(t));
                        break;
                    case "Object":
                        a = {};
                        break;
                    case "Map":
                        a = new N;
                        break;
                    case "Set":
                        a = new z;
                        break;
                    case "RegExp":
                        a = new RegExp(t.source, R(t));
                        break;
                    case "Error":
                        switch (o = t.name) {
                            case "AggregateError":
                                a = new(u(o))([]);
                                break;
                            case "EvalError":
                            case "RangeError":
                            case "ReferenceError":
                            case "SuppressedError":
                            case "SyntaxError":
                            case "TypeError":
                            case "URIError":
                                a = new(u(o));
                                break;
                            case "CompileError":
                            case "LinkError":
                            case "RuntimeError":
                                a = new(u("WebAssembly", o));
                                break;
                            default:
                                a = new k
                        }
                        break;
                    case "DOMException":
                        a = new U(t.message, t.name);
                        break;
                    case "ArrayBuffer":
                    case "SharedArrayBuffer":
                        a = sr(t, e, v);
                        break;
                    case "DataView":
                    case "Int8Array":
                    case "Uint8Array":
                    case "Uint8ClampedArray":
                    case "Int16Array":
                    case "Uint16Array":
                    case "Int32Array":
                    case "Uint32Array":
                    case "Float16Array":
                    case "Float32Array":
                    case "Float64Array":
                    case "BigInt64Array":
                    case "BigUint64Array":
                        s = "DataView" === v ? t.byteLength : t.length, a = function(r, t, e, n, o) {
                            var a = c[t];
                            return h(a) || ur(t), new a(sr(r.buffer, o), e, n)
                        }(t, v, t.byteOffset, s, e);
                        break;
                    case "DOMQuad":
                        try {
                            a = new DOMQuad(pr(t.p1, e), pr(t.p2, e), pr(t.p3, e), pr(t.p4, e))
                        } catch (r) {
                            a = fr(t, v)
                        }
                        break;
                    case "File":
                        if (ir) try {
                            a = ir(t), m(a) !== v && (a = r)
                        } catch (r) {}
                        if (!a) try {
                            a = new File([t], t.name, t)
                        } catch (r) {}
                        a || ur(v);
                        break;
                    case "FileList":
                        if (i = function() {
                                var r;
                                try {
                                    r = new c.DataTransfer
                                } catch (t) {
                                    try {
                                        r = new c.ClipboardEvent("").clipboardData
                                    } catch (r) {}
                                }
                                return r && r.items && r.files ? r : null
                            }()) {
                            for (f = 0, s = A(t); f < s; f++) i.items.add(pr(t[f], e));
                            a = i.files
                        } else a = fr(t, v);
                        break;
                    case "ImageData":
                        try {
                            a = new ImageData(pr(t.data, e), t.width, t.height, {
                                colorSpace: t.colorSpace
                            })
                        } catch (r) {
                            a = fr(t, v)
                        }
                        break;
                    default:
                        if (ir) a = ir(t);
                        else switch (v) {
                            case "BigInt":
                                a = M(t.valueOf());
                                break;
                            case "Boolean":
                                a = M(X(t));
                                break;
                            case "Number":
                                a = M(q(t));
                                break;
                            case "String":
                                a = M(K(t));
                                break;
                            case "Date":
                                a = new C(Z(t));
                                break;
                            case "Blob":
                                try {
                                    a = t.slice(0, t.size, t.type)
                                } catch (r) {
                                    ur(v)
                                }
                                break;
                            case "DOMPoint":
                            case "DOMPointReadOnly":
                                n = c[v];
                                try {
                                    a = n.fromPoint ? n.fromPoint(t) : new n(t.x, t.y, t.z, t.w)
                                } catch (r) {
                                    ur(v)
                                }
                                break;
                            case "DOMRect":
                            case "DOMRectReadOnly":
                                n = c[v];
                                try {
                                    a = n.fromRect ? n.fromRect(t) : new n(t.x, t.y, t.width, t.height)
                                } catch (r) {
                                    ur(v)
                                }
                                break;
                            case "DOMMatrix":
                            case "DOMMatrixReadOnly":
                                n = c[v];
                                try {
                                    a = n.fromMatrix ? n.fromMatrix(t) : new n(t)
                                } catch (r) {
                                    ur(v)
                                }
                                break;
                            case "AudioData":
                            case "VideoFrame":
                                l(t.clone) || ur(v);
                                try {
                                    a = t.clone()
                                } catch (r) {
                                    cr(v)
                                }
                                break;
                            case "CropTarget":
                            case "CryptoKey":
                            case "FileSystemDirectoryHandle":
                            case "FileSystemFileHandle":
                            case "FileSystemHandle":
                            case "GPUCompilationInfo":
                            case "GPUCompilationMessage":
                            case "ImageBitmap":
                            case "RTCCertificate":
                            case "WebAssembly.Module":
                                ur(v);
                            default:
                                cr(v)
                        }
                }
                switch (V(e, t, a), v) {
                    case "Array":
                    case "Object":
                        for (p = H(t), f = 0, s = A(p); f < s; f++) y = p[f], E(a, y, pr(t[y], e));
                        break;
                    case "Map":
                        t.forEach((function(r, t) {
                            V(a, pr(t, e), pr(r, e))
                        }));
                        break;
                    case "Set":
                        t.forEach((function(r) {
                            G(a, pr(r, e))
                        }));
                        break;
                    case "Error":
                        x(a, "message", pr(t.message, e)), w(t, "cause") && x(a, "cause", pr(t.cause, e)), "AggregateError" === o ? a.errors = pr(t.errors, e) : "SuppressedError" === o && (a.error = pr(t.error, e), a.suppressed = pr(t.suppressed, e));
                    case "DOMException":
                        D && x(a, "stack", pr(t.stack, e))
                }
                return a
            };
        i({
            global: !0,
            enumerable: !0,
            sham: !j,
            forced: or
        }, {
            structuredClone: function(t) {
                var e, n, o = O(arguments.length, 1) > 1 && !v(arguments[1]) ? b(arguments[1]) : r,
                    a = o ? o.transfer : r;
                a !== r && (n = function(t, e) {
                    if (!h(t)) throw new B("Transfer option cannot be converted to a sequence");
                    var n = [];
                    d(t, (function(r) {
                        Q(n, b(r))
                    }));
                    for (var o, a, i, u, f, s = 0, p = A(n), v = new z; s < p;) {
                        if (o = n[s++], "ArrayBuffer" === (a = m(o)) ? Y(v, o) : F(e, o)) throw new U("Duplicate transferable", J);
                        if ("ArrayBuffer" !== a) {
                            if (j) u = nr(o, {
                                transfer: [o]
                            });
                            else switch (a) {
                                case "ImageBitmap":
                                    i = c.OffscreenCanvas, y(i) || ur(a, rr);
                                    try {
                                        (f = new i(o.width, o.height)).getContext("bitmaprenderer").transferFromImageBitmap(o), u = f.transferToImageBitmap()
                                    } catch (r) {}
                                    break;
                                case "AudioData":
                                case "VideoFrame":
                                    l(o.clone) && l(o.close) || ur(a, rr);
                                    try {
                                        u = o.clone(), o.close()
                                    } catch (r) {}
                                    break;
                                case "MediaSourceHandle":
                                case "MessagePort":
                                case "MIDIAccess":
                                case "OffscreenCanvas":
                                case "ReadableStream":
                                case "RTCDataChannel":
                                case "TransformStream":
                                case "WebTransportReceiveStream":
                                case "WebTransportSendStream":
                                case "WritableStream":
                                    ur(a, rr)
                            }
                            if (u === r) throw new U("This object cannot be transferred: " + a, J);
                            V(e, o, u)
                        } else G(v, o)
                    }
                    return v
                }(a, e = new N));
                var i = pr(t, e);
                return n && function(r) {
                    I(r, (function(r) {
                        j ? ir(r, {
                            transfer: [r]
                        }) : l(r.transfer) ? r.transfer() : _ ? _(r) : ur("ArrayBuffer", rr)
                    }))
                }(n), i
            }
        })
    }, function(r, t, e) {
        var n = e(13),
            o = e(6),
            a = e(20),
            i = e(103),
            c = e(22),
            u = e(49),
            f = function() {},
            s = c("Reflect", "construct"),
            p = /^\s*(?:class|function)\b/,
            l = n(p.exec),
            y = !p.test(f),
            v = function(r) {
                if (!a(r)) return !1;
                try {
                    return s(f, [], r), !0
                } catch (r) {
                    return !1
                }
            },
            h = function(r) {
                if (!a(r)) return !1;
                switch (i(r)) {
                    case "AsyncFunction":
                    case "GeneratorFunction":
                    case "AsyncGeneratorFunction":
                        return !1
                }
                try {
                    return y || !!l(p, u(r))
                } catch (r) {
                    return !0
                }
            };
        h.sham = !0, r.exports = !s || o((function() {
            var r;
            return v(v.call) || !v(Object) || !v((function() {
                r = !0
            })) || r
        })) ? h : v
    }, function(r, t, e) {
        var n = e(5),
            o = e(43),
            a = e(10);
        r.exports = function(r, t, e) {
            n ? o.f(r, t, a(0, e)) : r[t] = e
        }
    }, function(r, t, e) {
        var n = TypeError;
        r.exports = function(r, t) {
            if (r < t) throw new n("Not enough arguments");
            return r
        }
    }, function(t, e, n) {
        var o = n(7),
            a = n(37),
            i = n(23),
            c = n(115),
            u = RegExp.prototype;
        t.exports = function(t) {
            var e = t.flags;
            return e !== r || "flags" in u || a(t, "flags") || !i(u, t) ? e : o(c, t)
        }
    }, function(r, t, e) {
        var n = e(13),
            o = Set.prototype;
        r.exports = {
            Set,
            add: n(o.add),
            has: n(o.has),
            remove: n(o.delete),
            proto: o
        }
    }, function(r, t, e) {
        var n = e(13),
            o = e(144),
            a = e(142),
            i = a.Set,
            c = a.proto,
            u = n(c.forEach),
            f = n(c.keys),
            s = f(new i).next;
        r.exports = function(r, t, e) {
            return e ? o({
                iterator: f(r),
                next: s
            }, t) : u(r, t)
        }
    }, function(t, e, n) {
        var o = n(7);
        t.exports = function(t, e, n) {
            for (var a, i, c = n ? t : t.iterator, u = t.next; !(a = o(u, c)).done;)
                if ((i = e(a.value)) !== r) return i
        }
    }, function(r, t, e) {
        var n = e(6),
            o = e(10);
        r.exports = !n((function() {
            var r = new Error("a");
            return !("stack" in r) || (Object.defineProperty(r, "stack", o(1, 7)), 7 !== r.stack)
        }))
    }, function(t, e, n) {
        var o = n(2),
            a = n(22),
            i = n(6),
            c = n(140),
            u = n(117),
            f = n(147),
            s = a("URL"),
            p = f && i((function() {
                s.canParse()
            })),
            l = i((function() {
                return 1 !== s.canParse.length
            }));
        o({
            target: "URL",
            stat: !0,
            forced: !p || l
        }, {
            canParse: function(t) {
                var e = c(arguments.length, 1),
                    n = u(t),
                    o = e < 2 || arguments[1] === r ? r : u(arguments[1]);
                try {
                    return !!new s(n, o)
                } catch (r) {
                    return !1
                }
            }
        })
    }, function(t, e, n) {
        var o = n(6),
            a = n(32),
            i = n(5),
            c = n(35),
            u = a("iterator");
        t.exports = !o((function() {
            var t = new URL("b?a=1&b=2&c=3", "https://a"),
                e = t.searchParams,
                n = new URLSearchParams("a=1&a=2&b=3"),
                o = "";
            return t.pathname = "c%20d", e.forEach((function(r, t) {
                e.delete("b"), o += t + r
            })), n.delete("a", 2), n.delete("b", r), c && (!t.toJSON || !n.has("a", 1) || n.has("a", 2) || !n.has("a", r) || n.has("b")) || !e.size && (c || !i) || !e.sort || "https://a/c%20d?a=1&c=3" !== t.href || "3" !== e.get("c") || "a=1" !== String(new URLSearchParams("?a=1")) || !e[u] || "a" !== new URL("https://a@b").username || "b" !== new URLSearchParams(new URLSearchParams("a=b")).get("a") || "xn--e1aybc" !== new URL("https://тест").host || "#%D0%B1" !== new URL("https://a#б").hash || "a1c3" !== o || "x" !== new URL("https://x", r).host
        }))
    }, function(t, e, n) {
        var o = n(2),
            a = n(22),
            i = n(140),
            c = n(117),
            u = n(147),
            f = a("URL");
        o({
            target: "URL",
            stat: !0,
            forced: !u
        }, {
            parse: function(t) {
                var e = i(arguments.length, 1),
                    n = c(t),
                    o = e < 2 || arguments[1] === r ? r : c(arguments[1]);
                try {
                    return new f(n, o)
                } catch (r) {
                    return null
                }
            }
        })
    }, function(t, e, n) {
        var o = n(46),
            a = n(13),
            i = n(117),
            c = n(140),
            u = URLSearchParams,
            f = u.prototype,
            s = a(f.append),
            p = a(f.delete),
            l = a(f.forEach),
            y = a([].push),
            v = new u("a=1&a=2&b=3");
        v.delete("a", 1), v.delete("b", r), v + "" != "a=2" && o(f, "delete", (function(t) {
            var e = arguments.length,
                n = e < 2 ? r : arguments[1];
            if (e && n === r) return p(this, t);
            var o = [];
            l(this, (function(r, t) {
                y(o, {
                    key: t,
                    value: r
                })
            })), c(e, 1);
            for (var a, u = i(t), f = i(n), v = 0, h = 0, g = !1, d = o.length; v < d;) a = o[v++], g || a.key === u ? (g = !0, p(this, a.key)) : h++;
            for (; h < d;)(a = o[h++]).key === u && a.value === f || s(this, a.key, a.value)
        }), {
            enumerable: !0,
            unsafe: !0
        })
    }, function(t, e, n) {
        var o = n(46),
            a = n(13),
            i = n(117),
            c = n(140),
            u = URLSearchParams,
            f = u.prototype,
            s = a(f.getAll),
            p = a(f.has),
            l = new u("a=1");
        !l.has("a", 2) && l.has("a", r) || o(f, "has", (function(t) {
            var e = arguments.length,
                n = e < 2 ? r : arguments[1];
            if (e && n === r) return p(this, t);
            var o = s(this, t);
            c(e, 1);
            for (var a = i(n), u = 0; u < o.length;)
                if (o[u++] === a) return !0;
            return !1
        }), {
            enumerable: !0,
            unsafe: !0
        })
    }, function(r, t, e) {
        var n = e(5),
            o = e(13),
            a = e(81),
            i = URLSearchParams.prototype,
            c = o(i.forEach);
        n && !("size" in i) && a(i, "size", {
            get: function() {
                var r = 0;
                return c(this, (function() {
                    r++
                })), r
            },
            configurable: !0,
            enumerable: !0
        })
    }], e = {}, (n = function(r) {
        if (e[r]) return e[r].exports;
        var o = e[r] = {
            i: r,
            l: !1,
            exports: {}
        };
        return t[r].call(o.exports, o, o.exports, n), o.l = !0, o.exports
    }).m = t, n.c = e, n.d = function(r, t, e) {
        n.o(r, t) || Object.defineProperty(r, t, {
            enumerable: !0,
            get: e
        })
    }, n.r = function(r) {
        "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(r, Symbol.toStringTag, {
            value: "Module"
        }), Object.defineProperty(r, "__esModule", {
            value: !0
        })
    }, n.t = function(r, t) {
        if (1 & t && (r = n(r)), 8 & t) return r;
        if (4 & t && "object" == typeof r && r && r.__esModule) return r;
        var e = Object.create(null);
        if (n.r(e), Object.defineProperty(e, "default", {
                enumerable: !0,
                value: r
            }), 2 & t && "string" != typeof r)
            for (var o in r) n.d(e, o, function(t) {
                return r[t]
            }.bind(null, o));
        return e
    }, n.n = function(r) {
        var t = r && r.__esModule ? function() {
            return r.default
        } : function() {
            return r
        };
        return n.d(t, "a", t), t
    }, n.o = function(r, t) {
        return Object.prototype.hasOwnProperty.call(r, t)
    }, n.p = "", n(n.s = 0)
}();
var wpcf7_recaptcha = {
    "sitekey": "6LfIgsgqAAAAALp7Zk0I9CeyByLt1Q6FCLrloiec",
    "actions": {
        "homepage": "homepage",
        "contactform": "contactform"
    }
};
document.addEventListener("DOMContentLoaded", (e => {
    var t;
    wpcf7_recaptcha = { ...null !== (t = wpcf7_recaptcha) && void 0 !== t ? t : {}
    };
    const c = wpcf7_recaptcha.sitekey,
        {
            homepage: n,
            contactform: a
        } = wpcf7_recaptcha.actions,
        o = e => {
            const {
                action: t,
                func: n,
                params: a
            } = e;
            grecaptcha.execute(c, {
                action: t
            }).then((e => {
                const c = new CustomEvent("wpcf7grecaptchaexecuted", {
                    detail: {
                        action: t,
                        token: e
                    }
                });
                document.dispatchEvent(c)
            })).then((() => {
                "function" == typeof n && n(...a)
            })).catch((e => console.error(e)))
        };
    if (grecaptcha.ready((() => {
            o({
                action: n
            })
        })), document.addEventListener("change", (e => {
            o({
                action: a
            })
        })), "undefined" != typeof wpcf7 && "function" == typeof wpcf7.submit) {
        const e = wpcf7.submit;
        wpcf7.submit = (t, c = {}) => {
            o({
                action: a,
                func: e,
                params: [t, c]
            })
        }
    }
    document.addEventListener("wpcf7grecaptchaexecuted", (e => {
        const t = document.querySelectorAll('form.wpcf7-form input[name="_wpcf7_recaptcha_response"]');
        for (let c = 0; c < t.length; c++) t[c].setAttribute("value", e.detail.token)
    }))
}));;
! function() {
    var e = {
            6879: function(e) {
                ! function(t) {
                    var n = function(e, t, n) {
                        "use strict";
                        var a, i;
                        if (function() {
                                var t, n = {
                                    lazyClass: "lazyload",
                                    loadedClass: "lazyloaded",
                                    loadingClass: "lazyloading",
                                    preloadClass: "lazypreload",
                                    errorClass: "lazyerror",
                                    autosizesClass: "lazyautosizes",
                                    fastLoadedClass: "ls-is-cached",
                                    iframeLoadMode: 0,
                                    srcAttr: "data-src",
                                    srcsetAttr: "data-srcset",
                                    sizesAttr: "data-sizes",
                                    minSize: 40,
                                    customMedia: {},
                                    init: !0,
                                    expFactor: 1.5,
                                    hFac: .8,
                                    loadMode: 2,
                                    loadHidden: !0,
                                    ricTimeout: 0,
                                    throttleDelay: 125
                                };
                                for (t in i = e.lazySizesConfig || e.lazysizesConfig || {}, n) t in i || (i[t] = n[t])
                            }(), !t || !t.getElementsByClassName) return {
                            init: function() {},
                            cfg: i,
                            noSupport: !0
                        };
                        var r = t.documentElement,
                            o = e.HTMLPictureElement,
                            s = "addEventListener",
                            l = "getAttribute",
                            c = e[s].bind(e),
                            d = e.setTimeout,
                            u = e.requestAnimationFrame || d,
                            f = e.requestIdleCallback,
                            m = /^picture$/i,
                            v = ["load", "error", "lazyincluded", "_lazyloaded"],
                            y = {},
                            g = Array.prototype.forEach,
                            p = function(e, t) {
                                return y[t] || (y[t] = new RegExp("(\\s|^)" + t + "(\\s|$)")), y[t].test(e[l]("class") || "") && y[t]
                            },
                            z = function(e, t) {
                                p(e, t) || e.setAttribute("class", (e[l]("class") || "").trim() + " " + t)
                            },
                            h = function(e, t) {
                                var n;
                                (n = p(e, t)) && e.setAttribute("class", (e[l]("class") || "").replace(n, " "))
                            },
                            b = function(e, t, n) {
                                var a = n ? s : "removeEventListener";
                                n && b(e, t), v.forEach((function(n) {
                                    e[a](n, t)
                                }))
                            },
                            C = function(e, n, i, r, o) {
                                var s = t.createEvent("Event");
                                return i || (i = {}), i.instance = a, s.initEvent(n, !r, !o), s.detail = i, e.dispatchEvent(s), s
                            },
                            A = function(t, n) {
                                var a;
                                !o && (a = e.picturefill || i.pf) ? (n && n.src && !t[l]("srcset") && t.setAttribute("srcset", n.src), a({
                                    reevaluate: !0,
                                    elements: [t]
                                })) : n && n.src && (t.src = n.src)
                            },
                            E = function(e, t) {
                                return (getComputedStyle(e, null) || {})[t]
                            },
                            _ = function(e, t, n) {
                                for (n = n || e.offsetWidth; n < i.minSize && t && !e._lazysizesWidth;) n = t.offsetWidth, t = t.parentNode;
                                return n
                            },
                            w = (ze = [], he = [], be = ze, Ce = function() {
                                var e = be;
                                for (be = ze.length ? he : ze, ge = !0, pe = !1; e.length;) e.shift()();
                                ge = !1
                            }, Ae = function(e, n) {
                                ge && !n ? e.apply(this, arguments) : (be.push(e), pe || (pe = !0, (t.hidden ? d : u)(Ce)))
                            }, Ae._lsFlush = Ce, Ae),
                            M = function(e, t) {
                                return t ? function() {
                                    w(e)
                                } : function() {
                                    var t = this,
                                        n = arguments;
                                    w((function() {
                                        e.apply(t, n)
                                    }))
                                }
                            },
                            N = function(e) {
                                var t, a = 0,
                                    r = i.throttleDelay,
                                    o = i.ricTimeout,
                                    s = function() {
                                        t = !1, a = n.now(), e()
                                    },
                                    l = f && o > 49 ? function() {
                                        f(s, {
                                            timeout: o
                                        }), o !== i.ricTimeout && (o = i.ricTimeout)
                                    } : M((function() {
                                        d(s)
                                    }), !0);
                                return function(e) {
                                    var i;
                                    (e = !0 === e) && (o = 33), t || (t = !0, (i = r - (n.now() - a)) < 0 && (i = 0), e || i < 9 ? l() : d(l, i))
                                }
                            },
                            x = function(e) {
                                var t, a, i = 99,
                                    r = function() {
                                        t = null, e()
                                    },
                                    o = function() {
                                        var e = n.now() - a;
                                        e < i ? d(o, i - e) : (f || r)(r)
                                    };
                                return function() {
                                    a = n.now(), t || (t = d(o, i))
                                }
                            },
                            L = (K = /^img$/i, Q = /^iframe$/i, V = "onscroll" in e && !/(gle|ing)bot/.test(navigator.userAgent), X = 0, Y = 0, Z = 0, ee = -1, te = function(e) {
                                Z--, (!e || Z < 0 || !e.target) && (Z = 0)
                            }, ne = function(e) {
                                return null == J && (J = "hidden" == E(t.body, "visibility")), J || !("hidden" == E(e.parentNode, "visibility") && "hidden" == E(e, "visibility"))
                            }, ae = function(e, n) {
                                var a, i = e,
                                    o = ne(e);
                                for (I -= n, G += n, j -= n, U += n; o && (i = i.offsetParent) && i != t.body && i != r;)(o = (E(i, "opacity") || 1) > 0) && "visible" != E(i, "overflow") && (a = i.getBoundingClientRect(), o = U > a.left && j < a.right && G > a.top - 1 && I < a.bottom + 1);
                                return o
                            }, ie = function() {
                                var e, n, o, s, c, d, u, f, m, v, y, g, p = a.elements;
                                if ((D = i.loadMode) && Z < 8 && (e = p.length)) {
                                    for (n = 0, ee++; n < e; n++)
                                        if (p[n] && !p[n]._lazyRace)
                                            if (!V || a.prematureUnveil && a.prematureUnveil(p[n])) fe(p[n]);
                                            else if ((f = p[n][l]("data-expand")) && (d = 1 * f) || (d = Y), v || (v = !i.expand || i.expand < 1 ? r.clientHeight > 500 && r.clientWidth > 500 ? 500 : 370 : i.expand, a._defEx = v, y = v * i.expFactor, g = i.hFac, J = null, Y < y && Z < 1 && ee > 2 && D > 2 && !t.hidden ? (Y = y, ee = 0) : Y = D > 1 && ee > 1 && Z < 6 ? v : X), m !== d && ($ = innerWidth + d * g, q = innerHeight + d, u = -1 * d, m = d), o = p[n].getBoundingClientRect(), (G = o.bottom) >= u && (I = o.top) <= q && (U = o.right) >= u * g && (j = o.left) <= $ && (G || U || j || I) && (i.loadHidden || ne(p[n])) && (R && Z < 3 && !f && (D < 3 || ee < 4) || ae(p[n], d))) {
                                        if (fe(p[n]), c = !0, Z > 9) break
                                    } else !c && R && !s && Z < 4 && ee < 4 && D > 2 && (P[0] || i.preloadAfterLoad) && (P[0] || !f && (G || U || j || I || "auto" != p[n][l](i.sizesAttr))) && (s = P[0] || p[n]);
                                    s && !c && fe(s)
                                }
                            }, re = N(ie), oe = function(e) {
                                var t = e.target;
                                t._lazyCache ? delete t._lazyCache : (te(e), z(t, i.loadedClass), h(t, i.loadingClass), b(t, le), C(t, "lazyloaded"))
                            }, se = M(oe), le = function(e) {
                                se({
                                    target: e.target
                                })
                            }, ce = function(e, t) {
                                var n = e.getAttribute("data-load-mode") || i.iframeLoadMode;
                                0 == n ? e.contentWindow.location.replace(t) : 1 == n && (e.src = t)
                            }, de = function(e) {
                                var t, n = e[l](i.srcsetAttr);
                                (t = i.customMedia[e[l]("data-media") || e[l]("media")]) && e.setAttribute("media", t), n && e.setAttribute("srcset", n)
                            }, ue = M((function(e, t, n, a, r) {
                                var o, s, c, u, f, v;
                                (f = C(e, "lazybeforeunveil", t)).defaultPrevented || (a && (n ? z(e, i.autosizesClass) : e.setAttribute("sizes", a)), s = e[l](i.srcsetAttr), o = e[l](i.srcAttr), r && (u = (c = e.parentNode) && m.test(c.nodeName || "")), v = t.firesLoad || "src" in e && (s || o || u), f = {
                                    target: e
                                }, z(e, i.loadingClass), v && (clearTimeout(k), k = d(te, 2500), b(e, le, !0)), u && g.call(c.getElementsByTagName("source"), de), s ? e.setAttribute("srcset", s) : o && !u && (Q.test(e.nodeName) ? ce(e, o) : e.src = o), r && (s || u) && A(e, {
                                    src: o
                                })), e._lazyRace && delete e._lazyRace, h(e, i.lazyClass), w((function() {
                                    var t = e.complete && e.naturalWidth > 1;
                                    v && !t || (t && z(e, i.fastLoadedClass), oe(f), e._lazyCache = !0, d((function() {
                                        "_lazyCache" in e && delete e._lazyCache
                                    }), 9)), "lazy" == e.loading && Z--
                                }), !0)
                            })), fe = function(e) {
                                if (!e._lazyRace) {
                                    var t, n = K.test(e.nodeName),
                                        a = n && (e[l](i.sizesAttr) || e[l]("sizes")),
                                        r = "auto" == a;
                                    (!r && R || !n || !e[l]("src") && !e.srcset || e.complete || p(e, i.errorClass) || !p(e, i.lazyClass)) && (t = C(e, "lazyunveilread").detail, r && W.updateElem(e, !0, e.offsetWidth), e._lazyRace = !0, Z++, ue(e, t, r, a, n))
                                }
                            }, me = x((function() {
                                i.loadMode = 3, re()
                            })), ve = function() {
                                3 == i.loadMode && (i.loadMode = 2), me()
                            }, ye = function() {
                                R || (n.now() - H < 999 ? d(ye, 999) : (R = !0, i.loadMode = 3, re(), c("scroll", ve, !0)))
                            }, {
                                _: function() {
                                    H = n.now(), a.elements = t.getElementsByClassName(i.lazyClass), P = t.getElementsByClassName(i.lazyClass + " " + i.preloadClass), c("scroll", re, !0), c("resize", re, !0), c("pageshow", (function(e) {
                                        if (e.persisted) {
                                            var n = t.querySelectorAll("." + i.loadingClass);
                                            n.length && n.forEach && u((function() {
                                                n.forEach((function(e) {
                                                    e.complete && fe(e)
                                                }))
                                            }))
                                        }
                                    })), e.MutationObserver ? new MutationObserver(re).observe(r, {
                                        childList: !0,
                                        subtree: !0,
                                        attributes: !0
                                    }) : (r[s]("DOMNodeInserted", re, !0), r[s]("DOMAttrModified", re, !0), setInterval(re, 999)), c("hashchange", re, !0), ["focus", "mouseover", "click", "load", "transitionend", "animationend"].forEach((function(e) {
                                        t[s](e, re, !0)
                                    })), /d$|^c/.test(t.readyState) ? ye() : (c("load", ye), t[s]("DOMContentLoaded", re), d(ye, 2e4)), a.elements.length ? (ie(), w._lsFlush()) : re()
                                },
                                checkElems: re,
                                unveil: fe,
                                _aLSL: ve
                            }),
                            W = (T = M((function(e, t, n, a) {
                                var i, r, o;
                                if (e._lazysizesWidth = a, a += "px", e.setAttribute("sizes", a), m.test(t.nodeName || ""))
                                    for (r = 0, o = (i = t.getElementsByTagName("source")).length; r < o; r++) i[r].setAttribute("sizes", a);
                                n.detail.dataAttr || A(e, n.detail)
                            })), F = function(e, t, n) {
                                var a, i = e.parentNode;
                                i && (n = _(e, i, n), (a = C(e, "lazybeforesizes", {
                                    width: n,
                                    dataAttr: !!t
                                })).defaultPrevented || (n = a.detail.width) && n !== e._lazysizesWidth && T(e, i, a, n))
                            }, O = x((function() {
                                var e, t = B.length;
                                if (t)
                                    for (e = 0; e < t; e++) F(B[e])
                            })), {
                                _: function() {
                                    B = t.getElementsByClassName(i.autosizesClass), c("resize", O)
                                },
                                checkElems: O,
                                updateElem: F
                            }),
                            S = function() {
                                !S.i && t.getElementsByClassName && (S.i = !0, W._(), L._())
                            };
                        var B, T, F, O;
                        var P, R, k, D, H, $, q, I, j, U, G, J, K, Q, V, X, Y, Z, ee, te, ne, ae, ie, re, oe, se, le, ce, de, ue, fe, me, ve, ye;
                        var ge, pe, ze, he, be, Ce, Ae;
                        return d((function() {
                            i.init && S()
                        })), a = {
                            cfg: i,
                            autoSizer: W,
                            loader: L,
                            init: S,
                            uP: A,
                            aC: z,
                            rC: h,
                            hC: p,
                            fire: C,
                            gW: _,
                            rAF: w
                        }
                    }(t, t.document, Date);
                    t.lazySizes = n, e.exports && (e.exports = n)
                }("undefined" != typeof window ? window : {})
            }
        },
        t = {};

    function n(a) {
        var i = t[a];
        if (void 0 !== i) return i.exports;
        var r = t[a] = {
            exports: {}
        };
        return e[a](r, r.exports, n), r.exports
    }
    n.n = function(e) {
            var t = e && e.__esModule ? function() {
                return e.default
            } : function() {
                return e
            };
            return n.d(t, {
                a: t
            }), t
        }, n.d = function(e, t) {
            for (var a in t) n.o(t, a) && !n.o(e, a) && Object.defineProperty(e, a, {
                enumerable: !0,
                get: t[a]
            })
        }, n.o = function(e, t) {
            return Object.prototype.hasOwnProperty.call(e, t)
        },
        function() {
            "use strict";
            var e = n(6879),
                t = n.n(e);
            document.addEventListener("lazybeforeunveil", (function(e) {
                ! function(e) {
                    var t = e.getAttribute("data-bg-image"),
                        n = "background-image";
                    if (t || (t = e.getAttribute("data-bg"), n = "background"), t) {
                        var a = t.replace(/\s*\!\s*important/i, ""),
                            i = a !== t ? "important" : "";
                        e.style.setProperty(n, a, i)
                    }
                }(e.target)
            })), t().init()
        }()
}();
! function(i) {
    "use strict";
    "function" == typeof define && define.amd ? define(["jquery"], i) : "undefined" != typeof exports ? module.exports = i(require("jquery")) : i(jQuery)
}(function(i) {
    "use strict";
    var e = window.Slick || {};
    (e = function() {
        var e = 0;
        return function(t, o) {
            var s, n = this;
            n.defaults = {
                accessibility: !0,
                adaptiveHeight: !1,
                appendArrows: i(t),
                appendDots: i(t),
                arrows: !0,
                asNavFor: null,
                prevArrow: '<button class="slick-prev" aria-label="Previous" type="button">Previous</button>',
                nextArrow: '<button class="slick-next" aria-label="Next" type="button">Next</button>',
                autoplay: !1,
                autoplaySpeed: 3e3,
                centerMode: !1,
                centerPadding: "50px",
                cssEase: "ease",
                customPaging: function(e, t) {
                    return i('<button type="button" />').text(t + 1)
                },
                dots: !1,
                dotsClass: "slick-dots",
                draggable: !0,
                easing: "linear",
                edgeFriction: .35,
                fade: !1,
                focusOnSelect: !1,
                focusOnChange: !1,
                infinite: !0,
                initialSlide: 0,
                lazyLoad: "ondemand",
                mobileFirst: !1,
                pauseOnHover: !0,
                pauseOnFocus: !0,
                pauseOnDotsHover: !1,
                respondTo: "window",
                responsive: null,
                rows: 1,
                rtl: !1,
                slide: "",
                slidesPerRow: 1,
                slidesToShow: 1,
                slidesToScroll: 1,
                speed: 500,
                swipe: !0,
                swipeToSlide: !1,
                touchMove: !0,
                touchThreshold: 5,
                useCSS: !0,
                useTransform: !0,
                variableWidth: !1,
                vertical: !1,
                verticalSwiping: !1,
                waitForAnimate: !0,
                zIndex: 1e3
            }, n.initials = {
                animating: !1,
                dragging: !1,
                autoPlayTimer: null,
                currentDirection: 0,
                currentLeft: null,
                currentSlide: 0,
                direction: 1,
                $dots: null,
                listWidth: null,
                listHeight: null,
                loadIndex: 0,
                $nextArrow: null,
                $prevArrow: null,
                scrolling: !1,
                slideCount: null,
                slideWidth: null,
                $slideTrack: null,
                $slides: null,
                sliding: !1,
                slideOffset: 0,
                swipeLeft: null,
                swiping: !1,
                $list: null,
                touchObject: {},
                transformsEnabled: !1,
                unslicked: !1
            }, i.extend(n, n.initials), n.activeBreakpoint = null, n.animType = null, n.animProp = null, n.breakpoints = [], n.breakpointSettings = [], n.cssTransitions = !1, n.focussed = !1, n.interrupted = !1, n.hidden = "hidden", n.paused = !0, n.positionProp = null, n.respondTo = null, n.rowCount = 1, n.shouldClick = !0, n.$slider = i(t), n.$slidesCache = null, n.transformType = null, n.transitionType = null, n.visibilityChange = "visibilitychange", n.windowWidth = 0, n.windowTimer = null, s = i(t).data("slick") || {}, n.options = i.extend({}, n.defaults, o, s), n.currentSlide = n.options.initialSlide, n.originalSettings = n.options, void 0 !== document.mozHidden ? (n.hidden = "mozHidden", n.visibilityChange = "mozvisibilitychange") : void 0 !== document.webkitHidden && (n.hidden = "webkitHidden", n.visibilityChange = "webkitvisibilitychange"), n.autoPlay = i.proxy(n.autoPlay, n), n.autoPlayClear = i.proxy(n.autoPlayClear, n), n.autoPlayIterator = i.proxy(n.autoPlayIterator, n), n.changeSlide = i.proxy(n.changeSlide, n), n.clickHandler = i.proxy(n.clickHandler, n), n.selectHandler = i.proxy(n.selectHandler, n), n.setPosition = i.proxy(n.setPosition, n), n.swipeHandler = i.proxy(n.swipeHandler, n), n.dragHandler = i.proxy(n.dragHandler, n), n.keyHandler = i.proxy(n.keyHandler, n), n.instanceUid = e++, n.htmlExpr = /^(?:\s*(<[\w\W]+>)[^>]*)$/, n.registerBreakpoints(), n.init(!0)
        }
    }()).prototype.activateADA = function() {
        this.$slideTrack.find(".slick-active").attr({
            "aria-hidden": "false"
        }).find("a, input, button, select").attr({
            tabindex: "0"
        })
    }, e.prototype.addSlide = e.prototype.slickAdd = function(e, t, o) {
        var s = this;
        if ("boolean" == typeof t) o = t, t = null;
        else if (t < 0 || t >= s.slideCount) return !1;
        s.unload(), "number" == typeof t ? 0 === t && 0 === s.$slides.length ? i(e).appendTo(s.$slideTrack) : o ? i(e).insertBefore(s.$slides.eq(t)) : i(e).insertAfter(s.$slides.eq(t)) : !0 === o ? i(e).prependTo(s.$slideTrack) : i(e).appendTo(s.$slideTrack), s.$slides = s.$slideTrack.children(this.options.slide), s.$slideTrack.children(this.options.slide).detach(), s.$slideTrack.append(s.$slides), s.$slides.each(function(e, t) {
            i(t).attr("data-slick-index", e)
        }), s.$slidesCache = s.$slides, s.reinit()
    }, e.prototype.animateHeight = function() {
        var i = this;
        if (1 === i.options.slidesToShow && !0 === i.options.adaptiveHeight && !1 === i.options.vertical) {
            var e = i.$slides.eq(i.currentSlide).outerHeight(!0);
            i.$list.animate({
                height: e
            }, i.options.speed)
        }
    }, e.prototype.animateSlide = function(e, t) {
        var o = {},
            s = this;
        s.animateHeight(), !0 === s.options.rtl && !1 === s.options.vertical && (e = -e), !1 === s.transformsEnabled ? !1 === s.options.vertical ? s.$slideTrack.animate({
            left: e
        }, s.options.speed, s.options.easing, t) : s.$slideTrack.animate({
            top: e
        }, s.options.speed, s.options.easing, t) : !1 === s.cssTransitions ? (!0 === s.options.rtl && (s.currentLeft = -s.currentLeft), i({
            animStart: s.currentLeft
        }).animate({
            animStart: e
        }, {
            duration: s.options.speed,
            easing: s.options.easing,
            step: function(i) {
                i = Math.ceil(i), !1 === s.options.vertical ? (o[s.animType] = "translate(" + i + "px, 0px)", s.$slideTrack.css(o)) : (o[s.animType] = "translate(0px," + i + "px)", s.$slideTrack.css(o))
            },
            complete: function() {
                t && t.call()
            }
        })) : (s.applyTransition(), e = Math.ceil(e), !1 === s.options.vertical ? o[s.animType] = "translate3d(" + e + "px, 0px, 0px)" : o[s.animType] = "translate3d(0px," + e + "px, 0px)", s.$slideTrack.css(o), t && setTimeout(function() {
            s.disableTransition(), t.call()
        }, s.options.speed))
    }, e.prototype.getNavTarget = function() {
        var e = this,
            t = e.options.asNavFor;
        return t && null !== t && (t = i(t).not(e.$slider)), t
    }, e.prototype.asNavFor = function(e) {
        var t = this.getNavTarget();
        null !== t && "object" == typeof t && t.each(function() {
            var t = i(this).slick("getSlick");
            t.unslicked || t.slideHandler(e, !0)
        })
    }, e.prototype.applyTransition = function(i) {
        var e = this,
            t = {};
        !1 === e.options.fade ? t[e.transitionType] = e.transformType + " " + e.options.speed + "ms " + e.options.cssEase : t[e.transitionType] = "opacity " + e.options.speed + "ms " + e.options.cssEase, !1 === e.options.fade ? e.$slideTrack.css(t) : e.$slides.eq(i).css(t)
    }, e.prototype.autoPlay = function() {
        var i = this;
        i.autoPlayClear(), i.slideCount > i.options.slidesToShow && (i.autoPlayTimer = setInterval(i.autoPlayIterator, i.options.autoplaySpeed))
    }, e.prototype.autoPlayClear = function() {
        var i = this;
        i.autoPlayTimer && clearInterval(i.autoPlayTimer)
    }, e.prototype.autoPlayIterator = function() {
        var i = this,
            e = i.currentSlide + i.options.slidesToScroll;
        i.paused || i.interrupted || i.focussed || (!1 === i.options.infinite && (1 === i.direction && i.currentSlide + 1 === i.slideCount - 1 ? i.direction = 0 : 0 === i.direction && (e = i.currentSlide - i.options.slidesToScroll, i.currentSlide - 1 == 0 && (i.direction = 1))), i.slideHandler(e))
    }, e.prototype.buildArrows = function() {
        var e = this;
        !0 === e.options.arrows && (e.$prevArrow = i(e.options.prevArrow).addClass("slick-arrow"), e.$nextArrow = i(e.options.nextArrow).addClass("slick-arrow"), e.slideCount > e.options.slidesToShow ? (e.$prevArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"), e.$nextArrow.removeClass("slick-hidden").removeAttr("aria-hidden tabindex"), e.htmlExpr.test(e.options.prevArrow) && e.$prevArrow.prependTo(e.options.appendArrows), e.htmlExpr.test(e.options.nextArrow) && e.$nextArrow.appendTo(e.options.appendArrows), !0 !== e.options.infinite && e.$prevArrow.addClass("slick-disabled").attr("aria-disabled", "true")) : e.$prevArrow.add(e.$nextArrow).addClass("slick-hidden").attr({
            "aria-disabled": "true",
            tabindex: "-1"
        }))
    }, e.prototype.buildDots = function() {
        var e, t, o = this;
        if (!0 === o.options.dots) {
            for (o.$slider.addClass("slick-dotted"), t = i("<ul />").addClass(o.options.dotsClass), e = 0; e <= o.getDotCount(); e += 1) t.append(i("<li />").append(o.options.customPaging.call(this, o, e)));
            o.$dots = t.appendTo(o.options.appendDots), o.$dots.find("li").first().addClass("slick-active")
        }
    }, e.prototype.buildOut = function() {
        var e = this;
        e.$slides = e.$slider.children(e.options.slide + ":not(.slick-cloned)").addClass("slick-slide"), e.slideCount = e.$slides.length, e.$slides.each(function(e, t) {
            i(t).attr("data-slick-index", e).data("originalStyling", i(t).attr("style") || "")
        }), e.$slider.addClass("slick-slider"), e.$slideTrack = 0 === e.slideCount ? i('<div class="slick-track"/>').appendTo(e.$slider) : e.$slides.wrapAll('<div class="slick-track"/>').parent(), e.$list = e.$slideTrack.wrap('<div class="slick-list"/>').parent(), e.$slideTrack.css("opacity", 0), !0 !== e.options.centerMode && !0 !== e.options.swipeToSlide || (e.options.slidesToScroll = 1), i("img[data-lazy]", e.$slider).not("[src]").addClass("slick-loading"), e.setupInfinite(), e.buildArrows(), e.buildDots(), e.updateDots(), e.setSlideClasses("number" == typeof e.currentSlide ? e.currentSlide : 0), !0 === e.options.draggable && e.$list.addClass("draggable")
    }, e.prototype.buildRows = function() {
        var i, e, t, o, s, n, r, l = this;
        if (o = document.createDocumentFragment(), n = l.$slider.children(), l.options.rows > 1) {
            for (r = l.options.slidesPerRow * l.options.rows, s = Math.ceil(n.length / r), i = 0; i < s; i++) {
                var d = document.createElement("div");
                for (e = 0; e < l.options.rows; e++) {
                    var a = document.createElement("div");
                    for (t = 0; t < l.options.slidesPerRow; t++) {
                        var c = i * r + (e * l.options.slidesPerRow + t);
                        n.get(c) && a.appendChild(n.get(c))
                    }
                    d.appendChild(a)
                }
                o.appendChild(d)
            }
            l.$slider.empty().append(o), l.$slider.children().children().children().css({
                width: 100 / l.options.slidesPerRow + "%",
                display: "inline-block"
            })
        }
    }, e.prototype.checkResponsive = function(e, t) {
        var o, s, n, r = this,
            l = !1,
            d = r.$slider.width(),
            a = window.innerWidth || i(window).width();
        if ("window" === r.respondTo ? n = a : "slider" === r.respondTo ? n = d : "min" === r.respondTo && (n = Math.min(a, d)), r.options.responsive && r.options.responsive.length && null !== r.options.responsive) {
            s = null;
            for (o in r.breakpoints) r.breakpoints.hasOwnProperty(o) && (!1 === r.originalSettings.mobileFirst ? n < r.breakpoints[o] && (s = r.breakpoints[o]) : n > r.breakpoints[o] && (s = r.breakpoints[o]));
            null !== s ? null !== r.activeBreakpoint ? (s !== r.activeBreakpoint || t) && (r.activeBreakpoint = s, "unslick" === r.breakpointSettings[s] ? r.unslick(s) : (r.options = i.extend({}, r.originalSettings, r.breakpointSettings[s]), !0 === e && (r.currentSlide = r.options.initialSlide), r.refresh(e)), l = s) : (r.activeBreakpoint = s, "unslick" === r.breakpointSettings[s] ? r.unslick(s) : (r.options = i.extend({}, r.originalSettings, r.breakpointSettings[s]), !0 === e && (r.currentSlide = r.options.initialSlide), r.refresh(e)), l = s) : null !== r.activeBreakpoint && (r.activeBreakpoint = null, r.options = r.originalSettings, !0 === e && (r.currentSlide = r.options.initialSlide), r.refresh(e), l = s), e || !1 === l || r.$slider.trigger("breakpoint", [r, l])
        }
    }, e.prototype.changeSlide = function(e, t) {
        var o, s, n, r = this,
            l = i(e.currentTarget);
        switch (l.is("a") && e.preventDefault(), l.is("li") || (l = l.closest("li")), n = r.slideCount % r.options.slidesToScroll != 0, o = n ? 0 : (r.slideCount - r.currentSlide) % r.options.slidesToScroll, e.data.message) {
            case "previous":
                s = 0 === o ? r.options.slidesToScroll : r.options.slidesToShow - o, r.slideCount > r.options.slidesToShow && r.slideHandler(r.currentSlide - s, !1, t);
                break;
            case "next":
                s = 0 === o ? r.options.slidesToScroll : o, r.slideCount > r.options.slidesToShow && r.slideHandler(r.currentSlide + s, !1, t);
                break;
            case "index":
                var d = 0 === e.data.index ? 0 : e.data.index || l.index() * r.options.slidesToScroll;
                r.slideHandler(r.checkNavigable(d), !1, t), l.children().trigger("focus");
                break;
            default:
                return
        }
    }, e.prototype.checkNavigable = function(i) {
        var e, t;
        if (e = this.getNavigableIndexes(), t = 0, i > e[e.length - 1]) i = e[e.length - 1];
        else
            for (var o in e) {
                if (i < e[o]) {
                    i = t;
                    break
                }
                t = e[o]
            }
        return i
    }, e.prototype.cleanUpEvents = function() {
        var e = this;
        e.options.dots && null !== e.$dots && (i("li", e.$dots).off("click.slick", e.changeSlide).off("mouseenter.slick", i.proxy(e.interrupt, e, !0)).off("mouseleave.slick", i.proxy(e.interrupt, e, !1)), !0 === e.options.accessibility && e.$dots.off("keydown.slick", e.keyHandler)), e.$slider.off("focus.slick blur.slick"), !0 === e.options.arrows && e.slideCount > e.options.slidesToShow && (e.$prevArrow && e.$prevArrow.off("click.slick", e.changeSlide), e.$nextArrow && e.$nextArrow.off("click.slick", e.changeSlide), !0 === e.options.accessibility && (e.$prevArrow && e.$prevArrow.off("keydown.slick", e.keyHandler), e.$nextArrow && e.$nextArrow.off("keydown.slick", e.keyHandler))), e.$list.off("touchstart.slick mousedown.slick", e.swipeHandler), e.$list.off("touchmove.slick mousemove.slick", e.swipeHandler), e.$list.off("touchend.slick mouseup.slick", e.swipeHandler), e.$list.off("touchcancel.slick mouseleave.slick", e.swipeHandler), e.$list.off("click.slick", e.clickHandler), i(document).off(e.visibilityChange, e.visibility), e.cleanUpSlideEvents(), !0 === e.options.accessibility && e.$list.off("keydown.slick", e.keyHandler), !0 === e.options.focusOnSelect && i(e.$slideTrack).children().off("click.slick", e.selectHandler), i(window).off("orientationchange.slick.slick-" + e.instanceUid, e.orientationChange), i(window).off("resize.slick.slick-" + e.instanceUid, e.resize), i("[draggable!=true]", e.$slideTrack).off("dragstart", e.preventDefault), i(window).off("load.slick.slick-" + e.instanceUid, e.setPosition)
    }, e.prototype.cleanUpSlideEvents = function() {
        var e = this;
        e.$list.off("mouseenter.slick", i.proxy(e.interrupt, e, !0)), e.$list.off("mouseleave.slick", i.proxy(e.interrupt, e, !1))
    }, e.prototype.cleanUpRows = function() {
        var i, e = this;
        e.options.rows > 1 && ((i = e.$slides.children().children()).removeAttr("style"), e.$slider.empty().append(i))
    }, e.prototype.clickHandler = function(i) {
        !1 === this.shouldClick && (i.stopImmediatePropagation(), i.stopPropagation(), i.preventDefault())
    }, e.prototype.destroy = function(e) {
        var t = this;
        t.autoPlayClear(), t.touchObject = {}, t.cleanUpEvents(), i(".slick-cloned", t.$slider).detach(), t.$dots && t.$dots.remove(), t.$prevArrow && t.$prevArrow.length && (t.$prevArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display", ""), t.htmlExpr.test(t.options.prevArrow) && t.$prevArrow.remove()), t.$nextArrow && t.$nextArrow.length && (t.$nextArrow.removeClass("slick-disabled slick-arrow slick-hidden").removeAttr("aria-hidden aria-disabled tabindex").css("display", ""), t.htmlExpr.test(t.options.nextArrow) && t.$nextArrow.remove()), t.$slides && (t.$slides.removeClass("slick-slide slick-active slick-center slick-visible slick-current").removeAttr("aria-hidden").removeAttr("data-slick-index").each(function() {
            i(this).attr("style", i(this).data("originalStyling"))
        }), t.$slideTrack.children(this.options.slide).detach(), t.$slideTrack.detach(), t.$list.detach(), t.$slider.append(t.$slides)), t.cleanUpRows(), t.$slider.removeClass("slick-slider"), t.$slider.removeClass("slick-initialized"), t.$slider.removeClass("slick-dotted"), t.unslicked = !0, e || t.$slider.trigger("destroy", [t])
    }, e.prototype.disableTransition = function(i) {
        var e = this,
            t = {};
        t[e.transitionType] = "", !1 === e.options.fade ? e.$slideTrack.css(t) : e.$slides.eq(i).css(t)
    }, e.prototype.fadeSlide = function(i, e) {
        var t = this;
        !1 === t.cssTransitions ? (t.$slides.eq(i).css({
            zIndex: t.options.zIndex
        }), t.$slides.eq(i).animate({
            opacity: 1
        }, t.options.speed, t.options.easing, e)) : (t.applyTransition(i), t.$slides.eq(i).css({
            opacity: 1,
            zIndex: t.options.zIndex
        }), e && setTimeout(function() {
            t.disableTransition(i), e.call()
        }, t.options.speed))
    }, e.prototype.fadeSlideOut = function(i) {
        var e = this;
        !1 === e.cssTransitions ? e.$slides.eq(i).animate({
            opacity: 0,
            zIndex: e.options.zIndex - 2
        }, e.options.speed, e.options.easing) : (e.applyTransition(i), e.$slides.eq(i).css({
            opacity: 0,
            zIndex: e.options.zIndex - 2
        }))
    }, e.prototype.filterSlides = e.prototype.slickFilter = function(i) {
        var e = this;
        null !== i && (e.$slidesCache = e.$slides, e.unload(), e.$slideTrack.children(this.options.slide).detach(), e.$slidesCache.filter(i).appendTo(e.$slideTrack), e.reinit())
    }, e.prototype.focusHandler = function() {
        var e = this;
        e.$slider.off("focus.slick blur.slick").on("focus.slick blur.slick", "*", function(t) {
            t.stopImmediatePropagation();
            var o = i(this);
            setTimeout(function() {
                e.options.pauseOnFocus && (e.focussed = o.is(":focus"), e.autoPlay())
            }, 0)
        })
    }, e.prototype.getCurrent = e.prototype.slickCurrentSlide = function() {
        return this.currentSlide
    }, e.prototype.getDotCount = function() {
        var i = this,
            e = 0,
            t = 0,
            o = 0;
        if (!0 === i.options.infinite)
            if (i.slideCount <= i.options.slidesToShow) ++o;
            else
                for (; e < i.slideCount;) ++o, e = t + i.options.slidesToScroll, t += i.options.slidesToScroll <= i.options.slidesToShow ? i.options.slidesToScroll : i.options.slidesToShow;
        else if (!0 === i.options.centerMode) o = i.slideCount;
        else if (i.options.asNavFor)
            for (; e < i.slideCount;) ++o, e = t + i.options.slidesToScroll, t += i.options.slidesToScroll <= i.options.slidesToShow ? i.options.slidesToScroll : i.options.slidesToShow;
        else o = 1 + Math.ceil((i.slideCount - i.options.slidesToShow) / i.options.slidesToScroll);
        return o - 1
    }, e.prototype.getLeft = function(i) {
        var e, t, o, s, n = this,
            r = 0;
        return n.slideOffset = 0, t = n.$slides.first().outerHeight(!0), !0 === n.options.infinite ? (n.slideCount > n.options.slidesToShow && (n.slideOffset = n.slideWidth * n.options.slidesToShow * -1, s = -1, !0 === n.options.vertical && !0 === n.options.centerMode && (2 === n.options.slidesToShow ? s = -1.5 : 1 === n.options.slidesToShow && (s = -2)), r = t * n.options.slidesToShow * s), n.slideCount % n.options.slidesToScroll != 0 && i + n.options.slidesToScroll > n.slideCount && n.slideCount > n.options.slidesToShow && (i > n.slideCount ? (n.slideOffset = (n.options.slidesToShow - (i - n.slideCount)) * n.slideWidth * -1, r = (n.options.slidesToShow - (i - n.slideCount)) * t * -1) : (n.slideOffset = n.slideCount % n.options.slidesToScroll * n.slideWidth * -1, r = n.slideCount % n.options.slidesToScroll * t * -1))) : i + n.options.slidesToShow > n.slideCount && (n.slideOffset = (i + n.options.slidesToShow - n.slideCount) * n.slideWidth, r = (i + n.options.slidesToShow - n.slideCount) * t), n.slideCount <= n.options.slidesToShow && (n.slideOffset = 0, r = 0), !0 === n.options.centerMode && n.slideCount <= n.options.slidesToShow ? n.slideOffset = n.slideWidth * Math.floor(n.options.slidesToShow) / 2 - n.slideWidth * n.slideCount / 2 : !0 === n.options.centerMode && !0 === n.options.infinite ? n.slideOffset += n.slideWidth * Math.floor(n.options.slidesToShow / 2) - n.slideWidth : !0 === n.options.centerMode && (n.slideOffset = 0, n.slideOffset += n.slideWidth * Math.floor(n.options.slidesToShow / 2)), e = !1 === n.options.vertical ? i * n.slideWidth * -1 + n.slideOffset : i * t * -1 + r, !0 === n.options.variableWidth && (o = n.slideCount <= n.options.slidesToShow || !1 === n.options.infinite ? n.$slideTrack.children(".slick-slide").eq(i) : n.$slideTrack.children(".slick-slide").eq(i + n.options.slidesToShow), e = !0 === n.options.rtl ? o[0] ? -1 * (n.$slideTrack.width() - o[0].offsetLeft - o.width()) : 0 : o[0] ? -1 * o[0].offsetLeft : 0, !0 === n.options.centerMode && (o = n.slideCount <= n.options.slidesToShow || !1 === n.options.infinite ? n.$slideTrack.children(".slick-slide").eq(i) : n.$slideTrack.children(".slick-slide").eq(i + n.options.slidesToShow + 1), e = !0 === n.options.rtl ? o[0] ? -1 * (n.$slideTrack.width() - o[0].offsetLeft - o.width()) : 0 : o[0] ? -1 * o[0].offsetLeft : 0, e += (n.$list.width() - o.outerWidth()) / 2)), e
    }, e.prototype.getOption = e.prototype.slickGetOption = function(i) {
        return this.options[i]
    }, e.prototype.getNavigableIndexes = function() {
        var i, e = this,
            t = 0,
            o = 0,
            s = [];
        for (!1 === e.options.infinite ? i = e.slideCount : (t = -1 * e.options.slidesToScroll, o = -1 * e.options.slidesToScroll, i = 2 * e.slideCount); t < i;) s.push(t), t = o + e.options.slidesToScroll, o += e.options.slidesToScroll <= e.options.slidesToShow ? e.options.slidesToScroll : e.options.slidesToShow;
        return s
    }, e.prototype.getSlick = function() {
        return this
    }, e.prototype.getSlideCount = function() {
        var e, t, o = this;
        return t = !0 === o.options.centerMode ? o.slideWidth * Math.floor(o.options.slidesToShow / 2) : 0, !0 === o.options.swipeToSlide ? (o.$slideTrack.find(".slick-slide").each(function(s, n) {
            if (n.offsetLeft - t + i(n).outerWidth() / 2 > -1 * o.swipeLeft) return e = n, !1
        }), Math.abs(i(e).attr("data-slick-index") - o.currentSlide) || 1) : o.options.slidesToScroll
    }, e.prototype.goTo = e.prototype.slickGoTo = function(i, e) {
        this.changeSlide({
            data: {
                message: "index",
                index: parseInt(i)
            }
        }, e)
    }, e.prototype.init = function(e) {
        var t = this;
        i(t.$slider).hasClass("slick-initialized") || (i(t.$slider).addClass("slick-initialized"), t.buildRows(), t.buildOut(), t.setProps(), t.startLoad(), t.loadSlider(), t.initializeEvents(), t.updateArrows(), t.updateDots(), t.checkResponsive(!0), t.focusHandler()), e && t.$slider.trigger("init", [t]), !0 === t.options.accessibility && t.initADA(), t.options.autoplay && (t.paused = !1, t.autoPlay())
    }, e.prototype.initADA = function() {
        var e = this,
            t = Math.ceil(e.slideCount / e.options.slidesToShow),
            o = e.getNavigableIndexes().filter(function(i) {
                return i >= 0 && i < e.slideCount
            });
        e.$slides.add(e.$slideTrack.find(".slick-cloned")).attr({
            "aria-hidden": "true",
            tabindex: "-1"
        }).find("a, input, button, select").attr({
            tabindex: "-1"
        }), null !== e.$dots && (e.$slides.not(e.$slideTrack.find(".slick-cloned")).each(function(t) {
            var s = o.indexOf(t);
            i(this).attr({
                role: "tabpanel",
                id: "slick-slide" + e.instanceUid + t,
                tabindex: -1
            }), -1 !== s && i(this).attr({
                "aria-describedby": "slick-slide-control" + e.instanceUid + s
            })
        }), e.$dots.attr("role", "tablist").find("li").each(function(s) {
            var n = o[s];
            i(this).attr({
                role: "presentation"
            }), i(this).find("button").first().attr({
                role: "tab",
                id: "slick-slide-control" + e.instanceUid + s,
                "aria-controls": "slick-slide" + e.instanceUid + n,
                "aria-label": s + 1 + " of " + t,
                "aria-selected": null,
                tabindex: "-1"
            })
        }).eq(e.currentSlide).find("button").attr({
            "aria-selected": "true",
            tabindex: "0"
        }).end());
        for (var s = e.currentSlide, n = s + e.options.slidesToShow; s < n; s++) e.$slides.eq(s).attr("tabindex", 0);
        e.activateADA()
    }, e.prototype.initArrowEvents = function() {
        var i = this;
        !0 === i.options.arrows && i.slideCount > i.options.slidesToShow && (i.$prevArrow.off("click.slick").on("click.slick", {
            message: "previous"
        }, i.changeSlide), i.$nextArrow.off("click.slick").on("click.slick", {
            message: "next"
        }, i.changeSlide), !0 === i.options.accessibility && (i.$prevArrow.on("keydown.slick", i.keyHandler), i.$nextArrow.on("keydown.slick", i.keyHandler)))
    }, e.prototype.initDotEvents = function() {
        var e = this;
        !0 === e.options.dots && (i("li", e.$dots).on("click.slick", {
            message: "index"
        }, e.changeSlide), !0 === e.options.accessibility && e.$dots.on("keydown.slick", e.keyHandler)), !0 === e.options.dots && !0 === e.options.pauseOnDotsHover && i("li", e.$dots).on("mouseenter.slick", i.proxy(e.interrupt, e, !0)).on("mouseleave.slick", i.proxy(e.interrupt, e, !1))
    }, e.prototype.initSlideEvents = function() {
        var e = this;
        e.options.pauseOnHover && (e.$list.on("mouseenter.slick", i.proxy(e.interrupt, e, !0)), e.$list.on("mouseleave.slick", i.proxy(e.interrupt, e, !1)))
    }, e.prototype.initializeEvents = function() {
        var e = this;
        e.initArrowEvents(), e.initDotEvents(), e.initSlideEvents(), e.$list.on("touchstart.slick mousedown.slick", {
            action: "start"
        }, e.swipeHandler), e.$list.on("touchmove.slick mousemove.slick", {
            action: "move"
        }, e.swipeHandler), e.$list.on("touchend.slick mouseup.slick", {
            action: "end"
        }, e.swipeHandler), e.$list.on("touchcancel.slick mouseleave.slick", {
            action: "end"
        }, e.swipeHandler), e.$list.on("click.slick", e.clickHandler), i(document).on(e.visibilityChange, i.proxy(e.visibility, e)), !0 === e.options.accessibility && e.$list.on("keydown.slick", e.keyHandler), !0 === e.options.focusOnSelect && i(e.$slideTrack).children().on("click.slick", e.selectHandler), i(window).on("orientationchange.slick.slick-" + e.instanceUid, i.proxy(e.orientationChange, e)), i(window).on("resize.slick.slick-" + e.instanceUid, i.proxy(e.resize, e)), i("[draggable!=true]", e.$slideTrack).on("dragstart", e.preventDefault), i(window).on("load.slick.slick-" + e.instanceUid, e.setPosition), i(e.setPosition)
    }, e.prototype.initUI = function() {
        var i = this;
        !0 === i.options.arrows && i.slideCount > i.options.slidesToShow && (i.$prevArrow.show(), i.$nextArrow.show()), !0 === i.options.dots && i.slideCount > i.options.slidesToShow && i.$dots.show()
    }, e.prototype.keyHandler = function(i) {
        var e = this;
        i.target.tagName.match("TEXTAREA|INPUT|SELECT") || (37 === i.keyCode && !0 === e.options.accessibility ? e.changeSlide({
            data: {
                message: !0 === e.options.rtl ? "next" : "previous"
            }
        }) : 39 === i.keyCode && !0 === e.options.accessibility && e.changeSlide({
            data: {
                message: !0 === e.options.rtl ? "previous" : "next"
            }
        }))
    }, e.prototype.lazyLoad = function() {
        function e(e) {
            i("img[data-lazy]", e).each(function() {
                var e = i(this),
                    t = i(this).attr("data-lazy"),
                    o = i(this).attr("data-srcset"),
                    s = i(this).attr("data-sizes") || n.$slider.attr("data-sizes"),
                    r = document.createElement("img");
                r.onload = function() {
                    e.animate({
                        opacity: 0
                    }, 100, function() {
                        o && (e.attr("srcset", o), s && e.attr("sizes", s)), e.attr("src", t).animate({
                            opacity: 1
                        }, 200, function() {
                            e.removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading")
                        }), n.$slider.trigger("lazyLoaded", [n, e, t])
                    })
                }, r.onerror = function() {
                    e.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"), n.$slider.trigger("lazyLoadError", [n, e, t])
                }, r.src = t
            })
        }
        var t, o, s, n = this;
        if (!0 === n.options.centerMode ? !0 === n.options.infinite ? s = (o = n.currentSlide + (n.options.slidesToShow / 2 + 1)) + n.options.slidesToShow + 2 : (o = Math.max(0, n.currentSlide - (n.options.slidesToShow / 2 + 1)), s = n.options.slidesToShow / 2 + 1 + 2 + n.currentSlide) : (o = n.options.infinite ? n.options.slidesToShow + n.currentSlide : n.currentSlide, s = Math.ceil(o + n.options.slidesToShow), !0 === n.options.fade && (o > 0 && o--, s <= n.slideCount && s++)), t = n.$slider.find(".slick-slide").slice(o, s), "anticipated" === n.options.lazyLoad)
            for (var r = o - 1, l = s, d = n.$slider.find(".slick-slide"), a = 0; a < n.options.slidesToScroll; a++) r < 0 && (r = n.slideCount - 1), t = (t = t.add(d.eq(r))).add(d.eq(l)), r--, l++;
        e(t), n.slideCount <= n.options.slidesToShow ? e(n.$slider.find(".slick-slide")) : n.currentSlide >= n.slideCount - n.options.slidesToShow ? e(n.$slider.find(".slick-cloned").slice(0, n.options.slidesToShow)) : 0 === n.currentSlide && e(n.$slider.find(".slick-cloned").slice(-1 * n.options.slidesToShow))
    }, e.prototype.loadSlider = function() {
        var i = this;
        i.setPosition(), i.$slideTrack.css({
            opacity: 1
        }), i.$slider.removeClass("slick-loading"), i.initUI(), "progressive" === i.options.lazyLoad && i.progressiveLazyLoad()
    }, e.prototype.next = e.prototype.slickNext = function() {
        this.changeSlide({
            data: {
                message: "next"
            }
        })
    }, e.prototype.orientationChange = function() {
        var i = this;
        i.checkResponsive(), i.setPosition()
    }, e.prototype.pause = e.prototype.slickPause = function() {
        var i = this;
        i.autoPlayClear(), i.paused = !0
    }, e.prototype.play = e.prototype.slickPlay = function() {
        var i = this;
        i.autoPlay(), i.options.autoplay = !0, i.paused = !1, i.focussed = !1, i.interrupted = !1
    }, e.prototype.postSlide = function(e) {
        var t = this;
        t.unslicked || (t.$slider.trigger("afterChange", [t, e]), t.animating = !1, t.slideCount > t.options.slidesToShow && t.setPosition(), t.swipeLeft = null, t.options.autoplay && t.autoPlay(), !0 === t.options.accessibility && (t.initADA(), t.options.focusOnChange && i(t.$slides.get(t.currentSlide)).attr("tabindex", 0).focus()))
    }, e.prototype.prev = e.prototype.slickPrev = function() {
        this.changeSlide({
            data: {
                message: "previous"
            }
        })
    }, e.prototype.preventDefault = function(i) {
        i.preventDefault()
    }, e.prototype.progressiveLazyLoad = function(e) {
        e = e || 1;
        var t, o, s, n, r, l = this,
            d = i("img[data-lazy]", l.$slider);
        d.length ? (t = d.first(), o = t.attr("data-lazy"), s = t.attr("data-srcset"), n = t.attr("data-sizes") || l.$slider.attr("data-sizes"), (r = document.createElement("img")).onload = function() {
            s && (t.attr("srcset", s), n && t.attr("sizes", n)), t.attr("src", o).removeAttr("data-lazy data-srcset data-sizes").removeClass("slick-loading"), !0 === l.options.adaptiveHeight && l.setPosition(), l.$slider.trigger("lazyLoaded", [l, t, o]), l.progressiveLazyLoad()
        }, r.onerror = function() {
            e < 3 ? setTimeout(function() {
                l.progressiveLazyLoad(e + 1)
            }, 500) : (t.removeAttr("data-lazy").removeClass("slick-loading").addClass("slick-lazyload-error"), l.$slider.trigger("lazyLoadError", [l, t, o]), l.progressiveLazyLoad())
        }, r.src = o) : l.$slider.trigger("allImagesLoaded", [l])
    }, e.prototype.refresh = function(e) {
        var t, o, s = this;
        o = s.slideCount - s.options.slidesToShow, !s.options.infinite && s.currentSlide > o && (s.currentSlide = o), s.slideCount <= s.options.slidesToShow && (s.currentSlide = 0), t = s.currentSlide, s.destroy(!0), i.extend(s, s.initials, {
            currentSlide: t
        }), s.init(), e || s.changeSlide({
            data: {
                message: "index",
                index: t
            }
        }, !1)
    }, e.prototype.registerBreakpoints = function() {
        var e, t, o, s = this,
            n = s.options.responsive || null;
        if ("array" === i.type(n) && n.length) {
            s.respondTo = s.options.respondTo || "window";
            for (e in n)
                if (o = s.breakpoints.length - 1, n.hasOwnProperty(e)) {
                    for (t = n[e].breakpoint; o >= 0;) s.breakpoints[o] && s.breakpoints[o] === t && s.breakpoints.splice(o, 1), o--;
                    s.breakpoints.push(t), s.breakpointSettings[t] = n[e].settings
                }
            s.breakpoints.sort(function(i, e) {
                return s.options.mobileFirst ? i - e : e - i
            })
        }
    }, e.prototype.reinit = function() {
        var e = this;
        e.$slides = e.$slideTrack.children(e.options.slide).addClass("slick-slide"), e.slideCount = e.$slides.length, e.currentSlide >= e.slideCount && 0 !== e.currentSlide && (e.currentSlide = e.currentSlide - e.options.slidesToScroll), e.slideCount <= e.options.slidesToShow && (e.currentSlide = 0), e.registerBreakpoints(), e.setProps(), e.setupInfinite(), e.buildArrows(), e.updateArrows(), e.initArrowEvents(), e.buildDots(), e.updateDots(), e.initDotEvents(), e.cleanUpSlideEvents(), e.initSlideEvents(), e.checkResponsive(!1, !0), !0 === e.options.focusOnSelect && i(e.$slideTrack).children().on("click.slick", e.selectHandler), e.setSlideClasses("number" == typeof e.currentSlide ? e.currentSlide : 0), e.setPosition(), e.focusHandler(), e.paused = !e.options.autoplay, e.autoPlay(), e.$slider.trigger("reInit", [e])
    }, e.prototype.resize = function() {
        var e = this;
        i(window).width() !== e.windowWidth && (clearTimeout(e.windowDelay), e.windowDelay = window.setTimeout(function() {
            e.windowWidth = i(window).width(), e.checkResponsive(), e.unslicked || e.setPosition()
        }, 50))
    }, e.prototype.removeSlide = e.prototype.slickRemove = function(i, e, t) {
        var o = this;
        if (i = "boolean" == typeof i ? !0 === (e = i) ? 0 : o.slideCount - 1 : !0 === e ? --i : i, o.slideCount < 1 || i < 0 || i > o.slideCount - 1) return !1;
        o.unload(), !0 === t ? o.$slideTrack.children().remove() : o.$slideTrack.children(this.options.slide).eq(i).remove(), o.$slides = o.$slideTrack.children(this.options.slide), o.$slideTrack.children(this.options.slide).detach(), o.$slideTrack.append(o.$slides), o.$slidesCache = o.$slides, o.reinit()
    }, e.prototype.setCSS = function(i) {
        var e, t, o = this,
            s = {};
        !0 === o.options.rtl && (i = -i), e = "left" == o.positionProp ? Math.ceil(i) + "px" : "0px", t = "top" == o.positionProp ? Math.ceil(i) + "px" : "0px", s[o.positionProp] = i, !1 === o.transformsEnabled ? o.$slideTrack.css(s) : (s = {}, !1 === o.cssTransitions ? (s[o.animType] = "translate(" + e + ", " + t + ")", o.$slideTrack.css(s)) : (s[o.animType] = "translate3d(" + e + ", " + t + ", 0px)", o.$slideTrack.css(s)))
    }, e.prototype.setDimensions = function() {
        var i = this;
        !1 === i.options.vertical ? !0 === i.options.centerMode && i.$list.css({
            padding: "0px " + i.options.centerPadding
        }) : (i.$list.height(i.$slides.first().outerHeight(!0) * i.options.slidesToShow), !0 === i.options.centerMode && i.$list.css({
            padding: i.options.centerPadding + " 0px"
        })), i.listWidth = i.$list.width(), i.listHeight = i.$list.height(), !1 === i.options.vertical && !1 === i.options.variableWidth ? (i.slideWidth = Math.ceil(i.listWidth / i.options.slidesToShow), i.$slideTrack.width(Math.ceil(i.slideWidth * i.$slideTrack.children(".slick-slide").length))) : !0 === i.options.variableWidth ? i.$slideTrack.width(5e3 * i.slideCount) : (i.slideWidth = Math.ceil(i.listWidth), i.$slideTrack.height(Math.ceil(i.$slides.first().outerHeight(!0) * i.$slideTrack.children(".slick-slide").length)));
        var e = i.$slides.first().outerWidth(!0) - i.$slides.first().width();
        !1 === i.options.variableWidth && i.$slideTrack.children(".slick-slide").width(i.slideWidth - e)
    }, e.prototype.setFade = function() {
        var e, t = this;
        t.$slides.each(function(o, s) {
            e = t.slideWidth * o * -1, !0 === t.options.rtl ? i(s).css({
                position: "relative",
                right: e,
                top: 0,
                zIndex: t.options.zIndex - 2,
                opacity: 0
            }) : i(s).css({
                position: "relative",
                left: e,
                top: 0,
                zIndex: t.options.zIndex - 2,
                opacity: 0
            })
        }), t.$slides.eq(t.currentSlide).css({
            zIndex: t.options.zIndex - 1,
            opacity: 1
        })
    }, e.prototype.setHeight = function() {
        var i = this;
        if (1 === i.options.slidesToShow && !0 === i.options.adaptiveHeight && !1 === i.options.vertical) {
            var e = i.$slides.eq(i.currentSlide).outerHeight(!0);
            i.$list.css("height", e)
        }
    }, e.prototype.setOption = e.prototype.slickSetOption = function() {
        var e, t, o, s, n, r = this,
            l = !1;
        if ("object" === i.type(arguments[0]) ? (o = arguments[0], l = arguments[1], n = "multiple") : "string" === i.type(arguments[0]) && (o = arguments[0], s = arguments[1], l = arguments[2], "responsive" === arguments[0] && "array" === i.type(arguments[1]) ? n = "responsive" : void 0 !== arguments[1] && (n = "single")), "single" === n) r.options[o] = s;
        else if ("multiple" === n) i.each(o, function(i, e) {
            r.options[i] = e
        });
        else if ("responsive" === n)
            for (t in s)
                if ("array" !== i.type(r.options.responsive)) r.options.responsive = [s[t]];
                else {
                    for (e = r.options.responsive.length - 1; e >= 0;) r.options.responsive[e].breakpoint === s[t].breakpoint && r.options.responsive.splice(e, 1), e--;
                    r.options.responsive.push(s[t])
                }
        l && (r.unload(), r.reinit())
    }, e.prototype.setPosition = function() {
        var i = this;
        i.setDimensions(), i.setHeight(), !1 === i.options.fade ? i.setCSS(i.getLeft(i.currentSlide)) : i.setFade(), i.$slider.trigger("setPosition", [i])
    }, e.prototype.setProps = function() {
        var i = this,
            e = document.body.style;
        i.positionProp = !0 === i.options.vertical ? "top" : "left", "top" === i.positionProp ? i.$slider.addClass("slick-vertical") : i.$slider.removeClass("slick-vertical"), void 0 === e.WebkitTransition && void 0 === e.MozTransition && void 0 === e.msTransition || !0 === i.options.useCSS && (i.cssTransitions = !0), i.options.fade && ("number" == typeof i.options.zIndex ? i.options.zIndex < 3 && (i.options.zIndex = 3) : i.options.zIndex = i.defaults.zIndex), void 0 !== e.OTransform && (i.animType = "OTransform", i.transformType = "-o-transform", i.transitionType = "OTransition", void 0 === e.perspectiveProperty && void 0 === e.webkitPerspective && (i.animType = !1)), void 0 !== e.MozTransform && (i.animType = "MozTransform", i.transformType = "-moz-transform", i.transitionType = "MozTransition", void 0 === e.perspectiveProperty && void 0 === e.MozPerspective && (i.animType = !1)), void 0 !== e.webkitTransform && (i.animType = "webkitTransform", i.transformType = "-webkit-transform", i.transitionType = "webkitTransition", void 0 === e.perspectiveProperty && void 0 === e.webkitPerspective && (i.animType = !1)), void 0 !== e.msTransform && (i.animType = "msTransform", i.transformType = "-ms-transform", i.transitionType = "msTransition", void 0 === e.msTransform && (i.animType = !1)), void 0 !== e.transform && !1 !== i.animType && (i.animType = "transform", i.transformType = "transform", i.transitionType = "transition"), i.transformsEnabled = i.options.useTransform && null !== i.animType && !1 !== i.animType
    }, e.prototype.setSlideClasses = function(i) {
        var e, t, o, s, n = this;
        if (t = n.$slider.find(".slick-slide").removeClass("slick-active slick-center slick-current").attr("aria-hidden", "true"), n.$slides.eq(i).addClass("slick-current"), !0 === n.options.centerMode) {
            var r = n.options.slidesToShow % 2 == 0 ? 1 : 0;
            e = Math.floor(n.options.slidesToShow / 2), !0 === n.options.infinite && (i >= e && i <= n.slideCount - 1 - e ? n.$slides.slice(i - e + r, i + e + 1).addClass("slick-active").attr("aria-hidden", "false") : (o = n.options.slidesToShow + i, t.slice(o - e + 1 + r, o + e + 2).addClass("slick-active").attr("aria-hidden", "false")), 0 === i ? t.eq(t.length - 1 - n.options.slidesToShow).addClass("slick-center") : i === n.slideCount - 1 && t.eq(n.options.slidesToShow).addClass("slick-center")), n.$slides.eq(i).addClass("slick-center")
        } else i >= 0 && i <= n.slideCount - n.options.slidesToShow ? n.$slides.slice(i, i + n.options.slidesToShow).addClass("slick-active").attr("aria-hidden", "false") : t.length <= n.options.slidesToShow ? t.addClass("slick-active").attr("aria-hidden", "false") : (s = n.slideCount % n.options.slidesToShow, o = !0 === n.options.infinite ? n.options.slidesToShow + i : i, n.options.slidesToShow == n.options.slidesToScroll && n.slideCount - i < n.options.slidesToShow ? t.slice(o - (n.options.slidesToShow - s), o + s).addClass("slick-active").attr("aria-hidden", "false") : t.slice(o, o + n.options.slidesToShow).addClass("slick-active").attr("aria-hidden", "false"));
        "ondemand" !== n.options.lazyLoad && "anticipated" !== n.options.lazyLoad || n.lazyLoad()
    }, e.prototype.setupInfinite = function() {
        var e, t, o, s = this;
        if (!0 === s.options.fade && (s.options.centerMode = !1), !0 === s.options.infinite && !1 === s.options.fade && (t = null, s.slideCount > s.options.slidesToShow)) {
            for (o = !0 === s.options.centerMode ? s.options.slidesToShow + 1 : s.options.slidesToShow, e = s.slideCount; e > s.slideCount - o; e -= 1) t = e - 1, i(s.$slides[t]).clone(!0).attr("id", "").attr("data-slick-index", t - s.slideCount).prependTo(s.$slideTrack).addClass("slick-cloned");
            for (e = 0; e < o + s.slideCount; e += 1) t = e, i(s.$slides[t]).clone(!0).attr("id", "").attr("data-slick-index", t + s.slideCount).appendTo(s.$slideTrack).addClass("slick-cloned");
            s.$slideTrack.find(".slick-cloned").find("[id]").each(function() {
                i(this).attr("id", "")
            })
        }
    }, e.prototype.interrupt = function(i) {
        var e = this;
        i || e.autoPlay(), e.interrupted = i
    }, e.prototype.selectHandler = function(e) {
        var t = this,
            o = i(e.target).is(".slick-slide") ? i(e.target) : i(e.target).parents(".slick-slide"),
            s = parseInt(o.attr("data-slick-index"));
        s || (s = 0), t.slideCount <= t.options.slidesToShow ? t.slideHandler(s, !1, !0) : t.slideHandler(s)
    }, e.prototype.slideHandler = function(i, e, t) {
        var o, s, n, r, l, d = null,
            a = this;
        if (e = e || !1, !(!0 === a.animating && !0 === a.options.waitForAnimate || !0 === a.options.fade && a.currentSlide === i))
            if (!1 === e && a.asNavFor(i), o = i, d = a.getLeft(o), r = a.getLeft(a.currentSlide), a.currentLeft = null === a.swipeLeft ? r : a.swipeLeft, !1 === a.options.infinite && !1 === a.options.centerMode && (i < 0 || i > a.getDotCount() * a.options.slidesToScroll)) !1 === a.options.fade && (o = a.currentSlide, !0 !== t ? a.animateSlide(r, function() {
                a.postSlide(o)
            }) : a.postSlide(o));
            else if (!1 === a.options.infinite && !0 === a.options.centerMode && (i < 0 || i > a.slideCount - a.options.slidesToScroll)) !1 === a.options.fade && (o = a.currentSlide, !0 !== t ? a.animateSlide(r, function() {
            a.postSlide(o)
        }) : a.postSlide(o));
        else {
            if (a.options.autoplay && clearInterval(a.autoPlayTimer), s = o < 0 ? a.slideCount % a.options.slidesToScroll != 0 ? a.slideCount - a.slideCount % a.options.slidesToScroll : a.slideCount + o : o >= a.slideCount ? a.slideCount % a.options.slidesToScroll != 0 ? 0 : o - a.slideCount : o, a.animating = !0, a.$slider.trigger("beforeChange", [a, a.currentSlide, s]), n = a.currentSlide, a.currentSlide = s, a.setSlideClasses(a.currentSlide), a.options.asNavFor && (l = (l = a.getNavTarget()).slick("getSlick")).slideCount <= l.options.slidesToShow && l.setSlideClasses(a.currentSlide), a.updateDots(), a.updateArrows(), !0 === a.options.fade) return !0 !== t ? (a.fadeSlideOut(n), a.fadeSlide(s, function() {
                a.postSlide(s)
            })) : a.postSlide(s), void a.animateHeight();
            !0 !== t ? a.animateSlide(d, function() {
                a.postSlide(s)
            }) : a.postSlide(s)
        }
    }, e.prototype.startLoad = function() {
        var i = this;
        !0 === i.options.arrows && i.slideCount > i.options.slidesToShow && (i.$prevArrow.hide(), i.$nextArrow.hide()), !0 === i.options.dots && i.slideCount > i.options.slidesToShow && i.$dots.hide(), i.$slider.addClass("slick-loading")
    }, e.prototype.swipeDirection = function() {
        var i, e, t, o, s = this;
        return i = s.touchObject.startX - s.touchObject.curX, e = s.touchObject.startY - s.touchObject.curY, t = Math.atan2(e, i), (o = Math.round(180 * t / Math.PI)) < 0 && (o = 360 - Math.abs(o)), o <= 45 && o >= 0 ? !1 === s.options.rtl ? "left" : "right" : o <= 360 && o >= 315 ? !1 === s.options.rtl ? "left" : "right" : o >= 135 && o <= 225 ? !1 === s.options.rtl ? "right" : "left" : !0 === s.options.verticalSwiping ? o >= 35 && o <= 135 ? "down" : "up" : "vertical"
    }, e.prototype.swipeEnd = function(i) {
        var e, t, o = this;
        if (o.dragging = !1, o.swiping = !1, o.scrolling) return o.scrolling = !1, !1;
        if (o.interrupted = !1, o.shouldClick = !(o.touchObject.swipeLength > 10), void 0 === o.touchObject.curX) return !1;
        if (!0 === o.touchObject.edgeHit && o.$slider.trigger("edge", [o, o.swipeDirection()]), o.touchObject.swipeLength >= o.touchObject.minSwipe) {
            switch (t = o.swipeDirection()) {
                case "left":
                case "down":
                    e = o.options.swipeToSlide ? o.checkNavigable(o.currentSlide + o.getSlideCount()) : o.currentSlide + o.getSlideCount(), o.currentDirection = 0;
                    break;
                case "right":
                case "up":
                    e = o.options.swipeToSlide ? o.checkNavigable(o.currentSlide - o.getSlideCount()) : o.currentSlide - o.getSlideCount(), o.currentDirection = 1
            }
            "vertical" != t && (o.slideHandler(e), o.touchObject = {}, o.$slider.trigger("swipe", [o, t]))
        } else o.touchObject.startX !== o.touchObject.curX && (o.slideHandler(o.currentSlide), o.touchObject = {})
    }, e.prototype.swipeHandler = function(i) {
        var e = this;
        if (!(!1 === e.options.swipe || "ontouchend" in document && !1 === e.options.swipe || !1 === e.options.draggable && -1 !== i.type.indexOf("mouse"))) switch (e.touchObject.fingerCount = i.originalEvent && void 0 !== i.originalEvent.touches ? i.originalEvent.touches.length : 1, e.touchObject.minSwipe = e.listWidth / e.options.touchThreshold, !0 === e.options.verticalSwiping && (e.touchObject.minSwipe = e.listHeight / e.options.touchThreshold), i.data.action) {
            case "start":
                e.swipeStart(i);
                break;
            case "move":
                e.swipeMove(i);
                break;
            case "end":
                e.swipeEnd(i)
        }
    }, e.prototype.swipeMove = function(i) {
        var e, t, o, s, n, r, l = this;
        return n = void 0 !== i.originalEvent ? i.originalEvent.touches : null, !(!l.dragging || l.scrolling || n && 1 !== n.length) && (e = l.getLeft(l.currentSlide), l.touchObject.curX = void 0 !== n ? n[0].pageX : i.clientX, l.touchObject.curY = void 0 !== n ? n[0].pageY : i.clientY, l.touchObject.swipeLength = Math.round(Math.sqrt(Math.pow(l.touchObject.curX - l.touchObject.startX, 2))), r = Math.round(Math.sqrt(Math.pow(l.touchObject.curY - l.touchObject.startY, 2))), !l.options.verticalSwiping && !l.swiping && r > 4 ? (l.scrolling = !0, !1) : (!0 === l.options.verticalSwiping && (l.touchObject.swipeLength = r), t = l.swipeDirection(), void 0 !== i.originalEvent && l.touchObject.swipeLength > 4 && (l.swiping = !0, i.preventDefault()), s = (!1 === l.options.rtl ? 1 : -1) * (l.touchObject.curX > l.touchObject.startX ? 1 : -1), !0 === l.options.verticalSwiping && (s = l.touchObject.curY > l.touchObject.startY ? 1 : -1), o = l.touchObject.swipeLength, l.touchObject.edgeHit = !1, !1 === l.options.infinite && (0 === l.currentSlide && "right" === t || l.currentSlide >= l.getDotCount() && "left" === t) && (o = l.touchObject.swipeLength * l.options.edgeFriction, l.touchObject.edgeHit = !0), !1 === l.options.vertical ? l.swipeLeft = e + o * s : l.swipeLeft = e + o * (l.$list.height() / l.listWidth) * s, !0 === l.options.verticalSwiping && (l.swipeLeft = e + o * s), !0 !== l.options.fade && !1 !== l.options.touchMove && (!0 === l.animating ? (l.swipeLeft = null, !1) : void l.setCSS(l.swipeLeft))))
    }, e.prototype.swipeStart = function(i) {
        var e, t = this;
        if (t.interrupted = !0, 1 !== t.touchObject.fingerCount || t.slideCount <= t.options.slidesToShow) return t.touchObject = {}, !1;
        void 0 !== i.originalEvent && void 0 !== i.originalEvent.touches && (e = i.originalEvent.touches[0]), t.touchObject.startX = t.touchObject.curX = void 0 !== e ? e.pageX : i.clientX, t.touchObject.startY = t.touchObject.curY = void 0 !== e ? e.pageY : i.clientY, t.dragging = !0
    }, e.prototype.unfilterSlides = e.prototype.slickUnfilter = function() {
        var i = this;
        null !== i.$slidesCache && (i.unload(), i.$slideTrack.children(this.options.slide).detach(), i.$slidesCache.appendTo(i.$slideTrack), i.reinit())
    }, e.prototype.unload = function() {
        var e = this;
        i(".slick-cloned", e.$slider).remove(), e.$dots && e.$dots.remove(), e.$prevArrow && e.htmlExpr.test(e.options.prevArrow) && e.$prevArrow.remove(), e.$nextArrow && e.htmlExpr.test(e.options.nextArrow) && e.$nextArrow.remove(), e.$slides.removeClass("slick-slide slick-active slick-visible slick-current").attr("aria-hidden", "true").css("width", "")
    }, e.prototype.unslick = function(i) {
        var e = this;
        e.$slider.trigger("unslick", [e, i]), e.destroy()
    }, e.prototype.updateArrows = function() {
        var i = this;
        Math.floor(i.options.slidesToShow / 2), !0 === i.options.arrows && i.slideCount > i.options.slidesToShow && !i.options.infinite && (i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false"), i.$nextArrow.removeClass("slick-disabled").attr("aria-disabled", "false"), 0 === i.currentSlide ? (i.$prevArrow.addClass("slick-disabled").attr("aria-disabled", "true"), i.$nextArrow.removeClass("slick-disabled").attr("aria-disabled", "false")) : i.currentSlide >= i.slideCount - i.options.slidesToShow && !1 === i.options.centerMode ? (i.$nextArrow.addClass("slick-disabled").attr("aria-disabled", "true"), i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false")) : i.currentSlide >= i.slideCount - 1 && !0 === i.options.centerMode && (i.$nextArrow.addClass("slick-disabled").attr("aria-disabled", "true"), i.$prevArrow.removeClass("slick-disabled").attr("aria-disabled", "false")))
    }, e.prototype.updateDots = function() {
        var i = this;
        null !== i.$dots && (i.$dots.find("li").removeClass("slick-active").end(), i.$dots.find("li").eq(Math.floor(i.currentSlide / i.options.slidesToScroll)).addClass("slick-active"))
    }, e.prototype.visibility = function() {
        var i = this;
        i.options.autoplay && (document[i.hidden] ? i.interrupted = !0 : i.interrupted = !1)
    }, i.fn.slick = function() {
        var i, t, o = this,
            s = arguments[0],
            n = Array.prototype.slice.call(arguments, 1),
            r = o.length;
        for (i = 0; i < r; i++)
            if ("object" == typeof s || void 0 === s ? o[i].slick = new e(o[i], s) : t = o[i].slick[s].apply(o[i].slick, n), void 0 !== t) return t;
        return o
    }
});
/*! Magnific Popup - v1.2.0 - 2024-06-08
 * http://dimsemenov.com/plugins/magnific-popup/
 * Copyright (c) 2024 Dmytro Semenov; */
! function(e) {
    "function" == typeof define && define.amd ? define(["jquery"], e) : "object" == typeof exports ? e(require("jquery")) : e(window.jQuery || window.Zepto)
}(function(c) {
    function e() {}

    function d(e, t) {
        m.ev.on(x + e + I, t)
    }

    function p(e, t, n, o) {
        var i = document.createElement("div");
        return i.className = "mfp-" + e, n && (i.innerHTML = n), o ? t && t.appendChild(i) : (i = c(i), t && i.appendTo(t)), i
    }

    function u(e, t) {
        m.ev.triggerHandler(x + e, t), m.st.callbacks && (e = e.charAt(0).toLowerCase() + e.slice(1), m.st.callbacks[e]) && m.st.callbacks[e].apply(m, Array.isArray(t) ? t : [t])
    }

    function f(e) {
        return e === A && m.currTemplate.closeBtn || (m.currTemplate.closeBtn = c(m.st.closeMarkup.replace("%title%", m.st.tClose)), A = e), m.currTemplate.closeBtn
    }

    function r() {
        c.magnificPopup.instance || ((m = new e).init(), c.magnificPopup.instance = m)
    }

    function a() {
        y && (v.after(y.addClass(l)).detach(), y = null)
    }

    function i() {
        n && c(document.body).removeClass(n)
    }

    function t() {
        i(), m.req && m.req.abort()
    }
    var m, o, g, s, h, A, l, v, y, n, w = "Close",
        F = "BeforeClose",
        C = "MarkupParse",
        b = "Open",
        j = "Change",
        x = "mfp",
        I = "." + x,
        T = "mfp-ready",
        N = "mfp-removing",
        k = "mfp-prevent-close",
        P = !!window.jQuery,
        _ = c(window),
        S = (c.magnificPopup = {
            instance: null,
            proto: e.prototype = {
                constructor: e,
                init: function() {
                    var e = navigator.appVersion;
                    m.isLowIE = m.isIE8 = document.all && !document.addEventListener, m.isAndroid = /android/gi.test(e), m.isIOS = /iphone|ipad|ipod/gi.test(e), m.supportsTransition = function() {
                        var e = document.createElement("p").style,
                            t = ["ms", "O", "Moz", "Webkit"];
                        if (void 0 !== e.transition) return !0;
                        for (; t.length;)
                            if (t.pop() + "Transition" in e) return !0;
                        return !1
                    }(), m.probablyMobile = m.isAndroid || m.isIOS || /(Opera Mini)|Kindle|webOS|BlackBerry|(Opera Mobi)|(Windows Phone)|IEMobile/i.test(navigator.userAgent), g = c(document), m.popupsCache = {}
                },
                open: function(e) {
                    if (!1 === e.isObj) {
                        m.items = e.items.toArray(), m.index = 0;
                        for (var t, n = e.items, o = 0; o < n.length; o++)
                            if ((t = (t = n[o]).parsed ? t.el[0] : t) === e.el[0]) {
                                m.index = o;
                                break
                            }
                    } else m.items = Array.isArray(e.items) ? e.items : [e.items], m.index = e.index || 0;
                    if (!m.isOpen) {
                        m.types = [], h = "", e.mainEl && e.mainEl.length ? m.ev = e.mainEl.eq(0) : m.ev = g, e.key ? (m.popupsCache[e.key] || (m.popupsCache[e.key] = {}), m.currTemplate = m.popupsCache[e.key]) : m.currTemplate = {}, m.st = c.extend(!0, {}, c.magnificPopup.defaults, e), m.fixedContentPos = "auto" === m.st.fixedContentPos ? !m.probablyMobile : m.st.fixedContentPos, m.st.modal && (m.st.closeOnContentClick = !1, m.st.closeOnBgClick = !1, m.st.showCloseBtn = !1, m.st.enableEscapeKey = !1), m.bgOverlay || (m.bgOverlay = p("bg").on("click" + I, function() {
                            m.close()
                        }), m.wrap = p("wrap").attr("tabindex", -1).on("click" + I, function(e) {
                            m._checkIfClose(e.target) && m.close()
                        }), m.container = p("container", m.wrap)), m.contentContainer = p("content"), m.st.preloader && (m.preloader = p("preloader", m.container, m.st.tLoading));
                        var i = c.magnificPopup.modules;
                        for (o = 0; o < i.length; o++) {
                            var r = (r = i[o]).charAt(0).toUpperCase() + r.slice(1);
                            m["init" + r].call(m)
                        }
                        u("BeforeOpen"), m.st.showCloseBtn && (m.st.closeBtnInside ? (d(C, function(e, t, n, o) {
                            n.close_replaceWith = f(o.type)
                        }), h += " mfp-close-btn-in") : m.wrap.append(f())), m.st.alignTop && (h += " mfp-align-top"), m.fixedContentPos ? m.wrap.css({
                            overflow: m.st.overflowY,
                            overflowX: "hidden",
                            overflowY: m.st.overflowY
                        }) : m.wrap.css({
                            top: _.scrollTop(),
                            position: "absolute"
                        }), !1 !== m.st.fixedBgPos && ("auto" !== m.st.fixedBgPos || m.fixedContentPos) || m.bgOverlay.css({
                            height: g.height(),
                            position: "absolute"
                        }), m.st.enableEscapeKey && g.on("keyup" + I, function(e) {
                            27 === e.keyCode && m.close()
                        }), _.on("resize" + I, function() {
                            m.updateSize()
                        }), m.st.closeOnContentClick || (h += " mfp-auto-cursor"), h && m.wrap.addClass(h);
                        var a = m.wH = _.height(),
                            s = {},
                            l = (m.fixedContentPos && m._hasScrollBar(a) && (l = m._getScrollbarSize()) && (s.marginRight = l), m.fixedContentPos && (m.isIE7 ? c("body, html").css("overflow", "hidden") : s.overflow = "hidden"), m.st.mainClass);
                        return m.isIE7 && (l += " mfp-ie7"), l && m._addClassToMFP(l), m.updateItemHTML(), u("BuildControls"), c("html").css(s), m.bgOverlay.add(m.wrap).prependTo(m.st.prependTo || c(document.body)), m._lastFocusedEl = document.activeElement, setTimeout(function() {
                            m.content ? (m._addClassToMFP(T), m._setFocus()) : m.bgOverlay.addClass(T), g.on("focusin" + I, m._onFocusIn)
                        }, 16), m.isOpen = !0, m.updateSize(a), u(b), e
                    }
                    m.updateItemHTML()
                },
                close: function() {
                    m.isOpen && (u(F), m.isOpen = !1, m.st.removalDelay && !m.isLowIE && m.supportsTransition ? (m._addClassToMFP(N), setTimeout(function() {
                        m._close()
                    }, m.st.removalDelay)) : m._close())
                },
                _close: function() {
                    u(w);
                    var e = N + " " + T + " ";
                    m.bgOverlay.detach(), m.wrap.detach(), m.container.empty(), m.st.mainClass && (e += m.st.mainClass + " "), m._removeClassFromMFP(e), m.fixedContentPos && (e = {
                        marginRight: ""
                    }, m.isIE7 ? c("body, html").css("overflow", "") : e.overflow = "", c("html").css(e)), g.off("keyup.mfp focusin" + I), m.ev.off(I), m.wrap.attr("class", "mfp-wrap").removeAttr("style"), m.bgOverlay.attr("class", "mfp-bg"), m.container.attr("class", "mfp-container"), !m.st.showCloseBtn || m.st.closeBtnInside && !0 !== m.currTemplate[m.currItem.type] || m.currTemplate.closeBtn && m.currTemplate.closeBtn.detach(), m.st.autoFocusLast && m._lastFocusedEl && c(m._lastFocusedEl).trigger("focus"), m.currItem = null, m.content = null, m.currTemplate = null, m.prevHeight = 0, u("AfterClose")
                },
                updateSize: function(e) {
                    var t;
                    m.isIOS ? (t = document.documentElement.clientWidth / window.innerWidth, t = window.innerHeight * t, m.wrap.css("height", t), m.wH = t) : m.wH = e || _.height(), m.fixedContentPos || m.wrap.css("height", m.wH), u("Resize")
                },
                updateItemHTML: function() {
                    var e = m.items[m.index],
                        t = (m.contentContainer.detach(), m.content && m.content.detach(), (e = e.parsed ? e : m.parseEl(m.index)).type),
                        n = (u("BeforeChange", [m.currItem ? m.currItem.type : "", t]), m.currItem = e, m.currTemplate[t] || (n = !!m.st[t] && m.st[t].markup, u("FirstMarkupParse", n), m.currTemplate[t] = !n || c(n)), s && s !== e.type && m.container.removeClass("mfp-" + s + "-holder"), m["get" + t.charAt(0).toUpperCase() + t.slice(1)](e, m.currTemplate[t]));
                    m.appendContent(n, t), e.preloaded = !0, u(j, e), s = e.type, m.container.prepend(m.contentContainer), u("AfterChange")
                },
                appendContent: function(e, t) {
                    (m.content = e) ? m.st.showCloseBtn && m.st.closeBtnInside && !0 === m.currTemplate[t] ? m.content.find(".mfp-close").length || m.content.append(f()) : m.content = e: m.content = "", u("BeforeAppend"), m.container.addClass("mfp-" + t + "-holder"), m.contentContainer.append(m.content)
                },
                parseEl: function(e) {
                    var t, n = m.items[e];
                    if ((n = n.tagName ? {
                            el: c(n)
                        } : (t = n.type, {
                            data: n,
                            src: n.src
                        })).el) {
                        for (var o = m.types, i = 0; i < o.length; i++)
                            if (n.el.hasClass("mfp-" + o[i])) {
                                t = o[i];
                                break
                            }
                        n.src = n.el.attr("data-mfp-src"), n.src || (n.src = n.el.attr("href"))
                    }
                    return n.type = t || m.st.type || "inline", n.index = e, n.parsed = !0, m.items[e] = n, u("ElementParse", n), m.items[e]
                },
                addGroup: function(t, n) {
                    function e(e) {
                        e.mfpEl = this, m._openClick(e, t, n)
                    }
                    var o = "click.magnificPopup";
                    (n = n || {}).mainEl = t, n.items ? (n.isObj = !0, t.off(o).on(o, e)) : (n.isObj = !1, n.delegate ? t.off(o).on(o, n.delegate, e) : (n.items = t).off(o).on(o, e))
                },
                _openClick: function(e, t, n) {
                    var o = (void 0 !== n.midClick ? n : c.magnificPopup.defaults).midClick;
                    if (o || !(2 === e.which || e.ctrlKey || e.metaKey || e.altKey || e.shiftKey)) {
                        o = (void 0 !== n.disableOn ? n : c.magnificPopup.defaults).disableOn;
                        if (o)
                            if ("function" == typeof o) {
                                if (!o.call(m)) return !0
                            } else if (_.width() < o) return !0;
                        e.type && (e.preventDefault(), m.isOpen) && e.stopPropagation(), n.el = c(e.mfpEl), n.delegate && (n.items = t.find(n.delegate)), m.open(n)
                    }
                },
                updateStatus: function(e, t) {
                    var n;
                    m.preloader && (o !== e && m.container.removeClass("mfp-s-" + o), n = {
                        status: e,
                        text: t = t || "loading" !== e ? t : m.st.tLoading
                    }, u("UpdateStatus", n), e = n.status, t = n.text, m.st.allowHTMLInStatusIndicator ? m.preloader.html(t) : m.preloader.text(t), m.preloader.find("a").on("click", function(e) {
                        e.stopImmediatePropagation()
                    }), m.container.addClass("mfp-s-" + e), o = e)
                },
                _checkIfClose: function(e) {
                    if (!c(e).closest("." + k).length) {
                        var t = m.st.closeOnContentClick,
                            n = m.st.closeOnBgClick;
                        if (t && n) return !0;
                        if (!m.content || c(e).closest(".mfp-close").length || m.preloader && e === m.preloader[0]) return !0;
                        if (e === m.content[0] || c.contains(m.content[0], e)) {
                            if (t) return !0
                        } else if (n && c.contains(document, e)) return !0;
                        return !1
                    }
                },
                _addClassToMFP: function(e) {
                    m.bgOverlay.addClass(e), m.wrap.addClass(e)
                },
                _removeClassFromMFP: function(e) {
                    this.bgOverlay.removeClass(e), m.wrap.removeClass(e)
                },
                _hasScrollBar: function(e) {
                    return (m.isIE7 ? g.height() : document.body.scrollHeight) > (e || _.height())
                },
                _setFocus: function() {
                    (m.st.focus ? m.content.find(m.st.focus).eq(0) : m.wrap).trigger("focus")
                },
                _onFocusIn: function(e) {
                    if (e.target !== m.wrap[0] && !c.contains(m.wrap[0], e.target)) return m._setFocus(), !1
                },
                _parseMarkup: function(i, e, t) {
                    var r;
                    t.data && (e = c.extend(t.data, e)), u(C, [i, e, t]), c.each(e, function(e, t) {
                        if (void 0 === t || !1 === t) return !0;
                        var n, o;
                        1 < (r = e.split("_")).length ? 0 < (n = i.find(I + "-" + r[0])).length && ("replaceWith" === (o = r[1]) ? n[0] !== t[0] && n.replaceWith(t) : "img" === o ? n.is("img") ? n.attr("src", t) : n.replaceWith(c("<img>").attr("src", t).attr("class", n.attr("class"))) : n.attr(r[1], t)) : m.st.allowHTMLInTemplate ? i.find(I + "-" + e).html(t) : i.find(I + "-" + e).text(t)
                    })
                },
                _getScrollbarSize: function() {
                    var e;
                    return void 0 === m.scrollbarSize && ((e = document.createElement("div")).style.cssText = "width: 99px; height: 99px; overflow: scroll; position: absolute; top: -9999px;", document.body.appendChild(e), m.scrollbarSize = e.offsetWidth - e.clientWidth, document.body.removeChild(e)), m.scrollbarSize
                }
            },
            modules: [],
            open: function(e, t) {
                return r(), (e = e ? c.extend(!0, {}, e) : {}).isObj = !0, e.index = t || 0, this.instance.open(e)
            },
            close: function() {
                return c.magnificPopup.instance && c.magnificPopup.instance.close()
            },
            registerModule: function(e, t) {
                t.options && (c.magnificPopup.defaults[e] = t.options), c.extend(this.proto, t.proto), this.modules.push(e)
            },
            defaults: {
                disableOn: 0,
                key: null,
                midClick: !1,
                mainClass: "",
                preloader: !0,
                focus: "",
                closeOnContentClick: !1,
                closeOnBgClick: !0,
                closeBtnInside: !0,
                showCloseBtn: !0,
                enableEscapeKey: !0,
                modal: !1,
                alignTop: !1,
                removalDelay: 0,
                prependTo: null,
                fixedContentPos: "auto",
                fixedBgPos: "auto",
                overflowY: "auto",
                closeMarkup: '<button title="%title%" type="button" class="mfp-close">&#215;</button>',
                tClose: "Close (Esc)",
                tLoading: "Loading...",
                autoFocusLast: !0,
                allowHTMLInStatusIndicator: !1,
                allowHTMLInTemplate: !1
            }
        }, c.fn.magnificPopup = function(e) {
            r();
            var t, n, o, i = c(this);
            return "string" == typeof e ? "open" === e ? (t = P ? i.data("magnificPopup") : i[0].magnificPopup, n = parseInt(arguments[1], 10) || 0, o = t.items ? t.items[n] : (o = i, (o = t.delegate ? o.find(t.delegate) : o).eq(n)), m._openClick({
                mfpEl: o
            }, i, t)) : m.isOpen && m[e].apply(m, Array.prototype.slice.call(arguments, 1)) : (e = c.extend(!0, {}, e), P ? i.data("magnificPopup", e) : i[0].magnificPopup = e, m.addGroup(i, e)), i
        }, "inline"),
        E = (c.magnificPopup.registerModule(S, {
            options: {
                hiddenClass: "hide",
                markup: "",
                tNotFound: "Content not found"
            },
            proto: {
                initInline: function() {
                    m.types.push(S), d(w + "." + S, function() {
                        a()
                    })
                },
                getInline: function(e, t) {
                    var n, o, i;
                    return a(), e.src ? (n = m.st.inline, (o = c(e.src)).length ? ((i = o[0].parentNode) && i.tagName && (v || (l = n.hiddenClass, v = p(l), l = "mfp-" + l), y = o.after(v).detach().removeClass(l)), m.updateStatus("ready")) : (m.updateStatus("error", n.tNotFound), o = c("<div>")), e.inlineElement = o) : (m.updateStatus("ready"), m._parseMarkup(t, {}, e), t)
                }
            }
        }), "ajax");
    c.magnificPopup.registerModule(E, {
        options: {
            settings: null,
            cursor: "mfp-ajax-cur",
            tError: "The content could not be loaded."
        },
        proto: {
            initAjax: function() {
                m.types.push(E), n = m.st.ajax.cursor, d(w + "." + E, t), d("BeforeChange." + E, t)
            },
            getAjax: function(o) {
                n && c(document.body).addClass(n), m.updateStatus("loading");
                var e = c.extend({
                    url: o.src,
                    success: function(e, t, n) {
                        e = {
                            data: e,
                            xhr: n
                        };
                        u("ParseAjax", e), m.appendContent(c(e.data), E), o.finished = !0, i(), m._setFocus(), setTimeout(function() {
                            m.wrap.addClass(T)
                        }, 16), m.updateStatus("ready"), u("AjaxContentAdded")
                    },
                    error: function() {
                        i(), o.finished = o.loadError = !0, m.updateStatus("error", m.st.ajax.tError.replace("%url%", o.src))
                    }
                }, m.st.ajax.settings);
                return m.req = c.ajax(e), ""
            }
        }
    });
    var z;
    c.magnificPopup.registerModule("image", {
        options: {
            markup: '<div class="mfp-figure"><div class="mfp-close"></div><figure><div class="mfp-img"></div><figcaption><div class="mfp-bottom-bar"><div class="mfp-title"></div><div class="mfp-counter"></div></div></figcaption></figure></div>',
            cursor: "mfp-zoom-out-cur",
            titleSrc: "title",
            verticalFit: !0,
            tError: "The image could not be loaded."
        },
        proto: {
            initImage: function() {
                var e = m.st.image,
                    t = ".image";
                m.types.push("image"), d(b + t, function() {
                    "image" === m.currItem.type && e.cursor && c(document.body).addClass(e.cursor)
                }), d(w + t, function() {
                    e.cursor && c(document.body).removeClass(e.cursor), _.off("resize" + I)
                }), d("Resize" + t, m.resizeImage), m.isLowIE && d("AfterChange", m.resizeImage)
            },
            resizeImage: function() {
                var e, t = m.currItem;
                t && t.img && m.st.image.verticalFit && (e = 0, m.isLowIE && (e = parseInt(t.img.css("padding-top"), 10) + parseInt(t.img.css("padding-bottom"), 10)), t.img.css("max-height", m.wH - e))
            },
            _onImageHasSize: function(e) {
                e.img && (e.hasSize = !0, z && clearInterval(z), e.isCheckingImgSize = !1, u("ImageHasSize", e), e.imgHidden) && (m.content && m.content.removeClass("mfp-loading"), e.imgHidden = !1)
            },
            findImageSize: function(t) {
                function n(e) {
                    z && clearInterval(z), z = setInterval(function() {
                        0 < i.naturalWidth ? m._onImageHasSize(t) : (200 < o && clearInterval(z), 3 === ++o ? n(10) : 40 === o ? n(50) : 100 === o && n(500))
                    }, e)
                }
                var o = 0,
                    i = t.img[0];
                n(1)
            },
            getImage: function(e, t) {
                function n() {
                    e && (e.img.off(".mfploader"), e === m.currItem && (m._onImageHasSize(e), m.updateStatus("error", a.tError.replace("%url%", e.src))), e.hasSize = !0, e.loaded = !0, e.loadError = !0)
                }

                function o() {
                    e && (e.img[0].complete ? (e.img.off(".mfploader"), e === m.currItem && (m._onImageHasSize(e), m.updateStatus("ready")), e.hasSize = !0, e.loaded = !0, u("ImageLoadComplete")) : ++r < 200 ? setTimeout(o, 100) : n())
                }
                var i, r = 0,
                    a = m.st.image,
                    s = t.find(".mfp-img");
                return s.length && ((i = document.createElement("img")).className = "mfp-img", e.el && e.el.find("img").length && (i.alt = e.el.find("img").attr("alt")), e.img = c(i).on("load.mfploader", o).on("error.mfploader", n), i.src = e.src, s.is("img") && (e.img = e.img.clone()), 0 < (i = e.img[0]).naturalWidth ? e.hasSize = !0 : i.width || (e.hasSize = !1)), m._parseMarkup(t, {
                    title: function(e) {
                        if (e.data && void 0 !== e.data.title) return e.data.title;
                        var t = m.st.image.titleSrc;
                        if (t) {
                            if ("function" == typeof t) return t.call(m, e);
                            if (e.el) return e.el.attr(t) || ""
                        }
                        return ""
                    }(e),
                    img_replaceWith: e.img
                }, e), m.resizeImage(), e.hasSize ? (z && clearInterval(z), e.loadError ? (t.addClass("mfp-loading"), m.updateStatus("error", a.tError.replace("%url%", e.src))) : (t.removeClass("mfp-loading"), m.updateStatus("ready"))) : (m.updateStatus("loading"), e.loading = !0, e.hasSize || (e.imgHidden = !0, t.addClass("mfp-loading"), m.findImageSize(e))), t
            }
        }
    });

    function O(e) {
        var t;
        m.currTemplate[L] && (t = m.currTemplate[L].find("iframe")).length && (e || (t[0].src = "//about:blank"), m.isIE8) && t.css("display", e ? "block" : "none")
    }

    function M(e) {
        var t = m.items.length;
        return t - 1 < e ? e - t : e < 0 ? t + e : e
    }

    function D(e, t, n) {
        return e.replace(/%curr%/gi, t + 1).replace(/%total%/gi, n)
    }
    c.magnificPopup.registerModule("zoom", {
        options: {
            enabled: !1,
            easing: "ease-in-out",
            duration: 300,
            opener: function(e) {
                return e.is("img") ? e : e.find("img")
            }
        },
        proto: {
            initZoom: function() {
                var e, t, n, o, i, r, a = m.st.zoom,
                    s = ".zoom";
                a.enabled && m.supportsTransition && (t = a.duration, n = function(e) {
                    var e = e.clone().removeAttr("style").removeAttr("class").addClass("mfp-animated-image"),
                        t = "all " + a.duration / 1e3 + "s " + a.easing,
                        n = {
                            position: "fixed",
                            zIndex: 9999,
                            left: 0,
                            top: 0,
                            "-webkit-backface-visibility": "hidden"
                        },
                        o = "transition";
                    return n["-webkit-" + o] = n["-moz-" + o] = n["-o-" + o] = n[o] = t, e.css(n), e
                }, o = function() {
                    m.content.css("visibility", "visible")
                }, d("BuildControls" + s, function() {
                    m._allowZoom() && (clearTimeout(i), m.content.css("visibility", "hidden"), (e = m._getItemToZoom()) ? ((r = n(e)).css(m._getOffset()), m.wrap.append(r), i = setTimeout(function() {
                        r.css(m._getOffset(!0)), i = setTimeout(function() {
                            o(), setTimeout(function() {
                                r.remove(), e = r = null, u("ZoomAnimationEnded")
                            }, 16)
                        }, t)
                    }, 16)) : o())
                }), d(F + s, function() {
                    if (m._allowZoom()) {
                        if (clearTimeout(i), m.st.removalDelay = t, !e) {
                            if (!(e = m._getItemToZoom())) return;
                            r = n(e)
                        }
                        r.css(m._getOffset(!0)), m.wrap.append(r), m.content.css("visibility", "hidden"), setTimeout(function() {
                            r.css(m._getOffset())
                        }, 16)
                    }
                }), d(w + s, function() {
                    m._allowZoom() && (o(), r && r.remove(), e = null)
                }))
            },
            _allowZoom: function() {
                return "image" === m.currItem.type
            },
            _getItemToZoom: function() {
                return !!m.currItem.hasSize && m.currItem.img
            },
            _getOffset: function(e) {
                var e = e ? m.currItem.img : m.st.zoom.opener(m.currItem.el || m.currItem),
                    t = e.offset(),
                    n = parseInt(e.css("padding-top"), 10),
                    o = parseInt(e.css("padding-bottom"), 10),
                    e = (t.top -= c(window).scrollTop() - n, {
                        width: e.width(),
                        height: (P ? e.innerHeight() : e[0].offsetHeight) - o - n
                    });
                return (B = void 0 === B ? void 0 !== document.createElement("p").style.MozTransform : B) ? e["-moz-transform"] = e.transform = "translate(" + t.left + "px," + t.top + "px)" : (e.left = t.left, e.top = t.top), e
            }
        }
    });
    var B, L = "iframe",
        H = (c.magnificPopup.registerModule(L, {
            options: {
                markup: '<div class="mfp-iframe-scaler"><div class="mfp-close"></div><iframe class="mfp-iframe" src="//about:blank" frameborder="0" allowfullscreen></iframe></div>',
                srcAction: "iframe_src",
                patterns: {
                    youtube: {
                        index: "youtube.com",
                        id: "v=",
                        src: "//www.youtube.com/embed/%id%?autoplay=1"
                    },
                    vimeo: {
                        index: "vimeo.com/",
                        id: "/",
                        src: "//player.vimeo.com/video/%id%?autoplay=1"
                    },
                    gmaps: {
                        index: "//maps.google.",
                        src: "%id%&output=embed"
                    }
                }
            },
            proto: {
                initIframe: function() {
                    m.types.push(L), d("BeforeChange", function(e, t, n) {
                        t !== n && (t === L ? O() : n === L && O(!0))
                    }), d(w + "." + L, function() {
                        O()
                    })
                },
                getIframe: function(e, t) {
                    var n = e.src,
                        o = m.st.iframe,
                        i = (c.each(o.patterns, function() {
                            if (-1 < n.indexOf(this.index)) return this.id && (n = "string" == typeof this.id ? n.substr(n.lastIndexOf(this.id) + this.id.length, n.length) : this.id.call(this, n)), n = this.src.replace("%id%", n), !1
                        }), {});
                    return o.srcAction && (i[o.srcAction] = n), m._parseMarkup(t, i, e), m.updateStatus("ready"), t
                }
            }
        }), c.magnificPopup.registerModule("gallery", {
            options: {
                enabled: !1,
                arrowMarkup: '<button title="%title%" type="button" class="mfp-arrow mfp-arrow-%dir%"></button>',
                preload: [0, 2],
                navigateByImgClick: !0,
                arrows: !0,
                tPrev: "Previous (Left arrow key)",
                tNext: "Next (Right arrow key)",
                tCounter: "%curr% of %total%",
                langDir: null,
                loop: !0
            },
            proto: {
                initGallery: function() {
                    var r = m.st.gallery,
                        e = ".mfp-gallery";
                    if (m.direction = !0, !r || !r.enabled) return !1;
                    r.langDir || (r.langDir = document.dir || "ltr"), h += " mfp-gallery", d(b + e, function() {
                        r.navigateByImgClick && m.wrap.on("click" + e, ".mfp-img", function() {
                            if (1 < m.items.length) return m.next(), !1
                        }), g.on("keydown" + e, function(e) {
                            37 === e.keyCode ? "rtl" === r.langDir ? m.next() : m.prev() : 39 === e.keyCode && ("rtl" === r.langDir ? m.prev() : m.next())
                        }), m.updateGalleryButtons()
                    }), d("UpdateStatus" + e, function() {
                        m.updateGalleryButtons()
                    }), d("UpdateStatus" + e, function(e, t) {
                        t.text && (t.text = D(t.text, m.currItem.index, m.items.length))
                    }), d(C + e, function(e, t, n, o) {
                        var i = m.items.length;
                        n.counter = 1 < i ? D(r.tCounter, o.index, i) : ""
                    }), d("BuildControls" + e, function() {
                        var e, t, n, o, i;
                        1 < m.items.length && r.arrows && !m.arrowLeft && (t = "rtl" === r.langDir ? (o = r.tNext, e = r.tPrev, i = "next", "prev") : (o = r.tPrev, e = r.tNext, i = "prev", "next"), n = r.arrowMarkup, o = m.arrowLeft = c(n.replace(/%title%/gi, o).replace(/%action%/gi, i).replace(/%dir%/gi, "left")).addClass(k), i = m.arrowRight = c(n.replace(/%title%/gi, e).replace(/%action%/gi, t).replace(/%dir%/gi, "right")).addClass(k), "rtl" === r.langDir ? (m.arrowNext = o, m.arrowPrev = i) : (m.arrowNext = i, m.arrowPrev = o), o.on("click", function() {
                            "rtl" === r.langDir ? m.next() : m.prev()
                        }), i.on("click", function() {
                            "rtl" === r.langDir ? m.prev() : m.next()
                        }), m.container.append(o.add(i)))
                    }), d(j + e, function() {
                        m._preloadTimeout && clearTimeout(m._preloadTimeout), m._preloadTimeout = setTimeout(function() {
                            m.preloadNearbyImages(), m._preloadTimeout = null
                        }, 16)
                    }), d(w + e, function() {
                        g.off(e), m.wrap.off("click" + e), m.arrowRight = m.arrowLeft = null
                    })
                },
                next: function() {
                    var e = M(m.index + 1);
                    if (!m.st.gallery.loop && 0 === e) return !1;
                    m.direction = !0, m.index = e, m.updateItemHTML()
                },
                prev: function() {
                    var e = m.index - 1;
                    if (!m.st.gallery.loop && e < 0) return !1;
                    m.direction = !1, m.index = M(e), m.updateItemHTML()
                },
                goTo: function(e) {
                    m.direction = e >= m.index, m.index = e, m.updateItemHTML()
                },
                preloadNearbyImages: function() {
                    for (var e = m.st.gallery.preload, t = Math.min(e[0], m.items.length), n = Math.min(e[1], m.items.length), o = 1; o <= (m.direction ? n : t); o++) m._preloadItem(m.index + o);
                    for (o = 1; o <= (m.direction ? t : n); o++) m._preloadItem(m.index - o)
                },
                _preloadItem: function(e) {
                    var t;
                    e = M(e), m.items[e].preloaded || ((t = m.items[e]).parsed || (t = m.parseEl(e)), u("LazyLoad", t), "image" === t.type && (t.img = c('<img class="mfp-img" />').on("load.mfploader", function() {
                        t.hasSize = !0
                    }).on("error.mfploader", function() {
                        t.hasSize = !0, t.loadError = !0, u("LazyLoadError", t)
                    }).attr("src", t.src)), t.preloaded = !0)
                },
                updateGalleryButtons: function() {
                    m.st.gallery.loop || "object" != typeof m.arrowPrev || null === m.arrowPrev || (0 === m.index ? m.arrowPrev.hide() : m.arrowPrev.show(), m.index === m.items.length - 1 ? m.arrowNext.hide() : m.arrowNext.show())
                }
            }
        }), "retina");
    c.magnificPopup.registerModule(H, {
        options: {
            replaceSrc: function(e) {
                return e.src.replace(/\.\w+$/, function(e) {
                    return "@2x" + e
                })
            },
            ratio: 1
        },
        proto: {
            initRetina: function() {
                var n, o;
                1 < window.devicePixelRatio && (n = m.st.retina, o = n.ratio, 1 < (o = isNaN(o) ? o() : o)) && (d("ImageHasSize." + H, function(e, t) {
                    t.img.css({
                        "max-width": t.img[0].naturalWidth / o,
                        width: "100%"
                    })
                }), d("ElementParse." + H, function(e, t) {
                    t.src = n.replaceSrc(t, o)
                }))
            }
        }
    }), r()
}); /*! elementor-pro - v3.27.0 - 06-02-2025 */
(() => {
    "use strict";
    var e, r, a, n = {},
        c = {};

    function __webpack_require__(e) {
        var r = c[e];
        if (void 0 !== r) return r.exports;
        var a = c[e] = {
            exports: {}
        };
        return n[e].call(a.exports, a, a.exports, __webpack_require__), a.exports
    }
    __webpack_require__.m = n, e = [], __webpack_require__.O = (r, a, n, c) => {
        if (!a) {
            var i = 1 / 0;
            for (o = 0; o < e.length; o++) {
                for (var [a, n, c] = e[o], t = !0, _ = 0; _ < a.length; _++)(!1 & c || i >= c) && Object.keys(__webpack_require__.O).every((e => __webpack_require__.O[e](a[_]))) ? a.splice(_--, 1) : (t = !1, c < i && (i = c));
                if (t) {
                    e.splice(o--, 1);
                    var b = n();
                    void 0 !== b && (r = b)
                }
            }
            return r
        }
        c = c || 0;
        for (var o = e.length; o > 0 && e[o - 1][2] > c; o--) e[o] = e[o - 1];
        e[o] = [a, n, c]
    }, __webpack_require__.f = {}, __webpack_require__.e = e => Promise.all(Object.keys(__webpack_require__.f).reduce(((r, a) => (__webpack_require__.f[a](e, r), r)), [])), __webpack_require__.u = e => 635 === e ? "code-highlight.d86022c8668c4b072592.bundle.min.js" : 519 === e ? "video-playlist.af20fd9fd8778929829e.bundle.min.js" : 375 === e ? "paypal-button.f4f64e46173f50701949.bundle.min.js" : 234 === e ? "f6214a79e4b78ec016e6.bundle.min.js" : 857 === e ? "stripe-button.61d93594d6b7865f8b3f.bundle.min.js" : 581 === e ? "progress-tracker.8cccdda9737c272489fc.bundle.min.js" : 961 === e ? "animated-headline.588a0449647bd4f113f3.bundle.min.js" : 692 === e ? "media-carousel.afbaabb756a7c18ddb09.bundle.min.js" : 897 === e ? "carousel.3620fca501cb18163600.bundle.min.js" : 416 === e ? "countdown.0e9e688751d29d07a8d3.bundle.min.js" : 292 === e ? "hotspot.fa04300164c35a866a51.bundle.min.js" : 325 === e ? "form.5fb35271b8ba3fb1e7d6.bundle.min.js" : 543 === e ? "gallery.1628df47530ab42dafba.bundle.min.js" : 970 === e ? "lottie.e74a53bfa4c0bd939250.bundle.min.js" : 334 === e ? "nav-menu.a23fbd67486c5bedf26c.bundle.min.js" : 887 === e ? "popup.f7b15b2ca565b152bf98.bundle.min.js" : 535 === e ? "load-more.8b46f464e573feab5dd7.bundle.min.js" : 396 === e ? "posts.aec59265318492b89cb5.bundle.min.js" : 726 === e ? "portfolio.4cd5da34009c30cb5d70.bundle.min.js" : 316 === e ? "share-buttons.63d984f8c96d1e053bc0.bundle.min.js" : 829 === e ? "slides.c0029640cbdb48199471.bundle.min.js" : 158 === e ? "social.f215e8a3efafbdbeb7ef.bundle.min.js" : 404 === e ? "table-of-contents.99a74eec7252759bebdb.bundle.min.js" : 345 === e ? "archive-posts.16a93245d08246e5e540.bundle.min.js" : 798 === e ? "search-form.b7065999d77832a1b764.bundle.min.js" : 6 === e ? "woocommerce-menu-cart.eb61fe086245485310a4.bundle.min.js" : 80 === e ? "woocommerce-purchase-summary.3676ccd8c29ef0924b84.bundle.min.js" : 354 === e ? "woocommerce-checkout-page.776b4cec45070fe32636.bundle.min.js" : 4 === e ? "woocommerce-cart.d0d01530f5be6736b5d2.bundle.min.js" : 662 === e ? "woocommerce-my-account.4e940a8b4a52d1c98c5c.bundle.min.js" : 621 === e ? "woocommerce-notices.bcee9b5e1c8f65ac7927.bundle.min.js" : 787 === e ? "product-add-to-cart.51a22e1fbd8f914ab3d5.bundle.min.js" : 993 === e ? "loop.4a16d82b8b5e3e00f25e.bundle.min.js" : 932 === e ? "loop-carousel.f8067ec0c24b628c786e.bundle.min.js" : 550 === e ? "ajax-pagination.55e86e9100bc317aeb0b.bundle.min.js" : 727 === e ? "mega-menu.8008698e9df584aa4337.bundle.min.js" : 87 === e ? "mega-menu-stretch-content.480e081cebe071d683e8.bundle.min.js" : 912 === e ? "menu-title-keyboard-handler.070cb9cb3c4f1f016388.bundle.min.js" : 33 === e ? "nested-carousel.d08a5094d95215833b5c.bundle.min.js" : 225 === e ? "taxonomy-filter.e839f2be32b7ea832b34.bundle.min.js" : 579 === e ? "off-canvas.41d355285c19e4440547.bundle.min.js" : 1 === e ? "contact-buttons.33ec3b540b7caec4d0f5.bundle.min.js" : 61 === e ? "contact-buttons-var-10.0dc9f4c9e85e7c4baa3a.bundle.min.js" : 249 === e ? "floating-bars-var-2.1a487dc027431fb485cd.bundle.min.js" : 440 === e ? "floating-bars-var-3.acd1ad79ebb515e353c9.bundle.min.js" : 187 === e ? "search.3db30c59360e14bb4448.bundle.min.js" : void 0, __webpack_require__.g = function() {
        if ("object" == typeof globalThis) return globalThis;
        try {
            return this || new Function("return this")()
        } catch (e) {
            if ("object" == typeof window) return window
        }
    }(), __webpack_require__.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r), r = {}, a = "elementor-pro:", __webpack_require__.l = (e, n, c, i) => {
        if (r[e]) r[e].push(n);
        else {
            var t, _;
            if (void 0 !== c)
                for (var b = document.getElementsByTagName("script"), o = 0; o < b.length; o++) {
                    var d = b[o];
                    if (d.getAttribute("src") == e || d.getAttribute("data-webpack") == a + c) {
                        t = d;
                        break
                    }
                }
            t || (_ = !0, (t = document.createElement("script")).charset = "utf-8", t.timeout = 120, __webpack_require__.nc && t.setAttribute("nonce", __webpack_require__.nc), t.setAttribute("data-webpack", a + c), t.src = e), r[e] = [n];
            var onScriptComplete = (a, n) => {
                    t.onerror = t.onload = null, clearTimeout(u);
                    var c = r[e];
                    if (delete r[e], t.parentNode && t.parentNode.removeChild(t), c && c.forEach((e => e(n))), a) return a(n)
                },
                u = setTimeout(onScriptComplete.bind(null, void 0, {
                    type: "timeout",
                    target: t
                }), 12e4);
            t.onerror = onScriptComplete.bind(null, t.onerror), t.onload = onScriptComplete.bind(null, t.onload), _ && document.head.appendChild(t)
        }
    }, (() => {
        var e;
        __webpack_require__.g.importScripts && (e = __webpack_require__.g.location + "");
        var r = __webpack_require__.g.document;
        if (!e && r && (r.currentScript && "SCRIPT" === r.currentScript.tagName.toUpperCase() && (e = r.currentScript.src), !e)) {
            var a = r.getElementsByTagName("script");
            if (a.length)
                for (var n = a.length - 1; n > -1 && (!e || !/^http(s?):/.test(e));) e = a[n--].src
        }
        if (!e) throw new Error("Automatic publicPath is not supported in this browser");
        e = e.replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/"), __webpack_require__.p = e
    })(), (() => {
        var e = {
            978: 0
        };
        __webpack_require__.f.j = (r, a) => {
            var n = __webpack_require__.o(e, r) ? e[r] : void 0;
            if (0 !== n)
                if (n) a.push(n[2]);
                else if (978 != r) {
                var c = new Promise(((a, c) => n = e[r] = [a, c]));
                a.push(n[2] = c);
                var i = __webpack_require__.p + __webpack_require__.u(r),
                    t = new Error;
                __webpack_require__.l(i, (a => {
                    if (__webpack_require__.o(e, r) && (0 !== (n = e[r]) && (e[r] = void 0), n)) {
                        var c = a && ("load" === a.type ? "missing" : a.type),
                            i = a && a.target && a.target.src;
                        t.message = "Loading chunk " + r + " failed.\n(" + c + ": " + i + ")", t.name = "ChunkLoadError", t.type = c, t.request = i, n[1](t)
                    }
                }), "chunk-" + r, r)
            } else e[r] = 0
        }, __webpack_require__.O.j = r => 0 === e[r];
        var webpackJsonpCallback = (r, a) => {
                var n, c, [i, t, _] = a,
                    b = 0;
                if (i.some((r => 0 !== e[r]))) {
                    for (n in t) __webpack_require__.o(t, n) && (__webpack_require__.m[n] = t[n]);
                    if (_) var o = _(__webpack_require__)
                }
                for (r && r(a); b < i.length; b++) c = i[b], __webpack_require__.o(e, c) && e[c] && e[c][0](), e[c] = 0;
                return __webpack_require__.O(o)
            },
            r = self.webpackChunkelementor_pro = self.webpackChunkelementor_pro || [];
        r.forEach(webpackJsonpCallback.bind(null, 0)), r.push = webpackJsonpCallback.bind(null, r.push.bind(r))
    })()
})(); /*! elementor - v3.27.0 - 13-03-2025 */
(() => {
    "use strict";
    var e, r, _, t, a, i = {},
        n = {};

    function __webpack_require__(e) {
        var r = n[e];
        if (void 0 !== r) return r.exports;
        var _ = n[e] = {
            exports: {}
        };
        return i[e].call(_.exports, _, _.exports, __webpack_require__), _.exports
    }
    __webpack_require__.m = i, e = [], __webpack_require__.O = (r, _, t, a) => {
        if (!_) {
            var i = 1 / 0;
            for (u = 0; u < e.length; u++) {
                for (var [_, t, a] = e[u], n = !0, c = 0; c < _.length; c++)(!1 & a || i >= a) && Object.keys(__webpack_require__.O).every((e => __webpack_require__.O[e](_[c]))) ? _.splice(c--, 1) : (n = !1, a < i && (i = a));
                if (n) {
                    e.splice(u--, 1);
                    var o = t();
                    void 0 !== o && (r = o)
                }
            }
            return r
        }
        a = a || 0;
        for (var u = e.length; u > 0 && e[u - 1][2] > a; u--) e[u] = e[u - 1];
        e[u] = [_, t, a]
    }, _ = Object.getPrototypeOf ? e => Object.getPrototypeOf(e) : e => e.__proto__, __webpack_require__.t = function(e, t) {
        if (1 & t && (e = this(e)), 8 & t) return e;
        if ("object" == typeof e && e) {
            if (4 & t && e.__esModule) return e;
            if (16 & t && "function" == typeof e.then) return e
        }
        var a = Object.create(null);
        __webpack_require__.r(a);
        var i = {};
        r = r || [null, _({}), _([]), _(_)];
        for (var n = 2 & t && e;
            "object" == typeof n && !~r.indexOf(n); n = _(n)) Object.getOwnPropertyNames(n).forEach((r => i[r] = () => e[r]));
        return i.default = () => e, __webpack_require__.d(a, i), a
    }, __webpack_require__.d = (e, r) => {
        for (var _ in r) __webpack_require__.o(r, _) && !__webpack_require__.o(e, _) && Object.defineProperty(e, _, {
            enumerable: !0,
            get: r[_]
        })
    }, __webpack_require__.f = {}, __webpack_require__.e = e => Promise.all(Object.keys(__webpack_require__.f).reduce(((r, _) => (__webpack_require__.f[_](e, r), r)), [])), __webpack_require__.u = e => 304 === e ? "nested-title-keyboard-handler.fc9d01c2cd0ef46d20fd.bundle.min.js" : 835 === e ? "lightbox.f3fa607b705962362647.bundle.min.js" : 30 === e ? "text-path.5923566687faac82ea62.bundle.min.js" : 131 === e ? "accordion.36aa4c8c4eba17bc8e03.bundle.min.js" : 707 === e ? "alert.42cc1d522ef5c60bf874.bundle.min.js" : 457 === e ? "counter.12335f45aaa79d244f24.bundle.min.js" : 234 === e ? "progress.3200f67fe8fb78924bea.bundle.min.js" : 575 === e ? "tabs.537e7a0f178447960143.bundle.min.js" : 775 === e ? "toggle.a6177e2e3c2bc8864bef.bundle.min.js" : 180 === e ? "video.4343afefd25b5ede51a4.bundle.min.js" : 177 === e ? "image-carousel.6167d20b95b33386757b.bundle.min.js" : 212 === e ? "text-editor.c084ef86600b6f11690d.bundle.min.js" : 211 === e ? "wp-audio.c9624cb6e5dc9de86abd.bundle.min.js" : 915 === e ? "nested-accordion.c546968f7aebebc356f2.bundle.min.js" : 1 === e ? "contact-buttons.7c9983ed0d4964b951c2.bundle.min.js" : 336 === e ? "floating-bars.c1e9838906b386709cd4.bundle.min.js" : 216 === e ? "container.0754914e4611dc659a50.bundle.min.js" : void 0, __webpack_require__.g = function() {
        if ("object" == typeof globalThis) return globalThis;
        try {
            return this || new Function("return this")()
        } catch (e) {
            if ("object" == typeof window) return window
        }
    }(), __webpack_require__.o = (e, r) => Object.prototype.hasOwnProperty.call(e, r), t = {}, a = "elementorFrontend:", __webpack_require__.l = (e, r, _, i) => {
        if (t[e]) t[e].push(r);
        else {
            var n, c;
            if (void 0 !== _)
                for (var o = document.getElementsByTagName("script"), u = 0; u < o.length; u++) {
                    var b = o[u];
                    if (b.getAttribute("src") == e || b.getAttribute("data-webpack") == a + _) {
                        n = b;
                        break
                    }
                }
            n || (c = !0, (n = document.createElement("script")).charset = "utf-8", n.timeout = 120, __webpack_require__.nc && n.setAttribute("nonce", __webpack_require__.nc), n.setAttribute("data-webpack", a + _), n.src = e), t[e] = [r];
            var onScriptComplete = (r, _) => {
                    n.onerror = n.onload = null, clearTimeout(d);
                    var a = t[e];
                    if (delete t[e], n.parentNode && n.parentNode.removeChild(n), a && a.forEach((e => e(_))), r) return r(_)
                },
                d = setTimeout(onScriptComplete.bind(null, void 0, {
                    type: "timeout",
                    target: n
                }), 12e4);
            n.onerror = onScriptComplete.bind(null, n.onerror), n.onload = onScriptComplete.bind(null, n.onload), c && document.head.appendChild(n)
        }
    }, __webpack_require__.r = e => {
        "undefined" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {
            value: "Module"
        }), Object.defineProperty(e, "__esModule", {
            value: !0
        })
    }, (() => {
        var e;
        __webpack_require__.g.importScripts && (e = __webpack_require__.g.location + "");
        var r = __webpack_require__.g.document;
        if (!e && r && (r.currentScript && "SCRIPT" === r.currentScript.tagName.toUpperCase() && (e = r.currentScript.src), !e)) {
            var _ = r.getElementsByTagName("script");
            if (_.length)
                for (var t = _.length - 1; t > -1 && (!e || !/^http(s?):/.test(e));) e = _[t--].src
        }
        if (!e) throw new Error("Automatic publicPath is not supported in this browser");
        e = e.replace(/#.*$/, "").replace(/\?.*$/, "").replace(/\/[^\/]+$/, "/"), __webpack_require__.p = e
    })(), (() => {
        var e = {
            76: 0
        };
        __webpack_require__.f.j = (r, _) => {
            var t = __webpack_require__.o(e, r) ? e[r] : void 0;
            if (0 !== t)
                if (t) _.push(t[2]);
                else if (76 != r) {
                var a = new Promise(((_, a) => t = e[r] = [_, a]));
                _.push(t[2] = a);
                var i = __webpack_require__.p + __webpack_require__.u(r),
                    n = new Error;
                __webpack_require__.l(i, (_ => {
                    if (__webpack_require__.o(e, r) && (0 !== (t = e[r]) && (e[r] = void 0), t)) {
                        var a = _ && ("load" === _.type ? "missing" : _.type),
                            i = _ && _.target && _.target.src;
                        n.message = "Loading chunk " + r + " failed.\n(" + a + ": " + i + ")", n.name = "ChunkLoadError", n.type = a, n.request = i, t[1](n)
                    }
                }), "chunk-" + r, r)
            } else e[r] = 0
        }, __webpack_require__.O.j = r => 0 === e[r];
        var webpackJsonpCallback = (r, _) => {
                var t, a, [i, n, c] = _,
                    o = 0;
                if (i.some((r => 0 !== e[r]))) {
                    for (t in n) __webpack_require__.o(n, t) && (__webpack_require__.m[t] = n[t]);
                    if (c) var u = c(__webpack_require__)
                }
                for (r && r(_); o < i.length; o++) a = i[o], __webpack_require__.o(e, a) && e[a] && e[a][0](), e[a] = 0;
                return __webpack_require__.O(u)
            },
            r = self.webpackChunkelementorFrontend = self.webpackChunkelementorFrontend || [];
        r.forEach(webpackJsonpCallback.bind(null, 0)), r.push = webpackJsonpCallback.bind(null, r.push.bind(r))
    })()
})(); /*! elementor - v3.27.0 - 13-03-2025 */
(self.webpackChunkelementorFrontend = self.webpackChunkelementorFrontend || []).push([
    [941], {
        5213: (e, t) => {
            "use strict";
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            t.default = (e, t) => {
                t = Array.isArray(t) ? t : [t];
                for (const n of t)
                    if (e.constructor.name === n.prototype[Symbol.toStringTag]) return !0;
                return !1
            }
        },
        2890: (e, t, n) => {
            "use strict";
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0, n(4846), n(6211);
            class _default extends elementorModules.ViewModule {
                getDefaultSettings() {
                    return {
                        selectors: {
                            elements: ".elementor-element",
                            nestedDocumentElements: ".elementor .elementor-element"
                        },
                        classes: {
                            editMode: "elementor-edit-mode"
                        }
                    }
                }
                getDefaultElements() {
                    const e = this.getSettings("selectors");
                    return {
                        $elements: this.$element.find(e.elements).not(this.$element.find(e.nestedDocumentElements))
                    }
                }
                getDocumentSettings(e) {
                    let t;
                    if (this.isEdit) {
                        t = {};
                        const e = elementor.settings.page.model;
                        jQuery.each(e.getActiveControls(), (n => {
                            t[n] = e.attributes[n]
                        }))
                    } else t = this.$element.data("elementor-settings") || {};
                    return this.getItems(t, e)
                }
                runElementsHandlers() {
                    this.elements.$elements.each(((e, t) => setTimeout((() => elementorFrontend.elementsHandler.runReadyTrigger(t)))))
                }
                onInit() {
                    this.$element = this.getSettings("$element"), super.onInit(), this.isEdit = this.$element.hasClass(this.getSettings("classes.editMode")), this.isEdit ? elementor.on("document:loaded", (() => {
                        elementor.settings.page.model.on("change", this.onSettingsChange.bind(this))
                    })) : this.runElementsHandlers()
                }
                onSettingsChange() {}
            }
            t.default = _default
        },
        9603: (e, t, n) => {
            "use strict";
            var r = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0, n(4846), n(6211), n(9655);
            var i = r(n(5633));
            class CarouselHandlerBase extends i.default {
                getDefaultSettings() {
                    return {
                        selectors: {
                            carousel: ".swiper",
                            swiperWrapper: ".swiper-wrapper",
                            slideContent: ".swiper-slide",
                            swiperArrow: ".elementor-swiper-button",
                            paginationWrapper: ".swiper-pagination",
                            paginationBullet: ".swiper-pagination-bullet",
                            paginationBulletWrapper: ".swiper-pagination-bullets"
                        }
                    }
                }
                getDefaultElements() {
                    const e = this.getSettings("selectors"),
                        t = {
                            $swiperContainer: this.$element.find(e.carousel),
                            $swiperWrapper: this.$element.find(e.swiperWrapper),
                            $swiperArrows: this.$element.find(e.swiperArrow),
                            $paginationWrapper: this.$element.find(e.paginationWrapper),
                            $paginationBullets: this.$element.find(e.paginationBullet),
                            $paginationBulletWrapper: this.$element.find(e.paginationBulletWrapper)
                        };
                    return t.$slides = t.$swiperContainer.find(e.slideContent), t
                }
                getSwiperSettings() {
                    const e = this.getElementSettings(),
                        t = +e.slides_to_show || 3,
                        n = 1 === t,
                        r = elementorFrontend.config.responsive.activeBreakpoints,
                        i = {
                            mobile: 1,
                            tablet: n ? 1 : 2
                        },
                        s = {
                            slidesPerView: t,
                            loop: "yes" === e.infinite,
                            speed: e.speed,
                            handleElementorBreakpoints: !0,
                            breakpoints: {}
                        };
                    let o = t;
                    Object.keys(r).reverse().forEach((t => {
                        const n = i[t] ? i[t] : o;
                        s.breakpoints[r[t].value] = {
                            slidesPerView: +e["slides_to_show_" + t] || n,
                            slidesPerGroup: +e["slides_to_scroll_" + t] || 1
                        }, e.image_spacing_custom && (s.breakpoints[r[t].value].spaceBetween = this.getSpaceBetween(t)), o = +e["slides_to_show_" + t] || n
                    })), "yes" === e.autoplay && (s.autoplay = {
                        delay: e.autoplay_speed,
                        disableOnInteraction: "yes" === e.pause_on_interaction
                    }), n ? (s.effect = e.effect, "fade" === e.effect && (s.fadeEffect = {
                        crossFade: !0
                    })) : s.slidesPerGroup = +e.slides_to_scroll || 1, e.image_spacing_custom && (s.spaceBetween = this.getSpaceBetween());
                    const a = "arrows" === e.navigation || "both" === e.navigation,
                        l = "dots" === e.navigation || "both" === e.navigation || e.pagination;
                    return a && (s.navigation = {
                        prevEl: ".elementor-swiper-button-prev",
                        nextEl: ".elementor-swiper-button-next"
                    }), l && (s.pagination = {
                        el: `.elementor-element-${this.getID()} .swiper-pagination`,
                        type: e.pagination ? e.pagination : "bullets",
                        clickable: !0,
                        renderBullet: (e, t) => `<span class="${t}" role="button" tabindex="0" data-bullet-index="${e}" aria-label="${elementorFrontend.config.i18n.a11yCarouselPaginationBulletMessage} ${e+1}"></span>`
                    }), "yes" === e.lazyload && (s.lazy = {
                        loadPrevNext: !0,
                        loadPrevNextAmount: 1
                    }), s.a11y = {
                        enabled: !0,
                        prevSlideMessage: elementorFrontend.config.i18n.a11yCarouselPrevSlideMessage,
                        nextSlideMessage: elementorFrontend.config.i18n.a11yCarouselNextSlideMessage,
                        firstSlideMessage: elementorFrontend.config.i18n.a11yCarouselFirstSlideMessage,
                        lastSlideMessage: elementorFrontend.config.i18n.a11yCarouselLastSlideMessage
                    }, s.on = {
                        slideChange: () => {
                            this.a11ySetPaginationTabindex(), this.handleElementHandlers(), this.a11ySetSlideAriaHidden()
                        },
                        init: () => {
                            this.a11ySetPaginationTabindex(), this.a11ySetSlideAriaHidden("initialisation")
                        }
                    }, this.applyOffsetSettings(e, s, t), s
                }
                getOffsetWidth() {
                    const e = elementorFrontend.getCurrentDeviceMode();
                    return elementorFrontend.utils.controls.getResponsiveControlValue(this.getElementSettings(), "offset_width", "size", e) || 0
                }
                applyOffsetSettings(e, t, n) {
                    const r = e.offset_sides;
                    if (!(elementorFrontend.isEditMode() && "NestedCarousel" === this.constructor.name) && r && "none" !== r) switch (r) {
                        case "right":
                            this.forceSliderToShowNextSlideWhenOnLast(t, n), this.addClassToSwiperContainer("offset-right");
                            break;
                        case "left":
                            this.addClassToSwiperContainer("offset-left");
                            break;
                        case "both":
                            this.forceSliderToShowNextSlideWhenOnLast(t, n), this.addClassToSwiperContainer("offset-both")
                    }
                }
                forceSliderToShowNextSlideWhenOnLast(e, t) {
                    e.slidesPerView = t + .001
                }
                addClassToSwiperContainer(e) {
                    this.getDefaultElements().$swiperContainer[0].classList.add(e)
                }
                async onInit() {
                    if (super.onInit(...arguments), !this.elements.$swiperContainer.length || 2 > this.elements.$slides.length) return;
                    await this.initSwiper();
                    "yes" === this.getElementSettings().pause_on_hover && this.togglePauseOnHover(!0)
                }
                async initSwiper() {
                    const e = elementorFrontend.utils.swiper;
                    this.swiper = await new e(this.elements.$swiperContainer, this.getSwiperSettings()), this.elements.$swiperContainer.data("swiper", this.swiper)
                }
                bindEvents() {
                    this.elements.$swiperArrows.on("keydown", this.onDirectionArrowKeydown.bind(this)), this.elements.$paginationWrapper.on("keydown", ".swiper-pagination-bullet", this.onDirectionArrowKeydown.bind(this)), this.elements.$swiperContainer.on("keydown", ".swiper-slide", this.onDirectionArrowKeydown.bind(this)), this.$element.find(":focusable").on("focus", this.onFocusDisableAutoplay.bind(this)), elementorFrontend.elements.$window.on("resize", this.getSwiperSettings.bind(this))
                }
                unbindEvents() {
                    this.elements.$swiperArrows.off(), this.elements.$paginationWrapper.off(), this.elements.$swiperContainer.off(), this.$element.find(":focusable").off(), elementorFrontend.elements.$window.off("resize")
                }
                onDirectionArrowKeydown(e) {
                    const t = elementorFrontend.config.is_rtl,
                        n = e.originalEvent.code,
                        r = t ? "ArrowLeft" : "ArrowRight";
                    if (!(-1 !== ["ArrowLeft", "ArrowRight"].indexOf(n))) return !0;
                    (t ? "ArrowRight" : "ArrowLeft") === n ? this.swiper.slidePrev() : r === n && this.swiper.slideNext()
                }
                onFocusDisableAutoplay() {
                    this.swiper.autoplay.stop()
                }
                updateSwiperOption(e) {
                    const t = this.getElementSettings()[e],
                        n = this.swiper.params;
                    switch (e) {
                        case "autoplay_speed":
                            n.autoplay.delay = t;
                            break;
                        case "speed":
                            n.speed = t
                    }
                    this.swiper.update()
                }
                getChangeableProperties() {
                    return {
                        pause_on_hover: "pauseOnHover",
                        autoplay_speed: "delay",
                        speed: "speed",
                        arrows_position: "arrows_position"
                    }
                }
                onElementChange(e) {
                    if (0 === e.indexOf("image_spacing_custom")) return void this.updateSpaceBetween(e);
                    if (this.getChangeableProperties()[e])
                        if ("pause_on_hover" === e) {
                            const e = this.getElementSettings("pause_on_hover");
                            this.togglePauseOnHover("yes" === e)
                        } else this.updateSwiperOption(e)
                }
                onEditSettingsChange(e) {
                    "activeItemIndex" === e && this.swiper.slideToLoop(this.getEditSettings("activeItemIndex") - 1)
                }
                getSpaceBetween() {
                    let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null;
                    const t = elementorFrontend.utils.controls.getResponsiveControlValue(this.getElementSettings(), "image_spacing_custom", "size", e);
                    return Number(t) || 0
                }
                updateSpaceBetween(e) {
                    const t = e.match("image_spacing_custom_(.*)"),
                        n = t ? t[1] : "desktop",
                        r = this.getSpaceBetween(n);
                    "desktop" !== n && (this.swiper.params.breakpoints[elementorFrontend.config.responsive.activeBreakpoints[n].value].spaceBetween = r), this.swiper.params.spaceBetween = r, this.swiper.update()
                }
                getPaginationBullets() {
                    let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "array";
                    const t = this.$element.find(this.getSettings("selectors").paginationBullet);
                    return "array" === e ? Array.from(t) : t
                }
                a11ySetPaginationTabindex() {
                    const e = this.swiper ? .params ? .pagination.bulletClass,
                        t = this.swiper ? .params ? .pagination.bulletActiveClass;
                    this.getPaginationBullets().forEach((e => {
                        e.classList ? .contains(t) || e.removeAttribute("tabindex")
                    }));
                    const n = "ArrowLeft" === event ? .code || "ArrowRight" === event ? .code;
                    event ? .target ? .classList ? .contains(e) && n && this.$element.find(`.${t}`).trigger("focus")
                }
                getSwiperWrapperTranformXValue() {
                    let e = this.elements.$swiperWrapper[0] ? .style.transform;
                    return e = e.replace("translate3d(", ""), e = e.split(","), e = parseInt(e[0].replace("px", "")), e || 0
                }
                a11ySetSlideAriaHidden() {
                    if ("number" != typeof("initialisation" === (arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : "") ? 0 : this.swiper ? .activeIndex)) return;
                    const e = this.getSwiperWrapperTranformXValue(),
                        t = this.elements.$swiperWrapper[0].clientWidth;
                    this.elements.$swiperContainer.find(this.getSettings("selectors").slideContent).each(((n, r) => {
                        0 <= r.offsetLeft + e && t > r.offsetLeft + e ? (r.removeAttribute("aria-hidden"), r.removeAttribute("inert")) : (r.setAttribute("aria-hidden", !0), r.setAttribute("inert", ""))
                    }))
                }
                handleElementHandlers() {}
            }
            t.default = CarouselHandlerBase
        },
        5633: (e, t, n) => {
            "use strict";
            var r = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            var i = r(n(7224));
            class SwiperHandlerBase extends i.default {
                getInitialSlide() {
                    const e = this.getEditSettings();
                    return e.activeItemIndex ? e.activeItemIndex - 1 : 0
                }
                getSlidesCount() {
                    return this.elements.$slides.length
                }
                togglePauseOnHover(e) {
                    e ? this.elements.$swiperContainer.on({
                        mouseenter: () => {
                            this.swiper.autoplay.stop()
                        },
                        mouseleave: () => {
                            this.swiper.autoplay.start()
                        }
                    }) : this.elements.$swiperContainer.off("mouseenter mouseleave")
                }
                handleKenBurns() {
                    const e = this.getSettings();
                    this.$activeImageBg && this.$activeImageBg.removeClass(e.classes.kenBurnsActive), this.activeItemIndex = this.swiper ? this.swiper.activeIndex : this.getInitialSlide(), this.swiper ? this.$activeImageBg = jQuery(this.swiper.slides[this.activeItemIndex]).children("." + e.classes.slideBackground) : this.$activeImageBg = jQuery(this.elements.$slides[0]).children("." + e.classes.slideBackground), this.$activeImageBg.addClass(e.classes.kenBurnsActive)
                }
            }
            t.default = SwiperHandlerBase
        },
        7224: (e, t, n) => {
            "use strict";
            n(5724), n(4846), n(7458), n(6211), n(9655), e.exports = elementorModules.ViewModule.extend({
                $element: null,
                editorListeners: null,
                onElementChange: null,
                onEditSettingsChange: null,
                onPageSettingsChange: null,
                isEdit: null,
                __construct(e) {
                    this.isActive(e) && (this.$element = e.$element, this.isEdit = this.$element.hasClass("elementor-element-edit-mode"), this.isEdit && this.addEditorListeners())
                },
                isActive: () => !0,
                isElementInTheCurrentDocument() {
                    return !!elementorFrontend.isEditMode() && elementor.documents.currentDocument.id.toString() === this.$element[0].closest(".elementor").dataset.elementorId
                },
                findElement(e) {
                    var t = this.$element;
                    return t.find(e).filter((function() {
                        return jQuery(this).parent().closest(".elementor-element").is(t)
                    }))
                },
                getUniqueHandlerID(e, t) {
                    return e || (e = this.getModelCID()), t || (t = this.$element), e + t.attr("data-element_type") + this.getConstructorID()
                },
                initEditorListeners() {
                    var e = this;
                    if (e.editorListeners = [{
                            event: "element:destroy",
                            to: elementor.channels.data,
                            callback(t) {
                                t.cid === e.getModelCID() && e.onDestroy()
                            }
                        }], e.onElementChange) {
                        const t = e.getWidgetType() || e.getElementType();
                        let n = "change";
                        "global" !== t && (n += ":" + t), e.editorListeners.push({
                            event: n,
                            to: elementor.channels.editor,
                            callback(t, n) {
                                e.getUniqueHandlerID(n.model.cid, n.$el) === e.getUniqueHandlerID() && e.onElementChange(t.model.get("name"), t, n)
                            }
                        })
                    }
                    e.onEditSettingsChange && e.editorListeners.push({
                        event: "change:editSettings",
                        to: elementor.channels.editor,
                        callback(t, n) {
                            if (n.model.cid !== e.getModelCID()) return;
                            const r = Object.keys(t.changed)[0];
                            e.onEditSettingsChange(r, t.changed[r])
                        }
                    }), ["page"].forEach((function(t) {
                        var n = "on" + t[0].toUpperCase() + t.slice(1) + "SettingsChange";
                        e[n] && e.editorListeners.push({
                            event: "change",
                            to: elementor.settings[t].model,
                            callback(t) {
                                e[n](t.changed)
                            }
                        })
                    }))
                },
                getEditorListeners() {
                    return this.editorListeners || this.initEditorListeners(), this.editorListeners
                },
                addEditorListeners() {
                    var e = this.getUniqueHandlerID();
                    this.getEditorListeners().forEach((function(t) {
                        elementorFrontend.addListenerOnce(e, t.event, t.callback, t.to)
                    }))
                },
                removeEditorListeners() {
                    var e = this.getUniqueHandlerID();
                    this.getEditorListeners().forEach((function(t) {
                        elementorFrontend.removeListeners(e, t.event, null, t.to)
                    }))
                },
                getElementType() {
                    return this.$element.data("element_type")
                },
                getWidgetType() {
                    const e = this.$element.data("widget_type");
                    if (e) return e.split(".")[0]
                },
                getID() {
                    return this.$element.data("id")
                },
                getModelCID() {
                    return this.$element.data("model-cid")
                },
                getElementSettings(e) {
                    let t = {};
                    const n = this.getModelCID();
                    if (this.isEdit && n) {
                        const e = elementorFrontend.config.elements.data[n],
                            r = e.attributes;
                        let i = r.widgetType || r.elType;
                        r.isInner && (i = "inner-" + i);
                        let s = elementorFrontend.config.elements.keys[i];
                        s || (s = elementorFrontend.config.elements.keys[i] = [], jQuery.each(e.controls, ((e, t) => {
                            (t.frontend_available || t.editor_available) && s.push(e)
                        }))), jQuery.each(e.getActiveControls(), (function(e) {
                            if (-1 !== s.indexOf(e)) {
                                let n = r[e];
                                n.toJSON && (n = n.toJSON()), t[e] = n
                            }
                        }))
                    } else t = this.$element.data("settings") || {};
                    return this.getItems(t, e)
                },
                getEditSettings(e) {
                    var t = {};
                    return this.isEdit && (t = elementorFrontend.config.elements.editSettings[this.getModelCID()].attributes), this.getItems(t, e)
                },
                getCurrentDeviceSetting(e) {
                    return elementorFrontend.getCurrentDeviceSetting(this.getElementSettings(), e)
                },
                onInit() {
                    this.isActive(this.getSettings()) && elementorModules.ViewModule.prototype.onInit.apply(this, arguments)
                },
                onDestroy() {
                    this.isEdit && this.removeEditorListeners(), this.unbindEvents && this.unbindEvents()
                }
            })
        },
        8140: (e, t, n) => {
            "use strict";
            var r = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0, n(4846), n(6211);
            var i = r(n(7224));
            class StretchedElement extends i.default {
                getStretchedClass() {
                    return "e-stretched"
                }
                getStretchSettingName() {
                    return "stretch_element"
                }
                getStretchActiveValue() {
                    return "yes"
                }
                bindEvents() {
                    const e = this.getUniqueHandlerID();
                    elementorFrontend.addListenerOnce(e, "resize", this.stretch), elementorFrontend.addListenerOnce(e, "sticky:stick", this.stretch, this.$element), elementorFrontend.addListenerOnce(e, "sticky:unstick", this.stretch, this.$element), elementorFrontend.isEditMode() && (this.onKitChangeStretchContainerChange = this.onKitChangeStretchContainerChange.bind(this), elementor.channels.editor.on("kit:change:stretchContainer", this.onKitChangeStretchContainerChange))
                }
                unbindEvents() {
                    elementorFrontend.removeListeners(this.getUniqueHandlerID(), "resize", this.stretch), elementorFrontend.isEditMode() && elementor.channels.editor.off("kit:change:stretchContainer", this.onKitChangeStretchContainerChange)
                }
                isActive(e) {
                    return elementorFrontend.isEditMode() || e.$element.hasClass(this.getStretchedClass())
                }
                getStretchElementForConfig() {
                    let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : null;
                    return e ? this.$element.find(e) : this.$element
                }
                getStretchElementConfig() {
                    return {
                        element: this.getStretchElementForConfig(),
                        selectors: {
                            container: this.getStretchContainer()
                        },
                        considerScrollbar: elementorFrontend.isEditMode() && elementorFrontend.config.is_rtl
                    }
                }
                initStretch() {
                    this.stretch = this.stretch.bind(this), this.stretchElement = new elementorModules.frontend.tools.StretchElement(this.getStretchElementConfig())
                }
                getStretchContainer() {
                    return elementorFrontend.getKitSettings("stretched_section_container") || window
                }
                isStretchSettingEnabled() {
                    return this.getElementSettings(this.getStretchSettingName()) === this.getStretchActiveValue()
                }
                stretch() {
                    this.isStretchSettingEnabled() && this.stretchElement.stretch()
                }
                onInit() {
                    this.isActive(this.getSettings()) && (this.initStretch(), super.onInit(...arguments), this.stretch())
                }
                onElementChange(e) {
                    this.getStretchSettingName() === e && (this.isStretchSettingEnabled() ? this.stretch() : this.stretchElement.reset())
                }
                onKitChangeStretchContainerChange() {
                    this.stretchElement.setSettings("selectors.container", this.getStretchContainer()), this.stretch()
                }
            }
            t.default = StretchedElement
        },
        4946: (e, t, n) => {
            "use strict";
            var r = n(6784),
                i = r(n(1265)),
                s = r(n(2890)),
                o = r(n(7955)),
                a = r(n(8140)),
                l = r(n(7224)),
                c = r(n(5633)),
                u = r(n(9603)),
                d = r(n(4328));
            i.default.frontend = {
                Document: s.default,
                tools: {
                    StretchElement: o.default
                },
                handlers: {
                    Base: l.default,
                    StretchedElement: a.default,
                    SwiperBase: c.default,
                    CarouselBase: u.default,
                    NestedTabs: d.default
                }
            }
        },
        7955: e => {
            "use strict";
            e.exports = elementorModules.ViewModule.extend({
                getDefaultSettings: () => ({
                    element: null,
                    direction: elementorFrontend.config.is_rtl ? "right" : "left",
                    selectors: {
                        container: window
                    },
                    considerScrollbar: !1,
                    cssOutput: "inline"
                }),
                getDefaultElements() {
                    return {
                        $element: jQuery(this.getSettings("element"))
                    }
                },
                stretch() {
                    const e = this.getSettings();
                    let t;
                    try {
                        t = jQuery(e.selectors.container)
                    } catch (e) {}
                    t && t.length || (t = jQuery(this.getDefaultSettings().selectors.container)), this.reset();
                    var n = this.elements.$element,
                        r = t.innerWidth(),
                        i = n.offset().left,
                        s = "fixed" === n.css("position"),
                        o = s ? 0 : i,
                        a = window === t[0];
                    if (!a) {
                        var l = t.offset().left;
                        s && (o = l), i > l && (o = i - l)
                    }
                    if (e.considerScrollbar && a) {
                        o -= window.innerWidth - r
                    }
                    s || (elementorFrontend.config.is_rtl && (o = r - (n.outerWidth() + o)), o = -o), e.margin && (o += e.margin);
                    var c = {};
                    let u = r;
                    e.margin && (u -= 2 * e.margin), c.width = u + "px", c[e.direction] = o + "px", "variables" !== e.cssOutput ? n.css(c) : this.applyCssVariables(n, c)
                },
                reset() {
                    const e = {},
                        t = this.getSettings(),
                        n = this.elements.$element;
                    "variables" !== t.cssOutput ? (e.width = "", e[t.direction] = "", n.css(e)) : this.resetCssVariables(n)
                },
                applyCssVariables(e, t) {
                    e.css("--stretch-width", t.width), t.left ? e.css("--stretch-left", t.left) : e.css("--stretch-right", t.right)
                },
                resetCssVariables(e) {
                    e.css({
                        "--stretch-width": "",
                        "--stretch-left": "",
                        "--stretch-right": ""
                    })
                }
            })
        },
        7557: (e, t) => {
            "use strict";

            function getChildrenWidth(e) {
                let t = 0;
                const n = e[0].parentNode,
                    r = getComputedStyle(n),
                    i = parseFloat(r.gap) || 0;
                for (let n = 0; n < e.length; n++) t += e[n].offsetWidth + i;
                return t
            }
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.changeScrollStatus = function changeScrollStatus(e, t) {
                "mousedown" === t.type ? (e.classList.add("e-scroll"), e.dataset.pageX = t.pageX) : (e.classList.remove("e-scroll", "e-scroll-active"), e.dataset.pageX = "")
            }, t.setHorizontalScrollAlignment = function setHorizontalScrollAlignment(e) {
                let {
                    element: t,
                    direction: n,
                    justifyCSSVariable: r,
                    horizontalScrollStatus: i
                } = e;
                if (!t) return;
                ! function isHorizontalScroll(e, t) {
                    return e.clientWidth < getChildrenWidth(e.children) && "enable" === t
                }(t, i) ? t.style.setProperty(r, ""): function initialScrollPosition(e, t, n) {
                    const r = elementorFrontend.config.is_rtl;
                    if ("end" === t) e.style.setProperty(n, "start"), e.scrollLeft = r ? -1 * getChildrenWidth(e.children) : getChildrenWidth(e.children);
                    else e.style.setProperty(n, "start"), e.scrollLeft = 0
                }(t, n, r)
            }, t.setHorizontalTitleScrollValues = function setHorizontalTitleScrollValues(e, t, n) {
                const r = e.classList.contains("e-scroll"),
                    i = "enable" === t,
                    s = e.scrollWidth > e.clientWidth;
                if (!r || !i || !s) return;
                n.preventDefault();
                const o = parseFloat(e.dataset.pageX),
                    a = n.pageX - o;
                let l = 0;
                l = 20 < a ? 5 : -20 > a ? -5 : a;
                e.scrollLeft = e.scrollLeft - l, e.classList.add("e-scroll-active")
            }
        },
        2946: (e, t, n) => {
            "use strict";
            var r = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            var i = r(n(751)),
                s = r(n(5213));
            class ArgsObject extends i.default {
                static getInstanceType() {
                    return "ArgsObject"
                }
                constructor(e) {
                    super(), this.args = e
                }
                requireArgument(e) {
                    let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : this.args;
                    if (!Object.prototype.hasOwnProperty.call(t, e)) throw Error(`${e} is required.`)
                }
                requireArgumentType(e, t) {
                    let n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : this.args;
                    if (this.requireArgument(e, n), typeof n[e] !== t) throw Error(`${e} invalid type: ${t}.`)
                }
                requireArgumentInstance(e, t) {
                    let n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : this.args;
                    if (this.requireArgument(e, n), !(n[e] instanceof t || (0, s.default)(n[e], t))) throw Error(`${e} invalid instance.`)
                }
                requireArgumentConstructor(e, t) {
                    let n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : this.args;
                    if (this.requireArgument(e, n), n[e].constructor.toString() !== t.prototype.constructor.toString()) throw Error(`${e} invalid constructor type.`)
                }
            }
            t.default = ArgsObject
        },
        8685: (e, t, n) => {
            "use strict";
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = t.ForceMethodImplementation = void 0, n(6281);
            class ForceMethodImplementation extends Error {
                constructor() {
                    let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},
                        t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
                    super(`${e.isStatic?"static ":""}${e.fullName}() should be implemented, please provide '${e.functionName||e.fullName}' functionality.`, t), Object.keys(t).length && console.error(t), Error.captureStackTrace(this, ForceMethodImplementation)
                }
            }
            t.ForceMethodImplementation = ForceMethodImplementation;
            t.default = e => {
                const t = Error().stack.split("\n")[2].trim(),
                    n = t.startsWith("at new") ? "constructor" : t.split(" ")[1],
                    r = {};
                if (r.functionName = n, r.fullName = n, r.functionName.includes(".")) {
                    const e = r.functionName.split(".");
                    r.className = e[0], r.functionName = e[1]
                } else r.isStatic = !0;
                throw new ForceMethodImplementation(r, e)
            }
        },
        751: (e, t, n) => {
            "use strict";
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0, n(5724), n(4846), n(9655);
            class InstanceType {
                static[Symbol.hasInstance](e) {
                    let t = super[Symbol.hasInstance](e);
                    if (e && !e.constructor.getInstanceType) return t;
                    if (e && (e.instanceTypes || (e.instanceTypes = []), t || this.getInstanceType() === e.constructor.getInstanceType() && (t = !0), t)) {
                        const t = this.getInstanceType === InstanceType.getInstanceType ? "BaseInstanceType" : this.getInstanceType(); - 1 === e.instanceTypes.indexOf(t) && e.instanceTypes.push(t)
                    }
                    return !t && e && (t = e.instanceTypes && Array.isArray(e.instanceTypes) && -1 !== e.instanceTypes.indexOf(this.getInstanceType())), t
                }
                static getInstanceType() {
                    elementorModules.ForceMethodImplementation()
                }
                constructor() {
                    let e = new.target;
                    const t = [];
                    for (; e.__proto__ && e.__proto__.name;) t.push(e.__proto__), e = e.__proto__;
                    t.reverse().forEach((e => this instanceof e))
                }
            }
            t.default = InstanceType
        },
        641: (e, t, n) => {
            "use strict";
            n(5724), n(4846), n(7458), n(9655);
            const Module = function() {
                const e = jQuery,
                    t = arguments,
                    n = this,
                    r = {};
                let i;
                this.getItems = function(e, t) {
                        if (t) {
                            const n = t.split("."),
                                r = n.splice(0, 1);
                            if (!n.length) return e[r];
                            if (!e[r]) return;
                            return this.getItems(e[r], n.join("."))
                        }
                        return e
                    }, this.getSettings = function(e) {
                        return this.getItems(i, e)
                    }, this.setSettings = function(t, r, s) {
                        if (s || (s = i), "object" == typeof t) return e.extend(s, t), n;
                        const o = t.split("."),
                            a = o.splice(0, 1);
                        return o.length ? (s[a] || (s[a] = {}), n.setSettings(o.join("."), r, s[a])) : (s[a] = r, n)
                    }, this.getErrorMessage = function(e, t) {
                        let n;
                        if ("forceMethodImplementation" === e) n = `The method '${t}' must to be implemented in the inheritor child.`;
                        else n = "An error occurs";
                        return n
                    }, this.forceMethodImplementation = function(e) {
                        throw new Error(this.getErrorMessage("forceMethodImplementation", e))
                    }, this.on = function(t, i) {
                        if ("object" == typeof t) return e.each(t, (function(e) {
                            n.on(e, this)
                        })), n;
                        return t.split(" ").forEach((function(e) {
                            r[e] || (r[e] = []), r[e].push(i)
                        })), n
                    }, this.off = function(e, t) {
                        if (!r[e]) return n;
                        if (!t) return delete r[e], n;
                        const i = r[e].indexOf(t);
                        return -1 !== i && (delete r[e][i], r[e] = r[e].filter((e => e))), n
                    }, this.trigger = function(t) {
                        const i = "on" + t[0].toUpperCase() + t.slice(1),
                            s = Array.prototype.slice.call(arguments, 1);
                        n[i] && n[i].apply(n, s);
                        const o = r[t];
                        return o ? (e.each(o, (function(e, t) {
                            t.apply(n, s)
                        })), n) : n
                    }, n.__construct.apply(n, t), e.each(n, (function(e) {
                        const t = n[e];
                        "function" == typeof t && (n[e] = function() {
                            return t.apply(n, arguments)
                        })
                    })),
                    function() {
                        i = n.getDefaultSettings();
                        const r = t[0];
                        r && e.extend(!0, i, r)
                    }(), n.trigger("init")
            };
            Module.prototype.__construct = function() {}, Module.prototype.getDefaultSettings = function() {
                return {}
            }, Module.prototype.getConstructorID = function() {
                return this.constructor.name
            }, Module.extend = function(e) {
                const t = jQuery,
                    n = this,
                    child = function() {
                        return n.apply(this, arguments)
                    };
                return t.extend(child, n), (child.prototype = Object.create(t.extend({}, n.prototype, e))).constructor = child, child.__super__ = n.prototype, child
            }, e.exports = Module
        },
        3980: (e, t, n) => {
            "use strict";
            var r = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0, n(5724);
            var i = r(n(2425));
            t.default = i.default.extend({
                getDefaultSettings: () => ({
                    container: null,
                    items: null,
                    columnsCount: 3,
                    verticalSpaceBetween: 30
                }),
                getDefaultElements() {
                    return {
                        $container: jQuery(this.getSettings("container")),
                        $items: jQuery(this.getSettings("items"))
                    }
                },
                run() {
                    var e = [],
                        t = this.elements.$container.position().top,
                        n = this.getSettings(),
                        r = n.columnsCount;
                    t += parseInt(this.elements.$container.css("margin-top"), 10), this.elements.$items.each((function(i) {
                        var s = Math.floor(i / r),
                            o = jQuery(this),
                            a = o[0].getBoundingClientRect().height + n.verticalSpaceBetween;
                        if (s) {
                            var l = o.position(),
                                c = i % r,
                                u = l.top - t - e[c];
                            u -= parseInt(o.css("margin-top"), 10), u *= -1, o.css("margin-top", u + "px"), e[c] += a
                        } else e.push(a)
                    }))
                }
            })
        },
        2970: (e, t, n) => {
            "use strict";
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0, n(5724);
            t.default = class Scroll {
                static scrollObserver(e) {
                    let t = 0;
                    const n = {
                        root: e.root || null,
                        rootMargin: e.offset || "0px",
                        threshold: function() {
                            let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0;
                            const t = [];
                            if (e > 0 && e <= 100) {
                                const n = 100 / e;
                                for (let e = 0; e <= 100; e += n) t.push(e / 100)
                            } else t.push(0);
                            return t
                        }(e.sensitivity)
                    };
                    return new IntersectionObserver((function handleIntersect(n) {
                        const r = n[0].boundingClientRect.y,
                            i = n[0].isIntersecting,
                            s = r < t ? "down" : "up",
                            o = Math.abs(parseFloat((100 * n[0].intersectionRatio).toFixed(2)));
                        e.callback({
                            sensitivity: e.sensitivity,
                            isInViewport: i,
                            scrollPercentage: o,
                            intersectionScrollDirection: s
                        }), t = r
                    }), n)
                }
                static getElementViewportPercentage(e) {
                    let t = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};
                    const n = e[0].getBoundingClientRect(),
                        r = t.start || 0,
                        i = t.end || 0,
                        s = window.innerHeight * r / 100,
                        o = window.innerHeight * i / 100,
                        a = n.top - window.innerHeight,
                        l = 0 - a + s,
                        c = n.top + s + e.height() - a + o,
                        u = Math.max(0, Math.min(l / c, 1));
                    return parseFloat((100 * u).toFixed(2))
                }
                static getPageScrollPercentage() {
                    let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {},
                        t = arguments.length > 1 ? arguments[1] : void 0;
                    const n = e.start || 0,
                        r = e.end || 0,
                        i = t || document.documentElement.scrollHeight - document.documentElement.clientHeight,
                        s = i * n / 100,
                        o = i + s + i * r / 100;
                    return (document.documentElement.scrollTop + document.body.scrollTop + s) / o * 100
                }
            }
        },
        2425: (e, t, n) => {
            "use strict";
            var r = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            var i = r(n(641));
            t.default = i.default.extend({
                elements: null,
                getDefaultElements: () => ({}),
                bindEvents() {},
                onInit() {
                    this.initElements(), this.bindEvents()
                },
                initElements() {
                    this.elements = this.getDefaultElements()
                }
            })
        },
        1265: (e, t, n) => {
            "use strict";
            var r = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            var i = r(n(641)),
                s = r(n(2425)),
                o = r(n(2946)),
                a = r(n(3980)),
                l = r(n(2970)),
                c = r(n(8685));
            t.default = window.elementorModules = {
                Module: i.default,
                ViewModule: s.default,
                ArgsObject: o.default,
                ForceMethodImplementation: c.default,
                utils: {
                    Masonry: a.default,
                    Scroll: l.default
                }
            }
        },
        4328: (e, t, n) => {
            "use strict";
            var r = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0, n(4846), n(7458), n(6211);
            var i = r(n(7224)),
                s = n(7557);
            class NestedTabs extends i.default {
                getTabTitleFilterSelector(e) {
                    return `[${this.getSettings("dataAttributes").tabIndex}="${e}"]`
                }
                getTabContentFilterSelector(e) {
                    return `*:nth-child(${e})`
                }
                getTabIndex(e) {
                    return e.getAttribute(this.getSettings("dataAttributes").tabIndex)
                }
                getActiveTabIndex() {
                    const e = this.getSettings(),
                        t = e.ariaAttributes.activeTitleSelector,
                        n = e.dataAttributes.tabIndex;
                    return this.elements.$tabTitles.filter(t).attr(n) || null
                }
                getWidgetNumber() {
                    return this.$element.find("> .elementor-widget-container > .e-n-tabs, > .e-n-tabs").attr("data-widget-number")
                }
                getDefaultSettings() {
                    const e = this.getWidgetNumber();
                    return {
                        selectors: {
                            widgetContainer: `[data-widget-number="${e}"]`,
                            tabTitle: `[aria-controls*="e-n-tab-content-${e}"]`,
                            tabTitleIcon: `[id*="e-n-tab-title-${e}"] > .e-n-tab-icon`,
                            tabTitleText: `[id*="e-n-tab-title-${e}"] > .e-n-tab-title-text`,
                            tabContent: `[data-widget-number="${e}"] > .e-n-tabs-content > .e-con`,
                            headingContainer: `[data-widget-number="${e}"] > .e-n-tabs-heading`,
                            activeTabContentContainers: `[id*="e-n-tab-content-${e}"].e-active`
                        },
                        classes: {
                            active: "e-active"
                        },
                        dataAttributes: {
                            tabIndex: "data-tab-index"
                        },
                        ariaAttributes: {
                            titleStateAttribute: "aria-selected",
                            activeTitleSelector: '[aria-selected="true"]'
                        },
                        showTabFn: "show",
                        hideTabFn: "hide",
                        toggleSelf: !1,
                        hidePrevious: !0,
                        autoExpand: !0
                    }
                }
                getDefaultElements() {
                    const e = this.getSettings("selectors");
                    return {
                        $widgetContainer: this.findElement(e.widgetContainer),
                        $tabTitles: this.findElement(e.tabTitle),
                        $tabContents: this.findElement(e.tabContent),
                        $headingContainer: this.findElement(e.headingContainer)
                    }
                }
                getKeyboardNavigationSettings() {
                    return this.getSettings()
                }
                activateDefaultTab() {
                    const e = this.getSettings(),
                        t = this.getEditSettings("activeItemIndex") || 1,
                        n = {
                            showTabFn: e.showTabFn,
                            hideTabFn: e.hideTabFn
                        };
                    this.setSettings({
                        showTabFn: "show",
                        hideTabFn: "hide"
                    }), this.changeActiveTab(t), this.setSettings(n), this.elements.$widgetContainer.addClass("e-activated")
                }
                deactivateActiveTab(e) {
                    const t = this.getSettings(),
                        n = t.classes.active,
                        r = t.ariaAttributes.activeTitleSelector,
                        i = "." + n,
                        s = this.elements.$tabTitles.filter(r),
                        o = this.elements.$tabContents.filter(i);
                    return this.setTabDeactivationAttributes(s, e), o.removeClass(n), o[t.hideTabFn](0, (() => this.onHideTabContent(o))), o
                }
                getTitleActivationAttributes() {
                    const e = this.getSettings("ariaAttributes").titleStateAttribute;
                    return {
                        tabindex: "0",
                        [e]: "true"
                    }
                }
                setTabDeactivationAttributes(e) {
                    const t = this.getSettings("ariaAttributes").titleStateAttribute;
                    e.attr({
                        tabindex: "-1",
                        [t]: "false"
                    })
                }
                onHideTabContent() {}
                activateTab(e) {
                    const t = this.getSettings(),
                        n = t.classes.active,
                        r = "show" === t.showTabFn ? 0 : 400;
                    let i = this.elements.$tabTitles.filter(this.getTabTitleFilterSelector(e)),
                        s = this.elements.$tabContents.filter(this.getTabContentFilterSelector(e));
                    if (!i.length) {
                        const t = Math.max(e - 1, 1);
                        i = this.elements.$tabTitles.filter(this.getTabTitleFilterSelector(t)), s = this.elements.$tabContents.filter(this.getTabContentFilterSelector(t))
                    }
                    i.attr(this.getTitleActivationAttributes()), s.addClass(n), s[t.showTabFn](r, (() => this.onShowTabContent(s)))
                }
                onShowTabContent(e) {
                    elementorFrontend.elements.$window.trigger("elementor-pro/motion-fx/recalc"), elementorFrontend.elements.$window.trigger("elementor/nested-tabs/activate", e), elementorFrontend.elements.$window.trigger("elementor/bg-video/recalc")
                }
                isActiveTab(e) {
                    const t = this.getSettings(),
                        n = "true" === this.elements.$tabTitles.filter(`[${t.dataAttributes.tabIndex}="${e}"]`).attr(t.ariaAttributes.titleStateAttribute),
                        r = this.elements.$tabContents.filter(this.getTabContentFilterSelector(e)).hasClass(this.getActiveClass());
                    return n && r
                }
                onTabClick(e) {
                    e.preventDefault(), this.changeActiveTab(e.currentTarget ? .getAttribute(this.getSettings("dataAttributes").tabIndex), !0)
                }
                getTabEvents() {
                    return {
                        click: this.onTabClick.bind(this)
                    }
                }
                getHeadingEvents() {
                    const e = this.elements.$headingContainer[0];
                    return {
                        mousedown: s.changeScrollStatus.bind(this, e),
                        mouseup: s.changeScrollStatus.bind(this, e),
                        mouseleave: s.changeScrollStatus.bind(this, e),
                        mousemove: s.setHorizontalTitleScrollValues.bind(this, e, this.getHorizontalScrollSetting())
                    }
                }
                bindEvents() {
                    this.elements.$tabTitles.on(this.getTabEvents()), this.elements.$headingContainer.on(this.getHeadingEvents()), elementorFrontend.elements.$window.on("resize", this.onResizeUpdateHorizontalScrolling.bind(this)), elementorFrontend.elements.$window.on("resize", this.setTouchMode.bind(this)), elementorFrontend.elements.$window.on("elementor/nested-tabs/activate", this.reInitSwipers), elementorFrontend.elements.$window.on("elementor/nested-elements/activate-by-keyboard", this.changeActiveTabByKeyboard.bind(this)), elementorFrontend.elements.$window.on("elementor/nested-container/atomic-repeater", this.linkContainer.bind(this))
                }
                unbindEvents() {
                    this.elements.$tabTitles.off(), this.elements.$headingContainer.off(), this.elements.$tabContents.children().off(), elementorFrontend.elements.$window.off("resize", this.onResizeUpdateHorizontalScrolling.bind(this)), elementorFrontend.elements.$window.off("resize", this.setTouchMode.bind(this)), elementorFrontend.elements.$window.off("elementor/nested-tabs/activate", this.reInitSwipers), elementorFrontend.elements.$window.off("elementor/nested-elements/activate-by-keyboard", this.changeActiveTabByKeyboard.bind(this)), elementorFrontend.elements.$window.off("elementor/nested-container/atomic-repeater", this.linkContainer.bind(this))
                }
                reInitSwipers(e, t) {
                    const n = t.querySelectorAll(".swiper");
                    for (const e of n) {
                        if (!e.swiper) return;
                        e.swiper.initialized = !1, e.swiper.init()
                    }
                }
                onInit() {
                    super.onInit(...arguments), this.getSettings("autoExpand") && this.activateDefaultTab(), (0, s.setHorizontalScrollAlignment)(this.getHorizontalScrollingSettings()), this.setTouchMode(), "nested-tabs.default" === this.getSettings("elementName") && n.e(304).then(n.bind(n, 7469)).then((e => {
                        let {
                            default: t
                        } = e;
                        new t(this.getKeyboardNavigationSettings())
                    })).catch((e => {
                        console.error("Error importing module:", e)
                    }))
                }
                onEditSettingsChange(e, t) {
                    "activeItemIndex" === e && this.changeActiveTab(t, !1)
                }
                onElementChange(e) {
                    this.checkSliderPropsToWatch(e) && (0, s.setHorizontalScrollAlignment)(this.getHorizontalScrollingSettings())
                }
                checkSliderPropsToWatch(e) {
                    return 0 === e.indexOf("horizontal_scroll") || "breakpoint_selector" === e || 0 === e.indexOf("tabs_justify_horizontal") || 0 === e.indexOf("tabs_title_space_between")
                }
                changeActiveTab(e) {
                    if (arguments.length > 1 && void 0 !== arguments[1] && arguments[1] && this.isEdit && this.isElementInTheCurrentDocument()) return window.top.$e.run("document/repeater/select", {
                        container: elementor.getContainer(this.$element.attr("data-id")),
                        index: parseInt(e)
                    });
                    const t = this.isActiveTab(e),
                        n = this.getSettings();
                    if (!n.toggleSelf && t || !n.hidePrevious || this.deactivateActiveTab(e), !n.hidePrevious && t && this.deactivateActiveTab(e), !t) {
                        if (this.isAccordionVersion()) return void this.activateMobileTab(e);
                        this.activateTab(e)
                    }
                }
                changeActiveTabByKeyboard(e, t) {
                    t.widgetId.toString() === this.getID().toString() && this.changeActiveTab(t.titleIndex, !0)
                }
                activateMobileTab(e) {
                    setTimeout((() => {
                        this.activateTab(e), this.forceActiveTabToBeInViewport(e)
                    }), 10)
                }
                forceActiveTabToBeInViewport(e) {
                    if (!elementorFrontend.isEditMode()) return;
                    const t = this.elements.$tabTitles.filter(this.getTabTitleFilterSelector(e));
                    elementor.helpers.isInViewport(t[0]) || t[0].scrollIntoView({
                        block: "center"
                    })
                }
                getActiveClass() {
                    return this.getSettings().classes.active
                }
                getTabsDirection() {
                    const e = elementorFrontend.getCurrentDeviceMode();
                    return elementorFrontend.utils.controls.getResponsiveControlValue(this.getElementSettings(), "tabs_justify_horizontal", "", e)
                }
                getHorizontalScrollSetting() {
                    const e = elementorFrontend.getCurrentDeviceMode();
                    return elementorFrontend.utils.controls.getResponsiveControlValue(this.getElementSettings(), "horizontal_scroll", "", e)
                }
                isAccordionVersion() {
                    return "contents" === this.elements.$headingContainer.css("display")
                }
                setTouchMode() {
                    const e = this.getSettings("selectors").widgetContainer;
                    if (elementorFrontend.isEditMode() || "resize" === event ? .type) {
                        const t = ["mobile", "mobile_extra", "tablet", "tablet_extra"],
                            n = elementorFrontend.getCurrentDeviceMode();
                        if (-1 !== t.indexOf(n)) return void this.$element.find(e).attr("data-touch-mode", "true")
                    } else if ("ontouchstart" in window) return void this.$element.find(e).attr("data-touch-mode", "true");
                    this.$element.find(e).attr("data-touch-mode", "false")
                }
                linkContainer(e) {
                    const {
                        container: t
                    } = e.detail, n = t.model.get("id"), r = this.$element.data("id"), i = t.view.$el;
                    if (n === r && (this.updateIndexValues(), this.updateListeners(i), elementor.$preview[0].contentWindow.dispatchEvent(new CustomEvent("elementor/elements/link-data-bindings"))), !this.getActiveTabIndex()) {
                        const t = e.detail.index + 1 || 1;
                        this.changeActiveTab(t)
                    }
                }
                updateListeners(e) {
                    this.elements.$tabContents = e.find(this.getSettings("selectors.tabContent")), this.elements.$tabTitles = e.find(this.getSettings("selectors.tabTitle")), this.elements.$tabTitles.on(this.getTabEvents())
                }
                updateIndexValues() {
                    const {
                        $widgetContainer: e,
                        $tabContents: t,
                        $tabTitles: n
                    } = this.getDefaultElements(), r = this.getSettings(), i = r.dataAttributes.tabIndex, s = e.data("widgetNumber");
                    n.each(((e, n) => {
                        const o = e + 1,
                            a = `e-n-tab-title-${s}${o}`,
                            l = `e-n-tab-content-${s}${o}`;
                        n.setAttribute("id", a), n.setAttribute("style", `--n-tabs-title-order: ${o}`), n.setAttribute(i, o), n.setAttribute("aria-controls", l), n.querySelector(r.selectors.tabTitleIcon) ? .setAttribute("data-binding-index", o), n.querySelector(r.selectors.tabTitleText).setAttribute("data-binding-index", o), t[e].setAttribute("aria-labelledby", a), t[e].setAttribute(i, o), t[e].setAttribute("id", l), t[e].setAttribute("style", `--n-tabs-title-order: ${o}`)
                    }))
                }
                onResizeUpdateHorizontalScrolling() {
                    (0, s.setHorizontalScrollAlignment)(this.getHorizontalScrollingSettings())
                }
                getHorizontalScrollingSettings() {
                    return {
                        element: this.elements.$headingContainer[0],
                        direction: this.getTabsDirection(),
                        justifyCSSVariable: "--n-tabs-heading-justify-content",
                        horizontalScrollStatus: this.getHorizontalScrollSetting()
                    }
                }
            }
            t.default = NestedTabs
        },
        6784: e => {
            e.exports = function _interopRequireDefault(e) {
                return e && e.__esModule ? e : {
                    default: e
                }
            }, e.exports.__esModule = !0, e.exports.default = e.exports
        },
        8120: (e, t, n) => {
            "use strict";
            var r = n(1483),
                i = n(8761),
                s = TypeError;
            e.exports = function(e) {
                if (r(e)) return e;
                throw new s(i(e) + " is not a function")
            }
        },
        7095: (e, t, n) => {
            "use strict";
            var r = n(1),
                i = n(5290),
                s = n(5835).f,
                o = r("unscopables"),
                a = Array.prototype;
            void 0 === a[o] && s(a, o, {
                configurable: !0,
                value: i(null)
            }), e.exports = function(e) {
                a[o][e] = !0
            }
        },
        6021: (e, t, n) => {
            "use strict";
            var r = n(4815),
                i = TypeError;
            e.exports = function(e, t) {
                if (r(t, e)) return e;
                throw new i("Incorrect invocation")
            }
        },
        2293: (e, t, n) => {
            "use strict";
            var r = n(1704),
                i = String,
                s = TypeError;
            e.exports = function(e) {
                if (r(e)) return e;
                throw new s(i(e) + " is not an object")
            }
        },
        6651: (e, t, n) => {
            "use strict";
            var r = n(5599),
                i = n(3392),
                s = n(6960),
                createMethod = function(e) {
                    return function(t, n, o) {
                        var a = r(t),
                            l = s(a);
                        if (0 === l) return !e && -1;
                        var c, u = i(o, l);
                        if (e && n != n) {
                            for (; l > u;)
                                if ((c = a[u++]) != c) return !0
                        } else
                            for (; l > u; u++)
                                if ((e || u in a) && a[u] === n) return e || u || 0;
                        return !e && -1
                    }
                };
            e.exports = {
                includes: createMethod(!0),
                indexOf: createMethod(!1)
            }
        },
        9273: (e, t, n) => {
            "use strict";
            var r = n(382),
                i = n(4914),
                s = TypeError,
                o = Object.getOwnPropertyDescriptor,
                a = r && ! function() {
                    if (void 0 !== this) return !0;
                    try {
                        Object.defineProperty([], "length", {
                            writable: !1
                        }).length = 1
                    } catch (e) {
                        return e instanceof TypeError
                    }
                }();
            e.exports = a ? function(e, t) {
                if (i(e) && !o(e, "length").writable) throw new s("Cannot set read only .length");
                return e.length = t
            } : function(e, t) {
                return e.length = t
            }
        },
        8901: (e, t, n) => {
            "use strict";
            var r = n(2293),
                i = n(6721);
            e.exports = function(e, t, n, s) {
                try {
                    return s ? t(r(n)[0], n[1]) : t(n)
                } catch (t) {
                    i(e, "throw", t)
                }
            }
        },
        1278: (e, t, n) => {
            "use strict";
            var r = n(4762),
                i = r({}.toString),
                s = r("".slice);
            e.exports = function(e) {
                return s(i(e), 8, -1)
            }
        },
        6145: (e, t, n) => {
            "use strict";
            var r = n(4338),
                i = n(1483),
                s = n(1278),
                o = n(1)("toStringTag"),
                a = Object,
                l = "Arguments" === s(function() {
                    return arguments
                }());
            e.exports = r ? s : function(e) {
                var t, n, r;
                return void 0 === e ? "Undefined" : null === e ? "Null" : "string" == typeof(n = function(e, t) {
                    try {
                        return e[t]
                    } catch (e) {}
                }(t = a(e), o)) ? n : l ? s(t) : "Object" === (r = s(t)) && i(t.callee) ? "Arguments" : r
            }
        },
        6726: (e, t, n) => {
            "use strict";
            var r = n(5755),
                i = n(9497),
                s = n(4961),
                o = n(5835);
            e.exports = function(e, t, n) {
                for (var a = i(t), l = o.f, c = s.f, u = 0; u < a.length; u++) {
                    var d = a[u];
                    r(e, d) || n && r(n, d) || l(e, d, c(t, d))
                }
            }
        },
        9441: (e, t, n) => {
            "use strict";
            var r = n(8473);
            e.exports = !r((function() {
                function F() {}
                return F.prototype.constructor = null, Object.getPrototypeOf(new F) !== F.prototype
            }))
        },
        5247: e => {
            "use strict";
            e.exports = function(e, t) {
                return {
                    value: e,
                    done: t
                }
            }
        },
        9037: (e, t, n) => {
            "use strict";
            var r = n(382),
                i = n(5835),
                s = n(7738);
            e.exports = r ? function(e, t, n) {
                return i.f(e, t, s(1, n))
            } : function(e, t, n) {
                return e[t] = n, e
            }
        },
        7738: e => {
            "use strict";
            e.exports = function(e, t) {
                return {
                    enumerable: !(1 & e),
                    configurable: !(2 & e),
                    writable: !(4 & e),
                    value: t
                }
            }
        },
        670: (e, t, n) => {
            "use strict";
            var r = n(382),
                i = n(5835),
                s = n(7738);
            e.exports = function(e, t, n) {
                r ? i.f(e, t, s(0, n)) : e[t] = n
            }
        },
        3864: (e, t, n) => {
            "use strict";
            var r = n(169),
                i = n(5835);
            e.exports = function(e, t, n) {
                return n.get && r(n.get, t, {
                    getter: !0
                }), n.set && r(n.set, t, {
                    setter: !0
                }), i.f(e, t, n)
            }
        },
        7914: (e, t, n) => {
            "use strict";
            var r = n(1483),
                i = n(5835),
                s = n(169),
                o = n(2095);
            e.exports = function(e, t, n, a) {
                a || (a = {});
                var l = a.enumerable,
                    c = void 0 !== a.name ? a.name : t;
                if (r(n) && s(n, c, a), a.global) l ? e[t] = n : o(t, n);
                else {
                    try {
                        a.unsafe ? e[t] && (l = !0) : delete e[t]
                    } catch (e) {}
                    l ? e[t] = n : i.f(e, t, {
                        value: n,
                        enumerable: !1,
                        configurable: !a.nonConfigurable,
                        writable: !a.nonWritable
                    })
                }
                return e
            }
        },
        2313: (e, t, n) => {
            "use strict";
            var r = n(7914);
            e.exports = function(e, t, n) {
                for (var i in t) r(e, i, t[i], n);
                return e
            }
        },
        2095: (e, t, n) => {
            "use strict";
            var r = n(5578),
                i = Object.defineProperty;
            e.exports = function(e, t) {
                try {
                    i(r, e, {
                        value: t,
                        configurable: !0,
                        writable: !0
                    })
                } catch (n) {
                    r[e] = t
                }
                return t
            }
        },
        382: (e, t, n) => {
            "use strict";
            var r = n(8473);
            e.exports = !r((function() {
                return 7 !== Object.defineProperty({}, 1, {
                    get: function() {
                        return 7
                    }
                })[1]
            }))
        },
        3145: (e, t, n) => {
            "use strict";
            var r = n(5578),
                i = n(1704),
                s = r.document,
                o = i(s) && i(s.createElement);
            e.exports = function(e) {
                return o ? s.createElement(e) : {}
            }
        },
        1091: e => {
            "use strict";
            var t = TypeError;
            e.exports = function(e) {
                if (e > 9007199254740991) throw t("Maximum allowed index exceeded");
                return e
            }
        },
        4741: e => {
            "use strict";
            e.exports = ["constructor", "hasOwnProperty", "isPrototypeOf", "propertyIsEnumerable", "toLocaleString", "toString", "valueOf"]
        },
        9461: (e, t, n) => {
            "use strict";
            var r = n(5578).navigator,
                i = r && r.userAgent;
            e.exports = i ? String(i) : ""
        },
        6477: (e, t, n) => {
            "use strict";
            var r, i, s = n(5578),
                o = n(9461),
                a = s.process,
                l = s.Deno,
                c = a && a.versions || l && l.version,
                u = c && c.v8;
            u && (i = (r = u.split("."))[0] > 0 && r[0] < 4 ? 1 : +(r[0] + r[1])), !i && o && (!(r = o.match(/Edge\/(\d+)/)) || r[1] >= 74) && (r = o.match(/Chrome\/(\d+)/)) && (i = +r[1]), e.exports = i
        },
        8612: (e, t, n) => {
            "use strict";
            var r = n(5578),
                i = n(4961).f,
                s = n(9037),
                o = n(7914),
                a = n(2095),
                l = n(6726),
                c = n(8730);
            e.exports = function(e, t) {
                var n, u, d, h, g, p = e.target,
                    f = e.global,
                    m = e.stat;
                if (n = f ? r : m ? r[p] || a(p, {}) : r[p] && r[p].prototype)
                    for (u in t) {
                        if (h = t[u], d = e.dontCallGetSet ? (g = i(n, u)) && g.value : n[u], !c(f ? u : p + (m ? "." : "#") + u, e.forced) && void 0 !== d) {
                            if (typeof h == typeof d) continue;
                            l(h, d)
                        }(e.sham || d && d.sham) && s(h, "sham", !0), o(n, u, h, e)
                    }
            }
        },
        8473: e => {
            "use strict";
            e.exports = function(e) {
                try {
                    return !!e()
                } catch (e) {
                    return !0
                }
            }
        },
        2914: (e, t, n) => {
            "use strict";
            var r = n(3786),
                i = n(8120),
                s = n(274),
                o = r(r.bind);
            e.exports = function(e, t) {
                return i(e), void 0 === t ? e : s ? o(e, t) : function() {
                    return e.apply(t, arguments)
                }
            }
        },
        274: (e, t, n) => {
            "use strict";
            var r = n(8473);
            e.exports = !r((function() {
                var e = function() {}.bind();
                return "function" != typeof e || e.hasOwnProperty("prototype")
            }))
        },
        1807: (e, t, n) => {
            "use strict";
            var r = n(274),
                i = Function.prototype.call;
            e.exports = r ? i.bind(i) : function() {
                return i.apply(i, arguments)
            }
        },
        2048: (e, t, n) => {
            "use strict";
            var r = n(382),
                i = n(5755),
                s = Function.prototype,
                o = r && Object.getOwnPropertyDescriptor,
                a = i(s, "name"),
                l = a && "something" === function something() {}.name,
                c = a && (!r || r && o(s, "name").configurable);
            e.exports = {
                EXISTS: a,
                PROPER: l,
                CONFIGURABLE: c
            }
        },
        3786: (e, t, n) => {
            "use strict";
            var r = n(1278),
                i = n(4762);
            e.exports = function(e) {
                if ("Function" === r(e)) return i(e)
            }
        },
        4762: (e, t, n) => {
            "use strict";
            var r = n(274),
                i = Function.prototype,
                s = i.call,
                o = r && i.bind.bind(s, s);
            e.exports = r ? o : function(e) {
                return function() {
                    return s.apply(e, arguments)
                }
            }
        },
        1409: (e, t, n) => {
            "use strict";
            var r = n(5578),
                i = n(1483);
            e.exports = function(e, t) {
                return arguments.length < 2 ? (n = r[e], i(n) ? n : void 0) : r[e] && r[e][t];
                var n
            }
        },
        41: e => {
            "use strict";
            e.exports = function(e) {
                return {
                    iterator: e,
                    next: e.next,
                    done: !1
                }
            }
        },
        6665: (e, t, n) => {
            "use strict";
            var r = n(6145),
                i = n(2564),
                s = n(5983),
                o = n(6775),
                a = n(1)("iterator");
            e.exports = function(e) {
                if (!s(e)) return i(e, a) || i(e, "@@iterator") || o[r(e)]
            }
        },
        4887: (e, t, n) => {
            "use strict";
            var r = n(1807),
                i = n(8120),
                s = n(2293),
                o = n(8761),
                a = n(6665),
                l = TypeError;
            e.exports = function(e, t) {
                var n = arguments.length < 2 ? a(e) : t;
                if (i(n)) return s(r(n, e));
                throw new l(o(e) + " is not iterable")
            }
        },
        2564: (e, t, n) => {
            "use strict";
            var r = n(8120),
                i = n(5983);
            e.exports = function(e, t) {
                var n = e[t];
                return i(n) ? void 0 : r(n)
            }
        },
        5578: function(e, t, n) {
            "use strict";
            var check = function(e) {
                return e && e.Math === Math && e
            };
            e.exports = check("object" == typeof globalThis && globalThis) || check("object" == typeof window && window) || check("object" == typeof self && self) || check("object" == typeof n.g && n.g) || check("object" == typeof this && this) || function() {
                return this
            }() || Function("return this")()
        },
        5755: (e, t, n) => {
            "use strict";
            var r = n(4762),
                i = n(2347),
                s = r({}.hasOwnProperty);
            e.exports = Object.hasOwn || function hasOwn(e, t) {
                return s(i(e), t)
            }
        },
        1507: e => {
            "use strict";
            e.exports = {}
        },
        2811: (e, t, n) => {
            "use strict";
            var r = n(1409);
            e.exports = r("document", "documentElement")
        },
        1799: (e, t, n) => {
            "use strict";
            var r = n(382),
                i = n(8473),
                s = n(3145);
            e.exports = !r && !i((function() {
                return 7 !== Object.defineProperty(s("div"), "a", {
                    get: function() {
                        return 7
                    }
                }).a
            }))
        },
        2121: (e, t, n) => {
            "use strict";
            var r = n(4762),
                i = n(8473),
                s = n(1278),
                o = Object,
                a = r("".split);
            e.exports = i((function() {
                return !o("z").propertyIsEnumerable(0)
            })) ? function(e) {
                return "String" === s(e) ? a(e, "") : o(e)
            } : o
        },
        7268: (e, t, n) => {
            "use strict";
            var r = n(4762),
                i = n(1483),
                s = n(1831),
                o = r(Function.toString);
            i(s.inspectSource) || (s.inspectSource = function(e) {
                return o(e)
            }), e.exports = s.inspectSource
        },
        4483: (e, t, n) => {
            "use strict";
            var r, i, s, o = n(4644),
                a = n(5578),
                l = n(1704),
                c = n(9037),
                u = n(5755),
                d = n(1831),
                h = n(5409),
                g = n(1507),
                p = "Object already initialized",
                f = a.TypeError,
                m = a.WeakMap;
            if (o || d.state) {
                var v = d.state || (d.state = new m);
                v.get = v.get, v.has = v.has, v.set = v.set, r = function(e, t) {
                    if (v.has(e)) throw new f(p);
                    return t.facade = e, v.set(e, t), t
                }, i = function(e) {
                    return v.get(e) || {}
                }, s = function(e) {
                    return v.has(e)
                }
            } else {
                var b = h("state");
                g[b] = !0, r = function(e, t) {
                    if (u(e, b)) throw new f(p);
                    return t.facade = e, c(e, b, t), t
                }, i = function(e) {
                    return u(e, b) ? e[b] : {}
                }, s = function(e) {
                    return u(e, b)
                }
            }
            e.exports = {
                set: r,
                get: i,
                has: s,
                enforce: function(e) {
                    return s(e) ? i(e) : r(e, {})
                },
                getterFor: function(e) {
                    return function(t) {
                        var n;
                        if (!l(t) || (n = i(t)).type !== e) throw new f("Incompatible receiver, " + e + " required");
                        return n
                    }
                }
            }
        },
        5299: (e, t, n) => {
            "use strict";
            var r = n(1),
                i = n(6775),
                s = r("iterator"),
                o = Array.prototype;
            e.exports = function(e) {
                return void 0 !== e && (i.Array === e || o[s] === e)
            }
        },
        4914: (e, t, n) => {
            "use strict";
            var r = n(1278);
            e.exports = Array.isArray || function isArray(e) {
                return "Array" === r(e)
            }
        },
        1483: e => {
            "use strict";
            var t = "object" == typeof document && document.all;
            e.exports = void 0 === t && void 0 !== t ? function(e) {
                return "function" == typeof e || e === t
            } : function(e) {
                return "function" == typeof e
            }
        },
        8730: (e, t, n) => {
            "use strict";
            var r = n(8473),
                i = n(1483),
                s = /#|\.prototype\./,
                isForced = function(e, t) {
                    var n = a[o(e)];
                    return n === c || n !== l && (i(t) ? r(t) : !!t)
                },
                o = isForced.normalize = function(e) {
                    return String(e).replace(s, ".").toLowerCase()
                },
                a = isForced.data = {},
                l = isForced.NATIVE = "N",
                c = isForced.POLYFILL = "P";
            e.exports = isForced
        },
        5983: e => {
            "use strict";
            e.exports = function(e) {
                return null == e
            }
        },
        1704: (e, t, n) => {
            "use strict";
            var r = n(1483);
            e.exports = function(e) {
                return "object" == typeof e ? null !== e : r(e)
            }
        },
        9557: e => {
            "use strict";
            e.exports = !1
        },
        1423: (e, t, n) => {
            "use strict";
            var r = n(1409),
                i = n(1483),
                s = n(4815),
                o = n(5022),
                a = Object;
            e.exports = o ? function(e) {
                return "symbol" == typeof e
            } : function(e) {
                var t = r("Symbol");
                return i(t) && s(t.prototype, a(e))
            }
        },
        1506: (e, t, n) => {
            "use strict";
            var r = n(2914),
                i = n(1807),
                s = n(2293),
                o = n(8761),
                a = n(5299),
                l = n(6960),
                c = n(4815),
                u = n(4887),
                d = n(6665),
                h = n(6721),
                g = TypeError,
                Result = function(e, t) {
                    this.stopped = e, this.result = t
                },
                p = Result.prototype;
            e.exports = function(e, t, n) {
                var f, m, v, b, y, w, S, x = n && n.that,
                    C = !(!n || !n.AS_ENTRIES),
                    T = !(!n || !n.IS_RECORD),
                    E = !(!n || !n.IS_ITERATOR),
                    $ = !(!n || !n.INTERRUPTED),
                    I = r(t, x),
                    stop = function(e) {
                        return f && h(f, "normal", e), new Result(!0, e)
                    },
                    callFn = function(e) {
                        return C ? (s(e), $ ? I(e[0], e[1], stop) : I(e[0], e[1])) : $ ? I(e, stop) : I(e)
                    };
                if (T) f = e.iterator;
                else if (E) f = e;
                else {
                    if (!(m = d(e))) throw new g(o(e) + " is not iterable");
                    if (a(m)) {
                        for (v = 0, b = l(e); b > v; v++)
                            if ((y = callFn(e[v])) && c(p, y)) return y;
                        return new Result(!1)
                    }
                    f = u(e, m)
                }
                for (w = T ? e.next : f.next; !(S = i(w, f)).done;) {
                    try {
                        y = callFn(S.value)
                    } catch (e) {
                        h(f, "throw", e)
                    }
                    if ("object" == typeof y && y && c(p, y)) return y
                }
                return new Result(!1)
            }
        },
        6721: (e, t, n) => {
            "use strict";
            var r = n(1807),
                i = n(2293),
                s = n(2564);
            e.exports = function(e, t, n) {
                var o, a;
                i(e);
                try {
                    if (!(o = s(e, "return"))) {
                        if ("throw" === t) throw n;
                        return n
                    }
                    o = r(o, e)
                } catch (e) {
                    a = !0, o = e
                }
                if ("throw" === t) throw n;
                if (a) throw o;
                return i(o), n
            }
        },
        8660: (e, t, n) => {
            "use strict";
            var r = n(1807),
                i = n(5290),
                s = n(9037),
                o = n(2313),
                a = n(1),
                l = n(4483),
                c = n(2564),
                u = n(1851).IteratorPrototype,
                d = n(5247),
                h = n(6721),
                g = a("toStringTag"),
                p = "IteratorHelper",
                f = "WrapForValidIterator",
                m = l.set,
                createIteratorProxyPrototype = function(e) {
                    var t = l.getterFor(e ? f : p);
                    return o(i(u), {
                        next: function next() {
                            var n = t(this);
                            if (e) return n.nextHandler();
                            try {
                                var r = n.done ? void 0 : n.nextHandler();
                                return d(r, n.done)
                            } catch (e) {
                                throw n.done = !0, e
                            }
                        },
                        return: function() {
                            var n = t(this),
                                i = n.iterator;
                            if (n.done = !0, e) {
                                var s = c(i, "return");
                                return s ? r(s, i) : d(void 0, !0)
                            }
                            if (n.inner) try {
                                h(n.inner.iterator, "normal")
                            } catch (e) {
                                return h(i, "throw", e)
                            }
                            return i && h(i, "normal"), d(void 0, !0)
                        }
                    })
                },
                v = createIteratorProxyPrototype(!0),
                b = createIteratorProxyPrototype(!1);
            s(b, g, "Iterator Helper"), e.exports = function(e, t) {
                var n = function Iterator(n, r) {
                    r ? (r.iterator = n.iterator, r.next = n.next) : r = n, r.type = t ? f : p, r.nextHandler = e, r.counter = 0, r.done = !1, m(this, r)
                };
                return n.prototype = t ? v : b, n
            }
        },
        1851: (e, t, n) => {
            "use strict";
            var r, i, s, o = n(8473),
                a = n(1483),
                l = n(1704),
                c = n(5290),
                u = n(3181),
                d = n(7914),
                h = n(1),
                g = n(9557),
                p = h("iterator"),
                f = !1;
            [].keys && ("next" in (s = [].keys()) ? (i = u(u(s))) !== Object.prototype && (r = i) : f = !0), !l(r) || o((function() {
                var e = {};
                return r[p].call(e) !== e
            })) ? r = {} : g && (r = c(r)), a(r[p]) || d(r, p, (function() {
                return this
            })), e.exports = {
                IteratorPrototype: r,
                BUGGY_SAFARI_ITERATORS: f
            }
        },
        6775: e => {
            "use strict";
            e.exports = {}
        },
        6960: (e, t, n) => {
            "use strict";
            var r = n(8324);
            e.exports = function(e) {
                return r(e.length)
            }
        },
        169: (e, t, n) => {
            "use strict";
            var r = n(4762),
                i = n(8473),
                s = n(1483),
                o = n(5755),
                a = n(382),
                l = n(2048).CONFIGURABLE,
                c = n(7268),
                u = n(4483),
                d = u.enforce,
                h = u.get,
                g = String,
                p = Object.defineProperty,
                f = r("".slice),
                m = r("".replace),
                v = r([].join),
                b = a && !i((function() {
                    return 8 !== p((function() {}), "length", {
                        value: 8
                    }).length
                })),
                y = String(String).split("String"),
                w = e.exports = function(e, t, n) {
                    "Symbol(" === f(g(t), 0, 7) && (t = "[" + m(g(t), /^Symbol\(([^)]*)\).*$/, "$1") + "]"), n && n.getter && (t = "get " + t), n && n.setter && (t = "set " + t), (!o(e, "name") || l && e.name !== t) && (a ? p(e, "name", {
                        value: t,
                        configurable: !0
                    }) : e.name = t), b && n && o(n, "arity") && e.length !== n.arity && p(e, "length", {
                        value: n.arity
                    });
                    try {
                        n && o(n, "constructor") && n.constructor ? a && p(e, "prototype", {
                            writable: !1
                        }) : e.prototype && (e.prototype = void 0)
                    } catch (e) {}
                    var r = d(e);
                    return o(r, "source") || (r.source = v(y, "string" == typeof t ? t : "")), e
                };
            Function.prototype.toString = w((function toString() {
                return s(this) && h(this).source || c(this)
            }), "toString")
        },
        1703: e => {
            "use strict";
            var t = Math.ceil,
                n = Math.floor;
            e.exports = Math.trunc || function trunc(e) {
                var r = +e;
                return (r > 0 ? n : t)(r)
            }
        },
        5290: (e, t, n) => {
            "use strict";
            var r, i = n(2293),
                s = n(5799),
                o = n(4741),
                a = n(1507),
                l = n(2811),
                c = n(3145),
                u = n(5409),
                d = "prototype",
                h = "script",
                g = u("IE_PROTO"),
                EmptyConstructor = function() {},
                scriptTag = function(e) {
                    return "<" + h + ">" + e + "</" + h + ">"
                },
                NullProtoObjectViaActiveX = function(e) {
                    e.write(scriptTag("")), e.close();
                    var t = e.parentWindow.Object;
                    return e = null, t
                },
                NullProtoObject = function() {
                    try {
                        r = new ActiveXObject("htmlfile")
                    } catch (e) {}
                    var e, t, n;
                    NullProtoObject = "undefined" != typeof document ? document.domain && r ? NullProtoObjectViaActiveX(r) : (t = c("iframe"), n = "java" + h + ":", t.style.display = "none", l.appendChild(t), t.src = String(n), (e = t.contentWindow.document).open(), e.write(scriptTag("document.F=Object")), e.close(), e.F) : NullProtoObjectViaActiveX(r);
                    for (var i = o.length; i--;) delete NullProtoObject[d][o[i]];
                    return NullProtoObject()
                };
            a[g] = !0, e.exports = Object.create || function create(e, t) {
                var n;
                return null !== e ? (EmptyConstructor[d] = i(e), n = new EmptyConstructor, EmptyConstructor[d] = null, n[g] = e) : n = NullProtoObject(), void 0 === t ? n : s.f(n, t)
            }
        },
        5799: (e, t, n) => {
            "use strict";
            var r = n(382),
                i = n(3896),
                s = n(5835),
                o = n(2293),
                a = n(5599),
                l = n(3658);
            t.f = r && !i ? Object.defineProperties : function defineProperties(e, t) {
                o(e);
                for (var n, r = a(t), i = l(t), c = i.length, u = 0; c > u;) s.f(e, n = i[u++], r[n]);
                return e
            }
        },
        5835: (e, t, n) => {
            "use strict";
            var r = n(382),
                i = n(1799),
                s = n(3896),
                o = n(2293),
                a = n(3815),
                l = TypeError,
                c = Object.defineProperty,
                u = Object.getOwnPropertyDescriptor,
                d = "enumerable",
                h = "configurable",
                g = "writable";
            t.f = r ? s ? function defineProperty(e, t, n) {
                if (o(e), t = a(t), o(n), "function" == typeof e && "prototype" === t && "value" in n && g in n && !n[g]) {
                    var r = u(e, t);
                    r && r[g] && (e[t] = n.value, n = {
                        configurable: h in n ? n[h] : r[h],
                        enumerable: d in n ? n[d] : r[d],
                        writable: !1
                    })
                }
                return c(e, t, n)
            } : c : function defineProperty(e, t, n) {
                if (o(e), t = a(t), o(n), i) try {
                    return c(e, t, n)
                } catch (e) {}
                if ("get" in n || "set" in n) throw new l("Accessors not supported");
                return "value" in n && (e[t] = n.value), e
            }
        },
        4961: (e, t, n) => {
            "use strict";
            var r = n(382),
                i = n(1807),
                s = n(7611),
                o = n(7738),
                a = n(5599),
                l = n(3815),
                c = n(5755),
                u = n(1799),
                d = Object.getOwnPropertyDescriptor;
            t.f = r ? d : function getOwnPropertyDescriptor(e, t) {
                if (e = a(e), t = l(t), u) try {
                    return d(e, t)
                } catch (e) {}
                if (c(e, t)) return o(!i(s.f, e, t), e[t])
            }
        },
        2278: (e, t, n) => {
            "use strict";
            var r = n(6742),
                i = n(4741).concat("length", "prototype");
            t.f = Object.getOwnPropertyNames || function getOwnPropertyNames(e) {
                return r(e, i)
            }
        },
        4347: (e, t) => {
            "use strict";
            t.f = Object.getOwnPropertySymbols
        },
        3181: (e, t, n) => {
            "use strict";
            var r = n(5755),
                i = n(1483),
                s = n(2347),
                o = n(5409),
                a = n(9441),
                l = o("IE_PROTO"),
                c = Object,
                u = c.prototype;
            e.exports = a ? c.getPrototypeOf : function(e) {
                var t = s(e);
                if (r(t, l)) return t[l];
                var n = t.constructor;
                return i(n) && t instanceof n ? n.prototype : t instanceof c ? u : null
            }
        },
        4815: (e, t, n) => {
            "use strict";
            var r = n(4762);
            e.exports = r({}.isPrototypeOf)
        },
        6742: (e, t, n) => {
            "use strict";
            var r = n(4762),
                i = n(5755),
                s = n(5599),
                o = n(6651).indexOf,
                a = n(1507),
                l = r([].push);
            e.exports = function(e, t) {
                var n, r = s(e),
                    c = 0,
                    u = [];
                for (n in r) !i(a, n) && i(r, n) && l(u, n);
                for (; t.length > c;) i(r, n = t[c++]) && (~o(u, n) || l(u, n));
                return u
            }
        },
        3658: (e, t, n) => {
            "use strict";
            var r = n(6742),
                i = n(4741);
            e.exports = Object.keys || function keys(e) {
                return r(e, i)
            }
        },
        7611: (e, t) => {
            "use strict";
            var n = {}.propertyIsEnumerable,
                r = Object.getOwnPropertyDescriptor,
                i = r && !n.call({
                    1: 2
                }, 1);
            t.f = i ? function propertyIsEnumerable(e) {
                var t = r(this, e);
                return !!t && t.enumerable
            } : n
        },
        348: (e, t, n) => {
            "use strict";
            var r = n(1807),
                i = n(1483),
                s = n(1704),
                o = TypeError;
            e.exports = function(e, t) {
                var n, a;
                if ("string" === t && i(n = e.toString) && !s(a = r(n, e))) return a;
                if (i(n = e.valueOf) && !s(a = r(n, e))) return a;
                if ("string" !== t && i(n = e.toString) && !s(a = r(n, e))) return a;
                throw new o("Can't convert object to primitive value")
            }
        },
        9497: (e, t, n) => {
            "use strict";
            var r = n(1409),
                i = n(4762),
                s = n(2278),
                o = n(4347),
                a = n(2293),
                l = i([].concat);
            e.exports = r("Reflect", "ownKeys") || function ownKeys(e) {
                var t = s.f(a(e)),
                    n = o.f;
                return n ? l(t, n(e)) : t
            }
        },
        3312: (e, t, n) => {
            "use strict";
            var r = n(5983),
                i = TypeError;
            e.exports = function(e) {
                if (r(e)) throw new i("Can't call method on " + e);
                return e
            }
        },
        5409: (e, t, n) => {
            "use strict";
            var r = n(7255),
                i = n(1866),
                s = r("keys");
            e.exports = function(e) {
                return s[e] || (s[e] = i(e))
            }
        },
        1831: (e, t, n) => {
            "use strict";
            var r = n(9557),
                i = n(5578),
                s = n(2095),
                o = "__core-js_shared__",
                a = e.exports = i[o] || s(o, {});
            (a.versions || (a.versions = [])).push({
                version: "3.39.0",
                mode: r ? "pure" : "global",
                copyright: "© 2014-2024 Denis Pushkarev (zloirock.ru)",
                license: "https://github.com/zloirock/core-js/blob/v3.39.0/LICENSE",
                source: "https://github.com/zloirock/core-js"
            })
        },
        7255: (e, t, n) => {
            "use strict";
            var r = n(1831);
            e.exports = function(e, t) {
                return r[e] || (r[e] = t || {})
            }
        },
        6029: (e, t, n) => {
            "use strict";
            var r = n(6477),
                i = n(8473),
                s = n(5578).String;
            e.exports = !!Object.getOwnPropertySymbols && !i((function() {
                var e = Symbol("symbol detection");
                return !s(e) || !(Object(e) instanceof Symbol) || !Symbol.sham && r && r < 41
            }))
        },
        3392: (e, t, n) => {
            "use strict";
            var r = n(3005),
                i = Math.max,
                s = Math.min;
            e.exports = function(e, t) {
                var n = r(e);
                return n < 0 ? i(n + t, 0) : s(n, t)
            }
        },
        5599: (e, t, n) => {
            "use strict";
            var r = n(2121),
                i = n(3312);
            e.exports = function(e) {
                return r(i(e))
            }
        },
        3005: (e, t, n) => {
            "use strict";
            var r = n(1703);
            e.exports = function(e) {
                var t = +e;
                return t != t || 0 === t ? 0 : r(t)
            }
        },
        8324: (e, t, n) => {
            "use strict";
            var r = n(3005),
                i = Math.min;
            e.exports = function(e) {
                var t = r(e);
                return t > 0 ? i(t, 9007199254740991) : 0
            }
        },
        2347: (e, t, n) => {
            "use strict";
            var r = n(3312),
                i = Object;
            e.exports = function(e) {
                return i(r(e))
            }
        },
        2355: (e, t, n) => {
            "use strict";
            var r = n(1807),
                i = n(1704),
                s = n(1423),
                o = n(2564),
                a = n(348),
                l = n(1),
                c = TypeError,
                u = l("toPrimitive");
            e.exports = function(e, t) {
                if (!i(e) || s(e)) return e;
                var n, l = o(e, u);
                if (l) {
                    if (void 0 === t && (t = "default"), n = r(l, e, t), !i(n) || s(n)) return n;
                    throw new c("Can't convert object to primitive value")
                }
                return void 0 === t && (t = "number"), a(e, t)
            }
        },
        3815: (e, t, n) => {
            "use strict";
            var r = n(2355),
                i = n(1423);
            e.exports = function(e) {
                var t = r(e, "string");
                return i(t) ? t : t + ""
            }
        },
        4338: (e, t, n) => {
            "use strict";
            var r = {};
            r[n(1)("toStringTag")] = "z", e.exports = "[object z]" === String(r)
        },
        8761: e => {
            "use strict";
            var t = String;
            e.exports = function(e) {
                try {
                    return t(e)
                } catch (e) {
                    return "Object"
                }
            }
        },
        1866: (e, t, n) => {
            "use strict";
            var r = n(4762),
                i = 0,
                s = Math.random(),
                o = r(1..toString);
            e.exports = function(e) {
                return "Symbol(" + (void 0 === e ? "" : e) + ")_" + o(++i + s, 36)
            }
        },
        5022: (e, t, n) => {
            "use strict";
            var r = n(6029);
            e.exports = r && !Symbol.sham && "symbol" == typeof Symbol.iterator
        },
        3896: (e, t, n) => {
            "use strict";
            var r = n(382),
                i = n(8473);
            e.exports = r && i((function() {
                return 42 !== Object.defineProperty((function() {}), "prototype", {
                    value: 42,
                    writable: !1
                }).prototype
            }))
        },
        4644: (e, t, n) => {
            "use strict";
            var r = n(5578),
                i = n(1483),
                s = r.WeakMap;
            e.exports = i(s) && /native code/.test(String(s))
        },
        1: (e, t, n) => {
            "use strict";
            var r = n(5578),
                i = n(7255),
                s = n(5755),
                o = n(1866),
                a = n(6029),
                l = n(5022),
                c = r.Symbol,
                u = i("wks"),
                d = l ? c.for || c : c && c.withoutSetter || o;
            e.exports = function(e) {
                return s(u, e) || (u[e] = a && s(c, e) ? c[e] : d("Symbol." + e)), u[e]
            }
        },
        6281: (e, t, n) => {
            "use strict";
            var r = n(8612),
                i = n(6651).includes,
                s = n(8473),
                o = n(7095);
            r({
                target: "Array",
                proto: !0,
                forced: s((function() {
                    return !Array(1).includes()
                }))
            }, {
                includes: function includes(e) {
                    return i(this, e, arguments.length > 1 ? arguments[1] : void 0)
                }
            }), o("includes")
        },
        5724: (e, t, n) => {
            "use strict";
            var r = n(8612),
                i = n(2347),
                s = n(6960),
                o = n(9273),
                a = n(1091);
            r({
                target: "Array",
                proto: !0,
                arity: 1,
                forced: n(8473)((function() {
                    return 4294967297 !== [].push.call({
                        length: 4294967296
                    }, 1)
                })) || ! function() {
                    try {
                        Object.defineProperty([], "length", {
                            writable: !1
                        }).push()
                    } catch (e) {
                        return e instanceof TypeError
                    }
                }()
            }, {
                push: function push(e) {
                    var t = i(this),
                        n = s(t),
                        r = arguments.length;
                    a(n + r);
                    for (var l = 0; l < r; l++) t[n] = arguments[l], n++;
                    return o(t, n), n
                }
            })
        },
        3617: (e, t, n) => {
            "use strict";
            var r = n(8612),
                i = n(5578),
                s = n(6021),
                o = n(2293),
                a = n(1483),
                l = n(3181),
                c = n(3864),
                u = n(670),
                d = n(8473),
                h = n(5755),
                g = n(1),
                p = n(1851).IteratorPrototype,
                f = n(382),
                m = n(9557),
                v = "constructor",
                b = "Iterator",
                y = g("toStringTag"),
                w = TypeError,
                S = i[b],
                x = m || !a(S) || S.prototype !== p || !d((function() {
                    S({})
                })),
                C = function Iterator() {
                    if (s(this, p), l(this) === p) throw new w("Abstract class Iterator not directly constructable")
                },
                defineIteratorPrototypeAccessor = function(e, t) {
                    f ? c(p, e, {
                        configurable: !0,
                        get: function() {
                            return t
                        },
                        set: function(t) {
                            if (o(this), this === p) throw new w("You can't redefine this property");
                            h(this, e) ? this[e] = t : u(this, e, t)
                        }
                    }) : p[e] = t
                };
            h(p, y) || defineIteratorPrototypeAccessor(y, b), !x && h(p, v) && p[v] !== Object || defineIteratorPrototypeAccessor(v, C), C.prototype = p, r({
                global: !0,
                constructor: !0,
                forced: x
            }, {
                Iterator: C
            })
        },
        1975: (e, t, n) => {
            "use strict";
            var r = n(8612),
                i = n(1807),
                s = n(8120),
                o = n(2293),
                a = n(41),
                l = n(8660),
                c = n(8901),
                u = n(9557),
                d = l((function() {
                    for (var e, t, n = this.iterator, r = this.predicate, s = this.next;;) {
                        if (e = o(i(s, n)), this.done = !!e.done) return;
                        if (t = e.value, c(n, r, [t, this.counter++], !0)) return t
                    }
                }));
            r({
                target: "Iterator",
                proto: !0,
                real: !0,
                forced: u
            }, {
                filter: function filter(e) {
                    return o(this), s(e), new d(a(this), {
                        predicate: e
                    })
                }
            })
        },
        3242: (e, t, n) => {
            "use strict";
            var r = n(8612),
                i = n(1506),
                s = n(8120),
                o = n(2293),
                a = n(41);
            r({
                target: "Iterator",
                proto: !0,
                real: !0
            }, {
                find: function find(e) {
                    o(this), s(e);
                    var t = a(this),
                        n = 0;
                    return i(t, (function(t, r) {
                        if (e(t, n++)) return r(t)
                    }), {
                        IS_RECORD: !0,
                        INTERRUPTED: !0
                    }).result
                }
            })
        },
        9930: (e, t, n) => {
            "use strict";
            var r = n(8612),
                i = n(1506),
                s = n(8120),
                o = n(2293),
                a = n(41);
            r({
                target: "Iterator",
                proto: !0,
                real: !0
            }, {
                forEach: function forEach(e) {
                    o(this), s(e);
                    var t = a(this),
                        n = 0;
                    i(t, (function(t) {
                        e(t, n++)
                    }), {
                        IS_RECORD: !0
                    })
                }
            })
        },
        4846: (e, t, n) => {
            "use strict";
            n(3617)
        },
        7458: (e, t, n) => {
            "use strict";
            n(1975)
        },
        6211: (e, t, n) => {
            "use strict";
            n(3242)
        },
        9655: (e, t, n) => {
            "use strict";
            n(9930)
        }
    },
    e => {
        var t;
        t = 4946, e(e.s = t)
    }
]);
wp.i18n.setLocaleData({
    'text direction\u0004ltr': ['ltr']
}); /*! elementor-pro - v3.27.0 - 06-02-2025 */
(self.webpackChunkelementor_pro = self.webpackChunkelementor_pro || []).push([
    [313], {
        3e3: (e, t, n) => {
            "use strict";
            var s = n(6784);
            n(2258);
            var i = s(n(4906)),
                o = s(n(2450)),
                r = s(n(4409)),
                a = s(n(7937)),
                l = s(n(8098)),
                c = s(n(6275)),
                d = s(n(3268)),
                u = s(n(4992));
            class ElementorProFrontend extends elementorModules.ViewModule {
                onInit() {
                    super.onInit(), this.config = ElementorProFrontendConfig, this.modules = {}, this.initOnReadyComponents()
                }
                bindEvents() {
                    jQuery(window).on("elementor/frontend/init", this.onElementorFrontendInit.bind(this))
                }
                initModules() {
                    let e = {
                        motionFX: i.default,
                        sticky: o.default,
                        codeHighlight: r.default,
                        videoPlaylist: a.default,
                        payments: l.default,
                        progressTracker: c.default
                    };
                    elementorProFrontend.trigger("elementor-pro/modules/init/before"), e = elementorFrontend.hooks.applyFilters("elementor-pro/frontend/handlers", e), jQuery.each(e, ((e, t) => {
                        this.modules[e] = new t
                    })), this.modules.linkActions = {
                        addAction: function() {
                            elementorFrontend.utils.urlActions.addAction(...arguments)
                        }
                    }
                }
                onElementorFrontendInit() {
                    this.initModules()
                }
                initOnReadyComponents() {
                    this.utils = {
                        controls: new d.default,
                        DropdownMenuHeightController: u.default
                    }
                }
            }
            window.elementorProFrontend = new ElementorProFrontend
        },
        3268: (e, t) => {
            "use strict";
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            t.default = class Controls {
                getControlValue(e, t, n) {
                    let s;
                    return s = "object" == typeof e[t] && n ? e[t][n] : e[t], s
                }
                getResponsiveControlValue(e, t) {
                    let n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "";
                    const s = elementorFrontend.getCurrentDeviceMode(),
                        i = this.getControlValue(e, t, n);
                    if ("widescreen" === s) {
                        const s = this.getControlValue(e, `${t}_widescreen`, n);
                        return s || 0 === s ? s : i
                    }
                    const o = elementorFrontend.breakpoints.getActiveBreakpointsList({
                        withDesktop: !0
                    });
                    let r = s,
                        a = o.indexOf(s),
                        l = "";
                    for (; a <= o.length;) {
                        if ("desktop" === r) {
                            l = i;
                            break
                        }
                        const s = `${t}_${r}`,
                            c = this.getControlValue(e, s, n);
                        if (c || 0 === c) {
                            l = c;
                            break
                        }
                        a++, r = o[a]
                    }
                    return l
                }
            }
        },
        4992: (e, t) => {
            "use strict";
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            t.default = class DropdownMenuHeightController {
                constructor(e) {
                    this.widgetConfig = e
                }
                calculateStickyMenuNavHeight() {
                    this.widgetConfig.elements.$dropdownMenuContainer.css(this.widgetConfig.settings.menuHeightCssVarName, "");
                    const e = this.widgetConfig.elements.$dropdownMenuContainer.offset().top - jQuery(window).scrollTop();
                    return elementorFrontend.elements.$window.height() - e
                }
                calculateMenuTabContentHeight(e) {
                    return elementorFrontend.elements.$window.height() - e[0].getBoundingClientRect().top
                }
                isElementSticky() {
                    return this.widgetConfig.elements.$element.hasClass("elementor-sticky") || this.widgetConfig.elements.$element.parents(".elementor-sticky").length
                }
                getMenuHeight() {
                    return this.isElementSticky() ? this.calculateStickyMenuNavHeight() + "px" : this.widgetConfig.settings.dropdownMenuContainerMaxHeight
                }
                setMenuHeight(e) {
                    this.widgetConfig.elements.$dropdownMenuContainer.css(this.widgetConfig.settings.menuHeightCssVarName, e)
                }
                reassignMobileMenuHeight() {
                    const e = this.isToggleActive() ? this.getMenuHeight() : 0;
                    return this.setMenuHeight(e)
                }
                reassignMenuHeight(e) {
                    if (!this.isElementSticky() || 0 === e.length) return;
                    const t = elementorFrontend.elements.$window.height() - e[0].getBoundingClientRect().top;
                    e.height() > t && (e.css("height", this.calculateMenuTabContentHeight(e) + "px"), e.css("overflow-y", "scroll"))
                }
                resetMenuHeight(e) {
                    this.isElementSticky() && (e.css("height", "initial"), e.css("overflow-y", "visible"))
                }
                isToggleActive() {
                    const e = this.widgetConfig.elements.$menuToggle;
                    return this.widgetConfig.attributes ? .menuToggleState ? "true" === e.attr(this.widgetConfig.attributes.menuToggleState) : e.hasClass(this.widgetConfig.classes.menuToggleActiveClass)
                }
            }
        },
        2258: (e, t, n) => {
            "use strict";
            n.p = ElementorProFrontendConfig.urls.assets + "js/"
        },
        4409: (e, t, n) => {
            "use strict";
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            class _default extends elementorModules.Module {
                constructor() {
                    super(), elementorFrontend.elementsHandler.attachHandler("code-highlight", (() => n.e(635).then(n.bind(n, 7193))))
                }
            }
            t.default = _default
        },
        4906: (e, t, n) => {
            "use strict";
            var s = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            var i = s(n(820));
            class _default extends elementorModules.Module {
                constructor() {
                    super(), elementorFrontend.elementsHandler.attachHandler("global", i.default, null)
                }
            }
            t.default = _default
        },
        820: (e, t, n) => {
            "use strict";
            var s = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            var i = s(n(739));
            class _default extends elementorModules.frontend.handlers.Base {
                __construct() {
                    super.__construct(...arguments), this.toggle = elementorFrontend.debounce(this.toggle, 200)
                }
                getDefaultSettings() {
                    return {
                        selectors: {
                            container: ".elementor-widget-container"
                        }
                    }
                }
                getDefaultElements() {
                    const e = this.getSettings("selectors");
                    let t = this.$element.find(e.container);
                    return 0 === t.length && (t = this.$element), {
                        $container: t
                    }
                }
                bindEvents() {
                    elementorFrontend.elements.$window.on("resize", this.toggle)
                }
                unbindEvents() {
                    elementorFrontend.elements.$window.off("resize", this.toggle)
                }
                addCSSTransformEvents() {
                    this.getElementSettings("motion_fx_motion_fx_scrolling") && !this.isTransitionEventAdded && (this.isTransitionEventAdded = !0, this.elements.$container.on("mouseenter", (() => {
                        this.elements.$container.css("--e-transform-transition-duration", "")
                    })))
                }
                initEffects() {
                    this.effects = {
                        translateY: {
                            interaction: "scroll",
                            actions: ["translateY"]
                        },
                        translateX: {
                            interaction: "scroll",
                            actions: ["translateX"]
                        },
                        rotateZ: {
                            interaction: "scroll",
                            actions: ["rotateZ"]
                        },
                        scale: {
                            interaction: "scroll",
                            actions: ["scale"]
                        },
                        opacity: {
                            interaction: "scroll",
                            actions: ["opacity"]
                        },
                        blur: {
                            interaction: "scroll",
                            actions: ["blur"]
                        },
                        mouseTrack: {
                            interaction: "mouseMove",
                            actions: ["translateXY"]
                        },
                        tilt: {
                            interaction: "mouseMove",
                            actions: ["tilt"]
                        }
                    }
                }
                prepareOptions(e) {
                    const t = this.getElementSettings(),
                        n = "motion_fx" === e ? "element" : "background",
                        s = {};
                    jQuery.each(t, ((n, i) => {
                        const o = new RegExp("^" + e + "_(.+?)_effect"),
                            r = n.match(o);
                        if (!r || !i) return;
                        const a = {},
                            l = r[1];
                        jQuery.each(t, ((t, n) => {
                            const s = new RegExp(e + "_" + l + "_(.+)"),
                                i = t.match(s);
                            if (!i) return;
                            "effect" !== i[1] && ("object" == typeof n && (n = Object.keys(n.sizes).length ? n.sizes : n.size), a[i[1]] = n)
                        }));
                        const c = this.effects[l],
                            d = c.interaction;
                        s[d] || (s[d] = {}), c.actions.forEach((e => s[d][e] = a))
                    }));
                    let i, o, r = this.$element;
                    const a = this.getElementType();
                    if ("element" === n && !["section", "container"].includes(a)) {
                        let e;
                        i = r, e = "column" === a ? ".elementor-widget-wrap" : ".elementor-widget-container", o = r.find("> " + e), r = 0 === o.length ? this.$element : o
                    }
                    const l = {
                        type: n,
                        interactions: s,
                        elementSettings: t,
                        $element: r,
                        $dimensionsElement: i,
                        refreshDimensions: this.isEdit,
                        range: t[e + "_range"],
                        classes: {
                            element: "elementor-motion-effects-element",
                            parent: "elementor-motion-effects-parent",
                            backgroundType: "elementor-motion-effects-element-type-background",
                            container: "elementor-motion-effects-container",
                            layer: "elementor-motion-effects-layer",
                            perspective: "elementor-motion-effects-perspective"
                        }
                    };
                    return l.range || "fixed" !== this.getCurrentDeviceSetting("_position") || (l.range = "page"), "fixed" === this.getCurrentDeviceSetting("_position") && (l.isFixedPosition = !0), "background" === n && "column" === this.getElementType() && (l.addBackgroundLayerTo = " > .elementor-element-populated"), l
                }
                activate(e) {
                    const t = this.prepareOptions(e);
                    jQuery.isEmptyObject(t.interactions) || (this[e] = new i.default(t))
                }
                deactivate(e) {
                    this[e] && (this[e].destroy(), delete this[e])
                }
                toggle() {
                    const e = elementorFrontend.getCurrentDeviceMode(),
                        t = this.getElementSettings();
                    ["motion_fx", "background_motion_fx"].forEach((n => {
                        const s = t[n + "_devices"];
                        (!s || -1 !== s.indexOf(e)) && (t[n + "_motion_fx_scrolling"] || t[n + "_motion_fx_mouse"]) ? this[n] ? this.refreshInstance(n) : this.activate(n): this.deactivate(n)
                    }))
                }
                refreshInstance(e) {
                    const t = this[e];
                    if (!t) return;
                    const n = this.prepareOptions(e);
                    t.setSettings(n), t.refresh()
                }
                onInit() {
                    super.onInit(), this.initEffects(), this.addCSSTransformEvents(), this.toggle()
                }
                onElementChange(e) {
                    if (/motion_fx_((scrolling)|(mouse)|(devices))$/.test(e)) return "motion_fx_motion_fx_scrolling" === e && this.addCSSTransformEvents(), void this.toggle();
                    const t = e.match(".*?(motion_fx|_transform)");
                    if (t) {
                        const e = t[0].match("(_transform)") ? "motion_fx" : t[0];
                        this.refreshInstance(e), this[e] || this.activate(e)
                    }
                    /^_position/.test(e) && ["motion_fx", "background_motion_fx"].forEach((e => {
                        this.refreshInstance(e)
                    }))
                }
                onDestroy() {
                    super.onDestroy(), ["motion_fx", "background_motion_fx"].forEach((e => {
                        this.deactivate(e)
                    }))
                }
            }
            t.default = _default
        },
        3039: (e, t) => {
            "use strict";
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            class _default extends elementorModules.Module {
                getMovePointFromPassedPercents(e, t) {
                    return +(t / e * 100).toFixed(2)
                }
                getEffectValueFromMovePoint(e, t) {
                    return e * t / 100
                }
                getStep(e, t) {
                    return "element" === this.getSettings("type") ? this.getElementStep(e, t) : this.getBackgroundStep(e, t)
                }
                getElementStep(e, t) {
                    return -(e - 50) * t.speed
                }
                getBackgroundStep(e, t) {
                    const n = this.getSettings("dimensions.movable" + t.axis.toUpperCase());
                    return -this.getEffectValueFromMovePoint(n, e)
                }
                getDirectionMovePoint(e, t, n) {
                    let s;
                    return e < n.start ? "out-in" === t ? s = 0 : "in-out" === t ? s = 100 : (s = this.getMovePointFromPassedPercents(n.start, e), "in-out-in" === t && (s = 100 - s)) : e < n.end ? "in-out-in" === t ? s = 0 : "out-in-out" === t ? s = 100 : (s = this.getMovePointFromPassedPercents(n.end - n.start, e - n.start), "in-out" === t && (s = 100 - s)) : "in-out" === t ? s = 0 : "out-in" === t ? s = 100 : (s = this.getMovePointFromPassedPercents(100 - n.end, 100 - e), "in-out-in" === t && (s = 100 - s)), s
                }
                translateX(e, t) {
                    e.axis = "x", e.unit = "px", this.transform("translateX", t, e)
                }
                translateY(e, t) {
                    e.axis = "y", e.unit = "px", this.transform("translateY", t, e)
                }
                translateXY(e, t, n) {
                    this.translateX(e, t), this.translateY(e, n)
                }
                tilt(e, t, n) {
                    const s = {
                        speed: e.speed / 10,
                        direction: e.direction
                    };
                    this.rotateX(s, n), this.rotateY(s, 100 - t)
                }
                rotateX(e, t) {
                    e.axis = "x", e.unit = "deg", this.transform("rotateX", t, e)
                }
                rotateY(e, t) {
                    e.axis = "y", e.unit = "deg", this.transform("rotateY", t, e)
                }
                rotateZ(e, t) {
                    e.unit = "deg", this.transform("rotateZ", t, e)
                }
                scale(e, t) {
                    const n = this.getDirectionMovePoint(t, e.direction, e.range);
                    this.updateRulePart("transform", "scale", 1 + e.speed * n / 1e3)
                }
                transform(e, t, n) {
                    n.direction && (t = 100 - t), this.updateRulePart("transform", e, this.getStep(t, n) + n.unit)
                }
                setCSSTransformVariables(e) {
                    this.CSSTransformVariables = [], jQuery.each(e, ((e, t) => {
                        const n = e.match(/_transform_(.+?)_effect/m);
                        if (n && t) {
                            if ("perspective" === n[1]) return void this.CSSTransformVariables.unshift(n[1]);
                            if (this.CSSTransformVariables.includes(n[1])) return;
                            this.CSSTransformVariables.push(n[1])
                        }
                    }))
                }
                opacity(e, t) {
                    const n = this.getDirectionMovePoint(t, e.direction, e.range),
                        s = e.level / 10,
                        i = 1 - s + this.getEffectValueFromMovePoint(s, n);
                    this.$element.css({
                        opacity: i,
                        "will-change": "opacity"
                    })
                }
                blur(e, t) {
                    const n = this.getDirectionMovePoint(t, e.direction, e.range),
                        s = e.level - this.getEffectValueFromMovePoint(e.level, n);
                    this.updateRulePart("filter", "blur", s + "px")
                }
                updateRulePart(e, t, n) {
                    this.rulesVariables[e] || (this.rulesVariables[e] = {}), this.rulesVariables[e][t] || (this.rulesVariables[e][t] = !0, this.updateRule(e));
                    const s = `--${t}`;
                    this.$element[0].style.setProperty(s, n)
                }
                updateRule(e) {
                    let t = "";
                    t += this.concatTransformCSSProperties(e), t += this.concatTransformMotionEffectCSSProperties(e), this.$element.css(e, t)
                }
                concatTransformCSSProperties(e) {
                    let t = "";
                    return "transform" === e && jQuery.each(this.CSSTransformVariables, ((e, n) => {
                        const s = n;
                        n.startsWith("flip") && (n = n.replace("flip", "scale"));
                        const i = n.startsWith("rotate") || n.startsWith("skew") ? "deg" : "px",
                            o = n.startsWith("scale") ? 1 : 0 + i;
                        t += `${n}(var(--e-transform-${s}, ${o}))`
                    })), t
                }
                concatTransformMotionEffectCSSProperties(e) {
                    let t = "";
                    return jQuery.each(this.rulesVariables[e], (e => {
                        t += `${e}(var(--${e}))`
                    })), t
                }
                runAction(e, t, n) {
                    t.affectedRange && (t.affectedRange.start > n && (n = t.affectedRange.start), t.affectedRange.end < n && (n = t.affectedRange.end));
                    for (var s = arguments.length, i = new Array(s > 3 ? s - 3 : 0), o = 3; o < s; o++) i[o - 3] = arguments[o];
                    this[e](t, n, ...i)
                }
                refresh() {
                    this.rulesVariables = {}, this.CSSTransformVariables = [], this.$element.css({
                        transform: "",
                        filter: "",
                        opacity: "",
                        "will-change": ""
                    })
                }
                onInit() {
                    this.$element = this.getSettings("$targetElement"), this.refresh()
                }
            }
            t.default = _default
        },
        3323: (e, t) => {
            "use strict";
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            class _default extends elementorModules.ViewModule {
                __construct(e) {
                    this.motionFX = e.motionFX, this.intersectionObservers || this.setElementInViewportObserver()
                }
                setElementInViewportObserver() {
                    this.intersectionObserver = elementorModules.utils.Scroll.scrollObserver({
                        callback: e => {
                            e.isInViewport ? this.onInsideViewport() : this.removeAnimationFrameRequest()
                        }
                    });
                    const e = "page" === this.motionFX.getSettings("range") ? elementorFrontend.elements.$body[0] : this.motionFX.elements.$parent[0];
                    this.intersectionObserver.observe(e)
                }
                onInsideViewport = () => {
                    this.run(), this.animationFrameRequest = requestAnimationFrame(this.onInsideViewport)
                };
                runCallback() {
                    this.getSettings("callback")(...arguments)
                }
                removeIntersectionObserver() {
                    this.intersectionObserver && this.intersectionObserver.unobserve(this.motionFX.elements.$parent[0])
                }
                removeAnimationFrameRequest() {
                    this.animationFrameRequest && cancelAnimationFrame(this.animationFrameRequest)
                }
                destroy() {
                    this.removeAnimationFrameRequest(), this.removeIntersectionObserver()
                }
                onInit() {
                    super.onInit()
                }
            }
            t.default = _default
        },
        5481: (e, t, n) => {
            "use strict";
            var s = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            var i = s(n(3323));
            class MouseMoveInteraction extends i.default {
                bindEvents() {
                    MouseMoveInteraction.mouseTracked || (elementorFrontend.elements.$window.on("mousemove", MouseMoveInteraction.updateMousePosition), MouseMoveInteraction.mouseTracked = !0)
                }
                run() {
                    const e = MouseMoveInteraction.mousePosition,
                        t = this.oldMousePosition;
                    if (t.x === e.x && t.y === e.y) return;
                    this.oldMousePosition = {
                        x: e.x,
                        y: e.y
                    };
                    const n = 100 / innerWidth * e.x,
                        s = 100 / innerHeight * e.y;
                    this.runCallback(n, s)
                }
                onInit() {
                    this.oldMousePosition = {}, super.onInit()
                }
            }
            t.default = MouseMoveInteraction, MouseMoveInteraction.mousePosition = {}, MouseMoveInteraction.updateMousePosition = e => {
                MouseMoveInteraction.mousePosition = {
                    x: e.clientX,
                    y: e.clientY
                }
            }
        },
        2647: (e, t, n) => {
            "use strict";
            var s = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            var i = s(n(3323));
            class _default extends i.default {
                run() {
                    if (pageYOffset === this.windowScrollTop) return !1;
                    this.onScrollMovement(), this.windowScrollTop = pageYOffset
                }
                onScrollMovement() {
                    this.updateMotionFxDimensions(), this.updateAnimation(), this.resetTransitionVariable()
                }
                resetTransitionVariable() {
                    this.motionFX.$element.css("--e-transform-transition-duration", "100ms")
                }
                updateMotionFxDimensions() {
                    this.motionFX.getSettings().refreshDimensions && this.motionFX.defineDimensions()
                }
                updateAnimation() {
                    let e;
                    e = "page" === this.motionFX.getSettings("range") ? elementorModules.utils.Scroll.getPageScrollPercentage() : this.motionFX.getSettings("isFixedPosition") ? elementorModules.utils.Scroll.getPageScrollPercentage({}, window.innerHeight) : elementorModules.utils.Scroll.getElementViewportPercentage(this.motionFX.elements.$parent), this.runCallback(e)
                }
            }
            t.default = _default
        },
        739: (e, t, n) => {
            "use strict";
            var s = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            var i = s(n(2647)),
                o = s(n(5481)),
                r = s(n(3039));
            class _default extends elementorModules.ViewModule {
                getDefaultSettings() {
                    return {
                        type: "element",
                        $element: null,
                        $dimensionsElement: null,
                        addBackgroundLayerTo: null,
                        interactions: {},
                        refreshDimensions: !1,
                        range: "viewport",
                        classes: {
                            element: "motion-fx-element",
                            parent: "motion-fx-parent",
                            backgroundType: "motion-fx-element-type-background",
                            container: "motion-fx-container",
                            layer: "motion-fx-layer",
                            perspective: "motion-fx-perspective"
                        }
                    }
                }
                bindEvents() {
                    this.defineDimensions = this.defineDimensions.bind(this), elementorFrontend.elements.$window.on("resize elementor-pro/motion-fx/recalc", this.defineDimensions)
                }
                unbindEvents() {
                    elementorFrontend.elements.$window.off("resize elementor-pro/motion-fx/recalc", this.defineDimensions)
                }
                addBackgroundLayer() {
                    const e = this.getSettings();
                    this.elements.$motionFXContainer = jQuery("<div>", {
                        class: e.classes.container
                    }), this.elements.$motionFXLayer = jQuery("<div>", {
                        class: e.classes.layer
                    }), this.updateBackgroundLayerSize(), this.elements.$motionFXContainer.prepend(this.elements.$motionFXLayer);
                    (e.addBackgroundLayerTo ? this.$element.find(e.addBackgroundLayerTo) : this.$element).prepend(this.elements.$motionFXContainer)
                }
                removeBackgroundLayer() {
                    this.elements.$motionFXContainer.remove()
                }
                updateBackgroundLayerSize() {
                    const e = this.getSettings(),
                        t = {
                            x: 0,
                            y: 0
                        },
                        n = e.interactions.mouseMove,
                        s = e.interactions.scroll;
                    n && n.translateXY && (t.x = 10 * n.translateXY.speed, t.y = 10 * n.translateXY.speed), s && (s.translateX && (t.x = 10 * s.translateX.speed), s.translateY && (t.y = 10 * s.translateY.speed)), this.elements.$motionFXLayer.css({
                        width: 100 + t.x + "%",
                        height: 100 + t.y + "%"
                    })
                }
                defineDimensions() {
                    const e = this.getSettings("$dimensionsElement") || this.$element,
                        t = e.offset(),
                        n = {
                            elementHeight: e.outerHeight(),
                            elementWidth: e.outerWidth(),
                            elementTop: t.top,
                            elementLeft: t.left
                        };
                    n.elementRange = n.elementHeight + innerHeight, this.setSettings("dimensions", n), "background" === this.getSettings("type") && this.defineBackgroundLayerDimensions()
                }
                defineBackgroundLayerDimensions() {
                    const e = this.getSettings("dimensions");
                    e.layerHeight = this.elements.$motionFXLayer.height(), e.layerWidth = this.elements.$motionFXLayer.width(), e.movableX = e.layerWidth - e.elementWidth, e.movableY = e.layerHeight - e.elementHeight, this.setSettings("dimensions", e)
                }
                initInteractionsTypes() {
                    this.interactionsTypes = {
                        scroll: i.default,
                        mouseMove: o.default
                    }
                }
                prepareSpecialActions() {
                    const e = this.getSettings(),
                        t = !(!e.interactions.mouseMove || !e.interactions.mouseMove.tilt);
                    this.elements.$parent.toggleClass(e.classes.perspective, t)
                }
                cleanSpecialActions() {
                    const e = this.getSettings();
                    this.elements.$parent.removeClass(e.classes.perspective)
                }
                runInteractions() {
                    var e = this;
                    const t = this.getSettings();
                    this.actions.setCSSTransformVariables(t.elementSettings), this.prepareSpecialActions(), jQuery.each(t.interactions, ((t, n) => {
                        this.interactions[t] = new this.interactionsTypes[t]({
                            motionFX: this,
                            callback: function() {
                                for (var t = arguments.length, s = new Array(t), i = 0; i < t; i++) s[i] = arguments[i];
                                jQuery.each(n, ((t, n) => e.actions.runAction(t, n, ...s)))
                            }
                        }), this.interactions[t].run()
                    }))
                }
                destroyInteractions() {
                    this.cleanSpecialActions(), jQuery.each(this.interactions, ((e, t) => t.destroy())), this.interactions = {}
                }
                refresh() {
                    this.actions.setSettings(this.getSettings()), "background" === this.getSettings("type") && (this.updateBackgroundLayerSize(), this.defineBackgroundLayerDimensions()), this.actions.refresh(), this.destroyInteractions(), this.runInteractions()
                }
                destroy() {
                    this.destroyInteractions(), this.actions.refresh();
                    const e = this.getSettings();
                    this.$element.removeClass(e.classes.element), this.elements.$parent.removeClass(e.classes.parent), "background" === e.type && (this.$element.removeClass(e.classes.backgroundType), this.removeBackgroundLayer())
                }
                onInit() {
                    super.onInit();
                    const e = this.getSettings();
                    this.$element = e.$element, this.elements.$parent = this.$element.parent(), this.$element.addClass(e.classes.element), this.elements.$parent = this.$element.parent(), this.elements.$parent.addClass(e.classes.parent), "background" === e.type && (this.$element.addClass(e.classes.backgroundType), this.addBackgroundLayer()), this.defineDimensions(), e.$targetElement = "element" === e.type ? this.$element : this.elements.$motionFXLayer, this.interactions = {}, this.actions = new r.default(e), this.initInteractionsTypes(), this.runInteractions()
                }
            }
            t.default = _default
        },
        8098: (e, t, n) => {
            "use strict";
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            class _default extends elementorModules.Module {
                constructor() {
                    super(), elementorFrontend.elementsHandler.attachHandler("paypal-button", (() => n.e(375).then(n.bind(n, 466)))), elementorFrontend.elementsHandler.attachHandler("stripe-button", (() => Promise.all([n.e(234), n.e(857)]).then(n.bind(n, 9036))))
                }
            }
            t.default = _default
        },
        6275: (e, t, n) => {
            "use strict";
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            class _default extends elementorModules.Module {
                constructor() {
                    super(), elementorFrontend.elementsHandler.attachHandler("progress-tracker", (() => n.e(581).then(n.bind(n, 287))))
                }
            }
            t.default = _default
        },
        2450: (e, t, n) => {
            "use strict";
            var s = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            var i = s(n(2121));
            class _default extends elementorModules.Module {
                constructor() {
                    super(), elementorFrontend.elementsHandler.attachHandler("section", i.default, null), elementorFrontend.elementsHandler.attachHandler("container", i.default, null), elementorFrontend.elementsHandler.attachHandler("widget", i.default, null)
                }
            }
            t.default = _default
        },
        2121: (e, t, n) => {
            "use strict";
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            var s = n(6550);
            t.default = elementorModules.frontend.handlers.Base.extend({
                currentConfig: {},
                debouncedReactivate: null,
                bindEvents() {
                    elementorFrontend.addListenerOnce(this.getUniqueHandlerID() + "sticky", "resize", this.reactivateOnResize)
                },
                unbindEvents() {
                    elementorFrontend.removeListeners(this.getUniqueHandlerID() + "sticky", "resize", this.reactivateOnResize)
                },
                isStickyInstanceActive() {
                    return void 0 !== this.$element.data("sticky")
                },
                getResponsiveSetting(e) {
                    const t = this.getElementSettings();
                    return elementorFrontend.getCurrentDeviceSetting(t, e)
                },
                getResponsiveSettingList: e => ["", ...Object.keys(elementorFrontend.config.responsive.activeBreakpoints)].map((t => t ? `${e}_${t}` : e)),
                getConfig() {
                    const e = this.getElementSettings(),
                        t = {
                            to: e.sticky,
                            offset: this.getResponsiveSetting("sticky_offset"),
                            effectsOffset: this.getResponsiveSetting("sticky_effects_offset"),
                            classes: {
                                sticky: "elementor-sticky",
                                stickyActive: "elementor-sticky--active elementor-section--handles-inside",
                                stickyEffects: "elementor-sticky--effects",
                                spacer: "elementor-sticky__spacer"
                            },
                            isRTL: elementorFrontend.config.is_rtl,
                            isScrollSnapActive: (0, s.isScrollSnapActive)(),
                            handleScrollbarWidth: elementorFrontend.isEditMode()
                        },
                        n = elementorFrontend.elements.$wpAdminBar,
                        i = this.isContainerElement(this.$element[0]) && !this.isContainerElement(this.$element[0].parentElement);
                    return n.length && "top" === e.sticky && "fixed" === n.css("position") && (t.offset += n.height()), e.sticky_parent && !i && (t.parent = ".e-con, .e-con-inner, .elementor-widget-wrap"), t
                },
                activate() {
                    this.currentConfig = this.getConfig(), this.$element.sticky(this.currentConfig)
                },
                deactivate() {
                    this.isStickyInstanceActive() && this.$element.sticky("destroy")
                },
                run(e) {
                    if (this.getElementSettings("sticky")) {
                        var t = elementorFrontend.getCurrentDeviceMode(); - 1 !== this.getElementSettings("sticky_on").indexOf(t) ? !0 === e ? this.reactivate() : this.isStickyInstanceActive() || this.activate() : this.deactivate()
                    } else this.deactivate()
                },
                reactivateOnResize() {
                    clearTimeout(this.debouncedReactivate), this.debouncedReactivate = setTimeout((() => {
                        const e = this.getConfig();
                        JSON.stringify(e) !== JSON.stringify(this.currentConfig) && this.run(!0)
                    }), 300)
                },
                reactivate() {
                    this.deactivate(), this.activate()
                },
                onElementChange(e) {
                    -1 !== ["sticky", "sticky_on"].indexOf(e) && this.run(!0); - 1 !== [...this.getResponsiveSettingList("sticky_offset"), ...this.getResponsiveSettingList("sticky_effects_offset"), "sticky_parent"].indexOf(e) && this.reactivate()
                },
                onDeviceModeChange() {
                    setTimeout((() => this.run(!0)))
                },
                onInit() {
                    elementorModules.frontend.handlers.Base.prototype.onInit.apply(this, arguments), elementorFrontend.isEditMode() && elementor.listenTo(elementor.channels.deviceMode, "change", (() => this.onDeviceModeChange())), this.run()
                },
                onDestroy() {
                    elementorModules.frontend.handlers.Base.prototype.onDestroy.apply(this, arguments), this.deactivate()
                },
                isContainerElement: e => ["e-con", "e-con-inner"].some((t => e ? .classList.contains(t)))
            })
        },
        7937: (e, t, n) => {
            "use strict";
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            class _default extends elementorModules.Module {
                constructor() {
                    super(), elementorFrontend.hooks.addAction("frontend/element_ready/video-playlist.default", (e => {
                        n.e(519).then(n.bind(n, 4161)).then((t => {
                            let {
                                default: n
                            } = t;
                            elementorFrontend.elementsHandler.addHandler(n, {
                                $element: e,
                                toggleSelf: !1
                            })
                        }))
                    }))
                }
            }
            t.default = _default
        },
        6550: (e, t) => {
            "use strict";
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.isScrollSnapActive = t.escapeHTML = void 0;
            t.escapeHTML = e => {
                const t = {
                    "&": "&amp;",
                    "<": "&lt;",
                    ">": "&gt;",
                    "'": "&#39;",
                    '"': "&quot;"
                };
                return e.replace(/[&<>'"]/g, (e => t[e] || e))
            };
            t.isScrollSnapActive = () => "yes" === (elementorFrontend.isEditMode() ? elementor.settings.page.model.attributes ? .scroll_snap : elementorFrontend.config.settings.page ? .scroll_snap)
        },
        6784: e => {
            e.exports = function _interopRequireDefault(e) {
                return e && e.__esModule ? e : {
                    default: e
                }
            }, e.exports.__esModule = !0, e.exports.default = e.exports
        }
    },
    e => {
        var t;
        t = 3e3, e(e.s = t)
    }
]);
/*! jQuery UI - v1.13.3 - 2024-04-26
 * https://jqueryui.com
 * Includes: widget.js, position.js, data.js, disable-selection.js, effect.js, effects/effect-blind.js, effects/effect-bounce.js, effects/effect-clip.js, effects/effect-drop.js, effects/effect-explode.js, effects/effect-fade.js, effects/effect-fold.js, effects/effect-highlight.js, effects/effect-puff.js, effects/effect-pulsate.js, effects/effect-scale.js, effects/effect-shake.js, effects/effect-size.js, effects/effect-slide.js, effects/effect-transfer.js, focusable.js, form-reset-mixin.js, jquery-patch.js, keycode.js, labels.js, scroll-parent.js, tabbable.js, unique-id.js, widgets/accordion.js, widgets/autocomplete.js, widgets/button.js, widgets/checkboxradio.js, widgets/controlgroup.js, widgets/datepicker.js, widgets/dialog.js, widgets/draggable.js, widgets/droppable.js, widgets/menu.js, widgets/mouse.js, widgets/progressbar.js, widgets/resizable.js, widgets/selectable.js, widgets/selectmenu.js, widgets/slider.js, widgets/sortable.js, widgets/spinner.js, widgets/tabs.js, widgets/tooltip.js
 * Copyright jQuery Foundation and other contributors; Licensed MIT */
! function(t) {
    "use strict";
    "function" == typeof define && define.amd ? define(["jquery"], t) : t(jQuery)
}(function(x) {
    "use strict";
    var t, e, i, n, W, C, o, s, r, l, a, h, u;

    function E(t, e, i) {
        return [parseFloat(t[0]) * (a.test(t[0]) ? e / 100 : 1), parseFloat(t[1]) * (a.test(t[1]) ? i / 100 : 1)]
    }

    function L(t, e) {
        return parseInt(x.css(t, e), 10) || 0
    }

    function N(t) {
        return null != t && t === t.window
    }
    x.ui = x.ui || {}, x.ui.version = "1.13.3",
        /*!
         * jQuery UI :data 1.13.3
         * https://jqueryui.com
         *
         * Copyright OpenJS Foundation and other contributors
         * Released under the MIT license.
         * https://jquery.org/license
         */
        x.extend(x.expr.pseudos, {
            data: x.expr.createPseudo ? x.expr.createPseudo(function(e) {
                return function(t) {
                    return !!x.data(t, e)
                }
            }) : function(t, e, i) {
                return !!x.data(t, i[3])
            }
        }),
        /*!
         * jQuery UI Disable Selection 1.13.3
         * https://jqueryui.com
         *
         * Copyright OpenJS Foundation and other contributors
         * Released under the MIT license.
         * https://jquery.org/license
         */
        x.fn.extend({
            disableSelection: (t = "onselectstart" in document.createElement("div") ? "selectstart" : "mousedown", function() {
                return this.on(t + ".ui-disableSelection", function(t) {
                    t.preventDefault()
                })
            }),
            enableSelection: function() {
                return this.off(".ui-disableSelection")
            }
        }),
        /*!
         * jQuery UI Focusable 1.13.3
         * https://jqueryui.com
         *
         * Copyright OpenJS Foundation and other contributors
         * Released under the MIT license.
         * https://jquery.org/license
         */
        x.ui.focusable = function(t, e) {
            var i, n, o, s = t.nodeName.toLowerCase();
            return "area" === s ? (o = (i = t.parentNode).name, !(!t.href || !o || "map" !== i.nodeName.toLowerCase()) && 0 < (i = x("img[usemap='#" + o + "']")).length && i.is(":visible")) : (/^(input|select|textarea|button|object)$/.test(s) ? (n = !t.disabled) && (o = x(t).closest("fieldset")[0]) && (n = !o.disabled) : n = "a" === s && t.href || e, n && x(t).is(":visible") && function(t) {
                var e = t.css("visibility");
                for (;
                    "inherit" === e;) t = t.parent(), e = t.css("visibility");
                return "visible" === e
            }(x(t)))
        }, x.extend(x.expr.pseudos, {
            focusable: function(t) {
                return x.ui.focusable(t, null != x.attr(t, "tabindex"))
            }
        }), x.fn._form = function() {
            return "string" == typeof this[0].form ? this.closest("form") : x(this[0].form)
        },
        /*!
         * jQuery UI Form Reset Mixin 1.13.3
         * https://jqueryui.com
         *
         * Copyright OpenJS Foundation and other contributors
         * Released under the MIT license.
         * https://jquery.org/license
         */
        x.ui.formResetMixin = {
            _formResetHandler: function() {
                var e = x(this);
                setTimeout(function() {
                    var t = e.data("ui-form-reset-instances");
                    x.each(t, function() {
                        this.refresh()
                    })
                })
            },
            _bindFormResetHandler: function() {
                var t;
                this.form = this.element._form(), this.form.length && ((t = this.form.data("ui-form-reset-instances") || []).length || this.form.on("reset.ui-form-reset", this._formResetHandler), t.push(this), this.form.data("ui-form-reset-instances", t))
            },
            _unbindFormResetHandler: function() {
                var t;
                this.form.length && ((t = this.form.data("ui-form-reset-instances")).splice(x.inArray(this, t), 1), t.length ? this.form.data("ui-form-reset-instances", t) : this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset"))
            }
        }, x.ui.ie = !!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase()),
        /*!
         * jQuery UI Support for jQuery core 1.8.x and newer 1.13.3
         * https://jqueryui.com
         *
         * Copyright OpenJS Foundation and other contributors
         * Released under the MIT license.
         * https://jquery.org/license
         *
         */
        x.expr.pseudos || (x.expr.pseudos = x.expr[":"]), x.uniqueSort || (x.uniqueSort = x.unique), x.escapeSelector || (e = /([\0-\x1f\x7f]|^-?\d)|^-$|[^\x80-\uFFFF\w-]/g, i = function(t, e) {
            return e ? "\0" === t ? "�" : t.slice(0, -1) + "\\" + t.charCodeAt(t.length - 1).toString(16) + " " : "\\" + t
        }, x.escapeSelector = function(t) {
            return (t + "").replace(e, i)
        }), x.fn.even && x.fn.odd || x.fn.extend({
            even: function() {
                return this.filter(function(t) {
                    return t % 2 == 0
                })
            },
            odd: function() {
                return this.filter(function(t) {
                    return t % 2 == 1
                })
            }
        }),
        /*!
         * jQuery UI Keycode 1.13.3
         * https://jqueryui.com
         *
         * Copyright OpenJS Foundation and other contributors
         * Released under the MIT license.
         * https://jquery.org/license
         */
        x.ui.keyCode = {
            BACKSPACE: 8,
            COMMA: 188,
            DELETE: 46,
            DOWN: 40,
            END: 35,
            ENTER: 13,
            ESCAPE: 27,
            HOME: 36,
            LEFT: 37,
            PAGE_DOWN: 34,
            PAGE_UP: 33,
            PERIOD: 190,
            RIGHT: 39,
            SPACE: 32,
            TAB: 9,
            UP: 38
        },
        /*!
         * jQuery UI Labels 1.13.3
         * https://jqueryui.com
         *
         * Copyright OpenJS Foundation and other contributors
         * Released under the MIT license.
         * https://jquery.org/license
         */
        x.fn.labels = function() {
            var t, e, i;
            return this.length ? this[0].labels && this[0].labels.length ? this.pushStack(this[0].labels) : (e = this.eq(0).parents("label"), (t = this.attr("id")) && (i = (i = this.eq(0).parents().last()).add((i.length ? i : this).siblings()), t = "label[for='" + x.escapeSelector(t) + "']", e = e.add(i.find(t).addBack(t))), this.pushStack(e)) : this.pushStack([])
        }, x.ui.plugin = {
            add: function(t, e, i) {
                var n, o = x.ui[t].prototype;
                for (n in i) o.plugins[n] = o.plugins[n] || [], o.plugins[n].push([e, i[n]])
            },
            call: function(t, e, i, n) {
                var o, s = t.plugins[e];
                if (s && (n || t.element[0].parentNode && 11 !== t.element[0].parentNode.nodeType))
                    for (o = 0; o < s.length; o++) t.options[s[o][0]] && s[o][1].apply(t.element, i)
            }
        },
        /*!
         * jQuery UI Position 1.13.3
         * https://jqueryui.com
         *
         * Copyright OpenJS Foundation and other contributors
         * Released under the MIT license.
         * https://jquery.org/license
         *
         * https://api.jqueryui.com/position/
         */
        W = Math.max, C = Math.abs, o = /left|center|right/, s = /top|center|bottom/, r = /[\+\-]\d+(\.[\d]+)?%?/, l = /^\w+/, a = /%$/, h = x.fn.position, x.position = {
            scrollbarWidth: function() {
                var t, e, i;
                return void 0 !== n ? n : (i = (e = x("<div style='display:block;position:absolute;width:200px;height:200px;overflow:hidden;'><div style='height:300px;width:auto;'></div></div>")).children()[0], x("body").append(e), t = i.offsetWidth, e.css("overflow", "scroll"), t === (i = i.offsetWidth) && (i = e[0].clientWidth), e.remove(), n = t - i)
            },
            getScrollInfo: function(t) {
                var e = t.isWindow || t.isDocument ? "" : t.element.css("overflow-x"),
                    i = t.isWindow || t.isDocument ? "" : t.element.css("overflow-y"),
                    e = "scroll" === e || "auto" === e && t.width < t.element[0].scrollWidth;
                return {
                    width: "scroll" === i || "auto" === i && t.height < t.element[0].scrollHeight ? x.position.scrollbarWidth() : 0,
                    height: e ? x.position.scrollbarWidth() : 0
                }
            },
            getWithinInfo: function(t) {
                var e = x(t || window),
                    i = N(e[0]),
                    n = !!e[0] && 9 === e[0].nodeType;
                return {
                    element: e,
                    isWindow: i,
                    isDocument: n,
                    offset: !i && !n ? x(t).offset() : {
                        left: 0,
                        top: 0
                    },
                    scrollLeft: e.scrollLeft(),
                    scrollTop: e.scrollTop(),
                    width: e.outerWidth(),
                    height: e.outerHeight()
                }
            }
        }, x.fn.position = function(f) {
            var c, d, p, g, m, v, y, w, b, _, t, e;
            return f && f.of ? (v = "string" == typeof(f = x.extend({}, f)).of ? x(document).find(f.of) : x(f.of), y = x.position.getWithinInfo(f.within), w = x.position.getScrollInfo(y), b = (f.collision || "flip").split(" "), _ = {}, e = 9 === (e = (t = v)[0]).nodeType ? {
                width: t.width(),
                height: t.height(),
                offset: {
                    top: 0,
                    left: 0
                }
            } : N(e) ? {
                width: t.width(),
                height: t.height(),
                offset: {
                    top: t.scrollTop(),
                    left: t.scrollLeft()
                }
            } : e.preventDefault ? {
                width: 0,
                height: 0,
                offset: {
                    top: e.pageY,
                    left: e.pageX
                }
            } : {
                width: t.outerWidth(),
                height: t.outerHeight(),
                offset: t.offset()
            }, v[0].preventDefault && (f.at = "left top"), d = e.width, p = e.height, m = x.extend({}, g = e.offset), x.each(["my", "at"], function() {
                var t, e, i = (f[this] || "").split(" ");
                (i = 1 === i.length ? o.test(i[0]) ? i.concat(["center"]) : s.test(i[0]) ? ["center"].concat(i) : ["center", "center"] : i)[0] = o.test(i[0]) ? i[0] : "center", i[1] = s.test(i[1]) ? i[1] : "center", t = r.exec(i[0]), e = r.exec(i[1]), _[this] = [t ? t[0] : 0, e ? e[0] : 0], f[this] = [l.exec(i[0])[0], l.exec(i[1])[0]]
            }), 1 === b.length && (b[1] = b[0]), "right" === f.at[0] ? m.left += d : "center" === f.at[0] && (m.left += d / 2), "bottom" === f.at[1] ? m.top += p : "center" === f.at[1] && (m.top += p / 2), c = E(_.at, d, p), m.left += c[0], m.top += c[1], this.each(function() {
                var i, t, r = x(this),
                    l = r.outerWidth(),
                    a = r.outerHeight(),
                    e = L(this, "marginLeft"),
                    n = L(this, "marginTop"),
                    o = l + e + L(this, "marginRight") + w.width,
                    s = a + n + L(this, "marginBottom") + w.height,
                    h = x.extend({}, m),
                    u = E(_.my, r.outerWidth(), r.outerHeight());
                "right" === f.my[0] ? h.left -= l : "center" === f.my[0] && (h.left -= l / 2), "bottom" === f.my[1] ? h.top -= a : "center" === f.my[1] && (h.top -= a / 2), h.left += u[0], h.top += u[1], i = {
                    marginLeft: e,
                    marginTop: n
                }, x.each(["left", "top"], function(t, e) {
                    x.ui.position[b[t]] && x.ui.position[b[t]][e](h, {
                        targetWidth: d,
                        targetHeight: p,
                        elemWidth: l,
                        elemHeight: a,
                        collisionPosition: i,
                        collisionWidth: o,
                        collisionHeight: s,
                        offset: [c[0] + u[0], c[1] + u[1]],
                        my: f.my,
                        at: f.at,
                        within: y,
                        elem: r
                    })
                }), f.using && (t = function(t) {
                    var e = g.left - h.left,
                        i = e + d - l,
                        n = g.top - h.top,
                        o = n + p - a,
                        s = {
                            target: {
                                element: v,
                                left: g.left,
                                top: g.top,
                                width: d,
                                height: p
                            },
                            element: {
                                element: r,
                                left: h.left,
                                top: h.top,
                                width: l,
                                height: a
                            },
                            horizontal: i < 0 ? "left" : 0 < e ? "right" : "center",
                            vertical: o < 0 ? "top" : 0 < n ? "bottom" : "middle"
                        };
                    d < l && C(e + i) < d && (s.horizontal = "center"), p < a && C(n + o) < p && (s.vertical = "middle"), W(C(e), C(i)) > W(C(n), C(o)) ? s.important = "horizontal" : s.important = "vertical", f.using.call(this, t, s)
                }), r.offset(x.extend(h, {
                    using: t
                }))
            })) : h.apply(this, arguments)
        }, x.ui.position = {
            fit: {
                left: function(t, e) {
                    var i, n = e.within,
                        o = n.isWindow ? n.scrollLeft : n.offset.left,
                        n = n.width,
                        s = t.left - e.collisionPosition.marginLeft,
                        r = o - s,
                        l = s + e.collisionWidth - n - o;
                    n < e.collisionWidth ? 0 < r && l <= 0 ? (i = t.left + r + e.collisionWidth - n - o, t.left += r - i) : t.left = !(0 < l && r <= 0) && l < r ? o + n - e.collisionWidth : o : 0 < r ? t.left += r : 0 < l ? t.left -= l : t.left = W(t.left - s, t.left)
                },
                top: function(t, e) {
                    var i, n = e.within,
                        n = n.isWindow ? n.scrollTop : n.offset.top,
                        o = e.within.height,
                        s = t.top - e.collisionPosition.marginTop,
                        r = n - s,
                        l = s + e.collisionHeight - o - n;
                    o < e.collisionHeight ? 0 < r && l <= 0 ? (i = t.top + r + e.collisionHeight - o - n, t.top += r - i) : t.top = !(0 < l && r <= 0) && l < r ? n + o - e.collisionHeight : n : 0 < r ? t.top += r : 0 < l ? t.top -= l : t.top = W(t.top - s, t.top)
                }
            },
            flip: {
                left: function(t, e) {
                    var i = e.within,
                        n = i.offset.left + i.scrollLeft,
                        o = i.width,
                        i = i.isWindow ? i.scrollLeft : i.offset.left,
                        s = t.left - e.collisionPosition.marginLeft,
                        r = s - i,
                        s = s + e.collisionWidth - o - i,
                        l = "left" === e.my[0] ? -e.elemWidth : "right" === e.my[0] ? e.elemWidth : 0,
                        a = "left" === e.at[0] ? e.targetWidth : "right" === e.at[0] ? -e.targetWidth : 0,
                        h = -2 * e.offset[0];
                    r < 0 ? ((o = t.left + l + a + h + e.collisionWidth - o - n) < 0 || o < C(r)) && (t.left += l + a + h) : 0 < s && (0 < (n = t.left - e.collisionPosition.marginLeft + l + a + h - i) || C(n) < s) && (t.left += l + a + h)
                },
                top: function(t, e) {
                    var i = e.within,
                        n = i.offset.top + i.scrollTop,
                        o = i.height,
                        i = i.isWindow ? i.scrollTop : i.offset.top,
                        s = t.top - e.collisionPosition.marginTop,
                        r = s - i,
                        s = s + e.collisionHeight - o - i,
                        l = "top" === e.my[1] ? -e.elemHeight : "bottom" === e.my[1] ? e.elemHeight : 0,
                        a = "top" === e.at[1] ? e.targetHeight : "bottom" === e.at[1] ? -e.targetHeight : 0,
                        h = -2 * e.offset[1];
                    r < 0 ? ((o = t.top + l + a + h + e.collisionHeight - o - n) < 0 || o < C(r)) && (t.top += l + a + h) : 0 < s && (0 < (n = t.top - e.collisionPosition.marginTop + l + a + h - i) || C(n) < s) && (t.top += l + a + h)
                }
            },
            flipfit: {
                left: function() {
                    x.ui.position.flip.left.apply(this, arguments), x.ui.position.fit.left.apply(this, arguments)
                },
                top: function() {
                    x.ui.position.flip.top.apply(this, arguments), x.ui.position.fit.top.apply(this, arguments)
                }
            }
        }, x.ui.safeActiveElement = function(e) {
            var i;
            try {
                i = e.activeElement
            } catch (t) {
                i = e.body
            }
            return i = (i = i || e.body).nodeName ? i : e.body
        }, x.ui.safeBlur = function(t) {
            t && "body" !== t.nodeName.toLowerCase() && x(t).trigger("blur")
        },
        /*!
         * jQuery UI Scroll Parent 1.13.3
         * https://jqueryui.com
         *
         * Copyright OpenJS Foundation and other contributors
         * Released under the MIT license.
         * https://jquery.org/license
         */
        x.fn.scrollParent = function(t) {
            var e = this.css("position"),
                i = "absolute" === e,
                n = t ? /(auto|scroll|hidden)/ : /(auto|scroll)/,
                t = this.parents().filter(function() {
                    var t = x(this);
                    return (!i || "static" !== t.css("position")) && n.test(t.css("overflow") + t.css("overflow-y") + t.css("overflow-x"))
                }).eq(0);
            return "fixed" !== e && t.length ? t : x(this[0].ownerDocument || document)
        },
        /*!
         * jQuery UI Tabbable 1.13.3
         * https://jqueryui.com
         *
         * Copyright OpenJS Foundation and other contributors
         * Released under the MIT license.
         * https://jquery.org/license
         */
        x.extend(x.expr.pseudos, {
            tabbable: function(t) {
                var e = x.attr(t, "tabindex"),
                    i = null != e;
                return (!i || 0 <= e) && x.ui.focusable(t, i)
            }
        }),
        /*!
         * jQuery UI Unique ID 1.13.3
         * https://jqueryui.com
         *
         * Copyright OpenJS Foundation and other contributors
         * Released under the MIT license.
         * https://jquery.org/license
         */
        x.fn.extend({
            uniqueId: (u = 0, function() {
                return this.each(function() {
                    this.id || (this.id = "ui-id-" + ++u)
                })
            }),
            removeUniqueId: function() {
                return this.each(function() {
                    /^ui-id-\d+$/.test(this.id) && x(this).removeAttr("id")
                })
            }
        });
    /*!
     * jQuery UI Widget 1.13.3
     * https://jqueryui.com
     *
     * Copyright OpenJS Foundation and other contributors
     * Released under the MIT license.
     * https://jquery.org/license
     */
    var f, c = 0,
        d = Array.prototype.hasOwnProperty,
        p = Array.prototype.slice;
    x.cleanData = (f = x.cleanData, function(t) {
        for (var e, i, n = 0; null != (i = t[n]); n++)(e = x._data(i, "events")) && e.remove && x(i).triggerHandler("remove");
        f(t)
    }), x.widget = function(t, i, e) {
        var n, o, s, r = {},
            l = t.split(".")[0],
            a = l + "-" + (t = t.split(".")[1]);
        return e || (e = i, i = x.Widget), Array.isArray(e) && (e = x.extend.apply(null, [{}].concat(e))), x.expr.pseudos[a.toLowerCase()] = function(t) {
            return !!x.data(t, a)
        }, x[l] = x[l] || {}, n = x[l][t], o = x[l][t] = function(t, e) {
            if (!this || !this._createWidget) return new o(t, e);
            arguments.length && this._createWidget(t, e)
        }, x.extend(o, n, {
            version: e.version,
            _proto: x.extend({}, e),
            _childConstructors: []
        }), (s = new i).options = x.widget.extend({}, s.options), x.each(e, function(e, n) {
            function o() {
                return i.prototype[e].apply(this, arguments)
            }

            function s(t) {
                return i.prototype[e].apply(this, t)
            }
            r[e] = "function" != typeof n ? n : function() {
                var t, e = this._super,
                    i = this._superApply;
                return this._super = o, this._superApply = s, t = n.apply(this, arguments), this._super = e, this._superApply = i, t
            }
        }), o.prototype = x.widget.extend(s, {
            widgetEventPrefix: n && s.widgetEventPrefix || t
        }, r, {
            constructor: o,
            namespace: l,
            widgetName: t,
            widgetFullName: a
        }), n ? (x.each(n._childConstructors, function(t, e) {
            var i = e.prototype;
            x.widget(i.namespace + "." + i.widgetName, o, e._proto)
        }), delete n._childConstructors) : i._childConstructors.push(o), x.widget.bridge(t, o), o
    }, x.widget.extend = function(t) {
        for (var e, i, n = p.call(arguments, 1), o = 0, s = n.length; o < s; o++)
            for (e in n[o]) i = n[o][e], d.call(n[o], e) && void 0 !== i && (x.isPlainObject(i) ? t[e] = x.isPlainObject(t[e]) ? x.widget.extend({}, t[e], i) : x.widget.extend({}, i) : t[e] = i);
        return t
    }, x.widget.bridge = function(s, e) {
        var r = e.prototype.widgetFullName || s;
        x.fn[s] = function(i) {
            var t = "string" == typeof i,
                n = p.call(arguments, 1),
                o = this;
            return t ? this.length || "instance" !== i ? this.each(function() {
                var t, e = x.data(this, r);
                return "instance" === i ? (o = e, !1) : e ? "function" != typeof e[i] || "_" === i.charAt(0) ? x.error("no such method '" + i + "' for " + s + " widget instance") : (t = e[i].apply(e, n)) !== e && void 0 !== t ? (o = t && t.jquery ? o.pushStack(t.get()) : t, !1) : void 0 : x.error("cannot call methods on " + s + " prior to initialization; attempted to call method '" + i + "'")
            }) : o = void 0 : (n.length && (i = x.widget.extend.apply(null, [i].concat(n))), this.each(function() {
                var t = x.data(this, r);
                t ? (t.option(i || {}), t._init && t._init()) : x.data(this, r, new e(i, this))
            })), o
        }
    }, x.Widget = function() {}, x.Widget._childConstructors = [], x.Widget.prototype = {
        widgetName: "widget",
        widgetEventPrefix: "",
        defaultElement: "<div>",
        options: {
            classes: {},
            disabled: !1,
            create: null
        },
        _createWidget: function(t, e) {
            e = x(e || this.defaultElement || this)[0], this.element = x(e), this.uuid = c++, this.eventNamespace = "." + this.widgetName + this.uuid, this.bindings = x(), this.hoverable = x(), this.focusable = x(), this.classesElementLookup = {}, e !== this && (x.data(e, this.widgetFullName, this), this._on(!0, this.element, {
                remove: function(t) {
                    t.target === e && this.destroy()
                }
            }), this.document = x(e.style ? e.ownerDocument : e.document || e), this.window = x(this.document[0].defaultView || this.document[0].parentWindow)), this.options = x.widget.extend({}, this.options, this._getCreateOptions(), t), this._create(), this.options.disabled && this._setOptionDisabled(this.options.disabled), this._trigger("create", null, this._getCreateEventData()), this._init()
        },
        _getCreateOptions: function() {
            return {}
        },
        _getCreateEventData: x.noop,
        _create: x.noop,
        _init: x.noop,
        destroy: function() {
            var i = this;
            this._destroy(), x.each(this.classesElementLookup, function(t, e) {
                i._removeClass(e, t)
            }), this.element.off(this.eventNamespace).removeData(this.widgetFullName), this.widget().off(this.eventNamespace).removeAttr("aria-disabled"), this.bindings.off(this.eventNamespace)
        },
        _destroy: x.noop,
        widget: function() {
            return this.element
        },
        option: function(t, e) {
            var i, n, o, s = t;
            if (0 === arguments.length) return x.widget.extend({}, this.options);
            if ("string" == typeof t)
                if (s = {}, t = (i = t.split(".")).shift(), i.length) {
                    for (n = s[t] = x.widget.extend({}, this.options[t]), o = 0; o < i.length - 1; o++) n[i[o]] = n[i[o]] || {}, n = n[i[o]];
                    if (t = i.pop(), 1 === arguments.length) return void 0 === n[t] ? null : n[t];
                    n[t] = e
                } else {
                    if (1 === arguments.length) return void 0 === this.options[t] ? null : this.options[t];
                    s[t] = e
                }
            return this._setOptions(s), this
        },
        _setOptions: function(t) {
            for (var e in t) this._setOption(e, t[e]);
            return this
        },
        _setOption: function(t, e) {
            return "classes" === t && this._setOptionClasses(e), this.options[t] = e, "disabled" === t && this._setOptionDisabled(e), this
        },
        _setOptionClasses: function(t) {
            var e, i, n;
            for (e in t) n = this.classesElementLookup[e], t[e] !== this.options.classes[e] && n && n.length && (i = x(n.get()), this._removeClass(n, e), i.addClass(this._classes({
                element: i,
                keys: e,
                classes: t,
                add: !0
            })))
        },
        _setOptionDisabled: function(t) {
            this._toggleClass(this.widget(), this.widgetFullName + "-disabled", null, !!t), t && (this._removeClass(this.hoverable, null, "ui-state-hover"), this._removeClass(this.focusable, null, "ui-state-focus"))
        },
        enable: function() {
            return this._setOptions({
                disabled: !1
            })
        },
        disable: function() {
            return this._setOptions({
                disabled: !0
            })
        },
        _classes: function(o) {
            var s = [],
                r = this;

            function t(t, e) {
                for (var i, n = 0; n < t.length; n++) i = r.classesElementLookup[t[n]] || x(), i = o.add ? (function() {
                    var i = [];
                    o.element.each(function(t, e) {
                        x.map(r.classesElementLookup, function(t) {
                            return t
                        }).some(function(t) {
                            return t.is(e)
                        }) || i.push(e)
                    }), r._on(x(i), {
                        remove: "_untrackClassesElement"
                    })
                }(), x(x.uniqueSort(i.get().concat(o.element.get())))) : x(i.not(o.element).get()), r.classesElementLookup[t[n]] = i, s.push(t[n]), e && o.classes[t[n]] && s.push(o.classes[t[n]])
            }
            return (o = x.extend({
                element: this.element,
                classes: this.options.classes || {}
            }, o)).keys && t(o.keys.match(/\S+/g) || [], !0), o.extra && t(o.extra.match(/\S+/g) || []), s.join(" ")
        },
        _untrackClassesElement: function(i) {
            var n = this;
            x.each(n.classesElementLookup, function(t, e) {
                -1 !== x.inArray(i.target, e) && (n.classesElementLookup[t] = x(e.not(i.target).get()))
            }), this._off(x(i.target))
        },
        _removeClass: function(t, e, i) {
            return this._toggleClass(t, e, i, !1)
        },
        _addClass: function(t, e, i) {
            return this._toggleClass(t, e, i, !0)
        },
        _toggleClass: function(t, e, i, n) {
            var o = "string" == typeof t || null === t,
                e = {
                    extra: o ? e : i,
                    keys: o ? t : e,
                    element: o ? this.element : t,
                    add: n = "boolean" == typeof n ? n : i
                };
            return e.element.toggleClass(this._classes(e), n), this
        },
        _on: function(o, s, t) {
            var r, l = this;
            "boolean" != typeof o && (t = s, s = o, o = !1), t ? (s = r = x(s), this.bindings = this.bindings.add(s)) : (t = s, s = this.element, r = this.widget()), x.each(t, function(t, e) {
                function i() {
                    if (o || !0 !== l.options.disabled && !x(this).hasClass("ui-state-disabled")) return ("string" == typeof e ? l[e] : e).apply(l, arguments)
                }
                "string" != typeof e && (i.guid = e.guid = e.guid || i.guid || x.guid++);
                var t = t.match(/^([\w:-]*)\s*(.*)$/),
                    n = t[1] + l.eventNamespace,
                    t = t[2];
                t ? r.on(n, t, i) : s.on(n, i)
            })
        },
        _off: function(t, e) {
            e = (e || "").split(" ").join(this.eventNamespace + " ") + this.eventNamespace, t.off(e), this.bindings = x(this.bindings.not(t).get()), this.focusable = x(this.focusable.not(t).get()), this.hoverable = x(this.hoverable.not(t).get())
        },
        _delay: function(t, e) {
            var i = this;
            return setTimeout(function() {
                return ("string" == typeof t ? i[t] : t).apply(i, arguments)
            }, e || 0)
        },
        _hoverable: function(t) {
            this.hoverable = this.hoverable.add(t), this._on(t, {
                mouseenter: function(t) {
                    this._addClass(x(t.currentTarget), null, "ui-state-hover")
                },
                mouseleave: function(t) {
                    this._removeClass(x(t.currentTarget), null, "ui-state-hover")
                }
            })
        },
        _focusable: function(t) {
            this.focusable = this.focusable.add(t), this._on(t, {
                focusin: function(t) {
                    this._addClass(x(t.currentTarget), null, "ui-state-focus")
                },
                focusout: function(t) {
                    this._removeClass(x(t.currentTarget), null, "ui-state-focus")
                }
            })
        },
        _trigger: function(t, e, i) {
            var n, o, s = this.options[t];
            if (i = i || {}, (e = x.Event(e)).type = (t === this.widgetEventPrefix ? t : this.widgetEventPrefix + t).toLowerCase(), e.target = this.element[0], o = e.originalEvent)
                for (n in o) n in e || (e[n] = o[n]);
            return this.element.trigger(e, i), !("function" == typeof s && !1 === s.apply(this.element[0], [e].concat(i)) || e.isDefaultPrevented())
        }
    }, x.each({
        show: "fadeIn",
        hide: "fadeOut"
    }, function(s, r) {
        x.Widget.prototype["_" + s] = function(e, t, i) {
            var n, o = (t = "string" == typeof t ? {
                effect: t
            } : t) ? !0 !== t && "number" != typeof t && t.effect || r : s;
            "number" == typeof(t = t || {}) ? t = {
                duration: t
            }: !0 === t && (t = {}), n = !x.isEmptyObject(t), t.complete = i, t.delay && e.delay(t.delay), n && x.effects && x.effects.effect[o] ? e[s](t) : o !== s && e[o] ? e[o](t.duration, t.easing, i) : e.queue(function(t) {
                x(this)[s](), i && i.call(e[0]), t()
            })
        }
    })
}); /*! elementor - v3.27.0 - 13-03-2025 */
"use strict";
(self.webpackChunkelementorFrontend = self.webpackChunkelementorFrontend || []).push([
    [313], {
        4047: (e, t, n) => {
            var o = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            var i = o(n(2890));
            class _default extends elementorModules.ViewModule {
                constructor() {
                    super(...arguments), this.documents = {}, this.initDocumentClasses(), this.attachDocumentsClasses()
                }
                getDefaultSettings() {
                    return {
                        selectors: {
                            document: ".elementor"
                        }
                    }
                }
                getDefaultElements() {
                    const e = this.getSettings("selectors");
                    return {
                        $documents: jQuery(e.document)
                    }
                }
                initDocumentClasses() {
                    this.documentClasses = {
                        base: i.default
                    }, elementorFrontend.hooks.doAction("elementor/frontend/documents-manager/init-classes", this)
                }
                addDocumentClass(e, t) {
                    this.documentClasses[e] = t
                }
                attachDocumentsClasses() {
                    this.elements.$documents.each(((e, t) => this.attachDocumentClass(jQuery(t))))
                }
                attachDocumentClass(e) {
                    const t = e.data(),
                        n = t.elementorId,
                        o = t.elementorType,
                        i = this.documentClasses[o] || this.documentClasses.base;
                    this.documents[n] = new i({
                        $element: e,
                        id: n
                    })
                }
            }
            t.default = _default
        },
        7248: (e, t, n) => {
            var o = n(6784);
            n(5724), n(4846), n(9655);
            var i = o(n(4970)),
                s = o(n(3969)),
                r = o(n(3678)),
                a = o(n(8891)),
                l = o(n(2056)),
                d = o(n(2439)),
                c = o(n(3243));
            e.exports = function(e) {
                var t = this;
                const o = {};
                this.elementsHandlers = {
                    "accordion.default": () => n.e(131).then(n.bind(n, 9675)),
                    "alert.default": () => n.e(707).then(n.bind(n, 7243)),
                    "counter.default": () => n.e(457).then(n.bind(n, 3905)),
                    "progress.default": () => n.e(234).then(n.bind(n, 9754)),
                    "tabs.default": () => n.e(575).then(n.bind(n, 3485)),
                    "toggle.default": () => n.e(775).then(n.bind(n, 3049)),
                    "video.default": () => n.e(180).then(n.bind(n, 3774)),
                    "image-carousel.default": () => n.e(177).then(n.bind(n, 4315)),
                    "text-editor.default": () => n.e(212).then(n.bind(n, 5362)),
                    "wp-widget-media_audio.default": () => n.e(211).then(n.bind(n, 2793))
                }, elementorFrontendConfig.experimentalFeatures["nested-elements"] && (this.elementsHandlers["nested-tabs.default"] = () => Promise.resolve().then(n.bind(n, 4328))), elementorFrontendConfig.experimentalFeatures["nested-elements"] && (this.elementsHandlers["nested-accordion.default"] = () => n.e(915).then(n.bind(n, 8216))), elementorFrontendConfig.experimentalFeatures.container && (this.elementsHandlers["contact-buttons.default"] = () => n.e(1).then(n.bind(n, 6285)), this.elementsHandlers["floating-bars-var-1.default"] = () => n.e(336).then(n.bind(n, 5199)));
                const addElementsHandlers = () => {
                        this.elementsHandlers.section = [d.default, ...s.default, l.default, c.default], this.elementsHandlers.container = [...s.default], elementorFrontend.isEditMode() && this.elementsHandlers.container.push(...r.default), this.elementsHandlers.column = a.default, e.each(this.elementsHandlers, ((e, t) => {
                            const n = e.split(".");
                            e = n[0];
                            const o = n[1] || null;
                            this.attachHandler(e, t, o)
                        }))
                    },
                    isClassHandler = e => e.prototype ? .getUniqueHandlerID;
                this.addHandler = function(t, n) {
                    const i = n.$element.data("model-cid");
                    let s;
                    if (i) {
                        s = t.prototype.getConstructorID(), o[i] || (o[i] = {});
                        const e = o[i][s];
                        e && e.onDestroy()
                    }
                    const r = new t(n);
                    elementorFrontend.hooks.doAction(`frontend/element_handler_ready/${n.elementName}`, n.$element, e), i && (o[i][s] = r)
                }, this.attachHandler = (e, n, o) => {
                    Array.isArray(n) || (n = [n]), n.forEach((n => function(e, n) {
                        let o = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "default";
                        o = o ? "." + o : "";
                        const i = e + o;
                        elementorFrontend.hooks.addAction(`frontend/element_ready/${i}`, (e => {
                            if (isClassHandler(n)) t.addHandler(n, {
                                $element: e,
                                elementName: i
                            }, !0);
                            else {
                                const o = n();
                                if (!o) return;
                                o instanceof Promise ? o.then((n => {
                                    let {
                                        default: o
                                    } = n;
                                    t.addHandler(o, {
                                        $element: e,
                                        elementName: i
                                    }, !0)
                                })) : t.addHandler(o, {
                                    $element: e,
                                    elementName: i
                                }, !0)
                            }
                        }))
                    }(e, n, o)))
                }, this.getHandler = function(e) {
                    const t = this.elementsHandlers[e];
                    return isClassHandler(t) ? t : new Promise((e => {
                        t().then((t => {
                            let {
                                default: n
                            } = t;
                            e(n)
                        }))
                    }))
                }, this.getHandlers = function(e) {
                    return elementorDevTools.deprecation.deprecated("getHandlers", "3.1.0", "elementorFrontend.elementsHandler.getHandler"), e ? this.getHandler(e) : this.elementsHandlers
                }, this.runReadyTrigger = function(t) {
                    const n = !!t.closest('[data-delay-child-handlers="true"]') && 0 !== t.closest('[data-delay-child-handlers="true"]').length;
                    if (elementorFrontend.config.is_static || n) return;
                    const o = jQuery(t),
                        i = o.attr("data-element_type");
                    if (i && (elementorFrontend.hooks.doAction("frontend/element_ready/global", o, e), elementorFrontend.hooks.doAction(`frontend/element_ready/${i}`, o, e), "widget" === i)) {
                        const t = o.attr("data-widget_type");
                        elementorFrontend.hooks.doAction(`frontend/element_ready/${t}`, o, e)
                    }
                }, this.init = () => {
                    elementorFrontend.hooks.addAction("frontend/element_ready/global", i.default), addElementsHandlers()
                }
            }
        },
        7603: (e, t, n) => {
            var o = n(6784);
            n(4846), n(6211), n(9655), n(8309);
            var i = o(n(4047)),
                s = o(n(8767)),
                r = o(n(5115)),
                a = o(n(5073)),
                l = o(n(3126)),
                d = o(n(8427)),
                c = o(n(3582)),
                u = o(n(4901)),
                h = o(n(4252)),
                m = o(n(8422)),
                g = o(n(5896)),
                p = o(n(4799)),
                f = o(n(7842)),
                v = o(n(607)),
                b = o(n(9807)),
                y = n(7672);
            const _ = n(5956),
                k = n(7248);
            class Frontend extends elementorModules.ViewModule {
                constructor() {
                    super(...arguments), this.config = elementorFrontendConfig, this.config.legacyMode = {
                        get elementWrappers() {
                            return elementorFrontend.isEditMode() && window.top.elementorDevTools.deprecation.deprecated("elementorFrontend.config.legacyMode.elementWrappers", "3.1.0"), !1
                        }
                    }, this.populateActiveBreakpointsConfig()
                }
                get Module() {
                    return this.isEditMode() && parent.elementorDevTools.deprecation.deprecated("elementorFrontend.Module", "2.5.0", "elementorModules.frontend.handlers.Base"), elementorModules.frontend.handlers.Base
                }
                getDefaultSettings() {
                    return {
                        selectors: {
                            elementor: ".elementor",
                            adminBar: "#wpadminbar"
                        }
                    }
                }
                getDefaultElements() {
                    const e = {
                        window,
                        $window: jQuery(window),
                        $document: jQuery(document),
                        $head: jQuery(document.head),
                        $body: jQuery(document.body),
                        $deviceMode: jQuery("<span>", {
                            id: "elementor-device-mode",
                            class: "elementor-screen-only"
                        })
                    };
                    return e.$body.append(e.$deviceMode), e
                }
                bindEvents() {
                    this.elements.$window.on("resize", (() => this.setDeviceModeData()))
                }
                getElements(e) {
                    return this.getItems(this.elements, e)
                }
                getPageSettings(e) {
                    const t = this.isEditMode() ? elementor.settings.page.model.attributes : this.config.settings.page;
                    return this.getItems(t, e)
                }
                getGeneralSettings(e) {
                    return this.isEditMode() && parent.elementorDevTools.deprecation.deprecated("getGeneralSettings()", "3.0.0", "getKitSettings() and remove the `elementor_` prefix"), this.getKitSettings(`elementor_${e}`)
                }
                getKitSettings(e) {
                    return this.getItems(this.config.kit, e)
                }
                getCurrentDeviceMode() {
                    return getComputedStyle(this.elements.$deviceMode[0], ":after").content.replace(/"/g, "")
                }
                getDeviceSetting(e, t, n) {
                    if ("widescreen" === e) return this.getWidescreenSetting(t, n);
                    const o = elementorFrontend.breakpoints.getActiveBreakpointsList({
                        largeToSmall: !0,
                        withDesktop: !0
                    });
                    let i = o.indexOf(e);
                    for (; i > 0;) {
                        const e = t[n + "_" + o[i]];
                        if (e || 0 === e) return e;
                        i--
                    }
                    return t[n]
                }
                getWidescreenSetting(e, t) {
                    const n = t + "_widescreen";
                    let o;
                    return o = e[n] ? e[n] : e[t], o
                }
                getCurrentDeviceSetting(e, t) {
                    return this.getDeviceSetting(elementorFrontend.getCurrentDeviceMode(), e, t)
                }
                isEditMode() {
                    return this.config.environmentMode.edit
                }
                isWPPreviewMode() {
                    return this.config.environmentMode.wpPreview
                }
                initDialogsManager() {
                    let e;
                    this.getDialogsManager = () => (e || (e = new DialogsManager.Instance), e)
                }
                initOnReadyComponents() {
                    this.utils = {
                        youtube: new a.default,
                        vimeo: new l.default,
                        baseVideoLoader: new d.default,
                        get lightbox() {
                            return h.default.getLightbox()
                        },
                        urlActions: new c.default,
                        swiper: u.default,
                        environment: r.default,
                        assetsLoader: new m.default,
                        escapeHTML: y.escapeHTML,
                        events: p.default,
                        controls: new v.default,
                        anchor_scroll_margin: new b.default
                    }, this.modules = {
                        StretchElement: elementorModules.frontend.tools.StretchElement,
                        Masonry: elementorModules.utils.Masonry
                    }, this.elementsHandler.init(), this.isEditMode() ? elementor.once("document:loaded", (() => this.onDocumentLoaded())) : this.onDocumentLoaded()
                }
                initOnReadyElements() {
                    this.elements.$wpAdminBar = this.elements.$document.find(this.getSettings("selectors.adminBar"))
                }
                addUserAgentClasses() {
                    for (const [e, t] of Object.entries(r.default)) t && this.elements.$body.addClass("e--ua-" + e)
                }
                setDeviceModeData() {
                    this.elements.$body.attr("data-elementor-device-mode", this.getCurrentDeviceMode())
                }
                addListenerOnce(e, t, n, o) {
                    if (o || (o = this.elements.$window), this.isEditMode())
                        if (this.removeListeners(e, t, o), o instanceof jQuery) {
                            const i = t + "." + e;
                            o.on(i, n)
                        } else o.on(t, n, e);
                    else o.on(t, n)
                }
                removeListeners(e, t, n, o) {
                    if (o || (o = this.elements.$window), o instanceof jQuery) {
                        const i = t + "." + e;
                        o.off(i, n)
                    } else o.off(t, n, e)
                }
                debounce(e, t) {
                    let n;
                    return function() {
                        const o = this,
                            i = arguments,
                            s = !n;
                        clearTimeout(n), n = setTimeout((() => {
                            n = null, e.apply(o, i)
                        }), t), s && e.apply(o, i)
                    }
                }
                muteMigrationTraces() {
                    jQuery.migrateMute = !0, jQuery.migrateTrace = !1
                }
                initModules() {
                    const e = {
                        shapes: f.default
                    };
                    elementorFrontend.trigger("elementor/modules/init:before"), elementorFrontend.trigger("elementor/modules/init/before"), Object.entries(e).forEach((e => {
                        let [t, n] = e;
                        this.modulesHandlers[t] = new n
                    }))
                }
                populateActiveBreakpointsConfig() {
                    this.config.responsive.activeBreakpoints = {}, Object.entries(this.config.responsive.breakpoints).forEach((e => {
                        let [t, n] = e;
                        n.is_enabled && (this.config.responsive.activeBreakpoints[t] = n)
                    }))
                }
                init() {
                    this.hooks = new _, this.breakpoints = new g.default(this.config.responsive), this.storage = new s.default, this.elementsHandler = new k(jQuery), this.modulesHandlers = {}, this.addUserAgentClasses(), this.setDeviceModeData(), this.initDialogsManager(), this.isEditMode() && this.muteMigrationTraces(), p.default.dispatch(this.elements.$window, "elementor/frontend/init"), this.initModules(), this.initOnReadyElements(), this.initOnReadyComponents()
                }
                onDocumentLoaded() {
                    this.documentsManager = new i.default, this.trigger("components:init"), new h.default
                }
            }
            window.elementorFrontend = new Frontend, elementorFrontend.isEditMode() || jQuery((() => elementorFrontend.init()))
        },
        628: (e, t, n) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0, n(4846), n(9655);
            class BackgroundSlideshow extends elementorModules.frontend.handlers.SwiperBase {
                getDefaultSettings() {
                    return {
                        classes: {
                            swiperContainer: "elementor-background-slideshow swiper",
                            swiperWrapper: "swiper-wrapper",
                            swiperSlide: "elementor-background-slideshow__slide swiper-slide",
                            swiperPreloader: "swiper-lazy-preloader",
                            slideBackground: "elementor-background-slideshow__slide__image",
                            kenBurns: "elementor-ken-burns",
                            kenBurnsActive: "elementor-ken-burns--active",
                            kenBurnsIn: "elementor-ken-burns--in",
                            kenBurnsOut: "elementor-ken-burns--out"
                        }
                    }
                }
                getSwiperOptions() {
                    const e = this.getElementSettings(),
                        t = {
                            grabCursor: !1,
                            slidesPerView: 1,
                            slidesPerGroup: 1,
                            loop: "yes" === e.background_slideshow_loop,
                            speed: e.background_slideshow_transition_duration,
                            autoplay: {
                                delay: e.background_slideshow_slide_duration,
                                stopOnLastSlide: !e.background_slideshow_loop
                            },
                            handleElementorBreakpoints: !0,
                            on: {
                                slideChange: () => {
                                    e.background_slideshow_ken_burns && this.handleKenBurns()
                                }
                            }
                        };
                    switch ("yes" === e.background_slideshow_loop && (t.loopedSlides = this.getSlidesCount()), e.background_slideshow_slide_transition) {
                        case "fade":
                            t.effect = "fade", t.fadeEffect = {
                                crossFade: !0
                            };
                            break;
                        case "slide_down":
                            t.autoplay.reverseDirection = !0, t.direction = "vertical";
                            break;
                        case "slide_up":
                            t.direction = "vertical"
                    }
                    return "yes" === e.background_slideshow_lazyload && (t.lazy = {
                        loadPrevNext: !0,
                        loadPrevNextAmount: 1
                    }), t
                }
                buildSwiperElements() {
                    const e = this.getSettings("classes"),
                        t = this.getElementSettings(),
                        n = "slide_left" === t.background_slideshow_slide_transition ? "ltr" : "rtl",
                        o = jQuery("<div>", {
                            class: e.swiperContainer,
                            dir: n
                        }),
                        i = jQuery("<div>", {
                            class: e.swiperWrapper
                        }),
                        s = t.background_slideshow_ken_burns,
                        r = "yes" === t.background_slideshow_lazyload;
                    let a = e.slideBackground;
                    if (s) {
                        a += " " + e.kenBurns;
                        const n = "in" === t.background_slideshow_ken_burns_zoom_direction ? "kenBurnsIn" : "kenBurnsOut";
                        a += " " + e[n]
                    }
                    r && (a += " swiper-lazy"), this.elements.$slides = jQuery(), t.background_slideshow_gallery.forEach((t => {
                        const n = jQuery("<div>", {
                            class: e.swiperSlide
                        });
                        let o;
                        if (r) {
                            const n = jQuery("<div>", {
                                class: e.swiperPreloader
                            });
                            o = jQuery("<div>", {
                                class: a,
                                "data-background": t.url
                            }), o.append(n)
                        } else o = jQuery("<div>", {
                            class: a,
                            style: 'background-image: url("' + t.url + '");'
                        });
                        n.append(o), i.append(n), this.elements.$slides = this.elements.$slides.add(n)
                    })), o.append(i), this.$element.prepend(o), this.elements.$backgroundSlideShowContainer = o
                }
                async initSlider() {
                    if (1 >= this.getSlidesCount()) return;
                    const e = this.getElementSettings(),
                        t = elementorFrontend.utils.swiper;
                    this.swiper = await new t(this.elements.$backgroundSlideShowContainer, this.getSwiperOptions()), this.elements.$backgroundSlideShowContainer.data("swiper", this.swiper), e.background_slideshow_ken_burns && this.handleKenBurns()
                }
                activate() {
                    this.buildSwiperElements(), this.initSlider()
                }
                deactivate() {
                    this.swiper && (this.swiper.destroy(), this.elements.$backgroundSlideShowContainer.remove())
                }
                run() {
                    "slideshow" === this.getElementSettings("background_background") ? this.activate() : this.deactivate()
                }
                onInit() {
                    super.onInit(), this.getElementSettings("background_slideshow_gallery") && this.run()
                }
                onDestroy() {
                    super.onDestroy(), this.deactivate()
                }
                onElementChange(e) {
                    "background_background" === e && this.run()
                }
            }
            t.default = BackgroundSlideshow
        },
        3031: (e, t, n) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0, n(4846), n(6211);
            class BackgroundVideo extends elementorModules.frontend.handlers.Base {
                getDefaultSettings() {
                    return {
                        selectors: {
                            backgroundVideoContainer: ".elementor-background-video-container",
                            backgroundVideoEmbed: ".elementor-background-video-embed",
                            backgroundVideoHosted: ".elementor-background-video-hosted"
                        }
                    }
                }
                getDefaultElements() {
                    const e = this.getSettings("selectors"),
                        t = {
                            $backgroundVideoContainer: this.$element.find(e.backgroundVideoContainer)
                        };
                    return t.$backgroundVideoEmbed = t.$backgroundVideoContainer.children(e.backgroundVideoEmbed), t.$backgroundVideoHosted = t.$backgroundVideoContainer.children(e.backgroundVideoHosted), t
                }
                calcVideosSize(e) {
                    let t = "16:9";
                    "vimeo" === this.videoType && (t = e[0].width + ":" + e[0].height);
                    const n = this.elements.$backgroundVideoContainer.outerWidth(),
                        o = this.elements.$backgroundVideoContainer.outerHeight(),
                        i = t.split(":"),
                        s = i[0] / i[1],
                        r = n / o > s;
                    return {
                        width: r ? n : o * s,
                        height: r ? n / s : o
                    }
                }
                changeVideoSize() {
                    if ("hosted" !== this.videoType && !this.player) return;
                    let e;
                    if ("youtube" === this.videoType ? e = jQuery(this.player.getIframe()) : "vimeo" === this.videoType ? e = jQuery(this.player.element) : "hosted" === this.videoType && (e = this.elements.$backgroundVideoHosted), !e) return;
                    const t = this.calcVideosSize(e);
                    e.width(t.width).height(t.height)
                }
                startVideoLoop(e) {
                    if (!this.player.getIframe().contentWindow) return;
                    const t = this.getElementSettings(),
                        n = t.background_video_start || 0,
                        o = t.background_video_end;
                    if (!t.background_play_once || e) {
                        if (this.player.seekTo(n), o) {
                            setTimeout((() => {
                                this.startVideoLoop(!1)
                            }), 1e3 * (o - n + 1))
                        }
                    } else this.player.stopVideo()
                }
                prepareVimeoVideo(e, t) {
                    const n = this.getElementSettings(),
                        o = {
                            url: t,
                            width: this.elements.$backgroundVideoContainer.outerWidth().width,
                            autoplay: !0,
                            loop: !n.background_play_once,
                            transparent: !0,
                            background: !0,
                            muted: !0
                        };
                    n.background_privacy_mode && (o.dnt = !0), this.player = new e.Player(this.elements.$backgroundVideoContainer, o), this.handleVimeoStartEndTimes(n), this.player.ready().then((() => {
                        jQuery(this.player.element).addClass("elementor-background-video-embed"), this.changeVideoSize()
                    }))
                }
                handleVimeoStartEndTimes(e) {
                    e.background_video_start && this.player.on("play", (t => {
                        0 === t.seconds && this.player.setCurrentTime(e.background_video_start)
                    })), this.player.on("timeupdate", (t => {
                        e.background_video_end && e.background_video_end < t.seconds && (e.background_play_once ? this.player.pause() : this.player.setCurrentTime(e.background_video_start)), this.player.getDuration().then((n => {
                            e.background_video_start && !e.background_video_end && t.seconds > n - .5 && this.player.setCurrentTime(e.background_video_start)
                        }))
                    }))
                }
                prepareYTVideo(e, t) {
                    const n = this.elements.$backgroundVideoContainer,
                        o = this.getElementSettings();
                    let i = e.PlayerState.PLAYING;
                    window.chrome && (i = e.PlayerState.UNSTARTED);
                    const s = {
                        videoId: t,
                        events: {
                            onReady: () => {
                                this.player.mute(), this.changeVideoSize(), this.startVideoLoop(!0), this.player.playVideo()
                            },
                            onStateChange: t => {
                                switch (t.data) {
                                    case i:
                                        n.removeClass("elementor-invisible elementor-loading");
                                        break;
                                    case e.PlayerState.ENDED:
                                        "function" == typeof this.player.seekTo && this.player.seekTo(o.background_video_start || 0), o.background_play_once && this.player.destroy()
                                }
                            }
                        },
                        playerVars: {
                            controls: 0,
                            rel: 0,
                            playsinline: 1,
                            cc_load_policy: 0
                        }
                    };
                    o.background_privacy_mode && (s.host = "https://www.youtube-nocookie.com", s.origin = window.location.hostname), n.addClass("elementor-loading elementor-invisible"), this.player = new e.Player(this.elements.$backgroundVideoEmbed[0], s)
                }
                activate() {
                    let e, t = this.getElementSettings("background_video_link");
                    const n = this.getElementSettings("background_play_once");
                    if (-1 !== t.indexOf("vimeo.com") ? (this.videoType = "vimeo", this.apiProvider = elementorFrontend.utils.vimeo) : t.match(/^(?:https?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com)/) && (this.videoType = "youtube", this.apiProvider = elementorFrontend.utils.youtube), this.apiProvider) e = this.apiProvider.getVideoIDFromURL(t), this.apiProvider.onApiReady((n => {
                        "youtube" === this.videoType && this.prepareYTVideo(n, e), "vimeo" === this.videoType && this.prepareVimeoVideo(n, t)
                    }));
                    else {
                        this.videoType = "hosted";
                        const e = this.getElementSettings("background_video_start"),
                            o = this.getElementSettings("background_video_end");
                        (e || o) && (t += "#t=" + (e || 0) + (o ? "," + o : "")), this.elements.$backgroundVideoHosted.attr("src", t).one("canplay", this.changeVideoSize.bind(this)), n && this.elements.$backgroundVideoHosted.on("ended", (() => {
                            this.elements.$backgroundVideoHosted.hide()
                        }))
                    }
                    elementorFrontend.elements.$window.on("resize elementor/bg-video/recalc", this.changeVideoSize)
                }
                deactivate() {
                    "youtube" === this.videoType && this.player.getIframe() || "vimeo" === this.videoType ? this.player.destroy() : this.elements.$backgroundVideoHosted.removeAttr("src").off("ended"), elementorFrontend.elements.$window.off("resize", this.changeVideoSize)
                }
                run() {
                    const e = this.getElementSettings();
                    (e.background_play_on_mobile || "mobile" !== elementorFrontend.getCurrentDeviceMode()) && ("video" === e.background_background && e.background_video_link ? this.activate() : this.deactivate())
                }
                onInit() {
                    super.onInit(...arguments), this.changeVideoSize = this.changeVideoSize.bind(this), this.run()
                }
                onElementChange(e) {
                    "background_background" === e && this.run()
                }
            }
            t.default = BackgroundVideo
        },
        3969: (e, t, n) => {
            var o = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            var i = o(n(628)),
                s = o(n(3031));
            t.default = [i.default, s.default]
        },
        8891: (e, t, n) => {
            var o = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            var i = o(n(628));
            t.default = [i.default]
        },
        3678: (e, t, n) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            t.default = [() => n.e(216).then(n.bind(n, 2460)), () => n.e(216).then(n.bind(n, 8847)), () => n.e(216).then(n.bind(n, 3323))]
        },
        4970: (e, t) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            class GlobalHandler extends elementorModules.frontend.handlers.Base {
                getWidgetType() {
                    return "global"
                }
                animate() {
                    const e = this.$element,
                        t = this.getAnimation();
                    if ("none" === t) return void e.removeClass("elementor-invisible");
                    const n = this.getElementSettings(),
                        o = n._animation_delay || n.animation_delay || 0;
                    e.removeClass(t), this.currentAnimation && e.removeClass(this.currentAnimation), this.currentAnimation = t, setTimeout((() => {
                        e.removeClass("elementor-invisible").addClass("animated " + t)
                    }), o)
                }
                getAnimation() {
                    return this.getCurrentDeviceSetting("animation") || this.getCurrentDeviceSetting("_animation")
                }
                onInit() {
                    if (super.onInit(...arguments), this.getAnimation()) {
                        const e = elementorModules.utils.Scroll.scrollObserver({
                            callback: t => {
                                t.isInViewport && (this.animate(), e.unobserve(this.$element[0]))
                            }
                        });
                        e.observe(this.$element[0])
                    }
                }
                onElementChange(e) {
                    /^_?animation/.test(e) && this.animate()
                }
            }
            t.default = e => {
                elementorFrontend.elementsHandler.addHandler(GlobalHandler, {
                    $element: e
                })
            }
        },
        2056: (e, t, n) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0, n(4846), n(6211);
            class HandlesPosition extends elementorModules.frontend.handlers.Base {
                isActive() {
                    return elementorFrontend.isEditMode()
                }
                isFirstSection() {
                    return this.$element[0] === document.querySelector(".elementor-edit-mode .elementor-top-section")
                }
                isOverflowHidden() {
                    return "hidden" === this.$element.css("overflow")
                }
                getOffset() {
                    if ("body" === elementor.config.document.container) return this.$element.offset().top;
                    const e = jQuery(elementor.config.document.container);
                    return this.$element.offset().top - e.offset().top
                }
                setHandlesPosition() {
                    const e = elementor.documents.getCurrent();
                    if (!e || !e.container.isEditable()) return;
                    const t = "elementor-section--handles-inside";
                    if (elementor.settings.page.model.attributes.scroll_snap) return void this.$element.addClass(t);
                    const n = this.isOverflowHidden();
                    if (!n && !this.isFirstSection()) return;
                    const o = n ? 0 : this.getOffset();
                    if (o < 25) {
                        this.$element.addClass(t);
                        const e = this.$element.find("> .elementor-element-overlay > .elementor-editor-section-settings");
                        o < -5 ? e.css("top", -o) : e.css("top", "")
                    } else this.$element.removeClass(t)
                }
                onInit() {
                    this.isActive() && (this.setHandlesPosition(), this.$element.on("mouseenter", this.setHandlesPosition.bind(this)))
                }
            }
            t.default = HandlesPosition
        },
        3243: (e, t, n) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0, n(4846), n(6211);
            class Shapes extends elementorModules.frontend.handlers.Base {
                getDefaultSettings() {
                    return {
                        selectors: {
                            container: "> .elementor-shape-%s"
                        },
                        svgURL: elementorFrontend.config.urls.assets + "shapes/"
                    }
                }
                getDefaultElements() {
                    const e = {},
                        t = this.getSettings("selectors");
                    return e.$topContainer = this.$element.find(t.container.replace("%s", "top")), e.$bottomContainer = this.$element.find(t.container.replace("%s", "bottom")), e
                }
                isActive() {
                    return elementorFrontend.isEditMode()
                }
                getSvgURL(e, t) {
                    let n = this.getSettings("svgURL") + t + ".svg";
                    return elementor.config.additional_shapes && e in elementor.config.additional_shapes && (n = elementor.config.additional_shapes[e], -1 < t.indexOf("-negative") && (n = n.replace(".svg", "-negative.svg"))), n
                }
                buildSVG(e) {
                    const t = "shape_divider_" + e,
                        n = this.getElementSettings(t),
                        o = this.elements["$" + e + "Container"];
                    if (o.attr("data-shape", n), !n) return void o.empty();
                    let i = n;
                    this.getElementSettings(t + "_negative") && (i += "-negative");
                    const s = this.getSvgURL(n, i);
                    jQuery.get(s, (e => {
                        o.empty().append(e.childNodes[0])
                    })), this.setNegative(e)
                }
                setNegative(e) {
                    this.elements["$" + e + "Container"].attr("data-negative", !!this.getElementSettings("shape_divider_" + e + "_negative"))
                }
                onInit() {
                    this.isActive(this.getSettings()) && (super.onInit(...arguments), ["top", "bottom"].forEach((e => {
                        this.getElementSettings("shape_divider_" + e) && this.buildSVG(e)
                    })))
                }
                onElementChange(e) {
                    const t = e.match(/^shape_divider_(top|bottom)$/);
                    if (t) return void this.buildSVG(t[1]);
                    const n = e.match(/^shape_divider_(top|bottom)_negative$/);
                    n && (this.buildSVG(n[1]), this.setNegative(n[1]))
                }
            }
            t.default = Shapes
        },
        2439: (e, t) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            class StretchedSection extends elementorModules.frontend.handlers.StretchedElement {
                getStretchedClass() {
                    return "elementor-section-stretched"
                }
                getStretchSettingName() {
                    return "stretch_section"
                }
                getStretchActiveValue() {
                    return "section-stretched"
                }
            }
            t.default = StretchedSection
        },
        9807: (e, t, n) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0, n(5724), n(4846), n(7458), n(9655);
            class _default extends elementorModules.ViewModule {
                getDefaultSettings() {
                    return {
                        selectors: {
                            links: '.elementor-element a[href*="#"]',
                            stickyElements: ".elementor-element.elementor-sticky"
                        }
                    }
                }
                onInit() {
                    this.observeStickyElements((() => {
                        this.initializeStickyAndAnchorTracking()
                    }))
                }
                observeStickyElements(e) {
                    new MutationObserver((t => {
                        for (const n of t)("childList" === n.type || "attributes" === n.type && n.target.classList.contains("elementor-sticky")) && e()
                    })).observe(document.body, {
                        childList: !0,
                        subtree: !0,
                        attributes: !0,
                        attributeFilter: ["class", "style"]
                    })
                }
                initializeStickyAndAnchorTracking() {
                    const e = this.getAllAnchorLinks(),
                        t = this.getAllStickyElements(),
                        n = [];
                    !t.length > 0 && !e.length > 0 || (this.trackStickyElements(t, n), this.trackAnchorLinks(e, n), this.organizeStickyAndAnchors(n))
                }
                trackAnchorLinks(e, t) {
                    e.forEach((e => {
                        const n = this.getAnchorTarget(e),
                            o = this.getScrollPosition(n);
                        t.push({
                            element: n,
                            type: "anchor",
                            scrollPosition: o
                        })
                    }))
                }
                trackStickyElements(e, t) {
                    e.forEach((e => {
                        const n = this.getElementSettings(e);
                        if (!n || !n.sticky_anchor_link_offset) return;
                        const {
                            sticky_anchor_link_offset: o
                        } = n;
                        if (0 === o) return;
                        const i = this.getScrollPosition(e);
                        t.push({
                            scrollMarginTop: o,
                            type: "sticky",
                            scrollPosition: i
                        })
                    }))
                }
                organizeStickyAndAnchors(e) {
                    const t = this.filterAndSortElementsByType(e, "sticky"),
                        n = this.filterAndSortElementsByType(e, "anchor");
                    t.forEach(((e, o) => {
                        this.defineCurrentStickyRange(e, o, t, n)
                    }))
                }
                defineCurrentStickyRange(e, t, n, o) {
                    const i = t + 1 < n.length ? n[t + 1].scrollPosition : 1 / 0;
                    e.anchor = o.filter((t => {
                        const n = t.scrollPosition > e.scrollPosition && t.scrollPosition < i;
                        return n && (t.element.style.scrollMarginTop = `${e.scrollMarginTop}px`), n
                    }))
                }
                getScrollPosition(e) {
                    let t = 0;
                    for (; e;) t += e.offsetTop, e = e.offsetParent;
                    return t
                }
                getAllStickyElements() {
                    const e = document.querySelectorAll(this.getSettings("selectors.stickyElements"));
                    return Array.from(e).filter(((e, t, n) => t === n.findIndex((t => t.getAttribute("data-id") === e.getAttribute("data-id")))))
                }
                getAllAnchorLinks() {
                    const e = document.querySelectorAll(this.getSettings("selectors.links"));
                    return Array.from(e).filter(((e, t, n) => t === n.findIndex((t => t.getAttribute("href") === e.getAttribute("href")))))
                }
                filterAndSortElementsByType(e, t) {
                    return e.filter((e => t === e.type)).sort(((e, t) => e.scrollPosition - t.scrollPosition))
                }
                isValidSelector(e) {
                    return /^#[A-Za-z_][\w-]*$/.test(e)
                }
                getAnchorTarget(e) {
                    const t = e ? .hash;
                    return this.isValidSelector(t) ? document.querySelector(t) : null
                }
                getElementSettings(e) {
                    return JSON.parse(e.getAttribute("data-settings"))
                }
            }
            t.default = _default
        },
        8422: (e, t) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            class AssetsLoader {
                getScriptElement(e) {
                    const t = document.createElement("script");
                    return t.src = e, t
                }
                getStyleElement(e) {
                    const t = document.createElement("link");
                    return t.rel = "stylesheet", t.href = e, t
                }
                load(e, t) {
                    const n = AssetsLoader.assets[e][t];
                    return n.loader || (n.loader = this.isAssetLoaded(n, e) ? Promise.resolve(!0) : this.loadAsset(n, e)), n.loader
                }
                isAssetLoaded(e, t) {
                    const n = "script" === t ? `script[src="${e.src}"]` : `link[href="${e.src}"]`;
                    return !!document.querySelectorAll(n) ? .length
                }
                loadAsset(e, t) {
                    return new Promise((n => {
                        const o = "style" === t ? this.getStyleElement(e.src) : this.getScriptElement(e.src);
                        o.onload = () => n(!0), this.appendAsset(e, o)
                    }))
                }
                appendAsset(e, t) {
                    const n = document.querySelector(e.before);
                    if (n) return void n.insertAdjacentElement("beforebegin", t);
                    const o = "head" === e.parent ? e.parent : "body";
                    document[o].appendChild(t)
                }
            }
            t.default = AssetsLoader;
            const n = elementorFrontendConfig.urls.assets,
                o = elementorFrontendConfig.environmentMode.isScriptDebug ? "" : ".min",
                i = elementorFrontendConfig.version;
            AssetsLoader.assets = {
                script: {
                    dialog: {
                        src: `${n}lib/dialog/dialog${o}.js?ver=4.9.3`
                    },
                    "share-link": {
                        src: `${n}lib/share-link/share-link${o}.js?ver=${i}`
                    },
                    swiper: {
                        src: `${n}lib/swiper/v8/swiper${o}.js?ver=8.4.5`
                    }
                },
                style: {
                    swiper: {
                        src: `${n}lib/swiper/v8/css/swiper${o}.css?ver=8.4.5`,
                        parent: "head"
                    },
                    "e-lightbox": {
                        src: elementorFrontendConfig ? .responsive ? .hasCustomBreakpoints ? `${elementorFrontendConfig.urls.uploadUrl}/elementor/css/custom-lightbox.min.css?ver=${i}` : `${n}css/conditionals/lightbox${o}.css?ver=${i}`
                    },
                    dialog: {
                        src: `${n}css/conditionals/dialog${o}.css?ver=${i}`,
                        parent: "head",
                        before: "#elementor-frontend-css"
                    }
                }
            }
        },
        607: (e, t) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            t.default = class Controls {
                getControlValue(e, t, n) {
                    let o;
                    return o = "object" == typeof e[t] && n ? e[t][n] : e[t], o
                }
                getResponsiveControlValue(e, t) {
                    let n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "";
                    const o = (arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : null) || elementorFrontend.getCurrentDeviceMode(),
                        i = this.getControlValue(e, t, n);
                    if ("widescreen" === o) {
                        const o = this.getControlValue(e, `${t}_widescreen`, n);
                        return o || 0 === o ? o : i
                    }
                    const s = elementorFrontend.breakpoints.getActiveBreakpointsList({
                        withDesktop: !0
                    });
                    let r = o,
                        a = s.indexOf(o),
                        l = "";
                    for (; a <= s.length;) {
                        if ("desktop" === r) {
                            l = i;
                            break
                        }
                        const o = `${t}_${r}`,
                            d = this.getControlValue(e, o, n);
                        if (d || 0 === d) {
                            l = d;
                            break
                        }
                        a++, r = s[a]
                    }
                    return l
                }
            }
        },
        4252: (e, t, n) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0, n(4846), n(6211);
            class LightboxManager extends elementorModules.ViewModule {
                static getLightbox() {
                    const e = new Promise((e => {
                            n.e(835).then(n.t.bind(n, 3942, 23)).then((t => {
                                let {
                                    default: n
                                } = t;
                                return e(new n)
                            }))
                        })),
                        t = elementorFrontend.utils.assetsLoader.load("script", "dialog"),
                        o = elementorFrontend.utils.assetsLoader.load("style", "dialog"),
                        i = elementorFrontend.utils.assetsLoader.load("script", "share-link"),
                        s = elementorFrontend.utils.assetsLoader.load("style", "swiper"),
                        r = elementorFrontend.utils.assetsLoader.load("style", "e-lightbox");
                    return Promise.all([e, t, o, i, s, r]).then((() => e))
                }
                getDefaultSettings() {
                    return {
                        selectors: {
                            links: "a, [data-elementor-lightbox]",
                            slideshow: "[data-elementor-lightbox-slideshow]"
                        }
                    }
                }
                getDefaultElements() {
                    return {
                        $links: jQuery(this.getSettings("selectors.links")),
                        $slideshow: jQuery(this.getSettings("selectors.slideshow"))
                    }
                }
                isLightboxLink(e) {
                    if ("a" === e.tagName.toLowerCase() && (e.hasAttribute("download") || !/^[^?]+\.(png|jpe?g|gif|svg|webp)(\?.*)?$/i.test(e.href)) && !e.dataset.elementorLightboxVideo) return !1;
                    const t = elementorFrontend.getKitSettings("global_image_lightbox"),
                        n = e.dataset.elementorOpenLightbox;
                    return "yes" === n || t && "no" !== n
                }
                isLightboxSlideshow() {
                    return 0 !== this.elements.$slideshow.length
                }
                async onLinkClick(e) {
                    const t = e.currentTarget,
                        n = jQuery(e.target),
                        o = elementorFrontend.isEditMode(),
                        i = o && elementor.$previewContents.find("body").hasClass("elementor-editor__ui-state__color-picker"),
                        s = !!n.closest(".elementor-edit-area").length;
                    if (!this.isLightboxLink(t)) return void(o && s && e.preventDefault());
                    if (e.preventDefault(), o && !elementor.getPreferences("lightbox_in_editor")) return;
                    if (i) return;
                    (await LightboxManager.getLightbox()).createLightbox(t)
                }
                bindEvents() {
                    elementorFrontend.elements.$document.on("click", this.getSettings("selectors.links"), (e => this.onLinkClick(e)))
                }
                onInit() {
                    super.onInit(...arguments), elementorFrontend.isEditMode() || this.maybeActivateLightboxOnLink()
                }
                maybeActivateLightboxOnLink() {
                    this.elements.$links.each(((e, t) => {
                        if (this.isLightboxLink(t)) return LightboxManager.getLightbox(), !1
                    }))
                }
            }
            t.default = LightboxManager
        },
        4901: (e, t, n) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0, n(4846), n(9655);
            t.default = class SwiperHandler {
                constructor(e, t) {
                    return this.config = t, this.config.breakpoints && (this.config = this.adjustConfig(t)), e instanceof jQuery && (e = e[0]), e.closest(".elementor-widget-wrap") ? .classList.add("e-swiper-container"), e.closest(".elementor-widget") ? .classList.add("e-widget-swiper"), new Promise((t => {
                        "undefined" != typeof Swiper ? ("function" == typeof Swiper && void 0 === window.Swiper && (window.Swiper = Swiper), t(this.createSwiperInstance(e, this.config))) : elementorFrontend.utils.assetsLoader.load("script", "swiper").then((() => t(this.createSwiperInstance(e, this.config))))
                    }))
                }
                createSwiperInstance(e, t) {
                    const n = window.Swiper;
                    return n.prototype.adjustConfig = this.adjustConfig, new n(e, t)
                }
                adjustConfig(e) {
                    if (!e.handleElementorBreakpoints) return e;
                    const t = elementorFrontend.config.responsive.activeBreakpoints,
                        n = elementorFrontend.breakpoints.getBreakpointValues();
                    return Object.keys(e.breakpoints).forEach((o => {
                        const i = parseInt(o);
                        let s;
                        if (i === t.mobile.value || i + 1 === t.mobile.value) s = 0;
                        else if (!t.widescreen || i !== t.widescreen.value && i + 1 !== t.widescreen.value) {
                            const e = n.findIndex((e => i === e || i + 1 === e));
                            s = n[e - 1]
                        } else s = i;
                        e.breakpoints[s] = e.breakpoints[o], e.breakpoints[o] = {
                            slidesPerView: e.slidesPerView,
                            slidesPerGroup: e.slidesPerGroup ? e.slidesPerGroup : 1
                        }
                    })), e
                }
            }
        },
        3582: (e, t, n) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0, n(6409);
            class _default extends elementorModules.ViewModule {
                getDefaultSettings() {
                    return {
                        selectors: {
                            links: 'a[href^="%23elementor-action"], a[href^="#elementor-action"]'
                        }
                    }
                }
                bindEvents() {
                    elementorFrontend.elements.$document.on("click", this.getSettings("selectors.links"), this.runLinkAction.bind(this))
                }
                initActions() {
                    this.actions = {
                        lightbox: async e => {
                            const t = await elementorFrontend.utils.lightbox;
                            e.slideshow ? t.openSlideshow(e.slideshow, e.url) : (e.id && (e.type = "image"), t.showModal(e))
                        }
                    }
                }
                addAction(e, t) {
                    this.actions[e] = t
                }
                runAction(e) {
                    e = decodeURI(e);
                    const t = (e = decodeURIComponent(e)).match(/action=(.+?)&/);
                    if (!t) return;
                    const n = this.actions[t[1]];
                    if (!n) return;
                    let o = {};
                    const i = e.match(/settings=(.+)/);
                    i && (o = JSON.parse(atob(i[1]))), o.previousEvent = event;
                    for (var s = arguments.length, r = new Array(s > 1 ? s - 1 : 0), a = 1; a < s; a++) r[a - 1] = arguments[a];
                    n(o, ...r)
                }
                runLinkAction(e) {
                    e.preventDefault(), this.runAction(jQuery(e.currentTarget).attr("href"), e)
                }
                runHashAction() {
                    if (!location.hash) return;
                    const e = document.querySelector(`[data-e-action-hash="${location.hash}"], a[href*="${location.hash}"]`);
                    e && this.runAction(e.getAttribute("data-e-action-hash"))
                }
                createActionHash(e, t) {
                    return encodeURIComponent(`#elementor-action:action=${e}&settings=${btoa(JSON.stringify(t))}`)
                }
                onInit() {
                    super.onInit(), this.initActions(), elementorFrontend.on("components:init", this.runHashAction.bind(this))
                }
            }
            t.default = _default
        },
        7672: (e, t) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.isScrollSnapActive = t.escapeHTML = void 0;
            t.escapeHTML = e => {
                const t = {
                    "&": "&amp;",
                    "<": "&lt;",
                    ">": "&gt;",
                    "'": "&#39;",
                    '"': "&quot;"
                };
                return e.replace(/[&<>'"]/g, (e => t[e] || e))
            };
            t.isScrollSnapActive = () => "yes" === (elementorFrontend.isEditMode() ? elementor.settings.page.model.attributes ? .scroll_snap : elementorFrontend.config.settings.page ? .scroll_snap)
        },
        8427: (e, t) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            class BaseLoader extends elementorModules.ViewModule {
                getDefaultSettings() {
                    return {
                        isInserted: !1,
                        selectors: {
                            firstScript: "script:first"
                        }
                    }
                }
                getDefaultElements() {
                    return {
                        $firstScript: jQuery(this.getSettings("selectors.firstScript"))
                    }
                }
                insertAPI() {
                    this.elements.$firstScript.before(jQuery("<script>", {
                        src: this.getApiURL()
                    })), this.setSettings("isInserted", !0)
                }
                getVideoIDFromURL(e) {
                    const t = e.match(this.getURLRegex());
                    return t && t[1]
                }
                onApiReady(e) {
                    this.getSettings("isInserted") || this.insertAPI(), this.isApiLoaded() ? e(this.getApiObject()) : setTimeout((() => {
                        this.onApiReady(e)
                    }), 350)
                }
                getAutoplayURL(e) {
                    return e.replace("&autoplay=0", "") + "&autoplay=1"
                }
            }
            t.default = BaseLoader
        },
        3126: (e, t, n) => {
            var o = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            var i = o(n(8427));
            class VimeoLoader extends i.default {
                getApiURL() {
                    return "https://player.vimeo.com/api/player.js"
                }
                getURLRegex() {
                    return /^(?:https?:\/\/)?(?:www|player\.)?(?:vimeo\.com\/)?(?:video\/|external\/)?(\d+)([^.?&#"'>]?)/
                }
                isApiLoaded() {
                    return window.Vimeo
                }
                getApiObject() {
                    return Vimeo
                }
                getAutoplayURL(e) {
                    const t = e.match(/#t=[^&]*/);
                    return e.replace(t[0], "") + t
                }
            }
            t.default = VimeoLoader
        },
        5073: (e, t, n) => {
            var o = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            var i = o(n(8427));
            class YoutubeLoader extends i.default {
                getApiURL() {
                    return "https://www.youtube.com/iframe_api"
                }
                getURLRegex() {
                    return /^(?:https?:\/\/)?(?:www\.)?(?:m\.)?(?:youtu\.be\/|youtube\.com\/(?:(?:watch)?\?(?:.*&)?vi?=|(?:embed|v|vi|user|shorts)\/))([^?&"'>]+)/
                }
                isApiLoaded() {
                    return window.YT && YT.loaded
                }
                getApiObject() {
                    return YT
                }
            }
            t.default = YoutubeLoader
        },
        8309: (e, t, n) => {
            n.p = elementorFrontendConfig.urls.assets + "js/"
        },
        5896: (e, t, n) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0, n(5724), n(4846), n(9655), n(4364);
            class Breakpoints extends elementorModules.Module {
                constructor(e) {
                    super(), this.responsiveConfig = e
                }
                getActiveBreakpointsList() {
                    let e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};
                    e = {
                        largeToSmall: !1,
                        withDesktop: !1,
                        ...e
                    };
                    const t = Object.keys(this.responsiveConfig.activeBreakpoints);
                    if (e.withDesktop) {
                        const e = -1 === t.indexOf("widescreen") ? t.length : t.length - 1;
                        t.splice(e, 0, "desktop")
                    }
                    return e.largeToSmall && t.reverse(), t
                }
                getBreakpointValues() {
                    const {
                        activeBreakpoints: e
                    } = this.responsiveConfig, t = [];
                    return Object.values(e).forEach((e => {
                        t.push(e.value)
                    })), t
                }
                getDesktopPreviousDeviceKey() {
                    let e = "";
                    const {
                        activeBreakpoints: t
                    } = this.responsiveConfig, n = Object.keys(t), o = n.length;
                    return e = "min" === t[n[o - 1]].direction ? n[o - 2] : n[o - 1], e
                }
                getDesktopMinPoint() {
                    const {
                        activeBreakpoints: e
                    } = this.responsiveConfig;
                    return e[this.getDesktopPreviousDeviceKey()].value + 1
                }
                getDeviceMinBreakpoint(e) {
                    if ("desktop" === e) return this.getDesktopMinPoint();
                    const {
                        activeBreakpoints: t
                    } = this.responsiveConfig, n = Object.keys(t);
                    let o;
                    if (n[0] === e) o = 320;
                    else if ("widescreen" === e) o = t[e] ? t[e].value : this.responsiveConfig.breakpoints.widescreen;
                    else {
                        const i = n.indexOf(e);
                        o = t[n[i - 1]].value + 1
                    }
                    return o
                }
                getActiveMatchRegex() {
                    return new RegExp(this.getActiveBreakpointsList().map((e => "_" + e)).join("|") + "$")
                }
            }
            t.default = Breakpoints
        },
        4799: (e, t) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = t.Events = void 0;
            class Events {
                static dispatch(e, t) {
                    let n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : null,
                        o = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : null;
                    e = e instanceof jQuery ? e[0] : e, o && e.dispatchEvent(new CustomEvent(o, {
                        detail: n
                    })), e.dispatchEvent(new CustomEvent(t, {
                        detail: n
                    }))
                }
            }
            t.Events = Events;
            t.default = Events
        },
        5956: (e, t, n) => {
            n(5724);
            e.exports = function() {
                var e, t = Array.prototype.slice,
                    n = {
                        actions: {},
                        filters: {}
                    };

                function _removeHook(e, t, o, i) {
                    var s, r, a;
                    if (n[e][t])
                        if (o)
                            if (s = n[e][t], i)
                                for (a = s.length; a--;)(r = s[a]).callback === o && r.context === i && s.splice(a, 1);
                            else
                                for (a = s.length; a--;) s[a].callback === o && s.splice(a, 1);
                    else n[e][t] = []
                }

                function _addHook(e, t, o, i, s) {
                    var r = {
                            callback: o,
                            priority: i,
                            context: s
                        },
                        a = n[e][t];
                    if (a) {
                        var l = !1;
                        if (jQuery.each(a, (function() {
                                if (this.callback === o) return l = !0, !1
                            })), l) return;
                        a.push(r), a = function _hookInsertSort(e) {
                            for (var t, n, o, i = 1, s = e.length; i < s; i++) {
                                for (t = e[i], n = i;
                                    (o = e[n - 1]) && o.priority > t.priority;) e[n] = e[n - 1], --n;
                                e[n] = t
                            }
                            return e
                        }(a)
                    } else a = [r];
                    n[e][t] = a
                }

                function _runHook(e, t, o) {
                    var i, s, r = n[e][t];
                    if (!r) return "filters" === e && o[0];
                    if (s = r.length, "filters" === e)
                        for (i = 0; i < s; i++) o[0] = r[i].callback.apply(r[i].context, o);
                    else
                        for (i = 0; i < s; i++) r[i].callback.apply(r[i].context, o);
                    return "filters" !== e || o[0]
                }
                return e = {
                    removeFilter: function removeFilter(t, n) {
                        return "string" == typeof t && _removeHook("filters", t, n), e
                    },
                    applyFilters: function applyFilters() {
                        var n = t.call(arguments),
                            o = n.shift();
                        return "string" == typeof o ? _runHook("filters", o, n) : e
                    },
                    addFilter: function addFilter(t, n, o, i) {
                        return "string" == typeof t && "function" == typeof n && _addHook("filters", t, n, o = parseInt(o || 10, 10), i), e
                    },
                    removeAction: function removeAction(t, n) {
                        return "string" == typeof t && _removeHook("actions", t, n), e
                    },
                    doAction: function doAction() {
                        var n = t.call(arguments),
                            o = n.shift();
                        return "string" == typeof o && _runHook("actions", o, n), e
                    },
                    addAction: function addAction(t, n, o, i) {
                        return "string" == typeof t && "function" == typeof n && _addHook("actions", t, n, o = parseInt(o || 10, 10), i), e
                    }
                }, e
            }
        },
        5115: (e, t) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            const matchUserAgent = e => n.indexOf(e) >= 0,
                n = navigator.userAgent,
                o = !!window.opr && !!opr.addons || !!window.opera || matchUserAgent(" OPR/"),
                i = matchUserAgent("Firefox"),
                s = /^((?!chrome|android).)*safari/i.test(n) || /constructor/i.test(window.HTMLElement) || "[object SafariRemoteNotification]" === (!window.safari || "undefined" != typeof safari && safari.pushNotification).toString(),
                r = /Trident|MSIE/.test(n) && !!document.documentMode,
                a = !r && !!window.StyleMedia || matchUserAgent("Edg"),
                l = !!window.chrome && matchUserAgent("Chrome") && !(a || o),
                d = matchUserAgent("Chrome") && !!window.CSS,
                c = matchUserAgent("AppleWebKit") && !d,
                u = {
                    isTouchDevice: "ontouchstart" in window || navigator.maxTouchPoints > 0 || navigator.msMaxTouchPoints > 0,
                    appleWebkit: c,
                    blink: d,
                    chrome: l,
                    edge: a,
                    firefox: i,
                    ie: r,
                    mac: matchUserAgent("Macintosh"),
                    opera: o,
                    safari: s,
                    webkit: matchUserAgent("AppleWebKit")
                };
            t.default = u
        },
        8767: (e, t, n) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0, n(4846), n(9655);
            class _default extends elementorModules.Module {
                get(e, t) {
                    let n;
                    t = t || {};
                    try {
                        n = t.session ? sessionStorage : localStorage
                    } catch (t) {
                        return e ? void 0 : {}
                    }
                    let o = n.getItem("elementor");
                    o = o ? JSON.parse(o) : {}, o.__expiration || (o.__expiration = {});
                    const i = o.__expiration;
                    let s = [];
                    e ? i[e] && (s = [e]) : s = Object.keys(i);
                    let r = !1;
                    return s.forEach((e => {
                        new Date(i[e]) < new Date && (delete o[e], delete i[e], r = !0)
                    })), r && this.save(o, t.session), e ? o[e] : o
                }
                set(e, t, n) {
                    n = n || {};
                    const o = this.get(null, n);
                    if (o[e] = t, n.lifetimeInSeconds) {
                        const t = new Date;
                        t.setTime(t.getTime() + 1e3 * n.lifetimeInSeconds), o.__expiration[e] = t.getTime()
                    }
                    this.save(o, n.session)
                }
                save(e, t) {
                    let n;
                    try {
                        n = t ? sessionStorage : localStorage
                    } catch (e) {
                        return
                    }
                    n.setItem("elementor", JSON.stringify(e))
                }
            }
            t.default = _default
        },
        7842: (e, t, n) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            class _default extends elementorModules.Module {
                constructor() {
                    super(), elementorFrontend.elementsHandler.attachHandler("text-path", (() => n.e(30).then(n.bind(n, 241))))
                }
            }
            t.default = _default
        },
        3852: (e, t, n) => {
            var o = n(735),
                i = String,
                s = TypeError;
            e.exports = function(e) {
                if (o(e)) return e;
                throw new s("Can't set " + i(e) + " as a prototype")
            }
        },
        1780: e => {
            e.exports = {
                IndexSizeError: {
                    s: "INDEX_SIZE_ERR",
                    c: 1,
                    m: 1
                },
                DOMStringSizeError: {
                    s: "DOMSTRING_SIZE_ERR",
                    c: 2,
                    m: 0
                },
                HierarchyRequestError: {
                    s: "HIERARCHY_REQUEST_ERR",
                    c: 3,
                    m: 1
                },
                WrongDocumentError: {
                    s: "WRONG_DOCUMENT_ERR",
                    c: 4,
                    m: 1
                },
                InvalidCharacterError: {
                    s: "INVALID_CHARACTER_ERR",
                    c: 5,
                    m: 1
                },
                NoDataAllowedError: {
                    s: "NO_DATA_ALLOWED_ERR",
                    c: 6,
                    m: 0
                },
                NoModificationAllowedError: {
                    s: "NO_MODIFICATION_ALLOWED_ERR",
                    c: 7,
                    m: 1
                },
                NotFoundError: {
                    s: "NOT_FOUND_ERR",
                    c: 8,
                    m: 1
                },
                NotSupportedError: {
                    s: "NOT_SUPPORTED_ERR",
                    c: 9,
                    m: 1
                },
                InUseAttributeError: {
                    s: "INUSE_ATTRIBUTE_ERR",
                    c: 10,
                    m: 1
                },
                InvalidStateError: {
                    s: "INVALID_STATE_ERR",
                    c: 11,
                    m: 1
                },
                SyntaxError: {
                    s: "SYNTAX_ERR",
                    c: 12,
                    m: 1
                },
                InvalidModificationError: {
                    s: "INVALID_MODIFICATION_ERR",
                    c: 13,
                    m: 1
                },
                NamespaceError: {
                    s: "NAMESPACE_ERR",
                    c: 14,
                    m: 1
                },
                InvalidAccessError: {
                    s: "INVALID_ACCESS_ERR",
                    c: 15,
                    m: 1
                },
                ValidationError: {
                    s: "VALIDATION_ERR",
                    c: 16,
                    m: 0
                },
                TypeMismatchError: {
                    s: "TYPE_MISMATCH_ERR",
                    c: 17,
                    m: 1
                },
                SecurityError: {
                    s: "SECURITY_ERR",
                    c: 18,
                    m: 1
                },
                NetworkError: {
                    s: "NETWORK_ERR",
                    c: 19,
                    m: 1
                },
                AbortError: {
                    s: "ABORT_ERR",
                    c: 20,
                    m: 1
                },
                URLMismatchError: {
                    s: "URL_MISMATCH_ERR",
                    c: 21,
                    m: 1
                },
                QuotaExceededError: {
                    s: "QUOTA_EXCEEDED_ERR",
                    c: 22,
                    m: 1
                },
                TimeoutError: {
                    s: "TIMEOUT_ERR",
                    c: 23,
                    m: 1
                },
                InvalidNodeTypeError: {
                    s: "INVALID_NODE_TYPE_ERR",
                    c: 24,
                    m: 1
                },
                DataCloneError: {
                    s: "DATA_CLONE_ERR",
                    c: 25,
                    m: 1
                }
            }
        },
        8223: (e, t, n) => {
            var o = n(4762),
                i = Error,
                s = o("".replace),
                r = String(new i("zxcasd").stack),
                a = /\n\s*at [^:]*:[^\n]*/,
                l = a.test(r);
            e.exports = function(e, t) {
                if (l && "string" == typeof e && !i.prepareStackTrace)
                    for (; t--;) e = s(e, a, "");
                return e
            }
        },
        680: (e, t, n) => {
            var o = n(4762),
                i = n(8120);
            e.exports = function(e, t, n) {
                try {
                    return o(i(Object.getOwnPropertyDescriptor(e, t)[n]))
                } catch (e) {}
            }
        },
        2429: (e, t, n) => {
            var o = n(1483),
                i = n(1704),
                s = n(1953);
            e.exports = function(e, t, n) {
                var r, a;
                return s && o(r = t.constructor) && r !== n && i(a = r.prototype) && a !== n.prototype && s(e, a), e
            }
        },
        735: (e, t, n) => {
            var o = n(1704);
            e.exports = function(e) {
                return o(e) || null === e
            }
        },
        3963: (e, t, n) => {
            var o = n(1807),
                i = n(8120),
                s = n(2293),
                r = n(41),
                a = n(8660),
                l = n(8901),
                d = a((function() {
                    var e = this.iterator,
                        t = s(o(this.next, e));
                    if (!(this.done = !!t.done)) return l(e, this.mapper, [t.value, this.counter++], !0)
                }));
            e.exports = function map(e) {
                return s(this), i(e), new d(r(this), {
                    mapper: e
                })
            }
        },
        7969: (e, t, n) => {
            var o = n(6261);
            e.exports = function(e, t) {
                return void 0 === e ? arguments.length < 2 ? "" : t : o(e)
            }
        },
        1953: (e, t, n) => {
            var o = n(680),
                i = n(1704),
                s = n(3312),
                r = n(3852);
            e.exports = Object.setPrototypeOf || ("__proto__" in {} ? function() {
                var e, t = !1,
                    n = {};
                try {
                    (e = o(Object.prototype, "__proto__", "set"))(n, []), t = n instanceof Array
                } catch (e) {}
                return function setPrototypeOf(n, o) {
                    return s(n), r(o), i(n) ? (t ? e(n, o) : n.__proto__ = o, n) : n
                }
            }() : void 0)
        },
        6261: (e, t, n) => {
            var o = n(6145),
                i = String;
            e.exports = function(e) {
                if ("Symbol" === o(e)) throw new TypeError("Cannot convert a Symbol value to a string");
                return i(e)
            }
        },
        3991: (e, t, n) => {
            var o = n(8612),
                i = n(3963);
            o({
                target: "Iterator",
                proto: !0,
                real: !0,
                forced: n(9557)
            }, {
                map: i
            })
        },
        4364: (e, t, n) => {
            n(3991)
        },
        6409: (e, t, n) => {
            var o = n(8612),
                i = n(5578),
                s = n(1409),
                r = n(7738),
                a = n(5835).f,
                l = n(5755),
                d = n(6021),
                c = n(2429),
                u = n(7969),
                h = n(1780),
                m = n(8223),
                g = n(382),
                p = n(9557),
                f = "DOMException",
                v = s("Error"),
                b = s(f),
                y = function DOMException() {
                    d(this, _);
                    var e = arguments.length,
                        t = u(e < 1 ? void 0 : arguments[0]),
                        n = u(e < 2 ? void 0 : arguments[1], "Error"),
                        o = new b(t, n),
                        i = new v(t);
                    return i.name = f, a(o, "stack", r(1, m(i.stack, 1))), c(o, this, y), o
                },
                _ = y.prototype = b.prototype,
                k = "stack" in new v(f),
                w = "stack" in new b(1, 2),
                S = b && g && Object.getOwnPropertyDescriptor(i, f),
                E = !(!S || S.writable && S.configurable),
                A = k && !E && !w;
            o({
                global: !0,
                constructor: !0,
                forced: p || A
            }, {
                DOMException: A ? y : b
            });
            var M = s(f),
                C = M.prototype;
            if (C.constructor !== M)
                for (var $ in p || a(C, "constructor", r(1, M)), h)
                    if (l(h, $)) {
                        var D = h[$],
                            L = D.s;
                        l(M, L) || a(M, L, r(6, D.c))
                    }
        }
    },
    e => {
        e.O(0, [941], (() => {
            return t = 7603, e(e.s = t);
            var t
        }));
        e.O()
    }
]); /*! elementor-pro - v3.27.0 - 06-02-2025 */
"use strict";
(self.webpackChunkelementor_pro = self.webpackChunkelementor_pro || []).push([
    [624], {
        2371: (e, t, n) => {
            var o = n(6784),
                s = o(n(6137)),
                r = o(n(7371)),
                l = o(n(3746)),
                i = o(n(9880)),
                a = o(n(6238)),
                d = o(n(4286)),
                u = o(n(4043)),
                c = o(n(1750)),
                m = o(n(4486)),
                h = o(n(1459)),
                g = o(n(8534)),
                f = o(n(6034)),
                p = o(n(6075)),
                _ = o(n(570)),
                v = o(n(9302)),
                b = o(n(6302)),
                y = o(n(7492)),
                F = o(n(8241)),
                M = o(n(325)),
                w = o(n(7467)),
                S = o(n(1953)),
                H = o(n(282)),
                E = o(n(2969)),
                O = o(n(5355)),
                T = o(n(8945));
            const extendDefaultHandlers = e => ({ ...e,
                ...{
                    animatedText: s.default,
                    carousel: r.default,
                    countdown: l.default,
                    dynamicTags: i.default,
                    hotspot: a.default,
                    form: d.default,
                    gallery: u.default,
                    lottie: c.default,
                    nav_menu: m.default,
                    popup: h.default,
                    posts: g.default,
                    share_buttons: f.default,
                    slides: p.default,
                    social: _.default,
                    themeBuilder: b.default,
                    themeElements: y.default,
                    woocommerce: F.default,
                    tableOfContents: v.default,
                    loopBuilder: M.default,
                    megaMenu: w.default,
                    nestedCarousel: S.default,
                    taxonomyFilter: H.default,
                    offCanvas: E.default,
                    contactButtons: O.default,
                    search: T.default
                }
            });
            elementorProFrontend.on("elementor-pro/modules/init/before", (() => {
                elementorFrontend.hooks.addFilter("elementor-pro/frontend/handlers", extendDefaultHandlers)
            }))
        },
        4921: (e, t) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            t.default = class AjaxHelper {
                addLoadingAnimationOverlay(e) {
                    const t = document.querySelector(`.elementor-element-${e}`);
                    t && t.classList.add("e-loading-overlay")
                }
                removeLoadingAnimationOverlay(e) {
                    const t = document.querySelector(`.elementor-element-${e}`);
                    t && t.classList.remove("e-loading-overlay")
                }
            }
        },
        6914: (e, t) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.focusableElementSelectors = function focusableElementSelectors() {
                return "audio, button, canvas, details, iframe, input, select, summary, textarea, video, [accesskey], a[href], area[href], [tabindex]"
            }
        },
        5921: (e, t, n) => {
            var o = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.close = void 0;
            const s = new(o(n(5194)).default)("eicon");
            t.close = {
                get element() {
                    return s.createSvgElement("close", {
                        path: "M742 167L500 408 258 167C246 154 233 150 217 150 196 150 179 158 167 167 154 179 150 196 150 212 150 229 154 242 171 254L408 500 167 742C138 771 138 800 167 829 196 858 225 858 254 829L496 587 738 829C750 842 767 846 783 846 800 846 817 842 829 829 842 817 846 804 846 783 846 767 842 750 829 737L588 500 833 258C863 229 863 200 833 171 804 137 775 137 742 167Z",
                        width: 1e3,
                        height: 1e3
                    })
                }
            }
        },
        5194: (e, t) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            class IconsManager {
                static symbolsContainer;
                static iconsUsageList = [];
                constructor(e) {
                    if (this.prefix = `${e}-`, !IconsManager.symbolsContainer) {
                        const e = "e-font-icon-svg-symbols";
                        IconsManager.symbolsContainer = document.getElementById(e), IconsManager.symbolsContainer || (IconsManager.symbolsContainer = document.createElementNS("http://www.w3.org/2000/svg", "svg"), IconsManager.symbolsContainer.setAttributeNS(null, "style", "display: none;"), IconsManager.symbolsContainer.setAttributeNS(null, "class", e), document.body.appendChild(IconsManager.symbolsContainer))
                    }
                }
                createSvgElement(e, t) {
                    let {
                        path: n,
                        width: o,
                        height: s
                    } = t;
                    const r = this.prefix + e,
                        l = "#" + this.prefix + e;
                    if (!IconsManager.iconsUsageList.includes(r)) {
                        if (!IconsManager.symbolsContainer.querySelector(l)) {
                            const e = document.createElementNS("http://www.w3.org/2000/svg", "symbol");
                            e.id = r, e.innerHTML = '<path d="' + n + '"></path>', e.setAttributeNS(null, "viewBox", "0 0 " + o + " " + s), IconsManager.symbolsContainer.appendChild(e)
                        }
                        IconsManager.iconsUsageList.push(r)
                    }
                    const i = document.createElementNS("http://www.w3.org/2000/svg", "svg");
                    return i.innerHTML = '<use xlink:href="' + l + '" />', i.setAttributeNS(null, "class", "e-font-icon-svg e-" + r), i
                }
            }
            t.default = IconsManager
        },
        7754: (e, t, n) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            var o = n(6914);
            t.default = class ModalKeyboardHandler {
                lastFocusableElement = null;
                firstFocusableElement = null;
                modalTriggerElement = null;
                constructor(e) {
                    this.config = e, this.changeFocusAfterAnimation = !1
                }
                onOpenModal() {
                    this.initializeElements(), this.setTriggerElement(), this.changeFocusAfterAnimation = "popup" === this.config.modalType && !!this.config.hasEntranceAnimation, this.changeFocusAfterAnimation || this.changeFocus(), this.bindEvents()
                }
                onCloseModal() {
                    elementorFrontend.elements.$window.off("keydown", this.onKeyDownPressed.bind(this)), this.modalTriggerElement && this.setFocusToElement(this.modalTriggerElement)
                }
                bindEvents() {
                    elementorFrontend.elements.$window.on("keydown", this.onKeyDownPressed.bind(this)), this.changeFocusAfterAnimation && this.config.$modalElements.on("animationend animationcancel", this.changeFocus.bind(this)), "popup" === this.config.modalType && this.onPopupCloseEvent()
                }
                onPopupCloseEvent() {
                    elementorFrontend.elements.$window.on("elementor/popup/hide", this.onCloseModal.bind(this))
                }
                getFocusableElements() {
                    const e = "popup" === this.config.modalType ? ":focusable" : (0, o.focusableElementSelectors)();
                    return this.config.$modalElements.find(e)
                }
                initializeElements() {
                    const e = this.getFocusableElements();
                    e.length && (this.lastFocusableElement = e[e.length - 1], this.firstFocusableElement = e[0])
                }
                setTriggerElement() {
                    const e = elementorFrontend.elements.window.document.activeElement;
                    this.modalTriggerElement = e ? elementorFrontend.elements.window.document.activeElement : null
                }
                changeFocus() {
                    this.firstFocusableElement ? this.setFocusToElement(this.firstFocusableElement) : (this.config.$elementWrapper.attr("tabindex", "0"), this.setFocusToElement(this.config.$elementWrapper[0]))
                }
                onKeyDownPressed(e) {
                    const t = e.shiftKey,
                        n = "Tab" === e.key || 9 === e.keyCode,
                        o = "0" === this.config.$elementWrapper.attr("tabindex");
                    n && o ? e.preventDefault() : n && this.onTabKeyPressed(n, t, e)
                }
                onTabKeyPressed(e, t, n) {
                    elementorFrontend.isEditMode() && this.initializeElements();
                    const o = elementorFrontend.elements.window.document.activeElement;
                    if (t) {
                        o === this.firstFocusableElement && (this.setFocusToElement(this.lastFocusableElement), n.preventDefault())
                    } else {
                        o === this.lastFocusableElement && (this.setFocusToElement(this.firstFocusableElement), n.preventDefault())
                    }
                }
                setFocusToElement(e) {
                    const t = "popup" === this.config.modalType ? 250 : 100;
                    setTimeout((() => {
                        e ? .focus()
                    }), t)
                }
            }
        },
        5012: (e, t) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = function runElementHandlers(e) {
                [...e].flatMap((e => [...e.querySelectorAll(".elementor-element")])).forEach((e => elementorFrontend.elementsHandler.runReadyTrigger(e)))
            }
        },
        6137: (e, t, n) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            class _default extends elementorModules.Module {
                constructor() {
                    super(), elementorFrontend.elementsHandler.attachHandler("animated-headline", (() => n.e(961).then(n.bind(n, 2590))))
                }
            }
            t.default = _default
        },
        7371: (e, t, n) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            class _default extends elementorModules.Module {
                constructor() {
                    super(), elementorFrontend.elementsHandler.attachHandler("media-carousel", (() => n.e(692).then(n.bind(n, 8948)))), elementorFrontend.elementsHandler.attachHandler("testimonial-carousel", (() => n.e(897).then(n.bind(n, 7181)))), elementorFrontend.elementsHandler.attachHandler("reviews", (() => n.e(897).then(n.bind(n, 7181))))
                }
            }
            t.default = _default
        },
        3746: (e, t, n) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            class _default extends elementorModules.Module {
                constructor() {
                    super(), elementorFrontend.elementsHandler.attachHandler("countdown", (() => n.e(416).then(n.bind(n, 475))))
                }
            }
            t.default = _default
        },
        9880: (e, t) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            class _default extends elementorModules.Module {
                constructor() {
                    super(), elementorFrontend.on("components:init", (() => this.onFrontendComponentsInit()))
                }
                onFrontendComponentsInit() {
                    elementorFrontend.utils.urlActions.addAction("reload-page", (() => document.location.reload()))
                }
            }
            t.default = _default
        },
        5355: (e, t, n) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            class _default extends elementorModules.Module {
                constructor() {
                    super(), elementorFrontend.config.experimentalFeatures.container && (["contact-buttons-var-1", "contact-buttons-var-3", "contact-buttons-var-4", "contact-buttons-var-5", "contact-buttons-var-6", "contact-buttons-var-7", "contact-buttons-var-8", "contact-buttons-var-9"].forEach((e => {
                        elementorFrontend.elementsHandler.attachHandler(e, (() => n.e(1).then(n.bind(n, 197))))
                    })), elementorFrontend.elementsHandler.attachHandler("contact-buttons-var-10", (() => n.e(61).then(n.bind(n, 7263)))), elementorFrontend.elementsHandler.attachHandler("floating-bars-var-2", (() => n.e(249).then(n.bind(n, 2319)))), elementorFrontend.elementsHandler.attachHandler("floating-bars-var-3", (() => n.e(440).then(n.bind(n, 7704)))))
                }
            }
            t.default = _default
        },
        4286: (e, t, n) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            class _default extends elementorModules.Module {
                constructor() {
                    super(), elementorFrontend.elementsHandler.attachHandler("form", [() => n.e(325).then(n.bind(n, 9230)), () => n.e(325).then(n.bind(n, 2176)), () => n.e(325).then(n.bind(n, 9613)), () => n.e(325).then(n.bind(n, 2478)), () => n.e(325).then(n.bind(n, 733)), () => n.e(325).then(n.bind(n, 6935))]), elementorFrontend.elementsHandler.attachHandler("subscribe", [() => n.e(325).then(n.bind(n, 9230)), () => n.e(325).then(n.bind(n, 2176)), () => n.e(325).then(n.bind(n, 9613))])
                }
            }
            t.default = _default
        },
        4043: (e, t, n) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            class _default extends elementorModules.Module {
                constructor() {
                    super(), elementorFrontend.elementsHandler.attachHandler("gallery", (() => n.e(543).then(n.bind(n, 771))))
                }
            }
            t.default = _default
        },
        6238: (e, t, n) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            class _default extends elementorModules.Module {
                constructor() {
                    super(), elementorFrontend.elementsHandler.attachHandler("hotspot", (() => n.e(292).then(n.bind(n, 507))))
                }
            }
            t.default = _default
        },
        325: (e, t, n) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            class _default extends elementorModules.Module {
                constructor() {
                    super(), ["post", "product", "post_taxonomy", "product_taxonomy"].forEach((e => {
                        elementorFrontend.elementsHandler.attachHandler("loop-grid", (() => n.e(535).then(n.bind(n, 2245))), e), elementorFrontend.elementsHandler.attachHandler("loop-grid", (() => n.e(993).then(n.bind(n, 2813))), e), elementorFrontend.elementsHandler.attachHandler("loop-carousel", (() => n.e(993).then(n.bind(n, 2813))), e), elementorFrontend.elementsHandler.attachHandler("loop-carousel", (() => n.e(932).then(n.bind(n, 7992))), e), elementorFrontend.elementsHandler.attachHandler("loop-grid", (() => n.e(550).then(n.bind(n, 4734))), e)
                    }))
                }
            }
            t.default = _default
        },
        9585: (e, t, n) => {
            var o = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            var s = o(n(5012)),
                r = o(n(4921)),
                l = o(n(1368)),
                i = n(275);
            class BaseFilterFrontendModule extends elementorModules.Module {
                constructor() {
                    super(), this.loopWidgetsStore = new l.default
                }
                removeFilterFromLoopWidget(e, t) {
                    let n = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : "",
                        o = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : "";
                    if (!this.loopWidgetsStore.getWidget(e)) return this.loopWidgetsStore.addWidget(e), void this.refreshLoopWidget(e, t);
                    if (n === o && this.loopWidgetsStore.unsetFilter(e, t), n !== o) {
                        const o = this.loopWidgetsStore.getFilterTerms(e, t).filter((function(e) {
                            return e !== n
                        }));
                        this.loopWidgetsStore.setFilterTerms(e, t, o)
                    }
                    this.refreshLoopWidget(e, t)
                }
                setFilterDataForLoopWidget(e, t, n) {
                    let o = !(arguments.length > 3 && void 0 !== arguments[3]) || arguments[3],
                        s = arguments.length > 4 && void 0 !== arguments[4] ? arguments[4] : "DISABLED";
                    this.loopWidgetsStore.maybeInitializeWidget(e), this.loopWidgetsStore.maybeInitializeFilter(e, t);
                    const r = this.validateMultipleFilterOperator(s);
                    if ("DISABLED" !== r) {
                        const o = this.loopWidgetsStore.getFilterTerms(e, t) ? ? [],
                            s = n.filterData.terms;
                        n.filterData.terms = [...new Set([...o, ...s])], n.filterData.logicalJoin = r
                    }
                    this.loopWidgetsStore.setFilter(e, t, n), o ? this.refreshLoopWidget(e, t) : this.loopWidgetsStore.consolidateFilters(e)
                }
                validateMultipleFilterOperator(e) {
                    return e && ["AND", "OR"].includes(e) ? e : "DISABLED"
                }
                getQueryStringInObjectForm() {
                    const e = {};
                    for (const t in this.loopWidgetsStore.get()) {
                        const n = this.loopWidgetsStore.getWidget(t);
                        for (const o in n.consolidatedFilters) {
                            const s = n.consolidatedFilters[o];
                            for (const n in s) {
                                const o = i.queryConstants[s[n].logicalJoin ? ? "AND"].separator.decoded;
                                e[`e-filter-${t}-${n}`] = Object.values(s[n].terms).join(o)
                            }
                        }
                    }
                    return e
                }
                updateURLQueryString(e, t) {
                    const n = new URL(window.location.href).searchParams,
                        o = this.getQueryStringInObjectForm(),
                        s = new URLSearchParams;
                    n.forEach(((t, n) => {
                        n.startsWith("e-filter") || s.append(n, t), n.startsWith("e-page-" + e) && s.delete(n)
                    }));
                    for (const e in o) s.set(e, o[e]);
                    let r = s.toString();
                    r = r.replace(new RegExp(`${i.queryConstants.AND.separator.encoded}`, "g"), i.queryConstants.AND.separator.decoded), r = r.replace(new RegExp(`${i.queryConstants.OR.separator.encoded}`, "g"), i.queryConstants.OR.separator.decoded);
                    const l = this.getFilterHelperAttributes(t);
                    r = l.pageNum > 1 ? r ? this.formatQueryString(l.baseUrl, r) : l.baseUrl : r ? `?${r}` : location.pathname, history.pushState(null, null, r)
                }
                formatQueryString(e, t) {
                    const n = e.includes("?") ? new URLSearchParams(e.split("?")[1]) : new URLSearchParams,
                        o = new URLSearchParams(t);
                    for (const e of n.keys()) o.has(e) && o.delete(e);
                    const s = ["page", "paged"];
                    for (const e of s) n.delete(e), o.delete(e);
                    const r = new URLSearchParams(n.toString());
                    for (const [e, t] of o.entries()) r.append(e, t);
                    return e.split("?")[0] + (r.toString() ? `?${r.toString()}` : "")
                }
                getFilterHelperAttributes(e) {
                    const t = document.querySelector('[data-id="' + e + '"]');
                    if (!t) return {
                        baseUrl: location.href,
                        pageNum: 1
                    };
                    return t.querySelector(".e-filter").dataset
                }
                prepareLoopUpdateRequestData(e, t) {
                    const n = this.loopWidgetsStore.getConsolidatedFilters(e),
                        o = this.getFilterHelperAttributes(t),
                        s = {
                            post_id: this.getClosestDataElementorId(document.querySelector(`.elementor-element-${e}`)) || elementorFrontend.config.post.id,
                            widget_filters: n,
                            widget_id: e,
                            pagination_base_url: o.baseUrl
                        };
                    if (elementorFrontend.isEditMode()) {
                        const t = window.top.$e.components.get("document").utils.findContainerById(e);
                        s.widget_model = t.model.toJSON({
                            remove: ["default", "editSettings", "defaultEditSettings"]
                        }), s.is_edit_mode = !0
                    }
                    return s
                }
                getClosestDataElementorId(e) {
                    const t = e ? .closest("[data-elementor-id]");
                    return t ? t.getAttribute("data-elementor-id") : null
                }
                getFetchArgumentsForLoopUpdate(e, t) {
                    const n = this.prepareLoopUpdateRequestData(e, t),
                        o = {
                            method: "POST",
                            headers: {
                                "Content-Type": "application/json"
                            },
                            body: JSON.stringify(n)
                        };
                    return elementorFrontend.isEditMode() && elementorPro.config.loopFilter ? .nonce && (o.headers["X-WP-Nonce"] = elementorPro.config.loopFilter ? .nonce), o
                }
                fetchUpdatedLoopWidgetMarkup(e, t) {
                    return fetch(`${elementorProFrontend.config.urls.rest}elementor-pro/v1/refresh-loop`, this.getFetchArgumentsForLoopUpdate(e, t))
                }
                createFragmentFromHTMLString(e) {
                    const t = document.createElement("template");
                    return t.innerHTML = e.trim(), t.content
                }
                refreshLoopWidget(e, t) {
                    this.loopWidgetsStore.consolidateFilters(e), this.updateURLQueryString(e, t);
                    const n = document.querySelector(`.elementor-element-${e}`);
                    if (!n) return;
                    this.ajaxHelper || (this.ajaxHelper = new r.default), this.ajaxHelper.addLoadingAnimationOverlay(e);
                    return this.fetchUpdatedLoopWidgetMarkup(e, t).then((e => e instanceof Response && e ? .ok && !(400 <= e ? .status) ? e.json() : {})).catch((() => ({}))).then((t => {
                        if (!t ? .data && "" !== t ? .data) return;
                        const o = this.createFragmentFromHTMLString(t.data);
                        Array.from(o.children).forEach((e => {
                            const t = e.className ? `.${e.className.split(" ").join(".")}` : `#${e.id}`,
                                o = n.querySelector(t);
                            o && o.parentNode.replaceChild(e, o)
                        })), this.handleElementHandlers(n), ElementorProFrontendConfig.settings.lazy_load_background_images && document.dispatchEvent(new Event("elementor/lazyload/observe")), elementorFrontend.elementsHandler.runReadyTrigger(document.querySelector(`.elementor-element-${e}`)), n.classList.remove("e-loading")
                    })).finally((() => {
                        this.ajaxHelper.removeLoadingAnimationOverlay(e)
                    }))
                }
                handleElementHandlers(e) {
                    const t = e.querySelectorAll(".e-loop-item");
                    (0, s.default)(t)
                }
            }
            t.default = BaseFilterFrontendModule
        },
        282: (e, t, n) => {
            var o = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            var s = o(n(9585));
            class LoopFilter extends s.default {
                constructor() {
                    super(), elementorFrontend.elementsHandler.attachHandler("taxonomy-filter", (() => n.e(225).then(n.bind(n, 2236))))
                }
            }
            t.default = LoopFilter
        },
        1368: (e, t) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            t.default = class LoopWidgetsStore {
                constructor() {
                    this.widgets = {}
                }
                get() {
                    return this.widgets
                }
                getWidget(e) {
                    return this.widgets[e]
                }
                setWidget(e, t) {
                    this.widgets[e] = t
                }
                unsetWidget(e) {
                    delete this.widgets[e]
                }
                getFilters(e) {
                    return this.getWidget(e).filters
                }
                getFilter(e, t) {
                    return this.getWidget(e).filters[t]
                }
                setFilter(e, t, n) {
                    this.getWidget(e).filters[t] = n
                }
                unsetFilter(e, t) {
                    delete this.getWidget(e).filters[t]
                }
                getFilterTerms(e, t) {
                    return this.getFilter(e, t).filterData.terms ? ? []
                }
                setFilterTerms(e, t, n) {
                    this.getFilter(e, t).filterData.terms = n
                }
                getConsolidatedFilters(e) {
                    return this.getWidget(e).consolidatedFilters
                }
                setConsolidatedFilters(e, t) {
                    this.getWidget(e).consolidatedFilters = t
                }
                addWidget(e) {
                    this.setWidget(e, {
                        filters: {},
                        consolidatedFilters: {}
                    })
                }
                maybeInitializeWidget(e) {
                    this.getWidget(e) || this.addWidget(e)
                }
                maybeInitializeFilter(e, t) {
                    if (this.getFilter(e, t)) return;
                    this.setFilter(e, t, {
                        filterData: {
                            terms: []
                        }
                    })
                }
                consolidateFilters(e) {
                    const t = this.getFilters(e),
                        n = {};
                    for (const e in t) {
                        const o = t[e],
                            s = o.filterType,
                            r = o.filterData;
                        0 !== r.terms.length && (n[s] || (n[s] = {}), n[s][r.selectedTaxonomy] || (n[s][r.selectedTaxonomy] = []), !r.terms || n[s][r.selectedTaxonomy].terms && n[s][r.selectedTaxonomy].terms.includes(r.terms) || (n[s][r.selectedTaxonomy] = {
                            terms: "string" === r.terms ? [r.terms] : r.terms
                        }), r.logicalJoin && !n[s][r.selectedTaxonomy].logicalJoin && (n[s][r.selectedTaxonomy] = { ...n[s][r.selectedTaxonomy] || {},
                            logicalJoin: r.logicalJoin ? ? "AND"
                        }))
                    }
                    this.setConsolidatedFilters(e, n)
                }
            }
        },
        275: e => {
            e.exports = {
                queryConstants: {
                    AND: {
                        separator: {
                            decoded: "+",
                            fromBrowser: " ",
                            encoded: "%2B"
                        },
                        operator: "AND"
                    },
                    OR: {
                        separator: {
                            decoded: "~",
                            fromBrowser: "~",
                            encoded: "%7C"
                        },
                        operator: "IN"
                    },
                    NOT: {
                        separator: {
                            decoded: "!",
                            fromBrowser: "!",
                            encoded: "%21"
                        },
                        operator: "NOT IN"
                    },
                    DISABLED: {
                        separator: {
                            decoded: "",
                            fromBrowser: "",
                            encoded: ""
                        },
                        operator: "AND"
                    }
                }
            }
        },
        1750: (e, t, n) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            class _default extends elementorModules.Module {
                constructor() {
                    super(), elementorFrontend.elementsHandler.attachHandler("lottie", (() => n.e(970).then(n.bind(n, 5200))))
                }
            }
            t.default = _default
        },
        7467: (e, t, n) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            class _default extends elementorModules.Module {
                constructor() {
                    super(), elementorFrontend.elementsHandler.attachHandler("mega-menu", [() => n.e(727).then(n.bind(n, 3431)), () => n.e(87).then(n.bind(n, 8636)), () => n.e(912).then(n.bind(n, 9774))])
                }
            }
            t.default = _default
        },
        4486: (e, t, n) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            class _default extends elementorModules.Module {
                constructor() {
                    super(), jQuery.fn.smartmenus && (jQuery.SmartMenus.prototype.isCSSOn = function() {
                        return !0
                    }, elementorFrontend.config.is_rtl && (jQuery.fn.smartmenus.defaults.rightToLeftSubMenus = !0)), elementorFrontend.elementsHandler.attachHandler("nav-menu", (() => n.e(334).then(n.bind(n, 757))))
                }
            }
            t.default = _default
        },
        1953: (e, t, n) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            class _default extends elementorModules.Module {
                constructor() {
                    super(), elementorFrontend.elementsHandler.attachHandler("nested-carousel", (() => n.e(33).then(n.bind(n, 1195))))
                }
            }
            t.default = _default
        },
        2969: (e, t, n) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            class _default extends elementorModules.Module {
                constructor() {
                    super(), elementorFrontend.elementsHandler.attachHandler("off-canvas", (() => n.e(579).then(n.bind(n, 9547)))), elementorFrontend.on("components:init", (() => this.onFrontendComponentsInit()))
                }
                onFrontendComponentsInit() {
                    this.addUrlActions()
                }
                addUrlActions() {
                    elementorFrontend.utils.urlActions.addAction("off_canvas:open", (e => {
                        this.toggleOffCanvasDisplay(e)
                    })), elementorFrontend.utils.urlActions.addAction("off_canvas:close", (e => {
                        this.toggleOffCanvasDisplay(e)
                    })), elementorFrontend.utils.urlActions.addAction("off_canvas:toggle", (e => {
                        this.toggleOffCanvasDisplay(e)
                    }))
                }
                toggleOffCanvasDisplay(e) {
                    window.dispatchEvent(new CustomEvent("elementor-pro/off-canvas/toggle-display-mode", {
                        detail: e
                    }))
                }
            }
            t.default = _default
        },
        2506: (e, t, n) => {
            var o = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            var s = o(n(3758)),
                r = o(n(5469)),
                l = n(5921),
                i = o(n(7754));
            class _default extends elementorModules.frontend.Document {
                keyboardHandler = null;
                bindEvents() {
                    const e = this.getDocumentSettings("open_selector");
                    e && elementorFrontend.elements.$body.on("click", e, this.showModal.bind(this))
                }
                startTiming() {
                    new r.default(this.getDocumentSettings("timing"), this).check() && this.initTriggers()
                }
                initTriggers() {
                    this.triggers = new s.default(this.getDocumentSettings("triggers"), this)
                }
                showModal(e) {
                    let t = arguments.length > 1 && void 0 !== arguments[1] && arguments[1];
                    const n = this.getDocumentSettings();
                    if (!this.isEdit) {
                        if (!elementorFrontend.isWPPreviewMode()) {
                            if (this.getStorage("disable")) return;
                            if (t && elementorProFrontend.modules.popup.popupPopped && n.avoid_multiple_popups) return
                        }
                        this.$element = jQuery(this.elementHTML), this.elements.$elements = this.$element.find(this.getSettings("selectors.elements"))
                    }
                    const o = this.getModal(),
                        s = o.getElements("closeButton");
                    o.setMessage(this.$element).show(), this.isEdit || (n.close_button_delay && (s.hide(), clearTimeout(this.closeButtonTimeout), this.closeButtonTimeout = setTimeout((() => s.show()), 1e3 * n.close_button_delay)), super.runElementsHandlers()), this.setEntranceAnimation(), n.timing && n.timing.times_count || this.countTimes(), elementorProFrontend.modules.popup.popupPopped = !0, !this.isEdit && n.a11y_navigation && this.handleKeyboardA11y()
                }
                setEntranceAnimation() {
                    const e = this.getModal().getElements("widgetContent"),
                        t = this.getDocumentSettings(),
                        n = elementorFrontend.getCurrentDeviceSetting(t, "entrance_animation");
                    if (this.currentAnimation && e.removeClass(this.currentAnimation), this.currentAnimation = n, !n) return;
                    const o = t.entrance_animation_duration.size;
                    e.addClass(n), setTimeout((() => e.removeClass(n)), 1e3 * o)
                }
                handleKeyboardA11y() {
                    this.keyboardHandler || (this.keyboardHandler = new i.default(this.getKeyboardHandlingConfig())), this.keyboardHandler.onOpenModal()
                }
                setExitAnimation() {
                    const e = this.getModal(),
                        t = this.getDocumentSettings(),
                        n = e.getElements("widgetContent"),
                        o = elementorFrontend.getCurrentDeviceSetting(t, "exit_animation"),
                        s = o ? t.entrance_animation_duration.size : 0;
                    setTimeout((() => {
                        o && n.removeClass(o + " reverse"), this.isEdit || (this.$element.remove(), e.getElements("widget").hide())
                    }), 1e3 * s), o && n.addClass(o + " reverse")
                }
                initModal() {
                    let e;
                    this.getModal = () => {
                        if (!e) {
                            const t = this.getDocumentSettings(),
                                n = this.getSettings("id"),
                                triggerPopupEvent = e => {
                                    const t = "elementor/popup/" + e;
                                    elementorFrontend.elements.$document.trigger(t, [n, this]), window.dispatchEvent(new CustomEvent(t, {
                                        detail: {
                                            id: n,
                                            instance: this
                                        }
                                    }))
                                };
                            let o = "elementor-popup-modal";
                            t.classes && (o += " " + t.classes);
                            const s = {
                                id: "elementor-popup-modal-" + n,
                                className: o,
                                closeButton: !0,
                                preventScroll: t.prevent_scroll,
                                onShow: () => triggerPopupEvent("show"),
                                onHide: () => triggerPopupEvent("hide"),
                                effects: {
                                    hide: () => {
                                        t.timing && t.timing.times_count && this.countTimes(), this.setExitAnimation()
                                    },
                                    show: "show"
                                },
                                hide: {
                                    auto: !!t.close_automatically,
                                    autoDelay: 1e3 * t.close_automatically,
                                    onBackgroundClick: !t.prevent_close_on_background_click,
                                    onOutsideClick: !t.prevent_close_on_background_click,
                                    onEscKeyPress: !t.prevent_close_on_esc_key,
                                    ignore: ".flatpickr-calendar"
                                },
                                position: {
                                    enable: !1
                                }
                            };
                            elementorFrontend.config.experimentalFeatures.e_font_icon_svg && (s.closeButtonOptions = {
                                iconElement: l.close.element
                            }), s.closeButtonClass = "eicon-close", e = elementorFrontend.getDialogsManager().createWidget("lightbox", s), e.getElements("widgetContent").addClass("animated");
                            const r = e.getElements("closeButton");
                            this.isEdit && (r.off("click"), e.hide = () => {}), this.setCloseButtonPosition()
                        }
                        return e
                    }
                }
                setCloseButtonPosition() {
                    const e = this.getModal(),
                        t = this.getDocumentSettings("close_button_position");
                    e.getElements("closeButton").prependTo(e.getElements("outside" === t ? "widget" : "widgetContent"))
                }
                disable() {
                    this.setStorage("disable", !0)
                }
                setStorage(e, t, n) {
                    elementorFrontend.storage.set(`popup_${this.getSettings("id")}_${e}`, t, n)
                }
                getStorage(e, t) {
                    return elementorFrontend.storage.get(`popup_${this.getSettings("id")}_${e}`, t)
                }
                countTimes() {
                    const e = this.getStorage("times") || 0;
                    this.setStorage("times", e + 1)
                }
                runElementsHandlers() {}
                async onInit() {
                    super.onInit(), window.DialogsManager || await elementorFrontend.utils.assetsLoader.load("script", "dialog"), this.initModal(), this.isEdit ? this.showModal() : (this.$element.show().remove(), this.elementHTML = this.$element[0].outerHTML, elementorFrontend.isEditMode() || (elementorFrontend.isWPPreviewMode() && elementorFrontend.config.post.id === this.getSettings("id") ? this.showModal() : this.startTiming()))
                }
                onSettingsChange(e) {
                    const t = Object.keys(e.changed)[0]; - 1 !== t.indexOf("entrance_animation") && this.setEntranceAnimation(), "exit_animation" === t && this.setExitAnimation(), "close_button_position" === t && this.setCloseButtonPosition()
                }
                getEntranceAnimationDuration() {
                    const e = this.getDocumentSettings(),
                        t = e ? .entrance_animation;
                    if (!t || "" === t || "none" === t) return 0;
                    const n = e ? .entrance_animation_duration ? .size;
                    return n ? Number(n) : 0
                }
                getKeyboardHandlingConfig() {
                    return {
                        $modalElements: this.getModal().getElements("widgetContent"),
                        $elementWrapper: this.$element,
                        hasEntranceAnimation: 0 !== this.getEntranceAnimationDuration(),
                        modalType: "popup",
                        modalId: this.$element.data("elementor-id")
                    }
                }
            }
            t.default = _default
        },
        1459: (e, t, n) => {
            var o = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            var s = o(n(2506));
            class _default extends elementorModules.Module {
                constructor() {
                    super(), elementorFrontend.hooks.addAction("elementor/frontend/documents-manager/init-classes", this.addDocumentClass), elementorFrontend.elementsHandler.attachHandler("form", (() => n.e(887).then(n.bind(n, 5985)))), elementorFrontend.on("components:init", (() => this.onFrontendComponentsInit())), this.shouldSetViewsAndSessions() && this.setViewsAndSessions()
                }
                shouldSetViewsAndSessions() {
                    return !elementorFrontend.isEditMode() && !elementorFrontend.isWPPreviewMode() && ElementorProFrontendConfig.popup.hasPopUps
                }
                addDocumentClass(e) {
                    e.addDocumentClass("popup", s.default)
                }
                setViewsAndSessions() {
                    const e = elementorFrontend.storage.get("pageViews") || 0;
                    elementorFrontend.storage.set("pageViews", e + 1);
                    if (!elementorFrontend.storage.get("activeSession", {
                            session: !0
                        })) {
                        elementorFrontend.storage.set("activeSession", !0, {
                            session: !0
                        });
                        const e = elementorFrontend.storage.get("sessions") || 0;
                        elementorFrontend.storage.set("sessions", e + 1)
                    }
                }
                showPopup(e, t) {
                    const n = elementorFrontend.documentsManager.documents[e.id];
                    if (!n) return;
                    const o = n.getModal();
                    e.toggle && o.isVisible() ? o.hide() : n.showModal(t)
                }
                closePopup(e, t) {
                    const n = jQuery(t.target).parents('[data-elementor-type="popup"]').data("elementorId");
                    if (!n) return;
                    const o = elementorFrontend.documentsManager.documents[n];
                    o.getModal().hide(), e.do_not_show_again && o.disable()
                }
                onFrontendComponentsInit() {
                    elementorFrontend.utils.urlActions.addAction("popup:open", ((e, t) => this.showPopup(e, t))), elementorFrontend.utils.urlActions.addAction("popup:close", ((e, t) => this.closePopup(e, t)))
                }
            }
            t.default = _default
        },
        5469: (e, t, n) => {
            var o = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            var s = o(n(164)),
                r = o(n(5873)),
                l = o(n(7471)),
                i = o(n(2880)),
                a = o(n(5104)),
                d = o(n(1837)),
                u = o(n(3940)),
                c = o(n(1533)),
                m = o(n(8254));
            class _default extends elementorModules.Module {
                constructor(e, t) {
                    super(e), this.document = t, this.timingClasses = {
                        page_views: s.default,
                        sessions: r.default,
                        url: l.default,
                        sources: i.default,
                        logged_in: a.default,
                        devices: d.default,
                        times: u.default,
                        browsers: c.default,
                        schedule: m.default
                    }
                }
                check() {
                    const e = this.getSettings();
                    let t = !0;
                    return jQuery.each(this.timingClasses, ((n, o) => {
                        if (!e[n]) return;
                        new o(e, this.document).check() || (t = !1)
                    })), t
                }
            }
            t.default = _default
        },
        2733: (e, t) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            class _default extends elementorModules.Module {
                constructor(e, t) {
                    super(e), this.document = t
                }
                getTimingSetting(e) {
                    return this.getSettings(this.getName() + "_" + e)
                }
            }
            t.default = _default
        },
        1533: (e, t, n) => {
            var o = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            var s = o(n(2733));
            class _default extends s.default {
                getName() {
                    return "browsers"
                }
                check() {
                    if ("all" === this.getTimingSetting("browsers")) return !0;
                    const e = this.getTimingSetting("browsers_options"),
                        t = elementorFrontend.utils.environment;
                    return e.some((e => t[e]))
                }
            }
            t.default = _default
        },
        1837: (e, t, n) => {
            var o = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            var s = o(n(2733));
            class _default extends s.default {
                getName() {
                    return "devices"
                }
                check() {
                    return -1 !== this.getTimingSetting("devices").indexOf(elementorFrontend.getCurrentDeviceMode())
                }
            }
            t.default = _default
        },
        5104: (e, t, n) => {
            var o = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            var s = o(n(2733));
            class _default extends s.default {
                getName() {
                    return "logged_in"
                }
                check() {
                    const e = elementorFrontend.config.user;
                    if (!e) return !0;
                    if ("all" === this.getTimingSetting("users")) return !1;
                    return !this.getTimingSetting("roles").filter((t => -1 !== e.roles.indexOf(t))).length
                }
            }
            t.default = _default
        },
        164: (e, t, n) => {
            var o = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            var s = o(n(2733));
            class _default extends s.default {
                getName() {
                    return "page_views"
                }
                check() {
                    const e = elementorFrontend.storage.get("pageViews"),
                        t = this.getName();
                    let n = this.document.getStorage(t + "_initialPageViews");
                    return n || (this.document.setStorage(t + "_initialPageViews", e), n = e), e - n >= this.getTimingSetting("views")
                }
            }
            t.default = _default
        },
        9901: (e, t) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            t.default = class ScheduleUtils {
                constructor(e) {
                    this.settings = e.settings
                }
                getCurrentDateTime() {
                    let e = new Date;
                    return "site" === this.settings.timezone && this.settings.serverDatetime && (e = new Date(this.settings.serverDatetime)), e
                }
                shouldDisplay = () => {
                    if (!this.settings.startDate && !this.settings.endDate) return !0;
                    const e = this.getCurrentDateTime();
                    return (!this.settings.startDate || e >= this.settings.startDate) && (!this.settings.endDate || e <= this.settings.endDate)
                }
            }
        },
        8254: (e, t, n) => {
            var o = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            var s = o(n(2733)),
                r = o(n(9901));
            class _default extends s.default {
                constructor() {
                    super(...arguments);
                    const {
                        schedule_timezone: e,
                        schedule_start_date: t,
                        schedule_end_date: n,
                        schedule_server_datetime: o
                    } = this.getSettings();
                    this.settings = {
                        timezone: e,
                        startDate: !!t && new Date(t),
                        endDate: !!n && new Date(n),
                        serverDatetime: !!o && new Date(o)
                    }, this.scheduleUtils = new r.default({
                        settings: this.settings
                    })
                }
                getName() {
                    return "schedule"
                }
                check() {
                    return this.scheduleUtils.shouldDisplay()
                }
            }
            t.default = _default
        },
        5873: (e, t, n) => {
            var o = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            var s = o(n(2733));
            class _default extends s.default {
                getName() {
                    return "sessions"
                }
                check() {
                    const e = elementorFrontend.storage.get("sessions"),
                        t = this.getName();
                    let n = this.document.getStorage(t + "_initialSessions");
                    return n || (this.document.setStorage(t + "_initialSessions", e), n = e), e - n >= this.getTimingSetting("sessions")
                }
            }
            t.default = _default
        },
        2880: (e, t, n) => {
            var o = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            var s = o(n(2733));
            class _default extends s.default {
                getName() {
                    return "sources"
                }
                check() {
                    const e = this.getTimingSetting("sources");
                    if (3 === e.length) return !0;
                    const t = document.referrer.replace(/https?:\/\/(?:www\.)?/, "");
                    return 0 === t.indexOf(location.host.replace("www.", "")) ? -1 !== e.indexOf("internal") : -1 !== e.indexOf("external") || -1 !== e.indexOf("search") && /^(google|yahoo|bing|yandex|baidu)\./.test(t)
                }
            }
            t.default = _default
        },
        1744: (e, t) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            t.default = class TimesUtils {
                constructor(e) {
                    this.uniqueId = e.uniqueId, this.settings = e.settings, this.storage = e.storage
                }
                getTimeFramesInSecounds(e) {
                    return {
                        day: 86400,
                        week: 604800,
                        month: 2628288
                    }[e]
                }
                setExpiration(e, t, n) {
                    if (this.storage.get(e)) this.storage.set(e, t);
                    else {
                        const o = {
                            lifetimeInSeconds: this.getTimeFramesInSecounds(n)
                        };
                        this.storage.set(e, t, o)
                    }
                }
                getImpressionsCount() {
                    const e = this.storage.get(this.uniqueId) ? ? 0;
                    return parseInt(e)
                }
                incrementImpressionsCount() {
                    if (this.settings.period)
                        if ("session" !== this.settings.period) {
                            const e = this.getImpressionsCount();
                            this.setExpiration(this.uniqueId, e + 1, this.settings.period)
                        } else sessionStorage.setItem(this.uniqueId, parseInt(sessionStorage.getItem(this.uniqueId) ? ? 0) + 1);
                    else this.storage.set("times", (this.storage.get("times") ? ? 0) + 1)
                }
                shouldCountOnOpen() {
                    this.settings.countOnOpen && this.incrementImpressionsCount()
                }
                shouldDisplayPerTimeFrame() {
                    return this.getImpressionsCount() < this.settings.showsLimit && (this.shouldCountOnOpen(), !0)
                }
                shouldDisplayPerSession() {
                    const e = sessionStorage.getItem(this.uniqueId) ? ? 0;
                    return parseInt(e) < this.settings.showsLimit && (this.shouldCountOnOpen(), !0)
                }
                shouldDisplayBackwordCompatible() {
                    let e = arguments.length > 1 ? arguments[1] : void 0;
                    const t = parseInt(arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0) < parseInt(e);
                    return this.shouldCountOnOpen(), t
                }
            }
        },
        3940: (e, t, n) => {
            var o = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            var s = o(n(2733)),
                r = o(n(1744));
            class _default extends s.default {
                constructor() {
                    super(...arguments), this.uniqueId = `popup-${this.document.getSettings("id")}-impressions-count`;
                    const {
                        times_count: e,
                        times_period: t,
                        times_times: n
                    } = this.getSettings();
                    this.settings = {
                        countOnOpen: e,
                        period: t,
                        showsLimit: parseInt(n)
                    }, "" === this.settings.period && (this.settings.period = !1), ["", "close"].includes(this.settings.countOnOpen) ? (this.settings.countOnOpen = !1, this.onPopupHide()) : this.settings.countOnOpen = !0, this.utils = new r.default({
                        uniqueId: this.uniqueId,
                        settings: this.settings,
                        storage: elementorFrontend.storage
                    })
                }
                getName() {
                    return "times"
                }
                check() {
                    if (!this.settings.period) {
                        const e = this.document.getStorage("times") || 0,
                            t = this.getTimingSetting("times");
                        return this.utils.shouldDisplayBackwordCompatible(e, t)
                    }
                    if ("session" !== this.settings.period) {
                        if (!this.utils.shouldDisplayPerTimeFrame()) return !1
                    } else if (!this.utils.shouldDisplayPerSession()) return !1;
                    return !0
                }
                onPopupHide() {
                    window.addEventListener("elementor/popup/hide", (() => {
                        this.utils.incrementImpressionsCount()
                    }))
                }
            }
            t.default = _default
        },
        7471: (e, t, n) => {
            var o = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            var s = o(n(2733));
            class _default extends s.default {
                getName() {
                    return "url"
                }
                check() {
                    const e = this.getTimingSetting("url"),
                        t = this.getTimingSetting("action"),
                        n = document.referrer;
                    if ("regex" !== t) return "hide" === t ^ -1 !== n.indexOf(e);
                    let o;
                    try {
                        o = new RegExp(e)
                    } catch (e) {
                        return !1
                    }
                    return o.test(n)
                }
            }
            t.default = _default
        },
        3758: (e, t, n) => {
            var o = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            var s = o(n(9739)),
                r = o(n(9226)),
                l = o(n(4270)),
                i = o(n(1697)),
                a = o(n(9143)),
                d = o(n(3676)),
                u = o(n(7541));
            class _default extends elementorModules.Module {
                constructor(e, t) {
                    super(e), this.document = t, this.triggers = [], this.triggerClasses = {
                        page_load: s.default,
                        scrolling: r.default,
                        scrolling_to: l.default,
                        click: i.default,
                        inactivity: a.default,
                        exit_intent: d.default,
                        adblock_detection: u.default
                    }, this.runTriggers()
                }
                runTriggers() {
                    const e = this.getSettings();
                    jQuery.each(this.triggerClasses, ((t, n) => {
                        if (!e[t]) return;
                        const o = new n(e, (() => this.onTriggerFired()));
                        o.run(), this.triggers.push(o)
                    }))
                }
                destroyTriggers() {
                    this.triggers.forEach((e => e.destroy())), this.triggers = []
                }
                onTriggerFired() {
                    this.document.showModal(!0), this.destroyTriggers()
                }
            }
            t.default = _default
        },
        7541: (e, t, n) => {
            var o = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            var s = o(n(6904));
            class _default extends s.default {
                getName() {
                    return "adblock_detection"
                }
                generateRandomString() {
                    const e = "abcdefghijklmnopqrstuvwxyz0123456789";
                    let t = "";
                    for (let n = 0; n < 6; n++) {
                        t += e[Math.floor(36 * Math.random())]
                    }
                    return t
                }
                hasAdblock() {
                    const e = `elementor-adblock-detection-${this.generateRandomString()}`;
                    this.createEmptyAdBlockElement(e);
                    const t = document.querySelector(`#${e}`);
                    if (!t) return !0;
                    const n = "none" === window.getComputedStyle(t) ? .display;
                    return this.removeEmptyAdBlockElement(t), n
                }
                createEmptyAdBlockElement(e) {
                    const t = document.createElement("div");
                    t.id = e, t.className = "ad-box", t.style.position = "fixed", t.style.top = "0", t.style.left = "0", t.setAttribute("aria-hidden", "true"), t.innerHTML = "&nbsp;", document.body.appendChild(t)
                }
                removeEmptyAdBlockElement(e) {
                    e.remove()
                }
                run() {
                    this.timeout = setTimeout((() => {
                        this.hasAdblock() && this.callback()
                    }), 1e3 * this.getTriggerSetting("delay"))
                }
                destroy() {
                    clearTimeout(this.timeout)
                }
            }
            t.default = _default
        },
        6904: (e, t) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            class _default extends elementorModules.Module {
                constructor(e, t) {
                    super(e), this.callback = t
                }
                getTriggerSetting(e) {
                    return this.getSettings(this.getName() + "_" + e)
                }
            }
            t.default = _default
        },
        1697: (e, t, n) => {
            var o = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            var s = o(n(6904));
            class _default extends s.default {
                constructor() {
                    super(...arguments), this.checkClick = this.checkClick.bind(this), this.clicksCount = 0
                }
                getName() {
                    return "click"
                }
                checkClick() {
                    this.clicksCount++, this.clicksCount === this.getTriggerSetting("times") && this.callback()
                }
                run() {
                    elementorFrontend.elements.$body.on("click", this.checkClick)
                }
                destroy() {
                    elementorFrontend.elements.$body.off("click", this.checkClick)
                }
            }
            t.default = _default
        },
        3676: (e, t, n) => {
            var o = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            var s = o(n(6904));
            class _default extends s.default {
                constructor() {
                    super(...arguments), this.detectExitIntent = this.detectExitIntent.bind(this)
                }
                getName() {
                    return "exit_intent"
                }
                detectExitIntent(e) {
                    e.clientY <= 0 && this.callback()
                }
                run() {
                    elementorFrontend.elements.$window.on("mouseleave", this.detectExitIntent)
                }
                destroy() {
                    elementorFrontend.elements.$window.off("mouseleave", this.detectExitIntent)
                }
            }
            t.default = _default
        },
        9143: (e, t, n) => {
            var o = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            var s = o(n(6904));
            class _default extends s.default {
                constructor() {
                    super(...arguments), this.restartTimer = this.restartTimer.bind(this)
                }
                getName() {
                    return "inactivity"
                }
                run() {
                    this.startTimer(), elementorFrontend.elements.$document.on("keypress mousemove", this.restartTimer)
                }
                startTimer() {
                    this.timeOut = setTimeout(this.callback, 1e3 * this.getTriggerSetting("time"))
                }
                clearTimer() {
                    clearTimeout(this.timeOut)
                }
                restartTimer() {
                    this.clearTimer(), this.startTimer()
                }
                destroy() {
                    this.clearTimer(), elementorFrontend.elements.$document.off("keypress mousemove", this.restartTimer)
                }
            }
            t.default = _default
        },
        9739: (e, t, n) => {
            var o = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            var s = o(n(6904));
            class _default extends s.default {
                getName() {
                    return "page_load"
                }
                run() {
                    this.timeout = setTimeout(this.callback, 1e3 * this.getTriggerSetting("delay"))
                }
                destroy() {
                    clearTimeout(this.timeout)
                }
            }
            t.default = _default
        },
        4270: (e, t, n) => {
            var o = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            var s = o(n(6904));
            class _default extends s.default {
                getName() {
                    return "scrolling_to"
                }
                run() {
                    let e;
                    try {
                        e = jQuery(this.getTriggerSetting("selector"))
                    } catch (e) {
                        return
                    }
                    e.length && (this.setUpIntersectionObserver(), this.observer.observe(e[0]))
                }
                setUpIntersectionObserver() {
                    this.observer = new IntersectionObserver((e => {
                        e.forEach((e => {
                            e.isIntersecting && this.callback()
                        }))
                    }))
                }
                destroy() {
                    this.observer && this.observer.disconnect()
                }
            }
            t.default = _default
        },
        9226: (e, t, n) => {
            var o = n(6784);
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            var s = o(n(6904));
            class _default extends s.default {
                constructor() {
                    super(...arguments), this.checkScroll = this.checkScroll.bind(this), this.lastScrollOffset = 0
                }
                getName() {
                    return "scrolling"
                }
                checkScroll() {
                    const e = scrollY > this.lastScrollOffset ? "down" : "up",
                        t = this.getTriggerSetting("direction");
                    if (this.lastScrollOffset = scrollY, e !== t) return;
                    if ("up" === e) return void this.callback();
                    const n = elementorFrontend.elements.$document.height() - innerHeight;
                    scrollY / n * 100 >= this.getTriggerSetting("offset") && this.callback()
                }
                run() {
                    elementorFrontend.elements.$window.on("scroll", this.checkScroll)
                }
                destroy() {
                    elementorFrontend.elements.$window.off("scroll", this.checkScroll)
                }
            }
            t.default = _default
        },
        8534: (e, t, n) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            class _default extends elementorModules.Module {
                constructor() {
                    super(), ["classic", "full_content", "cards"].forEach((e => {
                        elementorFrontend.elementsHandler.attachHandler("posts", (() => n.e(535).then(n.bind(n, 2078))), e)
                    })), elementorFrontend.elementsHandler.attachHandler("posts", (() => n.e(396).then(n.bind(n, 2195))), "classic"), elementorFrontend.elementsHandler.attachHandler("posts", (() => n.e(396).then(n.bind(n, 2195))), "full_content"), elementorFrontend.elementsHandler.attachHandler("posts", (() => n.e(396).then(n.bind(n, 7907))), "cards"), elementorFrontend.elementsHandler.attachHandler("portfolio", (() => n.e(726).then(n.bind(n, 2232))))
                }
            }
            t.default = _default
        },
        8945: (e, t, n) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            class _default extends elementorModules.Module {
                constructor() {
                    super(), elementorFrontend.elementsHandler.attachHandler("search", [() => n.e(187).then(n.bind(n, 6963)), () => n.e(187).then(n.bind(n, 7112))])
                }
            }
            t.default = _default
        },
        6034: (e, t, n) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            class _default extends elementorModules.Module {
                constructor() {
                    super(), elementorFrontend.elementsHandler.attachHandler("share-buttons", (() => n.e(316).then(n.bind(n, 3607))))
                }
            }
            t.default = _default
        },
        6075: (e, t, n) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            class _default extends elementorModules.Module {
                constructor() {
                    super(), elementorFrontend.elementsHandler.attachHandler("slides", (() => n.e(829).then(n.bind(n, 3271))))
                }
            }
            t.default = _default
        },
        570: (e, t, n) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            class _default extends elementorModules.Module {
                constructor() {
                    super(), elementorFrontend.elementsHandler.attachHandler("facebook-button", (() => n.e(158).then(n.bind(n, 5070)))), elementorFrontend.elementsHandler.attachHandler("facebook-comments", (() => n.e(158).then(n.bind(n, 5070)))), elementorFrontend.elementsHandler.attachHandler("facebook-embed", (() => n.e(158).then(n.bind(n, 5070)))), elementorFrontend.elementsHandler.attachHandler("facebook-page", (() => n.e(158).then(n.bind(n, 5070))))
                }
            }
            t.default = _default
        },
        9302: (e, t, n) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            class _default extends elementorModules.Module {
                constructor() {
                    super(), elementorFrontend.elementsHandler.attachHandler("table-of-contents", (() => Promise.all([n.e(234), n.e(404)]).then(n.bind(n, 3827))))
                }
            }
            t.default = _default
        },
        6302: (e, t, n) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            class _default extends elementorModules.Module {
                constructor() {
                    super(), ["archive_classic", "archive_full_content", "archive_cards"].forEach((e => {
                        elementorFrontend.elementsHandler.attachHandler("archive-posts", (() => n.e(345).then(n.bind(n, 439))), e)
                    })), elementorFrontend.elementsHandler.attachHandler("archive-posts", (() => n.e(345).then(n.bind(n, 6629))), "archive_classic"), elementorFrontend.elementsHandler.attachHandler("archive-posts", (() => n.e(345).then(n.bind(n, 6629))), "archive_full_content"), elementorFrontend.elementsHandler.attachHandler("archive-posts", (() => n.e(345).then(n.bind(n, 2718))), "archive_cards"), jQuery((function() {
                        var e = location.search.match(/theme_template_id=(\d*)/),
                            t = e ? jQuery(".elementor-" + e[1]) : [];
                        t.length && jQuery("html, body").animate({
                            scrollTop: t.offset().top - window.innerHeight / 2
                        })
                    }))
                }
            }
            t.default = _default
        },
        7492: (e, t, n) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            class _default extends elementorModules.Module {
                constructor() {
                    super(), elementorFrontend.elementsHandler.attachHandler("search-form", (() => n.e(798).then(n.bind(n, 9319))))
                }
            }
            t.default = _default
        },
        8241: (e, t, n) => {
            Object.defineProperty(t, "__esModule", {
                value: !0
            }), t.default = void 0;
            class _default extends elementorModules.Module {
                constructor() {
                    super(), elementorFrontend.elementsHandler.attachHandler("woocommerce-menu-cart", (() => n.e(6).then(n.bind(n, 2115)))), elementorFrontend.elementsHandler.attachHandler("woocommerce-purchase-summary", (() => n.e(80).then(n.bind(n, 193)))), elementorFrontend.elementsHandler.attachHandler("woocommerce-checkout-page", (() => n.e(354).then(n.bind(n, 9391)))), elementorFrontend.elementsHandler.attachHandler("woocommerce-cart", (() => n.e(4).then(n.bind(n, 2937)))), elementorFrontend.elementsHandler.attachHandler("woocommerce-my-account", (() => n.e(662).then(n.bind(n, 1627)))), elementorFrontend.elementsHandler.attachHandler("woocommerce-notices", (() => n.e(621).then(n.bind(n, 4702)))), elementorFrontend.elementsHandler.attachHandler("woocommerce-product-add-to-cart", (() => n.e(787).then(n.bind(n, 6973)))), elementorFrontend.isEditMode() && elementorFrontend.on("components:init", (() => {
                        elementorFrontend.elements.$body.find(".elementor-widget-woocommerce-cart").length || elementorFrontend.elements.$body.append('<div class="woocommerce-cart-form">')
                    }))
                }
            }
            t.default = _default
        },
        2470: e => {
            e.exports = wp.i18n
        }
    },
    e => {
        e.O(0, [313], (() => {
            return t = 2371, e(e.s = t);
            var t
        }));
        e.O()
    }
]);
var tpj = jQuery;
var revapi2, revapi4;
if (window.RS_MODULES === undefined) window.RS_MODULES = {};
if (RS_MODULES.modules === undefined) RS_MODULES.modules = {};
RS_MODULES.modules.revslider21 = {
    once: RS_MODULES.modules.revslider21 !== undefined ? RS_MODULES.modules.revslider21.once : undefined,
    init: function() {
        window.revapi2 = window.revapi2 === undefined || window.revapi2 === null || window.revapi2.length === 0 ? document.getElementById("rev_slider_2_1") : window.revapi2;
        if (window.revapi2 === null || window.revapi2 === undefined || window.revapi2.length == 0) {
            window.revapi2initTry = window.revapi2initTry === undefined ? 0 : window.revapi2initTry + 1;
            if (window.revapi2initTry < 20) requestAnimationFrame(function() {
                RS_MODULES.modules.revslider21.init()
            });
            return
        }
        window.revapi2 = jQuery(window.revapi2);
        if (window.revapi2.revolution == undefined) {
            revslider_showDoubleJqueryError("rev_slider_2_1");
            return
        }
        revapi2.revolutionInit({
            revapi: "revapi2",
            DPR: "dpr",
            visibilityLevels: "1240,1024,778,480",
            gridwidth: "1920,1200,778,480",
            gridheight: "600,450,580,440",
            lazyType: "smart",
            spinner: "spinner0",
            perspective: 600,
            perspectiveType: "local",
            editorheight: "600,450,580,211",
            responsiveLevels: "1240,1024,778,480",
            ajaxUrl: "https://floorltech.com/wp-admin/admin-ajax.php",
            progressBar: {
                color: "rgba(0,0,0,0.15)",
                vertical: "top",
                size: 5,
                x: 0,
                y: 0
            },
            navigation: {
                mouseScrollNavigation: !1,
                wheelCallDelay: 1000,
                arrows: {
                    enable: !0,
                    style: "persephone",
                    hide_onleave: !0,
                    left: {
                        container: "layergrid",
                        h_align: "right",
                        h_offset: 0,
                        v_offset: -40
                    },
                    right: {
                        container: "layergrid",
                        h_offset: 0,
                        v_offset: 40
                    }
                }
            },
            parallax: {
                levels: [5, 10, 15, 20, 25, 30, 35, 40, 45, 46, 47, 48, 49, 50, 51, 55],
                type: "mouse"
            },
            viewPort: {
                global: !0,
                globalDist: "-200px",
                enable: !1,
                visible_area: "20%"
            },
            fallbacks: {
                allowHTML5AutoPlayOnAndroid: !0
            },
        })
    }
}
if (window.RS_MODULES === undefined) window.RS_MODULES = {};
if (RS_MODULES.modules === undefined) RS_MODULES.modules = {};
RS_MODULES.modules.revslider42 = {
    once: RS_MODULES.modules.revslider42 !== undefined ? RS_MODULES.modules.revslider42.once : undefined,
    init: function() {
        window.revapi4 = window.revapi4 === undefined || window.revapi4 === null || window.revapi4.length === 0 ? document.getElementById("rev_slider_4_2") : window.revapi4;
        if (window.revapi4 === null || window.revapi4 === undefined || window.revapi4.length == 0) {
            window.revapi4initTry = window.revapi4initTry === undefined ? 0 : window.revapi4initTry + 1;
            if (window.revapi4initTry < 20) requestAnimationFrame(function() {
                RS_MODULES.modules.revslider42.init()
            });
            return
        }
        window.revapi4 = jQuery(window.revapi4);
        if (window.revapi4.revolution == undefined) {
            revslider_showDoubleJqueryError("rev_slider_4_2");
            return
        }
        revapi4.revolutionInit({
            revapi: "revapi4",
            DPR: "dpr",
            visibilityLevels: "1240,1240,778,480",
            gridwidth: "1170,1170,778,480",
            gridheight: "550,550,580,440",
            lazyType: "smart",
            spinner: "spinner0",
            perspective: 600,
            perspectiveType: "local",
            editorheight: "549.988,450,580,439.988",
            responsiveLevels: "1240,1240,778,480",
            ajaxUrl: "https://floorltech.com/wp-admin/admin-ajax.php",
            progressBar: {
                color: "rgba(0,0,0,0.15)",
                vertical: "top",
                size: 5,
                x: 0,
                y: 0
            },
            navigation: {
                mouseScrollNavigation: !1,
                wheelCallDelay: 1000,
                arrows: {
                    enable: !0,
                    style: "persephone",
                    hide_onleave: !0,
                    left: {
                        container: "layergrid",
                        h_align: "right",
                        h_offset: 0,
                        v_offset: -40
                    },
                    right: {
                        container: "layergrid",
                        h_offset: 0,
                        v_offset: 40
                    }
                },
                bullets: {
                    enable: !0,
                    tmp: "<span class=\"tp-bullet-title\">{{title}}</span>",
                    style: "ares",
                    h_offset: 5,
                    v_offset: 7,
                    container: "layergrid"
                }
            },
            parallax: {
                levels: [5, 10, 15, 20, 25, 30, 35, 40, 45, 46, 47, 48, 49, 50, 51, 55],
                type: "mouse"
            },
            viewPort: {
                global: !0,
                globalDist: "-200px",
                enable: !1,
                visible_area: "20%"
            },
            fallbacks: {
                allowHTML5AutoPlayOnAndroid: !0
            },
        })
    }
}
if (window.RS_MODULES.checkMinimal !== undefined) {
    window.RS_MODULES.checkMinimal()
}