Repository: robots-from-jupyter/robotframework-jupyterlibrary (language: python)

Issue:
0.3.0 Release Postmortem
- [x] #28 magic deps
  - The intent of the magic was _not_ to make this a full interactive environment, but at present all the imports from `ipython` and `pygments` get resolved at import of `JupyterLibrary`. 
  - this should be relaxed, and a "clean" development should be tested with e.g. conda-build.
- [x] #28 no release docs
  - should add a section to CONTRIBUTING
- [x] #28 no release env
  - `twine` is my go-to for "classic" packages, but has a lot of deps... probably needs a dedicated environment



Discussion / hints:

Fix patch:
diff --git a/.github/env_specs/meta.yml b/.github/env_specs/meta.yml
new file mode 100644
index 00000000..7d672b2b
--- /dev/null
+++ b/.github/env_specs/meta.yml
@@ -0,0 +1,15 @@
+channels:
+  - conda-forge
+  - msys2
+  - nodefaults
+
+dependencies:
+  - conda >=4.9.2,<4.9.3
+  - conda-build >=3.20,<3.21
+  - conda-lock
+  - conda-verify
+  - doit
+  - mamba >=0.7.3
+  - pip
+  - ripgrep
+  - twine
diff --git a/.github/locks/docs/linux-64/conda.lock b/.github/locks/docs/linux-64/conda.lock
index ac7abd20..29ba4fa2 100644
--- a/.github/locks/docs/linux-64/conda.lock
+++ b/.github/locks/docs/linux-64/conda.lock
@@ -24,7 +24,7 @@ https://conda.anaconda.org/conda-forge/linux-64/nodejs-14.15.1-h25f6087_0.tar.bz
 https://conda.anaconda.org/conda-forge/linux-64/readline-8.0-he28a2e2_2.tar.bz2#4d0ae8d473f863696088f76800ef9d38
 https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.10-hed695b0_1.tar.bz2#7ef837cd455bd0f19f49b8b62d4cb568
 https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.3-h58526e2_3.tar.bz2#6272fa8d98bd79c7978da0f7d2bb28da
-https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.33.0-h4cf870e_1.tar.bz2#1968ff6c4b8fbd2903f6672e292d932d
+https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.34.0-h74cdb3f_0.tar.bz2#0a83e21e8c1929cc9a1e21ebb2459fc5
 https://conda.anaconda.org/conda-forge/linux-64/python-3.6.11-hffdb5ce_3_cpython.tar.bz2#78b053e3316c47b2535aac75f6997a53
 https://conda.anaconda.org/conda-forge/noarch/alabaster-0.7.12-py_0.tar.bz2#2489a97287f90176ecdc3ca982b4b0a0
 https://conda.anaconda.org/conda-forge/linux-64/argh-0.26.2-py36_1001.tar.bz2#d942a3edad9e451533f471a09eb871dd
@@ -59,7 +59,7 @@ https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-qthelp-1.0.3-py_0.ta
 https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-serializinghtml-1.1.4-py_0.tar.bz2#8ea6a8036e28dba8827d35c764709358
 https://conda.anaconda.org/conda-forge/noarch/testpath-0.4.4-py_0.tar.bz2#3b98fff4d5342bebde2ecaa314f796f9
 https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-py_1.tar.bz2#3563be4c5611a44210d9ba0c16113136
-https://conda.anaconda.org/conda-forge/noarch/wheel-0.35.1-pyh9f0ad1d_0.tar.bz2#126827869be32f21872a2b30ebe2b038
+https://conda.anaconda.org/conda-forge/noarch/wheel-0.36.0-pyhd3deb0d_0.tar.bz2#f144bcd310e543bd9c8aa17c8ba1ee02
 https://conda.anaconda.org/conda-forge/noarch/zipp-3.4.0-py_0.tar.bz2#0df927d2e46244cef8fd75d7ec2ba51c
 https://conda.anaconda.org/conda-forge/noarch/babel-2.9.0-pyhd3deb0d_0.tar.bz2#1cb532c9a6fd4e56a9f0906b87c17b76
 https://conda.anaconda.org/conda-forge/linux-64/certifi-2020.11.8-py36h5fab9bb_0.tar.bz2#65b3d08f67f9d039cd0589dcd53db2a6
@@ -67,7 +67,7 @@ https://conda.anaconda.org/conda-forge/linux-64/cffi-1.14.4-py36hc120d54_1.tar.b
 https://conda.anaconda.org/conda-forge/linux-64/chardet-3.0.4-py36h9880bd3_1008.tar.bz2#5e1f31687ac8433134d9a1b3c394b074
 https://conda.anaconda.org/conda-forge/linux-64/docutils-0.16-py36h9880bd3_2.tar.bz2#0fae3d786fe004478f56041b7e606fc4
 https://conda.anaconda.org/conda-forge/linux-64/entrypoints-0.3-py36h9f0ad1d_1002.tar.bz2#3ff18a1ed2e93fb739b97b3669dcaf89
-https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.0-pyhd8ed1ab_0.tar.bz2#97a4bcec44626ddea360efdf7d5ad816
+https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.1-pyhd8ed1ab_0.tar.bz2#e22162ed945059586d1b6b603d07c48e
 https://conda.anaconda.org/conda-forge/linux-64/jedi-0.17.2-py36h9f0ad1d_1.tar.bz2#7aa1974ca53aa6f662c4e24a15f495b9
 https://conda.anaconda.org/conda-forge/linux-64/markupsafe-1.1.1-py36he6145b8_2.tar.bz2#a4145312b908f2e145ed865c135bfa2e
 https://conda.anaconda.org/conda-forge/linux-64/mistune-0.8.4-py36h8c4c3a4_1002.tar.bz2#1f094e44c9d7356638cda5d6cb763510
@@ -86,7 +86,7 @@ https://conda.anaconda.org/conda-forge/linux-64/traitlets-4.3.3-py36h9f0ad1d_1.t
 https://conda.anaconda.org/conda-forge/linux-64/brotlipy-0.7.0-py36he6145b8_1001.tar.bz2#49563e14138ee2a2e1028ab4aa6a7ee3
 https://conda.anaconda.org/conda-forge/linux-64/cryptography-3.2.1-py36h6ec43e4_0.tar.bz2#9e37e4ebbea5f4bcb50190192bbcc212
 https://conda.anaconda.org/conda-forge/linux-64/doit-0.33.1-py36h9f0ad1d_1.tar.bz2#03ff97a03955a189acdbc8c4d196e5e1
-https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.0-hd8ed1ab_0.tar.bz2#182b3a7c361dfc0de2ed1abf90fd61c8
+https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.1-hd8ed1ab_0.tar.bz2#a884b1bcaa2d48a6bc299dcba787db7a
 https://conda.anaconda.org/conda-forge/linux-64/jupyter_core-4.7.0-py36h5fab9bb_0.tar.bz2#1185d2559694206b07516039f1208763
 https://conda.anaconda.org/conda-forge/linux-64/setuptools-49.6.0-py36h9880bd3_2.tar.bz2#ba1f9cf60677266d31905e6ce7899b0a
 https://conda.anaconda.org/conda-forge/linux-64/watchdog-0.10.4-py36h5fab9bb_0.tar.bz2#5495d9c8201962471b0fc996d1a794d3
@@ -96,7 +96,7 @@ https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2
 https://conda.anaconda.org/conda-forge/linux-64/jsonschema-3.2.0-py36h9f0ad1d_1.tar.bz2#eefe83ff43117f8af6d4641d1bc9fce6
 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a
 https://conda.anaconda.org/conda-forge/noarch/livereload-2.6.3-pyh9f0ad1d_0.tar.bz2#b7190e3ec3eff52839434bf4698e2d62
-https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1
+https://conda.anaconda.org/conda-forge/noarch/pip-20.3.1-pyhd8ed1ab_0.tar.bz2#bd6aa73eed4afc399688200778a609f6
 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723
 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f
 https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7
diff --git a/.github/locks/docs/osx-64/conda.lock b/.github/locks/docs/osx-64/conda.lock
index 7683d932..01c6b999 100644
--- a/.github/locks/docs/osx-64/conda.lock
+++ b/.github/locks/docs/osx-64/conda.lock
@@ -19,7 +19,7 @@ https://conda.anaconda.org/conda-forge/osx-64/readline-8.0-h0678c8f_2.tar.bz2#8f
 https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.10-hb0a8c7a_1.tar.bz2#f7477bf81dcfc7b4dddc7b3790a99a0c
 https://conda.anaconda.org/conda-forge/osx-64/zeromq-4.3.3-h74dc148_3.tar.bz2#365c52e91cb00d96d15bef9eddf9f7f8
 https://conda.anaconda.org/conda-forge/osx-64/nodejs-14.15.1-heaeed3d_0.tar.bz2#ab7d3bb7b92c6b6f8a3e8b7f33019ff4
-https://conda.anaconda.org/conda-forge/osx-64/sqlite-3.33.0-h960bd1c_1.tar.bz2#d86a1d10a189d4c000a61971110f4f55
+https://conda.anaconda.org/conda-forge/osx-64/sqlite-3.34.0-h17101e1_0.tar.bz2#9e9694f119bb1a2362a0cc0249651835
 https://conda.anaconda.org/conda-forge/osx-64/python-3.6.11-h4f09611_3_cpython.tar.bz2#649eaeb3afee248d7bb187b75449b247
 https://conda.anaconda.org/conda-forge/noarch/alabaster-0.7.12-py_0.tar.bz2#2489a97287f90176ecdc3ca982b4b0a0
 https://conda.anaconda.org/conda-forge/osx-64/argh-0.26.2-py36_1001.tar.bz2#9ec34ec7c642e2088e3d9e3b2ac45817
@@ -54,16 +54,16 @@ https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-qthelp-1.0.3-py_0.ta
 https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-serializinghtml-1.1.4-py_0.tar.bz2#8ea6a8036e28dba8827d35c764709358
 https://conda.anaconda.org/conda-forge/noarch/testpath-0.4.4-py_0.tar.bz2#3b98fff4d5342bebde2ecaa314f796f9
 https://conda.anaconda.org/conda-forge/osx-64/webencodings-0.5.1-py36_0.tar.bz2#8681de6887931e0f82f7e67307c5bbc8
-https://conda.anaconda.org/conda-forge/noarch/wheel-0.35.1-pyh9f0ad1d_0.tar.bz2#126827869be32f21872a2b30ebe2b038
+https://conda.anaconda.org/conda-forge/noarch/wheel-0.36.0-pyhd3deb0d_0.tar.bz2#f144bcd310e543bd9c8aa17c8ba1ee02
 https://conda.anaconda.org/conda-forge/noarch/zipp-3.4.0-py_0.tar.bz2#0df927d2e46244cef8fd75d7ec2ba51c
-https://conda.anaconda.org/conda-forge/osx-64/appnope-0.1.0-py36h79c6626_1003.tar.bz2#96a994473baf8852133efae40d62ea2e
+https://conda.anaconda.org/conda-forge/osx-64/appnope-0.1.2-py36h79c6626_0.tar.bz2#dc6ea0633c4851d4616c81fee36812a8
 https://conda.anaconda.org/conda-forge/noarch/babel-2.9.0-pyhd3deb0d_0.tar.bz2#1cb532c9a6fd4e56a9f0906b87c17b76
 https://conda.anaconda.org/conda-forge/osx-64/certifi-2020.11.8-py36h79c6626_0.tar.bz2#7336a28fb4317349c539db186f788221
 https://conda.anaconda.org/conda-forge/osx-64/cffi-1.14.4-py36hfe0777f_1.tar.bz2#292b90dba767fca5e0f516252d7e45d6
 https://conda.anaconda.org/conda-forge/osx-64/chardet-3.0.4-py36h2432673_1008.tar.bz2#4395c85b8e58aa02c5a2bb291b91c3f0
 https://conda.anaconda.org/conda-forge/osx-64/docutils-0.16-py36h2432673_2.tar.bz2#9743091251e4f5e1ae87696088628f6b
 https://conda.anaconda.org/conda-forge/osx-64/entrypoints-0.3-py36h9f0ad1d_1002.tar.bz2#50e84528da4a1ff44ff6c80b273c2b35
-https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.0-pyhd8ed1ab_0.tar.bz2#97a4bcec44626ddea360efdf7d5ad816
+https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.1-pyhd8ed1ab_0.tar.bz2#e22162ed945059586d1b6b603d07c48e
 https://conda.anaconda.org/conda-forge/osx-64/jedi-0.17.2-py36h79c6626_1.tar.bz2#ffcf622b1afd6c66880e7c984d8c91a9
 https://conda.anaconda.org/conda-forge/osx-64/macfsevents-0.8.1-py36h9de38fb_1001.tar.bz2#5fb1a2501d6c5ed6ea863d58f4795560
 https://conda.anaconda.org/conda-forge/osx-64/markupsafe-1.1.1-py36ha3de816_2.tar.bz2#e16897adb81e1cb39fef08f0e5df87a5
@@ -82,7 +82,7 @@ https://conda.anaconda.org/conda-forge/osx-64/traitlets-4.3.3-py36h9f0ad1d_1.tar
 https://conda.anaconda.org/conda-forge/osx-64/brotlipy-0.7.0-py36ha3de816_1001.tar.bz2#c3a22d0ad984182a15fb4b5bc07429f6
 https://conda.anaconda.org/conda-forge/osx-64/cryptography-3.2.1-py36h564ae50_0.tar.bz2#8591d2e833f0c39f84000d7f17b7aa2f
 https://conda.anaconda.org/conda-forge/osx-64/doit-0.33.1-py36h9f0ad1d_1.tar.bz2#55c0ce8dabe59a8e741fd01b033c0d9b
-https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.0-hd8ed1ab_0.tar.bz2#182b3a7c361dfc0de2ed1abf90fd61c8
+https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.1-hd8ed1ab_0.tar.bz2#a884b1bcaa2d48a6bc299dcba787db7a
 https://conda.anaconda.org/conda-forge/osx-64/jupyter_core-4.7.0-py36h79c6626_0.tar.bz2#343abeda1fc2020c9785ffeece197c6b
 https://conda.anaconda.org/conda-forge/osx-64/setuptools-49.6.0-py36h2432673_2.tar.bz2#e774848c6628d67d6f7cb95c9128ee79
 https://conda.anaconda.org/conda-forge/osx-64/watchdog-0.10.4-py36h7b4949f_0.tar.bz2#38c6a57c81eab754e8a7ac49d6c01f97
@@ -92,7 +92,7 @@ https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2
 https://conda.anaconda.org/conda-forge/osx-64/jsonschema-3.2.0-py36h9f0ad1d_1.tar.bz2#a2ad95050f62f8b4f86a125f77fd9df5
 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a
 https://conda.anaconda.org/conda-forge/noarch/livereload-2.6.3-pyh9f0ad1d_0.tar.bz2#b7190e3ec3eff52839434bf4698e2d62
-https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1
+https://conda.anaconda.org/conda-forge/noarch/pip-20.3.1-pyhd8ed1ab_0.tar.bz2#bd6aa73eed4afc399688200778a609f6
 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723
 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f
 https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7
diff --git a/.github/locks/docs/win-64/conda.lock b/.github/locks/docs/win-64/conda.lock
index 31e8ad6e..9e8bebb4 100644
--- a/.github/locks/docs/win-64/conda.lock
+++ b/.github/locks/docs/win-64/conda.lock
@@ -45,7 +45,7 @@ https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-qthelp-1.0.3-py_0.ta
 https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-serializinghtml-1.1.4-py_0.tar.bz2#8ea6a8036e28dba8827d35c764709358
 https://conda.anaconda.org/conda-forge/noarch/testpath-0.4.4-py_0.tar.bz2#3b98fff4d5342bebde2ecaa314f796f9
 https://conda.anaconda.org/conda-forge/win-64/webencodings-0.5.1-py36_0.tar.bz2#101c444711dff0ea867743b52d2393db
-https://conda.anaconda.org/conda-forge/noarch/wheel-0.35.1-pyh9f0ad1d_0.tar.bz2#126827869be32f21872a2b30ebe2b038
+https://conda.anaconda.org/conda-forge/noarch/wheel-0.36.0-pyhd3deb0d_0.tar.bz2#f144bcd310e543bd9c8aa17c8ba1ee02
 https://conda.anaconda.org/conda-forge/win-64/zeromq-4.3.3-h0e60522_3.tar.bz2#3f14354fbaa50a70595d6d1a54292996
 https://conda.anaconda.org/conda-forge/noarch/zipp-3.4.0-py_0.tar.bz2#0df927d2e46244cef8fd75d7ec2ba51c
 https://conda.anaconda.org/conda-forge/noarch/babel-2.9.0-pyhd3deb0d_0.tar.bz2#1cb532c9a6fd4e56a9f0906b87c17b76
@@ -55,7 +55,7 @@ https://conda.anaconda.org/conda-forge/win-64/chardet-3.0.4-py36hd36e781_1008.ta
 https://conda.anaconda.org/conda-forge/win-64/docutils-0.16-py36hd36e781_2.tar.bz2#c88aa34374401aed15b8564e4d7d9c84
 https://conda.anaconda.org/conda-forge/win-64/doit-0.33.1-py36h9f0ad1d_1.tar.bz2#eda38f9e8dc256068db9f41d2c26febb
 https://conda.anaconda.org/conda-forge/win-64/entrypoints-0.3-py36h9f0ad1d_1002.tar.bz2#2b77a25e6a38ae845abff3e0d6c695bd
-https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.0-pyhd8ed1ab_0.tar.bz2#97a4bcec44626ddea360efdf7d5ad816
+https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.1-pyhd8ed1ab_0.tar.bz2#e22162ed945059586d1b6b603d07c48e
 https://conda.anaconda.org/conda-forge/win-64/jedi-0.17.2-py36ha15d459_1.tar.bz2#490ace8303a86ab3f83340b5d3da4ff7
 https://conda.anaconda.org/conda-forge/win-64/markupsafe-1.1.1-py36hc753bc4_2.tar.bz2#9e36106ae933f25f38ba10f0d4c45572
 https://conda.anaconda.org/conda-forge/win-64/mistune-0.8.4-py36h779f372_1002.tar.bz2#0d10ecf686c4bd79b45897dbd8bedd8b
@@ -73,7 +73,7 @@ https://conda.anaconda.org/conda-forge/win-64/win_inet_pton-1.1.0-py36h9f0ad1d_1
 https://conda.anaconda.org/conda-forge/win-64/wincertstore-0.2-py36h9f0ad1d_1005.tar.bz2#62292c9b3716b2e17a5b59b69492c7df
 https://conda.anaconda.org/conda-forge/win-64/brotlipy-0.7.0-py36hc753bc4_1001.tar.bz2#03adcc452e95ce7558630b1b28225de6
 https://conda.anaconda.org/conda-forge/win-64/cryptography-3.2.1-py36he58ceb7_0.tar.bz2#13f6f3a96795e8f12c5aff025561ab8c
-https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.0-hd8ed1ab_0.tar.bz2#182b3a7c361dfc0de2ed1abf90fd61c8
+https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.1-hd8ed1ab_0.tar.bz2#a884b1bcaa2d48a6bc299dcba787db7a
 https://conda.anaconda.org/conda-forge/win-64/jupyter_core-4.7.0-py36ha15d459_0.tar.bz2#f6e94f062740c05871eff07ac9f58dc3
 https://conda.anaconda.org/conda-forge/win-64/pysocks-1.7.1-py36hd36e781_2.tar.bz2#d26259b7eeccf43768a208820955bf85
 https://conda.anaconda.org/conda-forge/win-64/setuptools-49.6.0-py36hd36e781_2.tar.bz2#5ede4e74bcbf71d32c473552da946c72
@@ -84,7 +84,7 @@ https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2
 https://conda.anaconda.org/conda-forge/win-64/jsonschema-3.2.0-py36h9f0ad1d_1.tar.bz2#4dfe69fb8ad8543e4654ea881f19c8e8
 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a
 https://conda.anaconda.org/conda-forge/noarch/livereload-2.6.3-pyh9f0ad1d_0.tar.bz2#b7190e3ec3eff52839434bf4698e2d62
-https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1
+https://conda.anaconda.org/conda-forge/noarch/pip-20.3.1-pyhd8ed1ab_0.tar.bz2#bd6aa73eed4afc399688200778a609f6
 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723
 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f
 https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7
diff --git a/.github/locks/lint/linux-64/conda.lock b/.github/locks/lint/linux-64/conda.lock
index 5d03a021..325183ad 100644
--- a/.github/locks/lint/linux-64/conda.lock
+++ b/.github/locks/lint/linux-64/conda.lock
@@ -21,7 +21,7 @@ https://conda.anaconda.org/conda-forge/linux-64/zlib-1.2.11-h516909a_1010.tar.bz
 https://conda.anaconda.org/conda-forge/linux-64/nodejs-14.15.1-h25f6087_0.tar.bz2#81f0fc302b7e637943c8a3334ed7b1fd
 https://conda.anaconda.org/conda-forge/linux-64/readline-8.0-he28a2e2_2.tar.bz2#4d0ae8d473f863696088f76800ef9d38
 https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.10-hed695b0_1.tar.bz2#7ef837cd455bd0f19f49b8b62d4cb568
-https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.33.0-h4cf870e_1.tar.bz2#1968ff6c4b8fbd2903f6672e292d932d
+https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.34.0-h74cdb3f_0.tar.bz2#0a83e21e8c1929cc9a1e21ebb2459fc5
 https://conda.anaconda.org/conda-forge/linux-64/yarn-1.22.10-0.tar.bz2#a2a4efe3536edf0798dd258834de62bc
 https://conda.anaconda.org/conda-forge/linux-64/python-3.8.6-hffdb5ce_1_cpython.tar.bz2#8a33708324a714c7b69d4bd49774166f
 https://conda.anaconda.org/conda-forge/noarch/appdirs-1.4.4-pyh9f0ad1d_0.tar.bz2#5f095bc6454094e96f146491fd03633b
@@ -39,11 +39,11 @@ https://conda.anaconda.org/conda-forge/noarch/robotframework-3.2.2-pyh9f0ad1d_0.
 https://conda.anaconda.org/conda-forge/noarch/six-1.15.0-pyh9f0ad1d_0.tar.bz2#1eec421f0f1f39e579e44e4a5ce646a2
 https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_0.tar.bz2#f832c45a477c78bebd107098db465095
 https://conda.anaconda.org/conda-forge/noarch/typing_extensions-3.7.4.3-py_0.tar.bz2#12b96e382730541a4b332420227055ae
-https://conda.anaconda.org/conda-forge/noarch/wheel-0.35.1-pyh9f0ad1d_0.tar.bz2#126827869be32f21872a2b30ebe2b038
+https://conda.anaconda.org/conda-forge/noarch/wheel-0.36.0-pyhd3deb0d_0.tar.bz2#f144bcd310e543bd9c8aa17c8ba1ee02
 https://conda.anaconda.org/conda-forge/noarch/zipp-3.4.0-py_0.tar.bz2#0df927d2e46244cef8fd75d7ec2ba51c
 https://conda.anaconda.org/conda-forge/linux-64/certifi-2020.11.8-py38h578d9bd_0.tar.bz2#dddc61aa1e0e87871d79c6cf951b8482
 https://conda.anaconda.org/conda-forge/linux-64/cffi-1.14.4-py38ha65f79e_1.tar.bz2#070203fb16eb5a01aa74a875084fd7f2
-https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.0-pyhd8ed1ab_0.tar.bz2#97a4bcec44626ddea360efdf7d5ad816
+https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.1-pyhd8ed1ab_0.tar.bz2#e22162ed945059586d1b6b603d07c48e
 https://conda.anaconda.org/conda-forge/linux-64/mypy_extensions-0.4.3-py38h32f6830_2.tar.bz2#6e3e78137fde56d8bc77daf99bf986f5
 https://conda.anaconda.org/conda-forge/linux-64/pyinotify-0.9.6-py38h32f6830_1002.tar.bz2#de46392fc6fb5f50921b0240c71e9d70
 https://conda.anaconda.org/conda-forge/linux-64/pysocks-1.7.1-py38h924ce5b_2.tar.bz2#b589d2f798c01ba2bfbc1afe2f95b639
@@ -59,7 +59,7 @@ https://conda.anaconda.org/conda-forge/linux-64/doit-0.33.1-py38h32f6830_1.tar.b
 https://conda.anaconda.org/conda-forge/linux-64/setuptools-49.6.0-py38h924ce5b_2.tar.bz2#85f49978317e2f963ffd1d0989b16038
 https://conda.anaconda.org/conda-forge/noarch/flake8-3.8.4-py_0.tar.bz2#138b1704321c115bd10e1966320ac790
 https://conda.anaconda.org/conda-forge/linux-64/isort-4.3.21-py38h32f6830_1.tar.bz2#7a962de435df2743269a1cb288a88cfe
-https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1
+https://conda.anaconda.org/conda-forge/noarch/pip-20.3.1-pyhd8ed1ab_0.tar.bz2#bd6aa73eed4afc399688200778a609f6
 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f
 https://conda.anaconda.org/conda-forge/noarch/urllib3-1.26.2-pyhd8ed1ab_0.tar.bz2#8bb930d172961c9ba9ffd6e10a64b844
 https://conda.anaconda.org/conda-forge/linux-64/selenium-3.141.0-py38h1e0a361_1002.tar.bz2#c5407c16d93e0e81d7113caf15d079b7
diff --git a/.github/locks/lint/osx-64/conda.lock b/.github/locks/lint/osx-64/conda.lock
index 871e15be..c61bbc56 100644
--- a/.github/locks/lint/osx-64/conda.lock
+++ b/.github/locks/lint/osx-64/conda.lock
@@ -16,7 +16,7 @@ https://conda.anaconda.org/conda-forge/osx-64/openssl-1.1.1h-haf1e3a3_0.tar.bz2#
 https://conda.anaconda.org/conda-forge/osx-64/readline-8.0-h0678c8f_2.tar.bz2#8f69d684fce8e73328995d7efb77816a
 https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.10-hb0a8c7a_1.tar.bz2#f7477bf81dcfc7b4dddc7b3790a99a0c
 https://conda.anaconda.org/conda-forge/osx-64/nodejs-14.15.1-heaeed3d_0.tar.bz2#ab7d3bb7b92c6b6f8a3e8b7f33019ff4
-https://conda.anaconda.org/conda-forge/osx-64/sqlite-3.33.0-h960bd1c_1.tar.bz2#d86a1d10a189d4c000a61971110f4f55
+https://conda.anaconda.org/conda-forge/osx-64/sqlite-3.34.0-h17101e1_0.tar.bz2#9e9694f119bb1a2362a0cc0249651835
 https://conda.anaconda.org/conda-forge/osx-64/python-3.8.6-h3b7b5d6_1_cpython.tar.bz2#3fd08a5192b00e12ad9c04b3acc9ab1c
 https://conda.anaconda.org/conda-forge/osx-64/yarn-1.22.10-0.tar.bz2#1bd5e0e3a32b25d580bac66f7593bc59
 https://conda.anaconda.org/conda-forge/noarch/appdirs-1.4.4-pyh9f0ad1d_0.tar.bz2#5f095bc6454094e96f146491fd03633b
@@ -34,11 +34,11 @@ https://conda.anaconda.org/conda-forge/noarch/robotframework-3.2.2-pyh9f0ad1d_0.
 https://conda.anaconda.org/conda-forge/noarch/six-1.15.0-pyh9f0ad1d_0.tar.bz2#1eec421f0f1f39e579e44e4a5ce646a2
 https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_0.tar.bz2#f832c45a477c78bebd107098db465095
 https://conda.anaconda.org/conda-forge/noarch/typing_extensions-3.7.4.3-py_0.tar.bz2#12b96e382730541a4b332420227055ae
-https://conda.anaconda.org/conda-forge/noarch/wheel-0.35.1-pyh9f0ad1d_0.tar.bz2#126827869be32f21872a2b30ebe2b038
+https://conda.anaconda.org/conda-forge/noarch/wheel-0.36.0-pyhd3deb0d_0.tar.bz2#f144bcd310e543bd9c8aa17c8ba1ee02
 https://conda.anaconda.org/conda-forge/noarch/zipp-3.4.0-py_0.tar.bz2#0df927d2e46244cef8fd75d7ec2ba51c
 https://conda.anaconda.org/conda-forge/osx-64/certifi-2020.11.8-py38h50d1736_0.tar.bz2#81ff368f40962d5041c16356b279f393
 https://conda.anaconda.org/conda-forge/osx-64/cffi-1.14.4-py38h979bc6b_1.tar.bz2#e648f242bf242deb64206104cb8cbf1f
-https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.0-pyhd8ed1ab_0.tar.bz2#97a4bcec44626ddea360efdf7d5ad816
+https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.1-pyhd8ed1ab_0.tar.bz2#e22162ed945059586d1b6b603d07c48e
 https://conda.anaconda.org/conda-forge/osx-64/macfsevents-0.8.1-py38h4d0b108_1001.tar.bz2#cf030199ecebc197ee1475efdf5ac965
 https://conda.anaconda.org/conda-forge/osx-64/mypy_extensions-0.4.3-py38h32f6830_2.tar.bz2#cdd1d7200b0b00eda749903930c42c19
 https://conda.anaconda.org/conda-forge/osx-64/pysocks-1.7.1-py38h5347e94_2.tar.bz2#fb19eb501a7c78448f9262ef6cde3b19
@@ -54,7 +54,7 @@ https://conda.anaconda.org/conda-forge/osx-64/doit-0.33.1-py38h32f6830_1.tar.bz2
 https://conda.anaconda.org/conda-forge/osx-64/setuptools-49.6.0-py38h5347e94_2.tar.bz2#d60492e2803bc7f3c85544532868cee1
 https://conda.anaconda.org/conda-forge/noarch/flake8-3.8.4-py_0.tar.bz2#138b1704321c115bd10e1966320ac790
 https://conda.anaconda.org/conda-forge/osx-64/isort-4.3.21-py38h32f6830_1.tar.bz2#b55808f63246945fd16bc17a5a7439d3
-https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1
+https://conda.anaconda.org/conda-forge/noarch/pip-20.3.1-pyhd8ed1ab_0.tar.bz2#bd6aa73eed4afc399688200778a609f6
 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f
 https://conda.anaconda.org/conda-forge/noarch/urllib3-1.26.2-pyhd8ed1ab_0.tar.bz2#8bb930d172961c9ba9ffd6e10a64b844
 https://conda.anaconda.org/conda-forge/osx-64/selenium-3.141.0-py38h4d0b108_1002.tar.bz2#22c4963b1ca8d159fccd7630eb98b0e9
diff --git a/.github/locks/lint/win-64/conda.lock b/.github/locks/lint/win-64/conda.lock
index 090a5531..5687a947 100644
--- a/.github/locks/lint/win-64/conda.lock
+++ b/.github/locks/lint/win-64/conda.lock
@@ -8,7 +8,7 @@ https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.16.27012-h30e32a
 https://conda.anaconda.org/conda-forge/win-64/nodejs-14.15.1-h57928b3_0.tar.bz2#d864e5c8a3de3ccf10a5cfc841084c39
 https://conda.anaconda.org/conda-forge/win-64/vc-14.1-h869be7e_1.tar.bz2#4fae57303daa91367eca263374e4a638
 https://conda.anaconda.org/conda-forge/win-64/openssl-1.1.1h-he774522_0.tar.bz2#21844b16355ef8faa21fca97794d6825
