From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from smtp2.osuosl.org (smtp2.osuosl.org [140.211.166.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 21AB4C433EF for ; Wed, 15 Dec 2021 21:33:48 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp2.osuosl.org (Postfix) with ESMTP id A668940ACB; Wed, 15 Dec 2021 21:33:47 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp2.osuosl.org ([127.0.0.1]) by localhost (smtp2.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id wxzpdvuZEiG4; Wed, 15 Dec 2021 21:33:46 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by smtp2.osuosl.org (Postfix) with ESMTPS id 7643D40AB7; Wed, 15 Dec 2021 21:33:45 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 4F314C001E; Wed, 15 Dec 2021 21:33:45 +0000 (UTC) Received: from smtp3.osuosl.org (smtp3.osuosl.org [IPv6:2605:bc80:3010::136]) by lists.linuxfoundation.org (Postfix) with ESMTP id 0B8D3C0012 for ; Wed, 15 Dec 2021 21:33:44 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id DEEB560F92 for ; Wed, 15 Dec 2021 21:33:43 +0000 (UTC) X-Virus-Scanned: amavisd-new at osuosl.org Authentication-Results: smtp3.osuosl.org (amavisd-new); dkim=pass (1024-bit key) header.d=redhat.com Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id U9ELGXZ3l4GY for ; Wed, 15 Dec 2021 21:33:42 +0000 (UTC) X-Greylist: domain auto-whitelisted by SQLgrey-1.8.0 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by smtp3.osuosl.org (Postfix) with ESMTPS id 747F560F94 for ; Wed, 15 Dec 2021 21:33:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1639604021; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=+N+J3DIBgoIkEBEhbCQwwGWQuzJ88BB884Y2KlzVDO8=; b=fvTipnoG6qQRaxYfh6jw+P3dWniRTmo8jJUqoF6ABdDpEJGDQlRf+kpdDtWRfP+9qFE2D5 On/eXucg8Wi2Y+VphZ9s43PcXhXrwmjZFUVpqsoElMtrkeb5RNWnwI7SQ2PIA9bmR33Yn/ A2LCLRhcF1EUmNJtLsXSdBYc+YIihyg= Received: from mail-ed1-f69.google.com (mail-ed1-f69.google.com [209.85.208.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-26-FGWP8zJwPqukWerpTiizoQ-1; Wed, 15 Dec 2021 16:33:30 -0500 X-MC-Unique: FGWP8zJwPqukWerpTiizoQ-1 Received: by mail-ed1-f69.google.com with SMTP id y9-20020aa7c249000000b003e7bf7a1579so21324734edo.5 for ; Wed, 15 Dec 2021 13:33:29 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=+N+J3DIBgoIkEBEhbCQwwGWQuzJ88BB884Y2KlzVDO8=; b=R7xU2kEUxvkX+SqBAHNWZK3ZOZzMHrPgXhz1aX2Fkofx6CuBopyq7G1Ox5KPAtlSqB oL5nvzT+T8wcETIBUTArV9g3Zm+Z1Z5Cgkb5lBSbe6T30s/p879cMgWA/iGxWbRBO852 vZ5UZsjRORmEblV2KJGrKeOVyMOLz42J1R5wkQ8G8u7etpIT2T6HBLY36PJxDfknvnrg agQ1GuKYZoZ5Nyxby67SSLnyYZn4Wb9OEIzOqYjfjQD/j5xnZ6NhKRShveNqhlD5bYbm gjNTvyNXpPd6F0dIO59i20YLOx84685NMIVqpXfst/dwykBwHxF9K6VI37AWDeMrKwBQ +EGA== X-Gm-Message-State: AOAM532VNkr2EijR5fVq4IFiRWRMCGmGVsXPgIdQraxUO4hmPGV3HW1q W3/+7N1jTMqIpogfbaw9JQ1aYANi/drNaMBFzeGgwG/4eB7ZSCv0kUJL+r6hiS8mVZaDMdrxCE4 qIAKHM38P3zuUDphm38LZ4FYv4sDqoolg7/OdDs46Uw== X-Received: by 2002:a17:907:3e9d:: with SMTP id hs29mr12813666ejc.677.1639604008795; Wed, 15 Dec 2021 13:33:28 -0800 (PST) X-Google-Smtp-Source: ABdhPJyoavAdx2DRsXCrK5QngMovG3zjtAPgyObBkGVVDN7PB+HKQePVZq1D06z0nzuVidP0PhKe6A== X-Received: by 2002:a17:907:3e9d:: with SMTP id hs29mr12813650ejc.677.1639604008493; Wed, 15 Dec 2021 13:33:28 -0800 (PST) Received: from redhat.com ([2.55.22.18]) by smtp.gmail.com with ESMTPSA id f16sm1543572edd.19.2021.12.15.13.33.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 15 Dec 2021 13:33:27 -0800 (PST) Date: Wed, 15 Dec 2021 16:33:24 -0500 From: "Michael S. Tsirkin" To: Si-Wei Liu Subject: Re: vdpa legacy guest support (was Re: [PATCH] vdpa/mlx5: set_features should allow reset to zero) Message-ID: <20211215162917-mutt-send-email-mst@kernel.org> References: <2cb51a6d-afa0-7cd1-d6f2-6b153186eaca@redhat.com> <20210302043419-mutt-send-email-mst@kernel.org> <178f8ea7-cebd-0e81-3dc7-10a058d22c07@redhat.com> <20211212042311-mutt-send-email-mst@kernel.org> <20211214000245-mutt-send-email-mst@kernel.org> <4fc43d0f-da9e-ce16-1f26-9f0225239b75@oracle.com> <6eaf672c-cc86-b5bf-5b74-c837affeb6e1@oracle.com> MIME-Version: 1.0 In-Reply-To: <6eaf672c-cc86-b5bf-5b74-c837affeb6e1@oracle.com> Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=mst@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Disposition: inline Cc: netdev , virtualization , Eli Cohen , linux-kernel X-BeenThere: virtualization@lists.linux-foundation.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: Linux virtualization List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: virtualization-bounces@lists.linux-foundation.org Sender: "Virtualization" T24gV2VkLCBEZWMgMTUsIDIwMjEgYXQgMTI6NTI6MjBQTSAtMDgwMCwgU2ktV2VpIExpdSB3cm90 ZToKPiAKPiAKPiBPbiAxMi8xNC8yMDIxIDY6MDYgUE0sIEphc29uIFdhbmcgd3JvdGU6Cj4gPiBP biBXZWQsIERlYyAxNSwgMjAyMSBhdCA5OjA1IEFNIFNpLVdlaSBMaXUgPHNpLXdlaS5saXVAb3Jh Y2xlLmNvbT4gd3JvdGU6Cj4gPiA+IAo+ID4gPiAKPiA+ID4gT24gMTIvMTMvMjAyMSA5OjA2IFBN LCBNaWNoYWVsIFMuIFRzaXJraW4gd3JvdGU6Cj4gPiA+ID4gT24gTW9uLCBEZWMgMTMsIDIwMjEg YXQgMDU6NTk6NDVQTSAtMDgwMCwgU2ktV2VpIExpdSB3cm90ZToKPiA+ID4gPiA+IE9uIDEyLzEy LzIwMjEgMToyNiBBTSwgTWljaGFlbCBTLiBUc2lya2luIHdyb3RlOgo+ID4gPiA+ID4gPiBPbiBG cmksIERlYyAxMCwgMjAyMSBhdCAwNTo0NDoxNVBNIC0wODAwLCBTaS1XZWkgTGl1IHdyb3RlOgo+ ID4gPiA+ID4gPiA+IFNvcnJ5IGZvciByZXZpdmluZyB0aGlzIGFuY2llbnQgdGhyZWFkLiBJIHdh cyBraW5kYSBsb3N0IGZvciB0aGUgY29uY2x1c2lvbgo+ID4gPiA+ID4gPiA+IGl0IGVuZGVkIHVw IHdpdGguIEkgaGF2ZSB0aGUgZm9sbG93aW5nIHF1ZXN0aW9ucywKPiA+ID4gPiA+ID4gPiAKPiA+ ID4gPiA+ID4gPiAxLiBsZWdhY3kgZ3Vlc3Qgc3VwcG9ydDogZnJvbSB0aGUgcGFzdCBjb252ZXJz YXRpb25zIGl0IGRvZXNuJ3Qgc2VlbSB0aGUKPiA+ID4gPiA+ID4gPiBzdXBwb3J0IHdpbGwgYmUg Y29tcGxldGVseSBkcm9wcGVkIGZyb20gdGhlIHRhYmxlLCBpcyBteSB1bmRlcnN0YW5kaW5nCj4g PiA+ID4gPiA+ID4gY29ycmVjdD8gQWN0dWFsbHkgd2UncmUgaW50ZXJlc3RlZCBpbiBzdXBwb3J0 aW5nIHZpcnRpbyB2MC45NSBndWVzdCBmb3IgeDg2LAo+ID4gPiA+ID4gPiA+IHdoaWNoIGlzIGJh Y2tlZCBieSB0aGUgc3BlYyBhdAo+ID4gPiA+ID4gPiA+IGh0dHBzOi8vdXJsZGVmZW5zZS5jb20v djMvX19odHRwczovL296bGFicy5vcmcvKnJ1c3R5L3ZpcnRpby1zcGVjL3ZpcnRpby0wLjkuNS5w ZGZfXztmZyEhQUNXVjVOOU0yUlY5OWhRIWRUS216Snd3UnNGTTdCdFN1VER1MWNObHk1bjRYQ290 SDBXWW1pZHpHcUhTWHQ0MGk3WlU0M1VjTmc3R1l4WmckIC4gVGhvdWdoIEknbSBub3Qgc3VyZQo+ ID4gPiA+ID4gPiA+IGlmIHRoZXJlJ3MgcmVxdWVzdC9uZWVkIHRvIHN1cHBvcnQgd2lsZGVyIGxl Z2FjeSB2aXJ0aW8gdmVyc2lvbnMgZWFybGllcgo+ID4gPiA+ID4gPiA+IGJleW9uZC4KPiA+ID4g PiA+ID4gSSBwZXJzb25hbGx5IGZlZWwgaXQncyBsZXNzIHdvcmsgdG8gYWRkIGluIGtlcm5lbCB0 aGFuIHRyeSB0bwo+ID4gPiA+ID4gPiB3b3JrIGFyb3VuZCBpdCBpbiB1c2Vyc3BhY2UuIEphc29u IGZlZWxzIGRpZmZlcmVudGx5Lgo+ID4gPiA+ID4gPiBNYXliZSBwb3N0IHRoZSBwYXRjaGVzIGFu ZCB0aGlzIHdpbGwgcHJvdmUgdG8gSmFzb24gaXQncyBub3QKPiA+ID4gPiA+ID4gdG9vIHRlcnJp YmxlPwo+ID4gPiA+ID4gSSBzdXBwb3NlIGlmIHRoZSB2ZHBhIHZlbmRvciBkb2VzIHN1cHBvcnQg MC45NSBpbiB0aGUgZGF0YXBhdGggYW5kIHJpbmcKPiA+ID4gPiA+IGxheW91dCBsZXZlbCBhbmQg aXMgbGltaXRlZCB0byB4ODYgb25seSwgdGhlcmUgc2hvdWxkIGJlIGVhc3kgd2F5IG91dC4KPiA+ ID4gPiBOb3RlIGEgc3VidGxlIGRpZmZlcmVuY2U6IHdoYXQgbWF0dGVycyBpcyB0aGF0IGd1ZXN0 LCBub3QgaG9zdCBpcyB4ODYuCj4gPiA+ID4gTWF0dGVycyBmb3IgZW11bGF0b3JzIHdoaWNoIG1p Z2h0IHJlb3JkZXIgbWVtb3J5IGFjY2Vzc2VzLgo+ID4gPiA+IEkgZ3Vlc3MgdGhpcyBlbmZvcmNl bWVudCBiZWxvbmdzIGluIFFFTVUgdGhlbj8KPiA+ID4gUmlnaHQsIEkgbWVhbiB0byBnZXQgc3Rh cnRlZCwgdGhlIGluaXRpYWwgZ3Vlc3QgZHJpdmVyIHN1cHBvcnQgYW5kIHRoZQo+ID4gPiBjb3Jy ZXNwb25kaW5nIFFFTVUgc3VwcG9ydCBmb3IgdHJhbnNpdGlvbmFsIHZkcGEgYmFja2VuZCBjYW4g YmUgbGltaXRlZAo+ID4gPiB0byB4ODYgZ3Vlc3QvaG9zdCBvbmx5LiBTaW5jZSB0aGUgY29uZmln IHNwYWNlIGlzIGVtdWxhdGVkIGluIFFFTVUsIEkKPiA+ID4gc3VwcG9zZSBpdCdzIG5vdCBoYXJk IHRvIGVuZm9yY2UgaW4gUUVNVS4KPiA+IEl0J3MgbW9yZSB0aGFuIGp1c3QgY29uZmlnIHNwYWNl LCBtb3N0IGRldmljZXMgaGF2ZSBoZWFkZXJzIGJlZm9yZSB0aGUgYnVmZmVyLgo+IFRoZSBvcmRl cmluZyBpbiBkYXRhcGF0aCAoZGF0YSBWUXMpIHdvdWxkIGhhdmUgdG8gcmVseSBvbiB2ZW5kb3In cyBzdXBwb3J0Lgo+IFNpbmNlIE9SREVSX1BMQVRGT1JNIGlzIHByZXR0eSBuZXcgKHYxLjEpLCBJ IGd1ZXNzIHZkcGEgaC93IHZlbmRvciBub3dhZGF5cwo+IGNhbi9zaG91bGQgd2VsbCBzdXBwb3J0 IHRoZSBjYXNlIHdoZW4gT1JERVJfUExBVEZPUk0gaXMgbm90IGFja2VkIGJ5IHRoZQo+IGRyaXZl ciAoYWN0dWFsbHkgdGhpcyBmZWF0dXJlIGlzIGZpbHRlcmVkIG91dCBieSB0aGUgUUVNVSB2aG9z dC12ZHBhIGRyaXZlcgo+IHRvZGF5KSwgZXZlbiB3aXRoIHYxLjAgc3BlYyBjb25mb3JtaW5nIGFu ZCBtb2Rlcm4gb25seSB2RFBBIGRldmljZS4gVGhlCj4gY29udHJvbCBWUSBpcyBpbXBsZW1lbnRl ZCBpbiBzb2Z0d2FyZSBpbiB0aGUga2VybmVsLCB3aGljaCBjYW4gYmUgZWFzaWx5Cj4gYWNjb21t b2RhdGVkL2ZpeGVkIHdoZW4gbmVlZGVkLgo+IAo+ID4gCj4gPiA+IFFFTVUgY2FuIGRyaXZlIEdF VF9MRUdBQ1ksCj4gPiA+IEdFVF9FTkRJQU4gZXQgYWwgaW9jdGxzIGluIGFkdmFuY2UgdG8gZ2V0 IHRoZSBjYXBhYmlsaXR5IGZyb20gdGhlCj4gPiA+IGluZGl2aWR1YWwgdmVuZG9yIGRyaXZlci4g Rm9yIHRoYXQsIHdlIG5lZWQgYW5vdGhlciBuZWdvdGlhdGlvbiBwcm90b2NvbAo+ID4gPiBzaW1p bGFyIHRvIHZob3N0X3VzZXIncyBwcm90b2NvbF9mZWF0dXJlcyBiZXR3ZWVuIHRoZSB2ZHBhIGtl cm5lbCBhbmQKPiA+ID4gUUVNVSwgd2F5IGJlZm9yZSB0aGUgZ3Vlc3QgZHJpdmVyIGlzIGV2ZXIg cHJvYmVkIGFuZCBpdHMgZmVhdHVyZQo+ID4gPiBuZWdvdGlhdGlvbiBraWNrcyBpbi4gTm90IHN1 cmUgd2UgbmVlZCBhIEdFVF9NRU1PUllfT1JERVIgaW9jdGwgY2FsbAo+ID4gPiBmcm9tIHRoZSBk ZXZpY2UsIGJ1dCB3ZSBjYW4gYXNzdW1lIHdlYWsgb3JkZXJpbmcgZm9yIGxlZ2FjeSBhdCB0aGlz Cj4gPiA+IHBvaW50ICh4ODYgb25seSk/Cj4gPiBJJ20gbG9zdCBoZXJlLCB3ZSBoYXZlIGdldF9m ZWF0dXJlcygpIHNvOgo+IEkgYXNzdW1lIGhlcmUgeW91IHJlZmVyIHRvIGdldF9kZXZpY2VfZmVh dHVyZXMoKSB0aGF0IEVsaSBqdXN0IGNoYW5nZWQgdGhlCj4gbmFtZS4KPiA+IAo+ID4gMSkgVkVS U0lPTl8xIG1lYW5zIHRoZSBkZXZpY2UgdXNlcyBMRSBpZiBwcm92aWRlZCwgb3RoZXJ3aXNlIG5h dHZpZQo+ID4gMikgT1JERVJfUExBVEZPUk0gbWVhbnMgZGV2aWNlIHJlcXVpcmVzIHBsYXRmb3Jt IG9yZGVyaW5nCj4gPiAKPiA+IEFueSByZWFzb24gZm9yIGhhdmluZyBhIG5ldyBBUEkgZm9yIHRo aXM/Cj4gQXJlIHlvdSBnb2luZyB0byBlbmZvcmNlIGFsbCB2RFBBIGhhcmR3YXJlIHZlbmRvcnMg dG8gc3VwcG9ydCB0aGUKPiB0cmFuc2l0aW9uYWwgbW9kZWwgZm9yIGxlZ2FjeSBndWVzdD8gbWVh bmluZyBndWVzdCBub3QgYWNrbm93bGVkZ2luZwo+IFZFUlNJT05fMSB3b3VsZCB1c2UgdGhlIGxl Z2FjeSBpbnRlcmZhY2VzIGNhcHR1cmVkIGluIHRoZSBzcGVjIHNlY3Rpb24gNy40Cj4gKHJlZ2Fy ZGluZyByaW5nIGxheW91dCwgbmF0aXZlIGVuZGlhbm5lc3MsIG1lc3NhZ2UgZnJhbWluZywgdnEg YWxpZ25tZW50IG9mCj4gNDA5NiwgMzJiaXQgZmVhdHVyZSwgbm8gZmVhdHVyZXNfb2sgYml0IGlu IHN0YXR1cywgSU8gcG9ydCBpbnRlcmZhY2UgaS5lLgo+IGFsbCB0aGUgdGhpbmdzKSBpbnN0ZWFk PyBOb3RlZCB3ZSBkb24ndCB5ZXQgaGF2ZSBhIHNldF9kZXZpY2VfZmVhdHVyZXMoKQo+IHRoYXQg YWxsb3dzIHRoZSB2ZHBhIGRldmljZSB0byB0ZWxsIHdoZXRoZXIgaXQgaXMgb3BlcmF0aW5nIGlu IHRyYW5zaXRpb25hbAo+IG9yIG1vZGVybi1vbmx5IG1vZGUuIEZvciBzb2Z0d2FyZSB2aXJ0aW8s IGFsbCBzdXBwb3J0IGZvciB0aGUgbGVnYWN5IHBhcnQgaW4KPiBhIHRyYW5zaXRpb25hbCBtb2Rl bCBoYXMgYmVlbiBidWlsdCB1cCB0aGVyZSBhbHJlYWR5LCBob3dldmVyLCBpdCdzIG5vdCBlYXN5 Cj4gZm9yIHZEUEEgdmVuZG9ycyB0byBpbXBsZW1lbnQgYWxsIHRoZSByZXF1aXJlbWVudHMgZm9y IGFuIGFsbC1vci1ub3RoaW5nCj4gbGVnYWN5IGd1ZXN0IHN1cHBvcnQgKGJpZyBlbmRpYW4gZ3Vl c3QgZm9yIGV4YW1wbGUpLiBUbyB0aGVzZSB2ZW5kb3JzLCB0aGUKPiBsZWdhY3kgc3VwcG9ydCB3 aXRoaW4gYSB0cmFuc2l0aW9uYWwgbW9kZWwgaXMgbW9yZSBvZiBmZWF0dXJlIHRvIHRoZW0gYW5k Cj4gaXQncyBiZXN0IHRvIGxlYXZlIHNvbWUgZmxleGliaWxpdHkgZm9yIHRoZW0gdG8gaW1wbGVt ZW50IHBhcnRpYWwgc3VwcG9ydAo+IGZvciBsZWdhY3kuIFRoYXQgaW4gdHVybiBjYWxscyBvdXQg dGhlIG5lZWQgZm9yIGEgdmhvc3QtdXNlciBwcm90b2NvbAo+IGZlYXR1cmUgbGlrZSBuZWdvdGlh dGlvbiBBUEkgdGhhdCBjYW4gcHJvaGliaXQgdGhvc2UgdW5zdXBwb3J0ZWQgZ3Vlc3QKPiBzZXR1 cHMgdG8gYXMgZWFybHkgYXMgYmFja2VuZF9pbml0IGJlZm9yZSBsYXVuY2hpbmcgdGhlIFZNLgoK UmlnaHQuIE9mIG5vdGUgaXMgdGhlIGZhY3QgdGhhdCBpdCdzIGEgc3BlYyBidWcgd2hpY2ggSQpo b3BlIHlldCB0byBmaXgsIHRob3VnaCBkdWUgdG8gZXhpc3RpbmcgZ3Vlc3QgY29kZSB0aGUKZml4 IHdvbid0IGJlIGNvbXBsZXRlLgoKV1JUIGlvY3RscywgT25lIHRoaW5nIHdlIGNhbiBkbyB0aG91 Z2ggaXMgYWJ1c2Ugc2V0X2ZlYXR1cmVzCndoZXJlIGl0J3MgY2FsbGVkIGJ5IFFFTVUgZWFybHkg b24gd2l0aCBqdXN0IHRoZSBWRVJTSU9OXzEKYml0IHNldCwgdG8gZGlzdGluZ3Vpc2ggYmV0d2Vl biBsZWdhY3kgYW5kIG1vZGVybgppbnRlcmZhY2UuIFRoaXMgYmVmb3JlIGNvbmZpZyBzcGFjZSBh Y2Nlc3NlcyBhbmQgRkVBVFVSRVNfT0suCgpIYWxpbCBoYXMgYmVlbiB3b3JraW5nIG9uIHRoaXMs IHBscyB0YWtlIGEgbG9vayBhbmQgbWF5YmUgaGVscCBoaW0gb3V0LgoKPiAKPiA+IAo+ID4gPiA+ ID4gSQo+ID4gPiA+ID4gY2hlY2tlZCB3aXRoIEVsaSBhbmQgb3RoZXIgTWVsbGFub3gvTlZESUEg Zm9sa3MgZm9yIGhhcmR3YXJlL2Zpcm13YXJlIGxldmVsCj4gPiA+ID4gPiAwLjk1IHN1cHBvcnQs IGl0IHNlZW1zIGFsbCB0aGUgaW5ncmVkaWVudCBoYWQgYmVlbiB0aGVyZSBhbHJlYWR5IGRhdGVk IGJhY2sKPiA+ID4gPiA+IHRvIHRoZSBEUERLIGRheXMuIFRoZSBvbmx5IG1ham9yIHRoaW5nIGxp bWl0aW5nIGlzIGluIHRoZSB2RFBBIHNvZnR3YXJlIHRoYXQKPiA+ID4gPiA+IHRoZSBjdXJyZW50 IHZkcGEgY29yZSBoYXMgdGhlIGFzc3VtcHRpb24gYXJvdW5kIFZJUlRJT19GX0FDQ0VTU19QTEFU Rk9STSBmb3IKPiA+ID4gPiA+IGEgZmV3IERNQSBzZXR1cCBvcHMsIHdoaWNoIGlzIHZpcnRpbyAx LjAgb25seS4KPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+IDIuIHN1cHBvc2Ugc29tZSBmb3JtIG9m IGxlZ2FjeSBndWVzdCBzdXBwb3J0IG5lZWRzIHRvIGJlIHRoZXJlLCBob3cgZG8gd2UKPiA+ID4g PiA+ID4gPiBkZWFsIHdpdGggdGhlIGJvZ3VzIGFzc3VtcHRpb24gYmVsb3cgaW4gdmRwYV9nZXRf Y29uZmlnKCkgaW4gdGhlIHNob3J0IHRlcm0/Cj4gPiA+ID4gPiA+ID4gSXQgbG9va3Mgb25lIG9m IHRoZSBpbnR1aXRpdmUgZml4IGlzIHRvIG1vdmUgdGhlIHZkcGFfc2V0X2ZlYXR1cmVzIGNhbGwg b3V0Cj4gPiA+ID4gPiA+ID4gb2YgdmRwYV9nZXRfY29uZmlnKCkgdG8gdmRwYV9zZXRfY29uZmln KCkuCj4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gICAgICAgICAgICAvKgo+ID4gPiA+ID4g PiA+ICAgICAgICAgICAgICogQ29uZmlnIGFjY2Vzc2VzIGFyZW4ndCBzdXBwb3NlZCB0byB0cmln Z2VyIGJlZm9yZSBmZWF0dXJlcyBhcmUKPiA+ID4gPiA+ID4gPiBzZXQuCj4gPiA+ID4gPiA+ID4g ICAgICAgICAgICAgKiBJZiBpdCBkb2VzIGhhcHBlbiB3ZSBhc3N1bWUgYSBsZWdhY3kgZ3Vlc3Qu Cj4gPiA+ID4gPiA+ID4gICAgICAgICAgICAgKi8KPiA+ID4gPiA+ID4gPiAgICAgICAgICAgIGlm ICghdmRldi0+ZmVhdHVyZXNfdmFsaWQpCj4gPiA+ID4gPiA+ID4gICAgICAgICAgICAgICAgICAg IHZkcGFfc2V0X2ZlYXR1cmVzKHZkZXYsIDApOwo+ID4gPiA+ID4gPiA+ICAgICAgICAgICAgb3Bz LT5nZXRfY29uZmlnKHZkZXYsIG9mZnNldCwgYnVmLCBsZW4pOwo+ID4gPiA+ID4gPiA+IAo+ID4g PiA+ID4gPiA+IEkgY2FuIHBvc3QgYSBwYXRjaCB0byBmaXggMikgaWYgdGhlcmUncyBjb25zZW5z dXMgYWxyZWFkeSByZWFjaGVkLgo+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+IFRoYW5rcywK PiA+ID4gPiA+ID4gPiAtU2l3ZWkKPiA+ID4gPiA+ID4gSSdtIG5vdCBzdXJlIGhvdyBpbXBvcnRh bnQgaXQgaXMgdG8gY2hhbmdlIHRoYXQuCj4gPiA+ID4gPiA+IEluIGFueSBjYXNlIGl0IG9ubHkg YWZmZWN0cyB0cmFuc2l0aW9uYWwgZGV2aWNlcywgcmlnaHQ/Cj4gPiA+ID4gPiA+IExlZ2FjeSBv bmx5IHNob3VsZCBub3QgY2FyZSAuLi4KPiA+ID4gPiA+IFllcyBJJ2QgbGlrZSB0byBkaXN0aW5n dWlzaCBsZWdhY3kgZHJpdmVyIChzdXBwb3NlIGl0IGlzIDAuOTUpIGFnYWluc3QgdGhlCj4gPiA+ ID4gPiBtb2Rlcm4gb25lIGluIGEgdHJhbnNpdGlvbmFsIGRldmljZSBtb2RlbCByYXRoZXIgdGhh biBiZWluZyBsZWdhY3kgb25seS4KPiA+ID4gPiA+IFRoYXQgd2F5IGEgdjAuOTUgYW5kIHYxLjAg c3VwcG9ydGluZyB2ZHBhIHBhcmVudCBjYW4gc3VwcG9ydCBib3RoIHR5cGVzIG9mCj4gPiA+ID4g PiBndWVzdHMgd2l0aG91dCBoYXZpbmcgdG8gcmVjb25maWd1cmUuIE9yIGFyZSB5b3Ugc3VnZ2Vz dGluZyBsaW1pdCB0byBsZWdhY3kKPiA+ID4gPiA+IG9ubHkgYXQgdGhlIHRpbWUgb2YgdmRwYSBj cmVhdGlvbiB3b3VsZCBzaW1wbGlmeSB0aGUgaW1wbGVtZW50YXRpb24gYSBsb3Q/Cj4gPiA+ID4g PiAKPiA+ID4gPiA+IFRoYW5rcywKPiA+ID4gPiA+IC1TaXdlaQo+ID4gPiA+IEkgZG9uJ3Qga25v dyBmb3Igc3VyZS4gVGFrZSBhIGxvb2sgYXQgdGhlIHdvcmsgSGFsaWwgd2FzIGRvaW5nCj4gPiA+ ID4gdG8gdHJ5IGFuZCBzdXBwb3J0IHRyYW5zaXRpb25hbCBkZXZpY2VzIHdpdGggQkUgZ3Vlc3Rz Lgo+ID4gPiBIbW1tLCB3ZSBjYW4gaGF2ZSB0aG9zZSBlbmRpYW5uZXNzIGlvY3RscyBkZWZpbmVk IGJ1dCB0aGUgaW5pdGlhbCBRRU1VCj4gPiA+IGltcGxlbWVudGF0aW9uIGNhbiBiZSBzdGFydGVk IHRvIHN1cHBvcnQgeDg2IGd1ZXN0L2hvc3Qgd2l0aCBsaXR0bGUKPiA+ID4gZW5kaWFuIGFuZCB3 ZWFrIG1lbW9yeSBvcmRlcmluZyBmaXJzdC4gVGhlIHJlYWwgdHJpY2sgaXMgdG8gZGV0ZWN0Cj4g PiA+IGxlZ2FjeSBndWVzdCAtIEkgYW0gbm90IHN1cmUgaWYgaXQncyBmZWFzaWJsZSB0byBzaGlm dCBhbGwgdGhlIGxlZ2FjeQo+ID4gPiBkZXRlY3Rpb24gd29yayB0byBRRU1VLCBvciB0aGUga2Vy bmVsIGhhcyB0byBiZSBwYXJ0IG9mIHRoZSBkZXRlY3Rpb24KPiA+ID4gKGUuZy4gdGhlIGtpY2sg YmVmb3JlIERSSVZFUl9PSyB0aGluZyB3ZSBoYXZlIHRvIGR1cGxpY2F0ZSB0aGUgdHJhY2tpbmcK PiA+ID4gZWZmb3J0IGluIFFFTVUpIGFzIHdlbGwuIExldCBtZSB0YWtlIGEgZnVydGhlciBsb29r IGFuZCBnZXQgYmFjay4KPiA+IE1pY2hhZWwgbWF5IHRoaW5rIGRpZmZlcmVudGx5IGJ1dCBJIHRo aW5rIGRvaW5nIHRoaXMgaW4gUWVtdSBpcyBtdWNoIGVhc2llci4KPiBJIHRoaW5rIHRoZSBrZXkg aXMgd2hldGhlciB3ZSBwb3NpdGlvbiBlbXVsYXRpbmcgbGVnYWN5IGludGVyZmFjZXMgaW4gUUVN VQo+IGRvaW5nIHRyYW5zbGF0aW9uIG9uIHRvcCBvZiBhIHYxLjAgbW9kZXJuLW9ubHkgZGV2aWNl IGluIHRoZSBrZXJuZWwsIG9yIHdlCj4gYWxsb3cgdmRwYSBjb3JlIChvciB5b3UgY2FuIHNheSB2 aG9zdC12ZHBhKSBhbmQgdmVuZG9yIGRyaXZlciB0byBzdXBwb3J0IGEKPiB0cmFuc2l0aW9uYWwg bW9kZWwgaW4gdGhlIGtlcm5lbCB0aGF0IGlzIGFibGUgdG8gd29yayBmb3IgYm90aCB2MC45NSBh bmQKPiB2MS4wIGRyaXZlcnMsIHdpdGggc29tZSBzbGlnaHQgYWlkIGZyb20gUUVNVSBmb3IKPiBk ZXRlY3RpbmcvZW11bGF0aW9uL3NoYWRvd2luZyAoZm9yIGUuZyBDVlEsIEkvTyBwb3J0IHJlbGF5 KS4gSSBndWVzcyBmb3IgdGhlCj4gZm9ybWVyIHdlIHN0aWxsIHJlbHkgb24gdmVuZG9yIGZvciBh IHBlcmZvcm1hbnQgZGF0YSB2cXMgaW1wbGVtZW50YXRpb24sCj4gbGVhdmluZyB0aGUgcXVlc3Rp b24gdG8gd2hhdCBpdCBtYXkgZW5kIHVwIGV2ZW50dWFsbHkgaW4gdGhlIGtlcm5lbCBpcwo+IGVm ZmVjdGl2ZWx5IHRoZSBsYXR0ZXIpLgo+IAo+IFRoYW5rcywKPiAtU2l3ZWkKCgpNeSBzdWdnZXN0 aW9uIGlzIHBvc3QgdGhlIGtlcm5lbCBwYXRjaGVzLCBhbmQgd2UgY2FuIGV2YWx1YXRlCmhvdyBt dWNoIHdvcmsgdGhleSBhcmUuCgo+ID4gCj4gPiBUaGFua3MKPiA+IAo+ID4gCj4gPiAKPiA+ID4g TWVhbndoaWxlLCBJJ2xsIGNoZWNrIGludGVybmFsbHkgdG8gc2VlIGlmIGEgbGVnYWN5IG9ubHkg bW9kZWwgd291bGQKPiA+ID4gd29yay4gVGhhbmtzLgo+ID4gPiAKPiA+ID4gVGhhbmtzLAo+ID4g PiAtU2l3ZWkKPiA+ID4gCj4gPiA+IAo+ID4gPiA+IAo+ID4gPiA+ID4gPiA+IE9uIDMvMi8yMDIx IDI6NTMgQU0sIEphc29uIFdhbmcgd3JvdGU6Cj4gPiA+ID4gPiA+ID4gPiBPbiAyMDIxLzMvMiA1 OjQ3IOS4i+WNiCwgTWljaGFlbCBTLiBUc2lya2luIHdyb3RlOgo+ID4gPiA+ID4gPiA+ID4gPiBP biBNb24sIE1hciAwMSwgMjAyMSBhdCAxMTo1Njo1MEFNICswODAwLCBKYXNvbiBXYW5nIHdyb3Rl Ogo+ID4gPiA+ID4gPiA+ID4gPiA+IE9uIDIwMjEvMy8xIDU6MzQg5LiK5Y2ILCBNaWNoYWVsIFMu IFRzaXJraW4gd3JvdGU6Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBPbiBXZWQsIEZlYiAyNCwgMjAy MSBhdCAxMDoyNDo0MUFNIC0wODAwLCBTaS1XZWkgTGl1IHdyb3RlOgo+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+IERldGVjdGluZyBpdCBpc24ndCBlbm91Z2ggdGhvdWdoLCB3ZSB3aWxsIG5lZWQg YSBuZXcgaW9jdGwgdG8gbm90aWZ5Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gdGhlIGtlcm5l bCB0aGF0IGl0J3MgYSBsZWdhY3kgZ3Vlc3QuIFVnaCA6KAo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiBXZWxsLCBhbHRob3VnaCBJIHRoaW5rIGFkZGluZyBhbiBpb2N0bCBpcyBkb2FibGUsIG1heSBJ Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGtub3cgd2hhdCB0aGUgdXNlCj4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+IGNhc2UgdGhlcmUgd2lsbCBiZSBmb3Iga2VybmVsIHRvIGxldmVyYWdlIHN1Y2gg aW5mbwo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBkaXJlY3RseT8gSXMgdGhlcmUgYQo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiBjYXNlIFFFTVUgY2FuJ3QgZG8gd2l0aCBkZWRpY2F0ZSBpb2N0bHMg bGF0ZXIgaWYgdGhlcmUncyBpbmRlZWQKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gZGlmZmVyZW50 aWF0aW9uIChsZWdhY3kgdi5zLiBtb2Rlcm4pIG5lZWRlZD8KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ IEJUVyBhIGdvb2QgQVBJIGNvdWxkIGJlCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ICNkZWZpbmUgVkhPU1RfU0VUX0VORElBTiBfSU9XKFZIT1NUX1ZJUlRJTywg PywgaW50KQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gI2RlZmluZSBWSE9TVF9HRVRfRU5ESUFOIF9J T1coVkhPU1RfVklSVElPLCA/LCBpbnQpCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ ID4gPiA+ID4gPiA+IHdlIGRpZCBpdCBwZXIgdnJpbmcgYnV0IG1heWJlIHRoYXQgd2FzIGEgbWlz dGFrZSAuLi4KPiA+ID4gPiA+ID4gPiA+ID4gPiBBY3R1YWxseSwgSSB3b25kZXIgd2hldGhlciBp dCdzIGdvb2QgdGltZSB0byBqdXN0IG5vdCBzdXBwb3J0Cj4gPiA+ID4gPiA+ID4gPiA+ID4gbGVn YWN5IGRyaXZlcgo+ID4gPiA+ID4gPiA+ID4gPiA+IGZvciB2RFBBLiBDb25zaWRlcjoKPiA+ID4g PiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiA+ID4gPiAxKSBJdCdzIGRlZmluaXRpb24gaXMg bm8tbm9ybWF0aXZlCj4gPiA+ID4gPiA+ID4gPiA+ID4gMikgQSBsb3Qgb2YgYnVkcmVuIG9mIGNv ZGVzCj4gPiA+ID4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gPiA+ID4gU28gcWVtdSBjYW4g c3RpbGwgcHJlc2VudCB0aGUgbGVnYWN5IGRldmljZSBzaW5jZSB0aGUgY29uZmlnCj4gPiA+ID4g PiA+ID4gPiA+ID4gc3BhY2Ugb3Igb3RoZXIKPiA+ID4gPiA+ID4gPiA+ID4gPiBzdHVmZnMgdGhh dCBpcyBwcmVzZW50ZWQgYnkgdmhvc3QtdkRQQSBpcyBub3QgZXhwZWN0ZWQgdG8gYmUKPiA+ID4g PiA+ID4gPiA+ID4gPiBhY2Nlc3NlZCBieQo+ID4gPiA+ID4gPiA+ID4gPiA+IGd1ZXN0IGRpcmVj dGx5LiBRZW11IGNhbiBkbyB0aGUgZW5kaWFuIGNvbnZlcnNpb24gd2hlbiBuZWNlc3NhcnkKPiA+ ID4gPiA+ID4gPiA+ID4gPiBpbiB0aGlzCj4gPiA+ID4gPiA+ID4gPiA+ID4gY2FzZT8KPiA+ID4g PiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4gPiA+ID4gPiBUaGFua3MKPiA+ID4gPiA+ID4gPiA+ ID4gPiAKPiA+ID4gPiA+ID4gPiA+ID4gT3ZlcmFsbCBJIHdvdWxkIGJlIGZpbmUgd2l0aCB0aGlz IGFwcHJvYWNoIGJ1dCB3ZSBuZWVkIHRvIGF2b2lkIGJyZWFraW5nCj4gPiA+ID4gPiA+ID4gPiA+ IHdvcmtpbmcgdXNlcnNwYWNlLCBxZW11IHJlbGVhc2VzIHdpdGggdmRwYSBzdXBwb3J0IGFyZSBv dXQgdGhlcmUgYW5kCj4gPiA+ID4gPiA+ID4gPiA+IHNlZW0gdG8gd29yayBmb3IgcGVvcGxlLiBB bnkgY2hhbmdlcyBuZWVkIHRvIHRha2UgdGhhdCBpbnRvIGFjY291bnQKPiA+ID4gPiA+ID4gPiA+ ID4gYW5kIGRvY3VtZW50IGNvbXBhdGliaWxpdHkgY29uY2VybnMuCj4gPiA+ID4gPiA+ID4gPiBB Z3JlZSwgbGV0IG1lIGNoZWNrLgo+ID4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gPiAKPiA+ ID4gPiA+ID4gPiA+ID4gICAgICBJIG5vdGUgdGhhdCBhbnkgaGFyZHdhcmUKPiA+ID4gPiA+ID4g PiA+ID4gaW1wbGVtZW50YXRpb24gaXMgYWxyZWFkeSBicm9rZW4gZm9yIGxlZ2FjeSBleGNlcHQg b24gcGxhdGZvcm1zIHdpdGgKPiA+ID4gPiA+ID4gPiA+ID4gc3Ryb25nIG9yZGVyaW5nIHdoaWNo IG1pZ2h0IGJlIGhlbHBmdWwgaW4gcmVkdWNpbmcgdGhlIHNjb3BlLgo+ID4gPiA+ID4gPiA+ID4g WWVzLgo+ID4gPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+ID4gPiBUaGFua3MKPiA+ID4gPiA+ID4g PiA+IAo+ID4gPiA+ID4gPiA+ID4gCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpWaXJ0dWFsaXphdGlvbiBtYWlsaW5nIGxpc3QKVmlydHVhbGl6YXRpb25A bGlzdHMubGludXgtZm91bmRhdGlvbi5vcmcKaHR0cHM6Ly9saXN0cy5saW51eGZvdW5kYXRpb24u b3JnL21haWxtYW4vbGlzdGluZm8vdmlydHVhbGl6YXRpb24=