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

Manchester United

Torcedor do Manchester United recolhe lixos após protesto em Old Trafford

Polícia intervém em protesto de torcedores do Manchester United no Estádio de Old Trafford - Oli Scarff/AFP
Polícia intervém em protesto de torcedores do Manchester United no Estádio de Old Trafford Imagem: Oli Scarff/AFP

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

04/05/2021 13h55

O último domingo, 2, ficou marcado pela invasão dos torcedores do Manchester United ao Old Trafford em manifestação contra os atuais donos do clube inglês. Os protestos se estenderam para as ruas e acabou até em confronto com a polícia local. Após o caos, uma imagem de um torcedor recolhendo os lixos deixados nos arredores do estádio chamou atenção.

No registro publicado por Nicole Deans, o senhor grisalho aparece com um saco de lixo preto nas mãos e recolhendo boa parte do que ficou no chão, como garrafas, sacolas, latas e outros resíduos.

O protesto em questão foi responsável pelo adiamento da partida entre Manchester United e Liverpool, pelo Campeonato Inglês, que poderia ter dado o título da competição para o Manchester City, caso os Reds Devils perdessem o confronto, os comandados de Guardiola conquistariam o troféu.

Em um comunicado divulgado em seu site, o clube inglês repudiou o ocorrido e classificou os atos de vandalismo como 'caso de polícia'.

Confira a nota oficial do Manchester United:

"Após os eventos de ontem, enquanto muitos torcedores queriam exercer seu direito de protestar e expressar sua opinião pacificamente, alguns pretendiam atrapalhar a preparação da equipe e o próprio jogo.

Relatos na mídia convencional e social de que os manifestantes conseguiram ar o estádio e o campo por meio de um portão aberto pela equipe do clube estão completamente incorretos.

Depois de quebrar barreiras e segurança no pátio, alguns manifestantes escalaram os portões no final do túnel de Munique, e em seguida, forçaram o o a uma porta lateral na arquibancada, antes de abrir uma porta externa que deixava outros arem para a área do saguão e o gramado .

Uma segunda violação ocorreu quando um manifestante quebrou a porta de um elevador de o para deficientes, permitindo que um grupo entrasse na arquibancada.

A maioria dos nossos torcedores condenou e condenará os danos criminais, juntamente com qualquer violência contra os funcionários do clube, a polícia ou outros torcedores, e isso agora se torna um caso de polícia. O clube não deseja que os manifestantes pacíficos sejam punidos, mas trabalhará com a polícia para identificar os envolvidos em atividades criminosas e também emitirá suas próprias sanções a qualquer portador de ingresso de temporada ou membro identificado, de acordo com a política de sanções publicada.

As informações sobre o agendamento do jogo e qualquer possível implicação em outros jogos serão anunciadas após discussão e acordo com a Premier League.

Continuamos comprometidos com o diálogo e envolvimento com nossos fãs por meio do Fórum de fãs e outros canais apropriados."

Manchester United