;(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

Palmeiras já se mexe quanto ao pedido de detenção de Felipe Melo no Uruguai

Felipe Melo se envolve em confusão no Uruguai - REUTERS/Andres Stapff
Felipe Melo se envolve em confusão no Uruguai Imagem: REUTERS/Andres Stapff

Diego Iwata Lima

De São Paulo

05/10/2021 13h45Atualizada em 05/10/2021 19h15

O Palmeiras está tomando as providências cabíveis quanto ao pedido de detenção de seu capitão, Felipe Melo, expedido pela Fiscalía de Montevidéu —órgão análogo ao que denomina-se no Brasil como Ministério Público. O pedido foi feito em 2017, depois da emboscada sofrida pelo time no campo do Estádio Campeón del Siglo, no Uruguai, ao fim de Penãrol 2 x 3 Palmeiras, pela fase de grupos da Libertadores.

Vale deixar claro que o pedido expedido é de detenção para prestação de depoimentos, e não de prisão. Nahitan Nandez ,então jogador do Peñarol também ou por esse processo na época da partida. Mas como Felipe embarcou para o Brasil, o pedido para sua detenção não pôde ser cumprido.

Em tese, Felipe seria detido assim que chegasse ao Uruguai. E é justamente nessa questão que o departamento jurídico do Palmeiras está trabalhando, segundo apurou o UOL.

Briga generalizada e portões trancados

O tumulto se iniciou assim que o juiz decretou a vitória de virada do Palmeiras. Felipe está apontando ao céu, no que parece ser uma oração, quando jogadores do Peñarol começam a cercá-lo. Inevitavelmente, o tumulto se torna generalizado em segundos.

Felipe Melo acaba acertando um soco no meia Matías Mier, que hoje é jogador do Junior (COL). Ao tentar deixar o gramado, membros da delegação do Palmeiras encontraram os portões fechados, mesmo cenário encontrado pelos seguranças do Palmeiras que tentavam adentrar o gramado.

Enquanto isso, a torcida do Peñarol arremessava objetos e tentava invadir o setor reservado aos palmeirenses. Membros da torcida Mancha Alviverde formaram uma linha de frente para impedir a invasão, até que a Polícia chegou para controlar os ânimos, cerca de 20 minutos depois.

Tudo isso aconteceu porque Felipe Melo disse, ainda em sua apresentação no clube, no início daquele ano, que "daria tapa na cara de uruguaio" se necessário fosse. A afirmação infeliz, que tinha uma conotação figurada, foi levada ao pé da letra pelos jogadores do Peñarol.