From mboxrd@z Thu Jan 1 00:00:00 1970 From: Alexandru-Cosmin Gheorghe Subject: Re: [PATCH v5 9/9] drm/selftests: Add tests for drm_format_info* helpers Date: Mon, 22 Oct 2018 11:32:10 +0100 Message-ID: <20181022103210.GD17598@e114479-lin.cambridge.arm.com> References: <20181019105752.17741-1-alexandru-cosmin.gheorghe@arm.com> <20181019105752.17741-10-alexandru-cosmin.gheorghe@arm.com> <20181019152915.GE31561@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from EUR03-AM5-obe.outbound.protection.outlook.com (mail-eopbgr30083.outbound.protection.outlook.com [40.107.3.83]) by gabe.freedesktop.org (Postfix) with ESMTPS id 2FCE289919 for ; Mon, 22 Oct 2018 10:32:19 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20181019152915.GE31561@phenom.ffwll.local> 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: charles.xu@arm.com, nd@arm.com, matt.szczesiak@arm.com, airlied@linux.ie, liviu.dudau@arm.com, dri-devel@lists.freedesktop.org, maxime.ripard@bootlin.com, david.garbett@arm.com, seanpaul@chromium.org, lisa.wu@arm.com, daniel.vetter@ffwll.ch, malidp@foss.arm.com, ayan.halder@arm.com, james.qian.wang@arm.com List-Id: dri-devel@lists.freedesktop.org T24gRnJpLCBPY3QgMTksIDIwMTggYXQgMDU6Mjk6MTVQTSArMDIwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBGcmksIE9jdCAxOSwgMjAxOCBhdCAxMTo1Nzo1MkFNICswMTAwLCBBbGV4YW5k cnUgR2hlb3JnaGUgd3JvdGU6Cj4gPiBBZGQgc2VsZnRlc3RzIGZvciB0aGUgZm9sbG93aW5nIG5l d2x5IGFkZGVkIGZ1bmN0aW9uczoKPiA+ICAtIGRybV9mb3JtYXRfaW5mb19ibG9ja193aWR0aAo+ ID4gIC0gZHJtX2Zvcm1hdF9pbmZvX2Jsb2NrX2hlaWdodAo+ID4gIC0gZHJtX2Zvcm1hdF9pbmZv X21pbl9waXRjaAo+ID4gCj4gPiBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcnUgR2hlb3JnaGUgPGFs ZXhhbmRydS1jb3NtaW4uZ2hlb3JnaGVAYXJtLmNvbT4KPiA+IC0tLQo+ID4gIGRyaXZlcnMvZ3B1 L2RybS9zZWxmdGVzdHMvTWFrZWZpbGUgICAgICAgICAgICB8ICAgMyArLQo+ID4gIC4uLi9ncHUv ZHJtL3NlbGZ0ZXN0cy9kcm1fbW9kZXNldF9zZWxmdGVzdHMuaCB8ICAgMyArCj4gPiAgZHJpdmVy cy9ncHUvZHJtL3NlbGZ0ZXN0cy90ZXN0LWRybV9mb3JtYXQuYyAgIHwgMjkwICsrKysrKysrKysr KysrKysrKwo+ID4gIC4uLi9kcm0vc2VsZnRlc3RzL3Rlc3QtZHJtX21vZGVzZXRfY29tbW9uLmgg ICB8ICAgMyArCj4gPiAgNCBmaWxlcyBjaGFuZ2VkLCAyOTggaW5zZXJ0aW9ucygrKSwgMSBkZWxl dGlvbigtKQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwdS9kcm0vc2VsZnRlc3Rz L3Rlc3QtZHJtX2Zvcm1hdC5jCj4gPiAKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0v c2VsZnRlc3RzL01ha2VmaWxlIGIvZHJpdmVycy9ncHUvZHJtL3NlbGZ0ZXN0cy9NYWtlZmlsZQo+ ID4gaW5kZXggN2U2NTgxOTIxZGEwLi4wN2I0Zjg4YjQyMmEgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2 ZXJzL2dwdS9kcm0vc2VsZnRlc3RzL01ha2VmaWxlCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v c2VsZnRlc3RzL01ha2VmaWxlCj4gPiBAQCAtMSwzICsxLDQgQEAKPiA+IC10ZXN0LWRybV9tb2Rl c2V0LXkgOj0gdGVzdC1kcm1fbW9kZXNldF9jb21tb24ubyB0ZXN0LWRybV9wbGFuZV9oZWxwZXIu bwo+ID4gK3Rlc3QtZHJtX21vZGVzZXQteSA6PSB0ZXN0LWRybV9tb2Rlc2V0X2NvbW1vbi5vIHRl c3QtZHJtX3BsYW5lX2hlbHBlci5vIFwKPiA+ICsgICAgICAgICAgICAgICAgICAgICAgdGVzdC1k cm1fZm9ybWF0Lm8KPiA+ICAKPiA+ICBvYmotJChDT05GSUdfRFJNX0RFQlVHX1NFTEZURVNUKSAr PSB0ZXN0LWRybV9tbS5vIHRlc3QtZHJtX21vZGVzZXQubwo+ID4gZGlmZiAtLWdpdCBhL2RyaXZl cnMvZ3B1L2RybS9zZWxmdGVzdHMvZHJtX21vZGVzZXRfc2VsZnRlc3RzLmggYi9kcml2ZXJzL2dw dS9kcm0vc2VsZnRlc3RzL2RybV9tb2Rlc2V0X3NlbGZ0ZXN0cy5oCj4gPiBpbmRleCA5NzcxMjkw ZWQyMjguLjRlMjAzYWM4YzEzNCAxMDA2NDQKPiA+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9zZWxm dGVzdHMvZHJtX21vZGVzZXRfc2VsZnRlc3RzLmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9z ZWxmdGVzdHMvZHJtX21vZGVzZXRfc2VsZnRlc3RzLmgKPiA+IEBAIC03LDMgKzcsNiBAQAo+ID4g ICAqIFRlc3RzIGFyZSBleGVjdXRlZCBpbiBvcmRlciBieSBpZ3QvZHJtX3NlbGZ0ZXN0c19oZWxw ZXIKPiA+ICAgKi8KPiA+ICBzZWxmdGVzdChjaGVja19wbGFuZV9zdGF0ZSwgaWd0X2NoZWNrX3Bs YW5lX3N0YXRlKQo+ID4gK3NlbGZ0ZXN0KGNoZWNrX2RybV9mb3JtYXRfYmxvY2tfd2lkdGgsIGln dF9jaGVja19kcm1fZm9ybWF0X2Jsb2NrX3dpZHRoKQo+ID4gK3NlbGZ0ZXN0KGNoZWNrX2RybV9m b3JtYXRfYmxvY2tfaGVpZ2h0LCBpZ3RfY2hlY2tfZHJtX2Zvcm1hdF9ibG9ja19oZWlnaHQpCj4g PiArc2VsZnRlc3QoY2hlY2tfZHJtX2Zvcm1hdF9taW5fcGl0Y2gsIGlndF9jaGVja19kcm1fZm9y bWF0X21pbl9waXRjaCkKPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vc2VsZnRlc3Rz L3Rlc3QtZHJtX2Zvcm1hdC5jIGIvZHJpdmVycy9ncHUvZHJtL3NlbGZ0ZXN0cy90ZXN0LWRybV9m b3JtYXQuYwo+ID4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiA+IGluZGV4IDAwMDAwMDAwMDAwMC4u NWFiZmQ1ZTI4ZDdkCj4gPiAtLS0gL2Rldi9udWxsCj4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0v c2VsZnRlc3RzL3Rlc3QtZHJtX2Zvcm1hdC5jCj4gPiBAQCAtMCwwICsxLDI5MCBAQAo+ID4gKy8v IFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBHUEwtMi4wCj4gPiArLyoKPiA+ICsgKiBUZXN0IGNh c2VzIGZvciB0aGUgZHJtX2Zvcm1hdCBmdW5jdGlvbnMKPiA+ICsgKi8KPiA+ICsKPiA+ICsjZGVm aW5lIHByX2ZtdChmbXQpICJkcm1fZm9ybWF0OiAiIGZtdAo+ID4gKwo+ID4gKyNpbmNsdWRlIDxs aW51eC9lcnJuby5oPgo+ID4gKyNpbmNsdWRlIDxsaW51eC9rZXJuZWwuaD4KPiA+ICsKPiA+ICsj aW5jbHVkZSA8ZHJtL2RybV9mb3VyY2MuaD4KPiA+ICsKPiA+ICsjaW5jbHVkZSAidGVzdC1kcm1f bW9kZXNldF9jb21tb24uaCIKPiA+ICsKPiA+ICtpbnQgaWd0X2NoZWNrX2RybV9mb3JtYXRfYmxv Y2tfd2lkdGgodm9pZCAqaWdub3JlZCkKPiA+ICt7Cj4gPiArCWNvbnN0IHN0cnVjdCBkcm1fZm9y bWF0X2luZm8gKmluZm8gPSBOVUxMOwo+ID4gKwo+ID4gKwkvKiBUZXN0IGludmFsaWQgYXJndW1l bnRzICovCj4gPiArCUZBSUxfT04oZHJtX2Zvcm1hdF9pbmZvX2Jsb2NrX3dpZHRoKGluZm8sIDAp ICE9IDApOwo+ID4gKwlGQUlMX09OKGRybV9mb3JtYXRfaW5mb19ibG9ja193aWR0aChpbmZvLCAt MSkgIT0gMCk7Cj4gPiArCUZBSUxfT04oZHJtX2Zvcm1hdF9pbmZvX2Jsb2NrX3dpZHRoKGluZm8s IDEpICE9IDApOwo+ID4gKwo+ID4gKwkvKiBUZXN0IDEgcGxhbmUgZm9ybWF0ICovCj4gPiArCWlu Zm8gPSBkcm1fZm9ybWF0X2luZm8oRFJNX0ZPUk1BVF9YUkdCNDQ0NCk7Cj4gPiArCUZBSUxfT04o IWluZm8pOwo+ID4gKwlGQUlMX09OKGRybV9mb3JtYXRfaW5mb19ibG9ja193aWR0aChpbmZvLCAw KSAhPSAxKTsKPiA+ICsJRkFJTF9PTihkcm1fZm9ybWF0X2luZm9fYmxvY2tfd2lkdGgoaW5mbywg MSkgIT0gMCk7Cj4gPiArCUZBSUxfT04oZHJtX2Zvcm1hdF9pbmZvX2Jsb2NrX3dpZHRoKGluZm8s IC0xKSAhPSAwKTsKPiA+ICsKPiA+ICsJLyogVGVzdCAyIHBsYW5lcyBmb3JtYXQgKi8KPiA+ICsJ aW5mbyA9IGRybV9mb3JtYXRfaW5mbyhEUk1fRk9STUFUX05WMTIpOwo+ID4gKwlGQUlMX09OKCFp bmZvKTsKPiA+ICsJRkFJTF9PTihkcm1fZm9ybWF0X2luZm9fYmxvY2tfd2lkdGgoaW5mbywgMCkg IT0gMSk7Cj4gPiArCUZBSUxfT04oZHJtX2Zvcm1hdF9pbmZvX2Jsb2NrX3dpZHRoKGluZm8sIDEp ICE9IDEpOwo+ID4gKwlGQUlMX09OKGRybV9mb3JtYXRfaW5mb19ibG9ja193aWR0aChpbmZvLCAy KSAhPSAwKTsKPiA+ICsJRkFJTF9PTihkcm1fZm9ybWF0X2luZm9fYmxvY2tfd2lkdGgoaW5mbywg LTEpICE9IDApOwo+ID4gKwo+ID4gKwkvKiBUZXN0IDMgcGxhbmVzIGZvcm1hdCAqLwo+ID4gKwlp bmZvID0gZHJtX2Zvcm1hdF9pbmZvKERSTV9GT1JNQVRfWVVWNDIyKTsKPiA+ICsJRkFJTF9PTigh aW5mbyk7Cj4gPiArCUZBSUxfT04oZHJtX2Zvcm1hdF9pbmZvX2Jsb2NrX3dpZHRoKGluZm8sIDAp ICE9IDEpOwo+ID4gKwlGQUlMX09OKGRybV9mb3JtYXRfaW5mb19ibG9ja193aWR0aChpbmZvLCAx KSAhPSAxKTsKPiA+ICsJRkFJTF9PTihkcm1fZm9ybWF0X2luZm9fYmxvY2tfd2lkdGgoaW5mbywg MikgIT0gMSk7Cj4gPiArCUZBSUxfT04oZHJtX2Zvcm1hdF9pbmZvX2Jsb2NrX3dpZHRoKGluZm8s IDMpICE9IDApOwo+ID4gKwlGQUlMX09OKGRybV9mb3JtYXRfaW5mb19ibG9ja193aWR0aChpbmZv LCAtMSkgIT0gMCk7Cj4gPiArCj4gPiArCS8qIFRlc3QgYSB0aWxlZCBmb3JtYXQgKi8KPiA+ICsJ aW5mbyA9IGRybV9mb3JtYXRfaW5mbyhEUk1fRk9STUFUX1gwTDApOwo+ID4gKwlGQUlMX09OKCFp bmZvKTsKPiA+ICsJRkFJTF9PTihkcm1fZm9ybWF0X2luZm9fYmxvY2tfd2lkdGgoaW5mbywgMCkg IT0gMik7Cj4gPiArCUZBSUxfT04oZHJtX2Zvcm1hdF9pbmZvX2Jsb2NrX3dpZHRoKGluZm8sIDEp ICE9IDApOwo+ID4gKwlGQUlMX09OKGRybV9mb3JtYXRfaW5mb19ibG9ja193aWR0aChpbmZvLCAt MSkgIT0gMCk7Cj4gPiArCj4gPiArCXJldHVybiAwOwo+ID4gK30KPiA+ICsKPiA+ICtpbnQgaWd0 X2NoZWNrX2RybV9mb3JtYXRfYmxvY2tfaGVpZ2h0KHZvaWQgKmlnbm9yZWQpCj4gPiArewo+ID4g Kwljb25zdCBzdHJ1Y3QgZHJtX2Zvcm1hdF9pbmZvICppbmZvID0gTlVMTDsKPiA+ICsKPiA+ICsJ LyogVGVzdCBpbnZhbGlkIGFyZ3VtZW50cyAqLwo+ID4gKwlGQUlMX09OKGRybV9mb3JtYXRfaW5m b19ibG9ja19oZWlnaHQoaW5mbywgMCkgIT0gMCk7Cj4gPiArCUZBSUxfT04oZHJtX2Zvcm1hdF9p bmZvX2Jsb2NrX2hlaWdodChpbmZvLCAtMSkgIT0gMCk7Cj4gPiArCUZBSUxfT04oZHJtX2Zvcm1h dF9pbmZvX2Jsb2NrX2hlaWdodChpbmZvLCAxKSAhPSAwKTsKPiA+ICsKPiA+ICsJLyogVGVzdCAx IHBsYW5lIGZvcm1hdCAqLwo+ID4gKwlpbmZvID0gZHJtX2Zvcm1hdF9pbmZvKERSTV9GT1JNQVRf WFJHQjQ0NDQpOwo+ID4gKwlGQUlMX09OKCFpbmZvKTsKPiA+ICsJRkFJTF9PTihkcm1fZm9ybWF0 X2luZm9fYmxvY2tfaGVpZ2h0KGluZm8sIDApICE9IDEpOwo+ID4gKwlGQUlMX09OKGRybV9mb3Jt YXRfaW5mb19ibG9ja19oZWlnaHQoaW5mbywgMSkgIT0gMCk7Cj4gPiArCUZBSUxfT04oZHJtX2Zv cm1hdF9pbmZvX2Jsb2NrX2hlaWdodChpbmZvLCAtMSkgIT0gMCk7Cj4gPiArCj4gPiArCS8qIFRl c3QgMiBwbGFuZXMgZm9ybWF0ICovCj4gPiArCWluZm8gPSBkcm1fZm9ybWF0X2luZm8oRFJNX0ZP Uk1BVF9OVjEyKTsKPiA+ICsJRkFJTF9PTighaW5mbyk7Cj4gPiArCUZBSUxfT04oZHJtX2Zvcm1h dF9pbmZvX2Jsb2NrX2hlaWdodChpbmZvLCAwKSAhPSAxKTsKPiA+ICsJRkFJTF9PTihkcm1fZm9y bWF0X2luZm9fYmxvY2tfaGVpZ2h0KGluZm8sIDEpICE9IDEpOwo+ID4gKwlGQUlMX09OKGRybV9m b3JtYXRfaW5mb19ibG9ja19oZWlnaHQoaW5mbywgMikgIT0gMCk7Cj4gPiArCUZBSUxfT04oZHJt X2Zvcm1hdF9pbmZvX2Jsb2NrX2hlaWdodChpbmZvLCAtMSkgIT0gMCk7Cj4gPiArCj4gPiArCS8q IFRlc3QgMyBwbGFuZXMgZm9ybWF0ICovCj4gPiArCWluZm8gPSBkcm1fZm9ybWF0X2luZm8oRFJN X0ZPUk1BVF9ZVVY0MjIpOwo+ID4gKwlGQUlMX09OKCFpbmZvKTsKPiA+ICsJRkFJTF9PTihkcm1f Zm9ybWF0X2luZm9fYmxvY2tfaGVpZ2h0KGluZm8sIDApICE9IDEpOwo+ID4gKwlGQUlMX09OKGRy bV9mb3JtYXRfaW5mb19ibG9ja19oZWlnaHQoaW5mbywgMSkgIT0gMSk7Cj4gPiArCUZBSUxfT04o ZHJtX2Zvcm1hdF9pbmZvX2Jsb2NrX2hlaWdodChpbmZvLCAyKSAhPSAxKTsKPiA+ICsJRkFJTF9P Tihkcm1fZm9ybWF0X2luZm9fYmxvY2tfaGVpZ2h0KGluZm8sIDMpICE9IDApOwo+ID4gKwlGQUlM X09OKGRybV9mb3JtYXRfaW5mb19ibG9ja19oZWlnaHQoaW5mbywgLTEpICE9IDApOwo+ID4gKwo+ ID4gKwkvKiBUZXN0IGEgdGlsZWQgZm9ybWF0ICovCj4gPiArCWluZm8gPSBkcm1fZm9ybWF0X2lu Zm8oRFJNX0ZPUk1BVF9YMEwwKTsKPiA+ICsJRkFJTF9PTighaW5mbyk7Cj4gPiArCUZBSUxfT04o ZHJtX2Zvcm1hdF9pbmZvX2Jsb2NrX2hlaWdodChpbmZvLCAwKSAhPSAyKTsKPiA+ICsJRkFJTF9P Tihkcm1fZm9ybWF0X2luZm9fYmxvY2tfaGVpZ2h0KGluZm8sIDEpICE9IDApOwo+ID4gKwlGQUlM X09OKGRybV9mb3JtYXRfaW5mb19ibG9ja19oZWlnaHQoaW5mbywgLTEpICE9IDApOwo+ID4gKwo+ ID4gKwlyZXR1cm4gMDsKPiA+ICt9Cj4gPiArCj4gPiAraW50IGlndF9jaGVja19kcm1fZm9ybWF0 X21pbl9waXRjaCh2b2lkICppZ25vcmVkKQo+ID4gK3sKPiA+ICsJY29uc3Qgc3RydWN0IGRybV9m b3JtYXRfaW5mbyAqaW5mbyA9IE5VTEw7Cj4gPiArCj4gPiArCS8qIFRlc3QgaW52YWxpZCBhcmd1 bWVudHMgKi8KPiA+ICsJRkFJTF9PTihkcm1fZm9ybWF0X2luZm9fbWluX3BpdGNoKGluZm8sIDAs IDApICE9IDApOwo+ID4gKwlGQUlMX09OKGRybV9mb3JtYXRfaW5mb19taW5fcGl0Y2goaW5mbywg LTEsIDApICE9IDApOwo+ID4gKwlGQUlMX09OKGRybV9mb3JtYXRfaW5mb19taW5fcGl0Y2goaW5m bywgMSwgMCkgIT0gMCk7Cj4gPiArCj4gPiArCS8qIFRlc3QgMSBwbGFuZSA4IGJpdHMgcGVyIHBp eGVsIGZvcm1hdCAqLwo+ID4gKwlpbmZvID0gZHJtX2Zvcm1hdF9pbmZvKERSTV9GT1JNQVRfUkdC MzMyKTsKPiA+ICsJRkFJTF9PTighaW5mbyk7Cj4gPiArCUZBSUxfT04oZHJtX2Zvcm1hdF9pbmZv X21pbl9waXRjaChpbmZvLCAwLCAwKSAhPSAwKTsKPiA+ICsJRkFJTF9PTihkcm1fZm9ybWF0X2lu Zm9fbWluX3BpdGNoKGluZm8sIC0xLCAwKSAhPSAwKTsKPiA+ICsJRkFJTF9PTihkcm1fZm9ybWF0 X2luZm9fbWluX3BpdGNoKGluZm8sIDEsIDApICE9IDApOwo+ID4gKwo+ID4gKwlGQUlMX09OKGRy bV9mb3JtYXRfaW5mb19taW5fcGl0Y2goaW5mbywgMCwgMSkgIT0gMSk7Cj4gPiArCUZBSUxfT04o ZHJtX2Zvcm1hdF9pbmZvX21pbl9waXRjaChpbmZvLCAwLCAyKSAhPSAyKTsKPiA+ICsJRkFJTF9P Tihkcm1fZm9ybWF0X2luZm9fbWluX3BpdGNoKGluZm8sIDAsIDY0MCkgIT0gNjQwKTsKPiA+ICsJ RkFJTF9PTihkcm1fZm9ybWF0X2luZm9fbWluX3BpdGNoKGluZm8sIDAsIDEwMjQpICE9IDEwMjQp Owo+ID4gKwlGQUlMX09OKGRybV9mb3JtYXRfaW5mb19taW5fcGl0Y2goaW5mbywgMCwgMTkyMCkg IT0gMTkyMCk7Cj4gPiArCUZBSUxfT04oZHJtX2Zvcm1hdF9pbmZvX21pbl9waXRjaChpbmZvLCAw LCA0MDk2KSAhPSA0MDk2KTsKPiA+ICsJRkFJTF9PTihkcm1fZm9ybWF0X2luZm9fbWluX3BpdGNo KGluZm8sIDAsIDY3MSkgIT0gNjcxKTsKPiA+ICsJRkFJTF9PTihkcm1fZm9ybWF0X2luZm9fbWlu X3BpdGNoKGluZm8sIDAsIFVJTlRfTUFYKSAhPQo+ID4gKwkJCSh1aW50NjRfdClVSU5UX01BWCk7 Cj4gPiArCUZBSUxfT04oZHJtX2Zvcm1hdF9pbmZvX21pbl9waXRjaChpbmZvLCAwLCAoVUlOVF9N QVggLSAxKSkgIT0KPiA+ICsJCQkodWludDY0X3QpKFVJTlRfTUFYIC0gMSkpOwo+ID4gKwo+ID4g KwkvKiBUZXN0IDEgcGxhbmUgMTYgYml0cyBwZXIgcGl4ZWwgZm9ybWF0ICovCj4gPiArCWluZm8g PSBkcm1fZm9ybWF0X2luZm8oRFJNX0ZPUk1BVF9YUkdCNDQ0NCk7Cj4gPiArCUZBSUxfT04oIWlu Zm8pOwo+ID4gKwlGQUlMX09OKGRybV9mb3JtYXRfaW5mb19taW5fcGl0Y2goaW5mbywgMCwgMCkg IT0gMCk7Cj4gPiArCUZBSUxfT04oZHJtX2Zvcm1hdF9pbmZvX21pbl9waXRjaChpbmZvLCAtMSwg MCkgIT0gMCk7Cj4gPiArCUZBSUxfT04oZHJtX2Zvcm1hdF9pbmZvX21pbl9waXRjaChpbmZvLCAx LCAwKSAhPSAwKTsKPiA+ICsKPiA+ICsJRkFJTF9PTihkcm1fZm9ybWF0X2luZm9fbWluX3BpdGNo KGluZm8sIDAsIDEpICE9IDIpOwo+ID4gKwlGQUlMX09OKGRybV9mb3JtYXRfaW5mb19taW5fcGl0 Y2goaW5mbywgMCwgMikgIT0gNCk7Cj4gPiArCUZBSUxfT04oZHJtX2Zvcm1hdF9pbmZvX21pbl9w aXRjaChpbmZvLCAwLCA2NDApICE9IDEyODApOwo+ID4gKwlGQUlMX09OKGRybV9mb3JtYXRfaW5m b19taW5fcGl0Y2goaW5mbywgMCwgMTAyNCkgIT0gMjA0OCk7Cj4gPiArCUZBSUxfT04oZHJtX2Zv cm1hdF9pbmZvX21pbl9waXRjaChpbmZvLCAwLCAxOTIwKSAhPSAzODQwKTsKPiA+ICsJRkFJTF9P Tihkcm1fZm9ybWF0X2luZm9fbWluX3BpdGNoKGluZm8sIDAsIDQwOTYpICE9IDgxOTIpOwo+ID4g KwlGQUlMX09OKGRybV9mb3JtYXRfaW5mb19taW5fcGl0Y2goaW5mbywgMCwgNjcxKSAhPSAxMzQy KTsKPiA+ICsJRkFJTF9PTihkcm1fZm9ybWF0X2luZm9fbWluX3BpdGNoKGluZm8sIDAsIFVJTlRf TUFYKSAhPQo+ID4gKwkJCSh1aW50NjRfdClVSU5UX01BWCAqIDIpOwo+ID4gKwlGQUlMX09OKGRy bV9mb3JtYXRfaW5mb19taW5fcGl0Y2goaW5mbywgMCwgKFVJTlRfTUFYIC0gMSkpICE9Cj4gPiAr CQkJKHVpbnQ2NF90KShVSU5UX01BWCAtIDEpICogMik7Cj4gPiArCj4gPiArCS8qIFRlc3QgMSBw bGFuZSAyNCBiaXRzIHBlciBwaXhlbCBmb3JtYXQgKi8KPiA+ICsJaW5mbyA9IGRybV9mb3JtYXRf aW5mbyhEUk1fRk9STUFUX1JHQjg4OCk7Cj4gPiArCUZBSUxfT04oIWluZm8pOwo+ID4gKwlGQUlM X09OKGRybV9mb3JtYXRfaW5mb19taW5fcGl0Y2goaW5mbywgMCwgMCkgIT0gMCk7Cj4gPiArCUZB SUxfT04oZHJtX2Zvcm1hdF9pbmZvX21pbl9waXRjaChpbmZvLCAtMSwgMCkgIT0gMCk7Cj4gPiAr CUZBSUxfT04oZHJtX2Zvcm1hdF9pbmZvX21pbl9waXRjaChpbmZvLCAxLCAwKSAhPSAwKTsKPiA+ ICsKPiA+ICsJRkFJTF9PTihkcm1fZm9ybWF0X2luZm9fbWluX3BpdGNoKGluZm8sIDAsIDEpICE9 IDMpOwo+ID4gKwlGQUlMX09OKGRybV9mb3JtYXRfaW5mb19taW5fcGl0Y2goaW5mbywgMCwgMikg IT0gNik7Cj4gPiArCUZBSUxfT04oZHJtX2Zvcm1hdF9pbmZvX21pbl9waXRjaChpbmZvLCAwLCA2 NDApICE9IDE5MjApOwo+ID4gKwlGQUlMX09OKGRybV9mb3JtYXRfaW5mb19taW5fcGl0Y2goaW5m bywgMCwgMTAyNCkgIT0gMzA3Mik7Cj4gPiArCUZBSUxfT04oZHJtX2Zvcm1hdF9pbmZvX21pbl9w aXRjaChpbmZvLCAwLCAxOTIwKSAhPSA1NzYwKTsKPiA+ICsJRkFJTF9PTihkcm1fZm9ybWF0X2lu Zm9fbWluX3BpdGNoKGluZm8sIDAsIDQwOTYpICE9IDEyMjg4KTsKPiA+ICsJRkFJTF9PTihkcm1f Zm9ybWF0X2luZm9fbWluX3BpdGNoKGluZm8sIDAsIDY3MSkgIT0gMjAxMyk7Cj4gPiArCUZBSUxf T04oZHJtX2Zvcm1hdF9pbmZvX21pbl9waXRjaChpbmZvLCAwLCBVSU5UX01BWCkgIT0KPiA+ICsJ CQkodWludDY0X3QpVUlOVF9NQVggKiAzKTsKPiA+ICsJRkFJTF9PTihkcm1fZm9ybWF0X2luZm9f bWluX3BpdGNoKGluZm8sIDAsIFVJTlRfTUFYIC0gMSkgIT0KPiA+ICsJCQkodWludDY0X3QpKFVJ TlRfTUFYIC0gMSkgKiAzKTsKPiA+ICsKPiA+ICsJLyogVGVzdCAxIHBsYW5lIDMyIGJpdHMgcGVy IHBpeGVsIGZvcm1hdCAqLwo+ID4gKwlpbmZvID0gZHJtX2Zvcm1hdF9pbmZvKERSTV9GT1JNQVRf QUJHUjg4ODgpOwo+ID4gKwlGQUlMX09OKCFpbmZvKTsKPiA+ICsJRkFJTF9PTihkcm1fZm9ybWF0 X2luZm9fbWluX3BpdGNoKGluZm8sIDAsIDApICE9IDApOwo+ID4gKwlGQUlMX09OKGRybV9mb3Jt YXRfaW5mb19taW5fcGl0Y2goaW5mbywgLTEsIDApICE9IDApOwo+ID4gKwlGQUlMX09OKGRybV9m b3JtYXRfaW5mb19taW5fcGl0Y2goaW5mbywgMSwgMCkgIT0gMCk7Cj4gPiArCj4gPiArCUZBSUxf T04oZHJtX2Zvcm1hdF9pbmZvX21pbl9waXRjaChpbmZvLCAwLCAxKSAhPSA0KTsKPiA+ICsJRkFJ TF9PTihkcm1fZm9ybWF0X2luZm9fbWluX3BpdGNoKGluZm8sIDAsIDIpICE9IDgpOwo+ID4gKwlG QUlMX09OKGRybV9mb3JtYXRfaW5mb19taW5fcGl0Y2goaW5mbywgMCwgNjQwKSAhPSAyNTYwKTsK PiA+ICsJRkFJTF9PTihkcm1fZm9ybWF0X2luZm9fbWluX3BpdGNoKGluZm8sIDAsIDEwMjQpICE9 IDQwOTYpOwo+ID4gKwlGQUlMX09OKGRybV9mb3JtYXRfaW5mb19taW5fcGl0Y2goaW5mbywgMCwg MTkyMCkgIT0gNzY4MCk7Cj4gPiArCUZBSUxfT04oZHJtX2Zvcm1hdF9pbmZvX21pbl9waXRjaChp bmZvLCAwLCA0MDk2KSAhPSAxNjM4NCk7Cj4gPiArCUZBSUxfT04oZHJtX2Zvcm1hdF9pbmZvX21p bl9waXRjaChpbmZvLCAwLCA2NzEpICE9IDI2ODQpOwo+ID4gKwlGQUlMX09OKGRybV9mb3JtYXRf aW5mb19taW5fcGl0Y2goaW5mbywgMCwgVUlOVF9NQVgpICE9Cj4gPiArCQkJKHVpbnQ2NF90KVVJ TlRfTUFYICogNCk7Cj4gPiArCUZBSUxfT04oZHJtX2Zvcm1hdF9pbmZvX21pbl9waXRjaChpbmZv LCAwLCBVSU5UX01BWCAtIDEpICE9Cj4gPiArCQkJKHVpbnQ2NF90KShVSU5UX01BWCAtIDEpICog NCk7Cj4gPiArCj4gPiArCS8qIFRlc3QgMiBwbGFuZXMgZm9ybWF0ICovCj4gPiArCWluZm8gPSBk cm1fZm9ybWF0X2luZm8oRFJNX0ZPUk1BVF9OVjEyKTsKPiA+ICsJRkFJTF9PTighaW5mbyk7Cj4g PiArCUZBSUxfT04oZHJtX2Zvcm1hdF9pbmZvX21pbl9waXRjaChpbmZvLCAwLCAwKSAhPSAwKTsK PiA+ICsJRkFJTF9PTihkcm1fZm9ybWF0X2luZm9fbWluX3BpdGNoKGluZm8sIDEsIDApICE9IDAp Owo+ID4gKwlGQUlMX09OKGRybV9mb3JtYXRfaW5mb19taW5fcGl0Y2goaW5mbywgLTEsIDApICE9 IDApOwo+ID4gKwlGQUlMX09OKGRybV9mb3JtYXRfaW5mb19taW5fcGl0Y2goaW5mbywgMiwgMCkg IT0gMCk7Cj4gPiArCj4gPiArCUZBSUxfT04oZHJtX2Zvcm1hdF9pbmZvX21pbl9waXRjaChpbmZv LCAwLCAxKSAhPSAxKTsKPiA+ICsJRkFJTF9PTihkcm1fZm9ybWF0X2luZm9fbWluX3BpdGNoKGlu Zm8sIDEsIDEpICE9IDIpOwo+ID4gKwlGQUlMX09OKGRybV9mb3JtYXRfaW5mb19taW5fcGl0Y2go aW5mbywgMCwgMikgIT0gMik7Cj4gPiArCUZBSUxfT04oZHJtX2Zvcm1hdF9pbmZvX21pbl9waXRj aChpbmZvLCAxLCAxKSAhPSAyKTsKPiA+ICsJRkFJTF9PTihkcm1fZm9ybWF0X2luZm9fbWluX3Bp dGNoKGluZm8sIDAsIDY0MCkgIT0gNjQwKTsKPiA+ICsJRkFJTF9PTihkcm1fZm9ybWF0X2luZm9f bWluX3BpdGNoKGluZm8sIDEsIDMyMCkgIT0gNjQwKTsKPiA+ICsJRkFJTF9PTihkcm1fZm9ybWF0 X2luZm9fbWluX3BpdGNoKGluZm8sIDAsIDEwMjQpICE9IDEwMjQpOwo+ID4gKwlGQUlMX09OKGRy bV9mb3JtYXRfaW5mb19taW5fcGl0Y2goaW5mbywgMSwgNTEyKSAhPSAxMDI0KTsKPiA+ICsJRkFJ TF9PTihkcm1fZm9ybWF0X2luZm9fbWluX3BpdGNoKGluZm8sIDAsIDE5MjApICE9IDE5MjApOwo+ ID4gKwlGQUlMX09OKGRybV9mb3JtYXRfaW5mb19taW5fcGl0Y2goaW5mbywgMSwgOTYwKSAhPSAx OTIwKTsKPiA+ICsJRkFJTF9PTihkcm1fZm9ybWF0X2luZm9fbWluX3BpdGNoKGluZm8sIDAsIDQw OTYpICE9IDQwOTYpOwo+ID4gKwlGQUlMX09OKGRybV9mb3JtYXRfaW5mb19taW5fcGl0Y2goaW5m bywgMSwgMjA0OCkgIT0gNDA5Nik7Cj4gPiArCUZBSUxfT04oZHJtX2Zvcm1hdF9pbmZvX21pbl9w aXRjaChpbmZvLCAwLCA2NzEpICE9IDY3MSk7Cj4gPiArCUZBSUxfT04oZHJtX2Zvcm1hdF9pbmZv X21pbl9waXRjaChpbmZvLCAxLCAzMzYpICE9IDY3Mik7Cj4gPiArCUZBSUxfT04oZHJtX2Zvcm1h dF9pbmZvX21pbl9waXRjaChpbmZvLCAwLCBVSU5UX01BWCkgIT0KPiA+ICsJCQkodWludDY0X3Qp VUlOVF9NQVgpOwo+ID4gKwlGQUlMX09OKGRybV9mb3JtYXRfaW5mb19taW5fcGl0Y2goaW5mbywg MSwgVUlOVF9NQVggLyAyICsgMSkgIT0KPiA+ICsJCQkodWludDY0X3QpVUlOVF9NQVggKyAxKTsK PiA+ICsJRkFJTF9PTihkcm1fZm9ybWF0X2luZm9fbWluX3BpdGNoKGluZm8sIDAsIChVSU5UX01B WCAtIDEpKSAhPQo+ID4gKwkJCSh1aW50NjRfdCkoVUlOVF9NQVggLSAxKSk7Cj4gPiArCUZBSUxf T04oZHJtX2Zvcm1hdF9pbmZvX21pbl9waXRjaChpbmZvLCAxLCAoVUlOVF9NQVggLSAxKSAvICAy KSAhPQo+ID4gKwkJCSh1aW50NjRfdCkoVUlOVF9NQVggLSAxKSk7Cj4gPiArCj4gPiArCS8qIFRl c3QgMyBwbGFuZXMgOCBiaXRzIHBlciBwaXhlbCBmb3JtYXQgKi8KPiA+ICsJaW5mbyA9IGRybV9m b3JtYXRfaW5mbyhEUk1fRk9STUFUX1lVVjQyMik7Cj4gPiArCUZBSUxfT04oIWluZm8pOwo+ID4g KwlGQUlMX09OKGRybV9mb3JtYXRfaW5mb19taW5fcGl0Y2goaW5mbywgMCwgMCkgIT0gMCk7Cj4g PiArCUZBSUxfT04oZHJtX2Zvcm1hdF9pbmZvX21pbl9waXRjaChpbmZvLCAxLCAwKSAhPSAwKTsK PiA+ICsJRkFJTF9PTihkcm1fZm9ybWF0X2luZm9fbWluX3BpdGNoKGluZm8sIDIsIDApICE9IDAp Owo+ID4gKwlGQUlMX09OKGRybV9mb3JtYXRfaW5mb19taW5fcGl0Y2goaW5mbywgLTEsIDApICE9 IDApOwo+ID4gKwlGQUlMX09OKGRybV9mb3JtYXRfaW5mb19taW5fcGl0Y2goaW5mbywgMywgMCkg IT0gMCk7Cj4gPiArCj4gPiArCUZBSUxfT04oZHJtX2Zvcm1hdF9pbmZvX21pbl9waXRjaChpbmZv LCAwLCAxKSAhPSAxKTsKPiA+ICsJRkFJTF9PTihkcm1fZm9ybWF0X2luZm9fbWluX3BpdGNoKGlu Zm8sIDEsIDEpICE9IDEpOwo+ID4gKwlGQUlMX09OKGRybV9mb3JtYXRfaW5mb19taW5fcGl0Y2go aW5mbywgMiwgMSkgIT0gMSk7Cj4gPiArCUZBSUxfT04oZHJtX2Zvcm1hdF9pbmZvX21pbl9waXRj aChpbmZvLCAwLCAyKSAhPSAyKTsKPiA+ICsJRkFJTF9PTihkcm1fZm9ybWF0X2luZm9fbWluX3Bp dGNoKGluZm8sIDEsIDIpICE9IDIpOwo+ID4gKwlGQUlMX09OKGRybV9mb3JtYXRfaW5mb19taW5f cGl0Y2goaW5mbywgMiwgMikgIT0gMik7Cj4gPiArCUZBSUxfT04oZHJtX2Zvcm1hdF9pbmZvX21p bl9waXRjaChpbmZvLCAwLCA2NDApICE9IDY0MCk7Cj4gPiArCUZBSUxfT04oZHJtX2Zvcm1hdF9p bmZvX21pbl9waXRjaChpbmZvLCAxLCAzMjApICE9IDMyMCk7Cj4gPiArCUZBSUxfT04oZHJtX2Zv cm1hdF9pbmZvX21pbl9waXRjaChpbmZvLCAyLCAzMjApICE9IDMyMCk7Cj4gPiArCUZBSUxfT04o ZHJtX2Zvcm1hdF9pbmZvX21pbl9waXRjaChpbmZvLCAwLCAxMDI0KSAhPSAxMDI0KTsKPiA+ICsJ RkFJTF9PTihkcm1fZm9ybWF0X2luZm9fbWluX3BpdGNoKGluZm8sIDEsIDUxMikgIT0gNTEyKTsK PiA+ICsJRkFJTF9PTihkcm1fZm9ybWF0X2luZm9fbWluX3BpdGNoKGluZm8sIDIsIDUxMikgIT0g NTEyKTsKPiA+ICsJRkFJTF9PTihkcm1fZm9ybWF0X2luZm9fbWluX3BpdGNoKGluZm8sIDAsIDE5 MjApICE9IDE5MjApOwo+ID4gKwlGQUlMX09OKGRybV9mb3JtYXRfaW5mb19taW5fcGl0Y2goaW5m bywgMSwgOTYwKSAhPSA5NjApOwo+ID4gKwlGQUlMX09OKGRybV9mb3JtYXRfaW5mb19taW5fcGl0 Y2goaW5mbywgMiwgOTYwKSAhPSA5NjApOwo+ID4gKwlGQUlMX09OKGRybV9mb3JtYXRfaW5mb19t aW5fcGl0Y2goaW5mbywgMCwgNDA5NikgIT0gNDA5Nik7Cj4gPiArCUZBSUxfT04oZHJtX2Zvcm1h dF9pbmZvX21pbl9waXRjaChpbmZvLCAxLCAyMDQ4KSAhPSAyMDQ4KTsKPiA+ICsJRkFJTF9PTihk cm1fZm9ybWF0X2luZm9fbWluX3BpdGNoKGluZm8sIDIsIDIwNDgpICE9IDIwNDgpOwo+ID4gKwlG QUlMX09OKGRybV9mb3JtYXRfaW5mb19taW5fcGl0Y2goaW5mbywgMCwgNjcxKSAhPSA2NzEpOwo+ ID4gKwlGQUlMX09OKGRybV9mb3JtYXRfaW5mb19taW5fcGl0Y2goaW5mbywgMSwgMzM2KSAhPSAz MzYpOwo+ID4gKwlGQUlMX09OKGRybV9mb3JtYXRfaW5mb19taW5fcGl0Y2goaW5mbywgMiwgMzM2 KSAhPSAzMzYpOwo+ID4gKwlGQUlMX09OKGRybV9mb3JtYXRfaW5mb19taW5fcGl0Y2goaW5mbywg MCwgVUlOVF9NQVgpICE9Cj4gPiArCQkJKHVpbnQ2NF90KVVJTlRfTUFYKTsKPiA+ICsJRkFJTF9P Tihkcm1fZm9ybWF0X2luZm9fbWluX3BpdGNoKGluZm8sIDEsIFVJTlRfTUFYIC8gMiArIDEpICE9 Cj4gPiArCQkJKHVpbnQ2NF90KVVJTlRfTUFYIC8gMiArIDEpOwo+ID4gKwlGQUlMX09OKGRybV9m b3JtYXRfaW5mb19taW5fcGl0Y2goaW5mbywgMiwgVUlOVF9NQVggLyAyICsgMSkgIT0KPiA+ICsJ CQkodWludDY0X3QpVUlOVF9NQVggLyAyICsgMSk7Cj4gPiArCUZBSUxfT04oZHJtX2Zvcm1hdF9p bmZvX21pbl9waXRjaChpbmZvLCAwLCAoVUlOVF9NQVggLSAxKSAvIDIpICE9Cj4gPiArCQkJKHVp bnQ2NF90KShVSU5UX01BWCAtIDEpIC8gMik7Cj4gPiArCUZBSUxfT04oZHJtX2Zvcm1hdF9pbmZv X21pbl9waXRjaChpbmZvLCAxLCAoVUlOVF9NQVggLSAxKSAvIDIpICE9Cj4gPiArCQkJKHVpbnQ2 NF90KShVSU5UX01BWCAtIDEpIC8gMik7Cj4gPiArCUZBSUxfT04oZHJtX2Zvcm1hdF9pbmZvX21p bl9waXRjaChpbmZvLCAyLCAoVUlOVF9NQVggLSAxKSAvIDIpICE9Cj4gPiArCQkJKHVpbnQ2NF90 KShVSU5UX01BWCAtIDEpIC8gMik7Cj4gPiArCj4gPiArCS8qIFRlc3QgdGlsZWQgZm9ybWF0ICov Cj4gPiArCWluZm8gPSBkcm1fZm9ybWF0X2luZm8oRFJNX0ZPUk1BVF9YMEwyKTsKPiA+ICsJRkFJ TF9PTighaW5mbyk7Cj4gPiArCUZBSUxfT04oZHJtX2Zvcm1hdF9pbmZvX21pbl9waXRjaChpbmZv LCAwLCAwKSAhPSAwKTsKPiA+ICsJRkFJTF9PTihkcm1fZm9ybWF0X2luZm9fbWluX3BpdGNoKGlu Zm8sIC0xLCAwKSAhPSAwKTsKPiA+ICsJRkFJTF9PTihkcm1fZm9ybWF0X2luZm9fbWluX3BpdGNo KGluZm8sIDEsIDApICE9IDApOwo+ID4gKwo+ID4gKwlGQUlMX09OKGRybV9mb3JtYXRfaW5mb19t aW5fcGl0Y2goaW5mbywgMCwgMSkgIT0gMik7Cj4gPiArCUZBSUxfT04oZHJtX2Zvcm1hdF9pbmZv X21pbl9waXRjaChpbmZvLCAwLCAyKSAhPSA0KTsKPiA+ICsJRkFJTF9PTihkcm1fZm9ybWF0X2lu Zm9fbWluX3BpdGNoKGluZm8sIDAsIDY0MCkgIT0gMTI4MCk7Cj4gPiArCUZBSUxfT04oZHJtX2Zv cm1hdF9pbmZvX21pbl9waXRjaChpbmZvLCAwLCAxMDI0KSAhPSAyMDQ4KTsKPiA+ICsJRkFJTF9P Tihkcm1fZm9ybWF0X2luZm9fbWluX3BpdGNoKGluZm8sIDAsIDE5MjApICE9IDM4NDApOwo+ID4g KwlGQUlMX09OKGRybV9mb3JtYXRfaW5mb19taW5fcGl0Y2goaW5mbywgMCwgNDA5NikgIT0gODE5 Mik7Cj4gPiArCUZBSUxfT04oZHJtX2Zvcm1hdF9pbmZvX21pbl9waXRjaChpbmZvLCAwLCA2NzEp ICE9IDEzNDIpOwo+ID4gKwlGQUlMX09OKGRybV9mb3JtYXRfaW5mb19taW5fcGl0Y2goaW5mbywg MCwgVUlOVF9NQVgpICE9Cj4gPiArCQkJKHVpbnQ2NF90KVVJTlRfTUFYICogMik7Cj4gPiArCUZB SUxfT04oZHJtX2Zvcm1hdF9pbmZvX21pbl9waXRjaChpbmZvLCAwLCBVSU5UX01BWCAtIDEpICE9 Cj4gPiArCQkJKHVpbnQ2NF90KShVSU5UX01BWCAtIDEpICogMik7Cj4gPiArCj4gPiArCS8qIFRl c3QgZm9ybWF0IHdpdGggY3BwL2NoYXJfcGVyX2Jsb2NrIDAgKi8KPiA+ICsJaW5mbyA9IGRybV9m b3JtYXRfaW5mbyhEUk1fRk9STUFUX1ZVWTEwMTAxMCk7Cj4gPiArCUZBSUxfT04oIWluZm8pOwo+ ID4gKwlGQUlMX09OKGRybV9mb3JtYXRfaW5mb19taW5fcGl0Y2goaW5mbywgMCwgMCkgIT0gMCk7 Cj4gPiArCUZBSUxfT04oZHJtX2Zvcm1hdF9pbmZvX21pbl9waXRjaChpbmZvLCAtMSwgMCkgIT0g MCk7Cj4gPiArCUZBSUxfT04oZHJtX2Zvcm1hdF9pbmZvX21pbl9waXRjaChpbmZvLCAxLCAwKSAh PSAwKTsKPiA+ICsKPiA+ICsJRkFJTF9PTihkcm1fZm9ybWF0X2luZm9fbWluX3BpdGNoKGluZm8s IDAsIDEpICE9IDApOwo+ID4gKwlGQUlMX09OKGRybV9mb3JtYXRfaW5mb19taW5fcGl0Y2goaW5m bywgMCwgVUlOVF9NQVgpICE9IDApOwo+ID4gKwo+ID4gKwlyZXR1cm4gMDsKPiA+ICt9Cj4gCj4g Q29tcHJlaGVuc2l2ZSwgYnV0IGFsc28gZmFpcmx5IGJvcmluZy4gQW55d2F5LCBpdCdzIGEgc3Rh cnQsIHNvOgoKVW5pdCB0ZXN0cyB1c3VhbGx5IGFyZSA6KQoKPiAKPiBSZXZpZXdlZC1ieTogRGFu aWVsIFZldHRlciA8ZGFuaWVsLnZldHRlckBmZndsbC5jaD4KCkNhbiBJIGFsc28gZ2V0IHlvdXIg cmV2aWV3ZWQtYnkgb24gdGhlIHBhdGNoZXMgdGhhdCBhZGRzIHRoaXMgZnVuY3Rpb25zID8KCj4g Cj4gV2hhdCBJIGhhZCBpbiBtaW5kIGlzIG1heWJlIG5vdCBxdWl0ZSBzbyBsb3ctbGV2ZWwgdW5p dCB0ZXN0aW5nLCBidXQKPiBleGVyY2lzaW5nIHRoZSBlbnRpcmUgZnJhbWVidWZmZXJfY3JlYXRl IG1hY2hpbmVyeS4gVGhlIHJlY2VudGx5Cj4gZHJtX2NsaWVudF9mcmFtZWJ1ZmZlcl9jcmVhdGUg ZXNzZW50aWFsbHkgZ2l2ZXMgeW91IHRoYXQgaW50ZXJmYWNlIGZvcgo+IG1vZHVsZXMgKGJ1dCBJ IGd1ZXNzIHdlIGNvdWxkIGFsc28gRVhQT1JUX1NZTUJPTF9GT1JfVEVTVFNfT05MWSwKPiBjb25k aXRpb25hbCBvbiBkcm0gc2VsZnRlc3RzIGJlaW5nIGVuYWJsZWQsIGRpcmVjdGx5IG9uCj4gZHJt X2ludGVybmFsX2ZyYW1lYnVmZmVyX2NyZWF0ZSkuCgpZZWFoLCB0aGF0J3MgZXhhY3RseSB3aGF0 IEkgdGhvdWdodCBJIHN0YXJ0ZWQgbG9va2luZyBhdCBpdCwgYnV0IEkgZ290CmRpc2NvdXJhZ2Vk LCBieSB0aGUgbGFjayBvZiBtb2NraW5nLCBzbyBJIGRlY2lkZWQgdG8gc3RhcnQgc21hbGwuCgo+ IAo+IFRoaXMgbmVlZHMgc29tZSBmYWlybHkgbWluaW1hbCBtb2NraW5nIG9mIGEgZHJtX2Rldmlj ZSB3aXRoIGEgYnVuY2ggb2YKPiBkdW1teSBmdW5jdGlvbnMgKHRocm93IHRoZW0gaW50byB0ZXN0 LWRybV9tb2Rlc2V0X2NvbW1vbi5jIGlmIHlvdSBmZWVsCj4gbGlrZSkuIFRoZW4gZ28gdGhyb3Vn aCBhIHBpbGUgb2YgdmFsaWQgYW5kIGludmFsaWQgY29tYmluYXRpb25zIGFuZCBtYWtlCj4gc3Vy ZSB5b3VyIC0+ZmJfY3JlYXRlIGRyaXZlciBjYWxsYmFjayBpcyBvbmx5IGNhbGxlZCB3aGVuIHdo ZW4gaXQgc2hvdWxkCj4gYmUgKGFuZCBub3QgZm9yIGFueXRoaW5nIGludmFsaWQpLiBJIHRoaW5r IHRoYXQgd291bGQgeWllbGQgdGhlIG11Y2ggbW9yZQo+IGludGVyZXN0aW5nIHRlc3RpbmcgLi4u CgpUaGlzIGNvbWJpbmVkIHdpdGggRVhQT1JUX1NZTUJPTF9GT1JfVEVTVFNfT05MWSBzaG91bGQg YmUgZmFpcmx5CnNpbXBsZSwgYnV0IGl0IHN0aWxsIGZlZWxzIGxpa2UgYSBkcm9wIGluIHRoZSBv Y2VhbiwgSSBjYW4ndCBldmVuCnRlc3QgdGhlIG90aGVyIGZ1bmN0aW9ucyB0aGF0IHBhdGNoIFsx XSB0b3VjaGVzIGxpa2U6CmRybV9nZW1fZmJfY3JlYXRlX3dpdGhfZnVuY3MgYW5kIGRybV9mYl9j bWFfZ2V0X2dlbV9hZGRyLgoKWzFdIGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL2FyY2hp dmVzL2RyaS1kZXZlbC8yMDE4LU9jdG9iZXIvMTkzNjcxLmh0bWwKCj4gCj4gVGhhdCB3aWxsIGFs c28gcGF2ZSB0aGUgZ3JvdW5kIGZvciBzb21lIHJhdGhlciBtb3JlIHNlcmlvdXMgYWRkZmIgdGVz dGluZwo+IGluIHRoZSBmdXR1cmUuIEFuZCBldmVudHVhbGx5IGV2ZW4gbW9yZSBzZXJpb3VzIHRl c3Rpbmcgb24gZS5nLiBhdG9taWMKPiBoZWxwZXJzLgo+IAo+IEFueXdheSwgaWYgeW91IGZlZWwg bGlrZSwgd291bGQgYmUgYXdlc29tZSB0byBmb2xsb3cgdXAgYSBiaXQgaW4gdGhhdAo+IGRpcmVj dGlvbi4KPiAKPiBDaGVlcnMsIERhbmllbAo+IAo+ID4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1 L2RybS9zZWxmdGVzdHMvdGVzdC1kcm1fbW9kZXNldF9jb21tb24uaCBiL2RyaXZlcnMvZ3B1L2Ry bS9zZWxmdGVzdHMvdGVzdC1kcm1fbW9kZXNldF9jb21tb24uaAo+ID4gaW5kZXggYjAwNjVhMmVi MDY3Li41OTJhNjU4MWIxODkgMTAwNjQ0Cj4gPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vc2VsZnRl c3RzL3Rlc3QtZHJtX21vZGVzZXRfY29tbW9uLmgKPiA+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9z ZWxmdGVzdHMvdGVzdC1kcm1fbW9kZXNldF9jb21tb24uaAo+ID4gQEAgLTE0LDUgKzE0LDggQEAK PiA+ICAjZGVmaW5lIEZBSUxfT04oeCkgRkFJTCgoeCksICIlcyIsICJGQUlMX09OKCIgX19zdHJp bmdpZnkoeCkgIilcbiIpCj4gPiAgCj4gPiAgaW50IGlndF9jaGVja19wbGFuZV9zdGF0ZSh2b2lk ICppZ25vcmVkKTsKPiA+ICtpbnQgaWd0X2NoZWNrX2RybV9mb3JtYXRfYmxvY2tfd2lkdGgodm9p ZCAqaWdub3JlZCk7Cj4gPiAraW50IGlndF9jaGVja19kcm1fZm9ybWF0X2Jsb2NrX2hlaWdodCh2 b2lkICppZ25vcmVkKTsKPiA+ICtpbnQgaWd0X2NoZWNrX2RybV9mb3JtYXRfbWluX3BpdGNoKHZv aWQgKmlnbm9yZWQpOwo+ID4gIAo+ID4gICNlbmRpZgo+ID4gLS0gCj4gPiAyLjE4LjAKPiA+IAo+ IAo+IC0tIAo+IERhbmllbCBWZXR0ZXIKPiBTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9y YXRpb24KPiBodHRwOi8vYmxvZy5mZndsbC5jaAoKLS0gCkNoZWVycywKQWxleCBHCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmRyaS1kZXZlbCBtYWlsaW5n IGxpc3QKZHJpLWRldmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbAo=