From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Vetter Subject: Re: [PATCH 11/18] tests/gem_tiled_pread/pwrite: mark normal tests as basic Date: Fri, 14 Aug 2015 14:41:22 +0200 Message-ID: <20150814124122.GJ17734@phenom.ffwll.local> References: <1439497901-14310-1-git-send-email-jbarnes@virtuousgeek.org> <1439497901-14310-11-git-send-email-jbarnes@virtuousgeek.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wi0-f178.google.com (mail-wi0-f178.google.com [209.85.212.178]) by gabe.freedesktop.org (Postfix) with ESMTPS id 3781F8A6DE for ; Fri, 14 Aug 2015 05:41:26 -0700 (PDT) Received: by wijp15 with SMTP id p15so18129526wij.0 for ; Fri, 14 Aug 2015 05:41:24 -0700 (PDT) Content-Disposition: inline In-Reply-To: <1439497901-14310-11-git-send-email-jbarnes@virtuousgeek.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Jesse Barnes Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gVGh1LCBBdWcgMTMsIDIwMTUgYXQgMDE6MzE6MzRQTSAtMDcwMCwgSmVzc2UgQmFybmVzIHdy b3RlOgo+IFRoZXNlIHNpbXBsZSB0ZXN0cyBzaG91bGQgYWx3YXlzIHBhc3MuCj4gCj4gU2lnbmVk LW9mZi1ieTogSmVzc2UgQmFybmVzIDxqYmFybmVzQHZpcnR1b3VzZ2Vlay5vcmc+CgpJbW8gc2hv dWxkbid0IGJlIHBhcnQgb2YgdGhlIGJhc2ljIHNldCwgdGhleSB0aHJhc2ggdGhlIG1hY2hpbmUg cXVpdGUKYmFkbHkuIEVzcGVjaWFsbHkgZ2VtX3RpbGVkX3ByZWFkX3B3cml0ZSB0aHJhc2hlcyBh bGwgb2YgbWVtb3J5LCBzbyBuYWNrCm9uIHRoYXQgb25lIGZyb20gbWUuIEF0IGxlYXN0IHVudGls IHdlJ3ZlIGltcGxlbWVudGVkIHRoZSBzcGVlZHVwIHdpdGgKbWVtbG9jayB0aGF0J3MgYmVlbiBp biBKSVJBIHNpbmNlIHllYXJzIC4uLgoKRm9yIGdlbV90aWxlZF9wcmVhZCwgd2h5IG5vdCBqdXN0 IHJlbmFtZSB0byBnZW1fdGlsZWRfcHJlYWRfYmFzaWM/Ci1EYW5pZWwKCj4gLS0tCj4gIHRlc3Rz L2dlbV90aWxlZF9wcmVhZC5jICAgICAgICB8IDE2NyArKysrKysrKysrKysrKysrKysrKystLS0t LS0tLS0tLS0tLS0tLS0tLQo+ICB0ZXN0cy9nZW1fdGlsZWRfcHJlYWRfcHdyaXRlLmMgfCAgNDgg KysrKysrLS0tLS0tCj4gIDIgZmlsZXMgY2hhbmdlZCwgMTEyIGluc2VydGlvbnMoKyksIDEwMyBk ZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvdGVzdHMvZ2VtX3RpbGVkX3ByZWFkLmMgYi90 ZXN0cy9nZW1fdGlsZWRfcHJlYWQuYwo+IGluZGV4IGZkYzUxNzMuLjkyYmI2NDkgMTAwNjQ0Cj4g LS0tIGEvdGVzdHMvZ2VtX3RpbGVkX3ByZWFkLmMKPiArKysgYi90ZXN0cy9nZW1fdGlsZWRfcHJl YWQuYwo+IEBAIC0xMTIsNyArMTEyLDcgQEAgY2FsY3VsYXRlX2V4cGVjdGVkKGludCBvZmZzZXQp Cj4gIAlyZXR1cm4gKGJhc2VfeSArIHRpbGVfeSkgKiBXSURUSCArIGJhc2VfeCArIHRpbGVfeDsK PiAgfQo+ICAKPiAtaWd0X3NpbXBsZV9tYWluCj4gK2lndF9tYWluCj4gIHsKPiAgCWludCBmZDsK PiAgCWludCBpLCBpdGVyID0gMTAwOwo+IEBAIC0xMjAsOTYgKzEyMCwxMDEgQEAgaWd0X3NpbXBs ZV9tYWluCj4gIAl1aW50MzJfdCBoYW5kbGU7Cj4gIAl1aW50MzJfdCBkZXZpZDsKPiAgCj4gLQlm ZCA9IGRybV9vcGVuX2FueSgpOwo+ICsJaWd0X2ZpeHR1cmUgewo+ICsJCWZkID0gZHJtX29wZW5f YW55KCk7Cj4gIAo+IC0JaGFuZGxlID0gY3JlYXRlX2JvKGZkKTsKPiAtCWdlbV9nZXRfdGlsaW5n KGZkLCBoYW5kbGUsICZ0aWxpbmcsICZzd2l6emxlKTsKPiArCQloYW5kbGUgPSBjcmVhdGVfYm8o ZmQpOwo+ICsJCWdlbV9nZXRfdGlsaW5nKGZkLCBoYW5kbGUsICZ0aWxpbmcsICZzd2l6emxlKTsK PiAgCj4gLQlkZXZpZCA9IGludGVsX2dldF9kcm1fZGV2aWQoZmQpOwo+IC0KPiAtCWlmIChJU19H RU4yKGRldmlkKSkgewo+IC0JCXRpbGVfaGVpZ2h0ID0gMTY7Cj4gLQkJdGlsZV93aWR0aCA9IDEy ODsKPiAtCQl0aWxlX3NpemUgPSAyMDQ4Owo+IC0JfSBlbHNlIHsKPiAtCQl0aWxlX2hlaWdodCA9 IDg7Cj4gLQkJdGlsZV93aWR0aCA9IDUxMjsKPiAtCQl0aWxlX3NpemUgPSBQQUdFX1NJWkU7Cj4g KwkJZGV2aWQgPSBpbnRlbF9nZXRfZHJtX2RldmlkKGZkKTsKPiAgCX0KPiAgCj4gLQkvKiBSZWFk IGEgYnVuY2ggb2YgcmFuZG9tIHN1YnNldHMgb2YgdGhlIGRhdGEgYW5kIGNoZWNrIHRoYXQgdGhl eSBjb21lCj4gLQkgKiBvdXQgcmlnaHQuCj4gLQkgKi8KPiAtCWZvciAoaSA9IDA7IGkgPCBpdGVy OyBpKyspIHsKPiAtCQlpbnQgc2l6ZSA9IFdJRFRIICogSEVJR0hUICogNDsKPiAtCQlpbnQgb2Zm c2V0ID0gKHJhbmRvbSgpICUgc2l6ZSkgJiB+MzsKPiAtCQlpbnQgbGVuID0gKHJhbmRvbSgpICUg c2l6ZSkgJiB+MzsKPiAtCQlpbnQgajsKPiArCWlndF9zdWJ0ZXN0KCJiYXNpYyIpIHsKPiAgCj4g LQkJaWYgKGxlbiA9PSAwKQo+IC0JCQlsZW4gPSA0Owo+ICsJCWlmIChJU19HRU4yKGRldmlkKSkg ewo+ICsJCQl0aWxlX2hlaWdodCA9IDE2Owo+ICsJCQl0aWxlX3dpZHRoID0gMTI4Owo+ICsJCQl0 aWxlX3NpemUgPSAyMDQ4Owo+ICsJCX0gZWxzZSB7Cj4gKwkJCXRpbGVfaGVpZ2h0ID0gODsKPiAr CQkJdGlsZV93aWR0aCA9IDUxMjsKPiArCQkJdGlsZV9zaXplID0gUEFHRV9TSVpFOwo+ICsJCX0K PiAgCj4gLQkJaWYgKG9mZnNldCArIGxlbiA+IHNpemUpCj4gLQkJCWxlbiA9IHNpemUgLSBvZmZz ZXQ7Cj4gKwkJLyogUmVhZCBhIGJ1bmNoIG9mIHJhbmRvbSBzdWJzZXRzIG9mIHRoZSBkYXRhIGFu ZCBjaGVjayB0aGF0IHRoZXkgY29tZQo+ICsJCSAqIG91dCByaWdodC4KPiArCQkgKi8KPiArCQlm b3IgKGkgPSAwOyBpIDwgaXRlcjsgaSsrKSB7Cj4gKwkJCWludCBzaXplID0gV0lEVEggKiBIRUlH SFQgKiA0Owo+ICsJCQlpbnQgb2Zmc2V0ID0gKHJhbmRvbSgpICUgc2l6ZSkgJiB+MzsKPiArCQkJ aW50IGxlbiA9IChyYW5kb20oKSAlIHNpemUpICYgfjM7Cj4gKwkJCWludCBqOwo+ICAKPiAtCQlp ZiAoaSA9PSAwKSB7Cj4gLQkJCW9mZnNldCA9IDA7Cj4gLQkJCWxlbiA9IHNpemU7Cj4gLQkJfQo+ ICsJCQlpZiAobGVuID09IDApCj4gKwkJCQlsZW4gPSA0Owo+ICAKPiAtCQlnZW1fcmVhZChmZCwg aGFuZGxlLCBvZmZzZXQsIGxpbmVhciwgbGVuKTsKPiArCQkJaWYgKG9mZnNldCArIGxlbiA+IHNp emUpCj4gKwkJCQlsZW4gPSBzaXplIC0gb2Zmc2V0Owo+ICAKPiAtCQkvKiBUcmFuc2xhdGUgZnJv bSBvZmZzZXRzIGluIHRoZSByZWFkIGJ1ZmZlciB0byB0aGUgc3dpenpsZWQKPiAtCQkgKiBhZGRy ZXNzIHRoYXQgaXQgY29ycmVzcG9uZHMgdG8uICBUaGlzIGlzIHRoZSBvcHBvc2l0ZSBvZgo+IC0J CSAqIHdoYXQgTWVzYSBkb2VzIChjYWxjdWxhdGUgb2Zmc2V0IHRvIGJlIHJlYWQgZ2l2ZW4gdGhl IGxpbmVhcgo+IC0JCSAqIG9mZnNldCBpdCdzIGxvb2tpbmcgZm9yKS4KPiAtCQkgKi8KPiAtCQlm b3IgKGogPSBvZmZzZXQ7IGogPCBvZmZzZXQgKyBsZW47IGogKz0gNCkgewo+IC0JCQl1aW50MzJf dCBleHBlY3RlZF92YWwsIGZvdW5kX3ZhbDsKPiAtCQkJaW50IHN3aXp6bGVkX29mZnNldDsKPiAt CQkJY29uc3QgY2hhciAqc3dpenpsZV9zdHI7Cj4gLQo+IC0JCQlzd2l0Y2ggKHN3aXp6bGUpIHsK PiAtCQkJY2FzZSBJOTE1X0JJVF82X1NXSVpaTEVfTk9ORToKPiAtCQkJCXN3aXp6bGVkX29mZnNl dCA9IGo7Cj4gLQkJCQlzd2l6emxlX3N0ciA9ICJub25lIjsKPiAtCQkJCWJyZWFrOwo+IC0JCQlj YXNlIEk5MTVfQklUXzZfU1dJWlpMRV85Ogo+IC0JCQkJc3dpenpsZWRfb2Zmc2V0ID0gaiBeCj4g LQkJCQkJc3dpenpsZV9iaXQoOSwgaik7Cj4gLQkJCQlzd2l6emxlX3N0ciA9ICJiaXQ5IjsKPiAt CQkJCWJyZWFrOwo+IC0JCQljYXNlIEk5MTVfQklUXzZfU1dJWlpMRV85XzEwOgo+IC0JCQkJc3dp enpsZWRfb2Zmc2V0ID0gaiBeCj4gLQkJCQkJc3dpenpsZV9iaXQoOSwgaikgXgo+IC0JCQkJCXN3 aXp6bGVfYml0KDEwLCBqKTsKPiAtCQkJCXN3aXp6bGVfc3RyID0gImJpdDleMTAiOwo+IC0JCQkJ YnJlYWs7Cj4gLQkJCWNhc2UgSTkxNV9CSVRfNl9TV0laWkxFXzlfMTE6Cj4gLQkJCQlzd2l6emxl ZF9vZmZzZXQgPSBqIF4KPiAtCQkJCQlzd2l6emxlX2JpdCg5LCBqKSBeCj4gLQkJCQkJc3dpenps ZV9iaXQoMTEsIGopOwo+IC0JCQkJc3dpenpsZV9zdHIgPSAiYml0OV4xMSI7Cj4gLQkJCQlicmVh azsKPiAtCQkJY2FzZSBJOTE1X0JJVF82X1NXSVpaTEVfOV8xMF8xMToKPiAtCQkJCXN3aXp6bGVk X29mZnNldCA9IGogXgo+IC0JCQkJCXN3aXp6bGVfYml0KDksIGopIF4KPiAtCQkJCQlzd2l6emxl X2JpdCgxMCwgaikgXgo+IC0JCQkJCXN3aXp6bGVfYml0KDExLCBqKTsKPiAtCQkJCXN3aXp6bGVf c3RyID0gImJpdDleMTBeMTEiOwo+IC0JCQkJYnJlYWs7Cj4gLQkJCWRlZmF1bHQ6Cj4gLQkJCQlp Z3RfYXNzZXJ0X2YoMCwgIkJhZCBzd2l6emxlIGJpdHM7ICVkXG4iLAo+IC0JCQkJCSAgICAgc3dp enpsZSk7Cj4gKwkJCWlmIChpID09IDApIHsKPiArCQkJCW9mZnNldCA9IDA7Cj4gKwkJCQlsZW4g PSBzaXplOwo+ICsJCQl9Cj4gKwo+ICsJCQlnZW1fcmVhZChmZCwgaGFuZGxlLCBvZmZzZXQsIGxp bmVhciwgbGVuKTsKPiArCj4gKwkJCS8qIFRyYW5zbGF0ZSBmcm9tIG9mZnNldHMgaW4gdGhlIHJl YWQgYnVmZmVyIHRvIHRoZSBzd2l6emxlZAo+ICsJCQkgKiBhZGRyZXNzIHRoYXQgaXQgY29ycmVz cG9uZHMgdG8uICBUaGlzIGlzIHRoZSBvcHBvc2l0ZSBvZgo+ICsJCQkgKiB3aGF0IE1lc2EgZG9l cyAoY2FsY3VsYXRlIG9mZnNldCB0byBiZSByZWFkIGdpdmVuIHRoZSBsaW5lYXIKPiArCQkJICog b2Zmc2V0IGl0J3MgbG9va2luZyBmb3IpLgo+ICsJCQkgKi8KPiArCQkJZm9yIChqID0gb2Zmc2V0 OyBqIDwgb2Zmc2V0ICsgbGVuOyBqICs9IDQpIHsKPiArCQkJCXVpbnQzMl90IGV4cGVjdGVkX3Zh bCwgZm91bmRfdmFsOwo+ICsJCQkJaW50IHN3aXp6bGVkX29mZnNldDsKPiArCQkJCWNvbnN0IGNo YXIgKnN3aXp6bGVfc3RyOwo+ICsKPiArCQkJCXN3aXRjaCAoc3dpenpsZSkgewo+ICsJCQkJY2Fz ZSBJOTE1X0JJVF82X1NXSVpaTEVfTk9ORToKPiArCQkJCQlzd2l6emxlZF9vZmZzZXQgPSBqOwo+ ICsJCQkJCXN3aXp6bGVfc3RyID0gIm5vbmUiOwo+ICsJCQkJCWJyZWFrOwo+ICsJCQkJY2FzZSBJ OTE1X0JJVF82X1NXSVpaTEVfOToKPiArCQkJCQlzd2l6emxlZF9vZmZzZXQgPSBqIF4KPiArCQkJ CQkJc3dpenpsZV9iaXQoOSwgaik7Cj4gKwkJCQkJc3dpenpsZV9zdHIgPSAiYml0OSI7Cj4gKwkJ CQkJYnJlYWs7Cj4gKwkJCQljYXNlIEk5MTVfQklUXzZfU1dJWlpMRV85XzEwOgo+ICsJCQkJCXN3 aXp6bGVkX29mZnNldCA9IGogXgo+ICsJCQkJCQlzd2l6emxlX2JpdCg5LCBqKSBeCj4gKwkJCQkJ CXN3aXp6bGVfYml0KDEwLCBqKTsKPiArCQkJCQlzd2l6emxlX3N0ciA9ICJiaXQ5XjEwIjsKPiAr CQkJCQlicmVhazsKPiArCQkJCWNhc2UgSTkxNV9CSVRfNl9TV0laWkxFXzlfMTE6Cj4gKwkJCQkJ c3dpenpsZWRfb2Zmc2V0ID0gaiBeCj4gKwkJCQkJCXN3aXp6bGVfYml0KDksIGopIF4KPiArCQkJ CQkJc3dpenpsZV9iaXQoMTEsIGopOwo+ICsJCQkJCXN3aXp6bGVfc3RyID0gImJpdDleMTEiOwo+ ICsJCQkJCWJyZWFrOwo+ICsJCQkJY2FzZSBJOTE1X0JJVF82X1NXSVpaTEVfOV8xMF8xMToKPiAr CQkJCQlzd2l6emxlZF9vZmZzZXQgPSBqIF4KPiArCQkJCQkJc3dpenpsZV9iaXQoOSwgaikgXgo+ ICsJCQkJCQlzd2l6emxlX2JpdCgxMCwgaikgXgo+ICsJCQkJCQlzd2l6emxlX2JpdCgxMSwgaik7 Cj4gKwkJCQkJc3dpenpsZV9zdHIgPSAiYml0OV4xMF4xMSI7Cj4gKwkJCQkJYnJlYWs7Cj4gKwkJ CQlkZWZhdWx0Ogo+ICsJCQkJCWlndF9hc3NlcnRfZigwLCAiQmFkIHN3aXp6bGUgYml0czsgJWRc biIsCj4gKwkJCQkJCSAgICAgc3dpenpsZSk7Cj4gKwkJCQl9Cj4gKwkJCQlleHBlY3RlZF92YWwg PSBjYWxjdWxhdGVfZXhwZWN0ZWQoc3dpenpsZWRfb2Zmc2V0KTsKPiArCQkJCWZvdW5kX3ZhbCA9 IGxpbmVhclsoaiAtIG9mZnNldCkgLyA0XTsKPiArCQkJCWlndF9hc3NlcnRfZihleHBlY3RlZF92 YWwgPT0gZm91bmRfdmFsLAo+ICsJCQkJCSAgICAgIkJhZCByZWFkIFslZF06ICVkIGluc3RlYWQg b2YgJWQgYXQgMHglMDh4ICIKPiArCQkJCQkgICAgICJmb3IgcmVhZCBmcm9tIDB4JTA4eCB0byAw eCUwOHgsIHN3aXp6bGU9JXNcbiIsCj4gKwkJCQkJICAgICBpLCBmb3VuZF92YWwsIGV4cGVjdGVk X3ZhbCwgaiwKPiArCQkJCQkgICAgIG9mZnNldCwgb2Zmc2V0ICsgbGVuLAo+ICsJCQkJCSAgICAg c3dpenpsZV9zdHIpOwo+ICAJCQl9Cj4gLQkJCWV4cGVjdGVkX3ZhbCA9IGNhbGN1bGF0ZV9leHBl Y3RlZChzd2l6emxlZF9vZmZzZXQpOwo+IC0JCQlmb3VuZF92YWwgPSBsaW5lYXJbKGogLSBvZmZz ZXQpIC8gNF07Cj4gLQkJCWlndF9hc3NlcnRfZihleHBlY3RlZF92YWwgPT0gZm91bmRfdmFsLAo+ IC0JCQkJICAgICAiQmFkIHJlYWQgWyVkXTogJWQgaW5zdGVhZCBvZiAlZCBhdCAweCUwOHggIgo+ IC0JCQkJICAgICAiZm9yIHJlYWQgZnJvbSAweCUwOHggdG8gMHglMDh4LCBzd2l6emxlPSVzXG4i LAo+IC0JCQkJICAgICBpLCBmb3VuZF92YWwsIGV4cGVjdGVkX3ZhbCwgaiwKPiAtCQkJCSAgICAg b2Zmc2V0LCBvZmZzZXQgKyBsZW4sCj4gLQkJCQkgICAgIHN3aXp6bGVfc3RyKTsKPiAgCQl9Cj4g IAl9Cj4gIAo+IGRpZmYgLS1naXQgYS90ZXN0cy9nZW1fdGlsZWRfcHJlYWRfcHdyaXRlLmMgYi90 ZXN0cy9nZW1fdGlsZWRfcHJlYWRfcHdyaXRlLmMKPiBpbmRleCAzZDhmZGM5Li5lZmI1NmQ1IDEw MDY0NAo+IC0tLSBhL3Rlc3RzL2dlbV90aWxlZF9wcmVhZF9wd3JpdGUuYwo+ICsrKyBiL3Rlc3Rz L2dlbV90aWxlZF9wcmVhZF9wd3JpdGUuYwo+IEBAIC0xMDEsNyArMTAxLDcgQEAgY3JlYXRlX2Jv KGludCBmZCkKPiAgCXJldHVybiBoYW5kbGU7Cj4gIH0KPiAgCj4gLWlndF9zaW1wbGVfbWFpbgo+ ICtpZ3RfbWFpbgo+ICB7Cj4gIAlpbnQgZmQ7Cj4gIAl1aW50MzJfdCAqZGF0YTsKPiBAQCAtMTA5 LDM0ICsxMDksMzggQEAgaWd0X3NpbXBsZV9tYWluCj4gIAl1aW50MzJfdCB0aWxpbmcsIHN3aXp6 bGU7Cj4gIAl1aW50MzJfdCBoYW5kbGUsIGhhbmRsZV90YXJnZXQ7Cj4gIAlpbnQgY291bnQ7Cj4g LQkKPiAtCWZkID0gZHJtX29wZW5fYW55KCk7Cj4gLQljb3VudCA9IFNMT1dfUVVJQ0soaW50ZWxf Z2V0X3RvdGFsX3JhbV9tYigpICogOSAvIDEwLCA4KSA7Cj4gIAo+IC0JZm9yIChpID0gMDsgaSA8 IGNvdW50LzI7IGkrKykgewo+IC0JCWN1cnJlbnRfdGlsaW5nX21vZGUgPSBJOTE1X1RJTElOR19Y Owo+ICsJaWd0X2ZpeHR1cmUgewo+ICsJCWZkID0gZHJtX29wZW5fYW55KCk7Cj4gKwkJY291bnQg PSBTTE9XX1FVSUNLKGludGVsX2dldF90b3RhbF9yYW1fbWIoKSAqIDkgLyAxMCwgOCk7Cj4gKwl9 Cj4gKwo+ICsJaWd0X3N1YnRlc3QoImJhc2ljIikgewo+ICsJCWZvciAoaSA9IDA7IGkgPCBjb3Vu dC8yOyBpKyspIHsKPiArCQkJY3VycmVudF90aWxpbmdfbW9kZSA9IEk5MTVfVElMSU5HX1g7Cj4g IAo+IC0JCWhhbmRsZSA9IGNyZWF0ZV9ib19hbmRfZmlsbChmZCk7Cj4gLQkJZ2VtX2dldF90aWxp bmcoZmQsIGhhbmRsZSwgJnRpbGluZywgJnN3aXp6bGUpOwo+ICsJCQloYW5kbGUgPSBjcmVhdGVf Ym9fYW5kX2ZpbGwoZmQpOwo+ICsJCQlnZW1fZ2V0X3RpbGluZyhmZCwgaGFuZGxlLCAmdGlsaW5n LCAmc3dpenpsZSk7Cj4gIAo+IC0JCWdlbV9yZWFkKGZkLCBoYW5kbGUsIDAsIGxpbmVhciwgc2l6 ZW9mKGxpbmVhcikpOwo+ICsJCQlnZW1fcmVhZChmZCwgaGFuZGxlLCAwLCBsaW5lYXIsIHNpemVv ZihsaW5lYXIpKTsKPiAgCj4gLQkJaGFuZGxlX3RhcmdldCA9IGNyZWF0ZV9ibyhmZCk7Cj4gLQkJ Z2VtX3dyaXRlKGZkLCBoYW5kbGVfdGFyZ2V0LCAwLCBsaW5lYXIsIHNpemVvZihsaW5lYXIpKTsK PiArCQkJaGFuZGxlX3RhcmdldCA9IGNyZWF0ZV9ibyhmZCk7Cj4gKwkJCWdlbV93cml0ZShmZCwg aGFuZGxlX3RhcmdldCwgMCwgbGluZWFyLCBzaXplb2YobGluZWFyKSk7Cj4gIAo+IC0JCS8qIENo ZWNrIHRoZSB0YXJnZXQgYm8ncyBjb250ZW50cy4gKi8KPiAtCQlkYXRhID0gZ2VtX21tYXAoZmQs IGhhbmRsZV90YXJnZXQsIHNpemVvZihsaW5lYXIpLCBQUk9UX1JFQUQgfCBQUk9UX1dSSVRFKTsK PiAtCQlmb3IgKGogPSAwOyBqIDwgV0lEVEgqSEVJR0hUOyBqKyspCj4gLQkJCWlndF9hc3NlcnRf ZihkYXRhW2pdID09IGosCj4gLQkJCQkgICAgICJtaXNtYXRjaCBhdCAlaTogJWlcbiIsCj4gLQkJ CQkgICAgIGosIGRhdGFbal0pOwo+IC0JCW11bm1hcChkYXRhLCBzaXplb2YobGluZWFyKSk7Cj4g KwkJCS8qIENoZWNrIHRoZSB0YXJnZXQgYm8ncyBjb250ZW50cy4gKi8KPiArCQkJZGF0YSA9IGdl bV9tbWFwKGZkLCBoYW5kbGVfdGFyZ2V0LCBzaXplb2YobGluZWFyKSwgUFJPVF9SRUFEIHwgUFJP VF9XUklURSk7Cj4gKwkJCWZvciAoaiA9IDA7IGogPCBXSURUSCpIRUlHSFQ7IGorKykKPiArCQkJ CWlndF9hc3NlcnRfZihkYXRhW2pdID09IGosCj4gKwkJCQkJICAgICAibWlzbWF0Y2ggYXQgJWk6 ICVpXG4iLAo+ICsJCQkJCSAgICAgaiwgZGF0YVtqXSk7Cj4gKwkJCW11bm1hcChkYXRhLCBzaXpl b2YobGluZWFyKSk7Cj4gIAo+IC0JCS8qIExlYWsgYm90aCBib3Mgc28gdGhhdCB3ZSB1c2UgYWxs IG9mIHN5c3RlbSBtZW0hICovCj4gLQkJZ2VtX21hZHZpc2UoZmQsIGhhbmRsZV90YXJnZXQsIEk5 MTVfTUFEVl9ET05UTkVFRCk7Cj4gLQkJZ2VtX21hZHZpc2UoZmQsIGhhbmRsZSwgSTkxNV9NQURW X0RPTlRORUVEKTsKPiArCQkJLyogTGVhayBib3RoIGJvcyBzbyB0aGF0IHdlIHVzZSBhbGwgb2Yg c3lzdGVtIG1lbSEgKi8KPiArCQkJZ2VtX21hZHZpc2UoZmQsIGhhbmRsZV90YXJnZXQsIEk5MTVf TUFEVl9ET05UTkVFRCk7Cj4gKwkJCWdlbV9tYWR2aXNlKGZkLCBoYW5kbGUsIEk5MTVfTUFEVl9E T05UTkVFRCk7Cj4gIAo+IC0JCWlndF9wcm9ncmVzcygiZ2VtX3RpbGVkX3ByZWFkX3B3cml0ZTog IiwgaSwgY291bnQvMik7Cj4gKwkJCWlndF9wcm9ncmVzcygiZ2VtX3RpbGVkX3ByZWFkX3B3cml0 ZTogIiwgaSwgY291bnQvMik7Cj4gKwkJfQo+ICAJfQo+ICAKPiAgCWNsb3NlKGZkKTsKPiAtLSAK PiAxLjkuMQo+IAo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKPiBodHRwOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4CgotLSAKRGFuaWVsIFZldHRlcgpTb2Z0d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9y YXRpb24KaHR0cDovL2Jsb2cuZmZ3bGwuY2gKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMu ZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9pbnRlbC1nZngK