From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTPS id 2DEEA3857353 for ; Mon, 16 May 2022 16:13:51 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 2DEEA3857353 Received: from mail-yb1-f200.google.com (mail-yb1-f200.google.com [209.85.219.200]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-563-n3ZaGmXBO029IaF_QR83cQ-1; Mon, 16 May 2022 12:13:49 -0400 X-MC-Unique: n3ZaGmXBO029IaF_QR83cQ-1 Received: by mail-yb1-f200.google.com with SMTP id i17-20020a259d11000000b0064cd3084085so6054410ybp.9 for ; Mon, 16 May 2022 09:13:49 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=jIWF4l/8l8xbawZH/UYLtOtiVnNrod3mVYN9OpQpocA=; b=r8UWE9u8Ry2YXwx9BFLrIX8w+z7UUFNRM8OiLC0wm/Kz3jrQ6sqobzO1U/1XMae+5P 6u5WbDYIWzKXJQgRWpHCFj3fILbJpOsBvqin+R68A79fFfEfRdV2wThaaNysEftApM+X ofuKQ+cT30VI/NW/YHL2nqRbEkZoDY2Dol8LF3jPKwQ0X16t9ICUeA0S7wlzO8fJ7/SA mVf77mKd+sZ4VVQP8xgQuJuhtrf4g379380/hlamSi4egXpx4tJJ00fQwkEq3Oca+c/x qAwc3+q3axQGTtV4Wc6WwbeIHvkmJF83V0rNE3k7G/X6udMtnO4XUz3JgTlEHJCF/Y4t gLZQ== X-Gm-Message-State: AOAM533FkzRtfKM7yc85LNw0sOivqGysPRwUEKvfEPJGRlqzAFY71mV4 dv+mJ0hlrA0EZZayocTwXr4n57DGoJEeRgLZmJPwe9GRldg+LBwpOYdagcWlSKIygVmeFMtEi1g 2UWsGO2zDnti4987Eltqctfk/Nbl8s18= X-Received: by 2002:a81:ec8:0:b0:2fb:95b:c762 with SMTP id 191-20020a810ec8000000b002fb095bc762mr20799276ywo.346.1652717628860; Mon, 16 May 2022 09:13:48 -0700 (PDT) X-Google-Smtp-Source: ABdhPJxVKz+xCTgeGDNPg0HSCP4g4gDXBMfuRwlYEyUGxOAGbLhcZe1s0xWvCVS5hfF5MogtY8LccTrceBz3nq1Ub34= X-Received: by 2002:a81:ec8:0:b0:2fb:95b:c762 with SMTP id 191-20020a810ec8000000b002fb095bc762mr20799259ywo.346.1652717628648; Mon, 16 May 2022 09:13:48 -0700 (PDT) MIME-Version: 1.0 References: <20220513124050.4028450-1-jwakely@redhat.com> <20220513124050.4028450-3-jwakely@redhat.com> <65a5eb4c-8c9e-4bc6-846a-a06b1f6d5c1e@gmail.com> In-Reply-To: <65a5eb4c-8c9e-4bc6-846a-a06b1f6d5c1e@gmail.com> From: Jonathan Wakely Date: Mon, 16 May 2022 17:13:37 +0100 Message-ID: Subject: Re: [committed 03/12] libstdc++: Add macros for the inline namespace std::_V2 To: =?UTF-8?Q?Fran=C3=A7ois_Dumont?= Cc: "libstdc++" X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="0000000000002bb3d905df234f79" X-Spam-Status: No, score=-12.8 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_NUMSUBJECT, RCVD_IN_DNSWL_LOW, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libstdc++@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libstdc++ mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 16 May 2022 16:13:53 -0000 --0000000000002bb3d905df234f79 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Sat, 14 May 2022 at 16:36, Fran=C3=A7ois Dumont via Libstdc++ wrote: > > Versioned namespace does not compile after this patch. With this patch > it compiles but does not link because of: > > /usr/bin/ld: /usr/bin/ld: DWARF error: can't find .debug_ranges section. > ../src/c++11/.libs/libc++11convenience.a(chrono.o): in function > `std::__8::chrono::system_clock::now()': > chrono.cc:(.text._ZNSt3__86chrono12system_clock3nowEv+0x0): multiple > definition of `std::__8::chrono::system_clock::now()'; /usr/bin/ld: > DWARF error: can't find .debug_ranges section. > .libs/compatibility-chrono.o:compatibility-chrono.cc:(.text._ZNSt3__86chr= ono12system_clock3nowEv+0x0): > first defined here Oops, I knew I'd forgotten to check something! I think the attached patch would be better. This stops defining the C++0x compat symbols for the versioned namespace. Those symbols only exist for backwards compatibility with ancient versions of libstdc++.so.6 (from GCC 4.6 and similar vintages). We don't need those symbols in libstdc++.so.8 at all. This fixes the versioned namespace build, I'm running the tests now. --0000000000002bb3d905df234f79 Content-Type: text/plain; charset="US-ASCII"; name="patch.txt" Content-Disposition: attachment; filename="patch.txt" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l38x2br50 Y29tbWl0IGRiNGI2MTFhNDk0MjFmYjU2MTlhZWZiZGY4OTJkNjJkNmVlZTZlNDcKQXV0aG9yOiBK b25hdGhhbiBXYWtlbHkgPGp3YWtlbHlAcmVkaGF0LmNvbT4KRGF0ZTogICBNb24gTWF5IDE2IDE2 OjU0OjUyIDIwMjIgKzAxMDAKCiAgICBsaWJzdGRjKys6IFN0b3AgZGVmaW5pbmcgQysrMHggY29t cGF0IHN5bWJvbHMgZm9yIHZlcnNpb25lZCBuYW1lc3BhY2UKICAgIAogICAgVGhlIHNyYy9jKysx MS9jb21wYXRpYmlsaXR5Ki1jKysweC5jYyBmaWxlcyBkZWZpbmUgc3ltYm9scyB0aGF0IG5lZWQg dG8KICAgIGJlIGV4cG9ydGVkIGZvciBhbmNpZW50IHZlcnNpb25zIG9mIGxpYnN0ZGMrKy5zby42 IGR1ZSB0byBjaGFuZ2VzCiAgICBiZXR3ZWVuIEMrKzB4IGFuZCB0aGUgZmluYWwgQysrMTEgc3Rh bmRhcmQuIFRob3NlIHN5bWJvbHMgYXJlIG5vdCBuZWVkZWQKICAgIGluIHRoZSBsaWJzdGRjKysu c28uOCBsaWJyYXJ5LCBhbmQgd2UgY2FuIHNraXAgYnVpbGRpbmcgdGhlbSBlbnRpcmVseS4KICAg IAogICAgVGhpcyBhbHNvIGZpeGVzIHRoZSBidWlsZCBmYWlsdXJlIEkgaW50cm9kdWNlZCBsYXN0 IHdlZWsgd2hlbiBtYWtpbmcgdGhlCiAgICB2ZXJzaW9uZWQgbmFtZXNwYWNlIGNvbmZpZyBub3Qg dXNlIHRoZSBfVjIgbmFtZXNwYWNlIGZvciBjb21wYXQgc3ltYm9scy4KICAgIAogICAgbGlic3Rk YysrLXYzL0NoYW5nZUxvZzoKICAgIAogICAgICAgICAgICAqIHNyYy9NYWtlZmlsZS5hbSBbRU5B QkxFX1NZTVZFUlNfR05VX05BTUVTUEFDRV0gKGN4eDExX3NvdXJjZXMpOgogICAgICAgICAgICBE byBub3QgYnVpbGQgdGhlIGNvbXBhdGliaWxpdHkqLWMrKzB4LmNjIG9iamVjdHMuCiAgICAgICAg ICAgICogc3JjL01ha2VmaWxlLmluOiBSZWdlbmVyYXRlLgogICAgICAgICAgICAqIHNyYy9jKysx MS9jb21wYXRpYmlsaXR5LWMrKzB4LmNjIFtfR0xJQkNYWF9JTkxJTkVfVkVSU0lPTl06CiAgICAg ICAgICAgIFJlZnVzZSB0byBidWlsZCBmb3IgdGhlIHZlcnNpb25lZCBuYW1lc3BhY2UuCiAgICAg ICAgICAgICogc3JjL2MrKzExL2NvbXBhdGliaWxpdHktY2hyb25vLmNjOiBMaWtld2lzZS4KICAg ICAgICAgICAgKiBzcmMvYysrMTEvY29tcGF0aWJpbGl0eS1jb25kdmFyLmNjOiBMaWtld2lzZS4K ICAgICAgICAgICAgKiBzcmMvYysrMTEvY29tcGF0aWJpbGl0eS10aHJlYWQtYysrMHguY2M6IExp a2V3aXNlLgogICAgICAgICAgICAqIHNyYy9jKysxMS9jaHJvbm8uY2MgKHN5c3RlbV9jbG9jaywg c3RlYWR5X2Nsb2NrKToKICAgICAgICAgICAgVXNlIG1hY3JvcyB0byBkZWZpbmUgaW4gaW5saW5l IG5hbWVzcGFjZSBfVjIsIG1hdGNoaW5nIHRoZQogICAgICAgICAgICBkZWNsYXJhdGlvbnMgaW4g PHN5c3RlbV9lcnJvcj4uCiAgICAgICAgICAgICogc3JjL2MrKzExL3N5c3RlbV9lcnJvci5jYyAo c3lzdGVtX2NhdGVnb3J5LCBnZW5lcmljX2NhdGVnb3J5KToKICAgICAgICAgICAgTGlrZXdpc2Uu CgpkaWZmIC0tZ2l0IGEvbGlic3RkYysrLXYzL3NyYy9NYWtlZmlsZS5hbSBiL2xpYnN0ZGMrKy12 My9zcmMvTWFrZWZpbGUuYW0KaW5kZXggOWMzZjRhY2E2NTUuLmI4M2MyMjJkNTFkIDEwMDY0NAot LS0gYS9saWJzdGRjKystdjMvc3JjL01ha2VmaWxlLmFtCisrKyBiL2xpYnN0ZGMrKy12My9zcmMv TWFrZWZpbGUuYW0KQEAgLTk2LDYgKzk2LDE2IEBAIGVsc2UKIGxkYmxfYWx0MTI4X2NvbXBhdF9z b3VyY2VzID0KIGVuZGlmCiAKK2lmIEVOQUJMRV9TWU1WRVJTX0dOVV9OQU1FU1BBQ0UKK2N4eDB4 X2NvbXBhdF9zb3VyY2VzID0KK2Vsc2UKK2N4eDB4X2NvbXBhdF9zb3VyY2VzID0gXAorCWNvbXBh dGliaWxpdHktYXRvbWljLWMrKzB4LmNjIFwKKwljb21wYXRpYmlsaXR5LWMrKzB4LmNjIFwKKwlj b21wYXRpYmlsaXR5LWNocm9uby5jYyBcCisJY29tcGF0aWJpbGl0eS1jb25kdmFyLmNjIFwKKwlj b21wYXRpYmlsaXR5LXRocmVhZC1jKysweC5jYworZW5kaWYKIAogcGFyYWxsZWxfY29tcGF0X3Nv dXJjZXMgPSBcCiAJY29tcGF0aWJpbGl0eS1wYXJhbGxlbF9saXN0LmNjICBjb21wYXRpYmlsaXR5 LXBhcmFsbGVsX2xpc3QtMi5jYwpAQCAtMTA4LDExICsxMTgsNyBAQCBjeHg5OF9zb3VyY2VzID0g XAogCSR7bGRibF9jb21wYXRfc291cmNlc30KIAogY3h4MTFfc291cmNlcyA9IFwKLQljb21wYXRp YmlsaXR5LWMrKzB4LmNjIFwKLQljb21wYXRpYmlsaXR5LWF0b21pYy1jKysweC5jYyBcCi0JY29t cGF0aWJpbGl0eS10aHJlYWQtYysrMHguY2MgXAotCWNvbXBhdGliaWxpdHktY2hyb25vLmNjIFwK LQljb21wYXRpYmlsaXR5LWNvbmR2YXIuY2MgXAorCSR7Y3h4MHhfY29tcGF0X3NvdXJjZXN9IFwK IAkke2xkYmxfYWx0MTI4X2NvbXBhdF9zb3VyY2VzfQogCiBsaWJzdGRjX19fbGFfU09VUkNFUyA9 ICQoY3h4OThfc291cmNlcykgJChjeHgxMV9zb3VyY2VzKQpkaWZmIC0tZ2l0IGEvbGlic3RkYysr LXYzL3NyYy9jKysxMS9jaHJvbm8uY2MgYi9saWJzdGRjKystdjMvc3JjL2MrKzExL2Nocm9uby5j YwppbmRleCA2ODI1YjViYzRiZi4uNTUzOWQ4Y2JlZGQgMTAwNjQ0Ci0tLSBhL2xpYnN0ZGMrKy12 My9zcmMvYysrMTEvY2hyb25vLmNjCisrKyBiL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY2hyb25v LmNjCkBAIC00Myw4ICs0Myw3IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVTUEFDRV9WRVJTSU9OCiAK ICAgbmFtZXNwYWNlIGNocm9ubwogICB7Ci0gICAgLy8gWFhYIEdMSUJDWFhfQUJJIERlcHJlY2F0 ZWQKLSAgICBpbmxpbmUgbmFtZXNwYWNlIF9WMiB7CitfR0xJQkNYWF9CRUdJTl9JTkxJTkVfQUJJ X05BTUVTUEFDRShfVjIpCiAKICAgICBjb25zdGV4cHIgYm9vbCBzeXN0ZW1fY2xvY2s6OmlzX3N0 ZWFkeTsKIApAQCAtOTQsNyArOTMsNyBAQCBfR0xJQkNYWF9CRUdJTl9OQU1FU1BBQ0VfVkVSU0lP TgogI2VuZGlmCiAgICAgfQogCi0gIH0gLy8gZW5kIGlubGluZSBuYW1lc3BhY2UgX1YyCitfR0xJ QkNYWF9FTkRfSU5MSU5FX0FCSV9OQU1FU1BBQ0UoX1YyKQogICB9IC8vIG5hbWVzcGFjZSBjaHJv bm8KIAogX0dMSUJDWFhfRU5EX05BTUVTUEFDRV9WRVJTSU9OCmRpZmYgLS1naXQgYS9saWJzdGRj KystdjMvc3JjL2MrKzExL2NvbXBhdGliaWxpdHktYysrMHguY2MgYi9saWJzdGRjKystdjMvc3Jj L2MrKzExL2NvbXBhdGliaWxpdHktYysrMHguY2MKaW5kZXggZDQ4ZjViZDFlMjguLjc2OGRkNjY2 ZDAwIDEwMDY0NAotLS0gYS9saWJzdGRjKystdjMvc3JjL2MrKzExL2NvbXBhdGliaWxpdHktYysr MHguY2MKKysrIGIvbGlic3RkYysrLXYzL3NyYy9jKysxMS9jb21wYXRpYmlsaXR5LWMrKzB4LmNj CkBAIC00MCw2ICs0MCwxMCBAQAogIyBlcnJvciAiY29tcGF0aWJpbGl0eS1jKysweC5jYyBtdXN0 IGJlIGNvbXBpbGVkIHdpdGggLXN0ZD1nbnUrKzB4IgogI2VuZGlmCiAKKyNpZiBfR0xJQkNYWF9J TkxJTkVfVkVSU0lPTgorIyBlcnJvciAiY29tcGF0aWJpbGl0eS10aHJlYWQtYysrMHguY2MgaXMg bm90IG5lZWRlZCBmb3IgZ251LXZlcnNpb25lZC1uYW1lc3BhY2UiCisjZW5kaWYKKwogI2lmZGVm IF9HTElCQ1hYX1NIQVJFRAogCiBuYW1lc3BhY2Ugc3RkIF9HTElCQ1hYX1ZJU0lCSUxJVFkoZGVm YXVsdCkKZGlmZiAtLWdpdCBhL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvY29tcGF0aWJpbGl0eS1j aHJvbm8uY2MgYi9saWJzdGRjKystdjMvc3JjL2MrKzExL2NvbXBhdGliaWxpdHktY2hyb25vLmNj CmluZGV4IDM4Yjk2ZTgxMWZiLi42YmViOGIzOWEyNSAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYz L3NyYy9jKysxMS9jb21wYXRpYmlsaXR5LWNocm9uby5jYworKysgYi9saWJzdGRjKystdjMvc3Jj L2MrKzExL2NvbXBhdGliaWxpdHktY2hyb25vLmNjCkBAIC0yNCw2ICsyNCwxMCBAQAogCiAjaW5j bHVkZSA8Yml0cy9jKytjb25maWcuaD4KIAorI2lmIF9HTElCQ1hYX0lOTElORV9WRVJTSU9OCisj IGVycm9yICJjb21wYXRpYmlsaXR5LXRocmVhZC1jKysweC5jYyBpcyBub3QgbmVlZGVkIGZvciBn bnUtdmVyc2lvbmVkLW5hbWVzcGFjZSIKKyNlbmRpZgorCiAjaWZkZWYgX0dMSUJDWFhfVVNFX0M5 OV9TVERJTlRfVFIxCiAKICNpZmRlZiBfR0xJQkNYWF9VU0VfR0VUVElNRU9GREFZCmRpZmYgLS1n aXQgYS9saWJzdGRjKystdjMvc3JjL2MrKzExL2NvbXBhdGliaWxpdHktY29uZHZhci5jYyBiL2xp YnN0ZGMrKy12My9zcmMvYysrMTEvY29tcGF0aWJpbGl0eS1jb25kdmFyLmNjCmluZGV4IGVhM2Ux MWVmZWRhLi5lM2E4Yjg0MDNjYSAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL3NyYy9jKysxMS9j b21wYXRpYmlsaXR5LWNvbmR2YXIuY2MKKysrIGIvbGlic3RkYysrLXYzL3NyYy9jKysxMS9jb21w YXRpYmlsaXR5LWNvbmR2YXIuY2MKQEAgLTI4LDYgKzI4LDEwIEBACiAjIGVycm9yICJjb21wYXRp YmlsaXR5LWNvbmR2YXItYysrMHguY2MgbXVzdCBiZSBjb21waWxlZCB3aXRoIC1zdGQ9Z251Kysx MSIKICNlbmRpZgogCisjaWYgX0dMSUJDWFhfSU5MSU5FX1ZFUlNJT04KKyMgZXJyb3IgImNvbXBh dGliaWxpdHktdGhyZWFkLWMrKzB4LmNjIGlzIG5vdCBuZWVkZWQgZm9yIGdudS12ZXJzaW9uZWQt bmFtZXNwYWNlIgorI2VuZGlmCisKICNpZiBkZWZpbmVkKF9HTElCQ1hYX0hBU19HVEhSRUFEUykg JiYgZGVmaW5lZChfR0xJQkNYWF9VU0VfQzk5X1NURElOVF9UUjEpCiAKICNkZWZpbmUgY29uZGl0 aW9uX3ZhcmlhYmxlX2FueSBjb25kaXRpb25fdmFyaWFibGVfYW55WFgKZGlmZiAtLWdpdCBhL2xp YnN0ZGMrKy12My9zcmMvYysrMTEvY29tcGF0aWJpbGl0eS10aHJlYWQtYysrMHguY2MgYi9saWJz dGRjKystdjMvc3JjL2MrKzExL2NvbXBhdGliaWxpdHktdGhyZWFkLWMrKzB4LmNjCmluZGV4IGRi YWNkYTJiYzQ0Li5kOTIwZjlmMDM0NSAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYzL3NyYy9jKysx MS9jb21wYXRpYmlsaXR5LXRocmVhZC1jKysweC5jYworKysgYi9saWJzdGRjKystdjMvc3JjL2Mr KzExL2NvbXBhdGliaWxpdHktdGhyZWFkLWMrKzB4LmNjCkBAIC0zNSw2ICszNSwxMCBAQAogIyBl cnJvciAiY29tcGF0aWJpbGl0eS10aHJlYWQtYysrMHguY2MgbXVzdCBiZSBjb21waWxlZCB3aXRo IC1zdGQ9Z251KysweCIKICNlbmRpZgogCisjaWYgX0dMSUJDWFhfSU5MSU5FX1ZFUlNJT04KKyMg ZXJyb3IgImNvbXBhdGliaWxpdHktdGhyZWFkLWMrKzB4LmNjIGlzIG5vdCBuZWVkZWQgZm9yIGdu dS12ZXJzaW9uZWQtbmFtZXNwYWNlIgorI2VuZGlmCisKICNkZWZpbmUgX0dMSUJDWFhfQVNNX1NZ TVZFUihjdXIsIG9sZCwgdmVyc2lvbikgXAogICAgYXNtICgiLnN5bXZlciAiICNjdXIgIiwiICNv bGQgIkBAQCIgI3ZlcnNpb24pOwogCmRpZmYgLS1naXQgYS9saWJzdGRjKystdjMvc3JjL2MrKzEx L3N5c3RlbV9lcnJvci5jYyBiL2xpYnN0ZGMrKy12My9zcmMvYysrMTEvc3lzdGVtX2Vycm9yLmNj CmluZGV4IDdiMWE1YTIwNjM3Li44YzEzNjQyNDA4ZCAxMDA2NDQKLS0tIGEvbGlic3RkYysrLXYz L3NyYy9jKysxMS9zeXN0ZW1fZXJyb3IuY2MKKysrIGIvbGlic3RkYysrLXYzL3NyYy9jKysxMS9z eXN0ZW1fZXJyb3IuY2MKQEAgLTUyNiwxMSArNTI2LDE1IEBAIF9HTElCQ1hYX0JFR0lOX05BTUVT UEFDRV9WRVJTSU9OCiAKICAgZXJyb3JfY2F0ZWdvcnk6On5lcnJvcl9jYXRlZ29yeSgpID0gZGVm YXVsdDsKIAotICBjb25zdCBlcnJvcl9jYXRlZ29yeSYKLSAgX1YyOjpzeXN0ZW1fY2F0ZWdvcnko KSBub2V4Y2VwdCB7IHJldHVybiBzeXN0ZW1fY2F0ZWdvcnlfaW5zdGFuY2Uub2JqOyB9CitfR0xJ QkNYWF9CRUdJTl9JTkxJTkVfQUJJX05BTUVTUEFDRShfVjIpCiAKICAgY29uc3QgZXJyb3JfY2F0 ZWdvcnkmCi0gIF9WMjo6Z2VuZXJpY19jYXRlZ29yeSgpIG5vZXhjZXB0IHsgcmV0dXJuIGdlbmVy aWNfY2F0ZWdvcnlfaW5zdGFuY2Uub2JqOyB9CisgIHN5c3RlbV9jYXRlZ29yeSgpIG5vZXhjZXB0 IHsgcmV0dXJuIHN5c3RlbV9jYXRlZ29yeV9pbnN0YW5jZS5vYmo7IH0KKworICBjb25zdCBlcnJv cl9jYXRlZ29yeSYKKyAgZ2VuZXJpY19jYXRlZ29yeSgpIG5vZXhjZXB0IHsgcmV0dXJuIGdlbmVy aWNfY2F0ZWdvcnlfaW5zdGFuY2Uub2JqOyB9CisKK19HTElCQ1hYX0VORF9JTkxJTkVfQUJJX05B TUVTUEFDRShfVjIpCiAKICAgc3lzdGVtX2Vycm9yOjp+c3lzdGVtX2Vycm9yKCkgPSBkZWZhdWx0 OwogCg== --0000000000002bb3d905df234f79--