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

Às vésperas de relatório, Comissão da Verdade diz ter pistas de corpo de Angel

Stuart Angel Jones foi preso em 1971 e visto pela última vez na Base Aérea do Galeão, no Rio de Janeiro - Comitê Brasileiro de Anistia
Stuart Angel Jones foi preso em 1971 e visto pela última vez na Base Aérea do Galeão, no Rio de Janeiro Imagem: Comitê Brasileiro de Anistia

Leandro Prazeres

Do UOL, em Brasília

09/12/2014 18h31

A CNV (Comissão Nacional da Verdade) anunciou nesta terça-feira (9) ter encontrado indícios de uma ossada que pode pertencer ao militante Stuart Angel, desaparecido em maio de 1971. Segundo integrantes da CNV, comparações feitas por peritos brasileiros e ingleses com base em fotos de Stuart e do crânio de uma ossada encontrada no Rio de Janeiro em 1976 apontam “clara correspondência” entre os dois. Integrantes da comissão disseram, no entanto, que ainda é preciso encontrar a ossada para exames mais precisos.

A comissão divulga nesta quarta-feira (10) o relatório final de suas atividades. O documento será apresentado à presidente Dilma Rousseff.

Stuart Angel era filho da estilista Zuzu Angel. Informações colhidas pela comissão indicavam que Stuart havia sido preso na Base Aérea de Santa Cruz, no Rio de Janeiro. Depoimentos apontaram para a possibilidade de que ele tivesse sido morto e enterrado em uma área próxima à cabeceira da pista da base.

De acordo com o perito da CNV Mauro Yared, foram encontrados indícios de que ao menos uma ossada havia sido encontrada entre o entulho retirado por uma empreiteira que fazia obras na base. As fotos do crânio encontrado foram comparadas com fotos em alta resolução de Stuart Angel por peritos brasileiros e ingleses.

“Chegou o relatório do professor universidade da Inglaterra e ele reforça que ele [perito] não tem como excluir, enquanto não for feita uma identificação positiva, que aquela ossada seja a de Stuart Angel Jones”, disse Yared. As fotos da ossada encontrada em 1976 e do rosto de Stuart Angel foi analisada pelo perito Martin Evison, da Universidade de Northumbria, na Inglaterra.

Yared disse que o próximo o para identificar Stuart Angel é localizar a ossada. “Até agora, só temos as fotos, mas já estamos tentando localizar a ossada em dois cemitérios do Rio de Janeiro, o de Santa Cruz e o do Caju”, afirmou.

O anúncio da localização de indícios do corpo de Stuart Angel foi feito junto com a divulgação da identificação de dois desaparecidos políticos do Rio de Janeiro: Paulo Torres Gonçalves e Joel Vasconcelos Santos. Segundo o secretário-executivo da CNV, André Saboia, os dois haviam sido enterrados como indigentes em cemitérios cariocas entre 1969 e 1971.

Segundo Saboia, as impressões digitais dos dois correspondem às fichas datiloscópicas de dois homens enterrados no Rio de Janeiro como indigentes. “Essa comprovação é de 100%”, diz.