-https://conda.anaconda.org/conda-forge/win-64/sqlite-3.33.0-he774522_1.tar.bz2#d71a870ed0940cdf9f4bcb827d12ead6
+https://conda.anaconda.org/conda-forge/win-64/sqlite-3.34.0-h8ffe710_0.tar.bz2#0887d420b945a5342cd03429d475658c
 https://conda.anaconda.org/conda-forge/win-64/yaml-0.2.5-he774522_0.tar.bz2#d41c34441d8bbb6d141e691ae7bccf35
 https://conda.anaconda.org/conda-forge/win-64/yarn-1.22.10-0.tar.bz2#4f94f281c5682908afc43f8bf531bc36
 https://conda.anaconda.org/conda-forge/win-64/python-3.8.6-h7840368_1_cpython.tar.bz2#07903b905072cd232a326225aa7fe247
@@ -27,12 +27,12 @@ https://conda.anaconda.org/conda-forge/noarch/robotframework-3.2.2-pyh9f0ad1d_0.
 https://conda.anaconda.org/conda-forge/noarch/six-1.15.0-pyh9f0ad1d_0.tar.bz2#1eec421f0f1f39e579e44e4a5ce646a2
 https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_0.tar.bz2#f832c45a477c78bebd107098db465095
 https://conda.anaconda.org/conda-forge/noarch/typing_extensions-3.7.4.3-py_0.tar.bz2#12b96e382730541a4b332420227055ae
-https://conda.anaconda.org/conda-forge/noarch/wheel-0.35.1-pyh9f0ad1d_0.tar.bz2#126827869be32f21872a2b30ebe2b038
+https://conda.anaconda.org/conda-forge/noarch/wheel-0.36.0-pyhd3deb0d_0.tar.bz2#f144bcd310e543bd9c8aa17c8ba1ee02
 https://conda.anaconda.org/conda-forge/noarch/zipp-3.4.0-py_0.tar.bz2#0df927d2e46244cef8fd75d7ec2ba51c
 https://conda.anaconda.org/conda-forge/win-64/certifi-2020.11.8-py38haa244fe_0.tar.bz2#1e3a88f8db13d19c4d23422e2f8f0e6c
 https://conda.anaconda.org/conda-forge/win-64/cffi-1.14.4-py38hd8c33c5_1.tar.bz2#2eafaa5f8f4f7e43cfb6dbee50bcb792
 https://conda.anaconda.org/conda-forge/win-64/doit-0.33.1-py38h32f6830_1.tar.bz2#8b263b9225a12d7d926b3266bcbd2d00
-https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.0-pyhd8ed1ab_0.tar.bz2#97a4bcec44626ddea360efdf7d5ad816
+https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.1-pyhd8ed1ab_0.tar.bz2#e22162ed945059586d1b6b603d07c48e
 https://conda.anaconda.org/conda-forge/win-64/mypy_extensions-0.4.3-py38h32f6830_2.tar.bz2#f749c2b175569eaf350b025cde50ee48
 https://conda.anaconda.org/conda-forge/win-64/pyyaml-5.3.1-py38hab1e662_1.tar.bz2#25ce237676e0d4f8029d3440c2f4afc6
 https://conda.anaconda.org/conda-forge/win-64/regex-2020.11.13-py38h294d835_0.tar.bz2#b0fc6e573333bf715f53ebe373bc0c27
@@ -48,7 +48,7 @@ https://conda.anaconda.org/conda-forge/win-64/pysocks-1.7.1-py38h9bdc248_2.tar.b
 https://conda.anaconda.org/conda-forge/win-64/setuptools-49.6.0-py38h9bdc248_2.tar.bz2#98726e11607788e59c4135db810e8521
 https://conda.anaconda.org/conda-forge/noarch/flake8-3.8.4-py_0.tar.bz2#138b1704321c115bd10e1966320ac790
 https://conda.anaconda.org/conda-forge/win-64/isort-4.3.21-py38h32f6830_1.tar.bz2#2cba5a24528e0389e31d0e321817f416
-https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1
+https://conda.anaconda.org/conda-forge/noarch/pip-20.3.1-pyhd8ed1ab_0.tar.bz2#bd6aa73eed4afc399688200778a609f6
 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f
 https://conda.anaconda.org/conda-forge/noarch/urllib3-1.26.2-pyhd8ed1ab_0.tar.bz2#8bb930d172961c9ba9ffd6e10a64b844
 https://conda.anaconda.org/conda-forge/win-64/selenium-3.141.0-py38h1e8a9f7_1002.tar.bz2#82eb5bcde73994ab844862ce24127e70
diff --git a/.github/locks/meta/linux-64/conda.lock b/.github/locks/meta/linux-64/conda.lock
new file mode 100644
index 00000000..1bdf2c86
--- /dev/null
+++ b/.github/locks/meta/linux-64/conda.lock
@@ -0,0 +1,111 @@
+# platform: linux-64
+# env_hash: 98002a8521e5d268817b594ee89025c18763ff97d81ebbc1c40058f0d6d7abbd
+
+@EXPLICIT
+
+https://conda.anaconda.org/conda-forge/linux-64/_libgcc_mutex-0.1-conda_forge.tar.bz2#d7c89558ba9fa0495403155b64376d81
+https://conda.anaconda.org/conda-forge/linux-64/ca-certificates-2020.11.8-ha878542_0.tar.bz2#f9cdccd43ac20a0d1637d84d58c6ff5c
+https://conda.anaconda.org/conda-forge/linux-64/ld_impl_linux-64-2.35.1-hed1e6ac_0.tar.bz2#d0cf77c331382475133dc6c34e7461d7
+https://conda.anaconda.org/conda-forge/linux-64/libstdcxx-ng-9.3.0-h2ae2ef3_17.tar.bz2#342f3c931d0a3a209ab09a522469d20c
+https://conda.anaconda.org/conda-forge/noarch/tzdata-2020d-h516909a_0.tar.bz2#153abe529c372caadf52bde5e07656e3
+https://conda.anaconda.org/conda-forge/linux-64/libgomp-9.3.0-h5dbcf3e_17.tar.bz2#8fd587013b9da8b52050268d50c12305
+https://conda.anaconda.org/conda-forge/linux-64/_openmp_mutex-4.5-1_gnu.tar.bz2#561e277319a41d4f24f5c05a9ef63c04
+https://conda.anaconda.org/conda-forge/linux-64/libgcc-ng-9.3.0-h5dbcf3e_17.tar.bz2#fc9f5adabc4d55cd4b491332adc413e0
+https://conda.anaconda.org/conda-forge/linux-64/bzip2-1.0.8-h7f98852_4.tar.bz2#a1fd65c7ccbf10880423d82bca54eb54
+https://conda.anaconda.org/conda-forge/linux-64/c-ares-1.17.1-h36c2ea0_0.tar.bz2#1aa683618a2df66800d568409d6841d1
+https://conda.anaconda.org/conda-forge/linux-64/expat-2.2.9-he1b5a44_2.tar.bz2#285f5b5ca3209d492224935affd00aab
+https://conda.anaconda.org/conda-forge/linux-64/icu-67.1-he1b5a44_0.tar.bz2#7ced6a5e5c94726af797d2b5a2b09228
+https://conda.anaconda.org/conda-forge/linux-64/libev-4.33-h516909a_1.tar.bz2#6f8720dff19e17ce5d48cfe7f3d2f0a3
+https://conda.anaconda.org/conda-forge/linux-64/libffi-3.3-h58526e2_1.tar.bz2#8e42ee98679696e0ddfde5521c98da60
+https://conda.anaconda.org/conda-forge/linux-64/libiconv-1.16-h516909a_0.tar.bz2#5c0f338a513a2943c659ae619fca9211
+https://conda.anaconda.org/conda-forge/linux-64/liblief-0.10.1-he1b5a44_2.tar.bz2#6dcf6265e59105e5e80185f1a95d33c7
+https://conda.anaconda.org/conda-forge/linux-64/lz4-c-1.9.2-he1b5a44_3.tar.bz2#b2e54aad8640e7a877d2280d3ebfe85b
+https://conda.anaconda.org/conda-forge/linux-64/lzo-2.10-h516909a_1000.tar.bz2#bb14fcb13341b81d5eb386423b9d2bac
+https://conda.anaconda.org/conda-forge/linux-64/ncurses-6.2-h58526e2_4.tar.bz2#509f2a21c4a09214cd737a480dfd80c9
+https://conda.anaconda.org/conda-forge/linux-64/openssl-1.1.1h-h516909a_0.tar.bz2#3a99e0cb8f325dbf8f616da2d2fb6d4f
+https://conda.anaconda.org/conda-forge/linux-64/patchelf-0.11-he1b5a44_0.tar.bz2#da683ac27e9d838254e01639868a5a3e
+https://conda.anaconda.org/conda-forge/linux-64/pcre-8.44-he1b5a44_0.tar.bz2#e647d89cd5cdf62760cf283a001841ff
+https://conda.anaconda.org/conda-forge/linux-64/reproc-14.2.1-h36c2ea0_0.tar.bz2#72dc07a3b9641f9f530bf72e2c7a12b2
+https://conda.anaconda.org/conda-forge/linux-64/ripgrep-12.1.1-h516909a_1.tar.bz2#c15785868032b2612c3719dcd44108ad
+https://conda.anaconda.org/conda-forge/linux-64/xz-5.2.5-h516909a_1.tar.bz2#33f601066901f3e1a85af3522a8113f9
+https://conda.anaconda.org/conda-forge/linux-64/yaml-0.2.5-h516909a_0.tar.bz2#03a530e925414902547cf48da7756db8
+https://conda.anaconda.org/conda-forge/linux-64/zlib-1.2.11-h516909a_1010.tar.bz2#339cc5584e6d26bc73a875ba900028c3
+https://conda.anaconda.org/conda-forge/linux-64/gettext-0.19.8.1-h0b5b191_1005.tar.bz2#ff6f69b593a9e74c0e6b61908ac513fa
+https://conda.anaconda.org/conda-forge/linux-64/libedit-3.1.20191231-he28a2e2_2.tar.bz2#4d331e44109e3f0e19b4cb8f9b82f3e1
+https://conda.anaconda.org/conda-forge/linux-64/libnghttp2-1.41.0-h8cfc5f6_2.tar.bz2#726ca0fed4bde95b056ef26df1efaf60
+https://conda.anaconda.org/conda-forge/linux-64/libsolv-0.7.16-h8b12597_0.tar.bz2#5b013b52b597c1738314c2c89a0f3a97
+https://conda.anaconda.org/conda-forge/linux-64/libssh2-1.9.0-hab1572f_5.tar.bz2#18aaa1bd2238ae2b5e89591046973123
+https://conda.anaconda.org/conda-forge/linux-64/libxml2-2.9.10-h68273f3_2.tar.bz2#0315cae0468a1e17f1e7fad5b13d53f8
+https://conda.anaconda.org/conda-forge/linux-64/readline-8.0-he28a2e2_2.tar.bz2#4d0ae8d473f863696088f76800ef9d38
+https://conda.anaconda.org/conda-forge/linux-64/reproc-cpp-14.2.1-h58526e2_0.tar.bz2#d1d5d63dafc7b2e484d02823606db5d9
+https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.10-hed695b0_1.tar.bz2#7ef837cd455bd0f19f49b8b62d4cb568
+https://conda.anaconda.org/conda-forge/linux-64/zstd-1.4.5-h6597ccf_2.tar.bz2#d60d50f369d40f9787878cdd866fc9d3
+https://conda.anaconda.org/conda-forge/linux-64/krb5-1.17.2-h926e7f8_0.tar.bz2#926325c11478d6e781e76072c117763b
+https://conda.anaconda.org/conda-forge/linux-64/libarchive-3.3.3-hddc7a2b_1008.tar.bz2#053a287e9cca3926369a5f6f21f32764
+https://conda.anaconda.org/conda-forge/linux-64/libglib-2.66.3-h1f3bc88_1.tar.bz2#b4c08d8a6d14f9fb88c3a93305fe30c6
+https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.34.0-h74cdb3f_0.tar.bz2#0a83e21e8c1929cc9a1e21ebb2459fc5
+https://conda.anaconda.org/conda-forge/linux-64/libcurl-7.71.1-hcdd3856_8.tar.bz2#2c81fb9f0d82c04b08617fc73eb615af
+https://conda.anaconda.org/conda-forge/linux-64/python-3.9.0-hffdb5ce_5_cpython.tar.bz2#d26d64e4cf67cbfab3caf9176c9255de
+https://conda.anaconda.org/conda-forge/noarch/appdirs-1.4.4-pyh9f0ad1d_0.tar.bz2#5f095bc6454094e96f146491fd03633b
+https://conda.anaconda.org/conda-forge/noarch/click-7.1.2-pyh9f0ad1d_0.tar.bz2#bd50a970ce07e660c319fdc4d730d3f1
+https://conda.anaconda.org/conda-forge/noarch/cloudpickle-1.6.0-py_0.tar.bz2#76d764d8881719e305f6fa368dc2b65e
+https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.4-pyh9f0ad1d_0.tar.bz2#c08b4c1326b880ed44f3ffb04803332f
+https://conda.anaconda.org/conda-forge/noarch/filelock-3.0.12-pyh9f0ad1d_0.tar.bz2#7544ed05bbbe9bb687bc9bcbe4d6cb46
+https://conda.anaconda.org/conda-forge/linux-64/glib-2.66.3-h9c3ff4c_1.tar.bz2#48b0ada46870c133518d884f02f4f8fa
+https://conda.anaconda.org/conda-forge/noarch/glob2-0.7-py_0.tar.bz2#1f3a88e65e61216e1d475135922dbf6a
+https://conda.anaconda.org/conda-forge/noarch/idna-2.10-pyh9f0ad1d_0.tar.bz2#f95a12b4f435aae6680fe55ae2eb1b06
+https://conda.anaconda.org/conda-forge/noarch/jeepney-0.6.0-pyhd8ed1ab_0.tar.bz2#b926606326ed3558ab887cbf8c4040bf
+https://conda.anaconda.org/conda-forge/noarch/pkginfo-1.6.1-pyh9f0ad1d_0.tar.bz2#9624126b9ae8f1004c137b111a817281
+https://conda.anaconda.org/conda-forge/noarch/pycparser-2.20-pyh9f0ad1d_2.tar.bz2#aa798d50ffd182a0f6f31478c7f434f6
+https://conda.anaconda.org/conda-forge/noarch/pyparsing-2.4.7-pyh9f0ad1d_0.tar.bz2#626c4f20d5bf06dcec9cf2eaa31725c7
+https://conda.anaconda.org/conda-forge/linux-64/python_abi-3.9-1_cp39.tar.bz2#9ee3692d976902241a3392495768fe98
+https://conda.anaconda.org/conda-forge/noarch/pytz-2020.4-pyhd8ed1ab_0.tar.bz2#14aefc827cbbd156cb1bd9e992210380
+https://conda.anaconda.org/conda-forge/noarch/rfc3986-1.4.0-pyh9f0ad1d_0.tar.bz2#4dd11e722e5a29afc55e5d7f15782130
+https://conda.anaconda.org/conda-forge/noarch/six-1.15.0-pyh9f0ad1d_0.tar.bz2#1eec421f0f1f39e579e44e4a5ce646a2
+https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.0.1-py_1.tar.bz2#aa1db70848c19bace567ba39a157f508
+https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_0.tar.bz2#f832c45a477c78bebd107098db465095
+https://conda.anaconda.org/conda-forge/noarch/tqdm-4.54.0-pyhd8ed1ab_0.tar.bz2#0a926e66325587b1c7479982241bcec1
+https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-py_1.tar.bz2#3563be4c5611a44210d9ba0c16113136
+https://conda.anaconda.org/conda-forge/noarch/wheel-0.36.0-pyhd3deb0d_0.tar.bz2#f144bcd310e543bd9c8aa17c8ba1ee02
+https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.9.3-pyhb0f4dca_0.tar.bz2#d243a293d7303ab6195d96ce8c16b1cb
+https://conda.anaconda.org/conda-forge/linux-64/certifi-2020.11.8-py39hf3d152e_0.tar.bz2#39fd3089b4cf84233d462a9b800fc586
+https://conda.anaconda.org/conda-forge/linux-64/cffi-1.14.4-py39he32792d_1.tar.bz2#e780e81c44e1a695d5b9dd6618a3599a
+https://conda.anaconda.org/conda-forge/linux-64/chardet-3.0.4-py39h079e4ff_1008.tar.bz2#7162795b821bf41ecb26ce145dba3975
+https://conda.anaconda.org/conda-forge/noarch/click-default-group-1.2.1-py_0.tar.bz2#64a66d3d4db54208496c4e2fa822eeee
+https://conda.anaconda.org/conda-forge/linux-64/conda-package-handling-1.7.2-py39h38d8fee_0.tar.bz2#b4e8f1f41b18b8a9dc9dfbde6e54cdad
+https://conda.anaconda.org/conda-forge/linux-64/dbus-1.13.6-hfdff14a_1.tar.bz2#4caaca6356992ee545080c7d7193b5a3
+https://conda.anaconda.org/conda-forge/linux-64/docutils-0.16-py39hde42818_2.tar.bz2#760dcd7a6d5c5a5d9fac40b2dd88f4aa
+https://conda.anaconda.org/conda-forge/linux-64/future-0.18.2-py39hf3d152e_2.tar.bz2#f54e1a248de1a1b5166fe266a27321be
+https://conda.anaconda.org/conda-forge/linux-64/markupsafe-1.1.1-py39h38d8fee_2.tar.bz2#512d9a3b59d316b608ee5743c829ae59
+https://conda.anaconda.org/conda-forge/noarch/packaging-20.4-pyh9f0ad1d_0.tar.bz2#6d160f7346ac815500b5475d9a0f88a9
+https://conda.anaconda.org/conda-forge/linux-64/psutil-5.7.3-py39h38d8fee_0.tar.bz2#756a3f8df8fb89f23d13fde198bd48ae
+https://conda.anaconda.org/conda-forge/linux-64/py-lief-0.10.1-py39hfbd4741_2.tar.bz2#894a90fc9bfad553f69e759282f38132
+https://conda.anaconda.org/conda-forge/linux-64/pycosat-0.6.3-py39h38d8fee_1005.tar.bz2#e3c4ee12e0242a0f808b222ee29e50b2
+https://conda.anaconda.org/conda-forge/linux-64/pyinotify-0.9.6-py39hde42818_1002.tar.bz2#bc851a080e14d5c1cb1035eb2e65bdbe
+https://conda.anaconda.org/conda-forge/linux-64/pysocks-1.7.1-py39h079e4ff_2.tar.bz2#58bc1cb2d6966ee6452928ddefb4d2ba
+https://conda.anaconda.org/conda-forge/linux-64/python-libarchive-c-2.9-py39h079e4ff_2.tar.bz2#56d8ea40751483b681c8f927ed4fc4a7
+https://conda.anaconda.org/conda-forge/linux-64/pyyaml-5.3.1-py39h38d8fee_1.tar.bz2#855027797ec6e3237e3d7bfd76de92a3
+https://conda.anaconda.org/conda-forge/linux-64/ruamel_yaml-0.15.80-py39h38d8fee_1003.tar.bz2#b728102070f0c980a6ef302bfa215981
+https://conda.anaconda.org/conda-forge/linux-64/brotlipy-0.7.0-py39h38d8fee_1001.tar.bz2#0566ecef0c7d763b4c0819ac5c7f8dae
+https://conda.anaconda.org/conda-forge/linux-64/cmarkgfm-0.4.2-py39h07f9747_3.tar.bz2#23cc030b7dd37a33590a3377bdfca050
+https://conda.anaconda.org/conda-forge/linux-64/cryptography-3.2.1-py39h01d1d65_0.tar.bz2#c1db0a6029b7696f26315048bfc3b1f4
+https://conda.anaconda.org/conda-forge/linux-64/doit-0.33.1-py39hde42818_1.tar.bz2#b90af2ca73f3686e5171798ca539ea85
+https://conda.anaconda.org/conda-forge/linux-64/setuptools-49.6.0-py39h079e4ff_2.tar.bz2#7cebf33355b537e5706bfe0a546bb193
+https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2#d4506316b85679972c0b78d4d1c0b701
+https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551
+https://conda.anaconda.org/conda-forge/noarch/pip-20.3.1-pyhd8ed1ab_0.tar.bz2#bd6aa73eed4afc399688200778a609f6
+https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723
+https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f
+https://conda.anaconda.org/conda-forge/linux-64/secretstorage-3.3.0-py39hf3d152e_0.tar.bz2#68485b5c66d808fd4d03cee616889a3c
+https://conda.anaconda.org/conda-forge/linux-64/conda-verify-3.1.1-py39hde42818_1002.tar.bz2#f71f3d3ea8a4d98a9839ca5df8571cba
+https://conda.anaconda.org/conda-forge/linux-64/keyring-21.5.0-py39hf3d152e_0.tar.bz2#22fc7a7e1bc552ffb2ffeda0531f0fc4
+https://conda.anaconda.org/conda-forge/noarch/readme_renderer-27.0-pyh9f0ad1d_0.tar.bz2#38446dff7f69efd3fab98ab4dc68c0c8
+https://conda.anaconda.org/conda-forge/noarch/urllib3-1.25.11-py_0.tar.bz2#4ce0599839b2b4418befe201e5f072fc
+https://conda.anaconda.org/conda-forge/noarch/requests-2.25.0-pyhd3deb0d_0.tar.bz2#5b983af1f3dcd93ef20f6067d077f6fe
+https://conda.anaconda.org/conda-forge/linux-64/conda-4.9.2-py39hf3d152e_0.tar.bz2#3d4250921bf2c02e2f51c8392c445786
+https://conda.anaconda.org/conda-forge/noarch/ensureconda-1.3.0-pyhd8ed1ab_0.tar.bz2#24e565cbb31a38162df00e31bb909940
+https://conda.anaconda.org/conda-forge/noarch/requests-toolbelt-0.9.1-py_0.tar.bz2#402668adee8fcba9a9c265cdc2a88f5a
+https://conda.anaconda.org/conda-forge/linux-64/conda-build-3.20.5-py39h079e4ff_0.tar.bz2#ee29c6b869e92fc5e58343844bbe19b9
+https://conda.anaconda.org/conda-forge/noarch/conda-lock-0.7.3-pyhd8ed1ab_0.tar.bz2#559ade16cbab85c06f6d4ec0e202fbca
+https://conda.anaconda.org/conda-forge/linux-64/mamba-0.7.3-py39hf5d3591_0.tar.bz2#e69a3828bacc5ced3a00079061ee8131
+https://conda.anaconda.org/conda-forge/linux-64/twine-3.2.0-py39hde42818_1.tar.bz2#b7d0f3dcce7449ffda9e898f3aa32db9
diff --git a/.github/locks/meta/osx-64/conda.lock b/.github/locks/meta/osx-64/conda.lock
new file mode 100644
index 00000000..c9ae8dc8
--- /dev/null
+++ b/.github/locks/meta/osx-64/conda.lock
@@ -0,0 +1,97 @@
+# platform: osx-64
+# env_hash: 1f319789d0efc83974246fe26976cfbf6a8b9367790de22de6f53fbb30ccfb83
+
+@EXPLICIT
+
+https://conda.anaconda.org/conda-forge/osx-64/bzip2-1.0.8-hc929b4f_4.tar.bz2#521b82c700a64bac7d8da27539422e91
+https://conda.anaconda.org/conda-forge/osx-64/c-ares-1.17.1-hc929b4f_0.tar.bz2#24fc0b91a6eacc6753fef90514d67ce9
+https://conda.anaconda.org/conda-forge/osx-64/ca-certificates-2020.11.8-h033912b_0.tar.bz2#80ae143af10fb5c662a3ef1579948c30
+https://conda.anaconda.org/conda-forge/osx-64/libcxx-11.0.0-h4c3b8ed_1.tar.bz2#6a22f1c899bcf110c39cd6d959a8555e
+https://conda.anaconda.org/conda-forge/osx-64/libev-4.33-haf1e3a3_1.tar.bz2#79dc2be110b2a3d1e97ec21f691c50ad
+https://conda.anaconda.org/conda-forge/osx-64/libiconv-1.16-haf1e3a3_0.tar.bz2#c5fab167412a52e491c8e11453ae016f
+https://conda.anaconda.org/conda-forge/osx-64/lzo-2.10-haf1e3a3_1000.tar.bz2#0b6bca372a95d6c602c7a922e928ce79
+https://conda.anaconda.org/conda-forge/osx-64/ncurses-6.2-h2e338ed_4.tar.bz2#9cef1910395d1543527583e73dba30f1
+https://conda.anaconda.org/conda-forge/osx-64/reproc-14.2.1-hbcb3906_0.tar.bz2#7a60834ed66c6dbc204ee40ff400ea4a
+https://conda.anaconda.org/conda-forge/osx-64/ripgrep-12.1.1-haf1e3a3_1.tar.bz2#4ef0173af511e6fcf01c0c815b2ec9b7
+https://conda.anaconda.org/conda-forge/noarch/tzdata-2020d-h516909a_0.tar.bz2#153abe529c372caadf52bde5e07656e3
+https://conda.anaconda.org/conda-forge/osx-64/xz-5.2.5-haf1e3a3_1.tar.bz2#41116deb499e9bc58048c297d6403ce6
+https://conda.anaconda.org/conda-forge/osx-64/yaml-0.2.5-haf1e3a3_0.tar.bz2#84c2fc186995c25a43e86ed708065572
+https://conda.anaconda.org/conda-forge/osx-64/zlib-1.2.11-h7795811_1010.tar.bz2#7d39e47e16ed0107f37c7224d5b5be8b
+https://conda.anaconda.org/conda-forge/osx-64/icu-67.1-hb1e8313_0.tar.bz2#7ee9c0ceb94bf007b86e1564626e1ca0
+https://conda.anaconda.org/conda-forge/osx-64/libedit-3.1.20191231-hed1e85f_2.tar.bz2#779da5393199c3af97bd8f12c804b749
+https://conda.anaconda.org/conda-forge/osx-64/libffi-3.3-h74dc148_1.tar.bz2#d42b1898e6862637089ba29dfe1f7b23
+https://conda.anaconda.org/conda-forge/osx-64/liblief-0.10.1-hb1e8313_2.tar.bz2#14c7fe39f28d8f23f8bd6312e9d47f6f
+https://conda.anaconda.org/conda-forge/osx-64/libsolv-0.7.16-hab81aa3_0.tar.bz2#e1d041436f5f4a9bf24d373c3b9385fa
+https://conda.anaconda.org/conda-forge/osx-64/lz4-c-1.9.2-hb1e8313_3.tar.bz2#7737f6db9eb5e572d22b88b667d1f3f9
+https://conda.anaconda.org/conda-forge/osx-64/openssl-1.1.1h-haf1e3a3_0.tar.bz2#6be73e185e6a92a29571dd9a2dfb5251
+https://conda.anaconda.org/conda-forge/osx-64/readline-8.0-h0678c8f_2.tar.bz2#8f69d684fce8e73328995d7efb77816a
+https://conda.anaconda.org/conda-forge/osx-64/reproc-cpp-14.2.1-h2e338ed_0.tar.bz2#81f8c26dd046e967c4536054e1863001
+https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.10-hb0a8c7a_1.tar.bz2#f7477bf81dcfc7b4dddc7b3790a99a0c
+https://conda.anaconda.org/conda-forge/osx-64/krb5-1.17.2-h60d9502_0.tar.bz2#abf2add2a1ade1920b25a8f3327a1aa0
+https://conda.anaconda.org/conda-forge/osx-64/libnghttp2-1.41.0-h7580e61_2.tar.bz2#1731a2e73e2d68d455a1b8b8de0265dc
+https://conda.anaconda.org/conda-forge/osx-64/libssh2-1.9.0-h39bdce6_5.tar.bz2#476b4daa896469326286db3a37e23190
+https://conda.anaconda.org/conda-forge/osx-64/libxml2-2.9.10-h7fdee97_2.tar.bz2#0e85f302f80f137d2a9783a0e6f9a154
+https://conda.anaconda.org/conda-forge/osx-64/sqlite-3.34.0-h17101e1_0.tar.bz2#9e9694f119bb1a2362a0cc0249651835
+https://conda.anaconda.org/conda-forge/osx-64/zstd-1.4.5-h0384e3a_2.tar.bz2#9fc03147df58a6ecd6f4013d85357283
+https://conda.anaconda.org/conda-forge/osx-64/libarchive-3.3.3-hf12134e_1008.tar.bz2#e1b8cf048477aa74d11109dc11c51182
+https://conda.anaconda.org/conda-forge/osx-64/libcurl-7.71.1-h9bf37e3_8.tar.bz2#1a136204085b4c620fe2ed74fb1112bf
+https://conda.anaconda.org/conda-forge/osx-64/python-3.9.0-h4f09611_5_cpython.tar.bz2#5223fbb1e0ce43ad372c27b03e0bf6a7
+https://conda.anaconda.org/conda-forge/noarch/appdirs-1.4.4-pyh9f0ad1d_0.tar.bz2#5f095bc6454094e96f146491fd03633b
+https://conda.anaconda.org/conda-forge/noarch/click-7.1.2-pyh9f0ad1d_0.tar.bz2#bd50a970ce07e660c319fdc4d730d3f1
+https://conda.anaconda.org/conda-forge/noarch/cloudpickle-1.6.0-py_0.tar.bz2#76d764d8881719e305f6fa368dc2b65e
+https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.4-pyh9f0ad1d_0.tar.bz2#c08b4c1326b880ed44f3ffb04803332f
+https://conda.anaconda.org/conda-forge/noarch/filelock-3.0.12-pyh9f0ad1d_0.tar.bz2#7544ed05bbbe9bb687bc9bcbe4d6cb46
+https://conda.anaconda.org/conda-forge/noarch/glob2-0.7-py_0.tar.bz2#1f3a88e65e61216e1d475135922dbf6a
+https://conda.anaconda.org/conda-forge/noarch/idna-2.10-pyh9f0ad1d_0.tar.bz2#f95a12b4f435aae6680fe55ae2eb1b06
+https://conda.anaconda.org/conda-forge/noarch/pkginfo-1.6.1-pyh9f0ad1d_0.tar.bz2#9624126b9ae8f1004c137b111a817281
+https://conda.anaconda.org/conda-forge/noarch/pycparser-2.20-pyh9f0ad1d_2.tar.bz2#aa798d50ffd182a0f6f31478c7f434f6
+https://conda.anaconda.org/conda-forge/noarch/pyparsing-2.4.7-pyh9f0ad1d_0.tar.bz2#626c4f20d5bf06dcec9cf2eaa31725c7
+https://conda.anaconda.org/conda-forge/osx-64/python_abi-3.9-1_cp39.tar.bz2#538aaaaa7300d8cefba993d78a390592
+https://conda.anaconda.org/conda-forge/noarch/pytz-2020.4-pyhd8ed1ab_0.tar.bz2#14aefc827cbbd156cb1bd9e992210380
+https://conda.anaconda.org/conda-forge/noarch/rfc3986-1.4.0-pyh9f0ad1d_0.tar.bz2#4dd11e722e5a29afc55e5d7f15782130
+https://conda.anaconda.org/conda-forge/noarch/six-1.15.0-pyh9f0ad1d_0.tar.bz2#1eec421f0f1f39e579e44e4a5ce646a2
+https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.0.1-py_1.tar.bz2#aa1db70848c19bace567ba39a157f508
+https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_0.tar.bz2#f832c45a477c78bebd107098db465095
+https://conda.anaconda.org/conda-forge/noarch/tqdm-4.54.0-pyhd8ed1ab_0.tar.bz2#0a926e66325587b1c7479982241bcec1
+https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-py_1.tar.bz2#3563be4c5611a44210d9ba0c16113136
+https://conda.anaconda.org/conda-forge/noarch/wheel-0.36.0-pyhd3deb0d_0.tar.bz2#f144bcd310e543bd9c8aa17c8ba1ee02
+https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.9.3-pyhb0f4dca_0.tar.bz2#d243a293d7303ab6195d96ce8c16b1cb
+https://conda.anaconda.org/conda-forge/osx-64/certifi-2020.11.8-py39h6e9494a_0.tar.bz2#b244aa5466ae3befb8b2ad9349ffc44c
+https://conda.anaconda.org/conda-forge/osx-64/cffi-1.14.4-py39h7786acb_1.tar.bz2#9f6f344eb4e89e0cce955d4c8fe17ca6
+https://conda.anaconda.org/conda-forge/osx-64/chardet-3.0.4-py39h2c36a5b_1008.tar.bz2#1cf27b1f3032b36e3d30b1791e8386e2
+https://conda.anaconda.org/conda-forge/noarch/click-default-group-1.2.1-py_0.tar.bz2#64a66d3d4db54208496c4e2fa822eeee
+https://conda.anaconda.org/conda-forge/osx-64/conda-package-handling-1.7.2-py39h66d5b7b_0.tar.bz2#95b0fccb400b2f8c8cd992b0a8f91a58
+https://conda.anaconda.org/conda-forge/osx-64/docutils-0.16-py39hde42818_2.tar.bz2#221b5af10ee97e08da7921e287f242c9
+https://conda.anaconda.org/conda-forge/osx-64/future-0.18.2-py39hde42818_2.tar.bz2#cd1fb6b03f8a54b0406d6bc97cc2507f
+https://conda.anaconda.org/conda-forge/osx-64/keyring-21.5.0-py39h6e9494a_0.tar.bz2#930acd60865eb6f0023895e21ffa80d6
+https://conda.anaconda.org/conda-forge/osx-64/macfsevents-0.8.1-py39hb5aae12_1001.tar.bz2#d85619dcc5915ccbc631a19197a4cda7
+https://conda.anaconda.org/conda-forge/osx-64/markupsafe-1.1.1-py39h66d5b7b_2.tar.bz2#4bc15227785d84eb18d96fd23ad237eb
+https://conda.anaconda.org/conda-forge/noarch/packaging-20.4-pyh9f0ad1d_0.tar.bz2#6d160f7346ac815500b5475d9a0f88a9
+https://conda.anaconda.org/conda-forge/osx-64/psutil-5.7.3-py39h66d5b7b_0.tar.bz2#cd1ae346c42341cd04ca05170a1212b0
+https://conda.anaconda.org/conda-forge/osx-64/py-lief-0.10.1-py39h13a702c_2.tar.bz2#344e3e944a0c3a2740cff2dd90b2ae7e
+https://conda.anaconda.org/conda-forge/osx-64/pycosat-0.6.3-py39h66d5b7b_1005.tar.bz2#bca25c294b17ae73db509fea455f8b9b
+https://conda.anaconda.org/conda-forge/osx-64/pysocks-1.7.1-py39h2c36a5b_2.tar.bz2#b77aa1ed1adc92335b39b4e416e92cb3
+https://conda.anaconda.org/conda-forge/osx-64/python-libarchive-c-2.9-py39h2c36a5b_2.tar.bz2#7edb43323b6f832b4f5cadcc303444b4
+https://conda.anaconda.org/conda-forge/osx-64/pyyaml-5.3.1-py39h66d5b7b_1.tar.bz2#addf9d2ac20fccd8a89127aa1950c0e6
+https://conda.anaconda.org/conda-forge/osx-64/ruamel_yaml-0.15.80-py39h66d5b7b_1003.tar.bz2#b285563ca6e26b360054818466f4e2a2
+https://conda.anaconda.org/conda-forge/osx-64/brotlipy-0.7.0-py39h66d5b7b_1001.tar.bz2#3b798e72dec2ad622620b2879ba4af72
+https://conda.anaconda.org/conda-forge/osx-64/cmarkgfm-0.4.2-py39hb5aae12_3.tar.bz2#750db5fbdb58f6f77af84ba3a00c157e
+https://conda.anaconda.org/conda-forge/osx-64/cryptography-3.2.1-py39hed2902a_0.tar.bz2#3373c7021ec0e509d5daa9156ac98b84
+https://conda.anaconda.org/conda-forge/osx-64/doit-0.33.1-py39hde42818_1.tar.bz2#60195688f3a1598b5f445677ef11f6e2
+https://conda.anaconda.org/conda-forge/osx-64/setuptools-49.6.0-py39h2c36a5b_2.tar.bz2#25fa47d1b2e898c618e795344feffde0
+https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2#d4506316b85679972c0b78d4d1c0b701
+https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551
+https://conda.anaconda.org/conda-forge/noarch/pip-20.3.1-pyhd8ed1ab_0.tar.bz2#bd6aa73eed4afc399688200778a609f6
+https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723
+https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f
+https://conda.anaconda.org/conda-forge/osx-64/conda-verify-3.1.1-py39hde42818_1002.tar.bz2#40038199208b5851205b3c3c4c94c630
+https://conda.anaconda.org/conda-forge/noarch/readme_renderer-27.0-pyh9f0ad1d_0.tar.bz2#38446dff7f69efd3fab98ab4dc68c0c8
+https://conda.anaconda.org/conda-forge/noarch/urllib3-1.25.11-py_0.tar.bz2#4ce0599839b2b4418befe201e5f072fc
+https://conda.anaconda.org/conda-forge/noarch/requests-2.25.0-pyhd3deb0d_0.tar.bz2#5b983af1f3dcd93ef20f6067d077f6fe
+https://conda.anaconda.org/conda-forge/osx-64/conda-4.9.2-py39h6e9494a_0.tar.bz2#219396608b28858e0bd2cb05697334de
+https://conda.anaconda.org/conda-forge/noarch/ensureconda-1.3.0-pyhd8ed1ab_0.tar.bz2#24e565cbb31a38162df00e31bb909940
+https://conda.anaconda.org/conda-forge/noarch/requests-toolbelt-0.9.1-py_0.tar.bz2#402668adee8fcba9a9c265cdc2a88f5a
+https://conda.anaconda.org/conda-forge/osx-64/conda-build-3.20.5-py39h2c36a5b_0.tar.bz2#97f36aa1b3d66b78b77220225eaa1d51
+https://conda.anaconda.org/conda-forge/noarch/conda-lock-0.7.3-pyhd8ed1ab_0.tar.bz2#559ade16cbab85c06f6d4ec0e202fbca
+https://conda.anaconda.org/conda-forge/osx-64/mamba-0.7.3-py39h7cfdd8b_0.tar.bz2#f41517faa302c6fbdb7d9c0c78cb4858
+https://conda.anaconda.org/conda-forge/osx-64/twine-3.2.0-py39hde42818_1.tar.bz2#4f6fb71fe3104f74a61ef2b2a94cbaa1
diff --git a/.github/locks/meta/win-64/conda.lock b/.github/locks/meta/win-64/conda.lock
new file mode 100644
index 00000000..3c6a8c46
--- /dev/null
+++ b/.github/locks/meta/win-64/conda.lock
@@ -0,0 +1,102 @@
+# platform: win-64
+# env_hash: 65d26dece51e4036ac9d80412f9244fb49e2c8ae9cee08aeffe38d6bf2ddd56b
+
+@EXPLICIT
+
+https://conda.anaconda.org/conda-forge/win-64/ca-certificates-2020.11.8-h5b45459_0.tar.bz2#21fea8c142c35d2967cb0300e5056980
+https://conda.anaconda.org/msys2/win-64/msys2-conda-epoch-20160418-1.tar.bz2#6eaef3074f65f715ed1ca6b8a08be3aa
+https://conda.anaconda.org/conda-forge/noarch/tzdata-2020d-h516909a_0.tar.bz2#153abe529c372caadf52bde5e07656e3
+https://conda.anaconda.org/conda-forge/win-64/vs2015_runtime-14.16.27012-h30e32a0_2.tar.bz2#37a0bcc72c5e97f5602dca37eb3f8314
+https://conda.anaconda.org/msys2/win-64/m2-msys2-runtime-2.5.0.17080.65c939c-3.tar.bz2#9544a3c0bbd8e0038bc67522e71f1489
+https://conda.anaconda.org/msys2/win-64/m2w64-gmp-6.1.0-2.tar.bz2#fec04371463ec68eb8f5752a22c5b030
+https://conda.anaconda.org/msys2/win-64/m2w64-libwinpthread-git-5.0.0.4634.697f757-2.tar.bz2#67e61e700eb27424979778fae9293f13
+https://conda.anaconda.org/conda-forge/win-64/vc-14.1-h869be7e_1.tar.bz2#4fae57303daa91367eca263374e4a638
+https://conda.anaconda.org/conda-forge/win-64/bzip2-1.0.8-h8ffe710_4.tar.bz2#7c03c66026944073040cb19a4f3ec3c9
+https://conda.anaconda.org/conda-forge/win-64/libiconv-1.16-he774522_0.tar.bz2#bdfeadc9348e4d9fbe4821e81bf8f221
+https://conda.anaconda.org/conda-forge/win-64/liblief-0.10.1-ha925a31_2.tar.bz2#722fe9d130f4504d4048a9c397f9d3ea
+https://conda.anaconda.org/conda-forge/win-64/lz4-c-1.9.2-h62dcd97_2.tar.bz2#a90475bc5d6e86b41360b614b20aa973
+https://conda.anaconda.org/conda-forge/win-64/lzo-2.10-hfa6e2cd_1000.tar.bz2#8286080ecc02a0b7765e326fe78b7c5f
+https://conda.anaconda.org/msys2/win-64/m2-patch-2.7.5-2.tar.bz2#ce0ef50726538a9c62e8d2e957f2d85c
+https://conda.anaconda.org/msys2/win-64/m2w64-gcc-libs-core-5.3.0-7.tar.bz2#276d396bfe8d958f71173b7134f739fa
+https://conda.anaconda.org/conda-forge/win-64/openssl-1.1.1h-he774522_0.tar.bz2#21844b16355ef8faa21fca97794d6825
+https://conda.anaconda.org/conda-forge/win-64/reproc-14.2.1-h8ffe710_0.tar.bz2#8fdd355ebf4593385112b247a83f5806
+https://conda.anaconda.org/conda-forge/win-64/sqlite-3.34.0-h8ffe710_0.tar.bz2#0887d420b945a5342cd03429d475658c
+https://conda.anaconda.org/conda-forge/win-64/tk-8.6.10-he774522_1.tar.bz2#34a906fb55a5f0820d87b93da4dbb596
+https://conda.anaconda.org/conda-forge/win-64/xz-5.2.5-h62dcd97_1.tar.bz2#eabcbfedd14d7c18a514afca09ea0ebb
+https://conda.anaconda.org/conda-forge/win-64/yaml-0.2.5-he774522_0.tar.bz2#d41c34441d8bbb6d141e691ae7bccf35
+https://conda.anaconda.org/conda-forge/win-64/zlib-1.2.11-h62dcd97_1010.tar.bz2#a4cdf389c5f73e60a0ca121ff77c22a9
+https://conda.anaconda.org/conda-forge/win-64/krb5-1.17.2-hbae68bd_0.tar.bz2#36781bd85367e21cda881c9a5212ea9c
+https://conda.anaconda.org/conda-forge/win-64/libsolv-0.7.16-h200bbdf_0.tar.bz2#0f1dd8c450a8c6f813f56712d6652ab1
+https://conda.anaconda.org/conda-forge/win-64/libssh2-1.9.0-hb06d900_5.tar.bz2#d98a41c806a42bffd8b05a2e6f1132f1
+https://conda.anaconda.org/conda-forge/win-64/libxml2-2.9.10-h1006b36_2.tar.bz2#9392b3214cbdde0d9e64f83915f91d45
+https://conda.anaconda.org/msys2/win-64/m2w64-gcc-libgfortran-5.3.0-6.tar.bz2#de1b7f7c8221028f6bbe103df4c53bed
+https://conda.anaconda.org/conda-forge/win-64/python-3.9.0-h7840368_5_cpython.tar.bz2#9725ea2c7b0d5a163c4a1f90a4dcdec0
+https://conda.anaconda.org/conda-forge/win-64/reproc-cpp-14.2.1-h0e60522_0.tar.bz2#225f0c12c0bb4f118be96b1766466347
+https://conda.anaconda.org/conda-forge/win-64/zstd-1.4.5-h1f3a1b7_2.tar.bz2#b35d995f210429648e920844701b57a9
+https://conda.anaconda.org/conda-forge/noarch/appdirs-1.4.4-pyh9f0ad1d_0.tar.bz2#5f095bc6454094e96f146491fd03633b
+https://conda.anaconda.org/conda-forge/noarch/click-7.1.2-pyh9f0ad1d_0.tar.bz2#bd50a970ce07e660c319fdc4d730d3f1
+https://conda.anaconda.org/conda-forge/noarch/cloudpickle-1.6.0-py_0.tar.bz2#76d764d8881719e305f6fa368dc2b65e
+https://conda.anaconda.org/conda-forge/noarch/colorama-0.4.4-pyh9f0ad1d_0.tar.bz2#c08b4c1326b880ed44f3ffb04803332f
+https://conda.anaconda.org/conda-forge/noarch/filelock-3.0.12-pyh9f0ad1d_0.tar.bz2#7544ed05bbbe9bb687bc9bcbe4d6cb46
+https://conda.anaconda.org/conda-forge/noarch/glob2-0.7-py_0.tar.bz2#1f3a88e65e61216e1d475135922dbf6a
+https://conda.anaconda.org/conda-forge/noarch/idna-2.10-pyh9f0ad1d_0.tar.bz2#f95a12b4f435aae6680fe55ae2eb1b06
+https://conda.anaconda.org/conda-forge/win-64/libarchive-3.3.3-h793d221_1008.tar.bz2#f56196620d32a4bc3366f3984a09a495
+https://conda.anaconda.org/conda-forge/win-64/libcurl-7.71.1-h4b64cdc_8.tar.bz2#47468949c81228d0f8a492a124688221
+https://conda.anaconda.org/msys2/win-64/m2w64-gcc-libs-5.3.0-7.tar.bz2#0b9caac6747002340b057a222af705b2
+https://conda.anaconda.org/conda-forge/noarch/pkginfo-1.6.1-pyh9f0ad1d_0.tar.bz2#9624126b9ae8f1004c137b111a817281
+https://conda.anaconda.org/conda-forge/noarch/pycparser-2.20-pyh9f0ad1d_2.tar.bz2#aa798d50ffd182a0f6f31478c7f434f6
+https://conda.anaconda.org/conda-forge/noarch/pyparsing-2.4.7-pyh9f0ad1d_0.tar.bz2#626c4f20d5bf06dcec9cf2eaa31725c7
+https://conda.anaconda.org/conda-forge/win-64/python_abi-3.9-1_cp39.tar.bz2#4f11fc3c42d6aff5cc1daff5e1e6caca
+https://conda.anaconda.org/conda-forge/noarch/pytz-2020.4-pyhd8ed1ab_0.tar.bz2#14aefc827cbbd156cb1bd9e992210380
+https://conda.anaconda.org/conda-forge/noarch/rfc3986-1.4.0-pyh9f0ad1d_0.tar.bz2#4dd11e722e5a29afc55e5d7f15782130
+https://conda.anaconda.org/conda-forge/noarch/six-1.15.0-pyh9f0ad1d_0.tar.bz2#1eec421f0f1f39e579e44e4a5ce646a2
+https://conda.anaconda.org/conda-forge/noarch/soupsieve-2.0.1-py_1.tar.bz2#aa1db70848c19bace567ba39a157f508
+https://conda.anaconda.org/conda-forge/noarch/toml-0.10.2-pyhd8ed1ab_0.tar.bz2#f832c45a477c78bebd107098db465095
+https://conda.anaconda.org/conda-forge/noarch/tqdm-4.54.0-pyhd8ed1ab_0.tar.bz2#0a926e66325587b1c7479982241bcec1
+https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-py_1.tar.bz2#3563be4c5611a44210d9ba0c16113136
+https://conda.anaconda.org/conda-forge/noarch/wheel-0.36.0-pyhd3deb0d_0.tar.bz2#f144bcd310e543bd9c8aa17c8ba1ee02
+https://conda.anaconda.org/conda-forge/noarch/beautifulsoup4-4.9.3-pyhb0f4dca_0.tar.bz2#d243a293d7303ab6195d96ce8c16b1cb
+https://conda.anaconda.org/conda-forge/win-64/certifi-2020.11.8-py39hcbf5309_0.tar.bz2#d7367f2399e9192374267c940a8c0260
+https://conda.anaconda.org/conda-forge/win-64/cffi-1.14.4-py39h0878f49_1.tar.bz2#b7ac3692b3a1ab35cce44e10046513c5
+https://conda.anaconda.org/conda-forge/win-64/chardet-3.0.4-py39h467e6f4_1008.tar.bz2#9449e372ee9544175493c0c348131385
+https://conda.anaconda.org/conda-forge/noarch/click-default-group-1.2.1-py_0.tar.bz2#64a66d3d4db54208496c4e2fa822eeee
+https://conda.anaconda.org/conda-forge/win-64/conda-package-handling-1.7.2-py39h9300fe8_0.tar.bz2#a776d58fedf3ca2d6fe4401585169bec
+https://conda.anaconda.org/conda-forge/win-64/docutils-0.16-py39hde42818_2.tar.bz2#de754737301952d5749886d15a9a37e8
+https://conda.anaconda.org/conda-forge/win-64/doit-0.33.1-py39hde42818_1.tar.bz2#0045b388ae5161d72eef25b04a8d49b8
+https://conda.anaconda.org/conda-forge/win-64/future-0.18.2-py39hde42818_2.tar.bz2#9723475c6ed2b5bb332af82a90b5e82a
+https://conda.anaconda.org/conda-forge/win-64/markupsafe-1.1.1-py39ha3862ff_2.tar.bz2#003af8e9b78364cc0cc6359fa8a733f8
+https://conda.anaconda.org/conda-forge/noarch/packaging-20.4-pyh9f0ad1d_0.tar.bz2#6d160f7346ac815500b5475d9a0f88a9
+https://conda.anaconda.org/conda-forge/win-64/psutil-5.7.3-py39ha3862ff_0.tar.bz2#24d8d7ffe578bf77c1c450e533821131
+https://conda.anaconda.org/conda-forge/win-64/py-lief-0.10.1-py39h6c31a18_2.tar.bz2#e790529e0ef05310abcbefc8818f7759
+https://conda.anaconda.org/conda-forge/win-64/pycosat-0.6.3-py39ha3862ff_1005.tar.bz2#f27ee16977e6ec675ff228f7cd680f4d
+https://conda.anaconda.org/conda-forge/win-64/python-libarchive-c-2.9-py39h467e6f4_2.tar.bz2#20950d1e69712cd9595990742c28cc1e
+https://conda.anaconda.org/conda-forge/win-64/pywin32-228-py39h4cdbadb_0.tar.bz2#4cdc6aee83f1d57ffca54cfa34dd1b42
+https://conda.anaconda.org/conda-forge/win-64/pywin32-ctypes-0.2.0-py39hde42818_1002.tar.bz2#be8edd6c82b71a1adbeab273604b8e4f
+https://conda.anaconda.org/conda-forge/win-64/pyyaml-5.3.1-py39ha3862ff_1.tar.bz2#7489292b598f94117c0f5414e22924b9
+https://conda.anaconda.org/conda-forge/win-64/ripgrep-12.1.1-h301d43c_1.tar.bz2#becca280ed37a9ffa9fe12f827ada988
+https://conda.anaconda.org/conda-forge/win-64/ruamel_yaml-0.15.80-py39ha3862ff_1003.tar.bz2#2b12ea15c4d38a3e555598f187488520
+https://conda.anaconda.org/conda-forge/win-64/win_inet_pton-1.1.0-py39hde42818_1.tar.bz2#cefba88021f1494fb4ecd8ed0f99f855
+https://conda.anaconda.org/conda-forge/win-64/wincertstore-0.2-py39hde42818_1005.tar.bz2#dacbba1af1eabc90776a796e80d74fd5
+https://conda.anaconda.org/conda-forge/win-64/brotlipy-0.7.0-py39ha3862ff_1001.tar.bz2#28a31e5dccde93ae8e2e80b35df2e9e8
+https://conda.anaconda.org/conda-forge/win-64/cmarkgfm-0.4.2-py39h4cdbadb_3.tar.bz2#3e43c8dd8a4b5f75dc34e686afbe9688
+https://conda.anaconda.org/conda-forge/win-64/cryptography-3.2.1-py39h0878f49_0.tar.bz2#3fb73ba831b0115800b34841c6a37224
+https://conda.anaconda.org/conda-forge/win-64/keyring-21.5.0-py39hcbf5309_0.tar.bz2#7acc617378e356db9bfcb1ee381ba085
+https://conda.anaconda.org/conda-forge/win-64/menuinst-1.4.16-py39hde42818_1.tar.bz2#e13a5f4263da1d7112abc5e4bb7e1a21
+https://conda.anaconda.org/conda-forge/win-64/pysocks-1.7.1-py39h467e6f4_2.tar.bz2#812ce3c03e54a72634bc5b885124629b
+https://conda.anaconda.org/conda-forge/win-64/setuptools-49.6.0-py39h467e6f4_2.tar.bz2#819d078e0f74b5f2b5fc0bf2e7ebbf7a
+https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2#d4506316b85679972c0b78d4d1c0b701
+https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551
+https://conda.anaconda.org/conda-forge/noarch/pip-20.3.1-pyhd8ed1ab_0.tar.bz2#bd6aa73eed4afc399688200778a609f6
+https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723
+https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f
+https://conda.anaconda.org/conda-forge/win-64/conda-verify-3.1.1-py39hde42818_1002.tar.bz2#d6f0aac0e376129bf821f92da9fda5db
+https://conda.anaconda.org/conda-forge/noarch/readme_renderer-27.0-pyh9f0ad1d_0.tar.bz2#38446dff7f69efd3fab98ab4dc68c0c8
+https://conda.anaconda.org/conda-forge/noarch/urllib3-1.25.11-py_0.tar.bz2#4ce0599839b2b4418befe201e5f072fc
+https://conda.anaconda.org/conda-forge/noarch/requests-2.25.0-pyhd3deb0d_0.tar.bz2#5b983af1f3dcd93ef20f6067d077f6fe
+https://conda.anaconda.org/conda-forge/win-64/conda-4.9.2-py39hcbf5309_0.tar.bz2#510d3ad61d38fce420f3738fec106996
+https://conda.anaconda.org/conda-forge/noarch/ensureconda-1.3.0-pyhd8ed1ab_0.tar.bz2#24e565cbb31a38162df00e31bb909940
+https://conda.anaconda.org/conda-forge/noarch/requests-toolbelt-0.9.1-py_0.tar.bz2#402668adee8fcba9a9c265cdc2a88f5a
+https://conda.anaconda.org/conda-forge/win-64/conda-build-3.20.5-py39h467e6f4_0.tar.bz2#9303db66eb989678c6c95b8a3c98adc8
+https://conda.anaconda.org/conda-forge/noarch/conda-lock-0.7.3-pyhd8ed1ab_0.tar.bz2#559ade16cbab85c06f6d4ec0e202fbca
+https://conda.anaconda.org/conda-forge/win-64/mamba-0.7.3-py39ha0edc35_0.tar.bz2#7984f0a4dd98321181d9b6edeeb9aa51
+https://conda.anaconda.org/conda-forge/win-64/twine-3.2.0-py39hde42818_1.tar.bz2#09bc7208b1e32834af08c8c52902e128
diff --git a/.github/recipe/meta.yaml.in b/.github/recipe/meta.yaml.in
new file mode 100644
index 00000000..54a0ae77
--- /dev/null
+++ b/.github/recipe/meta.yaml.in
@@ -0,0 +1,42 @@
+{% set name = "robotframework-jupyterlibrary" %}
+{% set version = "REPLACE_THIS_VERSION" %}
+
+package:
+  name: {{ name }}
+  version: {{ version }}
+
+source:
+  url: REPLACE_THIS_PATH
+  sha256: REPLACE_THIS_SHA256
+
+build:
+  noarch: python
+  number: 0
+  script: {{ PYTHON }} -m pip install . -vv --no-deps
+
+requirements:
+  host:
+    - pip
+    - python >=3.6
+  run:
+    - python >=3.6
+    - robotframework >=3.2
+    - robotframework-seleniumlibrary >=4.5
+
+test:
+  requires:
+    - pip
+  imports:
+    - JupyterLibrary
+  commands:
+    - pip check
+
+about:
+  home: https://github.com/robots-from-jupyter/{{ name }}
+  license: BSD-3-Clause
+  license_family: BSD
+  license_file: LICENSE
+  summary: A Robot Framework library for testing Jupyter end-user applications and extensions
+  doc_url: https://{{ name }}.readthedocs.io
+  dev_url: https://github.com/robots-from-jupyter/{{ name }}
+  doc_source_url: https://github.com/robots-from-jupyter/{{ name }}/tree/master/docs
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index a9d59834..a57683c3 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -26,6 +26,30 @@ defaults:
 
 jobs:
   build:
