From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11251 invoked by alias); 19 Apr 2017 18:04:51 -0000 Mailing-List: contact binutils-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: binutils-owner@sourceware.org Received: (qmail 11221 invoked by uid 89); 19 Apr 2017 18:04:50 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.1 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM,SPF_PASS autolearn=ham version=3.3.2 spammy= X-HELO: mail-qt0-f177.google.com Received: from mail-qt0-f177.google.com (HELO mail-qt0-f177.google.com) (209.85.216.177) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 19 Apr 2017 18:04:48 +0000 Received: by mail-qt0-f177.google.com with SMTP id y33so26449592qta.2 for ; Wed, 19 Apr 2017 11:04:50 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=l3d46BB2gBoocUCTZFaGMFwPaCsTuh6VS5tg8nCdoxU=; b=RQiRdY1tS8ijk8ND8fui4l9UL02LencHEvXDNH6Ytr0iTUeg+dP+o6lmFQRkRoabZ2 kbxTzfHedi0Kfq+jJw0MQzV2b2D8upFuJCw5kk1K10nQJQPlCQNAvGKd+tjCBouphEle 9zmTu9UuJX9od1TiBjjwr3LBAvZw3wGUqQAwWCR/uLLDxSvxaE3l1UEWQ21Xhzx5TDgb uULck+nN5jmpjWcNItk+mYF08BoQLubr+G/r6UZw8tRfdULr+9ojw+XeAqKEj5B3JDvE n7EKgXKu9vfn49QaJsh3d5DcTQi/kJpRX7eN1xLLt+RLKlfdfbVSQ/5h6J6fHV82iRAn zMsA== X-Gm-Message-State: AN3rC/7LkLwClXyS9okR9M7WkCAJAU9I2fJPwZqAkkd4ugLQCQ7B0OqO Zkt9cRDsOcAUxFR5ZXcO1Jjqxl1khw== X-Received: by 10.200.49.229 with SMTP id i34mr3783313qte.259.1492625088767; Wed, 19 Apr 2017 11:04:48 -0700 (PDT) MIME-Version: 1.0 Received: by 10.55.48.197 with HTTP; Wed, 19 Apr 2017 11:04:48 -0700 (PDT) In-Reply-To: <20170419004855.GY24006@bubble.grove.modra.org> References: <20170414154456.GA22259@intel.com> <20170419004855.GY24006@bubble.grove.modra.org> From: "H.J. Lu" Date: Wed, 19 Apr 2017 18:04:00 -0000 Message-ID: Subject: Re: [PATCH] PR ld/21382: Handle symbol defined in IR and referenced in DSO To: Alan Modra Cc: Binutils Content-Type: multipart/mixed; boundary=001a113a3146335ecb054d88dc12 X-IsSubscribed: yes X-SW-Source: 2017-04/txt/msg00165.txt.bz2 --001a113a3146335ecb054d88dc12 Content-Type: text/plain; charset=UTF-8 Content-length: 818 On Tue, Apr 18, 2017 at 5:48 PM, Alan Modra wrote: > On Fri, Apr 14, 2017 at 08:44:56AM -0700, H.J. Lu wrote: > >> +++ b/bfd/elflink.c >> + /* Preserve re_def_dynamic_ref so that this symbol will > > Comment typo. > >> +++ b/include/bfdlink.h >> + /* Symbol is defined in an IR object and referenced in a dynamic >> + object. */ >> + unsigned int ir_def_dynamic_ref : 1; > > The comment here isn't completely true. The flag will only be set if > the dynamic object is linked *after* the IR object, won't it? I think > it is worth stating that, or fixing your plugin_notice change to also > cover the case where the IR object is linked after a dynamic object. > Here is the updated patch. I updated comments and renamed ir_def_dynamic_ref to dynamic_ref_after_ir_def. -- H.J. --001a113a3146335ecb054d88dc12 Content-Type: text/x-patch; charset=US-ASCII; name="0001-Handle-symbol-defined-in-IR-and-referenced-in-DSO.patch" Content-Disposition: attachment; filename="0001-Handle-symbol-defined-in-IR-and-referenced-in-DSO.patch" Content-Transfer-Encoding: base64 X-Attachment-Id: f_j1paep980 Content-length: 9167 RnJvbSAyOTQ5ZWQ2MTI4NDlmZjlmOTM2YzVmYjI1NzBmNjdjZjhhNWNjNTUz IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiAiSC5KLiBMdSIgPGhq bC50b29sc0BnbWFpbC5jb20+CkRhdGU6IFRodSwgMTMgQXByIDIwMTcgMTI6 MTU6MzYgLTA3MDAKU3ViamVjdDogW1BBVENIXSBIYW5kbGUgc3ltYm9sIGRl ZmluZWQgaW4gSVIgYW5kIHJlZmVyZW5jZWQgaW4gRFNPCgpXZSBuZWVkIHRv IG1ha2UgYW4gSVIgc3ltYm9sIHZpc2libGUgaWYgaXQgaXMgZGVmaW5lZCBp biBhbiBJUiBvYmplY3QKYW5kIHJlZmVyZW5jZWQgaW4gYSBkeW5hbWljIG9i amVjdC4gIFdoZW4gLS1hcy1uZWVkZWQgaXMgdXNlZCwgc2luY2UKbGlua2Vy IHJlbW92ZXMgdGhlIElSIHN5bWJvbCByZWZlcmVuY2Ugb2YgdGhlIGR5bmFt aWMgb2JqZWN0IGlmIHRoZQpkeW5hbWljIG9iamVjdCBpc24ndCBuZWVkZWQg aW4gdGhlIGZpcnN0IHBhc3MsIHRoZSBJUiBkZWZpbml0aW9uIGlzbid0CnZp c2libGUgdG8gdGhlIGR5bmFtaWMgb2JqZWN0IGV2ZW4gaWYgdGhlIGR5bmFt aWMgb2JqZWN0IGJlY29tZXMgbmVlZGVkCmluIHRoZSBzZWNvbmQgcGFzcy4g IEFkZCBkeW5hbWljX3JlZl9hZnRlcl9pcl9kZWYgdG8gYmZkX2xpbmtfaGFz aF9lbnRyeQp0byB0cmFjayBJUiBzeW1ib2wgd2hpY2ggaXMgZGVmaW5lZCBp biBhbiBJUiBvYmplY3QgYW5kIGxhdGVyIHJlZmVyZW5jZWQKaW4gYSBkeW5h bWljIG9iamVjdC4gIGR5bmFtaWNfcmVmX2FmdGVyX2lyX2RlZiBpcyBwcmVz ZXJ2ZWQgd2hlbiByZXN0b3JpbmcKdGhlIHN5bWJvbCB0YWJsZSBmb3IgdW5u ZWVkZWQgZHluYW1pYyBvYmplY3QuCgpiZmQvCgoJUFIgbGQvMjEzODIKCSog ZWxmbGluay5jIChlbGZfbGlua19hZGRfb2JqZWN0X3N5bWJvbHMpOiBQcmVz ZXJ2ZQoJcmVfZGVmX2R5bmFtaWNfcmVmIHdoZW4gcmVzdG9yaW5nIHRoZSBz eW1ib2wgdGFibGUgZm9yIHVubmVlZGVkCglkeW5hbWljIG9iamVjdC4KCmlu Y2x1ZGUvCgoJUFIgbGQvMjEzODIKCSogYmZkbGluay5oIChiZmRfbGlua19o YXNoX2VudHJ5KTogQWRkIGR5bmFtaWNfcmVmX2FmdGVyX2lyX2RlZi4KCmxk LwoKCVBSIGxkLzIxMzgyCgkqIHBsdWdpbi5jIChpc192aXNpYmxlX2Zyb21f b3V0c2lkZSk6IFN5bWJvbCBtYXkgYmUgdmlzaWJsZQoJZnJvbSBvdXRzaWRl IGlmIGR5bmFtaWNfcmVmX2FmdGVyX2lyX2RlZiBpcyBzZXQuCgkocGx1Z2lu X25vdGljZSk6IFNldCBkeW5hbWljX3JlZl9hZnRlcl9pcl9kZWYgaWYgdGhl IHN5bWJvbCBpcwoJZGVmaW5lZCBpbiBhbiBJUiBvYmplY3QgYW5kIHJlZmVy ZW5jZWQgaW4gYSBkeW5hbWljIG9iamVjdC4KCSogdGVzdHN1aXRlL2xkLXBs dWdpbi9sdG8uZXhwOiBSdW4gUFIgbGQvMjEzODIgdGVzdHMuCgkqIHRlc3Rz dWl0ZS9sZC1wbHVnaW4vcHIyMTM4MmEuYzogTmV3IGZpbGUuCgkqIHRlc3Rz dWl0ZS9sZC1wbHVnaW4vcHIyMTM4MmIuYzogTGlrZXdpc2UuCi0tLQogYmZk L2VsZmxpbmsuYyAgICAgICAgICAgICAgICAgICAgIHwgIDYgKysrKysrCiBp bmNsdWRlL2JmZGxpbmsuaCAgICAgICAgICAgICAgICAgfCAgNCArKysrCiBs ZC9wbHVnaW4uYyAgICAgICAgICAgICAgICAgICAgICAgfCAyMyArKysrKysr KysrKysrKysrKy0tLS0tLQogbGQvdGVzdHN1aXRlL2xkLXBsdWdpbi9sdG8u ZXhwICAgIHwgIDkgKysrKysrKysrCiBsZC90ZXN0c3VpdGUvbGQtcGx1Z2lu L3ByMjEzODJhLmMgfCAxNyArKysrKysrKysrKysrKysrKwogbGQvdGVzdHN1 aXRlL2xkLXBsdWdpbi9wcjIxMzgyYi5jIHwgIDcgKysrKysrKwogNiBmaWxl cyBjaGFuZ2VkLCA2MCBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQog Y3JlYXRlIG1vZGUgMTAwNjQ0IGxkL3Rlc3RzdWl0ZS9sZC1wbHVnaW4vcHIy MTM4MmEuYwogY3JlYXRlIG1vZGUgMTAwNjQ0IGxkL3Rlc3RzdWl0ZS9sZC1w bHVnaW4vcHIyMTM4MmIuYwoKZGlmZiAtLWdpdCBhL2JmZC9lbGZsaW5rLmMg Yi9iZmQvZWxmbGluay5jCmluZGV4IDBhZGQwMWIuLjk3MmI2ZjggMTAwNjQ0 Ci0tLSBhL2JmZC9lbGZsaW5rLmMKKysrIGIvYmZkL2VsZmxpbmsuYwpAQCAt NDkzMiw2ICs0OTMyLDcgQEAgZXJyb3JfZnJlZV9keW46CiAJICBzdHJ1Y3Qg ZWxmX2xpbmtfaGFzaF9lbnRyeSAqaDsKIAkgIGJmZF9zaXplX3R5cGUgc2l6 ZTsKIAkgIHVuc2lnbmVkIGludCBhbGlnbm1lbnRfcG93ZXI7CisJICB1bnNp Z25lZCBpbnQgZHluYW1pY19yZWZfYWZ0ZXJfaXJfZGVmOwogCiAJICBmb3Ig KHAgPSBodGFiLT5yb290LnRhYmxlLnRhYmxlW2ldOyBwICE9IE5VTEw7IHAg PSBwLT5uZXh0KQogCSAgICB7CkBAIC00OTUzLDYgKzQ5NTQsMTAgQEAgZXJy b3JfZnJlZV9keW46CiAJCSAgc2l6ZSA9IDA7CiAJCSAgYWxpZ25tZW50X3Bv d2VyID0gMDsKIAkJfQorCSAgICAgIC8qIFByZXNlcnZlIGR5bmFtaWNfcmVm X2FmdGVyX2lyX2RlZiBzbyB0aGF0IHRoaXMgc3ltYm9sCisJCSB3aWxsIGJl IGV4cG9ydGVkIHdoZW4gdGhlIGR5bmFtaWMgbGliIGJlY29tZXMgbmVlZGVk CisJCSBpbiB0aGUgc2Vjb25kIHBhc3MuICAqLworCSAgICAgIGR5bmFtaWNf cmVmX2FmdGVyX2lyX2RlZiA9IGgtPnJvb3QuZHluYW1pY19yZWZfYWZ0ZXJf aXJfZGVmOwogCSAgICAgIG1lbWNweSAocCwgb2xkX2VudCwgaHRhYi0+cm9v dC50YWJsZS5lbnRzaXplKTsKIAkgICAgICBvbGRfZW50ID0gKGNoYXIgKikg b2xkX2VudCArIGh0YWItPnJvb3QudGFibGUuZW50c2l6ZTsKIAkgICAgICBo ID0gKHN0cnVjdCBlbGZfbGlua19oYXNoX2VudHJ5ICopIHA7CkBAIC00OTY5 LDYgKzQ5NzQsNyBAQCBlcnJvcl9mcmVlX2R5bjoKIAkJICBpZiAoYWxpZ25t ZW50X3Bvd2VyID4gaC0+cm9vdC51LmMucC0+YWxpZ25tZW50X3Bvd2VyKQog CQkgICAgaC0+cm9vdC51LmMucC0+YWxpZ25tZW50X3Bvd2VyID0gYWxpZ25t ZW50X3Bvd2VyOwogCQl9CisJICAgICAgaC0+cm9vdC5keW5hbWljX3JlZl9h ZnRlcl9pcl9kZWYgPSBkeW5hbWljX3JlZl9hZnRlcl9pcl9kZWY7CiAJICAg IH0KIAl9CiAKZGlmZiAtLWdpdCBhL2luY2x1ZGUvYmZkbGluay5oIGIvaW5j bHVkZS9iZmRsaW5rLmgKaW5kZXggMThkZWEwYy4uY2I0YmFkOSAxMDA2NDQK LS0tIGEvaW5jbHVkZS9iZmRsaW5rLmgKKysrIGIvaW5jbHVkZS9iZmRsaW5r LmgKQEAgLTEwNCw2ICsxMDQsMTAgQEAgc3RydWN0IGJmZF9saW5rX2hhc2hf ZW50cnkKICAgICAgSVIgb2JqZWN0IGZpbGUuICAqLwogICB1bnNpZ25lZCBp bnQgbm9uX2lyX3JlZiA6IDE7CiAKKyAgLyogU3ltYm9sIGlzIHJlZmVyZW5j ZWQgaW4gYSBkeW5hbWljIG9iamVjdCBhZnRlciBpdCBoYXMgYmVlbiBkZWZp bmVkCisgICAgIGluIGFuIElSIG9iamVjdC4gICovCisgIHVuc2lnbmVkIGlu dCBkeW5hbWljX3JlZl9hZnRlcl9pcl9kZWYgOiAxOworCiAgIC8qIFN5bWJv bCBpcyBhIGJ1aWx0LWluIGRlZmluZS4gIFRoZXNlIHdpbGwgYmUgb3ZlcnJp ZGRlbiBieSBQUk9WSURFCiAgICAgIGluIGEgbGlua2VyIHNjcmlwdC4gICov CiAgIHVuc2lnbmVkIGludCBsaW5rZXJfZGVmIDogMTsKZGlmZiAtLWdpdCBh L2xkL3BsdWdpbi5jIGIvbGQvcGx1Z2luLmMKaW5kZXggMDNlMmU2OS4uMTY0 YjVkYiAxMDA2NDQKLS0tIGEvbGQvcGx1Z2luLmMKKysrIGIvbGQvcGx1Z2lu LmMKQEAgLTYyOSw3ICs2MjksOSBAQCBpc192aXNpYmxlX2Zyb21fb3V0c2lk ZSAoc3RydWN0IGxkX3BsdWdpbl9zeW1ib2wgKmxzeW0sCiAKICAgaWYgKGJm ZF9saW5rX3JlbG9jYXRhYmxlICgmbGlua19pbmZvKSkKICAgICByZXR1cm4g VFJVRTsKLSAgaWYgKGxpbmtfaW5mby5leHBvcnRfZHluYW1pYyB8fCBiZmRf bGlua19kbGwgKCZsaW5rX2luZm8pKQorICBpZiAoYmxoZS0+ZHluYW1pY19y ZWZfYWZ0ZXJfaXJfZGVmCisgICAgICB8fCBsaW5rX2luZm8uZXhwb3J0X2R5 bmFtaWMKKyAgICAgIHx8IGJmZF9saW5rX2RsbCAoJmxpbmtfaW5mbykpCiAg ICAgewogICAgICAgLyogQ2hlY2sgaWYgc3ltYm9sIGlzIGhpZGRlbiBieSB2 ZXJzaW9uIHNjcmlwdC4gICovCiAgICAgICBpZiAoYmZkX2hpZGVfc3ltX2J5 X3ZlcnNpb24gKGxpbmtfaW5mby52ZXJzaW9uX2luZm8sCkBAIC0xMzE2LDEy ICsxMzE4LDIxIEBAIHBsdWdpbl9ub3RpY2UgKHN0cnVjdCBiZmRfbGlua19p bmZvICppbmZvLAogICAgICAgLyogSWYgdGhpcyBpcyBhIHJlZiwgc2V0IG5v bl9pcl9yZWYuICAqLwogICAgICAgZWxzZSBpZiAoYmZkX2lzX3VuZF9zZWN0 aW9uIChzZWN0aW9uKSkKIAl7CisJICAgaWYgKGgtPnR5cGUgPT0gYmZkX2xp bmtfaGFzaF9kZWZ3ZWFrCisJICAgICAgIHx8IGgtPnR5cGUgPT0gYmZkX2xp bmtfaGFzaF9kZWZpbmVkKQorCSAgICAgeworCSAgICAgICAvKiBDaGVjayBp ZiB0aGUgc3ltYm9sIGlzIHJlZmVyZW5jZWQgaW4gYSBkeW5hbWljIG9iamVj dAorCQkgIGFmdGVyIGl0IGhhcyBiZWVuIGRlZmluZWQgaW4gYW4gSVIgb2Jq ZWN0LiAgKi8KKwkgICAgICAgaWYgKChhYmZkLT5mbGFncyAmIERZTkFNSUMp ICE9IDAKKwkJICAgJiYgaXNfaXJfZHVtbXlfYmZkIChoLT51LmRlZi5zZWN0 aW9uLT5vd25lcikpCisJCSBoLT5keW5hbWljX3JlZl9hZnRlcl9pcl9kZWYg PSBUUlVFOworCSAgICAgfQogCSAgLyogUmVwbGFjZSB0aGUgdW5kZWZpbmVk IGR1bW15IGJmZCB3aXRoIHRoZSByZWFsIG9uZS4gICovCi0JICBpZiAoKGgt PnR5cGUgPT0gYmZkX2xpbmtfaGFzaF91bmRlZmluZWQKLQkgICAgICAgfHwg aC0+dHlwZSA9PSBiZmRfbGlua19oYXNoX3VuZGVmd2VhaykKLQkgICAgICAm JiAoaC0+dS51bmRlZi5hYmZkID09IE5VTEwKLQkJICB8fCAoaC0+dS51bmRl Zi5hYmZkLT5mbGFncyAmIEJGRF9QTFVHSU4pICE9IDApKQotCSAgICBoLT51 LnVuZGVmLmFiZmQgPSBhYmZkOworCSAgIGVsc2UgaWYgKChoLT50eXBlID09 IGJmZF9saW5rX2hhc2hfdW5kZWZpbmVkCisJCSAgICAgfHwgaC0+dHlwZSA9 PSBiZmRfbGlua19oYXNoX3VuZGVmd2VhaykKKwkJICAgICYmIChoLT51LnVu ZGVmLmFiZmQgPT0gTlVMTAorCQkJfHwgKGgtPnUudW5kZWYuYWJmZC0+Zmxh Z3MgJiBCRkRfUExVR0lOKSAhPSAwKSkKKwkgICAgIGgtPnUudW5kZWYuYWJm ZCA9IGFiZmQ7CiAJICBoLT5ub25faXJfcmVmID0gVFJVRTsKIAl9CiAKZGlm ZiAtLWdpdCBhL2xkL3Rlc3RzdWl0ZS9sZC1wbHVnaW4vbHRvLmV4cCBiL2xk L3Rlc3RzdWl0ZS9sZC1wbHVnaW4vbHRvLmV4cAppbmRleCA4MGMwODRiLi5m MGJjMzQ1IDEwMDY0NAotLS0gYS9sZC90ZXN0c3VpdGUvbGQtcGx1Z2luL2x0 by5leHAKKysrIGIvbGQvdGVzdHN1aXRlL2xkLXBsdWdpbi9sdG8uZXhwCkBA IC0yODksNiArMjg5LDEyIEBAIHNldCBsdG9fbGlua19lbGZfdGVzdHMgW2xp c3QgXAogICBbbGlzdCAiUFIgbGQvMTQ5MTgiIFwKICAgICItZmx0byIgIi1m bHRvIiBcCiAgICB7cHIxNDkxOC5jfSB7eyJyZWFkZWxmIiB7LWQgLS13aWRl fSAicHIxNDkxOC5kIn19ICJwcjE0OTE4LmV4ZSIgImMiXSBcCisgIFtsaXN0 ICJCdWlsZCBwcjIxMzgyYS5vIiBcCisgICAiIiAiLU8yIC1mbHRvIiBcCisg ICB7cHIyMTM4MmEuY30ge30gIiIgImMiXSBcCisgIFtsaXN0ICJCdWlsZCBw cjIxMzgyLnNvIiBcCisgICAiLXNoYXJlZCIgIi1PMiAtZnBpYyIgXAorICAg e3ByMjEzODJiLmN9IHt9ICJwcjIxMzgyLnNvIiAiYyJdIFwKIF0KIAogIyBD aGVjayBmaW5hbCBzeW1ib2xzIGluIGV4ZWN1dGFibGVzLgpAQCAtMzg3LDYg KzM5Myw5IEBAIHNldCBsdG9fcnVuX2VsZl9zaGFyZWRfdGVzdHMgW2xpc3Qg XAogICBbbGlzdCAiTFRPIDciIFwKICAgICItTzIgLWZsdG8gLWZ1c2UtbGlu a2VyLXBsdWdpbiB0bXBkaXIvbHRvLTdiLm8gdG1wZGlyL2x0by03Yy5vIHRt cGRpci9sdG8tN2EubyAtV2wsLS1uby1hcy1uZWVkZWQgdG1wZGlyL2xpYmx0 by03LnNvIiAiIiBcCiAgICB7ZHVtbXkuY30gImx0by03LmV4ZSIgImx0by03 Lm91dCIgIiIgImMiXSBcCisgIFtsaXN0ICJSdW4gcHIyMTM4MiIgXAorICAg Ii1PMiAtZmx0byAtZnVzZS1saW5rZXItcGx1Z2luIC1XbCwtLWFzLW5lZWRl ZCB0bXBkaXIvcHIyMTM4MmEubyB0bXBkaXIvcHIyMTM4Mi5zbyIgIiIgXAor ICAge2R1bW15LmN9ICJwcjIxMzgyLmV4ZSIgInBhc3Mub3V0IiAiIiAiYyJd IFwKIF0KIAogIyBMVE8gcnVuLXRpbWUgdGVzdHMgZm9yIEVMRgpkaWZmIC0t Z2l0IGEvbGQvdGVzdHN1aXRlL2xkLXBsdWdpbi9wcjIxMzgyYS5jIGIvbGQv dGVzdHN1aXRlL2xkLXBsdWdpbi9wcjIxMzgyYS5jCm5ldyBmaWxlIG1vZGUg MTAwNjQ0CmluZGV4IDAwMDAwMDAuLjA5YjlkNzUKLS0tIC9kZXYvbnVsbAor KysgYi9sZC90ZXN0c3VpdGUvbGQtcGx1Z2luL3ByMjEzODJhLmMKQEAgLTAs MCArMSwxNyBAQAorI2luY2x1ZGUgPHN0ZGlvLmg+CisKK2V4dGVybiB2b2lk IHkgKHZvaWQpOworCit2b2lkCit4ICh2b2lkKQoreworICBwcmludGYgKCJQ QVNTXG4iKTsKK30KKworCitpbnQKK21haW4gKHZvaWQpCit7CisgIHkgKCk7 CisgIHJldHVybiAwOworfQpkaWZmIC0tZ2l0IGEvbGQvdGVzdHN1aXRlL2xk LXBsdWdpbi9wcjIxMzgyYi5jIGIvbGQvdGVzdHN1aXRlL2xkLXBsdWdpbi9w cjIxMzgyYi5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu LmM1Yjc0YTkKLS0tIC9kZXYvbnVsbAorKysgYi9sZC90ZXN0c3VpdGUvbGQt cGx1Z2luL3ByMjEzODJiLmMKQEAgLTAsMCArMSw3IEBACitleHRlcm4gdm9p ZCB4ICh2b2lkKTsKKwordm9pZAoreSAodm9pZCkKK3sKKyAgeCAoKTsKK30K LS0gCjIuOS4zCgo= --001a113a3146335ecb054d88dc12--