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

Influencer vende foto de puns no mercado de NFT: 'Pode cheirá-los na tela'

Influenciadora Stephanie Matto agora vende seus puns em NFTs - Reprodução/Instagram
Influenciadora Stephanie Matto agora vende seus puns em NFTs Imagem: Reprodução/Instagram

Colaboração para Splash, em Alagoas

11/01/2022 15h48

A influenciadora digital Stephanie Matto, que ficou conhecida por sua participação no reality show "90 Dias Para Casar" e, posteriormente por fazer fortuna comercializando seus puns em garrafas, agora vende as flatulências no mercado de NFTs devido a problemas de saúde gerados ao forçar o próprio organismo a soltar gases.

Segundo informações que constam em seu site pessoal, a influencer deixou de comercializar puns engarrafados para vender fotos com desenhos animados de seus gases no mercado de NFTs, que são basicamente tokens não fungíveis, e funcionam como ativos digitais, dentro do universo das criptomoedas.

A famosa criou um site que vende cinco mil jarro de NFT por 0,05 éter, o equivalente a US$ 191 (R$ 1.067, na atual cotação do dólar). Alguns potes dos puns virtuais podem ser trocados por puns da vida real, enquanto outros tokens podem ser resgatados por peças íntimas usadas, como calcinhas e lingeries.

"Esses NFTs são únicos e raros como meus potes de puns reais. Você pode praticamente cheirá-los através da tela e ver como eles são deliciosos. Use sua imaginação", escreveu a tiktoker em seu site.

Por fim, ela diz que esse comércio é uma forma de ir "contra a corrente" e mostrar que o comprador "não se importa com as opiniões de terceiros". "Agora é sua vez de fazer parte do meu império de puns", completou.

Influencer foi hospitalizada

Stephanie Matto precisou parar com seu empreendimento de vender puns engarrafados após ser hospitalizada devido ao esforço extremo para liberar as flatulências.

Ela precisou ar por um hospital nos Estados Unidos após ter sintomas compatíveis com um ataque cardíaco, mas foi diagnosticada com excesso de gases após exames de sangue e eletrocardiograma.

"Eu pensei estar infartando e que aqueles eram meus momentos finais. Eu estava exagerando", disse ela, segundo o Daily Star. "Ficou claro que o que eu estava sentindo não era um derrame ou ataque cardíaco, mas sim dores de gases muito intensas. Fui aconselhada a mudar minha dieta e tomar um medicamento supressor de gases, que efetivamente acabou com meu negócio", afirmou.