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

Rubens Valente

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.

Jornalistas que cobriam Bolsonaro foram alvo de grupo, ite Heleno

General Heleno dá entrevista em protesto contra STF e Congresso - Vinícius Santa Rosa/Metrópole
General Heleno dá entrevista em protesto contra STF e Congresso Imagem: Vinícius Santa Rosa/Metrópole

Colunista do UOL

11/02/2022 14h17

Corria o mês de maio de 2020, a pandemia se agravava e o presidente Jair Bolsonaro parava na entrada do Palácio da Alvorada para insultar e dar respostas truculentas à imprensa sobre qualquer assunto acerca do qual era indagado. No "cercadinho" criado pelo governo na frente do Palácio, Bolsonaro era aplaudido por seguidores a cada ataque que fazia à imprensa. Os bolsonaristas xingavam e investiam contra repórteres, cinegrafistas e auxiliares das emissoras de rádio, jornal, TV e internet.

A situação ficou tão tensa que vários dos principais meios de comunicação do país, incluindo o UOL, resolveram retirar suas equipes da cobertura presidencial no Alvorada a fim de proteger suas equipes de agressões físicas, uma decisão inédita nos 35 anos de democracia.

Nesta sexta-feira (11), quando vem à tona a íntegra do depoimento prestado pelo ministro-chefe do GSI (Gabinete de Segurança Institucional), o general reformado Augusto Heleno, as dúvidas que ainda podiam existir se aqueles manifestantes eram "espontâneos" ou orquestrados se dissiparam: o movimento contra os jornalistas na porta do Palácio era executado por um grupo de radicais de extrema-direita denominado "Grupo dos 300". E o órgão mais alto da inteligência de governo tinha pleno conhecimento da ação anti-imprensa.

O depoimento demonstra que Augusto Heleno sabia que os ataques aos jornalistas eram coordenados e também sabia quem os coordenava. Na época, contudo, em público ele nada falou sobre isso. Quando se manifestou, disse apenas que os jornalistas deveriam "fingir que não ouviam as ofensas".

No depoimento prestado à delegada da Polícia Federal Denisse Ribeiro em 14 de dezembro ado em inquérito que tramita no STF (Supremo Tribunal Federal), Heleno explicou o foco do "Grupo dos 300" no trabalho da imprensa: "O Grupo dos 300, na época, estava tomando atitudes hostis contra jornalistas que acompanhavam o dia a dia do presidente".

Heleno disse que partiu dele a iniciativa de contatar o "Grupo dos 300" a fim de "mitigar as ações hostis" contra os jornalistas, pois a "situação não era de interesse do governo federal" - o verbo "mitigar" significa abrandar ou suavizar, entre outros significados, mas não eliminar. Ele se encontrou no gabinete do GSI, no Palácio do Planalto, com os principais líderes do grupo. Heleno reiterou à PF que o "objetivo da reunião foi tentar convencê-los a mudar o tratamento que eles estavam dispensando à imprensa".

A delegada quis saber se a reunião ocorreu no dia 26 de maio de 2020, uma data apontada a partir de levantamentos feitos pela Polícia Federal. Heleno respondeu "provavelmente trata-se da reunião" com o "Grupo dos 300". Assim, a declaração de Heleno sobre os jornalistas "fingirem" que não escutavam teria ocorrido apenas dois dias depois da reunião.

No mesmo dia 26 de maio de 2020, ao comentar negativamente colunas publicadas por jornalistas, Heleno escreveu em rede social contra "grande parte da imprensa": "Concordo que o bom jornalismo depende de credibilidade e honestidade. Essas virtudes foram abandonadas por grande parte da imprensa, hoje pautada pela parcialidade e pelo fanatismo contra o Governo Federal".

Durante o depoimento de Heleno, a PF não aprofundou o tema dos ataques à imprensa na cobertura da Presidência. Não ficou claro, por exemplo, que evidências Heleno tinha contra o "Grupo dos 300" para culpá-lo pelas "ações hostis" à imprensa, por que não falou em público sobre quem coordenava os ataques e que medidas eventualmente tomou para prevenir futuros ataques aos jornalistas, além da reunião no GSI.