From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <ffmpeg-devel-bounces@ffmpeg.org>
Received: from ffbox0-bg.ffmpeg.org (ffbox0-bg.ffmpeg.org [79.124.17.100])
	by master.gitmailbox.com (Postfix) with ESMTPS id 857BD4C5D1
	for <ffmpegdev@gitmailbox.com>; Mon, 26 May 2025 07:44:03 +0000 (UTC)
Received: from [127.0.1.1] (localhost [127.0.0.1])
	by ffbox0-bg.ffmpeg.org (Postfix) with ESMTP id 3CD8368D223;
	Mon, 26 May 2025 10:43:59 +0300 (EEST)
Received: from SY5PR01CU010.outbound.protection.outlook.com
 (mail-australiaeastazolkn19012054.outbound.protection.outlook.com
 [52.103.72.54])
 by ffbox0-bg.ffmpeg.org (Postfix) with ESMTPS id D700E68CF6C
 for <ffmpeg-devel@ffmpeg.org>; Mon, 26 May 2025 10:43:51 +0300 (EEST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none;
 b=yaNBKL0ck/f6E77rkQswOhnHnelK2YCsgQLJjSYY/lMuIacf0aTOeGtbNTZFKuenykj7BlMcJwnrSbpvuW0MTDjwfGegqtq+fxhtu+8dm+/bN+wrvXhhxnkixl/raPLtWKm6PKMAeUNJVQSl+iGdaPfi++LADhzPHD7h5lCWZj4cgpLshKPWEIwR9iahyt/Od+qUzG6oz6eCOYvBD8+NFTUX4c6lashVWmpWrFWqaC2symrlloBiR2zj1mh9TOh5YEJ7UuFPWNxvZ59a2W1MBpdYGZXG6ffF4hBYimzLNkuJsJWFSVHu+QuOTAwfrmdBqVakEryokQNLZieUucFFZQ==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; 
 s=arcselector10001;
 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=wzQOX1ZHhkIhIuhxrcLlf0okpWA2ot5XXl+VpoqpVUs=;
 b=PtRSjkVd1MLh4VrGtfTrBjQkjzLXFQ1Dq4F9y+sA1FiFLVewN4CYLhbvE6nXZVB2p0V+flROGv6GbyK36IYtfvT3WnogHQ+/+Pmyp1nJXf+g2P0zPXpmKdMOAatQRsaqU3VFhZzNGpatkPg7Tbf/6lETnTfg5YuAmkhDFF9XQcchq9rzuGlw1ap1tgJ9KueKKXGCeR2m5yVReV7okD7Ynanl0tPQb7RsXK82Yk5LjiIzP6zI7HBTTQTtXFRvKoMrZxkLaaKTX1GVBUCrlTeFAXE8pzT0uQ1rstMjvx3IfPiQPmrW2Ht9grco8sXm1OLlvcom1KiMxnHAfrvYSyyIwQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none;
 dkim=none; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=outlook.com;
 s=selector1;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=wzQOX1ZHhkIhIuhxrcLlf0okpWA2ot5XXl+VpoqpVUs=;
 b=MjxWoYRBrf0GKnt9ta+7m9ThV7HAUyUsgWiGXv+BalhMX+9pBjJRECZGkGvZVTq3spIJbsXA3kXN232nhQJKUIHQFlLiDm8f70t3PqK/D3KXa3UOCun1qPJA204AIyP3buPGSMvhbEQkfeKmuUjtRMO+5bkz2l4Qx5+IAyyb67paGg22SS0nK/dLK6UVtDYqTTz55u1z0Z8JBKnjlqpfuKhCuER8PvrvkEM4ptZyTZ/MgmM5vxTLfcAUs6uWphWdMLN/OPOHdo3H1Sfcd+wjgFIPya8XYmnXbJYR79Y73fLvimw/y381DGbQmNMSVYyLVS6sc6sfKcQYdK/dzSGgvw==
Received: from MEYP282MB1878.AUSP282.PROD.OUTLOOK.COM (2603:10c6:220:be::15)
 by SY2PPF4CACBD0CC.AUSP282.PROD.OUTLOOK.COM (2603:10c6:18::213) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8769.26; Mon, 26 May
 2025 07:43:45 +0000
Received: from MEYP282MB1878.AUSP282.PROD.OUTLOOK.COM
 ([fe80::dc32:4068:a067:92b8]) by MEYP282MB1878.AUSP282.PROD.OUTLOOK.COM
 ([fe80::dc32:4068:a067:92b8%3]) with mapi id 15.20.8769.025; Mon, 26 May 2025
 07:43:45 +0000
From: Fang Yibo <blueybf777@outlook.com>
To: "ffmpeg-devel@ffmpeg.org" <ffmpeg-devel@ffmpeg.org>
Thread-Topic: [FFmpeg-devel] [PATCH] avfilter: add PCM dumping between filters
 for audio debugging
Thread-Index: AQHbs4FR7I/oWjJTTUybqSSDOZn5ULO0wauAgC/4h3w=
Date: Mon, 26 May 2025 07:43:45 +0000
Message-ID: <MEYP282MB1878FF228716762A576B6BD38865A@MEYP282MB1878.AUSP282.PROD.OUTLOOK.COM>
References: <MEYP282MB18784DCA03D764E54E08FC8D88BB2@MEYP282MB1878.AUSP282.PROD.OUTLOOK.COM>
 <AS8P250MB0744B9A650221901E60022778F842@AS8P250MB0744.EURP250.PROD.OUTLOOK.COM>
In-Reply-To: <AS8P250MB0744B9A650221901E60022778F842@AS8P250MB0744.EURP250.PROD.OUTLOOK.COM>
Accept-Language: en-GB, zh-CN, en-US
Content-Language: en-GB
X-MS-Has-Attach: 
X-MS-TNEF-Correlator: 
msip_labels: 
x-ms-publictraffictype: Email
x-ms-traffictypediagnostic: MEYP282MB1878:EE_|SY2PPF4CACBD0CC:EE_
x-ms-office365-filtering-correlation-id: 8a6e28c1-abfa-4f3a-45f3-08dd9c290b4e
x-microsoft-antispam: BCL:0;
 ARA:14566002|19110799006|461199028|7092599006|8060799009|8062599006|15080799009|9400799033|41001999006|12050799012|15030799003|56899033|3412199025|440099028|12091999003|102099032|10035399007|26104999006;
x-microsoft-antispam-message-info: =?gb2312?B?a1B1VW13a3VOWUZDdzRocHQ3Q2U0NUZBOXlTdUE1UmR1cENtN1pWbzJ4NWhu?=
 =?gb2312?B?N3pJRVdwendrQnNUTEVQeGdNZmUvSUtsdVhYVXM1bW0weHVhbENOV0hvYTdH?=
 =?gb2312?B?U25ORzJtaW1GQlZNVklkSmJLMUZZUEFOWVh2L0NiSVNzbjgxQzRRcTc1eVBh?=
 =?gb2312?B?R1hJbURnRHRlVzVUdWM4VEljSVczTFlhVVpLMXRoSy80cmRJQmU2ckNDcUUz?=
 =?gb2312?B?c1pTaGRlNEhOSDhXSlpONWEzVk9OYUI0c081Wnd4eEpYU2FJaTZHcVBpa21W?=
 =?gb2312?B?QU9YNmdUeFAzV3Avb1RTOTNUeER2UWpqUkN5TTNyZkR5VDFhcDRiVUtoYVJa?=
 =?gb2312?B?TDB6ZkcxeWt2cVYyL0FqSktUMXp4MUVDUDRWd1BtZXdQUjZwenFhemM4S0F0?=
 =?gb2312?B?aTFhUnNWTE9ZakpvNkZxMEszSEVjblYwN3JBMmp5cWdoVTU5cVBMemhkREJP?=
 =?gb2312?B?bEIxL2tKUEJXUzkzWCtQNDBteHFlSnIzS1oxY0VLaHYzOG51T2p0eTZnT3po?=
 =?gb2312?B?cjM5Y2V4ZDh2Z1NHcmJQTis2MHFDbi9GdEl3NmtQMUtnWU00ckJDMzZXbjRE?=
 =?gb2312?B?aHkvamxtTHVaWE9nZ1gvOENCeGtpMjB5T2lEUlhLQWcvdlRJVVd4NHpDak1k?=
 =?gb2312?B?QjlERnFMb2U2V21NNmRqZGFtVjZzV09oSThTeWF1QzBYV3RhZlp0bUx2TWQ1?=
 =?gb2312?B?UFpraEdoelZ1aGtoNlRBV1hYT3ZBTkdGN3k2K3RZbEJxbSs1eEV2UmFQbEVw?=
 =?gb2312?B?MXdxeG5tZUdvdzl6Ym1ER0FpbUhRTmNHZUFBN0ljN0trUjFkK01ralMya0tn?=
 =?gb2312?B?c1o1UXYyakJyR2hFQUMvb1Z2R0NKRE9OTGNsMnpaSUxnQ1huRWtrRTR5ckw0?=
 =?gb2312?B?RjJ5cEpzUGVtZlhFTlN5RHl3R09IQUgvZ2Q1ZGgyOFlSMzFKWWk5MHp0SkJY?=
 =?gb2312?B?RDJnSk9tR055T0dCN2lyVkRIYlE2YzZaM0lqaE52QWdPOElkVFdRdUdGb1ZI?=
 =?gb2312?B?TytJY0tXRVZlRWp2L2t6VDRMUzVhR2FUU3NLRFFiMlM3WDdXclNkVlo4WFNz?=
 =?gb2312?B?NVJicU1SZnNUdURmY2JCSU9Sb29uQVIxUnRpOUdlVUpJQi9aRXpWQ3AwaWNs?=
 =?gb2312?B?THorNFhtU2xCYjFBMjZZN0hvRkVlbEF2K2crZ1FKdW5VYVpsNlNicU9sazhB?=
 =?gb2312?B?WkxoL0FFSzZBK0VxMlRuSnArelJrVXZnS1RUUkxXbWtqNVQxK3FSUVhTaUpJ?=
 =?gb2312?B?VTFtN25qaUc5Ry9xYlFQWEdDYmQ0S2dRYkIvR01PZGNwUEcwRkc3MklsZUZZ?=
 =?gb2312?B?dFkwakRHL2tKWGxFM2l1QnZBdGRDZTZWMFVMRmVBZmoyQTFpYXdwSGhzMlJL?=
 =?gb2312?B?dnd2Z2R1d0tIdVlQSVNTUlZMZWpIRjVjK1Z1UnlEa25yQXZpL0pTRkJEa1p0?=
 =?gb2312?B?TThaR3RLU0d1elFsTGhHbzhSQ2FpTkcvRjlJejJBNGJlZFBDWVJUd1lVdHdr?=
 =?gb2312?B?bFl2enRMT3lBa2hxNk44SGRFd3pYQ0RKNGtSa1hUWDErdVF0WkRSWDVZQ3BK?=
 =?gb2312?B?UGtyazZReXdPSmIrNjVOTURmc1pLczBYKy81WFZEdERJaFJoMGZtZEtpUjQz?=
 =?gb2312?B?bndvTURKSXU3Y0VKOFoydDNYSWtqaDFaK1RVbDBSRDJCdGJhQTl4RENCQUdo?=
 =?gb2312?B?L1U1MzRYM0F0ZXc2Nk5Db2xDaVpQRmY5SG5QaGRycm44ZncvenlIdWw0TWFn?=
 =?gb2312?B?TUF4aTQxdjd1dzZBRDB5NGVMVFZqL21tTVpGR3FSNUZjT0hOWVg3UElodWlr?=
 =?gb2312?B?b1dkbXhQOVlQSUpjZGlGOUk5SVdLMGpsNU1oaVJkSjdXaVpibzBkY0VBTkR1?=
 =?gb2312?B?TmdaWTYxZEx2WUdCYW9mbTlxSzZOZUYwRjNpSWhURTNHQ1E9PQ==?=
x-ms-exchange-antispam-messagedata-chunkcount: 1
x-ms-exchange-antispam-messagedata-0: =?gb2312?B?bmxFdXJEbWxmUjNYMWRnZUh5WXl5UmtSeHhySzRJZXM3WUVIVTVHN0hMejBS?=
 =?gb2312?B?WXZyV29nZTJubzRkTWVoTkFkS05uQ3VTbFpPNEIyemd6RnVMdWxMRURaNTVq?=
 =?gb2312?B?TTBMSWZHWUxxSU11eVlNbEFDNFRnUVVwYWhMTERQSXBJVVA3NEZFY0RkcHJ3?=
 =?gb2312?B?TzJESCtpTnJKWHNPVDEvaEpLbHBKNm9DS1dSQUduNTY4Uzg2a25nM05zWUhS?=
 =?gb2312?B?V09TRS9NRThyODl5NXRUQWp6STF0MjNvZXU4WmYwK3VpZnh6RmVOWXpQaU5m?=
 =?gb2312?B?NlV1NnVUWDhnR25JTk9naHk1cWVGNVBmWEx0Ym5IUU5JeCtYVXE5Mmk2eHA5?=
 =?gb2312?B?RGxhZEszL041UnZ3ZG80eHFjaXlRTk1sUXVVNnJrOS9HcDVRSXJ6Y3pvZUFI?=
 =?gb2312?B?QTQwdkU0ZnVtUjI1L2J4MENvbDFHdDhJQjlTQ2NsL1QrSXFjMlBnbUdOanpX?=
 =?gb2312?B?NGdOQ0daRTEyczFna2RXcW90bm1YS3o3QkZrN2xWRzN0NHFkYUJHUG5TNS9N?=
 =?gb2312?B?WmVkQnFPUDVoSnN3Yk9oKzB1UFVla2s5QlBBYkViVHlJbng0cUx3MU44Wkpu?=
 =?gb2312?B?ako0K0RPTExqM1JwWDRCYUZyclJMMjZxbERmL3ZkclhiWm1uOENxOUZ3Ry8v?=
 =?gb2312?B?U3VadHFWaTBIelhBZUtJdHkvZGhzV21VT1NHOXUvK3dKaFoyOEozUVg4d3Rk?=
 =?gb2312?B?TUQxTlJhS1poeCs1NjhRclhsRGFlWk9PRjZZcG53VTduQ05QNkR0eFZCRGpr?=
 =?gb2312?B?NjVab0wwczRUQVhYYjdhVXUvSE1Rek9pbk9xNU9kMnNrQWFZNGRGdlVFWFZP?=
 =?gb2312?B?NkEydEZiTVdLNW5jR05wb0dVd3BpTUV2eUZESUQxbGtEcGhpeUhSMjdMTFRL?=
 =?gb2312?B?MXR0Nm1HKzhoQlB6TXRzbWorWU1KV3hNdHF6Mmp2cDFUN3VtK2Q5QldFUEVN?=
 =?gb2312?B?SElxa2hlSDNLUXltZjJESzUzeUdNb0VpWGhTZ1NmZFNQTkU0dUZ0Y1luYmdt?=
 =?gb2312?B?SklzY1dzL3NGTnZoVmN4TVo0VERXUHc2WllCYlBtQS9Da1RFVkhkUHMvRFJE?=
 =?gb2312?B?TFpncGRmVDZWa2xXV3o1OUxkLzhFMzE2V1Vaa1JubDYwMVlOS3oydkt3dnZU?=
 =?gb2312?B?bHJXU1RDVDdoRmVlYmxodXRCaEZhYnBqSnlxTFNNUy9sdXk2WlVudk1LckFt?=
 =?gb2312?B?MjVmSC9HV2pCa3YzRjlqQlB0dFVBQk5lTGw5QlI2cWtvRDlHNCt6Qk1sY3dr?=
 =?gb2312?B?ekVYQ0gzMUwyMTFwVC9JTngvRE5nZldxbFhNa0NHQWNrNzRDRTl2ZldZazI1?=
 =?gb2312?B?Zi9EVHdJTDk3WTdBbDdVQWI1TnJ3QjUvNlBIYjJUZkhlOGZFM0dBZG8ycW5j?=
 =?gb2312?B?SEdMdzBrRnNWQVZOSkxIeGFPMFRNSERYa3VOejhyYkZuVXA5TzgyQmUzRVhy?=
 =?gb2312?B?SUFmSjRWV2p6VFF4c0lnTUVCeGV6cFZ5bkVMT245RDVLVHdLUWlHaHhEa01U?=
 =?gb2312?B?Q1FFaUNmbWdkUTBINnJNSXdjMHFRMEhPSUllWU1NVENEa2dlZUt3T29TRG9O?=
 =?gb2312?B?dFVZUFg3bUFyemhqUjZQUW5MR2tnWUFQNW1sbFlWcEplUWt4RkQvQ1N6Y3ds?=
 =?gb2312?Q?uekr2dSQ1M+riPaaoBFRqnYDVm8vSP8gVQfwRzmnnIGI=3D?=
MIME-Version: 1.0
X-OriginatorOrg: outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Internal
X-MS-Exchange-CrossTenant-AuthSource: MEYP282MB1878.AUSP282.PROD.OUTLOOK.COM
X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000
X-MS-Exchange-CrossTenant-Network-Message-Id: 8a6e28c1-abfa-4f3a-45f3-08dd9c290b4e
X-MS-Exchange-CrossTenant-originalarrivaltime: 26 May 2025 07:43:45.3387 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa
X-MS-Exchange-CrossTenant-rms-persistedconsumerorg: 00000000-0000-0000-0000-000000000000
X-MS-Exchange-Transport-CrossTenantHeadersStamped: SY2PPF4CACBD0CC
X-Content-Filtered-By: Mailman/MimeDel 2.1.29
Subject: [FFmpeg-devel] =?gb2312?b?u9i4tDogIFtQQVRDSF0gYXZmaWx0ZXI6IGFk?=
 =?gb2312?b?ZCBQQ00gZHVtcGluZyBiZXR3ZWVuIGZpbHRlcnMgZm9yIGF1ZGlvIGRlYnVn?=
 =?gb2312?b?Z2luZw==?=
X-BeenThere: ffmpeg-devel@ffmpeg.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: FFmpeg development discussions and patches <ffmpeg-devel.ffmpeg.org>
List-Unsubscribe: <https://ffmpeg.org/mailman/options/ffmpeg-devel>,
 <mailto:ffmpeg-devel-request@ffmpeg.org?subject=unsubscribe>
List-Archive: <https://ffmpeg.org/pipermail/ffmpeg-devel>
List-Post: <mailto:ffmpeg-devel@ffmpeg.org>
List-Help: <mailto:ffmpeg-devel-request@ffmpeg.org?subject=help>
List-Subscribe: <https://ffmpeg.org/mailman/listinfo/ffmpeg-devel>,
 <mailto:ffmpeg-devel-request@ffmpeg.org?subject=subscribe>
Reply-To: FFmpeg development discussions and patches <ffmpeg-devel@ffmpeg.org>
Content-Type: text/plain; charset="gb2312"
Content-Transfer-Encoding: base64
Errors-To: ffmpeg-devel-bounces@ffmpeg.org
Sender: "ffmpeg-devel" <ffmpeg-devel-bounces@ffmpeg.org>
Archived-At: <https://master.gitmailbox.com/ffmpegdev/MEYP282MB1878FF228716762A576B6BD38865A@MEYP282MB1878.AUSP282.PROD.OUTLOOK.COM/>
List-Archive: <https://master.gitmailbox.com/ffmpegdev/>
List-Post: <mailto:ffmpegdev@gitmailbox.com>

UmU6IFtGRm1wZWctZGV2ZWwsdjIsMC8yXSBhdmZpbHRlcjogYWRkIFBDTSBkdW1waW5nIGJldHdl
ZW4gZmlsdGVycyBmb3IgYXVkaW8gZGVidWdnaW5nDQoNCkZyb206IFlpYm8gRmFuZyA8Ymx1ZXli
Zjc3N0BvdXRsb29rLmNvbT4NClN1YmplY3Q6IFtGRm1wZWctZGV2ZWwsdjIsMC8yXSBhdmZpbHRl
cjogYWRkIFBDTSBkdW1waW5nIGJldHdlZW4gZmlsdGVycyBmb3IgYXVkaW8gZGVidWdnaW5nDQpE
YXRlOiBXZWQsIDIzIEFwciAyMDI1IDEwOjU3OjAwICswODAwDQpNZXNzYWdlLUlkOiA8Y292ZXIu
MC4yQGZmbXBlZz4NCg0KVGhpcyBzZXJpZXMgYWRkcyBhIGRlYnVnZ2luZyBmZWF0dXJlIHRoYXQg
bGV0cyBkZXZlbG9wZXJzIGR1bXAgcmF3DQpQQ00gYXVkaW8gYmV0d2VlbiBmaWx0ZXJzLiAgVGhl
IGRhdGEgYXJlIHdyaXR0ZW4gdG8gZmlsZXMgaW4gYSB1c2VyLQ0Kc2VsZWN0ZWQgZGlyZWN0b3J5
IHZpYSB0d28gbmV3IGNvbW1hbmRzOg0KDQogICAgZHVtcF9yYXdfc3RhcnQgZmlsZT0vcGF0aC90
by9kaXIvDQogICAgZHVtcF9yYXdfc3RvcA0KDQpQbGFuYXIgYXVkaW8gaXMgYXV0b21hdGljYWxs
eSBpbnRlcmxlYXZlZDsgb25seSBhdWRpbyBsaW5rcyBhcmUNCmFmZmVjdGVkLiAgUGF0Y2ggMS8y
IGltcGxlbWVudHMgdGhlIGZlYXR1cmUsIHBhdGNoIDIvMiBkb2N1bWVudHMgaXQuDQoNClJlZ2Fy
ZHMsDQpZaWJvIEZhbmcNCg0KLS0tDQoNCkZyb20gMmRmNTZlNzQyNzNkNDc3YWUyNzAwM2UwOTgx
MjIwNzQ5YTZiNThjZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDENCkZyb206IFlpYm8gRmFuZyA8
Ymx1ZXliZjc3N0BvdXRsb29rLmNvbT4NCkRhdGU6IFdlZCwgMjMgQXByIDIwMjUgMTA6NTg6NTUg
KzA4MDANClN1YmplY3Q6IFtQQVRDSCAxLzJdIGF2ZmlsdGVyOiBhZGQgUENNIGR1bXBpbmcgYmV0
d2VlbiBmaWx0ZXJzIGZvciBhdWRpbw0KIGRlYnVnZ2luZw0KDQpUaGlzIHBhdGNoIGludHJvZHVj
ZXMgUENNIGR1bXBpbmcgc3VwcG9ydCBiZXR3ZWVuIEFWRmlsdGVyIGxpbmtzLA0KaW50ZW5kZWQg
Zm9yIGF1ZGlvIGRlYnVnZ2luZyBhbmQgZmlsdGVyLWdyYXBoIGluc3BlY3Rpb24uDQoNClR3byBm
aWx0ZXIgY29tbWFuZHMgYXJlIGFkZGVkOg0KDQogICAgZHVtcF9yYXdfc3RhcnQgZmlsZT0vcGF0
aC90by9vdXRwdXQvZGlyLw0KICAgIGR1bXBfcmF3X3N0b3ANCg0KV2hlbiBkdW1waW5nIGlzIGVu
YWJsZWQsIGF1ZGlvIGxlYXZpbmcgdGhlIHNlbGVjdGVkIGZpbHRlciBvdXRwdXQgaXMNCndyaXR0
ZW4gdG8gYW4gYXV0b21hdGljYWxseSBuYW1lZCBmaWxlOg0KDQogICAgPHNyY19maWx0ZXI+LTxk
c3RfZmlsdGVyPi5wY20NCg0KUGxhbmFyIGZvcm1hdHMgYXJlIGNvbnZlcnRlZCB0byBwYWNrZWQu
ICBGaWxlIGRlc2NyaXB0b3JzIGFyZSBvcGVuZWQNCm9uIGRlbWFuZCBhbmQgY2xvc2VkIGF1dG9t
YXRpY2FsbHkuICBXb3JrcyBvbmx5IG9uIGF1ZGlvIGxpbmtzLg0KDQpFeGFtcGxlIChDIEFQSSk6
DQogICAgYXZmaWx0ZXJfcHJvY2Vzc19jb21tYW5kKGZpbHRlciwgImR1bXBfcmF3X3N0YXJ0IiwN
CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImZpbGU9L3RtcC8iLCBOVUxMLCAwLCAwKTsN
Cg0KU2lnbmVkLW9mZi1ieTogWWlibyBGYW5nIDxibHVleWJmNzc3QG91dGxvb2suY29tPg0KLS0t
DQogbGliYXZmaWx0ZXIvYXZmaWx0ZXIuYyB8IDE0NCArKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKw0KIGxpYmF2ZmlsdGVyL2F2ZmlsdGVyLmggfCAgIDUgKysNCiAyIGZp
bGVzIGNoYW5nZWQsIDE0OSBpbnNlcnRpb25zKCspDQoNCmRpZmYgLS1naXQgYS9saWJhdmZpbHRl
ci9hdmZpbHRlci5jIGIvbGliYXZmaWx0ZXIvYXZmaWx0ZXIuYw0KaW5kZXggNjRjMTA3NWM0MC4u
YjcwMzQ1NjlkYiAxMDA2NDQNCi0tLSBhL2xpYmF2ZmlsdGVyL2F2ZmlsdGVyLmMNCisrKyBiL2xp
YmF2ZmlsdGVyL2F2ZmlsdGVyLmMNCkBAIC0xOSw2ICsxOSw5IEBADQogICogRm91bmRhdGlvbiwg
SW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0x
MzAxIFVTQQ0KICAqLw0KDQorI2luY2x1ZGUgPGZjbnRsLmg+DQorI2luY2x1ZGUgPHVuaXN0ZC5o
Pg0KKw0KICNpbmNsdWRlICJsaWJhdnV0aWwvYXZhc3NlcnQuaCINCiAjaW5jbHVkZSAibGliYXZ1
dGlsL2F2c3RyaW5nLmgiDQogI2luY2x1ZGUgImxpYmF2dXRpbC9icHJpbnQuaCINCkBADQogICAg
IHJldHVybiAwOw0KIH0NCg0KKy8qIC0tLS0tLS0tLS0gUENNIGR1bXAgaGVscGVycyAtLS0tLS0t
LS0tICovDQorDQorc3RhdGljIGF2X2NvbGQgdm9pZCBsaW5rX3VuaW5pdF9kdW1wX3BjbShBVkZp
bHRlckxpbmsgKmxpbmspDQorew0KKyAgICBpZiAobGluay0+ZHVtcF9wY21fZmRzKSB7DQorICAg
ICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbGluay0+bmJfZHVtcF9wY21fZmRzOyBpKysp
DQorICAgICAgICAgICAgaWYgKGxpbmstPmR1bXBfcGNtX2Zkc1tpXSA+PSAwKQ0KKyAgICAgICAg
ICAgICAgICBjbG9zZShsaW5rLT5kdW1wX3BjbV9mZHNbaV0pOw0KKyAgICAgICAgYXZfZnJlZXAo
JmxpbmstPmR1bXBfcGNtX2Zkcyk7DQorICAgICAgICBsaW5rLT5uYl9kdW1wX3BjbV9mZHMgPSAw
Ow0KKyAgICB9DQorICAgIGF2X2ZyZWVwKCZsaW5rLT5kdW1wX3BjbV9wYXRoKTsNCisgICAgbGlu
ay0+ZHVtcF9wY20gPSAwOw0KK30NCisNCitzdGF0aWMgYXZfY29sZCBpbnQgbGlua19pbml0X2R1
bXBfcGNtKEFWRmlsdGVyTGluayAqbGluaykNCit7DQorICAgIC8qIGJ1aWxkIGZ1bGwgcGF0aCAi
PGRpcj4vPHNyYz4tPGRzdD4ucGNtIiAqLw0KKyAgICBjb25zdCBjaGFyICpkaXIgPSBsaW5rLT5k
dW1wX3BjbV9wYXRoOw0KKyAgICBjb25zdCBjaGFyICpzZXAgPSBkaXJbc3RybGVuKGRpcikgLSAx
XSA9PSAnLycgPyAiIiA6ICIvIjsNCisgICAgY2hhciBwYXRoWzQwOTZdOw0KKyAgICBzbnByaW50
ZihwYXRoLCBzaXplb2YocGF0aCksICIlcyVzJS4xNnMtJS44cy5wY20iLA0KKyAgICAgICAgICAg
ICBkaXIsIHNlcCwgbGluay0+c3JjLT5uYW1lLCBsaW5rLT5kc3QtPm5hbWUpOw0KKw0KKyAgICBs
aW5rLT5uYl9kdW1wX3BjbV9mZHMgPSAxOw0KKyAgICBsaW5rLT5kdW1wX3BjbV9mZHMgPSBhdl9t
YWxsb2Moc2l6ZW9mKGludCkpOw0KKyAgICBpZiAoIWxpbmstPmR1bXBfcGNtX2ZkcykNCisgICAg
ICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7DQorDQorICAgIGludCBmZCA9IG9wZW4ocGF0aCwg
T19XUk9OTFkgfCBPX0NSRUFUIHwgT19UUlVOQyB8IE9fRVhDTCwgMDY0NCk7DQorICAgIGlmIChm
ZCA8IDApIHsNCisgICAgICAgIGxpbmtfdW5pbml0X2R1bXBfcGNtKGxpbmspOw0KKyAgICAgICAg
cmV0dXJuIEFWRVJST1IoZXJybm8pOw0KKyAgICB9DQorICAgIGxpbmstPmR1bXBfcGNtX2Zkc1sw
XSA9IGZkOw0KKyAgICBhdl9sb2cobGluay0+ZHN0LCBBVl9MT0dfSU5GTywgIlBDTSBkdW1wIGZp
bGU6ICVzXG4iLCBwYXRoKTsNCisgICAgcmV0dXJuIDA7DQorfQ0KKw0KK3N0YXRpYyBpbnQgZmls
dGVyX3NldF9kdW1wX3BjbShBVkZpbHRlckNvbnRleHQgKmYsIGNvbnN0IGNoYXIgKmFyZywgaW50
IHNldCkNCit7DQorICAgIGNvbnN0IGNoYXIgKnByZWZpeCA9ICJmaWxlPSI7DQorICAgIGlmICgh
YXJnIHx8IGF2X3N0cm5jYXNlY21wKGFyZywgcHJlZml4LCBzdHJsZW4ocHJlZml4KSkpIHsNCisg
ICAgICAgIGF2X2xvZyhmLCBBVl9MT0dfRVJST1IsDQorICAgICAgICAgICAgICAgImR1bXBfcmF3
XyogZXhwZWN0cyBhcmd1bWVudCBmaWxlPS9kaXIvXG4iKTsNCisgICAgICAgIHJldHVybiBBVkVS
Uk9SKEVJTlZBTCk7DQorICAgIH0NCisgICAgY29uc3QgY2hhciAqZGlyID0gYXJnICsgc3RybGVu
KHByZWZpeCk7DQorDQorICAgIGZvciAoaW50IGkgPSAwOyBpIDwgZi0+bmJfb3V0cHV0czsgaSsr
KSB7DQorICAgICAgICBBVkZpbHRlckxpbmsgKmwgPSBmLT5vdXRwdXRzW2ldOw0KKyAgICAgICAg
aWYgKGwtPnR5cGUgIT0gQVZNRURJQV9UWVBFX0FVRElPKQ0KKyAgICAgICAgICAgIGNvbnRpbnVl
Ow0KKyAgICAgICAgaWYgKHNldCkgew0KKyAgICAgICAgICAgIGF2X2ZyZWVwKCZsLT5kdW1wX3Bj
bV9wYXRoKTsNCisgICAgICAgICAgICBsLT5kdW1wX3BjbV9wYXRoID0gYXZfc3RyZHVwKGRpcik7
DQorICAgICAgICAgICAgaWYgKCFsLT5kdW1wX3BjbV9wYXRoKQ0KKyAgICAgICAgICAgICAgICBy
ZXR1cm4gQVZFUlJPUihFTk9NRU0pOw0KKyAgICAgICAgICAgIGwtPmR1bXBfcGNtID0gMTsNCisg
ICAgICAgIH0gZWxzZQ0KKyAgICAgICAgICAgIGxpbmtfdW5pbml0X2R1bXBfcGNtKGwpOw0KKyAg
ICB9DQorICAgIHJldHVybiAwOw0KK30NCisNCisvKiB3cml0ZSBvbmUgZnJhbWUgKi8NCitzdGF0
aWMgaW50IGxpbmtfZHVtcF9mcmFtZShBVkZpbHRlckxpbmsgKmxpbmssIEFWRnJhbWUgKmZyYW1l
KQ0KK3sNCisgICAgaW50IHJldDsNCisgICAgaWYgKCFsaW5rLT5kdW1wX3BjbV9mZHMgJiYNCisg
ICAgICAgIChyZXQgPSBsaW5rX2luaXRfZHVtcF9wY20obGluaykpIDwgMCkNCisgICAgICAgIHJl
dHVybiByZXQ7DQorDQorICAgIGNvbnN0IGludCBjaCAgICAgPSBmcmFtZS0+Y2hfbGF5b3V0Lm5i
X2NoYW5uZWxzOw0KKyAgICBjb25zdCBpbnQgYnBzICAgID0gYXZfZ2V0X2J5dGVzX3Blcl9zYW1w
bGUoZnJhbWUtPmZvcm1hdCk7DQorICAgIGNvbnN0IGludCBucyAgICAgPSBmcmFtZS0+bmJfc2Ft
cGxlczsNCisgICAgY29uc3QgaW50IHRvdGxlbiA9IGNoICogbnMgKiBicHM7DQorDQorICAgIC8q
IGludGVybGVhdmUgcGxhbmFyIHRvIHBhY2tlZCBpZiBuZWNlc3NhcnkgKi8NCisgICAgaWYgKGF2
X3NhbXBsZV9mbXRfaXNfcGxhbmFyKGZyYW1lLT5mb3JtYXQpKSB7DQorICAgICAgICB1aW50OF90
ICpidWYgPSBhdl9tYWxsb2ModG90bGVuKTsNCisgICAgICAgIGlmICghYnVmKQ0KKyAgICAgICAg
ICAgIHJldHVybiBBVkVSUk9SKEVOT01FTSk7DQorICAgICAgICBmb3IgKGludCBzID0gMDsgcyA8
IG5zOyBzKyspDQorICAgICAgICAgICAgZm9yIChpbnQgYyA9IDA7IGMgPCBjaDsgYysrKQ0KKyAg
ICAgICAgICAgICAgICBtZW1jcHkoYnVmICsgKHMqY2ggKyBjKSpicHMsDQorICAgICAgICAgICAg
ICAgICAgICAgICAodWludDhfdCopZnJhbWUtPmV4dGVuZGVkX2RhdGFbY10gKyBzKmJwcywNCisg
ICAgICAgICAgICAgICAgICAgICAgIGJwcyk7DQorICAgICAgICByZXQgPSB3cml0ZShsaW5rLT5k
dW1wX3BjbV9mZHNbMF0sIGJ1ZiwgdG90bGVuKTsNCisgICAgICAgIGF2X2ZyZWUoYnVmKTsNCisg
ICAgfSBlbHNlDQorICAgICAgICByZXQgPSB3cml0ZShsaW5rLT5kdW1wX3BjbV9mZHNbMF0sIGZy
YW1lLT5kYXRhWzBdLCB0b3RsZW4pOw0KKw0KKyAgICBpZiAocmV0IDwgMCkgew0KKyAgICAgICAg
YXZfbG9nKGxpbmstPmRzdCwgQVZfTE9HX0VSUk9SLCAiUENNIGR1bXAgd3JpdGUgZmFpbGVkOiAl
c1xuIiwNCisgICAgICAgICAgICAgICBhdl9lcnIyc3RyKHJldCkpOw0KKyAgICAgICAgbGlua191
bmluaXRfZHVtcF9wY20obGluayk7DQorICAgICAgICByZXR1cm4gcmV0Ow0KKyAgICB9DQorICAg
IHJldHVybiAwOw0KK30NCisNCiBzdGF0aWMgdm9pZCBsaW5rX2ZyZWUoQVZGaWx0ZXJMaW5rICoq
bGluaykNCiB7DQpAQA0KDQogaW50IGF2ZmlsdGVyX3Byb2Nlc3NfY29tbWFuZChBVkZpbHRlckNv
bnRleHQgKmZpbHRlciwgY29uc3QgY2hhciAqY21kLA0KICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY29uc3QgY2hhciAqYXJnLCBjaGFyICpyZXMsIGludCByZXNfbGVuLCBpbnQgZmxhZ3Mp
DQogew0KQEANCi0gICAgICAgIGlmIChyZXMgPT0gbG9jYWxfcmVzKQ0KLSAgICAgICAgICAgIGF2
X2xvZyhmaWx0ZXIsIEFWX0xPR19JTkZPLCAiJXMiLCByZXMpOw0KLSAgICAgICAgcmV0dXJuIDA7
DQorICAgICAgICBpZiAocmVzID09IGxvY2FsX3JlcykNCisgICAgICAgICAgICBhdl9sb2coZmls
dGVyLCBBVl9MT0dfSU5GTywgIiVzIiwgcmVzKTsNCisgICAgICAgIHJldHVybiAwOw0KKyAgICB9
IGVsc2UgaWYgKCFzdHJjbXAoY21kLCAiZHVtcF9yYXdfc3RhcnQiKSkgew0KKyAgICAgICAgcmV0
dXJuIGZpbHRlcl9zZXRfZHVtcF9wY20oZmlsdGVyLCBhcmcsIDEpOw0KKyAgICB9IGVsc2UgaWYg
KCFzdHJjbXAoY21kLCAiZHVtcF9yYXdfc3RvcCIpKSB7DQorICAgICAgICByZXR1cm4gZmlsdGVy
X3NldF9kdW1wX3BjbShmaWx0ZXIsIGFyZywgMCk7DQogICAgIH0gZWxzZSBpZighc3RyY21wKGNt
ZCwgImVuYWJsZSIpKSB7DQogICAgICAgICByZXR1cm4gc2V0X2VuYWJsZV9leHByKGZmZmlsdGVy
Y3R4KGZpbHRlciksIGFyZyk7DQpAQA0KICAgICAvKiAuLi4gZXhpc3RpbmcgY29kZSAuLi4gKi8N
Cg0KKyAgICBpZiAobGluay0+ZHVtcF9wY20gJiYgbGluay0+dHlwZSA9PSBBVk1FRElBX1RZUEVf
QVVESU8pIHsNCisgICAgICAgIHJldCA9IGxpbmtfZHVtcF9mcmFtZShsaW5rLCBmcmFtZSk7DQor
ICAgICAgICBpZiAocmV0IDwgMCkNCisgICAgICAgICAgICBhdl9sb2cobGluay0+ZHN0LCBBVl9M
T0dfRVJST1IsDQorICAgICAgICAgICAgICAgICAgICJQQ00gZHVtcCBmYWlsZWQgd2l0aCAlc1xu
IiwgYXZfZXJyMnN0cihyZXQpKTsNCisgICAgfQ0KKw0KICAgICBsaS0+ZnJhbWVfYmxvY2tlZF9p
biA9IGxpLT5mcmFtZV93YW50ZWRfb3V0ID0gMDsNCkBADQpkaWZmIC0tZ2l0IGEvbGliYXZmaWx0
ZXIvYXZmaWx0ZXIuaCBiL2xpYmF2ZmlsdGVyL2F2ZmlsdGVyLmgNCmluZGV4IGE4OWQzY2Y2NTgu
LjBkNGM5MWJiNmIgMTAwNjQ0DQotLS0gYS9saWJhdmZpbHRlci9hdmZpbHRlci5oDQorKysgYi9s
aWJhdmZpbHRlci9hdmZpbHRlci5oDQpAQA0KICAgICBBVkNoYW5uZWxMYXlvdXQgY2hfbGF5b3V0
OyAgLy8vPCBjaGFubmVsIGxheW91dCBvZiBjdXJyZW50IGJ1ZmZlcg0KDQorICAgIGludCAgICAg
IGR1bXBfcGNtOyAgICAgICAgICAvLy88IGVuYWJsZSBkdW1waW5nIG9uIHRoaXMgbGluaw0KKyAg
ICBpbnQgICAgICpkdW1wX3BjbV9mZHM7ICAgICAgLy8vPCBvbmUgRkQgcGVyIGxpbmsgKGN1cnJl
bnRseSAxKQ0KKyAgICB1bnNpZ25lZCBuYl9kdW1wX3BjbV9mZHM7ICAgLy8vPCBudW1iZXIgb2Yg
RkRzDQorICAgIGNoYXIgICAgKmR1bXBfcGNtX3BhdGg7ICAgICAvLy88IHVzZXItc3VwcGxpZWQg
ZGlyZWN0b3J5DQorDQogICAgIC8qKg0KICAgICAgKiBEZWZpbmUgdGhlIHRpbWUgYmFzZSB1c2Vk
IGJ5IHRoZSBQVFMgb2YgdGhlIGZyYW1lcy9zYW1wbGVzDQogICAgICAqIHdoaWNoIHdpbGwgcGFz
cyB0aHJvdWdoIHRoaXMgbGluay4NCi0tDQoyLjM0LjENCg0KLS0tDQoNCkZyb20gOGNmN2JmYTUy
YTEwYmU4N2UwZjE3Yjk3ODMxNTliMGU4M2Y5NjBmNyBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEN
CkZyb206IFlpYm8gRmFuZyA8Ymx1ZXliZjc3N0BvdXRsb29rLmNvbT4NCkRhdGU6IFdlZCwgMjMg
QXByIDIwMjUgMTI6Mzg6MDAgKzA4MDANClN1YmplY3Q6IFtQQVRDSCAyLzJdIGRvYy9maWx0ZXJz
OiBkb2N1bWVudCBkdW1wX3Jhd19zdGFydCBhbmQgZHVtcF9yYXdfc3RvcA0KIGNvbW1hbmRzDQoN
ClNpZ25lZC1vZmYtYnk6IFlpYm8gRmFuZyA8Ymx1ZXliZjc3N0BvdXRsb29rLmNvbT4NCi0tLQ0K
IGRvYy9maWx0ZXJzLnRleGkgfCA0NSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysNCiAxIGZpbGUgY2hhbmdlZCwgNDUgaW5zZXJ0aW9ucygrKQ0KDQpkaWZmIC0t
Z2l0IGEvZG9jL2ZpbHRlcnMudGV4aSBiL2RvYy9maWx0ZXJzLnRleGkNCmluZGV4IDQ1YjNlMDNl
NWUuLjZhMmQyM2RmM2YgMTAwNjQ0DQotLS0gYS9kb2MvZmlsdGVycy50ZXhpDQorKysgYi9kb2Mv
ZmlsdGVycy50ZXhpDQpAQA0KIEBzZWN0aW9uIGFkdW1wcGNtDQoNCiBEdW1wIHJhdyBQQ00gYXVk
aW8gZGF0YSBmb3IgZGVidWdnaW5nIGJldHdlZW4gZmlsdGVycy4NCg0KIFRoaXMgZmlsdGVyIGFs
bG93cyB3cml0aW5nIHJhdyBhdWRpbyBkYXRhIHRvIGRpc2sgZnJvbSBhbnkgYXVkaW8gbGluaw0K
IGluIHRoZSBmaWx0ZXJncmFwaCBmb3IgaW5zcGVjdGlvbi4gSXQgc3VwcG9ydHMgcGxhbmFyIGFu
ZCBwYWNrZWQgZm9ybWF0cywNCiBhdXRvbWF0aWNhbGx5IGludGVybGVhdmluZyBwbGFuYXIgZGF0
YSBmb3Igd3JpdGluZy4NCg0KIEBzdWJzZWN0aW9uIFN5bnRheA0KDQogQGV4YW1wbGUNCiBkdW1w
X3Jhd19zdGFydD1maWxlPS95b3VyL2R1bXAvZGlyZWN0b3J5Lw0KIEBlbmQgZXhhbXBsZQ0KDQog
QHN1YnNlY3Rpb24gVXNhZ2UNCg0KIFRvIGVuYWJsZSBkdW1waW5nLCB1c2UgdGhlIEBjb2Rle2R1
bXBfcmF3X3N0YXJ0fSBjb21tYW5kOg0KDQogQGV4YW1wbGUNCiBmZm1wZWcgLWkgaW5wdXQud2F2
IC1hZiAidm9sdW1lLGFzZW5kY21kPScwLjAgZHVtcF9yYXdfc3RhcnQgZmlsZT0vdG1wL3BjbS8n
IiAtZiBudWxsIC0NCiBAZW5kIGV4YW1wbGUNCg0KIFRvIHN0b3AgZHVtcGluZzoNCg0KIEBleGFt
cGxlDQogYXNlbmRjbWQ9JzUuMCBkdW1wX3Jhd19zdG9wJw0KIEBlbmQgZXhhbXBsZQ0KDQogQHN1
YnNlY3Rpb24gT3B0aW9ucw0KDQogQHRhYmxlIEBvcHRpb24NCiBAaXRlbSBmaWxlDQogU3BlY2lm
eSBhIGRpcmVjdG9yeSBwYXRoIChub3QgYSBmaWxlbmFtZSkgd2hlcmUgUENNIGRhdGEgd2lsbCBi
ZSBkdW1wZWQuDQogVGhlIGR1bXBlZCBmaWxlIGlzIG5hbWVkIEBjb2RlezxzcmM+LTxkc3Q+LnBj
bX0gYW5kIHdpbGwgYmUgb3ZlcndyaXR0ZW4gaWYgaXQgYWxyZWFkeSBleGlzdHMuDQogQGVuZCB0
YWJsZQ0KLS0NCjIuMzQuMQ0KDQoNCg0KX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18N
CkZyb206IGZmbXBlZy1kZXZlbCA8ZmZtcGVnLWRldmVsLWJvdW5jZXNAZmZtcGVnLm9yZz4gb24g
YmVoYWxmIG9mIEFuZHJlYXMgUmhlaW5oYXJkdCA8YW5kcmVhcy5yaGVpbmhhcmR0QG91dGxvb2su
Y29tPg0KU2VudDogMjYgQXByaWwgMjAyNSAzOjAwDQpUbzogZmZtcGVnLWRldmVsQGZmbXBlZy5v
cmcgPGZmbXBlZy1kZXZlbEBmZm1wZWcub3JnPg0KU3ViamVjdDogUmU6IFtGRm1wZWctZGV2ZWxd
IFtQQVRDSF0gYXZmaWx0ZXI6IGFkZCBQQ00gZHVtcGluZyBiZXR3ZWVuIGZpbHRlcnMgZm9yIGF1
ZGlvIGRlYnVnZ2luZw0KDQrSu9a7tPMgt8rDqDoNCj4gVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIFBD
TSBkdW1waW5nIHN1cHBvcnQgYmV0d2VlbiBBVkZpbHRlciBsaW5rcywgaW50ZW5kZWQgZm9yIGF1
ZGlvIGRlYnVnZ2luZy4NCj4NCj4gSXQgYWRkcyBhIGNvbmZpZ3VyZS10aW1lIG9wdGlvbiBgLS1k
dW1wZGlyPVBBVEhgIHRvIHNwZWNpZnkgdGhlIG91dHB1dCBkaXJlY3RvcnkgZm9yIHJhdyBQQ00g
ZGF0YSAoZGVmYXVsdDogL3RtcC8pLg0KPg0KPiBUd28gY29tbWFuZHMgYXJlIGV4cG9zZWQgdG8g
Y29udHJvbCBkdW1waW5nOg0KPiAgIC0gZHVtcF9yYXdfc3RhcnQgPGRzdF9maWx0ZXJfbmFtZT4N
Cj4gICAtIGR1bXBfcmF3X3N0b3AgPGRzdF9maWx0ZXJfbmFtZT4NCj4NCj4gRHVtcCBmaWxlcyBh
cmUgd3JpdHRlbiBhczogc3JjbmFtZS1kc3RuYW1lLWNoYW5uZWwucGNtDQo+DQo+IFN1cHBvcnRz
IHBhY2tlZCBhbmQgcGxhbmFyIGZvcm1hdHMuIEZpbGUgZGVzY3JpcHRvcnMgYXJlIG1hbmFnZWQg
YXV0b21hdGljYWxseSBhbmQgd29yayBvbmx5IG9uIGF1ZGlvIGxpbmtzLg0KPg0KPiBFeGFtcGxl
IHVzYWdlOg0KPiAgICAgYXZmaWx0ZXJfcHJvY2Vzc19jb21tYW5kKGZpbHRlciwgImR1bXBfcmF3
X3N0YXJ0IiwgInZvbHVtZSIsIE5VTEwsIDAsIDApOw0KPg0KPiBUaGlzIGZlYXR1cmUgaGVscHMg
ZGV2ZWxvcGVycyBkZWJ1ZyBmaWx0ZXIgYmVoYXZpb3IgYnkgaW5zcGVjdGluZyBpbnRlcm1lZGlh
dGUgYXVkaW8gZGF0YS4NCj4gLS0tDQo+IEZyb20gNmEzMWM4NWFmZDI4MDBjMDkwNzZjMWUyYjdj
NzM0YzdiNzE5ZjczZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDENCj4gRnJvbTogWWlibyBGYW5n
IDxibHVleWJmNzc3QG91dGxvb2suY29tPg0KPiBEYXRlOiBXZWQsIDIzIEFwciAyMDI1IDA5OjE3
OjUxICswODAwDQo+IFN1YmplY3Q6IFtQQVRDSCAxLzFdIGF2ZmlsdGVyOiBhZGQgUENNIGR1bXBp
bmcgYmV0d2VlbiBmaWx0ZXJzIGZvciBhdWRpbw0KPiAgZGVidWdnaW5nDQo+DQo+IFRoaXMgcGF0
Y2ggYWRkcyB0aGUgYWJpbGl0eSB0byBkdW1wIHJhdyBQQ00gYXVkaW8gZGF0YSBiZXR3ZWVuIEFW
RmlsdGVyIGxpbmtzLg0KPiBJdCBpbnRyb2R1Y2VzIGEgY29uZmlndXJlLXRpbWUgb3B0aW9uIGAt
LWR1bXBkaXI9UEFUSGAgdG8gY29udHJvbCB0aGUgb3V0cHV0DQo+IGRpcmVjdG9yeSBvZiBkdW1w
IGZpbGVzIChkZWZhdWx0OiAvdG1wLykuIFRoaXMgZmVhdHVyZSBpcyBoZWxwZnVsIGZvciBkZWJ1
Z2dpbmcNCj4gZmlsdGVyIGJlaGF2aW9yIGFuZCB2ZXJpZnlpbmcgYXVkaW8gcHJvY2Vzc2luZy4N
Cj4NCj4gVHdvIGZpbHRlciBjb21tYW5kcyBhcmUgYWRkZWQ6DQo+ICAgLSBkdW1wX3Jhd19zdGFy
dCA8ZHN0X2ZpbHRlcl9uYW1lPg0KPiAgIC0gZHVtcF9yYXdfc3RvcCA8ZHN0X2ZpbHRlcl9uYW1l
Pg0KPg0KPiBUaGUgUENNIGZpbGVzIGFyZSB3cml0dGVuIGluIHRoZSBmb3JtYXQ6IHNyY25hbWUt
ZHN0bmFtZS08Y2hhbm5lbD4ucGNtLg0KPg0KPiBTdXBwb3J0cyBib3RoIHBhY2tlZCBhbmQgcGxh
bmFyIGZvcm1hdHMuIEZpbGUgZGVzY3JpcHRvcnMgYXJlIGF1dG9tYXRpY2FsbHkNCj4gbWFuYWdl
ZC4gV29ya3Mgb25seSBvbiBhdWRpbyBsaW5rcy4NCj4NCj4gRXhhbXBsZSB1c2FnZToNCj4gICBh
dmZpbHRlcl9wcm9jZXNzX2NvbW1hbmQoZmlsdGVyLCAiZHVtcF9yYXdfc3RhcnQiLCAidm9sdW1l
IiwgTlVMTCwgMCwgMCk7DQo+DQo+IFNpZ25lZC1vZmYtYnk6IFlpYm8gRmFuZyA8Ymx1ZXliZjc3
N0BvdXRsb29rLmNvbT4NCj4gLS0tDQo+ICBjb25maWd1cmUgICAgICAgICAgICAgIHwgICA3ICsr
Kw0KPiAgbGliYXZmaWx0ZXIvYXZmaWx0ZXIuYyB8IDExMCArKysrKysrKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKw0KPiAgbGliYXZmaWx0ZXIvYXZmaWx0ZXIuaCB8ICAgNCArKw0K
PiAgMyBmaWxlcyBjaGFuZ2VkLCAxMjEgaW5zZXJ0aW9ucygrKQ0KPg0KPiBkaWZmIC0tZ2l0IGEv
Y29uZmlndXJlIGIvY29uZmlndXJlDQo+IGluZGV4IGM5NGI4ZWFjNDMuLjM4MTYzMzc0OWQgMTAw
NzU1DQo+IC0tLSBhL2NvbmZpZ3VyZQ0KPiArKysgYi9jb25maWd1cmUNCj4gQEAgLTUyNCw2ICs1
MjQsNyBAQCBEZXZlbG9wZXIgb3B0aW9ucyAodXNlZnVsIHdoZW4gd29ya2luZyBvbiBGRm1wZWcg
aXRzZWxmKToNCj4gICAgLS1kaXNhYmxlLWxhcmdlLXRlc3RzICAgIGRpc2FibGUgdGVzdHMgdGhh
dCB1c2UgYSBsYXJnZSBhbW91bnQgb2YgbWVtb3J5DQo+ICAgIC0tZGlzYWJsZS1wdHgtY29tcHJl
c3Npb24gZG9uJ3QgY29tcHJlc3MgQ1VEQSBQVFggY29kZSBldmVuIHdoZW4gcG9zc2libGUNCj4g
ICAgLS1kaXNhYmxlLXZlcnNpb24tdHJhY2tpbmcgZG9uJ3QgaW5jbHVkZSB0aGUgZ2l0L3JlbGVh
c2UgdmVyc2lvbiBpbiB0aGUgYnVpbGQNCj4gKyAgLS1kdW1wZGlyPVBBVEggICAgICAgICAgIGxv
Y2F0aW9uIG9mIHBjbSBkdW1wIGZpbGVzIHRvIHNhdmUuDQo+DQo+ICBOT1RFOiBPYmplY3QgZmls
ZXMgYXJlIGJ1aWx0IGF0IHRoZSBwbGFjZSB3aGVyZSBjb25maWd1cmUgaXMgbGF1bmNoZWQuDQo+
ICBFT0YNCj4gQEAgLTI2OTAsNiArMjY5MSw3IEBAIFBBVEhTX0xJU1Q9Ig0KPiAgICAgIHByZWZp
eA0KPiAgICAgIHNobGliZGlyDQo+ICAgICAgaW5zdGFsbF9uYW1lX2Rpcg0KPiArICAgIGR1bXBk
aXINCj4gICINCj4NCj4gIENNRExJTkVfU0VUPSINCj4gQEAgLTQxMjMsNiArNDEyNSw5IEBAIGlu
Y2Rpcl9kZWZhdWx0PScke3ByZWZpeH0vaW5jbHVkZScNCj4gIGxpYmRpcl9kZWZhdWx0PScke3By
ZWZpeH0vbGliJw0KPiAgbWFuZGlyX2RlZmF1bHQ9JyR7cHJlZml4fS9zaGFyZS9tYW4nDQo+DQo+
ICsjIHJ1bnRpbWUgcGF0aA0KPiArZHVtcGRpcl9kZWZhdWx0PScvdG1wLycNCj4gKw0KPiAgIyB0
b29sY2hhaW4NCj4gIGFyX2RlZmF1bHQ9ImFyIg0KPiAgY2NfZGVmYXVsdD0iZ2NjIg0KPiBAQCAt
ODExOCw2ICs4MTIzLDcgQEAgRE9DRElSPVwkKERFU1RESVIpJGRvY2Rpcg0KPiAgTUFORElSPVwk
KERFU1RESVIpJG1hbmRpcg0KPiAgUEtHQ09ORklHRElSPVwkKERFU1RESVIpJHBrZ2NvbmZpZ2Rp
cg0KPiAgSU5TVEFMTF9OQU1FX0RJUj0kaW5zdGFsbF9uYW1lX2Rpcg0KPiArRFVNUERJUj0kZHVt
cGRpcg0KPiAgU1JDX1BBVEg9JHNvdXJjZV9wYXRoDQo+ICBTUkNfTElOSz0kc291cmNlX2xpbmsN
Cj4gIGlmbmRlZiBNQUlOX01BS0VGSUxFDQo+IEBAIC04MjY3LDYgKzgyNzMsNyBAQCBjYXQgPiAk
VE1QSCA8PEVPRg0KPiAgI2RlZmluZSBDT05GSUdfVEhJU19ZRUFSIDIwMjUNCj4gICNkZWZpbmUg
RkZNUEVHX0RBVEFESVIgIiQoZXZhbCBjX2VzY2FwZSAkZGF0YWRpcikiDQo+ICAjZGVmaW5lIEFW
Q09OVl9EQVRBRElSICIkKGV2YWwgY19lc2NhcGUgJGRhdGFkaXIpIg0KPiArI2RlZmluZSBGRk1Q
RUdfRFVNUERJUiAiJChldmFsIGNfZXNjYXBlICRkdW1wZGlyKSINCj4gICNkZWZpbmUgQ0NfSURF
TlQgIiQoY19lc2NhcGUgJHtjY19pZGVudDotVW5rbm93biBjb21waWxlcn0pIg0KPiAgI2RlZmlu
ZSBPU19OQU1FICR0YXJnZXRfb3MNCj4gICNkZWZpbmUgRVhURVJOX1BSRUZJWCAiJHtleHRlcm5f
cHJlZml4fSINCj4gZGlmZiAtLWdpdCBhL2xpYmF2ZmlsdGVyL2F2ZmlsdGVyLmMgYi9saWJhdmZp
bHRlci9hdmZpbHRlci5jDQo+IGluZGV4IDY0YzEwNzVjNDAuLjlmYzYzMDg1NDQgMTAwNjQ0DQo+
IC0tLSBhL2xpYmF2ZmlsdGVyL2F2ZmlsdGVyLmMNCj4gKysrIGIvbGliYXZmaWx0ZXIvYXZmaWx0
ZXIuYw0KPiBAQCAtMTksNiArMTksOSBAQA0KPiAgICogRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJh
bmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwgQm9zdG9uLCBNQSAwMjExMC0xMzAxIFVTQQ0KPiAg
ICovDQo+DQo+ICsjaW5jbHVkZSA8ZmNudGwuaD4NCj4gKyNpbmNsdWRlIDx1bmlzdGQuaD4NCj4g
Kw0KPiAgI2luY2x1ZGUgImxpYmF2dXRpbC9hdmFzc2VydC5oIg0KPiAgI2luY2x1ZGUgImxpYmF2
dXRpbC9hdnN0cmluZy5oIg0KPiAgI2luY2x1ZGUgImxpYmF2dXRpbC9icHJpbnQuaCINCj4gQEAg
LTE5NSw2ICsxOTgsNjYgQEAgaW50IGF2ZmlsdGVyX2xpbmsoQVZGaWx0ZXJDb250ZXh0ICpzcmMs
IHVuc2lnbmVkIHNyY3BhZCwNCj4gICAgICByZXR1cm4gMDsNCj4gIH0NCj4NCj4gK3N0YXRpYyBh
dl9jb2xkIHZvaWQgbGlua191bmluaXRfZHVtcF9wY20oQVZGaWx0ZXJMaW5rICpsaW5rLCBpbnQg
c3RvcCkNCj4gK3sNCj4gKyAgICBpZiAobGluay0+ZHVtcF9wY21fZmRzKSB7DQo+ICsgICAgICAg
IGludCBpOw0KPiArICAgICAgICBmb3IgKGkgPSAwOyBpIDwgbGluay0+bmJfZHVtcF9wY21fZmRz
OyBpKyspIHsNCj4gKyAgICAgICAgICAgIGlmIChsaW5rLT5kdW1wX3BjbV9mZHNbaV0pDQo+ICsg
ICAgICAgICAgICAgICAgY2xvc2UobGluay0+ZHVtcF9wY21fZmRzW2ldKTsNCj4gKyAgICAgICAg
fQ0KPiArICAgICAgICBhdl9mcmVlKGxpbmstPmR1bXBfcGNtX2Zkcyk7DQo+ICsgICAgICAgIGxp
bmstPmR1bXBfcGNtX2ZkcyAgICA9IE5VTEw7DQo+ICsgICAgICAgIGxpbmstPm5iX2R1bXBfcGNt
X2ZkcyA9IDA7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgaWYgKHN0b3ApDQo+ICsgICAgICAgIGxp
bmstPmR1bXBfcGNtID0gMDsNCj4gK30NCj4gKw0KPiArc3RhdGljIGF2X2NvbGQgaW50IGxpbmtf
aW5pdF9kdW1wX3BjbShBVkZpbHRlckxpbmsgKmxpbmspDQo+ICt7DQo+ICsgICAgY2hhciBwYXRo
WzQwOTZdOw0KPiArICAgIGludCBmZCwgaTsNCj4gKw0KPiArICAgIGxpbmstPm5iX2R1bXBfcGNt
X2ZkcyA9IGF2X3NhbXBsZV9mbXRfaXNfcGxhbmFyKGxpbmstPmZvcm1hdCk/IGxpbmstPmNoX2xh
eW91dC5uYl9jaGFubmVscyA6IDE7DQo+ICsgICAgbGluay0+ZHVtcF9wY21fZmRzID0gYXZfbWFs
bG9jX2FycmF5KGxpbmstPm5iX2R1bXBfcGNtX2Zkcywgc2l6ZW9mKGludCkpOw0KPiArICAgIGlm
ICghbGluay0+ZHVtcF9wY21fZmRzKQ0KPiArICAgICAgICByZXR1cm4gQVZFUlJPUihFTk9NRU0p
Ow0KPiArDQo+ICsgICAgZm9yIChpID0gMDsgaSA8IGxpbmstPm5iX2R1bXBfcGNtX2ZkczsgaSsr
KSB7DQo+ICsgICAgICAgIHNucHJpbnRmKHBhdGgsIHNpemVvZihwYXRoKSwgRkZNUEVHX0RVTVBE
SVIiJS4xNnMtJS44cy0lZC5wY20iLCBsaW5rLT5zcmMtPm5hbWUsIGxpbmstPmRzdC0+bmFtZSwg
aSk7DQo+ICsgICAgICAgIGZkID0gb3BlbihwYXRoLCBPX1dST05MWSB8IE9fQ1JFQVQgfCBPX1RS
VU5DLCAwNjQ0KTsNCj4gKyAgICAgICAgaWYgKGZkIDwgMCkgew0KPiArICAgICAgICAgICAgbGlu
a191bmluaXRfZHVtcF9wY20obGluaywgMSk7DQo+ICsgICAgICAgICAgICByZXR1cm4gQVZFUlJP
UihlcnJubyk7DQo+ICsgICAgICAgIH0NCj4gKyAgICAgICAgbGluay0+ZHVtcF9wY21fZmRzW2ld
ID0gZmQ7DQo+ICsgICAgfQ0KPiArDQo+ICsgICAgcmV0dXJuIDA7DQo+ICt9DQo+ICsNCj4gK3N0
YXRpYyBpbnQgZmlsdGVyX3NldF9kdW1wX3BjbShBVkZpbHRlckNvbnRleHQgKmZpbHRlciwgY29u
c3QgY2hhciAqdGFyZ2V0LCBpbnQgc2V0KQ0KPiArew0KPiArICAgIGludCBpOw0KPiArDQo+ICsg
ICAgZm9yIChpID0gMDsgaSA8IGZpbHRlci0+bmJfb3V0cHV0czsgaSsrKSB7DQo+ICsgICAgICAg
IEFWRmlsdGVyTGluayAqbGluayA9IGZpbHRlci0+b3V0cHV0c1tpXTsNCj4gKyAgICAgICAgaWYg
KCF0YXJnZXQgfHwgIXN0cmNtcChsaW5rLT5kc3QtPm5hbWUsIHRhcmdldCkpIHsNCj4gKyAgICAg
ICAgICAgIGlmIChzZXQpIHsNCj4gKyAgICAgICAgICAgICAgICBsaW5rLT5kdW1wX3BjbSA9IDE7
DQo+ICsgICAgICAgICAgICB9IGVsc2UNCj4gKyAgICAgICAgICAgICAgICBsaW5rX3VuaW5pdF9k
dW1wX3BjbShsaW5rLCAxKTsNCj4gKw0KPiArICAgICAgICAgICAgaWYgKHRhcmdldCkNCj4gKyAg
ICAgICAgICAgICAgICByZXR1cm4gMDsNCj4gKyAgICAgICAgfQ0KPiArICAgIH0NCj4gKw0KPiAr
ICAgIHJldHVybiB0YXJnZXQgPyBBVkVSUk9SKEVJTlZBTCkgOiAwOw0KPiArfQ0KPiArDQo+ICBz
dGF0aWMgdm9pZCBsaW5rX2ZyZWUoQVZGaWx0ZXJMaW5rICoqbGluaykNCj4gIHsNCj4gICAgICBG
aWx0ZXJMaW5rSW50ZXJuYWwgKmxpOw0KPiBAQCAtMjA4LDYgKzI3MSw4IEBAIHN0YXRpYyB2b2lk
IGxpbmtfZnJlZShBVkZpbHRlckxpbmsgKipsaW5rKQ0KPiAgICAgIGF2X2NoYW5uZWxfbGF5b3V0
X3VuaW5pdCgmKCpsaW5rKS0+Y2hfbGF5b3V0KTsNCj4gICAgICBhdl9mcmFtZV9zaWRlX2RhdGFf
ZnJlZSgmKCpsaW5rKS0+c2lkZV9kYXRhLCAmKCpsaW5rKS0+bmJfc2lkZV9kYXRhKTsNCj4NCj4g
KyAgICBsaW5rX3VuaW5pdF9kdW1wX3BjbSgqbGluaywgMSk7DQo+ICsNCj4gICAgICBhdl9idWZm
ZXJfdW5yZWYoJmxpLT5sLmh3X2ZyYW1lc19jdHgpOw0KPg0KPiAgICAgIGF2X2ZyZWVwKGxpbmsp
Ow0KPiBAQCAtNjE3LDYgKzY4MiwxMCBAQCBpbnQgYXZmaWx0ZXJfcHJvY2Vzc19jb21tYW5kKEFW
RmlsdGVyQ29udGV4dCAqZmlsdGVyLCBjb25zdCBjaGFyICpjbWQsIGNvbnN0IGNoYQ0KPiAgICAg
ICAgICBpZiAocmVzID09IGxvY2FsX3JlcykNCj4gICAgICAgICAgICAgIGF2X2xvZyhmaWx0ZXIs
IEFWX0xPR19JTkZPLCAiJXMiLCByZXMpOw0KPiAgICAgICAgICByZXR1cm4gMDsNCj4gKyAgICB9
ZWxzZSBpZighc3RyY21wKGNtZCwgImR1bXBfcmF3X3N0YXJ0IikpIHsNCj4gKyAgICAgICAgcmV0
dXJuIGZpbHRlcl9zZXRfZHVtcF9wY20oZmlsdGVyLCBhcmcsIDEpOw0KPiArICAgIH1lbHNlIGlm
KCFzdHJjbXAoY21kLCAiZHVtcF9yYXdfc3RvcCIpKSB7DQo+ICsgICAgICAgIHJldHVybiBmaWx0
ZXJfc2V0X2R1bXBfcGNtKGZpbHRlciwgYXJnLCAwKTsNCj4gICAgICB9ZWxzZSBpZighc3RyY21w
KGNtZCwgImVuYWJsZSIpKSB7DQo+ICAgICAgICAgIHJldHVybiBzZXRfZW5hYmxlX2V4cHIoZmZm
aWx0ZXJjdHgoZmlsdGVyKSwgYXJnKTsNCj4gICAgICB9ZWxzZSBpZiAoZmZmaWx0ZXIoZmlsdGVy
LT5maWx0ZXIpLT5wcm9jZXNzX2NvbW1hbmQpIHsNCj4gQEAgLTEwNTAsNiArMTExOSw0MSBAQCBm
YWlsOg0KPiAgICAgIHJldHVybiByZXQ7DQo+ICB9DQo+DQo+ICtzdGF0aWMgaW50IGxpbmtfZHVt
cF9mcmFtZShBVkZpbHRlckxpbmsgKmxpbmssIEFWRnJhbWUgKmZyYW1lKQ0KPiArew0KPiArICAg
IGludCBzYW1wbGVzX3NpemUsIHJldDsNCj4gKw0KPiArICAgIGlmICghbGluay0+ZHVtcF9wY21f
ZmRzKSB7DQo+ICsgICAgICAgIHJldCA9IGxpbmtfaW5pdF9kdW1wX3BjbShsaW5rKTsNCj4gKyAg
ICAgICAgaWYgKHJldCA8IDApDQo+ICsgICAgICAgICAgICByZXR1cm4gcmV0Ow0KPiArICAgIH0N
Cj4gKw0KPiArICAgIHNhbXBsZXNfc2l6ZSA9IGF2X2dldF9ieXRlc19wZXJfc2FtcGxlKGZyYW1l
LT5mb3JtYXQpICogZnJhbWUtPm5iX3NhbXBsZXM7DQo+ICsgICAgaWYgKGF2X3NhbXBsZV9mbXRf
aXNfcGxhbmFyKGZyYW1lLT5mb3JtYXQpKSB7DQo+ICsgICAgICAgIGludCBpOw0KPiArICAgICAg
ICBmb3IgKGkgPSAwOyBpIDwgbGluay0+bmJfZHVtcF9wY21fZmRzICYmIGkgPCBmcmFtZS0+Y2hf
bGF5b3V0Lm5iX2NoYW5uZWxzOyBpKyspIHsNCj4gKyAgICAgICAgICAgIGlmIChpIDwgQVZfTlVN
X0RBVEFfUE9JTlRFUlMpIHsNCj4gKyAgICAgICAgICAgICAgICByZXQgPSB3cml0ZShsaW5rLT5k
dW1wX3BjbV9mZHNbaV0sIGZyYW1lLT5kYXRhW2ldLCBzYW1wbGVzX3NpemUpOw0KPiArICAgICAg
ICAgICAgfSBlbHNlDQo+ICsgICAgICAgICAgICAgICAgcmV0ID0gd3JpdGUobGluay0+ZHVtcF9w
Y21fZmRzW2ldLCBmcmFtZS0+ZXh0ZW5kZWRfZGF0YVtpIC0gQVZfTlVNX0RBVEFfUE9JTlRFUlNd
LCBzYW1wbGVzX3NpemUpOw0KPiArDQo+ICsgICAgICAgICAgICBpZiAocmV0IDwgMCkNCj4gKyAg
ICAgICAgICAgICAgICBnb3RvIGVycjsNCj4gKyAgICAgICAgfQ0KPiArICAgIH0gZWxzZSB7DQo+
ICsgICAgICAgIHJldCA9IHdyaXRlKGxpbmstPmR1bXBfcGNtX2Zkc1swXSwgZnJhbWUtPmRhdGFb
MF0sIHNhbXBsZXNfc2l6ZSAqIGZyYW1lLT5jaF9sYXlvdXQubmJfY2hhbm5lbHMpOw0KPiArICAg
ICAgICBpZiAocmV0IDwgMCkNCj4gKyAgICAgICAgICAgIGdvdG8gZXJyOw0KPiArDQo+ICsgICAg
fQ0KPiArDQo+ICsgICAgcmV0dXJuIDA7DQo+ICtlcnI6DQo+ICsgICAgbGlua191bmluaXRfZHVt
cF9wY20obGluaywgMSk7DQo+ICsgICAgcmV0dXJuIEFWRVJST1IoZXJybm8pOw0KPiArfQ0KPiAr
DQo+ICBpbnQgZmZfZmlsdGVyX2ZyYW1lKEFWRmlsdGVyTGluayAqbGluaywgQVZGcmFtZSAqZnJh
bWUpDQo+ICB7DQo+ICAgICAgRmlsdGVyTGlua0ludGVybmFsICogY29uc3QgbGkgPSBmZl9saW5r
X2ludGVybmFsKGxpbmspOw0KPiBAQCAtMTA4Nyw2ICsxMTkxLDEyIEBAIGludCBmZl9maWx0ZXJf
ZnJhbWUoQVZGaWx0ZXJMaW5rICpsaW5rLCBBVkZyYW1lICpmcmFtZSkNCj4gICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpbmstPnRpbWVfYmFzZSk7DQo+ICAgICAgfQ0K
Pg0KPiArICAgIGlmIChsaW5rLT5kdW1wX3BjbSAmJiBsaW5rLT50eXBlID09IEFWTUVESUFfVFlQ
RV9BVURJTykgew0KPiArICAgICAgICByZXQgPSBsaW5rX2R1bXBfZnJhbWUobGluaywgZnJhbWUp
Ow0KPiArICAgICAgICBpZiAocmV0IDwgMCkNCj4gKyAgICAgICAgICAgIGF2X2xvZyhsaW5rLT5k
c3QsIEFWX0xPR19FUlJPUiwgIkR1bXAgcGNtIGZpbGVzIGZhaWxlZCB3aXRoICVkXG4iLCByZXQp
Ow0KPiArICAgIH0NCj4gKw0KPiAgICAgIGxpLT5mcmFtZV9ibG9ja2VkX2luID0gbGktPmZyYW1l
X3dhbnRlZF9vdXQgPSAwOw0KPiAgICAgIGxpLT5sLmZyYW1lX2NvdW50X2luKys7DQo+ICAgICAg
bGktPmwuc2FtcGxlX2NvdW50X2luICs9IGZyYW1lLT5uYl9zYW1wbGVzOw0KPiBkaWZmIC0tZ2l0
IGEvbGliYXZmaWx0ZXIvYXZmaWx0ZXIuaCBiL2xpYmF2ZmlsdGVyL2F2ZmlsdGVyLmgNCj4gaW5k
ZXggYTg5ZDNjZjY1OC4uNmQwNGI5ZGE3NyAxMDA2NDQNCj4gLS0tIGEvbGliYXZmaWx0ZXIvYXZm
aWx0ZXIuaA0KPiArKysgYi9saWJhdmZpbHRlci9hdmZpbHRlci5oDQo+IEBAIC00MDQsNiArNDA0
LDEwIEBAIHN0cnVjdCBBVkZpbHRlckxpbmsgew0KPiAgICAgIGludCBzYW1wbGVfcmF0ZTsgICAg
ICAgICAgICAvLy88IHNhbXBsZXMgcGVyIHNlY29uZA0KPiAgICAgIEFWQ2hhbm5lbExheW91dCBj
aF9sYXlvdXQ7ICAvLy88IGNoYW5uZWwgbGF5b3V0IG9mIGN1cnJlbnQgYnVmZmVyIChzZWUgbGli
YXZ1dGlsL2NoYW5uZWxfbGF5b3V0LmgpDQo+DQo+ICsgICAgaW50ICAgICAgICBkdW1wX3BjbTsg
ICAgICAgLy8vPCBmbGFnIHRvIGR1bXAgcGNtDQo+ICsgICAgaW50ICAgICAgICAqZHVtcF9wY21f
ZmRzOyAgIC8vLzwgZHVtcCBmaWxlcw0KPiArICAgIHVuc2lnbmVkIG5iX2R1bXBfcGNtX2Zkczsg
ICAvLy88IG51bWJlciBvZiBkdW1wIGZpbGUNCj4gKw0KPiAgICAgIC8qKg0KPiAgICAgICAqIERl
ZmluZSB0aGUgdGltZSBiYXNlIHVzZWQgYnkgdGhlIFBUUyBvZiB0aGUgZnJhbWVzL3NhbXBsZXMN
Cj4gICAgICAgKiB3aGljaCB3aWxsIHBhc3MgdGhyb3VnaCB0aGlzIGxpbmsuDQo+IC0tDQo+IDIu
MzQuMQ0KPg0KDQpDYW4ndCB5b3UgdXNlIHRoZSBhc3BsaXQgZmlsdGVyIHRvIGR1cGxpY2F0ZSB0
aGUgYXVkaW8/DQoNCi0gQW5kcmVhcw0KDQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fXw0KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdA0KZmZtcGVnLWRldmVs
QGZmbXBlZy5vcmcNCmh0dHBzOi8vZmZtcGVnLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1k
ZXZlbA0KDQpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBhYm92ZSwgb3IgZW1haWwNCmZmbXBl
Zy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIuDQpf
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpmZm1wZWctZGV2
ZWwgbWFpbGluZyBsaXN0CmZmbXBlZy1kZXZlbEBmZm1wZWcub3JnCmh0dHBzOi8vZmZtcGVnLm9y
Zy9tYWlsbWFuL2xpc3RpbmZvL2ZmbXBlZy1kZXZlbAoKVG8gdW5zdWJzY3JpYmUsIHZpc2l0IGxp
bmsgYWJvdmUsIG9yIGVtYWlsCmZmbXBlZy1kZXZlbC1yZXF1ZXN0QGZmbXBlZy5vcmcgd2l0aCBz
dWJqZWN0ICJ1bnN1YnNjcmliZSIuCg==