#1071816 umap-learn: FTBFS: E TypeError: exceptions must be derived from Warning, not <class 'NoneType'>

#1071816#5
Date:
2024-05-25 00:33:57 UTC
From:
To:
Dear maintainer:

During a rebuild of all packages in unstable, your package failed to build:
--------------------------------------------------------------------------------
[...]
  debian/rules binary
dh binary --buildsystem=pybuild
    dh_update_autotools_config -O--buildsystem=pybuild
    dh_autoreconf -O--buildsystem=pybuild
    dh_auto_configure -O--buildsystem=pybuild
I: pybuild base:311: python3.11 setup.py config
running config
    dh_auto_build -O--buildsystem=pybuild
I: pybuild base:311: /usr/bin/python3 setup.py build
running build
running build_py
creating /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/umap
copying umap/plot.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/umap
copying umap/sparse.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/umap
copying umap/aligned_umap.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/umap
copying umap/layouts.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/umap
copying umap/utils.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/umap
copying umap/umap_.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/umap
copying umap/parametric_umap.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/umap
copying umap/validation.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/umap
copying umap/spectral.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/umap
copying umap/distances.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/umap
copying umap/__init__.py -> /<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build/umap
    debian/rules override_dh_auto_test
make[1]: Entering directory '/<<PKGBUILDDIR>>'
dh_auto_test -- --system=custom --test-args="PYTHONPATH={build_dir} {interpreter} -m pytest"
I: pybuild base:311: PYTHONPATH=/<<PKGBUILDDIR>>/.pybuild/cpython3_3.11/build python3.11 -m pytest
============================= test session starts ==============================
platform linux -- Python 3.11.9, pytest-8.1.2, pluggy-1.5.0
rootdir: /<<PKGBUILDDIR>>
collected 209 items

umap/tests/test_aligned_umap.py ....s                                    [  2%]
umap/tests/test_chunked_parallel_spatial_metric.py sssssssssssssssssssss [ 12%]
sssssssssssssssssssss                                                    [ 22%]
umap/tests/test_composite_models.py .s..                                 [ 24%]
umap/tests/test_data_input.py .                                          [ 24%]
umap/tests/test_densmap.py .s..                                          [ 26%]
umap/tests/test_parametric_umap.py sssssss                               [ 30%]
umap/tests/test_plot.py s                                                [ 30%]
umap/tests/test_spectral.py ..                                           [ 31%]
umap/tests/test_umap_get_feature_names_out.py ....                       [ 33%]
umap/tests/test_umap_metrics.py ............s.................s......... [ 52%]
..                                                                       [ 53%]
umap/tests/test_umap_nn.py ..sssssss..                                   [ 58%]
umap/tests/test_umap_on_iris.py ............                             [ 64%]
umap/tests/test_umap_ops.py ...FFFFFFFF.....F..                          [ 73%]
umap/tests/test_umap_repeated_data.py .........                          [ 77%]
umap/tests/test_umap_trustworthiness.py ..........                       [ 82%]
umap/tests/test_umap_validation_params.py .............................. [ 97%]
......                                                                   [100%]

=================================== FAILURES ===================================


umap/tests/test_umap_ops.py:119:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = WarningsChecker(record=True), expected_warning = None, match_expr = None

     def __init__(
         self,
         expected_warning: Union[Type[Warning], Tuple[Type[Warning], ...]] = Warning,
         match_expr: Optional[Union[str, Pattern[str]]] = None,
         *,
         _ispytest: bool = False,
     ) -> None:
         check_ispytest(_ispytest)
         super().__init__(_ispytest=True)

         msg = "exceptions must be derived from Warning, not %s"
         if isinstance(expected_warning, tuple):
             for exc in expected_warning:
                 if not issubclass(exc, Warning):
                     raise TypeError(msg % type(exc))
             expected_warning_tup = expected_warning
         elif isinstance(expected_warning, type) and issubclass(
             expected_warning, Warning
         ):
             expected_warning_tup = (expected_warning,)
         else:
/usr/lib/python3/dist-packages/_pytest/recwarn.py:285: TypeError

umap/tests/test_umap_ops.py:119:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = WarningsChecker(record=True), expected_warning = None, match_expr = None

     def __init__(
         self,
         expected_warning: Union[Type[Warning], Tuple[Type[Warning], ...]] = Warning,
         match_expr: Optional[Union[str, Pattern[str]]] = None,
         *,
         _ispytest: bool = False,
     ) -> None:
         check_ispytest(_ispytest)
         super().__init__(_ispytest=True)

         msg = "exceptions must be derived from Warning, not %s"
         if isinstance(expected_warning, tuple):
             for exc in expected_warning:
                 if not issubclass(exc, Warning):
                     raise TypeError(msg % type(exc))
             expected_warning_tup = expected_warning
         elif isinstance(expected_warning, type) and issubclass(
             expected_warning, Warning
         ):
             expected_warning_tup = (expected_warning,)
         else:
/usr/lib/python3/dist-packages/_pytest/recwarn.py:285: TypeError

umap/tests/test_umap_ops.py:119:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = WarningsChecker(record=True), expected_warning = None, match_expr = None

     def __init__(
         self,
         expected_warning: Union[Type[Warning], Tuple[Type[Warning], ...]] = Warning,
         match_expr: Optional[Union[str, Pattern[str]]] = None,
         *,
         _ispytest: bool = False,
     ) -> None:
         check_ispytest(_ispytest)
         super().__init__(_ispytest=True)

         msg = "exceptions must be derived from Warning, not %s"
         if isinstance(expected_warning, tuple):
             for exc in expected_warning:
                 if not issubclass(exc, Warning):
                     raise TypeError(msg % type(exc))
             expected_warning_tup = expected_warning
         elif isinstance(expected_warning, type) and issubclass(
             expected_warning, Warning
         ):
             expected_warning_tup = (expected_warning,)
         else:
/usr/lib/python3/dist-packages/_pytest/recwarn.py:285: TypeError

umap/tests/test_umap_ops.py:119:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = WarningsChecker(record=True), expected_warning = None, match_expr = None

     def __init__(
         self,
         expected_warning: Union[Type[Warning], Tuple[Type[Warning], ...]] = Warning,
         match_expr: Optional[Union[str, Pattern[str]]] = None,
         *,
         _ispytest: bool = False,
     ) -> None:
         check_ispytest(_ispytest)
         super().__init__(_ispytest=True)

         msg = "exceptions must be derived from Warning, not %s"
         if isinstance(expected_warning, tuple):
             for exc in expected_warning:
                 if not issubclass(exc, Warning):
                     raise TypeError(msg % type(exc))
             expected_warning_tup = expected_warning
         elif isinstance(expected_warning, type) and issubclass(
             expected_warning, Warning
         ):
             expected_warning_tup = (expected_warning,)
         else:
/usr/lib/python3/dist-packages/_pytest/recwarn.py:285: TypeError

umap/tests/test_umap_ops.py:119:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = WarningsChecker(record=True), expected_warning = None, match_expr = None

     def __init__(
         self,
         expected_warning: Union[Type[Warning], Tuple[Type[Warning], ...]] = Warning,
         match_expr: Optional[Union[str, Pattern[str]]] = None,
         *,
         _ispytest: bool = False,
     ) -> None:
         check_ispytest(_ispytest)
         super().__init__(_ispytest=True)

         msg = "exceptions must be derived from Warning, not %s"
         if isinstance(expected_warning, tuple):
             for exc in expected_warning:
                 if not issubclass(exc, Warning):
                     raise TypeError(msg % type(exc))
             expected_warning_tup = expected_warning
         elif isinstance(expected_warning, type) and issubclass(
             expected_warning, Warning
         ):
             expected_warning_tup = (expected_warning,)
         else:
/usr/lib/python3/dist-packages/_pytest/recwarn.py:285: TypeError

umap/tests/test_umap_ops.py:119:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = WarningsChecker(record=True), expected_warning = None, match_expr = None

     def __init__(
         self,
         expected_warning: Union[Type[Warning], Tuple[Type[Warning], ...]] = Warning,
         match_expr: Optional[Union[str, Pattern[str]]] = None,
         *,
         _ispytest: bool = False,
     ) -> None:
         check_ispytest(_ispytest)
         super().__init__(_ispytest=True)

         msg = "exceptions must be derived from Warning, not %s"
         if isinstance(expected_warning, tuple):
             for exc in expected_warning:
                 if not issubclass(exc, Warning):
                     raise TypeError(msg % type(exc))
             expected_warning_tup = expected_warning
         elif isinstance(expected_warning, type) and issubclass(
             expected_warning, Warning
         ):
             expected_warning_tup = (expected_warning,)
         else:
/usr/lib/python3/dist-packages/_pytest/recwarn.py:285: TypeError

umap/tests/test_umap_ops.py:119:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = WarningsChecker(record=True), expected_warning = None, match_expr = None

     def __init__(
         self,
         expected_warning: Union[Type[Warning], Tuple[Type[Warning], ...]] = Warning,
         match_expr: Optional[Union[str, Pattern[str]]] = None,
         *,
         _ispytest: bool = False,
     ) -> None:
         check_ispytest(_ispytest)
         super().__init__(_ispytest=True)

         msg = "exceptions must be derived from Warning, not %s"
         if isinstance(expected_warning, tuple):
             for exc in expected_warning:
                 if not issubclass(exc, Warning):
                     raise TypeError(msg % type(exc))
             expected_warning_tup = expected_warning
         elif isinstance(expected_warning, type) and issubclass(
             expected_warning, Warning
         ):
             expected_warning_tup = (expected_warning,)
         else:
/usr/lib/python3/dist-packages/_pytest/recwarn.py:285: TypeError

umap/tests/test_umap_ops.py:119:
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = WarningsChecker(record=True), expected_warning = None, match_expr = None

     def __init__(
         self,
         expected_warning: Union[Type[Warning], Tuple[Type[Warning], ...]] = Warning,
         match_expr: Optional[Union[str, Pattern[str]]] = None,
         *,
         _ispytest: bool = False,
     ) -> None:
         check_ispytest(_ispytest)
         super().__init__(_ispytest=True)

         msg = "exceptions must be derived from Warning, not %s"
         if isinstance(expected_warning, tuple):
             for exc in expected_warning:
                 if not issubclass(exc, Warning):
                     raise TypeError(msg % type(exc))
             expected_warning_tup = expected_warning
         elif isinstance(expected_warning, type) and issubclass(
             expected_warning, Warning
         ):
             expected_warning_tup = (expected_warning,)
         else:
/usr/lib/python3/dist-packages/_pytest/recwarn.py:285: TypeError
E       assert 17.72839 < 3.0

umap/tests/test_umap_ops.py:262: AssertionError
=============================== warnings summary ===============================
umap/__init__.py:36
   /<<PKGBUILDDIR>>/umap/__init__.py:36: DeprecationWarning: pkg_resources is deprecated as an API. See https://setuptools.pypa.io/en/latest/pkg_resources.html
     import pkg_resources