+    runs-on: ubuntu-20.04
+    steps:
+      - uses: actions/checkout@v2
+      - uses: actions/cache@v1
+        with:
+          path: ~/conda_pkgs_dir
+          key:
+            ${{ runner.os }}-conda-meta-${{
+            hashFiles('.github/locks/meta/linux-64/conda.lock') }}
+          restore-keys: |
+            ${{ runner.os }}-conda-meta-
+      - uses: conda-incubator/setup-miniconda@v2
+        with:
+          activate-environment: meta
+          auto-update-conda: true
+          environment-file: .github/locks/meta/linux-64/conda.lock
+          use-only-tar-bz2: true
+      - run: python dodo.py build || python dodo.py build
+      - uses: actions/upload-artifact@v2
+        with:
+          name: dist_${{ github.run_number }}
+          path: ./dist
+
+  lint:
     runs-on: ubuntu-20.04
     steps:
       - uses: actions/checkout@v2
@@ -43,11 +67,36 @@ jobs:
           auto-update-conda: true
           environment-file: .github/locks/lint/linux-64/conda.lock
           use-only-tar-bz2: true
-      - run: python dodo.py lint build || python dodo.py lint build
-      - uses: actions/upload-artifact@v2
+      - run: python dodo.py lint || python dodo.py lint
+
+  conda-build:
+    runs-on: ubuntu-20.04
+    needs: [build, lint, docs]
+    steps:
+      - uses: actions/checkout@v2
+      - uses: actions/cache@v1
+        with:
+          path: ~/conda_pkgs_dir
+          key:
+            ${{ runner.os }}-conda-meta-${{
+            hashFiles('.github/locks/meta/linux-64/conda.lock') }}
+          restore-keys: |
+            ${{ runner.os }}-conda-meta-
+      - uses: conda-incubator/setup-miniconda@v2
+        with:
+          activate-environment: meta
+          auto-update-conda: true
+          environment-file: .github/locks/meta/linux-64/conda.lock
+          use-only-tar-bz2: true
+      - uses: actions/download-artifact@v2
         with:
           name: dist_${{ github.run_number }}
           path: ./dist
+      - run: python dodo.py conda_build || python dodo.py conda_build
+      - uses: actions/upload-artifact@v2
+        with:
+          name: conda-bld_${{ github.run_number }}
+          path: ./dist/conda-bld
 
   docs:
     runs-on: ubuntu-20.04
@@ -169,7 +218,7 @@ jobs:
 
   report:
     if: always()
-    needs: [test, build, docs]
+    needs: [test, conda-build]
     runs-on: ubuntu-20.04
     steps:
       - if: always()
diff --git a/.gitignore b/.gitignore
index 6223293e..6e5d2d16 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,6 @@
 __pycache__/
 _artifacts/
+_lab/
 _robot_magic_*
 .doit*
 .envs/
@@ -13,4 +14,4 @@ envs/
 lib/
 node_modules/
 Untitled*.*
-_lab/
+.github/recipe/meta.yaml
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 5f658f10..4e9744a5 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -35,13 +35,15 @@ doit release
 
 > After adding/changing any dependencies in `.github/env_specs`, the _lockfiles_
 > need to be refreshed in `.github/locks` and committed.
->
-> Requires `conda-lock`, and optionally `mamba` for faster solves
 
 ```shell
 doit lock
 ```
 
+> Bootstrapping from _no_ lockfiles requires an external provider of
+> `conda-lock`. It may require running `doit lock` a few times to get a stable
+> set of environment solutions.
+
 #### Reproducing CI failures
 
 By default, the `doit` scripts use the lockfile most like where you are
@@ -67,3 +69,18 @@ doit release
 
 This will recreate the `test` environment with the specified lockfile, and
 repeat all the steps.
+
+#### Releasing
+
+- ensure `VERSION` has been increased appropriately
+- ensure `HISTORY.ipynb` is up-to-date
+- (usually) grab the `dist` assets from CI, unpack into `./dist`
+- make a GitHub release, adding the `.tar.gz`, `.whl`, and `SHA256SUMS`
+- upload to PyPI
+
+  ```bash
+  doit publish
+  ```
+
+- do a post-mortem issue
+- bump `VERSION` to a working status
diff --git a/_scripts/project.py b/_scripts/project.py
index 810d1f06..3b5dab3d 100644
--- a/_scripts/project.py
+++ b/_scripts/project.py
@@ -22,9 +22,9 @@
 assert safe_load, "need at least a yaml parser"
 
 
-CI = int(os.environ.get("CI", "0"))
-INSTALL_ARTIFACT = int(os.environ.get("INSTALL_ARTIFACT", "0"))
-IN_BINDER = int(os.environ.get("IN_BINDER", "0"))
+CI = safe_load(os.environ.get("CI", "0"))
+INSTALL_ARTIFACT = safe_load(os.environ.get("INSTALL_ARTIFACT", "0"))
+IN_BINDER = safe_load(os.environ.get("IN_BINDER", "0"))
 PLATFORM = platform.system()
 BROWSER = os.environ.get("BROWSER", "headlessfirefox")
 CAN_CONDA_LOCK = shutil.which("conda-lock") is not None
@@ -129,7 +129,7 @@
 ENV_SPECS = GITHUB / "env_specs"
 ENVS = ROOT / ".envs"
 
-ENV_NAMES = ["test", "lint", "docs"]
+ENV_NAMES = ["test", "lint", "docs", "meta"]
 
 CONDA_RUN = [CONDA_EXE, "run"]
 
@@ -145,7 +145,8 @@
         for env in ENV_NAMES
     }
 
-CONDA_LISTS = {env: BUILD / env / "conda.lock" for env in ENV_NAMES}
+LOCK_NAME = "conda.lock"
+CONDA_LISTS = {env: BUILD / env / LOCK_NAME for env in ENV_NAMES}
 PIP_LISTS = {env: BUILD / env / "pip.freeze" for env in ENV_NAMES}
 
 WORKFLOW_CI = WORKFLOWS / "ci.yml"
@@ -185,7 +186,7 @@ def _is_excluded(flow, pf, py, lab):
 
 
 ENVENTURES = {
-    ("test", pf, py, lab): LOCKS / "test" / pf / py / lab / "conda.lock"
+    ("test", pf, py, lab): LOCKS / "test" / pf / py / lab / LOCK_NAME
     for pf in PLATFORMS
     for lab in LABS
     for py in PYTHONS
@@ -193,16 +194,23 @@ def _is_excluded(flow, pf, py, lab):
 }
 
 ENVENTURES.update(
-    {("lint", pf, None, None): LOCKS / "lint" / pf / "conda.lock" for pf in PLATFORMS}
+    {("lint", pf, None, None): LOCKS / "lint" / pf / LOCK_NAME for pf in PLATFORMS}
 )
 
 ENVENTURES.update(
-    {("docs", pf, None, None): LOCKS / "docs" / pf / "conda.lock" for pf in PLATFORMS}
+    {("docs", pf, None, None): LOCKS / "docs" / pf / LOCK_NAME for pf in PLATFORMS}
 )
 
