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

Bolsonaro faz das lives contraponto à sua versão 'Jairzinho paz e amor'

30.jul.2020 - O presidente Jair Bolsonaro (sem partido) durante sua live semanal - Reprodução/YouTube
30.jul.2020 - O presidente Jair Bolsonaro (sem partido) durante sua live semanal Imagem: Reprodução/YouTube

Hanrrikson de Andrade

Do UOL, em Brasília

06/08/2020 04h00

Disposto a reverter sinais de queda de popularidade e neutralizar danos provocados por uma imagem impetuosa e beligerante, o presidente Jair Bolsonaro (sem partido) inaugurou nos últimos meses o que tem sido chamado de fase "Jairzinho paz e amor".

Com uma postura menos ruidosa e sob tutela de militares e parlamentares aliados, o presidente se aproximou do Congresso, buscou aparar arestas com o Judiciário e promoveu ajustes na relação com a ala mais radical de apoio.

O contato com seus seguidores também foi revisto a fim de evitar que suas as declarações servissem como ponto de partida para crises institucionais.

Há, contudo, um último ambiente onde ainda é possível observar no presidente aquilo que alguns aliados chamam de "bolsonarismo raiz", estilo que remete à versão mais espontânea e barulhenta do governante. São as lives de quinta-feira no Facebook.

A interação nas redes sociais é um assunto caro ao presidente, que considera ter vencido a disputa eleitoral em 2018 especialmente por causa da internet. Por esse motivo, auxiliares que participam do processo de construção do novo perfil de Bolsonaro dizem que, apesar da repercussão em potencial, "pedir moderação" nas lives é uma tarefa impossível.

Segundo palavras de um interlocutor, "se ele [presidente] não for ele ali, não sobra nada do Bolsonaro raiz". "É um espaço em que ele precisa ser autêntico", completou.

Foi justamente em uma live que, na semana ada, o chefe do Executivo federal voltou a alfinetar a China, principal parceria comercial do Brasil no cenário internacional.

Na ocasião, Bolsonaro ironizou a vacina produzida no país asiático e que está sendo testada em São Paulo para combater o coronavírus. Por enquanto, os laudos não indicam eficácia, mas há perspectiva otimista quanto ao estudo.

Na mesma transmissão ao vivo, o presidente disse que chegariam ao Brasil cem milhões de doses de uma outra vacina, esta produzida pela Universidade de Oxford (Inglaterra). O governante "adiantou" a chegada da remessa mesmo sem ter assinado até o momento contrato com a farmacêutica AstraZeneca, responsável pelo produto.

"Se fala muito da vacina da Covid-19. Nós entramos naquele consórcio lá de Oxford. Pelo que tudo indica, vai dar certo e 100 milhões de unidades chegarão para nós. Não é daquele outro país não, tá ok, pessoal? É de Oxford aí. Quem não contraiu o vírus até lá... Eu não preciso tomar porque já estou safo."

A relação entre o governo brasileiro e a China, país fundamental à economia nacional, tem sido conturbada desde o início da pandemia do coronavírus. O país asiático foi o primeiro epicentro da doença, que se espalhou de Wuhan, na província de Hubei, para outras localidades.

Entre os fatos que geraram maior repercussão estão as falas de um dos filhos do presidente, o deputado federal Eduardo Bolsonaro (PSL-SP), que atribuiu à China a culpa pela crise mundial instalada em função da pandemia. Um outro episódio que despertou indignação da representação diplomática do país oriental foi a manifestação do ex-ministro Abraham Weintraub.

Em postagem no Twitter, o ex-chefe da pasta da Educação usou o personagem Cebolinha, da Turma da Mônica, para ironizar os chineses e, em tom de deboche, insinuou que a crise mundial beneficiava país —segunda maior economia do mundo.

'Capitão gay'

Também durante a live, Bolsonaro ironizou na última quinta-feira (30 de julho) o grande número de postos no governo ocupados por capitães (patente militar).

"É tudo capitão. Tem até capitão gay", disse ele, em referência ao personagem do humorista Jô Soares no programa "Viva o Gordo", exibido na década de 80.

As piadas do presidente sobre questões envolvendo sexualidade são um velho traço do "bolsonarismo raiz" e costumam repercutir nas redes sociais, gerando mensagens de repúdio por parte de variados segmentos, mas também de endosso por parte de apoiadores.