Note
Go to the end to download the full example code
Mean signal diffusion kurtosis imaging (MSDKI)#
Diffusion Kurtosis Imaging (DKI) is one of the conventional ways to estimate the degree of non-Gaussian diffusion (see Reconstruction of the diffusion signal with the kurtosis tensor model) [Jensen2005]. However, a limitation of DKI is that its measures are highly sensitive to noise and image artefacts. For instance, due to the low radial diffusivities, standard kurtosis estimates in regions of well-aligned voxel may be corrupted by implausible low or even negative values.
A way to overcome this issue is to characterize kurtosis from average signals across all directions acquired for each data b-value (also known as powder-averaged signals). Moreover, as previously pointed [NetoHe2015], standard kurtosis measures (e.g. radial, axial and standard mean kurtosis) do not only depend on microstructural properties but also on mesoscopic properties such as fiber dispersion or the intersection angle of crossing fibers. In contrary, the kurtosis from powder-average signals has the advantage of not depending on the fiber distribution functions [NetoHe2018], [NetoHe2019].
In short, in this tutorial we show how to characterize non-Gaussian diffusion in a more precise way and decoupled from confounding effects of tissue dispersion and crossing.
In the first part of this example, we illustrate the properties of the measures obtained from the mean signal diffusion kurtosis imaging (MSDKI) [NetoHe2018] using synthetic data. Secondly, the mean signal diffusion kurtosis imaging will be applied to in-vivo MRI data. Finally, we show how MSDKI provides the same information than common microstructural models such as the spherical mean technique [NetoHe2019], [Kaden2016b].
Let’s import all relevant modules:
import numpy as np
import matplotlib.pyplot as plt
# Reconstruction modules
import dipy.reconst.dki as dki
import dipy.reconst.msdki as msdki
# For simulations
from dipy.sims.voxel import multi_tensor
from dipy.core.gradients import gradient_table
from dipy.core.sphere import disperse_charges, HemiSphere
# For in-vivo data
from dipy.data import get_fnames
from dipy.io.gradients import read_bvals_bvecs
from dipy.io.image import load_nifti
from dipy.segment.mask import median_otsu
Testing MSDKI in synthetic data#
We simulate representative diffusion-weighted signals using MultiTensor simulations (for more information on this type of simulations see MultiTensor Simulation). For this example, simulations are produced based on the sum of four diffusion tensors to represent the intra- and extra-cellular spaces of two fiber populations. The parameters of these tensors are adjusted according to [NetoHe2015] (see also DKI MultiTensor Simulation).
mevals = np.array([[0.00099, 0, 0],
[0.00226, 0.00087, 0.00087],
[0.00099, 0, 0],
[0.00226, 0.00087, 0.00087]])
For the acquisition parameters of the synthetic data, we use 60 gradient directions for two non-zero b-values (1000 and 2000 \(s/mm^{2}\)) and two zero bvalues (note that, such as the standard DKI, MSDKI requires at least three different b-values).
# Sample the spherical coordinates of 60 random diffusion-weighted directions.
rng = np.random.default_rng()
n_pts = 60
theta = np.pi * rng.random(n_pts)
phi = 2 * np.pi * rng.random(n_pts)
# Convert direction to cartesian coordinates.
hsph_initial = HemiSphere(theta=theta, phi=phi)
# Evenly distribute the 60 directions
hsph_updated, potential = disperse_charges(hsph_initial, 5000)
directions = hsph_updated.vertices
# Reconstruct acquisition parameters for 2 non-zero=b-values and 2 b0s
bvals = np.hstack((np.zeros(2), 1000 * np.ones(n_pts), 2000 * np.ones(n_pts)))
bvecs = np.vstack((np.zeros((2, 3)), directions, directions))
gtab = gradient_table(bvals, bvecs)
Simulations are looped for different intra- and extra-cellular water volume fractions and different intersection angles of the two-fiber populations.
# Array containing the intra-cellular volume fractions tested
f = np.linspace(20, 80.0, num=7)
# Array containing the intersection angle
ang = np.linspace(0, 90.0, num=91)
# Matrix where synthetic signals will be stored
dwi = np.empty((f.size, ang.size, bvals.size))
for f_i in range(f.size):
# estimating volume fractions for individual tensors
fractions = np.array([100 - f[f_i], f[f_i], 100 - f[f_i], f[f_i]]) * 0.5
for a_i in range(ang.size):
# defining the directions for individual tensors
angles = [(ang[a_i], 0.0), (ang[a_i], 0.0), (0.0, 0.0), (0.0, 0.0)]
# producing signals using Dipy's function multi_tensor
signal, sticks = multi_tensor(gtab, mevals, S0=100, angles=angles,
fractions=fractions, snr=None)
dwi[f_i, a_i, :] = signal
Now that all synthetic signals were produced, we can go forward with MSDKI fitting. As other Dipy’s reconstruction techniques, the MSDKI model has to be first defined for the specific GradientTable object of the synthetic data. For MSDKI, this is done by instantiating the MeanDiffusionKurtosisModel object in the following way:
MSDKI can then be fitted to the synthetic data by calling the fit
function of this object:
msdki_fit = msdki_model.fit(dwi)
From the above fit object we can extract the two main parameters of the MSDKI, i.e.: 1) the mean signal diffusion (MSD); and 2) the mean signal kurtosis (MSK)
For a reference, we also calculate the mean diffusivity (MD) and mean kurtosis (MK) from the standard DKI.
dki_model = dki.DiffusionKurtosisModel(gtab)
dki_fit = dki_model.fit(dwi)
MD = dki_fit.md
MK = dki_fit.mk(0, 3)
0%| | 0/637 [00:00<?, ?it/s]
36%|████████████████████████████████████████████████▋ | 228/637 [00:00<00:00, 2271.42it/s]
74%|████████████████████████████████████████████████████████████████████████████████████████████████████▉ | 473/637 [00:00<00:00, 2364.29it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 637/637 [00:00<00:00, 2372.53it/s]
Now we plot the results as a function of the ground truth intersection angle and for different volume fractions of intra-cellular water.
fig1, axs = plt.subplots(nrows=2, ncols=2, figsize=(10, 10))
for f_i in range(f.size):
axs[0, 0].plot(ang, MSD[f_i], linewidth=1.0,
label=':math:`F: %.2f`' % f[f_i])
axs[0, 1].plot(ang, MSK[f_i], linewidth=1.0,
label=':math:`F: %.2f`' % f[f_i])
axs[1, 0].plot(ang, MD[f_i], linewidth=1.0,
label=':math:`F: %.2f`' % f[f_i])
axs[1, 1].plot(ang, MK[f_i], linewidth=1.0,
label=':math:`F: %.2f`' % f[f_i])
# Adjust properties of the first panel of the figure
axs[0, 0].set_xlabel('Intersection angle')
axs[0, 0].set_ylabel('MSD')
axs[0, 1].set_xlabel('Intersection angle')
axs[0, 1].set_ylabel('MSK')
axs[0, 1].legend(loc='center left', bbox_to_anchor=(1, 0.5))
axs[1, 0].set_xlabel('Intersection angle')
axs[1, 0].set_ylabel('MD')
axs[1, 1].set_xlabel('Intersection angle')
axs[1, 1].set_ylabel('MK')
axs[1, 1].legend(loc='center left', bbox_to_anchor=(1, 0.5))
plt.show()
fig1.savefig('MSDKI_simulations.png')
MSDKI and DKI measures for data of two crossing synthetic fibers. Upper panels show the MSDKI measures: 1) mean signal diffusivity (left panel); and 2) mean signal kurtosis (right panel). For reference, lower panels show the measures obtained by standard DKI: 1) mean diffusivity (left panel); and 2) mean kurtosis (right panel). All estimates are plotted as a function of the intersecting angle of the two crossing fibers. Different curves correspond to different ground truth axonal volume fraction of intra-cellular space.
The results of the above figure, demonstrate that both MSD and MSK are sensitive to axonal volume fraction (i.e. a microstructure property) but are independent to the intersection angle of the two crossing fibers (i.e. independent to properties regarding fiber orientation). In contrast, DKI measures seem to be independent to both axonal volume fraction and intersection angle.
Reconstructing diffusion data using MSDKI#
Now that the properties of MSDKI were illustrated, let’s apply MSDKI to in-vivo diffusion-weighted data. As the example for the standard DKI (see Reconstruction of the diffusion signal with the kurtosis tensor model), we use fetch to download a multi-shell dataset which was kindly provided by Hansen and Jespersen (more details about the data are provided in their paper [Hansen2016]). The total size of the downloaded data is 192 MBytes, however you only need to fetch it once.
fraw, fbval, fbvec, t1_fname = get_fnames('cfin_multib')
data, affine = load_nifti(fraw)
bvals, bvecs = read_bvals_bvecs(fbval, fbvec)
gtab = gradient_table(bvals, bvecs)
Before fitting the data, we perform some data pre-processing. For illustration, we only mask the data to avoid unnecessary calculations on the background of the image; however, you could also apply other pre-processing techniques. For example, some state of the art denoising algorithms are available in DIPY (e.g. the non-local means filter Denoise images using Non-Local Means (NLMEANS) or the local pca Denoise images using Local PCA via empirical thresholds).
maskdata, mask = median_otsu(data, vol_idx=[0, 1], median_radius=4, numpass=2,
autocrop=False, dilate=1)
Now that we have loaded and pre-processed the data we can go forward with MSDKI fitting. As for the synthetic data, the MSDKI model has to be first defined for the data’s GradientTable object:
The data can then be fitted by calling the fit
function of this object:
msdki_fit = msdki_model.fit(data, mask=mask)
Let’s then extract the two main MSDKI’s parameters: 1) mean signal diffusion (MSD); and 2) mean signal kurtosis (MSK).
For comparison, we calculate also the mean diffusivity (MD) and mean kurtosis (MK) from the standard DKI.
dki_model = dki.DiffusionKurtosisModel(gtab)
dki_fit = dki_model.fit(data, mask=mask)
MD = dki_fit.md
MK = dki_fit.mk(0, 3)
0%| | 0/57580 [00:00<?, ?it/s]
0%|▏ | 67/57580 [00:00<01:26, 667.04it/s]
0%|▎ | 156/57580 [00:00<01:12, 796.84it/s]
0%|▌ | 236/57580 [00:00<01:15, 761.87it/s]
1%|▋ | 313/57580 [00:00<01:18, 727.63it/s]
1%|▉ | 387/57580 [00:00<01:18, 726.35it/s]
1%|█ | 460/57580 [00:00<01:20, 706.24it/s]
1%|█▎ | 534/57580 [00:00<01:19, 715.87it/s]
1%|█▍ | 613/57580 [00:00<01:17, 735.67it/s]
1%|█▌ | 692/57580 [00:00<01:15, 751.38it/s]
1%|█▊ | 768/57580 [00:01<01:16, 739.64it/s]
1%|█▉ | 843/57580 [00:01<01:18, 720.50it/s]
2%|██▏ | 918/57580 [00:01<01:17, 727.48it/s]
2%|██▎ | 991/57580 [00:01<01:19, 713.52it/s]
2%|██▌ | 1077/57580 [00:01<01:14, 755.79it/s]
2%|██▋ | 1155/57580 [00:01<01:14, 762.28it/s]
2%|██▊ | 1232/57580 [00:01<01:15, 750.57it/s]
2%|███ | 1308/57580 [00:01<01:16, 739.67it/s]
2%|███▏ | 1383/57580 [00:01<01:16, 731.06it/s]
3%|███▍ | 1457/57580 [00:01<01:17, 724.32it/s]
3%|███▌ | 1530/57580 [00:02<01:17, 725.33it/s]
3%|███▋ | 1603/57580 [00:02<01:18, 712.41it/s]
3%|███▉ | 1680/57580 [00:02<01:16, 728.56it/s]
3%|████ | 1753/57580 [00:02<01:17, 723.96it/s]
3%|████▎ | 1827/57580 [00:02<01:16, 728.10it/s]
3%|████▍ | 1900/57580 [00:02<01:17, 721.63it/s]
3%|████▌ | 1977/57580 [00:02<01:15, 732.93it/s]
4%|████▊ | 2058/57580 [00:02<01:13, 755.06it/s]
4%|████▉ | 2139/57580 [00:02<01:12, 768.08it/s]
4%|█████▏ | 2220/57580 [00:03<01:10, 779.87it/s]
4%|█████▎ | 2301/57580 [00:03<01:10, 785.79it/s]
4%|█████▌ | 2380/57580 [00:03<01:11, 774.76it/s]
4%|█████▋ | 2463/57580 [00:03<01:09, 790.51it/s]
4%|█████▉ | 2543/57580 [00:03<01:11, 767.48it/s]
5%|██████ | 2620/57580 [00:03<01:11, 765.29it/s]
5%|██████▎ | 2697/57580 [00:03<01:12, 759.65it/s]
5%|██████▍ | 2774/57580 [00:03<01:12, 759.67it/s]
5%|██████▋ | 2851/57580 [00:03<01:12, 755.42it/s]
5%|██████▊ | 2932/57580 [00:03<01:10, 770.75it/s]
5%|███████ | 3013/57580 [00:04<01:10, 779.37it/s]
5%|███████▏ | 3091/57580 [00:04<01:11, 767.32it/s]
6%|███████▎ | 3168/57580 [00:04<01:11, 756.57it/s]
6%|███████▌ | 3244/57580 [00:04<01:13, 742.82it/s]
6%|███████▋ | 3319/57580 [00:04<01:13, 741.51it/s]
6%|███████▉ | 3394/57580 [00:04<01:12, 743.34it/s]
6%|████████ | 3469/57580 [00:04<01:13, 731.63it/s]
6%|████████▏ | 3543/57580 [00:04<01:14, 724.86it/s]
6%|████████▍ | 3621/57580 [00:04<01:12, 740.27it/s]
6%|████████▌ | 3700/57580 [00:04<01:11, 751.91it/s]
7%|████████▊ | 3776/57580 [00:05<01:11, 753.45it/s]
7%|████████▉ | 3852/57580 [00:05<01:12, 738.93it/s]
7%|█████████▏ | 3926/57580 [00:05<01:15, 715.28it/s]
7%|█████████▎ | 3998/57580 [00:05<01:15, 709.76it/s]
7%|█████████▍ | 4070/57580 [00:05<01:15, 711.68it/s]
7%|█████████▋ | 4142/57580 [00:05<01:15, 706.19it/s]
7%|█████████▊ | 4215/57580 [00:05<01:14, 712.45it/s]
7%|█████████▉ | 4288/57580 [00:05<01:14, 716.91it/s]
8%|██████████▏ | 4360/57580 [00:05<01:14, 712.65it/s]
8%|██████████▎ | 4432/57580 [00:05<01:15, 707.87it/s]
8%|██████████▍ | 4503/57580 [00:06<01:15, 707.59it/s]
8%|██████████▋ | 4574/57580 [00:06<01:15, 705.45it/s]
8%|██████████▊ | 4650/57580 [00:06<01:13, 719.93it/s]
8%|██████████▉ | 4723/57580 [00:06<01:14, 709.30it/s]
8%|███████████▏ | 4794/57580 [00:06<01:14, 706.41it/s]
8%|███████████▎ | 4865/57580 [00:06<01:15, 700.41it/s]
9%|███████████▍ | 4938/57580 [00:06<01:14, 705.79it/s]
9%|███████████▋ | 5009/57580 [00:06<01:14, 706.36it/s]
9%|███████████▊ | 5081/57580 [00:06<01:14, 706.45it/s]
9%|████████████ | 5159/57580 [00:07<01:12, 727.52it/s]
9%|████████████▏ | 5232/57580 [00:07<01:12, 718.74it/s]
9%|████████████▎ | 5304/57580 [00:07<01:13, 707.79it/s]
9%|████████████▌ | 5375/57580 [00:07<01:14, 702.80it/s]
9%|████████████▋ | 5447/57580 [00:07<01:13, 706.75it/s]
10%|████████████▊ | 5519/57580 [00:07<01:13, 709.81it/s]
10%|█████████████ | 5591/57580 [00:07<01:14, 699.77it/s]
10%|█████████████▏ | 5662/57580 [00:07<01:13, 702.10it/s]
10%|█████████████▎ | 5733/57580 [00:07<01:13, 703.66it/s]
10%|█████████████▌ | 5804/57580 [00:07<01:13, 704.88it/s]
10%|█████████████▋ | 5876/57580 [00:08<01:12, 708.62it/s]
10%|█████████████▊ | 5954/57580 [00:08<01:10, 729.00it/s]
10%|██████████████ | 6034/57580 [00:08<01:08, 749.23it/s]
11%|██████████████▏ | 6109/57580 [00:08<01:09, 744.27it/s]
11%|██████████████▍ | 6184/57580 [00:08<01:09, 734.38it/s]
11%|██████████████▌ | 6258/57580 [00:08<01:09, 735.04it/s]
11%|██████████████▋ | 6332/57580 [00:08<01:10, 726.61it/s]
11%|██████████████▉ | 6411/57580 [00:08<01:08, 744.66it/s]
11%|███████████████ | 6492/57580 [00:08<01:07, 762.07it/s]
11%|███████████████▎ | 6569/57580 [00:08<01:10, 718.82it/s]
12%|███████████████▍ | 6642/57580 [00:09<01:12, 706.89it/s]
12%|███████████████▌ | 6714/57580 [00:09<01:12, 706.02it/s]
12%|███████████████▊ | 6785/57580 [00:09<01:12, 700.43it/s]
12%|███████████████▉ | 6856/57580 [00:09<01:13, 688.35it/s]
12%|████████████████ | 6928/57580 [00:09<01:12, 694.49it/s]
12%|████████████████▎ | 7002/57580 [00:09<01:11, 707.05it/s]
12%|████████████████▍ | 7073/57580 [00:09<01:11, 704.80it/s]
12%|████████████████▋ | 7146/57580 [00:09<01:10, 711.44it/s]
13%|████████████████▊ | 7220/57580 [00:09<01:10, 716.74it/s]
13%|████████████████▉ | 7294/57580 [00:09<01:09, 720.83it/s]
13%|█████████████████▏ | 7367/57580 [00:10<01:09, 720.62it/s]
13%|█████████████████▎ | 7440/57580 [00:10<01:10, 708.77it/s]
13%|█████████████████▍ | 7511/57580 [00:10<01:11, 695.97it/s]
13%|█████████████████▋ | 7581/57580 [00:10<01:12, 690.00it/s]
13%|█████████████████▊ | 7651/57580 [00:10<01:12, 690.12it/s]
13%|█████████████████▉ | 7727/57580 [00:10<01:10, 707.86it/s]
14%|██████████████████▏ | 7807/57580 [00:10<01:07, 734.30it/s]
14%|██████████████████▎ | 7888/57580 [00:10<01:05, 756.05it/s]
14%|██████████████████▌ | 7969/57580 [00:10<01:04, 771.23it/s]
14%|██████████████████▋ | 8050/57580 [00:11<01:03, 781.93it/s]
14%|██████████████████▉ | 8129/57580 [00:11<01:04, 760.82it/s]
14%|███████████████████ | 8206/57580 [00:11<01:06, 740.83it/s]
14%|███████████████████▎ | 8281/57580 [00:11<01:08, 715.67it/s]
15%|███████████████████▍ | 8353/57580 [00:11<01:09, 710.08it/s]
15%|███████████████████▌ | 8427/57580 [00:11<01:08, 717.94it/s]
15%|███████████████████▊ | 8501/57580 [00:11<01:07, 723.63it/s]
15%|███████████████████▉ | 8574/57580 [00:11<01:08, 716.22it/s]
15%|████████████████████ | 8646/57580 [00:11<01:08, 712.25it/s]
15%|████████████████████▎ | 8722/57580 [00:11<01:07, 725.67it/s]
15%|████████████████████▍ | 8798/57580 [00:12<01:06, 733.07it/s]
15%|████████████████████▋ | 8872/57580 [00:12<01:06, 730.14it/s]
16%|████████████████████▊ | 8948/57580 [00:12<01:05, 738.08it/s]
16%|█████████████████████ | 9025/57580 [00:12<01:05, 746.79it/s]
16%|█████████████████████▏ | 9100/57580 [00:12<01:06, 733.98it/s]
16%|█████████████████████▎ | 9174/57580 [00:12<01:07, 718.06it/s]
16%|█████████████████████▌ | 9247/57580 [00:12<01:07, 720.80it/s]
16%|█████████████████████▋ | 9320/57580 [00:12<01:07, 716.64it/s]
16%|█████████████████████▊ | 9392/57580 [00:12<01:07, 714.93it/s]
16%|██████████████████████ | 9464/57580 [00:13<01:09, 697.29it/s]
17%|██████████████████████▏ | 9534/57580 [00:13<01:11, 673.62it/s]
17%|██████████████████████▎ | 9603/57580 [00:13<01:10, 677.68it/s]
17%|██████████████████████▌ | 9671/57580 [00:13<01:10, 675.60it/s]
17%|██████████████████████▋ | 9739/57580 [00:13<01:10, 676.05it/s]
17%|██████████████████████▊ | 9811/57580 [00:13<01:09, 686.21it/s]
17%|██████████████████████▉ | 9881/57580 [00:13<01:09, 689.58it/s]
17%|███████████████████████▏ | 9951/57580 [00:13<01:09, 681.77it/s]
17%|███████████████████████▏ | 10022/57580 [00:13<01:09, 687.32it/s]
18%|███████████████████████▎ | 10094/57580 [00:13<01:08, 696.28it/s]
18%|███████████████████████▌ | 10179/57580 [00:14<01:03, 741.44it/s]
18%|███████████████████████▋ | 10255/57580 [00:14<01:03, 746.29it/s]
18%|███████████████████████▊ | 10330/57580 [00:14<01:04, 731.02it/s]
18%|████████████████████████ | 10404/57580 [00:14<01:06, 706.02it/s]
18%|████████████████████████▏ | 10477/57580 [00:14<01:06, 712.22it/s]
18%|████████████████████████▎ | 10549/57580 [00:14<01:05, 713.84it/s]
18%|████████████████████████▌ | 10624/57580 [00:14<01:05, 721.67it/s]
19%|████████████████████████▋ | 10700/57580 [00:14<01:04, 732.25it/s]
19%|████████████████████████▉ | 10774/57580 [00:14<01:03, 731.64it/s]
19%|█████████████████████████ | 10852/57580 [00:14<01:02, 744.99it/s]
19%|█████████████████████████▏ | 10927/57580 [00:15<01:02, 743.58it/s]
19%|█████████████████████████▍ | 11002/57580 [00:15<01:02, 740.37it/s]
19%|█████████████████████████▌ | 11078/57580 [00:15<01:02, 745.47it/s]
19%|█████████████████████████▊ | 11153/57580 [00:15<01:03, 726.74it/s]
19%|█████████████████████████▉ | 11228/57580 [00:15<01:03, 730.71it/s]
20%|██████████████████████████ | 11302/57580 [00:15<01:03, 724.27it/s]
20%|██████████████████████████▎ | 11375/57580 [00:15<01:03, 723.07it/s]
20%|██████████████████████████▍ | 11451/57580 [00:15<01:02, 733.16it/s]
20%|██████████████████████████▌ | 11526/57580 [00:15<01:02, 735.15it/s]
20%|██████████████████████████▊ | 11600/57580 [00:15<01:03, 727.28it/s]
20%|██████████████████████████▉ | 11673/57580 [00:16<01:03, 725.07it/s]
20%|███████████████████████████▏ | 11746/57580 [00:16<01:03, 717.17it/s]
21%|███████████████████████████▎ | 11818/57580 [00:16<01:04, 713.01it/s]
21%|███████████████████████████▍ | 11890/57580 [00:16<01:04, 705.87it/s]
21%|███████████████████████████▋ | 11965/57580 [00:16<01:03, 716.99it/s]
21%|███████████████████████████▊ | 12037/57580 [00:16<01:04, 700.71it/s]
21%|███████████████████████████▉ | 12109/57580 [00:16<01:04, 705.26it/s]
21%|████████████████████████████▏ | 12181/57580 [00:16<01:04, 707.01it/s]
21%|████████████████████████████▎ | 12254/57580 [00:16<01:03, 713.02it/s]
21%|████████████████████████████▍ | 12326/57580 [00:17<01:05, 687.74it/s]
22%|████████████████████████████▋ | 12398/57580 [00:17<01:04, 695.91it/s]
22%|████████████████████████████▊ | 12468/57580 [00:17<01:05, 692.20it/s]
22%|████████████████████████████▉ | 12538/57580 [00:17<01:06, 681.73it/s]
22%|█████████████████████████████ | 12607/57580 [00:17<01:06, 674.92it/s]
22%|█████████████████████████████▎ | 12675/57580 [00:17<01:06, 671.62it/s]
22%|█████████████████████████████▍ | 12746/57580 [00:17<01:05, 682.63it/s]
22%|█████████████████████████████▌ | 12820/57580 [00:17<01:04, 696.27it/s]
22%|█████████████████████████████▊ | 12894/57580 [00:17<01:03, 706.34it/s]
23%|█████████████████████████████▉ | 12967/57580 [00:17<01:02, 712.20it/s]
23%|██████████████████████████████ | 13039/57580 [00:18<01:02, 711.55it/s]
23%|██████████████████████████████▎ | 13111/57580 [00:18<01:03, 702.79it/s]
23%|██████████████████████████████▍ | 13182/57580 [00:18<01:03, 697.53it/s]
23%|██████████████████████████████▌ | 13252/57580 [00:18<01:04, 684.09it/s]
23%|██████████████████████████████▊ | 13323/57580 [00:18<01:04, 690.72it/s]
23%|██████████████████████████████▉ | 13403/57580 [00:18<01:01, 722.21it/s]
23%|███████████████████████████████▏ | 13488/57580 [00:18<00:58, 759.36it/s]
24%|███████████████████████████████▎ | 13568/57580 [00:18<00:57, 770.58it/s]
24%|███████████████████████████████▌ | 13649/57580 [00:18<00:56, 781.51it/s]
24%|███████████████████████████████▋ | 13728/57580 [00:18<00:56, 771.08it/s]
24%|███████████████████████████████▉ | 13806/57580 [00:19<00:57, 755.26it/s]
24%|████████████████████████████████ | 13882/57580 [00:19<00:59, 740.23it/s]
24%|████████████████████████████████▏ | 13957/57580 [00:19<01:00, 721.37it/s]
24%|████████████████████████████████▍ | 14030/57580 [00:19<01:02, 700.89it/s]
24%|████████████████████████████████▌ | 14101/57580 [00:19<01:03, 688.74it/s]
25%|████████████████████████████████▋ | 14172/57580 [00:19<01:02, 692.83it/s]
25%|████████████████████████████████▉ | 14246/57580 [00:19<01:01, 705.49it/s]
25%|█████████████████████████████████ | 14318/57580 [00:19<01:01, 709.13it/s]
25%|█████████████████████████████████▏ | 14392/57580 [00:19<01:00, 715.25it/s]
25%|█████████████████████████████████▍ | 14466/57580 [00:20<00:59, 719.59it/s]
25%|█████████████████████████████████▌ | 14542/57580 [00:20<00:58, 730.70it/s]
25%|█████████████████████████████████▊ | 14619/57580 [00:20<00:57, 741.70it/s]
26%|█████████████████████████████████▉ | 14694/57580 [00:20<00:59, 722.31it/s]
26%|██████████████████████████████████ | 14767/57580 [00:20<01:00, 709.30it/s]
26%|██████████████████████████████████▎ | 14839/57580 [00:20<01:01, 699.55it/s]
26%|██████████████████████████████████▍ | 14910/57580 [00:20<01:01, 697.85it/s]
26%|██████████████████████████████████▌ | 14982/57580 [00:20<01:00, 701.38it/s]
26%|██████████████████████████████████▊ | 15053/57580 [00:20<01:00, 703.26it/s]
26%|██████████████████████████████████▉ | 15124/57580 [00:20<01:00, 703.79it/s]
26%|███████████████████████████████████ | 15205/57580 [00:21<00:57, 734.28it/s]
27%|███████████████████████████████████▎ | 15279/57580 [00:21<00:58, 728.69it/s]
27%|███████████████████████████████████▍ | 15352/57580 [00:21<00:58, 717.83it/s]
27%|███████████████████████████████████▋ | 15424/57580 [00:21<01:00, 699.13it/s]
27%|███████████████████████████████████▊ | 15495/57580 [00:21<01:01, 686.99it/s]
27%|███████████████████████████████████▉ | 15565/57580 [00:21<01:01, 688.05it/s]
27%|████████████████████████████████████ | 15638/57580 [00:21<00:59, 699.56it/s]
27%|████████████████████████████████████▎ | 15719/57580 [00:21<00:57, 729.02it/s]
27%|████████████████████████████████████▍ | 15792/57580 [00:21<00:57, 728.51it/s]
28%|████████████████████████████████████▋ | 15865/57580 [00:21<00:57, 725.80it/s]
28%|████████████████████████████████████▊ | 15938/57580 [00:22<00:57, 726.01it/s]
28%|████████████████████████████████████▉ | 16011/57580 [00:22<00:57, 717.89it/s]
28%|█████████████████████████████████████▏ | 16083/57580 [00:22<00:59, 701.22it/s]
28%|█████████████████████████████████████▎ | 16154/57580 [00:22<00:59, 694.36it/s]
28%|█████████████████████████████████████▍ | 16226/57580 [00:22<00:58, 701.01it/s]
28%|█████████████████████████████████████▋ | 16298/57580 [00:22<00:58, 703.73it/s]
28%|█████████████████████████████████████▊ | 16375/57580 [00:22<00:57, 722.46it/s]
29%|██████████████████████████████████████ | 16465/57580 [00:22<00:53, 774.46it/s]
29%|██████████████████████████████████████▏ | 16555/57580 [00:22<00:50, 810.26it/s]
29%|██████████████████████████████████████▍ | 16644/57580 [00:22<00:49, 833.40it/s]
29%|██████████████████████████████████████▋ | 16732/57580 [00:23<00:48, 843.20it/s]
29%|██████████████████████████████████████▊ | 16817/57580 [00:23<00:49, 822.24it/s]
29%|███████████████████████████████████████ | 16900/57580 [00:23<00:52, 771.15it/s]
29%|███████████████████████████████████████▏ | 16978/57580 [00:23<00:53, 757.72it/s]
30%|███████████████████████████████████████▍ | 17055/57580 [00:23<00:53, 751.70it/s]
30%|███████████████████████████████████████▌ | 17131/57580 [00:23<00:54, 736.56it/s]
30%|███████████████████████████████████████▋ | 17205/57580 [00:23<00:56, 710.45it/s]
30%|███████████████████████████████████████▉ | 17277/57580 [00:23<00:56, 708.55it/s]
30%|████████████████████████████████████████ | 17349/57580 [00:23<00:57, 704.83it/s]
30%|████████████████████████████████████████▏ | 17420/57580 [00:24<00:56, 705.75it/s]
30%|████████████████████████████████████████▍ | 17491/57580 [00:24<00:56, 705.15it/s]
31%|████████████████████████████████████████▌ | 17566/57580 [00:24<00:55, 717.62it/s]
31%|████████████████████████████████████████▋ | 17638/57580 [00:24<00:57, 696.67it/s]
31%|████████████████████████████████████████▉ | 17708/57580 [00:24<00:57, 694.79it/s]
31%|█████████████████████████████████████████ | 17780/57580 [00:24<00:56, 699.28it/s]
31%|█████████████████████████████████████████▏ | 17851/57580 [00:24<00:58, 679.32it/s]
31%|█████████████████████████████████████████▍ | 17920/57580 [00:24<00:58, 681.69it/s]
31%|█████████████████████████████████████████▌ | 17991/57580 [00:24<00:57, 689.39it/s]
31%|█████████████████████████████████████████▋ | 18061/57580 [00:24<00:57, 687.70it/s]
31%|█████████████████████████████████████████▉ | 18134/57580 [00:25<00:56, 699.30it/s]
32%|██████████████████████████████████████████ | 18205/57580 [00:25<00:56, 697.64it/s]
32%|██████████████████████████████████████████▏ | 18275/57580 [00:25<00:56, 690.40it/s]
32%|██████████████████████████████████████████▍ | 18362/57580 [00:25<00:52, 741.47it/s]
32%|██████████████████████████████████████████▌ | 18451/57580 [00:25<00:49, 784.75it/s]
32%|██████████████████████████████████████████▊ | 18530/57580 [00:25<00:50, 773.52it/s]
32%|██████████████████████████████████████████▉ | 18608/57580 [00:25<00:52, 737.96it/s]
32%|███████████████████████████████████████████▏ | 18683/57580 [00:25<00:53, 722.15it/s]
33%|███████████████████████████████████████████▎ | 18761/57580 [00:25<00:52, 735.68it/s]
33%|███████████████████████████████████████████▌ | 18840/57580 [00:26<00:51, 750.90it/s]
33%|███████████████████████████████████████████▋ | 18916/57580 [00:26<00:51, 748.61it/s]
33%|███████████████████████████████████████████▊ | 18992/57580 [00:26<00:51, 744.55it/s]
33%|████████████████████████████████████████████ | 19067/57580 [00:26<00:53, 715.84it/s]
33%|████████████████████████████████████████████▏ | 19144/57580 [00:26<00:52, 728.52it/s]
33%|████████████████████████████████████████████▍ | 19221/57580 [00:26<00:51, 739.67it/s]
34%|████████████████████████████████████████████▌ | 19296/57580 [00:26<00:53, 719.43it/s]
34%|████████████████████████████████████████████▊ | 19377/57580 [00:26<00:51, 744.85it/s]
34%|████████████████████████████████████████████▉ | 19458/57580 [00:26<00:49, 763.24it/s]
34%|█████████████████████████████████████████████▏ | 19539/57580 [00:26<00:49, 776.23it/s]
34%|█████████████████████████████████████████████▎ | 19621/57580 [00:27<00:48, 788.37it/s]
34%|█████████████████████████████████████████████▌ | 19700/57580 [00:27<00:49, 771.90it/s]
34%|█████████████████████████████████████████████▋ | 19778/57580 [00:27<00:49, 758.02it/s]
34%|█████████████████████████████████████████████▊ | 19854/57580 [00:27<00:50, 742.55it/s]
35%|██████████████████████████████████████████████ | 19936/57580 [00:27<00:49, 764.37it/s]
35%|██████████████████████████████████████████████▏ | 20013/57580 [00:27<00:49, 760.48it/s]
35%|██████████████████████████████████████████████▍ | 20095/57580 [00:27<00:48, 776.97it/s]
35%|██████████████████████████████████████████████▌ | 20185/57580 [00:27<00:46, 812.57it/s]
35%|██████████████████████████████████████████████▊ | 20275/57580 [00:27<00:44, 837.93it/s]
35%|███████████████████████████████████████████████ | 20365/57580 [00:27<00:43, 855.77it/s]
36%|███████████████████████████████████████████████▏ | 20453/57580 [00:28<00:43, 862.32it/s]
36%|███████████████████████████████████████████████▍ | 20540/57580 [00:28<00:45, 809.87it/s]
36%|███████████████████████████████████████████████▋ | 20622/57580 [00:28<00:48, 764.01it/s]
36%|███████████████████████████████████████████████▊ | 20700/57580 [00:28<00:49, 743.03it/s]
36%|███████████████████████████████████████████████▉ | 20775/57580 [00:28<00:49, 742.17it/s]
36%|████████████████████████████████████████████████▏ | 20850/57580 [00:28<00:51, 715.38it/s]
36%|████████████████████████████████████████████████▎ | 20922/57580 [00:28<00:51, 713.67it/s]
36%|████████████████████████████████████████████████▍ | 20994/57580 [00:28<00:51, 708.48it/s]
37%|████████████████████████████████████████████████▋ | 21067/57580 [00:28<00:51, 714.10it/s]
37%|████████████████████████████████████████████████▊ | 21140/57580 [00:29<00:50, 718.11it/s]
37%|█████████████████████████████████████████████████ | 21218/57580 [00:29<00:49, 735.53it/s]
37%|█████████████████████████████████████████████████▏ | 21298/57580 [00:29<00:48, 753.98it/s]
37%|█████████████████████████████████████████████████▎ | 21374/57580 [00:29<00:49, 737.42it/s]
37%|█████████████████████████████████████████████████▌ | 21448/57580 [00:29<00:49, 730.73it/s]
37%|█████████████████████████████████████████████████▋ | 21522/57580 [00:29<00:49, 730.64it/s]
38%|█████████████████████████████████████████████████▉ | 21596/57580 [00:29<00:49, 726.17it/s]
38%|██████████████████████████████████████████████████ | 21669/57580 [00:29<00:49, 724.18it/s]
38%|██████████████████████████████████████████████████▏ | 21742/57580 [00:29<00:49, 722.89it/s]
38%|██████████████████████████████████████████████████▍ | 21815/57580 [00:29<00:49, 720.15it/s]
38%|██████████████████████████████████████████████████▌ | 21888/57580 [00:30<00:49, 720.05it/s]
38%|██████████████████████████████████████████████████▋ | 21961/57580 [00:30<00:49, 715.85it/s]
38%|██████████████████████████████████████████████████▉ | 22033/57580 [00:30<00:51, 692.86it/s]
38%|███████████████████████████████████████████████████ | 22103/57580 [00:30<00:51, 682.28it/s]
39%|███████████████████████████████████████████████████▏ | 22172/57580 [00:30<00:52, 673.76it/s]
39%|███████████████████████████████████████████████████▍ | 22243/57580 [00:30<00:51, 683.40it/s]
39%|███████████████████████████████████████████████████▌ | 22312/57580 [00:30<00:52, 676.76it/s]
39%|███████████████████████████████████████████████████▋ | 22387/57580 [00:30<00:50, 695.33it/s]
39%|███████████████████████████████████████████████████▉ | 22464/57580 [00:30<00:49, 715.46it/s]
39%|████████████████████████████████████████████████████ | 22540/57580 [00:31<00:48, 725.91it/s]
39%|████████████████████████████████████████████████████▏ | 22613/57580 [00:31<00:48, 724.34it/s]
39%|████████████████████████████████████████████████████▍ | 22686/57580 [00:31<00:48, 718.77it/s]
40%|████████████████████████████████████████████████████▌ | 22761/57580 [00:31<00:47, 727.40it/s]
40%|████████████████████████████████████████████████████▋ | 22835/57580 [00:31<00:47, 730.26it/s]
40%|████████████████████████████████████████████████████▉ | 22911/57580 [00:31<00:47, 737.33it/s]
40%|█████████████████████████████████████████████████████ | 22987/57580 [00:31<00:46, 743.43it/s]
40%|█████████████████████████████████████████████████████▎ | 23063/57580 [00:31<00:46, 747.66it/s]
40%|█████████████████████████████████████████████████████▍ | 23138/57580 [00:31<00:47, 728.03it/s]
40%|█████████████████████████████████████████████████████▋ | 23216/57580 [00:31<00:46, 742.63it/s]
40%|█████████████████████████████████████████████████████▊ | 23291/57580 [00:32<00:47, 729.01it/s]
41%|█████████████████████████████████████████████████████▉ | 23365/57580 [00:32<00:47, 724.54it/s]
41%|██████████████████████████████████████████████████████▏ | 23444/57580 [00:32<00:45, 743.06it/s]
41%|██████████████████████████████████████████████████████▎ | 23524/57580 [00:32<00:44, 756.93it/s]
41%|██████████████████████████████████████████████████████▌ | 23605/57580 [00:32<00:44, 771.78it/s]
41%|██████████████████████████████████████████████████████▋ | 23683/57580 [00:32<00:45, 751.20it/s]
41%|██████████████████████████████████████████████████████▉ | 23759/57580 [00:32<00:46, 733.61it/s]
41%|███████████████████████████████████████████████████████ | 23833/57580 [00:32<00:46, 718.89it/s]
42%|███████████████████████████████████████████████████████▏ | 23906/57580 [00:32<00:46, 719.12it/s]
42%|███████████████████████████████████████████████████████▍ | 23979/57580 [00:32<00:47, 711.18it/s]
42%|███████████████████████████████████████████████████████▌ | 24051/57580 [00:33<00:47, 708.96it/s]
42%|███████████████████████████████████████████████████████▋ | 24123/57580 [00:33<00:47, 709.48it/s]
42%|███████████████████████████████████████████████████████▉ | 24194/57580 [00:33<00:47, 702.50it/s]
42%|████████████████████████████████████████████████████████ | 24266/57580 [00:33<00:47, 703.33it/s]
42%|████████████████████████████████████████████████████████▏ | 24337/57580 [00:33<00:48, 686.14it/s]
42%|████████████████████████████████████████████████████████▎ | 24406/57580 [00:33<00:48, 682.53it/s]
43%|████████████████████████████████████████████████████████▌ | 24475/57580 [00:33<00:48, 678.07it/s]
43%|████████████████████████████████████████████████████████▋ | 24548/57580 [00:33<00:47, 692.40it/s]
43%|████████████████████████████████████████████████████████▊ | 24620/57580 [00:33<00:47, 699.69it/s]
43%|█████████████████████████████████████████████████████████ | 24692/57580 [00:34<00:46, 704.82it/s]
43%|█████████████████████████████████████████████████████████▏ | 24763/57580 [00:34<00:46, 699.42it/s]
43%|█████████████████████████████████████████████████████████▎ | 24834/57580 [00:34<00:46, 701.50it/s]
43%|█████████████████████████████████████████████████████████▌ | 24905/57580 [00:34<00:47, 694.98it/s]
43%|█████████████████████████████████████████████████████████▋ | 24978/57580 [00:34<00:46, 702.49it/s]
44%|█████████████████████████████████████████████████████████▊ | 25050/57580 [00:34<00:46, 706.83it/s]
44%|██████████████████████████████████████████████████████████ | 25121/57580 [00:34<00:46, 700.48it/s]
44%|██████████████████████████████████████████████████████████▏ | 25193/57580 [00:34<00:45, 704.60it/s]
44%|██████████████████████████████████████████████████████████▎ | 25265/57580 [00:34<00:45, 706.49it/s]
44%|██████████████████████████████████████████████████████████▌ | 25337/57580 [00:34<00:45, 709.94it/s]
44%|██████████████████████████████████████████████████████████▋ | 25409/57580 [00:35<00:45, 707.69it/s]
44%|██████████████████████████████████████████████████████████▊ | 25484/57580 [00:35<00:44, 719.25it/s]
44%|███████████████████████████████████████████████████████████ | 25561/57580 [00:35<00:43, 733.64it/s]
45%|███████████████████████████████████████████████████████████▏ | 25635/57580 [00:35<00:44, 717.97it/s]
45%|███████████████████████████████████████████████████████████▍ | 25707/57580 [00:35<00:45, 697.43it/s]
45%|███████████████████████████████████████████████████████████▌ | 25781/57580 [00:35<00:44, 706.99it/s]
45%|███████████████████████████████████████████████████████████▋ | 25854/57580 [00:35<00:44, 712.97it/s]
45%|███████████████████████████████████████████████████████████▉ | 25931/57580 [00:35<00:43, 726.96it/s]
45%|████████████████████████████████████████████████████████████ | 26012/57580 [00:35<00:42, 748.41it/s]
45%|████████████████████████████████████████████████████████████▎ | 26094/57580 [00:35<00:41, 766.23it/s]
45%|████████████████████████████████████████████████████████████▍ | 26174/57580 [00:36<00:40, 775.53it/s]
46%|████████████████████████████████████████████████████████████▋ | 26252/57580 [00:36<00:40, 766.55it/s]
46%|████████████████████████████████████████████████████████████▊ | 26329/57580 [00:36<00:41, 749.74it/s]
46%|████████████████████████████████████████████████████████████▉ | 26405/57580 [00:36<00:41, 750.96it/s]
46%|█████████████████████████████████████████████████████████████▏ | 26484/57580 [00:36<00:40, 761.62it/s]
46%|█████████████████████████████████████████████████████████████▎ | 26563/57580 [00:36<00:40, 769.29it/s]
46%|█████████████████████████████████████████████████████████████▌ | 26643/57580 [00:36<00:39, 777.59it/s]
46%|█████████████████████████████████████████████████████████████▋ | 26721/57580 [00:36<00:40, 764.59it/s]
47%|█████████████████████████████████████████████████████████████▉ | 26798/57580 [00:36<00:41, 737.11it/s]
47%|██████████████████████████████████████████████████████████████ | 26872/57580 [00:37<00:42, 726.74it/s]
47%|██████████████████████████████████████████████████████████████▏ | 26945/57580 [00:37<00:42, 716.77it/s]
47%|██████████████████████████████████████████████████████████████▍ | 27017/57580 [00:37<00:43, 708.57it/s]
47%|██████████████████████████████████████████████████████████████▌ | 27088/57580 [00:37<00:43, 700.09it/s]
47%|██████████████████████████████████████████████████████████████▋ | 27159/57580 [00:37<00:44, 686.04it/s]
47%|██████████████████████████████████████████████████████████████▉ | 27235/57580 [00:37<00:43, 704.67it/s]
47%|███████████████████████████████████████████████████████████████ | 27306/57580 [00:37<00:43, 693.42it/s]
48%|███████████████████████████████████████████████████████████████▎ | 27386/57580 [00:37<00:41, 723.58it/s]
48%|███████████████████████████████████████████████████████████████▍ | 27465/57580 [00:37<00:40, 742.15it/s]
48%|███████████████████████████████████████████████████████████████▌ | 27545/57580 [00:37<00:39, 757.08it/s]
48%|███████████████████████████████████████████████████████████████▊ | 27625/57580 [00:38<00:38, 769.10it/s]
48%|███████████████████████████████████████████████████████████████▉ | 27703/57580 [00:38<00:38, 768.87it/s]
48%|████████████████████████████████████████████████████████████████▏ | 27780/57580 [00:38<00:39, 745.98it/s]
48%|████████████████████████████████████████████████████████████████▎ | 27855/57580 [00:38<00:41, 721.39it/s]
49%|████████████████████████████████████████████████████████████████▌ | 27928/57580 [00:38<00:41, 715.24it/s]
49%|████████████████████████████████████████████████████████████████▋ | 28000/57580 [00:38<00:41, 715.93it/s]
49%|████████████████████████████████████████████████████████████████▊ | 28073/57580 [00:38<00:41, 719.33it/s]
49%|█████████████████████████████████████████████████████████████████ | 28152/57580 [00:38<00:39, 739.07it/s]
49%|█████████████████████████████████████████████████████████████████▏ | 28229/57580 [00:38<00:39, 747.27it/s]
49%|█████████████████████████████████████████████████████████████████▍ | 28304/57580 [00:38<00:39, 740.56it/s]
49%|█████████████████████████████████████████████████████████████████▌ | 28379/57580 [00:39<00:39, 734.75it/s]
49%|█████████████████████████████████████████████████████████████████▋ | 28453/57580 [00:39<00:40, 720.76it/s]
50%|█████████████████████████████████████████████████████████████████▉ | 28526/57580 [00:39<00:41, 706.01it/s]
50%|██████████████████████████████████████████████████████████████████ | 28597/57580 [00:39<00:41, 696.10it/s]
50%|██████████████████████████████████████████████████████████████████▏ | 28667/57580 [00:39<00:41, 696.52it/s]
50%|██████████████████████████████████████████████████████████████████▍ | 28740/57580 [00:39<00:40, 705.47it/s]
50%|██████████████████████████████████████████████████████████████████▌ | 28817/57580 [00:39<00:39, 724.04it/s]
50%|██████████████████████████████████████████████████████████████████▋ | 28897/57580 [00:39<00:38, 745.78it/s]
50%|██████████████████████████████████████████████████████████████████▉ | 28976/57580 [00:39<00:37, 758.30it/s]
50%|███████████████████████████████████████████████████████████████████ | 29056/57580 [00:39<00:37, 770.04it/s]
51%|███████████████████████████████████████████████████████████████████▎ | 29135/57580 [00:40<00:36, 775.28it/s]
51%|███████████████████████████████████████████████████████████████████▍ | 29213/57580 [00:40<00:37, 755.28it/s]
51%|███████████████████████████████████████████████████████████████████▋ | 29289/57580 [00:40<00:37, 750.59it/s]
51%|███████████████████████████████████████████████████████████████████▊ | 29365/57580 [00:40<00:38, 738.11it/s]
51%|████████████████████████████████████████████████████████████████████ | 29443/57580 [00:40<00:37, 749.66it/s]
51%|████████████████████████████████████████████████████████████████████▏ | 29519/57580 [00:40<00:38, 730.43it/s]
51%|████████████████████████████████████████████████████████████████████▎ | 29593/57580 [00:40<00:38, 721.59it/s]
52%|████████████████████████████████████████████████████████████████████▌ | 29666/57580 [00:40<00:39, 714.99it/s]
52%|████████████████████████████████████████████████████████████████████▋ | 29746/57580 [00:40<00:37, 738.98it/s]
52%|████████████████████████████████████████████████████████████████████▉ | 29835/57580 [00:41<00:35, 782.55it/s]
52%|█████████████████████████████████████████████████████████████████████ | 29919/57580 [00:41<00:34, 798.86it/s]
52%|█████████████████████████████████████████████████████████████████████▎ | 30000/57580 [00:41<00:35, 773.71it/s]
52%|█████████████████████████████████████████████████████████████████████▍ | 30078/57580 [00:41<00:36, 752.54it/s]
52%|█████████████████████████████████████████████████████████████████████▋ | 30154/57580 [00:41<00:37, 730.86it/s]
52%|█████████████████████████████████████████████████████████████████████▊ | 30228/57580 [00:41<00:38, 718.33it/s]
53%|█████████████████████████████████████████████████████████████████████▉ | 30301/57580 [00:41<00:37, 720.57it/s]
53%|██████████████████████████████████████████████████████████████████████▏ | 30374/57580 [00:41<00:37, 720.67it/s]
53%|██████████████████████████████████████████████████████████████████████▎ | 30447/57580 [00:41<00:37, 718.16it/s]
53%|██████████████████████████████████████████████████████████████████████▍ | 30519/57580 [00:41<00:38, 703.46it/s]
53%|██████████████████████████████████████████████████████████████████████▋ | 30590/57580 [00:42<00:39, 688.58it/s]
53%|██████████████████████████████████████████████████████████████████████▊ | 30660/57580 [00:42<00:39, 690.04it/s]
53%|██████████████████████████████████████████████████████████████████████▉ | 30731/57580 [00:42<00:38, 693.13it/s]
53%|███████████████████████████████████████████████████████████████████████▏ | 30801/57580 [00:42<00:38, 688.32it/s]
54%|███████████████████████████████████████████████████████████████████████▎ | 30872/57580 [00:42<00:38, 693.95it/s]
54%|███████████████████████████████████████████████████████████████████████▍ | 30945/57580 [00:42<00:37, 703.83it/s]
54%|███████████████████████████████████████████████████████████████████████▋ | 31016/57580 [00:42<00:37, 705.04it/s]
54%|███████████████████████████████████████████████████████████████████████▊ | 31105/57580 [00:42<00:34, 758.34it/s]
54%|████████████████████████████████████████████████████████████████████████ | 31190/57580 [00:42<00:33, 784.87it/s]
54%|████████████████████████████████████████████████████████████████████████▏ | 31279/57580 [00:43<00:32, 815.66it/s]
54%|████████████████████████████████████████████████████████████████████████▍ | 31368/57580 [00:43<00:31, 834.70it/s]
55%|████████████████████████████████████████████████████████████████████████▋ | 31452/57580 [00:43<00:32, 794.25it/s]
55%|████████████████████████████████████████████████████████████████████████▊ | 31532/57580 [00:43<00:34, 758.03it/s]
55%|█████████████████████████████████████████████████████████████████████████ | 31609/57580 [00:43<00:35, 733.61it/s]
55%|█████████████████████████████████████████████████████████████████████████▏ | 31683/57580 [00:43<00:35, 734.79it/s]
55%|█████████████████████████████████████████████████████████████████████████▎ | 31757/57580 [00:43<00:35, 723.05it/s]
55%|█████████████████████████████████████████████████████████████████████████▌ | 31832/57580 [00:43<00:35, 730.06it/s]
55%|█████████████████████████████████████████████████████████████████████████▋ | 31908/57580 [00:43<00:34, 735.74it/s]
56%|█████████████████████████████████████████████████████████████████████████▊ | 31982/57580 [00:43<00:35, 723.54it/s]
56%|██████████████████████████████████████████████████████████████████████████ | 32055/57580 [00:44<00:35, 722.31it/s]
56%|██████████████████████████████████████████████████████████████████████████▏ | 32132/57580 [00:44<00:34, 735.56it/s]
56%|██████████████████████████████████████████████████████████████████████████▍ | 32206/57580 [00:44<00:34, 725.08it/s]
56%|██████████████████████████████████████████████████████████████████████████▌ | 32279/57580 [00:44<00:35, 716.36it/s]
56%|██████████████████████████████████████████████████████████████████████████▋ | 32352/57580 [00:44<00:35, 717.64it/s]
56%|██████████████████████████████████████████████████████████████████████████▉ | 32424/57580 [00:44<00:35, 703.13it/s]
56%|███████████████████████████████████████████████████████████████████████████ | 32495/57580 [00:44<00:35, 702.31it/s]
57%|███████████████████████████████████████████████████████████████████████████▏ | 32566/57580 [00:44<00:35, 697.56it/s]
57%|███████████████████████████████████████████████████████████████████████████▍ | 32644/57580 [00:44<00:34, 718.88it/s]
57%|███████████████████████████████████████████████████████████████████████████▌ | 32716/57580 [00:45<00:34, 717.25it/s]
57%|███████████████████████████████████████████████████████████████████████████▋ | 32788/57580 [00:45<00:34, 708.90it/s]
57%|███████████████████████████████████████████████████████████████████████████▉ | 32859/57580 [00:45<00:35, 700.31it/s]
57%|████████████████████████████████████████████████████████████████████████████ | 32930/57580 [00:45<00:35, 690.40it/s]
57%|████████████████████████████████████████████████████████████████████████████▏ | 33000/57580 [00:45<00:35, 686.58it/s]
57%|████████████████████████████████████████████████████████████████████████████▍ | 33071/57580 [00:45<00:35, 692.55it/s]
58%|████████████████████████████████████████████████████████████████████████████▌ | 33141/57580 [00:45<00:35, 687.67it/s]
58%|████████████████████████████████████████████████████████████████████████████▋ | 33211/57580 [00:45<00:35, 688.35it/s]
58%|████████████████████████████████████████████████████████████████████████████▊ | 33280/57580 [00:45<00:35, 684.10it/s]
58%|█████████████████████████████████████████████████████████████████████████████ | 33357/57580 [00:45<00:34, 708.77it/s]
58%|█████████████████████████████████████████████████████████████████████████████▏ | 33436/57580 [00:46<00:32, 732.12it/s]
58%|█████████████████████████████████████████████████████████████████████████████▍ | 33513/57580 [00:46<00:32, 740.45it/s]
58%|█████████████████████████████████████████████████████████████████████████████▌ | 33588/57580 [00:46<00:33, 725.31it/s]
58%|█████████████████████████████████████████████████████████████████████████████▊ | 33661/57580 [00:46<00:35, 677.90it/s]
59%|█████████████████████████████████████████████████████████████████████████████▉ | 33730/57580 [00:46<00:36, 652.72it/s]
59%|██████████████████████████████████████████████████████████████████████████████ | 33796/57580 [00:46<00:36, 654.08it/s]
59%|██████████████████████████████████████████████████████████████████████████████▏ | 33864/57580 [00:46<00:35, 660.75it/s]
59%|██████████████████████████████████████████████████████████████████████████████▍ | 33932/57580 [00:46<00:35, 665.71it/s]
59%|██████████████████████████████████████████████████████████████████████████████▌ | 34001/57580 [00:46<00:35, 672.10it/s]
59%|██████████████████████████████████████████████████████████████████████████████▋ | 34072/57580 [00:46<00:34, 681.28it/s]
59%|██████████████████████████████████████████████████████████████████████████████▊ | 34141/57580 [00:47<00:35, 665.43it/s]
59%|███████████████████████████████████████████████████████████████████████████████ | 34208/57580 [00:47<00:36, 645.23it/s]
60%|███████████████████████████████████████████████████████████████████████████████▏ | 34278/57580 [00:47<00:35, 658.50it/s]
60%|███████████████████████████████████████████████████████████████████████████████▎ | 34352/57580 [00:47<00:34, 681.32it/s]
60%|███████████████████████████████████████████████████████████████████████████████▌ | 34426/57580 [00:47<00:33, 695.70it/s]
60%|███████████████████████████████████████████████████████████████████████████████▋ | 34500/57580 [00:47<00:32, 707.10it/s]
60%|███████████████████████████████████████████████████████████████████████████████▊ | 34574/57580 [00:47<00:32, 716.01it/s]
60%|████████████████████████████████████████████████████████████████████████████████ | 34650/57580 [00:47<00:31, 725.99it/s]
60%|████████████████████████████████████████████████████████████████████████████████▏ | 34724/57580 [00:47<00:31, 729.50it/s]
60%|████████████████████████████████████████████████████████████████████████████████▍ | 34801/57580 [00:48<00:30, 740.90it/s]
61%|████████████████████████████████████████████████████████████████████████████████▌ | 34877/57580 [00:48<00:30, 745.85it/s]
61%|████████████████████████████████████████████████████████████████████████████████▋ | 34952/57580 [00:48<00:30, 737.57it/s]
61%|████████████████████████████████████████████████████████████████████████████████▉ | 35028/57580 [00:48<00:30, 741.46it/s]
61%|█████████████████████████████████████████████████████████████████████████████████ | 35106/57580 [00:48<00:29, 751.71it/s]
61%|█████████████████████████████████████████████████████████████████████████████████▎ | 35188/57580 [00:48<00:29, 771.28it/s]
61%|█████████████████████████████████████████████████████████████████████████████████▍ | 35273/57580 [00:48<00:28, 794.04it/s]
61%|█████████████████████████████████████████████████████████████████████████████████▋ | 35353/57580 [00:48<00:28, 785.77it/s]
62%|█████████████████████████████████████████████████████████████████████████████████▊ | 35432/57580 [00:48<00:28, 763.99it/s]
62%|██████████████████████████████████████████████████████████████████████████████████ | 35509/57580 [00:48<00:29, 747.63it/s]
62%|██████████████████████████████████████████████████████████████████████████████████▏ | 35584/57580 [00:49<00:30, 730.40it/s]
62%|██████████████████████████████████████████████████████████████████████████████████▎ | 35658/57580 [00:49<00:30, 725.78it/s]
62%|██████████████████████████████████████████████████████████████████████████████████▌ | 35731/57580 [00:49<00:30, 717.93it/s]
62%|██████████████████████████████████████████████████████████████████████████████████▋ | 35803/57580 [00:49<00:31, 699.65it/s]
62%|██████████████████████████████████████████████████████████████████████████████████▊ | 35874/57580 [00:49<00:31, 699.20it/s]
62%|███████████████████████████████████████████████████████████████████████████████████ | 35945/57580 [00:49<00:30, 701.36it/s]
63%|███████████████████████████████████████████████████████████████████████████████████▏ | 36024/57580 [00:49<00:29, 723.12it/s]
63%|███████████████████████████████████████████████████████████████████████████████████▍ | 36102/57580 [00:49<00:29, 739.16it/s]
63%|███████████████████████████████████████████████████████████████████████████████████▌ | 36176/57580 [00:49<00:29, 734.45it/s]
63%|███████████████████████████████████████████████████████████████████████████████████▋ | 36250/57580 [00:49<00:29, 733.09it/s]
63%|███████████████████████████████████████████████████████████████████████████████████▉ | 36324/57580 [00:50<00:29, 721.54it/s]
63%|████████████████████████████████████████████████████████████████████████████████████ | 36397/57580 [00:50<00:29, 719.04it/s]
63%|████████████████████████████████████████████████████████████████████████████████████▏ | 36469/57580 [00:50<00:29, 708.07it/s]
63%|████████████████████████████████████████████████████████████████████████████████████▍ | 36540/57580 [00:50<00:30, 693.73it/s]
64%|████████████████████████████████████████████████████████████████████████████████████▌ | 36610/57580 [00:50<00:30, 684.96it/s]
64%|████████████████████████████████████████████████████████████████████████████████████▋ | 36683/57580 [00:50<00:29, 697.32it/s]
64%|████████████████████████████████████████████████████████████████████████████████████▉ | 36753/57580 [00:50<00:29, 695.19it/s]
64%|█████████████████████████████████████████████████████████████████████████████████████ | 36823/57580 [00:50<00:29, 696.02it/s]
64%|█████████████████████████████████████████████████████████████████████████████████████▏ | 36893/57580 [00:50<00:29, 694.45it/s]
64%|█████████████████████████████████████████████████████████████████████████████████████▍ | 36963/57580 [00:51<00:29, 695.46it/s]
64%|█████████████████████████████████████████████████████████████████████████████████████▌ | 37035/57580 [00:51<00:29, 702.15it/s]
64%|█████████████████████████████████████████████████████████████████████████████████████▋ | 37107/57580 [00:51<00:28, 706.75it/s]
65%|█████████████████████████████████████████████████████████████████████████████████████▊ | 37178/57580 [00:51<00:28, 706.54it/s]
65%|██████████████████████████████████████████████████████████████████████████████████████ | 37249/57580 [00:51<00:28, 702.44it/s]
65%|██████████████████████████████████████████████████████████████████████████████████████▏ | 37326/57580 [00:51<00:28, 721.76it/s]
65%|██████████████████████████████████████████████████████████████████████████████████████▍ | 37399/57580 [00:51<00:28, 719.14it/s]
65%|██████████████████████████████████████████████████████████████████████████████████████▌ | 37471/57580 [00:51<00:28, 712.28it/s]
65%|██████████████████████████████████████████████████████████████████████████████████████▋ | 37543/57580 [00:51<00:28, 709.42it/s]
65%|██████████████████████████████████████████████████████████████████████████████████████▉ | 37615/57580 [00:51<00:28, 711.86it/s]
65%|███████████████████████████████████████████████████████████████████████████████████████ | 37687/57580 [00:52<00:27, 713.33it/s]
66%|███████████████████████████████████████████████████████████████████████████████████████▏ | 37759/57580 [00:52<00:27, 713.30it/s]
66%|███████████████████████████████████████████████████████████████████████████████████████▍ | 37831/57580 [00:52<00:27, 710.39it/s]
66%|███████████████████████████████████████████████████████████████████████████████████████▌ | 37903/57580 [00:52<00:28, 699.82it/s]
66%|███████████████████████████████████████████████████████████████████████████████████████▋ | 37974/57580 [00:52<00:28, 697.85it/s]
66%|███████████████████████████████████████████████████████████████████████████████████████▉ | 38047/57580 [00:52<00:27, 706.63it/s]
66%|████████████████████████████████████████████████████████████████████████████████████████ | 38118/57580 [00:52<00:27, 704.80it/s]
66%|████████████████████████████████████████████████████████████████████████████████████████▏ | 38189/57580 [00:52<00:27, 706.09it/s]
66%|████████████████████████████████████████████████████████████████████████████████████████▍ | 38262/57580 [00:52<00:27, 710.31it/s]
67%|████████████████████████████████████████████████████████████████████████████████████████▌ | 38334/57580 [00:52<00:27, 712.71it/s]
67%|████████████████████████████████████████████████████████████████████████████████████████▋ | 38406/57580 [00:53<00:27, 692.27it/s]
67%|████████████████████████████████████████████████████████████████████████████████████████▉ | 38478/57580 [00:53<00:27, 699.35it/s]
67%|█████████████████████████████████████████████████████████████████████████████████████████ | 38549/57580 [00:53<00:27, 697.77it/s]
67%|█████████████████████████████████████████████████████████████████████████████████████████▏ | 38619/57580 [00:53<00:27, 683.61it/s]
67%|█████████████████████████████████████████████████████████████████████████████████████████▍ | 38698/57580 [00:53<00:26, 713.28it/s]
67%|█████████████████████████████████████████████████████████████████████████████████████████▌ | 38782/57580 [00:53<00:25, 749.80it/s]
67%|█████████████████████████████████████████████████████████████████████████████████████████▊ | 38858/57580 [00:53<00:25, 748.20it/s]
68%|█████████████████████████████████████████████████████████████████████████████████████████▉ | 38933/57580 [00:53<00:25, 741.30it/s]
68%|██████████████████████████████████████████████████████████████████████████████████████████ | 39008/57580 [00:53<00:26, 711.47it/s]
68%|██████████████████████████████████████████████████████████████████████████████████████████▎ | 39080/57580 [00:53<00:26, 705.19it/s]
68%|██████████████████████████████████████████████████████████████████████████████████████████▍ | 39163/57580 [00:54<00:24, 738.51it/s]
68%|██████████████████████████████████████████████████████████████████████████████████████████▋ | 39248/57580 [00:54<00:23, 770.34it/s]
68%|██████████████████████████████████████████████████████████████████████████████████████████▊ | 39326/57580 [00:54<00:23, 763.46it/s]
68%|███████████████████████████████████████████████████████████████████████████████████████████ | 39403/57580 [00:54<00:24, 730.46it/s]
69%|███████████████████████████████████████████████████████████████████████████████████████████▏ | 39477/57580 [00:54<00:25, 716.87it/s]
69%|███████████████████████████████████████████████████████████████████████████████████████████▎ | 39549/57580 [00:54<00:25, 706.95it/s]
69%|███████████████████████████████████████████████████████████████████████████████████████████▌ | 39620/57580 [00:54<00:26, 689.00it/s]
69%|███████████████████████████████████████████████████████████████████████████████████████████▋ | 39693/57580 [00:54<00:25, 698.88it/s]
69%|███████████████████████████████████████████████████████████████████████████████████████████▊ | 39771/57580 [00:54<00:24, 721.49it/s]
69%|████████████████████████████████████████████████████████████████████████████████████████████ | 39851/57580 [00:55<00:23, 743.60it/s]
69%|████████████████████████████████████████████████████████████████████████████████████████████▏ | 39932/57580 [00:55<00:23, 762.24it/s]
69%|████████████████████████████████████████████████████████████████████████████████████████████▍ | 40009/57580 [00:55<00:23, 747.95it/s]
70%|████████████████████████████████████████████████████████████████████████████████████████████▌ | 40084/57580 [00:55<00:24, 722.33it/s]
70%|████████████████████████████████████████████████████████████████████████████████████████████▊ | 40157/57580 [00:55<00:24, 703.63it/s]
70%|████████████████████████████████████████████████████████████████████████████████████████████▉ | 40228/57580 [00:55<00:24, 698.15it/s]
70%|█████████████████████████████████████████████████████████████████████████████████████████████ | 40298/57580 [00:55<00:25, 686.55it/s]
70%|█████████████████████████████████████████████████████████████████████████████████████████████▏ | 40369/57580 [00:55<00:24, 691.62it/s]
70%|█████████████████████████████████████████████████████████████████████████████████████████████▍ | 40439/57580 [00:55<00:24, 691.09it/s]
70%|█████████████████████████████████████████████████████████████████████████████████████████████▌ | 40509/57580 [00:55<00:24, 692.93it/s]
70%|█████████████████████████████████████████████████████████████████████████████████████████████▋ | 40580/57580 [00:56<00:24, 695.22it/s]
71%|█████████████████████████████████████████████████████████████████████████████████████████████▉ | 40658/57580 [00:56<00:23, 719.44it/s]
71%|██████████████████████████████████████████████████████████████████████████████████████████████ | 40732/57580 [00:56<00:23, 722.83it/s]
71%|██████████████████████████████████████████████████████████████████████████████████████████████▎ | 40805/57580 [00:56<00:23, 713.68it/s]
71%|██████████████████████████████████████████████████████████████████████████████████████████████▍ | 40877/57580 [00:56<00:23, 706.20it/s]
71%|██████████████████████████████████████████████████████████████████████████████████████████████▌ | 40948/57580 [00:56<00:23, 700.51it/s]
71%|██████████████████████████████████████████████████████████████████████████████████████████████▋ | 41019/57580 [00:56<00:23, 698.28it/s]
71%|██████████████████████████████████████████████████████████████████████████████████████████████▉ | 41090/57580 [00:56<00:23, 700.70it/s]
71%|███████████████████████████████████████████████████████████████████████████████████████████████ | 41164/57580 [00:56<00:23, 711.37it/s]
72%|███████████████████████████████████████████████████████████████████████████████████████████████▎ | 41244/57580 [00:56<00:22, 737.03it/s]
72%|███████████████████████████████████████████████████████████████████████████████████████████████▍ | 41325/57580 [00:57<00:21, 757.94it/s]
72%|███████████████████████████████████████████████████████████████████████████████████████████████▋ | 41401/57580 [00:57<00:21, 751.12it/s]
72%|███████████████████████████████████████████████████████████████████████████████████████████████▊ | 41477/57580 [00:57<00:21, 739.74it/s]
72%|███████████████████████████████████████████████████████████████████████████████████████████████▉ | 41552/57580 [00:57<00:21, 730.94it/s]
72%|████████████████████████████████████████████████████████████████████████████████████████████████▏ | 41626/57580 [00:57<00:22, 712.06it/s]
72%|████████████████████████████████████████████████████████████████████████████████████████████████▎ | 41698/57580 [00:57<00:22, 708.36it/s]
73%|████████████████████████████████████████████████████████████████████████████████████████████████▍ | 41771/57580 [00:57<00:22, 713.84it/s]
73%|████████████████████████████████████████████████████████████████████████████████████████████████▋ | 41845/57580 [00:57<00:21, 720.68it/s]
73%|████████████████████████████████████████████████████████████████████████████████████████████████▊ | 41918/57580 [00:57<00:21, 714.33it/s]
73%|████████████████████████████████████████████████████████████████████████████████████████████████▉ | 41990/57580 [00:58<00:21, 712.97it/s]
73%|█████████████████████████████████████████████████████████████████████████████████████████████████▏ | 42062/57580 [00:58<00:21, 710.04it/s]
73%|█████████████████████████████████████████████████████████████████████████████████████████████████▎ | 42135/57580 [00:58<00:21, 711.83it/s]
73%|█████████████████████████████████████████████████████████████████████████████████████████████████▍ | 42207/57580 [00:58<00:21, 703.16it/s]
73%|█████████████████████████████████████████████████████████████████████████████████████████████████▋ | 42278/57580 [00:58<00:21, 698.32it/s]
74%|█████████████████████████████████████████████████████████████████████████████████████████████████▊ | 42351/57580 [00:58<00:21, 706.90it/s]
74%|█████████████████████████████████████████████████████████████████████████████████████████████████▉ | 42426/57580 [00:58<00:21, 718.87it/s]
74%|██████████████████████████████████████████████████████████████████████████████████████████████████▏ | 42499/57580 [00:58<00:20, 719.22it/s]
74%|██████████████████████████████████████████████████████████████████████████████████████████████████▎ | 42571/57580 [00:58<00:21, 706.33it/s]
74%|██████████████████████████████████████████████████████████████████████████████████████████████████▍ | 42642/57580 [00:58<00:21, 702.00it/s]
74%|██████████████████████████████████████████████████████████████████████████████████████████████████▋ | 42713/57580 [00:59<00:21, 693.49it/s]
74%|██████████████████████████████████████████████████████████████████████████████████████████████████▊ | 42784/57580 [00:59<00:21, 697.44it/s]
74%|██████████████████████████████████████████████████████████████████████████████████████████████████▉ | 42855/57580 [00:59<00:21, 701.07it/s]
75%|███████████████████████████████████████████████████████████████████████████████████████████████████▏ | 42926/57580 [00:59<00:20, 698.88it/s]
75%|███████████████████████████████████████████████████████████████████████████████████████████████████▎ | 42996/57580 [00:59<00:21, 688.22it/s]
75%|███████████████████████████████████████████████████████████████████████████████████████████████████▍ | 43070/57580 [00:59<00:20, 702.80it/s]
75%|███████████████████████████████████████████████████████████████████████████████████████████████████▋ | 43146/57580 [00:59<00:20, 718.89it/s]
75%|███████████████████████████████████████████████████████████████████████████████████████████████████▊ | 43226/57580 [00:59<00:19, 742.05it/s]
75%|████████████████████████████████████████████████████████████████████████████████████████████████████ | 43306/57580 [00:59<00:18, 758.35it/s]
75%|████████████████████████████████████████████████████████████████████████████████████████████████████▏ | 43386/57580 [00:59<00:18, 769.94it/s]
75%|████████████████████████████████████████████████████████████████████████████████████████████████████▍ | 43465/57580 [01:00<00:18, 775.15it/s]
76%|████████████████████████████████████████████████████████████████████████████████████████████████████▌ | 43543/57580 [01:00<00:18, 753.34it/s]
76%|████████████████████████████████████████████████████████████████████████████████████████████████████▊ | 43619/57580 [01:00<00:18, 739.06it/s]
76%|████████████████████████████████████████████████████████████████████████████████████████████████████▉ | 43694/57580 [01:00<00:19, 722.32it/s]
76%|█████████████████████████████████████████████████████████████████████████████████████████████████████ | 43767/57580 [01:00<00:19, 716.41it/s]
76%|█████████████████████████████████████████████████████████████████████████████████████████████████████▎ | 43839/57580 [01:00<00:19, 716.53it/s]
76%|█████████████████████████████████████████████████████████████████████████████████████████████████████▍ | 43911/57580 [01:00<00:19, 710.17it/s]
76%|█████████████████████████████████████████████████████████████████████████████████████████████████████▌ | 43983/57580 [01:00<00:19, 708.07it/s]
77%|█████████████████████████████████████████████████████████████████████████████████████████████████████▊ | 44054/57580 [01:00<00:19, 703.91it/s]
77%|█████████████████████████████████████████████████████████████████████████████████████████████████████▉ | 44125/57580 [01:01<00:19, 702.83it/s]
77%|██████████████████████████████████████████████████████████████████████████████████████████████████████ | 44197/57580 [01:01<00:18, 707.28it/s]
77%|██████████████████████████████████████████████████████████████████████████████████████████████████████▎ | 44268/57580 [01:01<00:18, 705.18it/s]
77%|██████████████████████████████████████████████████████████████████████████████████████████████████████▍ | 44339/57580 [01:01<00:18, 703.61it/s]
77%|██████████████████████████████████████████████████████████████████████████████████████████████████████▌ | 44410/57580 [01:01<00:19, 690.23it/s]
77%|██████████████████████████████████████████████████████████████████████████████████████████████████████▋ | 44480/57580 [01:01<00:19, 684.25it/s]
77%|██████████████████████████████████████████████████████████████████████████████████████████████████████▉ | 44552/57580 [01:01<00:18, 693.89it/s]
78%|███████████████████████████████████████████████████████████████████████████████████████████████████████ | 44632/57580 [01:01<00:17, 724.48it/s]
78%|███████████████████████████████████████████████████████████████████████████████████████████████████████▎ | 44709/57580 [01:01<00:17, 736.07it/s]
78%|███████████████████████████████████████████████████████████████████████████████████████████████████████▍ | 44783/57580 [01:01<00:17, 730.03it/s]
78%|███████████████████████████████████████████████████████████████████████████████████████████████████████▌ | 44860/57580 [01:02<00:17, 741.05it/s]
78%|███████████████████████████████████████████████████████████████████████████████████████████████████████▊ | 44940/57580 [01:02<00:16, 757.90it/s]
78%|███████████████████████████████████████████████████████████████████████████████████████████████████████▉ | 45016/57580 [01:02<00:16, 757.89it/s]
78%|████████████████████████████████████████████████████████████████████████████████████████████████████████▏ | 45092/57580 [01:02<00:17, 724.90it/s]
78%|████████████████████████████████████████████████████████████████████████████████████████████████████████▎ | 45165/57580 [01:02<00:17, 710.17it/s]
79%|████████████████████████████████████████████████████████████████████████████████████████████████████████▍ | 45238/57580 [01:02<00:17, 715.20it/s]
79%|████████████████████████████████████████████████████████████████████████████████████████████████████████▋ | 45313/57580 [01:02<00:16, 724.49it/s]
79%|████████████████████████████████████████████████████████████████████████████████████████████████████████▊ | 45388/57580 [01:02<00:16, 731.26it/s]
79%|█████████████████████████████████████████████████████████████████████████████████████████████████████████ | 45463/57580 [01:02<00:16, 736.07it/s]
79%|█████████████████████████████████████████████████████████████████████████████████████████████████████████▏ | 45544/57580 [01:02<00:15, 757.33it/s]
79%|█████████████████████████████████████████████████████████████████████████████████████████████████████████▍ | 45622/57580 [01:03<00:15, 763.29it/s]
79%|█████████████████████████████████████████████████████████████████████████████████████████████████████████▌ | 45699/57580 [01:03<00:15, 760.07it/s]
79%|█████████████████████████████████████████████████████████████████████████████████████████████████████████▋ | 45776/57580 [01:03<00:15, 755.62it/s]
80%|█████████████████████████████████████████████████████████████████████████████████████████████████████████▉ | 45853/57580 [01:03<00:15, 759.26it/s]
80%|██████████████████████████████████████████████████████████████████████████████████████████████████████████ | 45933/57580 [01:03<00:15, 770.57it/s]
80%|██████████████████████████████████████████████████████████████████████████████████████████████████████████▎ | 46011/57580 [01:03<00:15, 770.39it/s]
80%|██████████████████████████████████████████████████████████████████████████████████████████████████████████▍ | 46092/57580 [01:03<00:14, 778.95it/s]
80%|██████████████████████████████████████████████████████████████████████████████████████████████████████████▋ | 46170/57580 [01:03<00:15, 749.45it/s]
80%|██████████████████████████████████████████████████████████████████████████████████████████████████████████▊ | 46246/57580 [01:03<00:15, 726.45it/s]
80%|██████████████████████████████████████████████████████████████████████████████████████████████████████████▉ | 46320/57580 [01:03<00:15, 729.55it/s]
81%|███████████████████████████████████████████████████████████████████████████████████████████████████████████▏ | 46394/57580 [01:04<00:15, 714.92it/s]
81%|███████████████████████████████████████████████████████████████████████████████████████████████████████████▎ | 46466/57580 [01:04<00:15, 711.86it/s]
81%|███████████████████████████████████████████████████████████████████████████████████████████████████████████▍ | 46538/57580 [01:04<00:15, 707.14it/s]
81%|███████████████████████████████████████████████████████████████████████████████████████████████████████████▋ | 46619/57580 [01:04<00:14, 734.25it/s]
81%|███████████████████████████████████████████████████████████████████████████████████████████████████████████▊ | 46697/57580 [01:04<00:14, 747.01it/s]
81%|████████████████████████████████████████████████████████████████████████████████████████████████████████████ | 46773/57580 [01:04<00:14, 747.84it/s]
81%|████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ | 46848/57580 [01:04<00:14, 732.59it/s]
81%|████████████████████████████████████████████████████████████████████████████████████████████████████████████▍ | 46922/57580 [01:04<00:14, 723.47it/s]
82%|████████████████████████████████████████████████████████████████████████████████████████████████████████████▌ | 46995/57580 [01:04<00:14, 712.00it/s]
82%|████████████████████████████████████████████████████████████████████████████████████████████████████████████▋ | 47067/57580 [01:05<00:14, 705.36it/s]
82%|████████████████████████████████████████████████████████████████████████████████████████████████████████████▉ | 47144/57580 [01:05<00:14, 723.49it/s]
82%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████ | 47228/57580 [01:05<00:13, 756.99it/s]
82%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████▎ | 47304/57580 [01:05<00:14, 733.23it/s]
82%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████▍ | 47378/57580 [01:05<00:14, 713.62it/s]
82%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████▌ | 47450/57580 [01:05<00:14, 710.79it/s]
83%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████▊ | 47522/57580 [01:05<00:14, 698.33it/s]
83%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████▉ | 47594/57580 [01:05<00:14, 703.88it/s]
83%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████ | 47667/57580 [01:05<00:13, 708.73it/s]
83%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████▎ | 47739/57580 [01:05<00:13, 709.29it/s]
83%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████▍ | 47812/57580 [01:06<00:13, 713.36it/s]
83%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████▋ | 47898/57580 [01:06<00:12, 756.07it/s]
83%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████▊ | 47977/57580 [01:06<00:12, 765.13it/s]
83%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████▉ | 48054/57580 [01:06<00:12, 765.45it/s]
84%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ | 48131/57580 [01:06<00:12, 754.92it/s]
84%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████▎ | 48207/57580 [01:06<00:12, 733.75it/s]
84%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████▌ | 48281/57580 [01:06<00:12, 722.20it/s]
84%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████▋ | 48354/57580 [01:06<00:12, 721.36it/s]
84%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████▉ | 48436/57580 [01:06<00:12, 749.58it/s]
84%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████ | 48521/57580 [01:06<00:11, 778.42it/s]
84%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎ | 48599/57580 [01:07<00:11, 778.15it/s]
85%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍ | 48677/57580 [01:07<00:11, 771.10it/s]
85%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌ | 48755/57580 [01:07<00:11, 749.53it/s]
85%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊ | 48831/57580 [01:07<00:11, 729.32it/s]
85%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████▉ | 48905/57580 [01:07<00:12, 719.22it/s]
85%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ | 48978/57580 [01:07<00:12, 715.99it/s]
85%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎ | 49057/57580 [01:07<00:11, 736.53it/s]
85%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍ | 49137/57580 [01:07<00:11, 754.25it/s]
85%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋ | 49217/57580 [01:07<00:10, 764.62it/s]
86%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████▉ | 49306/57580 [01:08<00:10, 800.63it/s]
86%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████ | 49396/57580 [01:08<00:09, 829.54it/s]
86%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎ | 49481/57580 [01:08<00:09, 834.79it/s]
86%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍ | 49565/57580 [01:08<00:09, 811.17it/s]
86%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋ | 49647/57580 [01:08<00:10, 776.51it/s]
86%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊ | 49726/57580 [01:08<00:10, 764.05it/s]
86%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████ | 49803/57580 [01:08<00:10, 763.89it/s]
87%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ | 49880/57580 [01:08<00:10, 751.83it/s]
87%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍ | 49957/57580 [01:08<00:10, 756.38it/s]
87%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌ | 50037/57580 [01:08<00:09, 768.49it/s]
87%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊ | 50114/57580 [01:09<00:09, 757.09it/s]
87%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████▉ | 50190/57580 [01:09<00:09, 748.41it/s]
87%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ | 50265/57580 [01:09<00:09, 741.65it/s]
87%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎ | 50340/57580 [01:09<00:09, 730.48it/s]
88%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍ | 50414/57580 [01:09<00:10, 705.76it/s]
88%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌ | 50485/57580 [01:09<00:10, 704.08it/s]
88%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊ | 50557/57580 [01:09<00:09, 707.91it/s]
88%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▉ | 50630/57580 [01:09<00:09, 713.42it/s]
88%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ | 50711/57580 [01:09<00:09, 741.53it/s]
88%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎ | 50791/57580 [01:10<00:08, 758.22it/s]
88%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌ | 50872/57580 [01:10<00:08, 772.96it/s]
88%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋ | 50950/57580 [01:10<00:08, 772.09it/s]
89%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊ | 51028/57580 [01:10<00:08, 748.82it/s]
89%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ | 51105/57580 [01:10<00:08, 752.23it/s]
89%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ | 51181/57580 [01:10<00:08, 742.81it/s]
89%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍ | 51259/57580 [01:10<00:08, 750.71it/s]
89%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌ | 51338/57580 [01:10<00:08, 761.73it/s]
89%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊ | 51419/57580 [01:10<00:07, 775.10it/s]
89%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▉ | 51499/57580 [01:10<00:07, 779.29it/s]
90%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ | 51580/57580 [01:11<00:07, 785.48it/s]
90%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎ | 51661/57580 [01:11<00:07, 792.22it/s]
90%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌ | 51741/57580 [01:11<00:07, 766.04it/s]
90%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋ | 51818/57580 [01:11<00:07, 738.44it/s]
90%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊ | 51893/57580 [01:11<00:07, 724.26it/s]
90%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ | 51966/57580 [01:11<00:07, 712.88it/s]
90%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ | 52047/57580 [01:11<00:07, 738.89it/s]
91%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍ | 52138/57580 [01:11<00:06, 787.88it/s]
91%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋ | 52227/57580 [01:11<00:06, 817.15it/s]
91%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊ | 52312/57580 [01:11<00:06, 826.04it/s]
91%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ | 52395/57580 [01:12<00:06, 793.44it/s]
91%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ | 52475/57580 [01:12<00:06, 767.80it/s]
91%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍ | 52553/57580 [01:12<00:06, 747.44it/s]
91%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌ | 52629/57580 [01:12<00:06, 722.44it/s]
92%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋ | 52704/57580 [01:12<00:06, 727.44it/s]
92%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▉ | 52777/57580 [01:12<00:06, 703.53it/s]
92%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ | 52848/57580 [01:12<00:06, 702.63it/s]
92%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ | 52923/57580 [01:12<00:06, 715.62it/s]
92%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍ | 52995/57580 [01:12<00:06, 700.48it/s]
92%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌ | 53066/57580 [01:13<00:06, 686.64it/s]
92%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋ | 53137/57580 [01:13<00:06, 692.72it/s]
92%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▉ | 53207/57580 [01:13<00:06, 692.12it/s]
93%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ | 53277/57580 [01:13<00:06, 677.67it/s]
93%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ | 53351/57580 [01:13<00:06, 695.03it/s]
93%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍ | 53424/57580 [01:13<00:05, 704.72it/s]
93%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌ | 53495/57580 [01:13<00:05, 705.53it/s]
93%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋ | 53566/57580 [01:13<00:05, 691.79it/s]
93%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▉ | 53636/57580 [01:13<00:05, 683.60it/s]
93%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ | 53705/57580 [01:13<00:05, 682.76it/s]
93%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ | 53774/57580 [01:14<00:05, 680.18it/s]
94%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍ | 53847/57580 [01:14<00:05, 694.11it/s]
94%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌ | 53917/57580 [01:14<00:05, 695.00it/s]
94%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋ | 53987/57580 [01:14<00:05, 693.22it/s]
94%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊ | 54057/57580 [01:14<00:05, 692.41it/s]
94%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ | 54127/57580 [01:14<00:04, 691.89it/s]
94%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ | 54199/57580 [01:14<00:04, 699.33it/s]
94%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎ | 54278/57580 [01:14<00:04, 725.88it/s]
94%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌ | 54358/57580 [01:14<00:04, 747.33it/s]
95%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋ | 54439/57580 [01:14<00:04, 763.18it/s]
95%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▉ | 54518/57580 [01:15<00:03, 768.13it/s]
95%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ | 54595/57580 [01:15<00:03, 753.35it/s]
95%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎ | 54671/57580 [01:15<00:03, 735.07it/s]
95%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍ | 54745/57580 [01:15<00:03, 723.19it/s]
95%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌ | 54818/57580 [01:15<00:03, 715.88it/s]
95%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊ | 54890/57580 [01:15<00:03, 708.04it/s]
95%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▉ | 54962/57580 [01:15<00:03, 710.54it/s]
96%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ | 55034/57580 [01:15<00:03, 712.50it/s]
96%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎ | 55107/57580 [01:15<00:03, 713.70it/s]
96%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍ | 55187/57580 [01:16<00:03, 738.63it/s]
96%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋ | 55267/57580 [01:16<00:03, 753.99it/s]
96%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊ | 55345/57580 [01:16<00:02, 758.69it/s]
96%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ | 55421/57580 [01:16<00:02, 740.47it/s]
96%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ | 55496/57580 [01:16<00:02, 723.15it/s]
97%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎ | 55569/57580 [01:16<00:02, 708.23it/s]
97%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌ | 55640/57580 [01:16<00:02, 690.10it/s]
97%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋ | 55710/57580 [01:16<00:02, 669.17it/s]
97%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊ | 55778/57580 [01:16<00:02, 661.99it/s]
97%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▉ | 55847/57580 [01:16<00:02, 669.56it/s]
97%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ | 55926/57580 [01:17<00:02, 703.04it/s]
97%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎ | 56008/57580 [01:17<00:02, 736.44it/s]
97%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌ | 56088/57580 [01:17<00:01, 754.45it/s]
98%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋ | 56164/57580 [01:17<00:01, 744.16it/s]
98%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▉ | 56239/57580 [01:17<00:01, 734.37it/s]
98%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ | 56313/57580 [01:17<00:01, 724.73it/s]
98%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎ | 56402/57580 [01:17<00:01, 772.29it/s]
98%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍ | 56493/57580 [01:17<00:01, 809.73it/s]
98%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋ | 56577/57580 [01:17<00:01, 818.07it/s]
98%|██████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊ | 56659/57580 [01:18<00:01, 808.27it/s]
99%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████ | 56740/57580 [01:18<00:01, 806.77it/s]
99%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏ | 56821/57580 [01:18<00:00, 795.30it/s]
99%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍ | 56901/57580 [01:18<00:00, 751.78it/s]
99%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▌ | 56977/57580 [01:18<00:00, 734.78it/s]
99%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊ | 57051/57580 [01:18<00:00, 717.00it/s]
99%|███████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▉ | 57127/57580 [01:18<00:00, 726.37it/s]
99%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▏| 57203/57580 [01:18<00:00, 735.36it/s]
99%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▎| 57277/57580 [01:18<00:00, 736.08it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▍| 57356/57580 [01:18<00:00, 751.20it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▋| 57432/57580 [01:19<00:00, 753.03it/s]
100%|████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████▊| 57508/57580 [01:19<00:00, 754.28it/s]
100%|█████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████████| 57580/57580 [01:19<00:00, 726.48it/s]
Let’s now visualize the data using matplotlib for a selected axial slice.
axial_slice = 9
fig2, ax = plt.subplots(2, 2, figsize=(6, 6),
subplot_kw={'xticks': [], 'yticks': []})
fig2.subplots_adjust(hspace=0.3, wspace=0.05)
im0 = ax.flat[0].imshow(MSD[:, :, axial_slice].T * 1000, cmap='gray',
vmin=0, vmax=2, origin='lower')
ax.flat[0].set_title('MSD (MSDKI)')
im1 = ax.flat[1].imshow(MSK[:, :, axial_slice].T, cmap='gray',
vmin=0, vmax=2, origin='lower')
ax.flat[1].set_title('MSK (MSDKI)')
im2 = ax.flat[2].imshow(MD[:, :, axial_slice].T * 1000, cmap='gray',
vmin=0, vmax=2, origin='lower')
ax.flat[2].set_title('MD (DKI)')
im3 = ax.flat[3].imshow(MK[:, :, axial_slice].T, cmap='gray',
vmin=0, vmax=2, origin='lower')
ax.flat[3].set_title('MK (DKI)')
fig2.colorbar(im0, ax=ax.flat[0])
fig2.colorbar(im1, ax=ax.flat[1])
fig2.colorbar(im2, ax=ax.flat[2])
fig2.colorbar(im3, ax=ax.flat[3])
plt.show()
fig2.savefig('MSDKI_invivo.png')
MSDKI measures (upper panels) and DKI standard measures (lower panels).
This figure shows that the contrast of in-vivo MSD and MSK maps (upper panels) are similar to the contrast of MD and MSK maps (lower panels); however, in the upper part we insure that direct contributions of fiber dispersion were removed. The upper panels also reveal that MSDKI measures are let sensitive to noise artefacts than standard DKI measures (as pointed by [NetoHe2018]), particularly one can observe that MSK maps always present positive values in brain white matter regions, while implausible negative kurtosis values are present in the MK maps in the same regions.
Relationship between MSDKI and SMT2#
As showed in [NetoHe2019], MSDKI captures the same information than the spherical mean technique (SMT) microstructural models [Kaden2016b]. In this way, the SMT model parameters can be directly computed from MSDKI. For instance, the axonal volume fraction (f), the intrisic diffusivity (di), and the microscopic anisotropy of the SMT 2-compartmental model [NetoHe2019] can be extracted using the following lines of code:
The SMT2 model parameters extracted from MSDKI are displayed below:
fig3, ax = plt.subplots(1, 3, figsize=(9, 2.5),
subplot_kw={'xticks': [], 'yticks': []})
fig3.subplots_adjust(hspace=0.4, wspace=0.1)
im0 = ax.flat[0].imshow(F[:, :, axial_slice].T,
cmap='gray', vmin=0, vmax=1, origin='lower')
ax.flat[0].set_title('SMT2 f (MSDKI)')
im1 = ax.flat[1].imshow(DI[:, :, axial_slice].T * 1000, cmap='gray',
vmin=0, vmax=2, origin='lower')
ax.flat[1].set_title('SMT2 di (MSDKI)')
im2 = ax.flat[2].imshow(uFA2[:, :, axial_slice].T, cmap='gray',
vmin=0, vmax=1, origin='lower')
ax.flat[2].set_title('SMT2 uFA (MSDKI)')
fig3.colorbar(im0, ax=ax.flat[0])
fig3.colorbar(im1, ax=ax.flat[1])
fig3.colorbar(im2, ax=ax.flat[2])
plt.show()
fig3.savefig('MSDKI_SMT2_invivo.png')
SMT2 model quantities extracted from MSDKI. From left to right, the figure shows the axonal volume fraction (f), the intrinsic diffusivity (di), and the microscopic anisotropy of the SMT 2-compartmental model [NetoHe2019].
The similar contrast of SMT2 f-parameter maps in comparison to MSK (first panel of Figure 3 vs second panel of Figure 2) confirms than MSK and F captures the same tissue information but on different scales (but rescaled to values between 0 and 1). It is important to note that SMT model parameters estimates should be used with care, because the SMT model was shown to be invalid NetoHe2019]_. For instance, although SMT2 parameter f and uFA may be a useful normalization of the degree of non-Gaussian diffusion (note than both metrics have a range between 0 and 1), these cannot be interpreted as a real biophysical estimates of axonal water fraction and tissue microscopic anisotropy.
References#
Jensen JH, Helpern JA, Ramani A, Lu H, Kaczynski K (2005). Diffusional Kurtosis Imaging: The Quantification of Non_Gaussian Water Diffusion by Means of Magnetic Resonance Imaging. Magnetic Resonance in Medicine 53: 1432-1440
Neto Henriques R, Correia MM, Nunes RG, Ferreira HA (2015). Exploring the 3D geometry of the diffusion kurtosis tensor - Impact on the development of robust tractography procedures and novel biomarkers, NeuroImage 111: 85-99
Henriques RN, 2018. Advanced Methods for Diffusion MRI Data Analysis and their Application to the Healthy Ageing Brain (Doctoral thesis). Downing College, University of Cambridge. https://doi.org/10.17863/CAM.29356
Neto Henriques R, Jespersen SN, Shemesh N (2019). Microscopic anisotropy misestimation in spherical‐mean single diffusion encoding MRI. Magnetic Resonance in Medicine (In press). doi: 10.1002/mrm.27606
Kaden E, Kelm ND, Carson RP, Does MD, Alexander DC (2016) Multi-compartment microscopic diffusion imaging. NeuroImage 139: 346-359.
Hansen, B, Jespersen, SN (2016). Data for evaluation of fast kurtosis strategies, b-value optimization and exploration of diffusion MRI contrast. Scientific Data 3: 160072 doi:10.1038/sdata.2016.72
Total running time of the script: (4 minutes 42.133 seconds)