Shortcuts

Tutorial for Human Pose Estimation

In[1]:

import yaml
import torch
import torch.nn as nn
from tqdm import tqdm
import os

Dataset with MetaFi:

Point cloud Pose reconstruction dataset collected by Ti 6843 mmWave radar. 40 subjects are included and the human poses are obtained by 2 RGB camera. We provide cross-subject experiment settings with all daily activities. In the library, we provide a dataloader to use mmWave PC data, and predict these human poses.

Load the data

In[3]:

from pysensing.mmwave.PC.dataset.hpe import load_hpe_dataset
# The path contains the radHAR dataset

train_dataset, test_dataset = load_hpe_dataset("MetaFi")
Try to download MetaFi dateset in /home/kemove/yyz/av-gihub/tutorials/mmwave_PC_source/mmfi
Downloading MetaFi to /home/kemove/yyz/av-gihub/tutorials/mmwave_PC_source/mmfi.zip...

Downloading:   0%|          | 0.00/260M [00:00<?, ?iB/s]
Downloading:   0%|          | 410k/260M [00:00<01:07, 3.86MiB/s]
Downloading:   0%|          | 1.08M/260M [00:00<00:47, 5.46MiB/s]
Downloading:   1%|          | 1.74M/260M [00:00<00:43, 5.88MiB/s]
Downloading:   1%|          | 2.33M/260M [00:00<00:51, 5.01MiB/s]
Downloading:   1%|          | 2.85M/260M [00:00<00:57, 4.50MiB/s]
Downloading:   1%|▏         | 3.31M/260M [00:00<01:08, 3.75MiB/s]
Downloading:   1%|▏         | 3.71M/260M [00:00<01:23, 3.08MiB/s]
Downloading:   2%|▏         | 4.05M/260M [00:01<02:06, 2.01MiB/s]
Downloading:   2%|▏         | 4.31M/260M [00:01<02:39, 1.60MiB/s]
Downloading:   2%|▏         | 4.51M/260M [00:01<03:16, 1.30MiB/s]
Downloading:   2%|▏         | 4.68M/260M [00:02<03:41, 1.15MiB/s]
Downloading:   2%|▏         | 4.82M/260M [00:02<04:10, 1.02MiB/s]
Downloading:   2%|▏         | 4.93M/260M [00:02<04:18, 986kiB/s]
Downloading:   2%|▏         | 5.04M/260M [00:02<04:19, 982kiB/s]
Downloading:   2%|▏         | 5.15M/260M [00:02<04:55, 862kiB/s]
Downloading:   2%|▏         | 5.24M/260M [00:02<05:06, 830kiB/s]
Downloading:   2%|▏         | 5.32M/260M [00:02<05:06, 828kiB/s]
Downloading:   2%|▏         | 5.41M/260M [00:03<05:22, 787kiB/s]
Downloading:   2%|▏         | 5.51M/260M [00:03<05:19, 795kiB/s]
Downloading:   2%|▏         | 5.59M/260M [00:03<05:26, 777kiB/s]
Downloading:   2%|▏         | 5.67M/260M [00:03<05:47, 730kiB/s]
Downloading:   2%|▏         | 5.78M/260M [00:03<05:14, 806kiB/s]
Downloading:   2%|▏         | 5.87M/260M [00:03<05:24, 783kiB/s]
Downloading:   2%|▏         | 5.95M/260M [00:03<05:35, 756kiB/s]
Downloading:   2%|▏         | 6.02M/260M [00:03<05:34, 759kiB/s]
Downloading:   2%|▏         | 6.10M/260M [00:04<05:59, 706kiB/s]
Downloading:   2%|▏         | 6.18M/260M [00:04<06:02, 699kiB/s]
Downloading:   2%|▏         | 6.28M/260M [00:04<05:38, 748kiB/s]
Downloading:   2%|▏         | 6.37M/260M [00:04<05:29, 769kiB/s]
Downloading:   2%|▏         | 6.46M/260M [00:04<05:50, 722kiB/s]
Downloading:   3%|▎         | 6.55M/260M [00:04<05:28, 770kiB/s]
Downloading:   3%|▎         | 6.63M/260M [00:04<05:40, 743kiB/s]
Downloading:   3%|▎         | 6.71M/260M [00:04<05:57, 708kiB/s]
Downloading:   3%|▎         | 6.78M/260M [00:04<06:01, 699kiB/s]
Downloading:   3%|▎         | 6.86M/260M [00:05<06:05, 691kiB/s]
Downloading:   3%|▎         | 6.93M/260M [00:05<09:20, 451kiB/s]
Downloading:   3%|▎         | 6.99M/260M [00:06<18:48, 224kiB/s]
Downloading:   3%|▎         | 7.03M/260M [00:06<17:36, 239kiB/s]
Downloading:   3%|▎         | 7.07M/260M [00:06<20:38, 204kiB/s]
Downloading:   3%|▎         | 7.10M/260M [00:07<31:19, 134kiB/s]
Downloading:   3%|▎         | 7.13M/260M [00:07<36:30, 115kiB/s]
Downloading:   3%|▎         | 7.15M/260M [00:07<39:52, 105kiB/s]
Downloading:   3%|▎         | 7.16M/260M [00:07<38:59, 108kiB/s]
Downloading:   3%|▎         | 7.18M/260M [00:07<39:23, 107kiB/s]
Downloading:   3%|▎         | 7.21M/260M [00:08<33:15, 126kiB/s]
Downloading:   3%|▎         | 7.24M/260M [00:08<26:48, 157kiB/s]
Downloading:   3%|▎         | 7.27M/260M [00:08<24:16, 173kiB/s]
Downloading:   3%|▎         | 7.32M/260M [00:08<19:09, 219kiB/s]
Downloading:   3%|▎         | 7.35M/260M [00:08<26:51, 156kiB/s]
Downloading:   3%|▎         | 7.39M/260M [00:08<23:30, 179kiB/s]
Downloading:   3%|▎         | 7.45M/260M [00:09<16:35, 253kiB/s]
Downloading:   3%|▎         | 7.52M/260M [00:09<12:43, 330kiB/s]
Downloading:   3%|▎         | 7.59M/260M [00:09<10:54, 385kiB/s]
Downloading:   3%|▎         | 7.65M/260M [00:09<09:22, 447kiB/s]
Downloading:   3%|▎         | 7.73M/260M [00:09<08:01, 522kiB/s]
Downloading:   3%|▎         | 7.80M/260M [00:09<07:57, 527kiB/s]
Downloading:   3%|▎         | 7.88M/260M [00:09<07:05, 591kiB/s]
Downloading:   3%|▎         | 7.96M/260M [00:09<06:37, 632kiB/s]
Downloading:   3%|▎         | 8.03M/260M [00:10<07:30, 559kiB/s]
Downloading:   3%|▎         | 8.09M/260M [00:10<08:40, 483kiB/s]
Downloading:   3%|▎         | 8.18M/260M [00:10<07:14, 578kiB/s]
Downloading:   3%|▎         | 8.27M/260M [00:10<06:25, 652kiB/s]
Downloading:   3%|▎         | 8.44M/260M [00:10<04:40, 895kiB/s]
Downloading:   3%|▎         | 8.60M/260M [00:10<03:53, 1.07MiB/s]
Downloading:   3%|▎         | 8.80M/260M [00:10<03:11, 1.31MiB/s]
Downloading:   3%|▎         | 8.95M/260M [00:10<03:14, 1.29MiB/s]
Downloading:   4%|▎         | 9.22M/260M [00:10<02:30, 1.67MiB/s]
Downloading:   4%|▎         | 9.40M/260M [00:11<02:31, 1.65MiB/s]
Downloading:   4%|▍         | 9.75M/260M [00:11<01:56, 2.15MiB/s]
Downloading:   4%|▍         | 9.97M/260M [00:11<01:57, 2.13MiB/s]
Downloading:   4%|▍         | 10.2M/260M [00:11<02:00, 2.07MiB/s]
Downloading:   4%|▍         | 10.4M/260M [00:11<02:07, 1.95MiB/s]
Downloading:   4%|▍         | 10.6M/260M [00:11<02:22, 1.75MiB/s]
Downloading:   4%|▍         | 10.8M/260M [00:11<02:18, 1.79MiB/s]
Downloading:   4%|▍         | 11.0M/260M [00:11<02:31, 1.64MiB/s]
Downloading:   4%|▍         | 11.2M/260M [00:11<02:34, 1.61MiB/s]
Downloading:   4%|▍         | 11.4M/260M [00:12<02:26, 1.69MiB/s]
Downloading:   4%|▍         | 11.6M/260M [00:12<02:27, 1.69MiB/s]
Downloading:   5%|▍         | 11.7M/260M [00:12<02:30, 1.64MiB/s]
Downloading:   5%|▍         | 11.9M/260M [00:12<03:04, 1.35MiB/s]
Downloading:   5%|▍         | 12.0M/260M [00:12<03:01, 1.36MiB/s]
Downloading:   5%|▍         | 12.2M/260M [00:12<03:09, 1.30MiB/s]
Downloading:   5%|▍         | 12.3M/260M [00:12<03:11, 1.29MiB/s]
Downloading:   5%|▍         | 12.5M/260M [00:13<03:43, 1.11MiB/s]
Downloading:   5%|▍         | 12.6M/260M [00:13<03:54, 1.05MiB/s]
Downloading:   5%|▍         | 12.7M/260M [00:13<03:59, 1.03MiB/s]
Downloading:   5%|▍         | 12.8M/260M [00:13<04:19, 951kiB/s]
Downloading:   5%|▍         | 12.9M/260M [00:13<04:30, 911kiB/s]
Downloading:   5%|▌         | 13.0M/260M [00:13<04:30, 911kiB/s]
Downloading:   5%|▌         | 13.1M/260M [00:13<04:46, 861kiB/s]
Downloading:   5%|▌         | 13.2M/260M [00:13<04:39, 881kiB/s]
Downloading:   5%|▌         | 13.3M/260M [00:13<04:19, 949kiB/s]
Downloading:   5%|▌         | 13.4M/260M [00:14<04:52, 840kiB/s]
Downloading:   5%|▌         | 13.5M/260M [00:14<04:44, 866kiB/s]
Downloading:   5%|▌         | 13.6M/260M [00:14<04:40, 877kiB/s]
Downloading:   5%|▌         | 13.7M/260M [00:14<04:41, 874kiB/s]
Downloading:   5%|▌         | 13.8M/260M [00:14<04:14, 967kiB/s]
Downloading:   5%|▌         | 13.9M/260M [00:14<04:28, 916kiB/s]
Downloading:   5%|▌         | 14.0M/260M [00:14<04:21, 939kiB/s]
Downloading:   5%|▌         | 14.1M/260M [00:14<04:16, 957kiB/s]
Downloading:   5%|▌         | 14.3M/260M [00:14<04:08, 988kiB/s]
Downloading:   6%|▌         | 14.4M/260M [00:15<04:11, 975kiB/s]
Downloading:   6%|▌         | 14.5M/260M [00:15<03:41, 1.11MiB/s]
Downloading:   6%|▌         | 14.6M/260M [00:15<03:29, 1.17MiB/s]
Downloading:   6%|▌         | 14.8M/260M [00:15<03:39, 1.12MiB/s]
Downloading:   6%|▌         | 14.9M/260M [00:15<03:48, 1.07MiB/s]
Downloading:   6%|▌         | 15.0M/260M [00:15<04:01, 1.01MiB/s]
Downloading:   6%|▌         | 15.1M/260M [00:15<04:26, 919kiB/s]
Downloading:   6%|▌         | 15.2M/260M [00:15<04:39, 873kiB/s]
Downloading:   6%|▌         | 15.3M/260M [00:16<04:46, 852kiB/s]
Downloading:   6%|▌         | 15.4M/260M [00:16<04:42, 864kiB/s]
Downloading:   6%|▌         | 15.5M/260M [00:16<04:38, 878kiB/s]
Downloading:   6%|▌         | 15.6M/260M [00:16<04:37, 878kiB/s]
Downloading:   6%|▌         | 15.7M/260M [00:16<05:05, 798kiB/s]
Downloading:   6%|▌         | 15.7M/260M [00:16<05:02, 806kiB/s]
Downloading:   6%|▌         | 15.9M/260M [00:16<04:34, 886kiB/s]
Downloading:   6%|▌         | 16.0M/260M [00:16<04:10, 974kiB/s]
Downloading:   6%|▌         | 16.1M/260M [00:16<03:54, 1.04MiB/s]
Downloading:   6%|▋         | 16.2M/260M [00:17<04:05, 992kiB/s]
Downloading:   6%|▋         | 16.3M/260M [00:17<04:05, 990kiB/s]
Downloading:   6%|▋         | 16.4M/260M [00:17<04:05, 991kiB/s]
Downloading:   6%|▋         | 16.5M/260M [00:17<04:06, 984kiB/s]
Downloading:   6%|▋         | 16.6M/260M [00:17<04:24, 919kiB/s]
Downloading:   6%|▋         | 16.8M/260M [00:17<04:10, 969kiB/s]
Downloading:   7%|▋         | 16.9M/260M [00:17<03:44, 1.08MiB/s]
Downloading:   7%|▋         | 17.1M/260M [00:17<03:28, 1.17MiB/s]
Downloading:   7%|▋         | 17.2M/260M [00:17<03:42, 1.09MiB/s]
Downloading:   7%|▋         | 17.3M/260M [00:18<03:42, 1.09MiB/s]
Downloading:   7%|▋         | 17.4M/260M [00:18<03:56, 1.02MiB/s]
Downloading:   7%|▋         | 17.5M/260M [00:18<04:24, 917kiB/s]
Downloading:   7%|▋         | 17.6M/260M [00:18<03:57, 1.02MiB/s]
Downloading:   7%|▋         | 17.8M/260M [00:18<03:51, 1.05MiB/s]
Downloading:   7%|▋         | 17.9M/260M [00:18<03:26, 1.17MiB/s]
Downloading:   7%|▋         | 18.1M/260M [00:18<03:20, 1.21MiB/s]
Downloading:   7%|▋         | 18.2M/260M [00:18<03:26, 1.17MiB/s]
Downloading:   7%|▋         | 18.3M/260M [00:19<03:41, 1.09MiB/s]
Downloading:   7%|▋         | 18.4M/260M [00:19<03:56, 1.02MiB/s]
Downloading:   7%|▋         | 18.5M/260M [00:19<04:21, 920kiB/s]
Downloading:   7%|▋         | 18.6M/260M [00:19<04:21, 921kiB/s]
Downloading:   7%|▋         | 18.7M/260M [00:19<04:30, 891kiB/s]
Downloading:   7%|▋         | 18.8M/260M [00:19<04:29, 895kiB/s]
Downloading:   7%|▋         | 18.9M/260M [00:19<04:24, 911kiB/s]
Downloading:   7%|▋         | 19.0M/260M [00:19<04:24, 908kiB/s]
Downloading:   7%|▋         | 19.2M/260M [00:19<04:16, 937kiB/s]
Downloading:   7%|▋         | 19.3M/260M [00:20<04:08, 966kiB/s]
Downloading:   7%|▋         | 19.4M/260M [00:20<09:41, 413kiB/s]
Downloading:   7%|▋         | 19.4M/260M [00:21<13:35, 294kiB/s]
Downloading:   8%|▊         | 19.5M/260M [00:21<14:46, 271kiB/s]
Downloading:   8%|▊         | 19.5M/260M [00:21<20:20, 197kiB/s]
Downloading:   8%|▊         | 19.6M/260M [00:22<22:33, 177kiB/s]
Downloading:   8%|▊         | 19.6M/260M [00:23<48:27, 82.5kiB/s]
Downloading:   8%|▊         | 19.6M/260M [00:23<46:33, 85.9kiB/s]
Downloading:   8%|▊         | 19.7M/260M [00:23<37:42, 106kiB/s]
Downloading:   8%|▊         | 19.7M/260M [00:23<28:28, 140kiB/s]
Downloading:   8%|▊         | 19.7M/260M [00:24<24:48, 161kiB/s]
Downloading:   8%|▊         | 19.8M/260M [00:24<22:42, 176kiB/s]
Downloading:   8%|▊         | 19.8M/260M [00:24<18:51, 212kiB/s]
Downloading:   8%|▊         | 19.9M/260M [00:24<15:47, 253kiB/s]
Downloading:   8%|▊         | 19.9M/260M [00:24<13:45, 290kiB/s]
Downloading:   8%|▊         | 20.0M/260M [00:24<12:46, 313kiB/s]
Downloading:   8%|▊         | 20.0M/260M [00:24<14:05, 283kiB/s]
Downloading:   8%|▊         | 20.1M/260M [00:24<12:01, 332kiB/s]
Downloading:   8%|▊         | 20.1M/260M [00:25<12:28, 320kiB/s]
Downloading:   8%|▊         | 20.1M/260M [00:25<11:42, 341kiB/s]
Downloading:   8%|▊         | 20.2M/260M [00:25<10:49, 368kiB/s]
Downloading:   8%|▊         | 20.3M/260M [00:25<08:30, 469kiB/s]
Downloading:   8%|▊         | 20.3M/260M [00:25<07:22, 540kiB/s]
Downloading:   8%|▊         | 20.4M/260M [00:25<07:20, 543kiB/s]
Downloading:   8%|▊         | 20.5M/260M [00:25<05:42, 698kiB/s]
Downloading:   8%|▊         | 20.7M/260M [00:25<04:10, 953kiB/s]
Downloading:   8%|▊         | 20.8M/260M [00:25<04:11, 949kiB/s]
Downloading:   8%|▊         | 21.0M/260M [00:26<03:56, 1.01MiB/s]
Downloading:   8%|▊         | 21.1M/260M [00:26<03:29, 1.14MiB/s]
Downloading:   8%|▊         | 21.3M/260M [00:26<02:58, 1.33MiB/s]
Downloading:   8%|▊         | 21.5M/260M [00:26<02:33, 1.55MiB/s]
Downloading:   8%|▊         | 21.7M/260M [00:26<02:35, 1.53MiB/s]
Downloading:   8%|▊         | 21.9M/260M [00:26<02:25, 1.64MiB/s]
Downloading:   9%|▊         | 22.2M/260M [00:26<02:10, 1.82MiB/s]
Downloading:   9%|▊         | 22.3M/260M [00:26<02:11, 1.81MiB/s]
Downloading:   9%|▉         | 22.8M/260M [00:26<01:32, 2.56MiB/s]
Downloading:   9%|▉         | 23.1M/260M [00:27<01:25, 2.76MiB/s]
Downloading:   9%|▉         | 23.4M/260M [00:27<01:27, 2.70MiB/s]
Downloading:   9%|▉         | 23.7M/260M [00:27<01:33, 2.52MiB/s]
Downloading:   9%|▉         | 24.1M/260M [00:27<01:25, 2.76MiB/s]
Downloading:   9%|▉         | 24.4M/260M [00:27<01:34, 2.49MiB/s]
Downloading:  10%|▉         | 24.8M/260M [00:27<01:25, 2.74MiB/s]
Downloading:  10%|▉         | 25.3M/260M [00:27<01:12, 3.24MiB/s]
Downloading:  10%|▉         | 25.8M/260M [00:27<01:07, 3.47MiB/s]
Downloading:  10%|█         | 26.2M/260M [00:28<01:04, 3.64MiB/s]
Downloading:  10%|█         | 26.6M/260M [00:28<01:01, 3.78MiB/s]
Downloading:  10%|█         | 27.1M/260M [00:28<00:58, 3.99MiB/s]
Downloading:  11%|█         | 27.6M/260M [00:28<00:56, 4.12MiB/s]
Downloading:  11%|█         | 28.3M/260M [00:28<00:49, 4.71MiB/s]
Downloading:  11%|█         | 28.8M/260M [00:28<00:52, 4.36MiB/s]
Downloading:  11%|█▏        | 29.2M/260M [00:28<00:51, 4.51MiB/s]
Downloading:  11%|█▏        | 29.7M/260M [00:28<00:52, 4.35MiB/s]
Downloading:  12%|█▏        | 30.2M/260M [00:28<00:52, 4.37MiB/s]
Downloading:  12%|█▏        | 30.7M/260M [00:29<00:55, 4.10MiB/s]
Downloading:  12%|█▏        | 31.4M/260M [00:29<00:56, 4.02MiB/s]
Downloading:  12%|█▏        | 32.1M/260M [00:29<00:51, 4.39MiB/s]
Downloading:  13%|█▎        | 33.1M/260M [00:29<00:40, 5.61MiB/s]
Downloading:  13%|█▎        | 33.7M/260M [00:29<00:41, 5.46MiB/s]
Downloading:  13%|█▎        | 34.2M/260M [00:29<00:41, 5.44MiB/s]
Downloading:  13%|█▎        | 34.8M/260M [00:29<00:43, 5.11MiB/s]
Downloading:  14%|█▎        | 35.5M/260M [00:29<00:42, 5.26MiB/s]
Downloading:  14%|█▍        | 36.2M/260M [00:30<00:38, 5.85MiB/s]
Downloading:  14%|█▍        | 36.9M/260M [00:30<00:36, 6.18MiB/s]
Downloading:  14%|█▍        | 37.6M/260M [00:30<00:41, 5.37MiB/s]
Downloading:  15%|█▍        | 38.1M/260M [00:30<00:46, 4.79MiB/s]
Downloading:  15%|█▌        | 39.0M/260M [00:30<00:41, 5.37MiB/s]
Downloading:  15%|█▌        | 39.6M/260M [00:30<00:41, 5.35MiB/s]
Downloading:  15%|█▌        | 40.1M/260M [00:30<00:41, 5.35MiB/s]
Downloading:  16%|█▌        | 40.6M/260M [00:30<00:45, 4.77MiB/s]
Downloading:  16%|█▌        | 41.2M/260M [00:31<00:44, 4.85MiB/s]
Downloading:  16%|█▌        | 41.7M/260M [00:31<00:52, 4.18MiB/s]
Downloading:  16%|█▋        | 42.6M/260M [00:31<00:42, 5.15MiB/s]
Downloading:  17%|█▋        | 43.1M/260M [00:31<00:47, 4.51MiB/s]
Downloading:  17%|█▋        | 43.6M/260M [00:31<00:48, 4.47MiB/s]
Downloading:  17%|█▋        | 44.2M/260M [00:31<00:43, 4.90MiB/s]
Downloading:  17%|█▋        | 44.7M/260M [00:31<00:46, 4.65MiB/s]
Downloading:  17%|█▋        | 45.2M/260M [00:31<00:52, 4.12MiB/s]
Downloading:  18%|█▊        | 45.9M/260M [00:32<00:46, 4.63MiB/s]
Downloading:  18%|█▊        | 46.4M/260M [00:32<00:52, 4.07MiB/s]
Downloading:  18%|█▊        | 46.8M/260M [00:32<00:57, 3.71MiB/s]
Downloading:  18%|█▊        | 47.3M/260M [00:32<00:53, 3.96MiB/s]
Downloading:  18%|█▊        | 47.7M/260M [00:32<00:55, 3.84MiB/s]
Downloading:  19%|█▊        | 48.3M/260M [00:32<00:50, 4.14MiB/s]
Downloading:  19%|█▉        | 49.1M/260M [00:32<00:40, 5.14MiB/s]
Downloading:  19%|█▉        | 49.7M/260M [00:32<00:44, 4.69MiB/s]
Downloading:  19%|█▉        | 50.2M/260M [00:33<00:48, 4.28MiB/s]
Downloading:  20%|█▉        | 50.7M/260M [00:33<00:50, 4.12MiB/s]
Downloading:  20%|█▉        | 51.5M/260M [00:33<00:42, 4.89MiB/s]
Downloading:  20%|██        | 52.0M/260M [00:33<00:42, 4.84MiB/s]
Downloading:  20%|██        | 52.5M/260M [00:33<00:45, 4.59MiB/s]
Downloading:  20%|██        | 53.0M/260M [00:33<00:48, 4.30MiB/s]
Downloading:  21%|██        | 53.4M/260M [00:33<00:58, 3.50MiB/s]
Downloading:  21%|██        | 53.8M/260M [00:34<01:01, 3.32MiB/s]
Downloading:  21%|██        | 54.2M/260M [00:34<01:01, 3.35MiB/s]
Downloading:  21%|██        | 54.5M/260M [00:34<01:10, 2.92MiB/s]
Downloading:  21%|██        | 54.8M/260M [00:34<01:14, 2.76MiB/s]
Downloading:  21%|██▏       | 55.2M/260M [00:34<01:09, 2.94MiB/s]
Downloading:  21%|██▏       | 55.5M/260M [00:34<01:09, 2.95MiB/s]
Downloading:  21%|██▏       | 55.8M/260M [00:34<01:14, 2.73MiB/s]
Downloading:  22%|██▏       | 56.1M/260M [00:34<01:17, 2.63MiB/s]
Downloading:  22%|██▏       | 56.4M/260M [00:35<01:16, 2.66MiB/s]
Downloading:  22%|██▏       | 56.6M/260M [00:35<01:16, 2.67MiB/s]
Downloading:  22%|██▏       | 56.9M/260M [00:35<01:21, 2.48MiB/s]
Downloading:  22%|██▏       | 57.2M/260M [00:35<01:24, 2.41MiB/s]
Downloading:  22%|██▏       | 57.5M/260M [00:35<01:15, 2.66MiB/s]
Downloading:  22%|██▏       | 57.8M/260M [00:35<01:29, 2.24MiB/s]
Downloading:  22%|██▏       | 58.1M/260M [00:35<01:26, 2.33MiB/s]
Downloading:  22%|██▏       | 58.4M/260M [00:35<01:22, 2.45MiB/s]
Downloading:  23%|██▎       | 58.7M/260M [00:35<01:18, 2.55MiB/s]
Downloading:  23%|██▎       | 58.9M/260M [00:36<01:17, 2.59MiB/s]
Downloading:  23%|██▎       | 59.2M/260M [00:36<01:24, 2.36MiB/s]
Downloading:  23%|██▎       | 59.5M/260M [00:36<01:24, 2.38MiB/s]
Downloading:  23%|██▎       | 59.8M/260M [00:36<01:30, 2.20MiB/s]
Downloading:  23%|██▎       | 60.1M/260M [00:36<01:24, 2.36MiB/s]
Downloading:  23%|██▎       | 60.3M/260M [00:36<01:24, 2.35MiB/s]
Downloading:  23%|██▎       | 60.6M/260M [00:36<01:18, 2.54MiB/s]
Downloading:  23%|██▎       | 60.9M/260M [00:36<01:17, 2.55MiB/s]
Downloading:  24%|██▎       | 61.2M/260M [00:37<01:31, 2.18MiB/s]
Downloading:  24%|██▎       | 61.4M/260M [00:37<01:30, 2.18MiB/s]
Downloading:  24%|██▍       | 61.7M/260M [00:37<01:34, 2.10MiB/s]
Downloading:  24%|██▍       | 62.0M/260M [00:37<01:25, 2.30MiB/s]
Downloading:  24%|██▍       | 62.2M/260M [00:37<01:29, 2.20MiB/s]
Downloading:  24%|██▍       | 62.4M/260M [00:37<01:35, 2.07MiB/s]
Downloading:  24%|██▍       | 62.7M/260M [00:37<01:32, 2.12MiB/s]
Downloading:  24%|██▍       | 62.9M/260M [00:37<01:33, 2.10MiB/s]
Downloading:  24%|██▍       | 63.1M/260M [00:37<01:35, 2.06MiB/s]
Downloading:  24%|██▍       | 63.3M/260M [00:38<01:40, 1.95MiB/s]
Downloading:  24%|██▍       | 63.5M/260M [00:38<01:42, 1.92MiB/s]
Downloading:  25%|██▍       | 63.7M/260M [00:38<01:45, 1.87MiB/s]
Downloading:  25%|██▍       | 63.9M/260M [00:38<01:44, 1.88MiB/s]
Downloading:  25%|██▍       | 64.1M/260M [00:38<01:36, 2.02MiB/s]
Downloading:  25%|██▍       | 64.4M/260M [00:38<01:35, 2.05MiB/s]
Downloading:  25%|██▍       | 64.6M/260M [00:38<01:34, 2.07MiB/s]
Downloading:  25%|██▍       | 64.8M/260M [00:38<01:38, 1.98MiB/s]
Downloading:  25%|██▌       | 65.0M/260M [00:38<01:36, 2.01MiB/s]
Downloading:  25%|██▌       | 65.2M/260M [00:39<01:52, 1.73MiB/s]
Downloading:  25%|██▌       | 65.4M/260M [00:39<02:00, 1.61MiB/s]
Downloading:  25%|██▌       | 65.5M/260M [00:39<02:02, 1.58MiB/s]
Downloading:  25%|██▌       | 65.7M/260M [00:39<02:00, 1.60MiB/s]
Downloading:  25%|██▌       | 65.9M/260M [00:39<02:05, 1.54MiB/s]
Downloading:  25%|██▌       | 66.1M/260M [00:39<01:49, 1.76MiB/s]
Downloading:  26%|██▌       | 66.3M/260M [00:39<01:57, 1.64MiB/s]
Downloading:  26%|██▌       | 66.5M/260M [00:39<01:54, 1.68MiB/s]
Downloading:  26%|██▌       | 66.7M/260M [00:40<01:44, 1.84MiB/s]
Downloading:  26%|██▌       | 66.9M/260M [00:40<01:55, 1.67MiB/s]
Downloading:  26%|██▌       | 67.2M/260M [00:40<01:49, 1.76MiB/s]
Downloading:  26%|██▌       | 67.4M/260M [00:40<01:46, 1.80MiB/s]
Downloading:  26%|██▌       | 67.6M/260M [00:40<01:47, 1.79MiB/s]
Downloading:  26%|██▌       | 67.8M/260M [00:40<01:46, 1.79MiB/s]
Downloading:  26%|██▌       | 68.0M/260M [00:40<02:09, 1.48MiB/s]
Downloading:  26%|██▌       | 68.1M/260M [00:40<02:27, 1.30MiB/s]
Downloading:  26%|██▋       | 68.3M/260M [00:41<02:23, 1.33MiB/s]
Downloading:  26%|██▋       | 68.5M/260M [00:41<02:16, 1.40MiB/s]
Downloading:  26%|██▋       | 68.6M/260M [00:41<02:20, 1.36MiB/s]
Downloading:  27%|██▋       | 68.8M/260M [00:41<02:15, 1.41MiB/s]
Downloading:  27%|██▋       | 69.0M/260M [00:41<02:06, 1.50MiB/s]
Downloading:  27%|██▋       | 69.2M/260M [00:41<01:51, 1.71MiB/s]
Downloading:  27%|██▋       | 69.4M/260M [00:41<01:55, 1.65MiB/s]
Downloading:  27%|██▋       | 69.6M/260M [00:41<02:00, 1.58MiB/s]
Downloading:  27%|██▋       | 69.8M/260M [00:42<01:51, 1.70MiB/s]
Downloading:  27%|██▋       | 70.0M/260M [00:42<01:43, 1.83MiB/s]
Downloading:  27%|██▋       | 70.2M/260M [00:42<01:48, 1.74MiB/s]
Downloading:  27%|██▋       | 70.4M/260M [00:42<02:05, 1.51MiB/s]
Downloading:  27%|██▋       | 70.7M/260M [00:42<01:47, 1.76MiB/s]
Downloading:  27%|██▋       | 70.9M/260M [00:42<01:42, 1.83MiB/s]
Downloading:  27%|██▋       | 71.1M/260M [00:42<01:45, 1.78MiB/s]
Downloading:  27%|██▋       | 71.3M/260M [00:42<01:44, 1.80MiB/s]
Downloading:  28%|██▊       | 71.4M/260M [00:42<01:56, 1.61MiB/s]
Downloading:  28%|██▊       | 71.6M/260M [00:43<02:05, 1.50MiB/s]
Downloading:  28%|██▊       | 71.8M/260M [00:43<02:01, 1.54MiB/s]
Downloading:  28%|██▊       | 71.9M/260M [00:43<02:05, 1.50MiB/s]
Downloading:  28%|██▊       | 72.1M/260M [00:43<02:21, 1.33MiB/s]
Downloading:  28%|██▊       | 72.2M/260M [00:43<02:37, 1.19MiB/s]
Downloading:  28%|██▊       | 72.4M/260M [00:43<02:41, 1.16MiB/s]
Downloading:  28%|██▊       | 72.5M/260M [00:43<02:48, 1.11MiB/s]
Downloading:  28%|██▊       | 72.6M/260M [00:43<02:49, 1.10MiB/s]
Downloading:  28%|██▊       | 72.7M/260M [00:44<03:41, 845kiB/s]
Downloading:  28%|██▊       | 72.8M/260M [00:44<03:58, 782kiB/s]
Downloading:  28%|██▊       | 72.9M/260M [00:44<03:55, 791kiB/s]
Downloading:  28%|██▊       | 73.0M/260M [00:44<03:48, 817kiB/s]
Downloading:  28%|██▊       | 73.1M/260M [00:44<03:47, 818kiB/s]
Downloading:  28%|██▊       | 73.2M/260M [00:44<03:36, 863kiB/s]
Downloading:  28%|██▊       | 73.3M/260M [00:44<03:19, 933kiB/s]
Downloading:  28%|██▊       | 73.4M/260M [00:44<03:22, 919kiB/s]
Downloading:  28%|██▊       | 73.5M/260M [00:45<03:15, 951kiB/s]
Downloading:  28%|██▊       | 73.6M/260M [00:45<03:15, 950kiB/s]
Downloading:  28%|██▊       | 73.7M/260M [00:45<03:33, 872kiB/s]
Downloading:  28%|██▊       | 73.8M/260M [00:45<03:23, 911kiB/s]
Downloading:  28%|██▊       | 73.9M/260M [00:45<03:10, 972kiB/s]
Downloading:  29%|██▊       | 74.0M/260M [00:45<03:24, 906kiB/s]
Downloading:  29%|██▊       | 74.1M/260M [00:45<03:26, 898kiB/s]
Downloading:  29%|██▊       | 74.2M/260M [00:45<03:40, 840kiB/s]
Downloading:  29%|██▊       | 74.3M/260M [00:45<03:37, 853kiB/s]
Downloading:  29%|██▊       | 74.4M/260M [00:46<03:50, 804kiB/s]
Downloading:  29%|██▊       | 74.5M/260M [00:46<03:45, 822kiB/s]
Downloading:  29%|██▊       | 74.6M/260M [00:46<03:34, 864kiB/s]
Downloading:  29%|██▉       | 74.7M/260M [00:46<03:26, 897kiB/s]
Downloading:  29%|██▉       | 74.8M/260M [00:46<03:23, 910kiB/s]
Downloading:  29%|██▉       | 74.9M/260M [00:46<03:36, 851kiB/s]
Downloading:  29%|██▉       | 75.0M/260M [00:46<03:38, 846kiB/s]
Downloading:  29%|██▉       | 75.1M/260M [00:46<03:14, 948kiB/s]
Downloading:  29%|██▉       | 75.2M/260M [00:46<03:10, 967kiB/s]
Downloading:  29%|██▉       | 75.3M/260M [00:47<03:14, 948kiB/s]
Downloading:  29%|██▉       | 75.4M/260M [00:47<03:16, 939kiB/s]
Downloading:  29%|██▉       | 75.5M/260M [00:47<03:12, 957kiB/s]
Downloading:  29%|██▉       | 75.6M/260M [00:47<03:21, 915kiB/s]
Downloading:  29%|██▉       | 75.7M/260M [00:47<03:46, 811kiB/s]
Downloading:  29%|██▉       | 75.8M/260M [00:47<03:40, 834kiB/s]
Downloading:  29%|██▉       | 75.9M/260M [00:47<03:38, 839kiB/s]
Downloading:  29%|██▉       | 76.0M/260M [00:47<03:29, 876kiB/s]
Downloading:  29%|██▉       | 76.1M/260M [00:48<03:35, 851kiB/s]
Downloading:  29%|██▉       | 76.2M/260M [00:48<03:35, 851kiB/s]
Downloading:  29%|██▉       | 76.3M/260M [00:48<03:39, 837kiB/s]
Downloading:  29%|██▉       | 76.4M/260M [00:48<03:34, 853kiB/s]
Downloading:  29%|██▉       | 76.5M/260M [00:48<03:33, 857kiB/s]
Downloading:  30%|██▉       | 76.6M/260M [00:48<03:17, 926kiB/s]
Downloading:  30%|██▉       | 76.7M/260M [00:48<03:15, 936kiB/s]
Downloading:  30%|██▉       | 76.8M/260M [00:48<03:16, 931kiB/s]
Downloading:  30%|██▉       | 76.9M/260M [00:48<03:29, 874kiB/s]
Downloading:  30%|██▉       | 77.0M/260M [00:49<03:41, 826kiB/s]
Downloading:  30%|██▉       | 77.0M/260M [00:49<03:47, 804kiB/s]
Downloading:  30%|██▉       | 77.1M/260M [00:49<04:07, 737kiB/s]
Downloading:  30%|██▉       | 77.2M/260M [00:49<04:08, 733kiB/s]
Downloading:  30%|██▉       | 77.3M/260M [00:49<04:17, 708kiB/s]
Downloading:  30%|██▉       | 77.4M/260M [00:49<04:20, 700kiB/s]
Downloading:  30%|██▉       | 77.4M/260M [00:49<05:09, 589kiB/s]
Downloading:  30%|██▉       | 77.5M/260M [00:49<05:08, 591kiB/s]
Downloading:  30%|██▉       | 77.6M/260M [00:50<05:13, 580kiB/s]
Downloading:  30%|██▉       | 77.6M/260M [00:50<06:10, 491kiB/s]
Downloading:  30%|██▉       | 77.7M/260M [00:50<06:57, 436kiB/s]
Downloading:  30%|██▉       | 77.7M/260M [00:50<09:59, 303kiB/s]
Downloading:  30%|██▉       | 77.8M/260M [00:51<22:37, 134kiB/s]
Downloading:  30%|██▉       | 77.8M/260M [00:51<23:45, 128kiB/s]
Downloading:  30%|██▉       | 77.8M/260M [00:52<29:48, 102kiB/s]
Downloading:  30%|██▉       | 77.8M/260M [00:52<34:12, 88.6kiB/s]
Downloading:  30%|██▉       | 77.9M/260M [00:52<32:19, 93.7kiB/s]
Downloading:  30%|███       | 77.9M/260M [00:52<26:41, 113kiB/s]
Downloading:  30%|███       | 77.9M/260M [00:53<24:04, 126kiB/s]
Downloading:  30%|███       | 78.0M/260M [00:53<23:30, 129kiB/s]
Downloading:  30%|███       | 78.0M/260M [00:53<17:28, 173kiB/s]
Downloading:  30%|███       | 78.0M/260M [00:53<23:19, 130kiB/s]
Downloading:  30%|███       | 78.1M/260M [00:54<20:29, 148kiB/s]
Downloading:  30%|███       | 78.1M/260M [00:54<17:46, 170kiB/s]
Downloading:  30%|███       | 78.2M/260M [00:54<14:41, 206kiB/s]
Downloading:  30%|███       | 78.2M/260M [00:54<14:37, 207kiB/s]
Downloading:  30%|███       | 78.3M/260M [00:54<11:31, 262kiB/s]
Downloading:  30%|███       | 78.3M/260M [00:54<12:11, 248kiB/s]
Downloading:  30%|███       | 78.3M/260M [00:55<11:44, 257kiB/s]
Downloading:  30%|███       | 78.4M/260M [00:55<09:34, 315kiB/s]
Downloading:  30%|███       | 78.5M/260M [00:55<08:03, 375kiB/s]
Downloading:  30%|███       | 78.5M/260M [00:55<07:31, 401kiB/s]
Downloading:  30%|███       | 78.6M/260M [00:55<05:44, 526kiB/s]
Downloading:  30%|███       | 78.7M/260M [00:55<05:10, 582kiB/s]
Downloading:  30%|███       | 78.8M/260M [00:55<05:38, 534kiB/s]
Downloading:  30%|███       | 78.9M/260M [00:55<04:33, 661kiB/s]
Downloading:  30%|███       | 79.0M/260M [00:56<04:01, 747kiB/s]
Downloading:  30%|███       | 79.1M/260M [00:56<03:47, 793kiB/s]
Downloading:  31%|███       | 79.2M/260M [00:56<04:02, 743kiB/s]
Downloading:  31%|███       | 79.3M/260M [00:56<03:19, 902kiB/s]
Downloading:  31%|███       | 79.4M/260M [00:56<03:23, 885kiB/s]
Downloading:  31%|███       | 79.6M/260M [00:56<03:13, 933kiB/s]
Downloading:  31%|███       | 79.7M/260M [00:56<03:10, 944kiB/s]
Downloading:  31%|███       | 79.8M/260M [00:56<02:56, 1.02MiB/s]
Downloading:  31%|███       | 79.9M/260M [00:56<02:45, 1.09MiB/s]
Downloading:  31%|███       | 80.1M/260M [00:57<02:39, 1.13MiB/s]
Downloading:  31%|███       | 80.2M/260M [00:57<02:39, 1.12MiB/s]
Downloading:  31%|███       | 80.4M/260M [00:57<02:25, 1.23MiB/s]
Downloading:  31%|███       | 80.5M/260M [00:57<02:44, 1.09MiB/s]
Downloading:  31%|███       | 80.7M/260M [00:57<02:37, 1.14MiB/s]
Downloading:  31%|███       | 80.9M/260M [00:57<02:04, 1.43MiB/s]
Downloading:  31%|███       | 81.1M/260M [00:57<02:02, 1.46MiB/s]
Downloading:  31%|███▏      | 81.2M/260M [00:57<02:05, 1.42MiB/s]
Downloading:  31%|███▏      | 81.4M/260M [00:58<02:07, 1.40MiB/s]
Downloading:  31%|███▏      | 81.6M/260M [00:58<01:56, 1.53MiB/s]
Downloading:  31%|███▏      | 81.7M/260M [00:58<02:03, 1.45MiB/s]
Downloading:  32%|███▏      | 82.0M/260M [00:58<01:51, 1.60MiB/s]
Downloading:  32%|███▏      | 82.2M/260M [00:58<01:45, 1.69MiB/s]
Downloading:  32%|███▏      | 82.5M/260M [00:58<01:32, 1.92MiB/s]
Downloading:  32%|███▏      | 82.8M/260M [00:58<01:25, 2.07MiB/s]
Downloading:  32%|███▏      | 83.0M/260M [00:58<01:42, 1.73MiB/s]
Downloading:  32%|███▏      | 83.2M/260M [00:59<01:38, 1.78MiB/s]
Downloading:  32%|███▏      | 83.5M/260M [00:59<01:32, 1.90MiB/s]
Downloading:  32%|███▏      | 83.8M/260M [00:59<01:16, 2.30MiB/s]
Downloading:  32%|███▏      | 84.1M/260M [00:59<01:19, 2.19MiB/s]
Downloading:  32%|███▏      | 84.3M/260M [00:59<01:17, 2.27MiB/s]
Downloading:  33%|███▎      | 84.6M/260M [00:59<01:18, 2.23MiB/s]
Downloading:  33%|███▎      | 85.0M/260M [00:59<01:08, 2.54MiB/s]
Downloading:  33%|███▎      | 85.2M/260M [00:59<01:10, 2.47MiB/s]
Downloading:  33%|███▎      | 85.5M/260M [00:59<01:17, 2.24MiB/s]
Downloading:  33%|███▎      | 85.8M/260M [01:00<01:13, 2.37MiB/s]
Downloading:  33%|███▎      | 86.1M/260M [01:00<01:09, 2.48MiB/s]
Downloading:  33%|███▎      | 86.4M/260M [01:00<01:02, 2.78MiB/s]
Downloading:  33%|███▎      | 86.7M/260M [01:00<01:04, 2.66MiB/s]
Downloading:  34%|███▎      | 87.1M/260M [01:00<01:00, 2.86MiB/s]
Downloading:  34%|███▎      | 87.6M/260M [01:00<00:51, 3.34MiB/s]
Downloading:  34%|███▍      | 87.9M/260M [01:00<00:52, 3.26MiB/s]
Downloading:  34%|███▍      | 88.3M/260M [01:00<00:58, 2.93MiB/s]
Downloading:  34%|███▍      | 88.6M/260M [01:01<00:59, 2.87MiB/s]
Downloading:  34%|███▍      | 88.9M/260M [01:01<01:02, 2.72MiB/s]
Downloading:  34%|███▍      | 89.3M/260M [01:01<01:00, 2.84MiB/s]
Downloading:  35%|███▍      | 89.8M/260M [01:01<00:49, 3.40MiB/s]
Downloading:  35%|███▍      | 90.1M/260M [01:01<00:52, 3.24MiB/s]
Downloading:  35%|███▍      | 90.7M/260M [01:01<00:49, 3.43MiB/s]
Downloading:  35%|███▌      | 91.2M/260M [01:01<00:42, 3.99MiB/s]
Downloading:  35%|███▌      | 91.7M/260M [01:01<00:44, 3.78MiB/s]
Downloading:  35%|███▌      | 92.1M/260M [01:01<00:42, 3.95MiB/s]
Downloading:  36%|███▌      | 92.6M/260M [01:02<00:41, 4.03MiB/s]
Downloading:  36%|███▌      | 93.0M/260M [01:02<00:43, 3.85MiB/s]
Downloading:  36%|███▌      | 93.5M/260M [01:02<00:39, 4.21MiB/s]
Downloading:  36%|███▌      | 93.9M/260M [01:02<00:52, 3.18MiB/s]
Downloading:  36%|███▋      | 94.6M/260M [01:02<00:43, 3.82MiB/s]
Downloading:  37%|███▋      | 95.1M/260M [01:02<00:43, 3.79MiB/s]
Downloading:  37%|███▋      | 95.7M/260M [01:02<00:38, 4.29MiB/s]
Downloading:  37%|███▋      | 96.2M/260M [01:02<00:39, 4.19MiB/s]
Downloading:  37%|███▋      | 96.6M/260M [01:03<00:38, 4.26MiB/s]
Downloading:  37%|███▋      | 97.1M/260M [01:03<00:40, 4.02MiB/s]
Downloading:  38%|███▊      | 97.6M/260M [01:03<00:38, 4.21MiB/s]
Downloading:  38%|███▊      | 98.1M/260M [01:03<00:35, 4.53MiB/s]
Downloading:  38%|███▊      | 98.6M/260M [01:03<00:49, 3.25MiB/s]
Downloading:  38%|███▊      | 99.3M/260M [01:03<00:39, 4.03MiB/s]
Downloading:  38%|███▊      | 99.7M/260M [01:03<00:38, 4.18MiB/s]
Downloading:  39%|███▊      | 100M/260M [01:03<00:38, 4.14MiB/s]
Downloading:  39%|███▉      | 101M/260M [01:04<00:45, 3.46MiB/s]
Downloading:  39%|███▉      | 101M/260M [01:04<00:48, 3.28MiB/s]
Downloading:  39%|███▉      | 101M/260M [01:04<00:48, 3.24MiB/s]
Downloading:  39%|███▉      | 102M/260M [01:04<01:00, 2.61MiB/s]
Downloading:  39%|███▉      | 102M/260M [01:04<01:01, 2.57MiB/s]
Downloading:  39%|███▉      | 102M/260M [01:04<01:06, 2.35MiB/s]
Downloading:  40%|███▉      | 103M/260M [01:05<01:14, 2.11MiB/s]
Downloading:  40%|███▉      | 103M/260M [01:05<03:05, 847kiB/s]
Downloading:  40%|███▉      | 103M/260M [01:06<06:08, 425kiB/s]
Downloading:  40%|███▉      | 103M/260M [01:07<08:30, 307kiB/s]
Downloading:  40%|███▉      | 103M/260M [01:08<09:24, 277kiB/s]
Downloading:  40%|███▉      | 103M/260M [01:08<10:02, 260kiB/s]
Downloading:  40%|███▉      | 103M/260M [01:08<09:48, 266kiB/s]
Downloading:  40%|███▉      | 103M/260M [01:09<09:54, 263kiB/s]
Downloading:  40%|███▉      | 103M/260M [01:09<09:46, 266kiB/s]
Downloading:  40%|███▉      | 103M/260M [01:09<09:07, 285kiB/s]
Downloading:  40%|███▉      | 103M/260M [01:09<08:37, 302kiB/s]
Downloading:  40%|███▉      | 103M/260M [01:09<07:27, 349kiB/s]
Downloading:  40%|███▉      | 104M/260M [01:09<06:35, 395kiB/s]
Downloading:  40%|███▉      | 104M/260M [01:09<05:35, 465kiB/s]
Downloading:  40%|███▉      | 104M/260M [01:09<04:52, 532kiB/s]
Downloading:  40%|███▉      | 104M/260M [01:10<04:10, 622kiB/s]
Downloading:  40%|████      | 104M/260M [01:10<03:48, 681kiB/s]
Downloading:  40%|████      | 104M/260M [01:10<03:42, 699kiB/s]
Downloading:  40%|████      | 104M/260M [01:10<03:23, 763kiB/s]
Downloading:  40%|████      | 104M/260M [01:10<03:15, 796kiB/s]
Downloading:  40%|████      | 104M/260M [01:10<03:24, 758kiB/s]
Downloading:  40%|████      | 104M/260M [01:10<02:53, 893kiB/s]
Downloading:  40%|████      | 105M/260M [01:10<02:56, 876kiB/s]
Downloading:  40%|████      | 105M/260M [01:10<02:56, 879kiB/s]
Downloading:  40%|████      | 105M/260M [01:11<02:29, 1.04MiB/s]
Downloading:  40%|████      | 105M/260M [01:11<02:29, 1.03MiB/s]
Downloading:  40%|████      | 105M/260M [01:11<02:28, 1.04MiB/s]
Downloading:  40%|████      | 105M/260M [01:11<02:30, 1.03MiB/s]
Downloading:  41%|████      | 105M/260M [01:11<02:18, 1.11MiB/s]
Downloading:  41%|████      | 105M/260M [01:11<02:22, 1.08MiB/s]
Downloading:  41%|████      | 105M/260M [01:11<02:15, 1.14MiB/s]
Downloading:  41%|████      | 106M/260M [01:11<02:23, 1.07MiB/s]
Downloading:  41%|████      | 106M/260M [01:11<02:25, 1.06MiB/s]
Downloading:  41%|████      | 106M/260M [01:12<02:18, 1.11MiB/s]
Downloading:  41%|████      | 106M/260M [01:12<02:22, 1.08MiB/s]
Downloading:  41%|████      | 106M/260M [01:12<02:15, 1.13MiB/s]
Downloading:  41%|████      | 106M/260M [01:12<02:13, 1.15MiB/s]
Downloading:  41%|████      | 106M/260M [01:12<02:27, 1.04MiB/s]
Downloading:  41%|████      | 106M/260M [01:12<02:17, 1.11MiB/s]
Downloading:  41%|████      | 107M/260M [01:12<03:03, 835kiB/s]
Downloading:  41%|████      | 107M/260M [01:13<02:55, 869kiB/s]
Downloading:  41%|████      | 107M/260M [01:13<02:25, 1.05MiB/s]
Downloading:  41%|████      | 107M/260M [01:13<02:24, 1.05MiB/s]
Downloading:  41%|████▏     | 107M/260M [01:13<02:01, 1.25MiB/s]
Downloading:  41%|████▏     | 107M/260M [01:13<02:01, 1.25MiB/s]
Downloading:  41%|████▏     | 107M/260M [01:13<02:00, 1.27MiB/s]
Downloading:  41%|████▏     | 108M/260M [01:13<01:59, 1.27MiB/s]
Downloading:  42%|████▏     | 108M/260M [01:13<02:56, 860kiB/s]
Downloading:  42%|████▏     | 108M/260M [01:14<02:19, 1.09MiB/s]
Downloading:  42%|████▏     | 108M/260M [01:14<02:01, 1.24MiB/s]
Downloading:  42%|████▏     | 108M/260M [01:14<01:52, 1.35MiB/s]
Downloading:  42%|████▏     | 108M/260M [01:14<01:55, 1.31MiB/s]
Downloading:  42%|████▏     | 109M/260M [01:14<01:56, 1.30MiB/s]
Downloading:  42%|████▏     | 109M/260M [01:14<01:34, 1.60MiB/s]
Downloading:  42%|████▏     | 109M/260M [01:14<01:26, 1.74MiB/s]
Downloading:  42%|████▏     | 109M/260M [01:14<01:31, 1.65MiB/s]
Downloading:  42%|████▏     | 109M/260M [01:14<01:26, 1.74MiB/s]
Downloading:  42%|████▏     | 110M/260M [01:15<01:11, 2.10MiB/s]
Downloading:  42%|████▏     | 110M/260M [01:15<01:10, 2.11MiB/s]
Downloading:  42%|████▏     | 110M/260M [01:15<01:07, 2.20MiB/s]
Downloading:  43%|████▎     | 111M/260M [01:15<00:59, 2.50MiB/s]
Downloading:  43%|████▎     | 111M/260M [01:15<01:01, 2.44MiB/s]
Downloading:  43%|████▎     | 111M/260M [01:15<01:00, 2.45MiB/s]
Downloading:  43%|████▎     | 111M/260M [01:15<00:56, 2.63MiB/s]
Downloading:  43%|████▎     | 112M/260M [01:15<01:01, 2.40MiB/s]
Downloading:  43%|████▎     | 112M/260M [01:15<01:13, 2.01MiB/s]
Downloading:  43%|████▎     | 112M/260M [01:16<01:02, 2.34MiB/s]
Downloading:  43%|████▎     | 113M/260M [01:16<01:03, 2.33MiB/s]
Downloading:  43%|████▎     | 113M/260M [01:16<01:03, 2.31MiB/s]
Downloading:  44%|████▎     | 113M/260M [01:16<00:53, 2.76MiB/s]
Downloading:  44%|████▎     | 113M/260M [01:16<00:55, 2.65MiB/s]
Downloading:  44%|████▍     | 114M/260M [01:16<00:52, 2.78MiB/s]
Downloading:  44%|████▍     | 114M/260M [01:16<00:52, 2.78MiB/s]
Downloading:  44%|████▍     | 114M/260M [01:16<00:51, 2.79MiB/s]
Downloading:  44%|████▍     | 115M/260M [01:16<00:51, 2.80MiB/s]
Downloading:  44%|████▍     | 115M/260M [01:17<00:52, 2.74MiB/s]
Downloading:  44%|████▍     | 115M/260M [01:17<00:54, 2.64MiB/s]
Downloading:  45%|████▍     | 116M/260M [01:17<00:54, 2.65MiB/s]
Downloading:  45%|████▍     | 116M/260M [01:17<00:59, 2.42MiB/s]
Downloading:  45%|████▍     | 116M/260M [01:17<01:01, 2.33MiB/s]
Downloading:  45%|████▍     | 117M/260M [01:17<00:47, 3.01MiB/s]
Downloading:  45%|████▌     | 117M/260M [01:17<00:50, 2.85MiB/s]
Downloading:  45%|████▌     | 117M/260M [01:17<00:50, 2.80MiB/s]
Downloading:  45%|████▌     | 118M/260M [01:17<00:47, 2.98MiB/s]
Downloading:  45%|████▌     | 118M/260M [01:18<00:45, 3.14MiB/s]
Downloading:  46%|████▌     | 118M/260M [01:18<00:43, 3.26MiB/s]
Downloading:  46%|████▌     | 119M/260M [01:18<00:48, 2.91MiB/s]
Downloading:  46%|████▌     | 119M/260M [01:18<00:46, 3.00MiB/s]
Downloading:  46%|████▌     | 120M/260M [01:18<00:37, 3.77MiB/s]
Downloading:  46%|████▋     | 120M/260M [01:18<00:39, 3.54MiB/s]
Downloading:  46%|████▋     | 121M/260M [01:18<00:43, 3.21MiB/s]
Downloading:  47%|████▋     | 121M/260M [01:18<00:43, 3.16MiB/s]
Downloading:  47%|████▋     | 121M/260M [01:19<00:45, 3.04MiB/s]
Downloading:  47%|████▋     | 122M/260M [01:19<00:49, 2.77MiB/s]
Downloading:  47%|████▋     | 122M/260M [01:19<00:50, 2.74MiB/s]
Downloading:  47%|████▋     | 122M/260M [01:19<00:53, 2.57MiB/s]
Downloading:  47%|████▋     | 122M/260M [01:19<00:48, 2.81MiB/s]
Downloading:  47%|████▋     | 123M/260M [01:19<00:44, 3.10MiB/s]
Downloading:  47%|████▋     | 123M/260M [01:19<00:47, 2.89MiB/s]
Downloading:  48%|████▊     | 123M/260M [01:19<00:55, 2.46MiB/s]
Downloading:  48%|████▊     | 124M/260M [01:20<00:42, 3.18MiB/s]
Downloading:  48%|████▊     | 124M/260M [01:21<02:57, 760kiB/s]
Downloading:  48%|████▊     | 125M/260M [01:21<02:40, 841kiB/s]
Downloading:  48%|████▊     | 125M/260M [01:23<05:57, 377kiB/s]
Downloading:  48%|████▊     | 125M/260M [01:24<07:15, 309kiB/s]
Downloading:  48%|████▊     | 125M/260M [01:24<06:42, 334kiB/s]
Downloading:  48%|████▊     | 125M/260M [01:24<05:59, 374kiB/s]
Downloading:  48%|████▊     | 125M/260M [01:24<06:07, 366kiB/s]
Downloading:  48%|████▊     | 125M/260M [01:25<07:34, 295kiB/s]
Downloading:  48%|████▊     | 125M/260M [01:25<07:11, 311kiB/s]
Downloading:  48%|████▊     | 126M/260M [01:25<05:49, 384kiB/s]
Downloading:  48%|████▊     | 126M/260M [01:25<04:39, 479kiB/s]
Downloading:  48%|████▊     | 126M/260M [01:25<04:15, 524kiB/s]
Downloading:  49%|████▊     | 126M/260M [01:26<03:15, 684kiB/s]
Downloading:  49%|████▊     | 126M/260M [01:26<02:24, 926kiB/s]
Downloading:  49%|████▊     | 126M/260M [01:26<02:06, 1.05MiB/s]
Downloading:  49%|████▊     | 126M/260M [01:26<01:53, 1.17MiB/s]
Downloading:  49%|████▉     | 127M/260M [01:26<01:24, 1.58MiB/s]
Downloading:  49%|████▉     | 127M/260M [01:26<01:23, 1.60MiB/s]
Downloading:  49%|████▉     | 127M/260M [01:26<01:07, 1.97MiB/s]
Downloading:  49%|████▉     | 127M/260M [01:26<01:08, 1.94MiB/s]
Downloading:  49%|████▉     | 128M/260M [01:26<01:03, 2.07MiB/s]
Downloading:  49%|████▉     | 128M/260M [01:27<01:01, 2.13MiB/s]
Downloading:  49%|████▉     | 128M/260M [01:27<00:52, 2.50MiB/s]
Downloading:  50%|████▉     | 129M/260M [01:27<00:54, 2.42MiB/s]
Downloading:  50%|████▉     | 129M/260M [01:27<00:57, 2.29MiB/s]
Downloading:  50%|████▉     | 129M/260M [01:27<00:49, 2.64MiB/s]
Downloading:  50%|████▉     | 130M/260M [01:27<00:51, 2.54MiB/s]
Downloading:  50%|█████     | 130M/260M [01:27<00:49, 2.60MiB/s]
Downloading:  50%|█████     | 130M/260M [01:27<00:52, 2.47MiB/s]
Downloading:  50%|█████     | 131M/260M [01:28<00:56, 2.27MiB/s]
Downloading:  50%|█████     | 131M/260M [01:28<00:52, 2.47MiB/s]
Downloading:  51%|█████     | 131M/260M [01:28<01:09, 1.85MiB/s]
Downloading:  51%|█████     | 131M/260M [01:28<00:54, 2.34MiB/s]
Downloading:  51%|█████     | 132M/260M [01:28<00:48, 2.65MiB/s]
Downloading:  51%|█████     | 132M/260M [01:28<00:44, 2.85MiB/s]
Downloading:  51%|█████     | 133M/260M [01:28<00:44, 2.87MiB/s]
Downloading:  51%|█████     | 133M/260M [01:28<00:46, 2.75MiB/s]
Downloading:  51%|█████▏    | 133M/260M [01:29<00:47, 2.64MiB/s]
Downloading:  51%|█████▏    | 133M/260M [01:29<00:46, 2.71MiB/s]
Downloading:  52%|█████▏    | 134M/260M [01:29<00:51, 2.46MiB/s]
Downloading:  52%|█████▏    | 134M/260M [01:29<00:46, 2.71MiB/s]
Downloading:  52%|█████▏    | 134M/260M [01:29<00:46, 2.70MiB/s]
Downloading:  52%|█████▏    | 135M/260M [01:29<00:42, 2.91MiB/s]
Downloading:  52%|█████▏    | 135M/260M [01:29<00:42, 2.91MiB/s]
Downloading:  52%|█████▏    | 135M/260M [01:29<00:45, 2.70MiB/s]
Downloading:  52%|█████▏    | 136M/260M [01:29<00:38, 3.21MiB/s]
Downloading:  52%|█████▏    | 136M/260M [01:30<00:39, 3.14MiB/s]
Downloading:  53%|█████▎    | 137M/260M [01:30<00:36, 3.41MiB/s]
Downloading:  53%|█████▎    | 137M/260M [01:30<00:38, 3.22MiB/s]
Downloading:  53%|█████▎    | 138M/260M [01:30<00:36, 3.38MiB/s]
Downloading:  53%|█████▎    | 138M/260M [01:30<00:28, 4.26MiB/s]
Downloading:  53%|█████▎    | 139M/260M [01:30<00:29, 4.09MiB/s]
Downloading:  54%|█████▎    | 139M/260M [01:30<00:30, 3.95MiB/s]
Downloading:  54%|█████▍    | 140M/260M [01:30<00:31, 3.79MiB/s]
Downloading:  54%|█████▍    | 140M/260M [01:30<00:31, 3.79MiB/s]
Downloading:  54%|█████▍    | 140M/260M [01:31<00:30, 3.97MiB/s]
Downloading:  54%|█████▍    | 141M/260M [01:31<00:27, 4.37MiB/s]
Downloading:  55%|█████▍    | 142M/260M [01:31<00:28, 4.17MiB/s]
Downloading:  55%|█████▍    | 142M/260M [01:31<00:25, 4.62MiB/s]
Downloading:  55%|█████▍    | 143M/260M [01:31<00:28, 4.04MiB/s]
Downloading:  55%|█████▌    | 143M/260M [01:31<00:24, 4.76MiB/s]
Downloading:  56%|█████▌    | 144M/260M [01:31<00:21, 5.31MiB/s]
Downloading:  56%|█████▌    | 145M/260M [01:32<00:22, 5.15MiB/s]
Downloading:  56%|█████▌    | 146M/260M [01:32<00:22, 5.04MiB/s]
Downloading:  56%|█████▋    | 146M/260M [01:32<00:22, 5.07MiB/s]
Downloading:  56%|█████▋    | 147M/260M [01:32<00:23, 4.80MiB/s]
Downloading:  57%|█████▋    | 147M/260M [01:32<00:28, 3.88MiB/s]
Downloading:  57%|█████▋    | 148M/260M [01:32<00:27, 4.10MiB/s]
Downloading:  57%|█████▋    | 148M/260M [01:32<00:21, 5.20MiB/s]
Downloading:  57%|█████▋    | 149M/260M [01:32<00:22, 4.96MiB/s]
Downloading:  58%|█████▊    | 149M/260M [01:33<00:24, 4.49MiB/s]
Downloading:  58%|█████▊    | 150M/260M [01:33<00:23, 4.73MiB/s]
Downloading:  58%|█████▊    | 151M/260M [01:33<00:21, 5.07MiB/s]
Downloading:  58%|█████▊    | 151M/260M [01:33<00:25, 4.18MiB/s]
Downloading:  58%|█████▊    | 152M/260M [01:33<00:32, 3.32MiB/s]
Downloading:  59%|█████▊    | 152M/260M [01:33<00:28, 3.77MiB/s]
Downloading:  59%|█████▉    | 153M/260M [01:33<00:24, 4.30MiB/s]
Downloading:  59%|█████▉    | 153M/260M [01:33<00:24, 4.32MiB/s]
Downloading:  59%|█████▉    | 154M/260M [01:34<00:23, 4.58MiB/s]
Downloading:  60%|█████▉    | 155M/260M [01:34<00:19, 5.52MiB/s]
Downloading:  60%|█████▉    | 155M/260M [01:34<00:22, 4.72MiB/s]
Downloading:  60%|██████    | 156M/260M [01:34<00:23, 4.39MiB/s]
Downloading:  60%|██████    | 156M/260M [01:34<00:23, 4.41MiB/s]
Downloading:  60%|██████    | 157M/260M [01:34<00:22, 4.54MiB/s]
Downloading:  61%|██████    | 157M/260M [01:34<00:26, 3.87MiB/s]
Downloading:  61%|██████    | 158M/260M [01:35<00:23, 4.39MiB/s]
Downloading:  61%|██████    | 159M/260M [01:35<00:26, 3.81MiB/s]
Downloading:  61%|██████    | 159M/260M [01:35<00:26, 3.77MiB/s]
Downloading:  61%|██████▏   | 159M/260M [01:35<00:26, 3.84MiB/s]
Downloading:  62%|██████▏   | 160M/260M [01:35<00:27, 3.62MiB/s]
Downloading:  62%|██████▏   | 160M/260M [01:35<00:29, 3.43MiB/s]
Downloading:  62%|██████▏   | 161M/260M [01:35<00:29, 3.31MiB/s]
Downloading:  62%|██████▏   | 161M/260M [01:35<00:31, 3.13MiB/s]
Downloading:  62%|██████▏   | 161M/260M [01:35<00:32, 3.05MiB/s]
Downloading:  62%|██████▏   | 161M/260M [01:36<00:34, 2.86MiB/s]
Downloading:  62%|██████▏   | 162M/260M [01:36<00:35, 2.72MiB/s]
Downloading:  62%|██████▏   | 162M/260M [01:36<00:35, 2.72MiB/s]
Downloading:  63%|██████▎   | 162M/260M [01:36<00:36, 2.64MiB/s]
Downloading:  63%|██████▎   | 163M/260M [01:36<00:42, 2.31MiB/s]
Downloading:  63%|██████▎   | 163M/260M [01:36<00:36, 2.64MiB/s]
Downloading:  63%|██████▎   | 163M/260M [01:36<00:40, 2.38MiB/s]
Downloading:  63%|██████▎   | 163M/260M [01:36<00:42, 2.28MiB/s]
Downloading:  63%|██████▎   | 164M/260M [01:37<00:42, 2.23MiB/s]
Downloading:  63%|██████▎   | 164M/260M [01:37<00:39, 2.44MiB/s]
Downloading:  63%|██████▎   | 164M/260M [01:37<00:43, 2.20MiB/s]
Downloading:  63%|██████▎   | 165M/260M [01:37<00:44, 2.13MiB/s]
Downloading:  63%|██████▎   | 165M/260M [01:37<00:48, 1.96MiB/s]
Downloading:  64%|██████▎   | 165M/260M [01:37<00:49, 1.93MiB/s]
Downloading:  64%|██████▎   | 165M/260M [01:37<00:51, 1.82MiB/s]
Downloading:  64%|██████▎   | 165M/260M [01:37<00:49, 1.92MiB/s]
Downloading:  64%|██████▍   | 166M/260M [01:38<00:40, 2.33MiB/s]
Downloading:  64%|██████▍   | 166M/260M [01:38<00:41, 2.26MiB/s]
Downloading:  64%|██████▍   | 166M/260M [01:38<00:49, 1.89MiB/s]
Downloading:  64%|██████▍   | 166M/260M [01:38<00:47, 1.95MiB/s]
Downloading:  64%|██████▍   | 167M/260M [01:38<00:44, 2.11MiB/s]
Downloading:  64%|██████▍   | 167M/260M [01:38<00:46, 2.00MiB/s]
Downloading:  64%|██████▍   | 167M/260M [01:38<00:47, 1.96MiB/s]
Downloading:  64%|██████▍   | 167M/260M [01:38<00:47, 1.94MiB/s]
Downloading:  65%|██████▍   | 168M/260M [01:39<00:46, 2.00MiB/s]
Downloading:  65%|██████▍   | 168M/260M [01:39<00:46, 1.97MiB/s]
Downloading:  65%|██████▍   | 168M/260M [01:39<00:58, 1.56MiB/s]
Downloading:  65%|██████▍   | 168M/260M [01:39<00:53, 1.70MiB/s]
Downloading:  65%|██████▍   | 168M/260M [01:39<00:51, 1.77MiB/s]
Downloading:  65%|██████▍   | 169M/260M [01:39<00:49, 1.85MiB/s]
Downloading:  65%|██████▌   | 169M/260M [01:39<00:51, 1.76MiB/s]
Downloading:  65%|██████▌   | 169M/260M [01:39<00:51, 1.75MiB/s]
Downloading:  65%|██████▌   | 169M/260M [01:39<00:50, 1.81MiB/s]
Downloading:  65%|██████▌   | 169M/260M [01:40<00:47, 1.92MiB/s]
Downloading:  65%|██████▌   | 170M/260M [01:40<00:45, 1.96MiB/s]
Downloading:  65%|██████▌   | 170M/260M [01:40<00:49, 1.82MiB/s]
Downloading:  66%|██████▌   | 170M/260M [01:40<00:50, 1.75MiB/s]
Downloading:  66%|██████▌   | 170M/260M [01:40<00:44, 2.00MiB/s]
Downloading:  66%|██████▌   | 171M/260M [01:40<00:47, 1.87MiB/s]
Downloading:  66%|██████▌   | 171M/260M [01:40<00:50, 1.75MiB/s]
Downloading:  66%|██████▌   | 171M/260M [01:40<00:52, 1.69MiB/s]
Downloading:  66%|██████▌   | 171M/260M [01:41<00:52, 1.67MiB/s]
Downloading:  66%|██████▌   | 171M/260M [01:41<01:00, 1.47MiB/s]
Downloading:  66%|██████▌   | 172M/260M [01:41<00:55, 1.60MiB/s]
Downloading:  66%|██████▌   | 172M/260M [01:41<00:48, 1.81MiB/s]
Downloading:  66%|██████▋   | 172M/260M [01:41<00:54, 1.61MiB/s]
Downloading:  66%|██████▋   | 172M/260M [01:41<00:54, 1.61MiB/s]
Downloading:  66%|██████▋   | 172M/260M [01:41<00:52, 1.65MiB/s]
Downloading:  66%|██████▋   | 173M/260M [01:41<00:57, 1.52MiB/s]
Downloading:  67%|██████▋   | 173M/260M [01:42<00:53, 1.61MiB/s]
Downloading:  67%|██████▋   | 173M/260M [01:42<00:46, 1.85MiB/s]
Downloading:  67%|██████▋   | 173M/260M [01:42<00:50, 1.73MiB/s]
Downloading:  67%|██████▋   | 173M/260M [01:42<00:54, 1.58MiB/s]
Downloading:  67%|██████▋   | 173M/260M [01:42<00:59, 1.44MiB/s]
Downloading:  67%|██████▋   | 174M/260M [01:42<00:59, 1.43MiB/s]
Downloading:  67%|██████▋   | 174M/260M [01:42<00:59, 1.45MiB/s]
Downloading:  67%|██████▋   | 174M/260M [01:42<01:00, 1.42MiB/s]
Downloading:  67%|██████▋   | 174M/260M [01:42<01:01, 1.38MiB/s]
Downloading:  67%|██████▋   | 174M/260M [01:43<01:00, 1.42MiB/s]
Downloading:  67%|██████▋   | 174M/260M [01:43<00:54, 1.55MiB/s]
Downloading:  67%|██████▋   | 175M/260M [01:43<00:56, 1.52MiB/s]
Downloading:  67%|██████▋   | 175M/260M [01:43<00:56, 1.50MiB/s]
Downloading:  67%|██████▋   | 175M/260M [01:43<00:59, 1.42MiB/s]
Downloading:  67%|██████▋   | 175M/260M [01:43<00:51, 1.63MiB/s]
Downloading:  68%|██████▊   | 175M/260M [01:43<00:50, 1.68MiB/s]
Downloading:  68%|██████▊   | 176M/260M [01:43<00:52, 1.60MiB/s]
Downloading:  68%|██████▊   | 176M/260M [01:43<00:53, 1.56MiB/s]
Downloading:  68%|██████▊   | 176M/260M [01:44<00:52, 1.61MiB/s]
Downloading:  68%|██████▊   | 176M/260M [01:44<00:57, 1.44MiB/s]
Downloading:  68%|██████▊   | 176M/260M [01:44<01:10, 1.19MiB/s]
Downloading:  68%|██████▊   | 176M/260M [01:44<01:16, 1.09MiB/s]
Downloading:  68%|██████▊   | 177M/260M [01:44<01:03, 1.30MiB/s]
Downloading:  68%|██████▊   | 177M/260M [01:44<00:58, 1.43MiB/s]
Downloading:  68%|██████▊   | 177M/260M [01:44<00:45, 1.82MiB/s]
Downloading:  68%|██████▊   | 177M/260M [01:45<00:40, 2.01MiB/s]
Downloading:  68%|██████▊   | 178M/260M [01:45<00:38, 2.11MiB/s]
Downloading:  69%|██████▊   | 178M/260M [01:45<00:39, 2.08MiB/s]
Downloading:  69%|██████▊   | 178M/260M [01:45<00:36, 2.20MiB/s]
Downloading:  69%|██████▉   | 178M/260M [01:45<00:35, 2.26MiB/s]
Downloading:  69%|██████▉   | 179M/260M [01:45<00:36, 2.24MiB/s]
Downloading:  69%|██████▉   | 179M/260M [01:45<00:31, 2.59MiB/s]
Downloading:  69%|██████▉   | 179M/260M [01:45<00:29, 2.73MiB/s]
Downloading:  69%|██████▉   | 180M/260M [01:45<00:30, 2.65MiB/s]
Downloading:  69%|██████▉   | 180M/260M [01:46<00:29, 2.73MiB/s]
Downloading:  70%|██████▉   | 180M/260M [01:46<00:28, 2.82MiB/s]
Downloading:  70%|██████▉   | 181M/260M [01:46<00:29, 2.64MiB/s]
Downloading:  70%|██████▉   | 181M/260M [01:46<00:33, 2.36MiB/s]
Downloading:  70%|██████▉   | 182M/260M [01:46<00:25, 3.05MiB/s]
Downloading:  70%|███████   | 182M/260M [01:46<00:24, 3.11MiB/s]
Downloading:  70%|███████   | 182M/260M [01:46<00:26, 2.95MiB/s]
Downloading:  70%|███████   | 182M/260M [01:46<00:27, 2.85MiB/s]
Downloading:  70%|███████   | 183M/260M [01:47<00:24, 3.17MiB/s]
Downloading:  71%|███████   | 183M/260M [01:47<00:24, 3.16MiB/s]
Downloading:  71%|███████   | 184M/260M [01:47<00:25, 2.95MiB/s]
Downloading:  71%|███████   | 184M/260M [01:47<00:27, 2.79MiB/s]
Downloading:  71%|███████   | 184M/260M [01:47<00:34, 2.21MiB/s]
Downloading:  71%|███████   | 184M/260M [01:47<00:29, 2.52MiB/s]
Downloading:  71%|███████   | 185M/260M [01:47<00:32, 2.30MiB/s]
Downloading:  71%|███████▏  | 185M/260M [01:47<00:30, 2.46MiB/s]
Downloading:  71%|███████▏  | 185M/260M [01:48<00:30, 2.45MiB/s]
Downloading:  71%|███████▏  | 186M/260M [01:48<00:31, 2.37MiB/s]
Downloading:  72%|███████▏  | 186M/260M [01:48<00:31, 2.34MiB/s]
Downloading:  72%|███████▏  | 186M/260M [01:48<00:29, 2.53MiB/s]
Downloading:  72%|███████▏  | 186M/260M [01:48<00:31, 2.31MiB/s]
Downloading:  72%|███████▏  | 187M/260M [01:48<00:31, 2.28MiB/s]
Downloading:  72%|███████▏  | 187M/260M [01:48<00:31, 2.31MiB/s]
Downloading:  72%|███████▏  | 187M/260M [01:48<00:32, 2.25MiB/s]
Downloading:  72%|███████▏  | 187M/260M [01:48<00:28, 2.51MiB/s]
Downloading:  72%|███████▏  | 188M/260M [01:49<00:30, 2.36MiB/s]
Downloading:  72%|███████▏  | 188M/260M [01:49<00:31, 2.28MiB/s]
Downloading:  73%|███████▎  | 188M/260M [01:49<00:32, 2.22MiB/s]
Downloading:  73%|███████▎  | 188M/260M [01:49<00:38, 1.87MiB/s]
Downloading:  73%|███████▎  | 189M/260M [01:49<00:37, 1.88MiB/s]
Downloading:  73%|███████▎  | 189M/260M [01:49<00:42, 1.68MiB/s]
Downloading:  73%|███████▎  | 189M/260M [01:49<00:42, 1.67MiB/s]
Downloading:  73%|███████▎  | 189M/260M [01:49<00:45, 1.55MiB/s]
Downloading:  73%|███████▎  | 189M/260M [01:50<00:45, 1.55MiB/s]
Downloading:  73%|███████▎  | 189M/260M [01:50<01:42, 683kiB/s]
Downloading:  73%|███████▎  | 190M/260M [01:51<02:59, 390kiB/s]
Downloading:  73%|███████▎  | 190M/260M [01:51<03:22, 346kiB/s]
Downloading:  73%|███████▎  | 190M/260M [01:52<06:10, 188kiB/s]
Downloading:  73%|███████▎  | 190M/260M [01:53<06:11, 188kiB/s]
Downloading:  73%|███████▎  | 190M/260M [01:53<06:41, 174kiB/s]
Downloading:  73%|███████▎  | 190M/260M [01:53<06:33, 177kiB/s]
Downloading:  73%|███████▎  | 190M/260M [01:54<06:26, 180kiB/s]
Downloading:  73%|███████▎  | 190M/260M [01:54<06:24, 181kiB/s]
Downloading:  73%|███████▎  | 190M/260M [01:54<06:16, 185kiB/s]
Downloading:  73%|███████▎  | 190M/260M [01:54<05:43, 202kiB/s]
Downloading:  73%|███████▎  | 190M/260M [01:54<04:43, 245kiB/s]
Downloading:  73%|███████▎  | 190M/260M [01:54<04:32, 255kiB/s]
Downloading:  73%|███████▎  | 190M/260M [01:54<03:30, 329kiB/s]
Downloading:  73%|███████▎  | 190M/260M [01:54<02:52, 401kiB/s]
Downloading:  73%|███████▎  | 190M/260M [01:55<02:46, 417kiB/s]
Downloading:  73%|███████▎  | 190M/260M [01:55<01:59, 580kiB/s]
Downloading:  73%|███████▎  | 191M/260M [01:55<01:44, 661kiB/s]
Downloading:  73%|███████▎  | 191M/260M [01:55<01:45, 651kiB/s]
Downloading:  73%|███████▎  | 191M/260M [01:55<01:36, 717kiB/s]
Downloading:  74%|███████▎  | 191M/260M [01:55<01:23, 822kiB/s]
Downloading:  74%|███████▎  | 191M/260M [01:55<01:22, 836kiB/s]
Downloading:  74%|███████▎  | 191M/260M [01:55<01:24, 815kiB/s]
Downloading:  74%|███████▎  | 191M/260M [01:56<01:23, 815kiB/s]
Downloading:  74%|███████▎  | 191M/260M [01:56<01:27, 780kiB/s]
Downloading:  74%|███████▎  | 191M/260M [01:56<01:18, 870kiB/s]
Downloading:  74%|███████▍  | 191M/260M [01:56<01:11, 948kiB/s]
Downloading:  74%|███████▍  | 192M/260M [01:56<01:14, 912kiB/s]
Downloading:  74%|███████▍  | 192M/260M [01:56<01:11, 951kiB/s]
Downloading:  74%|███████▍  | 192M/260M [01:56<01:10, 964kiB/s]
Downloading:  74%|███████▍  | 192M/260M [01:56<00:55, 1.21MiB/s]
Downloading:  74%|███████▍  | 192M/260M [01:56<00:55, 1.21MiB/s]
Downloading:  74%|███████▍  | 192M/260M [01:57<00:56, 1.20MiB/s]
Downloading:  74%|███████▍  | 192M/260M [01:57<00:57, 1.17MiB/s]
Downloading:  74%|███████▍  | 193M/260M [01:57<01:04, 1.03MiB/s]
Downloading:  74%|███████▍  | 193M/260M [01:57<01:12, 920kiB/s]
Downloading:  74%|███████▍  | 193M/260M [01:57<01:23, 797kiB/s]
Downloading:  74%|███████▍  | 193M/260M [01:57<01:23, 804kiB/s]
Downloading:  74%|███████▍  | 193M/260M [01:57<01:21, 816kiB/s]
Downloading:  74%|███████▍  | 193M/260M [01:58<01:25, 779kiB/s]
Downloading:  74%|███████▍  | 193M/260M [01:58<01:20, 827kiB/s]
Downloading:  74%|███████▍  | 193M/260M [01:58<01:20, 822kiB/s]
Downloading:  74%|███████▍  | 193M/260M [01:58<01:25, 774kiB/s]
Downloading:  75%|███████▍  | 193M/260M [01:58<01:22, 806kiB/s]
Downloading:  75%|███████▍  | 193M/260M [01:58<01:18, 843kiB/s]
Downloading:  75%|███████▍  | 194M/260M [01:58<01:17, 853kiB/s]
Downloading:  75%|███████▍  | 194M/260M [01:58<01:15, 875kiB/s]
Downloading:  75%|███████▍  | 194M/260M [01:58<01:16, 865kiB/s]
Downloading:  75%|███████▍  | 194M/260M [01:59<01:20, 820kiB/s]
Downloading:  75%|███████▍  | 194M/260M [01:59<01:21, 803kiB/s]
Downloading:  75%|███████▍  | 194M/260M [01:59<01:21, 807kiB/s]
Downloading:  75%|███████▍  | 194M/260M [01:59<01:19, 827kiB/s]
Downloading:  75%|███████▍  | 194M/260M [01:59<01:17, 844kiB/s]
Downloading:  75%|███████▍  | 194M/260M [01:59<01:18, 830kiB/s]
Downloading:  75%|███████▍  | 194M/260M [01:59<01:13, 888kiB/s]
Downloading:  75%|███████▍  | 195M/260M [01:59<01:14, 878kiB/s]
Downloading:  75%|███████▍  | 195M/260M [01:59<01:09, 928kiB/s]
Downloading:  75%|███████▌  | 195M/260M [02:00<01:10, 915kiB/s]
Downloading:  75%|███████▌  | 195M/260M [02:00<01:04, 999kiB/s]
Downloading:  75%|███████▌  | 195M/260M [02:00<01:01, 1.05MiB/s]
Downloading:  75%|███████▌  | 195M/260M [02:00<01:02, 1.03MiB/s]
Downloading:  75%|███████▌  | 195M/260M [02:00<01:05, 977kiB/s]
Downloading:  75%|███████▌  | 195M/260M [02:00<01:13, 871kiB/s]
Downloading:  75%|███████▌  | 195M/260M [02:00<01:12, 885kiB/s]
Downloading:  75%|███████▌  | 196M/260M [02:00<01:10, 903kiB/s]
Downloading:  75%|███████▌  | 196M/260M [02:00<01:12, 881kiB/s]
Downloading:  75%|███████▌  | 196M/260M [02:01<01:16, 838kiB/s]
Downloading:  75%|███████▌  | 196M/260M [02:01<01:13, 865kiB/s]
Downloading:  75%|███████▌  | 196M/260M [02:01<01:13, 866kiB/s]
Downloading:  75%|███████▌  | 196M/260M [02:01<01:15, 840kiB/s]
Downloading:  76%|███████▌  | 196M/260M [02:01<01:15, 846kiB/s]
Downloading:  76%|███████▌  | 196M/260M [02:01<01:25, 740kiB/s]
Downloading:  76%|███████▌  | 196M/260M [02:01<01:21, 779kiB/s]
Downloading:  76%|███████▌  | 196M/260M [02:01<01:15, 841kiB/s]
Downloading:  76%|███████▌  | 196M/260M [02:01<01:16, 830kiB/s]
Downloading:  76%|███████▌  | 197M/260M [02:02<01:13, 852kiB/s]
Downloading:  76%|███████▌  | 197M/260M [02:02<01:13, 858kiB/s]
Downloading:  76%|███████▌  | 197M/260M [02:02<01:15, 833kiB/s]
Downloading:  76%|███████▌  | 197M/260M [02:02<01:15, 832kiB/s]
Downloading:  76%|███████▌  | 197M/260M [02:02<01:15, 826kiB/s]
Downloading:  76%|███████▌  | 197M/260M [02:02<01:15, 823kiB/s]
Downloading:  76%|███████▌  | 197M/260M [02:02<01:27, 717kiB/s]
Downloading:  76%|███████▌  | 197M/260M [02:02<01:21, 767kiB/s]
Downloading:  76%|███████▌  | 197M/260M [02:03<01:20, 771kiB/s]
Downloading:  76%|███████▌  | 197M/260M [02:03<01:25, 731kiB/s]
Downloading:  76%|███████▌  | 197M/260M [02:03<01:22, 751kiB/s]
Downloading:  76%|███████▌  | 198M/260M [02:03<01:23, 746kiB/s]
Downloading:  76%|███████▌  | 198M/260M [02:03<01:25, 729kiB/s]
Downloading:  76%|███████▌  | 198M/260M [02:03<01:13, 840kiB/s]
Downloading:  76%|███████▌  | 198M/260M [02:03<01:16, 804kiB/s]
Downloading:  76%|███████▋  | 198M/260M [02:03<01:09, 889kiB/s]
Downloading:  76%|███████▋  | 198M/260M [02:03<01:09, 889kiB/s]
Downloading:  76%|███████▋  | 198M/260M [02:04<01:08, 890kiB/s]
Downloading:  76%|███████▋  | 198M/260M [02:04<01:10, 872kiB/s]
Downloading:  76%|███████▋  | 198M/260M [02:04<01:10, 865kiB/s]
Downloading:  76%|███████▋  | 198M/260M [02:04<01:12, 845kiB/s]
Downloading:  76%|███████▋  | 199M/260M [02:04<01:15, 810kiB/s]
Downloading:  77%|███████▋  | 199M/260M [02:04<01:13, 826kiB/s]
Downloading:  77%|███████▋  | 199M/260M [02:04<01:11, 853kiB/s]
Downloading:  77%|███████▋  | 199M/260M [02:04<01:18, 771kiB/s]
Downloading:  77%|███████▋  | 199M/260M [02:05<01:24, 719kiB/s]
Downloading:  77%|███████▋  | 199M/260M [02:05<01:32, 657kiB/s]
Downloading:  77%|███████▋  | 199M/260M [02:05<01:48, 558kiB/s]
Downloading:  77%|███████▋  | 199M/260M [02:06<04:21, 231kiB/s]
Downloading:  77%|███████▋  | 199M/260M [02:06<05:12, 193kiB/s]
Downloading:  77%|███████▋  | 199M/260M [02:06<05:20, 189kiB/s]
Downloading:  77%|███████▋  | 199M/260M [02:06<05:51, 172kiB/s]
Downloading:  77%|███████▋  | 199M/260M [02:07<05:43, 176kiB/s]
Downloading:  77%|███████▋  | 199M/260M [02:07<05:55, 169kiB/s]
Downloading:  77%|███████▋  | 199M/260M [02:07<05:50, 172kiB/s]
Downloading:  77%|███████▋  | 199M/260M [02:07<08:11, 123kiB/s]
Downloading:  77%|███████▋  | 199M/260M [02:07<07:59, 126kiB/s]
Downloading:  77%|███████▋  | 199M/260M [02:07<07:49, 128kiB/s]
Downloading:  77%|███████▋  | 199M/260M [02:07<07:36, 132kiB/s]
Downloading:  77%|███████▋  | 199M/260M [02:08<07:09, 140kiB/s]
Downloading:  77%|███████▋  | 199M/260M [02:08<08:07, 123kiB/s]
Downloading:  77%|███████▋  | 199M/260M [02:08<12:28, 80.4kiB/s]
Downloading:  77%|███████▋  | 199M/260M [02:08<06:07, 164kiB/s]
Downloading:  77%|███████▋  | 199M/260M [02:08<05:47, 173kiB/s]
Downloading:  77%|███████▋  | 200M/260M [02:09<04:44, 211kiB/s]
Downloading:  77%|███████▋  | 200M/260M [02:09<04:39, 214kiB/s]
Downloading:  77%|███████▋  | 200M/260M [02:09<03:55, 255kiB/s]
Downloading:  77%|███████▋  | 200M/260M [02:09<03:42, 270kiB/s]
Downloading:  77%|███████▋  | 200M/260M [02:09<04:02, 247kiB/s]
Downloading:  77%|███████▋  | 200M/260M [02:09<04:37, 216kiB/s]
Downloading:  77%|███████▋  | 200M/260M [02:09<03:19, 299kiB/s]
Downloading:  77%|███████▋  | 200M/260M [02:10<02:55, 340kiB/s]
Downloading:  77%|███████▋  | 200M/260M [02:10<02:40, 371kiB/s]
Downloading:  77%|███████▋  | 200M/260M [02:10<02:29, 399kiB/s]
Downloading:  77%|███████▋  | 200M/260M [02:10<02:33, 389kiB/s]
Downloading:  77%|███████▋  | 200M/260M [02:10<01:53, 526kiB/s]
Downloading:  77%|███████▋  | 200M/260M [02:10<01:51, 531kiB/s]
Downloading:  77%|███████▋  | 200M/260M [02:10<01:48, 545kiB/s]
Downloading:  77%|███████▋  | 200M/260M [02:10<01:38, 604kiB/s]
Downloading:  77%|███████▋  | 200M/260M [02:11<01:21, 721kiB/s]
Downloading:  77%|███████▋  | 201M/260M [02:11<01:19, 744kiB/s]
Downloading:  77%|███████▋  | 201M/260M [02:11<01:19, 738kiB/s]
Downloading:  77%|███████▋  | 201M/260M [02:11<01:16, 765kiB/s]
Downloading:  77%|███████▋  | 201M/260M [02:11<00:54, 1.07MiB/s]
Downloading:  77%|███████▋  | 201M/260M [02:11<00:52, 1.11MiB/s]
Downloading:  78%|███████▊  | 201M/260M [02:11<00:48, 1.20MiB/s]
Downloading:  78%|███████▊  | 201M/260M [02:11<00:46, 1.25MiB/s]
Downloading:  78%|███████▊  | 201M/260M [02:11<00:43, 1.33MiB/s]
Downloading:  78%|███████▊  | 202M/260M [02:12<00:46, 1.24MiB/s]
Downloading:  78%|███████▊  | 202M/260M [02:12<00:44, 1.30MiB/s]
Downloading:  78%|███████▊  | 202M/260M [02:12<00:36, 1.59MiB/s]
Downloading:  78%|███████▊  | 202M/260M [02:12<00:36, 1.59MiB/s]
Downloading:  78%|███████▊  | 202M/260M [02:12<00:35, 1.62MiB/s]
Downloading:  78%|███████▊  | 203M/260M [02:12<00:29, 1.95MiB/s]
Downloading:  78%|███████▊  | 203M/260M [02:12<00:24, 2.28MiB/s]
Downloading:  78%|███████▊  | 203M/260M [02:12<00:28, 1.99MiB/s]
Downloading:  78%|███████▊  | 203M/260M [02:12<00:27, 2.05MiB/s]
Downloading:  79%|███████▊  | 204M/260M [02:13<00:22, 2.50MiB/s]
Downloading:  79%|███████▊  | 204M/260M [02:13<00:22, 2.46MiB/s]
Downloading:  79%|███████▊  | 204M/260M [02:13<00:22, 2.43MiB/s]
Downloading:  79%|███████▉  | 205M/260M [02:13<00:21, 2.53MiB/s]
Downloading:  79%|███████▉  | 205M/260M [02:13<00:22, 2.42MiB/s]
Downloading:  79%|███████▉  | 205M/260M [02:13<00:22, 2.40MiB/s]
Downloading:  79%|███████▉  | 205M/260M [02:13<00:20, 2.62MiB/s]
Downloading:  79%|███████▉  | 206M/260M [02:13<00:21, 2.50MiB/s]
Downloading:  79%|███████▉  | 206M/260M [02:13<00:23, 2.26MiB/s]
Downloading:  79%|███████▉  | 206M/260M [02:14<00:25, 2.07MiB/s]
Downloading:  80%|███████▉  | 206M/260M [02:14<00:24, 2.16MiB/s]
Downloading:  80%|███████▉  | 207M/260M [02:14<00:25, 2.11MiB/s]
Downloading:  80%|███████▉  | 207M/260M [02:14<00:26, 1.99MiB/s]
Downloading:  80%|███████▉  | 207M/260M [02:14<00:28, 1.82MiB/s]
Downloading:  80%|███████▉  | 207M/260M [02:14<00:23, 2.17MiB/s]
Downloading:  80%|████████  | 208M/260M [02:14<00:22, 2.30MiB/s]
Downloading:  80%|████████  | 208M/260M [02:14<00:24, 2.14MiB/s]
Downloading:  80%|████████  | 208M/260M [02:14<00:23, 2.19MiB/s]
Downloading:  80%|████████  | 209M/260M [02:15<00:20, 2.48MiB/s]
Downloading:  80%|████████  | 209M/260M [02:15<00:20, 2.45MiB/s]
Downloading:  81%|████████  | 209M/260M [02:15<00:21, 2.37MiB/s]
Downloading:  81%|████████  | 209M/260M [02:15<00:20, 2.48MiB/s]
Downloading:  81%|████████  | 210M/260M [02:15<00:21, 2.29MiB/s]
Downloading:  81%|████████  | 210M/260M [02:15<00:22, 2.22MiB/s]
Downloading:  81%|████████  | 210M/260M [02:15<00:22, 2.22MiB/s]
Downloading:  81%|████████  | 210M/260M [02:15<00:22, 2.18MiB/s]
Downloading:  81%|████████  | 210M/260M [02:15<00:23, 2.10MiB/s]
Downloading:  81%|████████  | 211M/260M [02:16<00:26, 1.87MiB/s]
Downloading:  81%|████████▏ | 211M/260M [02:16<00:20, 2.32MiB/s]
Downloading:  81%|████████▏ | 211M/260M [02:16<00:21, 2.29MiB/s]
Downloading:  82%|████████▏ | 212M/260M [02:16<00:24, 1.99MiB/s]
Downloading:  82%|████████▏ | 212M/260M [02:16<00:21, 2.21MiB/s]
Downloading:  82%|████████▏ | 212M/260M [02:16<00:22, 2.16MiB/s]
Downloading:  82%|████████▏ | 212M/260M [02:16<00:21, 2.25MiB/s]
Downloading:  82%|████████▏ | 213M/260M [02:16<00:20, 2.24MiB/s]
Downloading:  82%|████████▏ | 213M/260M [02:17<00:20, 2.32MiB/s]
Downloading:  82%|████████▏ | 213M/260M [02:17<00:20, 2.25MiB/s]
Downloading:  82%|████████▏ | 213M/260M [02:17<00:24, 1.89MiB/s]
Downloading:  82%|████████▏ | 213M/260M [02:17<00:25, 1.81MiB/s]
Downloading:  82%|████████▏ | 214M/260M [02:17<00:22, 2.02MiB/s]
Downloading:  82%|████████▏ | 214M/260M [02:17<00:24, 1.88MiB/s]
Downloading:  83%|████████▎ | 214M/260M [02:17<00:23, 1.90MiB/s]
Downloading:  83%|████████▎ | 214M/260M [02:17<00:21, 2.13MiB/s]
Downloading:  83%|████████▎ | 215M/260M [02:17<00:20, 2.14MiB/s]
Downloading:  83%|████████▎ | 215M/260M [02:18<00:22, 1.98MiB/s]
Downloading:  83%|████████▎ | 215M/260M [02:18<00:24, 1.80MiB/s]
Downloading:  83%|████████▎ | 215M/260M [02:18<00:24, 1.83MiB/s]
Downloading:  83%|████████▎ | 216M/260M [02:18<00:22, 1.93MiB/s]
Downloading:  83%|████████▎ | 216M/260M [02:18<00:24, 1.82MiB/s]
Downloading:  83%|████████▎ | 216M/260M [02:18<00:27, 1.59MiB/s]
Downloading:  83%|████████▎ | 216M/260M [02:18<00:27, 1.57MiB/s]
Downloading:  83%|████████▎ | 216M/260M [02:18<00:27, 1.55MiB/s]
Downloading:  83%|████████▎ | 216M/260M [02:19<00:28, 1.50MiB/s]
Downloading:  83%|████████▎ | 217M/260M [02:19<00:28, 1.50MiB/s]
Downloading:  83%|████████▎ | 217M/260M [02:19<00:29, 1.48MiB/s]
Downloading:  84%|████████▎ | 217M/260M [02:19<00:28, 1.48MiB/s]
Downloading:  84%|████████▎ | 217M/260M [02:19<00:30, 1.42MiB/s]
Downloading:  84%|████████▎ | 217M/260M [02:19<00:34, 1.22MiB/s]
Downloading:  84%|████████▎ | 217M/260M [02:19<00:34, 1.22MiB/s]
Downloading:  84%|████████▍ | 217M/260M [02:19<00:34, 1.22MiB/s]
Downloading:  84%|████████▍ | 218M/260M [02:19<00:34, 1.22MiB/s]
Downloading:  84%|████████▍ | 218M/260M [02:20<00:34, 1.23MiB/s]
Downloading:  84%|████████▍ | 218M/260M [02:20<01:38, 424kiB/s]
Downloading:  84%|████████▍ | 218M/260M [02:21<02:18, 302kiB/s]
Downloading:  84%|████████▍ | 218M/260M [02:22<03:18, 209kiB/s]
Downloading:  84%|████████▍ | 218M/260M [02:22<03:48, 182kiB/s]
Downloading:  84%|████████▍ | 218M/260M [02:22<03:54, 177kiB/s]
Downloading:  84%|████████▍ | 218M/260M [02:23<04:17, 161kiB/s]
Downloading:  84%|████████▍ | 218M/260M [02:23<05:22, 129kiB/s]
Downloading:  84%|████████▍ | 218M/260M [02:23<05:03, 137kiB/s]
Downloading:  84%|████████▍ | 218M/260M [02:23<04:26, 155kiB/s]
Downloading:  84%|████████▍ | 218M/260M [02:24<03:55, 176kiB/s]
Downloading:  84%|████████▍ | 218M/260M [02:24<03:02, 227kiB/s]
Downloading:  84%|████████▍ | 218M/260M [02:24<02:21, 292kiB/s]
Downloading:  84%|████████▍ | 218M/260M [02:24<01:52, 366kiB/s]
Downloading:  84%|████████▍ | 218M/260M [02:24<01:36, 427kiB/s]
Downloading:  84%|████████▍ | 219M/260M [02:24<01:23, 490kiB/s]
Downloading:  84%|████████▍ | 219M/260M [02:24<01:09, 592kiB/s]
Downloading:  84%|████████▍ | 219M/260M [02:24<01:01, 661kiB/s]
Downloading:  84%|████████▍ | 219M/260M [02:24<00:59, 685kiB/s]
Downloading:  84%|████████▍ | 219M/260M [02:25<00:59, 684kiB/s]
Downloading:  84%|████████▍ | 219M/260M [02:25<00:56, 717kiB/s]
Downloading:  84%|████████▍ | 219M/260M [02:25<00:50, 799kiB/s]
Downloading:  84%|████████▍ | 219M/260M [02:25<00:53, 753kiB/s]
Downloading:  84%|████████▍ | 219M/260M [02:25<00:52, 770kiB/s]
Downloading:  85%|████████▍ | 219M/260M [02:25<00:52, 766kiB/s]
Downloading:  85%|████████▍ | 220M/260M [02:25<00:44, 901kiB/s]
Downloading:  85%|████████▍ | 220M/260M [02:25<00:45, 871kiB/s]
Downloading:  85%|████████▍ | 220M/260M [02:26<00:45, 869kiB/s]
Downloading:  85%|████████▍ | 220M/260M [02:26<00:43, 917kiB/s]
Downloading:  85%|████████▍ | 220M/260M [02:26<00:43, 914kiB/s]
Downloading:  85%|████████▍ | 220M/260M [02:26<00:39, 1.01MiB/s]
Downloading:  85%|████████▍ | 220M/260M [02:26<00:37, 1.04MiB/s]
Downloading:  85%|████████▍ | 220M/260M [02:26<00:37, 1.03MiB/s]
Downloading:  85%|████████▍ | 220M/260M [02:26<00:32, 1.21MiB/s]
Downloading:  85%|████████▍ | 221M/260M [02:26<00:29, 1.33MiB/s]
Downloading:  85%|████████▌ | 221M/260M [02:26<00:31, 1.23MiB/s]
Downloading:  85%|████████▌ | 221M/260M [02:26<00:31, 1.22MiB/s]
Downloading:  85%|████████▌ | 221M/260M [02:27<00:26, 1.45MiB/s]
Downloading:  85%|████████▌ | 221M/260M [02:27<00:27, 1.40MiB/s]
Downloading:  85%|████████▌ | 221M/260M [02:27<00:25, 1.49MiB/s]
Downloading:  85%|████████▌ | 222M/260M [02:27<00:25, 1.49MiB/s]
Downloading:  85%|████████▌ | 222M/260M [02:27<00:29, 1.29MiB/s]
Downloading:  85%|████████▌ | 222M/260M [02:27<00:27, 1.37MiB/s]
Downloading:  86%|████████▌ | 222M/260M [02:27<00:28, 1.33MiB/s]
Downloading:  86%|████████▌ | 222M/260M [02:27<00:28, 1.33MiB/s]
Downloading:  86%|████████▌ | 222M/260M [02:28<00:36, 1.02MiB/s]
Downloading:  86%|████████▌ | 222M/260M [02:28<00:33, 1.10MiB/s]
Downloading:  86%|████████▌ | 223M/260M [02:28<00:31, 1.18MiB/s]
Downloading:  86%|████████▌ | 223M/260M [02:28<00:30, 1.19MiB/s]
Downloading:  86%|████████▌ | 223M/260M [02:28<00:25, 1.42MiB/s]
Downloading:  86%|████████▌ | 223M/260M [02:28<00:23, 1.56MiB/s]
Downloading:  86%|████████▌ | 223M/260M [02:28<00:22, 1.58MiB/s]
Downloading:  86%|████████▌ | 223M/260M [02:28<00:23, 1.52MiB/s]
Downloading:  86%|████████▌ | 224M/260M [02:28<00:22, 1.58MiB/s]
Downloading:  86%|████████▌ | 224M/260M [02:29<00:23, 1.54MiB/s]
Downloading:  86%|████████▋ | 224M/260M [02:29<00:23, 1.54MiB/s]
Downloading:  86%|████████▋ | 224M/260M [02:29<00:25, 1.40MiB/s]
Downloading:  86%|████████▋ | 224M/260M [02:29<00:25, 1.36MiB/s]
Downloading:  86%|████████▋ | 224M/260M [02:29<00:26, 1.32MiB/s]
Downloading:  87%|████████▋ | 225M/260M [02:29<00:26, 1.32MiB/s]
Downloading:  87%|████████▋ | 225M/260M [02:29<00:23, 1.45MiB/s]
Downloading:  87%|████████▋ | 225M/260M [02:29<00:22, 1.54MiB/s]
Downloading:  87%|████████▋ | 225M/260M [02:29<00:22, 1.54MiB/s]
Downloading:  87%|████████▋ | 225M/260M [02:30<00:22, 1.55MiB/s]
Downloading:  87%|████████▋ | 226M/260M [02:30<00:18, 1.81MiB/s]
Downloading:  87%|████████▋ | 226M/260M [02:30<00:17, 1.88MiB/s]
Downloading:  87%|████████▋ | 226M/260M [02:30<00:18, 1.84MiB/s]
Downloading:  87%|████████▋ | 226M/260M [02:30<00:18, 1.82MiB/s]
Downloading:  87%|████████▋ | 226M/260M [02:30<00:18, 1.81MiB/s]
Downloading:  87%|████████▋ | 227M/260M [02:30<00:18, 1.75MiB/s]
Downloading:  87%|████████▋ | 227M/260M [02:30<00:17, 1.84MiB/s]
Downloading:  87%|████████▋ | 227M/260M [02:30<00:18, 1.78MiB/s]
Downloading:  88%|████████▊ | 227M/260M [02:31<00:18, 1.73MiB/s]
Downloading:  88%|████████▊ | 227M/260M [02:31<00:19, 1.63MiB/s]
Downloading:  88%|████████▊ | 227M/260M [02:31<00:19, 1.64MiB/s]
Downloading:  88%|████████▊ | 228M/260M [02:31<00:19, 1.60MiB/s]
Downloading:  88%|████████▊ | 228M/260M [02:31<00:20, 1.57MiB/s]
Downloading:  88%|████████▊ | 228M/260M [02:31<00:19, 1.64MiB/s]
Downloading:  88%|████████▊ | 228M/260M [02:31<00:18, 1.70MiB/s]
Downloading:  88%|████████▊ | 228M/260M [02:31<00:17, 1.79MiB/s]
Downloading:  88%|████████▊ | 229M/260M [02:32<00:18, 1.66MiB/s]
Downloading:  88%|████████▊ | 229M/260M [02:32<00:15, 1.97MiB/s]
Downloading:  88%|████████▊ | 229M/260M [02:32<00:16, 1.90MiB/s]
Downloading:  88%|████████▊ | 229M/260M [02:32<00:15, 1.99MiB/s]
Downloading:  88%|████████▊ | 230M/260M [02:32<00:15, 1.96MiB/s]
Downloading:  89%|████████▊ | 230M/260M [02:32<00:17, 1.67MiB/s]
Downloading:  89%|████████▊ | 230M/260M [02:32<00:18, 1.64MiB/s]
Downloading:  89%|████████▊ | 230M/260M [02:32<00:17, 1.70MiB/s]
Downloading:  89%|████████▉ | 230M/260M [02:32<00:16, 1.78MiB/s]
Downloading:  89%|████████▉ | 231M/260M [02:33<00:15, 1.84MiB/s]
Downloading:  89%|████████▉ | 231M/260M [02:33<00:16, 1.78MiB/s]
Downloading:  89%|████████▉ | 231M/260M [02:33<00:17, 1.64MiB/s]
Downloading:  89%|████████▉ | 231M/260M [02:33<00:15, 1.86MiB/s]
Downloading:  89%|████████▉ | 231M/260M [02:33<00:14, 1.89MiB/s]
Downloading:  89%|████████▉ | 232M/260M [02:33<00:15, 1.84MiB/s]
Downloading:  89%|████████▉ | 232M/260M [02:33<00:14, 1.87MiB/s]
Downloading:  89%|████████▉ | 232M/260M [02:33<00:13, 2.04MiB/s]
Downloading:  89%|████████▉ | 232M/260M [02:33<00:13, 2.00MiB/s]
Downloading:  90%|████████▉ | 232M/260M [02:34<00:14, 1.89MiB/s]
Downloading:  90%|████████▉ | 233M/260M [02:34<00:14, 1.79MiB/s]
Downloading:  90%|████████▉ | 233M/260M [02:34<00:14, 1.84MiB/s]
Downloading:  90%|████████▉ | 233M/260M [02:34<00:15, 1.66MiB/s]
Downloading:  90%|████████▉ | 233M/260M [02:34<00:15, 1.72MiB/s]
Downloading:  90%|████████▉ | 233M/260M [02:34<00:16, 1.62MiB/s]
Downloading:  90%|█████████ | 234M/260M [02:34<00:14, 1.79MiB/s]
Downloading:  90%|█████████ | 234M/260M [02:34<00:15, 1.68MiB/s]
Downloading:  90%|█████████ | 234M/260M [02:35<00:14, 1.77MiB/s]
Downloading:  90%|█████████ | 234M/260M [02:35<00:23, 1.09MiB/s]
Downloading:  90%|█████████ | 234M/260M [02:36<01:06, 381kiB/s]
Downloading:  90%|█████████ | 235M/260M [02:37<01:31, 274kiB/s]
Downloading:  90%|█████████ | 235M/260M [02:38<01:57, 213kiB/s]
Downloading:  90%|█████████ | 235M/260M [02:38<02:24, 173kiB/s]
Downloading:  90%|█████████ | 235M/260M [02:38<01:52, 220kiB/s]
Downloading:  90%|█████████ | 235M/260M [02:39<01:54, 216kiB/s]
Downloading:  90%|█████████ | 235M/260M [02:39<01:46, 232kiB/s]
Downloading:  90%|█████████ | 235M/260M [02:39<01:44, 236kiB/s]
Downloading:  91%|█████████ | 235M/260M [02:39<01:44, 236kiB/s]
Downloading:  91%|█████████ | 235M/260M [02:39<01:30, 270kiB/s]
Downloading:  91%|█████████ | 235M/260M [02:39<01:20, 304kiB/s]
Downloading:  91%|█████████ | 235M/260M [02:39<01:18, 313kiB/s]
Downloading:  91%|█████████ | 235M/260M [02:40<01:16, 322kiB/s]
Downloading:  91%|█████████ | 235M/260M [02:40<01:17, 317kiB/s]
Downloading:  91%|█████████ | 235M/260M [02:40<01:10, 347kiB/s]
Downloading:  91%|█████████ | 235M/260M [02:40<00:54, 448kiB/s]
Downloading:  91%|█████████ | 235M/260M [02:40<00:42, 574kiB/s]
Downloading:  91%|█████████ | 235M/260M [02:40<00:33, 710kiB/s]
Downloading:  91%|█████████ | 236M/260M [02:40<00:27, 857kiB/s]
Downloading:  91%|█████████ | 236M/260M [02:40<00:25, 941kiB/s]
Downloading:  91%|█████████ | 236M/260M [02:40<00:21, 1.11MiB/s]
Downloading:  91%|█████████ | 236M/260M [02:41<00:19, 1.19MiB/s]
Downloading:  91%|█████████ | 236M/260M [02:41<00:17, 1.31MiB/s]
Downloading:  91%|█████████ | 236M/260M [02:41<00:15, 1.51MiB/s]
Downloading:  91%|█████████ | 237M/260M [02:41<00:13, 1.66MiB/s]
Downloading:  91%|█████████▏| 237M/260M [02:41<00:12, 1.88MiB/s]
Downloading:  91%|█████████▏| 237M/260M [02:41<00:11, 1.97MiB/s]
Downloading:  91%|█████████▏| 237M/260M [02:41<00:10, 2.19MiB/s]
Downloading:  92%|█████████▏| 238M/260M [02:41<00:10, 2.11MiB/s]
Downloading:  92%|█████████▏| 238M/260M [02:41<00:09, 2.28MiB/s]
Downloading:  92%|█████████▏| 238M/260M [02:41<00:08, 2.53MiB/s]
Downloading:  92%|█████████▏| 238M/260M [02:42<00:08, 2.51MiB/s]
Downloading:  92%|█████████▏| 239M/260M [02:42<00:07, 2.86MiB/s]
Downloading:  92%|█████████▏| 239M/260M [02:42<00:06, 3.06MiB/s]
Downloading:  92%|█████████▏| 240M/260M [02:42<00:05, 3.40MiB/s]
Downloading:  92%|█████████▏| 240M/260M [02:42<00:05, 3.35MiB/s]
Downloading:  93%|█████████▎| 240M/260M [02:42<00:06, 3.16MiB/s]
Downloading:  93%|█████████▎| 241M/260M [02:42<00:06, 3.09MiB/s]
Downloading:  93%|█████████▎| 241M/260M [02:42<00:06, 2.93MiB/s]
Downloading:  93%|█████████▎| 241M/260M [02:42<00:05, 3.15MiB/s]
Downloading:  93%|█████████▎| 242M/260M [02:43<00:04, 3.88MiB/s]
Downloading:  93%|█████████▎| 242M/260M [02:43<00:04, 3.48MiB/s]
Downloading:  94%|█████████▎| 243M/260M [02:43<00:05, 3.13MiB/s]
Downloading:  94%|█████████▍| 243M/260M [02:43<00:04, 3.94MiB/s]
Downloading:  94%|█████████▍| 244M/260M [02:43<00:03, 4.00MiB/s]
Downloading:  94%|█████████▍| 244M/260M [02:43<00:03, 3.84MiB/s]
Downloading:  94%|█████████▍| 245M/260M [02:43<00:03, 4.17MiB/s]
Downloading:  94%|█████████▍| 245M/260M [02:43<00:03, 3.80MiB/s]
Downloading:  95%|█████████▍| 246M/260M [02:44<00:03, 4.06MiB/s]
Downloading:  95%|█████████▍| 246M/260M [02:44<00:03, 3.82MiB/s]
Downloading:  95%|█████████▍| 246M/260M [02:44<00:03, 3.56MiB/s]
Downloading:  95%|█████████▌| 247M/260M [02:44<00:03, 3.91MiB/s]
Downloading:  95%|█████████▌| 247M/260M [02:44<00:02, 4.06MiB/s]
Downloading:  95%|█████████▌| 248M/260M [02:44<00:03, 3.80MiB/s]
Downloading:  96%|█████████▌| 248M/260M [02:44<00:03, 3.34MiB/s]
Downloading:  96%|█████████▌| 249M/260M [02:44<00:03, 3.24MiB/s]
Downloading:  96%|█████████▌| 249M/260M [02:44<00:02, 3.57MiB/s]
Downloading:  96%|█████████▌| 250M/260M [02:45<00:02, 3.84MiB/s]
Downloading:  96%|█████████▋| 250M/260M [02:45<00:02, 3.70MiB/s]
Downloading:  96%|█████████▋| 250M/260M [02:45<00:02, 3.69MiB/s]
Downloading:  97%|█████████▋| 251M/260M [02:45<00:02, 3.68MiB/s]
Downloading:  97%|█████████▋| 251M/260M [02:45<00:02, 3.53MiB/s]
Downloading:  97%|█████████▋| 252M/260M [02:45<00:02, 3.75MiB/s]
Downloading:  97%|█████████▋| 252M/260M [02:45<00:01, 4.02MiB/s]
Downloading:  97%|█████████▋| 252M/260M [02:45<00:01, 3.82MiB/s]
Downloading:  97%|█████████▋| 253M/260M [02:45<00:01, 4.18MiB/s]
Downloading:  98%|█████████▊| 253M/260M [02:46<00:01, 3.88MiB/s]
Downloading:  98%|█████████▊| 254M/260M [02:46<00:01, 3.58MiB/s]
Downloading:  98%|█████████▊| 254M/260M [02:46<00:01, 3.89MiB/s]
Downloading:  98%|█████████▊| 255M/260M [02:46<00:01, 3.69MiB/s]
Downloading:  98%|█████████▊| 255M/260M [02:46<00:01, 4.17MiB/s]
Downloading:  98%|█████████▊| 256M/260M [02:46<00:01, 3.78MiB/s]
Downloading:  99%|█████████▊| 256M/260M [02:46<00:00, 3.65MiB/s]
Downloading:  99%|█████████▉| 256M/260M [02:46<00:00, 3.40MiB/s]
Downloading:  99%|█████████▉| 257M/260M [02:47<00:00, 3.57MiB/s]
Downloading:  99%|█████████▉| 257M/260M [02:47<00:00, 3.95MiB/s]
Downloading:  99%|█████████▉| 258M/260M [02:47<00:00, 3.47MiB/s]
Downloading:  99%|█████████▉| 258M/260M [02:47<00:00, 3.74MiB/s]
Downloading: 100%|█████████▉| 259M/260M [02:47<00:00, 4.02MiB/s]
Downloading: 100%|█████████▉| 259M/260M [02:47<00:00, 4.06MiB/s]
Downloading: 100%|██████████| 260M/260M [02:47<00:00, 1.55MiB/s]

