From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ed White Subject: Alternate p2m design specification Date: Tue, 09 Jun 2015 17:09:29 -0700 Message-ID: <55778039.3050000@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1Z2TaH-0001fs-W3 for xen-devel@lists.xenproject.org; Wed, 10 Jun 2015 00:09:34 +0000 List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xenproject.org Cc: ravi.sahita@intel.com, Keir Fraser , Ian Campbell , Tim Deegan , Ian Jackson , Jan Beulich , Andrew Cooper List-Id: xen-devel@lists.xenproject.org VGhpcyBkb2N1bWVudCBkZXNjcmliZXMgYSBuZXcgY2FwYWJpbGl0eSBmb3IgVk0gSW50cm9zcGVj dGlvbiwgU2VjdXJpdHkgYW5kIFByaXZhY3kgaW4gWGVuLiBUaGUgbmV3IGNhcGFiaWxpdHkgaXMg Y2FsbGVkIOKAnGFsdHAybeKAnSAoc2hvcnQgZm9yIEFsdGVybmF0ZSBwMm0pIHRoYXQgaXMgdXNl ZCB0byBwcm92aWRlIHRoZSBhYmlsaXR5IGZvciBYZW4gdG8gaG9zdCBhbHRlcm5hdGUgZ3Vlc3Qg cGh5c2ljYWwgbWVtb3J5IGRvbWFpbnMgZm9yIGEgc3BlY2lmaWMgZ3Vlc3QtZG9tYWluLiBUaGlz IGRvY3VtZW50IGRlc2NyaWJlcyB0aGUgb3ZlcmFsbCBkZXNpZ24gc3BlY2lmaWMgdG8gWGVuIGZv ciB5b3VyIHJldmlldyBhbmQgZmVlZGJhY2suCgpCYWNrZ3JvdW5kCj09PT09PT09PQoKSW50ZWwg VlQteDIgQ1BVcyBzdXBwb3J0IEV4dGVuZGVkIFBhZ2UgVGFibGVzIChFUFRzKS4gRXh0ZW5kZWQg UGFnZSBUYWJsZXMgYWxsb3cgdGhlIFZNTSB0byByZXN0cmljdCBwZXJtaXNzaW9ucyBmb3IgZ3Vl c3QgcGh5c2ljYWwgcGFnZXMgYWNjZXNzZWQgYnkgc29mdHdhcmUgb3BlcmF0aW5nIGluIHRoZSBn dWVzdCAoVk1YLW5vbi1yb290KS4gVGhlIHAybSBjYXBhYmlsaXR5IGluIFhlbiBhYnN0cmFjdHMg dGhlIGFyY2hpdGVjdHVyZS1zcGVjaWZpYyBkZXRhaWxzIG9mIEVQVHMuIFR5cGljYWxseSwgWGVu IG1hbmFnZXMgYSBzaW5nbGUgcDJtIGZvciBhIHNwZWNpZmljIGd1ZXN0IGRvbWFpbi4KCkFMVFAy TSBJbnRyb2R1Y3Rpb24KPT09PT09PT09PT09PT09PQoKVGhlIGFsdHAybSBjYXBhYmlsaXR5IGVu YWJsZXMgbWFuYWdlbWVudCBvZiBtdWx0aXBsZSAoYWx0ZXJuYXRlKSBwMm1zIHBlciBIVk0gZ3Vl c3QgZG9tYWluIHRodXMgYWxsb3dpbmcgZm9yIHNlcGFyYXRlIHBoeXNpY2FsIG1lbW9yeSBkb21h aW5zIHBlciBndWVzdC4gVGhlIGFsdHAybSBjYXBhYmlsaXR5IGFsbG93cyBmb3IgcGFyYS12aXJ0 dWFsaXplZCBndWVzdCBzb2Z0d2FyZSBhZ2VudCB3aXRoaW4gb3IgYWNyb3NzIGRvbWFpbnMgdG8g YmUgYWJsZSB0byBlbmZvcmNlIG1lbW9yeSBpbnRyb3NwZWN0aW9uIHBvbGljaWVzIGluIGFuIGVm ZmljaWVudCBtYW5uZXIuIEFsdHAybSBhbHNvIGFsbG93cyBwYXJhLXZpcnR1YWxpemVkIGd1ZXN0 IGFnZW50IGNvbXBvbmVudHMgdG8gYmUgaXNvbGF0ZWQgd2l0aGluIGFuIEhWTSAoaW4gdGVybXMg b2YgZ3Vlc3QgcGh5c2ljYWwgbWVtb3J5KSBmb3Igc2VjdXJlIFZNIGludHJvc3BlY3Rpb24gYXMg d2VsbCBhcyB2YXJpb3VzIG90aGVyIHNlY3VyaXR5IGFuZCBwcml2YWN5IHVzYWdlcyB0aGF0IHJl cXVpcmUgZWZmaWNpZW50IG1lbW9yeSBpc29sYXRpb24uIAoKVHdvIHJlbGF0ZWQgSW50ZWwgQ1BV IGZlYXR1cmVzIGFyZSB1dGlsaXplZCBhcyBwZXJmb3JtYW5jZSBlbmhhbmNlbWVudCBjYXBhYmls aXRpZXMgd2l0aGluIHRoZSBhbHRwMm0gbW9kdWxlIHdoZW4gb3BlcmF0aW5nIHdpdGggYW4gaW4t ZG9tYWluIGFnZW50LiBUaGUgYWx0cDJtIG1vZHVsZSBvcHBvcnR1bmlzdGljYWxseSB1c2VzIHRo ZXNlIGFzc2lzdHMgd2hlbiBlbnVtZXJhdGVkIG9uIHRoZSBDUFUuIE9wZXJhdGlvbnMgdGhhdCBy ZXF1aXJlIGZyZXF1ZW50IHN3aXRjaGluZyBiZXR3ZWVuIHAybSBkb21haW5zIGNhbiBpbmN1ciBh IGhpZ2ggb3ZlcmhlYWQgaWYgZG9uZSB2aWEgbGVnYWN5IGFwcHJvYWNoZXMgc3VjaCBhcyB2aWEg YSBoeXBlcmNhbGwuIFZNIEZ1bmN0aW9ucyAoVk1GVU5DKSBpcyBhIG5ldyBWVC14IGluc3RydWN0 aW9uIG9uIEludGVsJ3MgNHRoIGdlbiBDb3JlIChIYXN3ZWxsKSBhbmQgQXRvbSAoU2lsdmVybW9u dCkgQ1BVcy4gSW4gZ2VuZXJhbCwgVk1GVU5DIGlzIHRhcmdldGVkIHRvIHJlZHVjZSBvdmVyaGVh ZCBvZiBzZXJ2aWNlcyBwcm92aWRlZCBieSB0aGUgQ1BVIHRvIGFuIEhWTSBndWVzdCAob25jZSBj b25maWd1cmVkIGJ5IHRoZSBWTU0pIOKAkyBvbmUgc3VjaCBsZWFmICgwKSBpcyBkZWZpbmVkIGlz IHRvIHByb3ZpZGUgYSBsb3cgbGF0ZW5jeSBwMm0gc3dpdGNoaW5nIChFUFRQIFN3aXRjaGluZyBp biBJbnRlbCB0ZXJtaW5vbG9neSkgY2FwYWJpbGl0eS4gVk1GVU5DIGxlYWYgMCBpcyBlbmFibGVk IGFzIHBhcnQgb2YgdGhlIGFsdHAybSBmdW5jdGlvbmFsaXR5IHRvIGFsbG93IHBhcmEtdmlydHVh bGl6ZWQgYWdlbnRzIGluIGFuIEhWTSB0byBhcHBseSBjdXN0b20gcDJtIGRvbWFpbiBzd2l0Y2hp bmcgcG9saWNpZXMgd2l0aG91dCBpbmN1cnJpbmcgb3ZlcmhlYWRzIGR1ZSB0byBWTSBFeGl0cy4K CiNWRSAoVmlydHVhbGl6YXRpb24gRXhjZXB0aW9uKSBpcyBhIGZlYXR1cmUgaW50cm9kdWNlZCBv biBJbnRlbOKAmXMgNXRoIGdlbiBDb3JlIChCcm9hZHdlbGwpIGFuZCBBdG9tIChHb2xkbW9udCkg Q1BVcy4gI1ZFIGlzIGEgQ1BVIGFzc2lzdCBkZWZpbmVkIHRvIGFsbG93IHRoZSBWTU0gdG8gY29u dmVydCBFUFQgdmlvbGF0aW9ucyBmb3Igc3BlY2lmaWMgZ3Vlc3QgcGh5c2ljYWwgcGFnZSBhY2Nl c3NlcyB0byBhIGd1ZXN0LUlEVC1kZWxpdmVyZWQgZXhjZXB0aW9uIChuZXcgdmVjdG9yIDIwKSwg YW5kIHRodXMgcmVkdWNlIHRoZSBsYXRlbmN5IGZvciBtYW5hZ2luZyBWTSBpbnRyb3NwZWN0aW9u IHBvbGljaWVzIGZvciBndWVzdCBtZW1vcnkgcmVhZCwgd3JpdGUgYW5kL29yIGV4ZWN1dGUgYXR0 ZW1wdHMg4oCTIHRoZXNlIGFyZSBpbmR1Y2VkIGV2ZW50cyBjb25maWd1cmVkIGJ5IGEgcGFyYS12 aXJ0dWFsaXplZCBzZWN1cml0eSBhZ2VudCBtb25pdG9yaW5nIGd1ZXN0IG1lbW9yeSBhY2Nlc3Nl cyBiYXNlZCBvbiBpdHMgaXNvbGF0aW9uL21vbml0b3JpbmcgcG9saWNpZXMuIEluIGxlZ2FjeSAo cHJlLSNWRSkgQ1BVcywgRVBUIHZpb2xhdGlvbnMgcmVxdWlyZSBhIFZNIEV4aXQgYW5kIGZyZXF1 ZW50IGluZHVjZWQgRVBUIHZpb2xhdGlvbnMgY2FuIGFkZCBoaWdoIGh5cGVydmlzb3Igb3Zlcmhl YWQuICNWRSByZWR1Y2VzIHRoZSBpbXBhY3Qgb2YgdGhpcyBvdmVyaGVhZCwgd2hpbHN0IHJlZHVj aW5nIHRoZSBhbW91bnQgb2YgZ3Vlc3Qtc3BlY2lmaWMgcG9saWN5IGNvbnRleHQgdG8gYmUgaW5z ZXJ0ZWQgaW50byB0aGUgVk1NLgoKQm90aCBWTUZVTkMgYW5kICNWRSBhcmUgZGVzaWduZWQgc3Vj aCB0aGF0IGEgVk1NIGNhbiBlbXVsYXRlIHRoZW0gb24gbGVnYWN5IENQVXMuIFRoZSBhbHRwMm0g bW9kdWxlIGluY2x1ZGVzIGZ1bGwgZW11bGF0aW9uIG9mIFZNRlVOQyBsZWFmIDAgYW5kICNWRSwg c28gaW4tZG9tYWluIGFnZW50cyBjYW4gYmUgd3JpdHRlbiB0byBhc3N1bWUgYm90aCBjYXBhYmls aXRpZXMgYXJlIGF2YWlsYWJsZSBvbiBhbGwgaGFyZHdhcmUuCgpWTUZVTkMgSW50cm9kdWN0aW9u Cj09PT09PT09PT09PT09PT09CgpWTUZVTkMgbGVhZiAwIGZvciBFUFRQLVN3aXRjaGluZyBpcyBh IGhhcmR3YXJlLWFzc2lzdGVkIGVmZmljaWVudCB3YXkgdG8gc3dpdGNoIEVQVHMgY29uZmlndXJl ZCBieSB0aGUgVk1NLiBTb2Z0d2FyZSBpbiBhIFhlbiBndWVzdCBkb21haW4gbWF5IGludm9rZSBh IFZNIGZ1bmN0aW9uIHdpdGggdGhlIFZNRlVOQyBpbnN0cnVjdGlvbjsgdGhlIHZhbHVlIG9mIEVB WCBzZWxlY3RzIHRoZSBzcGVjaWZpYyBWTSBmdW5jdGlvbiBiZWluZyBpbnZva2VkLgoKVGhlIFZN TSBlbmFibGVzIFZNIGZ1bmN0aW9ucyBnZW5lcmFsbHkgYnkgc2V0dGluZyB0aGUg4oCcZW5hYmxl IFZNIGZ1bmN0aW9uc+KAnSBWTS1leGVjdXRpb24gY29udHJvbC4gQSBzcGVjaWZpYyBWTSBmdW5j dGlvbiBpcyBlbmFibGVkIGJ5IHNldHRpbmcgdGhlIGNvcnJlc3BvbmRpbmcgVk0tZnVuY3Rpb24g Y29udHJvbC4gV2hlbiBzb2Z0d2FyZSB3YW50cyB0byBlbmFibGUgRVBUUCBzd2l0Y2hpbmcgKFZN IGZ1bmN0aW9uIDApIGl0IG11c3Qgc2V0IHRoZSDigJxhY3RpdmF0ZSBzZWNvbmRhcnkgY29udHJv bHPigJ0gVk0tZXhlY3V0aW9uIGNvbnRyb2wgKGJpdCAzMSBvZiB0aGUgcHJpbWFyeSBwcm9jZXNz b3ItYmFzZWQgVk0tZXhlY3V0aW9uIGNvbnRyb2xzKSwgdGhlIOKAnGVuYWJsZSBWTSBmdW5jdGlv bnPigJ0gVk0tZXhlY3V0aW9uIGNvbnRyb2wgKGJpdCAxMyBvZiB0aGUgc2Vjb25kYXJ5IHByb2Nl c3Nvci1iYXNlZCBWTWV4ZWN1dGlvbiBjb250cm9scykgYW5kIHRoZSDigJxFUFRQIHN3aXRjaGlu Z+KAnSBWTS1mdW5jdGlvbiBjb250cm9sIChiaXQgMCBvZiB0aGUgVk0tZnVuY3Rpb24gY29udHJv bHMpLgoKVGhlIFZNRlVOQyBpbnN0cnVjdGlvbiBjYXVzZXMgYW4gaW52YWxpZC1vcGNvZGUgZXhj ZXB0aW9uICgjVUQpIGlmIHRoZSDigJxlbmFibGUgVk0gZnVuY3Rpb25z4oCdIFZNLWV4ZWN1dGlv biBjb250cm9scyBpcyAwIG9yIHRoZSB2YWx1ZSBvZiBFQVggaXMgZ3JlYXRlciB0aGFuIDYzIChv bmx5IFZNIGZ1bmN0aW9ucyAw4oCTNjMgY2FuIGJlIGVuYWJsZWQpLiBPdGhlcndpc2UsIHRoZSBp bnN0cnVjdGlvbiBjYXVzZXMgYSBWTSBleGl0IGlmIHRoZSBiaXQgYXQgcG9zaXRpb24gRUFYIGlz IDAgaW4gdGhlIFZNLWZ1bmN0aW9uIGNvbnRyb2xzICh0aGUgc2VsZWN0ZWQgVk0gRnVuY3Rpb24g aXMgbm90IGVuYWJsZWQpLiBJZiBzdWNoIGEgVk0gZXhpdCBvY2N1cnMsIHRoZSBiYXNpYyBleGl0 IHJlYXNvbiB1c2VkIGlzIDU5ICgzQkgpLCBpbmRpY2F0aW5nIOKAnFZNRlVOQ+KAnSwgYW5kIHRo ZSBsZW5ndGggb2YgdGhlIFZNRlVOQyBpbnN0cnVjdGlvbiBpcyBzYXZlZCBpbnRvIHRoZSBWTS1l eGl0IGluc3RydWN0aW9uLWxlbmd0aCBmaWVsZC4gSWYgdGhlIGluc3RydWN0aW9uIGNhdXNlcyBu ZWl0aGVyIGFuIGludmFsaWQtb3Bjb2RlIGV4Y2VwdGlvbiBub3IgYSBWTSBleGl0IGR1ZSB0byBh IGRpc2FibGVkIFZNIGZ1bmN0aW9uLCBpdCBwZXJmb3JtcyB0aGUgZnVuY3Rpb25hbGl0eSBvZiB0 aGUgVk0gZnVuY3Rpb24gc3BlY2lmaWVkIGJ5IHRoZSB2YWx1ZSBpbiBFQVguIAoKVk1GVU5DIGxl YWYgMC9FUFRQIHN3aXRjaGluZyBhbGxvd3MgZ3Vlc3Qgc29mdHdhcmUgdG8gbG9hZCBhIG5ldyB2 YWx1ZSBmb3IgdGhlIEVQVCBwb2ludGVyIChFUFRQKSwgdGhlcmVieSBlc3RhYmxpc2hpbmcgYSBk aWZmZXJlbnQgRVBUIHBhZ2luZy1zdHJ1Y3R1cmUgaGllcmFyY2h5LiBHdWVzdCBzb2Z0d2FyZSBp cyBsaW1pdGVkIHRvIHNlbGVjdGluZyBmcm9tIGEgbGlzdCBvZiBwb3RlbnRpYWwgRVBUUCB2YWx1 ZXMgY29uZmlndXJlZCBpbiBhZHZhbmNlIGJ5IHRoZSBWTU0uIFNwZWNpZmljYWxseSwgdGhlIHZh bHVlIG9mIEVDWCBpcyB1c2VkIHRvIHNlbGVjdCBhbiBlbnRyeSBmcm9tIGFuIEVQVFAgbGlzdCwg YSA0LUtCeXRlIHN0cnVjdHVyZSByZWZlcmVuY2VkIGJ5IHRoZSBFUFRQLWxpc3QgYWRkcmVzcyAo YSBuZXcgY29udHJvbCBmaWVsZCBpbiB0aGUgVk1DUykuIFZNRlVOQyBjYXVzZXMgYSBWTSBleGl0 IGZvciBlcnJvciBjb25kaXRpb25zIHN1Y2ggYXMgaWYgRUNYIOKJpSA1MTIuIElmIHRoZSBzZWxl Y3RlZCBlbnRyeSBpcyBhIHZhbGlkIEVQVFAgdmFsdWUgKGkuZS4gdGhlIEVQVFAgd291bGQgbm90 IGNhdXNlIFZNIGVudHJ5IHRvIGZhaWwpLCBpdCBpcyBzdG9yZWQgaW4gdGhlIEVQVFAgZmllbGQg b2YgdGhlIGN1cnJlbnQgVk1DUyBhbmQgaXMgdXNlZCBmb3Igc3Vic2VxdWVudCBhY2Nlc3NlcyB1 c2luZyBndWVzdC1waHlzaWNhbCBhZGRyZXNzZXMuCgpUaGUgY29tcGxldGUgc3BlYyBvZiBWTUZV TkMgY2FuIGJlIGZvdW5kIGluIGNoYXB0ZXIgMjUuNS41IG9mIHRoZSBJbnRlbCBTRE0gYXQ6Cmh0 dHA6Ly93d3cuaW50ZWwuY29tL2NvbnRlbnQvd3d3L3VzL2VuL3Byb2Nlc3NvcnMvYXJjaGl0ZWN0 dXJlcy1zb2Z0d2FyZS1kZXZlbG9wZXItbWFudWFscy5odG1sCgogCgojVkUgSW50cm9kdWN0aW9u Cj09PT09PT09PT09PT0KCkEgdmlydHVhbGl6YXRpb24gZXhjZXB0aW9uIGlzIGEgbmV3IHByb2Nl c3NvciBleGNlcHRpb24uIEl0IHVzZXMgdmVjdG9yIDIwIGFuZCBpcyBhYmJyZXZpYXRlZCAjVkUu IEEgdmlydHVhbGl6YXRpb24gZXhjZXB0aW9uIGNhbiBvY2N1ciBvbmx5IGluIFZNWCBub24tcm9v dCBvcGVyYXRpb24uIFRoZSAxLXNldHRpbmcgb2YgdGhlIOKAnEVQVC12aW9sYXRpb24gI1ZF4oCd IFZNLWV4ZWN1dGlvbiBjb250cm9sIGNhdXNlcyBzb21lIEVQVCB2aW9sYXRpb25zIHRvIGdlbmVy YXRlIHZpcnR1YWxpemF0aW9uIGV4Y2VwdGlvbnMgaW5zdGVhZCBvZiBWTSBleGl0cy4gVGhlIFZN TSBtYW5hZ2VzIGhvdyB0aGUgcHJvY2Vzc29yIGRldGVybWluZXMgd2hldGhlciBhbiBFUFQgdmlv bGF0aW9uIGNhdXNlcyBhIHZpcnR1YWxpemF0aW9uIGV4Y2VwdGlvbiBvciBhIFZNIGV4aXQuIFdo ZW4gdGhlIHByb2Nlc3NvciBlbmNvdW50ZXJzIGEgdmlydHVhbGl6YXRpb24gZXhjZXB0aW9uLCBp dCBzYXZlcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZXhjZXB0aW9uIHRvIHRoZSB2aXJ0dWFsaXph dGlvbi1leGNlcHRpb24gaW5mb3JtYXRpb24gYXJlYSAoaG9zdGVkIGluIGEgNEtiIHBhZ2UgcmVm ZXJlbmNlZCBieSBhIG5ldyBmaWVsZCBpbiB0aGUgVk1DUykuIEFmdGVyIHNhdmluZyB2aXJ0dWFs aXphdGlvbi1leGNlcHRpb24gaW5mb3JtYXRpb24sIHRoZSBwcm9jZXNzb3IgZGVsaXZlcnMgYSB2 aXJ0dWFsaXphdGlvbiBleGNlcHRpb24gYXMgaXQgd291bGQgYW55IG90aGVyIGV4Y2VwdGlvbi4K ClRoZSB2YWx1ZXMgb2YgY2VydGFpbiBFUFQgcGFnaW5nLXN0cnVjdHVyZSBlbnRyaWVzIGRldGVy bWluZSB3aGljaCBFUFQgdmlvbGF0aW9ucyBhcmUgY29udmVydGlibGUuIFNwZWNpZmljYWxseSwg Yml0IDYzIG9mIGNlcnRhaW4gRVBUIHBhZ2luZy1zdHJ1Y3R1cmUgZW50cmllcyBpcyBkZWZpbmVk IHRvIHN1cHByZXNzICNWRSDigJMgZWZmZWN0aXZlbHksIGFuIEVQVCB2aW9sYXRpb24gaXMgY29u dmVydGlibGUgdG8gI1ZFIGlmIGFuZCBvbmx5IGlmIGJpdCA2MyBvZiB0aGUgRVBUIGVudHJ5IHRo YXQgY2F1c2VkIHRoZSBFUFQgdmlvbGF0aW9uIGlzIDAuIE5vdGUgdGhhdCBFUFQgbWlzY29uZmln dXJhdGlvbiBiZWhhdmlvciBkb2VzIG5vdCBjaGFuZ2UgYW5kIGFsd2F5cyBjYXVzZSBWTSBleGl0 cy4KClRoZSBjb21wbGV0ZSBzcGVjIG9mICNWRSBjYW4gYmUgZm91bmQgaW4gY2hhcHRlcnMgMjUu NS42IG9mIHRoZSBJbnRlbCBTRE0gYXQ6Cmh0dHA6Ly93d3cuaW50ZWwuY29tL2NvbnRlbnQvd3d3 L3VzL2VuL3Byb2Nlc3NvcnMvYXJjaGl0ZWN0dXJlcy1zb2Z0d2FyZS1kZXZlbG9wZXItbWFudWFs cy5odG1sCiAKV2l0aCBWTUZVTkMgYW5kICNWRSwgdGhlIFhlbiBoeXBlcnZpc29yIGRvZXMgbm90 IGhhdmUgdG8gYmUgaW52b2x2ZWQgZm9yIGhhbmRsaW5nIGd1ZXN0IFZNLWludHJvc3BlY3Rpb24g cG9saWNpZXMsIHdoaWNoIHJlZHVjZXMgaHlwZXJ2aXNvciBvdmVyaGVhZCwgY29tcGxleGl0eSAo VENCKSwgYW5kIHdvdWxkIHdvcmsgd2VsbCB3aXRoIFZNIG1pZ3JhdGlvbi4gIEZvciBhIGd1ZXN0 IGRvbWFpbiB1c2luZyBWTUZVTkMgYW5kICNWRSwgbW9yZSBDUFUgY3ljbGVzIGNhbiBiZSBhbGxv Y2F0ZWQgdG8gZ3Vlc3QsIHNvIGJlbmNobWFya3MgaW4gZ3Vlc3QgZG9tYWluIHVzaW5nIFZNLWlu dHJvc3BlY3Rpb24gd2l0aCBWTUZVTkMgYW5kICNWRSBlbmFibGVkIHdpbGwgaGF2ZSBiZXR0ZXIg cGVyZm9ybWFuY2UgY29tcGFyaW5nIHRvIG5vbi1WTUZVTkMvI1ZFIENQVS4KCkRlc2lnbgo9PT09 PT0KCi0gQWx0cDJtIGZlYXR1cmUgZW5hYmxlZCB2aWEgb3B0LWluIHBhcmFtZXRlcgoKQSBuZXcg WGVuIGJvb3QgcGFyYW1ldGVyLCAnYWx0cDJtJywgaXMgaW50cm9kdWNlZCB0byBjb250cm9sIGFs dHAybSBvbiBhIGdsb2JhbCBiYXNpcyDigJMgdGhpcyBwYXJhbWV0ZXIgZGVmYXVsdHMgdG8gMCAo ZGlzYWJsZWQpLgoKLSBBbHRwMm0gZW5hYmxlL2Rpc2FibGUgZm9yIHBhcnRpY3VsYXIgZG9tYWlu CgpBZGRpdGlvbmFsbHksIGEgbmV3IGRvbWFpbiBwYXJhbWV0ZXIsICdhbHRwMm1odm0nLCBpcyBp bnRyb2R1Y2VkIHRvIGNvbnRyb2wgYWx0cDJtIGZvciBhbiBpbmRpdmlkdWFsIEhWTSBkb21haW4g 4oCTIHRoaXMgcGFyYW1ldGVyIGFsc28gZGVmYXVsdHMgdG8gMCAoZGlzYWJsZWQpLgoKQm90aCBw YXJhbWV0ZXJzIG11c3QgYmUgc2V0IHRvIDEgKGVuYWJsZWQpIGJlZm9yZSBhbHRwMm0gZnVuY3Rp b25hbGl0eSBpcyBhdmFpbGFibGUgaW4gYSBnaXZlbiBkb21haW4uCgpBdCBhbnkgcG9pbnQgaW4g dGltZSwgYWx0cDJtIGlzIGVuYWJsZWQgZm9yIGFsbCB2Y3B1cyBvZiBhIGRvbWFpbiBvciBkaXNh YmxlZCBmb3IgYWxsIHZjcHVzIG9mIHRoYXQgZG9tYWluLiBBbHRlcm5hdGUgRVBUIHRhYmxlcyBj cmVhdGVkIGZvciB0aGUgYWx0ZXJuYXRlIHAybSBhcmUgc2hhcmVkIGJ5IGFsbCB2Y3B1cyBhc3Np Z25lZCB0byBhIGRvbWFpbi4gQWx0cDJtIG1vZGUgbWF5IGJlIGR5bmFtaWNhbGx5IGVuYWJsZWQv ZGlzYWJsZWQgZm9yIGEgZG9tYWluLiAKCi0gSHlwZXJjYWxscyBmb3IgYWx0cDJtCgpBbHRwMm0g bW9kZSBpbnRyb2R1Y2VzIGEgbmV3IHNldCBvZiBoeXBlcmNhbGxzIGZvciBhbHRwMm0gbWFuYWdl bWVudCBmcm9tIHNvZnR3YXJlIGFnZW50cyBvcGVyYXRpbmcgaW4gWGVuIEhWTSBndWVzdHMuCgpU aGUgaHlwZXJjYWxscyBhcmUgYXMgZm9sbG93czoKRW5hYmxlIG9yIERpc2FibGUgYWx0cDJtIG1v ZGUgZm9yIGRvbWFpbgpDcmVhdGUgYSBuZXcgYWx0ZXJuYXRlIHAybSAKRWRpdCBwZXJtaXNzaW9u cyBmb3IgYSBzcGVjaWZpYyBHUEEgd2l0aGluIGFuIGFsdGVybmF0ZSBwMm0gCkRlc3Ryb3kgYW4g ZXhpc3RpbmcgYWx0ZXJuYXRlIHAybQoKLSBDb3JlIGFsdHAybSBmdW5jdGlvbmFsaXR5CgpBIG5l dyBhbHRwMm0gdHlwZSBpcyBhZGRlZCB0byB0aGUgcDJtIHR5cGVzIChpbiBhZGRpdGlvbiB0byB0 aGUgcHJldmlvdXMgaG9zdHAybSBhbmQgbmVzdGVkcDJtIHR5cGVzKS4gQW4gSFZNIGRvbWFpbiBj YW4gYmUgc3RhcnRlZCBpbiBob3N0cDJtIG1vZGUgYW5kIHN3aXRjaGVkIG92ZXIgaW50byBhbHRw Mm0gbW9kZSB2aWEgYSBoeXBlcmNhbGwuIE9uY2UgYSBIVk0gZG9tYWluIGlzIGluIGFsdHAybSBt b2RlLCBhIHNldCBvZiAoY3VycmVudGx5IHNldCBzaXplIGlzIDEwKSBhbHRwMm0gb2JqZWN0cyBp cyBtYW5hZ2VkIGJ5IFhlbi4gQWx0cDJtIHVwZGF0ZXMgYXJlIHBlcmZvcm1lZCBpbiBhIGxhenkg bWFubmVyIOKAkyBpbiBlZmZlY3QsIHRoZSBhbHRwMm0gcmVmbGVjdHMgdGhlIHNhbWUgRVBUIGF0 dHJpYnV0ZXMgZm9yIG1hcHBpbmdzIGFjY2Vzc2VkIGFzIHRoZSBob3N0cDJtIHVubGVzcyB0aGUg cGVybWlzc2lvbnMgZm9yIGEgR1BBIGFyZSBtb2RpZmllZCBieSB0aGUgZ3Vlc3QgYWdlbnQgKGZv ciBhIHNwZWNpZmljIGFsdHAybSkg4oCTIGN1cnJlbnRseSwgcGFnZSBwZXJtaXNzaW9ucyBhbmQg bWFwcGluZ3MgZm9yIG1lbW9yeSB0eXBlIHJhbV9ydyBvbmx5IGNhbiBiZSBtb2RpZmllZCB2aWEg dGhlIGFsdHAybSBoeXBlcmNhbGwuIEJ5IGRlZmF1bHQsIGFsbCBHUEEgbWFwcGluZ3MgYXJlIHNl dCB0byBzdXBwcmVzcyAjVkUgKHJlc3VsdGluZyBpbiBsZWdhY3kgYmVoYXZpb3IgZm9yIFhlbik7 ICNWRSBpcyB1bi1zdXBwcmVzc2VkIGZvciBhIEdQQSB3aGVuIHRoZSBpbi1kb21haW4gZ3Vlc3Qg YWdlbnQgaW52b2tlcyBhbiBhbHRwMm0gaHlwZXJjYWxsIHRvIG1vZGlmeSB0aGUgcGVybWlzc2lv biBvZiBhIEdQQS4gQSBzdWJzZXF1ZW50IGd1ZXN0IGFjY2VzcyB0byB0aGUgR1BBIHRoYXQgdmlv bGF0ZXMgdGhlIGFnZW50LXNwZWNpZmllZCBFUFQgcGVybWlzc2lvbnMgd2lsbCBjYXVzZSBhICNW RSAoaW5zdGVhZCBvZiBhbiBFUFQgdmlvbGEKdGlvbikgdGhhdCBpcyBleHBlY3RlZCB0byBiZSBo YW5kbGVkIGJ5IHRoZSBndWVzdCBzb2Z0d2FyZS4gT25lIG9mIHRoZSB2YWxpZCByZXNwb25zZXMg dG8gYSAjVkUgZXZlbnQgaW4gdGhlIGd1ZXN0LCBpcyB0byBzd2l0Y2ggYWx0cDJtJ3MgdG8gYWN0 aXZhdGUgYSBkaWZmZXJlbnQgc2V0IG9mIEdQQSBwZXJtaXNzaW9ucyBhbmQgbWFwcGluZ3MuIFVz aW5nIFZNRlVOQywgdGhpcyBzd2l0Y2ggY2FuIGJlIGFjaGlldmVkIGVmZmljaWVudGx5IGZvciB0 aGUgc2luZ2xlIHZjcHUgb24gd2hpY2ggdGhlIHBlcm1pc3Npb25zIHZpb2xhdGlvbiBvY2N1cnMu IFRoZXJlIGlzIGFsc28gYSBoeXBlcmNhbGwgdG8gc3dpdGNoIGFsdHAybSdzIGZvciBldmVyeSB2 Y3B1IGluIGEgZG9tYWluLCBhcyBpcyB0eXBpY2FsbHkgcmVxdWlyZWQgZHVyaW5nIGFnZW50IGlu aXRpYWxpc2F0aW9uLgoKVGhlIGxpc3Qgb2YgYWx0cDJtJ3MgaXMgcHJvdGVjdGVkIGJ5IGEgc2Vw YXJhdGUgbGlzdCBsb2NrLCB3aGljaCBtdXN0IGJlIGhlbGQgZHVyaW5nIGFueSBvcGVyYXRpb25z IHdoaWNoIGNvdWxkIGNoYW5nZSB0aGUgc3RhdGUgb2YgYW4gYWx0cDJtIGZyb20gdmFsaWQgdG8g aW52YWxpZCBvciB2aWNlLXZlcnNhLCBvciB3aGVuIHBlcmZvcm1pbmcgYW55IG1vZGlmaWNhdGlv biB0byBhbiBhbHRwMm0gd2hpY2ggaXMgbm90IHRoZSBjdXJyZW50IHAybSBmb3IgdGhlIGN1cnJl bnQgdmNwdS4gTWFueSBvcGVyYXRpb25zIHRoYXQgbXVzdCBhY3F1aXJlIHRoZSBhbHRwMm0gbGlz dCBsb2NrIG9jY3VyIGluIGNvZGUgcGF0aHMgd2hlcmUgdGhlIGhvc3RwMm0gbG9jayBoYXMgYWxy ZWFkeSBiZWVuIGFjcXVpcmVkLiBUbyBhdm9pZCBsb2NraW5nIG9yZGVyIHZpb2xhdGlvbnMsIHRo ZSBwMm0gbG9jayBoYXMgYmVlbiBzcGxpdCBpbnRvIHR3byB0eXBlczogYWx0cDJtcyBoYXZlIGEg bG9jayB0eXBlIHdoaWNoIGlzIGxvd2VyIGluIHRoZSBvcmRlciB0aGFuIG90aGVyIHAybSdzOyBh bmQgdGhlIGFsdHAybSBsaXN0IGxvY2sgaXMgcGxhY2VkIGJldHdlZW4gdGhlIHR3by4KCi0gVk1F eGl0IGhhbmRsZXIgZm9yIFZNRlVOQwoKV2hlbiBhbHRwMm0gaXMgZW5hYmxlZCBvbiBhIENQVSB3 aXRoIFZNRlVOQyBlbnVtZXJhdGVkLCBhbiBlcnJvbmVvdXMgVk1GVU5DIG1heSBjYXVzZSBhIFZN IGV4aXQgd2l0aCBleGl0IHJlYXNvbiDigJxWTUZVTkPigJ0uIEEgbmV3IGV4aXQgaGFuZGxlciBp cyBhZGRlZCBmb3IgdGhpcyBleGl0IHJlYXNvbiwgd2hpY2ggaW5qZWN0cyAjVUQgaW50byB0aGUg Z3Vlc3QuCgotIFN1cHBvcnQgZm9yIGludHJhLWRvbWFpbiBhbmQgaW50ZXItZG9tYWluIFZNIGlu dHJvc3BlY3Rpb24gKGFuZCBYU00pCgpUaGUgYWx0cDJtIGZ1bmN0aW9uYWxpdHkgYWxsb3dzIHRo ZSBjYXBhYmlsaXR5IHRvIGJlIHVzZWQgdmlhIGFuIGFnZW50IG9wZXJhdGluZyBpbiBhbiBIVk0g Z3Vlc3Qgb3IgYWx0ZXJuYXRlbHkgYW4gYWdlbnQgb3BlcmF0aW5nIGluIGEgc2VwYXJhdGUgcHJp dmlsZWdlZCBkb21haW4uIEZvciBjcm9zcyBkb21haW4gb3BlcmF0aW9uLCBhbiBYU00gaG9vayBp cyBkZWZpbmVkIHN1Y2ggdGhhdCB0aGUgYWRtaW5pc3RyYXRvciBjYW4gZGVmaW5lIGEgcG9saWN5 IGZvciBpbnRlci1kb21haW4gVk0gaW50cm9zcGVjdGlvbi4KClRoZSB3YXkgaW4gd2hpY2ggcGVy bWlzc2lvbnMgdmlvbGF0aW9ucyBhcmUgcmVwb3J0ZWQgdG8gYW4gaW4tZG9tYWluIGFnZW50IGFu ZCB0aGUgZXhwZWN0ZWQgYWdlbnQgcmVzcG9uc2UgaGF2ZSBiZWVuIGRlc2NyaWJlZCBhYm92ZS4g UmVzdHJpY3Rpb25zIGltcG9zZWQgYnkgYW4gb3V0LW9mLWRvbWFpbiBhZ2VudCBkbyBub3QgaGF2 ZSBzdXBwcmVzcy0jVkUgcmVtb3ZlZCwgc28gdGhleSBhbHdheXMgcmVzdWx0IGluIGEgVk0gZXhp dC4gVGhlIHZpb2xhdGlvbiBpcyByZXBvcnRlZCB0aHJvdWdoIHRoZSBleGlzdGluZyBWTSBFdmVu dCBtZWNoYW5pc20sIG1vZGlmaWVkIHRvIGluZGljYXRlIHRoYXQgdGhlIGV2ZW50IGlzIGFuIGFs dHAybSBldmVudCBhbmQgaW5jbHVkZSB0aGUgY3VycmVudCBhbHRwMm0gaW5kZXg7IHRoZSByZXNw b25zZSBjYW4gZm9yY2UgYSBjaGFuZ2UgdG8gYSBkaWZmZXJlbnQgYWx0cDJtIGZvciB0aGUgcmVs ZXZhbnQgdmNwdSBiZWZvcmUgVk0gZW50cnkuIElmIGFuIGluLWRvbWFpbiBhZ2VudCBwbGFjZXMg YW4gYWx0cDJtIHJlc3RyaWN0aW9uIGFuZCBhIHZpb2xhdGlvbiBvZiB0aGF0IHJlc3RyaWN0aW9u IG9jY3VycyBvbiBhIHZjcHUgdGhhdCBjYW5ub3QgcmVjZWl2ZSAjVkUsIHRoYXQgd2lsbCBjYXVz ZSBvZiBWTSBleGl0IHRoYXQgd2lsbCBiZSB0cmVhdGVkIGFzIGlmIHRoZSByZXN0cmljdGlvbiBo YWQgYmVlbiBpbXBvc2VkIGJ5IGFuIG91dC1vZi1kb21haW4gYWdlbnQuCgotLS0tLS0tLS0tLS0t LS0tIEVORCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2 ZWxAbGlzdHMueGVuLm9yZwpodHRwOi8vbGlzdHMueGVuLm9yZy94ZW4tZGV2ZWwK