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

Najila depõe no Rio em caso de fotos íntimas vazadas em vídeo de Neymar

Najila Trindade na Record - Reprodução/TV Record
Najila Trindade na Record Imagem: Reprodução/TV Record

Felipe Pereira

Do UOL, em São Paulo

11/09/2019 17h42Atualizada em 11/09/2019 18h41

A modelo Najila Trindade prestou depoimento hoje (11) na Delegacia de Repressão aos Crimes Virtuais, no Rio de Janeiro, no caso que apura uma postagem de Neymar no Instagram que continha fotos íntimas que enviara ao jogador antes do encontro em Paris. Ela respondeu perguntas do delegado por cerca de 20 minutos.

Durante o interrogatório, Najila afirmou ter enviado as fotos para Neymar, mas negou ter autorizado que ele as publicasse nas redes sociais. A modelo confirmou ter visto as imagens divulgadas pelo jogador pouco tempo depois de o caso de estupro vir à tona. A publicação foi retirada do ar dois dias depois pelo próprio Instagram por entender que o conteúdo "violava os padrões de comunidade".

Essa foi a primeira aparição de Najila depois da reviravolta no caso de estupro. Em São Paulo, ela acusou o atacante da seleção brasileira de violência sexual e terminou indiciada por três supostos crimes. O advogado da modelo, Cosme Araújo Santos, afirmou que a cliente está tranquila e mantém o discurso de que é a vítima. O ex-marido de Najila, Estivens Alves, também foi indiciado ontem pela polícia de São Paulo.

O advogado de Najila reclamou da Polícia Civil de São Paulo. A delegacia que investigou a denúncia de estupro feita pela modelo recebeu dois pedidos para tomar o depoimento dela no inquérito que corre na Delegacia de Repressão aos Crimes Virtuais. Em junho, foram enviadas as perguntas e até o momento não foram recebidas as respostas. Cosme ressaltou que a cliente esteve três vezes na delegacia de São Paulo.

O depoimento foi finalmente tomado nesta terça. Era esperado que Najila tivesse sido ouvida sobre o vazamento das imagens na última segunda-feira (9). A modelo, no entanto, pediu adiamento alegando motivos de saúde. O depoimento dela é a última etapa para a conclusão da investigação. "Tenho certeza de que Neymar será indiciado", afirmou ao UOL Esporte o advogado da modelo sobre o vazamento das imagens.

Esta investigação não tem ligação com as apurações ocorridas em São Paulo. O inquérito de estupro foi encerrado sem apontar culpa de Neymar por falta de provas e incongruências. Outros dois inquéritos derivados do original resultaram no indiciamento de Najila e de seu ex-marido, Estivens Alves.

A reportagem entrou em contato com o estafe do jogador, que disse que ele não se manifestaria.