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

Scarpa árabe? Quem é jogador saudita comparado a ex-jogador do Palmeiras

Yasser Al-Shahrani (à esquerda) e Gustavo Scarpa (à direita) - Divulgação; Anderson Lira/TheNews2/Folhapress
Yasser Al-Shahrani (à esquerda) e Gustavo Scarpa (à direita) Imagem: Divulgação; Anderson Lira/TheNews2/Folhapress

Lorraine Perillo

Colaboração para o UOL

23/11/2022 10h37

Classificação e Jogos

Um jogador da Arábia Saudita chamou a atenção nesta terça-feira (22) não só por ter ajudado a seleção a conseguir vencer a Argentina na estreia da Copa do Qatar, mas por uma característica peculiar. Nas redes sociais, Yasser Al-Shahrani foi apelidado de "Scarpa árabe", pela semelhança com o ex-jogador do Palmeiras Gustavo Scarpa.

Até o palmeirense entrou na brincadeira: "Falei que ia conseguir...", comentou Gustavo Scarpa em uma publicação no Instagram sobre o jogador da Arábia Saudita. O brasileiro não foi convocado por Tite para defender a seleção.

A semelhança de Al-Shahrani com Scarpa também virou meme nas redes sociais. Torcedores do Palmeiras e outros fãs de futebol compartilharam fotos do árabe em comparação com Gustavo e brincaram que, mesmo que o brasileiro não tenha sido convocado, assumiu sua "origem" árabe e defendeu a camisa da seleção saudita.

Início sem gols e joelhada

Nascido em 1992 em Dammam, na Arábia Saudita, Yasser Al-Shahrani começou sua carreira no Al-Qadisiya Football Club, atuando nas categorias de base entre 2008 e 2010. Ele acabou foi para o futebol profissional, mas, em 31 jogos, não fez nenhum gol e deu apenas quatro assistências.

Em 2012, vestiu a camisa do Al-Hilal Football Club e conquistou todos os títulos da carreira até o momento, incluindo o pentacampeonato da Arábia Saudita (2017, 2018, 2020, 2021 e 2022); o tri da Copa Saudita (2015, 2017 e 2020); o tri da Supercopa da Arábia Saudita (2016, 2019 e 2022); e o bicampeonato da Champions League da Ásia (2019 e 2021).

Considerado o jogador que mais atuou em Copas e um dos mais experientes, com 60 partidas pela seleção árabe, Yasser ganhou notoriedade após marcar contra a Guatemala na Copa do Mundo Fifa Sub-20, em 2011, na Colômbia. Desde 2012, porém, o número 13 anotou apenas um gol com a camisa da Arábia Saudita, em um jogo de qualificação para a Copa contra a Palestina, em 2021.

Yasser Al-Shahrani - KIRILL KUDRYAVTSEV / AFP - KIRILL KUDRYAVTSEV / AFP
Yasser Al-Shahrani, da Arábia Saudita, no momento em que leva uma joelhada de seu próprio goleiro, Mohammed Al-Owais, durante partida contra a Argentina pela Copa
Imagem: KIRILL KUDRYAVTSEV / AFP

Nesta terça-feira, fez história ao tirar a invencibilidade de 36 jogos da Argentina. A partida terminou em 2 a 1 e foi considerada uma das maiores "zebras" do futebol de todos os tempos.

Apesar dessa vitória histórica, Yasser não conseguiu comemorar com os colegas. Tudo porque o goleiro do próprio time, Al-Owais, o acertou com uma joelhada na cabeça, fazendo com que ele desmaiasse e saísse de campo mais cedo, de maca.

Fora da Copa!

O embate entre Al-Owais e Al-Shahrani aconteceu em um dos últimos lances do jogo que garantiu a vitória da seleção árabe. Ele foi atendido ainda em campo e levado para um hospital próximo ao estádio, onde ou por exames.

Segundo relatórios divulgados, foram constatadas fraturas em alguns ossos da face, além de dentes quebrados. Por ordem do príncipe herdeiro Mohammed Bin Salman, Yasser será transferido para a Alemanha e todos os custos - tanto da viagem quanto do tratamento - serão financiados pelo governo saudita.