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

Lula e Bolsonaro tiram a paciência de Bonner: 'Parem os relógios dos dois'

Do UOL, em São Paulo, no Rio e em Brasília*

28/10/2022 23h34Atualizada em 28/10/2022 23h47

Mediador do debate da Globo, o último antes da votação no segundo turno, no domingo (30), William Bonner perdeu a paciência com os candidatos em disputa, Luiz Inácio Lula da Silva (PT) e Jair Bolsonaro (PL), durante o programa realizado na noite de hoje. Depois que um deles alegou não ter entendido a pergunta do rival, houve uma divergência sobre o tempo. O jornalista consentiu então que o relógio fosse paralisado, após protesto de Bolsonaro.

O entreverou começou quando Lula disse não ter entendido uma pergunta de Bolsonaro porque ele estava "falando para dentro", e pediu que a indagação fosse feita novamente. Os adversários tiveram um leve desentendimento, e o candidato à reeleição cobrou que o seu tempo não fosse descontado durante a repetição da pergunta.

"Eu sinceramente não entendi. Porque ele está falando para dentro. Eu não consegui ouvir o que ele falou. Fala um pouco mais alto", disse Lula.

O apresentador, William Bonner, indicou que não queria interromper o tempo correndo apenas por isso.

"Vamos parar os dois relógios. A dinâmica do debate prevê cinco minutos para cada um. Não vamos parar o relógio porque um não escutou. O tempo vai correr, gente. Vamos em frente", pediu. O presidente quis seu tempo de volta: "Vou repetir com relógio parado, é isso?".

"O relógio vai voltar a contar. Fazem questão de quantos segundos? Vamos lá", respondeu Bonner, sem paciência.

"O nosso governo, em 2020 e 2021, criou empregos mesmo com a pandemia. Esse ano a média mensal tá em torno de 250 mil empregos por mês. E você disse há pouco tempo em vídeo que você queria criar empregos para homens e mulheres. Só não sabia como. Que tal você dar os parabéns para mim agora sobre criação de empregos no Brasil?", provocou Bolsonaro.

"O povo brasileiro tem que compreender que eles mudaram a lógica da medição de emprego. Eles colocaram o MEI [microempreendedor individual] como se fosse emprego. Colocaram emprego informal como se fosse emprego. No meu tempo a medição de emprego era carteira profissional assinada", rebateu o petista.

Bonner tem 'direito de resposta'. Em um dos blocos anteriores do debate, Bonner concedeu a si próprio um "direito de resposta" depois de ser mencionado em fala do candidato Jair Bolsonaro.

"Como fui citado pelo candidato Bolsonaro, me permita fazer um esclarecimento muito breve. Eu, de fato, disse, na entrevista do 'Jornal Nacional', que o candidato Lula não deve nada à Justiça. Mas, como jornalista, eu não digo coisas da minha cabeça. Eu disse isso baseado em decisões fundamentadas do Supremo Tribunal Federal. Eu queria só fazer esse esclarecimento lembrando que, inclusive, algumas dessas decisões são bem recentes", respondeu Bonner, após Bolsonaro dizer que apenas o jornalista teria absolvido Lula.

Minutos antes, Lula chamou Bolsonaro de "descompensado" e "mentiroso".

O chefe do Executivo contra-atacou e ironizou a anulação de processos contra Lula e incluiu Bonner no assunto.

"Processo por corrupção para cima de mim, Lula? Qual é? Fala de mim. Ô, Lula, você dizer que foi absolvido? Só se foi pelo Bonner, se ele vai repetir aqui que você foi absolvido. Acho que Bonner vai ser indicado para um impossível governo teu para ser ministro do Supremo Tribunal Federal. Você foi descondenado Lula por um amigo do Supremo Tribunal Federal, que achava que você havia de ser julgado em Brasília e não em Curitiba. Você é um bandido, Lula", disse Bolsonaro.

Ainda no início da sua fala, Bolsonaro já tinha alfinetado a TV Globo. Enquanto perguntava para Lula, o candidato à reeleição afirmou que "o sistema todo está contra" ele, inclusive uma "grande rede de televisão" —quando levantou as mãos para cima, indicando falar da emissora que organiza o debate.

*Em São Paulo: Ana Paula Bimbati, Gilvan Marques, Isabella Cavalcante, Rafael Neves e Wanderley Preite Sobrinho
No Rio: Carla Araújo, Felipe Pereira, Lola Ferreira e Lucas Borges Teixeira
Em Brasília: Camila Turtelli, Gabriela Vinhal e Hanrrikson Andrade