Re: [PATCH v1 1/6] tools/migration: introduce PAGE_DATA_LZ4 stream record type

Teddy Astie <[email protected]> Tue, 4 Aug 2026 11:15:02 +0200
Newsgroups gmane.comp.emulators.xen.devel
Message-ID <1785834903.8631fc262581453bbf619ec5b2062170.19fcc0e18f8000e099@vates.tech>
This is an OpenPGP/MIME signed message (RFC 4880 and 3156)
--------------tLoy9wFY8vD4kZQNnvXo5qTt
Content-Type: multipart/mixed; boundary="------------hNQ5LyUMizokDAxHrKBPhLw7";
 protected-headers="v1"
From: Teddy Astie <[email protected]>
To: Marcus Granado <[email protected]>,
 Frediano Ziglio <[email protected]>
Cc: "[email protected]" <[email protected]>,
 Andrew Cooper <[email protected]>,
 Roger Pau Monne <[email protected]>,
 Anthony PERARD <[email protected]>,
 =?UTF-8?Q?Marek_Marczykowski-G=C3=B3recki?= <[email protected]>
Message-ID: <[email protected]>
Subject: Re: [PATCH v1 1/6] tools/migration: introduce PAGE_DATA_LZ4 stream
 record type
References: <[email protected]>
 <[email protected]>
 <1784622046.8631fc262581453bbf619ec5b2062170.19f83c35cd4000edb5@vates.tech>
 <CAHt6W4erBfB+H_0d+2rQ0apz9Jt6ex+WVjEjyPm6EApoHVJgmg@mail.gmail.com>
 <1784755834.8631fc262581453bbf619ec5b2062170.19f8bbccffd000edb5@vates.tech>
 <CAHt6W4cWLfSVoCSgr-YsQb1Mv=VZek0CakTBwK7tx_n9RkeiUg@mail.gmail.com>
 <LV4PR03MB8234F0C54B63FABE4D749FBBEDD52@LV4PR03MB8234.namprd03.prod.outlook.com>
In-Reply-To: <LV4PR03MB8234F0C54B63FABE4D749FBBEDD52@LV4PR03MB8234.namprd03.prod.outlook.com>

--------------hNQ5LyUMizokDAxHrKBPhLw7
Content-Type: multipart/mixed; boundary="------------qL9BXv60iFiNIQQzDu3jqzUh"

--------------qL9BXv60iFiNIQQzDu3jqzUh
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64

