From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id mNmJBIxyBmOA8gAAbAwnHQ (envelope-from ) for ; Wed, 24 Aug 2022 20:48:44 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id yACXBIxyBmNkKAAA9RJhRA (envelope-from ) for ; Wed, 24 Aug 2022 20:48:44 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id B0C6028EB2 for ; Wed, 24 Aug 2022 20:48:43 +0200 (CEST) Received: from localhost ([::1]:37508 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oQvQg-0003D1-EJ for larch@yhetil.org; Wed, 24 Aug 2022 14:48:42 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:44990) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oQvHK-00031O-Rm for bug-guix@gnu.org; Wed, 24 Aug 2022 14:39:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:58459) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oQvHK-0005md-H3 for bug-guix@gnu.org; Wed, 24 Aug 2022 14:39:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1oQvHJ-0005WH-TX for bug-guix@gnu.org; Wed, 24 Aug 2022 14:39:01 -0400 X-Loop: help-debbugs@gnu.org Subject: bug#56322: Ruby packaging issues Resent-From: Maxime Devos Original-Sender: "Debbugs-submit" Resent-CC: bug-guix@gnu.org Resent-Date: Wed, 24 Aug 2022 18:39:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 56322 X-GNU-PR-Package: guix X-GNU-PR-Keywords: To: Remco van 't Veer , 56322@debbugs.gnu.org Received: via spool by 56322-submit@debbugs.gnu.org id=B56322.166136633121200 (code B ref 56322); Wed, 24 Aug 2022 18:39:01 +0000 Received: (at 56322) by debbugs.gnu.org; 24 Aug 2022 18:38:51 +0000 Received: from localhost ([127.0.0.1]:48208 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oQvH8-0005Vs-Os for submit@debbugs.gnu.org; Wed, 24 Aug 2022 14:38:51 -0400 Received: from michel.telenet-ops.be ([195.130.137.88]:54366) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oQvH4-0005Vg-7q for 56322@debbugs.gnu.org; Wed, 24 Aug 2022 14:38:49 -0400 Received: from [IPV6:2a02:1811:8c09:9d00:5dba:d409:33f7:a16] ([IPv6:2a02:1811:8c09:9d00:5dba:d409:33f7:a16]) by michel.telenet-ops.be with bizsmtp id BWek2800120ykKC06WekTL; Wed, 24 Aug 2022 20:38:44 +0200 Message-ID: <171276f3-bcb2-abfc-b9a9-705059f8605f@telenet.be> Date: Wed, 24 Aug 2022 20:38:43 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.12.0 Content-Language: en-US References: <87o7w9ll4x.fsf@jomco.nl> From: Maxime Devos In-Reply-To: <87o7w9ll4x.fsf@jomco.nl> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------vmCToNgeU9NPeJ5YI0wjeAjP" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r22; t=1661366324; bh=eE502qAH3Zrufrq1x3FbZ1zD9cIqQOxWzF1CnrjZgb8=; h=Date:To:References:From:Subject:In-Reply-To; b=GfIAql5QvCxAWGUvZwZUMd439MoQfwzLRi4wZZfe9LnNt05Asz07hlYjI0LZzlF0L 5hbZGjAXEIrlDOc5Ux7/NEcf98jU13JhJ404Y/32cX6qjyrU6v0hNu5LJp+NEentCK V9UZiEcPKAgsIEiFsM7VbaHha4APRlWwB8TLx/zrDQ8cFpLoQm7LGzSt1SR/p0qqKZ tJ/7LMT1yQyYQ6pMpiH6ZBxDEYyKtrSVXKk+d2SzO1fg5Q8Jz5rrt+y1SOowtw88bW 7Lpl9B4ex4pyBndbXDgVkwb73i7i+TkLeXA6GIiMExvbBg/6sanwLDyjpKp1OS5TMB QqlApMY8UG0XA== X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: bug-guix@gnu.org List-Id: Bug reports for GNU Guix List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-guix-bounces+larch=yhetil.org@gnu.org Sender: "bug-Guix" X-Migadu-Flow: FLOW_IN X-Migadu-To: larch@yhetil.org X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1661366923; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:resent-cc:resent-from:resent-sender: resent-message-id:in-reply-to:in-reply-to:references:references: list-id:list-help:list-unsubscribe:list-subscribe:list-post: dkim-signature; bh=XE8TX5kuCuCZQgbcnIhLN6wsrD3t8EbXClzRg4rTmTM=; b=cVcxLoUH1jWbX0AMdwZAIKWLiWzNOOPJCCmYdrb2hnvsxcBscX1/k+q+KvSFYp0Pr3R+cH eoQAgwVOMknDV4zH8b3/pxUTl34l8VNupW4p7JTwLVkg60s4/jjAPG3XfJ6qcyBKo+e/qI nYjOHiPhvBl12ULOEYZSaINcgYPNte5OAw2pVa0j75Jvce4QvxBdYZiHlGy3FxiIhshdIA Nix3Q3US30CGv8kcld8aHR2T1PWWyOcBAYh0F7vA1vM3Yy86G2AK/CR9sj4c0VFqtV87wK 59nhpSv+r1RsCsguFltf8lazNVu9oMLqtPgZ9Idk5g28enRRdjADGR5i5sRmVQ== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1661366923; a=rsa-sha256; cv=none; b=VpzzkrDGZZjdgRkx/ztG6oTYMGp7Tf9DmXMmR9j1NDKk5Q1uEE5QoAkWMfiYa2cmfXGh/0 ethVeAQOuca+1XQqGkkHWwapgFq8fpZsodfEqy2JVHJr4fu3i+MnfGAxjAzpsu7nacZff0 OpKMiLme8Jc3jRGEmMU5XVfC9mKTcHnRylAiFMZY3NJtoSgYwf3KqxOaTsH6H02l+2t/g4 3R/AvnynfJ4nKZzJkRKAXoSN6IlzhPhDoMyPAHwY3uvPp1qjK7T1FIX0vzZVu8j/Nt5R4U sq4sQd5Bnsun0dAoW1U99cw3YEUdczazRYuIj4IGypCPnvXSMRN/yfTH9JDIwg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=telenet.be header.s=r22 header.b=GfIAql5Q; dmarc=fail reason="SPF not aligned (relaxed)" header.from=telenet.be (policy=none); spf=pass (aspmx1.migadu.com: domain of "bug-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="bug-guix-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: 5.29 Authentication-Results: aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=telenet.be header.s=r22 header.b=GfIAql5Q; dmarc=fail reason="SPF not aligned (relaxed)" header.from=telenet.be (policy=none); spf=pass (aspmx1.migadu.com: domain of "bug-guix-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="bug-guix-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: B0C6028EB2 X-Spam-Score: 5.29 X-Migadu-Scanner: scn0.migadu.com X-TUID: hmvO6MqYjkQb This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------vmCToNgeU9NPeJ5YI0wjeAjP Content-Type: multipart/mixed; boundary="------------rWtJCQnEiJc4AhD1ZH0v2HPH"; protected-headers="v1" From: Maxime Devos To: Remco van 't Veer , 56322@debbugs.gnu.org Message-ID: <171276f3-bcb2-abfc-b9a9-705059f8605f@telenet.be> Subject: Re: Ruby packaging issues References: <87o7w9ll4x.fsf@jomco.nl> In-Reply-To: <87o7w9ll4x.fsf@jomco.nl> --------------rWtJCQnEiJc4AhD1ZH0v2HPH Content-Type: multipart/mixed; boundary="------------T7RwzggDwP01Or7TO4bIC0sw" --------------T7RwzggDwP01Or7TO4bIC0sw Content-Type: multipart/alternative; boundary="------------tHKYGoJThaSWGtZcAEU3mhiI" --------------tHKYGoJThaSWGtZcAEU3mhiI Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 DQpPbiAyNC0wOC0yMDIyIDE3OjI0LCBSZW1jbyB2YW4gJ3QgVmVlciB3cm90ZToNCj4gWy4u Ll0NCj4+ICAgICogUnVieSBidW5kbGVzIHpsaWIuDQo+IENhbiB5b3UgcG9pbnQgb3V0IHdo ZXJlIGl0IGlzIGluIHRoZSBzb3VyY2UgdHJlZT8gIExvb2tpbmcgYXQgdGhlDQo+IHNvdXJj ZXMgSSBjYW4gb25seSBmaW5kIGEgKHZlcnkgYmVlZnkpIHdyYXBwZXIgYXJvdW5kIHpsaWIg d2hpY2ggc2VlbXMNCj4gdG8gaW1wbGVtZW50IGFsbCBraW5kcyBvZiB6bGliIHN0dWZmIGJ1 dCBhbHNvIGRlcGVuZHMgb24gdGhlIHpsaWINCj4gbGlicmFyeS4gIEkgZHVubm8gaG93IHRv IGRldGVybWluZSBpZiB0aGlzIGlzIGJ1bmRsaW5nIG9yIG5vdC4NCj4NCj4gICAgaHR0cHM6 Ly9naXRodWIuY29tL3J1YnkvcnVieS9ibG9iL21hc3Rlci9leHQvemxpYi96bGliLmMNCg0K SSBwcm9iYWJseSBjb25mdXNlZCB0aGUgd3JhcHBlciBmb3IgYSBsb2NhbCBjb3B5IG9mIHps aWIsIG5ldmVybWluZC4NCg0KVGhlcmUncyBhIHpsaWItMS4yLjExLW1zd2luLnBhdGNoIHRo b3VnaCwgSSB3b25kZXIgd2hhdCdzIHVwIHdpdGggdGhhdC4NCg0KPj4gICAgKiBSdWJ5IGNv bnRhaW5zIHNvbWUgdGhpbmdzIGdlbmVyYXRlZCBieSBiaXNvbiBvciBzdWNoLg0KPiBJdCBz ZWVtcyB0aGUgZ2VuZXJhdGVkIHBhcnNlLmMgZmlsZSAoZnJvbSBwYXJzZS55KSBpcyBpbmNs dWRlZCBpbiB0aGUNCj4gdGFyYmFsbHMgYXMgYSBzZXJ2aWNlIHRvIHdvcmthcm91bmQgYSBi b290c3RyYXAgcHJvYmxlbTsgZ2VuZXJhdGluZyB0aGUNCj4gcGFyc2VyIHJlcXVpcmVzIHJ1 YnkuICBTZWUgYWxzbzoNCj4NCj4gICAgaHR0cHM6Ly9naXRodWIuY29tL3J1YnkvcnVieS9i bG9iL21hc3Rlci9jb21tb24ubWsjTDkxMA0KPg0KPiBJIGRvbid0IGtub3cgaG93IHRvIGRl YWwgd2l0aCB0aGlzIHByb3Blcmx5LiAgVGhlIG9ubHkgdGhpbmcgSSBjYW4gdGhpbmsNCj4g b2YgaXMgY29tcGlsaW5nIGluIHR3byBwaGFzZXM6IGZpcnN0IHdpdGggdGhlIHN1cHBsaWVk IHBhcnNlLmMgYW5kIGFmdGVyDQo+IHdpdGhvdXQuICBPciB0cnkgaXQgd2l0aCBtcnVieSBh cyBhIG5hdGl2ZS1pbnB1dCBidXQgdGhhdCBzZWVtcyB0bw0KPiByZXF1aXJlIHJ1YnkgdG8g Y29tcGlsZSB0b28uDQoNCldlIGhhdmUgYSBidW5jaCBvZiBvbGQgcnViaWVzIHBhY2thZ2Vk LCBtYXliZSBpdCBjYW4gYmUgZ2VuZXJhdGVkIHdpdGggDQpvbmUgb2YgdGhlIG9sZCB2ZXJz aW9ucz8gVGhvdWdoIHBvc3NpYmx5IHRoZSBvbGQgdmVyc2lvbnMgaGF2ZSB0aGUgc2FtZSAN CnByb2JsZW0sIEkgaGF2ZW4ndCBjaGVja2VkLg0KDQpJZiBub3Q6IGZ1bGx5IHByb3Blcmx5 IGdlbmVyYXRpbmcgaXQgbWlnaHQgbm90IGJlIHBvc3NpYmxlLCBidXQgDQpzb21ldGhpbmcg aW4tYmV0d2VlbiBjb3VsZCBiZSBhbiBvcHRpb246DQoNCiAxLiBGaXJzdCwgdXNlIHRoZSBw cmUtZ2VuZXJhdGVkIHBhcnNlLmMuDQogMi4gT25jZSBydWJ5IGlzIGJ1aWx0LCByZWdlbmVy YXRlIHRoZSBwYXJzZS5jLCBhbmQgdmVyaWZ5IHRoYXQgaXQgaXMNCiAgICB0aGUgc2FtZSBh cyB0aGUgb2xkIHBhcnNlLmMgKGlnbm9yaW5nIHRoZSB0aW1lc3RhbXApDQoNCj4gV2hhdCdz IHRvIGdhaW4gYnkgdGhpcz8NCg0KKDEpIEkgd291bGQgYXNzdW1lIGl0IGlzIG11Y2ggZWFz aWVyIHRvIGhpZGUgbWFsd2FyZSBpbiBhIGdlbmVyYXRlZCBmaWxlIA0KbGlrZSBwYXJzZS5j IHRoYW4gaW4gdGhlIHJlYWwgc291cmNlIGNvZGUgKCopIChJSVJDLCB0aGUgLmMgY29kZSAN CmdlbmVyYXRlZCBieSBiaXNvbiBpcyBtdWNoIGxvbmdlciB0aGFuIHRoZSAueSkuIEJ5IGdl bmVyYXRpbmcgdGhlIA0KcGFyc2UuYywgdGhlIHBvdGVudGlhbCBpc3N1ZSBpcyBzaWRlLXN0 ZXBwZWQ7IGFueSBzZWN1cml0eSByZXZpZXdlcnMgDQp3b3VsZG4ndCBldmVuIGhhdmUgdG8g bG9vayBhdCBwYXJzZS5jIGJlY2F1c2UgdGhlIHByZS1nZW5lcmF0ZWQgcGFyc2UuYyANCmlz bid0IHVzZWQsIGl0J3MgcmVnZW5lcmF0ZWQuDQoNCigyKSBBbHNvOiBnZW5lcmF0b3JzIGxp a2UgQmlzb24gY2FuIGhhdmUgYnVncywgZml4ZWQgaW4gbGF0ZXIgdmVyc2lvbnMuIA0KTm93 IGltYWdpbmUgdGhhdCBCaXNvbiBoYWQsIHNheSwgYSBidWZmZXIgb3ZlcmZsb3cgYnVnLCBh bmQgdGhhdCANCmRpc3RybydzIGp1c3QgdXNlZCB0aGUgcHJlLWdlbmVyYXRlZCBwYXJzZS5j LiBUaGVuIG9uY2UgYSBmaXhlZCB2ZXJzaW9uIA0Kb2YgQmlzb24gY29tZXMgb3V0LCB3ZSB3 b3VsZCBoYXZlIHRvIGNoZWNrIGV2ZXJ5IHBhY2thZ2UgdG8gc2VlIGlmIGl0IA0KaGFzIGEg cHJlLWdlbmVyYXRlZCBwYXJzZXIuIEl0IHdvdWxkIGJlIG11Y2ggbGVzcyBzdHJlc3NmdWwg dG8ganVzdCANCmFsd2F5cyBnZW5lcmF0ZSBwYXJzZXJzIGZyb20gc291cmNlLCB0aGVuIG9u Y2UgdGhlIHZlcnNpb24gb2YgQmlzb24gaW4gDQpHdWl4IGlzIHVwZGF0ZWQgdGhlbiBhbGwg cGFja2FnZXMgYXV0b21hdGljYWxseSBnZXQgdGhlIGJ1ZmZlciBvdmVyZmxvdyBmaXguDQoN CkkgZG9uJ3QgdGhpbmsgbXkgaW4tYmV0d2VlbiBwcm9wb3NhbCBoZWxwcyBtdWNoIHdpdGgg KDEpIGluIGNhc2Ugb2YgYSANCmNvbXBldGVudCBhdHRhY2tlciAodGhvdWdoIGl0IGNvdWxk IHN0b3Agc29tZSBpbnN1ZmZpY2llbnRseSANCnNvcGhpc3RpY2F0ZWQgYXR0YWNrcyB3aGVy ZSB0aGUgcGFyc2UuYyBtYWx3YXJlIGRvZXNuJ3QgdHJ5IHRvIHN1YnZlcnQgDQp0aGUgbGF0 ZXIgY2hlY2spLCBidXQgaXQgc3RpbGwgaGVscHMgd2l0aCAoMikgLS0gaXQgYXQgbGVhc3Qg ZGV0ZWN0cyBpZiANCnJ1YnkgdXNlZCBhbiBvbGQgYmlzb24gKGFuZCBoZW5jZSB0aGF0IGEg cGF0Y2ggbWlnaHQgYmUgaW4gb3JkZXIpDQoNCkdyZWV0aW5ncywNCk1heGltZS4NCg0KKCop IENhdmVhdDogSSBkb24ndCBoYXZlIGFueSBzdGF0aXN0aWNzIG9uIHRoaXMuDQoNCg== --------------tHKYGoJThaSWGtZcAEU3mhiI Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable


