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

Mortes violentas caem 6% no Brasil em 2021, aponta anuário

28/06/2022 17h41

O registro de mortes violentas intencionais, no ano ado, caiu 6,5% em todo o Brasil, apontou hoje (28) o Anuário Brasileiro de Segurança Pública, documento divulgado pelo Fórum Brasileiro de Segurança Pública. As mortes violentas intencionais consideram tanto os homicídios dolosos quanto os latrocínios, as mortes decorrentes de intervenções policiais e as lesões corporais seguidas de morte.

Em números absolutos, as notificações aram de 50.448 mortes em 2020 para 47.503 no ano ado, patamar mais baixo desde 2011, quando elas atingiram 47.215. Desde então, o maior patamar registrado foi em 2017, com 64.078 mortes. Em 76% dos casos ocorridos no ano ado, as mortes intencionais foram provocadas por armas de fogo.

Todas as regiões do país apresentaram queda no indicador, com exceção da Região Norte, onde elas aram de 5.758 notificações em 2020 para 6.291 no ano ado, com aumento no Pará, Amapá, Amazonas, Rondônia e Roraima. Também foi registrado aumento absoluto em dois outros estados brasileiros: Bahia e Piauí.

Segundo o anuário, apesar da melhoria no indicador, o Brasil ainda convive com violência extrema, sendo responsável por um em cada cinco homicídios que ocorrem no mundo (20,4% do total). A maior parte das vítimas dessas mortes violentas e intencionais no país é negra (77,9%), do sexo masculino (91,3%) e jovem entre 12 e 29 anos (50% do total).

Cidades mais violentas

O anuário também fez um levantamento das 30 cidades mais violentas do país entre os anos de 2019 e 2021.

De acordo com o balanço, 13 delas fazem parte da Amazônia Legal, onde a taxa de violência letal foi 38% superior à média nacional: no Brasil, essa taxa é de 22,3 mortes violentas intencionais a cada 100 mil habitantes, enquanto na Amazônia Legal figura em 30,9 mortes a cada 100 mil habitantes.

A cidade mais violenta do país no período foi São João do Jaguaribe (CE), seguida por Jacareacanga (PA), Aurelino Leal (BA), Santa Luzia D'Oeste (RO), São Felipe D'Oeste (RO) e Floresta do Araguaia (PA).