From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [PATCH v2 1/5] drm: Add helpers to kick off self refresh mode in drivers Date: Tue, 2 Apr 2019 12:47:29 -0400 Message-ID: <20190402164729.GA17077@art_vandelay> References: <20190328210303.GM114153@art_vandelay> <20190329082110.GA2665@phenom.ffwll.local> <20190329131659.GO114153@art_vandelay> <20190329153632.GP2665@phenom.ffwll.local> <20190329181011.GP114153@art_vandelay> <20190401134930.GS114153@art_vandelay> <20190402074900.GZ2665@phenom.ffwll.local> <20190402132433.GT114153@art_vandelay> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-qt1-x842.google.com (mail-qt1-x842.google.com [IPv6:2607:f8b0:4864:20::842]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0180D6E448 for ; Tue, 2 Apr 2019 16:47:31 +0000 (UTC) Received: by mail-qt1-x842.google.com with SMTP id k2so16075751qtm.1 for ; Tue, 02 Apr 2019 09:47:31 -0700 (PDT) Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Daniel Vetter Cc: Zain Wang , David Airlie , Jose Souza , Tomasz Figa , Maxime Ripard , Sean Paul , dri-devel , Sean Paul List-Id: dri-devel@lists.freedesktop.org T24gVHVlLCBBcHIgMDIsIDIwMTkgYXQgMDY6MDU6NDhQTSArMDIwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBUdWUsIEFwciAyLCAyMDE5IGF0IDM6MjQgUE0gU2VhbiBQYXVsIDxzZWFuQHBv b3JseS5ydW4+IHdyb3RlOgo+ID4KPiA+IE9uIFR1ZSwgQXByIDAyLCAyMDE5IGF0IDA5OjQ5OjAw QU0gKzAyMDAsIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gPiA+IE9uIE1vbiwgQXByIDAxLCAyMDE5 IGF0IDA5OjQ5OjMwQU0gLTA0MDAsIFNlYW4gUGF1bCB3cm90ZToKPiA+ID4gPiBPbiBGcmksIE1h ciAyOSwgMjAxOSBhdCAwODoyMTozMVBNICswMTAwLCBEYW5pZWwgVmV0dGVyIHdyb3RlOgo+ID4g PiA+ID4gT24gRnJpLCBNYXIgMjksIDIwMTkgYXQgNzoxMCBQTSBTZWFuIFBhdWwgPHNlYW5AcG9v cmx5LnJ1bj4gd3JvdGU6Cj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IE9uIEZyaSwgTWFyIDI5LCAy MDE5IGF0IDA0OjM2OjMyUE0gKzAxMDAsIERhbmllbCBWZXR0ZXIgd3JvdGU6Cj4gPiA+ID4gPiA+ ID4gT24gRnJpLCBNYXIgMjksIDIwMTkgYXQgMDk6MTY6NTlBTSAtMDQwMCwgU2VhbiBQYXVsIHdy b3RlOgo+ID4gPiA+ID4gPiA+ID4gT24gRnJpLCBNYXIgMjksIDIwMTkgYXQgMDk6MjE6MTBBTSAr MDEwMCwgRGFuaWVsIFZldHRlciB3cm90ZToKPiA+ID4gPiA+ID4gPiA+ID4gT24gVGh1LCBNYXIg MjgsIDIwMTkgYXQgMDU6MDM6MDNQTSAtMDQwMCwgU2VhbiBQYXVsIHdyb3RlOgo+ID4gPiA+ID4g PiA+ID4gPiA+IE9uIFdlZCwgTWFyIDI3LCAyMDE5IGF0IDA3OjE1OjAwUE0gKzAxMDAsIERhbmll bCBWZXR0ZXIgd3JvdGU6Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBPbiBUdWUsIE1hciAyNiwgMjAx OSBhdCAwNDo0NDo1NFBNIC0wNDAwLCBTZWFuIFBhdWwgd3JvdGU6Cj4gPiA+ID4gPiA+ID4gPiA+ ID4gPiA+IEZyb206IFNlYW4gUGF1bCA8c2VhbnBhdWxAY2hyb21pdW0ub3JnPgo+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBUaGlzIHBhdGNoIGFkZHMgYSBu ZXcgZHJtIGhlbHBlciBsaWJyYXJ5IHRvIGhlbHAgZHJpdmVycyBpbXBsZW1lbnQKPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gc2VsZiByZWZyZXNoLiBEcml2ZXJzIGNob29zaW5nIHRvIHVzZSBpdCB3 aWxsIHJlZ2lzdGVyIGNydGNzIGFuZAo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiB3aWxsIHJlY2Vp dmUgY2FsbGJhY2tzIHdoZW4gaXQncyB0aW1lIHRvIGVudGVyIG9yIGV4aXQgc2VsZiByZWZyZXNo Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IG1vZGUuCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+Cj4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+IEluIGl0cyBjdXJyZW50IGZvcm0sIGl0IGhhcyBhIHRpbWVy IHdoaWNoIHdpbGwgdHJpZ2dlciBhZnRlciBhCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGRyaXZl ci1zcGVjaWZpZWQgYW1vdW50IG9mIGluYWN0aXZpdHkuIFdoZW4gdGhlIHRpbWVyIHRyaWdnZXJz LCB0aGUKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gaGVscGVycyB3aWxsIHN1Ym1pdCBhIG5ldyBh dG9taWMgY29tbWl0IHRvIHNodXQgdGhlIHJlZnJlc2hpbmcgcGlwZQo+ID4gPiA+ID4gPiA+ID4g PiA+ID4gPiBvZmYuIE9uIHRoZSBuZXh0IGF0b21pYyBjb21taXQsIHRoZSBkcm0gY29yZSB3aWxs IHJldmVydCB0aGUgc2VsZgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiByZWZyZXNoIHN0YXRlIGFu ZCBicmluZyBldmVyeXRoaW5nIGJhY2sgdXAgdG8gYmUgYWN0aXZlbHkgZHJpdmVuLgo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBGcm9tIHRoZSBkcml2ZXIn cyBwZXJzcGVjdGl2ZSwgdGhpcyB3b3JrcyBsaWtlIGEgcmVndWxhciBkaXNhYmxlL2VuYWJsZQo+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBjeWNsZS4gVGhlIGRyaXZlciBuZWVkIG9ubHkgY2hlY2sg dGhlICdzZWxmX3JlZnJlc2hfYWN0aXZlJyBhbmQvb3IKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4g J3NlbGZfcmVmcmVzaF9jaGFuZ2VkJyBzdGF0ZSBpbiBjcnRjX3N0YXRlIGFuZCBjb25uZWN0b3Jf c3RhdGUuIEl0Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IHNob3VsZCBpbml0aWF0ZSBzZWxmIHJl ZnJlc2ggbW9kZSBvbiB0aGUgcGFuZWwgYW5kIGVudGVyIGFuIG9mZiBvcgo+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiBsb3ctcG93ZXIgc3RhdGUuCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ ID4gPiA+ID4gPiA+ID4gPiA+IENoYW5nZXMgaW4gdjI6Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ IC0gcy9wc3Ivc2VsZl9yZWZyZXNoLyAoRGFuaWVsKQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAt IGludGVncmF0ZWQgdGhlIHBzciBleGl0IGludG8gdGhlIGNvbW1pdCB0aGF0IHdha2VzIGl0IHVw IChKb3NlL0RhbmllbCkKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gLSBtYWRlIHRoZSBwc3Igc3Rh dGUgcGVyLWNydGMgKEpvc2UvRGFuaWVsKQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gPiBMaW5rIHRvIHYxOiBodHRwczovL3BhdGNod29yay5mcmVlZGVza3Rv cC5vcmcvcGF0Y2gvbXNnaWQvMjAxOTAyMjgyMTA5MzkuODMzODYtMi1zZWFuQHBvb3JseS5ydW4K PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gQ2M6IERhbmll bCBWZXR0ZXIgPGRhbmllbEBmZndsbC5jaD4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gQ2M6IEpv c2UgU291emEgPGpvc2Uuc291emFAaW50ZWwuY29tPgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiBD YzogWmFpbiBXYW5nIDx3enpAcm9jay1jaGlwcy5jb20+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ IENjOiBUb21hc3ogRmlnYSA8dGZpZ2FAY2hyb21pdW0ub3JnPgo+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiBTaWduZWQtb2ZmLWJ5OiBTZWFuIFBhdWwgPHNlYW5wYXVsQGNocm9taXVtLm9yZz4KPiA+ ID4gPiA+ID4gPiA+ID4gPiA+ID4gLS0tCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICBEb2N1bWVu dGF0aW9uL2dwdS9kcm0ta21zLWhlbHBlcnMucnN0ICAgICB8ICAgOSArCj4gPiA+ID4gPiA+ID4g PiA+ID4gPiA+ICBkcml2ZXJzL2dwdS9kcm0vTWFrZWZpbGUgICAgICAgICAgICAgICAgICB8ICAg MyArLQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWMu YyAgICAgICAgICAgICAgfCAgIDQgKwo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgZHJpdmVycy9n cHUvZHJtL2RybV9hdG9taWNfaGVscGVyLmMgICAgICAgfCAgMzYgKysrLQo+ID4gPiA+ID4gPiA+ ID4gPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNfc3RhdGVfaGVscGVyLmMgfCAg IDggKwo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgZHJpdmVycy9ncHUvZHJtL2RybV9hdG9taWNf dWFwaS5jICAgICAgICAgfCAgIDUgKy0KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gIGRyaXZlcnMv Z3B1L2RybS9kcm1fc2VsZl9yZWZyZXNoX2hlbHBlci5jIHwgMjEyICsrKysrKysrKysrKysrKysr KysrKysKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gIGluY2x1ZGUvZHJtL2RybV9hdG9taWMuaCAg ICAgICAgICAgICAgICAgIHwgIDE1ICsrCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICBpbmNsdWRl L2RybS9kcm1fY29ubmVjdG9yLmggICAgICAgICAgICAgICB8ICAzMSArKysrCj4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ICBpbmNsdWRlL2RybS9kcm1fY3J0Yy5oICAgICAgICAgICAgICAgICAgICB8 ICAxOSArKwo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgaW5jbHVkZS9kcm0vZHJtX3NlbGZfcmVm cmVzaF9oZWxwZXIuaCAgICAgfCAgMjMgKysrCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAxMSBm aWxlcyBjaGFuZ2VkLCAzNjAgaW5zZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vZHJtX3Nl bGZfcmVmcmVzaF9oZWxwZXIuYwo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgY3JlYXRlIG1vZGUg MTAwNjQ0IGluY2x1ZGUvZHJtL2RybV9zZWxmX3JlZnJlc2hfaGVscGVyLmgKPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiAvc25pcAo+ID4gPiA+ ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gaW5kZXggNDk4NTM4NGU1MWY2Li5lYzkw YzUyN2RlZWQgMTAwNjQ0Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IC0tLSBhL2RyaXZlcnMvZ3B1 L2RybS9kcm1fYXRvbWljX3N0YXRlX2hlbHBlci5jCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsr KyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1fYXRvbWljX3N0YXRlX2hlbHBlci5jCj4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+IEBAIC0xMDUsNiArMTA1LDEwIEBAIHZvaWQgX19kcm1fYXRvbWljX2hlbHBl cl9jcnRjX2R1cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX2NydGMgKmNydGMsCj4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ICAgICBzdGF0ZS0+Y29tbWl0ID0gTlVMTDsKPiA+ID4gPiA+ID4gPiA+ID4g PiA+ID4gICAgIHN0YXRlLT5ldmVudCA9IE5VTEw7Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAg ICBzdGF0ZS0+cGFnZWZsaXBfZmxhZ3MgPSAwOwo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiArCj4g PiA+ID4gPiA+ID4gPiA+ID4gPiA+ICsgICAvKiBTZWxmIHJlZnJlc2ggc2hvdWxkIGJlIGNhbmNl bGVkIHdoZW4gYSBuZXcgdXBkYXRlIGlzIGF2YWlsYWJsZSAqLwo+ID4gPiA+ID4gPiA+ID4gPiA+ ID4gPiArICAgc3RhdGUtPmFjdGl2ZSA9IGRybV9hdG9taWNfY3J0Y19lZmZlY3RpdmVseV9hY3Rp dmUoc3RhdGUpOwo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgc3RhdGUtPnNlbGZfcmVmcmVz aF9hY3RpdmUgPSBmYWxzZTsKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gIH0KPiA+ID4gPiA+ID4g PiA+ID4gPiA+ID4gIEVYUE9SVF9TWU1CT0woX19kcm1fYXRvbWljX2hlbHBlcl9jcnRjX2R1cGxp Y2F0ZV9zdGF0ZSk7Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+ID4g PiA+IEBAIC0zNzAsNiArMzc0LDEwIEBAIF9fZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2R1 cGxpY2F0ZV9zdGF0ZShzdHJ1Y3QgZHJtX2Nvbm5lY3RvciAqY29ubmVjdG9yLAo+ID4gPiA+ID4g PiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAgLyogRG9uJ3QgY29weSBv dmVyIGEgd3JpdGViYWNrIGpvYiwgdGhleSBhcmUgdXNlZCBvbmx5IG9uY2UgKi8KPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gICAgIHN0YXRlLT53cml0ZWJhY2tfam9iID0gTlVMTDsKPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ID4gKwo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgLyogU2VsZiByZWZy ZXNoIHNob3VsZCBiZSBjYW5jZWxlZCB3aGVuIGEgbmV3IHVwZGF0ZSBpcyBhdmFpbGFibGUgKi8K PiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgIHN0YXRlLT5zZWxmX3JlZnJlc2hfY2hhbmdlZCA9 IHN0YXRlLT5zZWxmX3JlZnJlc2hfYWN0aXZlOwo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiArICAg c3RhdGUtPnNlbGZfcmVmcmVzaF9hY3RpdmUgPSBmYWxzZTsKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiBXaHkgdGhlIGR1cGxpY2F0aW9uIGluIHNlbGYtcmVmcmVz aCB0cmFja2luZz8gQ29ubmVjdG9ycyBuZXZlciBoYXZlIGEKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ IGRpZmZlcmVudCBzZWxmLXJlZnJlc2ggc3RhdGUsIGFuZCB5b3UgY2FuIGFsd2F5cyBsb29rIGF0 IHRoZSByaWdodAo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gY3J0Y19zdGF0ZS4gRHVwbGljYXRpb24g anVzdCBnaXZlcyB1cyB0aGUgY2hhbmNlIHRvIHNjcmV3IHVwIGFuZCBnZXQgb3V0Cj4gPiA+ID4g PiA+ID4gPiA+ID4gPiBvZiBzeW5jIChlLmcuIGlmIHRoZSBjcnRjIGZvciBhIGNvbm5lY3RvciBj aGFuZ2VzKS4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4g PiA+ID4gPiA+ID4gPiBPbiBkaXNhYmxlIHRoZSBjcnRjIGlzIGNsZWFyZWQgZnJvbSBjb25uZWN0 b3Jfc3RhdGUsIHNvIHdlIGRvbid0IGhhdmUgYWNjZXNzIHRvCj4gPiA+ID4gPiA+ID4gPiA+ID4g aXQuIElmIEkgYWRkIHRoZSBhcHByb3ByaWF0ZSBhdG9taWNfZW5hYmxlL2Rpc2FibGUgaG9va3Mg YXMgc3VnZ2VzdGVkIGJlbG93LCB3ZQo+ID4gPiA+ID4gPiA+ID4gPiA+IHNob3VsZCBiZSBhYmxl IHRvIG51a2UgdGhlc2UuCj4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+IFllYWgg d2UnZCBuZWVkIHRoZSBvbGQgc3RhdGUgdG8gbG9vayBhdCB0aGUgY3J0YyBhbmQgYWxsIHRoYXQu IFdoaWNoIGlzIGEKPiA+ID4gPiA+ID4gPiA+ID4gbG90IG1vcmUgdHJpY2tpZXIuCj4gPiA+ID4g PiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+IFNpbmNlIGl0J3Mgc3VjaCBhIHNwZWNpYWwgY2Fz ZSwgc2hvdWxkIHdlIGhhdmUgYSBkZWRpY2F0ZWQgY2FsbGJhY2sgZm9yCj4gPiA+ID4gPiA+ID4g PiA+IHRoZSBkaXJlY3Qgc2VsZi1yZWZyZXNoIC0+IGNvbXBsZXRlbHkgb2ZmIHRyYW5zaXRpb24/ IEl0J2xsIGJlIGFzeW1ldHJpYywKPiA+ID4gPiA+ID4gPiA+ID4gYnV0IHRoYXQncyB0aGUgbmF0 dXJlIG9mIHRoaXMgSSB0aGluay4KPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiBSaWdo dCwgdGhlIGFzeW1tZXRyeSBpcyByZWFsbHkgYW5ub3lpbmcgaGVyZS4gSWYgdGhlIGRyaXZlciBp cyBTUi1hd2FyZSwgaXQgbWFrZXMKPiA+ID4gPiA+ID4gPiA+IHNlbnNlIHNpbmNlIFNSLWFjdGl2 ZSB0byBkaXNhYmxlIGlzIGEgcmVhbCB0cmFuc2l0aW9uLiBIb3dldmVyIGlmIHRoZSBkcml2ZXIg aXMKPiA+ID4gPiA+ID4gPiA+IG5vdCBTUi1hd2FyZSAoaWU6IGl0IGp1c3QgZ2V0cyB0dXJuZWQg b2ZmIHdoZW4gU1IgYmVjb21lcyBhY3RpdmUpLCB0aGUgZGlzYWJsZQo+ID4gPiA+ID4gPiA+ID4g ZnVuY3Rpb24gZ2V0cyBjYWxsZWQgdHdpY2Ugd2l0aG91dCBhbiBlbmFibGUuIFNvIHRoYXQgY2hh bmdlcyB0aGUgImZvciBldmVyeQo+ID4gPiA+ID4gPiA+ID4gZW5hYmxlIHRoZXJlIGlzIGEgZGlz YWJsZSBhbmQgdmljZSB2ZXJzYSIgYXNzdW1wdGlvbi4KPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4g PiA+ID4gPiBUaGlzIGlzIG9uZSBvZiB0aGUgYmVuZWZpdHMgb2YgdGhlIHYxIGRlc2lnbiwgU1Ig d2FzIGJvbHRlZCBvbiBhbmQgbm8gZXhpc3RpbmcKPiA+ID4gPiA+ID4gPiA+IHJ1bGVzIChhc3lu Yy9ub19tb2Rlc2V0L2VuYWJsZS1kaXNhYmxlIHBhaXJzKSB3ZXJlIFtleHBsaWNpdGx5XSBicm9r ZW4uIFRoYXQncwo+ID4gPiA+ID4gPiA+ID4gbm90IHRvIHNheSBpdCB3YXMgYmV0dGVyLCBpdCB3 YXNuJ3QsIGJ1dCBpdCB3YXMgYSBiaWcgY29uc2lkZXJhdGlvbi4KPiA+ID4gPiA+ID4gPiA+Cj4g PiA+ID4gPiA+ID4gPiBTbywgd2hhdCB0byBkby4KPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ ID4gPiBJIHJlYWxseSBsaWtlIHRoZSBpZGVhIHRoYXQgZHJpdmVycyBzaG91bGRuJ3QgaGF2ZSB0 byBiZSBTUi1hd2FyZSB0byBiZSBpbnZvbHZlZAo+ID4gPiA+ID4gPiA+ID4gaW4gdGhlIHBpcGVs aW5lLiBTbyBpZiB3ZSBhZGQgYSBob29rIGZvciB0aGlzIGxpa2UgeW91IHN1Z2dlc3QsIHdlIGNv dWxkIGF2b2lkCj4gPiA+ID4gPiA+ID4gPiBjYWxsaW5nIGRpc2FibGUgdHdpY2Ugb24gYW55dGhp bmcgbm90IFNSLWF3YXJlLiBXZSB3b3VsZCBuZWVkIHRvIGFkZCB0aGUgaG9vayBvbgo+ID4gPiA+ ID4gPiA+ID4gY3J0Yy9lbmNvZGVyL2JyaWRnZSB0byBtYWtlIHN1cmUgeW91IGNvdWxkIG1peCBu JyBtYXRjaCBTUi1hd2FyZSBhbmQKPiA+ID4gPiA+ID4gPiA+IG5vbi1TUi1hd2FyZSBkZXZpY2Vz Lgo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IEl0IHByb2JhYmx5IG1ha2VzIHNlbnNl IHRvIGp1c3QgYWRkIG1hdGNoaW5nIFNSIGhvb2tzIGF0IHRoaXMgcG9pbnQuIFNpbmNlIGlmCj4g PiA+ID4gPiA+ID4gPiB0aGUgZHJpdmVyIGlzIGRvaW5nIHNvbWV0aGluZyBzcGVjaWFsIGluIGRp c2FibGUsIGl0J2xsIG5lZWQgdG8gZG8gc29tZXRoaW5nCj4gPiA+ID4gPiA+ID4gPiBzcGVjaWFs IGluIGVuYWJsZS4gSXQgYWxzbyByZXNlcnZlcyBlbmFibGUgYW5kIGRpc2FibGUgZm9yIHdoYXQg dGhleSd2ZQo+ID4gPiA+ID4gPiA+ID4gdHJhZGl0aW9uYWxseSBkb25lLiBJZiBhIGRldmljZSBp cyBub3QgU1ItYXdhcmUsIGl0J2xsIGp1c3QgZmFsbCBiYWNrIHRvIHRoZQo+ID4gPiA+ID4gPiA+ ID4gZnVsbCBlbmFibGUvZGlzYWJsZSBhbmQgd2UnbGwgbWFrZSBzdXJlIHRvIG5vdCBkb3VibGUg dXAgb24gdGhlIGRpc2FibGUgaW4gdGhlCj4gPiA+ID4gPiA+ID4gPiBoZWxwZXJzLgo+ID4gPiA+ ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+IFNvIHdlJ2xsIGtlZXAgc3ltbWV0cnksIGFuZCBhdm9p ZCBoYXZpbmcgYW4gYXdmdWwgaG9vayBuYW1lIGxpa2UKPiA+ID4gPiA+ID4gPiA+IGRpc2FibGVf ZnJvbV9zZWxmX3JlZnJlc2guLiB5dWNrIQo+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ IFRob3VnaHRzPwo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gSSBsaWtlIHRoZSBhc3ltZXRy eSBhY3R1YWxseSwgaXQgaGFzIGdyb3duIG9uIGEgYml0IHdoaWxlIHdvcmtpbmcgb3V0IGFuZAo+ ID4gPiA+ID4gPiA+IHBvbmRlcmluZyB0aGlzIDotKQo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ Cj4gPiA+ID4gPiA+IEknbSBub3QgcXVpdGUgdGhlcmUgd2l0aCB5b3UsIEkgc3RpbGwgdGhpbmsg aXQncyBiZXR0ZXIgdG8gc3BsaXQgaXQgYWxsIG91dC4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4g PiBCZW5lZml0czoKPiA+ID4gPiA+ID4gPiAtIHdlIGtlZXAgdGhlIDEwMCUgc3ltbWV0cnkgb2Yg ZW5hYmxlL2Rpc2FibGUgaG9va3MKPiA+ID4gPiA+ID4gPiAtIHNlbGYtcmVmcmVzaCBhd2FyZSBj b25uZWN0b3IgY29kZSBhbHNvIGdldHMgYSBiaXQgc2ltcGxlciBJIHRoaW5rOiBpbgo+ID4gPiA+ ID4gPiA+ICAgdGhlIG5vcm1hbCBlbmFibGUvZGlzYWJsZSBob29rcyBpdCBjYW4ganVzdCBjaGVj ayBmb3IKPiA+ID4gPiA+ID4gPiAgIGNvbm5lY3Rvci0+c3RhdGUtPmNydGMtPnN0YXRlLT5zZWxm X3JlZnJlc2hfYWN0aXZlIGZvciBzciBzdGF0ZSBjaGFuZ2VzCj4gPiA+ID4gPiA+ID4gICB3aGls ZSB0aGUgcGlwZSBpcyBsb2dpY2FsbHkgc3RheWluZyBvbgo+ID4gPiA+ID4gPiA+IC0gdGhlIG9u ZSBhc3ltbWV0cmljIGNhc2UgZHVlIHRvIHRoaXMgZGVzaWduIHdoZXJlIHdlIGRpc2FibGUgdGhl IHBpcGUKPiA+ID4gPiA+ID4gPiAgIGhhcmRlciBoYXMgYW4gYXdrd2FyZCBzcGVjaWFsIGhvb2ss IHdoaWNoIGdpdmVzIHVzIGEgZ3JlYXQgb3Bwb3J0dW5pdHkKPiA+ID4gPiA+ID4gPiAgIHRvIGV4 cGxhaW4gd2h5IGl0J3MgbmVlZGVkCj4gPiA+ID4gPiA+ID4gLSBub3RoaW5nIGNoYW5nZXMgZm9y IG5vbi1zciBhd2FyZSBkcml2ZXJzCj4gPiA+ID4gPiA+ID4gLSBhbHNvIG5vIG5lZWQgdG8gZHVw bGljYXRlIHNyIHN0YXRlIGludG8gY29ubmVjdG9ycywgc2luY2UgaXQncyBhbGwKPiA+ID4gPiA+ ID4gPiAgIGZhaXJseSBleHBsaXQgYWxyZWFkeSBpbiBhbGwgdGhyZWUgc3RhdGUgdHJhbnNpdGlv bnMuCj4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+IFRvIGJlIGZhaXIsIG9ubHkgb25lIG9mIHRoZXNl IGlzIGV4Y2x1c2l2ZSB0byBhc3ltbWV0cnksIGFuZCBpdCdzIHRoZSBvbmUgdGhhdAo+ID4gPiA+ ID4gPiBwcm92aWRlcyB0aGUgb3Bwb3J0dW5pdHkgdG8gYWRkIGEgY29tbWVudC4gSWYgdGhlIHNy IGZ1bmN0aW9ucyBhcmUgc3ltbWV0cmljLAo+ID4gPiA+ID4gPiB0aGUgY29kZSBiZWNvbWVzIG11 Y2ggbW9yZSAibm9ybWFsIiBhbmQgbGVzcyBkZXNlcnZpbmcgb2YgdGhlIGV4cGxhbmF0aW9uLgo+ ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBUaGUgcmVhc29uIEkgd291bGQgbGlrZSB0byBzcGxpdCBv dXQgZW50cnkgYW5kIGV4aXQgaXMgdGhhdCBpdCBtYWtlcyB0aGUgZHJpdmVyCj4gPiA+ID4gPiA+ IGNvZGUgYSBiaXQgZWFzaWVyIHRvIHJhdGlvbmFsaXplLiBDdXJyZW50bHkgd2UgbmVlZCB0byBj aGVjayB0aGUgc3RhdGUgYXQgdGhlCj4gPiA+ID4gPiA+IGJlZ2lubmluZyBvZiBlbmFibGUvZGlz YWJsZSB0byBkZXRlcm1pbmUgd2hldGhlciB3ZSB3YW50IHRoZSBmdWxsIGVuYWJsZS9kaXNhYmxl Cj4gPiA+ID4gPiA+IG9yIHRoZSBwc3IgZXhpdC9lbnRlci4gU28gdGhlIHNyX2Rpc2FibGUgZnVu Y3Rpb24gd291bGQgcmVhbGx5IGp1c3QgYmUgcGxhaW4KPiA+ID4gPiA+ID4gb2xkIGRpc2FibGUg d2l0aG91dCB0aGUgc3BlY2lhbCBjYXNpbmcgYXQgdGhlIHRvcC4gSW4gdGhhdCBjYXNlLCB3ZSBk b24ndCBldmVuCj4gPiA+ID4gPiA+IG5lZWQgdGhlIHNlcGFyYXRlIGZ1bmN0aW9uLCB3ZSBjb3Vs ZCBqdXN0IGxpbWl0IGRpc2FibGUgY2FsbHMgb25seSBvbiB0aG9zZQo+ID4gPiA+ID4gPiBvYmpl Y3RzIHdoaWNoIGFyZSBlZmZlY3RpdmVseSBvbiAoYWN0aXZlIHx8IHNyKS4gVGhhdCBzdGFydHMg c291bmRpbmcgYSBsb3QgbGlrZQo+ID4gPiA+ID4gPiB3aGF0IHdlIGFscmVhZHkgaGF2ZSBoZXJl Lgo+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiBGdXJ0aGVyLCBkb2luZyBTUiBpbiBlbmFibGUvZGlz YWJsZSBpcyByZWFsbHkganVzdCBsZWdhY3kgZnJvbSB2MSB3aGljaCB0cmllZCB0bwo+ID4gPiA+ ID4gPiBrZWVwIGFzIG11Y2ggdGhlIHNhbWUgYXMgcG9zc2libGUuIE5vdyB0aGF0IHdlJ3JlICJp biBpdCIsIEkgdGhpbmsgaXQgbWFrZXMKPiA+ID4gPiA+ID4gc2Vuc2UgdG8gZ28gYWxsIGluIGFu ZCBtYWtlIFNSIGEgZmlyc3QgY2xhc3MgY2l0aXplbi4KPiA+ID4gPiA+Cj4gPiA+ID4gPiBIbSwg cXVlc3Rpb24gaXM6IEhvdyBtYW55IGhvb2tzIGRvIHlvdSBuZWVkPyBKdXN0IHNvbWV0aGluZyBv biB0aGUKPiA+ID4gPiA+IGNvbm5lY3Rvciwgb3Igb24gdGhlIGVuY29kZXIsIG9yIGV2ZXJ5d2hl cmU/Cj4gPiA+ID4KPiA+ID4gPiBicmlkZ2UvZW5jb2Rlci9jcnRjIGFsbCBkbyBzcGVjaWFsIHRo aW5ncyBkdXJpbmcgU1IgdHJhbnNpdGlvbnMsIEkgZG9uJ3QgdGhpbmsKPiA+ID4gPiBjb25uZWN0 b3IgaXMgbmVjZXNzYXJ5LiBUaGlzIGlzIHRoZSBzYW1lIGZvciBhbnkgLnNyX2Rpc2FibGUgZnVu Y3Rpb24sIGV2ZXJ5b25lCj4gPiA+ID4gd291bGQgbmVlZCB0byBpbXBsZW1lbnQgaXQuCj4gPiA+ Cj4gPiA+IEhtLCB0aGF0J3MgYSBsb3Qgb2YgbmV3IGNhbGxiYWNrcyAuLi4KPiA+ID4KPiA+ID4g PiA+IEFuZCBob3cgZG8geW91IGhhbmRsZSB0aGUKPiA+ID4gPiA+IHZhcmlvdXMgc3RhdGUgdHJh bnNpdGlvbnMuIE9uIHRoZSBkaXNhYmxlIHNpZGUgd2UgaGF2ZToKPiA+ID4gPiA+IC0gYWN0aXZl IG9uIC0+IGFjdGl2ZSBvZmYsIG5vIHNyICh1c2Vyc3BhY2UgZGlzYWJsZXMgY3J0YykKPiA+ID4g PiA+IC0gYWN0aXZlIG9uLCBzciBvZmYgLT4gYWN0aXZlIG9vZmYsIHNyIG9uIChzciB0aW1lciBm aXJlcyBhbmQgc3VzcGVuZHMgY3J0YykKPiA+ID4gPiA+IC0gYWN0aXZlIG9mZiwgc3Igb24gLT4g YWN0aXZlIG9mZiwgc3Igb2ZmICh1c2Vyc3BhY2UgZGlzYWJsZSBjcnRjCj4gPiA+ID4gPiB3aGls ZSBjcnRjIGlzIGluIHNyKQo+ID4gPiA+ID4gVGhlc2UgYXJlIGFsbCAibG9naWNhbCBhY3RpdmUg b24iIC0+ICJzb21ldGhpbmciIHRyYW5zaXRpb25zIHdoZXJlIHdlCj4gPiA+ID4gPiBkaXNhYmxl IHNvbWV0aGluZyAoY3J0Yywgb3IgZGlzcGxheSBvciBib3RoKQo+ID4gPiA+ID4KPiA+ID4gPiA+ IFNvIGluIGEgd2F5IHlvdSdkIG5lZWQgMyBob29rcyBoZXJlIGZvciB0aGUgZnVsbCBtYXRyaXgu Cj4gPiA+ID4gPiBBbmQgdGhleSBhbGwKPiA+ID4gPiA+IGtpbmRhIGRpc2FibGUgc29tZXRoaW5n LiBPbiB0aGUgZW5hYmxlIHNpZGUgd2UgaGF2ZToKPiA+ID4gPiA+IC0gYWN0aXZlIG9mZiwgc3Ig b2ZmIC0+IGFjdGl2ZSBvbiwgc3Igb2ZmICh1c2Vyc3BhY2UgZW5hYmxlcyBjcnRjKQo+ID4gPiA+ ID4gLSBhY3RpdmUgb2ZmLCBzciBvbiAtPiBhY3RpdmUgb24sIHNyIG9mZiAodXNlcnNwYWNlIGRv ZXMgYSBwYWdlZmxpcCwgc3RvcHMgc3IpCj4gPiA+ID4gPiBIZXJlIHdlIGVpdGhlciBlbmFibGUg dGhlIGNydGMgKGRpc3BsYXkgYWxyZWFkeSBvbikgb3IgYm90aC4gU2luY2Ugd2UKPiA+ID4gPiA+ IG9ubHkgZ28gaW50byBzciB3aXRoIHRoZSB0aW1lciB0aGVyZSdzIG5vIDNyZCBjYXNlIG9mIG9u bHkgZW5hYmxpbmcKPiA+ID4gPiA+IHRoZSBkaXNwbGF5LiBTbyBzdGlsbCBhc3ltZXRyaWMsIGV2 ZW4gd2l0aCBsb3RzIG1vcmUgaG9va3MuCj4gPiA+ID4KPiA+ID4gPiBXZSBkb24ndCBuZWVkIHRo ZSAoYWN0aXZlIG9mZiwgc3Igb24pIC0+IChhY3RpdmUgb2ZmLCBzciBvZmYpICh0aGlyZCkgY2Fz ZQo+ID4gPiA+IGFib3ZlLCBpdCdzIHRoZSBzYW1lIGFzIHRoZSBmaXJzdC4gSnVzdCBkb2luZyBh IGZ1bGwgZGlzYWJsZSBpcyBzdWZmaWNpZW50LAo+ID4gPiA+IHNvIHlvdSB3b3VsZCBoYXZlIHN5 bW1ldHJ5IGluIHRoZSBlbmFibGUvZGlzYWJsZSBjYWxscyBhbmQgYXN5bW1ldHJ5IGluIHRoZQo+ ID4gPiA+IHNyIGNhbGxzLiBUaGlzIGlzIHNpbWlsYXIgdG8gZW5hYmxpbmcgYSBwbGFuZSwgb3Ig dHVybmluZyBvdGhlciBIVyBmZWF0dXJlcyBvbgo+ID4gPiA+IHdoaWxlIGVuYWJsZWQuIFNSIGlz IGFmdGVyIGFsbCBqdXN0IGEgZmVhdHVyZSBvZiB0aGUgaGFyZHdhcmUuCj4gPiA+Cj4gPiA+IEht IHllYWggSSBndWVzcyB3ZSBjYW4gdHJlYXQgaXQgbGlrZSBwbGFuZSBkaXNhYmxpbmcsIHdoaWNo IGltcGxpY2l0bHkKPiA+ID4gaGFwcGVucyBpbiBjcnRjLT5kaXNhYmxlIHRvby4gT3IgdGhlIGlt cGxpY2l0IHBsYW5lIGVuYWJsZSBpbiBjcnRjLT5lbmFibGUKPiA+ID4gKGFsdGhvdWdoIHRoYXQg Y2FzZSBkb2Vzbid0IGV4aXN0IGZvciBzciwgc2luY2Ugd2UgbmV2ZXIgZ28gZGlyZWN0bHkgaW50 bwo+ID4gPiBzcikuCj4gPiA+Cj4gPiA+ID4gPiBJZiB5b3Ugd2FudCB0aGUgZnVsbCBtYXRyaXgs IHRoZXJlJ3MgZ29pbmcgdG8gYmUgYSBfbG90XyBvZiBob29rcy4gSQo+ID4gPiA+ID4gdGhpbmsg c2xpZ2h0bHkgbW9yZSBhd2t3YXJkIGRyaXZlciwgYnV0IGxlc3MgaG9va3MgaXMgYmV0dGVyLiBI ZW5jZQo+ID4gPiA+ID4gdGhlIHNsaWdodGx5IGF3a3dhcmQgbWlkZGxlIGdyb3VuZCBvZiBhIHNw ZWNpYWwgZGlzYWJsZV9mcm9tX3NyIGhvb2suCj4gPiA+ID4gPiBCdXQgbWF5YmUgdGhlcmUncyBh IGJldHRlciBvcHRpb24gc29tZXdoZXJlIGVsc2UgLi4uCj4gPiA+ID4KPiA+ID4gPiBUaGVyZSdz IHJlYWxseSBubyByZWFzb24gdG8gZXZlbiBoYXZlIHRoZSBzcl9kaXNhYmxlIGZ1bmN0aW9uLiBU aGUgLmRpc2FibGUKPiA+ID4gPiBmdW5jdGlvbiBpbiB0aGUgZHJpdmVyIHdpbGwgYWxyZWFkeSBu ZWVkIHNwZWNpYWwgY2FzaW5nIHRvIGRldGVjdCBwc3JfZW50cnkKPiA+ID4gPiB2cyBmdWxsIGRp c2FibGUsIHNvIGl0J2QgYmUgYmV0dGVyIHRvIGp1c3QgY2FsbCBkaXNhYmxlIHR3aWNlLiBUaGUg LnNyX2Rpc2FibGUKPiA+ID4gPiBmdW5jdGlvbiB3b3VsZCBhbHdheXMganVzdCBkbyBhIGZ1bGwg ZGlzYWJsZSAoaWU6IHRoZSAuZGlzYWJsZSBpbXBsZW1lbnRhdGlvbgo+ID4gPiA+IHdpdGhvdXQg dGhlIHNyIGNoZWNrcyBhdCB0aGUgdG9wKS4KPiA+ID4gPgo+ID4gPiA+IFNvIHRoZSBkZWJhdGUg c2hvdWxkIGJlOiBhZGQgc3JfZW5hYmxlL2Rpc2FibGUgcGFpciBvZiBob29rcywgb3Igb3Zlcmxv YWQKPiA+ID4gPiBkaXNhYmxlIHdpdGggYXN5bW1ldHJ5IChjdXJyZW50IGltcGxlbWVudGF0aW9u KS4KPiA+ID4KPiA+ID4gSSBndWVzcyB0aGF0IG1lYW5zIHdlJ3JlIGJhY2sgdG8gbm8gbmV3IGhv b2tzLCBhbmQgdGhlIGRyaXZlciBqdXN0IGR0cnQKPiA+ID4gaW4gdGhlIGV4aXN0aW5nIGhvb2tz IHdpdGggdGhlIHN0YXRlIHRyYW5zaXRpb24gYml0cyB3ZSBoYXZlPyBJIHRob3VnaHQKPiA+ID4g dGhlIGlzc3VlIHdpdGggdGhhdCBpcyB0aGF0IHdlIGNhbid0IGdldCBhdCBhbGwgdGhlIHJpZ2h0 IGJpdHMsIGhlbmNlIHRoZQo+ID4gPiBzcl9kaXNhYmxlIHNwZWNpYWwgY2FzZSBob29rLgo+ID4g Pgo+ID4gPiBPciBpcyB5b3VyIHBsYW4gdG8gcm9sbCBvdXQgYSBmdWxsIG5ldyBzZXQgb2YgaG9v a3MsIGVxdWlwcGVkIHdpdGgKPiA+ID4gb2xkL25ld19zdGF0ZSBmb3IgZXZlcnl0aGluZz8gSSB0 aGluayB3ZSdkIG9ubHkgbmVlZCBvbGQvbmV3X3N0YXRlIGZvciB0aGUKPiA+ID4gb2JqZWN0IGF0 IGhhbmQsIHNpbmNlIHdpdGggdGhlIG9sZF9zdGF0ZSB5b3UgY2FuIGdldCBhdCBkcm1fYXRvbWlj X3N0YXRlLAo+ID4gPiB3aGljaCBhbGxvd3MgeW91IHRvIGdldCBhbnl0aGluZyBlbHNlIHJlYWxs eS4KPiA+Cj4gPiBJIGRvbid0IHRoaW5rIHdlIGV2ZW4gbmVlZCB0byBwYXNzIHRoZSBzdGF0ZSB0 byB0aGUgc3IgaG9va3MsIGp1c3QgYWRkCj4gPgo+ID4gdm9pZCBzZWxmX3JlZnJlc2hfZW50ZXIo c3RydWN0IGRybV88dHlwZT4gKjxuYW1lPik7Cj4gPiB2b2lkIHNlbGZfcmVmcmVzaF9leGl0KHN0 cnVjdCBkcm1fPHR5cGU+ICo8bmFtZT4pOwo+ID4KPiA+IHRvIHRoZSBmdW5jcyB2dGFibGUgZm9y IGNydGMvZW5jb2Rlci9icmlkZ2UuCj4gPgo+ID4gT2YgY291cnNlIGl0J3Mgbm90IF9xdWl0ZV8g YXMgc3RyYWlnaHRmb3J3YXJkIGFzIHRoYXQgOikKPiA+Cj4gPiBXaXRoIHRoZSBjdXJyZW50IG1v ZGVsLCB0aGUgcG93ZXJkb3duL3Bvd2VydXAgb3JkZXIgb2YgY29tcG9uZW50cyBpcyBpbXBsaWNp dGx5Cj4gPiBicm9rZW4uIFdpdGggdGhpcyBuZXcgbW9kZWwsIGl0J3MgbXVjaCBtb3JlIG9idmlv dXMsIHRoaXMgaXMgZWFzaWVzdCB0bwo+ID4gaWxsdXN0cmF0ZSB3aXRoIGJyaWRnZXMsIGJ1dCBp dCdzIHRydWUgZm9yIGNydGNzIGFuZCBlbmNvZGVycyBhcyB3ZWxsLgo+ID4KPiA+IEFzc3VtZSB5 b3UgaGF2ZSB0aGUgZm9sbG93aW5nIGJyaWRnZSBjaGFpbjoKPiA+Cj4gPiBFTkMwIChub3QgU1It YXdhcmUpCj4gPiAgICAgICAgIC0+IEJSMCAoU1ItYXdhcmUpCj4gPiAgICAgICAgICAgICAgICAg LT4gQlIxIChub3QgU1ItYXdhcmUpCj4gPiAgICAgICAgICAgICAgICAgICAgICAgICAtPiBCUjIg KFNSLWF3YXJlKQo+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtPiBDT04wCj4g Pgo+ID4gQW4gU1ItZW50ZXIgdHJhbnNpdGlvbiB3b3VsZCBiZToKPiA+ICAgICAgICAgQlIyLT5z ZWxmX3JlZnJlc2hfZW50ZXIKPiA+ICAgICAgICAgQlIxLT5kaXNhYmxlCj4gPiAgICAgICAgIEJS MC0+c2VsZl9yZWZyZXNoX2VudGVyCj4gPiAgICAgICAgIEVOQzAtPmRpc2FibGUKPiA+ICAgICAg ICAgQlIxLT5wb3N0X2Rpc2FibGUKPiA+Cj4gPiBTUi1leGl0IGlzOgo+ID4gICAgICAgICBCUjEt PnByZV9lbmFibGUKPiA+ICAgICAgICAgRU5DMC0+ZW5hYmxlCj4gPiAgICAgICAgIEJSMC0+c2Vs Zl9yZWZyZXNoX2V4aXQKPiA+ICAgICAgICAgQlIxLT5lbmFibGUKPiA+ICAgICAgICAgQlIyLT5z ZWxmX3JlZnJlc2hfZXhpdAo+ID4KPiA+IERpc2FibGluZyBmcm9tIFNSIGJlY29tZXM6Cj4gPiAg ICAgICAgIEJSMi0+ZGlzYWJsZQo+ID4gICAgICAgICBCUjAtPmRpc2FibGUKPiA+ICAgICAgICAg QlIyLT5wb3N0X2Rpc2FibGUKPiA+ICAgICAgICAgQlIwLT5wb3N0X2Rpc2FibGUKPiA+Cj4gPiBT byBJJ20gc3RhcnRpbmcgdG8gcXVlc3Rpb24gZmFsbGluZyBiYWNrIG9uIGRpc2FibGUuIEkgdGhp bmsgaXQgd2FzIGEgZmluZQo+ID4gY2hvaWNlIHdoZW4gd2Ugd291bGQgZXhpdCBwc3IgYmVmb3Jl IGRpc2FibGUgKGllOiB2MSksIGJ1dCBJIHRoaW5rIGl0IG1pZ2h0IGJlCj4gPiB0b28gY29tcGxp Y2F0ZWQgbm93LiBXZSBjb3VsZCBtYWtlIEJSMiBhbmQgQlIwIGRvIHRoZSByaWdodCB0aGluZyBv bgo+ID4gZGlzYWJsZS1mcm9tLVNSLCBidXQgSSdtIHdvcnJpZWQgdGhhdCBtaXhpbmcgdXAgdGhl IG9yZGVyIGZvciBTUi11bmF3YXJlIGRldmljZXMKPiA+IChFTkMwL0JSMSkgbWlnaHQgY2F1c2Ug aXNzdWVzLgo+ID4KPiA+IFBlcmhhcHMgd2Ugc2hvdWxkIHNjYWxlIHRoaXMgYmFjayBhbmQganVz dCB0cmVhdCBzZWxmX3JlZnJlc2ggYXMgaXRzIG93biB0aGluZwo+ID4gYW5kIG5vdCBnbyB0aHJv dWdoIHRoZSBlbmFibGUvZGlzYWJsZSBwYXRoIGF0IGFsbC4gRGV2aWNlcyB3aGljaCBhcmUgbm90 Cj4gPiBTUi1hd2FyZSBzdGF5IG9uICh3aGljaCBoYXMgaXQncyBvd24gaXNzdWVzIGlmIEJSMSB1 bmRlcmZsb3dzIGJlY2F1c2UgaXQncwo+ID4gZXhwZWN0aW5nIHZpZGVvIGZyb20gQlIwKS4gTWF5 YmUgd2UgaGF2ZSB0byBlbnN1cmUgdGhlIGVudGlyZSBwaXBlIGlzIFNSLWF3YXJlCj4gPiBiZWZv cmUgd2UgZG8gYW4gU1ItZW50ZXIuCj4gCj4gSW1vIGlmIHRoZSBkcml2ZXIgdHJpZXMgdG8gZW5h YmxlIFNSIG9uIGEgcGlwZSB3aGVyZSBzb21lIHBpZWNlcwo+IGFyZW4ndCBTUiBhd2FyZSwgdGhh dCdzIGEgZHJpdmVyIGJ1Zy4KCklmIHlvdSBhc3N1bWUgdGhhdCBtb3N0IGJyaWRnZXMgKGFzaWRl IGZyb20gdGhlICJicmlkZ2VzIiB0aGF0IHJlcHJlc2VudCBzaGFyZWQKc2lsaWNvbiBJUCkgY2Fu IGJlIGFyYml0cmFyaWx5IG1peGVkIHdpdGggbW9zdCBvdGhlciBicmlkZ2VzIGFuZCBkcml2ZXJz LCB0aGVuCnllYWgsIHRoaXMgaXMgdW5hdm9pZGFibGUgYW5kIG5vdCBzb21ldGhpbmcgdGhhdCdz IGVhc2lseSBmaXhlZCBzaW5jZSB3ZSdkIG5lZWQKdG8gbWFrZSBhbGwgU1ItYXdhcmUgb3IgYXQg dGhlIHZlcnkgbGVhc3QgYXVkaXQgdGhlbSB0byBtYWtlIHN1cmUgdGhleSBkb24ndApmb3VsIHVw IGlmIHRoZSB0aGluZ3MgYXJvdW5kIHRoZW0gZ28gdG8gc2xlZXAuCgo+IEFuZCBpZiB5b3UgcmVh bGx5IHdhbnQgdG8KPiBpbXBsZW1lbnQgdGhlIGFib3ZlIHNlcXVlbmNlICh3ZWxsLCBuZWVkIHRv IGltcGxlbWVudCBpdCksIHRoZW4gSQo+IGFncmVlIHRoYXQgaGVscGVycyBhcmVuJ3QgdGhlIHRo aW5nIHlvdSdyZSBsb29raW5nIGZvciBhbmQgeW91IHNob3VsZAo+IGp1c3Qgcm9sbCB5b3VyIG93 biBtb2Rlc2V0IGNvZGUuCj4gCj4gQnV0IHdlIHN0YXJ0ZWQgYWxsIHRoaXMgYXNzdW1pbmcgdGhh dCB5b3UncmUgaHcgaXNuJ3QgaW4gdGhlIG5lZWQgb2YKPiB0aGUgZnVsbCBzdGF0ZSBtYXRyaXgg d2l0aCBob29rcyBmb3IgZXZlcnl0aGluZywgaGVuY2UgdGhhdCBtYXliZSBhCj4gaGVscGVyIHdv dWxkIG1ha2Ugc2Vuc2UuIEl0IGZlZWxzIGEgYml0IGxpa2UgdGhlIGRpc2N1c3Npb24gbG9zdAo+ IGNvbnRhY3Qgd2l0aCB0aGUgKGRyaXZlcikgcmVhbGl0eSAuLi4KPiAKPiA+IFRob3VnaHRzPwo+ IAo+IC4uLiBzbyBpbW8gaWYgd2UgY2FuIGhlbHAgb3V0IGRyaXZlcnMgYnkgcmVwdXJwb3Npbmcg dGhlIGV4aXN0aW5nCj4gaG9va3MgdG8gY292ZXIgbW9zdCBjYXNlcywgd2l0aCBhIGZldyBzcGVj aWFsIGNhc2VzIGluIGNhbGxiYWNrcywgdGhlbgo+IHdlIGNhbiByb2xsIHRoZXNlIGhlbHBlcnMu IElmIHRoYXQgZG9lc24ndCBoYXBwZW4sIHRoZW4gcHJvYmFibHkKPiBiZXR0ZXIgaWYgZWFjaCBk cml2ZXIganVzdCByb2xscyB0aGVpciBvd24gc3IgZW50ZXIvZXhpdCBjb2RlIGFuZAo+IGNhbGxz IGl0IGRvbmUuIEl0J3Mgbm90IGxpa2Ugd2UgZG9uJ3QgYWxsb3cgc3ViY2xhc3Npbmcgb2Ygc3Rh dGVzIG9yCj4gYWxzbyB2dGFibGUgaG9va3Mgd2hlcmUgeW91IGNvdWxkIGp1c3QgYWRkIG1vcmUg b2YgeW91ciBvd24gc3R1ZmYgYXMKPiB5b3Ugc2VlIGZpdC4gQnV0IEkgdGhvdWdodCBzciBmb3Ig bW9zdCBkZXZpY2VzIHdvdWxkIGFtb3VudCB0byBhKQo+IHNodXR0aW5nIHRoZSBwaXBlIGRvd24g Yikgc29tZSBzcGVjaWFsIGNhc2luZyB0byBrZWVwIHRoZSBkaXNwbGF5Cj4gYWxpdmUgYW5kIG5v dGhpbmcgZWxzZS4gQnV0IG5vdyBpdCBzb3VuZHMgbGlrZSB5b3UgbmVlZCBob29rcyBmb3IKPiBl dmVyeXRoaW5nLCB3aGljaCBwcm9iYWJseSBkb2VzbnQgbWFrZSBzZW5zZSB0byBjb3ZlciBpbiB0 aGUgaGVscGVycy4KCkZvciBtb3N0IGV2ZXJ5dGhpbmcgdXBzdHJlYW0gb2YgdGhlIGNvbm5lY3Rv ciwgeW91IGRvbid0IF9uZWVkXyBhIGhvb2sgc2luY2UKc2h1dHRpbmcgdGhlbSBkb3duIGlzIGZp bmUuIEhvd2V2ZXIgaWYgeW91ciBjcnRjIHRha2VzIGEgd2hpbGUgdG8gY29tZSBiYWNrIG9uCihs aWtlIHdpdGggcm9ja2NoaXApLCB0aGVuIHlvdSBzdGFydCB0byB3YW50IGhvb2tzIGV2ZXJ5d2hl cmUgdG8gb3B0aW1pemUKdGhpbmdzLgoKSSdsbCBwdXQgdGhpcyBvbiB0aGUgc2hlbGYgYW5kIHdh aXQgZm9yIGEgZmV3IG1vcmUgZHJpdmVycyB0byBpbXBsZW1lbnQgdGhlaXIKb3duIFNSLiBQZXJo YXBzIGEgcGF0dGVybiB3aWxsIGVtZXJnZS4KClNlYW4KCgo+IC1EYW5pZWwKPiAKPiA+Cj4gPiBT ZWFuCj4gPgo+ID4gPgo+ID4gPiBPciBzaG91bGQgd2UganVzdCBhZGQgZHJtX2F0b21pY19zdGF0 ZSAqc3RhdGUgdG8gYWxsIHRoZXNlIGhvb2tzPyBUaGF0J2QKPiA+ID4gcHJvYmFibHkgdGhlIG1v c3QgZmxleGlibGUgbG9uZy10ZXJtIHRoaW5nLiBDb3VsZCBldmVuIGJlIGRvbmUgd2l0aCBjb2Nj aSwKPiA+ID4gc28gd2UgZG9uJ3QgbmVlZCBuZXcgYXRvbWljX2Rpc2FibGUyIGNhbGxzIGFuZCBz aWxseSB0aGluZ3MgbGlrZSB0aGF0Lgo+ID4gPiAtRGFuaWVsCj4gPiA+ID4KPiA+ID4gPiBTZWFu Cj4gPiA+ID4KPiA+ID4gPiA+IC1EYW5pZWwKPiA+ID4gPiA+Cj4gPiA+ID4gPiA+Cj4gPiA+ID4g PiA+IFNlYW4KPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+IC0gU1Igb24g Y2FuIG9ubHkgaGFwcGVuIGlmIHRoZSBsb2dpY2FsIGNydGNfc3RhdGUtPmFjdGl2ZSBpcyBvbiBh bmQgc3RheXMgb24KPiA+ID4gPiA+ID4gPiAtIFNSIGNhbiBnZXQgZGlzYWJsZWQgaW4gMiBzdWJj YXNlcwo+ID4gPiA+ID4gPiA+ICAgLSBsb2dpY2FsIGFjdGl2ZSBzdGF0ZSBzdGF5cyBvbiAtPiBo YW5kbGVkIHdpdGggZXhpc3RpbmcgaG9va3MKPiA+ID4gPiA+ID4gPiAgIC0gbG9naWNhbCBhY3Rp dmUgc3RhdGUgYWxzbyBnb2VzIG9mZiAtPiBleGlzdGluZyBob29rcyBhbGwgc2tpcCAoYmVjYXVz ZQo+ID4gPiA+ID4gPiA+ICAgICBhY3RpdmU9ZmFsc2UgLT4gYWN0aXZlPWZhbHNlIGlzIGEgbm8t b3ApLCB0aGUgc3BlY2lhbCAtPnNyX2Rpc2FibGUKPiA+ID4gPiA+ID4gPiAgICAgdGFrZXMgY2Fy ZQo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gSXQgZmVlbHMgbGlrZSB0aGlzIGlzIGNsZWFu LCBpbnRlZ3JhdGVzIHdlbGwgd2l0aCBhdG9taWMgaGVscGVycyBvdmVyYWxsCj4gPiA+ID4gPiA+ ID4gYW5kIGl0IGV2ZW4gbWFrZXMgc2Vuc2UuIEF0IGxlYXN0IHRvIG15IHNsaWdodGx5IG94eWdl biBkZXByaXZlZCBtaW5kCj4gPiA+ID4gPiA+ID4gcmlnaHQgbm93IC4uLgo+ID4gPiA+ID4gPiA+ Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICB9Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICBFWFBP UlRfU1lNQk9MKF9fZHJtX2F0b21pY19oZWxwZXJfY29ubmVjdG9yX2R1cGxpY2F0ZV9zdGF0ZSk7 Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4g L3NuaXAKPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IGRpZmYgLS1naXQg YS9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9yLmggYi9pbmNsdWRlL2RybS9kcm1fY29ubmVjdG9y LmgKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gaW5kZXggYzgwNjE5OTJkNmNiLi4wYWU3ZTgxMmVj NjIgMTAwNjQ0Cj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9j b25uZWN0b3IuaAo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiArKysgYi9pbmNsdWRlL2RybS9kcm1f Y29ubmVjdG9yLmgKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gQEAgLTUwMSw2ICs1MDEsMzcgQEAg c3RydWN0IGRybV9jb25uZWN0b3Jfc3RhdGUgewo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAgICAg LyoqIEB0djogVFYgY29ubmVjdG9yIHN0YXRlICovCj4gPiA+ID4gPiA+ID4gPiA+ID4gPiA+ICAg ICBzdHJ1Y3QgZHJtX3R2X2Nvbm5lY3Rvcl9zdGF0ZSB0djsKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ ID4KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgIC8qKgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4g PiArICAgICogQHNlbGZfcmVmcmVzaF9jaGFuZ2VkOgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiAr ICAgICoKPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKyAgICAqIFNldCB0cnVlIHdoZW4gc2VsZiBy ZWZyZXNoIHN0YXR1cyBoYXMgY2hhbmdlZC4gVGhpcyBpcyB1c2VmdWwgZm9yCj4gPiA+ID4gPiA+ ID4gPiA+ID4gPiA+ICsgICAgKiB1c2UgaW4gZW5jb2Rlci9icmlkZ2UgZW5hYmxlIHdoZXJlIHRo ZSBvbGQgc3RhdGUgaXMgdW5hdmFpbGFibGUgdG8KPiA+ID4gPiA+ID4gPiA+ID4gPiA+ID4gKyAg ICAqIHRoZSBkcml2ZXIgYW5kIGl0IG5lZWRzIHRvIGtub3cgd2hldGhlciB0aGUgZW5hYmxlIHRy YW5zaXRpb24gaXMgYQo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gPiArICAgICogZnVsbCB0cmFuc2l0 aW9uLCBvciBpZiBpdCBqdXN0IG5lZWRzIHRvIGV4aXQgc2VsZiByZWZyZXNoIG1vZGUuCj4gPiA+ ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4gVWgsIHdlIGp1c3QgbmVlZCBw cm9wZXIgYXRvbWljIGNhbGxiYWNrcyB3aXRoIGFsbCB0aGUgc3RhdGVzIGF2YWlsYWJsZS4KPiA+ ID4gPiA+ID4gPiA+ID4gPiA+IE9uY2UgeW91IGhhdmUgb25lLCB5b3UgY2FuIGdldCBhdCB0aGUg b3RoZXJzLgo+ID4gPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+ID4gPgo+ID4gPiA+ ID4gPiA+ID4gPiA+IFdlbGwsIHN1cmUsIHdlIGNvdWxkIGRvIHRoYXQgdG9vIDopCj4gPiA+ID4g PiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gPiA+IHRiaCBJJ20gbm90IHN1cmUgd2hldGhlciB0aGF0 J3MgcmVhbGx5IGJldHRlciwgdGhlIGR1cGxpY2F0aW9uIGp1c3QgaXJrcwo+ID4gPiA+ID4gPiA+ ID4gPiBtZS4gV2l0aCBhIG5ldyBjYWxsYmFjayBmb3IgdGhlIHNwZWNpYWwgc2VsZi1yZWZyZXNo IGRpc2FibGUgKEkgZ3Vlc3Mgd2UKPiA+ID4gPiA+ID4gPiA+ID4gb25seSBuZWVkIHRoYXQgb24g dGhlIGNvbm5lY3RvciksIHBsdXMgbG9va2luZyBhdAo+ID4gPiA+ID4gPiA+ID4gPiBjb25uZWN0 b3ItPnN0YXRlLT5jcnRjLT5zdGF0ZS0+c2VsZl9yZWZyZXNoLCBJIHRoaW5rIHdlJ2QgYmUgY292 ZXJlZAo+ID4gPiA+ID4gPiA+ID4gPiBhcy1pcz8gT3IgaXMgdGhlcmUgYSBjb3JuZXIgY2FzZSBJ J20gc3RpbGwgbWlzc2luZz8KPiA+ID4gPiA+ID4gPiA+ID4KPiA+ID4gPiA+ID4gPiA+Cj4gPiA+ ID4gPiA+ID4gPiBJIHRoaW5rIHdlIGNhbiByZW1vdmUgc2VsZl9yZWZyZXNoX2NoYW5nZWQvc2Vs Zl9yZWZyZXNoX2FjdGl2ZSBpZiB3ZSBpbXBsZW1lbnQKPiA+ID4gPiA+ID4gPiA+IGRlZGljYXRl ZCBob29rcyBmb3Igc2VsZl9yZWZyZXNoX2VudGVyL2V4aXQuIFdlJ2xsIHdhbnQgdG8ga2VlcAo+ ID4gPiA+ID4gPiA+ID4gc2VsZl9yZWZyZXNoX2F3YXJlIGFyb3VuZCBzaW5jZSB0aGUgcHJlc2Vu Y2Ugb2YgdGhlIGNhbGxiYWNrIGltcGxlbWVudGF0aW9ucwo+ID4gPiA+ID4gPiA+ID4gZG9lcyBu b3QgaW1wbHkgdGhlIHBhbmVsIGNvbm5lY3RlZCBzdXBwb3J0cyBTUi4KPiA+ID4gPiA+ID4gPgo+ ID4gPiA+ID4gPiA+IFl1cCwgc2VsZl9yZWZyZXNoX2F3YXJlIGlzIG5lZWRlZC4KPiA+ID4gPiA+ ID4gPgo+ID4gPiA+ID4gPiA+ID4gQXMgbWVudGlvbmVkIGFib3ZlLCB3ZSdsbCBuZWVkIHRoZXNl IGhvb2tzIG9uIGV2ZXJ5dGhpbmcgaW4gdGhlIHBpcGVsaW5lIHRvIGJlCj4gPiA+ID4gPiA+ID4g PiBmdWxseSBjb3ZlcmVkLgo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4gPiA+ID4gTGV0J3MganVzdCBk byB0aGUgLT5zcl9kaXNhYmxlIGhvb2sgZm9yIG5vdy4gSSBkb24ndCB0aGluayB3ZSBuZWVkIGFs bCB0aGUKPiA+ID4gPiA+ID4gPiBvdGhlcnMgcmVhbGx5Lgo+ID4gPiA+ID4gPiA+Cj4gPiA+ID4g PiA+ID4gQ2hlZXJzLCBEYW5pZWwKPiA+ID4gPiA+ID4gPiAtLQo+ID4gPiA+ID4gPiA+IERhbmll bCBWZXR0ZXIKPiA+ID4gPiA+ID4gPiBTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRp b24KPiA+ID4gPiA+ID4gPiBodHRwOi8vYmxvZy5mZndsbC5jaAo+ID4gPiA+ID4gPgo+ID4gPiA+ ID4gPiAtLQo+ID4gPiA+ID4gPiBTZWFuIFBhdWwsIFNvZnR3YXJlIEVuZ2luZWVyLCBHb29nbGUg LyBDaHJvbWl1bSBPUwo+ID4gPiA+ID4KPiA+ID4gPiA+Cj4gPiA+ID4gPgo+ID4gPiA+ID4gLS0K PiA+ID4gPiA+IERhbmllbCBWZXR0ZXIKPiA+ID4gPiA+IFNvZnR3YXJlIEVuZ2luZWVyLCBJbnRl bCBDb3Jwb3JhdGlvbgo+ID4gPiA+ID4gKzQxICgwKSA3OSAzNjUgNTcgNDggLSBodHRwOi8vYmxv Zy5mZndsbC5jaAo+ID4gPiA+Cj4gPiA+ID4gLS0KPiA+ID4gPiBTZWFuIFBhdWwsIFNvZnR3YXJl IEVuZ2luZWVyLCBHb29nbGUgLyBDaHJvbWl1bSBPUwo+ID4gPgo+ID4gPiAtLQo+ID4gPiBEYW5p ZWwgVmV0dGVyCj4gPiA+IFNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgo+ID4g PiBodHRwOi8vYmxvZy5mZndsbC5jaAo+ID4KPiA+IC0tCj4gPiBTZWFuIFBhdWwsIFNvZnR3YXJl IEVuZ2luZWVyLCBHb29nbGUgLyBDaHJvbWl1bSBPUwo+IAo+IAo+IAo+IC0tIAo+IERhbmllbCBW ZXR0ZXIKPiBTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KPiArNDEgKDApIDc5 IDM2NSA1NyA0OCAtIGh0dHA6Ly9ibG9nLmZmd2xsLmNoCgotLSAKU2VhbiBQYXVsLCBTb2Z0d2Fy ZSBFbmdpbmVlciwgR29vZ2xlIC8gQ2hyb21pdW0gT1MKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vZHJpLWRldmVs