umap/tests/test_chunked_parallel_spatial_metric.py:234
   /<<PKGBUILDDIR>>/umap/tests/test_chunked_parallel_spatial_metric.py:234: PytestUnknownMarkWarning: Unknown pytest.mark.benchmark - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
     @pytest.mark.benchmark(

umap/tests/test_chunked_parallel_spatial_metric.py:258
   /<<PKGBUILDDIR>>/umap/tests/test_chunked_parallel_spatial_metric.py:258: PytestUnknownMarkWarning: Unknown pytest.mark.benchmark - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
     @pytest.mark.benchmark(

umap/tests/test_chunked_parallel_spatial_metric.py:288
   /<<PKGBUILDDIR>>/umap/tests/test_chunked_parallel_spatial_metric.py:288: PytestUnknownMarkWarning: Unknown pytest.mark.benchmark - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
     @pytest.mark.benchmark(

umap/tests/test_chunked_parallel_spatial_metric.py:312
   /<<PKGBUILDDIR>>/umap/tests/test_chunked_parallel_spatial_metric.py:312: PytestUnknownMarkWarning: Unknown pytest.mark.benchmark - is this a typo?  You can register custom marks to avoid this warning - for details, see https://docs.pytest.org/en/stable/how-to/mark.html
     @pytest.mark.benchmark(

umap/plot.py:20
   /<<PKGBUILDDIR>>/umap/plot.py:20: UserWarning: The umap.plot package requires extra plotting libraries to be installed.
       You can install these via pip using

       pip install umap-learn[plot]

       or via conda using

        conda install pandas matplotlib datashader bokeh holoviews colorcet scikit-image

     warn(

umap/tests/test_aligned_umap.py::test_aligned_update
   /<<PKGBUILDDIR>>/umap/aligned_umap.py:195: NumbaTypeSafetyWarning: unsafe cast from int64 to int32. Precision may be lost.
     if i in relation_dict:

umap/tests/test_composite_models.py: 7 warnings
umap/tests/test_densmap.py: 3 warnings
umap/tests/test_umap_on_iris.py: 8 warnings
umap/tests/test_umap_ops.py: 2 warnings
umap/tests/test_umap_trustworthiness.py: 9 warnings
   /<<PKGBUILDDIR>>/umap/umap_.py:1943: UserWarning: n_jobs value -1 overridden to 1 by setting random_state. Use no seed for parallelism.
     warn(f"n_jobs value {self.n_jobs} overridden to 1 by setting random_state. Use no seed for parallelism.")

umap/tests/test_umap_get_feature_names_out.py::test_get_feature_names_out_featureunion
umap/tests/test_umap_get_feature_names_out.py::test_get_feature_names_out_featureunion
umap/tests/test_umap_repeated_data.py::test_repeated_points_large_n
umap/tests/test_umap_validation_params.py::test_umap_too_many_neighbors_warns
umap/tests/test_umap_validation_params.py::test_umap_inverse_transform_fails_expectedly
   /<<PKGBUILDDIR>>/umap/umap_.py:2433: UserWarning: n_neighbors is larger than the dataset size; truncating to X.shape[0] - 1
     warn(

umap/tests/test_umap_metrics.py::test_hellinger
   /<<PKGBUILDDIR>>/umap/tests/test_umap_metrics.py:413: RuntimeWarning: invalid value encountered in sqrt
     dist_matrix = np.sqrt(dist_matrix)

umap/tests/test_umap_on_iris.py::test_precomputed_transform_on_iris
umap/tests/test_umap_on_iris.py::test_precomputed_sparse_transform_on_iris
umap/tests/test_umap_ops.py::test_multi_component_layout_precomputed
umap/tests/test_umap_ops.py::test_disconnected_data_precomputed[True-1]
umap/tests/test_umap_ops.py::test_disconnected_data_precomputed[False-1]
umap/tests/test_umap_trustworthiness.py::test_sparse_precomputed_metric_umap_trustworthiness
umap/tests/test_umap_validation_params.py::test_umap_update_bad_params
   /<<PKGBUILDDIR>>/umap/umap_.py:1857: UserWarning: using precomputed metric; inverse_transform will be unavailable
     warn("using precomputed metric; inverse_transform will be unavailable")

umap/tests/test_umap_on_iris.py::test_precomputed_transform_on_iris
umap/tests/test_umap_on_iris.py::test_precomputed_sparse_transform_on_iris
   /<<PKGBUILDDIR>>/umap/umap_.py:2959: UserWarning: Transforming new data with precomputed metric. We are assuming the input data is a matrix of distances from the new points to the points in the training set. If the input matrix is sparse, it should contain distances from the new points to their nearest neighbours or approximate nearest neighbours in the training set.
     warn(

umap/tests/test_umap_ops.py::test_multi_component_layout
umap/tests/test_umap_ops.py::test_multi_component_layout_precomputed
   /usr/lib/python3/dist-packages/sklearn/manifold/_spectral_embedding.py:301: UserWarning: Graph is not fully connected, spectral embedding may not work as expected.
     warnings.warn(

umap/tests/test_umap_ops.py::test_disconnected_data_precomputed[True-1]
   /<<PKGBUILDDIR>>/umap/umap_.py:126: UserWarning: A few of your vertices were disconnected from the manifold.  This shouldn't cause problems.
   Disconnection_distance = 1 has removed 3 edges.
   It has only fully disconnected 1 vertices.
   Use umap.utils.disconnected_vertices() to identify them.
     warn(

umap/tests/test_umap_ops.py::test_disconnected_data_precomputed[False-1]
   /<<PKGBUILDDIR>>/umap/umap_.py:126: UserWarning: A few of your vertices were disconnected from the manifold.  This shouldn't cause problems.
   Disconnection_distance = 1 has removed 32 edges.
   It has only fully disconnected 1 vertices.
   Use umap.utils.disconnected_vertices() to identify them.
     warn(

umap/tests/test_umap_validation_params.py::test_umap_inverse_transform_fails_expectedly
   /<<PKGBUILDDIR>>/umap/umap_.py:1879: UserWarning: gradient function is not yet implemented for dice distance metric; inverse_transform will be unavailable
     warn(

#1071816#8
Date:
2026-08-19 07:14:48 UTC
From:
To:
Hello,

Bug #1071816 in umap-learn reported by you has been fixed in the
Git repository and is awaiting an upload. You can see the commit
message below and you can check the diff of the fix at:

https://salsa.debian.org/med-team/umap-learn/-/commit/f8138067e865aa7699058d3416ab7146f2e2c81f
------------------------------------------------------------------------
new upstream version fixes FTBFS. Closes: #1071816
------------------------------------------------------------------------

(this message was generated automatically)
-- 
Greetings

https://bugs.debian.org/1071816

#1071816#15
Date:
2026-08-19 07:19:06 UTC
From:
To:
We believe that the bug you reported is fixed in the latest version of
umap-learn, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to 1071816@bugs.debian.org,
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Michael R. Crusoe <crusoe@debian.org> (supplier of updated umap-learn package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing ftpmaster@ftp-master.debian.org)
Format: 1.8
Date: Wed, 19 Aug 2026 09:02:54 +0300
Source: umap-learn
Architecture: source
Version: 0.5.12+dfsg-1
Distribution: unstable
Urgency: medium
Maintainer: Debian Med Packaging Team <debian-med-packaging@lists.alioth.debian.org>
Changed-By: Michael R. Crusoe <crusoe@debian.org>
Closes: 1058489 1071816 1112612
Changes:
 umap-learn (0.5.12+dfsg-1) unstable; urgency=medium
 .
   * Team upload.
   * New upstream version. Closes: #1071816, #1112612, #1058489
   * Standards-Version: 4.7.4 (routine-update)
   * debputy lint --auto-fix (routine-update)
   * Drop patch older_sklearn, as we are up to version 1.9.
   * d/patches: fix metadata
   * Switch to using pybuild-plugin-pyproject.
   * d/tests/control: depend on ca-certificates to enable fetching the
     openml dataset.
   * d/control: also run the unit tests as autopkgtests.
   * Rename d/tests/run-unit-test to run-examples, as that is more
     accurate.
   * Drop 'Rules-Requires-Root: no' from d/control (routine-update)
   * Added patch to install the tests.
   * d/control: include python3-pytest-benchmark to silence warnings.
Checksums-Sha1:
 ce7a3b1576cf207bac45c3981b1657b902656cd8 2483 umap-learn_0.5.12+dfsg-1.dsc
 80c669c20a6dcf1997fe4795a6613ff20051a324 1470252 umap-learn_0.5.12+dfsg.orig.tar.xz
 0a36203e2a4543b41217f8e950a61c4d473cba8c 7020 umap-learn_0.5.12+dfsg-1.debian.tar.xz
 00477d8aec761441f73151f062f24352490bbdee 10090 umap-learn_0.5.12+dfsg-1_source.buildinfo
Checksums-Sha256:
 4733cb3c28c5f742deaa0c221e7a5bddfa9e481ce2bb5dd52e6d2d540dd0c24e 2483 umap-learn_0.5.12+dfsg-1.dsc
 c38b6ad41db91dd419b0f8157d1998f9fd52cb61d772eefd975d4544009a0532 1470252 umap-learn_0.5.12+dfsg.orig.tar.xz
 7206a379401ce54ce43f72d568ed34feec61d67fb53db968ff0391d6ed4d1488 7020 umap-learn_0.5.12+dfsg-1.debian.tar.xz
 f2380cfe72e8b9a9501da935a43bc0ffc20dd65fc6fea23a55dfe1fc8056918f 10090 umap-learn_0.5.12+dfsg-1_source.buildinfo
Files:
 5ffa156eab7756f64e89c508db69acfe 2483 science optional umap-learn_0.5.12+dfsg-1.dsc
 8a9ecc0fdee07c99e098555b2826e430 1470252 science optional umap-learn_0.5.12+dfsg.orig.tar.xz
 a5498721f6887686aab2c91e39fb186e 7020 science optional umap-learn_0.5.12+dfsg-1.debian.tar.xz
 b4069a240530f2865b69f463d28f79d4 10090 science optional umap-learn_0.5.12+dfsg-1_source.buildinfo
-----BEGIN PGP SIGNATURE-----

iQJGBAEBCgAwFiEEck1gkzcRPHEFUNdHPCZ2P2xn5uIFAmqFUUgSHGNydXNvZUBk
ZWJpYW4ub3JnAAoJEDwmdj9sZ+biX2EQAI73CV2d1ROWDWtlRni8RYnLlWJqHpG/
o89UIMWkVcHg362cnwxia3xnUSJnxccPWAenU0fUQ29nV74mGnLqH+VWBoJZ/rdU
zAIQQEJzmC/W0bn73DOKyfjYK0V5Lt4IGKR+M8rC8Rp90pO5Vor1ISPaqD3KJQfp
ezDJX132CScIM1viCVM+UxSpHSrYn0GPvoUd/A3oV0DGlbtRq5sXijj0dYeSrIpP
dG3nSrUBaVJXeV2K06cOJfizeGTo+akLL+9FioFzAHaazU7uFYP2jD7ooCej5Zjy
HgfytNuaYOA2Z5jUqoM4h9OoSew2SPTSZusswFFS6KJMeUhvIqvRg1tzmIGzChhJ
fGuXW9uEfg0hrwL34O79Uuc7LR7t0/jBlI/adG2VWXD397gmaO2GSZcGEMZ3+1NB
+UWPG4Gn+9K0EJrL/UrCeBgc28CafuOrmUbmDcBbGAzysASRL8RAVBRUX7KnPFIR
oh9zZdHaB/OsVlKelV2raqrBen0tSiuHd5NuiUgnLSSqq70UTqoV36yP7D7IBs2z
t9dGk0ARjdvmRW63/JVSn9OfFb9vRqyaK9k0eTDZVTcVmoJu/BkQDMbgjdu59sIh
tWFb4ZMhvoFP69rHWm3La4ZPMj0VO3UpNKdgzLnhewJbi1hgxvux75jGSserm+x+
jdPOij3AkWm9
=VlRY
-----END PGP SIGNATURE-----