From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Xiang, Haihao" Subject: Re: [Intel gfx][i-g-t PATCH 1/4] tests: add gem_media_fill Date: Mon, 02 Dec 2013 09:06:55 +0800 Message-ID: <1385946415.6449.57.camel@xhh-ivb32> References: <1385708236-29833-1-git-send-email-haihao.xiang@intel.com> <20131129080206.GT27344@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id 4DBF4FA46B for ; Sun, 1 Dec 2013 17:05:15 -0800 (PST) In-Reply-To: <20131129080206.GT27344@phenom.ffwll.local> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: intel-gfx-bounces@lists.freedesktop.org Errors-To: intel-gfx-bounces@lists.freedesktop.org To: Daniel Vetter Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCAyMDEzLTExLTI5IGF0IDA5OjAyICswMTAwLCBEYW5pZWwgVmV0dGVyIHdyb3RlOiAK PiBPbiBGcmksIE5vdiAyOSwgMjAxMyBhdCAwMjo1NzoxM1BNICswODAwLCBYaWFuZywgSGFpaGFv IHdyb3RlOgo+ID4gRnJvbTogIlhpYW5nLCBIYWloYW8iIDxoYWloYW8ueGlhbmdAaW50ZWwuY29t Pgo+ID4gCj4gPiBJdCBpcyB0byBjaGVjayB3aGV0aGVyIG1lZGlhIHBpcGVsaW5lIG9uIHJlbmRl ciByaW5nIHdvcmtzLiBDb2Rlcwo+ID4gYXJlIGNvcGllZCBhbmQgbW9kaWZpZWQgZnJvbSB0aGUg cmVuZGVyY29weSBjYXNlIHdoaWNoIHVzZXMgM0QgcGlwZWxpbmUuCj4gPiBIb3dldmVyIG1lZGlh IHBpcGVsaW5lIGlzIHNpbXBsZXIgdGhhbiAzRCBwaXBlbGluZSBhbmQgdGhlcmUgaXMgZmV3IGNo YW5nZXMKPiA+IGJldHdlZW4gZ2VuNixnZW43IGFuZCBnZW44Cj4gPiAKPiA+IFNpZ25lZC1vZmYt Ynk6IFhpYW5nLCBIYWloYW8gPGhhaWhhby54aWFuZ0BpbnRlbC5jb20+Cj4gCj4gUmVhbGx5IGF3 ZXNvbWUuIFRoaXMgc2hvdWxkIGFsc28gaGVscCBpbiB3cml0aW5nIGNyYXp5IG11bHRpLXJpbmcg dGVzdHMKPiB3aGljaCBjaGVjayBjb3JyZWN0bmVzcy4gSSBkb24ndCBoYXZlIGFueSBjbHVlIGFi b3V0IG1lZGlhIHN0dWZmLCBzbwo+IHBsZWFzZSBsZXQgc29tZW9uZSBlbHNlIGZyb20geW91ciB0 ZWFtIHF1aWNrbHkgcmV2aWV3IGl0IGJlZm9yZSB5b3UgcHVzaC4KPiBPdGhlcndpc2UgbGd0bS4K ClRoYW5rcyBmb3IgeW91ciBjb21tZW50cy4gSSB3aWxsIGZpeCB0aGUgaXNzdWUgWWFrdWkgcG9p bnRlZCBvdXQgZmlyc3QKdGhlbiBwdXNoIHRoZSBjb2RlLgoKCj4gLURhbmllbAo+IAo+ID4gLS0t Cj4gPiAgbGliL01ha2VmaWxlLnNvdXJjZXMgICB8ICAgIDIgKwo+ID4gIGxpYi9tZWRpYV9maWxs LmMgICAgICAgfCAgICA5ICsrKysKPiA+ICBsaWIvbWVkaWFfZmlsbC5oICAgICAgIHwgICA1MCAr KysrKysrKysrKysrKysrKysKPiA+ICB0ZXN0cy9NYWtlZmlsZS5zb3VyY2VzIHwgICAgMSArCj4g PiAgdGVzdHMvZ2VtX21lZGlhX2ZpbGwuYyB8ICAxMzIgKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrCj4gPiAgNSBmaWxlcyBjaGFuZ2VkLCAxOTQgaW5zZXJ0 aW9ucygrKQo+ID4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBsaWIvbWVkaWFfZmlsbC5jCj4gPiAgY3Jl YXRlIG1vZGUgMTAwNjQ0IGxpYi9tZWRpYV9maWxsLmgKPiA+ICBjcmVhdGUgbW9kZSAxMDA2NDQg dGVzdHMvZ2VtX21lZGlhX2ZpbGwuYwo+ID4gCj4gPiBkaWZmIC0tZ2l0IGEvbGliL01ha2VmaWxl LnNvdXJjZXMgYi9saWIvTWFrZWZpbGUuc291cmNlcwo+ID4gaW5kZXggNjk5NjIxYi4uY2FkMjM4 YSAxMDA2NDQKPiA+IC0tLSBhL2xpYi9NYWtlZmlsZS5zb3VyY2VzCj4gPiArKysgYi9saWIvTWFr ZWZpbGUuc291cmNlcwo+ID4gQEAgLTE5LDYgKzE5LDggQEAgbGliaW50ZWxfdG9vbHNfbGFfU09V UkNFUyA9IAlcCj4gPiAgCWludGVsX21taW8uYwkJXAo+ID4gIAlpbnRlbF9wY2kuYwkJXAo+ID4g IAlpbnRlbF9yZWcuaAkJXAo+ID4gKwltZWRpYV9maWxsLmMgICAgICAgICAgICBcCj4gPiArCW1l ZGlhX2ZpbGwuaCAgICAgICAgICAgIFwKPiA+ICAJcmVuZGVyY29weV9pOTE1LmMJXAo+ID4gIAly ZW5kZXJjb3B5X2k4MzAuYwlcCj4gPiAgCWdlbjZfcmVuZGVyLmgJCVwKPiA+IGRpZmYgLS1naXQg YS9saWIvbWVkaWFfZmlsbC5jIGIvbGliL21lZGlhX2ZpbGwuYwo+ID4gbmV3IGZpbGUgbW9kZSAx MDA2NDQKPiA+IGluZGV4IDAwMDAwMDAuLjhlZTVkYjYKPiA+IC0tLSAvZGV2L251bGwKPiA+ICsr KyBiL2xpYi9tZWRpYV9maWxsLmMKPiA+IEBAIC0wLDAgKzEsOSBAQAo+ID4gKyNpbmNsdWRlICJp ODMwX3JlZy5oIgo+ID4gKyNpbmNsdWRlICJtZWRpYV9maWxsLmgiCj4gPiArCj4gPiArbWVkaWFf ZmlsbGZ1bmNfdCBnZXRfbWVkaWFfZmlsbGZ1bmMoaW50IGRldmlkKQo+ID4gK3sKPiA+ICsJbWVk aWFfZmlsbGZ1bmNfdCBmaWxsID0gTlVMTDsKPiA+ICsKPiA+ICsJcmV0dXJuIGZpbGw7Cj4gPiAr fQo+ID4gZGlmZiAtLWdpdCBhL2xpYi9tZWRpYV9maWxsLmggYi9saWIvbWVkaWFfZmlsbC5oCj4g PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+ID4gaW5kZXggMDAwMDAwMC4uMmUwNThjYgo+ID4gLS0t IC9kZXYvbnVsbAo+ID4gKysrIGIvbGliL21lZGlhX2ZpbGwuaAo+ID4gQEAgLTAsMCArMSw1MCBA QAo+ID4gKyNpZm5kZWYgUkVOREVfTUVESUFfRklMTF9ICj4gPiArI2RlZmluZSBSRU5ERV9NRURJ QV9GSUxMX0gKPiA+ICsKPiA+ICsjaW5jbHVkZSA8c3RkbGliLmg+Cj4gPiArI2luY2x1ZGUgPHN5 cy9pb2N0bC5oPgo+ID4gKyNpbmNsdWRlIDxzdGRpby5oPgo+ID4gKyNpbmNsdWRlIDxzdHJpbmcu aD4KPiA+ICsjaW5jbHVkZSA8YXNzZXJ0Lmg+Cj4gPiArI2luY2x1ZGUgPGZjbnRsLmg+Cj4gPiAr I2luY2x1ZGUgPGludHR5cGVzLmg+Cj4gPiArI2luY2x1ZGUgPGVycm5vLmg+Cj4gPiArI2luY2x1 ZGUgPHN5cy9zdGF0Lmg+Cj4gPiArI2luY2x1ZGUgPHN5cy90aW1lLmg+Cj4gPiArI2luY2x1ZGUg PGdldG9wdC5oPgo+ID4gKyNpbmNsdWRlICJkcm0uaCIKPiA+ICsjaW5jbHVkZSAiaTkxNV9kcm0u aCIKPiA+ICsjaW5jbHVkZSAiZHJtdGVzdC5oIgo+ID4gKyNpbmNsdWRlICJpbnRlbF9idWZtZ3Iu aCIKPiA+ICsjaW5jbHVkZSAiaW50ZWxfYmF0Y2hidWZmZXIuaCIKPiA+ICsjaW5jbHVkZSAiaW50 ZWxfZ3B1X3Rvb2xzLmgiCj4gPiArCj4gPiArc3RydWN0IHNjcmF0Y2hfYnVmIHsKPiA+ICsgICAg ZHJtX2ludGVsX2JvICpibzsKPiA+ICsgICAgdWludDMyX3Qgc3RyaWRlOwo+ID4gKyAgICB1aW50 MzJfdCB0aWxpbmc7Cj4gPiArICAgIHVpbnQzMl90ICpkYXRhOwo+ID4gKyAgICB1aW50MzJfdCAq Y3B1X21hcHBpbmc7Cj4gPiArICAgIHVpbnQzMl90IHNpemU7Cj4gPiArICAgIHVuc2lnbmVkIG51 bV90aWxlczsKPiA+ICt9Owo+ID4gKwo+ID4gK3N0YXRpYyBpbmxpbmUgdW5zaWduZWQgYnVmX3dp ZHRoKHN0cnVjdCBzY3JhdGNoX2J1ZiAqYnVmKQo+ID4gK3sKPiA+ICsJcmV0dXJuIGJ1Zi0+c3Ry aWRlL3NpemVvZih1aW50OF90KTsKPiA+ICt9Cj4gPiArCj4gPiArc3RhdGljIGlubGluZSB1bnNp Z25lZCBidWZfaGVpZ2h0KHN0cnVjdCBzY3JhdGNoX2J1ZiAqYnVmKQo+ID4gK3sKPiA+ICsJcmV0 dXJuIGJ1Zi0+c2l6ZS9idWYtPnN0cmlkZTsKPiA+ICt9Cj4gPiArCj4gPiArdHlwZWRlZiB2b2lk ICgqbWVkaWFfZmlsbGZ1bmNfdCkoc3RydWN0IGludGVsX2JhdGNoYnVmZmVyICpiYXRjaCwKPiA+ ICsJCQkJc3RydWN0IHNjcmF0Y2hfYnVmICpkc3QsCj4gPiArCQkJCXVuc2lnbmVkIHgsIHVuc2ln bmVkIHksCj4gPiArCQkJCXVuc2lnbmVkIHdpZHRoLCB1bnNpZ25lZCBoZWlnaHQsCj4gPiArCQkJ CXVpbnQ4X3QgY29sb3IpOwo+ID4gKwo+ID4gK21lZGlhX2ZpbGxmdW5jX3QgZ2V0X21lZGlhX2Zp bGxmdW5jKGludCBkZXZpZCk7Cj4gPiArCj4gPiArI2VuZGlmIC8qIFJFTkRFX01FRElBX0ZJTExf SCAqLwo+ID4gZGlmZiAtLWdpdCBhL3Rlc3RzL01ha2VmaWxlLnNvdXJjZXMgYi90ZXN0cy9NYWtl ZmlsZS5zb3VyY2VzCj4gPiBpbmRleCBkMjAxODA5Li4wZmYwZTM3IDEwMDY0NAo+ID4gLS0tIGEv dGVzdHMvTWFrZWZpbGUuc291cmNlcwo+ID4gKysrIGIvdGVzdHMvTWFrZWZpbGUuc291cmNlcwo+ ID4gQEAgLTg3LDYgKzg3LDcgQEAgVEVTVFNfcHJvZ3MgPSBcCj4gPiAgCWdlbV9sYXJnZW9iamVj dCBcCj4gPiAgCWdlbV9sdXRfaGFuZGxlIFwKPiA+ICAJZ2VtX21tYXBfb2Zmc2V0X2V4aGF1c3Rp b24gXAo+ID4gKwlnZW1fbWVkaWFfZmlsbCBcCj4gPiAgCWdlbV9waW4gXAo+ID4gIAlnZW1fcGlw ZV9jb250cm9sX3N0b3JlX2xvb3AgXAo+ID4gIAlnZW1fcmVnX3JlYWQgXAo+ID4gZGlmZiAtLWdp dCBhL3Rlc3RzL2dlbV9tZWRpYV9maWxsLmMgYi90ZXN0cy9nZW1fbWVkaWFfZmlsbC5jCj4gPiBu ZXcgZmlsZSBtb2RlIDEwMDY0NAo+ID4gaW5kZXggMDAwMDAwMC4uNDBiMzkxZAo+ID4gLS0tIC9k ZXYvbnVsbAo+ID4gKysrIGIvdGVzdHMvZ2VtX21lZGlhX2ZpbGwuYwo+ID4gQEAgLTAsMCArMSwx MzIgQEAKPiA+ICsvKgo+ID4gKyAqIENvcHlyaWdodCDCqSAyMDEzIEludGVsIENvcnBvcmF0aW9u Cj4gPiArICoKPiA+ICsgKiBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNo YXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYQo+ID4gKyAqIGNvcHkgb2YgdGhpcyBzb2Z0 d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgIlNvZnR3YXJlIiks Cj4gPiArICogdG8gZGVhbCBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5j bHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbgo+ID4gKyAqIHRoZSByaWdodHMgdG8gdXNlLCBjb3B5 LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLAo+ID4gKyAq IGFuZC9vciBzZWxsIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29u cyB0byB3aG9tIHRoZQo+ID4gKyAqIFNvZnR3YXJlIGlzIGZ1cm5pc2hlZCB0byBkbyBzbywgc3Vi amVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6Cj4gPiArICoKPiA+ICsgKiBUaGUgYWJv dmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSAoaW5jbHVkaW5n IHRoZSBuZXh0Cj4gPiArICogcGFyYWdyYXBoKSBzaGFsbCBiZSBpbmNsdWRlZCBpbiBhbGwgY29w aWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZQo+ID4gKyAqIFNvZnR3YXJlLgo+ID4g KyAqCj4gPiArICogVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEICJBUyBJUyIsIFdJVEhPVVQgV0FS UkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1IKPiA+ICsgKiBJTVBMSUVELCBJTkNMVURJTkcg QlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSwKPiA+ ICsgKiBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5U LiAgSU4gTk8gRVZFTlQgU0hBTEwKPiA+ICsgKiBUSEUgQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9M REVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUgo+ID4gKyAqIExJ QUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJX SVNFLCBBUklTSU5HCj4gPiArICogRlJPTSwgT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBU SEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUwo+ID4gKyAqIElOIFRIRSBT T0ZUV0FSRS4KPiA+ICsgKgo+ID4gKyAqIEF1dGhvcnM6Cj4gPiArICogICAgRGFtaWVuIExlc3Bp YXUgPGRhbWllbi5sZXNwaWF1QGludGVsLmNvbT4KPiA+ICsgKiAgICBYaWFuZywgSGFpaGFvIDxo YWloYW8ueGlhbmdAaW50ZWwuY29tPgo+ID4gKyAqLwo+ID4gKwo+ID4gKy8qCj4gPiArICogVGhp cyBmaWxlIGlzIGEgYmFzaWMgdGVzdCBmb3IgdGhlIG1lZGlhX2ZpbGwoKSBmdW5jdGlvbiwgYSB2 ZXJ5IHNpbXBsZQo+ID4gKyAqIHdvcmtsb2FkIGZvciB0aGUgTWVkaWEgcGlwZWxpbmUuCj4gPiAr ICovCj4gPiArCj4gPiArI2luY2x1ZGUgPHN0ZGJvb2wuaD4KPiA+ICsjaW5jbHVkZSA8dW5pc3Rk Lmg+Cj4gPiArI2luY2x1ZGUgPGNhaXJvLmg+Cj4gPiArCj4gPiArI2luY2x1ZGUgIm1lZGlhX2Zp bGwuaCIKPiA+ICsKPiA+ICsjZGVmaW5lIFdJRFRIIDY0Cj4gPiArI2RlZmluZSBTVFJJREUgKFdJ RFRIKQo+ID4gKyNkZWZpbmUgSEVJR0hUIDY0Cj4gPiArI2RlZmluZSBTSVpFIChIRUlHSFQqU1RS SURFKQo+ID4gKwo+ID4gKyNkZWZpbmUgQ09MT1JfQzQJMHhjNAo+ID4gKyNkZWZpbmUgQ09MT1Jf NEMJMHg0Ywo+ID4gKwo+ID4gK3R5cGVkZWYgc3RydWN0IHsKPiA+ICsJaW50IGRybV9mZDsKPiA+ ICsJdWludDMyX3QgZGV2aWQ7Cj4gPiArCWRybV9pbnRlbF9idWZtZ3IgKmJ1Zm1ncjsKPiA+ICsJ dWludDhfdCBsaW5lYXJbV0lEVEggKiBIRUlHSFRdOwo+ID4gK30gZGF0YV90Owo+ID4gKwo+ID4g K3N0YXRpYyB2b2lkIHNjcmF0Y2hfYnVmX2luaXQoZGF0YV90ICpkYXRhLCBzdHJ1Y3Qgc2NyYXRj aF9idWYgKmJ1ZiwKPiA+ICsJCQlpbnQgd2lkdGgsIGludCBoZWlnaHQsIGludCBzdHJpZGUsIHVp bnQ4X3QgY29sb3IpCj4gPiArewo+ID4gKwlkcm1faW50ZWxfYm8gKmJvOwo+ID4gKwlpbnQgaTsK PiA+ICsKPiA+ICsJYm8gPSBkcm1faW50ZWxfYm9fYWxsb2MoZGF0YS0+YnVmbWdyLCAiIiwgU0la RSwgNDA5Nik7Cj4gPiArCWZvciAoaSA9IDA7IGkgPCB3aWR0aCAqIGhlaWdodDsgaSsrKQo+ID4g KwkJZGF0YS0+bGluZWFyW2ldID0gY29sb3I7Cj4gPiArCWdlbV93cml0ZShkYXRhLT5kcm1fZmQs IGJvLT5oYW5kbGUsIDAsIGRhdGEtPmxpbmVhciwKPiA+ICsJCXNpemVvZihkYXRhLT5saW5lYXIp KTsKPiA+ICsKPiA+ICsJYnVmLT5ibyA9IGJvOwo+ID4gKwlidWYtPnN0cmlkZSA9IHN0cmlkZTsK PiA+ICsJYnVmLT50aWxpbmcgPSBJOTE1X1RJTElOR19OT05FOwo+ID4gKwlidWYtPnNpemUgPSBT SVpFOwo+ID4gK30KPiA+ICsKPiA+ICtzdGF0aWMgdm9pZAo+ID4gK3NjcmF0Y2hfYnVmX2NoZWNr KGRhdGFfdCAqZGF0YSwgc3RydWN0IHNjcmF0Y2hfYnVmICpidWYsIGludCB4LCBpbnQgeSwKPiA+ ICsJCXVpbnQ4X3QgY29sb3IpCj4gPiArewo+ID4gKwl1aW50OF90IHZhbDsKPiA+ICsKPiA+ICsJ Z2VtX3JlYWQoZGF0YS0+ZHJtX2ZkLCBidWYtPmJvLT5oYW5kbGUsIDAsCj4gPiArCQlkYXRhLT5s aW5lYXIsIHNpemVvZihkYXRhLT5saW5lYXIpKTsKPiA+ICsJdmFsID0gZGF0YS0+bGluZWFyW3kg KiBXSURUSCArIHhdOwo+ID4gKwlpZiAodmFsICE9IGNvbG9yKSB7Cj4gPiArCQlmcHJpbnRmKHN0 ZGVyciwgIkV4cGVjdGVkIDB4JTAyeCwgZm91bmQgMHglMDJ4IGF0ICglZCwlZClcbiIsCj4gPiAr CQkJY29sb3IsIHZhbCwgeCwgeSk7Cj4gPiArCQlhYm9ydCgpOwo+ID4gKwl9Cj4gPiArfQo+ID4g Kwo+ID4gK2ludCBtYWluKGludCBhcmdjLCBjaGFyICoqYXJndikKPiA+ICt7Cj4gPiArCWRhdGFf dCBkYXRhID0gezAsIH07Cj4gPiArCXN0cnVjdCBpbnRlbF9iYXRjaGJ1ZmZlciAqYmF0Y2ggPSBO VUxMOwo+ID4gKwlzdHJ1Y3Qgc2NyYXRjaF9idWYgZHN0Owo+ID4gKwltZWRpYV9maWxsZnVuY190 IG1lZGlhX2ZpbGwgPSBOVUxMOwo+ID4gKwlpbnQgaSwgajsKPiA+ICsKPiA+ICsJaWd0X2ZpeHR1 cmUgewo+ID4gKwkJZGF0YS5kcm1fZmQgPSBkcm1fb3Blbl9hbnlfcmVuZGVyKCk7Cj4gPiArCQlk YXRhLmRldmlkID0gaW50ZWxfZ2V0X2RybV9kZXZpZChkYXRhLmRybV9mZCk7Cj4gPiArCj4gPiAr CQlkYXRhLmJ1Zm1nciA9IGRybV9pbnRlbF9idWZtZ3JfZ2VtX2luaXQoZGF0YS5kcm1fZmQsIDQw OTYpOwo+ID4gKwkJaWd0X2Fzc2VydChkYXRhLmJ1Zm1ncik7Cj4gPiArCj4gPiArCQltZWRpYV9m aWxsID0gZ2V0X21lZGlhX2ZpbGxmdW5jKGRhdGEuZGV2aWQpOwo+ID4gKwo+ID4gKwkJaWd0X3Jl cXVpcmVfZihtZWRpYV9maWxsLAo+ID4gKwkJCSJubyBtZWRpYS1maWxsIGZ1bmN0aW9uXG4iKTsK PiA+ICsKPiA+ICsJCWJhdGNoID0gaW50ZWxfYmF0Y2hidWZmZXJfYWxsb2MoZGF0YS5idWZtZ3Is IGRhdGEuZGV2aWQpOwo+ID4gKwkJaWd0X2Fzc2VydChiYXRjaCk7Cj4gPiArCX0KPiA+ICsKPiA+ ICsJc2NyYXRjaF9idWZfaW5pdCgmZGF0YSwgJmRzdCwgV0lEVEgsIEhFSUdIVCwgU1RSSURFLCBD T0xPUl9DNCk7Cj4gPiArCj4gPiArCWZvciAoaSA9IDA7IGkgPCBXSURUSDsgaSsrKSB7Cj4gPiAr CQlmb3IgKGogPSAwOyBqIDwgSEVJR0hUOyBqKyspIHsKPiA+ICsJCQlzY3JhdGNoX2J1Zl9jaGVj aygmZGF0YSwgJmRzdCwgaSwgaiwgQ09MT1JfQzQpOwo+ID4gKwkJfQo+ID4gKwl9Cj4gPiArCj4g PiArCW1lZGlhX2ZpbGwoYmF0Y2gsCj4gPiArCQkmZHN0LCAwLCAwLCBXSURUSCAvIDIsIEhFSUdI VCAvIDIsCj4gPiArCQlDT0xPUl80Qyk7Cj4gPiArCj4gPiArCWZvciAoaSA9IDA7IGkgPCBXSURU SDsgaSsrKSB7Cj4gPiArCQlmb3IgKGogPSAwOyBqIDwgSEVJR0hUOyBqKyspIHsKPiA+ICsJCQlp ZiAoaSA8IFdJRFRIIC8gMiAmJiBqIDwgSEVJR0hUIC8gMikKPiA+ICsJCQkJc2NyYXRjaF9idWZf Y2hlY2soJmRhdGEsICZkc3QsIGksIGosIENPTE9SXzRDKTsKPiA+ICsJCQllbHNlCj4gPiArCQkJ CXNjcmF0Y2hfYnVmX2NoZWNrKCZkYXRhLCAmZHN0LCBpLCBqLCBDT0xPUl9DNCk7Cj4gPiArCQl9 Cj4gPiArCX0KPiA+ICt9Cj4gPiAtLSAKPiA+IDEuNy45LjUKPiA+IAo+ID4gX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KPiA+IEludGVsLWdmeCBtYWlsaW5n IGxpc3QKPiA+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+IGh0dHA6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKPiAKCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGlu ZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cDovL2xpc3RzLmZyZWVk ZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=