+ENVENTURES.update(
+    {("meta", pf, None, None): LOCKS / "meta" / pf / LOCK_NAME for pf in PLATFORMS}
+)
+
+THIS_META_ENV_LOCK = LOCKS / "meta" / THIS_CONDA_SUBDIR / LOCK_NAME
+THIS_META_ENV_HISTORY = ENVS / "meta" / "conda-meta" / "history"
+
 ENV_DEPS = {
     (flow, pf, py, lab): [
-        ENV_SPECS / "_base.yml",
+        *([ENV_SPECS / "_base.yml"] if flow not in ["meta"] else []),
         ENV_SPECS / f"{flow}.yml",
     ]
     for (flow, pf, py, lab), target in ENVENTURES.items()
@@ -247,6 +255,15 @@ def _is_excluded(flow, pf, py, lab):
     *BINDER.rglob("*.yml"),
 ]
 
+# conda testing
+RECIPE = GITHUB / "recipe"
+META_YAML_IN = RECIPE / "meta.yaml.in"
+META_YAML = GITHUB / "recipe" / "meta.yaml"
+CONDA_BLD = DIST / "conda-bld"
+CONDA_PKG = (
+    CONDA_BLD / "noarch" / f"""{IMPORTABLE.replace("_", "-")}-{VERSION}-py_0.tar.bz2"""
+)
+
 
 class OK:
     black = BUILD / ".ok.black"
diff --git a/docs/rtd.yml b/docs/rtd.yml
index 38a8832e..a62a92e2 100644
--- a/docs/rtd.yml
+++ b/docs/rtd.yml
@@ -32,7 +32,7 @@ dependencies:
   - https://conda.anaconda.org/conda-forge/linux-64/readline-8.0-he28a2e2_2.tar.bz2#4d0ae8d473f863696088f76800ef9d38
   - https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.10-hed695b0_1.tar.bz2#7ef837cd455bd0f19f49b8b62d4cb568
   - https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.3-h58526e2_3.tar.bz2#6272fa8d98bd79c7978da0f7d2bb28da
-  - https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.33.0-h4cf870e_1.tar.bz2#1968ff6c4b8fbd2903f6672e292d932d
+  - https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.34.0-h74cdb3f_0.tar.bz2#0a83e21e8c1929cc9a1e21ebb2459fc5
   - https://conda.anaconda.org/conda-forge/linux-64/python-3.6.11-hffdb5ce_3_cpython.tar.bz2#78b053e3316c47b2535aac75f6997a53
   - https://conda.anaconda.org/conda-forge/noarch/alabaster-0.7.12-py_0.tar.bz2#2489a97287f90176ecdc3ca982b4b0a0
   - https://conda.anaconda.org/conda-forge/linux-64/argh-0.26.2-py36_1001.tar.bz2#d942a3edad9e451533f471a09eb871dd
@@ -67,7 +67,7 @@ dependencies:
   - https://conda.anaconda.org/conda-forge/noarch/sphinxcontrib-serializinghtml-1.1.4-py_0.tar.bz2#8ea6a8036e28dba8827d35c764709358
   - https://conda.anaconda.org/conda-forge/noarch/testpath-0.4.4-py_0.tar.bz2#3b98fff4d5342bebde2ecaa314f796f9
   - https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-py_1.tar.bz2#3563be4c5611a44210d9ba0c16113136
-  - https://conda.anaconda.org/conda-forge/noarch/wheel-0.35.1-pyh9f0ad1d_0.tar.bz2#126827869be32f21872a2b30ebe2b038
+  - https://conda.anaconda.org/conda-forge/noarch/wheel-0.36.0-pyhd3deb0d_0.tar.bz2#f144bcd310e543bd9c8aa17c8ba1ee02
   - https://conda.anaconda.org/conda-forge/noarch/zipp-3.4.0-py_0.tar.bz2#0df927d2e46244cef8fd75d7ec2ba51c
   - https://conda.anaconda.org/conda-forge/noarch/babel-2.9.0-pyhd3deb0d_0.tar.bz2#1cb532c9a6fd4e56a9f0906b87c17b76
   - https://conda.anaconda.org/conda-forge/linux-64/certifi-2020.11.8-py36h5fab9bb_0.tar.bz2#65b3d08f67f9d039cd0589dcd53db2a6
@@ -75,7 +75,7 @@ dependencies:
   - https://conda.anaconda.org/conda-forge/linux-64/chardet-3.0.4-py36h9880bd3_1008.tar.bz2#5e1f31687ac8433134d9a1b3c394b074
   - https://conda.anaconda.org/conda-forge/linux-64/docutils-0.16-py36h9880bd3_2.tar.bz2#0fae3d786fe004478f56041b7e606fc4
   - https://conda.anaconda.org/conda-forge/linux-64/entrypoints-0.3-py36h9f0ad1d_1002.tar.bz2#3ff18a1ed2e93fb739b97b3669dcaf89
-  - https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.0-pyhd8ed1ab_0.tar.bz2#97a4bcec44626ddea360efdf7d5ad816
+  - https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.1-pyhd8ed1ab_0.tar.bz2#e22162ed945059586d1b6b603d07c48e
   - https://conda.anaconda.org/conda-forge/linux-64/jedi-0.17.2-py36h9f0ad1d_1.tar.bz2#7aa1974ca53aa6f662c4e24a15f495b9
   - https://conda.anaconda.org/conda-forge/linux-64/markupsafe-1.1.1-py36he6145b8_2.tar.bz2#a4145312b908f2e145ed865c135bfa2e
   - https://conda.anaconda.org/conda-forge/linux-64/mistune-0.8.4-py36h8c4c3a4_1002.tar.bz2#1f094e44c9d7356638cda5d6cb763510
@@ -94,7 +94,7 @@ dependencies:
   - https://conda.anaconda.org/conda-forge/linux-64/brotlipy-0.7.0-py36he6145b8_1001.tar.bz2#49563e14138ee2a2e1028ab4aa6a7ee3
   - https://conda.anaconda.org/conda-forge/linux-64/cryptography-3.2.1-py36h6ec43e4_0.tar.bz2#9e37e4ebbea5f4bcb50190192bbcc212
   - https://conda.anaconda.org/conda-forge/linux-64/doit-0.33.1-py36h9f0ad1d_1.tar.bz2#03ff97a03955a189acdbc8c4d196e5e1
-  - https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.0-hd8ed1ab_0.tar.bz2#182b3a7c361dfc0de2ed1abf90fd61c8
+  - https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.1-hd8ed1ab_0.tar.bz2#a884b1bcaa2d48a6bc299dcba787db7a
   - https://conda.anaconda.org/conda-forge/linux-64/jupyter_core-4.7.0-py36h5fab9bb_0.tar.bz2#1185d2559694206b07516039f1208763
   - https://conda.anaconda.org/conda-forge/linux-64/setuptools-49.6.0-py36h9880bd3_2.tar.bz2#ba1f9cf60677266d31905e6ce7899b0a
   - https://conda.anaconda.org/conda-forge/linux-64/watchdog-0.10.4-py36h5fab9bb_0.tar.bz2#5495d9c8201962471b0fc996d1a794d3
@@ -104,7 +104,7 @@ dependencies:
   - https://conda.anaconda.org/conda-forge/linux-64/jsonschema-3.2.0-py36h9f0ad1d_1.tar.bz2#eefe83ff43117f8af6d4641d1bc9fce6
   - https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a
   - https://conda.anaconda.org/conda-forge/noarch/livereload-2.6.3-pyh9f0ad1d_0.tar.bz2#b7190e3ec3eff52839434bf4698e2d62
-  - https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1
+  - https://conda.anaconda.org/conda-forge/noarch/pip-20.3.1-pyhd8ed1ab_0.tar.bz2#bd6aa73eed4afc399688200778a609f6
   - https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723
   - https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f
   - https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7
diff --git a/dodo.py b/dodo.py
index 931a8ba9..e4351692 100644
--- a/dodo.py
+++ b/dodo.py
@@ -4,7 +4,7 @@
 from hashlib import sha256
 
 import doit
-from doit.tools import PythonInteractiveAction, config_changed
+from doit.tools import PythonInteractiveAction, config_changed, InteractiveAction
 
 from _scripts import project as P
 from _scripts.reporter import GithubActionsReporter
@@ -40,26 +40,34 @@ def task_release():
     )
 
 
+def _calc_hash():
+    lines = []
+
+    for p in P.HASH_DEPS:
+        lines += ["  ".join([sha256(p.read_bytes()).hexdigest(), p.name])]
+
+    output = "\n".join(lines)
+    return output
+
+
 def task_build():
     """build packages"""
+    env = "meta"
+    env_lock = P.CONDA_LISTS[env]
+    run_in = P.RUN_IN[env]
+
     yield dict(
         name="pypi",
-        actions=[[*P.PY, "setup.py", "sdist", "bdist_wheel"]],
+        actions=[[*run_in, *P.PY, "setup.py", "sdist", "bdist_wheel"]],
         targets=[P.SDIST, P.WHEEL],
-        file_dep=[*P.PY_SRC, *P.ROBOT_SRC, P.VERSION_FILE, *P.SETUP_CRUFT],
+        file_dep=[*P.PY_SRC, *P.ROBOT_SRC, P.VERSION_FILE, *P.SETUP_CRUFT, env_lock],
     )
 
-    def _run_hash():
+    def _update_hash():
         # mimic sha256sum CLI
         if P.SHA256SUMS.exists():
             P.SHA256SUMS.unlink()
-
-        lines = []
-
-        for p in P.HASH_DEPS:
-            lines += ["  ".join([sha256(p.read_bytes()).hexdigest(), p.name])]
-
-        output = "\n".join(lines)
+        output = _calc_hash()
         print(output)
         P.SHA256SUMS.write_text(output)
 
@@ -67,7 +75,59 @@ def _run_hash():
         name="hash",
         file_dep=P.HASH_DEPS,
         targets=[P.SHA256SUMS],
-        actions=[_run_hash],
+        actions=[_update_hash],
+    )
+
+
+def task_conda_build():
+    """build conda package"""
+
+    def _template():
+        sums = {
+            line.split("  ")[1]: line.split("  ")[0]
+            for line in P.SHA256SUMS.read_text().splitlines()
+            if line.strip()
+        }
+
+        recipe_text = (
+            P.META_YAML_IN.read_text()
+            .replace("REPLACE_THIS_VERSION", P.VERSION)
+            .replace("REPLACE_THIS_PATH", P.SDIST.as_uri())
+            .replace("REPLACE_THIS_SHA256", sums[P.SDIST.name])
+        )
+
+        print(recipe_text)
+
+        P.META_YAML.write_text(recipe_text)
+
+    if P.CI:
+        # we _don't_ want to force irreproducibly re-building the tarball
+        file_dep = [P.META_YAML_IN, P.VERSION_FILE]
+    else:
+        file_dep = [P.META_YAML_IN, P.SDIST, P.VERSION_FILE, P.SHA256SUMS]
+
+    yield dict(
+        name="recipe",
+        file_dep=file_dep,
+        targets=[P.META_YAML],
+        actions=[_template],
+    )
+
+    yield dict(
+        name="build",
+        file_dep=[P.META_YAML],
+        actions=[
+            [
+                P.CONDA_EXE,
+                "build",
+                "-c",
+                "conda-forge",
+                "--output-folder",
+                P.CONDA_BLD,
+                P.RECIPE,
+            ]
+        ],
+        targets=[P.CONDA_PKG],
     )
 
 
@@ -78,20 +138,24 @@ def task_docs():
     lockfile = P.get_lockfile(env)
     frozen = P.PIP_LISTS[env]
 
-    header, tarballs = lockfile.read_text().split("@EXPLICIT")
-
     clean, touch = P.get_ok_actions(P.RTD_ENV)
 
-    header = (
-        f"# Probably don't edit by hand! \n"
-        f"#\n"
-        f"# This was generated from {lockfile.relative_to(P.ROOT)}\n"
-        f"#\n"
-        f"#   doit docs:rtdenv\n"
-        f"#\n"
-    ) + header
-
     def _env_from_lock():
+        try:
+            header, tarballs = lockfile.read_text().split("@EXPLICIT")
+        except:
+            header = "# NO LOCKFILE"
+            tarballs = []
+
+        header = (
+            f"# Probably don't edit by hand! \n"
+            f"#\n"
+            f"# This was generated from {lockfile.relative_to(P.ROOT)}\n"
+            f"#\n"
+            f"#   doit docs:rtdenv\n"
+            f"#\n"
+        ) + header
+
         P.RTD_ENV.write_text(
             header
             + P.safe_dump(
@@ -109,7 +173,6 @@ def _env_from_lock():
         name="rtd:env",
         doc="generate a readthedocs-compatible env",
         file_dep=[lockfile],
-        uptodate=[config_changed(header)],
         actions=[clean, _env_from_lock],
         targets=[P.RTD_ENV],
     )
@@ -383,20 +446,69 @@ def task_test():
     )
 
 
-if P.CAN_CONDA_LOCK:
+def _make_lock_task_name(key):
+    return "__".join([p for p in key if p]).replace(".", "_")
+
+
+def _make_lock_task(key, target):
+    (flow, pf, py, lab) = key
+
+    task = dict(
+        name=_make_lock_task_name(key),
+        actions=[[*P.SCRIPT_LOCK, target]],
+        file_dep=[*P.ENV_DEPS[key]],
+        targets=[target],
+    )
+
+    if P.THIS_META_ENV_LOCK != target:
+        task["actions"][0] = [*P.RUN_IN["meta"], *task["actions"][0]]
+        task["task_dep"] = ["env:meta"]
+
+    return task
+
+
+# at some point, we'll want a scheduled excursion just for locking
+if not P.CI:
 
     def task_lock():
         """generate conda lock files for all the excursions"""
-        for key, target in P.ENVENTURES.items():
-            (flow, pf, py, lab) = key
-            file_dep = P.ENV_DEPS[key]
-            yield dict(
-                name="__".join([p for p in key if p]).replace(".", "_"),
-                actions=[[*P.SCRIPT_LOCK, target]],
-                file_dep=file_dep,
-                targets=[target],
+        meta_lock_exists = P.THIS_META_ENV_LOCK.exists()
+        can_bootstrap = P.CAN_CONDA_LOCK
+
+        if not (meta_lock_exists or can_bootstrap):
+            raise RuntimeError(
+                f"{P.THIS_META_ENV_LOCK} is missing: this, or `conda-lock` on path"
+                " is needed to bootstrap the lock environment"
             )
 
+        for key, target in P.ENVENTURES.items():
+            if not meta_lock_exists and target != P.THIS_META_ENV_LOCK:
+                continue
+
+            yield _make_lock_task(key, target)
+
+    def task_publish():
+        """publish to pypi"""
+
+        def _check_hash():
+            on_disk = P.SHA256SUMS.read_text()
+            calculated = _calc_hash()
+            print("\n--\n".join(["on-disk:", on_disk, "calculated", calculated]))
+
+            if calculated != on_disk:
+                raise RuntimeError("SHA256SUMS do not match:")
+            print("SHA256SUMS are OK")
+
+        return dict(
+            actions=[
+                _check_hash,
+                InteractiveAction(
+                    [*P.RUN_IN["meta"], "twine", "upload", P.SDIST, P.WHEEL],
+                    shell=False,
+                ),
+            ]
+        )
+
 
 if __name__ == "__main__":
     doit.run(globals())
diff --git a/src/JupyterLibrary/VERSION b/src/JupyterLibrary/VERSION
index 0d91a54c..48d48499 100644
--- a/src/JupyterLibrary/VERSION
+++ b/src/JupyterLibrary/VERSION
@@ -1,1 +1,1 @@
-0.3.0
+0.3.1a0
diff --git a/src/JupyterLibrary/__init__.py b/src/JupyterLibrary/__init__.py
index 12de27bd..fa1ef635 100644
--- a/src/JupyterLibrary/__init__.py
+++ b/src/JupyterLibrary/__init__.py
@@ -1,8 +1,13 @@
 from pathlib import Path
 
 from .core import JupyterLibrary
-from .magic import load_ipython_extension
 
 __version__ = (Path(__file__).parent / "VERSION").read_text()
 
 __all__ = ["__version__", "JupyterLibrary", "load_ipython_extension"]
+
+
+def load_ipython_extension(ip):
+    from .magic import RobotMagics
+
+    ip.register_magics(RobotMagics)
diff --git a/src/JupyterLibrary/magic.py b/src/JupyterLibrary/magic.py
index d5c09259..9c8d6887 100644
--- a/src/JupyterLibrary/magic.py
+++ b/src/JupyterLibrary/magic.py
@@ -238,7 +238,3 @@ def pretty(self, args, cell):
         )
 
         return html
-
-
-def load_ipython_extension(ip):
-    ip.register_magics(RobotMagics)


Test patch:
diff --git a/.github/locks/test/linux-64/py3.6/lab1/conda.lock b/.github/locks/test/linux-64/py3.6/lab1/conda.lock
index c9ed3b30..5eb140d0 100644
--- a/.github/locks/test/linux-64/py3.6/lab1/conda.lock
+++ b/.github/locks/test/linux-64/py3.6/lab1/conda.lock
@@ -26,7 +26,7 @@ https://conda.anaconda.org/conda-forge/linux-64/nodejs-14.15.1-h25f6087_0.tar.bz
 https://conda.anaconda.org/conda-forge/linux-64/readline-8.0-he28a2e2_2.tar.bz2#4d0ae8d473f863696088f76800ef9d38
 https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.10-hed695b0_1.tar.bz2#7ef837cd455bd0f19f49b8b62d4cb568
 https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.3-h58526e2_3.tar.bz2#6272fa8d98bd79c7978da0f7d2bb28da
-https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.33.0-h4cf870e_1.tar.bz2#1968ff6c4b8fbd2903f6672e292d932d
+https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.34.0-h74cdb3f_0.tar.bz2#0a83e21e8c1929cc9a1e21ebb2459fc5
 https://conda.anaconda.org/conda-forge/linux-64/python-3.6.11-hffdb5ce_3_cpython.tar.bz2#78b053e3316c47b2535aac75f6997a53
 https://conda.anaconda.org/conda-forge/noarch/async_generator-1.10-py_0.tar.bz2#d56c596e61b1c4952acf0a9920856c12
 https://conda.anaconda.org/conda-forge/noarch/attrs-20.3.0-pyhd3deb0d_0.tar.bz2#5b319abb055eefcfa344bc21378ca23f
@@ -52,12 +52,12 @@ https://conda.anaconda.org/conda-forge/noarch/send2trash-1.5.0-py_0.tar.bz2#c377
 https://conda.anaconda.org/conda-forge/noarch/six-1.15.0-pyh9f0ad1d_0.tar.bz2#1eec421f0f1f39e579e44e4a5ce646a2
 https://conda.anaconda.org/conda-forge/noarch/testpath-0.4.4-py_0.tar.bz2#3b98fff4d5342bebde2ecaa314f796f9
 https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-py_1.tar.bz2#3563be4c5611a44210d9ba0c16113136
-https://conda.anaconda.org/conda-forge/noarch/wheel-0.35.1-pyh9f0ad1d_0.tar.bz2#126827869be32f21872a2b30ebe2b038
+https://conda.anaconda.org/conda-forge/noarch/wheel-0.36.0-pyhd3deb0d_0.tar.bz2#f144bcd310e543bd9c8aa17c8ba1ee02
 https://conda.anaconda.org/conda-forge/noarch/zipp-3.4.0-py_0.tar.bz2#0df927d2e46244cef8fd75d7ec2ba51c
 https://conda.anaconda.org/conda-forge/linux-64/certifi-2020.11.8-py36h5fab9bb_0.tar.bz2#65b3d08f67f9d039cd0589dcd53db2a6
 https://conda.anaconda.org/conda-forge/linux-64/cffi-1.14.4-py36hc120d54_1.tar.bz2#c49b9df07bcdcfbe22ffb0f8025d474b
 https://conda.anaconda.org/conda-forge/linux-64/entrypoints-0.3-py36h9f0ad1d_1002.tar.bz2#3ff18a1ed2e93fb739b97b3669dcaf89
-https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.0-pyhd8ed1ab_0.tar.bz2#97a4bcec44626ddea360efdf7d5ad816
+https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.1-pyhd8ed1ab_0.tar.bz2#e22162ed945059586d1b6b603d07c48e
 https://conda.anaconda.org/conda-forge/linux-64/jedi-0.17.2-py36h9f0ad1d_1.tar.bz2#7aa1974ca53aa6f662c4e24a15f495b9
 https://conda.anaconda.org/conda-forge/linux-64/markupsafe-1.1.1-py36he6145b8_2.tar.bz2#a4145312b908f2e145ed865c135bfa2e
 https://conda.anaconda.org/conda-forge/linux-64/mistune-0.8.4-py36h8c4c3a4_1002.tar.bz2#1f094e44c9d7356638cda5d6cb763510
@@ -78,7 +78,7 @@ https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-20.1.0-py36h8c4c3a4_
 https://conda.anaconda.org/conda-forge/linux-64/brotlipy-0.7.0-py36he6145b8_1001.tar.bz2#49563e14138ee2a2e1028ab4aa6a7ee3
 https://conda.anaconda.org/conda-forge/linux-64/cryptography-3.2.1-py36h6ec43e4_0.tar.bz2#9e37e4ebbea5f4bcb50190192bbcc212
 https://conda.anaconda.org/conda-forge/linux-64/doit-0.33.1-py36h9f0ad1d_1.tar.bz2#03ff97a03955a189acdbc8c4d196e5e1
-https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.0-hd8ed1ab_0.tar.bz2#182b3a7c361dfc0de2ed1abf90fd61c8
+https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.1-hd8ed1ab_0.tar.bz2#a884b1bcaa2d48a6bc299dcba787db7a
 https://conda.anaconda.org/conda-forge/linux-64/jupyter_core-4.7.0-py36h5fab9bb_0.tar.bz2#1185d2559694206b07516039f1208763
 https://conda.anaconda.org/conda-forge/linux-64/setuptools-49.6.0-py36h9880bd3_2.tar.bz2#ba1f9cf60677266d31905e6ce7899b0a
 https://conda.anaconda.org/conda-forge/linux-64/terminado-0.9.1-py36h9f0ad1d_1.tar.bz2#14cd3fbc954c9838ed894749a9b99fd7
@@ -87,7 +87,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2#
 https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551
 https://conda.anaconda.org/conda-forge/linux-64/jsonschema-3.2.0-py36h9f0ad1d_1.tar.bz2#eefe83ff43117f8af6d4641d1bc9fce6
 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a
-https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1
+https://conda.anaconda.org/conda-forge/noarch/pip-20.3.1-pyhd8ed1ab_0.tar.bz2#bd6aa73eed4afc399688200778a609f6
 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723
 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f
 https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7
diff --git a/.github/locks/test/linux-64/py3.6/lab2/conda.lock b/.github/locks/test/linux-64/py3.6/lab2/conda.lock
index f1e3df7a..84f0e49c 100644
--- a/.github/locks/test/linux-64/py3.6/lab2/conda.lock
+++ b/.github/locks/test/linux-64/py3.6/lab2/conda.lock
@@ -26,7 +26,7 @@ https://conda.anaconda.org/conda-forge/linux-64/nodejs-14.15.1-h25f6087_0.tar.bz
 https://conda.anaconda.org/conda-forge/linux-64/readline-8.0-he28a2e2_2.tar.bz2#4d0ae8d473f863696088f76800ef9d38
 https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.10-hed695b0_1.tar.bz2#7ef837cd455bd0f19f49b8b62d4cb568
 https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.3-h58526e2_3.tar.bz2#6272fa8d98bd79c7978da0f7d2bb28da
-https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.33.0-h4cf870e_1.tar.bz2#1968ff6c4b8fbd2903f6672e292d932d
+https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.34.0-h74cdb3f_0.tar.bz2#0a83e21e8c1929cc9a1e21ebb2459fc5
 https://conda.anaconda.org/conda-forge/linux-64/python-3.6.11-hffdb5ce_3_cpython.tar.bz2#78b053e3316c47b2535aac75f6997a53
 https://conda.anaconda.org/conda-forge/noarch/async_generator-1.10-py_0.tar.bz2#d56c596e61b1c4952acf0a9920856c12
 https://conda.anaconda.org/conda-forge/noarch/attrs-20.3.0-pyhd3deb0d_0.tar.bz2#5b319abb055eefcfa344bc21378ca23f
@@ -52,12 +52,12 @@ https://conda.anaconda.org/conda-forge/noarch/send2trash-1.5.0-py_0.tar.bz2#c377
 https://conda.anaconda.org/conda-forge/noarch/six-1.15.0-pyh9f0ad1d_0.tar.bz2#1eec421f0f1f39e579e44e4a5ce646a2
 https://conda.anaconda.org/conda-forge/noarch/testpath-0.4.4-py_0.tar.bz2#3b98fff4d5342bebde2ecaa314f796f9
 https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-py_1.tar.bz2#3563be4c5611a44210d9ba0c16113136
-https://conda.anaconda.org/conda-forge/noarch/wheel-0.35.1-pyh9f0ad1d_0.tar.bz2#126827869be32f21872a2b30ebe2b038
+https://conda.anaconda.org/conda-forge/noarch/wheel-0.36.0-pyhd3deb0d_0.tar.bz2#f144bcd310e543bd9c8aa17c8ba1ee02
 https://conda.anaconda.org/conda-forge/noarch/zipp-3.4.0-py_0.tar.bz2#0df927d2e46244cef8fd75d7ec2ba51c
 https://conda.anaconda.org/conda-forge/linux-64/certifi-2020.11.8-py36h5fab9bb_0.tar.bz2#65b3d08f67f9d039cd0589dcd53db2a6
 https://conda.anaconda.org/conda-forge/linux-64/cffi-1.14.4-py36hc120d54_1.tar.bz2#c49b9df07bcdcfbe22ffb0f8025d474b
 https://conda.anaconda.org/conda-forge/linux-64/entrypoints-0.3-py36h9f0ad1d_1002.tar.bz2#3ff18a1ed2e93fb739b97b3669dcaf89
-https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.0-pyhd8ed1ab_0.tar.bz2#97a4bcec44626ddea360efdf7d5ad816
+https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.1-pyhd8ed1ab_0.tar.bz2#e22162ed945059586d1b6b603d07c48e
 https://conda.anaconda.org/conda-forge/linux-64/jedi-0.17.2-py36h9f0ad1d_1.tar.bz2#7aa1974ca53aa6f662c4e24a15f495b9
 https://conda.anaconda.org/conda-forge/linux-64/markupsafe-1.1.1-py36he6145b8_2.tar.bz2#a4145312b908f2e145ed865c135bfa2e
 https://conda.anaconda.org/conda-forge/linux-64/mistune-0.8.4-py36h8c4c3a4_1002.tar.bz2#1f094e44c9d7356638cda5d6cb763510
@@ -78,7 +78,7 @@ https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-20.1.0-py36h8c4c3a4_
 https://conda.anaconda.org/conda-forge/linux-64/brotlipy-0.7.0-py36he6145b8_1001.tar.bz2#49563e14138ee2a2e1028ab4aa6a7ee3
 https://conda.anaconda.org/conda-forge/linux-64/cryptography-3.2.1-py36h6ec43e4_0.tar.bz2#9e37e4ebbea5f4bcb50190192bbcc212
 https://conda.anaconda.org/conda-forge/linux-64/doit-0.33.1-py36h9f0ad1d_1.tar.bz2#03ff97a03955a189acdbc8c4d196e5e1
-https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.0-hd8ed1ab_0.tar.bz2#182b3a7c361dfc0de2ed1abf90fd61c8
+https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.1-hd8ed1ab_0.tar.bz2#a884b1bcaa2d48a6bc299dcba787db7a
 https://conda.anaconda.org/conda-forge/linux-64/jupyter_core-4.7.0-py36h5fab9bb_0.tar.bz2#1185d2559694206b07516039f1208763
 https://conda.anaconda.org/conda-forge/linux-64/setuptools-49.6.0-py36h9880bd3_2.tar.bz2#ba1f9cf60677266d31905e6ce7899b0a
 https://conda.anaconda.org/conda-forge/linux-64/terminado-0.9.1-py36h9f0ad1d_1.tar.bz2#14cd3fbc954c9838ed894749a9b99fd7
@@ -87,7 +87,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2#
 https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551
 https://conda.anaconda.org/conda-forge/linux-64/jsonschema-3.2.0-py36h9f0ad1d_1.tar.bz2#eefe83ff43117f8af6d4641d1bc9fce6
 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a
-https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1
+https://conda.anaconda.org/conda-forge/noarch/pip-20.3.1-pyhd8ed1ab_0.tar.bz2#bd6aa73eed4afc399688200778a609f6
 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723
 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f
 https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7
diff --git a/.github/locks/test/linux-64/py3.8/lab1/conda.lock b/.github/locks/test/linux-64/py3.8/lab1/conda.lock
index 359e648a..178e7e96 100644
--- a/.github/locks/test/linux-64/py3.8/lab1/conda.lock
+++ b/.github/locks/test/linux-64/py3.8/lab1/conda.lock
@@ -26,7 +26,7 @@ https://conda.anaconda.org/conda-forge/linux-64/nodejs-14.15.1-h25f6087_0.tar.bz
 https://conda.anaconda.org/conda-forge/linux-64/readline-8.0-he28a2e2_2.tar.bz2#4d0ae8d473f863696088f76800ef9d38
 https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.10-hed695b0_1.tar.bz2#7ef837cd455bd0f19f49b8b62d4cb568
 https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.3-h58526e2_3.tar.bz2#6272fa8d98bd79c7978da0f7d2bb28da
-https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.33.0-h4cf870e_1.tar.bz2#1968ff6c4b8fbd2903f6672e292d932d
+https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.34.0-h74cdb3f_0.tar.bz2#0a83e21e8c1929cc9a1e21ebb2459fc5
 https://conda.anaconda.org/conda-forge/linux-64/python-3.8.6-hffdb5ce_1_cpython.tar.bz2#8a33708324a714c7b69d4bd49774166f
 https://conda.anaconda.org/conda-forge/noarch/async_generator-1.10-py_0.tar.bz2#d56c596e61b1c4952acf0a9920856c12
 https://conda.anaconda.org/conda-forge/noarch/attrs-20.3.0-pyhd3deb0d_0.tar.bz2#5b319abb055eefcfa344bc21378ca23f
@@ -51,13 +51,13 @@ https://conda.anaconda.org/conda-forge/noarch/send2trash-1.5.0-py_0.tar.bz2#c377
 https://conda.anaconda.org/conda-forge/noarch/six-1.15.0-pyh9f0ad1d_0.tar.bz2#1eec421f0f1f39e579e44e4a5ce646a2
 https://conda.anaconda.org/conda-forge/noarch/testpath-0.4.4-py_0.tar.bz2#3b98fff4d5342bebde2ecaa314f796f9
 https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-py_1.tar.bz2#3563be4c5611a44210d9ba0c16113136
-https://conda.anaconda.org/conda-forge/noarch/wheel-0.35.1-pyh9f0ad1d_0.tar.bz2#126827869be32f21872a2b30ebe2b038
+https://conda.anaconda.org/conda-forge/noarch/wheel-0.36.0-pyhd3deb0d_0.tar.bz2#f144bcd310e543bd9c8aa17c8ba1ee02
 https://conda.anaconda.org/conda-forge/noarch/zipp-3.4.0-py_0.tar.bz2#0df927d2e46244cef8fd75d7ec2ba51c
 https://conda.anaconda.org/conda-forge/linux-64/certifi-2020.11.8-py38h578d9bd_0.tar.bz2#dddc61aa1e0e87871d79c6cf951b8482
 https://conda.anaconda.org/conda-forge/linux-64/cffi-1.14.4-py38ha65f79e_1.tar.bz2#070203fb16eb5a01aa74a875084fd7f2
 https://conda.anaconda.org/conda-forge/linux-64/chardet-3.0.4-py38h924ce5b_1008.tar.bz2#650d998422b4e70d0700f5c1d083e59d
 https://conda.anaconda.org/conda-forge/linux-64/entrypoints-0.3-py38h32f6830_1002.tar.bz2#b76ac7f9e86b4169c3b3003dedd05e87
