• Re: MetaCPAN vs. uscan

    From Xavier@21:1/5 to All on Thu Jul 10 23:40:01 2025
    ------0LJ696WDRL04RTIYJRUHHL1J6RNDV4
    Content-Type: text/plain;
    charset=utf-8
    Content-Transfer-Encoding: quoted-printable

    Hi,

    I think I can work on the uscan option. Just tell me where to find the example.

    Nb: I'll be in Brest on Tuesday

    Best regards,
    Xavier


    Le 10 juillet 2025 23:21:43 GMT+02:00, gregor herrmann <[email protected]> a écrit :
    Since a couple of days, MetaCPAN changed their ways of fighting AI scrapers, according to [0] with some service called "signalsciences". Which, according to [1] works fine, except that it means that all requests from the commandline / programmatically /
    with a non-javascript-capable browser don't work anymore. [2] This includes uscan(1). [3]

    So this means that we won't do any updates of Debian packages representing CPAN distributions anymore.

    As for potential fixes/workarounds:
    - Setting a different User-Agent doesn't change anything.
    - Bas found a way to change debian/watch to use the MetaCPAN API, cf. [4]. In my POV, that's both technically brilliant and aesthetically difficult :)
    In general I think that updating ~5000 d/watch files (and some tools) is not an attractive option …
    - Hacking uscan to mangle metacpan.org URLs (or to work around the javascript requirement from signalsciences in general) might be doable but that would have to go into stable and whatever as well.
    - Using a redirector for uscan might work but probably also needs updating all d/watch files.

    I guess talking to the MetaCPAN folks would be a reasonable next step. Is there anybody, maybe wih connections to them, willing to do this? I admit that I don't have the energy to put another task on my TODO list.

    Or maybe someone else has other ideas …

    Cheers,
    gregor


    [0] https://github.com/metacpan/metacpan-web/commit/212a28303f761c181a4fcd94d8b17e70650ac1c2 [1] https://blogs.perl.org/users/dean/2025/07/metacpan-running-really-well-thanks.html
    [2] try
    wget -O- https://metacpan.org/release/ack
    curl https://metacpan.org/release/ack
    GET https://metacpan.org/release/ack
    [3] uscan --report -vvv
    in a soure package directory
    [4] https://salsa.debian.org/perl-team/modules/packages/libpdl-vectorvalued-perl/-/commit/fc92473
    --
    .''`. https://info.comodo.priv.at -- Debian Developer https://www.debian.org : :' : OpenPGP fingerprint D1E1 316E 93A7 60A8 104D 85FA BB3A 6801 8649 AA06 `. `' Member VIBE!AT & SPI Inc. -- Supporter Free Software Foundation Europe
    `-
    ------0LJ696WDRL04RTIYJRUHHL1J6RNDV4
    Content-Type: text/html;
    charset=utf-8
    Content-Transfer-Encoding: quoted-printable

    <html><head></head><body><div dir="auto">Hi,<br><br>I think I can work on the uscan option. Just tell me where to find the example.<br><br>Nb: I'll be in Brest on Tuesday <br><br>Best regards, <br>Xavier<br></div><br><br><div class="gmail_quote"><div dir=
    "auto">Le 10 juillet 2025 23:21:43 GMT+02:00, gregor herrmann &lt;[email protected]&gt; a écrit :</div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
    <pre class="k9mail"><div dir="auto">Since a couple of days, MetaCPAN changed their ways of fighting AI scrapers, according to [0] with some service called "signalsciences". Which, according to [1] works fine, except that it means that all requests from
    the commandline / programmatically / with a non-javascript-capable browser don't work anymore. [2] This includes uscan(1). [3]<br><br>So this means that we won't do any updates of Debian packages representing CPAN distributions anymore.<br><br>As for
    potential fixes/workarounds:<br>- Setting a different User-Agent doesn't change anything.<br>- Bas found a way to change debian/watch to use the MetaCPAN API, cf. [4]. In my POV, that's both technically brilliant and aesthetically difficult :)<br>
    In general I think that updating ~5000 d/watch files (and some tools) is not an attractive option …<br>- Hacking uscan to mangle metacpan.org URLs (or to work around the javascript requirement from signalsciences in general) might be doable but
    that would have to go into stable and whatever as well.<br>- Using a redirector for uscan might work but probably also needs updating all d/watch files.<br><br>I guess talking to the MetaCPAN folks would be a reasonable next step. Is there anybody,
    maybe wih connections to them, willing to do this? I admit that I don't have the energy to put another task on my TODO list.<br><br>Or maybe someone else has other ideas …<br><br>Cheers,<br>gregor<br><br><br>[0] <a href="https://github.com/metacpan/
    metacpan-web/commit/212a28303f761c181a4fcd94d8b17e70650ac1c2">https://github.com/metacpan/metacpan-web/commit/212a28303f761c181a4fcd94d8b17e70650ac1c2</a> [1] <a href="https://blogs.perl.org/users/dean/2025/07/metacpan-running-really-well-thanks.html">
    https://blogs.perl.org/users/dean/2025/07/metacpan-running-really-well-thanks.html</a><br>[2] try<br> wget -O- <a href="https://metacpan.org/release/ack">https://metacpan.org/release/ack</a><br> curl <a href="https://metacpan.org/release/ack">https:
    //metacpan.org/release/ack</a><br> GET <a href="https://metacpan.org/release/ack">https://metacpan.org/release/ack</a><br>[3] uscan --report -vvv<br> in a soure package directory<br>[4] <a href="https://salsa.debian.org/perl-team/modules/packages/
    libpdl-vectorvalued-perl/-/commit/fc92473">https://salsa.debian.org/perl-team/modules/packages/libpdl-vectorvalued-perl/-/commit/fc92473</a><br></div></pre></blockquote></div></body></html>
    ------0LJ696WDRL04RTIYJRUHHL1J6RNDV4--

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From gregor herrmann@21:1/5 to All on Thu Jul 10 23:30:02 2025
    Since a couple of days, MetaCPAN changed their ways of fighting AI
    scrapers, according to [0] with some service called "signalsciences".
    Which, according to [1] works fine, except that it means that all
    requests from the commandline / programmatically / with a non-javascript-capable browser don't work anymore. [2] This includes
    uscan(1). [3]

    So this means that we won't do any updates of Debian packages
    representing CPAN distributions anymore.

    As for potential fixes/workarounds:
    - Setting a different User-Agent doesn't change anything.
    - Bas found a way to change debian/watch to use the MetaCPAN API, cf.
    [4]. In my POV, that's both technically brilliant and aesthetically
    difficult :)
    In general I think that updating ~5000 d/watch files (and some
    tools) is not an attractive option …
    - Hacking uscan to mangle metacpan.org URLs (or to work around the
    javascript requirement from signalsciences in general) might be
    doable but that would have to go into stable and whatever as well.
    - Using a redirector for uscan might work but probably also needs
    updating all d/watch files.

    I guess talking to the MetaCPAN folks would be a reasonable next
    step. Is there anybody, maybe wih connections to them, willing to do
    this? I admit that I don't have the energy to put another task on my
    TODO list.

    Or maybe someone else has other ideas …

    Cheers,
    gregor


    [0] https://github.com/metacpan/metacpan-web/commit/212a28303f761c181a4fcd94d8b17e70650ac1c2
    [1] https://blogs.perl.org/users/dean/2025/07/metacpan-running-really-well-thanks.html
    [2] try
    wget -O- https://metacpan.org/release/ack
    curl https://metacpan.org/release/ack
    GET https://metacpan.org/release/ack
    [3] uscan --report -vvv
    in a soure package directory
    [4] https://salsa.debian.org/perl-team/modules/packages/libpdl-vectorvalued-perl/-/commit/fc92473
    --
    .''`. https://info.comodo.priv.at -- Debian Developer https://www.debian.org
    : :' : OpenPGP fingerprint D1E1 316E 93A7 60A8 104D 85FA BB3A 6801 8649 AA06
    `. `' Member VIBE!AT & SPI Inc. -- Supporter Free Software Foundation Europe
    `-

    -----BEGIN PGP SIGNATURE-----

    iQKTBAEBCgB9FiEE0eExbpOnYKgQTYX6uzpoAYZJqgYFAmhwLuxfFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEQx RTEzMTZFOTNBNzYwQTgxMDREODVGQUJCM0E2ODAxODY0OUFBMDYACgkQuzpoAYZJ qgYdFg/+NNF9xv3qHbekCYxoAVI4BF0hdJNp6Wv1fqwKj6bWmay/btf+tkX8YzhG YeY/87Qhn7ixoYZ0MgdnKMGOZD4ljzGgQr9QIbF9OqUq7E7Uf3NbOZ/Mmveu9kKy 7yuoDmdan9BUtAoDXwB8E88zPrdvQAh2QYTmF6CXmYPVP/1bZqwpNQ+7qrdObn8K Lhv7TsW3J8nlCdPrprq5iyhLa5jJr6TxWYnH0LY/b3gxMygio79kgML/71QsyPjn 33vrpN8H5UIuc8a3INXGhPprl4RgPhunwCvmkjqo2bG7ez+bJ0hR08Yeo1Jidoq7 o4M/jRVGC+VNg+mM1jrrhgbYMoKG/MVy2Dkben8HoyRrmEFDqHbsZK7W1bih/0E1 MvCCZINLfwCZ8JWvITJc5xG5Rf5dTff6OOkZ3d6K66B5d6E95pTqT5hE79AkpKCI FRFY4jX2LD+lEIpZXciwODs+7Y5nd3yzBtk7iLUf1PSH1mj0pJNqmSTOGeFg0jAI
    /C9j
  • From gregor herrmann@21:1/5 to Xavier on Fri Jul 11 11:50:01 2025
    On Thu, 10 Jul 2025 23:38:41 +0200, Xavier wrote:

    I think I can work on the uscan option.

    Cool!

    Just tell me where to find the example.

    You mean an example of a d/watch file where uscan gets the javascript "protection" from MetaCPAN? Well, that happens for all packages with https://metacpan.org in d/watch :)

    (I used `uscan --report -vvv' in the ack package.)

    Nb: I'll be in Brest on Tuesday

    Yay \o/


    Cheers,
    gregor

    --
    .''`. https://info.comodo.priv.at -- Debian Developer https://www.debian.org
    : :' : OpenPGP fingerprint D1E1 316E 93A7 60A8 104D 85FA BB3A 6801 8649 AA06
    `. `' Member VIBE!AT & SPI Inc. -- Supporter Free Software Foundation Europe
    `-

    -----BEGIN PGP SIGNATURE-----

    iQKTBAEBCgB9FiEE0eExbpOnYKgQTYX6uzpoAYZJqgYFAmhw3RVfFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEQx RTEzMTZFOTNBNzYwQTgxMDREODVGQUJCM0E2ODAxODY0OUFBMDYACgkQuzpoAYZJ qgaR1g//VNqfvYXe357UjplaofQnsfXpo6g3t9IprEaD0+YL+CUDvQo5z21D6Jsq MNg5fKfbdDHv9XmjbUS63pjY+NXHdrH3WjeZi7AT8OduaLqmgkqfT1DQFnIMwUg5 Xp+8T80kyBu4eIYdu8dxoSMcOvEvThN4MnZtrfOdCo41TvQP7bZ7MFV6U9r6A0xT xltB4FabkpArbpCfxPfsCoHOQdHUu3ERGU+eJXky/cCkxFwhWL4QUgZ9GnPaX6Fh FUcDhl6lqlvJak3QLeRu0ZiM4DXmom2Jo0cxjAi7rTwCZPiehh6ND6ATqgzojx+Y UxrawdtfiSfE5UGD/ZnEVoKuRbFY7eUhR61wpM8X/iMEiWYjVUWC9Zc9lvQse46D MX+JBc8SCIbj1TZ5OEVWWNANvl76kFfKd12Boxn0KLuQRHjAU+oljzKbzkCA8XPJ be1agecmSEGBsMkkQ2uXibURpafCqVMm5MQNP/vS1EmlSoS8EsopYnhee5oGyLuZ lxCjVsSk7koD1vL4wikqYS0Ibtf9TYJ7Ugsc5GU7ftzJinP7akH0IzGCZLWJM6+A Qbo7ZiawNByFqHyPAlbHibGtgP1C88whGn371hCSBdqt35/5D5L0g5IthRLVh8ha QCuQ9VZOp6nD0GgGLBt7vxwHc8ganrJPseOG5Uk4pudnXCApB1c=
    =LjmL
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From gregor herrmann@21:1/5 to gregor herrmann on Fri Jul 11 13:20:01 2025
    On Fri, 11 Jul 2025 11:44:50 +0200, gregor herrmann wrote:

    On Thu, 10 Jul 2025 23:38:41 +0200, Xavier wrote:
    Just tell me where to find the example.
    You mean an example of a d/watch file where uscan gets the javascript >"protection" from MetaCPAN? Well, that happens for all packages with >https://metacpan.org in d/watch :)

    Or did you mean Bas' rewrite? That's e.g. https://salsa.debian.org/perl-team/modules/packages/libpdl-vectorvalued-perl/-/commit/fc92473


    Cheers,
    gregor

    --
    .''`. https://info.comodo.priv.at -- Debian Developer https://www.debian.org
    : :' : OpenPGP fingerprint D1E1 316E 93A7 60A8 104D 85FA BB3A 6801 8649 AA06
    `. `' Member VIBE!AT & SPI Inc. -- Supporter Free Software Foundation Europe
    `-

    -----BEGIN PGP SIGNATURE-----

    iQKTBAEBCgB9FiEE0eExbpOnYKgQTYX6uzpoAYZJqgYFAmhw8zZfFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEQx RTEzMTZFOTNBNzYwQTgxMDREODVGQUJCM0E2ODAxODY0OUFBMDYACgkQuzpoAYZJ qgbxcQ/+KAv96p6vDA2liPxDluXuoVE7y+knGTtF1eqKAu6zzOIKjeXQLyz5K+2v FF/nyd3+ExsRFuI3oLfJLmMPJB20zotluR0U7AbKDAn3ntvNuxJYODy+Jb1w8PMw H5kBu7QG+PYQyk6LYObFyHaJX5KODr9wq+/wh9UjWSPzjla4bJpQJhT3Ht+cOG98 8blwHTT9bGSVoKCmxk1Kho9Or7uxJb76dLUckbwdQ+m/7WAK1+P8tAce1GfbIKT7 zkUBg5Du52cUabRmyQayIFr79T7SR1QmtSq0ASD8zdLdYgaa6FCYEAyOGxq8AN87 l7kYL/Frjv2L0BoFioVr5ra1S/6nWoE71MN34zJDzJoD4CoMkSoM2cPsf+tJ54Nf uK1K7p4UawHeIOjLISFFd8qABvKKqaFoZ5YuD/vNP7z0nn5ha6/wEoWAeefU7oMs ps5UkGqo3V77n+EgvFSLj0k74Irv7ZZkvVq3tNCRV2y3lcCy790jkkmmotkt1j+s 8R5VO442GzU8mXvANTIotma/CcTqHGslL3bNSbvlP1y+d2txNYZxWwMvYkFODkOW P4pQUdxi2FhNmCRvVT9IZ5qRBY9+gFJ7jF+awrhUOvuOWiGWV0/oaptITqzYAHHR gPXm3HHNBKE2DszORTnJZke+A7sWt/Yx1ILAmgMbRgVByn6Ufok=
    =a0zy
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Yadd@21:1/5 to gregor herrmann on Fri Jul 11 15:30:01 2025
    Oups sorry, here is the whole proposition for the list

    On 7/11/25 14:43, gregor herrmann wrote:
    Should this mail have gone to the list? If yes I can bounce and reply
    there :)
    In any case: Sounds good, thanks!


    Cheers,
    gregor

    On Fri, 11 Jul 2025 13:41:04 +0200, Yadd wrote:

    [...]

    Hacking the JS looks difficult and unstable (such script may change
    often). I think the best is to transform inside uscan

     https://metacpan.org/release/The::Lib   \
       .*/The-Lib-v?@ANY_VERSION@@ARCHIVE_EXT@$

    into

     opts=\
     archmode=plain,\
     downloadurlmangle=s/^.*?\s*"download_url"\s*:\s*"//;s/"\s*$// \
     https://fastapi.metacpan.org/v1/release/The-Lib \
     "download_url"\s*:\s*".*The-Lib-v?@ANY_VERSION@@ARCHIVE_EXT@


    In a previous MR (never reviewed...), I replaced uscan-v4 files by a new version 5 of debian/watch. Then it was possible to define "macros". Example:

     Version: 5
      Template: GitHub
     Author: yadd
     Project: my-project

    Of course, uscan was still able to read version 4 (on-the-fly
    transformation). The adopted format was the common RFC-822 like style.

    Then it could have been very easy to define "Metacpan" macro and then
    adapt such changes automatically.

    Maybe Brest could be a good place to talk about this

    Ref: https://salsa.debian.org/debian/devscripts/-/merge_requests/251

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From gregor herrmann@21:1/5 to Yadd on Fri Jul 11 16:20:01 2025
    On Fri, 11 Jul 2025 15:19:54 +0200, Yadd wrote:

    Hacking the JS looks difficult and unstable (such script may change
    often). I think the best is to transform inside uscan

    �https://metacpan.org/release/The::Lib�� \
    � .*/The-Lib-v?@ANY_VERSION@@ARCHIVE_EXT@$

    s/The::Lib/The-Lib/ # or both, and maybe we find other URLs as well

    into

    opts=\
    archmode=plain,\ >�downloadurlmangle=s/^.*?\s*"download_url"\s*:\s*"//;s/"\s*$// \ >�https://fastapi.metacpan.org/v1/release/The-Lib \ >�"download_url"\s*:\s*".*The-Lib-v?@ANY_VERSION@@ARCHIVE_EXT@

    That would be great, thank you!

    In a previous MR (never reviewed...), I replaced uscan-v4 files by a
    new version 5 of debian/watch. Then it was possible to define
    "macros". Example:

    �Version: 5
    Template: GitHub
    �Author: yadd
    �Project: my-project

    Of course, uscan was still able to read version 4 (on-the-fly >transformation). The adopted format was the common RFC-822 like style.

    Then it could have been very easy to define "Metacpan" macro and then
    adapt such changes automatically.

    Sounds also interesting but more for the middle to long term.

    Maybe Brest could be a good place to talk about this

    Totally.


    Cheers,
    gregor

    --
    .''`. https://info.comodo.priv.at -- Debian Developer https://www.debian.org
    : :' : OpenPGP fingerprint D1E1 316E 93A7 60A8 104D 85FA BB3A 6801 8649 AA06
    `. `' Member VIBE!AT & SPI Inc. -- Supporter Free Software Foundation Europe
    `-

    -----BEGIN PGP SIGNATURE-----

    iQKTBAEBCgB9FiEE0eExbpOnYKgQTYX6uzpoAYZJqgYFAmhxG0BfFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEQx RTEzMTZFOTNBNzYwQTgxMDREODVGQUJCM0E2ODAxODY0OUFBMDYACgkQuzpoAYZJ qgYTOw/8C7Ss1bgo8wIbuZXlF3AGp0WjZ84+hEkax3yqGRdlne1ym6CcbMYCxX4Z 122MbkyiL28GlrPA7cqpSnPe1D6AnOp0raW0IIy0edjmxEqr/rd997OtxufCN3rv S9luFgFP2G8DlK8WZSip5y/3nWwju2O2kVLBC2QHbiU1qEa0CrUnRaX36P/zaHov e8VIzSjHS6o+4bQ3yWXEzjiSR16VICnfTFyLXQpRNf1JRpw72sbSsSwKlO7pGg92 ilsnFVu6bwisHN2g1TIFsvigx6ElnZPso5CjlvFEF07tO4hcHm+qex3KkMzMNcVh 6NtbNhi/DJP1xouwJKzYwaS3BdVJHV2kf7BUgaE9GuoWpaiKitKNbW8xQ3hu1wKh vKHOUSAZgpsDfkSCOKQcOYMu3/Vov6nYR5o+/0MM1HKm6zvGRx2mit9vc6LomVZq yZJle1E+fd/NbiYQE6vAGJGuCIqhvM18NePHC7JF6SUtcZlS5+f3vJ0zYkR49mzn
    G2MI
  • From Philippe Bruhat (BooK)@21:1/5 to gregor herrmann on Sat Jul 12 11:40:02 2025
    On Thu, Jul 10, 2025 at 11:21:43PM +0200, gregor herrmann wrote:

    I guess talking to the MetaCPAN folks would be a reasonable next step. Is there anybody, maybe wih connections to them, willing to do this? I admit that I don't have the energy to put another task on my TODO list.


    I've sent a link to the archived version of your email to Olaf Alders,
    MetaCPAN leader. He said he'd reach out.

    --
    Philippe Bruhat (BooK)

    The greatest monster of them all is ignorance.
    (Moral to Pal'n Drumm Story in Groo #89 (Epic))

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From gregor herrmann@21:1/5 to All on Sat Jul 12 12:00:01 2025
    On Sat, 12 Jul 2025 11:32:03 +0200, Philippe Bruhat (BooK) wrote:

    On Thu, Jul 10, 2025 at 11:21:43PM +0200, gregor herrmann wrote:
    I guess talking to the MetaCPAN folks would be a reasonable next step. Is
    there anybody, maybe wih connections to them, willing to do this? I admit
    that I don't have the energy to put another task on my TODO list.
    I've sent a link to the archived version of your email to Olaf Alders, >MetaCPAN leader. He said he'd reach out.

    Thanks very much!
    Indeed Olaf and Leo contacted Xavier and me, and they unblocked the
    "Debian uscan" User-Agent.

    We still have ideas for improving the requests but for the time
    being, all is fine.


    Cheers,
    gregor

    --
    .''`. https://info.comodo.priv.at -- Debian Developer https://www.debian.org
    : :' : OpenPGP fingerprint D1E1 316E 93A7 60A8 104D 85FA BB3A 6801 8649 AA06
    `. `' Member VIBE!AT & SPI Inc. -- Supporter Free Software Foundation Europe
    `-

    -----BEGIN PGP SIGNATURE-----

    iQKTBAEBCgB9FiEE0eExbpOnYKgQTYX6uzpoAYZJqgYFAmhyMPNfFIAAAAAALgAo aXNzdWVyLWZwckBub3RhdGlvbnMub3BlbnBncC5maWZ0aGhvcnNlbWFuLm5ldEQx RTEzMTZFOTNBNzYwQTgxMDREODVGQUJCM0E2ODAxODY0OUFBMDYACgkQuzpoAYZJ qgY1oBAAjR1pNsQzBUcJ1rTv5Z3sJmMaow6878+UIl2gVOCQss7xq6EHzTGCtLN5 klmi6R1789I+gmB7wM8WdT0oTMyoEBnQIyCLhw/IPv/iZV4X0a6Kba4MgbF3WUXZ 5McEIVHXNfR0+KkV2f9O0SQ3YyEWZ5QkOy1gd1lpRsb1Cd7Y2hQ4lfwh9+Sr8dbe V51b6WeR901slHXEwiZd6WUFsBdpiSDgJwpJu+mxmoF8PyfnkDCtP7y8vb282GT1 t6nEFcfNKcJKHSizCj5WGMaPyFu3Byc5BsOnD7hMxxZaG5UD2b89WSA4F4G9bKjK aCquM2FrGkHgqPrbdr+r+BY2SeshH4xlu12LCh0oiwCrWdnNzwyR+EqvtVV6hZba IA5Xes4wS2gUEeF9Uu+4MoBULPNCC1oBOvxpU0JIodGbHPyfLDVzp+3nQDvtRckR KMidDIOA43x6bjsoDZmROXtLIbeU9CL2HFVaX+H+Qs1u6jSy462+iRj9aDGUIQcs cW21PmvQ1jQh0Q4DJeL5BAILkcrAvjLioltGD/qi99b0mmTEeZwCIex2/EhV+GpP 9AIsfWKG4qyVxfqv23QTy6A3iHHCe8sHV3JAgskTby2HOaxSjIdgIrzPAm9h0fId Y07xAwgJ11ajEySDmytafKkeePjdWByVeXw8QICc8TScDgmiiV0=
    =WQrW
    -----END PGP SIGNATURE-----

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)