From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jason Wang Subject: Re: [RFC PATCH 00/22] Enhance VHOST to enable SoC-to-SoC communication Date: Tue, 7 Jul 2020 17:47:03 +0800 Message-ID: References: <20200702082143.25259-1-kishon@ti.com> <20200702055026-mutt-send-email-mst@kernel.org> <603970f5-3289-cd53-82a9-aa62b292c552@redhat.com> <14c6cad7-9361-7fa4-e1c6-715ccc7e5f6b@ti.com> <59fd6a0b-8566-44b7-3dae-bb52b468219b@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: virtualization-bounces@lists.linux-foundation.org Sender: "Virtualization" To: Kishon Vijay Abraham I Cc: Ohad Ben-Cohen , Allen Hubbe , Lorenzo Pieralisi , Dave Jiang , kvm@vger.kernel.org, linux-ntb@googlegroups.com, "Michael S. Tsirkin" , linux-pci@vger.kernel.org, linux-doc@vger.kernel.org, linux-remoteproc@vger.kernel.org, linux-kernel@vger.kernel.org, Bjorn Andersson , netdev@vger.kernel.org, Stefan Hajnoczi , Jon Mason , Bjorn Helgaas , Paolo Bonzini , virtualization@lists.linux-foundation.org List-Id: virtualization@lists.linuxfoundation.org Ck9uIDIwMjAvNy82IOS4i+WNiDU6MzIsIEtpc2hvbiBWaWpheSBBYnJhaGFtIEkgd3JvdGU6Cj4g SGkgSmFzb24sCj4KPiBPbiA3LzMvMjAyMCAxMjo0NiBQTSwgSmFzb24gV2FuZyB3cm90ZToKPj4g T24gMjAyMC83LzIg5LiL5Y2IOTozNSwgS2lzaG9uIFZpamF5IEFicmFoYW0gSSB3cm90ZToKPj4+ IEhpIEphc29uLAo+Pj4KPj4+IE9uIDcvMi8yMDIwIDM6NDAgUE0sIEphc29uIFdhbmcgd3JvdGU6 Cj4+Pj4gT24gMjAyMC83LzIg5LiL5Y2INTo1MSwgTWljaGFlbCBTLiBUc2lya2luIHdyb3RlOgo+ Pj4+PiBPbiBUaHUsIEp1bCAwMiwgMjAyMCBhdCAwMTo1MToyMVBNICswNTMwLCBLaXNob24gVmlq YXkgQWJyYWhhbSBJIHdyb3RlOgo+Pj4+Pj4gVGhpcyBzZXJpZXMgZW5oYW5jZXMgTGludXggVmhv c3Qgc3VwcG9ydCB0byBlbmFibGUgU29DLXRvLVNvQwo+Pj4+Pj4gY29tbXVuaWNhdGlvbiBvdmVy IE1NSU8uIFRoaXMgc2VyaWVzIGVuYWJsZXMgcnBtc2cgY29tbXVuaWNhdGlvbiBiZXR3ZWVuCj4+ Pj4+PiB0d28gU29DcyB1c2luZyBib3RoIFBDSWUgUkM8LT5FUCBhbmQgSE9TVDEtTlRCLUhPU1Qy Cj4+Pj4+Pgo+Pj4+Pj4gMSkgTW9kaWZ5IHZob3N0IHRvIHVzZSBzdGFuZGFyZCBMaW51eCBkcml2 ZXIgbW9kZWwKPj4+Pj4+IDIpIEFkZCBzdXBwb3J0IGluIHZyaW5nIHRvIGFjY2VzcyB2aXJ0cXVl dWUgb3ZlciBNTUlPCj4+Pj4+PiAzKSBBZGQgdmhvc3QgY2xpZW50IGRyaXZlciBmb3IgcnBtc2cK Pj4+Pj4+IDQpIEFkZCBQQ0llIFJDIGRyaXZlciAodXNlcyB2aXJ0aW8pIGFuZCBQQ0llIEVQIGRy aXZlciAodXNlcyB2aG9zdCkgZm9yCj4+Pj4+PiAgwqDCoMKgwqAgcnBtc2cgY29tbXVuaWNhdGlv biBiZXR3ZWVuIHR3byBTb0NzIGNvbm5lY3RlZCB0byBlYWNoIG90aGVyCj4+Pj4+PiA1KSBBZGQg TlRCIFZpcnRpbyBkcml2ZXIgYW5kIE5UQiBWaG9zdCBkcml2ZXIgZm9yIHJwbXNnIGNvbW11bmlj YXRpb24KPj4+Pj4+ICDCoMKgwqDCoCBiZXR3ZWVuIHR3byBTb0NzIGNvbm5lY3RlZCB2aWEgTlRC Cj4+Pj4+PiA2KSBBZGQgY29uZmlnZnMgdG8gY29uZmlndXJlIHRoZSBjb21wb25lbnRzCj4+Pj4+ Pgo+Pj4+Pj4gVXNlQ2FzZTEgOgo+Pj4+Pj4KPj4+Pj4+ICDCoMKgIFZIT1NUIFJQTVNHwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBWSVJUSU8gUlBNU0cKPj4+Pj4+ICDC oMKgwqDCoMKgwqDCoCArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgICsKPj4+Pj4+ICDCoMKgwqDCoMKgwqDCoCB8wqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwKPj4+Pj4+ ICDCoMKgwqDCoMKgwqDCoCB8wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwKPj4+Pj4+ICDCoMKgwqDCoMKgwqDCoCB8wqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwKPj4+ Pj4+ICDCoMKgwqDCoMKgwqDCoCB8wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwKPj4+Pj4+ICstLS0tLXYtLS0tLS0rwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKy0tLS0tLXYtLS0tLS0tKwo+Pj4+Pj4gfMKgwqAgTGlu dXjCoMKgwqAgfMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgwqDCoCBMaW51 eMKgwqDCoCB8Cj4+Pj4+PiB8wqAgRW5kcG9pbnTCoCB8wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgfCBSb290IENvbXBsZXggfAo+Pj4+Pj4gfMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg PC0tLS0tLS0tLS0tLS0tLS0tPsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwKPj4+Pj4+IHzC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8 wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfAo+Pj4+Pj4gfMKgwqDCoCBTT0MxwqDCoMKgIHzC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqDCoMKgwqAgU09DMsKgwqDCoMKgIHwK Pj4+Pj4+ICstLS0tLS0tLS0tLS0rwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKy0t LS0tLS0tLS0tLS0tKwo+Pj4+Pj4KPj4+Pj4+IFVzZUNhc2UgMjoKPj4+Pj4+Cj4+Pj4+PiAgwqDC oMKgwqDCoMKgIFZIT1NUIFJQTVNHwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgVklSVElPIFJQTVNHCj4+Pj4+ PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgICsKPj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfAo+Pj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgfMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8Cj4+Pj4+PiAgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCB8wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHwKPj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgfAo+Pj4+Pj4gIMKgwqDCoMKgICstLS0tLS12LS0tLS0tK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgICstLS0tLS12LS0tLS0tKwo+Pj4+Pj4gIMKgwqDCoMKgIHzCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgfMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfAo+Pj4+ Pj4gIMKgwqDCoMKgIHzCoMKgwqAgSE9TVDHCoMKgwqAgfMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgwqAgSE9T VDLCoMKgwqAgfAo+Pj4+Pj4gIMKgwqDCoMKgIHzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfAo+Pj4+Pj4gIMKgwqDCoMKgICst LS0tLS1eLS0tLS0tK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICstLS0tLS1eLS0tLS0tKwo+Pj4+Pj4gIMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgfMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8 Cj4+Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIHwKPj4+Pj4+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rCj4+Pj4+PiB8wqAgKy0tLS0t LXYtLS0tLS0rwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgKy0tLS0tLXYtLS0tLS0rwqAgfAo+Pj4+Pj4gfMKgIHzCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgfMKgIHwKPj4+Pj4+IHzCoCB8wqDCoMKgwqAgRVDCoMKgwqDCoMKgIHzCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8 wqDCoMKgwqAgRVDCoMKgwqDCoMKgIHzCoCB8Cj4+Pj4+PiB8wqAgfCBDT05UUk9MTEVSMSB8wqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgfCBDT05UUk9MTEVSMiB8wqAgfAo+Pj4+Pj4gfMKgIHzCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgPC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tPsKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCB8wqAgfAo+Pj4+Pj4gfMKgIHzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg fMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIHwKPj4+Pj4+IHzCoCB8 wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIHzCoCB8Cj4+Pj4+PiB8wqAgfMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgU29D IFdpdGggTXVsdGlwbGUgRVAgSW5zdGFuY2VzwqDCoCB8wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHzCoCB8Cj4+Pj4+PiB8wqAgfMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgKENvbmZpZ3Vy ZWQgdXNpbmcgTlRCIEZ1bmN0aW9uKcKgIHzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIHwK Pj4+Pj4+IHzCoCArLS0tLS0tLS0tLS0tLSvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCArLS0tLS0tLS0tLS0tLSvCoCB8 Cj4+Pj4+PiArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKwo+Pj4+Pj4KPj4+Pj4+IFNvZnR3YXJlIExheWVyaW5nOgo+ Pj4+Pj4KPj4+Pj4+IFRoZSBoaWdoLWxldmVsIFNXIGxheWVyaW5nIHNob3VsZCBsb29rIHNvbWV0 aGluZyBsaWtlIGJlbG93LiBUaGlzIHNlcmllcwo+Pj4+Pj4gYWRkcyBzdXBwb3J0IG9ubHkgZm9y IFJQTVNHIFZIT1NULCBob3dldmVyIHNvbWV0aGluZyBzaW1pbGFyIHNob3VsZCBiZQo+Pj4+Pj4g ZG9uZSBmb3IgbmV0IGFuZCBzY3NpLiBXaXRoIHRoYXQgYW55IHZob3N0IGRldmljZSAoUENJLCBO VEIsIFBsYXRmb3JtCj4+Pj4+PiBkZXZpY2UsIHVzZXIpIGNhbiB1c2UgYW55IG9mIHRoZSB2aG9z dCBjbGllbnQgZHJpdmVyLgo+Pj4+Pj4KPj4+Pj4+Cj4+Pj4+PiAgwqDCoMKgwqDCoCArLS0tLS0t LS0tLS0tLS0tLSvCoCArLS0tLS0tLS0tLS0rwqAgKy0tLS0tLS0tLS0tLSvCoCArLS0tLS0tLS0t LSsKPj4+Pj4+ICDCoMKgwqDCoMKgIHzCoCBSUE1TRyBWSE9TVMKgwqAgfMKgIHwgTkVUIFZIT1NU IHzCoCB8IFNDU0kgVkhPU1QgfMKgIHzCoMKgwqAgWMKgwqDCoMKgIHwKPj4+Pj4+ICDCoMKgwqDC oMKgICstLS0tLS0tXi0tLS0tLS0tK8KgICstLS0tLV4tLS0tLSvCoCArLS0tLS1eLS0tLS0tK8Kg ICstLS0tXi0tLS0tKwo+Pj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwKPj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCB8wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8Cj4+Pj4+PiAgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgfMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfAo+Pj4+ Pj4gKy0tLS0tLS0tLS0tdi0tLS0tLS0tLS0tLS0tLS0tdi0tLS0tLS0tLS0tLS0tdi0tLS0tLS0t LS0tLS0tdi0tLS0tLS0tLS0rCj4+Pj4+PiB8wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIFZIT1NUIENPUkXCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8Cj4+Pj4+PiArLS0tLS0t LS1eLS0tLS0tLS0tLS0tLS0tXi0tLS0tLS0tLS0tLS0tLS0tLS0tXi0tLS0tLS0tLS0tLS0tLS0t LV4tLS0tLSsKPj4+Pj4+ICDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCB8wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfAo+Pj4+Pj4gIMKgwqDCoMKgwqDCoMKgwqDC oMKgIHzCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCB8wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8Cj4+ Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg fMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIHwKPj4+Pj4+ICstLS0tLS0tLXYtLS0tLS0tK8KgICstLS0tdi0t LS0tLSvCoCArLS0tLS0tLS0tLXYtLS0tLS0tLS0tK8KgICstLS0tdi0tLS0tKwo+Pj4+Pj4gfMKg IFBDSSBFUEYgVkhPU1QgfMKgIHwgTlRCIFZIT1NUIHzCoCB8UExBVEZPUk0gREVWSUNFIFZIT1NU fMKgIHzCoMKgwqAgWMKgwqDCoMKgIHwKPj4+Pj4+ICstLS0tLS0tLS0tLS0tLS0tK8KgICstLS0t LS0tLS0tLSvCoCArLS0tLS0tLS0tLS0tLS0tLS0tLS0tK8KgICstLS0tLS0tLS0tKwo+Pj4+Pj4K Pj4+Pj4+IFRoaXMgd2FzIGluaXRpYWxseSBwcm9wb3NlZCBoZXJlIFsxXQo+Pj4+Pj4KPj4+Pj4+ IFsxXSAtPiBodHRwczovL2xvcmUua2VybmVsLm9yZy9yLzJjZjAwZWM0LTFlZDYtZjY2ZS02ODk3 LTAwNmQxYTViNjM5MEB0aS5jb20KPj4+Pj4gSSBmaW5kIHRoaXMgdmVyeSBpbnRlcmVzdGluZy4g QSBodWdlIHBhdGNoc2V0IHNvIHdpbGwgdGFrZSBhIGJpdAo+Pj4+PiB0byByZXZpZXcsIGJ1dCBJ IGNlcnRhaW5seSBwbGFuIHRvIGRvIHRoYXQuIFRoYW5rcyEKPj4+PiBZZXMsIGl0IHdvdWxkIGJl IGJldHRlciBpZiB0aGVyZSdzIGEgZ2l0IGJyYW5jaCBmb3IgdXMgdG8gaGF2ZSBhIGxvb2suCj4+ PiBJJ3ZlIHB1c2hlZCB0aGUgYnJhbmNoCj4+PiBodHRwczovL2dpdGh1Yi5jb20va2lzaG9uL2xp bnV4LXdpcC5naXQgdmhvc3RfcnBtc2dfcGNpX250Yl9yZmMKPj4KPj4gVGhhbmtzCj4+Cj4+Cj4+ Pj4gQnR3LCBJJ20gbm90IHN1cmUgSSBnZXQgdGhlIGJpZyBwaWN0dXJlLCBidXQgSSB2YWd1ZWx5 IGZlZWwgc29tZSBvZiB0aGUgd29yayBpcwo+Pj4+IGR1cGxpY2F0ZWQgd2l0aCB2RFBBIChlLmcg dGhlIGVwZiB0cmFuc3BvcnQgb3Igdmhvc3QgYnVzKS4KPj4+IFRoaXMgaXMgYWJvdXQgY29ubmVj dGluZyB0d28gZGlmZmVyZW50IEhXIHN5c3RlbXMgYm90aCBydW5uaW5nIExpbnV4IGFuZAo+Pj4g ZG9lc24ndCBuZWNlc3NhcmlseSBpbnZvbHZlIHZpcnR1YWxpemF0aW9uLgo+Pgo+PiBSaWdodCwg dGhpcyBpcyBzb21ldGhpbmcgc2ltaWxhciB0byBWT1AKPj4gKERvY3VtZW50YXRpb24vbWlzYy1k ZXZpY2VzL21pYy9taWNfb3ZlcnZpZXcucnN0KS4gVGhlIGRpZmZlcmVudCBpcyB0aGUKPj4gaGFy ZHdhcmUgSSBndWVzcyBhbmQgVk9QIHVzZSB1c2Vyc3BhY2UgYXBwbGljYXRpb24gdG8gaW1wbGVt ZW50IHRoZSBkZXZpY2UuCj4gSSdkIGFsc28gbGlrZSB0byBwb2ludCBvdXQsIHRoaXMgc2VyaWVz IHRyaWVzIHRvIGhhdmUgY29tbXVuaWNhdGlvbiBiZXR3ZWVuIHR3bwo+IFNvQ3MgaW4gdmVuZG9y IGFnbm9zdGljIHdheS4gU2luY2UgdGhpcyBzZXJpZXMgc29sdmVzIGZvciAyIHVzZWNhc2VzIChQ Q0llCj4gUkM8LT5FUCBhbmQgTlRCKSwgZm9yIHRoZSBOVEIgY2FzZSBpdCBkaXJlY3RseSBwbHVn cyBpbnRvIE5UQiBmcmFtZXdvcmsgYW5kIGFueQo+IG9mIHRoZSBIVyBpbiBOVEIgYmVsb3cgc2hv dWxkIGJlIGFibGUgdG8gdXNlIGEgdmlydGlvLXZob3N0IGNvbW11bmljYXRpb24KPgo+ICNscyBk cml2ZXJzL250Yi9ody8KPiBhbWQgIGVwZiAgaWR0ICBpbnRlbCAgbXNjYwo+Cj4gQW5kIHNpbWls YXJseSBmb3IgdGhlIFBDSWUgUkM8LT5FUCBjb21tdW5pY2F0aW9uLCB0aGlzIGFkZHMgYSBnZW5l cmljIGVuZHBvaW50Cj4gZnVuY3Rpb24gZHJpdmVyIGFuZCBoZW5jZSBhbnkgU29DIHRoYXQgc3Vw cG9ydHMgY29uZmlndXJhYmxlIFBDSWUgZW5kcG9pbnQgY2FuCj4gdXNlIHZpcnRpby12aG9zdCBj b21tdW5pY2F0aW9uCj4KPiAjIGxzIGRyaXZlcnMvcGNpL2NvbnRyb2xsZXIvZHdjLyplcCoKPiBk cml2ZXJzL3BjaS9jb250cm9sbGVyL2R3Yy9wY2llLWRlc2lnbndhcmUtZXAuYwo+IGRyaXZlcnMv cGNpL2NvbnRyb2xsZXIvZHdjL3BjaWUtdW5pcGhpZXItZXAuYwo+IGRyaXZlcnMvcGNpL2NvbnRy b2xsZXIvZHdjL3BjaS1sYXllcnNjYXBlLWVwLmMKCgpUaGFua3MgZm9yIHRob3NlIGJhY2tncm91 bmRzLgoKCj4KPj4KPj4+ICDCoCBTbyB0aGVyZSBpcyBubyBndWVzdCBvciBob3N0IGFzIGluCj4+ PiB2aXJ0dWFsaXphdGlvbiBidXQgdHdvIGVudGlyZWx5IGRpZmZlcmVudCBzeXN0ZW1zIGNvbm5l Y3RlZCB2aWEgUENJZSBjYWJsZSwgb25lCj4+PiBhY3RpbmcgYXMgZ3Vlc3QgYW5kIG9uZSBhcyBo b3N0LiBTbyBvbmUgc3lzdGVtIHdpbGwgcHJvdmlkZSB2aXJ0aW8KPj4+IGZ1bmN0aW9uYWxpdHkg cmVzZXJ2aW5nIG1lbW9yeSBmb3IgdmlydHF1ZXVlcyBhbmQgdGhlIG90aGVyIHByb3ZpZGVzIHZo b3N0Cj4+PiBmdW5jdGlvbmFsaXR5IHByb3ZpZGluZyBhIHdheSB0byBhY2Nlc3MgdGhlIHZpcnRx dWV1ZXMgaW4gdmlydGlvIG1lbW9yeS4gT25lIGlzCj4+PiBzb3VyY2UgYW5kIHRoZSBvdGhlciBp cyBzaW5rIGFuZCB0aGVyZSBpcyBubyBpbnRlcm1lZGlhdGUgZW50aXR5LiAodmhvc3Qgd2FzCj4+ PiBwcm9iYWJseSBpbnRlcm1lZGlhdGUgZW50aXR5IGluIHZpcnR1YWxpemF0aW9uPykKPj4KPj4g KE5vdCBhIG5hdGl2ZSBFbmdsaXNoIHNwZWFrZXIpIGJ1dCAidmhvc3QiIGNvdWxkIGludHJvZHVj ZSBzb21lIGNvbmZ1c2lvbiBmb3IKPj4gbWUgc2luY2UgaXQgd2FzIHVzZSBmb3IgaW1wbGVtZW50 aW5nIHZpcnRpbyBiYWNrZW5kIGZvciB1c2Vyc3BhY2UgZHJpdmVycy4gSQo+PiBndWVzcyAidnJp bmdoIiBjb3VsZCBiZSBiZXR0ZXIuCj4gSW5pdGlhbGx5IEkgaGFkIG5hbWVkIHRoaXMgdnJpbmdo IGJ1dCBsYXRlciBkZWNpZGVkIHRvIGNob29zZSB2aG9zdCBpbnN0ZWFkIG9mCj4gdnJpbmdoLiB2 aG9zdCBpcyBzdGlsbCBhIHZpcnRpbyBiYWNrZW5kIChub3QgbmVjZXNzYXJpbHkgdXNlcnNwYWNl KSB0aG91Z2ggaXQKPiBub3cgcmVzaWRlcyBpbiBhbiBlbnRpcmVseSBkaWZmZXJlbnQgc3lzdGVt LiBXaGF0ZXZlciB2aXJ0aW8gaXMgZm9yIGEgZnJvbnRlbmQKPiBzeXN0ZW0sIHZob3N0IGNhbiBi ZSB0aGF0IGZvciBhIGJhY2tlbmQgc3lzdGVtLiB2cmluZyBjYW4gYmUgZm9yIGFjY2Vzc2luZwo+ IHZpcnRxdWV1ZSBhbmQgY2FuIGJlIHVzZWQgZWl0aGVyIGluIGZyb250ZW5kIG9yIGJhY2tlbmQu CgoKT2suCgoKPj4KPj4+PiBIYXZlIHlvdSBjb25zaWRlcmVkIHRvIGltcGxlbWVudCB0aGVzZSB0 aHJvdWdoIHZEUEE/Cj4+PiBJSVVDIHZEUEEgb25seSBwcm92aWRlcyBhbiBpbnRlcmZhY2UgdG8g dXNlcnNwYWNlIGFuZCBhbiBpbi1rZXJuZWwgcnBtc2cgZHJpdmVyCj4+PiBvciB2aG9zdCBuZXQg ZHJpdmVyIGlzIG5vdCBwcm92aWRlZC4KPj4+Cj4+PiBUaGUgSFcgY29ubmVjdGlvbiBsb29rcyBz b21ldGhpbmcgbGlrZSBodHRwczovL3Bhc3RlYm9hcmQuY28vSmZNVlZIQy5qcGcKPj4+ICh1c2Vj YXNlMiBhYm92ZSksCj4+Cj4+IEkgc2VlLgo+Pgo+Pgo+Pj4gIMKgIGFsbCB0aGUgYm9hcmRzIHJ1 biBMaW51eC4gVGhlIG1pZGRsZSBib2FyZCBwcm92aWRlcyBOVEIKPj4+IGZ1bmN0aW9uYWxpdHkg YW5kIGJvYXJkIG9uIGVpdGhlciBzaWRlIHByb3ZpZGVzIHZpcnRpby92aG9zdCBmdW5jdGlvbmFs aXR5IGFuZAo+Pj4gdHJhbnNmZXIgZGF0YSB1c2luZyBycG1zZy4KPj4KPj4gU28gSSB3b25kZXIg d2hldGhlciBpdCdzIHdvcnRod2hpbGUgZm9yIGEgbmV3IGJ1cy4gQ2FuIHdlIHVzZSB0aGUgZXhp c3RlZAo+PiB2aXJ0aW8tYnVzL2RyaXZlcnM/IEl0IG1pZ2h0IHdvcmsgYXMsIGV4Y2VwdCBmb3Ig dGhlIGVwZiB0cmFuc3BvcnQsIHdlIGNhbgo+PiBpbnRyb2R1Y2UgYSBlcGYgInZob3N0IiB0cmFu c3BvcnQgZHJpdmVyLgo+IElNSE8gd2UnbGwgbmVlZCB0d28gYnVzZXMgb25lIGZvciBmcm9udGVu ZCBhbmQgb3RoZXIgZm9yIGJhY2tlbmQgYmVjYXVzZSB0aGUKPiB0d28gY29tcG9uZW50cyBjYW4g dGhlbiBjby1vcGVyYXRlL2ludGVyYWN0IHdpdGggZWFjaCBvdGhlciB0byBwcm92aWRlIGEKPiBm dW5jdGlvbmFsaXR5LiBUaG91Z2ggYm90aCB3aWxsIHNlZW1pbmdseSBwcm92aWRlIHNpbWlsYXIg Y2FsbGJhY2tzLCB0aGV5IGFyZQo+IGJvdGggcHJvdmlkZSBzeW1tZXRyaWNhbCBvciBjb21wbGlt ZW50YXJ5IGZ1bmNpdG9uYWxpdHkgYW5kIG5lZWQgbm90IGJlIHNhbWUgb3IKPiBpZGVudGljYWwu Cj4KPiBIYXZpbmcgdGhlIHNhbWUgYnVzIGNhbiBhbHNvIGNyZWF0ZSBzZXF1ZW5jaW5nIGlzc3Vl cy4KPgo+IElmIHlvdSBsb29rIGF0IHZpcnRpb19kZXZfcHJvYmUoKSBvZiB2aXJ0aW9fYnVzCj4K PiBkZXZpY2VfZmVhdHVyZXMgPSBkZXYtPmNvbmZpZy0+Z2V0X2ZlYXR1cmVzKGRldik7Cj4KPiBO b3cgaWYgd2UgdXNlIHNhbWUgYnVzIGZvciBib3RoIGZyb250LWVuZCBhbmQgYmFjay1lbmQsIGJv dGggd2lsbCB0cnkgdG8KPiBnZXRfZmVhdHVyZXMgd2hlbiB0aGVyZSBoYXMgYmVlbiBubyBzZXRf ZmVhdHVyZXMuIElkZWFsbHkgdmhvc3QgZGV2aWNlIHNob3VsZAo+IGJlIGluaXRpYWxpemVkIGZp cnN0IHdpdGggdGhlIHNldCBvZiBmZWF0dXJlcyBpdCBzdXBwb3J0cy4gVmhvc3QgYW5kIHZpcnRp bwo+IHNob3VsZCB1c2UgInN0YXR1cyIgYW5kICJmZWF0dXJlcyIgY29tcGxpbWVudGFyaWx5IGFu ZCBub3QgaWRlbnRpY2FsbHkuCgoKWWVzLCBidXQgdGhlcmUncyBubyBuZWVkIGZvciBkb2luZyBz dGF0dXMvZmVhdHVyZXMgcGFzc3Rocm91Z2ggaW4gZXBmIAp2aG9zdCBkcml2ZXJzLmIKCgo+Cj4g dmlydGlvIGRldmljZSAob3IgZnJvbnRlbmQpIGNhbm5vdCBiZSBpbml0aWFsaXplZCBiZWZvcmUg dmhvc3QgZGV2aWNlIChvcgo+IGJhY2tlbmQpIGdldHMgaW5pdGlhbGl6ZWQgd2l0aCBkYXRhIHN1 Y2ggYXMgZmVhdHVyZXMuIFNpbWlsYXJseSB2aG9zdCAoYmFja2VuZCkKPiBjYW5ub3QgYWNjZXNz IHZpcnF1ZXVlcyBvciBidWZmZXJzIGJlZm9yZSB2aXJ0aW8gKGZyb250ZW5kKSBzZXRzCj4gVklS VElPX0NPTkZJR19TX0RSSVZFUl9PSyB3aGVyZWFzIHRoYXQgcmVxdWlyZW1lbnQgaXMgbm90IHRo ZXJlIGZvciB2aXJ0aW8gYXMKPiB0aGUgcGh5c2ljYWwgbWVtb3J5IGZvciB2aXJ0cXVldWVzIGFy ZSBjcmVhdGVkIGJ5IHZpcnRpbyAoZnJvbnRlbmQpLgoKCmVwZiB2aG9zdCBkcml2ZXJzIG5lZWQg dG8gaW1wbGVtZW50IHR3byBkZXZpY2VzOiB2aG9zdCh2cmluZ2gpIGRldmljZSAKYW5kIHZpcnRp byBkZXZpY2UgKHdoaWNoIGlzIGEgbWVkaWF0ZWQgZGV2aWNlKS4gVGhlIHZob3N0KHZyaW5naCkg ZGV2aWNlIAppcyBkb2luZyBmZWF0dXJlIG5lZ290aWF0aW9uIHdpdGggdGhlIHZpcnRpbyBkZXZp Y2UgdmlhIFJDL0VQIG9yIE5UQi4gClRoZSB2aXJ0aW8gZGV2aWNlIGlzIGRvaW5nIGZlYXR1cmUg bmVnb3RpYXRpb24gd2l0aCBsb2NhbCB2aXJ0aW8gCmRyaXZlcnMuIElmIHRoZXJlJ3JlIGZlYXR1 cmUgbWlzbWF0Y2gsIGVwZiB2aG9zdCBkcml2ZXJzIGFuZCBkbyAKbWVkaWF0aW9uIGJldHdlZW4g dGhlbS4KCgo+Cj4+IEl0IHdpbGwgaGF2ZSB2aXJ0cXVldWVzIGJ1dCBvbmx5IHVzZWQgZm9yIHRo ZSBjb21tdW5pY2F0aW9uIGJldHdlZW4gaXRzZWxmIGFuZAo+PiB1cHB0ZXIgdmlydGlvIGRyaXZl ci4gQW5kIGl0IHdpbGwgaGF2ZSB2cmluZ2ggcXVldWVzIHdoaWNoIHdpbGwgYmUgcHJvYmUgYnkK Pj4gdmlydGlvIGVwZiB0cmFuc3BvcnQgZHJpdmVycy4gQW5kIGl0IG5lZWRzIHRvIGRvIGRhdGFj b3B5IGJldHdlZW4gdmlydHF1ZXVlIGFuZAo+PiB2cmluZ2ggcXVldWVzLgo+Pgo+PiBJdCB3b3Jr cyBsaWtlOgo+Pgo+PiB2aXJ0aW8gZHJpdmVycyA8LSB2aXJ0cXVldWUvdmlydGlvLWJ1cyAtPiBl cGYgdmhvc3QgZHJpdmVycyA8LSB2cmluZ2ggcXVldWUvZXBmPgo+Pgo+PiBUaGUgYWR2YW50YWdl cyBpcyB0aGF0IHRoZXJlJ3Mgbm8gbmVlZCBmb3Igd3JpdGluZyBuZXcgYnVzZXMgYW5kIGRyaXZl cnMuCj4gSSB0aGluayB0aGlzIHdpbGwgd29yayBob3dldmVyIHRoZXJlIGlzIGFuIGFkZHRpb25h bCBjb3B5IGJldHdlZW4gdnJpbmdoIHF1ZXVlCj4gYW5kIHZpcnRxdWV1ZSwKCgpJIHRoaW5rIG5v dD8gRS5nIGluIHVzZSBjYXNlIDEpLCBpZiB3ZSBzdGljayB0byB2aXJ0aW8gYnVzLCB3ZSB3aWxs IGhhdmU6Cgp2aXJ0aW8tcnBtc2cgKEVQKSA8LSB2aXJ0aW8gcmluZygxKSAtPiBlcGYgdmhvc3Qg ZHJpdmVyIChFUCkgPC0gdmlydGlvIApyaW5nKDIpIC0+IHZpcnRpbyBwY2kgKFJDKSA8LT4gdmly dGlvIHJwbXNnIChSQykKCldoYXQgZXBmIHZob3N0IGRyaXZlciBkaWQgaXMgdG8gcmVhZCBmcm9t IHZpcnRpbyByaW5nKDEpIGFib3V0IHRoZSAKYnVmZmVyIGxlbiBhbmQgYWRkciBhbmQgdGhlbSBE TUEgdG8gTGludXgoUkMpPwoKCj4gaW4gc29tZSBjYXNlcyBhZGRzIGxhdGVuY3kgYmVjYXVzZSBv ZiBmb3J3YXJkaW5nIGludGVycnVwdHMKPiBiZXR3ZWVuIHZob3N0IGFuZCB2aXJ0aW8gZHJpdmVy LCB2aG9zdCBkcml2ZXJzIHByb3ZpZGluZyBmZWF0dXJlcyAod2hpY2ggbWVhbnMKPiBpdCBoYXMg dG8gYmUgYXdhcmUgb2Ygd2hpY2ggdmlydGlvIGRyaXZlciB3aWxsIGJlIGNvbm5lY3RlZCkuCj4g dmlydGlvIGRyaXZlcnMgKGZyb250IGVuZCkgZ2VuZXJhbGx5IGFjY2VzcyB0aGUgYnVmZmVycyBm cm9tIGl0J3MgbG9jYWwgbWVtb3J5Cj4gYnV0IHdoZW4gaW4gYmFja2VuZCBpdCBjYW4gYWNjZXNz IG92ZXIgTU1JTyAobGlrZSBQQ0kgRVBGIG9yIE5UQikgb3IgdXNlcnNwYWNlLgo+PiBEb2VzIHRo aXMgbWFrZSBzZW5zZT8KPiBUd28gY29waWVzIGluIG15IG9waW5pb24gaXMgYW4gaXNzdWUgYnV0 IGxldHMgZ2V0IG90aGVycyBvcGluaW9ucyBhcyB3ZWxsLgoKClN1cmUuCgoKPgo+IFRoYW5rcyBm b3IgeW91ciBzdWdnZXN0aW9ucyEKCgpZb3UncmUgd2VsY29tZS4KClRoYW5rcwoKCj4KPiBSZWdh cmRzCj4gS2lzaG9uCj4KPj4gVGhhbmtzCj4+Cj4+Cj4+PiBUaGFua3MKPj4+IEtpc2hvbgo+Pj4K Pj4+PiBUaGFua3MKPj4+Pgo+Pj4+Cj4+Pj4+PiBLaXNob24gVmlqYXkgQWJyYWhhbSBJICgyMik6 Cj4+Pj4+PiAgwqDCoMKgIHZob3N0OiBNYWtlIF9mZWF0dXJlXyBiaXRzIGEgcHJvcGVydHkgb2Yg dmhvc3QgZGV2aWNlCj4+Pj4+PiAgwqDCoMKgIHZob3N0OiBJbnRyb2R1Y2Ugc3RhbmRhcmQgTGlu dXggZHJpdmVyIG1vZGVsIGluIFZIT1NUCj4+Pj4+PiAgwqDCoMKgIHZob3N0OiBBZGQgb3BzIGZv ciB0aGUgVkhPU1QgZHJpdmVyIHRvIGNvbmZpZ3VyZSBWSE9TVCBkZXZpY2UKPj4+Pj4+ICDCoMKg wqAgdnJpbmdoOiBBZGQgaGVscGVycyB0byBhY2Nlc3MgdnJpbmcgaW4gTU1JTwo+Pj4+Pj4gIMKg wqDCoCB2aG9zdDogQWRkIE1NSU8gaGVscGVycyBmb3Igb3BlcmF0aW9ucyBvbiB2aG9zdCB2aXJ0 cXVldWUKPj4+Pj4+ICDCoMKgwqAgdmhvc3Q6IEludHJvZHVjZSBjb25maWdmcyBlbnRyeSBmb3Ig Y29uZmlndXJpbmcgVkhPU1QKPj4+Pj4+ICDCoMKgwqAgdmlydGlvX3BjaTogVXNlIHJlcXVlc3Rf dGhyZWFkZWRfaXJxKCkgaW5zdGVhZCBvZiByZXF1ZXN0X2lycSgpCj4+Pj4+PiAgwqDCoMKgIHJw bXNnOiB2aXJ0aW9fcnBtc2dfYnVzOiBEaXNhYmxlIHJlY2VpdmUgdmlydHF1ZXVlIGNhbGxiYWNr IHdoZW4KPj4+Pj4+ICDCoMKgwqDCoMKgIHJlYWRpbmcgbWVzc2FnZXMKPj4+Pj4+ICDCoMKgwqAg cnBtc2c6IEludHJvZHVjZSBjb25maWdmcyBlbnRyeSBmb3IgY29uZmlndXJpbmcgcnBtc2cKPj4+ Pj4+ICDCoMKgwqAgcnBtc2c6IHZpcnRpb19ycG1zZ19idXM6IEFkZCBBZGRyZXNzIFNlcnZpY2Ug Tm90aWZpY2F0aW9uIHN1cHBvcnQKPj4+Pj4+ICDCoMKgwqAgcnBtc2c6IHZpcnRpb19ycG1zZ19i dXM6IE1vdmUgZ2VuZXJpYyBycG1zZyBzdHJ1Y3R1cmUgdG8KPj4+Pj4+ICDCoMKgwqDCoMKgIHJw bXNnX2ludGVybmFsLmgKPj4+Pj4+ICDCoMKgwqAgdmlydGlvOiBBZGQgb3BzIHRvIGFsbG9jYXRl IGFuZCBmcmVlIGJ1ZmZlcgo+Pj4+Pj4gIMKgwqDCoCBycG1zZzogdmlydGlvX3JwbXNnX2J1czog VXNlIHZpcnRpb19hbGxvY19idWZmZXIoKSBhbmQKPj4+Pj4+ICDCoMKgwqDCoMKgIHZpcnRpb19m cmVlX2J1ZmZlcigpCj4+Pj4+PiAgwqDCoMKgIHJwbXNnOiBBZGQgVkhPU1QgYmFzZWQgcmVtb3Rl IHByb2Nlc3NvciBtZXNzYWdpbmcgYnVzCj4+Pj4+PiAgwqDCoMKgIHNhbXBsZXMvcnBtc2c6IFNl dHVwIGRlbGF5ZWQgd29yayB0byBzZW5kIG1lc3NhZ2UKPj4+Pj4+ICDCoMKgwqAgc2FtcGxlcy9y cG1zZzogV2FpdCBmb3IgYWRkcmVzcyB0byBiZSBib3VuZCB0byBycGRldiBmb3Igc2VuZGluZwo+ Pj4+Pj4gIMKgwqDCoMKgwqAgbWVzc2FnZQo+Pj4+Pj4gIMKgwqDCoCBycG1zZy50eHQ6IEFkZCBE b2N1bWVudGF0aW9uIHRvIGNvbmZpZ3VyZSBycG1zZyB1c2luZyBjb25maWdmcwo+Pj4+Pj4gIMKg wqDCoCB2aXJ0aW9fcGNpOiBBZGQgVklSVElPIGRyaXZlciBmb3IgVkhPU1Qgb24gQ29uZmlndXJh YmxlIFBDSWUgRW5kcG9pbnQKPj4+Pj4+ICDCoMKgwqDCoMKgIGRldmljZQo+Pj4+Pj4gIMKgwqDC oCBQQ0k6IGVuZHBvaW50OiBBZGQgRVAgZnVuY3Rpb24gZHJpdmVyIHRvIHByb3ZpZGUgVkhPU1Qg aW50ZXJmYWNlCj4+Pj4+PiAgwqDCoMKgIE5UQjogQWRkIGEgbmV3IE5UQiBjbGllbnQgZHJpdmVy IHRvIGltcGxlbWVudCBWSVJUSU8gZnVuY3Rpb25hbGl0eQo+Pj4+Pj4gIMKgwqDCoCBOVEI6IEFk ZCBhIG5ldyBOVEIgY2xpZW50IGRyaXZlciB0byBpbXBsZW1lbnQgVkhPU1QgZnVuY3Rpb25hbGl0 eQo+Pj4+Pj4gIMKgwqDCoCBOVEI6IERlc2NyaWJlIHRoZSBudGJfdmlydGlvIGFuZCBudGJfdmhv c3QgY2xpZW50IGluIHRoZSBkb2N1bWVudGF0aW9uCj4+Pj4+Pgo+Pj4+Pj4gIMKgwqAgRG9jdW1l bnRhdGlvbi9kcml2ZXItYXBpL250Yi5yc3TCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqDC oCAxMSArCj4+Pj4+PiAgwqDCoCBEb2N1bWVudGF0aW9uL3JwbXNnLnR4dMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgIDU2ICsKPj4+Pj4+ICDCoMKgIGRy aXZlcnMvbnRiL0tjb25maWfCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHzCoMKgIDE4ICsKPj4+Pj4+ICDCoMKgIGRyaXZlcnMvbnRiL01ha2VmaWxl wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqDC oCAyICsKPj4+Pj4+ICDCoMKgIGRyaXZlcnMvbnRiL250Yl92aG9zdC5jwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDc3NiArKysrKysrKysrKwo+Pj4+Pj4g IMKgwqAgZHJpdmVycy9udGIvbnRiX3ZpcnRpby5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIHzCoCA4NTMgKysrKysrKysrKysrCj4+Pj4+PiAgwqDCoCBkcml2ZXJz L250Yi9udGJfdmlydGlvLmjCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgfMKgwqAgNTYgKwo+Pj4+Pj4gIMKgwqAgZHJpdmVycy9wY2kvZW5kcG9pbnQvZnVuY3Rpb25z L0tjb25maWfCoMKgwqDCoMKgwqDCoCB8wqDCoCAxMSArCj4+Pj4+PiAgwqDCoCBkcml2ZXJzL3Bj aS9lbmRwb2ludC9mdW5jdGlvbnMvTWFrZWZpbGXCoMKgwqDCoMKgwqAgfMKgwqDCoCAxICsKPj4+ Pj4+ICDCoMKgIC4uLi9wY2kvZW5kcG9pbnQvZnVuY3Rpb25zL3BjaS1lcGYtdmhvc3QuY8KgwqDC oCB8IDExNDQgKysrKysrKysrKysrKysrKwo+Pj4+Pj4gIMKgwqAgZHJpdmVycy9ycG1zZy9LY29u ZmlnwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKg IDEwICsKPj4+Pj4+ICDCoMKgIGRyaXZlcnMvcnBtc2cvTWFrZWZpbGXCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgwqAgMyArLQo+Pj4+Pj4gIMKgwqAg ZHJpdmVycy9ycG1zZy9ycG1zZ19jZnMuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgfMKgIDM5NCArKysrKysKPj4+Pj4+ICDCoMKgIGRyaXZlcnMvcnBtc2cvcnBtc2df Y29yZS5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqDCoCA3ICsK Pj4+Pj4+ICDCoMKgIGRyaXZlcnMvcnBtc2cvcnBtc2dfaW50ZXJuYWwuaMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCB8wqAgMTM2ICsrCj4+Pj4+PiAgwqDCoCBkcml2ZXJzL3JwbXNnL3Zo b3N0X3JwbXNnX2J1cy5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IDExNTEgKysrKysr KysrKysrKysrKysKPj4+Pj4+ICDCoMKgIGRyaXZlcnMvcnBtc2cvdmlydGlvX3JwbXNnX2J1cy5j wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDE4NCArKy0KPj4+Pj4+ICDCoMKgIGRyaXZl cnMvdmhvc3QvS2NvbmZpZ8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCB8wqDCoMKgIDEgKwo+Pj4+Pj4gIMKgwqAgZHJpdmVycy92aG9zdC9NYWtlZmlsZcKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqDCoCAyICst Cj4+Pj4+PiAgwqDCoCBkcml2ZXJzL3Zob3N0L25ldC5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqDCoCAxMCArLQo+Pj4+Pj4gIMKgwqAgZHJp dmVycy92aG9zdC9zY3NpLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCB8wqDCoCAyNCArLQo+Pj4+Pj4gIMKgwqAgZHJpdmVycy92aG9zdC90ZXN0LmPC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqDCoCAx NyArLQo+Pj4+Pj4gIMKgwqAgZHJpdmVycy92aG9zdC92ZHBhLmPCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqDCoMKgIDIgKy0KPj4+Pj4+ICDCoMKg IGRyaXZlcnMvdmhvc3Qvdmhvc3QuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCB8wqAgNzMwICsrKysrKysrKystCj4+Pj4+PiAgwqDCoCBkcml2ZXJzL3Zo b3N0L3Zob3N0X2Nmcy5jwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8 wqAgMzQxICsrKysrCj4+Pj4+PiAgwqDCoCBkcml2ZXJzL3Zob3N0L3ZyaW5naC5jwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqAgMzMyICsrKysrCj4+Pj4+ PiAgwqDCoCBkcml2ZXJzL3Zob3N0L3Zzb2NrLmPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqAgMjAgKy0KPj4+Pj4+ICDCoMKgIGRyaXZlcnMvdmly dGlvL0tjb25maWfCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHzCoMKgwqAgOSArCj4+Pj4+PiAgwqDCoCBkcml2ZXJzL3ZpcnRpby9NYWtlZmlsZcKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgwqAgMSArCj4+Pj4+PiAg wqDCoCBkcml2ZXJzL3ZpcnRpby92aXJ0aW9fcGNpX2NvbW1vbi5jwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCB8wqDCoCAyNSArLQo+Pj4+Pj4gIMKgwqAgZHJpdmVycy92aXJ0aW8vdmlydGlvX3BjaV9l cGYuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDY3MCArKysrKysrKysrCj4+Pj4+ PiAgwqDCoCBpbmNsdWRlL2xpbnV4L21vZF9kZXZpY2V0YWJsZS5owqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCB8wqDCoMKgIDYgKwo+Pj4+Pj4gIMKgwqAgaW5jbHVkZS9saW51eC9ycG1zZy5o wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgwqAg NiArCj4+Pj4+PiAgwqDCoCB7ZHJpdmVycy92aG9zdCA9PiBpbmNsdWRlL2xpbnV4fS92aG9zdC5o wqDCoMKgwqDCoCB8wqAgMTMyICstCj4+Pj4+PiAgwqDCoCBpbmNsdWRlL2xpbnV4L3ZpcnRpby5o wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8wqDCoMKgIDMg Kwo+Pj4+Pj4gIMKgwqAgaW5jbHVkZS9saW51eC92aXJ0aW9fY29uZmlnLmjCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCB8wqDCoCA0MiArCj4+Pj4+PiAgwqDCoCBpbmNsdWRlL2xpbnV4 L3ZyaW5naC5owqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8 wqDCoCA0NiArCj4+Pj4+PiAgwqDCoCBzYW1wbGVzL3JwbXNnL3JwbXNnX2NsaWVudF9zYW1wbGUu Y8KgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoMKgIDMyICstCj4+Pj4+PiAgwqDCoCB0b29scy92aXJ0 aW8vdmlydGlvX3Rlc3QuY8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzC oMKgwqAgMiArLQo+Pj4+Pj4gIMKgwqAgMzkgZmlsZXMgY2hhbmdlZCwgNzA4MyBpbnNlcnRpb25z KCspLCAxODMgZGVsZXRpb25zKC0pCj4+Pj4+PiAgwqDCoCBjcmVhdGUgbW9kZSAxMDA2NDQgZHJp dmVycy9udGIvbnRiX3Zob3N0LmMKPj4+Pj4+ICDCoMKgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2 ZXJzL250Yi9udGJfdmlydGlvLmMKPj4+Pj4+ICDCoMKgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2 ZXJzL250Yi9udGJfdmlydGlvLmgKPj4+Pj4+ICDCoMKgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2 ZXJzL3BjaS9lbmRwb2ludC9mdW5jdGlvbnMvcGNpLWVwZi12aG9zdC5jCj4+Pj4+PiAgwqDCoCBj cmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ycG1zZy9ycG1zZ19jZnMuYwo+Pj4+Pj4gIMKgwqAg Y3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvcnBtc2cvdmhvc3RfcnBtc2dfYnVzLmMKPj4+Pj4+ ICDCoMKgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL3Zob3N0L3Zob3N0X2Nmcy5jCj4+Pj4+ PiAgwqDCoCBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy92aXJ0aW8vdmlydGlvX3BjaV9lcGYu Ywo+Pj4+Pj4gIMKgwqAgcmVuYW1lIHtkcml2ZXJzL3Zob3N0ID0+IGluY2x1ZGUvbGludXh9L3Zo b3N0LmggKDY2JSkKPj4+Pj4+Cj4+Pj4+PiAtLSAKPj4+Pj4+IDIuMTcuMQo+Pj4+Pj4KCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClZpcnR1YWxpemF0aW9u IG1haWxpbmcgbGlzdApWaXJ0dWFsaXphdGlvbkBsaXN0cy5saW51eC1mb3VuZGF0aW9uLm9yZwpo dHRwczovL2xpc3RzLmxpbnV4Zm91bmRhdGlvbi5vcmcvbWFpbG1hbi9saXN0aW5mby92aXJ0dWFs aXphdGlvbg==