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

Damares é ameaçada de morte pelas redes: 'Encontrei minha filha chorando'

Hysa Conrado

De Universa, em São Paulo

11/10/2022 12h38

A ex-ministra da Mulher, da Família e dos Direitos Humanos Damares Alves postou um vídeo em seu perfil no Instagram na segunda-feira (11) para falar sobre as ameaças de morte que tem recebido desde sua vitória para o Senado do Distrito Federal, no dia 2 de outubro.

No vídeo publicado, Damares compartilhou o print de um tuíte que diz "vamos atentar contra a vida dessa mulher! Empalar ela em praça pública, ela precisa sofrer a dor da morte". A publicação, que foi excluída do Twitter, teria sido feita após o resultado da eleição, ainda no domingo.

Segundo o boletim ao qual Universa teve o, o mesmo perfil que fez a publicação contra Damares também ameaçou os filhos do presidente Jair Bolsonaro (PL) e seus eleitores, com os dizeres "eu apoio que todos os eleitores do Bolsonaro e seus filhos pequenos sejam executados", além de ter afirmado que era preciso "purificar a raça brasileira".

Procurada por Universa, a assessoria de Damares informou que senadora não podia comentar a denúncia no momento pois está viajando. Durante o dia de ontem (10), a senadora esteve no Amapá, no evento "Mulheres com Bolsonaro" ao lado primeira-dama Michelle.

No vídeo postado em suas redes sociais, Damares afirma que não costuma ter medo de ameaças "mas essa me feriu muito porque encontrei minha filha chorando em casa", disse. A senadora eleita registrou um boletim de ocorrência na Delegacia Especial de Repressão a Crimes Cibernéticos em Brasília.

Damares também afirmou que não é a primeira ameaça que recebe e que sofre perseguição desde quando assumiu o Ministério. "Aquela perseguição não era porque eu era conservadora, mas porque eu era uma pastora evangélica, porque eu declarava a minha fé [...] Eles estão pregando morte a uma pastora".

'Perdeu 6 latas de banha e continua gorda': insultos que políticas aguentam

Universa reuniu parlamentares de diferentes cargos e espectros políticos na campanha #juntasnaurna, contra a violência política de gênero. Elas leram mensagens ofensivas e ameaçadoras que recebem frequentemente por meio de suas redes sociais e reagem a esses comentários.

Os depoimentos comprovam o que mostram as pesquisas: os principais alvos de ataques são grupos historicamente discriminados, como negros, mulheres, pessoas com religiões de matriz africana e população LGBTQIA+, entre outros.