From mboxrd@z Thu Jan 1 00:00:00 1970 X-GM-THRID: 6465297812332478464 X-Received: by 10.176.21.100 with SMTP id p33mr12243406uae.72.1505369610535; Wed, 13 Sep 2017 23:13:30 -0700 (PDT) X-BeenThere: outreachy-kernel@googlegroups.com Received: by 10.107.82.21 with SMTP id g21ls25213iob.39.gmail; Wed, 13 Sep 2017 23:13:29 -0700 (PDT) X-Google-Smtp-Source: AOwi7QCPogCMyIaSpKK9xgR2TDkQnhYQz/NYh1js7l+XgqGCMq5iPu/Y0rtHeKntMn9UPB8IbtbE X-Received: by 10.55.165.201 with SMTP id o192mr10668173qke.39.1505369609498; Wed, 13 Sep 2017 23:13:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1505369609; cv=none; d=google.com; s=arc-20160816; b=dM1YdfiTDh4Fw1yJ6BshTJae1OQ/T/zmAAoHlfFh8aJzso1eHdaxY931HbjfJYEgES mAD6l4Sl/kp0c893oE/1ZWCXkmiD0nnboagBM05j1RBe6dLGlC0P4SfuaPNNJptI0fcV xn77YdzShSWESeUNjAL5K0K93pCsj2BAgskapTWBsy3pF6/J7AUwe5d2Ry1DZi4+Blaw jeypqsKGS3Ji/CvoZXUs6yIduQH5So8uQLQWb4AUxkW2aYQ/qNdkk34bBHy3IfeHS+jc Grs5YGxzpXMX+kJtzlEZrxHGUFG0elsIF0oLLDBbIhvSzX4d7w25CB5lgQW9cFaT5xLa IDnA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=mime-version:message-id:date:references:in-reply-to:subject:cc:to :from:arc-authentication-results; bh=tpl8Wvxzul9lDTZzhV5nQCIks4M8ynR5k4gPNuBTkGo=; b=gsRqy8GQvWdvjZDxMKt6L6Oz1tCdR1x7/9eSJJV4Q5468SLjqPVLlInwgF/BFGJN6Y XG09U1mnVQD1kQ7mNJbGZur0R6yG1GERgPRZj5duIQ9+UTkZF4UoSigC102NQYbJwQCG IaJoKKpokZMSE/20X/LFdqVw4/XzK9fRVOCg+35TSzhK9FnbCVgDj4ssVNCsW/Wkycn8 h7Sxx0nHtS1A8dubDgOzwt9rTAmGiKMmLzWBDZbe7J7XEEqGmj+qz7Fjuv9uSELL2pxa rn1FUq26J2NHesVCs4tiRePkIM3cO0+35lPLrPDyOpOiWhwKMFdFUVncDoPof2efS0Li cE6g== ARC-Authentication-Results: i=1; gmr-mx.google.com; spf=pass (google.com: domain of jani.nikula@intel.com designates 134.134.136.24 as permitted sender) smtp.mailfrom=jani.nikula@intel.com Return-Path: Received: from mga09.intel.com (mga09.intel.com. [134.134.136.24]) by gmr-mx.google.com with ESMTPS id q65si1555591pfj.8.2017.09.13.23.13.29 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 13 Sep 2017 23:13:29 -0700 (PDT) Received-SPF: pass (google.com: domain of jani.nikula@intel.com designates 134.134.136.24 as permitted sender) client-ip=134.134.136.24; Authentication-Results: gmr-mx.google.com; spf=pass (google.com: domain of jani.nikula@intel.com designates 134.134.136.24 as permitted sender) smtp.mailfrom=jani.nikula@intel.com Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga102.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 13 Sep 2017 23:13:28 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.42,391,1500966000"; d="scan'208";a="900116311" Received: from jnikula-mobl2.fi.intel.com (HELO localhost) ([10.237.72.62]) by FMSMGA003.fm.intel.com with ESMTP; 13 Sep 2017 23:13:27 -0700 From: Jani Nikula To: Julia Lawall , Meghana Madhyastha Cc: outreachy-kernel@googlegroups.com, dri-devel@lists.freedesktop.org Subject: Re: [Outreachy kernel] [PATCH v2 3/3] drm: Remove assignment in if condition In-Reply-To: References: <20170913161531.GA3239@meghana-HP-Pavilion-Notebook> Date: Thu, 14 Sep 2017 09:13:04 +0300 Message-ID: <87k211iz9r.fsf@nikula.org> MIME-Version: 1.0 Content-Type: text/plain On Wed, 13 Sep 2017, Julia Lawall wrote: > On Wed, 13 Sep 2017, Meghana Madhyastha wrote: > >> Move the assignment so that it happens before the if >> condition. This results in syntax which is easier to read. > > It would be nice to mention the merged conditionals in the log message. Either way, Reviewed-by: Jani Nikula > > julia > >> Found by checkpath.pl >> >> Signed-off-by: Meghana Madhyastha >> --- >> drivers/gpu/drm/drm_agpsupport.c | 31 ++++++++++++++++++------------- >> 1 file changed, 18 insertions(+), 13 deletions(-) >> >> diff --git a/drivers/gpu/drm/drm_agpsupport.c b/drivers/gpu/drm/drm_agpsupport.c >> index 993e486..737f028 100644 >> --- a/drivers/gpu/drm/drm_agpsupport.c >> +++ b/drivers/gpu/drm/drm_agpsupport.c >> @@ -100,7 +100,8 @@ int drm_agp_acquire(struct drm_device *dev) >> return -ENODEV; >> if (dev->agp->acquired) >> return -EBUSY; >> - if (!(dev->agp->bridge = agp_backend_acquire(dev->pdev))) >> + dev->agp->bridge = agp_backend_acquire(dev->pdev); >> + if (!dev->agp->bridge) >> return -ENODEV; >> dev->agp->acquired = 1; >> return 0; >> @@ -200,12 +201,14 @@ int drm_agp_alloc(struct drm_device *dev, struct drm_agp_buffer *request) >> >> if (!dev->agp || !dev->agp->acquired) >> return -EINVAL; >> - if (!(entry = kzalloc(sizeof(*entry), GFP_KERNEL))) >> + entry = kzalloc(sizeof(*entry), GFP_KERNEL); >> + if (!entry) >> return -ENOMEM; >> >> pages = (request->size + PAGE_SIZE - 1) / PAGE_SIZE; >> type = (u32) request->type; >> - if (!(memory = agp_allocate_memory(dev->agp->bridge, pages, type))) { >> + memory = agp_allocate_memory(dev->agp->bridge, pages, type); >> + if (!memory) { >> kfree(entry); >> return -ENOMEM; >> } >> @@ -272,9 +275,8 @@ int drm_agp_unbind(struct drm_device *dev, struct drm_agp_binding *request) >> >> if (!dev->agp || !dev->agp->acquired) >> return -EINVAL; >> - if (!(entry = drm_agp_lookup_entry(dev, request->handle))) >> - return -EINVAL; >> - if (!entry->bound) >> + entry = drm_agp_lookup_entry(dev, request->handle); >> + if (!entry || !entry->bound) >> return -EINVAL; >> ret = drm_unbind_agp(entry->memory); >> if (ret == 0) >> @@ -313,12 +315,12 @@ int drm_agp_bind(struct drm_device *dev, struct drm_agp_binding *request) >> >> if (!dev->agp || !dev->agp->acquired) >> return -EINVAL; >> - if (!(entry = drm_agp_lookup_entry(dev, request->handle))) >> - return -EINVAL; >> - if (entry->bound) >> + entry = drm_agp_lookup_entry(dev, request->handle); >> + if (!entry || entry->bound) >> return -EINVAL; >> page = (request->offset + PAGE_SIZE - 1) / PAGE_SIZE; >> - if ((retcode = drm_bind_agp(entry->memory, page))) >> + retcode = drm_bind_agp(entry->memory, page); >> + if (retcode) >> return retcode; >> entry->bound = dev->agp->base + (page << PAGE_SHIFT); >> DRM_DEBUG("base = 0x%lx entry->bound = 0x%lx\n", >> @@ -356,7 +358,8 @@ int drm_agp_free(struct drm_device *dev, struct drm_agp_buffer *request) >> >> if (!dev->agp || !dev->agp->acquired) >> return -EINVAL; >> - if (!(entry = drm_agp_lookup_entry(dev, request->handle))) >> + entry = drm_agp_lookup_entry(dev, request->handle); >> + if (!entry) >> return -EINVAL; >> if (entry->bound) >> drm_unbind_agp(entry->memory); >> @@ -394,11 +397,13 @@ struct drm_agp_head *drm_agp_init(struct drm_device *dev) >> { >> struct drm_agp_head *head = NULL; >> >> - if (!(head = kzalloc(sizeof(*head), GFP_KERNEL))) >> + head = kzalloc(sizeof(*head), GFP_KERNEL); >> + if (!head) >> return NULL; >> head->bridge = agp_find_bridge(dev->pdev); >> if (!head->bridge) { >> - if (!(head->bridge = agp_backend_acquire(dev->pdev))) { >> + head->bridge = agp_backend_acquire(dev->pdev); >> + if (!head->bridge) { >> kfree(head); >> return NULL; >> } >> -- >> 2.7.4 >> >> -- >> You received this message because you are subscribed to the Google Groups "outreachy-kernel" group. >> To unsubscribe from this group and stop receiving emails from it, send an email to outreachy-kernel+unsubscribe@googlegroups.com. >> To post to this group, send email to outreachy-kernel@googlegroups.com. >> To view this discussion on the web visit https://groups.google.com/d/msgid/outreachy-kernel/20170913161531.GA3239%40meghana-HP-Pavilion-Notebook. >> For more options, visit https://groups.google.com/d/optout. >> -- Jani Nikula, Intel Open Source Technology Center From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jani Nikula Subject: Re: [Outreachy kernel] [PATCH v2 3/3] drm: Remove assignment in if condition Date: Thu, 14 Sep 2017 09:13:04 +0300 Message-ID: <87k211iz9r.fsf@nikula.org> References: <20170913161531.GA3239@meghana-HP-Pavilion-Notebook> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id A9F386E947 for ; Thu, 14 Sep 2017 06:13:29 +0000 (UTC) In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Julia Lawall , Meghana Madhyastha Cc: outreachy-kernel@googlegroups.com, dri-devel@lists.freedesktop.org List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCAxMyBTZXAgMjAxNywgSnVsaWEgTGF3YWxsIDxqdWxpYS5sYXdhbGxAbGlwNi5mcj4g d3JvdGU6Cj4gT24gV2VkLCAxMyBTZXAgMjAxNywgTWVnaGFuYSBNYWRoeWFzdGhhIHdyb3RlOgo+ Cj4+IE1vdmUgdGhlIGFzc2lnbm1lbnQgc28gdGhhdCBpdCBoYXBwZW5zIGJlZm9yZSB0aGUgaWYK Pj4gY29uZGl0aW9uLiBUaGlzIHJlc3VsdHMgaW4gc3ludGF4IHdoaWNoIGlzIGVhc2llciB0byBy ZWFkLgo+Cj4gSXQgd291bGQgYmUgbmljZSB0byBtZW50aW9uIHRoZSBtZXJnZWQgY29uZGl0aW9u YWxzIGluIHRoZSBsb2cgbWVzc2FnZS4KCkVpdGhlciB3YXksCgpSZXZpZXdlZC1ieTogSmFuaSBO aWt1bGEgPGphbmkubmlrdWxhQGludGVsLmNvbT4KCj4KPiBqdWxpYQo+Cj4+IEZvdW5kIGJ5IGNo ZWNrcGF0aC5wbAo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBNZWdoYW5hIE1hZGh5YXN0aGEgPG1lZ2hh bmEubWFkaHlhc3RoYUBnbWFpbC5jb20+Cj4+IC0tLQo+PiAgZHJpdmVycy9ncHUvZHJtL2RybV9h Z3BzdXBwb3J0LmMgfCAzMSArKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tCj4+ICAxIGZp bGUgY2hhbmdlZCwgMTggaW5zZXJ0aW9ucygrKSwgMTMgZGVsZXRpb25zKC0pCj4+Cj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2FncHN1cHBvcnQuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1fYWdwc3VwcG9ydC5jCj4+IGluZGV4IDk5M2U0ODYuLjczN2YwMjggMTAwNjQ0Cj4+IC0t LSBhL2RyaXZlcnMvZ3B1L2RybS9kcm1fYWdwc3VwcG9ydC5jCj4+ICsrKyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1fYWdwc3VwcG9ydC5jCj4+IEBAIC0xMDAsNyArMTAwLDggQEAgaW50IGRybV9hZ3Bf YWNxdWlyZShzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+PiAgCQlyZXR1cm4gLUVOT0RFVjsKPj4g IAlpZiAoZGV2LT5hZ3AtPmFjcXVpcmVkKQo+PiAgCQlyZXR1cm4gLUVCVVNZOwo+PiAtCWlmICgh KGRldi0+YWdwLT5icmlkZ2UgPSBhZ3BfYmFja2VuZF9hY3F1aXJlKGRldi0+cGRldikpKQo+PiAr CWRldi0+YWdwLT5icmlkZ2UgPSBhZ3BfYmFja2VuZF9hY3F1aXJlKGRldi0+cGRldik7Cj4+ICsJ aWYgKCFkZXYtPmFncC0+YnJpZGdlKQo+PiAgCQlyZXR1cm4gLUVOT0RFVjsKPj4gIAlkZXYtPmFn cC0+YWNxdWlyZWQgPSAxOwo+PiAgCXJldHVybiAwOwo+PiBAQCAtMjAwLDEyICsyMDEsMTQgQEAg aW50IGRybV9hZ3BfYWxsb2Moc3RydWN0IGRybV9kZXZpY2UgKmRldiwgc3RydWN0IGRybV9hZ3Bf YnVmZmVyICpyZXF1ZXN0KQo+Pgo+PiAgCWlmICghZGV2LT5hZ3AgfHwgIWRldi0+YWdwLT5hY3F1 aXJlZCkKPj4gIAkJcmV0dXJuIC1FSU5WQUw7Cj4+IC0JaWYgKCEoZW50cnkgPSBremFsbG9jKHNp emVvZigqZW50cnkpLCBHRlBfS0VSTkVMKSkpCj4+ICsJZW50cnkgPSBremFsbG9jKHNpemVvZigq ZW50cnkpLCBHRlBfS0VSTkVMKTsKPj4gKwlpZiAoIWVudHJ5KQo+PiAgCQlyZXR1cm4gLUVOT01F TTsKPj4KPj4gIAlwYWdlcyA9IChyZXF1ZXN0LT5zaXplICsgUEFHRV9TSVpFIC0gMSkgLyBQQUdF X1NJWkU7Cj4+ICAJdHlwZSA9ICh1MzIpIHJlcXVlc3QtPnR5cGU7Cj4+IC0JaWYgKCEobWVtb3J5 ID0gYWdwX2FsbG9jYXRlX21lbW9yeShkZXYtPmFncC0+YnJpZGdlLCBwYWdlcywgdHlwZSkpKSB7 Cj4+ICsJbWVtb3J5ID0gYWdwX2FsbG9jYXRlX21lbW9yeShkZXYtPmFncC0+YnJpZGdlLCBwYWdl cywgdHlwZSk7Cj4+ICsJaWYgKCFtZW1vcnkpIHsKPj4gIAkJa2ZyZWUoZW50cnkpOwo+PiAgCQly ZXR1cm4gLUVOT01FTTsKPj4gIAl9Cj4+IEBAIC0yNzIsOSArMjc1LDggQEAgaW50IGRybV9hZ3Bf dW5iaW5kKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1fYWdwX2JpbmRpbmcgKnJl cXVlc3QpCj4+Cj4+ICAJaWYgKCFkZXYtPmFncCB8fCAhZGV2LT5hZ3AtPmFjcXVpcmVkKQo+PiAg CQlyZXR1cm4gLUVJTlZBTDsKPj4gLQlpZiAoIShlbnRyeSA9IGRybV9hZ3BfbG9va3VwX2VudHJ5 KGRldiwgcmVxdWVzdC0+aGFuZGxlKSkpCj4+IC0JCXJldHVybiAtRUlOVkFMOwo+PiAtCWlmICgh ZW50cnktPmJvdW5kKQo+PiArCWVudHJ5ID0gZHJtX2FncF9sb29rdXBfZW50cnkoZGV2LCByZXF1 ZXN0LT5oYW5kbGUpOwo+PiArCWlmICghZW50cnkgfHwgIWVudHJ5LT5ib3VuZCkKPj4gIAkJcmV0 dXJuIC1FSU5WQUw7Cj4+ICAJcmV0ID0gZHJtX3VuYmluZF9hZ3AoZW50cnktPm1lbW9yeSk7Cj4+ ICAJaWYgKHJldCA9PSAwKQo+PiBAQCAtMzEzLDEyICszMTUsMTIgQEAgaW50IGRybV9hZ3BfYmlu ZChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2LCBzdHJ1Y3QgZHJtX2FncF9iaW5kaW5nICpyZXF1ZXN0 KQo+Pgo+PiAgCWlmICghZGV2LT5hZ3AgfHwgIWRldi0+YWdwLT5hY3F1aXJlZCkKPj4gIAkJcmV0 dXJuIC1FSU5WQUw7Cj4+IC0JaWYgKCEoZW50cnkgPSBkcm1fYWdwX2xvb2t1cF9lbnRyeShkZXYs IHJlcXVlc3QtPmhhbmRsZSkpKQo+PiAtCQlyZXR1cm4gLUVJTlZBTDsKPj4gLQlpZiAoZW50cnkt PmJvdW5kKQo+PiArCWVudHJ5ID0gZHJtX2FncF9sb29rdXBfZW50cnkoZGV2LCByZXF1ZXN0LT5o YW5kbGUpOwo+PiArCWlmICghZW50cnkgfHwgZW50cnktPmJvdW5kKQo+PiAgCQlyZXR1cm4gLUVJ TlZBTDsKPj4gIAlwYWdlID0gKHJlcXVlc3QtPm9mZnNldCArIFBBR0VfU0laRSAtIDEpIC8gUEFH RV9TSVpFOwo+PiAtCWlmICgocmV0Y29kZSA9IGRybV9iaW5kX2FncChlbnRyeS0+bWVtb3J5LCBw YWdlKSkpCj4+ICsJcmV0Y29kZSA9IGRybV9iaW5kX2FncChlbnRyeS0+bWVtb3J5LCBwYWdlKTsK Pj4gKwlpZiAocmV0Y29kZSkKPj4gIAkJcmV0dXJuIHJldGNvZGU7Cj4+ICAJZW50cnktPmJvdW5k ID0gZGV2LT5hZ3AtPmJhc2UgKyAocGFnZSA8PCBQQUdFX1NISUZUKTsKPj4gIAlEUk1fREVCVUco ImJhc2UgPSAweCVseCBlbnRyeS0+Ym91bmQgPSAweCVseFxuIiwKPj4gQEAgLTM1Niw3ICszNTgs OCBAQCBpbnQgZHJtX2FncF9mcmVlKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHN0cnVjdCBkcm1f YWdwX2J1ZmZlciAqcmVxdWVzdCkKPj4KPj4gIAlpZiAoIWRldi0+YWdwIHx8ICFkZXYtPmFncC0+ YWNxdWlyZWQpCj4+ICAJCXJldHVybiAtRUlOVkFMOwo+PiAtCWlmICghKGVudHJ5ID0gZHJtX2Fn cF9sb29rdXBfZW50cnkoZGV2LCByZXF1ZXN0LT5oYW5kbGUpKSkKPj4gKwllbnRyeSA9IGRybV9h Z3BfbG9va3VwX2VudHJ5KGRldiwgcmVxdWVzdC0+aGFuZGxlKTsKPj4gKwlpZiAoIWVudHJ5KQo+ PiAgCQlyZXR1cm4gLUVJTlZBTDsKPj4gIAlpZiAoZW50cnktPmJvdW5kKQo+PiAgCQlkcm1fdW5i aW5kX2FncChlbnRyeS0+bWVtb3J5KTsKPj4gQEAgLTM5NCwxMSArMzk3LDEzIEBAIHN0cnVjdCBk cm1fYWdwX2hlYWQgKmRybV9hZ3BfaW5pdChzdHJ1Y3QgZHJtX2RldmljZSAqZGV2KQo+PiAgewo+ PiAgCXN0cnVjdCBkcm1fYWdwX2hlYWQgKmhlYWQgPSBOVUxMOwo+Pgo+PiAtCWlmICghKGhlYWQg PSBremFsbG9jKHNpemVvZigqaGVhZCksIEdGUF9LRVJORUwpKSkKPj4gKwloZWFkID0ga3phbGxv YyhzaXplb2YoKmhlYWQpLCBHRlBfS0VSTkVMKTsKPj4gKwlpZiAoIWhlYWQpCj4+ICAJCXJldHVy biBOVUxMOwo+PiAgCWhlYWQtPmJyaWRnZSA9IGFncF9maW5kX2JyaWRnZShkZXYtPnBkZXYpOwo+ PiAgCWlmICghaGVhZC0+YnJpZGdlKSB7Cj4+IC0JCWlmICghKGhlYWQtPmJyaWRnZSA9IGFncF9i YWNrZW5kX2FjcXVpcmUoZGV2LT5wZGV2KSkpIHsKPj4gKwkJaGVhZC0+YnJpZGdlID0gYWdwX2Jh Y2tlbmRfYWNxdWlyZShkZXYtPnBkZXYpOwo+PiArCQlpZiAoIWhlYWQtPmJyaWRnZSkgewo+PiAg CQkJa2ZyZWUoaGVhZCk7Cj4+ICAJCQlyZXR1cm4gTlVMTDsKPj4gIAkJfQo+PiAtLQo+PiAyLjcu NAo+Pgo+PiAtLQo+PiBZb3UgcmVjZWl2ZWQgdGhpcyBtZXNzYWdlIGJlY2F1c2UgeW91IGFyZSBz dWJzY3JpYmVkIHRvIHRoZSBHb29nbGUgR3JvdXBzICJvdXRyZWFjaHkta2VybmVsIiBncm91cC4K Pj4gVG8gdW5zdWJzY3JpYmUgZnJvbSB0aGlzIGdyb3VwIGFuZCBzdG9wIHJlY2VpdmluZyBlbWFp bHMgZnJvbSBpdCwgc2VuZCBhbiBlbWFpbCB0byBvdXRyZWFjaHkta2VybmVsK3Vuc3Vic2NyaWJl QGdvb2dsZWdyb3Vwcy5jb20uCj4+IFRvIHBvc3QgdG8gdGhpcyBncm91cCwgc2VuZCBlbWFpbCB0 byBvdXRyZWFjaHkta2VybmVsQGdvb2dsZWdyb3Vwcy5jb20uCj4+IFRvIHZpZXcgdGhpcyBkaXNj dXNzaW9uIG9uIHRoZSB3ZWIgdmlzaXQgaHR0cHM6Ly9ncm91cHMuZ29vZ2xlLmNvbS9kL21zZ2lk L291dHJlYWNoeS1rZXJuZWwvMjAxNzA5MTMxNjE1MzEuR0EzMjM5JTQwbWVnaGFuYS1IUC1QYXZp bGlvbi1Ob3RlYm9vay4KPj4gRm9yIG1vcmUgb3B0aW9ucywgdmlzaXQgaHR0cHM6Ly9ncm91cHMu Z29vZ2xlLmNvbS9kL29wdG91dC4KPj4KCi0tIApKYW5pIE5pa3VsYSwgSW50ZWwgT3BlbiBTb3Vy Y2UgVGVjaG5vbG9neSBDZW50ZXIKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlzdHMuZnJlZWRl c2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8v ZHJpLWRldmVsCg==