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

Jeff Machado: perfil posta homenagem com os cães do ator

Novos donos fizeram fotos para mostrar que os cachorros de Jeff Machado estão bem - Reprodução/Instagram
Novos donos fizeram fotos para mostrar que os cachorros de Jeff Machado estão bem Imagem: Reprodução/Instagram

De Splash, em São Paulo

27/05/2023 11h45Atualizada em 27/05/2023 14h19

O perfil da rede social de Jeff Machado, atualmente istrado por uma amiga do ator, postou uma sequência de fotos de despedida e homenagem. Já com novos donos, os cachorros que eram de ator posaram para um ensaio que foi legendado com recados ao "pai" dos pets.

"Papai, descanse em paz, estou bem e agora tenho um irmãozão novo pra cuidar de mim", "avisa" um dos cães de Jeff, acompanhado de um outro cachorro. "Jeff Machado, descanse em paz", deseja uma placa pendurada em outro dos cachorros.

Os cachorros de Jeff Machado foram uma das peças-chave na investigação do desaparecimento do ator, que teve o corpo encontrado dentro de um baú, na quarta-feira (24), após quatro meses de buscas.

Ele tinha oito cães de raça: um spitz alemão, um chow chow e seis setter. Todos tinham nomes de ícones da música brasileira — Gilberto Gil, Vinicius de Moraes, Miúcha, Nando Reis, Caetano Veloso, Rita Lee, Nara Leão e Cazuza. Dois morreram, cinco estão em novos lares adotivos e um ainda não foi localizado.

Desde que Jeff desapareceu, no dia 27 de janeiro, eles estavam abandonados na rua, e a busca pelos animais forneceu aos investigadores pistas sobre o que havia acontecido com o ator.

Na noite de 31 de janeiro, a ONG Indefesos recebeu o primeiro chamado sobre a situação dos cães. A instituição resgatou dois deles em Paciência (RJ) e, através do chip de identificação, concluiu que o dono era Jeff Machado.

A ONG, então, entrou em contato com um homem que dizia ser o ator. No dia 1º de fevereiro, ele afirmou que estava trabalhando em outro estado e havia deixado os cães sob os cuidados de uma amiga. Começou, então, a busca pelos outros cachorros.

Nos dois dias seguintes, mais três cães foram resgatados e uma foi encontrada atropelada. Era uma cadela setter chamada Rita Lee, que foi atropelada em Campo Grande — mesma região onde o corpo de Jeff Machado foi encontrado nesta semana. No mesmo dia, um homem entrou em contato com a ONG dizendo que Jeff havia abandonado os cachorros com sua ajuda.

No dia 06 de fevereiro, a ONG foi à polícia denunciar o abandono. Nesse momento, a família já suspeitava que Jeff havia desaparecido e que havia alguém se ando por ele.

Três dias depois, Jeff foi declarado oficialmente desaparecido pela polícia. Desde então, a DDPA (Delegacia de Descoberta de Paradeiros) investiga as circunstâncias de seu desaparecimento.

Cinco cachorros resgatados sobreviveram e já foram adotados com a autorização da família de Jeff. Além de Rita Lee, Caetano Veloso, outro cão da raça setter, também morreu — ele foi encontrado em estado crítico de saúde e morreu numa clínica veterinária. Um dos cachorros, Gilberto Gil, ainda não foi localizado.

Além do velório, que acontece desde as 8h30, a família de Jeff Machado também vai promover uma missa aberta ao público em homenagem ao ator. A cerimônia está marcada para as 13h30, e será transmitida no Instagram de Jeff.

O corpo foi transportado do Rio à cidade natal do artista de carro. O traslado aéreo foi vetado pelo estado de decomposição do corpo e também por questões de segurança, já que a causa da morte ainda não foi definida.