From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 116801 invoked by alias); 15 Jan 2019 16:58:37 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 116790 invoked by uid 89); 15 Jan 2019 16:58:36 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-11.1 required=5.0 tests=BAYES_00,GIT_PATCH_2,GIT_PATCH_3,KAM_ASCII_DIVIDERS,SPF_HELO_PASS autolearn=ham version=3.3.2 spammy=friend X-HELO: userp2120.oracle.com Received: from userp2120.oracle.com (HELO userp2120.oracle.com) (156.151.31.85) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 15 Jan 2019 16:58:33 +0000 Received: from pps.filterd (userp2120.oracle.com [127.0.0.1]) by userp2120.oracle.com (8.16.0.22/8.16.0.22) with SMTP id x0FGnREp194900; Tue, 15 Jan 2019 16:58:32 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=to : cc : from : subject : message-id : date : mime-version : content-type; s=corp-2018-07-02; bh=MsFM0mdL+9wVtTqQlIRJq5YyU8ath+D+NeU2/IRnPKM=; b=UI8cRb9BS5IR/8F8BeTzN6bY6ea7Vp7V9FlcbRlwLXamBmRATcmsvB3Koee9pkzmtzCE YrEcrTjNBrb8VrCkIbgJJlJ5FxrkH6BYu/0jhQMahHbjoYrCVG34SgPyqueEt6+J8SEs syhtDY4HwDeleEBEkc3B7FU4PiD/18KKiMHx3j/5OTwofsNDn8A9rFpTT5yh2lH0leaK dbvSToTUygTN6TVav1HfJuFZYaEz1H93tyQK8rMRN1995miYtq25iP6nuhjC2NiHXuCl C19i3dl64QPWl2HPKNdhwj8LBWMU72zqBfawAlKManspCn2oIxDefS8yghWSBgbzjRGZ Eg== Received: from userv0021.oracle.com (userv0021.oracle.com [156.151.31.71]) by userp2120.oracle.com with ESMTP id 2pybjs52yt-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 15 Jan 2019 16:58:31 +0000 Received: from userv0121.oracle.com (userv0121.oracle.com [156.151.31.72]) by userv0021.oracle.com (8.14.4/8.14.4) with ESMTP id x0FGwV1I028114 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 15 Jan 2019 16:58:31 GMT Received: from abhmp0013.oracle.com (abhmp0013.oracle.com [141.146.116.19]) by userv0121.oracle.com (8.14.4/8.13.8) with ESMTP id x0FGwVak020448; Tue, 15 Jan 2019 16:58:31 GMT Received: from [192.168.1.4] (/79.19.31.237) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Tue, 15 Jan 2019 08:58:30 -0800 To: "gcc-patches@gcc.gnu.org" Cc: Jason Merrill From: Paolo Carlini Subject: [C++ Patch] Use locations[ds_storage_class] in error messages about ill-formed uses of mutable Message-ID: Date: Tue, 15 Jan 2019 16:58:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.3.0 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------A1CBA45F6706ED288EDBDF9B" X-IsSubscribed: yes X-SW-Source: 2019-01/txt/msg00856.txt.bz2 This is a multi-part message in MIME format. --------------A1CBA45F6706ED288EDBDF9B Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-length: 291 Hi, something a little different from my last patches but nevertheless pretty straightforward (noticed while I was wondering whether we should immediately move the location_t grokdeclarator local even further up). Tested x86_64-linux, as usual. Thanks, Paolo. /////////////////////// --------------A1CBA45F6706ED288EDBDF9B Content-Type: text/plain; charset=UTF-8; name="CL_locs_26" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="CL_locs_26" Content-length: 680 L2NwCjIwMTktMDEtMTUgIFBhb2xvIENhcmxpbmkgIDxwYW9sby5jYXJsaW5p QG9yYWNsZS5jb20+CgoJKiBkZWNsLmMgKGdyb2tkZWNsYXJhdG9yKTogVXNl IGxvY2F0aW9uc1tkc19zdG9yYWdlX2NsYXNzXSBpbgoJZXJyb3IgbWVzc2Fn ZXMgYWJvdXQgaWxsLWZvcm1lZCB1c2VzIG9mIG11dGFibGUuCgovdGVzdHN1 aXRlCjIwMTktMDEtMTUgIFBhb2xvIENhcmxpbmkgIDxwYW9sby5jYXJsaW5p QG9yYWNsZS5jb20+CgoJKiBnKysuZGcvb3RoZXIvcHIzMzU1OC5DOiBUZXN0 IGxvY2F0aW9uIHRvby4KCSogZysrLmRnL290aGVyL3ByMzM1NTgtMi5DOiBM aWtld2lzZS4KCSogZysrLmRnL3BhcnNlL2NyYXNoNC5DOiBMaWtld2lzZS4K CSogZysrLm9sZC1kZWphL2crKy5icmVuZGFuL2Vyci1tc2cxMS5DOiBMaWtl d2lzZS4KCSogZysrLm9sZC1kZWphL2crKy5taWtlL3A3NjM1LkM6IExpa2V3 aXNlLgoJKiBnKysub2xkLWRlamEvZysrLm90aGVyL2RlY2w2LkM6IExpa2V3 aXNlLgo= --------------A1CBA45F6706ED288EDBDF9B Content-Type: text/plain; charset=UTF-8; name="patch_locs_26" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="patch_locs_26" Content-length: 8223 SW5kZXg6IGNwL2RlY2wuYwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBj cC9kZWNsLmMJKHJldmlzaW9uIDI2NzkzMikKKysrIGNwL2RlY2wuYwkod29y a2luZyBjb3B5KQpAQCAtMTE5MDIsMzYgKzExOTAyLDQwIEBAIGdyb2tkZWNs YXJhdG9yIChjb25zdCBjcF9kZWNsYXJhdG9yICpkZWNsYXJhdG9yLAogCiAg IGlmIChzdG9yYWdlX2NsYXNzID09IHNjX211dGFibGUpCiAgICAgeworICAg ICAgbG9jYXRpb25fdCBzbG9jID0gZGVjbHNwZWNzLT5sb2NhdGlvbnNbZHNf c3RvcmFnZV9jbGFzc107CiAgICAgICBpZiAoZGVjbF9jb250ZXh0ICE9IEZJ RUxEIHx8IGZyaWVuZHApCiAJewotCSAgZXJyb3IgKCJub24tbWVtYmVyICVx cyBjYW5ub3QgYmUgZGVjbGFyZWQgJTxtdXRhYmxlJT4iLCBuYW1lKTsKKwkg IGVycm9yX2F0IChzbG9jLCAibm9uLW1lbWJlciAlcXMgY2Fubm90IGJlIGRl Y2xhcmVkICU8bXV0YWJsZSU+IiwKKwkJICAgIG5hbWUpOwogCSAgc3RvcmFn ZV9jbGFzcyA9IHNjX25vbmU7CiAJfQogICAgICAgZWxzZSBpZiAoZGVjbF9j b250ZXh0ID09IFRZUEVOQU1FIHx8IHR5cGVkZWZfcCkKIAl7Ci0JICBlcnJv ciAoIm5vbi1vYmplY3QgbWVtYmVyICVxcyBjYW5ub3QgYmUgZGVjbGFyZWQg JTxtdXRhYmxlJT4iLCBuYW1lKTsKKwkgIGVycm9yX2F0IChzbG9jLAorCQkg ICAgIm5vbi1vYmplY3QgbWVtYmVyICVxcyBjYW5ub3QgYmUgZGVjbGFyZWQg JTxtdXRhYmxlJT4iLAorCQkgICAgbmFtZSk7CiAJICBzdG9yYWdlX2NsYXNz ID0gc2Nfbm9uZTsKIAl9CiAgICAgICBlbHNlIGlmIChUUkVFX0NPREUgKHR5 cGUpID09IEZVTkNUSU9OX1RZUEUKIAkgICAgICAgfHwgVFJFRV9DT0RFICh0 eXBlKSA9PSBNRVRIT0RfVFlQRSkKIAl7Ci0JICBlcnJvciAoImZ1bmN0aW9u ICVxcyBjYW5ub3QgYmUgZGVjbGFyZWQgJTxtdXRhYmxlJT4iLCBuYW1lKTsK KwkgIGVycm9yX2F0IChzbG9jLCAiZnVuY3Rpb24gJXFzIGNhbm5vdCBiZSBk ZWNsYXJlZCAlPG11dGFibGUlPiIsIG5hbWUpOwogCSAgc3RvcmFnZV9jbGFz cyA9IHNjX25vbmU7CiAJfQogICAgICAgZWxzZSBpZiAoc3RhdGljcCkKIAl7 Ci0JICBlcnJvciAoInN0YXRpYyAlcXMgY2Fubm90IGJlIGRlY2xhcmVkICU8 bXV0YWJsZSU+IiwgbmFtZSk7CisJICBlcnJvcl9hdCAoc2xvYywgInN0YXRp YyAlcXMgY2Fubm90IGJlIGRlY2xhcmVkICU8bXV0YWJsZSU+IiwgbmFtZSk7 CiAJICBzdG9yYWdlX2NsYXNzID0gc2Nfbm9uZTsKIAl9CiAgICAgICBlbHNl IGlmICh0eXBlX3F1YWxzICYgVFlQRV9RVUFMX0NPTlNUKQogCXsKLQkgIGVy cm9yICgiY29uc3QgJXFzIGNhbm5vdCBiZSBkZWNsYXJlZCAlPG11dGFibGUl PiIsIG5hbWUpOworCSAgZXJyb3JfYXQgKHNsb2MsICJjb25zdCAlcXMgY2Fu bm90IGJlIGRlY2xhcmVkICU8bXV0YWJsZSU+IiwgbmFtZSk7CiAJICBzdG9y YWdlX2NsYXNzID0gc2Nfbm9uZTsKIAl9CiAgICAgICBlbHNlIGlmIChUWVBF X1JFRl9QICh0eXBlKSkKIAl7Ci0JICBwZXJtZXJyb3IgKGlucHV0X2xvY2F0 aW9uLCAicmVmZXJlbmNlICVxcyBjYW5ub3QgYmUgZGVjbGFyZWQgIgotCSAg ICAgICAgICAgICAiJTxtdXRhYmxlJT4iLCBuYW1lKTsKKwkgIHBlcm1lcnJv ciAoc2xvYywgInJlZmVyZW5jZSAlcXMgY2Fubm90IGJlIGRlY2xhcmVkICU8 bXV0YWJsZSU+IiwKKwkJICAgICBuYW1lKTsKIAkgIHN0b3JhZ2VfY2xhc3Mg PSBzY19ub25lOwogCX0KICAgICB9CkluZGV4OiB0ZXN0c3VpdGUvZysrLmRn L290aGVyL3ByMzM1NTgtMi5DCj09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t IHRlc3RzdWl0ZS9nKysuZGcvb3RoZXIvcHIzMzU1OC0yLkMJKHJldmlzaW9u IDI2NzkzMSkKKysrIHRlc3RzdWl0ZS9nKysuZGcvb3RoZXIvcHIzMzU1OC0y LkMJKHdvcmtpbmcgY29weSkKQEAgLTIsNSArMiw1IEBACiAvKiB7IGRnLW9w dGlvbnMgIi1mcGVybWlzc2l2ZSIgfSAqLwogCiBjbGFzcyBYIHsKLSAgbXV0 YWJsZSBpbnQgJnE7IC8qIHsgZGctd2FybmluZyAiY2Fubm90IGJlIGRlY2xh cmVkICdtdXRhYmxlJyIgfSAqLworICBtdXRhYmxlIGludCAmcTsgLyogeyBk Zy13YXJuaW5nICIzOnJlZmVyZW5jZSAucS4gY2Fubm90IGJlIGRlY2xhcmVk IC5tdXRhYmxlLiIgfSAqLwogfTsKSW5kZXg6IHRlc3RzdWl0ZS9nKysuZGcv b3RoZXIvcHIzMzU1OC5DCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRl c3RzdWl0ZS9nKysuZGcvb3RoZXIvcHIzMzU1OC5DCShyZXZpc2lvbiAyNjc5 MzEpCisrKyB0ZXN0c3VpdGUvZysrLmRnL290aGVyL3ByMzM1NTguQwkod29y a2luZyBjb3B5KQpAQCAtMSw1ICsxLDUgQEAKIC8qIHsgZGctZG8gY29tcGls ZSB9ICovCiAKIGNsYXNzIFggewotICBtdXRhYmxlIGludCAmcTsgLyogeyBk Zy1lcnJvciAiY2Fubm90IGJlIGRlY2xhcmVkICdtdXRhYmxlJyIgfSAqLwor ICBtdXRhYmxlIGludCAmcTsgLyogeyBkZy1lcnJvciAiMzpyZWZlcmVuY2Ug LnEuIGNhbm5vdCBiZSBkZWNsYXJlZCAubXV0YWJsZS4iIH0gKi8KIH07Cklu ZGV4OiB0ZXN0c3VpdGUvZysrLmRnL3BhcnNlL2NyYXNoNC5DCj09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT0KLS0tIHRlc3RzdWl0ZS9nKysuZGcvcGFyc2UvY3Jh c2g0LkMJKHJldmlzaW9uIDI2NzkzMSkKKysrIHRlc3RzdWl0ZS9nKysuZGcv cGFyc2UvY3Jhc2g0LkMJKHdvcmtpbmcgY29weSkKQEAgLTcsNiArNyw2IEBA IHN0cnVjdCBCYXIKICB7CiAgICAgIHZvaWQgZnVuYyh2b2lkKQogICAgICB7 Ci0gICAgICAgbXV0YWJsZSBCYXI6OnR5cGUgeDsgLy8geyBkZy1lcnJvciAi IiB9CisgICAgICAgbXV0YWJsZSBCYXI6OnR5cGUgeDsgLy8geyBkZy1lcnJv ciAiODpub24tbWVtYmVyIC54LiBjYW5ub3QgYmUgZGVjbGFyZWQgLm11dGFi bGUuIiB9CiAgICAgIH0KICB9OwpJbmRleDogdGVzdHN1aXRlL2crKy5vbGQt ZGVqYS9nKysuYnJlbmRhbi9lcnItbXNnMTEuQwo9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09Ci0tLSB0ZXN0c3VpdGUvZysrLm9sZC1kZWphL2crKy5icmVuZGFu L2Vyci1tc2cxMS5DCShyZXZpc2lvbiAyNjc5MzEpCisrKyB0ZXN0c3VpdGUv ZysrLm9sZC1kZWphL2crKy5icmVuZGFuL2Vyci1tc2cxMS5DCSh3b3JraW5n IGNvcHkpCkBAIC0xLDMgKzEsMyBAQAogLy8geyBkZy1kbyBhc3NlbWJsZSAg fQogLy8gR1JPVVBTIHBhc3NlZCBlcnJvci1tZXNzYWdlcwotdm9pZCBmb28g KG11dGFibGUgaW50IHgpOy8vIHsgZGctZXJyb3IgIiIgfSAgbm9uLW1lbWJl ciBgeCcgY2Fubm90IGJlIGRlY2xhcmVkIGBtdXRhYmxlJy4qCit2b2lkIGZv byAobXV0YWJsZSBpbnQgeCk7Ly8geyBkZy1lcnJvciAiMTE6bm9uLW1lbWJl ciAueC4gY2Fubm90IGJlIGRlY2xhcmVkIC5tdXRhYmxlLiIgfSAgbm9uLW1l bWJlciBgeCcgY2Fubm90IGJlIGRlY2xhcmVkIGBtdXRhYmxlJy4qCkluZGV4 OiB0ZXN0c3VpdGUvZysrLm9sZC1kZWphL2crKy5taWtlL3A3NjM1LkMKPT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0gdGVzdHN1aXRlL2crKy5vbGQtZGVq YS9nKysubWlrZS9wNzYzNS5DCShyZXZpc2lvbiAyNjc5MzEpCisrKyB0ZXN0 c3VpdGUvZysrLm9sZC1kZWphL2crKy5taWtlL3A3NjM1LkMJKHdvcmtpbmcg Y29weSkKQEAgLTMsNSArMyw1IEBACiAKIGNsYXNzIERheWNvdW50QmFzaXMg ewogICBtdXRhYmxlIGNvbnN0IGludCAqIHA7Ci0gIG11dGFibGUgaW50ICog Y29uc3QgcTsJLy8geyBkZy1lcnJvciAiIiB9IAorICBtdXRhYmxlIGludCAq IGNvbnN0IHE7CS8vIHsgZGctZXJyb3IgIjM6Y29uc3QgLnEuIGNhbm5vdCBi ZSBkZWNsYXJlZCAubXV0YWJsZS4iIH0gCiB9OwpJbmRleDogdGVzdHN1aXRl L2crKy5vbGQtZGVqYS9nKysub3RoZXIvZGVjbDYuQwo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09Ci0tLSB0ZXN0c3VpdGUvZysrLm9sZC1kZWphL2crKy5vdGhl ci9kZWNsNi5DCShyZXZpc2lvbiAyNjc5MzEpCisrKyB0ZXN0c3VpdGUvZysr Lm9sZC1kZWphL2crKy5vdGhlci9kZWNsNi5DCSh3b3JraW5nIGNvcHkpCkBA IC0xMSwxNiArMTEsMTYgQEAgc3RydWN0IEEKICAgZnJpZW5kIGV4cGxpY2l0 IEI6OkIgKCk7ICAgIC8vIHsgZGctZXJyb3IgIiIgfSBvbmx5IGN0b3IgZGVj bHMgY2FuIGJlIGV4cGxpY2l0CiAgIGludCBmKGNvbnN0KTsgICAgICAgICAg ICAgICAvLyB7IGRnLWVycm9yICIiIH0gYW5zaSBmb3JiaWRzIG5vIHR5cGUK ICAgY29uc3QgazsgICAgICAgICAgICAgICAgICAgIC8vIHsgZGctZXJyb3Ig IiIgfSBhbnNpIGZvcmJpZHMgbm8gdHlwZQotICBtdXRhYmxlIGZyaWVuZCBp bnQgajEgKCk7ICAgLy8geyBkZy1lcnJvciAiIiB9IG5vbi1tZW1iZXIgY2Fu bm90IGJlIG11dGFibGUKKyAgbXV0YWJsZSBmcmllbmQgaW50IGoxICgpOyAg IC8vIHsgZGctZXJyb3IgIjM6c3RvcmFnZSBjbGFzcyBzcGVjaWZpZXJzIiB9 IG5vbi1tZW1iZXIgY2Fubm90IGJlIG11dGFibGUKICAgbXV0YWJsZSB0eXBl ZGVmIGludCBkOyAgICAgIC8vIHsgZGctZXJyb3IgIiIgfSBub24tb2JqZWN0 IGNhbm5vdCBiZSBtdXRhYmxlCi0gIG11dGFibGUgaW50IGZuICgpOyAgICAg ICAgICAvLyB7IGRnLWVycm9yICIiIH0gbm9uLW9iamVjdCBjYW5ub3QgYmUg bXV0YWJsZQotICB2b2lkIGZuIChtdXRhYmxlIGludCk7ICAgICAgLy8geyBk Zy1lcnJvciAiIiB9IG5vbi1tZW1iZXIgY2Fubm90IGJlIG11dGFibGUKKyAg bXV0YWJsZSBpbnQgZm4gKCk7ICAgICAgICAgIC8vIHsgZGctZXJyb3IgIjM6 ZnVuY3Rpb24gLmZuLiBjYW5ub3QgYmUgZGVjbGFyZWQgLm11dGFibGUuIiB9 IG5vbi1vYmplY3QgY2Fubm90IGJlIG11dGFibGUKKyAgdm9pZCBmbiAobXV0 YWJsZSBpbnQpOyAgICAgIC8vIHsgZGctZXJyb3IgIjEyOm5vbi1tZW1iZXIg LnBhcmFtZXRlci4gY2Fubm90IGJlIGRlY2xhcmVkIC5tdXRhYmxlLiIgfSBu b24tbWVtYmVyIGNhbm5vdCBiZSBtdXRhYmxlCiAgIG11dGFibGUgc3RhdGlj IGludCBzOyAgICAgICAvLyB7IGRnLWVycm9yICIiIH0gc3RhdGljIGNhbm5v dCBiZSBtdXRhYmxlCi0gIG11dGFibGUgY29uc3QgaW50IHMxOyAgICAgICAv LyB7IGRnLWVycm9yICIiIH0gY29uc3QgY2Fubm90IGJlIG11dGFibGUKKyAg bXV0YWJsZSBjb25zdCBpbnQgczE7ICAgICAgIC8vIHsgZGctZXJyb3IgIjM6 Y29uc3QgLnMxLiBjYW5ub3QgYmUgZGVjbGFyZWQgLm11dGFibGUuIiB9IGNv bnN0IGNhbm5vdCBiZSBtdXRhYmxlCiAgIG11dGFibGUgY29uc3QgaW50ICpz MjsgICAgICAvLyBvawotICBtdXRhYmxlIGludCAqY29uc3QgczM7ICAgICAg Ly8geyBkZy1lcnJvciAiIiB9IGNvbnN0IGNhbm5vdCBiZSBtdXRhYmxlCisg IG11dGFibGUgaW50ICpjb25zdCBzMzsgICAgICAvLyB7IGRnLWVycm9yICIz OmNvbnN0IC5zMy4gY2Fubm90IGJlIGRlY2xhcmVkIC5tdXRhYmxlLiIgfSBj b25zdCBjYW5ub3QgYmUgbXV0YWJsZQogICBleHBsaWNpdCBBICgpOyAgICAg ICAgICAgICAgLy8gb2sKIH07Ci1tdXRhYmxlIGludCBnOyAgICAgICAgICAg ICAgICAvLyB7IGRnLWVycm9yICIiIH0gbm9uLW1lbWJlciBjYW5ub3QgYmUg bXV0YWJsZQorbXV0YWJsZSBpbnQgZzsgICAgICAgICAgICAgICAgLy8geyBk Zy1lcnJvciAiMTpub24tbWVtYmVyIC5nLiBjYW5ub3QgYmUgZGVjbGFyZWQg Lm11dGFibGUuIiB9IG5vbi1tZW1iZXIgY2Fubm90IGJlIG11dGFibGUKIGV4 cGxpY2l0IEE6OkEgKCkge30gICAgICAgICAgIC8vIHsgZGctZXJyb3IgIiIg fSBvbmx5IGN0b3IgZGVjbHMgY2FuIGJlIGV4cGxpY2l0CiAK --------------A1CBA45F6706ED288EDBDF9B--