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

Boulos faz aceno a PDT e PSB, de França: 'Partidos que respeito'

Ao longo da campanha, porém, Boulos tem dito que França é um "tucano que esconde o bico" - Fábio Vieira/Fotorua/Estadão Conteúdo e Reprodução
Ao longo da campanha, porém, Boulos tem dito que França é um "tucano que esconde o bico" Imagem: Fábio Vieira/Fotorua/Estadão Conteúdo e Reprodução

Felipe Pereira e Nathan Lopes

Do UOL, em São Paulo

13/11/2020 14h45Atualizada em 13/11/2020 18h27

O candidato do PSOL a prefeito de São Paulo, Guilherme Boulos, fez um aceno ao PSB e ao PDT e disse que "são partidos pelo qual eu tenho respeito". Atualmente, os dois partidos estão juntos na chapa encabeçada por Márcio França (PSB). O PDT ocupa a posição de vice.

França e Boulos têm trocado críticas ao longo da campanha. O candidato do PSOL têm dito que o adversário é um "tucano que esconde o bico". "O PSDB, nesta eleição, tem dois candidatos. Tem o candidato do [governador paulista, João] Doria, que é o Bruno Covas (PSDB). E o candidato do [ex-governador Geraldo] Alckmin, que é o Márcio França."

O candidato do PSOL tem aparecido como favorito para estar no segundo turno com Covas. O adversário de Boulos foi vice de Alckmin no governo paulista.

Boulos, porém, evita falar de segundo turno neste momento. De acordo com as últimas pesquisas, ele é o melhor colocado na disputa para, possivelmente, enfrentar Covas.

"Acho que não é respeitoso com outras candidaturas começar a falar de apoio se a eleição ainda não aconteceu", disse. "Indo para um segundo turno, eu tenho confiança que a gente vai, nós vamos discutir apoios", disse.

Ao UOL, dirigentes do PSOL ressaltaram o bom trânsito com a direção nacional do PDT. Sobre o PSB, um possível empecilho seria França, principal político do partido em São Paulo, em razão da troca de críticas na campanha.

Ao falar em "respeito" por PDT e PSB, Boulos lembra que os partidos, assim como o PSOL, fazem oposição ao governo do presidente Jair Bolsonaro (sem partido). O candidato tem reforçado que é contra o "Bolsodoria".

Ao fazer o comentário sobre os partidos, Boulos buscou dissociar o PSB de França. "O Márcio França, dentro do PSB, sempre foi tido como da ala tucana", disse o candidato do PSOL, lembrando que França apoiou Doria em 2016.

Campanha de França fala em "arrogância"

O aceno de Boulos ao PSB e PDT há três dias da votação foi considerado "arrogância" por Anderson Pomini, coordenador da campanha de Márcio França. Ele disse que falar de apoio no segundo turno antes do dia da eleição é falta de respeito com todos os candidatos que estão na disputa.

"Este comentário apenas revela a arrogância do candidato [Guilherme Boulos] Já dizendo que já está no segundo turno e menosprezando a força política do Márcio França e dos demais candidatos."

Pomini afirmou que confia no avanço de França ao segundo turno e a possiblidade de abrir conversas para uma composição é completamente descartada no momento. Ele ainda reagiu chamando o concorrente do PSOL de invasor.

"Quem conhece o Boulos sabe quem realmente ele é. Aquele que depreda, aquele que não respeita o patrimônio público, que não respeita as regras, não cumpre as normas ou as não cumpre as normas ou as leis. Então não há de se levar em consideração este tipo de comentário."

Ontem, na chegada ao debate da TV Cultura, França (PSB) disse que um líder do PSDB está "inventando o Boulos" para evitar encará-lo no segundo turno. O raciocínio do PSB é que, ao manter um embate com Boulos, Covas estaria referendando o adversário como grande rival. Desta maneira, estimularia o voto útil da esquerda — que se apresentou fragmentada e com três concorrentes — num único nome.

Gleisi "participa"

No final desta manhã, Boulos fez uma caminhada pelo centro de São Paulo, ando pela sede da prefeitura paulistana e pelo Theatro Municipal.

Na concentração, houve uma "participação especial" da presidente do PT, a deputada federal Gleisi Hoffmann. "Oi, aqui é Gleisi Hoffmann, presidente do PT", informava um áudio, transmitido por acidente pela caixa de som da campanha, que foi prontamente interrompido e substituído pelo arquivo correto, um dos jingles de Boulos. O candidato ainda não estava no local.

A reação ao áudio, com risos, dá o tom da expectativa por um apoio do PT à candidatura de Boulos. "Só se for para declarar apoio", brincou uma militante da campanha sobre o áudio de Gleisi.

Com o candidato petista distante da briga pelo segundo turno, há quem defenda o "voto útil" em Boulos, estratégia rechaçada pela campanha de Jilmar Tatto.

Na segunda (16), porém, o apoio deverá ser formalizado em uma reunião do PT caso Boulos seja confirmado no segundo turno. Já se projeta que o ex-presidente Luiz Inácio Lula da Silva (PT) e o ex-prefeito paulistano Fernando Haddad (PT) se juntarão à campanha do PSOL.

De acordo com a última pesquisa do Datafolha, Boulos está em segundo lugar, com 16%. Já Celso Russomanno (Republicanos), tem 14%. Os dois estão tecnicamente empatados e distantes de Covas, que aparece com 32%.

Boulos, aliás, após ter ultraado Russomanno, nesta semana, ou a mirar principalmente no tucano. Durante a agenda de hoje, foram constantes às críticas à gestão de Covas, que busca a reeleição. Na parada em frente ao Theatro, onde também estavam cabos eleitorais de Covas, Boulos citou que bilionários fizeram doações para a campanha do tucano.