From mboxrd@z Thu Jan 1 00:00:00 1970 From: George Dunlap Subject: Re: [PATCH v5] x86/altp2m: Aggregate get entry and populate into common funcs Date: Thu, 18 Apr 2019 18:02:51 +0100 Message-ID: References: <20190416084531.5084-1-aisaila@bitdefender.com> <51aac97d-3773-f3df-204d-55912f5915db@citrix.com> <73576bc2-5ab2-b5ef-ca0b-fb50b4cd7775@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hHAR7-0006ek-LS for xen-devel@lists.xenproject.org; Thu, 18 Apr 2019 17:02:57 +0000 In-Reply-To: Content-Language: en-US List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: Tamas K Lengyel Cc: "wei.liu2@citrix.com" , "rcojocaru@bitdefender.com" , "george.dunlap@eu.citrix.com" , "andrew.cooper3@citrix.com" , "jbeulich@suse.com" , Alexandru Stefan ISAILA , "xen-devel@lists.xenproject.org" , "roger.pau@citrix.com" List-Id: xen-devel@lists.xenproject.org T24gNC8xOC8xOSAyOjU5IFBNLCBUYW1hcyBLIExlbmd5ZWwgd3JvdGU6Cj4gT24gVGh1LCBBcHIg MTgsIDIwMTkgYXQgMzo1MyBBTSBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGNpdHJpeC5j b20+IHdyb3RlOgo+Pgo+PiBPbiA0LzE3LzE5IDc6MjIgUE0sIFRhbWFzIEsgTGVuZ3llbCB3cm90 ZToKPj4+IE9uIFdlZCwgQXByIDE3LCAyMDE5IGF0IDE6MTUgQU0gQWxleGFuZHJ1IFN0ZWZhbiBJ U0FJTEEKPj4+IDxhaXNhaWxhQGJpdGRlZmVuZGVyLmNvbT4gd3JvdGU6Cj4+Pj4KPj4+Pgo+Pj4+ Cj4+Pj4gT24gMTYuMDQuMjAxOSAxODowNywgR2VvcmdlIER1bmxhcCB3cm90ZToKPj4+Pj4gT24g NC8xNi8xOSAzOjE5IFBNLCBUYW1hcyBLIExlbmd5ZWwgd3JvdGU6Cj4+Pj4+PiBPbiBUdWUsIEFw ciAxNiwgMjAxOSBhdCA4OjAyIEFNIEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAY2l0cml4 LmNvbT4gd3JvdGU6Cj4+Pj4+Pj4KPj4+Pj4+PiBPbiA0LzE2LzE5IDI6NDQgUE0sIFRhbWFzIEsg TGVuZ3llbCB3cm90ZToKPj4+Pj4+Pj4gT24gVHVlLCBBcHIgMTYsIDIwMTkgYXQgMjo0NSBBTSBB bGV4YW5kcnUgU3RlZmFuIElTQUlMQQo+Pj4+Pj4+PiA8YWlzYWlsYUBiaXRkZWZlbmRlci5jb20+ IHdyb3RlOgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IFRoZSBjb2RlIGZvciBnZXR0aW5nIHRoZSBlbnRy eSBhbmQgdGhlbiBwb3B1bGF0aW5nIHdhcyByZXBlYXRlZCBpbgo+Pj4+Pj4+Pj4gcDJtX2NoYW5n ZV9hbHRwMm1fZ2ZuKCkgYW5kIGluIHAybV9zZXRfYWx0cDJtX21lbV9hY2Nlc3MoKS4KPj4+Pj4+ Pj4+Cj4+Pj4+Pj4+PiBUaGUgY29kZSBpcyBub3cgaW4gb25lIHBsYWNlIHdpdGggYSBib29sIHBh cmFtIHRoYXQgbGV0cyB0aGUgY2FsbGVyIGNob29zZQo+Pj4+Pj4+Pj4gaWYgaXQgcG9wdWxhdGVz IGFmdGVyIGdldF9lbnRyeSgpLgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IElmIHJlbWFwcGluZyBpcyBi ZWluZyBkb25lIHRoZW4gYm90aCB0aGUgb2xkIGFuZCBuZXcgZ2ZuJ3Mgc2hvdWxkIGJlCj4+Pj4+ Pj4+PiB1bnNoYXJlZCBpbiB0aGUgaG9zdHAybSBmb3Iga2VlcGluZyB0aGluZ3MgY29uc2lzdGVu dC4gVGhlIHBhZ2UgdHlwZQo+Pj4+Pj4+Pj4gb2Ygb2xkX2dmbiB3YXMgYWxyZWFkeSBjaGVja2Vk IHdoZXRoZXIgaXQncyBwMm1fcmFtX3J3IGFuZCBiYWlsIGlmIGl0Cj4+Pj4+Pj4+PiB3YXNuJ3Qg c28gZnVuY3Rpb25hbGl0eS13aXNlIHRoaXMganVzdCBzaW1wbGlmaWVzIHRoaW5ncyBhcyBhIHVz ZXIKPj4+Pj4+Pj4+IGRvZXNuJ3QgaGF2ZSB0byByZXF1ZXN0IHVuc2hhcmluZyBtYW51YWxseSBi ZWZvcmUgcmVtYXBwaW5nLgo+Pj4+Pj4+Pj4gTm93LCBpZiB0aGUgbmV3X2dmbiBpcyBpbnZhbGlk IGl0IHNob3VsZG4ndCBxdWVyeSB0aGUgaG9zdHAybSBhcwo+Pj4+Pj4+Pj4gdGhhdCBpcyBlZmZl Y3RpdmVseSBhIHJlcXVlc3QgdG8gcmVtb3ZlIHRoZSBlbnRyeSBmcm9tIHRoZSBhbHRwMm0uCj4+ Pj4+Pj4+PiBCdXQgcHJvdmlkZWQgdGhhdCBzY2VuYXJpbyBpcyB1c2VkIG9ubHkgd2hlbiByZW1v dmluZyBlbnRyaWVzIHRoYXQKPj4+Pj4+Pj4+IHdlcmUgcHJldmlvdXNseSByZW1hcHBlZC9jb3Bp ZWQgdG8gdGhlIGFsdHAybSwgdGhvc2UgZW50cmllcyBhbHJlYWR5Cj4+Pj4+Pj4+PiB3ZW50IHRo cm91Z2ggUDJNX0FMTE9DIHwgUDJNX1VOU0hBUkUgYmVmb3JlLCBzbyBpdCB3b24ndCBoYXZlIGFu Cj4+Pj4+Pj4+PiBhZmZlY3Qgc28gdGhlIGNvcmUgZnVuY3Rpb24gZ2V0X2FsdHAybV9lbnRyeSgp IGlzIGNhbGxpbmcKPj4+Pj4+Pj4+IF9fZ2V0X2dmbl90eXBlX2FjY2VzcygpIHdpdGggUDJNX0FM TE9DIHwgUDJNX1VOU0hBUkUuCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gYWx0cDJtX2dldF9lbnRyeV9k aXJlY3QoKSBpcyBhbHNvIGNhbGxlZCBpbiBwMm1fc2V0X3N1cHByZXNzX3ZlKCkKPj4+Pj4+Pj4+ IGJlY2F1c2Ugb24gYSBuZXcgYWx0cDJtIHZpZXcgdGhlIGZ1bmN0aW9uIHdpbGwgZmFpbCB3aXRo IGludmFsaWQgbWZuIGlmCj4+Pj4+Pj4+PiBwMm0tPnNldF9lbnRyeSgpIHdhcyBub3QgY2FsbGVk IGJlZm9yZS4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcnUgSXNh aWxhIDxhaXNhaWxhQGJpdGRlZmVuZGVyLmNvbT4KPj4+Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6IEdl b3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAY2l0cml4LmNvbT4KPj4+Pj4+Pj4+IFJldmlld2Vk LWJ5OiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGNpdHJpeC5jb20+Cj4+Pj4+Pj4+Pgo+ Pj4+Pj4+Pj4gLS0tCj4+Pj4+Pj4+PiBDaGFuZ2VzIHNpbmNlIFY0Ogo+Pj4+Pj4+Pj4gICAgICAg ICAgLSBBZGQgYWx0cDJtIHRvIHBhdGNoIG5hbWUKPj4+Pj4+Pj4+ICAgICAgICAgIC0gQ2hhbmdl IGZ1bmMgbmFtZSBmcm9tIGdldF9hbHRwMm1fZW50cnkoKSB0bwo+Pj4+Pj4+Pj4gYWx0cDJtX2dl dF9lbnRyeSgpLgo+Pj4+Pj4+Pj4gLS0tCj4+Pj4+Pj4+PiAgIHhlbi9hcmNoL3g4Ni9tbS9tZW1f YWNjZXNzLmMgfCAzMCArKy0tLS0tLS0tLS0tCj4+Pj4+Pj4+PiAgIHhlbi9hcmNoL3g4Ni9tbS9w Mm0uYyAgICAgICAgfCA4NCArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KPj4+ Pj4+Pj4+ICAgeGVuL2luY2x1ZGUvYXNtLXg4Ni9wMm0uaCAgICB8IDE3ICsrKysrKysrCj4+Pj4+ Pj4+PiAgIDMgZmlsZXMgY2hhbmdlZCwgNjYgaW5zZXJ0aW9ucygrKSwgNjUgZGVsZXRpb25zKC0p Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9tZW1fYWNj ZXNzLmMgYi94ZW4vYXJjaC94ODYvbW0vbWVtX2FjY2Vzcy5jCj4+Pj4+Pj4+PiBpbmRleCBhMTQ0 YmIwY2U0Li5kZGZlMDE2OWMwIDEwMDY0NAo+Pj4+Pj4+Pj4gLS0tIGEveGVuL2FyY2gveDg2L21t L21lbV9hY2Nlc3MuYwo+Pj4+Pj4+Pj4gKysrIGIveGVuL2FyY2gveDg2L21tL21lbV9hY2Nlc3Mu Ywo+Pj4+Pj4+Pj4gQEAgLTI2MiwzNSArMjYyLDExIEBAIGludCBwMm1fc2V0X2FsdHAybV9tZW1f YWNjZXNzKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBwMm1fZG9tYWluICpocDJtLAo+Pj4+Pj4+ Pj4gICAgICAgbWZuX3QgbWZuOwo+Pj4+Pj4+Pj4gICAgICAgcDJtX3R5cGVfdCB0Owo+Pj4+Pj4+ Pj4gICAgICAgcDJtX2FjY2Vzc190IG9sZF9hOwo+Pj4+Pj4+Pj4gLSAgICB1bnNpZ25lZCBpbnQg cGFnZV9vcmRlcjsKPj4+Pj4+Pj4+IC0gICAgdW5zaWduZWQgbG9uZyBnZm5fbCA9IGdmbl94KGdm bik7Cj4+Pj4+Pj4+PiAgICAgICBpbnQgcmM7Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gLSAgICBtZm4g PSBhcDJtLT5nZXRfZW50cnkoYXAybSwgZ2ZuLCAmdCwgJm9sZF9hLCAwLCBOVUxMLCBOVUxMKTsK Pj4+Pj4+Pj4+IC0KPj4+Pj4+Pj4+IC0gICAgLyogQ2hlY2sgaG9zdCBwMm0gaWYgbm8gdmFsaWQg ZW50cnkgaW4gYWx0ZXJuYXRlICovCj4+Pj4+Pj4+PiAtICAgIGlmICggIW1mbl92YWxpZChtZm4p ICkKPj4+Pj4+Pj4+IC0gICAgewo+Pj4+Pj4+Pj4gLQo+Pj4+Pj4+Pj4gLSAgICAgICAgbWZuID0g X19nZXRfZ2ZuX3R5cGVfYWNjZXNzKGhwMm0sIGdmbl9sLCAmdCwgJm9sZF9hLAo+Pj4+Pj4+Pj4g LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFAyTV9BTExPQyB8IFAyTV9VTlNI QVJFLCAmcGFnZV9vcmRlciwgMCk7Cj4+Pj4+Pj4+PiAtCj4+Pj4+Pj4+PiAtICAgICAgICByYyA9 IC1FU1JDSDsKPj4+Pj4+Pj4+IC0gICAgICAgIGlmICggIW1mbl92YWxpZChtZm4pIHx8IHQgIT0g cDJtX3JhbV9ydyApCj4+Pj4+Pj4+PiAtICAgICAgICAgICAgcmV0dXJuIHJjOwo+Pj4+Pj4+Pj4g LQo+Pj4+Pj4+Pj4gLSAgICAgICAgLyogSWYgdGhpcyBpcyBhIHN1cGVycGFnZSwgY29weSB0aGF0 IGZpcnN0ICovCj4+Pj4+Pj4+PiAtICAgICAgICBpZiAoIHBhZ2Vfb3JkZXIgIT0gUEFHRV9PUkRF Ul80SyApCj4+Pj4+Pj4+PiAtICAgICAgICB7Cj4+Pj4+Pj4+PiAtICAgICAgICAgICAgdW5zaWdu ZWQgbG9uZyBtYXNrID0gfigoMVVMIDw8IHBhZ2Vfb3JkZXIpIC0gMSk7Cj4+Pj4+Pj4+PiAtICAg ICAgICAgICAgZ2ZuX3QgZ2ZuMiA9IF9nZm4oZ2ZuX2wgJiBtYXNrKTsKPj4+Pj4+Pj4+IC0gICAg ICAgICAgICBtZm5fdCBtZm4yID0gX21mbihtZm5feChtZm4pICYgbWFzayk7Cj4+Pj4+Pj4+PiAt Cj4+Pj4+Pj4+PiAtICAgICAgICAgICAgcmMgPSBhcDJtLT5zZXRfZW50cnkoYXAybSwgZ2ZuMiwg bWZuMiwgcGFnZV9vcmRlciwgdCwgb2xkX2EsIDEpOwo+Pj4+Pj4+Pj4gLSAgICAgICAgICAgIGlm ICggcmMgKQo+Pj4+Pj4+Pj4gLSAgICAgICAgICAgICAgICByZXR1cm4gcmM7Cj4+Pj4+Pj4+PiAt ICAgICAgICB9Cj4+Pj4+Pj4+PiAtICAgIH0KPj4+Pj4+Pj4+ICsgICAgcmMgPSBhbHRwMm1fZ2V0 X2VudHJ5X3ByZXBvcHVsYXRlKGFwMm0sIGdmbiwgJm1mbiwgJnQsICZvbGRfYSk7Cj4+Pj4+Pj4+ PiArICAgIGlmICggcmMgKQo+Pj4+Pj4+Pj4gKyAgICAgICAgcmV0dXJuIHJjOwo+Pj4+Pj4+Pj4K Pj4+Pj4+Pj4+ICAgICAgIC8qCj4+Pj4+Pj4+PiAgICAgICAgKiBJbmhlcml0IHRoZSBvbGQgc3Vw cHJlc3MgI1ZFIGJpdCB2YWx1ZSBpZiBpdCBpcyBhbHJlYWR5IHNldCwgb3Igc2V0IGl0Cj4+Pj4+ Pj4+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3AybS5jIGIveGVuL2FyY2gveDg2L21t L3AybS5jCj4+Pj4+Pj4+PiBpbmRleCA5ZTgxYTMwY2M0Li43YmVkZmQ1OTNiIDEwMDY0NAo+Pj4+ Pj4+Pj4gLS0tIGEveGVuL2FyY2gveDg2L21tL3AybS5jCj4+Pj4+Pj4+PiArKysgYi94ZW4vYXJj aC94ODYvbW0vcDJtLmMKPj4+Pj4+Pj4KPj4+Pj4+Pj4gV291bGRuJ3QgaXQgbWFrZSBtb3JlIHNl bnNlIHRvIHN0YXJ0IGFkZGluZyBuZXcgYWx0cDJtIGZ1bmN0aW9ucyB0bwo+Pj4+Pj4+PiBtbS9h bHRwMm0uYyBpbnN0ZWFkPyBQcm9iYWJseSB0aGUgYWx0cDJtIGZ1bmN0aW9ucyBmcm9tIG1tL3Ay bS5jIGNvdWxkCj4+Pj4+Pj4+IGFsc28gYmUgcmVsb2NhdGVkIHRoZXJlIGF0IHNvbWUgcG9pbnQg aW4gdGhlIGZ1dHVyZS4KPj4+Pj4+Pj4KPj4+Pj4+Pj4+IEBAIC00NzgsNiArNDc4LDQzIEBAIHZv aWQgcDJtX3VubG9ja19hbmRfdGxiX2ZsdXNoKHN0cnVjdCBwMm1fZG9tYWluICpwMm0pCj4+Pj4+ Pj4+PiAgICAgICAgICAgbW1fd3JpdGVfdW5sb2NrKCZwMm0tPmxvY2spOwo+Pj4+Pj4+Pj4gICB9 Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gK2ludCBhbHRwMm1fZ2V0X2VudHJ5KHN0cnVjdCBwMm1fZG9t YWluICphcDJtLAo+Pj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZm5fdCBn Zm4sIG1mbl90ICptZm4sIHAybV90eXBlX3QgKnQsCj4+Pj4+Pj4+PiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHAybV9hY2Nlc3NfdCAqYSwgYm9vbCBwcmVwb3B1bGF0ZSkKPj4+Pj4+Pj4+ ICt7Cj4+Pj4+Pj4+PiArICAgICptZm4gPSBhcDJtLT5nZXRfZW50cnkoYXAybSwgZ2ZuLCB0LCBh LCAwLCBOVUxMLCBOVUxMKTsKPj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4+ICsgICAgLyogQ2hlY2sgaG9z dCBwMm0gaWYgbm8gdmFsaWQgZW50cnkgaW4gYWx0ZXJuYXRlICovCj4+Pj4+Pj4+PiArICAgIGlm ICggIW1mbl92YWxpZCgqbWZuKSAmJiAhcDJtX2lzX2hvc3RwMm0oYXAybSkgKQo+Pj4+Pj4+Pj4g KyAgICB7Cj4+Pj4+Pj4+PiArICAgICAgICBzdHJ1Y3QgcDJtX2RvbWFpbiAqaHAybSA9IHAybV9n ZXRfaG9zdHAybShhcDJtLT5kb21haW4pOwo+Pj4+Pj4+Pj4gKyAgICAgICAgdW5zaWduZWQgaW50 IHBhZ2Vfb3JkZXI7Cj4+Pj4+Pj4+PiArICAgICAgICBpbnQgcmM7Cj4+Pj4+Pj4+PiArCj4+Pj4+ Pj4+PiArICAgICAgICAqbWZuID0gX19nZXRfZ2ZuX3R5cGVfYWNjZXNzKGhwMm0sIGdmbl94KGdm biksIHQsIGEsCj4+Pj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFAyTV9BTExPQyB8IFAyTV9VTlNIQVJFLCAmcGFnZV9vcmRlciwgMCk7Cj4+Pj4+Pj4+Cj4+Pj4+ Pj4+IFNvIGRlc3BpdGUgdGhlIG5hbWUgYmVpbmcgYWx0cDJtX2dldF9lbnRyeSB5b3Ugbm93IHJl dHVybiBhbiBlbnRyeQo+Pj4+Pj4+PiBmcm9tIHRoZSBob3N0cDJtLCBldmVuIGlmIHByZXBvcHVs YXRlIGlzIGZhbHNlLiBJZiB0aGUgY2FsbGVyIGtub3dzIGl0Cj4+Pj4+Pj4+IGRvZXNuJ3Qgd2Fu dCB0aGF0IGVudHJ5IHRvIGJlIGNvcGllZCBpbnRvIHRoZSBhbHRwMm0sIHdoeSBub3QgaGF2ZSBp dAo+Pj4+Pj4+PiBjYWxsIF9fZ2V0X2dmbl90eXBlX2FjY2VzcyBpdHNlbGYgZm9yIHRoZSBob3N0 cDJtPyBJTUhPIHRoaXMgaXMganVzdAo+Pj4+Pj4+PiBjb25mdXNpbmcgYW5kIGRvZXNuJ3QgaGVs cCByZWFkYWJpbGl0eSBvZiB0aGUgYWx0cDJtIGNvZGUuCj4+Pj4+Pj4KPj4+Pj4+PiBZb3UgcmV0 dXJuIHRoZSBhcDJtIGVudHJ5IGlmIGl0J3MgcHJlc2VudCwgb3IgdGhlIGhwMm0gZW50cnkgaWYg aXQncwo+Pj4+Pj4+IG5vdC4gIEl0J3Mgbm90IGEgbG90IG9mIGR1cGxpY2F0aW9uLCBidXQgaXQg bWFrZXMgdGhlIGxvZ2ljIGNsZWFuZXIgSQo+Pj4+Pj4+IHRoaW5rOyB3aHkgbm90IGRlZHVwbGlj YXRlIGl0Pwo+Pj4+Pj4KPj4+Pj4+IEkgaGF2ZSBubyBwcm9ibGVtIHdpdGggbWFraW5nIHRoZSBj b2RlIG1vcmUgc3RyZWFtbGluZWQuIFRoZSBwcm9ibGVtIEkKPj4+Pj4+IGhhdmUgaXMgdGhhdCB0 aGUgZnVuY3Rpb24ncyBuYW1lIGRvZXNuJ3Qgc3VnZ2VzdCBpdCB3b3VsZCBnZXQgeW91Cj4+Pj4+ PiBhbnl0aGluZyBidXQgdGhlIGVudHJ5IGZyb20gdGhlIHNwZWNpZmllZCBhbHRwMm0uIFNvIHlv dSBjb3VsZCBiZQo+Pj4+Pj4gcmVhZGluZyB0aGUgY29kZSBhc3N1bWluZyB5b3UgYXJlIGRlYWxp bmcgd2l0aCBhbiBlbnRyeSBmcm9tIHRoYXQKPj4+Pj4+IHNwZWNpZmllZCB0YWJsZSB3aGVuIGlu IGZhY3QgeW91IGFyZSBub3QuIFRoYXQgaXMgbm90IGFuIGV4cGVjdGVkCj4+Pj4+PiBiZWhhdmlv ciBiYXNlZCBvbiBqdXN0IHRoZSBuYW1lIG9mIHRoZSBmdW5jdGlvbi4gVGhpcyBpcyBnb2luZyB0 byBtYWtlCj4+Pj4+PiByZWFkaW5nIHRoZSBhbHRwMm0gY29kZSB0aGF0IG11Y2ggaGFyZGVyIGlu IHRoZSBmdXR1cmUuCj4+Pj4+Cj4+Pj4+IFJpZ2h0IC0tIEkgd2Fzbid0IGEgaHVnZSBmYW4gb2Yg J2RpcmVjdCcgZWl0aGVyOyBpdCBkaWRuJ3QgcmVhbGx5IGNvbnZleQo+Pj4+PiB0byBtZSAxMDAl IHdoYXQgdGhlIGZ1bmN0aW9uIGRpZC4gIE15IFBvQyBoYWQgInNlZXRocm91Z2giLCBidXQgdGhh dAo+Pj4+PiB3YXNuJ3QgdGhhdCBncmVhdCBlaXRoZXIuICAiUGVlayI/ICBBbnkgb3RoZXIgc3Vn Z2VzdGlvbnM/Cj4+Pj4+Cj4+Pj4+IE90aGVyIG9wdGlvbnM6Cj4+Pj4+Cj4+Pj4+ICogSWYgd2Ug aGF2ZSBhIHNpbmdsZSBmdW5jdGlvbiB3aXRoIGEgI2RlZmluZSwgdGhpcyBtaWdodCBnZXQgYSBi aXQKPj4+Pj4gZWFzaWVyOyAgd2UgY291bGQgaGF2ZSBvbmUgYmUgQVAyTUdFVF9kb250X3ByZXBv cHVsYXRlIG9yIHNvbWV0aGluZy4KPj4+Pj4KPj4+Pj4gKCBXZSBjb3VsZCBoYXZlIHRoZSAiY29y ZSIgZnVuY3Rpb24gbmFtZWQgX2FsdHAybV9nZXRfZW50cnksIGFuZCBoYXZlCj4+Pj4+IGFsdHAy bV9nZXRfZW50cnkoKSBjYWxsIHdpdGggcHJlcG9wdWxhdGUgPSBmYWxzZSwgYW5kCj4+Pj4+IGFs dHAybV9nZXRfZW50cnlfcHJlcG9wdWxhdGUoKSBjYWxsIGl0IHdpdGggcHJlcG9wdWxhdGUgPSB0 cnVlLgo+Pj4+Cj4+Pj4gVGhpcyBvcHRpb24gd2l0aCBubyBkZWZpbmVzIHNlZW1zIHRvIHNvbHZl IG1vcmUgb2YgdGhlIG5hbWluZyBwcm9ibGVtcwo+Pj4+IGJ1dCBpdCB3aWxsIHN0aWxsIGludHJv ZHVjZSB0aGUgc3BhZ2hldHRpIGNvZGUuIEkgdm90ZSBmb3IgdGhpcyBvbmUgYW5kCj4+Pj4gaWYg VGFtYXMgYWdyZWVzIEkgd2lsbCBoYXZlIGl0IHRoaXMgd2F5IGluIHRoZSBuZXh0IHZlcnNpb24u Cj4+Pj4KPj4+Cj4+PiBIYXZpbmcgYWx0cDJtX2dldF9lbnRyeSBhbmQgYWx0cDJtX2dldF9lbnRy eV9wcmVwb3B1bGF0ZSBzZWVtIHRvIGJlIGEKPj4+IGJldHRlciBuYW1lIGZvciB0aGVtLCBhcyBs b25nIGFzIGFsdHAybV9nZXRfZW50cnkgZG9lc24ndCByZXR1cm4gYW4KPj4+IGVudHJ5IGZyb20g dGhlIGhvc3RwMm0gaWYgdGhlcmUgaXNuJ3Qgb25lIGluIHRoZSBhbHRwMm0sIGFuZAo+Pj4gYWx0 cDJtX2dldF9lbnRyeV9wcmVwb3B1bGF0ZSByZXR1cm5zIGFuIGVudHJ5IG9ubHkgaWYgcHJlcG9w dWxhdGlvbgo+Pj4gYWN0dWFsbHkgd29ya2VkLiBJbiBib3RoIG9mIHRob3NlIGNhc2VzIHRoZSBm dW5jdGlvbnMgd291bGQgb25seQo+Pj4gcmV0dXJuIGVudHJpZXMgZnJvbSB0aGUgYWx0cDJtLCBh cyB0aGVpciBuYW1lIGFjdHVhbGx5IHN1Z2dlc3RzLgo+Pgo+PiBZb3Ugc2VlbSB0byBoYXZlIG1p c3NlZCB0aGUgd2hvbGUgcG9pbnQgb2YgdGhpcyBwYXRjaCB0aGVuLgo+IAo+IEZvcmdpdmUgbWUg YnV0IHRoZW4gSSBkb24ndCBzZWUgYW55d2hlcmUgaW4gdGhlIHBhdGNoIGRlc2NyaXB0aW9uIHRo YXQKPiBleHBsYWluIHdoeSB0aGVzZSBmdW5jdGlvbnMgX2hhdmUgdG9fIHBlcmZvcm0gYSBmYWxs LWJhY2sgYW5kIHJldHVybgo+IGFuIGVudHJ5IGZyb20gdGhlIGhvc3RwMm0gYXQgYWxsIGNvc3Qu CgpUaGUgcHJpbWFyeSBlZmZlY3Qgb2YgdGhpcyBwYXRjaCBpcyB0byBtb3ZlIGR1cGxpY2F0ZWQg Y29kZSBpbnRvIGEKc2luZ2xlIGNvbW1vbiBmdW5jdGlvbi4gIFRoZSBjb2RlIGJlaW5nIGRlLWR1 cGxpY2F0ZWQ6CiAxLiBUcmllcyB0byByZWFkIHRoZSBhbHRwMm0gZW50cnk7IGlmIGl0J3MgdGhl cmUgaXQgdXNlcyBpdAogMi4gSWYgaXQncyBub3QgdGhlcmUsIGl0IHRyaWVzIHRvIHJlYWQgdGhl IGhvc3QgcDJtIGVudHJ5CiAzLiBJbiBtb3N0IGNhc2VzIGl0IHRoZW4gcHJvcGFnYXRlcyB0aGUg aG9zdHAybSBlbnRyeSB0byB0aGUgYWx0cDJtIGVudHJ5LgoKT2J2aW91c2x5IHRoZSBuZXcgImNv bW1vbiIgZnVuY3Rpb24gaGFzIHRvIGRvIGl0IGJlY2F1c2UgdGhhdCdzIHdoYXQgdGhlCm9yaWdp bmFsIGNvZGUgZG9lcy4gIFRoZSBvcmlnaW5hbCBjb2RlIGRvZXMgaXQgYmVjYXVzZSB0aGF0J3Mg d2hhdAphbHRwMm0gaXMgLS0gYSAicGF0Y2giIG92ZXIgdGhlIGhvc3QgcDJtLCBzdWNoIHRoYXQg eW91IHVzZSB0aGUgYWx0cDJtCmlmIGVudHJpZXMgYXJlIHByZXNlbnQsIGJ1dCB1c2UgdGhlIGhv c3RwMm0gb3RoZXJ3aXNlLgoKPj4gSW5zdGVhZCBvZiBzYXlpbmcsICJJIGRvbid0IGxpa2UgdGhl c2UgbmFtZXMiIChidXQgbm90IG9mZmVyaW5nCj4+IGFsdGVybmF0aXZlKSwgb3Igc2F5aW5nLCAi SWYgeW91IHVzZSB0aGVzZSBuYW1lcywgdGhlIGZ1bmN0aW9ucyBoYXZlIHRvCj4+IGRvIHRoZSBl eGFjdCBvcHBvc2l0ZSBvZiB3aGF0IHRoZXkgZG8gaW4gdGhpcyBwYXRjaCIsIGl0IHdvdWxkIGJl IG1vcmUKPj4gY29uc3RydWN0aXZlIGlmIHlvdSBwcm9wb3NlZCBuYW1lcyB3aGljaCB5b3Ugd291 bGQgcHJlZmVyIGZvciB0aGUKPj4gZnVuY3Rpb25hbGl0eSBhY3R1YWxseSBpbiB0aGlzIHBhdGNo Lgo+Pgo+IAo+IEknbSBub3QgdGhlIG1haW50YWluZXIgb2YgdGhpcyBjb2RlIHNvIGZlZWwgZnJl ZSB0byBpZ25vcmUgbXkKPiBjb21tZW50cy4gSSBqdXN0IHNlZSB3YXkgdG9vIG1hbnkgZnVuY3Rp b25zIGluIFhlbiB0aGF0IGFyZSAiZG9feCgpIgo+IGJ1dCBpbiBpbiBmYWN0IHR1cm4gb3V0IHRv IGJlICJkb194X2FuZF95X2FuZF96KCkiIHdoaWNoIGRvZXMgbm90IGhlbHAKPiByZWFkYWJpbGl0 eSBvciBldmVuIHJlYWxseSB1bmRlcnN0YW5kaW5nIHdoYXQgaXMgaGFwcGVuaW5nLiBJIGd1ZXNz IGF0Cj4gbGVhc3QgYWRkaW5nIGNvbW1lbnRzIGRlc2NyaWJpbmcgdGhlc2UgYWRkaXRpb25hbCBh bmQgc29tZXRpbWVzCj4gdW5leHBlY3RlZCBiZWhhdmlvcnMgd291bGQgYmUgYW4gaW1wcm92ZW1l bnQuCgpZb3UgYXJlIGEgbWFpbnRhaW5lciBmb3IgbWVtX2FjY2Vzcy5jLCB3aGljaCBoYXMgYSBu b24tdHJpdmlhbCBjaGFuZ2UgaW4KdGhpcyBwYXRjaC4gIEl0IGNhbiBnbyBpbiB3aXRoIFJhenZh bidzIGFjaywgYnV0IG5vdCB3aGlsZSB5b3UgaGF2ZSBvcGVuCm9iamVjdGlvbnMuCgpJIGZlZWwg eW91ciBwYWluIHdpdGggZnVuY3Rpb24gbmFtaW5nOyBJJ3ZlIGJlZW4gZGlnZ2luZyB0aHJvdWdo Cng4Ni9tbS5jIHJlY2VudGx5IGFuZCB0aGUgZnVuY3Rpb24gbmFtZXMgYXJlIHVubmVjZXNzYXJp bHkgY29uZnVzaW5nLiAgSQphbHNvIGFncmVlIHRoYXQgImFsdHAybV9nZXRfZW50cnkiIGlzbid0 IHRlcnJpYmx5IGluZm9ybWF0aXZlIChhbHRob3VnaAppdCdzIGEgYml0IG1vcmUgb2J2aW91cyBp ZiB5b3Uga25vdyBob3cgYWx0cDJtIGlzIG1lYW50IHRvIHdvcmspLiAgSSdtCmp1c3QgdHJ5aW5n IHRvIG1ha2Ugc3VyZSB0aGF0IHRoZXJlJ3MgYSBjbGVhciB3YXkgZm9yIEFsZXhhbmRydSB0byBt b3ZlCnRoaXMgcGF0Y2ggZm9yd2FyZC4gIEkgZG9uJ3QgbWluZCB0cnlpbmcgdG8gY29tZSB1cCB3 aXRoIGEgYmV0dGVyIG5hbWUsCmJ1dCB0aGUgcGF0Y2ggc2hvdWxkbid0IGJlIGJsb2NrZWQgaWYg d2UgY2FuJ3QuCgpJIGFncmVlIHRoYXQgdGhlIGZ1bmN0aW9uIHNob3VsZCBoYXZlIGEgY29tbWVu dCB0aGF0IGRlc2NyaWJlcyBpdHMgcHVycG9zZS4KCldoYXQgYWJvdXQgImFsdHAybV9yZXNvbHZl X2VudHJ5KCkiPyAgImFsdHAybV9nZXRfZWZmZWN0aXZlX2VudHJ5Ij8KCiAtR2VvcmdlCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFp bGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhl bnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs 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=-7.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED 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 96DDFC10F0E for ; Thu, 18 Apr 2019 17:03:22 +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 584C42171F for ; Thu, 18 Apr 2019 17:03:22 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 584C42171F Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=citrix.com 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 1hHAR8-0006er-Qb; Thu, 18 Apr 2019 17:02:58 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hHAR7-0006ek-LS for xen-devel@lists.xenproject.org; Thu, 18 Apr 2019 17:02:57 +0000 X-Inumbo-ID: ceecf51f-61fb-11e9-92d7-bc764e045a96 Received: from SMTP03.CITRIX.COM (unknown [162.221.156.55]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS id ceecf51f-61fb-11e9-92d7-bc764e045a96; Thu, 18 Apr 2019 17:02:55 +0000 (UTC) X-IronPort-AV: E=Sophos;i="5.60,366,1549929600"; d="scan'208";a="83917041" To: Tamas K Lengyel References: <20190416084531.5084-1-aisaila@bitdefender.com> <51aac97d-3773-f3df-204d-55912f5915db@citrix.com> <73576bc2-5ab2-b5ef-ca0b-fb50b4cd7775@citrix.com> From: George Dunlap Openpgp: preference=signencrypt Autocrypt: addr=george.dunlap@citrix.com; prefer-encrypt=mutual; keydata= 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 rIFfe2Dk+lD9A9BVd2rfoHA= Message-ID: Date: Thu, 18 Apr 2019 18:02:51 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.5.1 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US Subject: Re: [Xen-devel] [PATCH v5] x86/altp2m: Aggregate get entry and populate into common funcs 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: "wei.liu2@citrix.com" , "rcojocaru@bitdefender.com" , "george.dunlap@eu.citrix.com" , "andrew.cooper3@citrix.com" , "jbeulich@suse.com" , Alexandru Stefan ISAILA , "xen-devel@lists.xenproject.org" , "roger.pau@citrix.com" Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" Message-ID: <20190418170251.szINKyzL64F83vt7RsVetltUXTQXSpaRCS5fcqaUjuk@z> T24gNC8xOC8xOSAyOjU5IFBNLCBUYW1hcyBLIExlbmd5ZWwgd3JvdGU6Cj4gT24gVGh1LCBBcHIg MTgsIDIwMTkgYXQgMzo1MyBBTSBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGNpdHJpeC5j b20+IHdyb3RlOgo+Pgo+PiBPbiA0LzE3LzE5IDc6MjIgUE0sIFRhbWFzIEsgTGVuZ3llbCB3cm90 ZToKPj4+IE9uIFdlZCwgQXByIDE3LCAyMDE5IGF0IDE6MTUgQU0gQWxleGFuZHJ1IFN0ZWZhbiBJ U0FJTEEKPj4+IDxhaXNhaWxhQGJpdGRlZmVuZGVyLmNvbT4gd3JvdGU6Cj4+Pj4KPj4+Pgo+Pj4+ Cj4+Pj4gT24gMTYuMDQuMjAxOSAxODowNywgR2VvcmdlIER1bmxhcCB3cm90ZToKPj4+Pj4gT24g NC8xNi8xOSAzOjE5IFBNLCBUYW1hcyBLIExlbmd5ZWwgd3JvdGU6Cj4+Pj4+PiBPbiBUdWUsIEFw ciAxNiwgMjAxOSBhdCA4OjAyIEFNIEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAY2l0cml4 LmNvbT4gd3JvdGU6Cj4+Pj4+Pj4KPj4+Pj4+PiBPbiA0LzE2LzE5IDI6NDQgUE0sIFRhbWFzIEsg TGVuZ3llbCB3cm90ZToKPj4+Pj4+Pj4gT24gVHVlLCBBcHIgMTYsIDIwMTkgYXQgMjo0NSBBTSBB bGV4YW5kcnUgU3RlZmFuIElTQUlMQQo+Pj4+Pj4+PiA8YWlzYWlsYUBiaXRkZWZlbmRlci5jb20+ IHdyb3RlOgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IFRoZSBjb2RlIGZvciBnZXR0aW5nIHRoZSBlbnRy eSBhbmQgdGhlbiBwb3B1bGF0aW5nIHdhcyByZXBlYXRlZCBpbgo+Pj4+Pj4+Pj4gcDJtX2NoYW5n ZV9hbHRwMm1fZ2ZuKCkgYW5kIGluIHAybV9zZXRfYWx0cDJtX21lbV9hY2Nlc3MoKS4KPj4+Pj4+ Pj4+Cj4+Pj4+Pj4+PiBUaGUgY29kZSBpcyBub3cgaW4gb25lIHBsYWNlIHdpdGggYSBib29sIHBh cmFtIHRoYXQgbGV0cyB0aGUgY2FsbGVyIGNob29zZQo+Pj4+Pj4+Pj4gaWYgaXQgcG9wdWxhdGVz IGFmdGVyIGdldF9lbnRyeSgpLgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IElmIHJlbWFwcGluZyBpcyBi ZWluZyBkb25lIHRoZW4gYm90aCB0aGUgb2xkIGFuZCBuZXcgZ2ZuJ3Mgc2hvdWxkIGJlCj4+Pj4+ Pj4+PiB1bnNoYXJlZCBpbiB0aGUgaG9zdHAybSBmb3Iga2VlcGluZyB0aGluZ3MgY29uc2lzdGVu dC4gVGhlIHBhZ2UgdHlwZQo+Pj4+Pj4+Pj4gb2Ygb2xkX2dmbiB3YXMgYWxyZWFkeSBjaGVja2Vk IHdoZXRoZXIgaXQncyBwMm1fcmFtX3J3IGFuZCBiYWlsIGlmIGl0Cj4+Pj4+Pj4+PiB3YXNuJ3Qg c28gZnVuY3Rpb25hbGl0eS13aXNlIHRoaXMganVzdCBzaW1wbGlmaWVzIHRoaW5ncyBhcyBhIHVz ZXIKPj4+Pj4+Pj4+IGRvZXNuJ3QgaGF2ZSB0byByZXF1ZXN0IHVuc2hhcmluZyBtYW51YWxseSBi ZWZvcmUgcmVtYXBwaW5nLgo+Pj4+Pj4+Pj4gTm93LCBpZiB0aGUgbmV3X2dmbiBpcyBpbnZhbGlk IGl0IHNob3VsZG4ndCBxdWVyeSB0aGUgaG9zdHAybSBhcwo+Pj4+Pj4+Pj4gdGhhdCBpcyBlZmZl Y3RpdmVseSBhIHJlcXVlc3QgdG8gcmVtb3ZlIHRoZSBlbnRyeSBmcm9tIHRoZSBhbHRwMm0uCj4+ Pj4+Pj4+PiBCdXQgcHJvdmlkZWQgdGhhdCBzY2VuYXJpbyBpcyB1c2VkIG9ubHkgd2hlbiByZW1v dmluZyBlbnRyaWVzIHRoYXQKPj4+Pj4+Pj4+IHdlcmUgcHJldmlvdXNseSByZW1hcHBlZC9jb3Bp ZWQgdG8gdGhlIGFsdHAybSwgdGhvc2UgZW50cmllcyBhbHJlYWR5Cj4+Pj4+Pj4+PiB3ZW50IHRo cm91Z2ggUDJNX0FMTE9DIHwgUDJNX1VOU0hBUkUgYmVmb3JlLCBzbyBpdCB3b24ndCBoYXZlIGFu Cj4+Pj4+Pj4+PiBhZmZlY3Qgc28gdGhlIGNvcmUgZnVuY3Rpb24gZ2V0X2FsdHAybV9lbnRyeSgp IGlzIGNhbGxpbmcKPj4+Pj4+Pj4+IF9fZ2V0X2dmbl90eXBlX2FjY2VzcygpIHdpdGggUDJNX0FM TE9DIHwgUDJNX1VOU0hBUkUuCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gYWx0cDJtX2dldF9lbnRyeV9k aXJlY3QoKSBpcyBhbHNvIGNhbGxlZCBpbiBwMm1fc2V0X3N1cHByZXNzX3ZlKCkKPj4+Pj4+Pj4+ IGJlY2F1c2Ugb24gYSBuZXcgYWx0cDJtIHZpZXcgdGhlIGZ1bmN0aW9uIHdpbGwgZmFpbCB3aXRo IGludmFsaWQgbWZuIGlmCj4+Pj4+Pj4+PiBwMm0tPnNldF9lbnRyeSgpIHdhcyBub3QgY2FsbGVk IGJlZm9yZS4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBTaWduZWQtb2ZmLWJ5OiBBbGV4YW5kcnUgSXNh aWxhIDxhaXNhaWxhQGJpdGRlZmVuZGVyLmNvbT4KPj4+Pj4+Pj4+IFNpZ25lZC1vZmYtYnk6IEdl b3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAY2l0cml4LmNvbT4KPj4+Pj4+Pj4+IFJldmlld2Vk LWJ5OiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGNpdHJpeC5jb20+Cj4+Pj4+Pj4+Pgo+ Pj4+Pj4+Pj4gLS0tCj4+Pj4+Pj4+PiBDaGFuZ2VzIHNpbmNlIFY0Ogo+Pj4+Pj4+Pj4gICAgICAg ICAgLSBBZGQgYWx0cDJtIHRvIHBhdGNoIG5hbWUKPj4+Pj4+Pj4+ICAgICAgICAgIC0gQ2hhbmdl IGZ1bmMgbmFtZSBmcm9tIGdldF9hbHRwMm1fZW50cnkoKSB0bwo+Pj4+Pj4+Pj4gYWx0cDJtX2dl dF9lbnRyeSgpLgo+Pj4+Pj4+Pj4gLS0tCj4+Pj4+Pj4+PiAgIHhlbi9hcmNoL3g4Ni9tbS9tZW1f YWNjZXNzLmMgfCAzMCArKy0tLS0tLS0tLS0tCj4+Pj4+Pj4+PiAgIHhlbi9hcmNoL3g4Ni9tbS9w Mm0uYyAgICAgICAgfCA4NCArKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0tLS0KPj4+ Pj4+Pj4+ICAgeGVuL2luY2x1ZGUvYXNtLXg4Ni9wMm0uaCAgICB8IDE3ICsrKysrKysrCj4+Pj4+ Pj4+PiAgIDMgZmlsZXMgY2hhbmdlZCwgNjYgaW5zZXJ0aW9ucygrKSwgNjUgZGVsZXRpb25zKC0p Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gZGlmZiAtLWdpdCBhL3hlbi9hcmNoL3g4Ni9tbS9tZW1fYWNj ZXNzLmMgYi94ZW4vYXJjaC94ODYvbW0vbWVtX2FjY2Vzcy5jCj4+Pj4+Pj4+PiBpbmRleCBhMTQ0 YmIwY2U0Li5kZGZlMDE2OWMwIDEwMDY0NAo+Pj4+Pj4+Pj4gLS0tIGEveGVuL2FyY2gveDg2L21t L21lbV9hY2Nlc3MuYwo+Pj4+Pj4+Pj4gKysrIGIveGVuL2FyY2gveDg2L21tL21lbV9hY2Nlc3Mu Ywo+Pj4+Pj4+Pj4gQEAgLTI2MiwzNSArMjYyLDExIEBAIGludCBwMm1fc2V0X2FsdHAybV9tZW1f YWNjZXNzKHN0cnVjdCBkb21haW4gKmQsIHN0cnVjdCBwMm1fZG9tYWluICpocDJtLAo+Pj4+Pj4+ Pj4gICAgICAgbWZuX3QgbWZuOwo+Pj4+Pj4+Pj4gICAgICAgcDJtX3R5cGVfdCB0Owo+Pj4+Pj4+ Pj4gICAgICAgcDJtX2FjY2Vzc190IG9sZF9hOwo+Pj4+Pj4+Pj4gLSAgICB1bnNpZ25lZCBpbnQg cGFnZV9vcmRlcjsKPj4+Pj4+Pj4+IC0gICAgdW5zaWduZWQgbG9uZyBnZm5fbCA9IGdmbl94KGdm bik7Cj4+Pj4+Pj4+PiAgICAgICBpbnQgcmM7Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gLSAgICBtZm4g PSBhcDJtLT5nZXRfZW50cnkoYXAybSwgZ2ZuLCAmdCwgJm9sZF9hLCAwLCBOVUxMLCBOVUxMKTsK Pj4+Pj4+Pj4+IC0KPj4+Pj4+Pj4+IC0gICAgLyogQ2hlY2sgaG9zdCBwMm0gaWYgbm8gdmFsaWQg ZW50cnkgaW4gYWx0ZXJuYXRlICovCj4+Pj4+Pj4+PiAtICAgIGlmICggIW1mbl92YWxpZChtZm4p ICkKPj4+Pj4+Pj4+IC0gICAgewo+Pj4+Pj4+Pj4gLQo+Pj4+Pj4+Pj4gLSAgICAgICAgbWZuID0g X19nZXRfZ2ZuX3R5cGVfYWNjZXNzKGhwMm0sIGdmbl9sLCAmdCwgJm9sZF9hLAo+Pj4+Pj4+Pj4g LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFAyTV9BTExPQyB8IFAyTV9VTlNI QVJFLCAmcGFnZV9vcmRlciwgMCk7Cj4+Pj4+Pj4+PiAtCj4+Pj4+Pj4+PiAtICAgICAgICByYyA9 IC1FU1JDSDsKPj4+Pj4+Pj4+IC0gICAgICAgIGlmICggIW1mbl92YWxpZChtZm4pIHx8IHQgIT0g cDJtX3JhbV9ydyApCj4+Pj4+Pj4+PiAtICAgICAgICAgICAgcmV0dXJuIHJjOwo+Pj4+Pj4+Pj4g LQo+Pj4+Pj4+Pj4gLSAgICAgICAgLyogSWYgdGhpcyBpcyBhIHN1cGVycGFnZSwgY29weSB0aGF0 IGZpcnN0ICovCj4+Pj4+Pj4+PiAtICAgICAgICBpZiAoIHBhZ2Vfb3JkZXIgIT0gUEFHRV9PUkRF Ul80SyApCj4+Pj4+Pj4+PiAtICAgICAgICB7Cj4+Pj4+Pj4+PiAtICAgICAgICAgICAgdW5zaWdu ZWQgbG9uZyBtYXNrID0gfigoMVVMIDw8IHBhZ2Vfb3JkZXIpIC0gMSk7Cj4+Pj4+Pj4+PiAtICAg ICAgICAgICAgZ2ZuX3QgZ2ZuMiA9IF9nZm4oZ2ZuX2wgJiBtYXNrKTsKPj4+Pj4+Pj4+IC0gICAg ICAgICAgICBtZm5fdCBtZm4yID0gX21mbihtZm5feChtZm4pICYgbWFzayk7Cj4+Pj4+Pj4+PiAt Cj4+Pj4+Pj4+PiAtICAgICAgICAgICAgcmMgPSBhcDJtLT5zZXRfZW50cnkoYXAybSwgZ2ZuMiwg bWZuMiwgcGFnZV9vcmRlciwgdCwgb2xkX2EsIDEpOwo+Pj4+Pj4+Pj4gLSAgICAgICAgICAgIGlm ICggcmMgKQo+Pj4+Pj4+Pj4gLSAgICAgICAgICAgICAgICByZXR1cm4gcmM7Cj4+Pj4+Pj4+PiAt ICAgICAgICB9Cj4+Pj4+Pj4+PiAtICAgIH0KPj4+Pj4+Pj4+ICsgICAgcmMgPSBhbHRwMm1fZ2V0 X2VudHJ5X3ByZXBvcHVsYXRlKGFwMm0sIGdmbiwgJm1mbiwgJnQsICZvbGRfYSk7Cj4+Pj4+Pj4+ PiArICAgIGlmICggcmMgKQo+Pj4+Pj4+Pj4gKyAgICAgICAgcmV0dXJuIHJjOwo+Pj4+Pj4+Pj4K Pj4+Pj4+Pj4+ICAgICAgIC8qCj4+Pj4+Pj4+PiAgICAgICAgKiBJbmhlcml0IHRoZSBvbGQgc3Vw cHJlc3MgI1ZFIGJpdCB2YWx1ZSBpZiBpdCBpcyBhbHJlYWR5IHNldCwgb3Igc2V0IGl0Cj4+Pj4+ Pj4+PiBkaWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L21tL3AybS5jIGIveGVuL2FyY2gveDg2L21t L3AybS5jCj4+Pj4+Pj4+PiBpbmRleCA5ZTgxYTMwY2M0Li43YmVkZmQ1OTNiIDEwMDY0NAo+Pj4+ Pj4+Pj4gLS0tIGEveGVuL2FyY2gveDg2L21tL3AybS5jCj4+Pj4+Pj4+PiArKysgYi94ZW4vYXJj aC94ODYvbW0vcDJtLmMKPj4+Pj4+Pj4KPj4+Pj4+Pj4gV291bGRuJ3QgaXQgbWFrZSBtb3JlIHNl bnNlIHRvIHN0YXJ0IGFkZGluZyBuZXcgYWx0cDJtIGZ1bmN0aW9ucyB0bwo+Pj4+Pj4+PiBtbS9h bHRwMm0uYyBpbnN0ZWFkPyBQcm9iYWJseSB0aGUgYWx0cDJtIGZ1bmN0aW9ucyBmcm9tIG1tL3Ay bS5jIGNvdWxkCj4+Pj4+Pj4+IGFsc28gYmUgcmVsb2NhdGVkIHRoZXJlIGF0IHNvbWUgcG9pbnQg aW4gdGhlIGZ1dHVyZS4KPj4+Pj4+Pj4KPj4+Pj4+Pj4+IEBAIC00NzgsNiArNDc4LDQzIEBAIHZv aWQgcDJtX3VubG9ja19hbmRfdGxiX2ZsdXNoKHN0cnVjdCBwMm1fZG9tYWluICpwMm0pCj4+Pj4+ Pj4+PiAgICAgICAgICAgbW1fd3JpdGVfdW5sb2NrKCZwMm0tPmxvY2spOwo+Pj4+Pj4+Pj4gICB9 Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gK2ludCBhbHRwMm1fZ2V0X2VudHJ5KHN0cnVjdCBwMm1fZG9t YWluICphcDJtLAo+Pj4+Pj4+Pj4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZm5fdCBn Zm4sIG1mbl90ICptZm4sIHAybV90eXBlX3QgKnQsCj4+Pj4+Pj4+PiArICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHAybV9hY2Nlc3NfdCAqYSwgYm9vbCBwcmVwb3B1bGF0ZSkKPj4+Pj4+Pj4+ ICt7Cj4+Pj4+Pj4+PiArICAgICptZm4gPSBhcDJtLT5nZXRfZW50cnkoYXAybSwgZ2ZuLCB0LCBh LCAwLCBOVUxMLCBOVUxMKTsKPj4+Pj4+Pj4+ICsKPj4+Pj4+Pj4+ICsgICAgLyogQ2hlY2sgaG9z dCBwMm0gaWYgbm8gdmFsaWQgZW50cnkgaW4gYWx0ZXJuYXRlICovCj4+Pj4+Pj4+PiArICAgIGlm ICggIW1mbl92YWxpZCgqbWZuKSAmJiAhcDJtX2lzX2hvc3RwMm0oYXAybSkgKQo+Pj4+Pj4+Pj4g KyAgICB7Cj4+Pj4+Pj4+PiArICAgICAgICBzdHJ1Y3QgcDJtX2RvbWFpbiAqaHAybSA9IHAybV9n ZXRfaG9zdHAybShhcDJtLT5kb21haW4pOwo+Pj4+Pj4+Pj4gKyAgICAgICAgdW5zaWduZWQgaW50 IHBhZ2Vfb3JkZXI7Cj4+Pj4+Pj4+PiArICAgICAgICBpbnQgcmM7Cj4+Pj4+Pj4+PiArCj4+Pj4+ Pj4+PiArICAgICAgICAqbWZuID0gX19nZXRfZ2ZuX3R5cGVfYWNjZXNzKGhwMm0sIGdmbl94KGdm biksIHQsIGEsCj4+Pj4+Pj4+PiArICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFAyTV9BTExPQyB8IFAyTV9VTlNIQVJFLCAmcGFnZV9vcmRlciwgMCk7Cj4+Pj4+Pj4+Cj4+Pj4+ Pj4+IFNvIGRlc3BpdGUgdGhlIG5hbWUgYmVpbmcgYWx0cDJtX2dldF9lbnRyeSB5b3Ugbm93IHJl dHVybiBhbiBlbnRyeQo+Pj4+Pj4+PiBmcm9tIHRoZSBob3N0cDJtLCBldmVuIGlmIHByZXBvcHVs YXRlIGlzIGZhbHNlLiBJZiB0aGUgY2FsbGVyIGtub3dzIGl0Cj4+Pj4+Pj4+IGRvZXNuJ3Qgd2Fu dCB0aGF0IGVudHJ5IHRvIGJlIGNvcGllZCBpbnRvIHRoZSBhbHRwMm0sIHdoeSBub3QgaGF2ZSBp dAo+Pj4+Pj4+PiBjYWxsIF9fZ2V0X2dmbl90eXBlX2FjY2VzcyBpdHNlbGYgZm9yIHRoZSBob3N0 cDJtPyBJTUhPIHRoaXMgaXMganVzdAo+Pj4+Pj4+PiBjb25mdXNpbmcgYW5kIGRvZXNuJ3QgaGVs cCByZWFkYWJpbGl0eSBvZiB0aGUgYWx0cDJtIGNvZGUuCj4+Pj4+Pj4KPj4+Pj4+PiBZb3UgcmV0 dXJuIHRoZSBhcDJtIGVudHJ5IGlmIGl0J3MgcHJlc2VudCwgb3IgdGhlIGhwMm0gZW50cnkgaWYg aXQncwo+Pj4+Pj4+IG5vdC4gIEl0J3Mgbm90IGEgbG90IG9mIGR1cGxpY2F0aW9uLCBidXQgaXQg bWFrZXMgdGhlIGxvZ2ljIGNsZWFuZXIgSQo+Pj4+Pj4+IHRoaW5rOyB3aHkgbm90IGRlZHVwbGlj YXRlIGl0Pwo+Pj4+Pj4KPj4+Pj4+IEkgaGF2ZSBubyBwcm9ibGVtIHdpdGggbWFraW5nIHRoZSBj b2RlIG1vcmUgc3RyZWFtbGluZWQuIFRoZSBwcm9ibGVtIEkKPj4+Pj4+IGhhdmUgaXMgdGhhdCB0 aGUgZnVuY3Rpb24ncyBuYW1lIGRvZXNuJ3Qgc3VnZ2VzdCBpdCB3b3VsZCBnZXQgeW91Cj4+Pj4+ PiBhbnl0aGluZyBidXQgdGhlIGVudHJ5IGZyb20gdGhlIHNwZWNpZmllZCBhbHRwMm0uIFNvIHlv dSBjb3VsZCBiZQo+Pj4+Pj4gcmVhZGluZyB0aGUgY29kZSBhc3N1bWluZyB5b3UgYXJlIGRlYWxp bmcgd2l0aCBhbiBlbnRyeSBmcm9tIHRoYXQKPj4+Pj4+IHNwZWNpZmllZCB0YWJsZSB3aGVuIGlu IGZhY3QgeW91IGFyZSBub3QuIFRoYXQgaXMgbm90IGFuIGV4cGVjdGVkCj4+Pj4+PiBiZWhhdmlv ciBiYXNlZCBvbiBqdXN0IHRoZSBuYW1lIG9mIHRoZSBmdW5jdGlvbi4gVGhpcyBpcyBnb2luZyB0 byBtYWtlCj4+Pj4+PiByZWFkaW5nIHRoZSBhbHRwMm0gY29kZSB0aGF0IG11Y2ggaGFyZGVyIGlu IHRoZSBmdXR1cmUuCj4+Pj4+Cj4+Pj4+IFJpZ2h0IC0tIEkgd2Fzbid0IGEgaHVnZSBmYW4gb2Yg J2RpcmVjdCcgZWl0aGVyOyBpdCBkaWRuJ3QgcmVhbGx5IGNvbnZleQo+Pj4+PiB0byBtZSAxMDAl IHdoYXQgdGhlIGZ1bmN0aW9uIGRpZC4gIE15IFBvQyBoYWQgInNlZXRocm91Z2giLCBidXQgdGhh dAo+Pj4+PiB3YXNuJ3QgdGhhdCBncmVhdCBlaXRoZXIuICAiUGVlayI/ICBBbnkgb3RoZXIgc3Vn Z2VzdGlvbnM/Cj4+Pj4+Cj4+Pj4+IE90aGVyIG9wdGlvbnM6Cj4+Pj4+Cj4+Pj4+ICogSWYgd2Ug aGF2ZSBhIHNpbmdsZSBmdW5jdGlvbiB3aXRoIGEgI2RlZmluZSwgdGhpcyBtaWdodCBnZXQgYSBi aXQKPj4+Pj4gZWFzaWVyOyAgd2UgY291bGQgaGF2ZSBvbmUgYmUgQVAyTUdFVF9kb250X3ByZXBv cHVsYXRlIG9yIHNvbWV0aGluZy4KPj4+Pj4KPj4+Pj4gKCBXZSBjb3VsZCBoYXZlIHRoZSAiY29y ZSIgZnVuY3Rpb24gbmFtZWQgX2FsdHAybV9nZXRfZW50cnksIGFuZCBoYXZlCj4+Pj4+IGFsdHAy bV9nZXRfZW50cnkoKSBjYWxsIHdpdGggcHJlcG9wdWxhdGUgPSBmYWxzZSwgYW5kCj4+Pj4+IGFs dHAybV9nZXRfZW50cnlfcHJlcG9wdWxhdGUoKSBjYWxsIGl0IHdpdGggcHJlcG9wdWxhdGUgPSB0 cnVlLgo+Pj4+Cj4+Pj4gVGhpcyBvcHRpb24gd2l0aCBubyBkZWZpbmVzIHNlZW1zIHRvIHNvbHZl IG1vcmUgb2YgdGhlIG5hbWluZyBwcm9ibGVtcwo+Pj4+IGJ1dCBpdCB3aWxsIHN0aWxsIGludHJv ZHVjZSB0aGUgc3BhZ2hldHRpIGNvZGUuIEkgdm90ZSBmb3IgdGhpcyBvbmUgYW5kCj4+Pj4gaWYg VGFtYXMgYWdyZWVzIEkgd2lsbCBoYXZlIGl0IHRoaXMgd2F5IGluIHRoZSBuZXh0IHZlcnNpb24u Cj4+Pj4KPj4+Cj4+PiBIYXZpbmcgYWx0cDJtX2dldF9lbnRyeSBhbmQgYWx0cDJtX2dldF9lbnRy eV9wcmVwb3B1bGF0ZSBzZWVtIHRvIGJlIGEKPj4+IGJldHRlciBuYW1lIGZvciB0aGVtLCBhcyBs b25nIGFzIGFsdHAybV9nZXRfZW50cnkgZG9lc24ndCByZXR1cm4gYW4KPj4+IGVudHJ5IGZyb20g dGhlIGhvc3RwMm0gaWYgdGhlcmUgaXNuJ3Qgb25lIGluIHRoZSBhbHRwMm0sIGFuZAo+Pj4gYWx0 cDJtX2dldF9lbnRyeV9wcmVwb3B1bGF0ZSByZXR1cm5zIGFuIGVudHJ5IG9ubHkgaWYgcHJlcG9w dWxhdGlvbgo+Pj4gYWN0dWFsbHkgd29ya2VkLiBJbiBib3RoIG9mIHRob3NlIGNhc2VzIHRoZSBm dW5jdGlvbnMgd291bGQgb25seQo+Pj4gcmV0dXJuIGVudHJpZXMgZnJvbSB0aGUgYWx0cDJtLCBh cyB0aGVpciBuYW1lIGFjdHVhbGx5IHN1Z2dlc3RzLgo+Pgo+PiBZb3Ugc2VlbSB0byBoYXZlIG1p c3NlZCB0aGUgd2hvbGUgcG9pbnQgb2YgdGhpcyBwYXRjaCB0aGVuLgo+IAo+IEZvcmdpdmUgbWUg YnV0IHRoZW4gSSBkb24ndCBzZWUgYW55d2hlcmUgaW4gdGhlIHBhdGNoIGRlc2NyaXB0aW9uIHRo YXQKPiBleHBsYWluIHdoeSB0aGVzZSBmdW5jdGlvbnMgX2hhdmUgdG9fIHBlcmZvcm0gYSBmYWxs LWJhY2sgYW5kIHJldHVybgo+IGFuIGVudHJ5IGZyb20gdGhlIGhvc3RwMm0gYXQgYWxsIGNvc3Qu CgpUaGUgcHJpbWFyeSBlZmZlY3Qgb2YgdGhpcyBwYXRjaCBpcyB0byBtb3ZlIGR1cGxpY2F0ZWQg Y29kZSBpbnRvIGEKc2luZ2xlIGNvbW1vbiBmdW5jdGlvbi4gIFRoZSBjb2RlIGJlaW5nIGRlLWR1 cGxpY2F0ZWQ6CiAxLiBUcmllcyB0byByZWFkIHRoZSBhbHRwMm0gZW50cnk7IGlmIGl0J3MgdGhl cmUgaXQgdXNlcyBpdAogMi4gSWYgaXQncyBub3QgdGhlcmUsIGl0IHRyaWVzIHRvIHJlYWQgdGhl IGhvc3QgcDJtIGVudHJ5CiAzLiBJbiBtb3N0IGNhc2VzIGl0IHRoZW4gcHJvcGFnYXRlcyB0aGUg aG9zdHAybSBlbnRyeSB0byB0aGUgYWx0cDJtIGVudHJ5LgoKT2J2aW91c2x5IHRoZSBuZXcgImNv bW1vbiIgZnVuY3Rpb24gaGFzIHRvIGRvIGl0IGJlY2F1c2UgdGhhdCdzIHdoYXQgdGhlCm9yaWdp bmFsIGNvZGUgZG9lcy4gIFRoZSBvcmlnaW5hbCBjb2RlIGRvZXMgaXQgYmVjYXVzZSB0aGF0J3Mg d2hhdAphbHRwMm0gaXMgLS0gYSAicGF0Y2giIG92ZXIgdGhlIGhvc3QgcDJtLCBzdWNoIHRoYXQg eW91IHVzZSB0aGUgYWx0cDJtCmlmIGVudHJpZXMgYXJlIHByZXNlbnQsIGJ1dCB1c2UgdGhlIGhv c3RwMm0gb3RoZXJ3aXNlLgoKPj4gSW5zdGVhZCBvZiBzYXlpbmcsICJJIGRvbid0IGxpa2UgdGhl c2UgbmFtZXMiIChidXQgbm90IG9mZmVyaW5nCj4+IGFsdGVybmF0aXZlKSwgb3Igc2F5aW5nLCAi SWYgeW91IHVzZSB0aGVzZSBuYW1lcywgdGhlIGZ1bmN0aW9ucyBoYXZlIHRvCj4+IGRvIHRoZSBl eGFjdCBvcHBvc2l0ZSBvZiB3aGF0IHRoZXkgZG8gaW4gdGhpcyBwYXRjaCIsIGl0IHdvdWxkIGJl IG1vcmUKPj4gY29uc3RydWN0aXZlIGlmIHlvdSBwcm9wb3NlZCBuYW1lcyB3aGljaCB5b3Ugd291 bGQgcHJlZmVyIGZvciB0aGUKPj4gZnVuY3Rpb25hbGl0eSBhY3R1YWxseSBpbiB0aGlzIHBhdGNo Lgo+Pgo+IAo+IEknbSBub3QgdGhlIG1haW50YWluZXIgb2YgdGhpcyBjb2RlIHNvIGZlZWwgZnJl ZSB0byBpZ25vcmUgbXkKPiBjb21tZW50cy4gSSBqdXN0IHNlZSB3YXkgdG9vIG1hbnkgZnVuY3Rp b25zIGluIFhlbiB0aGF0IGFyZSAiZG9feCgpIgo+IGJ1dCBpbiBpbiBmYWN0IHR1cm4gb3V0IHRv IGJlICJkb194X2FuZF95X2FuZF96KCkiIHdoaWNoIGRvZXMgbm90IGhlbHAKPiByZWFkYWJpbGl0 eSBvciBldmVuIHJlYWxseSB1bmRlcnN0YW5kaW5nIHdoYXQgaXMgaGFwcGVuaW5nLiBJIGd1ZXNz IGF0Cj4gbGVhc3QgYWRkaW5nIGNvbW1lbnRzIGRlc2NyaWJpbmcgdGhlc2UgYWRkaXRpb25hbCBh bmQgc29tZXRpbWVzCj4gdW5leHBlY3RlZCBiZWhhdmlvcnMgd291bGQgYmUgYW4gaW1wcm92ZW1l bnQuCgpZb3UgYXJlIGEgbWFpbnRhaW5lciBmb3IgbWVtX2FjY2Vzcy5jLCB3aGljaCBoYXMgYSBu b24tdHJpdmlhbCBjaGFuZ2UgaW4KdGhpcyBwYXRjaC4gIEl0IGNhbiBnbyBpbiB3aXRoIFJhenZh bidzIGFjaywgYnV0IG5vdCB3aGlsZSB5b3UgaGF2ZSBvcGVuCm9iamVjdGlvbnMuCgpJIGZlZWwg eW91ciBwYWluIHdpdGggZnVuY3Rpb24gbmFtaW5nOyBJJ3ZlIGJlZW4gZGlnZ2luZyB0aHJvdWdo Cng4Ni9tbS5jIHJlY2VudGx5IGFuZCB0aGUgZnVuY3Rpb24gbmFtZXMgYXJlIHVubmVjZXNzYXJp bHkgY29uZnVzaW5nLiAgSQphbHNvIGFncmVlIHRoYXQgImFsdHAybV9nZXRfZW50cnkiIGlzbid0 IHRlcnJpYmx5IGluZm9ybWF0aXZlIChhbHRob3VnaAppdCdzIGEgYml0IG1vcmUgb2J2aW91cyBp ZiB5b3Uga25vdyBob3cgYWx0cDJtIGlzIG1lYW50IHRvIHdvcmspLiAgSSdtCmp1c3QgdHJ5aW5n IHRvIG1ha2Ugc3VyZSB0aGF0IHRoZXJlJ3MgYSBjbGVhciB3YXkgZm9yIEFsZXhhbmRydSB0byBt b3ZlCnRoaXMgcGF0Y2ggZm9yd2FyZC4gIEkgZG9uJ3QgbWluZCB0cnlpbmcgdG8gY29tZSB1cCB3 aXRoIGEgYmV0dGVyIG5hbWUsCmJ1dCB0aGUgcGF0Y2ggc2hvdWxkbid0IGJlIGJsb2NrZWQgaWYg d2UgY2FuJ3QuCgpJIGFncmVlIHRoYXQgdGhlIGZ1bmN0aW9uIHNob3VsZCBoYXZlIGEgY29tbWVu dCB0aGF0IGRlc2NyaWJlcyBpdHMgcHVycG9zZS4KCldoYXQgYWJvdXQgImFsdHAybV9yZXNvbHZl X2VudHJ5KCkiPyAgImFsdHAybV9nZXRfZWZmZWN0aXZlX2VudHJ5Ij8KCiAtR2VvcmdlCgpfX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2ZWwgbWFp bGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW5wcm9qZWN0Lm9yZwpodHRwczovL2xpc3RzLnhl bnByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8veGVuLWRldmVs