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

Human Rights cobra do MP apuração 'minuciosa' sobre operação que matou 25

Policiais carregam baleado durante operação contra o tráfico na comunidade do Jacarezinho, no Rio - REUTERS / Ricardo Moraes
Policiais carregam baleado durante operação contra o tráfico na comunidade do Jacarezinho, no Rio Imagem: REUTERS / Ricardo Moraes

Colaboração para o UOL

06/05/2021 19h20

A organização internacional de direitos humanos Human Rights Watch pediu que o Ministério Público do Rio faça uma "investigação minuciosa e independente" sobre a operação da Polícia Civil que deixou ao menos 25 mortos na favela do Jacarezinho, Zona Norte da capital, hoje. Essa foi a ação mais letal da história do estado.

Para a ONG, o MP tem "obrigação constitucional" de assegurar investigações criminais adequadas quanto a eventuais abusos policiais. Na terça, o órgão fluminense disponibilizou um serviço de atendimento 24 horas para receber denúncias de possíveis casos de violência e abusos de autoridade cometidos durante ações em comunidades do estado.

Entre os mortos no confronto está o policial civil André Leonardo de Mello Frias, que atuava na Dcod (Delegacia de Combate às Drogas). Ele é o 29º agente de segurança baleado e morto no Rio em 2021. De acordo com a secretaria, todas as outras 24 pessoas eram suspeitas. As identidades não foram divulgadas.

Além dos óbitos, ficaram feridos dois policiais e dois ageiros do metrô que estavam dentro de uma composição na estação de Triagem, na mesma região.

Operação no Jacarezinho (RJ) deixa dezenas de mortos

Denominada de Operação Exceptis, a ação de hoje foi capitaneada pela DPCA (Delegacia de Proteção à Criança e ao Adolescente) e contou com o apoio de outras unidades, como a Core (Coordenadoria de Recursos Especiais). Também foram usados blindados e um helicóptero. Segundo os investigadores, traficantes vêm aliciando crianças e adolescentes para integrar a facção que domina o território. Entre os crimes praticados pelo grupo, estão o tráfico de drogas, roubo de cargas, roubos a transeuntes, homicídios e até sequestros de trens da Supervia.

Operações policias em favelas do Rio durante a pandemia foram proibidas em junho do ano ado, em caráter liminar, pelo ministro do STF (Supremo Tribunal Federal) Edson Fachin. Na decisão, ficou acertado que apenas em "hipóteses absolutamente excepcionais" as incursões poderiam acontecer.

O Human Rights Watch afirma que tem constatado "falhas graves" nas investigações de mortes causadas pela polícia no Rio. Entre outras medidas, a ONG ressalta que o MP deve assegurar que a polícia "preserve o local dos fatos, que os corpos das vítimas não sejam movidos ou retirados até completar a perícia no local, que toda a evidência seja recolhida com estrito cumprimento da cadeia de custódia e que as armas de suspeitos e da polícia sejam entregues de forma imediata aos peritos para o exame balístico".

Dados da organização mostram que no primeiro trimestre deste ano, a polícia do Rio matou 453 pessoas e ao menos quatro policiais morreram em ações policiais.