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

Moro nega interferência na PF e comparação com Jair Bolsonaro

Ex-ministro da Justiça Sergio Moro - Pedro Ladeira/Folhapress
Ex-ministro da Justiça Sergio Moro Imagem: Pedro Ladeira/Folhapress

Eduardo Militão

Do UOL, em Brasília

08/07/2020 21h00

O ex-ministro da Justiça Sergio Moro negou interferência na Polícia Federal e também qualquer comparação com a acusação que fez sobre o presidente Jair Bolsonaro (sem partido). Ele falou sobre isso hoje, em depoimento na 10ª Vara Federal de Brasília, na ação penal da "Operação Spoofing", em que hackers são acusados de invadirem telefones de procuradores da Lava Jato e do ex-juiz.

O conteúdo das mensagens foi divulgado pelo site "The Intercept", na série de reportagens conhecida como "Vaza Jato".

O advogado de Walter Delgatti, Ariovaldo Moreira, perguntou a Moro se ele não considerava que interferiu na Polícia Federal, pois recebia informações sobre o inquérito da PF a respeito da Spoofing. Ele perguntou se, a exemplo de Jair Bolsonaro, não estava sendo feita uma intromissão indevida no trabalho policial.

"Claro que não", disse Moro. "Aí é uma absoluta confusão. São situações absolutamente diferentes. Naquele caso, o meu telefone havia sido atacado e havia natural preocupação em saber quem eram esses indivíduos que estavam atacando as autoridades federais."

Ele lembrou que foram atacados os aparelhos do ministro da Economia, Paulo Guedes, e da ex-líder do governo no Congresso, Joice Hasselman (PSL-SP). "Havia situação preocupante em que criminosos estariam tentando obter informações de Estado confidenciais e isso estaria dentro da responsabilidade do ministro da Justiça. Eu nunca dirigi essas investigações."

O procurador do Ministério Público Wellington Oliveira disse que Moreira estava "procurando um fato político que não tem nada a ver com o processo". O advogado rebateu dizendo que a prisão de Delgatti, apontado como o hacker que chegou às mensagens da força-tarefa da Lava Jato, era "política" e que era um caso de Polícia Civil, e não Polícia Federal.

O juiz substituto da 10ª Vara Federal, Ricardo Leite, disse que o tema estava "fugindo ao escopo". "Já está extraindo muito para uma outra linha investigativa", afirmou o magistrado, interrompendo a pergunta do advogado.

Moro afirmou que obtinha informações sobre a investigações de maneira "genérica" com o diretor geral da Polícia Federal, Maurício Valeixo, mas sem saber detalhes. "Jamais influenciei a investigação. A Polícia Federal realizou seu trabalho de maneira independente."

A ex-deputada Manuela D'ávila (PCdoB-RS) prestou depoimento. Ela reafirmou que seu telefone foi invadido também, mas que o hacker avisou que havia informações sobre crimes cometidos por autoridades. A ex-deputada sugeriu que o hacker entrasse em contato com o jornalista Glenn Greenwald, do "Intercept".