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

Ex de modelo morta em 'jogo erótico' diz que assassino era obcecado por ela

Carol Maltesi adotou o nome de Charlotte Angie quando entrou no OnlyFans, até se aproximar do pornô profissional - Reprodução/ Facebook/ Carol Angie Deborah Maltesi
Carol Maltesi adotou o nome de Charlotte Angie quando entrou no OnlyFans, até se aproximar do pornô profissional Imagem: Reprodução/ Facebook/ Carol Angie Deborah Maltesi

De Splash, em São Paulo

08/04/2022 10h54

Salvatore Galdo, ex-namorado de Carol Maltesi, morta em janeiro com um martelo após um suposto "jogo erótico" na Itália, disse que o assassino da companheira era obcecado por ela.

Em entrevista ao canal de televisão italiano Rete 4, o ator pornô contou que o bancário Davide Fontana, que assumiu o crime, atrapalhava tudo o que ela fazia.

Ele era mórbido, era obcecado por ela, estava ligado a ela 24 horas por dia e a convenceu de que ela precisava dele.

"Ele não deixava ela ar tempo com o filho. [...] Tudo o que ela fazia, ele se metia. A Carol podia ter vindo morar comigo em Praga, eu adoraria", disse.

A vítima

Mais conhecida como Charlotte Angie, Carol Maltesi foi morta em janeiro deste ano em um chocante caso de feminicídio na Itália, após um suposto "jogo erótico". Seu corpo, porém, foi encontrado apenas em março pela polícia e estava cortado em várias partes. De acordo com o jornal inglês The Daily Star, a jovem estrela pornô do OnlyFans só foi reconhecida graças às suas tatuagens.

Mãe de um menino de seis anos, ela trabalhou como vendedora em uma loja de roupas e órios para sustentar o pequeno após se formar em design de moda, segundo o site italiano Affar Italiani. Carol saiu do último emprego em uma perfumaria quando na pandemia iniciou a carreira em plataformas de conteúdos adultos, conforme publicou o jornal italiano La Repubblica.

Ela se apresentava no Instagram como "artista" e "modelo" e, em 2020, publicou um vídeo por ocasião do Dia Mundial para a Eliminação da Violência Contra as Mulheres pedindo sororidade.

Veja os famosos 'só para maiores' que têm conta no OnlyFans