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

Polícia do Rio investiga se milícia matou 5 jovens em Maricá

Marcela Lemos

Colaboração para o UOL, no Rio

26/03/2018 13h36

A Divisão de Homicídios de Niterói e São Gonçalo investiga a participação de milicianos no assassinato de cinco jovens neste domingo (25) em Maricá, na região metropolitana do Rio de Janeiro. De acordo com a DH, essa é a principal linha de investigação. No entanto, "outras hipóteses não foram descartadas", segundo informou a Polícia Civil nesta segunda-feira (26).

Os cinco jovens foram mortos a tiros dentro do Conjunto Residencial Carlos Marighella, unidade do programa "Minha Casa, Minha Vida", em Itaipuaçu, um dos distritos da cidade de Maricá.

As vítimas foram identificadas como Sávio de Oliveira, 20; Matheus Bittencourt, 18; Marco Jhonata, 17; Matheus Baraúna, 16, e Patrick da Silva Diniz.

Veja também:

Segundo a Polícia Civil, ao menos quatro pessoas já prestaram depoimento. Segundo testemunhas, as vítimas foram surpreendidas por homens armados em uma moto no momento em que estavam na área de convivência do conjunto habitacional.

No condomínio, vizinhos fizeram uma homenagem nesta segunda-feira (26) --cincos velas foram acesas próximo ao local onde os rapazes foram mortos.

Um parente de um deles que pediu para não ser identificado contou que as vítimas tinham e nvolvimento com bandidos. "Eram meninos sossegados. Tinham um grupo de inho e batalhas de rap. Não faziam nada de errado", disse um dos familiares ainda no IML (Instituto Médico Legal) de Niterói.

Por meio de nota, a Prefeitura de Maricá se disse indignada ante a chacina.

"A prefeitura vê com indignação a ocorrência de qualquer crime na cidade diante dos esforços que vêm sendo empreendidos no sentido de melhorar a segurança da população. No caso do residencial Carlos Marighella, em Itaipuaçu, consideramos a situação inissível justamente pelo fato de o município vir atuando muito para levar serviços e cidadania a todos os moradores", afirma o comunicado da prefeitura.

Maricá decretou luto oficial de três dias e disse estar acompanhando as investigações. A istração municipal disse que cobrará providências para que o caso seja esclarecido rapidamente pela polícia.

"Vamos também redobrar os esforços em termos de ações sociais que melhorem a vida de todos os que ali foram residir", completa a prefeitura no comunicado.

Aumento da violência

A região de Niterói, São Gonçalo e Maricá, cidades próximas à capital fluminense, têm sofrido um aumento da violência nos últimos anos.

Traficantes do Rio de Janeiro têm migrado para o interior após a implantação do programa de UPPs (Unidades de Polícia Pacificadora), hoje em crise. Milicianos também têm expandido seus negócios para essas regiões.

As mortes ocorrem durante intervenção federal na segurança do estado.