From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR03-VE1-obe.outbound.protection.outlook.com (mail-eopbgr50050.outbound.protection.outlook.com [40.107.5.50]) by sourceware.org (Postfix) with ESMTPS id 290FE3857010 for ; Tue, 12 Oct 2021 16:36:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 290FE3857010 Received: from DB6PR0501CA0040.eurprd05.prod.outlook.com (2603:10a6:4:67::26) by AM0PR08MB4130.eurprd08.prod.outlook.com (2603:10a6:208:132::29) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.18; Tue, 12 Oct 2021 16:36:46 +0000 Received: from DB5EUR03FT050.eop-EUR03.prod.protection.outlook.com (2603:10a6:4:67:cafe::e) by DB6PR0501CA0040.outlook.office365.com (2603:10a6:4:67::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.21 via Frontend Transport; Tue, 12 Oct 2021 16:36:45 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; gcc.gnu.org; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;gcc.gnu.org; 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 DB5EUR03FT050.mail.protection.outlook.com (10.152.21.128) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.18 via Frontend Transport; Tue, 12 Oct 2021 16:36:45 +0000 Received: ("Tessian outbound 16951d3c485e:v103"); Tue, 12 Oct 2021 16:36:45 +0000 X-CR-MTA-TID: 64aa7808 Received: from 3f61afdf777e.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id AF351B7E-5E87-411E-B8D9-BEBD4F2A549A.1; Tue, 12 Oct 2021 16:36:37 +0000 Received: from EUR01-HE1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 3f61afdf777e.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Tue, 12 Oct 2021 16:36:37 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Nxl3C/2KBrbQkbXgN4lVSvi/CaAqCbXCe+usoKYVn18YYmJmOI62Rg04u9YYb0Sa4Ta5kINSdV88cxwwDXhwDD1EBDefuItNHCY0z9Sz3A1lJ569gCvBImDgsw0aa9Rk7GQBH364jHFdrhCbsNWQ9NHzOAXoM+iMqmbw6yrQ2UpZQ8rduSBHpo3TbsDBnf6NnjqOSskFX37NbGk8AV3qA1aX6sWhVp653yM/5/wm4Im4OsnoJCMBaDmHv6/GU7RaWZ5fyciPjTCGn2peIuU/ibfTccyRD7wEnxnxTJDiMcmdt505Fk+a6q+KIQMsFdleuDlLO/TGlOGzWrBzoOIvAQ== 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=KDqWmJDjL8g31E+xzXcHkcQPvkchCk4l2rmRkcAqbxw=; b=TETEccd6+FeT48/gDUMaCCbBPj0Daxz6tzTK4Lp31H9gRCc01P+J7zODh2L3tGkm71kxvD+OD6MKDtqOFPjI/R7vD2u59ubBMInRjoYmJeNznj/DIIRzXLm9bfpFJJ4eqPrY6yXYkyH8/pjr8WO3fB+EL/I5M5oFkO0QuxyafxTD/fa2Dfbnkkr2QwT38Gg5CtPXfIJqncmoUrXK9aNX62ihbooRD69CB3xAWTN2fqi+XKi9OGwqC7ORGfx62dpUUsPPJO6jF5niYHj/5vj2NfxaPEcEVn5Lr6SW9+6u6yEHoHLcFC0bc6tBlfn4daI7c1seCeUJOkVx8PKNajHidQ== 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 PAXPR08MB6926.eurprd08.prod.outlook.com (2603:10a6:102:138::24) by PR2PR08MB5227.eurprd08.prod.outlook.com (2603:10a6:101:1f::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4587.20; Tue, 12 Oct 2021 16:36:32 +0000 Received: from PAXPR08MB6926.eurprd08.prod.outlook.com ([fe80::5c36:b98e:4d17:df49]) by PAXPR08MB6926.eurprd08.prod.outlook.com ([fe80::5c36:b98e:4d17:df49%7]) with mapi id 15.20.4587.026; Tue, 12 Oct 2021 16:36:32 +0000 From: Kyrylo Tkachov To: Tamar Christina , "gcc-patches@gcc.gnu.org" CC: nd , Richard Earnshaw , Marcus Shawcroft , Richard Sandiford Subject: RE: [PATCH 2/7]AArch64 Add combine patterns for narrowing shift of half top bits (shuffle) Thread-Topic: [PATCH 2/7]AArch64 Add combine patterns for narrowing shift of half top bits (shuffle) Thread-Index: AQHXtU3cKTsnGV3s+06lbTJ7CBcdR6u8RsFQgBNZnQCAAAOcIA== Date: Tue, 12 Oct 2021 16:36:32 +0000 Message-ID: References: <20210929161942.GA28881@arm.com> In-Reply-To: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: B27D3CA62D5B0847B727266297AA896D.0 x-checkrecipientchecked: true Authentication-Results-Original: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: be6b7426-4a22-4696-d320-08d98d9e7b15 x-ms-traffictypediagnostic: PR2PR08MB5227:|AM0PR08MB4130: x-ms-exchange-transport-forked: True X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:146;OLM:146; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: 3JOI1KmH+RRAooKfzEUuR1BGEoA5mN19u4DrzV332hV2KqqsEtC2APNBuxZGUMjAsbRNWhgiVrqq/krNtAvSqiEJhwGbeaHbuwzcbmHLFDCU6r4owrBS9PHbSFyMOFr027/uZr+J4It9PDLapOUCzxuNIZLZlJ9Rc0qw2xlUkeUpWqnb7kI+KUDUgBTkVYajiO/C3+/oigrvAqeVxT2tke49koCEkhbN8X0kbsyM040pyfz5spTmSREaw2pwlAxtEoGeTPP6HYroB+imtI178ivPiryURG36BOAw23Hy5bidtNsbEN23/Rnpwgvswjsk1twUXvlU2aWKe0SuRgf3RZaw+1Zf1NHp1DnEh4XAHWpxNdtOnaU0sWrc/BwF4VUx4/UkHRmHhppi9qzcv9zY1UlVv3wMHem6moaJpvVs911n62N4SQQaJVLPZWsHOymynvta+pDJE8FZ7MTcjivrELq3Uy9UAXqTyz6YtelrZjNw7AmiIJ1tfOjJ3FSHeiTRmyp2oM9OOMJajLBesON19I7WtAjU9JBEDfleCinvbHmfUmbsKwDB28EaiSuhsgqavALZE3s75REQa6AlZiei/hPox34Vr+uW8Mzt+i9btCGcEWmJzhoW35cq7Q6mMXwUZAAsezWIx1+/zSFyvks4Ynedm1Z+afneDmRFpron1qUfN4TDkCtgP9kXwl8+thtRBIFAuFKi+qBj/1YqHUH9QxjCk+UfBk67UAbQy8RoXRv4Q8lNNc2dK9cAmwSPIacaYI65NRwFlqnjWzWh3MnzJOp4PGx7kGgLTpYIzapdiFaZ74DuxDbwxu8YSx+7nV0ESM3kph8J5roF7ZoICX5fsQ== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PAXPR08MB6926.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(186003)(8936002)(4743002)(508600001)(5660300002)(4326008)(55016002)(7696005)(110136005)(66446008)(122000001)(83380400001)(53546011)(316002)(71200400001)(9686003)(66556008)(86362001)(54906003)(64756008)(66946007)(66476007)(52536014)(38070700005)(6506007)(8676002)(26005)(2906002)(76116006)(33656002)(38100700002); DIR:OUT; SFP:1101; Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR2PR08MB5227 Original-Authentication-Results: arm.com; dkim=none (message not signed) header.d=none;arm.com; dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DB5EUR03FT050.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: fb2ea707-978b-42c3-a6b1-08d98d9e733d X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: z38ZB9mOtpDWHWeRAlt/OVb8zIYLAmZFF7l9kP78r0saeolOPN8PapSb/EYsr2RHUwfth/gYPaH2fiGhX8osDKsOHNOSlh7csvSZKFGq+NlXXqL8iafZg15Cnl0K743pgZ7BW5liC9mg/Y4wuuLyrvc90qMZ/blzZLTtLcfqgrp3kgyWOISOST6edf/o9tCSn1N7L1PAMJq/8dTUqGfF4wVFgw7y16JcCA2QmPhmaNpeXl2kJrJJNwWXQgUPmjSc882rWfWvYwLpjPLfvBZ9PV4YwBuGOvutpREB7TrvYkL4W2SFB1i24wB2b35YBjJufhBnGIgl4rKoXKflHlA5fKeLqhuNURlsEUIDEcPFbBJXMnBxHQxHMF8EMRqeMk1iLDHg/UCQm3UxMtGwhEkTFg1bI6MYB98aJWMDn3elGMJsQBhmjdSEoCuCs9JK09nwXLtabwpb/WNZ3KyIZ/WRSW1R3mX2MBB818QLkMUqLVbA6zguPHhNHbyTXJRHc16Zm75pp+6G48bof1zv0YzuA6lKUOJdH7dICMvOJQ/1CrHCSqZq2ZIqkI4NA7AmlIYh9k5OU8fxJk6OSDmg/FdescawkB6efThFnjPCaP1orLUpsU2llHn8GFe2hGnEg/fyyzjMrNOerWa8ziaUFiaIw/vWkFJZqQyg0n/CRn711M024gMnyAM+Q5My2icrdl1PzTvNvUjB3OpBBTCK8d7lzMgeZWyyRjHJ/rlh3H5xDl+TZUAUZeUE9DT/nGrzrXAu6HrGbAQUCwB6T9SNUelER74GjJSS9HwPmC4hdQa0E/6VKkUIBi2sd4Jly59kKJV6RVu9M6vR/Syxi6DwPZANWw== 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)(83380400001)(36860700001)(86362001)(4743002)(54906003)(4326008)(70586007)(336012)(186003)(52536014)(70206006)(5660300002)(2906002)(33656002)(47076005)(508600001)(6506007)(316002)(26005)(110136005)(8936002)(356005)(82310400003)(8676002)(9686003)(55016002)(53546011)(7696005)(81166007); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Oct 2021 16:36:45.8932 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: be6b7426-4a22-4696-d320-08d98d9e7b15 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: DB5EUR03FT050.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR08MB4130 X-Spam-Status: No, score=-12.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, KAM_LOTSOFHASH, 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: Tue, 12 Oct 2021 16:36:50 -0000 DQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogVGFtYXIgQ2hyaXN0aW5h IDxUYW1hci5DaHJpc3RpbmFAYXJtLmNvbT4NCj4gU2VudDogVHVlc2RheSwgT2N0b2JlciAxMiwg MjAyMSA1OjIzIFBNDQo+IFRvOiBLeXJ5bG8gVGthY2hvdiA8S3lyeWxvLlRrYWNob3ZAYXJtLmNv bT47IGdjYy1wYXRjaGVzQGdjYy5nbnUub3JnDQo+IENjOiBuZCA8bmRAYXJtLmNvbT47IFJpY2hh cmQgRWFybnNoYXcgPFJpY2hhcmQuRWFybnNoYXdAYXJtLmNvbT47DQo+IE1hcmN1cyBTaGF3Y3Jv ZnQgPE1hcmN1cy5TaGF3Y3JvZnRAYXJtLmNvbT47IFJpY2hhcmQgU2FuZGlmb3JkDQo+IDxSaWNo YXJkLlNhbmRpZm9yZEBhcm0uY29tPg0KPiBTdWJqZWN0OiBSRTogW1BBVENIIDIvN11BQXJjaDY0 IEFkZCBjb21iaW5lIHBhdHRlcm5zIGZvciBuYXJyb3dpbmcgc2hpZnQNCj4gb2YgaGFsZiB0b3Ag Yml0cyAoc2h1ZmZsZSkNCj4gDQo+IEhpIEFsbCwNCj4gDQo+IFRoaXMgaXMgIGEgbmV3IHZlcnNp b24gd2l0aCBtb3JlIHRlc3RzIGFuZCBCRSBzdXBwb3J0Lg0KPiANCj4gQm9vdHN0cmFwcGVkIFJl Z3Rlc3RlZCBvbiBhYXJjaDY0LW5vbmUtbGludXgtZ251IGFuZCBubyBpc3N1ZXMuDQo+IA0KPiBP ayBmb3IgbWFzdGVyPw0KDQpPay4NClRoYW5rcywNCkt5cmlsbA0KDQo+IA0KPiBUaGFua3MsDQo+ IFRhbWFyDQo+IA0KPiBnY2MvQ2hhbmdlTG9nOg0KPiANCj4gCSogY29uZmlnL2FhcmNoNjQvYWFy Y2g2NC1zaW1kLm1kDQo+IAkoKmFhcmNoNjRfPHNybl9vcD50b3BiaXRzX3NodWZmbGU8bW9kZT5f bGUpOiBOZXcuDQo+IAkoKmFhcmNoNjRfdG9wYml0c19zaHVmZmxlPG1vZGU+X2xlKTogTmV3Lg0K PiAJKCphYXJjaDY0Xzxzcm5fb3A+dG9wYml0c19zaHVmZmxlPG1vZGU+X2JlKTogTmV3Lg0KPiAJ KCphYXJjaDY0X3RvcGJpdHNfc2h1ZmZsZTxtb2RlPl9iZSk6IE5ldy4NCj4gCSogY29uZmlnL2Fh cmNoNjQvcHJlZGljYXRlcy5tZA0KPiAJKGFhcmNoNjRfc2ltZF9zaGlmdF9pbW1fdmVjX2V4YWN0 X3RvcCk6IE5ldy4NCj4gDQo+IGdjYy90ZXN0c3VpdGUvQ2hhbmdlTG9nOg0KPiANCj4gCSogZ2Nj LnRhcmdldC9hYXJjaDY0L3Nocm4tY29tYmluZS0xMC5jOiBOZXcgdGVzdC4NCj4gCSogZ2NjLnRh cmdldC9hYXJjaDY0L3Nocm4tY29tYmluZS01LmM6IE5ldyB0ZXN0Lg0KPiAJKiBnY2MudGFyZ2V0 L2FhcmNoNjQvc2hybi1jb21iaW5lLTYuYzogTmV3IHRlc3QuDQo+IAkqIGdjYy50YXJnZXQvYWFy Y2g2NC9zaHJuLWNvbWJpbmUtNy5jOiBOZXcgdGVzdC4NCj4gCSogZ2NjLnRhcmdldC9hYXJjaDY0 L3Nocm4tY29tYmluZS04LmM6IE5ldyB0ZXN0Lg0KPiAJKiBnY2MudGFyZ2V0L2FhcmNoNjQvc2hy bi1jb21iaW5lLTkuYzogTmV3IHRlc3QuDQo+IA0KPiAtLS0gaW5saW5lIGNvcHkgb2YgcGF0Y2gg LS0tDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQtc2ltZC5t ZA0KPiBiL2djYy9jb25maWcvYWFyY2g2NC9hYXJjaDY0LXNpbWQubWQNCj4gaW5kZXgNCj4gNTcx NWRiNGUxZTEzODZlNzI0ZTRkNGRlZmQ1ZTVlZDllZmQ4YTg3NC4uN2YwODg4ZWUyZjgxYWUxN2Fj OTdiZTFmDQo+IDg0MzhhMmU1ODg1ODdjMmEgMTAwNjQ0DQo+IC0tLSBhL2djYy9jb25maWcvYWFy Y2g2NC9hYXJjaDY0LXNpbWQubWQNCj4gKysrIGIvZ2NjL2NvbmZpZy9hYXJjaDY0L2FhcmNoNjQt c2ltZC5tZA0KPiBAQCAtMTg1Miw2ICsxODUyLDY2IEBAIChkZWZpbmVfaW5zbg0KPiAiKmFhcmNo NjRfPHNybl9vcD5zaHJuPG1vZGU+Ml92ZWN0X2JlIg0KPiAgICBbKHNldF9hdHRyICJ0eXBlIiAi bmVvbl9zaGlmdF9pbW1fbmFycm93X3EiKV0NCj4gICkNCj4gDQo+ICsoZGVmaW5lX2luc24gIiph YXJjaDY0Xzxzcm5fb3A+dG9wYml0c19zaHVmZmxlPG1vZGU+X2xlIg0KPiArICBbKHNldCAobWF0 Y2hfb3BlcmFuZDo8Vk5BUlJPV1EyPiAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXciKQ0KPiArCSh2 ZWNfY29uY2F0OjxWTkFSUk9XUTI+DQo+ICsgICAgICAgICAgKHRydW5jYXRlOjxWTkFSUk9XUT4N Cj4gKyAgICAgICAgICAgIChTSElGVFJUOlZRTiAobWF0Y2hfb3BlcmFuZDpWUU4gMSAicmVnaXN0 ZXJfb3BlcmFuZCIgInciKQ0KPiArCSAgICAgIChtYXRjaF9vcGVyYW5kOlZRTiAyDQo+ICJhYXJj aDY0X3NpbWRfc2hpZnRfaW1tX3ZlY19leGFjdF90b3AiKSkpDQo+ICsJICAodHJ1bmNhdGU6PFZO QVJST1dRPg0KPiArCSAgICAoU0hJRlRSVDpWUU4gKG1hdGNoX29wZXJhbmQ6VlFOIDMgInJlZ2lz dGVyX29wZXJhbmQiICJ3IikNCj4gKwkgICAgICAobWF0Y2hfZHVwIDIpKSkpKV0NCj4gKyAgIlRB UkdFVF9TSU1EICYmICFCWVRFU19CSUdfRU5ESUFOIg0KPiArICAidXpwMlxcdCUwLjxWMm50eXBl PiwgJTEuPFYybnR5cGU+LCAlMy48VjJudHlwZT4iDQo+ICsgIFsoc2V0X2F0dHIgInR5cGUiICJu ZW9uX3Blcm11dGU8cT4iKV0NCj4gKykNCj4gKw0KPiArKGRlZmluZV9pbnNuICIqYWFyY2g2NF90 b3BiaXRzX3NodWZmbGU8bW9kZT5fbGUiDQo+ICsgIFsoc2V0IChtYXRjaF9vcGVyYW5kOjxWTkFS Uk9XUTI+IDAgInJlZ2lzdGVyX29wZXJhbmQiICI9dyIpDQo+ICsJKHZlY19jb25jYXQ6PFZOQVJS T1dRMj4NCj4gKyAgICAgICAgICAodW5zcGVjOjxWTkFSUk9XUT4gWw0KPiArICAgICAgICAgICAg ICAobWF0Y2hfb3BlcmFuZDpWUU4gMSAicmVnaXN0ZXJfb3BlcmFuZCIgInciKQ0KPiArCSAgICAg IChtYXRjaF9vcGVyYW5kOlZRTiAyDQo+ICJhYXJjaDY0X3NpbWRfc2hpZnRfaW1tX3ZlY19leGFj dF90b3AiKQ0KPiArCSAgICAgXSBVTlNQRUNfUlNIUk4pDQo+ICsJICAodW5zcGVjOjxWTkFSUk9X UT4gWw0KPiArCSAgICAgIChtYXRjaF9vcGVyYW5kOlZRTiAzICJyZWdpc3Rlcl9vcGVyYW5kIiAi dyIpDQo+ICsJICAgICAgKG1hdGNoX2R1cCAyKQ0KPiArCSAgICAgXSBVTlNQRUNfUlNIUk4pKSld DQo+ICsgICJUQVJHRVRfU0lNRCAmJiAhQllURVNfQklHX0VORElBTiINCj4gKyAgInV6cDJcXHQl MC48VjJudHlwZT4sICUxLjxWMm50eXBlPiwgJTMuPFYybnR5cGU+Ig0KPiArICBbKHNldF9hdHRy ICJ0eXBlIiAibmVvbl9wZXJtdXRlPHE+IildDQo+ICspDQo+ICsNCj4gKyhkZWZpbmVfaW5zbiAi KmFhcmNoNjRfPHNybl9vcD50b3BiaXRzX3NodWZmbGU8bW9kZT5fYmUiDQo+ICsgIFsoc2V0ICht YXRjaF9vcGVyYW5kOjxWTkFSUk9XUTI+IDAgInJlZ2lzdGVyX29wZXJhbmQiICI9dyIpDQo+ICsJ KHZlY19jb25jYXQ6PFZOQVJST1dRMj4NCj4gKwkgICh0cnVuY2F0ZTo8Vk5BUlJPV1E+DQo+ICsJ ICAgIChTSElGVFJUOlZRTiAobWF0Y2hfb3BlcmFuZDpWUU4gMyAicmVnaXN0ZXJfb3BlcmFuZCIg InciKQ0KPiArCSAgICAgIChtYXRjaF9vcGVyYW5kOlZRTiAyDQo+ICJhYXJjaDY0X3NpbWRfc2hp ZnRfaW1tX3ZlY19leGFjdF90b3AiKSkpDQo+ICsgICAgICAgICAgKHRydW5jYXRlOjxWTkFSUk9X UT4NCj4gKyAgICAgICAgICAgIChTSElGVFJUOlZRTiAobWF0Y2hfb3BlcmFuZDpWUU4gMSAicmVn aXN0ZXJfb3BlcmFuZCIgInciKQ0KPiArCSAgICAgIChtYXRjaF9kdXAgMikpKSkpXQ0KPiArICAi VEFSR0VUX1NJTUQgJiYgQllURVNfQklHX0VORElBTiINCj4gKyAgInV6cDJcXHQlMC48VjJudHlw ZT4sICUxLjxWMm50eXBlPiwgJTMuPFYybnR5cGU+Ig0KPiArICBbKHNldF9hdHRyICJ0eXBlIiAi bmVvbl9wZXJtdXRlPHE+IildDQo+ICspDQo+ICsNCj4gKyhkZWZpbmVfaW5zbiAiKmFhcmNoNjRf dG9wYml0c19zaHVmZmxlPG1vZGU+X2JlIg0KPiArICBbKHNldCAobWF0Y2hfb3BlcmFuZDo8Vk5B UlJPV1EyPiAwICJyZWdpc3Rlcl9vcGVyYW5kIiAiPXciKQ0KPiArCSh2ZWNfY29uY2F0OjxWTkFS Uk9XUTI+DQo+ICsJICAodW5zcGVjOjxWTkFSUk9XUT4gWw0KPiArCSAgICAgIChtYXRjaF9vcGVy YW5kOlZRTiAzICJyZWdpc3Rlcl9vcGVyYW5kIiAidyIpDQo+ICsJICAgICAgKG1hdGNoX29wZXJh bmQ6VlFOIDINCj4gImFhcmNoNjRfc2ltZF9zaGlmdF9pbW1fdmVjX2V4YWN0X3RvcCIpDQo+ICsJ ICAgICBdIFVOU1BFQ19SU0hSTikNCj4gKyAgICAgICAgICAodW5zcGVjOjxWTkFSUk9XUT4gWw0K PiArICAgICAgICAgICAgICAobWF0Y2hfb3BlcmFuZDpWUU4gMSAicmVnaXN0ZXJfb3BlcmFuZCIg InciKQ0KPiArCSAgICAgIChtYXRjaF9kdXAgMikNCj4gKwkgICAgIF0gVU5TUEVDX1JTSFJOKSkp XQ0KPiArICAiVEFSR0VUX1NJTUQgJiYgQllURVNfQklHX0VORElBTiINCj4gKyAgInV6cDJcXHQl MC48VjJudHlwZT4sICUxLjxWMm50eXBlPiwgJTMuPFYybnR5cGU+Ig0KPiArICBbKHNldF9hdHRy ICJ0eXBlIiAibmVvbl9wZXJtdXRlPHE+IildDQo+ICspDQo+ICsNCj4gIChkZWZpbmVfZXhwYW5k ICJhYXJjaDY0X3Nocm48bW9kZT4iDQo+ICAgIFsoc2V0IChtYXRjaF9vcGVyYW5kOjxWTkFSUk9X UT4gMCAicmVnaXN0ZXJfb3BlcmFuZCIpDQo+ICAJKHRydW5jYXRlOjxWTkFSUk9XUT4NCj4gZGlm ZiAtLWdpdCBhL2djYy9jb25maWcvYWFyY2g2NC9wcmVkaWNhdGVzLm1kDQo+IGIvZ2NjL2NvbmZp Zy9hYXJjaDY0L3ByZWRpY2F0ZXMubWQNCj4gaW5kZXgNCj4gNDlmMDJhZTAzODEzNTkxNzRmZWQ4 MGMyYTIyNjQyOTVjNzViYzE4OS4uN2ZkNGY5ZTdkMDZkMzA4MmQ2ZjMwNDcyDQo+IDkwZjA0NDY3 ODllMWQwZDIgMTAwNjQ0DQo+IC0tLSBhL2djYy9jb25maWcvYWFyY2g2NC9wcmVkaWNhdGVzLm1k DQo+ICsrKyBiL2djYy9jb25maWcvYWFyY2g2NC9wcmVkaWNhdGVzLm1kDQo+IEBAIC01NDUsNiAr NTQ1LDEyIEBAIChkZWZpbmVfcHJlZGljYXRlDQo+ICJhYXJjaDY0X3NpbWRfc2hpZnRfaW1tX29m ZnNldF9kaSINCj4gICAgKGFuZCAobWF0Y2hfY29kZSAiY29uc3RfaW50IikNCj4gICAgICAgICAo bWF0Y2hfdGVzdCAiSU5fUkFOR0UgKElOVFZBTCAob3ApLCAxLCA2NCkiKSkpDQo+IA0KPiArKGRl ZmluZV9wcmVkaWNhdGUgImFhcmNoNjRfc2ltZF9zaGlmdF9pbW1fdmVjX2V4YWN0X3RvcCINCj4g KyAgKGFuZCAobWF0Y2hfY29kZSAiY29uc3RfdmVjdG9yIikNCj4gKyAgICAgICAobWF0Y2hfdGVz dCAiYWFyY2g2NF9jb25zdF92ZWNfYWxsX3NhbWVfaW5fcmFuZ2VfcCAob3AsDQo+ICsJCQlHRVRf TU9ERV9VTklUX0JJVFNJWkUgKEdFVF9NT0RFIChvcCkpIC8gMiwNCj4gKwkJCUdFVF9NT0RFX1VO SVRfQklUU0laRSAoR0VUX01PREUgKG9wKSkgLyAyKSIpKSkNCj4gKw0KPiAgKGRlZmluZV9wcmVk aWNhdGUgImFhcmNoNjRfc2ltZF9zaGlmdF9pbW1fdmVjX3FpIg0KPiAgICAoYW5kIChtYXRjaF9j b2RlICJjb25zdF92ZWN0b3IiKQ0KPiAgICAgICAgIChtYXRjaF90ZXN0ICJhYXJjaDY0X2NvbnN0 X3ZlY19hbGxfc2FtZV9pbl9yYW5nZV9wIChvcCwgMSwgOCkiKSkpDQo+IGRpZmYgLS1naXQgYS9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zaHJuLWNvbWJpbmUtMTAuYw0KPiBiL2dj Yy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3Nocm4tY29tYmluZS0xMC5jDQo+IG5ldyBm aWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4DQo+IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAuLjNhMWNmY2U5M2U5MDY1ZThkNWI0M2E3DQo+IDcwYjBlZjI0YTE3NTg2NDEx DQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNo NjQvc2hybi1jb21iaW5lLTEwLmMNCj4gQEAgLTAsMCArMSwxNCBAQA0KPiArLyogeyBkZy1kbyBh c3NlbWJsZSB9ICovDQo+ICsvKiB7IGRnLW9wdGlvbnMgIi1PMyAtLXNhdmUtdGVtcHMgLS1wYXJh bT12ZWN0LWVwaWxvZ3Vlcy1ub21hc2s9MCIgfSAqLw0KPiArDQo+ICsNCj4gKyNpbmNsdWRlIDxh cm1fbmVvbi5oPg0KPiArDQo+ICt1aW50MzJ4NF90IGZvbyAodWludDY0eDJfdCBhLCB1aW50NjR4 Ml90IGIpDQo+ICt7DQo+ICsgIHJldHVybiB2cnNocm5faGlnaF9uX3U2NCAodnJzaHJuX25fdTY0 IChhLCAzMiksIGIsIDMyKTsNCj4gK30NCj4gKw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNz ZW1ibGVyLXRpbWVzIHtcdHV6cDJcdH0gMSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci1ub3Qge1x0c2hyblx0fSB9IH0gKi8NCj4gKy8qIHsgZGctZmluYWwgeyBzY2Fu LWFzc2VtYmxlci1ub3Qge1x0c2hybjJcdH0gfSB9ICovDQo+IGRpZmYgLS1naXQgYS9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zaHJuLWNvbWJpbmUtNS5jDQo+IGIvZ2NjL3Rlc3Rz dWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc2hybi1jb21iaW5lLTUuYw0KPiBuZXcgZmlsZSBtb2Rl IDEwMDY0NA0KPiBpbmRleA0KPiAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwLi40MDhlODU1MzU3ODhiMmMxYzliMDU2Nw0KPiAyYTI2OWU0ZTY1NjdmMjY4Mw0KPiAtLS0g L2Rldi9udWxsDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3Nocm4t Y29tYmluZS01LmMNCj4gQEAgLTAsMCArMSwxNiBAQA0KPiArLyogeyBkZy1kbyBhc3NlbWJsZSB9 ICovDQo+ICsvKiB7IGRnLW9wdGlvbnMgIi1PMyAtLXNhdmUtdGVtcHMgLS1wYXJhbT12ZWN0LWVw aWxvZ3Vlcy1ub21hc2s9MCIgfSAqLw0KPiArDQo+ICsjZGVmaW5lIFRZUEUxIGNoYXINCj4gKyNk ZWZpbmUgVFlQRTIgc2hvcnQNCj4gKyNkZWZpbmUgU0hJRlQgOA0KPiArDQo+ICt2b2lkIGZvbyAo VFlQRTIgKiByZXN0cmljdCBhLCBUWVBFMSAqIHJlc3RyaWN0IGQsIGludCBuKQ0KPiArew0KPiAr ICAgIGZvciggaW50IGkgPSAwOyBpIDwgbjsgaSsrICkNCj4gKyAgICAgIGRbaV0gPSBhW2ldID4+ IFNISUZUOw0KPiArfQ0KPiArDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge1x0dXpwMlx0fSAxIH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LW5vdCB7XHRzaHJuXHR9IH0gfSAqLw0KPiArLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVy LW5vdCB7XHRzaHJuMlx0fSB9IH0gKi8NCj4gZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2Nj LnRhcmdldC9hYXJjaDY0L3Nocm4tY29tYmluZS02LmMNCj4gYi9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvYWFyY2g2NC9zaHJuLWNvbWJpbmUtNi5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+ IGluZGV4DQo+IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYyMTFi YTNlNDFjMTk5ZjMyNWI4MDIxDQo+IDdkMjk4ODAxNzY3YzhkYWQ1DQo+IC0tLSAvZGV2L251bGwN Cj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc2hybi1jb21iaW5lLTYu Yw0KPiBAQCAtMCwwICsxLDE2IEBADQo+ICsvKiB7IGRnLWRvIGFzc2VtYmxlIH0gKi8NCj4gKy8q IHsgZGctb3B0aW9ucyAiLU8zIC0tc2F2ZS10ZW1wcyAtLXBhcmFtPXZlY3QtZXBpbG9ndWVzLW5v bWFzaz0wIiB9ICovDQo+ICsNCj4gKyNkZWZpbmUgVFlQRTEgc2hvcnQNCj4gKyNkZWZpbmUgVFlQ RTIgaW50DQo+ICsjZGVmaW5lIFNISUZUIDE2DQo+ICsNCj4gK3ZvaWQgZm9vIChUWVBFMiAqIHJl c3RyaWN0IGEsIFRZUEUxICogcmVzdHJpY3QgZCwgaW50IG4pDQo+ICt7DQo+ICsgICAgZm9yKCBp bnQgaSA9IDA7IGkgPCBuOyBpKysgKQ0KPiArICAgICAgZFtpXSA9IGFbaV0gPj4gU0hJRlQ7DQo+ ICt9DQo+ICsNCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7XHR1enAy XHR9IDEgfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtcdHNo cm5cdH0gfSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtcdHNo cm4yXHR9IH0gfSAqLw0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2Fh cmNoNjQvc2hybi1jb21iaW5lLTcuYw0KPiBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJj aDY0L3Nocm4tY29tYmluZS03LmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXgNCj4g MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTZjYmVhY2M2ZGU1NGYx NzdmNWI2NmQNCj4gMjZiNjJiYTZjZWZiOTIxYWQNCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zaHJuLWNvbWJpbmUtNy5jDQo+IEBAIC0w LDAgKzEsMTYgQEANCj4gKy8qIHsgZGctZG8gYXNzZW1ibGUgfSAqLw0KPiArLyogeyBkZy1vcHRp b25zICItTzMgLS1zYXZlLXRlbXBzIC0tcGFyYW09dmVjdC1lcGlsb2d1ZXMtbm9tYXNrPTAiIH0g Ki8NCj4gKw0KPiArI2RlZmluZSBUWVBFMSBpbnQNCj4gKyNkZWZpbmUgVFlQRTIgbG9uZyBsb25n DQo+ICsjZGVmaW5lIFNISUZUIDMyDQo+ICsNCj4gK3ZvaWQgZm9vIChUWVBFMiAqIHJlc3RyaWN0 IGEsIFRZUEUxICogcmVzdHJpY3QgZCwgaW50IG4pDQo+ICt7DQo+ICsgICAgZm9yKCBpbnQgaSA9 IDA7IGkgPCBuOyBpKysgKQ0KPiArICAgICAgZFtpXSA9IGFbaV0gPj4gU0hJRlQ7DQo+ICt9DQo+ ICsNCj4gKy8qIHsgZGctZmluYWwgeyBzY2FuLWFzc2VtYmxlci10aW1lcyB7XHR1enAyXHR9IDEg fSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtcdHNocm5cdH0g fSB9ICovDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItbm90IHtcdHNocm4yXHR9 IH0gfSAqLw0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQv c2hybi1jb21iaW5lLTguYw0KPiBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3No cm4tY29tYmluZS04LmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5kZXgNCj4gMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmE0N2YzY2RhZWUzOTllNjAzYzU3 YTENCj4gYzZhMGMwOWM2Y2ZkMjFhYmINCj4gLS0tIC9kZXYvbnVsbA0KPiArKysgYi9nY2MvdGVz dHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zaHJuLWNvbWJpbmUtOC5jDQo+IEBAIC0wLDAgKzEs MTQgQEANCj4gKy8qIHsgZGctZG8gYXNzZW1ibGUgfSAqLw0KPiArLyogeyBkZy1vcHRpb25zICIt TzMgLS1zYXZlLXRlbXBzIC0tcGFyYW09dmVjdC1lcGlsb2d1ZXMtbm9tYXNrPTAiIH0gKi8NCj4g Kw0KPiArDQo+ICsjaW5jbHVkZSA8YXJtX25lb24uaD4NCj4gKw0KPiArdWludDh4MTZfdCBmb28g KHVpbnQxNng4X3QgYSwgdWludDE2eDhfdCBiKQ0KPiArew0KPiArICByZXR1cm4gdnJzaHJuX2hp Z2hfbl91MTYgKHZyc2hybl9uX3UxNiAoYSwgOCksIGIsIDgpOw0KPiArfQ0KPiArDQo+ICsvKiB7 IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge1x0dXpwMlx0fSAxIH0gfSAqLw0KPiAr LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7XHRzaHJuXHR9IH0gfSAqLw0KPiAr LyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7XHRzaHJuMlx0fSB9IH0gKi8NCj4g ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3Nocm4tY29tYmlu ZS05LmMNCj4gYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zaHJuLWNvbWJpbmUt OS5jDQo+IG5ldyBmaWxlIG1vZGUgMTAwNjQ0DQo+IGluZGV4DQo+IDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjkyOWE1NWM1YzMzODg0NGU2YTVjNWFkDQo+IDI0OWFm NDgyMjg2YWI5YzYxDQo+IC0tLSAvZGV2L251bGwNCj4gKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2FhcmNoNjQvc2hybi1jb21iaW5lLTkuYw0KPiBAQCAtMCwwICsxLDE0IEBADQo+ICsv KiB7IGRnLWRvIGFzc2VtYmxlIH0gKi8NCj4gKy8qIHsgZGctb3B0aW9ucyAiLU8zIC0tc2F2ZS10 ZW1wcyAtLXBhcmFtPXZlY3QtZXBpbG9ndWVzLW5vbWFzaz0wIiB9ICovDQo+ICsNCj4gKw0KPiAr I2luY2x1ZGUgPGFybV9uZW9uLmg+DQo+ICsNCj4gK3VpbnQxNng4X3QgZm9vICh1aW50MzJ4NF90 IGEsIHVpbnQzMng0X3QgYikNCj4gK3sNCj4gKyAgcmV0dXJuIHZyc2hybl9oaWdoX25fdTMyICh2 cnNocm5fbl91MzIgKGEsIDE2KSwgYiwgMTYpOw0KPiArfQ0KPiArDQo+ICsvKiB7IGRnLWZpbmFs IHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge1x0dXpwMlx0fSAxIH0gfSAqLw0KPiArLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7XHRzaHJuXHR9IH0gfSAqLw0KPiArLyogeyBkZy1m aW5hbCB7IHNjYW4tYXNzZW1ibGVyLW5vdCB7XHRzaHJuMlx0fSB9IH0gKi8NCg==