TGUgMDMvMDgvMjAyNiDDoCAxOToyMywgTWFyY3VzIEdyYW5hZG8gYSDDqWNyaXTCoDoNCj4g
T24gV2VkLCAyOSBKdWwgMjAyNiBhdCAxMDoxNCwgRnJlZGlhbm8gWmlnbGlvIDxmcmVkZHk3
N0BnbWFpbC5jb20+IHdyb3RlOg0KPj4gQWJvdXQgY29tcHJlc3NpbmcgYWxsIHRvZ2V0aGVy
IGFuZCBjb25zaWRlcmluZyBhbHNvIHRoZSBpc3N1ZSBvZg0KPj4gbWVtb3J5IGNoYW5naW5n
IHdoaWxlIHNlbmRpbmcgSSB3b3VsZCB2b3RlIHRvIGNvcHkgdGhlIG1lbW9yeSBpbiBhDQo+
PiB0ZW1wb3JhcnkgYnVmZmVyIHRvIGF2b2lkIHRoaXMuIE9uZSBhZHZhbnRhZ2UgaXMgdGhh
dCBpdCBzaW1wbGlmaWVkDQo+PiB0aGUgZm9ybWF0LiBUaGUgY3VycmVudCBMWjQgaW1wbGVt
ZW50YXRpb24gc2VlbXMgdG8gY29wZSB3aXRoIGRhdGENCj4+IGNoYW5nZXMgYnV0IG5vdGhp
bmcgZ3VhcmFudGVlcyBpdCBpbiB0aGUgZnV0dXJlLCB0aGUgYnVmZmVyIHlvdSBhcmUNCj4+
IHBhc3NpbmcgaXMgbm90IHN1cHBvc2VkIHRvIGNoYW5nZSB3aGlsZSB5b3UgY29tcHJlc3Mg
aXQuDQo+IA0KPiANCj4gQWdyZWVkLiBGcmVkaWFubyBhbmQgSSBkaXNjdXNzZWQgdGhpcyBm
dXJ0aGVyLCBpbmNsdWRpbmcgc2ltcGxpZmljYXRpb25zIG9uDQo+IHRoZSBjb21wcmVzc2lv
biByZWNvcmQgZm9yIHYyIHNvIHRoYXQgdGhlIHBhZ2UgZGF0YSBjb21wcmVzc2lvbjoNCj4g
KiBjb21wcmVzc2VzIHRoZSB3aG9sZSBiYXRjaCB0b2dldGhlcg0KPiAqIGFuZCB1c2VzIGEg
c3RhZ2VkIGNvcHkgZm9yIGl0IGFzIHlvdSBhbmQgVGVkZHkgc3VnZ2VzdGVkIChzbyB0aGF0
IHdlIGRvDQo+IG5vdCBuZWVkIHRvIHdvcnJ5IGFib3V0IG11dGF0aW5nIGJ1ZmZlcnMgYWZm
ZWN0aW5nIExaNCBvciBvdGhlciBhbGdvcml0aG1zKS4NCj4gDQo+IE9uY2UgdGhlcmUncyBl
eGFjdGx5IG9uZSBjb21wcmVzc2VkIGJsb2IgcGVyIHJlY29yZCwgdGhlcmUncyBubyBuZWVk
IGZvcg0KPiBleHRyYSBmaWVsZHMgdG8gZGVzY3JpYmUgdGhlIGNvbXByZXNzZWQgZGF0YSwg
YXMgdGhlIHVuY29tcHJlc3NlZCBiYXRjaA0KPiBzaXplIGlzIGtub3duIChhbmQgYm91bmRl
ZCBieSBNQVhfQkFUQ0hfU0laRSAqIHBhZ2Vfc2l6ZSksIGFuZCBpdHMNCj4gY29tcHJlc3Nl
ZCBzaXplIGNhbiBiZSBpbmZlcnJlZCBmcm9tIHRoZSBzaXplIG9mIHRoZSBlbWl0dGVkIGNv
bXByZXNzZWQNCj4gcmVjb3JkIHdpdGhvdXQgYSBuZWVkIGZvciBhbiBleHBsaWNpdCBmaWVs
ZCBmb3IgY2xlbiBvciBhIGZpZWxkIHdpdGggdGhlDQo+IG51bWJlciBvZiByYXcgY29tcHJl
c3NlZCBibG9icy4gVGhpcyBtZWFucyB0aGUgc2VwYXJhdGUgUEFHRV9EQVRBX0xaNA0KPiBy
ZWNvcmQgdHlwZSBpcyBub3QgbmVlZGVkLCBhbmQgdGhlIHByb3Bvc2FsIGZvciB2MiBjb21w
cmVzc2lvbiByZWNvcmQgY291bGQNCj4gc2ltcGxpZnkgdG8gcmV1c2luZyBQQUdFX0RBVEEg
YW5kIHNwZW5kaW5nIG9uZSBvY3RldCBvZiBpdHMgcmVzZXJ2ZWQgd29yZA0KPiBhcyBmb2xs
b3dzOg0KPiANCj4gDQo+ICAgICAgIDAgICAgIDEgICAgIDIgICAgIDMgICAgIDQgICAgIDUg
ICAgIDYgICAgIDcgb2N0ZXQNCj4gICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t
LS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gICAgICB8IGNvdW50IChDKSAgICAgICAgICAg
ICB8IGNvbXB8IChyZXNlcnZlZCkgICAgICAgIHwNCj4gICAgICArLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0rLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gICAgICB8IHBmblswXSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCj4gICAgICArLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gICAg
ICAuLi4NCj4gICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLSsNCj4gICAgICB8IHBmbltDLTFdICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHwNCj4gICAgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gICAgICB8IHBhZ2VfZGF0YVswLi5OLTFdIGlm
IGNvbXAgPT0gMCAgICAgICAgICAgICAgICAgIHwNCj4gICAgICB8IG9yIHBhZ2VfY2RhdGEg
ICAgIGlmIGNvbXAgIT0gMCAgICAgICAgICAgICAgICAgIHwNCj4gICAgICArLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSsNCj4gDQo+IHdpdGgg
dHdvIG5ldyBlbnRyaWVzIGluIHRoZSBmaWVsZCB0YWJsZToNCj4gDQo+IGNvbXAgICAgICAg
IENvbXByZXNzaW9uIGFsZ29yaXRobSBhcHBsaWVkIHRvIHRoZSBwYWdlIGNvbnRlbnRzLiAw
DQo+ICAgICAgICAgICAgICBtZWFucyBub25lLCBhbmQgdGhlIHJlY29yZCBpcyBleGFjdGx5
IGFzIGl0IGlzIHRvZGF5LiAxDQo+ICAgICAgICAgICAgICBtZWFucyBMWjQgYmxvY2sgZm9y
bWF0LiBPdGhlciB2YWx1ZXMgYXJlIHJlc2VydmVkIGZvcg0KPiAgICAgICAgICAgICAgb3Ro
ZXIgZnV0dXJlIGZvcm1hdHMgbGlrZSBaU1REIGV0Yy4gQSBjb21wICE9IDAgY2FuIG9ubHkN
Cj4gICAgICAgICAgICAgIGJlIGVtaXR0ZWQgaWYgMCA8IGxlbihwYWdlX2NkYXRhKSA8IE4g
KiBwYWdlX3NpemUuIEFuDQo+ICAgICAgICAgICAgICB1bmtub3duIGNvbXAgbXVzdCBjYXVz
ZSB0aGUgcmVjZWl2ZXIgdG8gZmFpbCB3aXRoIGENCj4gICAgICAgICAgICAgICJDb21wcmVz
c2lvbiBhbGdvcml0aG0gPHZhbHVlPiBub3QgaGFuZGxlZCIgZXJyb3IuDQo+IA0KPiBwYWdl
X2NkYXRhICBQcmVzZW50IGluc3RlYWQgb2YgcGFnZV9kYXRhIHdoZW4gY29tcCBpcyBub24t
emVyby4gQQ0KPiAgICAgICAgICAgICAgc2luZ2xlIGNvbXByZXNzZWQgb2JqZWN0IGhvbGRp
bmcgdGhlIGNvbmNhdGVuYXRpb24gb2YgdGhlDQo+ICAgICAgICAgICAgICBOIHBhZ2VfZGF0
YSBlbnRyaWVzLiBUaGUgcmVjZWl2ZXIgbXVzdCB2ZXJpZnkgdGhhdA0KPiAgICAgICAgICAg
ICAgMCA8IGNvdW50IDw9IE1BWF9CQVRDSF9TSVpFLg0KPiANCj4gDQo+IFRlZGR5LCBJIGhv
cGUgdGhpcyBmb3JtYXQgY292ZXJzIHlvdXIgcG9pbnRzOiBpdCdzIG5vIGxvbmdlciBMWjQg
c3BlY2lmaWMsDQo+IHRoZSBpbmxpbmUgY2xlbiBpbmNvbnNpc3RlbmN5IGluIGxpYnhlbmd1
ZXN0IHJlY29yZCBkaXNhcHBlYXJzLCBpdCdzIG9uZQ0KPiBibG9jayBvdmVyIGFuIGltbXV0
YWJsZSBjb3B5IG9mIHRoZSBiYXRjaCBpbnN0ZWFkIG9mIG9uZSBwZXIgcGFnZSwgdGhlDQo+
IGRlY29tcHJlc3NlZCBzaXplIGlzIGtub3duIHVwIGZyb250LCBhbmQgdGhlIGFsbG9jYXRp
b24gZGVyaXZlZCBmcm9tIGNvdW50DQo+IGlzIGJvdW5kZWQgb24gdGhlIHJlY2VpdmVyLg0K
PiANCg0KTG9va3MgZ29vZCB0byBtZS4NCg0KPiANCj4gVGhpcyBzaW1wbGlmaWNhdGlvbiBp
cyBhbHNvIGZvcndhcmQtY29tcGF0aWJsZSBpbiB0d28gZGlmZmVyZW50IHdheXM6IHlvdXIN
Cj4gNjRLQiBjaHVua2luZyBmb3IgY2FjaGUgbG9jYWxpdHkgZG9lc24ndCBkZXBlbmQgb24g
dGhlIGZvcm1hdCwgYXMgdGhlDQo+IHN0YWdpbmcgY29weSBjYW4gYmUgZG9uZSBpbiBjaHVu
a3Mgd2hpbGUgc3RpbGwgbWFraW5nIGEgc2luZ2xlIGNvbXByZXNzDQo+IGNhbGwgb3ZlciB0
aGUgd2hvbGUgYmF0Y2guIEFuZCBpZiB3ZSBmaW5kIGJlbmVmaXRzIGluIHNwbGl0dGluZyB0
aGUgcGF5bG9hZA0KPiBpbnRvIHNldmVyYWwgY29tcHJlc3NlZCB1bml0cywgdGhhdCBjYW4g
YmUgaW1wbGVtZW50ZWQgYXMgYSBuZXcgY29tcCB2YWx1ZQ0KPiB1c2luZyBhIHNlbGYtZGVs
aW1pdGluZyBmb3JtYXQgbGlrZSB6c3RkIG9yIGx6NGYgZnJhbWVzLCB3aGljaCByZXBvcnQg
dGhlDQo+IGNvbnN1bWVkIGJ5dGVzIHdpdGhvdXQgYSBuZWVkIHRvIHNwZWNpZnkgY2xlbiBv
ciBleHRyYSBmcmFtaW5nIGZpZWxkcyBhdCB0aGUNCj4gcmVjb3JkIGxldmVsLg0KPiANCj4g
DQo+IE9uIFdlZCwgMjIgSnVsIDIwMjYgYXQgMjA6NDIsIEZyZWRpYW5vIFppZ2xpbyA8ZnJl
ZGR5NzdAZ21haWwuY29tPiB3cm90ZToNCj4+IERvbid0IHdlIG5lZWQgdG8gYnVtcCB0aGUg
dmVyc2lvbiBudW1iZXIgd2hpbGUgd2UgYWRkIGEgbmV3IG1hbmRhdG9yeSByZWNvcmQ/DQo+
IA0KPiBJIGJlbGlldmUgd2UgbWF5IGF2b2lkIGhhdmluZyB0byBkbyBhIHZlcnNpb24gYnVt
cCBpZiB3ZSBhZG9wdCB0aGUgcHJvcGVydHkNCj4gdGhhdCAwIDwgbGVuKHBhZ2VfY2RhdGEp
IDwgTiAqIHBhZ2Vfc2l6ZSB3aGVuIGNvbXAgIT0gMCwgYXMgaW4gdGhpcyBjYXNlDQo+IHRo
ZSBjb21wcmVzc2VkIGRhdGEgc2VudCB0byBhbiBvbGQgcmVjZWl2ZXIgd291bGQgZmFpbCBp
biBoYW5kbGVfcGFnZV9kYXRhKCkNCj4gd2l0aCAiUEFHRV9EQVRBIHJlY29yZCB3cm9uZyBz
aXplIi4gQnVtcGluZyB0aGUgdmVyc2lvbiB3b3VsZCBtYWtlDQo+IHVuY29tcHJlc3NlZCBt
aWdyYXRpb25zIGZhaWwgaWYgdGhleSBhcmUgc2VudCB0byBvbGQgcmVjZWl2ZXJzIHRoYXQg
YWxzbw0KPiB1bmRlcnN0YW5kIHVuY29tcHJlc3NlZCBtaWdyYXRpb24sIHNvIGF2b2lkaW5n
IGlmIHBvc3NpYmxlIHdvdWxkIGJlIGdvb2QuDQo+IFRoZSBzcGVjIHNheXMgbWlncmF0aW9u
IHRvb2xzICJzaGFsbCBhbHdheXMgc2F2ZSBpbWFnZXMgdXNpbmcgdmVyc2lvbiBWIiwNCj4g
c28gaXQgZG9lc24ndCBzZWVtIGxpa2Ugd2UgY291bGQgYnVtcCB0aGUgdmVyc2lvbiBvbmx5
IHdoZW4gY29tcHJlc3Npb24gaXMgb24uDQo+IA0KPiANCj4+IElzIHRoZXJlIG5vIGtpbmQg
b2YgZGlhbG9nIGFib3V0IHRoZSBzdXBwb3J0ZWQgdmVyc2lvbj8NCj4gDQo+IFRoZXJlIGlz
IG5vIGluLXN0cmVhbSBuZWdvdGlhdGlvbiwgYW5kIHRoaXMgcHJvcG9zYWwgZG9lcyBub3Qg
YWRkIG9uZS4NCj4gQ29tcHJlc3Npb24gaXMgb3B0LWluIGF0IHRoZSBzZW5kZXIgdmlhIHhs
IG1pZ3JhdGUgLS1jb21wcmVzcywgc28gYW4gb3BlcmF0b3INCj4gd2hvIGVuYWJsZXMgaXQg
YWdhaW5zdCBhbiBvbGQgcmVjZWl2ZXIgZ2V0cyBhIGNsZWFuIGZhaWx1cmUgcmF0aGVyIHRo
YW4NCj4gY29ycnVwdGlvbi4NCj4gDQo+PiBXaHkgbm90IGV4dGVuZGluZyB0aGUgZ2VuZXJh
bGl6YXRpb24gY29tcHJlc3NpbmcgYWxsIHBheWxvYWQgb2YNCj4+IHVuY29tcHJlc3NlZCBw
YWNrZXRzICh0eXBlK2JvZHkpLA0KPiANCj4gQSBjb21wb3NhYmxlIHdyYXBwZXIgd291bGQg
YmUgYSBjbGVhbiBnZW5lcmljIG1lY2hhbmlzbSwgYnV0IEkgdGhpbmsgdGhlcmUNCj4gYXJl
IHR3byByZWFzb25zIG5vdCB0byBnbyB0aGF0IHdheSBpbiB2MjogUEFHRV9EQVRBIGlzIGVm
ZmVjdGl2ZWx5IGFsbCBvZiB0aGUNCj4gc3RyZWFtIGJ5dGVzLCBzbyBjb21wcmVzc2luZyB0
aGUgb3RoZXIgcmVjb3JkIHR5cGVzIHdvdWxkIG5vdCBzaG93IHVwIGluIGENCj4gbWVhc3Vy
ZW1lbnQuIEFuZCB0aGUgbm8tZXh0cmEtZmllbGRzIHByb3BlcnR5IGFib3ZlIGRlcGVuZHMg
b24gUEFHRV9EQVRBDQo+IHNwZWNpZmljYWxseTogYSBnZW5lcmljIHdyYXBwZXIgaGFzIG5v
IHBmbiBhcnJheSBmcm9tIHdoZXJlIHdlIGNhbiBkZXJpdmUNCj4gdGhlIHVuY29tcHJlc3Nl
ZCBzaXplLCBzbyBpdCB3b3VsZCBuZWVkIGV4cGxpY2l0IGFsZ29yaXRobSwgY29tcHJlc3Nl
ZA0KPiBzaXplIGFuZCB1bmNvbXByZXNzZWQgc2l6ZSBmaWVsZHMgb24gZXZlcnkgcmVjb3Jk
LCB3aGljaCByZS1hZGRzIHRoZSBmaWVsZHMNCj4gdGhhdCB0aGlzIHByb3Bvc2FsIHRyaWVz
IHRvIGF2b2lkLg0KPiANCj4gDQo+IFBsZWFzZSBsZXQgbWUga25vdyBpZiB0aGUgaWRlYXMg
YWJvdmUgY2FwdHVyZSB3aGF0IHlvdSBoYWQgaW4gbWluZCBpbiB0ZXJtcyBvZg0KPiBzdWdn
ZXN0aW9ucyB0byBpbXByb3ZlIHYxLg0KPiANCj4gSW4gcGFydGljdWxhciwgSSB3b25kZXIg
d2hhdCB0aGUgbWFpbnRhaW5lcnMgdGhpbmsgb2YgdGhlIHVzZSBvZiBvbmUgb2YgdGhlDQo+
IG9jdGV0cyBvZiB0aGUgUEFHRV9EQVRBIHJlc2VydmVkIGZpZWxkIGZvciB0aGUgcHVycG9z
ZSBvZiBpbmRpY2F0aW5nIHRoZSBkYXRhDQo+IGlzIGNvbXByZXNzZWQsIG9yIGlzIGl0IHBy
ZWZlcmFibGUgdG8gdXNlIGEgbmV3IFBBR0VfREFUQV9DT01QUkVTU0VEICgweDEzKQ0KPiB0
eXBlIHJlY29yZCBhcyBhIG1hbmRhdG9yeSByZWNvcmQgc28gdGhhdCBhbiBvbGQgcmVjZWl2
ZXIgZmFpbHMgbW9yZSBjbGVhbmx5DQo+IHdoZW4gaXQgZG9lc24ndCB1bmRlcnN0YW5kIGNv
bXByZXNzaW9uICJNYW5kYXRvcnkgcmVjb3JkIDxuYW1lPiBub3QgaGFuZGxlZCINCj4gKGNh
dXNlZCBieSB0aGUgc3BlY2lmaWNhdGlvbiBvZiBtYW5kYXRvcnkgcmVjb3JkcykgaW5zdGVh
ZCBvZiB3aXRoIGEgZ2VuZXJpYw0KPiBlcnJvciAiUEFHRV9EQVRBIHJlY29yZCB3cm9uZyBz
aXplIiAoY2F1c2VkIGJ5IHRoZSBjdXJyZW50IHNhZmV0eQ0KPiBpbXBsZW1lbnRhdGlvbiB0
aGF0IHJlamVjdHMgdW5leHBlY3RlZCByZWNvcmQgc2l6ZXMpPw0KPiANCg0KVGhlIHNwZWNp
ZmljYXRpb24gc2F5cw0KDQogPiBQYWRkaW5nIGFuZCByZXNlcnZlZCBmaWVsZHMgYXJlIHNl
dCB0byB6ZXJvIG9uIHNhdmUgYW5kIG11c3QgYmUNCmlnbm9yZWQgZHVyaW5nIHJlc3RvcmUu
DQoNCldoaWNoIGlzIG5vdCByZWFsbHkgZ29pbmcgdG8gaGVscCBpZiB3ZSBhZGQgYSBuZXcg
ZmllbGQgdGhhdCBtYXR0ZXJzIG9uIA0KaG93IHRoZSBjb250ZW50IGlzIG9yZ2FuaXplZC4N
Cg0KVG8gYXZvaWQgY29uZnVzaW9uLCBpdCBtYXkgYmUgZGVzaXJhYmxlIHRvIGFkZCBhIG5l
dyB0eXBlIA0KKFBBR0VfREFUQV9DT01QUkVTU0VEKSwgYnV0IEknbSBub3QgZnVsbHkgc29s
ZCBvbiBpdC4NCg0KPiANCj4gTWFyY3VzDQo+IA0KPiANCg0KVGVkZHkNCg==
--------------qL9BXv60iFiNIQQzDu3jqzUh
Content-Type: application/pgp-keys; name="OpenPGP_0x660FA9D102CBCFD0.asc"
Content-Disposition: attachment; filename="OpenPGP_0x660FA9D102CBCFD0.asc"
Content-Description: OpenPGP public key
Content-Transfer-Encoding: quoted-printable

