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

Caso Marielle

Esse conteúdo é antigo

STJ: Acusado de ocultar armas no caso Marielle Franco seguirá preso

Josinaldo Lucas Freitas, o Djaca, preso sob envolvimento no caso Marielle - Arquivo pessoal
Josinaldo Lucas Freitas, o Djaca, preso sob envolvimento no caso Marielle Imagem: Arquivo pessoal

Do UOL, em São Paulo

27/04/2020 12h10

O ministro do STJ (Superior Tribunal de Justiça) Ribeiro Dantas negou um pedido para que Josinaldo Lucas Freitas, denunciado pela ocultação de armas que seriam do policial Ronnie Lessa, um dos acusados do assassinato da vereadora Marielle Franco e de seu motorista, Anderson Gomes, seja libertado ou colocado em prisão domiciliar.

Em habeas corpus com pedido de liminar, a defesa argumentou que a revogação da prisão ou substituição por medidas cautelares seria porque Freitas é diabético e hipertenso e, portanto, faz parte do grupo de risco da covid-19, doença causada pelo novo coronavírus. A defesa alegou ainda que haveria excesso de prazo para a conclusão do processo.

Ao negar a liminar, o ministro Ribeiro Dantas se reportou a trechos do acórdão do TJ-RJ (Tribunal de Justiça do Rio de Janeiro) que mencionam a complexidade dos fatos investigados e consideram não haver demora injustificada por parte da Justiça na condução do caso.

Além disso, segundo o tribunal fluminense, a pandemia da covid-19 não é motivo, no momento, para a revogação da prisão preventiva, pois a Vara de Execuções Penais do Rio de Janeiro vem tomando medidas temporárias para prevenir o contágio no sistema penitenciário, de acordo com as recomendações das autoridades sanitárias.

O TJ-RJ ainda registrou que não há laudo médico que ateste a situação de saúde de Freitas e a possibilidade de eventuais problemas serem tratados no presídio.

"Sem qualquer adiantamento do mérito da demanda, não vislumbro, ao menos neste instante, a presença de pressuposto autorizativo da concessão da tutela de urgência pretendida", declarou o ministro Ribeiro Dantas na decisão.

Ele observou que, em julgamento recente, o ministro do STF (Supremo Tribunal Federal) Marco Aurélio conclamou os juízes a atenderem pleitos como os de Freitas, concedendo prisão domiciliar a detentos com diabetes, HIV, tuberculose, câncer ou doenças respiratórias, cardíacas e imunodepressoras, mas o plenário da Corte não chancelou a orientação.

Ribeiro Dantas solicitou informações ao TJ-RJ e ao juízo de primeira instância, e posteriormente o habeas corpus será encaminhado para parecer do MPF (Ministério Público Federal). O mérito do pedido será analisado pelos ministros da Quinta Turma, ainda sem data definida.

Caso Marielle