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

Constança Rezende

Fachin revoga decisão de Toffoli sobre abertura de dados da Lava Jato à PGR

28.nov.2019 - O ministro Edson Fachin durante sessão extraordinária do STF (Supremo Tribunal Federal) - Carlos Moura/SCO/STF
28.nov.2019 - O ministro Edson Fachin durante sessão extraordinária do STF (Supremo Tribunal Federal) Imagem: Carlos Moura/SCO/STF

Colunista do UOL

03/08/2020 14h09Atualizada em 04/08/2020 12h25

O ministro Edson Fachin, do Supremo Tribunal Federal (STF), revogou nesta segunda-feira (3) a ordem de compartilhamento de dados de investigações da forças-tarefas da Operação Lava Jato com a Procuradoria-Geral da República (PGR).

A medida havia sido autorizada pelo presidente do Supremo, ministro Dias Toffoli. A decisão foi motivada por uma ação protocolada pelo vice-procurador Humberto Jacques de Medeiros, após as forças-tarefas rejeitarem o pedido do órgão.

A PGR argumentou que todo material probatório obtido pelas forças-tarefas de procuradores da Lava Jato pertence à instituição. Toffoli concordou, reforçando a tese de que a procuradoria "hierarquicamente, detém competência istrativa para requisitar o intercâmbio institucional de informações".

Fachin, que é relator do caso, lembrou outra decisão da corte que comparou o "princípio da unidade do Ministério Público", com a forma da qual se reveste o estado brasileiro, "uma vez que nela as unidades federadas são dotadas de autonomia organizacional, respeitados os limites estabelecidos na Constituição Federal".

"Diante da inexistência de relação de subordinação ou hierarquia entre os entes federados ou seus respectivos poderes é que se delimitou a incidência do Princípio da Unidade do Ministério Público ao órgão constituído e organizado no âmbito de cada Unidade da Federação, conforme se extrai do seguinte excerto", disse.

Nos bastidores, integrantes da Força-Tarefa de Curitiba ainda não sabem o que irá acontecer com o material que já havia sido coletado pela PGR no órgão. Técnicos da procuradoria-geral estão há duas semanas fazendo cópias do material. Procuradores estimam que eles devem parar o trabalho, assim que chegar a intimação.

A PGR informou que os desdobramentos da decisão de Fachin ainda "estão em análise". Porém, há uma avaliação de que decisões na primeira instância da Justiça que determinam o compartilhamento integral dos dados continuam vigentes, especificamente em relação a Curitiba.

O pedido da PGR para o compartilhamento de dados acirrou os ânimos entre o procurador-geral Augusto Aras e as forças-tarefas da operação. No último dia 28, Aras disse que a força-tarefa em Curitiba "tem mais dados armazenados que todo o sistema único do Ministério Público Federal".

"Não se pode imaginar que uma unidade institucional se faça com segredos, com caixas de segredos", afirmou.

A declaração fez com que procuradores da 5ª Câmara de Coordenação e Revisão (Combate à Corrupção) do MPF enviassem um ofício pedindo a proteção dos grupos de força-tarefa.