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

Justiça nega recurso, e acusados pela morte de Marielle vão a júri popular

PM reformado, Ronnie Lessa é apontado como o autor dos disparos que mataram Marielle e Anderson - Lucas Landau/Reuters
PM reformado, Ronnie Lessa é apontado como o autor dos disparos que mataram Marielle e Anderson Imagem: Lucas Landau/Reuters

Tatiana Campbell

Colaboração para o UOL, no Rio

09/02/2021 15h48Atualizada em 09/02/2021 16h01

A Justiça do Rio de Janeiro negou, por unanimidade, o recurso movido pelas defesas do policial militar reformado Ronnie Lessa e do ex-PM Élcio Vieira de Queiroz, presos há dois anos pelos assassinatos da vereadora Marielle Franco e do motorista Anderson Gomes, mantendo a decisão de levá-los a júri popular. Os advogados dos acusados vão recorrer mais uma vez, agora ao STJ (Superior Tribunal de Justiça).

Em audiência realizada hoje, os desembargadores do TJRJ (Tribunal de Justiça do Rio de Janeiro) decidiram, após ouvir a defesa e acusação, que os réus vão a júri popular. A magistrada Katya Maria de Paula Menezes Monnerat disse que "a prova oral colhida nos autos trouxe sérios e concretos indícios da participação ativa dos réus no crime. Foram inúmeros depoimentos que cabe ao júri popular analisar e decidir a procedência dos mesmos".

O recurso, apreciado pela 1ª Câmara Criminal do TJRJ, teve início pouco antes das 14h30 por videoconferência. A defesa de Élcio de Queiroz alegou que há falta de provas e evidências que liguem o ex-PM à morte da parlamentar. Ronnie Lessa é apontado como o autor dos disparos. Nenhum advogado se apresentou para falar em nome de Élcio de Queiroz, acusado de dirigir o carro envolvido no crime.

O advogado de Lessa, Bruno Castro, questionou as provas apresentadas pelo Ministério Público. "A acusação não há prova e nem indícios de que Ronnie Lessa estivesse dentro daquele carro. Uma testemunha, que não foi ouvida em juízo, categoricamente afirmou que a pessoa que atirou contra o carro que estava a vereadora era uma pessoa negra".

A defesa acrescentou que "a acusação, por falta de provas e pela pressão pública atropelou muitos os, muitas garantias e evidências". O advogado Bruno Castrou finalizou dizendo que ambas as famílias precisam de respostas após 2 anos de investigação. "Isso é uma injustiça com as duas famílias. Eles não podem sofrer com essa falta de informação, de investigação. Todos querem saber quem foi que matou a Marielle e, de fato, não foi o Ronnie Lessa", finalizou Castro.

Já as advogadas que representavam as famílias de Marielle e Anderson alegaram que as provas obtidas pelo Ministério Público e pela Delegacia de Homicídios da Capital são suficientes. "Provas periciais não deixam dúvidas sobre indícios de autoria. Acreditamos que deve ser mantida a decisão e que os recorrentes sejam julgados pelo júri", declarou Luciana Pivato, advogada que representa Mônica Benício, viúva de Marielle.

Ronnie Lessa e Élcio de Queiroz estão no presídio federal de Porto Velho, em Rondônia, e respondem por duplo homicídio triplamente qualificado por motivo torpe, emboscada e sem dar chance de defesa às vítimas.

Faltando pouco mais de um mês para que o crime complete três anos, até agora não se sabe quem mandou matar Marielle e Anderson.

Caso Marielle