Extracting:   0%|          | 0/324045 [00:00<?, ?file/s]
Extracting:   1%|          | 2749/324045 [00:00<00:11, 27486.88file/s]
Extracting:   2%|▏         | 5967/324045 [00:00<00:10, 30243.27file/s]
Extracting:   3%|▎         | 9413/324045 [00:00<00:09, 32167.14file/s]
Extracting:   4%|▍         | 12786/324045 [00:00<00:09, 32780.92file/s]
Extracting:   5%|▌         | 16249/324045 [00:00<00:09, 33446.44file/s]
Extracting:   6%|▌         | 19594/324045 [00:00<00:09, 33426.20file/s]
Extracting:   7%|▋         | 22937/324045 [00:00<00:09, 32192.43file/s]
Extracting:   8%|▊         | 26344/324045 [00:00<00:09, 32773.86file/s]
Extracting:   9%|▉         | 29629/324045 [00:00<00:09, 32000.39file/s]
Extracting:  10%|█         | 33082/324045 [00:01<00:08, 32757.61file/s]
Extracting:  11%|█         | 36366/324045 [00:01<00:08, 32714.77file/s]
Extracting:  12%|█▏        | 39643/324045 [00:01<00:08, 31730.55file/s]
Extracting:  13%|█▎        | 42825/324045 [00:01<00:08, 31371.47file/s]
Extracting:  14%|█▍        | 45969/324045 [00:01<00:08, 31380.41file/s]
Extracting:  15%|█▌        | 49254/324045 [00:01<00:08, 31811.92file/s]
Extracting:  16%|█▌        | 52580/324045 [00:01<00:08, 32238.66file/s]
Extracting:  17%|█▋        | 55958/324045 [00:01<00:08, 32694.67file/s]
Extracting:  18%|█▊        | 59315/324045 [00:01<00:08, 32953.09file/s]
Extracting:  19%|█▉        | 62613/324045 [00:01<00:08, 32390.96file/s]
Extracting:  20%|██        | 66085/324045 [00:02<00:07, 33076.88file/s]
Extracting:  21%|██▏       | 69455/324045 [00:02<00:07, 33260.43file/s]
Extracting:  22%|██▏       | 72784/324045 [00:02<00:07, 33166.67file/s]
Extracting:  24%|██▎       | 76240/324045 [00:02<00:07, 33581.17file/s]
Extracting:  25%|██▍       | 79613/324045 [00:02<00:07, 33624.95file/s]
Extracting:  26%|██▌       | 83008/324045 [00:02<00:07, 33719.85file/s]
Extracting:  27%|██▋       | 86472/324045 [00:02<00:06, 33994.04file/s]
Extracting:  28%|██▊       | 89873/324045 [00:02<00:07, 33339.31file/s]
Extracting:  29%|██▉       | 93275/324045 [00:02<00:06, 33538.13file/s]
Extracting:  30%|██▉       | 96632/324045 [00:02<00:06, 33500.64file/s]
Extracting:  31%|███       | 99984/324045 [00:03<00:06, 32695.36file/s]
Extracting:  32%|███▏      | 103283/324045 [00:03<00:06, 32780.55file/s]
Extracting:  33%|███▎      | 106565/324045 [00:03<00:06, 32269.00file/s]
Extracting:  34%|███▍      | 109899/324045 [00:03<00:06, 32582.75file/s]
Extracting:  35%|███▍      | 113161/324045 [00:03<00:06, 31898.36file/s]
Extracting:  36%|███▌      | 116356/324045 [00:03<00:06, 31466.39file/s]
Extracting:  37%|███▋      | 119643/324045 [00:03<00:06, 31874.12file/s]
Extracting:  38%|███▊      | 123068/324045 [00:03<00:06, 32571.54file/s]
Extracting:  39%|███▉      | 126381/324045 [00:03<00:06, 32736.36file/s]
Extracting:  40%|████      | 129818/324045 [00:03<00:05, 33220.02file/s]
Extracting:  41%|████      | 133143/324045 [00:04<00:05, 33202.03file/s]
Extracting:  42%|████▏     | 136520/324045 [00:04<00:05, 33356.70file/s]
Extracting:  43%|████▎     | 139881/324045 [00:04<00:05, 33431.67file/s]
Extracting:  44%|████▍     | 143226/324045 [00:04<00:05, 32002.14file/s]
Extracting:  45%|████▌     | 146544/324045 [00:04<00:05, 32341.43file/s]
Extracting:  46%|████▋     | 149947/324045 [00:04<00:05, 32834.41file/s]
Extracting:  47%|████▋     | 153397/324045 [00:04<00:05, 33324.97file/s]
Extracting:  48%|████▊     | 156737/324045 [00:04<00:05, 32588.52file/s]
Extracting:  49%|████▉     | 160128/324045 [00:04<00:04, 32974.26file/s]
Extracting:  50%|█████     | 163432/324045 [00:05<00:04, 32417.61file/s]
Extracting:  51%|█████▏    | 166680/324045 [00:05<00:04, 32385.32file/s]
Extracting:  52%|█████▏    | 169923/324045 [00:05<00:04, 31896.47file/s]
Extracting:  53%|█████▎    | 173283/324045 [00:05<00:04, 32395.01file/s]
Extracting:  54%|█████▍    | 176527/324045 [00:05<00:04, 31676.88file/s]
Extracting:  55%|█████▌    | 179811/324045 [00:05<00:04, 32014.74file/s]
Extracting:  56%|█████▋    | 183027/324045 [00:05<00:04, 32043.98file/s]
Extracting:  57%|█████▋    | 186235/324045 [00:05<00:04, 31313.41file/s]
Extracting:  59%|█████▊    | 189664/324045 [00:05<00:04, 32182.64file/s]
Extracting:  60%|█████▉    | 193036/324045 [00:05<00:04, 32634.58file/s]
Extracting:  61%|██████    | 196410/324045 [00:06<00:03, 32960.45file/s]
Extracting:  62%|██████▏   | 199710/324045 [00:06<00:03, 32564.57file/s]
Extracting:  63%|██████▎   | 202970/324045 [00:06<00:03, 32540.96file/s]
Extracting:  64%|██████▎   | 206227/324045 [00:06<00:03, 32167.22file/s]
Extracting:  65%|██████▍   | 209545/324045 [00:06<00:03, 32465.49file/s]
Extracting:  66%|██████▌   | 212886/324045 [00:06<00:03, 32744.08file/s]
Extracting:  67%|██████▋   | 216163/324045 [00:06<00:03, 31636.46file/s]
Extracting:  68%|██████▊   | 219336/324045 [00:06<00:03, 31656.27file/s]
Extracting:  69%|██████▊   | 222552/324045 [00:06<00:03, 31802.72file/s]
Extracting:  70%|██████▉   | 225737/324045 [00:06<00:03, 31158.55file/s]
Extracting:  71%|███████   | 229155/324045 [00:07<00:02, 32041.84file/s]
Extracting:  72%|███████▏  | 232366/324045 [00:07<00:02, 31693.53file/s]
Extracting:  73%|███████▎  | 235827/324045 [00:07<00:02, 32548.14file/s]
Extracting:  74%|███████▍  | 239087/324045 [00:07<00:02, 32230.56file/s]
Extracting:  75%|███████▍  | 242314/324045 [00:07<00:02, 32016.43file/s]
Extracting:  76%|███████▌  | 245664/324045 [00:07<00:02, 32453.45file/s]
Extracting:  77%|███████▋  | 248912/324045 [00:07<00:02, 31689.03file/s]
Extracting:  78%|███████▊  | 252310/324045 [00:07<00:02, 32356.38file/s]
Extracting:  79%|███████▉  | 255559/324045 [00:07<00:02, 32394.24file/s]
Extracting:  80%|███████▉  | 258803/324045 [00:07<00:02, 32291.19file/s]
Extracting:  81%|████████  | 262035/324045 [00:08<00:01, 32135.60file/s]
Extracting:  82%|████████▏ | 265285/324045 [00:08<00:01, 32241.67file/s]
Extracting:  83%|████████▎ | 268670/324045 [00:08<00:01, 32717.80file/s]
Extracting:  84%|████████▍ | 272033/324045 [00:08<00:01, 32986.94file/s]
Extracting:  85%|████████▌ | 275457/324045 [00:08<00:01, 33360.76file/s]
Extracting:  86%|████████▌ | 278794/324045 [00:08<00:01, 32033.45file/s]
Extracting:  87%|████████▋ | 282009/324045 [00:08<00:01, 31725.49file/s]
Extracting:  88%|████████▊ | 285309/324045 [00:08<00:01, 32096.48file/s]
Extracting:  89%|████████▉ | 288526/324045 [00:08<00:01, 31500.76file/s]
Extracting:  90%|█████████ | 291968/324045 [00:09<00:00, 32350.65file/s]
Extracting:  91%|█████████ | 295210/324045 [00:09<00:00, 31313.51file/s]
Extracting:  92%|█████████▏| 298352/324045 [00:09<00:00, 31150.10file/s]
Extracting:  93%|█████████▎| 301526/324045 [00:09<00:00, 31319.55file/s]
Extracting:  94%|█████████▍| 304758/324045 [00:09<00:00, 31610.96file/s]
Extracting:  95%|█████████▌| 307924/324045 [00:09<00:00, 31137.93file/s]
Extracting:  96%|█████████▌| 311195/324045 [00:09<00:00, 31597.99file/s]
Extracting:  97%|█████████▋| 314366/324045 [00:09<00:00, 31628.56file/s]
Extracting:  98%|█████████▊| 317612/324045 [00:09<00:00, 31874.70file/s]
Extracting:  99%|█████████▉| 320802/324045 [00:09<00:00, 31872.42file/s]
Extracting: 100%|██████████| 324045/324045 [00:10<00:00, 32348.47file/s]
Extracted to /home/kemove/yyz/av-gihub/tutorials/mmwave_PC_source/
Using default config file.
using dataset: MetaFi DATA
S02 ['A02', 'A03', 'A04', 'A05', 'A14', 'A18', 'A19', 'A21', 'A22', 'A23', 'A27']
S03 ['A02', 'A03', 'A04', 'A05', 'A13', 'A14', 'A17', 'A18', 'A19', 'A20', 'A21', 'A22']
S05 ['A02', 'A03', 'A04', 'A05', 'A13', 'A14', 'A17', 'A19', 'A20', 'A21', 'A22', 'A23', 'A27']
S06 ['A02', 'A04', 'A05', 'A14', 'A17', 'A18', 'A20', 'A21', 'A22', 'A23', 'A27']
S08 ['A02', 'A03', 'A05', 'A13', 'A14', 'A17', 'A18', 'A19', 'A20', 'A21', 'A23', 'A27']
S09 ['A02', 'A17', 'A18', 'A20', 'A21', 'A22', 'A23', 'A27']
S11 ['A02', 'A03', 'A04', 'A13', 'A14', 'A18', 'A20', 'A21', 'A22', 'A23']
S12 ['A02', 'A05', 'A13', 'A14', 'A17', 'A18', 'A19', 'A20', 'A21', 'A22', 'A27']
S13 ['A02', 'A04', 'A05', 'A13', 'A14', 'A17', 'A18', 'A19', 'A20', 'A21', 'A27']
S14 ['A02', 'A03', 'A04', 'A05', 'A13', 'A14', 'A17', 'A18', 'A19', 'A20', 'A21', 'A23']
S15 ['A02', 'A03', 'A04', 'A05', 'A13', 'A17', 'A19', 'A20', 'A21', 'A22', 'A23', 'A27']
S16 ['A02', 'A05', 'A13', 'A14', 'A18', 'A19', 'A20', 'A22', 'A23', 'A27']
S17 ['A02', 'A03', 'A04', 'A05', 'A13', 'A18', 'A19', 'A20', 'A21', 'A23']
S18 ['A02', 'A03', 'A04', 'A05', 'A13', 'A14', 'A17', 'A18', 'A19', 'A20', 'A21', 'A23', 'A27']
S19 ['A02', 'A03', 'A05', 'A13', 'A14', 'A17', 'A18', 'A19', 'A20', 'A21', 'A22', 'A23']
S21 ['A02', 'A03', 'A04', 'A05', 'A13', 'A14', 'A18', 'A20', 'A21', 'A22', 'A23', 'A27']
S23 ['A02', 'A03', 'A05', 'A13', 'A14', 'A17', 'A18', 'A19', 'A21', 'A22', 'A27']
S25 ['A02', 'A03', 'A04', 'A13', 'A14', 'A17', 'A18', 'A19', 'A20', 'A21', 'A22', 'A23', 'A27']
S26 ['A02', 'A03', 'A04', 'A05', 'A13', 'A14', 'A19', 'A20', 'A23']
S27 ['A02', 'A03', 'A04', 'A05', 'A13', 'A14', 'A17', 'A18', 'A20', 'A21', 'A22', 'A23']
S28 ['A02', 'A03', 'A04', 'A05', 'A13', 'A17', 'A18', 'A19', 'A21', 'A27']
S29 ['A02', 'A03', 'A04', 'A05', 'A13', 'A14', 'A17', 'A19', 'A22', 'A23', 'A27']
S30 ['A02', 'A03', 'A04', 'A05', 'A13', 'A14', 'A17', 'A18', 'A19', 'A22', 'A23', 'A27']
S31 ['A02', 'A03', 'A04', 'A05', 'A17', 'A18', 'A19', 'A20', 'A21', 'A22', 'A23', 'A27']
S32 ['A02', 'A03', 'A05', 'A13', 'A14', 'A17', 'A18', 'A19', 'A20', 'A21', 'A22', 'A23', 'A27']
S33 ['A02', 'A03', 'A04', 'A05', 'A13', 'A14', 'A17', 'A18', 'A19', 'A20', 'A21', 'A22', 'A23', 'A27']
S34 ['A02', 'A03', 'A04', 'A13', 'A14', 'A17', 'A18', 'A19', 'A23', 'A27']
S35 ['A02', 'A03', 'A04', 'A05', 'A13', 'A14', 'A17', 'A18', 'A19', 'A20', 'A21', 'A22', 'A23']
S36 ['A02', 'A03', 'A05', 'A13', 'A19', 'A20', 'A21', 'A22', 'A27']
S37 ['A02', 'A03', 'A04', 'A05', 'A13', 'A14', 'A17', 'A18', 'A19', 'A20', 'A22', 'A23', 'A27']
S38 ['A02', 'A04', 'A05', 'A13', 'A17', 'A18', 'A19', 'A20', 'A21', 'A22', 'A23', 'A27']
S40 ['A02', 'A03', 'A04', 'A05', 'A13', 'A14', 'A17', 'A18', 'A19', 'A21', 'A22', 'A23', 'A27']
S04 ['A03', 'A04', 'A14', 'A17', 'A20', 'A21', 'A22', 'A27']
S07 ['A03', 'A04', 'A05', 'A13', 'A14', 'A17', 'A18', 'A19', 'A20', 'A21', 'A22', 'A27']
S20 ['A03', 'A04', 'A13', 'A14', 'A17', 'A20', 'A21', 'A22', 'A23', 'A27']
S22 ['A03', 'A04', 'A13', 'A14', 'A17', 'A18', 'A20', 'A21', 'A22', 'A23', 'A27']
S24 ['A03', 'A04', 'A05', 'A14', 'A17', 'A19', 'A20', 'A21', 'A22', 'A23', 'A27']
S39 ['A03', 'A04', 'A05', 'A13', 'A14', 'A17', 'A18', 'A19', 'A21', 'A22', 'A23', 'A27']
S01 ['A04', 'A14', 'A17', 'A18', 'A19', 'A20', 'A22', 'A23', 'A27']
S10 ['A04', 'A05', 'A18', 'A19', 'A20', 'A22', 'A23', 'A27']
S01 ['A02', 'A03', 'A05', 'A13', 'A21']
S04 ['A02', 'A05', 'A13', 'A18', 'A19', 'A23']
S07 ['A02', 'A23']
S10 ['A02', 'A03', 'A13', 'A14', 'A17', 'A21']
S20 ['A02', 'A05', 'A18', 'A19']
S22 ['A02', 'A05', 'A19']
S24 ['A02', 'A13', 'A18']
S39 ['A02', 'A20']
S06 ['A03', 'A13', 'A19']
S09 ['A03', 'A04', 'A05', 'A13', 'A14', 'A19']
S12 ['A03', 'A04', 'A23']
S13 ['A03', 'A22', 'A23']
S16 ['A03', 'A04', 'A17', 'A21']
S38 ['A03', 'A14']
S08 ['A04', 'A22']
S19 ['A04', 'A27']
S23 ['A04', 'A20', 'A23']
S32 ['A04']
S36 ['A04', 'A14', 'A17', 'A18', 'A23']
S11 ['A05', 'A17', 'A19', 'A27']
S25 ['A05']
S34 ['A05', 'A20', 'A21', 'A22']
S02 ['A13', 'A17', 'A20']
S31 ['A13', 'A14']
S15 ['A14', 'A18']
S17 ['A14', 'A17', 'A22', 'A27']
S28 ['A14', 'A20', 'A22', 'A23']
S21 ['A17', 'A19']
S26 ['A17', 'A18', 'A21', 'A22', 'A27']
S05 ['A18']
S29 ['A18', 'A20', 'A21']
S27 ['A19', 'A27']
S30 ['A20', 'A21']
S40 ['A20']
S37 ['A21']
S14 ['A22', 'A27']
S18 ['A22']
S03 ['A23', 'A27']
S35 ['A27']

