From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 16B3ED36108 for ; Tue, 5 Nov 2024 19:10:01 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id D40DE10E605; Tue, 5 Nov 2024 19:10:00 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.b="VWq48D5y"; dkim-atps=neutral Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.10]) by gabe.freedesktop.org (Postfix) with ESMTPS id C725F10E425 for ; Tue, 5 Nov 2024 19:09:58 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1730833798; x=1762369798; h=from:to:subject:date:message-id:references:in-reply-to: content-id:content-transfer-encoding:mime-version; bh=M5ZriWFQdUcnWUxmDedMLEsKckTKM391jFqXnCpj+PY=; b=VWq48D5yD0mY19qFGy5jNsnxCV69s5ePVU8ijNAEPbK844jzdcKxjXvI Q0Yonl+ilCIAx4Ol1YoBvD4rBstQ3RoxyZmCTmAtXFIEjRofH41WRoMvf baOKwzFNamNnPN+P2O7465IwybrYjxUFWDLfPMr3bUqddQ/wUJTNBlNcD K4KlsqlVcdpwinBrHI7dNkiyVdf1g7WHU4DaBTmtEIK2uR42lm8v2yBJk F9v7321bLRi0XmMfq6QHdpTdAmqYmaqBQsjeXQDI3heUHOn9EX/MHPaOB cESl2A1kWam+Ku1bPV6Pju6cTbPs8VbzNwLbeRuNNgMxFUjkX8x8rD0El w==; X-CSE-ConnectionGUID: vqYkOSKRSYe9fNFAbKK3TQ== X-CSE-MsgGUID: vlOG+rKcQG+xd5OfCv5VJQ== X-IronPort-AV: E=McAfee;i="6700,10204,11247"; a="41978019" X-IronPort-AV: E=Sophos;i="6.11,260,1725346800"; d="scan'208";a="41978019" Received: from orviesa004.jf.intel.com ([10.64.159.144]) by fmvoesa104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Nov 2024 11:09:55 -0800 X-CSE-ConnectionGUID: 6Cwplp14RkGat1/GWZrSkg== X-CSE-MsgGUID: l9no/1EaQlapj7FC6VaXGw== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.11,260,1725346800"; d="scan'208";a="89280883" Received: from orsmsx602.amr.corp.intel.com ([10.22.229.15]) by orviesa004.jf.intel.com with ESMTP/TLS/AES256-GCM-SHA384; 05 Nov 2024 11:09:55 -0800 Received: from orsmsx602.amr.corp.intel.com (10.22.229.15) by ORSMSX602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.39; Tue, 5 Nov 2024 11:09:53 -0800 Received: from orsedg603.ED.cps.intel.com (10.7.248.4) by orsmsx602.amr.corp.intel.com (10.22.229.15) 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, 5 Nov 2024 11:09:53 -0800 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.44) by edgegateway.intel.com (134.134.137.100) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.39; Tue, 5 Nov 2024 11:09:53 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=mggzBKSKwEfvv9//gWA9YpV9L/VecnSsTLbb+0vz9UC3QPJ5iNMAlEGwLJVaDvdKqMPCKxAObeu/wokchRSZpCB+Rq/Zww/En13cjzk9/wOtmEdl4xtrQqG3mZmZAjE1oa/uwcem/96la5WPkCm6donxcLTyfVzK9/TkTXWUUmjp/OcZ6zJYeS2kAp+9K2+G1FFnCktA00IPT5lKaa5IwH9gNuHVzwGN4LJfOXRXNdcIZudGxV98nXnvwnw6qLpO2ibgMdzXvzNA0zETMhCSf8T+WUuahvUmeqwnW73cMXW1HwXt7tQLPRT9Up8VF3v4fcuhhphIzWpFg44Pyu4/Ew== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=M5ZriWFQdUcnWUxmDedMLEsKckTKM391jFqXnCpj+PY=; b=S+iiLT6ERSxKC23lBdnsmpDH+kxiEud/BX2+UG1kKf+IFZbiQ5QVYlYLKMyRf3SUiaYmE/P71ncEAlyiZMVeELCdv6JqirnfVv6Sp5mTAdHSYpCqS/EGhV4tBkBV0s7dPXcpNarx5CQy039eu8iCJRy04nSphsXOKGOmlnPgoyJeLDS9VrjgQ0rVOj4sZg0kv2AUluBlZyRDxiBrtgSYrgcdzk8VZvi93LCdZdTJSu4x/OHofbWgnH2VN0akf5dlFQEdb2pU2hSsl0yOvey+IX1z/hjoBtoWnrBoe/TdQqbfAPOQkzPqyalnNysFAR+OVseFtb918wvLDWM4gDhngQ== 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 DM8PR11MB5751.namprd11.prod.outlook.com (2603:10b6:8:12::16) by PH7PR11MB7595.namprd11.prod.outlook.com (2603:10b6:510:27a::6) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8114.31; Tue, 5 Nov 2024 19:09:50 +0000 Received: from DM8PR11MB5751.namprd11.prod.outlook.com ([fe80::4046:430d:f16c:b842]) by DM8PR11MB5751.namprd11.prod.outlook.com ([fe80::4046:430d:f16c:b842%6]) with mapi id 15.20.8137.018; Tue, 5 Nov 2024 19:09:50 +0000 From: "Teres Alexis, Alan Previn" To: "Dong, Zhanjun" , "intel-xe@lists.freedesktop.org" Subject: Re: [PATCH v2] drm/xe/guc: Fix missing init value and add register order check Thread-Topic: [PATCH v2] drm/xe/guc: Fix missing init value and add register order check Thread-Index: AQHbLubU2bJGS5jpyEGTwz5wR5rwY7KpDsIA Date: Tue, 5 Nov 2024 19:09:49 +0000 Message-ID: References: <20241104182425.162007-1-zhanjun.dong@intel.com> In-Reply-To: <20241104182425.162007-1-zhanjun.dong@intel.com> Accept-Language: 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: DM8PR11MB5751:EE_|PH7PR11MB7595:EE_ x-ms-office365-filtering-correlation-id: b4993854-f89e-4ec4-0cc1-08dcfdcd6be1 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; ARA:13230040|366016|1800799024|376014|38070700018; x-microsoft-antispam-message-info: =?utf-8?B?Vkh4QURlNGh0VUJuTDFvZDYrTTdicXNFcVFsWGEvOGhoYzAwTWVJVnhMMTdm?= =?utf-8?B?SEdDSFFEcllCVkhSSHBVZjhOdVZtOXM5V2l6UG81NXpFSVk3SzJMSnUybUp3?= =?utf-8?B?b3M3bHo4ZjlkaUJXUVMvQ0tsRlJ5WkxrUHZNTWJzVXRpNG5pbWlhY1VRa2VU?= =?utf-8?B?TXJTWkQ0ZmZHL0xZL2s3ZitDNDlPRExCdUdzUExmTHVxMzcvUzNvZmtsZmFB?= =?utf-8?B?VjFWZy9YRFVwVDRpWklmSUpjS0JDakgyTkY0UUNONU9PR2ZvOEZibXZ2ZUJL?= =?utf-8?B?OUgvNFdsaktCNDF5c1RWMGd5TWVkM3RnU3pOYXB3Nlo3RUN1cGRIdW04RGJq?= =?utf-8?B?SERtUWdweEg0ak1lbGlJRWVndEd6ZHhySW9yeXJYYVdjUzlXUUVaTk9va3Zx?= =?utf-8?B?NnFFS1Fub1VuRWhZNkZjM1A2WlVRRlZ4dVJWMVhSbWw0dFdVbHcvTUZZNzlE?= =?utf-8?B?aURMcEljaUlmb1JYRkg5eThEeE1JR0t1YTlCcCt2RGRaNm1zVk9oRVVGZ2ZF?= =?utf-8?B?UHJ4N0Z1WmtNUWEvdnVJZHdrNkt1TDl3N0ExVCt3YlF5SzZ6Z0drNk9WRTA1?= =?utf-8?B?S2hxTUJvN3ZITjJWako1SDFEM2xSN0s2OEl5SktSaURjOXRlWWpET245STFU?= =?utf-8?B?aHdOZjFpaWxGZFhPcXJaMk80WVRma01uT3V0cXI4aHk1RE5KVUMyOXhPUnV1?= =?utf-8?B?S3BGeFFYV1V3c2I4VS9iZWd6bHZXdlRVUUxKa1dBZ1hUdFBncnNvSE1tWXhP?= =?utf-8?B?cG5qeUFBTFBTc3VhbkRXNW5PME1JcDF5cTZWTTJGcDR1L2RyLy9xYi9LeWVB?= =?utf-8?B?VEl5QnZwcERlL2tnRUMxaG92NnZGclRDbFMvc3lzZEhSZW05U3crRVdkS2dT?= =?utf-8?B?TTd1VUxWcU04eXFtcUQxemRXSkY3N3kzYUFvdDI4czZmZktDNWN3WlQ4TjRS?= =?utf-8?B?dU0wZUg0S2JoK1FTbnpCSmZXMGNwSUVlRUV5WHFQR2tzeURtTE0yempmYVRQ?= =?utf-8?B?Vlc5QnlTUldzaEtJaTNlck1rTDV6UkU2UnlNZnI3U1Z0T2pMY2hKR0JQK3pL?= =?utf-8?B?Ykdsa2Q1WStuMmM5VVppVStYcmVmaTlEQVl4MFBOL3FQT29zMFplMEdMS3pp?= =?utf-8?B?REVIazhrTVVyS2FyWXhsQ3pHd2M3a0RLdG8wVmN6V2E4Tm9KRnZLM3R3MkMw?= =?utf-8?B?UzFUSlIrbmtQekpnSFFOQWd4OXNTSkJ5YjFoOVVVdnRhcTBXcGorSDBmcDNo?= =?utf-8?B?UWY5Zm1IazZucXVHYnUrMzI3eUJjOU93cDdydHdrR2NGTXFUNkdtUnplY1ln?= =?utf-8?B?eVA1K3ZnTUNZQTVUOXZsWUtWMGI5WnAwcmc5LzNHNVliQm16RHZGaUlEeWlR?= =?utf-8?B?VkU0UnZ5STd4YkVXV3Y3eGxzcS8wRGZkdTM2bkVVemx2Q1E4c0RBaEdPWURm?= =?utf-8?B?dTdnYVYvMUprT3BIbkVUY0dBWmxFeFhHRjluQVVDeGJBVldGSGEwT2Y5QXlO?= =?utf-8?B?RmVMbCtsMVo0UmhMUHY0Ym8vVjFFT2czWHhYNWZZUTBmYW50WVBHaUNxZEFz?= =?utf-8?B?MzEzclZPWkNtQzNrMlgzcjIzNVZwNzFBSUNFQStveFNPazljNEFRVFkycHkv?= =?utf-8?B?UzRoVUlMdWlwdzlmQStuSHgzQUNzb0liUDNHem9IenAyNklSZDk5QWYybWFu?= =?utf-8?B?RXpOdnErWmcrY3FwM3hiUThJRUR2bldmb2pPM0dIZ0NDTkdaK0gyM0dqZ1U2?= =?utf-8?B?Q205YnUvcEVEbmZkSGVpcDdOMCtrWDl4bGxaOXBoVTJuaFJyU2l2SVNCZUVG?= =?utf-8?Q?M94lv0SEnpTZ1duYeuLzYCWickJA2RRD2BJHc=3D?= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM8PR11MB5751.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(366016)(1800799024)(376014)(38070700018); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?RjN5NmhSTFM5eUdxOWNoc2xvZkNXMEYyZHFpUmJLVGEvaGNWYU5XeDZ2M3Fv?= =?utf-8?B?cGdaZ2ZFOFVZaW92d1JPOVJBUDlnOHpFM0xTcFVkUzErODNvSkdmbGJ0dVkr?= =?utf-8?B?YUxJMnRNazEvZEpXeHJOVjBrS3R3QlEyWlRYaWdWa2FGZWpxMDR0RytjMG1V?= =?utf-8?B?RWNlTWVKWTNLV3dYblQ4L3JDYUdFVFlvZ2MxWGI1V0lqa0dibmRLandYTmNr?= =?utf-8?B?Yzl3RjlSbEswRUIwY2UyTjJXdEZXMnl2eWZaZnNKRVNtTFBFYTlGYzV5dVZk?= =?utf-8?B?c1dCOTc2NzZMeFkxKzRqVDlRUHlZNFgyOU5aZTRCL2Y4ZG1MTWo2OFR1R203?= =?utf-8?B?emlZcldPZ2UwWFF6blNMQnNiNjdiamYvQkQzV2lwbWtmRnpKazQ5MU5CNWxo?= =?utf-8?B?UmRBN09PS2xYN3hsb0JWZTVhVDRMODJjanZUS3IrenVmMVhvUHZ2ckRlcEpk?= =?utf-8?B?YWp5ck40dGZIdlVMUGc0UlBsNmswWjdqS0pvbHdpL0xsV3QyYUhsR29HRWhu?= =?utf-8?B?cCtNR29CSkhzaExDd2h1bW9pTENpY1ZyRjZFbk9WQkJoUU5YYnFGNkZrNDRO?= =?utf-8?B?eUZLNzJ4UDRDRzN1T2dqNFhYRncwL05tdUdFbUlQSmZ3NFVBQ21JZjFoUzZU?= =?utf-8?B?ZmMvK1RoTklVNnR3TUMzQzZSRnFZZmxEUmJwK0IvK1loWThCdFZSbHFqQ093?= =?utf-8?B?WGhGVXdOdnVxOGtnaUxpQ2tmSGhFbC9mRm1oc1dic2JwZ2xCNDBSNnBicFJV?= =?utf-8?B?N2I4aHJMUUtjOStVNFJ1OURvY05vbkMvQWRtR1BvRm1tcHVTbGh6SmpzSXpw?= =?utf-8?B?akg0cnZWMVNTTFdtaExienlXVmk3QjdCZjFKS1l2R2ZHOUI4U2Y1V3JsZ1Ix?= =?utf-8?B?WlYwREdhUDB3QzA0STM1Nzg1cXV4WElqTUtlTDRyZTRxY3grYXFRSm5pWHE0?= =?utf-8?B?L1JaRHV6TW1hWlF4R1BVRXBtSXFrNXFWVnZmT29FUVhvRTdRWFlBcDB1UEdK?= =?utf-8?B?WS94YUJYcDc3eWpSbWM5VnJOaU5NU29acTZ0SVgwQjFzalkvd3d1dkFJN25O?= =?utf-8?B?Y2pjZnVxM0VLTnV5U24rSi9naml4allnSnE2RHNpVGpMOEYyZ2xTajB6Y0g5?= =?utf-8?B?Sm5NSHo4dk1abTNRTXY5VGRLMVVtYVVNMy81Q2h3SFZyeFphck9vWDRpb3pu?= =?utf-8?B?VVExMmVwQVc3S0Vkc0tCMnZEeVA5bUlsZGFVWEsvU2VCbmtrbEZ1OW1NUmdN?= =?utf-8?B?OUMzYzV3KzNjTDIzMitxS25RWFQ4Q1V1bkZJaldvWURLNitMNGp0Q1FqY2J3?= =?utf-8?B?VHdkSExpanF6KzlCdjBlR1ZDVjRqano0WURadGpIV3VaWWVNc0YvRmJURE9R?= =?utf-8?B?dkxBRGcxeTZsZ0p3SzJzWkNGUDdXSDNlYTIxdVpBY3U3eWhVSVhUdlJVQ1pO?= =?utf-8?B?SEFYaUV1d1VQVktxdXFWNDVueklFK2RDYmZWeWhzWUtjUUVRYmR4MWlraGJS?= =?utf-8?B?aW5LZ05mdFEzdkcrbW0vTTFDeTM2Y3hBVE9QakNEVWZTWmVMRVJ5djM0OVVJ?= =?utf-8?B?Lzd5d1JPU1VoL2RvWmNlTTcrdjBDaG9TOWptejF1NVh0YU0wWjJraDB5T1RG?= =?utf-8?B?ZUxNRC9HTlV4aHVlRXlTaW9UdkpmRFgxWmtXRFFEdE9jemJSbG03cmZwYnVo?= =?utf-8?B?MFF5bDRaRjhxYmV3UkpmNUJsUC9hQXZQeUdPSVN3OHhCV1pNU05zWHRpcFdh?= =?utf-8?B?THVlN1FXYXVvejQvTmxQV3grL2pSY0tmUklLbk1OR3dDSnNuWlV2bytsYkhJ?= =?utf-8?B?WDJES1BZbUFxbzhLeXdBQ0VSQ003azhXdy9kdmRRR25xV3RpVjJPTDUxSlBD?= =?utf-8?B?c2QwYVdTTzNBZ0xrSWMxaWliRzh2dDNFS1ZyNFhXVzVRNVBiQm1aam1pdEVV?= =?utf-8?B?VURzWHFwNTlON0M1S2RPTkkxbHVCdVJMaFlJWUNWazFZdDFmOGhpRU91Wnps?= =?utf-8?B?ZjRUcStSbjBKMFZzVHUxT1UrWkdkMkN3TEx1UDMyTzNyRnR0bkFCKzVlclJk?= =?utf-8?B?YThaZEtsV3dGcVo4U2R5WS91NkpNMlVHU0IrMTh2UWFkYzhBRXAxWXlYZmQr?= =?utf-8?B?YTRjdk9uRGNmdHRiRVdwUS9lSE51VTN5SXhOdi92STZBVzR4UU9jUUwvazll?= =?utf-8?Q?YM22McGngWbTe5qtbXZtAyI=3D?= Content-Type: text/plain; charset="utf-8" Content-ID: <6E3D2BC381AA6A458A3626E7BFDD235F@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM8PR11MB5751.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b4993854-f89e-4ec4-0cc1-08dcfdcd6be1 X-MS-Exchange-CrossTenant-originalarrivaltime: 05 Nov 2024 19:09:49.9226 (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: pa/A9vQgjVio/y2WD5GP6FuriPgCPhO1aKbPNASm3/4x8x4P2E4lYVkOZ4gta/gv4quwLb3y4CapmQ/cmTvhIOjHDe1zgJ3z9p5ycmxhbOIpOl/NsJK5Udk0r469lUVT X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH7PR11MB7595 X-OriginatorOrg: intel.com X-BeenThere: intel-xe@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel Xe graphics driver List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-xe-bounces@lists.freedesktop.org Sender: "Intel-xe" QSBjb3VwbGUgb2Ygbml0cywgZWxzZSBMR1RNLCBzbzoKClJldmlld2VkLWJ5OiBBbGFuIFByZXZp biA8YWxhbi5wcmV2aW4udGVyZXMuYWxleGlzQGludGVsLmNvbT4KCk9uIE1vbiwgMjAyNC0xMS0w NCBhdCAxMDoyNCAtMDgwMCwgWmhhbmp1biBEb25nIHdyb3RlOgo+IEZpeCBtaXNzaW5nIGluaXRp YWwgdmFsdWUgZm9yIGxhc3RfdmFsdWUuCj4gRm9yIEd1QyBjYXB0dXJlIHJlZ2lzdGVyIGRlZmlu aXRpb24sIGl0IGlzIHJlcXVpcmVkIHRvIGRlZmluZSA2NGJpdAo+IHJlZ2lzdGVyIGluIGEgcGFp ciBvZiAyIGNvbnNlY3V0aXZlIDMyYml0IHJlZ2lzdGVyIGVudHJpZXMsIGxvdyBmaXJzdCwKPiB0 aGVuIGhpLiBBZGQgY29kZSB0byBjaGVjayB0aGlzIG9yZGVyLgo+IAo+IEZpeGVzOiBlY2I2MzM2 NDYzOTEgKCJkcm0veGUvZ3VjOiBQbHVtYiBHdUMtY2FwdHVyZSBpbnRvIGRldiBjb3JlZHVtcCIp Cj4gCj4gU2lnbmVkLW9mZi1ieTogWmhhbmp1biBEb25nIDx6aGFuanVuLmRvbmdAaW50ZWwuY29t Pgo+IENjOiBBbGFuIFByZXZpbiA8YWxhbi5wcmV2aW4udGVyZXMuYWxleGlzQGludGVsLmNvbT4K PiAKPiBDaGFuZ2VzIGZyb20gcHJpb3IgcmV2czoKPiDCoHYyOi0gQ29ycmVjdCB0aGUgZml4IHRh ZyBwb2ludGVkIGNvbW1pdAo+IMKgwqDCoMKgwqAgQWRkIGV4YW1wbGVzIGluIGNvbW1lbnRzIGZv ciB3YXJuaW5nCj4gwqDCoMKgwqDCoCBBZGQgMSBtaXNzaW5nIGhpIGNvbmRpdGlvbiBjaGVjawo+ IC0tLQo+IMKgZHJpdmVycy9ncHUvZHJtL3hlL3hlX2d1Y19jYXB0dXJlLmMgfCA4MCArKysrKysr KysrKysrKysrKysrKysrKy0tLS0tLQo+IMKgMSBmaWxlIGNoYW5nZWQsIDY0IGluc2VydGlvbnMo KyksIDE2IGRlbGV0aW9ucygtKQo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0veGUv eGVfZ3VjX2NhcHR1cmUuYyBiL2RyaXZlcnMvZ3B1L2RybS94ZS94ZV9ndWNfY2FwdHVyZS5jCj4g aW5kZXggY2M3MjQ0NmE1ZGUxLi44ZTUzNDQ3MWI1NjYgMTAwNjQ0Cj4gLS0tIGEvZHJpdmVycy9n cHUvZHJtL3hlL3hlX2d1Y19jYXB0dXJlLmMKPiArKysgYi9kcml2ZXJzL2dwdS9kcm0veGUveGVf Z3VjX2NhcHR1cmUuYwo+IEBAIC0xMDIsNiArMTAyLDcgQEAgc3RydWN0IF9fZ3VjX2NhcHR1cmVf cGFyc2VkX291dHB1dCB7Cj4gwqAgKsKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBBIDY0IGJpdCByZWdpc3RlciBkZWZpbmUgcmVxdWlyZXMgMiBjb25zZWN1dGl2ZSBlbnRyaWVz LAo+IMKgICrCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgd2l0aCBsb3cgZHdv cmQgZmlyc3QgYW5kIGhpIGR3b3JkIHRoZSBzZWNvbmQuCj4gwqAgKsKgwqDCoMKgIDIuIFJlZ2lz dGVyIG5hbWU6IG51bGwgZm9yIGluY29tcGxldGVkIGRlZmluZQo+ICsgKsKgwqDCoMKgIDMuIElu Y29ycmVjdCBvcmRlciB3aWxsIHRyaWdnZXIgWEVfV0FSTi4KPiDCoCAqLwo+IMKgI2RlZmluZSBD T01NT05fWEVMUF9CQVNFX0dMT0JBTCBcCj4gwqDCoMKgwqDCoMKgwqDCoHsgRk9SQ0VXQUtFX0dU LMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBSRUdfMzJCSVQswqDCoMKgwqDCoMKg MCzCoMKgwqDCoMKgwqAwLMKgwqDCoMKgwqDCoCJGT1JDRVdBS0VfR1QifQo+IEBAIC0xNjc1LDEw ICsxNjc2LDEwIEBAIHNuYXBzaG90X3ByaW50X2J5X2xpc3Rfb3JkZXIoc3RydWN0IHhlX2h3X2Vu Z2luZV9zbmFwc2hvdCAqc25hcHNob3QsIHN0cnVjdCBkcm1fCj4gwqDCoMKgwqDCoMKgwqDCoHN0 cnVjdCB4ZV9kZXZjb3JlZHVtcCAqZGV2Y29yZWR1bXAgPSAmeGUtPmRldmNvcmVkdW1wOwo+IMKg wqDCoMKgwqDCoMKgwqBzdHJ1Y3QgeGVfZGV2Y29yZWR1bXBfc25hcHNob3QgKmRldmNvcmVfc25h cHNob3QgPSAmZGV2Y29yZWR1bXAtPnNuYXBzaG90Owo+IMKgwqDCoMKgwqDCoMKgwqBzdHJ1Y3Qg Z2NhcF9yZWdfbGlzdF9pbmZvICpyZWdpbmZvID0gTlVMTDsKPiAtwqDCoMKgwqDCoMKgwqB1MzIg bGFzdF92YWx1ZSwgaTsKPiAtwqDCoMKgwqDCoMKgwqBib29sIGlzX2V4dDsKPiArwqDCoMKgwqDC oMKgwqB1MzIgaSwgbGFzdF92YWx1ZSA9IDA7Cj4gK8KgwqDCoMKgwqDCoMKgYm9vbCBpc19leHQs IGxvdzMyX3JlYWR5ID0gZmFsc2U7Cj4gwqAKPiAtwqDCoMKgwqDCoMKgwqBpZiAoIWxpc3QgfHwg bGlzdC0+bnVtX3JlZ3MgPT0gMCkKPiArwqDCoMKgwqDCoMKgwqBpZiAoIWxpc3QgfHwgIWxpc3Qt Pmxpc3QgfHwgbGlzdC0+bnVtX3JlZ3MgPT0gMCkKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoHJldHVybjsKPiDCoMKgwqDCoMKgwqDCoMKgWEVfV0FSTl9PTighZGV2Y29yZV9zbmFw c2hvdC0+bWF0Y2hlZF9ub2RlKTsKPiDCoAo+IEBAIC0xNzAxLDI5ICsxNzAyLDc2IEBAIHNuYXBz aG90X3ByaW50X2J5X2xpc3Rfb3JkZXIoc3RydWN0IHhlX2h3X2VuZ2luZV9zbmFwc2hvdCAqc25h cHNob3QsIHN0cnVjdCBkcm1fCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgY29udGludWU7Cj4gwqAKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoHZhbHVlID0gcmVnLT52YWx1ZTsKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg aWYgKHJlZ19kZXNjLT5kYXRhX3R5cGUgPT0gUkVHXzY0QklUX0xPV19EVykgewo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBzd2l0Y2ggKHJlZ19kZXNjLT5kYXRhX3R5cGUpIHsKPiAr wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY2FzZSBSRUdfNjRCSVRfTE9XX0RXOgo+IMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGxhc3RfdmFsdWUg PSB2YWx1ZTsKPiArCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAvKgo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg ICogQSA2NCBiaXQgcmVnaXN0ZXIgZGVmaW5lIHJlcXVpcmVzIDIgY29uc2VjdXRpdmUKPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqIGVudHJpZXMgaW4g cmVnaXN0ZXIgbGlzdCwgd2l0aCBsb3cgZHdvcmQgZmlyc3QKPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqIGFuZCBoaSBkd29yZCB0aGUgc2Vjb25kLCBs aWtlOgo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICrC oCB7IFhYWF9SRUdfTE8oMCksIFJFR182NEJJVF9MT1dfRFcsIDAsIDAsIE5VTEx9LAo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICrCoCB7IFhYWF9SRUdf SEkoMCksIFJFR182NEJJVF9ISV9EVyzCoCAwLCAwLCAiWFhYX1JFRyJ9LAo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICoKPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqIEluY29ycmVjdCBvcmRlciB3aWxsIHRy aWdnZXIgWEVfV0FSTi4KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAqCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgKiBQb3NzaWJsZSBkb3VibGUgbG93IGhlcmUsIGZvciBleGFtcGxlOgo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICrCoCB7IFhYWF9SRUdfTE8oMCks IFJFR182NEJJVF9MT1dfRFcsIDAsIDAsIE5VTEx9LAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICrCoCB7IFhYWF9SRUdfTE8oMCksIFJFR182NEJJVF9M T1dfRFcsIDAsIDAsIE5VTEx9LAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgICovCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqBYRV9XQVJOX09OKGxvdzMyX3JlYWR5KTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGxvdzMyX3JlYWR5ID0gdHJ1ZTsKPiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvKiBMb3cgMzIgYml0IGR3b3Jk IHNhdmVkLCBjb250aW51ZSBmb3IgaGlnaCAzMiBiaXQgKi8KPiAtwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNvbnRpbnVlOwo+IC3CoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqB9IGVsc2UgaWYgKHJlZ19kZXNjLT5kYXRhX3R5cGUgPT0gUkVHXzY0QklU X0hJX0RXKSB7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqBicmVhazsKPiArCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGNhc2UgUkVHXzY0 QklUX0hJX0RXOiB7CmFsYW46IG5pdDogbm93IHRoYXQgeW91IGhhdmUgbW92ZWQgdG8gYSBzd2l0 Y2ggc3RhdGVtZW50LCBpcyB0aGlzIHsgcmVhbGx5IHJlcXVpcmVkPwo+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoHU2NCB2YWx1ZV9xdyA9ICgodTY0KXZh bHVlIDw8IDMyKSB8IGxhc3RfdmFsdWU7Cj4gwqAKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoC8qIEluY29ycmVjdCA2NGJpdCByZWdpc3RlciBvcmRlci4g UG9zc2libGUgbWlzc2luZyBsb3cuCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgKiBmb3IgZXhhbXBsZToKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAqwqAgeyBYWFhfUkVHKDApLCBSRUdfMzJCSVQsIDAsIDAs IE5VTEx9LAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg ICrCoCB7IFhYWF9SRUdfSEkoMCksIFJFR182NEJJVF9ISV9EVywgMCwgMCwgTlVMTH0sCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKi8KPiArwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoFhFX1dBUk5fT04oIWxvdzMy X3JlYWR5KTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oGxvdzMyX3JlYWR5ID0gZmFsc2U7Cj4gKwo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoGRybV9wcmludGYocCwgIlx0JXM6IDB4JTAxNmxseFxuIiwgcmVn X2Rlc2MtPnJlZ25hbWUsIHZhbHVlX3F3KTsKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoGNvbnRpbnVlOwo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqB9Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9 CmFsYW46IG5pdDogZGl0dG8KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoGJyZWFrOwo+ICsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgY2Fz ZSBSRUdfMzJCSVQ6Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBpZiAobG93MzJfcmVhZHkpIHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAvKiBJbmNvcnJlY3QgNjRiaXQgcmVnaXN0 ZXIgb3JkZXIuIFBvc3NpYmxlIG1pc3NpbmcgaGlnaC4KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKiBmb3IgZXhhbXBsZToK PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgKsKgIHsgWFhYX1JFR19MTygwKSwgUkVHXzY0QklUX0xPV19EVywgMCwgMCwgTlVM TH0sCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgICrCoCB7IFhYWF9SRUcoMCksIFJFR18zMkJJVCwgMCwgMCwgIlhYWF9SRUci fSwKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgKi8KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBYRV9XQVJOX09OKCFsb3czMl9yZWFkeSk7Cj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg bG93MzJfcmVhZHkgPSBmYWxzZTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBicmVhazsKPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoH0KPiDCoAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqBpZiAoaXNfZXh0KSB7Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBpbnQgZHNzLCBncm91cCwgaW5zdGFuY2U7Cj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpZiAoaXNfZXh0KSB7Cj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg aW50IGRzcywgZ3JvdXAsIGluc3RhbmNlOwo+IMKgCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBncm91cCA9IEZJRUxEX0dFVChHVUNfUkVHU0VUX1NURUVS SU5HX0dST1VQLCByZWdfZGVzYy0+ZmxhZ3MpOwo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgaW5zdGFuY2UgPSBGSUVMRF9HRVQoR1VDX1JFR1NFVF9TVEVF UklOR19JTlNUQU5DRSwgcmVnX2Rlc2MtPmZsYWdzKTsKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGRzcyA9IHhlX2d0X21jcl9zdGVlcmluZ19pbmZvX3Rv X2Rzc19pZChndCwgZ3JvdXAsIGluc3RhbmNlKTsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBncm91cCA9IEZJRUxEX0dFVChH VUNfUkVHU0VUX1NURUVSSU5HX0dST1VQLCByZWdfZGVzYy0+ZmxhZ3MpOwo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoGluc3Rh bmNlID0gRklFTERfR0VUKEdVQ19SRUdTRVRfU1RFRVJJTkdfSU5TVEFOQ0UsIHJlZ19kZXNjLT5m bGFncyk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgZHNzID0geGVfZ3RfbWNyX3N0ZWVyaW5nX2luZm9fdG9fZHNzX2lkKGd0 LCBncm91cCwgaW5zdGFuY2UpOwo+IMKgCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqBkcm1fcHJpbnRmKHAsICJcdCVzWyV1XTogMHglMDh4XG4iLCByZWdf ZGVzYy0+cmVnbmFtZSwgZHNzLCB2YWx1ZSk7Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoH0gZWxzZSB7Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqBkcm1fcHJpbnRmKHAsICJcdCVzOiAweCUwOHhcbiIsIHJlZ19kZXNjLT5yZWduYW1lLCB2 YWx1ZSk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgZHJtX3ByaW50ZihwLCAiXHQlc1sldV06IDB4JTA4eFxuIiwgcmVnX2Rl c2MtPnJlZ25hbWUsIGRzcywgdmFsdWUpOwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgfSBlbHNlIHsKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBkcm1fcHJpbnRmKHAsICJcdCVzOiAw eCUwOHhcbiIsIHJlZ19kZXNjLT5yZWduYW1lLCB2YWx1ZSk7Cj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB9Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBicmVhazsKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoH0KPiDCoMKgwqDCoMKgwqDCoMKgfQo+ICsKPiArwqDCoMKgwqDCoMKgwqAvKiBJbmNv cnJlY3QgNjRiaXQgcmVnaXN0ZXIgb3JkZXIuIFBvc3NpYmxlIG1pc3NpbmcgaGlnaC4KPiArwqDC oMKgwqDCoMKgwqAgKiBmb3IgZXhhbXBsZToKPiArwqDCoMKgwqDCoMKgwqAgKsKgIHsgWFhYX1JF R19MTygwKSwgUkVHXzY0QklUX0xPV19EVywgMCwgMCwgTlVMTH0sCj4gK8KgwqDCoMKgwqDCoMKg ICrCoCB9IC8vIDwtIFJlZ2lzdGVyIGxpc3QgZW5kCj4gK8KgwqDCoMKgwqDCoMKgICovCj4gK8Kg wqDCoMKgwqDCoMKgWEVfV0FSTl9PTihsb3czMl9yZWFkeSk7Cj4gwqB9Cj4gwqAKPiDCoC8qKgoK