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 E51F945DDF for ; Wed, 12 Apr 2023 03:06:46 +0000 (UTC) Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 85FA6689F0A; Wed, 12 Apr 2023 06:06:43 +0300 (EEST) Received: from mga18.intel.com (mga18.intel.com [134.134.136.126]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 6FF2D68086D for ; Wed, 12 Apr 2023 06:06:36 +0300 (EEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1681268801; x=1712804801; h=from:to:subject:date:message-id:references:in-reply-to: content-id:content-transfer-encoding:mime-version; bh=A6nx+DzNpSzn7FAya+crFl7zmFh1dvBnco4dHvLmQZY=; b=JqvYuJhgoTYGw37IdUOOal5FQ1esSmcgjpFRzVNDYzfOiwtmn2xRAWA/ 4xzvJR/f6f5MIMHc0bTPm88kOAI0l5qT8AiZlQAU0m+REA0MJP6HECiFu pWmsI12f/X9Qw4dvOeJQI3XvHXYhj1c0H0tRQlOU5gz2IzEfNbmi04iLc y95b5oi4Pyax97rtfG6I/cOAkclU08LEO68WwR47cGA9EmXeGZsHSQd2V RnmsbCQaKZxrbt5TkNulR10bk0vM0VGnUEAeqAwxhQItqEAiYAOX66LvE dL/XoLkNM5gNBU6WqoZwShl8TK0Y7JjYLoUNx4GBHtRWEa5RbPsgrIzMi Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10677"; a="327893525" X-IronPort-AV: E=Sophos;i="5.98,338,1673942400"; d="scan'208";a="327893525" Received: from fmsmga008.fm.intel.com ([10.253.24.58]) by orsmga106.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 11 Apr 2023 20:06:32 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10677"; a="753360397" X-IronPort-AV: E=Sophos;i="5.98,338,1673942400"; d="scan'208";a="753360397" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by fmsmga008.fm.intel.com with ESMTP; 11 Apr 2023 20:06:32 -0700 Received: from fmsmsx611.amr.corp.intel.com (10.18.126.91) by fmsmsx601.amr.corp.intel.com (10.18.126.81) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Tue, 11 Apr 2023 20:06:32 -0700 Received: from fmsmsx610.amr.corp.intel.com (10.18.126.90) by fmsmsx611.amr.corp.intel.com (10.18.126.91) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23; Tue, 11 Apr 2023 20:06:31 -0700 Received: from fmsedg602.ED.cps.intel.com (10.1.192.136) by fmsmsx610.amr.corp.intel.com (10.18.126.90) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.23 via Frontend Transport; Tue, 11 Apr 2023 20:06:31 -0700 Received: from NAM12-DM6-obe.outbound.protection.outlook.com (104.47.59.177) 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.23; Tue, 11 Apr 2023 20:06:31 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=JEzZeoAXTXx1ocQZ7VDGuMFCv8Q0p3RTXiHebWhzIbAMAtTAEpYzDBN7eU5efT06tcPelgLgDqNGrmdgSoLRyJTybvTLq472qmAawc+kYVcJWOGqa5JKnzAZHbjV0TV0/jYncZt2PpUT/LxDSlACrOSUIRi/0PXKTlRoPcod9NKxL/t82v7vLizjKUngBWidpZMPxLBY9ZSktYsLRHtYnRYSbdsVOerOm6Tl0TrvxqbyATOV4WMvyWYMpZJxXtWzMG2Bp5hhW3AtFs7J/zMPOCe08bHAFdXfr2zYJSzKubkJhkESjxoAQM0MvxgOMCH4EvDO1vArDBO33hbxC3h1cg== 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=A6nx+DzNpSzn7FAya+crFl7zmFh1dvBnco4dHvLmQZY=; b=S1CedInPgZuVmovhnnfLzF1hrN69MfU/oRy9IY78hxsdgNK9mwk6GAcj+IfAMLNzYLywdocH3gXmejiLDIH148DQRD0FEbzF7CGLc7hcvijAiB9vhP2CEnjJAZMWq/7uv9RSKEvzvQqnRyvv/XLgk1S5fDvtq+vRDh6eMeuXw8eriBO2t8xtFnMP8iHq/xDT2LWliLUf6dXABDzjYGF8toxYo99X3pkiDit4omo3+yBevbCQR7DDCWvmmCF8DnGMZKPq8LJD2Qwx7GIZgqqA0jr0DPHonC1X3a5ZO3VKQtjwM7B+Xf3P643P2x4OQ2ow99e1uc0Al9+6KmWhyt7mjg== 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 BN9PR11MB5515.namprd11.prod.outlook.com (2603:10b6:408:104::8) by DM4PR11MB7280.namprd11.prod.outlook.com (2603:10b6:8:108::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6277.38; Wed, 12 Apr 2023 03:06:29 +0000 Received: from BN9PR11MB5515.namprd11.prod.outlook.com ([fe80::ac50:68be:828f:19d9]) by BN9PR11MB5515.namprd11.prod.outlook.com ([fe80::ac50:68be:828f:19d9%9]) with mapi id 15.20.6277.034; Wed, 12 Apr 2023 03:06:29 +0000 From: "Xiang, Haihao" To: "ffmpeg-devel@ffmpeg.org" Thread-Topic: [FFmpeg-devel] [PATCH v2] hwcontext_vaapi: Add support for vaGetDisplayWin32 initialization Thread-Index: AQHZY1B8+fx+ywOZuUypsOf0jFVpiq8nEOmA Date: Wed, 12 Apr 2023 03:06:29 +0000 Message-ID: References: <20230330214132.1309-1-sivileri@microsoft.com> In-Reply-To: <20230330214132.1309-1-sivileri@microsoft.com> 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-0ubuntu1 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: BN9PR11MB5515:EE_|DM4PR11MB7280:EE_ x-ms-office365-filtering-correlation-id: 72b9b98d-644e-4253-2f82-08db3b02e96a x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: FI+MzF5e9eosSGzO3A/kILTlKTY/L2iWfq1m+TXqx/eeSalxqDRbFeLx7IJ9GxRfZVM7VEvlOPlqomXAEiTC+WnMRca1M5ZUx5aysrGbCPE1nFkFVBetIRfBVbTZgp4CrCLlojh4uVjiaFU3fBph8Mgu0m4oVMNtpg2c/vmnKzOGHEAWlEvN6qykpV51+wPHsdZ5f7v8jUrP1rI47JkrCFi3GpnT98kE4+XWXvK2+bsw4V7Dm1CBYHYIMbMSrqZlIvvSbIzbUX/tkj2sbtHLjCJYWpTbEMm7X9aP+RLV4FusPK8mx4/MHZl79Holms4JKlLqmtIlAVyxzwAsw4u5aIzxeT9D017EKE/KJJlcFD4fuIDm2jHuLQLJVTC7J2AuvDeoVy83EXzc6SJIvtCUpRZXXkpczUcnb/bbCXzXOuk1cL5Hhe7ZWSF+Ot9vlRrtnOQ4Zf0o8yunBvpFLUNwblkf1rtr9vRAT3xELiNnLVBCh4j1J+M+Ew8eBdk1vKa2nyN0HQPFdMwV0T82F+Esch6cFIJbJKKkErme3DZuoScZVpwN2kGM+BVKC1I1uRySo66iR0ejfRp8fIImq/4PW8uJXVmNku/SBi6fetjDbJo= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BN9PR11MB5515.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(136003)(376002)(366004)(39860400002)(396003)(346002)(451199021)(71200400001)(6486002)(66476007)(41300700001)(966005)(6916009)(64756008)(66556008)(478600001)(66446008)(91956017)(66946007)(76116006)(316002)(36756003)(45080400002)(86362001)(2616005)(26005)(6512007)(6506007)(83380400001)(30864003)(8936002)(2906002)(8676002)(5660300002)(186003)(82960400001)(38100700002)(38070700005)(122000001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?ekNibHBzdmplQkprN3RaMkJJRi95alhIOGo4bTVXaGdmYlZhVTFOZTV4azE5?= =?utf-8?B?am8vWS9PMzFNaks5cHZocHdFT2R4dnpUUFFteXhzUzI2L2dSWUZ6dXNOOEQy?= =?utf-8?B?QWYvSTRoVjRKQXQ2QWlxWmxEeWtvRW45WVJmZGNVTytsOUpMQjBBK1RSdWlM?= =?utf-8?B?V1RVYWhYcGpzTHlZS3BuUFdMM0xjV1MzZ2I4NkJxd3VtNHY1QW9FMnhHR0JY?= =?utf-8?B?VkVtZDVXV1R5MlZQT3M2cHZKQ0d5bFZvR0VFQTNZYlhEZFd6RmxNTWZocGpK?= =?utf-8?B?WEJVemRJZ0RuUTZpNWtYbFFuejNHNnZFTnJndWV0MGZDK3FkZUtBVGUyTG5x?= =?utf-8?B?OHdTNEJYZy9IYkVmdnRGRmhVTHJDakRkWWptL013OTdvenRKaXRHcEZreUgz?= =?utf-8?B?MEl1TUowMXFWUjVndjIxcGJ0eDJTbU9TTVZadU85VzJPWENMeE1VdDJvMEJK?= =?utf-8?B?ZFMwUVVmMFA5KzRJQ3ZoVjBpYVFhaUtYd1l2VTRxZW9uTlNMamwwQlFhOGNo?= =?utf-8?B?dnVKTUVQRjI5QkhNUiswUE15NEN3MHF2UlBsKzV3WXVVeTVpbGZqZzJzV0xa?= =?utf-8?B?b3NzQ2w3OUJBb3NkY29tOVVsd2RxWUl0VUtsRXFKUFJUTzIxdHJxNTFBTHNi?= =?utf-8?B?a2lnK1JxNDF5d0VFb3VoU3ZFRDVMUis4MlAzQ0JpZnhRdjZrcU9PTlpneG1B?= =?utf-8?B?c092N3ZpbUx2ODdiUm8yOWtPUE1XL3BzbGFhdis4K2dIcEVoYzNoSWcvQVZy?= =?utf-8?B?VmZQRzk2SUgvRjE4NGtldVNEanYwcGpYTzEwZVZoQzhsZHdLOUozMHNzeWhk?= =?utf-8?B?L2kxbUo3R0JZSmpXeWN0WFFPL3VJQXFnNnlDWmVjUVJwSCtNUTlna3hMRGFs?= =?utf-8?B?ZFI1dTVhVUNRWFAxdUpUMG1iS1MxdEJSMkFJTWF2ekNMMWVPM3ZXR1RUM1kv?= =?utf-8?B?ZEdROXUrM2tYT1JRQXhQaU5pWkgxeFJHU0xBcEowOXpLUVl0ZFhUUVVOVHpO?= =?utf-8?B?dnNScFFGS3R6SDExd3NvQWNUN0JqWHN2c1c3VXRyVnFDVlYrT1lNbkxucmRi?= =?utf-8?B?dUx0MXYwTnJjTFcreHdqUVBJU0h0NGM5TzRxTmtzbGVITERWZWNUdFYyaHY1?= =?utf-8?B?dlAxMm1YNnRRa0FPV3g3Y2VsTStPZlErWmNDdmVQam5wOFVETE9UVWNBbWxi?= =?utf-8?B?NnpSK3hnaTAzclpQOEtkV3pBdWI4TzMyTWE1c2FtUFlwcFhSekYrZmlJRkhP?= =?utf-8?B?dDVyTzA2MnVJQWJqa2FiZVBWbHpIdTh4K1ZKS3lFSFVValludy9PZjBRKzhi?= =?utf-8?B?RkcwZ1pNOWxHWVhqdHZoY2dsN3BXZGcyY2s5NVM2aXQ1bUxadmJyaFFKZ0hy?= =?utf-8?B?eEo5QWhRM3J6ZkR3U0xNbU5pbjNmTXNTMlNvcGl5L1lZK09UUUVKNzVlZzRJ?= =?utf-8?B?Znp2OEZKOHJ2Z0VJcWhKN3NvcmJzcjBHY3BzZWxKUWZkTWhhRE1pU1ZyY21w?= =?utf-8?B?ZzdJOERiaGpJV3Y0Y2JDc2o4WHFKRGtOL0MyelRQRkJWVGgrdEo2dGxJMmk1?= =?utf-8?B?d2ErNE5vNXJZNklMWjhCRkU3TkJwTVFnOWFDc1J6SkxmbGVEbEhJbGJGU3dX?= =?utf-8?B?c0dJcVJTT3lBNGhXKzJPN3pocnNERm95VS96T2hDT243bFowV2dKN1liSUh0?= =?utf-8?B?dFFxL1pzVHJMRlU5YWxyS2xpL09TUVg4aW5VcjRndk1oWDFnNjI2bEQ3U1RZ?= =?utf-8?B?MWtFbFZ6TURXRVIxKzdRUkM3VSt3bXY4VGE0L2dDU0RhaWpGMWxaSGxwQ29M?= =?utf-8?B?dVNjdmZPQVlYdm81bFFUU0MvYnVqTUloOU9QU0Z6MnA2MklsS3c0N0R5NGU1?= =?utf-8?B?OFNONFFVZTQ3Ris5aHV0SzlQeTZjejdKZFlKYVFMWDc0dkkzdTdDalJOYzRL?= =?utf-8?B?aUEyVWNLMTRLc1pTSUhzOExLZUZVVjFobXdXdUxRelhOODE3dDdWc25oK1Vo?= =?utf-8?B?MHhCYXpvMGRLV1RpU0VXMXByU2I0OXZOb282ayt5djZDREV0RDUweURlKyta?= =?utf-8?B?QjVIYVN3NEFDeXFyWHY4MGdQazFOVXlLem16cFJDaXVlYW9vMlQzNHR0NEVO?= =?utf-8?B?RFZZTXN1WlF3T0RWamZ2TTFUUHRmZkRXMUNoNUJkaE1iUWYxT1QzdWIyTkFn?= =?utf-8?B?UUE9PQ==?= Content-ID: MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BN9PR11MB5515.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 72b9b98d-644e-4253-2f82-08db3b02e96a X-MS-Exchange-CrossTenant-originalarrivaltime: 12 Apr 2023 03:06:29.4561 (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: OyLS8c7LoTnRF8FEdzWQfprN8YcMJVgdKtHSMtjFKLGOoBEAiUFENrd8vT3mEC19Fpn/HitCkcrnMnASvNSgtw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM4PR11MB7280 X-OriginatorOrg: intel.com Subject: Re: [FFmpeg-devel] [PATCH v2] hwcontext_vaapi: Add support for vaGetDisplayWin32 initialization 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: T24gRG8sIDIwMjMtMDMtMzAgYXQgMTc6NDEgLTA0MDAsIFNpbCBWaWxlcmlubyB3cm90ZToKPiBU aGVzZSBjaGFuZ2VzIGFkZCBzdXBwb3J0IGZvciBWQUFQSSBvbiBXaW5kb3dzIGluIGh3Y29udGV4 dF92YWFwaQo+IHVzaW5nIHZhR2V0RGlzcGxheVdpbjMyLCBhbHNvIGFsbG93aW5nIGZvciBEaXJl Y3RYIGFkYXB0ZXIgaW5kZXgKPiBzZWxlY3Rpb24gdmlhIHRoZSAiLWRldmljZSIgY29tbWFuZCBs aW5lIGFyZ3VtZW50Lgo+IAo+IExpYnZhIDIuMTcrIGFkZHMgYSBuZXcgbGlidmEtd2luMzIgbm9k ZSBhbmQgTWVzYSAyMi4zIGFkZHMKPiBhIFZBQVBJIGRyaXZlciBiYXNlZCBvbiBEaXJlY3QzRCAx MiBmb3IgV2luZG93cywgYm90aCBhdmFpbGFibGUgYXQ6Cj4gaHR0cHM6Ly93d3cubnVnZXQub3Jn L3BhY2thZ2VzL01pY3Jvc29mdC5EaXJlY3QzRC5WaWRlb0FjY2VsZXJhdGlvbkNvbXBhdGliaWxp dHlQYWNrCj4gCj4gSW5pdGlhbCByZXZpZXcgYXQgaHR0cHM6Ly9naXRodWIuY29tL2ludGVsLW1l ZGlhLWNpL2ZmbXBlZy9wdWxsLzYxOS8KPiAKPiBBZGRpdGlvbmFsIGNoYW5nZXMgd2VyZSBtYWRl IHRvIHRoZSBjaGFuZ2Vsb2cgYW5kIG1pbm9yIHZlcnNpb24gYnVtcAo+IGFzIHdlbGwgYXMgdG8g UVNWIHRvIG5vdCBicmVhayB3aXRoIHRoaXMgbmV3IGNoYW5nZToKPiAKPiAtIHFzdl9pbnRlcm5h bC5oOiBSZW1vdmUgdW5uZWNlc3NhcnkgaW5jbHVkZSB2YV9kcm0uaAo+IC0gcXN2X2ludGVybmFs Lmg6IEVuYWJsZSBBVkNPREVDX1FTVl9MSU5VWF9TRVNTSU9OX0hBTkRMRSBvbiBMaW51eC9WQSBv bmx5Cj4gLSBod2NvbnRleHRfcXN2LmM6IERvIG5vdCBhbGxvdyBjaGlsZF9kZXZpY2VfdHlwZSBW QUFQSSBmb3IgV2luZG93cwo+IMKgIHVudGlsIHN1cHBvcnQgaXMgYWRkZWQsIGtlZXAgRDNEMTEv RFhWQTIgYXMgbW9yZSBwcmlvcml0YXJ5IGRlZmF1bHRzLgo+IAo+IFNpZ25lZC1vZmYtYnk6IFNp bCBWaWxlcmlubyA8c2l2aWxlcmlAbWljcm9zb2Z0LmNvbT4KPiBSZXZpZXdlZC1ieTogRG1pdHJ5 IFJvZ296aGtpbiA8ZG1pdHJ5LnYucm9nb3poa2luQGludGVsLmNvbT4KPiBSZXZpZXdlZC1ieTog V3UsIFRvbmcxIDx0b25nMS53dUBpbnRlbC5jb20+Cj4gLS0tCj4gwqBDaGFuZ2Vsb2fCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfMKgIDEgKwo+IMKgY29uZmlndXJlwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHwgMjcgKysrKysrKysrKysrLQo+IMKgZG9j L2ZmbXBlZy50ZXhpwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHzCoCA1ICsrLQo+IMKgZmZ0b29s cy9mZm1wZWdfb3B0LmPCoMKgwqDCoMKgwqDCoCB8wqAgMiArLQo+IMKgbGliYXZjb2RlYy9xc3Zf aW50ZXJuYWwuaMKgwqAgfMKgIDUgKy0tCj4gwqBsaWJhdnV0aWwvaHdjb250ZXh0X3Fzdi5jwqDC oCB8IDE0ICsrKysrKy0KPiDCoGxpYmF2dXRpbC9od2NvbnRleHRfdmFhcGkuYyB8IDc2ICsrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0KPiDCoGxpYmF2dXRpbC90ZXN0cy9od2Rl dmljZS5jwqAgfMKgIDIgKy0KPiDCoGxpYmF2dXRpbC92ZXJzaW9uLmjCoMKgwqDCoMKgwqDCoMKg IHzCoCAyICstCj4gwqA5IGZpbGVzIGNoYW5nZWQsIDEyMSBpbnNlcnRpb25zKCspLCAxMyBkZWxl dGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvQ2hhbmdlbG9nIGIvQ2hhbmdlbG9nCj4gaW5kZXgg YTQwZjMyYzIzZi4uNGFlOGE0ZmUyMCAxMDA2NDQKPiAtLS0gYS9DaGFuZ2Vsb2cKPiArKysgYi9D aGFuZ2Vsb2cKPiBAQCAtMyw2ICszLDcgQEAgcmVsZWFzZXMgYXJlIHNvcnRlZCBmcm9tIHlvdW5n ZXN0IHRvIG9sZGVzdC4KPiDCoAo+IMKgdmVyc2lvbiA8bmV4dD46Cj4gwqAtIGxpYmFyaWJjYXB0 aW9uIGRlY29kZXIKPiArLSBFeHRlbmQgVkFBUEkgc3VwcG9ydCBmb3IgbGlidmEtd2luMzIgb24g V2luZG93cwo+IMKgCj4gwqB2ZXJzaW9uIDYuMDoKPiDCoC0gUmFkaWFuY2UgSERSIGltYWdlIHN1 cHBvcnQKPiBkaWZmIC0tZ2l0IGEvY29uZmlndXJlIGIvY29uZmlndXJlCj4gaW5kZXggZmUzNjc0 NjJhMS4uMDMzZDllMmUzNSAxMDA3NTUKPiAtLS0gYS9jb25maWd1cmUKPiArKysgYi9jb25maWd1 cmUKPiBAQCAtMjMxNiw2ICsyMzE2LDcgQEAgU1lTVEVNX0xJQlJBUklFUz0iCj4gwqDCoMKgwqAg YmNyeXB0Cj4gwqDCoMKgwqAgdmFhcGlfZHJtCj4gwqDCoMKgwqAgdmFhcGlfeDExCj4gK8KgwqDC oCB2YWFwaV93aW4zMgo+IMKgwqDCoMKgIHZkcGF1X3gxMQo+IMKgIgo+IMKgCj4gQEAgLTM4MzAs NyArMzgzMSw3IEBAIHN3c2NhbGVfc3VnZ2VzdD0ibGlibSBzdGRhdG9taWMiCj4gwqAKPiDCoGF2 Y29kZWNfZXh0cmFsaWJzPSJwdGhyZWFkc19leHRyYWxpYnMgaWNvbnZfZXh0cmFsaWJzIGR4dmEy X2V4dHJhbGlicwo+IGxjbXMyX2V4dHJhbGlicyIKPiDCoGF2ZmlsdGVyX2V4dHJhbGlicz0icHRo cmVhZHNfZXh0cmFsaWJzIgo+IC1hdnV0aWxfZXh0cmFsaWJzPSJkM2QxMXZhX2V4dHJhbGlicyBu YW5vc2xlZXBfZXh0cmFsaWJzIHB0aHJlYWRzX2V4dHJhbGlicwo+IHZhYXBpX2RybV9leHRyYWxp YnMgdmFhcGlfeDExX2V4dHJhbGlicyB2ZHBhdV94MTFfZXh0cmFsaWJzIgo+ICthdnV0aWxfZXh0 cmFsaWJzPSJkM2QxMXZhX2V4dHJhbGlicyBuYW5vc2xlZXBfZXh0cmFsaWJzIHB0aHJlYWRzX2V4 dHJhbGlicwo+IHZhYXBpX2RybV9leHRyYWxpYnMgdmFhcGlfeDExX2V4dHJhbGlicyB2YWFwaV93 aW4zMl9leHRyYWxpYnMKPiB2ZHBhdV94MTFfZXh0cmFsaWJzIgo+IMKgCj4gwqAjIHByb2dyYW1z Cj4gwqBmZm1wZWdfZGVwcz0iYXZjb2RlYyBhdmZpbHRlciBhdmZvcm1hdCB0aHJlYWRzIgo+IEBA IC02OTUxLDYgKzY5NTIsMjEgQEAgdGVzdF9jcHAgPDxFT0YgJiYgZW5hYmxlIHV3cCAmJiBkM2Qx MXZhX2V4dHJhbGlicz0iLQo+IGxkeGdpIC1sZDNkMTEiCj4gwqAjZW5kaWYKPiDCoEVPRgo+IMKg Cj4gKyMgdmFhcGlfd2luMzIgcmVxdWlyZXMgbGlua2luZyBkaXJlY3RseSB0byBkeGdpIGlmIG5v dCBidWlsZGluZyBmb3IKPiArIyB0aGUgZGVza3RvcCBhcGkgcGFydGl0aW9uCj4gK3Rlc3RfY3Bw IDw8RU9GICYmIGVuYWJsZSB1d3AgJiYgdmFhcGlfd2luMzJfZXh0cmFsaWJzPSItbGR4Z2kiCj4g KyNpZmRlZiBXSU5BUElfRkFNSUxZCj4gKyNpbmNsdWRlIDx3aW5hcGlmYW1pbHkuaD4KPiArI2lm IFdJTkFQSV9GQU1JTFlfUEFSVElUSU9OKFdJTkFQSV9QQVJUSVRJT05fREVTS1RPUCkKPiArI2Vy cm9yIGRlc2t0b3AsIG5vdCB1d3AKPiArI2Vsc2UKPiArLy8gV0lOQVBJX0ZBTUlMWV9BUFAsIFdJ TkFQSV9GQU1JTFlfUEhPTkVfQVBQID0+IFVXUAo+ICsjZW5kaWYKPiArI2Vsc2UKPiArI2Vycm9y IG5vIGZhbWlseSBzZXQKPiArI2VuZGlmCj4gK0VPRgo+ICsKPiDCoCMgbWVkaWFmb3VuZGF0aW9u IHJlcXVpcmVzIGxpbmtpbmcgZGlyZWN0bHkgdG8gbWZwbGF0IGlmIGJ1aWxkaW5nIGZvciB1d3AK PiB0YXJnZXQKPiDCoGVuYWJsZWQgdXdwICYmIG1lZGlhZm91bmRhdGlvbl9leHRyYWxpYnM9Ii1s bWZwbGF0IC1sbWZ1dWlkIC1sb2xlMzIgLQo+IGxzdHJtaWlkcyIgfHwgbWVkaWFmb3VuZGF0aW9u X2V4dHJhbGlicz0iLWxtZnV1aWQgLWxvbGUzMiAtbHN0cm1paWRzIgo+IMKgCj4gQEAgLTY5NjEs NyArNjk3NywxNCBAQCBlbmFibGVkIHZhYXBpICYmCj4gwqDCoMKgwqAgY2hlY2tfcGtnX2NvbmZp ZyB2YWFwaSAibGlidmEgPj0gMC4zNS4wIiAidmEvdmEuaCIgdmFJbml0aWFsaXplCj4gwqAKPiDC oGlmIGVuYWJsZWQgdmFhcGk7IHRoZW4KPiAtwqDCoMKgIGNoZWNrX3BrZ19jb25maWcgdmFhcGlf ZHJtICJsaWJ2YS1kcm0iICJ2YS92YV9kcm0uaCIgdmFHZXREaXNwbGF5RFJNCj4gK8KgwqDCoCBj YXNlICR0YXJnZXRfb3MgaW4KPiArwqDCoMKgwqDCoMKgwqAgbWluZ3czMip8bWluZ3c2NCp8d2lu MzJ8d2luNjQpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY2hlY2tfcGtnX2NvbmZpZyB2YWFw aV93aW4zMiAibGlidmEtd2luMzIiICJ2YS92YV93aW4zMi5oIgo+IHZhR2V0RGlzcGxheVdpbjMy Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgOzsKPiArwqDCoMKgwqDCoMKgwqAgKikKPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBjaGVja19wa2dfY29uZmlnIHZhYXBpX2RybSAibGlidmEtZHJt IiAidmEvdmFfZHJtLmgiCj4gdmFHZXREaXNwbGF5RFJNCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqAgOzsKPiArwqDCoMKgIGVzYWMKPiDCoAo+IMKgwqDCoMKgIGlmIGVuYWJsZWQgeGxpYl94MTE7 IHRoZW4KPiDCoMKgwqDCoMKgwqDCoMKgIGNoZWNrX3BrZ19jb25maWcgdmFhcGlfeDExICJsaWJ2 YS14MTEiICJ2YS92YV94MTEuaCIgdmFHZXREaXNwbGF5Cj4gZGlmZiAtLWdpdCBhL2RvYy9mZm1w ZWcudGV4aSBiL2RvYy9mZm1wZWcudGV4aQo+IGluZGV4IGFkZmMyNzI2ZmYuLjAwZGVhN2Y0NjEg MTAwNjQ0Cj4gLS0tIGEvZG9jL2ZmbXBlZy50ZXhpCj4gKysrIGIvZG9jL2ZmbXBlZy50ZXhpCj4g QEAgLTExNjMsOSArMTE2MywxMCBAQCBDaG9vc2UgdGhlIGZpcnN0IGRldmljZSBhbmQgdXNlIHRo ZSBwcmltYXJ5IGRldmljZQo+IGNvbnRleHQuCj4gwqBAdmFye2RldmljZX0gaXMgdGhlIG51bWJl ciBvZiB0aGUgRGlyZWN0M0QgMTEgZGlzcGxheSBhZGFwdGVyLgo+IMKgCj4gwqBAaXRlbSB2YWFw aQo+IC1AdmFye2RldmljZX0gaXMgZWl0aGVyIGFuIFgxMSBkaXNwbGF5IG5hbWUgb3IgYSBEUk0g cmVuZGVyIG5vZGUuCj4gK0B2YXJ7ZGV2aWNlfSBpcyBlaXRoZXIgYW4gWDExIGRpc3BsYXkgbmFt ZSwgYSBEUk0gcmVuZGVyIG5vZGUgb3IgYSBEaXJlY3RYCj4gYWRhcHRlciBpbmRleC4KPiDCoElm IG5vdCBzcGVjaWZpZWQsIGl0IHdpbGwgYXR0ZW1wdCB0byBvcGVuIHRoZSBkZWZhdWx0IFgxMSBk aXNwbGF5Cj4gKEBlbXBoeyRESVNQTEFZfSkKPiAtYW5kIHRoZW4gdGhlIGZpcnN0IERSTSByZW5k ZXIgbm9kZSAoQGVtcGh7L2Rldi9kcmkvcmVuZGVyRDEyOH0pLgo+ICthbmQgdGhlbiB0aGUgZmly c3QgRFJNIHJlbmRlciBub2RlIChAZW1waHsvZGV2L2RyaS9yZW5kZXJEMTI4fSksIG9yIHRoZQo+ IGRlZmF1bHQKPiArRGlyZWN0WCBhZGFwdGVyIG9uIFdpbmRvd3MuCj4gwqAKPiDCoEBpdGVtIHZk cGF1Cj4gwqBAdmFye2RldmljZX0gaXMgYW4gWDExIGRpc3BsYXkgbmFtZS4KPiBkaWZmIC0tZ2l0 IGEvZmZ0b29scy9mZm1wZWdfb3B0LmMgYi9mZnRvb2xzL2ZmbXBlZ19vcHQuYwo+IGluZGV4IDA1 NTI3NWQ4MTMuLjA0M2NmNTM5YTUgMTAwNjQ0Cj4gLS0tIGEvZmZ0b29scy9mZm1wZWdfb3B0LmMK PiArKysgYi9mZnRvb2xzL2ZmbXBlZ19vcHQuYwo+IEBAIC0xNzU4LDcgKzE3NTgsNyBAQCBjb25z dCBPcHRpb25EZWYgb3B0aW9uc1tdID0gewo+IMKgCj4gwqAjaWYgQ09ORklHX1ZBQVBJCj4gwqDC oMKgwqAgeyAidmFhcGlfZGV2aWNlIiwgSEFTX0FSRyB8IE9QVF9FWFBFUlQsIHsgLmZ1bmNfYXJn ID0gb3B0X3ZhYXBpX2RldmljZSB9LAo+IC3CoMKgwqDCoMKgwqDCoCAic2V0IFZBQVBJIGhhcmR3 YXJlIGRldmljZSAoRFJNIHBhdGggb3IgWDExIGRpc3BsYXkgbmFtZSkiLCAiZGV2aWNlIgo+IH0s Cj4gK8KgwqDCoMKgwqDCoMKgICJzZXQgVkFBUEkgaGFyZHdhcmUgZGV2aWNlIChEaXJlY3RYIGFk YXB0ZXIgaW5kZXgsIERSTSBwYXRoIG9yIFgxMQo+IGRpc3BsYXkgbmFtZSkiLCAiZGV2aWNlIiB9 LAo+IMKgI2VuZGlmCj4gwqAKPiDCoCNpZiBDT05GSUdfUVNWCj4gZGlmZiAtLWdpdCBhL2xpYmF2 Y29kZWMvcXN2X2ludGVybmFsLmggYi9saWJhdmNvZGVjL3Fzdl9pbnRlcm5hbC5oCj4gaW5kZXgg NTExOWVmNGRmZi4uZGY1ZTFlMDVjYSAxMDA2NDQKPiAtLS0gYS9saWJhdmNvZGVjL3Fzdl9pbnRl cm5hbC5oCj4gKysrIGIvbGliYXZjb2RlYy9xc3ZfaW50ZXJuYWwuaAo+IEBAIC0yMyw5ICsyMyw5 IEBACj4gwqAKPiDCoCNpbmNsdWRlICJjb25maWcuaCIKPiDCoAo+IC0jaWYgQ09ORklHX1ZBQVBJ Cj4gKyNpZiBDT05GSUdfVkFBUEkgJiYgIV9XSU4zMiAvLyBEbyBub3QgZW5hYmxlIGZvciBsaWJ2 YS13aW4zMiBvbiBXaW5kb3dzCj4gwqAjZGVmaW5lIEFWQ09ERUNfUVNWX0xJTlVYX1NFU1NJT05f SEFORExFCj4gLSNlbmRpZiAvL0NPTkZJR19WQUFQSQo+ICsjZW5kaWYgLy9DT05GSUdfVkFBUEkg JiYgIV9XSU4zMgo+IMKgCj4gwqAjaWZkZWYgQVZDT0RFQ19RU1ZfTElOVVhfU0VTU0lPTl9IQU5E TEUKPiDCoCNpbmNsdWRlIDxzdGRpby5oPgo+IEBAIC0zNSw3ICszNSw2IEBACj4gwqAjZW5kaWYK PiDCoCNpbmNsdWRlIDxmY250bC5oPgo+IMKgI2luY2x1ZGUgPHZhL3ZhLmg+Cj4gLSNpbmNsdWRl IDx2YS92YV9kcm0uaD4KPiDCoCNpbmNsdWRlICJsaWJhdnV0aWwvaHdjb250ZXh0X3ZhYXBpLmgi Cj4gwqAjZW5kaWYKPiDCoAo+IGRpZmYgLS1naXQgYS9saWJhdnV0aWwvaHdjb250ZXh0X3Fzdi5j IGIvbGliYXZ1dGlsL2h3Y29udGV4dF9xc3YuYwo+IGluZGV4IDY3ODA0Mjg4NzUuLjcxMjEyYjE3 N2EgMTAwNjQ0Cj4gLS0tIGEvbGliYXZ1dGlsL2h3Y29udGV4dF9xc3YuYwo+ICsrKyBiL2xpYmF2 dXRpbC9od2NvbnRleHRfcXN2LmMKPiBAQCAtMjEyNiw4ICsyMTI2LDYgQEAgc3RhdGljIGludCBx c3ZfZGV2aWNlX2NyZWF0ZShBVkhXRGV2aWNlQ29udGV4dCAqY3R4LAo+IGNvbnN0IGNoYXIgKmRl dmljZSwKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAiXCIlc1wiLlxu IiwgZS0+dmFsdWUpOwo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gQVZFUlJPUihF SU5WQUwpOwo+IMKgwqDCoMKgwqDCoMKgwqAgfQo+IC3CoMKgwqAgfSBlbHNlIGlmIChDT05GSUdf VkFBUEkpIHsKPiAtwqDCoMKgwqDCoMKgwqAgY2hpbGRfZGV2aWNlX3R5cGUgPSBBVl9IV0RFVklD RV9UWVBFX1ZBQVBJOwo+IMKgI2lmIFFTVl9PTkVWUEwKPiDCoMKgwqDCoCB9IGVsc2UgaWYgKENP TkZJR19EM0QxMVZBKSB7wqAgLy8gVXNlIEQzRDExIGJ5IGRlZmF1bHQgaWYgZDNkMTF2YSBpcwo+ IGVuYWJsZWQKPiDCoMKgwqDCoMKgwqDCoMKgIGF2X2xvZyhjdHgsIEFWX0xPR19WRVJCT1NFLAo+ IEBAIC0yMTQ3LDExICsyMTQ1LDIzIEBAIHN0YXRpYyBpbnQgcXN2X2RldmljZV9jcmVhdGUoQVZI V0RldmljZUNvbnRleHQgKmN0eCwKPiBjb25zdCBjaGFyICpkZXZpY2UsCj4gwqDCoMKgwqAgfSBl bHNlIGlmIChDT05GSUdfRDNEMTFWQSkgewo+IMKgwqDCoMKgwqDCoMKgwqAgY2hpbGRfZGV2aWNl X3R5cGUgPSBBVl9IV0RFVklDRV9UWVBFX0QzRDExVkE7Cj4gwqAjZW5kaWYKPiArwqDCoMKgIH0g ZWxzZSBpZiAoQ09ORklHX1ZBQVBJKSB7Cj4gK8KgwqDCoMKgwqDCoMKgIGNoaWxkX2RldmljZV90 eXBlID0gQVZfSFdERVZJQ0VfVFlQRV9WQUFQSTsKPiDCoMKgwqDCoCB9IGVsc2Ugewo+IMKgwqDC oMKgwqDCoMKgwqAgYXZfbG9nKGN0eCwgQVZfTE9HX0VSUk9SLCAiTm8gc3VwcG9ydGVkIGNoaWxk IGRldmljZSB0eXBlIGlzCj4gZW5hYmxlZFxuIik7Cj4gwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4g QVZFUlJPUihFTk9TWVMpOwo+IMKgwqDCoMKgIH0KPiDCoAo+ICsjaWYgQ09ORklHX1ZBQVBJICYm IF9XSU4zMgo+ICvCoMKgwqAgLyogQVZfSFdERVZJQ0VfVFlQRV9WQUFQSSBvbiBXaW5kb3dzL0xp YnZhLXdpbjMyIG5vdCBzdXBwb3J0ZWQgKi8KPiArwqDCoMKgIC8qIFJlamVjdCB1c2VyIHNwZWNp ZmllZCBjaGlsZF9kZXZpY2VfdHlwZSBvciBDT05GSUdfVkFBUEkgb24gV2luZG93cyAqLwo+ICvC oMKgwqAgaWYgKGNoaWxkX2RldmljZV90eXBlID09IEFWX0hXREVWSUNFX1RZUEVfVkFBUEkpIHsK PiArwqDCoMKgwqDCoMKgwqAgYXZfbG9nKGN0eCwgQVZfTE9HX0VSUk9SLCAiVkFBUEkgY2hpbGQg ZGV2aWNlIHR5cGUgbm90IHN1cHBvcnRlZCBmb3IKPiBvbmVWUEwgb24gV2luZG93cyIKPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJcIiVzXCIuXG4iLCBlLT52YWx1ZSk7Cj4gK8Kg wqDCoMKgwqDCoMKgIHJldHVybiBBVkVSUk9SKEVJTlZBTCk7Cj4gK8KgwqDCoCB9Cj4gKyNlbmRp Zgo+ICsKPiDCoMKgwqDCoCBjaGlsZF9kZXZpY2Vfb3B0cyA9IE5VTEw7Cj4gwqDCoMKgwqAgc3dp dGNoIChjaGlsZF9kZXZpY2VfdHlwZSkgewo+IMKgI2lmIENPTkZJR19WQUFQSQo+IGRpZmYgLS1n aXQgYS9saWJhdnV0aWwvaHdjb250ZXh0X3ZhYXBpLmMgYi9saWJhdnV0aWwvaHdjb250ZXh0X3Zh YXBpLmMKPiBpbmRleCA5MGMyYzE5MWQ5Li4xMzYzM2JkZmYxIDEwMDY0NAo+IC0tLSBhL2xpYmF2 dXRpbC9od2NvbnRleHRfdmFhcGkuYwo+ICsrKyBiL2xpYmF2dXRpbC9od2NvbnRleHRfdmFhcGku Ywo+IEBAIC0xOCw2ICsxOCwxNSBAQAo+IMKgCj4gwqAjaW5jbHVkZSAiY29uZmlnLmgiCj4gwqAK PiArI2lmIEhBVkVfVkFBUElfV0lOMzIKPiArI8KgwqAgaW5jbHVkZSA8d2luZG93cy5oPgo+ICsj ZGVmaW5lIENPQkpNQUNST1MKPiArI8KgwqAgaW5jbHVkZSA8aW5pdGd1aWQuaD4KPiArI8KgwqAg aW5jbHVkZSA8ZHhnaTFfMi5oPgo+ICsjwqDCoCBpbmNsdWRlICJjb21wYXQvdzMyZGxmY24uaCIK PiArI8KgwqAgaW5jbHVkZSA8dmEvdmFfd2luMzIuaD4KPiArdHlwZWRlZiBIUkVTVUxUIChXSU5B UEkgKlBGTl9DUkVBVEVfRFhHSV9GQUNUT1JZKShSRUZJSUQgcmlpZCwgdm9pZAo+ICoqcHBGYWN0 b3J5KTsKPiArI2VuZGlmCj4gwqAjaWYgSEFWRV9WQUFQSV9YMTEKPiDCoCPCoMKgIGluY2x1ZGUg PHZhL3ZhX3gxMS5oPgo+IMKgI2VuZGlmCj4gQEAgLTE2NjMsNyArMTY3Miw3IEBAIHN0YXRpYyBp bnQgdmFhcGlfZGV2aWNlX2NyZWF0ZShBVkhXRGV2aWNlQ29udGV4dCAqY3R4LAo+IGNvbnN0IGNo YXIgKmRldmljZSwKPiDCoMKgwqDCoCBWQUFQSURldmljZVByaXYgKnByaXY7Cj4gwqDCoMKgwqAg VkFEaXNwbGF5IGRpc3BsYXkgPSBOVUxMOwo+IMKgwqDCoMKgIGNvbnN0IEFWRGljdGlvbmFyeUVu dHJ5ICplbnQ7Cj4gLcKgwqDCoCBpbnQgdHJ5X2RybSwgdHJ5X3gxMSwgdHJ5X2FsbDsKPiArwqDC oMKgIGludCB0cnlfZHJtLCB0cnlfeDExLCB0cnlfd2luMzIsIHRyeV9hbGw7Cj4gwqAKPiDCoMKg wqDCoCBwcml2ID0gYXZfbWFsbG9jeihzaXplb2YoKnByaXYpKTsKPiDCoMKgwqDCoCBpZiAoIXBy aXYpCj4gQEAgLTE2ODEsNiArMTY5MCw4IEBAIHN0YXRpYyBpbnQgdmFhcGlfZGV2aWNlX2NyZWF0 ZShBVkhXRGV2aWNlQ29udGV4dCAqY3R4LAo+IGNvbnN0IGNoYXIgKmRldmljZSwKPiDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgdHJ5X2RybSA9IDE7Cj4gwqDCoMKgwqDCoMKgwqDCoCB9IGVsc2Ug aWYgKCFzdHJjbXAoZW50LT52YWx1ZSwgIngxMSIpKSB7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIHRyeV94MTEgPSAxOwo+ICvCoMKgwqDCoMKgwqDCoCB9IGVsc2UgaWYgKCFzdHJjbXAoZW50 LT52YWx1ZSwgIndpbjMyIikpIHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB0cnlfd2luMzIg PSAxOwo+IMKgwqDCoMKgwqDCoMKgwqAgfSBlbHNlIHsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgYXZfbG9nKGN0eCwgQVZfTE9HX0VSUk9SLCAiSW52YWxpZCBjb25uZWN0aW9uIHR5cGUgJXMu XG4iLAo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGVudC0+dmFsdWUp Owo+IEBAIC0xNjkwLDYgKzE3MDEsNyBAQCBzdGF0aWMgaW50IHZhYXBpX2RldmljZV9jcmVhdGUo QVZIV0RldmljZUNvbnRleHQgKmN0eCwKPiBjb25zdCBjaGFyICpkZXZpY2UsCj4gwqDCoMKgwqDC oMKgwqDCoCB0cnlfYWxsID0gMTsKPiDCoMKgwqDCoMKgwqDCoMKgIHRyeV9kcm0gPSBIQVZFX1ZB QVBJX0RSTTsKPiDCoMKgwqDCoMKgwqDCoMKgIHRyeV94MTEgPSBIQVZFX1ZBQVBJX1gxMTsKPiAr wqDCoMKgwqDCoMKgwqAgdHJ5X3dpbjMyID0gSEFWRV9WQUFQSV9XSU4zMjsKPiDCoMKgwqDCoCB9 Cj4gwqAKPiDCoCNpZiBIQVZFX1ZBQVBJX0RSTQo+IEBAIC0xNzk3LDYgKzE4MDksNjggQEAgc3Rh dGljIGludCB2YWFwaV9kZXZpY2VfY3JlYXRlKEFWSFdEZXZpY2VDb250ZXh0ICpjdHgsCj4gY29u c3QgY2hhciAqZGV2aWNlLAo+IMKgwqDCoMKgIH0KPiDCoCNlbmRpZgo+IMKgCj4gKyNpZiBIQVZF X1ZBQVBJX1dJTjMyCj4gK8KgwqDCoCBpZiAoIWRpc3BsYXkgJiYgdHJ5X3dpbjMyKSB7Cj4gK8Kg wqDCoMKgwqDCoMKgIC8vIFRyeSB0byBjcmVhdGUgYSBkaXNwbGF5IGZyb20gdGhlIHNwZWNpZmll ZCBkZXZpY2UsIGlmIGFueS4KPiArwqDCoMKgwqDCoMKgwqAgaWYgKCFkZXZpY2UpIHsKPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCBkaXNwbGF5ID0gdmFHZXREaXNwbGF5V2luMzIoTlVMTCk7Cj4g K8KgwqDCoMKgwqDCoMKgIH0gZWxzZSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgSURYR0lG YWN0b3J5MiAqcERYR0lGYWN0b3J5ID0gTlVMTDsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBJ RFhHSUFkYXB0ZXIgKnBBZGFwdGVyID0gTlVMTDsKPiArI2lmICFIQVZFX1VXUAo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIEhBTkRMRSBkeGdpID0gZGxvcGVuKCJkeGdpLmRsbCIsIDApOwo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICghZHhnaSkgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgYXZfbG9nKGN0eCwgQVZfTE9HX0VSUk9SLCAiRmFpbGVkIHRvIGxvYWQgZHhn aS5kbGxcbiIpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmV0dXJuIEFWRVJS T1JfVU5LTk9XTjsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCB9Cj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqAgUEZOX0NSRUFURV9EWEdJX0ZBQ1RPUlkgcGZuQ3JlYXRlRFhHSUZhY3RvcnkgPQo+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKFBGTl9DUkVBVEVfRFhHSV9GQUNUT1JZ KWRsc3ltKGR4Z2ksICJDcmVhdGVEWEdJRmFjdG9yeSIpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGlmICghcGZuQ3JlYXRlRFhHSUZhY3RvcnkpIHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIGF2X2xvZyhjdHgsIEFWX0xPR19FUlJPUiwgIkNyZWF0ZURYR0lGYWN0b3J5IGxv YWQgZmFpbGVkXG4iKTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRsY2xvc2Uo ZHhnaSk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gQVZFUlJPUl9V TktOT1dOOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0KPiArI2Vsc2UKPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAvLyBJbiBVV1AgKHdoaWNoIGxhY2tzIExvYWRMaWJyYXJ5KSwgQ3JlYXRl RFhHSUZhY3RvcnkgaXNuJ3QKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvLyBhdmFpbGFibGUs IG9ubHkgQ3JlYXRlRFhHSUZhY3RvcnkxCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgUEZOX0NS RUFURV9EWEdJX0ZBQ1RPUlkgcGZuQ3JlYXRlRFhHSUZhY3RvcnkgPQo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgKFBGTl9DUkVBVEVfRFhHSV9GQUNUT1JZKUNyZWF0ZURYR0lGYWN0 b3J5MTsKPiArI2VuZGlmCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKFNVQ0NFRURFRChw Zm5DcmVhdGVEWEdJRmFjdG9yeSgmSUlEX0lEWEdJRmFjdG9yeTIsCj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAodm9pZCAqKikmcERYR0lGYWN0b3J5KSkpIHsKPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGludCBhZGFwdGVyID0gYXRvaShkZXZpY2UpOwo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKFNVQ0NFRURFRChJRFhHSUZhY3Rvcnky X0VudW1BZGFwdGVycyhwRFhHSUZhY3RvcnksCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYWRhcHRlciwKPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAmcEFkYXB0ZXIpKSkgewo+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBEWEdJX0FEQVBURVJfREVT QyBkZXNjOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpZiAoU1VD Q0VFREVEKElEWEdJQWRhcHRlcjJfR2V0RGVzYyhwQWRhcHRlciwgJmRlc2MpKSkgewo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGF2X2xvZyhjdHgsIEFW X0xPR19JTkZPLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgICJVc2luZyBkZXZpY2UgJTA0eDolMDR4ICglbHMpIC0gTFVJRCAlbHUK PiAlbGQuXG4iLAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIGRlc2MuVmVuZG9ySWQsIGRlc2MuRGV2aWNlSWQsIGRlc2MuRGVzY3Jp cHRpb24sCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgZGVzYy5BZGFwdGVyTHVpZC5Mb3dQYXJ0LAo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGRlc2MuQWRhcHRlckx1 aWQuSGlnaFBhcnQpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIGRpc3BsYXkgPSB2YUdldERpc3BsYXlXaW4zMigmZGVzYy5BZGFwdGVyTHVpZCk7Cj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIH0KPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgSURYR0lBZGFwdGVyX1JlbGVhc2UocEFkYXB0ZXIp Owo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+ICvCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgSURYR0lGYWN0b3J5Ml9SZWxlYXNlKHBEWEdJRmFjdG9yeSk7Cj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqAgfQo+ICsjaWYgIUhBVkVfVVdQCj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqAgZGxjbG9zZShkeGdpKTsKPiArI2VuZGlmCj4gK8KgwqDCoMKgwqDCoMKgIH0KPiAr Cj4gK8KgwqDCoMKgwqDCoMKgIGlmICghZGlzcGxheSkgewo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGF2X2xvZyhjdHgsIEFWX0xPR19FUlJPUiwgIkNhbm5vdCBvcGVuIGEgVkEgZGlzcGxheSAi Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJmcm9tIFdpbjMyIGRp c3BsYXkuXG4iKTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gQVZFUlJPUl9VTktO T1dOOwo+ICvCoMKgwqDCoMKgwqDCoCB9Cj4gKwo+ICvCoMKgwqDCoMKgwqDCoCBhdl9sb2coY3R4 LCBBVl9MT0dfVkVSQk9TRSwgIk9wZW5lZCBWQSBkaXNwbGF5IHZpYSAiCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAiV2luMzIgZGlzcGxheS5cbiIpOwo+ICvCoMKgwqAgfQo+ICsj ZW5kaWYKPiArCj4gwqDCoMKgwqAgaWYgKCFkaXNwbGF5KSB7Cj4gwqDCoMKgwqDCoMKgwqDCoCBp ZiAoZGV2aWNlKQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBhdl9sb2coY3R4LCBBVl9MT0df RVJST1IsICJObyBWQSBkaXNwbGF5IGZvdW5kIGZvciAiCj4gZGlmZiAtLWdpdCBhL2xpYmF2dXRp bC90ZXN0cy9od2RldmljZS5jIGIvbGliYXZ1dGlsL3Rlc3RzL2h3ZGV2aWNlLmMKPiBpbmRleCA3 ZWIzNTVjOTg4Li5jNTc1ODY2MTNhIDEwMDY0NAo+IC0tLSBhL2xpYmF2dXRpbC90ZXN0cy9od2Rl dmljZS5jCj4gKysrIGIvbGliYXZ1dGlsL3Rlc3RzL2h3ZGV2aWNlLmMKPiBAQCAtMTQwLDcgKzE0 MCw3IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgewo+IMKgwqDCoMKgIHsgQVZfSFdERVZJQ0VfVFlQ RV9PUEVOQ0wsCj4gwqDCoMKgwqDCoMKgIHsgIjAuMCIsICIwLjEiLCAiMS4wIiwgIjEuMSIgfSB9 LAo+IMKgwqDCoMKgIHsgQVZfSFdERVZJQ0VfVFlQRV9WQUFQSSwKPiAtwqDCoMKgwqDCoCB7ICIv ZGV2L2RyaS9yZW5kZXJEMTI4IiwgIi9kZXYvZHJpL3JlbmRlckQxMjkiLCAiOjAiIH0gfSwKPiAr wqDCoMKgwqDCoCB7ICIvZGV2L2RyaS9yZW5kZXJEMTI4IiwgIi9kZXYvZHJpL3JlbmRlckQxMjki LCAiOjAiLCAiMCIsICIxIiB9IH0sCj4gwqB9Owo+IMKgCj4gwqBzdGF0aWMgaW50IHRlc3RfZGV2 aWNlX3R5cGUoZW51bSBBVkhXRGV2aWNlVHlwZSB0eXBlKQo+IGRpZmYgLS1naXQgYS9saWJhdnV0 aWwvdmVyc2lvbi5oIGIvbGliYXZ1dGlsL3ZlcnNpb24uaAo+IGluZGV4IGEyMzIzODFiYTUuLjQw ZjkyYWYwNTUgMTAwNjQ0Cj4gLS0tIGEvbGliYXZ1dGlsL3ZlcnNpb24uaAo+ICsrKyBiL2xpYmF2 dXRpbC92ZXJzaW9uLmgKPiBAQCAtNzksNyArNzksNyBAQAo+IMKgICovCj4gwqAKPiDCoCNkZWZp bmUgTElCQVZVVElMX1ZFUlNJT05fTUFKT1LCoCA1OAo+IC0jZGVmaW5lIExJQkFWVVRJTF9WRVJT SU9OX01JTk9SwqDCoCA1Cj4gKyNkZWZpbmUgTElCQVZVVElMX1ZFUlNJT05fTUlOT1LCoMKgIDYK PiDCoCNkZWZpbmUgTElCQVZVVElMX1ZFUlNJT05fTUlDUk8gMTAwCj4gwqAKPiDCoCNkZWZpbmUg TElCQVZVVElMX1ZFUlNJT05fSU5UwqDCoCBBVl9WRVJTSU9OX0lOVChMSUJBVlVUSUxfVkVSU0lP Tl9NQUpPUiwgXAoKTEdUTSBhbmQgaXQgd29ya3MgZm9yIG1lIG9uIFdpbmRvd3MuIEknbGwgcHVz aCB0aGlzIGluIHRoZSBuZXh0IGZldyBkYXlzIGlmIG5vCm90aGVyIGNvbW1lbnRzIG9yIG9iamVj dGlvbnMuCgpUaGFua3MKSGFpaGFvCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KZmZtcGVnLWRldmVsIG1haWxpbmcgbGlzdApmZm1wZWctZGV2ZWxAZmZt cGVnLm9yZwpodHRwczovL2ZmbXBlZy5vcmcvbWFpbG1hbi9saXN0aW5mby9mZm1wZWctZGV2ZWwK ClRvIHVuc3Vic2NyaWJlLCB2aXNpdCBsaW5rIGFib3ZlLCBvciBlbWFpbApmZm1wZWctZGV2ZWwt cmVxdWVzdEBmZm1wZWcub3JnIHdpdGggc3ViamVjdCAidW5zdWJzY3JpYmUiLgo=