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

Paparazzi

Richarlyson, ex-jogador e comentarista da Globo, assume ser bissexual

Do UOL, em São Paulo (SP)

24/06/2022 09h53

O ex-meio-campista Richarlyson, multicampeão com a camisa do São Paulo e hoje comentarista do Grupo Globo, revelou pela primeira vez sua bissexualidade — atração romântica ou sexual voltada tanto a homens e mulheres, ou por mais de um sexo ou gênero.

"A vida inteira me perguntaram se sou gay. Eu já me relacionei com homem e já me relacionei com mulher também. Só que aí eu falo hoje aqui e daqui a pouco estará estampada a notícia: 'Richarlyson é bissexual'. E o meme já vem pronto. Dirão: 'Nossa, mas jura? Eu nem imaginava'. Cara, eu sou normal, eu tenho vontades e desejos. Já namorei homem, já namorei mulher, mas e aí? Vai fazer o quê? Nada", disse o comentarista em entrevista ao podcast 'Nos Armários dos Vestiários'.

"Vai pintar uma manchete que o Richarlyson falou em um podcast que é bissexual. Legal. E aí vai chover de reportagens, e o mais importante, que é pauta, não vai mudar, que é a questão da homofobia. Infelizmente, o mundo não está preparado para ter essa discussão e lidar com naturalidade com isso", acrescentou.

Richarlyson se tornou o primeiro jogador que atuou na Série A do Campeonato Brasileiro e na seleção a falar sobre o tema abertamente.

De acordo com os jornalistas do podcast, em nenhum momento Richarlyson foi questionado diretamente sobre a sua sexualidade — como em muitas vezes aconteceu na carreira do atleta.

"Pelo tanto de pessoas que falam que é importante meu posicionamento, hoje eu resolvi falar: sou bissexual. Se era isso que faltava, ok. Pronto. Agora eu quero ver se realmente vai melhorar, porque é esse o meu questionamento", afirmou.

A sexualidade de Richalyson virou debate público em junho de 2007, quando José Cyrillo Júnior, um dirigente do Palmeiras na época, insinuou em rede nacional que ele era gay.

Ricky registrou uma queixa-crime contra o cartola, e ele se desculpou publicamente. No entanto, Manoel Maximiniano Junqueira Filho, o juiz do caso, arquivou o processo alegando que não seriam aceitáveis homossexuais no futebol brasileiro porque prejudicaria o pensamento da equipe. Ele ainda citou na sentença que futebol era 'coisa de macho'.

"Isso, sim, me deixou muito triste porque em nenhum momento eu senti que aquilo era uma coisa normal. Era uma coisa muito pejorativa. Isso foi muito ruim não só para mim. Ser homossexual não é demérito para ninguém, e no futebol não deveria ser um assunto tão polêmico. Nunca deixei que isso atrapalhasse o que eu quero para minha vida, não vai ser uma frase, uma palavra, uma discussão ou um cara babaca que tentou de forma vulgar maltratar uma classe? Pelo amor de Deus, quanto sofrimento tem na classe LGBTQIA+?", concluiu.

Paparazzi