From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ville =?iso-8859-1?Q?Syrj=E4l=E4?= Subject: Re: [PATCH i-g-t] tests: remove kms_fbc_crc Date: Tue, 17 Oct 2017 18:59:41 +0300 Message-ID: <20171017155941.GY10981@intel.com> References: <20171017151640.1306-1-daniel.vetter@ffwll.ch> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 7FE736E163 for ; Tue, 17 Oct 2017 15:59:45 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20171017151640.1306-1-daniel.vetter@ffwll.ch> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: Daniel Vetter , Intel Graphics Development , Paulo Zanoni List-Id: intel-gfx@lists.freedesktop.org T24gVHVlLCBPY3QgMTcsIDIwMTcgYXQgMDU6MTY6NDBQTSArMDIwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBUaGlzIHdhcyB0aGUgcHJlZGVjZXNzb3IgdGVzdCB0byBrbXNfZnJvbnRidWZmZXJf dHJhY2tpbmcsIHdoaWNoIG5vdAo+IGp1c3QgdGVzdHMgZmJjLCBhbmQgYWxzbyBpbiBhIG11Y2gg bW9yZSB0aHJvdWdoLW91dCBmYXNoaW9uLgo+IAo+IEJvdGggdGVzdHMgYXV0aG9yZWQgYnkgUGF1 bG8sCgpJIHdyb3RlIGttc19mYmNfY3JjLgoKPiBidXQgbG9va2luZyBhdCBnaXQgaGlzdG9yeSB0 aGVyZSdzIGEKPiBjbGVhciBzd2l0Y2ggd2l0aCB0aGUgaW50cm9kdWN0aW9uIG9mIGttc19mcm9u dGJ1ZmZlcl90cmFja2luZy4gQWZ0ZXIKPiB0aGF0IG9ubHkgbWFpbnRlbmFuY2UgY29tbWl0cyB0 byBrbXNfZmJjX2NyYy4gTm90IHBvaW50IGhhdmluZwo+IHJlZHVuZGFudCB0ZXN0cywgc28gbGV0 cyByZW1vdmUgdGhlIG9sZCBvbmUuCgprbXNfZmJjX2NyYyB3YXMgbW9yZSBnZWFyZWQgdG93YXJk cyB0ZXN0aW5nIHRoZSBoYXJkd2FyZSB0cmFja2luZywgYnV0CnNpbmNlIHdlIG5vIGxvbmdlciB1 c2UgdGhhdCBhcGFydCBmcm9tIHRoZSBHVFQgdHJhY2tpbmcgSSBndWVzcwprbXNfZmJjX2NyYyBj YW4gZ28uCgpBY2tlZC1ieTogVmlsbGUgU3lyasOkbMOkIDx2aWxsZS5zeXJqYWxhQGxpbnV4Lmlu dGVsLmNvbT4KCj4gCj4gVGhpcyB3aWxsIGN1dCBhIGJpdCBtb3JlIHRoYW4gMyBtaW51dGVzIG9m IHRlc3QtdGltZSBmcm9tIGtibC1zaGFyZC4KPiAKPiBDYzogUGF1bG8gWmFub25pIDxwYXVsby5y Lnphbm9uaUBpbnRlbC5jb20+Cj4gU2lnbmVkLW9mZi1ieTogRGFuaWVsIFZldHRlciA8ZGFuaWVs LnZldHRlckBpbnRlbC5jb20+Cj4gLS0tCj4gIHRlc3RzL01ha2VmaWxlLnNvdXJjZXMgfCAgIDEg LQo+ICB0ZXN0cy9rbXNfZmJjX2NyYy5jICAgIHwgNTgwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgdGVzdHMvbWVzb24uYnVpbGQgICAgICB8ICAg MSAtCj4gIDMgZmlsZXMgY2hhbmdlZCwgNTgyIGRlbGV0aW9ucygtKQo+ICBkZWxldGUgbW9kZSAx MDA2NDQgdGVzdHMva21zX2ZiY19jcmMuYwo+IAo+IGRpZmYgLS1naXQgYS90ZXN0cy9NYWtlZmls ZS5zb3VyY2VzIGIvdGVzdHMvTWFrZWZpbGUuc291cmNlcwo+IGluZGV4IDljOWZiMzE2ZmM3MS4u MjMxM2MxMmI1MDhjIDEwMDY0NAo+IC0tLSBhL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMKPiArKysg Yi90ZXN0cy9NYWtlZmlsZS5zb3VyY2VzCj4gQEAgLTE4Miw3ICsxODIsNiBAQCBURVNUU19wcm9n cyA9IFwKPiAgCWttc19jdXJzb3JfY3JjIFwKPiAgCWttc19jdXJzb3JfbGVnYWN5IFwKPiAgCWtt c19kcmF3X2NyYyBcCj4gLQlrbXNfZmJjX2NyYyBcCj4gIAlrbXNfZmJjb25fZmJ0IFwKPiAgCWtt c19mZW5jZV9waW5fbGVhayBcCj4gIAlrbXNfZmxpcCBcCj4gZGlmZiAtLWdpdCBhL3Rlc3RzL2tt c19mYmNfY3JjLmMgYi90ZXN0cy9rbXNfZmJjX2NyYy5jCj4gZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0Cj4gaW5kZXggMDYyMzQ1NjZjMjMyLi4wMDAwMDAwMDAwMDAKPiAtLS0gYS90ZXN0cy9rbXNf ZmJjX2NyYy5jCj4gKysrIC9kZXYvbnVsbAo+IEBAIC0xLDU4MCArMCwwIEBACj4gLS8qCj4gLSAq IENvcHlyaWdodCDCqSAyMDEzIEludGVsIENvcnBvcmF0aW9uCj4gLSAqCj4gLSAqIFBlcm1pc3Np b24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFp bmluZyBhCj4gLSAqIGNvcHkgb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVu dGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiksCj4gLSAqIHRvIGRlYWwgaW4gdGhlIFNvZnR3 YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24KPiAt ICogdGhlIHJpZ2h0cyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3Ry aWJ1dGUsIHN1YmxpY2Vuc2UsCj4gLSAqIGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdh cmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZQo+IC0gKiBTb2Z0d2FyZSBpcyBm dXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOgo+ IC0gKgo+IC0gKiBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9u IG5vdGljZSAoaW5jbHVkaW5nIHRoZSBuZXh0Cj4gLSAqIHBhcmFncmFwaCkgc2hhbGwgYmUgaW5j bHVkZWQgaW4gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUKPiAtICog U29mdHdhcmUuCj4gLSAqCj4gLSAqIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCAiQVMgSVMiLCBX SVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SCj4gLSAqIElNUExJRUQsIElO Q0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM SVRZLAo+IC0gKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklO R0VNRU5ULiAgSU4gTk8gRVZFTlQgU0hBTEwKPiAtICogVEhFIEFVVEhPUlMgT1IgQ09QWVJJR0hU IEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVIKPiAtICog TElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhF UldJU0UsIEFSSVNJTkcKPiAtICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBU SEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUwo+IC0gKiBJTiBUSEUgU09G VFdBUkUuCj4gLSAqCj4gLSAqLwo+IC0KPiAtI2luY2x1ZGUgImlndC5oIgo+IC0jaW5jbHVkZSA8 ZXJybm8uaD4KPiAtI2luY2x1ZGUgPHN0ZGJvb2wuaD4KPiAtI2luY2x1ZGUgPHN0ZGlvLmg+Cj4g LSNpbmNsdWRlIDxzdHJpbmcuaD4KPiAtCj4gLQo+IC1JR1RfVEVTVF9ERVNDUklQVElPTigKPiAt ICAgIlBlcmZvcm1zIHZhcmlvdXMgd3JpdGUgb3BlcmF0aW9ucyB0byB0aGUgc2Nhbm91dCBidWZm ZXIgd2hpbGUgRkJDIGlzICIKPiAtICAgImVuYWJsZWQuIENSQyBjaGVja3Mgd2lsbCBiZSB1c2Vk IHRvIG1ha2Ugc3VyZSB0aGUgbW9kaWZpY2F0aW9ucyB0byBzY2Fub3V0ICIKPiAtICAgImJ1ZmZl ciBhcmUgZGV0ZWN0ZWQuIik7Cj4gLQo+IC1lbnVtIHRlc3RfbW9kZSB7Cj4gLQlURVNUX1BBR0Vf RkxJUCwKPiAtCVRFU1RfTU1BUF9DUFUsCj4gLQlURVNUX01NQVBfR1RULAo+IC0JVEVTVF9CTFQs Cj4gLQlURVNUX1JFTkRFUiwKPiAtCVRFU1RfQ09OVEVYVCwKPiAtCVRFU1RfUEFHRV9GTElQX0FO RF9NTUFQX0NQVSwKPiAtCVRFU1RfUEFHRV9GTElQX0FORF9NTUFQX0dUVCwKPiAtCVRFU1RfUEFH RV9GTElQX0FORF9CTFQsCj4gLQlURVNUX1BBR0VfRkxJUF9BTkRfUkVOREVSLAo+IC0JVEVTVF9Q QUdFX0ZMSVBfQU5EX0NPTlRFWFQsCj4gLX07Cj4gLQo+IC10eXBlZGVmIHN0cnVjdCB7Cj4gLQlp bnQgZHJtX2ZkOwo+IC0JaWd0X2NyY190IHJlZl9jcmNbNF07Cj4gLQlpZ3RfcGlwZV9jcmNfdCAq cGlwZV9jcmM7Cj4gLQlkcm1faW50ZWxfYnVmbWdyICpidWZtZ3I7Cj4gLQlkcm1faW50ZWxfY29u dGV4dCAqY3R4WzJdOwo+IC0JdWludDMyX3QgZGV2aWQ7Cj4gLQlpZ3RfZGlzcGxheV90IGRpc3Bs YXk7Cj4gLQlpZ3Rfb3V0cHV0X3QgKm91dHB1dDsKPiAtCWVudW0gcGlwZSBwaXBlOwo+IC0JaWd0 X3BsYW5lX3QgKnByaW1hcnk7Cj4gLQlzdHJ1Y3QgaWd0X2ZiIGZiWzJdOwo+IC19IGRhdGFfdDsK PiAtCj4gLXN0YXRpYyBjb25zdCBjaGFyICp0ZXN0X21vZGVfc3RyKGVudW0gdGVzdF9tb2RlIG1v ZGUpCj4gLXsKPiAtCXN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgdGVzdF9tb2Rlc1tdID0gewo+ IC0JCVtURVNUX1BBR0VfRkxJUF0gPSAicGFnZV9mbGlwIiwKPiAtCQlbVEVTVF9NTUFQX0NQVV0g PSAibW1hcF9jcHUiLAo+IC0JCVtURVNUX01NQVBfR1RUXSA9ICJtbWFwX2d0dCIsCj4gLQkJW1RF U1RfQkxUXSA9ICJibHQiLAo+IC0JCVtURVNUX1JFTkRFUl0gPSAicmVuZGVyIiwKPiAtCQlbVEVT VF9DT05URVhUXSA9ICJjb250ZXh0IiwKPiAtCQlbVEVTVF9QQUdFX0ZMSVBfQU5EX01NQVBfQ1BV XSA9ICJwYWdlX2ZsaXBfYW5kX21tYXBfY3B1IiwKPiAtCQlbVEVTVF9QQUdFX0ZMSVBfQU5EX01N QVBfR1RUXSA9ICJwYWdlX2ZsaXBfYW5kX21tYXBfZ3R0IiwKPiAtCQlbVEVTVF9QQUdFX0ZMSVBf QU5EX0JMVF0gPSAicGFnZV9mbGlwX2FuZF9ibHQiLAo+IC0JCVtURVNUX1BBR0VfRkxJUF9BTkRf UkVOREVSXSA9ICJwYWdlX2ZsaXBfYW5kX3JlbmRlciIsCj4gLQkJW1RFU1RfUEFHRV9GTElQX0FO RF9DT05URVhUXSA9ICJwYWdlX2ZsaXBfYW5kX2NvbnRleHQiLAo+IC0JfTsKPiAtCj4gLQlyZXR1 cm4gdGVzdF9tb2Rlc1ttb2RlXTsKPiAtfQo+IC0KPiAtc3RhdGljIHZvaWQgZmlsbF9ibHQoZGF0 YV90ICpkYXRhLAo+IC0JCSAgICAgdWludDMyX3QgaGFuZGxlLAo+IC0JCSAgICAgc3RydWN0IGln dF9mYiAqZmIsCj4gLQkJICAgICB1bnNpZ25lZCBjaGFyIGNvbG9yKQo+IC17Cj4gLQlkcm1faW50 ZWxfYm8gKmRzdCA9IGdlbV9oYW5kbGVfdG9fbGliZHJtX2JvKGRhdGEtPmJ1Zm1nciwKPiAtCQkJ CQkJICAgIGRhdGEtPmRybV9mZCwKPiAtCQkJCQkJICAgICIiLCBoYW5kbGUpOwo+IC0Jc3RydWN0 IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaDsKPiAtCXVuc2lnbmVkIGZsYWdzOwo+IC0JaW50IHBp dGNoOwo+IC0JdWludDMyX3QgcGl4ZWwgPSBjb2xvciB8IChjb2xvciA8PCA4KSB8IChjb2xvciA8 PCAxNikgfCAoY29sb3IgPDwgMjQpOwo+IC0KPiAtCWJhdGNoID0gaW50ZWxfYmF0Y2hidWZmZXJf YWxsb2MoZGF0YS0+YnVmbWdyLCBkYXRhLT5kZXZpZCk7Cj4gLQlpZ3RfYXNzZXJ0KGJhdGNoKTsK PiAtCj4gLQlwaXRjaCA9IGZiLT5zdHJpZGU7Cj4gLQlmbGFncyA9IFhZX0NPTE9SX0JMVF9XUklU RV9BTFBIQSB8Cj4gLQkJWFlfQ09MT1JfQkxUX1dSSVRFX1JHQjsKPiAtCWlmIChmYi0+dGlsaW5n ICYmIGJhdGNoLT5nZW4gPj0gNCkgewo+IC0JCWZsYWdzIHw9IFhZX0NPTE9SX0JMVF9USUxFRDsK PiAtCQlwaXRjaCAvPSA0Owo+IC0JfQo+IC0KPiAtCUNPTE9SX0JMSVRfQ09QWV9CQVRDSF9TVEFS VChmbGFncyk7Cj4gLQlPVVRfQkFUQ0goMyA8PCAyNCB8IDB4ZjAgPDwgMTYgfCBwaXRjaCk7Cj4g LQlPVVRfQkFUQ0goMCk7Cj4gLQlPVVRfQkFUQ0goMSA8PCAxNiB8IDEpOwo+IC0JT1VUX1JFTE9D X0ZFTkNFRChkc3QsIEk5MTVfR0VNX0RPTUFJTl9SRU5ERVIsIEk5MTVfR0VNX0RPTUFJTl9SRU5E RVIsIDApOwo+IC0JT1VUX0JBVENIKHBpeGVsKTsKPiAtCUFEVkFOQ0VfQkFUQ0goKTsKPiAtCj4g LQlpbnRlbF9iYXRjaGJ1ZmZlcl9mbHVzaChiYXRjaCk7Cj4gLQlpbnRlbF9iYXRjaGJ1ZmZlcl9m cmVlKGJhdGNoKTsKPiAtCj4gLQlnZW1fYm9fYnVzeShkYXRhLT5kcm1fZmQsIGhhbmRsZSk7Cj4g LX0KPiAtCj4gLXN0YXRpYyB2b2lkIHNjcmF0Y2hfYnVmX2luaXQoc3RydWN0IGlndF9idWYgKmJ1 ZiwgZHJtX2ludGVsX2JvICpibykKPiAtewo+IC0JYnVmLT5ibyA9IGJvOwo+IC0JYnVmLT5zdHJp ZGUgPSA0MDk2Owo+IC0JYnVmLT50aWxpbmcgPSBJOTE1X1RJTElOR19YOwo+IC0JYnVmLT5zaXpl ID0gNDA5NjsKPiAtfQo+IC0KPiAtc3RhdGljIHZvaWQgZXhlY19ub3AoZGF0YV90ICpkYXRhLCB1 aW50MzJfdCBoYW5kbGUsIGRybV9pbnRlbF9jb250ZXh0ICpjb250ZXh0KQo+IC17Cj4gLQlkcm1f aW50ZWxfYm8gKmRzdDsKPiAtCXN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2g7Cj4gLQo+ IC0JZHN0ID0gZ2VtX2hhbmRsZV90b19saWJkcm1fYm8oZGF0YS0+YnVmbWdyLCBkYXRhLT5kcm1f ZmQsICIiLCBoYW5kbGUpOwo+IC0JaWd0X2Fzc2VydChkc3QpOwo+IC0KPiAtCWJhdGNoID0gaW50 ZWxfYmF0Y2hidWZmZXJfYWxsb2MoZGF0YS0+YnVmbWdyLCBkYXRhLT5kZXZpZCk7Cj4gLQlpZ3Rf YXNzZXJ0KGJhdGNoKTsKPiAtCj4gLQkvKiBhZGQgdGhlIHJlbG9jIHRvIG1ha2Ugc3VyZSB0aGUg a2VybmVsIHdpbGwgdGhpbmsgd2Ugd3JpdGUgdG8gZHN0ICovCj4gLQlCRUdJTl9CQVRDSCg0LCAx KTsKPiAtCU9VVF9CQVRDSChNSV9CQVRDSF9CVUZGRVJfRU5EKTsKPiAtCU9VVF9CQVRDSChNSV9O T09QKTsKPiAtCU9VVF9SRUxPQyhkc3QsIEk5MTVfR0VNX0RPTUFJTl9SRU5ERVIsIEk5MTVfR0VN X0RPTUFJTl9SRU5ERVIsIDApOwo+IC0JT1VUX0JBVENIKE1JX05PT1ApOwo+IC0JQURWQU5DRV9C QVRDSCgpOwo+IC0KPiAtCWludGVsX2JhdGNoYnVmZmVyX2ZsdXNoX3dpdGhfY29udGV4dChiYXRj aCwgY29udGV4dCk7Cj4gLQlpbnRlbF9iYXRjaGJ1ZmZlcl9mcmVlKGJhdGNoKTsKPiAtfQo+IC0K PiAtc3RhdGljIHZvaWQgZmlsbF9yZW5kZXIoZGF0YV90ICpkYXRhLCB1aW50MzJfdCBoYW5kbGUs Cj4gLQkJCWRybV9pbnRlbF9jb250ZXh0ICpjb250ZXh0LCB1bnNpZ25lZCBjaGFyIGNvbG9yKQo+ IC17Cj4gLQlkcm1faW50ZWxfYm8gKnNyYywgKmRzdDsKPiAtCXN0cnVjdCBpbnRlbF9iYXRjaGJ1 ZmZlciAqYmF0Y2g7Cj4gLQlzdHJ1Y3QgaWd0X2J1ZiBzcmNfYnVmLCBkc3RfYnVmOwo+IC0JY29u c3QgdWludDhfdCBidWZbNF0gPSB7IGNvbG9yLCBjb2xvciwgY29sb3IsIGNvbG9yIH07Cj4gLQlp Z3RfcmVuZGVyX2NvcHlmdW5jX3QgcmVuZGVyY29weSA9IGlndF9nZXRfcmVuZGVyX2NvcHlmdW5j KGRhdGEtPmRldmlkKTsKPiAtCj4gLQlpZ3Rfc2tpcF9vbighcmVuZGVyY29weSk7Cj4gLQo+IC0J ZHN0ID0gZ2VtX2hhbmRsZV90b19saWJkcm1fYm8oZGF0YS0+YnVmbWdyLCBkYXRhLT5kcm1fZmQs ICIiLCBoYW5kbGUpOwo+IC0JaWd0X2Fzc2VydChkc3QpOwo+IC0KPiAtCXNyYyA9IGRybV9pbnRl bF9ib19hbGxvYyhkYXRhLT5idWZtZ3IsICIiLCA0MDk2LCA0MDk2KTsKPiAtCWlndF9hc3NlcnQo c3JjKTsKPiAtCj4gLQlnZW1fd3JpdGUoZGF0YS0+ZHJtX2ZkLCBzcmMtPmhhbmRsZSwgMCwgYnVm LCA0KTsKPiAtCj4gLQlzY3JhdGNoX2J1Zl9pbml0KCZzcmNfYnVmLCBzcmMpOwo+IC0Jc2NyYXRj aF9idWZfaW5pdCgmZHN0X2J1ZiwgZHN0KTsKPiAtCj4gLQliYXRjaCA9IGludGVsX2JhdGNoYnVm ZmVyX2FsbG9jKGRhdGEtPmJ1Zm1nciwgZGF0YS0+ZGV2aWQpOwo+IC0JaWd0X2Fzc2VydChiYXRj aCk7Cj4gLQo+IC0JcmVuZGVyY29weShiYXRjaCwgY29udGV4dCwKPiAtCQkgICAmc3JjX2J1Ziwg MCwgMCwgMSwgMSwKPiAtCQkgICAmZHN0X2J1ZiwgMCwgMCk7Cj4gLQo+IC0JaW50ZWxfYmF0Y2hi dWZmZXJfZnJlZShiYXRjaCk7Cj4gLQo+IC0JZ2VtX2JvX2J1c3koZGF0YS0+ZHJtX2ZkLCBoYW5k bGUpOwo+IC19Cj4gLQo+IC1zdGF0aWMgdm9pZCBmaWxsX21tYXBfY3B1KGRhdGFfdCAqZGF0YSwg dWludDMyX3QgaGFuZGxlLCB1bnNpZ25lZCBjaGFyIGNvbG9yKQo+IC17Cj4gLQl2b2lkICpwdHI7 Cj4gLQo+IC0JcHRyID0gZ2VtX21tYXBfX2NwdShkYXRhLT5kcm1fZmQsIGhhbmRsZSwgMCwgNDA5 NiwgUFJPVF9XUklURSk7Cj4gLQlnZW1fc2V0X2RvbWFpbihkYXRhLT5kcm1fZmQsIGhhbmRsZSwg STkxNV9HRU1fRE9NQUlOX0NQVSwKPiAtCQkgICAgICAgSTkxNV9HRU1fRE9NQUlOX0NQVSk7Cj4g LQltZW1zZXQocHRyLCBjb2xvciwgNCk7Cj4gLQltdW5tYXAocHRyLCA0MDk2KTsKPiAtCWdlbV9z d19maW5pc2goZGF0YS0+ZHJtX2ZkLCBoYW5kbGUpOwo+IC19Cj4gLQo+IC1zdGF0aWMgdm9pZCBm aWxsX21tYXBfZ3R0KGRhdGFfdCAqZGF0YSwgdWludDMyX3QgaGFuZGxlLCB1bnNpZ25lZCBjaGFy IGNvbG9yKQo+IC17Cj4gLQl2b2lkICpwdHI7Cj4gLQo+IC0JcHRyID0gZ2VtX21tYXBfX2d0dChk YXRhLT5kcm1fZmQsIGhhbmRsZSwgNDA5NiwgUFJPVF9XUklURSk7Cj4gLQlnZW1fc2V0X2RvbWFp bihkYXRhLT5kcm1fZmQsIGhhbmRsZSwgSTkxNV9HRU1fRE9NQUlOX0dUVCwKPiAtCQkgICAgICAg STkxNV9HRU1fRE9NQUlOX0dUVCk7Cj4gLQltZW1zZXQocHRyLCBjb2xvciwgNCk7Cj4gLQltdW5t YXAocHRyLCA0MDk2KTsKPiAtfQo+IC0KPiAtc3RhdGljIGJvb2wgZmJjX2VuYWJsZWQoZGF0YV90 ICpkYXRhKQo+IC17Cj4gLQljaGFyIHN0clsxMjhdID0ge307Cj4gLQo+IC0JaWd0X2RlYnVnZnNf cmVhZChkYXRhLT5kcm1fZmQsICJpOTE1X2ZiY19zdGF0dXMiLCBzdHIpOwo+IC0JcmV0dXJuIHN0 cnN0cihzdHIsICJGQkMgZW5hYmxlZCIpICE9IE5VTEw7Cj4gLX0KPiAtCj4gLXN0YXRpYyBib29s IHdhaXRfZm9yX2ZiY19lbmFibGVkKGRhdGFfdCAqZGF0YSkKPiAtewo+IC0JcmV0dXJuIGlndF93 YWl0KGZiY19lbmFibGVkKGRhdGEpLCAzMDAwLCAzMCk7Cj4gLX0KPiAtCj4gLXN0YXRpYyB2b2lk IGNoZWNrX2NyYyhkYXRhX3QgKmRhdGEsIGVudW0gdGVzdF9tb2RlIG1vZGUpCj4gLXsKPiAtCWln dF9waXBlX2NyY190ICpwaXBlX2NyYyA9IGRhdGEtPnBpcGVfY3JjOwo+IC0JaWd0X2NyY190IGNy YywgKnJlZl9jcmM7Cj4gLQo+IC0Jc3dpdGNoIChtb2RlKSB7Cj4gLQljYXNlIFRFU1RfUEFHRV9G TElQOgo+IC0JCXJlZl9jcmMgPSAmZGF0YS0+cmVmX2NyY1sxXTsKPiAtCQlicmVhazsKPiAtCWNh c2UgVEVTVF9NTUFQX0NQVToKPiAtCWNhc2UgVEVTVF9NTUFQX0dUVDoKPiAtCWNhc2UgVEVTVF9C TFQ6Cj4gLQljYXNlIFRFU1RfUkVOREVSOgo+IC0JY2FzZSBURVNUX0NPTlRFWFQ6Cj4gLQkJcmVm X2NyYyA9ICZkYXRhLT5yZWZfY3JjWzJdOwo+IC0JCWJyZWFrOwo+IC0JY2FzZSBURVNUX1BBR0Vf RkxJUF9BTkRfTU1BUF9DUFU6Cj4gLQljYXNlIFRFU1RfUEFHRV9GTElQX0FORF9NTUFQX0dUVDoK PiAtCWNhc2UgVEVTVF9QQUdFX0ZMSVBfQU5EX0JMVDoKPiAtCWNhc2UgVEVTVF9QQUdFX0ZMSVBf QU5EX1JFTkRFUjoKPiAtCWNhc2UgVEVTVF9QQUdFX0ZMSVBfQU5EX0NPTlRFWFQ6Cj4gLQkJcmVm X2NyYyA9ICZkYXRhLT5yZWZfY3JjWzNdOwo+IC0JCWJyZWFrOwo+IC0JZGVmYXVsdDoKPiAtCQlp Z3RfYXNzZXJ0KGZhbHNlKTsKPiAtCX0KPiAtCj4gLQlpZ3RfcGlwZV9jcmNfY29sbGVjdF9jcmMo cGlwZV9jcmMsICZjcmMpOwo+IC0JaWd0X2Fzc2VydF9jcmNfZXF1YWwoJmNyYywgcmVmX2NyYyk7 Cj4gLX0KPiAtCj4gLXN0YXRpYyB2b2lkIHRlc3RfY3JjKGRhdGFfdCAqZGF0YSwgZW51bSB0ZXN0 X21vZGUgbW9kZSkKPiAtewo+IC0JdWludDMyX3QgY3J0Y19pZCA9IGRhdGEtPm91dHB1dC0+Y29u ZmlnLmNydGMtPmNydGNfaWQ7Cj4gLQl1aW50MzJfdCBoYW5kbGUgPSBkYXRhLT5mYlswXS5nZW1f aGFuZGxlOwo+IC0JZHJtX2ludGVsX2NvbnRleHQgKmNvbnRleHQgPSBOVUxMOwo+IC0KPiAtCWln dF9hc3NlcnQoZmJjX2VuYWJsZWQoZGF0YSkpOwo+IC0KPiAtCWlmIChtb2RlID09IFRFU1RfUEFH RV9GTElQIHx8IG1vZGUgPj0gVEVTVF9QQUdFX0ZMSVBfQU5EX01NQVBfQ1BVKSB7Cj4gLQkJaGFu ZGxlID0gZGF0YS0+ZmJbMV0uZ2VtX2hhbmRsZTsKPiAtCQlpZ3RfYXNzZXJ0KGRybU1vZGVQYWdl RmxpcChkYXRhLT5kcm1fZmQsIGNydGNfaWQsCj4gLQkJCQkJICAgZGF0YS0+ZmJbMV0uZmJfaWQs IDAsIE5VTEwpID09IDApOwo+IC0KPiAtCQlpZiAobW9kZSAhPSBURVNUX1BBR0VfRkxJUCkKPiAt CQkJaWd0X2Fzc2VydCh3YWl0X2Zvcl9mYmNfZW5hYmxlZChkYXRhKSk7Cj4gLQl9Cj4gLQo+IC0J c3dpdGNoIChtb2RlKSB7Cj4gLQljYXNlIFRFU1RfUEFHRV9GTElQOgo+IC0JCWJyZWFrOwo+IC0J Y2FzZSBURVNUX01NQVBfQ1BVOgo+IC0JY2FzZSBURVNUX1BBR0VfRkxJUF9BTkRfTU1BUF9DUFU6 Cj4gLQkJZmlsbF9tbWFwX2NwdShkYXRhLCBoYW5kbGUsIDB4ZmYpOwo+IC0JCWJyZWFrOwo+IC0J Y2FzZSBURVNUX01NQVBfR1RUOgo+IC0JY2FzZSBURVNUX1BBR0VfRkxJUF9BTkRfTU1BUF9HVFQ6 Cj4gLQkJZmlsbF9tbWFwX2d0dChkYXRhLCBoYW5kbGUsIDB4ZmYpOwo+IC0JCWJyZWFrOwo+IC0J Y2FzZSBURVNUX0JMVDoKPiAtCWNhc2UgVEVTVF9QQUdFX0ZMSVBfQU5EX0JMVDoKPiAtCQlmaWxs X2JsdChkYXRhLCBoYW5kbGUsIGRhdGEtPmZiLCB+MCk7Cj4gLQkJYnJlYWs7Cj4gLQljYXNlIFRF U1RfQ09OVEVYVDoKPiAtCWNhc2UgVEVTVF9QQUdFX0ZMSVBfQU5EX0NPTlRFWFQ6Cj4gLQkJY29u dGV4dCA9IGRhdGEtPmN0eFsxXTsKPiAtCWNhc2UgVEVTVF9SRU5ERVI6Cj4gLQljYXNlIFRFU1Rf UEFHRV9GTElQX0FORF9SRU5ERVI6Cj4gLQkJZmlsbF9yZW5kZXIoZGF0YSwgaGFuZGxlLCBjb250 ZXh0LCAweGZmKTsKPiAtCQlicmVhazsKPiAtCX0KPiAtCj4gLQkvKgo+IC0JICogTWFrZSBzdXJl IHdlJ3JlIGxvb2tpbmcgYXQgbmV3IGRhdGEgKHR3byB2YmxhbmtzCj4gLQkgKiB0byBsZWF2ZSBz b21lIGxlZXdheSBmb3IgdGhlIGtlcm5lbCBpZiB3ZSBldmVyIGRvCj4gLQkgKiBzb21lIGtpbmQg b2YgZGVsYXllZCBGQkMgZGlzYWJsZSBmb3IgR1RUIG1tYXBzLgo+IC0JICovCj4gLQlpZ3Rfd2Fp dF9mb3JfdmJsYW5rKGRhdGEtPmRybV9mZCwgZGF0YS0+cGlwZSk7Cj4gLQlpZ3Rfd2FpdF9mb3Jf dmJsYW5rKGRhdGEtPmRybV9mZCwgZGF0YS0+cGlwZSk7Cj4gLQo+IC0JY2hlY2tfY3JjKGRhdGEs IG1vZGUpOwo+IC0KPiAtCS8qCj4gLQkgKiBBbGxvdyB0aW1lIGZvciBGQkMgdG8ga2ljayBpbiBh Z2FpbiBpZiBpdAo+IC0JICogZ290IGRpc2FibGVkIGR1cmluZyBkaXJ0eWZiIG9yIHBhZ2UgZmxp cC4KPiAtCSAqLwo+IC0JaWd0X2Fzc2VydCh3YWl0X2Zvcl9mYmNfZW5hYmxlZChkYXRhKSk7Cj4g LQo+IC0JY2hlY2tfY3JjKGRhdGEsIG1vZGUpOwo+IC19Cj4gLQo+IC1zdGF0aWMgdm9pZCBwcmVw YXJlX2NydGMoZGF0YV90ICpkYXRhKQo+IC17Cj4gLQlpZ3Rfb3V0cHV0X3QgKm91dHB1dCA9IGRh dGEtPm91dHB1dDsKPiAtCj4gLQlpZ3Rfb3V0cHV0X3NldF9waXBlKG91dHB1dCwgZGF0YS0+cGlw ZSk7Cj4gLX0KPiAtCj4gLXN0YXRpYyB2b2lkIGNyZWF0ZV9mYnMoZGF0YV90ICpkYXRhLCB1aW50 NjRfdCB0aWxpbmcsIHN0cnVjdCBpZ3RfZmIgKmZicykKPiAtewo+IC0JaW50IHJjOwo+IC0JZHJt TW9kZU1vZGVJbmZvICptb2RlID0gaWd0X291dHB1dF9nZXRfbW9kZShkYXRhLT5vdXRwdXQpOwo+ IC0KPiAtCXJjID0gaWd0X2NyZWF0ZV9jb2xvcl9mYihkYXRhLT5kcm1fZmQsIG1vZGUtPmhkaXNw bGF5LCBtb2RlLT52ZGlzcGxheSwKPiAtCQkJCSBEUk1fRk9STUFUX1hSR0I4ODg4LCB0aWxpbmcs Cj4gLQkJCQkgMC4wLCAwLjAsIDAuMCwgJmZic1swXSk7Cj4gLQlpZ3RfYXNzZXJ0KHJjKTsKPiAt CXJjID0gaWd0X2NyZWF0ZV9jb2xvcl9mYihkYXRhLT5kcm1fZmQsIG1vZGUtPmhkaXNwbGF5LCBt b2RlLT52ZGlzcGxheSwKPiAtCQkJCSBEUk1fRk9STUFUX1hSR0I4ODg4LCB0aWxpbmcsCj4gLQkJ CQkgMC4xLCAwLjEsIDAuMSwgJmZic1sxXSk7Cj4gLQlpZ3RfYXNzZXJ0KHJjKTsKPiAtfQo+IC0K PiAtLyogU2luY2Ugd2Ugd2FudCB0byBiZSByZWFsbHkgc2FmZSB0aGF0IHRoZSBDUkNzIGFyZSBh Y3R1YWxseSB3aGF0IHdlIHJlYWxseQo+IC0gKiB3YW50LCB1c2UgdW50aWxlZCBGQnMsIHNvIEZC QyB3b24ndCBoYXBwZW4gdG8gZGlzcnVwdCB0aGluZ3MuIEFsc28gZG8gdGhlCj4gLSAqIGRyYXdp bmcgYmVmb3JlIHNldHRpbmcgdGhlIG1vZGVzLCBqdXN0IHRvIGJlIHN1cmUuICovCj4gLXN0YXRp YyB2b2lkIGdldF9yZWZfY3JjcyhkYXRhX3QgKmRhdGEpCj4gLXsKPiAtCWlndF9kaXNwbGF5X3Qg KmRpc3BsYXkgPSAmZGF0YS0+ZGlzcGxheTsKPiAtCXN0cnVjdCBpZ3RfZmIgZmJzWzRdOwo+IC0J aW50IGk7Cj4gLQo+IC0JY3JlYXRlX2ZicyhkYXRhLCBMT0NBTF9EUk1fRk9STUFUX01PRF9OT05F LCAmZmJzWzBdKTsKPiAtCWNyZWF0ZV9mYnMoZGF0YSwgTE9DQUxfRFJNX0ZPUk1BVF9NT0RfTk9O RSwgJmZic1syXSk7Cj4gLQo+IC0JZmlsbF9tbWFwX2d0dChkYXRhLCBmYnNbMl0uZ2VtX2hhbmRs ZSwgMHhmZik7Cj4gLQlmaWxsX21tYXBfZ3R0KGRhdGEsIGZic1szXS5nZW1faGFuZGxlLCAweGZm KTsKPiAtCj4gLQlmb3IgKGkgPSAwOyBpIDwgNDsgaSsrKSB7Cj4gLQkJaWd0X3BsYW5lX3NldF9m YihkYXRhLT5wcmltYXJ5LCAmZmJzW2ldKTsKPiAtCQlpZ3RfZGlzcGxheV9jb21taXQoZGlzcGxh eSk7Cj4gLQkJaWd0X3dhaXRfZm9yX3ZibGFuayhkYXRhLT5kcm1fZmQsIGRhdGEtPnBpcGUpOwo+ IC0JCWlndF9hc3NlcnQoIWZiY19lbmFibGVkKGRhdGEpKTsKPiAtCQlpZ3RfcGlwZV9jcmNfY29s bGVjdF9jcmMoZGF0YS0+cGlwZV9jcmMsICZkYXRhLT5yZWZfY3JjW2ldKTsKPiAtCQlpZ3RfYXNz ZXJ0KCFmYmNfZW5hYmxlZChkYXRhKSk7Cj4gLQl9Cj4gLQo+IC0JaWd0X3BsYW5lX3NldF9mYihk YXRhLT5wcmltYXJ5LCAmZGF0YS0+ZmJbMV0pOwo+IC0JaWd0X2Rpc3BsYXlfY29tbWl0KGRpc3Bs YXkpOwo+IC0KPiAtCWZvciAoaSA9IDA7IGkgPCA0OyBpKyspCj4gLQkJaWd0X3JlbW92ZV9mYihk YXRhLT5kcm1fZmQsICZmYnNbaV0pOwo+IC19Cj4gLQo+IC1zdGF0aWMgYm9vbCBwcmVwYXJlX3Rl c3QoZGF0YV90ICpkYXRhLCBlbnVtIHRlc3RfbW9kZSB0ZXN0X21vZGUsIHVpbnQ2NF90IHRpbGlu ZykKPiAtewo+IC0JaWd0X2Rpc3BsYXlfdCAqZGlzcGxheSA9ICZkYXRhLT5kaXNwbGF5Owo+IC0J aWd0X291dHB1dF90ICpvdXRwdXQgPSBkYXRhLT5vdXRwdXQ7Cj4gLQlpZ3RfcGlwZV9jcmNfdCAq cGlwZV9jcmM7Cj4gLQo+IC0JZGF0YS0+cHJpbWFyeSA9IGlndF9vdXRwdXRfZ2V0X3BsYW5lX3R5 cGUoZGF0YS0+b3V0cHV0LCBEUk1fUExBTkVfVFlQRV9QUklNQVJZKTsKPiAtCj4gLQljcmVhdGVf ZmJzKGRhdGEsIHRpbGluZywgZGF0YS0+ZmIpOwo+IC0KPiAtCWlndF9waXBlX2NyY19mcmVlKGRh dGEtPnBpcGVfY3JjKTsKPiAtCWRhdGEtPnBpcGVfY3JjID0gTlVMTDsKPiAtCXBpcGVfY3JjID0g aWd0X3BpcGVfY3JjX25ldyhkYXRhLT5kcm1fZmQsIGRhdGEtPnBpcGUsCj4gLQkJCQkgICAgSU5U RUxfUElQRV9DUkNfU09VUkNFX0FVVE8pOwo+IC0JZGF0YS0+cGlwZV9jcmMgPSBwaXBlX2NyYzsK PiAtCj4gLQlnZXRfcmVmX2NyY3MoZGF0YSk7Cj4gLQo+IC0JLyogc2Nhbm91dCA9IGZiWzFdICov Cj4gLQlpZ3RfcGxhbmVfc2V0X2ZiKGRhdGEtPnByaW1hcnksICZkYXRhLT5mYlsxXSk7Cj4gLQlp Z3RfZGlzcGxheV9jb21taXQoZGlzcGxheSk7Cj4gLQo+IC0JaWYgKCF3YWl0X2Zvcl9mYmNfZW5h YmxlZChkYXRhKSkgewo+IC0JCWlndF9pbmZvKCJGQkMgbm90IGVuYWJsZWRcbiIpOwo+IC0KPiAt CQlpZ3RfcGxhbmVfc2V0X2ZiKGRhdGEtPnByaW1hcnksIE5VTEwpOwo+IC0JCWlndF9vdXRwdXRf c2V0X3BpcGUob3V0cHV0LCBQSVBFX0FOWSk7Cj4gLQkJaWd0X2Rpc3BsYXlfY29tbWl0KGRpc3Bs YXkpOwo+IC0KPiAtCQlpZ3RfcmVtb3ZlX2ZiKGRhdGEtPmRybV9mZCwgJmRhdGEtPmZiWzBdKTsK PiAtCQlpZ3RfcmVtb3ZlX2ZiKGRhdGEtPmRybV9mZCwgJmRhdGEtPmZiWzFdKTsKPiAtCQlyZXR1 cm4gZmFsc2U7Cj4gLQl9Cj4gLQo+IC0JaWYgKHRlc3RfbW9kZSA9PSBURVNUX0NPTlRFWFQgfHwg dGVzdF9tb2RlID09IFRFU1RfUEFHRV9GTElQX0FORF9DT05URVhUKSB7Cj4gLQkJZGF0YS0+Y3R4 WzBdID0gZHJtX2ludGVsX2dlbV9jb250ZXh0X2NyZWF0ZShkYXRhLT5idWZtZ3IpOwo+IC0JCWln dF9hc3NlcnQoZGF0YS0+Y3R4WzBdKTsKPiAtCQlkYXRhLT5jdHhbMV0gPSBkcm1faW50ZWxfZ2Vt X2NvbnRleHRfY3JlYXRlKGRhdGEtPmJ1Zm1ncik7Cj4gLQkJaWd0X2Fzc2VydChkYXRhLT5jdHhb MV0pOwo+IC0KPiAtCQkvKgo+IC0JCSAqIERpc2FibGUgRkJDIFJUIGFkZHJlc3MgZm9yIGJvdGgg Y29udGV4dHMKPiAtCQkgKiAoYnkgInJlbmRlcmluZyIgdG8gYSBub24tc2Nhbm91dCBidWZmZXIp Lgo+IC0JCSAqLwo+IC0JCWV4ZWNfbm9wKGRhdGEsIGRhdGEtPmZiWzBdLmdlbV9oYW5kbGUsIGRh dGEtPmN0eFsxXSk7Cj4gLQkJZXhlY19ub3AoZGF0YSwgZGF0YS0+ZmJbMF0uZ2VtX2hhbmRsZSwg ZGF0YS0+Y3R4WzBdKTsKPiAtCQlleGVjX25vcChkYXRhLCBkYXRhLT5mYlswXS5nZW1faGFuZGxl LCBkYXRhLT5jdHhbMV0pOwo+IC0JCWV4ZWNfbm9wKGRhdGEsIGRhdGEtPmZiWzBdLmdlbV9oYW5k bGUsIGRhdGEtPmN0eFswXSk7Cj4gLQl9Cj4gLQo+IC0JLyogc2Nhbm91dCA9IGZiWzBdICovCj4g LQlpZ3RfcGxhbmVfc2V0X2ZiKGRhdGEtPnByaW1hcnksICZkYXRhLT5mYlswXSk7Cj4gLQlpZ3Rf ZGlzcGxheV9jb21taXQoZGlzcGxheSk7Cj4gLQo+IC0JaWd0X2Fzc2VydCh3YWl0X2Zvcl9mYmNf ZW5hYmxlZChkYXRhKSk7Cj4gLQo+IC0JaWYgKHRlc3RfbW9kZSA9PSBURVNUX0NPTlRFWFQgfHwg dGVzdF9tb2RlID09IFRFU1RfUEFHRV9GTElQX0FORF9DT05URVhUKSB7Cj4gLQkJLyoKPiAtCQkg KiBtYWtlIGN0eFswXSBGQkMgUlQgYWRkcmVzcyBwb2ludCB0byBmYlswXSwgY3R4WzFdCj4gLQkJ ICogRkJDIFJUIGFkZHJlc3MgaXMgbGVmdCBhcyBkaXNhYmxlZC4KPiAtCQkgKi8KPiAtCQlleGVj X25vcChkYXRhLCBkYXRhLT5mYlswXS5nZW1faGFuZGxlLCBkYXRhLT5jdHhbMF0pOwo+IC0JCWln dF9hc3NlcnQod2FpdF9mb3JfZmJjX2VuYWJsZWQoZGF0YSkpOwo+IC0JfQo+IC0KPiAtCWlndF93 YWl0X2Zvcl92YmxhbmsoZGF0YS0+ZHJtX2ZkLCBkYXRhLT5waXBlKTsKPiAtCj4gLQlyZXR1cm4g dHJ1ZTsKPiAtfQo+IC0KPiAtc3RhdGljIHZvaWQgZmluaXNoX2NydGMoZGF0YV90ICpkYXRhLCBl bnVtIHRlc3RfbW9kZSBtb2RlKQo+IC17Cj4gLQlpZ3RfcGlwZV9jcmNfZnJlZShkYXRhLT5waXBl X2NyYyk7Cj4gLQlkYXRhLT5waXBlX2NyYyA9IE5VTEw7Cj4gLQo+IC0JaWYgKG1vZGUgPT0gVEVT VF9DT05URVhUIHx8IG1vZGUgPT0gVEVTVF9QQUdFX0ZMSVBfQU5EX0NPTlRFWFQpIHsKPiAtCQlk cm1faW50ZWxfZ2VtX2NvbnRleHRfZGVzdHJveShkYXRhLT5jdHhbMF0pOwo+IC0JCWRybV9pbnRl bF9nZW1fY29udGV4dF9kZXN0cm95KGRhdGEtPmN0eFsxXSk7Cj4gLQl9Cj4gLQo+IC0JaWd0X3Bs YW5lX3NldF9mYihkYXRhLT5wcmltYXJ5LCBOVUxMKTsKPiAtCWlndF9vdXRwdXRfc2V0X3BpcGUo ZGF0YS0+b3V0cHV0LCBQSVBFX0FOWSk7Cj4gLQlpZ3RfZGlzcGxheV9jb21taXQoJmRhdGEtPmRp c3BsYXkpOwo+IC0KPiAtCWlndF9yZW1vdmVfZmIoZGF0YS0+ZHJtX2ZkLCAmZGF0YS0+ZmJbMF0p Owo+IC0JaWd0X3JlbW92ZV9mYihkYXRhLT5kcm1fZmQsICZkYXRhLT5mYlsxXSk7Cj4gLX0KPiAt Cj4gLXN0YXRpYyB2b2lkIHJlc2V0X2Rpc3BsYXkoZGF0YV90ICpkYXRhKQo+IC17Cj4gLQlpZ3Rf ZGlzcGxheV90ICpkaXNwbGF5ID0gJmRhdGEtPmRpc3BsYXk7Cj4gLQllbnVtIHBpcGUgcGlwZV9p ZDsKPiAtCj4gLQlmb3JfZWFjaF9waXBlKGRpc3BsYXksIHBpcGVfaWQpIHsKPiAtICAgICAgICBp Z3RfcGlwZV90ICpwaXBlID0gJmRpc3BsYXktPnBpcGVzW3BpcGVfaWRdOwo+IC0JCWlndF9wbGFu ZV90ICpwbGFuZSA9IGlndF9waXBlX2dldF9wbGFuZV90eXBlKHBpcGUsIERSTV9QTEFORV9UWVBF X1BSSU1BUlkpOwo+IC0KPiAtCQlpZ3RfcGxhbmVfc2V0X2ZiKHBsYW5lLCBOVUxMKTsKPiAtCX0K PiAtCj4gLQlmb3JfZWFjaF9jb25uZWN0ZWRfb3V0cHV0KGRpc3BsYXksIGRhdGEtPm91dHB1dCkK PiAtCQlpZ3Rfb3V0cHV0X3NldF9waXBlKGRhdGEtPm91dHB1dCwgUElQRV9BTlkpOwo+IC19Cj4g LQo+IC1zdGF0aWMgdm9pZCBydW5fdGVzdChkYXRhX3QgKmRhdGEsIGVudW0gdGVzdF9tb2RlIG1v ZGUpCj4gLXsKPiAtCWlndF9kaXNwbGF5X3QgKmRpc3BsYXkgPSAmZGF0YS0+ZGlzcGxheTsKPiAt CWludCB2YWxpZF90ZXN0cyA9IDAsIGk7Cj4gLQl1aW50NjRfdCB0aWxpbmdfbWV0aG9kc1tdID0g ewo+IC0JCUxPQ0FMX0k5MTVfRk9STUFUX01PRF9YX1RJTEVELCBMT0NBTF9JOTE1X0ZPUk1BVF9N T0RfWV9USUxFRCwKPiAtCX07Cj4gLQo+IC0JaWYgKG1vZGUgPT0gVEVTVF9DT05URVhUIHx8IG1v ZGUgPT0gVEVTVF9QQUdFX0ZMSVBfQU5EX0NPTlRFWFQpIHsKPiAtCQlkcm1faW50ZWxfY29udGV4 dCAqY3R4ID0gZHJtX2ludGVsX2dlbV9jb250ZXh0X2NyZWF0ZShkYXRhLT5idWZtZ3IpOwo+IC0J CWlndF9yZXF1aXJlKGN0eCk7Cj4gLQkJZHJtX2ludGVsX2dlbV9jb250ZXh0X2Rlc3Ryb3koY3R4 KTsKPiAtCX0KPiAtCj4gLQlyZXNldF9kaXNwbGF5KGRhdGEpOwo+IC0KPiAtCWZvciAoaSA9IDA7 IGkgPCBBUlJBWV9TSVpFKHRpbGluZ19tZXRob2RzKTsgaSsrKSB7Cj4gLQkJdWludDY0X3QgdGls aW5nID0gdGlsaW5nX21ldGhvZHNbaV07Cj4gLQo+IC0JCWlmIChpbnRlbF9nZW4oZGF0YS0+ZGV2 aWQpIDwgOSAmJgo+IC0JCSAgICB0aWxpbmcgPT0gTE9DQUxfSTkxNV9GT1JNQVRfTU9EX1lfVElM RUQpIHsKPiAtCQkJaWd0X2luZm8oIiVzIHktdGlsZWQ6IFNLSVBQRURcbiIsIGlndF9zdWJ0ZXN0 X25hbWUoKSk7Cj4gLQkJCWNvbnRpbnVlOwo+IC0JCX0KPiAtCj4gLQkJZm9yX2VhY2hfcGlwZV93 aXRoX3ZhbGlkX291dHB1dChkaXNwbGF5LAo+IC0JCQkJCQlkYXRhLT5waXBlLCBkYXRhLT5vdXRw dXQpIHsKPiAtCQkJY29uc3QgY2hhciAqdGlsaW5nX25hbWUgPQo+IC0JCQkJdGlsaW5nID09IExP Q0FMX0k5MTVfRk9STUFUX01PRF9ZX1RJTEVEID8KPiAtCQkJCQkieSIgOiAieCI7Cj4gLQo+IC0J CQlwcmVwYXJlX2NydGMoZGF0YSk7Cj4gLQo+IC0JCQlpZ3RfaW5mbygiQmVnaW5uaW5nICVzIG9u IHBpcGUgJXMsIGNvbm5lY3RvciAiCj4gLQkJCQkgIiVzLCAlcy10aWxlZFxuIiwKPiAtCQkJCSBp Z3Rfc3VidGVzdF9uYW1lKCksCj4gLQkJCQkga21zdGVzdF9waXBlX25hbWUoZGF0YS0+cGlwZSks Cj4gLQkJCQkgaWd0X291dHB1dF9uYW1lKGRhdGEtPm91dHB1dCksCj4gLQkJCQkgdGlsaW5nX25h bWUpOwo+IC0KPiAtCQkJaWYgKCFwcmVwYXJlX3Rlc3QoZGF0YSwgbW9kZSwgdGlsaW5nKSkgewo+ IC0JCQkJaWd0X2luZm8oIiVzIG9uIHBpcGUgJXMsIGNvbm5lY3RvciAiCj4gLQkJCQkJICIlcywg JXMtdGlsZWQ6IFNLSVBQRURcbiIsCj4gLQkJCQkJIGlndF9zdWJ0ZXN0X25hbWUoKSwKPiAtCQkJ CQkga21zdGVzdF9waXBlX25hbWUoZGF0YS0+cGlwZSksCj4gLQkJCQkJIGlndF9vdXRwdXRfbmFt ZShkYXRhLT5vdXRwdXQpLAo+IC0JCQkJCSB0aWxpbmdfbmFtZSk7Cj4gLQkJCQljb250aW51ZTsK PiAtCQkJfQo+IC0KPiAtCQkJdmFsaWRfdGVzdHMrKzsKPiAtCj4gLQkJCXRlc3RfY3JjKGRhdGEs IG1vZGUpOwo+IC0KPiAtCQkJaWd0X2luZm8oIiVzIG9uIHBpcGUgJXMsIGNvbm5lY3RvciAlcywi Cj4gLQkJCQkgIiVzLXRpbGVkOiBQQVNTRURcbiIsCj4gLQkJCQkgaWd0X3N1YnRlc3RfbmFtZSgp LAo+IC0JCQkJIGttc3Rlc3RfcGlwZV9uYW1lKGRhdGEtPnBpcGUpLAo+IC0JCQkJIGlndF9vdXRw dXRfbmFtZShkYXRhLT5vdXRwdXQpLAo+IC0JCQkJIHRpbGluZ19uYW1lKTsKPiAtCj4gLQkJCWZp bmlzaF9jcnRjKGRhdGEsIG1vZGUpOwo+IC0JCX0KPiAtCX0KPiAtCj4gLQlpZ3RfcmVxdWlyZV9m KHZhbGlkX3Rlc3RzLCAibm8gdmFsaWQgY3J0Yy9jb25uZWN0b3IgY29tYmluYXRpb25zIGZvdW5k XG4iKTsKPiAtfQo+IC0KPiAtaWd0X21haW4KPiAtewo+IC0JZGF0YV90IGRhdGEgPSB7fTsKPiAt CWVudW0gdGVzdF9tb2RlIG1vZGU7Cj4gLQo+IC0JaWd0X3NraXBfb25fc2ltdWxhdGlvbigpOwo+ IC0KPiAtCWlndF9maXh0dXJlIHsKPiAtCQljaGFyIGJ1ZlsxMjhdOwo+IC0KPiAtCQlkYXRhLmRy bV9mZCA9IGRybV9vcGVuX2RyaXZlcl9tYXN0ZXIoRFJJVkVSX0lOVEVMKTsKPiAtCQlrbXN0ZXN0 X3NldF92dF9ncmFwaGljc19tb2RlKCk7Cj4gLQo+IC0JCWRhdGEuZGV2aWQgPSBpbnRlbF9nZXRf ZHJtX2RldmlkKGRhdGEuZHJtX2ZkKTsKPiAtCj4gLQkJaWd0X3JlcXVpcmVfcGlwZV9jcmMoZGF0 YS5kcm1fZmQpOwo+IC0KPiAtCQlpZ3RfZGVidWdmc19yZWFkKGRhdGEuZHJtX2ZkLCAiaTkxNV9m YmNfc3RhdHVzIiwgYnVmKTsKPiAtCQlpZ3RfcmVxdWlyZV9mKCFzdHJzdHIoYnVmLCAidW5zdXBw b3J0ZWQgb24gdGhpcyBjaGlwc2V0IiksCj4gLQkJCSAgICAgICJGQkMgbm90IHN1cHBvcnRlZFxu Iik7Cj4gLQo+IC0JCWlmIChpbnRlbF9nZW4oZGF0YS5kZXZpZCkgPj0gNikKPiAtCQkJaWd0X3Nl dF9tb2R1bGVfcGFyYW1faW50KCJlbmFibGVfZmJjIiwgMSk7Cj4gLQo+IC0JCWRhdGEuYnVmbWdy ID0gZHJtX2ludGVsX2J1Zm1ncl9nZW1faW5pdChkYXRhLmRybV9mZCwgNDA5Nik7Cj4gLQkJaWd0 X2Fzc2VydChkYXRhLmJ1Zm1ncik7Cj4gLQkJZHJtX2ludGVsX2J1Zm1ncl9nZW1fZW5hYmxlX3Jl dXNlKGRhdGEuYnVmbWdyKTsKPiAtCj4gLQkJaWd0X2Rpc3BsYXlfaW5pdCgmZGF0YS5kaXNwbGF5 LCBkYXRhLmRybV9mZCk7Cj4gLQl9Cj4gLQo+IC0JZm9yIChtb2RlID0gVEVTVF9QQUdFX0ZMSVA7 IG1vZGUgPD0gVEVTVF9QQUdFX0ZMSVBfQU5EX0NPTlRFWFQ7IG1vZGUrKykgewo+IC0JCWlndF9z dWJ0ZXN0X2YoIiVzIiwgdGVzdF9tb2RlX3N0cihtb2RlKSkgewo+IC0JCQlydW5fdGVzdCgmZGF0 YSwgbW9kZSk7Cj4gLQkJfQo+IC0JfQo+IC0KPiAtCWlndF9maXh0dXJlIHsKPiAtCQlkcm1faW50 ZWxfYnVmbWdyX2Rlc3Ryb3koZGF0YS5idWZtZ3IpOwo+IC0JCWlndF9kaXNwbGF5X2ZpbmkoJmRh dGEuZGlzcGxheSk7Cj4gLQl9Cj4gLX0KPiBkaWZmIC0tZ2l0IGEvdGVzdHMvbWVzb24uYnVpbGQg Yi90ZXN0cy9tZXNvbi5idWlsZAo+IGluZGV4IDgzNWFkYzAwN2U5NS4uYzNkNTM3MmY3OGFjIDEw MDY0NAo+IC0tLSBhL3Rlc3RzL21lc29uLmJ1aWxkCj4gKysrIGIvdGVzdHMvbWVzb24uYnVpbGQK PiBAQCAtMTYyLDcgKzE2Miw2IEBAIHRlc3RfcHJvZ3MgPSBbCj4gIAkna21zX2N1cnNvcl9jcmMn LAo+ICAJJ2ttc19jdXJzb3JfbGVnYWN5JywKPiAgCSdrbXNfZHJhd19jcmMnLAo+IC0JJ2ttc19m YmNfY3JjJywKPiAgCSdrbXNfZmJjb25fZmJ0JywKPiAgCSdrbXNfZmVuY2VfcGluX2xlYWsnLAo+ ICAJJ2ttc19mbGlwJywKPiAtLSAKPiAyLjE0LjEKPiAKPiBfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWlsaW5nIGxpc3QKPiBJbnRl bC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5v cmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCi0tIApWaWxsZSBTeXJqw6Rsw6QKSW50ZWwg T1RDCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVs LWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=