From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2057.outbound.protection.outlook.com [40.107.22.57]) by sourceware.org (Postfix) with ESMTPS id 661793858D35 for ; Wed, 9 Nov 2022 10:38:15 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 661793858D35 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com ARC-Seal: i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass; b=gLAZ0dCua/Q/+Mls2j0B8jGkzQSPjVqkwMnYi4RXglTdGpOTqAqVrCjzZY3Wl8XMxr4qGTIADp7AqPu0qAcy61C0z5DYZuq9S21DPshpCT0oQ6ftJlMqVpGaR6LPbPTPO+ab3j/B7nApcVaPU4k7nRAPJTeKbxdA3QzwaFEMiAd0ZZG/cTjDgiqZynusDx6OcPxtpuvLyB0qdz4UD9lD3m2ByflQ874BZj7fWMIN0zmns9vz6CwY3RndY1wPu9TV/Q1KVpRjam7be3eBJhbv+GaSClXPXFaM8PJnX6P666cADGkM+f4Z97IhVnO0fUwxNk8DPclXiRR+hfPB4p3BCQ== ARC-Message-Signature: i=2; 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=t4nmOCX6gYoDogNev2tYU7Q/3/wABgdNMEJGFQ5UV3c=; b=RLOgZKNDoRUYRwvnB3kX/ptWCA2TEf0/flretAVs5vkiCHTv0PBpCDh+9+v5PjdftawDoVvR8SNJ49sGA4DyEAbTguv/yt9fTX0CJdfhkohwD/z1lLGdcpyje9UbfBqfKF9+tlA61CXzr9obcKWOftEy/8fOqOpcdljzFrxL+ADmMHqimZnH/rpi/8xs6nJ5lvwSQTtHyVYU2WQEEn7jb1A07ar2RdAuz686X5cjNyvPslC5IDYOeAixxTtXL4Aa7mRHZLYVefukqSVlQLmxvSlxG01+LYU+lkE1wRbCSR6ad8Ds2Es5eZNtES8KVH2qy/yF2vJQqAxBhJRrIp6eOw== ARC-Authentication-Results: i=2; mx.microsoft.com 1; spf=pass (sender ip is 63.35.35.123) smtp.rcpttodomain=gcc.gnu.org smtp.mailfrom=arm.com; dmarc=pass (p=none sp=none pct=100) action=none header.from=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com; arc=pass (0 oda=1 ltdi=1 spf=[1,1,smtp.mailfrom=arm.com] dkim=[1,1,header.d=arm.com] dmarc=[1,1,header.from=arm.com]) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=t4nmOCX6gYoDogNev2tYU7Q/3/wABgdNMEJGFQ5UV3c=; b=CT7zBDzukML8uw2Cpy7Wt3+TlA65VoZGyN+R04/kG3oLOfME7PZOhGdkB3bEMCGJkrZ5zWuiOPoqpkS19IZqfuENkuw4fxtzfiauvFVVI8eTAmRzdeQtpJvzu2vknKqYPx+Qv7CQejHQmN14eboaoDWZT0lvxX1xU3yRg1+ZSJ0= Received: from DB9PR06CA0015.eurprd06.prod.outlook.com (2603:10a6:10:1db::20) by PA4PR08MB7435.eurprd08.prod.outlook.com (2603:10a6:102:2a6::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5813.11; Wed, 9 Nov 2022 10:38:09 +0000 Received: from DBAEUR03FT013.eop-EUR03.prod.protection.outlook.com (2603:10a6:10:1db:cafe::57) by DB9PR06CA0015.outlook.office365.com (2603:10a6:10:1db::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5791.27 via Frontend Transport; Wed, 9 Nov 2022 10:38:09 +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; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DBAEUR03FT013.mail.protection.outlook.com (100.127.142.222) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5813.12 via Frontend Transport; Wed, 9 Nov 2022 10:38:09 +0000 Received: ("Tessian outbound 6c699027a257:v130"); Wed, 09 Nov 2022 10:38:09 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 4f9ac13e7ba15d56 X-CR-MTA-TID: 64aa7808 Received: from 9077da80dbc7.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 86434B27-402F-4D5A-8AD7-6D3CF0D09228.1; Wed, 09 Nov 2022 10:38:02 +0000 Received: from EUR03-DBA-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 9077da80dbc7.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 09 Nov 2022 10:38:02 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LHmhillQEpKPmvy4Dhme0ftsDpSH4lhpBXu+zZqsVE88memWwez5QRn+txY38spA2BUYu03JCwvQ/ObRIDA9Ile9HGJGj0XnQ+WJ3QzBqFcNjYTWOmbLNBzWraeFgocEj0yT9oZIsEZpRxtVt336mD7BI2hf545APAWlodbvv5RqbJCmsZMzf7E4OC3Nrr7pCh6qM8rYTxQyyQYXIP3UPe4Cg7zpPsFZsCdn9c1P/S5Gv9NjKY8x/NAtO1sr+dPrPZpaNvvkjVJRjbhJiKd7kL5emB7dDJseT6O6OXlbLzdJoAXRAX5kQl9vBTJY/J2pB4d1RlFduVK6WGanswONXw== 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=t4nmOCX6gYoDogNev2tYU7Q/3/wABgdNMEJGFQ5UV3c=; b=HYjceoda5gTiky/jAz5sE8Kols38XE+Bg0NnAMkJTiM6/I52TEjxSt/oW+JkXtHSahpNQTV7t2L5zCoaHTPkayApJLYU2DFJIRl2KuKdxoq+NIlHT+vZfMQDT4IYAwY9BDneCilFiAPMaeOG8msGBJSnBu6hoqRxc3U/WTEqOOmwWrenMEdDb+C450fHPDFIxyKzxP4FzQzHefg2Pq7eHHJFwMnvHZAyhKWMcuu0BFvwU0eQgphQc9EXlia3byIBT2jexfk4Ww3nqzSYC3iGQTqtzVduo75Ryc9sDu/T3e7Wf8CdJNfwKxxZX/FcYk1voQqbrtd2KPKNeccoTGdQ5A== 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 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=t4nmOCX6gYoDogNev2tYU7Q/3/wABgdNMEJGFQ5UV3c=; b=CT7zBDzukML8uw2Cpy7Wt3+TlA65VoZGyN+R04/kG3oLOfME7PZOhGdkB3bEMCGJkrZ5zWuiOPoqpkS19IZqfuENkuw4fxtzfiauvFVVI8eTAmRzdeQtpJvzu2vknKqYPx+Qv7CQejHQmN14eboaoDWZT0lvxX1xU3yRg1+ZSJ0= Received: from PAXPR08MB6926.eurprd08.prod.outlook.com (2603:10a6:102:138::24) by GV2PR08MB8629.eurprd08.prod.outlook.com (2603:10a6:150:b9::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5813.11; Wed, 9 Nov 2022 10:37:59 +0000 Received: from PAXPR08MB6926.eurprd08.prod.outlook.com ([fe80::eae6:18d0:2b57:347f]) by PAXPR08MB6926.eurprd08.prod.outlook.com ([fe80::eae6:18d0:2b57:347f%9]) with mapi id 15.20.5813.011; Wed, 9 Nov 2022 10:37:57 +0000 From: Kyrylo Tkachov To: Tamar Christina , "gcc-patches@gcc.gnu.org" CC: nd , "rguenther@suse.de" Subject: RE: [PATCH 1/4]middle-end Support not decomposing specific divisions during vectorization. Thread-Topic: [PATCH 1/4]middle-end Support not decomposing specific divisions during vectorization. Thread-Index: AQHY9CdVqC34fMKvaUW0gAIt9hrZgQ== Date: Wed, 9 Nov 2022 10:37:57 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-traffictypediagnostic: PAXPR08MB6926:EE_|GV2PR08MB8629:EE_|DBAEUR03FT013:EE_|PA4PR08MB7435:EE_ X-MS-Office365-Filtering-Correlation-Id: 85afa2f0-cd41-4c33-5fb9-08dac23e7e87 x-checkrecipientrouted: true nodisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: rh+MaI80zh8mxVEDUHYEkxNf3Lajoyq6z8MAadQCFnnarxh29sz8Mhac7IkWJOWweS+bxKJ5r/fLhV0oT51jWKULr4cSoOWxZehokYgThsvwxucyI3L6GHAW/RDVwvTRNFpO2es4LMzcqIbcwaYsVnFrhUb7rCDv2Qq6Aj7FGa5LMfa6aOHDoJ1legwFsHtEgw8l5AKxSjm8FgwG0NSRTgiNbnDK9AU50LKkqLOTND2gHbUQS/Eo1nOj5oAVDKDha2oZIu02Y8YrppNm7zShcatJiyM942DEIisdQL6Mm89m09tIO6JZRQOWJ/RwcMWsu5gF9IlJDb7L+GNQJlNFdiSyL67Onnf7BloDqp4IVO9Vdsy3Wf8w4yyAoZQDtLD0BD3+fsh0LIQM/YC9xLB58dNpqINX/EVL1T182tvvnJD8xhkK++V+Una+cLaZbIgUrbM+srglPtZDASrb6SD+t4Is+RN0QOPJKqq9tNJtwC4qPT32MBSkyMImsiqE8VBu+7f/auzcTA+3VgYoog4LcFX2I66+8+k0ml6KPDqc9A/mLQsOYpHCiUc5zG8o2Ak5RmkE4NPRY2fN7gpUK431U01g1aPExOsAd7Id+alPar5QneYblRVwLH8Cnhhli7iAiR2j72L4ZVDneVkvBnWWAhscD5QbqeMYb77R84Gy3z19L7+LnEVw9A9hxoukHMAFRdYWsB9GLIImnc4cFFXf+/gqc6U/D4i6ErLQyvya9LvsDN1mbM+dOEp3oHs/5jCYR+CkkSQdnZwcz7ax0eMNMFcD2+RP4wvFKmp7GPQwhaM5ScqFwKdsH1nspe5m7jmJXK2Dhz/Lf2cOdpcuIbV4aw== 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:(13230022)(4636009)(346002)(396003)(136003)(376002)(366004)(39860400002)(451199015)(84970400001)(38100700002)(7696005)(2906002)(6506007)(52536014)(76116006)(5660300002)(8936002)(55016003)(64756008)(66556008)(122000001)(30864003)(66446008)(4326008)(54906003)(8676002)(33656002)(41300700001)(110136005)(66476007)(316002)(66946007)(71200400001)(86362001)(38070700005)(186003)(53546011)(26005)(83380400001)(9686003)(478600001)(579004);DIR:OUT;SFP:1101; Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: GV2PR08MB8629 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: DBAEUR03FT013.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 119a5442-a746-474e-6a84-08dac23e77a1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: DU80zzztVu0ObT+gfUz/sOYbmoccFGj1HxUd2Dp62b0E8khVT7pkgl1SfG6cbIQzRxcop118lK+481h/kYek/mzFudEgIhKtjAnCCOvglBwC26go8j9p58R/y5Fa0V49MmIsmeJKXaje6JbhbNqHqOwGtcz6TXhrMLMQZ6AgJPJzqMIR3dE0l3WGD8BOMg130qCmJR2yWIalp+nGNvisLg4jAdcL5i48B70kPCzIln/DpZxZH7RqKp2xAB9E7Ir8WAuhibM0gJDraGlfzC8YBVbnVhp5Lp+dswzLTTLktuebDbXAMGI5LGXhjfhAm7W0UtjRyqGZYKDE232BhzwnfcvqI1TSY0U1fmSmASMnci6hIzx4Yd8BW7Ai/L1VfBSikLLbnL9ea1fZFU/tEkrYxu/eCPYiT4hc46Zlc+sdNHOJ8ENdLqn/QJ83fua3jE9gl7faznuywJ43G/V7kX/KXYnHe2qCfC4z5zpZDAMzKrDbY4Z4vdohdBzQDLUe+B8LS7VQwyQULwJBb8f6+kAPao4ldEmS6gZd+tn5H0duNVCKwEu6Sdu7q2+E1tEQKe2lq8cFzHuxKK98AjTmRsnq9KJsYWpK3zzfc+lsdNzb7vPwTouq4rlBQQHFjWtrRMprtXyVqtt9CZuMdtOARahCYtjjnYEZmupg8Rsp+NZ62LgcKlS8VtfOXTB1Gx54aKUgULz9Eb9IRDq4XCayBN2C9f/M0oEPizcODVAN8zOMSd0nvD35Wou7fLtxlSWBqPZntzRUaYTVFuscnKcDvViPOsC+yJ9Zsh8VqChsZ0dDGWI461A53NZl7UQ4SZWNmUo5KgBOSV98fb6Fsf9vQwO2Vg== 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:(13230022)(4636009)(396003)(136003)(39860400002)(376002)(346002)(451199015)(40470700004)(46966006)(36840700001)(82310400005)(84970400001)(54906003)(316002)(83380400001)(55016003)(110136005)(5660300002)(30864003)(356005)(41300700001)(40480700001)(8676002)(70586007)(4326008)(52536014)(478600001)(33656002)(70206006)(82740400003)(2906002)(8936002)(186003)(336012)(40460700003)(26005)(36860700001)(47076005)(9686003)(81166007)(107886003)(53546011)(6506007)(7696005)(86362001);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Nov 2022 10:38:09.2752 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 85afa2f0-cd41-4c33-5fb9-08dac23e7e87 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: DBAEUR03FT013.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR08MB7435 X-Spam-Status: No, score=-11.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,GIT_PATCH_0,KAM_DMARC_NONE,KAM_LOTSOFHASH,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE,TXREP,UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: SGkgVGFtYXIsDQoNCj4gLS0tLS1PcmlnaW5hbCBNZXNzYWdlLS0tLS0NCj4gRnJvbTogR2NjLXBh dGNoZXMgPGdjYy1wYXRjaGVzLQ0KPiBib3VuY2VzK2t5cnlsby50a2FjaG92PWFybS5jb21AZ2Nj LmdudS5vcmc+IE9uIEJlaGFsZiBPZiBUYW1hcg0KPiBDaHJpc3RpbmEgdmlhIEdjYy1wYXRjaGVz DQo+IFNlbnQ6IEZyaWRheSwgU2VwdGVtYmVyIDIzLCAyMDIyIDEwOjMzIEFNDQo+IFRvOiBnY2Mt cGF0Y2hlc0BnY2MuZ251Lm9yZw0KPiBDYzogbmQgPG5kQGFybS5jb20+OyByZ3VlbnRoZXJAc3Vz ZS5kZQ0KPiBTdWJqZWN0OiBbUEFUQ0ggMS80XW1pZGRsZS1lbmQgU3VwcG9ydCBub3QgZGVjb21w b3Npbmcgc3BlY2lmaWMgZGl2aXNpb25zDQo+IGR1cmluZyB2ZWN0b3JpemF0aW9uLg0KPiANCj4g SGkgQWxsLA0KPiANCj4gSW4gcGxlbnR5IG9mIGltYWdlIGFuZCB2aWRlbyBwcm9jZXNzaW5nIGNv ZGUgaXQncyBjb21tb24gdG8gbW9kaWZ5IHBpeGVsDQo+IHZhbHVlcw0KPiBieSBhIHdpZGVuaW5n IG9wZXJhdGlvbiBhbmQgdGhlbiBzY2FsZSB0aGVtIGJhY2sgaW50byByYW5nZSBieSBkaXZpZGlu ZyBieQ0KPiAyNTUuDQo+IA0KPiBlLmcuOg0KPiANCj4gICAgeCA9IHkgLyAoMiBeIChiaXRzaXpl ICh5KS8yKS0xDQo+IA0KPiBUaGlzIHBhdGNoIGFkZHMgYSBuZXcgdGFyZ2V0IGhvb2sgY2FuX3Nw ZWNpYWxfZGl2X2J5X2NvbnN0LCBzaW1pbGFyIHRvDQo+IGNhbl92ZWNfcGVybSB3aGljaCBjYW4g YmUgY2FsbGVkIHRvIGNoZWNrIGlmIGEgdGFyZ2V0IHdpbGwgaGFuZGxlIGEgcGFydGljdWxhcg0K PiBkaXZpc2lvbiBpbiBhIHNwZWNpYWwgd2F5IGluIHRoZSBiYWNrLWVuZC4NCj4gDQo+IFRoZSB2 ZWN0b3JpemVyIHdpbGwgdGhlbiB2ZWN0b3JpemUgdGhlIGRpdmlzaW9uIHVzaW5nIHRoZSBzdGFu ZGFyZCB0cmVlIGNvZGUNCj4gYW5kIGF0IGV4cGFuc2lvbiB0aW1lIHRoZSBob29rIGlzIGNhbGxl ZCBhZ2FpbiB0byBnZW5lcmF0ZSB0aGUgY29kZSBmb3IgdGhlDQo+IGRpdmlzaW9uLg0KPiANCj4g QWxvdCBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgcGF0Y2ggYXJlIHRvIHBhc3MgZG93biB0aGUgdHJl ZSBvcGVyYW5kcyBpbiBhbGwNCj4gcGF0aHMNCj4gdGhhdCBjYW4gbGVhZCB0byB0aGUgZGl2bW9k IGV4cGFuc2lvbiBzbyB0aGF0IHRoZSB0YXJnZXQgaG9vayBhbHdheXMgaGFzIHRoZQ0KPiB0eXBl IG9mIHRoZSBleHByZXNzaW9uIHlvdSdyZSBleHBhbmRpbmcgc2luY2UgdGhlIHR5cGVzIGNhbiBj aGFuZ2UgdGhlDQo+IGV4cGFuc2lvbi4NCj4gDQo+IEJvb3RzdHJhcHBlZCBSZWd0ZXN0ZWQgb24g YWFyY2g2NC1ub25lLWxpbnV4LWdudSwgeDg2XzY0LXBjLWxpbnV4LWdudQ0KPiBhbmQgbm8gaXNz dWVzLg0KPiANCj4gT2sgZm9yIG1hc3Rlcj8NCj4gDQo+IFRoYW5rcywNCj4gVGFtYXINCj4gDQo+ IGdjYy9DaGFuZ2VMb2c6DQo+IA0KPiAJKiBleHBtZWQuaCAoZXhwYW5kX2Rpdm1vZCk6IFBhc3Mg dHJlZSBvcGVyYW5kcyBkb3duIGluIGFkZGl0aW9uDQo+IHRvIFJUWC4NCj4gCSogZXhwbWVkLmNj IChleHBhbmRfZGl2bW9kKTogTGlrZXdpc2UuDQo+IAkqIGV4cGxvdy5jYyAocm91bmRfcHVzaCwg YWxpZ25fZHluYW1pY19hZGRyZXNzKTogTGlrZXdpc2UuDQo+IAkqIGV4cHIuY2MgKGZvcmNlX29w ZXJhbmQsIGV4cGFuZF9leHByX2Rpdm1vZCk6IExpa2V3aXNlLg0KPiAJKiBvcHRhYnMuY2MgKGV4 cGFuZF9kb3VibGV3b3JkX21vZCwNCj4gZXhwYW5kX2RvdWJsZXdvcmRfZGl2bW9kKToNCj4gCUxp a2V3aXNlLg0KPiAJKiB0YXJnZXQuaDogSW5jbHVkZSB0cmVlLWNvcmUuDQo+IAkqIHRhcmdldC5k ZWYgKGNhbl9zcGVjaWFsX2Rpdl9ieV9jb25zdCk6IE5ldy4NCj4gCSogdGFyZ2hvb2tzLmNjIChk ZWZhdWx0X2Nhbl9zcGVjaWFsX2Rpdl9ieV9jb25zdCk6IE5ldy4NCj4gCSogdGFyZ2hvb2tzLmgg KGRlZmF1bHRfY2FuX3NwZWNpYWxfZGl2X2J5X2NvbnN0KTogTmV3Lg0KPiAJKiB0cmVlLXZlY3Qt Z2VuZXJpYy5jYyAoZXhwYW5kX3ZlY3Rvcl9vcGVyYXRpb24pOiBVc2UgaXQuDQo+IAkqIGRvYy90 bS50ZXhpLmluOiBEb2N1bWVudCBpdC4NCj4gCSogZG9jL3RtLnRleGk6IFJlZ2VuZXJhdGUuDQo+ IAkqIHRyZWUtdmVjdC1wYXR0ZXJucy5jYyAodmVjdF9yZWNvZ19kaXZtb2RfcGF0dGVybik6IENo ZWNrIGZvcg0KPiBzdXBwb3J0Lg0KPiAJKiB0cmVlLXZlY3Qtc3RtdHMuY2MgKHZlY3Rvcml6YWJs ZV9vcGVyYXRpb24pOiBMaWtld2lzZS4NCj4gDQo+IGdjYy90ZXN0c3VpdGUvQ2hhbmdlTG9nOg0K PiANCj4gCSogZ2NjLmRnL3ZlY3QvdmVjdC1kaXYtYml0bWFzay0xLmM6IE5ldyB0ZXN0Lg0KPiAJ KiBnY2MuZGcvdmVjdC92ZWN0LWRpdi1iaXRtYXNrLTIuYzogTmV3IHRlc3QuDQo+IAkqIGdjYy5k Zy92ZWN0L3ZlY3QtZGl2LWJpdG1hc2stMy5jOiBOZXcgdGVzdC4NCj4gCSogZ2NjLmRnL3ZlY3Qv dmVjdC1kaXYtYml0bWFzay5oOiBOZXcgZmlsZS4NCj4gDQo+IC0tLSBpbmxpbmUgY29weSBvZiBw YXRjaCAtLQ0KPiBkaWZmIC0tZ2l0IGEvZ2NjL2RvYy90bS50ZXhpIGIvZ2NjL2RvYy90bS50ZXhp DQo+IGluZGV4DQo+IDkyYmRhMWE3ZTE0YTNjOWVhNjNlMTUxZTRhNDlhODE4YmY0ZDFiZGIuLmFk YmE5ZmU5N2E5YjQzNzI5YzVlODZkDQo+IDI0NGEyYTIzZTc2Y2FjMDk3IDEwMDY0NA0KPiAtLS0g YS9nY2MvZG9jL3RtLnRleGkNCj4gKysrIGIvZ2NjL2RvYy90bS50ZXhpDQo+IEBAIC02MTEyLDYg KzYxMTIsMjIgQEAgaW5zdHJ1Y3Rpb24gcGF0dGVybi4gIFRoZXJlIGlzIG5vIG5lZWQgZm9yIHRo ZQ0KPiBob29rIHRvIGhhbmRsZSB0aGVzZSB0d28NCj4gIGltcGxlbWVudGF0aW9uIGFwcHJvYWNo ZXMgaXRzZWxmLg0KPiAgQGVuZCBkZWZ0eXBlZm4NCj4gDQo+ICtAZGVmdHlwZWZuIHtUYXJnZXQg SG9va30gYm9vbA0KPiBUQVJHRVRfVkVDVE9SSVpFX0NBTl9TUEVDSUFMX0RJVl9CWV9DT05TVCAo ZW51bSBAdmFye3RyZWVfY29kZX0sDQo+IHRyZWUgQHZhcnt2ZWN0eXBlfSwgdHJlZSBAdmFye3Ry ZWVvcDB9LCB0cmVlIEB2YXJ7dHJlZW9wMX0sIHJ0eA0KPiAqQHZhcntvdXRwdXR9LCBydHggQHZh cntpbjB9LCBydHggQHZhcntpbjF9KQ0KPiArVGhpcyBob29rIGlzIHVzZWQgdG8gdGVzdCB3aGV0 aGVyIHRoZSB0YXJnZXQgaGFzIGEgc3BlY2lhbCBtZXRob2Qgb2YNCj4gK2RpdmlzaW9uIG9mIHZl Y3RvcnMgb2YgdHlwZSBAdmFye3ZlY3R5cGV9IHVzaW5nIHRoZSB0d28gb3BlcmFuZHMNCj4gQGNv ZGV7dHJlZW9wMH0sDQo+ICthbmQgQGNvZGV7dHJlZW9wMX0gYW5kIHByb2R1Y2luZyBhIHZlY3Rv ciBvZiB0eXBlIEB2YXJ7dmVjdHlwZX0uICBUaGUNCj4gZGl2aXNpb24NCj4gK3dpbGwgdGhlbiBu b3QgYmUgZGVjb21wb3NlZCBieSB0aGUgYW5kIGtlcHQgYXMgYSBkaXYuDQoNCkkgdGhpbmsgdGhl IGdyYW1tYXIgaGVyZSBpcyB3b25reSwgY2FuIHlvdSByZXdvcmQgdGhpcyBzZW50ZW5jZSBwbGVh c2U/DQooSSB3YXMganVzdCByZWFkaW5nIHRoaXMgcGF0Y2ggdG8gdW5kZXJzdGFuZCB0aGUgb3B0 YWIgc2VtYW50aWNzIGZ1dGhlciBpbiB0aGUgc2VyaWVzKQ0KVGhhbmtzLA0KS3lyaWxsDQoNCj4g Kw0KPiArV2hlbiB0aGUgaG9vayBpcyBiZWluZyB1c2VkIHRvIHRlc3Qgd2hldGhlciB0aGUgdGFy Z2V0IHN1cHBvcnRzIGEgc3BlY2lhbA0KPiArZGl2aWRlLCBAdmFye2luMH0sIEB2YXJ7aW4xfSwg YW5kIEB2YXJ7b3V0cHV0fSBhcmUgYWxsIG51bGwuICBXaGVuIHRoZSBob29rDQo+ICtpcyBiZWlu ZyB1c2VkIHRvIGVtaXQgYSBkaXZpc2lvbiwgQHZhcntpbjB9IGFuZCBAdmFye2luMX0gYXJlIHRo ZSBzb3VyY2UNCj4gK3ZlY3RvcnMgb2YgdHlwZSBAdmFye3ZlY3R0eXBlfSBhbmQgQHZhcntvdXRw dXR9IGlzIHRoZSBkZXN0aW5hdGlvbiB2ZWN0b3INCj4gb2YNCj4gK3R5cGUgQHZhcnt2ZWN0eXBl fS4NCj4gKw0KPiArUmV0dXJuIHRydWUgaWYgdGhlIG9wZXJhdGlvbiBpcyBwb3NzaWJsZSwgZW1p dHRpbmcgaW5zdHJ1Y3Rpb25zIGZvciBpdA0KPiAraWYgcnR4ZXMgYXJlIHByb3ZpZGVkIGFuZCB1 cGRhdGluZyBAdmFye291dHB1dH0uDQo+ICtAZW5kIGRlZnR5cGVmbg0KPiArDQo+ICBAZGVmdHlw ZWZuIHtUYXJnZXQgSG9va30gdHJlZQ0KPiBUQVJHRVRfVkVDVE9SSVpFX0JVSUxUSU5fVkVDVE9S SVpFRF9GVU5DVElPTiAodW5zaWduZWQNCj4gQHZhcntjb2RlfSwgdHJlZSBAdmFye3ZlY190eXBl X291dH0sIHRyZWUgQHZhcnt2ZWNfdHlwZV9pbn0pDQo+ICBUaGlzIGhvb2sgc2hvdWxkIHJldHVy biB0aGUgZGVjbCBvZiBhIGZ1bmN0aW9uIHRoYXQgaW1wbGVtZW50cyB0aGUNCj4gIHZlY3Rvcml6 ZWQgdmFyaWFudCBvZiB0aGUgZnVuY3Rpb24gd2l0aCB0aGUgQGNvZGV7Y29tYmluZWRfZm59IGNv ZGUNCj4gZGlmZiAtLWdpdCBhL2djYy9kb2MvdG0udGV4aS5pbiBiL2djYy9kb2MvdG0udGV4aS5p bg0KPiBpbmRleA0KPiAxMTI0NjIzMTBiMTM0NzA1ZDg2MDE1MzI5NDI4N2NmZDdkNGFmODFkLi5k NWE3NDVhMDJhY2RmMDUxZWExZGExYg0KPiAwNDA3NmQwNThjMjRjZTA5MyAxMDA2NDQNCj4gLS0t IGEvZ2NjL2RvYy90bS50ZXhpLmluDQo+ICsrKyBiL2djYy9kb2MvdG0udGV4aS5pbg0KPiBAQCAt NDE2NCw2ICs0MTY0LDggQEAgYWRkcmVzczsgIGJ1dCBvZnRlbiBhIG1hY2hpbmUtZGVwZW5kZW50 IHN0cmF0ZWd5DQo+IGNhbiBnZW5lcmF0ZSBiZXR0ZXIgY29kZS4NCj4gDQo+ICBAaG9vayBUQVJH RVRfVkVDVE9SSVpFX1ZFQ19QRVJNX0NPTlNUDQo+IA0KPiArQGhvb2sgVEFSR0VUX1ZFQ1RPUkla RV9DQU5fU1BFQ0lBTF9ESVZfQllfQ09OU1QNCj4gKw0KPiAgQGhvb2sgVEFSR0VUX1ZFQ1RPUkla RV9CVUlMVElOX1ZFQ1RPUklaRURfRlVOQ1RJT04NCj4gDQo+ICBAaG9vayBUQVJHRVRfVkVDVE9S SVpFX0JVSUxUSU5fTURfVkVDVE9SSVpFRF9GVU5DVElPTg0KPiBkaWZmIC0tZ2l0IGEvZ2NjL2V4 cGxvdy5jYyBiL2djYy9leHBsb3cuY2MNCj4gaW5kZXgNCj4gZGRiNGQ2YWUzNjAwNTQyZjhkMmJi NTYxN2NkZDM5MzNhOWZhZTZjMC4uNTY4ZTBlYjFhMTU4YzY5NjQ1OGFlNjcNCj4gOGY1ZTM0NmJm MzRiYTAwMzYgMTAwNjQ0DQo+IC0tLSBhL2djYy9leHBsb3cuY2MNCj4gKysrIGIvZ2NjL2V4cGxv dy5jYw0KPiBAQCAtMTAzNyw3ICsxMDM3LDcgQEAgcm91bmRfcHVzaCAocnR4IHNpemUpDQo+ICAg ICAgIFRSVU5DX0RJVl9FWFBSLiAgKi8NCj4gICAgc2l6ZSA9IGV4cGFuZF9iaW5vcCAoUG1vZGUs IGFkZF9vcHRhYiwgc2l6ZSwgYWxpZ25tMV9ydHgsDQo+ICAJCSAgICAgICBOVUxMX1JUWCwgMSwg T1BUQUJfTElCX1dJREVOKTsNCj4gLSAgc2l6ZSA9IGV4cGFuZF9kaXZtb2QgKDAsIFRSVU5DX0RJ Vl9FWFBSLCBQbW9kZSwgc2l6ZSwgYWxpZ25fcnR4LA0KPiArICBzaXplID0gZXhwYW5kX2Rpdm1v ZCAoMCwgVFJVTkNfRElWX0VYUFIsIFBtb2RlLCBOVUxMLCBOVUxMLCBzaXplLA0KPiBhbGlnbl9y dHgsDQo+ICAJCQlOVUxMX1JUWCwgMSk7DQo+ICAgIHNpemUgPSBleHBhbmRfbXVsdCAoUG1vZGUs IHNpemUsIGFsaWduX3J0eCwgTlVMTF9SVFgsIDEpOw0KPiANCj4gQEAgLTEyMDMsNyArMTIwMyw3 IEBAIGFsaWduX2R5bmFtaWNfYWRkcmVzcyAocnR4IHRhcmdldCwgdW5zaWduZWQNCj4gcmVxdWly ZWRfYWxpZ24pDQo+ICAJCQkgZ2VuX2ludF9tb2RlIChyZXF1aXJlZF9hbGlnbiAvIEJJVFNfUEVS X1VOSVQgLSAxLA0KPiAgCQkJCSAgICAgICBQbW9kZSksDQo+ICAJCQkgTlVMTF9SVFgsIDEsIE9Q VEFCX0xJQl9XSURFTik7DQo+IC0gIHRhcmdldCA9IGV4cGFuZF9kaXZtb2QgKDAsIFRSVU5DX0RJ Vl9FWFBSLCBQbW9kZSwgdGFyZ2V0LA0KPiArICB0YXJnZXQgPSBleHBhbmRfZGl2bW9kICgwLCBU UlVOQ19ESVZfRVhQUiwgUG1vZGUsIE5VTEwsIE5VTEwsIHRhcmdldCwNCj4gIAkJCSAgZ2VuX2lu dF9tb2RlIChyZXF1aXJlZF9hbGlnbiAvIEJJVFNfUEVSX1VOSVQsDQo+ICAJCQkJCVBtb2RlKSwN Cj4gIAkJCSAgTlVMTF9SVFgsIDEpOw0KPiBkaWZmIC0tZ2l0IGEvZ2NjL2V4cG1lZC5oIGIvZ2Nj L2V4cG1lZC5oDQo+IGluZGV4DQo+IDBiMjUzOGM0YzZiZDUxZGZkYzc3MmVmNzBiZGY2MzFjMGJl ZDg3MTcuLjBkYjI5ODZmMTFmZjRhNGIxMGI1OTUwMQ0KPiBjNmYzM2NiMzU5NTY1OWI1IDEwMDY0 NA0KPiAtLS0gYS9nY2MvZXhwbWVkLmgNCj4gKysrIGIvZ2NjL2V4cG1lZC5oDQo+IEBAIC03MDgs OCArNzA4LDkgQEAgZXh0ZXJuIHJ0eCBleHBhbmRfdmFyaWFibGVfc2hpZnQgKGVudW0gdHJlZV9j b2RlLA0KPiBtYWNoaW5lX21vZGUsDQo+ICBleHRlcm4gcnR4IGV4cGFuZF9zaGlmdCAoZW51bSB0 cmVlX2NvZGUsIG1hY2hpbmVfbW9kZSwgcnR4LCBwb2x5X2ludDY0LA0KPiBydHgsDQo+ICAJCQkg aW50KTsNCj4gICNpZmRlZiBHQ0NfT1BUQUJTX0gNCj4gLWV4dGVybiBydHggZXhwYW5kX2Rpdm1v ZCAoaW50LCBlbnVtIHRyZWVfY29kZSwgbWFjaGluZV9tb2RlLCBydHgsIHJ0eCwNCj4gLQkJCSAg cnR4LCBpbnQsIGVudW0gb3B0YWJfbWV0aG9kcyA9DQo+IE9QVEFCX0xJQl9XSURFTik7DQo+ICtl eHRlcm4gcnR4IGV4cGFuZF9kaXZtb2QgKGludCwgZW51bSB0cmVlX2NvZGUsIG1hY2hpbmVfbW9k ZSwgdHJlZSwgdHJlZSwNCj4gKwkJCSAgcnR4LCBydHgsIHJ0eCwgaW50LA0KPiArCQkJICBlbnVt IG9wdGFiX21ldGhvZHMgPSBPUFRBQl9MSUJfV0lERU4pOw0KPiAgI2VuZGlmDQo+ICAjZW5kaWYN Cj4gDQo+IGRpZmYgLS1naXQgYS9nY2MvZXhwbWVkLmNjIGIvZ2NjL2V4cG1lZC5jYw0KPiBpbmRl eA0KPiA4ZDc0MThiZTQxODQwNmU3MmE4OTVlY2RkZjJkYzdmZGI5NTBjNzZjLi5iNjRlYTVhYzQ2 YTlkYTg1NzcwYTViYg0KPiAwOTkwZGI4Yjk3ZDNhZjQxNCAxMDA2NDQNCj4gLS0tIGEvZ2NjL2V4 cG1lZC5jYw0KPiArKysgYi9nY2MvZXhwbWVkLmNjDQo+IEBAIC00MjIyLDggKzQyMjIsOCBAQCBl eHBhbmRfc2Rpdl9wb3cyIChzY2FsYXJfaW50X21vZGUgbW9kZSwgcnR4DQo+IG9wMCwgSE9TVF9X SURFX0lOVCBkKQ0KPiANCj4gIHJ0eA0KPiAgZXhwYW5kX2Rpdm1vZCAoaW50IHJlbV9mbGFnLCBl bnVtIHRyZWVfY29kZSBjb2RlLCBtYWNoaW5lX21vZGUgbW9kZSwNCj4gLQkgICAgICAgcnR4IG9w MCwgcnR4IG9wMSwgcnR4IHRhcmdldCwgaW50IHVuc2lnbmVkcCwNCj4gLQkgICAgICAgZW51bSBv cHRhYl9tZXRob2RzIG1ldGhvZHMpDQo+ICsJICAgICAgIHRyZWUgdHJlZW9wMCwgdHJlZSB0cmVl b3AxLCBydHggb3AwLCBydHggb3AxLCBydHggdGFyZ2V0LA0KPiArCSAgICAgICBpbnQgdW5zaWdu ZWRwLCBlbnVtIG9wdGFiX21ldGhvZHMgbWV0aG9kcykNCj4gIHsNCj4gICAgbWFjaGluZV9tb2Rl IGNvbXB1dGVfbW9kZTsNCj4gICAgcnR4IHRxdW90aWVudDsNCj4gQEAgLTQzNzUsNiArNDM3NSwx NCBAQCBleHBhbmRfZGl2bW9kIChpbnQgcmVtX2ZsYWcsIGVudW0gdHJlZV9jb2RlDQo+IGNvZGUs IG1hY2hpbmVfbW9kZSBtb2RlLA0KPiANCj4gICAgbGFzdF9kaXZfY29uc3QgPSAhIHJlbV9mbGFn ICYmIG9wMV9pc19jb25zdGFudCA/IElOVFZBTCAob3AxKSA6IDA7DQo+IA0KPiArICAvKiBDaGVj ayBpZiB0aGUgdGFyZ2V0IGhhcyBzcGVjaWZpYyBleHBhbnNpb25zIGZvciB0aGUgZGl2aXNpb24u ICAqLw0KPiArICBpZiAodHJlZW9wMA0KPiArICAgICAgJiYgdGFyZ2V0bS52ZWN0b3JpemUuY2Fu X3NwZWNpYWxfZGl2X2J5X2NvbnN0IChjb2RlLCBUUkVFX1RZUEUNCj4gKHRyZWVvcDApLA0KPiAr CQkJCQkJICAgICB0cmVlb3AwLCB0cmVlb3AxLA0KPiArCQkJCQkJICAgICAmdGFyZ2V0LCBvcDAs IG9wMSkpDQo+ICsgICAgcmV0dXJuIHRhcmdldDsNCj4gKw0KPiArDQo+ICAgIC8qIE5vdyBjb252 ZXJ0IHRvIHRoZSBiZXN0IG1vZGUgdG8gdXNlLiAgKi8NCj4gICAgaWYgKGNvbXB1dGVfbW9kZSAh PSBtb2RlKQ0KPiAgICAgIHsNCj4gQEAgLTQ2MTgsOCArNDYyNiw4IEBAIGV4cGFuZF9kaXZtb2Qg KGludCByZW1fZmxhZywgZW51bSB0cmVlX2NvZGUNCj4gY29kZSwgbWFjaGluZV9tb2RlIG1vZGUs DQo+ICAJCQkgICAgfHwgKG9wdGFiX2hhbmRsZXIgKHNkaXZtb2Rfb3B0YWIsIGludF9tb2RlKQ0K PiAgCQkJCSE9IENPREVfRk9SX25vdGhpbmcpKSkNCj4gIAkJICAgICAgcXVvdGllbnQgPSBleHBh bmRfZGl2bW9kICgwLCBUUlVOQ19ESVZfRVhQUiwNCj4gLQkJCQkJCWludF9tb2RlLCBvcDAsDQo+ IC0JCQkJCQlnZW5faW50X21vZGUgKGFic19kLA0KPiArCQkJCQkJaW50X21vZGUsIHRyZWVvcDAs IHRyZWVvcDEsDQo+ICsJCQkJCQlvcDAsIGdlbl9pbnRfbW9kZSAoYWJzX2QsDQo+ICAJCQkJCQkJ ICAgICAgaW50X21vZGUpLA0KPiAgCQkJCQkJTlVMTF9SVFgsIDApOw0KPiAgCQkgICAgZWxzZQ0K PiBAQCAtNDgwOCw4ICs0ODE2LDggQEAgZXhwYW5kX2Rpdm1vZCAoaW50IHJlbV9mbGFnLCBlbnVt IHRyZWVfY29kZQ0KPiBjb2RlLCBtYWNoaW5lX21vZGUgbW9kZSwNCj4gIAkJCQkgICAgICBzaXpl IC0gMSwgTlVMTF9SVFgsIDApOw0KPiAgCQl0MyA9IGZvcmNlX29wZXJhbmQgKGdlbl9ydHhfTUlO VVMgKGludF9tb2RlLCB0MSwgbnNpZ24pLA0KPiAgCQkJCSAgICBOVUxMX1JUWCk7DQo+IC0JCXQ0 ID0gZXhwYW5kX2Rpdm1vZCAoMCwgVFJVTkNfRElWX0VYUFIsIGludF9tb2RlLCB0MywNCj4gb3Ax LA0KPiAtCQkJCSAgICBOVUxMX1JUWCwgMCk7DQo+ICsJCXQ0ID0gZXhwYW5kX2Rpdm1vZCAoMCwg VFJVTkNfRElWX0VYUFIsIGludF9tb2RlLA0KPiB0cmVlb3AwLA0KPiArCQkJCSAgICB0cmVlb3Ax LCB0Mywgb3AxLCBOVUxMX1JUWCwgMCk7DQo+ICAJCWlmICh0NCkNCj4gIAkJICB7DQo+ICAJCSAg ICBydHggdDU7DQo+IGRpZmYgLS1naXQgYS9nY2MvZXhwci5jYyBiL2djYy9leHByLmNjDQo+IGlu ZGV4DQo+IDgwYmIxYjhhNGM1YjgzNTBmYjFiOGY1N2E5OWZkNTJlNTg4MmZjYjYuLmI3ODZmMWQ3 NWUyNWYzNDEwYzA2NDBjZA0KPiA5NmE4YWJjMDU1ZmEzNGQ5IDEwMDY0NA0KPiAtLS0gYS9nY2Mv ZXhwci5jYw0KPiArKysgYi9nY2MvZXhwci5jYw0KPiBAQCAtODAyOCwxNiArODAyOCwxNyBAQCBm b3JjZV9vcGVyYW5kIChydHggdmFsdWUsIHJ0eCB0YXJnZXQpDQo+ICAJICAgIHJldHVybiBleHBh bmRfZGl2bW9kICgwLA0KPiAgCQkJCSAgRkxPQVRfTU9ERV9QIChHRVRfTU9ERSAodmFsdWUpKQ0K PiAgCQkJCSAgPyBSRElWX0VYUFIgOiBUUlVOQ19ESVZfRVhQUiwNCj4gLQkJCQkgIEdFVF9NT0RF ICh2YWx1ZSksIG9wMSwgb3AyLCB0YXJnZXQsIDApOw0KPiArCQkJCSAgR0VUX01PREUgKHZhbHVl KSwgTlVMTCwgTlVMTCwgb3AxLCBvcDIsDQo+ICsJCQkJICB0YXJnZXQsIDApOw0KPiAgCWNhc2Ug TU9EOg0KPiAtCSAgcmV0dXJuIGV4cGFuZF9kaXZtb2QgKDEsIFRSVU5DX01PRF9FWFBSLCBHRVRf TU9ERSAodmFsdWUpLA0KPiBvcDEsIG9wMiwNCj4gLQkJCQl0YXJnZXQsIDApOw0KPiArCSAgcmV0 dXJuIGV4cGFuZF9kaXZtb2QgKDEsIFRSVU5DX01PRF9FWFBSLCBHRVRfTU9ERSAodmFsdWUpLA0K PiBOVUxMLCBOVUxMLA0KPiArCQkJCW9wMSwgb3AyLCB0YXJnZXQsIDApOw0KPiAgCWNhc2UgVURJ VjoNCj4gLQkgIHJldHVybiBleHBhbmRfZGl2bW9kICgwLCBUUlVOQ19ESVZfRVhQUiwgR0VUX01P REUgKHZhbHVlKSwNCj4gb3AxLCBvcDIsDQo+IC0JCQkJdGFyZ2V0LCAxKTsNCj4gKwkgIHJldHVy biBleHBhbmRfZGl2bW9kICgwLCBUUlVOQ19ESVZfRVhQUiwgR0VUX01PREUgKHZhbHVlKSwNCj4g TlVMTCwgTlVMTCwNCj4gKwkJCQlvcDEsIG9wMiwgdGFyZ2V0LCAxKTsNCj4gIAljYXNlIFVNT0Q6 DQo+IC0JICByZXR1cm4gZXhwYW5kX2Rpdm1vZCAoMSwgVFJVTkNfTU9EX0VYUFIsIEdFVF9NT0RF ICh2YWx1ZSksDQo+IG9wMSwgb3AyLA0KPiAtCQkJCXRhcmdldCwgMSk7DQo+ICsJICByZXR1cm4g ZXhwYW5kX2Rpdm1vZCAoMSwgVFJVTkNfTU9EX0VYUFIsIEdFVF9NT0RFICh2YWx1ZSksDQo+IE5V TEwsIE5VTEwsDQo+ICsJCQkJb3AxLCBvcDIsIHRhcmdldCwgMSk7DQo+ICAJY2FzZSBBU0hJRlRS VDoNCj4gIAkgIHJldHVybiBleHBhbmRfc2ltcGxlX2Jpbm9wIChHRVRfTU9ERSAodmFsdWUpLCBj b2RlLCBvcDEsIG9wMiwNCj4gIAkJCQkgICAgICB0YXJnZXQsIDAsIE9QVEFCX0xJQl9XSURFTik7 DQo+IEBAIC04OTkwLDExICs4OTkxLDEzIEBAIGV4cGFuZF9leHByX2Rpdm1vZCAodHJlZV9jb2Rl IGNvZGUsDQo+IG1hY2hpbmVfbW9kZSBtb2RlLCB0cmVlIHRyZWVvcDAsDQo+ICAgICAgICBib29s IHNwZWVkX3AgPSBvcHRpbWl6ZV9pbnNuX2Zvcl9zcGVlZF9wICgpOw0KPiAgICAgICAgZG9fcGVu ZGluZ19zdGFja19hZGp1c3QgKCk7DQo+ICAgICAgICBzdGFydF9zZXF1ZW5jZSAoKTsNCj4gLSAg ICAgIHJ0eCB1bnNfcmV0ID0gZXhwYW5kX2Rpdm1vZCAobW9kX3AsIGNvZGUsIG1vZGUsIG9wMCwg b3AxLCB0YXJnZXQsIDEpOw0KPiArICAgICAgcnR4IHVuc19yZXQgPSBleHBhbmRfZGl2bW9kICht b2RfcCwgY29kZSwgbW9kZSwgdHJlZW9wMCwgdHJlZW9wMSwNCj4gKwkJCQkgICBvcDAsIG9wMSwg dGFyZ2V0LCAxKTsNCj4gICAgICAgIHJ0eF9pbnNuICp1bnNfaW5zbnMgPSBnZXRfaW5zbnMgKCk7 DQo+ICAgICAgICBlbmRfc2VxdWVuY2UgKCk7DQo+ICAgICAgICBzdGFydF9zZXF1ZW5jZSAoKTsN Cj4gLSAgICAgIHJ0eCBzZ25fcmV0ID0gZXhwYW5kX2Rpdm1vZCAobW9kX3AsIGNvZGUsIG1vZGUs IG9wMCwgb3AxLCB0YXJnZXQsIDApOw0KPiArICAgICAgcnR4IHNnbl9yZXQgPSBleHBhbmRfZGl2 bW9kIChtb2RfcCwgY29kZSwgbW9kZSwgdHJlZW9wMCwgdHJlZW9wMSwNCj4gKwkJCQkgICBvcDAs IG9wMSwgdGFyZ2V0LCAwKTsNCj4gICAgICAgIHJ0eF9pbnNuICpzZ25faW5zbnMgPSBnZXRfaW5z bnMgKCk7DQo+ICAgICAgICBlbmRfc2VxdWVuY2UgKCk7DQo+ICAgICAgICB1bnNpZ25lZCB1bnNf Y29zdCA9IHNlcV9jb3N0ICh1bnNfaW5zbnMsIHNwZWVkX3ApOw0KPiBAQCAtOTAxNiw3ICs5MDE5 LDggQEAgZXhwYW5kX2V4cHJfZGl2bW9kICh0cmVlX2NvZGUgY29kZSwNCj4gbWFjaGluZV9tb2Rl IG1vZGUsIHRyZWUgdHJlZW9wMCwNCj4gICAgICAgIGVtaXRfaW5zbiAoc2duX2luc25zKTsNCj4g ICAgICAgIHJldHVybiBzZ25fcmV0Ow0KPiAgICAgIH0NCj4gLSAgcmV0dXJuIGV4cGFuZF9kaXZt b2QgKG1vZF9wLCBjb2RlLCBtb2RlLCBvcDAsIG9wMSwgdGFyZ2V0LCB1bnNpZ25lZHApOw0KPiAr ICByZXR1cm4gZXhwYW5kX2Rpdm1vZCAobW9kX3AsIGNvZGUsIG1vZGUsIHRyZWVvcDAsIHRyZWVv cDEsDQo+ICsJCQlvcDAsIG9wMSwgdGFyZ2V0LCB1bnNpZ25lZHApOw0KPiAgfQ0KPiANCj4gIHJ0 eA0KPiBkaWZmIC0tZ2l0IGEvZ2NjL29wdGFicy5jYyBiL2djYy9vcHRhYnMuY2MNCj4gaW5kZXgN Cj4gMTY1ZjhkMWZhMjI0MzJiOTY5NjdjNjlhNThkYmI3YjRiZjE4MTIwZC4uY2ZmMzdjY2IwZGZj M2RkNzliOTdkMGFiZg0KPiBkODcyZjM0MDg1NWRjOTYgMTAwNjQ0DQo+IC0tLSBhL2djYy9vcHRh YnMuY2MNCj4gKysrIGIvZ2NjL29wdGFicy5jYw0KPiBAQCAtMTEwNCw4ICsxMTA0LDkgQEAgZXhw YW5kX2RvdWJsZXdvcmRfbW9kIChtYWNoaW5lX21vZGUgbW9kZSwNCj4gcnR4IG9wMCwgcnR4IG9w MSwgYm9vbCB1bnNpZ25lZHApDQo+ICAJCXJldHVybiBOVUxMX1JUWDsNCj4gIAkgICAgfQ0KPiAg CX0NCj4gLSAgICAgIHJ0eCByZW1haW5kZXIgPSBleHBhbmRfZGl2bW9kICgxLCBUUlVOQ19NT0Rf RVhQUiwgd29yZF9tb2RlLA0KPiBzdW0sDQo+IC0JCQkJICAgICBnZW5faW50X21vZGUgKElOVFZB TCAob3AxKSwNCj4gd29yZF9tb2RlKSwNCj4gKyAgICAgIHJ0eCByZW1haW5kZXIgPSBleHBhbmRf ZGl2bW9kICgxLCBUUlVOQ19NT0RfRVhQUiwgd29yZF9tb2RlLA0KPiBOVUxMLCBOVUxMLA0KPiAr CQkJCSAgICAgc3VtLCBnZW5faW50X21vZGUgKElOVFZBTCAob3AxKSwNCj4gKwkJCQkJCQl3b3Jk X21vZGUpLA0KPiAgCQkJCSAgICAgTlVMTF9SVFgsIDEsIE9QVEFCX0RJUkVDVCk7DQo+ICAgICAg ICBpZiAocmVtYWluZGVyID09IE5VTExfUlRYKQ0KPiAgCXJldHVybiBOVUxMX1JUWDsNCj4gQEAg LTEyMDgsOCArMTIwOSw4IEBAIGV4cGFuZF9kb3VibGV3b3JkX2Rpdm1vZCAobWFjaGluZV9tb2Rl DQo+IG1vZGUsIHJ0eCBvcDAsIHJ0eCBvcDEsIHJ0eCAqcmVtLA0KPiANCj4gICAgaWYgKG9wMTEg IT0gY29uc3QxX3J0eCkNCj4gICAgICB7DQo+IC0gICAgICBydHggcmVtMiA9IGV4cGFuZF9kaXZt b2QgKDEsIFRSVU5DX01PRF9FWFBSLCBtb2RlLCBxdW90MSwgb3AxMSwNCj4gLQkJCQlOVUxMX1JU WCwgdW5zaWduZWRwLCBPUFRBQl9ESVJFQ1QpOw0KPiArICAgICAgcnR4IHJlbTIgPSBleHBhbmRf ZGl2bW9kICgxLCBUUlVOQ19NT0RfRVhQUiwgbW9kZSwgTlVMTCwgTlVMTCwNCj4gcXVvdDEsDQo+ ICsJCQkJb3AxMSwgTlVMTF9SVFgsIHVuc2lnbmVkcCwgT1BUQUJfRElSRUNUKTsNCj4gICAgICAg IGlmIChyZW0yID09IE5VTExfUlRYKQ0KPiAgCXJldHVybiBOVUxMX1JUWDsNCj4gDQo+IEBAIC0x MjIzLDggKzEyMjQsOCBAQCBleHBhbmRfZG91Ymxld29yZF9kaXZtb2QgKG1hY2hpbmVfbW9kZQ0K PiBtb2RlLCBydHggb3AwLCBydHggb3AxLCBydHggKnJlbSwNCj4gICAgICAgIGlmIChyZW0yID09 IE5VTExfUlRYKQ0KPiAgCXJldHVybiBOVUxMX1JUWDsNCj4gDQo+IC0gICAgICBydHggcXVvdDIg PSBleHBhbmRfZGl2bW9kICgwLCBUUlVOQ19ESVZfRVhQUiwgbW9kZSwgcXVvdDEsIG9wMTEsDQo+ IC0JCQkJIE5VTExfUlRYLCB1bnNpZ25lZHAsIE9QVEFCX0RJUkVDVCk7DQo+ICsgICAgICBydHgg cXVvdDIgPSBleHBhbmRfZGl2bW9kICgwLCBUUlVOQ19ESVZfRVhQUiwgbW9kZSwgTlVMTCwgTlVM TCwNCj4gcXVvdDEsDQo+ICsJCQkJIG9wMTEsIE5VTExfUlRYLCB1bnNpZ25lZHAsDQo+IE9QVEFC X0RJUkVDVCk7DQo+ICAgICAgICBpZiAocXVvdDIgPT0gTlVMTF9SVFgpDQo+ICAJcmV0dXJuIE5V TExfUlRYOw0KPiANCj4gZGlmZiAtLWdpdCBhL2djYy90YXJnZXQuZGVmIGIvZ2NjL3RhcmdldC5k ZWYNCj4gaW5kZXgNCj4gMmE3ZmE2OGY4M2RkMTVkY2RkMmMzMzJlODQzMWU2MTQyZWM3ZDMwNS4u OTJlYmQyYWYxOGZlOGFiYjZlZDk1YjANCj4gNzA4MWNkZDcwMTEzZGI5YjEgMTAwNjQ0DQo+IC0t LSBhL2djYy90YXJnZXQuZGVmDQo+ICsrKyBiL2djYy90YXJnZXQuZGVmDQo+IEBAIC0xOTAyLDYg KzE5MDIsMjUgQEAgaW1wbGVtZW50YXRpb24gYXBwcm9hY2hlcyBpdHNlbGYuIiwNCj4gIAljb25z dCB2ZWNfcGVybV9pbmRpY2VzICZzZWwpLA0KPiAgIE5VTEwpDQo+IA0KPiArREVGSE9PSw0KPiAr KGNhbl9zcGVjaWFsX2Rpdl9ieV9jb25zdCwNCj4gKyAiVGhpcyBob29rIGlzIHVzZWQgdG8gdGVz dCB3aGV0aGVyIHRoZSB0YXJnZXQgaGFzIGEgc3BlY2lhbCBtZXRob2Qgb2ZcblwNCj4gK2Rpdmlz aW9uIG9mIHZlY3RvcnMgb2YgdHlwZSBAdmFye3ZlY3R5cGV9IHVzaW5nIHRoZSB0d28gb3BlcmFu ZHMNCj4gQGNvZGV7dHJlZW9wMH0sXG5cDQo+ICthbmQgQGNvZGV7dHJlZW9wMX0gYW5kIHByb2R1 Y2luZyBhIHZlY3RvciBvZiB0eXBlIEB2YXJ7dmVjdHlwZX0uICBUaGUNCj4gZGl2aXNpb25cblwN Cj4gK3dpbGwgdGhlbiBub3QgYmUgZGVjb21wb3NlZCBieSB0aGUgYW5kIGtlcHQgYXMgYSBkaXYu XG5cDQo+ICtcblwNCj4gK1doZW4gdGhlIGhvb2sgaXMgYmVpbmcgdXNlZCB0byB0ZXN0IHdoZXRo ZXIgdGhlIHRhcmdldCBzdXBwb3J0cyBhDQo+IHNwZWNpYWxcblwNCj4gK2RpdmlkZSwgQHZhcntp bjB9LCBAdmFye2luMX0sIGFuZCBAdmFye291dHB1dH0gYXJlIGFsbCBudWxsLiAgV2hlbiB0aGUN Cj4gaG9va1xuXA0KPiAraXMgYmVpbmcgdXNlZCB0byBlbWl0IGEgZGl2aXNpb24sIEB2YXJ7aW4w fSBhbmQgQHZhcntpbjF9IGFyZSB0aGUgc291cmNlXG5cDQo+ICt2ZWN0b3JzIG9mIHR5cGUgQHZh cnt2ZWN0dHlwZX0gYW5kIEB2YXJ7b3V0cHV0fSBpcyB0aGUgZGVzdGluYXRpb24gdmVjdG9yDQo+ IG9mXG5cDQo+ICt0eXBlIEB2YXJ7dmVjdHlwZX0uXG5cDQo+ICtcblwNCj4gK1JldHVybiB0cnVl IGlmIHRoZSBvcGVyYXRpb24gaXMgcG9zc2libGUsIGVtaXR0aW5nIGluc3RydWN0aW9ucyBmb3Ig aXRcblwNCj4gK2lmIHJ0eGVzIGFyZSBwcm92aWRlZCBhbmQgdXBkYXRpbmcgQHZhcntvdXRwdXR9 LiIsDQo+ICsgYm9vbCwgKGVudW0gdHJlZV9jb2RlLCB0cmVlIHZlY3R5cGUsIHRyZWUgdHJlZW9w MCwgdHJlZSB0cmVlb3AxLCBydHgNCj4gKm91dHB1dCwNCj4gKwlydHggaW4wLCBydHggaW4xKSwN Cj4gKyBkZWZhdWx0X2Nhbl9zcGVjaWFsX2Rpdl9ieV9jb25zdCkNCj4gKw0KPiAgLyogUmV0dXJu IHRydWUgaWYgdGhlIHRhcmdldCBzdXBwb3J0cyBtaXNhbGlnbmVkIHN0b3JlL2xvYWQgb2YgYQ0K PiAgICAgc3BlY2lmaWMgZmFjdG9yIGRlbm90ZWQgaW4gdGhlIHRoaXJkIHBhcmFtZXRlci4gIFRo ZSBsYXN0IHBhcmFtZXRlcg0KPiAgICAgaXMgdHJ1ZSBpZiB0aGUgYWNjZXNzIGlzIGRlZmluZWQg aW4gYSBwYWNrZWQgc3RydWN0LiAgKi8NCj4gZGlmZiAtLWdpdCBhL2djYy90YXJnZXQuaCBiL2dj Yy90YXJnZXQuaA0KPiBpbmRleA0KPiBkNmZhNjkzMTQ5OWQxNWVkZmYzZTVhZjNlNDI5NTQwZDAw MWM3MDU4Li5jODM2MDM2YWM3ZmE3OTEwZDYyYmQzZGENCj4gNTZmMzljMDYxZjY4YjY2NSAxMDA2 NDQNCj4gLS0tIGEvZ2NjL3RhcmdldC5oDQo+ICsrKyBiL2djYy90YXJnZXQuaA0KPiBAQCAtNTEs NiArNTEsNyBAQA0KPiAgI2luY2x1ZGUgImluc24tY29kZXMuaCINCj4gICNpbmNsdWRlICJ0bS5o Ig0KPiAgI2luY2x1ZGUgImhhcmQtcmVnLXNldC5oIg0KPiArI2luY2x1ZGUgInRyZWUtY29yZS5o Ig0KPiANCj4gICNpZiBDSEVDS0lOR19QDQo+IA0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rhcmdob29r cy5oIGIvZ2NjL3Rhcmdob29rcy5oDQo+IGluZGV4DQo+IGVjY2U1NWViZTc5N2NlZGM5NDA2MjBl OGQ4OTgxNjk3M2EwNDVkNDkuLjQyNDUxYTNlMjJlODZmZWU5ZGEyZjU2ZQ0KPiAyNjQwZDYzZjkz NmIzMzZkIDEwMDY0NA0KPiAtLS0gYS9nY2MvdGFyZ2hvb2tzLmgNCj4gKysrIGIvZ2NjL3Rhcmdo b29rcy5oDQo+IEBAIC0yMDcsNiArMjA3LDggQEAgZXh0ZXJuIHZvaWQgZGVmYXVsdF9hZGRyX3Nw YWNlX2RpYWdub3NlX3VzYWdlDQo+IChhZGRyX3NwYWNlX3QsIGxvY2F0aW9uX3QpOw0KPiAgZXh0 ZXJuIHJ0eCBkZWZhdWx0X2FkZHJfc3BhY2VfY29udmVydCAocnR4LCB0cmVlLCB0cmVlKTsNCj4g IGV4dGVybiB1bnNpZ25lZCBpbnQgZGVmYXVsdF9jYXNlX3ZhbHVlc190aHJlc2hvbGQgKHZvaWQp Ow0KPiAgZXh0ZXJuIGJvb2wgZGVmYXVsdF9oYXZlX2NvbmRpdGlvbmFsX2V4ZWN1dGlvbiAodm9p ZCk7DQo+ICtleHRlcm4gYm9vbCBkZWZhdWx0X2Nhbl9zcGVjaWFsX2Rpdl9ieV9jb25zdCAoZW51 bSB0cmVlX2NvZGUsIHRyZWUsIHRyZWUsDQo+IHRyZWUsDQo+ICsJCQkJCSAgICAgIHJ0eCAqLCBy dHgsIHJ0eCk7DQo+IA0KPiAgZXh0ZXJuIGJvb2wgZGVmYXVsdF9saWJjX2hhc19mdW5jdGlvbiAo ZW51bSBmdW5jdGlvbl9jbGFzcywgdHJlZSk7DQo+ICBleHRlcm4gYm9vbCBkZWZhdWx0X2xpYmNf aGFzX2Zhc3RfZnVuY3Rpb24gKGludCBmY29kZSk7DQo+IGRpZmYgLS1naXQgYS9nY2MvdGFyZ2hv b2tzLmNjIGIvZ2NjL3Rhcmdob29rcy5jYw0KPiBpbmRleA0KPiBiMTVhZTE5YmNiNjBjNTlhZTgx MTJlNjdiNWYwNmEyNDFhOWJkYmYxLi44MjA2NTMzMzgyNjExYTc2NDBlZmJhMg0KPiA0MTI3OTkz NmNlZDQxZWU5NSAxMDA2NDQNCj4gLS0tIGEvZ2NjL3Rhcmdob29rcy5jYw0KPiArKysgYi9nY2Mv dGFyZ2hvb2tzLmNjDQo+IEBAIC0xODA3LDYgKzE4MDcsMTQgQEAgZGVmYXVsdF9oYXZlX2NvbmRp dGlvbmFsX2V4ZWN1dGlvbiAodm9pZCkNCj4gICAgcmV0dXJuIEhBVkVfY29uZGl0aW9uYWxfZXhl Y3V0aW9uOw0KPiAgfQ0KPiANCj4gKy8qIERlZmF1bHQgdGhhdCBubyBkaXZpc2lvbiBieSBjb25z dGFudCBvcGVyYXRpb25zIGFyZSBzcGVjaWFsLiAgKi8NCj4gK2Jvb2wNCj4gK2RlZmF1bHRfY2Fu X3NwZWNpYWxfZGl2X2J5X2NvbnN0IChlbnVtIHRyZWVfY29kZSwgdHJlZSwgdHJlZSwgdHJlZSwg cnR4ICosDQo+IHJ0eCwNCj4gKwkJCQkgIHJ0eCkNCj4gK3sNCj4gKyAgcmV0dXJuIGZhbHNlOw0K PiArfQ0KPiArDQo+ICAvKiBCeSBkZWZhdWx0IHdlIGFzc3VtZSB0aGF0IGM5OSBmdW5jdGlvbnMg YXJlIHByZXNlbnQgYXQgdGhlIHJ1bnRpbWUsDQo+ICAgICBidXQgc2luY29zIGlzIG5vdC4gICov DQo+ICBib29sDQo+IGRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2djYy5kZy92ZWN0L3ZlY3Qt ZGl2LWJpdG1hc2stMS5jDQo+IGIvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdmVjdC92ZWN0LWRpdi1i aXRtYXNrLTEuYw0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleA0KPiAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40NzJjZDcxMDUzNGJjOGFhOWIxYjQ5MQ0K PiA2ZjNkN2I0ZDViNjRhMTliOQ0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2djYy90ZXN0c3Vp dGUvZ2NjLmRnL3ZlY3QvdmVjdC1kaXYtYml0bWFzay0xLmMNCj4gQEAgLTAsMCArMSwyNSBAQA0K PiArLyogeyBkZy1yZXF1aXJlLWVmZmVjdGl2ZS10YXJnZXQgdmVjdF9pbnQgfSAqLw0KPiArDQo+ ICsjaW5jbHVkZSA8c3RkaW50Lmg+DQo+ICsjaW5jbHVkZSAidHJlZS12ZWN0LmgiDQo+ICsNCj4g KyNkZWZpbmUgTiA1MA0KPiArI2RlZmluZSBUWVBFIHVpbnQ4X3QNCj4gKw0KPiArX19hdHRyaWJ1 dGVfXygobm9pcGEsIG5vaW5saW5lLCBvcHRpbWl6ZSgiTzEiKSkpDQo+ICt2b2lkIGZ1bjEoVFlQ RSogcmVzdHJpY3QgcGl4ZWwsIFRZUEUgbGV2ZWwsIGludCBuKQ0KPiArew0KPiArICBmb3IgKGlu dCBpID0gMDsgaSA8IG47IGkrPTEpDQo+ICsgICAgcGl4ZWxbaV0gPSAocGl4ZWxbaV0gKiBsZXZl bCkgLyAweGZmOw0KPiArfQ0KPiArDQo+ICtfX2F0dHJpYnV0ZV9fKChub2lwYSwgbm9pbmxpbmUs IG9wdGltaXplKCJPMyIpKSkNCj4gK3ZvaWQgZnVuMihUWVBFKiByZXN0cmljdCBwaXhlbCwgVFlQ RSBsZXZlbCwgaW50IG4pDQo+ICt7DQo+ICsgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSs9MSkN Cj4gKyAgICBwaXhlbFtpXSA9IChwaXhlbFtpXSAqIGxldmVsKSAvIDB4ZmY7DQo+ICt9DQo+ICsN Cj4gKyNpbmNsdWRlICJ2ZWN0LWRpdi1iaXRtYXNrLmgiDQo+ICsNCj4gKy8qIHsgZGctZmluYWwg eyBzY2FuLXRyZWUtZHVtcC1ub3QgInZlY3RfcmVjb2dfZGl2bW9kX3BhdHRlcm46IGRldGVjdGVk Ig0KPiAidmVjdCIgeyB0YXJnZXQgYWFyY2g2NCotKi0qIH0gfSB9ICovDQo+IGRpZmYgLS1naXQg YS9nY2MvdGVzdHN1aXRlL2djYy5kZy92ZWN0L3ZlY3QtZGl2LWJpdG1hc2stMi5jDQo+IGIvZ2Nj L3Rlc3RzdWl0ZS9nY2MuZGcvdmVjdC92ZWN0LWRpdi1iaXRtYXNrLTIuYw0KPiBuZXcgZmlsZSBt b2RlIDEwMDY0NA0KPiBpbmRleA0KPiAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwLi5lOTA0YTcxODg1YjJlODQ4NzU5M2EyYw0KPiBkM2RiNzViM2U0MTEyZTJjYw0KPiAt LS0gL2Rldi9udWxsDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLmRnL3ZlY3QvdmVjdC1kaXYt Yml0bWFzay0yLmMNCj4gQEAgLTAsMCArMSwyNSBAQA0KPiArLyogeyBkZy1yZXF1aXJlLWVmZmVj dGl2ZS10YXJnZXQgdmVjdF9pbnQgfSAqLw0KPiArDQo+ICsjaW5jbHVkZSA8c3RkaW50Lmg+DQo+ ICsjaW5jbHVkZSAidHJlZS12ZWN0LmgiDQo+ICsNCj4gKyNkZWZpbmUgTiA1MA0KPiArI2RlZmlu ZSBUWVBFIHVpbnQxNl90DQo+ICsNCj4gK19fYXR0cmlidXRlX18oKG5vaXBhLCBub2lubGluZSwg b3B0aW1pemUoIk8xIikpKQ0KPiArdm9pZCBmdW4xKFRZUEUqIHJlc3RyaWN0IHBpeGVsLCBUWVBF IGxldmVsLCBpbnQgbikNCj4gK3sNCj4gKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKz0xKQ0K PiArICAgIHBpeGVsW2ldID0gKHBpeGVsW2ldICogbGV2ZWwpIC8gMHhmZmZmVTsNCj4gK30NCj4g Kw0KPiArX19hdHRyaWJ1dGVfXygobm9pcGEsIG5vaW5saW5lLCBvcHRpbWl6ZSgiTzMiKSkpDQo+ ICt2b2lkIGZ1bjIoVFlQRSogcmVzdHJpY3QgcGl4ZWwsIFRZUEUgbGV2ZWwsIGludCBuKQ0KPiAr ew0KPiArICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrPTEpDQo+ICsgICAgcGl4ZWxbaV0gPSAo cGl4ZWxbaV0gKiBsZXZlbCkgLyAweGZmZmZVOw0KPiArfQ0KPiArDQo+ICsjaW5jbHVkZSAidmVj dC1kaXYtYml0bWFzay5oIg0KPiArDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAt bm90ICJ2ZWN0X3JlY29nX2Rpdm1vZF9wYXR0ZXJuOiBkZXRlY3RlZCINCj4gInZlY3QiIHsgdGFy Z2V0IGFhcmNoNjQqLSotKiB9IH0gfSAqLw0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9n Y2MuZGcvdmVjdC92ZWN0LWRpdi1iaXRtYXNrLTMuYw0KPiBiL2djYy90ZXN0c3VpdGUvZ2NjLmRn L3ZlY3QvdmVjdC1kaXYtYml0bWFzay0zLmMNCj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQNCj4gaW5k ZXgNCj4gMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTE0MThlYmJm NWVhODczMWVkNGUzZTcNCj4gMjAxNTc3MDFkOWQxY2Y4NTINCj4gLS0tIC9kZXYvbnVsbA0KPiAr KysgYi9nY2MvdGVzdHN1aXRlL2djYy5kZy92ZWN0L3ZlY3QtZGl2LWJpdG1hc2stMy5jDQo+IEBA IC0wLDAgKzEsMjYgQEANCj4gKy8qIHsgZGctcmVxdWlyZS1lZmZlY3RpdmUtdGFyZ2V0IHZlY3Rf aW50IH0gKi8NCj4gKy8qIHsgZGctYWRkaXRpb25hbC1vcHRpb25zICItZm5vLXZlY3QtY29zdC1t b2RlbCIgeyB0YXJnZXQgYWFyY2g2NCotKi0qIH0gfSAqLw0KPiArDQo+ICsjaW5jbHVkZSA8c3Rk aW50Lmg+DQo+ICsjaW5jbHVkZSAidHJlZS12ZWN0LmgiDQo+ICsNCj4gKyNkZWZpbmUgTiA1MA0K PiArI2RlZmluZSBUWVBFIHVpbnQzMl90DQo+ICsNCj4gK19fYXR0cmlidXRlX18oKG5vaXBhLCBu b2lubGluZSwgb3B0aW1pemUoIk8xIikpKQ0KPiArdm9pZCBmdW4xKFRZUEUqIHJlc3RyaWN0IHBp eGVsLCBUWVBFIGxldmVsLCBpbnQgbikNCj4gK3sNCj4gKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBu OyBpKz0xKQ0KPiArICAgIHBpeGVsW2ldID0gKHBpeGVsW2ldICogKHVpbnQ2NF90KWxldmVsKSAv IDB4ZmZmZmZmZmZVTDsNCj4gK30NCj4gKw0KPiArX19hdHRyaWJ1dGVfXygobm9pcGEsIG5vaW5s aW5lLCBvcHRpbWl6ZSgiTzMiKSkpDQo+ICt2b2lkIGZ1bjIoVFlQRSogcmVzdHJpY3QgcGl4ZWws IFRZUEUgbGV2ZWwsIGludCBuKQ0KPiArew0KPiArICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkr PTEpDQo+ICsgICAgcGl4ZWxbaV0gPSAocGl4ZWxbaV0gKiAodWludDY0X3QpbGV2ZWwpIC8gMHhm ZmZmZmZmZlVMOw0KPiArfQ0KPiArDQo+ICsjaW5jbHVkZSAidmVjdC1kaXYtYml0bWFzay5oIg0K PiArDQo+ICsvKiB7IGRnLWZpbmFsIHsgc2Nhbi10cmVlLWR1bXAtbm90ICJ2ZWN0X3JlY29nX2Rp dm1vZF9wYXR0ZXJuOiBkZXRlY3RlZCINCj4gInZlY3QiIHsgdGFyZ2V0IGFhcmNoNjQqLSotKiB9 IH0gfSAqLw0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2MuZGcvdmVjdC92ZWN0LWRp di1iaXRtYXNrLmgNCj4gYi9nY2MvdGVzdHN1aXRlL2djYy5kZy92ZWN0L3ZlY3QtZGl2LWJpdG1h c2suaA0KPiBuZXcgZmlsZSBtb2RlIDEwMDY0NA0KPiBpbmRleA0KPiAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yOWExNjczOWFhNGI3MDY2MTYzNjdiZg0KPiBkMTgz MmYyOGViZDA3OTkzZQ0KPiAtLS0gL2Rldi9udWxsDQo+ICsrKyBiL2djYy90ZXN0c3VpdGUvZ2Nj LmRnL3ZlY3QvdmVjdC1kaXYtYml0bWFzay5oDQo+IEBAIC0wLDAgKzEsNDMgQEANCj4gKyNpbmNs dWRlIDxzdGRpby5oPg0KPiArDQo+ICsjaWZuZGVmIE4NCj4gKyNkZWZpbmUgTiA2NQ0KPiArI2Vu ZGlmDQo+ICsNCj4gKyNpZm5kZWYgVFlQRQ0KPiArI2RlZmluZSBUWVBFIHVpbnQzMl90DQo+ICsj ZW5kaWYNCj4gKw0KPiArI2lmbmRlZiBERUJVRw0KPiArI2RlZmluZSBERUJVRyAwDQo+ICsjZW5k aWYNCj4gKw0KPiArI2RlZmluZSBCQVNFICgoVFlQRSkgLTEgPCAwID8gLTEyNiA6IDQpDQo+ICsN Cj4gK2ludCBtYWluICgpDQo+ICt7DQo+ICsgIFRZUEUgYVtOXTsNCj4gKyAgVFlQRSBiW05dOw0K PiArDQo+ICsgIGZvciAoaW50IGkgPSAwOyBpIDwgTjsgKytpKQ0KPiArICAgIHsNCj4gKyAgICAg IGFbaV0gPSBCQVNFICsgaSAqIDEzOw0KPiArICAgICAgYltpXSA9IEJBU0UgKyBpICogMTM7DQo+ ICsgICAgICBpZiAoREVCVUcpDQo+ICsgICAgICAgIHByaW50ZiAoIiVkOiAweCV4XG4iLCBpLCBh W2ldKTsNCj4gKyAgICB9DQo+ICsNCj4gKyAgZnVuMSAoYSwgTiAvIDIsIE4pOw0KPiArICBmdW4y IChiLCBOIC8gMiwgTik7DQo+ICsNCj4gKyAgZm9yIChpbnQgaSA9IDA7IGkgPCBOOyArK2kpDQo+ ICsgICAgew0KPiArICAgICAgaWYgKERFQlVHKQ0KPiArICAgICAgICBwcmludGYgKCIlZCA9IDB4 JXggPT0gMHgleFxuIiwgaSwgYVtpXSwgYltpXSk7DQo+ICsNCj4gKyAgICAgIGlmIChhW2ldICE9 IGJbaV0pDQo+ICsgICAgICAgIF9fYnVpbHRpbl9hYm9ydCAoKTsNCj4gKyAgICB9DQo+ICsgIHJl dHVybiAwOw0KPiArfQ0KPiArDQo+IGRpZmYgLS1naXQgYS9nY2MvdHJlZS12ZWN0LWdlbmVyaWMu Y2MgYi9nY2MvdHJlZS12ZWN0LWdlbmVyaWMuY2MNCj4gaW5kZXgNCj4gMzUwMTI5NTU1YTBjNzFj MDg5NmM0ZjEwMDMxNjNmM2IzNTU3YzExYi4uZWJlZTVlMjRiMTg2OTE1ZWJjYjNhODE3DQo+IGM5 YTEyMDQ2YjZlYzk0ZjMgMTAwNjQ0DQo+IC0tLSBhL2djYy90cmVlLXZlY3QtZ2VuZXJpYy5jYw0K PiArKysgYi9nY2MvdHJlZS12ZWN0LWdlbmVyaWMuY2MNCj4gQEAgLTEyMzcsNiArMTIzNywxNCBA QCBleHBhbmRfdmVjdG9yX29wZXJhdGlvbiAoZ2ltcGxlX3N0bXRfaXRlcmF0b3INCj4gKmdzaSwg dHJlZSB0eXBlLCB0cmVlIGNvbXB1dGVfdHlwZQ0KPiAgCSAgdHJlZSByaHMyID0gZ2ltcGxlX2Fz c2lnbl9yaHMyIChhc3NpZ24pOw0KPiAgCSAgdHJlZSByZXQ7DQo+IA0KPiArCSAgLyogQ2hlY2sg aWYgdGhlIHRhcmdldCB3YXMgZ29pbmcgdG8gaGFuZGxlIGl0IHRocm91Z2ggdGhlIHNwZWNpYWwN Cj4gKwkgICAgIGRpdmlzaW9uIGNhbGxiYWNrIGhvb2suICAqLw0KPiArCSAgaWYgKHRhcmdldG0u dmVjdG9yaXplLmNhbl9zcGVjaWFsX2Rpdl9ieV9jb25zdCAoY29kZSwgdHlwZSwgcmhzMSwNCj4g KwkJCQkJCQkgIHJoczIsIE5VTEwsDQo+ICsJCQkJCQkJICBOVUxMX1JUWCwNCj4gTlVMTF9SVFgp KQ0KPiArCSAgICByZXR1cm4gTlVMTF9UUkVFOw0KPiArDQo+ICsNCj4gIAkgIGlmICghb3B0aW1p emUNCj4gIAkgICAgICB8fCAhVkVDVE9SX0lOVEVHRVJfVFlQRV9QICh0eXBlKQ0KPiAgCSAgICAg IHx8IFRSRUVfQ09ERSAocmhzMikgIT0gVkVDVE9SX0NTVA0KPiBkaWZmIC0tZ2l0IGEvZ2NjL3Ry ZWUtdmVjdC1wYXR0ZXJucy5jYyBiL2djYy90cmVlLXZlY3QtcGF0dGVybnMuY2MNCj4gaW5kZXgN Cj4gMDk1NzRiYjFhMjY5NmIzNDM4YTRjZTlmMDlmNzRiNDJlNzg0YWNhMC4uNjA3YWNkZjk1ZWIz MDMzNWQ4YmMwZTg1DQo+IGFmMGIxYmZlYTEwZmU0NDMgMTAwNjQ0DQo+IC0tLSBhL2djYy90cmVl LXZlY3QtcGF0dGVybnMuY2MNCj4gKysrIGIvZ2NjL3RyZWUtdmVjdC1wYXR0ZXJucy5jYw0KPiBA QCAtMzU5Niw2ICszNTk2LDEyIEBAIHZlY3RfcmVjb2dfZGl2bW9kX3BhdHRlcm4gKHZlY19pbmZv ICp2aW5mbywNCj4gDQo+ICAgICAgICByZXR1cm4gcGF0dGVybl9zdG10Ow0KPiAgICAgIH0NCj4g KyAgZWxzZSBpZiAodGFyZ2V0bS52ZWN0b3JpemUuY2FuX3NwZWNpYWxfZGl2X2J5X2NvbnN0IChy aHNfY29kZSwgdmVjdHlwZSwNCj4gKwkJCQkJCSAgICAgICBvcHJuZDAsIG9wcm5kMSwgTlVMTCwN Cj4gKwkJCQkJCSAgICAgICBOVUxMX1JUWCwgTlVMTF9SVFgpKQ0KPiArICAgIHsNCj4gKyAgICAg IHJldHVybiBOVUxMOw0KPiArICAgIH0NCj4gDQo+ICAgIGlmIChwcmVjID4gSE9TVF9CSVRTX1BF Ul9XSURFX0lOVA0KPiAgICAgICAgfHwgaW50ZWdlcl96ZXJvcCAob3BybmQxKSkNCj4gZGlmZiAt LWdpdCBhL2djYy90cmVlLXZlY3Qtc3RtdHMuY2MgYi9nY2MvdHJlZS12ZWN0LXN0bXRzLmNjDQo+ IGluZGV4DQo+IGM5ZGFiMjE3ZjA1OWYxN2U5MWU5YTc1ODI1MjNlNjI3ZDdhNDViNjYuLjZkMDVj NDhhNzMzOWRlMDk0ZDcyODhiDQo+IGQ2OGUwZTFjMWU5M2ZhYWZlIDEwMDY0NA0KPiAtLS0gYS9n Y2MvdHJlZS12ZWN0LXN0bXRzLmNjDQo+ICsrKyBiL2djYy90cmVlLXZlY3Qtc3RtdHMuY2MNCj4g QEAgLTYyNjAsNiArNjI2MCwxMSBAQCB2ZWN0b3JpemFibGVfb3BlcmF0aW9uICh2ZWNfaW5mbyAq dmluZm8sDQo+ICAJfQ0KPiAgICAgICAgdGFyZ2V0X3N1cHBvcnRfcCA9IChvcHRhYl9oYW5kbGVy IChvcHRhYiwgdmVjX21vZGUpDQo+ICAJCQkgICE9IENPREVfRk9SX25vdGhpbmcpOw0KPiArICAg ICAgaWYgKCF0YXJnZXRfc3VwcG9ydF9wKQ0KPiArCXRhcmdldF9zdXBwb3J0X3ANCj4gKwkgID0g dGFyZ2V0bS52ZWN0b3JpemUuY2FuX3NwZWNpYWxfZGl2X2J5X2NvbnN0IChjb2RlLCB2ZWN0eXBl LA0KPiArCQkJCQkJCW9wMCwgb3AxLCBOVUxMLA0KPiArCQkJCQkJCU5VTExfUlRYLA0KPiBOVUxM X1JUWCk7DQo+ICAgICAgfQ0KPiANCj4gICAgYm9vbCB1c2luZ19lbXVsYXRlZF92ZWN0b3JzX3Ag PSB2ZWN0X2VtdWxhdGVkX3ZlY3Rvcl9wICh2ZWN0eXBlKTsNCj4gDQo+IA0KPiANCj4gDQo+IC0t DQo=