-https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.0-pyhd8ed1ab_0.tar.bz2#97a4bcec44626ddea360efdf7d5ad816
+https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.1-pyhd8ed1ab_0.tar.bz2#e22162ed945059586d1b6b603d07c48e
 https://conda.anaconda.org/conda-forge/linux-64/jedi-0.17.2-py38h578d9bd_1.tar.bz2#f4eda1939aa75de2af5dc10c1f3a9224
 https://conda.anaconda.org/conda-forge/linux-64/markupsafe-1.1.1-py38h8df0ef7_2.tar.bz2#74e818eb7b17fde40f9ae4d2a89caf1d
 https://conda.anaconda.org/conda-forge/linux-64/mistune-0.8.4-py38h25fe258_1002.tar.bz2#a99b318a91985f61931a7f87cf8f395d
@@ -78,7 +78,7 @@ https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-20.1.0-py38h25fe258_
 https://conda.anaconda.org/conda-forge/linux-64/brotlipy-0.7.0-py38h8df0ef7_1001.tar.bz2#1d928644b8bfd49b2e869609dd3e57a1
 https://conda.anaconda.org/conda-forge/linux-64/cryptography-3.2.1-py38h7699a38_0.tar.bz2#7f46d842a1dccbcb03cedb53970b4c05
 https://conda.anaconda.org/conda-forge/linux-64/doit-0.33.1-py38h32f6830_1.tar.bz2#c3a34ba48a004ab17e926f72f13ca488
-https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.0-hd8ed1ab_0.tar.bz2#182b3a7c361dfc0de2ed1abf90fd61c8
+https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.1-hd8ed1ab_0.tar.bz2#a884b1bcaa2d48a6bc299dcba787db7a
 https://conda.anaconda.org/conda-forge/linux-64/jupyter_core-4.7.0-py38h578d9bd_0.tar.bz2#aa83f54189c3289055f7811fbabc2d12
 https://conda.anaconda.org/conda-forge/linux-64/setuptools-49.6.0-py38h924ce5b_2.tar.bz2#85f49978317e2f963ffd1d0989b16038
 https://conda.anaconda.org/conda-forge/linux-64/terminado-0.9.1-py38h32f6830_1.tar.bz2#f74ca1717f8a752cf1ec0fd0a0131389
@@ -87,7 +87,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2#
 https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551
 https://conda.anaconda.org/conda-forge/linux-64/jsonschema-3.2.0-py38h32f6830_1.tar.bz2#49dd43811f60b5ba18fb9d7663a451d5
 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a
-https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1
+https://conda.anaconda.org/conda-forge/noarch/pip-20.3.1-pyhd8ed1ab_0.tar.bz2#bd6aa73eed4afc399688200778a609f6
 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723
 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f
 https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7
diff --git a/.github/locks/test/linux-64/py3.8/lab2/conda.lock b/.github/locks/test/linux-64/py3.8/lab2/conda.lock
index eeae8903..8d83f4d3 100644
--- a/.github/locks/test/linux-64/py3.8/lab2/conda.lock
+++ b/.github/locks/test/linux-64/py3.8/lab2/conda.lock
@@ -26,7 +26,7 @@ https://conda.anaconda.org/conda-forge/linux-64/nodejs-14.15.1-h25f6087_0.tar.bz
 https://conda.anaconda.org/conda-forge/linux-64/readline-8.0-he28a2e2_2.tar.bz2#4d0ae8d473f863696088f76800ef9d38
 https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.10-hed695b0_1.tar.bz2#7ef837cd455bd0f19f49b8b62d4cb568
 https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.3-h58526e2_3.tar.bz2#6272fa8d98bd79c7978da0f7d2bb28da
-https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.33.0-h4cf870e_1.tar.bz2#1968ff6c4b8fbd2903f6672e292d932d
+https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.34.0-h74cdb3f_0.tar.bz2#0a83e21e8c1929cc9a1e21ebb2459fc5
 https://conda.anaconda.org/conda-forge/linux-64/python-3.8.6-hffdb5ce_1_cpython.tar.bz2#8a33708324a714c7b69d4bd49774166f
 https://conda.anaconda.org/conda-forge/noarch/async_generator-1.10-py_0.tar.bz2#d56c596e61b1c4952acf0a9920856c12
 https://conda.anaconda.org/conda-forge/noarch/attrs-20.3.0-pyhd3deb0d_0.tar.bz2#5b319abb055eefcfa344bc21378ca23f
@@ -51,13 +51,13 @@ https://conda.anaconda.org/conda-forge/noarch/send2trash-1.5.0-py_0.tar.bz2#c377
 https://conda.anaconda.org/conda-forge/noarch/six-1.15.0-pyh9f0ad1d_0.tar.bz2#1eec421f0f1f39e579e44e4a5ce646a2
 https://conda.anaconda.org/conda-forge/noarch/testpath-0.4.4-py_0.tar.bz2#3b98fff4d5342bebde2ecaa314f796f9
 https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-py_1.tar.bz2#3563be4c5611a44210d9ba0c16113136
-https://conda.anaconda.org/conda-forge/noarch/wheel-0.35.1-pyh9f0ad1d_0.tar.bz2#126827869be32f21872a2b30ebe2b038
+https://conda.anaconda.org/conda-forge/noarch/wheel-0.36.0-pyhd3deb0d_0.tar.bz2#f144bcd310e543bd9c8aa17c8ba1ee02
 https://conda.anaconda.org/conda-forge/noarch/zipp-3.4.0-py_0.tar.bz2#0df927d2e46244cef8fd75d7ec2ba51c
 https://conda.anaconda.org/conda-forge/linux-64/certifi-2020.11.8-py38h578d9bd_0.tar.bz2#dddc61aa1e0e87871d79c6cf951b8482
 https://conda.anaconda.org/conda-forge/linux-64/cffi-1.14.4-py38ha65f79e_1.tar.bz2#070203fb16eb5a01aa74a875084fd7f2
 https://conda.anaconda.org/conda-forge/linux-64/chardet-3.0.4-py38h924ce5b_1008.tar.bz2#650d998422b4e70d0700f5c1d083e59d
 https://conda.anaconda.org/conda-forge/linux-64/entrypoints-0.3-py38h32f6830_1002.tar.bz2#b76ac7f9e86b4169c3b3003dedd05e87
-https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.0-pyhd8ed1ab_0.tar.bz2#97a4bcec44626ddea360efdf7d5ad816
+https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.1-pyhd8ed1ab_0.tar.bz2#e22162ed945059586d1b6b603d07c48e
 https://conda.anaconda.org/conda-forge/linux-64/jedi-0.17.2-py38h578d9bd_1.tar.bz2#f4eda1939aa75de2af5dc10c1f3a9224
 https://conda.anaconda.org/conda-forge/linux-64/markupsafe-1.1.1-py38h8df0ef7_2.tar.bz2#74e818eb7b17fde40f9ae4d2a89caf1d
 https://conda.anaconda.org/conda-forge/linux-64/mistune-0.8.4-py38h25fe258_1002.tar.bz2#a99b318a91985f61931a7f87cf8f395d
@@ -78,7 +78,7 @@ https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-20.1.0-py38h25fe258_
 https://conda.anaconda.org/conda-forge/linux-64/brotlipy-0.7.0-py38h8df0ef7_1001.tar.bz2#1d928644b8bfd49b2e869609dd3e57a1
 https://conda.anaconda.org/conda-forge/linux-64/cryptography-3.2.1-py38h7699a38_0.tar.bz2#7f46d842a1dccbcb03cedb53970b4c05
 https://conda.anaconda.org/conda-forge/linux-64/doit-0.33.1-py38h32f6830_1.tar.bz2#c3a34ba48a004ab17e926f72f13ca488
-https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.0-hd8ed1ab_0.tar.bz2#182b3a7c361dfc0de2ed1abf90fd61c8
+https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.1-hd8ed1ab_0.tar.bz2#a884b1bcaa2d48a6bc299dcba787db7a
 https://conda.anaconda.org/conda-forge/linux-64/jupyter_core-4.7.0-py38h578d9bd_0.tar.bz2#aa83f54189c3289055f7811fbabc2d12
 https://conda.anaconda.org/conda-forge/linux-64/setuptools-49.6.0-py38h924ce5b_2.tar.bz2#85f49978317e2f963ffd1d0989b16038
 https://conda.anaconda.org/conda-forge/linux-64/terminado-0.9.1-py38h32f6830_1.tar.bz2#f74ca1717f8a752cf1ec0fd0a0131389
@@ -87,7 +87,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2#
 https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551
 https://conda.anaconda.org/conda-forge/linux-64/jsonschema-3.2.0-py38h32f6830_1.tar.bz2#49dd43811f60b5ba18fb9d7663a451d5
 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a
-https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1
+https://conda.anaconda.org/conda-forge/noarch/pip-20.3.1-pyhd8ed1ab_0.tar.bz2#bd6aa73eed4afc399688200778a609f6
 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723
 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f
 https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7
diff --git a/.github/locks/test/linux-64/py3.8/lab3/conda.lock b/.github/locks/test/linux-64/py3.8/lab3/conda.lock
index 99db81e1..f32d6ba2 100644
--- a/.github/locks/test/linux-64/py3.8/lab3/conda.lock
+++ b/.github/locks/test/linux-64/py3.8/lab3/conda.lock
@@ -26,7 +26,7 @@ https://conda.anaconda.org/conda-forge/linux-64/nodejs-14.15.1-h25f6087_0.tar.bz
 https://conda.anaconda.org/conda-forge/linux-64/readline-8.0-he28a2e2_2.tar.bz2#4d0ae8d473f863696088f76800ef9d38
 https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.10-hed695b0_1.tar.bz2#7ef837cd455bd0f19f49b8b62d4cb568
 https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.3-h58526e2_3.tar.bz2#6272fa8d98bd79c7978da0f7d2bb28da
-https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.33.0-h4cf870e_1.tar.bz2#1968ff6c4b8fbd2903f6672e292d932d
+https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.34.0-h74cdb3f_0.tar.bz2#0a83e21e8c1929cc9a1e21ebb2459fc5
 https://conda.anaconda.org/conda-forge/linux-64/python-3.8.6-hffdb5ce_1_cpython.tar.bz2#8a33708324a714c7b69d4bd49774166f
 https://conda.anaconda.org/conda-forge/noarch/async_generator-1.10-py_0.tar.bz2#d56c596e61b1c4952acf0a9920856c12
 https://conda.anaconda.org/conda-forge/noarch/attrs-20.3.0-pyhd3deb0d_0.tar.bz2#5b319abb055eefcfa344bc21378ca23f
@@ -53,14 +53,14 @@ https://conda.anaconda.org/conda-forge/noarch/send2trash-1.5.0-py_0.tar.bz2#c377
 https://conda.anaconda.org/conda-forge/noarch/six-1.15.0-pyh9f0ad1d_0.tar.bz2#1eec421f0f1f39e579e44e4a5ce646a2
 https://conda.anaconda.org/conda-forge/noarch/testpath-0.4.4-py_0.tar.bz2#3b98fff4d5342bebde2ecaa314f796f9
 https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-py_1.tar.bz2#3563be4c5611a44210d9ba0c16113136
-https://conda.anaconda.org/conda-forge/noarch/wheel-0.35.1-pyh9f0ad1d_0.tar.bz2#126827869be32f21872a2b30ebe2b038
+https://conda.anaconda.org/conda-forge/noarch/wheel-0.36.0-pyhd3deb0d_0.tar.bz2#f144bcd310e543bd9c8aa17c8ba1ee02
 https://conda.anaconda.org/conda-forge/noarch/zipp-3.4.0-py_0.tar.bz2#0df927d2e46244cef8fd75d7ec2ba51c
 https://conda.anaconda.org/conda-forge/noarch/babel-2.9.0-pyhd3deb0d_0.tar.bz2#1cb532c9a6fd4e56a9f0906b87c17b76
 https://conda.anaconda.org/conda-forge/linux-64/certifi-2020.11.8-py38h578d9bd_0.tar.bz2#dddc61aa1e0e87871d79c6cf951b8482
 https://conda.anaconda.org/conda-forge/linux-64/cffi-1.14.4-py38ha65f79e_1.tar.bz2#070203fb16eb5a01aa74a875084fd7f2
 https://conda.anaconda.org/conda-forge/linux-64/chardet-3.0.4-py38h924ce5b_1008.tar.bz2#650d998422b4e70d0700f5c1d083e59d
 https://conda.anaconda.org/conda-forge/linux-64/entrypoints-0.3-py38h32f6830_1002.tar.bz2#b76ac7f9e86b4169c3b3003dedd05e87
-https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.0-pyhd8ed1ab_0.tar.bz2#97a4bcec44626ddea360efdf7d5ad816
+https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.1-pyhd8ed1ab_0.tar.bz2#e22162ed945059586d1b6b603d07c48e
 https://conda.anaconda.org/conda-forge/linux-64/jedi-0.17.2-py38h578d9bd_1.tar.bz2#f4eda1939aa75de2af5dc10c1f3a9224
 https://conda.anaconda.org/conda-forge/linux-64/markupsafe-1.1.1-py38h8df0ef7_2.tar.bz2#74e818eb7b17fde40f9ae4d2a89caf1d
 https://conda.anaconda.org/conda-forge/linux-64/mistune-0.8.4-py38h25fe258_1002.tar.bz2#a99b318a91985f61931a7f87cf8f395d
@@ -81,7 +81,7 @@ https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-20.1.0-py38h25fe258_
 https://conda.anaconda.org/conda-forge/linux-64/brotlipy-0.7.0-py38h8df0ef7_1001.tar.bz2#1d928644b8bfd49b2e869609dd3e57a1
 https://conda.anaconda.org/conda-forge/linux-64/cryptography-3.2.1-py38h7699a38_0.tar.bz2#7f46d842a1dccbcb03cedb53970b4c05
 https://conda.anaconda.org/conda-forge/linux-64/doit-0.33.1-py38h32f6830_1.tar.bz2#c3a34ba48a004ab17e926f72f13ca488
-https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.0-hd8ed1ab_0.tar.bz2#182b3a7c361dfc0de2ed1abf90fd61c8
+https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.1-hd8ed1ab_0.tar.bz2#a884b1bcaa2d48a6bc299dcba787db7a
 https://conda.anaconda.org/conda-forge/linux-64/jupyter_core-4.7.0-py38h578d9bd_0.tar.bz2#aa83f54189c3289055f7811fbabc2d12
 https://conda.anaconda.org/conda-forge/linux-64/setuptools-49.6.0-py38h924ce5b_2.tar.bz2#85f49978317e2f963ffd1d0989b16038
 https://conda.anaconda.org/conda-forge/linux-64/terminado-0.9.1-py38h32f6830_1.tar.bz2#f74ca1717f8a752cf1ec0fd0a0131389
@@ -90,7 +90,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2#
 https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551
 https://conda.anaconda.org/conda-forge/linux-64/jsonschema-3.2.0-py38h32f6830_1.tar.bz2#49dd43811f60b5ba18fb9d7663a451d5
 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a
-https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1
+https://conda.anaconda.org/conda-forge/noarch/pip-20.3.1-pyhd8ed1ab_0.tar.bz2#bd6aa73eed4afc399688200778a609f6
 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723
 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f
 https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7
diff --git a/.github/locks/test/linux-64/py3.9/lab1/conda.lock b/.github/locks/test/linux-64/py3.9/lab1/conda.lock
index 758c74f6..106599c9 100644
--- a/.github/locks/test/linux-64/py3.9/lab1/conda.lock
+++ b/.github/locks/test/linux-64/py3.9/lab1/conda.lock
@@ -27,7 +27,7 @@ https://conda.anaconda.org/conda-forge/linux-64/nodejs-14.15.1-h25f6087_0.tar.bz
 https://conda.anaconda.org/conda-forge/linux-64/readline-8.0-he28a2e2_2.tar.bz2#4d0ae8d473f863696088f76800ef9d38
 https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.10-hed695b0_1.tar.bz2#7ef837cd455bd0f19f49b8b62d4cb568
 https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.3-h58526e2_3.tar.bz2#6272fa8d98bd79c7978da0f7d2bb28da
-https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.33.0-h4cf870e_1.tar.bz2#1968ff6c4b8fbd2903f6672e292d932d
+https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.34.0-h74cdb3f_0.tar.bz2#0a83e21e8c1929cc9a1e21ebb2459fc5
 https://conda.anaconda.org/conda-forge/linux-64/python-3.9.0-hffdb5ce_5_cpython.tar.bz2#d26d64e4cf67cbfab3caf9176c9255de
 https://conda.anaconda.org/conda-forge/noarch/async_generator-1.10-py_0.tar.bz2#d56c596e61b1c4952acf0a9920856c12
 https://conda.anaconda.org/conda-forge/noarch/attrs-20.3.0-pyhd3deb0d_0.tar.bz2#5b319abb055eefcfa344bc21378ca23f
@@ -52,13 +52,13 @@ https://conda.anaconda.org/conda-forge/noarch/send2trash-1.5.0-py_0.tar.bz2#c377
 https://conda.anaconda.org/conda-forge/noarch/six-1.15.0-pyh9f0ad1d_0.tar.bz2#1eec421f0f1f39e579e44e4a5ce646a2
 https://conda.anaconda.org/conda-forge/noarch/testpath-0.4.4-py_0.tar.bz2#3b98fff4d5342bebde2ecaa314f796f9
 https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-py_1.tar.bz2#3563be4c5611a44210d9ba0c16113136
-https://conda.anaconda.org/conda-forge/noarch/wheel-0.35.1-pyh9f0ad1d_0.tar.bz2#126827869be32f21872a2b30ebe2b038
+https://conda.anaconda.org/conda-forge/noarch/wheel-0.36.0-pyhd3deb0d_0.tar.bz2#f144bcd310e543bd9c8aa17c8ba1ee02
 https://conda.anaconda.org/conda-forge/noarch/zipp-3.4.0-py_0.tar.bz2#0df927d2e46244cef8fd75d7ec2ba51c
 https://conda.anaconda.org/conda-forge/linux-64/certifi-2020.11.8-py39hf3d152e_0.tar.bz2#39fd3089b4cf84233d462a9b800fc586
 https://conda.anaconda.org/conda-forge/linux-64/cffi-1.14.4-py39he32792d_1.tar.bz2#e780e81c44e1a695d5b9dd6618a3599a
 https://conda.anaconda.org/conda-forge/linux-64/chardet-3.0.4-py39h079e4ff_1008.tar.bz2#7162795b821bf41ecb26ce145dba3975
 https://conda.anaconda.org/conda-forge/linux-64/entrypoints-0.3-py39hde42818_1002.tar.bz2#dad6134fb73bfd57f9658c30c7296355
-https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.0-pyhd8ed1ab_0.tar.bz2#97a4bcec44626ddea360efdf7d5ad816
+https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.1-pyhd8ed1ab_0.tar.bz2#e22162ed945059586d1b6b603d07c48e
 https://conda.anaconda.org/conda-forge/linux-64/jedi-0.17.2-py39hf3d152e_1.tar.bz2#0e7f4e5a1b4547a1a3d633fab26af567
 https://conda.anaconda.org/conda-forge/linux-64/markupsafe-1.1.1-py39h38d8fee_2.tar.bz2#512d9a3b59d316b608ee5743c829ae59
 https://conda.anaconda.org/conda-forge/linux-64/mistune-0.8.4-py39hbd71b63_1002.tar.bz2#6447e320265e19a39db45ca144b6f823
@@ -79,7 +79,7 @@ https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-20.1.0-py39hbd71b63_
 https://conda.anaconda.org/conda-forge/linux-64/brotlipy-0.7.0-py39h38d8fee_1001.tar.bz2#0566ecef0c7d763b4c0819ac5c7f8dae
 https://conda.anaconda.org/conda-forge/linux-64/cryptography-3.2.1-py39h01d1d65_0.tar.bz2#c1db0a6029b7696f26315048bfc3b1f4
 https://conda.anaconda.org/conda-forge/linux-64/doit-0.33.1-py39hde42818_1.tar.bz2#b90af2ca73f3686e5171798ca539ea85
-https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.0-hd8ed1ab_0.tar.bz2#182b3a7c361dfc0de2ed1abf90fd61c8
+https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.1-hd8ed1ab_0.tar.bz2#a884b1bcaa2d48a6bc299dcba787db7a
 https://conda.anaconda.org/conda-forge/linux-64/jupyter_core-4.7.0-py39hf3d152e_0.tar.bz2#8735747a563952d4bae6f8a8f5b71d94
 https://conda.anaconda.org/conda-forge/linux-64/setuptools-49.6.0-py39h079e4ff_2.tar.bz2#7cebf33355b537e5706bfe0a546bb193
 https://conda.anaconda.org/conda-forge/linux-64/terminado-0.9.1-py39hf3d152e_1.tar.bz2#ee53504a09994271cb095e9e634e0b47
@@ -88,7 +88,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2#
 https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551
 https://conda.anaconda.org/conda-forge/noarch/jsonschema-3.2.0-py_2.tar.bz2#a17aa962de6145d08e1008cb37c20161
 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a
-https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1
+https://conda.anaconda.org/conda-forge/noarch/pip-20.3.1-pyhd8ed1ab_0.tar.bz2#bd6aa73eed4afc399688200778a609f6
 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723
 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f
 https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7
diff --git a/.github/locks/test/linux-64/py3.9/lab2/conda.lock b/.github/locks/test/linux-64/py3.9/lab2/conda.lock
index 01a1f977..24e14be8 100644
--- a/.github/locks/test/linux-64/py3.9/lab2/conda.lock
+++ b/.github/locks/test/linux-64/py3.9/lab2/conda.lock
@@ -27,7 +27,7 @@ https://conda.anaconda.org/conda-forge/linux-64/nodejs-14.15.1-h25f6087_0.tar.bz
 https://conda.anaconda.org/conda-forge/linux-64/readline-8.0-he28a2e2_2.tar.bz2#4d0ae8d473f863696088f76800ef9d38
 https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.10-hed695b0_1.tar.bz2#7ef837cd455bd0f19f49b8b62d4cb568
 https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.3-h58526e2_3.tar.bz2#6272fa8d98bd79c7978da0f7d2bb28da
-https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.33.0-h4cf870e_1.tar.bz2#1968ff6c4b8fbd2903f6672e292d932d
+https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.34.0-h74cdb3f_0.tar.bz2#0a83e21e8c1929cc9a1e21ebb2459fc5
 https://conda.anaconda.org/conda-forge/linux-64/python-3.9.0-hffdb5ce_5_cpython.tar.bz2#d26d64e4cf67cbfab3caf9176c9255de
 https://conda.anaconda.org/conda-forge/noarch/async_generator-1.10-py_0.tar.bz2#d56c596e61b1c4952acf0a9920856c12
 https://conda.anaconda.org/conda-forge/noarch/attrs-20.3.0-pyhd3deb0d_0.tar.bz2#5b319abb055eefcfa344bc21378ca23f
@@ -52,13 +52,13 @@ https://conda.anaconda.org/conda-forge/noarch/send2trash-1.5.0-py_0.tar.bz2#c377
 https://conda.anaconda.org/conda-forge/noarch/six-1.15.0-pyh9f0ad1d_0.tar.bz2#1eec421f0f1f39e579e44e4a5ce646a2
 https://conda.anaconda.org/conda-forge/noarch/testpath-0.4.4-py_0.tar.bz2#3b98fff4d5342bebde2ecaa314f796f9
 https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-py_1.tar.bz2#3563be4c5611a44210d9ba0c16113136
-https://conda.anaconda.org/conda-forge/noarch/wheel-0.35.1-pyh9f0ad1d_0.tar.bz2#126827869be32f21872a2b30ebe2b038
+https://conda.anaconda.org/conda-forge/noarch/wheel-0.36.0-pyhd3deb0d_0.tar.bz2#f144bcd310e543bd9c8aa17c8ba1ee02
 https://conda.anaconda.org/conda-forge/noarch/zipp-3.4.0-py_0.tar.bz2#0df927d2e46244cef8fd75d7ec2ba51c
 https://conda.anaconda.org/conda-forge/linux-64/certifi-2020.11.8-py39hf3d152e_0.tar.bz2#39fd3089b4cf84233d462a9b800fc586
 https://conda.anaconda.org/conda-forge/linux-64/cffi-1.14.4-py39he32792d_1.tar.bz2#e780e81c44e1a695d5b9dd6618a3599a
 https://conda.anaconda.org/conda-forge/linux-64/chardet-3.0.4-py39h079e4ff_1008.tar.bz2#7162795b821bf41ecb26ce145dba3975
 https://conda.anaconda.org/conda-forge/linux-64/entrypoints-0.3-py39hde42818_1002.tar.bz2#dad6134fb73bfd57f9658c30c7296355
-https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.0-pyhd8ed1ab_0.tar.bz2#97a4bcec44626ddea360efdf7d5ad816
+https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.1-pyhd8ed1ab_0.tar.bz2#e22162ed945059586d1b6b603d07c48e
 https://conda.anaconda.org/conda-forge/linux-64/jedi-0.17.2-py39hf3d152e_1.tar.bz2#0e7f4e5a1b4547a1a3d633fab26af567
 https://conda.anaconda.org/conda-forge/linux-64/markupsafe-1.1.1-py39h38d8fee_2.tar.bz2#512d9a3b59d316b608ee5743c829ae59
 https://conda.anaconda.org/conda-forge/linux-64/mistune-0.8.4-py39hbd71b63_1002.tar.bz2#6447e320265e19a39db45ca144b6f823
@@ -79,7 +79,7 @@ https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-20.1.0-py39hbd71b63_
 https://conda.anaconda.org/conda-forge/linux-64/brotlipy-0.7.0-py39h38d8fee_1001.tar.bz2#0566ecef0c7d763b4c0819ac5c7f8dae
 https://conda.anaconda.org/conda-forge/linux-64/cryptography-3.2.1-py39h01d1d65_0.tar.bz2#c1db0a6029b7696f26315048bfc3b1f4
 https://conda.anaconda.org/conda-forge/linux-64/doit-0.33.1-py39hde42818_1.tar.bz2#b90af2ca73f3686e5171798ca539ea85
-https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.0-hd8ed1ab_0.tar.bz2#182b3a7c361dfc0de2ed1abf90fd61c8
+https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.1-hd8ed1ab_0.tar.bz2#a884b1bcaa2d48a6bc299dcba787db7a
 https://conda.anaconda.org/conda-forge/linux-64/jupyter_core-4.7.0-py39hf3d152e_0.tar.bz2#8735747a563952d4bae6f8a8f5b71d94
 https://conda.anaconda.org/conda-forge/linux-64/setuptools-49.6.0-py39h079e4ff_2.tar.bz2#7cebf33355b537e5706bfe0a546bb193
 https://conda.anaconda.org/conda-forge/linux-64/terminado-0.9.1-py39hf3d152e_1.tar.bz2#ee53504a09994271cb095e9e634e0b47
@@ -88,7 +88,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2#
 https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551
 https://conda.anaconda.org/conda-forge/noarch/jsonschema-3.2.0-py_2.tar.bz2#a17aa962de6145d08e1008cb37c20161
 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a
-https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1
+https://conda.anaconda.org/conda-forge/noarch/pip-20.3.1-pyhd8ed1ab_0.tar.bz2#bd6aa73eed4afc399688200778a609f6
 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723
 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f
 https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7
diff --git a/.github/locks/test/linux-64/py3.9/lab3/conda.lock b/.github/locks/test/linux-64/py3.9/lab3/conda.lock
index a805d7e0..bd090b0b 100644
--- a/.github/locks/test/linux-64/py3.9/lab3/conda.lock
+++ b/.github/locks/test/linux-64/py3.9/lab3/conda.lock
@@ -27,7 +27,7 @@ https://conda.anaconda.org/conda-forge/linux-64/nodejs-14.15.1-h25f6087_0.tar.bz
 https://conda.anaconda.org/conda-forge/linux-64/readline-8.0-he28a2e2_2.tar.bz2#4d0ae8d473f863696088f76800ef9d38
 https://conda.anaconda.org/conda-forge/linux-64/tk-8.6.10-hed695b0_1.tar.bz2#7ef837cd455bd0f19f49b8b62d4cb568
 https://conda.anaconda.org/conda-forge/linux-64/zeromq-4.3.3-h58526e2_3.tar.bz2#6272fa8d98bd79c7978da0f7d2bb28da
-https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.33.0-h4cf870e_1.tar.bz2#1968ff6c4b8fbd2903f6672e292d932d
+https://conda.anaconda.org/conda-forge/linux-64/sqlite-3.34.0-h74cdb3f_0.tar.bz2#0a83e21e8c1929cc9a1e21ebb2459fc5
 https://conda.anaconda.org/conda-forge/linux-64/python-3.9.0-hffdb5ce_5_cpython.tar.bz2#d26d64e4cf67cbfab3caf9176c9255de
 https://conda.anaconda.org/conda-forge/noarch/async_generator-1.10-py_0.tar.bz2#d56c596e61b1c4952acf0a9920856c12
 https://conda.anaconda.org/conda-forge/noarch/attrs-20.3.0-pyhd3deb0d_0.tar.bz2#5b319abb055eefcfa344bc21378ca23f
@@ -54,14 +54,14 @@ https://conda.anaconda.org/conda-forge/noarch/send2trash-1.5.0-py_0.tar.bz2#c377
 https://conda.anaconda.org/conda-forge/noarch/six-1.15.0-pyh9f0ad1d_0.tar.bz2#1eec421f0f1f39e579e44e4a5ce646a2
 https://conda.anaconda.org/conda-forge/noarch/testpath-0.4.4-py_0.tar.bz2#3b98fff4d5342bebde2ecaa314f796f9
 https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-py_1.tar.bz2#3563be4c5611a44210d9ba0c16113136
-https://conda.anaconda.org/conda-forge/noarch/wheel-0.35.1-pyh9f0ad1d_0.tar.bz2#126827869be32f21872a2b30ebe2b038
+https://conda.anaconda.org/conda-forge/noarch/wheel-0.36.0-pyhd3deb0d_0.tar.bz2#f144bcd310e543bd9c8aa17c8ba1ee02
 https://conda.anaconda.org/conda-forge/noarch/zipp-3.4.0-py_0.tar.bz2#0df927d2e46244cef8fd75d7ec2ba51c
 https://conda.anaconda.org/conda-forge/noarch/babel-2.9.0-pyhd3deb0d_0.tar.bz2#1cb532c9a6fd4e56a9f0906b87c17b76
 https://conda.anaconda.org/conda-forge/linux-64/certifi-2020.11.8-py39hf3d152e_0.tar.bz2#39fd3089b4cf84233d462a9b800fc586
 https://conda.anaconda.org/conda-forge/linux-64/cffi-1.14.4-py39he32792d_1.tar.bz2#e780e81c44e1a695d5b9dd6618a3599a
 https://conda.anaconda.org/conda-forge/linux-64/chardet-3.0.4-py39h079e4ff_1008.tar.bz2#7162795b821bf41ecb26ce145dba3975
 https://conda.anaconda.org/conda-forge/linux-64/entrypoints-0.3-py39hde42818_1002.tar.bz2#dad6134fb73bfd57f9658c30c7296355
