diff --git a/day2_hpcenv/1_welcome+login/1-explore-hpc-environment.ipynb b/day2_hpcenv/1_welcome+login/1-explore-hpc-environment.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..e5d114fbe5739e51e6f1a7b3ee0051790152d676
--- /dev/null
+++ b/day2_hpcenv/1_welcome+login/1-explore-hpc-environment.ipynb
@@ -0,0 +1,2828 @@
+{
+ "cells": [
+  {
+   "attachments": {
+    "67258d94-84e6-4a0c-ae8f-c74332ec082e.jpg": {
+     "image/jpeg": "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"
+    }
+   },
+   "cell_type": "markdown",
+   "id": "exclusive-nursery",
+   "metadata": {
+    "tags": [],
+    "toc-hr-collapsed": false
+   },
+   "source": [
+    "![jsc-logo.jpg](attachment:67258d94-84e6-4a0c-ae8f-c74332ec082e.jpg)\n",
+    "Author: [Jens Henrik Göbbert](mailto:j.goebbert@fz-juelich.de)\n",
+    "------------------------------------"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "06640968-3b59-41f9-862b-96405f5661ec",
+   "metadata": {},
+   "source": [
+    "# Supercomputing with JupyterLab - Tips & Tricks\n",
+    "\n",
+    "This is the first time you are using JupyterLab on an HPC system? Let us show you some tips & tricks.\n",
+    "\n",
+    "This notebook might be special to the environment at Juelich Supercomputing Centre, Forschungszentrum Juelich, Germany.\n",
+    "\n",
+    "-------------------------"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "cec8e658-1cb0-4627-baae-9e2791bdeddc",
+   "metadata": {},
+   "source": [
+    "#### Exercise 0:\n",
+    "Are you really running on a compute node?"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "id": "53b2d588-35ed-4840-aee5-796f6cad62cd",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "jrc0437\n"
+     ]
+    }
+   ],
+   "source": [
+    "!hostname"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "prerequisite-holder",
+   "metadata": {},
+   "source": [
+    "#### Exercise 1:\n",
+    "Explore the directory $JUPYTER_LOG_DIR"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "id": "1f2e2bab-f792-451a-a403-27acb695d793",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "/p/scratch/training2211/unicore-jobs/16657dd3-7c9f-415d-bbfb-18618d9bcde0\n"
+     ]
+    }
+   ],
+   "source": [
+    "!echo $JUPYTER_LOG_DIR"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "id": "93420f41-50e9-47f5-893d-3f4e068a9e09",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "total 16437\n",
+      "-rw-r--r--  1 goebbert1 training2211 254776 Apr  5 18:04 stderr\n",
+      "-rw-r--r--  1 goebbert1 training2211    287 Apr  5 18:01 stdout\n",
+      "drwx--S---  2 goebbert1 training2211  16384 Apr  5 17:56 .\n",
+      "-rw-------  1 goebbert1 training2211    496 Apr  5 17:56 .validate_token.sh\n",
+      "-rw-------  1 goebbert1 training2211   2433 Apr  5 17:56 .config.py\n",
+      "-rwxrwxr--  1 goebbert1 training2211    566 Apr  5 17:56 bss_submit_1649174192461\n",
+      "-rwxrwxr--  1 goebbert1 training2211   2935 Apr  5 17:56 UNICORE_Job_1649174192461\n",
+      "-rw-------  1 goebbert1 training2211     28 Apr  5 17:56 .pre_start.sh\n",
+      "-rw-------  1 goebbert1 training2211   9993 Apr  5 17:56 .start.sh\n",
+      "-rw-------  1 goebbert1 training2211     32 Apr  5 17:56 .jupyter.token\n",
+      "drwxrwsr-x 16 schuller1 training2211   4096 Apr  5 17:56 ..\n"
+     ]
+    }
+   ],
+   "source": [
+    "!ls -lat $JUPYTER_LOG_DIR"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "9362c202-f833-4eb6-b9e4-ae3b624d848a",
+   "metadata": {},
+   "source": [
+    "#### Exercise 2:\n",
+    "Explore `$JUPYTER_LOG_DIR/.start` file"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "id": "1724ac14-940b-4e19-8623-57e2f64f682f",
+   "metadata": {
+    "scrolled": true,
+    "tags": []
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "#!/bin/bash\n",
+      "_term() {\n",
+      "  echo \"Caught SIGTERM signal!\"\n",
+      "  kill -TERM \"$child\" 2>/dev/null\n",
+      "}\n",
+      "trap _term SIGTERM\n",
+      "\n",
+      "# Get token via file, so it's not exposed in the process arguments\n",
+      "export JUPYTERHUB_API_TOKEN=$(cat .jupyter.token)\n",
+      "export JPY_API_TOKEN=$(cat .jupyter.token)\n",
+      "\n",
+      "# Switch to jupyter-server\n",
+      "export JUPYTERHUB_SINGLEUSER_APP=\"jupyter_server.serverapp.ServerApp\"\n",
+      "\n",
+      "# Log debug information\n",
+      "echo $SYSTEMNAME\n",
+      "\n",
+      "# Get current directory\n",
+      "DIR=\"$( cd \"$( dirname \"${BASH_SOURCE[0]}\" )\" >/dev/null 2>&1 && pwd )\"\n",
+      "# Set default root directory for JupyterLab\n",
+      "export JUPYTER_JSC_HOME=${HOME}\n",
+      "# Python package black needs this directory\n",
+      "if [[ ! -d ${HOME}/.cache/black/19.3b0 ]]; then\n",
+      "    mkdir -p ${HOME}/.cache/black/19.3b0\n",
+      "fi\n",
+      "\n",
+      "echo \"Running on $HOSTNAME\"\n",
+      "# Get hostname to send information to JupyterHub.\n",
+      "HOSTNAMES=$(hostname -s)\n",
+      "if [[ $HOSTNAMES == \"jrlogin\"* ]]; then\n",
+      "    HOSTNAMEI=${HOSTNAME}\n",
+      "else\n",
+      "    HOSTNAMEI=${HOSTNAMES}i\n",
+      "fi\n",
+      "\n",
+      "# JupyterHub will create a ssh tunnel between JupyterHub and this node to communicate\n",
+      "curl -X \"POST\" -H \"Authorization: token ${JUPYTERHUB_API_TOKEN}\" -H \"uuidcode: ${JUPYTER_JSC_STARTUUID}\" -H \"Content-Type: application/json\" --data '{\"progress\": 60, \"failed\": false, \"message\": \"\", \"html_message\": \"Preparing environment on '\"${HOSTNAMES}\"' ...\"}' http://${JUPYTER_JSC_REMOTENODE}:${JUPYTER_JSC_REMOTEPORT}/hub/api/${JUPYTERHUB_STATUS_URL} &> /dev/null\n",
+      "\n",
+      "# Set some default environment variables\n",
+      "export LC_ALL=en_US.UTF-8\n",
+      "export JUPYTER_LOG_DIR=${DIR}\n",
+      "export JUPYTER_STDOUT=${JUPYTER_LOG_DIR}/stderr\n",
+      "PYTHONPATH=\"\"\n",
+      "\n",
+      "unset TMP_PORT\n",
+      "[[ -x /bin/python3 ]] && TMP_PORT=$(/bin/python3 -c 'import socket; s=socket.socket(); s.bind((\"\", 0)); print(s.getsockname()[1]); s.close()')\n",
+      "if [[ -n \"$TMP_PORT\" ]]; then JUPYTER_JSC_PORT=${TMP_PORT}; else echo \"Could not request a free port -> taking a random one\"; fi\n",
+      "\n",
+      "curl -X \"POST\" -H \"Authorization: token ${JUPYTERHUB_API_TOKEN}\" -H \"uuidcode: ${JUPYTER_JSC_STARTUUID}\" -H \"Content-Type: application/json\" --data '{\"progress\": 65, \"failed\": false, \"message\": \"\", \"html_message\": \"  ... port-forwarding established\"}' http://${JUPYTER_JSC_REMOTENODE}:${JUPYTER_JSC_REMOTEPORT}/hub/api/tunneling/${JUPYTERHUB_USER}/${JUPYTERHUB_SERVER_NAME}/${JUPYTER_JSC_STARTUUID}/${HOSTNAMEI}/${JUPYTER_JSC_PORT} &> /dev/null\n",
+      "\n",
+      "# If we cannot send updates to JupyterHub something went wrong. Let's try to cancel the script here.\n",
+      "if [[ $? -ne 0 ]]; then\n",
+      "    echo \"Could not notify JupyterHub. Send cancel with public URL.\"\n",
+      "    curl -X \"POST\" -H \"Authorization: token ${JUPYTERHUB_API_TOKEN}\" -H \"uuidcode: ${JUPYTER_JSC_STARTUUID}\" -H \"Content-Type: application/json\" --data '{\"error\": \"Could not reach JupyterLab\"}' https://jupyter-jsc.fz-juelich.de${JUPYTERHUB_BASE_URL}hub/api/${JUPYTERHUB_CANCEL_URL} &> /dev/null\n",
+      "fi\n",
+      "\n",
+      "sed -i -e \"s|_port_|${JUPYTER_JSC_PORT}|g\" -e \"s|_home_|${JUPYTER_JSC_HOME}|g\" -e \"s|_servername_|${JUPYTERHUB_SERVER_NAME}|g\" -e \"s|_username_|${JUPYTERHUB_USER}|g\" -e \"s|_remotenode_|${JUPYTER_JSC_REMOTENODE}|g\" -e \"s|_remoteport_|${JUPYTER_JSC_REMOTEPORT}|g\" ${DIR}/.config.py\n",
+      "curl -X \"POST\" -H \"Authorization: token ${JUPYTERHUB_API_TOKEN}\" -H \"uuidcode: ${JUPYTER_JSC_STARTUUID}\" -H \"Content-Type: application/json\" --data '{\"progress\": 70, \"failed\": false, \"message\": \"\", \"html_message\": \"  ... request-specific configuration generated\"}' http://${JUPYTER_JSC_REMOTENODE}:${JUPYTER_JSC_REMOTEPORT}/hub/api/${JUPYTERHUB_STATUS_URL} &> /dev/null\n",
+      "\n",
+      "# Quota Check:\n",
+      "if [[ ! -f ${HOME}/.${JUPYTER_JSC_STARTUUID} ]]; then\n",
+      "    touch ${HOME}/.${JUPYTER_JSC_STARTUUID}\n",
+      "    EC1=$?\n",
+      "    echo \"Quota Check ${JUPYTER_JSC_STARTUUID}\" >> ${HOME}/.${JUPYTER_JSC_STARTUUID}\n",
+      "    EC2=$?\n",
+      "    if [[ $EC1 -ne 0 || $EC1 -ne 0 ]]; then\n",
+      "        curl -X \"POST\" -H \"Authorization: token ${JUPYTERHUB_API_TOKEN}\" -H \"uuidcode: ${JUPYTER_JSC_STARTUUID}\" -H \"Content-Type: application/json\" --data '{\"error\": \"Disk quota exceeded in $HOME. You have to clean up your home directory before you can start a JupyterLab.\", \"detail_error\": \"Jupyter-JSC tried to create a testfile in ${HOME} and failed. Job directory may contain further information: '\"${DIR}\"'\"}' http://${JUPYTER_JSC_REMOTENODE}:${JUPYTER_JSC_REMOTEPORT}${JUPYTERHUB_BASE_URL}hub/api/${JUPYTERHUB_CANCEL_URL} &> /dev/null\n",
+      "        rm ${HOME}/.${JUPYTER_JSC_STARTUUID}\n",
+      "        exit 0\n",
+      "    fi\n",
+      "    rm ${HOME}/.${JUPYTER_JSC_STARTUUID}\n",
+      "    curl -X \"POST\" -H \"Authorization: token ${JUPYTERHUB_API_TOKEN}\" -H \"uuidcode: ${JUPYTER_JSC_STARTUUID}\" -H \"Content-Type: application/json\" --data '{\"progress\": 75, \"failed\": false, \"message\": \"\", \"html_message\": \"  ... disk quota in $HOME checked\"}' http://${JUPYTER_JSC_REMOTENODE}:${JUPYTER_JSC_REMOTEPORT}/hub/api/${JUPYTERHUB_STATUS_URL} &> /dev/null\n",
+      "fi\n",
+      "\n",
+      "# Hook to load customized environments before starting JupyterLab\n",
+      "if [[ -f ${HOME}/.jupyter/pre_jupyter-jsc.sh ]]; then\n",
+      "    curl -X \"POST\" -H \"Authorization: token ${JUPYTERHUB_API_TOKEN}\" -H \"uuidcode: ${JUPYTER_JSC_STARTUUID}\" -H \"Content-Type: application/json\" --data '{\"progress\": 78, \"failed\": false, \"message\": \"\", \"html_message\": \"  ... loading customized environment from $HOME/.jupyter/pre_jupyter-jsc.sh\"}' http://${JUPYTER_JSC_REMOTENODE}:${JUPYTER_JSC_REMOTEPORT}/hub/api/${JUPYTERHUB_STATUS_URL} &> /dev/null\n",
+      "    cat ${HOME}/.jupyter/pre_jupyter-jsc.sh\n",
+      "    source ${HOME}/.jupyter/pre_jupyter-jsc.sh\n",
+      "fi\n",
+      "\n",
+      "# Hook to load customized modules before starting JupyterLab\n",
+      "if [[ -f ${HOME}/.jupyter/start_jupyter-jsc.sh ]]; then\n",
+      "    curl -X \"POST\" -H \"Authorization: token ${JUPYTERHUB_API_TOKEN}\" -H \"uuidcode: ${JUPYTER_JSC_STARTUUID}\" -H \"Content-Type: application/json\" --data '{\"progress\": 80, \"failed\": false, \"message\": \"\", \"html_message\": \"  ... loading customized environment from $HOME/.jupyter/start_jupyter-jsc.sh\"}' http://${JUPYTER_JSC_REMOTENODE}:${JUPYTER_JSC_REMOTEPORT}/hub/api/${JUPYTERHUB_STATUS_URL} &> /dev/null\n",
+      "    source ${HOME}/.jupyter/start_jupyter-jsc.sh\n",
+      "else\n",
+      "    module purge\n",
+      "    module use $OTHERSTAGES\n",
+      "    module load Stages/2020\n",
+      "    module load GCCcore/.10.3.0\n",
+      "    module load JupyterCollection/2021.3.2\n",
+      "\n",
+      "    echo \"checking for GPU\"\n",
+      "    lspci -k | grep -A 2 -i \"NVIDIA\" | grep \"Kernel driver in use:\" | grep \"nvidia\"\n",
+      "    if [ $? -eq 0 ]; then\n",
+      "        module load JupyterExtension-nvdashboard/0.6.0-2021.3.2\n",
+      "    fi\n",
+      "\n",
+      "    curl -X \"POST\" -H \"Authorization: token ${JUPYTERHUB_API_TOKEN}\" -H \"uuidcode: ${JUPYTER_JSC_STARTUUID}\" -H \"Content-Type: application/json\" --data '{\"progress\": 80, \"failed\": false, \"message\": \"\", \"html_message\": \"  ... modules loaded for JupyterCollection/2021.3.2\"}' http://${JUPYTER_JSC_REMOTENODE}:${JUPYTER_JSC_REMOTEPORT}/hub/api/${JUPYTERHUB_STATUS_URL} &> /dev/null\n",
+      "fi\n",
+      "\n",
+      "# Add system specific JupyterLab configuration to config file\n",
+      "if [[ -f ${EBROOTJUPYTER}/etc/jupyter/jupyter_notebook_config.py ]]; then\n",
+      "    cat ${EBROOTJUPYTER}/etc/jupyter/jupyter_notebook_config.py >> ${DIR}/.config.py\n",
+      "    for path in ${JUPYTER_EXTRA_LABEXTENSIONS_PATH//:/$'\\n'}; do\n",
+      "        echo \"c.LabServerApp.extra_labextensions_path.append('$path')\" >> ${JUPYTER_LOG_DIR}/.config.py\n",
+      "    done\n",
+      "fi\n",
+      "\n",
+      "# Inform user if root directory for JupyterLab is not $HOME\n",
+      "if [[ ! $JUPYTER_JSC_HOME == $HOME ]]; then\n",
+      "    curl -X \"POST\" -H \"Authorization: token ${JUPYTERHUB_API_TOKEN}\" -H \"uuidcode: ${JUPYTER_JSC_STARTUUID}\" -H \"Content-Type: application/json\" --data '{\"progress\": 85, \"failed\": false, \"message\": \"\", \"html_message\": \"  ... use $JUPYTER_JSC_HOME as starting directory.\"}' http://${JUPYTER_JSC_REMOTENODE}:${JUPYTER_JSC_REMOTEPORT}/hub/api/${JUPYTERHUB_STATUS_URL} &> /dev/null\n",
+      "fi\n",
+      "\n",
+      "# Defined via Jupyter-JSC configuration\n",
+      "if [[ \"0\" == \"1\" ]]; then\n",
+      "    export JUPYTER_PATH=$PROJECT/.local/share/jupyter:$JUPYTER_PATH\n",
+      "fi\n",
+      "\n",
+      "# Switch to JupyterLab root directory\n",
+      "cd ${JUPYTER_JSC_HOME}\n",
+      "# Inform user if a customized start command is used\n",
+      "if [[ -n $JUPYTERJSC_USER_CMD ]]; then\n",
+      "    curl -X \"POST\" -H \"Authorization: token ${JUPYTERHUB_API_TOKEN}\" -H \"uuidcode: ${JUPYTER_JSC_STARTUUID}\" -H \"Content-Type: application/json\" --data '{\"progress\": 90, \"failed\": false, \"message\": \"\", \"html_message\": \"Starting JupyterLab with custom command $JUPYTERJSC_USER_CMD ('\"$JUPYTERJSC_USER_CMD\"'). Waiting for an answer. This may take a few seconds.\"}' http://${JUPYTER_JSC_REMOTENODE}:${JUPYTER_JSC_REMOTEPORT}/hub/api/${JUPYTERHUB_STATUS_URL} &> /dev/null\n",
+      "    echo $JUPYTERJSC_USER_CMD\n",
+      "    timeout 30d $JUPYTERJSC_USER_CMD &\n",
+      "else\n",
+      "    curl -X \"POST\" -H \"Authorization: token ${JUPYTERHUB_API_TOKEN}\" -H \"uuidcode: ${JUPYTER_JSC_STARTUUID}\" -H \"Content-Type: application/json\" --data '{\"progress\": 90, \"failed\": false, \"message\": \"\", \"html_message\": \"Starting JupyterLab. Waiting for an answer. This may take a few seconds.\"}' http://${JUPYTER_JSC_REMOTENODE}:${JUPYTER_JSC_REMOTEPORT}/hub/api/${JUPYTERHUB_STATUS_URL} &> /dev/null\n",
+      "    timeout 30d jupyterhub-singleuser --debug --config ${DIR}/.config.py &\n",
+      "fi\n",
+      "child=$!\n",
+      "\n",
+      "# Add script to validate token\n",
+      "# Not the nicest solution yet, but the one with the least update requirements for the backend image\n",
+      "echo -n \"IyEvYmluL2Jhc2gKCkpMQUJfUElEPSR7MX0KCiMgR2V0IGN1cnJlbnQgZGlyZWN0b3J5CkRJUj0iJCggY2QgIiQoIGRpcm5hbWUgIiR7QkFTSF9TT1VSQ0VbMF19IiApIiA+L2Rldi9udWxsIDI+JjEgJiYgcHdkICkiCgpUT0tFTj0kKGNhdCAke0RJUn0vLmp1cHl0ZXIudG9rZW4pCgoKd2hpbGUgdHJ1ZTsKZG8KICAgIEhUVFBDT0RFPSQoY3VybCAtLXdyaXRlLW91dCAnJXtodHRwX2NvZGV9JyAtLXNpbGVudCAtLW91dHB1dCAvZGV2L251bGwgLVggIkdFVCIgLUggIkF1dGhvcml6YXRpb246IHRva2VuICR7VE9LRU59IiBodHRwOi8vX3JlbW90ZW5vZGVfOl9yZW1vdGVwb3J0Xy9odWIvYXBpL3VzZXIpCiAgICBlY2hvICIkKGRhdGUpIC0gVmFsaWRhdGUgdG9rZW4gLSBSZXN1bHQ6ICR7SFRUUENPREV9IgogICAgaWYgW1sgJHtIVFRQQ09ERX0gLWVxIDQwMyBdXTsgdGhlbgogICAgICAgIGtpbGwgLTkgJEpMQUJfUElECiAgICAgICAgZXhpdAogICAgZmkKICAgIHNsZWVwIDMwMApkb25lCg==\" | base64 -d > ${DIR}/.validate_token.sh\n",
+      "sed -i -e \"s|_remotenode_|${JUPYTER_JSC_REMOTENODE}|g\" -e \"s|_remoteport_|${JUPYTER_JSC_REMOTEPORT}|g\" ${DIR}/.validate_token.sh\n",
+      "/bin/bash ${DIR}/.validate_token.sh ${child} &\n",
+      "token_pid=$!\n",
+      "\n",
+      "wait $child\n",
+      "kill -9 $token_pid\n"
+     ]
+    }
+   ],
+   "source": [
+    "!cat $JUPYTER_LOG_DIR/.start.sh"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "2fb3f134-d3ee-406c-ab93-7c00beee3f5a",
+   "metadata": {},
+   "source": [
+    "##### Exporting special variables\n",
+    "`export JUPYTERHUB_API_TOKEN=$(cat .jupyter.token)`  \n",
+    "`export JUPYTER_JSC_HOME=${HOME}`  "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "301aa035-b05b-48f2-af26-ae6e4abbc1d5",
+   "metadata": {},
+   "source": [
+    "##### Reporting startup progress\n",
+    "`curl -X \"POST\" -H \"Authorization: token ${JUPYTERHUB_API_TOKEN}\"` -> `progress: 0%..100%\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "e31533a3-3b80-48a6-a40c-de22d57aa8a2",
+   "metadata": {},
+   "source": [
+    "##### Load Jupyter modules\n",
+    "```bash\n",
+    "if [[ -f ${HOME}/.jupyter/start_jupyter-jsc.sh ]]; then\n",
+    "    source ${HOME}/.jupyter/start_jupyter-jsc.sh\n",
+    "else\n",
+    "    module purge\n",
+    "    module use $OTHERSTAGES\n",
+    "    module load Stages/2020\n",
+    "    module load GCCcore/.10.3.0\n",
+    "    module load JupyterCollection/2021.3.2\n",
+    "fi\n",
+    "```"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "45f99c0f-9116-41c1-b891-9162b51bcc48",
+   "metadata": {},
+   "source": [
+    "##### Start Jupyter\n",
+    "\n",
+    "```bash\n",
+    "if [[ -n $JUPYTERJSC_USER_CMD ]]; then\n",
+    "    timeout 30d $JUPYTERJSC_USER_CMD &\n",
+    "else\n",
+    "    timeout 30d jupyterhub-singleuser --debug --config ${DIR}/.config.py &\n",
+    "fi\n",
+    "```"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "3cc30f5c-a926-4549-8c0d-39db26c3c1bb",
+   "metadata": {},
+   "source": [
+    "#### Exercise 3:\n",
+    "Explore `$JUPYTER_LOG_DIR/stderr`"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "id": "68ba6298-7e7d-4907-8357-46d908499f4d",
+   "metadata": {
+    "scrolled": true,
+    "tags": []
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "The following modules were not unloaded:\n",
+      "  (Use \"module --force purge\" to unload all):\n",
+      "\n",
+      "  1) Stages/2022\n",
+      "\n",
+      "Due to MODULEPATH changes, the following have been reloaded:\n",
+      "  1) Stages/2022\n",
+      "\n",
+      "\n",
+      "  Preparing the environment for use of requested stage ( 2020 ).\n",
+      "\n",
+      "\n",
+      "The following have been reloaded with a version change:\n",
+      "  1) Stages/2022 => Stages/2020\n",
+      "\n",
+      "[D 2022-04-05 17:56:56.130 SingleUserNotebookApp application:174] Searching ['/p/home/jusers/goebbert1/jureca', '/p/home/jusers/goebbert1/jureca/.jupyter', '/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter', '/p/home/jusers/goebbert1/jureca/.jupyter', '/p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0/etc/jupyter', '/usr/local/etc/jupyter', '/etc/jupyter'] for config files\n",
+      "[D 2022-04-05 17:56:56.131 SingleUserNotebookApp application:731] Looking for jupyter_config in /etc/jupyter\n",
+      "[D 2022-04-05 17:56:56.131 SingleUserNotebookApp application:731] Looking for jupyter_config in /usr/local/etc/jupyter\n",
+      "[D 2022-04-05 17:56:56.131 SingleUserNotebookApp application:731] Looking for jupyter_config in /p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0/etc/jupyter\n",
+      "[D 2022-04-05 17:56:56.131 SingleUserNotebookApp application:731] Looking for jupyter_config in /p/home/jusers/goebbert1/jureca/.jupyter\n",
+      "[D 2022-04-05 17:56:56.131 SingleUserNotebookApp application:731] Looking for jupyter_config in /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter\n",
+      "[D 2022-04-05 17:56:56.132 SingleUserNotebookApp application:731] Looking for jupyter_config in /p/home/jusers/goebbert1/jureca/.jupyter\n",
+      "[D 2022-04-05 17:56:56.132 SingleUserNotebookApp application:731] Looking for jupyter_config in /p/home/jusers/goebbert1/jureca\n",
+      "[D 2022-04-05 17:56:56.133 SingleUserNotebookApp application:731] Looking for .config in /p/scratch/training2211/unicore-jobs/16657dd3-7c9f-415d-bbfb-18618d9bcde0\n",
+      "[D 2022-04-05 17:56:56.134 SingleUserNotebookApp application:753] Loaded config file: /p/scratch/training2211/unicore-jobs/16657dd3-7c9f-415d-bbfb-18618d9bcde0/.config.py\n",
+      "[D 2022-04-05 17:56:56.135 SingleUserNotebookApp application:326] Config changed: {'FileContentsManager': {'delete_to_trash': False}, 'JupyterApp': {'config_file': '/p/scratch/training2211/unicore-jobs/16657dd3-7c9f-415d-bbfb-18618d9bcde0/.config.py'}, 'SingleUserNotebookApp': {'log_level': 'DEBUG'}, 'ExtensionApp': {'log_level': 'DEBUG'}, 'ServerApp': {'ip': '0.0.0.0', 'root_dir': '/p/home/jusers/goebbert1/jureca', 'default_url': '/lab/workspaces/jureca', 'port': 41441, 'terminado_settings': {'shell_command': ['/bin/bash']}, 'tornado_settings': {'websocket_max_message_size': 1073741824}, 'max_buffer_size': 1073741824, 'max_body_size': 1073741824}, 'ContentsManager': {'allow_hidden': True}, 'SingleUserNotebookAppMixin': {'hub_api_url': 'http://jrlogin08i:25470/hub/api', 'hub_activity_url': 'http://jrlogin08i:25470/hub/api/users/j.goebbert@fz-juelich.de/activity'}, 'GitLabConfig': {'url': 'https://gitlab.version.fz-juelich.de', 'validate_cert': True}, 'GitHubConfig': {'url': 'https://github.com', 'validate_cert': True}, 'JupyterLabIFrame': {'welcome': 'http://www.fz-juelich.de/jsc'}, 'FileCheckpoints': {'checkpoint_permissions': 436, 'restore_permissions': 420, 'checkpoint_dir_umask': 2}, 'ResourceUseDisplay': {'mem_limit': 540577177600, 'mem_warning_threshold': 0.1, 'track_cpu_percent': True, 'cpu_limit': 256, 'cpu_warning_threshold': 0.1}, 'LabServerApp': {'extra_labextensions_path': <LazyConfigValue {'extend': ['/p/software/jurecadc/stages/2020/software/JupyterExtension-nvdashboard/0.6.0-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/labextensions']}>}}\n",
+      "[D 2022-04-05 17:56:56.137 SingleUserNotebookApp config_manager:97] Paths used for configuration of jupyter_server_config: \n",
+      "    \t/etc/jupyter/jupyter_server_config.json\n",
+      "[D 2022-04-05 17:56:56.137 SingleUserNotebookApp config_manager:97] Paths used for configuration of jupyter_server_config: \n",
+      "    \t/usr/local/etc/jupyter/jupyter_server_config.json\n",
+      "[D 2022-04-05 17:56:56.137 SingleUserNotebookApp config_manager:97] Paths used for configuration of jupyter_server_config: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0/etc/jupyter/jupyter_server_config.json\n",
+      "[D 2022-04-05 17:56:56.138 SingleUserNotebookApp config_manager:97] Paths used for configuration of jupyter_server_config: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/jupyter_server_config.json\n",
+      "[D 2022-04-05 17:56:56.138 SingleUserNotebookApp config_manager:97] Paths used for configuration of jupyter_server_config: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_server_config.d/dask_labextension.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_server_config.d/jupyter-lsp-jupyter-server.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_server_config.d/jupyter-server-proxy-jupyterserverextension.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_server_config.d/jupyter_resource_usage.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_server_config.d/jupyter_server_mathjax.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_server_config.d/jupyterlab.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_server_config.d/jupyterlab_allowhidden.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_server_config.d/jupyterlab_code_formatter.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_server_config.d/jupyterlab_git.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_server_config.d/jupyterlab_gitlab.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_server_config.d/jupyterlab_iframe.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_server_config.d/jupyterlab_latex.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_server_config.d/jupyterlab_spellchecker.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_server_config.d/nbclassic.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_server_config.d/nbdime.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_server_config.d/voila.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_server_config.json\n",
+      "[D 2022-04-05 17:56:56.171 SingleUserNotebookApp config_manager:97] Paths used for configuration of jupyter_server_config: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/jupyter_server_config.json\n",
+      "/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/lib/python3.8/site-packages/jupyter_lsp/types.py:193: FutureWarning: The alias `_()` will be deprecated. Use `_i18n()` instead.\n",
+      "  nodejs = Unicode(help=_(\"path to nodejs executable\")).tag(config=True)\n",
+      "/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/lib/python3.8/site-packages/jupyter_lsp/types.py:195: FutureWarning: The alias `_()` will be deprecated. Use `_i18n()` instead.\n",
+      "  node_roots = List_([], help=_(\"absolute paths in which to seek node_modules\")).tag(\n",
+      "/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/lib/python3.8/site-packages/jupyter_lsp/types.py:200: FutureWarning: The alias `_()` will be deprecated. Use `_i18n()` instead.\n",
+      "  [], help=_(\"additional absolute paths to seek node_modules first\")\n",
+      "/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/lib/python3.8/site-packages/jupyter_lsp/manager.py:41: FutureWarning: The alias `_()` will be deprecated. Use `_i18n()` instead.\n",
+      "  help=_(\"extra language server specs, keyed by implementation, from conf.d\"),\n",
+      "/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/lib/python3.8/site-packages/jupyter_lsp/manager.py:46: FutureWarning: The alias `_()` will be deprecated. Use `_i18n()` instead.\n",
+      "  help=_(\"a dict of language server specs, keyed by implementation\"),\n",
+      "/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/lib/python3.8/site-packages/jupyter_lsp/manager.py:52: FutureWarning: The alias `_()` will be deprecated. Use `_i18n()` instead.\n",
+      "  True, help=_(\"try to find known language servers in sys.prefix (and elsewhere)\")\n",
+      "/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/lib/python3.8/site-packages/jupyter_server_mathjax/app.py:40: FutureWarning: The alias `_()` will be deprecated. Use `_i18n()` instead.\n",
+      "  help=_(\"\"\"The MathJax.js configuration file that is to be used.\"\"\"),\n",
+      "[I 2022-04-05 17:56:59.274 SingleUserNotebookApp manager:345] dask_labextension | extension was successfully linked.\n",
+      "[I 2022-04-05 17:56:59.274 SingleUserNotebookApp manager:345] jupyter_lsp | extension was successfully linked.\n",
+      "[I 2022-04-05 17:56:59.274 SingleUserNotebookApp manager:345] jupyter_resource_usage | extension was successfully linked.\n",
+      "[D 2022-04-05 17:56:59.280 MathJaxExtension] Config changed: {'FileContentsManager': {'delete_to_trash': False}, 'JupyterApp': {'config_file': '/p/scratch/training2211/unicore-jobs/16657dd3-7c9f-415d-bbfb-18618d9bcde0/.config.py'}, 'SingleUserNotebookApp': {'log_level': 'DEBUG'}, 'ExtensionApp': {'log_level': 'DEBUG'}, 'ServerApp': {'ip': '0.0.0.0', 'root_dir': '/p/home/jusers/goebbert1/jureca', 'default_url': '/lab/workspaces/jureca', 'port': 41441, 'terminado_settings': {'shell_command': ['/bin/bash']}, 'tornado_settings': {'websocket_max_message_size': 1073741824}, 'max_buffer_size': 1073741824, 'max_body_size': 1073741824, 'jpserver_extensions': <LazyConfigValue {'update': {'dask_labextension': True, 'jupyter_lsp': True, 'jupyter_resource_usage': True, 'jupyter_server_mathjax': True, 'jupyter_server_proxy': True, 'jupyterlab': True, 'jupyterlab_code_formatter': True, 'jupyterlab_git': True, 'jupyterlab_gitlab': True, 'jupyterlab_iframe': True, 'jupyterlab_latex': True, 'jupyterlab_spellchecker': True, 'nbclassic': True, 'nbdime': True, 'voila.server_extension': True}}>}, 'ContentsManager': {'allow_hidden': True}, 'SingleUserNotebookAppMixin': {'hub_api_url': 'http://jrlogin08i:25470/hub/api', 'hub_activity_url': 'http://jrlogin08i:25470/hub/api/users/j.goebbert@fz-juelich.de/activity'}, 'GitLabConfig': {'url': 'https://gitlab.version.fz-juelich.de', 'validate_cert': True}, 'GitHubConfig': {'url': 'https://github.com', 'validate_cert': True}, 'JupyterLabIFrame': {'welcome': 'http://www.fz-juelich.de/jsc'}, 'FileCheckpoints': {'checkpoint_permissions': 436, 'restore_permissions': 420, 'checkpoint_dir_umask': 2}, 'ResourceUseDisplay': {'mem_limit': 540577177600, 'mem_warning_threshold': 0.1, 'track_cpu_percent': True, 'cpu_limit': 256, 'cpu_warning_threshold': 0.1}, 'LabServerApp': {'extra_labextensions_path': <LazyConfigValue {'extend': ['/p/software/jurecadc/stages/2020/software/JupyterExtension-nvdashboard/0.6.0-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/labextensions']}>}}\n",
+      "[D 2022-04-05 17:56:59.281 SingleUserNotebookApp application:326] Config changed: {'FileContentsManager': {'delete_to_trash': False}, 'JupyterApp': {'config_file': '/p/scratch/training2211/unicore-jobs/16657dd3-7c9f-415d-bbfb-18618d9bcde0/.config.py'}, 'SingleUserNotebookApp': {'log_level': 'DEBUG'}, 'ExtensionApp': {'log_level': 'DEBUG'}, 'ServerApp': {'ip': '0.0.0.0', 'root_dir': '/p/home/jusers/goebbert1/jureca', 'default_url': '/lab/workspaces/jureca', 'port': 41441, 'terminado_settings': {'shell_command': ['/bin/bash']}, 'tornado_settings': {'websocket_max_message_size': 1073741824}, 'max_buffer_size': 1073741824, 'max_body_size': 1073741824, 'jpserver_extensions': <LazyConfigValue value={'dask_labextension': True, 'jupyter_lsp': True, 'jupyter_resource_usage': True, 'jupyter_server_mathjax': True, 'jupyter_server_proxy': True, 'jupyterlab': True, 'jupyterlab_code_formatter': True, 'jupyterlab_git': True, 'jupyterlab_gitlab': True, 'jupyterlab_iframe': True, 'jupyterlab_latex': True, 'jupyterlab_spellchecker': True, 'nbclassic': True, 'nbdime': True, 'voila.server_extension': True}>}, 'ContentsManager': {'allow_hidden': True}, 'SingleUserNotebookAppMixin': {'hub_api_url': 'http://jrlogin08i:25470/hub/api', 'hub_activity_url': 'http://jrlogin08i:25470/hub/api/users/j.goebbert@fz-juelich.de/activity'}, 'GitLabConfig': {'url': 'https://gitlab.version.fz-juelich.de', 'validate_cert': True}, 'GitHubConfig': {'url': 'https://github.com', 'validate_cert': True}, 'JupyterLabIFrame': {'welcome': 'http://www.fz-juelich.de/jsc'}, 'FileCheckpoints': {'checkpoint_permissions': 436, 'restore_permissions': 420, 'checkpoint_dir_umask': 2}, 'ResourceUseDisplay': {'mem_limit': 540577177600, 'mem_warning_threshold': 0.1, 'track_cpu_percent': True, 'cpu_limit': 256, 'cpu_warning_threshold': 0.1}, 'LabServerApp': {'extra_labextensions_path': <LazyConfigValue {'extend': ['/p/software/jurecadc/stages/2020/software/JupyterExtension-nvdashboard/0.6.0-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/labextensions']}>}}\n",
+      "[I 2022-04-05 17:56:59.282 SingleUserNotebookApp manager:345] jupyter_server_mathjax | extension was successfully linked.\n",
+      "[I 2022-04-05 17:56:59.282 SingleUserNotebookApp manager:345] jupyter_server_proxy | extension was successfully linked.\n",
+      "[D 2022-04-05 17:56:59.293 LabApp] Config changed: {'NotebookApp': {}, 'ServerApp': {'ip': '0.0.0.0', 'root_dir': '/p/home/jusers/goebbert1/jureca', 'default_url': '/lab/workspaces/jureca', 'port': 41441, 'terminado_settings': {'shell_command': ['/bin/bash']}, 'tornado_settings': {'websocket_max_message_size': 1073741824}, 'max_buffer_size': 1073741824, 'max_body_size': 1073741824, 'jpserver_extensions': <LazyConfigValue value={'dask_labextension': True, 'jupyter_lsp': True, 'jupyter_resource_usage': True, 'jupyter_server_mathjax': True, 'jupyter_server_proxy': True, 'jupyterlab': True, 'jupyterlab_code_formatter': True, 'jupyterlab_git': True, 'jupyterlab_gitlab': True, 'jupyterlab_iframe': True, 'jupyterlab_latex': True, 'jupyterlab_spellchecker': True, 'nbclassic': True, 'nbdime': True, 'voila.server_extension': True}>}, 'FileContentsManager': {'delete_to_trash': False}, 'JupyterApp': {'config_file': '/p/scratch/training2211/unicore-jobs/16657dd3-7c9f-415d-bbfb-18618d9bcde0/.config.py'}, 'SingleUserNotebookApp': {'log_level': 'DEBUG'}, 'ExtensionApp': {'log_level': 'DEBUG'}, 'ContentsManager': {'allow_hidden': True}, 'SingleUserNotebookAppMixin': {'hub_api_url': 'http://jrlogin08i:25470/hub/api', 'hub_activity_url': 'http://jrlogin08i:25470/hub/api/users/j.goebbert@fz-juelich.de/activity'}, 'GitLabConfig': {'url': 'https://gitlab.version.fz-juelich.de', 'validate_cert': True}, 'GitHubConfig': {'url': 'https://github.com', 'validate_cert': True}, 'JupyterLabIFrame': {'welcome': 'http://www.fz-juelich.de/jsc'}, 'FileCheckpoints': {'checkpoint_permissions': 436, 'restore_permissions': 420, 'checkpoint_dir_umask': 2}, 'ResourceUseDisplay': {'mem_limit': 540577177600, 'mem_warning_threshold': 0.1, 'track_cpu_percent': True, 'cpu_limit': 256, 'cpu_warning_threshold': 0.1}, 'LabServerApp': {'extra_labextensions_path': <LazyConfigValue value=['/p/software/jurecadc/stages/2020/software/JupyterExtension-nvdashboard/0.6.0-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/labextensions', '/p/software/jurecadc/stages/2020/software/JupyterExtension-nvdashboard/0.6.0-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/labextensions']>}}\n",
+      "[D 2022-04-05 17:56:59.294 SingleUserNotebookApp application:326] Config changed: {'FileContentsManager': {'delete_to_trash': False}, 'JupyterApp': {'config_file': '/p/scratch/training2211/unicore-jobs/16657dd3-7c9f-415d-bbfb-18618d9bcde0/.config.py'}, 'SingleUserNotebookApp': {'log_level': 'DEBUG'}, 'ExtensionApp': {'log_level': 'DEBUG'}, 'ContentsManager': {'allow_hidden': True}, 'SingleUserNotebookAppMixin': {'hub_api_url': 'http://jrlogin08i:25470/hub/api', 'hub_activity_url': 'http://jrlogin08i:25470/hub/api/users/j.goebbert@fz-juelich.de/activity'}, 'GitLabConfig': {'url': 'https://gitlab.version.fz-juelich.de', 'validate_cert': True}, 'GitHubConfig': {'url': 'https://github.com', 'validate_cert': True}, 'JupyterLabIFrame': {'welcome': 'http://www.fz-juelich.de/jsc'}, 'FileCheckpoints': {'checkpoint_permissions': 436, 'restore_permissions': 420, 'checkpoint_dir_umask': 2}, 'ResourceUseDisplay': {'mem_limit': 540577177600, 'mem_warning_threshold': 0.1, 'track_cpu_percent': True, 'cpu_limit': 256, 'cpu_warning_threshold': 0.1}, 'LabServerApp': {'extra_labextensions_path': <LazyConfigValue {'extend': ['/p/software/jurecadc/stages/2020/software/JupyterExtension-nvdashboard/0.6.0-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/labextensions', '/p/software/jurecadc/stages/2020/software/JupyterExtension-nvdashboard/0.6.0-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/labextensions']}>}}\n",
+      "[I 2022-04-05 17:56:59.294 SingleUserNotebookApp manager:345] jupyterlab | extension was successfully linked.\n",
+      "[I 2022-04-05 17:56:59.294 SingleUserNotebookApp manager:345] jupyterlab_code_formatter | extension was successfully linked.\n",
+      "[I 2022-04-05 17:56:59.294 SingleUserNotebookApp manager:345] jupyterlab_git | extension was successfully linked.\n",
+      "[I 2022-04-05 17:56:59.294 SingleUserNotebookApp manager:345] jupyterlab_gitlab | extension was successfully linked.\n",
+      "[I 2022-04-05 17:56:59.295 SingleUserNotebookApp manager:345] jupyterlab_iframe | extension was successfully linked.\n",
+      "[I 2022-04-05 17:56:59.295 SingleUserNotebookApp manager:345] jupyterlab_latex | extension was successfully linked.\n",
+      "[I 2022-04-05 17:56:59.295 SingleUserNotebookApp manager:345] jupyterlab_spellchecker | extension was successfully linked.\n",
+      "[D 2022-04-05 17:56:59.305 NotebookApp] Config changed: {'NotebookApp': {'nbserver_extensions': {'jupyter_nbextensions_configurator': True, 'appmode.server_extension': True, 'jupyterlab_iframe.extension': True}}, 'ServerApp': {'ip': '0.0.0.0', 'root_dir': '/p/home/jusers/goebbert1/jureca', 'default_url': '/lab/workspaces/jureca', 'port': 41441, 'terminado_settings': {'shell_command': ['/bin/bash']}, 'tornado_settings': {'websocket_max_message_size': 1073741824}, 'max_buffer_size': 1073741824, 'max_body_size': 1073741824, 'jpserver_extensions': <LazyConfigValue value={'dask_labextension': True, 'jupyter_lsp': True, 'jupyter_resource_usage': True, 'jupyter_server_mathjax': True, 'jupyter_server_proxy': True, 'jupyterlab': True, 'jupyterlab_code_formatter': True, 'jupyterlab_git': True, 'jupyterlab_gitlab': True, 'jupyterlab_iframe': True, 'jupyterlab_latex': True, 'jupyterlab_spellchecker': True, 'nbclassic': True, 'nbdime': True, 'voila.server_extension': True}>}, 'FileContentsManager': {'delete_to_trash': False}, 'GitLabConfig': {'url': 'https://gitlab.version.fz-juelich.de', 'validate_cert': True}, 'GitHubConfig': {'url': 'https://github.com', 'validate_cert': True}, 'JupyterLabIFrame': {'welcome': 'http://www.fz-juelich.de/jsc'}, 'FileCheckpoints': {'checkpoint_permissions': 436, 'restore_permissions': 420, 'checkpoint_dir_umask': 2}, 'ResourceUseDisplay': {'mem_limit': 540577177600, 'mem_warning_threshold': 0.1, 'track_cpu_percent': True, 'cpu_limit': 256, 'cpu_warning_threshold': 0.1}, 'JupyterApp': {'config_file': '/p/scratch/training2211/unicore-jobs/16657dd3-7c9f-415d-bbfb-18618d9bcde0/.config.py'}, 'SingleUserNotebookApp': {'log_level': 'DEBUG'}, 'ExtensionApp': {'log_level': 'DEBUG'}, 'ContentsManager': {'allow_hidden': True}, 'SingleUserNotebookAppMixin': {'hub_api_url': 'http://jrlogin08i:25470/hub/api', 'hub_activity_url': 'http://jrlogin08i:25470/hub/api/users/j.goebbert@fz-juelich.de/activity'}, 'LabServerApp': {'extra_labextensions_path': <LazyConfigValue value=['/p/software/jurecadc/stages/2020/software/JupyterExtension-nvdashboard/0.6.0-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/labextensions', '/p/software/jurecadc/stages/2020/software/JupyterExtension-nvdashboard/0.6.0-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/labextensions']>}}\n",
+      "[D 2022-04-05 17:56:59.306 SingleUserNotebookApp application:326] Config changed: {'FileContentsManager': {'delete_to_trash': False}, 'JupyterApp': {'config_file': '/p/scratch/training2211/unicore-jobs/16657dd3-7c9f-415d-bbfb-18618d9bcde0/.config.py'}, 'SingleUserNotebookApp': {'log_level': 'DEBUG'}, 'ExtensionApp': {'log_level': 'DEBUG'}, 'ContentsManager': {'allow_hidden': True}, 'SingleUserNotebookAppMixin': {'hub_api_url': 'http://jrlogin08i:25470/hub/api', 'hub_activity_url': 'http://jrlogin08i:25470/hub/api/users/j.goebbert@fz-juelich.de/activity'}, 'GitLabConfig': {'url': 'https://gitlab.version.fz-juelich.de', 'validate_cert': True}, 'GitHubConfig': {'url': 'https://github.com', 'validate_cert': True}, 'JupyterLabIFrame': {'welcome': 'http://www.fz-juelich.de/jsc'}, 'FileCheckpoints': {'checkpoint_permissions': 436, 'restore_permissions': 420, 'checkpoint_dir_umask': 2}, 'ResourceUseDisplay': {'mem_limit': 540577177600, 'mem_warning_threshold': 0.1, 'track_cpu_percent': True, 'cpu_limit': 256, 'cpu_warning_threshold': 0.1}, 'LabServerApp': {'extra_labextensions_path': <LazyConfigValue value=['/p/software/jurecadc/stages/2020/software/JupyterExtension-nvdashboard/0.6.0-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/labextensions', '/p/software/jurecadc/stages/2020/software/JupyterExtension-nvdashboard/0.6.0-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/labextensions']>}}\n",
+      "[D 2022-04-05 17:57:00.299 SingleUserNotebookApp config_manager:97] Paths used for configuration of jupyter_notebook_config: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/jupyter_notebook_config.json\n",
+      "[D 2022-04-05 17:57:00.299 SingleUserNotebookApp config_manager:97] Paths used for configuration of jupyter_notebook_config: \n",
+      "    \t/etc/jupyter/jupyter_notebook_config.json\n",
+      "[D 2022-04-05 17:57:00.299 SingleUserNotebookApp config_manager:97] Paths used for configuration of jupyter_notebook_config: \n",
+      "    \t/usr/local/etc/jupyter/jupyter_notebook_config.json\n",
+      "[D 2022-04-05 17:57:00.300 SingleUserNotebookApp config_manager:97] Paths used for configuration of jupyter_notebook_config: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0/etc/jupyter/jupyter_notebook_config.json\n",
+      "[D 2022-04-05 17:57:00.300 SingleUserNotebookApp config_manager:97] Paths used for configuration of jupyter_notebook_config: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/jupyter_notebook_config.json\n",
+      "[D 2022-04-05 17:57:00.301 SingleUserNotebookApp config_manager:97] Paths used for configuration of jupyter_notebook_config: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_notebook_config.d/dask_labextension.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_notebook_config.d/ipyparallel-serverextension.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_notebook_config.d/jupyter-lsp-notebook.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_notebook_config.d/jupyter-server-proxy-notebookserverextension.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_notebook_config.d/jupyter_resource_usage.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_notebook_config.d/jupyterlab.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_notebook_config.d/jupyterlab_code_formatter.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_notebook_config.d/jupyterlab_git.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_notebook_config.d/jupyterlab_gitlab.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_notebook_config.d/jupyterlab_hdf.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_notebook_config.d/jupyterlab_latex.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_notebook_config.d/jupyterlab_spellchecker.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_notebook_config.d/nbdime.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_notebook_config.d/panel-client-jupyter.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_notebook_config.d/voila.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_notebook_config.json\n",
+      "[D 2022-04-05 17:57:00.315 SingleUserNotebookApp config_manager:97] Paths used for configuration of jupyter_notebook_config: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/jupyter_notebook_config.json\n",
+      "[I 2022-04-05 17:57:00.369 SingleUserNotebookApp nbserver:117] ipyparallel.nbextension | extension was found and enabled by nbclassic. Consider moving the extension to Jupyter Server's extension paths.\n",
+      "[I 2022-04-05 17:57:00.369 SingleUserNotebookApp manager:345] ipyparallel.nbextension | extension was successfully linked.\n",
+      "[I 2022-04-05 17:57:00.673 SingleUserNotebookApp nbserver:117] jupyterlab_hdf | extension was found and enabled by nbclassic. Consider moving the extension to Jupyter Server's extension paths.\n",
+      "[I 2022-04-05 17:57:00.674 SingleUserNotebookApp manager:345] jupyterlab_hdf | extension was successfully linked.\n",
+      "[I 2022-04-05 17:57:00.677 SingleUserNotebookApp nbserver:117] jupyter_nbextensions_configurator | extension was found and enabled by nbclassic. Consider moving the extension to Jupyter Server's extension paths.\n",
+      "[I 2022-04-05 17:57:00.677 SingleUserNotebookApp manager:345] jupyter_nbextensions_configurator | extension was successfully linked.\n",
+      "[I 2022-04-05 17:57:00.687 SingleUserNotebookApp nbserver:117] appmode.server_extension | extension was found and enabled by nbclassic. Consider moving the extension to Jupyter Server's extension paths.\n",
+      "[I 2022-04-05 17:57:00.688 SingleUserNotebookApp manager:345] appmode.server_extension | extension was successfully linked.\n",
+      "[I 2022-04-05 17:57:00.688 SingleUserNotebookApp nbserver:117] jupyterlab_iframe.extension | extension was found and enabled by nbclassic. Consider moving the extension to Jupyter Server's extension paths.\n",
+      "[I 2022-04-05 17:57:00.688 SingleUserNotebookApp manager:345] jupyterlab_iframe.extension | extension was successfully linked.\n",
+      "[I 2022-04-05 17:57:00.688 SingleUserNotebookApp manager:345] nbclassic | extension was successfully linked.\n",
+      "[I 2022-04-05 17:57:00.688 SingleUserNotebookApp manager:345] nbdime | extension was successfully linked.\n",
+      "[I 2022-04-05 17:57:00.688 SingleUserNotebookApp manager:345] voila.server_extension | extension was successfully linked.\n",
+      "[I 2022-04-05 17:57:00.782 SingleUserNotebookApp manager:367] nbclassic | extension was successfully loaded.\n",
+      "[I 2022-04-05 17:57:00.783 SingleUserNotebookApp server_extension:155] Appmode server extension loaded.\n",
+      "[I 2022-04-05 17:57:00.783 SingleUserNotebookApp manager:367] appmode.server_extension | extension was successfully loaded.\n",
+      "[I 2022-04-05 17:57:00.783 SingleUserNotebookApp manager:367] dask_labextension | extension was successfully loaded.\n",
+      "[I 2022-04-05 17:57:00.783 SingleUserNotebookApp handlers:78] Loading IPython parallel extension\n",
+      "[I 2022-04-05 17:57:00.784 SingleUserNotebookApp manager:367] ipyparallel.nbextension | extension was successfully loaded.\n",
+      "[D 2022-04-05 17:57:00.786 SingleUserNotebookApp config_manager:97] Paths used for configuration of jupyter_config: \n",
+      "    \t/etc/jupyter/jupyter_config.json\n",
+      "[D 2022-04-05 17:57:00.786 SingleUserNotebookApp config_manager:97] Paths used for configuration of jupyter_config: \n",
+      "    \t/usr/local/etc/jupyter/jupyter_config.json\n",
+      "[D 2022-04-05 17:57:00.786 SingleUserNotebookApp config_manager:97] Paths used for configuration of jupyter_config: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0/etc/jupyter/jupyter_config.json\n",
+      "[D 2022-04-05 17:57:00.787 SingleUserNotebookApp config_manager:97] Paths used for configuration of jupyter_config: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/jupyter_config.json\n",
+      "[D 2022-04-05 17:57:00.787 SingleUserNotebookApp config_manager:97] Paths used for configuration of jupyter_config: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_config.json\n",
+      "[D 2022-04-05 17:57:00.787 SingleUserNotebookApp config_manager:97] Paths used for configuration of jupyter_config: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/jupyter_config.json\n",
+      "[D 2022-04-05 17:57:00.788 SingleUserNotebookApp config_manager:97] Paths used for configuration of jupyter_notebook_config: \n",
+      "    \t/etc/jupyter/jupyter_notebook_config.json\n",
+      "[D 2022-04-05 17:57:00.788 SingleUserNotebookApp config_manager:97] Paths used for configuration of jupyter_notebook_config: \n",
+      "    \t/usr/local/etc/jupyter/jupyter_notebook_config.json\n",
+      "[D 2022-04-05 17:57:00.788 SingleUserNotebookApp config_manager:97] Paths used for configuration of jupyter_notebook_config: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0/etc/jupyter/jupyter_notebook_config.json\n",
+      "[D 2022-04-05 17:57:00.789 SingleUserNotebookApp config_manager:97] Paths used for configuration of jupyter_notebook_config: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/jupyter_notebook_config.json\n",
+      "[D 2022-04-05 17:57:00.789 SingleUserNotebookApp config_manager:97] Paths used for configuration of jupyter_notebook_config: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_notebook_config.d/dask_labextension.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_notebook_config.d/ipyparallel-serverextension.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_notebook_config.d/jupyter-lsp-notebook.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_notebook_config.d/jupyter-server-proxy-notebookserverextension.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_notebook_config.d/jupyter_resource_usage.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_notebook_config.d/jupyterlab.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_notebook_config.d/jupyterlab_code_formatter.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_notebook_config.d/jupyterlab_git.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_notebook_config.d/jupyterlab_gitlab.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_notebook_config.d/jupyterlab_hdf.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_notebook_config.d/jupyterlab_latex.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_notebook_config.d/jupyterlab_spellchecker.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_notebook_config.d/nbdime.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_notebook_config.d/panel-client-jupyter.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_notebook_config.d/voila.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_notebook_config.json\n",
+      "[D 2022-04-05 17:57:00.790 SingleUserNotebookApp config_manager:97] Paths used for configuration of jupyter_notebook_config: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/jupyter_notebook_config.json\n",
+      "[D 2022-04-05 17:57:00.791 SingleUserNotebookApp config_manager:97] Paths used for configuration of jupyter_server_config: \n",
+      "    \t/etc/jupyter/jupyter_server_config.json\n",
+      "[D 2022-04-05 17:57:00.791 SingleUserNotebookApp config_manager:97] Paths used for configuration of jupyter_server_config: \n",
+      "    \t/usr/local/etc/jupyter/jupyter_server_config.json\n",
+      "[D 2022-04-05 17:57:00.791 SingleUserNotebookApp config_manager:97] Paths used for configuration of jupyter_server_config: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0/etc/jupyter/jupyter_server_config.json\n",
+      "[D 2022-04-05 17:57:00.791 SingleUserNotebookApp config_manager:97] Paths used for configuration of jupyter_server_config: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/jupyter_server_config.json\n",
+      "[D 2022-04-05 17:57:00.792 SingleUserNotebookApp config_manager:97] Paths used for configuration of jupyter_server_config: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_server_config.d/dask_labextension.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_server_config.d/jupyter-lsp-jupyter-server.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_server_config.d/jupyter-server-proxy-jupyterserverextension.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_server_config.d/jupyter_resource_usage.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_server_config.d/jupyter_server_mathjax.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_server_config.d/jupyterlab.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_server_config.d/jupyterlab_allowhidden.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_server_config.d/jupyterlab_code_formatter.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_server_config.d/jupyterlab_git.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_server_config.d/jupyterlab_gitlab.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_server_config.d/jupyterlab_iframe.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_server_config.d/jupyterlab_latex.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_server_config.d/jupyterlab_spellchecker.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_server_config.d/nbclassic.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_server_config.d/nbdime.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_server_config.d/voila.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/jupyter_server_config.json\n",
+      "[D 2022-04-05 17:57:00.794 SingleUserNotebookApp config_manager:97] Paths used for configuration of jupyter_server_config: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/jupyter_server_config.json\n",
+      "[D 2022-04-05 17:57:00.985 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/bash-language-server/bin/main.js\n",
+      "[D 2022-04-05 17:57:00.985 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/bash-language-server/bin/main.js\n",
+      "[D 2022-04-05 17:57:00.988 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/bash-language-server/bin/main.js\n",
+      "[D 2022-04-05 17:57:00.988 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/bash-language-server/bin/main.js\n",
+      "[D 2022-04-05 17:57:00.988 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/bash-language-server/bin/main.js\n",
+      "[D 2022-04-05 17:57:00.988 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/bash-language-server/bin/main.js\n",
+      "[D 2022-04-05 17:57:00.989 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/dockerfile-language-server-nodejs/lib/server.js\n",
+      "[D 2022-04-05 17:57:00.989 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/dockerfile-language-server-nodejs/lib/server.js\n",
+      "[D 2022-04-05 17:57:00.991 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/dockerfile-language-server-nodejs/lib/server.js\n",
+      "[D 2022-04-05 17:57:00.991 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/dockerfile-language-server-nodejs/lib/server.js\n",
+      "[D 2022-04-05 17:57:00.991 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/dockerfile-language-server-nodejs/lib/server.js\n",
+      "[D 2022-04-05 17:57:00.991 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/dockerfile-language-server-nodejs/lib/server.js\n",
+      "[D 2022-04-05 17:57:00.992 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/javascript-typescript-langserver/lib/language-server-stdio.js\n",
+      "[D 2022-04-05 17:57:00.992 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/javascript-typescript-langserver/lib/language-server-stdio.js\n",
+      "[D 2022-04-05 17:57:00.994 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/javascript-typescript-langserver/lib/language-server-stdio.js\n",
+      "[D 2022-04-05 17:57:00.994 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/javascript-typescript-langserver/lib/language-server-stdio.js\n",
+      "[D 2022-04-05 17:57:00.994 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/javascript-typescript-langserver/lib/language-server-stdio.js\n",
+      "[D 2022-04-05 17:57:00.994 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/javascript-typescript-langserver/lib/language-server-stdio.js\n",
+      "[D 2022-04-05 17:57:01.790 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/pyright/langserver.index.js\n",
+      "[D 2022-04-05 17:57:01.790 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/pyright/langserver.index.js\n",
+      "[D 2022-04-05 17:57:01.791 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/pyright/langserver.index.js\n",
+      "[D 2022-04-05 17:57:01.792 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/pyright/langserver.index.js\n",
+      "[D 2022-04-05 17:57:01.792 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/pyright/langserver.index.js\n",
+      "[D 2022-04-05 17:57:01.792 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/pyright/langserver.index.js\n",
+      "[D 2022-04-05 17:57:01.804 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/sql-language-server/dist/bin/cli.js\n",
+      "[D 2022-04-05 17:57:01.804 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/sql-language-server/dist/bin/cli.js\n",
+      "[D 2022-04-05 17:57:01.807 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/sql-language-server/dist/bin/cli.js\n",
+      "[D 2022-04-05 17:57:01.807 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/sql-language-server/dist/bin/cli.js\n",
+      "[D 2022-04-05 17:57:01.807 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/sql-language-server/dist/bin/cli.js\n",
+      "[D 2022-04-05 17:57:01.807 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/sql-language-server/dist/bin/cli.js\n",
+      "[D 2022-04-05 17:57:01.812 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/unified-language-server/src/server.js\n",
+      "[D 2022-04-05 17:57:01.812 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/unified-language-server/src/server.js\n",
+      "[D 2022-04-05 17:57:01.813 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0/lib/node_modules/unified-language-server/src/server.js\n",
+      "[D 2022-04-05 17:57:01.813 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0/node_modules/unified-language-server/src/server.js\n",
+      "[D 2022-04-05 17:57:01.813 SingleUserNotebookApp types:216] unified-language-server/src/server.js not found in node_modules of [PosixPath('/p/home/jusers/goebbert1/jureca'), PosixPath('/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging'), PosixPath('/p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0/lib'), PosixPath('/p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0')]\n",
+      "[D 2022-04-05 17:57:01.813 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/vscode-css-languageserver-bin/cssServerMain.js\n",
+      "[D 2022-04-05 17:57:01.813 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/vscode-css-languageserver-bin/cssServerMain.js\n",
+      "[D 2022-04-05 17:57:01.814 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/vscode-css-languageserver-bin/cssServerMain.js\n",
+      "[D 2022-04-05 17:57:01.814 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/vscode-css-languageserver-bin/cssServerMain.js\n",
+      "[D 2022-04-05 17:57:01.814 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/vscode-css-languageserver-bin/cssServerMain.js\n",
+      "[D 2022-04-05 17:57:01.814 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/vscode-css-languageserver-bin/cssServerMain.js\n",
+      "[D 2022-04-05 17:57:01.815 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/vscode-html-languageserver-bin/htmlServerMain.js\n",
+      "[D 2022-04-05 17:57:01.815 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/vscode-html-languageserver-bin/htmlServerMain.js\n",
+      "[D 2022-04-05 17:57:01.816 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/vscode-html-languageserver-bin/htmlServerMain.js\n",
+      "[D 2022-04-05 17:57:01.816 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/vscode-html-languageserver-bin/htmlServerMain.js\n",
+      "[D 2022-04-05 17:57:01.816 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/vscode-html-languageserver-bin/htmlServerMain.js\n",
+      "[D 2022-04-05 17:57:01.816 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/vscode-html-languageserver-bin/htmlServerMain.js\n",
+      "[D 2022-04-05 17:57:01.817 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/vscode-json-languageserver-bin/jsonServerMain.js\n",
+      "[D 2022-04-05 17:57:01.817 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/vscode-json-languageserver-bin/jsonServerMain.js\n",
+      "[D 2022-04-05 17:57:01.818 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/vscode-json-languageserver-bin/jsonServerMain.js\n",
+      "[D 2022-04-05 17:57:01.818 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/vscode-json-languageserver-bin/jsonServerMain.js\n",
+      "[D 2022-04-05 17:57:01.818 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/vscode-json-languageserver-bin/jsonServerMain.js\n",
+      "[D 2022-04-05 17:57:01.818 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/vscode-json-languageserver-bin/jsonServerMain.js\n",
+      "[D 2022-04-05 17:57:01.819 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/yaml-language-server/bin/yaml-language-server\n",
+      "[D 2022-04-05 17:57:01.819 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/yaml-language-server/bin/yaml-language-server\n",
+      "[D 2022-04-05 17:57:01.820 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/yaml-language-server/bin/yaml-language-server\n",
+      "[D 2022-04-05 17:57:01.820 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/yaml-language-server/bin/yaml-language-server\n",
+      "[D 2022-04-05 17:57:01.821 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/yaml-language-server/bin/yaml-language-server\n",
+      "[D 2022-04-05 17:57:01.821 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/yaml-language-server/bin/yaml-language-server\n",
+      "/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/lib/python3.8/site-packages/jupyter_lsp/manager.py:279: FutureWarning: The alias `_()` will be deprecated. Use `_i18n()` instead.\n",
+      "  _(\"Skipped non-installed server(s): {}\").format(\n",
+      "[I 2022-04-05 17:57:01.821 SingleUserNotebookApp manager:278] Skipped non-installed server(s): jedi-language-server, python-language-server, r-languageserver, texlab, unified-language-server\n",
+      "[D 2022-04-05 17:57:01.884 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/bash-language-server/bin/main.js\n",
+      "[D 2022-04-05 17:57:01.884 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/bash-language-server/bin/main.js\n",
+      "[D 2022-04-05 17:57:01.884 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/bash-language-server/bin/main.js\n",
+      "[D 2022-04-05 17:57:01.885 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/bash-language-server/bin/main.js\n",
+      "[D 2022-04-05 17:57:01.885 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/dockerfile-language-server-nodejs/lib/server.js\n",
+      "[D 2022-04-05 17:57:01.885 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/dockerfile-language-server-nodejs/lib/server.js\n",
+      "[D 2022-04-05 17:57:01.885 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/dockerfile-language-server-nodejs/lib/server.js\n",
+      "[D 2022-04-05 17:57:01.885 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/dockerfile-language-server-nodejs/lib/server.js\n",
+      "[D 2022-04-05 17:57:01.885 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/javascript-typescript-langserver/lib/language-server-stdio.js\n",
+      "[D 2022-04-05 17:57:01.885 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/javascript-typescript-langserver/lib/language-server-stdio.js\n",
+      "[D 2022-04-05 17:57:01.886 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/javascript-typescript-langserver/lib/language-server-stdio.js\n",
+      "[D 2022-04-05 17:57:01.886 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/javascript-typescript-langserver/lib/language-server-stdio.js\n",
+      "[D 2022-04-05 17:57:01.891 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/pyright/langserver.index.js\n",
+      "[D 2022-04-05 17:57:01.891 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/pyright/langserver.index.js\n",
+      "[D 2022-04-05 17:57:01.891 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/pyright/langserver.index.js\n",
+      "[D 2022-04-05 17:57:01.891 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/pyright/langserver.index.js\n",
+      "[D 2022-04-05 17:57:01.899 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/sql-language-server/dist/bin/cli.js\n",
+      "[D 2022-04-05 17:57:01.899 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/sql-language-server/dist/bin/cli.js\n",
+      "[D 2022-04-05 17:57:01.899 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/sql-language-server/dist/bin/cli.js\n",
+      "[D 2022-04-05 17:57:01.899 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/sql-language-server/dist/bin/cli.js\n",
+      "[D 2022-04-05 17:57:01.904 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/unified-language-server/src/server.js\n",
+      "[D 2022-04-05 17:57:01.904 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/unified-language-server/src/server.js\n",
+      "[D 2022-04-05 17:57:01.904 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0/lib/node_modules/unified-language-server/src/server.js\n",
+      "[D 2022-04-05 17:57:01.904 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0/node_modules/unified-language-server/src/server.js\n",
+      "[D 2022-04-05 17:57:01.904 SingleUserNotebookApp types:216] unified-language-server/src/server.js not found in node_modules of [PosixPath('/p/home/jusers/goebbert1/jureca'), PosixPath('/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging'), PosixPath('/p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0/lib'), PosixPath('/p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0')]\n",
+      "[D 2022-04-05 17:57:01.904 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/unified-language-server/src/server.js\n",
+      "[D 2022-04-05 17:57:01.904 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/unified-language-server/src/server.js\n",
+      "[D 2022-04-05 17:57:01.905 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0/lib/node_modules/unified-language-server/src/server.js\n",
+      "[D 2022-04-05 17:57:01.905 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0/node_modules/unified-language-server/src/server.js\n",
+      "[D 2022-04-05 17:57:01.905 SingleUserNotebookApp types:216] unified-language-server/src/server.js not found in node_modules of [PosixPath('/p/home/jusers/goebbert1/jureca'), PosixPath('/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging'), PosixPath('/p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0/lib'), PosixPath('/p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0')]\n",
+      "[D 2022-04-05 17:57:01.905 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/vscode-css-languageserver-bin/cssServerMain.js\n",
+      "[D 2022-04-05 17:57:01.905 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/vscode-css-languageserver-bin/cssServerMain.js\n",
+      "[D 2022-04-05 17:57:01.905 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/vscode-css-languageserver-bin/cssServerMain.js\n",
+      "[D 2022-04-05 17:57:01.905 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/vscode-css-languageserver-bin/cssServerMain.js\n",
+      "[D 2022-04-05 17:57:01.905 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/vscode-html-languageserver-bin/htmlServerMain.js\n",
+      "[D 2022-04-05 17:57:01.906 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/vscode-html-languageserver-bin/htmlServerMain.js\n",
+      "[D 2022-04-05 17:57:01.906 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/vscode-html-languageserver-bin/htmlServerMain.js\n",
+      "[D 2022-04-05 17:57:01.906 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/vscode-html-languageserver-bin/htmlServerMain.js\n",
+      "[D 2022-04-05 17:57:01.906 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/vscode-json-languageserver-bin/jsonServerMain.js\n",
+      "[D 2022-04-05 17:57:01.906 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/vscode-json-languageserver-bin/jsonServerMain.js\n",
+      "[D 2022-04-05 17:57:01.906 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/vscode-json-languageserver-bin/jsonServerMain.js\n",
+      "[D 2022-04-05 17:57:01.906 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/vscode-json-languageserver-bin/jsonServerMain.js\n",
+      "[D 2022-04-05 17:57:01.906 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/yaml-language-server/bin/yaml-language-server\n",
+      "[D 2022-04-05 17:57:01.907 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/yaml-language-server/bin/yaml-language-server\n",
+      "[D 2022-04-05 17:57:01.907 SingleUserNotebookApp types:210] Checking for /p/home/jusers/goebbert1/jureca/node_modules/yaml-language-server/bin/yaml-language-server\n",
+      "[D 2022-04-05 17:57:01.907 SingleUserNotebookApp types:210] Checking for /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/yaml-language-server/bin/yaml-language-server\n",
+      "[D 2022-04-05 17:57:02.088 SingleUserNotebookApp serverextension:27] [lsp] rootUri will be file:///p/home/jusers/goebbert1/jureca\n",
+      "[D 2022-04-05 17:57:02.098 SingleUserNotebookApp serverextension:33] [lsp] virtualDocumentsUri will be file:///p/home/jusers/goebbert1/jureca/.virtual_documents\n",
+      "[D 2022-04-05 17:57:02.100 SingleUserNotebookApp serverextension:44] [lsp] The following Language Servers will be available: {\n",
+      "      \"bash-language-server\": {\n",
+      "        \"argv\": [\n",
+      "          \"/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/bin/node\",\n",
+      "          \"/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/bash-language-server/bin/main.js\",\n",
+      "          \"start\"\n",
+      "        ],\n",
+      "        \"config_schema\": {\n",
+      "          \"properties\": {\n",
+      "            \"bashIde.explainshellEndpoint\": {\n",
+      "              \"default\": \"\",\n",
+      "              \"description\": \"Set this to https://explainshell.com (once https://github.com/idank/explainshell/pull/125 is merged in) in order to get hover documentation on flags and options.\",\n",
+      "              \"type\": \"string\"\n",
+      "            },\n",
+      "            \"bashIde.highlightParsingErrors\": {\n",
+      "              \"default\": true,\n",
+      "              \"description\": \"If enabled parsing errors will be highlighted as 'problems' \",\n",
+      "              \"type\": \"boolean\"\n",
+      "            },\n",
+      "            \"bashIde.path\": {\n",
+      "              \"default\": null,\n",
+      "              \"description\": \"The path to the bash language server binary (example: /usr/local/bin/bash-language-server)\",\n",
+      "              \"type\": \"string\"\n",
+      "            }\n",
+      "          },\n",
+      "          \"title\": \"Bash IDE configuration\",\n",
+      "          \"type\": \"object\"\n",
+      "        },\n",
+      "        \"display_name\": \"bash-language-server\",\n",
+      "        \"install\": {\n",
+      "          \"jlpm\": \"jlpm add --dev bash-language-server\",\n",
+      "          \"npm\": \"npm install --save-dev bash-language-server\",\n",
+      "          \"yarn\": \"yarn add --dev bash-language-server\"\n",
+      "        },\n",
+      "        \"languages\": [\n",
+      "          \"bash\",\n",
+      "          \"sh\"\n",
+      "        ],\n",
+      "        \"mime_types\": [\n",
+      "          \"text/x-sh\",\n",
+      "          \"application/x-sh\"\n",
+      "        ],\n",
+      "        \"troubleshoot\": \"Node.js is required to install this server.\",\n",
+      "        \"urls\": {\n",
+      "          \"home\": \"https://github.com/mads-hartmann/bash-language-server\",\n",
+      "          \"issues\": \"https://github.com/mads-hartmann/bash-language-server/issues\"\n",
+      "        },\n",
+      "        \"version\": 2\n",
+      "      },\n",
+      "      \"dockerfile-language-server-nodejs\": {\n",
+      "        \"argv\": [\n",
+      "          \"/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/bin/node\",\n",
+      "          \"/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/dockerfile-language-server-nodejs/lib/server.js\",\n",
+      "          \"--stdio\"\n",
+      "        ],\n",
+      "        \"config_schema\": {\n",
+      "          \"properties\": {\n",
+      "            \"docker.attachShellCommand.linuxContainer\": {\n",
+      "              \"default\": \"/bin/sh -c \\\"[ -e /bin/bash ] && /bin/bash || /bin/sh\\\"\",\n",
+      "              \"description\": \"Attach command to use for Linux containers\",\n",
+      "              \"type\": \"string\"\n",
+      "            },\n",
+      "            \"docker.attachShellCommand.windowsContainer\": {\n",
+      "              \"default\": \"powershell\",\n",
+      "              \"description\": \"Attach command to use for Windows containers\",\n",
+      "              \"type\": \"string\"\n",
+      "            },\n",
+      "            \"docker.certPath\": {\n",
+      "              \"default\": \"\",\n",
+      "              \"description\": \"Equivalent to setting the DOCKER_CERT_PATH environment variable.\",\n",
+      "              \"type\": \"string\"\n",
+      "            },\n",
+      "            \"docker.containers.description\": {\n",
+      "              \"default\": [\n",
+      "                \"ContainerName\",\n",
+      "                \"Status\"\n",
+      "              ],\n",
+      "              \"description\": \"Any secondary properties to display for a container.\",\n",
+      "              \"items\": {\n",
+      "                \"enum\": [\n",
+      "                  \"ContainerId\",\n",
+      "                  \"ContainerName\",\n",
+      "                  \"CreatedTime\",\n",
+      "                  \"FullTag\",\n",
+      "                  \"ImageId\",\n",
+      "                  \"Networks\",\n",
+      "                  \"Ports\",\n",
+      "                  \"Registry\",\n",
+      "                  \"Repository\",\n",
+      "                  \"RepositoryName\",\n",
+      "                  \"RepositoryNameAndTag\",\n",
+      "                  \"State\",\n",
+      "                  \"Status\",\n",
+      "                  \"Tag\"\n",
+      "                ],\n",
+      "                \"type\": \"string\"\n",
+      "              },\n",
+      "              \"type\": \"array\"\n",
+      "            },\n",
+      "            \"docker.containers.groupBy\": {\n",
+      "              \"default\": \"None\",\n",
+      "              \"description\": \"The property to use when grouping containers.\",\n",
+      "              \"enum\": [\n",
+      "                \"ContainerId\",\n",
+      "                \"ContainerName\",\n",
+      "                \"CreatedTime\",\n",
+      "                \"FullTag\",\n",
+      "                \"ImageId\",\n",
+      "                \"Networks\",\n",
+      "                \"None\",\n",
+      "                \"Ports\",\n",
+      "                \"Registry\",\n",
+      "                \"Repository\",\n",
+      "                \"RepositoryName\",\n",
+      "                \"RepositoryNameAndTag\",\n",
+      "                \"State\",\n",
+      "                \"Status\",\n",
+      "                \"Tag\"\n",
+      "              ],\n",
+      "              \"type\": \"string\"\n",
+      "            },\n",
+      "            \"docker.containers.label\": {\n",
+      "              \"default\": \"FullTag\",\n",
+      "              \"description\": \"The primary property to display for a container.\",\n",
+      "              \"enum\": [\n",
+      "                \"ContainerId\",\n",
+      "                \"ContainerName\",\n",
+      "                \"CreatedTime\",\n",
+      "                \"FullTag\",\n",
+      "                \"ImageId\",\n",
+      "                \"Networks\",\n",
+      "                \"Ports\",\n",
+      "                \"Registry\",\n",
+      "                \"Repository\",\n",
+      "                \"RepositoryName\",\n",
+      "                \"RepositoryNameAndTag\",\n",
+      "                \"State\",\n",
+      "                \"Status\",\n",
+      "                \"Tag\"\n",
+      "              ],\n",
+      "              \"type\": \"string\"\n",
+      "            },\n",
+      "            \"docker.containers.sortBy\": {\n",
+      "              \"default\": \"CreatedTime\",\n",
+      "              \"description\": \"The property to use when sorting containers.\",\n",
+      "              \"enum\": [\n",
+      "                \"CreatedTime\",\n",
+      "                \"Label\"\n",
+      "              ],\n",
+      "              \"type\": \"string\"\n",
+      "            },\n",
+      "            \"docker.defaultRegistryPath\": {\n",
+      "              \"default\": \"\",\n",
+      "              \"description\": \"Default registry and path when tagging an image\",\n",
+      "              \"type\": \"string\"\n",
+      "            },\n",
+      "            \"docker.dockerComposeBuild\": {\n",
+      "              \"default\": true,\n",
+      "              \"description\": \"Run docker-compose with the --build argument, defaults to true\",\n",
+      "              \"type\": \"boolean\"\n",
+      "            },\n",
+      "            \"docker.dockerComposeDetached\": {\n",
+      "              \"default\": true,\n",
+      "              \"description\": \"Run docker-compose with the --d (detached) argument, defaults to true\",\n",
+      "              \"type\": \"boolean\"\n",
+      "            },\n",
+      "            \"docker.explorerRefreshInterval\": {\n",
+      "              \"default\": 2000,\n",
+      "              \"description\": \"Explorer refresh interval, default is 2000ms\",\n",
+      "              \"type\": \"number\"\n",
+      "            },\n",
+      "            \"docker.host\": {\n",
+      "              \"default\": \"\",\n",
+      "              \"description\": \"Equivalent to setting the DOCKER_HOST environment variable.\",\n",
+      "              \"type\": \"string\"\n",
+      "            },\n",
+      "            \"docker.imageBuildContextPath\": {\n",
+      "              \"default\": \"\",\n",
+      "              \"description\": \"Build context PATH to pass to Docker build command\",\n",
+      "              \"type\": \"string\"\n",
+      "            },\n",
+      "            \"docker.images.description\": {\n",
+      "              \"default\": [\n",
+      "                \"CreatedTime\"\n",
+      "              ],\n",
+      "              \"description\": \"Any secondary properties to display for a image.\",\n",
+      "              \"items\": {\n",
+      "                \"enum\": [\n",
+      "                  \"CreatedTime\",\n",
+      "                  \"FullTag\",\n",
+      "                  \"ImageId\",\n",
+      "                  \"Registry\",\n",
+      "                  \"Repository\",\n",
+      "                  \"RepositoryName\",\n",
+      "                  \"RepositoryNameAndTag\",\n",
+      "                  \"Tag\"\n",
+      "                ],\n",
+      "                \"type\": \"string\"\n",
+      "              },\n",
+      "              \"type\": \"array\"\n",
+      "            },\n",
+      "            \"docker.images.groupBy\": {\n",
+      "              \"default\": \"Repository\",\n",
+      "              \"description\": \"The property to use when grouping images.\",\n",
+      "              \"enum\": [\n",
+      "                \"CreatedTime\",\n",
+      "                \"FullTag\",\n",
+      "                \"ImageId\",\n",
+      "                \"None\",\n",
+      "                \"Registry\",\n",
+      "                \"Repository\",\n",
+      "                \"RepositoryName\",\n",
+      "                \"RepositoryNameAndTag\",\n",
+      "                \"Tag\"\n",
+      "              ],\n",
+      "              \"type\": \"string\"\n",
+      "            },\n",
+      "            \"docker.images.label\": {\n",
+      "              \"default\": \"Tag\",\n",
+      "              \"description\": \"The primary property to display for a image.\",\n",
+      "              \"enum\": [\n",
+      "                \"CreatedTime\",\n",
+      "                \"FullTag\",\n",
+      "                \"ImageId\",\n",
+      "                \"Registry\",\n",
+      "                \"Repository\",\n",
+      "                \"RepositoryName\",\n",
+      "                \"RepositoryNameAndTag\",\n",
+      "                \"Tag\"\n",
+      "              ],\n",
+      "              \"type\": \"string\"\n",
+      "            },\n",
+      "            \"docker.images.sortBy\": {\n",
+      "              \"default\": \"CreatedTime\",\n",
+      "              \"description\": \"The property to use when sorting images.\",\n",
+      "              \"enum\": [\n",
+      "                \"CreatedTime\",\n",
+      "                \"Label\"\n",
+      "              ],\n",
+      "              \"type\": \"string\"\n",
+      "            },\n",
+      "            \"docker.languageserver.diagnostics.deprecatedMaintainer\": {\n",
+      "              \"default\": \"warning\",\n",
+      "              \"description\": \"Controls the diagnostic severity for the deprecated MAINTAINER instruction\",\n",
+      "              \"enum\": [\n",
+      "                \"ignore\",\n",
+      "                \"warning\",\n",
+      "                \"error\"\n",
+      "              ],\n",
+      "              \"scope\": \"resource\",\n",
+      "              \"type\": \"string\"\n",
+      "            },\n",
+      "            \"docker.languageserver.diagnostics.directiveCasing\": {\n",
+      "              \"default\": \"warning\",\n",
+      "              \"description\": \"Controls the diagnostic severity for parser directives that are not written in lowercase\",\n",
+      "              \"enum\": [\n",
+      "                \"ignore\",\n",
+      "                \"warning\",\n",
+      "                \"error\"\n",
+      "              ],\n",
+      "              \"scope\": \"resource\",\n",
+      "              \"type\": \"string\"\n",
+      "            },\n",
+      "            \"docker.languageserver.diagnostics.emptyContinuationLine\": {\n",
+      "              \"default\": \"warning\",\n",
+      "              \"description\": \"Controls the diagnostic severity for flagging empty continuation lines found in instructions that span multiple lines\",\n",
+      "              \"enum\": [\n",
+      "                \"ignore\",\n",
+      "                \"warning\",\n",
+      "                \"error\"\n",
+      "              ],\n",
+      "              \"scope\": \"resource\",\n",
+      "              \"type\": \"string\"\n",
+      "            },\n",
+      "            \"docker.languageserver.diagnostics.instructionCasing\": {\n",
+      "              \"default\": \"warning\",\n",
+      "              \"description\": \"Controls the diagnostic severity for instructions that are not written in uppercase\",\n",
+      "              \"enum\": [\n",
+      "                \"ignore\",\n",
+      "                \"warning\",\n",
+      "                \"error\"\n",
+      "              ],\n",
+      "              \"scope\": \"resource\",\n",
+      "              \"type\": \"string\"\n",
+      "            },\n",
+      "            \"docker.languageserver.diagnostics.instructionCmdMultiple\": {\n",
+      "              \"default\": \"warning\",\n",
+      "              \"description\": \"Controls the diagnostic severity for flagging a Dockerfile with multiple CMD instructions\",\n",
+      "              \"enum\": [\n",
+      "                \"ignore\",\n",
+      "                \"warning\",\n",
+      "                \"error\"\n",
+      "              ],\n",
+      "              \"scope\": \"resource\",\n",
+      "              \"type\": \"string\"\n",
+      "            },\n",
+      "            \"docker.languageserver.diagnostics.instructionEntrypointMultiple\": {\n",
+      "              \"default\": \"warning\",\n",
+      "              \"description\": \"Controls the diagnostic severity for flagging a Dockerfile with multiple ENTRYPOINT instructions\",\n",
+      "              \"enum\": [\n",
+      "                \"ignore\",\n",
+      "                \"warning\",\n",
+      "                \"error\"\n",
+      "              ],\n",
+      "              \"scope\": \"resource\",\n",
+      "              \"type\": \"string\"\n",
+      "            },\n",
+      "            \"docker.languageserver.diagnostics.instructionHealthcheckMultiple\": {\n",
+      "              \"default\": \"warning\",\n",
+      "              \"description\": \"Controls the diagnostic severity for flagging a Dockerfile with multiple HEALTHCHECK instructions\",\n",
+      "              \"enum\": [\n",
+      "                \"ignore\",\n",
+      "                \"warning\",\n",
+      "                \"error\"\n",
+      "              ],\n",
+      "              \"scope\": \"resource\",\n",
+      "              \"type\": \"string\"\n",
+      "            },\n",
+      "            \"docker.languageserver.diagnostics.instructionJSONInSingleQuotes\": {\n",
+      "              \"default\": \"warning\",\n",
+      "              \"description\": \"Controls the diagnostic severity for JSON instructions that are written incorrectly with single quotes\",\n",
+      "              \"enum\": [\n",
+      "                \"ignore\",\n",
+      "                \"warning\",\n",
+      "                \"error\"\n",
+      "              ],\n",
+      "              \"scope\": \"resource\",\n",
+      "              \"type\": \"string\"\n",
+      "            },\n",
+      "            \"docker.languageserver.diagnostics.instructionWorkdirRelative\": {\n",
+      "              \"default\": \"warning\",\n",
+      "              \"description\": \"Controls the diagnostic severity for WORKDIR instructions that do not point to an absolute path\",\n",
+      "              \"enum\": [\n",
+      "                \"ignore\",\n",
+      "                \"warning\",\n",
+      "                \"error\"\n",
+      "              ],\n",
+      "              \"scope\": \"resource\",\n",
+      "              \"type\": \"string\"\n",
+      "            },\n",
+      "            \"docker.machineName\": {\n",
+      "              \"default\": \"\",\n",
+      "              \"description\": \"Equivalent to setting the DOCKER_MACHINE_NAME environment variable.\",\n",
+      "              \"type\": \"string\"\n",
+      "            },\n",
+      "            \"docker.networks.description\": {\n",
+      "              \"default\": [\n",
+      "                \"NetworkDriver\",\n",
+      "                \"CreatedTime\"\n",
+      "              ],\n",
+      "              \"description\": \"Any secondary properties to display for a network.\",\n",
+      "              \"items\": {\n",
+      "                \"enum\": [\n",
+      "                  \"CreatedTime\",\n",
+      "                  \"NetworkDriver\",\n",
+      "                  \"NetworkId\",\n",
+      "                  \"NetworkName\"\n",
+      "                ],\n",
+      "                \"type\": \"string\"\n",
+      "              },\n",
+      "              \"type\": \"array\"\n",
+      "            },\n",
+      "            \"docker.networks.groupBy\": {\n",
+      "              \"default\": \"None\",\n",
+      "              \"description\": \"The property to use when grouping networks.\",\n",
+      "              \"enum\": [\n",
+      "                \"CreatedTime\",\n",
+      "                \"NetworkDriver\",\n",
+      "                \"NetworkId\",\n",
+      "                \"NetworkName\",\n",
+      "                \"None\"\n",
+      "              ],\n",
+      "              \"type\": \"string\"\n",
+      "            },\n",
+      "            \"docker.networks.label\": {\n",
+      "              \"default\": \"NetworkName\",\n",
+      "              \"description\": \"The primary property to display for a network.\",\n",
+      "              \"enum\": [\n",
+      "                \"CreatedTime\",\n",
+      "                \"NetworkDriver\",\n",
+      "                \"NetworkId\",\n",
+      "                \"NetworkName\"\n",
+      "              ],\n",
+      "              \"type\": \"string\"\n",
+      "            },\n",
+      "            \"docker.networks.sortBy\": {\n",
+      "              \"default\": \"CreatedTime\",\n",
+      "              \"description\": \"The property to use when sorting networks.\",\n",
+      "              \"enum\": [\n",
+      "                \"CreatedTime\",\n",
+      "                \"Label\"\n",
+      "              ],\n",
+      "              \"type\": \"string\"\n",
+      "            },\n",
+      "            \"docker.showRemoteWorkspaceWarning\": {\n",
+      "              \"default\": true,\n",
+      "              \"description\": \"Show a prompt to switch from \\\"UI\\\" extension to \\\"Workspace\\\" extension if an operation is not supported.\",\n",
+      "              \"type\": \"boolean\"\n",
+      "            },\n",
+      "            \"docker.tlsVerify\": {\n",
+      "              \"default\": \"\",\n",
+      "              \"description\": \"Equivalent to setting the DOCKER_TLS_VERIFY environment variable.\",\n",
+      "              \"type\": \"string\"\n",
+      "            },\n",
+      "            \"docker.truncateLongRegistryPaths\": {\n",
+      "              \"default\": false,\n",
+      "              \"description\": \"Truncate long Image and Container registry paths in the Explorer\",\n",
+      "              \"type\": \"boolean\"\n",
+      "            },\n",
+      "            \"docker.truncateMaxLength\": {\n",
+      "              \"default\": 10,\n",
+      "              \"description\": \"Maximum number of characters for long registry paths in the Explorer, including elipsis\",\n",
+      "              \"type\": \"number\"\n",
+      "            },\n",
+      "            \"docker.volumes.description\": {\n",
+      "              \"default\": [\n",
+      "                \"CreatedTime\"\n",
+      "              ],\n",
+      "              \"description\": \"Any secondary properties to display for a volume.\",\n",
+      "              \"items\": {\n",
+      "                \"enum\": [\n",
+      "                  \"CreatedTime\",\n",
+      "                  \"VolumeName\"\n",
+      "                ],\n",
+      "                \"type\": \"string\"\n",
+      "              },\n",
+      "              \"type\": \"array\"\n",
+      "            },\n",
+      "            \"docker.volumes.groupBy\": {\n",
+      "              \"default\": \"None\",\n",
+      "              \"description\": \"The property to use when grouping volumes.\",\n",
+      "              \"enum\": [\n",
+      "                \"CreatedTime\",\n",
+      "                \"VolumeName\",\n",
+      "                \"None\"\n",
+      "              ],\n",
+      "              \"type\": \"string\"\n",
+      "            },\n",
+      "            \"docker.volumes.label\": {\n",
+      "              \"default\": \"VolumeName\",\n",
+      "              \"description\": \"The primary property to display for a volume.\",\n",
+      "              \"enum\": [\n",
+      "                \"CreatedTime\",\n",
+      "                \"VolumeName\"\n",
+      "              ],\n",
+      "              \"type\": \"string\"\n",
+      "            },\n",
+      "            \"docker.volumes.sortBy\": {\n",
+      "              \"default\": \"CreatedTime\",\n",
+      "              \"description\": \"The property to use when sorting volumes.\",\n",
+      "              \"enum\": [\n",
+      "                \"CreatedTime\",\n",
+      "                \"Label\"\n",
+      "              ],\n",
+      "              \"type\": \"string\"\n",
+      "            }\n",
+      "          },\n",
+      "          \"title\": \"Docker\"\n",
+      "        },\n",
+      "        \"display_name\": \"dockerfile-language-server-nodejs\",\n",
+      "        \"install\": {\n",
+      "          \"jlpm\": \"jlpm add --dev dockerfile-language-server-nodejs\",\n",
+      "          \"npm\": \"npm install --save-dev dockerfile-language-server-nodejs\",\n",
+      "          \"yarn\": \"yarn add --dev dockerfile-language-server-nodejs\"\n",
+      "        },\n",
+      "        \"languages\": [\n",
+      "          \"dockerfile\"\n",
+      "        ],\n",
+      "        \"mime_types\": [\n",
+      "          \"text/x-dockerfile\"\n",
+      "        ],\n",
+      "        \"troubleshoot\": \"Node.js is required to install this server.\",\n",
+      "        \"urls\": {\n",
+      "          \"home\": \"https://github.com/rcjsuen/dockerfile-language-server-nodejs\",\n",
+      "          \"issues\": \"https://github.com/rcjsuen/dockerfile-language-server-nodejs/issues\"\n",
+      "        },\n",
+      "        \"version\": 2\n",
+      "      },\n",
+      "      \"javascript-typescript-langserver\": {\n",
+      "        \"argv\": [\n",
+      "          \"/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/bin/node\",\n",
+      "          \"/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/javascript-typescript-langserver/lib/language-server-stdio.js\"\n",
+      "        ],\n",
+      "        \"display_name\": \"javascript-typescript-langserver\",\n",
+      "        \"install\": {\n",
+      "          \"jlpm\": \"jlpm add --dev javascript-typescript-langserver\",\n",
+      "          \"npm\": \"npm install --save-dev javascript-typescript-langserver\",\n",
+      "          \"yarn\": \"yarn add --dev javascript-typescript-langserver\"\n",
+      "        },\n",
+      "        \"languages\": [\n",
+      "          \"javascript\",\n",
+      "          \"jsx\",\n",
+      "          \"typescript\",\n",
+      "          \"typescript-jsx\",\n",
+      "          \"typescriptreact\",\n",
+      "          \"javascriptreact\"\n",
+      "        ],\n",
+      "        \"mime_types\": [\n",
+      "          \"application/typescript\",\n",
+      "          \"text/typescript-jsx\",\n",
+      "          \"text/javascript\",\n",
+      "          \"text/ecmascript\",\n",
+      "          \"application/javascript\",\n",
+      "          \"application/x-javascript\",\n",
+      "          \"application/ecmascript\",\n",
+      "          \"text/jsx\"\n",
+      "        ],\n",
+      "        \"troubleshoot\": \"Node.js is required to install this server.\",\n",
+      "        \"urls\": {\n",
+      "          \"home\": \"https://github.com/sourcegraph/javascript-typescript-langserver\",\n",
+      "          \"issues\": \"https://github.com/sourcegraph/javascript-typescript-langserver/issues\"\n",
+      "        },\n",
+      "        \"version\": 2\n",
+      "      },\n",
+      "      \"julia-language-server\": {\n",
+      "        \"argv\": [\n",
+      "          \"/p/software/jurecadc/stages/2020/software/Julia/1.6.1-gcccoremkl-10.3.0-2021.2.0/bin/julia\",\n",
+      "          \"--project=.\",\n",
+      "          \"-e\",\n",
+      "          \"using LanguageServer, LanguageServer.SymbolServer; runserver()\",\n",
+      "          \".\"\n",
+      "        ],\n",
+      "        \"display_name\": \"LanguageServer.jl\",\n",
+      "        \"install\": {\n",
+      "          \"julia\": \"using Pkg; Pkg.add(\\\"LanguageServer\\\")\"\n",
+      "        },\n",
+      "        \"languages\": [\n",
+      "          \"julia\"\n",
+      "        ],\n",
+      "        \"mime_types\": [\n",
+      "          \"text/julia\",\n",
+      "          \"text/x-julia\",\n",
+      "          \"application/julia\"\n",
+      "        ],\n",
+      "        \"urls\": {\n",
+      "          \"home\": \"https://github.com/julia-vscode/LanguageServer.jl\",\n",
+      "          \"issues\": \"https://github.com/julia-vscode/LanguageServer.jl/issues\"\n",
+      "        },\n",
+      "        \"version\": 2\n",
+      "      },\n",
+      "      \"pylsp\": {\n",
+      "        \"argv\": [\n",
+      "          \"/p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0/bin/python\",\n",
+      "          \"-m\",\n",
+      "          \"pylsp\"\n",
+      "        ],\n",
+      "        \"config_schema\": {\n",
+      "          \"properties\": {\n",
+      "            \"pylsp.configurationSources\": {\n",
+      "              \"default\": [\n",
+      "                \"pycodestyle\"\n",
+      "              ],\n",
+      "              \"description\": \"List of configuration sources to use.\",\n",
+      "              \"items\": {\n",
+      "                \"enum\": [\n",
+      "                  \"pycodestyle\",\n",
+      "                  \"pyflakes\"\n",
+      "                ],\n",
+      "                \"type\": \"string\"\n",
+      "              },\n",
+      "              \"type\": \"array\",\n",
+      "              \"uniqueItems\": true\n",
+      "            },\n",
+      "            \"pylsp.executable\": {\n",
+      "              \"default\": \"pylsp\",\n",
+      "              \"description\": \"Language server executable\",\n",
+      "              \"type\": \"string\"\n",
+      "            },\n",
+      "            \"pylsp.plugins.jedi_completion.enabled\": {\n",
+      "              \"default\": true,\n",
+      "              \"description\": \"Enable or disable the plugin.\",\n",
+      "              \"type\": \"boolean\"\n",
+      "            },\n",
+      "            \"pylsp.plugins.jedi_completion.include_params\": {\n",
+      "              \"default\": true,\n",
+      "              \"description\": \"Auto-completes methods and classes with tabstops for each parameter.\",\n",
+      "              \"type\": \"boolean\"\n",
+      "            },\n",
+      "            \"pylsp.plugins.jedi_definition.enabled\": {\n",
+      "              \"default\": true,\n",
+      "              \"description\": \"Enable or disable the plugin.\",\n",
+      "              \"type\": \"boolean\"\n",
+      "            },\n",
+      "            \"pylsp.plugins.jedi_definition.follow_builtin_imports\": {\n",
+      "              \"default\": true,\n",
+      "              \"description\": \"If follow_imports is True will decide if it follow builtin imports.\",\n",
+      "              \"type\": \"boolean\"\n",
+      "            },\n",
+      "            \"pylsp.plugins.jedi_definition.follow_imports\": {\n",
+      "              \"default\": true,\n",
+      "              \"description\": \"The goto call will follow imports.\",\n",
+      "              \"type\": \"boolean\"\n",
+      "            },\n",
+      "            \"pylsp.plugins.jedi_hover.enabled\": {\n",
+      "              \"default\": true,\n",
+      "              \"description\": \"Enable or disable the plugin.\",\n",
+      "              \"type\": \"boolean\"\n",
+      "            },\n",
+      "            \"pylsp.plugins.jedi_references.enabled\": {\n",
+      "              \"default\": true,\n",
+      "              \"description\": \"Enable or disable the plugin.\",\n",
+      "              \"type\": \"boolean\"\n",
+      "            },\n",
+      "            \"pylsp.plugins.jedi_signature_help.enabled\": {\n",
+      "              \"default\": true,\n",
+      "              \"description\": \"Enable or disable the plugin.\",\n",
+      "              \"type\": \"boolean\"\n",
+      "            },\n",
+      "            \"pylsp.plugins.jedi_symbols.all_scopes\": {\n",
+      "              \"default\": true,\n",
+      "              \"description\": \"If True lists the names of all scopes instead of only the module namespace.\",\n",
+      "              \"type\": \"boolean\"\n",
+      "            },\n",
+      "            \"pylsp.plugins.jedi_symbols.enabled\": {\n",
+      "              \"default\": true,\n",
+      "              \"description\": \"Enable or disable the plugin.\",\n",
+      "              \"type\": \"boolean\"\n",
+      "            },\n",
+      "            \"pylsp.plugins.mccabe.enabled\": {\n",
+      "              \"default\": true,\n",
+      "              \"description\": \"Enable or disable the plugin.\",\n",
+      "              \"type\": \"boolean\"\n",
+      "            },\n",
+      "            \"pylsp.plugins.mccabe.threshold\": {\n",
+      "              \"default\": 15,\n",
+      "              \"description\": \"The minimum threshold that triggers warnings about cyclomatic complexity.\",\n",
+      "              \"type\": \"number\"\n",
+      "            },\n",
+      "            \"pylsp.plugins.preload.enabled\": {\n",
+      "              \"default\": true,\n",
+      "              \"description\": \"Enable or disable the plugin.\",\n",
+      "              \"type\": \"boolean\"\n",
+      "            },\n",
+      "            \"pylsp.plugins.preload.modules\": {\n",
+      "              \"default\": null,\n",
+      "              \"description\": \"List of modules to import on startup\",\n",
+      "              \"items\": {\n",
+      "                \"type\": \"string\"\n",
+      "              },\n",
+      "              \"type\": \"array\",\n",
+      "              \"uniqueItems\": true\n",
+      "            },\n",
+      "            \"pylsp.plugins.pycodestyle.enabled\": {\n",
+      "              \"default\": true,\n",
+      "              \"description\": \"Enable or disable the plugin.\",\n",
+      "              \"type\": \"boolean\"\n",
+      "            },\n",
+      "            \"pylsp.plugins.pycodestyle.exclude\": {\n",
+      "              \"default\": null,\n",
+      "              \"description\": \"Exclude files or directories which match these patterns.\",\n",
+      "              \"items\": {\n",
+      "                \"type\": \"string\"\n",
+      "              },\n",
+      "              \"type\": \"array\",\n",
+      "              \"uniqueItems\": true\n",
+      "            },\n",
+      "            \"pylsp.plugins.pycodestyle.filename\": {\n",
+      "              \"default\": null,\n",
+      "              \"description\": \"When parsing directories, only check filenames matching these patterns.\",\n",
+      "              \"items\": {\n",
+      "                \"type\": \"string\"\n",
+      "              },\n",
+      "              \"type\": \"array\",\n",
+      "              \"uniqueItems\": true\n",
+      "            },\n",
+      "            \"pylsp.plugins.pycodestyle.hangClosing\": {\n",
+      "              \"default\": null,\n",
+      "              \"description\": \"Hang closing bracket instead of matching indentation of opening bracket's line.\",\n",
+      "              \"type\": \"boolean\"\n",
+      "            },\n",
+      "            \"pylsp.plugins.pycodestyle.ignore\": {\n",
+      "              \"default\": null,\n",
+      "              \"description\": \"Ignore errors and warnings\",\n",
+      "              \"items\": {\n",
+      "                \"type\": \"string\"\n",
+      "              },\n",
+      "              \"type\": \"array\",\n",
+      "              \"uniqueItems\": true\n",
+      "            },\n",
+      "            \"pylsp.plugins.pycodestyle.maxLineLength\": {\n",
+      "              \"default\": null,\n",
+      "              \"description\": \"Set maximum allowed line length.\",\n",
+      "              \"type\": \"number\"\n",
+      "            },\n",
+      "            \"pylsp.plugins.pycodestyle.select\": {\n",
+      "              \"default\": null,\n",
+      "              \"description\": \"Select errors and warnings\",\n",
+      "              \"items\": {\n",
+      "                \"type\": \"string\"\n",
+      "              },\n",
+      "              \"type\": \"array\",\n",
+      "              \"uniqueItems\": true\n",
+      "            },\n",
+      "            \"pylsp.plugins.pydocstyle.addIgnore\": {\n",
+      "              \"default\": null,\n",
+      "              \"description\": \"Ignore errors and warnings in addition to the specified convention.\",\n",
+      "              \"items\": {\n",
+      "                \"type\": \"string\"\n",
+      "              },\n",
+      "              \"type\": \"array\",\n",
+      "              \"uniqueItems\": true\n",
+      "            },\n",
+      "            \"pylsp.plugins.pydocstyle.addSelect\": {\n",
+      "              \"default\": null,\n",
+      "              \"description\": \"Select errors and warnings in addition to the specified convention.\",\n",
+      "              \"items\": {\n",
+      "                \"type\": \"string\"\n",
+      "              },\n",
+      "              \"type\": \"array\",\n",
+      "              \"uniqueItems\": true\n",
+      "            },\n",
+      "            \"pylsp.plugins.pydocstyle.convention\": {\n",
+      "              \"default\": null,\n",
+      "              \"description\": \"Choose the basic list of checked errors by specifying an existing convention.\",\n",
+      "              \"enum\": [\n",
+      "                \"pep257\",\n",
+      "                \"numpy\"\n",
+      "              ],\n",
+      "              \"type\": \"string\"\n",
+      "            },\n",
+      "            \"pylsp.plugins.pydocstyle.enabled\": {\n",
+      "              \"default\": false,\n",
+      "              \"description\": \"Enable or disable the plugin.\",\n",
+      "              \"type\": \"boolean\"\n",
+      "            },\n",
+      "            \"pylsp.plugins.pydocstyle.ignore\": {\n",
+      "              \"default\": null,\n",
+      "              \"description\": \"Ignore errors and warnings\",\n",
+      "              \"items\": {\n",
+      "                \"type\": \"string\"\n",
+      "              },\n",
+      "              \"type\": \"array\",\n",
+      "              \"uniqueItems\": true\n",
+      "            },\n",
+      "            \"pylsp.plugins.pydocstyle.match\": {\n",
+      "              \"default\": \"(?!test_).*\\\\.py\",\n",
+      "              \"description\": \"Check only files that exactly match the given regular expression; default is to match files that don't start with 'test_' but end with '.py'.\",\n",
+      "              \"type\": \"string\"\n",
+      "            },\n",
+      "            \"pylsp.plugins.pydocstyle.matchDir\": {\n",
+      "              \"default\": \"[^\\\\.].*\",\n",
+      "              \"description\": \"Search only dirs that exactly match the given regular expression; default is to match dirs which do not begin with a dot.\",\n",
+      "              \"type\": \"string\"\n",
+      "            },\n",
+      "            \"pylsp.plugins.pydocstyle.select\": {\n",
+      "              \"default\": null,\n",
+      "              \"description\": \"Select errors and warnings\",\n",
+      "              \"items\": {\n",
+      "                \"type\": \"string\"\n",
+      "              },\n",
+      "              \"type\": \"array\",\n",
+      "              \"uniqueItems\": true\n",
+      "            },\n",
+      "            \"pylsp.plugins.pyflakes.enabled\": {\n",
+      "              \"default\": true,\n",
+      "              \"description\": \"Enable or disable the plugin.\",\n",
+      "              \"type\": \"boolean\"\n",
+      "            },\n",
+      "            \"pylsp.plugins.pylint.args\": {\n",
+      "              \"default\": null,\n",
+      "              \"description\": \"Arguments to pass to pylint.\",\n",
+      "              \"items\": {\n",
+      "                \"type\": \"string\"\n",
+      "              },\n",
+      "              \"type\": \"array\",\n",
+      "              \"uniqueItems\": false\n",
+      "            },\n",
+      "            \"pylsp.plugins.pylint.enabled\": {\n",
+      "              \"default\": true,\n",
+      "              \"description\": \"Enable or disable the plugin.\",\n",
+      "              \"type\": \"boolean\"\n",
+      "            },\n",
+      "            \"pylsp.plugins.rope_completion.enabled\": {\n",
+      "              \"default\": true,\n",
+      "              \"description\": \"Enable or disable the plugin.\",\n",
+      "              \"type\": \"boolean\"\n",
+      "            },\n",
+      "            \"pylsp.plugins.yapf.enabled\": {\n",
+      "              \"default\": true,\n",
+      "              \"description\": \"Enable or disable the plugin.\",\n",
+      "              \"type\": \"boolean\"\n",
+      "            },\n",
+      "            \"pylsp.rope.extensionModules\": {\n",
+      "              \"default\": null,\n",
+      "              \"description\": \"Builtin and c-extension modules that are allowed to be imported and inspected by rope.\",\n",
+      "              \"type\": \"string\"\n",
+      "            },\n",
+      "            \"pylsp.rope.ropeFolder\": {\n",
+      "              \"default\": null,\n",
+      "              \"description\": \"The name of the folder in which rope stores project configurations and data.  Pass `null` for not using such a folder at all.\",\n",
+      "              \"items\": {\n",
+      "                \"type\": \"string\"\n",
+      "              },\n",
+      "              \"type\": \"array\",\n",
+      "              \"uniqueItems\": true\n",
+      "            }\n",
+      "          },\n",
+      "          \"title\": \"Python Language Server Configuration\",\n",
+      "          \"type\": \"object\"\n",
+      "        },\n",
+      "        \"display_name\": \"python-lsp-server (pylsp)\",\n",
+      "        \"env\": {\n",
+      "          \"PYTHONUNBUFFERED\": \"1\"\n",
+      "        },\n",
+      "        \"extend\": [\n",
+      "          {\n",
+      "            \"display_name\": \"pyls-mypy\",\n",
+      "            \"install\": {\n",
+      "              \"conda\": \"conda install pyls-mypy\",\n",
+      "              \"pip\": \"pip install pyls-mypy\"\n",
+      "            }\n",
+      "          },\n",
+      "          {\n",
+      "            \"display_name\": \"pyls-black\",\n",
+      "            \"install\": {\n",
+      "              \"conda\": \"conda install pyls-black\",\n",
+      "              \"pip\": \"pip install pyls-black\"\n",
+      "            }\n",
+      "          },\n",
+      "          {\n",
+      "            \"display_name\": \"pyls-isort\",\n",
+      "            \"install\": {\n",
+      "              \"conda\": \"conda install pyls-isort\",\n",
+      "              \"pip\": \"pip install pyls-isort\"\n",
+      "            }\n",
+      "          },\n",
+      "          {\n",
+      "            \"display_name\": \"pyls-memestra\",\n",
+      "            \"install\": {\n",
+      "              \"conda\": \"conda install pyls-memestra\",\n",
+      "              \"pip\": \"pip install pyls-memestra\"\n",
+      "            }\n",
+      "          }\n",
+      "        ],\n",
+      "        \"install\": {\n",
+      "          \"conda\": \"conda install -c conda-forge python-lsp-server\",\n",
+      "          \"pip\": \"pip install 'python-lsp-server[all]'\"\n",
+      "        },\n",
+      "        \"languages\": [\n",
+      "          \"python\"\n",
+      "        ],\n",
+      "        \"mime_types\": [\n",
+      "          \"text/python\",\n",
+      "          \"text/x-ipython\"\n",
+      "        ],\n",
+      "        \"urls\": {\n",
+      "          \"home\": \"https://github.com/python-lsp/python-lsp-server\",\n",
+      "          \"issues\": \"https://github.com/python-lsp/python-lsp-server/issues\"\n",
+      "        },\n",
+      "        \"version\": 2\n",
+      "      },\n",
+      "      \"pyright\": {\n",
+      "        \"argv\": [\n",
+      "          \"/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/bin/node\",\n",
+      "          \"/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/pyright/langserver.index.js\",\n",
+      "          \"--stdio\"\n",
+      "        ],\n",
+      "        \"display_name\": \"pyright\",\n",
+      "        \"install\": {\n",
+      "          \"jlpm\": \"jlpm add --dev pyright\",\n",
+      "          \"npm\": \"npm install --save-dev pyright\",\n",
+      "          \"yarn\": \"yarn add --dev pyright\"\n",
+      "        },\n",
+      "        \"languages\": [\n",
+      "          \"python\"\n",
+      "        ],\n",
+      "        \"mime_types\": [\n",
+      "          \"text/python\",\n",
+      "          \"text/x-ipython\"\n",
+      "        ],\n",
+      "        \"troubleshoot\": \"Node.js is required to install this server.\",\n",
+      "        \"urls\": {\n",
+      "          \"home\": \"https://github.com/microsoft/pyright\",\n",
+      "          \"issues\": \"https://github.com/microsoft/pyright/issues\"\n",
+      "        },\n",
+      "        \"version\": 2\n",
+      "      },\n",
+      "      \"sql-language-server\": {\n",
+      "        \"argv\": [\n",
+      "          \"/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/bin/node\",\n",
+      "          \"/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/sql-language-server/dist/bin/cli.js\",\n",
+      "          \"up\",\n",
+      "          \"--method\",\n",
+      "          \"stdio\"\n",
+      "        ],\n",
+      "        \"config_schema\": {\n",
+      "          \"properties\": {\n",
+      "            \"personalConfig\": {\n",
+      "              \"connections\": {\n",
+      "                \"default\": [\n",
+      "                  {\n",
+      "                    \"adapter\": \"sqlite3\",\n",
+      "                    \"filename\": \":memory:\",\n",
+      "                    \"name\": \"default sqlite3 connection\",\n",
+      "                    \"projectPaths\": [\n",
+      "                      \".\"\n",
+      "                    ]\n",
+      "                  }\n",
+      "                ],\n",
+      "                \"items\": {\n",
+      "                  \"properties\": {\n",
+      "                    \"adapter\": {\n",
+      "                      \"description\": \"Database type\",\n",
+      "                      \"enum\": [\n",
+      "                        \"mysql\",\n",
+      "                        \"postgresql\",\n",
+      "                        \"postgres\",\n",
+      "                        \"sqlite3\"\n",
+      "                      ],\n",
+      "                      \"type\": \"string\"\n",
+      "                    },\n",
+      "                    \"database\": {\n",
+      "                      \"description\": \"Database name\",\n",
+      "                      \"type\": \"string\"\n",
+      "                    },\n",
+      "                    \"filename\": {\n",
+      "                      \"description\": \"Database filename - only for sqlite3 (required); use ':memory:' for in-memory database\",\n",
+      "                      \"type\": \"string\"\n",
+      "                    },\n",
+      "                    \"host\": {\n",
+      "                      \"description\": \"Database host\",\n",
+      "                      \"type\": \"string\"\n",
+      "                    },\n",
+      "                    \"name\": {\n",
+      "                      \"description\": \"Connection name (free-form text)\",\n",
+      "                      \"type\": \"string\"\n",
+      "                    },\n",
+      "                    \"password\": {\n",
+      "                      \"description\": \"Database password\",\n",
+      "                      \"type\": \"string\"\n",
+      "                    },\n",
+      "                    \"port\": {\n",
+      "                      \"description\": \"Database port\",\n",
+      "                      \"type\": \"number\"\n",
+      "                    },\n",
+      "                    \"projectPaths\": {\n",
+      "                      \"description\": \"Project path that you want to apply (if you don't set it configuration will not apply automatically when lsp's started up)\",\n",
+      "                      \"items\": {\n",
+      "                        \"type\": \"string\"\n",
+      "                      },\n",
+      "                      \"type\": \"array\"\n",
+      "                    },\n",
+      "                    \"user\": {\n",
+      "                      \"description\": \"Database user\",\n",
+      "                      \"type\": \"string\"\n",
+      "                    }\n",
+      "                  },\n",
+      "                  \"type\": \"object\"\n",
+      "                },\n",
+      "                \"type\": \"array\"\n",
+      "              }\n",
+      "            }\n",
+      "          }\n",
+      "        },\n",
+      "        \"display_name\": \"sql-language-server\",\n",
+      "        \"install\": {\n",
+      "          \"jlpm\": \"jlpm add --dev sql-language-server\",\n",
+      "          \"npm\": \"npm install --save-dev sql-language-server\",\n",
+      "          \"yarn\": \"yarn add --dev sql-language-server\"\n",
+      "        },\n",
+      "        \"languages\": [\n",
+      "          \"sql\"\n",
+      "        ],\n",
+      "        \"mime_types\": [\n",
+      "          \"application/sql\",\n",
+      "          \"text/sql\",\n",
+      "          \"text/x-sql\",\n",
+      "          \"text/x-mysql\",\n",
+      "          \"text/x-mariadb\",\n",
+      "          \"text/x-pgsql\"\n",
+      "        ],\n",
+      "        \"troubleshoot\": \"Node.js is required to install this server.\",\n",
+      "        \"urls\": {\n",
+      "          \"home\": \"https://github.com/joe-re/sql-language-server\",\n",
+      "          \"issues\": \"https://github.com/joe-re/sql-language-server/issues\"\n",
+      "        },\n",
+      "        \"version\": 2\n",
+      "      },\n",
+      "      \"vscode-css-languageserver-bin\": {\n",
+      "        \"argv\": [\n",
+      "          \"/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/bin/node\",\n",
+      "          \"/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/vscode-css-languageserver-bin/cssServerMain.js\",\n",
+      "          \"--stdio\"\n",
+      "        ],\n",
+      "        \"display_name\": \"vscode-css-languageserver-bin\",\n",
+      "        \"install\": {\n",
+      "          \"jlpm\": \"jlpm add --dev vscode-css-languageserver-bin\",\n",
+      "          \"npm\": \"npm install --save-dev vscode-css-languageserver-bin\",\n",
+      "          \"yarn\": \"yarn add --dev vscode-css-languageserver-bin\"\n",
+      "        },\n",
+      "        \"languages\": [\n",
+      "          \"css\",\n",
+      "          \"less\",\n",
+      "          \"scss\"\n",
+      "        ],\n",
+      "        \"mime_types\": [\n",
+      "          \"text/x-scss\",\n",
+      "          \"text/css\",\n",
+      "          \"text/x-less\"\n",
+      "        ],\n",
+      "        \"troubleshoot\": \"Node.js is required to install this server.\",\n",
+      "        \"urls\": {\n",
+      "          \"home\": \"https://github.com/vscode-langservers/vscode-css-languageserver-bin\",\n",
+      "          \"issues\": \"https://github.com/vscode-langservers/vscode-css-languageserver-bin/issues\"\n",
+      "        },\n",
+      "        \"version\": 2\n",
+      "      },\n",
+      "      \"vscode-html-languageserver-bin\": {\n",
+      "        \"argv\": [\n",
+      "          \"/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/bin/node\",\n",
+      "          \"/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/vscode-html-languageserver-bin/htmlServerMain.js\",\n",
+      "          \"--stdio\"\n",
+      "        ],\n",
+      "        \"display_name\": \"vscode-html-languageserver-bin\",\n",
+      "        \"install\": {\n",
+      "          \"jlpm\": \"jlpm add --dev vscode-html-languageserver-bin\",\n",
+      "          \"npm\": \"npm install --save-dev vscode-html-languageserver-bin\",\n",
+      "          \"yarn\": \"yarn add --dev vscode-html-languageserver-bin\"\n",
+      "        },\n",
+      "        \"languages\": [\n",
+      "          \"html\"\n",
+      "        ],\n",
+      "        \"mime_types\": [\n",
+      "          \"text/html\"\n",
+      "        ],\n",
+      "        \"troubleshoot\": \"Node.js is required to install this server.\",\n",
+      "        \"urls\": {\n",
+      "          \"home\": \"https://github.com/vscode-langservers/vscode-html-languageserver-bin\",\n",
+      "          \"issues\": \"https://github.com/vscode-langservers/vscode-html-languageserver-bin/issues\"\n",
+      "        },\n",
+      "        \"version\": 2\n",
+      "      },\n",
+      "      \"vscode-json-languageserver-bin\": {\n",
+      "        \"argv\": [\n",
+      "          \"/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/bin/node\",\n",
+      "          \"/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/vscode-json-languageserver-bin/jsonServerMain.js\",\n",
+      "          \"--stdio\"\n",
+      "        ],\n",
+      "        \"display_name\": \"vscode-json-languageserver-bin\",\n",
+      "        \"install\": {\n",
+      "          \"jlpm\": \"jlpm add --dev vscode-json-languageserver-bin\",\n",
+      "          \"npm\": \"npm install --save-dev vscode-json-languageserver-bin\",\n",
+      "          \"yarn\": \"yarn add --dev vscode-json-languageserver-bin\"\n",
+      "        },\n",
+      "        \"languages\": [\n",
+      "          \"json\"\n",
+      "        ],\n",
+      "        \"mime_types\": [\n",
+      "          \"application/json\",\n",
+      "          \"application/x-json\",\n",
+      "          \"application/ld+json\"\n",
+      "        ],\n",
+      "        \"troubleshoot\": \"Node.js is required to install this server.\",\n",
+      "        \"urls\": {\n",
+      "          \"home\": \"https://github.com/vscode-langservers/vscode-json-languageserver-bin\",\n",
+      "          \"issues\": \"https://github.com/vscode-langservers/vscode-json-languageserver-bin/issues\"\n",
+      "        },\n",
+      "        \"version\": 2\n",
+      "      },\n",
+      "      \"yaml-language-server\": {\n",
+      "        \"argv\": [\n",
+      "          \"/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/bin/node\",\n",
+      "          \"/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/staging/node_modules/yaml-language-server/bin/yaml-language-server\",\n",
+      "          \"--stdio\"\n",
+      "        ],\n",
+      "        \"config_schema\": {\n",
+      "          \"properties\": {\n",
+      "            \"yaml.completion\": {\n",
+      "              \"default\": true,\n",
+      "              \"description\": \"Enable/disable completion feature\",\n",
+      "              \"type\": \"boolean\"\n",
+      "            },\n",
+      "            \"yaml.customTags\": {\n",
+      "              \"default\": [],\n",
+      "              \"description\": \"Custom tags for the parser to use\",\n",
+      "              \"type\": \"array\"\n",
+      "            },\n",
+      "            \"yaml.format.bracketSpacing\": {\n",
+      "              \"default\": true,\n",
+      "              \"description\": \"Print spaces between brackets in objects\",\n",
+      "              \"type\": \"boolean\"\n",
+      "            },\n",
+      "            \"yaml.format.enable\": {\n",
+      "              \"default\": true,\n",
+      "              \"description\": \"Enable/disable default YAML formatter\",\n",
+      "              \"type\": \"boolean\"\n",
+      "            },\n",
+      "            \"yaml.format.printWidth\": {\n",
+      "              \"default\": 80,\n",
+      "              \"description\": \"Specify the line length that the printer will wrap on\",\n",
+      "              \"type\": \"integer\"\n",
+      "            },\n",
+      "            \"yaml.format.proseWrap\": {\n",
+      "              \"default\": \"preserve\",\n",
+      "              \"description\": \"Always: wrap prose if it exeeds the print width, Never: never wrap the prose, Preserve: wrap prose as-is\",\n",
+      "              \"enum\": [\n",
+      "                \"preserve\",\n",
+      "                \"never\",\n",
+      "                \"always\"\n",
+      "              ],\n",
+      "              \"type\": \"string\"\n",
+      "            },\n",
+      "            \"yaml.format.singleQuote\": {\n",
+      "              \"default\": false,\n",
+      "              \"description\": \"Use single quotes instead of double quotes\",\n",
+      "              \"type\": \"boolean\"\n",
+      "            },\n",
+      "            \"yaml.hover\": {\n",
+      "              \"default\": true,\n",
+      "              \"description\": \"Enable/disable hover feature\",\n",
+      "              \"type\": \"boolean\"\n",
+      "            },\n",
+      "            \"yaml.schemaStore.enable\": {\n",
+      "              \"default\": true,\n",
+      "              \"description\": \"Automatically pull available YAML schemas from JSON Schema Store\",\n",
+      "              \"type\": \"boolean\"\n",
+      "            },\n",
+      "            \"yaml.schemas\": {\n",
+      "              \"default\": {},\n",
+      "              \"description\": \"Associate schemas to YAML files in the current workspace\",\n",
+      "              \"type\": \"object\"\n",
+      "            },\n",
+      "            \"yaml.trace.server\": {\n",
+      "              \"default\": \"off\",\n",
+      "              \"description\": \"Traces the communication between VSCode and the YAML language service.\",\n",
+      "              \"enum\": [\n",
+      "                \"off\",\n",
+      "                \"messages\",\n",
+      "                \"verbose\"\n",
+      "              ],\n",
+      "              \"type\": \"string\"\n",
+      "            },\n",
+      "            \"yaml.validate\": {\n",
+      "              \"default\": true,\n",
+      "              \"description\": \"Enable/disable validation feature\",\n",
+      "              \"type\": \"boolean\"\n",
+      "            }\n",
+      "          }\n",
+      "        },\n",
+      "        \"display_name\": \"yaml-language-server\",\n",
+      "        \"install\": {\n",
+      "          \"jlpm\": \"jlpm add --dev yaml-language-server\",\n",
+      "          \"npm\": \"npm install --save-dev yaml-language-server\",\n",
+      "          \"yarn\": \"yarn add --dev yaml-language-server\"\n",
+      "        },\n",
+      "        \"languages\": [\n",
+      "          \"yaml\"\n",
+      "        ],\n",
+      "        \"mime_types\": [\n",
+      "          \"text/x-yaml\",\n",
+      "          \"text/yaml\"\n",
+      "        ],\n",
+      "        \"troubleshoot\": \"Node.js is required to install this server.\",\n",
+      "        \"urls\": {\n",
+      "          \"home\": \"https://github.com/redhat-developer/yaml-language-server\",\n",
+      "          \"issues\": \"https://github.com/redhat-developer/yaml-language-server/issues\"\n",
+      "        },\n",
+      "        \"version\": 2\n",
+      "      }\n",
+      "    }\n",
+      "[I 2022-04-05 17:57:02.113 SingleUserNotebookApp manager:367] jupyter_lsp | extension was successfully loaded.\n",
+      "[D 2022-04-05 17:57:02.113 SingleUserNotebookApp __init__:228] [jupyter_nbextensions_configurator] Loading 0.4.1\n",
+      "[D 2022-04-05 17:57:02.113 SingleUserNotebookApp __init__:233] [jupyter_nbextensions_configurator]   Editing templates path to add /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/lib/python3.8/site-packages/jupyter_nbextensions_configurator/templates\n",
+      "[D 2022-04-05 17:57:02.113 SingleUserNotebookApp __init__:245] [jupyter_nbextensions_configurator]   Editing nbextensions path to add /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/lib/python3.8/site-packages/jupyter_nbextensions_configurator/static\n",
+      "[D 2022-04-05 17:57:02.113 SingleUserNotebookApp __init__:251] [jupyter_nbextensions_configurator]   Adding new handlers\n",
+      "[I 2022-04-05 17:57:02.113 SingleUserNotebookApp __init__:259] [jupyter_nbextensions_configurator] enabled 0.4.1\n",
+      "[I 2022-04-05 17:57:02.113 SingleUserNotebookApp manager:367] jupyter_nbextensions_configurator | extension was successfully loaded.\n",
+      "[I 2022-04-05 17:57:02.114 SingleUserNotebookApp manager:367] jupyter_resource_usage | extension was successfully loaded.\n",
+      "[I 2022-04-05 17:57:02.115 SingleUserNotebookApp manager:367] jupyter_server_mathjax | extension was successfully loaded.\n",
+      "Created secure socket directory for Xpra: /tmp/xpra_sockets_12885g1qaikdh\n",
+      "Created secure password file for Xpra: /tmp/tmpbk5cbanb\n",
+      "Created secure encryption key file for Xpra: /tmp/tmp830qa8q_\n",
+      "Xpra command: /p/software/jurecadc/stages/2020/software/JupyterProxy-XpraHTML5/0.3.2-gcccoremkl-10.3.0-2021.2.0-2021.3.2/lib/python3.8/site-packages/jupyter_xprahtml5_proxy/bin/xpra start --html=on --bind-tcp=0.0.0.0:{port} --start=xterm -fa Monospace --tcp-auth=file:filename=/tmp/tmpbk5cbanb --tcp-encryption=AES --tcp-encryption-keyfile=/tmp/tmp830qa8q_ --clipboard-direction=both --no-mdns --no-bell --no-speaker --no-printing --no-microphone --no-notifications --no-systemd-run --sharing --no-daemon\n",
+      "[I 2022-04-05 17:57:02.488 SingleUserNotebookApp manager:367] jupyter_server_proxy | extension was successfully loaded.\n",
+      "[I 2022-04-05 17:57:02.489 LabApp] JupyterLab extension loaded from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/lib/python3.8/site-packages/jupyterlab\n",
+      "[I 2022-04-05 17:57:02.489 LabApp] JupyterLab application directory is /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab\n",
+      "[I 2022-04-05 17:57:02.546 SingleUserNotebookApp manager:367] jupyterlab | extension was successfully loaded.\n",
+      "[I 2022-04-05 17:57:02.547 SingleUserNotebookApp manager:367] jupyterlab_code_formatter | extension was successfully loaded.\n",
+      "[I 2022-04-05 17:57:02.553 SingleUserNotebookApp manager:367] jupyterlab_git | extension was successfully loaded.\n",
+      "[I 2022-04-05 17:57:02.553 SingleUserNotebookApp manager:367] jupyterlab_gitlab | extension was successfully loaded.\n",
+      "[I 2022-04-05 17:57:02.554 SingleUserNotebookApp manager:367] jupyterlab_hdf | extension was successfully loaded.\n",
+      "[I 2022-04-05 17:57:02.554 SingleUserNotebookApp manager:367] jupyterlab_iframe | extension was successfully loaded.\n",
+      "[I 2022-04-05 17:57:02.554 SingleUserNotebookApp manager:367] jupyterlab_iframe.extension | extension was successfully loaded.\n",
+      "[I 2022-04-05 17:57:02.564 SingleUserNotebookApp manager:367] jupyterlab_latex | extension was successfully loaded.\n",
+      "[I 2022-04-05 17:57:02.564 SingleUserNotebookApp dictionaries:127] Looking for hunspell dictionaries for spellchecker in ['/p/home/jusers/goebbert1/jureca/.local/share/jupyter/dictionaries', '/p/software/jurecadc/stages/2020/software/JupyterKernel-Ruby/2.7.2-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/dictionaries', '/p/home/jusers/goebbert1/jureca/.local/share/jupyter/dictionaries', '/p/software/jurecadc/stages/2020/software/JupyterKernel-R/4.0.2-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/dictionaries', '/p/home/jusers/goebbert1/jureca/.local/share/jupyter/dictionaries', '/p/software/jurecadc/stages/2020/software/JupyterKernel-PyDeepLearning/1.1-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/dictionaries', '/p/home/jusers/goebbert1/jureca/.local/share/jupyter/dictionaries', '/p/software/jurecadc/stages/2020/software/JupyterKernel-PyQuantum/1.1-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/dictionaries', '/p/home/jusers/goebbert1/jureca/.local/share/jupyter/dictionaries', '/p/software/jurecadc/stages/2020/software/JupyterKernel-PyParaView/5.9.1-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/dictionaries', '/p/home/jusers/goebbert1/jureca/.local/share/jupyter/dictionaries', '/p/software/jurecadc/stages/2020/software/JupyterKernel-Octave/6.1.0-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/dictionaries', '/p/home/jusers/goebbert1/jureca/.local/share/jupyter/dictionaries', '/p/software/jurecadc/stages/2020/software/JupyterKernel-Julia/1.6.1-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/dictionaries', '/p/home/jusers/goebbert1/jureca/.local/share/jupyter/dictionaries', '/p/software/jurecadc/stages/2020/software/JupyterKernel-JavaScript/5.2.0-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/dictionaries', '/p/home/jusers/goebbert1/jureca/.local/share/jupyter/dictionaries', '/p/software/jurecadc/stages/2020/software/JupyterKernel-Cling/0.9-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/dictionaries', '/p/home/jusers/goebbert1/jureca/.local/share/jupyter/dictionaries', '/p/software/jurecadc/stages/2020/software/JupyterKernel-Bash/0.7.1-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/dictionaries', '/p/home/jusers/goebbert1/jureca/.local/share/jupyter/dictionaries', '/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/dictionaries', '/p/home/jusers/goebbert1/jureca/.local/share/jupyter/dictionaries', '/p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0/share/jupyter/dictionaries', '/usr/local/share/jupyter/dictionaries', '/usr/share/jupyter/dictionaries', '/usr/share/hunspell', '/usr/share/myspell', '/usr/share/myspell/dicts']\n",
+      "[I 2022-04-05 17:57:02.786 SingleUserNotebookApp dictionaries:132] Located hunspell dictionaries for spellchecker: [{'path': PosixPath('/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/dictionaries'), 'code': 'en_CA', 'id': 'en_CA', 'dic': 'en_CA.dic', 'aff': 'en_CA.aff', 'name': 'English (Canada)'}, {'path': PosixPath('/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/dictionaries'), 'code': 'de_CH_frami', 'id': 'de_CH_frami', 'dic': 'de_CH_frami.dic', 'aff': 'de_CH_frami.aff', 'name': 'Deutsch (Schweiz)'}, {'path': PosixPath('/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/dictionaries'), 'code': 'de_DE_frami', 'id': 'de_DE_frami', 'dic': 'de_DE_frami.dic', 'aff': 'de_DE_frami.aff', 'name': 'Deutsch (Deutschland)'}, {'path': PosixPath('/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/dictionaries'), 'code': 'fr', 'id': 'fr', 'dic': 'fr.dic', 'aff': 'fr.aff', 'name': 'français'}, {'path': PosixPath('/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/dictionaries'), 'code': 'de_AT_frami', 'id': 'de_AT_frami', 'dic': 'de_AT_frami.dic', 'aff': 'de_AT_frami.aff', 'name': 'Deutsch (Österreich)'}, {'path': PosixPath('/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/dictionaries'), 'code': 'en_AU', 'id': 'en_AU', 'dic': 'en_AU.dic', 'aff': 'en_AU.aff', 'name': 'English (Australia)'}, {'path': PosixPath('/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/dictionaries'), 'code': 'en_GB', 'id': 'en_GB-ise', 'dic': 'en_GB-ise.dic', 'aff': 'en_GB-ise.aff', 'name': 'English (United Kingdom)'}, {'path': PosixPath('/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/dictionaries'), 'code': 'es_ES', 'id': 'es_ES', 'dic': 'es_ES.dic', 'aff': 'es_ES.aff', 'name': 'español (España)'}, {'path': PosixPath('/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/dictionaries'), 'code': 'pt_PT', 'id': 'pt_PT', 'dic': 'pt_PT.dic', 'aff': 'pt_PT.aff', 'name': 'português (Portugal)'}, {'path': PosixPath('/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/dictionaries'), 'code': 'en_US', 'id': 'en_US', 'dic': 'en_US.dic', 'aff': 'en_US.aff', 'name': 'English (United States)'}]\n",
+      "[I 2022-04-05 17:57:02.788 SingleUserNotebookApp __init__:35] Registered jupyterlab_spellchecker extension at URL path /spellchecker\n",
+      "[I 2022-04-05 17:57:02.788 SingleUserNotebookApp manager:367] jupyterlab_spellchecker | extension was successfully loaded.\n",
+      "[D 2022-04-05 17:57:03.013 SingleUserNotebookApp loader:499] Using default logger\n",
+      "[D 2022-04-05 17:57:03.013 SingleUserNotebookApp loader:499] Using default logger\n",
+      "[D 2022-04-05 17:57:03.014 SingleUserNotebookApp loader:499] Using default logger\n",
+      "[D 2022-04-05 17:57:03.014 SingleUserNotebookApp loader:499] Using default logger\n",
+      "[D 2022-04-05 17:57:03.014 SingleUserNotebookApp loader:499] Using default logger\n",
+      "[D 2022-04-05 17:57:03.014 SingleUserNotebookApp loader:499] Using default logger\n",
+      "[D 2022-04-05 17:57:03.014 SingleUserNotebookApp loader:499] Using default logger\n",
+      "[I 2022-04-05 17:57:03.015 SingleUserNotebookApp manager:367] nbdime | extension was successfully loaded.\n",
+      "[I 2022-04-05 17:57:03.027 SingleUserNotebookApp manager:367] voila.server_extension | extension was successfully loaded.\n",
+      "[I 2022-04-05 17:57:03.028 SingleUserNotebookApp mixins:576] Starting jupyterhub-singleuser server version 1.4.2\n",
+      "[W 2022-04-05 17:57:03.039 SingleUserNotebookApp _version:70] jupyterhub version 1.3.0 != jupyterhub-singleuser version 1.4.2. This could cause failure to authenticate and result in redirect loops!\n",
+      "[I 2022-04-05 17:57:03.039 SingleUserNotebookApp serverapp:2577] Serving notebooks from local directory: /p/home/jusers/goebbert1/jureca\n",
+      "[I 2022-04-05 17:57:03.039 SingleUserNotebookApp serverapp:2577] Jupyter Server 1.11.1 is running at:\n",
+      "[I 2022-04-05 17:57:03.039 SingleUserNotebookApp serverapp:2577] http://jrc0437:41441/user/j.goebbert@fz-juelich.de/jureca/lab/workspaces/jureca\n",
+      "[I 2022-04-05 17:57:03.039 SingleUserNotebookApp serverapp:2577]  or http://127.0.0.1:41441/user/j.goebbert@fz-juelich.de/jureca/lab/workspaces/jureca\n",
+      "[I 2022-04-05 17:57:03.039 SingleUserNotebookApp serverapp:2578] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).\n",
+      "[I 2022-04-05 17:57:03.060 SingleUserNotebookApp mixins:556] Updating Hub with activity every 300 seconds\n",
+      "[D 2022-04-05 17:57:03.061 SingleUserNotebookApp mixins:518] Notifying Hub of activity 2022-04-05T15:57:00.697610Z\n",
+      "[D 2022-04-05 17:57:05.977 SingleUserNotebookApp config_manager:97] Paths used for configuration of page_config: \n",
+      "    \t/etc/jupyter/labconfig/page_config.json\n",
+      "[D 2022-04-05 17:57:05.978 SingleUserNotebookApp config_manager:97] Paths used for configuration of page_config: \n",
+      "    \t/usr/local/etc/jupyter/labconfig/page_config.json\n",
+      "[D 2022-04-05 17:57:05.978 SingleUserNotebookApp config_manager:97] Paths used for configuration of page_config: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0/etc/jupyter/labconfig/page_config.json\n",
+      "[D 2022-04-05 17:57:05.978 SingleUserNotebookApp config_manager:97] Paths used for configuration of page_config: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/labconfig/page_config.json\n",
+      "[D 2022-04-05 17:57:05.979 SingleUserNotebookApp config_manager:97] Paths used for configuration of page_config: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/labconfig/page_config.json\n",
+      "[D 2022-04-05 17:57:05.979 SingleUserNotebookApp config_manager:97] Paths used for configuration of page_config: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/labconfig/page_config.json\n",
+      "[D 2022-04-05 17:57:06.066 LabApp] Using contents: services/contents\n",
+      "[D 2022-04-05 17:57:06.239 SingleUserNotebookApp handlers:854] Path main.17e8b640bdfef61cb145.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/main.17e8b640bdfef61cb145.js\n",
+      "[D 2022-04-05 17:57:06.457 SingleUserNotebookApp handlers:854] Path jupyterlab-nvdashboard/static/remoteEntry.dd2f712c12379595dbcd.js served from /p/software/jurecadc/stages/2020/software/JupyterExtension-nvdashboard/0.6.0-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/labextensions/jupyterlab-nvdashboard/static/remoteEntry.dd2f712c12379595dbcd.js\n",
+      "[D 2022-04-05 17:57:06.470 SingleUserNotebookApp handlers:854] Path jupyterlab_iframe/static/remoteEntry.57ee5f7583f78c5a6512.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyterlab_iframe/static/remoteEntry.57ee5f7583f78c5a6512.js\n",
+      "[D 2022-04-05 17:57:06.475 SingleUserNotebookApp handlers:854] Path jupyter-leaflet/static/remoteEntry.8c5efb3516d04e6a5bb7.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-leaflet/static/remoteEntry.8c5efb3516d04e6a5bb7.js\n",
+      "[D 2022-04-05 17:57:06.482 SingleUserNotebookApp handlers:854] Path ipyvolume/static/remoteEntry.84482cb49244eb82eb1e.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/ipyvolume/static/remoteEntry.84482cb49244eb82eb1e.js\n",
+      "[D 2022-04-05 17:57:06.487 SingleUserNotebookApp handlers:854] Path jupyterlab-system-monitor/static/remoteEntry.961e4f7107573a8ce772.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyterlab-system-monitor/static/remoteEntry.961e4f7107573a8ce772.js\n",
+      "[D 2022-04-05 17:57:06.490 SingleUserNotebookApp handlers:854] Path jupyterlab-gitlab/static/remoteEntry.4af119adaef7bcffbfc9.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyterlab-gitlab/static/remoteEntry.4af119adaef7bcffbfc9.js\n",
+      "[D 2022-04-05 17:57:06.514 SingleUserNotebookApp handlers:854] Path jupyterlab-topbar-extension/static/remoteEntry.d1b2608380b59cf07890.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyterlab-topbar-extension/static/remoteEntry.d1b2608380b59cf07890.js\n",
+      "[D 2022-04-05 17:57:06.532 SingleUserNotebookApp handlers:854] Path dask-labextension/static/remoteEntry.341ac3733a60f1af54ef.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/dask-labextension/static/remoteEntry.341ac3733a60f1af54ef.js\n",
+      "[D 2022-04-05 17:57:06.550 SingleUserNotebookApp handlers:854] Path jupyterlab-plotly/static/remoteEntry.722ef6c4bed73383b578.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyterlab-plotly/static/remoteEntry.722ef6c4bed73383b578.js\n",
+      "[D 2022-04-05 17:57:06.555 SingleUserNotebookApp handlers:854] Path jupyter-vue/static/remoteEntry.cff4af1c34f190c11103.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-vue/static/remoteEntry.cff4af1c34f190c11103.js\n",
+      "[D 2022-04-05 17:57:06.558 SingleUserNotebookApp handlers:854] Path nbdime-jupyterlab/static/remoteEntry.8511fe06ff367ce48f15.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/nbdime-jupyterlab/static/remoteEntry.8511fe06ff367ce48f15.js\n",
+      "[D 2022-04-05 17:57:06.562 SingleUserNotebookApp handlers:854] Path jupyterlab-datawidgets/static/remoteEntry.64278c7f56b4790750de.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyterlab-datawidgets/static/remoteEntry.64278c7f56b4790750de.js\n",
+      "[D 2022-04-05 17:57:06.564 SingleUserNotebookApp handlers:854] Path bqplot/static/remoteEntry.490fbd2bdf754b661d13.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/bqplot/static/remoteEntry.490fbd2bdf754b661d13.js\n",
+      "[D 2022-04-05 17:57:06.568 SingleUserNotebookApp handlers:854] Path jupyter-webrtc/static/remoteEntry.a8997ccec61b65e8a4e7.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-webrtc/static/remoteEntry.a8997ccec61b65e8a4e7.js\n",
+      "[D 2022-04-05 17:57:06.570 SingleUserNotebookApp handlers:854] Path jupyter-threejs/static/remoteEntry.7143aa97dd89f426cc81.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-threejs/static/remoteEntry.7143aa97dd89f426cc81.js\n",
+      "[D 2022-04-05 17:57:06.575 SingleUserNotebookApp handlers:854] Path jupyter-matplotlib/static/remoteEntry.a458e80b4361f068e82d.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-matplotlib/static/remoteEntry.a458e80b4361f068e82d.js\n",
+      "[D 2022-04-05 17:57:06.577 SingleUserNotebookApp handlers:854] Path jupyter-vuetify/static/remoteEntry.fcff606ae435a57ff541.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-vuetify/static/remoteEntry.fcff606ae435a57ff541.js\n",
+      "[D 2022-04-05 17:57:06.579 SingleUserNotebookApp handlers:854] Path @jupyterlab/latex/static/remoteEntry.8538796ac0b0b3cb7224.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@jupyterlab/latex/static/remoteEntry.8538796ac0b0b3cb7224.js\n",
+      "[D 2022-04-05 17:57:06.581 SingleUserNotebookApp handlers:854] Path jupyterlab-tour/static/remoteEntry.faa0ac63a9a4b6b01f44.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyterlab-tour/static/remoteEntry.faa0ac63a9a4b6b01f44.js\n",
+      "[D 2022-04-05 17:57:06.583 SingleUserNotebookApp handlers:854] Path jupyterlab-controlbtn/static/remoteEntry.8d6bfe3d81a2cace809c.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyterlab-controlbtn/static/remoteEntry.8d6bfe3d81a2cace809c.js\n",
+      "[D 2022-04-05 17:57:06.587 SingleUserNotebookApp handlers:854] Path @jupyterlab/server-proxy/static/remoteEntry.6762111d2b97bbe7306d.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@jupyterlab/server-proxy/static/remoteEntry.6762111d2b97bbe7306d.js\n",
+      "[D 2022-04-05 17:57:06.588 SingleUserNotebookApp handlers:854] Path @jupyterlab/git/static/remoteEntry.4ccf98f7fd37014cd299.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@jupyterlab/git/static/remoteEntry.4ccf98f7fd37014cd299.js\n",
+      "[D 2022-04-05 17:57:06.598 SingleUserNotebookApp handlers:854] Path @krassowski/jupyterlab-lsp/static/remoteEntry.0d21892e6f32811a6230.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@krassowski/jupyterlab-lsp/static/remoteEntry.0d21892e6f32811a6230.js\n",
+      "[D 2022-04-05 17:57:06.600 SingleUserNotebookApp handlers:854] Path @jupyter-server/resource-usage/static/remoteEntry.555d5216f20f525d92b9.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@jupyter-server/resource-usage/static/remoteEntry.555d5216f20f525d92b9.js\n",
+      "[D 2022-04-05 17:57:06.602 SingleUserNotebookApp handlers:854] Path @ryantam626/jupyterlab_code_formatter/static/remoteEntry.de25cf8712b447aa69bd.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@ryantam626/jupyterlab_code_formatter/static/remoteEntry.de25cf8712b447aa69bd.js\n",
+      "[D 2022-04-05 17:57:06.603 SingleUserNotebookApp handlers:854] Path @jupyter-widgets/jupyterlab-sidecar/static/remoteEntry.67bb198e0cc8ce904343.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@jupyter-widgets/jupyterlab-sidecar/static/remoteEntry.67bb198e0cc8ce904343.js\n",
+      "[D 2022-04-05 17:57:06.606 SingleUserNotebookApp handlers:854] Path @jupyter-widgets/jupyterlab-manager/static/remoteEntry.f6574b55a223d23e7a04.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@jupyter-widgets/jupyterlab-manager/static/remoteEntry.f6574b55a223d23e7a04.js\n",
+      "[D 2022-04-05 17:57:06.608 SingleUserNotebookApp handlers:854] Path @pyviz/jupyterlab_pyviz/static/remoteEntry.cf21702f9062a42069e0.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@pyviz/jupyterlab_pyviz/static/remoteEntry.cf21702f9062a42069e0.js\n",
+      "[D 2022-04-05 17:57:06.610 SingleUserNotebookApp handlers:854] Path @bokeh/jupyter_bokeh/static/remoteEntry.1e8f19418ca61e387e42.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@bokeh/jupyter_bokeh/static/remoteEntry.1e8f19418ca61e387e42.js\n",
+      "[D 2022-04-05 17:57:06.612 SingleUserNotebookApp handlers:854] Path @jlab-enhanced/favorites/static/remoteEntry.136c1ea122f5c906080b.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@jlab-enhanced/favorites/static/remoteEntry.136c1ea122f5c906080b.js\n",
+      "[D 2022-04-05 17:57:06.614 SingleUserNotebookApp handlers:854] Path @jlab-enhanced/recents/static/remoteEntry.791d82c38b7da99b0974.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@jlab-enhanced/recents/static/remoteEntry.791d82c38b7da99b0974.js\n",
+      "[D 2022-04-05 17:57:06.616 SingleUserNotebookApp handlers:854] Path @ijmbarr/jupyterlab_spellchecker/static/remoteEntry.12cf3b546f44ca3d0354.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@ijmbarr/jupyterlab_spellchecker/static/remoteEntry.12cf3b546f44ca3d0354.js\n",
+      "[D 2022-04-05 17:57:06.617 SingleUserNotebookApp handlers:854] Path @voila-dashboards/jupyterlab-preview/static/remoteEntry.54bcf9cd22ab7de343d4.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@voila-dashboards/jupyterlab-preview/static/remoteEntry.54bcf9cd22ab7de343d4.js\n",
+      "[D 2022-04-05 17:57:06.745 SingleUserNotebookApp handlers:854] Path jlab_core.4992dd2347e9624883ab.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/jlab_core.4992dd2347e9624883ab.js\n",
+      "[D 2022-04-05 17:57:06.747 SingleUserNotebookApp handlers:854] Path 598.f50c20cc113649a3832f.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/598.f50c20cc113649a3832f.js\n",
+      "[D 2022-04-05 17:57:06.753 SingleUserNotebookApp handlers:854] Path 8173.278d0f34ea05d1505957.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/8173.278d0f34ea05d1505957.js\n",
+      "[D 2022-04-05 17:57:06.765 SingleUserNotebookApp handlers:854] Path 4237.e355a60899022c73b1bc.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/4237.e355a60899022c73b1bc.js\n",
+      "[D 2022-04-05 17:57:06.772 SingleUserNotebookApp handlers:854] Path 5467.3996f3e492bc65fb69bb.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/5467.3996f3e492bc65fb69bb.js\n",
+      "[D 2022-04-05 17:57:06.789 SingleUserNotebookApp handlers:854] Path 6700.9bfbe77418dd01d623dd.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/6700.9bfbe77418dd01d623dd.js\n",
+      "[D 2022-04-05 17:57:06.812 SingleUserNotebookApp handlers:854] Path 1036.f2d455e7057498f51450.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/1036.f2d455e7057498f51450.js\n",
+      "[D 2022-04-05 17:57:06.829 SingleUserNotebookApp handlers:854] Path dask-labextension/static/114.287c1e1e4e0f406b85f0.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/dask-labextension/static/114.287c1e1e4e0f406b85f0.js\n",
+      "[D 2022-04-05 17:57:06.838 SingleUserNotebookApp handlers:854] Path 4155.784ca1752696680bf373.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/4155.784ca1752696680bf373.js\n",
+      "[D 2022-04-05 17:57:06.861 SingleUserNotebookApp handlers:854] Path 6566.fbb87518a95e82121064.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/6566.fbb87518a95e82121064.js\n",
+      "[D 2022-04-05 17:57:06.862 SingleUserNotebookApp handlers:854] Path 7968.1528729aa94cc7d3f660.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/7968.1528729aa94cc7d3f660.js\n",
+      "[D 2022-04-05 17:57:06.863 SingleUserNotebookApp handlers:854] Path 202.3a2f4043ee91b59e9195.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/202.3a2f4043ee91b59e9195.js\n",
+      "[D 2022-04-05 17:57:06.865 SingleUserNotebookApp handlers:854] Path 4570.44c948d7eae0f307f23c.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/4570.44c948d7eae0f307f23c.js\n",
+      "[D 2022-04-05 17:57:06.876 SingleUserNotebookApp handlers:854] Path 5984.1ff1814c320671fb9ec5.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/5984.1ff1814c320671fb9ec5.js\n",
+      "[D 2022-04-05 17:57:06.878 SingleUserNotebookApp handlers:854] Path 7294.46e9d2dfa68082780e97.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/7294.46e9d2dfa68082780e97.js\n",
+      "[D 2022-04-05 17:57:06.880 SingleUserNotebookApp handlers:854] Path 3935.e00facce2e55a4af6e62.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/3935.e00facce2e55a4af6e62.js\n",
+      "[D 2022-04-05 17:57:06.886 SingleUserNotebookApp handlers:854] Path 1033.fc4792a37de5b414eb76.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/1033.fc4792a37de5b414eb76.js\n",
+      "[D 2022-04-05 17:57:06.904 SingleUserNotebookApp handlers:854] Path 7149.03da28945da9dcaa42ec.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/7149.03da28945da9dcaa42ec.js\n",
+      "[D 2022-04-05 17:57:06.919 SingleUserNotebookApp handlers:854] Path 7730.7e3a9fb140d2d55a51fc.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/7730.7e3a9fb140d2d55a51fc.js\n",
+      "[D 2022-04-05 17:57:06.923 SingleUserNotebookApp handlers:854] Path 7084.8cbd74268350b25b03e6.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/7084.8cbd74268350b25b03e6.js\n",
+      "[D 2022-04-05 17:57:06.925 SingleUserNotebookApp handlers:854] Path 4631.96a143e70f005fef7b59.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/4631.96a143e70f005fef7b59.js\n",
+      "[D 2022-04-05 17:57:06.929 SingleUserNotebookApp handlers:854] Path 7755.d506a1d9dadf30b1e490.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/7755.d506a1d9dadf30b1e490.js\n",
+      "[D 2022-04-05 17:57:06.930 SingleUserNotebookApp handlers:854] Path 7616.d412fb880534d79eb96c.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/7616.d412fb880534d79eb96c.js\n",
+      "[D 2022-04-05 17:57:06.934 SingleUserNotebookApp handlers:854] Path 8086.1dfabaac37d971e2cc4c.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/8086.1dfabaac37d971e2cc4c.js\n",
+      "[D 2022-04-05 17:57:06.948 SingleUserNotebookApp handlers:854] Path 3502.fbe0c610be82ba1360db.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/3502.fbe0c610be82ba1360db.js\n",
+      "[D 2022-04-05 17:57:06.951 SingleUserNotebookApp handlers:854] Path 2440.b1cec08f1bbdf244e2bb.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/2440.b1cec08f1bbdf244e2bb.js\n",
+      "[D 2022-04-05 17:57:06.960 SingleUserNotebookApp handlers:854] Path 1057.1a1aee857cdaddbae1d3.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/1057.1a1aee857cdaddbae1d3.js\n",
+      "[D 2022-04-05 17:57:06.962 SingleUserNotebookApp handlers:854] Path 5815.4b6b9a453a8a559f1470.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/5815.4b6b9a453a8a559f1470.js\n",
+      "[D 2022-04-05 17:57:06.968 SingleUserNotebookApp handlers:854] Path 4151.c3dc0e633a876895c62c.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/4151.c3dc0e633a876895c62c.js\n",
+      "[D 2022-04-05 17:57:06.971 SingleUserNotebookApp handlers:854] Path @jupyter-widgets/jupyterlab-manager/static/243.6c384ff2649ef572a18a.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@jupyter-widgets/jupyterlab-manager/static/243.6c384ff2649ef572a18a.js\n",
+      "[D 2022-04-05 17:57:06.973 SingleUserNotebookApp handlers:854] Path @jupyter-widgets/jupyterlab-manager/static/803.b7b75bd6e7977a648c67.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@jupyter-widgets/jupyterlab-manager/static/803.b7b75bd6e7977a648c67.js\n",
+      "[D 2022-04-05 17:57:06.975 SingleUserNotebookApp handlers:854] Path @jupyter-widgets/jupyterlab-manager/static/638.f3e5e34a28f3334d4f08.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@jupyter-widgets/jupyterlab-manager/static/638.f3e5e34a28f3334d4f08.js\n",
+      "[D 2022-04-05 17:57:06.979 SingleUserNotebookApp handlers:854] Path @jupyter-widgets/jupyterlab-manager/static/272.9d70a85a9abe209402d0.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@jupyter-widgets/jupyterlab-manager/static/272.9d70a85a9abe209402d0.js\n",
+      "[D 2022-04-05 17:57:06.991 SingleUserNotebookApp handlers:854] Path 1902.84e773fc133a804e6fdf.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/1902.84e773fc133a804e6fdf.js\n",
+      "[D 2022-04-05 17:57:06.999 SingleUserNotebookApp handlers:854] Path 1249.38b626cfe609e7ebd489.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/1249.38b626cfe609e7ebd489.js\n",
+      "[D 2022-04-05 17:57:07.005 SingleUserNotebookApp handlers:854] Path 1358.9ab4f57e8227ce75f427.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/1358.9ab4f57e8227ce75f427.js\n",
+      "[D 2022-04-05 17:57:07.031 SingleUserNotebookApp handlers:854] Path jupyterlab-datawidgets/static/511.36697cf6de412aca1859.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyterlab-datawidgets/static/511.36697cf6de412aca1859.js\n",
+      "[D 2022-04-05 17:57:07.033 SingleUserNotebookApp handlers:854] Path jupyterlab-datawidgets/static/824.46470aa83d860c5e05fa.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyterlab-datawidgets/static/824.46470aa83d860c5e05fa.js\n",
+      "[D 2022-04-05 17:57:07.035 SingleUserNotebookApp handlers:854] Path jupyter-vue/static/125.465cc3afc1a74ee7901d.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-vue/static/125.465cc3afc1a74ee7901d.js\n",
+      "[D 2022-04-05 17:57:07.039 SingleUserNotebookApp handlers:854] Path 126.7dbfc7317b0b535d2b27.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/126.7dbfc7317b0b535d2b27.js\n",
+      "[D 2022-04-05 17:57:07.041 SingleUserNotebookApp handlers:854] Path 911.0c08f040896753efc653.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/911.0c08f040896753efc653.js\n",
+      "[D 2022-04-05 17:57:07.065 SingleUserNotebookApp handlers:854] Path jupyterlab_iframe/static/873.1389c683f70449c19191.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyterlab_iframe/static/873.1389c683f70449c19191.js\n",
+      "[D 2022-04-05 17:57:07.074 SingleUserNotebookApp handlers:854] Path 5855.85978db3f5c9e460da57.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/5855.85978db3f5c9e460da57.js\n",
+      "[D 2022-04-05 17:57:07.079 SingleUserNotebookApp handlers:854] Path jupyterlab-plotly/static/486.52aa9063b291ec574154.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyterlab-plotly/static/486.52aa9063b291ec574154.js\n",
+      "[D 2022-04-05 17:57:07.082 SingleUserNotebookApp handlers:854] Path 3496.ecb0e7fcc54191234ae6.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/3496.ecb0e7fcc54191234ae6.js\n",
+      "[D 2022-04-05 17:57:07.088 SingleUserNotebookApp handlers:854] Path nbdime-jupyterlab/static/663.c7b1504a0e95f55ad15b.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/nbdime-jupyterlab/static/663.c7b1504a0e95f55ad15b.js\n",
+      "[D 2022-04-05 17:57:07.093 SingleUserNotebookApp handlers:854] Path nbdime-jupyterlab/static/568.5295826576c742a3cc92.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/nbdime-jupyterlab/static/568.5295826576c742a3cc92.js\n",
+      "[D 2022-04-05 17:57:07.098 SingleUserNotebookApp handlers:854] Path 1944.c80b7a7fdb17560c9d00.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/1944.c80b7a7fdb17560c9d00.js\n",
+      "[D 2022-04-05 17:57:07.112 SingleUserNotebookApp handlers:854] Path 4429.9d0e9af89b4ab5bf2a29.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/4429.9d0e9af89b4ab5bf2a29.js\n",
+      "[D 2022-04-05 17:57:07.113 SingleUserNotebookApp handlers:854] Path 144.2949dcec852e76730f4c.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/144.2949dcec852e76730f4c.js\n",
+      "[D 2022-04-05 17:57:07.239 SingleUserNotebookApp handlers:854] Path 714.d38baae8faccca175d4b.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/714.d38baae8faccca175d4b.js\n",
+      "[D 2022-04-05 17:57:07.252 SingleUserNotebookApp handlers:854] Path jupyterlab-topbar-extension/static/498.98d5e1e39ac7a2399b94.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyterlab-topbar-extension/static/498.98d5e1e39ac7a2399b94.js\n",
+      "[D 2022-04-05 17:57:07.254 SingleUserNotebookApp handlers:854] Path 5045.c088bc45c2caaa720e8f.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/5045.c088bc45c2caaa720e8f.js\n",
+      "[D 2022-04-05 17:57:07.257 SingleUserNotebookApp handlers:854] Path 1423.37eb3b403a8ec038be77.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/1423.37eb3b403a8ec038be77.js\n",
+      "[D 2022-04-05 17:57:07.851 SingleUserNotebookApp handlers:854] Path jupyterlab-nvdashboard/static/533.11960c13554766365817.js served from /p/software/jurecadc/stages/2020/software/JupyterExtension-nvdashboard/0.6.0-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/labextensions/jupyterlab-nvdashboard/static/533.11960c13554766365817.js\n",
+      "[D 2022-04-05 17:57:07.867 SingleUserNotebookApp handlers:854] Path jupyterlab-nvdashboard/static/534.e8f8cde5f7247a1001bd.js served from /p/software/jurecadc/stages/2020/software/JupyterExtension-nvdashboard/0.6.0-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/labextensions/jupyterlab-nvdashboard/static/534.e8f8cde5f7247a1001bd.js\n",
+      "[D 2022-04-05 17:57:07.869 SingleUserNotebookApp handlers:854] Path jupyterlab_iframe/static/568.26b65f4dc6b09f911a9b.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyterlab_iframe/static/568.26b65f4dc6b09f911a9b.js\n",
+      "[D 2022-04-05 17:57:07.873 SingleUserNotebookApp handlers:854] Path jupyter-leaflet/static/790.f8079efbdd3073004e57.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-leaflet/static/790.f8079efbdd3073004e57.js\n",
+      "[D 2022-04-05 17:57:07.876 SingleUserNotebookApp handlers:854] Path jupyter-leaflet/static/340.06cd3bdbc92899d7cb95.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-leaflet/static/340.06cd3bdbc92899d7cb95.js\n",
+      "[D 2022-04-05 17:57:07.879 SingleUserNotebookApp handlers:854] Path jupyter-leaflet/static/280.5de51328720a28cc66e7.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-leaflet/static/280.5de51328720a28cc66e7.js\n",
+      "[D 2022-04-05 17:57:07.881 SingleUserNotebookApp handlers:854] Path jupyter-leaflet/static/795.3a046e4856ac28bc2259.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-leaflet/static/795.3a046e4856ac28bc2259.js\n",
+      "[D 2022-04-05 17:57:07.885 SingleUserNotebookApp handlers:854] Path jupyter-leaflet/static/243.d9d134ad2ffdfb9205b3.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-leaflet/static/243.d9d134ad2ffdfb9205b3.js\n",
+      "[D 2022-04-05 17:57:07.899 SingleUserNotebookApp handlers:854] Path jupyter-leaflet/static/35.75d7ebb67cdd9a91223a.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-leaflet/static/35.75d7ebb67cdd9a91223a.js\n",
+      "[D 2022-04-05 17:57:07.904 SingleUserNotebookApp handlers:854] Path jupyter-leaflet/static/818.212b33d3c22f5a0b7861.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-leaflet/static/818.212b33d3c22f5a0b7861.js\n",
+      "[D 2022-04-05 17:57:07.911 SingleUserNotebookApp handlers:854] Path jupyter-leaflet/static/732.b1d9d728030835e29fb7.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-leaflet/static/732.b1d9d728030835e29fb7.js\n",
+      "[D 2022-04-05 17:57:08.067 SingleUserNotebookApp handlers:854] Path jupyter-leaflet/static/687.c586825145a31920f3d8.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-leaflet/static/687.c586825145a31920f3d8.js\n",
+      "[D 2022-04-05 17:57:08.068 SingleUserNotebookApp handlers:854] Path jupyter-leaflet/static/961.5f16b23b622442c73cd9.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-leaflet/static/961.5f16b23b622442c73cd9.js\n",
+      "[D 2022-04-05 17:57:08.073 SingleUserNotebookApp handlers:854] Path jupyter-leaflet/static/874.a932c7b7475213690696.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-leaflet/static/874.a932c7b7475213690696.js\n",
+      "[D 2022-04-05 17:57:08.075 SingleUserNotebookApp handlers:854] Path jupyterlab-system-monitor/static/568.8ac925f07a5a0c9d5fdb.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyterlab-system-monitor/static/568.8ac925f07a5a0c9d5fdb.js\n",
+      "[D 2022-04-05 17:57:08.077 SingleUserNotebookApp handlers:854] Path jupyter-leaflet/static/138.dd4ad020192640a8ffae.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-leaflet/static/138.dd4ad020192640a8ffae.js\n",
+      "[D 2022-04-05 17:57:08.092 SingleUserNotebookApp handlers:854] Path ipyvolume/static/466.df53a5241872f78b6b60.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/ipyvolume/static/466.df53a5241872f78b6b60.js\n",
+      "[D 2022-04-05 17:57:08.094 SingleUserNotebookApp handlers:854] Path ipyvolume/static/568.1f8f7778089deb72b58b.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/ipyvolume/static/568.1f8f7778089deb72b58b.js\n",
+      "[D 2022-04-05 17:57:08.096 SingleUserNotebookApp handlers:854] Path jupyter-leaflet/static/751.e7a5eee804906847cf86.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-leaflet/static/751.e7a5eee804906847cf86.js\n",
+      "[D 2022-04-05 17:57:08.097 SingleUserNotebookApp handlers:854] Path jupyter-leaflet/static/787.e25c58192b0a5dac5650.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-leaflet/static/787.e25c58192b0a5dac5650.js\n",
+      "[D 2022-04-05 17:57:08.099 SingleUserNotebookApp handlers:854] Path jupyter-threejs/static/212.beb1cf25180dbd83d1e7.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-threejs/static/212.beb1cf25180dbd83d1e7.js\n",
+      "[D 2022-04-05 17:57:08.100 SingleUserNotebookApp handlers:854] Path ipyvolume/static/861.e5ee4240568d6c5874f2.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/ipyvolume/static/861.e5ee4240568d6c5874f2.js\n",
+      "[D 2022-04-05 17:57:08.103 SingleUserNotebookApp handlers:854] Path ipyvolume/static/58.5dd767d4301576cee659.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/ipyvolume/static/58.5dd767d4301576cee659.js\n",
+      "[D 2022-04-05 17:57:08.105 SingleUserNotebookApp handlers:854] Path jupyter-leaflet/static/292.abb15e393ff2062a9743.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-leaflet/static/292.abb15e393ff2062a9743.js\n",
+      "[D 2022-04-05 17:57:08.106 SingleUserNotebookApp handlers:854] Path ipyvolume/static/693.bdce231db58bf853b2df.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/ipyvolume/static/693.bdce231db58bf853b2df.js\n",
+      "[D 2022-04-05 17:57:08.108 SingleUserNotebookApp handlers:854] Path ipyvolume/static/261.ee0aeff71c84dc78f774.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/ipyvolume/static/261.ee0aeff71c84dc78f774.js\n",
+      "[D 2022-04-05 17:57:08.109 SingleUserNotebookApp handlers:854] Path jupyterlab-system-monitor/static/725.2e62cc86ec3048594607.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyterlab-system-monitor/static/725.2e62cc86ec3048594607.js\n",
+      "[D 2022-04-05 17:57:08.111 SingleUserNotebookApp handlers:854] Path jupyter-leaflet/static/738.12432ed2776b6b36ef53.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-leaflet/static/738.12432ed2776b6b36ef53.js\n",
+      "[D 2022-04-05 17:57:08.112 SingleUserNotebookApp handlers:854] Path jupyter-leaflet/static/408.c77c0f86c82e98e327d2.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-leaflet/static/408.c77c0f86c82e98e327d2.js\n",
+      "[D 2022-04-05 17:57:08.114 SingleUserNotebookApp handlers:854] Path jupyter-leaflet/static/860.622fabbcf2290b711ac9.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-leaflet/static/860.622fabbcf2290b711ac9.js\n",
+      "[D 2022-04-05 17:57:08.116 SingleUserNotebookApp handlers:854] Path ipyvolume/static/577.ef610ec4539ffe9cddc1.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/ipyvolume/static/577.ef610ec4539ffe9cddc1.js\n",
+      "[D 2022-04-05 17:57:08.117 SingleUserNotebookApp handlers:854] Path jupyterlab-system-monitor/static/95.6edb06b4cf76d031837b.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyterlab-system-monitor/static/95.6edb06b4cf76d031837b.js\n",
+      "[D 2022-04-05 17:57:08.119 SingleUserNotebookApp handlers:854] Path jupyter-leaflet/static/665.3328989849f89dbc115a.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-leaflet/static/665.3328989849f89dbc115a.js\n",
+      "[D 2022-04-05 17:57:08.121 SingleUserNotebookApp handlers:854] Path jupyter-leaflet/static/980.77ca078a309d02743139.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-leaflet/static/980.77ca078a309d02743139.js\n",
+      "[D 2022-04-05 17:57:08.122 SingleUserNotebookApp handlers:854] Path ipyvolume/static/501.54c2baeab80ecb56ca08.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/ipyvolume/static/501.54c2baeab80ecb56ca08.js\n",
+      "[D 2022-04-05 17:57:08.123 SingleUserNotebookApp handlers:854] Path ipyvolume/static/943.ab97fe92caef40bf445b.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/ipyvolume/static/943.ab97fe92caef40bf445b.js\n",
+      "[D 2022-04-05 17:57:08.136 SingleUserNotebookApp handlers:854] Path jupyterlab-gitlab/static/392.c0722e7976f41de3a082.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyterlab-gitlab/static/392.c0722e7976f41de3a082.js\n",
+      "[D 2022-04-05 17:57:08.139 SingleUserNotebookApp handlers:854] Path jupyterlab-gitlab/static/742.ee2a9c67f39dc93945ac.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyterlab-gitlab/static/742.ee2a9c67f39dc93945ac.js\n",
+      "[D 2022-04-05 17:57:08.141 SingleUserNotebookApp handlers:854] Path jupyterlab-gitlab/static/534.2d174fa7be8b96a8c604.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyterlab-gitlab/static/534.2d174fa7be8b96a8c604.js\n",
+      "[D 2022-04-05 17:57:08.143 SingleUserNotebookApp handlers:854] Path jupyterlab-topbar-extension/static/186.2b346ab755a0fbe1c12b.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyterlab-topbar-extension/static/186.2b346ab755a0fbe1c12b.js\n",
+      "[D 2022-04-05 17:57:08.144 SingleUserNotebookApp handlers:854] Path jupyterlab-topbar-extension/static/568.ba0972e7c15a99071cc5.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyterlab-topbar-extension/static/568.ba0972e7c15a99071cc5.js\n",
+      "[D 2022-04-05 17:57:08.146 SingleUserNotebookApp handlers:854] Path dask-labextension/static/319.13ecb0e6813da2646da2.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/dask-labextension/static/319.13ecb0e6813da2646da2.js\n",
+      "[D 2022-04-05 17:57:08.148 SingleUserNotebookApp handlers:854] Path jupyterlab-plotly/static/133.e938c05aa03322a03382.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyterlab-plotly/static/133.e938c05aa03322a03382.js\n",
+      "[D 2022-04-05 17:57:08.150 SingleUserNotebookApp handlers:854] Path jupyterlab-plotly/static/423.8409ad662b0daea3de31.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyterlab-plotly/static/423.8409ad662b0daea3de31.js\n",
+      "[D 2022-04-05 17:57:08.152 SingleUserNotebookApp handlers:854] Path jupyter-vue/static/140.81618e2257248b1f4c55.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-vue/static/140.81618e2257248b1f4c55.js\n",
+      "[D 2022-04-05 17:57:08.154 SingleUserNotebookApp handlers:854] Path jupyter-vue/static/261.52a05b55e7bc093d4687.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-vue/static/261.52a05b55e7bc093d4687.js\n",
+      "[D 2022-04-05 17:57:08.156 SingleUserNotebookApp handlers:854] Path jupyterlab-datawidgets/static/880.ecda9cb79c18e4eda851.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyterlab-datawidgets/static/880.ecda9cb79c18e4eda851.js\n",
+      "[D 2022-04-05 17:57:08.157 SingleUserNotebookApp handlers:854] Path bqplot/static/463.2c7d20e239737756286a.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/bqplot/static/463.2c7d20e239737756286a.js\n",
+      "[D 2022-04-05 17:57:08.158 SingleUserNotebookApp handlers:854] Path bqplot/static/297.20b084e3804ffd49fd74.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/bqplot/static/297.20b084e3804ffd49fd74.js\n",
+      "[D 2022-04-05 17:57:08.159 SingleUserNotebookApp handlers:854] Path bqplot/static/212.517344bcbaf583cc624d.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/bqplot/static/212.517344bcbaf583cc624d.js\n",
+      "[D 2022-04-05 17:57:08.161 SingleUserNotebookApp handlers:854] Path bqplot/static/981.8e630ac56fa60d1bf407.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/bqplot/static/981.8e630ac56fa60d1bf407.js\n",
+      "[D 2022-04-05 17:57:08.162 SingleUserNotebookApp handlers:854] Path jupyter-webrtc/static/963.248a1aaf66b442da6259.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-webrtc/static/963.248a1aaf66b442da6259.js\n",
+      "[D 2022-04-05 17:57:08.306 SingleUserNotebookApp handlers:854] Path bqplot/static/87.0910f73118566e721f63.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/bqplot/static/87.0910f73118566e721f63.js\n",
+      "[D 2022-04-05 17:57:08.308 SingleUserNotebookApp handlers:854] Path bqplot/static/568.44d00db26bb878544243.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/bqplot/static/568.44d00db26bb878544243.js\n",
+      "[D 2022-04-05 17:57:08.309 SingleUserNotebookApp handlers:854] Path bqplot/static/133.4ca5eef7d9a34d394ab3.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/bqplot/static/133.4ca5eef7d9a34d394ab3.js\n",
+      "[D 2022-04-05 17:57:08.311 SingleUserNotebookApp handlers:854] Path jupyter-threejs/static/738.db1802c60ffddeebafc8.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-threejs/static/738.db1802c60ffddeebafc8.js\n",
+      "[D 2022-04-05 17:57:08.312 SingleUserNotebookApp handlers:854] Path jupyter-webrtc/static/580.7f0228c999c95b0da346.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-webrtc/static/580.7f0228c999c95b0da346.js\n",
+      "[D 2022-04-05 17:57:08.314 SingleUserNotebookApp handlers:854] Path jupyter-webrtc/static/616.c12215629a3e518b01d8.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-webrtc/static/616.c12215629a3e518b01d8.js\n",
+      "[D 2022-04-05 17:57:08.315 SingleUserNotebookApp handlers:854] Path jupyter-webrtc/static/764.01b9abdc5df6020dcdd4.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-webrtc/static/764.01b9abdc5df6020dcdd4.js\n",
+      "[D 2022-04-05 17:57:08.316 SingleUserNotebookApp handlers:854] Path jupyter-webrtc/static/826.01a996393d4a83f9b1df.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-webrtc/static/826.01a996393d4a83f9b1df.js\n",
+      "[D 2022-04-05 17:57:08.318 SingleUserNotebookApp handlers:854] Path jupyter-webrtc/static/539.144b1c0f314578171b5d.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-webrtc/static/539.144b1c0f314578171b5d.js\n",
+      "[D 2022-04-05 17:57:08.319 SingleUserNotebookApp handlers:854] Path jupyter-webrtc/static/181.68265814113d760563ef.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-webrtc/static/181.68265814113d760563ef.js\n",
+      "[D 2022-04-05 17:57:08.320 SingleUserNotebookApp handlers:854] Path jupyter-webrtc/static/575.2ecfd52d4241de7d67ed.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-webrtc/static/575.2ecfd52d4241de7d67ed.js\n",
+      "[D 2022-04-05 17:57:08.322 SingleUserNotebookApp handlers:854] Path jupyter-webrtc/static/144.58bb6060b0343f45fa1e.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-webrtc/static/144.58bb6060b0343f45fa1e.js\n",
+      "[D 2022-04-05 17:57:08.323 SingleUserNotebookApp handlers:854] Path jupyter-webrtc/static/753.de91613ab3d2b3f79a3d.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-webrtc/static/753.de91613ab3d2b3f79a3d.js\n",
+      "[D 2022-04-05 17:57:08.325 SingleUserNotebookApp handlers:854] Path jupyter-webrtc/static/908.0bb74ba42b7e6a3df846.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-webrtc/static/908.0bb74ba42b7e6a3df846.js\n",
+      "[D 2022-04-05 17:57:08.326 SingleUserNotebookApp handlers:854] Path jupyter-matplotlib/static/240.c47204a2de8287b9c2f3.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-matplotlib/static/240.c47204a2de8287b9c2f3.js\n",
+      "[D 2022-04-05 17:57:08.328 SingleUserNotebookApp handlers:854] Path jupyterlab-tour/static/954.615d57dcec1f8e78ce3d.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyterlab-tour/static/954.615d57dcec1f8e78ce3d.js\n",
+      "[D 2022-04-05 17:57:08.330 SingleUserNotebookApp handlers:854] Path jupyterlab-tour/static/279.3193c77dee889e1cb609.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyterlab-tour/static/279.3193c77dee889e1cb609.js\n",
+      "[D 2022-04-05 17:57:08.332 SingleUserNotebookApp handlers:854] Path jupyter-vuetify/static/635.ba9631c2c215c7a91978.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-vuetify/static/635.ba9631c2c215c7a91978.js\n",
+      "[D 2022-04-05 17:57:08.334 SingleUserNotebookApp handlers:854] Path jupyter-vuetify/static/353.3d1742277c7640de5c75.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-vuetify/static/353.3d1742277c7640de5c75.js\n",
+      "[D 2022-04-05 17:57:08.335 SingleUserNotebookApp handlers:854] Path jupyter-vue/static/848.1a8dadbeb5d74da6ebe9.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-vue/static/848.1a8dadbeb5d74da6ebe9.js\n",
+      "[D 2022-04-05 17:57:08.338 SingleUserNotebookApp handlers:854] Path jupyterlab-tour/static/534.d3cfa287fd8ca724dcd6.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyterlab-tour/static/534.d3cfa287fd8ca724dcd6.js\n",
+      "[D 2022-04-05 17:57:08.340 SingleUserNotebookApp handlers:854] Path jupyter-vuetify/static/925.f33261a60d7d32c5bace.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-vuetify/static/925.f33261a60d7d32c5bace.js\n",
+      "[D 2022-04-05 17:57:08.342 SingleUserNotebookApp handlers:854] Path jupyterlab-controlbtn/static/87.a5d3eb4ba87c4df67fce.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyterlab-controlbtn/static/87.a5d3eb4ba87c4df67fce.js\n",
+      "[D 2022-04-05 17:57:08.345 SingleUserNotebookApp handlers:854] Path jupyter-vuetify/static/701.cbac5919a0796529305e.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-vuetify/static/701.cbac5919a0796529305e.js\n",
+      "[D 2022-04-05 17:57:08.347 SingleUserNotebookApp handlers:854] Path jupyter-vuetify/static/261.7ad690c22cc5b3313c62.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-vuetify/static/261.7ad690c22cc5b3313c62.js\n",
+      "[D 2022-04-05 17:57:08.349 SingleUserNotebookApp handlers:854] Path jupyter-vuetify/static/102.602144dedc889a9e2f01.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyter-vuetify/static/102.602144dedc889a9e2f01.js\n",
+      "[D 2022-04-05 17:57:08.351 SingleUserNotebookApp handlers:854] Path jupyterlab-controlbtn/static/534.446a22b9875418a1a2be.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyterlab-controlbtn/static/534.446a22b9875418a1a2be.js\n",
+      "[D 2022-04-05 17:57:08.358 SingleUserNotebookApp handlers:854] Path @jupyterlab/latex/static/622.31b116fa84c937dc0e00.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@jupyterlab/latex/static/622.31b116fa84c937dc0e00.js\n",
+      "[D 2022-04-05 17:57:08.375 SingleUserNotebookApp handlers:854] Path @jupyterlab/server-proxy/static/568.9929fbdecd25495b87d9.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@jupyterlab/server-proxy/static/568.9929fbdecd25495b87d9.js\n",
+      "[D 2022-04-05 17:57:08.377 SingleUserNotebookApp handlers:854] Path @jupyterlab/git/static/912.3e24f4f4897f4ea5f0c7.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@jupyterlab/git/static/912.3e24f4f4897f4ea5f0c7.js\n",
+      "[D 2022-04-05 17:57:08.380 SingleUserNotebookApp handlers:854] Path @jupyterlab/latex/static/776.2e0b6115d1f79311ea37.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@jupyterlab/latex/static/776.2e0b6115d1f79311ea37.js\n",
+      "[D 2022-04-05 17:57:08.382 SingleUserNotebookApp handlers:854] Path @jupyterlab/git/static/703.3ca083972073970cfab2.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@jupyterlab/git/static/703.3ca083972073970cfab2.js\n",
+      "[D 2022-04-05 17:57:08.384 SingleUserNotebookApp handlers:854] Path @jupyterlab/git/static/356.cc12c5b2c281ce1f0e75.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@jupyterlab/git/static/356.cc12c5b2c281ce1f0e75.js\n",
+      "[D 2022-04-05 17:57:08.386 SingleUserNotebookApp handlers:854] Path @jupyterlab/git/static/872.1ad3d867b064f356caa6.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@jupyterlab/git/static/872.1ad3d867b064f356caa6.js\n",
+      "[D 2022-04-05 17:57:08.390 SingleUserNotebookApp handlers:854] Path @jupyterlab/git/static/813.42f36bdcedefa7f4f6db.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@jupyterlab/git/static/813.42f36bdcedefa7f4f6db.js\n",
+      "[D 2022-04-05 17:57:08.392 SingleUserNotebookApp handlers:854] Path @jupyterlab/git/static/27.f4e05badfaa92dc098f1.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@jupyterlab/git/static/27.f4e05badfaa92dc098f1.js\n",
+      "[D 2022-04-05 17:57:08.453 SingleUserNotebookApp handlers:854] Path @jupyterlab/git/static/566.be507190244618767dd2.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@jupyterlab/git/static/566.be507190244618767dd2.js\n",
+      "[D 2022-04-05 17:57:08.476 SingleUserNotebookApp handlers:854] Path @jupyterlab/git/static/728.8a2e5ef5dbb17bd53df0.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@jupyterlab/git/static/728.8a2e5ef5dbb17bd53df0.js\n",
+      "[D 2022-04-05 17:57:08.481 SingleUserNotebookApp handlers:854] Path @jupyterlab/git/static/266.4d8eaa32865f4019385a.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@jupyterlab/git/static/266.4d8eaa32865f4019385a.js\n",
+      "[D 2022-04-05 17:57:08.485 SingleUserNotebookApp handlers:854] Path @jupyterlab/git/static/400.3cd121d9ce2e6180fca3.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@jupyterlab/git/static/400.3cd121d9ce2e6180fca3.js\n",
+      "[D 2022-04-05 17:57:08.488 SingleUserNotebookApp handlers:854] Path @jupyterlab/git/static/534.8e695f49d70552f8c495.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@jupyterlab/git/static/534.8e695f49d70552f8c495.js\n",
+      "[D 2022-04-05 17:57:08.500 SingleUserNotebookApp handlers:854] Path jupyterlab-tour/static/666.8aa07bec2d524f2eeeb6.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyterlab-tour/static/666.8aa07bec2d524f2eeeb6.js\n",
+      "[D 2022-04-05 17:57:08.552 SingleUserNotebookApp handlers:854] Path @krassowski/jupyterlab-lsp/static/472.f24026f9c68e7a063ceb.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@krassowski/jupyterlab-lsp/static/472.f24026f9c68e7a063ceb.js\n",
+      "[D 2022-04-05 17:57:08.572 SingleUserNotebookApp handlers:854] Path @krassowski/jupyterlab-lsp/static/963.6c04381915b15ffee740.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@krassowski/jupyterlab-lsp/static/963.6c04381915b15ffee740.js\n",
+      "[D 2022-04-05 17:57:08.577 SingleUserNotebookApp handlers:854] Path @krassowski/jupyterlab-lsp/static/422.92a771f1da6b2f829b19.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@krassowski/jupyterlab-lsp/static/422.92a771f1da6b2f829b19.js\n",
+      "[D 2022-04-05 17:57:08.582 SingleUserNotebookApp handlers:854] Path @krassowski/jupyterlab-lsp/static/118.ce6789ea43ed6ee3ad93.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@krassowski/jupyterlab-lsp/static/118.ce6789ea43ed6ee3ad93.js\n",
+      "[D 2022-04-05 17:57:08.595 SingleUserNotebookApp handlers:854] Path @krassowski/jupyterlab-lsp/static/875.04689c484997ad15326a.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@krassowski/jupyterlab-lsp/static/875.04689c484997ad15326a.js\n",
+      "[D 2022-04-05 17:57:08.605 SingleUserNotebookApp handlers:854] Path @krassowski/jupyterlab-lsp/static/637.244f3733217a0f0cb9c5.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@krassowski/jupyterlab-lsp/static/637.244f3733217a0f0cb9c5.js\n",
+      "[D 2022-04-05 17:57:08.608 SingleUserNotebookApp handlers:854] Path @krassowski/jupyterlab-lsp/static/364.7873ab3b4f6c579588c7.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@krassowski/jupyterlab-lsp/static/364.7873ab3b4f6c579588c7.js\n",
+      "[D 2022-04-05 17:57:08.610 SingleUserNotebookApp handlers:854] Path @krassowski/jupyterlab-lsp/static/520.577a9a2a5dc89ca79584.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@krassowski/jupyterlab-lsp/static/520.577a9a2a5dc89ca79584.js\n",
+      "[D 2022-04-05 17:57:08.613 SingleUserNotebookApp handlers:854] Path @jupyter-server/resource-usage/static/954.942e1cfca2453420460b.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@jupyter-server/resource-usage/static/954.942e1cfca2453420460b.js\n",
+      "[D 2022-04-05 17:57:08.615 SingleUserNotebookApp handlers:854] Path @jupyter-widgets/jupyterlab-manager/static/18.5fbcd9c56ded92ea9df9.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@jupyter-widgets/jupyterlab-manager/static/18.5fbcd9c56ded92ea9df9.js\n",
+      "[D 2022-04-05 17:57:08.627 SingleUserNotebookApp handlers:854] Path @jupyter-widgets/jupyterlab-manager/static/279.aa88a78c8bf62c65db54.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@jupyter-widgets/jupyterlab-manager/static/279.aa88a78c8bf62c65db54.js\n",
+      "[D 2022-04-05 17:57:08.632 SingleUserNotebookApp handlers:854] Path @jupyter-widgets/jupyterlab-manager/static/523.cf94b68f6edde7eefd61.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@jupyter-widgets/jupyterlab-manager/static/523.cf94b68f6edde7eefd61.js\n",
+      "[D 2022-04-05 17:57:08.643 SingleUserNotebookApp handlers:854] Path @jupyter-widgets/jupyterlab-sidecar/static/vendors-node_modules_css-loader_dist_runtime_api_js-node_modules_css-loader_dist_runtime_cssW-926fd9.949facbe71846c90da88.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@jupyter-widgets/jupyterlab-sidecar/static/vendors-node_modules_css-loader_dist_runtime_api_js-node_modules_css-loader_dist_runtime_cssW-926fd9.949facbe71846c90da88.js\n",
+      "[D 2022-04-05 17:57:08.645 SingleUserNotebookApp handlers:854] Path @jupyter-widgets/jupyterlab-sidecar/static/lib_plugin_js.c34b37c83a6128497053.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@jupyter-widgets/jupyterlab-sidecar/static/lib_plugin_js.c34b37c83a6128497053.js\n",
+      "[D 2022-04-05 17:57:08.650 SingleUserNotebookApp handlers:854] Path @ryantam626/jupyterlab_code_formatter/static/160.e2a269267a588f65db60.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@ryantam626/jupyterlab_code_formatter/static/160.e2a269267a588f65db60.js\n",
+      "[D 2022-04-05 17:57:08.651 SingleUserNotebookApp handlers:854] Path @pyviz/jupyterlab_pyviz/static/366.b19bb007778a276b2ee8.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@pyviz/jupyterlab_pyviz/static/366.b19bb007778a276b2ee8.js\n",
+      "[D 2022-04-05 17:57:08.653 SingleUserNotebookApp handlers:854] Path @pyviz/jupyterlab_pyviz/static/534.20c70d4645cf38a0db5b.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@pyviz/jupyterlab_pyviz/static/534.20c70d4645cf38a0db5b.js\n",
+      "[D 2022-04-05 17:57:09.278 SingleUserNotebookApp handlers:854] Path @jlab-enhanced/recents/static/568.da4a0a7ef8bd871849ad.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@jlab-enhanced/recents/static/568.da4a0a7ef8bd871849ad.js\n",
+      "[D 2022-04-05 17:57:09.281 SingleUserNotebookApp handlers:854] Path @ijmbarr/jupyterlab_spellchecker/static/301.f78600de2fee651cf61c.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@ijmbarr/jupyterlab_spellchecker/static/301.f78600de2fee651cf61c.js\n",
+      "[D 2022-04-05 17:57:09.287 SingleUserNotebookApp handlers:854] Path @jlab-enhanced/favorites/static/723.207eef197ebfbf87ac1f.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@jlab-enhanced/favorites/static/723.207eef197ebfbf87ac1f.js\n",
+      "[D 2022-04-05 17:57:09.289 SingleUserNotebookApp handlers:854] Path @voila-dashboards/jupyterlab-preview/static/776.5a65bd8d418bae34dfbf.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@voila-dashboards/jupyterlab-preview/static/776.5a65bd8d418bae34dfbf.js\n",
+      "[D 2022-04-05 17:57:09.293 SingleUserNotebookApp handlers:854] Path @jlab-enhanced/favorites/static/534.dd41a780d7fa0dfc7f73.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@jlab-enhanced/favorites/static/534.dd41a780d7fa0dfc7f73.js\n",
+      "[D 2022-04-05 17:57:09.295 SingleUserNotebookApp handlers:854] Path @voila-dashboards/jupyterlab-preview/static/925.620142eae892c7448002.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@voila-dashboards/jupyterlab-preview/static/925.620142eae892c7448002.js\n",
+      "[D 2022-04-05 17:57:09.297 SingleUserNotebookApp handlers:854] Path @ijmbarr/jupyterlab_spellchecker/static/534.d33b047d412a2047177e.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@ijmbarr/jupyterlab_spellchecker/static/534.d33b047d412a2047177e.js\n",
+      "[D 2022-04-05 17:57:09.299 SingleUserNotebookApp handlers:854] Path @jlab-enhanced/recents/static/534.af21d0f6a7ba97d7a982.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@jlab-enhanced/recents/static/534.af21d0f6a7ba97d7a982.js\n",
+      "[D 2022-04-05 17:57:09.301 SingleUserNotebookApp handlers:854] Path @bokeh/jupyter_bokeh/static/448.a59174c8de018da6bae8.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@bokeh/jupyter_bokeh/static/448.a59174c8de018da6bae8.js\n",
+      "[D 2022-04-05 17:57:09.302 SingleUserNotebookApp handlers:854] Path @ijmbarr/jupyterlab_spellchecker/static/581.83daa50633cb94659e90.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@ijmbarr/jupyterlab_spellchecker/static/581.83daa50633cb94659e90.js\n",
+      "[D 2022-04-05 17:57:09.305 SingleUserNotebookApp handlers:854] Path @bokeh/jupyter_bokeh/static/809.dc36b734dbd5fc902f01.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@bokeh/jupyter_bokeh/static/809.dc36b734dbd5fc902f01.js\n",
+      "[D 2022-04-05 17:57:10.610 SingleUserNotebookApp kernelspec:218] Found kernel unseen_kernel in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 17:57:10.610 SingleUserNotebookApp kernelspec:218] Found kernel my_env in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 17:57:10.610 SingleUserNotebookApp kernelspec:218] Found kernel covid19dynstat_juwels in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 17:57:10.610 SingleUserNotebookApp kernelspec:218] Found kernel esm2022_kernel in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 17:57:10.610 SingleUserNotebookApp kernelspec:218] Found kernel dg_rr_analytics in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 17:57:10.610 SingleUserNotebookApp kernelspec:218] Found kernel pycompss in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 17:57:10.610 SingleUserNotebookApp kernelspec:218] Found kernel covid19dynstat_jusuf in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 17:57:10.610 SingleUserNotebookApp kernelspec:218] Found kernel goebbert1_workshop2 in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 17:57:10.610 SingleUserNotebookApp kernelspec:218] Found kernel goebbert1_pyferret in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 17:57:10.612 SingleUserNotebookApp kernelspec:218] Found kernel ruby in /p/software/jurecadc/stages/2020/software/JupyterKernel-Ruby/2.7.2-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 17:57:10.615 SingleUserNotebookApp kernelspec:218] Found kernel ir40 in /p/software/jurecadc/stages/2020/software/JupyterKernel-R/4.0.2-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 17:57:10.618 SingleUserNotebookApp kernelspec:218] Found kernel pydeeplearning in /p/software/jurecadc/stages/2020/software/JupyterKernel-PyDeepLearning/1.1-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 17:57:10.621 SingleUserNotebookApp kernelspec:218] Found kernel pyquantum in /p/software/jurecadc/stages/2020/software/JupyterKernel-PyQuantum/1.1-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 17:57:10.623 SingleUserNotebookApp kernelspec:218] Found kernel pyparaview in /p/software/jurecadc/stages/2020/software/JupyterKernel-PyParaView/5.9.1-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 17:57:10.626 SingleUserNotebookApp kernelspec:218] Found kernel octave in /p/software/jurecadc/stages/2020/software/JupyterKernel-Octave/6.1.0-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 17:57:10.628 SingleUserNotebookApp kernelspec:218] Found kernel julia-1.6 in /p/software/jurecadc/stages/2020/software/JupyterKernel-Julia/1.6.1-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 17:57:10.630 SingleUserNotebookApp kernelspec:218] Found kernel javascript in /p/software/jurecadc/stages/2020/software/JupyterKernel-JavaScript/5.2.0-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 17:57:10.634 SingleUserNotebookApp kernelspec:218] Found kernel cling-cpp17 in /p/software/jurecadc/stages/2020/software/JupyterKernel-Cling/0.9-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 17:57:10.637 SingleUserNotebookApp kernelspec:218] Found kernel bash in /p/software/jurecadc/stages/2020/software/JupyterKernel-Bash/0.7.1-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 17:57:10.639 SingleUserNotebookApp kernelspec:218] Found kernel python3 in /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/kernels\n",
+      "[D 2022-04-05 17:57:11.092 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:11.093 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/usr/local/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:11.093 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:11.093 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:11.094 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:11.094 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:12.969 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:12.969 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/usr/local/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:12.969 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:12.970 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:12.970 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:12.970 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:13.286 SingleUserNotebookApp process:61] Trying to start nvdashboard\n",
+      "[D 2022-04-05 17:57:13.299 SingleUserNotebookApp process:61] Started nvdashboard\n",
+      "[D 2022-04-05 17:57:13.302 SingleUserNotebookApp handlers:484] Connection to http://localhost:33613 refused\n",
+      "[D 2022-04-05 17:57:13.302 SingleUserNotebookApp process:61] Readyness: False after 0.002353191375732422 seconds, next check in 0.01s\n",
+      "[D 2022-04-05 17:57:13.313 SingleUserNotebookApp handlers:484] Connection to http://localhost:33613 refused\n",
+      "[D 2022-04-05 17:57:13.313 SingleUserNotebookApp process:61] Readyness: False after 0.013611078262329102 seconds, next check in 0.02s\n",
+      "[D 2022-04-05 17:57:13.335 SingleUserNotebookApp handlers:484] Connection to http://localhost:33613 refused\n",
+      "[D 2022-04-05 17:57:13.335 SingleUserNotebookApp process:61] Readyness: False after 0.035233259201049805 seconds, next check in 0.04s\n",
+      "[D 2022-04-05 17:57:13.374 LabApp] Node v14.17.6\n",
+      "    \n",
+      "[D 2022-04-05 17:57:13.377 SingleUserNotebookApp handlers:484] Connection to http://localhost:33613 refused\n",
+      "[D 2022-04-05 17:57:13.377 SingleUserNotebookApp process:61] Readyness: False after 0.07730245590209961 seconds, next check in 0.08s\n",
+      "[D 2022-04-05 17:57:13.459 SingleUserNotebookApp handlers:484] Connection to http://localhost:33613 refused\n",
+      "[D 2022-04-05 17:57:13.459 SingleUserNotebookApp process:61] Readyness: False after 0.15953564643859863 seconds, next check in 0.16s\n",
+      "[D 2022-04-05 17:57:13.603 LabApp] Yarn configuration loaded.\n",
+      "[D 2022-04-05 17:57:13.621 SingleUserNotebookApp handlers:484] Connection to http://localhost:33613 refused\n",
+      "[D 2022-04-05 17:57:13.621 SingleUserNotebookApp process:61] Readyness: False after 0.3215446472167969 seconds, next check in 0.32s\n",
+      "[I 2022-04-05 17:57:13.736 LabApp] Build is up to date\n",
+      "[D 2022-04-05 17:57:13.944 SingleUserNotebookApp handlers:484] Connection to http://localhost:33613 refused\n",
+      "[D 2022-04-05 17:57:13.944 SingleUserNotebookApp process:61] Readyness: False after 0.6448893547058105 seconds, next check in 0.64s\n",
+      "[D 2022-04-05 17:57:14.302 SingleUserNotebookApp handlers:854] Path @jupyterlab/theme-light-extension/index.css served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/themes/@jupyterlab/theme-light-extension/index.css\n",
+      "[D 2022-04-05 17:57:14.587 SingleUserNotebookApp handlers:484] Connection to http://localhost:33613 refused\n",
+      "[D 2022-04-05 17:57:14.587 SingleUserNotebookApp process:61] Readyness: False after 1.2871432304382324 seconds, next check in 1.28s\n",
+      "[D 2022-04-05 17:57:15.869 SingleUserNotebookApp handlers:484] Connection to http://localhost:33613 refused\n",
+      "[D 2022-04-05 17:57:15.870 SingleUserNotebookApp process:61] Readyness: False after 2.570127487182617 seconds, next check in 2.56s\n",
+      "WARNING:bokeh.server.util:Host wildcard '*' will allow connections originating from multiple (or possibly all) hostnames or IPs. Use non-wildcard values to restrict access explicitly\n",
+      "[D 2022-04-05 17:57:17.334 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:17.335 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/usr/local/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:17.335 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:17.335 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:17.336 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:17.337 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:17.344 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:17.345 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/usr/local/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:17.345 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:17.345 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:17.346 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:17.346 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:17.349 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:17.349 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/usr/local/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:17.349 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:17.350 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:17.350 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:17.350 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:17.500 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:17.500 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/usr/local/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:17.500 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:17.501 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:17.501 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:17.501 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:17.594 SingleUserNotebookApp.jupyterlab_git git:133] Execute ['git', '--version'] in ..\n",
+      "[D 2022-04-05 17:57:17.631 SingleUserNotebookApp.jupyterlab_git git:153] Code: 0\n",
+      "    Output: git version 2.28.0\n",
+      "    \n",
+      "    Error: \n",
+      "[D 2022-04-05 17:57:18.098 SingleUserNotebookApp config_manager:96] Paths used for configuration of notebook: \n",
+      "    \t/etc/jupyter/nbconfig/notebook.json\n",
+      "[D 2022-04-05 17:57:18.098 SingleUserNotebookApp config_manager:96] Paths used for configuration of notebook: \n",
+      "    \t/etc/jupyter/nbconfig/notebook.json\n",
+      "[D 2022-04-05 17:57:18.098 SingleUserNotebookApp config_manager:96] Paths used for configuration of notebook: \n",
+      "    \t/usr/local/etc/jupyter/nbconfig/notebook.json\n",
+      "[D 2022-04-05 17:57:18.099 SingleUserNotebookApp config_manager:96] Paths used for configuration of notebook: \n",
+      "    \t/usr/local/etc/jupyter/nbconfig/notebook.json\n",
+      "[D 2022-04-05 17:57:18.099 SingleUserNotebookApp config_manager:96] Paths used for configuration of notebook: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0/etc/jupyter/nbconfig/notebook.json\n",
+      "[D 2022-04-05 17:57:18.099 SingleUserNotebookApp config_manager:96] Paths used for configuration of notebook: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0/etc/jupyter/nbconfig/notebook.json\n",
+      "[D 2022-04-05 17:57:18.100 SingleUserNotebookApp config_manager:96] Paths used for configuration of notebook: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/nbconfig/notebook.json\n",
+      "[D 2022-04-05 17:57:18.100 SingleUserNotebookApp config_manager:96] Paths used for configuration of notebook: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/nbconfig/notebook.json\n",
+      "[D 2022-04-05 17:57:18.102 SingleUserNotebookApp config_manager:96] Paths used for configuration of notebook: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/bqplot.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/ipyvolume.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-datawidgets.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-leaflet.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-matplotlib.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-threejs.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-vue.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-vuetify.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-webrtc.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter_bokeh.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter_dash.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter_resource_usage.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyterlab-plotly.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/nbdime.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/rise.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/voila.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/widgetsnbextension.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.json\n",
+      "[D 2022-04-05 17:57:18.102 SingleUserNotebookApp config_manager:96] Paths used for configuration of notebook: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/bqplot.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/ipyvolume.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-datawidgets.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-leaflet.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-matplotlib.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-threejs.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-vue.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-vuetify.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-webrtc.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter_bokeh.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter_dash.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter_resource_usage.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyterlab-plotly.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/nbdime.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/rise.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/voila.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/widgetsnbextension.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.json\n",
+      "[D 2022-04-05 17:57:18.121 SingleUserNotebookApp config_manager:96] Paths used for configuration of notebook: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/nbconfig/notebook.json\n",
+      "[D 2022-04-05 17:57:18.125 SingleUserNotebookApp config_manager:96] Paths used for configuration of notebook: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/nbconfig/notebook.json\n",
+      "[D 2022-04-05 17:57:18.130 SingleUserNotebookApp config_manager:96] Paths used for configuration of notebook: \n",
+      "    \t/etc/jupyter/nbconfig/notebook.json\n",
+      "[D 2022-04-05 17:57:18.130 SingleUserNotebookApp config_manager:96] Paths used for configuration of notebook: \n",
+      "    \t/usr/local/etc/jupyter/nbconfig/notebook.json\n",
+      "[D 2022-04-05 17:57:18.131 SingleUserNotebookApp config_manager:96] Paths used for configuration of notebook: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0/etc/jupyter/nbconfig/notebook.json\n",
+      "[D 2022-04-05 17:57:18.131 SingleUserNotebookApp config_manager:96] Paths used for configuration of notebook: \n",
+      "    \t/etc/jupyter/nbconfig/notebook.json\n",
+      "[D 2022-04-05 17:57:18.132 SingleUserNotebookApp config_manager:96] Paths used for configuration of notebook: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/nbconfig/notebook.json\n",
+      "[D 2022-04-05 17:57:18.132 SingleUserNotebookApp config_manager:96] Paths used for configuration of notebook: \n",
+      "    \t/usr/local/etc/jupyter/nbconfig/notebook.json\n",
+      "[D 2022-04-05 17:57:18.133 SingleUserNotebookApp config_manager:96] Paths used for configuration of notebook: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0/etc/jupyter/nbconfig/notebook.json\n",
+      "[D 2022-04-05 17:57:18.133 SingleUserNotebookApp config_manager:96] Paths used for configuration of notebook: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/bqplot.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/ipyvolume.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-datawidgets.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-leaflet.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-matplotlib.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-threejs.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-vue.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-vuetify.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-webrtc.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter_bokeh.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter_dash.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter_resource_usage.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyterlab-plotly.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/nbdime.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/rise.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/voila.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/widgetsnbextension.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.json\n",
+      "[D 2022-04-05 17:57:18.133 SingleUserNotebookApp config_manager:96] Paths used for configuration of notebook: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/nbconfig/notebook.json\n",
+      "[D 2022-04-05 17:57:18.134 SingleUserNotebookApp config_manager:96] Paths used for configuration of notebook: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/bqplot.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/ipyvolume.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-datawidgets.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-leaflet.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-matplotlib.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-threejs.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-vue.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-vuetify.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-webrtc.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter_bokeh.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter_dash.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter_resource_usage.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyterlab-plotly.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/nbdime.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/rise.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/voila.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/widgetsnbextension.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.json\n",
+      "[D 2022-04-05 17:57:18.137 SingleUserNotebookApp config_manager:96] Paths used for configuration of notebook: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/nbconfig/notebook.json\n",
+      "[D 2022-04-05 17:57:18.138 SingleUserNotebookApp config_manager:96] Paths used for configuration of notebook: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/nbconfig/notebook.json\n",
+      "[D 2022-04-05 17:57:18.975 SingleUserNotebookApp handlers:481] Got code 200 back from http://localhost:33613\n",
+      "[D 2022-04-05 17:57:18.975 SingleUserNotebookApp process:61] Readyness: True after 5.675713062286377 seconds, next check in 5.12s\n",
+      "[D 2022-04-05 17:57:19.439 SingleUserNotebookApp config_manager:96] Paths used for configuration of notebook: \n",
+      "    \t/etc/jupyter/nbconfig/notebook.json\n",
+      "[D 2022-04-05 17:57:19.439 SingleUserNotebookApp config_manager:96] Paths used for configuration of notebook: \n",
+      "    \t/usr/local/etc/jupyter/nbconfig/notebook.json\n",
+      "[D 2022-04-05 17:57:19.439 SingleUserNotebookApp config_manager:96] Paths used for configuration of notebook: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0/etc/jupyter/nbconfig/notebook.json\n",
+      "[D 2022-04-05 17:57:19.440 SingleUserNotebookApp config_manager:96] Paths used for configuration of notebook: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/nbconfig/notebook.json\n",
+      "[D 2022-04-05 17:57:19.440 SingleUserNotebookApp config_manager:96] Paths used for configuration of notebook: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/bqplot.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/ipyvolume.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-datawidgets.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-leaflet.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-matplotlib.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-threejs.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-vue.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-vuetify.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-webrtc.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter_bokeh.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter_dash.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter_resource_usage.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyterlab-plotly.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/nbdime.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/rise.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/voila.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/widgetsnbextension.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.json\n",
+      "[D 2022-04-05 17:57:19.441 SingleUserNotebookApp config_manager:96] Paths used for configuration of notebook: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/nbconfig/notebook.json\n",
+      "[D 2022-04-05 17:57:19.465 SingleUserNotebookApp config_manager:96] Paths used for configuration of notebook: \n",
+      "    \t/etc/jupyter/nbconfig/notebook.json\n",
+      "[D 2022-04-05 17:57:19.466 SingleUserNotebookApp config_manager:96] Paths used for configuration of notebook: \n",
+      "    \t/usr/local/etc/jupyter/nbconfig/notebook.json\n",
+      "[D 2022-04-05 17:57:19.466 SingleUserNotebookApp config_manager:96] Paths used for configuration of notebook: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0/etc/jupyter/nbconfig/notebook.json\n",
+      "[D 2022-04-05 17:57:19.466 SingleUserNotebookApp config_manager:96] Paths used for configuration of notebook: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/nbconfig/notebook.json\n",
+      "[D 2022-04-05 17:57:19.467 SingleUserNotebookApp config_manager:96] Paths used for configuration of notebook: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/bqplot.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/ipyvolume.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-datawidgets.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-leaflet.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-matplotlib.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-threejs.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-vue.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-vuetify.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter-webrtc.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter_bokeh.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter_dash.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyter_resource_usage.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/jupyterlab-plotly.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/nbdime.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/rise.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/voila.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.d/widgetsnbextension.json\n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/nbconfig/notebook.json\n",
+      "[D 2022-04-05 17:57:19.468 SingleUserNotebookApp config_manager:96] Paths used for configuration of notebook: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/nbconfig/notebook.json\n",
+      "[D 2022-04-05 17:57:29.619 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:29.619 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/usr/local/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:29.620 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:29.620 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:29.620 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:29.621 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:29.637 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:29.637 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/usr/local/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:29.638 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:29.638 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:29.638 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:29.639 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:29.853 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:29.853 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/usr/local/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:29.854 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:29.854 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:29.854 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:29.855 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:31.941 SingleUserNotebookApp handlers:20] Serving kernel resource from: /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/kernels/python3\n",
+      "[D 2022-04-05 17:57:31.946 SingleUserNotebookApp handlers:20] Serving kernel resource from: /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels/covid19dynstat_jusuf\n",
+      "[D 2022-04-05 17:57:31.948 SingleUserNotebookApp handlers:20] Serving kernel resource from: /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels/covid19dynstat_juwels\n",
+      "[D 2022-04-05 17:57:31.957 SingleUserNotebookApp handlers:20] Serving kernel resource from: /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels/dg_rr_analytics\n",
+      "[D 2022-04-05 17:57:31.978 SingleUserNotebookApp handlers:20] Serving kernel resource from: /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels/esm2022_kernel\n",
+      "[D 2022-04-05 17:57:31.986 SingleUserNotebookApp handlers:20] Serving kernel resource from: /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels/goebbert1_workshop2\n",
+      "[D 2022-04-05 17:57:31.990 SingleUserNotebookApp handlers:20] Serving kernel resource from: /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels/goebbert1_pyferret\n",
+      "[D 2022-04-05 17:57:31.994 SingleUserNotebookApp handlers:20] Serving kernel resource from: /p/software/jurecadc/stages/2020/software/JupyterKernel-Octave/6.1.0-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels/octave\n",
+      "[D 2022-04-05 17:57:32.015 SingleUserNotebookApp handlers:20] Serving kernel resource from: /p/software/jurecadc/stages/2020/software/JupyterKernel-Julia/1.6.1-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels/julia-1.6\n",
+      "[D 2022-04-05 17:57:32.022 SingleUserNotebookApp handlers:20] Serving kernel resource from: /p/software/jurecadc/stages/2020/software/JupyterKernel-JavaScript/5.2.0-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels/javascript\n",
+      "[D 2022-04-05 17:57:32.029 SingleUserNotebookApp handlers:20] Serving kernel resource from: /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels/pycompss\n",
+      "[D 2022-04-05 17:57:32.079 SingleUserNotebookApp handlers:20] Serving kernel resource from: /p/software/jurecadc/stages/2020/software/JupyterKernel-PyDeepLearning/1.1-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels/pydeeplearning\n",
+      "[D 2022-04-05 17:57:32.082 SingleUserNotebookApp handlers:20] Serving kernel resource from: /p/software/jurecadc/stages/2020/software/JupyterKernel-PyParaView/5.9.1-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels/pyparaview\n",
+      "[D 2022-04-05 17:57:32.105 SingleUserNotebookApp handlers:20] Serving kernel resource from: /p/software/jurecadc/stages/2020/software/JupyterKernel-PyQuantum/1.1-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels/pyquantum\n",
+      "[D 2022-04-05 17:57:32.122 SingleUserNotebookApp handlers:20] Serving kernel resource from: /p/software/jurecadc/stages/2020/software/JupyterKernel-R/4.0.2-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels/ir40\n",
+      "[D 2022-04-05 17:57:32.134 SingleUserNotebookApp handlers:20] Serving kernel resource from: /p/software/jurecadc/stages/2020/software/JupyterKernel-Ruby/2.7.2-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels/ruby\n",
+      "[D 2022-04-05 17:57:32.151 SingleUserNotebookApp handlers:20] Serving kernel resource from: /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels/unseen_kernel\n",
+      "[D 2022-04-05 17:57:32.171 SingleUserNotebookApp.jupyterlab_git git:133] Execute ['git', 'rev-parse', '--show-prefix'] in /p/home/jusers/goebbert1/jureca/.\n",
+      "[D 2022-04-05 17:57:32.350 SingleUserNotebookApp.jupyterlab_git git:153] Code: 128\n",
+      "    Output: \n",
+      "    Error: fatal: not a git repository (or any parent up to mount point /p)\n",
+      "    Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).\n",
+      "    \n",
+      "[D 2022-04-05 17:57:32.997 SingleUserNotebookApp handlers:854] Path jupyterlab-tour/static/801.233a4be81250b001d06f.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/jupyterlab-tour/static/801.233a4be81250b001d06f.js\n",
+      "[D 2022-04-05 17:57:53.335 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:53.335 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/usr/local/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:53.336 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:53.336 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:53.336 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:57:53.337 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:58:28.491 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:58:28.491 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/usr/local/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:58:28.491 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:58:28.492 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:58:28.492 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/etc/jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 17:58:28.492 SingleUserNotebookApp config_manager:97] Paths used for configuration of default_setting_overrides: \n",
+      "    \t/p/home/jusers/goebbert1/jureca/.jupyter/labconfig/default_setting_overrides.json\n",
+      "[D 2022-04-05 18:01:39.415 SingleUserNotebookApp mixins:518] Notifying Hub of activity 2022-04-05T15:58:29.744302Z\n",
+      "[D 2022-04-05 18:03:50.074 SingleUserNotebookApp.jupyterlab_git git:133] Execute ['git', 'rev-parse', '--show-prefix'] in /p/home/jusers/goebbert1/jureca/PRACE-jupyter4hpc.\n",
+      "[D 2022-04-05 18:03:50.107 SingleUserNotebookApp.jupyterlab_git git:153] Code: 128\n",
+      "    Output: \n",
+      "    Error: fatal: not a git repository (or any parent up to mount point /p)\n",
+      "    Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).\n",
+      "    \n",
+      "[D 2022-04-05 18:03:53.658 SingleUserNotebookApp.jupyterlab_git git:133] Execute ['git', 'rev-parse', '--show-prefix'] in /p/home/jusers/goebbert1/jureca/PRACE-jupyter4hpc/prace-2022.04-jupyter4hpc.\n",
+      "[D 2022-04-05 18:03:53.724 SingleUserNotebookApp.jupyterlab_git git:153] Code: 0\n",
+      "    Output: \n",
+      "    \n",
+      "    Error: \n",
+      "[D 2022-04-05 18:03:53.967 SingleUserNotebookApp.jupyterlab_git git:133] Execute ['git', 'log', '--pretty=format:%H%n%an%n%ar%n%s', '-25'] in /p/home/jusers/goebbert1/jureca/PRACE-jupyter4hpc/prace-2022.04-jupyter4hpc.\n",
+      "[D 2022-04-05 18:03:54.097 SingleUserNotebookApp.jupyterlab_git git:153] Code: 0\n",
+      "    Output: 67ebd929221a1dcca892a33b7906b51b0788d108\n",
+      "    Jens Henrik Goebbert\n",
+      "    19 hours ago\n",
+      "    add\n",
+      "    435ba97c39650cb40fd48fdf3e9d5394d99f950e\n",
+      "    Jens Henrik Goebbert\n",
+      "    19 hours ago\n",
+      "    del\n",
+      "    57a95c057a65d00d56bb2d5bb3b21eac144c0e38\n",
+      "    Jens Henrik Goebbert\n",
+      "    19 hours ago\n",
+      "    revert\n",
+      "    610813a53c0561ae8d9d779c97f56409d91b0e42\n",
+      "    Jens Henrik Goebbert\n",
+      "    19 hours ago\n",
+      "    delete\n",
+      "    46909c8b2166cd28dbabd3c6b333f44f1e9f9147\n",
+      "    Jens Henrik Goebbert\n",
+      "    19 hours ago\n",
+      "    update\n",
+      "    4dea1fb3f56cfb736f9cfd1f48496cb21408f990\n",
+      "    Jens Henrik Goebbert\n",
+      "    19 hours ago\n",
+      "    update\n",
+      "    8a60ae39b11a5f...\n",
+      "    Error: \n",
+      "[D 2022-04-05 18:03:56.756 SingleUserNotebookApp.jupyterlab_git git:133] Execute ['git', 'rev-parse', '--show-prefix'] in /p/home/jusers/goebbert1/jureca/PRACE-jupyter4hpc.\n",
+      "[D 2022-04-05 18:03:56.786 SingleUserNotebookApp.jupyterlab_git git:153] Code: 128\n",
+      "    Output: \n",
+      "    Error: fatal: not a git repository (or any parent up to mount point /p)\n",
+      "    Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).\n",
+      "    \n",
+      "[D 2022-04-05 18:03:57.917 SingleUserNotebookApp.jupyterlab_git git:133] Execute ['git', 'rev-parse', '--show-prefix'] in /p/home/jusers/goebbert1/jureca/PRACE-jupyter4hpc/from-hdfcloud.\n",
+      "[D 2022-04-05 18:03:57.948 SingleUserNotebookApp.jupyterlab_git git:153] Code: 128\n",
+      "    Output: \n",
+      "    Error: fatal: not a git repository (or any parent up to mount point /p)\n",
+      "    Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).\n",
+      "    \n",
+      "[D 2022-04-05 18:03:59.289 SingleUserNotebookApp.jupyterlab_git git:133] Execute ['git', 'rev-parse', '--show-prefix'] in /p/home/jusers/goebbert1/jureca/PRACE-jupyter4hpc/from-hdfcloud/day_2_template.\n",
+      "[D 2022-04-05 18:03:59.319 SingleUserNotebookApp.jupyterlab_git git:153] Code: 128\n",
+      "    Output: \n",
+      "    Error: fatal: not a git repository (or any parent up to mount point /p)\n",
+      "    Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).\n",
+      "    \n",
+      "[D 2022-04-05 18:04:00.618 SingleUserNotebookApp.jupyterlab_git git:133] Execute ['git', 'rev-parse', '--show-prefix'] in /p/home/jusers/goebbert1/jureca/PRACE-jupyter4hpc/from-hdfcloud/day_2_template/2_hpc-environment.\n",
+      "[D 2022-04-05 18:04:00.649 SingleUserNotebookApp.jupyterlab_git git:153] Code: 128\n",
+      "    Output: \n",
+      "    Error: fatal: not a git repository (or any parent up to mount point /p)\n",
+      "    Stopping at filesystem boundary (GIT_DISCOVERY_ACROSS_FILESYSTEM not set).\n",
+      "    \n",
+      "[W 2022-04-05 18:04:02.872 SingleUserNotebookApp manager:533] Notebook PRACE-jupyter4hpc/from-hdfcloud/day_2_template/2_hpc-environment/2-explore-hpc-environment.ipynb is not trusted\n",
+      "[D 2022-04-05 18:04:02.925 SingleUserNotebookApp handlers:854] Path e42a88444448ac3d60549cc7c1ff2c8a9cac721034c073d80a14a44e79730cca.woff2 served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/e42a88444448ac3d60549cc7c1ff2c8a9cac721034c073d80a14a44e79730cca.woff2\n",
+      "[D 2022-04-05 18:04:02.926 SingleUserNotebookApp handlers:854] Path 8ea8791754915a898a3100e63e32978a6d1763be6df8e73a39d3a90d691cdeef.woff2 served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/lab/static/8ea8791754915a898a3100e63e32978a6d1763be6df8e73a39d3a90d691cdeef.woff2\n",
+      "[D 2022-04-05 18:04:02.930 SingleUserNotebookApp handlers:854] Path MathJax.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/lib/python3.8/site-packages/jupyter_server_mathjax/static/MathJax.js\n",
+      "[D 2022-04-05 18:04:03.468 SingleUserNotebookApp handlers:854] Path config/TeX-AMS-MML_HTMLorMML-full.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/lib/python3.8/site-packages/jupyter_server_mathjax/static/config/TeX-AMS-MML_HTMLorMML-full.js\n",
+      "[W 2022-04-05 18:04:06.288 SingleUserNotebookApp configurable:193] Config option `checkpoint_permissions` not recognized by `FileCheckpoints`.  Did you mean `checkpoint_dir`?\n",
+      "[W 2022-04-05 18:04:06.288 SingleUserNotebookApp configurable:193] Config option `restore_permissions` not recognized by `FileCheckpoints`.\n",
+      "[W 2022-04-05 18:04:06.288 SingleUserNotebookApp configurable:193] Config option `checkpoint_dir_umask` not recognized by `FileCheckpoints`.  Did you mean `checkpoint_dir`?\n",
+      "[D 2022-04-05 18:04:06.799 SingleUserNotebookApp handlers:854] Path config/Safe.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/lib/python3.8/site-packages/jupyter_server_mathjax/static/config/Safe.js\n",
+      "[D 2022-04-05 18:04:06.909 SingleUserNotebookApp handlers:854] Path extensions/Safe.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/lib/python3.8/site-packages/jupyter_server_mathjax/static/extensions/Safe.js\n",
+      "[D 2022-04-05 18:04:07.382 SingleUserNotebookApp handlers:854] Path jax/output/HTML-CSS/fonts/STIX-Web/fontdata.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/lib/python3.8/site-packages/jupyter_server_mathjax/static/jax/output/HTML-CSS/fonts/STIX-Web/fontdata.js\n",
+      "[D 2022-04-05 18:04:07.407 SingleUserNotebookApp factory:96] Instantiating kernel 'Python 3 (ipykernel)' with kernel provisioner: local-provisioner\n",
+      "[D 2022-04-05 18:04:07.418 SingleUserNotebookApp manager:335] Starting kernel: ['/p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0/bin/python', '-m', 'ipykernel_launcher', '-f', '/p/home/jusers/goebbert1/jureca/.local/share/jupyter/runtime/kernel-f6583e74-6096-467a-8523-c17de5aaff96.json']\n",
+      "[D 2022-04-05 18:04:07.433 SingleUserNotebookApp connect:616] Connecting to: tcp://127.0.0.1:57337\n",
+      "[D 2022-04-05 18:04:07.434 SingleUserNotebookApp connect:616] Connecting to: tcp://127.0.0.1:40309\n",
+      "[I 2022-04-05 18:04:07.435 SingleUserNotebookApp kernelmanager:214] Kernel started: f6583e74-6096-467a-8523-c17de5aaff96\n",
+      "[D 2022-04-05 18:04:07.435 SingleUserNotebookApp kernelmanager:215] Kernel args: {'kernel_name': 'python3', 'cwd': '/p/home/jusers/goebbert1/jureca/PRACE-jupyter4hpc/from-hdfcloud/day_2_template/2_hpc-environment'}\n",
+      "[D 2022-04-05 18:04:08.055 SingleUserNotebookApp zmqhandlers:286] Initializing websocket connection /user/j.goebbert@fz-juelich.de/jureca/api/kernels/f6583e74-6096-467a-8523-c17de5aaff96/channels\n",
+      "[D 2022-04-05 18:04:08.056 SingleUserNotebookApp handlers:241] Requesting kernel info from f6583e74-6096-467a-8523-c17de5aaff96\n",
+      "[D 2022-04-05 18:04:08.056 SingleUserNotebookApp connect:616] Connecting to: tcp://127.0.0.1:56491\n",
+      "[D 2022-04-05 18:04:08.093 SingleUserNotebookApp kernelspec:218] Found kernel unseen_kernel in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:08.093 SingleUserNotebookApp kernelspec:218] Found kernel my_env in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:08.093 SingleUserNotebookApp kernelspec:218] Found kernel covid19dynstat_juwels in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:08.093 SingleUserNotebookApp kernelspec:218] Found kernel esm2022_kernel in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:08.093 SingleUserNotebookApp kernelspec:218] Found kernel dg_rr_analytics in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:08.093 SingleUserNotebookApp kernelspec:218] Found kernel pycompss in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:08.093 SingleUserNotebookApp kernelspec:218] Found kernel covid19dynstat_jusuf in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:08.093 SingleUserNotebookApp kernelspec:218] Found kernel goebbert1_workshop2 in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:08.093 SingleUserNotebookApp kernelspec:218] Found kernel goebbert1_pyferret in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:08.094 SingleUserNotebookApp kernelspec:218] Found kernel ruby in /p/software/jurecadc/stages/2020/software/JupyterKernel-Ruby/2.7.2-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:08.094 SingleUserNotebookApp kernelspec:218] Found kernel ir40 in /p/software/jurecadc/stages/2020/software/JupyterKernel-R/4.0.2-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:08.095 SingleUserNotebookApp kernelspec:218] Found kernel pydeeplearning in /p/software/jurecadc/stages/2020/software/JupyterKernel-PyDeepLearning/1.1-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:08.096 SingleUserNotebookApp kernelspec:218] Found kernel pyquantum in /p/software/jurecadc/stages/2020/software/JupyterKernel-PyQuantum/1.1-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:08.096 SingleUserNotebookApp kernelspec:218] Found kernel pyparaview in /p/software/jurecadc/stages/2020/software/JupyterKernel-PyParaView/5.9.1-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:08.097 SingleUserNotebookApp kernelspec:218] Found kernel octave in /p/software/jurecadc/stages/2020/software/JupyterKernel-Octave/6.1.0-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:08.098 SingleUserNotebookApp kernelspec:218] Found kernel julia-1.6 in /p/software/jurecadc/stages/2020/software/JupyterKernel-Julia/1.6.1-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:08.098 SingleUserNotebookApp kernelspec:218] Found kernel javascript in /p/software/jurecadc/stages/2020/software/JupyterKernel-JavaScript/5.2.0-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:08.100 SingleUserNotebookApp kernelspec:218] Found kernel cling-cpp17 in /p/software/jurecadc/stages/2020/software/JupyterKernel-Cling/0.9-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:08.102 SingleUserNotebookApp kernelspec:218] Found kernel bash in /p/software/jurecadc/stages/2020/software/JupyterKernel-Bash/0.7.1-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:08.103 SingleUserNotebookApp kernelspec:218] Found kernel python3 in /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:11.457 SingleUserNotebookApp kernelmanager:499] activity on f6583e74-6096-467a-8523-c17de5aaff96: status (starting)\n",
+      "[D 2022-04-05 18:04:11.458 SingleUserNotebookApp kernelmanager:499] activity on f6583e74-6096-467a-8523-c17de5aaff96: status (busy)\n",
+      "[D 2022-04-05 18:04:11.458 SingleUserNotebookApp handlers:270] Received kernel info: {'status': 'ok', 'protocol_version': '5.3', 'implementation': 'ipython', 'implementation_version': '7.28.0', 'language_info': {'name': 'python', 'version': '3.8.5', 'mimetype': 'text/x-python', 'codemirror_mode': {'name': 'ipython', 'version': 3}, 'pygments_lexer': 'ipython3', 'nbconvert_exporter': 'python', 'file_extension': '.py'}, 'banner': \"Python 3.8.5 (default, Aug 26 2021, 15:00:50) \\nType 'copyright', 'credits' or 'license' for more information\\nIPython 7.28.0 -- An enhanced Interactive Python. Type '?' for help.\\n\", 'help_links': [{'text': 'Python Reference', 'url': 'https://docs.python.org/3.8'}, {'text': 'IPython Reference', 'url': 'https://ipython.org/documentation.html'}, {'text': 'NumPy Reference', 'url': 'https://docs.scipy.org/doc/numpy/reference/'}, {'text': 'SciPy Reference', 'url': 'https://docs.scipy.org/doc/scipy/reference/'}, {'text': 'Matplotlib Reference', 'url': 'https://matplotlib.org/contents.html'}, {'text': 'SymPy Reference', 'url': 'http://docs.sympy.org/latest/index.html'}, {'text': 'pandas Reference', 'url': 'https://pandas.pydata.org/pandas-docs/stable/'}]}\n",
+      "[D 2022-04-05 18:04:11.458 SingleUserNotebookApp kernelmanager:499] activity on f6583e74-6096-467a-8523-c17de5aaff96: status (idle)\n",
+      "[D 2022-04-05 18:04:11.459 SingleUserNotebookApp zmqhandlers:159] Opening websocket /user/j.goebbert@fz-juelich.de/jureca/api/kernels/f6583e74-6096-467a-8523-c17de5aaff96/channels\n",
+      "[D 2022-04-05 18:04:11.459 SingleUserNotebookApp kernelmanager:321] Getting buffer for f6583e74-6096-467a-8523-c17de5aaff96\n",
+      "[D 2022-04-05 18:04:11.459 SingleUserNotebookApp connect:616] Connecting to: tcp://127.0.0.1:40309\n",
+      "[D 2022-04-05 18:04:11.459 SingleUserNotebookApp connect:616] Connecting to: tcp://127.0.0.1:56491\n",
+      "[D 2022-04-05 18:04:11.460 SingleUserNotebookApp connect:616] Connecting to: tcp://127.0.0.1:57337\n",
+      "[D 2022-04-05 18:04:11.460 SingleUserNotebookApp connect:616] Connecting to: tcp://127.0.0.1:36009\n",
+      "[D 2022-04-05 18:04:11.460 SingleUserNotebookApp connect:616] Connecting to: tcp://127.0.0.1:56491\n",
+      "[D 2022-04-05 18:04:11.460 SingleUserNotebookApp handlers:220] Nudge: attempt 1 on kernel f6583e74-6096-467a-8523-c17de5aaff96\n",
+      "[D 2022-04-05 18:04:11.461 SingleUserNotebookApp handlers:185] Nudge: IOPub received: f6583e74-6096-467a-8523-c17de5aaff96\n",
+      "[D 2022-04-05 18:04:11.461 SingleUserNotebookApp handlers:188] Nudge: resolving iopub future: f6583e74-6096-467a-8523-c17de5aaff96\n",
+      "[D 2022-04-05 18:04:11.461 SingleUserNotebookApp kernelmanager:499] activity on f6583e74-6096-467a-8523-c17de5aaff96: status (busy)\n",
+      "[D 2022-04-05 18:04:11.462 SingleUserNotebookApp handlers:179] Nudge: shell info reply received: f6583e74-6096-467a-8523-c17de5aaff96\n",
+      "[D 2022-04-05 18:04:11.462 SingleUserNotebookApp handlers:181] Nudge: resolving shell future: f6583e74-6096-467a-8523-c17de5aaff96\n",
+      "[D 2022-04-05 18:04:11.462 SingleUserNotebookApp kernelmanager:499] activity on f6583e74-6096-467a-8523-c17de5aaff96: status (idle)\n",
+      "[D 2022-04-05 18:04:11.490 SingleUserNotebookApp kernelmanager:499] activity on f6583e74-6096-467a-8523-c17de5aaff96: status (busy)\n",
+      "[D 2022-04-05 18:04:11.490 SingleUserNotebookApp kernelmanager:499] activity on f6583e74-6096-467a-8523-c17de5aaff96: status (idle)\n",
+      "[D 2022-04-05 18:04:11.553 SingleUserNotebookApp zmqhandlers:286] Initializing websocket connection /user/j.goebbert@fz-juelich.de/jureca/api/kernels/f6583e74-6096-467a-8523-c17de5aaff96/channels\n",
+      "[D 2022-04-05 18:04:11.554 SingleUserNotebookApp zmqhandlers:159] Opening websocket /user/j.goebbert@fz-juelich.de/jureca/api/kernels/f6583e74-6096-467a-8523-c17de5aaff96/channels\n",
+      "[D 2022-04-05 18:04:11.554 SingleUserNotebookApp kernelmanager:321] Getting buffer for f6583e74-6096-467a-8523-c17de5aaff96\n",
+      "[D 2022-04-05 18:04:11.554 SingleUserNotebookApp connect:616] Connecting to: tcp://127.0.0.1:40309\n",
+      "[D 2022-04-05 18:04:11.554 SingleUserNotebookApp connect:616] Connecting to: tcp://127.0.0.1:56491\n",
+      "[D 2022-04-05 18:04:11.554 SingleUserNotebookApp connect:616] Connecting to: tcp://127.0.0.1:57337\n",
+      "[D 2022-04-05 18:04:11.554 SingleUserNotebookApp connect:616] Connecting to: tcp://127.0.0.1:36009\n",
+      "[D 2022-04-05 18:04:11.554 SingleUserNotebookApp connect:616] Connecting to: tcp://127.0.0.1:56491\n",
+      "[D 2022-04-05 18:04:11.555 SingleUserNotebookApp handlers:220] Nudge: attempt 1 on kernel f6583e74-6096-467a-8523-c17de5aaff96\n",
+      "[D 2022-04-05 18:04:11.557 SingleUserNotebookApp kernelmanager:499] activity on f6583e74-6096-467a-8523-c17de5aaff96: status (busy)\n",
+      "[D 2022-04-05 18:04:11.557 SingleUserNotebookApp handlers:185] Nudge: IOPub received: f6583e74-6096-467a-8523-c17de5aaff96\n",
+      "[D 2022-04-05 18:04:11.557 SingleUserNotebookApp handlers:188] Nudge: resolving iopub future: f6583e74-6096-467a-8523-c17de5aaff96\n",
+      "[D 2022-04-05 18:04:11.557 SingleUserNotebookApp kernelmanager:499] activity on f6583e74-6096-467a-8523-c17de5aaff96: status (idle)\n",
+      "[D 2022-04-05 18:04:11.557 SingleUserNotebookApp handlers:179] Nudge: shell info reply received: f6583e74-6096-467a-8523-c17de5aaff96\n",
+      "[D 2022-04-05 18:04:11.557 SingleUserNotebookApp handlers:181] Nudge: resolving shell future: f6583e74-6096-467a-8523-c17de5aaff96\n",
+      "[D 2022-04-05 18:04:11.562 SingleUserNotebookApp handlers:580] Websocket closed f6583e74-6096-467a-8523-c17de5aaff96:2dbab8dd-5208-42d7-bb51-03a0f1a9c95c\n",
+      "[D 2022-04-05 18:04:11.620 SingleUserNotebookApp kernelmanager:499] activity on f6583e74-6096-467a-8523-c17de5aaff96: status (busy)\n",
+      "[D 2022-04-05 18:04:11.621 SingleUserNotebookApp kernelmanager:499] activity on f6583e74-6096-467a-8523-c17de5aaff96: status (idle)\n",
+      "[D 2022-04-05 18:04:11.657 SingleUserNotebookApp zmqhandlers:286] Initializing websocket connection /user/j.goebbert@fz-juelich.de/jureca/api/kernels/f6583e74-6096-467a-8523-c17de5aaff96/channels\n",
+      "[D 2022-04-05 18:04:11.659 SingleUserNotebookApp kernelmanager:499] activity on f6583e74-6096-467a-8523-c17de5aaff96: status (busy)\n",
+      "[D 2022-04-05 18:04:11.659 SingleUserNotebookApp kernelmanager:499] activity on f6583e74-6096-467a-8523-c17de5aaff96: status (busy)\n",
+      "[D 2022-04-05 18:04:11.660 SingleUserNotebookApp zmqhandlers:159] Opening websocket /user/j.goebbert@fz-juelich.de/jureca/api/kernels/f6583e74-6096-467a-8523-c17de5aaff96/channels\n",
+      "[D 2022-04-05 18:04:11.660 SingleUserNotebookApp kernelmanager:321] Getting buffer for f6583e74-6096-467a-8523-c17de5aaff96\n",
+      "[D 2022-04-05 18:04:11.660 SingleUserNotebookApp connect:616] Connecting to: tcp://127.0.0.1:40309\n",
+      "[D 2022-04-05 18:04:11.661 SingleUserNotebookApp connect:616] Connecting to: tcp://127.0.0.1:56491\n",
+      "[D 2022-04-05 18:04:11.661 SingleUserNotebookApp connect:616] Connecting to: tcp://127.0.0.1:57337\n",
+      "[D 2022-04-05 18:04:11.661 SingleUserNotebookApp connect:616] Connecting to: tcp://127.0.0.1:36009\n",
+      "[D 2022-04-05 18:04:11.661 SingleUserNotebookApp handlers:145] Nudge: not nudging busy kernel f6583e74-6096-467a-8523-c17de5aaff96\n",
+      "[D 2022-04-05 18:04:11.661 SingleUserNotebookApp kernelmanager:499] activity on f6583e74-6096-467a-8523-c17de5aaff96: status (idle)\n",
+      "[D 2022-04-05 18:04:11.667 SingleUserNotebookApp handlers:854] Path @krassowski/jupyterlab-lsp/static/732.98f9319c5c0ec1e16df9.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@krassowski/jupyterlab-lsp/static/732.98f9319c5c0ec1e16df9.js\n",
+      "[D 2022-04-05 18:04:11.673 SingleUserNotebookApp handlers:854] Path @krassowski/jupyterlab-lsp/static/jupyter-lsp-connection.17f46958343a6358bbc8.js served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/labextensions/@krassowski/jupyterlab-lsp/static/jupyter-lsp-connection.17f46958343a6358bbc8.js\n",
+      "[D 2022-04-05 18:04:11.675 SingleUserNotebookApp kernelmanager:499] activity on f6583e74-6096-467a-8523-c17de5aaff96: status (busy)\n",
+      "[D 2022-04-05 18:04:11.676 SingleUserNotebookApp kernelmanager:503] activity on f6583e74-6096-467a-8523-c17de5aaff96: execute_input\n",
+      "[D 2022-04-05 18:04:11.678 SingleUserNotebookApp kernelmanager:499] activity on f6583e74-6096-467a-8523-c17de5aaff96: status (idle)\n",
+      "[D 2022-04-05 18:04:11.719 SingleUserNotebookApp kernelmanager:499] activity on f6583e74-6096-467a-8523-c17de5aaff96: status (busy)\n",
+      "[D 2022-04-05 18:04:11.720 SingleUserNotebookApp kernelmanager:499] activity on f6583e74-6096-467a-8523-c17de5aaff96: status (idle)\n",
+      "[D 2022-04-05 18:04:11.772 SingleUserNotebookApp handlers:854] Path favicons/favicon-busy-1.ico served from /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/lib/python3.8/site-packages/jupyter_server/static/favicons/favicon-busy-1.ico\n",
+      "[D 2022-04-05 18:04:11.789 SingleUserNotebookApp kernelmanager:503] activity on f6583e74-6096-467a-8523-c17de5aaff96: stream\n",
+      "[D 2022-04-05 18:04:11.798 SingleUserNotebookApp kernelmanager:499] activity on f6583e74-6096-467a-8523-c17de5aaff96: status (busy)\n",
+      "[D 2022-04-05 18:04:11.798 SingleUserNotebookApp kernelmanager:499] activity on f6583e74-6096-467a-8523-c17de5aaff96: status (idle)\n",
+      "[D 2022-04-05 18:04:11.887 SingleUserNotebookApp kernelmanager:499] activity on f6583e74-6096-467a-8523-c17de5aaff96: status (busy)\n",
+      "[D 2022-04-05 18:04:11.888 SingleUserNotebookApp kernelmanager:499] activity on f6583e74-6096-467a-8523-c17de5aaff96: status (idle)\n",
+      "[D 2022-04-05 18:04:11.892 SingleUserNotebookApp kernelmanager:499] activity on f6583e74-6096-467a-8523-c17de5aaff96: status (idle)\n",
+      "[D 2022-04-05 18:04:11.893 SingleUserNotebookApp kernelmanager:499] activity on f6583e74-6096-467a-8523-c17de5aaff96: status (busy)\n",
+      "[D 2022-04-05 18:04:11.894 SingleUserNotebookApp kernelmanager:499] activity on f6583e74-6096-467a-8523-c17de5aaff96: status (idle)\n",
+      "[D 2022-04-05 18:04:12.356 SingleUserNotebookApp stdio:43] <LspStdIoWriter(parent=<LanguageServerSession(language_server=pylsp, argv=['/p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0/bin/python', '-m', 'pylsp'])>)> initialized\n",
+      "[D 2022-04-05 18:04:12.357 SingleUserNotebookApp stdio:43] <LspStdIoReader(parent=<LanguageServerSession(language_server=pylsp, argv=['/p/software/jurecadc/stages/2020/software/Python/3.8.5-GCCcore-10.3.0/bin/python', '-m', 'pylsp'])>)> initialized\n",
+      "[D 2022-04-05 18:04:12.357 SingleUserNotebookApp handlers:29] [pylsp] Opened a handler\n",
+      "[D 2022-04-05 18:04:12.357 SingleUserNotebookApp zmqhandlers:159] Opening websocket /user/j.goebbert@fz-juelich.de/jureca/lsp/ws/pylsp\n",
+      "[D 2022-04-05 18:04:12.376 SingleUserNotebookApp handlers:33] [pylsp] Handling a message\n",
+      "[D 2022-04-05 18:04:14.934 SingleUserNotebookApp kernelmanager:499] activity on f6583e74-6096-467a-8523-c17de5aaff96: status (busy)\n",
+      "[D 2022-04-05 18:04:14.937 SingleUserNotebookApp kernelmanager:503] activity on f6583e74-6096-467a-8523-c17de5aaff96: execute_input\n",
+      "[D 2022-04-05 18:04:14.996 SingleUserNotebookApp kernelmanager:503] activity on f6583e74-6096-467a-8523-c17de5aaff96: stream\n",
+      "[D 2022-04-05 18:04:15.099 SingleUserNotebookApp kernelmanager:499] activity on f6583e74-6096-467a-8523-c17de5aaff96: status (idle)\n",
+      "[D 2022-04-05 18:04:18.621 SingleUserNotebookApp handlers:33] [pylsp] Handling a message\n",
+      "[D 2022-04-05 18:04:18.626 SingleUserNotebookApp handlers:33] [pylsp] Handling a message\n",
+      "[D 2022-04-05 18:04:18.694 SingleUserNotebookApp handlers:33] [pylsp] Handling a message\n",
+      "[D 2022-04-05 18:04:18.764 SingleUserNotebookApp kernelmanager:499] activity on f6583e74-6096-467a-8523-c17de5aaff96: status (busy)\n",
+      "[D 2022-04-05 18:04:18.766 SingleUserNotebookApp kernelmanager:503] activity on f6583e74-6096-467a-8523-c17de5aaff96: execute_input\n",
+      "[D 2022-04-05 18:04:18.812 SingleUserNotebookApp handlers:33] [pylsp] Handling a message\n",
+      "[D 2022-04-05 18:04:18.813 SingleUserNotebookApp handlers:33] [pylsp] Handling a message\n",
+      "[D 2022-04-05 18:04:18.953 SingleUserNotebookApp kernelmanager:503] activity on f6583e74-6096-467a-8523-c17de5aaff96: stream\n",
+      "[D 2022-04-05 18:04:19.056 SingleUserNotebookApp kernelmanager:499] activity on f6583e74-6096-467a-8523-c17de5aaff96: status (idle)\n",
+      "[D 2022-04-05 18:04:20.110 SingleUserNotebookApp kernelspec:218] Found kernel unseen_kernel in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:20.110 SingleUserNotebookApp kernelspec:218] Found kernel my_env in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:20.110 SingleUserNotebookApp kernelspec:218] Found kernel covid19dynstat_juwels in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:20.110 SingleUserNotebookApp kernelspec:218] Found kernel esm2022_kernel in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:20.110 SingleUserNotebookApp kernelspec:218] Found kernel dg_rr_analytics in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:20.110 SingleUserNotebookApp kernelspec:218] Found kernel pycompss in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:20.110 SingleUserNotebookApp kernelspec:218] Found kernel covid19dynstat_jusuf in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:20.110 SingleUserNotebookApp kernelspec:218] Found kernel goebbert1_workshop2 in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:20.110 SingleUserNotebookApp kernelspec:218] Found kernel goebbert1_pyferret in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:20.115 SingleUserNotebookApp kernelspec:218] Found kernel ruby in /p/software/jurecadc/stages/2020/software/JupyterKernel-Ruby/2.7.2-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:20.330 SingleUserNotebookApp kernelspec:218] Found kernel ir40 in /p/software/jurecadc/stages/2020/software/JupyterKernel-R/4.0.2-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:20.335 SingleUserNotebookApp kernelspec:218] Found kernel pydeeplearning in /p/software/jurecadc/stages/2020/software/JupyterKernel-PyDeepLearning/1.1-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:20.341 SingleUserNotebookApp kernelspec:218] Found kernel pyquantum in /p/software/jurecadc/stages/2020/software/JupyterKernel-PyQuantum/1.1-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:20.346 SingleUserNotebookApp kernelspec:218] Found kernel pyparaview in /p/software/jurecadc/stages/2020/software/JupyterKernel-PyParaView/5.9.1-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:20.350 SingleUserNotebookApp kernelspec:218] Found kernel octave in /p/software/jurecadc/stages/2020/software/JupyterKernel-Octave/6.1.0-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:20.354 SingleUserNotebookApp kernelspec:218] Found kernel julia-1.6 in /p/software/jurecadc/stages/2020/software/JupyterKernel-Julia/1.6.1-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:20.357 SingleUserNotebookApp kernelspec:218] Found kernel javascript in /p/software/jurecadc/stages/2020/software/JupyterKernel-JavaScript/5.2.0-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:20.361 SingleUserNotebookApp kernelspec:218] Found kernel cling-cpp17 in /p/software/jurecadc/stages/2020/software/JupyterKernel-Cling/0.9-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:20.364 SingleUserNotebookApp kernelspec:218] Found kernel bash in /p/software/jurecadc/stages/2020/software/JupyterKernel-Bash/0.7.1-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:20.368 SingleUserNotebookApp kernelspec:218] Found kernel python3 in /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:04:27.390 SingleUserNotebookApp kernelmanager:499] activity on f6583e74-6096-467a-8523-c17de5aaff96: status (busy)\n",
+      "[D 2022-04-05 18:04:27.391 SingleUserNotebookApp kernelmanager:503] activity on f6583e74-6096-467a-8523-c17de5aaff96: execute_input\n",
+      "[D 2022-04-05 18:04:27.470 SingleUserNotebookApp kernelmanager:503] activity on f6583e74-6096-467a-8523-c17de5aaff96: stream\n",
+      "[D 2022-04-05 18:04:27.573 SingleUserNotebookApp kernelmanager:499] activity on f6583e74-6096-467a-8523-c17de5aaff96: status (idle)\n",
+      "[D 2022-04-05 18:05:21.510 SingleUserNotebookApp kernelspec:218] Found kernel unseen_kernel in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:05:21.511 SingleUserNotebookApp kernelspec:218] Found kernel my_env in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:05:21.511 SingleUserNotebookApp kernelspec:218] Found kernel covid19dynstat_juwels in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:05:21.511 SingleUserNotebookApp kernelspec:218] Found kernel esm2022_kernel in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:05:21.511 SingleUserNotebookApp kernelspec:218] Found kernel dg_rr_analytics in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:05:21.511 SingleUserNotebookApp kernelspec:218] Found kernel pycompss in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:05:21.511 SingleUserNotebookApp kernelspec:218] Found kernel covid19dynstat_jusuf in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:05:21.511 SingleUserNotebookApp kernelspec:218] Found kernel goebbert1_workshop2 in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:05:21.511 SingleUserNotebookApp kernelspec:218] Found kernel goebbert1_pyferret in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:05:21.511 SingleUserNotebookApp kernelspec:218] Found kernel ruby in /p/software/jurecadc/stages/2020/software/JupyterKernel-Ruby/2.7.2-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:05:21.512 SingleUserNotebookApp kernelspec:218] Found kernel ir40 in /p/software/jurecadc/stages/2020/software/JupyterKernel-R/4.0.2-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:05:21.512 SingleUserNotebookApp kernelspec:218] Found kernel pydeeplearning in /p/software/jurecadc/stages/2020/software/JupyterKernel-PyDeepLearning/1.1-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:05:21.513 SingleUserNotebookApp kernelspec:218] Found kernel pyquantum in /p/software/jurecadc/stages/2020/software/JupyterKernel-PyQuantum/1.1-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:05:21.514 SingleUserNotebookApp kernelspec:218] Found kernel pyparaview in /p/software/jurecadc/stages/2020/software/JupyterKernel-PyParaView/5.9.1-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:05:21.514 SingleUserNotebookApp kernelspec:218] Found kernel octave in /p/software/jurecadc/stages/2020/software/JupyterKernel-Octave/6.1.0-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:05:21.515 SingleUserNotebookApp kernelspec:218] Found kernel julia-1.6 in /p/software/jurecadc/stages/2020/software/JupyterKernel-Julia/1.6.1-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:05:21.516 SingleUserNotebookApp kernelspec:218] Found kernel javascript in /p/software/jurecadc/stages/2020/software/JupyterKernel-JavaScript/5.2.0-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:05:21.516 SingleUserNotebookApp kernelspec:218] Found kernel cling-cpp17 in /p/software/jurecadc/stages/2020/software/JupyterKernel-Cling/0.9-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:05:21.517 SingleUserNotebookApp kernelspec:218] Found kernel bash in /p/software/jurecadc/stages/2020/software/JupyterKernel-Bash/0.7.1-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:05:21.518 SingleUserNotebookApp kernelspec:218] Found kernel python3 in /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/kernels\n",
+      "[I 2022-04-05 18:06:07.547 SingleUserNotebookApp handlers:162] Saving file at /PRACE-jupyter4hpc/from-hdfcloud/day_2_template/2_hpc-environment/2-explore-hpc-environment.ipynb\n",
+      "[D 2022-04-05 18:06:07.547 SingleUserNotebookApp filemanager:442] Saving /p/home/jusers/goebbert1/jureca/PRACE-jupyter4hpc/from-hdfcloud/day_2_template/2_hpc-environment/2-explore-hpc-environment.ipynb\n",
+      "[D 2022-04-05 18:06:07.755 SingleUserNotebookApp handlers:33] [pylsp] Handling a message\n",
+      "[D 2022-04-05 18:06:22.616 SingleUserNotebookApp kernelspec:218] Found kernel unseen_kernel in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:06:22.617 SingleUserNotebookApp kernelspec:218] Found kernel my_env in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:06:22.617 SingleUserNotebookApp kernelspec:218] Found kernel covid19dynstat_juwels in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:06:22.617 SingleUserNotebookApp kernelspec:218] Found kernel esm2022_kernel in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:06:22.617 SingleUserNotebookApp kernelspec:218] Found kernel dg_rr_analytics in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:06:22.617 SingleUserNotebookApp kernelspec:218] Found kernel pycompss in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:06:22.617 SingleUserNotebookApp kernelspec:218] Found kernel covid19dynstat_jusuf in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:06:22.617 SingleUserNotebookApp kernelspec:218] Found kernel goebbert1_workshop2 in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:06:22.617 SingleUserNotebookApp kernelspec:218] Found kernel goebbert1_pyferret in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:06:22.617 SingleUserNotebookApp kernelspec:218] Found kernel ruby in /p/software/jurecadc/stages/2020/software/JupyterKernel-Ruby/2.7.2-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:06:22.618 SingleUserNotebookApp kernelspec:218] Found kernel ir40 in /p/software/jurecadc/stages/2020/software/JupyterKernel-R/4.0.2-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:06:22.618 SingleUserNotebookApp kernelspec:218] Found kernel pydeeplearning in /p/software/jurecadc/stages/2020/software/JupyterKernel-PyDeepLearning/1.1-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:06:22.619 SingleUserNotebookApp kernelspec:218] Found kernel pyquantum in /p/software/jurecadc/stages/2020/software/JupyterKernel-PyQuantum/1.1-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:06:22.620 SingleUserNotebookApp kernelspec:218] Found kernel pyparaview in /p/software/jurecadc/stages/2020/software/JupyterKernel-PyParaView/5.9.1-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:06:22.620 SingleUserNotebookApp kernelspec:218] Found kernel octave in /p/software/jurecadc/stages/2020/software/JupyterKernel-Octave/6.1.0-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:06:22.621 SingleUserNotebookApp kernelspec:218] Found kernel julia-1.6 in /p/software/jurecadc/stages/2020/software/JupyterKernel-Julia/1.6.1-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:06:22.622 SingleUserNotebookApp kernelspec:218] Found kernel javascript in /p/software/jurecadc/stages/2020/software/JupyterKernel-JavaScript/5.2.0-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:06:22.622 SingleUserNotebookApp kernelspec:218] Found kernel cling-cpp17 in /p/software/jurecadc/stages/2020/software/JupyterKernel-Cling/0.9-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:06:22.623 SingleUserNotebookApp kernelspec:218] Found kernel bash in /p/software/jurecadc/stages/2020/software/JupyterKernel-Bash/0.7.1-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:06:22.624 SingleUserNotebookApp kernelspec:218] Found kernel python3 in /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:06:27.384 SingleUserNotebookApp mixins:518] Notifying Hub of activity 2022-04-05T16:06:26.412588Z\n",
+      "[D 2022-04-05 18:07:23.688 SingleUserNotebookApp kernelspec:218] Found kernel unseen_kernel in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:07:23.688 SingleUserNotebookApp kernelspec:218] Found kernel my_env in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:07:23.688 SingleUserNotebookApp kernelspec:218] Found kernel covid19dynstat_juwels in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:07:23.688 SingleUserNotebookApp kernelspec:218] Found kernel esm2022_kernel in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:07:23.688 SingleUserNotebookApp kernelspec:218] Found kernel dg_rr_analytics in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:07:23.688 SingleUserNotebookApp kernelspec:218] Found kernel pycompss in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:07:23.688 SingleUserNotebookApp kernelspec:218] Found kernel covid19dynstat_jusuf in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:07:23.688 SingleUserNotebookApp kernelspec:218] Found kernel goebbert1_workshop2 in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:07:23.688 SingleUserNotebookApp kernelspec:218] Found kernel goebbert1_pyferret in /p/home/jusers/goebbert1/jureca/.local/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:07:23.688 SingleUserNotebookApp kernelspec:218] Found kernel ruby in /p/software/jurecadc/stages/2020/software/JupyterKernel-Ruby/2.7.2-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:07:23.689 SingleUserNotebookApp kernelspec:218] Found kernel ir40 in /p/software/jurecadc/stages/2020/software/JupyterKernel-R/4.0.2-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:07:23.690 SingleUserNotebookApp kernelspec:218] Found kernel pydeeplearning in /p/software/jurecadc/stages/2020/software/JupyterKernel-PyDeepLearning/1.1-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:07:23.690 SingleUserNotebookApp kernelspec:218] Found kernel pyquantum in /p/software/jurecadc/stages/2020/software/JupyterKernel-PyQuantum/1.1-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:07:23.691 SingleUserNotebookApp kernelspec:218] Found kernel pyparaview in /p/software/jurecadc/stages/2020/software/JupyterKernel-PyParaView/5.9.1-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:07:23.692 SingleUserNotebookApp kernelspec:218] Found kernel octave in /p/software/jurecadc/stages/2020/software/JupyterKernel-Octave/6.1.0-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:07:23.692 SingleUserNotebookApp kernelspec:218] Found kernel julia-1.6 in /p/software/jurecadc/stages/2020/software/JupyterKernel-Julia/1.6.1-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:07:23.693 SingleUserNotebookApp kernelspec:218] Found kernel javascript in /p/software/jurecadc/stages/2020/software/JupyterKernel-JavaScript/5.2.0-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:07:23.694 SingleUserNotebookApp kernelspec:218] Found kernel cling-cpp17 in /p/software/jurecadc/stages/2020/software/JupyterKernel-Cling/0.9-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:07:23.694 SingleUserNotebookApp kernelspec:218] Found kernel bash in /p/software/jurecadc/stages/2020/software/JupyterKernel-Bash/0.7.1-gcccoremkl-10.3.0-2021.2.0-2021.3.2/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:07:23.695 SingleUserNotebookApp kernelspec:218] Found kernel python3 in /p/software/jurecadc/stages/2020/software/Jupyter/2021.3.2-gcccoremkl-10.3.0-2021.2.0-Python-3.8.5/share/jupyter/kernels\n",
+      "[D 2022-04-05 18:07:56.793 SingleUserNotebookApp handlers:33] [pylsp] Handling a message\n",
+      "[D 2022-04-05 18:07:58.443 SingleUserNotebookApp kernelmanager:499] activity on f6583e74-6096-467a-8523-c17de5aaff96: status (busy)\n",
+      "[D 2022-04-05 18:07:58.444 SingleUserNotebookApp kernelmanager:503] activity on f6583e74-6096-467a-8523-c17de5aaff96: execute_input\n",
+      "[D 2022-04-05 18:07:58.548 SingleUserNotebookApp kernelmanager:503] activity on f6583e74-6096-467a-8523-c17de5aaff96: stream\n"
+     ]
+    }
+   ],
+   "source": [
+    "!cat $JUPYTER_LOG_DIR/stderr"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "7217f2aa-e15b-4a90-abbe-3d914e6f1e93",
+   "metadata": {},
+   "source": [
+    "#### Exercise 4:\n",
+    "How to access `$PROJECT`, `$SCRATCH` etc. from within JupyterLab.\n",
+    "\n",
+    "In JupyterLab's filebrowser you cannot escape to parent dirs of the current working directory of the juypter process.  \n",
+    "**Solution:**\n",
+    "Add softlinks in your $HOME to project-, scratch-directories."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "id": "17ce7386-a3ce-47e9-8cf1-5fef81db7e2d",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "!ln -s $PROJECT $HOME/PROJECT_$(basename $PROJECT)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 12,
+   "id": "87d8e65b-fca6-462f-ad1a-120ebc62e442",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "!ln -s $SCRATCH $HOME/SCRATCH_$(basename $SCRATCH)"
+   ]
+  }
+ ],
+ "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.8.5"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/day2_hpcenv/1_welcome+login/jupyter4hpc_welcome+introduction-2.pdf b/day2_hpcenv/1_welcome+login/jupyter4hpc_welcome+introduction-2.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..7c9b17b5dd7926777e3390bef4c80043d1cf10bf
Binary files /dev/null and b/day2_hpcenv/1_welcome+login/jupyter4hpc_welcome+introduction-2.pdf differ
diff --git a/day2_hpcenv/2_extension_slurm-provisioner/slurm-provisioner.pdf b/day2_hpcenv/2_extension_slurm-provisioner/slurm-provisioner.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..118d155e640c556249116147d982a1a82d9b660e
Binary files /dev/null and b/day2_hpcenv/2_extension_slurm-provisioner/slurm-provisioner.pdf differ
diff --git a/day2_hpcenv/3_extension_server-proxy/1-server-proxy.ipynb b/day2_hpcenv/3_extension_server-proxy/1-server-proxy.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..bd983c11f014a5ea4ef4f0dcfdb4e73cfad2a4fa
--- /dev/null
+++ b/day2_hpcenv/3_extension_server-proxy/1-server-proxy.ipynb
@@ -0,0 +1,154 @@
+{
+ "cells": [
+  {
+   "attachments": {
+    "67258d94-84e6-4a0c-ae8f-c74332ec082e.jpg": {
+     "image/jpeg": "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"
+    }
+   },
+   "cell_type": "markdown",
+   "id": "diverse-activity",
+   "metadata": {
+    "toc-hr-collapsed": false
+   },
+   "source": [
+    "![jsc-logo.jpg](attachment:67258d94-84e6-4a0c-ae8f-c74332ec082e.jpg)\n",
+    "Author: [Jens Henrik Göbbert](mailto:j.goebbert@fz-juelich.de)\n",
+    "------------------------------------"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "hourly-valentine",
+   "metadata": {},
+   "source": [
+    "### Accessing Arbitrary Ports or Hosts\n",
+    "\n",
+    "If you already have a server running on localhost listening on a port, you can access it through the notebook at `<notebook-base>/proxy/<port>`. The URL will be rewritten to remove the above prefix.\n",
+    "\n",
+    "You can disable URL rewriting by using `<notebook-base>/proxy/absolute/<port>` so your server will receive the full URL in the request.\n",
+    "\n",
+    "This works for all ports listening on the local machine.\n",
+    "\n",
+    "You can also specify arbitrary hosts in order to proxy traffic from another machine on the network `<notebook-base>/proxy/<host>:<port>`.\n",
+    "\n",
+    "For security reasons the host must match an entry in the `host_allowlist` in your configuration.\n",
+    "\n",
+    "[more](https://jupyter-server-proxy.readthedocs.io/en/latest/arbitrary-ports-hosts.html)\n",
+    "\n",
+    "---------------------------------------------"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "potential-store",
+   "metadata": {},
+   "source": [
+    "#### Exercise 1:\n",
+    "1. Start a web-server\n",
+    "**ATTENTION:** the code below fails from within a Jupyter notebook, because Jupyter is already running a tornado event loop  \n",
+    "**Solution:**\n",
+    "1) Create a Python file `hello-webserver.py`"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "7815ccff-fb70-4c44-9c34-2b43e7fa36e4",
+   "metadata": {},
+   "source": [
+    "```python\n",
+    "### WILL FAIL FROM WITHIN A JUPYTER NOTEBOOK ####\n",
+    "import tornado.ioloop\n",
+    "import tornado.web\n",
+    "\n",
+    "class MainHandler(tornado.web.RequestHandler):\n",
+    "    def get(self):\n",
+    "        self.write(\"Hello, world\")\n",
+    "\n",
+    "def make_app():\n",
+    "    return tornado.web.Application([\n",
+    "        (r\"/\", MainHandler),\n",
+    "    ])\n",
+    "\n",
+    "if __name__ == \"__main__\":\n",
+    "    app = make_app()\n",
+    "    app.listen(12345)\n",
+    "    tornado.ioloop.IOLoop.current().start()\n",
+    "```"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "313ec32a-1e6a-4f32-9a3c-d336fd65afc7",
+   "metadata": {},
+   "source": [
+    "2) and run it in the terminal\n",
+    "\n",
+    "```sh\n",
+    "python hello-webserver.py\n",
+    "```"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "dynamic-experience",
+   "metadata": {},
+   "source": [
+    "#### Exercise 2:\n",
+    "1. Connect to the running web-server from within your browser  \n",
+    "   - add `/proxy/<port>` to the `<notebook-base>`\n",
+    "       - What is my `<notebook-base`?\n",
+    "           - Go to the Jupyter-JSC landing page (eg. click on `Control Panel` in system tray)\n",
+    "           - right-click on the `open` button and copy the link-url\n",
+    "   - e.g. https://jupyter-jsc.fz-juelich.de/user/j.goebbert@fz-juelich.de/jusuf_login/proxy/8888"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "computational-prime",
+   "metadata": {},
+   "source": [
+    "**Imagine what that allows you to do without the hassle of ssh-tunnels!**"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "peripheral-leave",
+   "metadata": {},
+   "source": [
+    "#### Exercise 3:\n",
+    "1. Check how `jupyter-xprahtml5-proxy` is using the [jupyter-server-proxy](https://github.com/jupyterhub/jupyter-server-proxy) extension\n",
+    "   - [more](https://github.com/FZJ-JSC/jupyter-xprahtml5-proxy)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "d02626aa-d853-40f5-bd6a-489a5ed5ce75",
+   "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.9.6"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/day2_hpcenv/3_extension_server-proxy/hello-webserver.py b/day2_hpcenv/3_extension_server-proxy/hello-webserver.py
new file mode 100644
index 0000000000000000000000000000000000000000..82283e1032edbbaf99f8aa940a7b4f60930510b9
--- /dev/null
+++ b/day2_hpcenv/3_extension_server-proxy/hello-webserver.py
@@ -0,0 +1,16 @@
+import tornado.ioloop
+import tornado.web
+
+class MainHandler(tornado.web.RequestHandler):
+    def get(self):
+        self.write("Hello, world")
+
+def make_app():
+    return tornado.web.Application([
+        (r"/", MainHandler),
+    ])
+
+if __name__ == "__main__":
+    app = make_app()
+    app.listen(12345)
+    tornado.ioloop.IOLoop.current().start()
\ No newline at end of file
diff --git a/day2_hpcenv/3_extension_server-proxy/jupyter4hpc_serverproxy.pdf b/day2_hpcenv/3_extension_server-proxy/jupyter4hpc_serverproxy.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..c1b2a3427d1d8ab0d002a75b48754145236b3af5
Binary files /dev/null and b/day2_hpcenv/3_extension_server-proxy/jupyter4hpc_serverproxy.pdf differ
diff --git a/day2_hpcenv/4_parallel-programming/1_numba/1_numba_cuda.ipynb b/day2_hpcenv/4_parallel-programming/1_numba/1_numba_cuda.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..eb7f77a6bbdc24776b820badf410d2fc6abde0a9
--- /dev/null
+++ b/day2_hpcenv/4_parallel-programming/1_numba/1_numba_cuda.ipynb
@@ -0,0 +1,1271 @@
+{
+ "cells": [
+  {
+   "attachments": {
+    "75fbcf54-0e30-4011-a97f-1124259fa39e.png": {
+     "image/png": "iVBORw0KGgoAAAANSUhEUgAAAvQAAADSCAYAAAAltlQUAAAgAElEQVR4Xu2dCZwV1ZX/D9AsTTdNdyN0sy9ugAqiaNwi4CjGJUFMopOMGTGLTkajOElmMplJxGQyJvknI5plsjgRszmaGHDBqGgAM2JcUMQouKHI0kBD0w0NNDTL//wKn7ZN93u13Vu3Xv3O5/M+TeKtqnu/99Z7vzp17jldDqgJjQRIgARIgARIgARIgARIIJUEulDQp3Le2GkSIAESIAESIAESIAES8AhQ0HMhkAAJkAAJkAAJkAAJkECKCVDQp3jy2HUSIAESIAESIAESIAESoKDnGiABEiABEiABEiABEiCBFBOgoE/x5LHrJEACJEACJEACJEACJEBBzzVAAiRAAiRAAiRAAiRAAikmQEGf4slj10mABEiABEiABEiABEiAgp5rgARIgARIgARIgARIgARSTICCPsWTx66TAAmQAAmQAAmQAAmQAAU91wAJkAAJkAAJkAAJkAAJpJgABX2KJ49dJwESIAESIAESIAESIAEKeq4BEiABEiABEiABEiABEkgxAQr6FE8eu04CJEACJEACJEACJEACFPRcAyRAAiRAAiRAAiRAAiSQYgIU9CmePHadBEiABEiABEiABEiABCjoLayBxRt3y7Kte+St5r3e38Y9+72/ndnxVT3E+1T3kEk1Pb1/00iABEiABEiABEiABEigIwIU9DGvC4h1CPhFG1u8Tz7h7vfSI8pK5KKhveW6MX0E/6aRAAmQAAmQAAmQAAmQQI4ABX0Ma+GtHXvl3jW7ZN6anZ6IN2WV3bvKzDEVct3oPlLZo6upy/C8JEACJEACJEACJEACKSJAQR9ysnIifs4bzbF44YN0A176uZP7MxQnCDS2JQESIAESIAESIIEiJUBBH3Bi71i1w/PE45OkwVu/cGoNRX2Sk8BrkwAJkAAJkAAJkIADBCjofUwCvPE3vtDkifjG1v0+jrDThKLeDmdehQRIgARIgARIgARcJkBBn2d2EBc/e+U2o3HxURcHRX1UgjyeBEiABEiABEiABNJNgIK+g/lDWM2sFxoFnvm47fJRZd7G1lwqSmTFged/1vJGWb1jX6jLIab++QsGcqNsKHo8iARIgARIgARIgATSTYCC/p35g7C+d+0uY0K+b/cuMntitcw4vLzDFYPrX7RokyzetDvU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"
+    }
+   },
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "![image.png](attachment:75fbcf54-0e30-4011-a97f-1124259fa39e.png)\n",
+    "\n",
+    "Numba is an **open source JIT compiler** that translates a subset of Python and NumPy code into fast machine code.  \n",
+    "Numba also works great with Jupyter notebooks **for interactive computing**, and with distributed execution frameworks, like Dask and Spark.  \n",
+    "https://numba.pydata.org\n",
+    "\n",
+    "- [x] **Accelerate Python Functions**\n",
+    "  - Numba translates Python functions to optimized machine code at runtime using the industry-standard LLVM compiler library.\n",
+    "- [x] **Built for Scientific Computing**\n",
+    "  - Numba is designed to be used with NumPy arrays and functions.\n",
+    "  - Numba generates specialized code for different array data types and layouts to optimize performance.\n",
+    "  - Special decorators can create universal functions that broadcast over NumPy arrays just like NumPy functions do.\n",
+    "- [x] **Parallelize Your Algorithms**\n",
+    "  - Numba offers a range of options for parallelizing your code for CPUs and GPUs, often with only minor code changes.\n",
+    "  \n",
+    "--------------------------------------------"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "id": "whscBGwEDcEZ"
+   },
+   "source": [
+    "example from: https://colab.research.google.com/github/cbernet/maldives/blob/master/numba/numba_cuda.ipynb  \n",
+    "blog on: https://thedatafrog.com/en/articles/boost-python-gpu/"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "id": "03jodrvKLJAP"
+   },
+   "source": [
+    "## A gentle introduction to ufuncs\n",
+    "\n",
+    "**Numpy universal functions** or `ufuncs` are functions that operate on a numpy array in an element-by-element fashion.  \n",
+    "For example, when we take the square of a numpy array, a `ufunc` computes the square of each element before returning the resulting array:  "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/",
+     "height": 34
+    },
+    "id": "hw8e1l8iLpH1",
+    "outputId": "c6b6de20-2d4c-4458-c367-cec379065d29"
+   },
+   "outputs": [],
+   "source": [
+    "import numpy as np\n",
+    "x = np.arange(10)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/",
+     "height": 34
+    },
+    "id": "hw8e1l8iLpH1",
+    "outputId": "c6b6de20-2d4c-4458-c367-cec379065d29"
+   },
+   "outputs": [],
+   "source": [
+    "x**2"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "id": "Y2hF7-vzLys6"
+   },
+   "source": [
+    "Most **math functions** (if not all) are available as `ufuncs` in numpy.  \n",
+    "For example, to exponentiate all elements in a numpy array: "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/",
+     "height": 68
+    },
+    "id": "1n2hkLgbLx86",
+    "outputId": "07e7b9c6-c222-4733-85da-445ed8396feb"
+   },
+   "outputs": [],
+   "source": [
+    "np.exp(x)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "id": "zwkXetz9MInV"
+   },
+   "source": [
+    "Most `ufuncs` are **implemented in compiled C code**, so they are already quite fast, and much faster than plain python.  \n",
+    "For example, let's consider a large array, and let's compute the logarithm of each element, **both in plain python and in numpy**: "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/",
+     "height": 51
+    },
+    "id": "v_EU7lwrNBUP",
+    "outputId": "1bed24c6-1679-4368-a632-65f6e5b041f1"
+   },
+   "outputs": [],
+   "source": [
+    "import math\n",
+    "x = np.arange(int(1e6))\n",
+    "%timeit np.sqrt(x)\n",
+    "%timeit [math.sqrt(xx) for xx in x]"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "id": "2xwQGTwVNXEr"
+   },
+   "source": [
+    "We see that the numpy `ufunc` is more than **100 times faster**.  \n",
+    "Still, in the `ufunc`, the calculation is **not parallelized**: the square root is computed sequentially on the CPU for each element in the array. \n",
+    "\n",
+    "The **GPU**, contrary to the CPU, is able to perform a large number of **operations simultaneously**.    \n",
+    "\n",
+    "**In the following,**  \n",
+    "we will see how to create and compile `ufuncs` for the GPU to perform the calculation on many elements at the same time. "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "id": "Tk2lkx_LEJhN"
+   },
+   "source": [
+    "## A very simple example : parallel square root calculation on the GPU \n",
+    "\n",
+    "Our first `ufunc` **for the GPU** will again compute the square root for a large number of points. \n",
+    "\n",
+    "We start by building a **sample of points ranging from 0 to 10 millions**. GPUs are more efficient with numbers that are encoded on a small number of bits. And often, a very high precision is not needed. So we create a sample of `float32` numbers (the default being `float64`): "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "id": "8CZsUw4REvNW"
+   },
+   "outputs": [],
+   "source": [
+    "import numpy as np\n",
+    "npoints = int(1e7)\n",
+    "a = np.arange(npoints, dtype=np.float32)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "id": "v_rQxpVQP6Qo"
+   },
+   "source": [
+    "**With numba**, we can create `ufuncs` **compiled for the CPU** using the vectorize decorator.  \n",
+    "Let's start by doing this: "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/",
+     "height": 51
+    },
+    "id": "xT64SF4DQR1V",
+    "outputId": "2e1a47c0-e218-42e5-cb5c-f52baf9c125c"
+   },
+   "outputs": [],
+   "source": [
+    "import math\n",
+    "from numba import vectorize \n",
+    "\n",
+    "@vectorize\n",
+    "def cpu_sqrt(x):\n",
+    "  return math.sqrt(x)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/",
+     "height": 51
+    },
+    "id": "xT64SF4DQR1V",
+    "outputId": "2e1a47c0-e218-42e5-cb5c-f52baf9c125c"
+   },
+   "outputs": [],
+   "source": [
+    "cpu_sqrt(x)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "id": "nhGMg8bSEwLw"
+   },
+   "source": [
+    "Creating a `ufunc` **for the GPU** is almost as straightforward:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "id": "zuaHYsSTnZml"
+   },
+   "outputs": [],
+   "source": [
+    "import math\n",
+    "from numba import vectorize\n",
+    "\n",
+    "@vectorize(['float32(float32)'], target='cuda')\n",
+    "def gpu_sqrt(x):\n",
+    "    return math.sqrt(x)\n",
+    "   "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/",
+     "height": 51
+    },
+    "id": "_pnAX86QoQGq",
+    "outputId": "e4d5e754-2b8a-4da4-b826-6ea7fb31f626"
+   },
+   "outputs": [],
+   "source": [
+    "gpu_sqrt(a)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "id": "1IygNUitPxNi"
+   },
+   "source": [
+    "It is important to note that, contrary to the CPU case, **the input and return types** of the function have to be specified, when compiling for the GPU.  \n",
+    "In the string: \n",
+    "\n",
+    "```\n",
+    "'float32(float32)'\n",
+    "```\n",
+    "\n",
+    "The first `float32` corresponds to the return type, and the second one to the input type.  \n",
+    "You can think of it as: the returned value is a function of the input value.  \n",
+    "**Also, please note** that these types need to be adapted to your data.  \n",
+    "In the case above, we have created an array of `float32` values, so we are fine. \n",
+    "\n",
+    "**Exercise:** Edit the type definition in the vectorize decorator to read `float64`, and see what happens when you call the function. Then change it back to `float32`."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "id": "npFHbvbNGZ0k"
+   },
+   "source": [
+    "Now let's see how much we gained. For this, we use the timeit magic command. "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/",
+     "height": 34
+    },
+    "id": "DNvfK-TeGBI3",
+    "outputId": "861fd310-4780-4571-ad46-8456a11ed235"
+   },
+   "outputs": [],
+   "source": [
+    "%timeit gpu_sqrt(a)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "id": "TRQYI0JjGrNB"
+   },
+   "source": [
+    "The GPU managed to compute the sqrt for 10 million points in 14 ms.  \n",
+    "Now let's see what we get with numpy, which is compiled for the CPU, and with our CPU `ufunc`: "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/",
+     "height": 34
+    },
+    "id": "NPsSrGcyF5-a",
+    "outputId": "e9c05364-61b1-4911-a1b8-b21a88adda09"
+   },
+   "outputs": [],
+   "source": [
+    "%timeit np.sqrt(a)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/",
+     "height": 51
+    },
+    "id": "r5cgsw2_Q4ZL",
+    "outputId": "ccee7b57-23be-4de8-f9eb-1d24e7d9ce4c"
+   },
+   "outputs": [],
+   "source": [
+    "%timeit cpu_sqrt(a)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "id": "eO1gsEtnF360"
+   },
+   "source": [
+    "**Wait! We do not gain anything and the CPU version is actually twice faster!** \n",
+    "\n",
+    "There is a simple reason for this. When running on the GPU, the following happens under the hood: \n",
+    "\n",
+    "* the input data (the array `a`) is transferred to the GPU memory;\n",
+    "* the calculation of the square root is done in parallel on the GPU for all elements of `a`;\n",
+    "* the resulting array is sent back to the host system. \n",
+    "\n",
+    "If the calculation is too simple, there is no use shipping our data to the GPU for fast parallel processing, if we are to wait so long for the data transfers to complete. In other words, most of the time is spent in the data transfers, and the GPU is basically useless.\n",
+    "\n",
+    "Let's see what happens with a more involved calculation. "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "id": "lrze4fYGM2zu"
+   },
+   "source": [
+    "## From cartesian to polar coordinates on the GPU\n",
+    "\n",
+    "Let's build an array of 1000 points in 2D, described by the cartesian coordinates x and y.  \n",
+    "We choose to draw the points according to a 2D Gaussian distribution, introducing some correlation between the x and y components: "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "id": "KFMuCJTzNYcj"
+   },
+   "outputs": [],
+   "source": [
+    "points = np.random.multivariate_normal([0,0], [[1.,0.9], [0.9,1.]], 1000).astype(np.float32)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/",
+     "height": 286
+    },
+    "id": "jvAFfCXbvyI3",
+    "outputId": "dae8cc84-863f-40cd-b6ca-39b01b5bcdd4"
+   },
+   "outputs": [],
+   "source": [
+    "%matplotlib inline\n",
+    "import matplotlib.pyplot as plt\n",
+    "plt.scatter(points[:,0], points[:,1])"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "id": "v7zHafAWNTsn"
+   },
+   "source": [
+    "It's often useful to convert cartesian coordinates into the polar coordinates `R` and `theta`,  \n",
+    "where r is the distance of the point to origin, and where theta is the angle between the x axis and the direction of the point. \n",
+    "\n",
+    "![](https://raw.githubusercontent.com/cbernet/maldives/master/numba/cart_polar.png)\n",
+    "\n",
+    "`R` is easily obtained as the quadratic sum of x and y: \n",
+    "\n",
+    "$$R = \\sqrt{x^2 + y^2}$$\n",
+    "\n",
+    "But to get theta, one has to use the `arctan2` function.  \n",
+    "This function is available in numpy, and we can use it to easily get the results  \n",
+    "(please note that the y coordinate has to be provided as the first argument)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/",
+     "height": 269
+    },
+    "id": "_QuMci1UOFMX",
+    "outputId": "b9985859-d6d6-4a23-d78f-35e4c1fa3b6d"
+   },
+   "outputs": [],
+   "source": [
+    "theta = np.arctan2(points[:,1], points[:,0]) \n",
+    "_ = plt.hist(theta, bins=100)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "id": "GrBoDk1fPWVE"
+   },
+   "source": [
+    "Because of the correlation between x and y, we see two peaks at $\\pi/4$ and $-3\\pi/4$."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "id": "GrBoDk1fPWVE"
+   },
+   "source": [
+    "Now let's try and perform the same calculation on the GPU.  \n",
+    "This time, we have two input values, and we define the function signature accordingly."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "id": "49E87JbarOOn"
+   },
+   "outputs": [],
+   "source": [
+    "import math\n",
+    "@vectorize(['float32(float32, float32)'],target='cuda')\n",
+    "def gpu_arctan2(y, x): \n",
+    "    theta = math.atan2(y,x)\n",
+    "    return theta"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "id": "Ma4OnucmRw4r"
+   },
+   "source": [
+    "As before with `np.arctan2`, we need to slice our `points` array to provide first the array of `y` coordinates, and then the array of `x` coordinates: "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/",
+     "height": 327
+    },
+    "id": "Lw8BMFAr8tS2",
+    "outputId": "963c530b-8c02-46c7-dc8a-20afb7af39b4"
+   },
+   "outputs": [],
+   "source": [
+    "theta = gpu_arctan2(points[:,1], points[:,0])"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "id": "AR_hD0ndRNo3"
+   },
+   "source": [
+    "**Hmm this doesn't work.**\n",
+    "As the exception says, it is because `points[:,1]` contain values that are not contiguous in memory, and same for `points[:,2]`.  \n",
+    "Memory representation of `points` = `xyxyxyxyxyxyxyxyxy...`\n",
+    "\n",
+    "So we do as instructed and convert these slices into contiguous arrays: "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "id": "ctVE6lhG9bBP"
+   },
+   "outputs": [],
+   "source": [
+    "x = np.ascontiguousarray(points[:,0])\n",
+    "y = np.ascontiguousarray(points[:,1])"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "id": "XXCtUNAg9o74"
+   },
+   "outputs": [],
+   "source": [
+    "theta = gpu_arctan2(y, x)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/",
+     "height": 269
+    },
+    "id": "LQeyFTil9vJB",
+    "outputId": "bb5d9ea8-315e-41ae-d936-ea499a7f9dfc"
+   },
+   "outputs": [],
+   "source": [
+    "_ = plt.hist(theta, bins=200)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "id": "ziyMhQf9SoQV"
+   },
+   "source": [
+    "And now it works! \n",
+    "\n",
+    "**As a general rule, one should remember that  \n",
+    "CUDA operates on data buffers that are contiguous in memory, like a C array, or a numpy array before any slicing.**\n",
+    "\n",
+    "Now let's be a bit more ambitious, and compute theta for 10 million points: "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "id": "mb6O__sjr1tt"
+   },
+   "outputs": [],
+   "source": [
+    "points = np.random.multivariate_normal([0,0], [[1.,0.9], [0.9,1.]], int(1e7)).astype(np.float32)\n",
+    "x = np.ascontiguousarray(points[:,0])\n",
+    "y = np.ascontiguousarray(points[:,1])"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/",
+     "height": 269
+    },
+    "id": "fdvX8t7bA4An",
+    "outputId": "361a018c-b51c-4370-8489-835598f922ab"
+   },
+   "outputs": [],
+   "source": [
+    "_ = plt.hist(gpu_arctan2(y, x), bins=200)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "id": "d_4uMeLBS1Kg"
+   },
+   "source": [
+    "And finally, let's quantify how much time we gain by running on the GPU: "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/",
+     "height": 34
+    },
+    "id": "dnQ7DGgvsGtf",
+    "outputId": "5c7376cf-0743-4cc4-fb3b-a53c9c512993"
+   },
+   "outputs": [],
+   "source": [
+    "%timeit gpu_arctan2(y, x) # compiled for the GPU "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/",
+     "height": 34
+    },
+    "id": "33XHREIXAWNg",
+    "outputId": "15632d00-280e-4c17-cfdd-fdab985c2733"
+   },
+   "outputs": [],
+   "source": [
+    "%timeit np.arctan2(y, x) # compiled for the CPU"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/",
+     "height": 34
+    },
+    "id": "s8fz5tC8HGgY",
+    "outputId": "9a7fa172-163c-4a01-b3b1-43dd4240dd8d"
+   },
+   "outputs": [],
+   "source": [
+    "%timeit [math.atan2(point[1], point[0]) for point in points] # plain python"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "id": "snh32iOSTIQL"
+   },
+   "source": [
+    "**Nice!** this time we gain more than a factor 10 on the GPU with respect to the numpy version, which is compiled for the CPU.  \n",
+    "And this comes on top of a factor 300 gain with respect to plain python."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "id": "m86np5r3VMnS"
+   },
+   "source": [
+    "**Remember: To use the GPU efficiently, you need to give it enough data to process, and complicated tasks.**"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "id": "0RFdj6vnSgRz"
+   },
+   "source": [
+    "## Generalized ufuncs on the GPU\n",
+    "\n",
+    "In regular `ufuncs`, the calculation is done on each element of the input array, and returns a scalar. \n",
+    "\n",
+    "In generalized ufuncs (`gufuncs`), however, the calculation can **deal with a sub-array of the input array**,   \n",
+    "and return an array of different dimensions.\n",
+    "\n",
+    "Let's have a look at a few examples, things are going to become much clearer. \n",
+    "\n",
+    "### Generalized ufuncs : from cartesian to polar coordinates\n",
+    "\n",
+    "Remember how we computed the polar angle for our 2D points above?  \n",
+    "It would have been nice to get both `rho` and `theta` from this calculation, to get a real conversion from cartesian to polar coordinates.  \n",
+    "This kind of thing is not possible with regular `ufuncs` but with `gufuncs`, it's easy:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "id": "34HCaUDhAiAq"
+   },
+   "outputs": [],
+   "source": [
+    "from numba import guvectorize\n",
+    "\n",
+    "@guvectorize(['(float32[:], float32[:])'],\n",
+    "             '(i)->(i)',                \n",
+    "             target='cuda')\n",
+    "def gpu_polar(vec, out):\n",
+    "    x = vec[0]\n",
+    "    y = vec[1]\n",
+    "    out[0] = math.sqrt(x**2 + y**2)\n",
+    "    out[1] = math.atan2(y,x)\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "id": "24pYBeIpXmrc"
+   },
+   "source": [
+    "There are two imporant differences between `guvectorize` and `vectorize`. \n",
+    "\n",
+    "For `guvectorize`: \n",
+    "\n",
+    "* **one needs to provide the signature of the array operation**.  \n",
+    "The signature of the array operation should **not to confused with the signature of the compiled function** that is provided as a first argument.  \n",
+    "In the example above, `(i)->(i)` means that a 1D array is taken in input, and that a 1D array with the same size is provided in the output. The 1D array corresponds to the last dimension or innermost dimension of the input array. For example, our points array is of shape `(10000000,2)` so the last dimension is of size 2.\n",
+    "* **the result is taken in input and modified in place**. In the code above, the resulting polar coordinates R and theta are stored in the `out` array while `vec`, the input array, contains the cartesian coordinates `x` and `y`."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "id": "7B9nynrzarZW"
+   },
+   "source": [
+    "Let's do the conversion between cartesian and polar coordinates: \n",
+    "\n",
+    "\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "id": "rmKqnMVBUynE"
+   },
+   "outputs": [],
+   "source": [
+    "polar_coords = gpu_polar(points)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/",
+     "height": 283
+    },
+    "id": "y0GtKNeNWhnp",
+    "outputId": "30f65394-a144-4c1c-853d-2004b212c8f0"
+   },
+   "outputs": [],
+   "source": [
+    "_ = plt.hist(polar_coords[:,0], bins=200)\n",
+    "_ = plt.xlabel('R')"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/",
+     "height": 283
+    },
+    "id": "N_lnYsK-XBsx",
+    "outputId": "f0ba4ea0-2a3a-4e50-a9e0-f44a3d6311df"
+   },
+   "outputs": [],
+   "source": [
+    "_ = plt.hist(polar_coords[:,1], bins=200)\n",
+    "_ = plt.xlabel('theta')"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "id": "kXSIQjDbccSV"
+   },
+   "source": [
+    "### Generalized ufunc: Average \n",
+    "\n",
+    "To understand better how gufuncs work, let's make one that computes the average of the values on each line of a 2D array: "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "id": "_ZRhx6PrU2Es"
+   },
+   "outputs": [],
+   "source": [
+    "@guvectorize(['(float32[:], float32[:])'],\n",
+    "             '(n)->()',                \n",
+    "             target='cuda')\n",
+    "def gpu_average(array, out):\n",
+    "    acc = 0\n",
+    "    for val in array: \n",
+    "        acc += val\n",
+    "    out[0] = acc/len(array)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "id": "FCd7mfkifgbK"
+   },
+   "source": [
+    "To test our gufunc, we create a 2D array: "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/",
+     "height": 357
+    },
+    "id": "Ee1MM1B2fbHV",
+    "outputId": "403e74eb-f555-41a2-c242-d49943e521be"
+   },
+   "outputs": [],
+   "source": [
+    "a = np.arange(100).reshape(20, 5).astype(np.float32)\n",
+    "a"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/",
+     "height": 51
+    },
+    "id": "p8TTRs5Pfpy0",
+    "outputId": "42dc1912-6c87-47af-fe41-e7043eadf508"
+   },
+   "outputs": [],
+   "source": [
+    "gpu_average(a)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "id": "E0_4_Io3QnNp"
+   },
+   "source": [
+    "## Device functions \n",
+    "\n",
+    "So far, we have run a single function, either a ufunc or a gufunc, on the GPU, but we are not forced to put all of our code in a single function.\n",
+    "\n",
+    "Indeed, it is also  possible to compile helper functions for the GPU.  \n",
+    "These functions, called **device functions**, can then be used on the GPU to make the code cleaner and more modular. \n",
+    "\n",
+    "As an example, let's take again the gufunc defined just above, that computes the average of the values of each line of a 2D array. \n",
+    "\n",
+    "We define a device function to add using the `numba.cuda.jit` decorator, to sum up the elements of a 1D array. Then, we modify the gpu_average gufunc to make use of the `add` device function. And finally, we create another gufunc to sum up the elements of on each line of a 2D array: "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "id": "i9XdnHRBfunN"
+   },
+   "outputs": [],
+   "source": [
+    "from numba import cuda\n",
+    "\n",
+    "@cuda.jit(device=True)\n",
+    "def add(array): \n",
+    "  acc = 0\n",
+    "  for val in array: \n",
+    "    acc += val\n",
+    "  return acc\n",
+    "\n",
+    "@guvectorize(['(float32[:], float32[:])'],\n",
+    "             '(n)->()',                \n",
+    "             target='cuda')\n",
+    "def gpu_average_2(array, out):\n",
+    "    out[0] = add(array)/len(array)\n",
+    "\n",
+    "@guvectorize(['(float32[:], float32[:])'],\n",
+    "             '(n)->()',                \n",
+    "             target='cuda')\n",
+    "def gpu_sum(array, out):\n",
+    "    out[0] = add(array)\n",
+    "\n",
+    "    "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/",
+     "height": 51
+    },
+    "id": "cNzS_PeoSVBZ",
+    "outputId": "ea7701cc-0d40-4fe7-9fec-9dcf5c6083f5"
+   },
+   "outputs": [],
+   "source": [
+    "gpu_average_2(a)"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/",
+     "height": 68
+    },
+    "id": "eTrkfYBPSjXT",
+    "outputId": "09832783-426e-4e10-ca74-9dbbc57b409c"
+   },
+   "outputs": [],
+   "source": [
+    "gpu_sum(a)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "id": "NuGYnrVkTbx4"
+   },
+   "source": [
+    "The device function allows us to avoid code duplication. \n",
+    "\n",
+    "Obviously, it is a bit artifial to use a device function in such an easy case. But when implementing complex algorithms, these functions can prove very useful. Indeed, just like on the CPU, the general principles of programming apply: functions should be simple and to the point, and code duplication should be avoided. "
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "id": "5U0yngpWU1Sg"
+   },
+   "source": [
+    "## Memory management with device arrays\n",
+    "\n",
+    "As we have seen in the first `ufunc` example given in this article (parallel square root calculation), the GPU does not always provide a gain in performance. \n",
+    "\n",
+    "Indeed, before using the raw computing power of the GPU, we need to ship the data to the device. And afterwards, we need to get the results back. \n",
+    "\n",
+    "A good way to improve performance is to **minimize data transfers between the host system and the GPU**, and this can be done with device arrays. \n",
+    "\n",
+    "To illustrate this, we will use an example provided by nvidia in its DLI course. Let's assume we want to implement a neural network for image processing from scratch. A hidden layer in the network might have to do the following: \n",
+    "\n",
+    "* normalize greyscale values in the image\n",
+    "* weigh them\n",
+    "* apply an activation function \n",
+    "\n",
+    "Each of these three tasks can be done in parallel on the GPU. \n",
+    "\n",
+    "But first, let's see how to do that on the CPU with plain numpy. \n",
+    "For simplicity, we will generate the greyscale values and the weights randomly. "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "id": "iFl7DB9wTZu5"
+   },
+   "outputs": [],
+   "source": [
+    "n = 1000000\n",
+    "\n",
+    "# random values between 0. and 255.\n",
+    "greyscales = np.floor(np.random.uniform(0, 256, n).astype(np.float32))\n",
+    "# random weights following a Gaussian distribution\n",
+    "# centred on 0.5 and with width 0.1\n",
+    "weights = np.random.normal(.5, .1, n).astype(np.float32)\n",
+    "\n",
+    "def normalize(grayscales):\n",
+    "    return grayscales / 255\n",
+    "\n",
+    "def weigh(values, weights):\n",
+    "    return values * weights\n",
+    "        \n",
+    "def activate(values):\n",
+    "    return ( np.exp(values) - np.exp(-values) ) / \\\n",
+    "            ( np.exp(values) + np.exp(-values) )\n"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/",
+     "height": 34
+    },
+    "id": "EirTdzaSY7BH",
+    "outputId": "7c442d8d-1193-4a51-a0c9-31a746a07c7b"
+   },
+   "outputs": [],
+   "source": [
+    "%%timeit\n",
+    "normalized = np.float32(normalize(greyscales))\n",
+    "weighted = weigh(normalized, weights)\n",
+    "activated = activate(weighted)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "id": "K6b4CSoHZ_dO"
+   },
+   "source": [
+    "Now, we implement a parallel version of this algorithm for the GPU, as we have seen above. "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "id": "5d6Y2mgBZqyl"
+   },
+   "outputs": [],
+   "source": [
+    "@vectorize(['float32(float32)'],target='cuda')\n",
+    "def gpu_normalize(x):\n",
+    "  return x / 255\n",
+    "\n",
+    "@vectorize(['float32(float32, float32)'],target='cuda')\n",
+    "def gpu_weigh(x, w):\n",
+    "  return x * w\n",
+    "\n",
+    "@vectorize(['float32(float32)'],target='cuda')\n",
+    "def gpu_activate(x): \n",
+    "  return ( math.exp(x) - math.exp(-x) ) / ( math.exp(x) + math.exp(-x) )\n",
+    "\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "id": "bq0Hui5Nar4M"
+   },
+   "source": [
+    "Please note that the code in these `ufuncs` operates on scalar values, so we replaced the numpy `ufuncs` like np.exp by their math equivalent (the division by 255 and the multiplication between the values and the weights were also numpy ufuncs, though hidden a bit). \n",
+    "\n",
+    "And we check the performance: "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/",
+     "height": 51
+    },
+    "id": "y1ge-bW_ajh5",
+    "outputId": "557d2c1d-3774-4efd-d6e8-327f7896159d"
+   },
+   "outputs": [],
+   "source": [
+    "%%timeit\n",
+    "normalized = gpu_normalize2(greyscales)\n",
+    "weighted = gpu_weigh(normalized, weights)\n",
+    "activated = gpu_activate(weighted)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "id": "RoOELkQgbUnq"
+   },
+   "source": [
+    "That's already quite nice, we gained more than a factor of two! \n",
+    "\n",
+    "But we realize that we spend time transferring data back and forth between the host and the GPU for nothing: \n",
+    "\n",
+    "1. transfer `greyscales` to the GPU\n",
+    "1. transfer `normalized` to the host, and then back to the GPU, together with `weights`\n",
+    "1. transfer `weighted` to the host, and then back to the GPU\n",
+    "1. transfer `activated` to the host\n",
+    "\n",
+    "Actually, we only need to: \n",
+    "\n",
+    "1. transfer `greyscales` and `weights` to the GPU\n",
+    "1. retrieve `activated`\n",
+    "\n",
+    "So let's do that: "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/",
+     "height": 34
+    },
+    "id": "GCZHkmXhbKb8",
+    "outputId": "6db9ee9c-69cf-42dc-d24a-c1c74886f773"
+   },
+   "outputs": [],
+   "source": [
+    "%%timeit\n",
+    "\n",
+    "# create intermediate arrays on the GPU\n",
+    "normalized_gpu = cuda.device_array(shape=(n,), \n",
+    "                               dtype=np.float32)\n",
+    "weighted_gpu = cuda.device_array(shape=(n,), \n",
+    "                             dtype=np.float32)\n",
+    "\n",
+    "# note that output device arrays are provided as arguments \n",
+    "gpu_normalize(greyscales, out=normalized_gpu)\n",
+    "gpu_weigh(normalized_gpu, weights, out=weighted_gpu)\n",
+    "activated = gpu_activate(weighted_gpu)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "id": "ZdPH1RdJeV41"
+   },
+   "source": [
+    "We gain a factor of two by eliminating unnecessary data transfers! \n",
+    "\n",
+    "Another important thing to know is that we can also take full control on the transfers to and from the GPU like this:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "id": "U1n43lAIdWGl"
+   },
+   "outputs": [],
+   "source": [
+    "# transfer inputs to the gpu\n",
+    "greyscales_gpu = cuda.to_device(greyscales)\n",
+    "weights_gpu = cuda.to_device(weights)\n",
+    "\n",
+    "# create intermediate arrays and output array on the GPU\n",
+    "normalized_gpu = cuda.device_array(shape=(n,), \n",
+    "                               dtype=np.float32)\n",
+    "weighted_gpu = cuda.device_array(shape=(n,), \n",
+    "                             dtype=np.float32)\n",
+    "activated_gpu = cuda.device_array(shape=(n,), \n",
+    "                             dtype=np.float32)\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "id": "FCTA-6f8fNu_"
+   },
+   "source": [
+    "Now that everything we need is on the GPU, we do the calculation: "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/",
+     "height": 34
+    },
+    "id": "4D3tldT0fLh_",
+    "outputId": "d2d93787-c9db-4171-ec92-3cac01fe816d"
+   },
+   "outputs": [],
+   "source": [
+    "%%timeit\n",
+    "gpu_normalize(greyscales_gpu, out=normalized_gpu)\n",
+    "gpu_weigh(normalized_gpu, weights_gpu, out=weighted_gpu)\n",
+    "gpu_activate(weighted_gpu, out=activated_gpu)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {
+    "id": "kywGvXpIfcGe"
+   },
+   "source": [
+    "You might be thinking that this factor 5 gain is artificial, because we did not include the necessary transfer times for the input and output data. That's right! Still, this illustrates how you can take full control of your data transfers, which might prove useful on more complex processing workflows. \n",
+    "\n",
+    "For instance, if we wanted to re-use any of the device arrays defined above, we could do it now, as they are still residing on the GPU as I'm writing this!\n",
+    "\n",
+    "Finally, here is how to retrieve the results: "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {
+    "colab": {
+     "base_uri": "https://localhost:8080/",
+     "height": 51
+    },
+    "id": "Jzs4oDbQfY8p",
+    "outputId": "a30cceb4-eed2-4fae-ff34-1cab97186275"
+   },
+   "outputs": [],
+   "source": [
+    "activated = activated_gpu.copy_to_host()\n",
+    "activated"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "metadata": {},
+   "outputs": [],
+   "source": []
+  }
+ ],
+ "metadata": {
+  "accelerator": "GPU",
+  "colab": {
+   "collapsed_sections": [],
+   "name": "Kopie von numba_cuda.ipynb",
+   "provenance": []
+  },
+  "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.9.6"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/day2_hpcenv/4_parallel-programming/2_dask/1-Introduction-to-Dask.ipynb b/day2_hpcenv/4_parallel-programming/2_dask/1-Introduction-to-Dask.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..d603fb541e7beafc3b1656495885282eb4610766
--- /dev/null
+++ b/day2_hpcenv/4_parallel-programming/2_dask/1-Introduction-to-Dask.ipynb
@@ -0,0 +1,52 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "id": "linear-bangkok",
+   "metadata": {},
+   "source": [
+    "### HIGH THROUGHPUT COMPUTING WITH DASK\n",
+    "\n",
+    "**Organisers:** Alan O’Cais, David Swenson  \n",
+    "**Website:** https://www.cecam.org/workshop-details/1022\n",
+    "\n",
+    "**Synopsis:**\n",
+    "High-throughput (task-based) computing is a flexible approach to parallelisation. It involves splitting a problem into loosely-coupled tasks. A scheduler then orchestrates the parallel execution of those tasks, allowing programs to adaptively scale their resource usage. E-CAM has extended the data-analytics framework Dask with a capable and efficient library to handle such workloads. This workshop will be held as a series of virtual seminars/tutorials on tools in the Dask HPC ecosystem.\n",
+    "\n",
+    "**Programme:**\n",
+    "- 21 January 2021, 3pm CET (2pm UTC): Dask - a flexible library for parallel computing in Python\n",
+    "  - YouTube link: https://youtu.be/Tl8rO-baKuY\n",
+    "  - GitHub Repo: https://github.com/jacobtomlinson/dask-video-tutorial-2020\n",
+    "\n",
+    "- 4 February 2021, 3pm CET (2pm UTC): Dask-Jobqueue - a library that integrates Dask with standard HPC queuing systems, such as SLURM or PBS\n",
+    "  - YouTube link: https://youtu.be/iNxhHXzmJ1w\n",
+    "  - GitHub Repo: https://github.com/ExaESM-WP4/workshop-Dask-Jobqueue-cecam-2021-02\n",
+    "\n",
+    "- 11 February 2021, 3pm CET (2pm UTC) : Jobqueue-Features - a library that enables functionality aimed at enhancing scalability\n",
+    "  - YouTube link: https://youtu.be/FpMua8iJeTk\n",
+    "  - GitHub Repo: https://github.com/E-CAM/jobqueue_features_workshop_materials"
+   ]
+  }
+ ],
+ "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.8.5"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/day2_hpcenv/4_parallel-programming/2_dask/2_dask_example.ipynb b/day2_hpcenv/4_parallel-programming/2_dask/2_dask_example.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..23e4668d5cbc9bf941da514fb43c40c7d60baac5
--- /dev/null
+++ b/day2_hpcenv/4_parallel-programming/2_dask/2_dask_example.ipynb
@@ -0,0 +1,892 @@
+{
+ "cells": [
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Dask local cluster example"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## What is Dask? (https://docs.dask.org/en/latest/)\n",
+    "\n",
+    "* combine a blocked algorithm approach\n",
+    "* with dynamic and memory aware task scheduling\n",
+    "* to realise a parallel out-of-core NumPy clone\n",
+    "* optimized for interactive computational workloads\n",
+    "\n",
+    "-----------------------------------"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "# Example problem: Monte-Carlo estimate of $\\pi$\n",
+    "\n",
+    "<img src=\"https://upload.wikimedia.org/wikipedia/commons/8/84/Pi_30K.gif\" width=\"25%\" align=left alt=\"PI monte-carlo estimate\"/>\n",
+    "\n",
+    "## Problem description\n",
+    "\n",
+    "Suppose we want to estimate the number $\\pi$ using a [Monte-Carlo method](https://en.wikipedia.org/wiki/Pi#Monte_Carlo_methods), i.e. obtain a numerical estimate based on a random sampling approach, and that we want at least single precision floating point accuracy.\n",
+    "\n",
+    "We take advantage of the fact that the area of a quarter circle with unit radius is $\\pi/4$ and that hence the probability of a randomly chosen point inside a unit square to lie within that circle is $\\pi/4$ as well.\n",
+    "\n",
+    "So for N randomly chosen pairs $(x, y)$ with $x\\in[0, 1)$ and $y\\in[0, 1)$ we count the number $N_{circ}$ of pairs that also satisfy $(x^2 + y^2) < 1$ and estimage $\\pi \\approx 4 \\cdot N_{circ} / N$."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Monte-Carlo estimate with NumPy on a single CPU\n",
+    "\n",
+    "* NumPy is the fundamental package for scientific computing with Python (https://numpy.org/).\n",
+    "* It contains a powerful n-dimensional array object and useful random number capabilities."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 18,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import numpy"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 19,
+   "metadata": {
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "def calculate_pi_single(size_in_bytes):\n",
+    "    \n",
+    "    \"\"\"Calculate pi using a Monte Carlo method.\"\"\"\n",
+    "    \n",
+    "    rand_array_shape = (int(size_in_bytes / 8 / 2), 2)\n",
+    "    \n",
+    "    # 2D random array with positions (x, y)\n",
+    "    xy = numpy.random.uniform(low=0.0, high=1.0, size=rand_array_shape)\n",
+    "    \n",
+    "    # check if position (x, y) is in unit circle\n",
+    "    xy_inside_circle = (xy ** 2).sum(axis=1) < 1\n",
+    "\n",
+    "    # pi is the fraction of points in circle x 4\n",
+    "    pi = 4 * xy_inside_circle.sum() / xy_inside_circle.size\n",
+    "\n",
+    "    print(f\"\\nfrom {xy.nbytes / 1e9} GB randomly chosen positions\")\n",
+    "    print(f\"   pi estimate: {pi}\")\n",
+    "    print(f\"   pi error: {abs(pi - numpy.pi)}\\n\")\n",
+    "    \n",
+    "    return pi"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Let's calculate...\n",
+    "\n",
+    "Observe how the error decreases with an increasing number of randomly chosen positions!"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 20,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "\n",
+      "from 0.01 GB randomly chosen positions\n",
+      "   pi estimate: 3.1451904\n",
+      "   pi error: 0.0035977464102070478\n",
+      "\n",
+      "CPU times: user 25 ms, sys: 8.79 ms, total: 33.8 ms\n",
+      "Wall time: 31.3 ms\n",
+      "\n",
+      "from 0.1 GB randomly chosen positions\n",
+      "   pi estimate: 3.14238272\n",
+      "   pi error: 0.0007900664102069577\n",
+      "\n",
+      "CPU times: user 224 ms, sys: 44.5 ms, total: 269 ms\n",
+      "Wall time: 261 ms\n",
+      "\n",
+      "from 1.0 GB randomly chosen positions\n",
+      "   pi estimate: 3.141662784\n",
+      "   pi error: 7.01304102070921e-05\n",
+      "\n",
+      "CPU times: user 1.94 s, sys: 424 ms, total: 2.37 s\n",
+      "Wall time: 2.28 s\n"
+     ]
+    }
+   ],
+   "source": [
+    "%time pi = calculate_pi_single(size_in_bytes=10_000_000) # 10 MB\n",
+    "%time pi = calculate_pi_single(size_in_bytes=100_000_000) # 100 MB\n",
+    "%time pi = calculate_pi_single(size_in_bytes=1_000_000_000) # 1 GB"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Are we already better than single precision floating point resolution?"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 21,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "finfo(resolution=1e-06, min=-3.4028235e+38, max=3.4028235e+38, dtype=float32)"
+      ]
+     },
+     "execution_count": 21,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "numpy.finfo(numpy.float32)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## We won't be able to scale the problem to several Gigabytes or Terabytes!"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Problems\n",
+    "\n",
+    "* slowness of the numpy-only single CPU approach! (we could scale the problem using the [multiprocessing](https://docs.python.org/3.8/library/multiprocessing.html) and/or [threading](https://docs.python.org/3.8/library/threading.html) libraries)\n",
+    "* frontend/login node compute resources are shared and CPU, memory (and IO bandwidth) user demands will collide"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Monte-Carlo estimate with Dask on multiple CPUs\n",
+    "\n",
+    "We define a Dask cluster with 8 CPUs and 24 GB of memory."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 22,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import dask.distributed"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/html": [
+       "<div>\n",
+       "    <div style=\"width: 24px; height: 24px; background-color: #e1e1e1; border: 3px solid #9D9D9D; border-radius: 5px; position: absolute;\"> </div>\n",
+       "    <div style=\"margin-left: 48px;\">\n",
+       "        <h3 style=\"margin-bottom: 0px;\">Client</h3>\n",
+       "        <p style=\"color: #9D9D9D; margin-bottom: 0px;\">Client-7f9fc6c4-5433-11ed-8324-3cecef1f6772</p>\n",
+       "        <table style=\"width: 100%; text-align: left;\">\n",
+       "\n",
+       "        <tr>\n",
+       "        \n",
+       "            <td style=\"text-align: left;\"><strong>Connection method:</strong> Cluster object</td>\n",
+       "            <td style=\"text-align: left;\"><strong>Cluster type:</strong> distributed.LocalCluster</td>\n",
+       "        \n",
+       "        </tr>\n",
+       "\n",
+       "        \n",
+       "            <tr>\n",
+       "                <td style=\"text-align: left;\">\n",
+       "                    <strong>Dashboard: </strong> <a href=\"http://134.94.0.100:8787/status\" target=\"_blank\">http://134.94.0.100:8787/status</a>\n",
+       "                </td>\n",
+       "                <td style=\"text-align: left;\"></td>\n",
+       "            </tr>\n",
+       "        \n",
+       "\n",
+       "        </table>\n",
+       "\n",
+       "        \n",
+       "            <details>\n",
+       "            <summary style=\"margin-bottom: 20px;\"><h3 style=\"display: inline;\">Cluster Info</h3></summary>\n",
+       "            <div class=\"jp-RenderedHTMLCommon jp-RenderedHTML jp-mod-trusted jp-OutputArea-output\">\n",
+       "    <div style=\"width: 24px; height: 24px; background-color: #e1e1e1; border: 3px solid #9D9D9D; border-radius: 5px; position: absolute;\">\n",
+       "    </div>\n",
+       "    <div style=\"margin-left: 48px;\">\n",
+       "        <h3 style=\"margin-bottom: 0px; margin-top: 0px;\">LocalCluster</h3>\n",
+       "        <p style=\"color: #9D9D9D; margin-bottom: 0px;\">7914e7e8</p>\n",
+       "        <table style=\"width: 100%; text-align: left;\">\n",
+       "            <tr>\n",
+       "                <td style=\"text-align: left;\">\n",
+       "                    <strong>Dashboard:</strong> <a href=\"http://134.94.0.100:8787/status\" target=\"_blank\">http://134.94.0.100:8787/status</a>\n",
+       "                </td>\n",
+       "                <td style=\"text-align: left;\">\n",
+       "                    <strong>Workers:</strong> 1\n",
+       "                </td>\n",
+       "            </tr>\n",
+       "            <tr>\n",
+       "                <td style=\"text-align: left;\">\n",
+       "                    <strong>Total threads:</strong> 8\n",
+       "                </td>\n",
+       "                <td style=\"text-align: left;\">\n",
+       "                    <strong>Total memory:</strong> 22.35 GiB\n",
+       "                </td>\n",
+       "            </tr>\n",
+       "            \n",
+       "            <tr>\n",
+       "    <td style=\"text-align: left;\"><strong>Status:</strong> running</td>\n",
+       "    <td style=\"text-align: left;\"><strong>Using processes:</strong> True</td>\n",
+       "</tr>\n",
+       "\n",
+       "            \n",
+       "        </table>\n",
+       "\n",
+       "        <details>\n",
+       "            <summary style=\"margin-bottom: 20px;\">\n",
+       "                <h3 style=\"display: inline;\">Scheduler Info</h3>\n",
+       "            </summary>\n",
+       "\n",
+       "            <div style=\"\">\n",
+       "    <div>\n",
+       "        <div style=\"width: 24px; height: 24px; background-color: #FFF7E5; border: 3px solid #FF6132; border-radius: 5px; position: absolute;\"> </div>\n",
+       "        <div style=\"margin-left: 48px;\">\n",
+       "            <h3 style=\"margin-bottom: 0px;\">Scheduler</h3>\n",
+       "            <p style=\"color: #9D9D9D; margin-bottom: 0px;\">Scheduler-96886d6c-baf6-48eb-95dc-2cca09abbe70</p>\n",
+       "            <table style=\"width: 100%; text-align: left;\">\n",
+       "                <tr>\n",
+       "                    <td style=\"text-align: left;\">\n",
+       "                        <strong>Comm:</strong> tcp://134.94.0.100:42495\n",
+       "                    </td>\n",
+       "                    <td style=\"text-align: left;\">\n",
+       "                        <strong>Workers:</strong> 1\n",
+       "                    </td>\n",
+       "                </tr>\n",
+       "                <tr>\n",
+       "                    <td style=\"text-align: left;\">\n",
+       "                        <strong>Dashboard:</strong> <a href=\"http://134.94.0.100:8787/status\" target=\"_blank\">http://134.94.0.100:8787/status</a>\n",
+       "                    </td>\n",
+       "                    <td style=\"text-align: left;\">\n",
+       "                        <strong>Total threads:</strong> 8\n",
+       "                    </td>\n",
+       "                </tr>\n",
+       "                <tr>\n",
+       "                    <td style=\"text-align: left;\">\n",
+       "                        <strong>Started:</strong> Just now\n",
+       "                    </td>\n",
+       "                    <td style=\"text-align: left;\">\n",
+       "                        <strong>Total memory:</strong> 22.35 GiB\n",
+       "                    </td>\n",
+       "                </tr>\n",
+       "            </table>\n",
+       "        </div>\n",
+       "    </div>\n",
+       "\n",
+       "    <details style=\"margin-left: 48px;\">\n",
+       "        <summary style=\"margin-bottom: 20px;\">\n",
+       "            <h3 style=\"display: inline;\">Workers</h3>\n",
+       "        </summary>\n",
+       "\n",
+       "        \n",
+       "        <div style=\"margin-bottom: 20px;\">\n",
+       "            <div style=\"width: 24px; height: 24px; background-color: #DBF5FF; border: 3px solid #4CC9FF; border-radius: 5px; position: absolute;\"> </div>\n",
+       "            <div style=\"margin-left: 48px;\">\n",
+       "            <details>\n",
+       "                <summary>\n",
+       "                    <h4 style=\"margin-bottom: 0px; display: inline;\">Worker: 0</h4>\n",
+       "                </summary>\n",
+       "                <table style=\"width: 100%; text-align: left;\">\n",
+       "                    <tr>\n",
+       "                        <td style=\"text-align: left;\">\n",
+       "                            <strong>Comm: </strong> tcp://134.94.0.100:40747\n",
+       "                        </td>\n",
+       "                        <td style=\"text-align: left;\">\n",
+       "                            <strong>Total threads: </strong> 8\n",
+       "                        </td>\n",
+       "                    </tr>\n",
+       "                    <tr>\n",
+       "                        <td style=\"text-align: left;\">\n",
+       "                            <strong>Dashboard: </strong> <a href=\"http://134.94.0.100:46353/status\" target=\"_blank\">http://134.94.0.100:46353/status</a>\n",
+       "                        </td>\n",
+       "                        <td style=\"text-align: left;\">\n",
+       "                            <strong>Memory: </strong> 22.35 GiB\n",
+       "                        </td>\n",
+       "                    </tr>\n",
+       "                    <tr>\n",
+       "                        <td style=\"text-align: left;\">\n",
+       "                            <strong>Nanny: </strong> tcp://134.94.0.100:33715\n",
+       "                        </td>\n",
+       "                        <td style=\"text-align: left;\"></td>\n",
+       "                    </tr>\n",
+       "                    <tr>\n",
+       "                        <td colspan=\"2\" style=\"text-align: left;\">\n",
+       "                            <strong>Local directory: </strong> /tmp/dask-worker-space/worker-pxxiovlw\n",
+       "                        </td>\n",
+       "                    </tr>\n",
+       "\n",
+       "                    \n",
+       "\n",
+       "                    \n",
+       "\n",
+       "                </table>\n",
+       "            </details>\n",
+       "            </div>\n",
+       "        </div>\n",
+       "        \n",
+       "\n",
+       "    </details>\n",
+       "</div>\n",
+       "\n",
+       "        </details>\n",
+       "    </div>\n",
+       "</div>\n",
+       "            </details>\n",
+       "        \n",
+       "\n",
+       "    </div>\n",
+       "</div>"
+      ],
+      "text/plain": [
+       "<Client: 'tcp://134.94.0.100:42495' processes=1 threads=8, memory=22.35 GiB>"
+      ]
+     },
+     "execution_count": 2,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "cluster = dask.distributed.LocalCluster(\n",
+    "    n_workers=1, threads_per_worker=8, memory_limit=24e9,\n",
+    "    ip=\"0.0.0.0\"\n",
+    ")\n",
+    "\n",
+    "client = dask.distributed.Client(cluster)\n",
+    "client"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Use dask.array for randomly chosen positions"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 23,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "import numpy, dask.array"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 24,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def calculate_pi_dask(size_in_bytes, number_of_chunks):\n",
+    "    \n",
+    "    \"\"\"Calculate pi using a Monte Carlo method.\"\"\"\n",
+    "    \n",
+    "    array_shape = (int(size_in_bytes / 8 / 2), 2)\n",
+    "    chunk_size = (int(array_shape[0] / number_of_chunks), 2)\n",
+    "    \n",
+    "    # 2D random positions array using dask.array\n",
+    "    xy = dask.array.random.uniform(\n",
+    "        low=0.0, high=1.0, size=array_shape,\n",
+    "        # specify chunk size, i.e. task number\n",
+    "        chunks=chunk_size )\n",
+    "  \n",
+    "    xy_inside_circle = (xy ** 2).sum(axis=1) < 1\n",
+    "\n",
+    "    pi = 4 * xy_inside_circle.sum() / xy_inside_circle.size\n",
+    "    \n",
+    "    # start Dask calculation\n",
+    "    pi = pi.compute()\n",
+    "\n",
+    "    print(f\"\\nfrom {xy.nbytes / 1e9} GB randomly chosen positions\")\n",
+    "    print(f\"   pi estimate: {pi}\")\n",
+    "    print(f\"   pi error: {abs(pi - numpy.pi)}\\n\")\n",
+    "    display(xy)\n",
+    "    \n",
+    "    return pi"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Let's calculate again...\n",
+    "Observe the wall time decreases of the 1 Gigabyte and 10 Gigabyte random sample $\\pi$ estimates!"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 25,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "\n",
+      "from 1.0 GB randomly chosen positions\n",
+      "   pi estimate: 3.141517184\n",
+      "   pi error: 7.546958979309792e-05\n",
+      "\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <td>\n",
+       "            <table>\n",
+       "                <thead>\n",
+       "                    <tr>\n",
+       "                        <td> </td>\n",
+       "                        <th> Array </th>\n",
+       "                        <th> Chunk </th>\n",
+       "                    </tr>\n",
+       "                </thead>\n",
+       "                <tbody>\n",
+       "                    \n",
+       "                    <tr>\n",
+       "                        <th> Bytes </th>\n",
+       "                        <td> 0.93 GiB </td>\n",
+       "                        <td> 95.37 MiB </td>\n",
+       "                    </tr>\n",
+       "                    \n",
+       "                    <tr>\n",
+       "                        <th> Shape </th>\n",
+       "                        <td> (62500000, 2) </td>\n",
+       "                        <td> (6250000, 2) </td>\n",
+       "                    </tr>\n",
+       "                    <tr>\n",
+       "                        <th> Count </th>\n",
+       "                        <td> 1 Graph Layer </td>\n",
+       "                        <td> 10 Chunks </td>\n",
+       "                    </tr>\n",
+       "                    <tr>\n",
+       "                    <th> Type </th>\n",
+       "                    <td> float64 </td>\n",
+       "                    <td> numpy.ndarray </td>\n",
+       "                    </tr>\n",
+       "                </tbody>\n",
+       "            </table>\n",
+       "        </td>\n",
+       "        <td>\n",
+       "        <svg width=\"75\" height=\"170\" style=\"stroke:rgb(0,0,0);stroke-width:1\" >\n",
+       "\n",
+       "  <!-- Horizontal lines -->\n",
+       "  <line x1=\"0\" y1=\"0\" x2=\"25\" y2=\"0\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"0\" y1=\"12\" x2=\"25\" y2=\"12\" />\n",
+       "  <line x1=\"0\" y1=\"24\" x2=\"25\" y2=\"24\" />\n",
+       "  <line x1=\"0\" y1=\"36\" x2=\"25\" y2=\"36\" />\n",
+       "  <line x1=\"0\" y1=\"48\" x2=\"25\" y2=\"48\" />\n",
+       "  <line x1=\"0\" y1=\"60\" x2=\"25\" y2=\"60\" />\n",
+       "  <line x1=\"0\" y1=\"72\" x2=\"25\" y2=\"72\" />\n",
+       "  <line x1=\"0\" y1=\"84\" x2=\"25\" y2=\"84\" />\n",
+       "  <line x1=\"0\" y1=\"96\" x2=\"25\" y2=\"96\" />\n",
+       "  <line x1=\"0\" y1=\"108\" x2=\"25\" y2=\"108\" />\n",
+       "  <line x1=\"0\" y1=\"120\" x2=\"25\" y2=\"120\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Vertical lines -->\n",
+       "  <line x1=\"0\" y1=\"0\" x2=\"0\" y2=\"120\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"25\" y1=\"0\" x2=\"25\" y2=\"120\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Colored Rectangle -->\n",
+       "  <polygon points=\"0.0,0.0 25.412616514582485,0.0 25.412616514582485,120.0 0.0,120.0\" style=\"fill:#ECB172A0;stroke-width:0\"/>\n",
+       "\n",
+       "  <!-- Text -->\n",
+       "  <text x=\"12.706308\" y=\"140.000000\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >2</text>\n",
+       "  <text x=\"45.412617\" y=\"60.000000\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(-90,45.412617,60.000000)\">62500000</text>\n",
+       "</svg>\n",
+       "        </td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "dask.array<uniform, shape=(62500000, 2), dtype=float64, chunksize=(6250000, 2), chunktype=numpy.ndarray>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "CPU times: user 83.3 ms, sys: 17.7 ms, total: 101 ms\n",
+      "Wall time: 686 ms\n"
+     ]
+    }
+   ],
+   "source": [
+    "%time pi = calculate_pi_dask(size_in_bytes=1_000_000_000, number_of_chunks=10) # 1 GB"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 26,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "\n",
+      "from 10.0 GB randomly chosen positions\n",
+      "   pi estimate: 3.141718944\n",
+      "   pi error: 0.00012629041020684184\n",
+      "\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <td>\n",
+       "            <table>\n",
+       "                <thead>\n",
+       "                    <tr>\n",
+       "                        <td> </td>\n",
+       "                        <th> Array </th>\n",
+       "                        <th> Chunk </th>\n",
+       "                    </tr>\n",
+       "                </thead>\n",
+       "                <tbody>\n",
+       "                    \n",
+       "                    <tr>\n",
+       "                        <th> Bytes </th>\n",
+       "                        <td> 9.31 GiB </td>\n",
+       "                        <td> 95.37 MiB </td>\n",
+       "                    </tr>\n",
+       "                    \n",
+       "                    <tr>\n",
+       "                        <th> Shape </th>\n",
+       "                        <td> (625000000, 2) </td>\n",
+       "                        <td> (6250000, 2) </td>\n",
+       "                    </tr>\n",
+       "                    <tr>\n",
+       "                        <th> Count </th>\n",
+       "                        <td> 1 Graph Layer </td>\n",
+       "                        <td> 100 Chunks </td>\n",
+       "                    </tr>\n",
+       "                    <tr>\n",
+       "                    <th> Type </th>\n",
+       "                    <td> float64 </td>\n",
+       "                    <td> numpy.ndarray </td>\n",
+       "                    </tr>\n",
+       "                </tbody>\n",
+       "            </table>\n",
+       "        </td>\n",
+       "        <td>\n",
+       "        <svg width=\"75\" height=\"170\" style=\"stroke:rgb(0,0,0);stroke-width:1\" >\n",
+       "\n",
+       "  <!-- Horizontal lines -->\n",
+       "  <line x1=\"0\" y1=\"0\" x2=\"25\" y2=\"0\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"0\" y1=\"6\" x2=\"25\" y2=\"6\" />\n",
+       "  <line x1=\"0\" y1=\"12\" x2=\"25\" y2=\"12\" />\n",
+       "  <line x1=\"0\" y1=\"18\" x2=\"25\" y2=\"18\" />\n",
+       "  <line x1=\"0\" y1=\"25\" x2=\"25\" y2=\"25\" />\n",
+       "  <line x1=\"0\" y1=\"31\" x2=\"25\" y2=\"31\" />\n",
+       "  <line x1=\"0\" y1=\"37\" x2=\"25\" y2=\"37\" />\n",
+       "  <line x1=\"0\" y1=\"43\" x2=\"25\" y2=\"43\" />\n",
+       "  <line x1=\"0\" y1=\"50\" x2=\"25\" y2=\"50\" />\n",
+       "  <line x1=\"0\" y1=\"56\" x2=\"25\" y2=\"56\" />\n",
+       "  <line x1=\"0\" y1=\"62\" x2=\"25\" y2=\"62\" />\n",
+       "  <line x1=\"0\" y1=\"68\" x2=\"25\" y2=\"68\" />\n",
+       "  <line x1=\"0\" y1=\"75\" x2=\"25\" y2=\"75\" />\n",
+       "  <line x1=\"0\" y1=\"81\" x2=\"25\" y2=\"81\" />\n",
+       "  <line x1=\"0\" y1=\"87\" x2=\"25\" y2=\"87\" />\n",
+       "  <line x1=\"0\" y1=\"93\" x2=\"25\" y2=\"93\" />\n",
+       "  <line x1=\"0\" y1=\"100\" x2=\"25\" y2=\"100\" />\n",
+       "  <line x1=\"0\" y1=\"106\" x2=\"25\" y2=\"106\" />\n",
+       "  <line x1=\"0\" y1=\"112\" x2=\"25\" y2=\"112\" />\n",
+       "  <line x1=\"0\" y1=\"120\" x2=\"25\" y2=\"120\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Vertical lines -->\n",
+       "  <line x1=\"0\" y1=\"0\" x2=\"0\" y2=\"120\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"25\" y1=\"0\" x2=\"25\" y2=\"120\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Colored Rectangle -->\n",
+       "  <polygon points=\"0.0,0.0 25.412616514582485,0.0 25.412616514582485,120.0 0.0,120.0\" style=\"fill:#8B4903A0;stroke-width:0\"/>\n",
+       "\n",
+       "  <!-- Text -->\n",
+       "  <text x=\"12.706308\" y=\"140.000000\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >2</text>\n",
+       "  <text x=\"45.412617\" y=\"60.000000\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(-90,45.412617,60.000000)\">625000000</text>\n",
+       "</svg>\n",
+       "        </td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "dask.array<uniform, shape=(625000000, 2), dtype=float64, chunksize=(6250000, 2), chunktype=numpy.ndarray>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "CPU times: user 564 ms, sys: 56.4 ms, total: 621 ms\n",
+      "Wall time: 4.43 s\n"
+     ]
+    }
+   ],
+   "source": [
+    "%time pi = calculate_pi_dask(size_in_bytes=10_000_000_000, number_of_chunks=100) # 10 GB"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Let's go larger than memory...\n",
+    "Because Dask splits the computation into single managable tasks, we can scale up easily!"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 32,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "\n",
+      "from 100.0 GB randomly chosen positions\n",
+      "   pi estimate: 3.14160807168\n",
+      "   pi error: 1.541809020677576e-05\n",
+      "\n"
+     ]
+    },
+    {
+     "data": {
+      "text/html": [
+       "<table>\n",
+       "    <tr>\n",
+       "        <td>\n",
+       "            <table>\n",
+       "                <thead>\n",
+       "                    <tr>\n",
+       "                        <td> </td>\n",
+       "                        <th> Array </th>\n",
+       "                        <th> Chunk </th>\n",
+       "                    </tr>\n",
+       "                </thead>\n",
+       "                <tbody>\n",
+       "                    \n",
+       "                    <tr>\n",
+       "                        <th> Bytes </th>\n",
+       "                        <td> 93.13 GiB </td>\n",
+       "                        <td> 381.47 MiB </td>\n",
+       "                    </tr>\n",
+       "                    \n",
+       "                    <tr>\n",
+       "                        <th> Shape </th>\n",
+       "                        <td> (6250000000, 2) </td>\n",
+       "                        <td> (25000000, 2) </td>\n",
+       "                    </tr>\n",
+       "                    <tr>\n",
+       "                        <th> Count </th>\n",
+       "                        <td> 1 Graph Layer </td>\n",
+       "                        <td> 250 Chunks </td>\n",
+       "                    </tr>\n",
+       "                    <tr>\n",
+       "                    <th> Type </th>\n",
+       "                    <td> float64 </td>\n",
+       "                    <td> numpy.ndarray </td>\n",
+       "                    </tr>\n",
+       "                </tbody>\n",
+       "            </table>\n",
+       "        </td>\n",
+       "        <td>\n",
+       "        <svg width=\"75\" height=\"170\" style=\"stroke:rgb(0,0,0);stroke-width:1\" >\n",
+       "\n",
+       "  <!-- Horizontal lines -->\n",
+       "  <line x1=\"0\" y1=\"0\" x2=\"25\" y2=\"0\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"0\" y1=\"6\" x2=\"25\" y2=\"6\" />\n",
+       "  <line x1=\"0\" y1=\"12\" x2=\"25\" y2=\"12\" />\n",
+       "  <line x1=\"0\" y1=\"18\" x2=\"25\" y2=\"18\" />\n",
+       "  <line x1=\"0\" y1=\"24\" x2=\"25\" y2=\"24\" />\n",
+       "  <line x1=\"0\" y1=\"31\" x2=\"25\" y2=\"31\" />\n",
+       "  <line x1=\"0\" y1=\"37\" x2=\"25\" y2=\"37\" />\n",
+       "  <line x1=\"0\" y1=\"44\" x2=\"25\" y2=\"44\" />\n",
+       "  <line x1=\"0\" y1=\"50\" x2=\"25\" y2=\"50\" />\n",
+       "  <line x1=\"0\" y1=\"56\" x2=\"25\" y2=\"56\" />\n",
+       "  <line x1=\"0\" y1=\"62\" x2=\"25\" y2=\"62\" />\n",
+       "  <line x1=\"0\" y1=\"69\" x2=\"25\" y2=\"69\" />\n",
+       "  <line x1=\"0\" y1=\"75\" x2=\"25\" y2=\"75\" />\n",
+       "  <line x1=\"0\" y1=\"82\" x2=\"25\" y2=\"82\" />\n",
+       "  <line x1=\"0\" y1=\"88\" x2=\"25\" y2=\"88\" />\n",
+       "  <line x1=\"0\" y1=\"94\" x2=\"25\" y2=\"94\" />\n",
+       "  <line x1=\"0\" y1=\"100\" x2=\"25\" y2=\"100\" />\n",
+       "  <line x1=\"0\" y1=\"107\" x2=\"25\" y2=\"107\" />\n",
+       "  <line x1=\"0\" y1=\"113\" x2=\"25\" y2=\"113\" />\n",
+       "  <line x1=\"0\" y1=\"120\" x2=\"25\" y2=\"120\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Vertical lines -->\n",
+       "  <line x1=\"0\" y1=\"0\" x2=\"0\" y2=\"120\" style=\"stroke-width:2\" />\n",
+       "  <line x1=\"25\" y1=\"0\" x2=\"25\" y2=\"120\" style=\"stroke-width:2\" />\n",
+       "\n",
+       "  <!-- Colored Rectangle -->\n",
+       "  <polygon points=\"0.0,0.0 25.412616514582485,0.0 25.412616514582485,120.0 0.0,120.0\" style=\"fill:#8B4903A0;stroke-width:0\"/>\n",
+       "\n",
+       "  <!-- Text -->\n",
+       "  <text x=\"12.706308\" y=\"140.000000\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" >2</text>\n",
+       "  <text x=\"45.412617\" y=\"60.000000\" font-size=\"1.0rem\" font-weight=\"100\" text-anchor=\"middle\" transform=\"rotate(-90,45.412617,60.000000)\">6250000000</text>\n",
+       "</svg>\n",
+       "        </td>\n",
+       "    </tr>\n",
+       "</table>"
+      ],
+      "text/plain": [
+       "dask.array<uniform, shape=(6250000000, 2), dtype=float64, chunksize=(25000000, 2), chunktype=numpy.ndarray>"
+      ]
+     },
+     "metadata": {},
+     "output_type": "display_data"
+    },
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "CPU times: user 3.73 s, sys: 374 ms, total: 4.1 s\n",
+      "Wall time: 38.8 s\n"
+     ]
+    }
+   ],
+   "source": [
+    "%time pi = calculate_pi_dask(size_in_bytes=100_000_000_000, number_of_chunks=250) # 100 GB"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "### Are we now better than single precision floating point resolution?\n",
+    "Not at all, if we require an order of magnitude better..."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "metadata": {},
+   "outputs": [
+    {
+     "data": {
+      "text/plain": [
+       "finfo(resolution=1e-06, min=-3.4028235e+38, max=3.4028235e+38, dtype=float32)"
+      ]
+     },
+     "execution_count": 7,
+     "metadata": {},
+     "output_type": "execute_result"
+    }
+   ],
+   "source": [
+    "numpy.finfo(numpy.float32)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## We could increase the local cluster CPU resources...\n",
+    "However, the above Dask cluster size is always limited by the memory/CPU resources of a single compute node."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# %time pi = calculate_pi(size_in_bytes=1_000_000_000_000, number_of_chunks=2_500) # 1 TB"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "------------------------------------\n",
+    "\n",
+    "### More on Dask - HIGH THROUGHPUT COMPUTING WITH DASK\n",
+    "\n",
+    "**Organisers:** Alan O’Cais, David Swenson  \n",
+    "**Website:** https://www.cecam.org/workshop-details/1022\n",
+    "\n",
+    "**Synopsis:**\n",
+    "High-throughput (task-based) computing is a flexible approach to parallelisation. It involves splitting a problem into loosely-coupled tasks. A scheduler then orchestrates the parallel execution of those tasks, allowing programs to adaptively scale their resource usage. E-CAM has extended the data-analytics framework Dask with a capable and efficient library to handle such workloads. This workshop will be held as a series of virtual seminars/tutorials on tools in the Dask HPC ecosystem.\n",
+    "\n",
+    "**Programme:**\n",
+    "- 21 January 2021, 3pm CET (2pm UTC): Dask - a flexible library for parallel computing in Python\n",
+    "  - YouTube link: https://youtu.be/Tl8rO-baKuY\n",
+    "  - GitHub Repo: https://github.com/jacobtomlinson/dask-video-tutorial-2020  \n",
+    "  \n",
+    "4 February 2021, 3pm CET (2pm UTC): Dask-Jobqueue - a library that integrates Dask with standard HPC queuing systems, such as SLURM or PBS\n",
+    "  - YouTube link: https://youtu.be/iNxhHXzmJ1w\n",
+    "  - GitHub Repo: https://github.com/ExaESM-WP4/workshop-Dask-Jobqueue-cecam-2021-02  \n",
+    "  \n",
+    "- 11 February 2021, 3pm CET (2pm UTC) : Jobqueue-Features - a library that enables functionality aimed at enhancing scalability\n",
+    "  - YouTube link: https://youtu.be/FpMua8iJeTk\n",
+    "  - GitHub Repo: https://github.com/E-CAM/jobqueue_features_workshop_materials"
+   ]
+  }
+ ],
+ "metadata": {
+  "anaconda-cloud": {},
+  "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.9.6"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 4
+}
diff --git a/day2_hpcenv/6_Jupyter-JSC_under_the_hood/1_jupyter-log-dir.ipynb b/day2_hpcenv/6_Jupyter-JSC_under_the_hood/1_jupyter-log-dir.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..091fbc744b73f15c5e38c314e10c1ac92a123af1
--- /dev/null
+++ b/day2_hpcenv/6_Jupyter-JSC_under_the_hood/1_jupyter-log-dir.ipynb
@@ -0,0 +1,585 @@
+{
+ "cells": [
+  {
+   "attachments": {
+    "67258d94-84e6-4a0c-ae8f-c74332ec082e.jpg": {
+     "image/jpeg": "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"
+    }
+   },
+   "cell_type": "markdown",
+   "id": "1f661b78-6193-47da-b904-c6d0cbcc0941",
+   "metadata": {
+    "toc-hr-collapsed": false
+   },
+   "source": [
+    "![jsc-logo.jpg](attachment:67258d94-84e6-4a0c-ae8f-c74332ec082e.jpg)\n",
+    "Author: [Jens Henrik Göbbert](mailto:j.goebbert@fz-juelich.de)\n",
+    "------------------------------------"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "0a22d3b0-07b2-429a-810a-6e8d4f34383a",
+   "metadata": {},
+   "source": [
+    "### Jupyter-JSC under the hood\n",
+    "\n",
+    "UNICORE creates a `job-directory at $SCRATCH/<project_name>/<hash>` for configuration and log files.  \n",
+    "The path is exported as `$JUPYTER_LOG_DIR`.\n",
+    "\n",
+    "Let's examine that directory.\n",
+    "\n",
+    "---------------------------------------------"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "id": "2bb2aebe-0ccf-4ed8-a838-9ce8d1637bc6",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "/p/scratch/ccstdl/unicore-jobs/cc26c409-62b1-4c5d-84b4-850b5c4790c4\n"
+     ]
+    }
+   ],
+   "source": [
+    "echo $JUPYTER_LOG_DIR"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "id": "6d55d774-475c-4b9a-8438-a6d05d96157b",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "total 16503\n",
+      "drwx--S---   2 goebbert1 ccstdl 16384 Mar 14 14:27 .\n",
+      "drwxrwsr-x 107 jitsev1   ccstdl 32768 Mar 14 14:26 ..\n",
+      "-rw-------   1 goebbert1 ccstdl  1381 Mar 14 14:27 config.py\n",
+      "-rw-------   1 goebbert1 ccstdl    32 Mar 14 14:26 .jupyter.token\n",
+      "-rw-------   1 goebbert1 ccstdl  2318 Mar 14 14:26 notebooks-ca_trust.crt\n",
+      "-rw-------   1 goebbert1 ccstdl   137 Mar 14 14:26 .oauth.scopes\n",
+      "-rw-------   1 goebbert1 ccstdl  2319 Mar 14 14:26 service_ca.crt\n",
+      "-rw-------   1 goebbert1 ccstdl  2155 Mar 14 14:26 service_cert.crt\n",
+      "-rw-------   1 goebbert1 ccstdl  1704 Mar 14 14:26 service_cert.key\n",
+      "-rw-------   1 goebbert1 ccstdl     6 Mar 14 14:27 service.pid\n",
+      "-rw-------   1 goebbert1 ccstdl 15444 Mar 14 14:26 start.sh\n",
+      "-rw-------   1 goebbert1 ccstdl 48213 Mar 14 17:32 stderr\n",
+      "-rw-------   1 goebbert1 ccstdl  3620 Mar 14 17:32 stdout\n",
+      "-rw-------   1 goebbert1 ccstdl  1050 Mar 14 14:26 stop.sh\n",
+      "-rw-------   1 goebbert1 ccstdl     6 Mar 14 14:26 UNICORE_SCRIPT_PID\n",
+      "-rw-------   1 goebbert1 ccstdl     6 Mar 14 14:27 validate_token.pid\n",
+      "-rw-------   1 goebbert1 ccstdl  1058 Mar 14 14:26 validate_token.sh\n"
+     ]
+    }
+   ],
+   "source": [
+    "ls -la $JUPYTER_LOG_DIR"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "id": "6c8fcc9b-3b07-4fa8-837c-060090d21833",
+   "metadata": {
+    "scrolled": true,
+    "tags": []
+   },
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "#!/bin/bash\n",
+      "\n",
+      "# Catch SIGTERM signal and stop $child process\n",
+      "_term() {\n",
+      "  echo \"$(date) - Stop JupyterLab ...\"\n",
+      "  if [[ -z $child ]]; then\n",
+      "    echo \"$(date) - Stop JupyterLab - unknown PID. Start stop.sh to wait for PID\"\n",
+      "    bash ${DIR}/stop.sh &\n",
+      "  else\n",
+      "    pkill --parent $child\n",
+      "    kill $child\n",
+      "    echo \"$(date) - Stop JupyterLab ( $child ) ... done\"\n",
+      "    if [[ -z $token_pid ]]; then\n",
+      "      echo \"$(date) - Validate Token PID not found...\"\n",
+      "    else\n",
+      "      echo \"$(date) - Stop Validate Token Script ( $token_pid ) ...\"\n",
+      "      kill $token_pid\n",
+      "      echo \"$(date) - Stop Validate Token Script ( $token_pid ) ... done\"\n",
+      "    fi\n",
+      "  fi\n",
+      "}\n",
+      "trap _term SIGTERM\n",
+      "\n",
+      "# show user a message in the UI\n",
+      "send_spawn_update () {\n",
+      "  PERCENTAGE=$1\n",
+      "  SUMMARY=$2\n",
+      "  DETAILS=$3\n",
+      "  curl -s ${CURL_ARGS} -H \"Authorization: token ${JUPYTERHUB_API_TOKEN}\" -H \"Content-Type: application/json\" -d '{\"progress\": '\"${PERCENTAGE}\"', \"failed\": false, \"html_message\": \"<details><summary>'\"${SUMMARY}\"'</summary><p>'\"${DETAILS}\"'</p></details>\"}' -X \"POST\" ${JUPYTERHUB_API_URL}/${JUPYTERHUB_STATUS_URL} 2>&1\n",
+      "  if [[ $? -ne 0 ]]; then\n",
+      "    echo \"$(date) - Could not send status update (${PERCENTAGE}: ${SUMMARY} - ${DETAILS}). Cancel start.\"\n",
+      "    exit 1\n",
+      "  fi\n",
+      "}\n",
+      "\n",
+      "# show user a darkorange message in the UI\n",
+      "send_spawn_update_warning () {\n",
+      "  PERCENTAGE=$1\n",
+      "  SUMMARY=$2\n",
+      "  DETAILS=$3\n",
+      "  curl -s ${CURL_ARGS} -H \"Authorization: token ${JUPYTERHUB_API_TOKEN}\" -H \"Content-Type: application/json\" -d '{\"progress\": '\"${PERCENTAGE}\"', \"failed\": false, \"html_message\": \"<details><summary><span style=\\\"color:darkorange;\\\">'\"${SUMMARY}\"'</span></summary><p>'\"${DETAILS}\"'</p></details>\"}' -X \"POST\" ${JUPYTERHUB_API_URL}/${JUPYTERHUB_STATUS_URL} 2>&1\n",
+      "  if [[ $? -ne 0 ]]; then\n",
+      "    echo \"$(date) - Could not send status update (${PERCENTAGE}: ${SUMMARY} - ${DETAILS}). Cancel start.\"\n",
+      "    exit 1\n",
+      "  fi\n",
+      "}\n",
+      "\n",
+      "# show user a fail message in the UI\n",
+      "send_spawn_update_fail () {\n",
+      "  SUMMARY=$1\n",
+      "  DETAILS=$2\n",
+      "  curl -s ${CURL_ARGS} -H \"Authorization: token ${JUPYTERHUB_API_TOKEN}\" -H \"Content-Type: application/json\" -d '{\"progress\": 100, \"failed\": true, \"html_message\": \"<details><summary>'\"${SUMMARY}\"'</summary><p>'\"${DETAILS}\"'</p></details>\"}' -X \"POST\" ${JUPYTERHUB_API_URL}/${JUPYTERHUB_STATUS_URL} 2>&1\n",
+      "  if [[ $? -ne 0 ]]; then\n",
+      "    echo \"$(date) - Could not send fail status update (100: ${SUMMARY} - ${DETAILS}). Cancel start.\"\n",
+      "    exit 1\n",
+      "  fi\n",
+      "}\n",
+      "\n",
+      "# System specific requirements\n",
+      "requirements () {\n",
+      "  echo \"$(date) - Setup system specific requirements ( ${HOSTNAME} ) ...\"\n",
+      "  if [[ ! -d ${HOME}/.cache/black/19.3b0 ]]; then\n",
+      "    mkdir -p ${HOME}/.cache/black/19.3b0\n",
+      "  fi\n",
+      "  # export a memory warn threshold on login nodes\n",
+      "  hostname | egrep 'jsfl' > /dev/null && export JUPYTER_MEMWARNTHRES=0.5\n",
+      "  # set cpu limit/warning\n",
+      "  export FPATH_CPUQUOTA=\"/sys/fs/cgroup/cpu,cpuacct/user.slice/user-$(id -u $USER).slice/cpu.cfs_quota_us\"\n",
+      "  [ -f \"${FPATH_CPUQUOTA}\" ] && [ $(hostname | egrep 'login|vis') ] && export JUPYTER_CPULIMIT=$(($(cat ${FPATH_CPUQUOTA})/100000))\n",
+      "  \n",
+      "  echo \"$(date) - Setup system specific requirements done\"\n",
+      "}\n",
+      "\n",
+      "# set env_variables correctly\n",
+      "set_env () {\n",
+      "  echo \"$(date) - Set environment variables ...\"\n",
+      "  export DIR=\"$( cd \"$( dirname \"${BASH_SOURCE[0]}\" )\" >/dev/null 2>&1 && pwd )\"\n",
+      "  export PID_PATH=${DIR}/service.pid\n",
+      "  export VALIDATE_TOKEN_PID_PATH=${DIR}/validate_token.pid\n",
+      "  export LC_ALL=en_US.UTF-8\n",
+      "  export JUPYTER_LOG_DIR=${DIR}\n",
+      "  export JUPYTER_STDOUT=${JUPYTER_LOG_DIR}/stderr\n",
+      "  export PYTHONPATH=\"\"\n",
+      "  export PYTHONNOUSERSITE=1\n",
+      "  HOSTNAME_S=$(hostname -s)\n",
+      "  # If this JupyterLab is running on a LoginNode, we'll use the external api url. Otherwise we have to use a LoginNode as Proxy.\n",
+      "  if [[ ${HOSTNAME_S} == \"jsfl\"* ]]; then\n",
+      "    unset JUPYTERHUB_SSL_CLIENT_CA\n",
+      "    export JUPYTERHUB_API_URL=https://jupyter-jsc.fz-juelich.de/hub/api\n",
+      "    export JUMP_NODE=${HOSTNAME_S}i\n",
+      "    echo \"$(date) - Use ${JUPYTERHUB_API_URL} to communicate with JupyterHub. Jump node for tunnel: ${JUMP_NODE}\"\n",
+      "    export CURL_ARGS=\"\"\n",
+      "  else\n",
+      "    export REMOTE_PORT=\"25452\"\n",
+      "    export JUPYTERHUB_CERTIFICATE=\"${DIR}/notebooks-ca_trust.crt\"\n",
+      "    export CURL_ARGS=\"--cacert ${JUPYTERHUB_CERTIFICATE}\"\n",
+      "    # Look for random LoginNode\n",
+      "    # We start at a random index, then we will run through all nodes and test them\n",
+      "    export ALL_REMOTE_NODES=('jsfl01i' 'jsfl02i' 'jsfl03i' 'jsfl04i')\n",
+      "    size=${#ALL_REMOTE_NODES[@]}\n",
+      "    index=$(($RANDOM % $size))\n",
+      "    start_index=$index\n",
+      "    for _ in ${ALL_REMOTE_NODES[@]}\n",
+      "    do\n",
+      "      HTTPCODE=$(curl -X \"GET\" ${CURL_ARGS} --write-out '%{http_code}' --silent --output /dev/null https://${ALL_REMOTE_NODES[$index]}:${REMOTE_PORT}/hub/api)\n",
+      "      if [[ $HTTPCODE -eq 200 ]]; then\n",
+      "        # Add additional maintenance check\n",
+      "        STATUSOUT=$(curl -s -w '%{stdout}\\n%{http_code}' http://${ALL_REMOTE_NODES[$index]}:9100/metrics)\n",
+      "        STATUSOUTCODE=$(echo \"${STATUSOUT}\" | tail -n 1)\n",
+      "        STATUSOUTMAINT=$(echo \"${STATUSOUT}\" | grep -E '^maint_status' | cut -d' ' -f2)\n",
+      "        if [[ $STATUSOUTCODE -eq 200 ]] && [[ ${STATUSOUTMAINT} -eq 0 ]]; then\n",
+      "          export JUPYTERHUB_API_URL=\"https://${ALL_REMOTE_NODES[$index]}:${REMOTE_PORT}/hub/api\"\n",
+      "          export JUMP_NODE=${ALL_REMOTE_NODES[$index]}\n",
+      "          echo \"$(date) - Use ${JUPYTERHUB_API_URL} to communicate with JupyterHub and ${JUMP_NODE} as jump node.\"\n",
+      "          break\n",
+      "        else\n",
+      "          echo \"$(date) - Hub reachable for ${ALL_REMOTE_NODES[$index]}. But node metrics answered with: ${STATUSOUTCODE} , ${STATUSOUTMAINT}. Continue search for node. Full output: ${STATUSOUT}\"\n",
+      "        fi\n",
+      "      fi\n",
+      "      index=$(expr $index + 1)\n",
+      "      if [[ $index == $size ]]; then\n",
+      "        index=0\n",
+      "      fi\n",
+      "      if [[ $index == $start_index ]]; then\n",
+      "        echo \"$(date) - Could not find any LoginNode to connect to JupyterHub. Please try again in a few minutes.\"\n",
+      "        exit 1\n",
+      "      fi\n",
+      "    done\n",
+      "    export JUPYTERHUB_SSL_CLIENT_CA=\"${DIR}/service_ca.crt\"\n",
+      "  fi\n",
+      "  export JUPYTERHUB_ACTIVITY_URL=${JUPYTERHUB_API_URL}/users/${JUPYTERHUB_USER}/activity\n",
+      "  export JUPYTERHUB_API_TOKEN=$(cat ${DIR}/.jupyter.token)\n",
+      "  export JUPYTERHUB_OAUTH_SCOPES=$(cat ${DIR}/.oauth.scopes)\n",
+      "  export JUPYTERHUB_SINGLEUSER_APP=\"jupyter_server.serverapp.ServerApp\"\n",
+      "  export JUPYTERHUB_SSL_KEYFILE=\"${DIR}/service_cert.key\"\n",
+      "  export JUPYTERHUB_SSL_CERTFILE=\"${DIR}/service_cert.crt\"\n",
+      "  export JUPYTERJSC_CMD_ARGS=\"\"\n",
+      "  export PORT=$(python3 -c 'import socket; s=socket.socket(); s.bind((\"\", 0)); print(s.getsockname()[1]); s.close()')\n",
+      "  echo \"$(date) - Set environment variables done\"\n",
+      "}\n",
+      "\n",
+      "# setup tunnel to this node, show message in the UI\n",
+      "setup_tunnel () {\n",
+      "  echo \"$(date) - Setup tunnel ...\"\n",
+      "  HOSTNAME_S=$(hostname -s)i\n",
+      "  curl -s ${CURL_ARGS} -H \"Authorization: token ${JUPYTERHUB_API_TOKEN}\" -H \"Content-Type: application/json\" -d '{\"progress\": 40, \"failed\": false, \"html_message\": \"<details><summary>Setup ssh port-forwarding.</summary><p>Create ssh tunnel with system user ljupyter. JupyterHub will then be able to connect to JupyterLab at '\"${HOSTNAME_S}\"':'\"${PORT}\"'</p></details>\", \"setup_tunnel\": {\"hostname\": \"'\"${JUMP_NODE}\"'\", \"target_node\": \"'\"${HOSTNAME_S}\"'\", \"target_port\": \"'\"${PORT}\"'\"}}' -X \"POST\" ${JUPYTERHUB_API_URL}/${JUPYTERHUB_STATUS_URL} 2>&1\n",
+      "  if [[ $? -ne 0 ]]; then\n",
+      "    echo \"Could not setup tunnel. Cancel start.\"\n",
+      "    exit 1\n",
+      "  fi\n",
+      "  echo \"$(date) - Setup tunnel done\"\n",
+      "}\n",
+      "\n",
+      "# Check Quota\n",
+      "check_quota () {\n",
+      "  echo \"$(date) - Check quota ...\"\n",
+      "  if [[ ! -f ${HOME}/.${JUPYTERHUB_SERVER_NAME} ]]; then\n",
+      "    touch ${HOME}/.${JUPYTERHUB_SERVER_NAME}\n",
+      "    EC1=$?\n",
+      "    echo \"Quota Check ${JUPYTERHUB_SERVER_NAME}\" >> ${HOME}/.${JUPYTERHUB_SERVER_NAME}\n",
+      "    EC2=$?\n",
+      "    if [[ $EC1 -ne 0 || $EC1 -ne 0 ]]; then\n",
+      "      send_spawn_update_fail \"Disk quota exceeded in $HOME. You have to clean up your home directory before you can start a JupyterLab.\" \"Jupyter-JSC tried to create a testfile in ${HOME} and failed. Job directory may contain further information: '\"${DIR}\"'\"\n",
+      "      rm ${HOME}/.${JUPYTERHUB_SERVER_NAME}\n",
+      "      exit 0\n",
+      "    fi\n",
+      "    rm ${HOME}/.${JUPYTERHUB_SERVER_NAME}\n",
+      "    send_spawn_update 50 \"Disk quota checked.\" \"If Jupyter-JSC couldn't create files in ${HOME}, JupyterLab would not be able to start.\"\n",
+      "  else\n",
+      "    echo \"$(date) - Could not check quota\"\n",
+      "  fi\n",
+      "  echo \"$(date) - Check quota done\"\n",
+      "}\n",
+      "\n",
+      "# Hook to load customized environments before loading modules\n",
+      "pre_start () {\n",
+      "  echo \"$(date) - Pre start ...\"\n",
+      "  if [[ -f ${HOME}/.jupyter/pre_jupyter-jsc.sh ]]; then\n",
+      "    echo \"$(date) - Pre start if ...\"\n",
+      "    send_spawn_update_warning 60 \"Use customized start script.\" \"You're using a customized environment, defined in ${HOME}/.jupyter/pre_jupyter-jsc.sh.\"\n",
+      "    echo \"------ pre_jupyter-jsc.sh file ------\"\n",
+      "    cat ${HOME}/.jupyter/pre_jupyter-jsc.sh\n",
+      "    echo \"------ pre_jupyter-jsc.sh file ------\"\n",
+      "    source ${HOME}/.jupyter/pre_jupyter-jsc.sh\n",
+      "  fi\n",
+      "  echo \"$(date) - Pre start done\"\n",
+      "}\n",
+      "\n",
+      "# Load modules\n",
+      "load_modules () {\n",
+      "  echo \"$(date) - Load modules ...\"\n",
+      "  if [[ -f ${HOME}/.jupyter/start_jupyter-jsc.sh ]]; then\n",
+      "    send_spawn_update_warning 70 \"Load customized modules ...\" \"You're using a customized modules script, defined in ${HOME}/.jupyter/start_jupyter-jsc.sh.\"\n",
+      "    echo \"------ start_jupyter-jsc.sh file ------\"\n",
+      "    cat ${HOME}/.jupyter/start_jupyter-jsc.sh\n",
+      "    echo \"------ start_jupyter-jsc.sh file ------\"\n",
+      "    source ${HOME}/.jupyter/start_jupyter-jsc.sh\n",
+      "    send_spawn_update_warning 80 \"Load customized modules done\" \"You're using a customized modules script, defined in ${HOME}/.jupyter/start_jupyter-jsc.sh.\"\n",
+      "  else\n",
+      "    send_spawn_update 70 \"Load default modules ...\" \"Loading Jupyter/2022.3.4 in Stages/2022.\"\n",
+      "    \n",
+      "    module purge\n",
+      "    module load Stages/2022 GCCcore/.11.2.0 Python Jupyter/2022.3.4\n",
+      "\n",
+      "    if [[ $JUPYTER_MODULE_BASH_ENABLED -eq 1 ]]; then\n",
+      "      module load JupyterKernel-Bash/.0.7.2-2022.3.4 \n",
+      "    fi\n",
+      "    if [[ $JUPYTER_MODULE_CLING_ENABLED -eq 1 ]]; then\n",
+      "      module load JupyterKernel-Cling/.0.9-2022.3.4\n",
+      "    fi\n",
+      "    if [[ $JUPYTER_MODULE_JAVASCRIPT_ENABLED -eq 1 ]]; then\n",
+      "      module load JupyterKernel-JavaScript/.5.2.1-2022.3.4 \n",
+      "    fi\n",
+      "    if [[ $JUPYTER_MODULE_JULIA_ENABLED -eq 1 ]]; then\n",
+      "      module load JupyterKernel-Julia/.1.7.1-2022.3.4 \n",
+      "    fi\n",
+      "    if [[ $JUPYTER_MODULE_OCTAVE_ENABLED  -eq 1 ]]; then\n",
+      "      module load JupyterKernel-Octave/.6.4.0-2022.3.4\n",
+      "    fi\n",
+      "    if [[ $JUPYTER_MODULE_PYDEEPLEARNING_ENABLED -eq 1 ]]; then\n",
+      "      module load JupyterKernel-PyDeepLearning/.1.1-2022.3.4\n",
+      "    fi\n",
+      "    if [[ $JUPYTER_MODULE_PYQUANTUM_ENABLED -eq 1 ]]; then\n",
+      "      module load JupyterKernel-PyQuantum/.3.0-2022.3.4\n",
+      "    fi\n",
+      "    if [[ $JUPYTER_MODULE_PYVISUALIZATION_ENABLED -eq 1 ]]; then\n",
+      "      module load JupyterKernel-PyVisualization/.1.0-2022.3.4 \n",
+      "    fi\n",
+      "    if [[ $JUPYTER_MODULE_R_ENABLED -eq 1 ]]; then\n",
+      "      module load JupyterKernel-R/.4.1.2-2022.3.4 \n",
+      "    fi\n",
+      "    if [[ $JUPYTER_MODULE_RUBY_ENABLED -eq 1 ]]; then\n",
+      "      module load JupyterKernel-Ruby/.3.0.1-2022.3.4 \n",
+      "    fi\n",
+      "    if [[ $JUPYTER_MODULE_XPRAHTML5_ENABLED -eq 1 ]]; then\n",
+      "      module load JupyterProxy-XpraHTML5/.0.3.5-2022.3.4\n",
+      "    fi\n",
+      "    if [[ $JUPYTER_MODULE_NVDASHBOARD_ENABLED -eq 1 ]]; then\n",
+      "      module load JupyterExtension-nvdashboard/0.7.0-2022.3.4 \n",
+      "    fi\n",
+      "    if [[ $JUPYTER_MODULE_SLURMWRAPPER_ENABLED -eq 1 ]]; then\n",
+      "      module load JupyterExtension-slurmprovisioner/0.6.0-2022.3.4\n",
+      "      export SLURMEL_DOCUMENTATION_HREF=\"https://docs.jupyter-jsc.fz-juelich.de/github/FZJ-JSC/jupyter-jsc-notebooks/blob/master/05-News&Updates/Announcement-2022-12_Slurm_Wrapped_Kernels.ipynb\"\n",
+      "      export JUPYTERJSC_CMD_ARGS=\"${JUPYTERJSC_CMD_ARGS} --ServerApp.kernel_manager_class=jupyter_slurm_provisioner.SlurmAsyncMappingKernelManager\"\n",
+      "      export SLURM_PROVISIONER_NODE_SUFFIX=\"i\"\n",
+      "      export SLURM_PROVISIONER_JHUB_METRICS=\"${JUPYTERHUB_API_URL}/slurmwrapper/${JUPYTERHUB_USER}/${JUPYTERHUB_SERVER_NAME}\"\n",
+      "      test -d ${HOME}/.local/share/jupyter/kernels.deactivated/slurm-provisioner-kernel && ! test -d ${HOME}/.local/share/jupyter/kernels/slurm-provisioner-kernel && mv ${HOME}/.local/share/jupyter/kernels.deactivated/slurm-provisioner-kernel ${HOME}/.local/share/jupyter/kernels/slurm-provisioner-kernel\n",
+      "    else\n",
+      "      test -d ${HOME}/.local/share/jupyter/kernels/slurm-provisioner-kernel && mkdir -p ${HOME}/.local/share/jupyter/kernels.deactivated && mv ${HOME}/.local/share/jupyter/kernels/slurm-provisioner-kernel ${HOME}/.local/share/jupyter/kernels.deactivated/slurm-provisioner-kernel\n",
+      "    fi\n",
+      "    send_spawn_update 80 \"Load default modules done\" \"Loaded Jupyter/2022.3.4 in Stages/2022.\"\n",
+      "  fi\n",
+      "  echo \"$(date) - Load modules done\"\n",
+      "}\n",
+      "\n",
+      "update_config () {\n",
+      "  sed -i -e \"s|_port_|${PORT}|g\" -e \"s|_home_|${JUPYTERHUB_HOME:-${HOME}}|g\" -e \"s|_servername_|${JUPYTERHUB_SERVER_NAME}|g\" ${DIR}/config.py\n",
+      "  if [[ -f ${EBROOTJUPYTER}/etc/jupyter/jupyter_notebook_config.py ]]; then\n",
+      "    echo \"$(date) - Add system specific config ...\"\n",
+      "    send_spawn_update 85 \"Add system specific configuration.\" \"Use system specific config file ${EBROOTJUPYTER}/etc/jupyter/jupyter_notebook_config.py\"\n",
+      "    echo \"\" >> ${DIR}/config.py\n",
+      "    cat ${EBROOTJUPYTER}/etc/jupyter/jupyter_notebook_config.py >> ${DIR}/config.py\n",
+      "    for path in ${JUPYTER_EXTRA_LABEXTENSIONS_PATH//:/$'\\n'}; do\n",
+      "      echo \"c.LabServerApp.extra_labextensions_path.append('$path')\" >> ${JUPYTER_LOG_DIR}/config.py\n",
+      "    done\n",
+      "    echo \"$(date) - Add system specific config done\"\n",
+      "  fi\n",
+      "  if [[ -f ${EBROOTJUPYTER}/bin/update_favorites_json ]]; then\n",
+      "    # update favorite-dirs with $HOME,$PROJECT,$SCRATCH,\n",
+      "    echo \"$(date) - Update favorites\"\n",
+      "    ${EBROOTJUPYTER}/bin/update_favorites_json\n",
+      "  fi\n",
+      "}\n",
+      "\n",
+      "load_hooks () {\n",
+      "  echo \"$(date) - Load hooks ...\"\n",
+      "  if [[ \"0\" == \"1\" ]]; then\n",
+      "    echo \"$(date) - Activate hook for project specific kernels ...\"\n",
+      "    send_spawn_update_warning 90 \"Activate project specific kernel.\" \"Add ${PROJECT}/.local/share/jupyter to JUPYTER_PATH env variable. This may impede the start of JupyterLab.\"\n",
+      "    export JUPYTER_PATH=${PROJECT}/.local/share/jupyter:${JUPYTER_PATH}\n",
+      "    echo \"$(date) - Activate hook for project specific kernels done\"\n",
+      "  fi\n",
+      "  echo \"$(date) - Load hooks done\"\n",
+      "}\n",
+      "\n",
+      "start () {\n",
+      "  echo \"$(date) - Start jupyterhub-singleuser ...\"\n",
+      "  export JUPYTERHUB_HOME=${JUPYTERHUB_HOME:-${HOME}}\n",
+      "  cd ${JUPYTERHUB_HOME}\n",
+      "\n",
+      "  if [[ -n $JUPYTERJSC_USER_CMD ]]; then\n",
+      "    send_spawn_update_warning 95 \"Start JupyterLab with custom command\" \"Use custom command \\$JUPYTERJSC_USER_CMD . You will be redirected, when your JupyterLab is ready.\"\n",
+      "    timeout 30d ${JUPYTERJSC_USER_CMD} ${JUPYTERJSC_CMD_ARGS} &\n",
+      "    child=$!\n",
+      "  elif [[ -n $JUPYTERJSC_USER_CMD_ARGS ]]; then\n",
+      "    send_spawn_update_warning 95 \"Start JupyterLab with custom arguments\" \"Use custom arguments \\$JUPYTERJSC_USER_CMD_ARGS . You will be redirected, when your JupyterLab is ready.\"\n",
+      "    timeout 30d jupyterhub-singleuser --config ${DIR}/config.py ${JUPYTERJSC_CMD_ARGS} ${JUPYTERJSC_USER_CMD_ARGS} &\n",
+      "    child=$!\n",
+      "  else\n",
+      "    send_spawn_update 95 \"Start JupyterLab\" \"You will be redirected, when your JupyterLab is ready.\"\n",
+      "    timeout 30d jupyterhub-singleuser --config ${DIR}/config.py ${JUPYTERJSC_CMD_ARGS} &\n",
+      "    child=$!\n",
+      "  fi\n",
+      "  echo \"$child\" > ${PID_PATH}\n",
+      "  echo \"$(date) - Start jupyterhub-singleuser done (PID: $child )\"\n",
+      "\n",
+      "  echo \"$(date) - Start validate_token.sh ...\"\n",
+      "  /bin/bash ${DIR}/validate_token.sh ${child} ${JUPYTERHUB_API_URL} &\n",
+      "  token_pid=$!\n",
+      "  echo \"$token_pid\" > ${VALIDATE_TOKEN_PID_PATH}\n",
+      "  echo \"$(date) - Start validate_token.sh done (PID: $token_pid )\"\n",
+      "\n",
+      "  wait $child\n",
+      "}\n",
+      "\n",
+      "requirements\n",
+      "set_env\n",
+      "setup_tunnel\n",
+      "check_quota\n",
+      "pre_start\n",
+      "load_modules\n",
+      "update_config\n",
+      "load_hooks\n",
+      "start"
+     ]
+    }
+   ],
+   "source": [
+    "cat $JUPYTER_LOG_DIR/start.sh"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "8c797263-aba6-49fb-96dc-481000241285",
+   "metadata": {
+    "scrolled": true,
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "cat $JUPYTER_LOG_DIR/stderr"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "59d958b6-7fd6-45db-be00-ec32e1d8e334",
+   "metadata": {},
+   "source": [
+    "## Customizing the start procedure"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "957ae41c-eeca-45e0-8135-faba0e26806e",
+   "metadata": {},
+   "source": [
+    "```python\n",
+    "# Load modules\n",
+    "load_modules () {\n",
+    "  echo \"$(date) - Load modules ...\"\n",
+    "  if [[ -f ${HOME}/.jupyter/start_jupyter-jsc.sh ]]; then\n",
+    "    send_spawn_update_warning 70 \"Load customized modules ...\" \"You're using a customized modules script, defined in ${HOME}/.jupyter/start_jupyter-jsc.sh.\"\n",
+    "    echo \"------ start_jupyter-jsc.sh file ------\"\n",
+    "    cat ${HOME}/.jupyter/start_jupyter-jsc.sh\n",
+    "    echo \"------ start_jupyter-jsc.sh file ------\"\n",
+    "    source ${HOME}/.jupyter/start_jupyter-jsc.sh\n",
+    "    send_spawn_update_warning 80 \"Load customized modules done\" \"You're using a customized modules script, defined in ${HOME}/.jupyter/start_jupyter-jsc.sh.\"\n",
+    "  else\n",
+    "    send_spawn_update 70 \"Load default modules ...\" \"Loading Jupyter/2022.3.4 in Stages/2022.\"\n",
+    "    \n",
+    "    module purge\n",
+    "    module load Stages/2022 GCCcore/.11.2.0 Python Jupyter/2022.3.4\n",
+    "\n",
+    "    if [[ $JUPYTER_MODULE_BASH_ENABLED -eq 1 ]]; then\n",
+    "      module load JupyterKernel-Bash/.0.7.2-2022.3.4 \n",
+    "    fi\n",
+    "    if [[ $JUPYTER_MODULE_CLING_ENABLED -eq 1 ]]; then\n",
+    "      module load JupyterKernel-Cling/.0.9-2022.3.4\n",
+    "    fi\n",
+    "    if [[ $JUPYTER_MODULE_JAVASCRIPT_ENABLED -eq 1 ]]; then\n",
+    "      module load JupyterKernel-JavaScript/.5.2.1-2022.3.4 \n",
+    "    fi\n",
+    "    if [[ $JUPYTER_MODULE_JULIA_ENABLED -eq 1 ]]; then\n",
+    "      module load JupyterKernel-Julia/.1.7.1-2022.3.4 \n",
+    "    fi\n",
+    "    \n",
+    "    <..>\n",
+    "```"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "b5dfd52a-df86-4f3a-af0d-34ac8704d9ff",
+   "metadata": {},
+   "source": [
+    "#### Load customized modules ...\n",
+    "```\n",
+    "    if [[ -f ${HOME}/.jupyter/start_jupyter-jsc.sh ]]; then\n",
+    "       <..>\n",
+    "       source ${HOME}/.jupyter/start_jupyter-jsc.sh\n",
+    "```"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "93fecdcc-7b59-4711-aead-9ab8cadbe362",
+   "metadata": {},
+   "source": [
+    "```python\n",
+    "start () {\n",
+    "  echo \"$(date) - Start jupyterhub-singleuser ...\"\n",
+    "  export JUPYTERHUB_HOME=${JUPYTERHUB_HOME:-${HOME}}\n",
+    "  cd ${JUPYTERHUB_HOME}\n",
+    "\n",
+    "  if [[ -n $JUPYTERJSC_USER_CMD ]]; thenif [[ $JUPYTER_MODULE_BASH_ENABLED -eq 1 ]]; then\n",
+    "      module load JupyterKernel-Bash/.0.7.2-2022.3.4 \n",
+    "    fi\n",
+    "    if [[ $JUPYTER_MODULE_CLING_ENABLED -eq 1 ]]; then\n",
+    "      module load JupyterKernel-Cling/.0.9-2022.3.4\n",
+    "    fi\n",
+    "    if [[ $JUPYTER_MODULE_JAVASCRIPT_ENABLED -eq 1 ]]; then\n",
+    "      module load JupyterKernel-JavaScript/.5.2.1-2022.3.4 \n",
+    "    fi\n",
+    "    if [[ $JUPYTER_MODULE_JULIA_ENABLED -eq 1 ]]; then\n",
+    "      module load JupyterKernel-Julia/.1.7.1-2022.3.4 \n",
+    "    fi\n",
+    "    send_spawn_update_warning 95 \"Start JupyterLab with custom command\" \"Use custom command \\$JUPYTERJSC_USER_CMD . You will be redirected, when your JupyterLab is ready.\"\n",
+    "    timeout 30d ${JUPYTERJSC_USER_CMD} ${JUPYTERJSC_CMD_ARGS} &\n",
+    "    child=$!\n",
+    "  elif [[ -n $JUPYTERJSC_USER_CMD_ARGS ]]; then\n",
+    "    send_spawn_update_warning 95 \"Start JupyterLab with custom arguments\" \"Use custom arguments \\$JUPYTERJSC_USER_CMD_ARGS . You will be redirected, when your JupyterLab is ready.\"\n",
+    "    timeout 30d jupyterhub-singleuser --config ${DIR}/config.py ${JUPYTERJSC_CMD_ARGS} ${JUPYTERJSC_USER_CMD_ARGS} &\n",
+    "    child=$!\n",
+    "  else\n",
+    "    send_spawn_update 95 \"Start JupyterLab\" \"You will be redirected, when your JupyterLab is ready.\"\n",
+    "    timeout 30d jupyterhub-singleuser --config ${DIR}/config.py ${JUPYTERJSC_CMD_ARGS} &\n",
+    "    child=$!\n",
+    "  fi\n",
+    "  echo \"$child\" > ${PID_PATH}\n",
+    "  echo \"$(date) - Start jupyterhub-singleuser done (PID: $child )\"\n",
+    "\n",
+    "  echo \"$(date) - Start validate_token.sh ...\"\n",
+    "  /bin/bash ${DIR}/validate_token.sh ${child} ${JUPYTERHUB_API_URL} &\n",
+    "  token_pid=$!\n",
+    "  echo \"$token_pid\" > ${VALIDATE_TOKEN_PID_PATH}\n",
+    "  echo \"$(date) - Start validate_token.sh done (PID: $token_pid )\"\n",
+    "\n",
+    "  wait $child\n",
+    "}\n",
+    "```"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "231f6b09-0f27-40be-8aee-35c7a83b5e9f",
+   "metadata": {},
+   "source": [
+    "```timeout 30d jupyterhub-singleuser --config ${DIR}/config.py ${JUPYTERJSC_CMD_ARGS} &```\n",
+    "\n",
+    "#### Start JupyterLab with custom command\n",
+    "```JupyterLab gets started by `timeout 30d ${JUPYTERJSC_USER_CMD} ${JUPYTERJSC_CMD_ARGS} &```\n",
+    "\n",
+    "#### Start JupyterLab with custom arguments\n",
+    "```timeout 30d jupyterhub-singleuser --config ${DIR}/config.py ${JUPYTERJSC_CMD_ARGS} ${JUPYTERJSC_USER_CMD_ARGS} &```\n",
+    "\n"
+   ]
+  }
+ ],
+ "metadata": {
+  "kernelspec": {
+   "display_name": "Bash",
+   "language": "bash",
+   "name": "bash"
+  },
+  "language_info": {
+   "codemirror_mode": "shell",
+   "file_extension": ".sh",
+   "mimetype": "text/x-sh",
+   "name": "bash"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/day2_hpcenv/6_Jupyter-JSC_under_the_hood/jupyter4hpc_under-the-hood.pdf b/day2_hpcenv/6_Jupyter-JSC_under_the_hood/jupyter4hpc_under-the-hood.pdf
new file mode 100644
index 0000000000000000000000000000000000000000..f285883618d42f4df927ce1c0d2f3a4435f08dca
Binary files /dev/null and b/day2_hpcenv/6_Jupyter-JSC_under_the_hood/jupyter4hpc_under-the-hood.pdf differ
diff --git a/day2_hpcenv/7_cloud-hpc_challenges/1-hdf-cloud_mount-hpc-storage.ipynb b/day2_hpcenv/7_cloud-hpc_challenges/1-hdf-cloud_mount-hpc-storage.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..8560ec542c23b4fba779749fdff37327bbac47ef
--- /dev/null
+++ b/day2_hpcenv/7_cloud-hpc_challenges/1-hdf-cloud_mount-hpc-storage.ipynb
@@ -0,0 +1,256 @@
+{
+ "cells": [
+  {
+   "attachments": {
+    "67258d94-84e6-4a0c-ae8f-c74332ec082e.jpg": {
+     "image/jpeg": "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"
+    }
+   },
+   "cell_type": "markdown",
+   "id": "exclusive-nursery",
+   "metadata": {
+    "toc-hr-collapsed": false
+   },
+   "source": [
+    "![jsc-logo.jpg](attachment:67258d94-84e6-4a0c-ae8f-c74332ec082e.jpg)\n",
+    "Author: [Jens Henrik Göbbert](mailto:j.goebbert@fz-juelich.de)\n",
+    "------------------------------------"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "worldwide-presence",
+   "metadata": {},
+   "source": [
+    "# Supercomputing with JupyterLab - Tips & Tricks\n",
+    "\n",
+    "This is the first time you are using JupyterLab on an HPC system? Let us show you some tips & tricks.\n",
+    "\n",
+    "This notebook might be special to the environment at Juelich Supercomputing Centre, Forschungszentrum Juelich, Germany.# JupyterLab Tour\n",
+    "\n",
+    "-------------------------"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "retired-crest",
+   "metadata": {},
+   "source": [
+    "#### Exercise 1:\n",
+    "**ONLY FOR HDF-CLOUD**  \n",
+    "**!!DANGEROUS!! YOU ARE MOUNTING WRITEABLE**  \n",
+    "Mount the $HOMEs from GPFS on the HDF Cloud"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "id": "abd7420b-36b8-4f8b-91fc-cc10f6d45013",
+   "metadata": {
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "import json\n",
+    "import os\n",
+    "from contextlib import closing\n",
+    "\n",
+    "import pyunicore.client as unicore_client\n",
+    "import requests"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "2da2cb6f-d6c6-4bbe-a7bb-8dd488615181",
+   "metadata": {},
+   "source": [
+    "During the login process in Jupyter-JSC, you have authenticated yourself against the identity management system [*Unity-IdM*](https://www.unity-idm.eu) .  \n",
+    "This IdM issues temporary tokens (comparable to user+password) on request, which can be use for authentication to other services that are also connected to the same IdM.  \n",
+    "Here we use the JupyterHub-API (+your JUPYTERHUB_API_TOKEN) to get a new temporary token for the next steps."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "id": "643d4c6b-927e-4d25-a3b0-1e6755a6cae3",
+   "metadata": {
+    "tags": []
+   },
+   "outputs": [],
+   "source": [
+    "def get_access_token():\n",
+    "    remote_node = os.getenv(\"REMOTE_NODE\")\n",
+    "    remote_hub_port = os.getenv(\"REMOTE_PORT\")\n",
+    "    hub_api_url = f\"http://{remote_node}:{remote_hub_port}/hub/api/user\"\n",
+    "    headers = {\"Authorization\": \"token {}\".format(os.getenv(\"JUPYTERHUB_API_TOKEN\"))}\n",
+    "    with closing(requests.get(hub_api_url, headers=headers)) as r:\n",
+    "        if r.status_code == 200:\n",
+    "            resp = json.loads(r.content.decode(\"utf-8\"))\n",
+    "        else:\n",
+    "            raise Exception(\n",
+    "                \"Could not receive access token: {} {}\".format(\n",
+    "                    r.status_code, r.content.decode(\"utf-8\")\n",
+    "                )\n",
+    "            )\n",
+    "    # No HPC accounts -> no access token in this script\n",
+    "    if (\n",
+    "        \"auth_state\" in resp.keys()\n",
+    "        and \"oauth_user\" in resp[\"auth_state\"].keys()\n",
+    "        and \"hpc_infos_attribute\" in resp[\"auth_state\"][\"oauth_user\"]\n",
+    "        and len(resp[\"auth_state\"][\"oauth_user\"][\"hpc_infos_attribute\"]) > 0\n",
+    "    ):\n",
+    "        return resp[\"auth_state\"][\"access_token\"]\n",
+    "    else:\n",
+    "        return None"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "540563d1-59ca-4d28-86f7-171c98310a68",
+   "metadata": {},
+   "source": [
+    "Having that `access_token` we can now ask unicore for information about the HPC account of the user the token belongs to.  \n",
+    "We will receive the `uid` and the base of all its home directories as `remote_base_dir`.  \n",
+    "\n",
+    "That information is required to ask the service [*UFTP*](https://apps.fz-juelich.de/jsc/hps/judac/uftp.html) all details needed for the mound command."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "aa5c5156-9afd-4b7b-a78f-7bb40aef2222",
+   "metadata": {},
+   "source": [
+    "**ATTENTION:** Set `ro` or `rw` for mounting readonly or writable"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "id": "78c3f65d-1039-482f-900b-c9b0173b490d",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "def get_mount_command(access_token):\n",
+    "    _auth = \"https://uftp.fz-juelich.de:9112/UFTP_Auth/rest/auth/\"\n",
+    "    _tr = unicore_client.Transport(access_token)\n",
+    "    _info = _tr.get(url=_auth)\n",
+    "    _uid = _info[\"JUDAC\"][\"uid\"]\n",
+    "    remote_base_dir = \"/p/home/jusers/%s\" % _uid\n",
+    "\n",
+    "    # authenticate\n",
+    "    _req = {\n",
+    "        \"persistent\": \"true\",\n",
+    "        \"serverPath\": \"%s/___UFTP___MULTI___FILE___SESSION___MODE___\" % remote_base_dir,\n",
+    "    }\n",
+    "    _reply = _tr.post(url=_auth + \"/JUDAC\", json=_req).json()\n",
+    "    uftp_pwd = _reply[\"secret\"]\n",
+    "    uftp_host = _reply[\"serverHost\"]\n",
+    "    uftp_port = _reply[\"serverPort\"]\n",
+    "    return f\"curlftpfs -s -o rw,uid=1094,gid=100,ftp_method=singlecwd,enable_epsv,user=anonymous:{uftp_pwd} {uftp_host}:{uftp_port}\""
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "e7f6af90-bd33-4a55-9659-973bcaa3da67",
+   "metadata": {},
+   "source": [
+    "------------------------------------\n",
+    "Let's bring all pieces together:"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "id": "b0fa1183-2983-4702-94b1-b4567fea4df3",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "curlftpfs -s -o rw,uid=1094,gid=100,ftp_method=singlecwd,enable_epsv,user= <...>\n"
+     ]
+    }
+   ],
+   "source": [
+    "access_token = get_access_token()\n",
+    "if not access_token:\n",
+    "    print(\"Error: No access token\")\n",
+    "mount_cmd = get_mount_command(access_token)\n",
+    "# e.g. curlftpfs -s -o ro,uid=1094,gid=100,ftp_method=singlecwd,enable_epsv,user=anonymous:fwngibbflwngfllaycpc judacsrv.fz-juelich.de:64333\n",
+    "print(mount_cmd.partition(\"anonymous:\")[0], \"<...>\") # do not print the token"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "id": "45c2ff24-a735-459a-8b53-ceeb74752635",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "%%bash -s \"$mount_cmd\"\n",
+    "mkdir -p $HOME/uftp-mount-rw\n",
+    "$1 $HOME/uftp-mount-rw"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "id": "30a5b1e5-4f11-465a-a27d-e0b2c5973ec0",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "total 68\n",
+      "drwx------ 3 jovyan users  4096 Mar 14 23:53 deep\n",
+      "drwx------ 3 jovyan users  4096 Mar 31 21:42 hdfml\n",
+      "drwx------ 3 jovyan users  4096 Mar 25 11:11 judac\n",
+      "drwx------ 3 jovyan users 16384 Apr  5  2022 jureca\n",
+      "drwx------ 3 jovyan users  4096 Aug 14  2021 juropa3exp\n",
+      "drwx------ 3 jovyan users 16384 Mar 31 23:15 jusuf\n",
+      "drwx------ 3 jovyan users 16384 Apr  1 10:45 juwels\n",
+      "drwx------ 3 jovyan users  4096 Mar  9 21:50 shared\n"
+     ]
+    }
+   ],
+   "source": [
+    "# ...\n",
+    "!ls -l $HOME/uftp-mount-rw"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "5a4ff2ac-8731-4ce2-ab79-e89b6d3887a6",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "# unmount\n",
+    "!fusermount -u $HOME/uftp-mount-rw"
+   ]
+  }
+ ],
+ "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.8.5"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/day2_hpcenv/8_my_own_jupyterlab/1-JupyterLab-from-condaforge.ipynb b/day2_hpcenv/8_my_own_jupyterlab/1-JupyterLab-from-condaforge.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..2485b2007a94f6cb73a900a773f19a2ddb58252b
--- /dev/null
+++ b/day2_hpcenv/8_my_own_jupyterlab/1-JupyterLab-from-condaforge.ipynb
@@ -0,0 +1,1077 @@
+{
+ "cells": [
+  {
+   "attachments": {
+    "67258d94-84e6-4a0c-ae8f-c74332ec082e.jpg": {
+     "image/jpeg": "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"
+    }
+   },
+   "cell_type": "markdown",
+   "id": "f7b6c34a-a874-4158-8015-3802bb5b3c01",
+   "metadata": {
+    "tags": [],
+    "toc-hr-collapsed": false
+   },
+   "source": [
+    "![jsc-logo.jpg](attachment:67258d94-84e6-4a0c-ae8f-c74332ec082e.jpg)\n",
+    "Author: [Jens Henrik Göbbert](mailto:j.goebbert@fz-juelich.de)\n",
+    "------------------------------------"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "665ed8a0-c103-4e27-912b-8dd9993cddbd",
+   "metadata": {},
+   "source": [
+    "# Supercomputing with JupyterLab - Tips & Tricks\n",
+    "\n",
+    "This is the first time you are using JupyterLab on an HPC system? Let us show you some tips & tricks.\n",
+    "\n",
+    "This notebook might be special to the environment at Juelich Supercomputing Centre, Forschungszentrum Juelich, Germany.\n",
+    "\n",
+    "-------------------------"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "adopted-characterization",
+   "metadata": {},
+   "source": [
+    "### Install your own JupyterLab from conda\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "extended-response",
+   "metadata": {},
+   "source": [
+    "### Prepare Conda Settings"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "alternative-paris",
+   "metadata": {},
+   "source": [
+    "Selectable **CONDA_TARGET_DIR** path for the central conda installation, should be in the project filesystem"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 1,
+   "id": "streaming-commissioner",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "/p/project/coecschool22/goebbert1/miniconda3\n"
+     ]
+    }
+   ],
+   "source": [
+    "export CONDA_TARGET_DIR=${PROJECT}/${USER}/miniconda3 ## ${HOME}/miniconda3\n",
+    "echo $CONDA_TARGET_DIR # double check"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "operating-soviet",
+   "metadata": {},
+   "source": [
+    "Selectable **CONDA_ENV** name, will be used to specify the environment name\n",
+    "  - must be lowercase"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 2,
+   "id": "related-sessions",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "my_jupyterlab3\n"
+     ]
+    }
+   ],
+   "source": [
+    "CONDA_ENV=my_jupyterlab3\n",
+    "\n",
+    "export CONDA_ENV=$(echo \"${CONDA_ENV}\" | awk '{print tolower($0)}')\n",
+    "echo ${CONDA_ENV} # double check"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "olive-table",
+   "metadata": {},
+   "source": [
+    "---\n",
+    "## 1. Download/Install Miniconda"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "confidential-pharmacy",
+   "metadata": {},
+   "source": [
+    "Start here if you want to run the full installation.\n",
+    "If you want to create another environment in an existing conda setup go to **create environment**.  \n",
+    "If you want to attach yourself to an existing environment go to **create user kernel**."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "composed-spending",
+   "metadata": {},
+   "source": [
+    "* 1.1 - Download Minconda installer"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 3,
+   "id": "adapted-constraint",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "--2022-10-24 23:39:44--  https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh\n",
+      "Resolving repo.continuum.io (repo.continuum.io)... 104.18.200.79, 104.18.201.79, 2606:4700::6812:c94f, ...\n",
+      "Connecting to repo.continuum.io (repo.continuum.io)|104.18.200.79|:443... connected.\n",
+      "HTTP request sent, awaiting response... 301 Moved Permanently\n",
+      "Location: https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh [following]\n",
+      "--2022-10-24 23:39:44--  https://repo.anaconda.com/miniconda/Miniconda3-latest-Linux-x86_64.sh\n",
+      "Resolving repo.anaconda.com (repo.anaconda.com)... 104.16.130.3, 104.16.131.3, 2606:4700::6810:8203, ...\n",
+      "Connecting to repo.anaconda.com (repo.anaconda.com)|104.16.130.3|:443... connected.\n",
+      "HTTP request sent, awaiting response... 200 OK\n",
+      "Length: 76607678 (73M) [application/x-sh]\n",
+      "Saving to: ‘/p/project/ccstvs/goebbert1/home_juwels/Miniconda3.sh’\n",
+      "\n",
+      "/p/project/ccstvs/g 100%[===================>]  73.06M  61.7MB/s    in 1.2s    \n",
+      "\n",
+      "2022-10-24 23:39:45 (61.7 MB/s) - ‘/p/project/ccstvs/goebbert1/home_juwels/Miniconda3.sh’ saved [76607678/76607678]\n",
+      "\n"
+     ]
+    }
+   ],
+   "source": [
+    "wget --output-document=$HOME/Miniconda3.sh https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "substantial-provider",
+   "metadata": {},
+   "source": [
+    "* 1.2 - Create target directory"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 4,
+   "id": "secret-maker",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "/p/project/coecschool22/goebbert1/miniconda3\n"
+     ]
+    }
+   ],
+   "source": [
+    "mkdir -p ${CONDA_TARGET_DIR}\n",
+    "echo $CONDA_TARGET_DIR # double check"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "streaming-shopping",
+   "metadata": {},
+   "source": [
+    "* 1.3 - Install Miniconda"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 5,
+   "id": "characteristic-woman",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "PREFIX=/p/project/coecschool22/goebbert1/miniconda3\n",
+      "Unpacking payload ...\n",
+      "Collecting package metadata (current_repodata.json): done                       \n",
+      "Solving environment: done\n",
+      "\n",
+      "## Package Plan ##\n",
+      "\n",
+      "  environment location: /p/project/coecschool22/goebbert1/miniconda3\n",
+      "\n",
+      "  added / updated specs:\n",
+      "    - _libgcc_mutex==0.1=main\n",
+      "    - _openmp_mutex==4.5=1_gnu\n",
+      "    - brotlipy==0.7.0=py39h27cfd23_1003\n",
+      "    - ca-certificates==2022.3.29=h06a4308_1\n",
+      "    - certifi==2021.10.8=py39h06a4308_2\n",
+      "    - cffi==1.15.0=py39hd667e15_1\n",
+      "    - charset-normalizer==2.0.4=pyhd3eb1b0_0\n",
+      "    - colorama==0.4.4=pyhd3eb1b0_0\n",
+      "    - conda-content-trust==0.1.1=pyhd3eb1b0_0\n",
+      "    - conda-package-handling==1.8.1=py39h7f8727e_0\n",
+      "    - conda==4.12.0=py39h06a4308_0\n",
+      "    - cryptography==36.0.0=py39h9ce1e76_0\n",
+      "    - idna==3.3=pyhd3eb1b0_0\n",
+      "    - ld_impl_linux-64==2.35.1=h7274673_9\n",
+      "    - libffi==3.3=he6710b0_2\n",
+      "    - libgcc-ng==9.3.0=h5101ec6_17\n",
+      "    - libgomp==9.3.0=h5101ec6_17\n",
+      "    - libstdcxx-ng==9.3.0=hd4cf53a_17\n",
+      "    - ncurses==6.3=h7f8727e_2\n",
+      "    - openssl==1.1.1n=h7f8727e_0\n",
+      "    - pip==21.2.4=py39h06a4308_0\n",
+      "    - pycosat==0.6.3=py39h27cfd23_0\n",
+      "    - pycparser==2.21=pyhd3eb1b0_0\n",
+      "    - pyopenssl==22.0.0=pyhd3eb1b0_0\n",
+      "    - pysocks==1.7.1=py39h06a4308_0\n",
+      "    - python==3.9.12=h12debd9_0\n",
+      "    - readline==8.1.2=h7f8727e_1\n",
+      "    - requests==2.27.1=pyhd3eb1b0_0\n",
+      "    - ruamel_yaml==0.15.100=py39h27cfd23_0\n",
+      "    - setuptools==61.2.0=py39h06a4308_0\n",
+      "    - six==1.16.0=pyhd3eb1b0_1\n",
+      "    - sqlite==3.38.2=hc218d9a_0\n",
+      "    - tk==8.6.11=h1ccaba5_0\n",
+      "    - tqdm==4.63.0=pyhd3eb1b0_0\n",
+      "    - tzdata==2022a=hda174b7_0\n",
+      "    - urllib3==1.26.8=pyhd3eb1b0_0\n",
+      "    - wheel==0.37.1=pyhd3eb1b0_0\n",
+      "    - xz==5.2.5=h7b6447c_0\n",
+      "    - yaml==0.2.5=h7b6447c_0\n",
+      "    - zlib==1.2.12=h7f8727e_1\n",
+      "\n",
+      "\n",
+      "The following NEW packages will be INSTALLED:\n",
+      "\n",
+      "  _libgcc_mutex      pkgs/main/linux-64::_libgcc_mutex-0.1-main\n",
+      "  _openmp_mutex      pkgs/main/linux-64::_openmp_mutex-4.5-1_gnu\n",
+      "  brotlipy           pkgs/main/linux-64::brotlipy-0.7.0-py39h27cfd23_1003\n",
+      "  ca-certificates    pkgs/main/linux-64::ca-certificates-2022.3.29-h06a4308_1\n",
+      "  certifi            pkgs/main/linux-64::certifi-2021.10.8-py39h06a4308_2\n",
+      "  cffi               pkgs/main/linux-64::cffi-1.15.0-py39hd667e15_1\n",
+      "  charset-normalizer pkgs/main/noarch::charset-normalizer-2.0.4-pyhd3eb1b0_0\n",
+      "  colorama           pkgs/main/noarch::colorama-0.4.4-pyhd3eb1b0_0\n",
+      "  conda              pkgs/main/linux-64::conda-4.12.0-py39h06a4308_0\n",
+      "  conda-content-tru~ pkgs/main/noarch::conda-content-trust-0.1.1-pyhd3eb1b0_0\n",
+      "  conda-package-han~ pkgs/main/linux-64::conda-package-handling-1.8.1-py39h7f8727e_0\n",
+      "  cryptography       pkgs/main/linux-64::cryptography-36.0.0-py39h9ce1e76_0\n",
+      "  idna               pkgs/main/noarch::idna-3.3-pyhd3eb1b0_0\n",
+      "  ld_impl_linux-64   pkgs/main/linux-64::ld_impl_linux-64-2.35.1-h7274673_9\n",
+      "  libffi             pkgs/main/linux-64::libffi-3.3-he6710b0_2\n",
+      "  libgcc-ng          pkgs/main/linux-64::libgcc-ng-9.3.0-h5101ec6_17\n",
+      "  libgomp            pkgs/main/linux-64::libgomp-9.3.0-h5101ec6_17\n",
+      "  libstdcxx-ng       pkgs/main/linux-64::libstdcxx-ng-9.3.0-hd4cf53a_17\n",
+      "  ncurses            pkgs/main/linux-64::ncurses-6.3-h7f8727e_2\n",
+      "  openssl            pkgs/main/linux-64::openssl-1.1.1n-h7f8727e_0\n",
+      "  pip                pkgs/main/linux-64::pip-21.2.4-py39h06a4308_0\n",
+      "  pycosat            pkgs/main/linux-64::pycosat-0.6.3-py39h27cfd23_0\n",
+      "  pycparser          pkgs/main/noarch::pycparser-2.21-pyhd3eb1b0_0\n",
+      "  pyopenssl          pkgs/main/noarch::pyopenssl-22.0.0-pyhd3eb1b0_0\n",
+      "  pysocks            pkgs/main/linux-64::pysocks-1.7.1-py39h06a4308_0\n",
+      "  python             pkgs/main/linux-64::python-3.9.12-h12debd9_0\n",
+      "  readline           pkgs/main/linux-64::readline-8.1.2-h7f8727e_1\n",
+      "  requests           pkgs/main/noarch::requests-2.27.1-pyhd3eb1b0_0\n",
+      "  ruamel_yaml        pkgs/main/linux-64::ruamel_yaml-0.15.100-py39h27cfd23_0\n",
+      "  setuptools         pkgs/main/linux-64::setuptools-61.2.0-py39h06a4308_0\n",
+      "  six                pkgs/main/noarch::six-1.16.0-pyhd3eb1b0_1\n",
+      "  sqlite             pkgs/main/linux-64::sqlite-3.38.2-hc218d9a_0\n",
+      "  tk                 pkgs/main/linux-64::tk-8.6.11-h1ccaba5_0\n",
+      "  tqdm               pkgs/main/noarch::tqdm-4.63.0-pyhd3eb1b0_0\n",
+      "  tzdata             pkgs/main/noarch::tzdata-2022a-hda174b7_0\n",
+      "  urllib3            pkgs/main/noarch::urllib3-1.26.8-pyhd3eb1b0_0\n",
+      "  wheel              pkgs/main/noarch::wheel-0.37.1-pyhd3eb1b0_0\n",
+      "  xz                 pkgs/main/linux-64::xz-5.2.5-h7b6447c_0\n",
+      "  yaml               pkgs/main/linux-64::yaml-0.2.5-h7b6447c_0\n",
+      "  zlib               pkgs/main/linux-64::zlib-1.2.12-h7f8727e_1\n",
+      "\n",
+      "\n",
+      "Preparing transaction: done\n",
+      "Executing transaction: done\n",
+      "installation finished.\n",
+      "WARNING:\n",
+      "    You currently have a PYTHONPATH environment variable set. This may cause\n",
+      "    unexpected behavior when running the Python interpreter in Miniconda3.\n",
+      "    For best results, please verify that your PYTHONPATH only points to\n",
+      "    directories of packages that are compatible with the Python interpreter\n",
+      "    in Miniconda3: /p/project/coecschool22/goebbert1/miniconda3\n"
+     ]
+    }
+   ],
+   "source": [
+    "bash $HOME/Miniconda3.sh -b -u -p ${CONDA_TARGET_DIR}"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 6,
+   "id": "intellectual-pipeline",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "/p/software/juwels/stages/2022/software/JupyterKernel-PyDeepLearning/1.1-gcccoremkl-11.2.0-2021.4.0-2022.3.4/lib/python3.9/site-packages:/p/software/juwels/stages/2022/software/JupyterKernel-Octave/6.4.0-gcccoremkl-11.2.0-2021.4.0-2022.3.4/lib/python3.9/site-packages:/p/software/juwels/stages/2022/software/JupyterKernel-Julia/1.7.1-gcccoremkl-11.2.0-2021.4.0-2022.3.4/lib/python3.9/site-packages:/p/software/juwels/stages/2022/software/JupyterKernel-Cling/0.9-gcccoremkl-11.2.0-2021.4.0-2022.3.4/lib/python3.9/site-packages:/p/software/juwels/stages/2022/software/JupyterKernel-Bash/0.7.2-gcccoremkl-11.2.0-2021.4.0-2022.3.4/lib/python3.9/site-packages:/p/software/juwels/stages/2022/software/JupyterProxy-XpraHTML5/0.3.4-gcccoremkl-11.2.0-2021.4.0-2022.3.4/lib/python3.9/site-packages:/p/software/juwels/stages/2022/software/Jupyter/2022.3.4-gcccoremkl-11.2.0-2021.4.0/lib/python3.9/site-packages:/p/software/juwels/stages/2022/software/Shapely/1.8.0-GCCcore-11.2.0/lib/python3.9/site-packages:/p/software/juwels/stages/2022/software/numba/0.55.1-gcccoremkl-11.2.0-2021.4.0/lib/python3.9/site-packages:/p/software/juwels/stages/2022/software/scikit-image/0.18.3-gcccoremkl-11.2.0-2021.4.0/lib/python3.9/site-packages:/p/software/juwels/stages/2022/software/dask/2021.9.1-gcccoremkl-11.2.0-2021.4.0/lib/python3.9/site-packages:/p/software/juwels/stages/2022/software/bokeh/2.4.1-gcccoremkl-11.2.0-2021.4.0/lib/python3.9/site-packages:/p/software/juwels/stages/2022/software/typing-extensions/3.10.0.0-GCCcore-11.2.0/lib/python3.9/site-packages:/p/software/juwels/stages/2022/software/PyYAML/5.4.1-GCCcore-11.2.0/lib/python3.9/site-packages:/p/software/juwels/stages/2022/software/scikit-learn/1.0.1-gcccoremkl-11.2.0-2021.4.0/lib/python3.9/site-packages:/p/software/juwels/stages/2022/software/scikit-build/0.11.1-GCCcore-11.2.0/lib/python3.9/site-packages:/p/software/juwels/stages/2022/software/xarray/0.20.1-gcccoremkl-11.2.0-2021.4.0/lib/python3.9/site-packages:/p/software/juwels/stages/2022/software/sympy/1.8-gcccoremkl-11.2.0-2021.4.0/lib/python3.9/site-packages:/p/software/juwels/stages/2022/software/gmpy2/2.1.0b5-gcccoremkl-11.2.0-2021.4.0/lib/python3.9/site-packages:/p/software/juwels/stages/2022/software/Seaborn/0.11.2-gcccoremkl-11.2.0-2021.4.0/lib/python3.9/site-packages:/p/software/juwels/stages/2022/software/matplotlib/3.4.3-gcccoremkl-11.2.0-2021.4.0/lib/python3.9/site-packages:/p/software/juwels/stages/2022/software/Pillow-SIMD/9.0.1-GCCcore-11.2.0/lib/python3.9/site-packages:/p/software/juwels/stages/2022/software/Tkinter/3.9.6-GCCcore-11.2.0/lib/python3.9/site-packages:/p/software/juwels/stages/2022/software/netcdf4-python/1.5.7-GCCcore-11.2.0-serial/lib/python3.9/site-packages:/p/software/juwels/stages/2022/software/h5py/3.5.0-GCCcore-11.2.0-serial/lib/python3.9/site-packages:/p/software/juwels/stages/2022/software/ITK/5.2.1-GCCcore-11.2.0-nompi/lib/python3.9/site-packages:/p/software/juwels/stages/2022/software/SciPy-bundle/2021.10-gcccoremkl-11.2.0-2021.4.0/lib/python3.9/site-packages:/p/software/juwels/stages/2022/software/pybind11/2.7.1-GCCcore-11.2.0/lib/python3.9/site-packages:/p/software/juwels/stages/2022/software/Python/3.9.6-GCCcore-11.2.0/easybuild/python\n"
+     ]
+    }
+   ],
+   "source": [
+    "# verify that PYTHONPATH only points to directories of packages\n",
+    "# that are compatible with the Python interpreter in Miniconda3\n",
+    "echo $PYTHONPATH"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 7,
+   "id": "boring-tokyo",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "\n"
+     ]
+    }
+   ],
+   "source": [
+    "# for now we unset the PYTHONPATH\n",
+    "# if you want to use modules with conda, you might need to think about this step again\n",
+    "unset PYTHONPATH\n",
+    "echo $PYTHONPATH"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 8,
+   "id": "defensive-retail",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "no change     /p/project/coecschool22/goebbert1/miniconda3/condabin/conda\n",
+      "no change     /p/project/coecschool22/goebbert1/miniconda3/bin/conda\n",
+      "no change     /p/project/coecschool22/goebbert1/miniconda3/bin/conda-env\n",
+      "no change     /p/project/coecschool22/goebbert1/miniconda3/bin/activate\n",
+      "no change     /p/project/coecschool22/goebbert1/miniconda3/bin/deactivate\n",
+      "no change     /p/project/coecschool22/goebbert1/miniconda3/etc/profile.d/conda.sh\n",
+      "no change     /p/project/coecschool22/goebbert1/miniconda3/etc/fish/conf.d/conda.fish\n",
+      "no change     /p/project/coecschool22/goebbert1/miniconda3/shell/condabin/Conda.psm1\n",
+      "no change     /p/project/coecschool22/goebbert1/miniconda3/shell/condabin/conda-hook.ps1\n",
+      "no change     /p/project/coecschool22/goebbert1/miniconda3/lib/python3.9/site-packages/xontrib/conda.xsh\n",
+      "no change     /p/project/coecschool22/goebbert1/miniconda3/etc/profile.d/conda.csh\n",
+      "modified      /p/project/ccstvs/goebbert1/home_juwels/.bashrc\n",
+      "\n",
+      "==> For changes to take effect, close and re-open your current shell. <==\n",
+      "\n"
+     ]
+    }
+   ],
+   "source": [
+    "${CONDA_TARGET_DIR}/bin/conda init bash"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "furnished-infrared",
+   "metadata": {},
+   "source": [
+    "**ATTENTION:** Conda modifies $HOME/.bashrc\n",
+    "\n",
+    "```bash\n",
+    "# >>> conda initialize >>>\n",
+    "# !! Contents within this block are managed by 'conda init' !!\n",
+    "__conda_setup=\"$('/home/jovyan/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)\"\n",
+    "if [ $? -eq 0 ]; then\n",
+    "    eval \"$__conda_setup\"\n",
+    "else\n",
+    "    if [ -f \"/home/jovyan/miniconda3/etc/profile.d/conda.sh\" ]; then\n",
+    "        . \"/home/jovyan/miniconda3/etc/profile.d/conda.sh\"\n",
+    "    else\n",
+    "        export PATH=\"/home/jovyan/miniconda3/bin:$PATH\"\n",
+    "    fi\n",
+    "fi\n",
+    "unset __conda_setup\n",
+    "# <<< conda initialize <<<\n",
+    "```"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "textile-vacation",
+   "metadata": {},
+   "source": [
+    "* 1.4 - Disable automatic activation"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 9,
+   "id": "proved-version",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "${CONDA_TARGET_DIR}/bin/conda config --set auto_activate_base false"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "surprised-carolina",
+   "metadata": {},
+   "source": [
+    "---\n",
+    "## 2. Create conda environment with JupyterLab 3 installed"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "offensive-crack",
+   "metadata": {},
+   "source": [
+    "Create new conda environment. The following steps can be repeated if multiple environments should be created. If the Python version differ towards the external Python version, a mix of Conda modules and external modules will not be possible"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 10,
+   "id": "central-rebecca",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Collecting package metadata (current_repodata.json): done\n",
+      "Solving environment: done\n",
+      "\n",
+      "## Package Plan ##\n",
+      "\n",
+      "  environment location: /p/project/coecschool22/goebbert1/miniconda3/envs/my_jupyterlab3\n",
+      "\n",
+      "  added / updated specs:\n",
+      "    - ipywidgets\n",
+      "    - jupyterlab=3\n",
+      "    - matplotlib\n",
+      "    - nodejs\n",
+      "    - pandas=0.24\n",
+      "    - pip\n",
+      "\n",
+      "\n",
+      "The following packages will be downloaded:\n",
+      "\n",
+      "    package                    |            build\n",
+      "    ---------------------------|-----------------\n",
+      "    _libgcc_mutex-0.1          |      conda_forge           3 KB  conda-forge\n",
+      "    _openmp_mutex-4.5          |            2_gnu          23 KB  conda-forge\n",
+      "    anyio-3.6.2                |     pyhd8ed1ab_0          83 KB  conda-forge\n",
+      "    argon2-cffi-21.3.0         |     pyhd8ed1ab_0          15 KB  conda-forge\n",
+      "    argon2-cffi-bindings-21.2.0|   py38h0a891b7_2          34 KB  conda-forge\n",
+      "    asttokens-2.0.8            |     pyhd8ed1ab_0          24 KB  conda-forge\n",
+      "    attrs-22.1.0               |     pyh71513ae_1          48 KB  conda-forge\n",
+      "    babel-2.10.3               |     pyhd8ed1ab_0         6.7 MB  conda-forge\n",
+      "    backcall-0.2.0             |     pyh9f0ad1d_0          13 KB  conda-forge\n",
+      "    backports-1.0              |             py_2           4 KB  conda-forge\n",
+      "    backports.functools_lru_cache-1.6.4|     pyhd8ed1ab_0           9 KB  conda-forge\n",
+      "    beautifulsoup4-4.11.1      |     pyha770c72_0          96 KB  conda-forge\n",
+      "    bleach-5.0.1               |     pyhd8ed1ab_0         124 KB  conda-forge\n",
+      "    brotlipy-0.7.0             |py38h0a891b7_1004         342 KB  conda-forge\n",
+      "    bzip2-1.0.8                |       h7f98852_4         484 KB  conda-forge\n",
+      "    ca-certificates-2022.9.24  |       ha878542_0         150 KB  conda-forge\n",
+      "    certifi-2022.9.24          |     pyhd8ed1ab_0         155 KB  conda-forge\n",
+      "    cffi-1.15.1                |   py38h4a40e3a_1         229 KB  conda-forge\n",
+      "    charset-normalizer-2.1.1   |     pyhd8ed1ab_0          36 KB  conda-forge\n",
+      "    cryptography-38.0.2        |   py38h80a4ca7_1         1.6 MB  conda-forge\n",
+      "    cycler-0.11.0              |     pyhd8ed1ab_0          10 KB  conda-forge\n",
+      "    debugpy-1.6.3              |   py38hfa26641_0         2.0 MB  conda-forge\n",
+      "    decorator-5.1.1            |     pyhd8ed1ab_0          12 KB  conda-forge\n",
+      "    defusedxml-0.7.1           |     pyhd8ed1ab_0          23 KB  conda-forge\n",
+      "    entrypoints-0.4            |     pyhd8ed1ab_0           9 KB  conda-forge\n",
+      "    executing-1.1.1            |     pyhd8ed1ab_0          23 KB  conda-forge\n",
+      "    flit-core-3.7.1            |     pyhd8ed1ab_0          44 KB  conda-forge\n",
+      "    freetype-2.12.1            |       hca18f0e_0         884 KB  conda-forge\n",
+      "    icu-67.1                   |       he1b5a44_0        12.9 MB  conda-forge\n",
+      "    idna-3.4                   |     pyhd8ed1ab_0          55 KB  conda-forge\n",
+      "    importlib-metadata-4.11.4  |   py38h578d9bd_0          33 KB  conda-forge\n",
+      "    importlib_resources-5.10.0 |     pyhd8ed1ab_0          29 KB  conda-forge\n",
+      "    ipykernel-6.16.1           |     pyh210e3f2_0         100 KB  conda-forge\n",
+      "    ipython-8.5.0              |     pyh41d4057_1         552 KB  conda-forge\n",
+      "    ipython_genutils-0.2.0     |             py_1          21 KB  conda-forge\n",
+      "    ipywidgets-8.0.2           |     pyhd8ed1ab_1         109 KB  conda-forge\n",
+      "    jedi-0.18.1                |     pyhd8ed1ab_2         799 KB  conda-forge\n",
+      "    jinja2-3.1.2               |     pyhd8ed1ab_1          99 KB  conda-forge\n",
+      "    json5-0.9.5                |     pyh9f0ad1d_0          20 KB  conda-forge\n",
+      "    jsonschema-4.16.0          |     pyhd8ed1ab_0          65 KB  conda-forge\n",
+      "    jupyter_client-7.4.3       |     pyhd8ed1ab_0          91 KB  conda-forge\n",
+      "    jupyter_core-4.11.1        |   py38h578d9bd_0          81 KB  conda-forge\n",
+      "    jupyter_server-1.21.0      |     pyhd8ed1ab_0         239 KB  conda-forge\n",
+      "    jupyterlab-3.5.0           |     pyhd8ed1ab_0         6.0 MB  conda-forge\n",
+      "    jupyterlab_pygments-0.2.2  |     pyhd8ed1ab_0          17 KB  conda-forge\n",
+      "    jupyterlab_server-2.16.1   |     pyhd8ed1ab_0          49 KB  conda-forge\n",
+      "    jupyterlab_widgets-3.0.3   |     pyhd8ed1ab_0         222 KB  conda-forge\n",
+      "    kiwisolver-1.4.4           |   py38h43d8883_0          76 KB  conda-forge\n",
+      "    ld_impl_linux-64-2.39      |       hc81fddc_0         759 KB  conda-forge\n",
+      "    libblas-3.9.0              |16_linux64_openblas          13 KB  conda-forge\n",
+      "    libcblas-3.9.0             |16_linux64_openblas          13 KB  conda-forge\n",
+      "    libffi-3.4.2               |       h7f98852_5          57 KB  conda-forge\n",
+      "    libgcc-7.2.0               |       h69d50b8_2         304 KB  conda-forge\n",
+      "    libgcc-ng-12.2.0           |      h65d4601_19         931 KB  conda-forge\n",
+      "    libgfortran-ng-12.2.0      |      h69a702a_19          22 KB  conda-forge\n",
+      "    libgfortran5-12.2.0        |      h337968e_19         1.8 MB  conda-forge\n",
+      "    libgomp-12.2.0             |      h65d4601_19         455 KB  conda-forge\n",
+      "    liblapack-3.9.0            |16_linux64_openblas          13 KB  conda-forge\n",
+      "    libnsl-2.0.0               |       h7f98852_0          31 KB  conda-forge\n",
+      "    libopenblas-0.3.21         |pthreads_h78a6416_3        10.1 MB  conda-forge\n",
+      "    libpng-1.6.38              |       h753d276_0         371 KB  conda-forge\n",
+      "    libsodium-1.0.18           |       h36c2ea0_1         366 KB  conda-forge\n",
+      "    libsqlite-3.39.4           |       h753d276_0         803 KB  conda-forge\n",
+      "    libstdcxx-ng-12.2.0        |      h46fd767_19         4.3 MB  conda-forge\n",
+      "    libuuid-2.32.1             |    h7f98852_1000          28 KB  conda-forge\n",
+      "    libzlib-1.2.13             |       h166bdaf_4          64 KB  conda-forge\n",
+      "    markupsafe-2.1.1           |   py38h0a891b7_1          22 KB  conda-forge\n",
+      "    matplotlib-3.2.2           |                1           6 KB  conda-forge\n",
+      "    matplotlib-base-3.2.2      |   py38h5d868c9_1         7.1 MB  conda-forge\n",
+      "    matplotlib-inline-0.1.6    |     pyhd8ed1ab_0          12 KB  conda-forge\n",
+      "    mistune-2.0.4              |     pyhd8ed1ab_0          67 KB  conda-forge\n",
+      "    nbclassic-0.4.5            |     pyhd8ed1ab_0         7.7 MB  conda-forge\n",
+      "    nbclient-0.7.0             |     pyhd8ed1ab_0          65 KB  conda-forge\n",
+      "    nbconvert-7.2.2            |     pyhd8ed1ab_0           6 KB  conda-forge\n",
+      "    nbconvert-core-7.2.2       |     pyhd8ed1ab_0         189 KB  conda-forge\n",
+      "    nbconvert-pandoc-7.2.2     |     pyhd8ed1ab_0           5 KB  conda-forge\n",
+      "    nbformat-5.7.0             |     pyhd8ed1ab_0         106 KB  conda-forge\n",
+      "    ncurses-6.3                |       h27087fc_1        1002 KB  conda-forge\n",
+      "    nest-asyncio-1.5.6         |     pyhd8ed1ab_0          10 KB  conda-forge\n",
+      "    nodejs-6.13.1              |                0        11.9 MB  conda-forge\n",
+      "    notebook-6.5.1             |     pyha770c72_0         266 KB  conda-forge\n",
+      "    notebook-shim-0.2.0        |     pyhd8ed1ab_0          15 KB  conda-forge\n",
+      "    numpy-1.23.4               |   py38h7042d01_0         7.1 MB  conda-forge\n",
+      "    openssl-3.0.5              |       h166bdaf_2         2.8 MB  conda-forge\n",
+      "    packaging-21.3             |     pyhd8ed1ab_0          36 KB  conda-forge\n",
+      "    pandas-0.24.2              |   py38hb3f55d8_1        11.5 MB  conda-forge\n",
+      "    pandoc-2.19.2              |       h32600fe_1        30.0 MB  conda-forge\n",
+      "    pandocfilters-1.5.0        |     pyhd8ed1ab_0          11 KB  conda-forge\n",
+      "    parso-0.8.3                |     pyhd8ed1ab_0          69 KB  conda-forge\n",
+      "    pexpect-4.8.0              |     pyh9f0ad1d_2          47 KB  conda-forge\n",
+      "    pickleshare-0.7.5          |          py_1003           9 KB  conda-forge\n",
+      "    pip-22.3                   |     pyhd8ed1ab_0         1.5 MB  conda-forge\n",
+      "    pkgutil-resolve-name-1.3.10|     pyhd8ed1ab_0           9 KB  conda-forge\n",
+      "    prometheus_client-0.15.0   |     pyhd8ed1ab_0          50 KB  conda-forge\n",
+      "    prompt-toolkit-3.0.31      |     pyha770c72_0         254 KB  conda-forge\n",
+      "    psutil-5.9.3               |   py38h0a891b7_0         348 KB  conda-forge\n",
+      "    ptyprocess-0.7.0           |     pyhd3deb0d_0          16 KB  conda-forge\n",
+      "    pure_eval-0.2.2            |     pyhd8ed1ab_0          14 KB  conda-forge\n",
+      "    pycparser-2.21             |     pyhd8ed1ab_0         100 KB  conda-forge\n",
+      "    pygments-2.13.0            |     pyhd8ed1ab_0         821 KB  conda-forge\n",
+      "    pyopenssl-22.1.0           |     pyhd8ed1ab_0         122 KB  conda-forge\n",
+      "    pyparsing-3.0.9            |     pyhd8ed1ab_0          79 KB  conda-forge\n",
+      "    pyrsistent-0.18.1          |   py38h0a891b7_1          92 KB  conda-forge\n",
+      "    pysocks-1.7.1              |     pyha2e5f31_6          19 KB  conda-forge\n",
+      "    python-3.8.13              |ha86cf86_0_cpython        25.2 MB  conda-forge\n",
+      "    python-dateutil-2.8.2      |     pyhd8ed1ab_0         240 KB  conda-forge\n",
+      "    python-fastjsonschema-2.16.2|     pyhd8ed1ab_0         242 KB  conda-forge\n",
+      "    python_abi-3.8             |           2_cp38           4 KB  conda-forge\n",
+      "    pytz-2022.5                |     pyhd8ed1ab_0         238 KB  conda-forge\n",
+      "    pyzmq-24.0.1               |   py38hfc09fa9_0         508 KB  conda-forge\n",
+      "    readline-8.1.2             |       h0f457ee_0         291 KB  conda-forge\n",
+      "    requests-2.28.1            |     pyhd8ed1ab_1          53 KB  conda-forge\n",
+      "    send2trash-1.8.0           |     pyhd8ed1ab_0          17 KB  conda-forge\n",
+      "    setuptools-59.8.0          |   py38h578d9bd_1        1017 KB  conda-forge\n",
+      "    six-1.16.0                 |     pyh6c4a22f_0          14 KB  conda-forge\n",
+      "    sniffio-1.3.0              |     pyhd8ed1ab_0          14 KB  conda-forge\n",
+      "    soupsieve-2.3.2.post1      |     pyhd8ed1ab_0          34 KB  conda-forge\n",
+      "    sqlite-3.39.4              |       h4ff8645_0         789 KB  conda-forge\n",
+      "    stack_data-0.5.1           |     pyhd8ed1ab_0          24 KB  conda-forge\n",
+      "    terminado-0.16.0           |     pyh41d4057_0          18 KB  conda-forge\n",
+      "    tinycss2-1.2.1             |     pyhd8ed1ab_0          23 KB  conda-forge\n",
+      "    tk-8.6.12                  |       h27826a3_0         3.3 MB  conda-forge\n",
+      "    tomli-2.0.1                |     pyhd8ed1ab_0          16 KB  conda-forge\n",
+      "    tornado-6.2                |   py38h0a891b7_0         653 KB  conda-forge\n",
+      "    traitlets-5.5.0            |     pyhd8ed1ab_0          85 KB  conda-forge\n",
+      "    typing_extensions-4.4.0    |     pyha770c72_0          29 KB  conda-forge\n",
+      "    urllib3-1.26.11            |     pyhd8ed1ab_0         102 KB  conda-forge\n",
+      "    wcwidth-0.2.5              |     pyh9f0ad1d_2          33 KB  conda-forge\n",
+      "    webencodings-0.5.1         |             py_1          12 KB  conda-forge\n",
+      "    websocket-client-1.4.1     |     pyhd8ed1ab_0          42 KB  conda-forge\n",
+      "    wheel-0.37.1               |     pyhd8ed1ab_0          31 KB  conda-forge\n",
+      "    widgetsnbextension-4.0.3   |     pyhd8ed1ab_0         1.6 MB  conda-forge\n",
+      "    xz-5.2.6                   |       h166bdaf_0         409 KB  conda-forge\n",
+      "    zeromq-4.3.4               |       h9c3ff4c_1         351 KB  conda-forge\n",
+      "    zipp-3.9.0                 |     pyhd8ed1ab_0          13 KB  conda-forge\n",
+      "    ------------------------------------------------------------\n",
+      "                                           Total:       173.3 MB\n",
+      "\n",
+      "The following NEW packages will be INSTALLED:\n",
+      "\n",
+      "  _libgcc_mutex      conda-forge/linux-64::_libgcc_mutex-0.1-conda_forge\n",
+      "  _openmp_mutex      conda-forge/linux-64::_openmp_mutex-4.5-2_gnu\n",
+      "  anyio              conda-forge/noarch::anyio-3.6.2-pyhd8ed1ab_0\n",
+      "  argon2-cffi        conda-forge/noarch::argon2-cffi-21.3.0-pyhd8ed1ab_0\n",
+      "  argon2-cffi-bindi~ conda-forge/linux-64::argon2-cffi-bindings-21.2.0-py38h0a891b7_2\n",
+      "  asttokens          conda-forge/noarch::asttokens-2.0.8-pyhd8ed1ab_0\n",
+      "  attrs              conda-forge/noarch::attrs-22.1.0-pyh71513ae_1\n",
+      "  babel              conda-forge/noarch::babel-2.10.3-pyhd8ed1ab_0\n",
+      "  backcall           conda-forge/noarch::backcall-0.2.0-pyh9f0ad1d_0\n",
+      "  backports          conda-forge/noarch::backports-1.0-py_2\n",
+      "  backports.functoo~ conda-forge/noarch::backports.functools_lru_cache-1.6.4-pyhd8ed1ab_0\n",
+      "  beautifulsoup4     conda-forge/noarch::beautifulsoup4-4.11.1-pyha770c72_0\n",
+      "  bleach             conda-forge/noarch::bleach-5.0.1-pyhd8ed1ab_0\n",
+      "  brotlipy           conda-forge/linux-64::brotlipy-0.7.0-py38h0a891b7_1004\n",
+      "  bzip2              conda-forge/linux-64::bzip2-1.0.8-h7f98852_4\n",
+      "  ca-certificates    conda-forge/linux-64::ca-certificates-2022.9.24-ha878542_0\n",
+      "  certifi            conda-forge/noarch::certifi-2022.9.24-pyhd8ed1ab_0\n",
+      "  cffi               conda-forge/linux-64::cffi-1.15.1-py38h4a40e3a_1\n",
+      "  charset-normalizer conda-forge/noarch::charset-normalizer-2.1.1-pyhd8ed1ab_0\n",
+      "  cryptography       conda-forge/linux-64::cryptography-38.0.2-py38h80a4ca7_1\n",
+      "  cycler             conda-forge/noarch::cycler-0.11.0-pyhd8ed1ab_0\n",
+      "  debugpy            conda-forge/linux-64::debugpy-1.6.3-py38hfa26641_0\n",
+      "  decorator          conda-forge/noarch::decorator-5.1.1-pyhd8ed1ab_0\n",
+      "  defusedxml         conda-forge/noarch::defusedxml-0.7.1-pyhd8ed1ab_0\n",
+      "  entrypoints        conda-forge/noarch::entrypoints-0.4-pyhd8ed1ab_0\n",
+      "  executing          conda-forge/noarch::executing-1.1.1-pyhd8ed1ab_0\n",
+      "  flit-core          conda-forge/noarch::flit-core-3.7.1-pyhd8ed1ab_0\n",
+      "  freetype           conda-forge/linux-64::freetype-2.12.1-hca18f0e_0\n",
+      "  icu                conda-forge/linux-64::icu-67.1-he1b5a44_0\n",
+      "  idna               conda-forge/noarch::idna-3.4-pyhd8ed1ab_0\n",
+      "  importlib-metadata conda-forge/linux-64::importlib-metadata-4.11.4-py38h578d9bd_0\n",
+      "  importlib_resourc~ conda-forge/noarch::importlib_resources-5.10.0-pyhd8ed1ab_0\n",
+      "  ipykernel          conda-forge/noarch::ipykernel-6.16.1-pyh210e3f2_0\n",
+      "  ipython            conda-forge/noarch::ipython-8.5.0-pyh41d4057_1\n",
+      "  ipython_genutils   conda-forge/noarch::ipython_genutils-0.2.0-py_1\n",
+      "  ipywidgets         conda-forge/noarch::ipywidgets-8.0.2-pyhd8ed1ab_1\n",
+      "  jedi               conda-forge/noarch::jedi-0.18.1-pyhd8ed1ab_2\n",
+      "  jinja2             conda-forge/noarch::jinja2-3.1.2-pyhd8ed1ab_1\n",
+      "  json5              conda-forge/noarch::json5-0.9.5-pyh9f0ad1d_0\n",
+      "  jsonschema         conda-forge/noarch::jsonschema-4.16.0-pyhd8ed1ab_0\n",
+      "  jupyter_client     conda-forge/noarch::jupyter_client-7.4.3-pyhd8ed1ab_0\n",
+      "  jupyter_core       conda-forge/linux-64::jupyter_core-4.11.1-py38h578d9bd_0\n",
+      "  jupyter_server     conda-forge/noarch::jupyter_server-1.21.0-pyhd8ed1ab_0\n",
+      "  jupyterlab         conda-forge/noarch::jupyterlab-3.5.0-pyhd8ed1ab_0\n",
+      "  jupyterlab_pygmen~ conda-forge/noarch::jupyterlab_pygments-0.2.2-pyhd8ed1ab_0\n",
+      "  jupyterlab_server  conda-forge/noarch::jupyterlab_server-2.16.1-pyhd8ed1ab_0\n",
+      "  jupyterlab_widgets conda-forge/noarch::jupyterlab_widgets-3.0.3-pyhd8ed1ab_0\n",
+      "  kiwisolver         conda-forge/linux-64::kiwisolver-1.4.4-py38h43d8883_0\n",
+      "  ld_impl_linux-64   conda-forge/linux-64::ld_impl_linux-64-2.39-hc81fddc_0\n",
+      "  libblas            conda-forge/linux-64::libblas-3.9.0-16_linux64_openblas\n",
+      "  libcblas           conda-forge/linux-64::libcblas-3.9.0-16_linux64_openblas\n",
+      "  libffi             conda-forge/linux-64::libffi-3.4.2-h7f98852_5\n",
+      "  libgcc             conda-forge/linux-64::libgcc-7.2.0-h69d50b8_2\n",
+      "  libgcc-ng          conda-forge/linux-64::libgcc-ng-12.2.0-h65d4601_19\n",
+      "  libgfortran-ng     conda-forge/linux-64::libgfortran-ng-12.2.0-h69a702a_19\n",
+      "  libgfortran5       conda-forge/linux-64::libgfortran5-12.2.0-h337968e_19\n",
+      "  libgomp            conda-forge/linux-64::libgomp-12.2.0-h65d4601_19\n",
+      "  liblapack          conda-forge/linux-64::liblapack-3.9.0-16_linux64_openblas\n",
+      "  libnsl             conda-forge/linux-64::libnsl-2.0.0-h7f98852_0\n",
+      "  libopenblas        conda-forge/linux-64::libopenblas-0.3.21-pthreads_h78a6416_3\n",
+      "  libpng             conda-forge/linux-64::libpng-1.6.38-h753d276_0\n",
+      "  libsodium          conda-forge/linux-64::libsodium-1.0.18-h36c2ea0_1\n",
+      "  libsqlite          conda-forge/linux-64::libsqlite-3.39.4-h753d276_0\n",
+      "  libstdcxx-ng       conda-forge/linux-64::libstdcxx-ng-12.2.0-h46fd767_19\n",
+      "  libuuid            conda-forge/linux-64::libuuid-2.32.1-h7f98852_1000\n",
+      "  libzlib            conda-forge/linux-64::libzlib-1.2.13-h166bdaf_4\n",
+      "  markupsafe         conda-forge/linux-64::markupsafe-2.1.1-py38h0a891b7_1\n",
+      "  matplotlib         conda-forge/linux-64::matplotlib-3.2.2-1\n",
+      "  matplotlib-base    conda-forge/linux-64::matplotlib-base-3.2.2-py38h5d868c9_1\n",
+      "  matplotlib-inline  conda-forge/noarch::matplotlib-inline-0.1.6-pyhd8ed1ab_0\n",
+      "  mistune            conda-forge/noarch::mistune-2.0.4-pyhd8ed1ab_0\n",
+      "  nbclassic          conda-forge/noarch::nbclassic-0.4.5-pyhd8ed1ab_0\n",
+      "  nbclient           conda-forge/noarch::nbclient-0.7.0-pyhd8ed1ab_0\n",
+      "  nbconvert          conda-forge/noarch::nbconvert-7.2.2-pyhd8ed1ab_0\n",
+      "  nbconvert-core     conda-forge/noarch::nbconvert-core-7.2.2-pyhd8ed1ab_0\n",
+      "  nbconvert-pandoc   conda-forge/noarch::nbconvert-pandoc-7.2.2-pyhd8ed1ab_0\n",
+      "  nbformat           conda-forge/noarch::nbformat-5.7.0-pyhd8ed1ab_0\n",
+      "  ncurses            conda-forge/linux-64::ncurses-6.3-h27087fc_1\n",
+      "  nest-asyncio       conda-forge/noarch::nest-asyncio-1.5.6-pyhd8ed1ab_0\n",
+      "  nodejs             conda-forge/linux-64::nodejs-6.13.1-0\n",
+      "  notebook           conda-forge/noarch::notebook-6.5.1-pyha770c72_0\n",
+      "  notebook-shim      conda-forge/noarch::notebook-shim-0.2.0-pyhd8ed1ab_0\n",
+      "  numpy              conda-forge/linux-64::numpy-1.23.4-py38h7042d01_0\n",
+      "  openssl            conda-forge/linux-64::openssl-3.0.5-h166bdaf_2\n",
+      "  packaging          conda-forge/noarch::packaging-21.3-pyhd8ed1ab_0\n",
+      "  pandas             conda-forge/linux-64::pandas-0.24.2-py38hb3f55d8_1\n",
+      "  pandoc             conda-forge/linux-64::pandoc-2.19.2-h32600fe_1\n",
+      "  pandocfilters      conda-forge/noarch::pandocfilters-1.5.0-pyhd8ed1ab_0\n",
+      "  parso              conda-forge/noarch::parso-0.8.3-pyhd8ed1ab_0\n",
+      "  pexpect            conda-forge/noarch::pexpect-4.8.0-pyh9f0ad1d_2\n",
+      "  pickleshare        conda-forge/noarch::pickleshare-0.7.5-py_1003\n",
+      "  pip                conda-forge/noarch::pip-22.3-pyhd8ed1ab_0\n",
+      "  pkgutil-resolve-n~ conda-forge/noarch::pkgutil-resolve-name-1.3.10-pyhd8ed1ab_0\n",
+      "  prometheus_client  conda-forge/noarch::prometheus_client-0.15.0-pyhd8ed1ab_0\n",
+      "  prompt-toolkit     conda-forge/noarch::prompt-toolkit-3.0.31-pyha770c72_0\n",
+      "  psutil             conda-forge/linux-64::psutil-5.9.3-py38h0a891b7_0\n",
+      "  ptyprocess         conda-forge/noarch::ptyprocess-0.7.0-pyhd3deb0d_0\n",
+      "  pure_eval          conda-forge/noarch::pure_eval-0.2.2-pyhd8ed1ab_0\n",
+      "  pycparser          conda-forge/noarch::pycparser-2.21-pyhd8ed1ab_0\n",
+      "  pygments           conda-forge/noarch::pygments-2.13.0-pyhd8ed1ab_0\n",
+      "  pyopenssl          conda-forge/noarch::pyopenssl-22.1.0-pyhd8ed1ab_0\n",
+      "  pyparsing          conda-forge/noarch::pyparsing-3.0.9-pyhd8ed1ab_0\n",
+      "  pyrsistent         conda-forge/linux-64::pyrsistent-0.18.1-py38h0a891b7_1\n",
+      "  pysocks            conda-forge/noarch::pysocks-1.7.1-pyha2e5f31_6\n",
+      "  python             conda-forge/linux-64::python-3.8.13-ha86cf86_0_cpython\n",
+      "  python-dateutil    conda-forge/noarch::python-dateutil-2.8.2-pyhd8ed1ab_0\n",
+      "  python-fastjsonsc~ conda-forge/noarch::python-fastjsonschema-2.16.2-pyhd8ed1ab_0\n",
+      "  python_abi         conda-forge/linux-64::python_abi-3.8-2_cp38\n",
+      "  pytz               conda-forge/noarch::pytz-2022.5-pyhd8ed1ab_0\n",
+      "  pyzmq              conda-forge/linux-64::pyzmq-24.0.1-py38hfc09fa9_0\n",
+      "  readline           conda-forge/linux-64::readline-8.1.2-h0f457ee_0\n",
+      "  requests           conda-forge/noarch::requests-2.28.1-pyhd8ed1ab_1\n",
+      "  send2trash         conda-forge/noarch::send2trash-1.8.0-pyhd8ed1ab_0\n",
+      "  setuptools         conda-forge/linux-64::setuptools-59.8.0-py38h578d9bd_1\n",
+      "  six                conda-forge/noarch::six-1.16.0-pyh6c4a22f_0\n",
+      "  sniffio            conda-forge/noarch::sniffio-1.3.0-pyhd8ed1ab_0\n",
+      "  soupsieve          conda-forge/noarch::soupsieve-2.3.2.post1-pyhd8ed1ab_0\n",
+      "  sqlite             conda-forge/linux-64::sqlite-3.39.4-h4ff8645_0\n",
+      "  stack_data         conda-forge/noarch::stack_data-0.5.1-pyhd8ed1ab_0\n",
+      "  terminado          conda-forge/noarch::terminado-0.16.0-pyh41d4057_0\n",
+      "  tinycss2           conda-forge/noarch::tinycss2-1.2.1-pyhd8ed1ab_0\n",
+      "  tk                 conda-forge/linux-64::tk-8.6.12-h27826a3_0\n",
+      "  tomli              conda-forge/noarch::tomli-2.0.1-pyhd8ed1ab_0\n",
+      "  tornado            conda-forge/linux-64::tornado-6.2-py38h0a891b7_0\n",
+      "  traitlets          conda-forge/noarch::traitlets-5.5.0-pyhd8ed1ab_0\n",
+      "  typing_extensions  conda-forge/noarch::typing_extensions-4.4.0-pyha770c72_0\n",
+      "  urllib3            conda-forge/noarch::urllib3-1.26.11-pyhd8ed1ab_0\n",
+      "  wcwidth            conda-forge/noarch::wcwidth-0.2.5-pyh9f0ad1d_2\n",
+      "  webencodings       conda-forge/noarch::webencodings-0.5.1-py_1\n",
+      "  websocket-client   conda-forge/noarch::websocket-client-1.4.1-pyhd8ed1ab_0\n",
+      "  wheel              conda-forge/noarch::wheel-0.37.1-pyhd8ed1ab_0\n",
+      "  widgetsnbextension conda-forge/noarch::widgetsnbextension-4.0.3-pyhd8ed1ab_0\n",
+      "  xz                 conda-forge/linux-64::xz-5.2.6-h166bdaf_0\n",
+      "  zeromq             conda-forge/linux-64::zeromq-4.3.4-h9c3ff4c_1\n",
+      "  zipp               conda-forge/noarch::zipp-3.9.0-pyhd8ed1ab_0\n",
+      "\n",
+      "\n",
+      "\n",
+      "Downloading and Extracting Packages\n",
+      "_openmp_mutex-4.5    | 23 KB     | ##################################### | 100% \n",
+      "pkgutil-resolve-name | 9 KB      | ##################################### | 100% \n",
+      "traitlets-5.5.0      | 85 KB     | ##################################### | 100% \n",
+      "ptyprocess-0.7.0     | 16 KB     | ##################################### | 100% \n",
+      "libgomp-12.2.0       | 455 KB    | ##################################### | 100% \n",
+      "cffi-1.15.1          | 229 KB    | ##################################### | 100% \n",
+      "argon2-cffi-bindings | 34 KB     | ##################################### | 100% \n",
+      "bzip2-1.0.8          | 484 KB    | ##################################### | 100% \n",
+      "jupyter_core-4.11.1  | 81 KB     | ##################################### | 100% \n",
+      "nbclassic-0.4.5      | 7.7 MB    | ##################################### | 100% \n",
+      "backcall-0.2.0       | 13 KB     | ##################################### | 100% \n",
+      "sqlite-3.39.4        | 789 KB    | ##################################### | 100% \n",
+      "urllib3-1.26.11      | 102 KB    | ##################################### | 100% \n",
+      "ipython-8.5.0        | 552 KB    | ##################################### | 100% \n",
+      "jedi-0.18.1          | 799 KB    | ##################################### | 100% \n",
+      "_libgcc_mutex-0.1    | 3 KB      | ##################################### | 100% \n",
+      "matplotlib-inline-0. | 12 KB     | ##################################### | 100% \n",
+      "icu-67.1             | 12.9 MB   | ##################################### | 100% \n",
+      "python-fastjsonschem | 242 KB    | ##################################### | 100% \n",
+      "tomli-2.0.1          | 16 KB     | ##################################### | 100% \n",
+      "pyparsing-3.0.9      | 79 KB     | ##################################### | 100% \n",
+      "libgfortran-ng-12.2. | 22 KB     | ##################################### | 100% \n",
+      "executing-1.1.1      | 23 KB     | ##################################### | 100% \n",
+      "liblapack-3.9.0      | 13 KB     | ##################################### | 100% \n",
+      "pytz-2022.5          | 238 KB    | ##################################### | 100% \n",
+      "libnsl-2.0.0         | 31 KB     | ##################################### | 100% \n",
+      "pandoc-2.19.2        | 30.0 MB   | ##################################### | 100% \n",
+      "wheel-0.37.1         | 31 KB     | ##################################### | 100% \n",
+      "jsonschema-4.16.0    | 65 KB     | ##################################### | 100% \n",
+      "importlib-metadata-4 | 33 KB     | ##################################### | 100% \n",
+      "python_abi-3.8       | 4 KB      | ##################################### | 100% \n",
+      "python-3.8.13        | 25.2 MB   | ##################################### | 100% \n",
+      "ncurses-6.3          | 1002 KB   | ##################################### | 100% \n",
+      "ipython_genutils-0.2 | 21 KB     | ##################################### | 100% \n",
+      "zipp-3.9.0           | 13 KB     | ##################################### | 100% \n",
+      "asttokens-2.0.8      | 24 KB     | ##################################### | 100% \n",
+      "libsodium-1.0.18     | 366 KB    | ##################################### | 100% \n",
+      "jinja2-3.1.2         | 99 KB     | ##################################### | 100% \n",
+      "prometheus_client-0. | 50 KB     | ##################################### | 100% \n",
+      "send2trash-1.8.0     | 17 KB     | ##################################### | 100% \n",
+      "freetype-2.12.1      | 884 KB    | ##################################### | 100% \n",
+      "readline-8.1.2       | 291 KB    | ##################################### | 100% \n",
+      "terminado-0.16.0     | 18 KB     | ##################################### | 100% \n",
+      "jupyterlab_pygments- | 17 KB     | ##################################### | 100% \n",
+      "libsqlite-3.39.4     | 803 KB    | ##################################### | 100% \n",
+      "libgfortran5-12.2.0  | 1.8 MB    | ##################################### | 100% \n",
+      "defusedxml-0.7.1     | 23 KB     | ##################################### | 100% \n",
+      "pyrsistent-0.18.1    | 92 KB     | ##################################### | 100% \n",
+      "pandocfilters-1.5.0  | 11 KB     | ##################################### | 100% \n",
+      "libzlib-1.2.13       | 64 KB     | ##################################### | 100% \n",
+      "libblas-3.9.0        | 13 KB     | ##################################### | 100% \n",
+      "anyio-3.6.2          | 83 KB     | ##################################### | 100% \n",
+      "nbformat-5.7.0       | 106 KB    | ##################################### | 100% \n",
+      "nbconvert-7.2.2      | 6 KB      | ##################################### | 100% \n",
+      "libffi-3.4.2         | 57 KB     | ##################################### | 100% \n",
+      "jupyterlab-3.5.0     | 6.0 MB    | ##################################### | 100% \n",
+      "psutil-5.9.3         | 348 KB    | ##################################### | 100% \n",
+      "pexpect-4.8.0        | 47 KB     | ##################################### | 100% \n",
+      "nest-asyncio-1.5.6   | 10 KB     | ##################################### | 100% \n",
+      "nbconvert-core-7.2.2 | 189 KB    | ##################################### | 100% \n",
+      "typing_extensions-4. | 29 KB     | ##################################### | 100% \n",
+      "json5-0.9.5          | 20 KB     | ##################################### | 100% \n",
+      "brotlipy-0.7.0       | 342 KB    | ##################################### | 100% \n",
+      "mistune-2.0.4        | 67 KB     | ##################################### | 100% \n",
+      "tk-8.6.12            | 3.3 MB    | ##################################### | 100% \n",
+      "cryptography-38.0.2  | 1.6 MB    | ##################################### | 100% \n",
+      "pickleshare-0.7.5    | 9 KB      | ##################################### | 100% \n",
+      "widgetsnbextension-4 | 1.6 MB    | ##################################### | 100% \n",
+      "beautifulsoup4-4.11. | 96 KB     | ##################################### | 100% \n",
+      "libpng-1.6.38        | 371 KB    | ##################################### | 100% \n",
+      "websocket-client-1.4 | 42 KB     | ##################################### | 100% \n",
+      "matplotlib-3.2.2     | 6 KB      | ##################################### | 100% \n",
+      "tinycss2-1.2.1       | 23 KB     | ##################################### | 100% \n",
+      "ipykernel-6.16.1     | 100 KB    | ##################################### | 100% \n",
+      "setuptools-59.8.0    | 1017 KB   | ##################################### | 100% \n",
+      "libcblas-3.9.0       | 13 KB     | ##################################### | 100% \n",
+      "pandas-0.24.2        | 11.5 MB   | ##################################### | 100% \n",
+      "charset-normalizer-2 | 36 KB     | ##################################### | 100% \n",
+      "libstdcxx-ng-12.2.0  | 4.3 MB    | ##################################### | 100% \n",
+      "flit-core-3.7.1      | 44 KB     | ##################################### | 100% \n",
+      "importlib_resources- | 29 KB     | ##################################### | 100% \n",
+      "openssl-3.0.5        | 2.8 MB    | ##################################### | 100% \n",
+      "jupyter_server-1.21. | 239 KB    | ##################################### | 100% \n",
+      "libgcc-ng-12.2.0     | 931 KB    | ##################################### | 100% \n",
+      "backports.functools_ | 9 KB      | ##################################### | 100% \n",
+      "libopenblas-0.3.21   | 10.1 MB   | ##################################### | 100% \n",
+      "attrs-22.1.0         | 48 KB     | ##################################### | 100% \n",
+      "nbconvert-pandoc-7.2 | 5 KB      | ##################################### | 100% \n",
+      "zeromq-4.3.4         | 351 KB    | ##################################### | 100% \n",
+      "cycler-0.11.0        | 10 KB     | ##################################### | 100% \n",
+      "pyzmq-24.0.1         | 508 KB    | ##################################### | 100% \n",
+      "jupyterlab_server-2. | 49 KB     | ##################################### | 100% \n",
+      "pycparser-2.21       | 100 KB    | ##################################### | 100% \n",
+      "tornado-6.2          | 653 KB    | ##################################### | 100% \n",
+      "python-dateutil-2.8. | 240 KB    | ##################################### | 100% \n",
+      "packaging-21.3       | 36 KB     | ##################################### | 100% \n",
+      "backports-1.0        | 4 KB      | ##################################### | 100% \n",
+      "ipywidgets-8.0.2     | 109 KB    | ##################################### | 100% \n",
+      "parso-0.8.3          | 69 KB     | ##################################### | 100% \n",
+      "markupsafe-2.1.1     | 22 KB     | ##################################### | 100% \n",
+      "bleach-5.0.1         | 124 KB    | ##################################### | 100% \n",
+      "six-1.16.0           | 14 KB     | ##################################### | 100% \n",
+      "notebook-shim-0.2.0  | 15 KB     | ##################################### | 100% \n",
+      "wcwidth-0.2.5        | 33 KB     | ##################################### | 100% \n",
+      "stack_data-0.5.1     | 24 KB     | ##################################### | 100% \n",
+      "decorator-5.1.1      | 12 KB     | ##################################### | 100% \n",
+      "libgcc-7.2.0         | 304 KB    | ##################################### | 100% \n",
+      "matplotlib-base-3.2. | 7.1 MB    | ##################################### | 100% \n",
+      "certifi-2022.9.24    | 155 KB    | ##################################### | 100% \n",
+      "entrypoints-0.4      | 9 KB      | ##################################### | 100% \n",
+      "notebook-6.5.1       | 266 KB    | ##################################### | 100% \n",
+      "pure_eval-0.2.2      | 14 KB     | ##################################### | 100% \n",
+      "numpy-1.23.4         | 7.1 MB    | ##################################### | 100% \n",
+      "requests-2.28.1      | 53 KB     | ##################################### | 100% \n",
+      "argon2-cffi-21.3.0   | 15 KB     | ##################################### | 100% \n",
+      "jupyterlab_widgets-3 | 222 KB    | ##################################### | 100% \n",
+      "nbclient-0.7.0       | 65 KB     | ##################################### | 100% \n",
+      "nodejs-6.13.1        | 11.9 MB   | ##################################### | 100% \n",
+      "pip-22.3             | 1.5 MB    | ##################################### | 100% \n",
+      "xz-5.2.6             | 409 KB    | ##################################### | 100% \n",
+      "pygments-2.13.0      | 821 KB    | ##################################### | 100% \n",
+      "idna-3.4             | 55 KB     | ##################################### | 100% \n",
+      "debugpy-1.6.3        | 2.0 MB    | ##################################### | 100% \n",
+      "kiwisolver-1.4.4     | 76 KB     | ##################################### | 100% \n",
+      "soupsieve-2.3.2.post | 34 KB     | ##################################### | 100% \n",
+      "pysocks-1.7.1        | 19 KB     | ##################################### | 100% \n",
+      "webencodings-0.5.1   | 12 KB     | ##################################### | 100% \n",
+      "pyopenssl-22.1.0     | 122 KB    | ##################################### | 100% \n",
+      "ld_impl_linux-64-2.3 | 759 KB    | ##################################### | 100% \n",
+      "jupyter_client-7.4.3 | 91 KB     | ##################################### | 100% \n",
+      "ca-certificates-2022 | 150 KB    | ##################################### | 100% \n",
+      "sniffio-1.3.0        | 14 KB     | ##################################### | 100% \n",
+      "babel-2.10.3         | 6.7 MB    | ##################################### | 100% \n",
+      "libuuid-2.32.1       | 28 KB     | ##################################### | 100% \n",
+      "prompt-toolkit-3.0.3 | 254 KB    | ##################################### | 100% \n",
+      "Preparing transaction: done\n",
+      "Verifying transaction: done\n",
+      "Executing transaction: done\n",
+      "#\n",
+      "# To activate this environment, use\n",
+      "#\n",
+      "#     $ conda activate my_jupyterlab3\n",
+      "#\n",
+      "# To deactivate an active environment, use\n",
+      "#\n",
+      "#     $ conda deactivate\n",
+      "\n"
+     ]
+    }
+   ],
+   "source": [
+    "${CONDA_TARGET_DIR}/bin/conda create -n ${CONDA_ENV} --override-channels --strict-channel-priority -c conda-forge -c anaconda --yes jupyterlab=3 ipywidgets nodejs pip pandas=0.24 matplotlib"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "measured-finance",
+   "metadata": {},
+   "source": [
+    "----------------------------------------------------\n",
+    "## 3. Activate Conda Environment"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "id": "regional-haiti",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "/p/project/coecschool22/goebbert1/miniconda3\n",
+      "my_jupyterlab3\n",
+      "(my_jupyterlab3) (my_jupyterlab3) (my_jupyterlab3) (my_jupyterlab3) (my_jupyterlab3) \n",
+      "(my_jupyterlab3) "
+     ]
+    },
+    {
+     "ename": "",
+     "evalue": "1",
+     "output_type": "error",
+     "traceback": []
+    }
+   ],
+   "source": [
+    "# verify that PYTHONPATH only points to directories of packages\n",
+    "# that are compatible with the Python interpreter in Miniconda3\n",
+    "unset PYTHONPATH\n",
+    "\n",
+    "# just to show that jupyterlab starts\n",
+    "# we have to ensure that the bash-kernel shell\n",
+    "# does not have JUPYTER*- environment variables set from the running JupyterLab (which serves this notebook)\n",
+    "unset JUPYTER_PATH\n",
+    "unset JUPYTERLAB_DIR\n",
+    "unset JUPYTER_DATA_DIR\n",
+    "unset JUPYTER_CONFIG_PATH\n",
+    "\n",
+    "# Activate your Python virtual environment\n",
+    "echo ${CONDA_TARGET_DIR}\n",
+    "echo ${CONDA_ENV}\n",
+    "source \"${CONDA_TARGET_DIR}\"/bin/activate \"${CONDA_ENV}\"\n",
+    "    \n",
+    "# Ensure python packages installed in conda are always prefered, not necessary if module purge is used\n",
+    "#export PYTHONPATH=${CONDA_PREFIX}/lib/python3.6/site-packages:${PYTHONPATH}\n",
+    "\n",
+    "echo $PYTHONPATH"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 12,
+   "id": "sticky-intensity",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "/p/project/coecschool22/goebbert1/miniconda3/envs/my_jupyterlab3/bin/jupyter\n",
+      "(my_jupyterlab3) "
+     ]
+    },
+    {
+     "ename": "",
+     "evalue": "1",
+     "output_type": "error",
+     "traceback": []
+    }
+   ],
+   "source": [
+    "which jupyter"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "instrumental-virtue",
+   "metadata": {},
+   "source": [
+    "---------\n",
+    "## 4. Start the fresh installed JupyterLab from the Conda Environment"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "proved-samoa",
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "(my_jupyterlab3) [I 2022-10-24 23:49:58.128 ServerApp] jupyterlab | extension was successfully linked.\n",
+      "[I 2022-10-24 23:49:58.137 ServerApp] nbclassic | extension was successfully linked.\n",
+      "[I 2022-10-24 23:49:58.261 LabApp] JupyterLab extension loaded from /p/project/coecschool22/goebbert1/miniconda3/envs/my_jupyterlab3/lib/python3.8/site-packages/jupyterlab\n",
+      "[I 2022-10-24 23:49:58.261 LabApp] JupyterLab application directory is /p/project/coecschool22/goebbert1/miniconda3/envs/my_jupyterlab3/share/jupyter/lab\n",
+      "[I 2022-10-24 23:49:58.264 ServerApp] jupyterlab | extension was successfully loaded.\n",
+      "[I 2022-10-24 23:49:58.268 ServerApp] nbclassic | extension was successfully loaded.\n",
+      "[I 2022-10-24 23:49:58.268 ServerApp] Serving notebooks from local directory: /p/project/coecschool22/goebbert1/prace-2022.04-jupyter4hpc/day_2/5_my_own_jupyterlab\n",
+      "[I 2022-10-24 23:49:58.268 ServerApp] Jupyter Server 1.21.0 is running at:\n",
+      "[I 2022-10-24 23:49:58.268 ServerApp] http://localhost:8888/lab?token=8d055ad8360be4ae9aededca7b3771fd4fd3c94c29fef6c8\n",
+      "[I 2022-10-24 23:49:58.268 ServerApp]  or http://127.0.0.1:8888/lab?token=8d055ad8360be4ae9aededca7b3771fd4fd3c94c29fef6c8\n",
+      "[I 2022-10-24 23:49:58.268 ServerApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).\n",
+      "[C 2022-10-24 23:49:58.802 ServerApp] \n",
+      "    \n",
+      "    To access the server, open this file in a browser:\n",
+      "        file:///p/project/ccstvs/goebbert1/home_juwels/.local/share/jupyter/runtime/jpserver-31337-open.html\n",
+      "    Or copy and paste one of these URLs:\n",
+      "        http://localhost:8888/lab?token=8d055ad8360be4ae9aededca7b3771fd4fd3c94c29fef6c8\n",
+      "     or http://127.0.0.1:8888/lab?token=8d055ad8360be4ae9aededca7b3771fd4fd3c94c29fef6c8\n"
+     ]
+    }
+   ],
+   "source": [
+    "## JUST FOR TESTING !!!\n",
+    "jupyter lab --no-browser"
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "colored-nickel",
+   "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.8.16"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/day2_hpcenv/8_my_own_jupyterlab/2-manually-connect-to-JupyterLab.ipynb b/day2_hpcenv/8_my_own_jupyterlab/2-manually-connect-to-JupyterLab.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..bd51029de01710ad80803ed558cef5e93541d82f
--- /dev/null
+++ b/day2_hpcenv/8_my_own_jupyterlab/2-manually-connect-to-JupyterLab.ipynb
@@ -0,0 +1,248 @@
+{
+ "cells": [
+  {
+   "attachments": {
+    "67258d94-84e6-4a0c-ae8f-c74332ec082e.jpg": {
+     "image/jpeg": "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"
+    }
+   },
+   "cell_type": "markdown",
+   "id": "2ea39561-7031-4e43-922c-439caa7957c6",
+   "metadata": {
+    "tags": [],
+    "toc-hr-collapsed": false
+   },
+   "source": [
+    "![jsc-logo.jpg](attachment:67258d94-84e6-4a0c-ae8f-c74332ec082e.jpg)\n",
+    "Author: [Jens Henrik Göbbert](mailto:j.goebbert@fz-juelich.de)\n",
+    "------------------------------------"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "ce6bf220-69b3-47db-92c4-87eeb22395d9",
+   "metadata": {},
+   "source": [
+    "# Supercomputing with JupyterLab - Tips & Tricks\n",
+    "\n",
+    "This is the first time you are using JupyterLab on an HPC system? Let us show you some tips & tricks.\n",
+    "\n",
+    "This notebook might be special to the environment at Juelich Supercomputing Centre, Forschungszentrum Juelich, Germany.\n",
+    "\n",
+    "-------------------------"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "contained-explanation",
+   "metadata": {},
+   "source": [
+    "### How to manually start and connect to JupyterLab"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "small-panic",
+   "metadata": {},
+   "source": [
+    "#### Exercise 1:\n"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "simple-syndrome",
+   "metadata": {},
+   "source": [
+    "1. Open a Terminal\n",
+    "   - if you use the terminal from within a running JupyterLab, you need to clean up a bit\n",
+    "```\n",
+    "unset JUPYTER_PATH\n",
+    "unset JUPYTERLAB_DIR\n",
+    "unset JUPYTER_DATA_DIR\n",
+    "unset JUPYTER_CONFIG_PATH\n",
+    "```\n",
+    "2. Decide what JupyterLab you want to start\n",
+    "   - a) preinstalled JupyterLab from a module\n",
+    "   - b) JupyterLab from your own conda-environment"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "breeding-probe",
+   "metadata": {},
+   "source": [
+    "#### A) Using a preinstalled JupyterLab from a module\n",
+    "\n",
+    "Run the following commands to prepare your shell\n",
+    "```bash\n",
+    "module purge\n",
+    "module use $OTHERSTAGES\n",
+    "module load Stages/2022\n",
+    "module load GCCcore/.11.2.0\n",
+    "module load JupyterCollection\n",
+    "```\n",
+    "\n",
+    "Start JupyterLab\n",
+    "```bash\n",
+    "jupyter lab --no-browser\n",
+    "```"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "round-flush",
+   "metadata": {},
+   "source": [
+    "#### B) JupyterLab from your own conda-environment\n",
+    "\n",
+    "Prepare preinstalled conda environment:\n",
+    "```bash\n",
+    "export CONDA_TARGET_DIR=/p/project/coecschool22/goebbert1/miniconda3\n",
+    "CONDA_ENV=my_jupyterlab3\n",
+    "\n",
+    "# >>> conda initialize >>>\n",
+    "__conda_setup=\"$('/p/project/coecschool22/goebbert1/miniconda3/bin/conda' 'shell.bash' 'hook' 2> /dev/null)\"\n",
+    "if [ $? -eq 0 ]; then\n",
+    "    eval \"$__conda_setup\"\n",
+    "else\n",
+    "    if [ -f \"/p/project/coecschool22/goebbert1/miniconda3/etc/profile.d/conda.sh\" ]; then\n",
+    "        . \"/p/project/coecschool22/goebbert1/miniconda3/etc/profile.d/conda.sh\"\n",
+    "    else\n",
+    "        export PATH=\"/p/project/coecschool22/goebbert1/miniconda3/bin:$PATH\"\n",
+    "    fi\n",
+    "fi\n",
+    "unset __conda_setup\n",
+    "# <<< conda initialize <<<\n",
+    "```"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "spiritual-mustang",
+   "metadata": {},
+   "source": [
+    "Load conda environment\n",
+    "```bash\n",
+    "# verify that PYTHONPATH only points to directories of packages\n",
+    "# that are compatible with the Python interpreter in Miniconda3\n",
+    "unset PYTHONPATH\n",
+    "\n",
+    "# just to show that jupyterlab starts\n",
+    "# we have to ensure that the bash-kernel shell\n",
+    "# does not have JUPYTER*- environment variables set from the running JupyterLab (which serves this notebook)\n",
+    "unset JUPYTER_PATH\n",
+    "unset JUPYTERLAB_DIR\n",
+    "unset JUPYTER_DATA_DIR\n",
+    "unset JUPYTER_CONFIG_PATH\n",
+    "\n",
+    "# Activate your Python virtual environment\n",
+    "echo ${CONDA_TARGET_DIR}\n",
+    "echo ${CONDA_ENV}\n",
+    "source \"${CONDA_TARGET_DIR}\"/bin/activate \"${CONDA_ENV}\"\n",
+    "    \n",
+    "# Ensure python packages installed in conda are always prefered, not necessary if module purge is used\n",
+    "#export PYTHONPATH=${CONDA_PREFIX}/lib/python3.6/site-packages:${PYTHONPATH}\n",
+    "\n",
+    "echo $PYTHONPATH\n",
+    "```\n",
+    "\n",
+    "Start JupyterLab\n",
+    "```bash\n",
+    "jupyter lab --no-browser\n",
+    "```"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "boolean-tamil",
+   "metadata": {},
+   "source": [
+    "---------\n",
+    "### Tunnel the new JupyterLab to your local machine\n",
+    "\n",
+    "**Linux or Mac:**  \n",
+    "If your operating system is Linux or Mac use: "
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": null,
+   "id": "olive-madonna",
+   "metadata": {},
+   "outputs": [],
+   "source": [
+    "ssh -N -L <LOCAL_PORT>:<JLAB_NODE>:<JLAB_PORT> <USERID>@<LOGIN_NODE>.fz-juelich.de\n",
+    "# example: ssh -N -L 8888:juwels04:8888 goebbert1@juwels01.fz-juelich.de\n",
+    "\n",
+    "# if you want to tunnel directly to <LOGIN_NODE> only, then you must set JLAB_NODE to \"localhost\""
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "scientific-commission",
+   "metadata": {},
+   "source": [
+    "**Attention:**\n",
+    "- LOGIN_NODE - Hostname of login node from the view of your local machine\n",
+    "- JLAB_NODE - Hostname of the node running JupyterLab from the view of LOGIN_NODE\n",
+    "- LOCAL_PORT - port on your local machine\n",
+    "- JLAB_PORT - port on the node running JupyterLab"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "under-willow",
+   "metadata": {},
+   "source": [
+    "**Windows:**\n",
+    "In case your operating system is Windows, the setup of the tunnel depends on your ssh client.\n",
+    "Here a short overview on how-to setup a tunnel with **PuTTY** is given.\n",
+    "\n",
+    "It is assumed that PuTTY is already configured in a way that a general ssh connection to JUWELS is possible.\n",
+    "That means that host name, user name and the private ssh key (using PuTTY's Pageant) are correctly set.\n",
+    "You already made a first connection to JUWELS using PUTTY.\n",
+    "\n",
+    "To establish the ssh tunnel start PUTTY and enter the \"SSH-->tunnels\" tab in the PuTTY configuration window before connecting to JUWELS.\n",
+    "You have to enter the source port (eg. <LOCAL_PORT> = 8888) and the destination (eg. juwels01.fz-juelich.de:8888) and than press add.\n",
+    "After pressing add, the tunnel should appear in the list of forwarded ports and you can establish the tunnel by pressing the open button."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "ordered-tract",
+   "metadata": {},
+   "source": [
+    "![](PuTTY-add-tunnel.png)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "unexpected-sharing",
+   "metadata": {},
+   "source": [
+    "![](PuTTY-tunnel-added.png)"
+   ]
+  }
+ ],
+ "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.9.6"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/day2_hpcenv/8_my_own_jupyterlab/3-switch-default-Jupyterlab.ipynb b/day2_hpcenv/8_my_own_jupyterlab/3-switch-default-Jupyterlab.ipynb
new file mode 100644
index 0000000000000000000000000000000000000000..8d888dd68351b467562a9ff28632d0c623e9247e
--- /dev/null
+++ b/day2_hpcenv/8_my_own_jupyterlab/3-switch-default-Jupyterlab.ipynb
@@ -0,0 +1,120 @@
+{
+ "cells": [
+  {
+   "attachments": {
+    "67258d94-84e6-4a0c-ae8f-c74332ec082e.jpg": {
+     "image/jpeg": "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"
+    }
+   },
+   "cell_type": "markdown",
+   "id": "ece9406a-a238-4c26-8a8e-f3f582d3a5e6",
+   "metadata": {
+    "tags": [],
+    "toc-hr-collapsed": false
+   },
+   "source": [
+    "![jsc-logo.jpg](attachment:67258d94-84e6-4a0c-ae8f-c74332ec082e.jpg)\n",
+    "Author: [Jens Henrik Göbbert](mailto:j.goebbert@fz-juelich.de)\n",
+    "------------------------------------"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "d36452be-8e07-4876-ab0d-ba4d58c4c0cf",
+   "metadata": {},
+   "source": [
+    "# Supercomputing with JupyterLab - Tips & Tricks\n",
+    "\n",
+    "This is the first time you are using JupyterLab on an HPC system? Let us show you some tips & tricks.\n",
+    "\n",
+    "This notebook might be special to the environment at Juelich Supercomputing Centre, Forschungszentrum Juelich, Germany.\n",
+    "\n",
+    "-------------------------"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "stuffed-collapse",
+   "metadata": {},
+   "source": [
+    "### Switch the default JupyterLab installation"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "spectacular-placement",
+   "metadata": {},
+   "source": [
+    "#### Exercise 1:\n",
+    "1. Open `$JUPYTER_LOG_DIR/.start`\n",
+    "2. Check for call of optional start-script\n",
+    "3. Create own start-script\n",
+    "   - `$HOME/.jupyter/start_jupyter-jsc.sh`"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "successful-intranet",
+   "metadata": {},
+   "source": [
+    "```bash\n",
+    "module purge\n",
+    "module load Stages/2022\n",
+    "module load GCCcore/.11.2.0\n",
+    "\n",
+    "module use /p/usersoftware/swmanage/goebbert1/stage2022/jupyter33/easybuild/$SYSTEMNAME/modules/all/Compiler/GCCcore/11.2.0/\n",
+    "\n",
+    "module load Python\n",
+    "module load JupyterCollection/2022.3.3\n",
+    "```"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "civil-stupid",
+   "metadata": {},
+   "source": [
+    "Starting a JupyterLab through Jupyter-JSC now on the cluster using this $HOME  \n",
+    "- will now source `$HOME/.jupyter/start_jupyter-jsc.sh` before it starts JupyterLab\n",
+    "- and therefore will now use `JupyterCollection/2022.3.3` from `Stage/2022`."
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "id": "extra-tooth",
+   "metadata": {},
+   "source": [
+    "#### Exercise 2:\n",
+    "What is this `JupyterCollection` ?  \n",
+    "\n",
+    "1. Check `which jupyter`\n",
+    "2. Check the jupyter installation\n",
+    "   - `cd $EBROOTJUPYTERCOLLECTION/easybuild/`\n",
+    "   - `vim JupyterCollection-2021.3.2-gcccoremkl-10.3.0-2021.2.0.eb`\n",
+    "3. Check the easybuild files of our Jupyter module on Github:\n",
+    "   - https://github.com/easybuilders/JSC/"
+   ]
+  }
+ ],
+ "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.8.5"
+  }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/day2_hpcenv/8_my_own_jupyterlab/PuTTY-add-tunnel.png b/day2_hpcenv/8_my_own_jupyterlab/PuTTY-add-tunnel.png
new file mode 100644
index 0000000000000000000000000000000000000000..d1ffca13393f998810a179c657c82a743bf7d480
Binary files /dev/null and b/day2_hpcenv/8_my_own_jupyterlab/PuTTY-add-tunnel.png differ
diff --git a/day2_hpcenv/8_my_own_jupyterlab/PuTTY-tunnel-added.png b/day2_hpcenv/8_my_own_jupyterlab/PuTTY-tunnel-added.png
new file mode 100644
index 0000000000000000000000000000000000000000..8b2d0e3a01e94c6bf3daf6d1845ceab56ce948a2
Binary files /dev/null and b/day2_hpcenv/8_my_own_jupyterlab/PuTTY-tunnel-added.png differ