Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sLZ9T-00FPfY-0e for pgsql-hackers@arkaria.postgresql.org; Mon, 24 Jun 2024 02:09:51 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1sLZ9Q-002fmF-JJ for pgsql-hackers@arkaria.postgresql.org; Mon, 24 Jun 2024 02:09:48 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sLZ9P-002fm7-O1 for pgsql-hackers@lists.postgresql.org; Mon, 24 Jun 2024 02:09:48 +0000 Received: from esa7.fujitsucc.c3s2.iphmx.com ([68.232.159.87]) by magus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1sLZ9I-003EAG-KU for pgsql-hackers@postgresql.org; Mon, 24 Jun 2024 02:09:47 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=fujitsu.com; i=@fujitsu.com; q=dns/txt; s=fj1; t=1719194981; x=1750730981; h=from:to:cc:subject:date:message-id:references: in-reply-to:mime-version; bh=z8WLwTqUJ83/H84Vyh64k+B99erzyOBkaEgSP3EFetQ=; b=pkR/UFMB3h5cWX2GTtTYGzdk9xNsqE0LaunqpBpv4A1iW5rNtMYqmrtq K7AqWplh3+uJOe7q+8eeDUeXQynVDRaOMLH3c7VwIuLbT2ngaZkR05x0e XidUNlEn8DszbIkiHZwTZDG+wVD1U+PuPvY+YdI0yw2978iSKjR0rVMYK hnpc3XdfrMh6GtyTfoKFR4X1kclS8gcfkXP0MdOWJ2X4hT5xHfPDJTl+B ZzfsVKANaGkx2bBtUQDlNN/SMJT7HWAMVZxYn02ewvqWE2RD9iCRvGS3w n0XkaVWlywXiRA7tme3wLa0VQvqJFcIDIW7KIEQo1zg/uPr4ZViyT4wLv Q==; X-IronPort-AV: E=McAfee;i="6700,10204,11112"; a="123093469" X-IronPort-AV: E=Sophos;i="6.08,261,1712588400"; d="scan'208,223";a="123093469" Received: from mail-os0jpn01lp2104.outbound.protection.outlook.com (HELO JPN01-OS0-obe.outbound.protection.outlook.com) ([104.47.23.104]) by ob1.fujitsucc.c3s2.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 24 Jun 2024 11:09:36 +0900 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=c3pkb9K2oAZ/YFwSA2Y/rpDVzpZAfjv0BbSo8L2WqHL3GzTWH06mWAfJCY/skk8aCf2+kvyhlsIUY0rkROAgfUpUGgAct6UcA+PK1a4vnRBQTSJhCmbqlwqWPJU2VwRUe86y6FzlmqOK0PaJWIG55FEs+qvuwRnkzMbI48SxyekCVnnakgKPLPngtR5K1dXtX/LpIQBvng/PGlRCllrxgXB/oV4b+ocxQMILAYkR/7acaNllCmKz2tlLbLuLpDxkXM5PUlYWWGvA9kbdPCRcXtUmr6d/LFaWluSmJo6La0tMtqD9490Ltko033F3+fXEqJgX84TW1PsLX7YcYGzRiA== 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=IeStpSAV1EMZpez7OqZA1GUZsKmyiarJ1MaKVP4tQqE=; b=XO0DzW3NB8ZdYfXdyDIyz5PmB36fPi+3LfOQshxAUe8+/0X7YZmazRj0TvsDRrbLYRsNbaqRj1brcC4TEWaAeFZq4hY0meOLfNja/iGK2raTtdm3x23R/VR0LImdYrY/R7apuScb7d28QFRpoySGKMsaXvby1myRSgLZArpNNZWiuPAHoeJJ9wxwf2n2QU3nc+hGZVizn4dFgeNZJ9vLv/+ncqqthRmA69Vo/7p1J/9wN2UN8BiIztZZuGRcGh9dJz6nMRO4z3mJjZFF/vW7gExnA1HQK7nL4/ImH6lKVO/R++YTPt3p2RLk65x3w/alMYMEDqNrEikGy8vkZQXTCQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=fujitsu.com; dmarc=pass action=none header.from=fujitsu.com; dkim=pass header.d=fujitsu.com; arc=none Received: from OS0PR01MB5716.jpnprd01.prod.outlook.com (2603:1096:604:bb::12) by TYTPR01MB10978.jpnprd01.prod.outlook.com (2603:1096:400:3a0::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7698.29; Mon, 24 Jun 2024 02:09:27 +0000 Received: from OS0PR01MB5716.jpnprd01.prod.outlook.com ([fe80::fca7:f02b:186b:2a7a]) by OS0PR01MB5716.jpnprd01.prod.outlook.com ([fe80::fca7:f02b:186b:2a7a%5]) with mapi id 15.20.7698.025; Mon, 24 Jun 2024 02:09:27 +0000 From: "Zhijie Hou (Fujitsu)" To: "Zhijie Hou (Fujitsu)" , pgsql-hackers CC: Nisha Moond , Dilip Kumar , shveta malik , Jan Wieck , Tomas Vondra , Amit Kapila , Ashutosh Bapat Subject: RE: Conflict detection and logging in logical replication Thread-Topic: Conflict detection and logging in logical replication Thread-Index: AdrDrD42z+JL6kkyT+S5P3mFtvUPXACLiFVg Date: Mon, 24 Jun 2024 02:09:27 +0000 Message-ID: References: In-Reply-To: Accept-Language: en-AS, ja-JP, en-US Content-Language: ja-JP X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_ActionId=9276ddea-9eb2-4ff8-86a1-34e0372f38d4;MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_ContentBits=0;MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_Enabled=true;MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_Method=Standard;MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_Name=FUJITSU-RESTRICTED?;MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_SetDate=2024-06-21T07:13:42Z;MSIP_Label_a7295cc1-d279-42ac-ab4d-3b0f4fece050_SiteId=a19f121d-81e1-4858-a9d8-736e267fd4c7; authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=fujitsu.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: OS0PR01MB5716:EE_|TYTPR01MB10978:EE_ x-ms-office365-filtering-correlation-id: 6a589d8c-03bf-4259-e3ad-08dc93f2acdd x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0;ARA:13230037|376011|366013|1800799021|1580799024|38070700015; x-microsoft-antispam-message-info: =?iso-2022-jp?B?eHNEQnZEUU9STDBnNEVETXMydERHa3lKeG01SFhYYkpNTVl2MXNmN202?= =?iso-2022-jp?B?T2RTV25mV0ZEU3BCWGRzWW5oQUFmd1NHVnM4bzhlNWZrc1owUUk2SUJ3?= =?iso-2022-jp?B?aWhqWU5jRzlZK0lpS1VNeDc2Mkg2R09iaUlsNU0vQ0dCR1JWL2lETzJT?= =?iso-2022-jp?B?a2xYdHdQS2ExTitqUkdJNDRHL1B5ZVU3QjFWWjU3cjc1MW5DaGxYRHF0?= =?iso-2022-jp?B?K2tEZlduYzRjTDQzb0E0eDBadjduZHBxaUVIMXR3SjM1Q1dqRVBjd0dw?= =?iso-2022-jp?B?WnZhL2Z5RGQvb0lxRWZGVk9PeTltSU5EazRJYWNnd08yNlVMR3hhNEph?= =?iso-2022-jp?B?ZmZzNzZXb3pVbXZQRmFicTBJd2ZvaXpHUjBNRjV4RWlqSVJiZlhsOTlk?= =?iso-2022-jp?B?aS9MZmE0dE5zcFRUMEJCQVdsKy8xSnliREdTUXcvQUpjWEhnTE1nWWJm?= =?iso-2022-jp?B?RWs4a0pTTS9XQXZXc1pXN1hzdDlBbFNMUnNtbDZiOGI0U25sa3ppRnY4?= =?iso-2022-jp?B?N2tuenk4N1BXZWd1WCtSYnNvS2QxQkh5UFFpN0NuRjBxcHF1b1owVE02?= =?iso-2022-jp?B?VXVreWRESi81L2M4K2Z5L21EUlp5ZzdpSUtkNktBUnNDUkxsaXRFVHAr?= =?iso-2022-jp?B?MnhlWDJPODh2R0x2dlNlb3N2Rld2aHlFYmFKV1ptVUlmQ2tyU3ZKQWRY?= =?iso-2022-jp?B?OFlqNUJ6UTlrMStLR25ScjVLTFkzaDB2OHJzdDY1cnJhOEhoSmxrUTRF?= =?iso-2022-jp?B?YnNrb2pTSkEwL1d2cWlEMHVUeGVsZHZzRHhjKzUwN3ZVOThKT09HNWIx?= =?iso-2022-jp?B?eFVVMjZ6UWpIeFNYbkJZNnI0OWRBZ0RHbmNWQU9XL3hUdWpZbGJKMWY2?= =?iso-2022-jp?B?QitpUmtRd3M2Vy9rOWNWMXhQa0lQT1BVQnZxYWVRS2x4c3MvQWx5a21M?= =?iso-2022-jp?B?Zi9pVkZ5WDRUMFozYnVVMGNWRENBYXNJK2I2cEFGSEF6cDhTU1VwQ0Fl?= =?iso-2022-jp?B?MXlPR1hSZk9iSFEwV3lOYTNRUWVWSGRMakVMTGJoQ1VVbGVQc2RJdjF6?= =?iso-2022-jp?B?ak0zUlFRYWtNTUNCWjhod2lFM2poVDdxZ01wckxvYUZ3NVJ3eFFjL1Q5?= =?iso-2022-jp?B?NDg4bkYvL3dPOFIvRmR0ZkUvc3J5UXM2Y3dudHZmdVB4aWU4WDl4cUZW?= =?iso-2022-jp?B?TWxEZGNEYWJRMXoxNmZmRSsyUmh3NjRCUkdKeEF2UDhFZXFoR0NZaWdy?= =?iso-2022-jp?B?SG9MTkVrazljRnF3eHl4MEtpY1puZ0VudlBqTE54VFkzUDZLcTMreWVX?= =?iso-2022-jp?B?bTJ6Zi9QRkp0WjBiM25CS051Qkl6TDZRWkVkY1Y5aDhwUjd2NWNFWk55?= =?iso-2022-jp?B?aHJ2Z3RNZER2U1ZZTC9SUWJObE1nRUROMjlwMkNLN2ZRWjBCNzR3YjRu?= =?iso-2022-jp?B?dnp2eFhMUytQbzZJN0NMVFJ4Q0t2VkRrcEdZcXowdEEvQnkxVDF5c3dT?= =?iso-2022-jp?B?LzFOZnFVeTVxODNPa2dvVHAyYkdBckNTSUpDWUpmMXdlTU5LSFpMb1d0?= =?iso-2022-jp?B?d1JTSzJqdkJQTTZDalIvdXl1NlZoNHZaYkdpZ1ViUkhzRSs2UTBCMTl1?= =?iso-2022-jp?B?QmxtMEJBOEhZbjRkZFBQaXVZdHBSeHJOMFNxYmpFR1o2bnVGSXloSHNa?= =?iso-2022-jp?B?cmpHNE9aQkZ5Zml2TTNDLy83L1hwbzB3RnFVWklTRWZwTEpOckY0Y2VD?= =?iso-2022-jp?B?cEhzVTQrRVd1RGZFS2l3dTZxelRPS2t2Z2RkSlJycjZ5QjdsTW9BZ2lC?= =?iso-2022-jp?B?UlhMMlNyTm9PcEpza2x5bmIwdUtYWEZXNmVaVHlnNkdNaE84bWo5ekxB?= =?iso-2022-jp?B?cG81V1kyWldia1dKa285S2lId3pENE9OVC90b3JXRmlOSGM4SFV1SWhu?= =?iso-2022-jp?B?RVZ3S2ptUG5FQzdYaUs2Rng0d3ZzZ0FwVWRDTDlvQmJxV3ltaElFZHJW?= =?iso-2022-jp?B?OTNjQk5LZktQS0lXbldleUg5ZFBZcmtsMnRqWmJqRGR1bStLbklaM3Bn?= =?iso-2022-jp?B?Nmc9PQ==?= x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:ja;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS0PR01MB5716.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230037)(376011)(366013)(1800799021)(1580799024)(38070700015);DIR:OUT;SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-2022-jp?B?WkpXSTZPNDMzWjhrbmNHMGpQeXZxS25xampSTmJEZ1FqM1pVYXEzNFdR?= =?iso-2022-jp?B?Z0xkNG03S0h5NThrUHhkYnZzbk0ycWFhbHdhbHZMeGh0MU4xTFZQcWpx?= =?iso-2022-jp?B?T2ZCWlNmUHV0azRGaHRCTnhjTk5MU1AwbVZWRng4MDhQSUM0SFA0Q2Z0?= =?iso-2022-jp?B?dDEyeEg1ZzN5NWxDMDZWNmhoWnVqblR2ZVNrcFBXYTZ0eWVxUXRUaFNl?= =?iso-2022-jp?B?UWpnQlhPZUdOeE9Nc1pMcFVCclhXMVJKR0VZWHdiQXBjMjZLMHE5VDJQ?= =?iso-2022-jp?B?QzVZejdFd0YxRU9sY013TDNxdk1ybFd1RC9qNFd6Y1NXbmdGY3ZUemhm?= =?iso-2022-jp?B?NGhWd1JZaXFjNUdXN2NkQlZ3RG5PdGdtci83MGhrcVFIT0lxdEJ6dDZF?= =?iso-2022-jp?B?TkgxamxhdE43WlpSMG1FQlgyeUh6YllUSFhLaEdmTDBydWtObXJqZzRu?= =?iso-2022-jp?B?NjhDNG1Pcnl5bkpMK0hoVHA2Y1BuSGp0ODY3SUczRlRmaXorMkFRT3BK?= =?iso-2022-jp?B?WXU1R3ZVZE5uWVNzMVZtTUx2dDM5ajBpTG1kY0N5ZGh2TFNUNjFQREdV?= =?iso-2022-jp?B?VUlIcjVqenlFQ1R6MVBTM0lBVWpzZ3lUdFNZZW5GcDc1aWErUG9zdmly?= =?iso-2022-jp?B?bS9WSDRRcnM0Zm1qcDl5dk12czVodVJaVWlzV2gxUTVFcHg2VGxOMHBn?= =?iso-2022-jp?B?U2ozSjRKL0xOYnRlNkVhc2R4MXhTVm5VU1ByT2dNWllWQ3ZKbGhHM2Fy?= =?iso-2022-jp?B?Um83QTlOeStvZllXbWlocGd6QzVNYWV3THZXZDljNFZ3bDZlWXN5Yk9J?= =?iso-2022-jp?B?cmFzS3BVOE5ydHVYSmhQUmZxRUVyQzdKaGFZLzRJbTMrV1ZlMDcwTkJu?= =?iso-2022-jp?B?cVlOalN1UUNGTlVqYTlENFJzTVVyaTF6U3FpUlhXSHNpOEpzYkhrTE1C?= =?iso-2022-jp?B?ZlpSNnk1WVN6RWlxMi9JemhVME9xdkVvK2dPclorTmJJNXh6bXJWaS9E?= =?iso-2022-jp?B?S2NURm1iYkNUdGQwdUl6b1NJKzJ3VEJ5VE9TZUJvdHR2ZDRMZVVvUTZt?= =?iso-2022-jp?B?Q2Z1QjFjbERub0plenVNNWlVckFQRDRSeFRiaDdoL2pqcGJNckk4SnBl?= =?iso-2022-jp?B?cTAyNVQ4YXVBcGVxbzRvbzFoRlVyV0VSancvUUFTTThkL3h5cjVvblFh?= =?iso-2022-jp?B?RzlLMlEvWXBvcWhJUHY3dHB5Mk8ySDhub05rdkN5K1VHT0tSVXViVDJ2?= =?iso-2022-jp?B?cE5oODZMMy9FM2NtVmZIM3BUQk05VTBuTnd0TFNNVS9ybElJc0lCQ244?= =?iso-2022-jp?B?VFlCWmllMkhoRUdSZVdiTU9vcDJzM2daVkNOTG1DeWVhbE5MVm13M0RT?= =?iso-2022-jp?B?RjdvdkV2VHlENVhqUFpTWXRtKytUYVMxWU5Cc0pTUEcycWVac2JoSU9W?= =?iso-2022-jp?B?K3NERk5OdkwvdmV2dUFoNUk5OE5ZeFBtV0N2SWRVM215ZmJmVVloV1JC?= =?iso-2022-jp?B?TUc5bjA1Q2FpYjIwM1JKMjZjWXdnZ3lCS1dFVm9VZlNZRG96VXhJdk1R?= =?iso-2022-jp?B?SWkvdjlmSmpQL2N0VFh5STRPNXdCU2lyZjQ5MjNuUzNFYno5aWxiZnYx?= =?iso-2022-jp?B?eUZEdHhWcHlyNmlCRmx1Lzg3T2lkZm5HV2tOWlN1bU9tcmhqUlZsS0pQ?= =?iso-2022-jp?B?TXRtZG8yZkcwem02cGU4MmE2TWo3Mkd6NFY2cmdPa3pxY2hjU2IwUG96?= =?iso-2022-jp?B?WThJNkhQMjNOSVowemdIQjhtY3RJbWkwSjl1RWhIbEVOZUdLQW8vTFh4?= =?iso-2022-jp?B?emJnS0ovTjJaZlZpOHBYVVlGakJmWkx3bUhlWEdyS0RGYkwrR2Z2TjI4?= =?iso-2022-jp?B?KzBhSlBFbWpibGw4anF0RWhSMURpMkxGMjRtS0RlRWExTDMxdmhJKzNt?= =?iso-2022-jp?B?cmtIS3BiK2VQR2dNNTVuS1RrTTZtM3V2NTRKcUhHaklwRjhEMElNUWxH?= =?iso-2022-jp?B?a3pNb1YzY29ETy9EelplUXAxcUtkakVzREJuNjR3M1NpK1BreVhlTHZn?= =?iso-2022-jp?B?enFaY1I4cUV6QVBvNTF0SEt2WXE0WDdGVEdvV1pyQnNLYldFRmJmVlFI?= =?iso-2022-jp?B?LzVJVGpRZ2pPTFFaNEUvazB1ZjllVE94Zk1ic2lTeGJBamVuM29tWEQy?= =?iso-2022-jp?B?aVhHanJmKzhZeHpqeCtiK09iVzZqdC83anBoMGw5WDZJZkNObDdqZWFQ?= =?iso-2022-jp?B?QWlBL1dBV0lSUDNmelo2WFFYK0Q3RzZZTVFHcWJNWDUyZ3EwcEIxYmtU?= =?iso-2022-jp?B?bmJkTg==?= Content-Type: multipart/mixed; boundary="_003_OS0PR01MB57161006B8F2779F2C97318194D42OS0PR01MB5716jpnp_" MIME-Version: 1.0 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 24Vrv83f75CyCWrm6BewLJqI1WibrKHt8gOL9h3yVe9qJq1HHDxHwZ61IapeZ401SZbcMQhVM1/NQglEZRjpfRAgFCAfMNoEpzhMfrNvNx7vyQEW3vKWq3ETbvhqlpFu2rtiW57beq1meAc6fKVy6Ou9lnY4WHN3SmFBsA47PUXNLpgjUvWnWb7haLp5DQvXaP30KCOJsV5G75Z+4Z6HtyRihGAGYKS3T9ZamzUOZY7DQ8dt+EfW1UbSVoTTwIdVrCvWnowbDprCzPx9MtoHSTaX6jAsmFWtepHxEgeKZOG7t+3xNqKtd6OULpaCYN0HQ5O8ElYNMKcWqtuDObRXY0VwAEfBfH4OrcrDL6UkeCP0a8k0HjQZo/9/XPIAKkZnnyhuRHIt0kJ5Mg6sH0GVoX6/hN0BLsb/+G9pwkoLnaudt40L/QAUVcjj7YwRe/+OpEeaB2CX7CPvaQtJxULHzxGDFo36LXiDqB2MG/2bYcbjIxDQ4GAVj3WnmyPAZv1Qci9JucD7PV0LF81YOLS0OpBkqB0a+qLz3aX7erMjSTiLDKJaw2ikFTmYIfgjPAXEGuPd70WhJisT/Eutpf2lT1MDa9a9T9bLikL/vGZPKsDn679HmYw2QJo6LQcmAMGn X-OriginatorOrg: fujitsu.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: OS0PR01MB5716.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 6a589d8c-03bf-4259-e3ad-08dc93f2acdd X-MS-Exchange-CrossTenant-originalarrivaltime: 24 Jun 2024 02:09:27.0883 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a19f121d-81e1-4858-a9d8-736e267fd4c7 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: i+tjjj4UFEsGdBnoM7/lMrf1NGXf/0gNkiMd1wHOIxCQqcW0ir/rEhSGGQ2ZSBDL917jVD7AsammDoxDJ56k9Q== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYTPR01MB10978 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_003_OS0PR01MB57161006B8F2779F2C97318194D42OS0PR01MB5716jpnp_ Content-Type: text/plain; charset="iso-2022-jp" Content-Transfer-Encoding: quoted-printable On Friday, June 21, 2024 3:47 PM Zhijie Hou (Fujitsu) wrote: >=20 > - The detail of the conflict detection >=20 > We add a new parameter detect_conflict for CREATE and ALTER subscription > commands. This new parameter will decide if subscription will go for > confict detection. By default, conflict detection will be off for a > subscription. >=20 > When conflict detection is enabled, additional logging is triggered in th= e > following conflict scenarios: > insert_exists: Inserting a row that violates a NOT DEFERRABLE unique > constraint. > update_differ: updating a row that was previously modified by another ori= gin. > update_missing: The tuple to be updated is missing. > delete_missing: The tuple to be deleted is missing. >=20 > For insert_exists conflict, the log can include origin and commit > timestamp details of the conflicting key with track_commit_timestamp > enabled. And update_differ conflict can only be detected when > track_commit_timestamp is enabled. >=20 > Regarding insert_exists conflicts, the current design is to pass > noDupErr=3Dtrue in ExecInsertIndexTuples() to prevent immediate error > handling on duplicate key violation. After calling > ExecInsertIndexTuples(), if there was any potential conflict in the > unique indexes, we report an ERROR for the insert_exists conflict along > with additional information (origin, committs, key value) for the > conflicting row. Another way for this is to conduct a pre-check for > duplicate key violation before applying the INSERT operation, but this > could introduce overhead for each INSERT even in the absence of conflicts= . > We welcome any alternative viewpoints on this matter. When testing the patch, I noticed a bug that when reporting the conflict after calling ExecInsertIndexTuples(), we might find the tuple that we just inserted and report it.(we should only report conflict if there are other conflict tuples which are not inserted by us) Here is a new patch which fixed this and fixed a compile warning reported by CFbot. Best Regards, Hou zj --_003_OS0PR01MB57161006B8F2779F2C97318194D42OS0PR01MB5716jpnp_ Content-Type: application/octet-stream; name="v2-0002-Collect-statistics-about-conflicts-in-logical-rep.patch" Content-Description: v2-0002-Collect-statistics-about-conflicts-in-logical-rep.patch Content-Disposition: attachment; filename="v2-0002-Collect-statistics-about-conflicts-in-logical-rep.patch"; size=19572; creation-date="Mon, 24 Jun 2024 02:07:26 GMT"; modification-date="Mon, 24 Jun 2024 02:09:25 GMT" Content-Transfer-Encoding: base64 RnJvbSBiNWM4OWQyYjg1ZmM3MDgzNjdjMmI1MmEyYTYxMTc4MTU2MGQ2ZmViIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIb3UgWmhpamllIDxob3V6ai5mbnN0QGNuLmZ1aml0c3UuY29t PgpEYXRlOiBGcmksIDIxIEp1biAyMDI0IDEwOjQxOjQ5ICswODAwClN1YmplY3Q6IFtQQVRDSCB2 MiAyLzJdIENvbGxlY3Qgc3RhdGlzdGljcyBhYm91dCBjb25mbGljdHMgaW4gbG9naWNhbAogcmVw bGljYXRpb24KClRoaXMgY29tbWl0IGFkZHMgY29sdW1ucyBpbiB2aWV3IHBnX3N0YXRfc3Vic2Ny aXB0aW9uX3dvcmtlcnMgdG8gc2hvd3MKaW5mb3JtYXRpb24gYWJvdXQgdGhlIGNvbmZsaWN0IHdo aWNoIG9jY3VyIGR1cmluZyB0aGUgYXBwbGljYXRpb24gb2YKbG9naWNhbCByZXBsaWNhdGlvbiBj aGFuZ2VzLiBDdXJyZW50bHksIHRoZSBmb2xsb3dpbmcgY29sdW1ucyBhcmUgYWRkZWQuCgppbnNl cnRfZXhpc3RzX2NvdW50czoKCU51bWJlciBvZiB0aW1lcyBpbnNlcnRpbmcgYSByb3cgdGhhdCBp b2xhdGVzIGEgTk9UIERFRkVSUkFCTEUgdW5pcXVlIGNvbnN0cmFpbnQuCnVwZGF0ZV9kaWZmZXJf Y291bnRzOgoJTnVtYmVyIG9mIHRpbWVzIHVwZGF0aW5nIGEgcm93IHRoYXQgd2FzIHByZXZpb3Vz bHkgbW9kaWZpZWQgYnkgYW5vdGhlciBvcmlnaW4uCnVwZGF0ZV9taXNzaW5nX2NvdW50czoKCU51 bWJlciBvZiB0aW1lcyB0aGF0IHRoZSB0dXBsZSB0byBiZSB1cGRhdGVkIGlzIG1pc3NpbmcuCmRl bGV0ZV9taXNzaW5nX2NvdW50czoKCU51bWJlciBvZiB0aW1lcyB0aGF0IHRoZSB0dXBsZSB0byBi ZSBkZWxldGVkIGlzIG1pc3NpbmcuCgpUaGUgY29uZmxpY3RzIHdpbGwgYmUgdHJhY2tlZCBvbmx5 IHdoZW4gdHJhY2tfY29uZmxpY3Qgb3B0aW9uIG9mIHRoZQpzdWJzY3JpcHRpb24gaXMgZW5hYmxl ZC4gQWRkaXRpb25hbGx5LCB1cGRhdGVfZGlmZmVyIGNhbiBiZSBkZXRlY3RlZCBvbmx5CndoZW4g dHJhY2tfY29tbWl0X3RpbWVzdGFtcCBpcyBlbmFibGVkLgotLS0KIGRvYy9zcmMvc2dtbC9tb25p dG9yaW5nLnNnbWwgICAgICAgICAgICAgICAgICB8IDUyICsrKysrKysrKysrKy0KIGRvYy9zcmMv c2dtbC9yZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5zZ21sICAgICB8ICA0ICstCiBzcmMvYmFja2Vu ZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwgICAgICAgICAgfCAgNCArCiBzcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9sb2dpY2FsL2NvbmZsaWN0LmMgICAgfCAgNCArCiAuLi4vdXRpbHMvYWN0aXZp dHkvcGdzdGF0X3N1YnNjcmlwdGlvbi5jICAgICAgfCAxNyArKysrCiBzcmMvYmFja2VuZC91dGls cy9hZHQvcGdzdGF0ZnVuY3MuYyAgICAgICAgICAgfCAyMCArKysrLQogc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19wcm9jLmRhdCAgICAgICAgICAgICAgIHwgIDYgKy0KIHNyYy9pbmNsdWRlL3Bnc3Rh dC5oICAgICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICsKIHNyYy9pbmNsdWRlL3JlcGxpY2F0 aW9uL2NvbmZsaWN0LmggICAgICAgICAgICB8ICAyICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvcnVsZXMub3V0ICAgICAgICAgICB8ICA2ICstCiBzcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8w MjZfc3RhdHMucGwgICAgICAgICAgfCA3NyArKysrKysrKysrKysrKysrKy0tCiAxMSBmaWxlcyBj aGFuZ2VkLCAxNzggaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL21vbml0b3Jpbmcuc2dtbCBiL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNn bWwKaW5kZXggYjJhZDliNDQ2Zi4uMGNlYjcxZjIxNCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21s L21vbml0b3Jpbmcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbW9uaXRvcmluZy5zZ21sCkBAIC01 MDcsNyArNTA3LDcgQEAgcG9zdGdyZXMgICAyNzA5MyAgMC4wICAwLjAgIDMwMDk2ICAyNzUyID8g ICAgICAgIFNzICAgMTE6MzQgICAwOjAwIHBvc3RncmVzOiBzZXIKIAogICAgICA8cm93PgogICAg ICAgPGVudHJ5PjxzdHJ1Y3RuYW1lPnBnX3N0YXRfc3Vic2NyaXB0aW9uX3N0YXRzPC9zdHJ1Y3Ru YW1lPjxpbmRleHRlcm0+PHByaW1hcnk+cGdfc3RhdF9zdWJzY3JpcHRpb25fc3RhdHM8L3ByaW1h cnk+PC9pbmRleHRlcm0+PC9lbnRyeT4KLSAgICAgIDxlbnRyeT5PbmUgcm93IHBlciBzdWJzY3Jp cHRpb24sIHNob3dpbmcgc3RhdGlzdGljcyBhYm91dCBlcnJvcnMuCisgICAgICA8ZW50cnk+T25l IHJvdyBwZXIgc3Vic2NyaXB0aW9uLCBzaG93aW5nIHN0YXRpc3RpY3MgYWJvdXQgZXJyb3JzIGFu ZCBjb25mbGljdHMuCiAgICAgICBTZWUgPGxpbmsgbGlua2VuZD0ibW9uaXRvcmluZy1wZy1zdGF0 LXN1YnNjcmlwdGlvbi1zdGF0cyI+CiAgICAgICA8c3RydWN0bmFtZT5wZ19zdGF0X3N1YnNjcmlw dGlvbl9zdGF0czwvc3RydWN0bmFtZT48L2xpbms+IGZvciBkZXRhaWxzLgogICAgICAgPC9lbnRy eT4KQEAgLTIxNjMsNiArMjE2Myw1NiBAQCBkZXNjcmlwdGlvbiB8IFdhaXRpbmcgZm9yIGEgbmV3 bHkgaW5pdGlhbGl6ZWQgV0FMIGZpbGUgdG8gcmVhY2ggZHVyYWJsZSBzdG9yYWdlCiAgICAgICA8 L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CiAKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPmluc2VydF9leGlzdHNfY291bnQ8L3N0cnVjdGZpZWxkPiA8 dHlwZT5iaWdpbnQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBO dW1iZXIgb2YgdGltZXMgaW5zZXJ0aW5nIGEgcm93IHRoYXQgdmlvbGF0ZXMgYQorICAgICAgIDxs aXRlcmFsPk5PVCBERUZFUlJBQkxFPC9saXRlcmFsPiB1bmlxdWUgY29uc3RyYWludCB3aGlsZSBh cHBseWluZworICAgICAgIGNoYW5nZXMuIFRoaXMgY29uZmxpY3QgaXMgY291bnRlZCBvbmx5IGlm CisgICAgICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0 aC1kZXRlY3QtY29uZmxpY3QiPjxsaXRlcmFsPmRldGVjdF9jb25mbGljdDwvbGl0ZXJhbD48L2xp bms+CisgICAgICAgaXMgZW5hYmxlZAorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93 PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+ PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD51cGRh dGVfZGlmZmVyX2NvdW50PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+YmlnaW50PC90eXBlPgorICAgICAg PC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgTnVtYmVyIG9mIHRpbWVzIHVwZGF0aW5nIGEg cm93IHRoYXQgd2FzIHByZXZpb3VzbHkgbW9kaWZpZWQgYnkgYW5vdGhlcgorICAgICAgIHNvdXJj ZSB3aGlsZSBhcHBseWluZyBjaGFuZ2VzLiBUaGlzIGNvbmZsaWN0IGlzIGNvdW50ZWQgb25seSB3 aGVuIHRoZQorICAgICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFy YW1zLXdpdGgtZGV0ZWN0LWNvbmZsaWN0Ij48bGl0ZXJhbD5kZXRlY3RfY29uZmxpY3Q8L2xpdGVy YWw+PC9saW5rPgorICAgICAgIG9wdGlvbiBvZiB0aGUgc3Vic2NyaXB0aW9uIGFuZCA8bGluayBs aW5rZW5kPSJndWMtdHJhY2stY29tbWl0LXRpbWVzdGFtcCI+PHZhcm5hbWU+dHJhY2tfY29tbWl0 X3RpbWVzdGFtcDwvdmFybmFtZT48L2xpbms+CisgICAgICAgYXJlIGVuYWJsZWQKKyAgICAgIDwv cGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJv bGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4K KyAgICAgICA8c3RydWN0ZmllbGQ+dXBkYXRlX21pc3NpbmdfY291bnQ8L3N0cnVjdGZpZWxkPiA8 dHlwZT5iaWdpbnQ8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBO dW1iZXIgb2YgdGltZXMgdGhhdCB0aGUgdHVwbGUgdG8gYmUgdXBkYXRlZCBpcyBub3QgZm91bmQg d2hpbGUgYXBwbHlpbmcKKyAgICAgICBjaGFuZ2VzLiBUaGlzIGNvbmZsaWN0IGlzIGNvdW50ZWQg b25seSBpZgorICAgICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFy YW1zLXdpdGgtZGV0ZWN0LWNvbmZsaWN0Ij48bGl0ZXJhbD5kZXRlY3RfY29uZmxpY3Q8L2xpdGVy YWw+PC9saW5rPgorICAgICAgIGlzIGVuYWJsZWQKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAg ICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVf ZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+ZGVsZXRlX21pc3NpbmdfY291bnQ8L3N0cnVjdGZpZWxkPiA8dHlwZT5iaWdpbnQ8L3R5cGU+ CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBOdW1iZXIgb2YgdGltZXMgdGhh dCB0aGUgdHVwbGUgdG8gYmUgZGVsZXRlZCBpcyBub3QgZm91bmQgd2hpbGUgYXBwbHlpbmcKKyAg ICAgICBjaGFuZ2VzLiBUaGlzIGNvbmZsaWN0IGlzIGNvdW50ZWQgb25seSBpZgorICAgICAgIDxs aW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtZGV0ZWN0LWNv bmZsaWN0Ij48bGl0ZXJhbD5kZXRlY3RfY29uZmxpY3Q8L2xpdGVyYWw+PC9saW5rPgorICAgICAg IGlzIGVuYWJsZWQKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgICA8 cm93PgogICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9 ImNvbHVtbl9kZWZpbml0aW9uIj4KICAgICAgICA8c3RydWN0ZmllbGQ+c3RhdHNfcmVzZXQ8L3N0 cnVjdGZpZWxkPiA8dHlwZT50aW1lc3RhbXAgd2l0aCB0aW1lIHpvbmU8L3R5cGU+CmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dtbCBiL2RvYy9zcmMv c2dtbC9yZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5zZ21sCmluZGV4IGNlMzdmYTY0OTAuLjA2YmVh NDU4YTYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3N1YnNjcmlwdGlvbi5zZ21sCkBAIC00 MzcsOCArNDM3LDggQEAgQ1JFQVRFIFNVQlNDUklQVElPTiA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+c3Vic2NyaXB0aW9uX25hbWU8L3JlcGxhY2VhYmwKICAgICAgICAgICBUaGUgZGVm YXVsdCBpcyA8bGl0ZXJhbD5mYWxzZTwvbGl0ZXJhbD4uCiAgICAgICAgICA8L3BhcmE+CiAgICAg ICAgICA8cGFyYT4KLSAgICAgICAgICBXaGVuIGNvbmZsaWN0IGRldGVjdGlvbiBpcyBlbmFibGVk LCBhZGRpdGlvbmFsIGxvZ2dpbmcgaXMgdHJpZ2dlcmVkCi0gICAgICAgICAgaW4gdGhlIGZvbGxv d2luZyBzY2VuYXJpb3M6CisgICAgICAgICAgV2hlbiBjb25mbGljdCBkZXRlY3Rpb24gaXMgZW5h YmxlZCwgYWRkaXRpb25hbCBsb2dnaW5nIGlzIHRyaWdnZXJlZCBhbmQKKyAgICAgICAgICB0aGUg Y29uZmxpY3Qgc3RhdGlzdGljcyBhcmUgY29sbGVjdGVkIGluIHRoZSBmb2xsb3dpbmcgc2NlbmFy aW9zOgogICAgICAgICAgIDx2YXJpYWJsZWxpc3Q+CiAgICAgICAgICAgIDx2YXJsaXN0ZW50cnk+ CiAgICAgICAgICAgICA8dGVybT48bGl0ZXJhbD5pbnNlcnRfZXhpc3RzPC9saXRlcmFsPjwvdGVy bT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCBiL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAppbmRleCAzMDM5M2U2ZDY3Li4xODI4 MzZhYzgyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwK KysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCkBAIC0xMzcwLDYgKzEz NzAsMTAgQEAgQ1JFQVRFIFZJRVcgcGdfc3RhdF9zdWJzY3JpcHRpb25fc3RhdHMgQVMKICAgICAg ICAgcy5zdWJuYW1lLAogICAgICAgICBzcy5hcHBseV9lcnJvcl9jb3VudCwKICAgICAgICAgc3Mu c3luY19lcnJvcl9jb3VudCwKKyAgICAgICAgc3MuaW5zZXJ0X2V4aXN0c19jb3VudCwKKyAgICAg ICAgc3MudXBkYXRlX2RpZmZlcl9jb3VudCwKKyAgICAgICAgc3MudXBkYXRlX21pc3NpbmdfY291 bnQsCisgICAgICAgIHNzLmRlbGV0ZV9taXNzaW5nX2NvdW50LAogICAgICAgICBzcy5zdGF0c19y ZXNldAogICAgIEZST00gcGdfc3Vic2NyaXB0aW9uIGFzIHMsCiAgICAgICAgICBwZ19zdGF0X2dl dF9zdWJzY3JpcHRpb25fc3RhdHMocy5vaWQpIGFzIHNzOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC9jb25mbGljdC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vbG9naWNhbC9jb25mbGljdC5jCmluZGV4IGYyNGYwNDgwNTQuLmNhNThiNzA4ZWYgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvY29uZmxpY3QuYworKysgYi9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2NvbmZsaWN0LmMKQEAgLTE1LDggKzE1LDEw IEBACiAjaW5jbHVkZSAicG9zdGdyZXMuaCIKIAogI2luY2x1ZGUgImFjY2Vzcy9jb21taXRfdHMu aCIKKyNpbmNsdWRlICJwZ3N0YXQuaCIKICNpbmNsdWRlICJyZXBsaWNhdGlvbi9jb25mbGljdC5o IgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL29yaWdpbi5oIgorI2luY2x1ZGUgInJlcGxpY2F0aW9u L3dvcmtlcl9pbnRlcm5hbC5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgogI2luY2x1 ZGUgInV0aWxzL3JlbC5oIgogCkBAIC03NSw2ICs3Nyw4IEBAIFJlcG9ydEFwcGx5Q29uZmxpY3Qo aW50IGVsZXZlbCwgQ29uZmxpY3RUeXBlIHR5cGUsIFJlbGF0aW9uIGxvY2FscmVsLAogCQkJCQlS ZXBPcmlnaW5JZCBsb2NhbG9yaWdpbiwgVGltZXN0YW1wVHogbG9jYWx0cywKIAkJCQkJVHVwbGVU YWJsZVNsb3QgKmNvbmZsaWN0c2xvdCkKIHsKKwlwZ3N0YXRfcmVwb3J0X3N1YnNjcmlwdGlvbl9j b25mbGljdChNeVN1YnNjcmlwdGlvbi0+b2lkLCB0eXBlKTsKKwogCWVyZXBvcnQoZWxldmVsLAog CQkJZXJyY29kZShFUlJDT0RFX0lOVEVHUklUWV9DT05TVFJBSU5UX1ZJT0xBVElPTiksCiAJCQll cnJtc2coImNvbmZsaWN0ICVzIGRldGVjdGVkIG9uIHJlbGF0aW9uIFwiJXMuJXNcIiIsCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfc3Vic2NyaXB0aW9uLmMg Yi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfc3Vic2NyaXB0aW9uLmMKaW5kZXgg ZDlhZjhkZTY1OC4uZTA2YzkyNzI3ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0 aXZpdHkvcGdzdGF0X3N1YnNjcmlwdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2 aXR5L3Bnc3RhdF9zdWJzY3JpcHRpb24uYwpAQCAtMzksNiArMzksMjEgQEAgcGdzdGF0X3JlcG9y dF9zdWJzY3JpcHRpb25fZXJyb3IoT2lkIHN1YmlkLCBib29sIGlzX2FwcGx5X2Vycm9yKQogCQlw ZW5kaW5nLT5zeW5jX2Vycm9yX2NvdW50Kys7CiB9CiAKKy8qCisgKiBSZXBvcnQgYSBzdWJzY3Jp cHRpb24gY29uZmxpY3QuCisgKi8KK3ZvaWQKK3Bnc3RhdF9yZXBvcnRfc3Vic2NyaXB0aW9uX2Nv bmZsaWN0KE9pZCBzdWJpZCwgQ29uZmxpY3RUeXBlIHR5cGUpCit7CisJUGdTdGF0X0VudHJ5UmVm ICplbnRyeV9yZWY7CisJUGdTdGF0X0JhY2tlbmRTdWJFbnRyeSAqcGVuZGluZzsKKworCWVudHJ5 X3JlZiA9IHBnc3RhdF9wcmVwX3BlbmRpbmdfZW50cnkoUEdTVEFUX0tJTkRfU1VCU0NSSVBUSU9O LAorCQkJCQkJCQkJCSAgSW52YWxpZE9pZCwgc3ViaWQsIE5VTEwpOworCXBlbmRpbmcgPSBlbnRy eV9yZWYtPnBlbmRpbmc7CisJcGVuZGluZy0+Y29uZmxpY3RfY291bnRbdHlwZV0rKzsKK30KKwog LyoKICAqIFJlcG9ydCBjcmVhdGluZyB0aGUgc3Vic2NyaXB0aW9uLgogICovCkBAIC0xMDEsNiAr MTE2LDggQEAgcGdzdGF0X3N1YnNjcmlwdGlvbl9mbHVzaF9jYihQZ1N0YXRfRW50cnlSZWYgKmVu dHJ5X3JlZiwgYm9vbCBub3dhaXQpCiAjZGVmaW5lIFNVQl9BQ0MoZmxkKSBzaHN1YmVudC0+c3Rh dHMuZmxkICs9IGxvY2FsZW50LT5mbGQKIAlTVUJfQUNDKGFwcGx5X2Vycm9yX2NvdW50KTsKIAlT VUJfQUNDKHN5bmNfZXJyb3JfY291bnQpOworCWZvciAoaW50IGkgPSAwOyBpIDwgQ09ORkxJQ1Rf TlVNX1RZUEVTOyBpKyspCisJCVNVQl9BQ0MoY29uZmxpY3RfY291bnRbaV0pOwogI3VuZGVmIFNV Ql9BQ0MKIAogCXBnc3RhdF91bmxvY2tfZW50cnkoZW50cnlfcmVmKTsKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3Bnc3RhdGZ1bmNzLmMKaW5kZXggMzg3NjMzOWVlMS4uZThkZGI3NDlhNyAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRp bHMvYWR0L3Bnc3RhdGZ1bmNzLmMKQEAgLTE5NjYsNyArMTk2Niw3IEBAIHBnX3N0YXRfZ2V0X3Jl cGxpY2F0aW9uX3Nsb3QoUEdfRlVOQ1RJT05fQVJHUykKIERhdHVtCiBwZ19zdGF0X2dldF9zdWJz Y3JpcHRpb25fc3RhdHMoUEdfRlVOQ1RJT05fQVJHUykKIHsKLSNkZWZpbmUgUEdfU1RBVF9HRVRf U1VCU0NSSVBUSU9OX1NUQVRTX0NPTFMJNAorI2RlZmluZSBQR19TVEFUX0dFVF9TVUJTQ1JJUFRJ T05fU1RBVFNfQ09MUwk4CiAJT2lkCQkJc3ViaWQgPSBQR19HRVRBUkdfT0lEKDApOwogCVR1cGxl RGVzYwl0dXBkZXNjOwogCURhdHVtCQl2YWx1ZXNbUEdfU1RBVF9HRVRfU1VCU0NSSVBUSU9OX1NU QVRTX0NPTFNdID0gezB9OwpAQCAtMTk4NSw3ICsxOTg1LDE1IEBAIHBnX3N0YXRfZ2V0X3N1YnNj cmlwdGlvbl9zdGF0cyhQR19GVU5DVElPTl9BUkdTKQogCQkJCQkgICBJTlQ4T0lELCAtMSwgMCk7 CiAJVHVwbGVEZXNjSW5pdEVudHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSAzLCAic3luY19lcnJv cl9jb3VudCIsCiAJCQkJCSAgIElOVDhPSUQsIC0xLCAwKTsKLQlUdXBsZURlc2NJbml0RW50cnko dHVwZGVzYywgKEF0dHJOdW1iZXIpIDQsICJzdGF0c19yZXNldCIsCisJVHVwbGVEZXNjSW5pdEVu dHJ5KHR1cGRlc2MsIChBdHRyTnVtYmVyKSA0LCAiaW5zZXJ0X2V4aXN0c19jb3VudCIsCisJCQkJ CSAgIElOVDhPSUQsIC0xLCAwKTsKKwlUdXBsZURlc2NJbml0RW50cnkodHVwZGVzYywgKEF0dHJO dW1iZXIpIDUsICJ1cGRhdGVfZGlmZmVyX2NvdW50IiwKKwkJCQkJICAgSU5UOE9JRCwgLTEsIDAp OworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgNiwgInVwZGF0ZV9t aXNzaW5nX2NvdW50IiwKKwkJCQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRF bnRyeSh0dXBkZXNjLCAoQXR0ck51bWJlcikgNywgImRlbGV0ZV9taXNzaW5nX2NvdW50IiwKKwkJ CQkJICAgSU5UOE9JRCwgLTEsIDApOworCVR1cGxlRGVzY0luaXRFbnRyeSh0dXBkZXNjLCAoQXR0 ck51bWJlcikgOCwgInN0YXRzX3Jlc2V0IiwKIAkJCQkJICAgVElNRVNUQU1QVFpPSUQsIC0xLCAw KTsKIAlCbGVzc1R1cGxlRGVzYyh0dXBkZXNjKTsKIApAQCAtMjAwNSwxMSArMjAxMywxNSBAQCBw Z19zdGF0X2dldF9zdWJzY3JpcHRpb25fc3RhdHMoUEdfRlVOQ1RJT05fQVJHUykKIAkvKiBzeW5j X2Vycm9yX2NvdW50ICovCiAJdmFsdWVzWzJdID0gSW50NjRHZXREYXR1bShzdWJlbnRyeS0+c3lu Y19lcnJvcl9jb3VudCk7CiAKKwkvKiBjb25mbGljdCBjb3VudCAqLworCWZvciAoaW50IGkgPSAw OyBpIDwgQ09ORkxJQ1RfTlVNX1RZUEVTOyBpKyspCisJCXZhbHVlc1szICsgaV0gPSBJbnQ2NEdl dERhdHVtKHN1YmVudHJ5LT5jb25mbGljdF9jb3VudFtpXSk7CisKIAkvKiBzdGF0c19yZXNldCAq LwogCWlmIChzdWJlbnRyeS0+c3RhdF9yZXNldF90aW1lc3RhbXAgPT0gMCkKLQkJbnVsbHNbM10g PSB0cnVlOworCQludWxsc1s3XSA9IHRydWU7CiAJZWxzZQotCQl2YWx1ZXNbM10gPSBUaW1lc3Rh bXBUekdldERhdHVtKHN1YmVudHJ5LT5zdGF0X3Jlc2V0X3RpbWVzdGFtcCk7CisJCXZhbHVlc1s3 XSA9IFRpbWVzdGFtcFR6R2V0RGF0dW0oc3ViZW50cnktPnN0YXRfcmVzZXRfdGltZXN0YW1wKTsK IAogCS8qIFJldHVybnMgdGhlIHJlY29yZCBhcyBEYXR1bSAqLwogCVBHX1JFVFVSTl9EQVRVTShI ZWFwVHVwbGVHZXREYXR1bShoZWFwX2Zvcm1fdHVwbGUodHVwZGVzYywgdmFsdWVzLCBudWxscykp KTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4IDZhNTQ3NmQzYzQuLjA4YmM5NjZhMmYgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAtNTUwNSw5ICs1NTA1LDkgQEAKIHsgb2lkID0+ICc2 MjMxJywgZGVzY3IgPT4gJ3N0YXRpc3RpY3M6IGluZm9ybWF0aW9uIGFib3V0IHN1YnNjcmlwdGlv biBzdGF0cycsCiAgIHByb25hbWUgPT4gJ3BnX3N0YXRfZ2V0X3N1YnNjcmlwdGlvbl9zdGF0cycs IHByb3ZvbGF0aWxlID0+ICdzJywKICAgcHJvcGFyYWxsZWwgPT4gJ3InLCBwcm9yZXR0eXBlID0+ ICdyZWNvcmQnLCBwcm9hcmd0eXBlcyA9PiAnb2lkJywKLSAgcHJvYWxsYXJndHlwZXMgPT4gJ3tv aWQsb2lkLGludDgsaW50OCx0aW1lc3RhbXB0en0nLAotICBwcm9hcmdtb2RlcyA9PiAne2ksbyxv LG8sb30nLAotICBwcm9hcmduYW1lcyA9PiAne3N1YmlkLHN1YmlkLGFwcGx5X2Vycm9yX2NvdW50 LHN5bmNfZXJyb3JfY291bnQsc3RhdHNfcmVzZXR9JywKKyAgcHJvYWxsYXJndHlwZXMgPT4gJ3tv aWQsb2lkLGludDgsaW50OCxpbnQ4LGludDgsaW50OCxpbnQ4LHRpbWVzdGFtcHR6fScsCisgIHBy b2FyZ21vZGVzID0+ICd7aSxvLG8sbyxvLG8sbyxvLG99JywKKyAgcHJvYXJnbmFtZXMgPT4gJ3tz dWJpZCxzdWJpZCxhcHBseV9lcnJvcl9jb3VudCxzeW5jX2Vycm9yX2NvdW50LGluc2VydF9leGlz dHNfY291bnQsdXBkYXRlX2RpZmZlcl9jb3VudCx1cGRhdGVfbWlzc2luZ19jb3VudCxkZWxldGVf bWlzc2luZ19jb3VudCxzdGF0c19yZXNldH0nLAogICBwcm9zcmMgPT4gJ3BnX3N0YXRfZ2V0X3N1 YnNjcmlwdGlvbl9zdGF0cycgfSwKIHsgb2lkID0+ICc2MTE4JywgZGVzY3IgPT4gJ3N0YXRpc3Rp Y3M6IGluZm9ybWF0aW9uIGFib3V0IHN1YnNjcmlwdGlvbicsCiAgIHByb25hbWUgPT4gJ3BnX3N0 YXRfZ2V0X3N1YnNjcmlwdGlvbicsIHByb3Jvd3MgPT4gJzEwJywgcHJvaXNzdHJpY3QgPT4gJ2Yn LApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGdzdGF0LmggYi9zcmMvaW5jbHVkZS9wZ3N0YXQu aAppbmRleCAyMTM2MjM5NzEwLi5iOTU3ZTdhZDM2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9w Z3N0YXQuaAorKysgYi9zcmMvaW5jbHVkZS9wZ3N0YXQuaApAQCAtMTQsNiArMTQsNyBAQAogI2lu Y2x1ZGUgImRhdGF0eXBlL3RpbWVzdGFtcC5oIgogI2luY2x1ZGUgInBvcnRhYmlsaXR5L2luc3Ry X3RpbWUuaCIKICNpbmNsdWRlICJwb3N0bWFzdGVyL3BnYXJjaC5oIgkvKiBmb3IgTUFYX1hGTl9D SEFSUyAqLworI2luY2x1ZGUgInJlcGxpY2F0aW9uL2NvbmZsaWN0LmgiCiAjaW5jbHVkZSAidXRp bHMvYmFja2VuZF9wcm9ncmVzcy5oIiAvKiBmb3IgYmFja3dhcmQgY29tcGF0aWJpbGl0eSAqLwog I2luY2x1ZGUgInV0aWxzL2JhY2tlbmRfc3RhdHVzLmgiCS8qIGZvciBiYWNrd2FyZCBjb21wYXRp YmlsaXR5ICovCiAjaW5jbHVkZSAidXRpbHMvcmVsY2FjaGUuaCIKQEAgLTEzNSw2ICsxMzYsNyBA QCB0eXBlZGVmIHN0cnVjdCBQZ1N0YXRfQmFja2VuZFN1YkVudHJ5CiB7CiAJUGdTdGF0X0NvdW50 ZXIgYXBwbHlfZXJyb3JfY291bnQ7CiAJUGdTdGF0X0NvdW50ZXIgc3luY19lcnJvcl9jb3VudDsK KwlQZ1N0YXRfQ291bnRlciBjb25mbGljdF9jb3VudFtDT05GTElDVF9OVU1fVFlQRVNdOwogfSBQ Z1N0YXRfQmFja2VuZFN1YkVudHJ5OwogCiAvKiAtLS0tLS0tLS0tCkBAIC0zOTMsNiArMzk1LDcg QEAgdHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X1N0YXRTdWJFbnRyeQogewogCVBnU3RhdF9Db3VudGVy IGFwcGx5X2Vycm9yX2NvdW50OwogCVBnU3RhdF9Db3VudGVyIHN5bmNfZXJyb3JfY291bnQ7CisJ UGdTdGF0X0NvdW50ZXIgY29uZmxpY3RfY291bnRbQ09ORkxJQ1RfTlVNX1RZUEVTXTsKIAlUaW1l c3RhbXBUeiBzdGF0X3Jlc2V0X3RpbWVzdGFtcDsKIH0gUGdTdGF0X1N0YXRTdWJFbnRyeTsKIApA QCAtNjk1LDYgKzY5OCw3IEBAIGV4dGVybiBQZ1N0YXRfU0xSVVN0YXRzICpwZ3N0YXRfZmV0Y2hf c2xydSh2b2lkKTsKICAqLwogCiBleHRlcm4gdm9pZCBwZ3N0YXRfcmVwb3J0X3N1YnNjcmlwdGlv bl9lcnJvcihPaWQgc3ViaWQsIGJvb2wgaXNfYXBwbHlfZXJyb3IpOworZXh0ZXJuIHZvaWQgcGdz dGF0X3JlcG9ydF9zdWJzY3JpcHRpb25fY29uZmxpY3QoT2lkIHN1YmlkLCBDb25mbGljdFR5cGUg Y29uZmxpY3QpOwogZXh0ZXJuIHZvaWQgcGdzdGF0X2NyZWF0ZV9zdWJzY3JpcHRpb24oT2lkIHN1 YmlkKTsKIGV4dGVybiB2b2lkIHBnc3RhdF9kcm9wX3N1YnNjcmlwdGlvbihPaWQgc3ViaWQpOwog ZXh0ZXJuIFBnU3RhdF9TdGF0U3ViRW50cnkgKnBnc3RhdF9mZXRjaF9zdGF0X3N1YnNjcmlwdGlv bihPaWQgc3ViaWQpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vY29uZmxp Y3QuaCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL2NvbmZsaWN0LmgKaW5kZXggMGJjOWRiOTkx ZS4uNDBkY2IxZDlhZCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vY29uZmxp Y3QuaAorKysgYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9jb25mbGljdC5oCkBAIC0zMyw2ICsz Myw4IEBAIHR5cGVkZWYgZW51bQogCUNUX0RFTEVURV9NSVNTSU5HLAogfSBDb25mbGljdFR5cGU7 CiAKKyNkZWZpbmUgQ09ORkxJQ1RfTlVNX1RZUEVTIChDVF9ERUxFVEVfTUlTU0lORyArIDEpCisK IGV4dGVybiBib29sIEdldFR1cGxlQ29tbWl0VHMoVHVwbGVUYWJsZVNsb3QgKmxvY2Fsc2xvdCwg VHJhbnNhY3Rpb25JZCAqeG1pbiwKIAkJCQkJCQkgUmVwT3JpZ2luSWQgKmxvY2Fsb3JpZ2luLCBU aW1lc3RhbXBUeiAqbG9jYWx0cyk7CiBleHRlcm4gdm9pZCBSZXBvcnRBcHBseUNvbmZsaWN0KGlu dCBlbGV2ZWwsIENvbmZsaWN0VHlwZSB0eXBlLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9ydWxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91 dAppbmRleCAxMzE3OGUyYjNkLi44MGE2ODU3YjAwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3J1bGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1 bGVzLm91dApAQCAtMjE0MSw5ICsyMTQxLDEzIEBAIHBnX3N0YXRfc3Vic2NyaXB0aW9uX3N0YXRz fCBTRUxFQ1Qgc3Muc3ViaWQsCiAgICAgcy5zdWJuYW1lLAogICAgIHNzLmFwcGx5X2Vycm9yX2Nv dW50LAogICAgIHNzLnN5bmNfZXJyb3JfY291bnQsCisgICAgc3MuaW5zZXJ0X2V4aXN0c19jb3Vu dCwKKyAgICBzcy51cGRhdGVfZGlmZmVyX2NvdW50LAorICAgIHNzLnVwZGF0ZV9taXNzaW5nX2Nv dW50LAorICAgIHNzLmRlbGV0ZV9taXNzaW5nX2NvdW50LAogICAgIHNzLnN0YXRzX3Jlc2V0CiAg ICBGUk9NIHBnX3N1YnNjcmlwdGlvbiBzLAotICAgIExBVEVSQUwgcGdfc3RhdF9nZXRfc3Vic2Ny aXB0aW9uX3N0YXRzKHMub2lkKSBzcyhzdWJpZCwgYXBwbHlfZXJyb3JfY291bnQsIHN5bmNfZXJy b3JfY291bnQsIHN0YXRzX3Jlc2V0KTsKKyAgICBMQVRFUkFMIHBnX3N0YXRfZ2V0X3N1YnNjcmlw dGlvbl9zdGF0cyhzLm9pZCkgc3Moc3ViaWQsIGFwcGx5X2Vycm9yX2NvdW50LCBzeW5jX2Vycm9y X2NvdW50LCBpbnNlcnRfZXhpc3RzX2NvdW50LCB1cGRhdGVfZGlmZmVyX2NvdW50LCB1cGRhdGVf bWlzc2luZ19jb3VudCwgZGVsZXRlX21pc3NpbmdfY291bnQsIHN0YXRzX3Jlc2V0KTsKIHBnX3N0 YXRfc3lzX2luZGV4ZXN8IFNFTEVDVCByZWxpZCwKICAgICBpbmRleHJlbGlkLAogICAgIHNjaGVt YW5hbWUsCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMjZfc3RhdHMucGwg Yi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMjZfc3RhdHMucGwKaW5kZXggZmIzZTU2MjliMy4u ZjgxY2U2NjU0MCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDI2X3N0YXRz LnBsCisrKyBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAyNl9zdGF0cy5wbApAQCAtMTYsNiAr MTYsNyBAQCAkbm9kZV9wdWJsaXNoZXItPnN0YXJ0OwogIyBDcmVhdGUgc3Vic2NyaWJlciBub2Rl LgogbXkgJG5vZGVfc3Vic2NyaWJlciA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygn c3Vic2NyaWJlcicpOwogJG5vZGVfc3Vic2NyaWJlci0+aW5pdDsKKyRub2RlX3N1YnNjcmliZXIt PmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLCAndHJhY2tfY29tbWl0X3RpbWVzdGFtcCA9 IG9uJyk7CiAkbm9kZV9zdWJzY3JpYmVyLT5zdGFydDsKIAogCkBAIC0zMCw2ICszMSw3IEBAIHN1 YiBjcmVhdGVfc3ViX3B1Yl93X2Vycm9ycwogCQlxcVsKIAlCRUdJTjsKIAlDUkVBVEUgVEFCTEUg JHRhYmxlX25hbWUoYSBpbnQpOworCUFMVEVSIFRBQkxFICR0YWJsZV9uYW1lIFJFUExJQ0EgSURF TlRJVFkgRlVMTDsKIAlJTlNFUlQgSU5UTyAkdGFibGVfbmFtZSBWQUxVRVMgKDEpOwogCUNPTU1J VDsKIAldKTsKQEAgLTUzLDcgKzU1LDcgQEAgc3ViIGNyZWF0ZV9zdWJfcHViX3dfZXJyb3JzCiAJ IyBpbmZpbml0ZSBlcnJvciBsb29wIGR1ZSB0byB2aW9sYXRpbmcgdGhlIHVuaXF1ZSBjb25zdHJh aW50LgogCW15ICRzdWJfbmFtZSA9ICR0YWJsZV9uYW1lIC4gJ19zdWInOwogCSRub2RlX3N1YnNj cmliZXItPnNhZmVfcHNxbCgkZGIsCi0JCXFxKENSRUFURSBTVUJTQ1JJUFRJT04gJHN1Yl9uYW1l IENPTk5FQ1RJT04gJyRwdWJsaXNoZXJfY29ubnN0cicgUFVCTElDQVRJT04gJHB1Yl9uYW1lKQor CQlxcShDUkVBVEUgU1VCU0NSSVBUSU9OICRzdWJfbmFtZSBDT05ORUNUSU9OICckcHVibGlzaGVy X2Nvbm5zdHInIFBVQkxJQ0FUSU9OICRwdWJfbmFtZSBXSVRIIChkZXRlY3RfY29uZmxpY3QgPSBv bikpCiAJKTsKIAogCSRub2RlX3B1Ymxpc2hlci0+d2FpdF9mb3JfY2F0Y2h1cCgkc3ViX25hbWUp OwpAQCAtOTUsNyArOTcsNyBAQCBzdWIgY3JlYXRlX3N1Yl9wdWJfd19lcnJvcnMKIAkkbm9kZV9z dWJzY3JpYmVyLT5wb2xsX3F1ZXJ5X3VudGlsKAogCQkkZGIsCiAJCXFxWwotCVNFTEVDVCBhcHBs eV9lcnJvcl9jb3VudCA+IDAKKwlTRUxFQ1QgYXBwbHlfZXJyb3JfY291bnQgPiAwIEFORCBpbnNl cnRfZXhpc3RzX2NvdW50ID4gMAogCUZST00gcGdfc3RhdF9zdWJzY3JpcHRpb25fc3RhdHMKIAlX SEVSRSBzdWJuYW1lID0gJyRzdWJfbmFtZScKIAldKQpAQCAtMTA1LDYgKzEwNyw0NyBAQCBzdWIg Y3JlYXRlX3N1Yl9wdWJfd19lcnJvcnMKIAkjIFRydW5jYXRlIHRlc3QgdGFibGUgc28gdGhhdCBh cHBseSB3b3JrZXIgY2FuIGNvbnRpbnVlLgogCSRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgk ZGIsIHFxKFRSVU5DQVRFICR0YWJsZV9uYW1lKSk7CiAKKwkjIFVwZGF0ZSBhbmQgZGVsZXRlIGRh dGEgdG8gdGVzdCB0YWJsZSBvbiB0aGUgcHVibGlzaGVyLCBza2lwcGluZyB0aGUKKwkjIHVwZGF0 ZSBhbmQgZGVsZXRlIG9uIHRoZSBzdWJzY3JpYmVyIGFzIHRoZXJlIGFyZSBubyBkYXRhIGluIHRo ZSB0ZXN0CisJIyB0YWJsZS4KKwkkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgkZGIsIHFxKAor CQlVUERBVEUgJHRhYmxlX25hbWUgU0VUIGEgPSAyOworCQlERUxFVEUgRlJPTSAkdGFibGVfbmFt ZTsKKwkpKTsKKworCSMgV2FpdCBmb3IgdGhlIHR1cGxlIG1pc3NpbmcgdG8gYmUgcmVwb3J0ZWQu CisJJG5vZGVfc3Vic2NyaWJlci0+cG9sbF9xdWVyeV91bnRpbCgKKwkJJGRiLAorCQlxcVsKKwlT RUxFQ1QgdXBkYXRlX21pc3NpbmdfY291bnQgPiAwIEFORCBkZWxldGVfbWlzc2luZ19jb3VudCA+ IDAKKwlGUk9NIHBnX3N0YXRfc3Vic2NyaXB0aW9uX3N0YXRzCisJV0hFUkUgc3VibmFtZSA9ICck c3ViX25hbWUnCisJXSkKKwkgIG9yIGRpZQorCSAgcXEoVGltZWQgb3V0IHdoaWxlIHdhaXRpbmcg Zm9yIHR1cGxlIG1pc3NpbmcgY29uZmxpY3QgZm9yIHN1YnNjcmlwdGlvbiAnJHN1Yl9uYW1lJyk7 CisKKwkjIFByZXBhcmUgZGF0YSBmb3IgZnVydGhlciB0ZXN0cy4KKwkkbm9kZV9wdWJsaXNoZXIt PnNhZmVfcHNxbCgkZGIsIHFxKElOU0VSVCBJTlRPICR0YWJsZV9uYW1lIFZBTFVFUyAoMSkpKTsK Kwkkbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJHN1Yl9uYW1lKTsKKwkkbm9kZV9z dWJzY3JpYmVyLT5zYWZlX3BzcWwoJGRiLCBxcSgKKwkJVFJVTkNBVEUgJHRhYmxlX25hbWU7CisJ CUlOU0VSVCBJTlRPICR0YWJsZV9uYW1lIFZBTFVFUyAoMSk7CisJKSk7CisKKwkjIFVwZGF0ZSBk YXRhIHRvIHRlc3QgdGFibGUgb24gdGhlIHB1Ymxpc2hlciwgdXBkYXRpbmcgYSByb3cgb24gdGhl CisJIyBzdWJzY3JpYmVyIHRoYXQgd2FzIG1vZGlmaWVkIGJ5IGEgZGlmZmVyZW50IG9yaWdpbi4K Kwkkbm9kZV9wdWJsaXNoZXItPnNhZmVfcHNxbCgkZGIsIHFxKFVQREFURSAkdGFibGVfbmFtZSBT RVQgYSA9IDI7KSk7CisKKwkkbm9kZV9zdWJzY3JpYmVyLT5wb2xsX3F1ZXJ5X3VudGlsKAorCQkk ZGIsCisJCXFxWworCVNFTEVDVCB1cGRhdGVfZGlmZmVyX2NvdW50ID4gMAorCUZST00gcGdfc3Rh dF9zdWJzY3JpcHRpb25fc3RhdHMKKwlXSEVSRSBzdWJuYW1lID0gJyRzdWJfbmFtZScKKwldKQor CSAgb3IgZGllCisJICBxcShUaW1lZCBvdXQgd2hpbGUgd2FpdGluZyBmb3IgdXBkYXRlX2RpZmZl ciBjb25mbGljdCBmb3Igc3Vic2NyaXB0aW9uICckc3ViX25hbWUnKTsKKwogCXJldHVybiAoJHB1 Yl9uYW1lLCAkc3ViX25hbWUpOwogfQogCkBAIC0xMjgsMTEgKzE3MSwxNSBAQCBpcyggJG5vZGVf c3Vic2NyaWJlci0+c2FmZV9wc3FsKAogCQkkZGIsCiAJCXFxKFNFTEVDVCBhcHBseV9lcnJvcl9j b3VudCA+IDAsCiAJc3luY19lcnJvcl9jb3VudCA+IDAsCisJaW5zZXJ0X2V4aXN0c19jb3VudCA+ IDAsCisJdXBkYXRlX2RpZmZlcl9jb3VudCA+IDAsCisJdXBkYXRlX21pc3NpbmdfY291bnQgPiAw LAorCWRlbGV0ZV9taXNzaW5nX2NvdW50ID4gMCwKIAlzdGF0c19yZXNldCBJUyBOVUxMCiAJRlJP TSBwZ19zdGF0X3N1YnNjcmlwdGlvbl9zdGF0cwogCVdIRVJFIHN1Ym5hbWUgPSAnJHN1YjFfbmFt ZScpCiAJKSwKLQlxcSh0fHR8dCksCisJcXEodHx0fHR8dHx0fHR8dCksCiAJcXEoQ2hlY2sgdGhh dCBhcHBseSBlcnJvcnMgYW5kIHN5bmMgZXJyb3JzIGFyZSBib3RoID4gMCBhbmQgc3RhdHNfcmVz ZXQgaXMgTlVMTCBmb3Igc3Vic2NyaXB0aW9uICckc3ViMV9uYW1lJy4pCiApOwogCkBAIC0xNDYs MTEgKzE5MywxNSBAQCBpcyggJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKAogCQkkZGIsCiAJ CXFxKFNFTEVDVCBhcHBseV9lcnJvcl9jb3VudCA9IDAsCiAJc3luY19lcnJvcl9jb3VudCA9IDAs CisJaW5zZXJ0X2V4aXN0c19jb3VudCA9IDAsCisJdXBkYXRlX2RpZmZlcl9jb3VudCA9IDAsCisJ dXBkYXRlX21pc3NpbmdfY291bnQgPSAwLAorCWRlbGV0ZV9taXNzaW5nX2NvdW50ID0gMCwKIAlz dGF0c19yZXNldCBJUyBOT1QgTlVMTAogCUZST00gcGdfc3RhdF9zdWJzY3JpcHRpb25fc3RhdHMK IAlXSEVSRSBzdWJuYW1lID0gJyRzdWIxX25hbWUnKQogCSksCi0JcXEodHx0fHQpLAorCXFxKHR8 dHx0fHR8dHx0fHQpLAogCXFxKENvbmZpcm0gdGhhdCBhcHBseSBlcnJvcnMgYW5kIHN5bmMgZXJy b3JzIGFyZSBib3RoIDAgYW5kIHN0YXRzX3Jlc2V0IGlzIG5vdCBOVUxMIGFmdGVyIHJlc2V0IGZv ciBzdWJzY3JpcHRpb24gJyRzdWIxX25hbWUnLikKICk7CiAKQEAgLTE4NiwxMSArMjM3LDE1IEBA IGlzKCAkbm9kZV9zdWJzY3JpYmVyLT5zYWZlX3BzcWwoCiAJCSRkYiwKIAkJcXEoU0VMRUNUIGFw cGx5X2Vycm9yX2NvdW50ID4gMCwKIAlzeW5jX2Vycm9yX2NvdW50ID4gMCwKKwlpbnNlcnRfZXhp c3RzX2NvdW50ID4gMCwKKwl1cGRhdGVfZGlmZmVyX2NvdW50ID4gMCwKKwl1cGRhdGVfbWlzc2lu Z19jb3VudCA+IDAsCisJZGVsZXRlX21pc3NpbmdfY291bnQgPiAwLAogCXN0YXRzX3Jlc2V0IElT IE5VTEwKIAlGUk9NIHBnX3N0YXRfc3Vic2NyaXB0aW9uX3N0YXRzCiAJV0hFUkUgc3VibmFtZSA9 ICckc3ViMl9uYW1lJykKIAkpLAotCXFxKHR8dHx0KSwKKwlxcSh0fHR8dHx0fHR8dHx0KSwKIAlx cShDb25maXJtIHRoYXQgYXBwbHkgZXJyb3JzIGFuZCBzeW5jIGVycm9ycyBhcmUgYm90aCA+IDAg YW5kIHN0YXRzX3Jlc2V0IGlzIE5VTEwgZm9yIHN1YiAnJHN1YjJfbmFtZScuKQogKTsKIApAQCAt MjAzLDExICsyNTgsMTUgQEAgaXMoICRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNxbCgKIAkJJGRi LAogCQlxcShTRUxFQ1QgYXBwbHlfZXJyb3JfY291bnQgPSAwLAogCXN5bmNfZXJyb3JfY291bnQg PSAwLAorCWluc2VydF9leGlzdHNfY291bnQgPSAwLAorCXVwZGF0ZV9kaWZmZXJfY291bnQgPSAw LAorCXVwZGF0ZV9taXNzaW5nX2NvdW50ID0gMCwKKwlkZWxldGVfbWlzc2luZ19jb3VudCA9IDAs CiAJc3RhdHNfcmVzZXQgSVMgTk9UIE5VTEwKIAlGUk9NIHBnX3N0YXRfc3Vic2NyaXB0aW9uX3N0 YXRzCiAJV0hFUkUgc3VibmFtZSA9ICckc3ViMV9uYW1lJykKIAkpLAotCXFxKHR8dHx0KSwKKwlx cSh0fHR8dHx0fHR8dHx0KSwKIAlxcShDb25maXJtIHRoYXQgYXBwbHkgZXJyb3JzIGFuZCBzeW5j IGVycm9ycyBhcmUgYm90aCAwIGFuZCBzdGF0c19yZXNldCBpcyBub3QgTlVMTCBmb3Igc3ViICck c3ViMV9uYW1lJyBhZnRlciByZXNldC4pCiApOwogCkBAIC0yMTUsMTEgKzI3NCwxNSBAQCBpcygg JG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKAogCQkkZGIsCiAJCXFxKFNFTEVDVCBhcHBseV9l cnJvcl9jb3VudCA9IDAsCiAJc3luY19lcnJvcl9jb3VudCA9IDAsCisJaW5zZXJ0X2V4aXN0c19j b3VudCA9IDAsCisJdXBkYXRlX2RpZmZlcl9jb3VudCA9IDAsCisJdXBkYXRlX21pc3NpbmdfY291 bnQgPSAwLAorCWRlbGV0ZV9taXNzaW5nX2NvdW50ID0gMCwKIAlzdGF0c19yZXNldCBJUyBOT1Qg TlVMTAogCUZST00gcGdfc3RhdF9zdWJzY3JpcHRpb25fc3RhdHMKIAlXSEVSRSBzdWJuYW1lID0g JyRzdWIyX25hbWUnKQogCSksCi0JcXEodHx0fHQpLAorCXFxKHR8dHx0fHR8dHx0fHQpLAogCXFx KENvbmZpcm0gdGhhdCBhcHBseSBlcnJvcnMgYW5kIHN5bmMgZXJyb3JzIGFyZSBib3RoIDAgYW5k IHN0YXRzX3Jlc2V0IGlzIG5vdCBOVUxMIGZvciBzdWIgJyRzdWIyX25hbWUnIGFmdGVyIHJlc2V0 LikKICk7CiAKLS0gCjIuMzEuMQoK --_003_OS0PR01MB57161006B8F2779F2C97318194D42OS0PR01MB5716jpnp_ Content-Type: application/octet-stream; name="v2-0001-Detect-and-log-conflicts-in-logical-replication.patch" Content-Description: v2-0001-Detect-and-log-conflicts-in-logical-replication.patch Content-Disposition: attachment; filename="v2-0001-Detect-and-log-conflicts-in-logical-replication.patch"; size=91208; creation-date="Mon, 24 Jun 2024 02:07:26 GMT"; modification-date="Mon, 24 Jun 2024 02:09:26 GMT" Content-Transfer-Encoding: base64 RnJvbSA4OTI1MWYxMjM0NmU4OTFmODg4ZWE0YjA4NmZiNzI1NWI5MjZkYWZmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBIb3UgWmhpamllIDxob3V6ai5mbnN0QGZ1aml0c3UuY29tPgpE YXRlOiBGcmksIDMxIE1heSAyMDI0IDE0OjIwOjQ1ICswNTMwClN1YmplY3Q6IFtQQVRDSCB2Ml0g RGV0ZWN0IGFuZCBsb2cgY29uZmxpY3RzIGluIGxvZ2ljYWwgcmVwbGljYXRpb24KClRoaXMgcGF0 Y2ggYWRkcyBhIG5ldyBwYXJhbWV0ZXIgZGV0ZWN0X2NvbmZsaWN0IGZvciBDUkVBVEUgYW5kIEFM VEVSCnN1YnNjcmlwdGlvbiBjb21tYW5kcy4gVGhpcyBuZXcgcGFyYW1ldGVyIHdpbGwgZGVjaWRl IGlmIHN1YnNjcmlwdGlvbiB3aWxsCmdvIGZvciBjb25maWN0IGRldGVjdGlvbi4gQnkgZGVmYXVs dCwgY29uZmxpY3QgZGV0ZWN0aW9uIHdpbGwgYmUgb2ZmIGZvciBhCnN1YnNjcmlwdGlvbi4KCldo ZW4gY29uZmxpY3QgZGV0ZWN0aW9uIGlzIGVuYWJsZWQsIGFkZGl0aW9uYWwgbG9nZ2luZyBpcyB0 cmlnZ2VyZWQgaW4gdGhlCmZvbGxvd2luZyBjb25mbGljdCBzY2VuYXJpb3M6CgppbnNlcnRfZXhp c3RzOiBJbnNlcnRpbmcgYSByb3cgdGhhdCBpb2xhdGVzIGEgTk9UIERFRkVSUkFCTEUgdW5pcXVl IGNvbnN0cmFpbnQuCnVwZGF0ZV9kaWZmZXI6IHVwZGF0aW5nIGEgcm93IHRoYXQgd2FzIHByZXZp b3VzbHkgbW9kaWZpZWQgYnkgYW5vdGhlciBvcmlnaW4uCnVwZGF0ZV9taXNzaW5nOiBUaGUgdHVw bGUgdG8gYmUgdXBkYXRlZCBpcyBtaXNzaW5nLgpkZWxldGVfbWlzc2luZzogVGhlIHR1cGxlIHRv IGJlIGRlbGV0ZWQgaXMgbWlzc2luZy4KCkZvciBpbnNlcnRfZXhpc3RzIGNvbmZsaWN0LCB0aGUg bG9nIGNhbiBpbmNsdWRlIG9yaWdpbiBhbmQgY29tbWl0CnRpbWVzdGFtcCBkZXRhaWxzIG9mIHRo ZSBjb25mbGljdGluZyBrZXkgd2l0aCB0cmFja19jb21taXRfdGltZXN0YW1wCmVuYWJsZWQuCgp1 cGRhdGVfZGlmZmVyIGNvbmZsaWN0IGNhbiBvbmx5IGJlIGRldGVjdGVkIHdoZW4gdHJhY2tfY29t bWl0X3RpbWVzdGFtcCBpcwplbmFibGVkLgotLS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21s ICAgICAgICAgICAgICAgICAgfCAgIDkgKwogZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl9zdWJzY3Jp cHRpb24uc2dtbCAgICB8ICAgNSArLQogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc3Vic2NyaXB0 aW9uLnNnbWwgICB8ICA1NSArKysrKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0 aW9uLmMgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3Fs ICAgICAgICB8ICAgMyArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5j ICAgICB8ICAzMSArKystCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjSW5kZXhpbmcuYyAgICAg ICAgIHwgIDE0ICstCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjUmVwbGljYXRpb24uYyAgICAg IHwgMTE3ICsrKysrKysrKysrLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9NYWtl ZmlsZSAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2NvbmZsaWN0 LmMgIHwgMTg3ICsrKysrKysrKysrKysrKysrKysrCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9s b2dpY2FsL21lc29uLmJ1aWxkIHwgICAxICsKIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2lj YWwvd29ya2VyLmMgICAgfCAgNTAgKysrKy0tCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jICAg ICAgICAgICAgICAgICAgIHwgIDE3ICstCiBzcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAg ICAgICAgICAgICAgIHwgICAxICsKIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAg ICAgICAgICAgfCAgIDYgKy0KIHNyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYyAgICAgICAgICAg ICAgICAgfCAgMTQgKy0KIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmggICAg ICAgfCAgIDQgKwogc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vY29uZmxpY3QuaCAgICAgICAgICB8 ICA0NCArKysrKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0ICB8 IDE3NiArKysrKysrKysrLS0tLS0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNjcmlwdGlv bi5zcWwgICAgICAgfCAgMTUgKysKIHNyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAwMV9yZXBfY2hh bmdlcy5wbCAgfCAgMTUgKy0KIHNyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAxM19wYXJ0aXRpb24u cGwgICAgfCAgNDggKystLS0KIHNyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAyOV9vbl9lcnJvci5w bCAgICAgfCAgIDUgKy0KIHNyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzMF9vcmlnaW4ucGwgICAg ICAgfCAgMjYgKysrCiBzcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAgICAg IHwgICAxICsKIDI1IGZpbGVzIGNoYW5nZWQsIDY5NSBpbnNlcnRpb25zKCspLCAxNTEgZGVsZXRp b25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNh bC9jb25mbGljdC5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgc3JjL2luY2x1ZGUvcmVwbGljYXRpb24v Y29uZmxpY3QuaAoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sIGIvZG9j L3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKaW5kZXggYTYzY2M3MWVmYS4uYTliNmYyOTNlYSAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Nh dGFsb2dzLnNnbWwKQEAgLTgwMzQsNiArODAzNCwxNSBAQCBTQ1JBTS1TSEEtMjU2JDxyZXBsYWNl YWJsZT4mbHQ7aXRlcmF0aW9uIGNvdW50Jmd0OzwvcmVwbGFjZWFibGU+OjxyZXBsYWNlYWJsZT4m bAogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCisgICAgIDxyb3c+CisgICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5zdWJkZXRlY3Rjb25mbGljdDwvc3RydWN0 ZmllbGQ+IDx0eXBlPmJvb2w8L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAg ICAgICBJZiB0cnVlLCB0aGUgc3Vic2NyaXB0aW9uIGlzIGVuYWJsZWQgZm9yIGNvbmZsaWN0IGRl dGVjdGlvbi4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKwogICAgICA8cm93 PgogICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNv bHVtbl9kZWZpbml0aW9uIj4KICAgICAgICA8c3RydWN0ZmllbGQ+c3ViY29ubmluZm88L3N0cnVj dGZpZWxkPiA8dHlwZT50ZXh0PC90eXBlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9h bHRlcl9zdWJzY3JpcHRpb24uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfc3Vic2NyaXB0 aW9uLnNnbWwKaW5kZXggNDc2ZjE5NTYyMi4uNWY2YjgzZTQxNSAxMDA2NDQKLS0tIGEvZG9jL3Ny Yy9zZ21sL3JlZi9hbHRlcl9zdWJzY3JpcHRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVm L2FsdGVyX3N1YnNjcmlwdGlvbi5zZ21sCkBAIC0yMjgsOCArMjI4LDkgQEAgQUxURVIgU1VCU0NS SVBUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT4g UkVOQU1FIFRPIDwKICAgICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJzY3JpcHRpb24t cGFyYW1zLXdpdGgtZGlzYWJsZS1vbi1lcnJvciI+PGxpdGVyYWw+ZGlzYWJsZV9vbl9lcnJvcjwv bGl0ZXJhbD48L2xpbms+LAogICAgICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlw dGlvbi1wYXJhbXMtd2l0aC1wYXNzd29yZC1yZXF1aXJlZCI+PGxpdGVyYWw+cGFzc3dvcmRfcmVx dWlyZWQ8L2xpdGVyYWw+PC9saW5rPiwKICAgICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVz dWJzY3JpcHRpb24tcGFyYW1zLXdpdGgtcnVuLWFzLW93bmVyIj48bGl0ZXJhbD5ydW5fYXNfb3du ZXI8L2xpdGVyYWw+PC9saW5rPiwKLSAgICAgIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGVzdWJz Y3JpcHRpb24tcGFyYW1zLXdpdGgtb3JpZ2luIj48bGl0ZXJhbD5vcmlnaW48L2xpdGVyYWw+PC9s aW5rPiwgYW5kCi0gICAgICA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBh cmFtcy13aXRoLWZhaWxvdmVyIj48bGl0ZXJhbD5mYWlsb3ZlcjwvbGl0ZXJhbD48L2xpbms+Lgor ICAgICAgPGxpbmsgbGlua2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1v cmlnaW4iPjxsaXRlcmFsPm9yaWdpbjwvbGl0ZXJhbD48L2xpbms+LAorICAgICAgPGxpbmsgbGlu a2VuZD0ic3FsLWNyZWF0ZXN1YnNjcmlwdGlvbi1wYXJhbXMtd2l0aC1mYWlsb3ZlciI+PGxpdGVy YWw+ZmFpbG92ZXI8L2xpdGVyYWw+PC9saW5rPiwgYW5kCisgICAgICA8bGluayBsaW5rZW5kPSJz cWwtY3JlYXRlc3Vic2NyaXB0aW9uLXBhcmFtcy13aXRoLWRldGVjdC1jb25mbGljdCI+PGxpdGVy YWw+ZGV0ZWN0X2NvbmZsaWN0PC9saXRlcmFsPjwvbGluaz4uCiAgICAgICBPbmx5IGEgc3VwZXJ1 c2VyIGNhbiBzZXQgPGxpdGVyYWw+cGFzc3dvcmRfcmVxdWlyZWQgPSBmYWxzZTwvbGl0ZXJhbD4u CiAgICAgIDwvcGFyYT4KIApkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc3Vi c2NyaXB0aW9uLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dt bAppbmRleCA3NDBiN2Q5NDIxLi5jZTM3ZmE2NDkwIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwv cmVmL2NyZWF0ZV9zdWJzY3JpcHRpb24uc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0 ZV9zdWJzY3JpcHRpb24uc2dtbApAQCAtNDI4LDYgKzQyOCw2MSBAQCBDUkVBVEUgU1VCU0NSSVBU SU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zdWJzY3JpcHRpb25fbmFtZTwvcmVw bGFjZWFibAogICAgICAgICAgPC9wYXJhPgogICAgICAgICA8L2xpc3RpdGVtPgogICAgICAgIDwv dmFybGlzdGVudHJ5PgorCisgICAgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRlc3Vic2Ny aXB0aW9uLXBhcmFtcy13aXRoLWRldGVjdC1jb25mbGljdCI+CisgICAgICAgIDx0ZXJtPjxsaXRl cmFsPmRldGVjdF9jb25mbGljdDwvbGl0ZXJhbD4gKDx0eXBlPmJvb2xlYW48L3R5cGU+KTwvdGVy bT4KKyAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAgU3BlY2lm aWVzIHdoZXRoZXIgdGhlIHN1YnNjcmlwdGlvbiBpcyBlbmFibGVkIGZvciBjb25mbGljdCBkZXRl Y3Rpb24uCisgICAgICAgICAgVGhlIGRlZmF1bHQgaXMgPGxpdGVyYWw+ZmFsc2U8L2xpdGVyYWw+ LgorICAgICAgICAgPC9wYXJhPgorICAgICAgICAgPHBhcmE+CisgICAgICAgICAgV2hlbiBjb25m bGljdCBkZXRlY3Rpb24gaXMgZW5hYmxlZCwgYWRkaXRpb25hbCBsb2dnaW5nIGlzIHRyaWdnZXJl ZAorICAgICAgICAgIGluIHRoZSBmb2xsb3dpbmcgc2NlbmFyaW9zOgorICAgICAgICAgIDx2YXJp YWJsZWxpc3Q+CisgICAgICAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgICAgICA8dGVybT48 bGl0ZXJhbD5pbnNlcnRfZXhpc3RzPC9saXRlcmFsPjwvdGVybT4KKyAgICAgICAgICAgIDxsaXN0 aXRlbT4KKyAgICAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAgICAgSW5zZXJ0aW5nIGEgcm93 IHRoYXQgdmlvbGF0ZXMgYSA8bGl0ZXJhbD5OT1QgREVGRVJSQUJMRTwvbGl0ZXJhbD4KKyAgICAg ICAgICAgICAgdW5pcXVlIGNvbnN0cmFpbnQuIE5vdGUgdGhhdCB0byBvYnRhaW4gdGhlIG9yaWdp biBhbmQgY29tbWl0CisgICAgICAgICAgICAgIHRpbWVzdGFtcCBkZXRhaWxzIG9mIHRoZSBjb25m bGljdGluZyBrZXkgaW4gdGhlIGxvZywgZW5zdXJlIHRoYXQKKyAgICAgICAgICAgICAgPGxpbmsg bGlua2VuZD0iZ3VjLXRyYWNrLWNvbW1pdC10aW1lc3RhbXAiPjx2YXJuYW1lPnRyYWNrX2NvbW1p dF90aW1lc3RhbXA8L3Zhcm5hbWU+PC9saW5rPgorICAgICAgICAgICAgICBpcyBlbmFibGVkLgor ICAgICAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICAgICAg IDwvdmFybGlzdGVudHJ5PgorICAgICAgICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgICAgICAg PHRlcm0+PGxpdGVyYWw+dXBkYXRlX2RpZmZlcjwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAgICAg ICA8bGlzdGl0ZW0+CisgICAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICAgIFVwZGF0aW5n IGEgcm93IHRoYXQgd2FzIHByZXZpb3VzbHkgbW9kaWZpZWQgYnkgYW5vdGhlciBvcmlnaW4uIE5v dGUgdGhhdCB0aGlzCisgICAgICAgICAgICAgIGNvbmZsaWN0IGNhbiBvbmx5IGJlIGRldGVjdGVk IHdoZW4KKyAgICAgICAgICAgICAgPGxpbmsgbGlua2VuZD0iZ3VjLXRyYWNrLWNvbW1pdC10aW1l c3RhbXAiPjx2YXJuYW1lPnRyYWNrX2NvbW1pdF90aW1lc3RhbXA8L3Zhcm5hbWU+PC9saW5rPgor ICAgICAgICAgICAgICBpcyBlbmFibGVkLgorICAgICAgICAgICAgIDwvcGFyYT4KKyAgICAgICAg ICAgIDwvbGlzdGl0ZW0+CisgICAgICAgICAgIDwvdmFybGlzdGVudHJ5PgorICAgICAgICAgICA8 dmFybGlzdGVudHJ5PgorICAgICAgICAgICAgPHRlcm0+PGxpdGVyYWw+dXBkYXRlX21pc3Npbmc8 L2xpdGVyYWw+PC90ZXJtPgorICAgICAgICAgICAgPGxpc3RpdGVtPgorICAgICAgICAgICAgIDxw YXJhPgorICAgICAgICAgICAgICBUaGUgdHVwbGUgdG8gYmUgdXBkYXRlZCBpcyBub3QgZm91bmQu CisgICAgICAgICAgICAgPC9wYXJhPgorICAgICAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgICAg ICAgPC92YXJsaXN0ZW50cnk+CisgICAgICAgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICAgICAg ICA8dGVybT48bGl0ZXJhbD5kZWxldGVfbWlzc2luZzwvbGl0ZXJhbD48L3Rlcm0+CisgICAgICAg ICAgICA8bGlzdGl0ZW0+CisgICAgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgICAgIFRoZSB0 dXBsZSB0byBiZSBkZWxldGVkIGlzIG5vdCBmb3VuZC4KKyAgICAgICAgICAgICA8L3BhcmE+Cisg ICAgICAgICAgICA8L2xpc3RpdGVtPgorICAgICAgICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAg ICAgICA8L3ZhcmlhYmxlbGlzdD4KKyAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRl bT4KKyAgICAgICA8L3Zhcmxpc3RlbnRyeT4KICAgICAgIDwvdmFyaWFibGVsaXN0PjwvcGFyYT4K IAogICAgIDwvbGlzdGl0ZW0+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3N1 YnNjcmlwdGlvbi5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zdWJzY3JpcHRpb24uYwppbmRl eCA5ZWZjOTE1OWYyLi41YTQyM2Y0ZmIwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9n L3BnX3N1YnNjcmlwdGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfc3Vic2NyaXB0 aW9uLmMKQEAgLTcyLDYgKzcyLDcgQEAgR2V0U3Vic2NyaXB0aW9uKE9pZCBzdWJpZCwgYm9vbCBt aXNzaW5nX29rKQogCXN1Yi0+cGFzc3dvcmRyZXF1aXJlZCA9IHN1YmZvcm0tPnN1YnBhc3N3b3Jk cmVxdWlyZWQ7CiAJc3ViLT5ydW5hc293bmVyID0gc3ViZm9ybS0+c3VicnVuYXNvd25lcjsKIAlz dWItPmZhaWxvdmVyID0gc3ViZm9ybS0+c3ViZmFpbG92ZXI7CisJc3ViLT5kZXRlY3Rjb25mbGlj dCA9IHN1YmZvcm0tPnN1YmRldGVjdGNvbmZsaWN0OwogCiAJLyogR2V0IGNvbm5pbmZvICovCiAJ ZGF0dW0gPSBTeXNDYWNoZUdldEF0dHJOb3ROdWxsKFNVQlNDUklQVElPTk9JRCwKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbCBiL3NyYy9iYWNrZW5kL2Nh dGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAppbmRleCBlZmIyOWFkZWIzLi4zMDM5M2U2ZDY3IDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKKysrIGIvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCkBAIC0xMzYwLDcgKzEzNjAsOCBAQCBSRVZP S0UgQUxMIE9OIHBnX3N1YnNjcmlwdGlvbiBGUk9NIHB1YmxpYzsKIEdSQU5UIFNFTEVDVCAob2lk LCBzdWJkYmlkLCBzdWJza2lwbHNuLCBzdWJuYW1lLCBzdWJvd25lciwgc3ViZW5hYmxlZCwKICAg ICAgICAgICAgICAgc3ViYmluYXJ5LCBzdWJzdHJlYW0sIHN1YnR3b3BoYXNlc3RhdGUsIHN1YmRp c2FibGVvbmVyciwKIAkJCSAgc3VicGFzc3dvcmRyZXF1aXJlZCwgc3VicnVuYXNvd25lciwgc3Vi ZmFpbG92ZXIsCi0gICAgICAgICAgICAgIHN1YnNsb3RuYW1lLCBzdWJzeW5jY29tbWl0LCBzdWJw dWJsaWNhdGlvbnMsIHN1Ym9yaWdpbikKKwkJCSAgc3ViZGV0ZWN0Y29uZmxpY3QsIHN1YnNsb3Ru YW1lLCBzdWJzeW5jY29tbWl0LAorCQkJICBzdWJwdWJsaWNhdGlvbnMsIHN1Ym9yaWdpbikKICAg ICBPTiBwZ19zdWJzY3JpcHRpb24gVE8gcHVibGljOwogCiBDUkVBVEUgVklFVyBwZ19zdGF0X3N1 YnNjcmlwdGlvbl9zdGF0cyBBUwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vi c2NyaXB0aW9uY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc3Vic2NyaXB0aW9uY21kcy5j CmluZGV4IGU0MDc0MjhkYmMuLmU2NzBkNzI3MDggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3N1YnNjcmlwdGlvbmNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zdWJz Y3JpcHRpb25jbWRzLmMKQEAgLTcwLDggKzcwLDkgQEAKICNkZWZpbmUgU1VCT1BUX1BBU1NXT1JE X1JFUVVJUkVECTB4MDAwMDA4MDAKICNkZWZpbmUgU1VCT1BUX1JVTl9BU19PV05FUgkJCTB4MDAw MDEwMDAKICNkZWZpbmUgU1VCT1BUX0ZBSUxPVkVSCQkJCTB4MDAwMDIwMDAKLSNkZWZpbmUgU1VC T1BUX0xTTgkJCQkJMHgwMDAwNDAwMAotI2RlZmluZSBTVUJPUFRfT1JJR0lOCQkJCTB4MDAwMDgw MDAKKyNkZWZpbmUgU1VCT1BUX0RFVEVDVF9DT05GTElDVAkJMHgwMDAwNDAwMAorI2RlZmluZSBT VUJPUFRfTFNOCQkJCQkweDAwMDA4MDAwCisjZGVmaW5lIFNVQk9QVF9PUklHSU4JCQkJMHgwMDAx MDAwMAogCiAvKiBjaGVjayBpZiB0aGUgJ3ZhbCcgaGFzICdiaXRzJyBzZXQgKi8KICNkZWZpbmUg SXNTZXQodmFsLCBiaXRzKSAgKCgodmFsKSAmIChiaXRzKSkgPT0gKGJpdHMpKQpAQCAtOTcsNiAr OTgsNyBAQCB0eXBlZGVmIHN0cnVjdCBTdWJPcHRzCiAJYm9vbAkJcGFzc3dvcmRyZXF1aXJlZDsK IAlib29sCQlydW5hc293bmVyOwogCWJvb2wJCWZhaWxvdmVyOworCWJvb2wJCWRldGVjdGNvbmZs aWN0OwogCWNoYXIJICAgKm9yaWdpbjsKIAlYTG9nUmVjUHRyCWxzbjsKIH0gU3ViT3B0czsKQEAg LTE1OSw2ICsxNjEsOCBAQCBwYXJzZV9zdWJzY3JpcHRpb25fb3B0aW9ucyhQYXJzZVN0YXRlICpw c3RhdGUsIExpc3QgKnN0bXRfb3B0aW9ucywKIAkJb3B0cy0+cnVuYXNvd25lciA9IGZhbHNlOwog CWlmIChJc1NldChzdXBwb3J0ZWRfb3B0cywgU1VCT1BUX0ZBSUxPVkVSKSkKIAkJb3B0cy0+ZmFp bG92ZXIgPSBmYWxzZTsKKwlpZiAoSXNTZXQoc3VwcG9ydGVkX29wdHMsIFNVQk9QVF9ERVRFQ1Rf Q09ORkxJQ1QpKQorCQlvcHRzLT5kZXRlY3Rjb25mbGljdCA9IGZhbHNlOwogCWlmIChJc1NldChz dXBwb3J0ZWRfb3B0cywgU1VCT1BUX09SSUdJTikpCiAJCW9wdHMtPm9yaWdpbiA9IHBzdHJkdXAo TE9HSUNBTFJFUF9PUklHSU5fQU5ZKTsKIApAQCAtMzE2LDYgKzMyMCwxNSBAQCBwYXJzZV9zdWJz Y3JpcHRpb25fb3B0aW9ucyhQYXJzZVN0YXRlICpwc3RhdGUsIExpc3QgKnN0bXRfb3B0aW9ucywK IAkJCW9wdHMtPnNwZWNpZmllZF9vcHRzIHw9IFNVQk9QVF9GQUlMT1ZFUjsKIAkJCW9wdHMtPmZh aWxvdmVyID0gZGVmR2V0Qm9vbGVhbihkZWZlbCk7CiAJCX0KKwkJZWxzZSBpZiAoSXNTZXQoc3Vw cG9ydGVkX29wdHMsIFNVQk9QVF9ERVRFQ1RfQ09ORkxJQ1QpICYmCisJCQkJIHN0cmNtcChkZWZl bC0+ZGVmbmFtZSwgImRldGVjdF9jb25mbGljdCIpID09IDApCisJCXsKKwkJCWlmIChJc1NldChv cHRzLT5zcGVjaWZpZWRfb3B0cywgU1VCT1BUX0RFVEVDVF9DT05GTElDVCkpCisJCQkJZXJyb3JD b25mbGljdGluZ0RlZkVsZW0oZGVmZWwsIHBzdGF0ZSk7CisKKwkJCW9wdHMtPnNwZWNpZmllZF9v cHRzIHw9IFNVQk9QVF9ERVRFQ1RfQ09ORkxJQ1Q7CisJCQlvcHRzLT5kZXRlY3Rjb25mbGljdCA9 IGRlZkdldEJvb2xlYW4oZGVmZWwpOworCQl9CiAJCWVsc2UgaWYgKElzU2V0KHN1cHBvcnRlZF9v cHRzLCBTVUJPUFRfT1JJR0lOKSAmJgogCQkJCSBzdHJjbXAoZGVmZWwtPmRlZm5hbWUsICJvcmln aW4iKSA9PSAwKQogCQl7CkBAIC02MDMsNyArNjE2LDggQEAgQ3JlYXRlU3Vic2NyaXB0aW9uKFBh cnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdCAqc3RtdCwKIAkJCQkJICBT VUJPUFRfU1lOQ0hST05PVVNfQ09NTUlUIHwgU1VCT1BUX0JJTkFSWSB8CiAJCQkJCSAgU1VCT1BU X1NUUkVBTUlORyB8IFNVQk9QVF9UV09QSEFTRV9DT01NSVQgfAogCQkJCQkgIFNVQk9QVF9ESVNB QkxFX09OX0VSUiB8IFNVQk9QVF9QQVNTV09SRF9SRVFVSVJFRCB8Ci0JCQkJCSAgU1VCT1BUX1JV Tl9BU19PV05FUiB8IFNVQk9QVF9GQUlMT1ZFUiB8IFNVQk9QVF9PUklHSU4pOworCQkJCQkgIFNV Qk9QVF9SVU5fQVNfT1dORVIgfCBTVUJPUFRfRkFJTE9WRVIgfAorCQkJCQkgIFNVQk9QVF9ERVRF Q1RfQ09ORkxJQ1QgfCBTVUJPUFRfT1JJR0lOKTsKIAlwYXJzZV9zdWJzY3JpcHRpb25fb3B0aW9u cyhwc3RhdGUsIHN0bXQtPm9wdGlvbnMsIHN1cHBvcnRlZF9vcHRzLCAmb3B0cyk7CiAKIAkvKgpA QCAtNzEwLDYgKzcyNCw4IEBAIENyZWF0ZVN1YnNjcmlwdGlvbihQYXJzZVN0YXRlICpwc3RhdGUs IENyZWF0ZVN1YnNjcmlwdGlvblN0bXQgKnN0bXQsCiAJdmFsdWVzW0FudW1fcGdfc3Vic2NyaXB0 aW9uX3N1YnBhc3N3b3JkcmVxdWlyZWQgLSAxXSA9IEJvb2xHZXREYXR1bShvcHRzLnBhc3N3b3Jk cmVxdWlyZWQpOwogCXZhbHVlc1tBbnVtX3BnX3N1YnNjcmlwdGlvbl9zdWJydW5hc293bmVyIC0g MV0gPSBCb29sR2V0RGF0dW0ob3B0cy5ydW5hc293bmVyKTsKIAl2YWx1ZXNbQW51bV9wZ19zdWJz Y3JpcHRpb25fc3ViZmFpbG92ZXIgLSAxXSA9IEJvb2xHZXREYXR1bShvcHRzLmZhaWxvdmVyKTsK Kwl2YWx1ZXNbQW51bV9wZ19zdWJzY3JpcHRpb25fc3ViZGV0ZWN0Y29uZmxpY3QgLSAxXSA9CisJ CUJvb2xHZXREYXR1bShvcHRzLmRldGVjdGNvbmZsaWN0KTsKIAl2YWx1ZXNbQW51bV9wZ19zdWJz Y3JpcHRpb25fc3ViY29ubmluZm8gLSAxXSA9CiAJCUNTdHJpbmdHZXRUZXh0RGF0dW0oY29ubmlu Zm8pOwogCWlmIChvcHRzLnNsb3RfbmFtZSkKQEAgLTExNDYsNyArMTE2Miw3IEBAIEFsdGVyU3Vi c2NyaXB0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQWx0ZXJTdWJzY3JpcHRpb25TdG10ICpzdG10 LAogCQkJCQkJCQkgIFNVQk9QVF9TVFJFQU1JTkcgfCBTVUJPUFRfRElTQUJMRV9PTl9FUlIgfAog CQkJCQkJCQkgIFNVQk9QVF9QQVNTV09SRF9SRVFVSVJFRCB8CiAJCQkJCQkJCSAgU1VCT1BUX1JV Tl9BU19PV05FUiB8IFNVQk9QVF9GQUlMT1ZFUiB8Ci0JCQkJCQkJCSAgU1VCT1BUX09SSUdJTik7 CisJCQkJCQkJCSAgU1VCT1BUX0RFVEVDVF9DT05GTElDVCB8IFNVQk9QVF9PUklHSU4pOwogCiAJ CQkJcGFyc2Vfc3Vic2NyaXB0aW9uX29wdGlvbnMocHN0YXRlLCBzdG10LT5vcHRpb25zLAogCQkJ CQkJCQkJCSAgIHN1cHBvcnRlZF9vcHRzLCAmb3B0cyk7CkBAIC0xMjU2LDYgKzEyNzIsMTMgQEAg QWx0ZXJTdWJzY3JpcHRpb24oUGFyc2VTdGF0ZSAqcHN0YXRlLCBBbHRlclN1YnNjcmlwdGlvblN0 bXQgKnN0bXQsCiAJCQkJCXJlcGxhY2VzW0FudW1fcGdfc3Vic2NyaXB0aW9uX3N1YmZhaWxvdmVy IC0gMV0gPSB0cnVlOwogCQkJCX0KIAorCQkJCWlmIChJc1NldChvcHRzLnNwZWNpZmllZF9vcHRz LCBTVUJPUFRfREVURUNUX0NPTkZMSUNUKSkKKwkJCQl7CisJCQkJCXZhbHVlc1tBbnVtX3BnX3N1 YnNjcmlwdGlvbl9zdWJkZXRlY3Rjb25mbGljdCAtIDFdID0KKwkJCQkJCUJvb2xHZXREYXR1bShv cHRzLmRldGVjdGNvbmZsaWN0KTsKKwkJCQkJcmVwbGFjZXNbQW51bV9wZ19zdWJzY3JpcHRpb25f c3ViZGV0ZWN0Y29uZmxpY3QgLSAxXSA9IHRydWU7CisJCQkJfQorCiAJCQkJaWYgKElzU2V0KG9w dHMuc3BlY2lmaWVkX29wdHMsIFNVQk9QVF9PUklHSU4pKQogCQkJCXsKIAkJCQkJdmFsdWVzW0Fu dW1fcGdfc3Vic2NyaXB0aW9uX3N1Ym9yaWdpbiAtIDFdID0KZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNJbmRleGluZy5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0lu ZGV4aW5nLmMKaW5kZXggOWYwNWIzNjU0Yy4uMmEyZDE4OGIxOSAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvZXhlY0luZGV4aW5nLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv ZXhlY0luZGV4aW5nLmMKQEAgLTIwNyw4ICsyMDcsOSBAQCBFeGVjT3BlbkluZGljZXMoUmVzdWx0 UmVsSW5mbyAqcmVzdWx0UmVsSW5mbywgYm9vbCBzcGVjdWxhdGl2ZSkKIAkJaWkgPSBCdWlsZElu ZGV4SW5mbyhpbmRleERlc2MpOwogCiAJCS8qCi0JCSAqIElmIHRoZSBpbmRleGVzIGFyZSB0byBi ZSB1c2VkIGZvciBzcGVjdWxhdGl2ZSBpbnNlcnRpb24sIGFkZCBleHRyYQotCQkgKiBpbmZvcm1h dGlvbiByZXF1aXJlZCBieSB1bmlxdWUgaW5kZXggZW50cmllcy4KKwkJICogSWYgdGhlIGluZGV4 ZXMgYXJlIHRvIGJlIHVzZWQgZm9yIHNwZWN1bGF0aXZlIGluc2VydGlvbiBvciBjb25mbGljdAor CQkgKiBkZXRlY3Rpb24gaW4gbG9naWNhbCByZXBsaWNhdGlvbiwgYWRkIGV4dHJhIGluZm9ybWF0 aW9uIHJlcXVpcmVkIGJ5CisJCSAqIHVuaXF1ZSBpbmRleCBlbnRyaWVzLgogCQkgKi8KIAkJaWYg KHNwZWN1bGF0aXZlICYmIGlpLT5paV9VbmlxdWUpCiAJCQlCdWlsZFNwZWN1bGF0aXZlSW5kZXhJ bmZvKGluZGV4RGVzYywgaWkpOwpAQCAtNTIxLDYgKzUyMiwxMSBAQCBFeGVjSW5zZXJ0SW5kZXhU dXBsZXMoUmVzdWx0UmVsSW5mbyAqcmVzdWx0UmVsSW5mbywKICAqCQlwb3NzaWJsZSB0aGF0IGEg Y29uZmxpY3RpbmcgdHVwbGUgaXMgaW5zZXJ0ZWQgaW1tZWRpYXRlbHkKICAqCQlhZnRlciB0aGlz IHJldHVybnMuICBCdXQgdGhpcyBjYW4gYmUgdXNlZCBmb3IgYSBwcmUtY2hlY2sKICAqCQliZWZv cmUgaW5zZXJ0aW9uLgorICoKKyAqCQlJZiB0aGUgJ3Nsb3QnIGhvbGRzIGEgdHVwbGUgd2l0aCB2 YWxpZCB0aWQsIHRoaXMgdHVwbGUgd2lsbAorICoJCWJlIGluZ29yZWQgd2hlbiBjaGVja2luZyBj b25mbGljdC4gVGhpcyBjYW4gaGVscCBpbiBzY2VuYXJpb3MKKyAqCQl3aGVyZSB3ZSB3YW50IHRv IHJlLWNoZWNrIGZvciBjb25mbGljdHMgYWZ0ZXIgaW5zZXJ0aW5nIGEKKyAqCQl0dXBsZS4KICAq IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KICAqLwogYm9vbApAQCAtNTM2LDExICs1NDIsOSBAQCBFeGVjQ2hlY2tJbmRleENv bnN0cmFpbnRzKFJlc3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sIFR1cGxlVGFibGVTbG90ICpz bG90LAogCUV4cHJDb250ZXh0ICplY29udGV4dDsKIAlEYXR1bQkJdmFsdWVzW0lOREVYX01BWF9L RVlTXTsKIAlib29sCQlpc251bGxbSU5ERVhfTUFYX0tFWVNdOwotCUl0ZW1Qb2ludGVyRGF0YSBp bnZhbGlkSXRlbVB0cjsKIAlib29sCQljaGVja2VkSW5kZXggPSBmYWxzZTsKIAogCUl0ZW1Qb2lu dGVyU2V0SW52YWxpZChjb25mbGljdFRpZCk7Ci0JSXRlbVBvaW50ZXJTZXRJbnZhbGlkKCZpbnZh bGlkSXRlbVB0cik7CiAKIAkvKgogCSAqIEdldCBpbmZvcm1hdGlvbiBmcm9tIHRoZSByZXN1bHQg cmVsYXRpb24gaW5mbyBzdHJ1Y3R1cmUuCkBAIC02MjksNyArNjMzLDcgQEAgRXhlY0NoZWNrSW5k ZXhDb25zdHJhaW50cyhSZXN1bHRSZWxJbmZvICpyZXN1bHRSZWxJbmZvLCBUdXBsZVRhYmxlU2xv dCAqc2xvdCwKIAogCQlzYXRpc2ZpZXNDb25zdHJhaW50ID0KIAkJCWNoZWNrX2V4Y2x1c2lvbl9v cl91bmlxdWVfY29uc3RyYWludChoZWFwUmVsYXRpb24sIGluZGV4UmVsYXRpb24sCi0JCQkJCQkJ CQkJCQkgaW5kZXhJbmZvLCAmaW52YWxpZEl0ZW1QdHIsCisJCQkJCQkJCQkJCQkgaW5kZXhJbmZv LCAmc2xvdC0+dHRzX3RpZCwKIAkJCQkJCQkJCQkJCSB2YWx1ZXMsIGlzbnVsbCwgZXN0YXRlLCBm YWxzZSwKIAkJCQkJCQkJCQkJCSBDRU9VQ19XQUlULCB0cnVlLAogCQkJCQkJCQkJCQkJIGNvbmZs aWN0VGlkKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSZXBsaWNhdGlv bi5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JlcGxpY2F0aW9uLmMKaW5kZXggZDBhODlj ZDU3Ny4uZjAxOTI3YTkzMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1Jl cGxpY2F0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JlcGxpY2F0aW9uLmMK QEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJjb21tYW5kcy90cmlnZ2VyLmgiCiAjaW5jbHVk ZSAiZXhlY3V0b3IvZXhlY3V0b3IuaCIKICNpbmNsdWRlICJleGVjdXRvci9ub2RlTW9kaWZ5VGFi bGUuaCIKKyNpbmNsdWRlICJyZXBsaWNhdGlvbi9jb25mbGljdC5oIgogI2luY2x1ZGUgInJlcGxp Y2F0aW9uL2xvZ2ljYWxyZWxhdGlvbi5oIgogI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgogI2lu Y2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCkBAIC00ODAsNiArNDgxLDgzIEBAIHJldHJ5OgogCXJl dHVybiBmb3VuZDsKIH0KIAorLyoKKyAqIEZpbmQgdGhlIHR1cGxlIHRoYXQgdmlvbGF0ZXMgdGhl IHBhc3NlZCBpbiB1bmlxdWUgaW5kZXggY29uc3RyYWludAorICogKGNvbmZsaWN0aW5kZXgpLgor ICoKKyAqIFJldHVybiBmYWxzZSBpZiB0aGVyZSBpcyBubyBjb25mbGljdCBhbmQgKmNvbmZsaWN0 c2xvdCBpcyBzZXQgdG8gTlVMTC4KKyAqIE90aGVyd2lzZSByZXR1cm4gdHJ1ZSwgYW5kIHRoZSBj b25mbGljdGluZyB0dXBsZSBpcyBsb2NrZWQgYW5kIHJldHVybmVkCisgKiBpbiAqY29uZmxpY3Rz bG90LgorICovCitzdGF0aWMgYm9vbAorRmluZENvbmZsaWN0VHVwbGUoUmVzdWx0UmVsSW5mbyAq cmVzdWx0UmVsSW5mbywgRVN0YXRlICplc3RhdGUsCisJCQkJICBPaWQgY29uZmxpY3RpbmRleCwg VHVwbGVUYWJsZVNsb3QgKnNsb3QsCisJCQkJICBUdXBsZVRhYmxlU2xvdCAqKmNvbmZsaWN0c2xv dCkKK3sKKwlSZWxhdGlvbglyZWwgPSByZXN1bHRSZWxJbmZvLT5yaV9SZWxhdGlvbkRlc2M7CisJ SXRlbVBvaW50ZXJEYXRhIGNvbmZsaWN0VGlkOworCVRNX0ZhaWx1cmVEYXRhIHRtZmQ7CisJVE1f UmVzdWx0CXJlczsKKworCSpjb25mbGljdHNsb3QgPSBOVUxMOworCityZXRyeToKKwlpZiAoRXhl Y0NoZWNrSW5kZXhDb25zdHJhaW50cyhyZXN1bHRSZWxJbmZvLCBzbG90LCBlc3RhdGUsCisJCQkJ CQkJCSAgJmNvbmZsaWN0VGlkLCBsaXN0X21ha2UxX29pZChjb25mbGljdGluZGV4KSkpCisJewor CQlpZiAoKmNvbmZsaWN0c2xvdCkKKwkJCUV4ZWNEcm9wU2luZ2xlVHVwbGVUYWJsZVNsb3QoKmNv bmZsaWN0c2xvdCk7CisKKwkJKmNvbmZsaWN0c2xvdCA9IE5VTEw7CisJCXJldHVybiBmYWxzZTsK Kwl9CisKKwkqY29uZmxpY3RzbG90ID0gdGFibGVfc2xvdF9jcmVhdGUocmVsLCBOVUxMKTsKKwor CVB1c2hBY3RpdmVTbmFwc2hvdChHZXRMYXRlc3RTbmFwc2hvdCgpKTsKKworCXJlcyA9IHRhYmxl X3R1cGxlX2xvY2socmVsLCAmY29uZmxpY3RUaWQsIEdldExhdGVzdFNuYXBzaG90KCksCisJCQkJ CQkgICAqY29uZmxpY3RzbG90LAorCQkJCQkJICAgR2V0Q3VycmVudENvbW1hbmRJZChmYWxzZSks CisJCQkJCQkgICBMb2NrVHVwbGVTaGFyZSwKKwkJCQkJCSAgIExvY2tXYWl0QmxvY2ssCisJCQkJ CQkgICAwIC8qIGRvbid0IGZvbGxvdyB1cGRhdGVzICovICwKKwkJCQkJCSAgICZ0bWZkKTsKKwor CVBvcEFjdGl2ZVNuYXBzaG90KCk7CisKKwlzd2l0Y2ggKHJlcykKKwl7CisJCWNhc2UgVE1fT2s6 CisJCQlicmVhazsKKwkJY2FzZSBUTV9VcGRhdGVkOgorCQkJLyogWFhYOiBJbXByb3ZlIGhhbmRs aW5nIGhlcmUgKi8KKwkJCWlmIChJdGVtUG9pbnRlckluZGljYXRlc01vdmVkUGFydGl0aW9ucygm dG1mZC5jdGlkKSkKKwkJCQllcmVwb3J0KExPRywKKwkJCQkJCShlcnJjb2RlKEVSUkNPREVfVF9S X1NFUklBTElaQVRJT05fRkFJTFVSRSksCisJCQkJCQkgZXJybXNnKCJ0dXBsZSB0byBiZSBsb2Nr ZWQgd2FzIGFscmVhZHkgbW92ZWQgdG8gYW5vdGhlciBwYXJ0aXRpb24gZHVlIHRvIGNvbmN1cnJl bnQgdXBkYXRlLCByZXRyeWluZyIpKSk7CisJCQllbHNlCisJCQkJZXJlcG9ydChMT0csCisJCQkJ CQkoZXJyY29kZShFUlJDT0RFX1RfUl9TRVJJQUxJWkFUSU9OX0ZBSUxVUkUpLAorCQkJCQkJIGVy cm1zZygiY29uY3VycmVudCB1cGRhdGUsIHJldHJ5aW5nIikpKTsKKwkJCWdvdG8gcmV0cnk7CisJ CWNhc2UgVE1fRGVsZXRlZDoKKwkJCS8qIFhYWDogSW1wcm92ZSBoYW5kbGluZyBoZXJlICovCisJ CQllcmVwb3J0KExPRywKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9UX1JfU0VSSUFMSVpBVElPTl9G QUlMVVJFKSwKKwkJCQkJIGVycm1zZygiY29uY3VycmVudCBkZWxldGUsIHJldHJ5aW5nIikpKTsK KwkJCWdvdG8gcmV0cnk7CisJCWNhc2UgVE1fSW52aXNpYmxlOgorCQkJZWxvZyhFUlJPUiwgImF0 dGVtcHRlZCB0byBsb2NrIGludmlzaWJsZSB0dXBsZSIpOworCQkJYnJlYWs7CisJCWRlZmF1bHQ6 CisJCQllbG9nKEVSUk9SLCAidW5leHBlY3RlZCB0YWJsZV90dXBsZV9sb2NrIHN0YXR1czogJXUi LCByZXMpOworCQkJYnJlYWs7CisJfQorCisJcmV0dXJuIHRydWU7Cit9CisKIC8qCiAgKiBJbnNl cnQgdHVwbGUgcmVwcmVzZW50ZWQgaW4gdGhlIHNsb3QgdG8gdGhlIHJlbGF0aW9uLCB1cGRhdGUg dGhlIGluZGV4ZXMsCiAgKiBhbmQgZXhlY3V0ZSBhbnkgY29uc3RyYWludHMgYW5kIHBlci1yb3cg dHJpZ2dlcnMuCkBAIC01MDksNiArNTg3LDggQEAgRXhlY1NpbXBsZVJlbGF0aW9uSW5zZXJ0KFJl c3VsdFJlbEluZm8gKnJlc3VsdFJlbEluZm8sCiAJaWYgKCFza2lwX3R1cGxlKQogCXsKIAkJTGlz dAkgICAqcmVjaGVja0luZGV4ZXMgPSBOSUw7CisJCUxpc3QJICAgKmNvbmZsaWN0aW5kZXhlczsK KwkJYm9vbAkJY29uZmxpY3QgPSBmYWxzZTsKIAogCQkvKiBDb21wdXRlIHN0b3JlZCBnZW5lcmF0 ZWQgY29sdW1ucyAqLwogCQlpZiAocmVsLT5yZF9hdHQtPmNvbnN0ciAmJgpAQCAtNTI1LDEwICs2 MDUsNDMgQEAgRXhlY1NpbXBsZVJlbGF0aW9uSW5zZXJ0KFJlc3VsdFJlbEluZm8gKnJlc3VsdFJl bEluZm8sCiAJCS8qIE9LLCBzdG9yZSB0aGUgdHVwbGUgYW5kIGNyZWF0ZSBpbmRleCBlbnRyaWVz IGZvciBpdCAqLwogCQlzaW1wbGVfdGFibGVfdHVwbGVfaW5zZXJ0KHJlc3VsdFJlbEluZm8tPnJp X1JlbGF0aW9uRGVzYywgc2xvdCk7CiAKKwkJY29uZmxpY3RpbmRleGVzID0gcmVzdWx0UmVsSW5m by0+cmlfb25Db25mbGljdEFyYml0ZXJJbmRleGVzOworCiAJCWlmIChyZXN1bHRSZWxJbmZvLT5y aV9OdW1JbmRpY2VzID4gMCkKIAkJCXJlY2hlY2tJbmRleGVzID0gRXhlY0luc2VydEluZGV4VHVw bGVzKHJlc3VsdFJlbEluZm8sCi0JCQkJCQkJCQkJCQkgICBzbG90LCBlc3RhdGUsIGZhbHNlLCBm YWxzZSwKLQkJCQkJCQkJCQkJCSAgIE5VTEwsIE5JTCwgZmFsc2UpOworCQkJCQkJCQkJCQkJICAg c2xvdCwgZXN0YXRlLCBmYWxzZSwKKwkJCQkJCQkJCQkJCSAgIGNvbmZsaWN0aW5kZXhlcywgJmNv bmZsaWN0LAorCQkJCQkJCQkJCQkJICAgY29uZmxpY3RpbmRleGVzLCBmYWxzZSk7CisKKwkJLyog UmUtY2hlY2sgYWxsIHRoZSB1bmlxdWUgaW5kZXhlcyBmb3IgcG90ZW50aWFsIGNvbmZsaWN0cyAq LworCQlmb3JlYWNoX29pZCh1bmlxdWVpZHgsIChjb25mbGljdCA/IGNvbmZsaWN0aW5kZXhlcyA6 IE5JTCkpCisJCXsKKwkJCVR1cGxlVGFibGVTbG90ICpjb25mbGljdHNsb3Q7CisKKwkJCS8qCisJ CQkgKiBSZXBvcnRzIHRoZSBjb25mbGljdCBpZiBhbnkuCisJCQkgKgorCQkJICogSGVyZSwgd2Ug YXR0ZW1wdCB0byBmaW5kIHRoZSBjb25mbGljdCB0dXBsZS4gVGhpcyBvcGVyYXRpb24gbWF5CisJ CQkgKiBzZWVtIHJlZHVuZGFudCB3aXRoIHRoZSB1bmlxdWUgdmlvbGF0aW9uIGNoZWNrIG9mIGlu ZGV4YW0sIGJ1dAorCQkJICogc2luY2Ugd2UgcGVyZm9ybSB0aGlzIG9ubHkgd2hlbiB3ZSBhcmUg ZGV0ZWN0aW5nIGNvbmZsaWN0IGluCisJCQkgKiBsb2dpY2FsIHJlcGxpY2F0aW9uIGFuZCBlbmNv dW50ZXJpbmcgcG90ZW50aWFsIGNvbmZsaWN0cyB3aXRoCisJCQkgKiBhbnkgdW5pcXVlIGluZGV4 IGNvbnN0cmFpbnRzICh3aGljaCBzaG91bGQgbm90IGJlIGZyZXF1ZW50KSwgc28KKwkJCSAqIGl0 J3Mgb2suIE1vcmVvdmVyLCB1cG9uIGRldGVjdGluZyBhIGNvbmZsaWN0LCB3ZSB3aWxsIHJlcG9y dCBhbgorCQkJICogRVJST1IgYW5kIHJlc3RhcnQgdGhlIGxvZ2ljYWwgcmVwbGljYXRpb24sIHNv IHRoZSBhZGRpdGlvbmFsCisJCQkgKiBjb3N0IG9mIGZpbmRpbmcgdGhlIHR1cGxlIHNob3VsZCBi ZSBhY2NlcHRhYmxlIGluIHRoaXMgY2FzZS4KKwkJCSAqLworCQkJaWYgKGxpc3RfbWVtYmVyX29p ZChyZWNoZWNrSW5kZXhlcywgdW5pcXVlaWR4KSAmJgorCQkJCUZpbmRDb25mbGljdFR1cGxlKHJl c3VsdFJlbEluZm8sIGVzdGF0ZSwgdW5pcXVlaWR4LCBzbG90LCAmY29uZmxpY3RzbG90KSkKKwkJ CXsKKwkJCQlSZXBPcmlnaW5JZCBvcmlnaW47CisJCQkJVGltZXN0YW1wVHogY29tbWl0dHM7CisJ CQkJVHJhbnNhY3Rpb25JZCB4bWluOworCisJCQkJR2V0VHVwbGVDb21taXRUcyhjb25mbGljdHNs b3QsICZ4bWluLCAmb3JpZ2luLCAmY29tbWl0dHMpOworCQkJCVJlcG9ydEFwcGx5Q29uZmxpY3Qo RVJST1IsIENUX0lOU0VSVF9FWElTVFMsIHJlbCwgdW5pcXVlaWR4LAorCQkJCQkJCQkJeG1pbiwg b3JpZ2luLCBjb21taXR0cywgY29uZmxpY3RzbG90KTsKKwkJCX0KKwkJfQogCiAJCS8qIEFGVEVS IFJPVyBJTlNFUlQgVHJpZ2dlcnMgKi8KIAkJRXhlY0FSSW5zZXJ0VHJpZ2dlcnMoZXN0YXRlLCBy ZXN1bHRSZWxJbmZvLCBzbG90LApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24v bG9naWNhbC9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvTWFrZWZp bGUKaW5kZXggYmEwM2VlZmYxYy4uMWUwOGJiYmQ0ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vbG9naWNhbC9NYWtlZmlsZQorKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlv bi9sb2dpY2FsL01ha2VmaWxlCkBAIC0xNiw2ICsxNiw3IEBAIG92ZXJyaWRlIENQUEZMQUdTIDo9 IC1JJChzcmNkaXIpICQoQ1BQRkxBR1MpCiAKIE9CSlMgPSBcCiAJYXBwbHlwYXJhbGxlbHdvcmtl ci5vIFwKKwljb25mbGljdC5vIFwKIAlkZWNvZGUubyBcCiAJbGF1bmNoZXIubyBcCiAJbG9naWNh bC5vIFwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvY29uZmxp Y3QuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvY29uZmxpY3QuYwpuZXcgZmls ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5mMjRmMDQ4MDU0Ci0tLSAvZGV2L251bGwK KysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9jb25mbGljdC5jCkBAIC0wLDAg KzEsMTg3IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIGNvbmZsaWN0LmMKKyAqCSAgIEZ1bmN0 aW9uYWxpdHkgZm9yIGRldGVjdGluZyBhbmQgbG9nZ2luZyBjb25mbGljdHMuCisgKgorICogQ29w eXJpZ2h0IChjKSAyMDI0LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICoK KyAqIElERU5USUZJQ0FUSU9OCisgKgkgIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwv Y29uZmxpY3QuYworICoKKyAqIFRoaXMgZmlsZSBjb250YWlucyB0aGUgY29kZSBmb3IgZGV0ZWN0 aW5nIGFuZCBsb2dnaW5nIGNvbmZsaWN0cyBvbgorICogdGhlIHN1YnNjcmliZXIgZHVyaW5nIGxv Z2ljYWwgcmVwbGljYXRpb24uCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisjaW5jbHVkZSAi cG9zdGdyZXMuaCIKKworI2luY2x1ZGUgImFjY2Vzcy9jb21taXRfdHMuaCIKKyNpbmNsdWRlICJy ZXBsaWNhdGlvbi9jb25mbGljdC5oIgorI2luY2x1ZGUgInJlcGxpY2F0aW9uL29yaWdpbi5oIgor I2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL3JlbC5oIgorCitj b25zdCBjaGFyICpjb25zdCBDb25mbGljdFR5cGVOYW1lc1tdID0geworCVtDVF9JTlNFUlRfRVhJ U1RTXSA9ICJpbnNlcnRfZXhpc3RzIiwKKwlbQ1RfVVBEQVRFX0RJRkZFUl0gPSAidXBkYXRlX2Rp ZmZlciIsCisJW0NUX1VQREFURV9NSVNTSU5HXSA9ICJ1cGRhdGVfbWlzc2luZyIsCisJW0NUX0RF TEVURV9NSVNTSU5HXSA9ICJkZWxldGVfbWlzc2luZyIKK307CisKK3N0YXRpYyBjaGFyICpidWls ZF9pbmRleF92YWx1ZV9kZXNjKE9pZCBpbmRleG9pZCwgVHVwbGVUYWJsZVNsb3QgKmNvbmZsaWN0 c2xvdCk7CitzdGF0aWMgaW50CWVycmRldGFpbF9hcHBseV9jb25mbGljdChDb25mbGljdFR5cGUg dHlwZSwgT2lkIGNvbmZsaWN0aWR4LAorCQkJCQkJCQkJIFRyYW5zYWN0aW9uSWQgbG9jYWx4bWlu LAorCQkJCQkJCQkJIFJlcE9yaWdpbklkIGxvY2Fsb3JpZ2luLAorCQkJCQkJCQkJIFRpbWVzdGFt cFR6IGxvY2FsdHMsCisJCQkJCQkJCQkgVHVwbGVUYWJsZVNsb3QgKmNvbmZsaWN0c2xvdCk7CisK Ky8qCisgKiBHZXQgdGhlIHhtaW4gYW5kIGNvbW1pdCB0aW1lc3RhbXAgZGF0YSAob3JpZ2luIGFu ZCB0aW1lc3RhbXApIGFzc29jaWF0ZWQKKyAqIHdpdGggdGhlIHByb3ZpZGVkIGxvY2FsIHR1cGxl LgorICoKKyAqIFJldHVybiB0cnVlIGlmIHRoZSBjb21taXQgdGltZXN0YW1wIGRhdGEgd2FzIGZv dW5kLCBmYWxzZSBvdGhlcndpc2UuCisgKi8KK2Jvb2wKK0dldFR1cGxlQ29tbWl0VHMoVHVwbGVU YWJsZVNsb3QgKmxvY2Fsc2xvdCwgVHJhbnNhY3Rpb25JZCAqeG1pbiwKKwkJCQkgUmVwT3JpZ2lu SWQgKmxvY2Fsb3JpZ2luLCBUaW1lc3RhbXBUeiAqbG9jYWx0cykKK3sKKwlEYXR1bQkJeG1pbkRh dHVtOworCWJvb2wJCWlzbnVsbDsKKworCXhtaW5EYXR1bSA9IHNsb3RfZ2V0c3lzYXR0cihsb2Nh bHNsb3QsIE1pblRyYW5zYWN0aW9uSWRBdHRyaWJ1dGVOdW1iZXIsCisJCQkJCQkJCSZpc251bGwp OworCSp4bWluID0gRGF0dW1HZXRUcmFuc2FjdGlvbklkKHhtaW5EYXR1bSk7CisJQXNzZXJ0KCFp c251bGwpOworCisJLyoKKwkgKiBUaGUgY29tbWl0IHRpbWVzdGFtcCBkYXRhIGlzIG5vdCBhdmFp bGFibGUgaWYgdHJhY2tfY29tbWl0X3RpbWVzdGFtcCBpcworCSAqIGRpc2FibGVkLgorCSAqLwor CWlmICghdHJhY2tfY29tbWl0X3RpbWVzdGFtcCkKKwl7CisJCSpsb2NhbG9yaWdpbiA9IEludmFs aWRSZXBPcmlnaW5JZDsKKwkJKmxvY2FsdHMgPSAwOworCQlyZXR1cm4gZmFsc2U7CisJfQorCisJ cmV0dXJuIFRyYW5zYWN0aW9uSWRHZXRDb21taXRUc0RhdGEoKnhtaW4sIGxvY2FsdHMsIGxvY2Fs b3JpZ2luKTsKK30KKworLyoKKyAqIFJlcG9ydCBhIGNvbmZsaWN0IHdoZW4gYXBwbHlpbmcgcmVt b3RlIGNoYW5nZXMuCisgKi8KK3ZvaWQKK1JlcG9ydEFwcGx5Q29uZmxpY3QoaW50IGVsZXZlbCwg Q29uZmxpY3RUeXBlIHR5cGUsIFJlbGF0aW9uIGxvY2FscmVsLAorCQkJCQlPaWQgY29uZmxpY3Rp ZHgsIFRyYW5zYWN0aW9uSWQgbG9jYWx4bWluLAorCQkJCQlSZXBPcmlnaW5JZCBsb2NhbG9yaWdp biwgVGltZXN0YW1wVHogbG9jYWx0cywKKwkJCQkJVHVwbGVUYWJsZVNsb3QgKmNvbmZsaWN0c2xv dCkKK3sKKwllcmVwb3J0KGVsZXZlbCwKKwkJCWVycmNvZGUoRVJSQ09ERV9JTlRFR1JJVFlfQ09O U1RSQUlOVF9WSU9MQVRJT04pLAorCQkJZXJybXNnKCJjb25mbGljdCAlcyBkZXRlY3RlZCBvbiBy ZWxhdGlvbiBcIiVzLiVzXCIiLAorCQkJCSAgIENvbmZsaWN0VHlwZU5hbWVzW3R5cGVdLAorCQkJ CSAgIGdldF9uYW1lc3BhY2VfbmFtZShSZWxhdGlvbkdldE5hbWVzcGFjZShsb2NhbHJlbCkpLAor CQkJCSAgIFJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKGxvY2FscmVsKSksCisJCQllcnJkZXRhaWxf YXBwbHlfY29uZmxpY3QodHlwZSwgY29uZmxpY3RpZHgsIGxvY2FseG1pbiwgbG9jYWxvcmlnaW4s CisJCQkJCQkJCQkgbG9jYWx0cywgY29uZmxpY3RzbG90KSk7Cit9CisKKy8qCisgKiBGaW5kIGFs bCB1bmlxdWUgaW5kZXhlcyB0byBjaGVjayBmb3IgYSBjb25mbGljdCBhbmQgc3RvcmUgdGhlbSBp bnRvCisgKiBSZXN1bHRSZWxJbmZvLgorICovCit2b2lkCitJbml0Q29uZmxpY3RJbmRleGVzKFJl c3VsdFJlbEluZm8gKnJlbEluZm8pCit7CisJTGlzdAkgICAqdW5pcXVlSW5kZXhlcyA9IE5JTDsK KworCWZvciAoaW50IGkgPSAwOyBpIDwgcmVsSW5mby0+cmlfTnVtSW5kaWNlczsgaSsrKQorCXsK KwkJUmVsYXRpb24JaW5kZXhSZWxhdGlvbiA9IHJlbEluZm8tPnJpX0luZGV4UmVsYXRpb25EZXNj c1tpXTsKKworCQlpZiAoaW5kZXhSZWxhdGlvbiA9PSBOVUxMKQorCQkJY29udGludWU7CisKKwkJ LyogRGV0ZWN0IGNvbmZsaWN0IG9ubHkgZm9yIHVuaXF1ZSBpbmRleGVzICovCisJCWlmICghcmVs SW5mby0+cmlfSW5kZXhSZWxhdGlvbkluZm9baV0tPmlpX1VuaXF1ZSkKKwkJCWNvbnRpbnVlOwor CisJCS8qIERvbid0IHN1cHBvcnQgY29uZmxpY3QgZGV0ZWN0aW9uIGZvciBkZWZlcnJhYmxlIGlu ZGV4ICovCisJCWlmICghaW5kZXhSZWxhdGlvbi0+cmRfaW5kZXgtPmluZGltbWVkaWF0ZSkKKwkJ CWNvbnRpbnVlOworCisJCXVuaXF1ZUluZGV4ZXMgPSBsYXBwZW5kX29pZCh1bmlxdWVJbmRleGVz LAorCQkJCQkJCQkJUmVsYXRpb25HZXRSZWxpZChpbmRleFJlbGF0aW9uKSk7CisJfQorCisJcmVs SW5mby0+cmlfb25Db25mbGljdEFyYml0ZXJJbmRleGVzID0gdW5pcXVlSW5kZXhlczsKK30KKwor LyoKKyAqIEFkZCBhbiBlcnJkZXRhaWwoKSBsaW5lIHNob3dpbmcgY29uZmxpY3QgZGV0YWlsLgor ICovCitzdGF0aWMgaW50CitlcnJkZXRhaWxfYXBwbHlfY29uZmxpY3QoQ29uZmxpY3RUeXBlIHR5 cGUsIE9pZCBjb25mbGljdGlkeCwKKwkJCQkJCSBUcmFuc2FjdGlvbklkIGxvY2FseG1pbiwgUmVw T3JpZ2luSWQgbG9jYWxvcmlnaW4sCisJCQkJCQkgVGltZXN0YW1wVHogbG9jYWx0cywgVHVwbGVU YWJsZVNsb3QgKmNvbmZsaWN0c2xvdCkKK3sKKwlzd2l0Y2ggKHR5cGUpCisJeworCQljYXNlIENU X0lOU0VSVF9FWElTVFM6CisJCQl7CisJCQkJLyoKKwkJCQkgKiBCdWxpZCB0aGUgaW5kZXggdmFs dWUgc3RyaW5nLiBJZiB0aGUgcmV0dXJuIHZhbHVlIGlzIE5VTEwsCisJCQkJICogaXQgaW5kaWNh dGVzIHRoYXQgdGhlIGN1cnJlbnQgdXNlciBsYWNrcyBwZXJtaXNzaW9ucyB0bworCQkJCSAqIHZp ZXcgYWxsIHRoZSBjb2x1bW5zIGludm9sdmVkLgorCQkJCSAqLworCQkJCWNoYXIJICAgKmluZGV4 X3ZhbHVlID0gYnVpbGRfaW5kZXhfdmFsdWVfZGVzYyhjb25mbGljdGlkeCwKKwkJCQkJCQkJCQkJ CQkJCQkgY29uZmxpY3RzbG90KTsKKworCQkJCWlmIChpbmRleF92YWx1ZSAmJiBsb2NhbHRzKQor CQkJCQlyZXR1cm4gZXJyZGV0YWlsKCJLZXkgJXMgYWxyZWFkeSBleGlzdHMgaW4gdW5pcXVlIGlu ZGV4IFwiJXNcIiwgd2hpY2ggd2FzIG1vZGlmaWVkIGJ5IG9yaWdpbiAldSBpbiB0cmFuc2FjdGlv biAldSBhdCAlcy4iLAorCQkJCQkJCQkJIGluZGV4X3ZhbHVlLCBnZXRfcmVsX25hbWUoY29uZmxp Y3RpZHgpLCBsb2NhbG9yaWdpbiwKKwkJCQkJCQkJCSBsb2NhbHhtaW4sIHRpbWVzdGFtcHR6X3Rv X3N0cihsb2NhbHRzKSk7CisJCQkJZWxzZSBpZiAoaW5kZXhfdmFsdWUgJiYgIWxvY2FsdHMpCisJ CQkJCXJldHVybiBlcnJkZXRhaWwoIktleSAlcyBhbHJlYWR5IGV4aXN0cyBpbiB1bmlxdWUgaW5k ZXggXCIlc1wiLCB3aGljaCB3YXMgbW9kaWZpZWQgaW4gdHJhbnNhY3Rpb24gJXUuIiwKKwkJCQkJ CQkJCSBpbmRleF92YWx1ZSwgZ2V0X3JlbF9uYW1lKGNvbmZsaWN0aWR4KSwgbG9jYWx4bWluKTsK KwkJCQllbHNlCisJCQkJCXJldHVybiBlcnJkZXRhaWwoIktleSBhbHJlYWR5IGV4aXN0cyBpbiB1 bmlxdWUgaW5kZXggXCIlc1wiLiIsCisJCQkJCQkJCQkgZ2V0X3JlbF9uYW1lKGNvbmZsaWN0aWR4 KSk7CisJCQl9CisJCWNhc2UgQ1RfVVBEQVRFX0RJRkZFUjoKKwkJCXJldHVybiBlcnJkZXRhaWwo IlVwZGF0aW5nIGEgcm93IHRoYXQgd2FzIG1vZGlmaWVkIGJ5IGEgZGlmZmVyZW50IG9yaWdpbiAl dSBpbiB0cmFuc2FjdGlvbiAldSBhdCAlcy4iLAorCQkJCQkJCSBsb2NhbG9yaWdpbiwgbG9jYWx4 bWluLCB0aW1lc3RhbXB0el90b19zdHIobG9jYWx0cykpOworCQljYXNlIENUX1VQREFURV9NSVNT SU5HOgorCQkJcmV0dXJuIGVycmRldGFpbCgiRGlkIG5vdCBmaW5kIHRoZSByb3cgdG8gYmUgdXBk YXRlZC4iKTsKKwkJY2FzZSBDVF9ERUxFVEVfTUlTU0lORzoKKwkJCXJldHVybiBlcnJkZXRhaWwo IkRpZCBub3QgZmluZCB0aGUgcm93IHRvIGJlIGRlbGV0ZWQuIik7CisJfQorCisJcmV0dXJuIDA7 CQkJCQkvKiBzaWxlbmNlIGNvbXBpbGVyIHdhcm5pbmcgKi8KK30KKworLyoKKyAqIEhlbHBlciBm dW5jdGlvbnMgdG8gY29uc3RydWN0IGEgc3RyaW5nIGRlc2NyaWJpbmcgdGhlIGNvbnRlbnRzIG9m IGFuIGluZGV4CisgKiBlbnRyeS4gU2VlIEJ1aWxkSW5kZXhWYWx1ZURlc2NyaXB0aW9uIGZvciBk ZXRhaWxzLgorICovCitzdGF0aWMgY2hhciAqCitidWlsZF9pbmRleF92YWx1ZV9kZXNjKE9pZCBp bmRleG9pZCwgVHVwbGVUYWJsZVNsb3QgKmNvbmZsaWN0c2xvdCkKK3sKKwljaGFyCSAgICpjb25m bGljdF9yb3c7CisJUmVsYXRpb24JaW5kZXhEZXNjOworCisJaWYgKCFjb25mbGljdHNsb3QpCisJ CXJldHVybiBOVUxMOworCisJLyogQXNzdW1lIHRoZSBpbmRleCBoYXMgYmVlbiBsb2NrZWQgKi8K KwlpbmRleERlc2MgPSBpbmRleF9vcGVuKGluZGV4b2lkLCBOb0xvY2spOworCisJc2xvdF9nZXRh bGxhdHRycyhjb25mbGljdHNsb3QpOworCisJY29uZmxpY3Rfcm93ID0gQnVpbGRJbmRleFZhbHVl RGVzY3JpcHRpb24oaW5kZXhEZXNjLAorCQkJCQkJCQkJCQkgIGNvbmZsaWN0c2xvdC0+dHRzX3Zh bHVlcywKKwkJCQkJCQkJCQkJICBjb25mbGljdHNsb3QtPnR0c19pc251bGwpOworCisJaW5kZXhf Y2xvc2UoaW5kZXhEZXNjLCBOb0xvY2spOworCisJcmV0dXJuIGNvbmZsaWN0X3JvdzsKK30KZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbWVzb24uYnVpbGQgYi9z cmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL21lc29uLmJ1aWxkCmluZGV4IDNkZWMzNmE2 ZGUuLjNkMzYyNDlkOGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2lj YWwvbWVzb24uYnVpbGQKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9tZXNv bi5idWlsZApAQCAtMiw2ICsyLDcgQEAKIAogYmFja2VuZF9zb3VyY2VzICs9IGZpbGVzKAogICAn YXBwbHlwYXJhbGxlbHdvcmtlci5jJywKKyAgJ2NvbmZsaWN0LmMnLAogICAnZGVjb2RlLmMnLAog ICAnbGF1bmNoZXIuYycsCiAgICdsb2dpY2FsLmMnLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xv Z2ljYWwvd29ya2VyLmMKaW5kZXggYjVhODBmZTNlOC4uYWY3M2UwOWIwMSAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC93b3JrZXIuYworKysgYi9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9sb2dpY2FsL3dvcmtlci5jCkBAIC0xNjcsNiArMTY3LDcgQEAKICNpbmNs dWRlICJwb3N0bWFzdGVyL2Jnd29ya2VyLmgiCiAjaW5jbHVkZSAicG9zdG1hc3Rlci9pbnRlcnJ1 cHQuaCIKICNpbmNsdWRlICJwb3N0bWFzdGVyL3dhbHdyaXRlci5oIgorI2luY2x1ZGUgInJlcGxp Y2F0aW9uL2NvbmZsaWN0LmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vbG9naWNhbGxhdW5jaGVy LmgiCiAjaW5jbHVkZSAicmVwbGljYXRpb24vbG9naWNhbHByb3RvLmgiCiAjaW5jbHVkZSAicmVw bGljYXRpb24vbG9naWNhbHJlbGF0aW9uLmgiCkBAIC0yNDYxLDcgKzI0NjIsMTAgQEAgYXBwbHlf aGFuZGxlX2luc2VydF9pbnRlcm5hbChBcHBseUV4ZWN1dGlvbkRhdGEgKmVkYXRhLAogCUVTdGF0 ZQkgICAqZXN0YXRlID0gZWRhdGEtPmVzdGF0ZTsKIAogCS8qIFdlIG11c3Qgb3BlbiBpbmRleGVz IGhlcmUuICovCi0JRXhlY09wZW5JbmRpY2VzKHJlbGluZm8sIGZhbHNlKTsKKwlFeGVjT3Blbklu ZGljZXMocmVsaW5mbywgTXlTdWJzY3JpcHRpb24tPmRldGVjdGNvbmZsaWN0KTsKKworCWlmIChN eVN1YnNjcmlwdGlvbi0+ZGV0ZWN0Y29uZmxpY3QpCisJCUluaXRDb25mbGljdEluZGV4ZXMocmVs aW5mbyk7CiAKIAkvKiBEbyB0aGUgaW5zZXJ0LiAqLwogCVRhcmdldFByaXZpbGVnZXNDaGVjayhy ZWxpbmZvLT5yaV9SZWxhdGlvbkRlc2MsIEFDTF9JTlNFUlQpOwpAQCAtMjY2NCw2ICsyNjY4LDIw IEBAIGFwcGx5X2hhbmRsZV91cGRhdGVfaW50ZXJuYWwoQXBwbHlFeGVjdXRpb25EYXRhICplZGF0 YSwKIAkgKi8KIAlpZiAoZm91bmQpCiAJeworCQlSZXBPcmlnaW5JZCBsb2NhbG9yaWdpbjsKKwkJ VHJhbnNhY3Rpb25JZCBsb2NhbHhtaW47CisJCVRpbWVzdGFtcFR6IGxvY2FsdHM7CisKKwkJLyoK KwkJICogSWYgY29uZmxpY3QgZGV0ZWN0aW9uIGlzIGVuYWJsZWQsIGNoZWNrIHdoZXRoZXIgdGhl IGxvY2FsIHR1cGxlIHdhcworCQkgKiBtb2RpZmllZCBieSBhIGRpZmZlcmVudCBvcmlnaW4uIElm IGRldGVjdGVkLCByZXBvcnQgdGhlIGNvbmZsaWN0LgorCQkgKi8KKwkJaWYgKE15U3Vic2NyaXB0 aW9uLT5kZXRlY3Rjb25mbGljdCAmJgorCQkJR2V0VHVwbGVDb21taXRUcyhsb2NhbHNsb3QsICZs b2NhbHhtaW4sICZsb2NhbG9yaWdpbiwgJmxvY2FsdHMpICYmCisJCQlsb2NhbG9yaWdpbiAhPSBy ZXBsb3JpZ2luX3Nlc3Npb25fb3JpZ2luKQorCQkJUmVwb3J0QXBwbHlDb25mbGljdChMT0csIENU X1VQREFURV9ESUZGRVIsIGxvY2FscmVsLCBJbnZhbGlkT2lkLAorCQkJCQkJCQlsb2NhbHhtaW4s IGxvY2Fsb3JpZ2luLCBsb2NhbHRzLCBOVUxMKTsKKwogCQkvKiBQcm9jZXNzIGFuZCBzdG9yZSBy ZW1vdGUgdHVwbGUgaW4gdGhlIHNsb3QgKi8KIAkJb2xkY3R4ID0gTWVtb3J5Q29udGV4dFN3aXRj aFRvKEdldFBlclR1cGxlTWVtb3J5Q29udGV4dChlc3RhdGUpKTsKIAkJc2xvdF9tb2RpZnlfZGF0 YShyZW1vdGVzbG90LCBsb2NhbHNsb3QsIHJlbG1hcGVudHJ5LCBuZXd0dXApOwpAQCAtMjY4MSwx MyArMjY5OSwxMCBAQCBhcHBseV9oYW5kbGVfdXBkYXRlX2ludGVybmFsKEFwcGx5RXhlY3V0aW9u RGF0YSAqZWRhdGEsCiAJCS8qCiAJCSAqIFRoZSB0dXBsZSB0byBiZSB1cGRhdGVkIGNvdWxkIG5v dCBiZSBmb3VuZC4gIERvIG5vdGhpbmcgZXhjZXB0IGZvcgogCQkgKiBlbWl0dGluZyBhIGxvZyBt ZXNzYWdlLgotCQkgKgotCQkgKiBYWFggc2hvdWxkIHRoaXMgYmUgcHJvbW90ZWQgdG8gZXJlcG9y dChMT0cpIHBlcmhhcHM/CiAJCSAqLwotCQllbG9nKERFQlVHMSwKLQkJCSAibG9naWNhbCByZXBs aWNhdGlvbiBkaWQgbm90IGZpbmQgcm93IHRvIGJlIHVwZGF0ZWQgIgotCQkJICJpbiByZXBsaWNh dGlvbiB0YXJnZXQgcmVsYXRpb24gXCIlc1wiIiwKLQkJCSBSZWxhdGlvbkdldFJlbGF0aW9uTmFt ZShsb2NhbHJlbCkpOworCQlpZiAoTXlTdWJzY3JpcHRpb24tPmRldGVjdGNvbmZsaWN0KQorCQkJ UmVwb3J0QXBwbHlDb25mbGljdChMT0csIENUX1VQREFURV9NSVNTSU5HLCBsb2NhbHJlbCwgSW52 YWxpZE9pZCwKKwkJCQkJCQkJSW52YWxpZFRyYW5zYWN0aW9uSWQsIEludmFsaWRSZXBPcmlnaW5J ZCwgMCwgTlVMTCk7CiAJfQogCiAJLyogQ2xlYW51cC4gKi8KQEAgLTI4MjEsMTMgKzI4MzYsMTAg QEAgYXBwbHlfaGFuZGxlX2RlbGV0ZV9pbnRlcm5hbChBcHBseUV4ZWN1dGlvbkRhdGEgKmVkYXRh LAogCQkvKgogCQkgKiBUaGUgdHVwbGUgdG8gYmUgZGVsZXRlZCBjb3VsZCBub3QgYmUgZm91bmQu ICBEbyBub3RoaW5nIGV4Y2VwdCBmb3IKIAkJICogZW1pdHRpbmcgYSBsb2cgbWVzc2FnZS4KLQkJ ICoKLQkJICogWFhYIHNob3VsZCB0aGlzIGJlIHByb21vdGVkIHRvIGVyZXBvcnQoTE9HKSBwZXJo YXBzPwogCQkgKi8KLQkJZWxvZyhERUJVRzEsCi0JCQkgImxvZ2ljYWwgcmVwbGljYXRpb24gZGlk IG5vdCBmaW5kIHJvdyB0byBiZSBkZWxldGVkICIKLQkJCSAiaW4gcmVwbGljYXRpb24gdGFyZ2V0 IHJlbGF0aW9uIFwiJXNcIiIsCi0JCQkgUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUobG9jYWxyZWwp KTsKKwkJaWYgKE15U3Vic2NyaXB0aW9uLT5kZXRlY3Rjb25mbGljdCkKKwkJCVJlcG9ydEFwcGx5 Q29uZmxpY3QoTE9HLCBDVF9ERUxFVEVfTUlTU0lORywgbG9jYWxyZWwsIEludmFsaWRPaWQsCisJ CQkJCQkJCUludmFsaWRUcmFuc2FjdGlvbklkLCBJbnZhbGlkUmVwT3JpZ2luSWQsIDAsIE5VTEwp OwogCX0KIAogCS8qIENsZWFudXAuICovCkBAIC0zMDA1LDEzICszMDE3LDEzIEBAIGFwcGx5X2hh bmRsZV90dXBsZV9yb3V0aW5nKEFwcGx5RXhlY3V0aW9uRGF0YSAqZWRhdGEsCiAJCQkJCS8qCiAJ CQkJCSAqIFRoZSB0dXBsZSB0byBiZSB1cGRhdGVkIGNvdWxkIG5vdCBiZSBmb3VuZC4gIERvIG5v dGhpbmcKIAkJCQkJICogZXhjZXB0IGZvciBlbWl0dGluZyBhIGxvZyBtZXNzYWdlLgotCQkJCQkg KgotCQkJCQkgKiBYWFggc2hvdWxkIHRoaXMgYmUgcHJvbW90ZWQgdG8gZXJlcG9ydChMT0cpIHBl cmhhcHM/CiAJCQkJCSAqLwotCQkJCQllbG9nKERFQlVHMSwKLQkJCQkJCSAibG9naWNhbCByZXBs aWNhdGlvbiBkaWQgbm90IGZpbmQgcm93IHRvIGJlIHVwZGF0ZWQgIgotCQkJCQkJICJpbiByZXBs aWNhdGlvbiB0YXJnZXQgcmVsYXRpb24ncyBwYXJ0aXRpb24gXCIlc1wiIiwKLQkJCQkJCSBSZWxh dGlvbkdldFJlbGF0aW9uTmFtZShwYXJ0cmVsKSk7CisJCQkJCWlmIChNeVN1YnNjcmlwdGlvbi0+ ZGV0ZWN0Y29uZmxpY3QpCisJCQkJCQlSZXBvcnRBcHBseUNvbmZsaWN0KExPRywgQ1RfVVBEQVRF X01JU1NJTkcsCisJCQkJCQkJCQkJCXBhcnRyZWwsIEludmFsaWRPaWQsCisJCQkJCQkJCQkJCUlu dmFsaWRUcmFuc2FjdGlvbklkLAorCQkJCQkJCQkJCQlJbnZhbGlkUmVwT3JpZ2luSWQsIDAsIE5V TEwpOworCiAJCQkJCXJldHVybjsKIAkJCQl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IGUzMjQwNzA4Mjgu LmM2YjY3YzY5MmQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIv c3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtNDczOSw2ICs0NzM5LDcgQEAgZ2V0U3Vic2Ny aXB0aW9ucyhBcmNoaXZlICpmb3V0KQogCWludAkJCWlfc3Vib3JpZ2lucmVtb3RlbHNuOwogCWlu dAkJCWlfc3ViZW5hYmxlZDsKIAlpbnQJCQlpX3N1YmZhaWxvdmVyOworCWludAkJCWlfc3ViZGV0 ZWN0Y29uZmxpY3Q7CiAJaW50CQkJaSwKIAkJCQludHVwczsKIApAQCAtNDgxMSwxMSArNDgxMiwx NyBAQCBnZXRTdWJzY3JpcHRpb25zKEFyY2hpdmUgKmZvdXQpCiAKIAlpZiAoZm91dC0+cmVtb3Rl VmVyc2lvbiA+PSAxNzAwMDApCiAJCWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LAotCQkJCQkJ CSAiIHMuc3ViZmFpbG92ZXJcbiIpOworCQkJCQkJCSAiIHMuc3ViZmFpbG92ZXIsXG4iKTsKIAll bHNlCiAJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LAotCQkJCQkJICAiIGZhbHNlIEFTIHN1YmZh aWxvdmVyXG4iKTsKKwkJCQkJCSAgIiBmYWxzZSBBUyBzdWJmYWlsb3ZlcixcbiIpOwogCisJaWYg KGZvdXQtPnJlbW90ZVZlcnNpb24gPj0gMTcwMDAwKQorCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihx dWVyeSwKKwkJCQkJCQkgIiBzLnN1YmRldGVjdGNvbmZsaWN0XG4iKTsKKwllbHNlCisJCWFwcGVu ZFBRRXhwQnVmZmVyKHF1ZXJ5LAorCQkJCQkJICAiIGZhbHNlIEFTIHN1YmRldGVjdGNvbmZsaWN0 XG4iKTsKIAlhcHBlbmRQUUV4cEJ1ZmZlclN0cihxdWVyeSwKIAkJCQkJCSAiRlJPTSBwZ19zdWJz Y3JpcHRpb24gc1xuIik7CiAKQEAgLTQ4NTQsNiArNDg2MSw3IEBAIGdldFN1YnNjcmlwdGlvbnMo QXJjaGl2ZSAqZm91dCkKIAlpX3N1Ym9yaWdpbnJlbW90ZWxzbiA9IFBRZm51bWJlcihyZXMsICJz dWJvcmlnaW5yZW1vdGVsc24iKTsKIAlpX3N1YmVuYWJsZWQgPSBQUWZudW1iZXIocmVzLCAic3Vi ZW5hYmxlZCIpOwogCWlfc3ViZmFpbG92ZXIgPSBQUWZudW1iZXIocmVzLCAic3ViZmFpbG92ZXIi KTsKKwlpX3N1YmRldGVjdGNvbmZsaWN0ID0gUFFmbnVtYmVyKHJlcywgInN1YmRldGVjdGNvbmZs aWN0Iik7CiAKIAlzdWJpbmZvID0gcGdfbWFsbG9jKG50dXBzICogc2l6ZW9mKFN1YnNjcmlwdGlv bkluZm8pKTsKIApAQCAtNDkwMCw2ICs0OTA4LDggQEAgZ2V0U3Vic2NyaXB0aW9ucyhBcmNoaXZl ICpmb3V0KQogCQkJcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3N1YmVuYWJsZWQpKTsK IAkJc3ViaW5mb1tpXS5zdWJmYWlsb3ZlciA9CiAJCQlwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMs IGksIGlfc3ViZmFpbG92ZXIpKTsKKwkJc3ViaW5mb1tpXS5zdWJkZXRlY3Rjb25mbGljdCA9CisJ CQlwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGksIGlfc3ViZGV0ZWN0Y29uZmxpY3QpKTsKIAog CQkvKiBEZWNpZGUgd2hldGhlciB3ZSB3YW50IHRvIGR1bXAgaXQgKi8KIAkJc2VsZWN0RHVtcGFi bGVPYmplY3QoJihzdWJpbmZvW2ldLmRvYmopLCBmb3V0KTsKQEAgLTUxNDAsNiArNTE1MCw5IEBA IGR1bXBTdWJzY3JpcHRpb24oQXJjaGl2ZSAqZm91dCwgY29uc3QgU3Vic2NyaXB0aW9uSW5mbyAq c3ViaW5mbykKIAlpZiAoc3RyY21wKHN1YmluZm8tPnN1YmZhaWxvdmVyLCAidCIpID09IDApCiAJ CWFwcGVuZFBRRXhwQnVmZmVyU3RyKHF1ZXJ5LCAiLCBmYWlsb3ZlciA9IHRydWUiKTsKIAorCWlm IChzdHJjbXAoc3ViaW5mby0+c3ViZGV0ZWN0Y29uZmxpY3QsICJ0IikgPT0gMCkKKwkJYXBwZW5k UFFFeHBCdWZmZXJTdHIocXVlcnksICIsIGRldGVjdF9jb25mbGljdCA9IHRydWUiKTsKKwogCWlm IChzdHJjbXAoc3ViaW5mby0+c3Vic3luY2NvbW1pdCwgIm9mZiIpICE9IDApCiAJCWFwcGVuZFBR RXhwQnVmZmVyKHF1ZXJ5LCAiLCBzeW5jaHJvbm91c19jb21taXQgPSAlcyIsIGZtdElkKHN1Ymlu Zm8tPnN1YnN5bmNjb21taXQpKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKaW5kZXggODY1ODIzODY4Zi4uMDJhYTRh NmYzMiAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAorKysgYi9zcmMvYmlu L3BnX2R1bXAvcGdfZHVtcC5oCkBAIC02NzEsNiArNjcxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1N1 YnNjcmlwdGlvbkluZm8KIAljaGFyCSAgICpzdWJvcmlnaW47CiAJY2hhcgkgICAqc3Vib3JpZ2lu cmVtb3RlbHNuOwogCWNoYXIJICAgKnN1YmZhaWxvdmVyOworCWNoYXIJICAgKnN1YmRldGVjdGNv bmZsaWN0OwogfSBTdWJzY3JpcHRpb25JbmZvOwogCiAvKgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9w c3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCBmNjdiZjBiODky Li4wNDcyZmUyZTg3IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9z cmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtNjUyOSw3ICs2NTI5LDcgQEAgZGVzY3JpYmVTdWJz Y3JpcHRpb25zKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAlwcmludFF1ZXJ5 T3B0IG15b3B0ID0gcHNldC5wb3B0OwogCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1 bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsCiAJCWZhbHNlLCBmYWxzZSwgZmFs c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLAotCWZh bHNlfTsKKwlmYWxzZSwgZmFsc2V9OwogCiAJaWYgKHBzZXQuc3ZlcnNpb24gPCAxMDAwMDApCiAJ ewpAQCAtNjU5Nyw2ICs2NTk3LDEwIEBAIGRlc2NyaWJlU3Vic2NyaXB0aW9ucyhjb25zdCBjaGFy ICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJCQlhcHBlbmRQUUV4cEJ1ZmZlcigmYnVmLAogCQkJ CQkJCSAgIiwgc3ViZmFpbG92ZXIgQVMgXCIlc1wiXG4iLAogCQkJCQkJCSAgZ2V0dGV4dF9ub29w KCJGYWlsb3ZlciIpKTsKKwkJaWYgKHBzZXQuc3ZlcnNpb24gPj0gMTcwMDAwKQorCQkJYXBwZW5k UFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCQkgICIsIHN1YmRldGVjdGNvbmZsaWN0IEFTIFwiJXNc IlxuIiwKKwkJCQkJCQkgIGdldHRleHRfbm9vcCgiRGV0ZWN0IGNvbmZsaWN0IikpOwogCiAJCWFw cGVuZFBRRXhwQnVmZmVyKCZidWYsCiAJCQkJCQkgICIsICBzdWJzeW5jY29tbWl0IEFTIFwiJXNc IlxuIgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5jIGIvc3JjL2Jpbi9w c3FsL3RhYi1jb21wbGV0ZS5jCmluZGV4IGQ0NTNlMjI0ZDkuLjIxOWZhYzdlNzEgMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNv bXBsZXRlLmMKQEAgLTE5NDYsOSArMTk0NiwxMCBAQCBwc3FsX2NvbXBsZXRpb24oY29uc3QgY2hh ciAqdGV4dCwgaW50IHN0YXJ0LCBpbnQgZW5kKQogCQlDT01QTEVURV9XSVRIKCIoIiwgIlBVQkxJ Q0FUSU9OIik7CiAJLyogQUxURVIgU1VCU0NSSVBUSU9OIDxuYW1lPiBTRVQgKCAqLwogCWVsc2Ug aWYgKEhlYWRNYXRjaGVzKCJBTFRFUiIsICJTVUJTQ1JJUFRJT04iLCBNYXRjaEFueSkgJiYgVGFp bE1hdGNoZXMoIlNFVCIsICIoIikpCi0JCUNPTVBMRVRFX1dJVEgoImJpbmFyeSIsICJkaXNhYmxl X29uX2Vycm9yIiwgImZhaWxvdmVyIiwgIm9yaWdpbiIsCi0JCQkJCSAgInBhc3N3b3JkX3JlcXVp cmVkIiwgInJ1bl9hc19vd25lciIsICJzbG90X25hbWUiLAotCQkJCQkgICJzdHJlYW1pbmciLCAi c3luY2hyb25vdXNfY29tbWl0Iik7CisJCUNPTVBMRVRFX1dJVEgoImJpbmFyeSIsICJkZXRlY3Rf Y29uZmxpY3QiLCAiZGlzYWJsZV9vbl9lcnJvciIsCisJCQkJCSAgImZhaWxvdmVyIiwgIm9yaWdp biIsICJwYXNzd29yZF9yZXF1aXJlZCIsCisJCQkJCSAgInJ1bl9hc19vd25lciIsICJzbG90X25h bWUiLCAic3RyZWFtaW5nIiwKKwkJCQkJICAic3luY2hyb25vdXNfY29tbWl0Iik7CiAJLyogQUxU RVIgU1VCU0NSSVBUSU9OIDxuYW1lPiBTS0lQICggKi8KIAllbHNlIGlmIChIZWFkTWF0Y2hlcygi QUxURVIiLCAiU1VCU0NSSVBUSU9OIiwgTWF0Y2hBbnkpICYmIFRhaWxNYXRjaGVzKCJTS0lQIiwg IigiKSkKIAkJQ09NUExFVEVfV0lUSCgibHNuIik7CkBAIC0zMzYzLDkgKzMzNjQsMTAgQEAgcHNx bF9jb21wbGV0aW9uKGNvbnN0IGNoYXIgKnRleHQsIGludCBzdGFydCwgaW50IGVuZCkKIAkvKiBD b21wbGV0ZSAiQ1JFQVRFIFNVQlNDUklQVElPTiA8bmFtZT4gLi4uICBXSVRIICggPG9wdD4iICov CiAJZWxzZSBpZiAoSGVhZE1hdGNoZXMoIkNSRUFURSIsICJTVUJTQ1JJUFRJT04iKSAmJiBUYWls TWF0Y2hlcygiV0lUSCIsICIoIikpCiAJCUNPTVBMRVRFX1dJVEgoImJpbmFyeSIsICJjb25uZWN0 IiwgImNvcHlfZGF0YSIsICJjcmVhdGVfc2xvdCIsCi0JCQkJCSAgImRpc2FibGVfb25fZXJyb3Ii LCAiZW5hYmxlZCIsICJmYWlsb3ZlciIsICJvcmlnaW4iLAotCQkJCQkgICJwYXNzd29yZF9yZXF1 aXJlZCIsICJydW5fYXNfb3duZXIiLCAic2xvdF9uYW1lIiwKLQkJCQkJICAic3RyZWFtaW5nIiwg InN5bmNocm9ub3VzX2NvbW1pdCIsICJ0d29fcGhhc2UiKTsKKwkJCQkJICAiZGV0ZWN0X2NvbmZs aWN0IiwgImRpc2FibGVfb25fZXJyb3IiLCAiZW5hYmxlZCIsCisJCQkJCSAgImZhaWxvdmVyIiwg Im9yaWdpbiIsICJwYXNzd29yZF9yZXF1aXJlZCIsCisJCQkJCSAgInJ1bl9hc19vd25lciIsICJz bG90X25hbWUiLCAic3RyZWFtaW5nIiwKKwkJCQkJICAic3luY2hyb25vdXNfY29tbWl0IiwgInR3 b19waGFzZSIpOwogCiAvKiBDUkVBVEUgVFJJR0dFUiAtLS0gaXMgYWxsb3dlZCBpbnNpZGUgQ1JF QVRFIFNDSEVNQSwgc28gdXNlIFRhaWxNYXRjaGVzICovCiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3N1 YnNjcmlwdGlvbi5oCmluZGV4IDBhYTE0ZWM0YTIuLjE3ZGFmMTFkYzcgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL2NhdGFsb2cvcGdfc3Vic2NyaXB0aW9uLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19zdWJzY3JpcHRpb24uaApAQCAtOTgsNiArOTgsOSBAQCBDQVRBTE9HKHBnX3N1YnNj cmlwdGlvbiw2MTAwLFN1YnNjcmlwdGlvblJlbGF0aW9uSWQpIEJLSV9TSEFSRURfUkVMQVRJT04g QktJX1JPVwogCQkJCQkJCQkgKiBzbG90cykgaW4gdGhlIHVwc3RyZWFtIGRhdGFiYXNlIGFyZSBl bmFibGVkCiAJCQkJCQkJCSAqIHRvIGJlIHN5bmNocm9uaXplZCB0byB0aGUgc3RhbmRieXMuICov CiAKKwlib29sCQlzdWJkZXRlY3Rjb25mbGljdDsJLyogVHJ1ZSBpZiByZXBsaWNhdGlvbiBzaG91 bGQgcGVyZm9ybQorCQkJCQkJCQkJICogY29uZmxpY3QgZGV0ZWN0aW9uICovCisKICNpZmRlZiBD QVRBTE9HX1ZBUkxFTgkJCS8qIHZhcmlhYmxlLWxlbmd0aCBmaWVsZHMgc3RhcnQgaGVyZSAqLwog CS8qIENvbm5lY3Rpb24gc3RyaW5nIHRvIHRoZSBwdWJsaXNoZXIgKi8KIAl0ZXh0CQlzdWJjb25u aW5mbyBCS0lfRk9SQ0VfTk9UX05VTEw7CkBAIC0xNTEsNiArMTU0LDcgQEAgdHlwZWRlZiBzdHJ1 Y3QgU3Vic2NyaXB0aW9uCiAJCQkJCQkJCSAqIChpLmUuIHRoZSBtYWluIHNsb3QgYW5kIHRoZSB0 YWJsZSBzeW5jCiAJCQkJCQkJCSAqIHNsb3RzKSBpbiB0aGUgdXBzdHJlYW0gZGF0YWJhc2UgYXJl IGVuYWJsZWQKIAkJCQkJCQkJICogdG8gYmUgc3luY2hyb25pemVkIHRvIHRoZSBzdGFuZGJ5cy4g Ki8KKwlib29sCQlkZXRlY3Rjb25mbGljdDsgLyogVHJ1ZSBpZiBjb25mbGljdCBkZXRlY3Rpb24g aXMgZW5hYmxlZCAqLwogCWNoYXIJICAgKmNvbm5pbmZvOwkJLyogQ29ubmVjdGlvbiBzdHJpbmcg dG8gdGhlIHB1Ymxpc2hlciAqLwogCWNoYXIJICAgKnNsb3RuYW1lOwkJLyogTmFtZSBvZiB0aGUg cmVwbGljYXRpb24gc2xvdCAqLwogCWNoYXIJICAgKnN5bmNjb21taXQ7CQkvKiBTeW5jaHJvbm91 cyBjb21taXQgc2V0dGluZyBmb3Igd29ya2VyICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9y ZXBsaWNhdGlvbi9jb25mbGljdC5oIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vY29uZmxpY3Qu aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4wYmM5ZGI5OTFlCi0tLSAv ZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vY29uZmxpY3QuaApAQCAtMCww ICsxLDQ0IEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqIGNvbmZsaWN0LmgKKyAqCSAgIEV4cG9y dHMgZm9yIGNvbmZsaWN0IGRldGVjdGlvbiBhbmQgbG9nCisgKgorICogQ29weXJpZ2h0IChjKSAy MDEyLTIwMjQsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKgorICotLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgKi8KKyNpZm5kZWYgQ09ORkxJQ1RfSAorI2RlZmluZSBDT05GTElDVF9I CisKKyNpbmNsdWRlICJhY2Nlc3MveGxvZ2RlZnMuaCIKKyNpbmNsdWRlICJleGVjdXRvci90dXB0 YWJsZS5oIgorI2luY2x1ZGUgIm5vZGVzL2V4ZWNub2Rlcy5oIgorI2luY2x1ZGUgInV0aWxzL3Jl bGNhY2hlLmgiCisjaW5jbHVkZSAidXRpbHMvdGltZXN0YW1wLmgiCisKKy8qCisgKiBDb25mbGlj dCB0eXBlcyB0aGF0IGNvdWxkIGJlIGVuY291bnRlcmVkIHdoZW4gYXBwbHlpbmcgcmVtb3RlIGNo YW5nZXMuCisgKi8KK3R5cGVkZWYgZW51bQoreworCS8qIFRoZSByb3cgdG8gYmUgaW5zZXJ0ZWQg dmlvbGF0ZXMgdW5pcXVlIGNvbnN0cmFpbnQgKi8KKwlDVF9JTlNFUlRfRVhJU1RTLAorCisJLyog VGhlIHJvdyB0byBiZSB1cGRhdGVkIHdhcyBtb2RpZmllZCBieSBhIGRpZmZlcmVudCBvcmlnaW4g Ki8KKwlDVF9VUERBVEVfRElGRkVSLAorCisJLyogVGhlIHJvdyB0byBiZSB1cGRhdGVkIGlzIG1p c3NpbmcgKi8KKwlDVF9VUERBVEVfTUlTU0lORywKKworCS8qIFRoZSByb3cgdG8gYmUgZGVsZXRl ZCBpcyBtaXNzaW5nICovCisJQ1RfREVMRVRFX01JU1NJTkcsCit9IENvbmZsaWN0VHlwZTsKKwor ZXh0ZXJuIGJvb2wgR2V0VHVwbGVDb21taXRUcyhUdXBsZVRhYmxlU2xvdCAqbG9jYWxzbG90LCBU cmFuc2FjdGlvbklkICp4bWluLAorCQkJCQkJCSBSZXBPcmlnaW5JZCAqbG9jYWxvcmlnaW4sIFRp bWVzdGFtcFR6ICpsb2NhbHRzKTsKK2V4dGVybiB2b2lkIFJlcG9ydEFwcGx5Q29uZmxpY3QoaW50 IGVsZXZlbCwgQ29uZmxpY3RUeXBlIHR5cGUsCisJCQkJCQkJCVJlbGF0aW9uIGxvY2FscmVsLCBP aWQgY29uZmxpY3RpZHgsCisJCQkJCQkJCVRyYW5zYWN0aW9uSWQgbG9jYWx4bWluLCBSZXBPcmln aW5JZCBsb2NhbG9yaWdpbiwKKwkJCQkJCQkJVGltZXN0YW1wVHogbG9jYWx0cywgVHVwbGVUYWJs ZVNsb3QgKmNvbmZsaWN0c2xvdCk7CitleHRlcm4gdm9pZCBJbml0Q29uZmxpY3RJbmRleGVzKFJl c3VsdFJlbEluZm8gKnJlbEluZm8pOworCisjZW5kaWYKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvc3Vic2NyaXB0aW9uLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc3Vic2NyaXB0aW9uLm91dAppbmRleCAwZjJhMjVjZGMxLi5hOGIwMDg2ZGQ5IDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N1YnNjcmlwdGlvbi5vdXQKKysrIGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zdWJzY3JpcHRpb24ub3V0CkBAIC0xMTYsMTggKzExNiwx OCBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YjQgQ09OTkVDVElPTiAnZGJu YW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVQogV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMg Y3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNh dGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFi bGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIHJlZnJlc2ggdGhlIHN1YnNjcmlwdGlvbi4KIFxkUnMr IHJlZ3Jlc3NfdGVzdHN1YjQKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICAgTmFtZSAgICAg ICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBC aW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8 IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwg U3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBM U04gCi0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViNCB8IHJlZ3Jlc3Nfc3Vi c2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAg ICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IG5vbmUgICB8IHQgICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgb2ZmICAgICAgICAgICAg ICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Yg c3Vic2NyaXB0aW9ucworICAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAg ICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBo YXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJl ZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IERldGVjdCBjb25mbGljdCB8IFN5bmNocm9u b3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YjQgfCBy ZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAg IHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBub25l ICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAg ICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3Rl eGlzdCB8IDAvMAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3Vi NCBTRVQgKG9yaWdpbiA9IGFueSk7CiBcZFJzKyByZWdyZXNzX3Rlc3RzdWI0Ci0gICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vi c2NyaXB0aW9ucwotICAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAg IHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNl IGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8 IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAg IENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSst LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJl Z3Jlc3NfdGVzdHN1YjQgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0 ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAg ICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAg fCBmICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3Rl eGlzdCB8IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgICBOYW1lICAg ICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8 IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9y IHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIg fCBEZXRlY3QgY29uZmxpY3QgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5m byAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0KKyByZWdyZXNzX3Rlc3RzdWI0IHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYg ICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAg ICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAg ICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogRFJPUCBT VUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViMzsKQEAgLTE0NSwxMCArMTQ1LDEwIEBAIEFMVEVS IFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZm9vYmFyJzsKIEVSUk9S OiAgaW52YWxpZCBjb25uZWN0aW9uIHN0cmluZyBzeW50YXg6IG1pc3NpbmcgIj0iIGFmdGVyICJm b29iYXIiIGluIGNvbm5lY3Rpb24gaW5mbyBzdHJpbmcKIAogXGRScysKLSAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlw dGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5h YmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1p dCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBh cyBvd25lcj8gfCBGYWlsb3ZlciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5p bmZvICAgICAgICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190 ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0g ICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAg ICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAg ICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAw LzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAg ICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwg U3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4g fCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IERldGVjdCBj b25mbGljdCB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAg ICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVn cmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVz dHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAg ICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwg ZiAgICAgICAgfCBmICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9 cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9O IHJlZ3Jlc3NfdGVzdHN1YiBTRVQgUFVCTElDQVRJT04gdGVzdHB1YjIsIHRlc3RwdWIzIFdJVEgg KHJlZnJlc2ggPSBmYWxzZSk7CkBAIC0xNTcsMTAgKzE1NywxMCBAQCBBTFRFUiBTVUJTQ1JJUFRJ T04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gJ25ld25hbWUnKTsKIEFMVEVSIFNV QlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChwYXNzd29yZF9yZXF1aXJlZCA9IGZhbHNl KTsKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChydW5fYXNfb3duZXIg PSB0cnVlKTsKIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAg ICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlv biAgICAgfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBv biBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZh aWxvdmVyIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgIENvbm5pbmZvICAgICAgICAg ICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0 c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1YjIsdGVz dHB1YjN9IHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgICAgfCBhbnkgICAgfCBmICAgICAgICAgICAgICAgICB8IHQgICAgICAgICAgICAgfCBm ICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlz dDIgfCAwLzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAg ICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgICAgIFB1YmxpY2F0 aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxl IG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwg RmFpbG92ZXIgfCBEZXRlY3QgY29uZmxpY3QgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAg ICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNj cmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViMix0ZXN0cHViM30gfCBmICAgICAgfCBv ZmYgICAgICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8 IGYgICAgICAgICAgICAgICAgIHwgdCAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAg ICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0 MiB8IDAvMAogKDEgcm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNF VCAocGFzc3dvcmRfcmVxdWlyZWQgPSB0cnVlKTsKQEAgLTE3NiwxMCArMTc2LDEwIEBAIEVSUk9S OiAgdW5yZWNvZ25pemVkIHN1YnNjcmlwdGlvbiBwYXJhbWV0ZXI6ICJjcmVhdGVfc2xvdCIKIC0t IG9rCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNLSVAgKGxzbiA9ICcwLzEy MzQ1Jyk7CiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAg IHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRpb24g ICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24g ZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWls b3ZlciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAg fCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1 YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3Rw dWIzfSB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAg ICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAg ICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3Qy IHwgMC8xMjM0NQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBOYW1l ICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGlj YXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2Fi bGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8g fCBGYWlsb3ZlciB8IERldGVjdCBjb25mbGljdCB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAg ICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vi c2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8 IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAg IHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAg ICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhp c3QyIHwgMC8xMjM0NQogKDEgcm93KQogCiAtLSBvayAtIHdpdGggbHNuID0gTk9ORQpAQCAtMTg4 LDEwICsxODgsMTAgQEAgQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTS0lQIChs c24gPSBOT05FKTsKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0tJUCAobHNu ID0gJzAvMCcpOwogRVJST1I6ICBpbnZhbGlkIFdBTCBsb2NhdGlvbiAoTFNOKTogMC8wCiBcZFJz KwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAg IE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCAgICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5 IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmln aW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFN5bmNo cm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAK LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nf c3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAg ICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55 ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBvZmYg ICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgMC8wCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAg ICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICBQdWJsaWNhdGlvbiAgICAgfCBCaW5h cnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9y aWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgRGV0 ZWN0IGNvbmZsaWN0IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgIENvbm5pbmZvICAg ICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8 IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAg ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAg ICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICB8IG9mZiAg ICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdDIgfCAwLzAKICgxIHJv dykKIAogQkVHSU47CkBAIC0yMjMsMTAgKzIyMywxMCBAQCBBTFRFUiBTVUJTQ1JJUFRJT04gcmVn cmVzc190ZXN0c3ViX2ZvbyBTRVQgKHN5bmNocm9ub3VzX2NvbW1pdCA9IGZvb2Jhcik7CiBFUlJP UjogIGludmFsaWQgdmFsdWUgZm9yIHBhcmFtZXRlciAic3luY2hyb25vdXNfY29tbWl0IjogImZv b2JhciIKIEhJTlQ6ICBBdmFpbGFibGUgdmFsdWVzOiBsb2NhbCwgcmVtb3RlX3dyaXRlLCByZW1v dGVfYXBwbHksIG9uLCBvZmYuCiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAg ICAgICAgTmFtZSAgICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQg fCAgICAgUHVibGljYXRpb24gICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNv bW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1 biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgICBD b25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0KLSByZWdyZXNzX3Rlc3RzdWJfZm9vIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8 IGYgICAgICAgfCB7dGVzdHB1YjIsdGVzdHB1YjN9IHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAg ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAg ICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGxvY2FsICAgICAgICAgICAgICB8IGRi bmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdDIgfCAwLzAKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBz dWJzY3JpcHRpb25zCisgICAgICAgIE5hbWUgICAgICAgICB8ICAgICAgICAgICBPd25lciAgICAg ICAgICAgfCBFbmFibGVkIHwgICAgIFB1YmxpY2F0aW9uICAgICB8IEJpbmFyeSB8IFN0cmVhbWlu ZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dv cmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBEZXRlY3QgY29uZmxpY3Qg fCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tp cCBMU04gCistLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t CisgcmVncmVzc190ZXN0c3ViX2ZvbyB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAg ICAgIHwge3Rlc3RwdWIyLHRlc3RwdWIzfSB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAg ICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAg fCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAgfCBsb2NhbCAgICAg ICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QyIHwgMC8wCiAoMSByb3cpCiAK IC0tIHJlbmFtZSBiYWNrIHRvIGtlZXAgdGhlIHJlc3Qgc2ltcGxlCkBAIC0yNTUsMTkgKzI1NSwx OSBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5h bWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQgogV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMg Y3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNh dGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFi bGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIHJlZnJlc2ggdGhlIHN1YnNjcmlwdGlvbi4KIFxkUnMr Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8 IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQg cmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTeW5jaHJvbm91cyBjb21taXQg fCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAg ICAgIHwge3Rlc3RwdWJ9ICAgfCB0ICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAgICAgICAg IHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgICB8IGYgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3Nf ZG9lc25vdGV4aXN0IHwgMC8wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBO YW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNh dGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9u IGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFp bG92ZXIgfCBEZXRlY3QgY29uZmxpY3QgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBD b25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIg fCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCB0ICAgICAgfCBvZmYgICAgICAgfCBkICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwg ZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAg ICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAoMSByb3cpCiAKIEFM VEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChiaW5hcnkgPSBmYWxzZSk7CiBB TFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7 CiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAg ICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJl YW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBh c3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU3luY2hyb25vdXMg Y29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2Vy IHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1y ZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwor ICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwg UHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlz YWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVy PyB8IEZhaWxvdmVyIHwgRGV0ZWN0IGNvbmZsaWN0IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAg ICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlv bl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAg ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAg ICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICB8IG9mZiAg ICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAogKDEgcm93 KQogCiBEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI7CkBAIC0yNzksMjcgKzI3OSwy NyBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5h bWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQgogV0FSTklORzogIHN1YnNjcmlwdGlvbiB3YXMg Y3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBpbml0aWF0ZSByZXBsaWNh dGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNhdGlvbiBzbG90LCBlbmFi bGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIHJlZnJlc2ggdGhlIHN1YnNjcmlwdGlvbi4KIFxkUnMr Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVy ICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8 IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQg cmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTeW5jaHJvbm91cyBjb21taXQg fCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAg ICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvbiAgICAgICAgfCBkICAgICAgICAgICAgICAg IHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwgZiAgICAg ICAgICAgICB8IGYgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3Nf ZG9lc25vdGV4aXN0IHwgMC8wCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCisgICAgICBO YW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNh dGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9u IGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFp bG92ZXIgfCBEZXRlY3QgY29uZmxpY3QgfCBTeW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBD b25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIg fCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvbiAgICAgICAgfCBkICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAgICAgICAgIHwg ZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAgIHwgb2ZmICAgICAgICAg ICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCiAoMSByb3cpCiAKIEFM VEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChzdHJlYW1pbmcgPSBwYXJhbGxl bCk7CiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAg ICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBT dHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8 IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU3luY2hyb25v dXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91 c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwgZCAgICAg ICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAg ICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFt ZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9u cworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVk IHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwg RGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93 bmVyPyB8IEZhaWxvdmVyIHwgRGV0ZWN0IGNvbmZsaWN0IHwgU3luY2hyb25vdXMgY29tbWl0IHwg ICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlw dGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgcGFyYWxsZWwgIHwg ZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAg ICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICB8IG9m ZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAogKDEg cm93KQogCiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc3RyZWFtaW5n ID0gZmFsc2UpOwogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3Rf bmFtZSA9IE5PTkUpOwogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAg ICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwg QmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3Ig fCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8 IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAg TFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJz Y3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAg ICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBvZmYgICAgICAgICAgICAg ICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1 YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAg IHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNl IGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8 IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IERldGVjdCBjb25mbGljdCB8IFN5bmNocm9ub3Vz IGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0t LS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVz c19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9m ZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwg dCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAg ICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3Qg fCAwLzAKICgxIHJvdykKIAogLS0gZmFpbCAtIHB1YmxpY2F0aW9uIGFscmVhZHkgZXhpc3RzCkBA IC0zMTQsMTAgKzMxNCwxMCBAQCBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIEFE RCBQVUJMSUNBVElPTiB0ZXN0cHViMSwgdGVzdHB1YjIgV0lUSCAocmVmcgogQUxURVIgU1VCU0NS SVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBBREQgUFVCTElDQVRJT04gdGVzdHB1YjEsIHRlc3RwdWIy IFdJVEggKHJlZnJlc2ggPSBmYWxzZSk7CiBFUlJPUjogIHB1YmxpY2F0aW9uICJ0ZXN0cHViMSIg aXMgYWxyZWFkeSBpbiBzdWJzY3JpcHRpb24gInJlZ3Jlc3NfdGVzdHN1YiIKIFxkUnMrCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3du ZXIgICAgICAgICAgIHwgRW5hYmxlZCB8ICAgICAgICAgUHVibGljYXRpb24gICAgICAgICB8IEJp bmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwg T3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBT eW5jaHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExT TiAKLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIg fCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHViLHRlc3RwdWIx LHRlc3RwdWIyfSB8IGYgICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAg ICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAg IHwgZiAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90 ZXhpc3QgfCAwLzAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAg TmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgICAgICAg ICBQdWJsaWNhdGlvbiAgICAgICAgIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNv bW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1 biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IERldGVjdCBjb25mbGljdCB8IFN5bmNocm9ub3VzIGNv bW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVz dHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWIsdGVz dHB1YjEsdGVzdHB1YjJ9IHwgZiAgICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8 IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAogKDEgcm93KQogCiAtLSBmYWlsIC0g cHVibGljYXRpb24gdXNlZCBtb3JlIHRoYW4gb25jZQpAQCAtMzMyLDEwICszMzIsMTAgQEAgRVJS T1I6ICBwdWJsaWNhdGlvbiAidGVzdHB1YjMiIGlzIG5vdCBpbiBzdWJzY3JpcHRpb24gInJlZ3Jl c3NfdGVzdHN1YiIKIC0tIG9rIC0gZGVsZXRlIHB1YmxpY2F0aW9ucwogQUxURVIgU1VCU0NSSVBU SU9OIHJlZ3Jlc3NfdGVzdHN1YiBEUk9QIFBVQkxJQ0FUSU9OIHRlc3RwdWIxLCB0ZXN0cHViMiBX SVRIIChyZWZyZXNoID0gZmFsc2UpOwogXGRScysKLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKLSAgICAg IE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1Ymxp Y2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUg b24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBG YWlsb3ZlciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAg ICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0c3ViIHwgcmVn cmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8 IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAg IHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBvZmYgICAg ICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBM aXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIg ICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwg VHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCBy ZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IERldGVjdCBjb25mbGljdCB8IFN5 bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNO IAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3Vi IHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYg ICAgICB8IG9mZiAgICAgICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwg YW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBm ICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vz bm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogRFJPUCBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0 c3ViOwpAQCAtMzcxLDEwICszNzEsMTAgQEAgQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rl c3RzdWIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUIKIFdBUk5J Tkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5U OiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUg cmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24sIGFuZCByZWZyZXNoIHRo ZSBzdWJzY3JpcHRpb24uCiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAg ICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24g fCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJv ciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVy IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tp cCBMU04gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1 YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2ZmICAg ICAgIHwgcCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAg ICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IG9mZiAgICAgICAgICAg ICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Yg c3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAg ICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhh c2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVk IHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgRGV0ZWN0IGNvbmZsaWN0IHwgU3luY2hyb25v dXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCistLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdy ZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwg b2ZmICAgICAgIHwgcCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAg fCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAg ICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlz dCB8IDAvMAogKDEgcm93KQogCiAtLWZhaWwgLSBhbHRlciBvZiB0d29fcGhhc2Ugb3B0aW9uIG5v dCBzdXBwb3J0ZWQuCkBAIC0zODMsMTAgKzM4MywxMCBAQCBFUlJPUjogIHVucmVjb2duaXplZCBz dWJzY3JpcHRpb24gcGFyYW1ldGVyOiAidHdvX3BoYXNlIgogLS0gYnV0IGNhbiBhbHRlciBzdHJl YW1pbmcgd2hlbiB0d29fcGhhc2UgZW5hYmxlZAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3Nf dGVzdHN1YiBTRVQgKHN0cmVhbWluZyA9IHRydWUpOwogXGRScysKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlv bnMKLSAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxl ZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8 IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBv d25lcj8gfCBGYWlsb3ZlciB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZv ICAgICAgICAgICB8IFNraXAgTFNOIAotLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCi0gcmVncmVzc190ZXN0 c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8 IGYgICAgICB8IG9uICAgICAgICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAg IHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAg fCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMaXN0IG9mIHN1YnNjcmlwdGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAg ICAgT3duZXIgICAgICAgICAgIHwgRW5hYmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3Ry ZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1pdCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQ YXNzd29yZCByZXF1aXJlZCB8IFJ1biBhcyBvd25lcj8gfCBGYWlsb3ZlciB8IERldGVjdCBjb25m bGljdCB8IFN5bmNocm9ub3VzIGNvbW1pdCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8 IFNraXAgTFNOIAorLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLSstLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVz c190ZXN0c3ViIHwgcmVncmVzc19zdWJzY3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1 Yn0gICB8IGYgICAgICB8IG9uICAgICAgICB8IHAgICAgICAgICAgICAgICAgfCBmICAgICAgICAg ICAgICAgIHwgYW55ICAgIHwgdCAgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAg ICAgICAgfCBmICAgICAgICAgICAgICAgfCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVn cmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAKICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3RfbmFtZSA9IE5PTkUpOwpAQCAtMzk2LDEwICszOTYsMTAg QEAgQ1JFQVRFIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1l PXJlZ3Jlc3NfZG9lc25vdGV4aXN0JyBQVUIKIFdBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNy ZWF0ZWQsIGJ1dCBpcyBub3QgY29ubmVjdGVkCiBISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRp b24sIHlvdSBtdXN0IG1hbnVhbGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxl IHRoZSBzdWJzY3JpcHRpb24sIGFuZCByZWZyZXNoIHRoZSBzdWJzY3JpcHRpb24uCiBcZFJzKwot ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExp c3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAg ICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBU d28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJl cXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgU3luY2hyb25vdXMgY29tbWl0IHwg ICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCi0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0t LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAg ICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb24gICAgICAgIHwgcCAgICAgICAgICAgICAgICB8 IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAg ICAgICAgfCBmICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2Rv ZXNub3RleGlzdCB8IDAvMAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFt ZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRp b24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBl cnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxv dmVyIHwgRGV0ZWN0IGNvbmZsaWN0IHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29u bmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwg ZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb24gICAgICAgIHwgcCAgICAgICAgICAg ICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYg ICAgICAgICAgICAgfCBmICAgICAgICB8IGYgICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAg ICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAogKDEgcm93KQogCiBBTFRF UiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CkBA IC00MTIsMTggKzQxMiw0MiBAQCBDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBD T05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQgogV0FSTklORzogIHN1 YnNjcmlwdGlvbiB3YXMgY3JlYXRlZCwgYnV0IGlzIG5vdCBjb25uZWN0ZWQKIEhJTlQ6ICBUbyBp bml0aWF0ZSByZXBsaWNhdGlvbiwgeW91IG11c3QgbWFudWFsbHkgY3JlYXRlIHRoZSByZXBsaWNh dGlvbiBzbG90LCBlbmFibGUgdGhlIHN1YnNjcmlwdGlvbiwgYW5kIHJlZnJlc2ggdGhlIHN1YnNj cmlwdGlvbi4KIFxkUnMrCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3JpcHRpb25zCi0gICAgICBOYW1lICAgICAgIHwg ICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVuYWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFy eSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21taXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3Jp Z2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4gYXMgb3duZXI/IHwgRmFpbG92ZXIgfCBTeW5j aHJvbm91cyBjb21taXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAK LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLQotIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vic2NyaXB0 aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAgICAgfCBk ICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAgICAgICAg ICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgb2ZmICAgICAgICAgICAgICAgIHwg ZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8wCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiBzdWJzY3Jp cHRpb25zCisgICAgICBOYW1lICAgICAgIHwgICAgICAgICAgIE93bmVyICAgICAgICAgICB8IEVu YWJsZWQgfCBQdWJsaWNhdGlvbiB8IEJpbmFyeSB8IFN0cmVhbWluZyB8IFR3by1waGFzZSBjb21t aXQgfCBEaXNhYmxlIG9uIGVycm9yIHwgT3JpZ2luIHwgUGFzc3dvcmQgcmVxdWlyZWQgfCBSdW4g YXMgb3duZXI/IHwgRmFpbG92ZXIgfCBEZXRlY3QgY29uZmxpY3QgfCBTeW5jaHJvbm91cyBjb21t aXQgfCAgICAgICAgICBDb25uaW5mbyAgICAgICAgICAgfCBTa2lwIExTTiAKKy0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0rLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLQorIHJlZ3Jlc3NfdGVzdHN1YiB8IHJlZ3Jlc3Nfc3Vi c2NyaXB0aW9uX3VzZXIgfCBmICAgICAgIHwge3Rlc3RwdWJ9ICAgfCBmICAgICAgfCBvZmYgICAg ICAgfCBkICAgICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICAgICB8IGFueSAgICB8IHQgICAg ICAgICAgICAgICAgIHwgZiAgICAgICAgICAgICB8IGYgICAgICAgIHwgZiAgICAgICAgICAgICAg IHwgb2ZmICAgICAgICAgICAgICAgIHwgZGJuYW1lPXJlZ3Jlc3NfZG9lc25vdGV4aXN0IHwgMC8w CiAoMSByb3cpCiAKIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgU0VUIChkaXNh YmxlX29uX2Vycm9yID0gdHJ1ZSk7CiBcZFJzKwotICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vic2NyaXB0aW9ucwotICAgICAg TmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAgfCBFbmFibGVkIHwgUHVibGlj YXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBv biBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZh aWxvdmVyIHwgU3luY2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAg IHwgU2tpcCBMU04gCi0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KLSByZWdyZXNzX3Rlc3RzdWIgfCByZWdy ZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwg b2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IHQgICAgICAgICAgICAgICAgfCBhbnkgICAg fCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IG9mZiAgICAg ICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8IDAvMAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExp c3Qgb2Ygc3Vic2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAg ICAgICAgICAgfCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBU d28tcGhhc2UgY29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJl cXVpcmVkIHwgUnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgRGV0ZWN0IGNvbmZsaWN0IHwgU3lu Y2hyb25vdXMgY29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04g CistLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t Ky0tLS0tLS0tLS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIg fCByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAg ICAgIHwgb2ZmICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IHQgICAgICAgICAgICAgICAgfCBh bnkgICAgfCB0ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IGYg ICAgICAgICAgICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNu b3RleGlzdCB8IDAvMAorKDEgcm93KQorCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0 c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CitEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rl c3RzdWI7CistLSBmYWlsIC0gZGV0ZWN0X2NvbmZsaWN0IG11c3QgYmUgYm9vbGVhbgorQ1JFQVRF IFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIgQ09OTkVDVElPTiAnZGJuYW1lPXJlZ3Jlc3Nf ZG9lc25vdGV4aXN0JyBQVUJMSUNBVElPTiB0ZXN0cHViIFdJVEggKGNvbm5lY3QgPSBmYWxzZSwg ZGV0ZWN0X2NvbmZsaWN0ID0gZm9vKTsKK0VSUk9SOiAgZGV0ZWN0X2NvbmZsaWN0IHJlcXVpcmVz IGEgQm9vbGVhbiB2YWx1ZQorLS0gbm93IGl0IHdvcmtzCitDUkVBVEUgU1VCU0NSSVBUSU9OIHJl Z3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBV QkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9IGZhbHNlLCBkZXRlY3RfY29uZmxpY3Qg PSB0cnVlKTsKK1dBUk5JTkc6ICBzdWJzY3JpcHRpb24gd2FzIGNyZWF0ZWQsIGJ1dCBpcyBub3Qg Y29ubmVjdGVkCitISU5UOiAgVG8gaW5pdGlhdGUgcmVwbGljYXRpb24sIHlvdSBtdXN0IG1hbnVh bGx5IGNyZWF0ZSB0aGUgcmVwbGljYXRpb24gc2xvdCwgZW5hYmxlIHRoZSBzdWJzY3JpcHRpb24s IGFuZCByZWZyZXNoIHRoZSBzdWJzY3JpcHRpb24uCitcZFJzKworICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2Ygc3Vi c2NyaXB0aW9ucworICAgICAgTmFtZSAgICAgICB8ICAgICAgICAgICBPd25lciAgICAgICAgICAg fCBFbmFibGVkIHwgUHVibGljYXRpb24gfCBCaW5hcnkgfCBTdHJlYW1pbmcgfCBUd28tcGhhc2Ug Y29tbWl0IHwgRGlzYWJsZSBvbiBlcnJvciB8IE9yaWdpbiB8IFBhc3N3b3JkIHJlcXVpcmVkIHwg UnVuIGFzIG93bmVyPyB8IEZhaWxvdmVyIHwgRGV0ZWN0IGNvbmZsaWN0IHwgU3luY2hyb25vdXMg Y29tbWl0IHwgICAgICAgICAgQ29ubmluZm8gICAgICAgICAgIHwgU2tpcCBMU04gCistLS0tLS0t LS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLSstLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0KKyByZWdyZXNzX3Rlc3RzdWIgfCByZWdyZXNz X3N1YnNjcmlwdGlvbl91c2VyIHwgZiAgICAgICB8IHt0ZXN0cHVifSAgIHwgZiAgICAgIHwgb2Zm ICAgICAgIHwgZCAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgICAgfCBhbnkgICAgfCB0 ICAgICAgICAgICAgICAgICB8IGYgICAgICAgICAgICAgfCBmICAgICAgICB8IHQgICAgICAgICAg ICAgICB8IG9mZiAgICAgICAgICAgICAgICB8IGRibmFtZT1yZWdyZXNzX2RvZXNub3RleGlzdCB8 IDAvMAorKDEgcm93KQorCitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAo ZGV0ZWN0X2NvbmZsaWN0ID0gZmFsc2UpOworXGRScysKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHN1YnNjcmlw dGlvbnMKKyAgICAgIE5hbWUgICAgICAgfCAgICAgICAgICAgT3duZXIgICAgICAgICAgIHwgRW5h YmxlZCB8IFB1YmxpY2F0aW9uIHwgQmluYXJ5IHwgU3RyZWFtaW5nIHwgVHdvLXBoYXNlIGNvbW1p dCB8IERpc2FibGUgb24gZXJyb3IgfCBPcmlnaW4gfCBQYXNzd29yZCByZXF1aXJlZCB8IFJ1biBh cyBvd25lcj8gfCBGYWlsb3ZlciB8IERldGVjdCBjb25mbGljdCB8IFN5bmNocm9ub3VzIGNvbW1p dCB8ICAgICAgICAgIENvbm5pbmZvICAgICAgICAgICB8IFNraXAgTFNOIAorLS0tLS0tLS0tLS0t LS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0t Ky0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0rLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tCisgcmVncmVzc190ZXN0c3ViIHwgcmVncmVzc19zdWJz Y3JpcHRpb25fdXNlciB8IGYgICAgICAgfCB7dGVzdHB1Yn0gICB8IGYgICAgICB8IG9mZiAgICAg ICB8IGQgICAgICAgICAgICAgICAgfCBmICAgICAgICAgICAgICAgIHwgYW55ICAgIHwgdCAgICAg ICAgICAgICAgICAgfCBmICAgICAgICAgICAgIHwgZiAgICAgICAgfCBmICAgICAgICAgICAgICAg fCBvZmYgICAgICAgICAgICAgICAgfCBkYm5hbWU9cmVncmVzc19kb2Vzbm90ZXhpc3QgfCAwLzAK ICgxIHJvdykKIAogQUxURVIgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBTRVQgKHNsb3Rf bmFtZSA9IE5PTkUpOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3Vic2NyaXB0 aW9uLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3N1YnNjcmlwdGlvbi5zcWwKaW5kZXggM2U1 YmE0Y2I4Yy4uYTc3YjE5NjcwNCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc3Vi c2NyaXB0aW9uLnNxbAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zdWJzY3JpcHRpb24uc3Fs CkBAIC0yOTAsNiArMjkwLDIxIEBAIEFMVEVSIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWIg U0VUIChkaXNhYmxlX29uX2Vycm9yID0gdHJ1ZSk7CiBBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVz c190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9ORSk7CiBEUk9QIFNVQlNDUklQVElPTiByZWdy ZXNzX3Rlc3RzdWI7CiAKKy0tIGZhaWwgLSBkZXRlY3RfY29uZmxpY3QgbXVzdCBiZSBib29sZWFu CitDUkVBVEUgU1VCU0NSSVBUSU9OIHJlZ3Jlc3NfdGVzdHN1YiBDT05ORUNUSU9OICdkYm5hbWU9 cmVncmVzc19kb2Vzbm90ZXhpc3QnIFBVQkxJQ0FUSU9OIHRlc3RwdWIgV0lUSCAoY29ubmVjdCA9 IGZhbHNlLCBkZXRlY3RfY29uZmxpY3QgPSBmb28pOworCistLSBub3cgaXQgd29ya3MKK0NSRUFU RSBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIENPTk5FQ1RJT04gJ2RibmFtZT1yZWdyZXNz X2RvZXNub3RleGlzdCcgUFVCTElDQVRJT04gdGVzdHB1YiBXSVRIIChjb25uZWN0ID0gZmFsc2Us IGRldGVjdF9jb25mbGljdCA9IHRydWUpOworCitcZFJzKworCitBTFRFUiBTVUJTQ1JJUFRJT04g cmVncmVzc190ZXN0c3ViIFNFVCAoZGV0ZWN0X2NvbmZsaWN0ID0gZmFsc2UpOworCitcZFJzKwor CitBTFRFUiBTVUJTQ1JJUFRJT04gcmVncmVzc190ZXN0c3ViIFNFVCAoc2xvdF9uYW1lID0gTk9O RSk7CitEUk9QIFNVQlNDUklQVElPTiByZWdyZXNzX3Rlc3RzdWI7CisKIC0tIGxldCdzIGRvIHNv bWUgdGVzdHMgd2l0aCBwZ19jcmVhdGVfc3Vic2NyaXB0aW9uIHJhdGhlciB0aGFuIHN1cGVydXNl cgogU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiByZWdyZXNzX3N1YnNjcmlwdGlvbl91c2VyMzsK IApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDAxX3JlcF9jaGFuZ2VzLnBs IGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDAxX3JlcF9jaGFuZ2VzLnBsCmluZGV4IDQ3MWU5 ODE5NjIuLjc4YzAzMDcxNjUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAw MV9yZXBfY2hhbmdlcy5wbAorKysgYi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMDFfcmVwX2No YW5nZXMucGwKQEAgLTMzMSwxMSArMzMxLDEyIEBAIGlzKCAkcmVzdWx0LCBxcSgxfGJhcgogMnxi YXopLAogCSd1cGRhdGUgd29ya3Mgd2l0aCBSRVBMSUNBIElERU5USVRZIEZVTEwgYW5kIGEgcHJp bWFyeSBrZXknKTsKIAotIyBDaGVjayB0aGF0IHN1YnNjcmliZXIgaGFuZGxlcyBjYXNlcyB3aGVy ZSB1cGRhdGUvZGVsZXRlIHRhcmdldCB0dXBsZQotIyBpcyBtaXNzaW5nLiAgV2UgaGF2ZSB0byBs b29rIGZvciB0aGUgREVCVUcxIGxvZyBtZXNzYWdlcyBhYm91dCB0aGF0LAotIyBzbyB0ZW1wb3Jh cmlseSBidW1wIHVwIHRoZSBsb2cgdmVyYm9zaXR5LgotJG5vZGVfc3Vic2NyaWJlci0+YXBwZW5k X2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsICJsb2dfbWluX21lc3NhZ2VzID0gZGVidWcxIik7Ci0k bm9kZV9zdWJzY3JpYmVyLT5yZWxvYWQ7CisjIFRvIGNoZWNrIHRoYXQgc3Vic2NyaWJlciBoYW5k bGVzIGNhc2VzIHdoZXJlIHVwZGF0ZS9kZWxldGUgdGFyZ2V0IHR1cGxlCisjIGlzIG1pc3Npbmcs IGRldGVjdF9jb25mbGljdCBpcyB0ZW1wb3JhcmlseSBlbmFibGVkIHRvIGxvZyBjb25mbGljdHMK KyMgcmVsYXRlZCB0byBtaXNzaW5nIHR1cGxlcy4KKyRub2RlX3N1YnNjcmliZXItPnNhZmVfcHNx bCgncG9zdGdyZXMnLAorCSJBTFRFUiBTVUJTQ1JJUFRJT04gdGFwX3N1YiBTRVQgKGRldGVjdF9j b25mbGljdCA9IHRydWUpIgorKTsKIAogJG5vZGVfc3Vic2NyaWJlci0+c2FmZV9wc3FsKCdwb3N0 Z3JlcycsICJERUxFVEUgRlJPTSB0YWJfZnVsbF9wayIpOwogCkBAIC0zNTIsMTAgKzM1MywxMCBA QCAkbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3RhcF9zdWInKTsKIAogbXkgJGxv Z2ZpbGUgPSBzbHVycF9maWxlKCRub2RlX3N1YnNjcmliZXItPmxvZ2ZpbGUsICRsb2dfbG9jYXRp b24pOwogb2soICRsb2dmaWxlID1+Ci0JICBxci9sb2dpY2FsIHJlcGxpY2F0aW9uIGRpZCBub3Qg ZmluZCByb3cgdG8gYmUgdXBkYXRlZCBpbiByZXBsaWNhdGlvbiB0YXJnZXQgcmVsYXRpb24gInRh Yl9mdWxsX3BrIi8sCisJICBxci9jb25mbGljdCB1cGRhdGVfbWlzc2luZyBkZXRlY3RlZCBvbiBy ZWxhdGlvbiAicHVibGljLnRhYl9mdWxsX3BrIi4qXG4uKkRFVEFJTDouKiBEaWQgbm90IGZpbmQg dGhlIHJvdyB0byBiZSB1cGRhdGVkLi9tLAogCSd1cGRhdGUgdGFyZ2V0IHJvdyBpcyBtaXNzaW5n Jyk7CiBvayggJGxvZ2ZpbGUgPX4KLQkgIHFyL2xvZ2ljYWwgcmVwbGljYXRpb24gZGlkIG5vdCBm aW5kIHJvdyB0byBiZSBkZWxldGVkIGluIHJlcGxpY2F0aW9uIHRhcmdldCByZWxhdGlvbiAidGFi X2Z1bGxfcGsiLywKKwkgIHFyL2NvbmZsaWN0IGRlbGV0ZV9taXNzaW5nIGRldGVjdGVkIG9uIHJl bGF0aW9uICJwdWJsaWMudGFiX2Z1bGxfcGsiLipcbi4qREVUQUlMOi4qIERpZCBub3QgZmluZCB0 aGUgcm93IHRvIGJlIGRlbGV0ZWQuL20sCiAJJ2RlbGV0ZSB0YXJnZXQgcm93IGlzIG1pc3Npbmcn KTsKIAogJG5vZGVfc3Vic2NyaWJlci0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMTNfcGFydGl0aW9uLnBsIGIvc3Jj L3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDEzX3BhcnRpdGlvbi5wbAppbmRleCAyOTU4MDUyNWE5Li5j NjRmMTcyMTFkIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMTNfcGFydGl0 aW9uLnBsCisrKyBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAxM19wYXJ0aXRpb24ucGwKQEAg LTM0MywxMiArMzQzLDEyIEBAICRyZXN1bHQgPQogICAkbm9kZV9zdWJzY3JpYmVyMi0+c2FmZV9w c3FsKCdwb3N0Z3JlcycsICJTRUxFQ1QgYSBGUk9NIHRhYjEgT1JERVIgQlkgMSIpOwogaXMoJHJl c3VsdCwgcXEoKSwgJ3RydW5jYXRlIG9mIHRhYjEgcmVwbGljYXRlZCcpOwogCi0jIENoZWNrIHRo YXQgc3Vic2NyaWJlciBoYW5kbGVzIGNhc2VzIHdoZXJlIHVwZGF0ZS9kZWxldGUgdGFyZ2V0IHR1 cGxlCi0jIGlzIG1pc3NpbmcuICBXZSBoYXZlIHRvIGxvb2sgZm9yIHRoZSBERUJVRzEgbG9nIG1l c3NhZ2VzIGFib3V0IHRoYXQsCi0jIHNvIHRlbXBvcmFyaWx5IGJ1bXAgdXAgdGhlIGxvZyB2ZXJi b3NpdHkuCi0kbm9kZV9zdWJzY3JpYmVyMS0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZics Ci0JImxvZ19taW5fbWVzc2FnZXMgPSBkZWJ1ZzEiKTsKLSRub2RlX3N1YnNjcmliZXIxLT5yZWxv YWQ7CisjIFRvIGNoZWNrIHRoYXQgc3Vic2NyaWJlciBoYW5kbGVzIGNhc2VzIHdoZXJlIHVwZGF0 ZS9kZWxldGUgdGFyZ2V0IHR1cGxlCisjIGlzIG1pc3NpbmcsIGRldGVjdF9jb25mbGljdCBpcyB0 ZW1wb3JhcmlseSBlbmFibGVkIHRvIGxvZyBjb25mbGljdHMKKyMgcmVsYXRlZCB0byBtaXNzaW5n IHR1cGxlcy4KKyRub2RlX3N1YnNjcmliZXIxLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxU RVIgU1VCU0NSSVBUSU9OIHN1YjEgU0VUIChkZXRlY3RfY29uZmxpY3QgPSB0cnVlKSIKKyk7CiAK ICRub2RlX3B1Ymxpc2hlci0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCiAJIklOU0VSVCBJTlRPIHRh YjEgVkFMVUVTICgxLCAnZm9vJyksICg0LCAnYmFyJyksICgxMCwgJ2JheicpIik7CkBAIC0zNzIs MjEgKzM3MiwyMSBAQCAkbm9kZV9wdWJsaXNoZXItPndhaXRfZm9yX2NhdGNodXAoJ3N1YjInKTsK IAogbXkgJGxvZ2ZpbGUgPSBzbHVycF9maWxlKCRub2RlX3N1YnNjcmliZXIxLT5sb2dmaWxlKCks ICRsb2dfbG9jYXRpb24pOwogb2soICRsb2dmaWxlID1+Ci0JICBxci9sb2dpY2FsIHJlcGxpY2F0 aW9uIGRpZCBub3QgZmluZCByb3cgdG8gYmUgdXBkYXRlZCBpbiByZXBsaWNhdGlvbiB0YXJnZXQg cmVsYXRpb24ncyBwYXJ0aXRpb24gInRhYjFfMl8yIi8sCisJICBxci9jb25mbGljdCB1cGRhdGVf bWlzc2luZyBkZXRlY3RlZCBvbiByZWxhdGlvbiAicHVibGljLnRhYjFfMl8yIi4qXG4uKkRFVEFJ TDouKiBEaWQgbm90IGZpbmQgdGhlIHJvdyB0byBiZSB1cGRhdGVkLi8sCiAJJ3VwZGF0ZSB0YXJn ZXQgcm93IGlzIG1pc3NpbmcgaW4gdGFiMV8yXzInKTsKIG9rKCAkbG9nZmlsZSA9fgotCSAgcXIv bG9naWNhbCByZXBsaWNhdGlvbiBkaWQgbm90IGZpbmQgcm93IHRvIGJlIGRlbGV0ZWQgaW4gcmVw bGljYXRpb24gdGFyZ2V0IHJlbGF0aW9uICJ0YWIxXzEiLywKKwkgIHFyL2NvbmZsaWN0IGRlbGV0 ZV9taXNzaW5nIGRldGVjdGVkIG9uIHJlbGF0aW9uICJwdWJsaWMudGFiMV8xIi4qXG4uKkRFVEFJ TDouKiBEaWQgbm90IGZpbmQgdGhlIHJvdyB0byBiZSBkZWxldGVkLi8sCiAJJ2RlbGV0ZSB0YXJn ZXQgcm93IGlzIG1pc3NpbmcgaW4gdGFiMV8xJyk7CiBvayggJGxvZ2ZpbGUgPX4KLQkgIHFyL2xv Z2ljYWwgcmVwbGljYXRpb24gZGlkIG5vdCBmaW5kIHJvdyB0byBiZSBkZWxldGVkIGluIHJlcGxp Y2F0aW9uIHRhcmdldCByZWxhdGlvbiAidGFiMV8yXzIiLywKKwkgIHFyL2NvbmZsaWN0IGRlbGV0 ZV9taXNzaW5nIGRldGVjdGVkIG9uIHJlbGF0aW9uICJwdWJsaWMudGFiMV8yXzIiLipcbi4qREVU QUlMOi4qIERpZCBub3QgZmluZCB0aGUgcm93IHRvIGJlIGRlbGV0ZWQuLywKIAknZGVsZXRlIHRh cmdldCByb3cgaXMgbWlzc2luZyBpbiB0YWIxXzJfMicpOwogb2soICRsb2dmaWxlID1+Ci0JICBx ci9sb2dpY2FsIHJlcGxpY2F0aW9uIGRpZCBub3QgZmluZCByb3cgdG8gYmUgZGVsZXRlZCBpbiBy ZXBsaWNhdGlvbiB0YXJnZXQgcmVsYXRpb24gInRhYjFfZGVmIi8sCisJICBxci9jb25mbGljdCBk ZWxldGVfbWlzc2luZyBkZXRlY3RlZCBvbiByZWxhdGlvbiAicHVibGljLnRhYjFfZGVmIi4qXG4u KkRFVEFJTDouKiBEaWQgbm90IGZpbmQgdGhlIHJvdyB0byBiZSBkZWxldGVkLi8sCiAJJ2RlbGV0 ZSB0YXJnZXQgcm93IGlzIG1pc3NpbmcgaW4gdGFiMV9kZWYnKTsKIAotJG5vZGVfc3Vic2NyaWJl cjEtPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLAotCSJsb2dfbWluX21lc3NhZ2VzID0g d2FybmluZyIpOwotJG5vZGVfc3Vic2NyaWJlcjEtPnJlbG9hZDsKKyRub2RlX3N1YnNjcmliZXIx LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwkiQUxURVIgU1VCU0NSSVBUSU9OIHN1YjEgU0VUIChk ZXRlY3RfY29uZmxpY3QgPSBmYWxzZSkiCispOwogCiAjIFRlc3RzIGZvciByZXBsaWNhdGlvbiB1 c2luZyByb290IHRhYmxlIGlkZW50aXR5IGFuZCBzY2hlbWEKIApAQCAtNzczLDEyICs3NzMsMTIg QEAgcHViX3RhYjJ8M3x5eXkKIHB1Yl90YWIyfDV8enp6CiB4eHhfY3w2fGFhYSksICdpbnNlcnRz IGludG8gdGFiMiByZXBsaWNhdGVkJyk7CiAKLSMgQ2hlY2sgdGhhdCBzdWJzY3JpYmVyIGhhbmRs ZXMgY2FzZXMgd2hlcmUgdXBkYXRlL2RlbGV0ZSB0YXJnZXQgdHVwbGUKLSMgaXMgbWlzc2luZy4g IFdlIGhhdmUgdG8gbG9vayBmb3IgdGhlIERFQlVHMSBsb2cgbWVzc2FnZXMgYWJvdXQgdGhhdCwK LSMgc28gdGVtcG9yYXJpbHkgYnVtcCB1cCB0aGUgbG9nIHZlcmJvc2l0eS4KLSRub2RlX3N1YnNj cmliZXIxLT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywKLQkibG9nX21pbl9tZXNzYWdl cyA9IGRlYnVnMSIpOwotJG5vZGVfc3Vic2NyaWJlcjEtPnJlbG9hZDsKKyMgVG8gY2hlY2sgdGhh dCBzdWJzY3JpYmVyIGhhbmRsZXMgY2FzZXMgd2hlcmUgdXBkYXRlL2RlbGV0ZSB0YXJnZXQgdHVw bGUKKyMgaXMgbWlzc2luZywgZGV0ZWN0X2NvbmZsaWN0IGlzIHRlbXBvcmFyaWx5IGVuYWJsZWQg dG8gbG9nIGNvbmZsaWN0cworIyByZWxhdGVkIHRvIG1pc3NpbmcgdHVwbGVzLgorJG5vZGVfc3Vi c2NyaWJlcjEtPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCSJBTFRFUiBTVUJTQ1JJUFRJT04gc3Vi X3ZpYXJvb3QgU0VUIChkZXRlY3RfY29uZmxpY3QgPSB0cnVlKSIKKyk7CiAKICRub2RlX3N1YnNj cmliZXIxLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIkRFTEVURSBGUk9NIHRhYjIiKTsKIApAQCAt Nzk2LDE1ICs3OTYsMTUgQEAgJG5vZGVfcHVibGlzaGVyLT53YWl0X2Zvcl9jYXRjaHVwKCdzdWIy Jyk7CiAKICRsb2dmaWxlID0gc2x1cnBfZmlsZSgkbm9kZV9zdWJzY3JpYmVyMS0+bG9nZmlsZSgp LCAkbG9nX2xvY2F0aW9uKTsKIG9rKCAkbG9nZmlsZSA9fgotCSAgcXIvbG9naWNhbCByZXBsaWNh dGlvbiBkaWQgbm90IGZpbmQgcm93IHRvIGJlIHVwZGF0ZWQgaW4gcmVwbGljYXRpb24gdGFyZ2V0 IHJlbGF0aW9uJ3MgcGFydGl0aW9uICJ0YWIyXzEiLywKKwkgIHFyL2NvbmZsaWN0IHVwZGF0ZV9t aXNzaW5nIGRldGVjdGVkIG9uIHJlbGF0aW9uICJwdWJsaWMudGFiMl8xIi4qXG4uKkRFVEFJTDou KiBEaWQgbm90IGZpbmQgdGhlIHJvdyB0byBiZSB1cGRhdGVkLi8sCiAJJ3VwZGF0ZSB0YXJnZXQg cm93IGlzIG1pc3NpbmcgaW4gdGFiMl8xJyk7CiBvayggJGxvZ2ZpbGUgPX4KLQkgIHFyL2xvZ2lj YWwgcmVwbGljYXRpb24gZGlkIG5vdCBmaW5kIHJvdyB0byBiZSBkZWxldGVkIGluIHJlcGxpY2F0 aW9uIHRhcmdldCByZWxhdGlvbiAidGFiMl8xIi8sCisJICBxci9jb25mbGljdCBkZWxldGVfbWlz c2luZyBkZXRlY3RlZCBvbiByZWxhdGlvbiAicHVibGljLnRhYjJfMSIuKlxuLipERVRBSUw6Liog RGlkIG5vdCBmaW5kIHRoZSByb3cgdG8gYmUgZGVsZXRlZC4vLAogCSdkZWxldGUgdGFyZ2V0IHJv dyBpcyBtaXNzaW5nIGluIHRhYjJfMScpOwogCi0kbm9kZV9zdWJzY3JpYmVyMS0+YXBwZW5kX2Nv bmYoJ3Bvc3RncmVzcWwuY29uZicsCi0JImxvZ19taW5fbWVzc2FnZXMgPSB3YXJuaW5nIik7Ci0k bm9kZV9zdWJzY3JpYmVyMS0+cmVsb2FkOworJG5vZGVfc3Vic2NyaWJlcjEtPnNhZmVfcHNxbCgn cG9zdGdyZXMnLAorCSJBTFRFUiBTVUJTQ1JJUFRJT04gc3ViX3ZpYXJvb3QgU0VUIChkZXRlY3Rf Y29uZmxpY3QgPSBmYWxzZSkiCispOwogCiAjIFRlc3QgdGhhdCByZXBsaWNhdGlvbiBjb250aW51 ZXMgdG8gd29yayBjb3JyZWN0bHkgYWZ0ZXIgYWx0ZXJpbmcgdGhlCiAjIHBhcnRpdGlvbiBvZiBh IHBhcnRpdGlvbmVkIHRhcmdldCB0YWJsZS4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlw dGlvbi90LzAyOV9vbl9lcnJvci5wbCBiL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAyOV9vbl9l cnJvci5wbAppbmRleCAwYWI1N2E0YjViLi40OTZhM2M2Y2Q5IDEwMDY0NAotLS0gYS9zcmMvdGVz dC9zdWJzY3JpcHRpb24vdC8wMjlfb25fZXJyb3IucGwKKysrIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0 aW9uL3QvMDI5X29uX2Vycm9yLnBsCkBAIC0zMCw3ICszMCw3IEBAIHN1YiB0ZXN0X3NraXBfbHNu CiAJIyBFUlJPUiB3aXRoIGl0cyBDT05URVhUIHdoZW4gcmV0cmlldmluZyB0aGlzIGluZm9ybWF0 aW9uLgogCW15ICRjb250ZW50cyA9IHNsdXJwX2ZpbGUoJG5vZGVfc3Vic2NyaWJlci0+bG9nZmls ZSwgJG9mZnNldCk7CiAJJGNvbnRlbnRzID1+Ci0JICBxci9kdXBsaWNhdGUga2V5IHZhbHVlIHZp b2xhdGVzIHVuaXF1ZSBjb25zdHJhaW50ICJ0YmxfcGtleSIuKlxuLipERVRBSUw6Lipcbi4qQ09O VEVYVDouKiBmb3IgcmVwbGljYXRpb24gdGFyZ2V0IHJlbGF0aW9uICJwdWJsaWMudGJsIiBpbiB0 cmFuc2FjdGlvbiBcZCssIGZpbmlzaGVkIGF0IChbWzp4ZGlnaXQ6XV0rXC9bWzp4ZGlnaXQ6XV0r KS9tCisJICBxci9jb25mbGljdCBpbnNlcnRfZXhpc3RzIGRldGVjdGVkIG9uIHJlbGF0aW9uICJw dWJsaWMudGJsIi4qXG4uKkRFVEFJTDouKiBLZXkgXChpXCk9XCgxXCkgYWxyZWFkeSBleGlzdHMg aW4gdW5pcXVlIGluZGV4ICJ0YmxfcGtleSIsIHdoaWNoIHdhcyBtb2RpZmllZCBieSBvcmlnaW4g XGQrIGluIHRyYW5zYWN0aW9uIFxkKyBhdCAuKlxuLipDT05URVhUOi4qIGZvciByZXBsaWNhdGlv biB0YXJnZXQgcmVsYXRpb24gInB1YmxpYy50YmwiIGluIHRyYW5zYWN0aW9uIFxkKywgZmluaXNo ZWQgYXQgKFtbOnhkaWdpdDpdXStcL1tbOnhkaWdpdDpdXSspL20KIAkgIG9yIGRpZSAiY291bGQg bm90IGdldCBlcnJvci1MU04iOwogCW15ICRsc24gPSAkMTsKIApAQCAtODMsNiArODMsNyBAQCAk bm9kZV9zdWJzY3JpYmVyLT5hcHBlbmRfY29uZigKIAkncG9zdGdyZXNxbC5jb25mJywKIAlxcVsK IG1heF9wcmVwYXJlZF90cmFuc2FjdGlvbnMgPSAxMAordHJhY2tfY29tbWl0X3RpbWVzdGFtcCA9 IG9uCiBdKTsKICRub2RlX3N1YnNjcmliZXItPnN0YXJ0OwogCkBAIC0xMDksNyArMTEwLDcgQEAg bXkgJHB1Ymxpc2hlcl9jb25uc3RyID0gJG5vZGVfcHVibGlzaGVyLT5jb25uc3RyIC4gJyBkYm5h bWU9cG9zdGdyZXMnOwogJG5vZGVfcHVibGlzaGVyLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKIAki Q1JFQVRFIFBVQkxJQ0FUSU9OIHB1YiBGT1IgVEFCTEUgdGJsIik7CiAkbm9kZV9zdWJzY3JpYmVy LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKLQkiQ1JFQVRFIFNVQlNDUklQVElPTiBzdWIgQ09OTkVD VElPTiAnJHB1Ymxpc2hlcl9jb25uc3RyJyBQVUJMSUNBVElPTiBwdWIgV0lUSCAoZGlzYWJsZV9v bl9lcnJvciA9IHRydWUsIHN0cmVhbWluZyA9IG9uLCB0d29fcGhhc2UgPSBvbikiCisJIkNSRUFU RSBTVUJTQ1JJUFRJT04gc3ViIENPTk5FQ1RJT04gJyRwdWJsaXNoZXJfY29ubnN0cicgUFVCTElD QVRJT04gcHViIFdJVEggKGRpc2FibGVfb25fZXJyb3IgPSB0cnVlLCBzdHJlYW1pbmcgPSBvbiwg dHdvX3BoYXNlID0gb24sIGRldGVjdF9jb25mbGljdCA9IG9uKSIKICk7CiAKICMgSW5pdGlhbCBz eW5jaHJvbml6YXRpb24gZmFpbHVyZSBjYXVzZXMgdGhlIHN1YnNjcmlwdGlvbiB0byBiZSBkaXNh YmxlZC4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzMF9vcmlnaW4ucGwg Yi9zcmMvdGVzdC9zdWJzY3JpcHRpb24vdC8wMzBfb3JpZ2luLnBsCmluZGV4IDA1NjU2MWYwMDgu LjAzZGFiZmViNzIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3N1YnNjcmlwdGlvbi90LzAzMF9vcmln aW4ucGwKKysrIGIvc3JjL3Rlc3Qvc3Vic2NyaXB0aW9uL3QvMDMwX29yaWdpbi5wbApAQCAtMjYs NyArMjYsMTIgQEAgbXkgJHN0ZGVycjsKICMgbm9kZV9BCiBteSAkbm9kZV9BID0gUG9zdGdyZVNR TDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdub2RlX0EnKTsKICRub2RlX0EtPmluaXQoYWxsb3dzX3N0 cmVhbWluZyA9PiAnbG9naWNhbCcpOworCisjIEVuYWJsZSB0aGUgdHJhY2tfY29tbWl0X3RpbWVz dGFtcCB0byBkZXRlY3QgdGhlIGNvbmZsaWN0IHdoZW4gYXR0ZW1wdGluZyB0bworIyB1cGRhdGUg YSByb3cgdGhhdCB3YXMgcHJldmlvdXNseSBtb2RpZmllZCBieSBhIGRpZmZlcmVudCBvcmlnaW4u Ciskbm9kZV9BLT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywgJ3RyYWNrX2NvbW1pdF90 aW1lc3RhbXAgPSBvbicpOwogJG5vZGVfQS0+c3RhcnQ7CisKICMgbm9kZV9CCiBteSAkbm9kZV9C ID0gUG9zdGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdub2RlX0InKTsKICRub2RlX0ItPmlu aXQoYWxsb3dzX3N0cmVhbWluZyA9PiAnbG9naWNhbCcpOwpAQCAtODksMTEgKzk0LDMyIEBAIGlz KCAkcmVzdWx0LCBxcSgxMQogCSdJbnNlcnRlZCBzdWNjZXNzZnVsbHkgd2l0aG91dCBsZWFkaW5n IHRvIGluZmluaXRlIHJlY3Vyc2lvbiBpbiBiaWRpcmVjdGlvbmFsIHJlcGxpY2F0aW9uIHNldHVw JwogKTsKIAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBDaGVjayB0aGF0IHRoZSBjb25mbGlj dCBjYW4gYmUgZGV0ZWN0ZWQgd2hlbiBhdHRlbXB0aW5nIHRvIHVwZGF0ZSBhIHJvdyB0aGF0Cisj IHdhcyBwcmV2aW91c2x5IG1vZGlmaWVkIGJ5IGEgZGlmZmVyZW50IHNvdXJjZS4KKyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMKKworJG5vZGVfQS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVS IFNVQlNDUklQVElPTiAkc3VibmFtZV9BQiBTRVQgKGRldGVjdF9jb25mbGljdCA9IHRydWUpOyIp OworCiskbm9kZV9CLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgIlVQREFURSB0YWIgU0VUIGEgPSAx MCBXSEVSRSBhID0gMTE7Iik7CisKKyRub2RlX0EtPndhaXRfZm9yX2xvZygKKwlxci9VcGRhdGlu ZyBhIHJvdyB0aGF0IHdhcyBtb2RpZmllZCBieSBhIGRpZmZlcmVudCBvcmlnaW4gWzAtOV0rIGlu IHRyYW5zYWN0aW9uIFswLTldKyBhdCAuKi8KKyk7CisKICRub2RlX0EtPnNhZmVfcHNxbCgncG9z dGdyZXMnLCAiREVMRVRFIEZST00gdGFiOyIpOwogCiAkbm9kZV9BLT53YWl0X2Zvcl9jYXRjaHVw KCRzdWJuYW1lX0JBKTsKICRub2RlX0ItPndhaXRfZm9yX2NhdGNodXAoJHN1Ym5hbWVfQUIpOwog CisjIFRoZSByZW1haW5pbmcgdGVzdHMgbm8gbG9uZ2VyIHRlc3QgY29uZmxpY3QgZGV0ZWN0aW9u LgorJG5vZGVfQS0+c2FmZV9wc3FsKCdwb3N0Z3JlcycsCisJIkFMVEVSIFNVQlNDUklQVElPTiAk c3VibmFtZV9BQiBTRVQgKGRldGVjdF9jb25mbGljdCA9IGZhbHNlKTsiKTsKKworJG5vZGVfQS0+ YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsICd0cmFja19jb21taXRfdGltZXN0YW1wID0g b2ZmJyk7Ciskbm9kZV9BLT5yZXN0YXJ0OworCiAjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCiAjIENo ZWNrIHRoYXQgcmVtb3RlIGRhdGEgb2Ygbm9kZV9CICh0aGF0IG9yaWdpbmF0ZWQgZnJvbSBub2Rl X0MpIGlzIG5vdAogIyBwdWJsaXNoZWQgdG8gbm9kZV9BLgpkaWZmIC0tZ2l0IGEvc3JjL3Rvb2xz L3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlz dAppbmRleCA2MWFkNDE3Y2RlLi5mNDJlZmUxMmI3IDEwMDY0NAotLS0gYS9zcmMvdG9vbHMvcGdp bmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlz dApAQCAtNDY1LDYgKzQ2NSw3IEBAIENvbmRpdGlvblZhcmlhYmxlTWluaW1hbGx5UGFkZGVkCiBD b25kaXRpb25hbFN0YWNrCiBDb25maWdEYXRhCiBDb25maWdWYXJpYWJsZQorQ29uZmxpY3RUeXBl CiBDb25uQ2FjaGVFbnRyeQogQ29ubkNhY2hlS2V5CiBDb25uUGFyYW1zCi0tIAoyLjMwLjAud2lu ZG93cy4yCgo= --_003_OS0PR01MB57161006B8F2779F2C97318194D42OS0PR01MB5716jpnp_--