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 E5C81EB64DA for ; Tue, 18 Jul 2023 09:43:30 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id C3ED010E0E1; Tue, 18 Jul 2023 09:43:29 +0000 (UTC) Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id D97B910E0E1 for ; Tue, 18 Jul 2023 09:43:26 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1689673406; x=1721209406; h=from:to:subject:date:message-id:references:in-reply-to: content-id:content-transfer-encoding:mime-version; bh=OSddaDVH23AT6JN62P9DBw2ctqMpMHeFcK/ZG1DNXqM=; b=W+H1V8WR46//hd7wdY2fx2gvGLcvTI0NKq/ryNX6AyiVHJq+AqNxrshu V8FV8nyh1OA3nS7J8fA8PKwcP4Wv4OH4ybaBG1c/OjAwNmj9kezzO58/t 1c7Bin62Sw3ks5WNbdNNdVWCHjIOTqeqQDsgMaykMLuLFyT6+CbMtmrwC AG91SlIGoQB603Fsf0uBhiZTKtMGD386lciaLFkAgklXH+HotjBw4MMls PNJ5hBFbt05fpNW7XyTAg3G2y2l/oAZ5UABmeXjy40dfu9IY81mJ5lAL1 aystnHcAKWTX/dpY1wVxfmoZlQScl5CEWUdes57Hbmq3IrKcDyh2Qi7u1 Q==; X-IronPort-AV: E=McAfee;i="6600,9927,10774"; a="365035531" X-IronPort-AV: E=Sophos;i="6.01,213,1684825200"; d="scan'208";a="365035531" Received: from fmsmga005.fm.intel.com ([10.253.24.32]) by fmsmga104.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Jul 2023 02:43:26 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=McAfee;i="6600,9927,10774"; a="1054233401" X-IronPort-AV: E=Sophos;i="6.01,213,1684825200"; d="scan'208";a="1054233401" Received: from fmsmsx601.amr.corp.intel.com ([10.18.126.81]) by fmsmga005.fm.intel.com with ESMTP; 18 Jul 2023 02:43:26 -0700 Received: from fmsmsx603.amr.corp.intel.com (10.18.126.83) 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.27; Tue, 18 Jul 2023 02:43:25 -0700 Received: from fmsedg601.ED.cps.intel.com (10.1.192.135) 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.27 via Frontend Transport; Tue, 18 Jul 2023 02:43:25 -0700 Received: from NAM10-MW2-obe.outbound.protection.outlook.com (104.47.55.100) by edgegateway.intel.com (192.55.55.70) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2507.27; Tue, 18 Jul 2023 02:43:25 -0700 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=a691HRZuFYHLda+kHnWOjd+9uPby9mTcoSAMK7zQztibMVFVfFOrd6RnoyOqoRlu02E6DGrSsowtyUdtlgkxSNJix7qN4s+avahmM1I59IVQCCPTqjgXBDIH5xLaxeApJ8YNzVbsSFjowYr+5I/Wc1VvrJgbrNNsUaT9wgP3z18gK2oJQstpwjUrHfENR3QYWwIUNmI5puYZEjGRjAwv9mMrxR7Bg4ZyM0OlYIZM5S9jNE7y/9LFfkRdXUX1iLhXrKAAyAdCK3Hh9o1EhnR5HTPbkayOtgvGxf9khkq06jz/ZBCX+Qqcw5eRCsbvcsIRN5G3AKqyAd4ISfDn9aGuig== 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=OSddaDVH23AT6JN62P9DBw2ctqMpMHeFcK/ZG1DNXqM=; b=lESyVZ/OKZGZ/6DPprrphkljDyQcSY9U5B0gGWRQQxcg4aWEsy+vdoryxi2kttiCOZu2v3TZsgXABjop5bJOSoihFrcLlctLl+kB8I6+uxoatC09mYb+tVsXPZtXFRLNKpKYNMV+12zJWXLfa17aK2/jzoonT2M/AMWYzYmAOqHA4Tx7Pc668g++MnTKRnFw7YS9YWPZcWU3Bmu7Q/LWgl4LWikqcZBjCnT2XDRkn989vpH+nzyCIEUWS30Au98oIx8S+//4samObATuechANyM0FiW7eo+5ztc152F05f8fXNUNyrwh3OVnllsKKDM7qfIjqtCb6eTAh4sPpQrnqA== 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 DM4PR11MB5341.namprd11.prod.outlook.com (2603:10b6:5:390::22) by BN9PR11MB5558.namprd11.prod.outlook.com (2603:10b6:408:103::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6588.33; Tue, 18 Jul 2023 09:43:24 +0000 Received: from DM4PR11MB5341.namprd11.prod.outlook.com ([fe80::1e8d:5942:e23b:c08d]) by DM4PR11MB5341.namprd11.prod.outlook.com ([fe80::1e8d:5942:e23b:c08d%6]) with mapi id 15.20.6609.022; Tue, 18 Jul 2023 09:43:23 +0000 From: "Nautiyal, Ankit K" To: "Kandpal, Suraj" , "intel-gfx@lists.freedesktop.org" Thread-Topic: [Intel-gfx] [PATCH v3 4/7] drm/i915/vdsc: Use MACRO to cleanup intel_dsc_get_pps_reg Thread-Index: Adm5XEtbjYw/zH4Ve0mAP1ILt8xoVA== Date: Tue, 18 Jul 2023 09:43:23 +0000 Message-ID: <33dbc867-2351-45b4-a54f-12e316b50d53@intel.com> References: <20230717100931.2989980-1-suraj.kandpal@intel.com> <20230717100931.2989980-5-suraj.kandpal@intel.com> <6476b61a-79a5-9f2b-0b59-48f950e20ce1@intel.com> In-Reply-To: <6476b61a-79a5-9f2b-0b59-48f950e20ce1@intel.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: PN3PR01CA0114.INDPRD01.PROD.OUTLOOK.COM (2603:1096:c01:96::23) To DM4PR11MB5341.namprd11.prod.outlook.com (2603:10b6:5:390::22) 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: DM4PR11MB5341:EE_|BN9PR11MB5558:EE_ x-ms-office365-filtering-correlation-id: c20d96f3-3612-4817-592d-08db87736dd7 x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: LvrPrwM0lWlX/vwTOuMUzp/jRo3fppROV/WAf79v0LwKKFFxJ/h3KcL7I4zW4nu7tLfUUwEg4LV/uSbWXxC2YROebsjjmS0uELQ/0IyrQg6NdjyWMVqJKo5B1XAbKOO/he8R65AiHKZsaaA779oWhArJOmuXMciPa4gQHx4visQ5WTJ8K9XAUEJh4RdpWL/sxH0Xj/dqDN2zcul0E32WECTYEeVD0NV/3QdTH9cNe5ezqPLLL7g+hlW3TbF+nx2tu8+jcEabZkklLDQ0EPOWN6p8+OBVTIvsX5YQE5kaUcbdIfHjHTZ8xwfyG950HMqtNwbfEDPaACgKJWZfThj6FPBLZ0FiJrEFUblSsrYKv3i4zWTrMF+SrzcXeLciF+n4y3tlrg/tg663kvuDAOgwEtHD2fZ2s5AJzgg3oDxmi0NGkD3W5Na2x3+5/bMeRCHJwIttMllRZF9XOYH5UlixD/ogm2fUDYIZ93MgFn0jD6t0vZqc0ahxoHrfdhoCn8fD6z5VIC0wZ4ar/IvZh1urbdDlNpr/KnRBpZP71gypq3bsg+VhEt0Cd/5FaQ6ydS1xTuo599+6azq5EVYXGkv2nd9gKQ+A+ewziDRZQupiuA/u7DUswvfBavuCNHroM2wj x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR11MB5341.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230028)(346002)(366004)(136003)(39860400002)(396003)(376002)(451199021)(8676002)(8936002)(38100700002)(83380400001)(36756003)(2616005)(2906002)(6506007)(26005)(5660300002)(53546011)(82960400001)(122000001)(31696002)(64756008)(186003)(66476007)(86362001)(66556008)(66946007)(110136005)(66446008)(31686004)(6486002)(71200400001)(41300700001)(478600001)(6512007)(316002)(45980500001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?utf-8?B?Qm5lRThSSElkS3dzRVJiZkoydWNWUHY1bU1ZcGZyU0FTUnZPOHBZaXdvV0g2?= =?utf-8?B?WUR2QlBXaTBrSGRKSVh0L1dUMndTMXM1cGdRRXdMSDlkZ3Nvd1NnS3llZldH?= =?utf-8?B?eHNxQnJHS1RMalhvZDNOdjVoWVBFcTJzbmxPMzJmS3hxaXNmcGxyQkhLdlRO?= =?utf-8?B?OEQyOHdMSDk4dWtZSlZhU2NWWUxYWXV6YXhDYzZuUWpyT3N5M1NKL1hjSFZM?= =?utf-8?B?Q2lxVUNldkw4MENlaEwydGg4V0c2S1RlQmJJMmw1OGZVT3QzVE9ubjRRMmtj?= =?utf-8?B?cXZrNlJmWHZDVmJQcFVuVDNqazJBRm00ZTZVbVJZMkdJYTFSNld4WmZ3ZjE5?= =?utf-8?B?TEREZDl0TmwrbFVDUUVtV242TzZ0WjExazYwUW5WNUV3UENzcVBLeU1hdUNF?= =?utf-8?B?TWJ1cTVoUHBtcnVTTGtiWCtFUnRTdy9jTENSUzR6RWFzeFNHTy8yeFpNeTI0?= =?utf-8?B?WlhNa01IRmMreXVTbGhnN2VvMlVYOGRhOGd2MzhNbFJOZHQyR3VjS0p5amc3?= =?utf-8?B?SHY0NVcyWGpzbnlzNFlLSEZ5MGNpZkc0amhNTW5vVnhJM29FT1BtQXpsRWR4?= =?utf-8?B?L3o0OVBiTk53VjJOb01BVnlSVC83RXdWT1pNUkF2QW9RN3Z6QUswNkNCeTd5?= =?utf-8?B?MmRjYWc1dUFmdDVBUWdLM0pSRnh2LzdTWnZVY3cxMCtxWkVDSGdybUsyMEJu?= =?utf-8?B?NzZaSlRveDdRQXRVU01uL0xmbDRTZXpzYnhsVFdSWTBTeFFJT09UT0xISkNW?= =?utf-8?B?N2NGYTE3L1JyMnYraEZqdkpJendZQmJheGkyQlRFRGV5Ym1TUEh5ZVBVTTdB?= =?utf-8?B?V3dwejJKVkpjZFNBQmQ2anQzWWwzQllUUGxVODFPZ2hUMFUrODBwZUVGZGxx?= =?utf-8?B?M2FkZWxadjdMYU1QN3FkbEpUQWJNZThPSTltaHBhc0EraHh3cnExanFIWmdh?= =?utf-8?B?Mm5SRWhnM2tqNWxUYmVmK1dKQWREYkswQTlyRlhNNW5KdVFlRHQrQ2RIQUds?= =?utf-8?B?RTl5akFya3pYNXE0U012T3Jxd1lJMy85MG84bEh2OUFSUmg2SU45S0dqcml5?= =?utf-8?B?Y2g2QTNkUFhyZXVaZEltdWErSGVvOFVnb1dFa2tIMW13QjJYVm5MQkYrNEE1?= =?utf-8?B?RFoyTWR5RmZ3NEFjWE1OdUFHYnpMY2hSUS9iZ2dHalo4WTdSaHNFUSsrY0Iy?= =?utf-8?B?TjJGWXBuR255cW9JczN4NGdCb2htU28zcUdmTlIwK1EwVGlzYm52Ry8rZGxW?= =?utf-8?B?YUdIQTNQc0p4a05nNVRtbjZ5ZTVBR3J3SjBSR1I2elV5UTB3RkdXWFdGZXFO?= =?utf-8?B?MVQwdGpMZ1k4VzBPOUIyZ1AweUhEdXE5OXk0ZWFudEEzREpSUGNVUEtPZE13?= =?utf-8?B?Y01vUlBnZTEwem9HblptbEh1ZWc2M0NhNmZkWStpSzdkRDFzYmlTQVJJMUtw?= =?utf-8?B?SEJ4aUE1MVBuOXpvNTR0MS8xU3NQWUNQNk5PRFJmaGJ2WEZ4L0xET0dTSU5T?= =?utf-8?B?NGJIenRDNHZjWmZrU2x2WjRucm9RY0tyN2lPa0ViU3BnT05SNTRtc1BjUkRl?= =?utf-8?B?YzRiL2F6TUFkNVlUSWc4MmxWUzdCSUR1SjgvdWY3UlJURHVlOVRscDl3SzJp?= =?utf-8?B?aUpMMmpOOXlMSWNuaGVLWTJzMHpZcWJCYnVJeDNMZ092NjliWi9kdkJadWJV?= =?utf-8?B?RkFBUW16b3MwUmJmMVM1UDJBQnNqVFlWckRMOUd1Q1pSMU1BNk91K003K2RG?= =?utf-8?B?VmtRZ1VaNHV6ZkpnbXk4R1FjSk9jZHdIMS8xdFhneHFYWStEY0ViYmRiM25i?= =?utf-8?B?WTRuWldvL2w4K0IzeG84MHVuVzkrallSQ3JIeitlSkdqcXIrZDBNZlFvdkpY?= =?utf-8?B?NG1jUXRxR3VVeDF2dnVaR3J6blBlcWthVWcrT3RzMndmTDN5REJFRS9jTlBW?= =?utf-8?B?dFA3emw0akM5SFBzazFuYjZiby9TNUJFT1dRZnQyRnZuMlVKZVd0aXdvU2Fs?= =?utf-8?B?ZUw2V1U4d0dMT3BJcElIZnlMTVpLeWh0SWYvbDdNTVdtdHZabFJEN29ianUv?= =?utf-8?B?aFlsSCtPUmVCL1IwZHEybmxWWjBlUis1MXhidkprMUVabHBaUkxqdXNuWFZW?= =?utf-8?B?VDBjN1p3ai9UREF5QzFDR0R1T01aOG9vaStZN05ETG1EeHJHUUFVeDBMSVVo?= =?utf-8?B?elE9PQ==?= Content-Type: text/plain; charset="utf-8" Content-ID: <04DA3CB7DB474E41959BDBCD31F2A4CF@namprd11.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM4PR11MB5341.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: c20d96f3-3612-4817-592d-08db87736dd7 X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Jul 2023 09:43:23.6704 (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: Vofqhhl6xAvyN/M61PVh7EvOxq7hS39o2Cw225qGQjzCUdjvLHNvdGTq0YK/1ZqFpRrumftctYdXIMsdgycF4YLa7zRxmJlobIPwtQRoCOA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN9PR11MB5558 X-OriginatorOrg: intel.com Subject: Re: [Intel-gfx] [PATCH v3 4/7] drm/i915/vdsc: Use MACRO to cleanup intel_dsc_get_pps_reg X-BeenThere: intel-gfx@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Intel graphics driver community testing & development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" DQpPbiA3LzE4LzIwMjMgMjo1NCBQTSwgTmF1dGl5YWwsIEFua2l0IEsgd3JvdGU6DQo+IE9uIDcv MTcvMjAyMyAzOjM5IFBNLCBTdXJhaiBLYW5kcGFsIHdyb3RlOg0KPj4gVXNlIGEgTWFjcm8gdG8g Y2xlYW4gdXAgaW50ZWxfZHNjX2dldF9wcHNfcmVnIHNvIHRoYXQgd2UgZG9uJ3QgaGF2ZQ0KPj4g dG8gcmVwbGljYXRlIHNvIG1hbnkgaWYvZWxzZSBibG9ja3MuDQo+Pg0KPj4gU2lnbmVkLW9mZi1i eTogU3VyYWogS2FuZHBhbCA8c3VyYWoua2FuZHBhbEBpbnRlbC5jb20+DQo+PiAtLS0NCj4+ICAg IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2Rpc3BsYXkvaW50ZWxfdmRzYy5jIHwgMTI0ICsrKysrKy0t LS0tLS0tLS0tLS0tLS0NCj4+ICAgIDEgZmlsZSBjaGFuZ2VkLCAzMiBpbnNlcnRpb25zKCspLCA5 MiBkZWxldGlvbnMoLSkNCj4+DQo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUv ZGlzcGxheS9pbnRlbF92ZHNjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVs X3Zkc2MuYw0KPj4gaW5kZXggNmQzMTlmMzUxYTEyLi5lZDhmZGE0MzEyMjYgMTAwNjQ0DQo+PiAt LS0gYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9kaXNwbGF5L2ludGVsX3Zkc2MuYw0KPj4gKysrIGIv ZHJpdmVycy9ncHUvZHJtL2k5MTUvZGlzcGxheS9pbnRlbF92ZHNjLmMNCj4+IEBAIC0zMTMsMTMx ICszMTMsNzEgQEAgc3RhdGljIHZvaWQgaW50ZWxfZHNjX2dldF9wcHNfcmVnKHN0cnVjdCBpbnRl bF9jcnRjX3N0YXRlICpjcnRjX3N0YXRlLCBpbnQgcHBzLA0KPj4gICAgDQo+PiAgICAJcGlwZV9k c2MgPSBpc19waXBlX2RzYyhjcnRjLCBjcHVfdHJhbnNjb2Rlcik7DQo+PiAgICANCj4+ICsjZGVm aW5lIFBSRV9NVExfR0VUX0RTQ19SRUdJU1RFUihwcHMsIGlzX3BpcGVfZHNjLCBwaXBlKSBkbyB7 IFwNCj4+ICsJaWYgKGlzX3BpcGVfZHNjKSB7IFwNCj4+ICsJCSpkc2NfcmVnMCA9IElDTF9EU0Mw X1BJQ1RVUkVfUEFSQU1FVEVSX1NFVF8jI3BwcyhwaXBlKTsgXA0KPj4gKwkJKmRzY19yZWcxID0g SUNMX0RTQzFfUElDVFVSRV9QQVJBTUVURVJfU0VUXyMjcHBzKHBpcGUpOyBcDQo+PiArCX0gZWxz ZSB7IFwNCj4+ICsJCSpkc2NfcmVnMCA9IERTQ0FfUElDVFVSRV9QQVJBTUVURVJfU0VUXyMjcHBz OyBcDQo+PiArCQkqZHNjX3JlZzEgPSBEU0NDX1BJQ1RVUkVfUEFSQU1FVEVSX1NFVF8jI3Bwczsg XA0KPiBJIHRoaW5rIGl0IHdpbGwgYmUgbW9yZSBlZmZpY2llbnQgdG8gYWRkIGFuIGVudW0gaW50 ZWxfZHNjX2VuZ2luZSBhbmQNCj4gaGF2ZSBhIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyB0aGUgcmVn IGZvciBnaXZlbiwgcHBzLCBlbmdpbmUgYW5kIHBpcGUuDQo+DQo+IHNvbWV0aGluZyBsaWtlOg0K Pg0KPiBzdGF0aWMgaTkxNV9yZWdfdCBpbnRlbF9kc2NfZ2V0X3Bwc19yZWcoY29uc3Qgc3RydWN0 IGludGVsX2NydGNfc3RhdGUNCj4gKmNydGNfc3RhdGUsIGludCBwcHMsIGVudW0gdmRzY19lbmdp bmUgdmRzYykNCj4NCj4gU2luY2Ugb2Zmc2V0cyBhcmUgcmVndWxhcmx5IHBsYWNlZCwgd2UgY2Fu IGhhdmUgc29tZXRoaW5nIGxpa2UgOg0KPiBJQ0xfRFNDX1BJQ1RVUkVfUEFSQU1FVEVSX1NFVChl bmdpbmUsIHBwcywgcGlwZSkgYW5kDQo+DQo+IERTQ19QSUNUVVJFX1BBUkFNRVRFUl9TRVQoZW5n aW5lLCBwcHMpIGZvciBJQ0wgRURQL0RTSSBjYXNlLg0KPg0KPiBSb3VnaGx5IGl0IHdpbGwgYmUg T2Zmc2V0IG9mIFBQUyBSZWcgZm9yIEVuZ2luZSAwICsgZW5naW5lICogMHg4MDAgKyBwcHMNCj4g KiA0Lg0KDQpTb3JyeSB0aGlzIGlzIGluY29ycmVjdCBleGFtcGxlLiBOZWVkIHRvIGdldCB0aGUg ZGlmZmVyZW5jZSwgZm9yIGVuZ2luZSANCmFuZCBwcHMgdG8gY2FsY3VsYXRlIHRoZSBvZmZzZXQg Y29ycmVjdGx5Lg0KDQoNClJlZ2FyZHMsDQoNCkFua2l0DQoNCg0KPg0KPiBUaG91Z2ggdGhpcyB3 aWxsIHJlcXVpcmUgcXVpdGUgc29tZSBjaGFuZ2VzIGluIHJlZyBtYWNyb3MgaW4NCj4gaW50ZWxf dmRzY19yZWcuaCAsYW5kIGFsc28gbmVlZCB0byBoYXZlIGEgbmV3IGVudW0gZm9yIGludGVsX2Rz Y19lbmdpbmUsDQo+DQo+IGJ1dCBJTUhPIGl0IHdpbGwgYmUgZWFzaWVyIHRvIGdldCB0aGUgcmVx dWlyZWQgUFBTIHJlZyB0aGlzIHdheS4NCj4NCj4gUmVnYXJkcywNCj4NCj4gQW5raXQNCj4NCj4N Cj4+ICsJfSBcDQo+PiArfSB3aGlsZSAoMCkNCj4+ICsNCj4+ICsjZGVmaW5lIE1UTF9HRVRfRFND X1JFR0lTVEVSKHBwcywgcGlwZSkgZG8geyBcDQo+PiArCQkqZHNjX3JlZzAgPSBNVExfRFNDMF9Q SUNUVVJFX1BBUkFNRVRFUl9TRVRfIyNwcHMocGlwZSk7IFwNCj4+ICsJCSpkc2NfcmVnMSA9IE1U TF9EU0MxX1BJQ1RVUkVfUEFSQU1FVEVSX1NFVF8jI3BwcyhwaXBlKTsgXA0KPj4gK30gd2hpbGUg KDApDQo+PiArDQo+PiAgICAJc3dpdGNoIChwcHMpIHsNCj4+ICAgIAljYXNlIDA6DQo+PiAtCQlp ZiAocGlwZV9kc2MpIHsNCj4+IC0JCQkqZHNjX3JlZzAgPSBJQ0xfRFNDMF9QSUNUVVJFX1BBUkFN RVRFUl9TRVRfMChwaXBlKTsNCj4+IC0JCQkqZHNjX3JlZzEgPSBJQ0xfRFNDMV9QSUNUVVJFX1BB UkFNRVRFUl9TRVRfMChwaXBlKTsNCj4+IC0JCX0gZWxzZSB7DQo+PiAtCQkJKmRzY19yZWcwID0g RFNDQV9QSUNUVVJFX1BBUkFNRVRFUl9TRVRfMDsNCj4+IC0JCQkqZHNjX3JlZzEgPSBEU0NDX1BJ Q1RVUkVfUEFSQU1FVEVSX1NFVF8wOw0KPj4gLQkJfQ0KPj4gKwkJUFJFX01UTF9HRVRfRFNDX1JF R0lTVEVSKDAsIHBpcGVfZHNjLCBwaXBlKTsNCj4+ICAgIAkJYnJlYWs7DQo+PiAgICAJY2FzZSAx Og0KPj4gLQkJaWYgKHBpcGVfZHNjKSB7DQo+PiAtCQkJKmRzY19yZWcwID0gSUNMX0RTQzBfUElD VFVSRV9QQVJBTUVURVJfU0VUXzEocGlwZSk7DQo+PiAtCQkJKmRzY19yZWcxID0gSUNMX0RTQzFf UElDVFVSRV9QQVJBTUVURVJfU0VUXzEocGlwZSk7DQo+PiAtCQl9IGVsc2Ugew0KPj4gLQkJCSpk c2NfcmVnMCA9IERTQ0FfUElDVFVSRV9QQVJBTUVURVJfU0VUXzE7DQo+PiAtCQkJKmRzY19yZWcx ID0gRFNDQ19QSUNUVVJFX1BBUkFNRVRFUl9TRVRfMTsNCj4+IC0JCX0NCj4+ICsJCVBSRV9NVExf R0VUX0RTQ19SRUdJU1RFUigxLCBwaXBlX2RzYywgcGlwZSk7DQo+PiAgICAJCWJyZWFrOw0KPj4g ICAgCWNhc2UgMjoNCj4+IC0JCWlmIChwaXBlX2RzYykgew0KPj4gLQkJCSpkc2NfcmVnMCA9IElD TF9EU0MwX1BJQ1RVUkVfUEFSQU1FVEVSX1NFVF8yKHBpcGUpOw0KPj4gLQkJCSpkc2NfcmVnMSA9 IElDTF9EU0MxX1BJQ1RVUkVfUEFSQU1FVEVSX1NFVF8yKHBpcGUpOw0KPj4gLQkJfSBlbHNlIHsN Cj4+IC0JCQkqZHNjX3JlZzAgPSBEU0NBX1BJQ1RVUkVfUEFSQU1FVEVSX1NFVF8yOw0KPj4gLQkJ CSpkc2NfcmVnMSA9IERTQ0NfUElDVFVSRV9QQVJBTUVURVJfU0VUXzI7DQo+PiAtCQl9DQo+PiAr CQlQUkVfTVRMX0dFVF9EU0NfUkVHSVNURVIoMiwgcGlwZV9kc2MsIHBpcGUpOw0KPj4gICAgCQli cmVhazsNCj4+ICAgIAljYXNlIDM6DQo+PiAtCQlpZiAocGlwZV9kc2MpIHsNCj4+IC0JCQkqZHNj X3JlZzAgPSBJQ0xfRFNDMF9QSUNUVVJFX1BBUkFNRVRFUl9TRVRfMyhwaXBlKTsNCj4+IC0JCQkq ZHNjX3JlZzEgPSBJQ0xfRFNDMV9QSUNUVVJFX1BBUkFNRVRFUl9TRVRfMyhwaXBlKTsNCj4+IC0J CX0gZWxzZSB7DQo+PiAtCQkJKmRzY19yZWcwID0gRFNDQV9QSUNUVVJFX1BBUkFNRVRFUl9TRVRf MzsNCj4+IC0JCQkqZHNjX3JlZzEgPSBEU0NDX1BJQ1RVUkVfUEFSQU1FVEVSX1NFVF8zOw0KPj4g LQkJfQ0KPj4gKwkJUFJFX01UTF9HRVRfRFNDX1JFR0lTVEVSKDMsIHBpcGVfZHNjLCBwaXBlKTsN Cj4+ICAgIAkJYnJlYWs7DQo+PiAgICAJY2FzZSA0Og0KPj4gLQkJaWYgKHBpcGVfZHNjKSB7DQo+ PiAtCQkJKmRzY19yZWcwID0gSUNMX0RTQzBfUElDVFVSRV9QQVJBTUVURVJfU0VUXzQocGlwZSk7 DQo+PiAtCQkJKmRzY19yZWcxID0gSUNMX0RTQzFfUElDVFVSRV9QQVJBTUVURVJfU0VUXzQocGlw ZSk7DQo+PiAtCQl9IGVsc2Ugew0KPj4gLQkJCSpkc2NfcmVnMCA9IERTQ0FfUElDVFVSRV9QQVJB TUVURVJfU0VUXzQ7DQo+PiAtCQkJKmRzY19yZWcxID0gRFNDQ19QSUNUVVJFX1BBUkFNRVRFUl9T RVRfNDsNCj4+IC0JCX0NCj4+ICsJCVBSRV9NVExfR0VUX0RTQ19SRUdJU1RFUig0LCBwaXBlX2Rz YywgcGlwZSk7DQo+PiAgICAJCWJyZWFrOw0KPj4gICAgCWNhc2UgNToNCj4+IC0JCWlmIChwaXBl X2RzYykgew0KPj4gLQkJCSpkc2NfcmVnMCA9IElDTF9EU0MwX1BJQ1RVUkVfUEFSQU1FVEVSX1NF VF81KHBpcGUpOw0KPj4gLQkJCSpkc2NfcmVnMSA9IElDTF9EU0MxX1BJQ1RVUkVfUEFSQU1FVEVS X1NFVF81KHBpcGUpOw0KPj4gLQkJfSBlbHNlIHsNCj4+IC0JCQkqZHNjX3JlZzAgPSBEU0NBX1BJ Q1RVUkVfUEFSQU1FVEVSX1NFVF81Ow0KPj4gLQkJCSpkc2NfcmVnMSA9IERTQ0NfUElDVFVSRV9Q QVJBTUVURVJfU0VUXzU7DQo+PiAtCQl9DQo+PiArCQlQUkVfTVRMX0dFVF9EU0NfUkVHSVNURVIo NSwgcGlwZV9kc2MsIHBpcGUpOw0KPj4gICAgCQlicmVhazsNCj4+ICAgIAljYXNlIDY6DQo+PiAt CQlpZiAocGlwZV9kc2MpIHsNCj4+IC0JCQkqZHNjX3JlZzAgPSBJQ0xfRFNDMF9QSUNUVVJFX1BB UkFNRVRFUl9TRVRfNihwaXBlKTsNCj4+IC0JCQkqZHNjX3JlZzEgPSBJQ0xfRFNDMV9QSUNUVVJF X1BBUkFNRVRFUl9TRVRfNihwaXBlKTsNCj4+IC0JCX0gZWxzZSB7DQo+PiAtCQkJKmRzY19yZWcw ID0gRFNDQV9QSUNUVVJFX1BBUkFNRVRFUl9TRVRfNjsNCj4+IC0JCQkqZHNjX3JlZzEgPSBEU0ND X1BJQ1RVUkVfUEFSQU1FVEVSX1NFVF82Ow0KPj4gLQkJfQ0KPj4gKwkJUFJFX01UTF9HRVRfRFND X1JFR0lTVEVSKDYsIHBpcGVfZHNjLCBwaXBlKTsNCj4+ICAgIAkJYnJlYWs7DQo+PiAgICAJY2Fz ZSA3Og0KPj4gLQkJaWYgKHBpcGVfZHNjKSB7DQo+PiAtCQkJKmRzY19yZWcwID0gSUNMX0RTQzBf UElDVFVSRV9QQVJBTUVURVJfU0VUXzcocGlwZSk7DQo+PiAtCQkJKmRzY19yZWcxID0gSUNMX0RT QzFfUElDVFVSRV9QQVJBTUVURVJfU0VUXzcocGlwZSk7DQo+PiAtCQl9IGVsc2Ugew0KPj4gLQkJ CSpkc2NfcmVnMCA9IERTQ0FfUElDVFVSRV9QQVJBTUVURVJfU0VUXzc7DQo+PiAtCQkJKmRzY19y ZWcxID0gRFNDQ19QSUNUVVJFX1BBUkFNRVRFUl9TRVRfNzsNCj4+IC0JCX0NCj4+ICsJCVBSRV9N VExfR0VUX0RTQ19SRUdJU1RFUig3LCBwaXBlX2RzYywgcGlwZSk7DQo+PiAgICAJCWJyZWFrOw0K Pj4gICAgCWNhc2UgODoNCj4+IC0JCWlmIChwaXBlX2RzYykgew0KPj4gLQkJCSpkc2NfcmVnMCA9 IElDTF9EU0MwX1BJQ1RVUkVfUEFSQU1FVEVSX1NFVF84KHBpcGUpOw0KPj4gLQkJCSpkc2NfcmVn MSA9IElDTF9EU0MxX1BJQ1RVUkVfUEFSQU1FVEVSX1NFVF84KHBpcGUpOw0KPj4gLQkJfSBlbHNl IHsNCj4+IC0JCQkqZHNjX3JlZzAgPSBEU0NBX1BJQ1RVUkVfUEFSQU1FVEVSX1NFVF84Ow0KPj4g LQkJCSpkc2NfcmVnMSA9IERTQ0NfUElDVFVSRV9QQVJBTUVURVJfU0VUXzg7DQo+PiAtCQl9DQo+ PiArCQlQUkVfTVRMX0dFVF9EU0NfUkVHSVNURVIoOCwgcGlwZV9kc2MsIHBpcGUpOw0KPj4gICAg CQlicmVhazsNCj4+ICAgIAljYXNlIDk6DQo+PiAtCQlpZiAocGlwZV9kc2MpIHsNCj4+IC0JCQkq ZHNjX3JlZzAgPSBJQ0xfRFNDMF9QSUNUVVJFX1BBUkFNRVRFUl9TRVRfOShwaXBlKTsNCj4+IC0J CQkqZHNjX3JlZzEgPSBJQ0xfRFNDMV9QSUNUVVJFX1BBUkFNRVRFUl9TRVRfOShwaXBlKTsNCj4+ IC0JCX0gZWxzZSB7DQo+PiAtCQkJKmRzY19yZWcwID0gRFNDQV9QSUNUVVJFX1BBUkFNRVRFUl9T RVRfOTsNCj4+IC0JCQkqZHNjX3JlZzEgPSBEU0NDX1BJQ1RVUkVfUEFSQU1FVEVSX1NFVF85Ow0K Pj4gLQkJfQ0KPj4gKwkJUFJFX01UTF9HRVRfRFNDX1JFR0lTVEVSKDksIHBpcGVfZHNjLCBwaXBl KTsNCj4+ICAgIAkJYnJlYWs7DQo+PiAgICAJY2FzZSAxMDoNCj4+IC0JCWlmIChwaXBlX2RzYykg ew0KPj4gLQkJCSpkc2NfcmVnMCA9IElDTF9EU0MwX1BJQ1RVUkVfUEFSQU1FVEVSX1NFVF8xMChw aXBlKTsNCj4+IC0JCQkqZHNjX3JlZzEgPSBJQ0xfRFNDMV9QSUNUVVJFX1BBUkFNRVRFUl9TRVRf MTAocGlwZSk7DQo+PiAtCQl9IGVsc2Ugew0KPj4gLQkJCSpkc2NfcmVnMCA9IERTQ0FfUElDVFVS RV9QQVJBTUVURVJfU0VUXzEwOw0KPj4gLQkJCSpkc2NfcmVnMSA9IERTQ0NfUElDVFVSRV9QQVJB TUVURVJfU0VUXzEwOw0KPj4gLQkJfQ0KPj4gKwkJUFJFX01UTF9HRVRfRFNDX1JFR0lTVEVSKDEw LCBwaXBlX2RzYywgcGlwZSk7DQo+PiAgICAJCWJyZWFrOw0KPj4gICAgCWNhc2UgMTY6DQo+PiAt CQlpZiAocGlwZV9kc2MpIHsNCj4+IC0JCQkqZHNjX3JlZzAgPSBJQ0xfRFNDMF9QSUNUVVJFX1BB UkFNRVRFUl9TRVRfMTYocGlwZSk7DQo+PiAtCQkJKmRzY19yZWcxID0gSUNMX0RTQzFfUElDVFVS RV9QQVJBTUVURVJfU0VUXzE2KHBpcGUpOw0KPj4gLQkJfSBlbHNlIHsNCj4+IC0JCQkqZHNjX3Jl ZzAgPSBEU0NBX1BJQ1RVUkVfUEFSQU1FVEVSX1NFVF8xNjsNCj4+IC0JCQkqZHNjX3JlZzEgPSBE U0NDX1BJQ1RVUkVfUEFSQU1FVEVSX1NFVF8xNjsNCj4+IC0JCX0NCj4+ICsJCVBSRV9NVExfR0VU X0RTQ19SRUdJU1RFUigxNiwgcGlwZV9kc2MsIHBpcGUpOw0KPj4gICAgCQlicmVhazsNCj4+IC0J LyoNCj4+IC0JICogU2luY2UgUFBTXzE3IGFuZCBQUFNfMTggd2VyZSBpbnRyb2R1Y2VkIGZyb20g TVRMIGRzYyBjaGVjaw0KPj4gLQkgKiBuZWVkIG5vdCBiZSBkb25lDQo+PiAtCSAqLw0KPj4gICAg CWNhc2UgMTc6DQo+PiAtCQkqZHNjX3JlZzAgPSBNVExfRFNDMF9QSUNUVVJFX1BBUkFNRVRFUl9T RVRfMTcocGlwZSk7DQo+PiAtCQkqZHNjX3JlZzEgPSBNVExfRFNDMV9QSUNUVVJFX1BBUkFNRVRF Ul9TRVRfMTcocGlwZSk7DQo+PiArCQlNVExfR0VUX0RTQ19SRUdJU1RFUigxNywgcGlwZSk7DQo+ PiAgICAJCWJyZWFrOw0KPj4gICAgCWNhc2UgMTg6DQo+PiAtCQkqZHNjX3JlZzAgPSBNVExfRFND MF9QSUNUVVJFX1BBUkFNRVRFUl9TRVRfMTgocGlwZSk7DQo+PiAtCQkqZHNjX3JlZzEgPSBNVExf RFNDMV9QSUNUVVJFX1BBUkFNRVRFUl9TRVRfMTgocGlwZSk7DQo+PiArCQlNVExfR0VUX0RTQ19S RUdJU1RFUigxOCwgcGlwZSk7DQo+PiAgICAJCWJyZWFrOw0KPj4gICAgCWRlZmF1bHQ6DQo+PiAg ICAJCU1JU1NJTkdfQ0FTRShwcHMpOw0KPj4gICAgCQlicmVhazsNCj4+ICAgIAl9DQo+PiArDQo+ PiArI3VuZGVmIFBSRV9NVExfR0VUX0RTQ19SRUdJU1RFUg0KPj4gKyN1bmRlZiBNVExfR0VUX0RT Q19SRUdJU1RFUg0KPj4gICAgfQ0KPj4gICAgDQo+PiAgICBzdGF0aWMgdm9pZCBpbnRlbF9kc2Nf cHBzX2NvbmZpZ3VyZShjb25zdCBzdHJ1Y3QgaW50ZWxfY3J0Y19zdGF0ZSAqY3J0Y19zdGF0ZSkN Cg==