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

'Ele não trouxe o roteiro, ficou colando de mim', diz Haddad sobre Tarcísio

Os candidatos ao governo de São Paulo Fernando Haddad (PT) e Tarcísio de Freitas (Republicanos) conversam antes do debate - ISAAC FONTANA/CJPRESS/ESTADÃO CONTEÚDO
Os candidatos ao governo de São Paulo Fernando Haddad (PT) e Tarcísio de Freitas (Republicanos) conversam antes do debate Imagem: ISAAC FONTANA/CJPRESS/ESTADÃO CONTEÚDO

Do UOL, em São Paulo

14/09/2022 01h00

O candidato Fernando Haddad (PT) disse que Tarcísio de Freitas (Republicanos), seu concorrente na disputa pelo governo de São Paulo, "colou" do petista as regras do debate promovido na noite de hoje pelo UOL, em parceria com a TV Cultura e o jornal Folha de S.Paulo. Os dois, que foram posicionados em bancadas vizinhas, conversaram amistosamente nos intervalos do evento.

"Ele [Tarcísio] não trouxe o roteiro, ficou colando de mim a ordem, as regras", disse o petista ao final do evento. Questionado pelo UOL, Tarcísio confirmou. "Eu estava perguntando a ordem de fala. Eu estava sem roteiro", afirmou o ex-ministro do governo Jair Bolsonaro (PL).

Em uma conversa que os dois tiveram pouco antes do início do debate, Tarcísio sorriu e Haddad chegou a soltar uma gargalhada. Perguntado sobre o que teria motivado a conversa animada entre os dois, o petista afirmou que não iria "fazer confidências", mas enfatizou que não tem problemas pessoais com Tarcísio.

"É meu amigo de governo, estivemos no mesmo governo. Não é pessoal, política é política. Ele estava interessado em conversar", afirmou, em referência ao período em que Tarcísio foi diretor do DNIT (Departamento Nacional de Infraestrutura de Transportes).

Disputa nacional. Haddad e Tarcísio, que vêm figurando nos dois primeiros lugares das pesquisas de intenção de voto, refletem a disputa nacional entre Luiz Inácio Lula da Silva (PT) e Jair Bolsonaro (PL), que disputam a Presidência. Na última pesquisa do Ipec (ex-Ibope), divulgada no último dia 6, Haddad aparece na liderança com 36%, contra 21% de Tarcísio e 14% de Rodrigo.

No debate. Os oponentes tiveram um embate durante o primeiro bloco do debate. Haddad, que fez a pergunta, questionou o ex-ministro da Infraestrutura sobre a queda das coberturas vacinais durante a atual gestão federal, tema sobre o qual o próprio Bolsonaro foi perguntado no debate presidencial promovido por UOL, Band, TV Cultura e Folha de S.Paulo, no final de agosto.

Em resposta a Haddad, Tarcísio afirmou que o Executivo não atrasou a compra de vacinas contra a Covid, mas cometeu uma gafe: confundiu o Covax Facility, consórcio da OMS (Organização Mundial da Saúde) para aquisição de imunizantes pelos países, com Covaxin, a vacina indiana que levou Bolsonaro a ser investigado por prevaricação após denúncias surgidas na I da Covid.

Momentos do debate

  • Haddad e Tarcísio nacionalizaram o debate e trouxeram assuntos relacionados aos presidenciáveis Luiz Inácio Lula da Silva (PT) e Jair Bolsonaro (PL).
  • Ao responder Haddad sobre as vacinas, Tarcísio cometeu gafe ao confundir o nome do consórcio da OMS com o do imunizante envolvido em esquema suspeito de propina. Ele também defendeu os antivacinas.
  • Rodrigo foi atacado pelos adversários e questionado por ações realizadas pelo seu antecessor João Doria (PSDB) --padrinho político.
  • Figurantes no palco, Poit e Cezar foram ofuscados por seus pais. Haddad e Garcia citaram suas ligações com os familiares

Participaram desta cobertura: Ana Paula Bimbati, Caê Vasconcelos, Isabela Aleixo, Felipe Pereira, Gabriela Vinhal, Gilvan Marques, Herculano Barreto Filho, Juliana Arreguy, Leonardo Martins, Lucas Borges Teixeira, Mariana Durães, Rafael Neves, Stella Borges, Wanderley Preite Sobrinho