4.793.283 resultados, 29.450.556 comentarios, 1.037.175 imágenes, 80.044 vídeos, 86.434 noticias

Serie A - Primera Etapa 2021

La temporada finalizó el Martes, 20 Julio 2021.
17 Abr 21
02:00 Finalizado
Mushuc Runa Mushuc Runa 2-2 Barcelona SC Barcelona SC más información Jugadas destacadas 105
1' Byron Castillo
8' J. Bauman 2-0
2-1 45' M. Hoyos
2-2 71' M. Hoyos
81' J. Mendoza
89' G. Mastriani
17 Abr 21
22:00 Finalizado
Macará Macará 1-0 Orense Orense más información Jugadas destacadas 15
56' D. Angulo
68' S. Portocarrero 1-0
90' E. Carcelén
93' J. Pucheta
18 Abr 21
00:30 Finalizado
Aucas Aucas 1-3 CD Olmedo CD Olmedo más información Jugadas destacadas 7
0-1 33' J. Ayoví
0-2 56' J. Rezabala
0-3 68' M. Montaño
80' J. Gonzalez
86' J. Gonzalez 1-3
18 Abr 21
03:00 Finalizado
Guayaquil City Guayaquil City 2-2 Liga de Quito Liga de Quito más información Jugadas destacadas 23
16' M. Parrales 1-0
33' M. Parrales 2-0
2-1 38' L. Amarilla
2-2 68' M. Corozo
18 Abr 21
20:00 Finalizado
Deportivo Cuenca Deportivo Cuenca 0-1 Universidad Católica Universidad Católica más información Jugadas destacadas 13
0-1 71' E. Farías
94' E. Tovo
18 Abr 21
22:30 Finalizado
Independiente del Valle Independiente del Valle 2-1 9 de Octubre 9 de Octubre más información Jugadas destacadas 24
37' J. Escobar 1-0
1-1 40' M. Da Luz
78' O. Quiñonez
90' J. Murillo 2-1
19 Abr 21
01:00 Finalizado
CS Emelec CS Emelec 2-0 Técnico Universitario Técnico Universitario más información Jugadas destacadas 24
35' R. Caicedo 1-0
57' F. Barcelo 2-0
20 Abr 21
02:00 Finalizado
Manta Manta 1-2 Delfín Delfín más información Jugadas destacadas 37
0-1 6' R. Burbano
23' V. Angulo 1-1
1-2 74' Jhon Cifuente
Equipos Puntos J. G. E. P. F. C. Forma
1 CS Emelec CS Emelec 20 9 6 2 1 18 10
  • DERROTA
  • CS Emelec 0
  • 9 de Octubre 1
  • VICTORIA
  • CD Olmedo 2
  • CS Emelec 3
  • EMPATE
  • CS Emelec 1
  • Liga de Quito 1
  • VICTORIA
  • Universidad Católi. 2
  • CS Emelec 3
  • VICTORIA
  • CS Emelec 2
  • Técnico Universita. 0
2 Barcelona SC Barcelona SC 18 9 5 3 1 20 9
  • EMPATE
  • Liga de Quito 2
  • Barcelona SC 2
  • EMPATE
  • Barcelona SC 2
  • Independiente del. 2
  • DERROTA
  • Deportivo Cuenca 1
  • Barcelona SC 0
  • VICTORIA
  • Barcelona SC 3
  • Aucas 0
  • EMPATE
  • Mushuc Runa 2
  • Barcelona SC 2
3 Independiente del Valle Independiente 16 9 5 1 3 17 14
  • VICTORIA
  • Independiente del. 2
  • Delfín 0
  • VICTORIA
  • Técnico Universita. 0
  • Independiente del. 2
  • EMPATE
  • Barcelona SC 2
  • Independiente del. 2
  • VICTORIA
  • Independiente del. 2
  • 9 de Octubre 1
  • DERROTA
  • Independiente del. 2
  • Universidad Católi. 3
4 Mushuc Runa Mushuc Runa 15 9 4 3 2 15 10
  • EMPATE
  • Mushuc Runa 0
  • Macará 0
  • EMPATE
  • Liga de Quito 0
  • Mushuc Runa 0
  • VICTORIA
  • Mushuc Runa 4
  • CD Olmedo 0
  • VICTORIA
  • Orense 0
  • Mushuc Runa 2
  • EMPATE
  • Mushuc Runa 2
  • Barcelona SC 2