-https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.0-pyhd8ed1ab_0.tar.bz2#97a4bcec44626ddea360efdf7d5ad816
+https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.1-pyhd8ed1ab_0.tar.bz2#e22162ed945059586d1b6b603d07c48e
 https://conda.anaconda.org/conda-forge/linux-64/jedi-0.17.2-py39hf3d152e_1.tar.bz2#0e7f4e5a1b4547a1a3d633fab26af567
 https://conda.anaconda.org/conda-forge/linux-64/markupsafe-1.1.1-py39h38d8fee_2.tar.bz2#512d9a3b59d316b608ee5743c829ae59
 https://conda.anaconda.org/conda-forge/linux-64/mistune-0.8.4-py39hbd71b63_1002.tar.bz2#6447e320265e19a39db45ca144b6f823
@@ -82,7 +82,7 @@ https://conda.anaconda.org/conda-forge/linux-64/argon2-cffi-20.1.0-py39hbd71b63_
 https://conda.anaconda.org/conda-forge/linux-64/brotlipy-0.7.0-py39h38d8fee_1001.tar.bz2#0566ecef0c7d763b4c0819ac5c7f8dae
 https://conda.anaconda.org/conda-forge/linux-64/cryptography-3.2.1-py39h01d1d65_0.tar.bz2#c1db0a6029b7696f26315048bfc3b1f4
 https://conda.anaconda.org/conda-forge/linux-64/doit-0.33.1-py39hde42818_1.tar.bz2#b90af2ca73f3686e5171798ca539ea85
-https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.0-hd8ed1ab_0.tar.bz2#182b3a7c361dfc0de2ed1abf90fd61c8
+https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.1-hd8ed1ab_0.tar.bz2#a884b1bcaa2d48a6bc299dcba787db7a
 https://conda.anaconda.org/conda-forge/linux-64/jupyter_core-4.7.0-py39hf3d152e_0.tar.bz2#8735747a563952d4bae6f8a8f5b71d94
 https://conda.anaconda.org/conda-forge/linux-64/setuptools-49.6.0-py39h079e4ff_2.tar.bz2#7cebf33355b537e5706bfe0a546bb193
 https://conda.anaconda.org/conda-forge/linux-64/terminado-0.9.1-py39hf3d152e_1.tar.bz2#ee53504a09994271cb095e9e634e0b47
@@ -91,7 +91,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2#
 https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551
 https://conda.anaconda.org/conda-forge/noarch/jsonschema-3.2.0-py_2.tar.bz2#a17aa962de6145d08e1008cb37c20161
 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a
-https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1
+https://conda.anaconda.org/conda-forge/noarch/pip-20.3.1-pyhd8ed1ab_0.tar.bz2#bd6aa73eed4afc399688200778a609f6
 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723
 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f
 https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7
diff --git a/.github/locks/test/osx-64/py3.6/lab1/conda.lock b/.github/locks/test/osx-64/py3.6/lab1/conda.lock
index 5d0f7faf..11c88576 100644
--- a/.github/locks/test/osx-64/py3.6/lab1/conda.lock
+++ b/.github/locks/test/osx-64/py3.6/lab1/conda.lock
@@ -21,7 +21,7 @@ https://conda.anaconda.org/conda-forge/osx-64/readline-8.0-h0678c8f_2.tar.bz2#8f
 https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.10-hb0a8c7a_1.tar.bz2#f7477bf81dcfc7b4dddc7b3790a99a0c
 https://conda.anaconda.org/conda-forge/osx-64/zeromq-4.3.3-h74dc148_3.tar.bz2#365c52e91cb00d96d15bef9eddf9f7f8
 https://conda.anaconda.org/conda-forge/osx-64/nodejs-14.15.1-heaeed3d_0.tar.bz2#ab7d3bb7b92c6b6f8a3e8b7f33019ff4
-https://conda.anaconda.org/conda-forge/osx-64/sqlite-3.33.0-h960bd1c_1.tar.bz2#d86a1d10a189d4c000a61971110f4f55
+https://conda.anaconda.org/conda-forge/osx-64/sqlite-3.34.0-h17101e1_0.tar.bz2#9e9694f119bb1a2362a0cc0249651835
 https://conda.anaconda.org/conda-forge/osx-64/python-3.6.11-h4f09611_3_cpython.tar.bz2#649eaeb3afee248d7bb187b75449b247
 https://conda.anaconda.org/conda-forge/noarch/async_generator-1.10-py_0.tar.bz2#d56c596e61b1c4952acf0a9920856c12
 https://conda.anaconda.org/conda-forge/noarch/attrs-20.3.0-pyhd3deb0d_0.tar.bz2#5b319abb055eefcfa344bc21378ca23f
@@ -47,13 +47,13 @@ https://conda.anaconda.org/conda-forge/noarch/send2trash-1.5.0-py_0.tar.bz2#c377
 https://conda.anaconda.org/conda-forge/noarch/six-1.15.0-pyh9f0ad1d_0.tar.bz2#1eec421f0f1f39e579e44e4a5ce646a2
 https://conda.anaconda.org/conda-forge/noarch/testpath-0.4.4-py_0.tar.bz2#3b98fff4d5342bebde2ecaa314f796f9
 https://conda.anaconda.org/conda-forge/osx-64/webencodings-0.5.1-py36_0.tar.bz2#8681de6887931e0f82f7e67307c5bbc8
-https://conda.anaconda.org/conda-forge/noarch/wheel-0.35.1-pyh9f0ad1d_0.tar.bz2#126827869be32f21872a2b30ebe2b038
+https://conda.anaconda.org/conda-forge/noarch/wheel-0.36.0-pyhd3deb0d_0.tar.bz2#f144bcd310e543bd9c8aa17c8ba1ee02
 https://conda.anaconda.org/conda-forge/noarch/zipp-3.4.0-py_0.tar.bz2#0df927d2e46244cef8fd75d7ec2ba51c
-https://conda.anaconda.org/conda-forge/osx-64/appnope-0.1.0-py36h79c6626_1003.tar.bz2#96a994473baf8852133efae40d62ea2e
+https://conda.anaconda.org/conda-forge/osx-64/appnope-0.1.2-py36h79c6626_0.tar.bz2#dc6ea0633c4851d4616c81fee36812a8
 https://conda.anaconda.org/conda-forge/osx-64/certifi-2020.11.8-py36h79c6626_0.tar.bz2#7336a28fb4317349c539db186f788221
 https://conda.anaconda.org/conda-forge/osx-64/cffi-1.14.4-py36hfe0777f_1.tar.bz2#292b90dba767fca5e0f516252d7e45d6
 https://conda.anaconda.org/conda-forge/osx-64/entrypoints-0.3-py36h9f0ad1d_1002.tar.bz2#50e84528da4a1ff44ff6c80b273c2b35
-https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.0-pyhd8ed1ab_0.tar.bz2#97a4bcec44626ddea360efdf7d5ad816
+https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.1-pyhd8ed1ab_0.tar.bz2#e22162ed945059586d1b6b603d07c48e
 https://conda.anaconda.org/conda-forge/osx-64/jedi-0.17.2-py36h79c6626_1.tar.bz2#ffcf622b1afd6c66880e7c984d8c91a9
 https://conda.anaconda.org/conda-forge/osx-64/macfsevents-0.8.1-py36h9de38fb_1001.tar.bz2#5fb1a2501d6c5ed6ea863d58f4795560
 https://conda.anaconda.org/conda-forge/osx-64/markupsafe-1.1.1-py36ha3de816_2.tar.bz2#e16897adb81e1cb39fef08f0e5df87a5
@@ -74,7 +74,7 @@ https://conda.anaconda.org/conda-forge/osx-64/argon2-cffi-20.1.0-py36h6941dd6_2.
 https://conda.anaconda.org/conda-forge/osx-64/brotlipy-0.7.0-py36ha3de816_1001.tar.bz2#c3a22d0ad984182a15fb4b5bc07429f6
 https://conda.anaconda.org/conda-forge/osx-64/cryptography-3.2.1-py36h564ae50_0.tar.bz2#8591d2e833f0c39f84000d7f17b7aa2f
 https://conda.anaconda.org/conda-forge/osx-64/doit-0.33.1-py36h9f0ad1d_1.tar.bz2#55c0ce8dabe59a8e741fd01b033c0d9b
-https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.0-hd8ed1ab_0.tar.bz2#182b3a7c361dfc0de2ed1abf90fd61c8
+https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.1-hd8ed1ab_0.tar.bz2#a884b1bcaa2d48a6bc299dcba787db7a
 https://conda.anaconda.org/conda-forge/osx-64/jupyter_core-4.7.0-py36h79c6626_0.tar.bz2#343abeda1fc2020c9785ffeece197c6b
 https://conda.anaconda.org/conda-forge/osx-64/setuptools-49.6.0-py36h2432673_2.tar.bz2#e774848c6628d67d6f7cb95c9128ee79
 https://conda.anaconda.org/conda-forge/osx-64/terminado-0.9.1-py36h79c6626_1.tar.bz2#6717c12ea867c11349268412dac252f2
@@ -83,7 +83,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2#
 https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551
 https://conda.anaconda.org/conda-forge/osx-64/jsonschema-3.2.0-py36h9f0ad1d_1.tar.bz2#a2ad95050f62f8b4f86a125f77fd9df5
 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a
-https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1
+https://conda.anaconda.org/conda-forge/noarch/pip-20.3.1-pyhd8ed1ab_0.tar.bz2#bd6aa73eed4afc399688200778a609f6
 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723
 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f
 https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7
diff --git a/.github/locks/test/osx-64/py3.6/lab2/conda.lock b/.github/locks/test/osx-64/py3.6/lab2/conda.lock
index 2acce2bb..3aa28f21 100644
--- a/.github/locks/test/osx-64/py3.6/lab2/conda.lock
+++ b/.github/locks/test/osx-64/py3.6/lab2/conda.lock
@@ -21,7 +21,7 @@ https://conda.anaconda.org/conda-forge/osx-64/readline-8.0-h0678c8f_2.tar.bz2#8f
 https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.10-hb0a8c7a_1.tar.bz2#f7477bf81dcfc7b4dddc7b3790a99a0c
 https://conda.anaconda.org/conda-forge/osx-64/zeromq-4.3.3-h74dc148_3.tar.bz2#365c52e91cb00d96d15bef9eddf9f7f8
 https://conda.anaconda.org/conda-forge/osx-64/nodejs-14.15.1-heaeed3d_0.tar.bz2#ab7d3bb7b92c6b6f8a3e8b7f33019ff4
-https://conda.anaconda.org/conda-forge/osx-64/sqlite-3.33.0-h960bd1c_1.tar.bz2#d86a1d10a189d4c000a61971110f4f55
+https://conda.anaconda.org/conda-forge/osx-64/sqlite-3.34.0-h17101e1_0.tar.bz2#9e9694f119bb1a2362a0cc0249651835
 https://conda.anaconda.org/conda-forge/osx-64/python-3.6.11-h4f09611_3_cpython.tar.bz2#649eaeb3afee248d7bb187b75449b247
 https://conda.anaconda.org/conda-forge/noarch/async_generator-1.10-py_0.tar.bz2#d56c596e61b1c4952acf0a9920856c12
 https://conda.anaconda.org/conda-forge/noarch/attrs-20.3.0-pyhd3deb0d_0.tar.bz2#5b319abb055eefcfa344bc21378ca23f
@@ -47,13 +47,13 @@ https://conda.anaconda.org/conda-forge/noarch/send2trash-1.5.0-py_0.tar.bz2#c377
 https://conda.anaconda.org/conda-forge/noarch/six-1.15.0-pyh9f0ad1d_0.tar.bz2#1eec421f0f1f39e579e44e4a5ce646a2
 https://conda.anaconda.org/conda-forge/noarch/testpath-0.4.4-py_0.tar.bz2#3b98fff4d5342bebde2ecaa314f796f9
 https://conda.anaconda.org/conda-forge/osx-64/webencodings-0.5.1-py36_0.tar.bz2#8681de6887931e0f82f7e67307c5bbc8
-https://conda.anaconda.org/conda-forge/noarch/wheel-0.35.1-pyh9f0ad1d_0.tar.bz2#126827869be32f21872a2b30ebe2b038
+https://conda.anaconda.org/conda-forge/noarch/wheel-0.36.0-pyhd3deb0d_0.tar.bz2#f144bcd310e543bd9c8aa17c8ba1ee02
 https://conda.anaconda.org/conda-forge/noarch/zipp-3.4.0-py_0.tar.bz2#0df927d2e46244cef8fd75d7ec2ba51c
-https://conda.anaconda.org/conda-forge/osx-64/appnope-0.1.0-py36h79c6626_1003.tar.bz2#96a994473baf8852133efae40d62ea2e
+https://conda.anaconda.org/conda-forge/osx-64/appnope-0.1.2-py36h79c6626_0.tar.bz2#dc6ea0633c4851d4616c81fee36812a8
 https://conda.anaconda.org/conda-forge/osx-64/certifi-2020.11.8-py36h79c6626_0.tar.bz2#7336a28fb4317349c539db186f788221
 https://conda.anaconda.org/conda-forge/osx-64/cffi-1.14.4-py36hfe0777f_1.tar.bz2#292b90dba767fca5e0f516252d7e45d6
 https://conda.anaconda.org/conda-forge/osx-64/entrypoints-0.3-py36h9f0ad1d_1002.tar.bz2#50e84528da4a1ff44ff6c80b273c2b35
-https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.0-pyhd8ed1ab_0.tar.bz2#97a4bcec44626ddea360efdf7d5ad816
+https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.1-pyhd8ed1ab_0.tar.bz2#e22162ed945059586d1b6b603d07c48e
 https://conda.anaconda.org/conda-forge/osx-64/jedi-0.17.2-py36h79c6626_1.tar.bz2#ffcf622b1afd6c66880e7c984d8c91a9
 https://conda.anaconda.org/conda-forge/osx-64/macfsevents-0.8.1-py36h9de38fb_1001.tar.bz2#5fb1a2501d6c5ed6ea863d58f4795560
 https://conda.anaconda.org/conda-forge/osx-64/markupsafe-1.1.1-py36ha3de816_2.tar.bz2#e16897adb81e1cb39fef08f0e5df87a5
@@ -74,7 +74,7 @@ https://conda.anaconda.org/conda-forge/osx-64/argon2-cffi-20.1.0-py36h6941dd6_2.
 https://conda.anaconda.org/conda-forge/osx-64/brotlipy-0.7.0-py36ha3de816_1001.tar.bz2#c3a22d0ad984182a15fb4b5bc07429f6
 https://conda.anaconda.org/conda-forge/osx-64/cryptography-3.2.1-py36h564ae50_0.tar.bz2#8591d2e833f0c39f84000d7f17b7aa2f
 https://conda.anaconda.org/conda-forge/osx-64/doit-0.33.1-py36h9f0ad1d_1.tar.bz2#55c0ce8dabe59a8e741fd01b033c0d9b
-https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.0-hd8ed1ab_0.tar.bz2#182b3a7c361dfc0de2ed1abf90fd61c8
+https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.1-hd8ed1ab_0.tar.bz2#a884b1bcaa2d48a6bc299dcba787db7a
 https://conda.anaconda.org/conda-forge/osx-64/jupyter_core-4.7.0-py36h79c6626_0.tar.bz2#343abeda1fc2020c9785ffeece197c6b
 https://conda.anaconda.org/conda-forge/osx-64/setuptools-49.6.0-py36h2432673_2.tar.bz2#e774848c6628d67d6f7cb95c9128ee79
 https://conda.anaconda.org/conda-forge/osx-64/terminado-0.9.1-py36h79c6626_1.tar.bz2#6717c12ea867c11349268412dac252f2
@@ -83,7 +83,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2#
 https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551
 https://conda.anaconda.org/conda-forge/osx-64/jsonschema-3.2.0-py36h9f0ad1d_1.tar.bz2#a2ad95050f62f8b4f86a125f77fd9df5
 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a
-https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1
+https://conda.anaconda.org/conda-forge/noarch/pip-20.3.1-pyhd8ed1ab_0.tar.bz2#bd6aa73eed4afc399688200778a609f6
 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723
 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f
 https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7
diff --git a/.github/locks/test/osx-64/py3.8/lab1/conda.lock b/.github/locks/test/osx-64/py3.8/lab1/conda.lock
index 166ea770..9a8d4c7e 100644
--- a/.github/locks/test/osx-64/py3.8/lab1/conda.lock
+++ b/.github/locks/test/osx-64/py3.8/lab1/conda.lock
@@ -21,7 +21,7 @@ https://conda.anaconda.org/conda-forge/osx-64/readline-8.0-h0678c8f_2.tar.bz2#8f
 https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.10-hb0a8c7a_1.tar.bz2#f7477bf81dcfc7b4dddc7b3790a99a0c
 https://conda.anaconda.org/conda-forge/osx-64/zeromq-4.3.3-h74dc148_3.tar.bz2#365c52e91cb00d96d15bef9eddf9f7f8
 https://conda.anaconda.org/conda-forge/osx-64/nodejs-14.15.1-heaeed3d_0.tar.bz2#ab7d3bb7b92c6b6f8a3e8b7f33019ff4
-https://conda.anaconda.org/conda-forge/osx-64/sqlite-3.33.0-h960bd1c_1.tar.bz2#d86a1d10a189d4c000a61971110f4f55
+https://conda.anaconda.org/conda-forge/osx-64/sqlite-3.34.0-h17101e1_0.tar.bz2#9e9694f119bb1a2362a0cc0249651835
 https://conda.anaconda.org/conda-forge/osx-64/python-3.8.6-h3b7b5d6_1_cpython.tar.bz2#3fd08a5192b00e12ad9c04b3acc9ab1c
 https://conda.anaconda.org/conda-forge/noarch/async_generator-1.10-py_0.tar.bz2#d56c596e61b1c4952acf0a9920856c12
 https://conda.anaconda.org/conda-forge/noarch/attrs-20.3.0-pyhd3deb0d_0.tar.bz2#5b319abb055eefcfa344bc21378ca23f
@@ -46,14 +46,14 @@ https://conda.anaconda.org/conda-forge/noarch/send2trash-1.5.0-py_0.tar.bz2#c377
 https://conda.anaconda.org/conda-forge/noarch/six-1.15.0-pyh9f0ad1d_0.tar.bz2#1eec421f0f1f39e579e44e4a5ce646a2
 https://conda.anaconda.org/conda-forge/noarch/testpath-0.4.4-py_0.tar.bz2#3b98fff4d5342bebde2ecaa314f796f9
 https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-py_1.tar.bz2#3563be4c5611a44210d9ba0c16113136
-https://conda.anaconda.org/conda-forge/noarch/wheel-0.35.1-pyh9f0ad1d_0.tar.bz2#126827869be32f21872a2b30ebe2b038
+https://conda.anaconda.org/conda-forge/noarch/wheel-0.36.0-pyhd3deb0d_0.tar.bz2#f144bcd310e543bd9c8aa17c8ba1ee02
 https://conda.anaconda.org/conda-forge/noarch/zipp-3.4.0-py_0.tar.bz2#0df927d2e46244cef8fd75d7ec2ba51c
-https://conda.anaconda.org/conda-forge/osx-64/appnope-0.1.0-py38h50d1736_1003.tar.bz2#e13604b169012d9d1c08c191d5cdb3cc
+https://conda.anaconda.org/conda-forge/osx-64/appnope-0.1.2-py38h50d1736_0.tar.bz2#59544280b8ccc657a25ffdf742df5b6e
 https://conda.anaconda.org/conda-forge/osx-64/certifi-2020.11.8-py38h50d1736_0.tar.bz2#81ff368f40962d5041c16356b279f393
 https://conda.anaconda.org/conda-forge/osx-64/cffi-1.14.4-py38h979bc6b_1.tar.bz2#e648f242bf242deb64206104cb8cbf1f
 https://conda.anaconda.org/conda-forge/osx-64/chardet-3.0.4-py38h5347e94_1008.tar.bz2#63b433075e840f92c6f33abff8cf564a
 https://conda.anaconda.org/conda-forge/osx-64/entrypoints-0.3-py38h32f6830_1002.tar.bz2#9c7780ba3fe9fd2c15ea2830705de3a2
-https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.0-pyhd8ed1ab_0.tar.bz2#97a4bcec44626ddea360efdf7d5ad816
+https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.1-pyhd8ed1ab_0.tar.bz2#e22162ed945059586d1b6b603d07c48e
 https://conda.anaconda.org/conda-forge/osx-64/jedi-0.17.2-py38h50d1736_1.tar.bz2#17def26d8c7368853581d4a81e3043b3
 https://conda.anaconda.org/conda-forge/osx-64/macfsevents-0.8.1-py38h4d0b108_1001.tar.bz2#cf030199ecebc197ee1475efdf5ac965
 https://conda.anaconda.org/conda-forge/osx-64/markupsafe-1.1.1-py38h94c058a_2.tar.bz2#4fe723b88b05abb9e79b2cd4906fc406
@@ -74,7 +74,7 @@ https://conda.anaconda.org/conda-forge/osx-64/argon2-cffi-20.1.0-py38h7e3306e_2.
 https://conda.anaconda.org/conda-forge/osx-64/brotlipy-0.7.0-py38h94c058a_1001.tar.bz2#e75b32a4f716a68f0437ad606f4078e1
 https://conda.anaconda.org/conda-forge/osx-64/cryptography-3.2.1-py38h5c1d3f9_0.tar.bz2#cba1a84ebaed4b2583d1cf918a6eb8f5
 https://conda.anaconda.org/conda-forge/osx-64/doit-0.33.1-py38h32f6830_1.tar.bz2#15dba72dfa4453ebafe25a9fd526811a
-https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.0-hd8ed1ab_0.tar.bz2#182b3a7c361dfc0de2ed1abf90fd61c8
+https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.1-hd8ed1ab_0.tar.bz2#a884b1bcaa2d48a6bc299dcba787db7a
 https://conda.anaconda.org/conda-forge/osx-64/jupyter_core-4.7.0-py38h50d1736_0.tar.bz2#3b207eb36704052c8b3263679f63b5af
 https://conda.anaconda.org/conda-forge/osx-64/setuptools-49.6.0-py38h5347e94_2.tar.bz2#d60492e2803bc7f3c85544532868cee1
 https://conda.anaconda.org/conda-forge/osx-64/terminado-0.9.1-py38h50d1736_1.tar.bz2#9eeb5eb53bce12e00bb55d5bc9ca4d48
@@ -83,7 +83,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2#
 https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551
 https://conda.anaconda.org/conda-forge/osx-64/jsonschema-3.2.0-py38h32f6830_1.tar.bz2#f9a8ce63603d7a7db2890f594da72694
 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a
-https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1
+https://conda.anaconda.org/conda-forge/noarch/pip-20.3.1-pyhd8ed1ab_0.tar.bz2#bd6aa73eed4afc399688200778a609f6
 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723
 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f
 https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7
diff --git a/.github/locks/test/osx-64/py3.8/lab2/conda.lock b/.github/locks/test/osx-64/py3.8/lab2/conda.lock
index f9461110..cc1289d9 100644
--- a/.github/locks/test/osx-64/py3.8/lab2/conda.lock
+++ b/.github/locks/test/osx-64/py3.8/lab2/conda.lock
@@ -21,7 +21,7 @@ https://conda.anaconda.org/conda-forge/osx-64/readline-8.0-h0678c8f_2.tar.bz2#8f
 https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.10-hb0a8c7a_1.tar.bz2#f7477bf81dcfc7b4dddc7b3790a99a0c
 https://conda.anaconda.org/conda-forge/osx-64/zeromq-4.3.3-h74dc148_3.tar.bz2#365c52e91cb00d96d15bef9eddf9f7f8
 https://conda.anaconda.org/conda-forge/osx-64/nodejs-14.15.1-heaeed3d_0.tar.bz2#ab7d3bb7b92c6b6f8a3e8b7f33019ff4
-https://conda.anaconda.org/conda-forge/osx-64/sqlite-3.33.0-h960bd1c_1.tar.bz2#d86a1d10a189d4c000a61971110f4f55
+https://conda.anaconda.org/conda-forge/osx-64/sqlite-3.34.0-h17101e1_0.tar.bz2#9e9694f119bb1a2362a0cc0249651835
 https://conda.anaconda.org/conda-forge/osx-64/python-3.8.6-h3b7b5d6_1_cpython.tar.bz2#3fd08a5192b00e12ad9c04b3acc9ab1c
 https://conda.anaconda.org/conda-forge/noarch/async_generator-1.10-py_0.tar.bz2#d56c596e61b1c4952acf0a9920856c12
 https://conda.anaconda.org/conda-forge/noarch/attrs-20.3.0-pyhd3deb0d_0.tar.bz2#5b319abb055eefcfa344bc21378ca23f
@@ -46,14 +46,14 @@ https://conda.anaconda.org/conda-forge/noarch/send2trash-1.5.0-py_0.tar.bz2#c377
 https://conda.anaconda.org/conda-forge/noarch/six-1.15.0-pyh9f0ad1d_0.tar.bz2#1eec421f0f1f39e579e44e4a5ce646a2
 https://conda.anaconda.org/conda-forge/noarch/testpath-0.4.4-py_0.tar.bz2#3b98fff4d5342bebde2ecaa314f796f9
 https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-py_1.tar.bz2#3563be4c5611a44210d9ba0c16113136
-https://conda.anaconda.org/conda-forge/noarch/wheel-0.35.1-pyh9f0ad1d_0.tar.bz2#126827869be32f21872a2b30ebe2b038
+https://conda.anaconda.org/conda-forge/noarch/wheel-0.36.0-pyhd3deb0d_0.tar.bz2#f144bcd310e543bd9c8aa17c8ba1ee02
 https://conda.anaconda.org/conda-forge/noarch/zipp-3.4.0-py_0.tar.bz2#0df927d2e46244cef8fd75d7ec2ba51c
-https://conda.anaconda.org/conda-forge/osx-64/appnope-0.1.0-py38h50d1736_1003.tar.bz2#e13604b169012d9d1c08c191d5cdb3cc
+https://conda.anaconda.org/conda-forge/osx-64/appnope-0.1.2-py38h50d1736_0.tar.bz2#59544280b8ccc657a25ffdf742df5b6e
 https://conda.anaconda.org/conda-forge/osx-64/certifi-2020.11.8-py38h50d1736_0.tar.bz2#81ff368f40962d5041c16356b279f393
 https://conda.anaconda.org/conda-forge/osx-64/cffi-1.14.4-py38h979bc6b_1.tar.bz2#e648f242bf242deb64206104cb8cbf1f
 https://conda.anaconda.org/conda-forge/osx-64/chardet-3.0.4-py38h5347e94_1008.tar.bz2#63b433075e840f92c6f33abff8cf564a
 https://conda.anaconda.org/conda-forge/osx-64/entrypoints-0.3-py38h32f6830_1002.tar.bz2#9c7780ba3fe9fd2c15ea2830705de3a2
-https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.0-pyhd8ed1ab_0.tar.bz2#97a4bcec44626ddea360efdf7d5ad816
+https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.1-pyhd8ed1ab_0.tar.bz2#e22162ed945059586d1b6b603d07c48e
 https://conda.anaconda.org/conda-forge/osx-64/jedi-0.17.2-py38h50d1736_1.tar.bz2#17def26d8c7368853581d4a81e3043b3
 https://conda.anaconda.org/conda-forge/osx-64/macfsevents-0.8.1-py38h4d0b108_1001.tar.bz2#cf030199ecebc197ee1475efdf5ac965
 https://conda.anaconda.org/conda-forge/osx-64/markupsafe-1.1.1-py38h94c058a_2.tar.bz2#4fe723b88b05abb9e79b2cd4906fc406
@@ -74,7 +74,7 @@ https://conda.anaconda.org/conda-forge/osx-64/argon2-cffi-20.1.0-py38h7e3306e_2.
 https://conda.anaconda.org/conda-forge/osx-64/brotlipy-0.7.0-py38h94c058a_1001.tar.bz2#e75b32a4f716a68f0437ad606f4078e1
 https://conda.anaconda.org/conda-forge/osx-64/cryptography-3.2.1-py38h5c1d3f9_0.tar.bz2#cba1a84ebaed4b2583d1cf918a6eb8f5
 https://conda.anaconda.org/conda-forge/osx-64/doit-0.33.1-py38h32f6830_1.tar.bz2#15dba72dfa4453ebafe25a9fd526811a
-https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.0-hd8ed1ab_0.tar.bz2#182b3a7c361dfc0de2ed1abf90fd61c8
+https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.1-hd8ed1ab_0.tar.bz2#a884b1bcaa2d48a6bc299dcba787db7a
 https://conda.anaconda.org/conda-forge/osx-64/jupyter_core-4.7.0-py38h50d1736_0.tar.bz2#3b207eb36704052c8b3263679f63b5af
 https://conda.anaconda.org/conda-forge/osx-64/setuptools-49.6.0-py38h5347e94_2.tar.bz2#d60492e2803bc7f3c85544532868cee1
 https://conda.anaconda.org/conda-forge/osx-64/terminado-0.9.1-py38h50d1736_1.tar.bz2#9eeb5eb53bce12e00bb55d5bc9ca4d48
@@ -83,7 +83,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2#
 https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551
 https://conda.anaconda.org/conda-forge/osx-64/jsonschema-3.2.0-py38h32f6830_1.tar.bz2#f9a8ce63603d7a7db2890f594da72694
 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a
-https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1
+https://conda.anaconda.org/conda-forge/noarch/pip-20.3.1-pyhd8ed1ab_0.tar.bz2#bd6aa73eed4afc399688200778a609f6
 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723
 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f
 https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7
diff --git a/.github/locks/test/osx-64/py3.8/lab3/conda.lock b/.github/locks/test/osx-64/py3.8/lab3/conda.lock
index d2d81ada..3b8ca78c 100644
--- a/.github/locks/test/osx-64/py3.8/lab3/conda.lock
+++ b/.github/locks/test/osx-64/py3.8/lab3/conda.lock
@@ -21,7 +21,7 @@ https://conda.anaconda.org/conda-forge/osx-64/readline-8.0-h0678c8f_2.tar.bz2#8f
 https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.10-hb0a8c7a_1.tar.bz2#f7477bf81dcfc7b4dddc7b3790a99a0c
 https://conda.anaconda.org/conda-forge/osx-64/zeromq-4.3.3-h74dc148_3.tar.bz2#365c52e91cb00d96d15bef9eddf9f7f8
 https://conda.anaconda.org/conda-forge/osx-64/nodejs-14.15.1-heaeed3d_0.tar.bz2#ab7d3bb7b92c6b6f8a3e8b7f33019ff4
-https://conda.anaconda.org/conda-forge/osx-64/sqlite-3.33.0-h960bd1c_1.tar.bz2#d86a1d10a189d4c000a61971110f4f55
+https://conda.anaconda.org/conda-forge/osx-64/sqlite-3.34.0-h17101e1_0.tar.bz2#9e9694f119bb1a2362a0cc0249651835
 https://conda.anaconda.org/conda-forge/osx-64/python-3.8.6-h3b7b5d6_1_cpython.tar.bz2#3fd08a5192b00e12ad9c04b3acc9ab1c
 https://conda.anaconda.org/conda-forge/noarch/async_generator-1.10-py_0.tar.bz2#d56c596e61b1c4952acf0a9920856c12
 https://conda.anaconda.org/conda-forge/noarch/attrs-20.3.0-pyhd3deb0d_0.tar.bz2#5b319abb055eefcfa344bc21378ca23f
