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

Em meio à crise do corona, tiroteios aumentam no Rio com disputa de facções

Getty Images
Imagem: Getty Images

Igor Mello

Do UOL, no Rio

25/03/2020 04h00

Nem as ruas vazias —decorrência da orientação para permanecer em casa com o objetivo de conter o avanço do coronavírus— fizeram com que o morador do Rio de Janeiro deixasse de conviver com o som de tiros.

Levantamento feito pelo UOL com base em registros do Laboratório de Dados sobre Violência Armada Fogo Cruzado mostra que o número de tiroteios na cidade cresceu na esteira de um aumento de confrontos entre facções em várias regiões —esse movimento foi verificado no período após a proibição de aglomerações e restrição de circulação no Rio.

Este ano, até o dia 13 de março —quando o governador Wilson Witzel (PSC) anunciou as primeiras medidas restritivas— a cidade do Rio tinha, em média, oito tiroteios por dia. Desde então, essa média saltou para mais de dez confrontos diários. Em nove dias de isolamento, a cidade teve 97 confrontos armados, boa parte deles relacionados a confrontos entre quadrilhas.

A estatística cresceu mesmo com uma redução significativa nas operações policiais. Até o início da crise do coronavírus no Rio, as polícias participavam de 35% dos tiroteios na cidade. Durante as medidas restritivas, esse percentual caiu pela metade, chegando a 17,5% dos confrontos.

Com a calamidade causada pela covid-19, parte do efetivo das polícias Civil e Militar foi deslocado para auxiliar na execução das medidas de bloqueio: nesta segunda-feira (23), PMs foram mobilizados para controlar o o ao transporte público na Baixada Fluminense. Policiais também têm fiscalizado o o de vans irregulares que furam o bloqueio de ageiros vindos da região metropolitana.

Uma das áreas mais deflagradas é o bairro de Quintino, na zona norte carioca. Nos últimos dias, foi deflagrada um violento confronto entre milicianos e integrantes do CV (Comando Vermelho) pelo controle das comunidades do Morro do Dezoito e do Saçu, que são vizinhas.

No Saçu, ocorreram cinco confrontos nos dias 14, 17, 19 e 20 de março. Já no Morro do Dezoito foram quatro tiroteios, nos dias 14, 19 e 22. Em pânico, moradores confinados em casa nas duas comunidades postaram vídeos da guerra nas redes sociais.

Outro ponto deflagrado foi o bairro de Costa Barros, na zona norte. Lá ficam os complexos do Chapadão, dominado pelo CV (Comando Vermelho), e da Pedreira, controlado pelo T (Terceiro Comando Puro).

Traficantes do T fizeram ataques na Favela do Final Feliz, no Chapadão, nos dias 14, 22 e 23 de março. Em resposta, o CV patrocinou invasões à comunidade Bairro 13, na Pedreira, nos dias 21 e 22.

Outras comunidades também tiveram um período violento. A Vila Kennedy, em Bangu, dominada pelo CV, foi palco de nove tiroteios desde a adoção de medidas restritivas, em seis dias diferentes. Traficantes da comunidade atacaram a favela da Carobinha, em Campo Grande, que é dominada por milicianos da Liga da Justiça.

Queda de ações policiais x Alta de confrontos entre facções

Robson Rodrigues, coronel da reserva da Polícia Militar e pesquisador LAV (Laboratório de Análises da Violência) da Uerj (Universidade do Estado do Rio de Janeiro), avalia que o aumento do número de enfrentamentos entre facções nesse período pode estar relacionado à redução de operações policiais.

"Uma hipótese, entendendo um pouco da lógica de como essa criminalidade violenta funciona, é que geralmente esses grupos vão tentar agir na oportunidade deixada por um momento de ausência do Estado ou das forças policiais. Tiroteios têm ocorrido em locais onde indicadores criminais são altos e onde a polícia tem mais dificuldade de entrar", avalia o coronel da reserva, que foi chefe do Estado-Maior da PM.

Rodrigues diz que essa dinâmica é alimentada pela lucratividade de atividades como o tráfico de armas e critica o fato de as polícias não terem recebido investimentos para se modernizarem de forma a lidar com essa realidade. Por isso, afirma que a reação das forças de segurança a esses enfrentamentos certamente será o confronto.

"A polícia vai agir como sempre agiu, porque não tem um plano que deveria ser de Estado, para vermos os resultados na ponta. Como não tem isso, no momento em que constatar que a situação está fora de controle vai atuar como sempre atua, e receber as mesmas críticas de sempre", analisa.

O UOL procurou a PM e a Polícia Civil solicitando informações sobre a redução de operações policiais durante a crise do coronavírus e as ações para coibir os confrontos de fações na capital. As corporações negaram-se a responder e disseram, em nota, que não iriam comentar o levantamento "por não se basear em dados oficiais do Instituto de Segurança Pública".