5 Universidad Católica Universidad 15 9 4 3 2 17 13
  • VICTORIA
  • Guayaquil City 1
  • Universidad Católi. 2
  • EMPATE
  • Universidad Católi. 1
  • Macará 1
  • DERROTA
  • Universidad Católi. 2
  • CS Emelec 3
  • VICTORIA
  • Deportivo Cuenca 0
  • Universidad Católi. 1
  • VICTORIA
  • Independiente del. 2
  • Universidad Católi. 3
6 Liga de Quito Liga de Quito 15 9 3 6 0 14 10
  • EMPATE
  • Liga de Quito 2
  • Barcelona SC 2
  • EMPATE
  • Liga de Quito 0
  • Mushuc Runa 0
  • EMPATE
  • CS Emelec 1
  • Liga de Quito 1
  • VICTORIA
  • Liga de Quito 1
  • Manta 0
  • EMPATE
  • Guayaquil City 2
  • Liga de Quito 2
7 Macará Macará 15 9 4 3 2 12 10
  • EMPATE
  • Mushuc Runa 0
  • Macará 0
  • EMPATE
  • Universidad Católi. 1
  • Macará 1
  • VICTORIA
  • Macará 3
  • 9 de Octubre 2
  • DERROTA
  • Delfín 2
  • Macará 0
  • VICTORIA
  • Macará 1
  • Orense 0
8 Delfín Delfín 13 9 3 4 2 11 10
  • DERROTA
  • Independiente del. 2
  • Delfín 0
  • EMPATE
  • Aucas 3
  • Delfín 3
  • EMPATE
  • Delfín 1
  • Deportivo Cuenca 1
  • VICTORIA
  • Delfín 2
  • Macará 0
  • VICTORIA
  • Manta 1
  • Delfín 2
9 Deportivo Cuenca Deportivo Cuenca 12 9 3 3 3 11 11
  • VICTORIA
  • Deportivo Cuenca 1
  • Orense 0
  • EMPATE
  • Delfín 1
  • Deportivo Cuenca 1
  • VICTORIA
  • Deportivo Cuenca 1
  • Barcelona SC 0
  • EMPATE
  • CD Olmedo 2
  • Deportivo Cuenca 2
  • DERROTA
  • Deportivo Cuenca 0
  • Universidad Católi. 1
10 9 de Octubre 9 de Octubre 10 9 3 1 5 14 14
  • VICTORIA
  • CS Emelec 0
  • 9 de Octubre 1
  • DERROTA
  • 9 de Octubre 1
  • Aucas 3
  • DERROTA
  • Macará 3
  • 9 de Octubre 2
  • VICTORIA
  • 9 de Octubre 4
  • Guayaquil City 0
  • DERROTA
  • Independiente del. 2
  • 9 de Octubre 1
11 Aucas Aucas 9 9 2 3 4 18 21
  • EMPATE
  • Manta 1
  • Aucas 1
  • EMPATE
  • Aucas 3
  • Delfín 3
  • VICTORIA
  • 9 de Octubre 1
  • Aucas 3
  • DERROTA
  • Barcelona SC 3
  • Aucas 0
  • DERROTA
  • Aucas 1
  • CD Olmedo 3
12 Técnico Universitario Técnico 9 9 2 3 4 6 9
  • EMPATE
  • Técnico Universita. 0
  • CD Olmedo 0
  • DERROTA
  • Técnico Universita. 0
  • Independiente del. 2
  • VICTORIA
  • Técnico Universita. 3
  • Guayaquil City 0
  • VICTORIA
  • Manta 0
  • Técnico Universita. 2
  • DERROTA
  • CS Emelec 2
  • Técnico Universita. 0
13 Manta Manta 8 9 2 2 5 11 16
  • EMPATE
  • Manta 1
  • Aucas 1
  • VICTORIA
  • Orense 0
  • Manta 1
  • DERROTA
  • Manta 0
  • Técnico Universita. 2
  • DERROTA
  • Liga de Quito 1
  • Manta 0
  • DERROTA
  • Manta 1
  • Delfín 2