Visualize the PC data

In[6]:

from matplotlib import pyplot as plt
from pysensing.mmwave.PC.tutorial.plot import plot_3d_graph
# Example of the samples in the dataset
index = 10  # Randomly select an index
pc,pose = train_dataset.__getitem__(index)
print(pc.shape, type(pose))
plot_3d_graph(pose, pc[0])
mmwave PC hpe tutorial
(5, 150, 5) <class 'torch.Tensor'>

Create model

mmFi utilizes PointTransformer model as a baseline hpe method. From model.hpe, we can import desired hpe model designed for mmWave PC. The model parameter for PointTransformer reimplemented for mmFi is as follows:

In[7]:

from pysensing.mmwave.PC.model.hpe import PointTransformerReg
model = PointTransformerReg(
                    input_dim = 5,
                    nblocks = 5,
                    n_p = 17
                )
print(model)
PointTransformerReg(
  (backbone): Backbone(
    (fc1): Sequential(
      (0): Linear(in_features=5, out_features=32, bias=True)
      (1): ReLU()
      (2): Linear(in_features=32, out_features=32, bias=True)
    )
    (transformer1): TransformerBlock(
      (fc1): Linear(in_features=32, out_features=128, bias=True)
      (fc2): Linear(in_features=128, out_features=32, bias=True)
      (fc_delta): Sequential(
        (0): Linear(in_features=3, out_features=128, bias=True)
        (1): ReLU()
        (2): Linear(in_features=128, out_features=128, bias=True)
      )
      (fc_gamma): Sequential(
        (0): Linear(in_features=128, out_features=128, bias=True)
        (1): ReLU()
        (2): Linear(in_features=128, out_features=128, bias=True)
      )
      (w_qs): Linear(in_features=128, out_features=128, bias=False)
      (w_ks): Linear(in_features=128, out_features=128, bias=False)
      (w_vs): Linear(in_features=128, out_features=128, bias=False)
    )
    (transition_downs): ModuleList(
      (0): TransitionDown(
        (conv1): Sequential(
          (0): Conv1d(35, 64, kernel_size=(1,), stride=(1,))
          (1): BatchNorm1d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
        (conv2): Sequential(
          (0): Conv1d(64, 64, kernel_size=(1,), stride=(1,))
          (1): BatchNorm1d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
      )
      (1): TransitionDown(
        (conv1): Sequential(
          (0): Conv1d(67, 128, kernel_size=(1,), stride=(1,))
          (1): BatchNorm1d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
        (conv2): Sequential(
          (0): Conv1d(128, 128, kernel_size=(1,), stride=(1,))
          (1): BatchNorm1d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
      )
      (2): TransitionDown(
        (conv1): Sequential(
          (0): Conv1d(131, 256, kernel_size=(1,), stride=(1,))
          (1): BatchNorm1d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
        (conv2): Sequential(
          (0): Conv1d(256, 256, kernel_size=(1,), stride=(1,))
          (1): BatchNorm1d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
      )
      (3): TransitionDown(
        (conv1): Sequential(
          (0): Conv1d(259, 512, kernel_size=(1,), stride=(1,))
          (1): BatchNorm1d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
        (conv2): Sequential(
          (0): Conv1d(512, 512, kernel_size=(1,), stride=(1,))
          (1): BatchNorm1d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
      )
    )
    (transformers): ModuleList(
      (0): TransformerBlock(
        (fc1): Linear(in_features=64, out_features=128, bias=True)
        (fc2): Linear(in_features=128, out_features=64, bias=True)
        (fc_delta): Sequential(
          (0): Linear(in_features=3, out_features=128, bias=True)
          (1): ReLU()
          (2): Linear(in_features=128, out_features=128, bias=True)
        )
        (fc_gamma): Sequential(
          (0): Linear(in_features=128, out_features=128, bias=True)
          (1): ReLU()
          (2): Linear(in_features=128, out_features=128, bias=True)
        )
        (w_qs): Linear(in_features=128, out_features=128, bias=False)
        (w_ks): Linear(in_features=128, out_features=128, bias=False)
        (w_vs): Linear(in_features=128, out_features=128, bias=False)
      )
      (1): TransformerBlock(
        (fc1): Linear(in_features=128, out_features=128, bias=True)
        (fc2): Linear(in_features=128, out_features=128, bias=True)
        (fc_delta): Sequential(
          (0): Linear(in_features=3, out_features=128, bias=True)
          (1): ReLU()
          (2): Linear(in_features=128, out_features=128, bias=True)
        )
        (fc_gamma): Sequential(
          (0): Linear(in_features=128, out_features=128, bias=True)
          (1): ReLU()
          (2): Linear(in_features=128, out_features=128, bias=True)
        )
        (w_qs): Linear(in_features=128, out_features=128, bias=False)
        (w_ks): Linear(in_features=128, out_features=128, bias=False)
        (w_vs): Linear(in_features=128, out_features=128, bias=False)
      )
      (2): TransformerBlock(
        (fc1): Linear(in_features=256, out_features=128, bias=True)
        (fc2): Linear(in_features=128, out_features=256, bias=True)
        (fc_delta): Sequential(
          (0): Linear(in_features=3, out_features=128, bias=True)
          (1): ReLU()
          (2): Linear(in_features=128, out_features=128, bias=True)
        )
        (fc_gamma): Sequential(
          (0): Linear(in_features=128, out_features=128, bias=True)
          (1): ReLU()
          (2): Linear(in_features=128, out_features=128, bias=True)
        )
        (w_qs): Linear(in_features=128, out_features=128, bias=False)
        (w_ks): Linear(in_features=128, out_features=128, bias=False)
        (w_vs): Linear(in_features=128, out_features=128, bias=False)
      )
      (3): TransformerBlock(
        (fc1): Linear(in_features=512, out_features=128, bias=True)
        (fc2): Linear(in_features=128, out_features=512, bias=True)
        (fc_delta): Sequential(
          (0): Linear(in_features=3, out_features=128, bias=True)
          (1): ReLU()
          (2): Linear(in_features=128, out_features=128, bias=True)
        )
        (fc_gamma): Sequential(
          (0): Linear(in_features=128, out_features=128, bias=True)
          (1): ReLU()
          (2): Linear(in_features=128, out_features=128, bias=True)
        )
        (w_qs): Linear(in_features=128, out_features=128, bias=False)
        (w_ks): Linear(in_features=128, out_features=128, bias=False)
        (w_vs): Linear(in_features=128, out_features=128, bias=False)
      )
    )
  )
  (transformer): Transformer(
    (layers): ModuleList(
      (0-4): 5 x ModuleList(
        (0): Residual(
          (fn): PreNorm(
            (norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)
            (fn): Attention(
              (to_k): Linear(in_features=512, out_features=512, bias=False)
              (to_v): Linear(in_features=512, out_features=512, bias=False)
              (to_q): Linear(in_features=512, out_features=512, bias=False)
              (to_out): Sequential(
                (0): Linear(in_features=512, out_features=512, bias=True)
                (1): GELU(approximate='none')
                (2): Dropout(p=0.0, inplace=False)
              )
            )
          )
        )
        (1): Residual(
          (fn): PreNorm(
            (norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)
            (fn): FeedForward(
              (net): Sequential(
                (0): Linear(in_features=512, out_features=256, bias=True)
                (1): GELU(approximate='none')
                (2): Dropout(p=0.0, inplace=False)
                (3): Linear(in_features=256, out_features=512, bias=True)
                (4): Dropout(p=0.0, inplace=False)
              )
            )
          )
        )
      )
    )
  )
  (fc2): Sequential(
    (0): Linear(in_features=512, out_features=256, bias=True)
    (1): Dropout(p=0.0, inplace=False)
    (2): ReLU()
    (3): Linear(in_features=256, out_features=32, bias=True)
  )
  (fc3): Sequential(
    (0): ReLU()
    (1): Linear(in_features=32, out_features=64, bias=True)
    (2): Dropout(p=0.0, inplace=False)
    (3): ReLU()
    (4): Linear(in_features=64, out_features=3, bias=True)
  )
)

A shortcut for loading the hpe model to avoid the tedious hyper-parameter setting.

In[8]:

from pysensing.mmwave.PC.model.hpe import load_hpe_model
model = load_hpe_model("MetaFi", "PointTransformer")
print(model)
PointTransformerReg(
  (backbone): Backbone(
    (fc1): Sequential(
      (0): Linear(in_features=5, out_features=32, bias=True)
      (1): ReLU()
      (2): Linear(in_features=32, out_features=32, bias=True)
    )
    (transformer1): TransformerBlock(
      (fc1): Linear(in_features=32, out_features=128, bias=True)
      (fc2): Linear(in_features=128, out_features=32, bias=True)
      (fc_delta): Sequential(
        (0): Linear(in_features=3, out_features=128, bias=True)
        (1): ReLU()
        (2): Linear(in_features=128, out_features=128, bias=True)
      )
      (fc_gamma): Sequential(
        (0): Linear(in_features=128, out_features=128, bias=True)
        (1): ReLU()
        (2): Linear(in_features=128, out_features=128, bias=True)
      )
      (w_qs): Linear(in_features=128, out_features=128, bias=False)
      (w_ks): Linear(in_features=128, out_features=128, bias=False)
      (w_vs): Linear(in_features=128, out_features=128, bias=False)
    )
    (transition_downs): ModuleList(
      (0): TransitionDown(
        (conv1): Sequential(
          (0): Conv1d(35, 64, kernel_size=(1,), stride=(1,))
          (1): BatchNorm1d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
        (conv2): Sequential(
          (0): Conv1d(64, 64, kernel_size=(1,), stride=(1,))
          (1): BatchNorm1d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
      )
      (1): TransitionDown(
        (conv1): Sequential(
          (0): Conv1d(67, 128, kernel_size=(1,), stride=(1,))
          (1): BatchNorm1d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
        (conv2): Sequential(
          (0): Conv1d(128, 128, kernel_size=(1,), stride=(1,))
          (1): BatchNorm1d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
      )
      (2): TransitionDown(
        (conv1): Sequential(
          (0): Conv1d(131, 256, kernel_size=(1,), stride=(1,))
          (1): BatchNorm1d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
        (conv2): Sequential(
          (0): Conv1d(256, 256, kernel_size=(1,), stride=(1,))
          (1): BatchNorm1d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
      )
      (3): TransitionDown(
        (conv1): Sequential(
          (0): Conv1d(259, 512, kernel_size=(1,), stride=(1,))
          (1): BatchNorm1d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
        (conv2): Sequential(
          (0): Conv1d(512, 512, kernel_size=(1,), stride=(1,))
          (1): BatchNorm1d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
      )
    )
    (transformers): ModuleList(
      (0): TransformerBlock(
        (fc1): Linear(in_features=64, out_features=128, bias=True)
        (fc2): Linear(in_features=128, out_features=64, bias=True)
        (fc_delta): Sequential(
          (0): Linear(in_features=3, out_features=128, bias=True)
          (1): ReLU()
          (2): Linear(in_features=128, out_features=128, bias=True)
        )
        (fc_gamma): Sequential(
          (0): Linear(in_features=128, out_features=128, bias=True)
          (1): ReLU()
          (2): Linear(in_features=128, out_features=128, bias=True)
        )
        (w_qs): Linear(in_features=128, out_features=128, bias=False)
        (w_ks): Linear(in_features=128, out_features=128, bias=False)
        (w_vs): Linear(in_features=128, out_features=128, bias=False)
      )
      (1): TransformerBlock(
        (fc1): Linear(in_features=128, out_features=128, bias=True)
        (fc2): Linear(in_features=128, out_features=128, bias=True)
        (fc_delta): Sequential(
          (0): Linear(in_features=3, out_features=128, bias=True)
          (1): ReLU()
          (2): Linear(in_features=128, out_features=128, bias=True)
        )
        (fc_gamma): Sequential(
          (0): Linear(in_features=128, out_features=128, bias=True)
          (1): ReLU()
          (2): Linear(in_features=128, out_features=128, bias=True)
        )
        (w_qs): Linear(in_features=128, out_features=128, bias=False)
        (w_ks): Linear(in_features=128, out_features=128, bias=False)
        (w_vs): Linear(in_features=128, out_features=128, bias=False)
      )
      (2): TransformerBlock(
        (fc1): Linear(in_features=256, out_features=128, bias=True)
        (fc2): Linear(in_features=128, out_features=256, bias=True)
        (fc_delta): Sequential(
          (0): Linear(in_features=3, out_features=128, bias=True)
          (1): ReLU()
          (2): Linear(in_features=128, out_features=128, bias=True)
        )
        (fc_gamma): Sequential(
          (0): Linear(in_features=128, out_features=128, bias=True)
          (1): ReLU()
          (2): Linear(in_features=128, out_features=128, bias=True)
        )
        (w_qs): Linear(in_features=128, out_features=128, bias=False)
        (w_ks): Linear(in_features=128, out_features=128, bias=False)
        (w_vs): Linear(in_features=128, out_features=128, bias=False)
      )
      (3): TransformerBlock(
        (fc1): Linear(in_features=512, out_features=128, bias=True)
        (fc2): Linear(in_features=128, out_features=512, bias=True)
        (fc_delta): Sequential(
          (0): Linear(in_features=3, out_features=128, bias=True)
          (1): ReLU()
          (2): Linear(in_features=128, out_features=128, bias=True)
        )
        (fc_gamma): Sequential(
          (0): Linear(in_features=128, out_features=128, bias=True)
          (1): ReLU()
          (2): Linear(in_features=128, out_features=128, bias=True)
        )
        (w_qs): Linear(in_features=128, out_features=128, bias=False)
        (w_ks): Linear(in_features=128, out_features=128, bias=False)
        (w_vs): Linear(in_features=128, out_features=128, bias=False)
      )
    )
  )
  (transformer): Transformer(
    (layers): ModuleList(
      (0-4): 5 x ModuleList(
        (0): Residual(
          (fn): PreNorm(
            (norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)
            (fn): Attention(
              (to_k): Linear(in_features=512, out_features=512, bias=False)
              (to_v): Linear(in_features=512, out_features=512, bias=False)
              (to_q): Linear(in_features=512, out_features=512, bias=False)
              (to_out): Sequential(
                (0): Linear(in_features=512, out_features=512, bias=True)
                (1): GELU(approximate='none')
                (2): Dropout(p=0.0, inplace=False)
              )
            )
          )
        )
        (1): Residual(
          (fn): PreNorm(
            (norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)
            (fn): FeedForward(
              (net): Sequential(
                (0): Linear(in_features=512, out_features=256, bias=True)
                (1): GELU(approximate='none')
                (2): Dropout(p=0.0, inplace=False)
                (3): Linear(in_features=256, out_features=512, bias=True)
                (4): Dropout(p=0.0, inplace=False)
              )
            )
          )
        )
      )
    )
  )
  (fc2): Sequential(
    (0): Linear(in_features=512, out_features=256, bias=True)
    (1): Dropout(p=0.0, inplace=False)
    (2): ReLU()
    (3): Linear(in_features=256, out_features=32, bias=True)
  )
  (fc3): Sequential(
    (0): ReLU()
    (1): Linear(in_features=32, out_features=64, bias=True)
    (2): Dropout(p=0.0, inplace=False)
    (3): ReLU()
    (4): Linear(in_features=64, out_features=3, bias=True)
  )
)

Model Train

pysensing library support quick training of model with the following steps. The training interface incorporates pytorch loss functions, optimizers and dataloaders to facilate training. An example is provided for how to define the aforemetioned terms.

In[11]:

# Create pytorch dataloaders
train_loader = torch.utils.data.DataLoader(train_dataset, shuffle=True, batch_size=16, num_workers=16)
test_loader = torch.utils.data.DataLoader(test_dataset, batch_size=16, shuffle=False, num_workers=16)

# Define pytorch loss function as criterion
criterion = nn.CrossEntropyLoss()

# Define pytorch optimizer for training
optimizer = torch.optim.Adam(model.parameters(), lr=1e-3)

# GPU acceleration with cuda
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

A quick training using hpe_train. The resulted model parameters will be saved into “train_{num_epochs}.pth”.

In[12]:

# Pysensing training interface
from pysensing.mmwave.PC.inference.hpe import hpe_train
# hpe_train(model, train_loader, num_epochs=1, optimizer=optimizer, criterion=criterion, device=device)

Model inference

Load the pretrained model, e.g. from https://pysensing.oss-ap-southeast-1.aliyuncs.com/pretrain/mmwave_pc/hpe/MetaFi_PointTransformer.pth , and perform human pose estimation!

In[13]:

# load pretrained model
from pysensing.mmwave.PC.inference import load_pretrain
model = load_pretrain(model, "MetaFi", "PointTransformer").to(device)
model.eval()
Use pretrained model!

PointTransformerReg(
  (backbone): Backbone(
    (fc1): Sequential(
      (0): Linear(in_features=5, out_features=32, bias=True)
      (1): ReLU()
      (2): Linear(in_features=32, out_features=32, bias=True)
    )
    (transformer1): TransformerBlock(
      (fc1): Linear(in_features=32, out_features=128, bias=True)
      (fc2): Linear(in_features=128, out_features=32, bias=True)
      (fc_delta): Sequential(
        (0): Linear(in_features=3, out_features=128, bias=True)
        (1): ReLU()
        (2): Linear(in_features=128, out_features=128, bias=True)
      )
      (fc_gamma): Sequential(
        (0): Linear(in_features=128, out_features=128, bias=True)
        (1): ReLU()
        (2): Linear(in_features=128, out_features=128, bias=True)
      )
      (w_qs): Linear(in_features=128, out_features=128, bias=False)
      (w_ks): Linear(in_features=128, out_features=128, bias=False)
      (w_vs): Linear(in_features=128, out_features=128, bias=False)
    )
    (transition_downs): ModuleList(
      (0): TransitionDown(
        (conv1): Sequential(
          (0): Conv1d(35, 64, kernel_size=(1,), stride=(1,))
          (1): BatchNorm1d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
        (conv2): Sequential(
          (0): Conv1d(64, 64, kernel_size=(1,), stride=(1,))
          (1): BatchNorm1d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
      )
      (1): TransitionDown(
        (conv1): Sequential(
          (0): Conv1d(67, 128, kernel_size=(1,), stride=(1,))
          (1): BatchNorm1d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
        (conv2): Sequential(
          (0): Conv1d(128, 128, kernel_size=(1,), stride=(1,))
          (1): BatchNorm1d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
      )
      (2): TransitionDown(
        (conv1): Sequential(
          (0): Conv1d(131, 256, kernel_size=(1,), stride=(1,))
          (1): BatchNorm1d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
        (conv2): Sequential(
          (0): Conv1d(256, 256, kernel_size=(1,), stride=(1,))
          (1): BatchNorm1d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
      )
      (3): TransitionDown(
        (conv1): Sequential(
          (0): Conv1d(259, 512, kernel_size=(1,), stride=(1,))
          (1): BatchNorm1d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
        (conv2): Sequential(
          (0): Conv1d(512, 512, kernel_size=(1,), stride=(1,))
          (1): BatchNorm1d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
      )
    )
    (transformers): ModuleList(
      (0): TransformerBlock(
        (fc1): Linear(in_features=64, out_features=128, bias=True)
        (fc2): Linear(in_features=128, out_features=64, bias=True)
        (fc_delta): Sequential(
          (0): Linear(in_features=3, out_features=128, bias=True)
          (1): ReLU()
          (2): Linear(in_features=128, out_features=128, bias=True)
        )
        (fc_gamma): Sequential(
          (0): Linear(in_features=128, out_features=128, bias=True)
          (1): ReLU()
          (2): Linear(in_features=128, out_features=128, bias=True)
        )
        (w_qs): Linear(in_features=128, out_features=128, bias=False)
        (w_ks): Linear(in_features=128, out_features=128, bias=False)
        (w_vs): Linear(in_features=128, out_features=128, bias=False)
      )
      (1): TransformerBlock(
        (fc1): Linear(in_features=128, out_features=128, bias=True)
        (fc2): Linear(in_features=128, out_features=128, bias=True)
        (fc_delta): Sequential(
          (0): Linear(in_features=3, out_features=128, bias=True)
          (1): ReLU()
          (2): Linear(in_features=128, out_features=128, bias=True)
        )
        (fc_gamma): Sequential(
          (0): Linear(in_features=128, out_features=128, bias=True)
          (1): ReLU()
          (2): Linear(in_features=128, out_features=128, bias=True)
        )
        (w_qs): Linear(in_features=128, out_features=128, bias=False)
        (w_ks): Linear(in_features=128, out_features=128, bias=False)
        (w_vs): Linear(in_features=128, out_features=128, bias=False)
      )
      (2): TransformerBlock(
        (fc1): Linear(in_features=256, out_features=128, bias=True)
        (fc2): Linear(in_features=128, out_features=256, bias=True)
        (fc_delta): Sequential(
          (0): Linear(in_features=3, out_features=128, bias=True)
          (1): ReLU()
          (2): Linear(in_features=128, out_features=128, bias=True)
        )
        (fc_gamma): Sequential(
          (0): Linear(in_features=128, out_features=128, bias=True)
          (1): ReLU()
          (2): Linear(in_features=128, out_features=128, bias=True)
        )
        (w_qs): Linear(in_features=128, out_features=128, bias=False)
        (w_ks): Linear(in_features=128, out_features=128, bias=False)
        (w_vs): Linear(in_features=128, out_features=128, bias=False)
      )
      (3): TransformerBlock(
        (fc1): Linear(in_features=512, out_features=128, bias=True)
        (fc2): Linear(in_features=128, out_features=512, bias=True)
        (fc_delta): Sequential(
          (0): Linear(in_features=3, out_features=128, bias=True)
          (1): ReLU()
          (2): Linear(in_features=128, out_features=128, bias=True)
        )
        (fc_gamma): Sequential(
          (0): Linear(in_features=128, out_features=128, bias=True)
          (1): ReLU()
          (2): Linear(in_features=128, out_features=128, bias=True)
        )
        (w_qs): Linear(in_features=128, out_features=128, bias=False)
        (w_ks): Linear(in_features=128, out_features=128, bias=False)
        (w_vs): Linear(in_features=128, out_features=128, bias=False)
      )
    )
  )
  (transformer): Transformer(
    (layers): ModuleList(
      (0-4): 5 x ModuleList(
        (0): Residual(
          (fn): PreNorm(
            (norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)
            (fn): Attention(
              (to_k): Linear(in_features=512, out_features=512, bias=False)
              (to_v): Linear(in_features=512, out_features=512, bias=False)
              (to_q): Linear(in_features=512, out_features=512, bias=False)
              (to_out): Sequential(
                (0): Linear(in_features=512, out_features=512, bias=True)
                (1): GELU(approximate='none')
                (2): Dropout(p=0.0, inplace=False)
              )
            )
          )
        )
        (1): Residual(
          (fn): PreNorm(
            (norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)
            (fn): FeedForward(
              (net): Sequential(
                (0): Linear(in_features=512, out_features=256, bias=True)
                (1): GELU(approximate='none')
                (2): Dropout(p=0.0, inplace=False)
                (3): Linear(in_features=256, out_features=512, bias=True)
                (4): Dropout(p=0.0, inplace=False)
              )
            )
          )
        )
      )
    )
  )
  (fc2): Sequential(
    (0): Linear(in_features=512, out_features=256, bias=True)
    (1): Dropout(p=0.0, inplace=False)
    (2): ReLU()
    (3): Linear(in_features=256, out_features=32, bias=True)
  )
  (fc3): Sequential(
    (0): ReLU()
    (1): Linear(in_features=32, out_features=64, bias=True)
    (2): Dropout(p=0.0, inplace=False)
    (3): ReLU()
    (4): Linear(in_features=64, out_features=3, bias=True)
  )
)

Test the model on testing dataset.

In[14]:

from pysensing.mmwave.PC.inference.hpe import hpe_test
# hpe_test(model, test_loader, criterion=criterion, device=device)

Model inference on sample and deep feature embedding of input modality in HPE task.

In[15]:

# Model inference
idx = 5
points, pose= test_dataset.__getitem__(idx)
points = torch.tensor(points).unsqueeze(0).float().to(device)
predicted_result = model(points)
print("The predicted pose is {}, while the ground truth is {}".format(predicted_result.cpu(),pose))

# Deep feature embedding
from pysensing.mmwave.PC.inference.embedding import embedding
emb = embedding(input = points, model=model, dataset_name = "MetaFi", model_name = "PointTransformer", device=device)
print("The shape of feature embedding is: ", emb.shape)
The predicted pose is tensor([[[-0.1173,  0.0153,  3.0501],
         [-0.2115,  0.0202,  3.0561],
         [-0.2253,  0.3597,  3.0622],
         [-0.2422,  0.7359,  3.0763],
         [ 0.0275, -0.0367,  3.0689],
         [ 0.0280,  0.3391,  3.0851],
         [ 0.0785,  0.7613,  3.1083],
         [-0.1009, -0.2694,  3.0435],
         [-0.0910, -0.5694,  3.0297],
         [-0.0988, -0.6771,  3.0037],
         [-0.1014, -0.7289,  3.0262],
         [ 0.0349, -0.5211,  3.0320],
         [ 0.2234, -0.4633,  2.9764],
         [ 0.1241, -0.5345,  2.8527],
         [-0.1986, -0.5264,  3.0985],
         [-0.3518, -0.4575,  3.0666],
         [-0.2247, -0.4778,  2.9471]]], grad_fn=<ToCopyBackward0>), while the ground truth is tensor([[-0.0626, -0.0378,  3.3111],
        [-0.1724, -0.0395,  3.3111],
        [-0.1786,  0.3689,  3.3083],
        [-0.2026,  0.7605,  3.3111],
        [ 0.0473, -0.0362,  3.3111],
        [ 0.0633,  0.3689,  3.3111],
        [ 0.0673,  0.7605,  3.3111],
        [-0.0685, -0.3322,  3.3016],
        [-0.0744, -0.6267,  3.2920],
        [-0.0642, -0.7458,  3.2512],
        [-0.0653, -0.8049,  3.2850],
        [ 0.0914, -0.5671,  3.3118],
        [ 0.3367, -0.5248,  3.3104],
        [ 0.2930, -0.5677,  3.0678],
        [-0.2505, -0.5671,  3.3131],
        [-0.5012, -0.5671,  3.3116],
        [-0.4514, -0.5674,  3.0686]])
The shape of feature embedding is:  torch.Size([1, 17, 32])

mmDiff: diffusion model for mmWave radar HPE

Load Diffusion Runner with model initialized. This process will define the setting for model and dataset. Currently two settings are implemented: 1. “mmBody + P4Transformer”:

Phase 1: Input [b, 4, 5000, 6]; Output: [b, 17, 3] and [b, 17, 64]. Phase 2: GRC, LRC, TMC, SLC

  1. “MetaFi + PointTransformer”:

    Phase 1: Input [b, 5, 150, 5]; Output: [b, 17, 3] and [b, 17, 32]. Phase 2: GRC, TMC, SLC

In[16]:

from pysensing.mmwave.PC.model.hpe.mmDiff.load_mmDiff import load_mmDiff
mmDiffRunner = load_mmDiff("MetaFi")
Self.model_feat vadility passes.
MMdiff using PointTransformer as feature extractor.
Phase 1 Training: Can train phase 1 from scratch (is_train = True) or load pretrained phase 1 model (is_train = False).

Set is_save = True to facilitate phase 2 training acceleration.

If phase 1 features are saved, set is_save = False.

In[17]:

mmDiffRunner.phase1_train(train_dataset, test_dataset, is_train=False, is_save=False)
Phase 1 use pretrained model!

Phase 1 can also receive self defined model and the model should follow the setting defined above. The Self-defined model should output coarse joints and coarse joint features.

In[18]:

# Self defined model should output coarse joints and coarse joint features
from pysensing.mmwave.PC.model.hpe.pointTrans import PointTransformerReg_feat
model = PointTransformerReg_feat(
                    input_dim = 5,
                    nblocks = 5,
                    n_p = 17
                )
print(model)
mmDiffRunner.phase1_train(train_dataset, test_dataset, model_self=model, is_train=False, is_save=False)
PointTransformerReg_feat(
  (backbone): Backbone(
    (fc1): Sequential(
      (0): Linear(in_features=5, out_features=32, bias=True)
      (1): ReLU()
      (2): Linear(in_features=32, out_features=32, bias=True)
    )
    (transformer1): TransformerBlock(
      (fc1): Linear(in_features=32, out_features=128, bias=True)
      (fc2): Linear(in_features=128, out_features=32, bias=True)
      (fc_delta): Sequential(
        (0): Linear(in_features=3, out_features=128, bias=True)
        (1): ReLU()
        (2): Linear(in_features=128, out_features=128, bias=True)
      )
      (fc_gamma): Sequential(
        (0): Linear(in_features=128, out_features=128, bias=True)
        (1): ReLU()
        (2): Linear(in_features=128, out_features=128, bias=True)
      )
      (w_qs): Linear(in_features=128, out_features=128, bias=False)
      (w_ks): Linear(in_features=128, out_features=128, bias=False)
      (w_vs): Linear(in_features=128, out_features=128, bias=False)
    )
    (transition_downs): ModuleList(
      (0): TransitionDown(
        (conv1): Sequential(
          (0): Conv1d(35, 64, kernel_size=(1,), stride=(1,))
          (1): BatchNorm1d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
        (conv2): Sequential(
          (0): Conv1d(64, 64, kernel_size=(1,), stride=(1,))
          (1): BatchNorm1d(64, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
      )
      (1): TransitionDown(
        (conv1): Sequential(
          (0): Conv1d(67, 128, kernel_size=(1,), stride=(1,))
          (1): BatchNorm1d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
        (conv2): Sequential(
          (0): Conv1d(128, 128, kernel_size=(1,), stride=(1,))
          (1): BatchNorm1d(128, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
      )
      (2): TransitionDown(
        (conv1): Sequential(
          (0): Conv1d(131, 256, kernel_size=(1,), stride=(1,))
          (1): BatchNorm1d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
        (conv2): Sequential(
          (0): Conv1d(256, 256, kernel_size=(1,), stride=(1,))
          (1): BatchNorm1d(256, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
      )
      (3): TransitionDown(
        (conv1): Sequential(
          (0): Conv1d(259, 512, kernel_size=(1,), stride=(1,))
          (1): BatchNorm1d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
        (conv2): Sequential(
          (0): Conv1d(512, 512, kernel_size=(1,), stride=(1,))
          (1): BatchNorm1d(512, eps=1e-05, momentum=0.1, affine=True, track_running_stats=True)
          (2): ReLU()
        )
      )
    )
    (transformers): ModuleList(
      (0): TransformerBlock(
        (fc1): Linear(in_features=64, out_features=128, bias=True)
        (fc2): Linear(in_features=128, out_features=64, bias=True)
        (fc_delta): Sequential(
          (0): Linear(in_features=3, out_features=128, bias=True)
          (1): ReLU()
          (2): Linear(in_features=128, out_features=128, bias=True)
        )
        (fc_gamma): Sequential(
          (0): Linear(in_features=128, out_features=128, bias=True)
          (1): ReLU()
          (2): Linear(in_features=128, out_features=128, bias=True)
        )
        (w_qs): Linear(in_features=128, out_features=128, bias=False)
        (w_ks): Linear(in_features=128, out_features=128, bias=False)
        (w_vs): Linear(in_features=128, out_features=128, bias=False)
      )
      (1): TransformerBlock(
        (fc1): Linear(in_features=128, out_features=128, bias=True)
        (fc2): Linear(in_features=128, out_features=128, bias=True)
        (fc_delta): Sequential(
          (0): Linear(in_features=3, out_features=128, bias=True)
          (1): ReLU()
          (2): Linear(in_features=128, out_features=128, bias=True)
        )
        (fc_gamma): Sequential(
          (0): Linear(in_features=128, out_features=128, bias=True)
          (1): ReLU()
          (2): Linear(in_features=128, out_features=128, bias=True)
        )
        (w_qs): Linear(in_features=128, out_features=128, bias=False)
        (w_ks): Linear(in_features=128, out_features=128, bias=False)
        (w_vs): Linear(in_features=128, out_features=128, bias=False)
      )
      (2): TransformerBlock(
        (fc1): Linear(in_features=256, out_features=128, bias=True)
        (fc2): Linear(in_features=128, out_features=256, bias=True)
        (fc_delta): Sequential(
          (0): Linear(in_features=3, out_features=128, bias=True)
          (1): ReLU()
          (2): Linear(in_features=128, out_features=128, bias=True)
        )
        (fc_gamma): Sequential(
          (0): Linear(in_features=128, out_features=128, bias=True)
          (1): ReLU()
          (2): Linear(in_features=128, out_features=128, bias=True)
        )
        (w_qs): Linear(in_features=128, out_features=128, bias=False)
        (w_ks): Linear(in_features=128, out_features=128, bias=False)
        (w_vs): Linear(in_features=128, out_features=128, bias=False)
      )
      (3): TransformerBlock(
        (fc1): Linear(in_features=512, out_features=128, bias=True)
        (fc2): Linear(in_features=128, out_features=512, bias=True)
        (fc_delta): Sequential(
          (0): Linear(in_features=3, out_features=128, bias=True)
          (1): ReLU()
          (2): Linear(in_features=128, out_features=128, bias=True)
        )
        (fc_gamma): Sequential(
          (0): Linear(in_features=128, out_features=128, bias=True)
          (1): ReLU()
          (2): Linear(in_features=128, out_features=128, bias=True)
        )
        (w_qs): Linear(in_features=128, out_features=128, bias=False)
        (w_ks): Linear(in_features=128, out_features=128, bias=False)
        (w_vs): Linear(in_features=128, out_features=128, bias=False)
      )
    )
  )
  (transformer): Transformer(
    (layers): ModuleList(
      (0-4): 5 x ModuleList(
        (0): Residual(
          (fn): PreNorm(
            (norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)
            (fn): Attention(
              (to_k): Linear(in_features=512, out_features=512, bias=False)
              (to_v): Linear(in_features=512, out_features=512, bias=False)
              (to_q): Linear(in_features=512, out_features=512, bias=False)
              (to_out): Sequential(
                (0): Linear(in_features=512, out_features=512, bias=True)
                (1): GELU(approximate='none')
                (2): Dropout(p=0.0, inplace=False)
              )
            )
          )
        )
        (1): Residual(
          (fn): PreNorm(
            (norm): LayerNorm((512,), eps=1e-05, elementwise_affine=True)
            (fn): FeedForward(
              (net): Sequential(
                (0): Linear(in_features=512, out_features=256, bias=True)
                (1): GELU(approximate='none')
                (2): Dropout(p=0.0, inplace=False)
                (3): Linear(in_features=256, out_features=512, bias=True)
                (4): Dropout(p=0.0, inplace=False)
              )
            )
          )
        )
      )
    )
  )
  (fc2): Sequential(
    (0): Linear(in_features=512, out_features=256, bias=True)
    (1): Dropout(p=0.0, inplace=False)
    (2): ReLU()
    (3): Linear(in_features=256, out_features=32, bias=True)
  )
  (fc3): Sequential(
    (0): ReLU()
    (1): Linear(in_features=32, out_features=64, bias=True)
    (2): Dropout(p=0.0, inplace=False)
    (3): ReLU()
    (4): Linear(in_features=64, out_features=3, bias=True)
  )
)
Self.model_feat vadility passes.
Phase 1 use self defined model!

Phase 2 Training: Can train from scratch (is_train = True) or load pretrained phase 2 model (is_train = False).

In[19]:

mmDiffRunner.phase2_train(train_loader = None, is_train = False)
Phase 2 use pretrained model!

Testing mmDiff

In[20]:

#mmDiffRunner.test()

Total running time of the script: (4 minutes 45.885 seconds)

Gallery generated by Sphinx-Gallery

Docs

Access documentation for Pysensing

View Docs

Tutorials

Get started with tutorials and examples

View Tutorials

Get Started

Find resources and how to start using pysensing

View Resources