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

Pole Position

REPORTAGEM

Texto que relata acontecimentos, baseado em fatos e dados observados ou verificados diretamente pelo jornalista ou obtidos pelo o a fontes jornalísticas reconhecidas e confiáveis.

Pilotos cobram consistência em punições que podem definir o campeão da F1

Lewis Hamilton e Max Verstappen na primeira curva do GP dos EUA, em Austin: com área de escape asfaltada, lance foi considerado normal - Pirelli
Lewis Hamilton e Max Verstappen na primeira curva do GP dos EUA, em Austin: com área de escape asfaltada, lance foi considerado normal Imagem: Pirelli

Colunista do UOL

26/11/2021 04h00

Receba os novos posts desta coluna no seu e-mail

Email inválido

Quando a Mercedes teve seu pedido de revisão do lance em que Max Verstappen espalhou o carro, saindo da pista junto com Lewis Hamilton no GP de São Paulo, negado, o chefe Toto Wolff disse que a intenção do time não era gerar uma punição ao holandês, e, sim, colocar em pauta a discussão sobre o que é permitido em uma luta por posição "porque se as coisas permanecerem como estão, significa que ultraar por fora não será mais possível porque quem está do lado de dentro controla totalmente a curva". Em outras palavras, o time já estava preparando o terreno caso outro duelo polêmico entre os postulantes ao título aconteça nas últimas corridas.

Isso porque Verstappen e Hamilton já se encontraram algumas vezes na pista neste ano (em duas delas, gerando acidentes, pelos quais ambos foram punidos —Hamilton em Silverstone e Verstappen em Monza) e estão indo para as duas últimas etapas do ano separados por apenas oito pontos, com vantagem para o piloto da Red Bull.

Mas essa discussão não se limita aos dois: os pilotos saíram decepcionados de uma reunião que consideravam decisiva com o diretor de prova da F1, Michael Masi, na sexta-feira do GP do Qatar. Eles queriam entender por que incidentes parecidos são julgados de maneiras diferentes. "Quando as regras são cinzentas, às vezes você sente que se beneficiou delas, e às vezes sente que foi um idiota", resumiu Fernando Alonso.

Incidentes são avaliados caso a caso

A única coisa que é dita aos pilotos claramente é que as consequências dos incidentes nunca são levadas em conta, mas a maneira como eles são julgados leva a crer que sim. Citando os incidentes que envolveram Verstappen e Hamilton, na Inglaterra e em Monza, o piloto que estava atrás foi tido como culpado e levou punição, em lances nos quais o rival teve de abandonar. Em São Paulo, não houve nem toque, nem investigação, e o piloto prejudicado acabou conseguindo a manobra voltas depois e vencendo.

"Entendo que você precisa tratar cada caso individualmente", disse George Russell, que é um dos diretores da GPDA, associação dos pilotos de F1. "Aquele lance [de Verstappen e Hamilton no Brasil] foi exagerado. Se fosse a última volta da corrida, ele seria punido. Não dá para perder o ponto de freada por 25 m e fazer isso. Ele só não foi punido porque Lewis venceu a corrida, mas as consequências não deveriam ser um fator. Foi isso que eles nos disseram."

As declarações do britânico foram apoiadas por Sebastian Vettel, com quem ele divide a presidência do GPDA. "É um bom resumo", disse o alemão sobre a fala do colega. No domingo, antes da corrida, o tetracampeão estava conversando, sozinho, com Masi no paddock no Qatar.

Uma comparação que os pilotos fazem em relação ao lance do Brasil é a punição levada por Lando Norris por lance semelhante na Áustria. Mas parece haver um entendimento, ainda que isso não esteja na regra, de que, quando um piloto espalha para cima do outro e há brita na área de escape, o potencial dele ser punido aumenta. Perguntado se esse é o caso, Masi se limitou a dizer que "muito provavelmente, sim". "Todos tentam comparar incidentes e dizer que eles são todos iguais, mas não são. A análise é individualizada, observamos as circunstâncias daquele dia".

Em relação ao comportamento dos pilotos, Masi acredita ter deixado claro o que é esperado deles. "Acho que alguns concordam, outros discordam. E eles sempre foram assim. Nós demos a eles uma orientação geral, mas também deixei muito claro que cada caso será julgado por seus méritos".

Um primeiro fator complicador é que Masi é o diretor de prova em todos os GPs, mas não é ele quem decide sobre as punições. Os lances são julgados por um de comissários, que conta com um ex-piloto, e é diferente em cada prova. Eles têm à disposição o histórico de cada piloto, de cada tipo de lance, e contam com dados de telemetria e mais ângulos de câmera, mas ainda assim os pilotos sentem que não há consistência.

Isso, é claro, abre a porta para que as duas últimas etapas da Fórmula 1 deem mais dor de cabeça aos comissários. A etapa da Arábia Saudita será dia 5 de dezembro e a de Abu Dhabi, dia 12.