diff --git a/benchmarks/Visualization.ipynb b/benchmarks/Visualization.ipynb new file mode 100644 index 0000000..95d6059 --- /dev/null +++ b/benchmarks/Visualization.ipynb @@ -0,0 +1,286 @@ +{ + "cells": [ + { + "cell_type": "code", + "execution_count": 1, + "id": "f7a8ba59-fd57-46b6-bca7-870a6f014290", + "metadata": {}, + "outputs": [], + "source": [ + "import pandas as pd\n", + "import numpy as np\n", + "import matplotlib.pyplot as plt\n", + "import seaborn as sns\n", + "\n", + "# Load the data\n", + "df = pd.read_csv('trajectory_results.csv')" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "b09fd4cc", + "metadata": {}, + "outputs": [ + { + "data": { + "text/html": [ + "
\n", + "\n", + "\n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + " \n", + "
DatasetFormatTrajectoryLoadingTime(s)FileSize(MB)Throughput(traj/s)
0berkeley_autolab_ur5RLDS00.045454237.46154922.000367
1berkeley_autolab_ur5RLDS10.016615126.82606660.187754
2berkeley_autolab_ur5RLDS20.017593157.58214556.839549
3berkeley_autolab_ur5RLDS30.017673157.04762156.583439
4berkeley_autolab_ur5RLDS40.026880187.19503637.203005
.....................
1275nyu_door_opening_surprising_effectivenessHDF5590.01951475.30505451.246292
1276nyu_door_opening_surprising_effectivenessHDF5600.01618361.43493761.792713
1277nyu_door_opening_surprising_effectivenessHDF5610.028054108.99004435.645542
1278nyu_door_opening_surprising_effectivenessHDF5620.01944375.30505451.432299
1279nyu_door_opening_surprising_effectivenessHDF5630.026315103.04568538.001178
\n", + "

1280 rows × 6 columns

\n", + "
" + ], + "text/plain": [ + " Dataset Format Trajectory \\\n", + "0 berkeley_autolab_ur5 RLDS 0 \n", + "1 berkeley_autolab_ur5 RLDS 1 \n", + "2 berkeley_autolab_ur5 RLDS 2 \n", + "3 berkeley_autolab_ur5 RLDS 3 \n", + "4 berkeley_autolab_ur5 RLDS 4 \n", + "... ... ... ... \n", + "1275 nyu_door_opening_surprising_effectiveness HDF5 59 \n", + "1276 nyu_door_opening_surprising_effectiveness HDF5 60 \n", + "1277 nyu_door_opening_surprising_effectiveness HDF5 61 \n", + "1278 nyu_door_opening_surprising_effectiveness HDF5 62 \n", + "1279 nyu_door_opening_surprising_effectiveness HDF5 63 \n", + "\n", + " LoadingTime(s) FileSize(MB) Throughput(traj/s) \n", + "0 0.045454 237.461549 22.000367 \n", + "1 0.016615 126.826066 60.187754 \n", + "2 0.017593 157.582145 56.839549 \n", + "3 0.017673 157.047621 56.583439 \n", + "4 0.026880 187.195036 37.203005 \n", + "... ... ... ... \n", + "1275 0.019514 75.305054 51.246292 \n", + "1276 0.016183 61.434937 61.792713 \n", + "1277 0.028054 108.990044 35.645542 \n", + "1278 0.019443 75.305054 51.432299 \n", + "1279 0.026315 103.045685 38.001178 \n", + "\n", + "[1280 rows x 6 columns]" + ] + }, + "execution_count": 2, + "metadata": {}, + "output_type": "execute_result" + } + ], + "source": [ + "df" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "7cb9a3c1", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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6lS1bNlStWvXVrt27TRv3rxsowaudJ5Zz0T+9NNPmjx5spo1a6ZGjRppwoQJSktLU0JCgp5++mk1btzYPjLg8r7nzZunPn36qGnTpgoJCVGPHj20YcOGbMdPSkrS559/bj//rOvm/PnzevXVV9W6dWvVrl1boaGhevjhh7V3794rnvf48ePVv39/SdLo0aMVHBysAQMG2Pfv3LlTDz74oOrVq6dGjRrp0Ucf1cGDBx36yLrO/v77bz355JNq3LixHnzwwbz/ECTdeeedeu6555SQkKClS5fayy9/5jQ4OFirVq1SUlKS/XXIqpPTNS5d/CJh4cKF9p9bWFiYJkyYoPj4eIcYWrdurYiICG3bts3+O7x8+XJJUkJCgl599VX7ddK2bVt98MEHstls9va5fY8cP368/RyzYr38GfHccnNz0wsvvKBq1app6dKlSkxMtO/77LPPNHDgQIWGhqp27drq2LGjPv7442zn/Ndff+mHH36wx5F1HeTl78qSJUvUqVMn1a1bV40bN1aPHj20Zs0ahzrXej+Ijo5Wz549JUnPPvusw89Xkg4fPqxRo0YpPDxcderUUYsWLTRmzBiHcwZQMHHnFLhF/PXXX+rXr5+8vb01dOhQubu7a8WKFRowYIA++ugj1a1bV5J09OhR/d///Z/at2+vChUq6L///tOKFSvUv39/rVu3TgEBAZKklJQUDRo0SP/++68GDBig0qVLa/Xq1fr+++9zHdPatWt14cIF9e7dWxaLRXPnztWoUaP0f//3f/a7rd9++63GjBmjoKAgPfnkk4qPj9fzzz9vj+N6GzNmjKpWraonn3xSW7Zs0fvvvy8/Pz8tX75czZo107hx47RmzRq9/vrrqlOnjho3bizp4ofYRx99VD///LN69eqlqlWr6sCBA1q0aJEOHz6s995776rHzXo+tE6dOho7dqxOnz6txYsXa9euXYqKipKPj4+GDx+uwMBArVixwj5Ut1KlSk6fa9euXfXWW2/pu+++cxj6nMXf31/Tpk3T7NmzlZSUZB8WWLVqVU2bNk1TpkxRmTJl7ENf/f398/w6fP/991q/fr369eun4sWLq3z58vrvv//Uq1cvWSwW9evXT/7+/tq6dauef/55nT9/PtvQ3A8//FAWi0WDBw/W+fPnNXfuXI0bN06ffPKJJGn48OFKTEzUyZMn7c/gZg3vvpqMjAz7HcIsnp6e8vT0lGEYevTRR+0fimvUqKFt27Zp2rRpio2NzXEI9OXnmTWR1eTJk1WyZEmNGjVKv/76q1asWKFixYpp9+7dKlu2rMaMGaOtW7dq3rx5CgoKUrdu3ez9Ll68WK1bt1aXLl2Unp6udevWafTo0ZozZ45atWolSZo2bVq2Ie5Z181LL72kjRs3qn///qpatarOnTunn3/+WQcPHlStWrVyfF169+6tgIAAzZ492z7MtmTJkpKkHTt26JFHHlGFChX02GOPKSUlRR999JH69u2rVatWqUKFCg59jR49WnfccYfGjBmTr0cB2rVrp+eff17fffedxowZk2OdadOmaeXKldqzZ48mT54sSapZs+YVr3FJmjBhgj7//HP16NFDAwYM0LFjx7R06VL98ccfWrZsmcMokUOHDunJJ59U79691atXLwUGBio5OVn9+/dXbGys+vTpo7Jly2r37t166623dOrUKT3//PMOMV7rPbJ3796Ki4vT9u3bsz3G4Aw3Nzd16tRJ7777rn7++Wf7NbNs2TJVr15drVu3lru7u7755htNnDhRhmGoX79+kqTnnntOr7zyiry8vDR8+HBJsl8Huf27snLlSk2ePFnt2rXTwIEDlZqaqj///FO//vqrunTpIkm5ej+oWrWqHn/8cc2YMUO9e/dWw4YNJUkNGjRQWlqahgwZorS0NPXv318lS5ZUbGysvv32WyUkJLj07j+A68AAUOB99tlnRlBQkLFnz54r1hkxYoRRq1Yt459//rGXxcbGGvXr1zf69etnL0tNTTUyMzMd2h49etSoXbu2MWvWLHvZwoULjaCgIOPLL7+0lyUlJRlt27Y1goKCjO+//95e/swzzxh33323Q39BQUFGkyZNjHPnztnL/+///s8ICgoyvv76a3tZ586djRYtWhjnz5+3l0VHRxtBQUEOfeZGvXr1jGeeeSbHfUFBQcaMGTPs2zNmzDCCgoKMF1980V6WkZFhtGjRwggODjbmzJljL4+PjzdCQkIc+o6KijLuvPNO48cff3Q4zrJly4ygoCDj559/vmKcaWlpRmhoqNG5c2cjJSXFXv7NN98YQUFBxrvvvmsvy83PPi91GzZsaHTr1s2+nfU6XKp///5Gp06dsrW9++67jWHDhjmU5eV1CAoKMu68807jr7/+cqj73HPPGeHh4caZ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q1atWvryyy81ZcoU1alTR15eXvla67R169Zq2rSp3n77bfv6qdu3b9dXX32lQYMGuXSo9JW0bNlSCxYs0NChQ9W5c2edPn1aH3/8sSpVqqQ///zToW6tWrW0c+dOLViwQKVLl1aFChUUGBioli1bql27drrzzjvl5eWlHTt26LfffnN6/dynn35ajzzyiHr37q2ePXval5IpVqyYHnvssXyf808//aTU1FTZbDadO3dOu3bt0tdff62iRYtq1qxZKlWqVL6PkaVJkybq3bu35syZo3379ik8PFweHh46fPiwNmzYoOeff95hgricDBkyRF9//bWGDx+u7t27q1atWkpOTtaBAwe0ceNGffXVV9mGB19L1hI/kydPVvPmze3LwVxNYmKifaRESkqKjhw5os2bN+uff/5Rp06dNHr0aHvdrPMcPny4+vTpowsXLuiTTz5RiRIldOrUqWyxLFu2TO+9957uuOMO+fv7KzQ0NNd/V4YMGaKSJUuqQYMGKlGihGJiYvTRRx+pZcuW9mQ5t+8HlSpVko+Pj5YvXy5vb295eXkpJCREf/75pyZNmqT27durcuXKyszM1OrVq+2JL4CCjeQUuIksW7Ysx/IePXqoevXqWrp0qaZPn645c+bIMAyFhITojTfesK9xKl1cAzI5OVlr1qzRl19+qZo1a2rOnDmaPn26Q5+enp5auHChXnnlFX300UcqUqSIunTpohYtWlzxeSpntG7dWm+99ZZmzpyp6dOnq3LlypoyZYqioqL0119/uew4rma1WhUZGamFCxdq9erV2rx5szw9PVWhQgUNGDDgmhNH9ejRQ0WKFNGHH36oN998U15eXrrnnnv01FNP2Sf4cdaMGTMkXUyC/fz8FBQUpOeee049evTINqFPfuX3dZAurpX4ySefKDIyUps3b9ayZcvk5+enatWqady4cU7F9eCDD2rfvn1atWqVFi5cqPLly+crObVarXr//fc1Y8YMffnll1q1apXKly+vp59+WoMHD3a637wIDQ3Vq6++qg8//FCvvfaaKlSooHHjxun48ePZktPx48drwoQJeuedd5SSkqLu3btr0qRJ6tu3r7Zv365NmzbJMAxVqlRJL730kh588EGnYgoLC9PcuXM1Y8YMzZgxQ+7u7mrcuLGeeuoppyZZutySJUskXbyWixUrpqpVq2rUqFHq1atXnpO83Jg0aZJq166t5cuX6+2335abm5vKly+v++67Tw0aNLhme09PTy1ZskRz5szRhg0bFBUVpaJFi6py5coaNWqUUxPy3HvvvRowYIDWrVunL774QoZhXDM5PXnypJ5++mlJF++ily5dWvXq1dPLL7+s8PBwh7pVqlTRjBkz9M477+j1119XyZIl1bdvX/n7+2dbv3fkyJE6ceKE5s6dqwsXLqhJkyYKDQ3N9d+V3r17a82aNVqwYIGSkpJUpkwZDRgwQCNGjLDXye37gYeHh6ZOnaq33npLL7/8sjIyMjRlyhQ1btxYzZs31zfffKPY2Fh5enoqODhYH374oerVq5fn1x/AjWUxCtIMEgDwP127dpW/v78WLFhgdigAAAC4AXjmFICp0tPTsz0fFB0drf3796tJkyYmRQUAAIAbjWG9AEwVGxurhx9+WPfdd59Kly6tmJgYLV++XKVKlVKfPn3MDg8AAAA3CMkpAFP5+vqqVq1a+uSTT3TmzBl5eXmpZcuWGjduXLYlCAAAAHDr4plTAAAAAIDpeOYUAAAAAGA6klMAAAAAgOl45jSfdu/eLcMw5OHhYXYoAAAAAEyUnp4ui8Wi+vXrmx3KTYnkNJ8MwxCP7QIAAAAgL8gfktN8yrpjWqdOHZMjAQAAAGCm3377zewQbmo8cwoAAAAAMB3JKQAAAADAdCSnAAAAAADTkZwCAAAAAExHcgoAAAAAMB2z9QIAAKBAMAxDmZmZysjIMDsUIBsPDw+5ubmZHcYtjeQUAAAApjIMQ+fOndOpU6eUmZlpdjjAFfn5+alMmTKyWCxmh3JLIjkFAACAqU6ePKlz587Jx8dHPj4+cnd358M/ChTDMJSUlKS4uDhJUtmyZU2O6NZEcgoAAADTZGZmKj4+XqVKlVLJkiXNDge4Ik9PT0lSXFycSpcuzRDf64AJkQAAAGCa9PR0GYYhb29vs0MBrsnLy0vSxesWrkdyCgAAANMxjBc3A67T64vkFAAAAABgOpJTAAAAAIDpSE4BAACAG2TVqlUKDg7O8d+bb75pdnh5smvXLs2cOVMJCQlmh4JbBLP1AgAAADfY448/rgoVKjiUBQUFmRSNc3bv3q1Zs2ape/fu8vHxMTsc3AJITgEAAIAbrEWLFqpTp45L+0xKSrLPJgvcjBjWCwAAABQgO3fu1IMPPqh69eqpUaNGevTRR3Xw4EGHOjNnzlRwcLD+/vtvPfnkk2rcuLEefPBBSVLr1q0VERGh6Oho9ejRQyEhIerSpYuio6MlSZs2bVKXLl1Up04d9ejRQ3/88YdD3/v379f48ePVpk0b1alTR+Hh4Xr22Wd19uxZh+NPmzZNktSmTRv70ORjx45dz5cGtzjunAIAAAA32Pnz53XmzBmHMn9/f+3YsUOPPPKIKlSooMcee0wpKSn66KOP1LdvX61atSrbUODRo0frjjvu0JgxY2QYhr38yJEjevLJJ9WnTx/dd999mj9/voYPH66JEyfq7bffVt++fSVJH3zwgZ544glt2LBBVuvF+1Y7duzQ0aNH1aNHD5UqVUp//fWXVq5cqb///lsrV66UxWJR27ZtdfjwYa1du1bPPvusihcvbj8HwFkkpwAAAMAN9tBDD2Ur+/PPPzVt2jT5+vpqxYoV8vPzkyTdc8896t69u2bOnKnXX3/doc2dd96p6dOnZ+vr0KFDWr58uerXry9JqlatmoYMGaIXX3xR69evV7ly5SRJvr6+mjBhgn788Uc1bdpUkvTggw9q8ODBDv3Vq1dPY8eO1c8//6xGjRrpzjvvVM2aNbV27Vrdc8892ZJmwBkkp7ipRUZGKioqSt26ddPIkSPNDgcAACBXJkyYoMDAQIeyuLg47du3T0OHDrUnptLFBDQsLExbtmzJ1k+fPn1y7L9atWr2xFSS6tatK0lq1qyZPTG9tPzo0aP25LRIkSL2/ampqbpw4YK93t69e9WoUaO8nCqQaySnuGmlpKQoKipKNptNUVFRGjJkiMObKQAAQEEVEhKSbUKkX375RZKyJa2SVLVqVX333XfZJj260h3LsmXLOmwXK1ZMklSmTBmH8qJFi0qSw3Iw586d06xZs/Tll1/q9OnTDvUTExOvdlpAvpCc4qaVkZEhm80mSbLZbMrIyDA5IgAAgBurcOHCOZa7ubnlqfzS51WfeOIJ7d69W0OGDFGNGjXk5eUlm82moUOHOtQDXI3kFAAAACgAsobbHjp0KNu+mJgYFS9e/LovFRMfH6+dO3dq1KhReuyxx+zlhw8fzlbXYrFc11hw+2EpGQAAAKAAKF26tGrUqKGoqCiHYbYHDhzQ9u3b1bJly+sew5XurC5atChbmaenpySG+sJ1uHMKAAAAFBBPP/20HnnkEfXu3Vs9e/a0LyVTrFgxhzuZ10vRokXVuHFjzZ07V+np6QoICND27dtzXL+0Vq1akqS3335bHTt2lIeHh+6+++7rfncXty7unAIAAAAFRFhYmObOnSs/Pz/NmDFD8+fPV926dbVs2TJVrFjxhsQwffp0NW/eXB9//LHeeustubu768MPP8xWLyQkRKNHj9b+/fv17LPPauzYsdnWbgXywmIUsKeaDx48qMmTJ2v37t3y9vZW165d9cQTT6hQoUJXbBMXF6eFCxdq+/bt+ueff1SsWDE1btxYY8eOVfny5e31oqOjNXDgwGztO3bsqLffftupeH/77TdJyjbbGq6/8+fPq2vXrvbt1atX22ecAwAAN4eUlBQdOnRIgYGBzLqPAu9a1yu5Qf4UqGG98fHxGjRokCpXrqyZM2cqNjZWU6dOVUpKiiZMmHDFdnv37tXmzZt1//33q27dujp79qzef/99PfDAA1q7dq38/f0d6k+ZMkVVqlSxbxcvXvy6nRMAAAAA4NoKVHK6fPlyXbhwQbNmzbIvPJyZmamJEycqIiJCAQEBObZr2LCh1q9fL3f3/386DRo0UKtWrRQVFaXBgwc71K9evTrfZgAAAABAAVKgnjndunWrQkND7YmpJHXo0EE2m03bt2+/YjsfHx+HxFS6uMCwv7+/4uLirle4AAAAAAAXKVDJaUxMjMNwW+li4lmqVCnFxMTkqa9Dhw7p9OnTqlq1arZ9w4YNU40aNdSiRQu9/vrrSklJyVfcAAAAAID8KVDDehMSEuTj45Ot3NfXV/Hx8bnuxzAMTZ48WaVLl1anTp3s5cWKFdPQoUPVuHFjFS5cWN9//73mz5+vmJgYzZkzx+m4DcNQUlKS0+3hnMtf86SkJFmtBer7FgAAcA2pqamy2WzKzMxUZmam2eEAV5WZmSmbzabk5GTZbLZs+w3DkMViMSGyW0OBSk5dZebMmfr+++81d+5ch3WWatasqZo1a9q3Q0NDVbp0aU2aNEl79uxRSEiIU8dLT0/Xvn378h038iY5Odlh+8CBA/bFoAEAwM3D3d1dqampZocBXFNqaqoyMjKuOqrzaquM4OoKVHLq4+OjxMTEbOXx8fHy9fXNVR8rV65UZGSkXn31VYWGhl6zfocOHTRp0iT9/vvvTienHh4eqlatmlNt4bzz5887bAcFBbGUDAAAN5nU1FSdOHFChQsXZikZ3BTc3d1VqVIlFS5cONu+v//+24SIbh0FKjmtUqVKtm8hEhMTderUqWzPouZk8+bNevnll/X444+rZ8+e1yvMbCwWi8MdWtwYlw+l8PLy4ucAAMBNxmq1ymq1ys3NTW5ubmaHA1yVm5ubrFarPD09c/wyhSG9+VOgHtBr0aKFduzYoYSEBHvZhg0bZLVaFR4eftW20dHRGjt2rB544AGNHDky18dct26dJBbKBQAAAAAzFag7p3369NGSJUs0cuRIRUREKDY2VtOmTVOfPn0c1jgdNGiQTpw4oc2bN0uSDh48qJEjR6py5crq2rWrfvnlF3tdf39/VapUSZI0btw43XHHHapZs6Z9QqSFCxfqnnvuITk1mc1mM20yIzOPDQAAAOCiApWc+vr6atGiRXrllVc0cuRIeXt7q2fPnhozZoxDvawZ3bL8+uuvSkxMVGJiovr27etQt3v37po6daokqXr16lqzZo3mz5+v9PR0lS9fXsOHD9ewYcOu/8nhqqxWq+ZsWawT8bG5bpORmu6wPWX9DLkX9sjTccv5Biii5cA8tQEAAADgegUqOZWkqlWrauHChVets2TJEoftHj16qEePHtfsOyIiQhEREfkJD9fRifhYHTl9LNf1bWmO080fPXNC1kI8qwIAAMwzc+ZMzZo1y77t5+enKlWqaPjw4WrZsqW9vHXr1mrVqpUmTJiQYz+rVq3Ss88+a9/28vJSQECA6tevr759+2abyDMjI0PLli3TJ598oqNHj8rd3V1ly5ZVo0aNNH78eGaQxU2hwCWnAAAAQBabzZDVeuMnmcnPcYsUKaJFixZJkuLi4jR79mwNHz5cS5cuVYMGDfLU19y5c1WsWDElJyfr0KFD+uyzz9SrVy+NHTvWYfTf5MmTtWrVKg0bNkwNGjRQcnKy9u3bpy+++EIpKSkkp7gpkJwCAACgwLJaLYpctl3H4+Jv2DHLl/bVyL5Xn4zzaqxWq+rVq2ffrlu3rlq2bKmoqKg8J6e1atWSv7+/JCk0NFR9+vTRM888o7feeksNGjRQo0aNlJycrE8//VTDhw/XY489Zm/bpk0bPfbYYzIMw+lzAW4kklMAAAAUaMfj4nX4+Fmzw3BaQECA/P39deLEiXz3ZbVa9fzzz2vjxo1atmyZPTlNT09X6dKlc2zD8ia4WZCcAgAAANfRhQsXFB8frwoVKrikPz8/P9WqVUu7d++WdHF1inLlyun999+Xt7e3mjdvLl9fX5ccC7iRWD8DAAAAcLGMjAxlZGToxIkTeuGFF+Tt7a2BA123QkDZsmX133//2benTp2qtLQ0jR07Vk2bNlXHjh01ffp0nTlzxmXHBK437pwCAAAALpSUlKRatWrZt93c3PTee++pSpUqLjuGYRgOw3WbNm2qzZs3a+vWrdq5c6e+//57ffDBB1q1apVWrVqlgIAAlx0buF64cwoAAAC4UJEiRfTpp5/qk08+0RtvvKFSpUrpmWeeUVxcnMuOcfLkSZUsWdKhzMvLS+3bt9fEiRO1ceNGTZ48Wf/995/mz5/vsuMC1xPJKQAAAOBCVqtVderUUUhIiO677z7NmjVLCQkJioyMdEn/Z8+e1e+//6769etftd4DDzwgPz8/HTx40CXHBa43klMAAADgOqpTp446deqkVatW6dSpU/nqy2az6bXXXlN6err69esnSUpPT1d8fPaldk6fPq3ExESVKlUqX8cEbhSeOQUAAECBVr70jZ159nocb8SIEfryyy+1aNEijRs3TpL0zz//aMOGDQ71rFar7r33Xvv23r17VaxYMaWkpOjQoUP67LPPtHfvXj311FP2O6eJiYlq166dunbtqmbNmsnX11fHjh3T/PnzZbVa1bdvX5efD3A9kJwCAACgwLLZDI3sG27Kca1W160PWqVKFXXs2FHLli1TRESEJGnbtm3atm2bQz03Nzf98ccf9u2hQ4dKuvg8aenSpdWgQQNNmDBBISEh9jpFixbVI488om3btmnDhg2Kj49XyZIlVadOHU2dOtVhciagILMYhmGYHcTN7LfffpN0cbgG8uelL97QkdPHcl3flpap4yv32bfL96ohayG3PB3zjhIVNPG+p/LUBgAAuE7WHcHAwEAVKVLE7HCAq7rW9UpukD88c4qbl9UiZX2hafnfNgAAAICbEskpblpWd6uKBpeQLFLR4BKyunM5AwAAADcrnjnFTa14o7Iq3qis2WEAAAAAyCduNQEAAAAATEdyCgAAAAAwHckpAAAAAMB0JKcAAAAAANORnAIAAAAATEdyCgAAAAAwHckpAAAA4ALDhw/Xvffee8X9S5YsUXBwsP755x8FBwdrw4YNuep38uTJCg4OVmRkZK5jGTBggIKDg/Xuu+9m29e1a1eNHz8+131d6syZM5o6daratWunOnXqqEGDBurfv78++eQTZWZmOtXnlYwfP16dO3d2aZ8o2EhOAQAAUGAZNttNc9zOnTvryJEj2rNnT477161bp3r16slqzf1H8MzMTK1fv16StHbt2jzHtGTJEiUmJua5XU6OHDmi7t27a+3aterVq5c+/PBDvfPOOwoJCdGUKVP0zTffuOQ4uH25mx0AAAAAcCUWq1WH1n6o5NP/3rBjepYoq8DOj+S5XZs2beTl5aW1a9cqJCTEYd+xY8e0e/duvfDCC3nqc+fOnfrvv/8UFhamHTt2aO/evapVq1au2oaEhOjvv//W4sWLNXLkyDwdNyfjxo1TZmamPvvsMwUEBNjLW7Roof79+7ssCcbti+QUAAAABVry6X+VHPuP2WFck6enp9q0aaP169dr/PjxDndI161bJzc3N3Xs2FHJycm57nPt2rXy9vbW1KlT1aZNG61ZsybXyam/v7/69OmjxYsXa9CgQSpatOgV6/7444+aPn26/vjjD3l6eqp169Z65pln5OfnJ0n66aeftGfPHr3wwgsOiWmWcuXK2f9/8OBBzZo1S7t27dK5c+dUvnx59ezZUw899JDDa5KWlqbIyEitXbtWsbGx8vf3V1hYmKZOnerQd3R0tKZMmaLDhw+rWrVqevnll1W7dm37fsMwNH/+fK1cuVLHjx9XQECABgwYoIceeihXrxMKDob1AgAAAC7SpUsXxcXFKTo62qF87dq1CgsLU4kSJXLdV2pqqjZt2qS2bdsqICBAzZs317p162TLw5DjwYMHKzk5WUuXLr1ind9//10PP/ywvL299e6772rcuHH65ptv9Mgjj9ifI/3hhx8kSXfdddc1jxkXF6fAwEC99NJL+uCDD9SrVy9FRkbqvffec6g3atQoLVy4UPfff78++OADPf3000pKSnKoc+rUKU2ePFlDhgzRO++8o9TUVD322GNKT0+313n11Vc1Y8YMdevWTR988IG6d++uN998U8uWLcv164SCgTunAAAAgIuEh4fL399f69atU2hoqCTpwIEDOnDggIYMGZKnvr7++mtduHDBPilQly5d9M033yg6Otre97WUKlVKvXr10oIFCzRgwAB5eXllqzN79myVKlVKs2fPloeHhySpbNmyGjJkiLZs2aLWrVsrNjZWkuMd0isJDQ21x2cYhho2bKiUlBR99NFHeuyxxyRJ27dv17fffqvp06c7THp0+QRI8fHx+uijj1S9enVJF+9ODxw4UL/++qsaNWqkf/75Rx999JEmTpyo3r17S5LCwsKUkpKiyMhI9e7dO0/P+MJc/KQAAAAAF3F3d1f79u21adMmpaWlSbo4pNfT01Nt27bNU19r165ViRIlFBYWJklq3bq1vLy8tGbNGnudjIwMh385GTp0qM6fP3/FO4k//fST2rRpY09MJal58+by8fHRzz//nKeYpYt3fGfMmKG2bduqTp06qlWrlt5++22dOnVKFy5ckHTxWVpPT0916tTpqn2VLl3anphKUrVq1STJnizv2LFDknTvvfc6vA5hYWE6deqU/v33xj2rjPwjOQUAAABcqHPnzoqPj9e2bdskXUwyW7duLW9v71z3kZCQoC1btujuu+/WhQsXlJCQoPT0dN11113avHmzPfGtVauWw7+clClTRj169ND8+fOVkpKS47FyGm5cokQJxcfHS5L9OdPcJHtvvPGG5s2bpwceeEAffPCBPv30Uz366KOSLiauknTu3DmVKlVKFovlqn35+Pg4bGcl0Fn9nD17VoZhqFmzZg6vw8MPP5zreFFwMKwX+RYZGamoqCh169bNJTPBAQAA3MwaNGig8uXLa926dSpRooSOHTum559/Pk99bNy4Uenp6fr000/16aefZtv/7bff6t57781xX04iIiK0atUqrVixIts+X19fnT59Olv56dOn5evrK0lq0qSJJOm7777THXfccdVjbdiwQb1799awYcPsZVu2bHGo4+fnp1OnTskwjGsmqFfj6+sri8Wijz/+2OHOb5bAwECn+8aNR3KKfElJSVFUVJRsNpuioqI0ZMgQFSlSxOywAAAATGOxWNS5c2ctXrxYRYoUkZ+fX64mErrUmjVrVL58eU2ZMiXbvrFjx2rNmjW69957VadOnVz1V758ed13332aO3dutll7GzZsqK+++krjx4+Xu/vF9GD79u1KSEhQw4YNJUmNGjVSSEiIZs+erbZt26p06dIOffz7779KSEhQcHCwUlNTHRLFzMxMrVu3zqF+WFiYPvzwQ61fv14dO3bM1TnkJOvZ1nPnzql169ZO94OCgeQU+ZKRkWGfMc5ms13xWQcAAIDbSefOnTVnzhytWrVKvXv3zvGu3q+//pqtrGTJkqpYsaJ+/PFHPfroo2ratGmOfX/88cdKTExUsWLFch1TRESEoqKiFBcXp7p169rLhw8frj59+igiIkIDBgzQf//9p+nTpyskJEQtW7a013vzzTc1YMAA3X///Xr44YdVq1YtpaWl6ccff9TSpUv1+uuvKzg4WGFhYfrkk09UrVo1FS9eXB9//LF9GHKWsLAwtWzZUs8995z++ecf1a1bV+fOndPGjRv1zjvv5PqcAgMD1a9fPz399NMaMmSI6tatq/T0dB0+fFjR0dHZZghGwUZyCgAAgALNs0TZm+54QUFBCg4O1p9//qkuXbrkWGf+/PnZykJDQ9WiRQvZbDZ169Ytx3bdu3fXwoULtXHjRvXs2TPXMd1xxx3q1KmTvvjiC4fy2rVra/78+Xrrrbc0atQoeXl52dc5dXNzc2j/+eef68MPP9SyZcv077//qlChQqpZs6aee+453X333ZKkF198US+99JJeeeUVeXp6qnv37mrbtq1eeOEFh+POnDlTs2bN0ooVKzRr1iyVKFFC4eHhuT6fLC+88IICAwO1YsUKRUZGytvbW4GBgWrfvn2e+4K5LIZhGGYHcTP77bffJCnXQypuNefPn1fXrl3t26tXr77qAs9X89IXb+jI6WOuCi1X7ihRQRPve+qGHhMAAPx/KSkpOnTokAIDA3N8NMiw2WQxYSkQs46Lgu1a1+vtnhvkF79xAAAAKLDMShBJTIEbj986AAAAAIDpSE4BAAAAAKYjOQUAAAAAmI7kFAAAAABgOpJTAAAAAIDpSE4BAAAAAKYjOQUAAAAAmI7kFAAAAABgOpJTAAAAAIDpSE4BAAAAFxg+fLjuvffeK+5fsmSJgoOD9c8//yg4OFgbNmzIVb+TJ09WcHCwIiMj8xRPWlqaFi5cqB49eqh+/foKCQlRly5dNHPmTCUkJOSpr9atW2vSpElXrZOQkKDg4GCtWrXqusVxLatWrVJwcLDOnDnj0n5xY7ibHQAAAABwJTabTVbrjb+f4sxxO3furCeffFJ79uxRSEhItv3r1q1TvXr18tRvZmam1q9fL0lau3atRo4cmat2qampGjp0qH755Rf169dPTzzxhAoVKqR9+/ZpyZIlSkxM1HPPPZfrOJxVUOLAzYHkFAAAAAWW1WrVnC2LdSI+9oYds5xvgCJaDsxzuzZt2sjLy0tr167NlpweO3ZMu3fv1gsvvJCnPnfu3Kn//vtPYWFh2rFjh/bu3atatWpds927776rn376SfPmzVNYWJi9vFmzZnrwwQe1a9euPMXhrIISB24OJKewM2w2WUz4ZhIAAOBqTsTH6sjpY2aHcU2enp5q06aN1q9fr/HjxzvcIV23bp3c3NzUsWNHJScn57rPtWvXytvbW1OnTlWbNm20Zs2aayanKSkpWrZsme655x6HhDBL4cKFFRoaat8+fvy4Xn/9dW3fvl2ZmZlq2LChnn76aQUHB1/1OCtXrtTs2bN1+vRp1atXT+PGjXM6jqSkJL355pvavn27Tp48qRIlSqh58+Z66qmnVKxYMYd2UVFRWrhwoQ4ePCgvLy+FhITo5ZdfVvny5e11Tp48qaefflo//fSTSpcurREjRqhbt24O/Xz77beKjIzUn3/+KS8vL7Vr107PPPOMvLy8rnreuH5ITmFnsVp1aO2HSj79b67bJKVlOGzvXzZNXoXydln5BtZW+RY98tQGAACgIOrSpYvWrFmj6OhohwRw7dq1CgsLU4kSJXTsWO4S7dTUVG3atElt27ZVQECAmjdvrnXr1unpp5++6tDg33//XUlJSbrrrruueYzz589rwIABslqtmjhxogoXLqz3339f/fv31xdffKGyZcvm2O6bb77Riy++qB49eqhjx47au3evRo8e7XQcKSkpyszM1JgxY+Tv769///1Xs2fP1ogRI7RkyRJ7vblz5+qNN95Qz549NWbMGKWnp+v777/XmTNnHJLTcePGqVevXnr44Ye1cuVKjR8/XnXq1FHVqlUlSRs2bNCYMWPUo0cPjRo1SqdOndL06dOVkJCgt99++5rx4vogOYWD5NP/Kjn2n1zXT0nPdNyOOyqLh1uejlnEv0ye6gMAABRU4eHh8vf317p16+zJ6YEDB3TgwAENGTIkT319/fXXunDhgjp37izpYuL7zTffZEt8LxcXFydJV0wsL7Vq1SqdOHFC69atsydujRs31t13361FixZp/PjxObZ7//331ahRI02ZMkWSdNdddyk1NVXvvfeeU3H4+/tr4sSJ9u2MjAxVqFBBDz74oA4dOqTAwEAlJiZq1qxZ6t27t8PkTPfcc0+2/vr166d+/fpJkurXr68tW7Zo48aNGjFihAzD0LRp09SxY0e9+uqr9jalSpXSsGHDNGLECFWvXv2aMcP1GMMJAAAAuIi7u7vat2+vTZs2KS0t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p7R48eJ8BwkAAAAAuLXlKjl98sknneq8VKlSTrcFAAAAANw+mK0XAAAAAGA6p5LTnTt3au7cuQ5ln376qVq1aqWwsDC99tpryszMdEmAAAAAAIBbn1PJ6cyZM7V//3779p9//qmXXnpJ/v7+atKkiZYsWaJ58+a5LEgAAAAAwK3NqeT04MGDql27tn179erVKlq0qJYuXap33nlHDzzwgFavXu2yIAEAAAAAtzanktPk5GSHpWS2bdum5s2by9PTU5JUp04dnThxwjURAgAAAABueU4lp2XLltVvv/0mSTpy5Ij++usvNW/e3L4/Pj5ehQoVck2EAAAAAIBbXq6Wkrlcly5dFBkZqdjYWP3999/y9fVVmzZt7Pv37t2rypUruypGAAAAAMAtzqnkdPjw4UpPT9eWLVtUtmxZTZ06VT4+PpKkc+fO6YcfftDAgQNdGigAAAAA4NblVHLq7u6uMWPGaMyYMdn2+fn5afv27fkODAAAAABw+3DqmVMAAAAAAFwpV8nphAkTdPTo0Tx3/s8//2jChAl5bgcAAAAAuL3kaljvv//+qw4dOqhZs2bq2LGjQkNDVbZs2RzrHjt2TDt37tT69esVHR2t8PBwlwYMAAAAALj15Co5/fDDD/Xzzz9r/vz5mjBhgjIzM+Xn56fy5cvL19dXhmEoPj5ex44dU0JCgtzc3NSiRQstWrRIjRo1ut7nAAAAAAC4yeV6QqSGDRuqYcOGOnPmjL755hv98ssviomJ0cmTJyVdnAjp3nvvVb169dSqVSuVKFHiugUNAAAAALi15Hm2Xn9/f91///26//77r0c8AAAAAIDbELP1AgAAAABMR3IKAAAAADAdySkAAAAAwHQkpwAAAAAA05GcAgAAAABMR3IKAAAAADBdnpeSudQvv/yi6OhonT59Wg8++KAqV66s5ORkxcTEqHLlyvL29nZVnAAAAACAW5hTyWlaWprGjh2rr776SoZhyGKx6O6771blypVltVo1ePBgPfTQQ3r00UddHS8AAAAA4Bbk1LDed999V99++61efvllbdiwQYZh2PcVLlxY7du311dffeWyIAEAAAAAtzanktN169apT58+6t27t3x9fbPtr1q1qo4ePZrv4AAAAAAAtwenktPTp08rODj4ivvd3NyUkpLidFAAAAAAgNuLU8lp2bJlFRMTc8X9u3btUqVK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AADg1uLUndN3331X/fv3z5aYShfvqvbr109vvfWWJNmH9e7YsSN/kQIAAAAAbllOJadHjhyRj4/PFff7+vrqyJEj9u2qVasqOTnZmUMBAAAAAG4DTiWnFStWVFRUlFJSUrLtS05O1qpVq1ShQgV7WVxcnPz9/Z2PEgAAAABwS3PqmdPHHntMY8eOVYcOHdStWzdVqlRJ0sU7qqtXr1ZsbKymT58uScrMzNQXX3yhBg0auC5qAAAAAMAtxanktEOHDvL09NT06dP1/vvvO+yrXr26JkyYoLvvvluSZBiGFixYwFIyAAAAAIArcio5laRWrVqpVatWiouL04kTJyRJ5cqVU+nSpR0P4O6u8uXL5y9KAAAAAMAtzenkNEvp0qWzJaQAAAAAAOSF08lpZmamvvvuOx09elTx8fEyDMNhv8Vi0ciRI/MdIAAAAADg1udUcvrbb7/p8ccf18mTJ7MlpVlITgEAAAAAueVUcjpx4kSlpKQoMjJSjRo1uuqapwAAAAAAXItTyemff/6pMWPGqHXr1q6OBwAAAABwG7I606hMmTJXHM4LAAAAAEBeOZWcPvLII1q5cqXOnz/v6ngAAAAAALchp4b1XrhwQd7e3mrbtq06deqkMmXKyM3NzaGOxWLRQw895IoYAQAAAAC3OKeS09dff93+/48++ijHOiSnAAAAAIDccio5/eqrr1wdBwAAAADgNuZUclq+fHlXxwEAAAAAuI05NSESAAAAAACulKs7p61bt5bVatX69evl4eGh1q1by2KxXLWNxWLR//3f/7kkSAAAAADArS1XyWmTJk1ksVhktVodtgEAAAAAcIVcJadTp0696jYAAAAAAPnBM6cAAAAAANPl6s7pjz/+6FTnjRs3dqodAAAAAOD2kqvkdMCAAQ7PmBqGkatnTvft2+d8ZAAAAACA20auktPFixc7bKelpemNN95QSkqKevXqpcDAQElSTEyMPvnkE3l6euqpp55yfbQAAAAAgFtSrmfrvdSUKVPk4eGhlStXqnDhwvby1q1bq1+/furfv7+2bdum8PBw10YLAAAAALglOTUh0po1a9S1a1eHxDSLp6enunbtqi+++CLfwQEAAAAAbg9OJafJyck6derUFfefOnVKycnJTgcFAAAAALi9OJWchoaGavHixdq0aVO2fRs3btTixYsVFhaW7+AAAAAAALeH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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# visualize the data\n", + "# dataset to be the x axis, loading time is y axis, and format to be side by side comparison between different bars\n", + "\n", + "sns.set(style=\"whitegrid\")\n", + "plt.figure(figsize=(10, 6))\n", + "ax = sns.barplot(x=\"Dataset\", y=\"LoadingTime(s)\", hue=\"Format\", data=df)\n", + "plt.title('Loading Time of Different Formats for Different Datasets')\n", + "plt.xlabel('Dataset')\n", + "plt.ylabel('Loading Time (s)')\n", + "plt.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": 7, + "id": "8f7d665b", + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA6oAAAItCAYAAAAwvofKAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAACmhklEQVR4nOzdeZzNZf/H8fc5szDDLGYwdlmaSRj7NtbGmn1fk0LWhFKW3KRUUu4KU2TJli0xMUJKIaSSNtlCdoPBDGbGLOf8/nDP+TlmcObM4Zwxr+fj4VHf7bo+58z3O3M+59oMZrPZLAAAAAAAXITR2QEAAAAAAHArElUAAAAAgEshUQUAAAAAuBQSVQAAAACASyFRBQAAAAC4FBJVAAAAAIBLIVEFAAAAALgUElUAAAAAgEshUQUAAAAAuBQSVQAOt3v3boWEhGj37t2WfWPGjFF4eLgTo7q3kJAQzZgxw9lh2GXbtm1q166dKlasqJCQEMXFxTms7BkzZigkJMRqX0pKiqZOnaqGDRvqscce05AhQyRJ169f16uvvqq6desqJCREb775psPigOv7448/1L17d1WuXFkhISHav3+/s0MCAGRT7s4OAIBjrF69WmPHjtWqVatUsWJFZ4fjEtLek3spWrSotmzZ8gAiuj8uX76sESNG6NFHH9WECRPk6ekpLy+vDM+9/T3x9PSUn5+fQkJC1LBhQ3Xs2FF58+a9Z51ffPGF5s2bpz59+ujxxx9XkSJFJEmzZ8/WmjVrNGTIEBUvXlxlypRxzIu8D9atW6eYmBg988wzNp0fHh6u06dPZ3jsjz/+UK5cuRwY3f03a9YslS1bVk2aNHFIecnJyRoxYoQ8PT01duxY5c6d23Jf3E9nzpzRrFmz9MMPP+j8+fPy8fFRlSpV1K9fP1WrVu2+158VO3bsUN++fTVs2DA9//zzVsdOnjyp1q1bq2HDhpo+ffody3DUM52RX3/9VTt27FCfPn3k6+trVxmO9Nlnn8nLy0sdO3Z0digAHgASVQAPxBtvvCGz2fxA66xRo4amTp1qtW/8+PEKDQ1V165dLfvy5Mkj6Way4ebm9kBjdIQ///xT169f1/DhwxUWFmbTNS+88IKKFSumlJQUXbx4UT/99JPeeustLViwQB999JEee+wxy7mDBw/WgAEDrK7/8ccfFRQUpHHjxqXbX6lSpXQful1RVFSUDh8+bHOiKknlypXTs88+m26/h4eHAyN7MGbPnq3mzZs7LFE9ceKETp8+rcmTJ6tLly4OKfNe9uzZY7k3u3TpojJlyujixYtas2aNevXqpVdffVW9e/d+ILHYo27dumrdurVmz56tVq1aqVSpUpZjkyZNkru7u1599VWbysrMM22rvXv3aubMmerQoYNLJKrLli1Tvnz5SFSBHIJEFcAD4YwP8sWLF1fx4sWt9r322msqXry42rVrl+787NYilubSpUuSJB8fH5uvadCggVXL+8CBA7Vr1y4NGjRIQ4YM0VdffaXcuXNLktzd3eXubv3nIiYmJsMPrjExMSpbtqw9LyNDJpNJycnJLvOzCQoKyvDeySpXe532sOc+vJf4+Hh5e3tneCw2NlbDhw9X7ty5tWzZMpUoUcJy7Nlnn1W/fv301ltvqXz58qpatarDYnK0cePGafv27Zo4caIWLVokSVq/fr22b9+u8ePHKygoyKZyMvNMA0B2wBhVIIf5+++/1b9/f1WtWlVVqlRRnz599Ntvv1mdc+XKFb3zzjtq06aNqlSpoqpVq6p///46cOBAuvLOnTunIUOGqHLlyqpTp47eeustJSUlpTvv9jGqp06dUkhIiObNm6cVK1aoSZMmqlChgjp16qQ//vgj3fUbNmxQy5YtVbFiRbVu3VqbN292+LjX28eopo3NPHbsmEaNGqVq1aqpdu3a+uCDD2Q2m3X27FkNHjxYVatWVd26dTV//vx0ZSYlJWn69Olq2rSpKlSooIYNG2rq1KkZvkcZ2bBhgzp27KjQ0FDVqlVLo0aNUnR0tOV47969NXr0aElS586dFRISojFjxtj1+uvUqaMhQ4bo9OnTWrt2bbr3Qfr/n9vu3bt1+PBhhYSEWLZDQkJ06tQpff/995b9p06dytT7EBISotdff11r165Vq1atVLFiRW3fvl2SFB0drbFjxyosLEwVKlRQq1attGrVKqvr0+L46quv9PHHH1s+vPfp00fHjx+3et++//57nT592hKrI+6l+Ph4TZkyRQ0bNlSFChXUvHlzzZs3L11vgju9ztWrVyskJES//PKLJk+erNq1a6t69eqaMGGCkpKSFBcXp1deeUU1atSw9Bi4vex58+ape/fuqlWrlkJDQ9WxY0dt3LgxXf3x8fFas2aN5fWn3TfXrl3Tm2++qfDwcFWoUEF16tTRs88+q3379t3xdY8ZM0ZPPfWUJGn48OEKCQmxasnctWuXevbsqcqVK6t69eoaPHiwjhw5YlVG2n32zz//6KWXXlKNGjXUs2fPO9a5YsUKXbhwQS+//LJVkipJuXPn1pQpU2QwGBQREWHZn/b+/vzzz5owYYJq1aqlqlWr6pVXXlFsbGy6OrZu3WqJu0qVKhowYIAOHz6c7rVXqVJF0dHRGjJkiKpUqaLatWvrnXfeUWpq6h3jTxMYGKhRo0Zp9+7dWrNmjeLi4vT222+rYsWK6tWr1z2vv5s7PdMHDhzQmDFj1LhxY1WsWFF169bV2LFjdfnyZcs5M2bMsPRIady4cbpn+osvvtDTTz+tOnXqqEKFCmrZsqWWLl2aLoY///xT/fr1s9yP4eHh6YZkmEwmLViwwPIshIWFacKECVY/k/DwcB0+fFg//fSTJZa0eyw5OVkzZ85Us2bNVLFiRdWqVUs9evTQjh07svT+AXAuWlSBHOTw4cPq1auX8uTJo/79+8vd3V0rVqxQ7969tWTJElWqVEnSzbFR33zzjVq0aKFixYrp4sWLWrFihZ566imtX7/e8g1/YmKi+vTpo7Nnz6p3794qWLCgvvzyS/344482xxQVFaXr16+rW7duMhgMmjt3roYNG6ZvvvnG0gr7/fffa+TIkQoODtZLL72k2NhYvfrqqza3NGTVyJEjVaZMGb300kvaunWrPv74Y/n7+2v58uWqXbu2Ro0apXXr1umdd95RxYoVVaNGDUk3P3wNHjxYe/bsUdeuXVWmTBkdOnRICxcu1L///quPPvrorvWmjT2rWLGiXnzxRcXExGjRokX69ddfFRkZKV9fXw0aNEilSpXSihUrLF3/bv/Qnhnt2rXTf//7X/3www9W3aPTBAQEaOrUqZo1a5bi4+P14osvSpLKlCmjqVOn6u2331ahQoUs3WMDAgIy/T78+OOP2rBhg3r16qV8+fKpaNGiunjxorp27SqDwaBevXopICBA27Zt06uvvqpr166l6747Z84cGQwG9e3bV9euXdPcuXM1atQoff7555KkQYMG6erVqzp37pzlQ3NaF/C7SUlJsbQcpvHy8pKXl5fMZrMGDx6s3bt3q3PnzipXrpy2b9+uqVOnKjo6OsNu0re/zrRJsCZPnqz8+fNr2LBh+v3337VixQr5+Pho7969Kly4sEaOHKlt27Zp3rx5Cg4OVvv27S3lLlq0SOHh4WrTpo2Sk5O1fv16DR8+XLNnz1ajRo0kSVOnTk3XDT7tvpk4caI2bdqkp556SmXKlNGVK1e0Z88eHTlyROXLl8/wfenWrZuCgoI0a9Ys9e7dWxUrVlT+/PklSTt37tRzzz2nYsWK6fnnn1diYqKWLFmiHj16aPXq1SpWrJhVWcOHD1fJkiU1cuTIuw4X2LJli3LlyqWWLVtmeLx48eKqVq2adu/ercTERKvWxNdff12+vr56/vnndezYMS1btkxnzpzR4sWLZTAYJEmRkZEaM2aM6tWrp1GjRikhIUHLli1Tz549tWbNGqu4U1NT1a9fP4WGhuqVV17Rrl27NH/+fBUvXvyuyXaaLl26aM2aNXrnnXf0ww8/6NKlS/rkk09kNGa9PSGjZ3rnzp06efKkOnbsqAIFCujw4cNauXKl/vnnH61cuVIGg0FNmzbVv//+q6ioKI0dO1b58uWTdPOZlm52w3300UcVHh4ud3d3fffdd5o0aZLMZrMlwY6JiVG/fv2UL18+DRgwQL6+vjp16pQ2b95sFeOECRO0Zs0adezYUb1799apU6f02Wef6e+//9ayZcvk4eGhcePG6Y033pC3t7cGDRokSZZ7bObMmZo9e7a6dOmi0NBQXbt2TX/99Zf27dununXrZvk9BOAkZgAPhS+++MIcHBxs/uOPP+54zpAhQ8zly5c3nzhxwrIvOjraXKVKFXOvXr0s+27cuGFOTU21uvbkyZPmChUqmGfOnGnZt2DBAnNwcLD5q6++suyLj483N23a1BwcHGz+8ccfLftHjx5tfuKJJ6zKCw4ONtesWdN85coVy/5vvvnGHBwcbN6yZYtlX+vWrc0NGjQwX7t2zbJv9+7d5uDgYKsybVG5cmXz6NGjMzwWHBxsnj59umV7+vTp5uDgYPN//vMfy76UlBRzgwYNzCEhIebZs2db9sfGxppDQ0Otyo6MjDQ/9thj5p9//tmqnmXLlpmDg4PNe/bsuWOcSUlJ5jp16phbt25tTkxMtOz/7rvvzMHBweYPP/zQss+Wn31mzq1WrZq5ffv2lu209+FWTz31lLlVq1bprn3iiSfMAwYMsNqXmfchODjY/Nhjj5kPHz5sde64cePMdevWNV+6dMlq/8iRI83VqlUzJyQkmM1ms/nHH380BwcHm5988knzjRs3LOctXLjQHBwcbD548KBl34ABAzJ1/zzxxBPm4ODgdP/S7pnNmzebg4ODzR999JHVdcOGDTOHhISYjx8/fs/Xmfbz6du3r9lkMln2d+vWzRwSEmKeMGGCZV/avfjUU09ZlZH2XqRJSkoyt27d2vz0009b7b/Ts1CtWjXzpEmTbHlLrKS99xs2bLDa365dO3OdOnXMly9ftuzbv3+/+bHHHjO/8sorln1p99mLL75oU33Vq1c3t23b9q7nvPHGG+bg4GDzgQMHzGbz/7+/HTp0MCclJVnOmzNnjjk4ONj8zTffmM1ms/natWvm6tWrm8ePH29V3oULF8zVqlWz2j969GhzcHCw1e9Gs9lsbt++vblDhw42vRaz2Ww+dOiQuXz58ubg4GDzm2++afN19jzTt98jZrPZHBUVZQ4ODrZ6TufOnWsODg42nzx5Mt35GZXRt29fc+PGjS3bac/E3WL7+eefzcHBwea1a9da7d+2bVu6/a1atUp3v5vNZnPbtm3T/d4BkP3R9RfIIVJTU7Vjxw41adLEatxmwYIF1bp1a+3Zs0fXrl2TdHPWyLRv8lNTU3X58mV5e3urVKlS+vvvvy3Xbtu2TQUKFFCLFi0s+7y8vDJsibuTli1bys/Pz7JdvXp1STdbdaWb3T0PHTqk9u3bW7V41axZU8HBwZl5C+zWuXNny/+7ubmpQoUKMpvNVvt9fX1VqlQpS9yStHHjRpUpU0alS5fWpUuXLP9q164tSVbL99zur7/+UkxMjHr06GE1brFRo0YqXbq0vv/+ewe+Qmve3t66fv26w8rL7PtQo0YNq3GuZrNZX3/9tcLDw2U2m63KqFevnq5evZquW2rHjh3l6elp2b79vrJXpUqV9Omnn1r9S2vN3LZtm9zc3NJN3tO3b1+ZzWZt27btrq/zVp07d7a07ElSaGhounsu7V68/TXd2nIYGxurq1evqlq1albP7t34+vrq999/t+pibq/z589r//796tChg/z9/S37H3vsMYWFhWnr1q3prunevbtNZV+/fv2ereBpx9N+t6Xp1q2b1bj5Hj16yN3d3RLPzp07FRcXp1atWlndb0ajUZUqVcrw2e3Ro4fVdrVq1SzdZG2RN29eS0yObgW8/Zm+9R65ceOGLl26ZOlRc7cu3re6tYyrV6/q0qVLqlmzpk6ePKmrV69K+v/xyt9//72Sk5MzLGfjxo3y8fFR3bp1rd7r8uXLy9vb+66/J9P4+vrq8OHD+vfff22KHUD2QNdfIIe4dOmSEhISrGaVTFOmTBmZTCadPXtWjz76qEwmkxYtWqSlS5fq1KlTVuOsbv2wefr0aZUsWdLqA7WkDOu4k8KFC1ttpyWtaV0gz5w5I0kZdmctWbKkzR++s+L2JTZ8fHyUK1cuSxe4W/dfuXLFsn38+HEdOXJEderUybDcmJiYO9aZ9rozei9Lly6tPXv22Bp+psXHxyswMNBh5WX2fbi9K+ilS5cUFxenFStWaMWKFRmWcXt33Nt/ZmkTP2V1fdl8+fLdcWbl06dPq2DBgumWAklbouf2pW1uf523yuiek9I/Lz4+PunGVn733Xf6+OOPtX//fqsxwLc/p3cyatQojRkzRo0aNVL58uXVsGFDtW/fPt3EZLa4231cpkwZ/fDDD+kmTLrb+3KrPHny3PMLlbTjtye0JUuWTFdWgQIFLD+jtISnT58+GZZ7+884o98Hfn5+Vj+bS5cuWf0u9fb2torr9ddfl8FgUNGiRfXOO+8oLCzMYZPQ3f5MX7lyRTNnztRXX32V7vlLSzLvZc+ePZoxY4Z+++03JSQkpCvDx8dHNWvWVPPmzTVz5kwtWLBANWvWVJMmTdSmTRvLF0nHjx/X1atX7fo9meaFF17QkCFD1Lx5cwUHB6tevXpq166dXTMdA3AdJKoA0pk1a5Y+/PBDderUScOHD5efn5+MRqPeeusthy8xc6flYBxdT1ZkNE7MlrhNJpOCg4PvuJZroUKFHBOgA507d05Xr17N0jjX22X2fbh9ZlKTySRJatu2rTp06JBhGWmTPaW509g+V7qv7jYD653iv9eYxV9++UWDBw9WjRo1NHHiRBUoUEAeHh764osvFBUVZVNcLVu2VPXq1bV582bt2LFD8+bN05w5czRjxgw1bNjQpjKywtaZj8uUKaO///5bSUlJVq3ntzp48KA8PDz0yCOPZCqGtPtk6tSpKlCgQLrjtz//tixr1blzZ6svK55//nkNGzZMkvT1119ry5YtGjdunB555BENGDBA8+bNs4zFzIqMnukRI0Zo79696tevn8qVKydvb2+ZTCb179/fpmfkxIkTeuaZZ1S6dGmNGTNGhQsXloeHh7Zu3aoFCxZYnlmDwaDp06frt99+03fffaft27dr3Lhx+vTTT7VixQrlyZNHJpNJgYGBeu+99zKs6/YvADJSo0YNbd68Wd9++6127NihVatWaeHChZo0adIDWyoJgOORqAI5REBAgLy8vHTs2LF0x44ePSqj0Whprdm0aZNq1aqlt956y+q8uLg4y4QaklS0aFEdOnRIZrPZqrUmozrsldaydOLEiXTHbp3F1RWVKFFCBw4cUJ06dWxuzUqT9rqPHTuWrqXh2LFj6VrcHOXLL7+UJNWrV89hZWblfZBu3rtpH2htXSfWFvbEcjdFixbVrl27dO3aNasWt6NHj1qO32+bNm1Srly5NG/ePKvk7YsvvshUOQULFlSvXr3Uq1cvxcTEqEOHDpo1a1amE9Vb7+PbHT16VPny5bvj8jP30qhRI+3du1cbNmzIcMmgU6dOac+ePapTp066LwWOHz9u6Xou3Wx5vXDhgho0aCBJltbjwMBAh91z7777rm7cuGHZTqvj2rVrmjx5ssqXL6+nnnpKbm5uat68uT7++GO1atXKrpbsW93+TMfGxmrXrl0aNmyY1XrHGXWbvdMzsmXLFiUlJenjjz+2+l10p266lStXVuXKlTVy5EitW7dOo0aN0ldffaUuXbqoRIkS2rVrl6pWrXrP5XPu9sz6+/urU6dO6tSpk65fv66nnnpKM2bMIFEFsjHGqAI5hJubm+rWratvv/3WatzUxYsXFRUVpWrVqlk+XLu5uaX7Vn3Dhg3pxqw1aNBA58+ft1r6IiEhQStXrnRY3EFBQQoODlZkZKRVN7+ffvpJhw4dclg998OTTz6p6OjoDN+PxMRExcfH3/HaChUqKDAwUMuXL7fqvrl161YdOXLEMnurI+3atUsfffSRihUrprZt2zqs3Ky8D5IsH9w3bdqU4c/89m6/tvLy8rK5m6MtGjRooNTUVH322WdW+xcsWCCDwWBJgu4nNzc3GQwGqy6mp06d0rfffpvuXG9v73RdoVNTU9O9J4GBgSpYsKDNSyrdqmDBgipXrpwiIyOt6jp06JB27NiRpRbabt26KTAwUO+++266cbo3btzQ2LFjZTabNXTo0HTXrlixwmrM5LJly5SSkmL5GdWvX1958+bV7NmzMxxbac89V61aNYWFhVn+pSWgH3zwgS5cuKBJkyZZWmZfffVVGY1GvfHGG5mu51YZPdN3av1duHBhun1eXl6S0ncHTivj1r8TV69eTfeFSGxsbLq/JeXKlZMky/305JNPKjU1NcNZ0FNSUqzuGy8vrwy779+6rI50syt3iRIl7LpnAbgOWlSBh8wXX3xhWXfyVk8//bRGjBihnTt3qmfPnurZs6fc3Ny0YsUKJSUl6eWXX7ac26hRI0VERGjs2LGqUqWKDh06pHXr1qX7Zr9r16767LPPNHr0aO3bt08FChTQl19+6fBF5UeOHKkhQ4aoR48e6tixo+Li4vTZZ58pODjYoZP+OFq7du20YcMGTZw4Ubt371bVqlWVmpqqo0ePauPGjZo7d64qVqyY4bUeHh4aNWqUxo4dq6eeekqtWrWyLE9TtGjRdMuxZNa2bdt09OhRpaam6uLFi9q9e7d27NihIkWK6OOPP7a5+6UtsvI+pHnppZe0e/dude3aVV26dFHZsmUVGxurffv2adeuXfrpp58yHVf58uX11VdfWdas9Pb2ztJaquHh4apVq5bef/99y/qsO3bs0Lfffqs+ffo4tDv1nTRs2FCffvqp+vfvr9atWysmJkZLly5ViRIldPDgQatzy5cvr127dunTTz9VwYIFVaxYMZUqVUoNGzZU8+bN9dhjj8nb21s7d+7Un3/+aff6vK+88oqee+45devWTZ07d7YsT+Pj42PVopdZ+fLl0/Tp0zVgwAB16NBBXbp0UZkyZXTx4kWtWbNGx48f16uvvqqqVaumuzY5OVnPPPOMnnzySR07dkxLly5VtWrV1LhxY0k3x6C+9tpreuWVV9SxY0e1bNlSAQEBOnPmjLZu3aqqVatqwoQJdsee5q+//tLSpUvVq1cvq2cgKChIw4cP19tvv61NmzapefPm9yzL1mc6b968qlGjhubOnavk5GQFBQVpx44dGU78lLYc0fvvv6+WLVvKw8NDTzzxhOrWrSsPDw8NGjRI3bt31/Xr1/X5558rMDBQFy5csFy/Zs0aLVu2TE2aNFGJEiV0/fp1rVy5Unnz5rV8KVCzZk1169ZNs2fP1v79+y1l//vvv9q4caNeffVVy4R95cuX17Jly/TRRx+pZMmSCggIUJ06ddSqVSvVrFlT5cuXl7+/v/7880/LEksAsi8SVeAhs2zZsgz3d+zYUY8++qg+++wzTZs2TbNnz5bZbFZoaKjeffddy4yP0s01JhMSErRu3Tp99dVXevzxxzV79mxNmzbNqkwvLy8tWLBAb7zxhpYsWaLcuXOrTZs2atCggfr37++w1xQeHq7//ve/mjFjhqZNm6ZHHnlEb7/9tiIjI3X48GGH1eNoRqNRERERWrBggb788ktt3rxZXl5eKlasmHr37n3PSac6duyo3Llza86cOXrvvffk7e2tJk2a6OWXX7ZMDmSv6dOnS7qZEPv7+ys4OFjjxo1Tx44d000Uk1VZfR+km+slfv7554qIiNDmzZu1bNky+fv7q2zZsho1apRdcfXs2VP79+/X6tWrtWDBAhUtWjRLiarRaNTHH3+s6dOn66uvvtLq1atVtGhRvfLKK+rbt6/d5WZGnTp19Oabb2rOnDl66623VKxYMY0aNUqnT59Ol6iOGTNGEyZM0AcffKDExER16NBBr7/+unr06KEdO3bo66+/ltlsVokSJTRx4kSb1gPNSFhYmObOnavp06dr+vTpcnd3V40aNfTyyy9nuVtr9erVtXbtWs2ePVsbN27UhQsXlDdvXlWpUkVvvvmmZbbn202YMEHr1q3T9OnTlZycrFatWmn8+PFWXUvbtGmjggUL6pNPPtG8efOUlJSkoKAgVa9eXR07dsxS3NLN1usJEyYoMDBQI0aMSHe8d+/eioyM1FtvvaV69erdc4bjzDzT06ZN0xtvvKGlS5fKbDarbt26mjNnjurXr291XmhoqIYPH67ly5dr+/btMplM+vbbb1W6dGlNnz5dH3zwgd555x3lz59fPXr0UEBAgNV6wTVr1tSff/6pr776ShcvXpSPj49CQ0P13nvvWf3sX3/9dVWoUEHLly/X+++/Lzc3NxUtWlRt27a1+qJh6NChOnPmjObOnavr16+rZs2aqlOnjnr37q0tW7Zox44dSkpKUpEiRTRixAj169fP5p8HANdjMLvSzBIAkAnt2rVTQECAPv30U2eHAiAbWL16tcaOHatVq1bdsxUfAOBcjFEF4PKSk5OVkpJitW/37t06cOCAatas6aSoAAAAcL/Q9ReAy4uOjtazzz6rtm3bqmDBgjp69KiWL1+uAgUKqHv37s4ODwAAAA5GogrA5fn5+al8+fL6/PPPdenSJXl7e6thw4YaNWqU1XI5AAAAeDgwRhUAAAAA4FIYowoAAAAAcCkkqgAAAAAAl8IYVQfZu3evzGazPDw8nB0KAAAAACdKTk6WwWBQlSpVnB1KtkWi6iBms1kM9wUAAABAXpB1JKoOktaSygLiAAAAQM72559/OjuEbI8xqgAAAAAAl0KiCgAAAABwKSSqAAAAAACXQqIKAAAAAHApJKoAAAAAAJfCrL8AAKWmpio5OdnZYQDpeHh4yM3NzdlhAAAeMBJVAMjBzGazzp07pytXrjg7FOCO/P39VahQIRkMBmeHAgB4QEhUASAHS0tSCxYsKG9vbxIBuBSz2az4+HidP39eklS4cGEnRwQAeFBIVAEgh0pNTbUkqYGBgc4OB8iQl5eXJOn8+fMqWLAg3YABIIdgMiUAyKHSxqR6e3s7ORLg7tLuUcZRA0DOQaIKADkc3X3h6rhHASDnIVEFAAAAALgUElUAAAAAgEshUQUAPPRWr16tkJCQDP+99957zg4vU3799VfNmDFDcXFxzg4FAID7hll/AQA5xgsvvKBixYpZ7QsODnZSNPbZu3evZs6cqQ4dOsjX19fZ4QAAcF+QqAIAcowGDRqoYsWKDi0zPj6emZMBAHAwuv4CACBp165d6tmzpypXrqzq1atr8ODBOnLkiNU5M2bMUEhIiP755x+99NJLqlGjhnr27ClJCg8P18CBA7V792517NhRoaGhatOmjXbv3i1J+vrrr9WmTRtVrFhRHTt21N9//21V9oEDBzRmzBg1btxYFStWVN26dTV27FhdvnzZqv6pU6dKkho3bmzpvnzq1Kn7+dYAAPDA0aIKAMgxrl27pkuXLlntCwgI0M6dO/Xcc8+pWLFiev7555WYmKglS5aoR48eWr16dbruwsOHD1fJkiU1cuRImc1my/7jx4/rpZdeUvfu3dW2bVvNnz9fgwYN0qRJk/T++++rR48ekqRPPvlEI0aM0MaNG2U03vzOeOfOnTp58qQ6duyoAgUK6PDhw1q5cqX++ecfrVy5UgaDQU2bNtW///6rqKgojR07Vvny5bO8BgAAHiYkqnhoREREKDIyUu3bt9fQoUOdHQ4AF/TMM8+k23fw4EFNnTpVfn5+WrFihfz9/SVJTZo0UYcOHTRjxgy98847Vtc89thjmjZtWrqyjh07puXLl6tKlSqSpLJly6pfv376z3/+ow0bNqhIkSKSJD8/P02YMEE///yzatWqJUnq2bOn+vbta1Ve5cqV9eKLL2rPnj2qXr26HnvsMT3++OOKiopSkyZN0iXQAAA8LEhU8VBITExUZGSkTCaTIiMj1a9fP+XOndvZYQFwMRMmTFCpUqWs9p0/f1779+9X//79LUmqdDMZDQsL09atW9OV07179wzLL1u2rCVJlaRKlSpJkmrXrm1JUm/df/LkSUuieuvvrBs3buj69euW8/bt26fq1atn5qUCAJCtkajioZCSkiKTySRJMplMSklJcXJEAFxRaGhousmUfvvtN0lKl8BKUpkyZfTDDz+kmzDpTi2ZhQsXttr28fGRJBUqVMhqf968eSXJaomZK1euaObMmfrqq68UExNjdf7Vq1fv9rIAAHjokKjC5ZhMJsuYrZxUN4DsI1euXBnud3Nzy9T+W8e3jhgxQnv37lW/fv1Urlw5eXt7y2QyqX///lbnAQCQE5CowuUYjUbN3rpIZ2Kjbb4m5Uay1fbbG6bLPZdHpuot4hekgQ2fztQ1ALK/tC65x44dS3fs6NGjypcv331ffiY2Nla7du3SsGHD9Pzzz1v2//vvv+nONRgM9zUWAABcAYkqXNKZ2Ggdj7F9uQVTUqrV9slLZ2T0zLgFAwBuVbBgQZUrV06RkZEaOHCgfH19JUmHDh3Sjh071LZt2/sew51aXBcuXJhun5eXlyS6AwMAHm4kqng4GA2SQZJZN/9rpMUBgO1eeeUVPffcc+rWrZs6d+5sWZ7Gx8fHqoXzfsmbN69q1KihuXPnKjk5WUFBQdqxY0eG66OWL19ekvT++++rZcuW8vDw0BNPPHHfW30BAHiQGIyHh4LR3ai8IYGSQcobEiijO7c2ANuFhYVp7ty58vf31/Tp0zV//nxVqlRJy5YtU/HixR9IDNOmTVO9evW0dOlS/fe//5W7u7vmzJmT7rzQ0FANHz5cBw4c0NixY/Xiiy+mWxsWAIDszmBmhgaH+PPPPyUp3WySOY2j1jKduPbdTHX9dYSSgcU0qe3LD7ROwJkSExN17NgxlSpViuWc4NK4VwFkN+QGWUezExzm9rVMExMTnR0SAAAAgGyIRBUOw1qmAAAAAByBRBUZMv8v4QQAAACAB41Zf5Ehg9GoY1FzlBBz1uZr4pOsW1APLJsqb8/M3WJ+pSqoaIOOmboGAAAAwMOFRBV3lBBzVgnRJ2w+PzHZei3TxPMnZfDI3FqmuQMKZep8AAAAAA8fuv7CYdyMBqWtXmo03NwGAAAAgMwiUYXDeLoZVbeEr4wGKay4rzzduL0AAAAAZB5df+FQbcsFqm25QGeHAQAAACAbo8kLAAAAAOBSSFQBAAAAAC6FRBUAAAAA4FIYowoAyPZmzJihmTNnWrb9/f1VunRpDRo0SA0bNrTsDw8PV6NGjTRhwoQMy1m9erXGjh1r2fb29lZQUJCqVKmiHj16KDQ01Or8lJQULVu2TJ9//rlOnjwpd3d3FS5cWNWrV9eYMWPk6enp4FcKAEDOQKIKAEjHZDLL6KQlpuytO3fu3Fq4cKEk6fz585o1a5YGDRqkzz77TFWrVs1UWXPnzpWPj48SEhJ07NgxffHFF+ratatefPFFDRgwwHLe5MmTtXr1ag0YMEBVq1ZVQkKC9u/fr7Vr1yoxMZFEFQAAO5GoAgDSMRoNili2Q6fPxz7QeosW9NPQHnXtutZoNKpy5cqW7UqVKqlhw4aKjIzMdKJavnx5BQQESJLq1Kmj7t27a/To0frvf/+rqlWrqnr16kpISNCqVas0aNAgPf/885ZrGzdurOeff15ms9mu1wEAAEhUAQB3cPp8rP49fdnZYdgtKChIAQEBOnPmTJbLMhqNevXVV7Vp0yYtW7bMkqgmJyerYMGCGV5jMDinRRoAgIcBiSoA4KF0/fp1xcbGqlixYg4pz9/fX+XLl9fevXslSQEBASpSpIg+/vhj5cmTR/Xq1ZOfn59D6gIAIKdj1l8AwEMjJSVFKSkpOnPmjMaPH688efLo6aefdlj5hQsX1sWLFy3bU6ZMUVJSkl588UXVqlVLLVu21LRp03Tp0iWH1QkAQE5EiyoA4KEQHx+v8uXLW7bd3Nz00UcfqXTp0g6rw2w2W3XprVWrljZv3qxt27Zp165d+vHHH/XJJ59o9erVWr16tYKCghxWNwAAOQktqgCAh0Lu3Lm1atUqff7553r33XdVoEABjR49WufPn3dYHefOnVP+/Pmt9nl7e6tFixaaNGmSNm3apMmTJ+vixYuaP3++w+oFACCnIVEFADwUjEajKlasqNDQULVt21YzZ85UXFycIiIiHFL+5cuX9ddff6lKlSp3Pa9Lly7y9/fXkSNHHFIvAAA5EYkqAOChVLFiRbVq1UqrV6/WhQsXslSWyWTSW2+9peTkZPXq1UuSlJycrNjY9Mv3xMTE6OrVqypQoECW6gQAICdjjCoAIENFCz74GWwdXeeQIUP01VdfaeHChRo1apQk6cSJE9q4caPVeUajUc2aNbNs79u3Tz4+PkpMTNSxY8f0xRdfaN++fXr55ZctLapXr15V8+bN1a5dO9WuXVt+fn46deqU5s+fL6PRqB49ejj0tQAAkJOQqAIA0jGZzBrao67T6jYaHbMGaenSpdWyZUstW7ZMAwcOlCRt375d27dvtzrPzc1Nf//9t2W7f//+km6OPy1YsKCqVq2qCRMmKDQ01HJO3rx59dxzz2n79u3auHGjYmNjlT9/flWsWFFTpkyxmtgJAABkDokqACAdRyWKD6ruYcOGadiwYRkee++99yz/v2XLlruW07FjR3Xs2NGmOj09PTVgwAANGDDA9kABAIBNGKMKAAAAAHApJKoAAAAAAJdCogoAAAAAcCkkqgAAAAAAl0KiCgAAAABwKSSqAAAAAACXQqIKAAAAAHApJKoAAAAAAJdCogoAAAAAcCkkqgCAbG3QoEFq1qzZHY8vXrxYISEhOnHihEJCQrRx40abyp08ebJCQkIUERFhcyy9e/dWSEiIPvzww3TH2rVrpzFjxthc1q0uXbqkKVOmqHnz5qpYsaKqVq2qp556Sp9//rlSU1PtKvNOxowZo9atWzu0TAAAMotEFQCQjtlkyjZ1t27dWsePH9cff/yR4fH169ercuXKMhpt/5OXmpqqDRs2SJKioqIyFY90Mzm+evVqpq/LyPHjx9WhQwdFRUWpa9eumjNnjj744AOFhobq7bff1nfffeeQegAAcCXuzg4AAOB6DEajjkXNUULM2Qdar1dgYZVq/VymrmncuLG8vb0VFRWl0NBQq2OnTp3S3r17NX78+EyVuWvXLl28eFFhYWHauXOn9u3bp/Lly9t0bWhoqP755x8tWrRIQ4cOzVS9GRk1apRSU1P1xRdfKCgoyLK/QYMGeuqppxyWEAMA4EpIVAEAGUqIOauE6BPODuOevLy81LhxY23YsEFjxoyxajldv3693Nzc1LJlSyUkJNhcZlRUlPLkyaMpU6aocePGWrdunc2JakBAgLp3765FixapT58+yps37x3P/fnnnzVt2jT9/fff8vLyUnh4uEaPHi1/f39J0i+//KI//vhD48ePt0pS0xQpUsTy/0eOHNHMmTP166+/6sqVKypatKg6d+6sZ555xuo9SUpKUkREhKKiohQdHa2AgACFhYVpypQpVmXv3r1bb7/9tv7991+VLVtWr732mipUqGA5bjabNX/+fK1cuVKnT59WUFCQevfurWeeecam9wkAgLuh6y8AINtr06aNzp8/r927d1vtj4qKUlhYmAIDA20u68aNG/r666/VtGlTBQUFqV69elq/fr1MmeiS3LdvXyUkJOizzz674zl//fWXnn32WeXJk0cffvihRo0ape+++07PPfecZdzpTz/9JEmqX7/+Pes8f/68SpUqpYkTJ+qTTz5R165dFRERoY8++sjqvGHDhmnBggXq1KmTPvnkE73yyiuKj4+3OufChQuaPHmy+vXrpw8++EA3btzQ888/r+TkZMs5b775pqZPn6727dvrk08+UYcOHfTee+9p2bJlNr9PAADcCS2qAIBsr27dugoICND69etVp04dSdKhQ4d06NAh9evXL1NlbdmyRdevX7dMKNSmTRt999132r17t6XseylQoIC6du2qTz/9VL1795a3t3e6c2bNmqUCBQpo1qxZ8vDwkCQVLlxY/fr109atWxUeHq7o6GhJ1i2nd1KnTh1LfGazWdWqVVNiYqKWLFmi559/XpK0Y8cOff/995o2bZrVhEm3T54UGxurJUuW6NFHH5V0s9X66aef1u+//67q1avrxIkTWrJkiSZNmqRu3bpJksLCwpSYmKiIiAh169YtU2OCAQC4HX9FAADZnru7u1q0aKGvv/5aSUlJkm52+/Xy8lLTpk0zVVZUVJQCAwMVFhYmSQoPD5e3t7fWrVtnOSclJcXqX0b69++va9eu3bGF8ZdfflHjxo0tSaok1atXT76+vtqzZ0+mYpZutgRPnz5dTZs2VcWKFVW+fHm9//77unDhgq5fvy7p5thbLy8vtWrV6q5lFSxY0JKkSlLZsmUlyZI479y5U5LUrFkzq/chLCxMFy5c0NmzD3ZsMwDg4UOiCgB4KLRu3VqxsbHavn27pJsJZ3h4uPLkyWNzGXFxcdq6daueeOIJXb9+XXFxcUpOTlb9+vW1efNmSxJcvnx5q38ZKVSokDp27Kj58+crMTExw7oy6pIcGBio2NhYSbKMS7Ul8Xv33Xc1b948denSRZ988olWrVqlwYMHS7qZxErSlStXVKBAARkMhruW5evra7WdlkynlXP58mWZzWbVrl3b6n149tlnbY4XAIC7oesvAOChULVqVRUtWlTr169XYGCgTp06pVdffTVTZWzatEnJyclatWqVVq1a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MEaDLJUb/rcNZEMkqgAAAIADeboZVbeEr4wGKay4rzzdHtxHbqO7UXlDAiWDlDckUEZ3Pu4je6LrLwAAAOBgbcsFqm25QKfUna96YeWrXtgpdQOOwlcsAAAAAACXQqIKAMjWBg0apGbNmt3x+OLFixUSEqITJ04oJCREGzdutKncyZMnKyQkRBERETbH0rt3bw0cODDTx+5mxowZ+vXXXzM8dv36dc2cOVOtW7dWpUqVVLlyZXXu3Fmffvqpbty4kem67hVHlSpVHFomAAB3QqIKAEjHbDJlm7pbt26t48eP648//sjw+Pr161W5cuVMrQeYmpqqDRs2SJKioqIyFY+jzZw5U3v37k23/9KlS+revbsWLFig5s2b6+OPP9ZHH32kJ554Qp988omWL1/uhGgBAHAMxqgCANIxGI367ePZunbG9gXuHSFvkcKqPDhzrY6NGzeWt7e3oqKiFBoaanXs1KlT2rt3r8aPH5+pMnft2qWLFy8qLCxMO3fu1L59+1S+fPlMlXG/TZo0SSdPntTKlSsVHBxs2R8WFqZevXrp6NGjTowOAICsIVEFAGTo2pmzijt+3Nlh3JOXl5caN26sDRs2aMyYMVYtp+vXr5ebm5tatmyphIQEm8uMiopSnjx5NGXKFDVu3Fjr1q27L4nqwYMHNXXqVO3Zs0dubm6qW7euxowZoyJFikiSQkJCJElTp07V1KlTJUmLFi1SsWLFtGnTJj3zzDNWSWoaf39/Va1aVZJ0/vx5vf/++/rpp5904cIFFSpUSC1atNDzzz8vT09PyzUmk0kLFy7UypUrdfLkSfn5+alatWp688035ePjYxXza6+9pr///lvFixfX6NGjVb9+fav6V69erU8//VT//vuv/P391bFjR73wwgtyc2MtRwCAbej6CwDI9tq0aaPz589r9+7dVvujoqIUFhamwEDbZ968ceOGvv76azVt2lRBQUGqV6+e1q9fL5ONXZLNZrNSUlLS/TObzVbnnT17Vk899ZQuX76sd999V5MmTdK+ffv01FNP6dq1a5KkFStWSLo5vnXFihVasWKFypcvr19++UVmszldgpiRy5cvy9/fX2PHjtXcuXPVv39/rVmzRhMnTrQ674033tC7776rRo0aadasWZowYYLy5Mmj+Ph4yznJyckaNWqUOnbsqJkzZyogIEAvvPCCLl++bDnn008/1fjx41WvXj3NmjVLzz33nBYtWqT333/fpvcPAACJFlUAwEOgbt26CggI0Pr161WnTh1J0qFDh3To0CH169cvU2Vt2bJF169fV+vWrSXdTIK/++477d6921L23WzduvWOra+NGjWy/P+CBQuUkpKi+fPny9/fX5JUrlw5tWrVSmvWrFHv3r1VuXJlSVLhwoUt/y9J0dHRlv33EhISotGjR1u2q1atKi8vL40ZM0YTJkyQl5eXjh07pmXLlmnkyJFWEz41b97cqqy0RLVhw4aSpFKlSqlx48batm2b2rVrp2vXrmn69Onq37+/XnzxRUk3fzYeHh6aMmWK+vXrp3z58t0zZgAASFQBANmeu7u7WrRoofXr12vChAny9PTU+vXr5eXlpaZNm2aqrKioKAUGBiosLEySFB4eLm9vb61bt86SqKakpKSrP021atU0duzYdOXe3oL5yy+/qFatWpYkVZLKlCmjxx57THv27FHv3r3vGavBYLjnOWaz2dKl99SpU1azAZ88eVLBwcH68ccfZTab1blz57uWZTQarZL1YsWKKXfu3JbEee/evYqPj1eLFi2s3qOwsDAlJibq8OHDqlmz5j1jBgCARBUA8FBo3bq1li5dqu3bt6tx48aKiopSeHi48uTJY3MZcXFx2rp1q9q1a6fr169b9tevX1+bN2/Wa6+9Jk9Pz3QtpgcPHrT8v4+PjypWrJiu7NvjiIuLU7ly5dKdFxgYqNjY2LvGGRQUJOlm9+FSpUrd9dyFCxfqnXfeUf/+/VWrVi35+vrqzz//1Ouvv25JWq9cuSJ3d/d7dpHOnTu31bhWSfLw8LCUk9YFuEOHDhlef/bsg52cCwCQfZGoAgAeClWrVlXRokW1fv16BQYG6tSpU3r11VczVcamTZuUnJysVatWadWqVemOf//992rWrFmGxzLLz89PMTEx6fbHxMTokUceueu1NWrUkMFg0Pbt2y0tv3eyceNGhYeH66WXXrLsO3LkiNU5/v7+SklJUUxMTKbG897Oz89P0s0ldQoVKpTueLFixewuGwCQs5CoAgAeCgaDQa1bt9aiRYuUO3du+fv72zTZ0K3WrVunokWL6u2330537MUXX9S6devUrFmzDFtMM6tatWpauXKlYmNjLQne0aNHdfDgQXXq1Mly3q0tlmmKFCmi5s2ba/ny5erUqZPKli1r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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# make previous plot log scale\n", + "plt.figure(figsize=(10, 6))\n", + "ax = sns.barplot(x=\"Dataset\", y=\"LoadingTime(s)\", hue=\"Format\", data=df)\n", + "plt.yscale('log')\n", + "plt.title('Loading Time of Different Formats for Open-X Datasets')\n", + "plt.xlabel('Dataset')\n", + "plt.ylabel('Log-Scale Loading Time (s)')\n", + "plt.show()\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "39ca78d9", + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.2" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/benchmarks/openx.py b/benchmarks/openx.py index 11954d8..d396220 100644 --- a/benchmarks/openx.py +++ b/benchmarks/openx.py @@ -15,8 +15,8 @@ DEFAULT_EXP_DIR = "/home/kych/datasets/fog_x/" DEFAULT_NUMBER_OF_TRAJECTORIES = 64 DEFAULT_DATASET_NAMES = ["berkeley_autolab_ur5", "bridge", "berkeley_cable_routing", "nyu_door_opening_surprising_effectiveness"] -DEFAULT_NUMBER_OF_TRAJECTORIES = 1 -DEFAULT_DATASET_NAMES = ["berkeley_autolab_ur5"] +# DEFAULT_NUMBER_OF_TRAJECTORIES = 1 +# DEFAULT_DATASET_NAMES = ["berkeley_autolab_ur5"] CACHE_DIR = "/tmp/fog_x/cache/" diff --git a/fog_x/trajectory.py b/fog_x/trajectory.py index 79f1585..8b49d16 100644 --- a/fog_x/trajectory.py +++ b/fog_x/trajectory.py @@ -171,13 +171,14 @@ def load(self, mode = "cache"): self.trajectory_data = self._load_from_cache() else: logger.info(f"Loading the container file {self.path}") - self.trajectory_data = self._load_from_container_to_h5() + self.trajectory_data = self._load_from_container(save_to_cache=True) elif mode == "no_cache": logger.info(f"Loading the container file {self.path} without cache") - self.trajectory_data = self._load_from_container_no_cache() + # self.trajectory_data = self._load_from_container_to_h5() + self.trajectory_data = self._load_from_container(save_to_cache=False) else: logger.info(f"No option provided. Force loading from container file {self.path}") - self.trajectory_data = self._load_from_container_to_h5() + self.trajectory_data = self._load_from_container(save_to_cache=False) return self.trajectory_data @@ -452,9 +453,17 @@ def _load_from_container_to_h5(self): h5_cache = h5py.File(self.cache_file_name, "r") return h5_cache - def _load_from_container_no_cache(self): + def _load_from_container(self, save_to_cache: bool = True): """ Load the container file with the entire VLA trajectory. + + args: + save_to_cache: save the decoded data to the cache file + + returns: + h5_cache: h5py file with the decoded data + or + dict: dictionary with the decoded data Workflow: - Get schema of the container file. @@ -462,19 +471,25 @@ def _load_from_container_no_cache(self): - Decode frame by frame and store in the preallocated memory. """ - container = av.open(self.path, mode="r", format="matroska") - streams = container.streams - - - def _get_length_of_stream(stream): + def _get_length_of_stream(container, stream): """ Get the length of the stream. """ length = 0 for packet in container.demux([stream]): - length += 1 + if packet.dts is not None: + length += 1 return length + container_to_get_length = av.open(self.path, mode="r", format="matroska") + streams = container_to_get_length.streams + length = _get_length_of_stream(container_to_get_length, streams[0]) + container_to_get_length.close() + + container = av.open(self.path, mode="r", format="matroska") + streams = container.streams + + # Dictionary to store preallocated numpy arrays np_cache = {} @@ -492,7 +507,6 @@ def _get_length_of_stream(stream): f"Creating a cache for {feature_name} with shape {feature_type.shape}" ) - length = _get_length_of_stream(stream) # Allocate numpy array with shape [None, X, Y, Z] where X, Y, Z are feature dimensions if feature_type.dtype == "string": np_cache[feature_name] = np.empty((length,) + feature_type.shape, dtype=object) @@ -535,10 +549,22 @@ def _get_length_of_stream(stream): d_feature_length[feature_name] += 1 else: logger.debug(f"Skipping empty packet: {packet} for {feature_name}") - + print(f"Length of the stream {feature_name} is {d_feature_length[feature_name]}") container.close() - - return np_cache + + if save_to_cache: + # create and save it to be hdf5 file + h5_cache = h5py.File(self.cache_file_name, "w") + for feature_name, data in np_cache.items(): + if data.dtype == object: + continue # TODO + else: + h5_cache.create_dataset(feature_name, data=data) + h5_cache.close() + h5_cache = h5py.File(self.cache_file_name, "r") + return h5_cache + else: + return np_cache def _transcode_pickled_images(self, ending_timestamp: Optional[int] = None):