From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH v2 1/3] drm: Add support for panic message output Date: Thu, 14 Mar 2019 10:50:04 +0100 Message-ID: <20190314095004.GP2665@phenom.ffwll.local> References: <20190312161754.GF3888@intel.com> <20190313133108.GL3888@intel.com> <0baabe1f-8924-2c9a-5cd4-59084a37dbb2@gmail.com> <617c0977-940f-c324-2b86-9a873c8ced28@daenzer.net> <76f769e5-fb95-2cdd-60fc-3e7286cf313f@gmail.com> <593cfebb-97b1-3d77-1081-1ca93eb56e86@amd.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: "Kazlauskas, Nicholas" Cc: "daniel.vetter@ffwll.ch" , Michel =?iso-8859-1?Q?D=E4nzer?= , "dri-devel@lists.freedesktop.org" , "darwish.07@gmail.com" , "intel-gfx@lists.freedesktop.org" , "Wentland, Harry" , "Koenig, Christian" List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBNYXIgMTMsIDIwMTkgYXQgMDU6NDE6NTJQTSArMDAwMCwgS2F6bGF1c2thcywgTmlj aG9sYXMgd3JvdGU6Cj4gT24gMy8xMy8xOSAxOjMzIFBNLCBNaWNoZWwgRMOkbnplciB3cm90ZToK PiA+IE9uIDIwMTktMDMtMTMgNToxNiBwLm0uLCBLYXpsYXVza2FzLCBOaWNob2xhcyB3cm90ZToK PiA+PiBPbiAzLzEzLzE5IDExOjU0IEFNLCBDaHJpc3RpYW4gS8O2bmlnIHdyb3RlOgo+ID4+PiBB bSAxMy4wMy4xOSB1bSAxNjozOCBzY2hyaWViIE1pY2hlbCBEw6RuemVyOgo+ID4+Pj4gT24gMjAx OS0wMy0xMyAyOjM3IHAubS4sIENocmlzdGlhbiBLw7ZuaWcgd3JvdGU6Cj4gPj4+Pj4gQW0gMTMu MDMuMTkgdW0gMTQ6MzEgc2NocmllYiBWaWxsZSBTeXJqw6Rsw6Q6Cj4gPj4+Pj4+IE9uIFdlZCwg TWFyIDEzLCAyMDE5IGF0IDEwOjM1OjA4QU0gKzAxMDAsIE1pY2hlbCBEw6RuemVyIHdyb3RlOgo+ ID4+Pj4+Pj4gT24gMjAxOS0wMy0xMiA2OjE1IHAubS4sIE5vcmFsZiBUcsO4bm5lcyB3cm90ZToK PiA+Pj4+Pj4+PiBEZW4gMTIuMDMuMjAxOSAxNy4xNywgc2tyZXYgVmlsbGUgU3lyasOkbMOkOgo+ ID4+Pj4+Pj4+PiBPbiBUdWUsIE1hciAxMiwgMjAxOSBhdCAxMTo0NzowNEFNICswMTAwLCBNaWNo ZWwgRMOkbnplciB3cm90ZToKPiA+Pj4+Pj4+Pj4+IE9uIDIwMTktMDMtMTEgNjo0MiBwLm0uLCBO b3JhbGYgVHLDuG5uZXMgd3JvdGU6Cj4gPj4+Pj4+Pj4+Pj4gVGhpcyBhZGRzIHN1cHBvcnQgZm9y IG91dHB1dHRpbmcga2VybmVsIG1lc3NhZ2VzIG9uIHBhbmljKCkuCj4gPj4+Pj4+Pj4+Pj4gQSBr ZXJuZWwgbWVzc2FnZSBkdW1wZXIgaXMgdXNlZCB0byBkdW1wIHRoZSBsb2cuIFRoZSBkdW1wZXIK PiA+Pj4+Pj4+Pj4+PiBpdGVyYXRlcwo+ID4+Pj4+Pj4+Pj4+IG92ZXIgZWFjaCBEUk0gZGV2aWNl IGFuZCBpdCdzIGNydGMncyB0byBmaW5kIHN1aXRhYmxlCj4gPj4+Pj4+Pj4+Pj4gZnJhbWVidWZm ZXJzLgo+ID4+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4+Pj4gQWxsIHRoZSBvdGhlciBkdW1wZXJzIGFy ZSBydW4gYmVmb3JlIHRoaXMgb25lIGV4Y2VwdCBtdGRvb3BzLgo+ID4+Pj4+Pj4+Pj4+IE9ubHkg YXRvbWljIGRyaXZlcnMgYXJlIHN1cHBvcnRlZC4KPiA+Pj4+Pj4+Pj4+Pgo+ID4+Pj4+Pj4+Pj4+ IFNpZ25lZC1vZmYtYnk6IE5vcmFsZiBUcsO4bm5lcyA8bm9yYWxmQHRyb25uZXMub3JnPgo+ID4+ Pj4+Pj4+Pj4+IC0tLQo+ID4+Pj4+Pj4+Pj4+ICDCoMKgIFsuLi5dCj4gPj4+Pj4+Pj4+Pj4KPiA+ Pj4+Pj4+Pj4+PiBkaWZmIC0tZ2l0IGEvaW5jbHVkZS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmgKPiA+ Pj4+Pj4+Pj4+PiBiL2luY2x1ZGUvZHJtL2RybV9mcmFtZWJ1ZmZlci5oCj4gPj4+Pj4+Pj4+Pj4g aW5kZXggZjBiMzRjOTc3ZWM1Li5mMzI3NDc5OGVjZmUgMTAwNjQ0Cj4gPj4+Pj4+Pj4+Pj4gLS0t IGEvaW5jbHVkZS9kcm0vZHJtX2ZyYW1lYnVmZmVyLmgKPiA+Pj4+Pj4+Pj4+PiArKysgYi9pbmNs dWRlL2RybS9kcm1fZnJhbWVidWZmZXIuaAo+ID4+Pj4+Pj4+Pj4+IEBAIC05NCw2ICs5NCw0NCBA QCBzdHJ1Y3QgZHJtX2ZyYW1lYnVmZmVyX2Z1bmNzIHsKPiA+Pj4+Pj4+Pj4+PiAgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV9wcml2LCB1bnNpZ25l ZCBmbGFncywKPiA+Pj4+Pj4+Pj4+PiAgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHVu c2lnbmVkIGNvbG9yLCBzdHJ1Y3QgZHJtX2NsaXBfcmVjdCAqY2xpcHMsCj4gPj4+Pj4+Pj4+Pj4g IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB1bnNpZ25lZCBudW1fY2xpcHMpOwo+ID4+ Pj4+Pj4+Pj4+ICsKPiA+Pj4+Pj4+Pj4+PiArwqDCoMKgIC8qKgo+ID4+Pj4+Pj4+Pj4+ICvCoMKg wqDCoCAqIEBwYW5pY192bWFwOgo+ID4+Pj4+Pj4+Pj4+ICvCoMKgwqDCoCAqCj4gPj4+Pj4+Pj4+ Pj4gK8KgwqDCoMKgICogT3B0aW9uYWwgY2FsbGJhY2sgZm9yIHBhbmljIGhhbmRsaW5nLgo+ID4+ Pj4+Pj4+Pj4+ICvCoMKgwqDCoCAqCj4gPj4+Pj4+Pj4+Pj4gK8KgwqDCoMKgICogRm9yIHZtYXBw aW5nIHRoZSBzZWxlY3RlZCBmcmFtZWJ1ZmZlciBpbiBhIHBhbmljIGNvbnRleHQuCj4gPj4+Pj4+ Pj4+Pj4gTXVzdAo+ID4+Pj4+Pj4+Pj4+ICvCoMKgwqDCoCAqIGJlIHN1cGVyIGNhcmVmdWwgYWJv dXQgbG9ja2luZyAob25seSB0cnlsb2NraW5nIGFsbG93ZWQpLgo+ID4+Pj4+Pj4+Pj4+ICvCoMKg wqDCoCAqCj4gPj4+Pj4+Pj4+Pj4gK8KgwqDCoMKgICogUkVUVVJOUzoKPiA+Pj4+Pj4+Pj4+PiAr wqDCoMKgwqAgKgo+ID4+Pj4+Pj4+Pj4+ICvCoMKgwqDCoCAqIE5VTEwgaWYgaXQgZGlkbid0IHdv cmsgb3V0LCBvdGhlcndpc2UgYW4gb3BhcXVlIGNvb2tpZQo+ID4+Pj4+Pj4+Pj4+IHdoaWNoIGlz Cj4gPj4+Pj4+Pj4+Pj4gK8KgwqDCoMKgICogcGFzc2VkIHRvIEBwYW5pY19kcmF3X3h5LiBJdCBj YW4gYmUgYW55dGhpbmc6IHZtYXAgYXJlYSwKPiA+Pj4+Pj4+Pj4+PiBzdHJ1Y3R1cmUKPiA+Pj4+ Pj4+Pj4+PiArwqDCoMKgwqAgKiB3aXRoIG1vcmUgZGV0YWlscywganVzdCBhIGZldyBmbGFncywg Li4uCj4gPj4+Pj4+Pj4+Pj4gK8KgwqDCoMKgICovCj4gPj4+Pj4+Pj4+Pj4gK8KgwqDCoCB2b2lk ICooKnBhbmljX3ZtYXApKHN0cnVjdCBkcm1fZnJhbWVidWZmZXIgKmZiKTsKPiA+Pj4+Pj4+Pj4+ IEZXSVcsIHRoZSBwYW5pY192bWFwIGhvb2sgY2Fubm90IHdvcmsgaW4gZ2VuZXJhbCB3aXRoIHRo ZQo+ID4+Pj4+Pj4+Pj4gYW1kZ3B1L3JhZGVvbgo+ID4+Pj4+Pj4+Pj4gZHJpdmVyczoKPiA+Pj4+ Pj4+Pj4+Cj4gPj4+Pj4+Pj4+PiBGcmFtZWJ1ZmZlcnMgYXJlIG5vcm1hbGx5IHRpbGVkLCB3cml0 aW5nIHRvIHRoZW0gd2l0aCB0aGUgQ1BVCj4gPj4+Pj4+Pj4+PiByZXN1bHRzIGluCj4gPj4+Pj4+ Pj4+PiBnYXJibGVkIG91dHB1dC4KPiA+Pj4+Pj4+Pj4+Cj4gPj4+Pj4+Pj4gSW4gd2hpY2ggY2Fz ZSB0aGUgZHJpdmVyIG5lZWRzIHRvIHN1cHBvcnQgdGhlIC0+cGFuaWNfZHJhd194eQo+ID4+Pj4+ Pj4+IGNhbGxiYWNrLAo+ID4+Pj4+Pj4+IG9yIG1heWJlIGl0J3MgcG9zc2libGUgdG8gbWFrZSBh IGdlbmVyaWMgaGVscGVyIGZvciB0aWxlZCBidWZmZXJzLgo+ID4+Pj4+Pj4gSSdtIGFmcmFpZCB0 aGF0IHdvbid0IGhlbHAsIGF0IGxlYXN0IG5vdCB3aXRob3V0IHBvcnRpbmcgYmlnIGNodW5rcyBv Zgo+ID4+Pj4+Pj4gaHR0cHM6Ly9naXRsYWIuZnJlZWRlc2t0b3Aub3JnL21lc2EvbWVzYS90cmVl L21hc3Rlci9zcmMvYW1kL2FkZHJsaWIKPiA+Pj4+Pj4+IGludG8gdGhlIGtlcm5lbCwgbm9uZSBv ZiB3aGljaCB3aWxsIGJlIHVzZWQgZm9yIGFueXRoaW5nIGVsc2UuCj4gPj4+Pj4+Pgo+ID4+Pj4+ Pj4KPiA+Pj4+Pj4+Pj4+IFRoZXJlIHdvdWxkIG5lZWQgdG8gYmUgYSBtZWNoYW5pc20gZm9yIHN3 aXRjaGluZyBzY2Fub3V0IHRvIGEKPiA+Pj4+Pj4+Pj4+IGxpbmVhciwKPiA+Pj4+Pj4+Pj4+IENQ VSBhY2Nlc3NpYmxlIGZyYW1lYnVmZmVyLgo+ID4+Pj4+Pj4+PiBJIHN1cHBvc2UgcGFuaWNfdm1h cCgpIGNvdWxkIGp1c3QgcHJvdmlkZSBhIGxpbmVhciB0ZW1wIGJ1ZmZlcgo+ID4+Pj4+Pj4+PiB0 byB0aGUgcGFuaWMgaGFuZGxlciwgYW5kIHBhbmljX3VubWFwKCkgY291bGQgY29weSB0aGUgY29u dGVudHMKPiA+Pj4+Pj4+Pj4gb3ZlciB0byB0aGUgcmVhbCBmYi4KPiA+Pj4+Pj4+IENvcHkgaG93 PyBVc2luZyBhIEdQVSBlbmdpbmU/Cj4gPj4+Pj4+IENQVSBtYXliZT8gVGhvdWdoIEkgc3VwcG9z ZSB0aGF0IHdvbid0IHdvcmsgaWYgdGhlIGJ1ZmZlciBpc24ndCBDUFUKPiA+Pj4+Pj4gYWNjZXNp YmxlIDovCj4gPj4+Pj4gV2VsbCB3ZSBkbyBoYXZlIGEgZGVidWcgcGF0aCBmb3IgYWNjZXNzaW5n IGludmlzaWJsZSBtZW1vcnkgd2l0aCB0aGUKPiA+Pj4+PiBDUFUuCj4gPj4+Pj4KPiA+Pj4+PiBF LmcuIHRocmVlIHJlZ2lzdGVyczogREFUQSBhbmQgYXV0byBpbmNyZW1lbnQgT0ZGU0VUX0xPL0hJ LiBTbyB5b3UgY2FuCj4gPj4+Pj4ganVzdCByZWFkL3dyaXRlIERBVEEgb3ZlciBhbmQgb3ZlciBh Z2FpbiBpZiB5b3Ugd2FudCB0byBhY2Nlc3Mgc29tZQo+ID4+Pj4+IG1lbW9yeS4KPiA+Pj4+IFJp Z2h0LiBJIGFzc3VtZSB0aGF0J2xsIGJlIHZlcnkgc2xvdywgYnV0IEkgZ3Vlc3MgaXQgY291bGQg ZG8gd2hlbiB0aGUKPiA+Pj4+IG1lbW9yeSBpc24ndCBkaXJlY3RseSBDUFUgYWNjZXNzaWJsZS4K PiA+Pj4KPiA+Pj4gSnVzdCBtYWRlIGEgcXVpY2sgdGVzdCBhbmQgcmVhZGluZyAzMzQyMzM2MCBi eXRlcyAoNDA5NngyMDQweDQpIHVzaW5nCj4gPj4+IHRoYXQgaW50ZXJmYWNlcyB0YWtlcyBhYm91 dCAxMyBzZWNvbmRzLgo+ID4+Pgo+ID4+PiBJSVJDIHdlIGRvbid0IHVzZSB0aGUgYXV0byBpbmNy ZW1lbnQgb3B0aW1pemF0aW9uIHlldCwgc28gdGhhdCBjYW4KPiA+Pj4gcHJvYmFibHkgYmUgaW1w cm92ZWQgYnkgYSBmYWN0b3Igb2YgMyBvciBtb3JlLgo+ID4gCj4gPiBJJ2QgYXNzdW1lIG9ubHkg d3JpdGVzIGFyZSBuZWVkZWQsIG5vIHJlYWRzLgo+ID4gCj4gPiAKPiA+Pj4+PiBCdXQgdHVybmlu ZyBvZiB0aWxsaW5nIGV0YyBpcyBzdGlsbCBleHRyZW1lbHkgdHJpY2t5IHdoZW4gdGhlIHN5c3Rl bSBpcwo+ID4+Pj4+IGFscmVhZHkgdW5zdGFibGUuCj4gPj4+PiBNYXliZSB3ZSBjb3VsZCBhZGQg YSBsaXR0bGUgaG9vayB0byB0aGUgZGlzcGxheSBjb2RlLCB3aGljaCBqdXN0Cj4gPj4+PiBkaXNh YmxlcyB0aWxpbmcgZm9yIHNjYW5vdXQgYW5kIG1heWJlIGRpc2FibGVzIG5vbi1wcmltYXJ5IHBs YW5lcywgYnV0Cj4gPj4+PiBkb2Vzbid0IHRvdWNoIGFueXRoaW5nIGVsc2UuIEhhcnJ5IC8gTmlj aG9sYXMsIGRvZXMgdGhhdCBzZWVtIGZlYXNpYmxlPwo+ID4+Pj4KPiA+Pj4+Cj4gPj4+PiBJJ20g Y29taW5nIGFyb3VuZCBmcm9tICJ0aGlzIGlzIG5ldmVyIGdvaW5nIHRvIHdvcmsiIHRvICJpdCBt aWdodAo+ID4+Pj4gYWN0dWFsbHkgd29yayIgd2l0aCBvdXIgaGFyZHdhcmUuLi4KPiA+Pj4KPiA+ Pj4gWWVhaCwgYWdyZWUuIEl0J3MgYSBiaXQgdHJpY2t5LCBidXQgZG9hYmxlLgo+ID4+Cj4gPj4g QSAiZGlzYWJsZV90aWxpbmciIGhvb2sgb3Igc29tZXRoaW5nIGFsb25nIHRob3NlIGxpbmVzIGNv dWxkIHdvcmsgZm9yCj4gPj4gZGlzcGxheS4gSXQncyBhIGxpdHRsZSBiaXQgbm9uIHRyaXZpYWwg d2hlbiB5b3Ugd2FudCB0byBzdGFydCBkZWFsaW5nCj4gPj4gd2l0aCBsb2NraW5nIGFuZCBhbnkg YWN0aXZlIERSTSBjb21taXRzLCBidXQgd2UgaGF2ZSBhIGdsb2JhbCBsb2NrCj4gPj4gYXJvdW5k IGFsbCBvdXIgaGFyZHdhcmUgcHJvZ3JhbW1pbmcgYW55d2F5IHRoYXQgbWFrZXMgdGhhdCBlYXNp ZXIgdG8KPiA+PiBkZWFsIHdpdGguCj4gPiAKPiA+IFRoaXMgY29kZSBvbmx5IHJ1bnMgd2hlbiB0 aGVyZSdzIGEga2VybmVsIHBhbmljLCBzbyBpdCBkb2Vzbid0IGhhdmUgdG8KPiA+IGNhcmUgYWJv dXQgc3VjaCB0aGluZ3MuIDopIEluIGZhY3QsIGl0IHNob3VsZCByYXRoZXIgYXZvaWQgdGhlbSBh bmQgb25seQo+ID4gZG8gdGhlIGFic29sdXRlIG1pbmltdW0gcmVnaXN0ZXIgd3JpdGVzIG5lZWRl ZCB0byBkbyB0aGUgam9iLgo+IAo+IEdvb2QgcG9pbnQuIEkgZ3Vlc3MgaXQgZG9lc24ndCByZWFs bHkgbWF0dGVyIGF0IHRoYXQgcG9pbnQuCj4gCj4gPiAKPiA+IAo+ID4+IEkgdGhpbmsgd2UgY2Fu IGp1c3QgcmUtY29tbWl0IGFuZCB1cGRhdGUgdGhlIGV4aXN0aW5nIGhhcmR3YXJlIHN0YXRlCj4g Pj4gd2l0aCBvbmx5IHRoZSB0aWxpbmcgaW5mbyBmb3IgZXZlcnkgcGxhbmUgcmVzZXQgdG8gb2Zm Lgo+ID4gCj4gPiBUaGVyZSdzIGFsc28gYSBjb25jZXJuIHRoYXQgbm9uLXByaW1hcnkgcGxhbmVz IG1pZ2h0IHByZXZlbnQgdGhlIG91dHB1dAo+ID4gZnJvbSBiZWluZyB2aXNpYmxlLgo+IAo+IEkg d291bGQganVzdCBob3BlIHRoYXQgdGhlIG92ZXJsYXkgZG9lc24ndCBjb3ZlciB0aGUgZnVsbCBz Y3JlZW4sIG9yIAo+IHRoYXQgdGhlIHBhbmljIGhhbmRsZXIgd3JpdGVzIHRvIGFsbCBidWZmZXJz IGlmIHBvc3NpYmxlLgo+IAo+IERDIHdvdWxkIGhhdmUgdG8gc3dhcCB0aGUgY3VycmVudCBjb250 ZXh0IGluIG9yZGVyIHRvIGRpc2FibGUgcGxhbmVzIGFuZCAKPiB3ZSdkIGhhdmUgdG8gZG8gbWVt b3J5IGFsbG9jYXRpb25zIC8gZnJlZXMgZXRjIGluIG9yZGVyIHRvIGRvIHNvLgoKWW91IGNhbid0 LiBBbmQgSSdtIHdpdGggTWljaGVsLCB5b3UgZG9uJ3Qgd2FudCB0byBydW4gYW55IG9mIHRoZSBE QyBjb2RlLgpQdWxsaW5nIGluIH4xMDBrbG9jIG9mIGRlcGVuZGVuY3kgaW4gcGFuaWMgY29udGV4 dCBqdXN0IGRvZXNuJ3Qgd29yawoodGhhdCdzIHdoYXQgd2UgdHJpZWQgYmVmb3JlIGVzc2VudGlh bGx5KS4KCldoYXQgeW91IGNhbiBkbyBpcwotIHRyeWxvY2ssIGFuZCBiYWlsIG91dCBpZiBhbnkg bG9jayBpcyBsb2NrZWQgKHNpbmNlIHRoYXQgbWVhbnMgdW5kZWZpbmVkCiAgaHcgb3Igc3cgc3Rh dGUsIGFuZCB0aGVuIHlvdSByZWFsbHkgc2hvdWxkbid0IHRvdWNoIGFueXRoaW5nKQotIG1heWJl IHdyaXRlIGEgZmV3IHZlcnkgc3BlY2lmaWMgcmVnaXN0ZXJzIHdpdGggdGhlIG1vc3QgbWluaW1h bCBhbW91bnQKICBvZiBjb2RlIChzaW5jZSB3ZSBuZWVkIHRvIHZhbGlkYXRlIGV2ZXJ5IGxpbmUg dGhhdCBydW5zIGluIG9vcHMvcGFuaWMKICBjb250ZXh0IHRvIG1ha2Ugc3VyZSBpdCBzdGlsbCB3 b3JrcyBpbiBubWkgY29udGV4dCkuIFN0dWZmIGxpa2UKICBkaXNhYmxpbmcgdGlsaW5nIChvbiBp OTE1IHRoYXQncyBqdXN0IGZsaXBwaW5nIGEgYml0IGluIGEgcmVnaXN0ZXIpLgotIG1lbW9yeSB3 cml0ZXMgKG9yIHRoYXQgc2xvdyBpbmRpcmVjdCB3cml0ZSBpbnRlcmZhY2UgeW91IGhhdmUgZm9y CiAgY3B1IGludmlzaWJsZSB2cmFtKSB0byBkcmF3IHRoZSBhY3R1YWwgb29wcy4KCkV2ZXJ5dGhp bmcgZWxzZSBpcyBvdXQgb2YgcXVlc3Rpb24uIEVzcGVjaWFsbHkgY2FsbGluZyBleGlzdGluZyBk aXNwbGF5CmNvZGUganVzdCBkb2Vzbid0IHdvcmssIGl0J3MgaW1lIGltcG9zc2libGUgdG8ga2Vl cCBhbGxvY2F0aW9ucy9zcGlubG9ja3MKYW5kIHN0dWZmIGxpa2UgdGhhdCBvdXQgb2YgaXQuCi1E YW5pZWwKCj4gPj4gRm9yIG1vc3QgYnVmZmVycyBJIGRvbid0IHRoaW5rIHdlJ2QgaGF2ZSB0byBy ZWFsbHkgY29uc2lkZXIgY2hhbmdpbmcKPiA+PiBhbnl0aGluZyBlbHNlIGhlcmUgYXMgbG9uZyBh cyB5b3UgcmVzcGVjdCB0aGUgY3VycmVudCBGQiBzaXplIGFuZAo+ID4+IHBpdGNoLgo+ID4gCj4g PiBIbW0sIGUuZy4gY29tcHJlc3Npb24gbWlnaHQgYWxzbyBuZWVkIHRvIGJlIGRpc2FibGVkPyBP ciBtYXliZSB0aGF0J3MKPiA+IGltcGxpY2l0bHkgb2ZmIHdpdGggbm8gdGlsaW5nPwo+ID4gCj4g PiAKPiAKPiBSZXNldHRpbmcgdGhlIHRpbGluZyBpbmZvIHdpbGwgYWxzbyBkaXNhYmxlIHRoZSBj b21wcmVzc2lvbiBpbiB0aGlzIAo+IGNhc2UsIHNvIHRoZSBidWZmZXIgc2hvdWxkIHN0aWxsIGJl IHVzYWJsZSBmb3IgdGhpcyBwdXJwb3NlLgo+IAo+IE5pY2hvbGFzIEthemxhdXNrYXMKCi0tIApE YW5pZWwgVmV0dGVyClNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlvbgpodHRwOi8v YmxvZy5mZndsbC5jaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n Zng=