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

Fifa determina que Rússia jogue sem hino e bandeira e com outro nome

Fachada da sede da Fifa, em Zurique, no dia em que a polícia do país europeu prendeu sete dirigentes acusados de corrupção - AFP PHOTO / FABRICE COFFRINI
Fachada da sede da Fifa, em Zurique, no dia em que a polícia do país europeu prendeu sete dirigentes acusados de corrupção Imagem: AFP PHOTO / FABRICE COFFRINI

Colaboração para o UOL, em São Paulo

27/02/2022 16h19

A Fifa divulgou na tarde de hoje (27) suas primeiras medidas após a invasão russa na Ucrânia. A entidade máxima do futebol condenou a ação e determinou que o país atue sem hino e bandeira. Assim como nos últimos Jogos Olímpicos, o país atuará com outra denominação: 'União Russa de Futebol'.

Além das restrições do nome do país e do uso da bandeira, nenhuma competição internacional será disputada no território da Rússia. Ou seja, a seleção terá que mandar seus jogos em território neutro e sem espectadores.

As medidas do conselho da Fifa foram tomadas em coordenação com a Uefa e com os seis presidentes de Confederações. Elas também seguem as recomendações do COI (Comitê Olímpico Internacional). Medidas ou sanções adicionais, incluindo uma possível exclusão das competições, não estão descartadas no futuro próximo.

Os pedidos da Federação Polonesa de Futebol, da Associação de Futebol da República Tcheca e da Federação Sueca de Futebol de não enfrentar a Rússia na repescagem da Copa do Qatar, por causa da invasão na Ucrânia, pressionaram a Fifa, que afirma ter dialogado com as associações. Ela ainda informa manter contato próximo para buscar soluções adequadas e aceitáveis em conjunto.

Contudo, Cezary Kulesza, presidente da Federação Polonesa, divulgou em suas redes sociais que não aceita a decisão e que não tem intenção de entrar em campo contra os russos. As duas seleções têm jogo marcado pela repescagem para o dia 22 de março. "Não estamos interessados em participar deste jogo de aparências. Nossa postura permanece intacta: a seleção polonesa não jogará com a Rússia, não importa qual seja o nome da equipe", postou no Twitter.

No comunicado divulgado, a Fifa criticou o uso de força e disse que se solidariza com as vítimas da situação, classificada como chocante e preocupante pelo órgão. "A violência nunca é uma solução e a Fifa expressa sua mais profunda solidariedade a todas as pessoas afetadas pelo que está acontecendo na Ucrânia", dizia.

A entidade também reforçou o pedido pela volta da paz no local e garantiu estar em contato com a Associação Ucraniana de Futebol. Além disso, membros da comunidade ucraniana de futebol também estão sendo amparados pela Fifa, caso queiram deixar o país. "O movimento esportivo deve estar unido em suas decisões sobre este tema e que o esporte deve continuar sendo um vetor de paz e esperança", afirmou na nota.