From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-HE1-obe.outbound.protection.outlook.com (mail-eopbgr70040.outbound.protection.outlook.com [40.107.7.40]) by sourceware.org (Postfix) with ESMTPS id 6DE123857C6F for ; Mon, 15 Nov 2021 10:47:21 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 6DE123857C6F Received: from AS8PR07CA0057.eurprd07.prod.outlook.com (2603:10a6:20b:459::34) by PAXPR08MB7336.eurprd08.prod.outlook.com (2603:10a6:102:223::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.26; Mon, 15 Nov 2021 10:47:14 +0000 Received: from AM5EUR03FT009.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:459:cafe::b4) by AS8PR07CA0057.outlook.office365.com (2603:10a6:20b:459::34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.18 via Frontend Transport; Mon, 15 Nov 2021 10:47:13 +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 AM5EUR03FT009.mail.protection.outlook.com (10.152.16.110) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.20 via Frontend Transport; Mon, 15 Nov 2021 10:47:11 +0000 Received: ("Tessian outbound 8133f76bddb7:v109"); Mon, 15 Nov 2021 10:47:11 +0000 X-CR-MTA-TID: 64aa7808 Received: from 0f25a402e073.3 by 64aa7808-outbound-1.mta.getcheckrecipient.com id DF5966AD-5FC9-4BA3-8B71-97535B3BEFF4.1; Mon, 15 Nov 2021 10:47:05 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 0f25a402e073.3 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Mon, 15 Nov 2021 10:47:05 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=VWt+UjaOxvrUx7+4oCUwuofWs9wA0xwj0FVN+pQTL7V0mOG8gMjl5t6pOg3WjqJ4sXgMLHMEVBqnvullzLhsY2Z8YdjHfxrbdTaofaLte5s0P3/qf+OlizEoe1MaFeVLAXw4d6IKUXBK6bU6YOr2NIsLmaQRPxVqQy3VXnYhe9WrCx97QwjZ0gV2WEDMWa8S66y5CLlGLCoIR8upvB1uffbOsh1Dt9i6sHi2dUdm5S7c8/4d4MbWAoj0qlSpkD+utV1P9Ai3YTKWJxdrizuZRCpWmspNrPM2F2KfdCRzeb/odQLbqTX4GQh4ROrf3t8ZBS2xk4N916GEqYzOvM+gVA== 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=CrNv6EHzEnxOqLslTftOgtZiLGNwNqRuUXAp8TaV7A8=; b=VqiIxxVfIAaQmZ8fakulGDokhyt50JhSm1CQICtJR6nW5MaEHvkbHixtOlV3XCD6F+9h+c6Ui2+9vylNZi79CSl+n9QcD80Ik8mzqK7oV95DEspDdUUPtFyE0/Bunm2zLYzdqjAvaoKSJUxefGzUyDJ7hlutg1tiHcPFzoJMR3dvFs++W4s+Fhxt9bnhg6F8LTpSqXegEVIE39WZP9FTrubCz+UpDnmXInQSVH6za1AYj2POnvLoU0hFE2n+5YiP2J488V6NmON6bGZlbe1Flteyg46Pzxa85amAE3CROnkhvcZbDHaNy1v/QqdmIkp8nd+33D9ljCKQ8DroTya/VA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none Received: from VI1PR08MB5325.eurprd08.prod.outlook.com (2603:10a6:803:13e::17) by VI1PR0801MB2062.eurprd08.prod.outlook.com (2603:10a6:800:83::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4690.18; Mon, 15 Nov 2021 10:47:03 +0000 Received: from VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::4ec:31a:1083:adfd]) by VI1PR08MB5325.eurprd08.prod.outlook.com ([fe80::4ec:31a:1083:adfd%5]) with mapi id 15.20.4690.027; Mon, 15 Nov 2021 10:47:02 +0000 From: Tamar Christina To: Richard Sandiford CC: "gcc-patches@gcc.gnu.org" , nd , Richard Earnshaw , Marcus Shawcroft , Kyrylo Tkachov Subject: RE: [PATCH 2/5]AArch64 sve: combine nested if predicates Thread-Topic: [PATCH 2/5]AArch64 sve: combine nested if predicates Thread-Index: AQHXnmyRef03kR2OtES+HEKIAtB1PauSLStmgByoCDCAH2tWt4AiYxQggAAVgt+AFCVKsA== Date: Mon, 15 Nov 2021 10:47:01 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-ts-tracking-id: A21852EDA27A3F45837F02DC84AC3CB2.0 x-checkrecipientchecked: true Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: 04b356fb-54aa-4c3e-a68c-08d9a82547ab x-ms-traffictypediagnostic: VI1PR0801MB2062:|PAXPR08MB7336: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:2887;OLM:2887; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: Z1ghrI+kL6nTTK+q/XeLVZrcO8E5cSwST/fc69bI4scCh4f15c2RuaK61JBFVED3Gm4EV9pJkwR95KzIOU4GlkA8tWk10SOhEXa+bRR63rhFkvmp2uBb+dGl0WIODQJHusc7+Zps5YZ9mE3V2HmWcUhVjLk1mYd30n6oJARUqy0Pph3DolJzBK8V7XHp9hWlCeaYusxICmDsOuVcntfFl0XJXn/27byAmVf4WWa67eRzQSzwHtFyAJMww9/oV3mWS8tcLSrFbI6GIvNQFKFa0WNPx2bsbAYfrSWI5eVTmulTS6Oo3P85QelObouqlUwxGMC5XVr063zkGco/Phn73beln0sT4BMB2lIiUF4wezbean6g0U4KXBV6WL9h9LUf08ysUfGmCf37DKcqVFztsyv8Fjqx24VmuGix8aVtI9dQoG/ByP26jGYmj7wDoMtoGLCzngzX6ftQ332KtvtdUBDS9mDAOlCfzr8KgyfI36/xMFQpVF9Cf59DRKWb5DLaWesi3cKtB2PaXG/FQcMTK4PCgcuctCcXXaEJMTrkJvbpy46OSRz5nJ2suh/RUJb744iM5L6Vchv3xDMhrKq5VO8LhflHL2QwxOe5cSBGnBuNbDze0FILUYyZMgOejJIFJlh+Eg/79puqF9oItDvI50AYjLYSsx165Xa+SiHdHsVpHugHX84hZAG5YFOLwqk3kkqwubYzuSDyMw7OJxcly8EZwn1i6TyhiuSIqZPY8puZvKg3ebpIkw3HcJmziwtAlx+omptWpkTRb1vRTpyFuWv5oFEbS5mIvlbhYoFYhZU= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VI1PR08MB5325.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(2906002)(76116006)(66946007)(9686003)(64756008)(66556008)(508600001)(71200400001)(55016002)(6636002)(26005)(7696005)(186003)(99936003)(52536014)(6506007)(8676002)(83380400001)(8936002)(66446008)(86362001)(66476007)(38070700005)(30864003)(33656002)(38100700002)(54906003)(4326008)(6862004)(5660300002)(316002)(122000001); DIR:OUT; SFP:1101; Content-Type: multipart/mixed; boundary="_002_VI1PR08MB53252D32B0080B490D674CF4FF989VI1PR08MB5325eurp_" MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: VI1PR0801MB2062 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: AM5EUR03FT009.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: e85035dc-6b85-4fd7-39e6-08d9a825421b X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: YWVuRR+TWIrDQ8UTgv4i7lJZvlpjK1xRC2aubJjxzWK9wdYSOYoduXFmUc6xyWj/yt9kOCnID2CuaoGAyWFzQiwVd8o6LeU5tPfCzIsDvoVtloBvQiCT2pVOYg5n4N8uaK4Ju8KKHkEfTDvOvfj+LD9KdHjkhF+un4BNVxQDee2gUXFPO16CrjhBN5welL8NbnTrDq1TljpdUBFuMhMDRTGmZ/hQY6k3bln9rsKMLFW0ioXNu4CjoCjbUzvMiUmW1CGZ8TWSyca5nH7S0xgqrsRZf9Fw1JjjYiRcWCJa6U0oiylgAzOpDUrv2egcPg4RqsuYfGMPausskzE4l4czLojIhTMYsYp1307V+pfTkUC3STo5/7yfZEklghzjkGP01UPJ6+o+xUermGJbOg6MgKm7vgo2q0OensGe0k6UgAILbS1VJyzePHZSUdWwwY1Nl4dEH2G09jfO/zLGiyl3DLRhfbiYxD9G54Bs8q5CwCKCvqdDT2BafbxAB8d1P/QUV2P6Cehtde/VY6mFsOcUv8CG/Wa9PhNfDilCuTk+uT9z9Vt8sVcIPHamOW8xcqzhf+swwe2BK2HFyAPa38eQnHZxFSxZWo/TUW3SwM11i4bfQmx8H6rwsptooiOd2Xr9Skt/6pwZqRMKI32KRoAc7BXLZV2/LUOg1Zx1owd93RXM/9+1DdyWfgF6kEfkGEOK6pxJqoYSBLXL50M1J+bS4DTcjRnNsksyT4f61ZHc4XbFANjrMqCZZW9AQI3Kz8dSrVf1Vjzo0QUFkQVjnpbCzp0WOvB0PNlIh/IWDHpkVghrcPq0TojFIoI5dz7YnkKy 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:ErrorRetry; CAT:NONE; SFS:(4636009)(36840700001)(46966006)(54906003)(86362001)(70206006)(8936002)(186003)(33964004)(26005)(70586007)(7696005)(52536014)(6862004)(8676002)(5660300002)(6636002)(36860700001)(235185007)(508600001)(316002)(9686003)(4326008)(336012)(47076005)(83380400001)(356005)(99936003)(30864003)(81166007)(82310400003)(55016002)(6506007)(2906002)(33656002)(36900700001); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Nov 2021 10:47:11.8554 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 04b356fb-54aa-4c3e-a68c-08d9a82547ab 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: AM5EUR03FT009.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: PAXPR08MB7336 X-Spam-Status: No, score=-13.5 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, GIT_PATCH_0, KAM_LOTSOFHASH, KAM_SHORT, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, UNPARSEABLE_RELAY autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 15 Nov 2021 10:47:27 -0000 --_002_VI1PR08MB53252D32B0080B490D674CF4FF989VI1PR08MB5325eurp_ Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Qm9vdHN0cmFwcGVkIFJlZ3Rlc3RlZCBvbiBhYXJjaDY0LW5vbmUtbGludXgtZ251LCB4ODZfNjQt bGludXgtZ251IGFuZCBubyBpc3N1ZXMuDQoNCmdjYy9DaGFuZ2VMb2c6DQoNCgkqIHRyZWUtdmVj dC1zdG10cy5jIChwcmVwYXJlX2xvYWRfc3RvcmVfbWFzayk6IFJlbmFtZSB0by4uLg0KCShwcmVw YXJlX3ZlY19tYXNrKTogLi4uVGhpcyBhbmQgcmVjb3JkIG9wZXJhdGlvbnMgdGhhdCBoYXZlIGFs cmVhZHkgYmVlbg0KCW1hc2tlZC4NCgkodmVjdG9yaXphYmxlX2NhbGwpOiBVc2UgaXQuDQoJKHZl Y3Rvcml6YWJsZV9vcGVyYXRpb24pOiBMaWtld2lzZS4NCgkodmVjdG9yaXphYmxlX3N0b3JlKTog TGlrZXdpc2UuDQoJKHZlY3Rvcml6YWJsZV9sb2FkKTogTGlrZXdpc2UuDQoJKiB0cmVlLXZlY3Rv cml6ZXIuYyAodmVjX2NvbmRfbWFza2VkX2tleTo6Z2V0X2NvbmRfb3BzX2Zyb21fdHJlZSk6IE5l dy4NCgkqIHRyZWUtdmVjdG9yaXplci5oIChzdHJ1Y3QgdmVjX2NvbmRfbWFza2VkX2tleSk6IE5l dy4NCgkoY2xhc3MgX2xvb3BfdmVjX2luZm8pOiBBZGQgdmVjX2NvbmRfbWFza2VkX3NldC4NCgko dmVjX2NvbmRfbWFza2VkX3NldF90eXBlKTogTmV3Lg0KCShzdHJ1Y3QgZGVmYXVsdF9oYXNoX3Ry YWl0czx2ZWNfY29uZF9tYXNrZWRfa2V5Pik6IE5ldy4NCg0KDQpnY2MvdGVzdHN1aXRlL0NoYW5n ZUxvZzoNCg0KCSogZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9wcmVkLWNvbWJpbmUtYW5kLmM6IE5l dyB0ZXN0Lg0KDQotLS0gaW5saW5lIGNvcHkgb2YgcGF0Y2ggLS0tDQoNCmRpZmYgLS1naXQgYS9n Y2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvcHJlZC1jb21iaW5lLWFuZC5jIGIv Z2NjL3Rlc3RzdWl0ZS9nY2MudGFyZ2V0L2FhcmNoNjQvc3ZlL3ByZWQtY29tYmluZS1hbmQuYw0K bmV3IGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAuLmVlOTI3MzQ2YWJlNTE4Y2FhM2NiYTM5N2IxMWRmZDFlZTdlOTM2MzANCi0t LSAvZGV2L251bGwNCisrKyBiL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9w cmVkLWNvbWJpbmUtYW5kLmMNCkBAIC0wLDAgKzEsMTggQEANCisvKiB7IGRnLWRvIGNvbXBpbGUg fSAqLw0KKy8qIHsgZGctb3B0aW9ucyAiLU8zIiB9ICovDQorDQordm9pZCBmNShmbG9hdCAqIHJl c3RyaWN0IHowLCBmbG9hdCAqIHJlc3RyaWN0IHoxLCBmbG9hdCAqcmVzdHJpY3QgeCwgZmxvYXQg KiByZXN0cmljdCB5LCBmbG9hdCBjLCBpbnQgbikNCit7DQorICAgIGZvciAoaW50IGkgPSAwOyBp IDwgbjsgaSsrKSB7DQorICAgICAgICBmbG9hdCBhID0geFtpXTsNCisgICAgICAgIGZsb2F0IGIg PSB5W2ldOw0KKyAgICAgICAgaWYgKGEgPiBiKSB7DQorICAgICAgICAgICAgejBbaV0gPSBhICsg YjsNCisgICAgICAgICAgICBpZiAoYSA+IGMpIHsNCisgICAgICAgICAgICAgICAgejFbaV0gPSBh IC0gYjsNCisgICAgICAgICAgICB9DQorICAgICAgICB9DQorICAgIH0NCit9DQorDQorLyogeyBk Zy1maW5hbCB7IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtcdGZjbWd0XHRwWzAtOV0rXC5zLCBwWzAt OV0rL3osIHpbMC05XStcLnMsIHpbMC05XStcLnN9IDIgfSB9ICovDQpkaWZmIC0tZ2l0IGEvZ2Nj L3RyZWUtdmVjdC1zdG10cy5jIGIvZ2NjL3RyZWUtdmVjdC1zdG10cy5jDQppbmRleCAyMjg0YWQw NjllNGQ1MjFmNGUwYmQ0M2QzNDE4MWEyNThjZDYzNmVmLi5iMTk0NmI1ODkwNDMzMTJhOWIyOWQ4 MzJmOWI4Mzk4ZTI0Nzg3YTVmIDEwMDY0NA0KLS0tIGEvZ2NjL3RyZWUtdmVjdC1zdG10cy5jDQor KysgYi9nY2MvdHJlZS12ZWN0LXN0bXRzLmMNCkBAIC0xNzk2LDIzICsxNzk2LDMwIEBAIGNoZWNr X2xvYWRfc3RvcmVfZm9yX3BhcnRpYWxfdmVjdG9ycyAobG9vcF92ZWNfaW5mbyBsb29wX3ZpbmZv LCB0cmVlIHZlY3R5cGUsDQogLyogUmV0dXJuIHRoZSBtYXNrIGlucHV0IHRvIGEgbWFza2VkIGxv YWQgb3Igc3RvcmUuICBWRUNfTUFTSyBpcyB0aGUgdmVjdG9yaXplZA0KICAgIGZvcm0gb2YgdGhl IHNjYWxhciBtYXNrIGNvbmRpdGlvbiBhbmQgTE9PUF9NQVNLLCBpZiBub25udWxsLCBpcyB0aGUg bWFzaw0KICAgIHRoYXQgbmVlZHMgdG8gYmUgYXBwbGllZCB0byBhbGwgbG9hZHMgYW5kIHN0b3Jl cyBpbiBhIHZlY3Rvcml6ZWQgbG9vcC4NCi0gICBSZXR1cm4gVkVDX01BU0sgaWYgTE9PUF9NQVNL IGlzIG51bGwsIG90aGVyd2lzZSByZXR1cm4gVkVDX01BU0sgJiBMT09QX01BU0suDQorICAgUmV0 dXJuIFZFQ19NQVNLIGlmIExPT1BfTUFTSyBpcyBudWxsIG9yIGlmIFZFQ19NQVNLIGlzIGFscmVh ZHkgbWFza2VkLA0KKyAgIG90aGVyd2lzZSByZXR1cm4gVkVDX01BU0sgJiBMT09QX01BU0suDQog DQogICAgTUFTS19UWVBFIGlzIHRoZSB0eXBlIG9mIGJvdGggbWFza3MuICBJZiBuZXcgc3RhdGVt ZW50cyBhcmUgbmVlZGVkLA0KICAgIGluc2VydCB0aGVtIGJlZm9yZSBHU0kuICAqLw0KIA0KIHN0 YXRpYyB0cmVlDQotcHJlcGFyZV9sb2FkX3N0b3JlX21hc2sgKHRyZWUgbWFza190eXBlLCB0cmVl IGxvb3BfbWFzaywgdHJlZSB2ZWNfbWFzaywNCi0JCQkgZ2ltcGxlX3N0bXRfaXRlcmF0b3IgKmdz aSkNCitwcmVwYXJlX3ZlY19tYXNrICh0cmVlIG1hc2tfdHlwZSwgbG9vcF92ZWNfaW5mbyBsb29w X3ZpbmZvLCB0cmVlIGxvb3BfbWFzaywNCisJCSAgdHJlZSB2ZWNfbWFzaywgZ2ltcGxlX3N0bXRf aXRlcmF0b3IgKmdzaSkNCiB7DQogICBnY2NfYXNzZXJ0ICh1c2VsZXNzX3R5cGVfY29udmVyc2lv bl9wIChtYXNrX3R5cGUsIFRSRUVfVFlQRSAodmVjX21hc2spKSk7DQogICBpZiAoIWxvb3BfbWFz aykNCiAgICAgcmV0dXJuIHZlY19tYXNrOw0KIA0KICAgZ2NjX2Fzc2VydCAoVFJFRV9UWVBFIChs b29wX21hc2spID09IG1hc2tfdHlwZSk7DQorDQorICB2ZWNfY29uZF9tYXNrZWRfa2V5IGNvbmQg KHZlY19tYXNrLCBsb29wX21hc2spOw0KKyAgaWYgKGxvb3BfdmluZm8tPnZlY19jb25kX21hc2tl ZF9zZXQuY29udGFpbnMgKGNvbmQpKQ0KKyAgICByZXR1cm4gdmVjX21hc2s7DQorDQogICB0cmVl IGFuZF9yZXMgPSBtYWtlX3RlbXBfc3NhX25hbWUgKG1hc2tfdHlwZSwgTlVMTCwgInZlY19tYXNr X2FuZCIpOw0KICAgZ2ltcGxlICphbmRfc3RtdCA9IGdpbXBsZV9idWlsZF9hc3NpZ24gKGFuZF9y ZXMsIEJJVF9BTkRfRVhQUiwNCiAJCQkJCSAgdmVjX21hc2ssIGxvb3BfbWFzayk7DQorDQogICBn c2lfaW5zZXJ0X2JlZm9yZSAoZ3NpLCBhbmRfc3RtdCwgR1NJX1NBTUVfU1RNVCk7DQogICByZXR1 cm4gYW5kX3JlczsNCiB9DQpAQCAtMzUyNiw4ICszNTMzLDkgQEAgdmVjdG9yaXphYmxlX2NhbGwg KHZlY19pbmZvICp2aW5mbywNCiAJCQkgIGdjY19hc3NlcnQgKG5jb3BpZXMgPT0gMSk7DQogCQkJ ICB0cmVlIG1hc2sgPSB2ZWN0X2dldF9sb29wX21hc2sgKGdzaSwgbWFza3MsIHZlY19udW0sDQog CQkJCQkJCSAgdmVjdHlwZV9vdXQsIGkpOw0KLQkJCSAgdmFyZ3NbbWFza19vcG5vXSA9IHByZXBh cmVfbG9hZF9zdG9yZV9tYXNrDQotCQkJICAgIChUUkVFX1RZUEUgKG1hc2spLCBtYXNrLCB2YXJn c1ttYXNrX29wbm9dLCBnc2kpOw0KKwkJCSAgdmFyZ3NbbWFza19vcG5vXSA9IHByZXBhcmVfdmVj X21hc2sNCisJCQkgICAgKFRSRUVfVFlQRSAobWFzayksIGxvb3BfdmluZm8sIG1hc2ssDQorCQkJ ICAgICB2YXJnc1ttYXNrX29wbm9dLCBnc2kpOw0KIAkJCX0NCiANCiAJCSAgICAgIGdjYWxsICpj YWxsOw0KQEAgLTM1NjQsOCArMzU3Miw4IEBAIHZlY3Rvcml6YWJsZV9jYWxsICh2ZWNfaW5mbyAq dmluZm8sDQogCSAgICAgIHRyZWUgbWFzayA9IHZlY3RfZ2V0X2xvb3BfbWFzayAoZ3NpLCBtYXNr cywgbmNvcGllcywNCiAJCQkJCSAgICAgIHZlY3R5cGVfb3V0LCBqKTsNCiAJICAgICAgdmFyZ3Nb bWFza19vcG5vXQ0KLQkJPSBwcmVwYXJlX2xvYWRfc3RvcmVfbWFzayAoVFJFRV9UWVBFIChtYXNr KSwgbWFzaywNCi0JCQkJCSAgIHZhcmdzW21hc2tfb3Bub10sIGdzaSk7DQorCQk9IHByZXBhcmVf dmVjX21hc2sgKFRSRUVfVFlQRSAobWFzayksIGxvb3BfdmluZm8sIG1hc2ssDQorCQkJCSAgICB2 YXJnc1ttYXNrX29wbm9dLCBnc2kpOw0KIAkgICAgfQ0KIA0KIAkgIGdpbXBsZSAqbmV3X3N0bXQ7 DQpAQCAtNjMwMiwxMCArNjMxMCw0NiBAQCB2ZWN0b3JpemFibGVfb3BlcmF0aW9uICh2ZWNfaW5m byAqdmluZm8sDQogCX0NCiAgICAgICBlbHNlDQogCXsNCisJICB0cmVlIG1hc2sgPSBOVUxMX1RS RUU7DQorCSAgLyogV2hlbiBjb21iaW5pbmcgdHdvIG1hc2tzIGNoZWNrIGlzIGVpdGhlciBvZiB0 aGVtIGlzIGVsc2V3aGVyZQ0KKwkgICAgIGNvbWJpbmVkIHdpdGggYSBsb29wIG1hc2ssIGlmIHRo YXQncyB0aGUgY2FzZSB3ZSBjYW4gbWFyayB0aGF0IHRoZQ0KKwkgICAgIG5ldyBjb21iaW5lZCBt YXNrIGRvZXNuJ3QgbmVlZCB0byBiZSBjb21iaW5lZCB3aXRoIGEgbG9vcCBtYXNrLiAgKi8NCisJ ICBpZiAobWFza2VkX2xvb3BfcCAmJiBjb2RlID09IEJJVF9BTkRfRVhQUikNCisJICAgIHsNCisJ ICAgICAgc2NhbGFyX2NvbmRfbWFza2VkX2tleSBjb25kMCAob3AwLCBuY29waWVzKTsNCisJICAg ICAgaWYgKGxvb3BfdmluZm8tPnNjYWxhcl9jb25kX21hc2tlZF9zZXQuY29udGFpbnMgKGNvbmQw KSkNCisJCXsNCisJCSAgbWFzayA9IHZlY3RfZ2V0X2xvb3BfbWFzayAoZ3NpLCBtYXNrcywgdmVj X251bSAqIG5jb3BpZXMsDQorCQkJCQkJICB2ZWN0eXBlLCBpKTsNCisNCisJCSAgdm9wMCA9IHBy ZXBhcmVfdmVjX21hc2sgKFRSRUVfVFlQRSAobWFzayksIGxvb3BfdmluZm8sIG1hc2ssDQorCQkJ CQkgICB2b3AwLCBnc2kpOw0KKwkJfQ0KKw0KKwkgICAgICBzY2FsYXJfY29uZF9tYXNrZWRfa2V5 IGNvbmQxIChvcDEsIG5jb3BpZXMpOw0KKwkgICAgICBpZiAobG9vcF92aW5mby0+c2NhbGFyX2Nv bmRfbWFza2VkX3NldC5jb250YWlucyAoY29uZDEpKQ0KKwkJew0KKwkJICBtYXNrID0gdmVjdF9n ZXRfbG9vcF9tYXNrIChnc2ksIG1hc2tzLCB2ZWNfbnVtICogbmNvcGllcywNCisJCQkJCQkgIHZl Y3R5cGUsIGkpOw0KKw0KKwkJICB2b3AxID0gcHJlcGFyZV92ZWNfbWFzayAoVFJFRV9UWVBFICht YXNrKSwgbG9vcF92aW5mbywgbWFzaywNCisJCQkJCSAgIHZvcDEsIGdzaSk7DQorCQl9DQorCSAg ICB9DQorDQogCSAgbmV3X3N0bXQgPSBnaW1wbGVfYnVpbGRfYXNzaWduICh2ZWNfZGVzdCwgY29k ZSwgdm9wMCwgdm9wMSwgdm9wMik7DQogCSAgbmV3X3RlbXAgPSBtYWtlX3NzYV9uYW1lICh2ZWNf ZGVzdCwgbmV3X3N0bXQpOw0KIAkgIGdpbXBsZV9hc3NpZ25fc2V0X2xocyAobmV3X3N0bXQsIG5l d190ZW1wKTsNCiAJICB2ZWN0X2ZpbmlzaF9zdG10X2dlbmVyYXRpb24gKHZpbmZvLCBzdG10X2lu Zm8sIG5ld19zdG10LCBnc2kpOw0KKw0KKwkgIC8qIEVudGVyIHRoZSBjb21iaW5lZCB2YWx1ZSBp bnRvIHRoZSB2ZWN0b3IgY29uZCBoYXNoIHNvIHdlIGRvbid0DQorCSAgICAgQU5EIGl0IHdpdGgg YSBsb29wIG1hc2sgYWdhaW4uICAqLw0KKwkgIGlmIChtYXNrKQ0KKwkgICAgew0KKwkgICAgICB2 ZWNfY29uZF9tYXNrZWRfa2V5IGNvbmQgKG5ld190ZW1wLCBtYXNrKTsNCisJICAgICAgbG9vcF92 aW5mby0+dmVjX2NvbmRfbWFza2VkX3NldC5hZGQgKGNvbmQpOw0KKwkgICAgfQ0KKw0KIAkgIGlm ICh2ZWNfY3Z0X2Rlc3QpDQogCSAgICB7DQogCSAgICAgIG5ld190ZW1wID0gYnVpbGQxIChWSUVX X0NPTlZFUlRfRVhQUiwgdmVjdHlwZV9vdXQsIG5ld190ZW1wKTsNCkBAIC04MTY2LDggKzgyMTAs OCBAQCB2ZWN0b3JpemFibGVfc3RvcmUgKHZlY19pbmZvICp2aW5mbywNCiAJICAgIGZpbmFsX21h c2sgPSB2ZWN0X2dldF9sb29wX21hc2sgKGdzaSwgbG9vcF9tYXNrcywgbmNvcGllcywNCiAJCQkJ CSAgICAgdmVjdHlwZSwgaik7DQogCSAgaWYgKHZlY19tYXNrKQ0KLQkgICAgZmluYWxfbWFzayA9 IHByZXBhcmVfbG9hZF9zdG9yZV9tYXNrIChtYXNrX3ZlY3R5cGUsIGZpbmFsX21hc2ssDQotCQkJ CQkJICB2ZWNfbWFzaywgZ3NpKTsNCisJICAgIGZpbmFsX21hc2sgPSBwcmVwYXJlX3ZlY19tYXNr IChtYXNrX3ZlY3R5cGUsIGxvb3BfdmluZm8sDQorCQkJCQkgICBmaW5hbF9tYXNrLCB2ZWNfbWFz aywgZ3NpKTsNCiANCiAJICBnY2FsbCAqY2FsbDsNCiAJICBpZiAoZmluYWxfbWFzaykNCkBAIC04 MjIxLDggKzgyNjUsOCBAQCB2ZWN0b3JpemFibGVfc3RvcmUgKHZlY19pbmZvICp2aW5mbywNCiAJ CQkJCQkgdmVjX251bSAqIG5jb3BpZXMsDQogCQkJCQkJIHZlY3R5cGUsIHZlY19udW0gKiBqICsg aSk7DQogCSAgICAgIGlmICh2ZWNfbWFzaykNCi0JCWZpbmFsX21hc2sgPSBwcmVwYXJlX2xvYWRf c3RvcmVfbWFzayAobWFza192ZWN0eXBlLCBmaW5hbF9tYXNrLA0KLQkJCQkJCSAgICAgIHZlY19t YXNrLCBnc2kpOw0KKwkJZmluYWxfbWFzayA9IHByZXBhcmVfdmVjX21hc2sgKG1hc2tfdmVjdHlw ZSwgbG9vcF92aW5mbywNCisJCQkJCSAgICAgICBmaW5hbF9tYXNrLCB2ZWNfbWFzaywgZ3NpKTsN CiANCiAJICAgICAgaWYgKG1lbW9yeV9hY2Nlc3NfdHlwZSA9PSBWTUFUX0dBVEhFUl9TQ0FUVEVS KQ0KIAkJew0KQEAgLTk0NDIsOCArOTQ4Niw4IEBAIHZlY3Rvcml6YWJsZV9sb2FkICh2ZWNfaW5m byAqdmluZm8sDQogCSAgICBmaW5hbF9tYXNrID0gdmVjdF9nZXRfbG9vcF9tYXNrIChnc2ksIGxv b3BfbWFza3MsIG5jb3BpZXMsDQogCQkJCQkgICAgIHZlY3R5cGUsIGopOw0KIAkgIGlmICh2ZWNf bWFzaykNCi0JICAgIGZpbmFsX21hc2sgPSBwcmVwYXJlX2xvYWRfc3RvcmVfbWFzayAobWFza192 ZWN0eXBlLCBmaW5hbF9tYXNrLA0KLQkJCQkJCSAgdmVjX21hc2ssIGdzaSk7DQorCSAgICBmaW5h bF9tYXNrID0gcHJlcGFyZV92ZWNfbWFzayAobWFza192ZWN0eXBlLCBsb29wX3ZpbmZvLA0KKwkJ CQkJICAgZmluYWxfbWFzaywgdmVjX21hc2ssIGdzaSk7DQogDQogCSAgZ2NhbGwgKmNhbGw7DQog CSAgaWYgKGZpbmFsX21hc2spDQpAQCAtOTQ5NCw4ICs5NTM4LDggQEAgdmVjdG9yaXphYmxlX2xv YWQgKHZlY19pbmZvICp2aW5mbywNCiAJCQkJCQkgdmVjX251bSAqIG5jb3BpZXMsDQogCQkJCQkJ IHZlY3R5cGUsIHZlY19udW0gKiBqICsgaSk7DQogCSAgICAgIGlmICh2ZWNfbWFzaykNCi0JCWZp bmFsX21hc2sgPSBwcmVwYXJlX2xvYWRfc3RvcmVfbWFzayAobWFza192ZWN0eXBlLCBmaW5hbF9t YXNrLA0KLQkJCQkJCSAgICAgIHZlY19tYXNrLCBnc2kpOw0KKwkJZmluYWxfbWFzayA9IHByZXBh cmVfdmVjX21hc2sgKG1hc2tfdmVjdHlwZSwgbG9vcF92aW5mbywNCisJCQkJCSAgICAgICBmaW5h bF9tYXNrLCB2ZWNfbWFzaywgZ3NpKTsNCiANCiAJICAgICAgaWYgKGkgPiAwKQ0KIAkJZGF0YXJl Zl9wdHIgPSBidW1wX3ZlY3Rvcl9wdHIgKHZpbmZvLCBkYXRhcmVmX3B0ciwgcHRyX2luY3IsDQpk aWZmIC0tZ2l0IGEvZ2NjL3RyZWUtdmVjdG9yaXplci5oIGIvZ2NjL3RyZWUtdmVjdG9yaXplci5o DQppbmRleCBkNDY2YmU2ZmZjYjdiMmY3NzI0MzMyMzY3Y2NlMmVlZTc1MjQ1MjQwLi44OTRmMzBi MzVmYTU0OTFlMzFjNThlY2I4YTQ2NzE3ZWYzNTk4YTlhIDEwMDY0NA0KLS0tIGEvZ2NjL3RyZWUt dmVjdG9yaXplci5oDQorKysgYi9nY2MvdHJlZS12ZWN0b3JpemVyLmgNCkBAIC0zMjcsNiArMzI3 LDgwIEBAIHN0cnVjdCBkZWZhdWx0X2hhc2hfdHJhaXRzPHNjYWxhcl9jb25kX21hc2tlZF9rZXk+ DQogDQogdHlwZWRlZiBoYXNoX3NldDxzY2FsYXJfY29uZF9tYXNrZWRfa2V5PiBzY2FsYXJfY29u ZF9tYXNrZWRfc2V0X3R5cGU7DQogDQorLyogS2V5IGZvciBtYXAgdGhhdCByZWNvcmRzIGFzc29j aWF0aW9uIGJldHdlZW4NCisgICB2ZWN0b3IgY29uZGl0aW9ucyBhbmQgY29ycmVzcG9uZGluZyBs b29wIG1hc2ssIGFuZA0KKyAgIGlzIHBvcHVsYXRlZCBieSBwcmVwYXJlX3ZlY19tYXNrLiAgKi8N CisNCitzdHJ1Y3QgdmVjX2NvbmRfbWFza2VkX2tleQ0KK3sNCisgIHZlY19jb25kX21hc2tlZF9r ZXkgKHRyZWUgdCwgdHJlZSBsb29wX21hc2tfKQ0KKyAgICA6IGxvb3BfbWFzayAobG9vcF9tYXNr XykNCisgIHsNCisgICAgZ2V0X2NvbmRfb3BzX2Zyb21fdHJlZSAodCk7DQorICB9DQorDQorICB2 b2lkIGdldF9jb25kX29wc19mcm9tX3RyZWUgKHRyZWUpOw0KKw0KKyAgdHJlZSBsb29wX21hc2s7 DQorICB0cmVlX2NvZGUgY29kZTsNCisgIHRyZWUgb3AwOw0KKyAgdHJlZSBvcDE7DQorfTsNCisN Cit0ZW1wbGF0ZTw+DQorc3RydWN0IGRlZmF1bHRfaGFzaF90cmFpdHM8dmVjX2NvbmRfbWFza2Vk X2tleT4NCit7DQorICB0eXBlZGVmIHZlY19jb25kX21hc2tlZF9rZXkgY29tcGFyZV90eXBlOw0K KyAgdHlwZWRlZiB2ZWNfY29uZF9tYXNrZWRfa2V5IHZhbHVlX3R5cGU7DQorDQorICBzdGF0aWMg aW5saW5lIGhhc2h2YWxfdA0KKyAgaGFzaCAodmFsdWVfdHlwZSB2KQ0KKyAgew0KKyAgICBpbmNo YXNoOjpoYXNoIGg7DQorICAgIGguYWRkX2ludCAodi5jb2RlKTsNCisgICAgaW5jaGFzaDo6YWRk X2V4cHIgKHYub3AwLCBoLCAwKTsNCisgICAgaW5jaGFzaDo6YWRkX2V4cHIgKHYub3AxLCBoLCAw KTsNCisgICAgaC5hZGRfcHRyICh2Lmxvb3BfbWFzayk7DQorICAgIHJldHVybiBoLmVuZCAoKTsN CisgIH0NCisNCisgIHN0YXRpYyBpbmxpbmUgYm9vbA0KKyAgZXF1YWwgKHZhbHVlX3R5cGUgZXhp c3RpbmcsIHZhbHVlX3R5cGUgY2FuZGlkYXRlKQ0KKyAgew0KKyAgICByZXR1cm4gKGV4aXN0aW5n LmNvZGUgPT0gY2FuZGlkYXRlLmNvZGUNCisJICAgICYmIGV4aXN0aW5nLmxvb3BfbWFzayA9PSBj YW5kaWRhdGUubG9vcF9tYXNrDQorCSAgICAmJiBvcGVyYW5kX2VxdWFsX3AgKGV4aXN0aW5nLm9w MCwgY2FuZGlkYXRlLm9wMCwgMCkNCisJICAgICYmIG9wZXJhbmRfZXF1YWxfcCAoZXhpc3Rpbmcu b3AxLCBjYW5kaWRhdGUub3AxLCAwKSk7DQorICB9DQorDQorICBzdGF0aWMgY29uc3QgYm9vbCBl bXB0eV96ZXJvX3AgPSB0cnVlOw0KKw0KKyAgc3RhdGljIGlubGluZSB2b2lkDQorICBtYXJrX2Vt cHR5ICh2YWx1ZV90eXBlICZ2KQ0KKyAgew0KKyAgICB2Lmxvb3BfbWFzayA9IE5VTExfVFJFRTsN CisgIH0NCisNCisgIHN0YXRpYyBpbmxpbmUgYm9vbA0KKyAgaXNfZW1wdHkgKHZhbHVlX3R5cGUg dikNCisgIHsNCisgICAgcmV0dXJuIHYubG9vcF9tYXNrID09IE5VTExfVFJFRTsNCisgIH0NCisN CisgIHN0YXRpYyBpbmxpbmUgdm9pZCBtYXJrX2RlbGV0ZWQgKHZhbHVlX3R5cGUgJikge30NCisN CisgIHN0YXRpYyBpbmxpbmUgYm9vbCBpc19kZWxldGVkIChjb25zdCB2YWx1ZV90eXBlICYpDQor ICB7DQorICAgIHJldHVybiBmYWxzZTsNCisgIH0NCisNCisgIHN0YXRpYyBpbmxpbmUgdm9pZCBy ZW1vdmUgKHZhbHVlX3R5cGUgJikge30NCit9Ow0KKw0KK3R5cGVkZWYgaGFzaF9zZXQ8dmVjX2Nv bmRfbWFza2VkX2tleT4gdmVjX2NvbmRfbWFza2VkX3NldF90eXBlOw0KKw0KKw0KKw0KIC8qIERl c2NyaWJlcyB0d28gb2JqZWN0cyB3aG9zZSBhZGRyZXNzZXMgbXVzdCBiZSB1bmVxdWFsIGZvciB0 aGUgdmVjdG9yaXplZA0KICAgIGxvb3AgdG8gYmUgdmFsaWQuICAqLw0KIHR5cGVkZWYgc3RkOjpw YWlyPHRyZWUsIHRyZWU+IHZlY19vYmplY3RfcGFpcjsNCkBAIC02NDMsNiArNzE3LDkgQEAgcHVi bGljOg0KICAgLyogU2V0IG9mIHNjYWxhciBjb25kaXRpb25zIHRoYXQgaGF2ZSBsb29wIG1hc2sg YXBwbGllZC4gICovDQogICBzY2FsYXJfY29uZF9tYXNrZWRfc2V0X3R5cGUgc2NhbGFyX2NvbmRf bWFza2VkX3NldDsNCiANCisgIC8qIFNldCBvZiB2ZWN0b3IgY29uZGl0aW9ucyB0aGF0IGhhdmUg bG9vcCBtYXNrIGFwcGxpZWQuICAqLw0KKyAgdmVjX2NvbmRfbWFza2VkX3NldF90eXBlIHZlY19j b25kX21hc2tlZF9zZXQ7DQorDQogICAvKiBJZiB3ZSBhcmUgdXNpbmcgYSBsb29wIG1hc2sgdG8g YWxpZ24gbWVtb3J5IGFkZHJlc3NlcywgdGhpcyB2YXJpYWJsZQ0KICAgICAgY29udGFpbnMgdGhl IG51bWJlciBvZiB2ZWN0b3IgZWxlbWVudHMgdGhhdCB3ZSBzaG91bGQgc2tpcCBpbiB0aGUNCiAg ICAgIGZpcnN0IGl0ZXJhdGlvbiBvZiB0aGUgdmVjdG9yIGxvb3AgKGkuZS4gdGhlIG51bWJlciBv ZiBsZWFkaW5nDQpkaWZmIC0tZ2l0IGEvZ2NjL3RyZWUtdmVjdG9yaXplci5jIGIvZ2NjL3RyZWUt dmVjdG9yaXplci5jDQppbmRleCA1YzkzOTYxODY5ZGIwOGU1ZWY0ZTJkMjJkZWZmZGFiYTg1NTRk NzhmLi40ZTRkM2NhNDliNDZkYzA1MWM5MDg0MzcyZTg1MDE0NTdlMjNjNjMyIDEwMDY0NA0KLS0t IGEvZ2NjL3RyZWUtdmVjdG9yaXplci5jDQorKysgYi9nY2MvdHJlZS12ZWN0b3JpemVyLmMNCkBA IC0xNzIwLDYgKzE3MjAsNDAgQEAgc2NhbGFyX2NvbmRfbWFza2VkX2tleTo6Z2V0X2NvbmRfb3Bz X2Zyb21fdHJlZSAodHJlZSB0KQ0KICAgdGhpcy0+aW52ZXJ0ZWRfcCA9IGZhbHNlOw0KIH0NCiAN CisvKiBJZiB0aGUgY29uZGl0aW9uIHJlcHJlc2VudGVkIGJ5IFQgaXMgYSBjb21wYXJpc29uIG9y IHRoZSBTU0EgbmFtZQ0KKyAgIHJlc3VsdCBvZiBhIGNvbXBhcmlzb24sIGV4dHJhY3QgdGhlIGNv bXBhcmlzb24ncyBvcGVyYW5kcy4gIFJlcHJlc2VudA0KKyAgIFQgYXMgTkVfRVhQUiA8VCwgMD4g b3RoZXJ3aXNlLiAgKi8NCisNCit2b2lkDQordmVjX2NvbmRfbWFza2VkX2tleTo6Z2V0X2NvbmRf b3BzX2Zyb21fdHJlZSAodHJlZSB0KQ0KK3sNCisgIGlmIChUUkVFX0NPREVfQ0xBU1MgKFRSRUVf Q09ERSAodCkpID09IHRjY19jb21wYXJpc29uKQ0KKyAgICB7DQorICAgICAgdGhpcy0+Y29kZSA9 IFRSRUVfQ09ERSAodCk7DQorICAgICAgdGhpcy0+b3AwID0gVFJFRV9PUEVSQU5EICh0LCAwKTsN CisgICAgICB0aGlzLT5vcDEgPSBUUkVFX09QRVJBTkQgKHQsIDEpOw0KKyAgICAgIHJldHVybjsN CisgICAgfQ0KKw0KKyAgaWYgKFRSRUVfQ09ERSAodCkgPT0gU1NBX05BTUUpDQorICAgIGlmIChn YXNzaWduICpzdG10ID0gZHluX2Nhc3Q8Z2Fzc2lnbiAqPiAoU1NBX05BTUVfREVGX1NUTVQgKHQp KSkNCisgICAgICB7DQorCXRyZWVfY29kZSBjb2RlID0gZ2ltcGxlX2Fzc2lnbl9yaHNfY29kZSAo c3RtdCk7DQorCWlmIChUUkVFX0NPREVfQ0xBU1MgKGNvZGUpID09IHRjY19jb21wYXJpc29uKQ0K KwkgIHsNCisJICAgIHRoaXMtPmNvZGUgPSBjb2RlOw0KKwkgICAgdGhpcy0+b3AwID0gZ2ltcGxl X2Fzc2lnbl9yaHMxIChzdG10KTsNCisJICAgIHRoaXMtPm9wMSA9IGdpbXBsZV9hc3NpZ25fcmhz MiAoc3RtdCk7DQorCSAgICByZXR1cm47DQorCSAgfQ0KKyAgICAgIH0NCisNCisgIHRoaXMtPmNv ZGUgPSBORV9FWFBSOw0KKyAgdGhpcy0+b3AwID0gdDsNCisgIHRoaXMtPm9wMSA9IGJ1aWxkX3pl cm9fY3N0IChUUkVFX1RZUEUgKHQpKTsNCit9DQorDQorDQogLyogU2VlIHRoZSBjb21tZW50IGFi b3ZlIHRoZSBkZWNsYXJhdGlvbiBmb3IgZGV0YWlscy4gICovDQogDQogdW5zaWduZWQgaW50DQo= --_002_VI1PR08MB53252D32B0080B490D674CF4FF989VI1PR08MB5325eurp_ Content-Type: application/octet-stream; name="rb14777.patch" Content-Description: rb14777.patch Content-Disposition: attachment; filename="rb14777.patch"; size=10413; creation-date="Mon, 15 Nov 2021 10:46:34 GMT"; modification-date="Mon, 15 Nov 2021 10:37:18 GMT" Content-Transfer-Encoding: base64 ZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZ2NjLnRhcmdldC9hYXJjaDY0L3N2ZS9wcmVkLWNv bWJpbmUtYW5kLmMgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFyY2g2NC9zdmUvcHJlZC1j b21iaW5lLWFuZC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVlOTI3MzQ2YWJlNTE4Y2FhM2NiYTM5N2IxMWRmZDFl ZTdlOTM2MzAKLS0tIC9kZXYvbnVsbAorKysgYi9nY2MvdGVzdHN1aXRlL2djYy50YXJnZXQvYWFy Y2g2NC9zdmUvcHJlZC1jb21iaW5lLWFuZC5jCkBAIC0wLDAgKzEsMTggQEAKKy8qIHsgZGctZG8g Y29tcGlsZSB9ICovCisvKiB7IGRnLW9wdGlvbnMgIi1PMyIgfSAqLworCit2b2lkIGY1KGZsb2F0 ICogcmVzdHJpY3QgejAsIGZsb2F0ICogcmVzdHJpY3QgejEsIGZsb2F0ICpyZXN0cmljdCB4LCBm bG9hdCAqIHJlc3RyaWN0IHksIGZsb2F0IGMsIGludCBuKQoreworICAgIGZvciAoaW50IGkgPSAw OyBpIDwgbjsgaSsrKSB7CisgICAgICAgIGZsb2F0IGEgPSB4W2ldOworICAgICAgICBmbG9hdCBi ID0geVtpXTsKKyAgICAgICAgaWYgKGEgPiBiKSB7CisgICAgICAgICAgICB6MFtpXSA9IGEgKyBi OworICAgICAgICAgICAgaWYgKGEgPiBjKSB7CisgICAgICAgICAgICAgICAgejFbaV0gPSBhIC0g YjsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAgIH0KK30KKworLyogeyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLXRpbWVzIHtcdGZjbWd0XHRwWzAtOV0rXC5zLCBwWzAtOV0rL3osIHpb MC05XStcLnMsIHpbMC05XStcLnN9IDIgfSB9ICovCmRpZmYgLS1naXQgYS9nY2MvdHJlZS12ZWN0 LXN0bXRzLmMgYi9nY2MvdHJlZS12ZWN0LXN0bXRzLmMKaW5kZXggMjI4NGFkMDY5ZTRkNTIxZjRl MGJkNDNkMzQxODFhMjU4Y2Q2MzZlZi4uYjE5NDZiNTg5MDQzMzEyYTliMjlkODMyZjliODM5OGUy NDc4N2E1ZiAxMDA2NDQKLS0tIGEvZ2NjL3RyZWUtdmVjdC1zdG10cy5jCisrKyBiL2djYy90cmVl LXZlY3Qtc3RtdHMuYwpAQCAtMTc5NiwyMyArMTc5NiwzMCBAQCBjaGVja19sb2FkX3N0b3JlX2Zv cl9wYXJ0aWFsX3ZlY3RvcnMgKGxvb3BfdmVjX2luZm8gbG9vcF92aW5mbywgdHJlZSB2ZWN0eXBl LAogLyogUmV0dXJuIHRoZSBtYXNrIGlucHV0IHRvIGEgbWFza2VkIGxvYWQgb3Igc3RvcmUuICBW RUNfTUFTSyBpcyB0aGUgdmVjdG9yaXplZAogICAgZm9ybSBvZiB0aGUgc2NhbGFyIG1hc2sgY29u ZGl0aW9uIGFuZCBMT09QX01BU0ssIGlmIG5vbm51bGwsIGlzIHRoZSBtYXNrCiAgICB0aGF0IG5l ZWRzIHRvIGJlIGFwcGxpZWQgdG8gYWxsIGxvYWRzIGFuZCBzdG9yZXMgaW4gYSB2ZWN0b3JpemVk IGxvb3AuCi0gICBSZXR1cm4gVkVDX01BU0sgaWYgTE9PUF9NQVNLIGlzIG51bGwsIG90aGVyd2lz ZSByZXR1cm4gVkVDX01BU0sgJiBMT09QX01BU0suCisgICBSZXR1cm4gVkVDX01BU0sgaWYgTE9P UF9NQVNLIGlzIG51bGwgb3IgaWYgVkVDX01BU0sgaXMgYWxyZWFkeSBtYXNrZWQsCisgICBvdGhl cndpc2UgcmV0dXJuIFZFQ19NQVNLICYgTE9PUF9NQVNLLgogCiAgICBNQVNLX1RZUEUgaXMgdGhl IHR5cGUgb2YgYm90aCBtYXNrcy4gIElmIG5ldyBzdGF0ZW1lbnRzIGFyZSBuZWVkZWQsCiAgICBp bnNlcnQgdGhlbSBiZWZvcmUgR1NJLiAgKi8KIAogc3RhdGljIHRyZWUKLXByZXBhcmVfbG9hZF9z dG9yZV9tYXNrICh0cmVlIG1hc2tfdHlwZSwgdHJlZSBsb29wX21hc2ssIHRyZWUgdmVjX21hc2ss Ci0JCQkgZ2ltcGxlX3N0bXRfaXRlcmF0b3IgKmdzaSkKK3ByZXBhcmVfdmVjX21hc2sgKHRyZWUg bWFza190eXBlLCBsb29wX3ZlY19pbmZvIGxvb3BfdmluZm8sIHRyZWUgbG9vcF9tYXNrLAorCQkg IHRyZWUgdmVjX21hc2ssIGdpbXBsZV9zdG10X2l0ZXJhdG9yICpnc2kpCiB7CiAgIGdjY19hc3Nl cnQgKHVzZWxlc3NfdHlwZV9jb252ZXJzaW9uX3AgKG1hc2tfdHlwZSwgVFJFRV9UWVBFICh2ZWNf bWFzaykpKTsKICAgaWYgKCFsb29wX21hc2spCiAgICAgcmV0dXJuIHZlY19tYXNrOwogCiAgIGdj Y19hc3NlcnQgKFRSRUVfVFlQRSAobG9vcF9tYXNrKSA9PSBtYXNrX3R5cGUpOworCisgIHZlY19j b25kX21hc2tlZF9rZXkgY29uZCAodmVjX21hc2ssIGxvb3BfbWFzayk7CisgIGlmIChsb29wX3Zp bmZvLT52ZWNfY29uZF9tYXNrZWRfc2V0LmNvbnRhaW5zIChjb25kKSkKKyAgICByZXR1cm4gdmVj X21hc2s7CisKICAgdHJlZSBhbmRfcmVzID0gbWFrZV90ZW1wX3NzYV9uYW1lIChtYXNrX3R5cGUs IE5VTEwsICJ2ZWNfbWFza19hbmQiKTsKICAgZ2ltcGxlICphbmRfc3RtdCA9IGdpbXBsZV9idWls ZF9hc3NpZ24gKGFuZF9yZXMsIEJJVF9BTkRfRVhQUiwKIAkJCQkJICB2ZWNfbWFzaywgbG9vcF9t YXNrKTsKKwogICBnc2lfaW5zZXJ0X2JlZm9yZSAoZ3NpLCBhbmRfc3RtdCwgR1NJX1NBTUVfU1RN VCk7CiAgIHJldHVybiBhbmRfcmVzOwogfQpAQCAtMzUyNiw4ICszNTMzLDkgQEAgdmVjdG9yaXph YmxlX2NhbGwgKHZlY19pbmZvICp2aW5mbywKIAkJCSAgZ2NjX2Fzc2VydCAobmNvcGllcyA9PSAx KTsKIAkJCSAgdHJlZSBtYXNrID0gdmVjdF9nZXRfbG9vcF9tYXNrIChnc2ksIG1hc2tzLCB2ZWNf bnVtLAogCQkJCQkJCSAgdmVjdHlwZV9vdXQsIGkpOwotCQkJICB2YXJnc1ttYXNrX29wbm9dID0g cHJlcGFyZV9sb2FkX3N0b3JlX21hc2sKLQkJCSAgICAoVFJFRV9UWVBFIChtYXNrKSwgbWFzaywg dmFyZ3NbbWFza19vcG5vXSwgZ3NpKTsKKwkJCSAgdmFyZ3NbbWFza19vcG5vXSA9IHByZXBhcmVf dmVjX21hc2sKKwkJCSAgICAoVFJFRV9UWVBFIChtYXNrKSwgbG9vcF92aW5mbywgbWFzaywKKwkJ CSAgICAgdmFyZ3NbbWFza19vcG5vXSwgZ3NpKTsKIAkJCX0KIAogCQkgICAgICBnY2FsbCAqY2Fs bDsKQEAgLTM1NjQsOCArMzU3Miw4IEBAIHZlY3Rvcml6YWJsZV9jYWxsICh2ZWNfaW5mbyAqdmlu Zm8sCiAJICAgICAgdHJlZSBtYXNrID0gdmVjdF9nZXRfbG9vcF9tYXNrIChnc2ksIG1hc2tzLCBu Y29waWVzLAogCQkJCQkgICAgICB2ZWN0eXBlX291dCwgaik7CiAJICAgICAgdmFyZ3NbbWFza19v cG5vXQotCQk9IHByZXBhcmVfbG9hZF9zdG9yZV9tYXNrIChUUkVFX1RZUEUgKG1hc2spLCBtYXNr LAotCQkJCQkgICB2YXJnc1ttYXNrX29wbm9dLCBnc2kpOworCQk9IHByZXBhcmVfdmVjX21hc2sg KFRSRUVfVFlQRSAobWFzayksIGxvb3BfdmluZm8sIG1hc2ssCisJCQkJICAgIHZhcmdzW21hc2tf b3Bub10sIGdzaSk7CiAJICAgIH0KIAogCSAgZ2ltcGxlICpuZXdfc3RtdDsKQEAgLTYzMDIsMTAg KzYzMTAsNDYgQEAgdmVjdG9yaXphYmxlX29wZXJhdGlvbiAodmVjX2luZm8gKnZpbmZvLAogCX0K ICAgICAgIGVsc2UKIAl7CisJICB0cmVlIG1hc2sgPSBOVUxMX1RSRUU7CisJICAvKiBXaGVuIGNv bWJpbmluZyB0d28gbWFza3MgY2hlY2sgaXMgZWl0aGVyIG9mIHRoZW0gaXMgZWxzZXdoZXJlCisJ ICAgICBjb21iaW5lZCB3aXRoIGEgbG9vcCBtYXNrLCBpZiB0aGF0J3MgdGhlIGNhc2Ugd2UgY2Fu IG1hcmsgdGhhdCB0aGUKKwkgICAgIG5ldyBjb21iaW5lZCBtYXNrIGRvZXNuJ3QgbmVlZCB0byBi ZSBjb21iaW5lZCB3aXRoIGEgbG9vcCBtYXNrLiAgKi8KKwkgIGlmIChtYXNrZWRfbG9vcF9wICYm IGNvZGUgPT0gQklUX0FORF9FWFBSKQorCSAgICB7CisJICAgICAgc2NhbGFyX2NvbmRfbWFza2Vk X2tleSBjb25kMCAob3AwLCBuY29waWVzKTsKKwkgICAgICBpZiAobG9vcF92aW5mby0+c2NhbGFy X2NvbmRfbWFza2VkX3NldC5jb250YWlucyAoY29uZDApKQorCQl7CisJCSAgbWFzayA9IHZlY3Rf Z2V0X2xvb3BfbWFzayAoZ3NpLCBtYXNrcywgdmVjX251bSAqIG5jb3BpZXMsCisJCQkJCQkgIHZl Y3R5cGUsIGkpOworCisJCSAgdm9wMCA9IHByZXBhcmVfdmVjX21hc2sgKFRSRUVfVFlQRSAobWFz ayksIGxvb3BfdmluZm8sIG1hc2ssCisJCQkJCSAgIHZvcDAsIGdzaSk7CisJCX0KKworCSAgICAg IHNjYWxhcl9jb25kX21hc2tlZF9rZXkgY29uZDEgKG9wMSwgbmNvcGllcyk7CisJICAgICAgaWYg KGxvb3BfdmluZm8tPnNjYWxhcl9jb25kX21hc2tlZF9zZXQuY29udGFpbnMgKGNvbmQxKSkKKwkJ eworCQkgIG1hc2sgPSB2ZWN0X2dldF9sb29wX21hc2sgKGdzaSwgbWFza3MsIHZlY19udW0gKiBu Y29waWVzLAorCQkJCQkJICB2ZWN0eXBlLCBpKTsKKworCQkgIHZvcDEgPSBwcmVwYXJlX3ZlY19t YXNrIChUUkVFX1RZUEUgKG1hc2spLCBsb29wX3ZpbmZvLCBtYXNrLAorCQkJCQkgICB2b3AxLCBn c2kpOworCQl9CisJICAgIH0KKwogCSAgbmV3X3N0bXQgPSBnaW1wbGVfYnVpbGRfYXNzaWduICh2 ZWNfZGVzdCwgY29kZSwgdm9wMCwgdm9wMSwgdm9wMik7CiAJICBuZXdfdGVtcCA9IG1ha2Vfc3Nh X25hbWUgKHZlY19kZXN0LCBuZXdfc3RtdCk7CiAJICBnaW1wbGVfYXNzaWduX3NldF9saHMgKG5l d19zdG10LCBuZXdfdGVtcCk7CiAJICB2ZWN0X2ZpbmlzaF9zdG10X2dlbmVyYXRpb24gKHZpbmZv LCBzdG10X2luZm8sIG5ld19zdG10LCBnc2kpOworCisJICAvKiBFbnRlciB0aGUgY29tYmluZWQg dmFsdWUgaW50byB0aGUgdmVjdG9yIGNvbmQgaGFzaCBzbyB3ZSBkb24ndAorCSAgICAgQU5EIGl0 IHdpdGggYSBsb29wIG1hc2sgYWdhaW4uICAqLworCSAgaWYgKG1hc2spCisJICAgIHsKKwkgICAg ICB2ZWNfY29uZF9tYXNrZWRfa2V5IGNvbmQgKG5ld190ZW1wLCBtYXNrKTsKKwkgICAgICBsb29w X3ZpbmZvLT52ZWNfY29uZF9tYXNrZWRfc2V0LmFkZCAoY29uZCk7CisJICAgIH0KKwogCSAgaWYg KHZlY19jdnRfZGVzdCkKIAkgICAgewogCSAgICAgIG5ld190ZW1wID0gYnVpbGQxIChWSUVXX0NP TlZFUlRfRVhQUiwgdmVjdHlwZV9vdXQsIG5ld190ZW1wKTsKQEAgLTgxNjYsOCArODIxMCw4IEBA IHZlY3Rvcml6YWJsZV9zdG9yZSAodmVjX2luZm8gKnZpbmZvLAogCSAgICBmaW5hbF9tYXNrID0g dmVjdF9nZXRfbG9vcF9tYXNrIChnc2ksIGxvb3BfbWFza3MsIG5jb3BpZXMsCiAJCQkJCSAgICAg dmVjdHlwZSwgaik7CiAJICBpZiAodmVjX21hc2spCi0JICAgIGZpbmFsX21hc2sgPSBwcmVwYXJl X2xvYWRfc3RvcmVfbWFzayAobWFza192ZWN0eXBlLCBmaW5hbF9tYXNrLAotCQkJCQkJICB2ZWNf bWFzaywgZ3NpKTsKKwkgICAgZmluYWxfbWFzayA9IHByZXBhcmVfdmVjX21hc2sgKG1hc2tfdmVj dHlwZSwgbG9vcF92aW5mbywKKwkJCQkJICAgZmluYWxfbWFzaywgdmVjX21hc2ssIGdzaSk7CiAK IAkgIGdjYWxsICpjYWxsOwogCSAgaWYgKGZpbmFsX21hc2spCkBAIC04MjIxLDggKzgyNjUsOCBA QCB2ZWN0b3JpemFibGVfc3RvcmUgKHZlY19pbmZvICp2aW5mbywKIAkJCQkJCSB2ZWNfbnVtICog bmNvcGllcywKIAkJCQkJCSB2ZWN0eXBlLCB2ZWNfbnVtICogaiArIGkpOwogCSAgICAgIGlmICh2 ZWNfbWFzaykKLQkJZmluYWxfbWFzayA9IHByZXBhcmVfbG9hZF9zdG9yZV9tYXNrIChtYXNrX3Zl Y3R5cGUsIGZpbmFsX21hc2ssCi0JCQkJCQkgICAgICB2ZWNfbWFzaywgZ3NpKTsKKwkJZmluYWxf bWFzayA9IHByZXBhcmVfdmVjX21hc2sgKG1hc2tfdmVjdHlwZSwgbG9vcF92aW5mbywKKwkJCQkJ ICAgICAgIGZpbmFsX21hc2ssIHZlY19tYXNrLCBnc2kpOwogCiAJICAgICAgaWYgKG1lbW9yeV9h Y2Nlc3NfdHlwZSA9PSBWTUFUX0dBVEhFUl9TQ0FUVEVSKQogCQl7CkBAIC05NDQyLDggKzk0ODYs OCBAQCB2ZWN0b3JpemFibGVfbG9hZCAodmVjX2luZm8gKnZpbmZvLAogCSAgICBmaW5hbF9tYXNr ID0gdmVjdF9nZXRfbG9vcF9tYXNrIChnc2ksIGxvb3BfbWFza3MsIG5jb3BpZXMsCiAJCQkJCSAg ICAgdmVjdHlwZSwgaik7CiAJICBpZiAodmVjX21hc2spCi0JICAgIGZpbmFsX21hc2sgPSBwcmVw YXJlX2xvYWRfc3RvcmVfbWFzayAobWFza192ZWN0eXBlLCBmaW5hbF9tYXNrLAotCQkJCQkJICB2 ZWNfbWFzaywgZ3NpKTsKKwkgICAgZmluYWxfbWFzayA9IHByZXBhcmVfdmVjX21hc2sgKG1hc2tf dmVjdHlwZSwgbG9vcF92aW5mbywKKwkJCQkJICAgZmluYWxfbWFzaywgdmVjX21hc2ssIGdzaSk7 CiAKIAkgIGdjYWxsICpjYWxsOwogCSAgaWYgKGZpbmFsX21hc2spCkBAIC05NDk0LDggKzk1Mzgs OCBAQCB2ZWN0b3JpemFibGVfbG9hZCAodmVjX2luZm8gKnZpbmZvLAogCQkJCQkJIHZlY19udW0g KiBuY29waWVzLAogCQkJCQkJIHZlY3R5cGUsIHZlY19udW0gKiBqICsgaSk7CiAJICAgICAgaWYg KHZlY19tYXNrKQotCQlmaW5hbF9tYXNrID0gcHJlcGFyZV9sb2FkX3N0b3JlX21hc2sgKG1hc2tf dmVjdHlwZSwgZmluYWxfbWFzaywKLQkJCQkJCSAgICAgIHZlY19tYXNrLCBnc2kpOworCQlmaW5h bF9tYXNrID0gcHJlcGFyZV92ZWNfbWFzayAobWFza192ZWN0eXBlLCBsb29wX3ZpbmZvLAorCQkJ CQkgICAgICAgZmluYWxfbWFzaywgdmVjX21hc2ssIGdzaSk7CiAKIAkgICAgICBpZiAoaSA+IDAp CiAJCWRhdGFyZWZfcHRyID0gYnVtcF92ZWN0b3JfcHRyICh2aW5mbywgZGF0YXJlZl9wdHIsIHB0 cl9pbmNyLApkaWZmIC0tZ2l0IGEvZ2NjL3RyZWUtdmVjdG9yaXplci5oIGIvZ2NjL3RyZWUtdmVj dG9yaXplci5oCmluZGV4IGQ0NjZiZTZmZmNiN2IyZjc3MjQzMzIzNjdjY2UyZWVlNzUyNDUyNDAu Ljg5NGYzMGIzNWZhNTQ5MWUzMWM1OGVjYjhhNDY3MTdlZjM1OThhOWEgMTAwNjQ0Ci0tLSBhL2dj Yy90cmVlLXZlY3Rvcml6ZXIuaAorKysgYi9nY2MvdHJlZS12ZWN0b3JpemVyLmgKQEAgLTMyNyw2 ICszMjcsODAgQEAgc3RydWN0IGRlZmF1bHRfaGFzaF90cmFpdHM8c2NhbGFyX2NvbmRfbWFza2Vk X2tleT4KIAogdHlwZWRlZiBoYXNoX3NldDxzY2FsYXJfY29uZF9tYXNrZWRfa2V5PiBzY2FsYXJf Y29uZF9tYXNrZWRfc2V0X3R5cGU7CiAKKy8qIEtleSBmb3IgbWFwIHRoYXQgcmVjb3JkcyBhc3Nv Y2lhdGlvbiBiZXR3ZWVuCisgICB2ZWN0b3IgY29uZGl0aW9ucyBhbmQgY29ycmVzcG9uZGluZyBs b29wIG1hc2ssIGFuZAorICAgaXMgcG9wdWxhdGVkIGJ5IHByZXBhcmVfdmVjX21hc2suICAqLwor CitzdHJ1Y3QgdmVjX2NvbmRfbWFza2VkX2tleQoreworICB2ZWNfY29uZF9tYXNrZWRfa2V5ICh0 cmVlIHQsIHRyZWUgbG9vcF9tYXNrXykKKyAgICA6IGxvb3BfbWFzayAobG9vcF9tYXNrXykKKyAg eworICAgIGdldF9jb25kX29wc19mcm9tX3RyZWUgKHQpOworICB9CisKKyAgdm9pZCBnZXRfY29u ZF9vcHNfZnJvbV90cmVlICh0cmVlKTsKKworICB0cmVlIGxvb3BfbWFzazsKKyAgdHJlZV9jb2Rl IGNvZGU7CisgIHRyZWUgb3AwOworICB0cmVlIG9wMTsKK307CisKK3RlbXBsYXRlPD4KK3N0cnVj dCBkZWZhdWx0X2hhc2hfdHJhaXRzPHZlY19jb25kX21hc2tlZF9rZXk+Cit7CisgIHR5cGVkZWYg dmVjX2NvbmRfbWFza2VkX2tleSBjb21wYXJlX3R5cGU7CisgIHR5cGVkZWYgdmVjX2NvbmRfbWFz a2VkX2tleSB2YWx1ZV90eXBlOworCisgIHN0YXRpYyBpbmxpbmUgaGFzaHZhbF90CisgIGhhc2gg KHZhbHVlX3R5cGUgdikKKyAgeworICAgIGluY2hhc2g6Omhhc2ggaDsKKyAgICBoLmFkZF9pbnQg KHYuY29kZSk7CisgICAgaW5jaGFzaDo6YWRkX2V4cHIgKHYub3AwLCBoLCAwKTsKKyAgICBpbmNo YXNoOjphZGRfZXhwciAodi5vcDEsIGgsIDApOworICAgIGguYWRkX3B0ciAodi5sb29wX21hc2sp OworICAgIHJldHVybiBoLmVuZCAoKTsKKyAgfQorCisgIHN0YXRpYyBpbmxpbmUgYm9vbAorICBl cXVhbCAodmFsdWVfdHlwZSBleGlzdGluZywgdmFsdWVfdHlwZSBjYW5kaWRhdGUpCisgIHsKKyAg ICByZXR1cm4gKGV4aXN0aW5nLmNvZGUgPT0gY2FuZGlkYXRlLmNvZGUKKwkgICAgJiYgZXhpc3Rp bmcubG9vcF9tYXNrID09IGNhbmRpZGF0ZS5sb29wX21hc2sKKwkgICAgJiYgb3BlcmFuZF9lcXVh bF9wIChleGlzdGluZy5vcDAsIGNhbmRpZGF0ZS5vcDAsIDApCisJICAgICYmIG9wZXJhbmRfZXF1 YWxfcCAoZXhpc3Rpbmcub3AxLCBjYW5kaWRhdGUub3AxLCAwKSk7CisgIH0KKworICBzdGF0aWMg Y29uc3QgYm9vbCBlbXB0eV96ZXJvX3AgPSB0cnVlOworCisgIHN0YXRpYyBpbmxpbmUgdm9pZAor ICBtYXJrX2VtcHR5ICh2YWx1ZV90eXBlICZ2KQorICB7CisgICAgdi5sb29wX21hc2sgPSBOVUxM X1RSRUU7CisgIH0KKworICBzdGF0aWMgaW5saW5lIGJvb2wKKyAgaXNfZW1wdHkgKHZhbHVlX3R5 cGUgdikKKyAgeworICAgIHJldHVybiB2Lmxvb3BfbWFzayA9PSBOVUxMX1RSRUU7CisgIH0KKwor ICBzdGF0aWMgaW5saW5lIHZvaWQgbWFya19kZWxldGVkICh2YWx1ZV90eXBlICYpIHt9CisKKyAg c3RhdGljIGlubGluZSBib29sIGlzX2RlbGV0ZWQgKGNvbnN0IHZhbHVlX3R5cGUgJikKKyAgewor ICAgIHJldHVybiBmYWxzZTsKKyAgfQorCisgIHN0YXRpYyBpbmxpbmUgdm9pZCByZW1vdmUgKHZh bHVlX3R5cGUgJikge30KK307CisKK3R5cGVkZWYgaGFzaF9zZXQ8dmVjX2NvbmRfbWFza2VkX2tl eT4gdmVjX2NvbmRfbWFza2VkX3NldF90eXBlOworCisKKwogLyogRGVzY3JpYmVzIHR3byBvYmpl Y3RzIHdob3NlIGFkZHJlc3NlcyBtdXN0IGJlIHVuZXF1YWwgZm9yIHRoZSB2ZWN0b3JpemVkCiAg ICBsb29wIHRvIGJlIHZhbGlkLiAgKi8KIHR5cGVkZWYgc3RkOjpwYWlyPHRyZWUsIHRyZWU+IHZl Y19vYmplY3RfcGFpcjsKQEAgLTY0Myw2ICs3MTcsOSBAQCBwdWJsaWM6CiAgIC8qIFNldCBvZiBz Y2FsYXIgY29uZGl0aW9ucyB0aGF0IGhhdmUgbG9vcCBtYXNrIGFwcGxpZWQuICAqLwogICBzY2Fs YXJfY29uZF9tYXNrZWRfc2V0X3R5cGUgc2NhbGFyX2NvbmRfbWFza2VkX3NldDsKIAorICAvKiBT ZXQgb2YgdmVjdG9yIGNvbmRpdGlvbnMgdGhhdCBoYXZlIGxvb3AgbWFzayBhcHBsaWVkLiAgKi8K KyAgdmVjX2NvbmRfbWFza2VkX3NldF90eXBlIHZlY19jb25kX21hc2tlZF9zZXQ7CisKICAgLyog SWYgd2UgYXJlIHVzaW5nIGEgbG9vcCBtYXNrIHRvIGFsaWduIG1lbW9yeSBhZGRyZXNzZXMsIHRo aXMgdmFyaWFibGUKICAgICAgY29udGFpbnMgdGhlIG51bWJlciBvZiB2ZWN0b3IgZWxlbWVudHMg dGhhdCB3ZSBzaG91bGQgc2tpcCBpbiB0aGUKICAgICAgZmlyc3QgaXRlcmF0aW9uIG9mIHRoZSB2 ZWN0b3IgbG9vcCAoaS5lLiB0aGUgbnVtYmVyIG9mIGxlYWRpbmcKZGlmZiAtLWdpdCBhL2djYy90 cmVlLXZlY3Rvcml6ZXIuYyBiL2djYy90cmVlLXZlY3Rvcml6ZXIuYwppbmRleCA1YzkzOTYxODY5 ZGIwOGU1ZWY0ZTJkMjJkZWZmZGFiYTg1NTRkNzhmLi40ZTRkM2NhNDliNDZkYzA1MWM5MDg0Mzcy ZTg1MDE0NTdlMjNjNjMyIDEwMDY0NAotLS0gYS9nY2MvdHJlZS12ZWN0b3JpemVyLmMKKysrIGIv Z2NjL3RyZWUtdmVjdG9yaXplci5jCkBAIC0xNzIwLDYgKzE3MjAsNDAgQEAgc2NhbGFyX2NvbmRf bWFza2VkX2tleTo6Z2V0X2NvbmRfb3BzX2Zyb21fdHJlZSAodHJlZSB0KQogICB0aGlzLT5pbnZl cnRlZF9wID0gZmFsc2U7CiB9CiAKKy8qIElmIHRoZSBjb25kaXRpb24gcmVwcmVzZW50ZWQgYnkg VCBpcyBhIGNvbXBhcmlzb24gb3IgdGhlIFNTQSBuYW1lCisgICByZXN1bHQgb2YgYSBjb21wYXJp c29uLCBleHRyYWN0IHRoZSBjb21wYXJpc29uJ3Mgb3BlcmFuZHMuICBSZXByZXNlbnQKKyAgIFQg YXMgTkVfRVhQUiA8VCwgMD4gb3RoZXJ3aXNlLiAgKi8KKwordm9pZAordmVjX2NvbmRfbWFza2Vk X2tleTo6Z2V0X2NvbmRfb3BzX2Zyb21fdHJlZSAodHJlZSB0KQoreworICBpZiAoVFJFRV9DT0RF X0NMQVNTIChUUkVFX0NPREUgKHQpKSA9PSB0Y2NfY29tcGFyaXNvbikKKyAgICB7CisgICAgICB0 aGlzLT5jb2RlID0gVFJFRV9DT0RFICh0KTsKKyAgICAgIHRoaXMtPm9wMCA9IFRSRUVfT1BFUkFO RCAodCwgMCk7CisgICAgICB0aGlzLT5vcDEgPSBUUkVFX09QRVJBTkQgKHQsIDEpOworICAgICAg cmV0dXJuOworICAgIH0KKworICBpZiAoVFJFRV9DT0RFICh0KSA9PSBTU0FfTkFNRSkKKyAgICBp ZiAoZ2Fzc2lnbiAqc3RtdCA9IGR5bl9jYXN0PGdhc3NpZ24gKj4gKFNTQV9OQU1FX0RFRl9TVE1U ICh0KSkpCisgICAgICB7CisJdHJlZV9jb2RlIGNvZGUgPSBnaW1wbGVfYXNzaWduX3Joc19jb2Rl IChzdG10KTsKKwlpZiAoVFJFRV9DT0RFX0NMQVNTIChjb2RlKSA9PSB0Y2NfY29tcGFyaXNvbikK KwkgIHsKKwkgICAgdGhpcy0+Y29kZSA9IGNvZGU7CisJICAgIHRoaXMtPm9wMCA9IGdpbXBsZV9h c3NpZ25fcmhzMSAoc3RtdCk7CisJICAgIHRoaXMtPm9wMSA9IGdpbXBsZV9hc3NpZ25fcmhzMiAo c3RtdCk7CisJICAgIHJldHVybjsKKwkgIH0KKyAgICAgIH0KKworICB0aGlzLT5jb2RlID0gTkVf RVhQUjsKKyAgdGhpcy0+b3AwID0gdDsKKyAgdGhpcy0+b3AxID0gYnVpbGRfemVyb19jc3QgKFRS RUVfVFlQRSAodCkpOworfQorCisKIC8qIFNlZSB0aGUgY29tbWVudCBhYm92ZSB0aGUgZGVjbGFy YXRpb24gZm9yIGRldGFpbHMuICAqLwogCiB1bnNpZ25lZCBpbnQK --_002_VI1PR08MB53252D32B0080B490D674CF4FF989VI1PR08MB5325eurp_--