;(function() { window.createMeasureObserver = (measureName) => { var markPrefix = `_uol-measure-${measureName}-${new Date().getTime()}`; performance.mark(`${markPrefix}-start`); return { end: function() { performance.mark(`${markPrefix}-end`); performance.measure(`uol-measure-${measureName}`, `${markPrefix}-start`, `${markPrefix}-end`); performance.clearMarks(`${markPrefix}-start`); performance.clearMarks(`${markPrefix}-end`); } } }; /** * Gerenciador de eventos */ window.gevent = { stack: [], RUN_ONCE: true, on: function(name, callback, once) { this.stack.push([name, callback, !!once]); }, emit: function(name, args) { for (var i = this.stack.length, item; i--;) { item = this.stack[i]; if (item[0] === name) { item[1](args); if (item[2]) { this.stack.splice(i, 1); } } } } }; var runningSearch = false; var hadAnEvent = true; var elementsToWatch = window.elementsToWatch = new Map(); var innerHeight = window.innerHeight; // timestamp da última rodada do requestAnimationFrame // É usado para limitar a procura por elementos visíveis. var lastAnimationTS = 0; // verifica se elemento está no viewport do usuário var isElementInViewport = function(el) { var rect = el.getBoundingClientRect(); var clientHeight = window.innerHeight || document.documentElement.clientHeight; // renderizando antes, evitando troca de conteúdo visível no chartbeat-related-content if(el.className.includes('related-content-front')) return true; // garante que usa ao mínimo 280px de margem para fazer o lazyload var margin = clientHeight + Math.max(280, clientHeight * 0.2); // se a base do componente está acima da altura da tela do usuário, está oculto if(rect.bottom < 0 && rect.bottom > margin * -1) { return false; } // se o topo do elemento está abaixo da altura da tela do usuário, está oculto if(rect.top > margin) { return false; } // se a posição do topo é negativa, verifica se a altura dele ainda // compensa o que já foi scrollado if(rect.top < 0 && rect.height + rect.top < 0) { return false; } return true; }; var asynxNextFreeTime = () => { return new Promise((resolve) => { if(window.requestIdleCallback) { window.requestIdleCallback(resolve, { timeout: 5000, }); } else { window.requestAnimationFrame(resolve); } }); }; var asyncValidateIfElIsInViewPort = function(promise, el) { return promise.then(() => { if(el) { if(isElementInViewport(el) == true) { const cb = elementsToWatch.get(el); // remove da lista para não ser disparado novamente elementsToWatch.delete(el); cb(); } } }).then(asynxNextFreeTime); }; // inicia o fluxo de procura de elementos procurados var look = function() { if(window.requestIdleCallback) { window.requestIdleCallback(findByVisibleElements, { timeout: 5000, }); } else { window.requestAnimationFrame(findByVisibleElements); } }; var findByVisibleElements = function(ts) { var elapsedSinceLast = ts - lastAnimationTS; // se não teve nenhum evento que possa alterar a página if(hadAnEvent == false) { return look(); } if(elementsToWatch.size == 0) { return look(); } if(runningSearch == true) { return look(); } // procura por elementos visíveis apenas 5x/seg if(elapsedSinceLast < 1000/5) { return look(); } // atualiza o último ts lastAnimationTS = ts; // reseta status de scroll para não entrar novamente aqui hadAnEvent = false; // indica que está rodando a procura por elementos no viewport runningSearch = true; const done = Array.from(elementsToWatch.keys()).reduce(asyncValidateIfElIsInViewPort, Promise.resolve()); // obtém todos os elementos que podem ter view contabilizados //elementsToWatch.forEach(function(cb, el) { // if(isElementInViewport(el) == true) { // // remove da lista para não ser disparado novamente // elementsToWatch.delete(el); // cb(el); // } //}); done.then(function() { runningSearch = false; }); // reinicia o fluxo de procura look(); }; /** * Quando o elemento `el` entrar no viewport (-20%), cb será disparado. */ window.lazyload = function(el, cb) { if(el.nodeType != Node.ELEMENT_NODE) { throw new Error("element parameter should be a Element Node"); } if(typeof cb !== 'function') { throw new Error("callback parameter should be a Function"); } elementsToWatch.set(el, cb); } var setEvent = function() { hadAnEvent = true; }; window.addEventListener('scroll', setEvent, { capture: true, ive: true }); window.addEventListener('click', setEvent, { ive: true }); window.addEventListener('resize', setEvent, { ive: true }); window.addEventListener('load', setEvent, { once: true, ive: true }); window.addEventListener('DOMContentLoaded', setEvent, { once: true, ive: true }); window.gevent.on('allJSLoadedAndCreated', setEvent, window.gevent.RUN_ONCE); // inicia a validação look(); })();
  • AssineUOL
Topo

Quem é tia Marli, mulher que roubou a cena no show de Anitta no Garota Vip

Anitta recebeu uma fã animadíssima no palco do Garota Vip que ficou conhecida como tia Marli - Manuela Scarpa/Brazil News
Anitta recebeu uma fã animadíssima no palco do Garota Vip que ficou conhecida como tia Marli Imagem: Manuela Scarpa/Brazil News

De Splash, em São Paulo

21/08/2022 17h33

"Criticar Marli é fácil, difícil é ser Marli", tuitou Anitta nesta madrugada. Para quem não entendeu nada, um meme surgiu durante o show da cantora no Garota Vip, no Rio de Janeiro. Marli Gomes da Silva, de 55 anos, subiu no palco, rebolou com a Poderosa, declarou seu amor a Wesley Safadão, dono do festival, e deixou a internet enlouquecida.

Marli é natural de Montanhas, no Rio Grande do Norte, mas mora no Rio de Janeiro há 21 anos. Seu sonho de ver ao vivo Wesley Safadão foi realizado pela nora, Débora Magalhães, que comprou ingressos e levou a sogra para a festa comandada pelo cantor cearense.

Mas foi de Anitta que ela chamou a atenção. Na boca do palco e pedindo para subir, Marli convenceu Anitta e deu show de espontaneidade em cima do palco. A cantora ficou animadíssima com a convidada e acionou a amiga GKay, que já garantiu o convite de tia Marlí para a Farofa, em dezembro.

"Ela é assim com todo mundo. Brinca, zoa, se diverte. Ela tem muita energia. Ela não bebe e mesmo assim vira a noite dançando, ela gosta", contou Débora em entrevista a Splash. A nora contou que Marli chegou em casa às 7h30 da manhã e só foi dormir na tarde deste domingo, empolgada com a fama repentina.

"Todos os eventos que a gente vai que tem atração de palco ela sobe. Essa é a Marli", define a nora. A secretária de 55 anos já deu entrevistas, gravou vídeos, ganhou uma conta no TikTok e em breve deve aparecer como convidade de um programa na Globo.

Garota VIP: show de Anitta tem beijo na boca, fã no palco e GKay disfarçada

Depois de ter seu @ divulgado, Marli também está ganhando milhares de novos seguidores no Instagram, onde ela costumava compartilhar fotos e vídeos da sua rotina, inclusive com seus netinhos. Eram 229 seguidores, apenas amigos e família, mas depois de ter um vídeo seu compartilhado por Anitta ela bateu 10 mil em poucas horas.

Marli mora na zona norte do Rio de Janeiro com o marido e três netos. Durante a semana ela trabalha como secretária em um escritório de advocacia. Nos fins de semana, ela curte a vida em festas e eventos, sempre com muita energia.

Sua companhia na noite de ontem foi a mãe da nora, de 71 anos. Ambas preferiram ficar em uma área mais próxima do palco enquanto os filhos curtiam com amigos no open bar. Eles só viram Marli em cima do palco pelo telão.

"Nós estávamos na tenda, Anitta dançando, meu esposo tinha ido ao banheiro. Aí minha amiga só apontou para o telão e falou tua sogra. Congelei, não consegui nem gravar. Não acreditava que ela tinha conseguido e que deu aquele show", contou Débora aos risos.

Agora Marli está conversando seus seguidores e contando sua versão de como foi o encontro com a Anitta nas redes sociais. "Ontem tava sendo difícil ser Marli, mas hoje está fácil demais ser Marli. Imagina só, eu subi no palco, deitada na bunda de Anitta..."