14 Guayaquil City Guayaquil City 8 9 2 2 5 11 20
  • DERROTA
  • Guayaquil City 1
  • Universidad Católi. 2
  • VICTORIA
  • Guayaquil City 4
  • Orense 1
  • DERROTA
  • Técnico Universita. 3
  • Guayaquil City 0
  • DERROTA
  • 9 de Octubre 4
  • Guayaquil City 0
  • EMPATE
  • Guayaquil City 2
  • Liga de Quito 2
15 CD Olmedo CD Olmedo 6 9 1 3 5 7 17
  • EMPATE
  • Técnico Universita. 0
  • CD Olmedo 0
  • DERROTA
  • CD Olmedo 2
  • CS Emelec 3
  • DERROTA
  • Mushuc Runa 4
  • CD Olmedo 0
  • EMPATE
  • CD Olmedo 2
  • Deportivo Cuenca 2
  • VICTORIA
  • Aucas 1
  • CD Olmedo 3
16 Orense Orense 5 9 1 2 6 6 14
  • DERROTA
  • Deportivo Cuenca 1
  • Orense 0
  • DERROTA
  • Guayaquil City 4
  • Orense 1
  • DERROTA
  • Orense 0
  • Manta 1
  • DERROTA
  • Orense 0
  • Mushuc Runa 2
  • DERROTA
  • Macará 1
  • Orense 0
Series Finales : CS Emelec

La Serie A de Ecuador que por motivos de patrocinio es llamada desde 2013 con el nombre de Copa Pilsener, es el torneo oficial de fútbol de primera división realizado por la Federación Ecuatoriana de Fútbol.


  USO DE MEMORIA  
6,618,864 bytes
  BENCHMARKS  
Loading Time Base Classes  0.0019
Controller Execution Time ( Home / Category )  0.1410
Total Execution Time  0.1430
  CADENA URL  
/ecuador2021/grupo1/jornada9
  GET DATOS  
$_GET['/ecuador2021/grupo1/jornada9']  
  POST DATOS  
No hay datos POST existentes
  CONSULTAS (36)  
