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

Chico Alves

OPINIÃO

Texto em que o autor apresenta e defende suas ideias e opiniões, a partir da interpretação de fatos e dados.

No Rio, a trágica rotina de matanças continua

22.nov.2021 - Corpos achados por moradores no Complexo do Salgueiro, em São Gonçalo (RJ) - Marcos Porto/Agência O Dia/Estadão Conteúdo
22.nov.2021 - Corpos achados por moradores no Complexo do Salgueiro, em São Gonçalo (RJ) Imagem: Marcos Porto/Agência O Dia/Estadão Conteúdo

Colunista do UOL

22/11/2021 18h03

Quem mora no Rio de Janeiro conhece a regra que não está em nenhum código legal e nem tem amparo jurídico, mas é seguida à risca nas favelas: para cada policial assassinado, os agentes do Estado responderão causando várias mortes no mesmo local.

Só uma apuração rigorosa poderá esclarecer se foi esse o caso da matança no Complexo do Salgueiro, em São Gonçalo, onde oito homens foram mortos pelo Bope, depois que o PM Leandro da Silva foi assassinado por traficantes, no sábado (20). Especialistas apontam indícios de ação motivada por vingança.

Essa versão piorada da Lei de Talião está em vigor há muito tempo no território fluminense, sem que nada e nem ninguém consiga estancar o banho de sangue. Não foram poucas as vezes em que o Brasil e o mundo ficaram escandalizados com o nível de barbárie verificado em operações da polícia do Rio — nada, porém, consegue segurar essa máquina da morte.

Há seis meses, 28 pessoas foram assassinadas na favela do Jacarezinho. A primeira delas, um policial civil. As demais 27 eram moradoras da comunidade que a polícia alega terem atirado contra os agentes. A investigação encontrou indícios e testemunhos que revelam mortes à queima-roupa de suspeitos já rendidos, praticadas à frente de idosos e crianças que jamais esquecerão o terror daquele dia.

Houve protestos nacionais e internacionais, promessas de apuração e agora pouco se fala do caso.

Hoje, novas cenas macabras vieram se sobrepor àquelas do Jacarezinho. Em São Gonçalo, o repórter da TV Globo Genilson Araújo acompanhou do helicóptero a expedição macabra dos moradores do Salgueiro, que foram obrigados a se embrenhar no manguezal para recolherem eles próprios os oito corpos. Depois de matar aqueles homens, os representantes do Estado só retornaram à favela 32 horas depois.

Cobrado pelos jornalistas, o porta-voz da PM deu as explicações imprecisas que costumam se repetir nesses casos: os policiais foram atacados e reagiram, não deram segurança para que os bombeiros retirassem os corpos porque havia risco de confronto, o objetivo foi livrar os moradores do jugo dos bandidos.

Também os especialistas em segurança são obrigados a se repetir em entrevistas aos sites e emissoras de TV. Dirão que uma ação baseada em inteligência poderia ter evitado mortes, que operações motivadas por vingança são a antítese de um trabalho profissional de policiamento e que é a falta de planejamento dos governantes que faz com que tantas vidas se percam dos dois lados e entre moradores que ficam no meio do fogo cruzado.

Todos já conhecem esse roteiro, que será finalizado com o governador Claudio Castro — antes foram outros — dizendo que tudo será apurado com rigor. Daqui a alguns dias, as oito mortes terão caído no esquecimento, assim como as cenas terríveis das mães obrigadas a entrar no manguezal para retirar os corpos dos filhos (criminosos ou não).

A rotina será retomada, assim como foi há quatro anos, quando uma operação da Polícia Civil com as Forças Armadas deixou sete pessoas mortas no mesmo Complexo do Salgueiro.

Diante da falência das políticas de Segurança Pública, ou da inexistência delas, episódios como esses se incorporaram ao cotidiano fluminense, que se mantém há anos à frente dos recordes de mortes pela polícia. Sem enxergar alternativas, boa parte da população aplaude a matança, sem perceber que isso não traz melhora aos índices de criminalidade.

É como se os moradores do Rio vivessem em uma localidade do Velho Oeste que, à falta de um xerife, aplaude o matador justiceiro. Os aplausos vêm principalmente das classes média e alta que enxergam a população das favelas como criminosos — e até de alguns moradores das comunidades que estão fartos do domínio territorial do tráfico.

Esse quadro dramático vai se perpetuando à medida que os morticínios se repetem. A população parece não acreditar mais em formas civilizadas de combater o crime.

Na briga do "bem contra o mal", gente que mora longe de São Gonçalo assistiu pela TV o recolhimento dos corpos e, mesmo sem saber nada sobre a identidade dos mortos, soltou frases bárbaras, como a que o colunista ouviu hoje, em um bar da zona Norte da capital: "Morreu foi pouco".

Enquanto a população continuar a aplaudir operações como essa, o Rio não terá paz.