From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org [79.124.17.100]) by master.gitmailbox.com (Postfix) with ESMTP id 37F7C4952B for ; Wed, 12 Jun 2024 02:55:55 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 7F12168D8BF; Wed, 12 Jun 2024 05:55:53 +0300 (EEST) Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.12]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id B2EFF68D7FD for ; Wed, 12 Jun 2024 05:55:45 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1718160951; x=1749696951; h=from:to:subject:date:message-id:references:in-reply-to: content-id:content-transfer-encoding:mime-version; bh=NJKdHOpKQGRSD/Tmn0JePGdhiT/2P2T53GnVJp3Q9D0=; b=X8fSjLnf7qNQisd5E1XjFNvJHRcx3z4CiWG5oEWz9o5YM2F8I0GYRkqZ 6Jw2hgKOBG986Dnfl4DvzfvJyz/F0yKYZjVH14+a2vGz5X4zzX7ZWh6PH e66IajmHPD0bwKnB5sdL/I+rSGVffJbfobTjrkWr7aFN2A+iceZ9dx2wu WjpEmefFFHUaYLzRi22GHJzViGQzbUuCyUt5lwYm2lnECG7ST8n3abPQK rkOjaDw9eBVJSoUpDwkh8EP7zvKQZ9i9t9X8Wr6M60DlT+WMww1ooYyjQ WNEcIu4hxKLAWxdvqiatqIoV7UnpBSi2M+71taOOm6GIYkMo5Hc+tCsqv g==; X-CSE-ConnectionGUID: 10DZHTVUTnqNdCotkcahRw== X-CSE-MsgGUID: As4HziiaQ52aF+mgARf3vQ== X-IronPort-AV: E=McAfee;i="6600,9927,11100"; a="18762649" X-IronPort-AV: E=Sophos;i="6.08,232,1712646000"; d="scan'208";a="18762649" Received: from orviesa005.jf.intel.com ([10.64.159.145]) by fmvoesa106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Jun 2024 19:55:43 -0700 X-CSE-ConnectionGUID: P5H6sts2SXyYsAUE9ziXlQ== X-CSE-MsgGUID: F8LRwTFRQLeZ5n9vnouKcg== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.08,232,1712646000"; d="scan'208";a="44583537" Received: from fmsmsx602.amr.corp.intel.com ([10.18.126.82]) by orviesa005.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 11 Jun 2024 19:55:43 -0700 Received: from fmsmsx612.amr.corp.intel.com (10.18.126.92) by fmsmsx602.amr.corp.intel.com (10.18.126.82) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 11 Jun 2024 19:55:43 -0700 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) by fmsmsx612.amr.corp.intel.com (10.18.126.92) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 11 Jun 2024 19:55:42 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx603.amr.corp.intel.com (10.18.126.83) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39 via Frontend Transport; Tue, 11 Jun 2024 19:55:42 -0700 Received: from NAM12-MW2-obe.outbound.protection.outlook.com (104.47.66.47) by edgegateway.intel.com (192.55.55.71) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Tue, 11 Jun 2024 19:55:42 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=l03ypPA43gjhrnMpA03kWh708vYeUWUHDu/ndCN60K1tqmTlX4W+GpBn8eUukP1YdYc5UulpkarkVrB8Nlfr8rcaCv+JKYGHNblEhs51OA+LmuG0cBPWjNUlRKGjxNyLsLqsFDV6TxofoMNkAxqtLVZ0FCWx1Cx8WkJjjpWD7++LMW5ulj1tGS5kyujsiAwbp100capLdgV2P7STjiD8D5+ZcEMxSZC7w4hwNeEd4lysHd69a/iagTqA6M7HOsNNn7pgz3ZvBQCxauYB0r679wfKnxMno+HsXBiNPK4zZL0DdM25ZDr3Hc0rx6pBs+mD/TyiH44LOlKhdeTAu7ckGg== 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=NJKdHOpKQGRSD/Tmn0JePGdhiT/2P2T53GnVJp3Q9D0=; b=I3V0i7uhKw3l1/5EE1ynAIAsGnD52AW8IZBUGPWRtM9ltKoXKdIXXNrlP3nM34u80WdsVY0elFN7Er8Wa9XoPDv0+Bn3AcZdGKb4L+4ZcmCBX1wqZv2wRmv8O3SlF7ZCcRE6QNcSvFRe8D4Nu9O7hRcUE/lKOGpWggo9dPehy0kJD8wJSCfg2lZl0eKjua4yA0K6BbtL+2CyTD73leiRqOavg8xK+zOt2JYwiqk5TqIkE9SmYc9GL50dHHq45fS0ptv5X4DPQA3ORPA5Y6sjL42tDUUjSqHZbA05tdNWGs/0OjlIw1Lu8G+xEI7wVvz6puEUvcxxyldxF++Ug0JoCA== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from DM3PR11MB8757.namprd11.prod.outlook.com (2603:10b6:8:1af::7) by SJ0PR11MB5215.namprd11.prod.outlook.com (2603:10b6:a03:2d9::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7633.39; Wed, 12 Jun 2024 02:55:35 +0000 Received: from DM3PR11MB8757.namprd11.prod.outlook.com ([fe80::103a:9795:6ae2:7c96]) by DM3PR11MB8757.namprd11.prod.outlook.com ([fe80::103a:9795:6ae2:7c96%5]) with mapi id 15.20.7633.037; Wed, 12 Jun 2024 02:55:35 +0000 From: "Xiang, Haihao" To: "ffmpeg-devel@ffmpeg.org" Thread-Topic: [FFmpeg-devel] [PATCH v5 1/2] configure, lavu, lavc, lavfi: Remove libva 1.x support Thread-Index: AQHat4TJABkNwly67keq6XNW+tDTP7HDePKA Date: Wed, 12 Jun 2024 02:55:35 +0000 Message-ID: <805e25938a078936cc33a129e8e0a24820b1b6da.camel@intel.com> References: <20240605201310.2343779-1-sw@jkqxz.net> In-Reply-To: <20240605201310.2343779-1-sw@jkqxz.net> Accept-Language: en-AS, zh-CN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: user-agent: Evolution 3.44.4-0ubuntu2 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=intel.com; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: DM3PR11MB8757:EE_|SJ0PR11MB5215:EE_ x-ms-office365-filtering-correlation-id: f023f43d-eb5b-4611-e763-08dc8a8b21f7 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230032|376006|366008|1800799016|38070700010; x-microsoft-antispam-message-info: =?utf-8?B?bkptU0tGSlp3Rkt4UGVpMXM3a0U3YVgxRGRla29YcG1lWE1MTTJab0lob0Q5?= =?utf-8?B?WGp0bExBUjg3VVRldzJYM2tHWjhtdkJZN0NLWklUWGNSckxNY0RpUmx5anVa?= =?utf-8?B?V2FSeU9seGNPdmE5cjlYNllOMFRtaFg3WFYyQ2JLUGlXcTRwRFR3dEJKUmRV?= =?utf-8?B?TDJLMHk2dXFCZ3h4S1BMbDZiZHgrK2RCWUVqN0VjbGs3dndCallqVHQxOFhi?= =?utf-8?B?N2lYdmhHYUN5SzRnTGhjaHVrNDF0V0szOXN4TTZWTHFxZzhEL1J4RGZqWXhn?= =?utf-8?B?Vm56SVlnU00yTnAxQ1BGS2lHM1N3MG5ybUIyeitiUmx0M1ltemxFekkybVVi?= =?utf-8?B?d3AxYUVXYXF3K2wwR3JMdTlsTmo4d1VaOE1uclBHbXhJaXMxUE5tVUxXRm13?= =?utf-8?B?MGJNRnRTVXlTbGdTMU9tYVQwYm51QUVTT0pacUhiUWJVWnBCNnU1RGR4MjdR?= =?utf-8?B?Vkl4VEFFT3p3dEpPUmprdFRHZG5xU0RRVGhHM0dwQ2hZSmI0UUwrVXJZYTNj?= =?utf-8?B?ditFSExxUUdPYmFweE4xOUllTmthNWl5YzJBZ1kxaWttQjM2N011YUlMZEJI?= =?utf-8?B?NkpEcko0dmYxTGtoWWlUd3BWbzZHclQvMllzdmFZNjh3ZFhVTVFlOFFtaXlt?= =?utf-8?B?TXQxdkxtVEgwRjV6Z2lYakxOcUpmcENSMDE4M0N6ZVc5QnZTYUpWMVR0NnJX?= =?utf-8?B?QVY3a0NMTlhKVEM1TE4vZWxEWm1CeVYvWVVOUFc1aDhzNWhFSWFSQVV1dVhn?= =?utf-8?B?czNiNzNiOEY5OEZ5SitCQ0VqUDY0NWwrWkdBS3JweE5aODFaWnRZdmRGTnNP?= =?utf-8?B?bnJkR2lkazNHWWkveUJJTlFGdVpQcDBWTUloQWpiaFhMQWtJQlhhenQ2S1dL?= =?utf-8?B?aCtLRXNJUFlQME82eWU1QytXU3ZBeTFIYVZ5dkM0azRvUTQ5dmIzZDJxdEh0?= =?utf-8?B?bExWMHdiTUZCZFJFTjVsQU1vY2hDVVVHS01MbHQvajcyMm82cHhwRE9kOTF5?= =?utf-8?B?c3RsT2pWckhFdHhOU3JoWHNkWi9yWk10VFRWb3A3UFFjUk1CaFVoUFdwUVd6?= =?utf-8?B?ZXJIWGVNMjNNSm1GUCtGZ1d6elEybWprdXJzd09SaXYrdTA3SjJzOW9RNmFU?= =?utf-8?B?b1ZhWE1nWWRuRGc3N2sxOWFSMU1xbmtBRVlRUTJocGt1ai9mYmlDNzd4U0xD?= =?utf-8?B?NWM4RkZubFdESU12WTBwS1lYT0htWTlYSEowV2szQTVkWjVUUjFyZDJ2TmFL?= =?utf-8?B?VnBlYjZUVzM1M295RWtLaUpqczhPTU9lSmNlV28zaytiOXIwYjBpZlRzRXhS?= =?utf-8?B?Wm9wOHlvLzVmU0pwOTBxTUk5L2J3WXBRN3ljV0lIdDFycTNjeFgxOVBkUVBF?= =?utf-8?B?UzlRV0pVblZ1QmF1bGNSemRFTzJkb0ZGbEg5aExSY0JIRVBLdWhyT2JYSmZQ?= =?utf-8?B?bG1GL0pEUDI4Z3lzdGltZ1MwOWNXdUROV3ZKS2EybjZIMDhuaDhwbWN5U2to?= =?utf-8?B?TExmV1lqN0Y2WllCQjV2SmpoQmJpSmlKR2tvU0hLMVQzbHp0RS9JdytCL2VV?= =?utf-8?B?aHowaVFxYUZCU3lwak1LeHZmSEhiOUlVQkZaS1pTYy9XWXNKemtTN1BIZDN6?= =?utf-8?B?UGkrcGpkWk03d1NHdEFxcXplZE8zdkhvMytKR2tMVlJlSHJLSVdhTVFJWmJJ?= =?utf-8?B?YTY2ZFJNR2lJQmNBWWllN0RYTDRkRWhNSGlGNmgwRzBpeG56UlFXMDA0NlF1?= =?utf-8?B?SU1TSkoxRWJ6b2dyR1pDd2ZNMnB6bjlZcUp6ZGZLRnR0OU9vUUdmbXNUL1cw?= =?utf-8?Q?GHcNSXJsY1k3QPaTqycpo2UBVG1W4bk6ghgjw=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM3PR11MB8757.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230032)(376006)(366008)(1800799016)(38070700010); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?MEREY0lnQm5raFZrMnhpOWd1SWFpUnY3WEtkYmFlWDYyRmY3UTI2SGVJOUJv?= =?utf-8?B?VGp1WGNZUUtHVnlVenAybWd5L3Btdk1WakZhYkJnTnJUaE5ZOW1FL1g5Q3pp?= =?utf-8?B?cXpNSCt6WC9pamtJdVQxV002Z1pIeEkyNVluRWo1M0lEem1UU1hHd083WDNE?= =?utf-8?B?Sk55bEl6WFNXQkNURGxaUk0zc1Y4bVBqRHlSSHJlZkhKVXpSaFFSbERJWkNR?= =?utf-8?B?Y0I4Z3hyZS9oSjNJRVJDb2RvOUFDei9XLzN1VWt3NDFIMFV3a3IyVUtkdG82?= =?utf-8?B?TFJwVVRYM2ZRaGliTU5jRzNzS0NoeDhGLzNST1BVOU9pRDdxbmRIWHJ4dVpM?= =?utf-8?B?aG1YWnVFdUx3K1RrcmMrT2hqVGZieG5YRjFHbHg4S1UvRmJpQU02NCsxVWlB?= =?utf-8?B?dXphZU9SZElwWGEwOEM4T0p1VVBPSGZMc2VteFNobWdZMGgzSVE4aGlRenlT?= =?utf-8?B?b3dRRlltdStoL1hISlpmR2NVQnFmUDZpV2o1Zy80bGYyT0k5UXRjUVhYa3Bo?= =?utf-8?B?V3E1cHB6OTN3UzhDTVprcitVTmh3K0lwakc0NUhUTUowQmFad3hLS1RqWjhu?= =?utf-8?B?ZGs2ZGEyTDlaTXdRdk4vZ0N3S1RaTEQ3S0ZYalN4OTdBcDhVVmNZbUJKQi9Z?= =?utf-8?B?NU8wVUEram5JMHduSzNRLzU1VXp0ZWFRWHA0YXlvVnVVdVdlb0E5c1dueU5y?= =?utf-8?B?RmJLR244eGcvY0lvQlBPdXZGeE5IcDlpKzYyeWJVeGxoQVFzTlBMU08wbith?= =?utf-8?B?MitIMlFKMVZPK0t3OFk1WmFqelRkc0lveDIra2dwUWNpdXdVOTg4djY2cWxM?= =?utf-8?B?MWx4eWh5dkdSaFhQRDhwYWNYS0hIejBaaUg3ZTJhMzRCb09lWUxiQi9ILy9L?= =?utf-8?B?RDBiekVrV3dPYU84S3hQQW9kME4rcVFlcXM2amdiWWlpdStMcnk2aGFwYlc4?= =?utf-8?B?MTJGV040Vng2a3JXUVQ3RHhFczFjSjNmVzVZNkh3eDdHVnE4Vlowb0dFblZl?= =?utf-8?B?cUhwdkwydjNVRllGTVhxNVA3bFN2OE93MnJwUWN6bERpendldkI4VGRrRGxl?= =?utf-8?B?K05GRExFNEVIRUY3alJKWGdjcXZPN05qQkNtWndaVHlQOTZHRGRGVUE4UjZp?= =?utf-8?B?NDUzREVJS29TY1NzSDA1Ti9LYUd6TkQ2ek5FVVFYWm4rWEpRYzY0c09MMnpF?= =?utf-8?B?M0ZIZTg3bDFYMEgxWkNiMHR2WmVEZXZGMXdCaW1KajRuRlk0MUVESnFYZ0tv?= =?utf-8?B?dUpHN2lkeGZ0R1V1dzlnTFJnMU43K01NdkZJd0dqeEhaTGdKbTBvSTd4V0gw?= =?utf-8?B?N3FnYS9jQVM2OXYzZDFqS2tyV1dBQkxXS2IwQ3ZId2hhaVBTUldIb3MvaGQ4?= =?utf-8?B?dHZsWGFzSGhScSs3VWgwUFM0ZmFaWi82dWx3MEFtQXhmTnZ2VEJlcDg4cG02?= =?utf-8?B?T2RlcmhRcisxKzFGZEFWVnk1Z2ZUSkpyeTgrbENXYkdwa3FBZmZzTmlvRFN4?= =?utf-8?B?N25UUUg3YzRHMTQ2cVErRm5SR1d3K0YxdTVDZXdZanpkU3k1SGJkRlNSUXFI?= =?utf-8?B?T3JDZXZPYzRWKzVlWit2QlZJdTFIdVRXMGl6NE9nZk9OZWF1bVlkMlRUVmZq?= =?utf-8?B?akMvMSthNjNKNVFON1hOSlhpTjMrV1Jvd0NDaWV3RmhBOFhid201d1VCYmZM?= =?utf-8?B?T1gvUmdGWGNjN2V1OGoxZlM0aGhFaGxwNkFuT2tCNjU5aWF6SWI0YlhaR2lZ?= =?utf-8?B?dVExOUpEbTNiNFpRVWd6bXRSTzg4M2dHK1F3OFJDdnI0TFdBVzBSOTBscFNz?= =?utf-8?B?NVM1Qit0ak5mSzUrYzUvV3Y3d0E3MzIzOHJjemtoR2NPWVlHVHB5SUo2V0pV?= =?utf-8?B?cllYaVlCUmMwdk5VSVJSSkZWU211MGV0U1ZLL3pKaU90NDZMc0ZaTmZkR2l6?= =?utf-8?B?YXY3Mkk0VHowTTJLUzdpVEVLUXc5a0RjUGxEcEFRdnZEakZ6UW5lTEJjQm5z?= =?utf-8?B?SnNOeFlHL2Z2T25pV0lQeWpwQkJ6WWJ3MUlvMlZZakFQWmtJUk5aRjdkY0Rm?= =?utf-8?B?M0dYdE5qOVZzNy9YY2ZkZDAxaE9HT2JoRG1sRUF3U3NQMWdXS25CQWhiU0Rl?= =?utf-8?B?RkR3Nm42dEZuSzJ5M1EzWU0vdjdkbFZqZUJ1ai9WcVNOSG1UcDczK01CdEMv?= =?utf-8?B?cFE9PQ==?= Content-ID: <2637FC51E76305419A264FD025543DEE@namprd11.prod.outlook.com> MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM3PR11MB8757.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: f023f43d-eb5b-4611-e763-08dc8a8b21f7 X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Jun 2024 02:55:35.4256 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: tbSU1FEEvpcTBn8/HiNpdeMhSAXCZerm9DHHUiMy8vYJA0zCyW8KAkZ+/a4iORom/eKGbIzP0OxbaSbeuTbrSA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: SJ0PR11MB5215 X-OriginatorOrg: intel.com Subject: Re: [FFmpeg-devel] [PATCH v5 1/2] configure, lavu, lavc, lavfi: Remove libva 1.x support X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" Archived-At: List-Archive: List-Post: T24gV28sIDIwMjQtMDYtMDUgYXQgMjE6MTMgKzAxMDAsIE1hcmsgVGhvbXBzb24gd3JvdGU6Cj4g bGlidmEgMi4wIHdhcyByZWxlYXNlZCBpbiAyMDE3IGFuZCB0aGUgMi54IHZlcnNpb25zIGFyZSBp bmNsdWRlZCBpbiBhbGwKPiBzdXBwb3J0ZWQgZGlzdHJpYnV0aW9ucyBub3dhZGF5cy7CoCBWYXJp b3VzIGZlYXR1cmVzIG5vIGxvbmdlciBuZWVkIGFueQo+IGNvbmZpZ3VyZSBjaGVjayBhZnRlciB0 aGlzIGNoYW5nZSwgaW5jbHVkaW5nIGFsbCBjb2RlY3MgZXhjZXB0IEFWMS4KPiBOb3RlIHRoYXQg dGhlIGxpYnZhIHZlcnNpb24gaXMgdGhlIEFQSSB2ZXJzaW9uIHBsdXMgb25lLCBzbyB0aGlzIGlz Cj4gcmVtb3Zpbmcgc3VwcG9ydCBmb3IgVkFBUEkgMC54IGFuZCByZXF1aXJpbmcgVkFBUEkgMS54 Lgo+IC0tLQo+IE5vdyBzcXVhc2hlZC4KPiAKPiAKPiDCoGNvbmZpZ3VyZcKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB8IDI1ICsrKy0tLS0tLS0tCj4gwqBsaWJhdmNv ZGVjL3ZhYXBpX2RlY29kZS5jwqDCoMKgwqDCoCB8IDM5ICsrLS0tLS0tLS0tLS0tLS0tCj4gwqBs aWJhdmNvZGVjL3ZhYXBpX2VuY29kZS5jwqDCoMKgwqDCoCB8IDc4ICsrKysrKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KPiDCoGxpYmF2Y29kZWMvdmFhcGlfZW5jb2RlLmjCoMKgwqDCoMKg IHzCoCA5IC0tLS0KPiDCoGxpYmF2Y29kZWMvdmFhcGlfZW5jb2RlX2gyNjQuYyB8IDE4IC0tLS0t LS0tCj4gwqBsaWJhdmNvZGVjL3ZhYXBpX2VuY29kZV9oMjY1LmMgfMKgIDIgLQo+IMKgbGliYXZm aWx0ZXIvdmFhcGlfdnBwLmPCoMKgwqDCoMKgwqDCoCB8IDIyICsrKystLS0tLS0KPiDCoGxpYmF2 dXRpbC9od2NvbnRleHRfdmFhcGkuY8KgwqDCoCB8IDIyIC0tLS0tLS0tLS0KPiDCoDggZmlsZXMg Y2hhbmdlZCwgMjkgaW5zZXJ0aW9ucygrKSwgMTg2IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1n aXQgYS9jb25maWd1cmUgYi9jb25maWd1cmUKPiBpbmRleCA2YzViOGFhYjlhLi4wNmU2ZmEyMmYy IDEwMDc1NQo+IC0tLSBhL2NvbmZpZ3VyZQo+ICsrKyBiL2NvbmZpZ3VyZQo+IEBAIC0yNjMwLDcg KzI2MzAsNiBAQCBDT05GSUdfRVhUUkE9Igo+IMKgwqDCoMKgIHRleHR1cmVkc3AKPiDCoMKgwqDC oCB0ZXh0dXJlZHNwZW5jCj4gwqDCoMKgwqAgdHBlbGRzcAo+IC3CoMKgwqAgdmFhcGlfMQoKVGhl cmUgc3RpbGwgYXJlIHZhYXBpXzEgaW4gY29uZmlndXJlCgpjb25maWd1cmU6cGFkX3ZhYXBpX2Zp bHRlcl9kZXBzPSJ2YWFwaV8xIgpjb25maWd1cmU6ZHJhd2JveF92YWFwaV9maWx0ZXJfZGVwcz0i dmFhcGlfMSIKClRoYW5rcwpIYWloYW8KCgo+IMKgwqDCoMKgIHZhYXBpX2VuY29kZQo+IMKgwqDC oMKgIHZjMWRzcAo+IMKgwqDCoMKgIHZpZGVvZHNwCj4gQEAgLTMyMDAsNyArMzE5OSw3IEBAIGhl dmNfZHh2YTJfaHdhY2NlbF9kZXBzPSJkeHZhMiBEWFZBX1BpY1BhcmFtc19IRVZDIgo+IMKgaGV2 Y19keHZhMl9od2FjY2VsX3NlbGVjdD0iaGV2Y19kZWNvZGVyIgo+IMKgaGV2Y19udmRlY19od2Fj Y2VsX2RlcHM9Im52ZGVjIgo+IMKgaGV2Y19udmRlY19od2FjY2VsX3NlbGVjdD0iaGV2Y19kZWNv ZGVyIgo+IC1oZXZjX3ZhYXBpX2h3YWNjZWxfZGVwcz0idmFhcGkgVkFQaWN0dXJlUGFyYW1ldGVy QnVmZmVySEVWQyIKPiAraGV2Y192YWFwaV9od2FjY2VsX2RlcHM9InZhYXBpIgo+IMKgaGV2Y192 YWFwaV9od2FjY2VsX3NlbGVjdD0iaGV2Y19kZWNvZGVyIgo+IMKgaGV2Y192ZHBhdV9od2FjY2Vs X2RlcHM9InZkcGF1IFZkcFBpY3R1cmVJbmZvSEVWQyIKPiDCoGhldmNfdmRwYXVfaHdhY2NlbF9z ZWxlY3Q9ImhldmNfZGVjb2RlciIKPiBAQCAtMzI3Miw3ICszMjcxLDcgQEAgdnA5X2R4dmEyX2h3 YWNjZWxfZGVwcz0iZHh2YTIgRFhWQV9QaWNQYXJhbXNfVlA5Igo+IMKgdnA5X2R4dmEyX2h3YWNj ZWxfc2VsZWN0PSJ2cDlfZGVjb2RlciIKPiDCoHZwOV9udmRlY19od2FjY2VsX2RlcHM9Im52ZGVj Igo+IMKgdnA5X252ZGVjX2h3YWNjZWxfc2VsZWN0PSJ2cDlfZGVjb2RlciIKPiAtdnA5X3ZhYXBp X2h3YWNjZWxfZGVwcz0idmFhcGkgVkFEZWNQaWN0dXJlUGFyYW1ldGVyQnVmZmVyVlA5X2JpdF9k ZXB0aCIKPiArdnA5X3ZhYXBpX2h3YWNjZWxfZGVwcz0idmFhcGkiCj4gwqB2cDlfdmFhcGlfaHdh Y2NlbF9zZWxlY3Q9InZwOV9kZWNvZGVyIgo+IMKgdnA5X3ZkcGF1X2h3YWNjZWxfZGVwcz0idmRw YXUgVmRwUGljdHVyZUluZm9WUDkiCj4gwqB2cDlfdmRwYXVfaHdhY2NlbF9zZWxlY3Q9InZwOV9k ZWNvZGVyIgo+IEBAIC0zMzY1LDcgKzMzNjQsNiBAQCBoZXZjX3Fzdl9kZWNvZGVyX3NlbGVjdD0i aGV2Y19tcDR0b2FubmV4Yl9ic2YgcXN2ZGVjIgo+IMKgaGV2Y19xc3ZfZW5jb2Rlcl9zZWxlY3Q9 ImhldmNwYXJzZSBxc3ZlbmMiCj4gwqBoZXZjX3JrbXBwX2RlY29kZXJfZGVwcz0icmttcHAiCj4g wqBoZXZjX3JrbXBwX2RlY29kZXJfc2VsZWN0PSJoZXZjX21wNHRvYW5uZXhiX2JzZiIKPiAtaGV2 Y192YWFwaV9lbmNvZGVyX2RlcHM9IlZBRW5jUGljdHVyZVBhcmFtZXRlckJ1ZmZlckhFVkMiCj4g wqBoZXZjX3ZhYXBpX2VuY29kZXJfc2VsZWN0PSJhdHNjX2E1MyBjYnNfaDI2NSB2YWFwaV9lbmNv ZGUiCj4gwqBoZXZjX3Y0bDJtMm1fZGVjb2Rlcl9kZXBzPSJ2NGwyX20ybSBoZXZjX3Y0bDJfbTJt Igo+IMKgaGV2Y192NGwybTJtX2RlY29kZXJfc2VsZWN0PSJoZXZjX21wNHRvYW5uZXhiX2JzZiIK PiBAQCAtMzM3NCw3ICszMzcyLDYgQEAgbWpwZWdfY3V2aWRfZGVjb2Rlcl9kZXBzPSJjdXZpZCIK PiDCoG1qcGVnX3Fzdl9kZWNvZGVyX3NlbGVjdD0icXN2ZGVjIgo+IMKgbWpwZWdfcXN2X2VuY29k ZXJfZGVwcz0ibGlibWZ4Igo+IMKgbWpwZWdfcXN2X2VuY29kZXJfc2VsZWN0PSJxc3ZlbmMiCj4g LW1qcGVnX3ZhYXBpX2VuY29kZXJfZGVwcz0iVkFFbmNQaWN0dXJlUGFyYW1ldGVyQnVmZmVySlBF RyIKPiDCoG1qcGVnX3ZhYXBpX2VuY29kZXJfc2VsZWN0PSJjYnNfanBlZyBqcGVndGFibGVzIHZh YXBpX2VuY29kZSIKPiDCoG1wM19tZl9lbmNvZGVyX2RlcHM9Im1lZGlhZm91bmRhdGlvbiIKPiDC oG1wZWcxX2N1dmlkX2RlY29kZXJfZGVwcz0iY3V2aWQiCj4gQEAgLTM0MDMsNyArMzQwMCw2IEBA IHZwOF9tZWRpYWNvZGVjX2RlY29kZXJfZGVwcz0ibWVkaWFjb2RlYyIKPiDCoHZwOF9tZWRpYWNv ZGVjX2VuY29kZXJfZGVwcz0ibWVkaWFjb2RlYyIKPiDCoHZwOF9xc3ZfZGVjb2Rlcl9zZWxlY3Q9 InFzdmRlYyIKPiDCoHZwOF9ya21wcF9kZWNvZGVyX2RlcHM9InJrbXBwIgo+IC12cDhfdmFhcGlf ZW5jb2Rlcl9kZXBzPSJWQUVuY1BpY3R1cmVQYXJhbWV0ZXJCdWZmZXJWUDgiCj4gwqB2cDhfdmFh cGlfZW5jb2Rlcl9zZWxlY3Q9InZhYXBpX2VuY29kZSIKPiDCoHZwOF92NGwybTJtX2RlY29kZXJf ZGVwcz0idjRsMl9tMm0gdnA4X3Y0bDJfbTJtIgo+IMKgdnA4X3Y0bDJtMm1fZW5jb2Rlcl9kZXBz PSJ2NGwyX20ybSB2cDhfdjRsMl9tMm0iCj4gQEAgLTM0MTIsNyArMzQwOCw2IEBAIHZwOV9tZWRp YWNvZGVjX2RlY29kZXJfZGVwcz0ibWVkaWFjb2RlYyIKPiDCoHZwOV9tZWRpYWNvZGVjX2VuY29k ZXJfZGVwcz0ibWVkaWFjb2RlYyIKPiDCoHZwOV9xc3ZfZGVjb2Rlcl9zZWxlY3Q9InFzdmRlYyIK PiDCoHZwOV9ya21wcF9kZWNvZGVyX2RlcHM9InJrbXBwIgo+IC12cDlfdmFhcGlfZW5jb2Rlcl9k ZXBzPSJWQUVuY1BpY3R1cmVQYXJhbWV0ZXJCdWZmZXJWUDkiCj4gwqB2cDlfdmFhcGlfZW5jb2Rl cl9zZWxlY3Q9InZhYXBpX2VuY29kZSIKPiDCoHZwOV9xc3ZfZW5jb2Rlcl9kZXBzPSJsaWJtZngg TUZYX0NPREVDX1ZQOSIKPiDCoHZwOV9xc3ZfZW5jb2Rlcl9zZWxlY3Q9InFzdmVuYyIKPiBAQCAt Mzk2Niw5ICszOTYxLDkgQEAgeGZhZGVfdnVsa2FuX2ZpbHRlcl9kZXBzPSJ2dWxrYW4gc3BpcnZf Y29tcGlsZXIiCj4gwqB5YWRpZl9jdWRhX2ZpbHRlcl9kZXBzPSJmZm52Y29kZWMiCj4gwqB5YWRp Zl9jdWRhX2ZpbHRlcl9kZXBzX2FueT0iY3VkYV9udmNjIGN1ZGFfbGx2bSIKPiDCoHlhZGlmX3Zp ZGVvdG9vbGJveF9maWx0ZXJfZGVwcz0ibWV0YWwgY29yZXZpZGVvIHZpZGVvdG9vbGJveCIKPiAt aHN0YWNrX3ZhYXBpX2ZpbHRlcl9kZXBzPSJ2YWFwaV8xIgo+IC12c3RhY2tfdmFhcGlfZmlsdGVy X2RlcHM9InZhYXBpXzEiCj4gLXhzdGFja192YWFwaV9maWx0ZXJfZGVwcz0idmFhcGlfMSIKPiAr aHN0YWNrX3ZhYXBpX2ZpbHRlcl9kZXBzPSJ2YWFwaSIKPiArdnN0YWNrX3ZhYXBpX2ZpbHRlcl9k ZXBzPSJ2YWFwaSIKPiAreHN0YWNrX3ZhYXBpX2ZpbHRlcl9kZXBzPSJ2YWFwaSIKPiDCoGhzdGFj a19xc3ZfZmlsdGVyX2RlcHM9ImxpYm1meCIKPiDCoGhzdGFja19xc3ZfZmlsdGVyX3NlbGVjdD0i cXN2dnBwIgo+IMKgdnN0YWNrX3Fzdl9maWx0ZXJfZGVwcz0ibGlibWZ4Igo+IEBAIC03MjcxLDcg KzcyNjYsNyBAQCBlbmFibGVkIGxpYmRybSAmJgo+IMKgwqDCoMKgIGNoZWNrX3BrZ19jb25maWcg bGliZHJtX2dldGZiMiBsaWJkcm0gInhmODZkcm1Nb2RlLmgiIGRybU1vZGVHZXRGQjIKPiDCoAo+ IMKgZW5hYmxlZCB2YWFwaSAmJgo+IC3CoMKgwqAgY2hlY2tfcGtnX2NvbmZpZyB2YWFwaSAibGli dmEgPj0gMC4zNS4wIiAidmEvdmEuaCIgdmFJbml0aWFsaXplCj4gK8KgwqDCoCBjaGVja19wa2df Y29uZmlnIHZhYXBpICJsaWJ2YSA+PSAxLjAuMCIgInZhL3ZhLmgiIHZhSW5pdGlhbGl6ZQo+IMKg Cj4gwqBpZiBlbmFibGVkIHZhYXBpOyB0aGVuCj4gwqDCoMKgwqAgY2FzZSAkdGFyZ2V0X29zIGlu Cj4gQEAgLTcyODcsMTggKzcyODIsMTAgQEAgaWYgZW5hYmxlZCB2YWFwaTsgdGhlbgo+IMKgwqDC oMKgwqDCoMKgwqAgY2hlY2tfcGtnX2NvbmZpZyB2YWFwaV94MTEgImxpYnZhLXgxMSIgInZhL3Zh X3gxMS5oIiB2YUdldERpc3BsYXkKPiDCoMKgwqDCoCBmaQo+IMKgCj4gLcKgwqDCoCBjaGVja19j cHBfY29uZGl0aW9uIHZhYXBpXzEgInZhL3ZhLmgiICJWQV9DSEVDS19WRVJTSU9OKDEsIDAsIDAp Igo+IC0KPiAtwqDCoMKgIGNoZWNrX3R5cGUgInZhL3ZhLmggdmEvdmFfZGVjX2hldmMuaCIgIlZB UGljdHVyZVBhcmFtZXRlckJ1ZmZlckhFVkMiCj4gLcKgwqDCoCBjaGVja19zdHJ1Y3QgInZhL3Zh LmgiICJWQURlY1BpY3R1cmVQYXJhbWV0ZXJCdWZmZXJWUDkiIGJpdF9kZXB0aAo+IMKgwqDCoMKg IGNoZWNrX3N0cnVjdCAidmEvdmEuaCIgIlZBRGVjUGljdHVyZVBhcmFtZXRlckJ1ZmZlckFWMSIg Yml0X2RlcHRoX2lkeAo+IMKgwqDCoMKgIGNoZWNrX3R5cGXCoMKgICJ2YS92YS5oIHZhL3ZhX3Zw cC5oIgo+ICJWQVByb2NGaWx0ZXJQYXJhbWV0ZXJCdWZmZXJIRFJUb25lTWFwcGluZyIKPiDCoMKg wqDCoCBjaGVja19zdHJ1Y3QgInZhL3ZhLmggdmEvdmFfdnBwLmgiICJWQVByb2NQaXBlbGluZUNh cHMiIHJvdGF0aW9uX2ZsYWdzCj4gwqDCoMKgwqAgY2hlY2tfc3RydWN0ICJ2YS92YS5oIHZhL3Zh X3ZwcC5oIiAiVkFQcm9jUGlwZWxpbmVDYXBzIiBibGVuZF9mbGFncwo+IC3CoMKgwqAgY2hlY2tf dHlwZSAidmEvdmEuaCB2YS92YV9lbmNfaGV2Yy5oIiAiVkFFbmNQaWN0dXJlUGFyYW1ldGVyQnVm ZmVySEVWQyIKPiAtwqDCoMKgIGNoZWNrX3R5cGUgInZhL3ZhLmggdmEvdmFfZW5jX2pwZWcuaCIg IlZBRW5jUGljdHVyZVBhcmFtZXRlckJ1ZmZlckpQRUciCj4gLcKgwqDCoCBjaGVja190eXBlICJ2 YS92YS5oIHZhL3ZhX2VuY192cDguaCLCoCAiVkFFbmNQaWN0dXJlUGFyYW1ldGVyQnVmZmVyVlA4 Igo+IC3CoMKgwqAgY2hlY2tfdHlwZSAidmEvdmEuaCB2YS92YV9lbmNfdnA5LmgiwqAgIlZBRW5j UGljdHVyZVBhcmFtZXRlckJ1ZmZlclZQOSIKPiDCoMKgwqDCoCBjaGVja190eXBlICJ2YS92YS5o IHZhL3ZhX2VuY19hdjEuaCLCoCAiVkFFbmNQaWN0dXJlUGFyYW1ldGVyQnVmZmVyQVYxIgo+IMKg ZmkKPiDCoAo+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3ZhYXBpX2RlY29kZS5jIGIvbGliYXZj b2RlYy92YWFwaV9kZWNvZGUuYwo+IGluZGV4IDdjOTFkNTBmN2IuLjkwMTg1NThiNDggMTAwNjQ0 Cj4gLS0tIGEvbGliYXZjb2RlYy92YWFwaV9kZWNvZGUuYwo+ICsrKyBiL2xpYmF2Y29kZWMvdmFh cGlfZGVjb2RlLmMKPiBAQCAtMTk3LDE2ICsxOTcsMTAgQEAgaW50IGZmX3ZhYXBpX2RlY29kZV9p c3N1ZShBVkNvZGVjQ29udGV4dCAqYXZjdHgsCj4gwqDCoMKgwqDCoMKgwqDCoCBhdl9sb2coYXZj dHgsIEFWX0xPR19FUlJPUiwgIkZhaWxlZCB0byBlbmQgcGljdHVyZSBkZWNvZGUgIgo+IMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiaXNzdWU6ICVkICglcykuXG4iLCB2YXMsIHZhRXJy b3JTdHIodmFzKSk7Cj4gwqDCoMKgwqDCoMKgwqDCoCBlcnIgPSBBVkVSUk9SKEVJTyk7Cj4gLcKg wqDCoMKgwqDCoMKgIGlmIChDT05GSUdfVkFBUElfMSB8fCBjdHgtPmh3Y3R4LT5kcml2ZXJfcXVp cmtzICYKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBBVl9WQUFQSV9EUklWRVJfUVVJUktfUkVO REVSX1BBUkFNX0JVRkZFUlMpCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byBmYWlsOwo+ IC3CoMKgwqDCoMKgwqDCoCBlbHNlCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZ290byBmYWls X2F0X2VuZDsKPiArwqDCoMKgwqDCoMKgwqAgZ290byBmYWlsOwo+IMKgwqDCoMKgIH0KPiDCoAo+ IC3CoMKgwqAgaWYgKENPTkZJR19WQUFQSV8xIHx8IGN0eC0+aHdjdHgtPmRyaXZlcl9xdWlya3Mg Jgo+IC3CoMKgwqDCoMKgwqDCoCBBVl9WQUFQSV9EUklWRVJfUVVJUktfUkVOREVSX1BBUkFNX0JV RkZFUlMpCj4gLcKgwqDCoMKgwqDCoMKgIGZmX3ZhYXBpX2RlY29kZV9kZXN0cm95X2J1ZmZlcnMo YXZjdHgsIHBpYyk7Cj4gK8KgwqDCoCBmZl92YWFwaV9kZWNvZGVfZGVzdHJveV9idWZmZXJzKGF2 Y3R4LCBwaWMpOwo+IMKgCj4gwqDCoMKgwqAgZXJyID0gMDsKPiDCoMKgwqDCoCBnb3RvIGV4aXQ7 Cj4gQEAgLTIxOSw3ICsyMTMsNiBAQCBmYWlsX3dpdGhfcGljdHVyZToKPiDCoMKgwqDCoCB9Cj4g wqBmYWlsOgo+IMKgwqDCoMKgIGZmX3ZhYXBpX2RlY29kZV9kZXN0cm95X2J1ZmZlcnMoYXZjdHgs IHBpYyk7Cj4gLWZhaWxfYXRfZW5kOgo+IMKgZXhpdDoKPiDCoMKgwqDCoCBwaWMtPm5iX3BhcmFt X2J1ZmZlcnMgPSAwOwo+IMKgwqDCoMKgIHBpYy0+bmJfc2xpY2VzwqDCoMKgwqDCoMKgwqAgPSAw Owo+IEBAIC00MTIsMTIgKzQwNSwxMCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHsKPiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgSDI2NENvbnN0 cmFpbmVkQmFzZWxpbmUpLAo+IMKgwqDCoMKgIE1BUChIMjY0LMKgwqDCoMKgwqDCoMKgIEgyNjRf TUFJTizCoMKgwqDCoMKgwqAgSDI2NE1haW7CoMKgwqAgKSwKPiDCoMKgwqDCoCBNQVAoSDI2NCzC oMKgwqDCoMKgwqDCoCBIMjY0X0hJR0gswqDCoMKgwqDCoMKgIEgyNjRIaWdowqDCoMKgICksCj4g LSNpZiBWQV9DSEVDS19WRVJTSU9OKDAsIDM3LCAwKQo+IMKgwqDCoMKgIE1BUChIRVZDLMKgwqDC oMKgwqDCoMKgIEhFVkNfTUFJTizCoMKgwqDCoMKgwqAgSEVWQ01haW7CoMKgwqAgKSwKPiDCoMKg wqDCoCBNQVAoSEVWQyzCoMKgwqDCoMKgwqDCoCBIRVZDX01BSU5fMTAswqDCoMKgIEhFVkNNYWlu MTDCoCApLAo+IMKgwqDCoMKgIE1BUChIRVZDLMKgwqDCoMKgwqDCoMKgIEhFVkNfTUFJTl9TVElM TF9QSUNUVVJFLAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgSEVWQ01haW7CoMKgwqAgKSwKPiAtI2Vu ZGlmCj4gwqAjaWYgVkFfQ0hFQ0tfVkVSU0lPTigxLCAyLCAwKSAmJiBDT05GSUdfSEVWQ19WQUFQ SV9IV0FDQ0VMCj4gwqDCoMKgwqAgTUFQKEhFVkMswqDCoMKgwqDCoMKgwqAgSEVWQ19SRVhULMKg wqDCoMKgwqDCoCBOb25lLAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZmZf dmFhcGlfcGFyc2VfaGV2Y19yZXh0X3NjY19wcm9maWxlICksCj4gQEAgLTQzNSwxNCArNDI2LDEw IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgewo+IMKgwqDCoMKgIE1BUChWQzEswqDCoMKgwqDCoMKg wqDCoCBWQzFfQ09NUExFWCzCoMKgwqDCoCBWQzFBZHZhbmNlZCApLAo+IMKgwqDCoMKgIE1BUChW QzEswqDCoMKgwqDCoMKgwqDCoCBWQzFfQURWQU5DRUQswqDCoMKgIFZDMUFkdmFuY2VkICksCj4g wqDCoMKgwqAgTUFQKFZQOCzCoMKgwqDCoMKgwqDCoMKgIFVOS05PV04swqDCoMKgwqDCoMKgIFZQ OFZlcnNpb24wXzMgKSwKPiAtI2lmIFZBX0NIRUNLX1ZFUlNJT04oMCwgMzgsIDApCj4gwqDCoMKg wqAgTUFQKFZQOSzCoMKgwqDCoMKgwqDCoMKgIFZQOV8wLMKgwqDCoMKgwqDCoMKgwqDCoMKgIFZQ OVByb2ZpbGUwICksCj4gLSNlbmRpZgo+IC0jaWYgVkFfQ0hFQ0tfVkVSU0lPTigwLCAzOSwgMCkK PiDCoMKgwqDCoCBNQVAoVlA5LMKgwqDCoMKgwqDCoMKgwqAgVlA5XzEswqDCoMKgwqDCoMKgwqDC oMKgwqAgVlA5UHJvZmlsZTEgKSwKPiDCoMKgwqDCoCBNQVAoVlA5LMKgwqDCoMKgwqDCoMKgwqAg VlA5XzIswqDCoMKgwqDCoMKgwqDCoMKgwqAgVlA5UHJvZmlsZTIgKSwKPiDCoMKgwqDCoCBNQVAo VlA5LMKgwqDCoMKgwqDCoMKgwqAgVlA5XzMswqDCoMKgwqDCoMKgwqDCoMKgwqAgVlA5UHJvZmls ZTMgKSwKPiAtI2VuZGlmCj4gwqAjaWYgVkFfQ0hFQ0tfVkVSU0lPTigxLCA4LCAwKQo+IMKgwqDC oMKgIE1BUChBVjEswqDCoMKgwqDCoMKgwqDCoCBBVjFfTUFJTizCoMKgwqDCoMKgwqDCoCBBVjFQ cm9maWxlMCksCj4gwqDCoMKgwqAgTUFQKEFWMSzCoMKgwqDCoMKgwqDCoMKgIEFWMV9ISUdILMKg wqDCoMKgwqDCoMKgIEFWMVByb2ZpbGUxKSwKPiBAQCAtNjA1LDI3ICs1OTIsNyBAQCBzdGF0aWMg aW50IHZhYXBpX2RlY29kZV9tYWtlX2NvbmZpZyhBVkNvZGVjQ29udGV4dAo+ICphdmN0eCwKPiDC oMKgwqDCoMKgwqDCoMKgIGlmIChlcnIgPCAwKQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBn b3RvIGZhaWw7Cj4gwqAKPiAtwqDCoMKgwqDCoMKgwqAgaWYgKENPTkZJR19WQUFQSV8xKQo+IC3C oMKgwqDCoMKgwqDCoMKgwqDCoMKgIGZyYW1lcy0+aW5pdGlhbF9wb29sX3NpemUgPSAwOwo+IC3C oMKgwqDCoMKgwqDCoCBlbHNlIHsKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBmcmFtZXMtPmlu aXRpYWxfcG9vbF9zaXplID0gMTsKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvLyBBZGQgcGVy LWNvZGVjIG51bWJlciBvZiBzdXJmYWNlcyB1c2VkIGZvciBzdG9yaW5nIHJlZmVyZW5jZQo+IGZy YW1lcy4KPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzd2l0Y2ggKGF2Y3R4LT5jb2RlY19pZCkg ewo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNhc2UgQVZfQ09ERUNfSURfSDI2NDoKPiAtwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBjYXNlIEFWX0NPREVDX0lEX0hFVkM6Cj4gLcKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgY2FzZSBBVl9DT0RFQ19JRF9BVjE6Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBmcmFtZXMtPmluaXRpYWxfcG9vbF9zaXplICs9IDE2Owo+IC3CoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgYnJlYWs7Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY2Fz ZSBBVl9DT0RFQ19JRF9WUDk6Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBmcmFt ZXMtPmluaXRpYWxfcG9vbF9zaXplICs9IDg7Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBicmVhazsKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBjYXNlIEFWX0NPREVDX0lEX1ZQ ODoKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGZyYW1lcy0+aW5pdGlhbF9wb29s X3NpemUgKz0gMzsKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJyZWFrOwo+IC3C oMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRlZmF1bHQ6Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBmcmFtZXMtPmluaXRpYWxfcG9vbF9zaXplICs9IDI7Cj4gLcKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgfQo+IC3CoMKgwqDCoMKgwqDCoCB9Cj4gK8KgwqDCoMKgwqDCoMKgIGZyYW1lcy0+ aW5pdGlhbF9wb29sX3NpemUgPSAwOwo+IMKgwqDCoMKgIH0KPiDCoAo+IMKgwqDCoMKgIGF2X2h3 ZnJhbWVfY29uc3RyYWludHNfZnJlZSgmY29uc3RyYWludHMpOwo+IGRpZmYgLS1naXQgYS9saWJh dmNvZGVjL3ZhYXBpX2VuY29kZS5jIGIvbGliYXZjb2RlYy92YWFwaV9lbmNvZGUuYwo+IGluZGV4 IGY1NGIyNTc5ZWMuLjZmMDYyZTgyNzcgMTAwNjQ0Cj4gLS0tIGEvbGliYXZjb2RlYy92YWFwaV9l bmNvZGUuYwo+ICsrKyBiL2xpYmF2Y29kZWMvdmFhcGlfZW5jb2RlLmMKPiBAQCAtNTMwLDcgKzUz MCw2IEBAIHN0YXRpYyBpbnQgdmFhcGlfZW5jb2RlX2lzc3VlKEFWQ29kZWNDb250ZXh0ICphdmN0 eCwKPiDCoMKgwqDCoMKgwqDCoMKgIH0KPiDCoMKgwqDCoCB9Cj4gwqAKPiAtI2lmIFZBX0NIRUNL X1ZFUlNJT04oMSwgMCwgMCkKPiDCoMKgwqDCoCBzZCA9IGF2X2ZyYW1lX2dldF9zaWRlX2RhdGEo cGljLT5pbnB1dF9pbWFnZSwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEFWX0ZSQU1FX0RBVEFfUkVHSU9OU19PRl9JTlRF UkVTVCk7Cj4gwqDCoMKgwqAgaWYgKHNkICYmIGN0eC0+cm9pX2FsbG93ZWQpIHsKPiBAQCAtNTkz LDcgKzU5Miw2IEBAIHN0YXRpYyBpbnQgdmFhcGlfZW5jb2RlX2lzc3VlKEFWQ29kZWNDb250ZXh0 ICphdmN0eCwKPiDCoMKgwqDCoMKgwqDCoMKgIGlmIChlcnIgPCAwKQo+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCBnb3RvIGZhaWw7Cj4gwqDCoMKgwqAgfQo+IC0jZW5kaWYKPiDCoAo+IMKgwqDC oMKgIHZhcyA9IHZhQmVnaW5QaWN0dXJlKGN0eC0+aHdjdHgtPmRpc3BsYXksIGN0eC0+dmFfY29u dGV4dCwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBwaWMtPmlucHV0X3N1cmZhY2UpOwo+IEBAIC02MTgsMjYgKzYxNiwxNyBAQCBzdGF0aWMgaW50 IHZhYXBpX2VuY29kZV9pc3N1ZShBVkNvZGVjQ29udGV4dCAqYXZjdHgsCj4gwqDCoMKgwqDCoMKg wqDCoCBhdl9sb2coYXZjdHgsIEFWX0xPR19FUlJPUiwgIkZhaWxlZCB0byBlbmQgcGljdHVyZSBl bmNvZGUgaXNzdWU6ICIKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIiVkICglcyku XG4iLCB2YXMsIHZhRXJyb3JTdHIodmFzKSk7Cj4gwqDCoMKgwqDCoMKgwqDCoCBlcnIgPSBBVkVS Uk9SKEVJTyk7Cj4gLcKgwqDCoMKgwqDCoMKgIC8vIHZhUmVuZGVyUGljdHVyZSgpIGhhcyBiZWVu IGNhbGxlZCBoZXJlLCBzbyB3ZSBzaG91bGQgbm90IGRlc3Ryb3kKPiAtwqDCoMKgwqDCoMKgwqAg Ly8gdGhlIHBhcmFtZXRlciBidWZmZXJzIHVubGVzcyBzZXBhcmF0ZSBkZXN0cnVjdGlvbiBpcyBy ZXF1aXJlZC4KPiAtwqDCoMKgwqDCoMKgwqAgaWYgKENPTkZJR19WQUFQSV8xIHx8IGN0eC0+aHdj dHgtPmRyaXZlcl9xdWlya3MgJgo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIEFWX1ZBQVBJX0RS SVZFUl9RVUlSS19SRU5ERVJfUEFSQU1fQlVGRkVSUykKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBnb3RvIGZhaWw7Cj4gLcKgwqDCoMKgwqDCoMKgIGVsc2UKPiAtwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBnb3RvIGZhaWxfYXRfZW5kOwo+IC3CoMKgwqAgfQo+IC0KPiAtwqDCoMKgIGlmIChDT05G SUdfVkFBUElfMSB8fCBjdHgtPmh3Y3R4LT5kcml2ZXJfcXVpcmtzICYKPiAtwqDCoMKgwqDCoMKg wqAgQVZfVkFBUElfRFJJVkVSX1FVSVJLX1JFTkRFUl9QQVJBTV9CVUZGRVJTKSB7Cj4gLcKgwqDC oMKgwqDCoMKgIGZvciAoaSA9IDA7IGkgPCBwaWMtPm5iX3BhcmFtX2J1ZmZlcnM7IGkrKykgewo+ IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHZhcyA9IHZhRGVzdHJveUJ1ZmZlcihjdHgtPmh3Y3R4 LT5kaXNwbGF5LAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcGljLT5wYXJhbV9idWZmZXJzW2ldKTsKPiAtwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBpZiAodmFzICE9IFZBX1NUQVRVU19TVUNDRVNTKSB7Cj4gLcKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhdl9sb2coYXZjdHgsIEFWX0xPR19FUlJPUiwgIkZh aWxlZCB0byBkZXN0cm95ICIKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgInBhcmFtIGJ1ZmZlciAlI3g6ICVkICglcykuXG4iLAo+IC3CoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwaWMtPnBhcmFtX2J1ZmZlcnNbaV0sIHZh cywgdmFFcnJvclN0cih2YXMpKTsKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8v IEFuZCBpZ25vcmUuCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+ICvCoMKgwqDCoMKgwqDC oCBnb3RvIGZhaWw7Cj4gK8KgwqDCoCB9Cj4gKwo+ICvCoMKgwqAgZm9yIChpID0gMDsgaSA8IHBp Yy0+bmJfcGFyYW1fYnVmZmVyczsgaSsrKSB7Cj4gK8KgwqDCoMKgwqDCoMKgIHZhcyA9IHZhRGVz dHJveUJ1ZmZlcihjdHgtPmh3Y3R4LT5kaXNwbGF5LAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHBpYy0+cGFyYW1fYnVmZmVyc1tp XSk7Cj4gK8KgwqDCoMKgwqDCoMKgIGlmICh2YXMgIT0gVkFfU1RBVFVTX1NVQ0NFU1MpIHsKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhdl9sb2coYXZjdHgsIEFWX0xPR19FUlJPUiwgIkZhaWxl ZCB0byBkZXN0cm95ICIKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJw YXJhbSBidWZmZXIgJSN4OiAlZCAoJXMpLlxuIiwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHBpYy0+cGFyYW1fYnVmZmVyc1tpXSwgdmFzLCB2YUVycm9yU3RyKHZhcykp Owo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8vIEFuZCBpZ25vcmUuCj4gwqDCoMKgwqDCoMKg wqDCoCB9Cj4gwqDCoMKgwqAgfQo+IMKgCj4gQEAgLTY1NCw3ICs2NDMsNiBAQCBmYWlsOgo+IMKg wqDCoMKgwqDCoMKgwqAgZm9yIChpID0gMDsgaSA8IHBpYy0+bmJfc2xpY2VzOyBpKyspCj4gwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIGF2X2ZyZWVwKCZwaWMtPnNsaWNlc1tpXS5jb2RlY19zbGlj ZV9wYXJhbXMpOwo+IMKgwqDCoMKgIH0KPiAtZmFpbF9hdF9lbmQ6Cj4gwqDCoMKgwqAgYXZfZnJl ZXAoJnBpYy0+Y29kZWNfcGljdHVyZV9wYXJhbXMpOwo+IMKgwqDCoMKgIGF2X2ZyZWVwKCZwaWMt PnBhcmFtX2J1ZmZlcnMpOwo+IMKgwqDCoMKgIGF2X2ZyZWVwKCZwaWMtPnNsaWNlcyk7Cj4gQEAg LTE1MzAsMjUgKzE1MTgsMTkgQEAgc3RhdGljIGNvbnN0IFZBQVBJRW5jb2RlUlRGb3JtYXQKPiB2 YWFwaV9lbmNvZGVfcnRfZm9ybWF0c1tdID0gewo+IMKgwqDCoMKgIHsgIllVVjQ0NCIswqDCoMKg IFZBX1JUX0ZPUk1BVF9ZVVY0NDQswqDCoMKgwqDCoMKgwqAgOCwgMywgMCwgMCB9LAo+IMKgwqDC oMKgIHsgIlhZVVYiLMKgwqDCoMKgwqAgVkFfUlRfRk9STUFUX1lVVjQ0NCzCoMKgwqDCoMKgwqDC oCA4LCAzLCAwLCAwIH0sCj4gwqDCoMKgwqAgeyAiWVVWNDExIizCoMKgwqAgVkFfUlRfRk9STUFU X1lVVjQxMSzCoMKgwqDCoMKgwqDCoCA4LCAzLCAyLCAwIH0sCj4gLSNpZiBWQV9DSEVDS19WRVJT SU9OKDAsIDM4LCAxKQo+IMKgwqDCoMKgIHsgIllVVjQyMF8xMCIsIFZBX1JUX0ZPUk1BVF9ZVVY0 MjBfMTBCUFAsIDEwLCAzLCAxLCAxIH0sCj4gLSNlbmRpZgo+IMKgfTsKPiDCoAo+IMKgc3RhdGlj IGNvbnN0IFZBRW50cnlwb2ludCB2YWFwaV9lbmNvZGVfZW50cnlwb2ludHNfbm9ybWFsW10gPSB7 Cj4gwqDCoMKgwqAgVkFFbnRyeXBvaW50RW5jU2xpY2UsCj4gwqDCoMKgwqAgVkFFbnRyeXBvaW50 RW5jUGljdHVyZSwKPiAtI2lmIFZBX0NIRUNLX1ZFUlNJT04oMCwgMzksIDIpCj4gwqDCoMKgwqAg VkFFbnRyeXBvaW50RW5jU2xpY2VMUCwKPiAtI2VuZGlmCj4gwqDCoMKgwqAgMAo+IMKgfTsKPiAt I2lmIFZBX0NIRUNLX1ZFUlNJT04oMCwgMzksIDIpCj4gwqBzdGF0aWMgY29uc3QgVkFFbnRyeXBv aW50IHZhYXBpX2VuY29kZV9lbnRyeXBvaW50c19sb3dfcG93ZXJbXSA9IHsKPiDCoMKgwqDCoCBW QUVudHJ5cG9pbnRFbmNTbGljZUxQLAo+IMKgwqDCoMKgIDAKPiDCoH07Cj4gLSNlbmRpZgo+IMKg Cj4gwqBzdGF0aWMgYXZfY29sZCBpbnQgdmFhcGlfZW5jb2RlX3Byb2ZpbGVfZW50cnlwb2ludChB VkNvZGVjQ29udGV4dCAqYXZjdHgpCj4gwqB7Cj4gQEAgLTE1NjYsMTMgKzE1NDgsNyBAQCBzdGF0 aWMgYXZfY29sZCBpbnQKPiB2YWFwaV9lbmNvZGVfcHJvZmlsZV9lbnRyeXBvaW50KEFWQ29kZWND b250ZXh0ICphdmN0eCkKPiDCoAo+IMKgCj4gwqDCoMKgwqAgaWYgKGN0eC0+bG93X3Bvd2VyKSB7 Cj4gLSNpZiBWQV9DSEVDS19WRVJTSU9OKDAsIDM5LCAyKQo+IMKgwqDCoMKgwqDCoMKgwqAgdXNh YmxlX2VudHJ5cG9pbnRzID0gdmFhcGlfZW5jb2RlX2VudHJ5cG9pbnRzX2xvd19wb3dlcjsKPiAt I2Vsc2UKPiAtwqDCoMKgwqDCoMKgwqAgYXZfbG9nKGF2Y3R4LCBBVl9MT0dfRVJST1IsICJMb3ct cG93ZXIgZW5jb2RpbmcgaXMgbm90ICIKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAi c3VwcG9ydGVkIHdpdGggdGhpcyBWQUFQSSB2ZXJzaW9uLlxuIik7Cj4gLcKgwqDCoMKgwqDCoMKg IHJldHVybiBBVkVSUk9SKEVJTlZBTCk7Cj4gLSNlbmRpZgo+IMKgwqDCoMKgIH0gZWxzZSB7Cj4g wqDCoMKgwqDCoMKgwqDCoCB1c2FibGVfZW50cnlwb2ludHMgPSB2YWFwaV9lbmNvZGVfZW50cnlw b2ludHNfbm9ybWFsOwo+IMKgwqDCoMKgIH0KPiBAQCAtMTYyMywxMSArMTU5OSw3IEBAIHN0YXRp YyBhdl9jb2xkIGludAo+IHZhYXBpX2VuY29kZV9wcm9maWxlX2VudHJ5cG9pbnQoQVZDb2RlY0Nv bnRleHQgKmF2Y3R4KQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhdmN0eC0+cHJvZmlsZSAh PSBBVl9QUk9GSUxFX1VOS05PV04pCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnRpbnVl Owo+IMKgCj4gLSNpZiBWQV9DSEVDS19WRVJTSU9OKDEsIDAsIDApCj4gwqDCoMKgwqDCoMKgwqDC oCBwcm9maWxlX3N0cmluZyA9IHZhUHJvZmlsZVN0cihwcm9maWxlLT52YV9wcm9maWxlKTsKPiAt I2Vsc2UKPiAtwqDCoMKgwqDCoMKgwqAgcHJvZmlsZV9zdHJpbmcgPSAiKG5vIHByb2ZpbGUgbmFt ZXMpIjsKPiAtI2VuZGlmCj4gwqAKPiDCoMKgwqDCoMKgwqDCoMKgIGZvciAoaiA9IDA7IGogPCBu OyBqKyspIHsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKHZhX3Byb2ZpbGVzW2pdID09 IHByb2ZpbGUtPnZhX3Byb2ZpbGUpCj4gQEAgLTE2ODYsMTEgKzE2NTgsNyBAQCBzdGF0aWMgYXZf Y29sZCBpbnQKPiB2YWFwaV9lbmNvZGVfcHJvZmlsZV9lbnRyeXBvaW50KEFWQ29kZWNDb250ZXh0 ICphdmN0eCkKPiDCoMKgwqDCoCB9Cj4gwqAKPiDCoMKgwqDCoCBjdHgtPnZhX2VudHJ5cG9pbnQg PSB2YV9lbnRyeXBvaW50c1tpXTsKPiAtI2lmIFZBX0NIRUNLX1ZFUlNJT04oMSwgMCwgMCkKPiDC oMKgwqDCoCBlbnRyeXBvaW50X3N0cmluZyA9IHZhRW50cnlwb2ludFN0cihjdHgtPnZhX2VudHJ5 cG9pbnQpOwo+IC0jZWxzZQo+IC3CoMKgwqAgZW50cnlwb2ludF9zdHJpbmcgPSAiKG5vIGVudHJ5 cG9pbnQgbmFtZXMpIjsKPiAtI2VuZGlmCj4gwqDCoMKgwqAgYXZfbG9nKGF2Y3R4LCBBVl9MT0df VkVSQk9TRSwgIlVzaW5nIFZBQVBJIGVudHJ5cG9pbnQgJXMgKCVkKS5cbiIsCj4gwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBlbnRyeXBvaW50X3N0cmluZywgY3R4LT52YV9lbnRyeXBvaW50KTsKPiDC oAo+IEBAIC0xODA3LDE2ICsxNzc1LDEwIEBAIHN0YXRpYyBhdl9jb2xkIGludAo+IHZhYXBpX2Vu Y29kZV9pbml0X3JhdGVfY29udHJvbChBVkNvZGVjQ29udGV4dCAqYXZjdHgpCj4gwqAKPiDCoMKg wqDCoMKgwqDCoMKgIHN1cHBvcnRlZF92YV9yY19tb2RlcyA9IHJjX2F0dHIudmFsdWU7Cj4gwqDC oMKgwqDCoMKgwqDCoCBpZiAoY3R4LT5ibGJyYykgewo+IC0jaWYgVkFfQ0hFQ0tfVkVSU0lPTigw LCAzOSwgMikKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKCEoc3VwcG9ydGVkX3ZhX3Jj X21vZGVzICYgVkFfUkNfTUIpKSB7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg Y3R4LT5ibGJyYyA9IDA7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYXZfbG9n KGF2Y3R4LCBBVl9MT0dfV0FSTklORywgIkRyaXZlciBkb2VzIG5vdCBzdXBwb3J0Cj4gQkxCUkMu XG4iKTsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+IC0jZWxzZQo+IC3CoMKgwqDCoMKg wqDCoMKgwqDCoMKgIGN0eC0+YmxicmMgPSAwOwo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGF2 X2xvZyhhdmN0eCwgQVZfTE9HX1dBUk5JTkcsICJQbGVhc2UgY29uc2lkZXIgdG8gdXBkYXRlIHRv IFZBQVBJCj4gMC4zOS4yICIKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg ICJvciBhYm92ZSwgd2hpY2ggY2FuIHN1cHBvcnQgQkxCUkMuXG4iKTsKPiAtI2VuZGlmCj4gwqDC oMKgwqDCoMKgwqDCoCB9Cj4gwqAKPiDCoMKgwqDCoMKgwqDCoMKgIGZvciAoaSA9IDA7IGkgPCBG Rl9BUlJBWV9FTEVNUyh2YWFwaV9lbmNvZGVfcmNfbW9kZXMpOyBpKyspIHsKPiBAQCAtMjA0NCwx MSArMjAwNiw3IEBAIHJjX21vZGVfZm91bmQ6Cj4gwqDCoMKgwqDCoMKgwqDCoCBjdHgtPmNvbmZp Z19hdHRyaWJ1dGVzW2N0eC0+bmJfY29uZmlnX2F0dHJpYnV0ZXMrK10gPQo+IMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAoVkFDb25maWdBdHRyaWIpIHsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgLnR5cGXCoCA9IFZBQ29uZmlnQXR0cmliUmF0ZUNvbnRyb2wsCj4gLSNpZiBWQV9DSEVDS19W RVJTSU9OKDAsIDM5LCAyKQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAudmFsdWUgPSBjdHgt PmJsYnJjID8gY3R4LT52YV9yY19tb2RlIHwgVkFfUkNfTUIgOiBjdHgtCj4gPnZhX3JjX21vZGUs Cj4gLSNlbHNlCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgLnZhbHVlID0gY3R4LT52YV9yY19t b2RlLAo+IC0jZW5kaWYKPiDCoMKgwqDCoMKgwqDCoMKgIH07Cj4gwqDCoMKgwqAgfQo+IMKgCj4g QEAgLTIwODEsOSArMjAzOSw3IEBAIHJjX21vZGVfZm91bmQ6Cj4gwqAjaWYgVkFfQ0hFQ0tfVkVS U0lPTigxLCAzLCAwKQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAucXVhbGl0eV9mYWN0b3LC oMKgwqDCoCA9IHJjX3F1YWxpdHksCj4gwqAjZW5kaWYKPiAtI2lmIFZBX0NIRUNLX1ZFUlNJT04o MCwgMzksIDIpCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC5yY19mbGFncy5iaXRzLm1iX3Jh dGVfY29udHJvbCA9IGN0eC0+YmxicmMgPyAxIDogMiwKPiAtI2VuZGlmCj4gwqDCoMKgwqDCoMKg wqDCoCB9Owo+IMKgwqDCoMKgwqDCoMKgwqAgdmFhcGlfZW5jb2RlX2FkZF9nbG9iYWxfcGFyYW0o YXZjdHgsCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBWQUVuY01pc2NQYXJhbWV0ZXJUeXBlUmF0ZUNv bnRyb2wsCj4gQEAgLTIxMTksMTIgKzIwNzUsMTAgQEAgcmNfbW9kZV9mb3VuZDoKPiDCoMKgwqDC oCBjdHgtPmZyX3BhcmFtcyA9IChWQUVuY01pc2NQYXJhbWV0ZXJGcmFtZVJhdGUpIHsKPiDCoMKg wqDCoMKgwqDCoMKgIC5mcmFtZXJhdGUgPSAodW5zaWduZWQgaW50KWZyX2RlbiA8PCAxNiB8IGZy X251bSwKPiDCoMKgwqDCoCB9Owo+IC0jaWYgVkFfQ0hFQ0tfVkVSU0lPTigwLCA0MCwgMCkKPiDC oMKgwqDCoCB2YWFwaV9lbmNvZGVfYWRkX2dsb2JhbF9wYXJhbShhdmN0eCwKPiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBWQUVuY01pc2NQYXJhbWV0ZXJUeXBlRnJhbWVSYXRlLAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICZjdHgtPmZy X3BhcmFtcywKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzaXplb2YoY3R4LT5mcl9wYXJhbXMpKTsKPiAtI2VuZGlm Cj4gwqAKPiDCoMKgwqDCoCByZXR1cm4gMDsKPiDCoH0KPiBAQCAtMjMzOCwxMSArMjI5Miw5IEBA IHN0YXRpYyBhdl9jb2xkIGludAo+IHZhYXBpX2VuY29kZV9pbml0X3Jvd19zbGljZV9zdHJ1Y3R1 cmUoQVZDb2RlY0NvbnRleHQgKmF2Y3R4LAo+IMKgwqDCoMKgwqDCoMKgwqAgfQo+IMKgwqDCoMKg wqDCoMKgwqAgY3R4LT5uYl9zbGljZXPCoCA9IChjdHgtPnNsaWNlX2Jsb2NrX3Jvd3MgKyBrIC0g MSkgLyBrOwo+IMKgwqDCoMKgwqDCoMKgwqAgY3R4LT5zbGljZV9zaXplID0gazsKPiAtI2lmIFZB X0NIRUNLX1ZFUlNJT04oMSwgMCwgMCkKPiDCoMKgwqDCoCB9IGVsc2UgaWYgKHNsaWNlX3N0cnVj dHVyZSAmIFZBX0VOQ19TTElDRV9TVFJVQ1RVUkVfRVFVQUxfUk9XUykgewo+IMKgwqDCoMKgwqDC oMKgwqAgY3R4LT5uYl9zbGljZXPCoCA9IGN0eC0+c2xpY2VfYmxvY2tfcm93czsKPiDCoMKgwqDC oMKgwqDCoMKgIGN0eC0+c2xpY2Vfc2l6ZSA9IDE7Cj4gLSNlbmRpZgo+IMKgwqDCoMKgIH0gZWxz ZSB7Cj4gwqDCoMKgwqDCoMKgwqDCoCBhdl9sb2coYXZjdHgsIEFWX0xPR19FUlJPUiwgIkRyaXZl ciBkb2VzIG5vdCBzdXBwb3J0IGFueSB1c2FibGUgIgo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAic2xpY2Ugc3RydWN0dXJlIG1vZGVzICglI3gpLlxuIiwgc2xpY2Vfc3RydWN0dXJl KTsKPiBAQCAtMjU2Niw3ICsyNTE4LDYgQEAgc3RhdGljIGF2X2NvbGQgaW50Cj4gdmFhcGlfZW5j b2RlX2luaXRfcGFja2VkX2hlYWRlcnMoQVZDb2RlY0NvbnRleHQgKmF2Y3R4KQo+IMKgCj4gwqBz dGF0aWMgYXZfY29sZCBpbnQgdmFhcGlfZW5jb2RlX2luaXRfcXVhbGl0eShBVkNvZGVjQ29udGV4 dCAqYXZjdHgpCj4gwqB7Cj4gLSNpZiBWQV9DSEVDS19WRVJTSU9OKDAsIDM2LCAwKQo+IMKgwqDC oMKgIFZBQVBJRW5jb2RlQ29udGV4dCAqY3R4ID0gYXZjdHgtPnByaXZfZGF0YTsKPiDCoMKgwqDC oCBWQVN0YXR1cyB2YXM7Cj4gwqDCoMKgwqAgVkFDb25maWdBdHRyaWIgYXR0ciA9IHsgVkFDb25m aWdBdHRyaWJFbmNRdWFsaXR5UmFuZ2UgfTsKPiBAQCAtMjYwMywxNyArMjU1NCwxMiBAQCBzdGF0 aWMgYXZfY29sZCBpbnQKPiB2YWFwaV9lbmNvZGVfaW5pdF9xdWFsaXR5KEFWQ29kZWNDb250ZXh0 ICphdmN0eCkKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICZjdHgtPnF1YWxpdHlfcGFyYW1zLAo+IMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgc2l6ZW9mKGN0eC0+cXVhbGl0eV9wYXJhbXMpKTsKPiDCoMKgwqDC oCB9Cj4gLSNlbHNlCj4gLcKgwqDCoCBhdl9sb2coYXZjdHgsIEFWX0xPR19XQVJOSU5HLCAiVGhl IGVuY29kZSBxdWFsaXR5IG9wdGlvbiBpcyAiCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgICJub3Qg c3VwcG9ydGVkIHdpdGggdGhpcyBWQUFQSSB2ZXJzaW9uLlxuIik7Cj4gLSNlbmRpZgo+IMKgCj4g wqDCoMKgwqAgcmV0dXJuIDA7Cj4gwqB9Cj4gwqAKPiDCoHN0YXRpYyBhdl9jb2xkIGludCB2YWFw aV9lbmNvZGVfaW5pdF9yb2koQVZDb2RlY0NvbnRleHQgKmF2Y3R4KQo+IMKgewo+IC0jaWYgVkFf Q0hFQ0tfVkVSU0lPTigxLCAwLCAwKQo+IMKgwqDCoMKgIFZBQVBJRW5jb2RlQ29udGV4dCAqY3R4 ID0gYXZjdHgtPnByaXZfZGF0YTsKPiDCoMKgwqDCoCBWQVN0YXR1cyB2YXM7Cj4gwqDCoMKgwqAg VkFDb25maWdBdHRyaWIgYXR0ciA9IHsgVkFDb25maWdBdHRyaWJFbmNST0kgfTsKPiBAQCAtMjY0 MCw3ICsyNTg2LDcgQEAgc3RhdGljIGF2X2NvbGQgaW50IHZhYXBpX2VuY29kZV9pbml0X3JvaShB VkNvZGVjQ29udGV4dAo+ICphdmN0eCkKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGN0eC0+ dmFfcmNfbW9kZSA9PSBWQV9SQ19DUVAgfHwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBy b2kuYml0cy5yb2lfcmNfcXBfZGVsdGFfc3VwcG9ydCk7Cj4gwqDCoMKgwqAgfQo+IC0jZW5kaWYK PiArCj4gwqDCoMKgwqAgcmV0dXJuIDA7Cj4gwqB9Cj4gwqAKPiBkaWZmIC0tZ2l0IGEvbGliYXZj b2RlYy92YWFwaV9lbmNvZGUuaCBiL2xpYmF2Y29kZWMvdmFhcGlfZW5jb2RlLmgKPiBpbmRleCAw ZWVkOTY5MWNhLi40M2YzYjhjZjgyIDEwMDY0NAo+IC0tLSBhL2xpYmF2Y29kZWMvdmFhcGlfZW5j b2RlLmgKPiArKysgYi9saWJhdmNvZGVjL3ZhYXBpX2VuY29kZS5oCj4gQEAgLTIyLDEwICsyMiw3 IEBACj4gwqAjaW5jbHVkZSA8c3RkaW50Lmg+Cj4gwqAKPiDCoCNpbmNsdWRlIDx2YS92YS5oPgo+ IC0KPiAtI2lmIFZBX0NIRUNLX1ZFUlNJT04oMSwgMCwgMCkKPiDCoCNpbmNsdWRlIDx2YS92YV9z dHIuaD4KPiAtI2VuZGlmCj4gwqAKPiDCoCNpbmNsdWRlICJsaWJhdnV0aWwvaHdjb250ZXh0Lmgi Cj4gwqAjaW5jbHVkZSAibGliYXZ1dGlsL2h3Y29udGV4dF92YWFwaS5oIgo+IEBAIC04MiwxMiAr NzksOCBAQCB0eXBlZGVmIHN0cnVjdCBWQUFQSUVuY29kZVBpY3R1cmUgewo+IMKgwqDCoMKgIHZv aWTCoMKgwqDCoMKgwqDCoMKgwqDCoCAqb3BhcXVlOwo+IMKgwqDCoMKgIEFWQnVmZmVyUmVmwqDC oMKgICpvcGFxdWVfcmVmOwo+IMKgCj4gLSNpZiBWQV9DSEVDS19WRVJTSU9OKDEsIDAsIDApCj4g wqDCoMKgwqAgLy8gUk9JIHJlZ2lvbnMuCj4gwqDCoMKgwqAgVkFFbmNST0nCoMKgwqDCoMKgwqAg KnJvaTsKPiAtI2Vsc2UKPiAtwqDCoMKgIHZvaWTCoMKgwqDCoMKgwqDCoMKgwqDCoCAqcm9pOwo+ IC0jZW5kaWYKPiDCoAo+IMKgwqDCoMKgIGludMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0eXBl Owo+IMKgwqDCoMKgIGludMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBiX2RlcHRoOwo+IEBAIC0y OTMsOSArMjg2LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgVkFBUElFbmNvZGVDb250ZXh0IHsKPiDCoMKg wqDCoCBWQUVuY01pc2NQYXJhbWV0ZXJIUkTCoMKgwqDCoMKgwqDCoCBocmRfcGFyYW1zOwo+IMKg wqDCoMKgIFZBRW5jTWlzY1BhcmFtZXRlckZyYW1lUmF0ZcKgwqAgZnJfcGFyYW1zOwo+IMKgwqDC oMKgIFZBRW5jTWlzY1BhcmFtZXRlckJ1ZmZlck1heEZyYW1lU2l6ZSBtZnNfcGFyYW1zOwo+IC0j aWYgVkFfQ0hFQ0tfVkVSU0lPTigwLCAzNiwgMCkKPiDCoMKgwqDCoCBWQUVuY01pc2NQYXJhbWV0 ZXJCdWZmZXJRdWFsaXR5TGV2ZWwgcXVhbGl0eV9wYXJhbXM7Cj4gLSNlbmRpZgo+IMKgCj4gwqDC oMKgwqAgLy8gUGVyLXNlcXVlbmNlIHBhcmFtZXRlciBzdHJ1Y3R1cmUgKFZBRW5jU2VxdWVuY2VQ YXJhbWV0ZXJCdWZmZXIqKS4KPiDCoMKgwqDCoCB2b2lkwqDCoMKgwqDCoMKgwqDCoMKgwqAgKmNv ZGVjX3NlcXVlbmNlX3BhcmFtczsKPiBkaWZmIC0tZ2l0IGEvbGliYXZjb2RlYy92YWFwaV9lbmNv ZGVfaDI2NC5jIGIvbGliYXZjb2RlYy92YWFwaV9lbmNvZGVfaDI2NC5jCj4gaW5kZXggZDY1NmIx MDIwZi4uYmI0YzI1MGJiNCAxMDA2NDQKPiAtLS0gYS9saWJhdmNvZGVjL3ZhYXBpX2VuY29kZV9o MjY0LmMKPiArKysgYi9saWJhdmNvZGVjL3ZhYXBpX2VuY29kZV9oMjY0LmMKPiBAQCAtMTA2LDcg KzEwNiw2IEBAIHR5cGVkZWYgc3RydWN0IFZBQVBJRW5jb2RlSDI2NENvbnRleHQgewo+IMKgCj4g wqDCoMKgwqAgaW50IGF1ZF9uZWVkZWQ7Cj4gwqDCoMKgwqAgaW50IHNlaV9uZWVkZWQ7Cj4gLcKg wqDCoCBpbnQgc2VpX2Nicl93b3JrYXJvdW5kX25lZWRlZDsKPiDCoH0gVkFBUElFbmNvZGVIMjY0 Q29udGV4dDsKPiDCoAo+IMKgCj4gQEAgLTI3MSwxOSArMjcwLDYgQEAgc3RhdGljIGludAo+IHZh YXBpX2VuY29kZV9oMjY0X3dyaXRlX2V4dHJhX2hlYWRlcihBVkNvZGVjQ29udGV4dCAqYXZjdHgs Cj4gwqAKPiDCoMKgwqDCoMKgwqDCoMKgICp0eXBlID0gVkFFbmNQYWNrZWRIZWFkZXJSYXdEYXRh Owo+IMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIDA7Cj4gLQo+IC0jaWYgIUNPTkZJR19WQUFQSV8x Cj4gLcKgwqDCoCB9IGVsc2UgaWYgKHByaXYtPnNlaV9jYnJfd29ya2Fyb3VuZF9uZWVkZWQpIHsK PiAtwqDCoMKgwqDCoMKgwqAgLy8gSW5zZXJ0IGEgemVyby1sZW5ndGggaGVhZGVyIHVzaW5nIHRo ZSBvbGQgU0VJIHR5cGUuwqAgVGhpcyBpcwo+IC3CoMKgwqDCoMKgwqDCoCAvLyByZXF1aXJlZCB0 byBhdm9pZCB0cmlnZ2VyaW5nIGJyb2tlbiBiZWhhdmlvdXIgb24gSW50ZWwgcGxhdGZvcm1zCj4g LcKgwqDCoMKgwqDCoMKgIC8vIGluIENCUiBtb2RlIHdoZXJlIGFuIGludmFsaWQgU0VJIG1lc3Nh Z2UgaXMgZ2VuZXJhdGVkIGJ5IHRoZQo+IC3CoMKgwqDCoMKgwqDCoCAvLyBkcml2ZXIgYW5kIGlu c2VydGVkIGludG8gdGhlIHN0cmVhbS4KPiAtwqDCoMKgwqDCoMKgwqAgKmRhdGFfbGVuID0gMDsK PiAtwqDCoMKgwqDCoMKgwqAgKnR5cGUgPSBWQUVuY1BhY2tlZEhlYWRlckgyNjRfU0VJOwo+IC3C oMKgwqDCoMKgwqDCoCBwcml2LT5zZWlfY2JyX3dvcmthcm91bmRfbmVlZGVkID0gMDsKPiAtwqDC oMKgwqDCoMKgwqAgcmV0dXJuIDA7Cj4gLSNlbmRpZgo+IC0KPiDCoMKgwqDCoCB9IGVsc2Ugewo+ IMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIEFWRVJST1JfRU9GOwo+IMKgwqDCoMKgIH0KPiBAQCAt NjgxLDEwICs2NjcsNiBAQCBzdGF0aWMgaW50Cj4gdmFhcGlfZW5jb2RlX2gyNjRfaW5pdF9waWN0 dXJlX3BhcmFtcyhBVkNvZGVjQ29udGV4dCAqYXZjdHgsCj4gwqAKPiDCoMKgwqDCoCBpZiAocHJp di0+c2VpICYgU0VJX0lERU5USUZJRVIgJiYgcGljLT5lbmNvZGVfb3JkZXIgPT0gMCkKPiDCoMKg wqDCoMKgwqDCoMKgIHByaXYtPnNlaV9uZWVkZWQgfD0gU0VJX0lERU5USUZJRVI7Cj4gLSNpZiAh Q09ORklHX1ZBQVBJXzEKPiAtwqDCoMKgIGlmIChjdHgtPnZhX3JjX21vZGUgPT0gVkFfUkNfQ0JS KQo+IC3CoMKgwqDCoMKgwqDCoCBwcml2LT5zZWlfY2JyX3dvcmthcm91bmRfbmVlZGVkID0gMTsK PiAtI2VuZGlmCj4gwqAKPiDCoMKgwqDCoCBpZiAocHJpdi0+c2VpICYgU0VJX1RJTUlORykgewo+ IMKgwqDCoMKgwqDCoMKgwqAgcHJpdi0+c2VpX3BpY190aW1pbmcgPSAoSDI2NFJhd1NFSVBpY1Rp bWluZykgewo+IGRpZmYgLS1naXQgYS9saWJhdmNvZGVjL3ZhYXBpX2VuY29kZV9oMjY1LmMgYi9s aWJhdmNvZGVjL3ZhYXBpX2VuY29kZV9oMjY1LmMKPiBpbmRleCBjMGRjM2ZjYTVmLi4yMjUyZjg3 MmNkIDEwMDY0NAo+IC0tLSBhL2xpYmF2Y29kZWMvdmFhcGlfZW5jb2RlX2gyNjUuYwo+ICsrKyBi L2xpYmF2Y29kZWMvdmFhcGlfZW5jb2RlX2gyNjUuYwo+IEBAIC0xMzAzLDEwICsxMzAzLDggQEAg c3RhdGljIGF2X2NvbGQgaW50Cj4gdmFhcGlfZW5jb2RlX2gyNjVfY29uZmlndXJlKEFWQ29kZWND b250ZXh0ICphdmN0eCkKPiDCoHN0YXRpYyBjb25zdCBWQUFQSUVuY29kZVByb2ZpbGUgdmFhcGlf ZW5jb2RlX2gyNjVfcHJvZmlsZXNbXSA9IHsKPiDCoMKgwqDCoCB7IEFWX1BST0ZJTEVfSEVWQ19N QUlOLMKgwqDCoMKgIDgsIDMsIDEsIDEsIFZBUHJvZmlsZUhFVkNNYWluwqDCoMKgwqDCoMKgIH0s Cj4gwqDCoMKgwqAgeyBBVl9QUk9GSUxFX0hFVkNfUkVYVCzCoMKgwqDCoCA4LCAzLCAxLCAxLCBW QVByb2ZpbGVIRVZDTWFpbsKgwqDCoMKgwqDCoCB9LAo+IC0jaWYgVkFfQ0hFQ0tfVkVSU0lPTigw LCAzNywgMCkKPiDCoMKgwqDCoCB7IEFWX1BST0ZJTEVfSEVWQ19NQUlOXzEwLCAxMCwgMywgMSwg MSwgVkFQcm9maWxlSEVWQ01haW4xMMKgwqDCoMKgIH0sCj4gwqDCoMKgwqAgeyBBVl9QUk9GSUxF X0hFVkNfUkVYVCzCoMKgwqAgMTAsIDMsIDEsIDEsIFZBUHJvZmlsZUhFVkNNYWluMTDCoMKgwqDC oCB9LAo+IC0jZW5kaWYKPiDCoCNpZiBWQV9DSEVDS19WRVJTSU9OKDEsIDIsIDApCj4gwqDCoMKg wqAgeyBBVl9QUk9GSUxFX0hFVkNfUkVYVCzCoMKgwqAgMTIsIDMsIDEsIDEsIFZBUHJvZmlsZUhF VkNNYWluMTIgfSwKPiDCoMKgwqDCoCB7IEFWX1BST0ZJTEVfSEVWQ19SRVhULMKgwqDCoMKgIDgs IDMsIDEsIDAsIFZBUHJvZmlsZUhFVkNNYWluNDIyXzEwIH0sCj4gZGlmZiAtLWdpdCBhL2xpYmF2 ZmlsdGVyL3ZhYXBpX3ZwcC5jIGIvbGliYXZmaWx0ZXIvdmFhcGlfdnBwLmMKPiBpbmRleCA5ZWY3 YTI4OWZiLi5mZTE0MTcwZmVlIDEwMDY0NAo+IC0tLSBhL2xpYmF2ZmlsdGVyL3ZhYXBpX3ZwcC5j Cj4gKysrIGIvbGliYXZmaWx0ZXIvdmFhcGlfdnBwLmMKPiBAQCAtMjA0LDEyICsyMDQsOSBAQCBp bnQgZmZfdmFhcGlfdnBwX2NvbmZpZ19vdXRwdXQoQVZGaWx0ZXJMaW5rICpvdXRsaW5rKQo+IMKg wqDCoMKgIG91dHB1dF9mcmFtZXMtPndpZHRowqDCoMKgwqAgPSBjdHgtPm91dHB1dF93aWR0aDsK PiDCoMKgwqDCoCBvdXRwdXRfZnJhbWVzLT5oZWlnaHTCoMKgwqAgPSBjdHgtPm91dHB1dF9oZWln aHQ7Cj4gwqAKPiAtwqDCoMKgIGlmIChDT05GSUdfVkFBUElfMSkKPiAtwqDCoMKgwqDCoMKgwqAg b3V0cHV0X2ZyYW1lcy0+aW5pdGlhbF9wb29sX3NpemUgPSAwOwo+IC3CoMKgwqAgZWxzZQo+IC3C oMKgwqDCoMKgwqDCoCBvdXRwdXRfZnJhbWVzLT5pbml0aWFsX3Bvb2xfc2l6ZSA9IDQ7Cj4gK8Kg wqDCoCBvdXRwdXRfZnJhbWVzLT5pbml0aWFsX3Bvb2xfc2l6ZSA9IDA7Cj4gwqAKPiAtwqDCoMKg IGVyciA9IGZmX2ZpbHRlcl9pbml0X2h3X2ZyYW1lcyhhdmN0eCwgb3V0bGluaywgMTApOwo+ICvC oMKgwqAgZXJyID0gZmZfZmlsdGVyX2luaXRfaHdfZnJhbWVzKGF2Y3R4LCBvdXRsaW5rLCAwKTsK PiDCoMKgwqDCoCBpZiAoZXJyIDwgMCkKPiDCoMKgwqDCoMKgwqDCoMKgIGdvdG8gZmFpbDsKPiDC oAo+IEBAIC02NzcsMTUgKzY3NCwxMiBAQCBpbnQgZmZfdmFhcGlfdnBwX3JlbmRlcl9waWN0dXJl cyhBVkZpbHRlckNvbnRleHQgKmF2Y3R4LAo+IMKgwqDCoMKgwqDCoMKgwqAgZ290byBmYWlsX2Fm dGVyX3JlbmRlcjsKPiDCoMKgwqDCoCB9Cj4gwqAKPiAtwqDCoMKgIGlmIChDT05GSUdfVkFBUElf MSB8fCBjdHgtPmh3Y3R4LT5kcml2ZXJfcXVpcmtzICYKPiAtwqDCoMKgwqDCoMKgwqAgQVZfVkFB UElfRFJJVkVSX1FVSVJLX1JFTkRFUl9QQVJBTV9CVUZGRVJTKSB7Cj4gLcKgwqDCoMKgwqDCoMKg IGZvciAoaW50IGkgPSAwOyBpIDwgY291dCAmJiBwYXJhbXNfaWRzW2ldICE9IFZBX0lOVkFMSURf SUQ7IGkrKykgewo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHZhcyA9IHZhRGVzdHJveUJ1ZmZl cihjdHgtPmh3Y3R4LT5kaXNwbGF5LCBwYXJhbXNfaWRzW2ldKTsKPiAtwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBpZiAodmFzICE9IFZBX1NUQVRVU19TVUNDRVNTKSB7Cj4gLcKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCBhdl9sb2coYXZjdHgsIEFWX0xPR19FUlJPUiwgIkZhaWxlZCB0byBm cmVlIHBhcmFtZXRlciBidWZmZXI6Cj4gIgo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCAiJWQgKCVzKS5cbiIsIHZhcywgdmFFcnJvclN0cih2YXMpKTsKPiAt wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIC8vIEFuZCBpZ25vcmUuCj4gLcKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgfQo+ICvCoMKgwqAgZm9yIChpbnQgaSA9IDA7IGkgPCBjb3V0ICYmIHBh cmFtc19pZHNbaV0gIT0gVkFfSU5WQUxJRF9JRDsgaSsrKSB7Cj4gK8KgwqDCoMKgwqDCoMKgIHZh cyA9IHZhRGVzdHJveUJ1ZmZlcihjdHgtPmh3Y3R4LT5kaXNwbGF5LCBwYXJhbXNfaWRzW2ldKTsK PiArwqDCoMKgwqDCoMKgwqAgaWYgKHZhcyAhPSBWQV9TVEFUVVNfU1VDQ0VTUykgewo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIGF2X2xvZyhhdmN0eCwgQVZfTE9HX0VSUk9SLCAiRmFpbGVkIHRv IGZyZWUgcGFyYW1ldGVyIGJ1ZmZlcjogIgo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgIiVkICglcykuXG4iLCB2YXMsIHZhRXJyb3JTdHIodmFzKSk7Cj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqAgLy8gQW5kIGlnbm9yZS4KPiDCoMKgwqDCoMKgwqDCoMKgIH0KPiDCoMKg wqDCoCB9Cj4gwqAKPiBkaWZmIC0tZ2l0IGEvbGliYXZ1dGlsL2h3Y29udGV4dF92YWFwaS5jIGIv bGliYXZ1dGlsL2h3Y29udGV4dF92YWFwaS5jCj4gaW5kZXggNGNiMjVkZDAzMi4uY2FmZjQzZDFh ZSAxMDA2NDQKPiAtLS0gYS9saWJhdnV0aWwvaHdjb250ZXh0X3ZhYXBpLmMKPiArKysgYi9saWJh dnV0aWwvaHdjb250ZXh0X3ZhYXBpLmMKPiBAQCAtMzcyLDE0ICszNzIsNiBAQCBzdGF0aWMgY29u c3Qgc3RydWN0IHsKPiDCoMKgwqDCoCBjb25zdCBjaGFyICptYXRjaF9zdHJpbmc7Cj4gwqDCoMKg wqAgdW5zaWduZWQgaW50IHF1aXJrczsKPiDCoH0gdmFhcGlfZHJpdmVyX3F1aXJrc190YWJsZVtd ID0gewo+IC0jaWYgIVZBX0NIRUNLX1ZFUlNJT04oMSwgMCwgMCkKPiAtwqDCoMKgIC8vIFRoZSBp OTY1IGRyaXZlciBkaWQgbm90IGNvbmZvcm0gYmVmb3JlIHZlcnNpb24gMi4wLgo+IC3CoMKgwqAg ewo+IC3CoMKgwqDCoMKgwqDCoCAiSW50ZWwgaTk2NSAoUXVpY2sgU3luYykiLAo+IC3CoMKgwqDC oMKgwqDCoCAiaTk2NSIsCj4gLcKgwqDCoMKgwqDCoMKgIEFWX1ZBQVBJX0RSSVZFUl9RVUlSS19S RU5ERVJfUEFSQU1fQlVGRkVSUywKPiAtwqDCoMKgIH0sCj4gLSNlbmRpZgo+IMKgwqDCoMKgIHsK PiDCoMKgwqDCoMKgwqDCoMKgICJJbnRlbCBpSEQiLAo+IMKgwqDCoMKgwqDCoMKgwqAgInViaXQi LAo+IEBAIC0xNDI1LDcgKzE0MTcsNiBAQCBmYWlsOgo+IMKgfQo+IMKgI2VuZGlmCj4gwqAKPiAt I2lmIFZBX0NIRUNLX1ZFUlNJT04oMCwgMzYsIDApCj4gwqB0eXBlZGVmIHN0cnVjdCBWQUFQSURS TUltYWdlQnVmZmVyTWFwcGluZyB7Cj4gwqDCoMKgwqAgVkFJbWFnZcKgwqDCoMKgwqAgaW1hZ2U7 Cj4gwqDCoMKgwqAgVkFCdWZmZXJJbmZvIGJ1ZmZlcl9pbmZvOwo+IEBAIC0xNTg1LDcgKzE1NzYs NiBAQCBmYWlsOgo+IMKgwqDCoMKgIGF2X2ZyZWVwKCZtYXBwaW5nKTsKPiDCoMKgwqDCoCByZXR1 cm4gZXJyOwo+IMKgfQo+IC0jZW5kaWYKPiDCoAo+IMKgc3RhdGljIGludCB2YWFwaV9tYXBfdG9f ZHJtKEFWSFdGcmFtZXNDb250ZXh0ICpod2ZjLCBBVkZyYW1lICpkc3QsCj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29uc3QgQVZGcmFt ZSAqc3JjLCBpbnQgZmxhZ3MpCj4gQEAgLTE1OTYsMTAgKzE1ODYsNyBAQCBzdGF0aWMgaW50IHZh YXBpX21hcF90b19kcm0oQVZIV0ZyYW1lc0NvbnRleHQgKmh3ZmMsCj4gQVZGcmFtZSAqZHN0LAo+ IMKgwqDCoMKgIGlmIChlcnIgIT0gQVZFUlJPUihFTk9TWVMpKQo+IMKgwqDCoMKgwqDCoMKgwqAg cmV0dXJuIGVycjsKPiDCoCNlbmRpZgo+IC0jaWYgVkFfQ0hFQ0tfVkVSU0lPTigwLCAzNiwgMCkK PiDCoMKgwqDCoCByZXR1cm4gdmFhcGlfbWFwX3RvX2RybV9hYmgoaHdmYywgZHN0LCBzcmMsIGZs YWdzKTsKPiAtI2VuZGlmCj4gLcKgwqDCoCByZXR1cm4gQVZFUlJPUihFTk9TWVMpOwo+IMKgfQo+ IMKgCj4gwqAjZW5kaWYgLyogQ09ORklHX0xJQkRSTSAqLwo+IEBAIC0xNjQ5LDcgKzE2MzYsNiBA QCBzdGF0aWMgdm9pZCB2YWFwaV9kZXZpY2VfZnJlZShBVkhXRGV2aWNlQ29udGV4dCAqY3R4KQo+ IMKgwqDCoMKgIGF2X2ZyZWVwKCZwcml2KTsKPiDCoH0KPiDCoAo+IC0jaWYgQ09ORklHX1ZBQVBJ XzEKPiDCoHN0YXRpYyB2b2lkIHZhYXBpX2RldmljZV9sb2dfZXJyb3Iodm9pZCAqY29udGV4dCwg Y29uc3QgY2hhciAqbWVzc2FnZSkKPiDCoHsKPiDCoMKgwqDCoCBBVkhXRGV2aWNlQ29udGV4dCAq Y3R4ID0gY29udGV4dDsKPiBAQCAtMTY2Myw3ICsxNjQ5LDYgQEAgc3RhdGljIHZvaWQgdmFhcGlf ZGV2aWNlX2xvZ19pbmZvKHZvaWQgKmNvbnRleHQsIGNvbnN0Cj4gY2hhciAqbWVzc2FnZSkKPiDC oAo+IMKgwqDCoMKgIGF2X2xvZyhjdHgsIEFWX0xPR19WRVJCT1NFLCAibGlidmE6ICVzIiwgbWVz c2FnZSk7Cj4gwqB9Cj4gLSNlbmRpZgo+IMKgCj4gwqBzdGF0aWMgaW50IHZhYXBpX2RldmljZV9j b25uZWN0KEFWSFdEZXZpY2VDb250ZXh0ICpjdHgsCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBWQURpc3BsYXkgZGlzcGxh eSkKPiBAQCAtMTY3MiwxMCArMTY1Nyw4IEBAIHN0YXRpYyBpbnQgdmFhcGlfZGV2aWNlX2Nvbm5l Y3QoQVZIV0RldmljZUNvbnRleHQgKmN0eCwKPiDCoMKgwqDCoCBpbnQgbWFqb3IsIG1pbm9yOwo+ IMKgwqDCoMKgIFZBU3RhdHVzIHZhczsKPiDCoAo+IC0jaWYgQ09ORklHX1ZBQVBJXzEKPiDCoMKg wqDCoCB2YVNldEVycm9yQ2FsbGJhY2soZGlzcGxheSwgJnZhYXBpX2RldmljZV9sb2dfZXJyb3Is IGN0eCk7Cj4gwqDCoMKgwqAgdmFTZXRJbmZvQ2FsbGJhY2sgKGRpc3BsYXksICZ2YWFwaV9kZXZp Y2VfbG9nX2luZm8swqAgY3R4KTsKPiAtI2VuZGlmCj4gwqAKPiDCoMKgwqDCoCBod2N0eC0+ZGlz cGxheSA9IGRpc3BsYXk7Cj4gwqAKPiBAQCAtMTkxOSw3ICsxOTAyLDYgQEAgc3RhdGljIGludCB2 YWFwaV9kZXZpY2VfY3JlYXRlKEFWSFdEZXZpY2VDb250ZXh0ICpjdHgsCj4gY29uc3QgY2hhciAq ZGV2aWNlLAo+IMKgCj4gwqDCoMKgwqAgZW50ID0gYXZfZGljdF9nZXQob3B0cywgImRyaXZlciIs IE5VTEwsIDApOwo+IMKgwqDCoMKgIGlmIChlbnQpIHsKPiAtI2lmIFZBX0NIRUNLX1ZFUlNJT04o MCwgMzgsIDApCj4gwqDCoMKgwqDCoMKgwqDCoCBWQVN0YXR1cyB2YXM7Cj4gwqDCoMKgwqDCoMKg wqDCoCB2YXMgPSB2YVNldERyaXZlck5hbWUoZGlzcGxheSwgZW50LT52YWx1ZSk7Cj4gwqDCoMKg wqDCoMKgwqDCoCBpZiAodmFzICE9IFZBX1NUQVRVU19TVUNDRVNTKSB7Cj4gQEAgLTE5MjgsMTAg KzE5MTAsNiBAQCBzdGF0aWMgaW50IHZhYXBpX2RldmljZV9jcmVhdGUoQVZIV0RldmljZUNvbnRl eHQgKmN0eCwKPiBjb25zdCBjaGFyICpkZXZpY2UsCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IHZhVGVybWluYXRlKGRpc3BsYXkpOwo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4g QVZFUlJPUl9FWFRFUk5BTDsKPiDCoMKgwqDCoMKgwqDCoMKgIH0KPiAtI2Vsc2UKPiAtwqDCoMKg wqDCoMKgwqAgYXZfbG9nKGN0eCwgQVZfTE9HX1dBUk5JTkcsICJEcml2ZXIgbmFtZSBzZXR0aW5n IGlzIG5vdCAiCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgInN1cHBvcnRlZCB3aXRo IHRoaXMgVkFBUEkgdmVyc2lvbi5cbiIpOwo+IC0jZW5kaWYKPiDCoMKgwqDCoCB9Cj4gwqAKPiDC oMKgwqDCoCByZXR1cm4gdmFhcGlfZGV2aWNlX2Nvbm5lY3QoY3R4LCBkaXNwbGF5KTsKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmZmbXBlZy1kZXZlbCBt YWlsaW5nIGxpc3QKZmZtcGVnLWRldmVsQGZmbXBlZy5vcmcKaHR0cHM6Ly9mZm1wZWcub3JnL21h aWxtYW4vbGlzdGluZm8vZmZtcGVnLWRldmVsCgpUbyB1bnN1YnNjcmliZSwgdmlzaXQgbGluayBh Ym92ZSwgb3IgZW1haWwKZmZtcGVnLWRldmVsLXJlcXVlc3RAZmZtcGVnLm9yZyB3aXRoIHN1Ympl Y3QgInVuc3Vic2NyaWJlIi4K