-----BEGIN PGP PUBLIC KEY BLOCK-----

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
x9fhaZEsniw8/bYgC3igkk5YJiOa
=3DlUIA
-----END PGP PUBLIC KEY BLOCK-----

--------------qL9BXv60iFiNIQQzDu3jqzUh--

--------------hNQ5LyUMizokDAxHrKBPhLw7--

--------------tLoy9wFY8vD4kZQNnvXo5qTt
Content-Type: application/pgp-signature; name="OpenPGP_signature.asc"
Content-Description: OpenPGP digital signature
Content-Disposition: attachment; filename="OpenPGP_signature.asc"

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

wsD5BAABCAAjFiEEGAIew9LzHY3pdrqtZg+p0QLLz9AFAmpxrZYFAwAAAAAACgkQZg+p0QLLz9CC
EAwAqmEMd1SikFOClTEEjZw+ESDICB9UuEyhrZ5LK4CaAQsO3HxMYwfN7st4RyL/PBHy4CbyddvQ
hu1HS0T3XyU2WjiahkSx9IhrEYjAU1B89bsNi5hpofhgGpBi4qCocQ6iJgpBWg9z6bPUhDCKC2qs
tWg0wndY7ZwFqx/PiE1vPTpp1FRntQQwS+o9JlsUKuNlk8stMvrQz1j+vyaZlDBKbLZ+j76QrNti
drccO+ikWGn4mAQWqfEdDhkRorR3hYrffs1bRT+/wy6BeoxGzUEPH+JnMY1kB5JohrwKKv0fNqwm
oYj1XVInPKZXAnjMQqoVf/Ykm8xIAtPkWap4Cu9CteUQKe67Jg+wwURzN5HqV4GRFhPvBsRDptom
TVsHe+ZDIQEJ1b73oVJEZzqx60Vq5Ws9ehvWMi0l8lfrwgDZKFu/6hibl5RSfX7YR0BQI+X0Io1/
jFxYTrJjOwF7huiDb9TBj9eVSslKNLS1h0nUvMCFDuN7OAFD+r47h+m0y8Vk
=gycT
-----END PGP SIGNATURE-----

--------------tLoy9wFY8vD4kZQNnvXo5qTt--