From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Maxime Devos Newsgroups: gmane.lisp.guile.devel Subject: Re: [PATCH] Add 'bytevector-slice'. Date: Thu, 12 Jan 2023 01:10:57 +0100 Message-ID: <57a2d974-0278-409c-678a-6daf7672ba81@telenet.be> References: <20230111150015.10219-1-ludo@gnu.org> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------MOduT0LWMQ0DvqkXTVD4mdzr" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="31739"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.5.1 Cc: Andy Wingo To: =?UTF-8?Q?Ludovic_Court=c3=a8s?= , guile-devel@gnu.org Original-X-From: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Thu Jan 12 01:11:48 2023 Return-path: Envelope-to: guile-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pFlC8-00082a-4d for guile-devel@m.gmane-mx.org; Thu, 12 Jan 2023 01:11:48 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pFlBX-0002yQ-Oh; Wed, 11 Jan 2023 19:11:11 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pFlBW-0002yG-Hn for guile-devel@gnu.org; Wed, 11 Jan 2023 19:11:10 -0500 Original-Received: from andre.telenet-ops.be ([2a02:1800:120:4::f00:15]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1pFlBT-0005cG-13 for guile-devel@gnu.org; Wed, 11 Jan 2023 19:11:10 -0500 Original-Received: from [IPV6:2a02:1808:80:aabe:9864:e07b:7c54:884f] ([IPv6:2a02:1808:80:aabe:9864:e07b:7c54:884f]) by andre.telenet-ops.be with bizsmtp id 7cAy2900R45Po0W01cB0uT; Thu, 12 Jan 2023 01:11:02 +0100 Content-Language: en-US In-Reply-To: <20230111150015.10219-1-ludo@gnu.org> DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r23; t=1673482262; bh=N1Aij7+cfTDlIDKm2TGSObaOrPI+wi4FeKBc/4PKVs0=; h=Date:To:Cc:References:From:Subject:In-Reply-To; b=adwDD00MHPxOYSFK6f3lAIrkMs37eTutpH1kpLPYZInLqyOkCze1n4wfuChhC6bOq dAPfe08PKHt7ndK9rMforzy0ZtJb/fJbtRPgrVu8aG/+6QU2zdmD87hQNDFVHbZAAV Rz9A8DmbthqcKbMO/FTQFeBXDa+GxHnZA7zWWi6596IftSPsQpV1A/o2rCexCSpIfJ Zx+zvtE21WZYJWyf8PFltG9kAHF/7uHesgsMrcXjbiw16uFelhYTAmRP7kv1/COWPm DodX1wM0aiVQys/eZ/8yWwFPEdKoPxx8N/CiSsMa108cZasuL7SHlFQKUKSirPGP/N xSyTg6yZMn9ww== Received-SPF: pass client-ip=2a02:1800:120:4::f00:15; envelope-from=maximedevos@telenet.be; helo=andre.telenet-ops.be X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, NICE_REPLY_A=-0.001, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Original-Sender: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.lisp.guile.devel:21567 Archived-At: This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------MOduT0LWMQ0DvqkXTVD4mdzr Content-Type: multipart/mixed; boundary="------------rztqEdnR0o4mFSg3EmSilQv0"; protected-headers="v1" From: Maxime Devos To: =?UTF-8?Q?Ludovic_Court=c3=a8s?= , guile-devel@gnu.org Cc: Andy Wingo Message-ID: <57a2d974-0278-409c-678a-6daf7672ba81@telenet.be> Subject: Re: [PATCH] Add 'bytevector-slice'. References: <20230111150015.10219-1-ludo@gnu.org> In-Reply-To: <20230111150015.10219-1-ludo@gnu.org> --------------rztqEdnR0o4mFSg3EmSilQv0 Content-Type: multipart/mixed; boundary="------------R6XFLwQI0WiXxVsoRhviCKBI" --------------R6XFLwQI0WiXxVsoRhviCKBI Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 VGhpcyBsb29rcyB1c2VmdWwgdG8gbWUsIGVzcGVjaWFsbHkgb25jZSB0aGUgb3B0aW1pc2Vy IHJlY29nbmlzZXMgDQonYnl0ZXZlY3Rvci1zbGljZScuICAoSW4gU2NoZW1lLUdOVW5ldCwg SSBkZWZpbmVkIGEgd3JhcHBlciBhcm91bmQgDQpieXRldmVjdG9ycyBjYWxsZWQgJ2J5dGV2 ZWN0b3JzIHNsaWNlcycgdG8gaW1wbGVtZW50IHN1Y2ggYSB0aGluZy4pDQoNClRoZSBvbmx5 IHRoaW5nIG1pc3NpbmcgZm9yIG1lLCBpcyBhIHByb2NlZHVyZSANCidieXRldmVjdG9yLXNs aWNlL3JlYWQtb25seScgYW5kICdieXRldmVjdG9yLXNsaWNlL3dyaXRlLW9ubHknLCB0aGVu IEkgDQpjb3VsZCB0aHJvdyB0aGUgbW9kdWxlIGltcGxlbWVudGluZyB0aGUgd3JhcHBpbmcg aW4gU2NoZW1lLUdOVW5ldCBhbmQgDQp0aGUgb3ZlcmhlYWQgaW5jdXJyZWQgYnkgd3JhcHBp bmcgYXdheS4NCg0KT24gMTEtMDEtMjAyMyAxNjowMCwgTHVkb3ZpYyBDb3VydMOocyB3cm90 ZToNCj4gK0BkZWZmbiB7U2NoZW1lIFByb2NlZHVyZX0gYnl0ZXZlY3Rvci1zbGljZSBAdmFy e2J2fSBAdmFye29mZnNldH0gW0B2YXJ7c2l6ZX1dDQo+ICtAZGVmZm54IHtDIEZ1bmN0aW9u fSBzY21fYnl0ZXZlY3Rvcl9zbGljZSAoQHZhcntidn0sIEB2YXJ7b2Zmc2V0fSwgQHZhcntz aXplfSkNCj4gK1JldHVybiB0aGUgc2xpY2Ugb2YgQHZhcntidn0gc3RhcnRpbmcgYXQgQHZh cntvZmZzZXR9IGFuZCBjb3VudGluZw0KPiArQHZhcntzaXplfSBieXRlcy4gIFdoZW4gQHZh cntzaXplfSBpcyBvbWl0dGVkLCB0aGUgc2xpY2UgY292ZXJzIGFsbA0KPiArb2YgQHZhcnti dn0gc3RhcnRpbmcgZnJvbSBAdmFye29mZnNldH0uICBUaGUgcmV0dXJuZWQgc2xpY2Ugc2hh cmVzDQo+ICtzdG9yYWdlIHdpdGggQHZhcntidn06IGNoYW5nZXMgdG8gdGhlIHNsaWNlIGFy ZSB2aXNpYmxlIGluIEB2YXJ7YnZ9DQo+ICthbmQgdmljZS12ZXJzYS4NCj4gKw0KPiArV2hl biBAdmFye2J2fSBpcyBhY3R1YWxseSBhIFNSRkktNCB1bmlmb3JtIHZlY3RvciwgaXRzIGVs ZW1lbnQNCj4gK3R5cGUgaXMgcHJlc2VydmVkIHVubGVzcyBAdmFye29mZnNldH0gYW5kIEB2 YXJ7c2l6ZX0gYXJlIG5vdCBhbGlnbmVkDQo+ICtvbiBpdHMgZWxlbWVudCB0eXBlIHNpemUu DQo+ICtAZW5kIGRlZmZuDQpJIHdyb3RlIHN0dWZmIGhlcmUgYWJvdXQgJ1doYXQgaWYgb2Zm c2V0IG9yIHNpemUgdW5hbGlnbmVkPyAgVGhpcyBpcyANCnVuZG9jdW1lbnRlZC4nLCBhbmQg b25seSBsYXRlciBub3RpY2VkIHRoaXMgcGFyYWdyYXBoIGRvY3VtZW50aW5nIA0KZXhhY3Rs eSB0aGF0Lg0KDQo+ICsNCj4gK0hlcmUgaXMgYW4gZXhhbXBsZSBzaG93aW5nIGhvdyB0byB1 c2UgaXQ6DQo+ICsNCj4gK0BsaXNwDQo+ICsodXNlLW1vZHVsZXMgKHJucnMgYnl0ZXZlY3Rv cnMpDQo+ICsgICAgICAgICAgICAgKHJucnMgYnl0ZXZlY3RvcnMgZ251KSkNCg0KSSB0aG91 Z2h0IHRoYXQgUjZSUyByZXNlcnZlZCAocm5ycyAuLi4pIHRvIHRoZSBSblJTIHByb2Nlc3Ms IHNvIEkgd291bGQgDQp0aGluayB0aGF0IG5hbWluZyBpdCAocm5ycyBieXRldmVjdG9ycyBn bnUpIHdvdWxkIGJlIA0Kc3RhbmRhcmRzLWluY29tcGxpYW50LCB0aG91Z2ggSSBjYW5ub3Qg ZmluZCBpbiB0aGUgc3BlY2lmaWNhdGlvbiwgc28gDQptYXliZSBpdCBpc24ndCBhY3R1YWxs eSByZXNlcnZlZC4NCg0KKFNSRkkgbG9va3MgYSBiaXQgbG9vc2VyIHRvIG1lLCBzbyBJIGZp bmQgdGhlIChzcmZpIC4uLiBnbnUpIGFjY2VwdGFibGUsIA0KYnV0IChybnJzIC4uLiBnbnUp IGxvb2tzIHdlaXJkIHRvIG1lLCBJIHdvdWxkIHByb3Bvc2UgKGljZS05IA0KYnl0ZXZlY3Rv ci1leHRlbnNpb25zKSBvciBzdWNoLikuDQoNCj4gKw0KPiBkaWZmIC0tZ2l0IGEvZG9jL3Jl Zi9ndWlsZS50ZXhpIGIvZG9jL3JlZi9ndWlsZS50ZXhpDQo+IGluZGV4IDZhODFhMDg5My4u ODQxNGMzZTJkIDEwMDY0NA0KPiAtLS0gYS9kb2MvcmVmL2d1aWxlLnRleGkNCj4gKysrIGIv ZG9jL3JlZi9ndWlsZS50ZXhpDQo+IEBAIC0xMyw3ICsxMyw3IEBADQo+ICAgQGNvcHlpbmcN Cj4gICBUaGlzIG1hbnVhbCBkb2N1bWVudHMgR3VpbGUgdmVyc2lvbiBAdmFsdWV7VkVSU0lP Tn0uDQo+ICAgDQo+IC1Db3B5cmlnaHQgKEMpIDE5OTYtMTk5NywgMjAwMC0yMDA1LCAyMDA5 LTIwMjEgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLA0KPiArQ29weXJpZ2h0IChDKSAxOTk2 LTE5OTcsIDIwMDAtMjAwNSwgMjAwOS0yMDIzIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwN Cg0KDQpXaGVyZSBkb2VzIHRoaXMgeWVhciAyMDIyIGNvbWUgZnJvbT8gIERvZXMgYSBwcmV2 aW91cyB2ZXJzaW9uIG9mIHRoaXMgDQpwYXRjaCBwcmVkYXRlIHRoZSBuZXcgeWVhcj8NCg0K DQo+IGRpZmYgLS1naXQgYS9saWJndWlsZS9ieXRldmVjdG9ycy5jIGIvbGliZ3VpbGUvYnl0 ZXZlY3RvcnMuYw0KPiBpbmRleCBiYmMyM2Y0NDkuLjZiOTIwYzg4YSAxMDA2NDQNCj4gLS0t IGEvbGliZ3VpbGUvYnl0ZXZlY3RvcnMuYw0KPiArKysgYi9saWJndWlsZS9ieXRldmVjdG9y cy5jDQo+IEBAIC0xLDQgKzEsNCBAQA0KPiAtLyogQ29weXJpZ2h0IDIwMDktMjAxNSwyMDE4 LTIwMTkNCj4gKy8qIENvcHlyaWdodCAyMDA5LTIwMTUsMjAxOC0yMDE5LDIwMjItMjAyMw0K PiAgICAgICAgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuDQo+ICAgDQpEaXR0by4N Cg0KPiAgICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEd1aWxlLg0KPiBAQCAtMzI1LDYgKzMy NSw3MyBAQCBzY21fY190YWtlX3R5cGVkX2J5dGV2ZWN0b3IgKHNpZ25lZCBjaGFyICpjb250 ZW50cywgc2l6ZV90IGxlbiwNCj4gICAgIHJldHVybiByZXQ7DQo+ICAgfQ0KPiAgIA0KPiAr U0NNX0RFRklORSAoc2NtX2J5dGV2ZWN0b3Jfc2xpY2UsICJieXRldmVjdG9yLXNsaWNlIiwg MiwgMSwgMCwNCj4gKyAgICAgICAgICAgIChTQ00gYnYsIFNDTSBvZmZzZXQsIFNDTSBzaXpl KSwNCj4gKyAgICAgICAgICAgICJSZXR1cm4gdGhlIHNsaWNlIG9mIEB2YXJ7YnZ9IHN0YXJ0 aW5nIGF0IEB2YXJ7b2Zmc2V0fSBhbmQgY291bnRpbmdcbiINCj4gKyAgICAgICAgICAgICJA dmFye3NpemV9IGJ5dGVzLiAgV2hlbiBAdmFye3NpemV9IGlzIG9taXR0ZWQsIHRoZSBzbGlj ZSBjb3ZlcnMgYWxsXG4iDQo+ICsgICAgICAgICAgICAib2YgQHZhcntidn0gc3RhcnRpbmcg ZnJvbSBAdmFye29mZnNldH0uICBUaGUgcmV0dXJuZWQgc2xpY2Ugc2hhcmVzXG4iDQo+ICsg ICAgICAgICAgICAic3RvcmFnZSB3aXRoIEB2YXJ7YnZ9OiBjaGFuZ2VzIHRvIHRoZSBzbGlj ZSBhcmUgdmlzaWJsZSBpbiBAdmFye2J2fVxuIg0KPiArICAgICAgICAgICAgImFuZCB2aWNl LXZlcnNhLlxuIg0KPiArICAgICAgICAgICAgIlxuIg0KPiArICAgICAgICAgICAgIldoZW4g QHZhcntidn0gaXMgYWN0dWFsbHkgYSBTUkZJLTQgdW5pZm9ybSB2ZWN0b3IsIGl0cyBlbGVt ZW50XG4iDQo+ICsgICAgICAgICAgICAidHlwZSBpcyBwcmVzZXJ2ZWQgdW5sZXNzIEB2YXJ7 b2Zmc2V0fSBhbmQgQHZhcntzaXplfSBhcmUgbm90IGFsaWduZWRcbiINCj4gKyAgICAgICAg ICAgICJvbiBpdHMgZWxlbWVudCB0eXBlIHNpemUuXG4iKQ0KPiArI2RlZmluZSBGVU5DX05B TUUgc19zY21fYnl0ZXZlY3Rvcl9zbGljZQ0KPiArew0KPiArICBTQ00gcmV0Ow0KPiArICBz aXplX3QgY19vZmZzZXQsIGNfc2l6ZTsNCj4gKyAgc2NtX3RfYXJyYXlfZWxlbWVudF90eXBl IGVsZW1lbnRfdHlwZTsNCj4gKw0KPiArICBTQ01fVkFMSURBVEVfQllURVZFQ1RPUiAoMSwg YnYpOw0KPiArDQo+ICsgIC8qIEZJWE1FOiBVbnRpbCAzLjAuOCBpbmNsdWRlZCwgdGhlIGFz c2VtYmxlciB3b3VsZCBub3Qgc2V0IHRoZQ0KPiArICAgICBTQ01fRl9CWVRFVkVDVE9SX0NP TlRJR1VPVVMgZmxhZyBvbiBsaXRlcmFscy4gIFRodXMsIGlnbm9yZSBpdCBhbmQNCj4gKyAg ICAgYXNzdW1lIEJWIGlzIGNvbnRpZ3VvdXMgKGhvdyBjb3VsZCBpdCBub3QgYmUgYW55d2F5 PykuICAqLw0KPiArI2lmIDANCj4gKyAgaWYgKCFTQ01fQllURVZFQ1RPUl9DT05USUdVT1VT X1AgKGJ2KSkNCj4gKyAgICBzY21fd3JvbmdfdHlwZV9hcmdfbXNnIChGVU5DX05BTUUsIDAs IGJ2LCAiY29udGlndW91cyBieXRldmVjdG9yIik7DQo+ICsjZW5kaWYNCg0KDQpJIGRvbid0 IGtub3cgd2hhdCdzIHVwIHdpdGggdGhhdCwgSSdtIGxlYXZpbmcgdGhpcyBmcmFnbWVudCBv ZiBjb2RlIGZvciANCm90aGVyIHRvIHJldmlldy4NCg0KPiArDQo+ICsgIGNfb2Zmc2V0ID0g c2NtX3RvX3NpemVfdCAob2Zmc2V0KTsNCj4gKw0KPiArICBpZiAoU0NNX1VOQk5EUCAoc2l6 ZSkpDQo+ICsgICAgew0KPiArICAgICAgaWYgKGNfb2Zmc2V0IDwgU0NNX0JZVEVWRUNUT1Jf TEVOR1RIIChidikpDQo+ICsgICAgICAgIGNfc2l6ZSA9IFNDTV9CWVRFVkVDVE9SX0xFTkdU SCAoYnYpIC0gY19vZmZzZXQ7DQo+ICsgICAgICBlbHNlDQo+ICsgICAgICAgIGNfc2l6ZSA9 IDA7ID4gKyAgICB9DQo+ICsgIGVsc2UNCj4gKyAgICBjX3NpemUgPSBzY21fdG9fc2l6ZV90 IChzaXplKTsNCj4gKw0KPiArICBpZiAoY19vZmZzZXQgKyBjX3NpemUgPiBTQ01fQllURVZF Q1RPUl9MRU5HVEggKGJ2KSkNCj4gKyAgICBzY21fb3V0X29mX3JhbmdlIChGVU5DX05BTUUs IG9mZnNldCk7DQoNCg0KSWYgb2Zmc2V0PVNJWkVfTUFYLTEgYW5kIHNpemU9MSwgdGhpcyB3 aWxsIG92ZXJmbG93IHRvIDAgYW5kIGhlbmNlIG5vdCANCnRyaWdnZXIgdGhlIGVycm9yIHJl cG9ydGluZy4gIFRoaXMgYm91bmRzIGNoZWNrIG5lZWRzIHRvIGJlIHJld3JpdHRlbiwgDQp3 aXRoIGNvcnJlc3BvbmRpbmcgYWRkaXRpb25hbCB0ZXN0cy4NCg0KPiArDQo+ICsgIC8qIFBy ZXNlcnZlIHRoZSBlbGVtZW50IHR5cGUgb2YgQlYsIHVubGVzcyB3ZSdyZSBub3Qgc2xpY2lu ZyBvbiB0eXBlDQo+ICsgICAgIGJvdW5kYXJpZXMuICAqLw0KPiArICBlbGVtZW50X3R5cGUg PSBTQ01fQllURVZFQ1RPUl9FTEVNRU5UX1RZUEUgKGJ2KTsNCj4gKyAgaWYgKChjX29mZnNl dCAlIFNDTV9CWVRFVkVDVE9SX1RZUEVfU0laRSAoYnYpICE9IDApDQo+ICsgICAgICB8fCAo Y19zaXplICUgU0NNX0JZVEVWRUNUT1JfVFlQRV9TSVpFIChidikgIT0gMCkpDQo+ICsgICAg ZWxlbWVudF90eXBlID0gU0NNX0FSUkFZX0VMRU1FTlRfVFlQRV9WVTg7DQo+ICsgIGVsc2UN Cj4gKyAgICBjX3NpemUgLz0gKHNjbV9pX2FycmF5X2VsZW1lbnRfdHlwZV9zaXplc1tlbGVt ZW50X3R5cGVdIC8gOCk7DQoNCkkgd2FzIHdvcnJpZWQgYWJvdXQgdGhlIGFsaWdubWVudCBi dXQgaXQgbG9va3MgbGlrZSBpdCBpcyBoYW5kbGVkLg0KDQo+ICsgIHJldCA9IG1ha2VfYnl0 ZXZlY3Rvcl9mcm9tX2J1ZmZlciAoY19zaXplLA0KPiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFNDTV9CWVRFVkVDVE9SX0NPTlRFTlRTIChidikgKyBjX29mZnNl dCwNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50X3R5 cGUpOw0KPiArICBpZiAoIVNDTV9NVVRBQkxFX0JZVEVWRUNUT1JfUCAoYnYpKQ0KPiArICAg IHsNCj4gKyAgICAgIC8qIFByZXNlcnZlIHRoZSBpbW11dGFiaWxpdHkgcHJvcGVydHkuICAq Lw0KPiArICAgICAgc2NtX3RfYml0cyBmbGFncyA9IFNDTV9CWVRFVkVDVE9SX0ZMQUdTIChy ZXQpOw0KPiArICAgICAgU0NNX1NFVF9CWVRFVkVDVE9SX0ZMQUdTIChyZXQsIGZsYWdzIHwg U0NNX0ZfQllURVZFQ1RPUl9JTU1VVEFCTEUpOw0KPiArICAgIH0NCj4gKw0KPiArICBTQ01f QllURVZFQ1RPUl9TRVRfUEFSRU5UIChyZXQsIGJ2KTsNCg0KDQpJSVVDLCBpZiB5b3UgdXNl IGJ5dGV2ZWN0b3Itc2xpY2UgaXRlcmF0aXZlbHksIHNheToNCg0KKGxldCBsb29wICgoYnYg c29tZS1pbml0aWFsLXZhbHVlKQ0KICAgICAgICAgICAgKG4gbGFyZ2UtbnVtYmVyKSkNCiAg IChpZiAoPiBuIDApDQogICAgICAgKGxvb3AgKGJ5dGV2ZWN0b3Itc2xpY2UgYnYgMCAoYnl0 ZXZlY3Rvci1sZW5ndGggYnYpKQ0KICAgICAgICAgICAgICgtIG4gMSkpDQogICAgICAgYnYp KQ0KDQp5b3Ugd2lsbCBlbmQgdXAgd2l0aCBhIGJ5dGV2ZWN0b3IgY29udGFpbmluZyBhIHJl ZmVyZW5jZSB0byBhIGJ5dGV2ZWN0b3IgDQpjb250YWluaW5nIGEgcmVmZXJlbmNlIHRvIC4u LiBjb250YWluaW5nIGEgcmVmZXJlbmNlIHRvIHRoZSBvcmlnaW5hbCANCnJlZmVyZW5jZSwg aW4gYSBjaGFpbiBvZiBsZW5ndGgg4omDIGxhcmdlLW51bWJlci4NCg0KVGhpcyBzb3VuZHMg cmF0aGVyIGluZWZmaWNpZW50IHRvIG1lIChtZW1vcnktd2lzZSkuICBJbnN0ZWFkLCBJIHBy b3Bvc2UgDQpzZXR0aW5nIHRoZSBwYXJlbnQgb2YgJ3JldCcgdG8gdGhlIHBhcmVudCBvZiAn YnYnLiAgKEl0cyBub3QgcmVhbGx5IHRoZSANCidwYXJlbnQnIGFueW1vcmUgdGhlbiwgYnV0 IEFGQUlLIG5vdGhpbmcgY2FyZXMgYWJvdXQgdGhhdCwgdGhvdWdoIHlvdSANCm1heSB3YW50 IHRvIHJlbmFtZSB0aGUgZmllbGQgdGhlbikuDQoNCiAgICgtLSkNCg0KRG8geW91IGtub3cg d2hhdCB0aGlzICdwYXJlbnQnIGZpZWxkIGV2ZW4gaXMgZm9yPyAgR29pbmcgYnkgc29tZSAN CmNvbW1lbnRzIGluICdsaWJndWlsZS9ieXRldmVjdG9ycy5jJywgaXQgaXMgZm9yIEdDIHJl YXNvbnMsIGJ1dCBnb2luZyBieSANCnRoZSBleGlzdGVuY2Ugb2YgdGhlICdieXRldmVjdG9y LT5wb2ludGVyJyArICdwb2ludGVyLT5ieXRldmVjdG9yJyB0cmljayANCndoaWNoIGRlc3Ry b3lzICdwYXJlbnQnIGluZm9ybWF0aW9uLCBpdCBzZWVtcyB1bm5lY2Vzc2FyeSB0byBtZS4N Cg0KSXQgYXBwZWFycyB0byBiZSBhZGRlZCBpbiAnMDU5YTU4OGZlZGYzNzdmZmQzMmNjMWYx ZmVlN2VkODI5YjI2Mzg5MCcsIA0KYnV0IGl0IGRvZXNuJ3Qgc2F5IHdoeSBpdCBpcyBuZWVk ZWQuICBNeSBndWVzcyBpcyB0aGF0IHRoZSByZWFzb24gdGhlIA0KJ3BvaW50ZXItPmJ5dGV2 ZWN0b3InIHRyaWNrcyB3b3JrcyBhdCBhbGwgaXM6DQoNCiAgICAgKiBsaWJndWlsZS9mb3Jl aWduLmMgKHNjbV9wb2ludGVyX3RvX2J5dGV2ZWN0b3IpOiBVc2UgdGhlIHBhcmVudCBmaWVs ZA0KICAgICAgIGluc3RlYWQgb2YgcmVnaXN0ZXJpbmcgYSB3ZWFrIHJlZmVyZW5jZSBmcm9t IGJ5dGV2ZWN0b3IgdG8gZm9yZWlnbg0KICAgICAgIHBvaW50ZXIuDQoNCmFuZCBoZW5jZSAn cGFyZW50JyBpcyBuZWVkZWQgYWZ0ZXIgYWxsLCBidXQgdGhpcyBzdHVmZiBpc24ndCANCndl bGwtZG9jdW1lbnRlZCBpbiB0aGUgaW1wbGVtZW50YXRpb24uDQoNCj4gKw0KPiArICByZXR1 cm4gcmV0Ow0KPiArfQ0KPiArI3VuZGVmIEZVTkNfTkFNRQ0KPiArDQo+ICAgLyogU2hyaW5r IEJWIHRvIENfTkVXX0xFTiAod2hpY2ggaXMgYXNzdW1lZCB0byBiZSBzbWFsbGVyIHRoYW4g aXRzIGN1cnJlbnQNCj4gICAgICBzaXplKSBhbmQgcmV0dXJuIHRoZSBuZXcgYnl0ZXZlY3Rv ciAocG9zc2libHkgZGlmZmVyZW50IGZyb20gQlYpLiAgKi8NCj4gICBTQ00NCj4gZGlmZiAt LWdpdCBhL2xpYmd1aWxlL2J5dGV2ZWN0b3JzLmggYi9saWJndWlsZS9ieXRldmVjdG9ycy5o DQo+IGluZGV4IDk4MGQ2ZTI2Ny4uNjE3OWJmZDg2IDEwMDY0NA0KPiAtLS0gYS9saWJndWls ZS9ieXRldmVjdG9ycy5oDQo+ICsrKyBiL2xpYmd1aWxlL2J5dGV2ZWN0b3JzLmgNCj4gQEAg LTEsNyArMSw3IEBADQo+ICAgI2lmbmRlZiBTQ01fQllURVZFQ1RPUlNfSA0KPiAgICNkZWZp bmUgU0NNX0JZVEVWRUNUT1JTX0gNCj4gICANCj4gLS8qIENvcHlyaWdodCAyMDA5LDIwMTEs MjAxOA0KPiArLyogQ29weXJpZ2h0IDIwMDksMjAxMSwyMDE4LDIwMjINCj4gICAgICAgIEZy ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLg0KPiAgIA0KPiAgICAgIFRoaXMgZmlsZSBp cyBwYXJ0IG9mIEd1aWxlLg0KPiBAQCAtNTIsNiArNTIsNyBAQCBTQ01fQVBJIHVpbnQ4X3Qg c2NtX2NfYnl0ZXZlY3Rvcl9yZWYgKFNDTSwgc2l6ZV90KTsNCj4gICBTQ01fQVBJIHZvaWQg c2NtX2NfYnl0ZXZlY3Rvcl9zZXRfeCAoU0NNLCBzaXplX3QsIHVpbnQ4X3QpOw0KPiAgIA0K PiAgIFNDTV9BUEkgU0NNIHNjbV9tYWtlX2J5dGV2ZWN0b3IgKFNDTSwgU0NNKTsNCj4gK1ND TV9BUEkgU0NNIHNjbV9ieXRldmVjdG9yX3NsaWNlIChTQ00sIFNDTSwgU0NNKTsNCj4gICBT Q01fQVBJIFNDTSBzY21fbmF0aXZlX2VuZGlhbm5lc3MgKHZvaWQpOw0KPiAgIFNDTV9BUEkg U0NNIHNjbV9ieXRldmVjdG9yX3AgKFNDTSk7DQo+ICAgU0NNX0FQSSBTQ00gc2NtX2J5dGV2 ZWN0b3JfbGVuZ3RoIChTQ00pOw0KPiBkaWZmIC0tZ2l0IGEvbW9kdWxlL3JucnMvYnl0ZXZl Y3RvcnMvZ251LnNjbSBiL21vZHVsZS9ybnJzL2J5dGV2ZWN0b3JzL2dudS5zY20NCj4gbmV3 IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXggMDAwMDAwMDAwLi5jZTk3NTM1YTgNCj4gLS0t IC9kZXYvbnVsbA0KPiArKysgYi9tb2R1bGUvcm5ycy9ieXRldmVjdG9ycy9nbnUuc2NtDQo+ IEBAIC0wLDAgKzEsMjQgQEANCj4gKzs7OzsgZ251LnNjbSAtLS0gR05VIGV4dGVuc2lvbnMg dG8gdGhlIGJ5dGV2ZWN0b3IgQVBJLg0KPiArDQo+ICs7Ozs7CUNvcHlyaWdodCAoQykgMjAy MiBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4NCj4gKzs7OzsNCj4gKzs7OzsgVGhp cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFu ZC9vcg0KPiArOzs7OyBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGVz c2VyIEdlbmVyYWwgUHVibGljDQo+ICs7Ozs7IExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRo ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcg0KPiArOzs7OyB2ZXJzaW9uIDMg b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24u DQo+ICs7Ozs7DQo+ICs7Ozs7IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUg aG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLA0KPiArOzs7OyBidXQgV0lUSE9VVCBBTlkg V0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZg0KPiArOzs7 OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlIEdOVQ0KPiArOzs7OyBMZXNzZXIgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm b3IgbW9yZSBkZXRhaWxzLg0KPiArOzs7Ow0KPiArOzs7OyBZb3Ugc2hvdWxkIGhhdmUgcmVj ZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGVzc2VyIEdlbmVyYWwgUHVibGljDQo+ICs7Ozs7 IExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IGlmIG5vdCwgd3JpdGUgdG8gdGhl IEZyZWUgU29mdHdhcmUNCj4gKzs7OzsgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4g U3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQ0KDQpOb3dh ZGF5cyBhIGh0dHBzOi8vLi4uLyBpbnN0ZWFkIG9mIGEgbWFpbCBhZGRyZXNzLCBpcyBtb3Jl IGNvbnZlbnRpb25hbCANCmFuZCB1c2VmdWwsIEknZCB0aGluay4gIEl0cyBldmVuIHVzZWQg aW4gb2xkIGZpbGVzLCBlLmcuIA0KbGliZ3VpbGUvcjZycy1wb3J0cy5jLg0KDQo+ICsNCj4g KyhkZWZpbmUtbW9kdWxlIChybnJzIGJ5dGV2ZWN0b3JzIGdudSkNCj4gKyAgIzp2ZXJzaW9u ICg2KQ0KPiArICAjOmV4cG9ydCAoYnl0ZXZlY3Rvci1zbGljZSkpDQo+ICsNCj4gKyhkZWZp bmUgYnl0ZXZlY3Rvci1zbGljZQ0KPiArICAoQEAgKHJucnMgYnl0ZXZlY3RvcnMpIGJ5dGV2 ZWN0b3Itc2xpY2UpKQ0KPiBkaWZmIC0tZ2l0IGEvdGVzdC1zdWl0ZS90ZXN0cy9ieXRldmVj dG9ycy50ZXN0IGIvdGVzdC1zdWl0ZS90ZXN0cy9ieXRldmVjdG9ycy50ZXN0DQo+IGluZGV4 IDczMmFhZGIzZS4uZGM0YjMyMzcwIDEwMDY0NA0KPiAtLS0gYS90ZXN0LXN1aXRlL3Rlc3Rz L2J5dGV2ZWN0b3JzLnRlc3QNCj4gKysrIGIvdGVzdC1zdWl0ZS90ZXN0cy9ieXRldmVjdG9y cy50ZXN0DQo+IEBAIC0xLDYgKzEsNiBAQA0KPiAgIDs7OzsgYnl0ZXZlY3RvcnMudGVzdCAt LS0gUjZSUyBieXRldmVjdG9ycy4gLSotIG1vZGU6IHNjaGVtZTsgY29kaW5nOiB1dGYtODsg LSotDQo+ICAgOzs7Ow0KPiAtOzs7OyBDb3B5cmlnaHQgKEMpIDIwMDktMjAxNSwgMjAxOCwg MjAyMSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4NCj4gKzs7OzsgQ29weXJpZ2h0 IChDKSAyMDA5LTIwMTUsIDIwMTgsIDIwMjEsIDIwMjMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0 aW9uLCBJbmMuDQo+ICAgOzs7Ow0KPiAgIDs7OzsgTHVkb3ZpYyBDb3VydMOocw0KPiAgIDs7 OzsNCj4gQEAgLTIyLDYgKzIyLDcgQEANCj4gICAgICM6dXNlLW1vZHVsZSAodGVzdC1zdWl0 ZSBsaWIpDQo+ICAgICAjOnVzZS1tb2R1bGUgKHN5c3RlbSBiYXNlIGNvbXBpbGUpDQo+ICAg ICAjOnVzZS1tb2R1bGUgKHJucnMgYnl0ZXZlY3RvcnMpDQo+ICsgICM6dXNlLW1vZHVsZSAo cm5ycyBieXRldmVjdG9ycyBnbnUpDQo+ICAgICAjOnVzZS1tb2R1bGUgKHNyZmkgc3JmaS0x KQ0KPiAgICAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktNCkpDQo+ICAgDQo+IEBAIC02NjYs NiArNjY3LDU2IEBADQo+ICAgICAgIGV4Y2VwdGlvbjpvdXQtb2YtcmFuZ2UNCj4gICAgICAg KHdpdGgtaW5wdXQtZnJvbS1zdHJpbmcgIiN2dTgoMCAyNTYpIiByZWFkKSkpDQo+ICAgDQo+ ICsMDQo+ICsod2l0aC10ZXN0LXByZWZpeCAiYnl0ZXZlY3Rvci1zbGljZSINCj4gKw0KPiAr ICAocGFzcy1pZi1leGNlcHRpb24gIndyb25nIHNpemUiDQo+ICsgICAgICBleGNlcHRpb246 b3V0LW9mLXJhbmdlDQo+ICsgICAgKGxldCAoKGIgI3Z1OCgxIDIgMykpKQ0KPiArICAgICAg KGJ5dGV2ZWN0b3Itc2xpY2UgYiAxIDMpKSkNCg0KDQo+ICsNCj4gKyAgKHBhc3MtaWYtZXF1 YWwgInNsaWNlcyINCj4gKyAgICAgIChsaXN0ICN2dTgoMSAyKSAjdnU4KDIgMykNCj4gKyAg ICAgICAgICAgICN2dTgoMSkgICAjdnU4KDIpICN2dTgoMykpDQo+ICsgICAgKGxldCAoKGIg I3Z1OCgxIDIgMykpKQ0KPiArICAgICAgKGxpc3QgKGJ5dGV2ZWN0b3Itc2xpY2UgYiAwIDIp DQo+ICsgICAgICAgICAgICAoYnl0ZXZlY3Rvci1zbGljZSBiIDEpDQo+ICsgICAgICAgICAg ICAoYnl0ZXZlY3Rvci1zbGljZSBiIDAgMSkNCj4gKyAgICAgICAgICAgIChieXRldmVjdG9y LXNsaWNlIGIgMSAxKQ0KPiArICAgICAgICAgICAgKGJ5dGV2ZWN0b3Itc2xpY2UgYiAyKSkp KQ0KPiArDQo+ICsgIChwYXNzLWlmLWV4Y2VwdGlvbiAiaW1tdXRhYmxlIGZsYWcgcHJlc2Vy dmVkIg0KPiArICAgICAgZXhjZXB0aW9uOndyb25nLXR5cGUtYXJnDQo+ICsgICAgKGNvbXBp bGUgJyhiZWdpbg0KPiArICAgICAgICAgICAgICAgICh1c2UtbW9kdWxlcyAocm5ycyBieXRl dmVjdG9ycykNCj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHJucnMgYnl0ZXZl Y3RvcnMgZ251KSkNCj4gKw0KPiArICAgICAgICAgICAgICAgIDs7IFRoZSBsaXRlcmFsIGJ5 dGV2ZWN0b3IgYmVsb3cgaXMgaW1tdXRhYmxlLg0KPiArICAgICAgICAgICAgICAgIChsZXQg KChidiAjdnU4KDEgMiAzKSkpDQo+ICsgICAgICAgICAgICAgICAgICAoYnl0ZXZlY3Rvci11 OC1zZXQhIChieXRldmVjdG9yLXNsaWNlIGJ2IDEpIDAgMCkpKQ0KPiArDQo+ICsgICAgICAg ICAgICAgOzsgRGlzYWJsZSBvcHRpbWl6YXRpb25zIHRvIGludm9rZSB0aGUgZnVsbC1ibG93 bg0KPiArICAgICAgICAgICAgIDs7ICdzY21fYnl0ZXZlY3Rvcl91OF9zZXRfeCcgcHJvY2Vk dXJlLCB3aGljaCBjaGVja3MgZm9yDQo+ICsgICAgICAgICAgICAgOzsgdGhlIFNDTV9GX0JZ VEVWRUNUT1JfSU1NVVRBQkxFIGZsYWcuDQo+ICsgICAgICAgICAgICAgIzpvcHRpbWl6YXRp b24tbGV2ZWwgMA0KPiArICAgICAgICAgICAgICM6dG8gJ3ZhbHVlKSkNCj4gKw0KPiArICAo cGFzcy1pZi1lcXVhbCAic2xpY2Ugb2YgZjMydmVjdG9yIg0KPiArICAgICAgJyg4IDIpDQo+ ICsgICAgKGxldCogKCh2ICNmMzIoMS4xIDEuMiAzLjE0KSkNCj4gKyAgICAgICAgICAgKHMg KGJ5dGV2ZWN0b3Itc2xpY2UgdiA0KSkpDQo+ICsgICAgICAoYW5kICg9IChmMzJ2ZWN0b3It cmVmIHMgMCkNCj4gKyAgICAgICAgICAgICAgKGYzMnZlY3Rvci1yZWYgdiAxKSkNCj4gKyAg ICAgICAgICAgKGxpc3QgKGJ5dGV2ZWN0b3ItbGVuZ3RoIHMpDQo+ICsgICAgICAgICAgICAg ICAgIChmMzJ2ZWN0b3ItbGVuZ3RoIHMpKSkpKSA+ICsNCj4gKyAgKHBhc3MtaWYtZXF1YWwg InVuYWxpZ25lZCBzbGljZSBvZiBmMzJ2ZWN0b3IiDQo+ICsgICAgICAxMA0KPiArICAgIChs ZXQqICgodiAjZjMyKDEuMSAxLjIgMy4xNCkpDQo+ICsgICAgICAgICAgIChzIChieXRldmVj dG9yLXNsaWNlIHYgMikpKQ0KPiArICAgICAgKGFuZCAobm90IChmMzJ2ZWN0b3I/IHMpKQ0K PiArICAgICAgICAgICAoYnl0ZXZlY3Rvci1sZW5ndGggcykpKSkpDQoNCkEgdGVzdCBpcyBt aXNzaW5nIGZvciB0aGUgY2FzZSB3aGVyZSB0aGUgc2l6ZSBpcyB1bmFsaWduZWQgaW5zdGVh ZCBvZiANCnRoZSBvZmZzZXQuDQoNCj4gICAMDQo+ICAgKHdpdGgtdGVzdC1wcmVmaXggIkFy cmF5cyINCj4gICANCg== --------------R6XFLwQI0WiXxVsoRhviCKBI 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----- --------------R6XFLwQI0WiXxVsoRhviCKBI-- --------------rztqEdnR0o4mFSg3EmSilQv0-- --------------MOduT0LWMQ0DvqkXTVD4mdzr Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature" -----BEGIN PGP SIGNATURE----- wnsEABYIACMWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCY79QEQUDAAAAAAAKCRBJ4+4iGRcl7ubw AP0fb9icTbOYCgs0iy1vCHTFmrarndYyxQnjzTbVC6AoMwEAlEiuj6yWRsxLgkikXcLGsaA4Ew/k ot6jj2D91R6lzgY= =Cgbt -----END PGP SIGNATURE----- --------------MOduT0LWMQ0DvqkXTVD4mdzr--