@@ -48,15 +48,15 @@ https://conda.anaconda.org/conda-forge/noarch/send2trash-1.5.0-py_0.tar.bz2#c377
 https://conda.anaconda.org/conda-forge/noarch/six-1.15.0-pyh9f0ad1d_0.tar.bz2#1eec421f0f1f39e579e44e4a5ce646a2
 https://conda.anaconda.org/conda-forge/noarch/testpath-0.4.4-py_0.tar.bz2#3b98fff4d5342bebde2ecaa314f796f9
 https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-py_1.tar.bz2#3563be4c5611a44210d9ba0c16113136
-https://conda.anaconda.org/conda-forge/noarch/wheel-0.35.1-pyh9f0ad1d_0.tar.bz2#126827869be32f21872a2b30ebe2b038
+https://conda.anaconda.org/conda-forge/noarch/wheel-0.36.0-pyhd3deb0d_0.tar.bz2#f144bcd310e543bd9c8aa17c8ba1ee02
 https://conda.anaconda.org/conda-forge/noarch/zipp-3.4.0-py_0.tar.bz2#0df927d2e46244cef8fd75d7ec2ba51c
-https://conda.anaconda.org/conda-forge/osx-64/appnope-0.1.0-py38h50d1736_1003.tar.bz2#e13604b169012d9d1c08c191d5cdb3cc
+https://conda.anaconda.org/conda-forge/osx-64/appnope-0.1.2-py38h50d1736_0.tar.bz2#59544280b8ccc657a25ffdf742df5b6e
 https://conda.anaconda.org/conda-forge/noarch/babel-2.9.0-pyhd3deb0d_0.tar.bz2#1cb532c9a6fd4e56a9f0906b87c17b76
 https://conda.anaconda.org/conda-forge/osx-64/certifi-2020.11.8-py38h50d1736_0.tar.bz2#81ff368f40962d5041c16356b279f393
 https://conda.anaconda.org/conda-forge/osx-64/cffi-1.14.4-py38h979bc6b_1.tar.bz2#e648f242bf242deb64206104cb8cbf1f
 https://conda.anaconda.org/conda-forge/osx-64/chardet-3.0.4-py38h5347e94_1008.tar.bz2#63b433075e840f92c6f33abff8cf564a
 https://conda.anaconda.org/conda-forge/osx-64/entrypoints-0.3-py38h32f6830_1002.tar.bz2#9c7780ba3fe9fd2c15ea2830705de3a2
-https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.0-pyhd8ed1ab_0.tar.bz2#97a4bcec44626ddea360efdf7d5ad816
+https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.1-pyhd8ed1ab_0.tar.bz2#e22162ed945059586d1b6b603d07c48e
 https://conda.anaconda.org/conda-forge/osx-64/jedi-0.17.2-py38h50d1736_1.tar.bz2#17def26d8c7368853581d4a81e3043b3
 https://conda.anaconda.org/conda-forge/osx-64/macfsevents-0.8.1-py38h4d0b108_1001.tar.bz2#cf030199ecebc197ee1475efdf5ac965
 https://conda.anaconda.org/conda-forge/osx-64/markupsafe-1.1.1-py38h94c058a_2.tar.bz2#4fe723b88b05abb9e79b2cd4906fc406
@@ -77,7 +77,7 @@ https://conda.anaconda.org/conda-forge/osx-64/argon2-cffi-20.1.0-py38h7e3306e_2.
 https://conda.anaconda.org/conda-forge/osx-64/brotlipy-0.7.0-py38h94c058a_1001.tar.bz2#e75b32a4f716a68f0437ad606f4078e1
 https://conda.anaconda.org/conda-forge/osx-64/cryptography-3.2.1-py38h5c1d3f9_0.tar.bz2#cba1a84ebaed4b2583d1cf918a6eb8f5
 https://conda.anaconda.org/conda-forge/osx-64/doit-0.33.1-py38h32f6830_1.tar.bz2#15dba72dfa4453ebafe25a9fd526811a
-https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.0-hd8ed1ab_0.tar.bz2#182b3a7c361dfc0de2ed1abf90fd61c8
+https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.1-hd8ed1ab_0.tar.bz2#a884b1bcaa2d48a6bc299dcba787db7a
 https://conda.anaconda.org/conda-forge/osx-64/jupyter_core-4.7.0-py38h50d1736_0.tar.bz2#3b207eb36704052c8b3263679f63b5af
 https://conda.anaconda.org/conda-forge/osx-64/setuptools-49.6.0-py38h5347e94_2.tar.bz2#d60492e2803bc7f3c85544532868cee1
 https://conda.anaconda.org/conda-forge/osx-64/terminado-0.9.1-py38h50d1736_1.tar.bz2#9eeb5eb53bce12e00bb55d5bc9ca4d48
@@ -86,7 +86,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2#
 https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551
 https://conda.anaconda.org/conda-forge/osx-64/jsonschema-3.2.0-py38h32f6830_1.tar.bz2#f9a8ce63603d7a7db2890f594da72694
 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a
-https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1
+https://conda.anaconda.org/conda-forge/noarch/pip-20.3.1-pyhd8ed1ab_0.tar.bz2#bd6aa73eed4afc399688200778a609f6
 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723
 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f
 https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7
diff --git a/.github/locks/test/osx-64/py3.9/lab1/conda.lock b/.github/locks/test/osx-64/py3.9/lab1/conda.lock
index 01cf9c83..1afdbb4d 100644
--- a/.github/locks/test/osx-64/py3.9/lab1/conda.lock
+++ b/.github/locks/test/osx-64/py3.9/lab1/conda.lock
@@ -22,7 +22,7 @@ https://conda.anaconda.org/conda-forge/osx-64/readline-8.0-h0678c8f_2.tar.bz2#8f
 https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.10-hb0a8c7a_1.tar.bz2#f7477bf81dcfc7b4dddc7b3790a99a0c
 https://conda.anaconda.org/conda-forge/osx-64/zeromq-4.3.3-h74dc148_3.tar.bz2#365c52e91cb00d96d15bef9eddf9f7f8
 https://conda.anaconda.org/conda-forge/osx-64/nodejs-14.15.1-heaeed3d_0.tar.bz2#ab7d3bb7b92c6b6f8a3e8b7f33019ff4
-https://conda.anaconda.org/conda-forge/osx-64/sqlite-3.33.0-h960bd1c_1.tar.bz2#d86a1d10a189d4c000a61971110f4f55
+https://conda.anaconda.org/conda-forge/osx-64/sqlite-3.34.0-h17101e1_0.tar.bz2#9e9694f119bb1a2362a0cc0249651835
 https://conda.anaconda.org/conda-forge/osx-64/python-3.9.0-h4f09611_5_cpython.tar.bz2#5223fbb1e0ce43ad372c27b03e0bf6a7
 https://conda.anaconda.org/conda-forge/noarch/async_generator-1.10-py_0.tar.bz2#d56c596e61b1c4952acf0a9920856c12
 https://conda.anaconda.org/conda-forge/noarch/attrs-20.3.0-pyhd3deb0d_0.tar.bz2#5b319abb055eefcfa344bc21378ca23f
@@ -47,14 +47,14 @@ https://conda.anaconda.org/conda-forge/noarch/send2trash-1.5.0-py_0.tar.bz2#c377
 https://conda.anaconda.org/conda-forge/noarch/six-1.15.0-pyh9f0ad1d_0.tar.bz2#1eec421f0f1f39e579e44e4a5ce646a2
 https://conda.anaconda.org/conda-forge/noarch/testpath-0.4.4-py_0.tar.bz2#3b98fff4d5342bebde2ecaa314f796f9
 https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-py_1.tar.bz2#3563be4c5611a44210d9ba0c16113136
-https://conda.anaconda.org/conda-forge/noarch/wheel-0.35.1-pyh9f0ad1d_0.tar.bz2#126827869be32f21872a2b30ebe2b038
+https://conda.anaconda.org/conda-forge/noarch/wheel-0.36.0-pyhd3deb0d_0.tar.bz2#f144bcd310e543bd9c8aa17c8ba1ee02
 https://conda.anaconda.org/conda-forge/noarch/zipp-3.4.0-py_0.tar.bz2#0df927d2e46244cef8fd75d7ec2ba51c
-https://conda.anaconda.org/conda-forge/osx-64/appnope-0.1.0-py39h6e9494a_1003.tar.bz2#772d92c29f9709fe51700fbb8ac47081
+https://conda.anaconda.org/conda-forge/osx-64/appnope-0.1.2-py39h6e9494a_0.tar.bz2#f8522ff67ccd782f287f74c9cf8d750c
 https://conda.anaconda.org/conda-forge/osx-64/certifi-2020.11.8-py39h6e9494a_0.tar.bz2#b244aa5466ae3befb8b2ad9349ffc44c
 https://conda.anaconda.org/conda-forge/osx-64/cffi-1.14.4-py39h7786acb_1.tar.bz2#9f6f344eb4e89e0cce955d4c8fe17ca6
 https://conda.anaconda.org/conda-forge/osx-64/chardet-3.0.4-py39h2c36a5b_1008.tar.bz2#1cf27b1f3032b36e3d30b1791e8386e2
 https://conda.anaconda.org/conda-forge/osx-64/entrypoints-0.3-py39hde42818_1002.tar.bz2#fb8afe91904c7e3544dab6801b23436e
-https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.0-pyhd8ed1ab_0.tar.bz2#97a4bcec44626ddea360efdf7d5ad816
+https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.1-pyhd8ed1ab_0.tar.bz2#e22162ed945059586d1b6b603d07c48e
 https://conda.anaconda.org/conda-forge/osx-64/jedi-0.17.2-py39hde42818_1.tar.bz2#da2e32e1485ce68af19d1ba3913d2040
 https://conda.anaconda.org/conda-forge/osx-64/macfsevents-0.8.1-py39hb5aae12_1001.tar.bz2#d85619dcc5915ccbc631a19197a4cda7
 https://conda.anaconda.org/conda-forge/osx-64/markupsafe-1.1.1-py39h66d5b7b_2.tar.bz2#4bc15227785d84eb18d96fd23ad237eb
@@ -75,7 +75,7 @@ https://conda.anaconda.org/conda-forge/osx-64/argon2-cffi-20.1.0-py39hb5aae12_2.
 https://conda.anaconda.org/conda-forge/osx-64/brotlipy-0.7.0-py39h66d5b7b_1001.tar.bz2#3b798e72dec2ad622620b2879ba4af72
 https://conda.anaconda.org/conda-forge/osx-64/cryptography-3.2.1-py39hed2902a_0.tar.bz2#3373c7021ec0e509d5daa9156ac98b84
 https://conda.anaconda.org/conda-forge/osx-64/doit-0.33.1-py39hde42818_1.tar.bz2#60195688f3a1598b5f445677ef11f6e2
-https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.0-hd8ed1ab_0.tar.bz2#182b3a7c361dfc0de2ed1abf90fd61c8
+https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.1-hd8ed1ab_0.tar.bz2#a884b1bcaa2d48a6bc299dcba787db7a
 https://conda.anaconda.org/conda-forge/osx-64/jupyter_core-4.7.0-py39h6e9494a_0.tar.bz2#f6c704f44ba49a5e38bae0b8ec4683d4
 https://conda.anaconda.org/conda-forge/osx-64/setuptools-49.6.0-py39h2c36a5b_2.tar.bz2#25fa47d1b2e898c618e795344feffde0
 https://conda.anaconda.org/conda-forge/osx-64/terminado-0.9.1-py39hde42818_1.tar.bz2#63c940d5632aebd9660d056e40caa338
@@ -84,7 +84,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2#
 https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551
 https://conda.anaconda.org/conda-forge/noarch/jsonschema-3.2.0-py_2.tar.bz2#a17aa962de6145d08e1008cb37c20161
 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a
-https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1
+https://conda.anaconda.org/conda-forge/noarch/pip-20.3.1-pyhd8ed1ab_0.tar.bz2#bd6aa73eed4afc399688200778a609f6
 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723
 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f
 https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7
diff --git a/.github/locks/test/osx-64/py3.9/lab2/conda.lock b/.github/locks/test/osx-64/py3.9/lab2/conda.lock
index 6e33a438..20071fc9 100644
--- a/.github/locks/test/osx-64/py3.9/lab2/conda.lock
+++ b/.github/locks/test/osx-64/py3.9/lab2/conda.lock
@@ -22,7 +22,7 @@ https://conda.anaconda.org/conda-forge/osx-64/readline-8.0-h0678c8f_2.tar.bz2#8f
 https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.10-hb0a8c7a_1.tar.bz2#f7477bf81dcfc7b4dddc7b3790a99a0c
 https://conda.anaconda.org/conda-forge/osx-64/zeromq-4.3.3-h74dc148_3.tar.bz2#365c52e91cb00d96d15bef9eddf9f7f8
 https://conda.anaconda.org/conda-forge/osx-64/nodejs-14.15.1-heaeed3d_0.tar.bz2#ab7d3bb7b92c6b6f8a3e8b7f33019ff4
-https://conda.anaconda.org/conda-forge/osx-64/sqlite-3.33.0-h960bd1c_1.tar.bz2#d86a1d10a189d4c000a61971110f4f55
+https://conda.anaconda.org/conda-forge/osx-64/sqlite-3.34.0-h17101e1_0.tar.bz2#9e9694f119bb1a2362a0cc0249651835
 https://conda.anaconda.org/conda-forge/osx-64/python-3.9.0-h4f09611_5_cpython.tar.bz2#5223fbb1e0ce43ad372c27b03e0bf6a7
 https://conda.anaconda.org/conda-forge/noarch/async_generator-1.10-py_0.tar.bz2#d56c596e61b1c4952acf0a9920856c12
 https://conda.anaconda.org/conda-forge/noarch/attrs-20.3.0-pyhd3deb0d_0.tar.bz2#5b319abb055eefcfa344bc21378ca23f
@@ -47,14 +47,14 @@ https://conda.anaconda.org/conda-forge/noarch/send2trash-1.5.0-py_0.tar.bz2#c377
 https://conda.anaconda.org/conda-forge/noarch/six-1.15.0-pyh9f0ad1d_0.tar.bz2#1eec421f0f1f39e579e44e4a5ce646a2
 https://conda.anaconda.org/conda-forge/noarch/testpath-0.4.4-py_0.tar.bz2#3b98fff4d5342bebde2ecaa314f796f9
 https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-py_1.tar.bz2#3563be4c5611a44210d9ba0c16113136
-https://conda.anaconda.org/conda-forge/noarch/wheel-0.35.1-pyh9f0ad1d_0.tar.bz2#126827869be32f21872a2b30ebe2b038
+https://conda.anaconda.org/conda-forge/noarch/wheel-0.36.0-pyhd3deb0d_0.tar.bz2#f144bcd310e543bd9c8aa17c8ba1ee02
 https://conda.anaconda.org/conda-forge/noarch/zipp-3.4.0-py_0.tar.bz2#0df927d2e46244cef8fd75d7ec2ba51c
-https://conda.anaconda.org/conda-forge/osx-64/appnope-0.1.0-py39h6e9494a_1003.tar.bz2#772d92c29f9709fe51700fbb8ac47081
+https://conda.anaconda.org/conda-forge/osx-64/appnope-0.1.2-py39h6e9494a_0.tar.bz2#f8522ff67ccd782f287f74c9cf8d750c
 https://conda.anaconda.org/conda-forge/osx-64/certifi-2020.11.8-py39h6e9494a_0.tar.bz2#b244aa5466ae3befb8b2ad9349ffc44c
 https://conda.anaconda.org/conda-forge/osx-64/cffi-1.14.4-py39h7786acb_1.tar.bz2#9f6f344eb4e89e0cce955d4c8fe17ca6
 https://conda.anaconda.org/conda-forge/osx-64/chardet-3.0.4-py39h2c36a5b_1008.tar.bz2#1cf27b1f3032b36e3d30b1791e8386e2
 https://conda.anaconda.org/conda-forge/osx-64/entrypoints-0.3-py39hde42818_1002.tar.bz2#fb8afe91904c7e3544dab6801b23436e
-https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.0-pyhd8ed1ab_0.tar.bz2#97a4bcec44626ddea360efdf7d5ad816
+https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.1-pyhd8ed1ab_0.tar.bz2#e22162ed945059586d1b6b603d07c48e
 https://conda.anaconda.org/conda-forge/osx-64/jedi-0.17.2-py39hde42818_1.tar.bz2#da2e32e1485ce68af19d1ba3913d2040
 https://conda.anaconda.org/conda-forge/osx-64/macfsevents-0.8.1-py39hb5aae12_1001.tar.bz2#d85619dcc5915ccbc631a19197a4cda7
 https://conda.anaconda.org/conda-forge/osx-64/markupsafe-1.1.1-py39h66d5b7b_2.tar.bz2#4bc15227785d84eb18d96fd23ad237eb
@@ -75,7 +75,7 @@ https://conda.anaconda.org/conda-forge/osx-64/argon2-cffi-20.1.0-py39hb5aae12_2.
 https://conda.anaconda.org/conda-forge/osx-64/brotlipy-0.7.0-py39h66d5b7b_1001.tar.bz2#3b798e72dec2ad622620b2879ba4af72
 https://conda.anaconda.org/conda-forge/osx-64/cryptography-3.2.1-py39hed2902a_0.tar.bz2#3373c7021ec0e509d5daa9156ac98b84
 https://conda.anaconda.org/conda-forge/osx-64/doit-0.33.1-py39hde42818_1.tar.bz2#60195688f3a1598b5f445677ef11f6e2
-https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.0-hd8ed1ab_0.tar.bz2#182b3a7c361dfc0de2ed1abf90fd61c8
+https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.1-hd8ed1ab_0.tar.bz2#a884b1bcaa2d48a6bc299dcba787db7a
 https://conda.anaconda.org/conda-forge/osx-64/jupyter_core-4.7.0-py39h6e9494a_0.tar.bz2#f6c704f44ba49a5e38bae0b8ec4683d4
 https://conda.anaconda.org/conda-forge/osx-64/setuptools-49.6.0-py39h2c36a5b_2.tar.bz2#25fa47d1b2e898c618e795344feffde0
 https://conda.anaconda.org/conda-forge/osx-64/terminado-0.9.1-py39hde42818_1.tar.bz2#63c940d5632aebd9660d056e40caa338
@@ -84,7 +84,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2#
 https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551
 https://conda.anaconda.org/conda-forge/noarch/jsonschema-3.2.0-py_2.tar.bz2#a17aa962de6145d08e1008cb37c20161
 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a
-https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1
+https://conda.anaconda.org/conda-forge/noarch/pip-20.3.1-pyhd8ed1ab_0.tar.bz2#bd6aa73eed4afc399688200778a609f6
 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723
 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f
 https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7
diff --git a/.github/locks/test/osx-64/py3.9/lab3/conda.lock b/.github/locks/test/osx-64/py3.9/lab3/conda.lock
index 61a7cb34..b5e8a3b8 100644
--- a/.github/locks/test/osx-64/py3.9/lab3/conda.lock
+++ b/.github/locks/test/osx-64/py3.9/lab3/conda.lock
@@ -22,7 +22,7 @@ https://conda.anaconda.org/conda-forge/osx-64/readline-8.0-h0678c8f_2.tar.bz2#8f
 https://conda.anaconda.org/conda-forge/osx-64/tk-8.6.10-hb0a8c7a_1.tar.bz2#f7477bf81dcfc7b4dddc7b3790a99a0c
 https://conda.anaconda.org/conda-forge/osx-64/zeromq-4.3.3-h74dc148_3.tar.bz2#365c52e91cb00d96d15bef9eddf9f7f8
 https://conda.anaconda.org/conda-forge/osx-64/nodejs-14.15.1-heaeed3d_0.tar.bz2#ab7d3bb7b92c6b6f8a3e8b7f33019ff4
-https://conda.anaconda.org/conda-forge/osx-64/sqlite-3.33.0-h960bd1c_1.tar.bz2#d86a1d10a189d4c000a61971110f4f55
+https://conda.anaconda.org/conda-forge/osx-64/sqlite-3.34.0-h17101e1_0.tar.bz2#9e9694f119bb1a2362a0cc0249651835
 https://conda.anaconda.org/conda-forge/osx-64/python-3.9.0-h4f09611_5_cpython.tar.bz2#5223fbb1e0ce43ad372c27b03e0bf6a7
 https://conda.anaconda.org/conda-forge/noarch/async_generator-1.10-py_0.tar.bz2#d56c596e61b1c4952acf0a9920856c12
 https://conda.anaconda.org/conda-forge/noarch/attrs-20.3.0-pyhd3deb0d_0.tar.bz2#5b319abb055eefcfa344bc21378ca23f
@@ -49,15 +49,15 @@ https://conda.anaconda.org/conda-forge/noarch/send2trash-1.5.0-py_0.tar.bz2#c377
 https://conda.anaconda.org/conda-forge/noarch/six-1.15.0-pyh9f0ad1d_0.tar.bz2#1eec421f0f1f39e579e44e4a5ce646a2
 https://conda.anaconda.org/conda-forge/noarch/testpath-0.4.4-py_0.tar.bz2#3b98fff4d5342bebde2ecaa314f796f9
 https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-py_1.tar.bz2#3563be4c5611a44210d9ba0c16113136
-https://conda.anaconda.org/conda-forge/noarch/wheel-0.35.1-pyh9f0ad1d_0.tar.bz2#126827869be32f21872a2b30ebe2b038
+https://conda.anaconda.org/conda-forge/noarch/wheel-0.36.0-pyhd3deb0d_0.tar.bz2#f144bcd310e543bd9c8aa17c8ba1ee02
 https://conda.anaconda.org/conda-forge/noarch/zipp-3.4.0-py_0.tar.bz2#0df927d2e46244cef8fd75d7ec2ba51c
-https://conda.anaconda.org/conda-forge/osx-64/appnope-0.1.0-py39h6e9494a_1003.tar.bz2#772d92c29f9709fe51700fbb8ac47081
+https://conda.anaconda.org/conda-forge/osx-64/appnope-0.1.2-py39h6e9494a_0.tar.bz2#f8522ff67ccd782f287f74c9cf8d750c
 https://conda.anaconda.org/conda-forge/noarch/babel-2.9.0-pyhd3deb0d_0.tar.bz2#1cb532c9a6fd4e56a9f0906b87c17b76
 https://conda.anaconda.org/conda-forge/osx-64/certifi-2020.11.8-py39h6e9494a_0.tar.bz2#b244aa5466ae3befb8b2ad9349ffc44c
 https://conda.anaconda.org/conda-forge/osx-64/cffi-1.14.4-py39h7786acb_1.tar.bz2#9f6f344eb4e89e0cce955d4c8fe17ca6
 https://conda.anaconda.org/conda-forge/osx-64/chardet-3.0.4-py39h2c36a5b_1008.tar.bz2#1cf27b1f3032b36e3d30b1791e8386e2
 https://conda.anaconda.org/conda-forge/osx-64/entrypoints-0.3-py39hde42818_1002.tar.bz2#fb8afe91904c7e3544dab6801b23436e
-https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.0-pyhd8ed1ab_0.tar.bz2#97a4bcec44626ddea360efdf7d5ad816
+https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.1-pyhd8ed1ab_0.tar.bz2#e22162ed945059586d1b6b603d07c48e
 https://conda.anaconda.org/conda-forge/osx-64/jedi-0.17.2-py39hde42818_1.tar.bz2#da2e32e1485ce68af19d1ba3913d2040
 https://conda.anaconda.org/conda-forge/osx-64/macfsevents-0.8.1-py39hb5aae12_1001.tar.bz2#d85619dcc5915ccbc631a19197a4cda7
 https://conda.anaconda.org/conda-forge/osx-64/markupsafe-1.1.1-py39h66d5b7b_2.tar.bz2#4bc15227785d84eb18d96fd23ad237eb
@@ -78,7 +78,7 @@ https://conda.anaconda.org/conda-forge/osx-64/argon2-cffi-20.1.0-py39hb5aae12_2.
 https://conda.anaconda.org/conda-forge/osx-64/brotlipy-0.7.0-py39h66d5b7b_1001.tar.bz2#3b798e72dec2ad622620b2879ba4af72
 https://conda.anaconda.org/conda-forge/osx-64/cryptography-3.2.1-py39hed2902a_0.tar.bz2#3373c7021ec0e509d5daa9156ac98b84
 https://conda.anaconda.org/conda-forge/osx-64/doit-0.33.1-py39hde42818_1.tar.bz2#60195688f3a1598b5f445677ef11f6e2
-https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.0-hd8ed1ab_0.tar.bz2#182b3a7c361dfc0de2ed1abf90fd61c8
+https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.1-hd8ed1ab_0.tar.bz2#a884b1bcaa2d48a6bc299dcba787db7a
 https://conda.anaconda.org/conda-forge/osx-64/jupyter_core-4.7.0-py39h6e9494a_0.tar.bz2#f6c704f44ba49a5e38bae0b8ec4683d4
 https://conda.anaconda.org/conda-forge/osx-64/setuptools-49.6.0-py39h2c36a5b_2.tar.bz2#25fa47d1b2e898c618e795344feffde0
 https://conda.anaconda.org/conda-forge/osx-64/terminado-0.9.1-py39hde42818_1.tar.bz2#63c940d5632aebd9660d056e40caa338
@@ -87,7 +87,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2#
 https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551
 https://conda.anaconda.org/conda-forge/noarch/jsonschema-3.2.0-py_2.tar.bz2#a17aa962de6145d08e1008cb37c20161
 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a
-https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1
+https://conda.anaconda.org/conda-forge/noarch/pip-20.3.1-pyhd8ed1ab_0.tar.bz2#bd6aa73eed4afc399688200778a609f6
 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723
 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f
 https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7
diff --git a/.github/locks/test/win-64/py3.6/lab1/conda.lock b/.github/locks/test/win-64/py3.6/lab1/conda.lock
index 5d26c1b8..1748d54d 100644
--- a/.github/locks/test/win-64/py3.6/lab1/conda.lock
+++ b/.github/locks/test/win-64/py3.6/lab1/conda.lock
@@ -44,14 +44,14 @@ https://conda.anaconda.org/conda-forge/noarch/send2trash-1.5.0-py_0.tar.bz2#c377
 https://conda.anaconda.org/conda-forge/noarch/six-1.15.0-pyh9f0ad1d_0.tar.bz2#1eec421f0f1f39e579e44e4a5ce646a2
 https://conda.anaconda.org/conda-forge/noarch/testpath-0.4.4-py_0.tar.bz2#3b98fff4d5342bebde2ecaa314f796f9
 https://conda.anaconda.org/conda-forge/win-64/webencodings-0.5.1-py36_0.tar.bz2#101c444711dff0ea867743b52d2393db
-https://conda.anaconda.org/conda-forge/noarch/wheel-0.35.1-pyh9f0ad1d_0.tar.bz2#126827869be32f21872a2b30ebe2b038
+https://conda.anaconda.org/conda-forge/noarch/wheel-0.36.0-pyhd3deb0d_0.tar.bz2#f144bcd310e543bd9c8aa17c8ba1ee02
 https://conda.anaconda.org/conda-forge/win-64/zeromq-4.3.3-h0e60522_3.tar.bz2#3f14354fbaa50a70595d6d1a54292996
 https://conda.anaconda.org/conda-forge/noarch/zipp-3.4.0-py_0.tar.bz2#0df927d2e46244cef8fd75d7ec2ba51c
 https://conda.anaconda.org/conda-forge/win-64/certifi-2020.11.8-py36ha15d459_0.tar.bz2#e59976ec9ce2d60ff6b1e49f04b57706
 https://conda.anaconda.org/conda-forge/win-64/cffi-1.14.4-py36he58ceb7_1.tar.bz2#369a4a0c6b2aac156c16e0e36cca585e
 https://conda.anaconda.org/conda-forge/win-64/doit-0.33.1-py36h9f0ad1d_1.tar.bz2#eda38f9e8dc256068db9f41d2c26febb
 https://conda.anaconda.org/conda-forge/win-64/entrypoints-0.3-py36h9f0ad1d_1002.tar.bz2#2b77a25e6a38ae845abff3e0d6c695bd
-https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.0-pyhd8ed1ab_0.tar.bz2#97a4bcec44626ddea360efdf7d5ad816
+https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.1-pyhd8ed1ab_0.tar.bz2#e22162ed945059586d1b6b603d07c48e
 https://conda.anaconda.org/conda-forge/win-64/jedi-0.17.2-py36ha15d459_1.tar.bz2#490ace8303a86ab3f83340b5d3da4ff7
 https://conda.anaconda.org/msys2/win-64/m2w64-gcc-libs-5.3.0-7.tar.bz2#0b9caac6747002340b057a222af705b2
 https://conda.anaconda.org/conda-forge/win-64/markupsafe-1.1.1-py36hc753bc4_2.tar.bz2#9e36106ae933f25f38ba10f0d4c45572
@@ -72,7 +72,7 @@ https://conda.anaconda.org/conda-forge/win-64/wincertstore-0.2-py36h9f0ad1d_1005
 https://conda.anaconda.org/conda-forge/win-64/argon2-cffi-20.1.0-py36h779f372_2.tar.bz2#1a30125a161a46ef5a469044e6e9de0b
 https://conda.anaconda.org/conda-forge/win-64/brotlipy-0.7.0-py36hc753bc4_1001.tar.bz2#03adcc452e95ce7558630b1b28225de6
 https://conda.anaconda.org/conda-forge/win-64/cryptography-3.2.1-py36he58ceb7_0.tar.bz2#13f6f3a96795e8f12c5aff025561ab8c
-https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.0-hd8ed1ab_0.tar.bz2#182b3a7c361dfc0de2ed1abf90fd61c8
+https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.1-hd8ed1ab_0.tar.bz2#a884b1bcaa2d48a6bc299dcba787db7a
 https://conda.anaconda.org/conda-forge/win-64/jupyter_core-4.7.0-py36ha15d459_0.tar.bz2#f6e94f062740c05871eff07ac9f58dc3
 https://conda.anaconda.org/conda-forge/win-64/pysocks-1.7.1-py36hd36e781_2.tar.bz2#d26259b7eeccf43768a208820955bf85
 https://conda.anaconda.org/conda-forge/win-64/pywinpty-0.5.7-py36h9f0ad1d_1.tar.bz2#e86ef10d448fea3c4e0845a324e352a4
@@ -82,7 +82,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2#
 https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551
 https://conda.anaconda.org/conda-forge/win-64/jsonschema-3.2.0-py36h9f0ad1d_1.tar.bz2#4dfe69fb8ad8543e4654ea881f19c8e8
 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a
-https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1
+https://conda.anaconda.org/conda-forge/noarch/pip-20.3.1-pyhd8ed1ab_0.tar.bz2#bd6aa73eed4afc399688200778a609f6
 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723
 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f
 https://conda.anaconda.org/conda-forge/win-64/terminado-0.9.1-py36ha15d459_1.tar.bz2#20bb363dc90d6df868251b6fe13081c2
diff --git a/.github/locks/test/win-64/py3.6/lab2/conda.lock b/.github/locks/test/win-64/py3.6/lab2/conda.lock
index 8bdf8fc5..c9a555d4 100644
--- a/.github/locks/test/win-64/py3.6/lab2/conda.lock
+++ b/.github/locks/test/win-64/py3.6/lab2/conda.lock
@@ -44,14 +44,14 @@ https://conda.anaconda.org/conda-forge/noarch/send2trash-1.5.0-py_0.tar.bz2#c377
 https://conda.anaconda.org/conda-forge/noarch/six-1.15.0-pyh9f0ad1d_0.tar.bz2#1eec421f0f1f39e579e44e4a5ce646a2
 https://conda.anaconda.org/conda-forge/noarch/testpath-0.4.4-py_0.tar.bz2#3b98fff4d5342bebde2ecaa314f796f9
 https://conda.anaconda.org/conda-forge/win-64/webencodings-0.5.1-py36_0.tar.bz2#101c444711dff0ea867743b52d2393db
