From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on2063.outbound.protection.outlook.com [40.107.22.63]) by sourceware.org (Postfix) with ESMTPS id 185273858C2C for ; Wed, 13 Apr 2022 15:52:52 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 185273858C2C Received: from AS9PR06CA0306.eurprd06.prod.outlook.com (2603:10a6:20b:45b::15) by VI1PR08MB2847.eurprd08.prod.outlook.com (2603:10a6:802:19::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.29; Wed, 13 Apr 2022 15:52:49 +0000 Received: from AM5EUR03FT020.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:45b:cafe::65) by AS9PR06CA0306.outlook.office365.com (2603:10a6:20b:45b::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.29 via Frontend Transport; Wed, 13 Apr 2022 15:52:49 +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 AM5EUR03FT020.mail.protection.outlook.com (10.152.16.116) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5164.19 via Frontend Transport; Wed, 13 Apr 2022 15:52:48 +0000 Received: ("Tessian outbound 78191104f1b7:v118"); Wed, 13 Apr 2022 15:52:48 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 80a0b38532b8dfeb X-CR-MTA-TID: 64aa7808 Received: from 353798b47c3f.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id C2444450-9042-4D3C-A685-00477BFEFF7F.1; Wed, 13 Apr 2022 15:52:40 +0000 Received: from EUR01-DB5-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 353798b47c3f.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Wed, 13 Apr 2022 15:52:40 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=CWx9CHtTn5z34Kq/e9iaqyxzdAWayj7K9UlUKf+BuXuEptSrcDy7HwQ0U9cuT260GQ1NHVo7Ft1R27r/3OYElImyIZ8C85Uw05t6UNR9n8nhRhoUk99wDVVLLoJo6sh3+9xt10LpCzRdf1XE0A88R3+W4m8aEw+BJn1JDcwoxs7dmBDdqDIYXhbI8ZSsfWfU+BQeJzFTyg/AsFlNvvnsM3EOFSUZ3XZojv78AuRg3SUFQQUBk68uSK/z+k7H4yGnXR4a6CqfkhmVu0nJyXtjtkos1t662H6sD399GBHFtEucyra0/eeFSyJ6m2OWjy9qCysh/FzDbbZ2ysSpxWNi+A== 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=GWD/wmnxS9x+NH+8P8MC5b8asAmiJW5d7FAbNFr4E44=; b=Wh0vHOMzsvs7E0yvz1t/G/EHQuMK0ukVklJHOifeXd9/qCuZc+saMdPcbotSrAUJ+wJGz9091s8xczbvKfaV+Al+NBVFPKzBlhJYuwRKqb0Z5HYUGpYUQd4aeCjYFFkmvo1/oBzC81Knc7GBZnUqnwKVNRhi1A/TXO1KkQcO2fu9BPb5JfqCV7BaZKPOfuLuYot3K5cqgN24g9KYtEJPcquTMJpwvMZP695+3jJzIZrC/OF4GNCFEFE1TbfqOBUMnuCJ74/R11zzspk+PHiF9TdhM5KKWLceelB3jFqPCxbHjEx5cXxA8YwMsxpcMrHr3r57mHLFZgg+lTSHvwVlxw== 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 DB9PR08MB6603.eurprd08.prod.outlook.com (2603:10a6:10:25a::5) by PAXPR08MB6430.eurprd08.prod.outlook.com (2603:10a6:102:156::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5144.29; Wed, 13 Apr 2022 15:52:38 +0000 Received: from DB9PR08MB6603.eurprd08.prod.outlook.com ([fe80::6510:c44d:bf07:a7a9]) by DB9PR08MB6603.eurprd08.prod.outlook.com ([fe80::6510:c44d:bf07:a7a9%7]) with mapi id 15.20.5164.018; Wed, 13 Apr 2022 15:52:38 +0000 From: Joel Hutton To: Richard Sandiford CC: Richard Biener , "gcc-patches@gcc.gnu.org" Subject: [vect-patterns] Refactor widen_plus/widen_minus as internal_fns Thread-Topic: [vect-patterns] Refactor widen_plus/widen_minus as internal_fns Thread-Index: AdfW+/kK1aUfQhQFSOK8TYu+tjX47gAttRMAAABdezAAxTe40AM3sUaHBUY4FsA= Date: Wed, 13 Apr 2022 15:52:38 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-GB, en-US Content-Language: en-US X-MS-Has-Attach: yes 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-Office365-Filtering-Correlation-Id: 4143d88e-2131-47fa-3101-08da1d65a8bb x-ms-traffictypediagnostic: PAXPR08MB6430:EE_|AM5EUR03FT020:EE_|VI1PR08MB2847:EE_ X-Microsoft-Antispam-PRVS: 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: dFxx8g9z2Sg/2HqfCYBcsMdtZ/KCHYGjLIxEK12q3wRa23ezRm3dxX9i3nBZpVh/4GJCi6rwx8XjDvpSx5inlJ2auavkuTpEF6LjpimQ1IphPDWvqkE3hvXYpAoQU5bTPrqla+IuycmEGnO636EMkh7cs12KcpDarHcnoPOCTdJuhlpvRp1Ae2SHkzqtR2/AecomNQe+ghzC8jMHp9wwUssA/jVEraEJdb8qbCkrP67xNhfjOTopdPS8IkE0zLwCA3jwThqzOsTD0MSU8Eo/yJUyctrrxPn7b5LFtFumn9pZBdZflzMk05edoJ1wJ7zauV3//AV5dgkN3LfAxh0h1qdB+OYqDd1EZ6sPoWBdMXNVLAiQvF2aaLzvySk6BzMIoHxML2C7YNlV8KVXnAYxEz315X9PiY8p4q9vklpQ4OB7/JyMvEYCSD+jMZPFml8qBjYMjkYJ7OEqN3qEA0pBep+OKNEXOe559mMx5ZFukYtvP97HKNTIaK+X4+sZEE9EBbKeWkHJJpHf/ABUp+0elMFrbnmWsSHo2GSMd0J7yDrPeuINvOOJ6y1fXIq8Dh4b9aAL/DZPf6ICs8HogNqqE+QFT4l0cZtC+PiImii/RLLml3J2XN74AbUNNdf4gEjOqXpAwRULWs5+pwlyAoXF4KOCEltqQWdhKaQ+/PhOmH9hAkkIYXD5noyQBii9ZclvRpiGhB3AWnRLeyuT4OBG9w== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB9PR08MB6603.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(38100700002)(54906003)(71200400001)(186003)(2906002)(5660300002)(316002)(6636002)(6862004)(66446008)(66556008)(76116006)(8676002)(66476007)(64756008)(33656002)(508600001)(26005)(8936002)(4326008)(55016003)(66946007)(122000001)(99936003)(7696005)(83380400001)(9686003)(6506007)(52536014)(86362001)(38070700005); DIR:OUT; SFP:1101; Content-Type: multipart/mixed; boundary="_004_DB9PR08MB660300446C4580E5B601CAD4F5EC9DB9PR08MB6603eurp_" MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB6430 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: AM5EUR03FT020.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 4f24e9a1-2b81-4ee8-df0a-08da1d65a2b2 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: J7ewuaD1pikF+6nd84yfOhz4Rdo2axyM7pe/WfeyoJRua87HYsJw1ZSGX/S1mNq1lEeyY1BfQgdKt2uqW7Kp5MsKWHkuCUI7OUyUigK9U3O235xyFngq4qaQTSFA2/ZlVN7JAVQSO2Y3yXN+uVvplCyT5i9COwP+oUvVfyRe7Y1oi15s/aMgur5X9n+fmaV56j3iwOAP3nWXgtuWUmWLgqRW6IfhZW5ThyOPq5R51qot8IGloKfiAWFopqJUyg9JPnnPFtU0VisScBLASZqOCNgOiPdb5pjpjKBTw13KUaX4F/tBlW9Ps8CFMriMxArw6f7KPcaxFy9tB4VPC8Ox/JmaeEGcvHm4N10wjvhW4k3GEi9kLQn7gLNGS4F3lY4mB4GIDYty87xj9DWp0rQ+yxyq4xn6iYRMgMiUZlgdiZeEIbZ/qpV0QEctiC7nu8bGr33Bh1C8we1x0Tddd1SlPfRTW+/atepYyUQAweh7yKw1qRrRtZQC0yV4X/CeuWHUScEf1of4Fj9Ztb0ZabUT+vMVew7pvfFK9r13KRWhy2cHd5LlzT5xUnWk3LHqHhk+P6Aw6ElJOm+Yt/spwqq+JrXisuwH1DhUd5ylI7++7dOUq0gFgkj/FWhfIyNb1p0VcrbMSTjfA5qOFjdLDGUw+jr5sP2L3u1yCJKE8beaIWMKhaHk7A0ttkfHGo6gXO5f 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:(13230001)(4636009)(36840700001)(40470700004)(46966006)(36860700001)(26005)(186003)(70206006)(9686003)(6862004)(8676002)(82310400005)(81166007)(54906003)(99936003)(6636002)(356005)(40460700003)(498600001)(55016003)(70586007)(4326008)(336012)(47076005)(2906002)(7696005)(33964004)(5660300002)(52536014)(235185007)(33656002)(86362001)(6506007)(8936002)(83380400001); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Apr 2022 15:52:48.5151 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 4143d88e-2131-47fa-3101-08da1d65a8bb 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: AM5EUR03FT020.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR08MB2847 X-Spam-Status: No, score=-12.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE, 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: Wed, 13 Apr 2022 15:52:55 -0000 --_004_DB9PR08MB660300446C4580E5B601CAD4F5EC9DB9PR08MB6603eurp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgYWxsLA0KDQpUaGVzZSBwYXRjaGVzIHJlZmFjdG9yIHRoZSB3aWRlbmluZyBwYXR0ZXJucyBp biB2ZWN0LXBhdHRlcm5zIHRvIHVzZSBpbnRlcm5hbF9mbiBpbnN0ZWFkIG9mIHRyZWVfY29kZXMu DQoNClNvcnJ5IGFib3V0IHRoZSBkZWxheSwgc29tZSBjaGFuZ2VzIHRvIG1hc3RlciBtYWRlIGl0 IGEgYml0IG1lc3NpZXIuDQoNCkJvb3RzdHJhcHBlZCBhbmQgcmVncmVzc2lvbiB0ZXN0ZWQgb24g YWFyY2g2NC4NCg0KSm9lbA0KDQo+ID4gZGlmZiAtLWdpdCBhL2djYy90cmVlLXZlY3QtcGF0dGVy bnMuYyBiL2djYy90cmVlLXZlY3QtcGF0dGVybnMuYyBpbmRleA0KPiA+IDg1NGNiY2ZmMzkwLi40 YThlYTY3ZTYyZiAxMDA2NDQNCj4gPiAtLS0gYS9nY2MvdHJlZS12ZWN0LXBhdHRlcm5zLmMNCj4g PiArKysgYi9nY2MvdHJlZS12ZWN0LXBhdHRlcm5zLmMNCj4gPiBAQCAtMTI0NSw3ICsxMjQ1LDcg QEAgdmVjdF9yZWNvZ19zYWRfcGF0dGVybiAodmVjX2luZm8gKnZpbmZvLCAgc3RhdGljDQo+ID4g Z2ltcGxlICogIHZlY3RfcmVjb2dfd2lkZW5fb3BfcGF0dGVybiAodmVjX2luZm8gKnZpbmZvLA0K PiA+ICAJCQkgICAgIHN0bXRfdmVjX2luZm8gbGFzdF9zdG10X2luZm8sIHRyZWUgKnR5cGVfb3V0 LA0KPiA+IC0JCQkgICAgIHRyZWVfY29kZSBvcmlnX2NvZGUsIHRyZWVfY29kZSB3aWRlX2NvZGUs DQo+ID4gKwkJCSAgICAgdHJlZV9jb2RlIG9yaWdfY29kZSwgY29kZV9oZWxwZXINCj4gd2lkZV9j b2RlX29yX2lmbiwNCj4gDQo+IEkgdGhpbmsgaXQnZCBiZSBiZXR0ZXIgdG8ga2VlcCB0aGUgb3Jp Z2luYWwg4oCcd2lkZV9jb2Rl4oCdIG5hbWUgYW5kIHRyeSB0bw0KPiByZW1vdmUgYXMgbWFueSBw bGFjZXMgYXMgcG9zc2libGUgaW4gd2hpY2ggc3dpdGNoaW5nIGJhc2VkIG9uIHRyZWVfY29kZQ0K PiBvciBpbnRlcm5hbF9mbiBpcyBuZWNlc3NhcnkuICBUaGUgcmVjZW50IGdpbXBsZS1tYXRjaC5o IHBhdGNoZXMgc2hvdWxkDQo+IGhlbHAgd2l0aCB0aGF0LCBidXQgbW9yZSByb3V0aW5lcyBtaWdo dCBiZSBuZWVkZWQuDQoNCkRvbmUuDQoNCj4gPiBAQCAtMTMwOSw4ICsxMzEwLDE2IEBAIHZlY3Rf cmVjb2dfd2lkZW5fb3BfcGF0dGVybiAodmVjX2luZm8gKnZpbmZvLA0KPiA+ICAJCSAgICAgICAy LCBvcHJuZCwgaGFsZl90eXBlLCB1bnByb20sIHZlY3R5cGUpOw0KPiA+DQo+ID4gICAgdHJlZSB2 YXIgPSB2ZWN0X3JlY29nX3RlbXBfc3NhX3ZhciAoaXR5cGUsIE5VTEwpOw0KPiA+IC0gIGdpbXBs ZSAqcGF0dGVybl9zdG10ID0gZ2ltcGxlX2J1aWxkX2Fzc2lnbiAodmFyLCB3aWRlX2NvZGUsDQo+ ID4gLQkJCQkJICAgICAgb3BybmRbMF0sIG9wcm5kWzFdKTsNCj4gPiArICBnaW1wbGUgKnBhdHRl cm5fc3RtdDsNCj4gPiArICBpZiAod2lkZV9jb2RlX29yX2lmbi5pc190cmVlX2NvZGUgKCkpDQo+ ID4gKyAgICBwYXR0ZXJuX3N0bXQgPSBnaW1wbGVfYnVpbGRfYXNzaWduICh2YXIsIHdpZGVfY29k ZV9vcl9pZm4sDQo+ID4gKwkJCQkJCW9wcm5kWzBdLCBvcHJuZFsxXSk7DQo+ID4gKyAgZWxzZQ0K PiA+ICsgICAgew0KPiA+ICsgICAgICBpbnRlcm5hbF9mbiBmbiA9IGFzX2ludGVybmFsX2ZuICgo Y29tYmluZWRfZm4pIHdpZGVfY29kZV9vcl9pZm4pOw0KPiA+ICsgICAgICBwYXR0ZXJuX3N0bXQg PSBnaW1wbGVfYnVpbGRfY2FsbF9pbnRlcm5hbCAoZm4sIDIsIG9wcm5kWzBdLCBvcHJuZFsxXSk7 DQo+ID4gKyAgICAgIGdpbXBsZV9jYWxsX3NldF9saHMgKHBhdHRlcm5fc3RtdCwgdmFyKTsNCj4g PiArICAgIH0NCj4gDQo+IEZvciBleGFtcGxlLCBJIHRoaW5rIHdlIHNob3VsZCBoaWRlIHRoaXMg aW5zaWRlIGEgbmV3Og0KPiANCj4gICBnaW1wbGVfYnVpbGQgKHZhciwgd2lkZV9jb2RlLCBvcHJu ZFswXSwgb3BybmRbMV0pOw0KPiANCj4gdGhhdCB3b3JrcyBkaXJlY3RseSBvbiBjb2RlX2hlbHBl ciwgc2ltaWxhcmx5IHRvIHRoZSBuZXcgY29kZV9oZWxwZXINCj4gZ2ltcGxlX2J1aWxkIGludGVy ZmFjZXMuDQoNCkRvbmUuDQoNCj4gPiBAQCAtNDUxMywxNCArNDUxMywxNiBAQCB2ZWN0X2dlbl93 aWRlbmVkX3Jlc3VsdHNfaGFsZiAodmVjX2luZm8NCj4gKnZpbmZvLCBlbnVtIHRyZWVfY29kZSBj b2RlLA0KPiA+ICAgIHRyZWUgbmV3X3RlbXA7DQo+ID4NCj4gPiAgICAvKiBHZW5lcmF0ZSBoYWxm IG9mIHRoZSB3aWRlbmVkIHJlc3VsdDogICovDQo+ID4gLSAgZ2NjX2Fzc2VydCAob3BfdHlwZSA9 PSBUUkVFX0NPREVfTEVOR1RIIChjb2RlKSk7DQo+ID4gICAgaWYgKG9wX3R5cGUgIT0gYmluYXJ5 X29wKQ0KPiA+ICAgICAgdmVjX29wcm5kMSA9IE5VTEw7DQo+ID4gLSAgbmV3X3N0bXQgPSBnaW1w bGVfYnVpbGRfYXNzaWduICh2ZWNfZGVzdCwgY29kZSwgdmVjX29wcm5kMCwNCj4gdmVjX29wcm5k MSk7DQo+ID4gKyAgaWYgKGNoLmlzX3RyZWVfY29kZSAoKSkNCj4gPiArICAgIG5ld19zdG10ID0g Z2ltcGxlX2J1aWxkX2Fzc2lnbiAodmVjX2Rlc3QsIGNoLCB2ZWNfb3BybmQwLA0KPiB2ZWNfb3By bmQxKTsNCj4gPiArICBlbHNlDQo+ID4gKyAgICBuZXdfc3RtdCA9IGdpbXBsZV9idWlsZF9jYWxs X2ludGVybmFsIChhc19pbnRlcm5hbF9mbiAoKGNvbWJpbmVkX2ZuKQ0KPiBjaCksDQo+ID4gKwkJ CQkJICAgMiwgdmVjX29wcm5kMCwgdmVjX29wcm5kMSk7DQo+IA0KPiBTaW1pbGFybHkgaGVyZS4g IEkgZ3Vlc3MgdGhlIGNvbWJpbmVkX2ZuL2ludGVybmFsX2ZuIHBhdGggd2lsbCBhbHNvIG5lZWQN Cj4gdG8gY29wZSB3aXRoIG51bGwgdHJhaWxpbmcgb3BlcmFuZHMsIGZvciBjb25zaXN0ZW5jeSB3 aXRoIHRoZSB0cmVlX2NvZGUgb25lLg0KPiANCg0KRG9uZS4NCg0KPiA+IEBAIC00NzQ0LDMxICs0 NzQ3LDI4IEBAIHZlY3Rvcml6YWJsZV9jb252ZXJzaW9uICh2ZWNfaW5mbyAqdmluZm8sDQo+ID4g ICAgICAgICYmICEgdmVjX3N0bXQpDQo+ID4gICAgICByZXR1cm4gZmFsc2U7DQo+ID4NCj4gPiAt ICBnYXNzaWduICpzdG10ID0gZHluX2Nhc3QgPGdhc3NpZ24gKj4gKHN0bXRfaW5mby0+c3RtdCk7 DQo+ID4gLSAgaWYgKCFzdG10KQ0KPiA+ICsgIGdpbXBsZSogc3RtdCA9IHN0bXRfaW5mby0+c3Rt dDsNCj4gPiArICBpZiAoIShpc19naW1wbGVfYXNzaWduIChzdG10KSB8fCBpc19naW1wbGVfY2Fs bCAoc3RtdCkpKQ0KPiA+ICAgICAgcmV0dXJuIGZhbHNlOw0KPiA+DQo+ID4gLSAgaWYgKFRSRUVf Q09ERSAoZ2ltcGxlX2Fzc2lnbl9saHMgKHN0bXQpKSAhPSBTU0FfTkFNRSkNCj4gPiAtICAgIHJl dHVybiBmYWxzZTsNCj4gPiArICBpZiAoaXNfZ2ltcGxlX2Fzc2lnbiAoc3RtdCkpDQo+ID4gKyAg ew0KPiA+ICsgICAgY29kZV9vcl9pZm4gPSBnaW1wbGVfYXNzaWduX3Joc19jb2RlIChzdG10KTsN Cj4gPiArICB9DQo+ID4gKyAgZWxzZQ0KPiA+ICsgICAgY29kZV9vcl9pZm4gPSBnaW1wbGVfY2Fs bF9jb21iaW5lZF9mbiAoc3RtdCk7DQo+IA0KPiBJdCBtaWdodCBiZSBwb3NzaWJsZSB0byB1c2Ug Z2ltcGxlX2V4dHJhY3Rfb3AgaGVyZSAob25seSByZWNlbnRseSBhZGRlZCkuDQo+IFRoaXMgd291 bGQgYWxzbyBwcm92aWRlIHRoZSBudW1iZXIgb2Ygb3BlcmFuZHMgZGlyZWN0bHksIGluc3RlYWQg b2YNCj4gbmVlZGluZyDigJxvcF90eXBl4oCdLiAgSXQgd291bGQgYWxzbyBwcm92aWRlIGFuIGFy cmF5IG9mIG9wZXJhbmRzLg0KPiANCg0KRG9uZS4NCg0KPiA+IC0gIGNvZGUgPSBnaW1wbGVfYXNz aWduX3Joc19jb2RlIChzdG10KTsNCj4gPiAtICBpZiAoIUNPTlZFUlRfRVhQUl9DT0RFX1AgKGNv ZGUpDQo+ID4gLSAgICAgICYmIGNvZGUgIT0gRklYX1RSVU5DX0VYUFINCj4gPiAtICAgICAgJiYg Y29kZSAhPSBGTE9BVF9FWFBSDQo+ID4gLSAgICAgICYmIGNvZGUgIT0gV0lERU5fUExVU19FWFBS DQo+ID4gLSAgICAgICYmIGNvZGUgIT0gV0lERU5fTUlOVVNfRVhQUg0KPiA+IC0gICAgICAmJiBj b2RlICE9IFdJREVOX01VTFRfRVhQUg0KPiA+IC0gICAgICAmJiBjb2RlICE9IFdJREVOX0xTSElG VF9FWFBSKQ0KPiANCj4gSXMgaXQgc2FmZSB0byBkcm9wIHRoaXMgY2hlY2sgaW5kZXBlbmRlbnRs eSBvZiBwYXJ0cyAyIGFuZCAzPyAgKEdlbnVpbmUNCj4gcXVlc3Rpb24sIGhhdmVuJ3QgY2hlY2tl ZCBpbiBkZXRhaWwuKQ0KDQpJdCByZXF1aXJlcyB0aGUgcGFydHMgMiBhbmQgMy4gSSd2ZSBtb3Zl ZCB0aGF0IGNoYW5nZSBpbnRvIHRoaXMgZmlyc3QgcGF0Y2guDQoNCj4gPiBAQCAtNDc4NCw3ICs0 Nzg0LDggQEAgdmVjdG9yaXphYmxlX2NvbnZlcnNpb24gKHZlY19pbmZvICp2aW5mbywNCj4gPiAg ICAgIH0NCj4gPg0KPiA+ICAgIHJoc190eXBlID0gVFJFRV9UWVBFIChvcDApOw0KPiA+IC0gIGlm ICgoY29kZSAhPSBGSVhfVFJVTkNfRVhQUiAmJiBjb2RlICE9IEZMT0FUX0VYUFIpDQo+ID4gKyAg aWYgKChjb2RlX29yX2lmbi5pc190cmVlX2NvZGUgKCkgJiYgY29kZV9vcl9pZm4gIT0gRklYX1RS VU5DX0VYUFINCj4gPiArICAgICAgICYmIGNvZGVfb3JfaWZuICE9IEZMT0FUX0VYUFIpDQo+IA0K PiBJIGRvbid0IHRoaW5rIHdlIHdhbnQgdGhlIGlzX3RyZWVfY29kZSBjb25kaXRpb24gaGVyZS4g IFRoZSBleGlzdGluZw0KPiAhPSBzaG91bGQgd29yay4NCj4gDQoNCkRvbmUuDQoNCj4gPiBAQCAt MTE4NTYsMTMgKzExODg4LDEzIEBAIHN1cHBvcnRhYmxlX3dpZGVuaW5nX29wZXJhdGlvbiAodmVj X2luZm8NCj4gKnZpbmZvLA0KPiA+ICAgIGlmIChCWVRFU19CSUdfRU5ESUFOICYmIGMxICE9IFZF Q19XSURFTl9NVUxUX0VWRU5fRVhQUikNCj4gPiAgICAgIHN0ZDo6c3dhcCAoYzEsIGMyKTsNCj4g Pg0KPiA+IC0gIGlmIChjb2RlID09IEZJWF9UUlVOQ19FWFBSKQ0KPiA+ICsgIGlmIChjb2RlX29y X2lmbiA9PSBGSVhfVFJVTkNfRVhQUikNCj4gPiAgICAgIHsNCj4gPiAgICAgICAgLyogVGhlIHNp Z25lZG5lc3MgaXMgZGV0ZXJtaW5lZCBmcm9tIG91dHB1dCBvcGVyYW5kLiAgKi8NCj4gPiAgICAg ICAgb3B0YWIxID0gb3B0YWJfZm9yX3RyZWVfY29kZSAoYzEsIHZlY3R5cGVfb3V0LCBvcHRhYl9k ZWZhdWx0KTsNCj4gPiAgICAgICAgb3B0YWIyID0gb3B0YWJfZm9yX3RyZWVfY29kZSAoYzIsIHZl Y3R5cGVfb3V0LCBvcHRhYl9kZWZhdWx0KTsNCj4gPiAgICAgIH0NCj4gPiAtICBlbHNlIGlmIChD T05WRVJUX0VYUFJfQ09ERV9QIChjb2RlKQ0KPiA+ICsgIGVsc2UgaWYgKENPTlZFUlRfRVhQUl9D T0RFX1AgKCh0cmVlX2NvZGUpIGNvZGVfb3JfaWZuKQ0KPiANCj4gSSB0aGluayB0aGlzIHNob3Vs ZCBiZSBhc190cmVlX2NvZGUgKCksIHNvIHRoYXQgaXQncyBzYWZlIGZvciBpbnRlcm5hbA0KPiBm dW5jdGlvbnMgaWYgKHRyZWVfY29kZSkgZXZlciBiZWNvbWVzIGEgY2hlY2tlZCBjb252cnNpb24g aW4gZnV0dXJlLg0KPiBTYW1lIGZvciBvdGhlciBpbnN0YW5jZXMuDQo+IA0KDQpEb25lLg0KDQo+ ID4gIAkgICAmJiBWRUNUT1JfQk9PTEVBTl9UWVBFX1AgKHdpZGVfdmVjdHlwZSkNCj4gPiAgCSAg ICYmIFZFQ1RPUl9CT09MRUFOX1RZUEVfUCAodmVjdHlwZSkNCj4gPiAgCSAgICYmIFRZUEVfTU9E RSAod2lkZV92ZWN0eXBlKSA9PSBUWVBFX01PREUgKHZlY3R5cGUpDQo+ID4gW+KApl0NCj4gPiBA QCAtMTIwMDAsNyArMTIwMzEsNyBAQCBzdXBwb3J0YWJsZV93aWRlbmluZ19vcGVyYXRpb24gKHZl Y19pbmZvDQo+ICp2aW5mbywNCj4gPiAgYm9vbA0KPiA+ICBzdXBwb3J0YWJsZV9uYXJyb3dpbmdf b3BlcmF0aW9uIChlbnVtIHRyZWVfY29kZSBjb2RlLA0KPiA+ICAJCQkJIHRyZWUgdmVjdHlwZV9v dXQsIHRyZWUgdmVjdHlwZV9pbiwNCj4gPiAtCQkJCSBlbnVtIHRyZWVfY29kZSAqY29kZTEsIGlu dCAqbXVsdGlfc3RlcF9jdnQsDQo+ID4gKwkJCQkgdm9pZCogX2NvZGUxLCBpbnQgKm11bHRpX3N0 ZXBfY3Z0LA0KPiANCj4gVGhpcyBtaWdodCBiZSByZWhhc2hpbmcgYW4gb2xkIGNvbnZlcnNhdGlv biwgc29ycnksIGJ1dCB3aHkgZG9lcyB0aGlzDQo+IG5lZWQgdG8gYmUgdm9pZD8NCj4gDQoNClJl d29ya2VkIHRvIGF2b2lkIHVzaW5nIHZvaWQqLg0KDQo+ID4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHZlYzx0cmVlPiAqaW50ZXJtX3R5cGVzKQ0KPiA+ICB7DQo+ID4gICAgbWFj aGluZV9tb2RlIHZlY19tb2RlOw0KPiA+IEBAIC0xMjAxMyw2ICsxMjA0NCw3IEBAIHN1cHBvcnRh YmxlX25hcnJvd2luZ19vcGVyYXRpb24gKGVudW0NCj4gdHJlZV9jb2RlIGNvZGUsDQo+ID4gICAg bWFjaGluZV9tb2RlIGludGVybWVkaWF0ZV9tb2RlLCBwcmV2X21vZGU7DQo+ID4gICAgaW50IGk7 DQo+ID4gICAgYm9vbCB1bnM7DQo+ID4gKyAgdHJlZV9jb2RlICogY29kZTEgPSAodHJlZV9jb2Rl KikgX2NvZGUxOw0KPiA+DQo+ID4gICAgKm11bHRpX3N0ZXBfY3Z0ID0gMDsNCj4gPiAgICBzd2l0 Y2ggKGNvZGUpDQo+ID4gZGlmZiAtLWdpdCBhL2djYy90cmVlLXZlY3Rvcml6ZXIuaCBiL2djYy90 cmVlLXZlY3Rvcml6ZXIuaA0KPiA+IGluZGV4IGJkNmYzMzRkMTVmLi43MGMwNjI2NGMxMSAxMDA2 NDQNCj4gPiAtLS0gYS9nY2MvdHJlZS12ZWN0b3JpemVyLmgNCj4gPiArKysgYi9nY2MvdHJlZS12 ZWN0b3JpemVyLmgNCj4gPiBAQCAtMjAzMCwxMyArMjAzMCwxNiBAQCBleHRlcm4gYm9vbCB2ZWN0 X2lzX3NpbXBsZV91c2UgKHZlY19pbmZvICosDQo+IHN0bXRfdmVjX2luZm8sIHNscF90cmVlLA0K PiA+ICAJCQkJZW51bSB2ZWN0X2RlZl90eXBlICosDQo+ID4gIAkJCQl0cmVlICosIHN0bXRfdmVj X2luZm8gKiA9IE5VTEwpOw0KPiA+ICBleHRlcm4gYm9vbCB2ZWN0X21heWJlX3VwZGF0ZV9zbHBf b3BfdmVjdHlwZSAoc2xwX3RyZWUsIHRyZWUpOw0KPiA+IC1leHRlcm4gYm9vbCBzdXBwb3J0YWJs ZV93aWRlbmluZ19vcGVyYXRpb24gKHZlY19pbmZvICosDQo+ID4gLQkJCQkJICAgIGVudW0gdHJl ZV9jb2RlLCBzdG10X3ZlY19pbmZvLA0KPiA+IC0JCQkJCSAgICB0cmVlLCB0cmVlLCBlbnVtIHRy ZWVfY29kZSAqLA0KPiA+IC0JCQkJCSAgICBlbnVtIHRyZWVfY29kZSAqLCBpbnQgKiwNCj4gPiAt CQkJCQkgICAgdmVjPHRyZWU+ICopOw0KPiA+ICtleHRlcm4gYm9vbCBzdXBwb3J0YWJsZV93aWRl bmluZ19vcGVyYXRpb24gKHZlY19pbmZvICp2aW5mbywNCj4gPiArCQkJCWNvZGVfaGVscGVyIGNv ZGVfb3JfaWZuLA0KPiA+ICsJCQkJc3RtdF92ZWNfaW5mbyBzdG10X2luZm8sDQo+ID4gKwkJCQl0 cmVlIHZlY3R5cGVfb3V0LCB0cmVlIHZlY3R5cGVfaW4sDQo+ID4gKwkJCQljb2RlX2hlbHBlciAq Y29kZV9vcl9pZm4xLA0KPiA+ICsJCQkJY29kZV9oZWxwZXIgKmNvZGVfb3JfaWZuMiwNCj4gPiAr CQkJCWludCAqbXVsdGlfc3RlcF9jdnQsDQo+ID4gKwkJCQl2ZWM8dHJlZT4gKmludGVybV90eXBl cyk7DQo+IA0KPiBOb3JtYWwgc3R5bGUgaXMgdG8ga2VlcCB0aGUgdmFyaWFibGUgbmFtZXMgb3V0 IG9mIHRoZSBoZWFkZXIuDQo+IFRoZSBkb2N1bWVudGF0aW9uIGxpdmVzIGluIHRoZSAuYyBmaWxl LCBzbyBpbiBwcmFjdGljZSwgYW55b25lDQo+IHdobyB3YW50cyB0byBhZGQgYSBuZXcgY2FsbGVy IHdpbGwgbmVlZCB0byBsb29rIHRoZXJlIGFueXdheS4NCj4gDQo+IFRoYW5rcywNCj4gUmljaGFy ZA0KPiANCj4gPiAgZXh0ZXJuIGJvb2wgc3VwcG9ydGFibGVfbmFycm93aW5nX29wZXJhdGlvbiAo ZW51bSB0cmVlX2NvZGUsIHRyZWUsDQo+IHRyZWUsDQo+ID4gLQkJCQkJICAgICBlbnVtIHRyZWVf Y29kZSAqLCBpbnQgKiwNCj4gPiArCQkJCQkgICAgIHZvaWQgKiwgaW50ICosDQo+ID4gIAkJCQkJ ICAgICB2ZWM8dHJlZT4gKik7DQo+ID4NCj4gPiAgZXh0ZXJuIHVuc2lnbmVkIHJlY29yZF9zdG10 X2Nvc3QgKHN0bXRfdmVjdG9yX2Zvcl9jb3N0ICosIGludCwNCj4gPiBkaWZmIC0tZ2l0IGEvZ2Nj L3RyZWUuaCBiL2djYy90cmVlLmgNCj4gPiBpbmRleCBmNjJjMDBiYzg3MC4uMzQ2NTY1Zjg0Y2Ug MTAwNjQ0DQo+ID4gLS0tIGEvZ2NjL3RyZWUuaA0KPiA+ICsrKyBiL2djYy90cmVlLmgNCj4gPiBA QCAtNjU0Niw1ICs2NTQ2LDMxIEBAIGV4dGVybiB1bnNpZ25lZCBmbmRlY2xfZGVhbGxvY19hcmdu byAodHJlZSk7DQo+ID4gICAgIGlmIG5vbm51bGwsIHNldCB0aGUgc2Vjb25kIGFyZ3VtZW50IHRv IHRoZSByZWZlcmVuY2VkIGVuY2xvc2luZw0KPiA+ICAgICBvYmplY3Qgb3IgcG9pbnRlci4gIE90 aGVyd2lzZSByZXR1cm4gbnVsbC4gICovDQo+ID4gIGV4dGVybiB0cmVlIGdldF9hdHRyX25vbnN0 cmluZ19kZWNsICh0cmVlLCB0cmVlICogPSBOVUxMKTsNCj4gPiArLyogSGVscGVyIHRvIHRyYW5z cGFyZW50bHkgYWxsb3cgdHJlZSBjb2RlcyBhbmQgYnVpbHRpbiBmdW5jdGlvbiBjb2Rlcw0KPiA+ ICsgICBleGlzdCBpbiBvbmUgc3RvcmFnZSBlbnRpdHkuICAqLw0KPiA+ICtjbGFzcyBjb2RlX2hl bHBlcg0KPiA+ICt7DQo+ID4gK3B1YmxpYzoNCj4gPiArICBjb2RlX2hlbHBlciAoKSB7fQ0KPiA+ ICsgIGNvZGVfaGVscGVyICh0cmVlX2NvZGUgY29kZSkgOiByZXAgKChpbnQpIGNvZGUpIHt9DQo+ ID4gKyAgY29kZV9oZWxwZXIgKGNvbWJpbmVkX2ZuIGZuKSA6IHJlcCAoLShpbnQpIGZuKSB7fQ0K PiA+ICsgIG9wZXJhdG9yIHRyZWVfY29kZSAoKSBjb25zdCB7IHJldHVybiBpc190cmVlX2NvZGUg KCkgPw0KPiA+ICsJCQkJCQkgICAgICAgKHRyZWVfY29kZSkgcmVwIDoNCj4gPiArCQkJCQkJICAg ICAgIEVSUk9SX01BUks7IH0NCj4gPiArICBvcGVyYXRvciBjb21iaW5lZF9mbiAoKSBjb25zdCB7 IHJldHVybiBpc19mbl9jb2RlICgpID8NCj4gPiArCQkJCQkJICAgICAgIChjb21iaW5lZF9mbikg LXJlcDoNCj4gPiArCQkJCQkJICAgICAgIENGTl9MQVNUOyB9DQo+ID4gKyAgYm9vbCBpc190cmVl X2NvZGUgKCkgY29uc3QgeyByZXR1cm4gcmVwID4gMDsgfQ0KPiA+ICsgIGJvb2wgaXNfZm5fY29k ZSAoKSBjb25zdCB7IHJldHVybiByZXAgPCAwOyB9DQo+ID4gKyAgaW50IGdldF9yZXAgKCkgY29u c3QgeyByZXR1cm4gcmVwOyB9DQo+ID4gKw0KPiA+ICsgIGVudW0gdHJlZV9jb2RlIGFzX3RyZWVf Y29kZSAoKSBjb25zdCB7IHJldHVybiBpc190cmVlX2NvZGUgKCkgPw0KPiA+ICsgICAgKHRyZWVf Y29kZSkqIHRoaXMgOiBNQVhfVFJFRV9DT0RFUzsgfQ0KPiA+ICsgIGNvbWJpbmVkX2ZuIGFzX2Zu X2NvZGUgKCkgY29uc3QgeyByZXR1cm4gaXNfZm5fY29kZSAoKSA/IChjb21iaW5lZF9mbikNCj4g KnRoaXMNCj4gPiArICAgIDogQ0ZOX0xBU1Q7fQ0KPiA+ICsNCj4gPiArcHJpdmF0ZToNCj4gPiAr ICBpbnQgcmVwOw0KPiA+ICt9Ow0KPiA+DQo+ID4gICNlbmRpZiAgLyogR0NDX1RSRUVfSCAgKi8N Cg== --_004_DB9PR08MB660300446C4580E5B601CAD4F5EC9DB9PR08MB6603eurp_ Content-Type: application/octet-stream; name="0001-Refactor-to-allow-internal_fn-s.patch" Content-Description: 0001-Refactor-to-allow-internal_fn-s.patch Content-Disposition: attachment; filename="0001-Refactor-to-allow-internal_fn-s.patch"; size=28968; creation-date="Wed, 13 Apr 2022 15:49:37 GMT"; modification-date="Wed, 13 Apr 2022 15:52:38 GMT" Content-Transfer-Encoding: base64 RnJvbSBkODg1NjdjM2E3Y2ZmYzMzNGNmYWU4ZWFhMThjYWIxMGI0MDM4ZjliIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2VsIEh1dHRvbiA8am9lbC5odXR0b25AYXJtLmNvbT4KRGF0 ZTogV2VkLCAyNSBBdWcgMjAyMSAxNDozMToxNSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggMS8zXSBS ZWZhY3RvciB0byBhbGxvdyBpbnRlcm5hbF9mbidzCgpIaSBhbGwsCgpUaGlzIHJlZmFjdG9yIGFs bG93cyB3aWRlbmluZyBwYXR0ZXJucyAoc3VjaCBhcyB3aWRlbl9wbHVzL3dpZGVuX21pbnVzKSB0 byBiZSByZXByZXNlbnRlZCBhcwplaXRoZXIgaW50ZXJuYWxfZm5zIG9yIHRyZWVfY29kZXMuCgpb dmVjdC1wYXR0ZXJuc10gUmVmYWN0b3IgYXMgaW50ZXJuYWxfZm4ncwoKUmVmYWN0b3IgdmVjdC1w YXR0ZXJucyB0byBhbGxvdyBwYXR0ZXJucyB0byBiZSBpbnRlcm5hbF9mbnMgc3RhcnRpbmcKd2l0 aCB3aWRlbmluZ19wbHVzL21pbnVzIHBhdHRlcm5zCgpnY2MvQ2hhbmdlTG9nOgoKCSogZ2ltcGxl LW1hdGNoLmggKGNsYXNzIGNvZGVfaGVscGVyKTogTW92ZSBjb2RlX2hlbHBlciBjbGFzcyB0byBt b3JlCiAgICB2aXNpYmxlIGhlYWRlci4KCShpbnRlcm5hbF9mbik6IE1vdmUgdG8gbW9yZSB2aXNp YmxlIGhlYWRlci4KCShidWlsdF9pbl9mdW5jdGlvbik6IE1vdmUgdG8gbW9yZSB2aXNpYmxlIGhl YWRlci4KCShjb2RlX2hlbHBlcjo6aXNfaW50ZXJuYWxfZm4pOiBNb3ZlIHRvIG1vcmUgdmlzaWJs ZSBoZWFkZXIuCgkoY29kZV9oZWxwZXI6OmlzX2J1aWx0aW5fZm4pOiBNb3ZlIHRvIG1vcmUgdmlz aWJsZSBoZWFkZXIuCgkqIGdpbXBsZS5jYyAoZ2ltcGxlX2J1aWxkKTogRnVuY3Rpb24gdG8gYnVp bGQgYSBHSU1QTEVfQ0FMTCBvcgogICAgR0lNUExFX0FTU0lHTiBhcyBhcHByb3ByaWF0ZSwgZ2l2 ZW4gYSBjb2RlX2hlbHBlci4KCSogZ2ltcGxlLmggKGdpbXBsZV9idWlsZCk6IEZ1bmN0aW9uIHBy b3RvdHlwZS4KCSogdHJlZS1jb3JlLmggKEVDRl9XSURFTik6IEZsYWcgdG8gbWFyayBpbnRlcm5h bF9mbiBhcyB3aWRlbmluZy4KCSogdHJlZS12ZWN0LXBhdHRlcm5zLmNjICh2ZWN0X3JlY29nX3dp ZGVuX29wX3BhdHRlcm4pOiBSZWZhY3RvciB0bwogICAgdXNlIGNvZGVfaGVscGVyLgoJKiB0cmVl LXZlY3Qtc3RtdHMuY2MgKHZlY3RfZ2VuX3dpZGVuZWRfcmVzdWx0c19oYWxmKTogUmVmYWN0b3Ig dG8KICAgIHVzZSBjb2RlX2hlbHBlci4KCSh2ZWN0X2NyZWF0ZV92ZWN0b3JpemVkX3Byb21vdGlv bl9zdG10cyk6IFJlZmFjdG9yIHRvIHVzZQogICAgY29kZV9oZWxwZXIuCgkodmVjdG9yaXphYmxl X2NvbnZlcnNpb24pOiBSZWZhY3RvciB0byB1c2UgY29kZV9oZWxwZXIuCiAgICBnaW1wbGVfY2Fs bCBvciBnaW1wbGVfYXNzaWduLgoJKHN1cHBvcnRhYmxlX3dpZGVuaW5nX29wZXJhdGlvbik6IFJl ZmFjdG9yIHRvIHVzZSBjb2RlX2hlbHBlci4KCShzdXBwb3J0YWJsZV9uYXJyb3dpbmdfb3BlcmF0 aW9uKTogUmVmYWN0b3IgdG8gdXNlIGNvZGVfaGVscGVyLgoJKiB0cmVlLXZlY3Rvcml6ZXIuaCAo c3VwcG9ydGFibGVfd2lkZW5pbmdfb3BlcmF0aW9uKTogQ2hhbmdlCiAgICBwcm90b3R5cGUgdG8g dXNlIGNvZGVfaGVscGVyLgoJKHN1cHBvcnRhYmxlX25hcnJvd2luZ19vcGVyYXRpb24pOiBjaGFu Z2UgcHJvdG90eXBlIHRvIHVzZQogICAgY29kZV9oZWxwZXIuCgkqIHRyZWUuaCAoY2xhc3MgY29k ZV9oZWxwZXIpOiBNb3ZlIGNvZGVfaGVscGVyIGNsYXNzIHRvIG1vcmUgdmlzaWJsZQogICAgaGVh ZGVyLgoJKGludGVybmFsX2ZuKTogTW92ZSB0byBtb3JlIHZpc2libGUgaGVhZGVyLgoJKGJ1aWx0 X2luX2Z1bmN0aW9uKTogTW92ZSB0byBtb3JlIHZpc2libGUgaGVhZGVyLgoJKGNvZGVfaGVscGVy Ojppc19pbnRlcm5hbF9mbik6IE1vdmUgdG8gbW9yZSB2aXNpYmxlIGhlYWRlci4KCShjb2RlX2hl bHBlcjo6aXNfYnVpbHRpbl9mbik6IE1vdmUgdG8gbW9yZSB2aXNpYmxlIGhlYWRlci4KLS0tCiBn Y2MvZ2ltcGxlLW1hdGNoLmggICAgICAgIHwgIDQ4IC0tLS0tLS0tLQogZ2NjL2dpbXBsZS5jYyAg ICAgICAgICAgICB8ICAyNCArKysrKwogZ2NjL2dpbXBsZS5oICAgICAgICAgICAgICB8ICAgMSAr CiBnY2MvdHJlZS1jb3JlLmggICAgICAgICAgIHwgICAzICsKIGdjYy90cmVlLXZlY3QtcGF0dGVy bnMuY2MgfCAgIDcgKy0KIGdjYy90cmVlLXZlY3Qtc3RtdHMuY2MgICAgfCAyMTYgKysrKysrKysr KysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0KIGdjYy90cmVlLXZlY3Rvcml6ZXIuaCAgICAg fCAgMTEgKy0KIGdjYy90cmVlLmggICAgICAgICAgICAgICAgfCAgNTIgKysrKysrKysrCiA4IGZp bGVzIGNoYW5nZWQsIDIyMSBpbnNlcnRpb25zKCspLCAxNDEgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZ2NjL2dpbXBsZS1tYXRjaC5oIGIvZ2NjL2dpbXBsZS1tYXRjaC5oCmluZGV4IGQ3YjBi Njc2MDU5MWIyZDcxZTU3ODhiYWZkYjdlZWE0OTcxYTlmMjguLmM2YTBkOTNhYTg2ZDYwMWI4YjZj YmQ5OTcxYTAyMzg4YjdiYjY1NmEgMTAwNjQ0Ci0tLSBhL2djYy9naW1wbGUtbWF0Y2guaAorKysg Yi9nY2MvZ2ltcGxlLW1hdGNoLmgKQEAgLTIzLDU0ICsyMyw2IEBAIGFsb25nIHdpdGggR0NDOyBz ZWUgdGhlIGZpbGUgQ09QWUlORzMuICBJZiBub3Qgc2VlCiAjZGVmaW5lIEdDQ19HSU1QTEVfTUFU Q0hfSAogCiAKLS8qIEhlbHBlciB0byB0cmFuc3BhcmVudGx5IGFsbG93IHRyZWUgY29kZXMgYW5k IGJ1aWx0aW4gZnVuY3Rpb24gY29kZXMKLSAgIGV4aXN0IGluIG9uZSBzdG9yYWdlIGVudGl0eS4g ICovCi1jbGFzcyBjb2RlX2hlbHBlcgotewotcHVibGljOgotICBjb2RlX2hlbHBlciAoKSB7fQot ICBjb2RlX2hlbHBlciAodHJlZV9jb2RlIGNvZGUpIDogcmVwICgoaW50KSBjb2RlKSB7fQotICBj b2RlX2hlbHBlciAoY29tYmluZWRfZm4gZm4pIDogcmVwICgtKGludCkgZm4pIHt9Ci0gIGNvZGVf aGVscGVyIChpbnRlcm5hbF9mbiBmbikgOiByZXAgKC0oaW50KSBhc19jb21iaW5lZF9mbiAoZm4p KSB7fQotICBleHBsaWNpdCBvcGVyYXRvciB0cmVlX2NvZGUgKCkgY29uc3QgeyByZXR1cm4gKHRy ZWVfY29kZSkgcmVwOyB9Ci0gIGV4cGxpY2l0IG9wZXJhdG9yIGNvbWJpbmVkX2ZuICgpIGNvbnN0 IHsgcmV0dXJuIChjb21iaW5lZF9mbikgLXJlcDsgfQotICBleHBsaWNpdCBvcGVyYXRvciBpbnRl cm5hbF9mbiAoKSBjb25zdDsKLSAgZXhwbGljaXQgb3BlcmF0b3IgYnVpbHRfaW5fZnVuY3Rpb24g KCkgY29uc3Q7Ci0gIGJvb2wgaXNfdHJlZV9jb2RlICgpIGNvbnN0IHsgcmV0dXJuIHJlcCA+IDA7 IH0KLSAgYm9vbCBpc19mbl9jb2RlICgpIGNvbnN0IHsgcmV0dXJuIHJlcCA8IDA7IH0KLSAgYm9v bCBpc19pbnRlcm5hbF9mbiAoKSBjb25zdDsKLSAgYm9vbCBpc19idWlsdGluX2ZuICgpIGNvbnN0 OwotICBpbnQgZ2V0X3JlcCAoKSBjb25zdCB7IHJldHVybiByZXA7IH0KLSAgYm9vbCBvcGVyYXRv cj09IChjb25zdCBjb2RlX2hlbHBlciAmb3RoZXIpIHsgcmV0dXJuIHJlcCA9PSBvdGhlci5yZXA7 IH0KLSAgYm9vbCBvcGVyYXRvciE9IChjb25zdCBjb2RlX2hlbHBlciAmb3RoZXIpIHsgcmV0dXJu IHJlcCAhPSBvdGhlci5yZXA7IH0KLSAgYm9vbCBvcGVyYXRvcj09ICh0cmVlX2NvZGUgYykgeyBy ZXR1cm4gcmVwID09IGNvZGVfaGVscGVyIChjKS5yZXA7IH0KLSAgYm9vbCBvcGVyYXRvciE9ICh0 cmVlX2NvZGUgYykgeyByZXR1cm4gcmVwICE9IGNvZGVfaGVscGVyIChjKS5yZXA7IH0KLQotcHJp dmF0ZToKLSAgaW50IHJlcDsKLX07Ci0KLWlubGluZSBjb2RlX2hlbHBlcjo6b3BlcmF0b3IgaW50 ZXJuYWxfZm4gKCkgY29uc3QKLXsKLSAgcmV0dXJuIGFzX2ludGVybmFsX2ZuIChjb21iaW5lZF9m biAoKnRoaXMpKTsKLX0KLQotaW5saW5lIGNvZGVfaGVscGVyOjpvcGVyYXRvciBidWlsdF9pbl9m dW5jdGlvbiAoKSBjb25zdAotewotICByZXR1cm4gYXNfYnVpbHRpbl9mbiAoY29tYmluZWRfZm4g KCp0aGlzKSk7Ci19Ci0KLWlubGluZSBib29sCi1jb2RlX2hlbHBlcjo6aXNfaW50ZXJuYWxfZm4g KCkgY29uc3QKLXsKLSAgcmV0dXJuIGlzX2ZuX2NvZGUgKCkgJiYgaW50ZXJuYWxfZm5fcCAoY29t YmluZWRfZm4gKCp0aGlzKSk7Ci19Ci0KLWlubGluZSBib29sCi1jb2RlX2hlbHBlcjo6aXNfYnVp bHRpbl9mbiAoKSBjb25zdAotewotICByZXR1cm4gaXNfZm5fY29kZSAoKSAmJiBidWlsdGluX2Zu X3AgKGNvbWJpbmVkX2ZuICgqdGhpcykpOwotfQogCiAvKiBSZXByZXNlbnRzIHRoZSBjb25kaXRp b24gdW5kZXIgd2hpY2ggYW4gb3BlcmF0aW9uIHNob3VsZCBoYXBwZW4sCiAgICBhbmQgdGhlIHZh bHVlIHRvIHVzZSBvdGhlcndpc2UuICBUaGUgY29uZGl0aW9uIGFwcGxpZXMgZWxlbWVudHdpc2UK ZGlmZiAtLWdpdCBhL2djYy9naW1wbGUuY2MgYi9nY2MvZ2ltcGxlLmNjCmluZGV4IDllNjJkYTQy NjViMmE4YTAyMTIxZDU3NGRkZmFkMjA5NWQ4MDQ4YWQuLjI4YzU1ZDg1MzdhNjljY2Q4OWI4NzNk Zjk5MjJjNzA0N2QxMmNkZjEgMTAwNjQ0Ci0tLSBhL2djYy9naW1wbGUuY2MKKysrIGIvZ2NjL2dp bXBsZS5jYwpAQCAtNTAyLDYgKzUwMiwzMCBAQCBnaW1wbGVfYnVpbGRfYXNzaWduICh0cmVlIGxo cywgZW51bSB0cmVlX2NvZGUgc3ViY29kZSwgdHJlZSBvcDEgTUVNX1NUQVRfREVDTCkKIAkJCQlQ QVNTX01FTV9TVEFUKTsKIH0KIAorLyogQnVpbGQgYSBHSU1QTEVfQVNTSUdOIG9yIEdJTVBMRV9D QUxMIHdpdGggdGhlIHRyZWVfY29kZSwKKyAgIG9yIGludGVybmFsX2ZuIGNvbnRhaW5lZCBpbiBj aCwgcmVzcGVjdGl2ZWx5LiAgKi8KK2dpbXBsZSAqCitnaW1wbGVfYnVpbGQgKHRyZWUgbGhzLCBj b2RlX2hlbHBlciBjaCwgdHJlZSBvcDAsIHRyZWUgb3AxKQoreworICBpZiAob3AwID09IE5VTExf VFJFRSkKKyAgICByZXR1cm4gTlVMTDsKKyAgaWYgKGNoLmlzX3RyZWVfY29kZSAoKSkKKyAgICBy ZXR1cm4gb3AxID09IE5VTExfVFJFRSA/IGdpbXBsZV9idWlsZF9hc3NpZ24gKGxocywgY2guYXNf dHJlZV9jb2RlICgpLAorCQkJCQkJICAgb3AwKSA6CisJCQkgICAgICBnaW1wbGVfYnVpbGRfYXNz aWduIChsaHMsIGNoLmFzX3RyZWVfY29kZSAoKSwgb3AwLAorCQkJCQkJICAgb3AxKTsKKyAgZWxz ZQorICB7CisgICAgaW50ZXJuYWxfZm4gZm4gPSBhc19pbnRlcm5hbF9mbiAoY2guYXNfZm5fY29k ZSAoKSk7CisgICAgZ2ltcGxlKiBzdG10OworICAgIGlmIChvcDEgPT0gTlVMTF9UUkVFKQorICAg ICAgc3RtdCA9IGdpbXBsZV9idWlsZF9jYWxsX2ludGVybmFsIChmbiwgMSwgb3AwKTsKKyAgICBl bHNlCisgICAgICBzdG10ID0gZ2ltcGxlX2J1aWxkX2NhbGxfaW50ZXJuYWwgKGZuLCAyLCBvcDAs IG9wMSk7CisgICAgZ2ltcGxlX2NhbGxfc2V0X2xocyAoc3RtdCwgbGhzKTsKKyAgICByZXR1cm4g c3RtdDsKKyAgfQorfQogCiAvKiBCdWlsZCBhIEdJTVBMRV9DT05EIHN0YXRlbWVudC4KIApkaWZm IC0tZ2l0IGEvZ2NjL2dpbXBsZS5oIGIvZ2NjL2dpbXBsZS5oCmluZGV4IDc3YTVhMDdlOWI1YTJh NDQ3ZjJlMmU4MmUwNDU1Y2I2OTk5NGFhNmMuLjVkYWZmMTEyNTgzODllNjYwOGUxNjI1OTAyNzky YmE2NmI2ZGFiZmUgMTAwNjQ0Ci0tLSBhL2djYy9naW1wbGUuaAorKysgYi9nY2MvZ2ltcGxlLmgK QEAgLTE1MjMsNiArMTUyMyw3IEBAIGdjYWxsICpnaW1wbGVfYnVpbGRfY2FsbF92YWxpc3QgKHRy ZWUsIHVuc2lnbmVkLCB2YV9saXN0KTsKIGdjYWxsICpnaW1wbGVfYnVpbGRfY2FsbF9pbnRlcm5h bCAoZW51bSBpbnRlcm5hbF9mbiwgdW5zaWduZWQsIC4uLik7CiBnY2FsbCAqZ2ltcGxlX2J1aWxk X2NhbGxfaW50ZXJuYWxfdmVjIChlbnVtIGludGVybmFsX2ZuLCBjb25zdCB2ZWM8dHJlZT4gJik7 CiBnY2FsbCAqZ2ltcGxlX2J1aWxkX2NhbGxfZnJvbV90cmVlICh0cmVlLCB0cmVlKTsKK2dpbXBs ZSogZ2ltcGxlX2J1aWxkICh0cmVlLCBjb2RlX2hlbHBlciwgdHJlZSwgdHJlZSk7CiBnYXNzaWdu ICpnaW1wbGVfYnVpbGRfYXNzaWduICh0cmVlLCB0cmVlIENYWF9NRU1fU1RBVF9JTkZPKTsKIGdh c3NpZ24gKmdpbXBsZV9idWlsZF9hc3NpZ24gKHRyZWUsIGVudW0gdHJlZV9jb2RlLAogCQkJICAg ICAgdHJlZSwgdHJlZSwgdHJlZSBDWFhfTUVNX1NUQVRfSU5GTyk7CmRpZmYgLS1naXQgYS9nY2Mv dHJlZS1jb3JlLmggYi9nY2MvdHJlZS1jb3JlLmgKaW5kZXggZjFjMmI2NDEzYTNjYTczZGNmZWZh MWEwOWMxNDA4Y2YxYTllNGU2Yi4uODExYTg0YmY5ZjBjNDg1ZjhiYTFlNDMwYzI5ZWVkODg0YmQ2 MDJlYyAxMDA2NDQKLS0tIGEvZ2NjL3RyZWUtY29yZS5oCisrKyBiL2djYy90cmVlLWNvcmUuaApA QCAtOTYsNiArOTYsOSBAQCBzdHJ1Y3QgZGllX3N0cnVjdDsKIC8qIE5vbnplcm8gaWYgdGhpcyBp cyBhIGNvbGQgZnVuY3Rpb24uICAqLwogI2RlZmluZSBFQ0ZfQ09MRAkJICAoMSA8PCAxNSkKIAor LyogTm9uemVybyBpZiB0aGlzIGlzIGEgd2lkZW5pbmcgZnVuY3Rpb24uICAqLworI2RlZmluZSBF Q0ZfV0lERU4JCSAgKDEgPDwgMTYpCisKIC8qIENhbGwgYXJndW1lbnQgZmxhZ3MuICAqLwogCiAv KiBOb256ZXJvIGlmIHRoZSBhcmd1bWVudCBpcyBub3QgdXNlZCBieSB0aGUgZnVuY3Rpb24uICAq LwpkaWZmIC0tZ2l0IGEvZ2NjL3RyZWUtdmVjdC1wYXR0ZXJucy5jYyBiL2djYy90cmVlLXZlY3Qt cGF0dGVybnMuY2MKaW5kZXggMjE3YmRmZDcwNDVhMjI1NzhhMzViYjg5MWE0MzE4ZDc0MTA3MTg3 Mi4uMWFjMTVlOThiODg5NDc0OGIxMTlmM2Y4ZmE0NjUyZGEzMjk0OTM3ZSAxMDA2NDQKLS0tIGEv Z2NjL3RyZWUtdmVjdC1wYXR0ZXJucy5jYworKysgYi9nY2MvdHJlZS12ZWN0LXBhdHRlcm5zLmNj CkBAIC0xMzQyLDcgKzEzNDIsNyBAQCB2ZWN0X3JlY29nX3NhZF9wYXR0ZXJuICh2ZWNfaW5mbyAq dmluZm8sCiBzdGF0aWMgZ2ltcGxlICoKIHZlY3RfcmVjb2dfd2lkZW5fb3BfcGF0dGVybiAodmVj X2luZm8gKnZpbmZvLAogCQkJICAgICBzdG10X3ZlY19pbmZvIGxhc3Rfc3RtdF9pbmZvLCB0cmVl ICp0eXBlX291dCwKLQkJCSAgICAgdHJlZV9jb2RlIG9yaWdfY29kZSwgdHJlZV9jb2RlIHdpZGVf Y29kZSwKKwkJCSAgICAgdHJlZV9jb2RlIG9yaWdfY29kZSwgY29kZV9oZWxwZXIgd2lkZV9jb2Rl LAogCQkJICAgICBib29sIHNoaWZ0X3AsIGNvbnN0IGNoYXIgKm5hbWUpCiB7CiAgIGdpbXBsZSAq bGFzdF9zdG10ID0gbGFzdF9zdG10X2luZm8tPnN0bXQ7CkBAIC0xMzg1LDcgKzEzODUsNyBAQCB2 ZWN0X3JlY29nX3dpZGVuX29wX3BhdHRlcm4gKHZlY19pbmZvICp2aW5mbywKICAgICAgIHZlY2N0 eXBlID0gZ2V0X3ZlY3R5cGVfZm9yX3NjYWxhcl90eXBlICh2aW5mbywgY3R5cGUpOwogICAgIH0K IAotICBlbnVtIHRyZWVfY29kZSBkdW1teV9jb2RlOworICBjb2RlX2hlbHBlciBkdW1teV9jb2Rl OwogICBpbnQgZHVtbXlfaW50OwogICBhdXRvX3ZlYzx0cmVlPiBkdW1teV92ZWM7CiAgIGlmICgh dmVjdHlwZQpAQCAtMTQwNiw4ICsxNDA2LDcgQEAgdmVjdF9yZWNvZ193aWRlbl9vcF9wYXR0ZXJu ICh2ZWNfaW5mbyAqdmluZm8sCiAJCSAgICAgICAyLCBvcHJuZCwgaGFsZl90eXBlLCB1bnByb20s IHZlY3R5cGUpOwogCiAgIHRyZWUgdmFyID0gdmVjdF9yZWNvZ190ZW1wX3NzYV92YXIgKGl0eXBl LCBOVUxMKTsKLSAgZ2ltcGxlICpwYXR0ZXJuX3N0bXQgPSBnaW1wbGVfYnVpbGRfYXNzaWduICh2 YXIsIHdpZGVfY29kZSwKLQkJCQkJICAgICAgb3BybmRbMF0sIG9wcm5kWzFdKTsKKyAgZ2ltcGxl ICpwYXR0ZXJuX3N0bXQgPSBnaW1wbGVfYnVpbGQgKHZhciwgd2lkZV9jb2RlLCBvcHJuZFswXSwg b3BybmRbMV0pOwogCiAgIGlmICh2ZWNjdHlwZSAhPSB2ZWNpdHlwZSkKICAgICBwYXR0ZXJuX3N0 bXQgPSB2ZWN0X2NvbnZlcnRfb3V0cHV0ICh2aW5mbywgbGFzdF9zdG10X2luZm8sIGN0eXBlLApk aWZmIC0tZ2l0IGEvZ2NjL3RyZWUtdmVjdC1zdG10cy5jYyBiL2djYy90cmVlLXZlY3Qtc3RtdHMu Y2MKaW5kZXggYzk1MzRlZjliMWViYTRlYzAzMzRkZTU5Y2I0Nzk0YjNmNTc4ZDM0Yy4uOGUxZWY4 OTI3OGRhNjY0YTk2NTg1YjcxOGE3ZDIzNDdiYmI1YWY2ZSAxMDA2NDQKLS0tIGEvZ2NjL3RyZWUt dmVjdC1zdG10cy5jYworKysgYi9nY2MvdHJlZS12ZWN0LXN0bXRzLmNjCkBAIC00NjAzLDcgKzQ2 MDMsNyBAQCB2ZWN0b3JpemFibGVfc2ltZF9jbG9uZV9jYWxsICh2ZWNfaW5mbyAqdmluZm8sIHN0 bXRfdmVjX2luZm8gc3RtdF9pbmZvLAogICAgU1RNVF9JTkZPIGlzIHRoZSBvcmlnaW5hbCBzY2Fs YXIgc3RtdCB0aGF0IHdlIGFyZSB2ZWN0b3JpemluZy4gICovCiAKIHN0YXRpYyBnaW1wbGUgKgot dmVjdF9nZW5fd2lkZW5lZF9yZXN1bHRzX2hhbGYgKHZlY19pbmZvICp2aW5mbywgZW51bSB0cmVl X2NvZGUgY29kZSwKK3ZlY3RfZ2VuX3dpZGVuZWRfcmVzdWx0c19oYWxmICh2ZWNfaW5mbyAqdmlu Zm8sIGNvZGVfaGVscGVyIGNoLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyZWUg dmVjX29wcm5kMCwgdHJlZSB2ZWNfb3BybmQxLCBpbnQgb3BfdHlwZSwKIAkJCSAgICAgICB0cmVl IHZlY19kZXN0LCBnaW1wbGVfc3RtdF9pdGVyYXRvciAqZ3NpLAogCQkJICAgICAgIHN0bXRfdmVj X2luZm8gc3RtdF9pbmZvKQpAQCAtNDYxMiwxNCArNDYxMiwxMiBAQCB2ZWN0X2dlbl93aWRlbmVk X3Jlc3VsdHNfaGFsZiAodmVjX2luZm8gKnZpbmZvLCBlbnVtIHRyZWVfY29kZSBjb2RlLAogICB0 cmVlIG5ld190ZW1wOwogCiAgIC8qIEdlbmVyYXRlIGhhbGYgb2YgdGhlIHdpZGVuZWQgcmVzdWx0 OiAgKi8KLSAgZ2NjX2Fzc2VydCAob3BfdHlwZSA9PSBUUkVFX0NPREVfTEVOR1RIIChjb2RlKSk7 CiAgIGlmIChvcF90eXBlICE9IGJpbmFyeV9vcCkKICAgICB2ZWNfb3BybmQxID0gTlVMTDsKLSAg bmV3X3N0bXQgPSBnaW1wbGVfYnVpbGRfYXNzaWduICh2ZWNfZGVzdCwgY29kZSwgdmVjX29wcm5k MCwgdmVjX29wcm5kMSk7CisgIG5ld19zdG10ID0gZ2ltcGxlX2J1aWxkICh2ZWNfZGVzdCwgY2gs IHZlY19vcHJuZDAsIHZlY19vcHJuZDEpOwogICBuZXdfdGVtcCA9IG1ha2Vfc3NhX25hbWUgKHZl Y19kZXN0LCBuZXdfc3RtdCk7Ci0gIGdpbXBsZV9hc3NpZ25fc2V0X2xocyAobmV3X3N0bXQsIG5l d190ZW1wKTsKKyAgZ2ltcGxlX3NldF9saHMgKG5ld19zdG10LCBuZXdfdGVtcCk7CiAgIHZlY3Rf ZmluaXNoX3N0bXRfZ2VuZXJhdGlvbiAodmluZm8sIHN0bXRfaW5mbywgbmV3X3N0bXQsIGdzaSk7 Ci0KICAgcmV0dXJuIG5ld19zdG10OwogfQogCkBAIC00Njk2LDggKzQ2OTQsOCBAQCB2ZWN0X2Ny ZWF0ZV92ZWN0b3JpemVkX3Byb21vdGlvbl9zdG10cyAodmVjX2luZm8gKnZpbmZvLAogCQkJCQl2 ZWM8dHJlZT4gKnZlY19vcHJuZHMxLAogCQkJCQlzdG10X3ZlY19pbmZvIHN0bXRfaW5mbywgdHJl ZSB2ZWNfZGVzdCwKIAkJCQkJZ2ltcGxlX3N0bXRfaXRlcmF0b3IgKmdzaSwKLQkJCQkJZW51bSB0 cmVlX2NvZGUgY29kZTEsCi0JCQkJCWVudW0gdHJlZV9jb2RlIGNvZGUyLCBpbnQgb3BfdHlwZSkK KwkJCQkJY29kZV9oZWxwZXIgY2gxLAorCQkJCQljb2RlX2hlbHBlciBjaDIsIGludCBvcF90eXBl KQogewogICBpbnQgaTsKICAgdHJlZSB2b3AwLCB2b3AxLCBuZXdfdG1wMSwgbmV3X3RtcDI7CkBA IC00NzEzLDEwICs0NzExLDEwIEBAIHZlY3RfY3JlYXRlX3ZlY3Rvcml6ZWRfcHJvbW90aW9uX3N0 bXRzICh2ZWNfaW5mbyAqdmluZm8sCiAJdm9wMSA9IE5VTExfVFJFRTsKIAogICAgICAgLyogR2Vu ZXJhdGUgdGhlIHR3byBoYWx2ZXMgb2YgcHJvbW90aW9uIG9wZXJhdGlvbi4gICovCi0gICAgICBu ZXdfc3RtdDEgPSB2ZWN0X2dlbl93aWRlbmVkX3Jlc3VsdHNfaGFsZiAodmluZm8sIGNvZGUxLCB2 b3AwLCB2b3AxLAorICAgICAgbmV3X3N0bXQxID0gdmVjdF9nZW5fd2lkZW5lZF9yZXN1bHRzX2hh bGYgKHZpbmZvLCBjaDEsIHZvcDAsIHZvcDEsCiAJCQkJCQkgb3BfdHlwZSwgdmVjX2Rlc3QsIGdz aSwKIAkJCQkJCSBzdG10X2luZm8pOwotICAgICAgbmV3X3N0bXQyID0gdmVjdF9nZW5fd2lkZW5l ZF9yZXN1bHRzX2hhbGYgKHZpbmZvLCBjb2RlMiwgdm9wMCwgdm9wMSwKKyAgICAgIG5ld19zdG10 MiA9IHZlY3RfZ2VuX3dpZGVuZWRfcmVzdWx0c19oYWxmICh2aW5mbywgY2gyLCB2b3AwLCB2b3Ax LAogCQkJCQkJIG9wX3R5cGUsIHZlY19kZXN0LCBnc2ksCiAJCQkJCQkgc3RtdF9pbmZvKTsKICAg ICAgIGlmIChpc19naW1wbGVfY2FsbCAobmV3X3N0bXQxKSkKQEAgLTQ4MTMsOCArNDgxMSw5IEBA IHZlY3Rvcml6YWJsZV9jb252ZXJzaW9uICh2ZWNfaW5mbyAqdmluZm8sCiAgIHRyZWUgc2NhbGFy X2Rlc3Q7CiAgIHRyZWUgb3AwLCBvcDEgPSBOVUxMX1RSRUU7CiAgIGxvb3BfdmVjX2luZm8gbG9v cF92aW5mbyA9IGR5bl9jYXN0IDxsb29wX3ZlY19pbmZvPiAodmluZm8pOwotICBlbnVtIHRyZWVf Y29kZSBjb2RlLCBjb2RlMSA9IEVSUk9SX01BUkssIGNvZGUyID0gRVJST1JfTUFSSzsKLSAgZW51 bSB0cmVlX2NvZGUgY29kZWN2dDEgPSBFUlJPUl9NQVJLLCBjb2RlY3Z0MiA9IEVSUk9SX01BUks7 CisgIHRyZWVfY29kZSB0YzE7CisgIGNvZGVfaGVscGVyIGNvZGUsIGNvZGUxLCBjb2RlMjsKKyAg Y29kZV9oZWxwZXIgY29kZWN2dDEgPSBFUlJPUl9NQVJLLCBjb2RlY3Z0MiA9IEVSUk9SX01BUks7 CiAgIHRyZWUgbmV3X3RlbXA7CiAgIGVudW0gdmVjdF9kZWZfdHlwZSBkdFsyXSA9IHt2ZWN0X3Vu a25vd25fZGVmX3R5cGUsIHZlY3RfdW5rbm93bl9kZWZfdHlwZX07CiAgIGludCBuZHRzID0gMjsK QEAgLTQ4NDMsMzEgKzQ4NDIsNDIgQEAgdmVjdG9yaXphYmxlX2NvbnZlcnNpb24gKHZlY19pbmZv ICp2aW5mbywKICAgICAgICYmICEgdmVjX3N0bXQpCiAgICAgcmV0dXJuIGZhbHNlOwogCi0gIGdh c3NpZ24gKnN0bXQgPSBkeW5fY2FzdCA8Z2Fzc2lnbiAqPiAoc3RtdF9pbmZvLT5zdG10KTsKLSAg aWYgKCFzdG10KQorICBnaW1wbGUqIHN0bXQgPSBzdG10X2luZm8tPnN0bXQ7CisgIGlmICghKGlz X2dpbXBsZV9hc3NpZ24gKHN0bXQpIHx8IGlzX2dpbXBsZV9jYWxsIChzdG10KSkpCiAgICAgcmV0 dXJuIGZhbHNlOwogCi0gIGlmIChUUkVFX0NPREUgKGdpbXBsZV9hc3NpZ25fbGhzIChzdG10KSkg IT0gU1NBX05BTUUpCisgIGlmIChnaW1wbGVfZ2V0X2xocyAoc3RtdCkgPT0gTlVMTF9UUkVFIHx8 CisgICAgICBUUkVFX0NPREUoZ2ltcGxlX2dldF9saHMgKHN0bXQpKSAhPSBTU0FfTkFNRSkKICAg ICByZXR1cm4gZmFsc2U7CiAKLSAgY29kZSA9IGdpbXBsZV9hc3NpZ25fcmhzX2NvZGUgKHN0bXQp OwotICBpZiAoIUNPTlZFUlRfRVhQUl9DT0RFX1AgKGNvZGUpCi0gICAgICAmJiBjb2RlICE9IEZJ WF9UUlVOQ19FWFBSCi0gICAgICAmJiBjb2RlICE9IEZMT0FUX0VYUFIKLSAgICAgICYmIGNvZGUg IT0gV0lERU5fUExVU19FWFBSCi0gICAgICAmJiBjb2RlICE9IFdJREVOX01JTlVTX0VYUFIKLSAg ICAgICYmIGNvZGUgIT0gV0lERU5fTVVMVF9FWFBSCi0gICAgICAmJiBjb2RlICE9IFdJREVOX0xT SElGVF9FWFBSKQorICBpZiAoVFJFRV9DT0RFIChnaW1wbGVfZ2V0X2xocyAoc3RtdCkpICE9IFNT QV9OQU1FKQogICAgIHJldHVybiBmYWxzZTsKIAotICBib29sIHdpZGVuX2FyaXRoID0gKGNvZGUg PT0gV0lERU5fUExVU19FWFBSCi0JCSAgICAgIHx8IGNvZGUgPT0gV0lERU5fTUlOVVNfRVhQUgot CQkgICAgICB8fCBjb2RlID09IFdJREVOX01VTFRfRVhQUgotCQkgICAgICB8fCBjb2RlID09IFdJ REVOX0xTSElGVF9FWFBSKTsKLSAgb3BfdHlwZSA9IFRSRUVfQ09ERV9MRU5HVEggKGNvZGUpOwor ICBib29sIHdpZGVuX2FyaXRoID0gZmFsc2U7CisgIGdpbXBsZV9tYXRjaF9vcCByZXNfb3A7Cisg IGlmICghZ2ltcGxlX2V4dHJhY3Rfb3AgKHN0bXQsICZyZXNfb3ApKQorICAgIHJldHVybiBmYWxz ZTsKKyAgY29kZSA9IHJlc19vcC5jb2RlOworICBvcF90eXBlID0gcmVzX29wLm51bV9vcHM7CisK KyAgaWYgKGlzX2dpbXBsZV9hc3NpZ24gKHN0bXQpKQorICB7CisgICAgICB3aWRlbl9hcml0aCA9 IChjb2RlID09IFdJREVOX1BMVVNfRVhQUgorCQkgICAgIHx8IGNvZGUgPT0gV0lERU5fTUlOVVNf RVhQUgorCQkgICAgIHx8IGNvZGUgPT0gV0lERU5fTVVMVF9FWFBSCisJCSAgICAgfHwgY29kZSA9 PSBXSURFTl9MU0hJRlRfRVhQUik7CisgfQorICBlbHNlCisgICAgICB3aWRlbl9hcml0aCA9IGdp bXBsZV9jYWxsX2ZsYWdzIChzdG10KSAmIEVDRl9XSURFTjsKKworICBpZiAoIXdpZGVuX2FyaXRo CisgICAgICAmJiAhQ09OVkVSVF9FWFBSX0NPREVfUCAoY29kZSkKKyAgICAgICYmIGNvZGUgIT0g RklYX1RSVU5DX0VYUFIKKyAgICAgICYmIGNvZGUgIT0gRkxPQVRfRVhQUikKKyAgICByZXR1cm4g ZmFsc2U7CiAKICAgLyogQ2hlY2sgdHlwZXMgb2YgbGhzIGFuZCByaHMuICAqLwotICBzY2FsYXJf ZGVzdCA9IGdpbXBsZV9hc3NpZ25fbGhzIChzdG10KTsKKyAgc2NhbGFyX2Rlc3QgPSBnaW1wbGVf Z2V0X2xocyAoc3RtdCk7CiAgIGxoc190eXBlID0gVFJFRV9UWVBFIChzY2FsYXJfZGVzdCk7CiAg IHZlY3R5cGVfb3V0ID0gU1RNVF9WSU5GT19WRUNUWVBFIChzdG10X2luZm8pOwogCkBAIC00OTA1 LDEwICs0OTE1LDE1IEBAIHZlY3Rvcml6YWJsZV9jb252ZXJzaW9uICh2ZWNfaW5mbyAqdmluZm8s CiAKICAgaWYgKG9wX3R5cGUgPT0gYmluYXJ5X29wKQogICAgIHsKLSAgICAgIGdjY19hc3NlcnQg KGNvZGUgPT0gV0lERU5fTVVMVF9FWFBSIHx8IGNvZGUgPT0gV0lERU5fTFNISUZUX0VYUFIKLQkJ ICB8fCBjb2RlID09IFdJREVOX1BMVVNfRVhQUiB8fCBjb2RlID09IFdJREVOX01JTlVTX0VYUFIp OworICAgICAgZ2NjX2Fzc2VydCAoY29kZSA9PSBXSURFTl9NVUxUX0VYUFIKKwkJICB8fCBjb2Rl ID09IFdJREVOX0xTSElGVF9FWFBSCisJCSAgfHwgY29kZSA9PSBXSURFTl9QTFVTX0VYUFIKKwkJ ICB8fCBjb2RlID09IFdJREVOX01JTlVTX0VYUFIKKwkJICB8fCB3aWRlbl9hcml0aCk7CisKIAot ICAgICAgb3AxID0gZ2ltcGxlX2Fzc2lnbl9yaHMyIChzdG10KTsKKyAgICAgIG9wMSA9IGlzX2dp bXBsZV9hc3NpZ24gKHN0bXQpID8gZ2ltcGxlX2Fzc2lnbl9yaHMyIChzdG10KSA6CisJCQkJICAg ICBnaW1wbGVfY2FsbF9hcmcgKHN0bXQsIDApOwogICAgICAgdHJlZSB2ZWN0eXBlMV9pbjsKICAg ICAgIGlmICghdmVjdF9pc19zaW1wbGVfdXNlICh2aW5mbywgc3RtdF9pbmZvLCBzbHBfbm9kZSwg MSwKIAkJCSAgICAgICAmb3AxLCAmc2xwX29wMSwgJmR0WzFdLCAmdmVjdHlwZTFfaW4pKQpAQCAt NDk5Miw4ICs1MDA3LDEyIEBAIHZlY3Rvcml6YWJsZV9jb252ZXJzaW9uICh2ZWNfaW5mbyAqdmlu Zm8sCiAJICAmJiBjb2RlICE9IEZMT0FUX0VYUFIKIAkgICYmICFDT05WRVJUX0VYUFJfQ09ERV9Q IChjb2RlKSkKIAlyZXR1cm4gZmFsc2U7Ci0gICAgICBpZiAoc3VwcG9ydGFibGVfY29udmVydF9v cGVyYXRpb24gKGNvZGUsIHZlY3R5cGVfb3V0LCB2ZWN0eXBlX2luLCAmY29kZTEpKQorICAgICAg aWYgKHN1cHBvcnRhYmxlX2NvbnZlcnRfb3BlcmF0aW9uIChjb2RlLmFzX3RyZWVfY29kZSAoKSwg dmVjdHlwZV9vdXQsCisJCQkJCSB2ZWN0eXBlX2luLCAmdGMxKSkKKyAgICAgIHsKKwljb2RlMSA9 IHRjMTsKIAlicmVhazsKKyAgICAgIH0KICAgICAgIC8qIEZBTExUSFJVICovCiAgICAgdW5zdXBw b3J0ZWQ6CiAgICAgICBpZiAoZHVtcF9lbmFibGVkX3AgKCkpCkBAIC01MDA0LDkgKzUwMjMsMTEg QEAgdmVjdG9yaXphYmxlX2NvbnZlcnNpb24gKHZlY19pbmZvICp2aW5mbywKICAgICBjYXNlIFdJ REVOOgogICAgICAgaWYgKGtub3duX2VxIChudW5pdHNfaW4sIG51bml0c19vdXQpKQogCXsKLQkg IGlmICghc3VwcG9ydGFibGVfaGFsZl93aWRlbmluZ19vcGVyYXRpb24gKGNvZGUsIHZlY3R5cGVf b3V0LAotCQkJCQkJICAgdmVjdHlwZV9pbiwgJmNvZGUxKSkKKwkgIGlmICghc3VwcG9ydGFibGVf aGFsZl93aWRlbmluZ19vcGVyYXRpb24gKGNvZGUuYXNfdHJlZV9jb2RlICgpLAorCQkJCQkJICAg IHZlY3R5cGVfb3V0LCB2ZWN0eXBlX2luLAorCQkJCQkJICAgICZ0YzEpKQogCSAgICBnb3RvIHVu c3VwcG9ydGVkOworCSAgY29kZTEgPSB0YzE7CiAJICBnY2NfYXNzZXJ0ICghKG11bHRpX3N0ZXBf Y3Z0ICYmIG9wX3R5cGUgPT0gYmluYXJ5X29wKSk7CiAJICBicmVhazsKIAl9CkBAIC01MDQwLDE0 ICs1MDYxLDE3IEBAIHZlY3Rvcml6YWJsZV9jb252ZXJzaW9uICh2ZWNfaW5mbyAqdmluZm8sCiAK IAkgIGlmIChHRVRfTU9ERV9TSVpFIChyaHNfbW9kZSkgPT0gZmx0c3opCiAJICAgIHsKLQkgICAg ICBpZiAoIXN1cHBvcnRhYmxlX2NvbnZlcnRfb3BlcmF0aW9uIChjb2RlLCB2ZWN0eXBlX291dCwK LQkJCQkJCSAgY3Z0X3R5cGUsICZjb2RlY3Z0MSkpCisJICAgICAgdGMxID0gRVJST1JfTUFSSzsK KwkgICAgICBpZiAoIXN1cHBvcnRhYmxlX2NvbnZlcnRfb3BlcmF0aW9uIChjb2RlLmFzX3RyZWVf Y29kZSAoKSwKKwkJCQkJCSAgdmVjdHlwZV9vdXQsCisJCQkJCQkgIGN2dF90eXBlLCAmdGMxKSkK IAkJZ290byB1bnN1cHBvcnRlZDsKKwkgICAgICBjb2RlY3Z0MSA9IHRjMTsKIAkgICAgfQotCSAg ZWxzZSBpZiAoIXN1cHBvcnRhYmxlX3dpZGVuaW5nX29wZXJhdGlvbiAodmluZm8sIGNvZGUsIHN0 bXRfaW5mbywKLQkJCQkJCSAgICB2ZWN0eXBlX291dCwgY3Z0X3R5cGUsCi0JCQkJCQkgICAgJmNv ZGVjdnQxLCAmY29kZWN2dDIsCi0JCQkJCQkgICAgJm11bHRpX3N0ZXBfY3Z0LAorCSAgZWxzZSBp ZiAoIXN1cHBvcnRhYmxlX3dpZGVuaW5nX29wZXJhdGlvbiAodmluZm8sIGNvZGUsCisJCQkJCQkg ICAgc3RtdF9pbmZvLCB2ZWN0eXBlX291dCwKKwkJCQkJCSAgICBjdnRfdHlwZSwgJmNvZGVjdnQx LAorCQkJCQkJICAgICZjb2RlY3Z0MiwgJm11bHRpX3N0ZXBfY3Z0LAogCQkJCQkJICAgICZpbnRl cm1fdHlwZXMpKQogCSAgICBjb250aW51ZTsKIAkgIGVsc2UKQEAgLTUwNTUsOCArNTA3OSw5IEBA IHZlY3Rvcml6YWJsZV9jb252ZXJzaW9uICh2ZWNfaW5mbyAqdmluZm8sCiAKIAkgIGlmIChzdXBw b3J0YWJsZV93aWRlbmluZ19vcGVyYXRpb24gKHZpbmZvLCBOT1BfRVhQUiwgc3RtdF9pbmZvLAog CQkJCQkgICAgICBjdnRfdHlwZSwKLQkJCQkJICAgICAgdmVjdHlwZV9pbiwgJmNvZGUxLCAmY29k ZTIsCi0JCQkJCSAgICAgICZtdWx0aV9zdGVwX2N2dCwgJmludGVybV90eXBlcykpCisJCQkJCSAg ICAgIHZlY3R5cGVfaW4sICZjb2RlMSwKKwkJCQkJICAgICAgJmNvZGUyLCAmbXVsdGlfc3RlcF9j dnQsCisJCQkJCSAgICAgICZpbnRlcm1fdHlwZXMpKQogCSAgICB7CiAJICAgICAgZm91bmRfbW9k ZSA9IHRydWU7CiAJICAgICAgYnJlYWs7CkBAIC01MDc4LDEwICs1MTAzLDE0IEBAIHZlY3Rvcml6 YWJsZV9jb252ZXJzaW9uICh2ZWNfaW5mbyAqdmluZm8sCiAKICAgICBjYXNlIE5BUlJPVzoKICAg ICAgIGdjY19hc3NlcnQgKG9wX3R5cGUgPT0gdW5hcnlfb3ApOwotICAgICAgaWYgKHN1cHBvcnRh YmxlX25hcnJvd2luZ19vcGVyYXRpb24gKGNvZGUsIHZlY3R5cGVfb3V0LCB2ZWN0eXBlX2luLAot CQkJCQkgICAmY29kZTEsICZtdWx0aV9zdGVwX2N2dCwKKyAgICAgIGlmIChzdXBwb3J0YWJsZV9u YXJyb3dpbmdfb3BlcmF0aW9uIChjb2RlLmFzX3RyZWVfY29kZSAoKSwgdmVjdHlwZV9vdXQsCisJ CQkJCSAgIHZlY3R5cGVfaW4sCisJCQkJCSAgICZ0YzEsICZtdWx0aV9zdGVwX2N2dCwKIAkJCQkJ ICAgJmludGVybV90eXBlcykpCi0JYnJlYWs7CisJeworCSAgY29kZTEgPSB0YzE7CisJICBicmVh azsKKwl9CiAKICAgICAgIGlmIChjb2RlICE9IEZJWF9UUlVOQ19FWFBSCiAJICB8fCBHRVRfTU9E RV9TSVpFIChsaHNfbW9kZSkgPj0gR0VUX01PREVfU0laRSAocmhzX21vZGUpKQpAQCAtNTA5Miwx MyArNTEyMSwxOCBAQCB2ZWN0b3JpemFibGVfY29udmVyc2lvbiAodmVjX2luZm8gKnZpbmZvLAog ICAgICAgY3Z0X3R5cGUgPSBnZXRfc2FtZV9zaXplZF92ZWN0eXBlIChjdnRfdHlwZSwgdmVjdHlw ZV9pbik7CiAgICAgICBpZiAoY3Z0X3R5cGUgPT0gTlVMTF9UUkVFKQogCWdvdG8gdW5zdXBwb3J0 ZWQ7Ci0gICAgICBpZiAoIXN1cHBvcnRhYmxlX2NvbnZlcnRfb3BlcmF0aW9uIChjb2RlLCBjdnRf dHlwZSwgdmVjdHlwZV9pbiwKLQkJCQkJICAmY29kZWN2dDEpKQorICAgICAgaWYgKCFzdXBwb3J0 YWJsZV9jb252ZXJ0X29wZXJhdGlvbiAoY29kZS5hc190cmVlX2NvZGUgKCksIGN2dF90eXBlLAor CQkJCQkgIHZlY3R5cGVfaW4sCisJCQkJCSAgJnRjMSkpCiAJZ290byB1bnN1cHBvcnRlZDsKKyAg ICAgIGNvZGVjdnQxID0gdGMxOwogICAgICAgaWYgKHN1cHBvcnRhYmxlX25hcnJvd2luZ19vcGVy YXRpb24gKE5PUF9FWFBSLCB2ZWN0eXBlX291dCwgY3Z0X3R5cGUsCi0JCQkJCSAgICZjb2RlMSwg Jm11bHRpX3N0ZXBfY3Z0LAorCQkJCQkgICAmdGMxLCAmbXVsdGlfc3RlcF9jdnQsCiAJCQkJCSAg ICZpbnRlcm1fdHlwZXMpKQotCWJyZWFrOworCXsKKwkgIGNvZGUxID0gdGMxOworCSAgYnJlYWs7 CisJfQogICAgICAgZ290byB1bnN1cHBvcnRlZDsKIAogICAgIGRlZmF1bHQ6CkBAIC01MjEyLDgg KzUyNDYsOSBAQCB2ZWN0b3JpemFibGVfY29udmVyc2lvbiAodmVjX2luZm8gKnZpbmZvLAogICAg ICAgRk9SX0VBQ0hfVkVDX0VMVCAodmVjX29wcm5kczAsIGksIHZvcDApCiAJewogCSAgLyogQXJn dW1lbnRzIGFyZSByZWFkeSwgY3JlYXRlIHRoZSBuZXcgdmVjdG9yIHN0bXQuICAqLwotCSAgZ2Nj X2Fzc2VydCAoVFJFRV9DT0RFX0xFTkdUSCAoY29kZTEpID09IHVuYXJ5X29wKTsKLQkgIGdhc3Np Z24gKm5ld19zdG10ID0gZ2ltcGxlX2J1aWxkX2Fzc2lnbiAodmVjX2Rlc3QsIGNvZGUxLCB2b3Aw KTsKKwkgIGdjY19hc3NlcnQgKFRSRUVfQ09ERV9MRU5HVEggKCh0cmVlX2NvZGUpIGNvZGUxKSA9 PSB1bmFyeV9vcCk7CisJICBnYXNzaWduICpuZXdfc3RtdCA9IGdpbXBsZV9idWlsZF9hc3NpZ24g KHZlY19kZXN0LAorCQkJCQkJICAgY29kZTEuYXNfdHJlZV9jb2RlICgpLCB2b3AwKTsKIAkgIG5l d190ZW1wID0gbWFrZV9zc2FfbmFtZSAodmVjX2Rlc3QsIG5ld19zdG10KTsKIAkgIGdpbXBsZV9h c3NpZ25fc2V0X2xocyAobmV3X3N0bXQsIG5ld190ZW1wKTsKIAkgIHZlY3RfZmluaXNoX3N0bXRf Z2VuZXJhdGlvbiAodmluZm8sIHN0bXRfaW5mbywgbmV3X3N0bXQsIGdzaSk7CkBAIC01MjQ1LDcg KzUyODAsNyBAQCB2ZWN0b3JpemFibGVfY29udmVyc2lvbiAodmVjX2luZm8gKnZpbmZvLAogICAg ICAgZm9yIChpID0gbXVsdGlfc3RlcF9jdnQ7IGkgPj0gMDsgaS0tKQogCXsKIAkgIHRyZWUgdGhp c19kZXN0ID0gdmVjX2RzdHNbaV07Ci0JICBlbnVtIHRyZWVfY29kZSBjMSA9IGNvZGUxLCBjMiA9 IGNvZGUyOworCSAgY29kZV9oZWxwZXIgYzEgPSBjb2RlMSwgYzIgPSBjb2RlMjsKIAkgIGlmIChp ID09IDAgJiYgY29kZWN2dDIgIT0gRVJST1JfTUFSSykKIAkgICAgewogCSAgICAgIGMxID0gY29k ZWN2dDE7CkBAIC01MjU1LDcgKzUyOTAsOCBAQCB2ZWN0b3JpemFibGVfY29udmVyc2lvbiAodmVj X2luZm8gKnZpbmZvLAogCSAgICB2ZWN0X2NyZWF0ZV9oYWxmX3dpZGVuaW5nX3N0bXRzICh2aW5m bywgJnZlY19vcHJuZHMwLAogCQkJCQkJICAgICZ2ZWNfb3BybmRzMSwgc3RtdF9pbmZvLAogCQkJ CQkJICAgIHRoaXNfZGVzdCwgZ3NpLAotCQkJCQkJICAgIGMxLCBvcF90eXBlKTsKKwkJCQkJCSAg ICBjMS5hc190cmVlX2NvZGUgKCksCisJCQkJCQkgICAgb3BfdHlwZSk7CiAJICBlbHNlCiAJICAg IHZlY3RfY3JlYXRlX3ZlY3Rvcml6ZWRfcHJvbW90aW9uX3N0bXRzICh2aW5mbywgJnZlY19vcHJu ZHMwLAogCQkJCQkJICAgICZ2ZWNfb3BybmRzMSwgc3RtdF9pbmZvLApAQCAtNTI2OCw5ICs1MzA0 LDExIEBAIHZlY3Rvcml6YWJsZV9jb252ZXJzaW9uICh2ZWNfaW5mbyAqdmluZm8sCiAJICBnaW1w bGUgKm5ld19zdG10OwogCSAgaWYgKGN2dF90eXBlKQogCSAgICB7Ci0JICAgICAgZ2NjX2Fzc2Vy dCAoVFJFRV9DT0RFX0xFTkdUSCAoY29kZWN2dDEpID09IHVuYXJ5X29wKTsKKwkgICAgICBnY2Nf YXNzZXJ0IChUUkVFX0NPREVfTEVOR1RIICgodHJlZV9jb2RlKSBjb2RlY3Z0MSkgPT0gdW5hcnlf b3ApOwogCSAgICAgIG5ld190ZW1wID0gbWFrZV9zc2FfbmFtZSAodmVjX2Rlc3QpOwotCSAgICAg IG5ld19zdG10ID0gZ2ltcGxlX2J1aWxkX2Fzc2lnbiAobmV3X3RlbXAsIGNvZGVjdnQxLCB2b3Aw KTsKKwkgICAgICBuZXdfc3RtdCA9IGdpbXBsZV9idWlsZF9hc3NpZ24gKG5ld190ZW1wLAorCQkJ CQkgICAgICBjb2RlY3Z0MS5hc190cmVlX2NvZGUgKCksCisJCQkJCSAgICAgIHZvcDApOwogCSAg ICAgIHZlY3RfZmluaXNoX3N0bXRfZ2VuZXJhdGlvbiAodmluZm8sIHN0bXRfaW5mbywgbmV3X3N0 bXQsIGdzaSk7CiAJICAgIH0KIAkgIGVsc2UKQEAgLTUyOTQsMTAgKzUzMzIsMTAgQEAgdmVjdG9y aXphYmxlX2NvbnZlcnNpb24gKHZlY19pbmZvICp2aW5mbywKICAgICAgIGlmIChjdnRfdHlwZSkK IAlGT1JfRUFDSF9WRUNfRUxUICh2ZWNfb3BybmRzMCwgaSwgdm9wMCkKIAkgIHsKLQkgICAgZ2Nj X2Fzc2VydCAoVFJFRV9DT0RFX0xFTkdUSCAoY29kZWN2dDEpID09IHVuYXJ5X29wKTsKKwkgICAg Z2NjX2Fzc2VydCAoVFJFRV9DT0RFX0xFTkdUSCAoKCh0cmVlX2NvZGUpIGNvZGVjdnQxKSkgPT0g dW5hcnlfb3ApOwogCSAgICBuZXdfdGVtcCA9IG1ha2Vfc3NhX25hbWUgKHZlY19kZXN0KTsKIAkg ICAgZ2Fzc2lnbiAqbmV3X3N0bXQKLQkgICAgICA9IGdpbXBsZV9idWlsZF9hc3NpZ24gKG5ld190 ZW1wLCBjb2RlY3Z0MSwgdm9wMCk7CisJICAgICAgPSBnaW1wbGVfYnVpbGRfYXNzaWduIChuZXdf dGVtcCwgY29kZWN2dDEuYXNfdHJlZV9jb2RlICgpLCB2b3AwKTsKIAkgICAgdmVjdF9maW5pc2hf c3RtdF9nZW5lcmF0aW9uICh2aW5mbywgc3RtdF9pbmZvLCBuZXdfc3RtdCwgZ3NpKTsKIAkgICAg dmVjX29wcm5kczBbaV0gPSBuZXdfdGVtcDsKIAkgIH0KQEAgLTUzMDUsNyArNTM0Myw3IEBAIHZl Y3Rvcml6YWJsZV9jb252ZXJzaW9uICh2ZWNfaW5mbyAqdmluZm8sCiAgICAgICB2ZWN0X2NyZWF0 ZV92ZWN0b3JpemVkX2RlbW90aW9uX3N0bXRzICh2aW5mbywgJnZlY19vcHJuZHMwLAogCQkJCQkg ICAgIG11bHRpX3N0ZXBfY3Z0LAogCQkJCQkgICAgIHN0bXRfaW5mbywgdmVjX2RzdHMsIGdzaSwK LQkJCQkJICAgICBzbHBfbm9kZSwgY29kZTEpOworCQkJCQkgICAgIHNscF9ub2RlLCBjb2RlMS5h c190cmVlX2NvZGUgKCkpOwogICAgICAgYnJlYWs7CiAgICAgfQogICBpZiAoIXNscF9ub2RlKQpA QCAtMTE4ODcsOSArMTE5MjUsMTEgQEAgdmVjdF9tYXliZV91cGRhdGVfc2xwX29wX3ZlY3R5cGUg KHNscF90cmVlIG9wLCB0cmVlIHZlY3R5cGUpCiAKIGJvb2wKIHN1cHBvcnRhYmxlX3dpZGVuaW5n X29wZXJhdGlvbiAodmVjX2luZm8gKnZpbmZvLAotCQkJCWVudW0gdHJlZV9jb2RlIGNvZGUsIHN0 bXRfdmVjX2luZm8gc3RtdF9pbmZvLAorCQkJCWNvZGVfaGVscGVyIGNvZGUsCisJCQkJc3RtdF92 ZWNfaW5mbyBzdG10X2luZm8sCiAJCQkJdHJlZSB2ZWN0eXBlX291dCwgdHJlZSB2ZWN0eXBlX2lu LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtIHRyZWVfY29kZSAqY29kZTEs IGVudW0gdHJlZV9jb2RlICpjb2RlMiwKKwkJCQljb2RlX2hlbHBlciAqY29kZTEsCisJCQkJY29k ZV9oZWxwZXIgKmNvZGUyLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbnQgKm11 bHRpX3N0ZXBfY3Z0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2ZWM8dHJlZT4g KmludGVybV90eXBlcykKIHsKQEAgLTExOTAwLDcgKzExOTQwLDcgQEAgc3VwcG9ydGFibGVfd2lk ZW5pbmdfb3BlcmF0aW9uICh2ZWNfaW5mbyAqdmluZm8sCiAgIG9wdGFiIG9wdGFiMSwgb3B0YWIy OwogICB0cmVlIHZlY3R5cGUgPSB2ZWN0eXBlX2luOwogICB0cmVlIHdpZGVfdmVjdHlwZSA9IHZl Y3R5cGVfb3V0OwotICBlbnVtIHRyZWVfY29kZSBjMSwgYzI7CisgIGNvZGVfaGVscGVyIGMxPU1B WF9UUkVFX0NPREVTLCBjMj1NQVhfVFJFRV9DT0RFUzsKICAgaW50IGk7CiAgIHRyZWUgcHJldl90 eXBlLCBpbnRlcm1lZGlhdGVfdHlwZTsKICAgbWFjaGluZV9tb2RlIGludGVybWVkaWF0ZV9tb2Rl LCBwcmV2X21vZGU7CkBAIC0xMTkxMCw3ICsxMTk1MCw3IEBAIHN1cHBvcnRhYmxlX3dpZGVuaW5n X29wZXJhdGlvbiAodmVjX2luZm8gKnZpbmZvLAogICBpZiAobG9vcF9pbmZvKQogICAgIHZlY3Rf bG9vcCA9IExPT1BfVklORk9fTE9PUCAobG9vcF9pbmZvKTsKIAotICBzd2l0Y2ggKGNvZGUpCisg IHN3aXRjaCAoY29kZS5hc190cmVlX2NvZGUgKCkpCiAgICAgewogICAgIGNhc2UgV0lERU5fTVVM VF9FWFBSOgogICAgICAgLyogVGhlIHJlc3VsdCBvZiBhIHZlY3Rvcml6ZWQgd2lkZW5pbmcgb3Bl cmF0aW9uIHVzdWFsbHkgcmVxdWlyZXMKQEAgLTExOTUxLDggKzExOTkxLDkgQEAgc3VwcG9ydGFi bGVfd2lkZW5pbmdfb3BlcmF0aW9uICh2ZWNfaW5mbyAqdmluZm8sCiAJICAmJiAhbmVzdGVkX2lu X3ZlY3RfbG9vcF9wICh2ZWN0X2xvb3AsIHN0bXRfaW5mbykKIAkgICYmIHN1cHBvcnRhYmxlX3dp ZGVuaW5nX29wZXJhdGlvbiAodmluZm8sIFZFQ19XSURFTl9NVUxUX0VWRU5fRVhQUiwKIAkJCQkJ ICAgICBzdG10X2luZm8sIHZlY3R5cGVfb3V0LAotCQkJCQkgICAgIHZlY3R5cGVfaW4sIGNvZGUx LCBjb2RlMiwKLQkJCQkJICAgICBtdWx0aV9zdGVwX2N2dCwgaW50ZXJtX3R5cGVzKSkKKwkJCQkJ ICAgICB2ZWN0eXBlX2luLCBjb2RlMSwKKwkJCQkJICAgICBjb2RlMiwgbXVsdGlfc3RlcF9jdnQs CisJCQkJCSAgICAgaW50ZXJtX3R5cGVzKSkKICAgICAgICAgewogICAgICAgICAgIC8qIEVsZW1l bnRzIGluIGEgdmVjdG9yIHdpdGggdmVjdF91c2VkX2J5X3JlZHVjdGlvbiBwcm9wZXJ0eSBjYW5u b3QKICAgICAgICAgICAgICBiZSByZW9yZGVyZWQgaWYgdGhlIHVzZSBjaGFpbiB3aXRoIHRoaXMg cHJvcGVydHkgZG9lcyBub3QgaGF2ZSB0aGUKQEAgLTEyMDE1LDYgKzEyMDU2LDkgQEAgc3VwcG9y dGFibGVfd2lkZW5pbmdfb3BlcmF0aW9uICh2ZWNfaW5mbyAqdmluZm8sCiAgICAgICBjMiA9IFZF Q19VTlBBQ0tfRklYX1RSVU5DX0hJX0VYUFI7CiAgICAgICBicmVhazsKIAorICAgIGNhc2UgTUFY X1RSRUVfQ09ERVM6CisgICAgICBicmVhazsKKwogICAgIGRlZmF1bHQ6CiAgICAgICBnY2NfdW5y ZWFjaGFibGUgKCk7CiAgICAgfQpAQCAtMTIwMjIsMTMgKzEyMDY2LDE2IEBAIHN1cHBvcnRhYmxl X3dpZGVuaW5nX29wZXJhdGlvbiAodmVjX2luZm8gKnZpbmZvLAogICBpZiAoQllURVNfQklHX0VO RElBTiAmJiBjMSAhPSBWRUNfV0lERU5fTVVMVF9FVkVOX0VYUFIpCiAgICAgc3RkOjpzd2FwIChj MSwgYzIpOwogCisKICAgaWYgKGNvZGUgPT0gRklYX1RSVU5DX0VYUFIpCiAgICAgewogICAgICAg LyogVGhlIHNpZ25lZG5lc3MgaXMgZGV0ZXJtaW5lZCBmcm9tIG91dHB1dCBvcGVyYW5kLiAgKi8K LSAgICAgIG9wdGFiMSA9IG9wdGFiX2Zvcl90cmVlX2NvZGUgKGMxLCB2ZWN0eXBlX291dCwgb3B0 YWJfZGVmYXVsdCk7Ci0gICAgICBvcHRhYjIgPSBvcHRhYl9mb3JfdHJlZV9jb2RlIChjMiwgdmVj dHlwZV9vdXQsIG9wdGFiX2RlZmF1bHQpOworICAgICAgb3B0YWIxID0gb3B0YWJfZm9yX3RyZWVf Y29kZSAoYzEuYXNfdHJlZV9jb2RlICgpLCB2ZWN0eXBlX291dCwKKwkJCQkgICAgb3B0YWJfZGVm YXVsdCk7CisgICAgICBvcHRhYjIgPSBvcHRhYl9mb3JfdHJlZV9jb2RlIChjMi5hc190cmVlX2Nv ZGUgKCksIHZlY3R5cGVfb3V0LAorCQkJCSAgICBvcHRhYl9kZWZhdWx0KTsKICAgICB9Ci0gIGVs c2UgaWYgKENPTlZFUlRfRVhQUl9DT0RFX1AgKGNvZGUpCisgIGVsc2UgaWYgKENPTlZFUlRfRVhQ Ul9DT0RFX1AgKGNvZGUuYXNfdHJlZV9jb2RlICgpKQogCSAgICYmIFZFQ1RPUl9CT09MRUFOX1RZ UEVfUCAod2lkZV92ZWN0eXBlKQogCSAgICYmIFZFQ1RPUl9CT09MRUFOX1RZUEVfUCAodmVjdHlw ZSkKIAkgICAmJiBUWVBFX01PREUgKHdpZGVfdmVjdHlwZSkgPT0gVFlQRV9NT0RFICh2ZWN0eXBl KQpAQCAtMTIwNDEsOCArMTIwODgsOCBAQCBzdXBwb3J0YWJsZV93aWRlbmluZ19vcGVyYXRpb24g KHZlY19pbmZvICp2aW5mbywKICAgICB9CiAgIGVsc2UKICAgICB7Ci0gICAgICBvcHRhYjEgPSBv cHRhYl9mb3JfdHJlZV9jb2RlIChjMSwgdmVjdHlwZSwgb3B0YWJfZGVmYXVsdCk7Ci0gICAgICBv cHRhYjIgPSBvcHRhYl9mb3JfdHJlZV9jb2RlIChjMiwgdmVjdHlwZSwgb3B0YWJfZGVmYXVsdCk7 CisgICAgICBvcHRhYjEgPSBvcHRhYl9mb3JfdHJlZV9jb2RlIChjMS5hc190cmVlX2NvZGUgKCks IHZlY3R5cGUsIG9wdGFiX2RlZmF1bHQpOworICAgICAgb3B0YWIyID0gb3B0YWJfZm9yX3RyZWVf Y29kZSAoYzIuYXNfdHJlZV9jb2RlICgpLCB2ZWN0eXBlLCBvcHRhYl9kZWZhdWx0KTsKICAgICB9 CiAKICAgaWYgKCFvcHRhYjEgfHwgIW9wdGFiMikKQEAgLTEyMDUzLDggKzEyMTAwLDEyIEBAIHN1 cHBvcnRhYmxlX3dpZGVuaW5nX29wZXJhdGlvbiAodmVjX2luZm8gKnZpbmZvLAogICAgICAgIHx8 IChpY29kZTIgPSBvcHRhYl9oYW5kbGVyIChvcHRhYjIsIHZlY19tb2RlKSkgPT0gQ09ERV9GT1Jf bm90aGluZykKICAgICByZXR1cm4gZmFsc2U7CiAKLSAgKmNvZGUxID0gYzE7Ci0gICpjb2RlMiA9 IGMyOworICBpZiAoY29kZS5pc190cmVlX2NvZGUgKCkpCisgIHsKKyAgICAqY29kZTEgPSBjMTsK KyAgICAqY29kZTIgPSBjMjsKKyAgfQorCiAKICAgaWYgKGluc25fZGF0YVtpY29kZTFdLm9wZXJh bmRbMF0ubW9kZSA9PSBUWVBFX01PREUgKHdpZGVfdmVjdHlwZSkKICAgICAgICYmIGluc25fZGF0 YVtpY29kZTJdLm9wZXJhbmRbMF0ubW9kZSA9PSBUWVBFX01PREUgKHdpZGVfdmVjdHlwZSkpCkBA IC0xMjA3NSw3ICsxMjEyNiw3IEBAIHN1cHBvcnRhYmxlX3dpZGVuaW5nX29wZXJhdGlvbiAodmVj X2luZm8gKnZpbmZvLAogICBwcmV2X3R5cGUgPSB2ZWN0eXBlOwogICBwcmV2X21vZGUgPSB2ZWNf bW9kZTsKIAotICBpZiAoIUNPTlZFUlRfRVhQUl9DT0RFX1AgKGNvZGUpKQorICBpZiAoIUNPTlZF UlRfRVhQUl9DT0RFX1AgKCh0cmVlX2NvZGUpIGNvZGUpKQogICAgIHJldHVybiBmYWxzZTsKIAog ICAvKiBXZSBhc3N1bWUgaGVyZSB0aGF0IHRoZXJlIHdpbGwgbm90IGJlIG1vcmUgdGhhbiBNQVhf SU5URVJNX0NWVF9TVEVQUwpAQCAtMTIxMDYsOCArMTIxNTcsMTAgQEAgc3VwcG9ydGFibGVfd2lk ZW5pbmdfb3BlcmF0aW9uICh2ZWNfaW5mbyAqdmluZm8sCiAJfQogICAgICAgZWxzZQogCXsKLQkg IG9wdGFiMyA9IG9wdGFiX2Zvcl90cmVlX2NvZGUgKGMxLCBpbnRlcm1lZGlhdGVfdHlwZSwgb3B0 YWJfZGVmYXVsdCk7Ci0JICBvcHRhYjQgPSBvcHRhYl9mb3JfdHJlZV9jb2RlIChjMiwgaW50ZXJt ZWRpYXRlX3R5cGUsIG9wdGFiX2RlZmF1bHQpOworCSAgb3B0YWIzID0gb3B0YWJfZm9yX3RyZWVf Y29kZSAoYzEuYXNfdHJlZV9jb2RlICgpLCBpbnRlcm1lZGlhdGVfdHlwZSwKKwkJCQkJb3B0YWJf ZGVmYXVsdCk7CisJICBvcHRhYjQgPSBvcHRhYl9mb3JfdHJlZV9jb2RlIChjMi5hc190cmVlX2Nv ZGUgKCksIGludGVybWVkaWF0ZV90eXBlLAorCQkJCQlvcHRhYl9kZWZhdWx0KTsKIAl9CiAKICAg ICAgIGlmICghb3B0YWIzIHx8ICFvcHRhYjQKQEAgLTEyMTQyLDcgKzEyMTk1LDYgQEAgc3VwcG9y dGFibGVfd2lkZW5pbmdfb3BlcmF0aW9uICh2ZWNfaW5mbyAqdmluZm8sCiAgIHJldHVybiBmYWxz ZTsKIH0KIAotCiAvKiBGdW5jdGlvbiBzdXBwb3J0YWJsZV9uYXJyb3dpbmdfb3BlcmF0aW9uCiAK ICAgIENoZWNrIHdoZXRoZXIgYW4gb3BlcmF0aW9uIHJlcHJlc2VudGVkIGJ5IHRoZSBjb2RlIENP REUgaXMgYQpAQCAtMTIxNjYsNyArMTIyMTgsNyBAQCBzdXBwb3J0YWJsZV93aWRlbmluZ19vcGVy YXRpb24gKHZlY19pbmZvICp2aW5mbywKIGJvb2wKIHN1cHBvcnRhYmxlX25hcnJvd2luZ19vcGVy YXRpb24gKGVudW0gdHJlZV9jb2RlIGNvZGUsCiAJCQkJIHRyZWUgdmVjdHlwZV9vdXQsIHRyZWUg dmVjdHlwZV9pbiwKLQkJCQkgZW51bSB0cmVlX2NvZGUgKmNvZGUxLCBpbnQgKm11bHRpX3N0ZXBf Y3Z0LAorCQkJCSB0cmVlX2NvZGUqIF9jb2RlMSwgaW50ICptdWx0aV9zdGVwX2N2dCwKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlYzx0cmVlPiAqaW50ZXJtX3R5cGVzKQogewog ICBtYWNoaW5lX21vZGUgdmVjX21vZGU7CkBAIC0xMjE3OCw4ICsxMjIzMCw4IEBAIHN1cHBvcnRh YmxlX25hcnJvd2luZ19vcGVyYXRpb24gKGVudW0gdHJlZV9jb2RlIGNvZGUsCiAgIHRyZWUgaW50 ZXJtZWRpYXRlX3R5cGUsIHByZXZfdHlwZTsKICAgbWFjaGluZV9tb2RlIGludGVybWVkaWF0ZV9t b2RlLCBwcmV2X21vZGU7CiAgIGludCBpOwotICB1bnNpZ25lZCBIT1NUX1dJREVfSU5UIG5fZWx0 czsKICAgYm9vbCB1bnM7CisgIHRyZWVfY29kZSAqIGNvZGUxID0gKHRyZWVfY29kZSopIF9jb2Rl MTsKIAogICAqbXVsdGlfc3RlcF9jdnQgPSAwOwogICBzd2l0Y2ggKGNvZGUpCkBAIC0xMjE4OCw5 ICsxMjI0MCw4IEBAIHN1cHBvcnRhYmxlX25hcnJvd2luZ19vcGVyYXRpb24gKGVudW0gdHJlZV9j b2RlIGNvZGUsCiAgICAgICBjMSA9IFZFQ19QQUNLX1RSVU5DX0VYUFI7CiAgICAgICBpZiAoVkVD VE9SX0JPT0xFQU5fVFlQRV9QIChuYXJyb3dfdmVjdHlwZSkKIAkgICYmIFZFQ1RPUl9CT09MRUFO X1RZUEVfUCAodmVjdHlwZSkKLQkgICYmIFNDQUxBUl9JTlRfTU9ERV9QIChUWVBFX01PREUgKHZl Y3R5cGUpKQotCSAgJiYgVFlQRV9WRUNUT1JfU1VCUEFSVFMgKHZlY3R5cGUpLmlzX2NvbnN0YW50 ICgmbl9lbHRzKQotCSAgJiYgbl9lbHRzIDwgQklUU19QRVJfVU5JVCkKKwkgICYmIFRZUEVfTU9E RSAobmFycm93X3ZlY3R5cGUpID09IFRZUEVfTU9ERSAodmVjdHlwZSkKKwkgICYmIFNDQUxBUl9J TlRfTU9ERV9QIChUWVBFX01PREUgKHZlY3R5cGUpKSkKIAlvcHRhYjEgPSB2ZWNfcGFja19zYm9v bF90cnVuY19vcHRhYjsKICAgICAgIGVsc2UKIAlvcHRhYjEgPSBvcHRhYl9mb3JfdHJlZV9jb2Rl IChjMSwgdmVjdHlwZSwgb3B0YWJfZGVmYXVsdCk7CkBAIC0xMjI4MSw5ICsxMjMzMiw4IEBAIHN1 cHBvcnRhYmxlX25hcnJvd2luZ19vcGVyYXRpb24gKGVudW0gdHJlZV9jb2RlIGNvZGUsCiAJICA9 IGxhbmdfaG9va3MudHlwZXMudHlwZV9mb3JfbW9kZSAoaW50ZXJtZWRpYXRlX21vZGUsIHVucyk7 CiAgICAgICBpZiAoVkVDVE9SX0JPT0xFQU5fVFlQRV9QIChpbnRlcm1lZGlhdGVfdHlwZSkKIAkg ICYmIFZFQ1RPUl9CT09MRUFOX1RZUEVfUCAocHJldl90eXBlKQotCSAgJiYgU0NBTEFSX0lOVF9N T0RFX1AgKHByZXZfbW9kZSkKLQkgICYmIFRZUEVfVkVDVE9SX1NVQlBBUlRTIChpbnRlcm1lZGlh dGVfdHlwZSkuaXNfY29uc3RhbnQgKCZuX2VsdHMpCi0JICAmJiBuX2VsdHMgPCBCSVRTX1BFUl9V TklUKQorCSAgJiYgaW50ZXJtZWRpYXRlX21vZGUgPT0gcHJldl9tb2RlCisJICAmJiBTQ0FMQVJf SU5UX01PREVfUCAocHJldl9tb2RlKSkKIAlpbnRlcm1fb3B0YWIgPSB2ZWNfcGFja19zYm9vbF90 cnVuY19vcHRhYjsKICAgICAgIGVsc2UKIAlpbnRlcm1fb3B0YWIKZGlmZiAtLWdpdCBhL2djYy90 cmVlLXZlY3Rvcml6ZXIuaCBiL2djYy90cmVlLXZlY3Rvcml6ZXIuaAppbmRleCA2NDJlYjBhZWIy MTI2NGNkNzM2YTQ3OWIxZWMyNTM1N2FiZWYyOWNkLi41MGZmOGVlYWMxZTZiOTg1OTMwMmJkNzg0 ZjEwZWUzZDhmZjRiNGRjIDEwMDY0NAotLS0gYS9nY2MvdHJlZS12ZWN0b3JpemVyLmgKKysrIGIv Z2NjL3RyZWUtdmVjdG9yaXplci5oCkBAIC0yMTIwLDEzICsyMTIwLDEyIEBAIGV4dGVybiBib29s IHZlY3RfaXNfc2ltcGxlX3VzZSAodmVjX2luZm8gKiwgc3RtdF92ZWNfaW5mbywgc2xwX3RyZWUs CiAJCQkJZW51bSB2ZWN0X2RlZl90eXBlICosCiAJCQkJdHJlZSAqLCBzdG10X3ZlY19pbmZvICog PSBOVUxMKTsKIGV4dGVybiBib29sIHZlY3RfbWF5YmVfdXBkYXRlX3NscF9vcF92ZWN0eXBlIChz bHBfdHJlZSwgdHJlZSk7Ci1leHRlcm4gYm9vbCBzdXBwb3J0YWJsZV93aWRlbmluZ19vcGVyYXRp b24gKHZlY19pbmZvICosCi0JCQkJCSAgICBlbnVtIHRyZWVfY29kZSwgc3RtdF92ZWNfaW5mbywK LQkJCQkJICAgIHRyZWUsIHRyZWUsIGVudW0gdHJlZV9jb2RlICosCi0JCQkJCSAgICBlbnVtIHRy ZWVfY29kZSAqLCBpbnQgKiwKLQkJCQkJICAgIHZlYzx0cmVlPiAqKTsKK2V4dGVybiBib29sIHN1 cHBvcnRhYmxlX3dpZGVuaW5nX29wZXJhdGlvbiAodmVjX2luZm8qLCBjb2RlX2hlbHBlciwKKwkJ CQkJICAgIHN0bXRfdmVjX2luZm8sIHRyZWUsIHRyZWUsCisJCQkJCSAgICBjb2RlX2hlbHBlcios IGNvZGVfaGVscGVyKiwKKwkJCQkJICAgIGludCosIHZlYzx0cmVlPiAqKTsKIGV4dGVybiBib29s IHN1cHBvcnRhYmxlX25hcnJvd2luZ19vcGVyYXRpb24gKGVudW0gdHJlZV9jb2RlLCB0cmVlLCB0 cmVlLAotCQkJCQkgICAgIGVudW0gdHJlZV9jb2RlICosIGludCAqLAorCQkJCQkgICAgIHRyZWVf Y29kZSAqLCBpbnQgKiwKIAkJCQkJICAgICB2ZWM8dHJlZT4gKik7CiAKIGV4dGVybiB1bnNpZ25l ZCByZWNvcmRfc3RtdF9jb3N0IChzdG10X3ZlY3Rvcl9mb3JfY29zdCAqLCBpbnQsCmRpZmYgLS1n aXQgYS9nY2MvdHJlZS5oIGIvZ2NjL3RyZWUuaAppbmRleCA4ODQ0NDcxZTlhNWYyYzhkZTkzYmI0 MTFlMWM2MzVhNDUxZDNkMjM5Li5jNmUxYTYzMWIxNDkzMGQ2OGJkNWQ4NGJmZjY2MGU3Mjg3Mzhm ODNjIDEwMDY0NAotLS0gYS9nY2MvdHJlZS5oCisrKyBiL2djYy90cmVlLmgKQEAgLTY1OTEsNiAr NjU5MSw1OCBAQCBleHRlcm4gdW5zaWduZWQgZm5kZWNsX2RlYWxsb2NfYXJnbm8gKHRyZWUpOwog ICAgaWYgbm9ubnVsbCwgc2V0IHRoZSBzZWNvbmQgYXJndW1lbnQgdG8gdGhlIHJlZmVyZW5jZWQg ZW5jbG9zaW5nCiAgICBvYmplY3Qgb3IgcG9pbnRlci4gIE90aGVyd2lzZSByZXR1cm4gbnVsbC4g ICovCiBleHRlcm4gdHJlZSBnZXRfYXR0cl9ub25zdHJpbmdfZGVjbCAodHJlZSwgdHJlZSAqID0g TlVMTCk7CisvKiBIZWxwZXIgdG8gdHJhbnNwYXJlbnRseSBhbGxvdyB0cmVlIGNvZGVzIGFuZCBi dWlsdGluIGZ1bmN0aW9uIGNvZGVzCisgICBleGlzdCBpbiBvbmUgc3RvcmFnZSBlbnRpdHkuICAq LworY2xhc3MgY29kZV9oZWxwZXIKK3sKK3B1YmxpYzoKKyAgY29kZV9oZWxwZXIgKCkge30KKyAg Y29kZV9oZWxwZXIgKHRyZWVfY29kZSBjb2RlKSA6IHJlcCAoKGludCkgY29kZSkge30KKyAgY29k ZV9oZWxwZXIgKGNvbWJpbmVkX2ZuIGZuKSA6IHJlcCAoLShpbnQpIGZuKSB7fQorICBjb2RlX2hl bHBlciAoaW50ZXJuYWxfZm4gZm4pIDogcmVwICgtKGludCkgYXNfY29tYmluZWRfZm4gKGZuKSkg e30KKyAgZXhwbGljaXQgb3BlcmF0b3IgdHJlZV9jb2RlICgpIGNvbnN0IHsgcmV0dXJuICh0cmVl X2NvZGUpIHJlcDsgfQorICBleHBsaWNpdCBvcGVyYXRvciBjb21iaW5lZF9mbiAoKSBjb25zdCB7 IHJldHVybiAoY29tYmluZWRfZm4pIC1yZXA7IH0KKyAgZXhwbGljaXQgb3BlcmF0b3IgaW50ZXJu YWxfZm4gKCkgY29uc3Q7CisgIGV4cGxpY2l0IG9wZXJhdG9yIGJ1aWx0X2luX2Z1bmN0aW9uICgp IGNvbnN0OworICBib29sIGlzX3RyZWVfY29kZSAoKSBjb25zdCB7IHJldHVybiByZXAgPiAwOyB9 CisgIGJvb2wgaXNfZm5fY29kZSAoKSBjb25zdCB7IHJldHVybiByZXAgPCAwOyB9CisgIGJvb2wg aXNfaW50ZXJuYWxfZm4gKCkgY29uc3Q7CisgIGJvb2wgaXNfYnVpbHRpbl9mbiAoKSBjb25zdDsK KyAgZW51bSB0cmVlX2NvZGUgYXNfdHJlZV9jb2RlICgpIGNvbnN0IHsgcmV0dXJuIGlzX3RyZWVf Y29kZSAoKSA/CisgICAgKHRyZWVfY29kZSkqIHRoaXMgOiBNQVhfVFJFRV9DT0RFUzsgfQorICBj b21iaW5lZF9mbiBhc19mbl9jb2RlICgpIGNvbnN0IHsgcmV0dXJuIGlzX2ZuX2NvZGUgKCkgPyAo Y29tYmluZWRfZm4pICp0aGlzCisgICAgOiBDRk5fTEFTVDt9CisgIGludCBnZXRfcmVwICgpIGNv bnN0IHsgcmV0dXJuIHJlcDsgfQorICBib29sIG9wZXJhdG9yPT0gKGNvbnN0IGNvZGVfaGVscGVy ICZvdGhlcikgeyByZXR1cm4gcmVwID09IG90aGVyLnJlcDsgfQorICBib29sIG9wZXJhdG9yIT0g KGNvbnN0IGNvZGVfaGVscGVyICZvdGhlcikgeyByZXR1cm4gcmVwICE9IG90aGVyLnJlcDsgfQor ICBib29sIG9wZXJhdG9yPT0gKHRyZWVfY29kZSBjKSB7IHJldHVybiByZXAgPT0gY29kZV9oZWxw ZXIgKGMpLnJlcDsgfQorICBib29sIG9wZXJhdG9yIT0gKHRyZWVfY29kZSBjKSB7IHJldHVybiBy ZXAgIT0gY29kZV9oZWxwZXIgKGMpLnJlcDsgfQorCitwcml2YXRlOgorICBpbnQgcmVwOworfTsK KworaW5saW5lIGNvZGVfaGVscGVyOjpvcGVyYXRvciBpbnRlcm5hbF9mbiAoKSBjb25zdAorewor ICByZXR1cm4gYXNfaW50ZXJuYWxfZm4gKGNvbWJpbmVkX2ZuICgqdGhpcykpOworfQorCitpbmxp bmUgY29kZV9oZWxwZXI6Om9wZXJhdG9yIGJ1aWx0X2luX2Z1bmN0aW9uICgpIGNvbnN0Cit7Cisg IHJldHVybiBhc19idWlsdGluX2ZuIChjb21iaW5lZF9mbiAoKnRoaXMpKTsKK30KKworaW5saW5l IGJvb2wKK2NvZGVfaGVscGVyOjppc19pbnRlcm5hbF9mbiAoKSBjb25zdAoreworICByZXR1cm4g aXNfZm5fY29kZSAoKSAmJiBpbnRlcm5hbF9mbl9wIChjb21iaW5lZF9mbiAoKnRoaXMpKTsKK30K KworaW5saW5lIGJvb2wKK2NvZGVfaGVscGVyOjppc19idWlsdGluX2ZuICgpIGNvbnN0Cit7Cisg IHJldHVybiBpc19mbl9jb2RlICgpICYmIGJ1aWx0aW5fZm5fcCAoY29tYmluZWRfZm4gKCp0aGlz KSk7Cit9CiAKIGV4dGVybiBpbnQgZ2V0X3RhcmdldF9jbG9uZV9hdHRyX2xlbiAodHJlZSk7CiAK LS0gCjIuMTcuMQoK --_004_DB9PR08MB660300446C4580E5B601CAD4F5EC9DB9PR08MB6603eurp_ Content-Type: application/octet-stream; name="0002-Refactor-widen_plus-as-internal_fn.patch" Content-Description: 0002-Refactor-widen_plus-as-internal_fn.patch Content-Disposition: attachment; filename="0002-Refactor-widen_plus-as-internal_fn.patch"; size=22720; creation-date="Wed, 13 Apr 2022 15:49:37 GMT"; modification-date="Wed, 13 Apr 2022 15:52:38 GMT" Content-Transfer-Encoding: base64 RnJvbSA0ZWVlZjZjZDg5YTBhNjY1YTU3MGI1NmU3ZTY4ZmFlOWM1MGE0MGE4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2VsIEh1dHRvbiA8am9lbC5odXR0b25AYXJtLmNvbT4KRGF0 ZTogV2VkLCAyNiBKYW4gMjAyMiAxNDowMDoxNyArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMi8zXSBS ZWZhY3RvciB3aWRlbl9wbHVzIGFzIGludGVybmFsX2ZuCgpUaGlzIHBhdGNoIHJlcGxhY2VzIHRo ZSBleGlzdGluZyB0cmVlX2NvZGUgd2lkZW5fcGx1cyBhbmQgd2lkZW5fbWludXMKcGF0dGVybnMg d2l0aCBpbnRlcm5hbF9mbiB2ZXJzaW9ucy4KCkRFRl9JTlRFUk5BTF9PUFRBQl9NVUxUSV9GTiBp cyBsaWtlIERFRl9JTlRFUk5BTF9PUFRBQl9GTiBleGNlcHQgaXQgcHJvdmlkZXMgY29udmVuaWVu Y2Ugd3JhcHBlcnMgZm9yIGRlZmluaW5nIGNvbnZlcnNpb25zIHRoYXQgcmVxdWlyZSBhIGhpL2xv IHNwbGl0LCBsaWtlIHdpZGVuaW5nIGFuZCBuYXJyb3dpbmcgb3BlcmF0aW9ucy4gIEVhY2ggZGVm aW5pdGlvbiBmb3IgPE5BTUU+IHdpbGwgcmVxdWlyZSBhbiBvcHRhYiBuYW1lZCA8T1BUQUI+IGFu ZCB0d28gb3RoZXIgb3B0YWJzIHRoYXQgeW91IHNwZWNpZnkgZm9yIHNpZ25lZCBhbmQgdW5zaWdu ZWQuIFRoZSBoaS9sbyBwYWlyIGlzIG5lY2Vzc2FyeSBiZWNhdXNlIHRoZSB3aWRlbmluZyBvcGVy YXRpb25zIHRha2UgbiBuYXJyb3cgZWxlbWVudHMgYXMgaW5wdXRzIGFuZCByZXR1cm4gbi8yIHdp ZGUgZWxlbWVudHMgYXMgb3V0cHV0cy4gVGhlICdsbycgb3BlcmF0aW9uIG9wZXJhdGVzIG9uIHRo ZSBmaXJzdCBuLzIgZWxlbWVudHMgb2YgaW5wdXQuIFRoZSAnaGknIG9wZXJhdGlvbiBvcGVyYXRl cyBvbiB0aGUgc2Vjb25kIG4vMiBlbGVtZW50cyBvZiBpbnB1dC4gRGVmaW5pbmcgYW4gaW50ZXJu YWxfZm4gYWxvbmcgd2l0aCBoaS9sbyB2YXJpYXRpb25zIGFsbG93cyBhIHNpbmdsZSBpbnRlcm5h bCBmdW5jdGlvbiB0byBiZSByZXR1cm5lZCBmcm9tIGEgdmVjdF9yZWNvZyBmdW5jdGlvbiB0aGF0 IHdpbGwgbGF0ZXIgYmUgZXhwYW5kZWQgdG8gaGkvbG8uCgpERUZfSU5URVJOQUxfT1BUQUJfTVVM VElfRk4gaXMgdXNlZCBpbiBpbnRlcm5hbC1mbi5kZWYgdG8gcmVnaXN0ZXIgYSB3aWRlbmluZyBp bnRlcm5hbF9mbi4gSXQgaXMgZGVmaW5lZCBkaWZmZXJlbnRseSBpbiBkaWZmZXJlbnQgcGxhY2Vz IGFuZCBpbnRlcm5hbC1mbi5kZWYgaXMgc291cmNlZCBmcm9tIHRob3NlIHBsYWNlcyBzbyB0aGUg cGFyYW1ldGVycyBnaXZlbiBjYW4gYmUgcmV1c2VkLgogIGludGVybmFsLWZuLmM6IGRlZmluZWQg dG8gZXhwYW5kIHRvIGhpL2xvIHNpZ25lZC91bnNpZ25lZCBvcHRhYnMsIGxhdGVyIGRlZmluZWQg dG8gZ2VuZXJhdGUgdGhlICAnZXhwYW5kXycgZnVuY3Rpb25zIGZvciB0aGUgaGkvbG8gdmVyc2lv bnMgb2YgdGhlIGZuLgogIGludGVybmFsLWZuLmRlZjogZGVmaW5lZCB0byBpbnZva2UgREVGX0lO VEVSTkFMX09QVEFCX0ZOIGZvciB0aGUgb3JpZ2luYWwgYW5kIGhpL2xvIHZhcmlhbnRzIG9mIHRo ZSBpbnRlcm5hbF9mbgoKIEZvciBleGFtcGxlOgogSUZOX1ZFQ19XSURFTl9QTFVTIC0+IElGTl9W RUNfV0lERU5fUExVU19ISSwgSUZOX1ZFQ19XSURFTl9QTFVTX0xPCmZvciBhYXJjaDY0OiBJRk5f VkVDX1dJREVOX1BMVVNfSEkgICAtPiB2ZWNfd2lkZW5fPHN1PmFkZGxfaGlfPG1vZGU+IC0+ICh1 L3MpYWRkbDIKICAgICAgICAgICAgICAgICAgICAgICBJRk5fVkVDX1dJREVOX1BMVVNfTE8gIC0+ IHZlY193aWRlbl88c3U+YWRkbF9sb188bW9kZT4gLT4gKHUvcylhZGRsCgpUaGlzIGdpdmVzIHRo ZSBzYW1lIGZ1bmN0aW9uYWxpdHkgYXMgdGhlIHByZXZpb3VzIFdJREVOX1BMVVMvV0lERU5fTUlO VVMgdHJlZSBjb2RlcyB3aGljaCBhcmUgZXhwYW5kZWQgaW50byBWRUNfV0lERU5fUExVU19MTywg VkVDX1dJREVOX1BMVVNfSEkuCgpnY2MvQ2hhbmdlTG9nOgoKMjAyMi0wNC0xMyAgSm9lbCBIdXR0 b24gIDxqb2VsLmh1dHRvbkBhcm0uY29tPgoyMDIyLTA0LTEzICBUYW1hciBDaHJpc3RpbmEgIDx0 YW1hci5jaHJpc3RpbmFAYXJtLmNvbT4KCgkqIGludGVybmFsLWZuLmNjIChJTkNMVURFX01BUCk6 IEluY2x1ZGUgbWFwcyBmb3IgdXNlIGluIG9wdGFiCiAgICBsb29rdXAuCgkoREVGX0lOVEVSTkFM X09QVEFCX01VTFRJX0ZOKTogTWFjcm8gdG8gZGVmaW5lIGFuIGludGVybmFsX2ZuIHRoYXQKICAg IGV4cGFuZHMgaW50byBtdWx0aXBsZSBpbnRlcm5hbF9mbnMgKGZvciB3aWRlbmluZykuCgkoaWZu X2NtcCk6IEZ1bmN0aW9uIHRvIGNvbXBhcmUgaWZuJ3MgZm9yIHNvcnRpbmcvc2VhcmNoaW5nLgoJ KGxvb2t1cF9tdWx0aV9pZm5fb3B0YWIpOiBBZGQgbG9va3VwIGZ1bmN0aW9uLgoJKGxvb2t1cF9t dWx0aV9pbnRlcm5hbF9mbik6IEFkZCBsb29rdXAgZnVuY3Rpb24uCgkoY29tbXV0YXRpdmVfYmlu YXJ5X2ZuX3ApOiBBZGQgd2lkZW5fcGx1cyBmbidzLgoJKiBpbnRlcm5hbC1mbi5kZWYgKERFRl9J TlRFUk5BTF9PUFRBQl9NVUxUSV9GTik6IERlZmluZSB3aWRlbmluZwogICAgcGx1cyxtaW51cyBm dW5jdGlvbnMuCgkoVkVDX1dJREVOX1BMVVMpOiBSZXBsYWNlbWVudCBmb3IgVkVDX1dJREVOX1BM VVMgdHJlZSBjb2RlLgoJKFZFQ19XSURFTl9NSU5VUyk6IFJlcGxhY2VtZW50IGZvciBWRUNfV0lE RU5fTUlOVVMgdHJlZSBjb2RlLgoJKiBpbnRlcm5hbC1mbi5oIChHQ0NfSU5URVJOQUxfRk5fSCk6 IEFkZCBoZWFkZXJzLgoJKGxvb2t1cF9tdWx0aV9pZm5fb3B0YWIpOiBBZGQgcHJvdG90eXBlLgoJ KGxvb2t1cF9tdWx0aV9pbnRlcm5hbF9mbik6IEFkZCBwcm90b3R5cGUuCgkqIG9wdGFicy5jYyAo Y29tbXV0YXRpdmVfb3B0YWJfcCk6IEFkZCB3aWRlbmluZyBwbHVzLCBtaW51cyBvcHRhYnMuCgkq IG9wdGFicy5kZWYgKE9QVEFCX0NEKTogd2lkZW4gYWRkLCBzdWIgb3B0YWJzCgkqIHRyZWUtY29y ZS5oIChFQ0ZfTVVMVEkpOiBGbGFnIHRvIGluZGljYXRlIGlmIGEgZnVuY3Rpb24gZGVjYXlzCiAg ICBpbnRvIGhpL2xvIHBhcnRzLgoJKiB0cmVlLXZlY3QtcGF0dGVybnMuY2MgKHZlY3RfcmVjb2df d2lkZW5fb3BfcGF0dGVybik6IFN1cHBvcnQKICAgIHBhdHRlcm5zIHdpdGggYSBoaS9sbyBzcGxp dC4KCSh2ZWN0X3JlY29nX3dpZGVuX3BsdXNfcGF0dGVybik6IFJlZmFjdG9yIHRvIHJldHVybgog ICAgSUZOX1ZFQ1RfV0lERU5fUExVUy4KCSh2ZWN0X3JlY29nX3dpZGVuX21pbnVzX3BhdHRlcm4p OiBSZWZhY3RvciB0byByZXR1cm4gbmV3CiAgICBJRk5fVkVDX1dJREVOX01JTlVTLgoJKiB0cmVl LXZlY3Qtc3RtdHMuY2MgKHZlY3Rvcml6YWJsZV9jb252ZXJzaW9uKTogQWRkIHdpZGVuIHBsdXMv bWludXMKICAgIGlmbgogICAgc3VwcG9ydC4KCShzdXBwb3J0YWJsZV93aWRlbmluZ19vcGVyYXRp b24pOiBBZGQgd2lkZW4gcGx1cy9taW51cyBpZm4gc3VwcG9ydC4KCmdjYy90ZXN0c3VpdGUvQ2hh bmdlTG9nOgoKCSogZ2NjLnRhcmdldC9hYXJjaDY0L3ZlY3Qtd2lkZW4tYWRkLmM6IFRlc3QgdGhh dCBuZXcKICAgIElGTl9WRUNfV0lERU5fUExVUyBpcyBiZWluZyB1c2VkLgoJKiBnY2MudGFyZ2V0 L2FhcmNoNjQvdmVjdC13aWRlbi1zdWIuYzogVGVzdCB0aGF0IG5ldwogICAgSUZOX1ZFQ19XSURF Tl9NSU5VUyBpcyBiZWluZyB1c2VkLgotLS0KIGdjYy9pbnRlcm5hbC1mbi5jYyAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8IDEwNyArKysrKysrKysrKysrKysrKysKIGdjYy9pbnRlcm5hbC1m bi5kZWYgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyMyArKysrCiBnY2MvaW50ZXJuYWwt Zm4uaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDcgKysKIGdjYy9vcHRhYnMuY2Mg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMiArLQogZ2NjL29wdGFicy5kZWYg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICsKIC4uLi9nY2MudGFyZ2V0L2Fh cmNoNjQvdmVjdC13aWRlbi1hZGQuYyAgICAgICB8ICAgNCArLQogLi4uL2djYy50YXJnZXQvYWFy Y2g2NC92ZWN0LXdpZGVuLXN1Yi5jICAgICAgIHwgICA0ICstCiBnY2MvdHJlZS1jb3JlLmggICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQgKwogZ2NjL3RyZWUtdmVjdC1wYXR0ZXJu cy5jYyAgICAgICAgICAgICAgICAgICAgIHwgIDM3ICsrKystLQogZ2NjL3RyZWUtdmVjdC1zdG10 cy5jYyAgICAgICAgICAgICAgICAgICAgICAgIHwgIDYwICsrKysrKysrKy0KIDEwIGZpbGVzIGNo YW5nZWQsIDI0NCBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9n Y2MvaW50ZXJuYWwtZm4uY2MgYi9nY2MvaW50ZXJuYWwtZm4uY2MKaW5kZXggOGIxNzMzZTIwYzQ0 NTVlNGU4YzM4M2M5MmZlODU5ZjQyNTZjYWU2OS4uZTk1YjEzYWY4ODRmNjc5OTBhZDQzYzI4Njk5 MGEzNTFlMmJkNjQxYiAxMDA2NDQKLS0tIGEvZ2NjL2ludGVybmFsLWZuLmNjCisrKyBiL2djYy9p bnRlcm5hbC1mbi5jYwpAQCAtMTcsNiArMTcsNyBAQCBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YSBjb3B5IG9mIHRoZSBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQogYWxvbmcgd2l0aCBHQ0M7 IHNlZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5vdCBzZWUKIDxodHRwOi8vd3d3LmdudS5vcmcv bGljZW5zZXMvPi4gICovCiAKKyNkZWZpbmUgSU5DTFVERV9NQVAKICNpbmNsdWRlICJjb25maWcu aCIKICNpbmNsdWRlICJzeXN0ZW0uaCIKICNpbmNsdWRlICJjb3JldHlwZXMuaCIKQEAgLTcwLDYg KzcxLDI2IEBAIGNvbnN0IGludCBpbnRlcm5hbF9mbl9mbGFnc19hcnJheVtdID0gewogICAwCiB9 OwogCitjb25zdCBlbnVtIGludGVybmFsX2ZuIGludGVybmFsX2ZuX2hpbG9fa2V5c19hcnJheVtd ID0geworI3VuZGVmIERFRl9JTlRFUk5BTF9PUFRBQl9NVUxUSV9GTgorI2RlZmluZSBERUZfSU5U RVJOQUxfT1BUQUJfTVVMVElfRk4oTkFNRSwgRkxBR1MsIE9QVEFCLCBTT1BUQUIsIFVPUFRBQiwg VFlQRSkgXAorICBJRk5fIyNOQU1FIyNfTE8sIFwKKyAgSUZOXyMjTkFNRSMjX0hJLAorI2luY2x1 ZGUgImludGVybmFsLWZuLmRlZiIKKyAgSUZOX0xBU1QKKyN1bmRlZiBERUZfSU5URVJOQUxfT1BU QUJfTVVMVElfRk4KK307CisKK2NvbnN0IG9wdGFiIGludGVybmFsX2ZuX2hpbG9fdmFsdWVzX2Fy cmF5W10gPSB7CisjdW5kZWYgREVGX0lOVEVSTkFMX09QVEFCX01VTFRJX0ZOCisjZGVmaW5lIERF Rl9JTlRFUk5BTF9PUFRBQl9NVUxUSV9GTihOQU1FLCBGTEFHUywgT1BUQUIsIFNPUFRBQiwgVU9Q VEFCLCBUWVBFKSBcCisgIFNPUFRBQiMjX2xvX29wdGFiLCBVT1BUQUIjI19sb19vcHRhYiwgXAor ICBTT1BUQUIjI19oaV9vcHRhYiwgVU9QVEFCIyNfaGlfb3B0YWIsCisjaW5jbHVkZSAiaW50ZXJu YWwtZm4uZGVmIgorICB1bmtub3duX29wdGFiLCB1bmtub3duX29wdGFiCisjdW5kZWYgREVGX0lO VEVSTkFMX09QVEFCX01VTFRJX0ZOCit9OworCiAvKiBSZXR1cm4gdGhlIGludGVybmFsIGZ1bmN0 aW9uIGNhbGxlZCBOQU1FLCBvciBJRk5fTEFTVCBpZiB0aGVyZSdzCiAgICBubyBzdWNoIGZ1bmN0 aW9uLiAgKi8KIApAQCAtOTAsNiArMTExLDYyIEBAIGxvb2t1cF9pbnRlcm5hbF9mbiAoY29uc3Qg Y2hhciAqbmFtZSkKICAgcmV0dXJuIGVudHJ5ID8gKmVudHJ5IDogSUZOX0xBU1Q7CiB9CiAKK3N0 YXRpYyBpbnQKK2lmbl9jbXAgKGNvbnN0IHZvaWQgKmFfLCBjb25zdCB2b2lkICpiXykKK3sKKyAg dHlwZWRlZiBzdGQ6OnBhaXI8ZW51bSBpbnRlcm5hbF9mbiwgdW5zaWduZWQ+IGlmbl9wYWlyOwor ICBhdXRvICphID0gKGNvbnN0IHN0ZDo6cGFpcjxpZm5fcGFpciwgb3B0YWI+ICopYV87CisgIGF1 dG8gKmIgPSAoY29uc3Qgc3RkOjpwYWlyPGlmbl9wYWlyLCBvcHRhYj4gKiliXzsKKyAgcmV0dXJu IChpbnQpIChhLT5maXJzdC5maXJzdCkgLSAoYi0+Zmlyc3QuZmlyc3QpOworfQorCisvKiBSZXR1 cm4gdGhlIG9wdGFiIGJlbG9uZ2luZyB0byB0aGUgZ2l2ZW4gaW50ZXJuYWwgZnVuY3Rpb24gTkFN RSBmb3IgdGhlIGdpdmVuCisgICBTSUdOIG9yIHVua25vd25fb3B0YWIuICAqLworCitvcHRhYgor bG9va3VwX211bHRpX2lmbl9vcHRhYiAoZW51bSBpbnRlcm5hbF9mbiBmbiwgdW5zaWduZWQgc2ln bikKK3sKKyAgdHlwZWRlZiBzdGQ6OnBhaXI8ZW51bSBpbnRlcm5hbF9mbiwgdW5zaWduZWQ+IGlm bl9wYWlyOworICB0eXBlZGVmIGF1dG9fdmVjIDxzdGQ6OnBhaXI8aWZuX3BhaXIsIG9wdGFiPj5m bl90b19vcHRhYl9tYXBfdHlwZTsKKyAgc3RhdGljIGZuX3RvX29wdGFiX21hcF90eXBlICpmbl90 b19vcHRhYl9tYXA7CisKKyAgaWYgKCFmbl90b19vcHRhYl9tYXApCisgICAgeworICAgICAgdW5z aWduZWQgbnVtCisJPSBzaXplb2YgKGludGVybmFsX2ZuX2hpbG9fa2V5c19hcnJheSkgLyBzaXpl b2YgKGVudW0gaW50ZXJuYWxfZm4pOworICAgICAgZm5fdG9fb3B0YWJfbWFwID0gbmV3IGZuX3Rv X29wdGFiX21hcF90eXBlICgpOworICAgICAgZm9yICh1bnNpZ25lZCBpbnQgaSA9IDA7IGkgPCBu dW0gLSAxOyArK2kpCisJeworCSAgZW51bSBpbnRlcm5hbF9mbiBmbiA9IGludGVybmFsX2ZuX2hp bG9fa2V5c19hcnJheVtpXTsKKwkgIG9wdGFiIHYxID0gaW50ZXJuYWxfZm5faGlsb192YWx1ZXNf YXJyYXlbMippXTsKKwkgIG9wdGFiIHYyID0gaW50ZXJuYWxfZm5faGlsb192YWx1ZXNfYXJyYXlb MippICsgMV07CisJICBpZm5fcGFpciBrZXkxIChmbiwgMCk7CisJICBmbl90b19vcHRhYl9tYXAt PnNhZmVfcHVzaCAoe2tleTEsIHYxfSk7CisJICBpZm5fcGFpciBrZXkyIChmbiwgMSk7CisJICBm bl90b19vcHRhYl9tYXAtPnNhZmVfcHVzaCAoe2tleTIsIHYyfSk7CisJfQorCWZuX3RvX29wdGFi X21hcC0+cXNvcnQoaWZuX2NtcCk7CisgICAgfQorCisgIGlmbl9wYWlyIG5ld19wYWlyIChmbiwg c2lnbiA/IDEgOiAwKTsKKyAgb3B0YWIgdG1wOworICBzdGQ6OnBhaXI8aWZuX3BhaXIsb3B0YWI+ IHBhaXJfd3JhcCAobmV3X3BhaXIsIHRtcCk7CisgIGF1dG8gZW50cnkgPSBmbl90b19vcHRhYl9t YXAtPmJzZWFyY2ggKCZwYWlyX3dyYXAsIGlmbl9jbXApOworICByZXR1cm4gZW50cnkgIT0gZm5f dG9fb3B0YWJfbWFwLT5lbmQgKCkgPyBlbnRyeS0+c2Vjb25kIDogdW5rbm93bl9vcHRhYjsKK30K KworZXh0ZXJuIHZvaWQKK2xvb2t1cF9tdWx0aV9pbnRlcm5hbF9mbiAoZW51bSBpbnRlcm5hbF9m biBpZm4sIGVudW0gaW50ZXJuYWxfZm4gKmxvLAorCQkJICBlbnVtIGludGVybmFsX2ZuICpoaSkK K3sKKyAgaW50IGVjZl9mbGFncyA9IGludGVybmFsX2ZuX2ZsYWdzIChpZm4pOworICBnY2NfYXNz ZXJ0IChlY2ZfZmxhZ3MgJiBFQ0ZfTVVMVEkpOworCisgICpsbyA9IGludGVybmFsX2ZuIChpZm4g KyAxKTsKKyAgKmhpID0gaW50ZXJuYWxfZm4gKGlmbiArIDIpOworfQorCisKIC8qIEZuc3BlYyBv ZiBlYWNoIGludGVybmFsIGZ1bmN0aW9uLCBpbmRleGVkIGJ5IGZ1bmN0aW9uIG51bWJlci4gICov CiBjb25zdF90cmVlIGludGVybmFsX2ZuX2Zuc3BlY19hcnJheVtJRk5fTEFTVCArIDFdOwogCkBA IC0zOTA2LDYgKzM5ODMsOSBAQCBjb21tdXRhdGl2ZV9iaW5hcnlfZm5fcCAoaW50ZXJuYWxfZm4g Zm4pCiAgICAgY2FzZSBJRk5fVUJTQU5fQ0hFQ0tfTVVMOgogICAgIGNhc2UgSUZOX0FERF9PVkVS RkxPVzoKICAgICBjYXNlIElGTl9NVUxfT1ZFUkZMT1c6CisgICAgY2FzZSBJRk5fVkVDX1dJREVO X1BMVVM6CisgICAgY2FzZSBJRk5fVkVDX1dJREVOX1BMVVNfTE86CisgICAgY2FzZSBJRk5fVkVD X1dJREVOX1BMVVNfSEk6CiAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIGRlZmF1bHQ6CkBAIC0z OTkxLDYgKzQwNzEsMzIgQEAgc2V0X2Vkb21fc3VwcG9ydGVkX3AgKHZvaWQpCiAjZW5kaWYKIH0K IAorI3VuZGVmIERFRl9JTlRFUk5BTF9PUFRBQl9NVUxUSV9GTgorI2RlZmluZSBERUZfSU5URVJO QUxfT1BUQUJfTVVMVElfRk4oQ09ERSwgRkxBR1MsIE9QVEFCLCBTT1BUQUIsIFVPUFRBQiwgVFlQ RSkgXAorICBzdGF0aWMgdm9pZAkJCQkJCSAgICAgICAgXAorICBleHBhbmRfIyNDT0RFIChpbnRl cm5hbF9mbiwgZ2NhbGwgKikJCSAgICAgICAgICAgICAgICBcCisgIHsJCQkJCQkJICAgICAgICBc CisgICAgZ2NjX3VucmVhY2hhYmxlICgpOwkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXAorICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwKKyAgc3RhdGljIHZvaWQJCQkJCQkgICAgICAgIFwKKyAgZXhw YW5kXyMjQ09ERSMjX0xPIChpbnRlcm5hbF9mbiBmbiwgZ2NhbGwgKnN0bXQpCSAgICAgICAgXAor ICB7CQkJCQkJCSAgICAgICAgXAorICAgIHRyZWUgdHkgPSBUUkVFX1RZUEUgKGdpbXBsZV9nZXRf bGhzIChzdG10KSk7ICAgICAgICAgICAgICAgIFwKKyAgICBpZiAoIVRZUEVfVU5TSUdORUQgKHR5 KSkgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCisgICAgICBleHBhbmRfIyNU WVBFIyNfb3B0YWJfZm4gKGZuLCBzdG10LCBTT1BUQUIjI19sbyMjX29wdGFiKTsJXAorICAgIGVs c2UgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwKKyAgICAgIGV4cGFuZF8jI1RZUEUjI19vcHRhYl9mbiAoZm4sIHN0bXQsIFVPUFRBQiMjX2xv IyNfb3B0YWIpOwlcCisgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgXAorICBzdGF0aWMgdm9pZAkJCQkJCSAgICAgICAgXAorICBl eHBhbmRfIyNDT0RFIyNfSEkgKGludGVybmFsX2ZuIGZuLCBnY2FsbCAqc3RtdCkJICAgICAgICBc CisgIHsJCQkJCQkJICAgICAgICBcCisgICAgdHJlZSB0eSA9IFRSRUVfVFlQRSAoZ2ltcGxlX2dl dF9saHMgKHN0bXQpKTsgICAgICAgICAgICAgICAgXAorICAgIGlmICghVFlQRV9VTlNJR05FRCAo dHkpKSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKKyAgICAgIGV4cGFuZF8j I1RZUEUjI19vcHRhYl9mbiAoZm4sIHN0bXQsIFNPUFRBQiMjX2hpIyNfb3B0YWIpOwlcCisgICAg ZWxzZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgXAorICAgICAgZXhwYW5kXyMjVFlQRSMjX29wdGFiX2ZuIChmbiwgc3RtdCwgVU9QVEFCIyNf aGkjI19vcHRhYik7CVwKKyAgfQorCiAjZGVmaW5lIERFRl9JTlRFUk5BTF9PUFRBQl9GTihDT0RF LCBGTEFHUywgT1BUQUIsIFRZUEUpIFwKICAgc3RhdGljIHZvaWQJCQkJCQlcCiAgIGV4cGFuZF8j I0NPREUgKGludGVybmFsX2ZuIGZuLCBnY2FsbCAqc3RtdCkJCVwKQEAgLTQwMDcsNiArNDExMyw3 IEBAIHNldF9lZG9tX3N1cHBvcnRlZF9wICh2b2lkKQogICAgIGV4cGFuZF8jI1RZUEUjI19vcHRh Yl9mbiAoZm4sIHN0bXQsIHdoaWNoX29wdGFiKTsJCQlcCiAgIH0KICNpbmNsdWRlICJpbnRlcm5h bC1mbi5kZWYiCisjdW5kZWYgREVGX0lOVEVSTkFMX09QVEFCX01VTFRJX0ZOCiAKIC8qIFJvdXRp bmVzIHRvIGV4cGFuZCBlYWNoIGludGVybmFsIGZ1bmN0aW9uLCBpbmRleGVkIGJ5IGZ1bmN0aW9u IG51bWJlci4KICAgIEVhY2ggcm91dGluZSBoYXMgdGhlIHByb3RvdHlwZToKZGlmZiAtLWdpdCBh L2djYy9pbnRlcm5hbC1mbi5kZWYgYi9nY2MvaW50ZXJuYWwtZm4uZGVmCmluZGV4IGQyZDU1MGQz NTg2MDYwMjJiMWNiNDRmYTg0MmYwNmUwYmU1MDdiYzMuLjQ2MzVhOWM4YWY5YWQyN2JiMDVkNzUx MDM4OGQwZmUyMjcwNDI4ZTUgMTAwNjQ0Ci0tLSBhL2djYy9pbnRlcm5hbC1mbi5kZWYKKysrIGIv Z2NjL2ludGVybmFsLWZuLmRlZgpAQCAtODIsNiArODIsMTMgQEAgYWxvbmcgd2l0aCBHQ0M7IHNl ZSB0aGUgZmlsZSBDT1BZSU5HMy4gIElmIG5vdCBzZWUKICAgIHNheXMgdGhhdCB0aGUgZnVuY3Rp b24gZXh0ZW5kcyB0aGUgQy1sZXZlbCBCVUlMVF9JTl88TkFNRT57LEwsTEwsSU1BWH0KICAgIGdy b3VwIG9mIGZ1bmN0aW9ucyB0byBhbnkgaW50ZWdyYWwgbW9kZSAoaW5jbHVkaW5nIHZlY3RvciBt b2RlcykuCiAKKyAgIERFRl9JTlRFUk5BTF9PUFRBQl9NVUxUSV9GTiBpcyBsaWtlIERFRl9JTlRF Uk5BTF9PUFRBQl9GTiBleGNlcHQgaXQKKyAgIHByb3ZpZGVzIGNvbnZlbmllbmNlIHdyYXBwZXJz IGZvciBkZWZpbmluZyBjb252ZXJzaW9ucyB0aGF0IHJlcXVpcmUgYQorICAgaGkvbG8gc3BsaXQs IGxpa2Ugd2lkZW5pbmcgYW5kIG5hcnJvd2luZyBvcGVyYXRpb25zLiAgRWFjaCBkZWZpbml0aW9u CisgICBmb3IgPE5BTUU+IHdpbGwgcmVxdWlyZSBhbiBvcHRhYiBuYW1lZCA8T1BUQUI+IGFuZCB0 d28gb3RoZXIgb3B0YWJzIHRoYXQKKyAgIHlvdSBzcGVjaWZ5IGZvciBzaWduZWQgYW5kIHVuc2ln bmVkLgorCisKICAgIEVhY2ggZW50cnkgbXVzdCBoYXZlIGEgY29ycmVzcG9uZGluZyBleHBhbmRl ciBvZiB0aGUgZm9ybToKIAogICAgICB2b2lkIGV4cGFuZF9OQU1FIChnaW1wbGVfY2FsbCBzdG10 KQpAQCAtMTIwLDYgKzEyNywxNCBAQCBhbG9uZyB3aXRoIEdDQzsgc2VlIHRoZSBmaWxlIENPUFlJ TkczLiAgSWYgbm90IHNlZQogICBERUZfSU5URVJOQUxfT1BUQUJfRk4gKE5BTUUsIEZMQUdTLCBP UFRBQiwgVFlQRSkKICNlbmRpZgogCisjaWZuZGVmIERFRl9JTlRFUk5BTF9PUFRBQl9NVUxUSV9G TgorI2RlZmluZSBERUZfSU5URVJOQUxfT1BUQUJfTVVMVElfRk4oTkFNRSwgRkxBR1MsIE9QVEFC LCBTT1BUQUIsIFVPUFRBQiwgVFlQRSkgXAorICBERUZfSU5URVJOQUxfT1BUQUJfRk4gKE5BTUUs IEZMQUdTIHwgRUNGX01VTFRJLCBPUFRBQiwgVFlQRSkgXAorICBERUZfSU5URVJOQUxfT1BUQUJf Rk4gKE5BTUUgIyMgX0xPLCBGTEFHUywgdW5rbm93biwgVFlQRSkgXAorICBERUZfSU5URVJOQUxf T1BUQUJfRk4gKE5BTUUgIyMgX0hJLCBGTEFHUywgdW5rbm93biwgVFlQRSkKKyNlbmRpZgorCisK IERFRl9JTlRFUk5BTF9PUFRBQl9GTiAoTUFTS19MT0FELCBFQ0ZfUFVSRSwgbWFza2xvYWQsIG1h c2tfbG9hZCkKIERFRl9JTlRFUk5BTF9PUFRBQl9GTiAoTE9BRF9MQU5FUywgRUNGX0NPTlNULCB2 ZWNfbG9hZF9sYW5lcywgbG9hZF9sYW5lcykKIERFRl9JTlRFUk5BTF9PUFRBQl9GTiAoTUFTS19M T0FEX0xBTkVTLCBFQ0ZfUFVSRSwKQEAgLTI5Miw2ICszMDcsMTQgQEAgREVGX0lOVEVSTkFMX09Q VEFCX0ZOIChDT01QTEVYX0FERF9ST1QyNzAsIEVDRl9DT05TVCwgY2FkZDI3MCwgYmluYXJ5KQog REVGX0lOVEVSTkFMX09QVEFCX0ZOIChDT01QTEVYX01VTCwgRUNGX0NPTlNULCBjbXVsLCBiaW5h cnkpCiBERUZfSU5URVJOQUxfT1BUQUJfRk4gKENPTVBMRVhfTVVMX0NPTkosIEVDRl9DT05TVCwg Y211bF9jb25qLCBiaW5hcnkpCiBERUZfSU5URVJOQUxfT1BUQUJfRk4gKFZFQ19BRERTVUIsIEVD Rl9DT05TVCwgdmVjX2FkZHN1YiwgYmluYXJ5KQorREVGX0lOVEVSTkFMX09QVEFCX01VTFRJX0ZO IChWRUNfV0lERU5fUExVUywKKwkJCSAgICAgRUNGX0NPTlNUIHwgRUNGX1dJREVOIHwgRUNGX05P VEhST1csCisJCQkgICAgIHZlY193aWRlbl9hZGQsIHZlY193aWRlbl9zYWRkbCwgdmVjX3dpZGVu X3VhZGRsLAorCQkJICAgICBiaW5hcnkpCitERUZfSU5URVJOQUxfT1BUQUJfTVVMVElfRk4gKFZF Q19XSURFTl9NSU5VUywKKwkJCSAgICAgRUNGX0NPTlNUIHwgRUNGX1dJREVOIHwgRUNGX05PVEhS T1csCisJCQkgICAgIHZlY193aWRlbl9zdWIsIHZlY193aWRlbl9zc3VibCwgdmVjX3dpZGVuX3Vz dWJsLAorCQkJICAgICBiaW5hcnkpCiBERUZfSU5URVJOQUxfT1BUQUJfRk4gKFZFQ19GTUFERFNV QiwgRUNGX0NPTlNULCB2ZWNfZm1hZGRzdWIsIHRlcm5hcnkpCiBERUZfSU5URVJOQUxfT1BUQUJf Rk4gKFZFQ19GTVNVQkFERCwgRUNGX0NPTlNULCB2ZWNfZm1zdWJhZGQsIHRlcm5hcnkpCiAKZGlm ZiAtLWdpdCBhL2djYy9pbnRlcm5hbC1mbi5oIGIvZ2NjL2ludGVybmFsLWZuLmgKaW5kZXggMjNj MDE0YTk2M2M0ZDcyZGE5MmM3NjNkYjg3ZWU0ODZhMmFkYjQ4NS4uYjM1ZGUxOTc0N2QyNTFkMTlk YzEzZGUxZTAzMjMzNjhiZDJlYmRmMiAxMDA2NDQKLS0tIGEvZ2NjL2ludGVybmFsLWZuLmgKKysr IGIvZ2NjL2ludGVybmFsLWZuLmgKQEAgLTIwLDYgKzIwLDEwIEBAIGFsb25nIHdpdGggR0NDOyBz ZWUgdGhlIGZpbGUgQ09QWUlORzMuICBJZiBub3Qgc2VlCiAjaWZuZGVmIEdDQ19JTlRFUk5BTF9G Tl9ICiAjZGVmaW5lIEdDQ19JTlRFUk5BTF9GTl9ICiAKKyNpbmNsdWRlICJpbnNuLWNvZGVzLmgi CisjaW5jbHVkZSAiaW5zbi1vcGluaXQuaCIKKworCiAvKiBJTlRFR0VSX0NTVCB2YWx1ZXMgZm9y IElGTl9VTklRVUUgZnVuY3Rpb24gYXJnLTAuCiAKICAgIFVOU1BFQzogVW5kaWZmZXJlbnRpYXRl ZCBVTklRVUUuCkBAIC0xMTIsNiArMTE2LDkgQEAgaW50ZXJuYWxfZm5fbmFtZSAoZW51bSBpbnRl cm5hbF9mbiBmbikKIH0KIAogZXh0ZXJuIGludGVybmFsX2ZuIGxvb2t1cF9pbnRlcm5hbF9mbiAo Y29uc3QgY2hhciAqKTsKK2V4dGVybiBvcHRhYiBsb29rdXBfbXVsdGlfaWZuX29wdGFiIChlbnVt IGludGVybmFsX2ZuLCB1bnNpZ25lZCk7CitleHRlcm4gdm9pZCBsb29rdXBfbXVsdGlfaW50ZXJu YWxfZm4gKGVudW0gaW50ZXJuYWxfZm4sIGVudW0gaW50ZXJuYWxfZm4gKiwKKwkJCQkgICAgICBl bnVtIGludGVybmFsX2ZuICopOwogCiAvKiBSZXR1cm4gdGhlIEVDRl8qIGZsYWdzIGZvciBmdW5j dGlvbiBGTi4gICovCiAKZGlmZiAtLWdpdCBhL2djYy9vcHRhYnMuY2MgYi9nY2Mvb3B0YWJzLmNj CmluZGV4IDNkOGZhM2FiZGZlYWYyNDVmZDBjYTViMmU1NzY1NTAyYmZjNTRkNmMuLjFkNjJhMWU4 MDQ0MDY3YzViMDU5NzVkMWI3NDE2NjZmM2FhZWVhNjkgMTAwNjQ0Ci0tLSBhL2djYy9vcHRhYnMu Y2MKKysrIGIvZ2NjL29wdGFicy5jYwpAQCAtMTMxNCw3ICsxMzE0LDE3IEBAIGNvbW11dGF0aXZl X29wdGFiX3AgKG9wdGFiIGJpbm9wdGFiKQogCSAgfHwgYmlub3B0YWIgPT0gc211bF93aWRlbl9v cHRhYgogCSAgfHwgYmlub3B0YWIgPT0gdW11bF93aWRlbl9vcHRhYgogCSAgfHwgYmlub3B0YWIg PT0gc211bF9oaWdocGFydF9vcHRhYgotCSAgfHwgYmlub3B0YWIgPT0gdW11bF9oaWdocGFydF9v cHRhYik7CisJICB8fCBiaW5vcHRhYiA9PSB1bXVsX2hpZ2hwYXJ0X29wdGFiCisJICB8fCBiaW5v cHRhYiA9PSB2ZWNfd2lkZW5fYWRkX29wdGFiCisJICB8fCBiaW5vcHRhYiA9PSB2ZWNfd2lkZW5f c3ViX29wdGFiCisJICB8fCBiaW5vcHRhYiA9PSB2ZWNfd2lkZW5fc2FkZGxfaGlfb3B0YWIKKwkg IHx8IGJpbm9wdGFiID09IHZlY193aWRlbl9zYWRkbF9sb19vcHRhYgorCSAgfHwgYmlub3B0YWIg PT0gdmVjX3dpZGVuX3NzdWJsX2hpX29wdGFiCisJICB8fCBiaW5vcHRhYiA9PSB2ZWNfd2lkZW5f c3N1YmxfbG9fb3B0YWIKKwkgIHx8IGJpbm9wdGFiID09IHZlY193aWRlbl91YWRkbF9oaV9vcHRh YgorCSAgfHwgYmlub3B0YWIgPT0gdmVjX3dpZGVuX3VhZGRsX2xvX29wdGFiCisJICB8fCBiaW5v cHRhYiA9PSB2ZWNfd2lkZW5fdXN1YmxfaGlfb3B0YWIKKwkgIHx8IGJpbm9wdGFiID09IHZlY193 aWRlbl91c3VibF9sb19vcHRhYik7CiB9CiAKIC8qIFggaXMgdG8gYmUgdXNlZCBpbiBtb2RlIE1P REUgYXMgb3BlcmFuZCBPUE4gdG8gQklOT1BUQUIuICBJZiB3ZSdyZQpkaWZmIC0tZ2l0IGEvZ2Nj L29wdGFicy5kZWYgYi9nY2Mvb3B0YWJzLmRlZgppbmRleCA4MDEzMTBlYmFhN2Q0Njk1MjA4MDli YjdlZmVkNjgyMGY4ZWI4NjZiLi5hNzg4MWRjYjQ5ZTRlZjA3ZDhmMDdhYTMxMjE0ZWIzYTdhOTQ0 ZTJlIDEwMDY0NAotLS0gYS9nY2Mvb3B0YWJzLmRlZgorKysgYi9nY2Mvb3B0YWJzLmRlZgpAQCAt NzgsNiArNzgsOCBAQCBPUFRBQl9DRChzbXN1Yl93aWRlbl9vcHRhYiwgIm1zdWIkYiRhNCIpCiBP UFRBQl9DRCh1bXN1Yl93aWRlbl9vcHRhYiwgInVtc3ViJGIkYTQiKQogT1BUQUJfQ0Qoc3Ntc3Vi X3dpZGVuX29wdGFiLCAic3Ntc3ViJGIkYTQiKQogT1BUQUJfQ0QodXNtc3ViX3dpZGVuX29wdGFi LCAidXNtc3ViJGEkYjQiKQorT1BUQUJfQ0QodmVjX3dpZGVuX2FkZF9vcHRhYiwgImFkZCRhJGIz IikKK09QVEFCX0NEKHZlY193aWRlbl9zdWJfb3B0YWIsICJzdWIkYSRiMyIpCiBPUFRBQl9DRCh2 ZWNfbG9hZF9sYW5lc19vcHRhYiwgInZlY19sb2FkX2xhbmVzJGEkYiIpCiBPUFRBQl9DRCh2ZWNf c3RvcmVfbGFuZXNfb3B0YWIsICJ2ZWNfc3RvcmVfbGFuZXMkYSRiIikKIE9QVEFCX0NEKHZlY19t YXNrX2xvYWRfbGFuZXNfb3B0YWIsICJ2ZWNfbWFza19sb2FkX2xhbmVzJGEkYiIpCmRpZmYgLS1n aXQgYS9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC92ZWN0LXdpZGVuLWFkZC5jIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvdmVjdC13aWRlbi1hZGQuYwppbmRleCAy MjBiZDkzNTJhNGM3YWNkMmUzNzEzZTQ0MWQ3NDg5OGQzZTkyYjMwLi43MDM3NjczZDMyYmQ3ODBl MWM5YjU4YTUxZTU4ZTJiYWMzYjMwYjdlIDEwMDY0NAotLS0gYS9nY2MvdGVzdHN1aXRlL2djYy50 YXJnZXQvYWFyY2g2NC92ZWN0LXdpZGVuLWFkZC5jCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRh cmdldC9hYXJjaDY0L3ZlY3Qtd2lkZW4tYWRkLmMKQEAgLTEsNSArMSw1IEBACiAvKiB7IGRnLWRv IHJ1biB9ICovCi0vKiB7IGRnLW9wdGlvbnMgIi1PMyAtc2F2ZS10ZW1wcyIgfSAqLworLyogeyBk Zy1vcHRpb25zICItTzMgLXNhdmUtdGVtcHMgLWZkdW1wLXRyZWUtdmVjdC1hbGwiIH0gKi8KICNp bmNsdWRlIDxzdGRpbnQuaD4KICNpbmNsdWRlIDxzdHJpbmcuaD4KIApAQCAtODYsNiArODYsOCBA QCBtYWluKCkKICAgICByZXR1cm4gMDsKIH0KIAorLyogeyBkZy1maW5hbCB7IHNjYW4tdHJlZS1k dW1wICJhZGQgbmV3IHN0bXQuKlZFQ19XSURFTl9QTFVTX0xPIiAidmVjdCIgICB9IH0gKi8KKy8q IHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcCAiYWRkIG5ldyBzdG10LipWRUNfV0lERU5fUExV U19ISSIgInZlY3QiICAgfSB9ICovCiAvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGlt ZXMge1x0dWFkZGxcdH0gMX0gfSAqLwogLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRp bWVzIHtcdHVhZGRsMlx0fSAxfSB9ICovCiAvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXIt dGltZXMge1x0c2FkZGxcdH0gMX0gfSAqLwpkaWZmIC0tZ2l0IGEvZ2NjL3Rlc3RzdWl0ZS9nY2Mu dGFyZ2V0L2FhcmNoNjQvdmVjdC13aWRlbi1zdWIuYyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdl dC9hYXJjaDY0L3ZlY3Qtd2lkZW4tc3ViLmMKaW5kZXggYTJiZWQ2M2FmZmJkMDkxOTc3ZGY5NWEx MjZkYTFmNWI4YzFkNDFkMi4uODNiYzFlZGI2MTA1ZjQ3MTE0YjY2NWUyNGExM2U2MTk0YjIxNzlh MiAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvdmVjdC13aWRl bi1zdWIuYworKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC92ZWN0LXdpZGVu LXN1Yi5jCkBAIC0xLDUgKzEsNSBAQAogLyogeyBkZy1kbyBydW4gfSAqLwotLyogeyBkZy1vcHRp b25zICItTzMgLXNhdmUtdGVtcHMiIH0gKi8KKy8qIHsgZGctb3B0aW9ucyAiLU8zIC1zYXZlLXRl bXBzIC1mZHVtcC10cmVlLXZlY3QtYWxsIiB9ICovCiAjaW5jbHVkZSA8c3RkaW50Lmg+CiAjaW5j bHVkZSA8c3RyaW5nLmg+CiAKQEAgLTg2LDYgKzg2LDggQEAgbWFpbigpCiAgICAgcmV0dXJuIDA7 CiB9CiAKKy8qIHsgZGctZmluYWwgeyBzY2FuLXRyZWUtZHVtcCAiYWRkIG5ldyBzdG10LipWRUNf V0lERU5fTUlOVVNfTE8iICJ2ZWN0IiAgIH0gfSAqLworLyogeyBkZy1maW5hbCB7IHNjYW4tdHJl ZS1kdW1wICJhZGQgbmV3IHN0bXQuKlZFQ19XSURFTl9NSU5VU19ISSIgInZlY3QiICAgfSB9ICov CiAvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge1x0dXN1YmxcdH0gMX0gfSAq LwogLyogeyBkZy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtcdHVzdWJsMlx0fSAxfSB9 ICovCiAvKiB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJsZXItdGltZXMge1x0c3N1YmxcdH0gMX0g fSAqLwpkaWZmIC0tZ2l0IGEvZ2NjL3RyZWUtY29yZS5oIGIvZ2NjL3RyZWUtY29yZS5oCmluZGV4 IDgxMWE4NGJmOWYwYzQ4NWY4YmExZTQzMGMyOWVlZDg4NGJkNjAyZWMuLjA1MWY2OTBhZTY3NDY5 NTUxZDA2NzRmZDI4MWQ1ZGU0YWU2NDkzZGQgMTAwNjQ0Ci0tLSBhL2djYy90cmVlLWNvcmUuaAor KysgYi9nY2MvdHJlZS1jb3JlLmgKQEAgLTk5LDYgKzk5LDEwIEBAIHN0cnVjdCBkaWVfc3RydWN0 OwogLyogTm9uemVybyBpZiB0aGlzIGlzIGEgd2lkZW5pbmcgZnVuY3Rpb24uICAqLwogI2RlZmlu ZSBFQ0ZfV0lERU4JCSAgKDEgPDwgMTYpCiAKKy8qIE5vbnplcm8gaWYgdGhpcyBpcyBhIGZ1bmN0 aW9uIHRoYXQgZGVjb21wb3NlcyBpbnRvIGEgbG8vaGkgb3BlcmF0aW9uLiAgKi8KKyNkZWZpbmUg RUNGX01VTFRJCQkgICgxIDw8IDE3KQorCisKIC8qIENhbGwgYXJndW1lbnQgZmxhZ3MuICAqLwog CiAvKiBOb256ZXJvIGlmIHRoZSBhcmd1bWVudCBpcyBub3QgdXNlZCBieSB0aGUgZnVuY3Rpb24u ICAqLwpkaWZmIC0tZ2l0IGEvZ2NjL3RyZWUtdmVjdC1wYXR0ZXJucy5jYyBiL2djYy90cmVlLXZl Y3QtcGF0dGVybnMuY2MKaW5kZXggMWFjMTVlOThiODg5NDc0OGIxMTlmM2Y4ZmE0NjUyZGEzMjk0 OTM3ZS4uZTAxYzkxNDY3M2ZiZGQ1YjMxZjg5YWJhZmY0NzhiODlhMjM5MzUzNyAxMDA2NDQKLS0t IGEvZ2NjL3RyZWUtdmVjdC1wYXR0ZXJucy5jYworKysgYi9nY2MvdHJlZS12ZWN0LXBhdHRlcm5z LmNjCkBAIC0xMzQzLDE0ICsxMzQzLDE2IEBAIHN0YXRpYyBnaW1wbGUgKgogdmVjdF9yZWNvZ193 aWRlbl9vcF9wYXR0ZXJuICh2ZWNfaW5mbyAqdmluZm8sCiAJCQkgICAgIHN0bXRfdmVjX2luZm8g bGFzdF9zdG10X2luZm8sIHRyZWUgKnR5cGVfb3V0LAogCQkJICAgICB0cmVlX2NvZGUgb3JpZ19j b2RlLCBjb2RlX2hlbHBlciB3aWRlX2NvZGUsCi0JCQkgICAgIGJvb2wgc2hpZnRfcCwgY29uc3Qg Y2hhciAqbmFtZSkKKwkJCSAgICAgYm9vbCBzaGlmdF9wLCBjb25zdCBjaGFyICpuYW1lLAorCQkJ ICAgICBlbnVtIG9wdGFiX3N1YnR5cGUgKnN1YnR5cGUgPSBOVUxMKQogewogICBnaW1wbGUgKmxh c3Rfc3RtdCA9IGxhc3Rfc3RtdF9pbmZvLT5zdG10OwogCiAgIHZlY3RfdW5wcm9tb3RlZF92YWx1 ZSB1bnByb21bMl07CiAgIHRyZWUgaGFsZl90eXBlOwogICBpZiAoIXZlY3Rfd2lkZW5lZF9vcF90 cmVlICh2aW5mbywgbGFzdF9zdG10X2luZm8sIG9yaWdfY29kZSwgb3JpZ19jb2RlLAotCQkJICAg ICBzaGlmdF9wLCAyLCB1bnByb20sICZoYWxmX3R5cGUpKQorCQkJICAgICBzaGlmdF9wLCAyLCB1 bnByb20sICZoYWxmX3R5cGUsIHN1YnR5cGUpKQorCiAgICAgcmV0dXJuIE5VTEw7CiAKICAgLyog UGF0dGVybiBkZXRlY3RlZC4gICovCkBAIC0xNDE2LDYgKzE0MTgsMjAgQEAgdmVjdF9yZWNvZ193 aWRlbl9vcF9wYXR0ZXJuICh2ZWNfaW5mbyAqdmluZm8sCiAJCQkgICAgICB0eXBlLCBwYXR0ZXJu X3N0bXQsIHZlY2N0eXBlKTsKIH0KIAorc3RhdGljIGdpbXBsZSAqCit2ZWN0X3JlY29nX3dpZGVu X29wX3BhdHRlcm4gKHZlY19pbmZvICp2aW5mbywKKwkJCSAgICAgc3RtdF92ZWNfaW5mbyBsYXN0 X3N0bXRfaW5mbywgdHJlZSAqdHlwZV9vdXQsCisJCQkgICAgIHRyZWVfY29kZSBvcmlnX2NvZGUs IGludGVybmFsX2ZuIHdpZGVfaWZuLAorCQkJICAgICBib29sIHNoaWZ0X3AsIGNvbnN0IGNoYXIg Km5hbWUsCisJCQkgICAgIGVudW0gb3B0YWJfc3VidHlwZSAqc3VidHlwZSA9IE5VTEwpCit7Cisg IGNvbWJpbmVkX2ZuIGlmbiA9IGFzX2NvbWJpbmVkX2ZuICh3aWRlX2lmbik7CisgIHJldHVybiB2 ZWN0X3JlY29nX3dpZGVuX29wX3BhdHRlcm4gKHZpbmZvLCBsYXN0X3N0bXRfaW5mbywgdHlwZV9v dXQsCisJCQkJICAgICAgb3JpZ19jb2RlLCBpZm4sIHNoaWZ0X3AsIG5hbWUsCisJCQkJICAgICAg c3VidHlwZSk7Cit9CisKKwogLyogVHJ5IHRvIGRldGVjdCBtdWx0aXBsaWNhdGlvbiBvbiB3aWRl bmVkIGlucHV0cywgY29udmVydGluZyBNVUxUX0VYUFIKICAgIHRvIFdJREVOX01VTFRfRVhQUi4g IFNlZSB2ZWN0X3JlY29nX3dpZGVuX29wX3BhdHRlcm4gZm9yIGRldGFpbHMuICAqLwogCkBAIC0x NDI5LDI2ICsxNDQ1LDMwIEBAIHZlY3RfcmVjb2dfd2lkZW5fbXVsdF9wYXR0ZXJuICh2ZWNfaW5m byAqdmluZm8sIHN0bXRfdmVjX2luZm8gbGFzdF9zdG10X2luZm8sCiB9CiAKIC8qIFRyeSB0byBk ZXRlY3QgYWRkaXRpb24gb24gd2lkZW5lZCBpbnB1dHMsIGNvbnZlcnRpbmcgUExVU19FWFBSCi0g ICB0byBXSURFTl9QTFVTX0VYUFIuICBTZWUgdmVjdF9yZWNvZ193aWRlbl9vcF9wYXR0ZXJuIGZv ciBkZXRhaWxzLiAgKi8KKyAgIHRvIElGTl9WRUNfV0lERU5fUExVUy4gIFNlZSB2ZWN0X3JlY29n X3dpZGVuX29wX3BhdHRlcm4gZm9yIGRldGFpbHMuICAqLwogCiBzdGF0aWMgZ2ltcGxlICoKIHZl Y3RfcmVjb2dfd2lkZW5fcGx1c19wYXR0ZXJuICh2ZWNfaW5mbyAqdmluZm8sIHN0bXRfdmVjX2lu Zm8gbGFzdF9zdG10X2luZm8sCiAJCQkgICAgICAgdHJlZSAqdHlwZV9vdXQpCiB7CisgIGVudW0g b3B0YWJfc3VidHlwZSBzdWJ0eXBlOwogICByZXR1cm4gdmVjdF9yZWNvZ193aWRlbl9vcF9wYXR0 ZXJuICh2aW5mbywgbGFzdF9zdG10X2luZm8sIHR5cGVfb3V0LAotCQkJCSAgICAgIFBMVVNfRVhQ UiwgV0lERU5fUExVU19FWFBSLCBmYWxzZSwKLQkJCQkgICAgICAidmVjdF9yZWNvZ193aWRlbl9w bHVzX3BhdHRlcm4iKTsKKwkJCQkgICAgICBQTFVTX0VYUFIsIElGTl9WRUNfV0lERU5fUExVUywK KwkJCQkgICAgICBmYWxzZSwgInZlY3RfcmVjb2dfd2lkZW5fcGx1c19wYXR0ZXJuIiwKKwkJCQkg ICAgICAmc3VidHlwZSk7CiB9CiAKIC8qIFRyeSB0byBkZXRlY3Qgc3VidHJhY3Rpb24gb24gd2lk ZW5lZCBpbnB1dHMsIGNvbnZlcnRpbmcgTUlOVVNfRVhQUgotICAgdG8gV0lERU5fTUlOVVNfRVhQ Ui4gIFNlZSB2ZWN0X3JlY29nX3dpZGVuX29wX3BhdHRlcm4gZm9yIGRldGFpbHMuICAqLworICAg dG8gSUZOX1ZFQ19XSURFTl9NSU5VUy4gIFNlZSB2ZWN0X3JlY29nX3dpZGVuX29wX3BhdHRlcm4g Zm9yIGRldGFpbHMuICAqLwogc3RhdGljIGdpbXBsZSAqCiB2ZWN0X3JlY29nX3dpZGVuX21pbnVz X3BhdHRlcm4gKHZlY19pbmZvICp2aW5mbywgc3RtdF92ZWNfaW5mbyBsYXN0X3N0bXRfaW5mbywK IAkJCSAgICAgICB0cmVlICp0eXBlX291dCkKIHsKKyAgZW51bSBvcHRhYl9zdWJ0eXBlIHN1YnR5 cGU7CiAgIHJldHVybiB2ZWN0X3JlY29nX3dpZGVuX29wX3BhdHRlcm4gKHZpbmZvLCBsYXN0X3N0 bXRfaW5mbywgdHlwZV9vdXQsCi0JCQkJICAgICAgTUlOVVNfRVhQUiwgV0lERU5fTUlOVVNfRVhQ UiwgZmFsc2UsCi0JCQkJICAgICAgInZlY3RfcmVjb2dfd2lkZW5fbWludXNfcGF0dGVybiIpOwor CQkJCSAgICAgIE1JTlVTX0VYUFIsIElGTl9WRUNfV0lERU5fTUlOVVMsCisJCQkJICAgICAgZmFs c2UsICJ2ZWN0X3JlY29nX3dpZGVuX21pbnVzX3BhdHRlcm4iLAorCQkJCSAgICAgICZzdWJ0eXBl KTsKIH0KIAogLyogRnVuY3Rpb24gdmVjdF9yZWNvZ19wb3Bjb3VudF9wYXR0ZXJuCkBAIC01NjEx LDYgKzU2MzEsNyBAQCBzdGF0aWMgdmVjdF9yZWNvZ19mdW5jIHZlY3RfdmVjdF9yZWNvZ19mdW5j X3B0cnNbXSA9IHsKICAgeyB2ZWN0X3JlY29nX21hc2tfY29udmVyc2lvbl9wYXR0ZXJuLCAibWFz a19jb252ZXJzaW9uIiB9LAogICB7IHZlY3RfcmVjb2dfd2lkZW5fcGx1c19wYXR0ZXJuLCAid2lk ZW5fcGx1cyIgfSwKICAgeyB2ZWN0X3JlY29nX3dpZGVuX21pbnVzX3BhdHRlcm4sICJ3aWRlbl9t aW51cyIgfSwKKyAgLyogVGhlc2UgbXVzdCBjb21lIGFmdGVyIHRoZSBkb3VibGUgd2lkZW5pbmcg b25lcy4gICovCiB9OwogCiBjb25zdCB1bnNpZ25lZCBpbnQgTlVNX1BBVFRFUk5TID0gQVJSQVlf U0laRSAodmVjdF92ZWN0X3JlY29nX2Z1bmNfcHRycyk7CmRpZmYgLS1naXQgYS9nY2MvdHJlZS12 ZWN0LXN0bXRzLmNjIGIvZ2NjL3RyZWUtdmVjdC1zdG10cy5jYwppbmRleCA4ZTFlZjg5Mjc4ZGE2 NjRhOTY1ODViNzE4YTdkMjM0N2JiYjVhZjZlLi41YjczMWNhZDA1M2U5MWYxNWI4Y2E0NTJiZTdm ZWM5YWNmYzBkN2ZkIDEwMDY0NAotLS0gYS9nY2MvdHJlZS12ZWN0LXN0bXRzLmNjCisrKyBiL2dj Yy90cmVlLXZlY3Qtc3RtdHMuY2MKQEAgLTQ4NDcsNyArNDg0Nyw3IEBAIHZlY3Rvcml6YWJsZV9j b252ZXJzaW9uICh2ZWNfaW5mbyAqdmluZm8sCiAgICAgcmV0dXJuIGZhbHNlOwogCiAgIGlmIChn aW1wbGVfZ2V0X2xocyAoc3RtdCkgPT0gTlVMTF9UUkVFIHx8Ci0gICAgICBUUkVFX0NPREUoZ2lt cGxlX2dldF9saHMgKHN0bXQpKSAhPSBTU0FfTkFNRSkKKyAgICAgIFRSRUVfQ09ERSAoZ2ltcGxl X2dldF9saHMgKHN0bXQpKSAhPSBTU0FfTkFNRSkKICAgICByZXR1cm4gZmFsc2U7CiAKICAgaWYg KFRSRUVfQ09ERSAoZ2ltcGxlX2dldF9saHMgKHN0bXQpKSAhPSBTU0FfTkFNRSkKQEAgLTEyMDg2 LDEyICsxMjA4Niw2MiBAQCBzdXBwb3J0YWJsZV93aWRlbmluZ19vcGVyYXRpb24gKHZlY19pbmZv ICp2aW5mbywKICAgICAgIG9wdGFiMSA9IHZlY191bnBhY2tzX3Nib29sX2xvX29wdGFiOwogICAg ICAgb3B0YWIyID0gdmVjX3VucGFja3Nfc2Jvb2xfaGlfb3B0YWI7CiAgICAgfQotICBlbHNlCi0g ICAgewotICAgICAgb3B0YWIxID0gb3B0YWJfZm9yX3RyZWVfY29kZSAoYzEuYXNfdHJlZV9jb2Rl ICgpLCB2ZWN0eXBlLCBvcHRhYl9kZWZhdWx0KTsKLSAgICAgIG9wdGFiMiA9IG9wdGFiX2Zvcl90 cmVlX2NvZGUgKGMyLmFzX3RyZWVfY29kZSAoKSwgdmVjdHlwZSwgb3B0YWJfZGVmYXVsdCk7CisK KyAgaWYgKGNvZGUuaXNfZm5fY29kZSAoKSkKKyAgICAgeworICAgICAgaW50ZXJuYWxfZm4gaWZu ID0gYXNfaW50ZXJuYWxfZm4gKGNvZGUuYXNfZm5fY29kZSAoKSk7CisgICAgICBpbnQgZWNmX2Zs YWdzID0gaW50ZXJuYWxfZm5fZmxhZ3MgKGlmbik7CisgICAgICBnY2NfYXNzZXJ0IChlY2ZfZmxh Z3MgJiBFQ0ZfTVVMVEkpOworCisgICAgICBzd2l0Y2ggKGNvZGUuYXNfZm5fY29kZSAoKSkKKwl7 CisJY2FzZSBDRk5fVkVDX1dJREVOX1BMVVM6CisJICBicmVhazsKKwljYXNlIENGTl9WRUNfV0lE RU5fTUlOVVM6CisJICBicmVhazsKKwljYXNlIENGTl9MQVNUOgorCWRlZmF1bHQ6CisJICByZXR1 cm4gZmFsc2U7CisJfQorCisgICAgICBpbnRlcm5hbF9mbiBsbywgaGk7CisgICAgICBsb29rdXBf bXVsdGlfaW50ZXJuYWxfZm4gKGlmbiwgJmxvLCAmaGkpOworICAgICAgKmNvZGUxID0gYXNfY29t YmluZWRfZm4gKGxvKTsKKyAgICAgICpjb2RlMiA9IGFzX2NvbWJpbmVkX2ZuIChoaSk7CisgICAg ICBvcHRhYjEgPSBsb29rdXBfbXVsdGlfaWZuX29wdGFiIChsbywgIVRZUEVfVU5TSUdORUQgKHZl Y3R5cGUpKTsKKyAgICAgIG9wdGFiMiA9IGxvb2t1cF9tdWx0aV9pZm5fb3B0YWIgKGhpLCAhVFlQ RV9VTlNJR05FRCAodmVjdHlwZSkpOwogICAgIH0KIAorICBpZiAoY29kZS5pc190cmVlX2NvZGUg KCkpCisgIHsKKyAgICBpZiAoY29kZSA9PSBGSVhfVFJVTkNfRVhQUikKKyAgICAgIHsKKwkvKiBU aGUgc2lnbmVkbmVzcyBpcyBkZXRlcm1pbmVkIGZyb20gb3V0cHV0IG9wZXJhbmQuICAqLworCW9w dGFiMSA9IG9wdGFiX2Zvcl90cmVlX2NvZGUgKGMxLmFzX3RyZWVfY29kZSAoKSwgdmVjdHlwZV9v dXQsCisJCQkJICAgICAgb3B0YWJfZGVmYXVsdCk7CisJb3B0YWIyID0gb3B0YWJfZm9yX3RyZWVf Y29kZSAoYzIuYXNfdHJlZV9jb2RlICgpLCB2ZWN0eXBlX291dCwKKwkJCQkgICAgICBvcHRhYl9k ZWZhdWx0KTsKKyAgICAgIH0KKyAgICBlbHNlIGlmIChDT05WRVJUX0VYUFJfQ09ERV9QIChjb2Rl LmFzX3RyZWVfY29kZSAoKSkKKwkgICAgICYmIFZFQ1RPUl9CT09MRUFOX1RZUEVfUCAod2lkZV92 ZWN0eXBlKQorCSAgICAgJiYgVkVDVE9SX0JPT0xFQU5fVFlQRV9QICh2ZWN0eXBlKQorCSAgICAg JiYgVFlQRV9NT0RFICh3aWRlX3ZlY3R5cGUpID09IFRZUEVfTU9ERSAodmVjdHlwZSkKKwkgICAg ICYmIFNDQUxBUl9JTlRfTU9ERV9QIChUWVBFX01PREUgKHZlY3R5cGUpKSkKKyAgICAgIHsKKwkv KiBJZiB0aGUgaW5wdXQgYW5kIHJlc3VsdCBtb2RlcyBhcmUgdGhlIHNhbWUsIGEgZGlmZmVyZW50 IG9wdGFiCisJICAgaXMgbmVlZGVkIHdoZXJlIHdlIHBhc3MgaW4gdGhlIG51bWJlciBvZiB1bml0 cyBpbiB2ZWN0eXBlLiAgKi8KKwlvcHRhYjEgPSB2ZWNfdW5wYWNrc19zYm9vbF9sb19vcHRhYjsK KwlvcHRhYjIgPSB2ZWNfdW5wYWNrc19zYm9vbF9oaV9vcHRhYjsKKyAgICAgIH0KKyAgICBlbHNl CisgICAgICB7CisJb3B0YWIxID0gb3B0YWJfZm9yX3RyZWVfY29kZSAoYzEuYXNfdHJlZV9jb2Rl ICgpLCB2ZWN0eXBlLAorCQkJCSAgICAgIG9wdGFiX2RlZmF1bHQpOworCW9wdGFiMiA9IG9wdGFi X2Zvcl90cmVlX2NvZGUgKGMyLmFzX3RyZWVfY29kZSAoKSwgdmVjdHlwZSwKKwkJCQkgICAgICBv cHRhYl9kZWZhdWx0KTsKKyAgICAgIH0KKyAgfQorCiAgIGlmICghb3B0YWIxIHx8ICFvcHRhYjIp CiAgICAgcmV0dXJuIGZhbHNlOwogCi0tIAoyLjE3LjEKCg== --_004_DB9PR08MB660300446C4580E5B601CAD4F5EC9DB9PR08MB6603eurp_ Content-Type: application/octet-stream; name="0003-Remove-widen_plus-minus_expr-tree-codes.patch" Content-Description: 0003-Remove-widen_plus-minus_expr-tree-codes.patch Content-Disposition: attachment; filename="0003-Remove-widen_plus-minus_expr-tree-codes.patch"; size=19457; creation-date="Wed, 13 Apr 2022 15:49:37 GMT"; modification-date="Wed, 13 Apr 2022 15:52:38 GMT" Content-Transfer-Encoding: base64 RnJvbSA1ZTBkMjllNGI1OTUwOTY5MDA0NGZlYzZiNzdjYWYzYmRkOGUxNjdkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb2VsIEh1dHRvbiA8am9lbC5odXR0b25AYXJtLmNvbT4KRGF0 ZTogRnJpLCAyOCBKYW4gMjAyMiAxMjowNDo0NCArMDAwMApTdWJqZWN0OiBbUEFUQ0ggMy8zXSBS ZW1vdmUgd2lkZW5fcGx1cy9taW51c19leHByIHRyZWUgY29kZXMKClRoaXMgcGF0Y2ggcmVtb3Zl cyB0aGUgb2xkIHdpZGVuIHBsdXMvbWludXMgdHJlZSBjb2RlcyB3aGljaCBoYXZlIGJlZW4KcmVw bGFjZWQgYnkgaW50ZXJuYWwgZnVuY3Rpb25zLgoKZ2NjL0NoYW5nZUxvZzoKCgkqIGRvYy9nZW5l cmljLnRleGk6IFJlbW92ZSBvbGQgdHJlZSBjb2Rlcy4KCSogZXhwci5jYyAoZXhwYW5kX2V4cHJf cmVhbF8yKTogUmVtb3ZlIG9sZCB0cmVlIGNvZGUgY2FzZXMuCgkqIGdpbXBsZS1wcmV0dHktcHJp bnQuY2MgKGR1bXBfYmluYXJ5X3Jocyk6IFJlbW92ZSBvbGQgdHJlZSBjb2RlCiAgICBjYXNlcy4K CSogb3B0YWJzLXRyZWUuY2MgKG9wdGFiX2Zvcl90cmVlX2NvZGUpOiBSZW1vdmUgb2xkIHRyZWUg Y29kZSBjYXNlcy4KCShzdXBwb3J0YWJsZV9oYWxmX3dpZGVuaW5nX29wZXJhdGlvbik6IFJlbW92 ZSBvbGQgdHJlZSBjb2RlIGNhc2VzLgoJKiB0cmVlLWNmZy5jYyAodmVyaWZ5X2dpbXBsZV9hc3Np Z25fYmluYXJ5KTogUmVtb3ZlIG9sZCB0cmVlIGNvZGUKICAgIGNhc2VzLgoJKiB0cmVlLWlubGlu ZS5jYyAoZXN0aW1hdGVfb3BlcmF0b3JfY29zdCk6IFJlbW92ZSBvbGQgdHJlZSBjb2RlCiAgICBj YXNlcy4KCSogdHJlZS1wcmV0dHktcHJpbnQuY2MgKGR1bXBfZ2VuZXJpY19ub2RlKTogUmVtb3Zl IHRyZWUgY29kZSBkZWZpbml0aW9uLgoJKG9wX3N5bWJvbF9jb2RlKTogUmVtb3ZlIG9sZCB0cmVl IGNvZGUKICAgIGNhc2VzLgoJKiB0cmVlLXZlY3QtZGF0YS1yZWZzLmNjICh2ZWN0X2dldF9zbWFs bGVzdF9zY2FsYXJfdHlwZSk6IFJlbW92ZSBvbGQgdHJlZSBjb2RlCiAgICBjYXNlcy4KCSh2ZWN0 X2FuYWx5emVfZGF0YV9yZWZfYWNjZXNzZXMpOiBSZW1vdmUgb2xkIHRyZWUgY29kZQogICAgY2Fz ZXMuCgkqIHRyZWUtdmVjdC1nZW5lcmljLmNjIChleHBhbmRfdmVjdG9yX29wZXJhdGlvbnNfMSk6 IFJlbW92ZSBvbGQgdHJlZSBjb2RlCiAgICBjYXNlcy4KCSogdHJlZS12ZWN0LXBhdHRlcm5zLmNj ICh2ZWN0X3dpZGVuZWRfb3BfdHJlZSk6IFJlZmFjdG9yIG90IHJlcGxhY2UKICAgIHVzYWdlIGlu IHZlY3RfcmVjb2dfc2FkX3BhdHRlcm4uCgkodmVjdF9yZWNvZ19zYWRfcGF0dGVybik6IFJlcGxh Y2UgdHJlZSBjb2RlIHdpZGVuaW5nIHBhdHRlcm4gd2l0aAogICAgaW50ZXJuYWwgZnVuY3Rpb24u CgkodmVjdF9yZWNvZ19hdmVyYWdlX3BhdHRlcm4pOiBSZXBsYWNlIHRyZWUgY29kZSB3aWRlbmlu ZyBwYXR0ZXJuCiAgICB3aXRoIGludGVybmFsIGZ1bmN0aW9uLgoJKiB0cmVlLXZlY3Qtc3RtdHMu Y2MgKHZlY3Rvcml6YWJsZV9jb252ZXJzaW9uKTogUmVtb3ZlIG9sZCB0cmVlIGNvZGUKICAgIGNh c2VzLgoJKHN1cHBvcnRhYmxlX3dpZGVuaW5nX29wZXJhdGlvbik6IFJlbW92ZSBvbGQgdHJlZSBj b2RlCiAgICBjYXNlcy4KCSogdHJlZS5kZWYgKFdJREVOX1BMVVNfRVhQUik6IFJlbW92ZSB0cmVl IGNvZGUgZGVmaW5pdGlvbi4KCShXSURFTl9NSU5VU19FWFBSKTogUmVtb3ZlIHRyZWUgY29kZSBk ZWZpbml0aW9uLgoJKFZFQ19XSURFTl9QTFVTX0hJX0VYUFIpOiBSZW1vdmUgdHJlZSBjb2RlIGRl ZmluaXRpb24uCgkoVkVDX1dJREVOX1BMVVNfTE9fRVhQUik6IFJlbW92ZSB0cmVlIGNvZGUgZGVm aW5pdGlvbi4KCShWRUNfV0lERU5fTUlOVVNfSElfRVhQUik6IFJlbW92ZSB0cmVlIGNvZGUgZGVm aW5pdGlvbi4KCShWRUNfV0lERU5fTUlOVVNfTE9fRVhQUik6IFJlbW92ZSB0cmVlIGNvZGUgZGVm aW5pdGlvbi4KLS0tCiBnY2MvZG9jL2dlbmVyaWMudGV4aSAgICAgICB8IDMxIC0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KIGdjYy9leHByLmNjICAgICAgICAgICAgICAgIHwgIDYgLS0t LS0tCiBnY2MvZ2ltcGxlLXByZXR0eS1wcmludC5jYyB8ICA0IC0tLS0KIGdjYy9vcHRhYnMtdHJl ZS5jYyAgICAgICAgIHwgMjQgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBnY2MvdHJlZS1jZmcu Y2MgICAgICAgICAgICB8ICA2IC0tLS0tLQogZ2NjL3RyZWUtaW5saW5lLmNjICAgICAgICAgfCAg NiAtLS0tLS0KIGdjYy90cmVlLXByZXR0eS1wcmludC5jYyAgIHwgMTIgLS0tLS0tLS0tLS0tCiBn Y2MvdHJlZS12ZWN0LWRhdGEtcmVmcy5jYyB8ICA4ICsrKy0tLS0tCiBnY2MvdHJlZS12ZWN0LWdl bmVyaWMuY2MgICB8ICA0IC0tLS0KIGdjYy90cmVlLXZlY3QtcGF0dGVybnMuY2MgIHwgMzYgKysr KysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tCiBnY2MvdHJlZS12ZWN0LXN0bXRzLmNj ICAgICB8IDE4ICsrLS0tLS0tLS0tLS0tLS0tLQogZ2NjL3RyZWUuZGVmICAgICAgICAgICAgICAg fCAgNiAtLS0tLS0KIDEyIGZpbGVzIGNoYW5nZWQsIDMwIGluc2VydGlvbnMoKyksIDEzMSBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9nY2MvZG9jL2dlbmVyaWMudGV4aSBiL2djYy9kb2MvZ2Vu ZXJpYy50ZXhpCmluZGV4IGU1ZjlkMWJlOGVhODFmM2RhMDAyZWMzYmI5MjU1OTBkMzMxYTI1NTEu LjM0NDA0NWVmZDQxOWIwY2MzYTExNzcxYWNmNzBkMmZkMjc5YzQ4YWMgMTAwNjQ0Ci0tLSBhL2dj Yy9kb2MvZ2VuZXJpYy50ZXhpCisrKyBiL2djYy9kb2MvZ2VuZXJpYy50ZXhpCkBAIC0xODExLDEw ICsxODExLDYgQEAgYSB2YWx1ZSBmcm9tIEBjb2Rle2VudW0gYW5ub3RfZXhwcl9raW5kfSwgdGhl IHRoaXJkIGlzIGFuIEBjb2Rle0lOVEVHRVJfQ1NUfS4KIEB0aW5kZXggVkVDX1JTSElGVF9FWFBS CiBAdGluZGV4IFZFQ19XSURFTl9NVUxUX0hJX0VYUFIKIEB0aW5kZXggVkVDX1dJREVOX01VTFRf TE9fRVhQUgotQHRpbmRleCBWRUNfV0lERU5fUExVU19ISV9FWFBSCi1AdGluZGV4IFZFQ19XSURF Tl9QTFVTX0xPX0VYUFIKLUB0aW5kZXggVkVDX1dJREVOX01JTlVTX0hJX0VYUFIKLUB0aW5kZXgg VkVDX1dJREVOX01JTlVTX0xPX0VYUFIKIEB0aW5kZXggVkVDX1VOUEFDS19ISV9FWFBSCiBAdGlu ZGV4IFZFQ19VTlBBQ0tfTE9fRVhQUgogQHRpbmRleCBWRUNfVU5QQUNLX0ZMT0FUX0hJX0VYUFIK QEAgLTE4NjEsMzMgKzE4NTcsNiBAQCB2ZWN0b3Igb2YgQGNvZGV7Ti8yfSBwcm9kdWN0cy4gSW4g dGhlIGNhc2Ugb2YgQGNvZGV7VkVDX1dJREVOX01VTFRfTE9fRVhQUn0gdGhlCiBsb3cgQGNvZGV7 Ti8yfSBlbGVtZW50cyBvZiB0aGUgdHdvIHZlY3RvciBhcmUgbXVsdGlwbGllZCB0byBwcm9kdWNl IHRoZQogdmVjdG9yIG9mIEBjb2Rle04vMn0gcHJvZHVjdHMuCiAKLUBpdGVtIFZFQ19XSURFTl9Q TFVTX0hJX0VYUFIKLUBpdGVteCBWRUNfV0lERU5fUExVU19MT19FWFBSCi1UaGVzZSBub2RlcyBy ZXByZXNlbnQgd2lkZW5pbmcgdmVjdG9yIGFkZGl0aW9uIG9mIHRoZSBoaWdoIGFuZCBsb3cgcGFy dHMgb2YKLXRoZSB0d28gaW5wdXQgdmVjdG9ycywgcmVzcGVjdGl2ZWx5LiAgVGhlaXIgb3BlcmFu ZHMgYXJlIHZlY3RvcnMgdGhhdCBjb250YWluCi10aGUgc2FtZSBudW1iZXIgb2YgZWxlbWVudHMg KEBjb2Rle059KSBvZiB0aGUgc2FtZSBpbnRlZ3JhbCB0eXBlLiBUaGUgcmVzdWx0Ci1pcyBhIHZl Y3RvciB0aGF0IGNvbnRhaW5zIGhhbGYgYXMgbWFueSBlbGVtZW50cywgb2YgYW4gaW50ZWdyYWwg dHlwZSB3aG9zZSBzaXplCi1pcyB0d2ljZSBhcyB3aWRlLiAgSW4gdGhlIGNhc2Ugb2YgQGNvZGV7 VkVDX1dJREVOX1BMVVNfSElfRVhQUn0gdGhlIGhpZ2gKLUBjb2Rle04vMn0gZWxlbWVudHMgb2Yg dGhlIHR3byB2ZWN0b3JzIGFyZSBhZGRlZCB0byBwcm9kdWNlIHRoZSB2ZWN0b3Igb2YKLUBjb2Rl e04vMn0gcHJvZHVjdHMuICBJbiB0aGUgY2FzZSBvZiBAY29kZXtWRUNfV0lERU5fUExVU19MT19F WFBSfSB0aGUgbG93Ci1AY29kZXtOLzJ9IGVsZW1lbnRzIG9mIHRoZSB0d28gdmVjdG9ycyBhcmUg YWRkZWQgdG8gcHJvZHVjZSB0aGUgdmVjdG9yIG9mCi1AY29kZXtOLzJ9IHByb2R1Y3RzLgotCi1A aXRlbSBWRUNfV0lERU5fTUlOVVNfSElfRVhQUgotQGl0ZW14IFZFQ19XSURFTl9NSU5VU19MT19F WFBSCi1UaGVzZSBub2RlcyByZXByZXNlbnQgd2lkZW5pbmcgdmVjdG9yIHN1YnRyYWN0aW9uIG9m IHRoZSBoaWdoIGFuZCBsb3cgcGFydHMgb2YKLXRoZSB0d28gaW5wdXQgdmVjdG9ycywgcmVzcGVj dGl2ZWx5LiAgVGhlaXIgb3BlcmFuZHMgYXJlIHZlY3RvcnMgdGhhdCBjb250YWluCi10aGUgc2Ft ZSBudW1iZXIgb2YgZWxlbWVudHMgKEBjb2Rle059KSBvZiB0aGUgc2FtZSBpbnRlZ3JhbCB0eXBl LiBUaGUgaGlnaC9sb3cKLWVsZW1lbnRzIG9mIHRoZSBzZWNvbmQgdmVjdG9yIGFyZSBzdWJ0cmFj dGVkIGZyb20gdGhlIGhpZ2gvbG93IGVsZW1lbnRzIG9mIHRoZQotZmlyc3QuIFRoZSByZXN1bHQg aXMgYSB2ZWN0b3IgdGhhdCBjb250YWlucyBoYWxmIGFzIG1hbnkgZWxlbWVudHMsIG9mIGFuCi1p bnRlZ3JhbCB0eXBlIHdob3NlIHNpemUgaXMgdHdpY2UgYXMgd2lkZS4gIEluIHRoZSBjYXNlIG9m Ci1AY29kZXtWRUNfV0lERU5fTUlOVVNfSElfRVhQUn0gdGhlIGhpZ2ggQGNvZGV7Ti8yfSBlbGVt ZW50cyBvZiB0aGUgc2Vjb25kCi12ZWN0b3IgYXJlIHN1YnRyYWN0ZWQgZnJvbSB0aGUgaGlnaCBA Y29kZXtOLzJ9IG9mIHRoZSBmaXJzdCB0byBwcm9kdWNlIHRoZQotdmVjdG9yIG9mIEBjb2Rle04v Mn0gcHJvZHVjdHMuICBJbiB0aGUgY2FzZSBvZgotQGNvZGV7VkVDX1dJREVOX01JTlVTX0xPX0VY UFJ9IHRoZSBsb3cgQGNvZGV7Ti8yfSBlbGVtZW50cyBvZiB0aGUgc2Vjb25kCi12ZWN0b3IgYXJl IHN1YnRyYWN0ZWQgZnJvbSB0aGUgbG93IEBjb2Rle04vMn0gb2YgdGhlIGZpcnN0IHRvIHByb2R1 Y2UgdGhlCi12ZWN0b3Igb2YgQGNvZGV7Ti8yfSBwcm9kdWN0cy4KLQogQGl0ZW0gVkVDX1VOUEFD S19ISV9FWFBSCiBAaXRlbXggVkVDX1VOUEFDS19MT19FWFBSCiBUaGVzZSBub2RlcyByZXByZXNl bnQgdW5wYWNraW5nIG9mIHRoZSBoaWdoIGFuZCBsb3cgcGFydHMgb2YgdGhlIGlucHV0IHZlY3Rv ciwKZGlmZiAtLWdpdCBhL2djYy9leHByLmNjIGIvZ2NjL2V4cHIuY2MKaW5kZXggNWY3MTQyYjk3 NWFkYTJjZDhiMDA2NjNkMzViYTFlMDAwNGI4ZTI4ZC4uMDU5ODBkN2I4OGE0YTExOGQ5YTUyYTY2 MGRlMWIwMjUzNTBjMzM1NSAxMDA2NDQKLS0tIGEvZ2NjL2V4cHIuY2MKKysrIGIvZ2NjL2V4cHIu Y2MKQEAgLTkzMzYsOCArOTMzNiw2IEBAIGV4cGFuZF9leHByX3JlYWxfMiAoc2Vwb3BzIG9wcywg cnR4IHRhcmdldCwgbWFjaGluZV9tb2RlIHRtb2RlLAogCQkJCQkgIHRhcmdldCwgdW5zaWduZWRw KTsKICAgICAgIHJldHVybiB0YXJnZXQ7CiAKLSAgICBjYXNlIFdJREVOX1BMVVNfRVhQUjoKLSAg ICBjYXNlIFdJREVOX01JTlVTX0VYUFI6CiAgICAgY2FzZSBXSURFTl9NVUxUX0VYUFI6CiAgICAg ICAvKiBJZiBmaXJzdCBvcGVyYW5kIGlzIGNvbnN0YW50LCBzd2FwIHRoZW0uCiAJIFRodXMgdGhl IGZvbGxvd2luZyBzcGVjaWFsIGNhc2UgY2hlY2tzIG5lZWQgb25seQpAQCAtMTAwODMsMTAgKzEw MDgxLDYgQEAgZXhwYW5kX2V4cHJfcmVhbF8yIChzZXBvcHMgb3BzLCBydHggdGFyZ2V0LCBtYWNo aW5lX21vZGUgdG1vZGUsCiAJcmV0dXJuIHRlbXA7CiAgICAgICB9CiAKLSAgICBjYXNlIFZFQ19X SURFTl9QTFVTX0hJX0VYUFI6Ci0gICAgY2FzZSBWRUNfV0lERU5fUExVU19MT19FWFBSOgotICAg IGNhc2UgVkVDX1dJREVOX01JTlVTX0hJX0VYUFI6Ci0gICAgY2FzZSBWRUNfV0lERU5fTUlOVVNf TE9fRVhQUjoKICAgICBjYXNlIFZFQ19XSURFTl9NVUxUX0hJX0VYUFI6CiAgICAgY2FzZSBWRUNf V0lERU5fTVVMVF9MT19FWFBSOgogICAgIGNhc2UgVkVDX1dJREVOX01VTFRfRVZFTl9FWFBSOgpk aWZmIC0tZ2l0IGEvZ2NjL2dpbXBsZS1wcmV0dHktcHJpbnQuY2MgYi9nY2MvZ2ltcGxlLXByZXR0 eS1wcmludC5jYwppbmRleCBlYmQ4N2IyMGEwYWRjMDgwYzRhOGY5NDI5ZTc1ZjQ5Yjk2ZTcyZjlh Li4yYTFhNWI3ZjgxMWNhMzQxZThlZTdlODVhOTcwMWQzYTM3ZmY4MGJmIDEwMDY0NAotLS0gYS9n Y2MvZ2ltcGxlLXByZXR0eS1wcmludC5jYworKysgYi9nY2MvZ2ltcGxlLXByZXR0eS1wcmludC5j YwpAQCAtNDU5LDEwICs0NTksNiBAQCBkdW1wX2JpbmFyeV9yaHMgKHByZXR0eV9wcmludGVyICpi dWZmZXIsIGNvbnN0IGdhc3NpZ24gKmdzLCBpbnQgc3BjLAogICAgIGNhc2UgVkVDX1BBQ0tfRkxP QVRfRVhQUjoKICAgICBjYXNlIFZFQ19XSURFTl9MU0hJRlRfSElfRVhQUjoKICAgICBjYXNlIFZF Q19XSURFTl9MU0hJRlRfTE9fRVhQUjoKLSAgICBjYXNlIFZFQ19XSURFTl9QTFVTX0hJX0VYUFI6 Ci0gICAgY2FzZSBWRUNfV0lERU5fUExVU19MT19FWFBSOgotICAgIGNhc2UgVkVDX1dJREVOX01J TlVTX0hJX0VYUFI6Ci0gICAgY2FzZSBWRUNfV0lERU5fTUlOVVNfTE9fRVhQUjoKICAgICBjYXNl IFZFQ19TRVJJRVNfRVhQUjoKICAgICAgIGZvciAocCA9IGdldF90cmVlX2NvZGVfbmFtZSAoY29k ZSk7ICpwOyBwKyspCiAJcHBfY2hhcmFjdGVyIChidWZmZXIsIFRPVVBQRVIgKCpwKSk7CmRpZmYg LS1naXQgYS9nY2Mvb3B0YWJzLXRyZWUuY2MgYi9nY2Mvb3B0YWJzLXRyZWUuY2MKaW5kZXggODM4 M2ZlODIwYjA4MGY2ZDY2ZjgzZGNmM2I3N2QzYzlmODY5ZjRiYy4uMmY1ZjkzZGM2NjI0Zjg2ZjZi NTYxOGNmNmU3YWEyYjUwODA1M2E2NCAxMDA2NDQKLS0tIGEvZ2NjL29wdGFicy10cmVlLmNjCisr KyBiL2djYy9vcHRhYnMtdHJlZS5jYwpAQCAtMTkwLDIyICsxOTAsNiBAQCBvcHRhYl9mb3JfdHJl ZV9jb2RlIChlbnVtIHRyZWVfY29kZSBjb2RlLCBjb25zdF90cmVlIHR5cGUsCiAgICAgICByZXR1 cm4gKFRZUEVfVU5TSUdORUQgKHR5cGUpCiAJICAgICAgPyB2ZWNfd2lkZW5fdXNoaWZ0bF9sb19v cHRhYiA6IHZlY193aWRlbl9zc2hpZnRsX2xvX29wdGFiKTsKIAotICAgIGNhc2UgVkVDX1dJREVO X1BMVVNfTE9fRVhQUjoKLSAgICAgIHJldHVybiAoVFlQRV9VTlNJR05FRCAodHlwZSkKLQkgICAg ICA/IHZlY193aWRlbl91YWRkbF9sb19vcHRhYiA6IHZlY193aWRlbl9zYWRkbF9sb19vcHRhYik7 Ci0KLSAgICBjYXNlIFZFQ19XSURFTl9QTFVTX0hJX0VYUFI6Ci0gICAgICByZXR1cm4gKFRZUEVf VU5TSUdORUQgKHR5cGUpCi0JICAgICAgPyB2ZWNfd2lkZW5fdWFkZGxfaGlfb3B0YWIgOiB2ZWNf d2lkZW5fc2FkZGxfaGlfb3B0YWIpOwotCi0gICAgY2FzZSBWRUNfV0lERU5fTUlOVVNfTE9fRVhQ UjoKLSAgICAgIHJldHVybiAoVFlQRV9VTlNJR05FRCAodHlwZSkKLQkgICAgICA/IHZlY193aWRl bl91c3VibF9sb19vcHRhYiA6IHZlY193aWRlbl9zc3VibF9sb19vcHRhYik7Ci0KLSAgICBjYXNl IFZFQ19XSURFTl9NSU5VU19ISV9FWFBSOgotICAgICAgcmV0dXJuIChUWVBFX1VOU0lHTkVEICh0 eXBlKQotCSAgICAgID8gdmVjX3dpZGVuX3VzdWJsX2hpX29wdGFiIDogdmVjX3dpZGVuX3NzdWJs X2hpX29wdGFiKTsKLQogICAgIGNhc2UgVkVDX1VOUEFDS19ISV9FWFBSOgogICAgICAgcmV0dXJu IChUWVBFX1VOU0lHTkVEICh0eXBlKQogCSAgICAgID8gdmVjX3VucGFja3VfaGlfb3B0YWIgOiB2 ZWNfdW5wYWNrc19oaV9vcHRhYik7CkBAIC0zMTIsOCArMjk2LDYgQEAgb3B0YWJfZm9yX3RyZWVf Y29kZSAoZW51bSB0cmVlX2NvZGUgY29kZSwgY29uc3RfdHJlZSB0eXBlLAogICAgJ2hpJy8nbG8n IHBhaXIgdXNpbmcgY29kZXMgc3VjaCBhcyBWRUNfV0lERU5fTUlOVVNfSEkvTE8uCiAKICAgIFN1 cHBvcnRlZCB3aWRlbmluZyBvcGVyYXRpb25zOgotICAgIFdJREVOX01JTlVTX0VYUFIKLSAgICBX SURFTl9QTFVTX0VYUFIKICAgICBXSURFTl9NVUxUX0VYUFIKICAgICBXSURFTl9MU0hJRlRfRVhQ UgogCkBAIC0zNDUsMTIgKzMyNyw2IEBAIHN1cHBvcnRhYmxlX2hhbGZfd2lkZW5pbmdfb3BlcmF0 aW9uIChlbnVtIHRyZWVfY29kZSBjb2RlLCB0cmVlIHZlY3R5cGVfb3V0LAogICAgIGNhc2UgV0lE RU5fTFNISUZUX0VYUFI6CiAgICAgICAqY29kZTEgPSBMU0hJRlRfRVhQUjsKICAgICAgIGJyZWFr OwotICAgIGNhc2UgV0lERU5fTUlOVVNfRVhQUjoKLSAgICAgICpjb2RlMSA9IE1JTlVTX0VYUFI7 Ci0gICAgICBicmVhazsKLSAgICBjYXNlIFdJREVOX1BMVVNfRVhQUjoKLSAgICAgICpjb2RlMSA9 IFBMVVNfRVhQUjsKLSAgICAgIGJyZWFrOwogICAgIGNhc2UgV0lERU5fTVVMVF9FWFBSOgogICAg ICAgKmNvZGUxID0gTVVMVF9FWFBSOwogICAgICAgYnJlYWs7CmRpZmYgLS1naXQgYS9nY2MvdHJl ZS1jZmcuY2MgYi9nY2MvdHJlZS1jZmcuY2MKaW5kZXggZTMyMWQ5MjlmZDBjZDNkZmU4MWIwNzk2 NzRlY2U2ZDk4ZjljNWFmMS4uZTg4MjkxYTU2ZDdkZjYzNzcxMmRhZDQwOWE4ZjEyZDE2NDIyNWQ4 NSAxMDA2NDQKLS0tIGEvZ2NjL3RyZWUtY2ZnLmNjCisrKyBiL2djYy90cmVlLWNmZy5jYwpAQCAt Mzk0OCw4ICszOTQ4LDYgQEAgdmVyaWZ5X2dpbXBsZV9hc3NpZ25fYmluYXJ5IChnYXNzaWduICpz dG10KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICB9CiAKLSAgICBjYXNlIFdJREVOX1BM VVNfRVhQUjoKLSAgICBjYXNlIFdJREVOX01JTlVTX0VYUFI6CiAgICAgY2FzZSBQTFVTX0VYUFI6 CiAgICAgY2FzZSBNSU5VU19FWFBSOgogICAgICAgewpAQCAtNDA3MCwxMCArNDA2OCw2IEBAIHZl cmlmeV9naW1wbGVfYXNzaWduX2JpbmFyeSAoZ2Fzc2lnbiAqc3RtdCkKICAgICAgICAgcmV0dXJu IGZhbHNlOwogICAgICAgfQogCi0gICAgY2FzZSBWRUNfV0lERU5fTUlOVVNfSElfRVhQUjoKLSAg ICBjYXNlIFZFQ19XSURFTl9NSU5VU19MT19FWFBSOgotICAgIGNhc2UgVkVDX1dJREVOX1BMVVNf SElfRVhQUjoKLSAgICBjYXNlIFZFQ19XSURFTl9QTFVTX0xPX0VYUFI6CiAgICAgY2FzZSBWRUNf V0lERU5fTVVMVF9ISV9FWFBSOgogICAgIGNhc2UgVkVDX1dJREVOX01VTFRfTE9fRVhQUjoKICAg ICBjYXNlIFZFQ19XSURFTl9NVUxUX0VWRU5fRVhQUjoKZGlmZiAtLWdpdCBhL2djYy90cmVlLWlu bGluZS5jYyBiL2djYy90cmVlLWlubGluZS5jYwppbmRleCBjYTY2YTgyNjZiMTRkZTQyYzhjMTA5 MTdiMDYyMzlhYWY5M2E5NzU4Li43MGRmNDU4MTZmMDYxZmQ1NTQ5MzViNTFkNTM5NTQwNGQ3NzQ2 OWQ2IDEwMDY0NAotLS0gYS9nY2MvdHJlZS1pbmxpbmUuY2MKKysrIGIvZ2NjL3RyZWUtaW5saW5l LmNjCkBAIC00MjkwLDggKzQyOTAsNiBAQCBlc3RpbWF0ZV9vcGVyYXRvcl9jb3N0IChlbnVtIHRy ZWVfY29kZSBjb2RlLCBlbmlfd2VpZ2h0cyAqd2VpZ2h0cywKIAogICAgIGNhc2UgUkVBTElHTl9M T0FEX0VYUFI6CiAKLSAgICBjYXNlIFdJREVOX1BMVVNfRVhQUjoKLSAgICBjYXNlIFdJREVOX01J TlVTX0VYUFI6CiAgICAgY2FzZSBXSURFTl9TVU1fRVhQUjoKICAgICBjYXNlIFdJREVOX01VTFRf RVhQUjoKICAgICBjYXNlIERPVF9QUk9EX0VYUFI6CkBAIC00MzAwLDEwICs0Mjk4LDYgQEAgZXN0 aW1hdGVfb3BlcmF0b3JfY29zdCAoZW51bSB0cmVlX2NvZGUgY29kZSwgZW5pX3dlaWdodHMgKndl aWdodHMsCiAgICAgY2FzZSBXSURFTl9NVUxUX01JTlVTX0VYUFI6CiAgICAgY2FzZSBXSURFTl9M U0hJRlRfRVhQUjoKIAotICAgIGNhc2UgVkVDX1dJREVOX1BMVVNfSElfRVhQUjoKLSAgICBjYXNl IFZFQ19XSURFTl9QTFVTX0xPX0VYUFI6Ci0gICAgY2FzZSBWRUNfV0lERU5fTUlOVVNfSElfRVhQ UjoKLSAgICBjYXNlIFZFQ19XSURFTl9NSU5VU19MT19FWFBSOgogICAgIGNhc2UgVkVDX1dJREVO X01VTFRfSElfRVhQUjoKICAgICBjYXNlIFZFQ19XSURFTl9NVUxUX0xPX0VYUFI6CiAgICAgY2Fz ZSBWRUNfV0lERU5fTVVMVF9FVkVOX0VYUFI6CmRpZmYgLS1naXQgYS9nY2MvdHJlZS1wcmV0dHkt cHJpbnQuY2MgYi9nY2MvdHJlZS1wcmV0dHktcHJpbnQuY2MKaW5kZXggOTlhZjk3Nzk3OWQ1ODkx ZTZlODM0NTI3NmFmNzk0ZjQyMWVjZmFhYy4uMTM2MzI2MjkzZjU2NGZlNjRkNDkzNmM2YTE1MTQz ZTFmNjg3ZmE1YSAxMDA2NDQKLS0tIGEvZ2NjL3RyZWUtcHJldHR5LXByaW50LmNjCisrKyBiL2dj Yy90cmVlLXByZXR0eS1wcmludC5jYwpAQCAtMjgxNiw4ICsyODE2LDYgQEAgZHVtcF9nZW5lcmlj X25vZGUgKHByZXR0eV9wcmludGVyICpwcCwgdHJlZSBub2RlLCBpbnQgc3BjLCBkdW1wX2ZsYWdz X3QgZmxhZ3MsCiAgICAgICBicmVhazsKIAogICAgICAgLyogQmluYXJ5IGFyaXRobWV0aWMgYW5k IGxvZ2ljIGV4cHJlc3Npb25zLiAgKi8KLSAgICBjYXNlIFdJREVOX1BMVVNfRVhQUjoKLSAgICBj YXNlIFdJREVOX01JTlVTX0VYUFI6CiAgICAgY2FzZSBXSURFTl9TVU1fRVhQUjoKICAgICBjYXNl IFdJREVOX01VTFRfRVhQUjoKICAgICBjYXNlIE1VTFRfRVhQUjoKQEAgLTM3ODEsMTAgKzM3Nzks NiBAQCBkdW1wX2dlbmVyaWNfbm9kZSAocHJldHR5X3ByaW50ZXIgKnBwLCB0cmVlIG5vZGUsIGlu dCBzcGMsIGR1bXBfZmxhZ3NfdCBmbGFncywKICAgICBjYXNlIFZFQ19TRVJJRVNfRVhQUjoKICAg ICBjYXNlIFZFQ19XSURFTl9NVUxUX0hJX0VYUFI6CiAgICAgY2FzZSBWRUNfV0lERU5fTVVMVF9M T19FWFBSOgotICAgIGNhc2UgVkVDX1dJREVOX1BMVVNfSElfRVhQUjoKLSAgICBjYXNlIFZFQ19X SURFTl9QTFVTX0xPX0VYUFI6Ci0gICAgY2FzZSBWRUNfV0lERU5fTUlOVVNfSElfRVhQUjoKLSAg ICBjYXNlIFZFQ19XSURFTl9NSU5VU19MT19FWFBSOgogICAgIGNhc2UgVkVDX1dJREVOX01VTFRf RVZFTl9FWFBSOgogICAgIGNhc2UgVkVDX1dJREVOX01VTFRfT0REX0VYUFI6CiAgICAgY2FzZSBW RUNfV0lERU5fTFNISUZUX0hJX0VYUFI6CkBAIC00MzAyLDEyICs0Mjk2LDYgQEAgb3Bfc3ltYm9s X2NvZGUgKGVudW0gdHJlZV9jb2RlIGNvZGUpCiAgICAgY2FzZSBXSURFTl9MU0hJRlRfRVhQUjoK ICAgICAgIHJldHVybiAidzw8IjsKIAotICAgIGNhc2UgV0lERU5fUExVU19FWFBSOgotICAgICAg cmV0dXJuICJ3KyI7Ci0KLSAgICBjYXNlIFdJREVOX01JTlVTX0VYUFI6Ci0gICAgICByZXR1cm4g InctIjsKLQogICAgIGNhc2UgUE9JTlRFUl9QTFVTX0VYUFI6CiAgICAgICByZXR1cm4gIisiOwog CmRpZmYgLS1naXQgYS9nY2MvdHJlZS12ZWN0LWRhdGEtcmVmcy5jYyBiL2djYy90cmVlLXZlY3Qt ZGF0YS1yZWZzLmNjCmluZGV4IDA5MjIzYmFmNzE4OTBiMzRlYmVkMDA0NTYwZmFmYmQ2MDY5MTUz MGQuLmUxNmM3ZDdhZTA0NTJiNmMzOTcxZTAwMjRlNDVmM2VmZDkxYWE0MDcgMTAwNjQ0Ci0tLSBh L2djYy90cmVlLXZlY3QtZGF0YS1yZWZzLmNjCisrKyBiL2djYy90cmVlLXZlY3QtZGF0YS1yZWZz LmNjCkBAIC0xMzYsOCArMTM2LDYgQEAgdmVjdF9nZXRfc21hbGxlc3Rfc2NhbGFyX3R5cGUgKHN0 bXRfdmVjX2luZm8gc3RtdF9pbmZvLCB0cmVlIHNjYWxhcl90eXBlKQogCSAgfHwgZ2ltcGxlX2Fz c2lnbl9yaHNfY29kZSAoYXNzaWduKSA9PSBXSURFTl9TVU1fRVhQUgogCSAgfHwgZ2ltcGxlX2Fz c2lnbl9yaHNfY29kZSAoYXNzaWduKSA9PSBXSURFTl9NVUxUX0VYUFIKIAkgIHx8IGdpbXBsZV9h c3NpZ25fcmhzX2NvZGUgKGFzc2lnbikgPT0gV0lERU5fTFNISUZUX0VYUFIKLQkgIHx8IGdpbXBs ZV9hc3NpZ25fcmhzX2NvZGUgKGFzc2lnbikgPT0gV0lERU5fUExVU19FWFBSCi0JICB8fCBnaW1w bGVfYXNzaWduX3Joc19jb2RlIChhc3NpZ24pID09IFdJREVOX01JTlVTX0VYUFIKIAkgIHx8IGdp bXBsZV9hc3NpZ25fcmhzX2NvZGUgKGFzc2lnbikgPT0gRkxPQVRfRVhQUikKIAl7CiAJICB0cmVl IHJoc190eXBlID0gVFJFRV9UWVBFIChnaW1wbGVfYXNzaWduX3JoczEgKGFzc2lnbikpOwpAQCAt MzE3Miw4ICszMTcwLDggQEAgdmVjdF9hbmFseXplX2RhdGFfcmVmX2FjY2Vzc2VzICh2ZWNfaW5m byAqdmluZm8sCiAJICAgIGJyZWFrOwogCiAJICAvKiBDaGVjayB0aGF0IHRoZSBEUl9JTklUcyBh cmUgY29tcGlsZS10aW1lIGNvbnN0YW50cy4gICovCi0JICBpZiAoIXRyZWVfZml0c19zaHdpX3Ag KERSX0lOSVQgKGRyYSkpCi0JICAgICAgfHwgIXRyZWVfZml0c19zaHdpX3AgKERSX0lOSVQgKGRy YikpKQorCSAgaWYgKFRSRUVfQ09ERSAoRFJfSU5JVCAoZHJhKSkgIT0gSU5URUdFUl9DU1QKKwkg ICAgICB8fCBUUkVFX0NPREUgKERSX0lOSVQgKGRyYikpICE9IElOVEVHRVJfQ1NUKQogCSAgICBi cmVhazsKIAogCSAgLyogRGlmZmVyZW50IC5HT01QX1NJTURfTEFORSBjYWxscyBzdGlsbCBnaXZl IHRoZSBzYW1lIGxhbmUsCkBAIC0zMjI1LDcgKzMyMjMsNyBAQCB2ZWN0X2FuYWx5emVfZGF0YV9y ZWZfYWNjZXNzZXMgKHZlY19pbmZvICp2aW5mbywKIAkJICB1bnNpZ25lZCBIT1NUX1dJREVfSU5U IHN0ZXAKIAkJICAgID0gYWJzdV9od2kgKHRyZWVfdG9fc2h3aSAoRFJfU1RFUCAoZHJhKSkpOwog CQkgIGlmIChzdGVwICE9IDAKLQkJICAgICAgJiYgc3RlcCA8PSAoKHVuc2lnbmVkIEhPU1RfV0lE RV9JTlQpaW5pdF9iIC0gaW5pdF9hKSkKKwkJICAgICAgJiYgc3RlcCA8PSAodW5zaWduZWQgSE9T VF9XSURFX0lOVCkoaW5pdF9iIC0gaW5pdF9hKSkKIAkJICAgIGJyZWFrOwogCQl9CiAJICAgIH0K ZGlmZiAtLWdpdCBhL2djYy90cmVlLXZlY3QtZ2VuZXJpYy5jYyBiL2djYy90cmVlLXZlY3QtZ2Vu ZXJpYy5jYwppbmRleCA4YjcyMjdlOGI1ODBkYzFkMWU4ODQ4N2IyOGM4ZTY2ZmRiMWFjNDAwLi5l YjcwMTUxNDMwYWUxODk1MDIxMTZkNTY2YWEyNmI0ZjNjYzZmM2JjIDEwMDY0NAotLS0gYS9nY2Mv dHJlZS12ZWN0LWdlbmVyaWMuY2MKKysrIGIvZ2NjL3RyZWUtdmVjdC1nZW5lcmljLmNjCkBAIC0y MjEyLDEwICsyMjEyLDYgQEAgZXhwYW5kX3ZlY3Rvcl9vcGVyYXRpb25zXzEgKGdpbXBsZV9zdG10 X2l0ZXJhdG9yICpnc2ksCiAgICAgIGFyZ3VtZW50cywgbm90IHRoZSB3aWRlbmVkIHJlc3VsdC4g IFZFQ19VTlBBQ0tfRkxPQVRfKl9FWFBSIGlzCiAgICAgIGNhbGN1bGF0ZWQgaW4gdGhlIHNhbWUg d2F5IGFib3ZlLiAgKi8KICAgaWYgKGNvZGUgPT0gV0lERU5fU1VNX0VYUFIKLSAgICAgIHx8IGNv ZGUgPT0gVkVDX1dJREVOX1BMVVNfSElfRVhQUgotICAgICAgfHwgY29kZSA9PSBWRUNfV0lERU5f UExVU19MT19FWFBSCi0gICAgICB8fCBjb2RlID09IFZFQ19XSURFTl9NSU5VU19ISV9FWFBSCi0g ICAgICB8fCBjb2RlID09IFZFQ19XSURFTl9NSU5VU19MT19FWFBSCiAgICAgICB8fCBjb2RlID09 IFZFQ19XSURFTl9NVUxUX0hJX0VYUFIKICAgICAgIHx8IGNvZGUgPT0gVkVDX1dJREVOX01VTFRf TE9fRVhQUgogICAgICAgfHwgY29kZSA9PSBWRUNfV0lERU5fTVVMVF9FVkVOX0VYUFIKZGlmZiAt LWdpdCBhL2djYy90cmVlLXZlY3QtcGF0dGVybnMuY2MgYi9nY2MvdHJlZS12ZWN0LXBhdHRlcm5z LmNjCmluZGV4IGUwMWM5MTQ2NzNmYmRkNWIzMWY4OWFiYWZmNDc4Yjg5YTIzOTM1MzcuLjQyZmVj OWI1Y2RmNjA2OTViYzY2MjJiZWVlMjY1M2I5N2NiMWZmNzQgMTAwNjQ0Ci0tLSBhL2djYy90cmVl LXZlY3QtcGF0dGVybnMuY2MKKysrIGIvZ2NjL3RyZWUtdmVjdC1wYXR0ZXJucy5jYwpAQCAtNTUx LDIxICs1NTEsMjkgQEAgdmVjdF9qb3VzdF93aWRlbmVkX3R5cGUgKHRyZWUgdHlwZSwgdHJlZSBu ZXdfdHlwZSwgdHJlZSAqY29tbW9uX3R5cGUpCiAKIHN0YXRpYyB1bnNpZ25lZCBpbnQKIHZlY3Rf d2lkZW5lZF9vcF90cmVlICh2ZWNfaW5mbyAqdmluZm8sIHN0bXRfdmVjX2luZm8gc3RtdF9pbmZv LCB0cmVlX2NvZGUgY29kZSwKLQkJICAgICAgdHJlZV9jb2RlIHdpZGVuZWRfY29kZSwgYm9vbCBz aGlmdF9wLAorCQkgICAgICBjb2RlX2hlbHBlciB3aWRlbmVkX2NvZGUsIGJvb2wgc2hpZnRfcCwK IAkJICAgICAgdW5zaWduZWQgaW50IG1heF9ub3BzLAogCQkgICAgICB2ZWN0X3VucHJvbW90ZWRf dmFsdWUgKnVucHJvbSwgdHJlZSAqY29tbW9uX3R5cGUsCiAJCSAgICAgIGVudW0gb3B0YWJfc3Vi dHlwZSAqc3VidHlwZSA9IE5VTEwpCiB7CiAgIC8qIENoZWNrIGZvciBhbiBpbnRlZ2VyIG9wZXJh dGlvbiB3aXRoIHRoZSByaWdodCBjb2RlLiAgKi8KLSAgZ2Fzc2lnbiAqYXNzaWduID0gZHluX2Nh c3QgPGdhc3NpZ24gKj4gKHN0bXRfaW5mby0+c3RtdCk7Ci0gIGlmICghYXNzaWduKQorICBnaW1w bGUqIHN0bXQgPSBzdG10X2luZm8tPnN0bXQ7CisgIGlmICghKGlzX2dpbXBsZV9hc3NpZ24gKHN0 bXQpIHx8IGlzX2dpbXBsZV9jYWxsIChzdG10KSkpCiAgICAgcmV0dXJuIDA7CiAKLSAgdHJlZV9j b2RlIHJoc19jb2RlID0gZ2ltcGxlX2Fzc2lnbl9yaHNfY29kZSAoYXNzaWduKTsKLSAgaWYgKHJo c19jb2RlICE9IGNvZGUgJiYgcmhzX2NvZGUgIT0gd2lkZW5lZF9jb2RlKQorICBjb2RlX2hlbHBl ciByaHNfY29kZTsKKyAgaWYgKGlzX2dpbXBsZV9hc3NpZ24gKHN0bXQpKQorICAgIHJoc19jb2Rl ID0gZ2ltcGxlX2Fzc2lnbl9yaHNfY29kZSAoc3RtdCk7CisgIGVsc2UKKyAgICByaHNfY29kZSA9 IGdpbXBsZV9jYWxsX2NvbWJpbmVkX2ZuIChzdG10KTsKKworICBpZiAocmhzX2NvZGUuYXNfdHJl ZV9jb2RlICgpICE9IGNvZGUKKyAgICAgICYmIHJoc19jb2RlLmdldF9yZXAgKCkgIT0gd2lkZW5l ZF9jb2RlLmdldF9yZXAgKCkpCiAgICAgcmV0dXJuIDA7CiAKLSAgdHJlZSB0eXBlID0gVFJFRV9U WVBFIChnaW1wbGVfYXNzaWduX2xocyAoYXNzaWduKSk7CisgIHRyZWUgbGhzID0gaXNfZ2ltcGxl X2Fzc2lnbiAoc3RtdCkgPyBnaW1wbGVfYXNzaWduX2xocyAoc3RtdCk6CisJCQkJICAgICAgZ2lt cGxlX2NhbGxfbGhzIChzdG10KTsKKyAgdHJlZSB0eXBlID0gVFJFRV9UWVBFIChsaHMpOwogICBp ZiAoIUlOVEVHUkFMX1RZUEVfUCAodHlwZSkpCiAgICAgcmV0dXJuIDA7CiAKQEAgLTU3OCw3ICs1 ODYsMTEgQEAgdmVjdF93aWRlbmVkX29wX3RyZWUgKHZlY19pbmZvICp2aW5mbywgc3RtdF92ZWNf aW5mbyBzdG10X2luZm8sIHRyZWVfY29kZSBjb2RlLAogICAgIHsKICAgICAgIHZlY3RfdW5wcm9t b3RlZF92YWx1ZSAqdGhpc191bnByb20gPSAmdW5wcm9tW25leHRfb3BdOwogICAgICAgdW5zaWdu ZWQgaW50IG5vcHMgPSAxOwotICAgICAgdHJlZSBvcCA9IGdpbXBsZV9vcCAoYXNzaWduLCBpICsg MSk7CisgICAgICB0cmVlIG9wOworICAgICAgaWYgKGlzX2dpbXBsZV9hc3NpZ24gKHN0bXQpKQor CW9wID0gZ2ltcGxlX29wIChzdG10LCBpICsgMSk7CisgICAgICBlbHNlCisJb3AgPSBnaW1wbGVf Y2FsbF9hcmcgKHN0bXQsIGkpOwogICAgICAgaWYgKGkgPT0gMSAmJiBUUkVFX0NPREUgKG9wKSA9 PSBJTlRFR0VSX0NTVCkKIAl7CiAJICAvKiBXZSBhbHJlYWR5IGhhdmUgYSBjb21tb24gdHlwZSBm cm9tIGVhcmxpZXIgb3BlcmFuZHMuCkBAIC0xMjkxLDggKzEzMDMsOSBAQCB2ZWN0X3JlY29nX3Nh ZF9wYXR0ZXJuICh2ZWNfaW5mbyAqdmluZm8sCiAgIC8qIEZPUk5PVy4gIENhbiBjb250aW51ZSBh bmFseXppbmcgdGhlIGRlZi11c2UgY2hhaW4gd2hlbiB0aGlzIHN0bXQgaW4gYSBwaGkKICAgICAg aW5zaWRlIHRoZSBsb29wIChpbiBjYXNlIHdlIGFyZSBhbmFseXppbmcgYW4gb3V0ZXItbG9vcCku ICAqLwogICB2ZWN0X3VucHJvbW90ZWRfdmFsdWUgdW5wcm9tWzJdOwotICBpZiAoIXZlY3Rfd2lk ZW5lZF9vcF90cmVlICh2aW5mbywgZGlmZl9zdG10X3ZpbmZvLCBNSU5VU19FWFBSLCBXSURFTl9N SU5VU19FWFBSLAotCQkJICAgICBmYWxzZSwgMiwgdW5wcm9tLCAmaGFsZl90eXBlKSkKKyAgaWYg KCF2ZWN0X3dpZGVuZWRfb3BfdHJlZSAodmluZm8sIGRpZmZfc3RtdF92aW5mbywgTUlOVVNfRVhQ UiwKKwkJCSAgICAgQ0ZOX1ZFQ19XSURFTl9NSU5VUywgZmFsc2UsIDIsIHVucHJvbSwKKwkJCSAg ICAgJmhhbGZfdHlwZSkpCiAgICAgcmV0dXJuIE5VTEw7CiAKICAgdmVjdF9wYXR0ZXJuX2RldGVj dGVkICgidmVjdF9yZWNvZ19zYWRfcGF0dGVybiIsIGxhc3Rfc3RtdCk7CkBAIC0yMzI5LDkgKzIz NDIsMTAgQEAgdmVjdF9yZWNvZ19hdmVyYWdlX3BhdHRlcm4gKHZlY19pbmZvICp2aW5mbywKICAg aW50ZXJuYWxfZm4gaWZuID0gSUZOX0FWR19GTE9PUjsKICAgdmVjdF91bnByb21vdGVkX3ZhbHVl IHVucHJvbVszXTsKICAgdHJlZSBuZXdfdHlwZTsKKyAgZW51bSBvcHRhYl9zdWJ0eXBlIHN1YnR5 cGU7CiAgIHVuc2lnbmVkIGludCBub3BzID0gdmVjdF93aWRlbmVkX29wX3RyZWUgKHZpbmZvLCBw bHVzX3N0bXRfaW5mbywgUExVU19FWFBSLAotCQkJCQkgICAgV0lERU5fUExVU19FWFBSLCBmYWxz ZSwgMywKLQkJCQkJICAgIHVucHJvbSwgJm5ld190eXBlKTsKKwkJCQkJICAgIENGTl9WRUNfV0lE RU5fUExVUywgZmFsc2UsIDMsCisJCQkJCSAgICB1bnByb20sICZuZXdfdHlwZSwgJnN1YnR5cGUp OwogICBpZiAobm9wcyA9PSAwKQogICAgIHJldHVybiBOVUxMOwogICBpZiAobm9wcyA9PSAzKQpk aWZmIC0tZ2l0IGEvZ2NjL3RyZWUtdmVjdC1zdG10cy5jYyBiL2djYy90cmVlLXZlY3Qtc3RtdHMu Y2MKaW5kZXggNWI3MzFjYWQwNTNlOTFmMTViOGNhNDUyYmU3ZmVjOWFjZmMwZDdmZC4uNWVjYTVh YmFlMWZlYjliMzY0MjI4YmU1NjI4MTcwMWY1OGJjYTJmOSAxMDA2NDQKLS0tIGEvZ2NjL3RyZWUt dmVjdC1zdG10cy5jYworKysgYi9nY2MvdHJlZS12ZWN0LXN0bXRzLmNjCkBAIC00ODYyLDkgKzQ4 NjIsNyBAQCB2ZWN0b3JpemFibGVfY29udmVyc2lvbiAodmVjX2luZm8gKnZpbmZvLAogCiAgIGlm IChpc19naW1wbGVfYXNzaWduIChzdG10KSkKICAgewotICAgICAgd2lkZW5fYXJpdGggPSAoY29k ZSA9PSBXSURFTl9QTFVTX0VYUFIKLQkJICAgICB8fCBjb2RlID09IFdJREVOX01JTlVTX0VYUFIK LQkJICAgICB8fCBjb2RlID09IFdJREVOX01VTFRfRVhQUgorICAgICAgd2lkZW5fYXJpdGggPSAo Y29kZSA9PSBXSURFTl9NVUxUX0VYUFIKIAkJICAgICB8fCBjb2RlID09IFdJREVOX0xTSElGVF9F WFBSKTsKICB9CiAgIGVsc2UKQEAgLTQ5MTcsOCArNDkxNSw2IEBAIHZlY3Rvcml6YWJsZV9jb252 ZXJzaW9uICh2ZWNfaW5mbyAqdmluZm8sCiAgICAgewogICAgICAgZ2NjX2Fzc2VydCAoY29kZSA9 PSBXSURFTl9NVUxUX0VYUFIKIAkJICB8fCBjb2RlID09IFdJREVOX0xTSElGVF9FWFBSCi0JCSAg fHwgY29kZSA9PSBXSURFTl9QTFVTX0VYUFIKLQkJICB8fCBjb2RlID09IFdJREVOX01JTlVTX0VY UFIKIAkJICB8fCB3aWRlbl9hcml0aCk7CiAKIApAQCAtMTE5MzcsNyArMTE5MzMsNyBAQCBzdXBw b3J0YWJsZV93aWRlbmluZ19vcGVyYXRpb24gKHZlY19pbmZvICp2aW5mbywKICAgY2xhc3MgbG9v cCAqdmVjdF9sb29wID0gTlVMTDsKICAgbWFjaGluZV9tb2RlIHZlY19tb2RlOwogICBlbnVtIGlu c25fY29kZSBpY29kZTEsIGljb2RlMjsKLSAgb3B0YWIgb3B0YWIxLCBvcHRhYjI7CisgIG9wdGFi IG9wdGFiMSA9IHVua25vd25fb3B0YWIsIG9wdGFiMiA9IHVua25vd25fb3B0YWI7CiAgIHRyZWUg dmVjdHlwZSA9IHZlY3R5cGVfaW47CiAgIHRyZWUgd2lkZV92ZWN0eXBlID0gdmVjdHlwZV9vdXQ7 CiAgIGNvZGVfaGVscGVyIGMxPU1BWF9UUkVFX0NPREVTLCBjMj1NQVhfVFJFRV9DT0RFUzsKQEAg LTEyMDMxLDE2ICsxMjAyNyw2IEBAIHN1cHBvcnRhYmxlX3dpZGVuaW5nX29wZXJhdGlvbiAodmVj X2luZm8gKnZpbmZvLAogICAgICAgYzIgPSBWRUNfV0lERU5fTFNISUZUX0hJX0VYUFI7CiAgICAg ICBicmVhazsKIAotICAgIGNhc2UgV0lERU5fUExVU19FWFBSOgotICAgICAgYzEgPSBWRUNfV0lE RU5fUExVU19MT19FWFBSOwotICAgICAgYzIgPSBWRUNfV0lERU5fUExVU19ISV9FWFBSOwotICAg ICAgYnJlYWs7Ci0KLSAgICBjYXNlIFdJREVOX01JTlVTX0VYUFI6Ci0gICAgICBjMSA9IFZFQ19X SURFTl9NSU5VU19MT19FWFBSOwotICAgICAgYzIgPSBWRUNfV0lERU5fTUlOVVNfSElfRVhQUjsK LSAgICAgIGJyZWFrOwotCiAgICAgQ0FTRV9DT05WRVJUOgogICAgICAgYzEgPSBWRUNfVU5QQUNL X0xPX0VYUFI7CiAgICAgICBjMiA9IFZFQ19VTlBBQ0tfSElfRVhQUjsKZGlmZiAtLWdpdCBhL2dj Yy90cmVlLmRlZiBiL2djYy90cmVlLmRlZgppbmRleCA2MjY1MGI2OTM0YjMzN2M1ZDU2ZTUzOTNk YzExNDE3M2Q3MmM5YWE5Li45YjJkY2UzNTc2NDQwYzQ0NWQzMjQwYjllZDkzN2ZlNjdjOWE1OTky IDEwMDY0NAotLS0gYS9nY2MvdHJlZS5kZWYKKysrIGIvZ2NjL3RyZWUuZGVmCkBAIC0xMzgzLDgg KzEzODMsNiBAQCBERUZUUkVFQ09ERSAoV0lERU5fTVVMVF9NSU5VU19FWFBSLCAid2lkZW5fbXVs dF9taW51c19leHByIiwgdGNjX2V4cHJlc3Npb24sIDMpCiAgICB0aGUgZmlyc3QgYXJndW1lbnQg ZnJvbSB0eXBlIHQxIHRvIHR5cGUgdDIsIGFuZCB0aGVuIHNoaWZ0aW5nIGl0CiAgICBieSB0aGUg c2Vjb25kIGFyZ3VtZW50LiAgKi8KIERFRlRSRUVDT0RFIChXSURFTl9MU0hJRlRfRVhQUiwgIndp ZGVuX2xzaGlmdF9leHByIiwgdGNjX2JpbmFyeSwgMikKLURFRlRSRUVDT0RFIChXSURFTl9QTFVT X0VYUFIsICJ3aWRlbl9wbHVzX2V4cHIiLCB0Y2NfYmluYXJ5LCAyKQotREVGVFJFRUNPREUgKFdJ REVOX01JTlVTX0VYUFIsICJ3aWRlbl9taW51c19leHByIiwgdGNjX2JpbmFyeSwgMikKIAogLyog V2lkZW5pbmcgdmVjdG9yIG11bHRpcGxpY2F0aW9uLgogICAgVGhlIHR3byBvcGVyYW5kcyBhcmUg dmVjdG9ycyB3aXRoIE4gZWxlbWVudHMgb2Ygc2l6ZSBTLiBNdWx0aXBseWluZyB0aGUKQEAgLTE0 NDksMTAgKzE0NDcsNiBAQCBERUZUUkVFQ09ERSAoVkVDX1BBQ0tfRkxPQVRfRVhQUiwgInZlY19w YWNrX2Zsb2F0X2V4cHIiLCB0Y2NfYmluYXJ5LCAyKQogICovCiBERUZUUkVFQ09ERSAoVkVDX1dJ REVOX0xTSElGVF9ISV9FWFBSLCAid2lkZW5fbHNoaWZ0X2hpX2V4cHIiLCB0Y2NfYmluYXJ5LCAy KQogREVGVFJFRUNPREUgKFZFQ19XSURFTl9MU0hJRlRfTE9fRVhQUiwgIndpZGVuX2xzaGlmdF9s b19leHByIiwgdGNjX2JpbmFyeSwgMikKLURFRlRSRUVDT0RFIChWRUNfV0lERU5fUExVU19ISV9F WFBSLCAid2lkZW5fcGx1c19oaV9leHByIiwgdGNjX2JpbmFyeSwgMikKLURFRlRSRUVDT0RFIChW RUNfV0lERU5fUExVU19MT19FWFBSLCAid2lkZW5fcGx1c19sb19leHByIiwgdGNjX2JpbmFyeSwg MikKLURFRlRSRUVDT0RFIChWRUNfV0lERU5fTUlOVVNfSElfRVhQUiwgIndpZGVuX21pbnVzX2hp X2V4cHIiLCB0Y2NfYmluYXJ5LCAyKQotREVGVFJFRUNPREUgKFZFQ19XSURFTl9NSU5VU19MT19F WFBSLCAid2lkZW5fbWludXNfbG9fZXhwciIsIHRjY19iaW5hcnksIDIpCiAKIC8qIFBSRURJQ1Rf RVhQUi4gIFNwZWNpZnkgaGludCBmb3IgYnJhbmNoIHByZWRpY3Rpb24uICBUaGUKICAgIFBSRURJ Q1RfRVhQUl9QUkVESUNUT1Igc3BlY2lmeSBwcmVkaWN0b3IgYW5kIFBSRURJQ1RfRVhQUl9PVVRD T01FIHRoZQotLSAKMi4xNy4xCgo= --_004_DB9PR08MB660300446C4580E5B601CAD4F5EC9DB9PR08MB6603eurp_--