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

Após análise fotográfica, perito da família de Adriano vê tiro à queima-roupa

O miliciano Adriano Magalhães da Nóbrega durante vida como fugitivo na Bahia - Reprodução
O miliciano Adriano Magalhães da Nóbrega durante vida como fugitivo na Bahia Imagem: Reprodução

Roberta Jansen

Rio

20/02/2020 20h16

O perito aposentado Francisco Moraes Silva, de 81 anos, contratado pela família do miliciano Adriano Magalhães da Nóbrega para acompanhar a nova necropsia feita na tarde desta quinta, 20, no Instituto Médico-Legal do Rio, disse que o disparo que acertou o ex-capitão do BOPE no tórax tem características típicas de um tiro à queima-roupa.

"É a típica marca em que a extremidade distal da arma encosta no tegumento (pele)", afirmou.

Ex-diretor do IML do Paraná, o especialista está acompanhado de outros três peritos e um fotógrafo. Ele esclareceu que ainda não examinou o corpo e que sua análise foi feita com base em fotografias.

"Esse crime, da forma como foi, é o mais importante dos últimos 20 anos", alegou.

O novo exame cadavérico está sendo feito por peritos do IML do Rio. O resultado só sairá dentro de quinze dias. Depois disso, a equipe de Moraes filho tem outros quinze dias para elaborar um parecer sobre o laudo. Segundo ele, o corpo está "putrefato", ou seja, apodrecido, mas não o suficiente para atrapalhar o exame.

Sobre a necropsia feita no IML de Alagoinhas, na Bahia, Moraes Silva disse que os peritos poderiam ter dado mais informações sobre o orifício de entrada no tórax.

"O novo laudo será feito por peritos do Rio que têm muita experiência com tiros de fuzil e carabina ", afirmou.

A Justiça da Bahia autorizou na noite da terça-feira, 18, a realização do novo exame. O pedido havia sido feito pelo Ministério Público da Bahia e também pela família de Nóbrega. Na decisão, o juiz Augusto Yuzo Jouti determina que o exame seja feito por peritos do IML do Rio, onde o corpo está desde o último domingo, 16. De acordo com a decisão, no entanto, a família e o MP da Bahia podem indicar peritos independentes para acompanhar o exame.

Moraes Silva já foi denunciado por supostamente fraudar um laudo de necropsia nas investigações da morte de uma mulher no Paraná. Outro perito que o acompanhou no IML nesta tarde, Ari Fontana, já foi preso. Foi acusado de extorsão para liberar veículos furtados, quando era diretor-geral do Instituto de Criminalística do Paraná, em 2006. Não foi possível questioná-los sobre as acusações.

Tortura em Adriano

O objetivo do novo exame é determinar a distância aproximada entre os policiais e Adriano no momento dos tiros, o trajeto percorrido pelas balas no interior do corpo do ex-PM e o calibre das armas usadas. Será possível averiguar também se houve tortura, como foi alegado pelo senador Flávio Bolsonaro (sem partido-RJ).

Segundo os promotores, tais questões não foram devidamente esclarecidas na primeira necropsia, feita no IML de Alagoinhas, cidade vizinha à Esplanada. Com esses esclarecimentos, acreditam, será possível determinar se houve, de fato, uma troca de tiros ou uma execução.

Estão pendentes, ainda, os resultados de exames importantes feitos na Bahia. São eles o residuográfico (que determina se Nóbrega, de fato, fez algum disparo de arma de fogo), o das marcas de bala no escudo usado pela PM na invasão do sítio (o que poderia indicar uma reação) e o da perícia da casa onde ele foi alvejado.