CINXE.COM

Atualidade - RFM

<!DOCTYPE html> <html lang="pt-pt"> <head> <title>Atualidade - RFM</title> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <meta name="robots" content="index, follow, max-image-preview:large" /> <meta name="googlebot" content="index, follow, max-image-preview:large" /> <meta name="id" content="rfm.pt" /> <meta name="author" content="RFM" /> <meta name="revisit-after" content="1 days" /> <meta name="description" content="O que é que está a acontecer? Quais são as tendências do momento? As respostas estão mesmo aqui! De Portugal e do Mundo, estas são as atualidades mais incríveis!" /> <meta name="keywords" content="Rock in Rio, Bruno Mars, RFM, Rádio, Radio, Music, Humor, Comédia, Nilton, Café da Manhã, Top 25, Jazzy, Dance It, Latinas, 90s, Rocks, Toca Portugal, Oceano Pacífico, 80s RFM, 80srfm, Somnii, radio online, rádio online, emissão online, 6pm, Fridayboyz" /> <meta charset="utf-8" /> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width,minimum-scale=1,initial-scale=1"> <meta name="HandheldFriendly" content="True" /> <meta name="MobileOptimized" content="320" /> <meta name="mobile-web-app-capable" content="yes" /> <meta name="apple-itunes-app" content="app-id=1413710774" /> <link rel="manifest" href="/manifest.json" /> <link rel="preconnect" href="https://rfmsite2023-images.azureedge.net/" /> <link rel="dns-prefetch" href="https://rfmsite2023-images.azureedge.net/" /> <link rel="preconnect" href="https://cdnjs.cloudflare.com/" /> <link rel="dns-prefetch" href="https://cdnjs.cloudflare.com/" /> <link rel="preconnect" href="https://cdns.eu1.gigya.com" /> <link rel="dns-prefetch" href="https://cdns.eu1.gigya.com" /> <link rel="preconnect" href="https://www.google-analytics.com" /> <link rel="dns-prefetch" href="https://www.google-analytics.com" /> <link rel="preconnect" href="https://gapt.hit.gemius.pl" /> <link rel="dns-prefetch" href="https://gapt.hit.gemius.pl" /> <link rel="preconnect" href="https://www.googletagmanager.com" /> <link rel="dns-prefetch" href="https://www.googletagmanager.com" /> <!-- Favico --> <link rel="icon" type="image/png" href="https://rfm.pt/favicon-96x96.png" sizes="96x96" /> <link rel="icon" type="image/svg+xml" href="https://rfm.pt/favicon.svg" /> <link rel="shortcut icon" href="https://rfm.pt/favicon.ico" /> <link rel="apple-touch-icon" sizes="180x180" href="https://rfm.pt/apple-touch-icon.png" /> <meta name="apple-mobile-web-app-title" content="RFM" /> <link rel="manifest" href="https://rfm.pt/manifest.json" /> <script type="text/javascript"> var siteUrl = "https://rfm.pt/"; </script> <meta property="og:type" content="website" /> <meta property="og:title" content="Atualidade - RFM" /> <meta property="og:description" content="O que é que está a acontecer? Quais são as tendências do momento? As respostas estão mesmo aqui! De Portugal e do Mundo, estas são as atualidades mais incríveis!" /> <meta property="og:image" content="https://images.rfm.pt/rfm_historias858707a6.jpg" /> <meta property="og:url" content="https://rfm.pt/atualidade" /> <meta property="og:site_name" content="RFM" /> <!--Tag AMP --> <link rel="canonical" href="https://rfm.pt/atualidade" /> <meta property="fb:pages" content="53498842922" /> <meta name="twitter:card" content="summary_large_image" /> <meta name="twitter:site" content="@rfmportugal" /> <meta name="twitter:site:id" content="282123042" /> <meta name="twitter:title" content="Atualidade - RFM" /> <meta name="twitter:description" content="O que é que está a acontecer? Quais são as tendências do momento? As respostas estão mesmo aqui! De Portugal e do Mundo, estas são as atualidades mais incríveis!" /> <meta name="twitter:image" content="https://images.rfm.pt/rfm_historias858707a6.jpg" /> <meta name="twitter:url" content="https://rfm.pt/atualidade" /> <meta property="fb:app_id" content="205173995773" /> <link rel="image_src" href="https://images.rfm.pt/rfm_historias858707a6.jpg" /> <link rel="search" type="application/opensearchdescription+xml" title="RFM Search" href="https://rfm.pt/opensearch.xml" /> <link rel="alternate" type="application/rss+xml" title="RFM - Últimas da Atualidade" href="https://rfm.pt/rssfeed" /> <!-- Sitelinks Search Box --> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "RadioStation", "name": "RFM", "url": "https://rfm.pt/", "logo": "https://rfmsite2023-images.azureedge.net/images/logoMain.png", "image":{"@type":"ImageObject","url":"https://rfmsite2023-images.azureedge.net/images/logoMain.png"}, "address" :{ "@type": "PostalAddress", "streetAddress": "Quinta do Bom Pastor, Estrada da Buraca 8-12", "addressLocality": "Lisboa", "postalCode": "1549-025", "addressCountry": "PT" }, "telephone": "+351213239200", "sameAs": [ "https://www.facebook.com/rfmoficial/", "https://www.instagram.com/rfmportugal/", "https://twitter.com/rfmportugal", "https://www.youtube.com/RFMsoGrandesMusicas" ] } </script> <script type="application/ld+json"> { "@context": "http://schema.org", "@type": "WebSite", "name": "RFM", "url": "https://rfm.pt/" } </script> <!-- Preload css --> <link rel="preload" href="https://rfmsite2023-images.azureedge.net/css/normalize.min.css?v=2.9" as="style"/> <link rel="preload" href="https://rfm.pt/css/main.min.css?v=2.9" as="style"/> <link rel="preload" href="https://rfmsite2023-images.azureedge.net/css/menu.min.css?v=2.9" as="style"/> <link rel="preload" href="https://rfmsite2023-images.azureedge.net/css/mediaqueries.min.css?v=2.9" as="style"/> <link rel="preload" href="https://rfmsite2023-images.azureedge.net/css/slick.min.css?v=2.9" as="style"/> <link rel="preload" href="https://rfmsite2023-images.azureedge.net/css/slick-theme.min.css?v=2.9" as="style"/> <!-- Fim Preload css --> <!-- Preload js --> <link rel="preload" href="https://rfmsite2023-images.azureedge.net/js/navbar.min.js?v=2.8" as="script" /> <link rel="preload" href="https://rfmsite2023-images.azureedge.net/js/scripts.min.js?v=2.8" as="script" /> <link rel="preload" href="https://rfmsite2023-images.azureedge.net/js/lazysizes.min.js?v=2.8" as="script" /> <link rel="preload" href="https://rfmsite2023-images.azureedge.net/js/pub/anti-adblocker.js?v=2.8" as="script" /> <!-- Fim Preload js --> <!--css's--> <link rel="stylesheet" media="all" type="text/css" href="https://rfmsite2023-images.azureedge.net/css/normalize.min.css?v=2.9" /> <link rel="stylesheet" media="all" type="text/css" href="https://rfm.pt/css/main.min.css?v=2.9" /> <link rel="stylesheet" media="all" type="text/css" href="https://rfmsite2023-images.azureedge.net/css/menu.min.css?v=2.9" /> <link rel="stylesheet" media="all" type="text/css" href="https://rfmsite2023-images.azureedge.net/css/mediaqueries.min.css?v=2.9" /> <link rel="stylesheet" media="all" type="text/css" href="https://rfmsite2023-images.azureedge.net/css/slick.min.css?v=2.9" /> <link rel="stylesheet" media="all" type="text/css" href="https://rfmsite2023-images.azureedge.net/css/slick-theme.min.css?v=2.9" /> <!-- Fim css's--> <!-- js's --> <script>!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 });</script> <script type="text/javascript" src="https://rfmsite2023-images.azureedge.net/js/navbar.min.js?v=2.8"></script> <!-- Fim js's --> <!--JS--> <link rel="preload" href="https://rfmsite2023-images.azureedge.net/js/section.min.js?v=2.8" as="script"> <script> (function () { var docElem = document.documentElement; window.lazySizesConfig = window.lazySizesConfig || {}; window.lazySizesConfig.loadMode = 1; window.lazySizesConfig.expand = Math.max(Math.min(docElem.clientWidth, docElem.clientHeight, 1222) - 1, 359); window.lazySizesConfig.expFactor = lazySizesConfig.expand < 380 ? 3 : 2; })(); </script> <!-- Google Tag Manager --> <script>(function (w, d, s, l, i) { w[l] = w[l] || []; w[l].push({ 'gtm.start': new Date().getTime(), event: 'gtm.js' }); var f = d.getElementsByTagName(s)[0], j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : ''; j.async = true; j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl; f.parentNode.insertBefore(j, f); })(window, document, 'script', 'dataLayer', 'GTM-NN3B2C2');</script> <!-- End Google Tag Manager --> <!-- Facebook Pixel Code --> <script> !function (f, b, e, v, n, t, s) { if (f.fbq) return; n = f.fbq = function () { n.callMethod ? n.callMethod.apply(n, arguments) : n.queue.push(arguments) }; if (!f._fbq) f._fbq = n; n.push = n; n.loaded = !0; n.version = '2.0'; n.queue = []; t = b.createElement(e); t.async = !0; t.src = v; s = b.getElementsByTagName(e)[0]; s.parentNode.insertBefore(t, s) }(window, document, 'script', 'https://connect.facebook.net/en_US/fbevents.js'); fbq('init', '660369728267137'); fbq('track', 'PageView'); </script> <noscript><img height="1" width="1" style="display:none" src="https://www.facebook.com/tr?id=660369728267137&ev=PageView&noscript=1" /></noscript> <!-- End Facebook Pixel Code --> <!-- PUB BUNDLE--> <script src="https://rfmsite2023-images.azureedge.net/js/pub/tagbundle.js?v=2.8"></script> <script> //targeting page level tagBundleConfig.targeting = { segmentacao: ['historias'] } </script> <!-- Para limitar a altura para o formato fluid aplicar a css--> <style> .stickyBottom {max-height: 100px; } </style> <!-- PUB BUNDLE--> <!-- PUB BUNDLE STICK--> <link rel="preload" href="https://rfmsite2023-images.azureedge.net/js/pub/stick.min.js?v=2.8" as="script" /> <script type="text/javascript" src="https://rfmsite2023-images.azureedge.net/js/pub/stick.min.js?v=2.8"></script> <!--Anti-AdBlocker: AD BLOCKING RECOVERY TAG --> <script async src="https://fundingchoicesmessages.google.com/i/pub-9376757882493680?ers=1" nonce="-JtmwVSv3mOryevFq_Bkhw"></script> <script nonce="-JtmwVSv3mOryevFq_Bkhw">(function () { function signalGooglefcPresent() { if (!window.frames['googlefcPresent']) { if (document.body) { const iframe = document.createElement('iframe'); iframe.style = 'width: 0; height: 0; border: none; z-index: -1000; left: -1000px; top: -1000px;'; iframe.style.display = 'none'; iframe.name = 'googlefcPresent'; document.body.appendChild(iframe); } else { setTimeout(signalGooglefcPresent, 0); } } } signalGooglefcPresent(); })();</script> <script src="https://rfmsite2023-images.azureedge.net/js/pub/anti-adblocker.js?v=2.8"></script> <!-- inMobi Consent--> </head> <body> <!-- Google Tag Manager (noscript) --> <noscript><iframe src="https://www.googletagmanager.com/ns.html?id=GTM-NN3B2C2" height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript> <!-- End Google Tag Manager (noscript) --> <!-- PUB BUNDLE--> <div id="sticky_Bottom"> <ad-placement class="stickyBottom" format="stickyBottom" adunit="RFM/rfm_ros_stickyBottom"></ad-placement> </div> <!-- PUB BUNDLE--> <script type="text/javascript"> var nonioenabled =false; </script> <script type="text/javascript" src="https://rfmsite2023-images.azureedge.net/js/nonio/noniogatting.min.js?v=2.8"></script> <div id="wrapperContentGatingNonio" style="display: none;"> <div class="maskContentGatingNonio"> <!--caixa esquerda--> <div class="left-columnContentGatingNonio"> <div class="logotipoContentGatingNonio" style="background-image: url('https://images.rr.pt/logo_rfm_white6036587e.png')"></div> <div class="h-2ContentGatingNonio hidedesktopContentGatingNonio"> Para continuar a ler, <div class="h4rep">registe-se no Nónio</div> </div> <div class="h-1ContentGatingNonio hidemobileContentGatingNonio">Olá, para continuar a ler os nossos conteúdos e garantir o acesso aos melhores sites portugueses faça já o seu registo. </div> <div class="vantagensContentGatingNonio"> <div> <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 20 20" style="enable-background: new 0 0 20 20;" xml:space="preserve"> <g> <path class="st0ContentGatingNonio" d="M10,0.2c-5.4,0-9.9,4.4-9.9,9.9c0,5.4,4.4,9.9,9.9,9.9s9.9-4.4,9.9-9.9C19.8,4.6,15.4,0.2,10,0.2z M10,18.6 c-4.7,0-8.6-3.8-8.6-8.6S5.2,1.4,10,1.4s8.6,3.8,8.6,8.6S14.7,18.6,10,18.6z" /> <polygon class="st0ContentGatingNonio" points="8.3,11.6 6,8.9 5,9.7 7.3,12.4 8.2,13.4 9.2,12.6 15,7.6 14.1,6.6 " /> </g> </svg> Acesso aos melhores conteúdos </div> <div> <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 20 20" style="enable-background: new 0 0 20 20;" xml:space="preserve"> <g> <path class="st0ContentGatingNonio" d="M10,0.2c-5.4,0-9.9,4.4-9.9,9.9c0,5.4,4.4,9.9,9.9,9.9s9.9-4.4,9.9-9.9C19.8,4.6,15.4,0.2,10,0.2z M10,18.6 c-4.7,0-8.6-3.8-8.6-8.6S5.2,1.4,10,1.4s8.6,3.8,8.6,8.6S14.7,18.6,10,18.6z" /> <polygon class="st0ContentGatingNonio" points="8.3,11.6 6,8.9 5,9.7 7.3,12.4 8.2,13.4 9.2,12.6 15,7.6 14.1,6.6 " /> </g> </svg> Simples: Registo único em menos de 1 minuto </div> <div> <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 20 20" style="enable-background: new 0 0 20 20;" xml:space="preserve"> <g> <path class="st0ContentGatingNonio" d="M10,0.2c-5.4,0-9.9,4.4-9.9,9.9c0,5.4,4.4,9.9,9.9,9.9s9.9-4.4,9.9-9.9C19.8,4.6,15.4,0.2,10,0.2z M10,18.6 c-4.7,0-8.6-3.8-8.6-8.6S5.2,1.4,10,1.4s8.6,3.8,8.6,8.6S14.7,18.6,10,18.6z" /> <polygon class="st0ContentGatingNonio" points="8.3,11.6 6,8.9 5,9.7 7.3,12.4 8.2,13.4 9.2,12.6 15,7.6 14.1,6.6 " /> </g> </svg> Um único login que lhe dá acesso permanente a este e aos mais de 70 sites de media portugueses, que fazem parte do NÓNIO </div> <div> <a style="color: white; text-decoration: none;" href="https://rfm.pt/" target="_self" title="Home Page">Voltar à homepage do site</a> </div> </div> </div> <!-- Caixa direita--> <!-- Caixa direita--> <div class="right-columnContentGatingNonio" style="overflow: hidden;"> <div id="cg" style="overflow-y: auto; height: 100%; min-height: 540px; max-height: 540px; margin-top: 5px; margin-bottom: 41px;"></div> <div class="assNonioContentGatingNonio"><a href="https://nonio.net/" target="_new"> <img alt="logo nonio" class="nonio-imgContentGatingNonio" width="64" src="https://rrsite-images.azureedge.net/img/ico-nonio.svg" /> Fique por dentro > </a></div> </div> </div> </div> <!-- nonio wrapper e--> <!-- |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| --> <div class="s-mod search-hide"> <div class="c-but"> <div id="close-but2" class="mn-ico"> <div class='search-toggle' title='Fechar pesquisa'> <div class='bar-s1'></div> <div class='bar-s3'></div> </div> </div> </div> <div class="search-box"> <input class="searchBox" type="text" placeholder="O termo da tua pesquisa ..." name="search"> <button id="pesquisar" class="x-btn quarter-left-space" role="button" title="Pesquisar"> <div class="x-btn-bg bgc-light-red"></div> <p class="x-btn-lb txtc-red">Pesquisar</p> </button> </div> </div> <script src="https://rfmsite2023-images.azureedge.net/js/pesquisa.min.js?v=2.8"></script> <!-- ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||--> <!-- MAIN NAV --> <nav class="nav-hide"> <div class="c-but"> <div id="close-but" class="mn-ico"> <div class='search-toggle' title='Fechar menu'> <div class='bar-s1'></div> <div class='bar-s3'></div> </div> </div> </div> <ul> <li><h2 class="bgbox"><a href="https://rfm.pt/atualidade" target="_self" data-text="Atualidade">Atualidade</a></h2></li> <li><h2 class="bgbox"><a href="https://rfm.pt/radios" target="_self" data-text="Rádios">Rádios</a></h2></li> <li><h2 class="bgbox"><a href="https://rfm.pt/programas" target="_self" data-text="Programas">Programas</a></h2></li> <li><h2 class="bgbox"><a href="https://rfm.pt/podcasts" target="_self" data-text="Podcasts">Podcasts</a></h2></li> <li><h2 class="bgbox"><a href="https://rfm.pt/videos" target="_self" data-text="Vídeos">Vídeos</a></h2></li> <li><h2 class="bgbox"><a href="https://rfm.pt/eventos-rfm" target="_self" data-text="Eventos RFM">Eventos RFM</a></h2></li> <li><h2 class="bgbox"><a href="https://rfm.pt/a-rfm" target="_self" data-text="A RFM">A RFM</a></h2></li> </ul> </nav> <!-- BILLBOARD --> <section id='top-pub'><div class='pub-info-bb'>PUB</div><div class='pub-bb'><ad-placement format='Billboard' adunit='RFM/rfm_ros_Billboard'></ad-placement></div></section> <!-- MAIN GRID --> <div class="main-gta"> <header class="header sticky"> <!-- BARRA TOPO EXTRAS --> <!-- MAIN NAV --> <section id="top-extras"> <div class="extra-nav"> <div class="cx-pesq-notif"> <!-- Notifications Begins --> <div class="ico-alert half-right-space"> <a href="https://rfm.pt/notificacoes-rfm" target="_self" title="Notificações da RFM"> <img data-src="https://rfmsite2023-images.azureedge.net/images/ico-alert.svg" width="35" height="35" alt="Notificações da RFM" title="Notificações da RFM" class="lazyload" /> </a> <!-- PopNotificacoes --> <!-- Fim PopNotificacoes --> </div> <!-- Notifications Ends --> <div class="ico-search half-right-space"> <a href="#" title="Pesquisar no site"> <img data-src="https://rfmsite2023-images.azureedge.net/images/ico-search.svg" width="35" height="32" alt="Pesquisar no site" title="Pesquisar no site" class="lazyload" /> </a> </div> </div> <!-- Nonio --> <div class="cx-nonio"> <!-- Nonio RFM --> <script type="text/javascript"> var nonioShowCaptcha = 'false'; console.log('nonioShowCaptcha=' + nonioShowCaptcha); </script> <script type="text/javascript" src="https://rfmsite2023-images.azureedge.net/js/nonio/functions_nonio.min.js?v=2.8"></script> <div id="gigyaUserLoggedOut" style="display: none;"> <button class="x-btn half-right-space" onclick="New_Login();" role="button"> <div class="x-btn-bg bgc-light-red"></div> <p class="x-btn-lb txtc-red">Login</p> </button> <a href="#" class="lnk-white fw-bold half-right-space" style="cursor: pointer" onclick="Register();" title="Novo Registo">Novo Registo</a> </div> <div id="gigyaUserLoggedIn" style="display: none;"> <a href="#" class="lnk-white half-right-space hide-xsmall hide-small large" style="cursor: pointer" onclick="Update_User();">Olá <span id="gigyaFirstName"></span></a> <a href="#" class="lnk-white fw-bold half-right-space" style="cursor: pointer" onclick="Update_User();">Editar Perfil</a> <button onclick="LogOut();" class="x-btn half-right-space" role="button"> <div class="x-btn-bg bgc-light-red"></div> <p class="x-btn-lb txtc-red">Logout</p> </button> </div> <!-- Nonio RFM END--> </div> <!-- Nonio END --> </div> </section> <!-- TOPO BEGINS --> <section id="top-bar"> <!-- 3 x line --> <div class="top-triade"> <!-- Ico Nav --> <div class="mn-but mn-circle"> <div class="mn-ico"> <div class='navbar-toggle' title='Menu'> <div class='bar1'></div> <div class='bar2'></div> <div class='bar3'></div> <div class="bar-txt-mn">menu</div> </div> </div> </div> <!-- RFM Logo --> <a href="https://rfm.pt/" target="_self" title="RFM - Só Grandes Músicas"> <img src="https://rfmsite2023-images.azureedge.net/images/RFM-logo-marca-confianca-2025.png" width="220" height="95" class="ic-lg-extra lazyload" title="RFM Marca de Confiança 2025 - Ir para a homepage RFM" alt="RFM Marca de Confiança 2025 - Ir para a homepage RFM" /> </a> <!-- Ico Play --> <a href="https://rfm.pt/ouvir-emissao-rfm" rel="noopener" target="_blank" title="Ouvir a Rádio Online RFM" class="player-play"> <div class="mn-circle"> <div class="mn-ico"> <div class='ico-play'></div> <div class="bar-txt-play">ouvir</div> </div> </div> </a> </div> </section> </header> <!-- Métricas --> <!-- netScope v4 r1 – Begin of gPrism tag --> <script type="text/javascript"> <!--//--><![CDATA[//><!-- var pp_gemius_identifier = 'ndpAgrN_Kzod77shLEP21NTIDiGBXmcVepuwGVz.3HD.A7'; var pp_gemius_extraparameters = new Array('gA=Atualidade/AtualidadeHome'); // lines below shouldn't be edited function gemius_pending(i) { window[i] = window[i] || function () { var x = window[i + '_pdata'] = window[i + '_pdata'] || []; x[x.length] = arguments; }; }; gemius_pending('gemius_hit'); gemius_pending('gemius_event'); gemius_pending('pp_gemius_hit'); gemius_pending('pp_gemius_event'); (function (d, t) { var ex; try { var gt = d.createElement(t), s = d.getElementsByTagName(t)[0], l = 'http' + ((location.protocol == 'https:') ? 's' : ''); gt.async = 'true'; gt.src = l + '://gapt.hit.gemius.pl/xgemius.js'; s.parentNode.insertBefore(gt, s); } catch (ex) { } })(document, 'script'); //--><!]]> </script> <!--End netScope v4 r1 / www.net.marktest.pt / (C) Gemius/Marktest 2018 --> <!-- FIM Métricas --> <main> <section id="main-body" class="bottom-space"> <section class="bread-crums quarter-left-padding"> <div class="x-url"> <a href="https://rfm.pt/">Início</a> > <h1>Atualidade</h1> </div> <button id="" class="x-btn push-right" role="button" aria-label="" tabindex="0" title="Voltar" onclick="backHistory();"> <div class="x-btn-bg bgc-white brd-grey"></div> <span class="x-btn-lt txtc-dark-grey large quarter-padding">Voltar</span> </button> </section> <hr class="top-ln" /> <article class="half-top-space"> <span id="dpbox"></span> <header> <h2 class="h-intro">O que é que está a acontecer? Quais são as tendências do momento? As respostas estão mesmo aqui! De Portugal e do Mundo, estas são as atualidades mais incríveis!</h2> </header> </article> <!-- ||||| DROP DOWN BEGINS ||||||||||| --> <div class="dp-box"> <button onclick="dpdown()" class="pag-nav-btn">submenu <i class="arrow-x arrow-down"></i></button> <div id="pag-nav" class="pag-nav-cx"> <a href="#a-eventos-rfm">Eventos RFM</a> <a href="#a-lifestyle">Lifestyle</a> <a href="#a-curiosidades">Curiosidades</a> <a href="#a-narfm">Na RFM</a> <a href="#a-musica">Música</a> <a href="#a-festivais">Festivais</a> <a href="#a-historias-incriveis">Histórias Incríveis</a> <a href="#a-famosos">Famosos</a> <a href="#a-series-e-filmes">Séries e Filmes</a> <a href="#a-em-portugal">Em Portugal</a> <a href="#a-passatempos">Passatempos</a> </div> </div> <!-- |||| DROP DOWN ENDS |||||||||||--> <!-- EVENTOS RFM --> <span id="a-eventos-rfm"></span> <div class="x-title top-space"><span>Eventos RFM</span></div> <section class="g-mx g-m3 top-space"> <div class='g-mx-it'><a href='https://rfm.pt/atualidade/20175/nuno-ribeiro-finalmente-no-coliseu-de-lisboa' target='_self' title='Nuno Ribeiro finalmente no Coliseu de Lisboa'><figure><div class='fig-box'><img alt='Nuno Ribeiro finalmente no Coliseu de Lisboa' title='Nuno Ribeiro finalmente no Coliseu de Lisboa' data-sizes='auto' data-srcset='https://images.rfm.pt/nunoribeiro-2026-twittter-post2114a7f2_destaque_3col.jpg 256w, https://images.rfm.pt/nunoribeiro-2026-twittter-post2114a7f2_destaque_3col.jpg 512w, https://images.rfm.pt/nunoribeiro-2026-twittter-post2114a7f2_destaque_2col.jpg 1028w' width='475' height='267' data-src='https://images.rfm.pt/nunoribeiro-2026-twittter-post2114a7f2_destaque_2col.jpg' class='lazyload' /></div><figcaption>Nuno Ribeiro finalmente no Coliseu de Lisboa</figcaption></figure></a></div><div class='g-mx-it'><a href='https://rfm.pt/atualidade/20170/meo-kalorama-tem-o-cartaz-completo-e-ate-dia-11-o-bilhete-custa-so-35' target='_self' title='Meo Kalorama tem o cartaz completo e, at&#233; dia 11, o bilhete custa s&#243; 35€!!!'><figure><div class='fig-box'><img alt='Meo Kalorama tem o cartaz completo e, at&#233; dia 11, o bilhete custa s&#243; 35€!!!' title='Meo Kalorama tem o cartaz completo e, at&#233; dia 11, o bilhete custa s&#243; 35€!!!' data-sizes='auto' data-srcset='https://images.rfm.pt/meo-kalorama-foto-1104632da_destaque_3col.jpg 256w, https://images.rfm.pt/meo-kalorama-foto-1104632da_destaque_3col.jpg 512w, https://images.rfm.pt/meo-kalorama-foto-1104632da_destaque_2col.jpg 1028w' width='475' height='267' data-src='https://images.rfm.pt/meo-kalorama-foto-1104632da_destaque_2col.jpg' class='lazyload' /></div><figcaption>Meo Kalorama tem o cartaz completo e, até dia 11, o bilhete custa só 35€!!!</figcaption></figure></a></div><div class='g-mx-it'><a href='https://rfm.pt/atualidade/20157/o-cartaz-do-sol-da-caparica-esta-fechado-descobre-aqui-quem-vai-la-estar' target='_self' title='O cartaz do Sol da Caparica est&#225; fechado! Descobre aqui quem vai l&#225; estar!'><figure><div class='fig-box'><img alt='O cartaz do Sol da Caparica est&#225; fechado! Descobre aqui quem vai l&#225; estar!' title='O cartaz do Sol da Caparica est&#225; fechado! Descobre aqui quem vai l&#225; estar!' data-sizes='auto' data-srcset='https://images.rfm.pt/foto-de-grupo-sol-da-caparica-228798dc3_destaque_3col.jpg 256w, https://images.rfm.pt/foto-de-grupo-sol-da-caparica-228798dc3_destaque_3col.jpg 512w, https://images.rfm.pt/foto-de-grupo-sol-da-caparica-228798dc3_destaque_2col.jpg 1028w' width='475' height='267' data-src='https://images.rfm.pt/foto-de-grupo-sol-da-caparica-228798dc3_destaque_2col.jpg' class='lazyload' /></div><figcaption>O cartaz do Sol da Caparica está fechado! Descobre aqui quem vai lá estar!</figcaption></figure></a></div> </section> <section class="vertical-space align-center"> <button onclick="location.href='https://rfm.pt/eventos-rfm';" class="x-btn" role="button" aria-label="+ Eventos RFM" tabindex="0" title="+ Eventos RFM"> <div class="x-btn-bg bgc-white brd-grey"></div> <span class="x-btn-lt txtc-grey large quarter-padding">+ Eventos RFM</span> </button> </section> <!-- FIM EVENTOS RFM --> <!-- LIFESTYLE --> <span id="a-lifestyle"></span> <div class="x-title top-space"><span>Lifestyle</span></div> <section class="g-mx g-m3 top-space"> <div class='g-mx-it'><a href='https://rfm.pt/atualidade/20169/como-salvar-um-prato-que-ficou-demasiado-salgado-estas-dicas-preciosas-vao-ajudar-te' target='_self' title='Como salvar um prato que ficou demasiado salgado? Estas dicas preciosas v&#227;o ajudar-te'><figure><div class='fig-box'><img alt='Como salvar um prato que ficou demasiado salgado? Estas dicas preciosas v&#227;o ajudar-te' title='Como salvar um prato que ficou demasiado salgado? Estas dicas preciosas v&#227;o ajudar-te' data-sizes='auto' data-srcset='https://images.rfm.pt/comida-estragada-destaque1499d4e4_destaque_3col.jpg 256w, https://images.rfm.pt/comida-estragada-destaque1499d4e4_destaque_3col.jpg 512w, https://images.rfm.pt/comida-estragada-destaque1499d4e4_destaque_2col.jpg 1028w' width='475' height='267' data-src='https://images.rfm.pt/comida-estragada-destaque1499d4e4_destaque_2col.jpg' class='lazyload' /></div><figcaption>Como salvar um prato que ficou demasiado salgado? Estas dicas preciosas vão ajudar-te</figcaption></figure></a></div><div class='g-mx-it'><a href='https://rfm.pt/atualidade/20153/estas-a-par-do-novo-fenomeno-que-e-pintar-livros' target='_self' title='Est&#225;s a par do novo fen&#243;meno que &#233; pintar livros?'><figure><div class='fig-box'><img alt='Est&#225;s a par do novo fen&#243;meno que &#233; pintar livros?' title='Est&#225;s a par do novo fen&#243;meno que &#233; pintar livros?' data-sizes='auto' data-srcset='https://images.rfm.pt/pintar-livro-destaque11475ed7_destaque_3col.jpg 256w, https://images.rfm.pt/pintar-livro-destaque11475ed7_destaque_3col.jpg 512w, https://images.rfm.pt/pintar-livro-destaque11475ed7_destaque_2col.jpg 1028w' width='475' height='267' data-src='https://images.rfm.pt/pintar-livro-destaque11475ed7_destaque_2col.jpg' class='lazyload' /></div><figcaption>Estás a par do novo fenómeno que é pintar livros?</figcaption></figure></a></div><div class='g-mx-it'><a href='https://rfm.pt/atualidade/20145/cuidado-este-eletrodomestico-pode-colocar-a-tua-casa-em-risco' target='_self' title='Cuidado! Este eletrodom&#233;stico pode colocar a tua casa em risco'><figure><div class='fig-box'><img alt='Cuidado! Este eletrodom&#233;stico pode colocar a tua casa em risco' title='Cuidado! Este eletrodom&#233;stico pode colocar a tua casa em risco' data-sizes='auto' data-srcset='https://images.rfm.pt/maquina-de-secar-roupa-destaque1227062e_destaque_3col.jpg 256w, https://images.rfm.pt/maquina-de-secar-roupa-destaque1227062e_destaque_3col.jpg 512w, https://images.rfm.pt/maquina-de-secar-roupa-destaque1227062e_destaque_2col.jpg 1028w' width='475' height='267' data-src='https://images.rfm.pt/maquina-de-secar-roupa-destaque1227062e_destaque_2col.jpg' class='lazyload' /></div><figcaption>Cuidado! Este eletrodoméstico pode colocar a tua casa em risco</figcaption></figure></a></div> </section> <section class="vertical-space align-center"> <button onclick="location.href='https://rfm.pt/lifestyle';" class="x-btn" role="button" aria-label="+ Lifestyle" tabindex="0" title="+ Lifestyle"> <div class="x-btn-bg bgc-white brd-grey"></div> <span class="x-btn-lt txtc-grey large quarter-padding">+ Lifestyle</span> </button> </section> <!-- FIM LIFESTYLE --> <!-- CURIOSIDADES --> <span id="a-curiosidades"></span> <div class="x-title top-space"><span>Curiosidades</span></div> <section class="g-mx g-m3 top-space"> <div class='g-mx-it'><a href='https://rfm.pt/atualidade/20171/estas-sempre-a-interromper-os-outros-eis-o-que-a-psicologia-tem-a-dizer' target='_self' title='Est&#225;s sempre a interromper os outros? Eis o que a psicologia tem a dizer'><figure><div class='fig-box'><img alt='Est&#225;s sempre a interromper os outros? Eis o que a psicologia tem a dizer' title='Est&#225;s sempre a interromper os outros? Eis o que a psicologia tem a dizer' data-sizes='auto' data-srcset='https://images.rfm.pt/homem-a-falar-muito-destaque1436b0a1_destaque_3col.jpg 256w, https://images.rfm.pt/homem-a-falar-muito-destaque1436b0a1_destaque_3col.jpg 512w, https://images.rfm.pt/homem-a-falar-muito-destaque1436b0a1_destaque_2col.jpg 1028w' width='475' height='267' data-src='https://images.rfm.pt/homem-a-falar-muito-destaque1436b0a1_destaque_2col.jpg' class='lazyload' /></div><figcaption>Estás sempre a interromper os outros? Eis o que a psicologia tem a dizer</figcaption></figure></a></div><div class='g-mx-it'><a href='https://rfm.pt/atualidade/20166/este-e-um-dos-peixes-mais-consumidos-e-contem-naturalmente-mais-de-70-parasitas' target='_self' title='Este &#233; um dos peixes mais consumidos e cont&#233;m naturalmente mais de 70 parasitas'><figure><div class='fig-box'><img alt='Este &#233; um dos peixes mais consumidos e cont&#233;m naturalmente mais de 70 parasitas' title='Este &#233; um dos peixes mais consumidos e cont&#233;m naturalmente mais de 70 parasitas' data-sizes='auto' data-srcset='https://images.rfm.pt/mulher-a-comer-peixe-destaque149966b0_destaque_3col.jpg 256w, https://images.rfm.pt/mulher-a-comer-peixe-destaque149966b0_destaque_3col.jpg 512w, https://images.rfm.pt/mulher-a-comer-peixe-destaque149966b0_destaque_2col.jpg 1028w' width='475' height='267' data-src='https://images.rfm.pt/mulher-a-comer-peixe-destaque149966b0_destaque_2col.jpg' class='lazyload' /></div><figcaption>Este é um dos peixes mais consumidos e contém naturalmente mais de 70 parasitas</figcaption></figure></a></div><div class='g-mx-it'><a href='https://rfm.pt/atualidade/20163/viagens-gratis-pela-europa-se-tens-18-anos-esta-oportunidade-e-para-ti' target='_self' title='Viagens gr&#225;tis pela Europa? Se tens 18 anos, esta oportunidade &#233; para ti!'><figure><div class='fig-box'><img alt='Viagens gr&#225;tis pela Europa? Se tens 18 anos, esta oportunidade &#233; para ti!' title='Viagens gr&#225;tis pela Europa? Se tens 18 anos, esta oportunidade &#233; para ti!' data-sizes='auto' data-srcset='https://images.rfm.pt/jovem-na-estacao-de-comboios-destaque719592f5_destaque_3col.jpg 256w, https://images.rfm.pt/jovem-na-estacao-de-comboios-destaque719592f5_destaque_3col.jpg 512w, https://images.rfm.pt/jovem-na-estacao-de-comboios-destaque719592f5_destaque_2col.jpg 1028w' width='475' height='267' data-src='https://images.rfm.pt/jovem-na-estacao-de-comboios-destaque719592f5_destaque_2col.jpg' class='lazyload' /></div><figcaption>Viagens grátis pela Europa? Se tens 18 anos, esta oportunidade é para ti!</figcaption></figure></a></div> </section> <section class="vertical-space align-center"> <button onclick="location.href='https://rfm.pt/curiosidades';" class="x-btn" role="button" aria-label="+ Curiosidades" tabindex="0" title="+ Curiosidades"> <div class="x-btn-bg bgc-white brd-grey"></div> <span class="x-btn-lt txtc-grey large quarter-padding">+ Curiosidades</span> </button> </section> <!-- FIM CURIOSIDADES --> <!-- NA RFM --> <span id="a-narfm"></span> <div class="x-title top-space"><span>Na RFM</span></div> <section class="g-mx g-m3 top-space"> <div class='g-mx-it'><a href='https://rfm.pt/atualidade/20168/ana-garcia-martins-diz-qual-e-a-primeira-pessoa-que-despedia' target='_self' title='Ana Garcia Martins diz qual &#233; a primeira pessoa que despedia'><figure><div class='fig-box'><img alt='Ana Garcia Martins diz qual &#233; a primeira pessoa que despedia' title='Ana Garcia Martins diz qual &#233; a primeira pessoa que despedia' data-sizes='auto' data-srcset='https://images.rfm.pt/pipoca-04-abril-202548050d9f_destaque_3col.png 256w, https://images.rfm.pt/pipoca-04-abril-202548050d9f_destaque_3col.png 512w, https://images.rfm.pt/pipoca-04-abril-202548050d9f_destaque_2col.png 1028w' width='475' height='267' data-src='https://images.rfm.pt/pipoca-04-abril-202548050d9f_destaque_2col.png' class='lazyload' /></div><figcaption>Ana Garcia Martins diz qual é a primeira pessoa que despedia</figcaption></figure></a></div><div class='g-mx-it'><a href='https://rfm.pt/atualidade/20160/ana-garcia-martins-odeio-personal-trainers' target='_self' title='Ana Garcia Martins: &quot;Odeio personal trainers!&quot;'><figure><div class='fig-box'><img alt='Ana Garcia Martins: &quot;Odeio personal trainers!&quot;' title='Ana Garcia Martins: &quot;Odeio personal trainers!&quot;' data-sizes='auto' data-srcset='https://images.rfm.pt/pipoca-03-abril-20251991cdcf_destaque_3col.png 256w, https://images.rfm.pt/pipoca-03-abril-20251991cdcf_destaque_3col.png 512w, https://images.rfm.pt/pipoca-03-abril-20251991cdcf_destaque_2col.png 1028w' width='475' height='267' data-src='https://images.rfm.pt/pipoca-03-abril-20251991cdcf_destaque_2col.png' class='lazyload' /></div><figcaption>Ana Garcia Martins: "Odeio personal trainers!"</figcaption></figure></a></div><div class='g-mx-it'><a href='https://rfm.pt/atualidade/20150/a-rfm-deu-25999-euros-no-grandioso-jogo-da-mala' target='_self' title='A RFM deu 25.999 euros no Grandioso Jogo da Mala!'><figure><div class='fig-box'><img alt='A RFM deu 25.999 euros no Grandioso Jogo da Mala!' title='A RFM deu 25.999 euros no Grandioso Jogo da Mala!' data-sizes='auto' data-srcset='https://images.rfm.pt/frame59293ac2_destaque_3col.jpg 256w, https://images.rfm.pt/frame59293ac2_destaque_3col.jpg 512w, https://images.rfm.pt/frame59293ac2_destaque_2col.jpg 1028w' width='475' height='267' data-src='https://images.rfm.pt/frame59293ac2_destaque_2col.jpg' class='lazyload' /></div><figcaption>A RFM deu 25.999 euros no Grandioso Jogo da Mala!</figcaption></figure></a></div> </section> <section class="vertical-space align-center"> <button onclick="location.href='https://rfm.pt/na-rfm';" class="x-btn" role="button" aria-label="+ Na RFM" tabindex="0" title="+ Na RFM"> <div class="x-btn-bg bgc-white brd-grey"></div> <span class="x-btn-lt txtc-grey large quarter-padding">+ Na RFM</span> </button> </section> <!-- FIM NA RFM --> <!-- Musica --> <span id="a-musica"></span> <div class="x-title top-space"><span>Música</span></div> <section class="g-mx g-m3 top-space"> <div class='g-mx-it'><a href='https://rfm.pt/atualidade/20167/garota-foi-eleita-cancao-do-ano-nos-premios-play-2025' target='_self' title='&quot;Garota&quot; foi eleita Can&#231;&#227;o do Ano nos pr&#233;mios PLAY 2025'><figure><div class='fig-box'><img alt='&quot;Garota&quot; foi eleita Can&#231;&#227;o do Ano nos pr&#233;mios PLAY 2025' title='&quot;Garota&quot; foi eleita Can&#231;&#227;o do Ano nos pr&#233;mios PLAY 2025' data-sizes='auto' data-srcset='https://images.rfm.pt/maninho-e-marisa-liz-destaque1923be05_destaque_3col.jpg 256w, https://images.rfm.pt/maninho-e-marisa-liz-destaque1923be05_destaque_3col.jpg 512w, https://images.rfm.pt/maninho-e-marisa-liz-destaque1923be05_destaque_2col.jpg 1028w' width='475' height='267' data-src='https://images.rfm.pt/maninho-e-marisa-liz-destaque1923be05_destaque_2col.jpg' class='lazyload' /></div><figcaption>"Garota" foi eleita Canção do Ano nos prémios PLAY 2025</figcaption></figure></a></div><div class='g-mx-it'><a href='https://rfm.pt/atualidade/20047/billie-eilish-e-finneas-conquistaram-album-do-ano-e-taylor-swift-dominou-os-iheartradio-music-awards-2025' target='_self' title='Billie Eilish e Finneas conquistaram &quot;&#193;lbum do Ano&quot; e Taylor Swift dominou os iHeartRadio Music Awards 2025'><figure><div class='fig-box'><img alt='Billie Eilish e Finneas conquistaram &quot;&#193;lbum do Ano&quot; e Taylor Swift dominou os iHeartRadio Music Awards 2025' title='Billie Eilish e Finneas conquistaram &quot;&#193;lbum do Ano&quot; e Taylor Swift dominou os iHeartRadio Music Awards 2025' data-sizes='auto' data-srcset='https://images.rfm.pt/billie-eilish-no-iheartradio-music-destaque-reuters15975b0e_destaque_3col.jpg 256w, https://images.rfm.pt/billie-eilish-no-iheartradio-music-destaque-reuters15975b0e_destaque_3col.jpg 512w, https://images.rfm.pt/billie-eilish-no-iheartradio-music-destaque-reuters15975b0e_destaque_2col.jpg 1028w' width='475' height='267' data-src='https://images.rfm.pt/billie-eilish-no-iheartradio-music-destaque-reuters15975b0e_destaque_2col.jpg' class='lazyload' /></div><figcaption>Billie Eilish e Finneas conquistaram "Álbum do Ano" e Taylor Swift dominou os iHeartRadio Music Awards 2025</figcaption></figure></a></div><div class='g-mx-it'><a href='https://rfm.pt/atualidade/19923/plutonio-dillaz-e-capitao-fausto-dominam-as-nomeacoes-dos-premios-play' target='_self' title='Plut&#243;nio, Dillaz e Capit&#227;o Fausto dominam as nomea&#231;&#245;es dos pr&#233;mios PLAY'><figure><div class='fig-box'><img alt='Plut&#243;nio, Dillaz e Capit&#227;o Fausto dominam as nomea&#231;&#245;es dos pr&#233;mios PLAY' title='Plut&#243;nio, Dillaz e Capit&#227;o Fausto dominam as nomea&#231;&#245;es dos pr&#233;mios PLAY' data-sizes='auto' data-srcset='https://images.rfm.pt/dillaz-destaque18465127_destaque_3col.jpg 256w, https://images.rfm.pt/dillaz-destaque18465127_destaque_3col.jpg 512w, https://images.rfm.pt/dillaz-destaque18465127_destaque_2col.jpg 1028w' width='475' height='267' data-src='https://images.rfm.pt/dillaz-destaque18465127_destaque_2col.jpg' class='lazyload' /></div><figcaption>Plutónio, Dillaz e Capitão Fausto dominam as nomeações dos prémios PLAY</figcaption></figure></a></div> </section> <section class="vertical-space align-center"> <button onclick="location.href='https://rfm.pt/musica';" class="x-btn" role="button" aria-label="+ Música" tabindex="0" title="+ Música"> <div class="x-btn-bg bgc-white brd-grey"></div> <span class="x-btn-lt txtc-grey large quarter-padding">+ Música</span> </button> </section> <!-- FIM Musica --> <!-- Festivais --> <span id="a-festivais"></span> <div class="x-title top-space"><span>Festivais</span></div> <section class="g-mx g-m3 top-space"> <div class='g-mx-it'><a href='https://rfm.pt/atualidade/18476/festas-do-mar-foram-melhores-do-que-nunca-e-terminaram-com-chave-de-ouro-os-40-anos-do-oceano-pacifico' target='_self' title='Festas do Mar foram melhores do que nunca e terminaram com chave de ouro: os 40 anos do Oceano Pac&#237;fico'><figure><div class='fig-box'><img alt='Festas do Mar foram melhores do que nunca e terminaram com chave de ouro: os 40 anos do Oceano Pac&#237;fico' title='Festas do Mar foram melhores do que nunca e terminaram com chave de ouro: os 40 anos do Oceano Pac&#237;fico' data-sizes='auto' data-srcset='https://images.rfm.pt/oceano-40-anos21192e1f_destaque_3col.jpg 256w, https://images.rfm.pt/oceano-40-anos21192e1f_destaque_3col.jpg 512w, https://images.rfm.pt/oceano-40-anos21192e1f_destaque_2col.jpg 1028w' width='475' height='267' data-src='https://images.rfm.pt/oceano-40-anos21192e1f_destaque_2col.jpg' class='lazyload' /></div><figcaption>Festas do Mar foram melhores do que nunca e terminaram com chave de ouro: os 40 anos do Oceano Pacífico</figcaption></figure></a></div><div class='g-mx-it'><a href='https://rfm.pt/atualidade/18307/realizamos-um-sonho-de-uma-fa-e-falamos-com-alguns-dos-maiores-djs-os-melhores-momentos-do-rfm-somnii-intermarche' target='_self' title='Realiz&#225;mos um sonho de uma f&#227; e fal&#225;mos com alguns dos maiores Dj&#39;s: os melhores momentos do RFM Somnii Intermarch&#233;'><figure><div class='fig-box'><img alt='Realiz&#225;mos um sonho de uma f&#227; e fal&#225;mos com alguns dos maiores Dj&#39;s: os melhores momentos do RFM Somnii Intermarch&#233;' title='Realiz&#225;mos um sonho de uma f&#227; e fal&#225;mos com alguns dos maiores Dj&#39;s: os melhores momentos do RFM Somnii Intermarch&#233;' data-sizes='auto' data-srcset='https://images.rfm.pt/somnii-publico-28034971c_destaque_3col.jpg 256w, https://images.rfm.pt/somnii-publico-28034971c_destaque_3col.jpg 512w, https://images.rfm.pt/somnii-publico-28034971c_destaque_2col.jpg 1028w' width='475' height='267' data-src='https://images.rfm.pt/somnii-publico-28034971c_destaque_2col.jpg' class='lazyload' /></div><figcaption>Realizámos um sonho de uma fã e falámos com alguns dos maiores Dj's: os melhores momentos do RFM Somnii Intermarché</figcaption></figure></a></div><div class='g-mx-it'><a href='https://rfm.pt/atualidade/18296/armin-van-buuren-kura-e-nicky-romero-fizeram-o-segundo-dia-de-rfm-somnii-intermarche' target='_self' title='Armin Van Buuren, Kura e Nicky Romero fizeram o segundo dia de RFM Somnii Intermarch&#233;!'><figure><div class='fig-box'><img alt='Armin Van Buuren, Kura e Nicky Romero fizeram o segundo dia de RFM Somnii Intermarch&#233;!' title='Armin Van Buuren, Kura e Nicky Romero fizeram o segundo dia de RFM Somnii Intermarch&#233;!' data-sizes='auto' data-srcset='https://images.rfm.pt/somnii-armin-van-buuren2105ed1e_destaque_3col.jpg 256w, https://images.rfm.pt/somnii-armin-van-buuren2105ed1e_destaque_3col.jpg 512w, https://images.rfm.pt/somnii-armin-van-buuren2105ed1e_destaque_2col.jpg 1028w' width='475' height='267' data-src='https://images.rfm.pt/somnii-armin-van-buuren2105ed1e_destaque_2col.jpg' class='lazyload' /></div><figcaption>Armin Van Buuren, Kura e Nicky Romero fizeram o segundo dia de RFM Somnii Intermarché!</figcaption></figure></a></div> </section> <section class="vertical-space align-center"> <button onclick="location.href='https://rfm.pt/festivais';" class="x-btn" role="button" aria-label="+ Festivais" tabindex="0" title="+ Festivais"> <div class="x-btn-bg bgc-white brd-grey"></div> <span class="x-btn-lt txtc-grey large quarter-padding">+ Festivais</span> </button> </section> <!-- FIM Festivais --> <!-- Histórias Incríveis --> <span id="a-historias-incriveis"></span> <div class="x-title top-space"><span>Histórias Incríveis</span></div> <section class="g-mx g-m3 top-space"> <div class='g-mx-it'><a href='https://rfm.pt/atualidade/20159/professora-revoluciona-aula-de-biologia-com-fato-original-e-torna-se-viral' target='_self' title='Professora revoluciona aula de biologia com fato original e torna-se viral'><figure><div class='fig-box'><img alt='Professora revoluciona aula de biologia com fato original e torna-se viral' title='Professora revoluciona aula de biologia com fato original e torna-se viral' data-sizes='auto' data-srcset='https://images.rfm.pt/professora-primaria-destaque6322108f_destaque_3col.jpg 256w, https://images.rfm.pt/professora-primaria-destaque6322108f_destaque_3col.jpg 512w, https://images.rfm.pt/professora-primaria-destaque6322108f_destaque_2col.jpg 1028w' width='475' height='267' data-src='https://images.rfm.pt/professora-primaria-destaque6322108f_destaque_2col.jpg' class='lazyload' /></div><figcaption>Professora revoluciona aula de biologia com fato original e torna-se viral</figcaption></figure></a></div><div class='g-mx-it'><a href='https://rfm.pt/atualidade/20121/ama-tenta-convencer-crianca-de-que-nao-ha-monstros-mas-encontra-um-homem-debaixo-da-cama' target='_self' title='Ama tenta convencer crian&#231;a de que n&#227;o h&#225; monstros, mas encontra um homem debaixo da cama'><figure><div class='fig-box'><img alt='Ama tenta convencer crian&#231;a de que n&#227;o h&#225; monstros, mas encontra um homem debaixo da cama' title='Ama tenta convencer crian&#231;a de que n&#227;o h&#225; monstros, mas encontra um homem debaixo da cama' data-sizes='auto' data-srcset='https://images.rfm.pt/crianca-assustada-a-noite-destaque113835f7_destaque_3col.jpg 256w, https://images.rfm.pt/crianca-assustada-a-noite-destaque113835f7_destaque_3col.jpg 512w, https://images.rfm.pt/crianca-assustada-a-noite-destaque113835f7_destaque_2col.jpg 1028w' width='475' height='267' data-src='https://images.rfm.pt/crianca-assustada-a-noite-destaque113835f7_destaque_2col.jpg' class='lazyload' /></div><figcaption>Ama tenta convencer criança de que não há monstros, mas encontra um homem debaixo da cama</figcaption></figure></a></div><div class='g-mx-it'><a href='https://rfm.pt/atualidade/20118/homem-desafia-cheias-para-salvar-gato-em-apuros' target='_self' title='Homem desafia cheias para salvar gato em apuros'><figure><div class='fig-box'><img alt='Homem desafia cheias para salvar gato em apuros' title='Homem desafia cheias para salvar gato em apuros' data-sizes='auto' data-srcset='https://images.rfm.pt/homem-salva-gato-destaque46445597_destaque_3col.jpg 256w, https://images.rfm.pt/homem-salva-gato-destaque46445597_destaque_3col.jpg 512w, https://images.rfm.pt/homem-salva-gato-destaque46445597_destaque_2col.jpg 1028w' width='475' height='267' data-src='https://images.rfm.pt/homem-salva-gato-destaque46445597_destaque_2col.jpg' class='lazyload' /></div><figcaption>Homem desafia cheias para salvar gato em apuros</figcaption></figure></a></div> </section> <section class="vertical-space align-center"> <button onclick="location.href='https://rfm.pt/historias-incriveis';" class="x-btn" role="button" aria-label="+ Histórias Incríveis" tabindex="0" title="+ Histórias Incríveis"> <div class="x-btn-bg bgc-white brd-grey"></div> <span class="x-btn-lt txtc-grey large quarter-padding">+ Histórias Incríveis</span> </button> </section> <!-- FIM Histórias Incríveis --> <!-- FAMOSOS --> <span id="a-famosos"></span> <div class="x-title top-space"><span>Famosos</span></div> <section class="g-mx g-m3 top-space"> <div class='g-mx-it'><a href='https://rfm.pt/atualidade/20087/cristiano-ronaldo-recebeu-distincao-do-guinness-world-records-em-alvalade' target='_self' title='Cristiano Ronaldo recebeu distin&#231;&#227;o do Guinness World Records em Alvalade'><figure><div class='fig-box'><img alt='Cristiano Ronaldo recebeu distin&#231;&#227;o do Guinness World Records em Alvalade' title='Cristiano Ronaldo recebeu distin&#231;&#227;o do Guinness World Records em Alvalade' data-sizes='auto' data-srcset='https://images.rfm.pt/cristiano-ronaldo-selecao-reuters-destaque1042f934_destaque_3col.jpg 256w, https://images.rfm.pt/cristiano-ronaldo-selecao-reuters-destaque1042f934_destaque_3col.jpg 512w, https://images.rfm.pt/cristiano-ronaldo-selecao-reuters-destaque1042f934_destaque_2col.jpg 1028w' width='475' height='267' data-src='https://images.rfm.pt/cristiano-ronaldo-selecao-reuters-destaque1042f934_destaque_2col.jpg' class='lazyload' /></div><figcaption>Cristiano Ronaldo recebeu distinção do Guinness World Records em Alvalade</figcaption></figure></a></div><div class='g-mx-it'><a href='https://rfm.pt/atualidade/20085/manuel-luis-goucha-oferece-curso-a-jovem-pianista' target='_self' title='Manuel Lu&#237;s Goucha oferece curso a jovem pianista'><figure><div class='fig-box'><img alt='Manuel Lu&#237;s Goucha oferece curso a jovem pianista' title='Manuel Lu&#237;s Goucha oferece curso a jovem pianista' data-sizes='auto' data-srcset='https://images.rfm.pt/goucha-funtastico-destaque12214d9e_destaque_3col.jpg 256w, https://images.rfm.pt/goucha-funtastico-destaque12214d9e_destaque_3col.jpg 512w, https://images.rfm.pt/goucha-funtastico-destaque12214d9e_destaque_2col.jpg 1028w' width='475' height='267' data-src='https://images.rfm.pt/goucha-funtastico-destaque12214d9e_destaque_2col.jpg' class='lazyload' /></div><figcaption>Manuel Luís Goucha oferece curso a jovem pianista</figcaption></figure></a></div><div class='g-mx-it'><a href='https://rfm.pt/atualidade/20081/jk-rowling-escreve-indireta-para-os-atores-de-harry-potter-e-torna-se-viral' target='_self' title='J.K. Rowling escreve indireta para os atores de Harry Potter e torna-se viral'><figure><div class='fig-box'><img alt='J.K. Rowling escreve indireta para os atores de Harry Potter e torna-se viral' title='J.K. Rowling escreve indireta para os atores de Harry Potter e torna-se viral' data-sizes='auto' data-srcset='https://images.rfm.pt/j-k-rowling-reuters-destaque20918bcc_destaque_3col.jpg 256w, https://images.rfm.pt/j-k-rowling-reuters-destaque20918bcc_destaque_3col.jpg 512w, https://images.rfm.pt/j-k-rowling-reuters-destaque20918bcc_destaque_2col.jpg 1028w' width='475' height='267' data-src='https://images.rfm.pt/j-k-rowling-reuters-destaque20918bcc_destaque_2col.jpg' class='lazyload' /></div><figcaption>J.K. Rowling escreve indireta para os atores de Harry Potter e torna-se viral</figcaption></figure></a></div> </section> <section class="vertical-space align-center"> <button onclick="location.href='https://rfm.pt/famosos';" class="x-btn" role="button" aria-label="+ Famosos" tabindex="0" title="+ Famosos"> <div class="x-btn-bg bgc-white brd-grey"></div> <span class="x-btn-lt txtc-grey large quarter-padding">+ Famosos</span> </button> </section> <!-- FIM FAMOSOS --> <!-- Séries e Filmes --> <span id="a-series-e-filmes"></span> <div class="x-title top-space"><span>Séries e Filmes</span></div> <section class="g-mx g-m3 top-space"> <div class='g-mx-it'><a href='https://rfm.pt/atualidade/20051/adolescencia-a-serie-que-esta-a-dar-que-falar-a-historia-de-um-jovem-acusado-de-homicidio' target='_self' title='&quot;Adolesc&#234;ncia&quot;, a s&#233;rie que est&#225; a dar que falar: a hist&#243;ria de um jovem acusado de homic&#237;dio'><figure><div class='fig-box'><img alt='&quot;Adolesc&#234;ncia&quot;, a s&#233;rie que est&#225; a dar que falar: a hist&#243;ria de um jovem acusado de homic&#237;dio' title='&quot;Adolesc&#234;ncia&quot;, a s&#233;rie que est&#225; a dar que falar: a hist&#243;ria de um jovem acusado de homic&#237;dio' data-sizes='auto' data-srcset='https://images.rfm.pt/adolescencia-destaque1301c4bf_destaque_3col.jpg 256w, https://images.rfm.pt/adolescencia-destaque1301c4bf_destaque_3col.jpg 512w, https://images.rfm.pt/adolescencia-destaque1301c4bf_destaque_2col.jpg 1028w' width='475' height='267' data-src='https://images.rfm.pt/adolescencia-destaque1301c4bf_destaque_2col.jpg' class='lazyload' /></div><figcaption>"Adolescência", a série que está a dar que falar: a história de um jovem acusado de homicídio</figcaption></figure></a></div><div class='g-mx-it'><a href='https://rfm.pt/atualidade/19930/surpresa-ha-uma-atriz-conhecida-no-elenco-de-shrek-5' target='_self' title='Surpresa! H&#225; uma atriz conhecida no elenco de &quot;Shrek 5&quot;'><figure><div class='fig-box'><img alt='Surpresa! H&#225; uma atriz conhecida no elenco de &quot;Shrek 5&quot;' title='Surpresa! H&#225; uma atriz conhecida no elenco de &quot;Shrek 5&quot;' data-sizes='auto' data-srcset='https://images.rfm.pt/shrek-5-destaque19445a53_destaque_3col.jpg 256w, https://images.rfm.pt/shrek-5-destaque19445a53_destaque_3col.jpg 512w, https://images.rfm.pt/shrek-5-destaque19445a53_destaque_2col.jpg 1028w' width='475' height='267' data-src='https://images.rfm.pt/shrek-5-destaque19445a53_destaque_2col.jpg' class='lazyload' /></div><figcaption>Surpresa! Há uma atriz conhecida no elenco de "Shrek 5"</figcaption></figure></a></div><div class='g-mx-it'><a href='https://rfm.pt/atualidade/19911/ja-viste-a-nova-serie-de-robert-de-niro-numa-das-cenas-surge-um-quadro-portugues' target='_self' title='J&#225; viste a nova s&#233;rie de Robert De Niro? Numa das cenas surge um quadro portugu&#234;s'><figure><div class='fig-box'><img alt='J&#225; viste a nova s&#233;rie de Robert De Niro? Numa das cenas surge um quadro portugu&#234;s' title='J&#225; viste a nova s&#233;rie de Robert De Niro? Numa das cenas surge um quadro portugu&#234;s' data-sizes='auto' data-srcset='https://images.rfm.pt/robert-de-niro-destaque17458c82_destaque_3col.jpg 256w, https://images.rfm.pt/robert-de-niro-destaque17458c82_destaque_3col.jpg 512w, https://images.rfm.pt/robert-de-niro-destaque17458c82_destaque_2col.jpg 1028w' width='475' height='267' data-src='https://images.rfm.pt/robert-de-niro-destaque17458c82_destaque_2col.jpg' class='lazyload' /></div><figcaption>Já viste a nova série de Robert De Niro? Numa das cenas surge um quadro português</figcaption></figure></a></div> </section> <section class="vertical-space align-center"> <button onclick="location.href='https://rfm.pt/series-e-filmes';" class="x-btn" role="button" aria-label="+ Séries e Filmes" tabindex="0" title="+ Séries e Filmes"> <div class="x-btn-bg bgc-white brd-grey"></div> <span class="x-btn-lt txtc-grey large quarter-padding">+ Séries e Filmes</span> </button> </section> <!-- FIM Séries e Filmes --> <!-- Em Portugal --> <span id="a-em-portugal"></span> <div class="x-title top-space"><span>Em Portugal</span></div> <section class="g-mx g-m3 top-space"> <div class='g-mx-it'><a href='https://rfm.pt/atualidade/20165/condutor-tenta-estacionar-veiculo-e-acaba-por-entrar-nas-escadas-do-metro-em-lisboa' target='_self' title='Condutor tenta estacionar ve&#237;culo e acaba por entrar nas escadas do metro, em Lisboa'><figure><div class='fig-box'><img alt='Condutor tenta estacionar ve&#237;culo e acaba por entrar nas escadas do metro, em Lisboa' title='Condutor tenta estacionar ve&#237;culo e acaba por entrar nas escadas do metro, em Lisboa' data-sizes='auto' data-srcset='https://images.rfm.pt/metro-lisboa-destaque6981d08d_destaque_3col.jpg 256w, https://images.rfm.pt/metro-lisboa-destaque6981d08d_destaque_3col.jpg 512w, https://images.rfm.pt/metro-lisboa-destaque6981d08d_destaque_2col.jpg 1028w' width='475' height='267' data-src='https://images.rfm.pt/metro-lisboa-destaque6981d08d_destaque_2col.jpg' class='lazyload' /></div><figcaption>Condutor tenta estacionar veículo e acaba por entrar nas escadas do metro, em Lisboa</figcaption></figure></a></div><div class='g-mx-it'><a href='https://rfm.pt/atualidade/20164/surpresa-o-destino-de-praia-mais-desejado-da-europa-em-2025-fica-em-portugal' target='_self' title='Surpresa! O destino de praia mais desejado da Europa em 2025 fica em Portugal'><figure><div class='fig-box'><img alt='Surpresa! O destino de praia mais desejado da Europa em 2025 fica em Portugal' title='Surpresa! O destino de praia mais desejado da Europa em 2025 fica em Portugal' data-sizes='auto' data-srcset='https://images.rfm.pt/praia-do-seixal-na-madeira-destaque125123ca_destaque_3col.jpg 256w, https://images.rfm.pt/praia-do-seixal-na-madeira-destaque125123ca_destaque_3col.jpg 512w, https://images.rfm.pt/praia-do-seixal-na-madeira-destaque125123ca_destaque_2col.jpg 1028w' width='475' height='267' data-src='https://images.rfm.pt/praia-do-seixal-na-madeira-destaque125123ca_destaque_2col.jpg' class='lazyload' /></div><figcaption>Surpresa! O destino de praia mais desejado da Europa em 2025 fica em Portugal</figcaption></figure></a></div><div class='g-mx-it'><a href='https://rfm.pt/atualidade/20161/irs-2025-como-podes-aumentar-o-teu-reembolso-ou-pagar-menos-ao-estado' target='_self' title='IRS 2025: Como podes aumentar o teu reembolso ou pagar menos ao Estado?'><figure><div class='fig-box'><img alt='IRS 2025: Como podes aumentar o teu reembolso ou pagar menos ao Estado?' title='IRS 2025: Como podes aumentar o teu reembolso ou pagar menos ao Estado?' data-sizes='auto' data-srcset='https://images.rfm.pt/preencher-irs-destaque13205317_destaque_3col.jpg 256w, https://images.rfm.pt/preencher-irs-destaque13205317_destaque_3col.jpg 512w, https://images.rfm.pt/preencher-irs-destaque13205317_destaque_2col.jpg 1028w' width='475' height='267' data-src='https://images.rfm.pt/preencher-irs-destaque13205317_destaque_2col.jpg' class='lazyload' /></div><figcaption>IRS 2025: Como podes aumentar o teu reembolso ou pagar menos ao Estado?</figcaption></figure></a></div> </section> <section class="vertical-space align-center"> <button onclick="location.href='https://rfm.pt/em-portugal';" class="x-btn" role="button" aria-label="+ Em Portugal" tabindex="0" title="+ Em Portugal"> <div class="x-btn-bg bgc-white brd-grey"></div> <span class="x-btn-lt txtc-grey large quarter-padding">+ Em Portugal</span> </button> </section> <!-- FIM Em Portugal --> <!-- PASSATEMPOS --> <span id="a-passatempos"></span> <div class="x-title top-space"><span>Passatempos</span></div> <section class="g-mx g-m3 top-space"> </section> <section class="vertical-space align-center"> <button onclick="location.href='https://rfm.pt/passatempos';" class="x-btn" role="button" aria-label="+ Passatempos" tabindex="0" title="+ Passatempos"> <div class="x-btn-bg bgc-white brd-grey"></div> <span class="x-btn-lt txtc-grey large quarter-padding">+ Passatempos</span> </button> </section> <!-- FIM PASSATEMPOS --> <div id="ContentPlaceHolderRFM_uc_newsletter_newsl" class="vertical-space"> <div id="formsubscrever" class="nl-box"> <div class="sub-txt">Subscreve a newsletter RFM</div> <div class="sub-email"> <input id="email" type="text" placeholder="O teu email" /> </div> <div class="sub-send" style="display: flex; justify-content: flex-start; align-items: center"> <button aria-label="Enviar" class="x-btn" role="button" tabindex="0" type="submit" id="form-submit" name="submit" value="Submit" title="Enviar"> <div class="x-btn-bg bgc-light-red brd-white"></div> <span class="x-btn-lt txtc-white large quarter-padding">Enviar</span> </button> </div> </div> <div id="msg" class="nl-box" style="display: none"> </div> <div class="nl-info">Ao inserires o teu email concordas com os nossos <a href="https://rfm.pt/termos-de-utilizacao" title="Termos de Utilização" target="_blank">Termos de Utilização</a> e <a href="https://rfm.pt/politica-de-privacidade" title="Política de Privacidade" target="_blank">Política de Privacidade</a>.</div> <link href="https://rfmsite2023-images.azureedge.net/css/sendnews.min.css" rel="stylesheet" /> <script src="https://rfmsite2023-images.azureedge.net/js/sendnews.min.js"></script> </div> <!-- RADIOS ONLINE --> <link rel="preload" href="https://rfmsite2023-images.azureedge.net/js/slick.min.js?v=2.8" as="script" /> <link rel="preload" href="https://rfmsite2023-images.azureedge.net/js/ticker.min.js?v=2.8" as="script" /> <link rel="stylesheet" href="https://rfmsite2023-images.azureedge.net/css/rotator-webrads.min.css?v=2.9"> <section class="wr-box2 radios-hz-cx half-top-space"> <div class="wr-title quarter-vertical-space"> <div>Rádios online</div> <div class="quarter-left-space"> <hr /> </div> </div> <div class="webrads-rot"> <div class="loading-ln-rads"> <div class="loader"></div> </div> <div class="slick-not-init"> <div class="wr-active-rad"> <a href="https://rfm.pt/ouvir-emissao-rfm" target="_blank" title="Ouvir a Rádio Online RFM"> <figure class="wr-img"> <img title="Ouvir a Rádio Online RFM" alt="Ouvir a Rádio Online RFM" data-sizes="auto" data-srcset="https://rfmsite2023-images.azureedge.net/images/webrads/rfm-online_100x100.jpg" width="100" height="100" data-src="https://rfmsite2023-images.azureedge.net/images/webrads/rfm-online_100x100.jpg" class="lazyload" /> <figcaption> <div class="marquee"> <div>No ar com <span class="marqueeBoxAnim">RFM</span></div> </div> </figcaption> </figure> </a> </div> <div class="wr-rad-list"> <ul class="n-list wr-rot"> <li id="ContentPlaceHolderRFM_uc_radios_online_hz_li_rfm_jazzy"> <a href="https://rfm.pt/ouvir-emissao-rfm-jazzy" target="_blank" title="Ouvir a Rádio Online RFM Jazzy"> <figure class="wr-img"> <img title="Ouvir a Rádio Online RFM Jazzy" alt="Ouvir a Rádio Online RFM Jazzy" data-sizes="auto" data-srcset="https://rfmsite2023-images.azureedge.net/images/webrads/rfm-Jazzy-radio-online_100x100.jpg" width="100" height="100" data-src="https://rfmsite2023-images.azureedge.net/images/webrads/rfm-Jazzy-radio-online_100x100.jpg" class="lazyload" /> <figcaption>RFM Jazzy</figcaption> </figure> </a> </li> <li id="ContentPlaceHolderRFM_uc_radios_online_hz_li_rfm_novas"> <a href="https://rfm.pt/ouvir-emissao-rfm-novas" target="_blank" title="Ouvir a Rádio Online RFM Novas"> <figure class="wr-img"> <img title="Ouvir a Rádio Online RFM Novas" alt="Ouvir a Rádio Online RFM Novas" data-sizes="auto" data-srcset="https://rfmsite2023-images.azureedge.net/images/webrads/rfm-Novas-radio-online_100x100.jpg" width="100" height="100" data-src="https://rfmsite2023-images.azureedge.net/images/webrads/rfm-Novas-radio-online_100x100.jpg" class="lazyload" /> <figcaption>RFM Novas</figcaption> </figure> </a> </li> <li id="ContentPlaceHolderRFM_uc_radios_online_hz_li_rfm_dance_it"> <a href="https://rfm.pt/ouvir-emissao-rfm-dance-it" target="_blank" title="Ouvir a Rádio Online RFM Dance It"> <figure class="wr-img"> <img title="Ouvir a Rádio Online RFM Dance It" alt="Ouvir a Rádio Online RFM Dance It" data-sizes="auto" data-srcset="https://rfmsite2023-images.azureedge.net/images/webrads/rfm-Dance-it-radio-online_100x100.jpg" width="100" height="100" data-src="https://rfmsite2023-images.azureedge.net/images/webrads/rfm-Dance-it-radio-online_100x100.jpg" class="lazyload" /> <figcaption>RFM Dance It</figcaption> </figure> </a> </li> <li id="ContentPlaceHolderRFM_uc_radios_online_hz_li_rfm_latinas"> <a href="https://rfm.pt/ouvir-emissao-rfm-latinas" target="_blank" title="Ouvir a Rádio Online RFM Latinas"> <figure class="wr-img"> <img title="Ouvir a Rádio Online RFM Latinas" alt="Ouvir a Rádio Online RFM Latinas" data-sizes="auto" data-srcset="https://rfmsite2023-images.azureedge.net/images/webrads/rfm-Latinas-radio-online_100x100.jpg" width="100" height="100" data-src="https://rfmsite2023-images.azureedge.net/images/webrads/rfm-Latinas-radio-online_100x100.jpg" class="lazyload" /> <figcaption>RFM Latinas</figcaption> </figure> </a> </li> <li id="ContentPlaceHolderRFM_uc_radios_online_hz_li_rfm_oceano"> <a href="https://rfm.pt/ouvir-emissao-rfm-oceano-pacifico" target="_blank" title="Ouvir a Rádio Online RFM Oceano Pacífico"> <figure class="wr-img"> <img title="Ouvir a Rádio Online RFM Oceano Pacífico" alt="Ouvir a Rádio Online RFM Oceano Pacífico" data-sizes="auto" data-srcset="https://rfmsite2023-images.azureedge.net/images/webrads/rfm-Oceano-Pacifico-radio-online_100x100.jpg" width="100" height="100" data-src="https://rfmsite2023-images.azureedge.net/images/webrads/rfm-Oceano-Pacifico-radio-online_100x100.jpg" class="lazyload" /> <figcaption>RFM Oceano Pacífico</figcaption> </figure> </a> </li> <li id="ContentPlaceHolderRFM_uc_radios_online_hz_li_80s"> <a href="https://rfm.pt/ouvir-emissao-80s-rfm" target="_blank" title="Ouvir a Rádio Online 80's RFM"> <figure class="wr-img"> <img title="Ouvir a Rádio Online 80's RFM" alt="Ouvir a Rádio Online 80's RFM" data-sizes="auto" data-srcset="https://rfmsite2023-images.azureedge.net/images/webrads/rfm-80s-radio-online_100x100.jpg" width="100" height="100" data-src="https://rfmsite2023-images.azureedge.net/images/webrads/rfm-80s-radio-online_100x100.jpg" class="lazyload" /> <figcaption>80's RFM</figcaption> </figure> </a> </li> <li id="ContentPlaceHolderRFM_uc_radios_online_hz_li_90s"> <a href="https://rfm.pt/ouvir-emissao-90s-rfm" target="_blank" title="Ouvir a Rádio Online 90's RFM"> <figure class="wr-img"> <img title="Ouvir a Rádio Online 90's RFM" alt="Ouvir a Rádio Online 90's RFM" data-sizes="auto" data-srcset="https://rfmsite2023-images.azureedge.net/images/webrads/rfm-90s-radio-online_100x100.jpg" width="100" height="100" data-src="https://rfmsite2023-images.azureedge.net/images/webrads/rfm-90s-radio-online_100x100.jpg" class="lazyload" /> <figcaption>90's RFM</figcaption> </figure> </a> </li> <li id="ContentPlaceHolderRFM_uc_radios_online_hz_li_00s"> <a href="https://rfm.pt/ouvir-emissao-rfm-00s" target="_blank" title="Ouvir a Rádio Online 00's RFM"> <figure class="wr-img"> <img title="Ouvir a Rádio Online 00's RFM" alt="Ouvir a Rádio Online 00's RFM" data-sizes="auto" data-srcset="https://rfmsite2023-images.azureedge.net/images/webrads/rfm-00s-radio-online_100x100.jpg" width="100" height="100" data-src="https://rfmsite2023-images.azureedge.net/images/webrads/rfm-00s-radio-online_100x100.jpg" class="lazyload" /> <figcaption>00's RFM</figcaption> </figure> </a> </li> <li id="ContentPlaceHolderRFM_uc_radios_online_hz_li_rocks"> <a href="https://rfm.pt/ouvir-emissao-rfm-rocks" target="_blank" title="Ouvir a Rádio Online RFM Rocks"> <figure class="wr-img"> <img title="Ouvir a Rádio Online RFM Rocks" alt="Ouvir a Rádio Online RFM Rocks" data-sizes="auto" data-srcset="https://rfmsite2023-images.azureedge.net/images/webrads/rfm-Rocks-radio-online_100x100.jpg" width="100" height="100" data-src="https://rfmsite2023-images.azureedge.net/images/webrads/rfm-Rocks-radio-online_100x100.jpg" class="lazyload" /> <figcaption>RFM Rocks</figcaption> </figure> </a> </li> <li id="ContentPlaceHolderRFM_uc_radios_online_hz_li_toca_portugal"> <a href="https://rfm.pt/ouvir-emissao-rfm-toca-portugal" target="_blank" title="Ouvir a Rádio Online RFM Toca Portugal"> <figure class="wr-img"> <img title="Ouvir a Rádio Online RFM Toca Portugal" alt="Ouvir a Rádio Online RFM Toca Portugal" data-sizes="auto" data-srcset="https://rfmsite2023-images.azureedge.net/images/webrads/rfm-Toca-Portugal-radio-online_100x100.jpg" width="100" height="100" data-src="https://rfmsite2023-images.azureedge.net/images/webrads/rfm-Toca-Portugal-radio-online_100x100.jpg" class="lazyload" /> <figcaption>RFM Toca Portugal</figcaption> </figure> </a> </li> </ul> </div> </div> </div> </section> <script type="text/javascript" src="https://rfmsite2023-images.azureedge.net/js/slick.min.js?v=2.8"></script> <script type="text/javascript" src="https://rfmsite2023-images.azureedge.net/js/ticker.min.js?v=2.8"></script> <script type="text/javascript"> //Radios Ticker $(document).ready(function () { $(".loading-ln-rads").show(); //$('.wr-rot').on('init', function () { // $(this).removeClass('slick-not-init') //}) /* Simulate defer loading slick */ setTimeout(function () { $(".loading-ln-rads").hide(); $(".slick-not-init").show(); $('.wr-rot').slick({ dots: false, arrows: true, infinite: true, speed: 300, slidesToShow: 10, slidesToScroll: 1, autoplay: true, autoplaySpeed: 5000, prevArrow: "<img alt='Para a esquerda' class='a-left control-c prev slick-prev' src='https://rfmsite2023-images.azureedge.net/images/a-left.png'>", nextArrow: "<img alt='Para a direita' class='a-right control-c next slick-next' src='https://rfmsite2023-images.azureedge.net/images/a-right.png'>", responsive: [ { breakpoint: 2199.98, settings: { slidesToShow: 10, slidesToScroll: 1 } }, { breakpoint: 1899.98, settings: { slidesToShow: 9, slidesToScroll: 1 } }, { breakpoint: 1699.98, settings: { slidesToShow: 8, slidesToScroll: 1 } }, { breakpoint: 1499.98, settings: { slidesToShow: 7, slidesToScroll: 1 } }, { breakpoint: 1399.98, settings: { slidesToShow: 6, slidesToScroll: 1 } }, { breakpoint: 1299.98, settings: { slidesToShow: 5, slidesToScroll: 1 } }, { breakpoint: 1199.98, settings: { slidesToShow: 4, slidesToScroll: 1 } }, { breakpoint: 1099.98, settings: { slidesToShow: 3, slidesToScroll: 1 } }, { breakpoint: 992.98, settings: { slidesToShow: 5, slidesToScroll: 1 } }, { breakpoint: 767.98, settings: { slidesToShow: 4, slidesToScroll: 1, infinite: true } }, { breakpoint: 637.98, settings: { slidesToShow: 3, slidesToScroll: 1, infinite: true } }, { breakpoint: 458.98, settings: { slidesToShow: 2, slidesToScroll: 1, infinite: true } }, { breakpoint: 388.98, settings: { slidesToShow: 1, slidesToScroll: 1, infinite: true } } ] }); }, 500) }); </script> </section> <aside> <!-- PUB --> <div class="pub-info-hp hide-all quarter-top-space">PUB</div> <div id="aside-pub" class="bottom-space"><ad-placement format='halfPage' adunit='RFM/rfm_ros_mpu'></ad-placement></div> <!-- PUB HALFPAGE MOVEL--> <div class="pub-box half-top-space"> <ad-placement id='scrollBanner' format='halfPage' adunit='RFM/rfm_ros_stickyBanner' style='min-height: 250px;'></ad-placement> </div> </aside> </main> <script type="text/javascript" src="https://rfmsite2023-images.azureedge.net/js/section.min.js?v=2.8"></script> <!-- FOOTER --> <footer class="x-grad"> <div id="footer" class="x-flex base-w align-center half-vertical-padding"> <div class="all-20"><a href="https://gruporenascencamultimedia.com/" rel="noreferrer" target="_blank" title="Grupo Renascença Multimédia"> <img data-src="https://rfmsite2023-images.azureedge.net/img/footer/GRM.svg" alt="Grupo Renascença Multimédia" width="100" height="90" class="lazyload"></a></div> <div class="all-15"><a href="https://rr.pt/" rel="noreferrer" target="_blank" title="Renascença"> <img data-src="https://rfmsite2023-images.azureedge.net/img/footer/RENASCENCA.svg" alt="Renascença" width="75" height="75" class="lazyload"></a></div> <div class="all-15"><a href="https://megahits.fm/" rel="noreferrer" target="_blank" title="Mega Hits"> <img data-src="https://rfmsite2023-images.azureedge.net/img/footer/MEGA.svg" alt="Mega Hits" width="75" height="75" class="lazyload"></a></div> <div class="all-15"><a href="https://www.geniusymeios.pt/" rel="noreferrer" target="_blank" title="Genius y Meios"> <img data-src="https://rfmsite2023-images.azureedge.net/img/footer/GENIUS.svg" alt="Genius y Meios" width="75" height="75" class="lazyload"></a></div> <div class="all-15"><a href="https://www.intervoz.pt/" rel="noreferrer" target="_blank" title="Intervoz"> <img data-src="https://rfmsite2023-images.azureedge.net/img/footer/INTERVOZ.svg" alt="Intervoz" width="75" height="75" class="lazyload"></a></div> <div class="all-15"><a href="https://popcasts.pt/" rel="noreferrer" target="_blank" title="POPCASTS"> <img data-src="https://rfmsite2023-images.azureedge.net/img/footer/POPCASTS.svg" alt="POPCASTS" width="75" height="75" class="lazyload"></a></div> </div> <div class="go2-center small txtc-white double-bottom-padding"> <div><a href="https://rfm.pt/politica-de-utilizacao-digital" class="lnk-white" title="Politica de utilização digital">Politica de utilização digital</a></div> <div>© <span id="YearGRM1"></span> RFM. Todos os direitos reservados.</div> <div class="txtc-light-grey">Quinta do Bom Pastor, Estrada da Buraca 8-12, 1549-025 Lisboa T.213 239 200</div> <div><a href="mailto:mail@rfm.pt" class="lnk-white">mail@rfm.pt</a> | <a href="https://rfm.pt/transparencia" class="lnk-white" title="Transparência">Transparência</a> | <a href="https://rmultimedia.workky.com/portal-denuncias" title="Canal de Denúncias" rel="noopener" class="lnk-white no-wrap" target="_blank">Canal de Denúncias</a> | <a href="https://rfm.pt/publicidade" class="lnk-white" title="Publicidade">Publicidade</a> | <a href="https://gruporenascencamultimedia.com/carreiras/" target="_blank" class="lnk-white" title="Carreiras">Carreiras</a></div> </div> <script> const d = new Date(); let yearGRM1 = d.getFullYear(); document.getElementById("YearGRM1").innerHTML = yearGRM1; </script> </footer> </div> <!-- MAIN GRID ENDS --> <!-- PUB RICHMEDIA--> <div style='height:1px; width:1px;'><ad-placement format='outOfPage' adunit='RFM/rfm_ros_Richmedia'></ad-placement></div> <script type="text/javascript" src="https://rfmsite2023-images.azureedge.net/js/scripts.min.js?v=2.8"></script> <script type="text/javascript" src="https://rfmsite2023-images.azureedge.net/js/lazysizes.min.js?v=2.8"></script> <!--Nonio RFM --> <script type="text/javascript" lang="javascript" src="https://cdns.gigya.com/js/gigya.js?apikey=3_GrwD1bNnX5VTTPqb_gKxnk6PZNZSdamJuaSJLnZZHpveP8D5lF8lk6YYoRaXAyox"> { lang: "pt", 'enableSSOToken': true } </script> <!-- PUB BUNDLE--> <script> window.TagBundle.init(tagBundleConfig, prebidConf) </script> <!-- PUB BUNDLE--> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10