Received: by 2002:ad5:474a:0:0:0:0:0 with SMTP id i10csp42264imu; Thu, 20 Dec 2018 16:31:08 -0800 (PST) X-Google-Smtp-Source: ALg8bN79g9cP+nKFHwJ2ozekiJ6x3DTnrNOzl4d8JtaAzGsBMVP3gzdZLPbR0DjPFBpSEUdzhXWd X-Received: by 2002:a63:ff62:: with SMTP id s34mr314699pgk.325.1545352268868; Thu, 20 Dec 2018 16:31:08 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1545352268; cv=none; d=google.com; s=arc-20160816; b=DToveg24VWnzxKaGcCtUs/DsvfORh04F7NoF/gmnjxRFYzR7ZGBq3x/gddhcMbFVm7 GS5/ceK78XEfcrB3oysbFYJKlaFtf6f6Zxwj/cC88TZWbHauPp6V57uGp+1B/qVYiRIK 0eYp+5JCqDfT3RNRR9CWil7T3vBG6J01JwhO9MpXVSLt/5qqdSxaDLzT51EXW++i7ChH jncATuXWy0OxskRJebjcj+OPLQqM5/5SRuO0Fj6+/OnHmhqO6KinIGb9MVneSr2ypRes qYSym8SokebZEhrSSUJEC/TFEUqnOwtY0mzqwQd+4LegpcIiHjp+rvJ/N/clg9OcFexK 2MNQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:content-transfer-encoding :content-id:spamdiagnosticmetadata:spamdiagnosticoutput :content-language:accept-language:in-reply-to:references:message-id :date:thread-index:thread-topic:subject:cc:to:from:dkim-signature; bh=jzRZBhfLXLxaYPuG0X172ZIxpslpvwAA/xHGXlz8FfY=; b=JTxsOtWGRa+0/oU+kmNRZZ0pRxo/F3TTnORc493v2MZo0TPq3fwTJSrFm94BSZrkP8 n+7SfT1i3xzDEn3HaI1wC/BVdc5z6m1Xrpc2M4slGc5oqbwT+OfjDo2VpUL9/ZKgYqao vvbPbWNj8Q8ee+evuJf4Uo6QeCeX9W+xKR8Mkwa6jmfYazUbiMiWvPa+H/hR4YS6rpEI 0wfV3X4Gx9wF/XpgQ9Jfpv6HtX6gkvuQL8YQs+JXWa8RGLUwLsvR5nFXJJhJ9/ov+sa3 oE6oqM+r+Lco0moEuqnwgRJLtwwANVwhbSZrbRkYP60v2L4gzdA8dNml8V+C3m7zWNE+ cwlw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@amdcloud.onmicrosoft.com header.s=selector1-amd-com header.b=RqqsnScW; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id z18si2450372pgk.367.2018.12.20.16.30.53; Thu, 20 Dec 2018 16:31:08 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@amdcloud.onmicrosoft.com header.s=selector1-amd-com header.b=RqqsnScW; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2388060AbeLTRip (ORCPT + 99 others); Thu, 20 Dec 2018 12:38:45 -0500 Received: from mail-eopbgr770088.outbound.protection.outlook.com ([40.107.77.88]:37530 "EHLO NAM02-SN1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S2387798AbeLTRio (ORCPT ); Thu, 20 Dec 2018 12:38:44 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amdcloud.onmicrosoft.com; s=selector1-amd-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=jzRZBhfLXLxaYPuG0X172ZIxpslpvwAA/xHGXlz8FfY=; b=RqqsnScWYcOL2j0pSfcgKdpOReCKq6Eb94aWOuE19S/cOJydAbEC2S+LkvPCAP6wNcjR0p0ByJx3uAwU3qY8W2GPlhMONuPejTlVuZm7n3icC3L59bKzJ/fomSCdFPlYLv7A9QMMh0UHc4L3t8E6V24od7HYimqDYLTPk1KqzYM= Received: from SN1PR12MB2382.namprd12.prod.outlook.com (52.132.194.151) by SN1PR12MB0544.namprd12.prod.outlook.com (10.162.1.155) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1446.18; Thu, 20 Dec 2018 17:38:29 +0000 Received: from SN1PR12MB2382.namprd12.prod.outlook.com ([fe80::40e6:d365:f240:f76a]) by SN1PR12MB2382.namprd12.prod.outlook.com ([fe80::40e6:d365:f240:f76a%4]) with mapi id 15.20.1446.020; Thu, 20 Dec 2018 17:38:29 +0000 From: "Kazlauskas, Nicholas" To: Daniel Vetter , Alex Deucher CC: "Wentland, Harry" , Tomasz Figa , "dnicoara@chromium.org" , =?utf-8?B?U3TDqXBoYW5lIE1hcmNoZXNpbg==?= , Sean Paul , Alexandros Frantzis , David Airlie , Linux Kernel Mailing List , dri-devel , Gustavo Padovan , Helen Koike , "kernel@collabora.com" Subject: Re: [PATCH] drm: add capability DRM_CAP_ASYNC_UPDATE Thread-Topic: [PATCH] drm: add capability DRM_CAP_ASYNC_UPDATE Thread-Index: AQHUg/2e0ixTcNR+Ak6nfAl+UJR9W6Vjo88AgAy+2ACAC8anAIABaVWAgAnsQACAABveAIAAYreAgAADxwCAAAKagIAAAbeAgAAIE4A= Date: Thu, 20 Dec 2018 17:38:28 +0000 Message-ID: <0bbee54e-7666-3d83-c80a-8ed2b4cc737d@amd.com> References: <20181123215326.14274-1-helen.koike@collabora.com> <20181127133418.GT9144@intel.com> <6aa39654-6949-88b3-b949-b338d915ffd2@collabora.com> <0a0a35bf-69e4-8dcd-46fc-7053081480d5@collabora.com> In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: YTOPR0101CA0002.CANPRD01.PROD.OUTLOOK.COM (2603:10b6:b00:15::15) To SN1PR12MB2382.namprd12.prod.outlook.com (2603:10b6:802:25::23) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Nicholas.Kazlauskas@amd.com; x-ms-exchange-messagesentrepresentingtype: 1 x-originating-ip: [165.204.55.250] x-ms-publictraffictype: Email x-microsoft-exchange-diagnostics: 1;SN1PR12MB0544;20:IebjSAouc0oQMK/Up0N+8jL73+GvITAx/xSVud+rKBo2FTxu+1aFCJGNDPAOGBtTGIOkJ0bJb95xMRwr8dBbugiANCzhc+AX9tpIHVA4NI1eghtkgVvu3bNjZvkWUADRNmrtyiGdp45j+uoPYCTNvOvk97dYTvYj7PTDxsCC4pvZ1qXmgHZOE88jrOyXJzmqxkMNwgoB7luQV44QcAEbaZ7+9l97mlPcTbuzVILPkpmlGpE9Yc7S5M/83JsmrUbo x-ms-office365-filtering-correlation-id: c8a63f71-112c-429e-22dd-08d666a1f3bd x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0;PCL:0;RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600074)(711020)(4618075)(2017052603328)(7153060)(7193020);SRVR:SN1PR12MB0544; x-ms-traffictypediagnostic: SN1PR12MB0544: x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-exchange-antispam-report-cfa-test: BCL:0;PCL:0;RULEID:(8211001083)(3230021)(999002)(5005026)(6040522)(2401047)(8121501046)(93006095)(93001095)(3231475)(944501520)(4982022)(52105112)(10201501046)(3002001)(6055026)(149066)(150057)(6041310)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123560045)(20161123562045)(20161123564045)(20161123558120)(201708071742011)(7699051)(76991095);SRVR:SN1PR12MB0544;BCL:0;PCL:0;RULEID:;SRVR:SN1PR12MB0544; x-forefront-prvs: 0892FA9A88 x-forefront-antispam-report: SFV:NSPM;SFS:(10009020)(396003)(136003)(346002)(376002)(39860400002)(366004)(189003)(199004)(256004)(14444005)(4326008)(31686004)(478600001)(72206003)(31696002)(99286004)(68736007)(36756003)(7736002)(25786009)(105586002)(305945005)(106356001)(53386004)(587094005)(6246003)(3846002)(6512007)(53946003)(102836004)(6116002)(11346002)(2616005)(6306002)(186003)(476003)(53936002)(446003)(2906002)(6506007)(66066001)(39060400002)(386003)(26005)(53546011)(110136005)(6436002)(93886005)(14454004)(54906003)(5660300001)(52116002)(486006)(4744004)(7416002)(71200400001)(81156014)(8676002)(71190400001)(6486002)(81166006)(76176011)(8936002)(229853002)(966005)(66574012)(86362001)(97736004)(316002)(575784001)(579004);DIR:OUT;SFP:1101;SCL:1;SRVR:SN1PR12MB0544;H:SN1PR12MB2382.namprd12.prod.outlook.com;FPR:;SPF:None;LANG:en;PTR:InfoNoRecords;MX:1;A:1; received-spf: None (protection.outlook.com: amd.com does not designate permitted sender hosts) x-microsoft-antispam-message-info: 69lAiDkGcYAC+lIgmfqG6MWhB6QckqVeD14/FrcvXgJj/u+SyPza3zSx7WwVhkD8JxSLw5THZzuU4CfAECbu20wOKEKDgpfUMBL+BCVleGH57sN2pFyrk1zTzPakcoaTaGveuvvr8q1WmOjiOIeHiiIUmTEGdaJHcTd1hY9qefn7lOANghsMZF2qXQSMNgMSvQNQUQbjnHcJygSgmwSUgjh2mDdHKqVoJs6Dqkt2bo6gvyZ6/Ea06na0xnLyBmzvYpY1bBYXX3guwbf0UzmuNosNtNB0H+IEec56Kdi9nJoiVIHnGbpw/rCm7UKJdWq1 spamdiagnosticoutput: 1:99 spamdiagnosticmetadata: NSPM Content-Type: text/plain; charset="utf-8" Content-ID: <7855458DEAA11A4CB781882CA7A5D373@namprd12.prod.outlook.com> Content-Transfer-Encoding: base64 MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-Network-Message-Id: c8a63f71-112c-429e-22dd-08d666a1f3bd X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Dec 2018 17:38:28.8713 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1PR12MB0544 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org T24gMTIvMjAvMTggMTI6MDkgUE0sIERhbmllbCBWZXR0ZXIgd3JvdGU6DQo+IE9uIFRodSwgRGVj IDIwLCAyMDE4IGF0IDY6MDMgUE0gQWxleCBEZXVjaGVyIDxhbGV4ZGV1Y2hlckBnbWFpbC5jb20+ IHdyb3RlOg0KPj4NCj4+ICsgSGFycnkNCj4+DQo+PiBPbiBUaHUsIERlYyAyMCwgMjAxOCBhdCAx MTo1NCBBTSBEYW5pZWwgVmV0dGVyIDxkYW5pZWxAZmZ3bGwuY2g+IHdyb3RlOg0KPj4+DQo+Pj4g T24gVGh1LCBEZWMgMjAsIDIwMTggYXQgNTo0MCBQTSBBbGV4IERldWNoZXIgPGFsZXhkZXVjaGVy QGdtYWlsLmNvbT4gd3JvdGU6DQo+Pj4+DQo+Pj4+ICsgTmljaG9sYXMNCj4+Pj4NCj4+Pj4gT24g VGh1LCBEZWMgMjAsIDIwMTggYXQgNTo0NyBBTSBEYW5pZWwgVmV0dGVyIDxkYW5pZWxAZmZ3bGwu Y2g+IHdyb3RlOg0KPj4+Pj4NCj4+Pj4+IE9uIFRodSwgRGVjIDIwLCAyMDE4IGF0IDEwOjA3IEFN IFRvbWFzeiBGaWdhIDx0ZmlnYUBjaHJvbWl1bS5vcmc+IHdyb3RlOg0KPj4+Pj4+DQo+Pj4+Pj4g SGkgSGVsZW4sDQo+Pj4+Pj4NCj4+Pj4+PiBPbiBGcmksIERlYyAxNCwgMjAxOCBhdCAxMDozNSBB TSBIZWxlbiBLb2lrZSA8aGVsZW4ua29pa2VAY29sbGFib3JhLmNvbT4gd3JvdGU6DQo+Pj4+Pj4+ DQo+Pj4+Pj4+IEhpIFRvbWFzeiwNCj4+Pj4+Pj4NCj4+Pj4+Pj4gT24gMTIvMTMvMTggMjowMiBB TSwgVG9tYXN6IEZpZ2Egd3JvdGU6DQo+Pj4+Pj4+PiBPbiBUaHUsIERlYyA2LCAyMDE4IGF0IDE6 MTIgQU0gSGVsZW4gS29pa2UgPGhlbGVuLmtvaWtlQGNvbGxhYm9yYS5jb20+IHdyb3RlOg0KPj4+ Pj4+Pj4+DQo+Pj4+Pj4+Pj4gSGkgVmlsbGUNCj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+IE9uIDExLzI3 LzE4IDExOjM0IEFNLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6DQo+Pj4+Pj4+Pj4+IE9uIEZyaSwg Tm92IDIzLCAyMDE4IGF0IDA3OjUzOjI2UE0gLTAyMDAsIEhlbGVuIEtvaWtlIHdyb3RlOg0KPj4+ Pj4+Pj4+Pj4gQWxsb3cgdXNlcnNwYWNlIHRvIGlkZW50aWZ5IGlmIHRoZSBkcml2ZXIgc3VwcG9y dHMgYXN5bmMgdXBkYXRlLg0KPj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+PiBBbmQgd2hhdCBleGFjdGx5 IGlzIGFuICJhc3luYyB1cGRhdGUiPw0KPj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4gSSBhZ3JlZSB3ZSBh cmUgbGFja2luZyBkb2NzIG9uIHRoaXMsIEknbGwgc2VuZCBpbiB0aGUgbmV4dCB2ZXJzaW9uIGFz DQo+Pj4+Pj4+Pj4gc29vbiBhcyB3ZSBhZ3JlZSBvbiBhIG5hbWUgKHBsZWFzZSBzZWUgYmVsb3cp Lg0KPj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4gRm9yIHJlZmVyZW5jZToNCj4+Pj4+Pj4+PiBodHRwczov L2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9kcmktZGV2ZWwvMjAxNy1BcHJpbC8xMzg1 ODYuaHRtbA0KPj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4+IEkga2VlcCBhc2tpbmcg cGVvcGxlIHRvIGNvbWUgdXAgd2l0aCB0aGUgYSBiZXR0ZXIgbmFtZSBmb3IgdGhpcywgYW5kIHRv DQo+Pj4+Pj4+Pj4+IGRvY3VtZW50IHdoYXQgaXQgYWN0dWFsbHkgbWVhbnMuIFJlY2VudGx5IEkn dmUgYmVlbiB0aGluayB3ZSBzaG91bGQNCj4+Pj4+Pj4+Pj4gbWF5YmUganVzdCBhZG9wdCB0aGUg dnVsa2FuIHRlcm1pbm9sb2d5IChpbW1lZGlhdGUvZmlmby9tYWlsYm94KSB0bw0KPj4+Pj4+Pj4+ PiBhdm9pZCBpbnRyb2R1Y2luZyB5ZXQgYW5vdGhlciBzZXQgb2YgbmFtZXMgZm9yIHRoZSBzYW1l IHRoaW5nLiBXZSdkDQo+Pj4+Pj4+Pj4+IHN0aWxsIHdhbnQgdG8gZG9jdW1lbnQgdGhpbmdzIHBy b3Blcmx5IHRob3VnaC4NCj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+IEFub3RoZXIgbmFtZSBpdCB3YXMg c3VnZ2VzdGVkIHdhcyAiYXRvbWljIGFtZW5kIiwgdGhpcyBmZWF0dXJlIGJhc2ljYWxseQ0KPj4+ Pj4+Pj4+IGFsbG93cyB1c2Vyc3BhY2UgdG8gY29tcGxlbWVudCBhbiB1cGRhdGUgcHJldmlvdXNs eSBzZW50IChpLmUuIGl0cyBpbg0KPj4+Pj4+Pj4+IHRoZSBxdWV1ZSBhbmQgd2Fzbid0IGNvbW1p dGVkIHlldCksIGl0IGFsbG93cyBhZGRpbmcgYSBwbGFuZSB1cGRhdGUgdG8NCj4+Pj4+Pj4+PiB0 aGUgbmV4dCBjb21taXQuIFNvIHdoYXQgZG8geW91IHRoaW5rIGluIHJlbmFtaW5nIGl0IHRvICJh dG9taWMgYW1lbmQiPw0KPj4+Pj4+Pj4NCj4+Pj4+Pj4+IE5vdGUgdGhhdCBpdCBkb2Vzbid0IHNl ZW0gdG8gYmUgd2hhdCB0aGUgY29kZSBjdXJyZW50bHkgaXMgZG9pbmcuIEZvcg0KPj4+Pj4+Pj4g ZXhhbXBsZSwgZm9yIGN1cnNvciB1cGRhdGVzLCBpdCBkb2Vzbid0IHNlZW0gdG8gYmUgd29ya2lu ZyBvbiB0aGUNCj4+Pj4+Pj4+IGN1cnJlbnRseSBwZW5kaW5nIGNvbW1pdCwgYnV0IGp1c3QgZGly ZWN0bHkgaXNzdWVzIGFuIGF0b21pYyBhc3luYw0KPj4+Pj4+Pj4gdXBkYXRlIGNhbGwgdG8gdGhl IHBsYW5lcy4gVGhlIGNvZGUgYWN0dWFsbHkgc2VlbXMgdG8gZmFsbCBiYWNrIHRvIGENCj4+Pj4+ Pj4+IG5vcm1hbCBzeW5jIGNvbW1pdCwgaWYgdGhlcmUgaXMgYW4gYWxyZWFkeSBwZW5kaW5nIGNv bW1pdCB0b3VjaGluZyB0aGUNCj4+Pj4+Pj4+IHNhbWUgcGxhbmUgb3IgaW5jbHVkaW5nIGEgbW9k ZXNldC4NCj4+Pj4+Pj4NCj4+Pj4+Pj4gSXQgc2hvdWxkIGZhaWwgYXMgZGlzY3Vzc2VkIGF0Og0K Pj4+Pj4+PiBodHRwczovL3BhdGNod29yay5mcmVlZGVza3RvcC5vcmcvcGF0Y2gvMjQzMDg4Lw0K Pj4+Pj4+Pg0KPj4+Pj4+PiBUaGVyZSB3YXMgdGhlIGZvbGxvd2luZyBjb2RlIGluc2lkZSB0aGUg ZHJtX2F0b21pY19oZWxwZXJfYXN5bmNfY2hlY2soKQ0KPj4+Pj4+PiBpbiB0aGUgcHJldmlvdXMg cGF0Y2ggd2hpY2ggd291bGQgZmFsbGJhY2sgdG8gYSBub3JtYWwgY29tbWl0IGlmIHRoZXJlDQo+ Pj4+Pj4+IGlzbid0IGFueSBwZW5kaW5nIGNvbW1pdCB0byBhbWVuZDoNCj4+Pj4+Pj4NCj4+Pj4+ Pj4gKyAgICAgICBpZiAoIW9sZF9wbGFuZV9zdGF0ZS0+Y29tbWl0KQ0KPj4+Pj4+PiArICAgICAg ICAgICAgICAgcmV0dXJuIC1FSU5WQUw7DQo+Pj4+Pj4+DQo+Pj4+Pj4+IEluIHRoZSB2MiBvZiB0 aGUgcGF0Y2ggaHR0cHM6Ly9wYXRjaHdvcmsuZnJlZWRlc2t0b3Aub3JnL3BhdGNoLzI2MzcxMi8N Cj4+Pj4+Pj4gdGhpcyBnb3QgcmVtb3ZlZCwgYnV0IHdoaWNoIG1lYW5zIHRoYXQgYXN5bmMgdXBk YXRlIHdpbGwgYmUgZW5hYmxlZA0KPj4+Pj4+PiBhbnl3YXkuIFNvIHRoZSBmb2xsb3dpbmcgY29k ZSBpcyB3cm9uZzoNCj4+Pj4+Pj4NCj4+Pj4+Pj4gLSAgICAgICBpZiAoc3RhdGUtPmxlZ2FjeV9j dXJzb3JfdXBkYXRlKQ0KPj4+Pj4+PiArICAgICAgIGlmIChzdGF0ZS0+YXN5bmNfdXBkYXRlIHx8 IHN0YXRlLT5sZWdhY3lfY3Vyc29yX3VwZGF0ZSkNCj4+Pj4+Pj4gICAgICAgICAgICAgICAgICBz dGF0ZS0+YXN5bmNfdXBkYXRlID0gIWRybV9hdG9taWNfaGVscGVyX2FzeW5jX2NoZWNrKGRldiwg c3RhdGUpOw0KPj4+Pj4+Pg0KPj4+Pj4+PiBEb2VzIGl0IG1ha2Ugc2Vuc2U/IElmIHllcyBJJ2xs IGZpeCB0aGlzIGluIHRoZSBuZXh0IHZlcnNpb24gb2YgdGhlDQo+Pj4+Pj4+IEF0b21pYyBJT0NU TCBwYXRjaCAoYW5kIGFsc28gdGhvc2UgdHdvIHBhdGNoZXMgc2hvdWxkIGJlIGluIHRoZSBzYW1l DQo+Pj4+Pj4+IHNlcmllcywgSSdsbCBzZW5kIHRoZW0gdG9nZXRoZXIgbmV4dCB0aW1lKS4NCj4+ Pj4+Pj4NCj4+Pj4+Pj4gVGhhbmtzIGZvciBwb2ludGluZyB0aGlzIG91dC4NCj4+Pj4+Pj4NCj4+ Pj4+Pj4gUGxlYXNlIGxldCBtZSBrbm93IGlmIHlvdSBzdGlsbCBkb24ndCBhZ3JlZSBvbiB0aGUg bmFtZSAiYXRvbWljIGFtZW5kIiwNCj4+Pj4+Pj4gb3IgaWYgSSBhbSBtaXNzaW5nIHNvbWV0aGlu Zy4NCj4+Pj4+Pg0KPj4+Pj4+IEknbGwgZGVmZXIgaXQgdG8gdGhlIERSTSBtYWludGFpbmVycy4g RnJvbSBDaHJvbWUgT1MgcGVyc3BlY3RpdmUsIHdlDQo+Pj4+Pj4gbmVlZCBhIHdheSB0byBjb21t aXQgdGhlIGN1cnNvciBwbGFuZSBhc3luY2hyb25vdXNseSBmcm9tIG90aGVyDQo+Pj4+Pj4gY29t bWl0cyBhbnkgdGltZSB0aGUgY3Vyc29yIGNoYW5nZXMgaXRzIHBvc2l0aW9uIG9yIGZyYW1lYnVm ZmVyLiBBcw0KPj4+Pj4+IGxvbmcgYXMgdGhlIG5ldyBBUEkgYWxsb3dzIHRoYXQgYW5kIHRoZSBt YWludGFpbmVycyBhcmUgZmluZSB3aXRoIGl0LA0KPj4+Pj4+IEkgdGhpbmsgSSBzaG91bGQgYmUg b2theSB3aXRoIGl0IHRvby4NCj4+Pj4+DQo+Pj4+PiBJZiB0aGlzIGlzIGp1c3QgYWJvdXQgdGhl IGN1cnNvciwgd2h5IGlzIHRoZSBjdXJyZW50IGxlZ2FjeSBjdXJzb3INCj4+Pj4+IGlvY3RsIG5v dCBnb29kIGVub3VnaD8gSXQncyAyIGlvY3RscyBpbnN0ZWFkIG9mIG9uZSwgYnV0IEknbSBub3Qg c3VyZQ0KPj4+Pj4gaWYgd2Ugd2FudCB0byBzdXBwb3J0IGhhdmluZyBhIG5vcm1hbCBhdG9taWMg Y29tbWl0IGFuZCBhIGN1cnNvcg0KPj4+Pj4gdXBkYXRlIGluIHRoZSBzYW1lIGF0b21pYyBpb2N0 bCwgY29taW5nIHVwIHdpdGggcmVhc29uYWJsZSBzZW1hbnRpY3MNCj4+Pj4+IGZvciB0aGF0IHdp bGwgYmUgY29tcGxpY2F0ZWQuDQo+Pj4+Pg0KPj4+Pj4gUG9pbnRlciB0byBjb2RlIHRoYXQgdXNl cyB0aGlzIHdvdWxkIGJlIGJldHRlciBvZmMuDQo+Pj4+DQo+Pj4+IEkgaGF2ZW4ndCBmb2xsb3dl ZCB0aGlzIHRocmVhZCB0b28gY2xvc2VseSwgYnV0IHdlIGVuZGVkIHVwIG5lZWRpbmcgdG8NCj4+ Pj4gYWRkIGEgZmFzdCBwYXRjaCBmb3IgY3Vyc29yIHVwZGF0ZXMgdG8gYW1kZ3B1J3MgYXRvbWlj IHN1cHBvcnQgdG8NCj4+Pj4gYXZvaWQgc3R1dHRlcmluZyBpc3N1ZXMuICBPdGhlciBkcml2ZXJz IG1heSBlbmQgdXAgYmVpbmcgYWZmZWN0ZWQgYnkNCj4+Pj4gdGhpcyBhcyB3ZWxsLiAgU2VlOg0K Pj4+PiBodHRwczovL2J1Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDYxNzUN Cj4+Pj4gVW5mb3J0dW5hdGVseSwgdGhlIGZhc3QgcGF0aCByZXF1aXJlcyBzb21lIGhhY2tzIHRv IGhhbmRsZSB0aGUgcmVmDQo+Pj4+IGNvdW50aW5nIHByb3Blcmx5IG9uIGN1cnNvciBmYnM6DQo+ Pj4+IGh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9wYXRjaC8yNjYxMzgvDQo+Pj4+ IGh0dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9wYXRjaC8yNjgyOTgvDQo+Pj4+IEl0 IGxvb2tzIGxpa2UgZ2FtbWEgbWF5IG5lZWQgc2ltaWxhciB0cmVhdG1lbnQ6DQo+Pj4+IGh0dHBz Oi8vYnVncy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODkxNw0KPj4+DQo+Pj4g Q2FuIHdlIGdldCB0aGVzZSBwYXRjaGVzIGNjJ2VkIHRvIGRyaS1kZXZlbCBzbyB0aGF0IHRoZXJl J3Mgc29tZQ0KPj4+IGNvbW1vbiBzb2x1dGlvbj8gRXZlcnlvbmUgaGFja2luZyBsZWdhY3lfY3Vy c29yX3VwZGF0ZSBoYWNrcyBvbiB0aGVpcg0KPj4+IG93biBkb2Vzbid0IHJlYWxseSB3b3JrIHdl bGwuIE9yIHdvdWxkIGF0IGxlYXN0IGdpdmUgc29tZSB2aXNpYmlsaXR5DQo+Pj4gaW50byB3aGF0 J3MgYWxsIGdvaW5nIG9uLg0KPj4NCj4+IEFncmVlZC4NCj4gDQo+IEJpdCBtb3JlIGRldGFpbDog VGhlIGxlZ2FjeV9jdXJzb3JfdXBkYXRlIGhhY2tzIGFsbCBvdmVyIGlzIHByb2JhYmx5DQo+IHRo ZSB3b3JzdCBwYXJ0IG9mIGF0b21pYywgYW5kIGV2ZXJ5b25lIHNlZW1zIHVuaGFwcHkgd2l0aCBp dC4gRXhjZXB0DQo+IGFsbCBlZmZvcnRzIHRvIGFkZHJlc3MgaXQgZmFsbCBzaG9ydCBieSBhIGxv dC4gSSB0aGluayBHdXN0YXZvIGZyb20NCj4gQ29sbGFib3JhIG9uY2UgaGFkIGEgcGF0Y2ggc2Vy aWVzLCBidXQgaXQgb25seSBldmVyIGdvdCBtZXJnZWQNCj4gcGFydGlhbGx5LCBhbmQgbm93IHdl J3JlIGJhY2sgd2l0aCBhIHNsaWdodGx5IGRpZmZlcmVudCBwaWNrIG9mIGNvbG9yDQo+IGl0IHNl ZW1zLiBIZW5jZSB3aHkgSSdtIHNvbWV3aGF0IGdydW1weSBvbiB0aGlzIGhlcmUuDQoNCkkgd2Fz IHBsYW5uaW5nIG9uIHN1Ym1pdHRpbmcgYSBwYXRjaCB0aGF0IGFkZGVkIHRoZSBvbGQtPmZiID09 IG5ldy0+ZmIgDQpjaGVjayBmb3IgdGhlIGFzeW5jIGNoZWNrIGluIGRybSBoZWxwZXJzIGJ1dCBo YXZlbid0IGdvdHRlbiBhcm91bmQgdG8gaXQgDQp5ZXQuIEFzeW5jIHVwZGF0ZSBiZWhhdmlvciBh bHdheXMgcHJlcGFyZXMgdGhlIG5ldyBwbGFuZSBmYiBhbmQgY2xlYW5zIA0KdXAgdGhlIG5ldyBw bGFuZSBmYiwgc28geW91IGVuZCB1cCB3aXRoIGEgc2VxdWVuY2UgbGlrZSB0aGUgZm9sbG93aW5n Og0KDQotIEZhc3QgdXBkYXRlLCBmYjEgcHJlcGFyZSwgZmIxIGNsZWFudXANCi0gRmFzdCB1cGRh dGUsIGZiMiBwcmVwYXJlLCBmYjIgY2xlYW51cA0KLSBTbG93IHVwZGF0ZSwgZmIxIHByZXBhcmUs IGZiMiBjbGVhbnVwDQotIEZhc3QgdXBkYXRlLCBmYjIgY2xlYW51cCAtPiBkb3VibGUgY2xlYW51 cCwgcG90ZW50aWFsIHVzZSBhZnRlciBmcmVlDQoNClRoZSBvbmx5IGRyaXZlciB0aGF0IHN0aWxs IGV4cGVjdHMgdG8gYmUgZG9pbmcgZmIgY2hhbmdlcyBpbiB0aGVpciBmYXN0IA0KcGF0aCBpcyB2 YzQgZnJvbSB3aGF0IEkgY2FuIHRlbGwsIGJ1dCB0aGV5J2QgbGlrZWx5IHJ1biBpbnRvIGFuIGlz c3VlIA0Kd2l0aCBpbnRlcmxlYXZpbmcgZmJzIGFzIHdlbGwuDQoNClRoZSBmYXN0IHBhdGggb24g aTkxNSBza2lwcyB0aGUgYXN5bmMgaGVscGVycyBhbmQgaW1wbGVtZW50cyB0aGlzIGEgbG90IA0K YmV0dGVyIChldmVuIHRob3VnaCBpdCBlbmRzIHVwIGdyYWJiaW5nIHRoZSBzdHJ1Y3QgbXV0ZXgg bG9jaykgc2luY2UgaXQgDQphbHdheXMgY2FsbHMgY2xlYW51cCBvbiB0aGUgb2xkIHBsYW5lIHN0 YXRlIGxpa2UgdGhlIHNsb3cgcGF0aCBkb2VzLiBJdCANCmFsc28gc3dhcHMgdGhlIG9sZCBwbGFu ZSBzdGF0ZSB3aXRoIHRoZSBuZXcgb25lLg0KDQpCdXQgc2luY2UgYXN5bmNfdXBkYXRlIGlzIGlu IHBsYWNlIGl0IGNhbid0IGRvIHRoYXQgKHRoZSBvbGQgcGxhbmUgc3RhdGUgDQppcyB0aGUgZXhp c3RpbmcgcGxhbmUgc3RhdGUpLiBUaGVyZSdzIG5vdCBhIHJlYWxseSBnb29kIHdheSBvZiBlbXVs YXRpbmcgDQppOTE1IGhlcmUgd2l0aG91dCBjaGFuZ2luZyB0aGUgd2hvbGUgY29uY2VwdCBvZiBh c3luYyB1cGRhdGUuDQoNCj4gDQo+Pj4gTm90IHN1cmUgYWJvdXQgdGhlIGdhbW1hIHRoaW5nIHNp bmNlIHdlIGhhZCBvcHBvc2l0ZSBidWdzIG9uIGk5MTUNCj4+PiBhYm91dCBnYW1tYSBub3QgYmVp bmcgdnN5bmNlZCBhbmQgdGVhcmluZyB0ZXJyaWJseS4gQ3Vyc29yIGlzIHNwZWNpYWwNCj4+PiBz aW5jZSBpdCB0ZW5kcyB0byBiZSB0b28gc21hbGwgdG8gbm90aWNlIHRlYXJpbmcuDQo+Pg0KPj4g T3VyIGN1cnNvciBodyAoYW5kIHBvc3NpYmx5IGdhbW1hIGFzIHdlbGwgTmljaG9sYXM/ICBIYXJy eT8pIGlzIGRvdWJsZQ0KPj4gYnVmZmVyZWQsIHNvIHdlIGNhbiB1cGRhdGUgaXQgYW55IHRpbWUg Zm9yIHRoZSBtb3N0IHBhcnQgYW5kIHRoZQ0KPj4gY2hhbmdlcyB3b24ndCB0YWtlIGFmZmVjdCB1 bnRpbCB0aGUgbmV4dCB2dXBkYXRlIHBlcmlvZC4NCg0KSSBoYXZlbid0IHJlYWxseSBpbnZlc3Rp Z2F0ZWQgdG9vIG11Y2ggaW50byB0aGUgZ2FtbWEgc3R1dHRlcmluZyBpc3N1ZSwgDQpidXQgSSB0 aGluayBpdCdzIHNpbWlsYXIgdG8gdGhlIGN1cnNvciB1cGRhdGUgLSBhIGhpZ2ggdm9sdW1lIG9m IGF0b21pYyANCnVwZGF0ZXMgdGhhdCBlbmRzIHVwIHNraXBwaW5nIG92ZXIgYSB2Ymxhbmsgb3Ig dHdvLg0KDQo+IA0KPiBIbSwgSSBndWVzcyB3ZSBjb3VsZCBtYWtlIHRoZSBnYW1tYSB1cGRhdGUg b3B0aW9uYWxseSBhc3luYywgYW5kIGxldA0KPiBkcml2ZXJzIGRlYWwuIFRoZSBpc3N1ZSBpcyB0 aGF0IHRoZSBjdXJyZW50IGFzeW5jIGhlbHBlciBzdHVmZiB3b24ndA0KPiBjb3BlIHdpdGggZ2Ft bWEgdXBkYXRlcyAoaXQncyBhaW1lZCBhdCBwbGFuZSB1cGRhdGVzIG9ubHksIG5vdCBhdCBjcnRj DQo+IHByb3BlcnR5IHVwZGF0ZXMpLiBPciB3ZSBnZXQgdXNlcnNwYWNlIHRvIGRvIHByb3BlciBh dG9taWMgdXBkYXRlcy4gT3INCj4gd2UgZG8gc29tZSBmYWtpbmcgaW4gdGhlIGtlcm5lbCwgZS5n LiB3YWl0aW5nIHdpdGggdGhlIGdhbW1hIHVwZGF0ZQ0KPiB1bnRpbCB0aGUgbmV4dCBhdG9taWMg dXBkYXRlIGhhcHBlbnMuIEJ1dCB0aGF0IGtpbmRhIGJyZWFrcw0KPiAtPmF0b21pY19jaGVjay4N Cj4gLURhbmllbA0KDQpUaGUgaW4tcGxhY2UgdXBkYXRlIG1ldGhvZCBjYW4gd29yayBmb3IgdXMg Zm9yIGdhbW1hIHVwZGF0ZXMgSSBiZWxpZXZlLCANCmJ1dCB0aGVyZSdzIGxpa2VseSBhIGxvdCBt b3JlIGRyaXZlcnMgd291bGQgaGF2ZSB0byBiZSBjYXJlZnVsIGFib3V0IA0Kd2l0aCBpbi1wbGFj ZSB1cGRhdGVzIG9uIHRoZSBDUlRDIHN0YXRlLg0KDQpBIGZ1bGwgc3RhdGUgc3dhcCBvbiB0aGUg b2JqZWN0IGl0c2VsZiB3b3VsZCBwcm9iYWJseSBiZSBiZXN0IGZvciANCnRhY2tsaW5nIGl0IHRo aXMgd2F5LiBJdCdzIHdoYXQgSSdkIGxpa2UgdG8gaGFwcGVuIGZvciB0aGUgZXhpc3RpbmcgDQpw bGFuZSBBUEkgYXQgbGVhc3QgKGFuZCB3aGljaCBJIHRoaW5rIGlzIGZpbmUgc2luY2UgdGhlIHBs YW5lIGlzIGxvY2tlZCANCmFueXdheSkuDQoNCk5pY2hvbGFzIEthemxhdXNrYXMNCg0KPiANCj4+ DQo+PiBBbGV4DQo+Pg0KPj4+DQo+Pj4gVGhhbmtzLCBEYW5pZWwNCj4+Pg0KPj4+PiBBbGV4DQo+ Pj4+DQo+Pj4+DQo+Pj4+PiAtRGFuaWVsDQo+Pj4+Pg0KPj4+Pj4+IEJlc3QgcmVnYXJkcywNCj4+ Pj4+PiBUb21hc3oNCj4+Pj4+Pg0KPj4+Pj4+Pg0KPj4+Pj4+PiBIZWxlbg0KPj4+Pj4+Pg0KPj4+ Pj4+Pj4NCj4+Pj4+Pj4+IEJlc3QgcmVnYXJkcywNCj4+Pj4+Pj4+IFRvbWFzeg0KPj4+Pj4+Pj4N Cj4+Pj4+Pj4+PiBPciBkbyB5b3Ugc3VnZ2VzdCBhbm90aGVyIG5hbWU/IEkgYW0gbm90IGZhbWls aWFyIHdpdGggdnVsa2FuIHRlcm1pbm9sb2d5Lg0KPj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4NCj4+Pj4+ Pj4+PiBUaGFua3MNCj4+Pj4+Pj4+PiBIZWxlbg0KPj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4+DQo+Pj4+ Pj4+Pj4+Pg0KPj4+Pj4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogRW5yaWMgQmFsbGV0Ym8gaSBTZXJy YSA8ZW5yaWMuYmFsbGV0Ym9AY29sbGFib3JhLmNvbT4NCj4+Pj4+Pj4+Pj4+IFtwcmVwYXJlZCBm b3IgdXBzdHJlYW1dDQo+Pj4+Pj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBIZWxlbiBLb2lrZSA8aGVs ZW4ua29pa2VAY29sbGFib3JhLmNvbT4NCj4+Pj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4+PiAtLS0NCj4+ Pj4+Pj4+Pj4+IEhpLA0KPj4+Pj4+Pj4+Pj4NCj4+Pj4+Pj4+Pj4+IFRoaXMgcGF0Y2ggaW50cm9k dWNlcyB0aGUgQVNZTkNfVVBEQVRFIGNhcCwgd2hpY2ggb3JpZ2luYXRlZCBmcm9tIHRoZQ0KPj4+ Pj4+Pj4+Pj4gZGlzY3Vzc2lvbiByZWdhcmRpbmcgRFJNX01PREVfQVRPTUlDX0FNRU5EIG9uIFsx XSwgdG8gYWxsb3cgdXNlciB0bw0KPj4+Pj4+Pj4+Pj4gZmlndXJlIHRoYXQgYXN5bmNfdXBkYXRl IGV4aXN0cy4NCj4+Pj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4+PiBUaGlzIHdhcyB0ZXN0ZWQgdXNpbmcg YSBzbWFsbCBwcm9ncmFtIHRoYXQgZXhlcmNpc2VzIHRoZSB1QVBJIGZvciBlYXN5DQo+Pj4+Pj4+ Pj4+PiBzYW5pdHkgdGVzdGluZy4gVGhlIHByb2dyYW0gd2FzIGNyZWF0ZWQgYnkgQWxleGFuZHJv cyBhbmQgbW9kaWZpZWQgYnkNCj4+Pj4+Pj4+Pj4+IEVucmljIHRvIHRlc3QgdGhlIGNhcGFiaWxp dHkgZmxhZyBbMl0uDQo+Pj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+Pj4gVGhlIHRlc3Qgd29ya2VkIG9u IGEgcm9ja2NoaXAgRmljdXMgdjEuMSBib2FyZCBvbiB0b3Agb2YgbWFpbmxpbmUgcGx1cw0KPj4+ Pj4+Pj4+Pj4gdGhlIHBhdGNoIHRvIHVwZGF0ZSBjdXJzb3JzIGFzeW5jaHJvbm91c2x5IHRocm91 Z2ggYXRvbWljIHBsdXMgdGhlIHBhdGNoDQo+Pj4+Pj4+Pj4+PiB0aGF0IGludHJvZHVjZXMgdGhl IEFUT01JQ19BTUVORCBmbGFnIGZvciB0aGUgZHJtL3JvY2tjaGlwIGRyaXZlci4NCj4+Pj4+Pj4+ Pj4+DQo+Pj4+Pj4+Pj4+PiBUbyB0ZXN0LCBqdXN0IGJ1aWxkIHRoZSBwcm9ncmFtIGFuZCB1c2Ug dGhlIC0tYXRvbWljIGZsYWcgdG8gdXNlIHRoZSBjdXJzb3INCj4+Pj4+Pj4+Pj4+IHBsYW5lIHdp dGggdGhlIEFUT01JQ19BTUVORCBmbGFnLiBFLmcuDQo+Pj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+Pj4g ICAgZHJtX2N1cnNvciAtLWF0b21pYw0KPj4+Pj4+Pj4+Pj4NCj4+Pj4+Pj4+Pj4+IFsxXSBodHRw czovL3BhdGNod29yay5mcmVlZGVza3RvcC5vcmcvcGF0Y2gvMjQzMDg4Lw0KPj4+Pj4+Pj4+Pj4g WzJdIGh0dHBzOi8vZ2l0bGFiLmNvbGxhYm9yYS5jb20vZWJhbGxldGJvL2RybS1jdXJzb3IvY29t bWl0cy9hc3luYy1jYXBhYmlsaXR5DQo+Pj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+Pj4gVGhhbmtzDQo+ Pj4+Pj4+Pj4+PiBIZWxlbg0KPj4+Pj4+Pj4+Pj4NCj4+Pj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4+PiAg IGRyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYyB8IDExICsrKysrKysrKysrDQo+Pj4+Pj4+Pj4+ PiAgIGluY2x1ZGUvdWFwaS9kcm0vZHJtLmggICAgICB8ICAxICsNCj4+Pj4+Pj4+Pj4+ICAgMiBm aWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspDQo+Pj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+Pj4g ZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYyBiL2RyaXZlcnMvZ3B1L2Ry bS9kcm1faW9jdGwuYw0KPj4+Pj4+Pj4+Pj4gaW5kZXggOTRiZDg3MmQ1NmM0Li40YTdlMGY4NzQx NzEgMTAwNjQ0DQo+Pj4+Pj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3RsLmMN Cj4+Pj4+Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYw0KPj4+Pj4+Pj4+ Pj4gQEAgLTMxLDYgKzMxLDcgQEANCj4+Pj4+Pj4+Pj4+ICAgI2luY2x1ZGUgPGRybS9kcm1faW9j dGwuaD4NCj4+Pj4+Pj4+Pj4+ICAgI2luY2x1ZGUgPGRybS9kcm1QLmg+DQo+Pj4+Pj4+Pj4+PiAg ICNpbmNsdWRlIDxkcm0vZHJtX2F1dGguaD4NCj4+Pj4+Pj4+Pj4+ICsjaW5jbHVkZSA8ZHJtL2Ry bV9tb2Rlc2V0X2hlbHBlcl92dGFibGVzLmg+DQo+Pj4+Pj4+Pj4+PiAgICNpbmNsdWRlICJkcm1f bGVnYWN5LmgiDQo+Pj4+Pj4+Pj4+PiAgICNpbmNsdWRlICJkcm1faW50ZXJuYWwuaCINCj4+Pj4+ Pj4+Pj4+ICAgI2luY2x1ZGUgImRybV9jcnRjX2ludGVybmFsLmgiDQo+Pj4+Pj4+Pj4+PiBAQCAt MjI5LDYgKzIzMCw3IEBAIHN0YXRpYyBpbnQgZHJtX2dldGNhcChzdHJ1Y3QgZHJtX2RldmljZSAq ZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfDQo+Pj4+Pj4+Pj4+PiAgIHsN Cj4+Pj4+Pj4+Pj4+ICAgICAgIHN0cnVjdCBkcm1fZ2V0X2NhcCAqcmVxID0gZGF0YTsNCj4+Pj4+ Pj4+Pj4+ICAgICAgIHN0cnVjdCBkcm1fY3J0YyAqY3J0YzsNCj4+Pj4+Pj4+Pj4+ICsgICAgc3Ry dWN0IGRybV9wbGFuZSAqcGxhbmU7DQo+Pj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+Pj4gICAgICAgcmVx LT52YWx1ZSA9IDA7DQo+Pj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+Pj4gQEAgLTI5Miw2ICsyOTQsMTUg QEAgc3RhdGljIGludCBkcm1fZ2V0Y2FwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQgKmRh dGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV8NCj4+Pj4+Pj4+Pj4+ICAgICAgIGNhc2UgRFJNX0NB UF9DUlRDX0lOX1ZCTEFOS19FVkVOVDoNCj4+Pj4+Pj4+Pj4+ICAgICAgICAgICAgICAgcmVxLT52 YWx1ZSA9IDE7DQo+Pj4+Pj4+Pj4+PiAgICAgICAgICAgICAgIGJyZWFrOw0KPj4+Pj4+Pj4+Pj4g KyAgICBjYXNlIERSTV9DQVBfQVNZTkNfVVBEQVRFOg0KPj4+Pj4+Pj4+Pj4gKyAgICAgICAgICAg IHJlcS0+dmFsdWUgPSAxOw0KPj4+Pj4+Pj4+Pj4gKyAgICAgICAgICAgIGxpc3RfZm9yX2VhY2hf ZW50cnkocGxhbmUsICZkZXYtPm1vZGVfY29uZmlnLnBsYW5lX2xpc3QsIGhlYWQpIHsNCj4+Pj4+ Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgIGlmICghcGxhbmUtPmhlbHBlcl9wcml2YXRlLT5h dG9taWNfYXN5bmNfdXBkYXRlKSB7DQo+Pj4+Pj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJlcS0+dmFsdWUgPSAwOw0KPj4+Pj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICBicmVhazsNCj4+Pj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgIH0NCj4+Pj4+ Pj4+Pj4+ICsgICAgICAgICAgICB9DQo+Pj4+Pj4+Pj4+PiArICAgICAgICAgICAgYnJlYWs7DQo+ Pj4+Pj4+Pj4+PiAgICAgICBkZWZhdWx0Og0KPj4+Pj4+Pj4+Pj4gICAgICAgICAgICAgICByZXR1 cm4gLUVJTlZBTDsNCj4+Pj4+Pj4+Pj4+ICAgICAgIH0NCj4+Pj4+Pj4+Pj4+IGRpZmYgLS1naXQg YS9pbmNsdWRlL3VhcGkvZHJtL2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS9kcm0uaA0KPj4+Pj4+ Pj4+Pj4gaW5kZXggMzAwZjMzNjYzM2YyLi5mZjAxNTQwY2JiMWQgMTAwNjQ0DQo+Pj4+Pj4+Pj4+ PiAtLS0gYS9pbmNsdWRlL3VhcGkvZHJtL2RybS5oDQo+Pj4+Pj4+Pj4+PiArKysgYi9pbmNsdWRl L3VhcGkvZHJtL2RybS5oDQo+Pj4+Pj4+Pj4+PiBAQCAtNjQ5LDYgKzY0OSw3IEBAIHN0cnVjdCBk cm1fZ2VtX29wZW4gew0KPj4+Pj4+Pj4+Pj4gICAjZGVmaW5lIERSTV9DQVBfUEFHRV9GTElQX1RB UkdFVCAgICAweDExDQo+Pj4+Pj4+Pj4+PiAgICNkZWZpbmUgRFJNX0NBUF9DUlRDX0lOX1ZCTEFO S19FVkVOVCAgICAgICAgMHgxMg0KPj4+Pj4+Pj4+Pj4gICAjZGVmaW5lIERSTV9DQVBfU1lOQ09C SiAgICAgICAgICAgICAweDEzDQo+Pj4+Pj4+Pj4+PiArI2RlZmluZSBEUk1fQ0FQX0FTWU5DX1VQ REFURSAgICAgICAgICAgICAgICAweDE0DQo+Pj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+Pj4gICAvKiog RFJNX0lPQ1RMX0dFVF9DQVAgaW9jdGwgYXJndW1lbnQgdHlwZSAqLw0KPj4+Pj4+Pj4+Pj4gICBz dHJ1Y3QgZHJtX2dldF9jYXAgew0KPj4+Pj4+Pj4+Pj4gLS0NCj4+Pj4+Pj4+Pj4+IDIuMTkuMQ0K Pj4+Pj4+Pj4+Pj4NCj4+Pj4+Pj4+Pj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fDQo+Pj4+Pj4+Pj4+PiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0DQo+Pj4+ Pj4+Pj4+PiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnDQo+Pj4+Pj4+Pj4+PiBodHRw czovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA0KPj4+ Pj4+Pj4+Pg0KPj4+Pj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fDQo+Pj4+Pj4gZHJpLWRldmVsIG1haWxpbmcgbGlzdA0KPj4+Pj4+IGRyaS1kZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmcNCj4+Pj4+PiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9y Zy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA0KPj4+Pj4NCj4+Pj4+DQo+Pj4+Pg0KPj4+Pj4g LS0NCj4+Pj4+IERhbmllbCBWZXR0ZXINCj4+Pj4+IFNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBD b3Jwb3JhdGlvbg0KPj4+Pj4gKzQxICgwKSA3OSAzNjUgNTcgNDggLSBodHRwOi8vYmxvZy5mZnds bC5jaA0KPj4+Pj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X18NCj4+Pj4+IGRyaS1kZXZlbCBtYWlsaW5nIGxpc3QNCj4+Pj4+IGRyaS1kZXZlbEBsaXN0cy5m cmVlZGVza3RvcC5vcmcNCj4+Pj4+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vZHJpLWRldmVsDQo+Pj4NCj4+Pg0KPj4+DQo+Pj4gLS0NCj4+PiBEYW5pZWwg VmV0dGVyDQo+Pj4gU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uDQo+Pj4gKzQx ICgwKSA3OSAzNjUgNTcgNDggLSBodHRwOi8vYmxvZy5mZndsbC5jaA0KPj4+DQo+Pj4gT24gVGh1 LCBEZWMgMjAsIDIwMTggYXQgNTo0MCBQTSBBbGV4IERldWNoZXIgPGFsZXhkZXVjaGVyQGdtYWls LmNvbT4gd3JvdGU6DQo+Pj4+DQo+Pj4+ICsgTmljaG9sYXMNCj4+Pj4NCj4+Pj4gT24gVGh1LCBE ZWMgMjAsIDIwMTggYXQgNTo0NyBBTSBEYW5pZWwgVmV0dGVyIDxkYW5pZWxAZmZ3bGwuY2g+IHdy b3RlOg0KPj4+Pj4NCj4+Pj4+IE9uIFRodSwgRGVjIDIwLCAyMDE4IGF0IDEwOjA3IEFNIFRvbWFz eiBGaWdhIDx0ZmlnYUBjaHJvbWl1bS5vcmc+IHdyb3RlOg0KPj4+Pj4+DQo+Pj4+Pj4gSGkgSGVs ZW4sDQo+Pj4+Pj4NCj4+Pj4+PiBPbiBGcmksIERlYyAxNCwgMjAxOCBhdCAxMDozNSBBTSBIZWxl biBLb2lrZSA8aGVsZW4ua29pa2VAY29sbGFib3JhLmNvbT4gd3JvdGU6DQo+Pj4+Pj4+DQo+Pj4+ Pj4+IEhpIFRvbWFzeiwNCj4+Pj4+Pj4NCj4+Pj4+Pj4gT24gMTIvMTMvMTggMjowMiBBTSwgVG9t YXN6IEZpZ2Egd3JvdGU6DQo+Pj4+Pj4+PiBPbiBUaHUsIERlYyA2LCAyMDE4IGF0IDE6MTIgQU0g SGVsZW4gS29pa2UgPGhlbGVuLmtvaWtlQGNvbGxhYm9yYS5jb20+IHdyb3RlOg0KPj4+Pj4+Pj4+ DQo+Pj4+Pj4+Pj4gSGkgVmlsbGUNCj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+IE9uIDExLzI3LzE4IDEx OjM0IEFNLCBWaWxsZSBTeXJqw6Rsw6Qgd3JvdGU6DQo+Pj4+Pj4+Pj4+IE9uIEZyaSwgTm92IDIz LCAyMDE4IGF0IDA3OjUzOjI2UE0gLTAyMDAsIEhlbGVuIEtvaWtlIHdyb3RlOg0KPj4+Pj4+Pj4+ Pj4gQWxsb3cgdXNlcnNwYWNlIHRvIGlkZW50aWZ5IGlmIHRoZSBkcml2ZXIgc3VwcG9ydHMgYXN5 bmMgdXBkYXRlLg0KPj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+PiBBbmQgd2hhdCBleGFjdGx5IGlzIGFu ICJhc3luYyB1cGRhdGUiPw0KPj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4gSSBhZ3JlZSB3ZSBhcmUgbGFj a2luZyBkb2NzIG9uIHRoaXMsIEknbGwgc2VuZCBpbiB0aGUgbmV4dCB2ZXJzaW9uIGFzDQo+Pj4+ Pj4+Pj4gc29vbiBhcyB3ZSBhZ3JlZSBvbiBhIG5hbWUgKHBsZWFzZSBzZWUgYmVsb3cpLg0KPj4+ Pj4+Pj4+DQo+Pj4+Pj4+Pj4gRm9yIHJlZmVyZW5jZToNCj4+Pj4+Pj4+PiBodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9hcmNoaXZlcy9kcmktZGV2ZWwvMjAxNy1BcHJpbC8xMzg1ODYuaHRt bA0KPj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4+IEkga2VlcCBhc2tpbmcgcGVvcGxl IHRvIGNvbWUgdXAgd2l0aCB0aGUgYSBiZXR0ZXIgbmFtZSBmb3IgdGhpcywgYW5kIHRvDQo+Pj4+ Pj4+Pj4+IGRvY3VtZW50IHdoYXQgaXQgYWN0dWFsbHkgbWVhbnMuIFJlY2VudGx5IEkndmUgYmVl biB0aGluayB3ZSBzaG91bGQNCj4+Pj4+Pj4+Pj4gbWF5YmUganVzdCBhZG9wdCB0aGUgdnVsa2Fu IHRlcm1pbm9sb2d5IChpbW1lZGlhdGUvZmlmby9tYWlsYm94KSB0bw0KPj4+Pj4+Pj4+PiBhdm9p ZCBpbnRyb2R1Y2luZyB5ZXQgYW5vdGhlciBzZXQgb2YgbmFtZXMgZm9yIHRoZSBzYW1lIHRoaW5n LiBXZSdkDQo+Pj4+Pj4+Pj4+IHN0aWxsIHdhbnQgdG8gZG9jdW1lbnQgdGhpbmdzIHByb3Blcmx5 IHRob3VnaC4NCj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+IEFub3RoZXIgbmFtZSBpdCB3YXMgc3VnZ2Vz dGVkIHdhcyAiYXRvbWljIGFtZW5kIiwgdGhpcyBmZWF0dXJlIGJhc2ljYWxseQ0KPj4+Pj4+Pj4+ IGFsbG93cyB1c2Vyc3BhY2UgdG8gY29tcGxlbWVudCBhbiB1cGRhdGUgcHJldmlvdXNseSBzZW50 IChpLmUuIGl0cyBpbg0KPj4+Pj4+Pj4+IHRoZSBxdWV1ZSBhbmQgd2Fzbid0IGNvbW1pdGVkIHll dCksIGl0IGFsbG93cyBhZGRpbmcgYSBwbGFuZSB1cGRhdGUgdG8NCj4+Pj4+Pj4+PiB0aGUgbmV4 dCBjb21taXQuIFNvIHdoYXQgZG8geW91IHRoaW5rIGluIHJlbmFtaW5nIGl0IHRvICJhdG9taWMg YW1lbmQiPw0KPj4+Pj4+Pj4NCj4+Pj4+Pj4+IE5vdGUgdGhhdCBpdCBkb2Vzbid0IHNlZW0gdG8g YmUgd2hhdCB0aGUgY29kZSBjdXJyZW50bHkgaXMgZG9pbmcuIEZvcg0KPj4+Pj4+Pj4gZXhhbXBs ZSwgZm9yIGN1cnNvciB1cGRhdGVzLCBpdCBkb2Vzbid0IHNlZW0gdG8gYmUgd29ya2luZyBvbiB0 aGUNCj4+Pj4+Pj4+IGN1cnJlbnRseSBwZW5kaW5nIGNvbW1pdCwgYnV0IGp1c3QgZGlyZWN0bHkg aXNzdWVzIGFuIGF0b21pYyBhc3luYw0KPj4+Pj4+Pj4gdXBkYXRlIGNhbGwgdG8gdGhlIHBsYW5l cy4gVGhlIGNvZGUgYWN0dWFsbHkgc2VlbXMgdG8gZmFsbCBiYWNrIHRvIGENCj4+Pj4+Pj4+IG5v cm1hbCBzeW5jIGNvbW1pdCwgaWYgdGhlcmUgaXMgYW4gYWxyZWFkeSBwZW5kaW5nIGNvbW1pdCB0 b3VjaGluZyB0aGUNCj4+Pj4+Pj4+IHNhbWUgcGxhbmUgb3IgaW5jbHVkaW5nIGEgbW9kZXNldC4N Cj4+Pj4+Pj4NCj4+Pj4+Pj4gSXQgc2hvdWxkIGZhaWwgYXMgZGlzY3Vzc2VkIGF0Og0KPj4+Pj4+ PiBodHRwczovL3BhdGNod29yay5mcmVlZGVza3RvcC5vcmcvcGF0Y2gvMjQzMDg4Lw0KPj4+Pj4+ Pg0KPj4+Pj4+PiBUaGVyZSB3YXMgdGhlIGZvbGxvd2luZyBjb2RlIGluc2lkZSB0aGUgZHJtX2F0 b21pY19oZWxwZXJfYXN5bmNfY2hlY2soKQ0KPj4+Pj4+PiBpbiB0aGUgcHJldmlvdXMgcGF0Y2gg d2hpY2ggd291bGQgZmFsbGJhY2sgdG8gYSBub3JtYWwgY29tbWl0IGlmIHRoZXJlDQo+Pj4+Pj4+ IGlzbid0IGFueSBwZW5kaW5nIGNvbW1pdCB0byBhbWVuZDoNCj4+Pj4+Pj4NCj4+Pj4+Pj4gKyAg ICAgICBpZiAoIW9sZF9wbGFuZV9zdGF0ZS0+Y29tbWl0KQ0KPj4+Pj4+PiArICAgICAgICAgICAg ICAgcmV0dXJuIC1FSU5WQUw7DQo+Pj4+Pj4+DQo+Pj4+Pj4+IEluIHRoZSB2MiBvZiB0aGUgcGF0 Y2ggaHR0cHM6Ly9wYXRjaHdvcmsuZnJlZWRlc2t0b3Aub3JnL3BhdGNoLzI2MzcxMi8NCj4+Pj4+ Pj4gdGhpcyBnb3QgcmVtb3ZlZCwgYnV0IHdoaWNoIG1lYW5zIHRoYXQgYXN5bmMgdXBkYXRlIHdp bGwgYmUgZW5hYmxlZA0KPj4+Pj4+PiBhbnl3YXkuIFNvIHRoZSBmb2xsb3dpbmcgY29kZSBpcyB3 cm9uZzoNCj4+Pj4+Pj4NCj4+Pj4+Pj4gLSAgICAgICBpZiAoc3RhdGUtPmxlZ2FjeV9jdXJzb3Jf dXBkYXRlKQ0KPj4+Pj4+PiArICAgICAgIGlmIChzdGF0ZS0+YXN5bmNfdXBkYXRlIHx8IHN0YXRl LT5sZWdhY3lfY3Vyc29yX3VwZGF0ZSkNCj4+Pj4+Pj4gICAgICAgICAgICAgICAgICBzdGF0ZS0+ YXN5bmNfdXBkYXRlID0gIWRybV9hdG9taWNfaGVscGVyX2FzeW5jX2NoZWNrKGRldiwgc3RhdGUp Ow0KPj4+Pj4+Pg0KPj4+Pj4+PiBEb2VzIGl0IG1ha2Ugc2Vuc2U/IElmIHllcyBJJ2xsIGZpeCB0 aGlzIGluIHRoZSBuZXh0IHZlcnNpb24gb2YgdGhlDQo+Pj4+Pj4+IEF0b21pYyBJT0NUTCBwYXRj aCAoYW5kIGFsc28gdGhvc2UgdHdvIHBhdGNoZXMgc2hvdWxkIGJlIGluIHRoZSBzYW1lDQo+Pj4+ Pj4+IHNlcmllcywgSSdsbCBzZW5kIHRoZW0gdG9nZXRoZXIgbmV4dCB0aW1lKS4NCj4+Pj4+Pj4N Cj4+Pj4+Pj4gVGhhbmtzIGZvciBwb2ludGluZyB0aGlzIG91dC4NCj4+Pj4+Pj4NCj4+Pj4+Pj4g UGxlYXNlIGxldCBtZSBrbm93IGlmIHlvdSBzdGlsbCBkb24ndCBhZ3JlZSBvbiB0aGUgbmFtZSAi YXRvbWljIGFtZW5kIiwNCj4+Pj4+Pj4gb3IgaWYgSSBhbSBtaXNzaW5nIHNvbWV0aGluZy4NCj4+ Pj4+Pg0KPj4+Pj4+IEknbGwgZGVmZXIgaXQgdG8gdGhlIERSTSBtYWludGFpbmVycy4gRnJvbSBD aHJvbWUgT1MgcGVyc3BlY3RpdmUsIHdlDQo+Pj4+Pj4gbmVlZCBhIHdheSB0byBjb21taXQgdGhl IGN1cnNvciBwbGFuZSBhc3luY2hyb25vdXNseSBmcm9tIG90aGVyDQo+Pj4+Pj4gY29tbWl0cyBh bnkgdGltZSB0aGUgY3Vyc29yIGNoYW5nZXMgaXRzIHBvc2l0aW9uIG9yIGZyYW1lYnVmZmVyLiBB cw0KPj4+Pj4+IGxvbmcgYXMgdGhlIG5ldyBBUEkgYWxsb3dzIHRoYXQgYW5kIHRoZSBtYWludGFp bmVycyBhcmUgZmluZSB3aXRoIGl0LA0KPj4+Pj4+IEkgdGhpbmsgSSBzaG91bGQgYmUgb2theSB3 aXRoIGl0IHRvby4NCj4+Pj4+DQo+Pj4+PiBJZiB0aGlzIGlzIGp1c3QgYWJvdXQgdGhlIGN1cnNv ciwgd2h5IGlzIHRoZSBjdXJyZW50IGxlZ2FjeSBjdXJzb3INCj4+Pj4+IGlvY3RsIG5vdCBnb29k IGVub3VnaD8gSXQncyAyIGlvY3RscyBpbnN0ZWFkIG9mIG9uZSwgYnV0IEknbSBub3Qgc3VyZQ0K Pj4+Pj4gaWYgd2Ugd2FudCB0byBzdXBwb3J0IGhhdmluZyBhIG5vcm1hbCBhdG9taWMgY29tbWl0 IGFuZCBhIGN1cnNvcg0KPj4+Pj4gdXBkYXRlIGluIHRoZSBzYW1lIGF0b21pYyBpb2N0bCwgY29t aW5nIHVwIHdpdGggcmVhc29uYWJsZSBzZW1hbnRpY3MNCj4+Pj4+IGZvciB0aGF0IHdpbGwgYmUg Y29tcGxpY2F0ZWQuDQo+Pj4+Pg0KPj4+Pj4gUG9pbnRlciB0byBjb2RlIHRoYXQgdXNlcyB0aGlz IHdvdWxkIGJlIGJldHRlciBvZmMuDQo+Pj4+DQo+Pj4+IEkgaGF2ZW4ndCBmb2xsb3dlZCB0aGlz IHRocmVhZCB0b28gY2xvc2VseSwgYnV0IHdlIGVuZGVkIHVwIG5lZWRpbmcgdG8NCj4+Pj4gYWRk IGEgZmFzdCBwYXRjaCBmb3IgY3Vyc29yIHVwZGF0ZXMgdG8gYW1kZ3B1J3MgYXRvbWljIHN1cHBv cnQgdG8NCj4+Pj4gYXZvaWQgc3R1dHRlcmluZyBpc3N1ZXMuICBPdGhlciBkcml2ZXJzIG1heSBl bmQgdXAgYmVpbmcgYWZmZWN0ZWQgYnkNCj4+Pj4gdGhpcyBhcyB3ZWxsLiAgU2VlOg0KPj4+PiBo dHRwczovL2J1Z3MuZnJlZWRlc2t0b3Aub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDYxNzUNCj4+Pj4g VW5mb3J0dW5hdGVseSwgdGhlIGZhc3QgcGF0aCByZXF1aXJlcyBzb21lIGhhY2tzIHRvIGhhbmRs ZSB0aGUgcmVmDQo+Pj4+IGNvdW50aW5nIHByb3Blcmx5IG9uIGN1cnNvciBmYnM6DQo+Pj4+IGh0 dHBzOi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9wYXRjaC8yNjYxMzgvDQo+Pj4+IGh0dHBz Oi8vcGF0Y2h3b3JrLmZyZWVkZXNrdG9wLm9yZy9wYXRjaC8yNjgyOTgvDQo+Pj4+IEl0IGxvb2tz IGxpa2UgZ2FtbWEgbWF5IG5lZWQgc2ltaWxhciB0cmVhdG1lbnQ6DQo+Pj4+IGh0dHBzOi8vYnVn cy5mcmVlZGVza3RvcC5vcmcvc2hvd19idWcuY2dpP2lkPTEwODkxNw0KPj4+Pg0KPj4+PiBBbGV4 DQo+Pj4+DQo+Pj4+DQo+Pj4+PiAtRGFuaWVsDQo+Pj4+Pg0KPj4+Pj4+IEJlc3QgcmVnYXJkcywN Cj4+Pj4+PiBUb21hc3oNCj4+Pj4+Pg0KPj4+Pj4+Pg0KPj4+Pj4+PiBIZWxlbg0KPj4+Pj4+Pg0K Pj4+Pj4+Pj4NCj4+Pj4+Pj4+IEJlc3QgcmVnYXJkcywNCj4+Pj4+Pj4+IFRvbWFzeg0KPj4+Pj4+ Pj4NCj4+Pj4+Pj4+PiBPciBkbyB5b3Ugc3VnZ2VzdCBhbm90aGVyIG5hbWU/IEkgYW0gbm90IGZh bWlsaWFyIHdpdGggdnVsa2FuIHRlcm1pbm9sb2d5Lg0KPj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4NCj4+ Pj4+Pj4+PiBUaGFua3MNCj4+Pj4+Pj4+PiBIZWxlbg0KPj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4+DQo+ Pj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+Pj4gU2lnbmVkLW9mZi1ieTogRW5yaWMgQmFsbGV0Ym8gaSBT ZXJyYSA8ZW5yaWMuYmFsbGV0Ym9AY29sbGFib3JhLmNvbT4NCj4+Pj4+Pj4+Pj4+IFtwcmVwYXJl ZCBmb3IgdXBzdHJlYW1dDQo+Pj4+Pj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBIZWxlbiBLb2lrZSA8 aGVsZW4ua29pa2VAY29sbGFib3JhLmNvbT4NCj4+Pj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4+PiAtLS0N Cj4+Pj4+Pj4+Pj4+IEhpLA0KPj4+Pj4+Pj4+Pj4NCj4+Pj4+Pj4+Pj4+IFRoaXMgcGF0Y2ggaW50 cm9kdWNlcyB0aGUgQVNZTkNfVVBEQVRFIGNhcCwgd2hpY2ggb3JpZ2luYXRlZCBmcm9tIHRoZQ0K Pj4+Pj4+Pj4+Pj4gZGlzY3Vzc2lvbiByZWdhcmRpbmcgRFJNX01PREVfQVRPTUlDX0FNRU5EIG9u IFsxXSwgdG8gYWxsb3cgdXNlciB0bw0KPj4+Pj4+Pj4+Pj4gZmlndXJlIHRoYXQgYXN5bmNfdXBk YXRlIGV4aXN0cy4NCj4+Pj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4+PiBUaGlzIHdhcyB0ZXN0ZWQgdXNp bmcgYSBzbWFsbCBwcm9ncmFtIHRoYXQgZXhlcmNpc2VzIHRoZSB1QVBJIGZvciBlYXN5DQo+Pj4+ Pj4+Pj4+PiBzYW5pdHkgdGVzdGluZy4gVGhlIHByb2dyYW0gd2FzIGNyZWF0ZWQgYnkgQWxleGFu ZHJvcyBhbmQgbW9kaWZpZWQgYnkNCj4+Pj4+Pj4+Pj4+IEVucmljIHRvIHRlc3QgdGhlIGNhcGFi aWxpdHkgZmxhZyBbMl0uDQo+Pj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+Pj4gVGhlIHRlc3Qgd29ya2Vk IG9uIGEgcm9ja2NoaXAgRmljdXMgdjEuMSBib2FyZCBvbiB0b3Agb2YgbWFpbmxpbmUgcGx1cw0K Pj4+Pj4+Pj4+Pj4gdGhlIHBhdGNoIHRvIHVwZGF0ZSBjdXJzb3JzIGFzeW5jaHJvbm91c2x5IHRo cm91Z2ggYXRvbWljIHBsdXMgdGhlIHBhdGNoDQo+Pj4+Pj4+Pj4+PiB0aGF0IGludHJvZHVjZXMg dGhlIEFUT01JQ19BTUVORCBmbGFnIGZvciB0aGUgZHJtL3JvY2tjaGlwIGRyaXZlci4NCj4+Pj4+ Pj4+Pj4+DQo+Pj4+Pj4+Pj4+PiBUbyB0ZXN0LCBqdXN0IGJ1aWxkIHRoZSBwcm9ncmFtIGFuZCB1 c2UgdGhlIC0tYXRvbWljIGZsYWcgdG8gdXNlIHRoZSBjdXJzb3INCj4+Pj4+Pj4+Pj4+IHBsYW5l IHdpdGggdGhlIEFUT01JQ19BTUVORCBmbGFnLiBFLmcuDQo+Pj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+ Pj4gICAgZHJtX2N1cnNvciAtLWF0b21pYw0KPj4+Pj4+Pj4+Pj4NCj4+Pj4+Pj4+Pj4+IFsxXSBo dHRwczovL3BhdGNod29yay5mcmVlZGVza3RvcC5vcmcvcGF0Y2gvMjQzMDg4Lw0KPj4+Pj4+Pj4+ Pj4gWzJdIGh0dHBzOi8vZ2l0bGFiLmNvbGxhYm9yYS5jb20vZWJhbGxldGJvL2RybS1jdXJzb3Iv Y29tbWl0cy9hc3luYy1jYXBhYmlsaXR5DQo+Pj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+Pj4gVGhhbmtz DQo+Pj4+Pj4+Pj4+PiBIZWxlbg0KPj4+Pj4+Pj4+Pj4NCj4+Pj4+Pj4+Pj4+DQo+Pj4+Pj4+Pj4+ PiAgIGRyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYyB8IDExICsrKysrKysrKysrDQo+Pj4+Pj4+ Pj4+PiAgIGluY2x1ZGUvdWFwaS9kcm0vZHJtLmggICAgICB8ICAxICsNCj4+Pj4+Pj4+Pj4+ICAg MiBmaWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRpb25zKCspDQo+Pj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+ Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYyBiL2RyaXZlcnMvZ3B1 L2RybS9kcm1faW9jdGwuYw0KPj4+Pj4+Pj4+Pj4gaW5kZXggOTRiZDg3MmQ1NmM0Li40YTdlMGY4 NzQxNzEgMTAwNjQ0DQo+Pj4+Pj4+Pj4+PiAtLS0gYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2lvY3Rs LmMNCj4+Pj4+Pj4+Pj4+ICsrKyBiL2RyaXZlcnMvZ3B1L2RybS9kcm1faW9jdGwuYw0KPj4+Pj4+ Pj4+Pj4gQEAgLTMxLDYgKzMxLDcgQEANCj4+Pj4+Pj4+Pj4+ICAgI2luY2x1ZGUgPGRybS9kcm1f aW9jdGwuaD4NCj4+Pj4+Pj4+Pj4+ICAgI2luY2x1ZGUgPGRybS9kcm1QLmg+DQo+Pj4+Pj4+Pj4+ PiAgICNpbmNsdWRlIDxkcm0vZHJtX2F1dGguaD4NCj4+Pj4+Pj4+Pj4+ICsjaW5jbHVkZSA8ZHJt L2RybV9tb2Rlc2V0X2hlbHBlcl92dGFibGVzLmg+DQo+Pj4+Pj4+Pj4+PiAgICNpbmNsdWRlICJk cm1fbGVnYWN5LmgiDQo+Pj4+Pj4+Pj4+PiAgICNpbmNsdWRlICJkcm1faW50ZXJuYWwuaCINCj4+ Pj4+Pj4+Pj4+ICAgI2luY2x1ZGUgImRybV9jcnRjX2ludGVybmFsLmgiDQo+Pj4+Pj4+Pj4+PiBA QCAtMjI5LDYgKzIzMCw3IEBAIHN0YXRpYyBpbnQgZHJtX2dldGNhcChzdHJ1Y3QgZHJtX2Rldmlj ZSAqZGV2LCB2b2lkICpkYXRhLCBzdHJ1Y3QgZHJtX2ZpbGUgKmZpbGVfDQo+Pj4+Pj4+Pj4+PiAg IHsNCj4+Pj4+Pj4+Pj4+ICAgICAgIHN0cnVjdCBkcm1fZ2V0X2NhcCAqcmVxID0gZGF0YTsNCj4+ Pj4+Pj4+Pj4+ICAgICAgIHN0cnVjdCBkcm1fY3J0YyAqY3J0YzsNCj4+Pj4+Pj4+Pj4+ICsgICAg c3RydWN0IGRybV9wbGFuZSAqcGxhbmU7DQo+Pj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+Pj4gICAgICAg cmVxLT52YWx1ZSA9IDA7DQo+Pj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+Pj4gQEAgLTI5Miw2ICsyOTQs MTUgQEAgc3RhdGljIGludCBkcm1fZ2V0Y2FwKHN0cnVjdCBkcm1fZGV2aWNlICpkZXYsIHZvaWQg KmRhdGEsIHN0cnVjdCBkcm1fZmlsZSAqZmlsZV8NCj4+Pj4+Pj4+Pj4+ICAgICAgIGNhc2UgRFJN X0NBUF9DUlRDX0lOX1ZCTEFOS19FVkVOVDoNCj4+Pj4+Pj4+Pj4+ICAgICAgICAgICAgICAgcmVx LT52YWx1ZSA9IDE7DQo+Pj4+Pj4+Pj4+PiAgICAgICAgICAgICAgIGJyZWFrOw0KPj4+Pj4+Pj4+ Pj4gKyAgICBjYXNlIERSTV9DQVBfQVNZTkNfVVBEQVRFOg0KPj4+Pj4+Pj4+Pj4gKyAgICAgICAg ICAgIHJlcS0+dmFsdWUgPSAxOw0KPj4+Pj4+Pj4+Pj4gKyAgICAgICAgICAgIGxpc3RfZm9yX2Vh Y2hfZW50cnkocGxhbmUsICZkZXYtPm1vZGVfY29uZmlnLnBsYW5lX2xpc3QsIGhlYWQpIHsNCj4+ Pj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgIGlmICghcGxhbmUtPmhlbHBlcl9wcml2YXRl LT5hdG9taWNfYXN5bmNfdXBkYXRlKSB7DQo+Pj4+Pj4+Pj4+PiArICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHJlcS0+dmFsdWUgPSAwOw0KPj4+Pj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICBicmVhazsNCj4+Pj4+Pj4+Pj4+ICsgICAgICAgICAgICAgICAgICAgIH0NCj4+ Pj4+Pj4+Pj4+ICsgICAgICAgICAgICB9DQo+Pj4+Pj4+Pj4+PiArICAgICAgICAgICAgYnJlYWs7 DQo+Pj4+Pj4+Pj4+PiAgICAgICBkZWZhdWx0Og0KPj4+Pj4+Pj4+Pj4gICAgICAgICAgICAgICBy ZXR1cm4gLUVJTlZBTDsNCj4+Pj4+Pj4+Pj4+ICAgICAgIH0NCj4+Pj4+Pj4+Pj4+IGRpZmYgLS1n aXQgYS9pbmNsdWRlL3VhcGkvZHJtL2RybS5oIGIvaW5jbHVkZS91YXBpL2RybS9kcm0uaA0KPj4+ Pj4+Pj4+Pj4gaW5kZXggMzAwZjMzNjYzM2YyLi5mZjAxNTQwY2JiMWQgMTAwNjQ0DQo+Pj4+Pj4+ Pj4+PiAtLS0gYS9pbmNsdWRlL3VhcGkvZHJtL2RybS5oDQo+Pj4+Pj4+Pj4+PiArKysgYi9pbmNs dWRlL3VhcGkvZHJtL2RybS5oDQo+Pj4+Pj4+Pj4+PiBAQCAtNjQ5LDYgKzY0OSw3IEBAIHN0cnVj dCBkcm1fZ2VtX29wZW4gew0KPj4+Pj4+Pj4+Pj4gICAjZGVmaW5lIERSTV9DQVBfUEFHRV9GTElQ X1RBUkdFVCAgICAweDExDQo+Pj4+Pj4+Pj4+PiAgICNkZWZpbmUgRFJNX0NBUF9DUlRDX0lOX1ZC TEFOS19FVkVOVCAgICAgICAgMHgxMg0KPj4+Pj4+Pj4+Pj4gICAjZGVmaW5lIERSTV9DQVBfU1lO Q09CSiAgICAgICAgICAgICAweDEzDQo+Pj4+Pj4+Pj4+PiArI2RlZmluZSBEUk1fQ0FQX0FTWU5D X1VQREFURSAgICAgICAgICAgICAgICAweDE0DQo+Pj4+Pj4+Pj4+Pg0KPj4+Pj4+Pj4+Pj4gICAv KiogRFJNX0lPQ1RMX0dFVF9DQVAgaW9jdGwgYXJndW1lbnQgdHlwZSAqLw0KPj4+Pj4+Pj4+Pj4g ICBzdHJ1Y3QgZHJtX2dldF9jYXAgew0KPj4+Pj4+Pj4+Pj4gLS0NCj4+Pj4+Pj4+Pj4+IDIuMTku MQ0KPj4+Pj4+Pj4+Pj4NCj4+Pj4+Pj4+Pj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fDQo+Pj4+Pj4+Pj4+PiBkcmktZGV2ZWwgbWFpbGluZyBsaXN0DQo+ Pj4+Pj4+Pj4+PiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnDQo+Pj4+Pj4+Pj4+PiBo dHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA0K Pj4+Pj4+Pj4+Pg0KPj4+Pj4+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fDQo+Pj4+Pj4gZHJpLWRldmVsIG1haWxpbmcgbGlzdA0KPj4+Pj4+IGRyaS1kZXZl bEBsaXN0cy5mcmVlZGVza3RvcC5vcmcNCj4+Pj4+PiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9w Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL2RyaS1kZXZlbA0KPj4+Pj4NCj4+Pj4+DQo+Pj4+Pg0KPj4+ Pj4gLS0NCj4+Pj4+IERhbmllbCBWZXR0ZXINCj4+Pj4+IFNvZnR3YXJlIEVuZ2luZWVyLCBJbnRl bCBDb3Jwb3JhdGlvbg0KPj4+Pj4gKzQxICgwKSA3OSAzNjUgNTcgNDggLSBodHRwOi8vYmxvZy5m ZndsbC5jaA0KPj4+Pj4gX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX18NCj4+Pj4+IGRyaS1kZXZlbCBtYWlsaW5nIGxpc3QNCj4+Pj4+IGRyaS1kZXZlbEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcNCj4+Pj4+IGh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21h aWxtYW4vbGlzdGluZm8vZHJpLWRldmVsDQo+Pj4NCj4+Pg0KPj4+DQo+Pj4gLS0NCj4+PiBEYW5p ZWwgVmV0dGVyDQo+Pj4gU29mdHdhcmUgRW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uDQo+Pj4g KzQxICgwKSA3OSAzNjUgNTcgNDggLSBodHRwOi8vYmxvZy5mZndsbC5jaA0KPiANCj4gDQo+IA0K DQo=