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

Homem que espancou jovem LGBT em PE é preso. "Estou aliviada", diz mãe

Jefferson e a mãe, Etiene, que fica grudada ao filho durante todo o dia - Arquivo Pessoal
Jefferson e a mãe, Etiene, que fica grudada ao filho durante todo o dia Imagem: Arquivo Pessoal

Talyta Vespa

De Universa

03/08/2019 16h35

Acusado de agredir e estuprar um jovem de 23 anos em Moreno, Pernambuco, Robson da Silva Alexandre foi preso na manhã de quinta-feira (1º). Ele estava foragido desde dezembro de 2018, quando agrediu brutalmente Jefferson Anderson Feijó. A família alega que o jovem foi vítima de homofobia.

Segundo o médico responsável pelo caso, o espancamento deixou uma série de fraturas e um traumatismo cranioencefálico que comprometeu gravemente as funções neurológicas do jovem. A mãe, Etiene, relembra a manhãzinha da última quinta-feira e a sequência de orações que fez para agradecer pela prisão do homem que colocou seu filho em uma cama. O quadro, segundo avaliação médica, pode ser revertido, dependendo dos tratamentos --mas também há chances de que se torne permanente.

"Estou feliz, muito feliz e aliviada. Agora, só peço que Deus me ajude a perdoar esse homem, mas é difícil, viu?", desabafa. O dia a dia de Etiene, de 50 anos, desde então, é todo voltado aos cuidados com o filho.

"Se eu saio um pouquinho e volto, ele já faz cara de raiva. Fica com raiva porque quer que eu fique sempre perto. Aí quando eu digo "Mamãe te ama, filho", ele pisca bastante os olhos. Não consigo ficar longe, ele fica feliz quando eu estou com ele".

Etiene já não dorme à noite -se aconchega numa poltrona no quarto destinado ao filho. Se ele respira mais forte, ela conta, acorda correndo e o abraça. "Eu coloco a mão no peito dele e ele se acalma". Todos os dias, ela levanta às quatro e meia para preparar os medicamentos que Jeff, como ela gosta de chamá-lo, toma pela manhã.

"Meu filho está reagindo ao tratamento, faz fisioterapia quatro vezes por semana e, amanhã, vem a fonoaudióloga para uma visita. A médica disse que ele entende tudo o que eu digo e faço. Agora, já mexe os pés e pisca. Nesse fim de semana, meu netinho, sobrinho do Jeff, está aqui. Ele não larga o tio. Fica toda hora acarinhando o pé dele", conta.

Quando precisa sair de casa, Etiene evita demorar mais que uma hora. Nesses momentos, quem cuida de Jeff é uma enfermeira. Ainda assim, ela prefere estar junto. "Ele se dá muito bem comigo, eu sou mãe, amor de mãe é um negócio gigante, enorme, então eu não posso ficar muito tempo longe. Se eu pudesse, daria minha respiração para ele. Ele é tudo para mim. Esses dias, minha cunhada chegou aqui e disse que cuidaria dele para que eu dormisse um pouco. Adivinha se eu consegui..."

Relembre o caso

Na noite do crime, Jefferson participava da tradicional festa em homenagem à padroeira de Moreno, cidade que fica a 22 quilômetros de Recife. Durante a noite, avisou aos amigos que precisava ir ao banheiro e, então, desapareceu. O grupo o encontrou horas depois, em um terreno.

Ele havia sido espancado e estava sem as roupas. Horas antes de ser agredido, os amigos disseram que o estudante foi ameaçado por um homem após negar um gole de bebida. O mesmo suspeito, Robson da Silva Alexandre, também teria sido visto no local das agressões momentos antes de Jefferson ser encontrado. O crime foi registrado como tentativa de homicídio em uma delegacia de Moreno.

Após a investigação, o Ministério Público apresentou em fevereiro uma denúncia contra o suspeito por estupro e assalto à mão armada. O Tribunal de Justiça de Pernambuco deu ordem de prisão a Alexandre, que só foi preso no começo deste mês.