From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Samudrala, Sridhar" Subject: Re: [RFC PATCH v3 0/3] Enable virtio_net to act as a backup for a passthru device Date: Wed, 21 Feb 2018 19:28:30 -0800 Message-ID: <8ac8a83f-3af4-995e-6eba-c58eddcd086e@intel.com> References: <1518804682-16881-1-git-send-email-sridhar.samudrala@intel.com> <20180216183817.42b07af6@cakuba.netronome.com> <0d158bf6-79b3-442b-2c61-3e900ff40922@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Cc: "Duyck, Alexander H" , virtio-dev@lists.oasis-open.org, "Michael S. Tsirkin" , Jakub Kicinski , Netdev , virtualization@lists.linux-foundation.org, David Miller To: Siwei Liu , Alexander Duyck Return-path: In-Reply-To: <0d158bf6-79b3-442b-2c61-3e900ff40922@intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: virtualization-bounces@lists.linux-foundation.org Errors-To: virtualization-bounces@lists.linux-foundation.org List-Id: netdev.vger.kernel.org T24gMi8yMS8yMDE4IDY6MzUgUE0sIFNhbXVkcmFsYSwgU3JpZGhhciB3cm90ZToKPiBPbiAyLzIx LzIwMTggNTo1OSBQTSwgU2l3ZWkgTGl1IHdyb3RlOgo+PiBPbiBXZWQsIEZlYiAyMSwgMjAxOCBh dCA0OjE3IFBNLCBBbGV4YW5kZXIgRHV5Y2sKPj4gPGFsZXhhbmRlci5kdXlja0BnbWFpbC5jb20+ IHdyb3RlOgo+Pj4gT24gV2VkLCBGZWIgMjEsIDIwMTggYXQgMzo1MCBQTSwgU2l3ZWkgTGl1IDxs b3Nld2VpZ2hAZ21haWwuY29tPiB3cm90ZToKPj4+PiBJIGhhdmVuJ3QgY2hlY2tlZCBlbWFpbHMg Zm9yIGRheXMgYW5kIGRpZCBub3QgcmVhbGl6ZSB0aGUgbmV3IHJldmlzaW9uCj4+Pj4gaGFkIGFs cmVhZHkgY2FtZSBvdXQuIEFuZCB0aGFuayB5b3UgZm9yIHRoZSBlZmZvcnQsIHRoaXMgcmV2aXNp b24KPj4+PiByZWFsbHkgbG9va3MgdG8gYmUgYSBzdGVwIGZvcndhcmQgdG93YXJkcyBvdXIgdXNl IGNhc2UgYW5kIGlzIGNsb3NlIHRvCj4+Pj4gd2hhdCB3ZSB3YW50ZWQgdG8gZG8uIEEgZmV3IHF1 ZXN0aW9ucyBpbiBsaW5lLgo+Pj4+Cj4+Pj4gT24gU2F0LCBGZWIgMTcsIDIwMTggYXQgOToxMiBB TSwgQWxleGFuZGVyIER1eWNrCj4+Pj4gPGFsZXhhbmRlci5kdXlja0BnbWFpbC5jb20+IHdyb3Rl Ogo+Pj4+PiBPbiBGcmksIEZlYiAxNiwgMjAxOCBhdCA2OjM4IFBNLCBKYWt1YiBLaWNpbnNraSA8 a3ViYWtpY2lAd3AucGw+IAo+Pj4+PiB3cm90ZToKPj4+Pj4+IE9uIEZyaSwgMTYgRmViIDIwMTgg MTA6MTE6MTkgLTA4MDAsIFNyaWRoYXIgU2FtdWRyYWxhIHdyb3RlOgo+Pj4+Pj4+IFBwYXRjaCAy IGlzIGluIHJlc3BvbnNlIHRvIHRoZSBjb21tdW5pdHkgcmVxdWVzdCBmb3IgYSAzIG5ldGRldgo+ Pj4+Pj4+IHNvbHV0aW9uLsKgIEhvd2V2ZXIsIGl0IGNyZWF0ZXMgc29tZSBpc3N1ZXMgd2UnbGwg Z2V0IGludG8gaW4gYSAKPj4+Pj4+PiBtb21lbnQuCj4+Pj4+Pj4gSXQgZXh0ZW5kcyB2aXJ0aW9f bmV0IHRvIHVzZSBhbHRlcm5hdGUgZGF0YXBhdGggd2hlbiBhdmFpbGFibGUgYW5kCj4+Pj4+Pj4g cmVnaXN0ZXJlZC4gV2hlbiBCQUNLVVAgZmVhdHVyZSBpcyBlbmFibGVkLCB2aXJ0aW9fbmV0IGRy aXZlciAKPj4+Pj4+PiBjcmVhdGVzCj4+Pj4+Pj4gYW4gYWRkaXRpb25hbCAnYnlwYXNzJyBuZXRk ZXYgdGhhdCBhY3RzIGFzIGEgbWFzdGVyIGRldmljZSBhbmQgCj4+Pj4+Pj4gY29udHJvbHMKPj4+ Pj4+PiAyIHNsYXZlIGRldmljZXMuwqAgVGhlIG9yaWdpbmFsIHZpcnRpb19uZXQgbmV0ZGV2IGlz IHJlZ2lzdGVyZWQgYXMKPj4+Pj4+PiAnYmFja3VwJyBuZXRkZXYgYW5kIGEgcGFzc3RocnUvdmYg ZGV2aWNlIHdpdGggdGhlIHNhbWUgTUFDIGdldHMKPj4+Pj4+PiByZWdpc3RlcmVkIGFzICdhY3Rp dmUnIG5ldGRldi4gQm90aCAnYnlwYXNzJyBhbmQgJ2JhY2t1cCcgCj4+Pj4+Pj4gbmV0ZGV2cyBh cmUKPj4+Pj4+PiBhc3NvY2lhdGVkIHdpdGggdGhlIHNhbWUgJ3BjaScgZGV2aWNlLsKgIFRoZSB1 c2VyIGFjY2Vzc2VzIHRoZSAKPj4+Pj4+PiBuZXR3b3JrCj4+Pj4+Pj4gaW50ZXJmYWNlIHZpYSAn YnlwYXNzJyBuZXRkZXYuIFRoZSAnYnlwYXNzJyBuZXRkZXYgY2hvb3NlcyAKPj4+Pj4+PiAnYWN0 aXZlJyBuZXRkZXYKPj4+Pj4+PiBhcyBkZWZhdWx0IGZvciB0cmFuc21pdHMgd2hlbiBpdCBpcyBh dmFpbGFibGUgd2l0aCBsaW5rIHVwIGFuZCAKPj4+Pj4+PiBydW5uaW5nLgo+Pj4+Pj4gVGhhbmsg eW91IGRvIGRvaW5nIHRoaXMuCj4+Pj4+Pgo+Pj4+Pj4+IFdlIG5vdGljZWQgYSBjb3VwbGUgb2Yg aXNzdWVzIHdpdGggdGhpcyBhcHByb2FjaCBkdXJpbmcgdGVzdGluZy4KPj4+Pj4+PiAtIEFzIGJv dGggJ2J5cGFzcycgYW5kICdiYWNrdXAnIG5ldGRldnMgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGUg Cj4+Pj4+Pj4gc2FtZQo+Pj4+Pj4+IMKgwqAgdmlydGlvIHBjaSBkZXZpY2UsIHVkZXYgdHJpZXMg dG8gcmVuYW1lIGJvdGggb2YgdGhlbSB3aXRoIHRoZSAKPj4+Pj4+PiBzYW1lIG5hbWUKPj4+Pj4+ PiDCoMKgIGFuZCB0aGUgMm5kIHJlbmFtZSB3aWxsIGZhaWwuIFRoaXMgd291bGQgYmUgT0sgYXMg bG9uZyBhcyB0aGUgCj4+Pj4+Pj4gZmlyc3QgbmV0ZGV2Cj4+Pj4+Pj4gwqDCoCB0byBiZSByZW5h bWVkIGlzIHRoZSAnYnlwYXNzJyBuZXRkZXYsIGJ1dCB0aGUgb3JkZXIgaW4gd2hpY2ggCj4+Pj4+ Pj4gdWRldiBnZXRzCj4+Pj4+Pj4gwqDCoCB0byByZW5hbWUgdGhlIDIgbmV0ZGV2cyBpcyBub3Qg cmVsaWFibGUuCj4+Pj4+PiBPdXQgb2YgY3VyaW9zaXR5IC0gd2h5IGRvIHlvdSBsaW5rIHRoZSBt YXN0ZXIgbmV0ZGV2IHRvIHRoZSB2aXJ0aW8KPj4+Pj4+IHN0cnVjdCBkZXZpY2U/Cj4+Pj4+IFRo ZSBiYXNpYyBpZGVhIG9mIGFsbCB0aGlzIGlzIHRoYXQgd2Ugd2FudGVkIHRoaXMgdG8gd29yayB3 aXRoIGFuCj4+Pj4+IGV4aXN0aW5nIFZNIGltYWdlIHRoYXQgd2FzIHVzaW5nIHZpcnRpby4gQXMg c3VjaCB3ZSB3ZXJlIHRyeWluZyB0bwo+Pj4+PiBtYWtlIGl0IHNvIHRoYXQgdGhlIGJ5cGFzcyBp bnRlcmZhY2UgdGFrZXMgdGhlIHBsYWNlIG9mIHRoZSBvcmlnaW5hbAo+Pj4+PiB2aXJ0aW8gYW5k IGdldCB1ZGV2IHRvIHJlbmFtZSB0aGUgYnlwYXNzIHRvIHdoYXQgdGhlIG9yaWdpbmFsCj4+Pj4+ IHZpcnRpb19uZXQgd2FzLgo+Pj4+IENvdWxkIGl0IG1hZGUgaXQgYWxzbyBwb3NzaWJsZSB0byB0 YWtlIG92ZXIgdGhlIGNvbmZpZyBmcm9tIFZGIGluc3RlYWQKPj4+PiBvZiB2aXJ0aW8gb24gYW4g ZXhpc3RpbmcgVk0gaW1hZ2U/IEFuZCBnZXQgdWRldiByZW5hbWUgdGhlIGJ5cGFzcwo+Pj4+IG5l dGRldiB0byB3aGF0IHRoZSBvcmlnaW5hbCBWRiB3YXMuIEkgZG9uJ3Qgc2F5IHRpZ2h0bHkgYmlu ZGluZyB0aGUKPj4+PiBieXBhc3MgbWFzdGVyIHRvIG9ubHkgdmlydGlvIG9yIFZGLCBidXQgSSB0 aGluayB3ZSBzaG91bGQgcHJvdmlkZSBib3RoCj4+Pj4gb3B0aW9ucyB0byBzdXBwb3J0IGRpZmZl cmVudCB1cGdyYWRlIHBhdGhzLiBQb3NzaWJseSB3ZSBjb3VsZCB0d2Vhawo+Pj4+IHRoZSBkZXZp Y2UgdHJlZSBsYXlvdXQgdG8gcmV1c2UgdGhlIHNhbWUgUENJIHNsb3QgZm9yIHRoZSBtYXN0ZXIK Pj4+PiBieXBhc3MgbmV0ZGV2LCBzdWNoIHRoYXQgdWRldiB3b3VsZCBub3QgZ2V0IGNvbmZ1c2Vk IHdoZW4gcmVuYW1pbmcgdGhlCj4+Pj4gZGV2aWNlLiBUaGUgVkYgbmVlZHMgdG8gdXNlIGEgZGlm ZmVyZW50IGZ1bmN0aW9uIHNsb3QgYWZ0ZXJ3YXJkcy4KPj4+PiBQZXJoYXBzIHdlIG1pZ2h0IG5l ZWQgdG8gYSBzcGVjaWFsIG11bHRpc2VhdCBsaWtlIFFFTVUgZGV2aWNlIGZvciB0aGF0Cj4+Pj4g cHVycG9zZT8KPj4+Pgo+Pj4+IE91ciBjYXNlIHdlJ2xsIHVwZ3JhZGUgdGhlIGNvbmZpZyBmcm9t IFZGIHRvIHZpcnRpby1ieXBhc3MgZGlyZWN0bHkuCj4+PiBTbyBpZiBJIGFtIHVuZGVyc3RhbmRp bmcgd2hhdCB5b3UgYXJlIHNheWluZyB5b3UgYXJlIHdhbnRpbmcgdG8gZmxpcAo+Pj4gdGhlIGJh Y2t1cCBpbnRlcmZhY2UgZnJvbSB0aGUgdmlydGlvIHRvIGEgVkYuIFRoZSBwcm9ibGVtIGlzIHRo YXQKPj4+IGJlY29tZXMgYSBiaXQgb2YgYSB2ZW5kb3IgbG9jay1pbiBzb2x1dGlvbiBzaW5jZSBp dCB3b3VsZCByZWx5IG9uIGEKPj4+IHNwZWNpZmljIFZGIGRyaXZlci4gSSB3b3VsZCBhZ3JlZSB3 aXRoIEppcmkgdGhhdCB3ZSBkb24ndCB3YW50IHRvIGdvCj4+PiBkb3duIHRoYXQgcGF0aC4gV2Ug ZG9uJ3Qgd2FudCBldmVyeSBWRiBvdXQgdGhlcmUgZmlyaW5nIHVwIGl0cyBvd24KPj4+IHNlcGFy YXRlIGJvbmQuIElkZWFsbHkgeW91IHdhbnQgdGhlIGh5cGVydmlzb3IgdG8gYmUgYWJsZSB0byBt YW5hZ2UKPj4+IGFsbCBvZiB0aGlzIHdoaWNoIGlzIHdoeSBpdCBtYWtlcyBzZW5zZSB0byBoYXZl IHZpcnRpbyBtYW5hZ2UgdGhpcyBhbmQKPj4+IHdoeSB0aGlzIGlzIGFzc29jaWF0ZWQgd2l0aCB0 aGUgdmlydGlvX25ldCBpbnRlcmZhY2UuCj4+IE5vLCB0aGF0J3Mgbm90IHdoYXQgSSB3YXMgdGFs a2luZyBhYm91dCBvZiBjb3Vyc2UuIEkgdGhvdWdodCB5b3UKPj4gbWVudGlvbmVkIHRoZSB1cGdy YWRlIHNjZW5hcmlvIHRoaXMgcGF0Y2ggd291bGQgbGlrZSB0byBhZGRyZXNzIGlzIHRvCj4+IHVz ZSB0aGUgYnlwYXNzIGludGVyZmFjZSAidG8gdGFrZSB0aGUgcGxhY2Ugb2YgdGhlIG9yaWdpbmFs IHZpcnRpbywKPj4gYW5kIGdldCB1ZGV2IHRvIHJlbmFtZSB0aGUgYnlwYXNzIHRvIHdoYXQgdGhl IG9yaWdpbmFsIHZpcnRpb19uZXQKPj4gd2FzIi4gVGhhdCBpcyBvbmUgb2YgdGhlIHBvc3NpYmxl IHVwZ3JhZGUgcGF0aHMgZm9yIHN1cmUuIEhvd2V2ZXIgdGhlCj4+IHVwZ3JhZGUgcGF0aCBJIHdh cyBzZWVraW5nIGlzIHRvIHVzZSB0aGUgYnlwYXNzIGludGVyZmFjZSB0byB0YWtlIHRoZQo+PiBw bGFjZSBvZiBvcmlnaW5hbCBWRiBpbnRlcmZhY2Ugd2hpbGUgcmV0YWluaW5nIHRoZSBuYW1lIGFu ZCBuZXR3b3JrCj4+IGNvbmZpZ3MsIHdoaWNoIGdlbmVyYWxseSBjYW4gYmUgZG9uZSBzaW1wbHkg d2l0aCBrZXJuZWwgdXBncmFkZS4gSXQKPj4gd291bGQgYmVjb21lIGxpbWl0aW5nIGFzIHRoaXMg cGF0Y2ggbWFrZXMgdGhlIGJ5cGFzcyBpbnRlcmZhY2Ugc2hhcmUKPj4gdGhlIHNhbWUgdmlydGlv IHBjaSBkZXZpY2Ugd2l0aCB2aXJpdG8gYmFja3VwLiBDYW4gdGhpcyBieXBhc3MKPj4gaW50ZXJm YWNlIGJlIG1hZGUgZ2VuZXJhbCB0byB0YWtlIHBsYWNlIG9mIGFueSBwY2kgZGV2aWNlIG90aGVy IHRoYW4KPj4gdmlydGlvLW5ldD8gVGhpcyB3aWxsIGJlIG1vcmUgaGVscGZ1bCBhcyB0aGUgY2xv dWQgdXNlcnMgd2hvIGhhcwo+PiBleGlzdGluZyBzZXR1cCBvbiBWRiBpbnRlcmZhY2UgZG9uJ3Qg aGF2ZSB0byByZWNyZWF0ZSBpdCBvbiB2aXJ0aW8tbmV0Cj4+IGFuZCBWRiBzZXBhcmF0ZWx5IGFn YWluLgo+Cj4gWWVzLiBUaGlzIHNvdW5kcyBpbnRlcmVzdGluZy4gTG9va3MgbGlrZSB5b3Ugd2Fu dCBhbiBleGlzdGluZyBWTSBpbWFnZSAKPiB3aXRoCj4gVkYgb25seSBjb25maWd1cmF0aW9uIHRv IGdldCB0cmFuc3BhcmVudCBsaXZlIG1pZ3JhdGlvbiBzdXBwb3J0IGJ5IGFkZGluZwo+IHZpcnRp b19uZXQgd2l0aCBCQUNLVVAgZmVhdHVyZS7CoCBXZSBtYXkgbmVlZCBhbm90aGVyIGZlYXR1cmUg Yml0IHRvIAo+IHN3aXRjaAo+IGJldHdlZW4gdGhlc2UgMiBvcHRpb25zLgoKQWZ0ZXIgdGhpbmtp bmcgc29tZSBtb3JlLCB0aGlzIG1heSBiZSBtb3JlIGludm9sdmVkIHRoYW4gYWRkaW5nIGEgbmV3 CmZlYXR1cmUgYml0LsKgIFRoaXMgcmVxdWlyZXMgYSBuZXRkZXYgY3JlYXRlZCBieSB2aXJ0aW8g dG8gdGFrZSBvdmVyIHRoZSAKbmFtZSBvZgphIFZGIG5ldGRldiBhc3NvY2lhdGVkIHdpdGggYSBQ Q0kgZGV2aWNlIHRoYXQgbWF5IG5vdCBiZSBwbHVnZ2VkIGluIHdoZW4KdGhlIHZpcnRpbyBkcml2 ZXIgaXMgY29taW5nIHVwLiBUaGlzIGRlZmluaXRlbHkgcmVxdWlyZXMgc29tZSBuZXcgbWVzc2Fn ZXMKZXhjaGFuZ2VkIGFjcm9zcyB0aGUgdmlydGlvIGNvbnRyb2wgcXVldWUgdG8gcGFzcyB0aGUg UENJIGRldmljZSBpbmZvIG9mIHRoZQpWRiBuZXRkZXYuCgo+Cj4KPj4KPj4+IFRoZSBvdGhlciBi aXRzIGdldCBpbnRvIG1vcmUgY29tcGxleGl0eSB0aGVuIHdlIGFyZSByZWFkeSB0byBoYW5kbGUK Pj4+IGZvciBub3cuIEkgdGhpbmsgSSBtaWdodCBoYXZlIHRhbGtlZCBhYm91dCBzb21ldGhpbmcg c2ltaWxhciB0aGF0IEkKPj4+IHdhcyByZWZlcnJpbmcgdG8gYXMgYSAidmlydGlvLWJvbmQiIHdo ZXJlIHlvdSB3b3VsZCBoYXZlIGEgUENJL1BDSWUKPj4+IHRyZWUgdG9wb2xvZ3kgdGhhdCBtYWtl cyB0aGlzIGVhc2llciB0byBzb3J0IG91dCwgYW5kIHRoZSAidmlydGlvLWJvbmQKPj4+IHdvdWxk IGJlIHVzZWQgdG8gaGFuZGxlIGNvb3JkaW5hdGlvbi9jb25maWd1cmF0aW9uIG9mIGEgbXVjaCBt b3JlCj4+PiBjb21wbGV4IGludGVyZmFjZS4KPj4gVGhhdCB3YXMgb25lIHdheSB0byBzb2x2ZSB0 aGlzIHByb2JsZW0gYnV0IEknZCBsaWtlIHRvIHNlZSBzaW1wbGUgd2F5cwo+PiB0byBzb3J0IGl0 IG91dC4KPj4KPj4+Pj4+IEZXSVcgdHdvIHNvbHV0aW9ucyB0aGF0IGltbWVkaWF0ZWx5IGNvbWUg dG8gbWluZCBpcyB0byBleHBvcnQgCj4+Pj4+PiAiYmFja3VwIgo+Pj4+Pj4gYXMgcGh5c19wb3J0 X25hbWUgb2YgdGhlIGJhY2t1cCB2aXJ0aW8gbGluayBhbmQvb3IgYXNzaWduIGEgbmFtZSAKPj4+ Pj4+IHRvIHRoZQo+Pj4+Pj4gbWFzdGVyIGxpa2UgeW91IGFyZSBkb2luZyBhbHJlYWR5LsKgIEkg dGhpbmsgdGVhbSB1c2VzIHRlYW0lZCBhbmQgCj4+Pj4+PiBib25kCj4+Pj4+PiB1c2VzIGJvbmQl ZCwgc29mdCBuYW1pbmcgb2YgbWFzdGVyIGRldmljZXMgc2VlbXMgcXVpdGUgbmF0dXJhbCBpbiAK Pj4+Pj4+IHRoaXMKPj4+Pj4+IGNhc2UuCj4+Pj4+IEkgZmlndXJlZCBJIGhhZCBvdmVybG9va2Vk IHNvbWV0aGluZyBsaWtlIHRoYXQuLiBUaGFua3MgZm9yIHBvaW50aW5nCj4+Pj4+IHRoaXMgb3V0 LiBPa2F5IHNvIEkgdGhpbmsgdGhlIHBoeXNfcG9ydF9uYW1lIGFwcHJvYWNoIG1pZ2h0IHJlc29s dmUKPj4+Pj4gdGhlIG9yaWdpbmFsIGlzc3VlLiBJZiBJIGFtIHJlYWRpbmcgdGhpbmdzIGNvcnJl Y3RseSB3aGF0IHdlIGVuZCB1cAo+Pj4+PiB3aXRoIGlzIHRoZSBtYXN0ZXIgc2hvd2luZyB1cCBh cyAiZW5zMSIgZm9yIGV4YW1wbGUgYW5kIHRoZSBiYWNrdXAKPj4+Pj4gc2hvd2luZyB1cCBhcyAi ZW5zMW5iYWNrdXAiLiBBbSBJIHVuZGVyc3RhbmRpbmcgdGhhdCByaWdodD8KPj4+Pj4KPj4+Pj4g VGhlIHByb2JsZW0gd2l0aCB0aGUgdGVhbS9ib25kJWQgYXBwcm9hY2ggaXMgdGhhdCBpdCBjcmVh dGVzIGEgbmV3Cj4+Pj4+IG5ldGRldmljZSBhbmQgc28gaXQgd291bGQgcmVxdWlyZSBndWVzdCBj b25maWd1cmF0aW9uIGNoYW5nZXMuCj4+Pj4+Cj4+Pj4+PiBJTUhPIHBoeXNfcG9ydF9uYW1lID09 ICJiYWNrdXAiIGlmIEJBQ0tVUCBiaXQgaXMgc2V0IG9uIHNsYXZlIHZpcnRpbwo+Pj4+Pj4gbGlu ayBpcyBxdWl0ZSBuZWF0Lgo+Pj4+PiBJIGFncmVlLiBGb3Igbm9uLSJiYWNrdXAiIHZpcmlvX25l dCBkZXZpY2VzIHdvdWxkIGl0IGJlIG9rYXkgZm9yIAo+Pj4+PiB1cyB0bwo+Pj4+PiBqdXN0IHJl dHVybiAtRU9QTk9UU1VQUD8gSSBhc3N1bWUgaXQgd291bGQgYmUgYW5kIHRoYXQgd2F5IHRoZSBs ZWdhY3kKPj4+Pj4gYmVoYXZpb3IgY291bGQgYmUgbWFpbnRhaW5lZCBhbHRob3VnaCB0aGUgZnVu Y3Rpb24gc3RpbGwgZXhpc3RzLgo+Pj4+Pgo+Pj4+Pj4+IC0gV2hlbiB0aGUgJ2FjdGl2ZScgbmV0 ZGV2IGlzIHVucGx1Z2dlZCBPUiBub3QgcHJlc2VudCBvbiBhIAo+Pj4+Pj4+IGRlc3RpbmF0aW9u Cj4+Pj4+Pj4gwqDCoCBzeXN0ZW0gYWZ0ZXIgbGl2ZSBtaWdyYXRpb24sIHRoZSB1c2VyIHdpbGwg c2VlIDIgdmlydGlvX25ldCAKPj4+Pj4+PiBuZXRkZXZzLgo+Pj4+Pj4gVGhhdCdzIG5lY2Vzc2Fy eSBhbmQgZXhwZWN0ZWQsIGFsbCBjb25maWd1cmF0aW9uIGFwcGxpZXMgdG8gdGhlIAo+Pj4+Pj4g bWFzdGVyCj4+Pj4+PiBzbyBtYXN0ZXIgbXVzdCBleGlzdC4KPj4+Pj4gV2l0aCB0aGUgbmFtaW5n IGlzc3VlIHJlc29sdmVkIHRoaXMgaXMgdGhlIG9ubHkgaXRlbSBsZWZ0IAo+Pj4+PiBvdXRzdGFu ZGluZy4KPj4+Pj4gVGhpcyBiZWNvbWVzIGEgbWF0dGVyIG9mIGZvcm0gdnMgZnVuY3Rpb24uCj4+ Pj4+Cj4+Pj4+IFRoZSBtYWluIGNvbXBsYWludCBhYm91dCB0aGUgIjMgbmV0ZGV2IiBzb2x1dGlv biBpcyBhIGJpdCAKPj4+Pj4gY29uZnVzaW5nIHRvCj4+Pj4+IGhhdmUgdGhlIDIgbmV0ZGV2cyBw cmVzZW50IGlmIHRoZSBWRiBpc24ndCB0aGVyZS4gVGhlIGlkZWEgaXMgdGhhdAo+Pj4+PiBoYXZp bmcgdGhlIGV4dHJhICJtYXN0ZXIiIG5ldGRldiB0aGVyZSBpZiB0aGVyZSBpc24ndCByZWFsbHkg YSAKPj4+Pj4gYm9uZCBpcwo+Pj4+PiBhIGJpdCB1Z2x5Lgo+Pj4+IElzIGl0IHRoaXMgdWdsaWVy IGluIHRlcm1zIG9mIHVzZXIgZXhwZXJpZW5jZSByYXRoZXIgdGhhbgo+Pj4+IGZ1bmN0aW9uYWxp dHk/IEkgZG9uJ3Qgd2FudCBpdCBkeW5hbWljYWxseSBjaGFuZ2VkIGJldHdlZW4gMi1uZXRkZXYK Pj4+PiBhbmQgMy1uZXRkZXYgZGVwZW5kaW5nIG9uIHRoZSBwcmVzZW5jZSBvZiBWRi4gVGhhdCBn ZXRzIGJhY2sgdG8gbXkKPj4+PiBvcmlnaW5hbCBxdWVzdGlvbiBhbmQgc3VnZ2VzdGlvbiBlYXJs aWVyOiB3aHkgbm90IGp1c3QgaGlkZSB0aGUgbG93ZXIKPj4+PiBuZXRkZXZzIGZyb20gdWRldiBy ZW5hbWluZyBhbmQgc3VjaD8gV2hpY2ggaW1wb3J0YW50IG9ic2VydmFiaWxpdHkKPj4+PiBiZW5l Zml0cyB1c2VycyBtYXkgZ2V0IGlmIGV4cG9zaW5nIHRoZSBsb3dlciBuZXRkZXZzPwo+Pj4+Cj4+ Pj4gVGhhbmtzLAo+Pj4+IC1TaXdlaQo+Pj4gVGhlIG9ubHkgcmVhbCBhZHZhbnRhZ2UgdG8gYSAy IG5ldGRldiBzb2x1dGlvbiBpcyB0aGF0IGl0IGxvb2tzIGxpa2UKPj4+IHRoZSBuZXR2c2Mgc29s dXRpb24sIGhvd2V2ZXIgaXQgZG9lc24ndCBiZWhhdmUgbGlrZSBpdCBzaW5jZSB0aGVyZSBhcmUK Pj4+IHNvbWUgZmVhdHVyZXMgbGlrZSBYRFAgdGhhdCBtYXkgbm90IGZ1bmN0aW9uIGNvcnJlY3Rs eSBpZiB0aGV5IGFyZQo+Pj4gbGVmdCBlbmFibGVkIGluIHRoZSB2aXJ0aW9fbmV0IGludGVyZmFj ZS4KPj4+Cj4+PiBBcyBmYXIgYXMgZnVuY3Rpb25hbGl0eSB0aGUgYWR2YW50YWdlIG9mIG5vdCBo aWRpbmcgdGhlIGxvd2VyIGRldmljZXMKPj4+IGlzIHRoYXQgdGhleSBhcmUgZnJlZSB0byBiZSBt YW5hZ2VkLiBUaGUgcHJvYmxlbSB3aXRoIHB1c2hpbmcgYWxsIG9mCj4+PiB0aGUgY29uZmlndXJh dGlvbiBpbnRvIHRoZSB1cHBlciBkZXZpY2UgaXMgdGhhdCB5b3UgYXJlIGxpbWl0ZWQgdG8gdGhl Cj4+PiBpbnRlcnNlY3Rpb24gb2YgdGhlIGZlYXR1cmVzIG9mIHRoZSBsb3dlciBkZXZpY2VzLiBU aGlzIGNhbiBiZQo+Pj4gbGltaXRpbmcgZm9yIHNvbWUgc2V0dXBzIGFzIHNvbWUgVkZzIHN1cHBv cnQgdGhpbmdzIGxpa2UgbW9yZSBxdWV1ZXMsCj4+PiBvciBiZXR0ZXIgaW50ZXJydXB0IG1vZGVy YXRpb24gb3B0aW9ucyB0aGFuIG90aGVycyBzbyB0cnlpbmcgdG8gbWFrZQo+Pj4gZXZlcnl0aGlu ZyB3b3JrIHdpdGggb25lIGNvbmZpZyB3b3VsZCBiZSB1Z2x5Lgo+PiBJdCBkZXBlbmRzIG9uIGhv dyB5b3UgYnVpbGQgaXQgYW5kIHRoZSB3YXkgeW91IGV4cGVjdCBpdCB0byB3b3JrLiBJTUhPCj4+ IHRoZSBsb3dlciBkZXZpY2VzIGRvbid0IG5lZWQgdG8gYmUgZGlyZWN0bHkgbWFuYWdlZCBhdCBh bGwsIG90aGVyd2lzZQo+PiBpdCBlbmRzIHVwIHdpdGggbG9zcyBvZiBjb25maWd1cmF0aW9uIGFj cm9zcyBtaWdyYXRpb24sIGFuZCBpdCByZWFsbHkKPj4gZG9lcyBub3QgYnJpbmcgbXVjaCB2YWx1 ZSB0aGFuIGhhdmluZyBhIGdlbmVyYWwgdGVhbSBvciBib25kIGRldmljZS4KPj4gVXNlcnMgc3Rp bGwgaGF2ZSB0byByZWNvbmZpZ3VyZSB0aG9zZSBxdWV1ZSBzZXR0aW5ncyBhbmQgaW50ZXJydXB0 Cj4+IG1vZGVyYXRpb24gb3B0aW9ucyBhZnRlciBhbGwuIFRoZSBuZXcgdXBwZXIgZGV2aWNlIGNv dWxkIHRha2UgdGhlCj4+IGFzc3VtcHRpb24gdGhhdCB0aGUgVkYvUFQgbG93ZXIgZGV2aWNlIGFs d2F5cyBoYXMgc3VwZXJpb3IgZmVhdHVyZSBzZXQKPj4gdGhhbiB2aXJ0aW8tbmV0IGluIG9yZGVy IHRvIGFwcGx5IGFkdmFuY2VkIGNvbmZpZ3VyYXRpb24uIFRoZSB1cHBlcgo+PiBkZXZpY2Ugc2hv dWxkIHJlbWVtYmVyIGFsbCBjb25maWd1cmF0aW9ucyBwcmV2aW91c2x5IGRvbmUgYW5kIGFwcGx5 Cj4+IHN1cHBvcnRpbmcgb25lcyB0byBhY3RpdmUgZGV2aWNlIGF1dG9tYXRpY2FsbHkgd2hlbiBz d2l0Y2hpbmcgdGhlCj4+IGRhdGFwYXRoLgo+Pgo+IEl0IHNob3VsZCBiZSBwb3NzaWJsZSB0byBl eHRlbmQgdGhpcyBwYXRjaHNldCB0byBzdXBwb3J0IG1pZ3JhdGlvbiBvZiAKPiBhZGRpdGlvbmFs Cj4gc2V0dGluZ3PCoCBieSBlbmFibGluZyBhZGRpdGlvbmFsIG5kb19vcHMgYW5kIGV0aHRvb2xf b3BzIG9uIHRoZSB1cHBlciBkZXYKPiBhbmQgcHJvcGFnYXRpbmcgdGhlbSBkb3duIHRoZSBsb3dl ciBkZXZpY2VzIGFuZCByZXBsYXlpbmcgdGhlIHNldHRpbmdzIAo+IGFmdGVyCj4gdGhlIFZGIGlz IHJlcGx1Z2dlZCBhZnRlciBtaWdyYXRpb24uCj4KPiBUaGFua3MKPiBTcmlkaGFyCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpWaXJ0dWFsaXphdGlvbiBt YWlsaW5nIGxpc3QKVmlydHVhbGl6YXRpb25AbGlzdHMubGludXgtZm91bmRhdGlvbi5vcmcKaHR0 cHM6Ly9saXN0cy5saW51eGZvdW5kYXRpb24ub3JnL21haWxtYW4vbGlzdGluZm8vdmlydHVhbGl6 YXRpb24=