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

Esse conteúdo é antigo

Advogados de procuradores questionam veracidade de mensagens da Operação Spoofing

Advogados questionam o o do ex-presidente Lula às mensagens, após autorização do ministro Lewandowski  - Victor Moriyama/Getty Images
Advogados questionam o o do ex-presidente Lula às mensagens, após autorização do ministro Lewandowski Imagem: Victor Moriyama/Getty Images

Elizabeth Lopes

São Paulo

05/02/2021 16h14

Os advogados Marcelo Knopfelmacher e Felipe Locke Cavalcanti, que atuam na defesa dos Procuradores da República que foram vítimas dos hackers na Operação Spoofing, questionam o o do ex-presidente Luiz Inácio Lula da Silva (PT) - em autorização do ministro do STF Ricardo Lewandowski - ao material apreendido nessa operação. Segundo os advogados, isso trouxe novamente o material à tona, numa tentativa de descredenciar todo o trabalho realizado pela Operação Lava Jato ao longo dos anos.

Ao Broadcast Político, Knopfelmacher diz que tudo isso provocou uma "exposição chocante da intimidade das pessoas", pois recentemente foram anexadas fotos de crianças nesses autos, num desrespeito ao que preceitua o Estatuto da Criança e do Adolescente. "Mas o que mais choca é a tentativa desesperada de um réu (Lula) já condenado em instâncias inferiores de trazer credibilidade ou veracidade a aludido material, invertendo sua posição processual para desacreditar o trabalho da acusação e da Justiça."

O advogado argumenta que é preciso atentar para uma questão fundamental, a falta de perícia do material apreendido com os hackers na Operação Spoofing. "Ele jamais foi periciado e jamais será a ponto de se tornar uma prova aceitável do ponto de vista jurídico. O que se tem hoje é um material apreendido com hackers, réus confessos, que invadiram dispositivos telefônicos, telemáticos e de informática de uma vasta gama de pessoas", complementa.

Knopfelmacher destaca ainda que não se pode atestar se o material apreendido corresponde àquilo que teria sido digitado entre as vítimas simplesmente porque esse cotejo jamais existiu e mesmo porque, ao tempo da busca e apreensão, muitos usuários já sequer tinham contas ativas no Telegram.

"Portanto, por mais que se tente fazer um eco na opinião pública para desacreditar a Operação Lava Jato, o material apreendido na Operação Spoofing jamais poderá ser utilizado como prova em defesas judiciais porque se trata efetivamente de uma prova ilícita, posto que obtida por meio da prática criminosa e porque se trata efetivamente de uma prova imprestável, porque não há correspondência aferida com aquilo que as vítimas teriam supostamente digitado."