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

'Chamei reforço de 4 detetives em motos para flagrar traição de espertinha'

Sérgio Barros tem 18 anos de carreira como detetive - Arquivo pessoal
Sérgio Barros tem 18 anos de carreira como detetive Imagem: Arquivo pessoal

Luciana Cavalcante

Colaboração para o UOL

23/01/2023 04h00

Suspeitas de traição chegam com frequência a escritórios de investigadores particulares. Algumas são mais difíceis de desvendar e exigem até reforço. Para essas, nem o olho clínico da Shakira — que teria notado uma redução no pote de geleia — resolve. Ao UOL, o detetive Sérgio Barros, de 40 anos, 18 de carreira e mais de 7 mil casos investigados, conta um dos mais difíceis que atendeu, em Brasília. A história foi apelidada por ele de "a espertinha".

"Quando o marido entrou no meu escritório para solicitar uma investigação de infidelidade, foi logo avisando: 'minha esposa é muito esperta, não vão conseguir pegar ela'. Mas eu não achei que fosse tanto.

De cara ele disse que sabia os dias em que ocorria a traição pelo comportamento dela e pelas roupas que usava. Até que ligou avisando: 'é hoje, ela já se arrumou toda, se perfumou e vestiu lingerie sexy'.

No primeiro dia, a seguimos em um shopping em Brasília. Ela ficou mais de duas horas rodando as lojas, experimentando roupa, mas não comprava nada. No começo, pensei que isso fazia parte da rotina dela, até que, de repente, ela desceu até o subsolo e entrou em um carro.

Como não esperávamos e já que temos de manter uma certa distância da investigada para não levantar suspeita, perdemos o flagrante dela entrando no carro. Ainda assim, registramos a placa do veículo.

Esperamos ela voltar, pois havíamos estacionado o carro ao lado do dela, mas a mulher provavelmente deve ter descido em uma das entradas do shopping e ido andando até o estacionamento [não deu para saber de onde ela vinha].

Na segunda tentativa, já tinha pegado a manha dela. Decidi que dessa vez ela não escaparia. Liguei para três investigadores que trabalham comigo e fiquei na cola dela. Eles cercaram três saídas do shopping. Nisso, ela foi para a quarta saída e pegou um Uber.

Eu e os investigadores já estávamos chateados. Virou uma questão de honra pegar essa "espertinha". Chamei mais um reforço para ajudar na terceira vez. Coloquei quatro investigadores de moto, um em cada entrada do shopping, e ficamos em dois na cola dela.

Sérgio - Arquivo pessoal - Arquivo pessoal
O detetive Sérgio apelidou caso de 'a espertinha'
Imagem: Arquivo pessoal

Não teve erro. Ela foi por um lugar de onde nunca tinha saído e, quando chegou lá, tinha um investigador na moto esperando. Ele avisou todo mundo e foram quatro motos e um carro seguindo ela. Filmamos tudo: ela entrando no carro, todo o trajeto até o motel.

Conseguimos até entrar na baia onde o carro em que ela entrou estacionou no motel. Também conseguimos mostrar ela saindo do motel, filmando por meio do para-brisa, quando ela abriu a porta do carro. Não faltaram provas.

Quando contei das dificuldades de fazer o flagrante, o marido ainda disse: 'eu avisei que seria difícil'. No final ele agradeceu por tudo e chorou feito uma criança quando viu as imagens. Depois, contou que se separou dela."