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 X-Spam-Level: X-Spam-Status: No, score=-6.8 required=3.0 tests=DKIM_INVALID,DKIM_SIGNED, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4C91BC31E46 for ; Wed, 12 Jun 2019 15:55:01 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 1281621019 for ; Wed, 12 Jun 2019 15:55:00 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=kernel.org header.i=@kernel.org header.b="z1UntUrg" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 1281621019 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=kernel.org Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hb5a0-0006bm-Ky; Wed, 12 Jun 2019 15:54:28 +0000 Received: from all-amaz-eas1.inumbo.com ([34.197.232.57] helo=us1-amaz-eas2.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hb5Zz-0006bg-4c for xen-devel@lists.xenproject.org; Wed, 12 Jun 2019 15:54:27 +0000 X-Inumbo-ID: 5a215078-8d2a-11e9-be6f-97d5eb1d8157 Received: from mail.kernel.org (unknown [198.145.29.99]) by us1-amaz-eas2.inumbo.com (Halon) with ESMTPS id 5a215078-8d2a-11e9-be6f-97d5eb1d8157; Wed, 12 Jun 2019 15:54:25 +0000 (UTC) Received: from localhost (c-67-164-102-47.hsd1.ca.comcast.net [67.164.102.47]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id 9CF8621734; Wed, 12 Jun 2019 15:54:24 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1560354864; bh=KhGBfhasYv3pyID12+iK2Gk6zN2V8aReVYnqepCHyyw=; h=Date:From:To:cc:Subject:In-Reply-To:References:From; b=z1UntUrgZtDucRuU7lZMLB4GdQ89n6Ch/gfvNvzke1DLRCkfYyaceLlV+fYfv/T2q 3Z9ZULaEEQRLkFqCwqrIfofxS3ODmCPNVSkOIPc2NsRxQIL2HShucsg2tGJWonOTCO E46iEQu/aiWcJsq1hEp4pbeII0MoE0xKZ6bWOWbc= Date: Wed, 12 Jun 2019 08:54:23 -0700 (PDT) From: Stefano Stabellini X-X-Sender: sstabellini@sstabellini-ThinkPad-T480s To: Julien Grall In-Reply-To: Message-ID: References: <20190514123125.29086-1-julien.grall@arm.com> <20190514123125.29086-7-julien.grall@arm.com> User-Agent: Alpine 2.21 (DEB 202 2017-01-01) MIME-Version: 1.0 Subject: Re: [Xen-devel] [PATCH MM-PART3 v2 06/12] xen/arm: mm: Sanity check any update of Xen page tables X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: xen-devel@lists.xenproject.org, Stefano Stabellini , Andrii Anisov , Oleksandr_Tyshchenko@epam.com Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" T24gV2VkLCAxMiBKdW4gMjAxOSwgSnVsaWVuIEdyYWxsIHdyb3RlOgo+IEhpIFN0ZWZhbm8sCj4g Cj4gT24gMTIvMDYvMjAxOSAwMToxMCwgU3RlZmFubyBTdGFiZWxsaW5pIHdyb3RlOgo+ID4gT24g VHVlLCAxNCBNYXkgMjAxOSwgSnVsaWVuIEdyYWxsIHdyb3RlOgo+ID4gPiBUaGUgY29kZSBoYW5k bGluZyBYZW4gUFQgdXBkYXRlIGhhcyBxdWl0ZSBhIGZldyByZXN0cmljdGlvbnMgb24gd2hhdCBp dAo+ID4gPiBjYW4gZG8uIFRoaXMgaXMgbm90IGEgYmFkIHRoaW5nIGFzIGl0IGtlZXBzIHRoZSBj b2RlIHNpbXBsZS4KPiA+ID4gCj4gPiA+IFRoZXJlIGFyZSBhbHJlYWR5IGEgZmV3IGNoZWNrcyBz Y2F0dGVyZWQgaW4gY3VycmVudCBwYWdlIHRhYmxlIGhhbmRsaW5nLgo+ID4gPiBIb3dldmVyIHRo ZXkgYXJlIG5vdCBzdWZmaWNpZW50IGFzIHRoZXkgY291bGQgc3RpbGwgYWxsb3cgdG8KPiA+ID4g bW9kaWZ5L3JlbW92ZSBlbnRyeSB3aXRoIGNvbnRpZ3VvdXMgYml0IHNldC4KPiA+ID4gCj4gPiA+ IFRoZSBjaGVja3MgYXJlIGRpdmlkZWQgaW4gdHdvIHNldHM6Cj4gPiA+ICAgICAgLSBwZXIgZW50 cnkgY2hlY2s6IFRoZXkgYXJlIGdhdGhlcmVkIGluIGEgbmV3IGZ1bmN0aW9uIHRoYXQgd2lsbAo+ ID4gPiAgICAgIGNoZWNrIHdoZXRoZXIgYW4gdXBkYXRlIGlzIHZhbGlkIGJhc2VkIG9uIHRoZSBm bGFncyBwYXNzZWQgYW5kIHRoZQo+ID4gPiAgICAgIGN1cnJlbnQgdmFsdWUgb2YgYW4gZW50cnku Cj4gPiA+ICAgICAgLSBnbG9iYWwgY2hlY2s6IFRoZXkgYXJlIHNhbml0eSBjaGVjayBvbiB4ZW5f cHRfdXBkYXRlKCkgcGFyYW1ldGVycy4KPiA+ID4gCj4gPiA+IEFkZGl0aW9uYWxseSB0byBjb250 aWd1b3VzIGNoZWNrLCB3ZSBhbHNvIG5vdyBjaGVjayB0aGF0IHRoZSBjYWxsZXIgaXMKPiA+ID4g bm90IHRyeWluZyB0byBtb2RpZnkgdGhlIG1lbW9yeSBhdHRyaWJ1dGVzIG9mIGFuIGVudHJ5Lgo+ ID4gPiAKPiA+ID4gTGFzdGx5LCBpdCB3YXMgcHJvYmFibHkgYSBiaXQgb3ZlciB0aGUgdG9wIHRv IGZvcmJpZCByZW1vdmluZyBhbgo+ID4gPiBpbnZhbGlkIG1hcHBpbmcuIFRoaXMgY291bGQganVz dCBiZSBpZ25vcmVkLiBUaGUgbmV3IGJlaGF2aW9yIHdpbGwgYmUKPiA+ID4gaGVscGZ1bCBpbiBm dXR1cmUgY2hhbmdlcy4KPiA+ID4gCj4gPiA+IFNpZ25lZC1vZmYtYnk6IEp1bGllbiBHcmFsbCA8 anVsaWVuLmdyYWxsQGFybS5jb20+Cj4gPiA+IFJldmlld2VkLWJ5OiBBbmRyaWkgQW5pc292IDxh bmRyaWlfYW5pc292QGVwYW0uY29tPgo+ID4gPiAKPiA+ID4gLS0tCj4gPiA+ICAgICAgQ2hhbmdl cyBpbiB2MjoKPiA+ID4gICAgICAgICAgLSBDb3JyZWN0bHkgZGV0ZWN0IHRoZSByZW1vdmFsIG9m IGEgcGFnZQo+ID4gPiAgICAgICAgICAtIEZpeCBBU1NFUlQgb24gZmxhZ3MgaW4gdGhlIGVsc2Ug Y2FzZQo+ID4gPiAgICAgICAgICAtIEFkZCBBbmRyaWkncyByZXZpZXdlZC1ieQo+ID4gPiAtLS0K PiA+ID4gICB4ZW4vYXJjaC9hcm0vbW0uYyB8IDExNQo+ID4gPiArKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tLS0KPiA+ID4gICAxIGZpbGUgY2hhbmdl ZCwgOTcgaW5zZXJ0aW9ucygrKSwgMTggZGVsZXRpb25zKC0pCj4gPiA+IAo+ID4gPiBkaWZmIC0t Z2l0IGEveGVuL2FyY2gvYXJtL21tLmMgYi94ZW4vYXJjaC9hcm0vbW0uYwo+ID4gPiBpbmRleCAy MTkyZGVkZTU1Li40NWE2ZjkyODdmIDEwMDY0NAo+ID4gPiAtLS0gYS94ZW4vYXJjaC9hcm0vbW0u Ywo+ID4gPiArKysgYi94ZW4vYXJjaC9hcm0vbW0uYwo+ID4gPiBAQCAtNTAsNiArNTAsMTkgQEAg c3RydWN0IGRvbWFpbiAqZG9tX3hlbiwgKmRvbV9pbywgKmRvbV9jb3c7Cj4gPiA+ICAgI3VuZGVm IG1mbl90b192aXJ0Cj4gPiA+ICAgI2RlZmluZSBtZm5fdG9fdmlydChtZm4pIF9fbWZuX3RvX3Zp cnQobWZuX3gobWZuKSkKPiA+ID4gICArI2lmZGVmIE5ERUJVRwo+ID4gPiArc3RhdGljIGlubGlu ZSB2b2lkCj4gPiA+ICtfX2F0dHJpYnV0ZV9fICgoX19mb3JtYXRfXyAoX19wcmludGZfXywgMSwg MikpKQo+ID4gPiArbW1fcHJpbnRrKGNvbnN0IGNoYXIgKmZtdCwgLi4uKSB7fQo+ID4gPiArI2Vs c2UKPiA+ID4gKyNkZWZpbmUgbW1fcHJpbnRrKGZtdCwgYXJncy4uLikgICAgICAgICAgICAgXAo+ ID4gPiArICAgIGRvICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiA+ ICsgICAgeyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiA+ID4gKyAg ICAgICAgZHByaW50ayhYRU5MT0dfRVJSLCBmbXQsICMjIGFyZ3MpOyAgXAo+ID4gPiArICAgICAg ICBXQVJOKCk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiA+ICsgICAgfSB3aGls ZSAoMCk7Cj4gPiA+ICsjZW5kaWYKPiA+ID4gKwo+ID4gPiAgICNkZWZpbmUgREVGSU5FX1BBR0Vf VEFCTEVTKG5hbWUsIG5yKSAgICAgICAgICAgICAgICAgICAgXAo+ID4gPiAgIGxwYWVfdCBfX2Fs aWduZWQoUEFHRV9TSVpFKSBuYW1lW0xQQUVfRU5UUklFUyAqIChucildCj4gPiA+ICAgQEAgLTk2 OCwxMiArOTgxLDc0IEBAIGVudW0geGVubWFwX29wZXJhdGlvbiB7Cj4gPiA+ICAgICAgIFJFU0VS VkUKPiA+ID4gICB9Owo+ID4gPiAgICsvKiBTYW5pdHkgY2hlY2sgb2YgdGhlIGVudHJ5ICovCj4g PiA+ICtzdGF0aWMgYm9vbCB4ZW5fcHRfY2hlY2tfZW50cnkobHBhZV90IGVudHJ5LCBtZm5fdCBt Zm4sIHVuc2lnbmVkIGludAo+ID4gPiBmbGFncykKPiA+ID4gK3sKPiA+ID4gKyAgICAvKiBTYW5p dHkgY2hlY2sgd2hlbiBtb2RpZnlpbmcgYSBwYWdlLiAqLwo+ID4gPiArICAgIGlmICggKGZsYWdz ICYgX1BBR0VfUFJFU0VOVCkgJiYgbWZuX2VxKG1mbiwgSU5WQUxJRF9NRk4pICkKPiA+ID4gKyAg ICB7Cj4gPiAKPiA+IEkgdW5kZXJzdGFuZCB3ZSBjb3VsZCBza2lwIHRoZSB2YWxpZCBjaGVjayBv biBSRU1PVkUsIGJ1dCBzaG91bGQgd2Ugc2tpcAo+ID4gaXQgb24gTU9ESUZZIHRvbz8gSXMgdGhh dCBhbHNvIGdvaW5nIHRvIGJlIGhlbHBmdWwgaW4gZnV0dXJlIGNoYW5nZXM/Cj4gCj4gSG1tbSwg SSBjYW4ndCBleGFjdGx5IHJlbWVtYmVyIHdoeSBJIGRpZG4ndCBjaGVjayB0aGUgdmFsaWQgYml0 IGhlcmUuCj4gCj4gSSBkaWQgaXQgZm9yIFJFTU9WRSBhcyBmb3IgdGhlIGVhcmx5IEZEVCBtYXBw aW5nIGl0IGlzIG1vcmUgY29udmVuaWVudCB0bwo+IHJlbW92ZSB0aGUgZnVsbCBwb3NzaWJsZSBy YW5nZSBvdmVyIGtlZXBpbmcgdHJhY2sgb2YgdGhlIGV4YWN0IHN0YXJ0L3NpemUuCj4gCj4gSSB3 b3VsZCBhc3N1bWUgdGhlIHNhbWUgd291bGQgaG9sZCBmb3IgTU9ESUZZLCBidXQgSSBkb24ndCBo YXZlIGEgY29uY3JldGUKPiBleGFtcGxlIGhlcmUuIEkgYW0gaGFwcHkgdG8gYWRkIHRoZSB2YWxp ZCBjaGVjayBhbmQgZGVmZXIgdGhlIGRlY2lzaW9uIHRvCj4gcmVtb3ZlIGl0IGlmIGl0IGlzIGRl ZW0gdG8gYmUgdXNlZnVsIGluIHRoZSBmdXR1cmUuCgpZZXMsIGl0IHdvdWxkIGJlIGJldHRlcgoK Cj4gPiAKPiA+ID4gKyAgICAgICAgLyogV2UgZG9uJ3QgYWxsb3cgY2hhbmdpbmcgbWVtb3J5IGF0 dHJpYnV0ZXMuICovCj4gPiA+ICsgICAgICAgIGlmICggZW50cnkucHQuYWkgIT0gUEFHRV9BSV9N QVNLKGZsYWdzKSApCj4gPiA+ICsgICAgICAgIHsKPiA+ID4gKyAgICAgICAgICAgIG1tX3ByaW50 aygiTW9kaWZ5aW5nIG1lbW9yeSBhdHRyaWJ1dGVzIGlzIG5vdCBhbGxvd2VkICgweCV4Cj4gPiA+ IC0+IDB4JXgpLlxuIiwKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICBlbnRyeS5wdC5haSwg UEFHRV9BSV9NQVNLKGZsYWdzKSk7Cj4gPiA+ICsgICAgICAgICAgICByZXR1cm4gZmFsc2U7Cj4g PiA+ICsgICAgICAgIH0KPiA+ID4gKwo+ID4gPiArICAgICAgICAvKiBXZSBkb24ndCBhbGxvdyBt b2RpZnlpbmcgZW50cnkgd2l0aCBjb250aWd1b3VzIGJpdCBzZXQuICovCj4gPiA+ICsgICAgICAg IGlmICggZW50cnkucHQuY29udGlnICkKPiA+ID4gKyAgICAgICAgewo+ID4gPiArICAgICAgICAg ICAgbW1fcHJpbnRrKCJNb2RpZnlpbmcgZW50cnkgd2l0aCBjb250aWd1b3VzIGJpdCBzZXQgaXMg bm90Cj4gPiA+IGFsbG93ZWQuXG4iKTsKPiA+ID4gKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsK PiA+ID4gKyAgICAgICAgfQo+ID4gPiArICAgIH0KPiA+ID4gKyAgICAvKiBTYW5pdHkgY2hlY2sg d2hlbiBpbnNlcnRpbmcgYSBwYWdlICovCj4gPiA+ICsgICAgZWxzZSBpZiAoIGZsYWdzICYgX1BB R0VfUFJFU0VOVCApCj4gPiA+ICsgICAgewo+ID4gPiArICAgICAgICAvKiBXZSBzaG91bGQgYmUg aGVyZSB3aXRoIGEgdmFsaWQgTUZOLiAqLwo+ID4gPiArICAgICAgICBBU1NFUlQoIW1mbl9lcSht Zm4sIElOVkFMSURfTUZOKSk7Cj4gPiA+ICsKPiA+ID4gKyAgICAgICAgLyogV2UgZG9uJ3QgYWxs b3cgcmVwbGFjaW5nIGFueSB2YWxpZCBlbnRyeS4gKi8KPiA+ID4gKyAgICAgICAgaWYgKCBscGFl X2lzX3ZhbGlkKGVudHJ5KSApCj4gPiA+ICsgICAgICAgIHsKPiA+ID4gKyAgICAgICAgICAgIG1t X3ByaW50aygiQ2hhbmdpbmcgTUZOIGZvciBhIHZhbGlkIGVudHJ5IGlzIG5vdCBhbGxvd2VkCj4g PiA+ICglIyJQUklfbWZuIiAtPiAlIyJQUklfbWZuIikuXG4iLAo+ID4gPiArICAgICAgICAgICAg ICAgICAgICAgIG1mbl94KGxwYWVfZ2V0X21mbihlbnRyeSkpLCBtZm5feChtZm4pKTsKPiA+ID4g KyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKPiA+ID4gKyAgICAgICAgfQo+ID4gPiArICAgIH0K PiA+ID4gKyAgICAvKiBTYW5pdHkgY2hlY2sgd2hlbiByZW1vdmluZyBhIHBhZ2UuICovCj4gPiA+ ICsgICAgZWxzZSBpZiAoIChmbGFncyAmIChfUEFHRV9QUkVTRU5UfF9QQUdFX1BPUFVMQVRFKSkg PT0gMCApCj4gPiA+ICsgICAgewo+ID4gPiArICAgICAgICAvKiBXZSBzaG91bGQgYmUgaGVyZSB3 aXRoIGFuIGludmFsaWQgTUZOLiAqLwo+ID4gPiArICAgICAgICBBU1NFUlQobWZuX2VxKG1mbiwg SU5WQUxJRF9NRk4pKTsKPiA+ID4gKwo+ID4gPiArICAgICAgICAvKiBXZSBkb24ndCBhbGxvdyBy ZW1vdmluZyBwYWdlIHdpdGggY29udGlndW91cyBiaXQgc2V0LiAqLwo+ID4gPiArICAgICAgICBp ZiAoIGVudHJ5LnB0LmNvbnRpZyApCj4gPiA+ICsgICAgICAgIHsKPiA+ID4gKyAgICAgICAgICAg IG1tX3ByaW50aygiUmVtb3ZpbmcgZW50cnkgd2l0aCBjb250aWd1b3VzIGJpdCBzZXQgaXMgbm90 Cj4gPiA+IGFsbG93ZWQuXG4iKTsKPiA+ID4gKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKPiA+ ID4gKyAgICAgICAgfQo+ID4gPiArICAgIH0KPiA+ID4gKyAgICAvKiBTYW5pdHkgY2hlY2sgd2hl biBwb3B1bGF0aW5nIHRoZSBwYWdlLXRhYmxlLiBObyBjaGVjayBzbyBmYXIuICovCj4gPiA+ICsg ICAgZWxzZQo+ID4gPiArICAgIHsKPiA+ID4gKyAgICAgICAgQVNTRVJUKGZsYWdzICYgX1BBR0Vf UE9QVUxBVEUpOwo+ID4gPiArICAgICAgICAvKiBXZSBzaG91bGQgYmUgaGVyZSB3aXRoIGFuIGlu dmFsaWQgTUZOICovCj4gPiA+ICsgICAgICAgIEFTU0VSVChtZm5fZXEobWZuLCBJTlZBTElEX01G TikpOwo+ID4gPiArICAgIH0KPiA+ID4gKwo+ID4gPiArICAgIHJldHVybiB0cnVlOwo+ID4gPiAr fQo+ID4gPiArCj4gPiA+ICAgc3RhdGljIGludCB4ZW5fcHRfdXBkYXRlX2VudHJ5KGVudW0geGVu bWFwX29wZXJhdGlvbiBvcCwgdW5zaWduZWQgbG9uZwo+ID4gPiBhZGRyLAo+ID4gPiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBtZm5fdCBtZm4sIHVuc2lnbmVkIGludCBmbGFncykK PiA+ID4gICB7Cj4gPiA+ICAgICAgIGxwYWVfdCBwdGUsICplbnRyeTsKPiA+ID4gICAgICAgbHBh ZV90ICp0aGlyZCA9IE5VTEw7Cj4gPiA+ICAgKyAgICAvKiBfUEFHRV9QT1BVTEFURSBhbmQgX1BB R0VfUFJFU0VOVCBzaG91bGQgbmV2ZXIgYmUgc2V0IHRvZ2V0aGVyLgo+ID4gPiAqLwo+ID4gPiAr ICAgIEFTU0VSVCgoZmxhZ3MgJiAoX1BBR0VfUE9QVUxBVEV8X1BBR0VfUFJFU0VOVCkpICE9Cj4g PiA+IChfUEFHRV9QT1BVTEFURXxfUEFHRV9QUkVTRU5UKSk7Cj4gPiAKPiA+IG92ZXIgODAgY2hh cnM/Cj4gCj4gSXQgaXMgODcgY2hhcnMsIEkgd2FzIGhvcGluZyB5b3UgZGlkbid0IG5vdGljZSBp dCA6KS4gVGhlIGxpbmUgc3BsaXR0aW5nCj4gcmVzdWx0IHRvIG5hc3R5IGNvZGUuIEFsdGVybmF0 aXZlbHksIEkgY291bGQgaW50cm9kdWNlIGEgZGVmaW5lIGZvcgo+IF9QQUdFX1BPUFVMQVRFfF9Q QUdFX1BSRVNFTlQsIG1heWJlIEVYQ0xVU0lWRV9GTEFHUz8KPiAKPiBBbnkgcHJlZmVyZW5jZT8K CkkgZG9uJ3QgY2FyZSBzbyBtdWNoIGFib3V0IDgwIGNoYXJzIGxpbWl0LgpBbnl0aGluZyBidXQg YW5vdGhlciBtYWNybyA6LSkKCiAKPiA+ID4gICAgICAgZW50cnkgPSAmeGVuX3NlY29uZFtzZWNv bmRfbGluZWFyX29mZnNldChhZGRyKV07Cj4gPiA+ICAgICAgIGlmICggIWxwYWVfaXNfdmFsaWQo KmVudHJ5KSB8fCAhbHBhZV9pc190YWJsZSgqZW50cnksIDIpICkKPiA+ID4gICAgICAgewo+ID4g PiBAQCAtOTg5LDE1ICsxMDY0LDEyIEBAIHN0YXRpYyBpbnQgeGVuX3B0X3VwZGF0ZV9lbnRyeShl bnVtCj4gPiA+IHhlbm1hcF9vcGVyYXRpb24gb3AsIHVuc2lnbmVkIGxvbmcgYWRkciwKPiA+ID4g ICAgICAgdGhpcmQgPSBtZm5fdG9fdmlydChscGFlX2dldF9tZm4oKmVudHJ5KSk7Cj4gPiA+ICAg ICAgIGVudHJ5ID0gJnRoaXJkW3RoaXJkX3RhYmxlX29mZnNldChhZGRyKV07Cj4gPiA+ICAgKyAg ICBpZiAoICF4ZW5fcHRfY2hlY2tfZW50cnkoKmVudHJ5LCBtZm4sIGZsYWdzKSApCj4gPiA+ICsg ICAgICAgIHJldHVybiAtRUlOVkFMOwo+ID4gPiArCj4gPiA+ICAgICAgIHN3aXRjaCAoIG9wICkg ewo+ID4gPiAgICAgICAgICAgY2FzZSBJTlNFUlQ6Cj4gPiA+ICAgICAgICAgICBjYXNlIFJFU0VS VkU6Cj4gPiA+IC0gICAgICAgICAgICBpZiAoIGxwYWVfaXNfdmFsaWQoKmVudHJ5KSApCj4gPiA+ IC0gICAgICAgICAgICB7Cj4gPiA+IC0gICAgICAgICAgICAgICAgcHJpbnRrKCIlczogdHJ5aW5n IHRvIHJlcGxhY2UgYW4gZXhpc3RpbmcgbWFwcGluZwo+ID4gPiBhZGRyPSVseCBtZm49JSJQUklf bWZuIlxuIiwKPiA+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgX19mdW5jX18sIGFkZHIsIG1m bl94KG1mbikpOwo+ID4gPiAtICAgICAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOwo+ID4gPiAt ICAgICAgICAgICAgfQo+ID4gPiAgICAgICAgICAgICAgIGlmICggb3AgPT0gUkVTRVJWRSApCj4g PiA+ICAgICAgICAgICAgICAgICAgIGJyZWFrOwo+ID4gPiAgICAgICAgICAgICAgIHB0ZSA9IG1m bl90b194ZW5fZW50cnkobWZuLCBQQUdFX0FJX01BU0soZmxhZ3MpKTsKPiA+ID4gQEAgLTEwMDks MTIgKzEwODEsNiBAQCBzdGF0aWMgaW50IHhlbl9wdF91cGRhdGVfZW50cnkoZW51bQo+ID4gPiB4 ZW5tYXBfb3BlcmF0aW9uIG9wLCB1bnNpZ25lZCBsb25nIGFkZHIsCj4gPiA+ICAgICAgICAgICAg ICAgYnJlYWs7Cj4gPiA+ICAgICAgICAgICBjYXNlIE1PRElGWToKPiA+ID4gICAgICAgICAgIGNh c2UgUkVNT1ZFOgo+ID4gPiAtICAgICAgICAgICAgaWYgKCAhbHBhZV9pc192YWxpZCgqZW50cnkp ICkKPiA+ID4gLSAgICAgICAgICAgIHsKPiA+ID4gLSAgICAgICAgICAgICAgICBwcmludGsoIiVz OiB0cnlpbmcgdG8gJXMgYSBub24tZXhpc3RpbmcgbWFwcGluZwo+ID4gPiBhZGRyPSVseFxuIiwK PiA+ID4gLSAgICAgICAgICAgICAgICAgICAgICAgX19mdW5jX18sIG9wID09IFJFTU9WRSA/ICJy ZW1vdmUiIDogIm1vZGlmeSIsCj4gPiA+IGFkZHIpOwo+ID4gPiAtICAgICAgICAgICAgICAgIHJl dHVybiAtRUlOVkFMOwo+ID4gPiAtICAgICAgICAgICAgfQo+ID4gPiAgICAgICAgICAgICAgIGlm ICggb3AgPT0gUkVNT1ZFICkKPiA+ID4gICAgICAgICAgICAgICAgICAgcHRlLmJpdHMgPSAwOwo+ ID4gPiAgICAgICAgICAgICAgIGVsc2UKPiA+ID4gQEAgLTEwMjIsMTIgKzEwODgsNiBAQCBzdGF0 aWMgaW50IHhlbl9wdF91cGRhdGVfZW50cnkoZW51bQo+ID4gPiB4ZW5tYXBfb3BlcmF0aW9uIG9w LCB1bnNpZ25lZCBsb25nIGFkZHIsCj4gPiA+ICAgICAgICAgICAgICAgICAgIHB0ZSA9ICplbnRy eTsKPiA+ID4gICAgICAgICAgICAgICAgICAgcHRlLnB0LnJvID0gUEFHRV9ST19NQVNLKGZsYWdz KTsKPiA+ID4gICAgICAgICAgICAgICAgICAgcHRlLnB0LnhuID0gUEFHRV9YTl9NQVNLKGZsYWdz KTsKPiA+ID4gLSAgICAgICAgICAgICAgICBpZiAoICFwdGUucHQucm8gJiYgIXB0ZS5wdC54biAp Cj4gPiA+IC0gICAgICAgICAgICAgICAgewo+ID4gPiAtICAgICAgICAgICAgICAgICAgICBwcmlu dGsoIiVzOiBJbmNvcnJlY3QgY29tYmluYXRpb24gZm9yIGFkZHI9JWx4XG4iLAo+ID4gPiAtICAg ICAgICAgICAgICAgICAgICAgICAgICAgX19mdW5jX18sIGFkZHIpOwo+ID4gPiAtICAgICAgICAg ICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsKPiA+ID4gLSAgICAgICAgICAgICAgICB9Cj4gPiA+ ICAgICAgICAgICAgICAgfQo+ID4gPiAgICAgICAgICAgICAgIHdyaXRlX3B0ZShlbnRyeSwgcHRl KTsKPiA+ID4gICAgICAgICAgICAgICBicmVhazsKPiA+ID4gQEAgLTEwNDksNiArMTEwOSwyNSBA QCBzdGF0aWMgaW50IHhlbl9wdF91cGRhdGUoZW51bSB4ZW5tYXBfb3BlcmF0aW9uIG9wLAo+ID4g PiAgICAgICBpbnQgcmMgPSAwOwo+ID4gPiAgICAgICB1bnNpZ25lZCBsb25nIGFkZHIgPSB2aXJ0 LCBhZGRyX2VuZCA9IGFkZHIgKyBucl9tZm5zICogUEFHRV9TSVpFOwo+ID4gPiAgICsgICAgLyoK PiA+ID4gKyAgICAgKiBUaGUgaGFyZHdhcmUgd2FzIGNvbmZpZ3VyZWQgdG8gZm9yYmlkIG1hcHBp bmcgYm90aCB3cml0ZWFibGUgYW5kCj4gPiA+ICsgICAgICogZXhlY3V0YWJsZS4KPiA+ID4gKyAg ICAgKiBXaGVuIG1vZGlmeWluZy9jcmVhdGluZyBtYXBwaW5nIChpLmUgX1BBR0VfUFJFU0VOVCBp cyBzZXQpLAo+ID4gPiArICAgICAqIHByZXZlbnQgYW55IHVwZGF0ZSBpZiB0aGlzIGhhcHBlbi4K PiA+ID4gKyAgICAgKi8KPiA+ID4gKyAgICBpZiAoIChmbGFncyAmIF9QQUdFX1BSRVNFTlQpICYm ICFQQUdFX1JPX01BU0soZmxhZ3MpICYmCj4gPiA+ICsgICAgICAgICAhUEFHRV9YTl9NQVNLKGZs YWdzKSApCj4gPiA+ICsgICAgewo+ID4gPiArICAgICAgICBtbV9wcmludGsoIk1hcHBpbmdzIHNo b3VsZCBub3QgYmUgYm90aCBXcml0ZWFibGUgYW5kCj4gPiA+IEV4ZWN1dGFibGUuXG4iKTsKPiA+ ID4gKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4gPiA+ICsgICAgfQo+ID4gCj4gPiBJIGFtIHRo aW5raW5nIHRoaXMgaXMgc2VyaW91cyBlbm91Z2ggdGhhdCB3ZSBtaWdodCB3YW50IHRvIGFsd2F5 cyBwcmludAo+ID4gdGhpcyB3YXJuaW5nIHdoZW4gdGhpcyBlcnJvciBoYXBwZW5zLiBBdCB0aGUg c2FtZSB0aW1lIGl0IGlzIGF3a3dhcmQgdG8KPiA+IGhhdmUgYWxsIHRoZSBvdGhlciBtZXNzYWdl cyB1c2luZyBtbV9wcmludGsgYW5kIG9ubHkgdGhpcyBvbmUgYmVpbmcKPiA+IGRpZmZlcmVudC4g U28gSSdsbCBsaXZlIGl0IHRvIHlvdSwgaXQgaXMgYWxzbyBPSyBhdCB0aGlzLgo+IAo+IEFueSBl cnJvciBoZXJlIG1lYW5zIHRoZSBjYWxsZXIgZGlkbid0IGRvIHNhbml0eSBjaGVjayAoaWYgaW5w dXQgaXMgZXh0ZXJuYWwpCj4gb3IgcGFzcyB0aGUgd3JvbmcgcGFyYW1ldGVycy4gSSBwdXJwb3Nl ZnVsbHkgY2hvc2UgbW1fcHJpbnRrIG92ZXIgYSBub3JtYWwKPiBwcmludGsgYmVjYXVzZSB0aGlz IGNvdWxkIHBvdGVudGlhbGx5IGxlYWQgdG8gYSBEb1MgaWYgYWNjZXNzaWJsZSBmcm9tIG91dHNp ZGUKPiBvZiBYZW4uCj4gCj4gSWYgdGhlIGVycm9yIGhhcHBlbiwgdGhlbiB0aGVyZSBhcmUgYW4g aGlnaCBjaGFuY2Ugd2l0aCBERUJVRyAob3IgaGFja2luZwo+IG1tX3ByaW50ayB0byBiZSB1c2Vk IGluIG5vbi1kZWJ1ZyBidWlsZCkgd2lsbCBtYWtlIGl0IGFwcGVhciBhcyB3ZWxsLgogCk9LCgpf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwg bWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3Rz LnhlbnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs