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

Biles está fora do individual geral na ginástica; Rebeca vira favorita

Demétrio Vecchioli

Do UOL, em Tóquio

28/07/2021 03h29

A saúde mental de Simone Biles vem em primeiro lugar e é sempre o mais importante quando se analisa a sua desistência de participar da final do individual geral da ginástica artística feminina nas Olimpíadas de Tóquio. Mas a ausência gera também um impacto esportivo e que deve beneficiar a brasileira Rebeca Andrade.

Rebeca, que pela primeira vez disputa uma competição de primeiro nível no ápice da forma física, chegou a Tóquio cotada para brigar por um lugar no pódio nas outras duas vagas que estavam abertas, porque ninguém cogitou que o ouro não ficasse com Simone Biles, como aconteceu em todas as vezes que ela competiu no individual geral desde o Mundial de 2013, na sua estreia em grandes eventos.

Grande estrela de Tóquio, Biles, porém, não pareceu confortável com tantos holofotes desde o primeiro dia, no treino de pódio. Na fase de classificação, teve erros significativos em todos os aparelhos e, mesmo assim, terminou na primeira colocação, mas com uma vantagem muito menor do que o esperado sobre todas as demais.

Ontem, na final por equipes, foi mal no salto, o primeiro aparelho da rotação dos Estados Unidos, e optou por se retirar da competição, para preservar sua saúde mental e não prejudicar as companheiras, sendo substituída por uma ginasta reserva. Sem elas, os EUA ficaram com a prata.

Rebeca Andrade foi a destaque brasileira nas etapas da ginástica olímpica de hoje - Ricardo Bufolin/CBG - Ricardo Bufolin/CBG
Brasileira Rebeca Andrade se tornou favorita para o individual geral da ginástica após desistência de Simone Biles
Imagem: Ricardo Bufolin/CBG

Hoje veio a decisão de que Biles não participa da final do individual geral, conhecido mundialmente pela sigla AA. Isso significa que a prova agora fica aberta, com possibilidades para diversas ginastas, incluindo Rebeca Andrade. A brasileira está descansada, porque o Brasil não tem equipe e consequentemente não fez essa final, o que pode ser um fator positivo para ela.

Na classificação, Rebeca foi a segunda melhor, só atrás de Biles. Somou 57,399 pontos, apesar de uma apresentação fraca para os níveis dela nas barras assimétricas, onde tirou nota 14,200, ficando inclusive fora da final desse aparelho. Como comparação, no Campeonato Pan-Americano em que carimbou o aporte para Tóquio, a brasileira tirou 14,400, também sem cravar.

Outros nomes que podem despontar

Mas claro que existem outras adversárias de peso. É o caso da norte-americana Sunisa Lee, que tirou 57,166 na classificação e que ontem, na final por equipes, somou 43,199 em três aparelhos — somando mais 14,133 do salto, nota da classificação, chegaria a 57,332, ainda pior do que a nota de Rebeca no domingo.

Outra forte concorrente é a russa Angelina Melnikova, que fez 57,132 na classificação e 56,054 ontem, quando caiu em sua apresentação na trave. Há ainda mais uma russa com potencial: Vladislava Urazova, que não ou de 55,331 ontem.

Por essas comparações, Rebeca tem grandes chances de ser ouro amanhã, como a ginasta mais completa do mundo, se repetir o desempenho da classificação. Quem a conhece diz que ela está mais concentrada do que nunca, e na melhor fase da carreira. A hora é agora.

Equipe dos EUA: "Aplaudimos sua bravura"

Em comunicado oficial nas redes sociais, a equipe de ginástica dos Estados Unidos confirmou a desistência de Simone Biles e demonstrou apoio ir à atleta: "Após uma avaliação médica adicional, Simone Biles retirou-se da competição individual geral final. Apoiamos de todo o coração a decisão de Simone e aplaudimos sua bravura em priorizar seu bem-estar. Sua coragem mostra, mais uma vez, por que ela é um modelo para tantos".