0.0018  SELECT type FROM routes WHERE alias = 'ecuador2021'
0.0038  SELECT c.*, l.*, '' as namec FROM leagues_webci l INNER JOIN categories_webci c ON l.categoryId = c.id WHERE c.alias = 'ecuador' AND (l.group_code = 1 OR l.group_code = 1 OR l.group_code = 0) AND l.year = 2021 ORDER BY l.year=c.active_year DESC,l.year DESC, l.group_code=1 DESC LIMIT 1
0.0018  SELECT total FROM bs_rel_resume_items WHERE ln = 'es' AND itemId=43 AND type_rel = 3
0.0034  SELECT rel.newId FROM bs_news_rel rel WHERE rel.type_rel = 3 AND rel.typeId = 43 AND rel.ln = 'es' AND rel.status=1 ORDER BY rel.creation_date desc,rel.cover_points DESC LIMIT 5
0.0021  SELECT /*53 bs_news_model*/ n.id, n.author_id, n.headline, n.external_headline, n.live_headline, n.creation_date, n.update_date, n.pub_date, n.alias, n.subheadline, n.teaser, n.media, n.tags, n.views, n.screens, n.clicks, n.relations, n.comments, n.power_cover, n.cover_points, u.name as user_name FROM bs_news n INNER JOIN bs_editors u ON u.id = n.author_id AND u.ln = 'es' WHERE n.status = 1 AND n.ln = 'es' AND n.id IN (1297904,1299685,1289627,1269214,1269123) ORDER BY n.cover_points DESC, update_date DESC
0.0020  SELECT dt.nameShow,dt.basealias,t.id,t.teamId FROM teams t INNER JOIN datateams dt ON t.teamId = dt.id WHERE t.league_id = 60928 ORDER BY dt.relations DESC, dt.nameShow ASC LIMIT 50
0.0020  SELECT c.id, c.name, c.alias, l.id AS league_id, l.year, l.group_code, l.total_group, c.id AS categoryId, c.stepParent FROM categories AS c INNER JOIN leagues AS l ON c.id=l.categoryId AND c.active_year=l.year WHERE c.id=189 ORDER BY l.group_code ASC
0.0018  SELECT url,page_views,page_title FROM rf_statcounter_popular_pages_hourly WHERE type=1 AND last_update > '2024-04-30 21:57:58' GROUP BY url ORDER BY page_views DESC LIMIT 5
0.0018  SELECT url,page_views,page_title FROM rf_statcounter_popular_pages_hourly WHERE type=2 AND last_update > '2024-04-30 21:57:58' GROUP BY url ORDER BY page_views DESC LIMIT 5
0.0018  SELECT url,page_views,page_title FROM rf_statcounter_popular_pages_hourly WHERE type=4 AND last_update > '2024-04-30 21:57:58' GROUP BY url ORDER BY page_views DESC LIMIT 5
0.0018  SELECT url,page_views,page_title FROM rf_statcounter_popular_pages_hourly WHERE type=3 AND last_update > '2024-04-30 21:57:58' GROUP BY url ORDER BY page_views DESC LIMIT 5
0.0023  SELECT c.*, l.*, '' as namec FROM leagues_webci l INNER JOIN categories_webci c ON l.categoryId = c.id WHERE c.alias = 'ecuador' AND (l.group_code = 0 OR l.group_code = 1 OR l.group_code = 0) AND l.year = 2021 ORDER BY l.year=c.active_year DESC,l.year DESC, l.group_code=0 DESC LIMIT 1
0.0024  SELECT e.action, count(e.action) as total, e.player_id FROM events2021 e WHERE e.league_id IN (60928) AND (e.action IN (1,2,11,12,13) ) GROUP BY e.player_id ORDER BY total DESC, e.player_id ASC LIMIT 20
0.0025  SELECT dp.name, dp.last_name, dp.nick,dp.CountryCode,dp.alias,rp.team_id,dt.nameShow,dt.short_name,dt.basealias,rp.player_id,rp.teamId,dp.role FROM dataplayers AS dp INNER JOIN rel_players AS rp ON rp.player_id=dp.id AND rp.league_id IN (60928) INNER JOIN datateams AS dt ON rp.teamId=dt.id WHERE dp.id IN (54582,319143,78477,210369,299667,376837,117244,221915,224229,71871,82272,94976,114849,122642,158995,245796,334838,393894,91865,136757) ORDER BY rp.in_squad = 1 DESC
0.0027  SELECT e.action, count(e.action) as total, e.player_id FROM events2021 e WHERE e.league_id IN (60928) AND (e.action IN (4,5) ) GROUP BY e.player_id ORDER BY total DESC, e.player_id ASC LIMIT 20
0.0028  SELECT dp.name, dp.last_name, dp.nick,dp.CountryCode,dp.alias,rp.team_id,dt.nameShow,dt.short_name,dt.basealias,rp.player_id,rp.teamId,dp.role FROM dataplayers AS dp INNER JOIN rel_players AS rp ON rp.player_id=dp.id AND rp.league_id IN (60928) INNER JOIN datateams AS dt ON rp.teamId=dt.id WHERE dp.id IN (135294,393894,72582,192194,304866,315514,844341,92847,117016,119382,130289,229049,229459,249740,314434,314691,333158,364883,638766,3134272) ORDER BY rp.in_squad = 1 DESC
0.0019  SELECT e.action, count(e.action) as total, e.player_id FROM events2021 e WHERE e.league_id IN (60928) AND (e.action IN (3,4) ) GROUP BY e.player_id ORDER BY total DESC, e.player_id ASC LIMIT 20
0.0027  SELECT dp.name, dp.last_name, dp.nick,dp.CountryCode,dp.alias,rp.team_id,dt.nameShow,dt.short_name,dt.basealias,rp.player_id,rp.teamId,dp.role FROM dataplayers AS dp INNER JOIN rel_players AS rp ON rp.player_id=dp.id AND rp.league_id IN (60928) INNER JOIN datateams AS dt ON rp.teamId=dt.id WHERE dp.id IN (161858,212968,234076,72582,78485,110223,119366,130742,136757,151390,161651,192194,212981,229049,231977,233343,246228,248684,249740,314409) ORDER BY rp.in_squad = 1 DESC
0.0021  SELECT e.action, count(e.action) as total, e.player_id FROM events2021 e WHERE e.league_id IN (60928) AND (e.action IN (22) ) GROUP BY e.player_id ORDER BY total DESC, e.player_id ASC LIMIT 20
0.0024  SELECT dp.name, dp.last_name, dp.nick,dp.CountryCode,dp.alias,rp.team_id,dt.nameShow,dt.short_name,dt.basealias,rp.player_id,rp.teamId,dp.role FROM dataplayers AS dp INNER JOIN rel_players AS rp ON rp.player_id=dp.id AND rp.league_id IN (60928) INNER JOIN datateams AS dt ON rp.teamId=dt.id WHERE dp.id IN (17194,314423,92846,110224,153025,240449,246181,248808,363758,368895,851475,54582,158995,198765,210369,224229,229459,275192,318450,325121) ORDER BY rp.in_squad = 1 DESC
0.0022  SELECT rp.lineup as total,p.name, p.last_name, p.nick,p.CountryCode,p.alias,rp.team_id,dt.nameShow,dt.short_name,dt.basealias,rp.player_id,rp.teamId,p.role FROM `rel_players` rp INNER JOIN dataplayers p ON p.id = rp.player_id INNER JOIN datateams dt ON dt.id = rp.teamId WHERE rp.league_id = 60928 AND rp.lineup > 0 ORDER BY rp.lineup DESC,p.pod DESC LIMIT 20
0.0064  SELECT rp.events as total,p.name, p.last_name, p.nick,p.CountryCode,p.alias,rp.team_id,dt.nameShow,dt.short_name,dt.basealias,rp.player_id,rp.teamId,p.role FROM `rel_players` rp INNER JOIN dataplayers p ON p.id = rp.player_id INNER JOIN datateams dt ON dt.id = rp.teamId WHERE rp.league_id = 60928 AND rp.events > 0 ORDER BY rp.events DESC,p.pod DESC LIMIT 20
0.0027  SELECT rel.media_id, rel.team1, rel.team2, m.name, m.type, m.lang, m.location, rel.id AS rel_id, m.url FROM rel_media_match AS rel INNER JOIN media AS m ON m.id=rel.media_id WHERE (m.lang='es' OR m.language='spanish') AND rel.active=1 AND rel.league_id=60928 AND rel.round=9
0.0019  SELECT u.id,u.user_name, esl.points,up.name,up.surname,up.nick,u.changeA FROM editor_stats_leagues esl INNER JOIN fa_user u ON u.id = esl.user_id INNER JOIN fa_user_profile up ON up.id = esl.user_id WHERE esl.league_id = 60928 AND esl.points > 0 ORDER BY esl.points DESC LIMIT 3
0.0018  SELECT count(esl.user_id) as cuenta FROM editor_stats_leagues esl INNER JOIN fa_user u ON u.id = esl.user_id INNER JOIN fa_user_profile up ON up.id = esl.user_id WHERE esl.league_id = 60928 AND esl.points > 0
0.0018  SELECT fau.user_name, c.*, NOW() as difference_time,creation_date FROM (leagues as l) INNER JOIN comments as c ON c.league_id = l.id LEFT JOIN fa_user fau ON fau.id = c.author_id WHERE c.creation_date > "2024-03-31" AND c.`active`= 1 and c.comment_id is null and c.lang = 1 AND l.`id` = 60928 ORDER BY creation_date DESC LIMIT 0, 10
0.0024  SELECT count(c.id) as cuenta FROM (leagues as l) INNER JOIN comments as c ON c.league_id = l.id WHERE c.creation_date > "2024-03-31" AND c.`active`= 1 and comment_id is null and c.lang = 1 AND l.`id` = 60928
0.0030  SELECT c.isVideo, c.id,c.team1, c.team2,c.extra,c.datateam1,c.datateam2,c.type, c.shedule, c.r1, c.r2, c.round, c.comments as total_comentarios, dt1.nameShow as team1_name, dt2.nameShow as team2_name, dt1.basealias as basealias1, dt2.basealias as basealias2,c.betId,c.betId_wh,c.betId_bwin,c.betId_marca,c.betId_888, c.betId_sportium, c.betId_marathon, c.finished, c.penaltis1, c.penaltis2, c.prorroga, c.status, c.minute, dt1.stadium as stadium_name FROM `calendars2021` as c INNER JOIN teams t1 ON t1.id = c.team1 AND t1.league_id = c.league_id INNER JOIN teams t2 ON t2.id = c.team2 AND t2.league_id = c.league_id INNER JOIN datateams as dt1 ON dt1.id = t1.teamId INNER JOIN datateams as dt2 ON dt2.id = t2.teamId WHERE c.`league_id` = 60928 AND c.`round` = 9 ORDER BY shedule ASC LIMIT 200
0.0031  SELECT ev.match_id,dp.alias,ev.minute,ev.action,ev.player_id,e.name,e.classf,dp.nick,rel.squadNumber,rel.player_id as playerId,rel.team_id,rel.teamId FROM events2021 ev INNER JOIN events e ON e.id = ev.action INNER JOIN calendars2021 c ON c.id = ev.match_id INNER JOIN rel_players rel ON rel.player_id = ev.player_id AND rel.league_id = 60928 AND (ev.team1id=rel.team_id OR ev.team2id=rel.team_id) INNER JOIN dataplayers dp ON dp.id = rel.player_id WHERE ev.match_id IN (263750,263757,263756,263752,263753,263751,263754,263755) AND ev.action in (1,2,3,4,6,11,12,13,15) ORDER BY ev.minute ASC
0.0024  SELECT (dt1.qod+dt2.qod+dt1.relations+dt2.relations) as total,c.r1,c.r2,e.action,ev.showName as eventName,ev.largeName,ev.main_action,ev.keyname,ev.classf,e.real_date,e.minute, dp.nick,dp.CountryCode,dp.alias,c.datateam1,c.datateam2,dt1.nameShow as nameShow1,dt2.nameShow as nameShow2,dt1.basealias as basealias1,dt2.basealias as basealias2,e.player_id,e.match_id FROM `events2021` e INNER JOIN calendars2021 c ON c.id = e.match_id INNER JOIN events ev ON ev.id = e.action INNER JOIN dataplayers dp ON dp.id = e.player_id INNER JOIN datateams dt1 ON dt1.id = c.datateam1 INNER JOIN datateams dt2 ON dt2.id = c.datateam2 WHERE ev.main_action = 1 AND c.round = 9 AND e.real_date IS NOT NULL AND e.league_id = 60928 ORDER BY total DESC LIMIT 40
0.0046  SELECT t.*,dt.nameShow,dt.basealias,dt.id as teamId,(cast(t.gf as signed) - cast(t.ga as signed) + 100) as diff,team.teamId FROM `tables2021` as t INNER JOIN teams as team ON team.id = t.team INNER JOIN datateams as dt ON team.teamId = dt.id WHERE t.league_id = 60928 AND t.round = 8 ORDER BY team.conference ASC,t.position ASC,t.points DESC,t.priority DESC, diff DESC, t.gf DESC, dt.nameShow ASC
0.0020  SELECT *,(cast(t.gf as signed) - cast(t.ga as signed) + 100) as diff,team.teamId FROM `tables2021` as t INNER JOIN teams as team ON team.id = t.team INNER JOIN datateams as dt ON team.teamId = dt.id WHERE t.league_id = 60928 AND t.round = 9 ORDER BY team.conference ASC,t.position ASC,t.points DESC,t.priority DESC, diff DESC, t.gf DESC, dt.nameShow ASC
0.0019  SELECT distinct(shedule), round FROM `calendars2021` as c WHERE c.`league_id` = 60928 AND shedule >= '2021/04/01' AND shedule < '2021/05/01' ORDER BY shedule ASC
0.0018  SELECT c.id, 2024 AS year, IF(l.tables = 1 AND t1.points>0,((t1.points / (l.current_round * 3)) + (t2.points / (l.current_round * 3)))/2 * ct.coefficient,0.7 * ct.coefficient) as fcoef FROM `calendars2024` AS c INNER JOIN `leagues` AS l ON c.`league_id` = l.`id` INNER JOIN `categories` AS ct ON ct.`id` = l.`categoryId` LEFT JOIN tables2024 AS t1 ON t1.team = c.team1 AND t1.round = l.current_round LEFT JOIN tables2024 AS t2 ON t2.team = c.team2 AND t2.round = l.current_round WHERE c.`shedule` > '2024-04-30 00:00:00' AND c.`shedule` < '2024-05-04 23:59:59' AND l.id = 60928 ORDER BY c.shedule ASC, fcoef DESC LIMIT 5
0.0028  SELECT data1, data2 FROM services_tags WHERE categoryId=43
0.0028  SELECT group_code, extraName from `leagues` WHERE categoryId=43 AND year=2021