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

Após Fifa endurecer contra racismo, Copa América alivia gritos homofóbicos

Jogadores do Brasil em jogo contra Bolívia na Copa América, no Morumbi - Lucas Lima/UOL
Jogadores do Brasil em jogo contra Bolívia na Copa América, no Morumbi Imagem: Lucas Lima/UOL

Danilo Lavieri, Gabriel Carneiro, Marcel Rizzo e Pedro Lopes

Do UOL, em Salvador

18/06/2019 12h00

A Fifa avisou a todos os seus filiados que vai ser mais rigorosa nas eliminatórias para a Copa do Mundo de 2022 com racismo e homofobia durante as partidas. O árbitro seguirá as orientações que já apareceram para o Mundial da Rússia, em 2018, e poderá até cancelar o jogo em situações mais graves.

Na Copa América, entretanto, atos como esses só devem ser avaliados em casos extremos. A previsão é de que o ocorrido na abertura da competição entre Brasil x Bolívia, na sexta-feira (14), e longe do Tribunal de Disciplina da Conmebol. Parte da torcida brasileira, principalmente no início da partida do Morumbi, gritava "bicha" quando o goleiro rival batia o tiro de meta.

O grito, importado de outros países latino-americanos e que virou moda em alguns estádios brasileiros nos últimos anos, já rendeu multas à seleção brasileira nas eliminatórias adas. Foram cinco punições, que desfalcaram o cofre da CBF em mais de R$ 480 mil. Mas o classificatório é organizado pela Fifa, não pela Conmebol, que normalmente é mais condescendente com esses casos. Em 2016, no ápice de multas às seleções sul-americanas, chegou a pedir para que as punições fossem diminuídas porque alguns gritos considerados homofóbicos eram culturais no futebol da região.

Mariano Zavala, diretor da unidade disciplinar da Conmebol, disse ao UOL Esporte que não poderia comentar sobre casos que poderiam ser avaliados pelo Tribunal de Disciplina. A reportagem apurou, entretanto, que no momento atitudes como a da abertura não estarão no radar e só entrarão em pauta em casos gravíssimos.

O procedimento disciplinar da Conmebol na Copa América é o mesmo feito nas competições de clubes, como Libertadores e Sul-Americana: o árbitro relata na súmula o problema, a Unidade Disciplinar da Conmebol avalia e rea para o Tribunal de Disciplina decidir se pune ou não.

O tribunal é formado por cinco membros, que estão nesta Copa América concentrados no Rio. Um deles é o brasileiro Antonio Carlos Meccia, que não pode atuar apenas em processos relacionados ao Brasil -- numa eventual análise dos gritos de "bicha" na estreia, por exemplo, ele estaria fora. Os demais membros são o paraguaio Eduardo Gross Brown, a venezuelana Amarilis Belisario, o chileno Cristóbal Valdéz e o argentino Diego Pirota.

O regulamento de disciplina da Conmebol prevê, em seu artigo 8, que as associações membro são responsáveis pelo comportamento de jogadores, treinadores e torcedores. Já o 13 diz que sanções podem ser dadas às associações em caso de comportamento inapropriado dos torcedores, em diversas situações, uma delas "o uso de gestos, palavras, ou outro meio para transmitir qualquer mensagem não apropriada em evento esportivo, particularmente de natureza politica, ofensiva ou provocativa". As palavras racismo e homofobia não existem nas regras da Conmebol, mas casos como a da abertura entrariam nesse artigo, segundo advogados ouvidos pela reportagem.

Enquanto isso, a Fifa promete punições mais rigorosas em casos mais graves e reincidências nas eliminatórias, que começa na América do Sul em março de 2020. Os árbitros estão liberados a interromper, suspender (com atletas nos vestiários) ou cancelar definitivamente a partidas em casos de ofensas graves por parte dos torcedores. Avisos nos telões e alto-falantes dos estádios pedirão para que os xingamentos parem e se isso não ocorrer o árbitro tem o poder de interromper o confronto. A punição, nesse caso, vai da perda dos pontos da partida até a eliminação da competição.