From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2067.outbound.protection.outlook.com [40.107.22.67]) by sourceware.org (Postfix) with ESMTPS id A52383858D28 for ; Mon, 6 Dec 2021 09:54:57 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org A52383858D28 Received: from AS9PR05CA0044.eurprd05.prod.outlook.com (2603:10a6:20b:489::34) by VI1PR08MB4495.eurprd08.prod.outlook.com (2603:10a6:803:f3::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.21; Mon, 6 Dec 2021 09:54:54 +0000 Received: from VE1EUR03FT030.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:489:cafe::7f) by AS9PR05CA0044.outlook.office365.com (2603:10a6:20b:489::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.14 via Frontend Transport; Mon, 6 Dec 2021 09:54:54 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by VE1EUR03FT030.mail.protection.outlook.com (10.152.18.66) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.13 via Frontend Transport; Mon, 6 Dec 2021 09:54:53 +0000 Received: ("Tessian outbound de6049708a0a:v110"); Mon, 06 Dec 2021 09:54:53 +0000 X-CR-MTA-TID: 64aa7808 Received: from 10226227599a.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id A58F5117-883F-4AFE-B4C6-C75B72213E95.1; Mon, 06 Dec 2021 09:54:46 +0000 Received: from EUR04-DB3-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 10226227599a.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Mon, 06 Dec 2021 09:54:46 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ETZ8Alc+GJg0VFbHEVVvq0oHWb1zgRJaeq/hgxZd1PcoLcA2L26l3aG7fT83+kmq1w9CV8+41tM+8r2t1wYvaB47H6uu+LX7cUP/6IG9OYThfDv4Gvxs4JDhfvoXkBBmilG2yVvrnvTTPMLY+p9sKZjswdMGxF0XonU4OT6egs1qb95APvnVeU3X2Vwfzyf10w/H/AnT4YB4qZGMmiYP4pS4xO/bf4IBuVEAOjL5071y0n0RTBLylqPLlXAsND4YG1eP/pF37jJL30muQ6+d7x0N69SI8m8w6+OkfY60sgmS42HxaEUkcERRx+fPdgL01utf/69fh6RyzdSohVPSAw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=AuTtQwHFVuPlZOuFSUy9BCsIJMj09l71jSAaz1D/Nsc=; b=Ky1Ivvr+WzFKPTq4tnZl+LU6jX+4HzpWqfjo3hYosr6sRTMBGser79ZNm2EYYFKeWK7Pnyt5UFAtrmb7ddGgQu7p2Iwtss5DwqfisnG/xr0hPGCNW49KmeUY3h2sdKMwUUvUG+HzjTpaVeW9zlm7nxPQxq+VDv7AZD4yp20HfwroEn/e1ijsJ+zWcee6L+tTQIlJV7zX2QFfRs1jTH8uMF9QsvMod3tMZeptapZ+vbr/S0NFCWrLXVzUpxg1hpzWBSQcoF6ISJ3JihZkJ8UIc8l2/vIuXJaNwf5z7VYHW9W05kCAFU3GXDMti6lN7kQpNobbqETh1QjJPGBxgPkp/Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none Received: from VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) by VE1PR08MB4861.eurprd08.prod.outlook.com (2603:10a6:802:a5::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4755.16; Mon, 6 Dec 2021 09:54:43 +0000 Received: from VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::12a:3d2c:81ff:8fcc]) by VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::12a:3d2c:81ff:8fcc%9]) with mapi id 15.20.4755.021; Mon, 6 Dec 2021 09:54:43 +0000 From: Tamar Christina To: Richard Sandiford CC: "jlaw@tachyum.com" , nd , Richard Biener , GCC Patches Subject: RE: [PATCH]middle-end cse: Make sure duplicate elements are not entered into the equivalence set [PR103404] Thread-Topic: [PATCH]middle-end cse: Make sure duplicate elements are not entered into the equivalence set [PR103404] Thread-Index: AQHX5PRZD+XAU+VdDEyXdfalDGWtE6waNYQAgAAAtiCABPGDsIAGHHrQ Date: Mon, 6 Dec 2021 09:54:42 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ts-tracking-id: F37CBD6B7B8EDE419942EC67B2DA0ED5.0 x-checkrecipientchecked: true Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-MS-Office365-Filtering-Correlation-Id: c9185421-cc9e-4114-f3a9-08d9b89e73fa x-ms-traffictypediagnostic: VE1PR08MB4861:EE_|VE1EUR03FT030:EE_|VI1PR08MB4495:EE_ X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:3276;OLM:3276; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: usZM4lV9P4hongQgGAalp25cIG6N7NyYwdCBsd46EtyDTNaBYhSwkbrSmvANg2q4WLKianL4it1OujbQCuj+WEYHzbqKPk70c//y51q8JVYiG82eDE5F/n6ZbPTs4ePEyuThALr/OHVE0hynrBA4kBZij81lAbAmi8mli3jcII5u+XM/NDB9L5fGWG02GEZcdGMhnsmp3AsdFGyk3bP25vzz89e/hIhOqbuQgt/OuwA0vbfIMxa+zof7kTSmrz2BKU30Wx+URgzZMuLQ4CF5EAe1TwDA+XG5omdOE5iynyOr2xq3d+jB5t9UkwSBp2f3Js1XxCzVNSuCN77Q/IM7Y+eXcE+z220m3pPw5W56aPZB46fFjnf1/0or7HigSGrYxrNDuzSceXOy++YkQFr/8W8gr2OyFaQIvErRsyEIQwXnFafdG7uqwhCF3v9mSaPRUitbir5uGnl04WKxaGKuBHV9uevcnNU7qSXu5aLj2Lz7x8mFEph63YDRvybf7fn9Q9eD/gnLBjTTjkduKxokb/d5iTHvDoAaYzE5J8aT6YBMSCfoN4tQ/Q5EvbYjlJYIUS73oh5fkFaaB561sMGPyudHbzwDKKzB9DKCkWflhR/SHnMiqb5cRXSaa4tu4UC7X3T5Hr/8uH5ikqXnYwMYZSYvGyrBZyab8p4gKBjQyUob6ptYOZhj0bpzC6C3WsPYVG5jd7Ve2Eh1A28n4s77ObMXG9iMdTQS3Jgc3bHRlu4mQq9hV0Ht55fQMKrxvqul3VBdmZ6s8I95lo40j+u/+QI7VDKEA0FHNl+VgoKfZis= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR08MB5325.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(38070700005)(71200400001)(8676002)(7696005)(84970400001)(66446008)(66476007)(316002)(64756008)(66946007)(9686003)(33656002)(66556008)(6636002)(26005)(6506007)(122000001)(38100700002)(54906003)(99936003)(5660300002)(186003)(8936002)(86362001)(76116006)(6862004)(2906002)(55016003)(52536014)(508600001)(4326008); DIR:OUT; SFP:1101; Content-Type: multipart/mixed; boundary="_002_VI1PR08MB5325BA2EF871F609DA89CA3FFF6D9VI1PR08MB5325eurp_" MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VE1PR08MB4861 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: VE1EUR03FT030.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 002cd61c-288a-48b0-436c-08d9b89e6d8b X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: WvuzOXKtAOC5Ft0qnAuHIStBdDG95M1x3ez51ePKmxnROOvUV5HAgFx0L4X99KxLZG4TrxuldQTZP6yyMc7hOyghkh95W/AdbgwaX4cpQl+f8HTbkEShv/klMWVJ1sOBd0J5bX/t1PKHoIGGuKsS8ovnOSKZmtyGXvLiBgG914hDgLAoSouS8IrBQzojR+MSk/8vsyncfDk178l4OUjrVfhtaReIpMwmtLGjHzOkXpWDG271GKivRumujiRqPt3sy7WXI3QGvirTjV+DNEA84/XL4CyfbcUzdtdrw6oRcVJcSrfCq/cLiUHpoLAkx7OxP1dL6U71oVd6LlsEOaJ0zSqD//iVADPbAA4C4Ndo92rTa6XAV0QI+ht2G/Ca4aiG0Fe/jOYPPETsP+S3sIcYrRFxZsy13letvA5dp1MIHOBK7nmBtgtYDYA4Dt+w3d9pi/1FeF00g6rKOkSoAlyOd80dxuQ0JGVEa0++zyHxE1iLROtC1ikZLuMIMavF+ZAptwjqqAq3lVRQnMK3356rVOC1qKf2mD1hqtrNuqe5pYT4KVCWKw2bDl51iDWlnp9H01de5EbcQOk83jj3GsF+6HUCkGT4SrLQU7mdHa75zViRSO7PfEhsqqD8MJ2Jtau7fcH76muyN6Ns+zdeGjLbO4EvJv42doT99WEhbXgM2I0E4GeC5sd46Mupeq5pdg/YnPDfWC48lTR4c9UJB+mUcDbpvRPO/0EMeoGK8yEc4hZw0rnPv/w7tk/XQwXO7DEV8tvWvMlFWqTV+EBHVxJB4NnekK010asSzPWaf+p5qd0= X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(4636009)(46966006)(36840700001)(84970400001)(316002)(55016003)(81166007)(86362001)(8936002)(235185007)(2906002)(6506007)(356005)(4326008)(82310400004)(8676002)(9686003)(26005)(336012)(47076005)(33656002)(52536014)(7696005)(36860700001)(70586007)(6636002)(70206006)(6862004)(5660300002)(99936003)(54906003)(508600001)(186003); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Dec 2021 09:54:53.8868 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: c9185421-cc9e-4114-f3a9-08d9b89e73fa X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: VE1EUR03FT030.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB4495 X-Spam-Status: No, score=-13.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 06 Dec 2021 09:54:59 -0000 --_002_VI1PR08MB5325BA2EF871F609DA89CA3FFF6D9VI1PR08MB5325eurp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi, As discussed off-line this can only happen with a V1 mode, so here's a much= simpler patch. Bootstrapped Regtested on aarch64-none-linux-gnu, x86_64-pc-linux-gnu and no regressions. Ok for master? Thanks, Tamar gcc/ChangeLog: PR rtl-optimization/103404 * cse.c (find_sets_in_insn): Don't select elements out of a V1 mode subreg. gcc/testsuite/ChangeLog: PR rtl-optimization/103404 * gcc.target/i386/pr103404.c: New test. --- inline copy of patch --- diff --git a/gcc/cse.c b/gcc/cse.c index c1c7d0ca27b73c4b944b4719f95fece74e0358d5..dc5d5aed047c7776f44b159a428= 6390d6499c18d 100644 --- a/gcc/cse.c +++ b/gcc/cse.c @@ -4275,7 +4275,12 @@ find_sets_in_insn (rtx_insn *insn, vec *= psets) else if (GET_CODE (SET_SRC (x)) =3D=3D CALL) ; else if (GET_CODE (SET_SRC (x)) =3D=3D CONST_VECTOR - && GET_MODE_CLASS (GET_MODE (SET_SRC (x))) !=3D MODE_VECTOR_BOOL) + && GET_MODE_CLASS (GET_MODE (SET_SRC (x))) !=3D MODE_VECTOR_BOOL + /* Prevent duplicates from being generated if the type is a V1 + type and a subreg. Folding this will result in the same + element as folding x itself. */ + && !(SUBREG_P (SET_DEST (x)) + && known_eq (GET_MODE_NUNITS (GET_MODE (SET_SRC (x))), 1))) { /* First register the vector itself. */ add_to_set (psets, x); diff --git a/gcc/testsuite/gcc.target/i386/pr103404.c b/gcc/testsuite/gcc.t= arget/i386/pr103404.c new file mode 100644 index 0000000000000000000000000000000000000000..66f33645301db09503fc0977fd0= f061a19e56ea5 --- /dev/null +++ b/gcc/testsuite/gcc.target/i386/pr103404.c @@ -0,0 +1,32 @@ +/* { dg-do compile } */ +/* { dg-additional-options "-Og -fcse-follow-jumps -fno-dce -fno-early-inl= ining -fgcse -fharden-conditional-branches -frerun-cse-after-loop -fno-tree= -ccp -mavx5124fmaps -std=3Dc99 -w" } */ + +typedef unsigned __attribute__((__vector_size__ (4))) U; +typedef unsigned __attribute__((__vector_size__ (16))) V; +typedef unsigned __attribute__((__vector_size__ (64))) W; + +int x, y; + +V v; +W w; + +inline +int bar (U a) +{ + a |=3D x; + W k =3D + __builtin_shufflevector (v, 5 / a, + 2, 4, 0, 2, 4, 1, 0, 1, + 1, 2, 1, 3, 0, 4, 4, 0); + w =3D k; + y =3D 0; +} + +int +foo () +{ + bar ((U){0xffffffff}); + for (unsigned i; i < sizeof (foo);) + ; +} + --_002_VI1PR08MB5325BA2EF871F609DA89CA3FFF6D9VI1PR08MB5325eurp_ Content-Type: application/octet-stream; name="rb15109.patch" Content-Description: rb15109.patch Content-Disposition: attachment; filename="rb15109.patch"; size=1826; creation-date="Mon, 06 Dec 2021 09:54:25 GMT"; modification-date="Mon, 06 Dec 2021 09:51:17 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy9jc2UuYyBiL2djYy9jc2UuYwppbmRleCBjMWM3ZDBjYTI3YjczYzRi OTQ0YjQ3MTlmOTVmZWNlNzRlMDM1OGQ1Li5kYzVkNWFlZDA0N2M3Nzc2ZjQ0YjE1OWE0Mjg2Mzkw ZDY0OTljMThkIDEwMDY0NAotLS0gYS9nY2MvY3NlLmMKKysrIGIvZ2NjL2NzZS5jCkBAIC00Mjc1 LDcgKzQyNzUsMTIgQEAgZmluZF9zZXRzX2luX2luc24gKHJ0eF9pbnNuICppbnNuLCB2ZWM8c3Ry dWN0IHNldD4gKnBzZXRzKQogICAgICAgZWxzZSBpZiAoR0VUX0NPREUgKFNFVF9TUkMgKHgpKSA9 PSBDQUxMKQogCTsKICAgICAgIGVsc2UgaWYgKEdFVF9DT0RFIChTRVRfU1JDICh4KSkgPT0gQ09O U1RfVkVDVE9SCi0JICAgICAgICYmIEdFVF9NT0RFX0NMQVNTIChHRVRfTU9ERSAoU0VUX1NSQyAo eCkpKSAhPSBNT0RFX1ZFQ1RPUl9CT09MKQorCSAgICAgICAmJiBHRVRfTU9ERV9DTEFTUyAoR0VU X01PREUgKFNFVF9TUkMgKHgpKSkgIT0gTU9ERV9WRUNUT1JfQk9PTAorCSAgICAgICAvKiBQcmV2 ZW50IGR1cGxpY2F0ZXMgZnJvbSBiZWluZyBnZW5lcmF0ZWQgaWYgdGhlIHR5cGUgaXMgYSBWMQor CQkgIHR5cGUgYW5kIGEgc3VicmVnLiAgRm9sZGluZyB0aGlzIHdpbGwgcmVzdWx0IGluIHRoZSBz YW1lCisJCSAgZWxlbWVudCBhcyBmb2xkaW5nIHggaXRzZWxmLiAgKi8KKwkgICAgICAgJiYgIShT VUJSRUdfUCAoU0VUX0RFU1QgKHgpKQorCQkgICAgJiYga25vd25fZXEgKEdFVF9NT0RFX05VTklU UyAoR0VUX01PREUgKFNFVF9TUkMgKHgpKSksIDEpKSkKIAl7CiAJICAvKiBGaXJzdCByZWdpc3Rl ciB0aGUgdmVjdG9yIGl0c2VsZi4gICovCiAJICBhZGRfdG9fc2V0IChwc2V0cywgeCk7CmRpZmYg LS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvaTM4Ni9wcjEwMzQwNC5jIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHIxMDM0MDQuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NApp bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NmYzMzY0NTMw MWRiMDk1MDNmYzA5NzdmZDBmMDYxYTE5ZTU2ZWE1Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rl c3RzdWl0ZS9nY2MudGFyZ2V0L2kzODYvcHIxMDM0MDQuYwpAQCAtMCwwICsxLDMyIEBACisvKiB7 IGRnLWRvIGNvbXBpbGUgfSAqLworLyogeyBkZy1hZGRpdGlvbmFsLW9wdGlvbnMgIi1PZyAtZmNz ZS1mb2xsb3ctanVtcHMgLWZuby1kY2UgLWZuby1lYXJseS1pbmxpbmluZyAtZmdjc2UgLWZoYXJk ZW4tY29uZGl0aW9uYWwtYnJhbmNoZXMgLWZyZXJ1bi1jc2UtYWZ0ZXItbG9vcCAtZm5vLXRyZWUt Y2NwIC1tYXZ4NTEyNGZtYXBzIC1zdGQ9Yzk5IC13IiB9ICovCisKK3R5cGVkZWYgdW5zaWduZWQg X19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fICg0KSkpIFU7Cit0eXBlZGVmIHVuc2lnbmVk IF9fYXR0cmlidXRlX18oKF9fdmVjdG9yX3NpemVfXyAoMTYpKSkgVjsKK3R5cGVkZWYgdW5zaWdu ZWQgX19hdHRyaWJ1dGVfXygoX192ZWN0b3Jfc2l6ZV9fICg2NCkpKSBXOworCitpbnQgeCwgeTsK KworViB2OworVyB3OworCitpbmxpbmUKK2ludCBiYXIgKFUgYSkKK3sKKyAgYSB8PSB4OworICBX IGsgPQorICAgIF9fYnVpbHRpbl9zaHVmZmxldmVjdG9yICh2LCA1IC8gYSwKKwkJCSAgICAgMiwg NCwgMCwgMiwgNCwgMSwgMCwgMSwKKwkJCSAgICAgMSwgMiwgMSwgMywgMCwgNCwgNCwgMCk7Cisg IHcgPSBrOworICB5ID0gMDsKK30KKworaW50Citmb28gKCkKK3sKKyAgYmFyICgoVSl7MHhmZmZm ZmZmZn0pOworICBmb3IgKHVuc2lnbmVkIGk7IGkgPCBzaXplb2YgKGZvbyk7KQorICAgIDsKK30K Kwo= --_002_VI1PR08MB5325BA2EF871F609DA89CA3FFF6D9VI1PR08MB5325eurp_--