From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH i-g-t v4] lib/igt_core: Add kmsg capture and dumping Date: Thu, 26 Nov 2015 15:34:59 +0100 Message-ID: <20151126143459.GP17050@phenom.ffwll.local> References: <1448019977.4983.8.camel@linux.intel.com> <1448540273-19233-1-git-send-email-joonas.lahtinen@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wm0-f41.google.com (mail-wm0-f41.google.com [74.125.82.41]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0C6066E0F9 for ; Thu, 26 Nov 2015 06:35:04 -0800 (PST) Received: by wmec201 with SMTP id c201so24898915wme.1 for ; Thu, 26 Nov 2015 06:35:02 -0800 (PST) Content-Disposition: inline In-Reply-To: <1448540273-19233-1-git-send-email-joonas.lahtinen@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Joonas Lahtinen Cc: Daniel Vetter , Intel graphics driver community testing & development , Thomas Wood List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBOb3YgMjYsIDIwMTUgYXQgMDI6MTc6NTNQTSArMDIwMCwgSm9vbmFzIExhaHRpbmVu IHdyb3RlOgo+IENhcHR1cmUgdGhlIG91dHB1dCBmcm9tIC9kZXYva21zZyBkdXJpbmcgdGVzdCBl eGVjdXRpb24gaW5kZXBlbmRhbnRseQo+IG9mIG90aGVyIGNvbmN1cnJlbnQgd2F0Y2hlcnMgbGlr ZSBQaWdsaXQgdGVzdCBydW5uZXIuCj4gCj4gVGhlIGNhcHR1cmVkIG91dHB1dCBpcyBhbmFseXpl ZCBhbmQgdGhlIHdob2xlIG91dHB1dCBkdW1wZWQgaWYgbWVzc2FnZQo+IHdpdGggcHJpb3JpdHkg TE9HX1dBUk5JTkcgb3IgaGlnaGVyIGlzIGVtaXR0ZWQgZnJvbSBhbnkgZG9tYWluLgo+IAo+IEFs c28gYWRkaW5nIGlndF9jYXB0dXJlIHRvIGxpYi90ZXN0cyB3aGljaCB3aWxsIGZhaWwgc3VidGVz dHMgYW5kCj4gcHJvZHVjZSBrbXNnIG91dHB1dCB3aGljaCBzaG91bGQgYmUgY2FwdHVyZWQgYnkg dGhlIG5ldyBjb2RlLgo+IAo+IHY0Ogo+IC0gRG8gbm90IGVmZmVjdCByZXR1cm4gdmFsdWUgb2Yg dGVzdCwganVzdCBkdW1wIChEYW5pZWwpCj4gCj4gdjM6Cj4gLSBVc2UgT19DTE9FWEVDIGFuZCBj bGFyaWZ5IGhleCBkZWNvZGluZyAoQ2hyaXMpCj4gCj4gdjI6Cj4gLSBSZW9wZW4vY2xvc2UgdGhl IGttc2cgRkQgcGVyIGVhY2ggdGVzdCAoQ2hyaXMpCj4gLSBCZXR0ZXIgY29tbWl0IG1lc2FnZSAo RGFuaWVsKQo+IC0gRGlzcGxheSBmYWlsdXJlIGR1ZSB0byBrbXNnIG9ubHkgYXMgRkFJTCAoS01T RykKPiAKPiBDYzogVGhvbWFzIFdvb2QgPHRob21hcy53b29kQGludGVsLmNvbT4KPiBDYzogQ2hy aXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4gQ2M6IERhbWllbiBMZXNwaWF1 IDxkYW1pZW4ubGVzcGlhdUBpbnRlbC5jb20+Cj4gQ2M6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52 ZXR0ZXJAZmZ3bGwuY2g+Cj4gQWNrZWQtYnk6IERhbmllbCBWZXR0ZXIgPGRhbmllbC52ZXR0ZXJA ZmZ3bGwuY2g+CgpIbSBJIGd1ZXNzIHdlIG5lZWQgdG8gc3RyaWtlIHRoYXQgYWNrIGFnYWluLCBt b3JlIGNvbW1lbnRzIGJlbG93LgoKPiBTaWduZWQtb2ZmLWJ5OiBKb29uYXMgTGFodGluZW4gPGpv b25hcy5sYWh0aW5lbkBsaW51eC5pbnRlbC5jb20+Cj4gLS0tCj4gIGxpYi9pZ3RfY29yZS5jICAg ICAgICAgICAgIHwgMTI5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KystLQo+ICBsaWIvdGVzdHMvLmdpdGlnbm9yZSAgICAgICB8ICAgMSArCj4gIGxpYi90ZXN0cy9N YWtlZmlsZS5zb3VyY2VzIHwgICAyICsKPiAgbGliL3Rlc3RzL2lndF9jYXB0dXJlLmMgICAgfCAg ODkgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICA0IGZpbGVzIGNoYW5nZWQsIDIx OCBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQo+ICBjcmVhdGUgbW9kZSAxMDA2NDQgbGli L3Rlc3RzL2lndF9jYXB0dXJlLmMKPiAKPiBkaWZmIC0tZ2l0IGEvbGliL2lndF9jb3JlLmMgYi9s aWIvaWd0X2NvcmUuYwo+IGluZGV4IDg0Y2Y4ZDIuLmIxYWE3NTAgMTAwNjQ0Cj4gLS0tIGEvbGli L2lndF9jb3JlLmMKPiArKysgYi9saWIvaWd0X2NvcmUuYwo+IEBAIC00Myw2ICs0Myw3IEBACj4g ICNpbmNsdWRlIDxnZXRvcHQuaD4KPiAgI2luY2x1ZGUgPHN0ZGxpYi5oPgo+ICAjaW5jbHVkZSA8 dW5pc3RkLmg+Cj4gKyNpbmNsdWRlIDxzeXNsb2cuaD4KPiAgI2luY2x1ZGUgPHN5cy93YWl0Lmg+ Cj4gICNpbmNsdWRlIDxzeXMvdHlwZXMuaD4KPiAgI2lmZGVmIF9fbGludXhfXwo+IEBAIC0yMTEs NiArMjEyLDggQEAKPiAgICogIi0taGVscCIgY29tbWFuZCBsaW5lIG9wdGlvbi4KPiAgICovCj4g IAo+ICsjZGVmaW5lIElHVF9LTVNHX0RVTVBfQlVGX1NJWkUJCTQwOTYKPiArCj4gIHN0YXRpYyB1 bnNpZ25lZCBpbnQgZXhpdF9oYW5kbGVyX2NvdW50Owo+ICBjb25zdCBjaGFyICppZ3RfaW50ZXJh Y3RpdmVfZGVidWc7Cj4gIAo+IEBAIC0yNDgsNiArMjUxLDEwIEBAIGVudW0gewo+ICBzdGF0aWMg aW50IGlndF9leGl0Y29kZSA9IElHVF9FWElUX1NVQ0NFU1M7Cj4gIHN0YXRpYyBjb25zdCBjaGFy ICpjb21tYW5kX3N0cjsKPiAgCj4gK3N0YXRpYyBpbnQgaWd0X2ttc2dfY2FwdHVyZV9mZCA9IC0x Owo+ICtzdGF0aWMgaW50IGlndF9rbXNnX2NoZWNrX2ZkID0gLTE7Cj4gK3N0YXRpYyBjaGFyKiBp Z3Rfa21zZ19kdW1wX2J1ZiA9IE5VTEw7Cj4gKwo+ICBzdGF0aWMgY2hhciogaWd0X2xvZ19kb21h aW5fZmlsdGVyOwo+ICBzdGF0aWMgc3RydWN0IHsKPiAgCWNoYXIgKmVudHJpZXNbMjU2XTsKPiBA QCAtMzEzLDYgKzMyMCwxMTIgQEAgc3RhdGljIHZvaWQgX2lndF9sb2dfYnVmZmVyX2R1bXAodm9p ZCkKPiAgCXB0aHJlYWRfbXV0ZXhfdW5sb2NrKCZsb2dfYnVmZmVyX211dGV4KTsKPiAgfQo+ICAK PiArc3RhdGljIHZvaWQgX2lndF9rbXNnX3Jlc2V0KHZvaWQpCj4gK3sKPiArCWlmIChpZ3Rfa21z Z19kdW1wX2J1ZiA9PSBOVUxMKQo+ICsJCWlndF9rbXNnX2R1bXBfYnVmID0gbWFsbG9jKElHVF9L TVNHX0RVTVBfQlVGX1NJWkUpOwo+ICsKPiArCWlmIChpZ3Rfa21zZ19kdW1wX2J1ZiA9PSBOVUxM KSB7Cj4gKwkJaWd0X3dhcm4oIlVuYWJsZSB0byBhbGxvY2F0ZSBtZW1vcnksICIKPiArCQkJICJj YW4gbm90IGR1bXAga21zZy5cbiIpOwo+ICsJCXJldHVybjsKPiArCX0KPiArCj4gKwlpZiAoaWd0 X2ttc2dfY2FwdHVyZV9mZCA9PSAtMSkKPiArCQlpZ3Rfa21zZ19jYXB0dXJlX2ZkID0gb3Blbigi L2Rldi9rbXNnIiwKPiArCQkJCQkgICBPX1JET05MWSB8IE9fTk9OQkxPQ0sgfCBPX0NMT0VYRUMp Owo+ICsKPiArCWlmIChpZ3Rfa21zZ19jYXB0dXJlX2ZkID09IC0xKQo+ICsJCWdvdG8gZXJyX2Nh cHR1cmU7Cj4gKwo+ICsJaWYgKGlndF9rbXNnX2NoZWNrX2ZkID09IC0xKQo+ICsJCWlndF9rbXNn X2NoZWNrX2ZkID0gb3BlbigiL2Rldi9rbXNnIiwKPiArCQkJCQkgT19SRE9OTFkgfCBPX05PTkJM T0NLIHwgT19DTE9FWEVDKTsKPiArCj4gKwlpZiAoaWd0X2ttc2dfY2hlY2tfZmQgPT0gLTEpCj4g KwkJZ290byBlcnJfY2hlY2s7Cj4gKwo+ICsJbHNlZWsoaWd0X2ttc2dfY2FwdHVyZV9mZCwgMCwg U0VFS19FTkQpOwo+ICsJbHNlZWsoaWd0X2ttc2dfY2hlY2tfZmQsIDAsIFNFRUtfRU5EKTsKPiAr CXJldHVybjsKPiArCj4gK2Vycl9jaGVjazoKPiArCWNsb3NlKGlndF9rbXNnX2NhcHR1cmVfZmQp Owo+ICsJaWd0X2ttc2dfY2FwdHVyZV9mZCA9IC0xOwo+ICtlcnJfY2FwdHVyZToKPiArCWZyZWUo aWd0X2ttc2dfZHVtcF9idWYpOwo+ICsJaWd0X2ttc2dfZHVtcF9idWYgPSBOVUxMOwo+ICsJcmV0 dXJuOwo+ICt9Cj4gKwo+ICtzdGF0aWMgaW50IF9pZ3Rfa21zZ19kdW1wKGJvb2wgcHJpbnQsIGlu dCBmaWx0ZXJfcHJpb3JpdHkpCj4gK3sKPiArCXNpemVfdCBuYnl0ZXM7Cj4gKwlpbnQgbmxpbmVz Owo+ICsJaW50IHByZWZpeDsKPiArCWludCBwcmlvcml0eTsKPiArCWNoYXIgKnA7Cj4gKwlpbnQg ZmQ7Cj4gKwo+ICsJZmQgPSBwcmludCA/IGlndF9rbXNnX2NhcHR1cmVfZmQgOiBpZ3Rfa21zZ19j aGVja19mZDsKPiArCWlmIChmZCA9PSAtMSkKPiArCQlyZXR1cm4gMDsKPiArCj4gKwlubGluZXMg PSAwOwo+ICsJZG8gewo+ICsJCWVycm5vID0gMDsKPiArCQluYnl0ZXMgPSByZWFkKGZkLCBpZ3Rf a21zZ19kdW1wX2J1ZiwgSUdUX0tNU0dfRFVNUF9CVUZfU0laRSk7Cj4gKwo+ICsJCWlmIChuYnl0 ZXMgPT0gLTEpCj4gKwkJCWNvbnRpbnVlOwo+ICsKPiArCQlzc2NhbmYoaWd0X2ttc2dfZHVtcF9i dWYsICIlZDsiLCAmcHJlZml4KTsKPiArCQlwcmlvcml0eSA9IHByZWZpeCAmIDB4NzsKPiArCj4g KwkJaWYgKHByaW9yaXR5ID4gZmlsdGVyX3ByaW9yaXR5KQo+ICsJCQljb250aW51ZTsKPiArCj4g KwkJbmxpbmVzKys7Cj4gKwo+ICsJCWlmICghcHJpbnQpCj4gKwkJCWNvbnRpbnVlOwo+ICsKPiAr CQlpZiAobmxpbmVzID09IDEpCj4gKwkJCWZwcmludGYoc3RkZXJyLCAiKioqKiBLTVNHICoqKipc biIpOwoKUGxlYXNlIHVzZSB0aGUgaWd0IGxvZ2dpbmcgZnVuY3Rpb25zIHdlIGhhdmUuIFRoaXMg aG9sZHMgaW4gZ2VuZXJhbCwKcGxlYXNlIGRvbid0IHVzZSBhbnkgb2YgdGhlIHJhdyBvdXRwdXQg ZnVuY3Rpb25zIGFuZCBpbnN0ZWFkIHVzZSB0aGUKaWd0X3dhcm4vaW5mby9kZWJ1ZyBzdHVmZiBp biB5b3VyIGVudGlyZSBwYXRjaCBmb3IgbG9nZ2luZy4KCkFsc28gdGhlIHByb2JsZW0gd2l0aCBk dW1waW5nIGludG8gc3RkZXJyIGlzIHRoYXQgdGhpcyBpcyBhdCB0aGUgaWd0X3dhcm4KbGV2ZWws IHdoaWNoIG1lYW5zIGlmIHRoaXMgaGFwcGVucyB5b3VyIHRlc3Qgd2lsbCBiZSBjb25zaWRlcmVk IGEgZmFpbHVyZQppbiBDSS4KCkFuZCB0aGVyZSdzIHBsZW50eSBvZiBkcml2ZXJzIGFuZCBvdGhl ciBzdHVmZiB0aGF0IGR1bXAgcmFuZG9tIGNyYXAgYXQKdGhpcyBsZXZlbCBpbnRvIGRtZXNnLCBl c3BlY2lhbGx5IG92ZXIgc3lzdGVtIHN1c3BlbmQgcmVzdW1lLiBXaGljaCBtZWFucwp5b3VyIHBh dGNoIHdpbGwgcmVncmVzcyBhIHBpbGUgb2YgQkFUIGlndHMuCgpXZSByZWFsbHksIHJlYWxseSBu ZWVkIHRvIGZpbHRlciBkbWVzZyB0aGUgc2FtZSB3YXkgYXMgcGlnbGl0IGRvZXMuIEFuZCBJCm1l YW4gX2V4YWN0bHlfIHRoZSBzYW1lIHdheS4gT3RoZXJ3aXNlIHRoZXJlJ3MgZGlmZmVyZW5jZXMg aW4gdGVzdCBzdGF0dXMsCmFuZCB0aGF0IG1lYW5zIG5vaXNlIGluIENJIGFuZCBmcnVzdHJhdGlv biBhbGwgYXJvdW5kLgoKT3RoZXIgb3B0aW9uIGlzIHRvIGR1bXAgYXQgaWd0X2luZm8gb3IgaWd0 X2RlYnVnIGxldmVsLgoKPiArCj4gKwkJcCA9IHN0cmNocihpZ3Rfa21zZ19kdW1wX2J1ZiwgJzsn KSArIDE7Cj4gKwkJd2hpbGUgKHAgLSBpZ3Rfa21zZ19kdW1wX2J1ZiA8IG5ieXRlcykgewo+ICsJ CQlpbnQgYyA9ICpwKys7Cj4gKwkJCS8qIERlY29kZSBub24tcHJpbnRhYmxlIGNoYXJhY3RlcnMg ZXNjYXBlZCBpbgo+ICsJCQkgKiBoZXggZm9ybSAoXHgwZikuICovCj4gKwkJCWlmIChjID09ICdc XCcpIHsKPiArCQkJCWlndF9hc3NlcnQoKnArKyA9PSAneCcpOwo+ICsJCQkJaWd0X2Fzc2VydChz c2NhbmYocCwgIiV4IiwgJmMpID09IDEpOwo+ICsJCQkJcCArPSAyOwo+ICsJCQl9Cj4gKwkJCWZw dXRjKGMsIHN0ZGVycik7Cj4gKwkJfQo+ICsJfSB3aGlsZShlcnJubyA9PSAwKTsKPiArCj4gKwlp ZiAocHJpbnQgJiYgbmxpbmVzKQo+ICsJCWZwcmludGYoc3RkZXJyLCAiKioqKiAgRU5EICAqKioq XG4iKTsKPiArCj4gKwlpZiAoZXJybm8gIT0gRUFHQUlOKQo+ICsJCWZwcmludGYoc3RkZXJyLCAi RXJyb3I6IEluY29tcGxldGUga21zZyFcbiIpOwo+ICsKPiArCWNsb3NlKGZkKTsKPiArCj4gKwlp ZiAocHJpbnQpIHsKPiArCQlpZ3Rfa21zZ19jYXB0dXJlX2ZkID0gLTE7Cj4gKwkJZnJlZShpZ3Rf a21zZ19kdW1wX2J1Zik7Cj4gKwkJaWd0X2ttc2dfZHVtcF9idWYgPSBOVUxMOwo+ICsJfSBlbHNl IHsKPiArCQlpZ3Rfa21zZ19jaGVja19mZCA9IC0xOwo+ICsJfQo+ICsKPiArCXJldHVybiBubGlu ZXM7Cj4gK30KPiArCj4gIF9fYXR0cmlidXRlX18oKGZvcm1hdChwcmludGYsIDEsIDIpKSkKPiAg c3RhdGljIHZvaWQga21zZyhjb25zdCBjaGFyICpmb3JtYXQsIC4uLikKPiAgI2RlZmluZSBLRVJO X0VNRVIJIjwwPiIKPiBAQCAtNzEyLDggKzgyNSwxMCBAQCBvdXQ6Cj4gIAkvKiBpbnN0YWxsIGV4 aXQgaGFuZGxlciwgdG8gZW5zdXJlIHdlIGNsZWFuIHVwICovCj4gIAlpZ3RfaW5zdGFsbF9leGl0 X2hhbmRsZXIoY29tbW9uX2V4aXRfaGFuZGxlcik7Cj4gIAo+IC0JaWYgKCF0ZXN0X3dpdGhfc3Vi dGVzdHMpCj4gKwlpZiAoIXRlc3Rfd2l0aF9zdWJ0ZXN0cykgewo+ICAJCWdldHRpbWUoJnN1YnRl c3RfdGltZSk7Cj4gKwkJX2lndF9rbXNnX3Jlc2V0KCk7Cj4gKwl9Cj4gIAo+ICAJZm9yIChpID0g MDsgKG9wdGluZCArIGkpIDwgKmFyZ2M7IGkrKykKPiAgCQlhcmd2W2kgKyAxXSA9IGFyZ3Zbb3B0 aW5kICsgaV07Cj4gQEAgLTgzMiw4ICs5NDcsOSBAQCBib29sIF9faWd0X3J1bl9zdWJ0ZXN0KGNv bnN0IGNoYXIgKnN1YnRlc3RfbmFtZSkKPiAgCWlndF9kZWJ1ZygiU3RhcnRpbmcgc3VidGVzdDog JXNcbiIsIHN1YnRlc3RfbmFtZSk7Cj4gIAo+ICAJX2lndF9sb2dfYnVmZmVyX3Jlc2V0KCk7Cj4g LQo+ICsJX2lndF9rbXNnX3Jlc2V0KCk7Cj4gIAlnZXR0aW1lKCZzdWJ0ZXN0X3RpbWUpOwo+ICsK PiAgCXJldHVybiAoaW5fc3VidGVzdCA9IHN1YnRlc3RfbmFtZSk7Cj4gIH0KPiAgCj4gQEAgLTk2 Myw2ICsxMDc5LDkgQEAgdm9pZCBfX2lndF9za2lwX2NoZWNrKGNvbnN0IGNoYXIgKmZpbGUsIGNv bnN0IGludCBsaW5lLAo+ICAgKi8KPiAgdm9pZCBpZ3Rfc3VjY2Vzcyh2b2lkKQo+ICB7Cj4gKwlp ZiAoX2lndF9rbXNnX2R1bXAoZmFsc2UsIExPR19XQVJOSU5HKSkKPiArCQlfaWd0X2ttc2dfZHVt cCh0cnVlLCBMT0dfREVCVUcpOwo+ICsKPiAgCXN1Y2NlZWRlZF9vbmUgPSB0cnVlOwo+ICAJaWYg KGluX3N1YnRlc3QpCj4gIAkJZXhpdF9zdWJ0ZXN0KCJTVUNDRVNTIik7Cj4gQEAgLTEwMDUsNiAr MTEyNCwxMSBAQCB2b2lkIGlndF9mYWlsKGludCBleGl0Y29kZSkKPiAgCj4gIAlfaWd0X2xvZ19i dWZmZXJfZHVtcCgpOwo+ICAKPiArCS8qIFNob3cga21zZyBpZiBub3QgYWxyZWFkeSBzaG93bi4g Ki8KPiArCWlmIChfaWd0X2ttc2dfZHVtcCh0cnVlLCBMT0dfREVCVUcpIDwgMSkKPiArCQlmcHJp bnRmKHN0ZGVyciwgIk5vIGttc2cuXG4iKTsKPiArCj4gKwo+ICAJaWYgKGluX3N1YnRlc3QpIHsK PiAgCQlpZiAoZXhpdGNvZGUgPT0gSUdUX0VYSVRfVElNRU9VVCkKPiAgCQkJZXhpdF9zdWJ0ZXN0 KCJUSU1FT1VUIik7Cj4gQEAgLTExMTEsNyArMTIzNSw2IEBAIHZvaWQgaWd0X2V4aXQodm9pZCkK PiAgCQlleGl0KElHVF9FWElUX0lOVkFMSUQpOwo+ICAJfQo+ICAKPiAtCj4gIAlpZiAoaWd0X29u bHlfbGlzdF9zdWJ0ZXN0cygpKQo+ICAJCWV4aXQoSUdUX0VYSVRfU1VDQ0VTUyk7Cj4gIAo+IGRp ZmYgLS1naXQgYS9saWIvdGVzdHMvLmdpdGlnbm9yZSBiL2xpYi90ZXN0cy8uZ2l0aWdub3JlCj4g aW5kZXggYTRmMTA4MC4uYzQ5YzE3OCAxMDA2NDQKPiAtLS0gYS9saWIvdGVzdHMvLmdpdGlnbm9y ZQo+ICsrKyBiL2xpYi90ZXN0cy8uZ2l0aWdub3JlCj4gQEAgLTEsNSArMSw2IEBACj4gICMgUGxl YXNlIGtlZXAgc29ydGVkIGFscGhhYmV0aWNhbGx5Cj4gIGlndF9hc3NlcnQKPiAraWd0X2NhcHR1 cmUKPiAgaWd0X2ZvcmtfaGVscGVyCj4gIGlndF9pbnZhbGlkX3N1YnRlc3RfbmFtZQo+ICBpZ3Rf bGlzdF9vbmx5Cj4gZGlmZiAtLWdpdCBhL2xpYi90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzIGIvbGli L3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKPiBpbmRleCA3NzdiOWMxLi42NTA2YmFmIDEwMDY0NAo+ IC0tLSBhL2xpYi90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzCj4gKysrIGIvbGliL3Rlc3RzL01ha2Vm aWxlLnNvdXJjZXMKPiBAQCAtMSw0ICsxLDUgQEAKPiAgY2hlY2tfUFJPR1JBTVMgPSBcCj4gKwlp Z3RfY2FwdHVyZSBcCj4gIAlpZ3Rfbm9fZXhpdCBcCj4gIAlpZ3Rfbm9fZXhpdF9saXN0X29ubHkg XAo+ICAJaWd0X2ZvcmtfaGVscGVyIFwKPiBAQCAtMzIsNCArMzMsNSBAQCBYRkFJTF9URVNUUyA9 IFwKPiAgCWlndF9zaW1wbGVfdGVzdF9zdWJ0ZXN0cyBcCj4gIAlpZ3RfdGltZW91dCBcCj4gIAlp Z3RfaW52YWxpZF9zdWJ0ZXN0X25hbWUgXAo+ICsJaWd0X2NhcHR1cmUgXAo+ICAJJChOVUxMKQo+ IGRpZmYgLS1naXQgYS9saWIvdGVzdHMvaWd0X2NhcHR1cmUuYyBiL2xpYi90ZXN0cy9pZ3RfY2Fw dHVyZS5jCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwLi4yOGZmY2UxCj4g LS0tIC9kZXYvbnVsbAo+ICsrKyBiL2xpYi90ZXN0cy9pZ3RfY2FwdHVyZS5jCgppZ3RfZG1lc2df Y2FwdHVyZT8KCkNoZWVycywgRGFuaWVsCgo+IEBAIC0wLDAgKzEsODkgQEAKPiArLyoKPiArICog Q29weXJpZ2h0IMKpIDIwMTUgSW50ZWwgQ29ycG9yYXRpb24KPiArICoKPiArICogUGVybWlzc2lv biBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWlu aW5nIGEKPiArICogY29weSBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50 YXRpb24gZmlsZXMgKHRoZSAiU29mdHdhcmUiKSwKPiArICogdG8gZGVhbCBpbiB0aGUgU29mdHdh cmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgo+ICsg KiB0aGUgcmlnaHRzIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJp YnV0ZSwgc3VibGljZW5zZSwKPiArICogYW5kL29yIHNlbGwgY29waWVzIG9mIHRoZSBTb2Z0d2Fy ZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlCj4gKyAqIFNvZnR3YXJlIGlzIGZ1 cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cj4g KyAqCj4gKyAqIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24g bm90aWNlIChpbmNsdWRpbmcgdGhlIG5leHQKPiArICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNs dWRlZCBpbiBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQo+ICsgKiBT b2Z0d2FyZS4KPiArICoKPiArICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJ VEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKPiArICogSU1QTElFRCwgSU5D TFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJ VFksCj4gKyAqIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5H RU1FTlQuICBJTiBOTyBFVkVOVCBTSEFMTAo+ICsgKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQg SE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgo+ICsgKiBM SUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVS V0lTRSwgQVJJU0lORwo+ICsgKiBGUk9NLCBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRI RSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTCj4gKyAqIElOIFRIRSBTT0ZU V0FSRS4KPiArICoKPiArICogQXV0aG9yczoKPiArICogICAgSm9vbmFzIExhaHRpbmVuIDxqb29u YXMubGFodGluZW5AbGludXguaW50ZWwuY29tPgo+ICsgKgo+ICsgKi8KPiArCj4gKyNpbmNsdWRl ICJpZ3RfY29yZS5oIgo+ICsjaW5jbHVkZSA8c3RkaW8uaD4KPiArI2luY2x1ZGUgPHN5c2xvZy5o Pgo+ICsKPiArc3RhdGljIEZJTEUqIGttc2c7Cj4gKwo+ICtzdGF0aWMgdm9pZAo+ICt0ZXN0X2tt c2coYm9vbCBmYWlsKQo+ICt7Cj4gKwlmcHJpbnRmKGttc2csICI8JWQ+VEVTVCAoS01TRylcbiIs IExPR19XQVJOSU5HKTsKPiArCWZmbHVzaChrbXNnKTsKPiArCWlmIChmYWlsKQo+ICsJCWlndF9m YWlsKElHVF9FWElUX0ZBSUxVUkUpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZAo+ICt0ZXN0X3dh cm4odm9pZCkKPiArewo+ICsJaWd0X3dhcm4oIlRFU1QgKFdBUk4pXG4iKTsKPiArCWlndF9mYWls KElHVF9FWElUX0ZBSUxVUkUpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZAo+ICt0ZXN0X2RlYnVn KHZvaWQpCj4gK3sKPiArCWlndF9kZWJ1ZygiVEVTVCAoREVCVUcpXG4iKTsKPiArCWlndF9mYWls KElHVF9FWElUX0ZBSUxVUkUpOwo+ICt9Cj4gKwo+ICtzdGF0aWMgdm9pZAo+ICt0ZXN0X2NvbWJp bmVkKHZvaWQpCj4gK3sKPiArCWlndF93YXJuKCJURVNUICMxIChXQVJOKVxuIik7Cj4gKwlmcHV0 cygiVEVTVCAjMVxuIiwga21zZyk7Cj4gKwlpZ3Rfd2FybigiVEVTVCAjMiAoV0FSTilcbiIpOwo+ ICsJZnB1dHMoIlRFU1QgIzJcbiIsIGttc2cpOwo+ICsJZmZsdXNoKGttc2cpOwo+ICsJaWd0X2Zh aWwoSUdUX0VYSVRfRkFJTFVSRSk7Cj4gK30KPiArCj4gK2lndF9tYWluCj4gK3sKPiArCWlndF9m aXh0dXJlIHsKPiArCQlrbXNnID0gZm9wZW4oIi9kZXYva21zZyIsICJ3Iik7Cj4gKwkJaWd0X3Jl cXVpcmUoa21zZyAhPSBOVUxMKTsKPiArCX0KPiArCj4gKwlpZ3Rfc3VidGVzdCgia21zZyIpCj4g KwkJdGVzdF9rbXNnKHRydWUpOwo+ICsJaWd0X3N1YnRlc3QoImttc2ctc3VjY2VzcyIpCj4gKwkJ dGVzdF9rbXNnKGZhbHNlKTsKPiArCWlndF9zdWJ0ZXN0KCJ3YXJuIikKPiArCQl0ZXN0X3dhcm4o KTsKPiArCWlndF9zdWJ0ZXN0KCJkZWJ1ZyIpCj4gKwkJdGVzdF9kZWJ1ZygpOwo+ICsJaWd0X3N1 YnRlc3QoImNvbWJpbmVkIikKPiArCQl0ZXN0X2NvbWJpbmVkKCk7Cj4gKwo+ICsJaWd0X2ZpeHR1 cmUgewo+ICsJCWZjbG9zZShrbXNnKTsKPiArCX0KPiArfQo+IC0tIAo+IDIuNC4zCj4gCgotLSAK RGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KaHR0cDov L2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1n ZngK