From mboxrd@z Thu Jan 1 00:00:00 1970 From: Mika Kuoppala Subject: Re: [PATCH] drm/i915: Simplify processing of the golden render context state Date: Mon, 16 Jun 2014 14:40:45 +0300 Message-ID: <87fvj5ozeq.fsf@gaia.fi.intel.com> References: <1402395813-6568-1-git-send-email-chris@chris-wilson.co.uk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTP id 21B546E4E1 for ; Mon, 16 Jun 2014 04:41:10 -0700 (PDT) In-Reply-To: <1402395813-6568-1-git-send-email-chris@chris-wilson.co.uk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Chris Wilson , intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Q2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+IHdyaXRlczoKCj4gUmV3cml0 ZSBpOTE1X2dlbV9yZW5kZXJfc3RhdGUuYyBmb3IgdGhlIHB1cnBvc2VzIG9mIGNsYXJpdHkgYW5k Cj4gY29tcGFjdG5lc3MsIGluIHRoZSBwcm9jZXNzIHdlIGNhbiBlbGltaW5hdGUgc29tZSBkb2Rn eSBtYXRoIHRoYXQgZGlkCj4gbm90IGhhbmRsZSA2NGJpdCBhZGRyZXNzZXMgY29ycmVjdGx5Lgo+ Cj4gU2lnbmVkLW9mZi1ieTogQ2hyaXMgV2lsc29uIDxjaHJpc0BjaHJpcy13aWxzb24uY28udWs+ Cj4gQ2M6IFZpbGxlIFN5cmrDpGzDpCA8dmlsbGUuc3lyamFsYUBsaW51eC5pbnRlbC5jb20+Cj4g Q2M6IERhbWllbiBMZXNwaWF1IDxkYW1pZW4ubGVzcGlhdUBpbnRlbC5jb20+Cj4gQ2M6IE1pa2Eg S3VvcHBhbGEgPG1pa2Eua3VvcHBhbGFAaW50ZWwuY29tPgoKUmV2aWV3ZWQtYnk6IE1pa2EgS3Vv cHBhbGEgPG1pa2Eua3VvcHBhbGFAaW50ZWwuY29tPgoKPiAtLS0KPiAgZHJpdmVycy9ncHUvZHJt L2k5MTUvaTkxNV9nZW1fcmVuZGVyX3N0YXRlLmMgIHwgMTYxICsrKysrKysrKysrLS0tLS0tLS0t LS0tLS0tCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JlbmRlcnN0YXRlLmggICAgICB8 ICAgMiAtCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JlbmRlcnN0YXRlX2dlbjYuYyB8 ICAgMSArCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JlbmRlcnN0YXRlX2dlbjcuYyB8 ICAgMSArCj4gIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JlbmRlcnN0YXRlX2dlbjguYyB8 ICAgMSArCj4gIDUgZmlsZXMgY2hhbmdlZCwgNjkgaW5zZXJ0aW9ucygrKSwgOTcgZGVsZXRpb25z KC0pCj4KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9nZW1fcmVuZGVy X3N0YXRlLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbV9yZW5kZXJfc3RhdGUuYwo+ IGluZGV4IDM1MjFmOTk4YTE3OC4uZTYwYmUzZjU1MmE2IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2k5MTVfZ2VtX3JlbmRlcl9zdGF0ZS5jCj4gKysrIGIvZHJpdmVycy9ncHUv ZHJtL2k5MTUvaTkxNV9nZW1fcmVuZGVyX3N0YXRlLmMKPiBAQCAtMjgsNjQgKzI4LDEzIEBACj4g ICNpbmNsdWRlICJpOTE1X2Rydi5oIgo+ICAjaW5jbHVkZSAiaW50ZWxfcmVuZGVyc3RhdGUuaCIK PiAgCj4gLXN0cnVjdCBpOTE1X3JlbmRlcl9zdGF0ZSB7Cj4gK3N0cnVjdCByZW5kZXJfc3RhdGUg ewo+ICsJY29uc3Qgc3RydWN0IGludGVsX3JlbmRlcnN0YXRlX3JvZGF0YSAqcm9kYXRhOwo+ICAJ c3RydWN0IGRybV9pOTE1X2dlbV9vYmplY3QgKm9iajsKPiAtCXVuc2lnbmVkIGxvbmcgZ2d0dF9v ZmZzZXQ7Cj4gLQl2b2lkICpiYXRjaDsKPiAtCXUzMiBzaXplOwo+IC0JdTMyIGxlbjsKPiArCXU2 NCBnZ3R0X29mZnNldDsKPiArCWludCBnZW47Cj4gIH07Cj4gIAo+IC1zdGF0aWMgc3RydWN0IGk5 MTVfcmVuZGVyX3N0YXRlICpyZW5kZXJfc3RhdGVfYWxsb2Moc3RydWN0IGRybV9kZXZpY2UgKmRl dikKPiAtewo+IC0Jc3RydWN0IGk5MTVfcmVuZGVyX3N0YXRlICpzbzsKPiAtCXN0cnVjdCBwYWdl ICpwYWdlOwo+IC0JaW50IHJldDsKPiAtCj4gLQlzbyA9IGt6YWxsb2Moc2l6ZW9mKCpzbyksIEdG UF9LRVJORUwpOwo+IC0JaWYgKCFzbykKPiAtCQlyZXR1cm4gRVJSX1BUUigtRU5PTUVNKTsKPiAt Cj4gLQlzby0+b2JqID0gaTkxNV9nZW1fYWxsb2Nfb2JqZWN0KGRldiwgNDA5Nik7Cj4gLQlpZiAo c28tPm9iaiA9PSBOVUxMKSB7Cj4gLQkJcmV0ID0gLUVOT01FTTsKPiAtCQlnb3RvIGZyZWU7Cj4g LQl9Cj4gLQlzby0+c2l6ZSA9IDQwOTY7Cj4gLQo+IC0JcmV0ID0gaTkxNV9nZW1fb2JqX2dndHRf cGluKHNvLT5vYmosIDQwOTYsIDApOwo+IC0JaWYgKHJldCkKPiAtCQlnb3RvIGZyZWVfZ2VtOwo+ IC0KPiAtCUJVR19PTihzby0+b2JqLT5wYWdlcy0+bmVudHMgIT0gMSk7Cj4gLQlwYWdlID0gc2df cGFnZShzby0+b2JqLT5wYWdlcy0+c2dsKTsKPiAtCj4gLQlzby0+YmF0Y2ggPSBrbWFwKHBhZ2Up Owo+IC0JaWYgKCFzby0+YmF0Y2gpIHsKPiAtCQlyZXQgPSAtRU5PTUVNOwo+IC0JCWdvdG8gdW5w aW47Cj4gLQl9Cj4gLQo+IC0Jc28tPmdndHRfb2Zmc2V0ID0gaTkxNV9nZW1fb2JqX2dndHRfb2Zm c2V0KHNvLT5vYmopOwo+IC0KPiAtCXJldHVybiBzbzsKPiAtdW5waW46Cj4gLQlpOTE1X2dlbV9v YmplY3RfZ2d0dF91bnBpbihzby0+b2JqKTsKPiAtZnJlZV9nZW06Cj4gLQlkcm1fZ2VtX29iamVj dF91bnJlZmVyZW5jZSgmc28tPm9iai0+YmFzZSk7Cj4gLWZyZWU6Cj4gLQlrZnJlZShzbyk7Cj4g LQlyZXR1cm4gRVJSX1BUUihyZXQpOwo+IC19Cj4gLQo+IC1zdGF0aWMgdm9pZCByZW5kZXJfc3Rh dGVfZnJlZShzdHJ1Y3QgaTkxNV9yZW5kZXJfc3RhdGUgKnNvKQo+IC17Cj4gLQlrdW5tYXAoc28t PmJhdGNoKTsKPiAtCWk5MTVfZ2VtX29iamVjdF9nZ3R0X3VucGluKHNvLT5vYmopOwo+IC0JZHJt X2dlbV9vYmplY3RfdW5yZWZlcmVuY2UoJnNvLT5vYmotPmJhc2UpOwo+IC0Ja2ZyZWUoc28pOwo+ IC19Cj4gLQo+ICBzdGF0aWMgY29uc3Qgc3RydWN0IGludGVsX3JlbmRlcnN0YXRlX3JvZGF0YSAq Cj4gIHJlbmRlcl9zdGF0ZV9nZXRfcm9kYXRhKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIGNvbnN0 IGludCBnZW4pCj4gIHsKPiBAQCAtMTAxLDk4ICs1MCwxMjAgQEAgcmVuZGVyX3N0YXRlX2dldF9y b2RhdGEoc3RydWN0IGRybV9kZXZpY2UgKmRldiwgY29uc3QgaW50IGdlbikKPiAgCXJldHVybiBO VUxMOwo+ICB9Cj4gIAo+IC1zdGF0aWMgaW50IHJlbmRlcl9zdGF0ZV9zZXR1cChjb25zdCBpbnQg Z2VuLAo+IC0JCQkgICAgICBjb25zdCBzdHJ1Y3QgaW50ZWxfcmVuZGVyc3RhdGVfcm9kYXRhICpy b2RhdGEsCj4gLQkJCSAgICAgIHN0cnVjdCBpOTE1X3JlbmRlcl9zdGF0ZSAqc28pCj4gK3N0YXRp YyBpbnQgcmVuZGVyX3N0YXRlX2luaXQoc3RydWN0IHJlbmRlcl9zdGF0ZSAqc28sIHN0cnVjdCBk cm1fZGV2aWNlICpkZXYpCj4gIHsKPiAtCWNvbnN0IHU2NCBnb2Zmc2V0ID0gaTkxNV9nZW1fb2Jq X2dndHRfb2Zmc2V0KHNvLT5vYmopOwo+IC0JdTMyIHJlbG9jX2luZGV4ID0gMDsKPiAtCXUzMiAq IGNvbnN0IGQgPSBzby0+YmF0Y2g7Cj4gLQl1bnNpZ25lZCBpbnQgaSA9IDA7Cj4gIAlpbnQgcmV0 Owo+ICAKPiAtCWlmICghcm9kYXRhIHx8IHJvZGF0YS0+YmF0Y2hfaXRlbXMgKiA0ID4gc28tPnNp emUpCj4gKwlzby0+Z2VuID0gSU5URUxfSU5GTyhkZXYpLT5nZW47Cj4gKwlzby0+cm9kYXRhID0g cmVuZGVyX3N0YXRlX2dldF9yb2RhdGEoZGV2LCBzby0+Z2VuKTsKPiArCWlmIChzby0+cm9kYXRh ID09IE5VTEwpCj4gKwkJcmV0dXJuIDA7Cj4gKwo+ICsJaWYgKHNvLT5yb2RhdGEtPmJhdGNoX2l0 ZW1zICogNCA+IDQwOTYpCj4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4gIAo+ICsJc28tPm9iaiA9IGk5 MTVfZ2VtX2FsbG9jX29iamVjdChkZXYsIDQwOTYpOwo+ICsJaWYgKHNvLT5vYmogPT0gTlVMTCkK PiArCQlyZXR1cm4gLUVOT01FTTsKPiArCj4gKwlyZXQgPSBpOTE1X2dlbV9vYmpfZ2d0dF9waW4o c28tPm9iaiwgNDA5NiwgMCk7Cj4gKwlpZiAocmV0KQo+ICsJCWdvdG8gZnJlZV9nZW07Cj4gKwo+ ICsJc28tPmdndHRfb2Zmc2V0ID0gaTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0KHNvLT5vYmopOwo+ ICsJcmV0dXJuIDA7Cj4gKwo+ICtmcmVlX2dlbToKPiArCWRybV9nZW1fb2JqZWN0X3VucmVmZXJl bmNlKCZzby0+b2JqLT5iYXNlKTsKPiArCXJldHVybiByZXQ7Cj4gK30KPiArCj4gK3N0YXRpYyBp bnQgcmVuZGVyX3N0YXRlX3NldHVwKHN0cnVjdCByZW5kZXJfc3RhdGUgKnNvKQo+ICt7Cj4gKwlj b25zdCBzdHJ1Y3QgaW50ZWxfcmVuZGVyc3RhdGVfcm9kYXRhICpyb2RhdGEgPSBzby0+cm9kYXRh Owo+ICsJdW5zaWduZWQgaW50IGkgPSAwLCByZWxvY19pbmRleCA9IDA7Cj4gKwlzdHJ1Y3QgcGFn ZSAqcGFnZTsKPiArCXUzMiAqZDsKPiArCWludCByZXQ7Cj4gKwo+ICAJcmV0ID0gaTkxNV9nZW1f b2JqZWN0X3NldF90b19jcHVfZG9tYWluKHNvLT5vYmosIHRydWUpOwo+ICAJaWYgKHJldCkKPiAg CQlyZXR1cm4gcmV0Owo+ICAKPiArCXBhZ2UgPSBzZ19wYWdlKHNvLT5vYmotPnBhZ2VzLT5zZ2wp Owo+ICsJZCA9IGttYXAocGFnZSk7Cj4gKwo+ICAJd2hpbGUgKGkgPCByb2RhdGEtPmJhdGNoX2l0 ZW1zKSB7Cj4gIAkJdTMyIHMgPSByb2RhdGEtPmJhdGNoW2ldOwo+ICAKPiAtCQlpZiAocmVsb2Nf aW5kZXggPCByb2RhdGEtPnJlbG9jX2l0ZW1zICYmCj4gLQkJICAgIGkgKiA0ICA9PSByb2RhdGEt PnJlbG9jW3JlbG9jX2luZGV4XSkgewo+IC0KPiAtCQkJcyArPSBnb2Zmc2V0ICYgMHhmZmZmZmZm ZjsKPiAtCj4gLQkJCS8qIFdlIGtlZXAgYmF0Y2ggb2Zmc2V0cyBtYXggMzJiaXQgKi8KPiAtCQkJ aWYgKGdlbiA+PSA4KSB7Cj4gKwkJaWYgKGkgKiA0ICA9PSByb2RhdGEtPnJlbG9jW3JlbG9jX2lu ZGV4XSkgewo+ICsJCQl1NjQgciA9IHMgKyBzby0+Z2d0dF9vZmZzZXQ7Cj4gKwkJCXMgPSBsb3dl cl8zMl9iaXRzKHIpOwo+ICsJCQlpZiAoc28tPmdlbiA+PSA4KSB7Cj4gIAkJCQlpZiAoaSArIDEg Pj0gcm9kYXRhLT5iYXRjaF9pdGVtcyB8fAo+ICAJCQkJICAgIHJvZGF0YS0+YmF0Y2hbaSArIDFd ICE9IDApCj4gIAkJCQkJcmV0dXJuIC1FSU5WQUw7Cj4gIAo+IC0JCQkJZFtpXSA9IHM7Cj4gLQkJ CQlpKys7Cj4gLQkJCQlzID0gKGdvZmZzZXQgJiAweGZmZmZmZmZmMDAwMDAwMDB1bGwpID4+IDMy Owo+ICsJCQkJZFtpKytdID0gczsKPiArCQkJCXMgPSB1cHBlcl8zMl9iaXRzKHIpOwo+ICAJCQl9 Cj4gIAo+ICAJCQlyZWxvY19pbmRleCsrOwo+ICAJCX0KPiAgCj4gLQkJZFtpXSA9IHM7Cj4gLQkJ aSsrOwo+ICsJCWRbaSsrXSA9IHM7Cj4gIAl9Cj4gKwlrdW5tYXAocGFnZSk7Cj4gIAo+ICAJcmV0 ID0gaTkxNV9nZW1fb2JqZWN0X3NldF90b19ndHRfZG9tYWluKHNvLT5vYmosIGZhbHNlKTsKPiAg CWlmIChyZXQpCj4gIAkJcmV0dXJuIHJldDsKPiAgCj4gLQlpZiAocm9kYXRhLT5yZWxvY19pdGVt cyAhPSByZWxvY19pbmRleCkgewo+IC0JCURSTV9FUlJPUigibm90IGFsbCByZWxvY3MgcmVzb2x2 ZWQsICVkIG91dCBvZiAlZFxuIiwKPiAtCQkJICByZWxvY19pbmRleCwgcm9kYXRhLT5yZWxvY19p dGVtcyk7Cj4gKwlpZiAocm9kYXRhLT5yZWxvY1tyZWxvY19pbmRleF0gIT0gLTEpIHsKPiArCQlE Uk1fRVJST1IoIm9ubHkgJWQgcmVsb2NzIHJlc29sdmVkXG4iLCByZWxvY19pbmRleCk7Cj4gIAkJ cmV0dXJuIC1FSU5WQUw7Cj4gIAl9Cj4gIAo+IC0Jc28tPmxlbiA9IHJvZGF0YS0+YmF0Y2hfaXRl bXMgKiA0Owo+IC0KPiAgCXJldHVybiAwOwo+ICB9Cj4gIAo+ICtzdGF0aWMgdm9pZCByZW5kZXJf c3RhdGVfZmluaShzdHJ1Y3QgcmVuZGVyX3N0YXRlICpzbykKPiArewo+ICsJaTkxNV9nZW1fb2Jq ZWN0X2dndHRfdW5waW4oc28tPm9iaik7Cj4gKwlkcm1fZ2VtX29iamVjdF91bnJlZmVyZW5jZSgm c28tPm9iai0+YmFzZSk7Cj4gK30KPiArCj4gIGludCBpOTE1X2dlbV9yZW5kZXJfc3RhdGVfaW5p dChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICpyaW5nKQo+ICB7Cj4gLQljb25zdCBpbnQgZ2VuID0g SU5URUxfSU5GTyhyaW5nLT5kZXYpLT5nZW47Cj4gLQlzdHJ1Y3QgaTkxNV9yZW5kZXJfc3RhdGUg KnNvOwo+IC0JY29uc3Qgc3RydWN0IGludGVsX3JlbmRlcnN0YXRlX3JvZGF0YSAqcm9kYXRhOwo+ ICsJc3RydWN0IHJlbmRlcl9zdGF0ZSBzbzsKPiAgCWludCByZXQ7Cj4gIAo+ICAJaWYgKFdBUk5f T04ocmluZy0+aWQgIT0gUkNTKSkKPiAgCQlyZXR1cm4gLUVOT0VOVDsKPiAgCj4gLQlyb2RhdGEg PSByZW5kZXJfc3RhdGVfZ2V0X3JvZGF0YShyaW5nLT5kZXYsIGdlbik7Cj4gLQlpZiAocm9kYXRh ID09IE5VTEwpCj4gLQkJcmV0dXJuIDA7Cj4gKwlyZXQgPSByZW5kZXJfc3RhdGVfaW5pdCgmc28s IHJpbmctPmRldik7Cj4gKwlpZiAocmV0KQo+ICsJCXJldHVybiByZXQ7Cj4gIAo+IC0Jc28gPSBy ZW5kZXJfc3RhdGVfYWxsb2MocmluZy0+ZGV2KTsKPiAtCWlmIChJU19FUlIoc28pKQo+IC0JCXJl dHVybiBQVFJfRVJSKHNvKTsKPiArCWlmIChzby5yb2RhdGEgPT0gTlVMTCkKPiArCQlyZXR1cm4g MDsKPiAgCj4gLQlyZXQgPSByZW5kZXJfc3RhdGVfc2V0dXAoZ2VuLCByb2RhdGEsIHNvKTsKPiAr CXJldCA9IHJlbmRlcl9zdGF0ZV9zZXR1cCgmc28pOwo+ICAJaWYgKHJldCkKPiAgCQlnb3RvIG91 dDsKPiAgCj4gIAlyZXQgPSByaW5nLT5kaXNwYXRjaF9leGVjYnVmZmVyKHJpbmcsCj4gLQkJCQkJ aTkxNV9nZW1fb2JqX2dndHRfb2Zmc2V0KHNvLT5vYmopLAo+IC0JCQkJCXNvLT5sZW4sCj4gKwkJ CQkJc28uZ2d0dF9vZmZzZXQsCj4gKwkJCQkJc28ucm9kYXRhLT5iYXRjaF9pdGVtcyAqIDQsCj4g IAkJCQkJSTkxNV9ESVNQQVRDSF9TRUNVUkUpOwo+ICAJaWYgKHJldCkKPiAgCQlnb3RvIG91dDsK PiAgCj4gLQlpOTE1X3ZtYV9tb3ZlX3RvX2FjdGl2ZShpOTE1X2dlbV9vYmpfdG9fZ2d0dChzby0+ b2JqKSwgcmluZyk7Cj4gKwlpOTE1X3ZtYV9tb3ZlX3RvX2FjdGl2ZShpOTE1X2dlbV9vYmpfdG9f Z2d0dChzby5vYmopLCByaW5nKTsKPiAgCj4gLQlyZXQgPSBfX2k5MTVfYWRkX3JlcXVlc3Qocmlu ZywgTlVMTCwgc28tPm9iaiwgTlVMTCk7Cj4gKwlyZXQgPSBfX2k5MTVfYWRkX3JlcXVlc3Qocmlu ZywgTlVMTCwgc28ub2JqLCBOVUxMKTsKPiAgCS8qIF9faTkxNV9hZGRfcmVxdWVzdCBtb3ZlcyBv YmplY3QgdG8gaW5hY3RpdmUgaWYgaXQgZmFpbHMgKi8KPiAgb3V0Ogo+IC0JcmVuZGVyX3N0YXRl X2ZyZWUoc28pOwo+ICsJcmVuZGVyX3N0YXRlX2ZpbmkoJnNvKTsKPiAgCXJldHVybiByZXQ7Cj4g IH0KPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmVuZGVyc3RhdGUu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JlbmRlcnN0YXRlLmgKPiBpbmRleCBhNWU3 ODNhOTkyOGEuLmZkNGY2NjIzMWQzMCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9yZW5kZXJzdGF0ZS5oCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cmVuZGVyc3RhdGUuaAo+IEBAIC0yOCw3ICsyOCw2IEBACj4gIAo+ICBzdHJ1Y3QgaW50ZWxfcmVu ZGVyc3RhdGVfcm9kYXRhIHsKPiAgCWNvbnN0IHUzMiAqcmVsb2M7Cj4gLQljb25zdCB1MzIgcmVs b2NfaXRlbXM7Cj4gIAljb25zdCB1MzIgKmJhdGNoOwo+ICAJY29uc3QgdTMyIGJhdGNoX2l0ZW1z Owo+ICB9Owo+IEBAIC00MCw3ICszOSw2IEBAIGV4dGVybiBjb25zdCBzdHJ1Y3QgaW50ZWxfcmVu ZGVyc3RhdGVfcm9kYXRhIGdlbjhfbnVsbF9zdGF0ZTsKPiAgI2RlZmluZSBST19SRU5ERVJTVEFU RShfZykJCQkJCQlcCj4gIAljb25zdCBzdHJ1Y3QgaW50ZWxfcmVuZGVyc3RhdGVfcm9kYXRhIGdl biAjIyBfZyAjIyBfbnVsbF9zdGF0ZSA9IHsgXAo+ICAJCS5yZWxvYyA9IGdlbiAjIyBfZyAjIyBf bnVsbF9zdGF0ZV9yZWxvY3MsCQlcCj4gLQkJLnJlbG9jX2l0ZW1zID0gc2l6ZW9mKGdlbiAjIyBf ZyAjIyBfbnVsbF9zdGF0ZV9yZWxvY3MpLzQsIFwKPiAgCQkuYmF0Y2ggPSBnZW4gIyMgX2cgIyMg X251bGxfc3RhdGVfYmF0Y2gsCQlcCj4gIAkJLmJhdGNoX2l0ZW1zID0gc2l6ZW9mKGdlbiAjIyBf ZyAjIyBfbnVsbF9zdGF0ZV9iYXRjaCkvNCwgXAo+ICAJfQo+IGRpZmYgLS1naXQgYS9kcml2ZXJz L2dwdS9kcm0vaTkxNS9pbnRlbF9yZW5kZXJzdGF0ZV9nZW42LmMgYi9kcml2ZXJzL2dwdS9kcm0v aTkxNS9pbnRlbF9yZW5kZXJzdGF0ZV9nZW42LmMKPiBpbmRleCA3NDA1MzhhZDA5NzcuLjU2YzE0 MjlkOGE2MCAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yZW5kZXJz dGF0ZV9nZW42LmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yZW5kZXJzdGF0 ZV9nZW42LmMKPiBAQCAtNiw2ICs2LDcgQEAgc3RhdGljIGNvbnN0IHUzMiBnZW42X251bGxfc3Rh dGVfcmVsb2NzW10gPSB7Cj4gIAkweDAwMDAwMDJjLAo+ICAJMHgwMDAwMDFlMCwKPiAgCTB4MDAw MDAxZTQsCj4gKwktMSwKPiAgfTsKPiAgCj4gIHN0YXRpYyBjb25zdCB1MzIgZ2VuNl9udWxsX3N0 YXRlX2JhdGNoW10gPSB7Cj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVs X3JlbmRlcnN0YXRlX2dlbjcuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JlbmRlcnN0 YXRlX2dlbjcuYwo+IGluZGV4IDZmYTdmZjJhMTI5OC4uNDE5ZTM1YTdiMGZmIDEwMDY0NAo+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JlbmRlcnN0YXRlX2dlbjcuYwo+ICsrKyBi L2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JlbmRlcnN0YXRlX2dlbjcuYwo+IEBAIC01LDYg KzUsNyBAQCBzdGF0aWMgY29uc3QgdTMyIGdlbjdfbnVsbF9zdGF0ZV9yZWxvY3NbXSA9IHsKPiAg CTB4MDAwMDAwMTAsCj4gIAkweDAwMDAwMDE4LAo+ICAJMHgwMDAwMDFlYywKPiArCS0xLAo+ICB9 Owo+ICAKPiAgc3RhdGljIGNvbnN0IHUzMiBnZW43X251bGxfc3RhdGVfYmF0Y2hbXSA9IHsKPiBk aWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmVuZGVyc3RhdGVfZ2VuOC5j IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmVuZGVyc3RhdGVfZ2VuOC5jCj4gaW5kZXgg NWM4NzU2MTVkNDJhLi43NWVmMWI1ZGU0NWMgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcmVuZGVyc3RhdGVfZ2VuOC5jCj4gKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5 MTUvaW50ZWxfcmVuZGVyc3RhdGVfZ2VuOC5jCj4gQEAgLTUsNiArNSw3IEBAIHN0YXRpYyBjb25z dCB1MzIgZ2VuOF9udWxsX3N0YXRlX3JlbG9jc1tdID0gewo+ICAJMHgwMDAwMDA1MCwKPiAgCTB4 MDAwMDAwNjAsCj4gIAkweDAwMDAwM2VjLAo+ICsJLTEsCj4gIH07Cj4gIAo+ICBzdGF0aWMgY29u c3QgdTMyIGdlbjhfbnVsbF9zdGF0ZV9iYXRjaFtdID0gewo+IC0tIAo+IDIuMC4wCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5n IGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwOi8vbGlzdHMuZnJlZWRl c2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50ZWwtZ2Z4Cg==