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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (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 0255CEDF023 for ; Fri, 13 Feb 2026 09:39:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:From:References:Cc:To: Subject:MIME-Version:Date:Message-ID:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=VWR/v617eptc+aNkO/386xT64qL4bYhI9h+Sg34fdx4=; b=nX4E1Y4cdw0Bx1 JLOvoXuxorRzufxkmduQP8rtCKj0UPWi6heB0fDuuukEsQ4na2gXdWAfvxrfHR5i7cfopzW96Qil/ /E6rEj+4/MXdwO/SNUlOL/bJINfP74bAVlt3uqa8YBDyy4yztStRdR5Or5mA5cRzdb3cNuleuGmlk +3ZqoQQWUMAK/MiI+WPVFG7+iyQJVljaFikEQghYOKFawFRW3Wf7BIgoOLTt8wvs+ncIqaaPcwFMp SEhOa8QGgM7dvqHAqs1l0T/raYDlhCrr8CUahEU8D+a+Kybz8hFKrC5aiNtFq/N1+v/7EK8SI+YGe lH3ehk3T0Lv7AUAYawuQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98.2 #2 (Red Hat Linux)) id 1vqpdb-00000003Fnf-35Yu; Fri, 13 Feb 2026 09:39:00 +0000 Received: from out-185.mta0.migadu.com ([91.218.175.185]) by bombadil.infradead.org with esmtps (Exim 4.98.2 #2 (Red Hat Linux)) id 1vqpdX-00000003Fms-40wo for linux-riscv@lists.infradead.org; Fri, 13 Feb 2026 09:38:58 +0000 Message-ID: DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1770975519; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=d+6JXMOBGKkwziRhe+U/1Eoa0NlKFn4w7ph9/iJYG3Q=; b=njxXf7eNd5AaJwUDQo0dlZC0O+J0anGYUrmqce68QsUNg7mZwJmAnZgvsGB0ZOlmcb1SsJ JDutijlw3Gf2iN6Dmv9CGdOOS3yNyYiK0vde9eEeLbJVeiYNknqtKQXQWf/cH1XySmM7rS oYkgZKingDrKRdZ9RBwfSwP3ZmUUP3k= Date: Fri, 13 Feb 2026 17:37:45 +0800 MIME-Version: 1.0 Subject: Re: [PATCH] riscv: Remove support for XIP kernel To: Nam Cao , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org, Zhouyi Zhou , "Kunwu.Chan" Cc: Frederik Haxel , Vitaly Wool References: <20260202115403.2119218-1-namcao@linutronix.de> Content-Language: en-US X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Kunwu Chan In-Reply-To: <20260202115403.2119218-1-namcao@linutronix.de> X-Migadu-Flow: FLOW_OUT X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20260213_013856_750300_7697D657 X-CRM114-Status: GOOD ( 37.30 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org SGksCgpQbGVhc2UgZG9uJ3QgcmVtb3ZlIENPTkZJR19YSVBfS0VSTkVMLgoKWmhvdXlpIFpob3Ug emhvdXpob3V5aUBnbWFpbC5jb20gPG1haWx0bzp6aG91emhvdXlpQGdtYWlsLmNvbT5hbmQgSSBh cmUKd2lsbGluZyB0byB0YWtlIG92ZXIKbWFpbnRhaW5lcnNoaXAgYW5kIGtlZXAgaXQgYnVpbGQt dGVzdGVkIGFuZCBtYWludGFpbmVkIGdvaW5nIGZvcndhcmQuCgpXZSB3aWxsIHNlbmQgYSBNQUlO VEFJTkVSUyBwYXRjaCBzaG9ydGx5LgoKClRoYW54LMKgIEt1bnd1CgpPbiAyLzIvMjYgMTk6NTQs IE5hbSBDYW8gd3JvdGU6Cj4gWElQIGhhcyBhIGhpc3Rvcnkgb2YgYmVpbmcgYnJva2VuIGZvciBs b25nIHBlcmlvZHMgb2YgdGltZS4gSW4gMjAyMywgaXQgd2FzCj4gYnJva2VuIGZvciAxOCBtb250 aHMgYmVmb3JlIGdldHRpbmcgZml4ZWQgWzFdLiBJbiAyMDI0IGl0IHdhcyA0IG1vbnRocyBbMl0u Cj4KPiBBbmQgbm93IGl0IGlzIGJyb2tlbiBhZ2FpbiBzaW5jZSBjb21taXQgYTQ0ZmI1NzIyMTk5 ICgicmlzY3Y6IEFkZCBydW50aW1lCj4gY29uc3RhbnQgc3VwcG9ydCIpLCAxMCBtb250aHMgYWdv Lgo+Cj4gVGhlc2UgYXJlIGNsZWFyIHNpZ25zIHRoYXQgWElQIGZlYXR1cmUgaXMgbm90IGJlaW5n IHVzZWQuCj4KPiBJIG9jY2FzaW9uYWxseSBsb29rZWQgYWZ0ZXIgWElQLCBidXQgbW9zdGx5IGJl Y2F1c2UgSSB3YXMgYm9yZWQgYW5kIGhhZAo+IG5vdGhpbmcgYmV0dGVyIHRvIGRvLgo+Cj4gUmVt b3ZlIFhJUCBzdXBwb3J0LiBSZXZlcnQgaXMgcG9zc2libGUgaWYgc29tZW9uZSBzaG93cyB1cCBj b21wbGFpbmluZy4KPgo+IExpbms6IGh0dHBzOi8vbG9yZS5rZXJuZWwub3JnL2xpbnV4LXJpc2N2 LzIwMjMxMjEyLWN1c3RvbWFyeS1oYXJkY292ZXItZTE5NDYyYmY4ZTc1QHdlbmR5LyBbMV0KPiBM aW5rOiBodHRwczovL2xvcmUua2VybmVsLm9yZy9saW51eC1yaXNjdi8yMDI0MDUyNjExMDEwNC40 NzA0MjktMS1uYW1jYW9AbGludXRyb25peC5kZS8gWzJdCj4gU2lnbmVkLW9mZi1ieTogTmFtIENh byA8bmFtY2FvQGxpbnV0cm9uaXguZGU+Cj4gQ2M6IEZyZWRlcmlrIEhheGVsIDxoYXhlbEBmemku ZGU+Cj4gQ2M6IFZpdGFseSBXb29sIDx2aXRhbHkud29vbEBrb25zdWxrby5jb20+Cj4gLS0tCj4g IGFyY2gvcmlzY3YvS2NvbmZpZyAgICAgICAgICAgICAgICAgIHwgIDg2ICsrKysrKy0tLS0tLS0t LS0tLS0tLQo+ICBhcmNoL3Jpc2N2L0tjb25maWcuc29jcyAgICAgICAgICAgICB8ICAgOCArLQo+ ICBhcmNoL3Jpc2N2L01ha2VmaWxlICAgICAgICAgICAgICAgICB8ICAgMyAtCj4gIGFyY2gvcmlz Y3YvYm9vdC9NYWtlZmlsZSAgICAgICAgICAgIHwgIDExIC0tLQo+ICBhcmNoL3Jpc2N2L2luY2x1 ZGUvYXNtL3BhZ2UuaCAgICAgICB8ICAyOSAtLS0tLS0tLQo+ICBhcmNoL3Jpc2N2L2luY2x1ZGUv YXNtL3BndGFibGUuaCAgICB8ICAyMCAtLS0tLQo+ICBhcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3Nj cy5oICAgICAgICB8ICAgMSAtCj4gIGFyY2gvcmlzY3YvaW5jbHVkZS9hc20vc2V0X21lbW9yeS5o IHwgICAyICstCj4gIGFyY2gvcmlzY3YvaW5jbHVkZS9hc20veGlwX2ZpeHVwLmggIHwgIDQ5IC0t LS0tLS0tLS0tLQo+ICBhcmNoL3Jpc2N2L2tlcm5lbC9oZWFkLlMgICAgICAgICAgICB8ICA0MSAt LS0tLS0tLS0tCj4gIGFyY2gvcmlzY3Yva2VybmVsL2hlYWQuaCAgICAgICAgICAgIHwgICAzIC0K PiAgYXJjaC9yaXNjdi9rZXJuZWwvc2V0dXAuYyAgICAgICAgICAgfCAgIDYgKy0KPiAgYXJjaC9y aXNjdi9rZXJuZWwvc3VzcGVuZF9lbnRyeS5TICAgfCAgIDIgLQo+ICBhcmNoL3Jpc2N2L2tlcm5l bC90cmFwcy5jICAgICAgICAgICB8ICAgNCAtCj4gIGFyY2gvcmlzY3Yva2VybmVsL3ZtY29yZV9p bmZvLmMgICAgIHwgICA3IC0tCj4gIGFyY2gvcmlzY3Yva2VybmVsL3ZtbGludXgubGRzLlMgICAg IHwgICA1IC0tCj4gIGFyY2gvcmlzY3YvbW0vaW5pdC5jICAgICAgICAgICAgICAgIHwgMTExICsr LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAgMTcgZmlsZXMgY2hhbmdlZCwgMzcgaW5zZXJ0 aW9ucygrKSwgMzUxIGRlbGV0aW9ucygtKQo+ICBkZWxldGUgbW9kZSAxMDA2NDQgYXJjaC9yaXNj di9pbmNsdWRlL2FzbS94aXBfZml4dXAuaAo+Cj4gZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvS2Nv bmZpZyBiL2FyY2gvcmlzY3YvS2NvbmZpZwo+IGluZGV4IDdlNzZiNjMxNjQyNS4uZThhYzZjNjFl MjdkIDEwMDY0NAo+IC0tLSBhL2FyY2gvcmlzY3YvS2NvbmZpZwo+ICsrKyBiL2FyY2gvcmlzY3Yv S2NvbmZpZwo+IEBAIC00OCw4ICs0OCw4IEBAIGNvbmZpZyBSSVNDVgo+ICAJc2VsZWN0IEFSQ0hf SEFTX1BURV9TUEVDSUFMCj4gIAlzZWxlY3QgQVJDSF9IQVNfU0VUX0RJUkVDVF9NQVAgaWYgTU1V Cj4gIAlzZWxlY3QgQVJDSF9IQVNfU0VUX01FTU9SWSBpZiBNTVUKPiAtCXNlbGVjdCBBUkNIX0hB U19TVFJJQ1RfS0VSTkVMX1JXWCBpZiBNTVUgJiYgIVhJUF9LRVJORUwKPiAtCXNlbGVjdCBBUkNI X0hBU19TVFJJQ1RfTU9EVUxFX1JXWCBpZiBNTVUgJiYgIVhJUF9LRVJORUwKPiArCXNlbGVjdCBB UkNIX0hBU19TVFJJQ1RfS0VSTkVMX1JXWCBpZiBNTVUKPiArCXNlbGVjdCBBUkNIX0hBU19TVFJJ Q1RfTU9EVUxFX1JXWCBpZiBNTVUKPiAgCXNlbGVjdCBBUkNIX0hBU19TWU5DX0NPUkVfQkVGT1JF X1VTRVJNT0RFCj4gIAlzZWxlY3QgQVJDSF9IQVNfU1lTQ0FMTF9XUkFQUEVSCj4gIAlzZWxlY3Qg QVJDSF9IQVNfVElDS19CUk9BRENBU1QgaWYgR0VORVJJQ19DTE9DS0VWRU5UU19CUk9BRENBU1QK PiBAQCAtODUsNyArODUsNyBAQCBjb25maWcgUklTQ1YKPiAgCXNlbGVjdCBBUkNIX1dBTlRfRlJB TUVfUE9JTlRFUlMKPiAgCXNlbGVjdCBBUkNIX1dBTlRfR0VORVJBTF9IVUdFVExCIGlmICFSSVND Vl9JU0FfU1ZOQVBPVAo+ICAJc2VsZWN0IEFSQ0hfV0FOVF9IVUdFX1BNRF9TSEFSRSBpZiA2NEJJ VAo+IC0Jc2VsZWN0IEFSQ0hfV0FOVF9MRF9PUlBIQU5fV0FSTiBpZiAhWElQX0tFUk5FTAo+ICsJ c2VsZWN0IEFSQ0hfV0FOVF9MRF9PUlBIQU5fV0FSTgo+ICAJc2VsZWN0IEFSQ0hfV0FOVF9PUFRJ TUlaRV9EQVhfVk1FTU1BUAo+ICAJc2VsZWN0IEFSQ0hfV0FOVF9PUFRJTUlaRV9IVUdFVExCX1ZN RU1NQVAKPiAgCXNlbGVjdCBBUkNIX1dBTlRTX05PX0lOU1RSCj4gQEAgLTEzMCwxMyArMTMwLDEz IEBAIGNvbmZpZyBSSVNDVgo+ICAJc2VsZWN0IEhBVkVfQVJDSF9BVURJVFNZU0NBTEwKPiAgCXNl bGVjdCBIQVZFX0FSQ0hfSFVHRV9WTUFMTE9DIGlmIEhBVkVfQVJDSF9IVUdFX1ZNQVAKPiAgCXNl bGVjdCBIQVZFX0FSQ0hfSFVHRV9WTUFQIGlmIE1NVSAmJiA2NEJJVAo+IC0Jc2VsZWN0IEhBVkVf QVJDSF9KVU1QX0xBQkVMIGlmICFYSVBfS0VSTkVMCj4gLQlzZWxlY3QgSEFWRV9BUkNIX0pVTVBf TEFCRUxfUkVMQVRJVkUgaWYgIVhJUF9LRVJORUwKPiArCXNlbGVjdCBIQVZFX0FSQ0hfSlVNUF9M QUJFTAo+ICsJc2VsZWN0IEhBVkVfQVJDSF9KVU1QX0xBQkVMX1JFTEFUSVZFCj4gIAlzZWxlY3Qg SEFWRV9BUkNIX0tBU0FOIGlmIE1NVSAmJiA2NEJJVAo+ICAJc2VsZWN0IEhBVkVfQVJDSF9LQVNB Tl9WTUFMTE9DIGlmIE1NVSAmJiA2NEJJVAo+ICAJc2VsZWN0IEhBVkVfQVJDSF9LRkVOQ0UgaWYg TU1VICYmIDY0QklUCj4gIAlzZWxlY3QgSEFWRV9BUkNIX0tTVEFDS19FUkFTRQo+IC0Jc2VsZWN0 IEhBVkVfQVJDSF9LR0RCIGlmICFYSVBfS0VSTkVMCj4gKwlzZWxlY3QgSEFWRV9BUkNIX0tHREIK PiAgCXNlbGVjdCBIQVZFX0FSQ0hfS0dEQl9RWEZFUl9QS1QKPiAgCXNlbGVjdCBIQVZFX0FSQ0hf TU1BUF9STkRfQklUUyBpZiBNTVUKPiAgCXNlbGVjdCBIQVZFX0FSQ0hfTU1BUF9STkRfQ09NUEFU X0JJVFMgaWYgQ09NUEFUCj4gQEAgLTE1NCw3ICsxNTQsNyBAQCBjb25maWcgUklTQ1YKPiAgCXNl bGVjdCBIQVZFX0NPTlRFWFRfVFJBQ0tJTkdfVVNFUgo+ICAJc2VsZWN0IEhBVkVfREVCVUdfS01F TUxFQUsKPiAgCXNlbGVjdCBIQVZFX0RNQV9DT05USUdVT1VTIGlmIE1NVQo+IC0Jc2VsZWN0IEhB VkVfRFlOQU1JQ19GVFJBQ0UgaWYgIVhJUF9LRVJORUwgJiYgTU1VICYmIChDTEFOR19TVVBQT1JU U19EWU5BTUlDX0ZUUkFDRSB8fCBHQ0NfU1VQUE9SVFNfRFlOQU1JQ19GVFJBQ0UpCj4gKwlzZWxl Y3QgSEFWRV9EWU5BTUlDX0ZUUkFDRSBpZiBNTVUgJiYgKENMQU5HX1NVUFBPUlRTX0RZTkFNSUNf RlRSQUNFIHx8IEdDQ19TVVBQT1JUU19EWU5BTUlDX0ZUUkFDRSkKPiAgCXNlbGVjdCBGVU5DVElP Tl9BTElHTk1FTlRfNEIgaWYgSEFWRV9EWU5BTUlDX0ZUUkFDRSAmJiBSSVNDVl9JU0FfQwo+ICAJ c2VsZWN0IEhBVkVfRFlOQU1JQ19GVFJBQ0VfV0lUSF9ESVJFQ1RfQ0FMTFMgaWYgSEFWRV9EWU5B TUlDX0ZUUkFDRV9XSVRIX0NBTExfT1BTCj4gIAlzZWxlY3QgSEFWRV9EWU5BTUlDX0ZUUkFDRV9X SVRIX0NBTExfT1BTIGlmIChEWU5BTUlDX0ZUUkFDRV9XSVRIX0FSR1MgJiYgIUNGSSkKPiBAQCAt MTYyLDcgKzE2Miw3IEBAIGNvbmZpZyBSSVNDVgo+ICAJc2VsZWN0IEhBVkVfRlRSQUNFX0dSQVBI X0ZVTkMKPiAgCXNlbGVjdCBIQVZFX0ZVTkNUSU9OX0dSQVBIX1RSQUNFUiBpZiBIQVZFX0RZTkFN SUNfRlRSQUNFX1dJVEhfQVJHUwo+ICAJc2VsZWN0IEhBVkVfRlVOQ1RJT05fR1JBUEhfRlJFR1MK PiAtCXNlbGVjdCBIQVZFX0ZVTkNUSU9OX1RSQUNFUiBpZiAhWElQX0tFUk5FTCAmJiBIQVZFX0RZ TkFNSUNfRlRSQUNFCj4gKwlzZWxlY3QgSEFWRV9GVU5DVElPTl9UUkFDRVIgaWYgSEFWRV9EWU5B TUlDX0ZUUkFDRQo+ICAJc2VsZWN0IEhBVkVfRUJQRl9KSVQgaWYgTU1VCj4gIAlzZWxlY3QgSEFW RV9HRU5FUklDX1RJRl9CSVRTCj4gIAlzZWxlY3QgSEFWRV9HVVBfRkFTVCBpZiBNTVUKPiBAQCAt MTcxLDE2ICsxNzEsMTYgQEAgY29uZmlnIFJJU0NWCj4gIAlzZWxlY3QgSEFWRV9HQ0NfUExVR0lO Uwo+ICAJc2VsZWN0IEhBVkVfR0VORVJJQ19WRFNPIGlmIE1NVQo+ICAJc2VsZWN0IEhBVkVfSVJR X1RJTUVfQUNDT1VOVElORwo+IC0Jc2VsZWN0IEhBVkVfS0VSTkVMX0JaSVAyIGlmICFYSVBfS0VS TkVMICYmICFFRklfWkJPT1QKPiAtCXNlbGVjdCBIQVZFX0tFUk5FTF9HWklQIGlmICFYSVBfS0VS TkVMICYmICFFRklfWkJPT1QKPiAtCXNlbGVjdCBIQVZFX0tFUk5FTF9MWjQgaWYgIVhJUF9LRVJO RUwgJiYgIUVGSV9aQk9PVAo+IC0Jc2VsZWN0IEhBVkVfS0VSTkVMX0xaTUEgaWYgIVhJUF9LRVJO RUwgJiYgIUVGSV9aQk9PVAo+IC0Jc2VsZWN0IEhBVkVfS0VSTkVMX0xaTyBpZiAhWElQX0tFUk5F TCAmJiAhRUZJX1pCT09UCj4gLQlzZWxlY3QgSEFWRV9LRVJORUxfVU5DT01QUkVTU0VEIGlmICFY SVBfS0VSTkVMICYmICFFRklfWkJPT1QKPiAtCXNlbGVjdCBIQVZFX0tFUk5FTF9aU1REIGlmICFY SVBfS0VSTkVMICYmICFFRklfWkJPT1QKPiAtCXNlbGVjdCBIQVZFX0tFUk5FTF9YWiBpZiAhWElQ X0tFUk5FTCAmJiAhRUZJX1pCT09UCj4gLQlzZWxlY3QgSEFWRV9LUFJPQkVTIGlmICFYSVBfS0VS TkVMCj4gLQlzZWxlY3QgSEFWRV9LUkVUUFJPQkVTIGlmICFYSVBfS0VSTkVMCj4gKwlzZWxlY3Qg SEFWRV9LRVJORUxfQlpJUDIgaWYgIUVGSV9aQk9PVAo+ICsJc2VsZWN0IEhBVkVfS0VSTkVMX0da SVAgaWYgIUVGSV9aQk9PVAo+ICsJc2VsZWN0IEhBVkVfS0VSTkVMX0xaNCBpZiAhRUZJX1pCT09U Cj4gKwlzZWxlY3QgSEFWRV9LRVJORUxfTFpNQSBpZiAhRUZJX1pCT09UCj4gKwlzZWxlY3QgSEFW RV9LRVJORUxfTFpPIGlmICFFRklfWkJPT1QKPiArCXNlbGVjdCBIQVZFX0tFUk5FTF9VTkNPTVBS RVNTRUQgaWYgIUVGSV9aQk9PVAo+ICsJc2VsZWN0IEhBVkVfS0VSTkVMX1pTVEQgaWYgIUVGSV9a Qk9PVAo+ICsJc2VsZWN0IEhBVkVfS0VSTkVMX1haIGlmICFFRklfWkJPT1QKPiArCXNlbGVjdCBI QVZFX0tQUk9CRVMKPiArCXNlbGVjdCBIQVZFX0tSRVRQUk9CRVMKPiAgCSMgaHR0cHM6Ly9naXRo dWIuY29tL0NsYW5nQnVpbHRMaW51eC9saW51eC9pc3N1ZXMvMTg4MQo+ICAJc2VsZWN0IEhBVkVf TERfREVBRF9DT0RFX0RBVEFfRUxJTUlOQVRJT04gaWYgIUxEX0lTX0xMRAo+ICAJc2VsZWN0IEhB VkVfTU9WRV9QTUQKPiBAQCAtMTkxLDkgKzE5MSw5IEBAIGNvbmZpZyBSSVNDVgo+ICAJc2VsZWN0 IEhBVkVfUEVSRl9SRUdTCj4gIAlzZWxlY3QgSEFWRV9QRVJGX1VTRVJfU1RBQ0tfRFVNUAo+ICAJ c2VsZWN0IEhBVkVfUE9TSVhfQ1BVX1RJTUVSU19UQVNLX1dPUksKPiAtCXNlbGVjdCBIQVZFX1BS RUVNUFRfRFlOQU1JQ19LRVkgaWYgIVhJUF9LRVJORUwKPiArCXNlbGVjdCBIQVZFX1BSRUVNUFRf RFlOQU1JQ19LRVkKPiAgCXNlbGVjdCBIQVZFX1JFR1NfQU5EX1NUQUNLX0FDQ0VTU19BUEkKPiAt CXNlbGVjdCBIQVZFX1JFVEhPT0sgaWYgIVhJUF9LRVJORUwKPiArCXNlbGVjdCBIQVZFX1JFVEhP T0sKPiAgCXNlbGVjdCBIQVZFX1JTRVEKPiAgCXNlbGVjdCBIQVZFX1JVU1QgaWYgUlVTVENfU1VQ UE9SVFNfUklTQ1YgJiYgQ0NfSVNfQ0xBTkcKPiAgCXNlbGVjdCBIQVZFX1NBTVBMRV9GVFJBQ0Vf RElSRUNUCj4gQEAgLTIxNCw3ICsyMTQsNyBAQCBjb25maWcgUklTQ1YKPiAgCXNlbGVjdCBQQ0lf RUNBTSBpZiAoQUNQSSAmJiBQQ0kpCj4gIAlzZWxlY3QgUENJX01TSSBpZiBQQ0kKPiAgCXNlbGVj dCBSRUxPQ0FUQUJMRSBpZiAhTU1VICYmICFQSFlTX1JBTV9CQVNFX0ZJWEVECj4gLQlzZWxlY3Qg UklTQ1ZfQUxURVJOQVRJVkUgaWYgIVhJUF9LRVJORUwKPiArCXNlbGVjdCBSSVNDVl9BTFRFUk5B VElWRQo+ICAJc2VsZWN0IFJJU0NWX0FQTElDCj4gIAlzZWxlY3QgUklTQ1ZfSU1TSUMKPiAgCXNl bGVjdCBSSVNDVl9JTlRDCj4gQEAgLTU0MSw3ICs1NDEsNiBAQCBlbmRjaG9pY2UKPiAgCj4gIGNv bmZpZyBSSVNDVl9BTFRFUk5BVElWRQo+ICAJYm9vbAo+IC0JZGVwZW5kcyBvbiAhWElQX0tFUk5F TAo+ICAJaGVscAo+ICAJICBUaGlzIEtjb25maWcgYWxsb3dzIHRoZSBrZXJuZWwgdG8gYXV0b21h dGljYWxseSBwYXRjaCB0aGUKPiAgCSAgZXJyYXR1bSBvciBjcHVmZWF0dXJlIHJlcXVpcmVkIGJ5 IHRoZSBleGVjdXRpb24gcGxhdGZvcm0gYXQgcnVuCj4gQEAgLTExMjksNyArMTEyOCw2IEBAIGNv bmZpZyBQQVJBVklSVF9USU1FX0FDQ09VTlRJTkcKPiAgCj4gIGNvbmZpZyBSRUxPQ0FUQUJMRQo+ ICAJYm9vbCAiQnVpbGQgYSByZWxvY2F0YWJsZSBrZXJuZWwiCj4gLQlkZXBlbmRzIG9uICFYSVBf S0VSTkVMCj4gIAlzZWxlY3QgTU9EVUxFX1NFQ1RJT05TIGlmIE1PRFVMRVMKPiAgCXNlbGVjdCBB UkNIX1ZNTElOVVhfTkVFRFNfUkVMT0NTCj4gIAloZWxwCj4gQEAgLTExNDYsNyArMTE0NCw3IEBA IGNvbmZpZyBSRUxPQ0FUQUJMRQo+ICBjb25maWcgUkFORE9NSVpFX0JBU0UKPiAgICAgICAgICBi b29sICJSYW5kb21pemUgdGhlIGFkZHJlc3Mgb2YgdGhlIGtlcm5lbCBpbWFnZSIKPiAgICAgICAg ICBzZWxlY3QgUkVMT0NBVEFCTEUKPiAtICAgICAgICBkZXBlbmRzIG9uIE1NVSAmJiA2NEJJVCAm JiAhWElQX0tFUk5FTAo+ICsgICAgICAgIGRlcGVuZHMgb24gTU1VICYmIDY0QklUCj4gICAgICAg ICAgaGVscAo+ICAgICAgICAgICAgUmFuZG9taXplcyB0aGUgdmlydHVhbCBhZGRyZXNzIGF0IHdo aWNoIHRoZSBrZXJuZWwgaW1hZ2UgaXMKPiAgICAgICAgICAgIGxvYWRlZCwgYXMgYSBzZWN1cml0 eSBmZWF0dXJlIHRoYXQgZGV0ZXJzIGV4cGxvaXQgYXR0ZW1wdHMKPiBAQCAtMTIzNiw3ICsxMjM0 LDcgQEAgY29uZmlnIEVGSV9TVFVCCj4gIAo+ICBjb25maWcgRUZJCj4gIAlib29sICJVRUZJIHJ1 bnRpbWUgc3VwcG9ydCIKPiAtCWRlcGVuZHMgb24gT0YgJiYgIVhJUF9LRVJORUwKPiArCWRlcGVu ZHMgb24gT0YKPiAgCWRlcGVuZHMgb24gTU1VCj4gIAlkZWZhdWx0IHkKPiAgCXNlbGVjdCBBUkNI X1NVUFBPUlRTX0FDUEkgaWYgNjRCSVQKPiBAQCAtMTI4Nyw0NCArMTI4NSw2IEBAIGNvbmZpZyBQ SFlTX1JBTV9CQVNFCj4gIAkgIGV4cGxpY2l0bHkgc3BlY2lmaWVkIHRvIHJ1biBlYXJseSByZWxv Y2F0aW9ucyBvZiByZWFkLXdyaXRlIGRhdGEKPiAgCSAgZnJvbSBmbGFzaCB0byBSQU0uCj4gIAo+ IC1jb25maWcgWElQX0tFUk5FTAo+IC0JYm9vbCAiS2VybmVsIEV4ZWN1dGUtSW4tUGxhY2UgZnJv bSBST00iCj4gLQlkZXBlbmRzIG9uIE1NVSAmJiBTUEFSU0VNRU0gJiYgTk9OUE9SVEFCTEUKPiAt CSMgVGhpcyBwcmV2ZW50cyBYSVAgZnJvbSBiZWluZyBlbmFibGVkIGJ5IGFsbHt5ZXMsbW9kfWNv bmZpZywgd2hpY2gKPiAtCSMgZmFpbCB0byBidWlsZCBzaW5jZSBYSVAgZG9lc24ndCBzdXBwb3J0 IGxhcmdlIGtlcm5lbHMuCj4gLQlkZXBlbmRzIG9uICFDT01QSUxFX1RFU1QKPiAtCXNlbGVjdCBQ SFlTX1JBTV9CQVNFX0ZJWEVECj4gLQloZWxwCj4gLQkgIEV4ZWN1dGUtSW4tUGxhY2UgYWxsb3dz IHRoZSBrZXJuZWwgdG8gcnVuIGZyb20gbm9uLXZvbGF0aWxlIHN0b3JhZ2UKPiAtCSAgZGlyZWN0 bHkgYWRkcmVzc2FibGUgYnkgdGhlIENQVSwgc3VjaCBhcyBOT1IgZmxhc2guIFRoaXMgc2F2ZXMg UkFNCj4gLQkgIHNwYWNlIHNpbmNlIHRoZSB0ZXh0IHNlY3Rpb24gb2YgdGhlIGtlcm5lbCBpcyBu b3QgbG9hZGVkIGZyb20gZmxhc2gKPiAtCSAgdG8gUkFNLiAgUmVhZC13cml0ZSBzZWN0aW9ucywg c3VjaCBhcyB0aGUgZGF0YSBzZWN0aW9uIGFuZCBzdGFjaywKPiAtCSAgYXJlIHN0aWxsIGNvcGll ZCB0byBSQU0uICBUaGUgWElQIGtlcm5lbCBpcyBub3QgY29tcHJlc3NlZCBzaW5jZQo+IC0JICBp dCBoYXMgdG8gcnVuIGRpcmVjdGx5IGZyb20gZmxhc2gsIHNvIGl0IHdpbGwgdGFrZSBtb3JlIHNw YWNlIHRvCj4gLQkgIHN0b3JlIGl0LiAgVGhlIGZsYXNoIGFkZHJlc3MgdXNlZCB0byBsaW5rIHRo ZSBrZXJuZWwgb2JqZWN0IGZpbGVzLAo+IC0JICBhbmQgZm9yIHN0b3JpbmcgaXQsIGlzIGNvbmZp Z3VyYXRpb24gZGVwZW5kZW50LiBUaGVyZWZvcmUsIGlmIHlvdQo+IC0JICBzYXkgWSBoZXJlLCB5 b3UgbXVzdCBrbm93IHRoZSBwcm9wZXIgcGh5c2ljYWwgYWRkcmVzcyB3aGVyZSB0bwo+IC0JICBz dG9yZSB0aGUga2VybmVsIGltYWdlIGRlcGVuZGluZyBvbiB5b3VyIG93biBmbGFzaCBtZW1vcnkg dXNhZ2UuCj4gLQo+IC0JICBBbHNvIG5vdGUgdGhhdCB0aGUgbWFrZSB0YXJnZXQgYmVjb21lcyAi bWFrZSB4aXBJbWFnZSIgcmF0aGVyIHRoYW4KPiAtCSAgIm1ha2UgekltYWdlIiBvciAibWFrZSBJ bWFnZSIuICBUaGUgZmluYWwga2VybmVsIGJpbmFyeSB0byBwdXQgaW4KPiAtCSAgUk9NIG1lbW9y eSB3aWxsIGJlIGFyY2gvcmlzY3YvYm9vdC94aXBJbWFnZS4KPiAtCj4gLQkgIFNQQVJTRU1FTSBp cyByZXF1aXJlZCBiZWNhdXNlIHRoZSBrZXJuZWwgdGV4dCBhbmQgcm9kYXRhIHRoYXQgYXJlCj4g LQkgIGZsYXNoIHJlc2lkZW50IGFyZSBub3QgYmFja2VkIGJ5IG1lbW1hcCwgdGhlbiBhbnkgYXR0 ZW1wdCB0byBnZXQKPiAtCSAgYSBzdHJ1Y3QgcGFnZSBvbiB0aG9zZSByZWdpb25zIHdpbGwgdHJp Z2dlciBhIGZhdWx0Lgo+IC0KPiAtCSAgSWYgdW5zdXJlLCBzYXkgTi4KPiAtCj4gLWNvbmZpZyBY SVBfUEhZU19BRERSCj4gLQloZXggIlhJUCBLZXJuZWwgUGh5c2ljYWwgTG9jYXRpb24iCj4gLQlk ZXBlbmRzIG9uIFhJUF9LRVJORUwKPiAtCWRlZmF1bHQgIjB4MjEwMDAwMDAiCj4gLQloZWxwCj4g LQkgIFRoaXMgaXMgdGhlIHBoeXNpY2FsIGFkZHJlc3MgaW4geW91ciBmbGFzaCBtZW1vcnkgdGhl IGtlcm5lbCB3aWxsCj4gLQkgIGJlIGxpbmtlZCBmb3IgYW5kIHN0b3JlZCB0by4gIFRoaXMgYWRk cmVzcyBpcyBkZXBlbmRlbnQgb24geW91cgo+IC0JICBvd24gZmxhc2ggdXNhZ2UuCj4gLQo+ICBj b25maWcgUklTQ1ZfSVNBX0ZBTExCQUNLCj4gIAlib29sICJQZXJtaXQgZmFsbGluZyBiYWNrIHRv IHBhcnNpbmcgcmlzY3YsaXNhIGZvciBleHRlbnNpb24gc3VwcG9ydCBieSBkZWZhdWx0Igo+ICAJ ZGVmYXVsdCB5Cj4gZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvS2NvbmZpZy5zb2NzIGIvYXJjaC9y aXNjdi9LY29uZmlnLnNvY3MKPiBpbmRleCBkNjIxYjg1ZGQ2M2IuLmMxNzRhYzBlYzQ2YiAxMDA2 NDQKPiAtLS0gYS9hcmNoL3Jpc2N2L0tjb25maWcuc29jcwo+ICsrKyBiL2FyY2gvcmlzY3YvS2Nv bmZpZy5zb2NzCj4gQEAgLTIsNyArMiw3IEBAIG1lbnUgIlNvQyBzZWxlY3Rpb24iCj4gIAo+ICBj b25maWcgQVJDSF9BTkRFUwo+ICAJYm9vbCAiQW5kZXMgU29DcyIKPiAtCWRlcGVuZHMgb24gTU1V ICYmICFYSVBfS0VSTkVMCj4gKwlkZXBlbmRzIG9uIE1NVQo+ICAJc2VsZWN0IEVSUkFUQV9BTkRF Uwo+ICAJaGVscAo+ICAJICBUaGlzIGVuYWJsZXMgc3VwcG9ydCBmb3IgQW5kZXMgU29DIHBsYXRm b3JtIGhhcmR3YXJlLgo+IEBAIC0zMyw3ICszMyw3IEBAIGNvbmZpZyBBUkNIX1JFTkVTQVMKPiAg Cj4gIGNvbmZpZyBBUkNIX1NJRklWRQo+ICAJYm9vbCAiU2lGaXZlIFNvQ3MiCj4gLQlzZWxlY3Qg RVJSQVRBX1NJRklWRSBpZiAhWElQX0tFUk5FTAo+ICsJc2VsZWN0IEVSUkFUQV9TSUZJVkUKPiAg CWhlbHAKPiAgCSAgVGhpcyBlbmFibGVzIHN1cHBvcnQgZm9yIFNpRml2ZSBTb0MgcGxhdGZvcm0g aGFyZHdhcmUuCj4gIAo+IEBAIC02MSw3ICs2MSw3IEBAIGNvbmZpZyBTT0NfU1RBUkZJVkUKPiAg Cj4gIGNvbmZpZyBBUkNIX1NVTlhJCj4gIAlib29sICJBbGx3aW5uZXIgc3VuMjBpIFNvQ3MiCj4g LQlkZXBlbmRzIG9uIE1NVSAmJiAhWElQX0tFUk5FTAo+ICsJZGVwZW5kcyBvbiBNTVUKPiAgCXNl bGVjdCBFUlJBVEFfVEhFQUQKPiAgCXNlbGVjdCBTVU40SV9USU1FUgo+ICAJaGVscAo+IEBAIC03 OCw3ICs3OCw3IEBAIGNvbmZpZyBBUkNIX1RFTlNUT1JSRU5UCj4gIAo+ICBjb25maWcgQVJDSF9U SEVBRAo+ICAJYm9vbCAiVC1IRUFEIFJJU0MtViBTb0NzIgo+IC0JZGVwZW5kcyBvbiBNTVUgJiYg IVhJUF9LRVJORUwKPiArCWRlcGVuZHMgb24gTU1VCj4gIAlzZWxlY3QgRVJSQVRBX1RIRUFECj4g IAlzZWxlY3QgUE1fR0VORVJJQ19ET01BSU5TIGlmIFBNCj4gIAloZWxwCj4gZGlmZiAtLWdpdCBh L2FyY2gvcmlzY3YvTWFrZWZpbGUgYi9hcmNoL3Jpc2N2L01ha2VmaWxlCj4gaW5kZXggMzcxZGE3 NWE0N2Y5Li4yY2RhODdhNWFhZjEgMTAwNjQ0Cj4gLS0tIGEvYXJjaC9yaXNjdi9NYWtlZmlsZQo+ ICsrKyBiL2FyY2gvcmlzY3YvTWFrZWZpbGUKPiBAQCAtMTUwLDcgKzE1MCw2IEBAIGlmZGVmIENP TkZJR19SSVNDVl9NX01PREUKPiAgYm9vdC1pbWFnZS0kKENPTkZJR19TT0NfQ0FOQUFOX0syMTAp CTo9IGxvYWRlci5iaW4KPiAgZW5kaWYKPiAgYm9vdC1pbWFnZS0kKENPTkZJR19FRklfWkJPT1Qp CQk6PSB2bWxpbnV6LmVmaQo+IC1ib290LWltYWdlLSQoQ09ORklHX1hJUF9LRVJORUwpCQk6PSB4 aXBJbWFnZQo+ICBLQlVJTERfSU1BR0UJCQkJOj0gJChib290KS8kKGJvb3QtaW1hZ2UteSkKPiAg Cj4gIGxpYnMteSArPSBhcmNoL3Jpc2N2L2xpYi8KPiBAQCAtMjE4LDggKzIxNyw2IEBAIGRlZmlu ZSBhcmNoaGVscAo+ICAgIGVjaG8gICcgIEltYWdlLnh6CS0gQ29tcHJlc3NlZCBrZXJuZWwgaW1h Z2UgKGFyY2gvcmlzY3YvYm9vdC9JbWFnZS54eiknCj4gICAgZWNobyAgJyAgdm1saW51ei5lZmkJ LSBDb21wcmVzc2VkIEVGSSBrZXJuZWwgaW1hZ2UgKGFyY2gvcmlzY3YvYm9vdC92bWxpbnV6LmVm aSknCj4gICAgZWNobyAgJwkJICBEZWZhdWx0IHdoZW4gQ09ORklHX0VGSV9aQk9PVD15Jwo+IC0g IGVjaG8gICcgIHhpcEltYWdlCS0gRXhlY3V0ZS1pbi1wbGFjZSBrZXJuZWwgaW1hZ2UgKGFyY2gv cmlzY3YvYm9vdC94aXBJbWFnZSknCj4gLSAgZWNobyAgJwkJICBEZWZhdWx0IHdoZW4gQ09ORklH X1hJUF9LRVJORUw9eScKPiAgICBlY2hvICAnICBpbnN0YWxsCS0gSW5zdGFsbCBrZXJuZWwgdXNp bmcgKHlvdXIpIH4vYmluLyQoSU5TVEFMTEtFUk5FTCkgb3InCj4gICAgZWNobyAgJwkJICAoZGlz dHJpYnV0aW9uKSAvc2Jpbi8kKElOU1RBTExLRVJORUwpIG9yIGluc3RhbGwgdG8gJwo+ICAgIGVj aG8gICcJCSAgJCQoSU5TVEFMTF9QQVRIKScKPiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9ib290 L01ha2VmaWxlIGIvYXJjaC9yaXNjdi9ib290L01ha2VmaWxlCj4gaW5kZXggNTMwMWFkZjVmM2Y1 Li5mY2ZiZTNmODE0ZDYgMTAwNjQ0Cj4gLS0tIGEvYXJjaC9yaXNjdi9ib290L01ha2VmaWxlCj4g KysrIGIvYXJjaC9yaXNjdi9ib290L01ha2VmaWxlCj4gQEAgLTIwLDE3ICsyMCw2IEBAIE9CSkNP UFlGTEFHU194aXBJbWFnZSA6PS1PIGJpbmFyeSAtUiAubm90ZSAtUiAubm90ZS5nbnUuYnVpbGQt aWQgLVIgLmNvbW1lbnQgLVMKPiAgCj4gIHRhcmdldHMgOj0gSW1hZ2UgSW1hZ2UuKiBsb2FkZXIg bG9hZGVyLm8gbG9hZGVyLmxkcyBsb2FkZXIuYmluIHhpcEltYWdlCj4gIAo+IC1pZmVxICgkKENP TkZJR19YSVBfS0VSTkVMKSx5KQo+IC0KPiAtcXVpZXRfY21kX21reGlwID0gJChxdWlldF9jbWRf b2JqY29weSkKPiAtY21kX21reGlwID0gJChjbWRfb2JqY29weSkKPiAtCj4gLSQob2JqKS94aXBJ bWFnZTogdm1saW51eCBGT1JDRQo+IC0JJChjYWxsIGlmX2NoYW5nZWQsbWt4aXApCj4gLQlAJChr ZWNobykgJyAgUGh5c2ljYWwgQWRkcmVzcyBvZiB4aXBJbWFnZTogJChDT05GSUdfWElQX1BIWVNf QUREUiknCj4gLQo+IC1lbmRpZgo+IC0KPiAgJChvYmopL0ltYWdlOiB2bWxpbnV4IEZPUkNFCj4g IAkkKGNhbGwgaWZfY2hhbmdlZCxvYmpjb3B5KQo+ICAKPiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNj di9pbmNsdWRlL2FzbS9wYWdlLmggYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3BhZ2UuaAo+IGlu ZGV4IDNjNTE3YmM5ZWFjNS4uOWNjZDgwZDU3ZmZlIDEwMDY0NAo+IC0tLSBhL2FyY2gvcmlzY3Yv aW5jbHVkZS9hc20vcGFnZS5oCj4gKysrIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9wYWdlLmgK PiBAQCAtMjksMTEgKzI5LDcgQEAKPiAgI2RlZmluZSBQQUdFX09GRlNFVF9MNQkJX0FDKDB4ZmY2 MDAwMDAwMDAwMDAwMCwgVUwpCj4gICNkZWZpbmUgUEFHRV9PRkZTRVRfTDQJCV9BQygweGZmZmZh ZjgwMDAwMDAwMDAsIFVMKQo+ICAjZGVmaW5lIFBBR0VfT0ZGU0VUX0wzCQlfQUMoMHhmZmZmZmZk NjAwMDAwMDAwLCBVTCkKPiAtI2lmZGVmIENPTkZJR19YSVBfS0VSTkVMCj4gLSNkZWZpbmUgUEFH RV9PRkZTRVQJCVBBR0VfT0ZGU0VUX0wzCj4gLSNlbHNlCj4gICNkZWZpbmUgUEFHRV9PRkZTRVQJ CWtlcm5lbF9tYXAucGFnZV9vZmZzZXQKPiAtI2VuZGlmIC8qIENPTkZJR19YSVBfS0VSTkVMICov Cj4gICNlbHNlCj4gICNkZWZpbmUgUEFHRV9PRkZTRVQJCV9BQygweGMwMDAwMDAwLCBVTCkKPiAg I2VuZGlmIC8qIENPTkZJR182NEJJVCAqLwo+IEBAIC0xMDUsMTUgKzEwMSw4IEBAIHN0cnVjdCBr ZXJuZWxfbWFwcGluZyB7Cj4gIAkvKiBPZmZzZXQgYmV0d2VlbiBsaW5lYXIgbWFwcGluZyB2aXJ0 dWFsIGFkZHJlc3MgYW5kIGtlcm5lbCBsb2FkIGFkZHJlc3MgKi8KPiAgCXVuc2lnbmVkIGxvbmcg dmFfcGFfb2Zmc2V0Owo+ICAJLyogT2Zmc2V0IGJldHdlZW4ga2VybmVsIG1hcHBpbmcgdmlydHVh bCBhZGRyZXNzIGFuZCBrZXJuZWwgbG9hZCBhZGRyZXNzICovCj4gLSNpZmRlZiBDT05GSUdfWElQ X0tFUk5FTAo+IC0JdW5zaWduZWQgbG9uZyB2YV9rZXJuZWxfeGlwX3RleHRfcGFfb2Zmc2V0Owo+ IC0JdW5zaWduZWQgbG9uZyB2YV9rZXJuZWxfeGlwX2RhdGFfcGFfb2Zmc2V0Owo+IC0JdWludHB0 cl90IHhpcHJvbTsKPiAtCXVpbnRwdHJfdCB4aXByb21fc3o7Cj4gLSNlbHNlCj4gIAl1bnNpZ25l ZCBsb25nIHBhZ2Vfb2Zmc2V0Owo+ICAJdW5zaWduZWQgbG9uZyB2YV9rZXJuZWxfcGFfb2Zmc2V0 Owo+IC0jZW5kaWYKPiAgfTsKPiAgCj4gIGV4dGVybiBzdHJ1Y3Qga2VybmVsX21hcHBpbmcga2Vy bmVsX21hcDsKPiBAQCAtMTMyLDE2ICsxMjEsNyBAQCBleHRlcm4gdW5zaWduZWQgbG9uZyB2bWVt bWFwX3N0YXJ0X3BmbjsKPiAgdm9pZCAqbGluZWFyX21hcHBpbmdfcGFfdG9fdmEodW5zaWduZWQg bG9uZyB4KTsKPiAgI2VuZGlmCj4gIAo+IC0jaWZkZWYgQ09ORklHX1hJUF9LRVJORUwKPiAtI2Rl ZmluZSBrZXJuZWxfbWFwcGluZ19wYV90b192YSh5KQkoewkJCQkJXAo+IC0JdW5zaWduZWQgbG9u ZyBfeSA9ICh1bnNpZ25lZCBsb25nKSh5KTsJCQkJCVwKPiAtCShfeSA8IHBoeXNfcmFtX2Jhc2Up ID8JCQkJCQkJXAo+IC0JCSh2b2lkICopKF95ICsga2VybmVsX21hcC52YV9rZXJuZWxfeGlwX3Rl eHRfcGFfb2Zmc2V0KSA6CVwKPiAtCQkodm9pZCAqKShfeSArIGtlcm5lbF9tYXAudmFfa2VybmVs X3hpcF9kYXRhX3BhX29mZnNldCk7CQlcCj4gLQl9KQo+IC0jZWxzZQo+ICAjZGVmaW5lIGtlcm5l bF9tYXBwaW5nX3BhX3RvX3ZhKHkpICgodm9pZCAqKSgodW5zaWduZWQgbG9uZykoeSkgKyBrZXJu ZWxfbWFwLnZhX2tlcm5lbF9wYV9vZmZzZXQpKQo+IC0jZW5kaWYKPiAgCj4gICNkZWZpbmUgX19w YV90b192YV9ub2RlYnVnKHgpCQlsaW5lYXJfbWFwcGluZ19wYV90b192YSh4KQo+ICAKPiBAQCAt MTUxLDE2ICsxMzEsNyBAQCB2b2lkICpsaW5lYXJfbWFwcGluZ19wYV90b192YSh1bnNpZ25lZCBs b25nIHgpOwo+ICBwaHlzX2FkZHJfdCBsaW5lYXJfbWFwcGluZ192YV90b19wYSh1bnNpZ25lZCBs b25nIHgpOwo+ICAjZW5kaWYKPiAgCj4gLSNpZmRlZiBDT05GSUdfWElQX0tFUk5FTAo+IC0jZGVm aW5lIGtlcm5lbF9tYXBwaW5nX3ZhX3RvX3BhKHkpICh7CQkJCQkJXAo+IC0JdW5zaWduZWQgbG9u ZyBfeSA9ICh1bnNpZ25lZCBsb25nKSh5KTsJCQkJCVwKPiAtCShfeSA8IGtlcm5lbF9tYXAudmly dF9hZGRyICsga2VybmVsX21hcC54aXByb21fc3opID8JCQlcCj4gLQkJKF95IC0ga2VybmVsX21h cC52YV9rZXJuZWxfeGlwX3RleHRfcGFfb2Zmc2V0KSA6CQlcCj4gLQkJKF95IC0ga2VybmVsX21h cC52YV9rZXJuZWxfeGlwX2RhdGFfcGFfb2Zmc2V0KTsJCQlcCj4gLQl9KQo+IC0jZWxzZQo+ICAj ZGVmaW5lIGtlcm5lbF9tYXBwaW5nX3ZhX3RvX3BhKHkpICgodW5zaWduZWQgbG9uZykoeSkgLSBr ZXJuZWxfbWFwLnZhX2tlcm5lbF9wYV9vZmZzZXQpCj4gLSNlbmRpZgo+ICAKPiAgI2RlZmluZSBf X3ZhX3RvX3BhX25vZGVidWcoeCkJKHsJCQkJCQlcCj4gIAl1bnNpZ25lZCBsb25nIF94ID0geDsJ CQkJCQkJXAo+IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3BndGFibGUuaCBi L2FyY2gvcmlzY3YvaW5jbHVkZS9hc20vcGd0YWJsZS5oCj4gaW5kZXggMTM0MGFhMzk4YTc0Li5h MThjMGY2MmI0NTIgMTAwNjQ0Cj4gLS0tIGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9wZ3RhYmxl LmgKPiArKysgYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3BndGFibGUuaAo+IEBAIC0xMzQsMjEg KzEzNCw2IEBACj4gIAo+ICAjaW5jbHVkZSA8bGludXgvcGFnZV90YWJsZV9jaGVjay5oPgo+ICAK PiAtI2lmZGVmIENPTkZJR19YSVBfS0VSTkVMCj4gLSNkZWZpbmUgWElQX0ZJWFVQKGFkZHIpICh7 CQkJCQkJCVwKPiAtCWV4dGVybiBjaGFyIF9zZGF0YVtdLCBfc3RhcnRbXSwgX2VuZFtdOwkJCQkJ XAo+IC0JdWludHB0cl90IF9fcm9tX3N0YXJ0X2RhdGEgPSBDT05GSUdfWElQX1BIWVNfQUREUgkJ CVwKPiAtCQkJCSsgKHVpbnRwdHJfdCkmX3NkYXRhIC0gKHVpbnRwdHJfdCkmX3N0YXJ0OwlcCj4g LQl1aW50cHRyX3QgX19yb21fZW5kX2RhdGEgPSBDT05GSUdfWElQX1BIWVNfQUREUgkJCQlcCj4g LQkJCQkrICh1aW50cHRyX3QpJl9lbmQgLSAodWludHB0cl90KSZfc3RhcnQ7CVwKPiAtCXVpbnRw dHJfdCBfX2EgPSAodWludHB0cl90KShhZGRyKTsJCQkJCVwKPiAtCShfX2EgPj0gX19yb21fc3Rh cnRfZGF0YSAmJiBfX2EgPCBfX3JvbV9lbmRfZGF0YSkgPwkJCVwKPiAtCQlfX2EgLSBfX3JvbV9z dGFydF9kYXRhICsgQ09ORklHX1BIWVNfUkFNX0JBU0UgOglfX2E7CQlcCj4gLQl9KQo+IC0jZWxz ZQo+IC0jZGVmaW5lIFhJUF9GSVhVUChhZGRyKQkJKGFkZHIpCj4gLSNlbmRpZiAvKiBDT05GSUdf WElQX0tFUk5FTCAqLwo+IC0KPiAgc3RydWN0IHB0X2FsbG9jX29wcyB7Cj4gIAlwdGVfdCAqKCpn ZXRfcHRlX3ZpcnQpKHBoeXNfYWRkcl90IHBhKTsKPiAgCXBoeXNfYWRkcl90ICgqYWxsb2NfcHRl KSh1aW50cHRyX3QgdmEpOwo+IEBAIC0xMjcyLDEzICsxMjU3LDggQEAgc3RhdGljIGlubGluZSBw dGVfdCBwdGVfc3dwX2NsZWFyX2V4Y2x1c2l2ZShwdGVfdCBwdGUpCj4gIGV4dGVybiBjaGFyIF9z dGFydFtdOwo+ICBleHRlcm4gdm9pZCAqX2R0Yl9lYXJseV92YTsKPiAgZXh0ZXJuIHVpbnRwdHJf dCBfZHRiX2Vhcmx5X3BhOwo+IC0jaWYgZGVmaW5lZChDT05GSUdfWElQX0tFUk5FTCkgJiYgZGVm aW5lZChDT05GSUdfTU1VKQo+IC0jZGVmaW5lIGR0Yl9lYXJseV92YQkoKih2b2lkICoqKVhJUF9G SVhVUCgmX2R0Yl9lYXJseV92YSkpCj4gLSNkZWZpbmUgZHRiX2Vhcmx5X3BhCSgqKHVpbnRwdHJf dCAqKVhJUF9GSVhVUCgmX2R0Yl9lYXJseV9wYSkpCj4gLSNlbHNlCj4gICNkZWZpbmUgZHRiX2Vh cmx5X3ZhCV9kdGJfZWFybHlfdmEKPiAgI2RlZmluZSBkdGJfZWFybHlfcGEJX2R0Yl9lYXJseV9w YQo+IC0jZW5kaWYgLyogQ09ORklHX1hJUF9LRVJORUwgKi8KPiAgZXh0ZXJuIHU2NCBzYXRwX21v ZGU7Cj4gIAo+ICB2b2lkIHBhZ2luZ19pbml0KHZvaWQpOwo+IGRpZmYgLS1naXQgYS9hcmNoL3Jp c2N2L2luY2x1ZGUvYXNtL3Njcy5oIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9zY3MuaAo+IGlu ZGV4IGFiNzcxNGFhOTNiZC4uMDIzYTQxMmZlMzhkIDEwMDY0NAo+IC0tLSBhL2FyY2gvcmlzY3Yv aW5jbHVkZS9hc20vc2NzLmgKPiArKysgYi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3Njcy5oCj4g QEAgLTEwLDcgKzEwLDYgQEAKPiAgLyogTG9hZCBpbml0X3NoYWRvd19jYWxsX3N0YWNrIHRvIGdw LiAqLwo+ICAubWFjcm8gc2NzX2xvYWRfaW5pdF9zdGFjawo+ICAJbGEJZ3AsIGluaXRfc2hhZG93 X2NhbGxfc3RhY2sKPiAtCVhJUF9GSVhVUF9PRkZTRVQgZ3AKPiAgLmVuZG0KPiAgCj4gIC8qIExv YWQgdGhlIHBlci1DUFUgSVJRIHNoYWRvdyBjYWxsIHN0YWNrIHRvIGdwLiAqLwo+IGRpZmYgLS1n aXQgYS9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3NldF9tZW1vcnkuaCBiL2FyY2gvcmlzY3YvaW5j bHVkZS9hc20vc2V0X21lbW9yeS5oCj4gaW5kZXggODczODllOTMzMjVhLi5lZjU5ZTE3MTZhMmMg MTAwNjQ0Cj4gLS0tIGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS9zZXRfbWVtb3J5LmgKPiArKysg Yi9hcmNoL3Jpc2N2L2luY2x1ZGUvYXNtL3NldF9tZW1vcnkuaAo+IEBAIC00Nyw3ICs0Nyw3IEBA IGJvb2wga2VybmVsX3BhZ2VfcHJlc2VudChzdHJ1Y3QgcGFnZSAqcGFnZSk7Cj4gIAo+ICAjZW5k aWYgLyogX19BU1NFTUJMRVJfXyAqLwo+ICAKPiAtI2lmIGRlZmluZWQoQ09ORklHX1NUUklDVF9L RVJORUxfUldYKSB8fCBkZWZpbmVkKENPTkZJR19YSVBfS0VSTkVMKQo+ICsjaWYgZGVmaW5lZChD T05GSUdfU1RSSUNUX0tFUk5FTF9SV1gpCj4gICNpZmRlZiBDT05GSUdfNjRCSVQKPiAgI2RlZmlu ZSBTRUNUSU9OX0FMSUdOICgxIDw8IDIxKQo+ICAjZWxzZQo+IGRpZmYgLS1naXQgYS9hcmNoL3Jp c2N2L2luY2x1ZGUvYXNtL3hpcF9maXh1cC5oIGIvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS94aXBf Zml4dXAuaAo+IGRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAo+IGluZGV4IGYzZDU2Mjk5YmMyMi4u MDAwMDAwMDAwMDAwCj4gLS0tIGEvYXJjaC9yaXNjdi9pbmNsdWRlL2FzbS94aXBfZml4dXAuaAo+ ICsrKyAvZGV2L251bGwKPiBAQCAtMSw0OSArMCwwIEBACj4gLS8qIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBHUEwtMi4wLW9ubHkgKi8KPiAtLyoKPiAtICogWElQIGZpeHVwIG1hY3Jvcywgb25s eSB1c2VmdWwgaW4gYXNzZW1ibHkuCj4gLSAqLwo+IC0jaWZuZGVmIF9BU01fUklTQ1ZfWElQX0ZJ WFVQX0gKPiAtI2RlZmluZSBfQVNNX1JJU0NWX1hJUF9GSVhVUF9ICj4gLQo+IC0jaW5jbHVkZSA8 bGludXgvcGd0YWJsZS5oPgo+IC0KPiAtI2lmZGVmIENPTkZJR19YSVBfS0VSTkVMCj4gLS5tYWNy byBYSVBfRklYVVBfT0ZGU0VUIHJlZwo+IC0JLyogRml4LXVwIGFkZHJlc3MgaW4gRmxhc2ggaW50 byBhZGRyZXNzIGluIFJBTSBlYXJseSBkdXJpbmcgYm9vdCBiZWZvcmUKPiAtCSAqIE1NVSBpcyB1 cC4gQmVjYXVzZSBnZW5lcmF0ZWQgY29kZSAidGhpbmtzIiBkYXRhIGlzIGluIEZsYXNoLCBidXQg aXQKPiAtCSAqIGlzIGFjdHVhbGx5IGluIFJBTSAoYWN0dWFsbHkgZGF0YSBpcyBhbHNvIGluIEZs YXNoLCBidXQgRmxhc2ggaXMKPiAtCSAqIHJlYWQtb25seSwgdGh1cyB3ZSBuZWVkIHRvIHVzZSB0 aGUgZGF0YSByZXNpZGluZyBpbiBSQU0pLgo+IC0JICoKPiAtCSAqIFRoZSBzdGFydCBvZiBkYXRh IGluIEZsYXNoIGlzIF9zZGF0YSBhbmQgdGhlIHN0YXJ0IG9mIGRhdGEgaW4gUkFNIGlzCj4gLQkg KiBDT05GSUdfUEhZU19SQU1fQkFTRS4gU28gdGhpcyBmaXgtdXAgZXNzZW50aWFsbHkgZG9lcyB0 aGlzOgo+IC0JICogcmVnICs9IENPTkZJR19QSFlTX1JBTV9CQVNFIC0gX3N0YXJ0Cj4gLQkgKi8K PiAtCWxpIHQwLCBDT05GSUdfUEhZU19SQU1fQkFTRQo+IC0gICAgICAgIGFkZCBccmVnLCBccmVn LCB0MAo+IC0JbGEgdDAsIF9zZGF0YQo+IC0Jc3ViIFxyZWcsIFxyZWcsIHQwCj4gLS5lbmRtCj4g LS5tYWNybyBYSVBfRklYVVBfRkxBU0hfT0ZGU0VUIHJlZwo+IC0JLyogSW4gbGlua2VyIHNjcmlw dCwgYXQgdGhlIHRyYW5zaXRpb24gZnJvbSByZWFkLW9ubHkgc2VjdGlvbiB0bwo+IC0JICogd3Jp dGFibGUgc2VjdGlvbiwgdGhlIFZNQSBpcyBpbmNyZWFzZWQgd2hpbGUgTE1BIHJlbWFpbnMgdGhl IHNhbWUuCj4gLQkgKiAoU2VlIGluIGxpbmtlciBzY3JpcHQgaG93IF9zZGF0YSwgX19kYXRhX2xv YyBhbmQgTE9BRF9PRkZTRVQgaXMKPiAtCSAqIGNoYW5nZWQpCj4gLQkgKgo+IC0JICogQ29uc2Vx dWVudGx5LCBlYXJseSBkdXJpbmcgYm9vdCBiZWZvcmUgTU1VIGlzIHVwLCB0aGUgZ2VuZXJhdGVk IGNvZGUKPiAtCSAqIHJlYWRzIHRoZSAid3JpdGFibGUiIHNlY3Rpb24gYXQgd3JvbmcgYWRkcmVz c2VzLCBiZWNhdXNlIFZNQSBpcyB1c2VkCj4gLQkgKiBieSBjb21waWxlciB0byBnZW5lcmF0ZSBj b2RlLCBidXQgdGhlIGRhdGEgaXMgbG9jYXRlZCBpbiBGbGFzaCB1c2luZwo+IC0JICogTE1BLgo+ IC0JICovCj4gLQlsYSB0MCwgX3NkYXRhCj4gLQlzdWIgXHJlZywgXHJlZywgdDAKPiAtCWxhIHQw LCBfX2RhdGFfbG9jCj4gLQlhZGQgXHJlZywgXHJlZywgdDAKPiAtLmVuZG0KPiAtI2Vsc2UKPiAt Lm1hY3JvIFhJUF9GSVhVUF9PRkZTRVQgcmVnCj4gLS5lbmRtCj4gLS5tYWNybyBYSVBfRklYVVBf RkxBU0hfT0ZGU0VUIHJlZwo+IC0uZW5kbQo+IC0jZW5kaWYgLyogQ09ORklHX1hJUF9LRVJORUwg Ki8KPiAtCj4gLSNlbmRpZgo+IGRpZmYgLS1naXQgYS9hcmNoL3Jpc2N2L2tlcm5lbC9oZWFkLlMg Yi9hcmNoL3Jpc2N2L2tlcm5lbC9oZWFkLlMKPiBpbmRleCA5Yzk5YzVhZDZmZTguLjY1MDM5OTA0 NDM2OCAxMDA2NDQKPiAtLS0gYS9hcmNoL3Jpc2N2L2tlcm5lbC9oZWFkLlMKPiArKysgYi9hcmNo L3Jpc2N2L2tlcm5lbC9oZWFkLlMKPiBAQCAtMTQsNyArMTQsNiBAQAo+ICAjaW5jbHVkZSA8YXNt L2h3Y2FwLmg+Cj4gICNpbmNsdWRlIDxhc20vaW1hZ2UuaD4KPiAgI2luY2x1ZGUgPGFzbS9zY3Mu aD4KPiAtI2luY2x1ZGUgPGFzbS94aXBfZml4dXAuaD4KPiAgI2luY2x1ZGUgPGFzbS91c2VyY2Zp Lmg+Cj4gICNpbmNsdWRlICJlZmktaGVhZGVyLlMiCj4gIAo+IEBAIC03NSw3ICs3NCw2IEBAIHBl X2hlYWRfc3RhcnQ6Cj4gIHJlbG9jYXRlX2VuYWJsZV9tbXU6Cj4gIAkvKiBSZWxvY2F0ZSByZXR1 cm4gYWRkcmVzcyAqLwo+ICAJbGEgYTEsIGtlcm5lbF9tYXAKPiAtCVhJUF9GSVhVUF9PRkZTRVQg YTEKPiAgCVJFR19MIGExLCBLRVJORUxfTUFQX1ZJUlRfQUREUihhMSkKPiAgCWxhIGEyLCBfc3Rh cnQKPiAgCXN1YiBhMSwgYTEsIGEyCj4gQEAgLTg5LDcgKzg3LDYgQEAgcmVsb2NhdGVfZW5hYmxl X21tdToKPiAgCS8qIENvbXB1dGUgc2F0cCBmb3Iga2VybmVsIHBhZ2UgdGFibGVzLCBidXQgZG9u J3QgbG9hZCBpdCB5ZXQgKi8KPiAgCXNybCBhMiwgYTAsIFBBR0VfU0hJRlQKPiAgCWxhIGExLCBz YXRwX21vZGUKPiAtCVhJUF9GSVhVUF9PRkZTRVQgYTEKPiAgCVJFR19MIGExLCAwKGExKQo+ICAJ b3IgYTIsIGEyLCBhMQo+ICAKPiBAQCAtMTAwLDcgKzk3LDYgQEAgcmVsb2NhdGVfZW5hYmxlX21t dToKPiAgCSAqIHRvIGVuc3VyZSB0aGUgbmV3IHRyYW5zbGF0aW9ucyBhcmUgaW4gdXNlLgo+ICAJ ICovCj4gIAlsYSBhMCwgdHJhbXBvbGluZV9wZ19kaXIKPiAtCVhJUF9GSVhVUF9PRkZTRVQgYTAK PiAgCXNybCBhMCwgYTAsIFBBR0VfU0hJRlQKPiAgCW9yIGEwLCBhMCwgYTEKPiAgCXNmZW5jZS52 bWEKPiBAQCAtMTU0LDExICsxNTAsOSBAQCBzZWNvbmRhcnlfc3RhcnRfc2JpOgo+ICAKPiAgCS8q IGEwIGNvbnRhaW5zIHRoZSBoYXJ0aWQgJiBhMSBjb250YWlucyBib290IGRhdGEgKi8KPiAgCWxp IGEyLCBTQklfSEFSVF9CT09UX1RBU0tfUFRSX09GRlNFVAo+IC0JWElQX0ZJWFVQX09GRlNFVCBh Mgo+ICAJYWRkIGEyLCBhMiwgYTEKPiAgCVJFR19MIHRwLCAoYTIpCj4gIAlsaSBhMywgU0JJX0hB UlRfQk9PVF9TVEFDS19QVFJfT0ZGU0VUCj4gLQlYSVBfRklYVVBfT0ZGU0VUIGEzCj4gIAlhZGQg YTMsIGEzLCBhMQo+ICAJUkVHX0wgc3AsIChhMykKPiAgCj4gQEAgLTE2Nyw3ICsxNjEsNiBAQCBz ZWNvbmRhcnlfc3RhcnRfc2JpOgo+ICAjaWZkZWYgQ09ORklHX01NVQo+ICAJLyogRW5hYmxlIHZp cnR1YWwgbWVtb3J5IGFuZCByZWxvY2F0ZSB0byB2aXJ0dWFsIGFkZHJlc3MgKi8KPiAgCWxhIGEw LCBzd2FwcGVyX3BnX2Rpcgo+IC0JWElQX0ZJWFVQX09GRlNFVCBhMAo+ICAJY2FsbCByZWxvY2F0 ZV9lbmFibGVfbW11Cj4gICNlbmRpZgo+ICAJY2FsbCAuTHNldHVwX3RyYXBfdmVjdG9yCj4gQEAg LTI2OSw0MCArMjYyLDEzIEBAIFNZTV9DT0RFX1NUQVJUKF9zdGFydF9rZXJuZWwpCj4gIC5MZ29v ZF9jb3JlczoKPiAgCj4gIAkvKiBUaGUgbG90dGVyeSBzeXN0ZW0gaXMgb25seSByZXF1aXJlZCBm b3Igc3BpbndhaXQgYm9vdGluZyBtZXRob2QgKi8KPiAtI2lmbmRlZiBDT05GSUdfWElQX0tFUk5F TAo+ICAJLyogUGljayBvbmUgaGFydCB0byBydW4gdGhlIG1haW4gYm9vdCBzZXF1ZW5jZSAqLwo+ ICAJbGEgYTMsIGhhcnRfbG90dGVyeQo+ICAJbGkgYTIsIDEKPiAgCWFtb2FkZC53IGEzLCBhMiwg KGEzKQo+ICAJYm5leiBhMywgLkxzZWNvbmRhcnlfc3RhcnQKPiAtCj4gLSNlbHNlCj4gLQkvKiBo YXJ0X2xvdHRlcnkgaW4gZmxhc2ggY29udGFpbnMgYSBtYWdpYyBudW1iZXIgKi8KPiAtCWxhIGEz LCBoYXJ0X2xvdHRlcnkKPiAtCW12IGEyLCBhMwo+IC0JWElQX0ZJWFVQX09GRlNFVCBhMgo+IC0J WElQX0ZJWFVQX0ZMQVNIX09GRlNFVCBhMwo+IC0JbHcgdDEsIChhMykKPiAtCWFtb3N3YXAudyB0 MCwgdDEsIChhMikKPiAtCS8qIGZpcnN0IHRpbWUgaGVyZSBpZiBoYXJ0X2xvdHRlcnkgaW4gUkFN IGlzIG5vdCBzZXQgKi8KPiAtCWJlcSB0MCwgdDEsIC5Mc2Vjb25kYXJ5X3N0YXJ0Cj4gLQo+IC0j ZW5kaWYgLyogQ09ORklHX1hJUCAqLwo+ICAjZW5kaWYgLyogQ09ORklHX1JJU0NWX0JPT1RfU1BJ TldBSVQgKi8KPiAgCj4gLSNpZmRlZiBDT05GSUdfWElQX0tFUk5FTAo+IC0JbGEgc3AsIF9lbmQg KyBUSFJFQURfU0laRQo+IC0JWElQX0ZJWFVQX09GRlNFVCBzcAo+IC0JbXYgczAsIGEwCj4gLQlt diBzMSwgYTEKPiAtCWNhbGwgX19jb3B5X2RhdGEKPiAtCj4gLQkvKiBSZXN0b3JlIGEwICYgYTEg Y29weSAqLwo+IC0JbXYgYTAsIHMwCj4gLQltdiBhMSwgczEKPiAtI2VuZGlmCj4gLQo+IC0jaWZu ZGVmIENPTkZJR19YSVBfS0VSTkVMCj4gIAkvKiBDbGVhciBCU1MgZm9yIGZsYXQgbm9uLUVMRiBp bWFnZXMgKi8KPiAgCWxhIGEzLCBfX2Jzc19zdGFydAo+ICAJbGEgYTQsIF9fYnNzX3N0b3AKPiBA QCAtMzEyLDIwICsyNzgsMTYgQEAgU1lNX0NPREVfU1RBUlQoX3N0YXJ0X2tlcm5lbCkKPiAgCWFk ZCBhMywgYTMsIFJJU0NWX1NaUFRSCj4gIAlibHQgYTMsIGE0LCAuTGNsZWFyX2Jzcwo+ICAuTGNs ZWFyX2Jzc19kb25lOgo+IC0jZW5kaWYKPiAgCWxhIGEyLCBib290X2NwdV9oYXJ0aWQKPiAtCVhJ UF9GSVhVUF9PRkZTRVQgYTIKPiAgCVJFR19TIGEwLCAoYTIpCj4gIAo+ICAJLyogSW5pdGlhbGl6 ZSBwYWdlIHRhYmxlcyBhbmQgcmVsb2NhdGUgdG8gdmlydHVhbCBhZGRyZXNzZXMgKi8KPiAgCWxh IHRwLCBpbml0X3Rhc2sKPiAgCWxhIHNwLCBpbml0X3RocmVhZF91bmlvbiArIFRIUkVBRF9TSVpF Cj4gLQlYSVBfRklYVVBfT0ZGU0VUIHNwCj4gIAlhZGRpIHNwLCBzcCwgLVBUX1NJWkVfT05fU1RB Q0sKPiAgCXNjc19sb2FkX2luaXRfc3RhY2sKPiAgI2lmZGVmIENPTkZJR19CVUlMVElOX0RUQgo+ ICAJbGEgYTAsIF9fZHRiX3N0YXJ0Cj4gLQlYSVBfRklYVVBfT0ZGU0VUIGEwCj4gICNlbHNlCj4g IAltdiBhMCwgYTEKPiAgI2VuZGlmIC8qIENPTkZJR19CVUlMVElOX0RUQiAqLwo+IEBAIC0zMzUs NyArMjk3LDYgQEAgU1lNX0NPREVfU1RBUlQoX3N0YXJ0X2tlcm5lbCkKPiAgCWNhbGwgc2V0dXBf dm0KPiAgI2lmZGVmIENPTkZJR19NTVUKPiAgCWxhIGEwLCBlYXJseV9wZ19kaXIKPiAtCVhJUF9G SVhVUF9PRkZTRVQgYTAKPiAgCWNhbGwgcmVsb2NhdGVfZW5hYmxlX21tdQo+ICAjZW5kaWYgLyog Q09ORklHX01NVSAqLwo+ICAKPiBAQCAtMzc0LDkgKzMzNSw3IEBAIFNZTV9DT0RFX1NUQVJUKF9z dGFydF9rZXJuZWwpCj4gIAo+ICAJc2xsaSBhMywgYTAsIExHUkVHCj4gIAlsYSBhMSwgX19jcHVf c3BpbndhaXRfc3RhY2tfcG9pbnRlcgo+IC0JWElQX0ZJWFVQX09GRlNFVCBhMQo+ICAJbGEgYTIs IF9fY3B1X3NwaW53YWl0X3Rhc2tfcG9pbnRlcgo+IC0JWElQX0ZJWFVQX09GRlNFVCBhMgo+ICAJ YWRkIGExLCBhMywgYTEKPiAgCWFkZCBhMiwgYTMsIGEyCj4gIAo+IGRpZmYgLS1naXQgYS9hcmNo L3Jpc2N2L2tlcm5lbC9oZWFkLmggYi9hcmNoL3Jpc2N2L2tlcm5lbC9oZWFkLmgKPiBpbmRleCBh NTU2ZmRhYWZlZDkuLjA1YTA0YmVmNDQyYiAxMDA2NDQKPiAtLS0gYS9hcmNoL3Jpc2N2L2tlcm5l bC9oZWFkLmgKPiArKysgYi9hcmNoL3Jpc2N2L2tlcm5lbC9oZWFkLmgKPiBAQCAtMTEsOSArMTEs NiBAQAo+ICBleHRlcm4gYXRvbWljX3QgaGFydF9sb3R0ZXJ5Owo+ICAKPiAgYXNtbGlua2FnZSB2 b2lkIF9faW5pdCBzZXR1cF92bSh1aW50cHRyX3QgZHRiX3BhKTsKPiAtI2lmZGVmIENPTkZJR19Y SVBfS0VSTkVMCj4gLWFzbWxpbmthZ2Ugdm9pZCBfX2luaXQgX19jb3B5X2RhdGEodm9pZCk7Cj4g LSNlbmRpZgo+ICAKPiAgI2lmZGVmIENPTkZJR19SSVNDVl9CT09UX1NQSU5XQUlUCj4gIGV4dGVy biB2b2lkICpfX2NwdV9zcGlud2FpdF9zdGFja19wb2ludGVyW107Cj4gZGlmZiAtLWdpdCBhL2Fy Y2gvcmlzY3Yva2VybmVsL3NldHVwLmMgYi9hcmNoL3Jpc2N2L2tlcm5lbC9zZXR1cC5jCj4gaW5k ZXggYjViYzVmYzY1Y2VhLi5jODljYzI3MjQ0MGIgMTAwNjQ0Cj4gLS0tIGEvYXJjaC9yaXNjdi9r ZXJuZWwvc2V0dXAuYwo+ICsrKyBiL2FyY2gvcmlzY3Yva2VybmVsL3NldHVwLmMKPiBAQCAtNDYs MTEgKzQ2LDcgQEAKPiAgICogVGhpcyBpcyB1c2VkIGJlZm9yZSB0aGUga2VybmVsIGluaXRpYWxp emVzIHRoZSBCU1Mgc28gaXQgY2FuJ3QgYmUgaW4gdGhlCj4gICAqIEJTUy4KPiAgICovCj4gLWF0 b21pY190IGhhcnRfbG90dGVyeSBfX3NlY3Rpb24oIi5zZGF0YSIpCj4gLSNpZmRlZiBDT05GSUdf WElQX0tFUk5FTAo+IC09IEFUT01JQ19JTklUKDB4QzAwMUJFRUYpCj4gLSNlbmRpZgo+IC07Cj4g K2F0b21pY190IGhhcnRfbG90dGVyeSBfX3NlY3Rpb24oIi5zZGF0YSIpOwo+ICB1bnNpZ25lZCBs b25nIGJvb3RfY3B1X2hhcnRpZDsKPiAgRVhQT1JUX1NZTUJPTF9HUEwoYm9vdF9jcHVfaGFydGlk KTsKPiAgCj4gZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva2VybmVsL3N1c3BlbmRfZW50cnkuUyBi L2FyY2gvcmlzY3Yva2VybmVsL3N1c3BlbmRfZW50cnkuUwo+IGluZGV4IDJkNTRmMzA5YzE0MC4u ZDcxYjU1ZmQ2MjU5IDEwMDY0NAo+IC0tLSBhL2FyY2gvcmlzY3Yva2VybmVsL3N1c3BlbmRfZW50 cnkuUwo+ICsrKyBiL2FyY2gvcmlzY3Yva2VybmVsL3N1c3BlbmRfZW50cnkuUwo+IEBAIC0xMCw3 ICsxMCw2IEBACj4gICNpbmNsdWRlIDxhc20vYXNtLW9mZnNldHMuaD4KPiAgI2luY2x1ZGUgPGFz bS9hc3NlbWJsZXIuaD4KPiAgI2luY2x1ZGUgPGFzbS9jc3IuaD4KPiAtI2luY2x1ZGUgPGFzbS94 aXBfZml4dXAuaD4KPiAgCj4gIAkudGV4dAo+ICAJLmFsdG1hY3JvCj4gQEAgLTcwLDcgKzY5LDYg QEAgU1lNX1RZUEVEX0ZVTkNfU1RBUlQoX19jcHVfcmVzdW1lX2VudGVyKQo+ICAKPiAgCS8qIEVu YWJsZSBNTVUgKi8KPiAgCWxhCWEwLCBzd2FwcGVyX3BnX2Rpcgo+IC0JWElQX0ZJWFVQX09GRlNF VCBhMAo+ICAJY2FsbAlyZWxvY2F0ZV9lbmFibGVfbW11Cj4gIAo+ICAJLyogUmVzdG9yZSBBMCBh bmQgQTEgKi8KPiBkaWZmIC0tZ2l0IGEvYXJjaC9yaXNjdi9rZXJuZWwvdHJhcHMuYyBiL2FyY2gv cmlzY3Yva2VybmVsL3RyYXBzLmMKPiBpbmRleCA1ZmI1N2ZhZDE4OGEuLmJkZWM1NGQxMmIyYSAx MDA2NDQKPiAtLS0gYS9hcmNoL3Jpc2N2L2tlcm5lbC90cmFwcy5jCj4gKysrIGIvYXJjaC9yaXNj di9rZXJuZWwvdHJhcHMuYwo+IEBAIC0xNDIsMTEgKzE0Miw3IEBAIHN0YXRpYyB2b2lkIGRvX3Ry YXBfZXJyb3Ioc3RydWN0IHB0X3JlZ3MgKnJlZ3MsIGludCBzaWdubywgaW50IGNvZGUsCj4gIAl9 Cj4gIH0KPiAgCj4gLSNpZiBkZWZpbmVkKENPTkZJR19YSVBfS0VSTkVMKSAmJiBkZWZpbmVkKENP TkZJR19SSVNDVl9BTFRFUk5BVElWRSkKPiAtI2RlZmluZSBfX3RyYXBfc2VjdGlvbiBfX25vaW5z dHJfc2VjdGlvbigiLnhpcC50cmFwcyIpCj4gLSNlbHNlCj4gICNkZWZpbmUgX190cmFwX3NlY3Rp b24gbm9pbnN0cgo+IC0jZW5kaWYKPiAgI2RlZmluZSBET19FUlJPUl9JTkZPKG5hbWUsIHNpZ25v LCBjb2RlLCBzdHIpCQkJCQlcCj4gIGFzbWxpbmthZ2UgX192aXNpYmxlIF9fdHJhcF9zZWN0aW9u IHZvaWQgbmFtZShzdHJ1Y3QgcHRfcmVncyAqcmVncykJCVwKPiAgewkJCQkJCQkJCQlcCj4gZGlm ZiAtLWdpdCBhL2FyY2gvcmlzY3Yva2VybmVsL3ZtY29yZV9pbmZvLmMgYi9hcmNoL3Jpc2N2L2tl cm5lbC92bWNvcmVfaW5mby5jCj4gaW5kZXggZDVlNDQ4YWE5MGU3Li42ZDdhMjI1MjJkNjMgMTAw NjQ0Cj4gLS0tIGEvYXJjaC9yaXNjdi9rZXJuZWwvdm1jb3JlX2luZm8uYwo+ICsrKyBiL2FyY2gv cmlzY3Yva2VybmVsL3ZtY29yZV9pbmZvLmMKPiBAQCAtMTksMTMgKzE5LDYgQEAgdm9pZCBhcmNo X2NyYXNoX3NhdmVfdm1jb3JlaW5mbyh2b2lkKQo+ICAjZW5kaWYKPiAgI2VuZGlmCj4gIAl2bWNv cmVpbmZvX2FwcGVuZF9zdHIoIk5VTUJFUihLRVJORUxfTElOS19BRERSKT0weCVseFxuIiwgS0VS TkVMX0xJTktfQUREUik7Cj4gLSNpZmRlZiBDT05GSUdfWElQX0tFUk5FTAo+IC0JLyogVE9ETzog Q29tbXVuaWNhdGUgd2l0aCBjcmFzaC11dGlsaXR5IGRldmVsb3BlcnMgb24gdGhlIGluZm9ybWF0 aW9uIHRvCj4gLQkgKiBleHBvcnQuIFRoZSBYSVAgY2FzZSBpcyBtb3JlIGNvbXBsaWNhdGVkLCBi ZWNhdXNlIHRoZSB2aXJ0dWFsLXBoeXNpY2FsCj4gLQkgKiBhZGRyZXNzIG9mZnNldCBkZXBlbmRz IG9uIHdoZXRoZXIgdGhlIGFkZHJlc3MgaXMgaW4gUk9NIG9yIGluIFJBTS4KPiAtCSAqLwo+IC0j ZWxzZQo+ICAJdm1jb3JlaW5mb19hcHBlbmRfc3RyKCJOVU1CRVIodmFfa2VybmVsX3BhX29mZnNl dCk9MHglbHhcbiIsCj4gIAkJCQkJCWtlcm5lbF9tYXAudmFfa2VybmVsX3BhX29mZnNldCk7Cj4g LSNlbmRpZgo+ICB9Cj4gZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3Yva2VybmVsL3ZtbGludXgubGRz LlMgYi9hcmNoL3Jpc2N2L2tlcm5lbC92bWxpbnV4Lmxkcy5TCj4gaW5kZXggNjFiZDViYTY2ODBh Li4zYjVmZmNmMzIxNmQgMTAwNjQ0Cj4gLS0tIGEvYXJjaC9yaXNjdi9rZXJuZWwvdm1saW51eC5s ZHMuUwo+ICsrKyBiL2FyY2gvcmlzY3Yva2VybmVsL3ZtbGludXgubGRzLlMKPiBAQCAtNywxMCAr Nyw2IEBACj4gICNkZWZpbmUgUk9fRVhDRVBUSU9OX1RBQkxFX0FMSUdOCTQKPiAgI2RlZmluZSBS VU5USU1FX0RJU0NBUkRfRVhJVAo+ICAKPiAtI2lmZGVmIENPTkZJR19YSVBfS0VSTkVMCj4gLSNp bmNsdWRlICJ2bWxpbnV4LXhpcC5sZHMuUyIKPiAtI2Vsc2UKPiAtCj4gICNpbmNsdWRlIDxhc20v cGd0YWJsZS5oPgo+ICAjZGVmaW5lIExPQURfT0ZGU0VUIEtFUk5FTF9MSU5LX0FERFIKPiAgCj4g QEAgLTE3NSw0ICsxNzEsMyBAQCBTRUNUSU9OUwo+ICAKPiAgCURJU0NBUkRTCj4gIH0KPiAtI2Vu ZGlmIC8qIENPTkZJR19YSVBfS0VSTkVMICovCj4gZGlmZiAtLWdpdCBhL2FyY2gvcmlzY3YvbW0v aW5pdC5jIGIvYXJjaC9yaXNjdi9tbS9pbml0LmMKPiBpbmRleCAyNWE4ZjY5M2E3NjUuLmM3ZWM2 YzAyMzVlMSAxMDA2NDQKPiAtLS0gYS9hcmNoL3Jpc2N2L21tL2luaXQuYwo+ICsrKyBiL2FyY2gv cmlzY3YvbW0vaW5pdC5jCj4gQEAgLTQxLDIwICs0MSwxNyBAQCB1NjQgbmV3X3ZtYWxsb2NbTlJf Q1BVUyAvIHNpemVvZih1NjQpICsgMV07Cj4gIAo+ICBzdHJ1Y3Qga2VybmVsX21hcHBpbmcga2Vy bmVsX21hcCBfX3JvX2FmdGVyX2luaXQ7Cj4gIEVYUE9SVF9TWU1CT0woa2VybmVsX21hcCk7Cj4g LSNpZmRlZiBDT05GSUdfWElQX0tFUk5FTAo+IC0jZGVmaW5lIGtlcm5lbF9tYXAJKCooc3RydWN0 IGtlcm5lbF9tYXBwaW5nICopWElQX0ZJWFVQKCZrZXJuZWxfbWFwKSkKPiAtI2VuZGlmCj4gIAo+ ICAjaWZkZWYgQ09ORklHXzY0QklUCj4gLXU2NCBzYXRwX21vZGUgX19yb19hZnRlcl9pbml0ID0g IUlTX0VOQUJMRUQoQ09ORklHX1hJUF9LRVJORUwpID8gU0FUUF9NT0RFXzU3IDogU0FUUF9NT0RF XzM5Owo+ICt1NjQgc2F0cF9tb2RlIF9fcm9fYWZ0ZXJfaW5pdCA9IFNBVFBfTU9ERV81NzsKPiAg I2Vsc2UKPiAgdTY0IHNhdHBfbW9kZSBfX3JvX2FmdGVyX2luaXQgPSBTQVRQX01PREVfMzI7Cj4g ICNlbmRpZgo+ICBFWFBPUlRfU1lNQk9MKHNhdHBfbW9kZSk7Cj4gIAo+ICAjaWZkZWYgQ09ORklH XzY0QklUCj4gLWJvb2wgcGd0YWJsZV9sNF9lbmFibGVkIF9fcm9fYWZ0ZXJfaW5pdCA9ICFJU19F TkFCTEVEKENPTkZJR19YSVBfS0VSTkVMKTsKPiAtYm9vbCBwZ3RhYmxlX2w1X2VuYWJsZWQgX19y b19hZnRlcl9pbml0ID0gIUlTX0VOQUJMRUQoQ09ORklHX1hJUF9LRVJORUwpOwo+ICtib29sIHBn dGFibGVfbDRfZW5hYmxlZCBfX3JvX2FmdGVyX2luaXQgPSB0cnVlOwo+ICtib29sIHBndGFibGVf bDVfZW5hYmxlZCBfX3JvX2FmdGVyX2luaXQgPSB0cnVlOwo+ICBFWFBPUlRfU1lNQk9MKHBndGFi bGVfbDRfZW5hYmxlZCk7Cj4gIEVYUE9SVF9TWU1CT0wocGd0YWJsZV9sNV9lbmFibGVkKTsKPiAg I2VuZGlmCj4gQEAgLTE5Nyw5ICsxOTQsNiBAQCB2b2lkIF9faW5pdCBhcmNoX21tX3ByZWluaXQo dm9pZCkKPiAgCj4gIC8qIExpbWl0IHRoZSBtZW1vcnkgc2l6ZSB2aWEgbWVtLiAqLwo+ICBzdGF0 aWMgcGh5c19hZGRyX3QgbWVtb3J5X2xpbWl0Owo+IC0jaWZkZWYgQ09ORklHX1hJUF9LRVJORUwK PiAtI2RlZmluZSBtZW1vcnlfbGltaXQJKCoocGh5c19hZGRyX3QgKilYSVBfRklYVVAoJm1lbW9y eV9saW1pdCkpCj4gLSNlbmRpZiAvKiBDT05GSUdfWElQX0tFUk5FTCAqLwo+ICAKPiAgc3RhdGlj IGludCBfX2luaXQgZWFybHlfbWVtKGNoYXIgKnApCj4gIHsKPiBAQCAtMjIzLDEwICsyMTcsNyBA QCBzdGF0aWMgdm9pZCBfX2luaXQgc2V0dXBfYm9vdG1lbSh2b2lkKQo+ICAJcGh5c19hZGRyX3Qg bWF4X21hcHBlZF9hZGRyOwo+ICAJcGh5c19hZGRyX3QgcGh5c19yYW1fZW5kLCB2bWxpbnV4X3N0 YXJ0Owo+ICAKPiAtCWlmIChJU19FTkFCTEVEKENPTkZJR19YSVBfS0VSTkVMKSkKPiAtCQl2bWxp bnV4X3N0YXJ0ID0gX19wYV9zeW1ib2woJl9zZGF0YSk7Cj4gLQllbHNlCj4gLQkJdm1saW51eF9z dGFydCA9IF9fcGFfc3ltYm9sKCZfc3RhcnQpOwo+ICsJdm1saW51eF9zdGFydCA9IF9fcGFfc3lt Ym9sKCZfc3RhcnQpOwo+ICAKPiAgCW1lbWJsb2NrX2VuZm9yY2VfbWVtb3J5X2xpbWl0KG1lbW9y eV9saW1pdCk7Cj4gIAo+IEBAIC0yNDYsMTIgKzIzNywxMCBAQCBzdGF0aWMgdm9pZCBfX2luaXQg c2V0dXBfYm9vdG1lbSh2b2lkKQo+ICAJICogTWFrZSBzdXJlIHdlIGFsaWduIHRoZSBzdGFydCBv ZiB0aGUgbWVtb3J5IG9uIGEgUE1EIGJvdW5kYXJ5IHNvIHRoYXQKPiAgCSAqIGF0IHdvcnN0LCB3 ZSBtYXAgdGhlIGxpbmVhciBtYXBwaW5nIHdpdGggUE1EIG1hcHBpbmdzLgo+ICAJICovCj4gLQlp ZiAoIUlTX0VOQUJMRUQoQ09ORklHX1hJUF9LRVJORUwpKSB7Cj4gLQkJcGh5c19yYW1fYmFzZSA9 IG1lbWJsb2NrX3N0YXJ0X29mX0RSQU0oKSAmIFBNRF9NQVNLOwo+ICsJcGh5c19yYW1fYmFzZSA9 IG1lbWJsb2NrX3N0YXJ0X29mX0RSQU0oKSAmIFBNRF9NQVNLOwo+ICAjaWZkZWYgQ09ORklHX1NQ QVJTRU1FTV9WTUVNTUFQCj4gLQkJdm1lbW1hcF9zdGFydF9wZm4gPSByb3VuZF9kb3duKHBoeXNf cmFtX2Jhc2UsIFZNRU1NQVBfQUREUl9BTElHTikgPj4gUEFHRV9TSElGVDsKPiArCXZtZW1tYXBf c3RhcnRfcGZuID0gcm91bmRfZG93bihwaHlzX3JhbV9iYXNlLCBWTUVNTUFQX0FERFJfQUxJR04p ID4+IFBBR0VfU0hJRlQ7Cj4gICNlbmRpZgo+IC0JfQo+ICAKPiAgCS8qCj4gIAkgKiBJbiA2NC1i aXQsIGFueSB1c2Ugb2YgX192YS9fX3BhIGJlZm9yZSB0aGlzIHBvaW50IGlzIHdyb25nIGFzIHdl Cj4gQEAgLTM2NiwxMyArMzU1LDYgQEAgc3RhdGljIHB0ZV90IGZpeG1hcF9wdGVbUFRSU19QRVJf UFRFXSBfX3BhZ2VfYWxpZ25lZF9ic3M7Cj4gIAo+ICBwZ2RfdCBlYXJseV9wZ19kaXJbUFRSU19Q RVJfUEdEXSBfX2luaXRkYXRhIF9fYWxpZ25lZChQQUdFX1NJWkUpOwo+ICAKPiAtI2lmZGVmIENP TkZJR19YSVBfS0VSTkVMCj4gLSNkZWZpbmUgcHRfb3BzCQkJKCooc3RydWN0IHB0X2FsbG9jX29w cyAqKVhJUF9GSVhVUCgmcHRfb3BzKSkKPiAtI2RlZmluZSB0cmFtcG9saW5lX3BnX2RpciAgICAg ICgocGdkX3QgKilYSVBfRklYVVAodHJhbXBvbGluZV9wZ19kaXIpKQo+IC0jZGVmaW5lIGZpeG1h cF9wdGUgICAgICAgICAgICAgKChwdGVfdCAqKVhJUF9GSVhVUChmaXhtYXBfcHRlKSkKPiAtI2Rl ZmluZSBlYXJseV9wZ19kaXIgICAgICAgICAgICgocGdkX3QgKilYSVBfRklYVVAoZWFybHlfcGdf ZGlyKSkKPiAtI2VuZGlmIC8qIENPTkZJR19YSVBfS0VSTkVMICovCj4gLQo+ICBzdGF0aWMgY29u c3QgcGdwcm90X3QgcHJvdGVjdGlvbl9tYXBbMTZdID0gewo+ICAJW1ZNX05PTkVdCQkJCQk9IFBB R0VfTk9ORSwKPiAgCVtWTV9SRUFEXQkJCQkJPSBQQUdFX1JFQUQsCj4gQEAgLTQ2OSwzMiArNDUx LDE0IEBAIHN0YXRpYyBwbWRfdCB0cmFtcG9saW5lX3BtZFtQVFJTX1BFUl9QTURdIF9fcGFnZV9h bGlnbmVkX2JzczsKPiAgc3RhdGljIHBtZF90IGZpeG1hcF9wbWRbUFRSU19QRVJfUE1EXSBfX3Bh Z2VfYWxpZ25lZF9ic3M7Cj4gIHN0YXRpYyBwbWRfdCBlYXJseV9wbWRbUFRSU19QRVJfUE1EXSBf X2luaXRkYXRhIF9fYWxpZ25lZChQQUdFX1NJWkUpOwo+ICAKPiAtI2lmZGVmIENPTkZJR19YSVBf S0VSTkVMCj4gLSNkZWZpbmUgdHJhbXBvbGluZV9wbWQgKChwbWRfdCAqKVhJUF9GSVhVUCh0cmFt cG9saW5lX3BtZCkpCj4gLSNkZWZpbmUgZml4bWFwX3BtZCAgICAgKChwbWRfdCAqKVhJUF9GSVhV UChmaXhtYXBfcG1kKSkKPiAtI2RlZmluZSBlYXJseV9wbWQgICAgICAoKHBtZF90ICopWElQX0ZJ WFVQKGVhcmx5X3BtZCkpCj4gLSNlbmRpZiAvKiBDT05GSUdfWElQX0tFUk5FTCAqLwo+IC0KPiAg c3RhdGljIHA0ZF90IHRyYW1wb2xpbmVfcDRkW1BUUlNfUEVSX1A0RF0gX19wYWdlX2FsaWduZWRf YnNzOwo+ICBzdGF0aWMgcDRkX3QgZml4bWFwX3A0ZFtQVFJTX1BFUl9QNERdIF9fcGFnZV9hbGln bmVkX2JzczsKPiAgc3RhdGljIHA0ZF90IGVhcmx5X3A0ZFtQVFJTX1BFUl9QNERdIF9faW5pdGRh dGEgX19hbGlnbmVkKFBBR0VfU0laRSk7Cj4gIAo+IC0jaWZkZWYgQ09ORklHX1hJUF9LRVJORUwK PiAtI2RlZmluZSB0cmFtcG9saW5lX3A0ZCAoKHA0ZF90ICopWElQX0ZJWFVQKHRyYW1wb2xpbmVf cDRkKSkKPiAtI2RlZmluZSBmaXhtYXBfcDRkICAgICAoKHA0ZF90ICopWElQX0ZJWFVQKGZpeG1h cF9wNGQpKQo+IC0jZGVmaW5lIGVhcmx5X3A0ZCAgICAgICgocDRkX3QgKilYSVBfRklYVVAoZWFy bHlfcDRkKSkKPiAtI2VuZGlmIC8qIENPTkZJR19YSVBfS0VSTkVMICovCj4gLQo+ICBzdGF0aWMg cHVkX3QgdHJhbXBvbGluZV9wdWRbUFRSU19QRVJfUFVEXSBfX3BhZ2VfYWxpZ25lZF9ic3M7Cj4g IHN0YXRpYyBwdWRfdCBmaXhtYXBfcHVkW1BUUlNfUEVSX1BVRF0gX19wYWdlX2FsaWduZWRfYnNz Owo+ICBzdGF0aWMgcHVkX3QgZWFybHlfcHVkW1BUUlNfUEVSX1BVRF0gX19pbml0ZGF0YSBfX2Fs aWduZWQoUEFHRV9TSVpFKTsKPiAgCj4gLSNpZmRlZiBDT05GSUdfWElQX0tFUk5FTAo+IC0jZGVm aW5lIHRyYW1wb2xpbmVfcHVkICgocHVkX3QgKilYSVBfRklYVVAodHJhbXBvbGluZV9wdWQpKQo+ IC0jZGVmaW5lIGZpeG1hcF9wdWQgICAgICgocHVkX3QgKilYSVBfRklYVVAoZml4bWFwX3B1ZCkp Cj4gLSNkZWZpbmUgZWFybHlfcHVkICAgICAgKChwdWRfdCAqKVhJUF9GSVhVUChlYXJseV9wdWQp KQo+IC0jZW5kaWYgLyogQ09ORklHX1hJUF9LRVJORUwgKi8KPiAtCj4gIHN0YXRpYyBwbWRfdCAq X19pbml0IGdldF9wbWRfdmlydF9lYXJseShwaHlzX2FkZHJfdCBwYSkKPiAgewo+ICAJLyogQmVm b3JlIE1NVSBpcyBlbmFibGVkICovCj4gQEAgLTc2NSwyMSArNzI5LDYgQEAgc3RhdGljIHVpbnRw dHJfdCBfX21lbWluaXQgYmVzdF9tYXBfc2l6ZShwaHlzX2FkZHJfdCBwYSwgdWludHB0cl90IHZh LCBwaHlzX2FkZHIKPiAgCXJldHVybiBQQUdFX1NJWkU7Cj4gIH0KPiAgCj4gLSNpZmRlZiBDT05G SUdfWElQX0tFUk5FTAo+IC0jZGVmaW5lIHBoeXNfcmFtX2Jhc2UgICgqKHBoeXNfYWRkcl90ICop WElQX0ZJWFVQKCZwaHlzX3JhbV9iYXNlKSkKPiAtZXh0ZXJuIGNoYXIgX3hpcHJvbVtdLCBfZXhp cHJvbVtdLCBfX2RhdGFfbG9jOwo+IC0KPiAtLyogY2FsbGVkIGZyb20gaGVhZC5TIHdpdGggTU1V IG9mZiAqLwo+IC1hc21saW5rYWdlIHZvaWQgX19pbml0IF9fY29weV9kYXRhKHZvaWQpCj4gLXsK PiAtCXZvaWQgKmZyb20gPSAodm9pZCAqKSgmX19kYXRhX2xvYyk7Cj4gLQl2b2lkICp0byA9ICh2 b2lkICopQ09ORklHX1BIWVNfUkFNX0JBU0U7Cj4gLQlzaXplX3Qgc3ogPSAoc2l6ZV90KSgodWlu dHB0cl90KSgmX2VuZCkgLSAodWludHB0cl90KSgmX3NkYXRhKSk7Cj4gLQo+IC0JbWVtY3B5KHRv LCBmcm9tLCBzeik7Cj4gLX0KPiAtI2VuZGlmCj4gLQo+ICAjaWZkZWYgQ09ORklHX1NUUklDVF9L RVJORUxfUldYCj4gIHN0YXRpYyBfX21lbWluaXQgcGdwcm90X3QgcGdwcm90X2Zyb21fdmEodWlu dHB0cl90IHZhKQo+ICB7Cj4gQEAgLTgxNSw3ICs3NjQsNyBAQCBzdGF0aWMgX19tZW1pbml0IHBn cHJvdF90IHBncHJvdF9mcm9tX3ZhKHVpbnRwdHJfdCB2YSkKPiAgfQo+ICAjZW5kaWYgLyogQ09O RklHX1NUUklDVF9LRVJORUxfUldYICovCj4gIAo+IC0jaWYgZGVmaW5lZChDT05GSUdfNjRCSVQp ICYmICFkZWZpbmVkKENPTkZJR19YSVBfS0VSTkVMKQo+ICsjaWYgZGVmaW5lZChDT05GSUdfNjRC SVQpCj4gIHU2NCBfX3BpX3NldF9zYXRwX21vZGVfZnJvbV9jbWRsaW5lKHVpbnRwdHJfdCBkdGJf cGEpOwo+ICB1NjQgX19waV9zZXRfc2F0cF9tb2RlX2Zyb21fZmR0KHVpbnRwdHJfdCBkdGJfcGEp Owo+ICAKPiBAQCAtOTQwLDI4ICs4ODksNiBAQCBzdGF0aWMgX19pbml0IHZvaWQgc2V0X3NhdHBf bW9kZSh1aW50cHRyX3QgZHRiX3BhKQo+ICAjZXJyb3IgInNldHVwX3ZtKCkgaXMgY2FsbGVkIGZy b20gaGVhZC5TIGJlZm9yZSByZWxvY2F0ZSBzbyBpdCBzaG91bGQgbm90IHVzZSBhYnNvbHV0ZSBh ZGRyZXNzaW5nLiIKPiAgI2VuZGlmCj4gIAo+IC0jaWZkZWYgQ09ORklHX1hJUF9LRVJORUwKPiAt c3RhdGljIHZvaWQgX19pbml0IGNyZWF0ZV9rZXJuZWxfcGFnZV90YWJsZShwZ2RfdCAqcGdkaXIs Cj4gLQkJCQkJICAgIF9fYWx3YXlzX3VudXNlZCBib29sIGVhcmx5KQo+IC17Cj4gLQl1aW50cHRy X3QgdmEsIHN0YXJ0X3ZhLCBlbmRfdmE7Cj4gLQo+IC0JLyogTWFwIHRoZSBmbGFzaCByZXNpZGVu dCBwYXJ0ICovCj4gLQllbmRfdmEgPSBrZXJuZWxfbWFwLnZpcnRfYWRkciArIGtlcm5lbF9tYXAu eGlwcm9tX3N6Owo+IC0JZm9yICh2YSA9IGtlcm5lbF9tYXAudmlydF9hZGRyOyB2YSA8IGVuZF92 YTsgdmEgKz0gUE1EX1NJWkUpCj4gLQkJY3JlYXRlX3BnZF9tYXBwaW5nKHBnZGlyLCB2YSwKPiAt CQkJCSAgIGtlcm5lbF9tYXAueGlwcm9tICsgKHZhIC0ga2VybmVsX21hcC52aXJ0X2FkZHIpLAo+ IC0JCQkJICAgUE1EX1NJWkUsIFBBR0VfS0VSTkVMX0VYRUMpOwo+IC0KPiAtCS8qIE1hcCB0aGUg ZGF0YSBpbiBSQU0gKi8KPiAtCXN0YXJ0X3ZhID0ga2VybmVsX21hcC52aXJ0X2FkZHIgKyAodWlu dHB0cl90KSZfc2RhdGEgLSAodWludHB0cl90KSZfc3RhcnQ7Cj4gLQllbmRfdmEgPSBrZXJuZWxf bWFwLnZpcnRfYWRkciArIGtlcm5lbF9tYXAuc2l6ZTsKPiAtCWZvciAodmEgPSBzdGFydF92YTsg dmEgPCBlbmRfdmE7IHZhICs9IFBNRF9TSVpFKQo+IC0JCWNyZWF0ZV9wZ2RfbWFwcGluZyhwZ2Rp ciwgdmEsCj4gLQkJCQkgICBrZXJuZWxfbWFwLnBoeXNfYWRkciArICh2YSAtIHN0YXJ0X3ZhKSwK PiAtCQkJCSAgIFBNRF9TSVpFLCBQQUdFX0tFUk5FTCk7Cj4gLX0KPiAtI2Vsc2UKPiAgc3RhdGlj IHZvaWQgX19pbml0IGNyZWF0ZV9rZXJuZWxfcGFnZV90YWJsZShwZ2RfdCAqcGdkaXIsIGJvb2wg ZWFybHkpCj4gIHsKPiAgCXVpbnRwdHJfdCB2YSwgZW5kX3ZhOwo+IEBAIC05NzQsNyArOTAxLDYg QEAgc3RhdGljIHZvaWQgX19pbml0IGNyZWF0ZV9rZXJuZWxfcGFnZV90YWJsZShwZ2RfdCAqcGdk aXIsIGJvb2wgZWFybHkpCj4gIAkJCQkgICBlYXJseSA/Cj4gIAkJCQkJUEFHRV9LRVJORUxfRVhF QyA6IHBncHJvdF9mcm9tX3ZhKHZhKSk7Cj4gIH0KPiAtI2VuZGlmCj4gIAo+ICAvKgo+ICAgKiBT ZXR1cCBhIDRNQiBtYXBwaW5nIHRoYXQgZW5jb21wYXNzZXMgdGhlIGRldmljZSB0cmVlOiBmb3Ig NjQtYml0IGtlcm5lbCwKPiBAQCAtMTExNiwyNyArMTA0MiwxMSBAQCBhc21saW5rYWdlIHZvaWQg X19pbml0IHNldHVwX3ZtKHVpbnRwdHJfdCBkdGJfcGEpCj4gIAo+ICAJa2VybmVsX21hcC52aXJ0 X2FkZHIgPSBLRVJORUxfTElOS19BRERSICsga2VybmVsX21hcC52aXJ0X29mZnNldDsKPiAgCj4g LSNpZmRlZiBDT05GSUdfWElQX0tFUk5FTAo+IC0Ja2VybmVsX21hcC54aXByb20gPSAodWludHB0 cl90KUNPTkZJR19YSVBfUEhZU19BRERSOwo+IC0Ja2VybmVsX21hcC54aXByb21fc3ogPSAodWlu dHB0cl90KSgmX2V4aXByb20pIC0gKHVpbnRwdHJfdCkoJl94aXByb20pOwo+IC0KPiAtCXBoeXNf cmFtX2Jhc2UgPSBDT05GSUdfUEhZU19SQU1fQkFTRTsKPiAtI2lmZGVmIENPTkZJR19TUEFSU0VN RU1fVk1FTU1BUAo+IC0Jdm1lbW1hcF9zdGFydF9wZm4gPSByb3VuZF9kb3duKHBoeXNfcmFtX2Jh c2UsIFZNRU1NQVBfQUREUl9BTElHTikgPj4gUEFHRV9TSElGVDsKPiAtI2VuZGlmCj4gLQlrZXJu ZWxfbWFwLnBoeXNfYWRkciA9ICh1aW50cHRyX3QpQ09ORklHX1BIWVNfUkFNX0JBU0U7Cj4gLQlr ZXJuZWxfbWFwLnNpemUgPSAodWludHB0cl90KSgmX2VuZCkgLSAodWludHB0cl90KSgmX3N0YXJ0 KTsKPiAtCj4gLQlrZXJuZWxfbWFwLnZhX2tlcm5lbF94aXBfdGV4dF9wYV9vZmZzZXQgPSBrZXJu ZWxfbWFwLnZpcnRfYWRkciAtIGtlcm5lbF9tYXAueGlwcm9tOwo+IC0Ja2VybmVsX21hcC52YV9r ZXJuZWxfeGlwX2RhdGFfcGFfb2Zmc2V0ID0ga2VybmVsX21hcC52aXJ0X2FkZHIgLSBrZXJuZWxf bWFwLnBoeXNfYWRkcgo+IC0JCQkJCQkrICh1aW50cHRyX3QpJl9zZGF0YSAtICh1aW50cHRyX3Qp Jl9zdGFydDsKPiAtI2Vsc2UKPiAgCWtlcm5lbF9tYXAucGh5c19hZGRyID0gKHVpbnRwdHJfdCko Jl9zdGFydCk7Cj4gIAlrZXJuZWxfbWFwLnNpemUgPSAodWludHB0cl90KSgmX2VuZCkgLSBrZXJu ZWxfbWFwLnBoeXNfYWRkcjsKPiAgCWtlcm5lbF9tYXAudmFfa2VybmVsX3BhX29mZnNldCA9IGtl cm5lbF9tYXAudmlydF9hZGRyIC0ga2VybmVsX21hcC5waHlzX2FkZHI7Cj4gLSNlbmRpZgo+ICAK PiAtI2lmIGRlZmluZWQoQ09ORklHXzY0QklUKSAmJiAhZGVmaW5lZChDT05GSUdfWElQX0tFUk5F TCkKPiArI2lmIGRlZmluZWQoQ09ORklHXzY0QklUKQo+ICAJc2V0X3NhdHBfbW9kZShkdGJfcGEp Owo+ICAJc2V0X21tYXBfcm5kX2JpdHNfbWF4KCk7Cj4gICNlbmRpZgo+IEBAIC0xMjA5LDEzICsx MTE5LDggQEAgYXNtbGlua2FnZSB2b2lkIF9faW5pdCBzZXR1cF92bSh1aW50cHRyX3QgZHRiX3Bh KQo+ICAJaWYgKHBndGFibGVfbDRfZW5hYmxlZCkKPiAgCQljcmVhdGVfcHVkX21hcHBpbmcodHJh bXBvbGluZV9wdWQsIGtlcm5lbF9tYXAudmlydF9hZGRyLAo+ICAJCQkJICAgKHVpbnRwdHJfdCl0 cmFtcG9saW5lX3BtZCwgUFVEX1NJWkUsIFBBR0VfVEFCTEUpOwo+IC0jaWZkZWYgQ09ORklHX1hJ UF9LRVJORUwKPiAtCWNyZWF0ZV9wbWRfbWFwcGluZyh0cmFtcG9saW5lX3BtZCwga2VybmVsX21h cC52aXJ0X2FkZHIsCj4gLQkJCSAgIGtlcm5lbF9tYXAueGlwcm9tLCBQTURfU0laRSwgUEFHRV9L RVJORUxfRVhFQyk7Cj4gLSNlbHNlCj4gIAljcmVhdGVfcG1kX21hcHBpbmcodHJhbXBvbGluZV9w bWQsIGtlcm5lbF9tYXAudmlydF9hZGRyLAo+ICAJCQkgICBrZXJuZWxfbWFwLnBoeXNfYWRkciwg UE1EX1NJWkUsIFBBR0VfS0VSTkVMX0VYRUMpOwo+IC0jZW5kaWYKPiAgI2Vsc2UKPiAgCS8qIFNl dHVwIHRyYW1wb2xpbmUgUEdEICovCj4gIAljcmVhdGVfcGdkX21hcHBpbmcodHJhbXBvbGluZV9w Z19kaXIsIGtlcm5lbF9tYXAudmlydF9hZGRyLAoKLS0gClRoYW54LCBLdW53dQoKCl9fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxpbnV4LXJpc2N2IG1haWxp bmcgbGlzdApsaW51eC1yaXNjdkBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZy YWRlYWQub3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtcmlzY3YK