-https://conda.anaconda.org/conda-forge/noarch/wheel-0.35.1-pyh9f0ad1d_0.tar.bz2#126827869be32f21872a2b30ebe2b038
+https://conda.anaconda.org/conda-forge/noarch/wheel-0.36.0-pyhd3deb0d_0.tar.bz2#f144bcd310e543bd9c8aa17c8ba1ee02
 https://conda.anaconda.org/conda-forge/win-64/zeromq-4.3.3-h0e60522_3.tar.bz2#3f14354fbaa50a70595d6d1a54292996
 https://conda.anaconda.org/conda-forge/noarch/zipp-3.4.0-py_0.tar.bz2#0df927d2e46244cef8fd75d7ec2ba51c
 https://conda.anaconda.org/conda-forge/win-64/certifi-2020.11.8-py36ha15d459_0.tar.bz2#e59976ec9ce2d60ff6b1e49f04b57706
 https://conda.anaconda.org/conda-forge/win-64/cffi-1.14.4-py36he58ceb7_1.tar.bz2#369a4a0c6b2aac156c16e0e36cca585e
 https://conda.anaconda.org/conda-forge/win-64/doit-0.33.1-py36h9f0ad1d_1.tar.bz2#eda38f9e8dc256068db9f41d2c26febb
 https://conda.anaconda.org/conda-forge/win-64/entrypoints-0.3-py36h9f0ad1d_1002.tar.bz2#2b77a25e6a38ae845abff3e0d6c695bd
-https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.0-pyhd8ed1ab_0.tar.bz2#97a4bcec44626ddea360efdf7d5ad816
+https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.1-pyhd8ed1ab_0.tar.bz2#e22162ed945059586d1b6b603d07c48e
 https://conda.anaconda.org/conda-forge/win-64/jedi-0.17.2-py36ha15d459_1.tar.bz2#490ace8303a86ab3f83340b5d3da4ff7
 https://conda.anaconda.org/msys2/win-64/m2w64-gcc-libs-5.3.0-7.tar.bz2#0b9caac6747002340b057a222af705b2
 https://conda.anaconda.org/conda-forge/win-64/markupsafe-1.1.1-py36hc753bc4_2.tar.bz2#9e36106ae933f25f38ba10f0d4c45572
@@ -72,7 +72,7 @@ https://conda.anaconda.org/conda-forge/win-64/wincertstore-0.2-py36h9f0ad1d_1005
 https://conda.anaconda.org/conda-forge/win-64/argon2-cffi-20.1.0-py36h779f372_2.tar.bz2#1a30125a161a46ef5a469044e6e9de0b
 https://conda.anaconda.org/conda-forge/win-64/brotlipy-0.7.0-py36hc753bc4_1001.tar.bz2#03adcc452e95ce7558630b1b28225de6
 https://conda.anaconda.org/conda-forge/win-64/cryptography-3.2.1-py36he58ceb7_0.tar.bz2#13f6f3a96795e8f12c5aff025561ab8c
-https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.0-hd8ed1ab_0.tar.bz2#182b3a7c361dfc0de2ed1abf90fd61c8
+https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.1-hd8ed1ab_0.tar.bz2#a884b1bcaa2d48a6bc299dcba787db7a
 https://conda.anaconda.org/conda-forge/win-64/jupyter_core-4.7.0-py36ha15d459_0.tar.bz2#f6e94f062740c05871eff07ac9f58dc3
 https://conda.anaconda.org/conda-forge/win-64/pysocks-1.7.1-py36hd36e781_2.tar.bz2#d26259b7eeccf43768a208820955bf85
 https://conda.anaconda.org/conda-forge/win-64/pywinpty-0.5.7-py36h9f0ad1d_1.tar.bz2#e86ef10d448fea3c4e0845a324e352a4
@@ -82,7 +82,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2#
 https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551
 https://conda.anaconda.org/conda-forge/win-64/jsonschema-3.2.0-py36h9f0ad1d_1.tar.bz2#4dfe69fb8ad8543e4654ea881f19c8e8
 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a
-https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1
+https://conda.anaconda.org/conda-forge/noarch/pip-20.3.1-pyhd8ed1ab_0.tar.bz2#bd6aa73eed4afc399688200778a609f6
 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723
 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f
 https://conda.anaconda.org/conda-forge/win-64/terminado-0.9.1-py36ha15d459_1.tar.bz2#20bb363dc90d6df868251b6fe13081c2
diff --git a/.github/locks/test/win-64/py3.8/lab1/conda.lock b/.github/locks/test/win-64/py3.8/lab1/conda.lock
index c2250645..b649230a 100644
--- a/.github/locks/test/win-64/py3.8/lab1/conda.lock
+++ b/.github/locks/test/win-64/py3.8/lab1/conda.lock
@@ -17,7 +17,7 @@ https://conda.anaconda.org/conda-forge/win-64/geckodriver-0.28.0-h39d44d4_0.tar.
 https://conda.anaconda.org/conda-forge/win-64/libsodium-1.0.18-h62dcd97_1.tar.bz2#5e0709275ea686866988ac69c3850d35
 https://conda.anaconda.org/msys2/win-64/m2w64-gcc-libs-core-5.3.0-7.tar.bz2#276d396bfe8d958f71173b7134f739fa
 https://conda.anaconda.org/conda-forge/win-64/openssl-1.1.1h-he774522_0.tar.bz2#21844b16355ef8faa21fca97794d6825
-https://conda.anaconda.org/conda-forge/win-64/sqlite-3.33.0-he774522_1.tar.bz2#d71a870ed0940cdf9f4bcb827d12ead6
+https://conda.anaconda.org/conda-forge/win-64/sqlite-3.34.0-h8ffe710_0.tar.bz2#0887d420b945a5342cd03429d475658c
 https://conda.anaconda.org/conda-forge/win-64/yaml-0.2.5-he774522_0.tar.bz2#d41c34441d8bbb6d141e691ae7bccf35
 https://conda.anaconda.org/msys2/win-64/m2w64-gcc-libgfortran-5.3.0-6.tar.bz2#de1b7f7c8221028f6bbe103df4c53bed
 https://conda.anaconda.org/conda-forge/win-64/python-3.8.6-h7840368_1_cpython.tar.bz2#07903b905072cd232a326225aa7fe247
@@ -46,14 +46,14 @@ https://conda.anaconda.org/conda-forge/noarch/send2trash-1.5.0-py_0.tar.bz2#c377
 https://conda.anaconda.org/conda-forge/noarch/six-1.15.0-pyh9f0ad1d_0.tar.bz2#1eec421f0f1f39e579e44e4a5ce646a2
 https://conda.anaconda.org/conda-forge/noarch/testpath-0.4.4-py_0.tar.bz2#3b98fff4d5342bebde2ecaa314f796f9
 https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-py_1.tar.bz2#3563be4c5611a44210d9ba0c16113136
-https://conda.anaconda.org/conda-forge/noarch/wheel-0.35.1-pyh9f0ad1d_0.tar.bz2#126827869be32f21872a2b30ebe2b038
+https://conda.anaconda.org/conda-forge/noarch/wheel-0.36.0-pyhd3deb0d_0.tar.bz2#f144bcd310e543bd9c8aa17c8ba1ee02
 https://conda.anaconda.org/conda-forge/noarch/zipp-3.4.0-py_0.tar.bz2#0df927d2e46244cef8fd75d7ec2ba51c
 https://conda.anaconda.org/conda-forge/win-64/certifi-2020.11.8-py38haa244fe_0.tar.bz2#1e3a88f8db13d19c4d23422e2f8f0e6c
 https://conda.anaconda.org/conda-forge/win-64/cffi-1.14.4-py38hd8c33c5_1.tar.bz2#2eafaa5f8f4f7e43cfb6dbee50bcb792
 https://conda.anaconda.org/conda-forge/win-64/chardet-3.0.4-py38h9bdc248_1008.tar.bz2#503ab812d4aa8f5e4e40448a22f16233
 https://conda.anaconda.org/conda-forge/win-64/doit-0.33.1-py38h32f6830_1.tar.bz2#8b263b9225a12d7d926b3266bcbd2d00
 https://conda.anaconda.org/conda-forge/win-64/entrypoints-0.3-py38h32f6830_1002.tar.bz2#6e62109f3a8b1734dc22d25317ba32a9
-https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.0-pyhd8ed1ab_0.tar.bz2#97a4bcec44626ddea360efdf7d5ad816
+https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.1-pyhd8ed1ab_0.tar.bz2#e22162ed945059586d1b6b603d07c48e
 https://conda.anaconda.org/conda-forge/win-64/jedi-0.17.2-py38haa244fe_1.tar.bz2#097ff99775022e7e449c02cdde5875fc
 https://conda.anaconda.org/conda-forge/win-64/markupsafe-1.1.1-py38hab1e662_2.tar.bz2#0737676f52f6bb7d2260636434140519
 https://conda.anaconda.org/conda-forge/win-64/mistune-0.8.4-py38h294d835_1002.tar.bz2#5c55b27e29c30aeef4e11832441a50f2
@@ -74,7 +74,7 @@ https://conda.anaconda.org/conda-forge/win-64/wincertstore-0.2-py38h32f6830_1005
 https://conda.anaconda.org/conda-forge/win-64/argon2-cffi-20.1.0-py38h294d835_2.tar.bz2#2c84cff56efb8071cd3996453f8d05a2
 https://conda.anaconda.org/conda-forge/win-64/brotlipy-0.7.0-py38hab1e662_1001.tar.bz2#2d6f5a730bc180307463869c63ac0cdd
 https://conda.anaconda.org/conda-forge/win-64/cryptography-3.2.1-py38hd8c33c5_0.tar.bz2#6e96f917369950d4df5208afe2bb4058
-https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.0-hd8ed1ab_0.tar.bz2#182b3a7c361dfc0de2ed1abf90fd61c8
+https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.1-hd8ed1ab_0.tar.bz2#a884b1bcaa2d48a6bc299dcba787db7a
 https://conda.anaconda.org/conda-forge/win-64/jupyter_core-4.7.0-py38haa244fe_0.tar.bz2#fe95f3dc033651e47455ecddc6d51af0
 https://conda.anaconda.org/conda-forge/win-64/pysocks-1.7.1-py38h9bdc248_2.tar.bz2#6ed736e4e660a6ed5987b259b7f17fc1
 https://conda.anaconda.org/conda-forge/win-64/setuptools-49.6.0-py38h9bdc248_2.tar.bz2#98726e11607788e59c4135db810e8521
@@ -84,7 +84,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2#
 https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551
 https://conda.anaconda.org/conda-forge/win-64/jsonschema-3.2.0-py38h32f6830_1.tar.bz2#b83ae2d41bc9bf8570a5d976904bbe35
 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a
-https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1
+https://conda.anaconda.org/conda-forge/noarch/pip-20.3.1-pyhd8ed1ab_0.tar.bz2#bd6aa73eed4afc399688200778a609f6
 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723
 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f
 https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7
diff --git a/.github/locks/test/win-64/py3.8/lab2/conda.lock b/.github/locks/test/win-64/py3.8/lab2/conda.lock
index 8beeee87..57861b86 100644
--- a/.github/locks/test/win-64/py3.8/lab2/conda.lock
+++ b/.github/locks/test/win-64/py3.8/lab2/conda.lock
@@ -17,7 +17,7 @@ https://conda.anaconda.org/conda-forge/win-64/geckodriver-0.28.0-h39d44d4_0.tar.
 https://conda.anaconda.org/conda-forge/win-64/libsodium-1.0.18-h62dcd97_1.tar.bz2#5e0709275ea686866988ac69c3850d35
 https://conda.anaconda.org/msys2/win-64/m2w64-gcc-libs-core-5.3.0-7.tar.bz2#276d396bfe8d958f71173b7134f739fa
 https://conda.anaconda.org/conda-forge/win-64/openssl-1.1.1h-he774522_0.tar.bz2#21844b16355ef8faa21fca97794d6825
-https://conda.anaconda.org/conda-forge/win-64/sqlite-3.33.0-he774522_1.tar.bz2#d71a870ed0940cdf9f4bcb827d12ead6
+https://conda.anaconda.org/conda-forge/win-64/sqlite-3.34.0-h8ffe710_0.tar.bz2#0887d420b945a5342cd03429d475658c
 https://conda.anaconda.org/conda-forge/win-64/yaml-0.2.5-he774522_0.tar.bz2#d41c34441d8bbb6d141e691ae7bccf35
 https://conda.anaconda.org/msys2/win-64/m2w64-gcc-libgfortran-5.3.0-6.tar.bz2#de1b7f7c8221028f6bbe103df4c53bed
 https://conda.anaconda.org/conda-forge/win-64/python-3.8.6-h7840368_1_cpython.tar.bz2#07903b905072cd232a326225aa7fe247
@@ -46,14 +46,14 @@ https://conda.anaconda.org/conda-forge/noarch/send2trash-1.5.0-py_0.tar.bz2#c377
 https://conda.anaconda.org/conda-forge/noarch/six-1.15.0-pyh9f0ad1d_0.tar.bz2#1eec421f0f1f39e579e44e4a5ce646a2
 https://conda.anaconda.org/conda-forge/noarch/testpath-0.4.4-py_0.tar.bz2#3b98fff4d5342bebde2ecaa314f796f9
 https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-py_1.tar.bz2#3563be4c5611a44210d9ba0c16113136
-https://conda.anaconda.org/conda-forge/noarch/wheel-0.35.1-pyh9f0ad1d_0.tar.bz2#126827869be32f21872a2b30ebe2b038
+https://conda.anaconda.org/conda-forge/noarch/wheel-0.36.0-pyhd3deb0d_0.tar.bz2#f144bcd310e543bd9c8aa17c8ba1ee02
 https://conda.anaconda.org/conda-forge/noarch/zipp-3.4.0-py_0.tar.bz2#0df927d2e46244cef8fd75d7ec2ba51c
 https://conda.anaconda.org/conda-forge/win-64/certifi-2020.11.8-py38haa244fe_0.tar.bz2#1e3a88f8db13d19c4d23422e2f8f0e6c
 https://conda.anaconda.org/conda-forge/win-64/cffi-1.14.4-py38hd8c33c5_1.tar.bz2#2eafaa5f8f4f7e43cfb6dbee50bcb792
 https://conda.anaconda.org/conda-forge/win-64/chardet-3.0.4-py38h9bdc248_1008.tar.bz2#503ab812d4aa8f5e4e40448a22f16233
 https://conda.anaconda.org/conda-forge/win-64/doit-0.33.1-py38h32f6830_1.tar.bz2#8b263b9225a12d7d926b3266bcbd2d00
 https://conda.anaconda.org/conda-forge/win-64/entrypoints-0.3-py38h32f6830_1002.tar.bz2#6e62109f3a8b1734dc22d25317ba32a9
-https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.0-pyhd8ed1ab_0.tar.bz2#97a4bcec44626ddea360efdf7d5ad816
+https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.1-pyhd8ed1ab_0.tar.bz2#e22162ed945059586d1b6b603d07c48e
 https://conda.anaconda.org/conda-forge/win-64/jedi-0.17.2-py38haa244fe_1.tar.bz2#097ff99775022e7e449c02cdde5875fc
 https://conda.anaconda.org/conda-forge/win-64/markupsafe-1.1.1-py38hab1e662_2.tar.bz2#0737676f52f6bb7d2260636434140519
 https://conda.anaconda.org/conda-forge/win-64/mistune-0.8.4-py38h294d835_1002.tar.bz2#5c55b27e29c30aeef4e11832441a50f2
@@ -74,7 +74,7 @@ https://conda.anaconda.org/conda-forge/win-64/wincertstore-0.2-py38h32f6830_1005
 https://conda.anaconda.org/conda-forge/win-64/argon2-cffi-20.1.0-py38h294d835_2.tar.bz2#2c84cff56efb8071cd3996453f8d05a2
 https://conda.anaconda.org/conda-forge/win-64/brotlipy-0.7.0-py38hab1e662_1001.tar.bz2#2d6f5a730bc180307463869c63ac0cdd
 https://conda.anaconda.org/conda-forge/win-64/cryptography-3.2.1-py38hd8c33c5_0.tar.bz2#6e96f917369950d4df5208afe2bb4058
-https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.0-hd8ed1ab_0.tar.bz2#182b3a7c361dfc0de2ed1abf90fd61c8
+https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.1-hd8ed1ab_0.tar.bz2#a884b1bcaa2d48a6bc299dcba787db7a
 https://conda.anaconda.org/conda-forge/win-64/jupyter_core-4.7.0-py38haa244fe_0.tar.bz2#fe95f3dc033651e47455ecddc6d51af0
 https://conda.anaconda.org/conda-forge/win-64/pysocks-1.7.1-py38h9bdc248_2.tar.bz2#6ed736e4e660a6ed5987b259b7f17fc1
 https://conda.anaconda.org/conda-forge/win-64/setuptools-49.6.0-py38h9bdc248_2.tar.bz2#98726e11607788e59c4135db810e8521
@@ -84,7 +84,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2#
 https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551
 https://conda.anaconda.org/conda-forge/win-64/jsonschema-3.2.0-py38h32f6830_1.tar.bz2#b83ae2d41bc9bf8570a5d976904bbe35
 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a
-https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1
+https://conda.anaconda.org/conda-forge/noarch/pip-20.3.1-pyhd8ed1ab_0.tar.bz2#bd6aa73eed4afc399688200778a609f6
 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723
 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f
 https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7
diff --git a/.github/locks/test/win-64/py3.9/lab1/conda.lock b/.github/locks/test/win-64/py3.9/lab1/conda.lock
index c426a4d1..9abe847d 100644
--- a/.github/locks/test/win-64/py3.9/lab1/conda.lock
+++ b/.github/locks/test/win-64/py3.9/lab1/conda.lock
@@ -18,7 +18,7 @@ https://conda.anaconda.org/conda-forge/win-64/geckodriver-0.28.0-h39d44d4_0.tar.
 https://conda.anaconda.org/conda-forge/win-64/libsodium-1.0.18-h62dcd97_1.tar.bz2#5e0709275ea686866988ac69c3850d35
 https://conda.anaconda.org/msys2/win-64/m2w64-gcc-libs-core-5.3.0-7.tar.bz2#276d396bfe8d958f71173b7134f739fa
 https://conda.anaconda.org/conda-forge/win-64/openssl-1.1.1h-he774522_0.tar.bz2#21844b16355ef8faa21fca97794d6825
-https://conda.anaconda.org/conda-forge/win-64/sqlite-3.33.0-he774522_1.tar.bz2#d71a870ed0940cdf9f4bcb827d12ead6
+https://conda.anaconda.org/conda-forge/win-64/sqlite-3.34.0-h8ffe710_0.tar.bz2#0887d420b945a5342cd03429d475658c
 https://conda.anaconda.org/conda-forge/win-64/yaml-0.2.5-he774522_0.tar.bz2#d41c34441d8bbb6d141e691ae7bccf35
 https://conda.anaconda.org/msys2/win-64/m2w64-gcc-libgfortran-5.3.0-6.tar.bz2#de1b7f7c8221028f6bbe103df4c53bed
 https://conda.anaconda.org/conda-forge/win-64/python-3.9.0-h7840368_5_cpython.tar.bz2#9725ea2c7b0d5a163c4a1f90a4dcdec0
@@ -47,14 +47,14 @@ https://conda.anaconda.org/conda-forge/noarch/send2trash-1.5.0-py_0.tar.bz2#c377
 https://conda.anaconda.org/conda-forge/noarch/six-1.15.0-pyh9f0ad1d_0.tar.bz2#1eec421f0f1f39e579e44e4a5ce646a2
 https://conda.anaconda.org/conda-forge/noarch/testpath-0.4.4-py_0.tar.bz2#3b98fff4d5342bebde2ecaa314f796f9
 https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-py_1.tar.bz2#3563be4c5611a44210d9ba0c16113136
-https://conda.anaconda.org/conda-forge/noarch/wheel-0.35.1-pyh9f0ad1d_0.tar.bz2#126827869be32f21872a2b30ebe2b038
+https://conda.anaconda.org/conda-forge/noarch/wheel-0.36.0-pyhd3deb0d_0.tar.bz2#f144bcd310e543bd9c8aa17c8ba1ee02
 https://conda.anaconda.org/conda-forge/noarch/zipp-3.4.0-py_0.tar.bz2#0df927d2e46244cef8fd75d7ec2ba51c
 https://conda.anaconda.org/conda-forge/win-64/certifi-2020.11.8-py39hcbf5309_0.tar.bz2#d7367f2399e9192374267c940a8c0260
 https://conda.anaconda.org/conda-forge/win-64/cffi-1.14.4-py39h0878f49_1.tar.bz2#b7ac3692b3a1ab35cce44e10046513c5
 https://conda.anaconda.org/conda-forge/win-64/chardet-3.0.4-py39h467e6f4_1008.tar.bz2#9449e372ee9544175493c0c348131385
 https://conda.anaconda.org/conda-forge/win-64/doit-0.33.1-py39hde42818_1.tar.bz2#0045b388ae5161d72eef25b04a8d49b8
 https://conda.anaconda.org/conda-forge/win-64/entrypoints-0.3-py39hde42818_1002.tar.bz2#3a07c848ddee7575b2fe56294a6a4bae
-https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.0-pyhd8ed1ab_0.tar.bz2#97a4bcec44626ddea360efdf7d5ad816
+https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.1-pyhd8ed1ab_0.tar.bz2#e22162ed945059586d1b6b603d07c48e
 https://conda.anaconda.org/conda-forge/win-64/jedi-0.17.2-py39hde42818_1.tar.bz2#6d9e745430a2c4be6c410f9e67a02ed3
 https://conda.anaconda.org/conda-forge/win-64/markupsafe-1.1.1-py39ha3862ff_2.tar.bz2#003af8e9b78364cc0cc6359fa8a733f8
 https://conda.anaconda.org/conda-forge/win-64/mistune-0.8.4-py39hb82d6ee_1002.tar.bz2#b7acc2fadedb62fc39671ecd8bbe2678
@@ -75,7 +75,7 @@ https://conda.anaconda.org/conda-forge/win-64/wincertstore-0.2-py39hde42818_1005
 https://conda.anaconda.org/conda-forge/win-64/argon2-cffi-20.1.0-py39hb82d6ee_2.tar.bz2#e9e1e8283a4cd2f6c00dadd5fac42f85
 https://conda.anaconda.org/conda-forge/win-64/brotlipy-0.7.0-py39ha3862ff_1001.tar.bz2#28a31e5dccde93ae8e2e80b35df2e9e8
 https://conda.anaconda.org/conda-forge/win-64/cryptography-3.2.1-py39h0878f49_0.tar.bz2#3fb73ba831b0115800b34841c6a37224
-https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.0-hd8ed1ab_0.tar.bz2#182b3a7c361dfc0de2ed1abf90fd61c8
+https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.1-hd8ed1ab_0.tar.bz2#a884b1bcaa2d48a6bc299dcba787db7a
 https://conda.anaconda.org/conda-forge/win-64/jupyter_core-4.7.0-py39hcbf5309_0.tar.bz2#57067cff7150f3d6839d1618afbd96c9
 https://conda.anaconda.org/conda-forge/win-64/pysocks-1.7.1-py39h467e6f4_2.tar.bz2#812ce3c03e54a72634bc5b885124629b
 https://conda.anaconda.org/conda-forge/win-64/setuptools-49.6.0-py39h467e6f4_2.tar.bz2#819d078e0f74b5f2b5fc0bf2e7ebbf7a
@@ -85,7 +85,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2#
 https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551
 https://conda.anaconda.org/conda-forge/noarch/jsonschema-3.2.0-py_2.tar.bz2#a17aa962de6145d08e1008cb37c20161
 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a
-https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1
+https://conda.anaconda.org/conda-forge/noarch/pip-20.3.1-pyhd8ed1ab_0.tar.bz2#bd6aa73eed4afc399688200778a609f6
 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723
 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f
 https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7
diff --git a/.github/locks/test/win-64/py3.9/lab2/conda.lock b/.github/locks/test/win-64/py3.9/lab2/conda.lock
index 221622ee..093d4633 100644
--- a/.github/locks/test/win-64/py3.9/lab2/conda.lock
+++ b/.github/locks/test/win-64/py3.9/lab2/conda.lock
@@ -18,7 +18,7 @@ https://conda.anaconda.org/conda-forge/win-64/geckodriver-0.28.0-h39d44d4_0.tar.
 https://conda.anaconda.org/conda-forge/win-64/libsodium-1.0.18-h62dcd97_1.tar.bz2#5e0709275ea686866988ac69c3850d35
 https://conda.anaconda.org/msys2/win-64/m2w64-gcc-libs-core-5.3.0-7.tar.bz2#276d396bfe8d958f71173b7134f739fa
 https://conda.anaconda.org/conda-forge/win-64/openssl-1.1.1h-he774522_0.tar.bz2#21844b16355ef8faa21fca97794d6825
-https://conda.anaconda.org/conda-forge/win-64/sqlite-3.33.0-he774522_1.tar.bz2#d71a870ed0940cdf9f4bcb827d12ead6
+https://conda.anaconda.org/conda-forge/win-64/sqlite-3.34.0-h8ffe710_0.tar.bz2#0887d420b945a5342cd03429d475658c
 https://conda.anaconda.org/conda-forge/win-64/yaml-0.2.5-he774522_0.tar.bz2#d41c34441d8bbb6d141e691ae7bccf35
 https://conda.anaconda.org/msys2/win-64/m2w64-gcc-libgfortran-5.3.0-6.tar.bz2#de1b7f7c8221028f6bbe103df4c53bed
 https://conda.anaconda.org/conda-forge/win-64/python-3.9.0-h7840368_5_cpython.tar.bz2#9725ea2c7b0d5a163c4a1f90a4dcdec0
@@ -47,14 +47,14 @@ https://conda.anaconda.org/conda-forge/noarch/send2trash-1.5.0-py_0.tar.bz2#c377
 https://conda.anaconda.org/conda-forge/noarch/six-1.15.0-pyh9f0ad1d_0.tar.bz2#1eec421f0f1f39e579e44e4a5ce646a2
 https://conda.anaconda.org/conda-forge/noarch/testpath-0.4.4-py_0.tar.bz2#3b98fff4d5342bebde2ecaa314f796f9
 https://conda.anaconda.org/conda-forge/noarch/webencodings-0.5.1-py_1.tar.bz2#3563be4c5611a44210d9ba0c16113136
-https://conda.anaconda.org/conda-forge/noarch/wheel-0.35.1-pyh9f0ad1d_0.tar.bz2#126827869be32f21872a2b30ebe2b038
+https://conda.anaconda.org/conda-forge/noarch/wheel-0.36.0-pyhd3deb0d_0.tar.bz2#f144bcd310e543bd9c8aa17c8ba1ee02
 https://conda.anaconda.org/conda-forge/noarch/zipp-3.4.0-py_0.tar.bz2#0df927d2e46244cef8fd75d7ec2ba51c
 https://conda.anaconda.org/conda-forge/win-64/certifi-2020.11.8-py39hcbf5309_0.tar.bz2#d7367f2399e9192374267c940a8c0260
 https://conda.anaconda.org/conda-forge/win-64/cffi-1.14.4-py39h0878f49_1.tar.bz2#b7ac3692b3a1ab35cce44e10046513c5
 https://conda.anaconda.org/conda-forge/win-64/chardet-3.0.4-py39h467e6f4_1008.tar.bz2#9449e372ee9544175493c0c348131385
 https://conda.anaconda.org/conda-forge/win-64/doit-0.33.1-py39hde42818_1.tar.bz2#0045b388ae5161d72eef25b04a8d49b8
 https://conda.anaconda.org/conda-forge/win-64/entrypoints-0.3-py39hde42818_1002.tar.bz2#3a07c848ddee7575b2fe56294a6a4bae
-https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.0-pyhd8ed1ab_0.tar.bz2#97a4bcec44626ddea360efdf7d5ad816
+https://conda.anaconda.org/conda-forge/noarch/importlib-metadata-3.1.1-pyhd8ed1ab_0.tar.bz2#e22162ed945059586d1b6b603d07c48e
 https://conda.anaconda.org/conda-forge/win-64/jedi-0.17.2-py39hde42818_1.tar.bz2#6d9e745430a2c4be6c410f9e67a02ed3
 https://conda.anaconda.org/conda-forge/win-64/markupsafe-1.1.1-py39ha3862ff_2.tar.bz2#003af8e9b78364cc0cc6359fa8a733f8
 https://conda.anaconda.org/conda-forge/win-64/mistune-0.8.4-py39hb82d6ee_1002.tar.bz2#b7acc2fadedb62fc39671ecd8bbe2678
@@ -75,7 +75,7 @@ https://conda.anaconda.org/conda-forge/win-64/wincertstore-0.2-py39hde42818_1005
 https://conda.anaconda.org/conda-forge/win-64/argon2-cffi-20.1.0-py39hb82d6ee_2.tar.bz2#e9e1e8283a4cd2f6c00dadd5fac42f85
 https://conda.anaconda.org/conda-forge/win-64/brotlipy-0.7.0-py39ha3862ff_1001.tar.bz2#28a31e5dccde93ae8e2e80b35df2e9e8
 https://conda.anaconda.org/conda-forge/win-64/cryptography-3.2.1-py39h0878f49_0.tar.bz2#3fb73ba831b0115800b34841c6a37224
-https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.0-hd8ed1ab_0.tar.bz2#182b3a7c361dfc0de2ed1abf90fd61c8
+https://conda.anaconda.org/conda-forge/noarch/importlib_metadata-3.1.1-hd8ed1ab_0.tar.bz2#a884b1bcaa2d48a6bc299dcba787db7a
 https://conda.anaconda.org/conda-forge/win-64/jupyter_core-4.7.0-py39hcbf5309_0.tar.bz2#57067cff7150f3d6839d1618afbd96c9
 https://conda.anaconda.org/conda-forge/win-64/pysocks-1.7.1-py39h467e6f4_2.tar.bz2#812ce3c03e54a72634bc5b885124629b
 https://conda.anaconda.org/conda-forge/win-64/setuptools-49.6.0-py39h467e6f4_2.tar.bz2#819d078e0f74b5f2b5fc0bf2e7ebbf7a
@@ -85,7 +85,7 @@ https://conda.anaconda.org/conda-forge/noarch/bleach-3.2.1-pyh9f0ad1d_0.tar.bz2#
 https://conda.anaconda.org/conda-forge/noarch/jinja2-2.11.2-pyh9f0ad1d_0.tar.bz2#e8a5d614d1a27bdba00059ca062a0551
 https://conda.anaconda.org/conda-forge/noarch/jsonschema-3.2.0-py_2.tar.bz2#a17aa962de6145d08e1008cb37c20161
 https://conda.anaconda.org/conda-forge/noarch/jupyter_client-6.1.7-py_0.tar.bz2#bcaa486602c05413da0808b82898f60a
-https://conda.anaconda.org/conda-forge/noarch/pip-20.3-pyhd8ed1ab_0.tar.bz2#2a937297e76fcdc01a6591f68bd9a7c1
+https://conda.anaconda.org/conda-forge/noarch/pip-20.3.1-pyhd8ed1ab_0.tar.bz2#bd6aa73eed4afc399688200778a609f6
 https://conda.anaconda.org/conda-forge/noarch/pygments-2.7.2-py_0.tar.bz2#ed1bdce2d0c4353ad0bc22310e271723
 https://conda.anaconda.org/conda-forge/noarch/pyopenssl-20.0.0-pyhd8ed1ab_0.tar.bz2#8fda1084aa3edad26a03e85617bb109f
 https://conda.anaconda.org/conda-forge/noarch/jupyterlab_pygments-0.1.2-pyh9f0ad1d_0.tar.bz2#2cbd910890bb328e8959246a1e16fac7