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

Grêmio

Renato indicou ao Grêmio e mudou a vida de zagueiro do Fortaleza há 10 anos

Paulão e Renato Gaúcho conversam em treinamento do Grêmio em 2010 - Marinho Saldanha/UOL
Paulão e Renato Gaúcho conversam em treinamento do Grêmio em 2010 Imagem: Marinho Saldanha/UOL

Marinho Saldanha

Do UOL, em Porto Alegre

13/09/2020 04h00

Se não fosse Renato Gaúcho, talvez a vida de Paulão fosse completamente diferente. Hoje na zaga do Fortaleza, rival a partir das 16h (de Brasília), na Arena, pela 10ª rodada do Brasileiro, o defensor foi indicado e ganhou apoio de Portaluppi no Grêmio há 10 anos.

Paulão tinha carreira longe dos holofotes. Com 24 anos, havia defendido ASA-AL, Universal-AL, Itapirense e estava no Grêmio Prudente quando foi observado pelo treinador. Renato viu nele uma alternativa de custo baixo que resolveria os problemas da defesa gremista na temporada 2010. Tinha imposição na bola aérea e velocidade.

A contratação foi confirmada em 27 de agosto. Foi o quarto reforço pedido pelo comandante, que vivia sua primeira agem pelo reservado gremista. Antes tinham desembarcado Vilson, Gilson e Gabriel.

A estreia de Paulão aconteceu em 11 de setembro de 2010, contra o Corinthians, no Pacaembu. Dias depois, foi titular pela primeira vez, contra o Palmeiras, no Olímpico. Não demorou para se firmar o time e conquistar a torcida com muito empenho em campo. Ganhou apelido de "Caveirão", virou xerife do sistema defensivo azul, branco e preto.

A agem pelo time durou até 2011. Tudo mudou na vida de Paulo Marcos de Jesus Ribeiro. Se antes a rotina eram clubes menores e a batalha de quem a longe das atenções no futebol, ou a ser contratos cada vez melhores.

Paulão, que tinha chegado por empréstimo, teve direitos comprados e posteriormente foi vendido ao Guangzhou Evergrande, da China. Por lá conquistou o Campeonato Chinês duas vezes até voltar ao Brasil, para jogar no Cruzeiro. Foi campeão do Brasileiro na equipe de Belo Horizonte e voltou ao Rio Grande do Sul em 2014 para jogar no Internacional, tradicional rival gremista.

Ali viveu conquistas e também declínio. Foi um dos jogadores rotulados com a campanha de 2016, que ocasionou o rebaixamento para Série B, e acabou deixando o clube em seguida. Foi emprestado ao Vasco, ao América-MG e ao Fortaleza, clube que defende em contrato definitivo atualmente, já sem ligação ao Colorado.

E quis o destino que 10 anos mais tarde, Renato e Paulão novamente se cruzem. Muito diferente de quando chegava ao Olímpico despercebido, o zagueiro do Fortaleza vive outra fase da carreira, que já se aproxima do fim. O mesmo vale para o treinador, que procurava se firmar no mercado nacional e atualmente carrega vasto currículo de títulos como Libertadores, Copa do Brasil, Recopa e Gauchão.

Grêmio