On 24-08-2022 17:24, Remco van 't Veer= wrote:
[...]
  * Ruby bundles zlib.
Can you point out where it is in the source tree?  Looking at the
sources I can only find a (very beefy) wrapper around zlib which seems
to implement all kinds of zlib stuff but also depends on the zlib
library.  I dunno how to determine if this is bundling or not.

  https://github.com/ruby/ruby/blob/master/ex=
t/zlib/zlib.c

I probably confused the wrapper for a local copy of zlib, nevermind.

There's a zlib-1.2.11-mswin.patch though, I wonder what's up with that.

  * Ruby contains some thi=
ngs generated by bison or such.
It seems the generated parse.c file (from parse.y) is included in the
tarballs as a service to workaround a bootstrap problem; generating the
parser requires ruby.  See also:

  https://github.com/ruby/ruby/blob/master/com=
mon.mk#L910

I don't know how to deal with this properly.  The only thing I can think
of is compiling in two phases: first with the supplied parse.c and after
without.  Or try it with mruby as a native-input but that seems to
require ruby to compile too.

We have a bunch of old rubies packaged, maybe it can be generated with one of the old versions? Though possibly the old versions have the same problem, I haven't checked.

If not: fully properly generating it might not be possible, but something in-between could be an option:

  1. First, use the pre-generated parse.c.
  2. Once ruby is built, regenerate the parse.c, and verify that it is the same as the old parse.c (ignoring the timestamp)
