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

Libertadores - 2022

Libertadores: Conmebol muda regra e faz Athletico virar cabeça de chave

Troféu conquistado pelo Palmeiras neste ano volta a estar em jogo a partir de fevereiro - Divulgação/Conmebol
Troféu conquistado pelo Palmeiras neste ano volta a estar em jogo a partir de fevereiro Imagem: Divulgação/Conmebol

Do UOL, em São Paulo

19/12/2021 16h17

Uma pequena mudança no regulamento específico da Copa Libertadores de 2022 vai permitir que o Athletico apareça no pote 1 do sorteio da fase de grupos e, ao mesmo tempo, colocar o Corinthians na mira de argentinos e uruguaios.

O novo regulamento foi divulgado pela Conmebol na tarde de hoje (19). Nele, há uma ligeira alteração em relação a anos anteriores: desta vez o atual campeão da Copa Sul-Americana (no caso, o Athletico), deixa de ter obrigatoriedade de compor o pote 2 do sorteio dos grupos. O critério a a ser unicamente o do ranking de clubes do continente, o que faz o time paranaense "subir" para o pote 1.

Como consequência, o Athletico vira cabeça de chave dos grupos da Libertadores 2022, não corre mais risco de enfrentar Boca Juniors ou River Plate nesta fase e, ao menos na teoria, deve ter uma chave mais ível para avançar nas oitavas de final.

Com esta mudança, o Cerro Porteño (PAR) fica no pote 2 -é a única alteração na projeção feita nos últimos dias sobre os potes do sorteio. Desta forma, o Brasil a a ter quatro representantes entre os oito cabeças de chave na competição, incluindo Atlético-MG, Flamengo e Palmeiras.

A notícia só não parece tão boa para o Corinthians, que neste cenário vê aumentar as chances de cair no grupo de Boca ou River. A probabilidade de enfrentar um dos dois na fase de grupos era de 40%, mas a mudança de regulamento fez subir a 50%, a mesma de pegar Nacional ou Peñarol, ambos do Uruguai -as regras proíbem o Alvinegro nos grupos de um cabeça de chave brasileiro.

O primeiro sorteio da Copa Libertadores 2022 acontece amanhã (20), para definir o chaveamento das fases preliminares. É aí que América-MG e Fluminense já conhecerão seus possíveis adversários na segunda fase, na qual ambos estreiam na competição. Os jogos das fases preliminares vão de 9 de fevereiro a 16 de março; o sorteio dos grupos acontece em 23 de março.

Confira a projeção dos potes do sorteio:

Pote 1: Atlético-MG, Athletico, Flamengo, Palmeiras, Boca Juniors (ARG), Nacional (URU), Peñarol (URU) e River Plate (ARG).

Pote 2: Corinthians, Cerro Porteño (PAR), Colo-Colo (CHI), Emelec (EQU), Independiente del Valle (EQU), Libertad (PAR), Universidad Católica (CHI) e Vélez Sarsfield (ARG).

Pote 3: RB Bragantino, Alianza Lima (PER), Caracas (VEN), Colón (ARG), Dep. Táchira (VEN), Sporting Cristal (PER) e Tolima (COL). Millonarios ou Deportivo Cali ficam com a oitava vaga, a depender do desenrolar do Campeonato Colombiano.

Pote 4: Fortaleza, Always Ready (BOL), Independiente Petrolero (BOL), Talleres (ARG) e quatro times da chamada "pré-Libertadores".

Errata: este conteúdo foi atualizado
Diferentemente do informado, o Tolima é um time da Colômbia, não da Venezuela.