What's to gain by this?
    

(1) I would assume it is much easier to hide malware in a generated file like parse.c than in the real source code (*) (IIRC, the .c code generated by bison is much longer than the .y). By generating the parse.c, the potential issue is side-stepped; any security reviewers wouldn't even have to look at parse.c because the pre-generated parse.c isn't used, it's regenerated.
=

(2) Also: generators like Bison can have bugs, fixed in later versions. Now imagine that Bison had, say, a buffer overflow bug, and that distro's just used the pre-generated parse.c. Then once a fixed version of Bison comes out, we would have to check every package to see if it has a pre-generated parser. It would be much less stressful to just always generate parsers from source, then once the version of Bison in Guix is updated then all packages automatically get the buffer overflow fix.

I don't think my in-between proposal helps much with (1) in case of a competent attacker (though it could stop some insufficiently sophisticated attacks where the parse.c malware doesn't try to subvert the later check), but it still helps with (2) -- it at least detects if ruby used an old bison (and hence that a patch might be in order)

Greetings,
Maxime.

(*) Caveat: I don't have any statistics on this.

--------------tHKYGoJThaSWGtZcAEU3mhiI-- --------------T7RwzggDwP01Or7TO4bIC0sw Content-Type: application/pgp-keys; name="OpenPGP_0x49E3EE22191725EE.asc" Content-Disposition: attachment; filename="OpenPGP_0x49E3EE22191725EE.asc" Content-Description: OpenPGP public key Content-Transfer-Encoding: quoted-printable -----BEGIN PGP PUBLIC KEY BLOCK----- xjMEX4ch6BYJKwYBBAHaRw8BAQdANPb/d6MrGnGi5HyvODCkBUJPRjiFQcRU5V+m xvMaAa/NL01heGltZSBEZXZvcyA8bWF4aW1lLmRldm9zQHN0dWRlbnQua3VsZXV2 ZW4uYmU+wpAEExYIADgWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCX4ch6AIbAwUL CQgHAwUVCgkICwUWAgMBAAIeAQIXgAAKCRBJ4+4iGRcl7japAQC3opZ2KGWzWmRc /gIWSu0AAcfMwyinFEEPa/QhUt2CogD/e2RdF4CYAgaRHJJmZ9WU7piKbLZ7llB4 LzgezVDHggzNJU1heGltZSBEZXZvcyA8bWF4aW1lZGV2b3NAdGVsZW5ldC5iZT7C kAQTFggAOBYhBMHzPuIMUo/bfdcBH0nj7iIZFyXuBQJf56ycAhsDBQsJCAcDBRUK CQgLBRYCAwEAAh4BAheAAAoJEEnj7iIZFyXujpQBAKV1SwDDl4f24rXciDlB9L8W ycZt30CgbewMSRQk4mvbAP9dFMbVVixYBd6C8cfhR+NsOBGiOJnQABlUmgNuqGFJ Dc44BF+HIegSCisGAQQBl1UBBQEBB0BOlzIWiJzgobMF6/cqwLaLk7jIcFSZ++c0 k9cCNT6YXwMBCAfCeAQYFggAIBYhBMHzPuIMUo/bfdcBH0nj7iIZFyXuBQJfhyHo AhsMAAoJEEnj7iIZFyXuMr0BAJc8cl5PGvVmVuSQVKjleNl4DK1/XAaPAYPe34AE fZJPAP9IqLCQhH/FeJanHqBP8gNdGNI2qn8RnnLVfRJgUjZ1BA=3D=3D =3DOVqp -----END PGP PUBLIC KEY BLOCK----- --------------T7RwzggDwP01Or7TO4bIC0sw-- --------------rWtJCQnEiJc4AhD1ZH0v2HPH-- --------------vmCToNgeU9NPeJ5YI0wjeAjP Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature" -----BEGIN PGP SIGNATURE----- wnsEABYIACMWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYwZwMwUDAAAAAAAKCRBJ4+4iGRcl7rKs AQCSXs+4lId0UGMVOhOgks1B2r3JG7NU+LabUtygGV3vRgD/VuCPEKNDcZxBLYsln9Y8kJuBVYYe TJCve3yY1yBEYQo= =Ko4M -----END PGP SIGNATURE----- --------------vmCToNgeU9NPeJ5YI0wjeAjP--