From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jike Song Subject: Re: [Announcement] 2016-Q3 release of XenGT - a Mediated Graphics Passthrough Solution from Intel Date: Sun, 06 Nov 2016 22:59:52 +0800 Message-ID: <581F4568.8070706@intel.com> References: <53D215D3.50608@intel.com> <547FCAAD.2060406@intel.com> <54AF967B.3060503@intel.com> <5527CEC4.9080700@intel.com> <559B3E38.1080707@intel.com> <562F4311.9@intel.com> <56A861D3.5090007@intel.com> <57219F9F.9070602@intel.com> <5791B25C.8080109@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga04.intel.com (mga04.intel.com [192.55.52.120]) by gabe.freedesktop.org (Postfix) with ESMTPS id 8A8E56E21D for ; Sun, 6 Nov 2016 15:03:27 +0000 (UTC) In-Reply-To: <5791B25C.8080109@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: igvt-g@lists.01.org, xen-devel@lists.xen.org, intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org Cc: "Reddy, Raghuveer" , "Dong, Eddie" , "Li, Susie" , "Cowperthwaite, David J" , Zhiyuan Lv , "Zhu, Libo" , "Wang, Hongbo" List-Id: intel-gfx@lists.freedesktop.org SGkgYWxsLAoKV2UgYXJlIHBsZWFzZWQgdG8gYW5ub3VuY2UgYW5vdGhlciB1cGRhdGUgb2YgSW50 ZWwgR1ZULWcgZm9yIFhlbi4KCkludGVsIEdWVC1nIGlzIGEgZnVsbCBHUFUgdmlydHVhbGl6YXRp b24gc29sdXRpb24gd2l0aCBtZWRpYXRlZCBwYXNzLXRocm91Z2gsIHN0YXJ0aW5nIGZyb20gNHRo IGdlbmVyYXRpb24gSW50ZWwgQ29yZShUTSkgcHJvY2Vzc29ycyB3aXRoIEludGVsIEdyYXBoaWNz IHByb2Nlc3NvcnMuIEEgdmlydHVhbCBHUFUgaW5zdGFuY2UgaXMgbWFpbnRhaW5lZCBmb3IgZWFj aCBWTSwgd2l0aCBwYXJ0IG9mIHBlcmZvcm1hbmNlIGNyaXRpY2FsIHJlc291cmNlcyBkaXJlY3Rs eSBhc3NpZ25lZC4gVGhlIGNhcGFiaWxpdHkgb2YgcnVubmluZyBuYXRpdmUgZ3JhcGhpY3MgZHJp dmVyIGluc2lkZSBhIFZNLCB3aXRob3V0IGh5cGVydmlzb3IgaW50ZXJ2ZW50aW9uIGluIHBlcmZv cm1hbmNlIGNyaXRpY2FsIHBhdGhzLCBhY2hpZXZlcyBhIGdvb2QgYmFsYW5jZSBhbW9uZyBwZXJm b3JtYW5jZSwgZmVhdHVyZSwgYW5kIHNoYXJpbmcgY2FwYWJpbGl0eS4gWGVuIGlzIGN1cnJlbnRs eSBzdXBwb3J0ZWQgb24gSW50ZWwgUHJvY2Vzc29yIEdyYXBoaWNzIChhLmsuYS4gWGVuR1QpLgoK ClJlcG9zaXRvcmllcwoKLSAgICBYZW46IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9pZ3Z0Zy14 ZW4gKDIwMTZxMy00LjYgYnJhbmNoKQotICAgIEtlcm5lbDogaHR0cHM6Ly9naXRodWIuY29tLzAx b3JnL2lndnRnLWtlcm5lbCAoMjAxNnEzLTQuMy4wIGJyYW5jaCkKLSAgICBRZW11OiBodHRwczov L2dpdGh1Yi5jb20vMDFvcmcvaWd2dGctcWVtdSAoMjAxNnEzLTIuMy4wIGJyYW5jaCkKCgpUaGlz IHVwZGF0ZSBjb25zaXN0cyBvZjoKCi0gICAgUHJlbGltaW5hcnkgc3VwcG9ydCBuZXcgcGxhdGZv cm06IDd0aCBnZW5lcmF0aW9uIEludGVswq4gQ29yZeKEoiBwcm9jZXNzb3JzLiBGb3Igd2luZG93 cyBPUywgaXQgb25seSBzdXBwb3J0cyBXaW4xMCBSZWRTdG9uZSA2NCBiaXQuCgotICAgIFdpbmRv d3MgMTAgUmVkU3RvbmUgZ3Vlc3QgU3VwcG9ydAoKLSAgICBXaW5kb3dzIEd1ZXN0IFFvUyBwcmVs aW1pbmFyeSBzdXBwb3J0OiAgQWRtaW5pc3RyYXRvcnMgbm93IGFyZSBhYmxlIHRvIGNvbnRyb2wg dGhlIG1heGltdW0gYW1vdW50IG9mIHZHUFUgcmVzb3VyY2UgdG8gYmUgY29uc3VtZWQgYnkgZWFj aCBWTSBmcm9tIHZhbHVlIDElIH4gOTkl4oCdCgotICAgIERpc3BsYXkgdmlydHVhbGl6YXRpb24g cHJlbGltaW5hcnkgc3VwcG9ydDogQmVzaWRlcyB0aGUgdHJhY2tpbmcgb2YgZGlzcGxheSByZWdp c3RlciB2aXNpdCBpbiBndWVzdCBWTSwgcmVtb3ZpbmcgaXJyZWxhdGl2ZSBkaXNwbGF5IHBpcGVs aW5lIGluZm8gYmV0d2VlbiBob3N0IGFuZCBndWVzdCBWTQoKLSAgICBMaXZlIE1pZ3JhdGlvbiBh bmQgc2F2ZXZtL3Jlc3RvcmV2bSBwcmVsaW1pbmFyeSBzdXBwb3J0IG9uIEJEVyB3aXRoIDJELzNE IHdvcmtsb2FkIHJ1bm5pbmcKCgoKS25vd24gaXNzdWVzOgoKLSAgIEF0IGxlYXN0IDJHQiBtZW1v cnkgaXMgc3VnZ2VzdGVkIGZvciBHdWVzdCBWaXJ0dWFsIE1hY2hpbmUgKHdpbjctMzIvNjQsIHdp bjguMS02NCwgd2luMTAtNjQpIHRvIHJ1biBtb3N0IDNEIHdvcmtsb2FkcwoKLSAgIFdpbmRvd3M4 IGFuZCBsYXRlciBXaW5kb3dzIGZhc3QgYm9vdCBpcyBub3Qgc3VwcG9ydGVkLCB0aGUgd29ya2Fy b3VuZCBpcyB0byBkaXNhYmxlIHBvd2VyIFMzL1M0IGluIEhWTSBmaWxlIGJ5IGFkZGluZyDigJxh Y3BpX1MzPTAsIGFjcGlfUzQ9MOKAnQoKLSAgIFNvbWV0aW1lcyB3aGVuIGRvbTAgYW5kIGd1ZXN0 IGhhcyBoZWF2eSB3b3JrbG9hZCwgaTkxNSBpbiBkb20wIHdpbGwgdHJpZ2dlciBhIGZhbHNlLWFs YXJtZWQgVERSLiBUaGUgd29ya2Fyb3VuZCBpcyB0byBkaXNhYmxlIGRvbTAgaGFuZ2NoZWNrIGlu IGRvbTAgZ3J1YiBmaWxlIGJ5IGFkZGluZyDigJxpOTE1LmVuYWJsZV9oYW5nY2hlY2s9MOKAnQoK LSAgIFN0YWJpbGl0eTogV2hlbiBRb1MgZmVhdHVyZSBpcyBlbmFibGVkLCBXaW5kb3dzIGd1ZXN0 IGZ1bGwgR1BVIHJlc2V0IGlzIG9mdGVuIHRyaWdnZXIgZHVyaW5nIE1UQkYgdGVzdC4gIFRoaXMg YnVnIHdpbGwgYmUgZml4ZWQgaW4gbmV4dCByZWxlYXNlCgotICAgV2luZG93cyBndWVzdCBydW5u aW5nIE9wZW5DTCBhbGxvY2F0aW9ucyBvY2N1cnMgdG8gaG9zdCBjcmFzaDsgdGhlIHdvcmthcm91 bmQgaXMgdG8gZGlzYWJsZSBsb2dkIGluIGRvbTAgZ3J1YiBmaWxlIGJ5IGFkZGluZyDigJxpOTE1 LiBsb2dkX2VuYWJsZSA9MOKAnQoKCk5leHQgdXBkYXRlIHdpbGwgYmUgYXJvdW5kIGVhcmx5IEph biwgMjAxNy4KCgpHVlQtZyBwcm9qZWN0IHBvcnRhbDogaHR0cHM6Ly8wMS5vcmcvaWd2dC1nClBs ZWFzZSBzdWJzY3JpYmUgbWFpbGluZyBsaXN0OiBodHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFu L2xpc3RpbmZvL2lndnQtZwoKCk1vcmUgaW5mb3JtYXRpb24gYWJvdXQgYmFja2dyb3VuZCwgYXJj aGl0ZWN0dXJlIGFuZCBvdGhlcnMgYWJvdXQgSW50ZWwgR1ZULWcsIGNhbiBiZSBmb3VuZCBhdDoK CiAgICBodHRwczovLzAxLm9yZy9pZ3Z0LWcKICAgIGh0dHBzOi8vd3d3LnVzZW5peC5vcmcvY29u ZmVyZW5jZS9hdGMxNC90ZWNobmljYWwtc2Vzc2lvbnMvcHJlc2VudGF0aW9uL3RpYW4KICAgIGh0 dHA6Ly9ldmVudHMubGludXhmb3VuZGF0aW9uLm9yZy9zaXRlcy9ldmVudHMvZmlsZXMvc2xpZGVz L1hlbkdULVhlbiUyMFN1bW1pdC12N18wLnBkZgogICAgaHR0cDovL2V2ZW50cy5saW51eGZvdW5k YXRpb24ub3JnL3NpdGVzL2V2ZW50cy9maWxlcy9zbGlkZXMvWGVuR1QtWGVuJTIwU3VtbWl0LVJF V1JJVEUlMjAzUkQlMjB2NC5wZGYKICAgIGh0dHBzOi8vMDEub3JnL3hlbi9ibG9ncy9zcmNsYXJr eC8yMDEzL2dyYXBoaWNzLXZpcnR1YWxpemF0aW9uLXhlbmd0CgoKTm90ZTogVGhlIFhlbkdUIHBy b2plY3Qgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYSB3b3JrIGluIHByb2dyZXNzLiBBcyBzdWNoIGl0 IGlzIG5vdCBhIGNvbXBsZXRlIHByb2R1Y3Qgbm9yIHNob3VsZCBpdCBiZSBjb25zaWRlcmVkIG9u ZS4gRXh0cmEgY2FyZSBzaG91bGQgYmUgdGFrZW4gd2hlbiB0ZXN0aW5nIGFuZCBjb25maWd1cmlu ZyBhIHN5c3RlbSB0byB1c2UgdGhlIFhlbkdUIHByb2plY3QuCgotLQpUaGFua3MsCkppa2UKCk9u IDA3LzIyLzIwMTYgMDE6NDIgUE0sIEppa2UgU29uZyB3cm90ZToKPiBIaSBhbGwsCj4gCj4gV2Ug YXJlIHBsZWFzZWQgdG8gYW5ub3VuY2UgYW5vdGhlciB1cGRhdGUgb2YgSW50ZWwgR1ZULWcgZm9y IFhlbi4KPiAKPiBJbnRlbCBHVlQtZyBpcyBhIGZ1bGwgR1BVIHZpcnR1YWxpemF0aW9uIHNvbHV0 aW9uIHdpdGggbWVkaWF0ZWQgcGFzcy10aHJvdWdoLCBzdGFydGluZyBmcm9tIDR0aCBnZW5lcmF0 aW9uIEludGVsIENvcmUoVE0pIHByb2Nlc3NvcnMgd2l0aCBJbnRlbCBHcmFwaGljcyBwcm9jZXNz b3JzLiBBIHZpcnR1YWwgR1BVIGluc3RhbmNlIGlzIG1haW50YWluZWQgZm9yIGVhY2ggVk0sIHdp dGggcGFydCBvZiBwZXJmb3JtYW5jZSBjcml0aWNhbCByZXNvdXJjZXMgZGlyZWN0bHkgYXNzaWdu ZWQuIFRoZSBjYXBhYmlsaXR5IG9mIHJ1bm5pbmcgbmF0aXZlIGdyYXBoaWNzIGRyaXZlciBpbnNp ZGUgYSBWTSwgd2l0aG91dCBoeXBlcnZpc29yIGludGVydmVudGlvbiBpbiBwZXJmb3JtYW5jZSBj cml0aWNhbCBwYXRocywgYWNoaWV2ZXMgYSBnb29kIGJhbGFuY2UgYW1vbmcgcGVyZm9ybWFuY2Us IGZlYXR1cmUsIGFuZCBzaGFyaW5nIGNhcGFiaWxpdHkuIFhlbiBpcyBjdXJyZW50bHkgc3VwcG9y dGVkIG9uIEludGVsIFByb2Nlc3NvciBHcmFwaGljcyAoYS5rLmEuIFhlbkdUKS4KPiAKPiBSZXBv c2l0b3JpZXMKPiAtICAgIFhlbjogaHR0cHM6Ly9naXRodWIuY29tLzAxb3JnL2lndnRnLXhlbiAo MjAxNnEyLTQuNiBicmFuY2gpCj4gLSAgICBLZXJuZWw6IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9y Zy9pZ3Z0Zy1rZXJuZWwgKDIwMTZxMi00LjMuMCBicmFuY2gpCj4gLSAgICBRZW11OiBodHRwczov L2dpdGh1Yi5jb20vMDFvcmcvaWd2dGctcWVtdSAoMjAxNnEyLTIuMy4wIGJyYW5jaCkKPiAKPiBU aGlzIHVwZGF0ZSBjb25zaXN0cyBvZjoKPiAtICAgIFN1cHBvcnQgV2luZG93cyAxMCBndWVzdAo+ IC0gICAgU3VwcG9ydCBXaW5kb3dzIEdyYXBoaWNzIGRyaXZlciBpbnN0YWxsYXRpb24gb24gYm90 aCBXaW5kb3dzIE5vcm1hbCBtb2RlIGFuZCBTYWZlIG1vZGUKPiAKPiBLbm93biBpc3N1ZXM6Cj4g LSAgIEF0IGxlYXN0IDJHQiBtZW1vcnkgaXMgc3VnZ2VzdGVkIGZvciBHdWVzdCBWaXJ0dWFsIE1h Y2hpbmUgKFZNKSB0byBydW4gbW9zdCAzRCB3b3JrbG9hZHMKPiAtICAgRG9tMCBTMyByZWxhdGVk IGZlYXR1cmUgaXMgbm90IHN1cHBvcnRlZAo+IC0gICBXaW5kb3dzIDggYW5kIGxhdGVyIHZlcnNp b25zOiBmYXN0IGJvb3QgaXMgbm90IHN1cHBvcnRlZCwgdGhlIHdvcmthcm91bmQgaXMgdG8gZGlz YWJsZSBwb3dlciBTMy9TNCBpbiBIVk0gZmlsZSBieSBhZGRpbmcgImFjcGlfUzM9MCwgYWNwaV9T ND0wIgo+IC0gICBVc2luZyBXaW5kb3dzIE1lZGlhIFBsYXllciBwbGF5IHZpZGVvcyBtYXkgY2F1 c2UgaG9zdCBjcmFzaC4gVXNpbmcgVkxDIHRvIHBsYXkgLm9nZyBmaWxlIG1heSBjYXVzZSBtb3Nh aWMgb3Igc2xvdyByZXNwb25zZS4KPiAtICAgU29tZXRpbWVzIHdoZW4gYm90aCBkb20wIGFuZCBn dWVzdCBoYXZlIGhlYXZ5IHdvcmtsb2FkcywgaTkxNSBpbiBkb20wIHdpbGwgdHJpZ2dlciBhIGZh bHNlIGdyYXBoaWNzIHJlc2V0LAo+ICAgICB0aGUgd29ya2Fyb3VuZCBpcyB0byBkaXNhYmxlIGRv bTAgaGFuZ2NoZWNrIGluIGdydWIgZmlsZSBieSBhZGRpbmcgImk5MTUuZW5hYmxlX2hhbmdjaGVj az0wIi4KPiAKPiBOZXh0IHVwZGF0ZSB3aWxsIGJlIGFyb3VuZCBlYXJseSBPY3QsIDIwMTYuCj4g Cj4gR1ZULWcgcHJvamVjdCBwb3J0YWw6IGh0dHBzOi8vMDEub3JnL2lndnQtZwo+IFBsZWFzZSBz dWJzY3JpYmUgbWFpbGluZyBsaXN0OiBodHRwczovL2xpc3RzLjAxLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2lndnQtZwo+IAo+IE1vcmUgaW5mb3JtYXRpb24gYWJvdXQgYmFja2dyb3VuZCwgYXJjaGl0 ZWN0dXJlIGFuZCBvdGhlcnMgYWJvdXQgSW50ZWwgR1ZULWcsIGNhbiBiZSBmb3VuZCBhdDoKPiAg ICAgaHR0cHM6Ly8wMS5vcmcvaWd2dC1nCj4gICAgIGh0dHBzOi8vd3d3LnVzZW5peC5vcmcvY29u ZmVyZW5jZS9hdGMxNC90ZWNobmljYWwtc2Vzc2lvbnMvcHJlc2VudGF0aW9uL3RpYW4KPiAgICAg aHR0cDovL2V2ZW50cy5saW51eGZvdW5kYXRpb24ub3JnL3NpdGVzL2V2ZW50cy9maWxlcy9zbGlk ZXMvWGVuR1QtWGVuJTIwU3VtbWl0LXY3XzAucGRmCj4gICAgIGh0dHA6Ly9ldmVudHMubGludXhm b3VuZGF0aW9uLm9yZy9zaXRlcy9ldmVudHMvZmlsZXMvc2xpZGVzL1hlbkdULVhlbiUyMFN1bW1p dC1SRVdSSVRFJTIwM1JEJTIwdjQucGRmCj4gICAgIGh0dHBzOi8vMDEub3JnL3hlbi9ibG9ncy9z cmNsYXJreC8yMDEzL2dyYXBoaWNzLXZpcnR1YWxpemF0aW9uLXhlbmd0Cj4gCj4gCj4gTm90ZTog VGhlIFhlbkdUIHByb2plY3Qgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYSB3b3JrIGluIHByb2dyZXNz LiBBcyBzdWNoIGl0IGlzIG5vdCBhIGNvbXBsZXRlIHByb2R1Y3Qgbm9yIHNob3VsZCBpdCBiZSBj b25zaWRlcmVkIG9uZS4gRXh0cmEgY2FyZSBzaG91bGQgYmUgdGFrZW4gd2hlbiB0ZXN0aW5nIGFu ZCBjb25maWd1cmluZyBhIHN5c3RlbSB0byB1c2UgdGhlIFhlbkdUIHByb2plY3QuCj4gCj4gLS0K PiBUaGFua3MsCj4gSmlrZQo+IAo+IE9uIDA0LzI4LzIwMTYgMDE6MjkgUE0sIEppa2UgU29uZyB3 cm90ZToKPj4gSGkgYWxsLAo+Pgo+PiBXZSBhcmUgcGxlYXNlZCB0byBhbm5vdW5jZSBhbm90aGVy IHVwZGF0ZSBvZiBJbnRlbCBHVlQtZyBmb3IgWGVuLgo+Pgo+PiBJbnRlbCBHVlQtZyBpcyBhIGZ1 bGwgR1BVIHZpcnR1YWxpemF0aW9uIHNvbHV0aW9uIHdpdGggbWVkaWF0ZWQgcGFzcy10aHJvdWdo LCBzdGFydGluZyBmcm9tIDR0aCBnZW5lcmF0aW9uIEludGVsIENvcmUoVE0pIHByb2Nlc3NvcnMg d2l0aCBJbnRlbCBHcmFwaGljcyBwcm9jZXNzb3JzLiBBIHZpcnR1YWwgR1BVIGluc3RhbmNlIGlz IG1haW50YWluZWQgZm9yIGVhY2ggVk0sIHdpdGggcGFydCBvZiBwZXJmb3JtYW5jZSBjcml0aWNh bCByZXNvdXJjZXMgZGlyZWN0bHkgYXNzaWduZWQuIFRoZSBjYXBhYmlsaXR5IG9mIHJ1bm5pbmcg bmF0aXZlIGdyYXBoaWNzIGRyaXZlciBpbnNpZGUgYSBWTSwgd2l0aG91dCBoeXBlcnZpc29yIGlu dGVydmVudGlvbiBpbiBwZXJmb3JtYW5jZSBjcml0aWNhbCBwYXRocywgYWNoaWV2ZXMgYSBnb29k IGJhbGFuY2UgYW1vbmcgcGVyZm9ybWFuY2UsIGZlYXR1cmUsIGFuZCBzaGFyaW5nIGNhcGFiaWxp dHkuIFhlbiBpcyBjdXJyZW50bHkgc3VwcG9ydGVkIG9uIEludGVsIFByb2Nlc3NvciBHcmFwaGlj cyAoYS5rLmEuIFhlbkdUKS4KPj4KPj4KPj4gUmVwb3NpdG9yaWVzCj4+IC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KPj4KPj4gS2VybmVsOiBodHRwczovL2dpdGh1Yi5jb20vMDFvcmcvaWd2dGct a2VybmVsICgyMDE2cTEtNC4zLjAgYnJhbmNoKQo+PiBYZW46IGh0dHBzOi8vZ2l0aHViLmNvbS8w MW9yZy9pZ3Z0Zy14ZW4gKDIwMTZxMS00LjYgYnJhbmNoKQo+PiBRZW11OiBodHRwczovL2dpdGh1 Yi5jb20vMDFvcmcvaWd2dGctcWVtdSAoMjAxNnExLTIuMy4wIGJyYW5jaCkKPj4KPj4gVGhpcyB1 cGRhdGUgY29uc2lzdHMgb2Y6Cj4+IC0gICAgV2luZG93cyAxMCBndWVzdCBpcyBwcmVsaW1pbmFy aWx5IHN1cHBvcnRlZCBpbiB0aGlzIHJlbGVhc2UuIAo+PiAtICAgIEltcGxlbWVudGVkIHZndGJ1 ZmZlcihJbmRpcmVjdCBkaXNwbGF5KSBmZWF0dXJlIG9uIFNLTCBwbGF0Zm9ybS4KPj4gLSAgICBC YWNrd2FyZCBjb21wYXRpYmlsaXR5IHN1cHBvcnQgNXRoIGdlbmVyYXRpb24gKEJyb2Fkd2VsbCkK Pj4gLSAgICBJbmNyZWFzZWQgVkdUIHN0YWJpbGl0eSBvbiBTS0wgcGxhdGZvcm0KPj4gLSAgICBL ZXJuZWwgdXBkYXRlZCBmcm9tIGRybS1pbnRlbCA0LjIuMCB0byBkcm0taW50ZWwgNC4zLjAKPj4g LSAgICBYZW4gdXBkYXRlZCBmcm9tIFhlbiA0LjUuMCB0byBYZW4gNC42LjAKPj4gLSAgICBRZW11 IHVwZGF0ZWQgZnJvbSAxLjYgdG8gMi4zCj4+Cj4+IEtub3duIGlzc3VlczoKPj4gLSAgICBBdCBs ZWFzdCAyR0IgbWVtb3J5IGlzIHN1Z2dlc3RlZCBmb3IgVk0od2luNy0zMi82NCwgd2luOC4xIDY0 KSB0byBydW4gbW9zdCAzRCB3b3JrbG9hZHMuCj4+IC0gICAgV2luZG93cyA3IEdGWCBkcml2ZXIg dXBncmFkaW5nIG9ubHkgd29ya3Mgb24gU2FmZSBtb2RlLgo+PiAtICAgIFNvbWUgbWVkaWEgZGVj b2RlIGNhbid0IHdvcmsgd2VsbCAod2lsbCBiZSByZXNvbHZlZCBpbiB0aGUgbmV4dCB2ZXJzaW9u IFdpbmRvd3MgR0ZYIGRyaXZlcikuIAo+PiAtICAgIFdpbmRvd3M4IGFuZCBsYXRlciBXaW5kb3dz IGZhc3QgYm9vdCBpcyBub3Qgc3VwcG9ydGVkLCB3aG9zZSB3b3JrYXJvdW5kIGlzIHRvIGRpc2Fi bGUgcG93ZXIgUzMvUzQgaW4gSFZNIGZpbGUgYnkgYWRkaW5nICJhY3BpX3MzPTAsIGFjcGlfczQ9 MCIKPj4gLSAgICBTb21ldGltZXMgd2hlbiBkb20wIGFuZCBndWVzdCBoYXZlIGhlYXZ5IHdvcmts b2FkLCBpOTE1IGluIGRvbTAgd2lsbCB0cmlnZ2VyIGEgZmFsc2UgZ3JhcGhpY3MgcmVzZXQuIFRo ZSB3b3JrYXJvdW5kIGlzIHRvIGRpc2FibGUgZG9tMCBoYW5nY2hlY2sgaW4gZG9tMCBncnViIGZp bGUgYnkgYWRkaW5nICJpOTE1LmVuYWJsZV9oYW5nY2hlY2s9MCIKPj4KPj4gTmV4dCB1cGRhdGUg d2lsbCBiZSBhcm91bmQgZWFybHkgSnVseSwgMjAxNi4KPj4KPj4gR1ZULWcgcHJvamVjdCBwb3J0 YWw6Cj4+IAlodHRwczovLzAxLm9yZy9pZ3Z0LWcKPj4KPj4gUGxlYXNlIHN1YnNjcmliZSB0aGUg bWFpbGluZyBsaXN0Ogo+PiAJaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9p Z3Z0LWcKPj4KPj4KPj4gTW9yZSBpbmZvcm1hdGlvbiBhYm91dCBiYWNrZ3JvdW5kLCBhcmNoaXRl Y3R1cmUgYW5kIG90aGVycyBhYm91dCBJbnRlbCBHVlQtZywgY2FuIGJlIGZvdW5kIGF0Ogo+Pgo+ PiAgICAgaHR0cHM6Ly8wMS5vcmcvaWd2dC1nCj4+ICAgICBodHRwczovL3d3dy51c2VuaXgub3Jn L2NvbmZlcmVuY2UvYXRjMTQvdGVjaG5pY2FsLXNlc3Npb25zL3ByZXNlbnRhdGlvbi90aWFuCj4+ ICAgICBodHRwOi8vZXZlbnRzLmxpbnV4Zm91bmRhdGlvbi5vcmcvc2l0ZXMvZXZlbnRzL2ZpbGVz L3NsaWRlcy9YZW5HVC1YZW4lMjBTdW1taXQtdjdfMC5wZGYKPj4gICAgIGh0dHA6Ly9ldmVudHMu bGludXhmb3VuZGF0aW9uLm9yZy9zaXRlcy9ldmVudHMvZmlsZXMvc2xpZGVzL1hlbkdULVhlbiUy MFN1bW1pdC1SRVdSSVRFJTIwM1JEJTIwdjQucGRmCj4+ICAgICBodHRwczovLzAxLm9yZy94ZW4v YmxvZ3Mvc3JjbGFya3gvMjAxMy9ncmFwaGljcy12aXJ0dWFsaXphdGlvbi14ZW5ndAo+Pgo+Pgo+ PiBOb3RlOiBUaGUgWGVuR1QgcHJvamVjdCBzaG91bGQgYmUgY29uc2lkZXJlZCBhIHdvcmsgaW4g cHJvZ3Jlc3MuIEFzIHN1Y2ggaXQgaXMgbm90IGEgY29tcGxldGUgcHJvZHVjdCBub3Igc2hvdWxk IGl0IGJlIGNvbnNpZGVyZWQgb25lLiBFeHRyYSBjYXJlIHNob3VsZCBiZSB0YWtlbiB3aGVuIHRl c3RpbmcgYW5kIGNvbmZpZ3VyaW5nIGEgc3lzdGVtIHRvIHVzZSB0aGUgWGVuR1QgcHJvamVjdC4K Pj4KPj4KPj4gLS0KPj4gVGhhbmtzLAo+PiBKaWtlCj4+Cj4+IE9uIDAxLzI3LzIwMTYgMDI6MjEg UE0sIEppa2UgU29uZyB3cm90ZToKPj4+IEhpIGFsbCwKPj4+Cj4+PiBXZSBhcmUgcGxlYXNlZCB0 byBhbm5vdW5jZSBhbm90aGVyIHVwZGF0ZSBvZiBJbnRlbCBHVlQtZyBmb3IgWGVuLgo+Pj4KPj4+ IEludGVsIEdWVC1nIGlzIGEgZnVsbCBHUFUgdmlydHVhbGl6YXRpb24gc29sdXRpb24gd2l0aCBt ZWRpYXRlZCBwYXNzLXRocm91Z2gsIHN0YXJ0aW5nIGZyb20gNHRoIGdlbmVyYXRpb24gSW50ZWwg Q29yZShUTSkgcHJvY2Vzc29ycyB3aXRoIEludGVsIEdyYXBoaWNzIHByb2Nlc3NvcnMuIEEgdmly dHVhbCBHUFUgaW5zdGFuY2UgaXMgbWFpbnRhaW5lZCBmb3IgZWFjaCBWTSwgd2l0aCBwYXJ0IG9m IHBlcmZvcm1hbmNlIGNyaXRpY2FsIHJlc291cmNlcyBkaXJlY3RseSBhc3NpZ25lZC4gVGhlIGNh cGFiaWxpdHkgb2YgcnVubmluZyBuYXRpdmUgZ3JhcGhpY3MgZHJpdmVyIGluc2lkZSBhIFZNLCB3 aXRob3V0IGh5cGVydmlzb3IgaW50ZXJ2ZW50aW9uIGluIHBlcmZvcm1hbmNlIGNyaXRpY2FsIHBh dGhzLCBhY2hpZXZlcyBhIGdvb2QgYmFsYW5jZSBhbW9uZyBwZXJmb3JtYW5jZSwgZmVhdHVyZSwg YW5kIHNoYXJpbmcgY2FwYWJpbGl0eS4gWGVuIGlzIGN1cnJlbnRseSBzdXBwb3J0ZWQgb24gSW50 ZWwgUHJvY2Vzc29yIEdyYXBoaWNzIChhLmsuYS4gWGVuR1QpLgo+Pj4KPj4+IFJlcG9zaXRvcmll cwo+Pj4gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+Pj4KPj4+IEtlcm5lbDogaHR0cHM6Ly9n aXRodWIuY29tLzAxb3JnL2lndnRnLWtlcm5lbCAoMjAxNXE0LTQuMi4wIGJyYW5jaCkKPj4+IFhl bjogaHR0cHM6Ly9naXRodWIuY29tLzAxb3JnL2lndnRnLXhlbiAoMjAxNXE0LTQuNSBicmFuY2gp Cj4+PiBRZW11OiBodHRwczovL2dpdGh1Yi5jb20vMDFvcmcvaWd2dGctcWVtdSAoeGVuZ3RfcHVi bGljMjAxNXE0IGJyYW5jaCkKPj4+Cj4+PiBUaGlzIHVwZGF0ZSBjb25zaXN0cyBvZjoKPj4+Cj4+ PiAJLSA2dGggZ2VuZXJhdGlvbiBJbnRlbCBDb3JlIFByb2Nlc3NvciAoY29kZSBuYW1lOiBTa3ls YWtlKSBpcyBwcmVsaW1pbmFyaWx5IHN1cHBvcnRlZCBpbiB0aGlzIHJlbGVhc2UuIFVzZXJzIGNv dWxkIHN0YXJ0IHJ1biBtdWx0aXBsZSBXaW5kb3dzIC8gTGludXggdmlydHVhbCBtYWNoaW5lcyBz aW11bHRhbmVvdXNseSwgYW5kIHN3aXRjaCBkaXNwbGF5IGFtb25nIHRoZW0uCj4+PiAJLSBCYWNr d2FyZCBjb21wYXRpYmlsaXR5IHN1cHBvcnQgNHRoIGdlbmVyYXRpb24gSW50ZWwgQ29yZSBQcm9j ZXNzb3IgKGNvZGUgbmFtZTogSGFzd2VsbCkgYW5kIDV0aCBnZW5lcmF0aW9uIEludGVsIENvcmUg UHJvY2Vzc29yIChjb2RlIG5hbWU6IEJyb2Fkd2VsbCkuCj4+PiAJLSBLZXJuZWwgdXBkYXRlIGZy b20gZHJtLWludGVsIDMuMTguMCB0byBkcm0taW50ZWwgNC4yLjAuCj4+Pgo+Pj4gS25vd24gaXNz dWVzOgo+Pj4gICAgLSBBdCBsZWFzdCAyR0IgbWVtb3J5IGlzIHN1Z2dlc3RlZCBmb3IgYSBWTSB0 byBydW4gbW9zdCAzRCB3b3JrbG9hZHMuCj4+PiAgICAtIEtleW1hcCBtaWdodCBiZSBpbmNvcnJl Y3QgaW4gZ3Vlc3QuIENvbmZpZyBmaWxlIG1heSBuZWVkIHRvIGV4cGxpY2l0bHkgc3BlY2lmeSAi a2V5bWFwPSdlbi11cyciLiBBbHRob3VnaCBpdCBsb29rcyBsaWtlIHRoZSBkZWZhdWx0IHZhbHVl LCBlYXJsaWVyIHdlIHNhdyB0aGUgcHJvYmxlbSBvZiB3cm9uZyBrZXltYXAgY29kZSBpZiBpdCBp cyBub3QgZXhwbGljaXRseSBzZXQuCj4+PiAgICAtIENhbm5vdCBtb3ZlIG1vdXNlIHBvaW50ZXIg c21vb3RobHkgaW4gZ3Vlc3QgYnkgZGVmYXVsdCBsYXVuY2hlZCBieSBWTkMgbW9kZS4gQ29uZmln dXJhdGlvbiBmaWxlIG5lZWQgdG8gZXhwbGljaXRseSBzcGVjaWZ5ICJ1c2I9MSIgdG8gZW5hYmxl IGEgVVNCIGJ1cywgYW5kICJ1c2JkZXZpY2U9J3RhYmxldCciIHRvIGFkZCBwb2ludGVyIGRldmlj ZSB1c2luZyBhYnNvbHV0ZSBjb29yZGluYXRlcy4KPj4+ICAgIC0gUnVubmluZyBoZWF2eSAzRCB3 b3JrbG9hZHMgaW4gbXVsdGlwbGUgZ3Vlc3RzIGZvciBjb3VwbGUgb2YgaG91cnMgbWF5IGNhdXNl IHN0YWJpbGl0eSBpc3N1ZS4KPj4+ICAgIC0gVGhlcmUgYXJlIHN0aWxsIHN0YWJpbGl0eSBpc3N1 ZXMgb24gU2t5bGFrZQo+Pj4KPj4+Cj4+PiBOZXh0IHVwZGF0ZSB3aWxsIGJlIGFyb3VuZCBlYXJs eSBBcHJpbCwgMjAxNi4KPj4+Cj4+PiBHVlQtZyBwcm9qZWN0IHBvcnRhbDogaHR0cHM6Ly8wMS5v cmcvaWd2dC1nCj4+PiBQbGVhc2Ugc3Vic2NyaWJlIG1haWxpbmcgbGlzdDogaHR0cHM6Ly9saXN0 cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3Z0LWcKPj4+Cj4+Pgo+Pj4gTW9yZSBpbmZvcm1h dGlvbiBhYm91dCBiYWNrZ3JvdW5kLCBhcmNoaXRlY3R1cmUgYW5kIG90aGVycyBhYm91dCBJbnRl bCBHVlQtZywgY2FuIGJlIGZvdW5kIGF0Ogo+Pj4KPj4+ICAgICBodHRwczovLzAxLm9yZy9pZ3Z0 LWcKPj4+ICAgICBodHRwczovL3d3dy51c2VuaXgub3JnL2NvbmZlcmVuY2UvYXRjMTQvdGVjaG5p Y2FsLXNlc3Npb25zL3ByZXNlbnRhdGlvbi90aWFuCj4+PiAgICAgaHR0cDovL2V2ZW50cy5saW51 eGZvdW5kYXRpb24ub3JnL3NpdGVzL2V2ZW50cy9maWxlcy9zbGlkZXMvWGVuR1QtWGVuJTIwU3Vt bWl0LXY3XzAucGRmCj4+PiAgICAgaHR0cDovL2V2ZW50cy5saW51eGZvdW5kYXRpb24ub3JnL3Np dGVzL2V2ZW50cy9maWxlcy9zbGlkZXMvWGVuR1QtWGVuJTIwU3VtbWl0LVJFV1JJVEUlMjAzUkQl MjB2NC5wZGYKPj4+ICAgICBodHRwczovLzAxLm9yZy94ZW4vYmxvZ3Mvc3JjbGFya3gvMjAxMy9n cmFwaGljcy12aXJ0dWFsaXphdGlvbi14ZW5ndAo+Pj4KPj4+Cj4+PiBOb3RlOiBUaGUgWGVuR1Qg cHJvamVjdCBzaG91bGQgYmUgY29uc2lkZXJlZCBhIHdvcmsgaW4gcHJvZ3Jlc3MuIEFzIHN1Y2gg aXQgaXMgbm90IGEgY29tcGxldGUgcHJvZHVjdCBub3Igc2hvdWxkIGl0IGJlIGNvbnNpZGVyZWQg b25lLiBFeHRyYSBjYXJlIHNob3VsZCBiZSB0YWtlbiB3aGVuIHRlc3RpbmcgYW5kIGNvbmZpZ3Vy aW5nIGEgc3lzdGVtIHRvIHVzZSB0aGUgWGVuR1QgcHJvamVjdC4KPj4+Cj4+Pgo+Pj4gLS0KPj4+ IFRoYW5rcywKPj4+IEppa2UKPj4+Cj4+PiBPbiAxMC8yNy8yMDE1IDA1OjI1IFBNLCBKaWtlIFNv bmcgd3JvdGU6Cj4+Pj4gSGkgYWxsLAo+Pj4+Cj4+Pj4gV2UgYXJlIHBsZWFzZWQgdG8gYW5ub3Vu Y2UgYW5vdGhlciB1cGRhdGUgb2YgSW50ZWwgR1ZULWcgZm9yIFhlbi4KPj4+Pgo+Pj4+IEludGVs IEdWVC1nIGlzIGEgZnVsbCBHUFUgdmlydHVhbGl6YXRpb24gc29sdXRpb24gd2l0aCBtZWRpYXRl ZCBwYXNzLXRocm91Z2gsIHN0YXJ0aW5nIGZyb20gNHRoIGdlbmVyYXRpb24gSW50ZWwgQ29yZShU TSkgcHJvY2Vzc29ycyB3aXRoIEludGVsIEdyYXBoaWNzIHByb2Nlc3NvcnMuIEEgdmlydHVhbCBH UFUgaW5zdGFuY2UgaXMgbWFpbnRhaW5lZCBmb3IgZWFjaCBWTSwgd2l0aCBwYXJ0IG9mIHBlcmZv cm1hbmNlIGNyaXRpY2FsIHJlc291cmNlcyBkaXJlY3RseSBhc3NpZ25lZC4gVGhlIGNhcGFiaWxp dHkgb2YgcnVubmluZyBuYXRpdmUgZ3JhcGhpY3MgZHJpdmVyIGluc2lkZSBhIFZNLCB3aXRob3V0 IGh5cGVydmlzb3IgaW50ZXJ2ZW50aW9uIGluIHBlcmZvcm1hbmNlIGNyaXRpY2FsIHBhdGhzLCBh Y2hpZXZlcyBhIGdvb2QgYmFsYW5jZSBhbW9uZyBwZXJmb3JtYW5jZSwgZmVhdHVyZSwgYW5kIHNo YXJpbmcgY2FwYWJpbGl0eS4gWGVuIGlzIGN1cnJlbnRseSBzdXBwb3J0ZWQgb24gSW50ZWwgUHJv Y2Vzc29yIEdyYXBoaWNzIChhLmsuYS4gWGVuR1QpOyBhbmQgdGhlIGNvcmUgbG9naWMgY2FuIGJl IGVhc2lseSBwb3J0ZWQgdG8gb3RoZXIgaHlwZXJ2aXNvcnMuCj4+Pj4KPj4+Pgo+Pj4+IFJlcG9z aXRvcmllcwo+Pj4+Cj4+Pj4gICAgICBLZXJuZWw6IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9p Z3Z0Zy1rZXJuZWwgKDIwMTVxMy0zLjE4LjAgYnJhbmNoKQo+Pj4+ICAgICAgWGVuOiBodHRwczov L2dpdGh1Yi5jb20vMDFvcmcvaWd2dGcteGVuICgyMDE1cTMtNC41IGJyYW5jaCkKPj4+PiAgICAg IFFlbXU6IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9pZ3Z0Zy1xZW11ICh4ZW5ndF9wdWJsaWMy MDE1cTMgYnJhbmNoKQo+Pj4+Cj4+Pj4KPj4+PiBUaGlzIHVwZGF0ZSBjb25zaXN0cyBvZjoKPj4+ Pgo+Pj4+ICAgICAgLSBYZW5HVCBpcyBub3cgbWVyZ2VkIHdpdGggS1ZNR1QgaW4gdW5pZmllZCBy ZXBvc2l0b3JpZXMoa2VybmVsIGFuZCBxZW11KSwgYnV0IGN1cnJlbnRseQo+Pj4+ICAgICAgICBk aWZmZXJlbnQgYnJhbmNoZXMgZm9yIHFlbXUuICBYZW5HVCBhbmQgS1ZNR1Qgc2hhcmUgc2FtZSBp R1ZULWcgY29yZSBsb2dpYy4KPj4+PiAgICAgIC0gZml4IHN5c2ZzL2RlYnVnZnMgYWNjZXNzIHNl bGRvbSBjcmFzaCBpc3N1ZQo+Pj4+ICAgICAgLSBmaXggYSBCVUcgaW4gWGVuR1QgSS9PIGVtdWxh dGlvbiBsb2dpYwo+Pj4+ICAgICAgLSBpbXByb3ZlIDNkIHdvcmtsb2FkIHN0YWJpbGl0eQo+Pj4+ Cj4+Pj4gTmV4dCB1cGRhdGUgd2lsbCBiZSBhcm91bmQgZWFybHkgSmFuLCAyMDE2Lgo+Pj4+Cj4+ Pj4KPj4+PiBLbm93biBpc3N1ZXM6Cj4+Pj4KPj4+PiAgICAgIC0gQXQgbGVhc3QgMkdCIG1lbW9y eSBpcyBzdWdnZXN0ZWQgZm9yIFZNIHRvIHJ1biBtb3N0IDNEIHdvcmtsb2Fkcy4KPj4+PiAgICAg IC0gS2V5bWFwIG1pZ2h0IGJlIGluY29ycmVjdCBpbiBndWVzdC4gQ29uZmlnIGZpbGUgbWF5IG5l ZWQgdG8gZXhwbGljaXRseSBzcGVjaWZ5ICJrZXltYXA9J2VuLXVzJyIuIEFsdGhvdWdoIGl0IGxv b2tzIGxpa2UgdGhlIGRlZmF1bHQgdmFsdWUsIGVhcmxpZXIgd2Ugc2F3IHRoZSBwcm9ibGVtIG9m IHdyb25nIGtleW1hcCBjb2RlIGlmIGl0IGlzIG5vdCBleHBsaWNpdGx5IHNldC4KPj4+PiAgICAg IC0gV2hlbiB1c2luZyB0aHJlZSBtb25pdG9ycywgZG9pbmcgaG90cGx1ZyBiZXR3ZWVuIEd1ZXN0 IHBhdXNlL3VucGF1c2UgbWF5IG5vdCBiZSBhYmxlIHRvIGxpZ2h0dXAgYWxsIG1vbml0b3JzIGF1 dG9tYXRpY2FsbHkuIFNvbWUgc3BlY2lmaWMgbW9uaXRvciBpc3N1ZXMuCj4+Pj4gICAgICAtIENh bm5vdCBtb3ZlIG1vdXNlIHBvaW50ZXIgc21vb3RobHkgaW4gZ3Vlc3QgYnkgZGVmYXVsdCBsYXVu Y2hlZCBieSBWTkMgbW9kZS4gQ29uZmlndXJhdGlvbiBmaWxlIG5lZWQgdG8gZXhwbGljaXRseSBz cGVjaWZ5ICJ1c2I9MSIgdG8gZW5hYmxlIGEgVVNCIGJ1cywgYW5kICJ1c2JkZXZpY2U9J3RhYmxl dCciIHRvIGFkZCBwb2ludGVyIGRldmljZSB1c2luZyBhYnNvbHV0ZSBjb29yZGluYXRlcy4KPj4+ PiAgICAgIC0gUmVzdW1lIGRvbTAgZnJvbSBTMyBtYXkgY2F1c2Ugc29tZSBlcnJvciBtZXNzYWdl Lgo+Pj4+ICAgICAgLSBpOTE1IHVubG9hZC9yZWxvYWQgY2Fubm90IHdvcmtzIHdlbGwgd2l0aCBs ZXNzIHRoYW4gMyB2Y3B1IHdoZW4gdXBvd2VyZCBzZXJ2aWNlIHdhcyBydW5uaW5nCj4+Pj4gICAg ICAtIFVuaWdlbiBUcm9waWNzIHJ1bm5pbmcgaW4gbXVsdGlwbGUgZ3Vlc3RzIHdpbGwgY2F1c2Ug ZG9tMCBhbmQgZ3Vlc3RzIHRkci4KPj4+Pgo+Pj4+Cj4+Pj4gUGxlYXNlIHN1YnNjcmliZSB0aGUg bWFpbGluZyBsaXN0IHRvIHJlcG9ydCBCVUdzLCBkaXNjdXNzLCBhbmQvb3IgY29udHJpYnV0ZToK Pj4+Pgo+Pj4+ICAgICAgaHR0cHM6Ly9saXN0cy4wMS5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3Z0 LWcKPj4+Pgo+Pj4+Cj4+Pj4gTW9yZSBpbmZvcm1hdGlvbiBhYm91dCBJbnRlbCBHVlQtZyBiYWNr Z3JvdW5kLCBhcmNoaXRlY3R1cmUsIGV0YyBjYW4gYmUgZm91bmQgYXQobWF5IG5vdCBiZSB1cC10 by1kYXRlKToKPj4+Pgo+Pj4+ICAgICAgaHR0cHM6Ly8wMS5vcmcvaWd2dC1nCj4+Pj4gICAgICBo dHRwczovL3d3dy51c2VuaXgub3JnL2NvbmZlcmVuY2UvYXRjMTQvdGVjaG5pY2FsLXNlc3Npb25z L3ByZXNlbnRhdGlvbi90aWFuCj4+Pj4gICAgICBodHRwOi8vZXZlbnRzLmxpbnV4Zm91bmRhdGlv bi5vcmcvc2l0ZXMvZXZlbnRzL2ZpbGVzL3NsaWRlcy9YZW5HVC1YZW4lMjBTdW1taXQtdjdfMC5w ZGYKPj4+PiAgICAgIGh0dHA6Ly9ldmVudHMubGludXhmb3VuZGF0aW9uLm9yZy9zaXRlcy9ldmVu dHMvZmlsZXMvc2xpZGVzL1hlbkdULVhlbiUyMFN1bW1pdC1SRVdSSVRFJTIwM1JEJTIwdjQucGRm Cj4+Pj4gICAgICBodHRwczovLzAxLm9yZy94ZW4vYmxvZ3Mvc3JjbGFya3gvMjAxMy9ncmFwaGlj cy12aXJ0dWFsaXphdGlvbi14ZW5ndAo+Pj4+Cj4+Pj4KPj4+PiBOb3RlOgo+Pj4+Cj4+Pj4gICAg IFRoZSBYZW5HVCBwcm9qZWN0IHNob3VsZCBiZSBjb25zaWRlcmVkIGEgd29yayBpbiBwcm9ncmVz cy4gQXMgc3VjaCBpdCBpcyBub3QgYSBjb21wbGV0ZSBwcm9kdWN0IG5vciBzaG91bGQgaXQgYmUg Y29uc2lkZXJlZCBvbmUuIEV4dHJhIGNhcmUgc2hvdWxkIGJlIHRha2VuIHdoZW4gdGVzdGluZyBh bmQgY29uZmlndXJpbmcgYSBzeXN0ZW0gdG8gdXNlIHRoZSBYZW5HVCBwcm9qZWN0Lgo+Pj4+Cj4+ Pj4KPj4+PiAtLQo+Pj4+IFRoYW5rcywKPj4+PiBKaWtlCj4+Pj4KPj4+PiBPbiAwNy8wNy8yMDE1 IDEwOjQ5IEFNLCBKaWtlIFNvbmcgd3JvdGU6Cj4+Pj4+IEhpIGFsbCwKPj4+Pj4KPj4+Pj4gV2Un cmUgcGxlYXNlZCB0byBhbm5vdW5jZSBhIHB1YmxpYyB1cGRhdGUgdG8gSW50ZWwgR3JhcGhpY3Mg VmlydHVhbGl6YXRpb24gVGVjaG5vbG9neShJbnRlbCBHVlQtZywgZm9ybWVybHkga25vd24gYXMg WGVuR1QpLgo+Pj4+Pgo+Pj4+PiBJbnRlbCBHVlQtZyBpcyBhIGZ1bGwgR1BVIHZpcnR1YWxpemF0 aW9uIHNvbHV0aW9uIHdpdGggbWVkaWF0ZWQgcGFzcy10aHJvdWdoLCBzdGFydGluZyBmcm9tIDR0 aCBnZW5lcmF0aW9uIEludGVsIENvcmUoVE0pIHByb2Nlc3NvcnMgd2l0aCBJbnRlbCBHcmFwaGlj cyBwcm9jZXNzb3JzLiBBIHZpcnR1YWwgR1BVIGluc3RhbmNlIGlzIG1haW50YWluZWQgZm9yIGVh Y2ggVk0sIHdpdGggcGFydCBvZiBwZXJmb3JtYW5jZSBjcml0aWNhbCByZXNvdXJjZXMgZGlyZWN0 bHkgYXNzaWduZWQuIFRoZSBjYXBhYmlsaXR5IG9mIHJ1bm5pbmcgbmF0aXZlIGdyYXBoaWNzIGRy aXZlciBpbnNpZGUgYSBWTSwgd2l0aG91dCBoeXBlcnZpc29yIGludGVydmVudGlvbiBpbiBwZXJm b3JtYW5jZSBjcml0aWNhbCBwYXRocywgYWNoaWV2ZXMgYSBnb29kIGJhbGFuY2UgYW1vbmcgcGVy Zm9ybWFuY2UsIGZlYXR1cmUsIGFuZCBzaGFyaW5nIGNhcGFiaWxpdHkuIFhlbiBpcyBjdXJyZW50 bHkgc3VwcG9ydGVkIG9uIEludGVsIFByb2Nlc3NvciBHcmFwaGljcyAoYS5rLmEuIFhlbkdUKTsg YW5kIHRoZSBjb3JlIGxvZ2ljIGNhbiBiZSBlYXNpbHkgcG9ydGVkIHRvIG90aGVyIGh5cGVydmlz b3JzLCBmb3IgZXhhbXBsZSwgdGhlIGV4cGVyaW1lbnRhbCBjb2RlIGhhcyBiZWVuIHJlbGVhc2Vk IHRvIHN1cHBvcnQgR1ZULWcgcnVubmluZyBvbiBhIEtWTSBoeXBlcnZpc29yIChhLmsuYSBLVk1H VCkuCj4+Pj4+Cj4+Pj4+IFRpcCBvZiByZXBvc2l0b3JpZXMKPj4+Pj4gLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQo+Pj4+Pgo+Pj4+PiAgICAgICBLZXJuZWw6IDViNzM2NTNkNWNhLCBCcmFuY2g6 IG1hc3Rlci0yMDE1UTItMy4xOC4wCj4+Pj4+ICAgICAgIFFlbXU6IDJhNzViYmZmNjJjMSwgQnJh bmNoOiBtYXN0ZXIKPj4+Pj4gICAgICAgWGVuOiAzOGMzNmYwZjUxMWIxLCBCcmFuY2g6IG1hc3Rl ci0yMDE1UTItNC41Cj4+Pj4+Cj4+Pj4+IFRoaXMgdXBkYXRlIGNvbnNpc3RzIG9mOgo+Pj4+PiAg ICAgICAtIENoYW5nZSB0aW1lIGJhc2VkIHNjaGVkdWxlciB0aW1lciB0byBiZSBjb25maWd1cmFi bGUgdG8gZW5oYW5jZSBzdGFiaWxpdHkKPj4+Pj4gICAgICAgLSBGaXggc3RhYmlsaXR5IGlzc3Vl cyB0aGF0IFZNL0RvbTAgZ290IHRkciB3aGVuIGhhbmcgdXAgYXQgc29tZSBzcGVjaWZpYyBpbnN0 cnVjdGlvbiBvbiBCRFcKPj4+Pj4gICAgICAgLSBPcHRpbWl6ZSB0aGUgZW11bGF0aW9uIG9mIGVs X3N0YXR1cyByZWdpc3RlciB0byBlbmhhbmNlIHN0YWJpbGl0eQo+Pj4+PiAgICAgICAtIDJELzNE IHBlcmZvcm1hbmNlIGluIGxpbnV4IFZNcyBoYXMgYmVlbiBpbXByb3ZlZCBhYm91dCA1MCUgb24g QkRXCj4+Pj4+ICAgICAgIC0gRml4IGFibm9ybWFsIGlkbGUgcG93ZXIgY29uc3VtcHRpb24gaXNz dWUgZHVlIHRvIHdyb25nIGZvcmNld2FrZSBwb2xpY3kKPj4+Pj4gICAgICAgLSBGaXggdGRyIGlz c3VlIHdoZW4gcnVubmluZyAyRC8zRC9NZWRpYSB3b3JrbG9hZHMgaW4gV2luZG93cyBWTXMgc2lt dWx0YW5lb3VzbHkKPj4+Pj4gICAgICAgLSBLVk0gc3VwcG9ydCBpcyBzdGlsbCBpbiBhIHNlcGFy YXRlIGJyYW5jaCBhcyBwcm90b3R5cGUgd29yay4gV2UgcGxhbiB0byBpbnRlZ3JhdGUgS1ZNL1hl biBzdXBwb3J0IHRvZ2V0aGVyIGluIHRoZSBmdXR1cmUgcmVsZWFzZXMKPj4+Pj4gICAgICAgLSBO ZXh0IHVwZGF0ZSB3aWxsIGJlIGFyb3VuZCBlYXJseSBPY3QsIDIwMTUKPj4+Pj4KPj4+Pj4gTm90 aWNlIHRoYXQgdGhpcyByZWxlYXNlIGNhbiBzdXBwb3J0IGJvdGggSW50ZWwgNHRoIGdlbmVyYXRp b24gQ29yZSBDUFUoY29kZSBuYW1lOiBIYXN3ZWxsKSBhbmQgSW50ZWwgNXRoIGdlbmVyYXRpb24g Q29yZSBDUFUgKGNvZGUgbmFtZTogQnJvYWR3ZWxsKSwgd2hpbGUgdGhlIGxpbWl0YXRpb24gb2Yg dGhlIGxhdHRlciBpbmNsdWRlOgo+Pj4+PiAgICAgICAqIDNEIGNvbmZvcm1hbmNlIG1heSBoYXZl IHNvbWUgZmFpbHVyZQo+Pj4+PiAgICAgICAqIFVuZGVyIGhpZ2ggZGVtYW5kIDNEIHdvcmtsb2Fk cywgc3RhYmlsaXR5IGlzc3VlcyBhcmUgZGV0ZWN0ZWQKPj4+Pj4gICAgICAgKiBNdWx0aS1tb25p dG9yIHNjZW5hcmlvIGlzIG5vdCBmdWxseSB0ZXN0ZWQsIHdoaWxlIHNpbmdsZSBtb25pdG9yIG9m IFZHQS9IRE1JL0RQL2VEUCBzaG91bGQganVzdCB3b3JrCj4+Pj4+ICAgICAgICogSG90cGx1ZyBE UCBtYXkgY2F1c2UgYmxhY2sgc2NyZWVuIGV2ZW4gb24gbmF0aXZlIGVudmlyb25tZW50Cj4+Pj4+ Cj4+Pj4+IFdoZXJlIHRvIGdldAo+Pj4+Pgo+Pj4+PiBrZXJuZWw6IGh0dHBzOi8vZ2l0aHViLmNv bS8wMW9yZy9YZW5HVC1QcmV2aWV3LWtlcm5lbC5naXQKPj4+Pj4geGVuOiBodHRwczovL2dpdGh1 Yi5jb20vMDFvcmcvWGVuR1QtUHJldmlldy14ZW4uZ2l0Cj4+Pj4+IHFlbXU6IGh0dHBzOi8vZ2l0 aHViLmNvbS8wMW9yZy9YZW5HVC1QcmV2aWV3LXFlbXUuZ2l0Cj4+Pj4+Cj4+Pj4+Cj4+Pj4+IFdl IGhhdmUgYSBtYWlsaW5nIGxpc3QgZm9yIEdWVC1nIGRldmVsb3BtZW50LCBidWcgcmVwb3J0IGFu ZCB0ZWNobmljYWwgZGlzY3Vzc2lvbjoKPj4+Pj4KPj4+Pj4gICAgICAgaHR0cHM6Ly9saXN0cy4w MS5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3Z0LWcKPj4+Pj4KPj4+Pj4gTW9yZSBpbmZvcm1hdGlv biBhYm91dCBJbnRlbCBHVlQtZyBiYWNrZ3JvdW5kLCBhcmNoaXRlY3R1cmUsIGV0YyBjYW4gYmUg Zm91bmQgYXQ6Cj4+Pj4+Cj4+Pj4+ICAgICAgIGh0dHBzOi8vd3d3LnVzZW5peC5vcmcvY29uZmVy ZW5jZS9hdGMxNC90ZWNobmljYWwtc2Vzc2lvbnMvcHJlc2VudGF0aW9uL3RpYW4KPj4+Pj4gICAg ICAgaHR0cDovL2V2ZW50cy5saW51eGZvdW5kYXRpb24ub3JnL3NpdGVzL2V2ZW50cy9maWxlcy9z bGlkZXMvWGVuR1QtWGVuJTIwU3VtbWl0LXY3XzAucGRmCj4+Pj4+ICAgICAgIGh0dHBzOi8vMDEu b3JnL3hlbi9ibG9ncy9zcmNsYXJreC8yMDEzL2dyYXBoaWNzLXZpcnR1YWxpemF0aW9uLXhlbmd0 Cj4+Pj4+Cj4+Pj4+Cj4+Pj4+IE5vdGU6IFRoZSBYZW5HVCBwcm9qZWN0IHNob3VsZCBiZSBjb25z aWRlcmVkIGEgd29yayBpbiBwcm9ncmVzcy4gQXMgc3VjaCBpdCBpcyBub3QgYSBjb21wbGV0ZSBw cm9kdWN0IG5vciBzaG91bGQgaXQgYmUgY29uc2lkZXJlZCBvbmUuIEV4dHJhIGNhcmUgc2hvdWxk IGJlIHRha2VuIHdoZW4gdGVzdGluZyBhbmQgY29uZmlndXJpbmcgYSBzeXN0ZW0gdG8gdXNlIHRo ZSBYZW5HVCBwcm9qZWN0Lgo+Pj4+Pgo+Pj4+Pgo+Pj4+PiAtLQo+Pj4+PiBUaGFua3MsCj4+Pj4+ IEppa2UKPj4+Pj4KPj4+Pj4gT24gMDQvMTAvMjAxNSAwOToyMyBQTSwgSmlrZSBTb25nIHdyb3Rl Ogo+Pj4+Pj4gSGkgYWxsLAo+Pj4+Pj4KPj4+Pj4+IFdlJ3JlIHBsZWFzZWQgdG8gYW5ub3VuY2Ug YSBwdWJsaWMgdXBkYXRlIHRvIEludGVsIEdyYXBoaWNzIFZpcnR1YWxpemF0aW9uIFRlY2hub2xv Z3kgKEludGVsIEdWVC1nLCBmb3JtZXJseSBrbm93biBhcyBYZW5HVCkuIEludGVsIEdWVC1nIGlz IGEgY29tcGxldGUgdkdQVSBzb2x1dGlvbiB3aXRoIG1lZGlhdGVkIHBhc3MtdGhyb3VnaCwgc3Vw cG9ydGVkIHRvZGF5IG9uIDR0aCBnZW5lcmF0aW9uIEludGVsIENvcmUoVE0pIHByb2Nlc3NvcnMg d2l0aCBJbnRlbCBHcmFwaGljcyBwcm9jZXNzb3JzLiBBIHZpcnR1YWwgR1BVIGluc3RhbmNlIGlz IG1haW50YWluZWQgZm9yIGVhY2ggVk0sIHdpdGggcGFydCBvZiBwZXJmb3JtYW5jZSBjcml0aWNh bCByZXNvdXJjZXMgZGlyZWN0bHkgYXNzaWduZWQuIFRoZSBjYXBhYmlsaXR5IG9mIHJ1bm5pbmcg bmF0aXZlIGdyYXBoaWNzIGRyaXZlciBpbnNpZGUgYSBWTSwgd2l0aG91dCBoeXBlcnZpc29yIGlu dGVydmVudGlvbiBpbiBwZXJmb3JtYW5jZSBjcml0aWNhbCBwYXRocywgYWNoaWV2ZXMgYSBnb29k IGJhbGFuY2UgYW1vbmcgcGVyZm9ybWFuY2UsIGZlYXR1cmUsIGFuZCBzaGFyaW5nIGNhcGFiaWxp dHkuIFRob3VnaCB3ZSBvbmx5IHN1cHBvcnQgWGVuIG9uIEludGVsIFByb2Nlc3NvciBHcmFwaGlj cyBzbyBmYXIsIHRoZSBjb3JlIGxvZ2ljIGNhbiBiZSBlYXNpbHkgcG9ydGVkIHRvIG90aGVyIGh5 cGVydmlzb3JzLgo+Pj4+Pj4KPj4+Pj4+IFRpcCBvZiByZXBvc2l0b3JpZXMKPj4+Pj4+IC0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0KPj4+Pj4+Cj4+Pj4+PiAgICAgICAgICAgICBLZXJuZWw6IGEw MTFjOWY5NTNlLCBCcmFuY2g6IG1hc3Rlci0yMDE1UTEtMy4xOC4wCj4+Pj4+PiAgICAgICAgICAg ICBRZW11OiAyYTc1YmJmZjYyYzEsIEJyYW5jaDogbWFzdGVyCj4+Pj4+PiAgICAgICAgICAgICBY ZW46IDM4YzM2ZjBmNTExYjEsIEJyYW5jaDogbWFzdGVyLTIwMTVRMS00LjUKPj4+Pj4+Cj4+Pj4+ PiBTdW1tYXJ5IHRoaXMgdXBkYXRlCj4+Pj4+PiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4+ Pj4+PiAJLSBQcmVsaW1pbmFyeSBCcm9hZHdlbGwgc3VwcG9ydC4KPj4+Pj4+IAktIGtlcm5lbCB1 cGRhdGUgZnJvbSBkcm0taW50ZWwgMy4xNy4wIHRvIGRybS1pbnRlbCAzLjE4LjAodGFnOiBkcm0t aW50ZWwtbmV4dC1maXhlcy0yMDE0LTEyLTE3LCBub3RpY2UgdGhhdCBpOTE1IGRyaXZlciBjb2Rl IGlzIG11Y2ggbmV3ZXIgdGhhbiBrZXJuZWwgc3RhYmxlIHZlcnNpb24pLgo+Pj4+Pj4gCS0gTmV4 dCB1cGRhdGUgd2lsbCBiZSBhcm91bmQgZWFybHkgSnVseSwgMjAxNS4KPj4+Pj4+IAktIEtWTSBz dXBwb3J0IGlzIHN0aWxsIGluIGEgc2VwYXJhdGUgYnJhbmNoIGFzIHByb3RvdHlwZSB3b3JrLiBX ZSBwbGFuIHRvIGludGVncmF0ZSBLVk0vWGVuIHN1cHBvcnQgdG9nZXRoZXIgaW4gZnV0dXJlIHJl bGVhc2VzLgo+Pj4+Pj4KPj4+Pj4+IFRoaXMgdXBkYXRlIGNvbnNpc3RzIG9mOgo+Pj4+Pj4gCS0g Z3Z0LWcgY29yZSBsb2dpYyBjb2RlIHdhcyBtb3ZlZCBpbnRvIGk5MTUgZHJpdmVyIGRpcmVjdG9y eS4KPj4+Pj4+IAktIEhvc3QgbWVkaWF0aW9uIGlzIHVzZWQgZm9yIGRvbTAgaTkxNSBkcml2ZXIg YWNjZXNzLCBpbnN0ZWFkIG9mIGRlLXByaXZpbGVnZWQgZG9tMC4KPj4+Pj4+IAktIFRoZSBYZW4t c3BlY2lmaWMgY29kZSB3YXMgc2VwYXJhdGVkIGZyb20gdmd0IGNvcmUgbG9naWMgaW50byBhIG5l dyBmaWxlICJkcml2ZXIveGVuL3hlbmd0LmMiLgo+Pj4+Pj4gCS0gQnJvYWR3ZWxsIGlzIHByZWxp bWluYXJpbHkgc3VwcG9ydGVkIGluIHRoaXMgcmVsZWFzZS4gVXNlcnMgY291bGQgc3RhcnQgbXVs dGlwbGUgbGludXgvd2luZG93cyA2NC1iaXQgdmlydHVhbCBtYWNoaW5lcyBzaW11bHRhbmVvdXNs eSwgYW5kIHBlcmZvcm0gZGlzcGxheSBzd2l0Y2ggYW1vbmcgdGhlbS4KPj4+Pj4+Cj4+Pj4+PiBO b3RpY2UgdGhhdCBpdCBpcyBzdGlsbCBwcmVsaW1pbmFyeSByZWxlYXNlIGZvciBCRFcsIHdoaWNo IGlzIG5vdCB5ZXQgaW4gdGhlIHNhbWUgbGV2ZWwgb2YgSFNXIHJlbGVhc2UuIERpZmZlcmVuY2Vz IGluY2x1ZGU6Cj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgKiBQb3dlci9wZXJmb3JtYW5jZSB0 dW5pbmcgb24gQkRXIGlzIG5vdCB5ZXQgZG9uZS4KPj4+Pj4+IAkgKiBTdGFiaWxpdHkgbmVlZHMg dG8gYmUgaW1wcm92ZWQuCj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgKiBObyAzMi1iaXQgZ3Vl c3QgT1Mgc3VwcG9ydC4KPj4+Pj4+ICAgICAgICAgICAgICAgICAgICAqIE11bHRpLW1vbml0b3Ig c2NlbmFyaW8gaXMgbm90IGZ1bGx5IHRlc3RlZCwgd2hpbGUgc2luZ2xlIG1vbml0b3Igb2YgVkdB L0hETUkvRFAvZURQIHNob3VsZCBqdXN0IHdvcmsuCj4+Pj4+Pgo+Pj4+Pj4KPj4+Pj4+IFdoZXJl IHRvIGdldDoKPj4+Pj4+IC0tLS0tLS0tLS0tLS0tLS0tCj4+Pj4+PiAgICAgICAgICAgICAgICAg ICAga2VyZW5sOiBodHRwczovL2dpdGh1Yi5jb20vMDFvcmcvWGVuR1QtUHJldmlldy1rZXJuZWwu Z2l0Cj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgWGVuOiBodHRwczovL2dpdGh1Yi5jb20vMDFv cmcvWGVuR1QtUHJldmlldy14ZW4uZ2l0Cj4+Pj4+PiAgICAgICAgICAgICAgICAgICAgUWVtdTog aHR0cHM6Ly9naXRodWIuY29tLzAxb3JnL1hlbkdULVByZXZpZXctcWVtdS5naXQKPj4+Pj4+Cj4+ Pj4+PiBQbGVhc2UgcmVmZXIgdG8gdGhlIG5ldyBzZXR1cCBndWlkZSwgd2hpY2ggcHJvdmlkZXMg c3RlcC10by1zdGVwIGRldGFpbHMgYWJvdXQgYnVpbGRpbmcvY29uZmlndXJpbmcvcnVubmluZyBJ bnRlbCBHVlQtZzoKPj4+Pj4+IAkgaHR0cHM6Ly9naXRodWIuY29tLzAxb3JnL1hlbkdULVByZXZp ZXcta2VybmVsL2Jsb2IvbWFzdGVyLTIwMTVRMS0zLjE4LjAvWGVuR1RfU2V0dXBfR3VpZGVfMjAx NVExLnBkZgo+Pj4+Pj4KPj4+Pj4+IE1vcmUgaW5mb3JtYXRpb24gYWJvdXQgSW50ZWwgR1ZULWcg YmFja2dyb3VuZCwgYXJjaGl0ZWN0dXJlLCBldGMgY2FuIGJlIGZvdW5kIGF0Ogo+Pj4+Pj4gICAg ICAgICAgICAgICAgICAgIGh0dHBzOi8vd3d3LnVzZW5peC5vcmcvY29uZmVyZW5jZS9hdGMxNC90 ZWNobmljYWwtc2Vzc2lvbnMvcHJlc2VudGF0aW9uL3RpYW4KPj4+Pj4+ICAgICAgICAgICAgICAg ICAgICBodHRwOi8vZXZlbnRzLmxpbnV4Zm91bmRhdGlvbi5vcmcvc2l0ZXMvZXZlbnRzL2ZpbGVz L3NsaWRlcy9YZW5HVC1YZW4lMjBTdW1taXQtdjdfMC5wZGYKPj4+Pj4+ICAgICAgICAgICAgICAg ICAgICBodHRwczovLzAxLm9yZy94ZW4vYmxvZ3Mvc3JjbGFya3gvMjAxMy9ncmFwaGljcy12aXJ0 dWFsaXphdGlvbi14ZW5ndAo+Pj4+Pj4KPj4+Pj4+IFRoZSBwcmV2aW91cyB1cGRhdGUgY2FuIGJl IGZvdW5kIGhlcmU6Cj4+Pj4+PiAgICAgICAgICAgICAgICAgICBodHRwOi8vbGlzdHMueGVuLm9y Zy9hcmNoaXZlcy9odG1sL3hlbi1kZXZlbC8yMDE0LTEyL21zZzAwNDc0Lmh0bWwKPj4+Pj4+Cj4+ Pj4+Pgo+Pj4+Pj4gTm90ZQo+Pj4+Pj4gLS0tLS0tLS0tLS0tLS0tCj4+Pj4+PiAJVGhlIFhlbkdU IHByb2plY3Qgc2hvdWxkIGJlIGNvbnNpZGVyZWQgYSB3b3JrIGluIHByb2dyZXNzLCBBcyBzdWNo IGl0IGlzIG5vdCBhIGNvbXBsZXRlIHByb2R1Y3Qgbm9yIHNob3VsZCBpdCBiZSBjb25zaWRlcmVk IG9uZS4sIEV4dHJhIGNhcmUgc2hvdWxkIGJlIHRha2VuIHdoZW4gdGVzdGluZyBhbmQgY29uZmln dXJpbmcgYSBzeXN0ZW0gdG8gdXNlIHRoZSBYZW5HVCBwcm9qZWN0Lgo+Pj4+Pj4KPj4+Pj4+Cj4+ Pj4+PiAtLQo+Pj4+Pj4gVGhhbmtzLAo+Pj4+Pj4gSmlrZQo+Pj4+Pj4KPj4+Pj4+IE9uIDAxLzA5 LzIwMTUgMDQ6NTEgUE0sIEppa2UgU29uZyB3cm90ZToKPj4+Pj4+PiBIaSBhbGwsCj4+Pj4+Pj4K Pj4+Pj4+PiAgICAgICBXZSdyZSBwbGVhc2VkIHRvIGFubm91bmNlIGEgcHVibGljIHVwZGF0ZSB0 byBJbnRlbCBHcmFwaGljcyBWaXJ0dWFsaXphdGlvbiBUZWNobm9sb2d5IChJbnRlbCBHVlQtZywg Zm9ybWVybHkga25vd24gYXMgWGVuR1QpLiBJbnRlbCBHVlQtZyBpcyBhIGNvbXBsZXRlIHZHUFUg c29sdXRpb24gd2l0aCBtZWRpYXRlZCBwYXNzLXRocm91Z2gsIHN1cHBvcnRlZCB0b2RheSBvbiA0 dGggZ2VuZXJhdGlvbiBJbnRlbCBDb3JlKFRNKSBwcm9jZXNzb3JzIHdpdGggSW50ZWwgR3JhcGhp Y3MgcHJvY2Vzc29ycy4gQSB2aXJ0dWFsIEdQVSBpbnN0YW5jZSBpcyBtYWludGFpbmVkIGZvciBl YWNoIFZNLCB3aXRoIHBhcnQgb2YgcGVyZm9ybWFuY2UgY3JpdGljYWwgcmVzb3VyY2VzIGRpcmVj dGx5IGFzc2lnbmVkLiBUaGUgY2FwYWJpbGl0eSBvZiBydW5uaW5nIG5hdGl2ZSBncmFwaGljcyBk cml2ZXIgaW5zaWRlIGEgVk0sIHdpdGhvdXQgaHlwZXJ2aXNvciBpbnRlcnZlbnRpb24gaW4gcGVy Zm9ybWFuY2UgY3JpdGljYWwgcGF0aHMsIGFjaGlldmVzIGEgZ29vZCBiYWxhbmNlIGFtb25nIHBl cmZvcm1hbmNlLCBmZWF0dXJlLCBhbmQgc2hhcmluZyBjYXBhYmlsaXR5LiBUaG91Z2ggd2Ugb25s eSBzdXBwb3J0IFhlbiBvbiBJbnRlbCBQcm9jZXNzb3IgR3JhcGhpY3Mgc28gZmFyLCB0aGUgY29y ZSBsb2dpYyBjYW4gYmUgZWFzaWx5IHBvcnRlZCB0byBvdGhlciBoeXBlcnZpc29ycy4gICBUaGUg WGVuR1QgcHJvamVjdCBzaG91bGQgYmUgY29uc2lkZXJlZCBhIHdvcmsgaW4gcHJvZ3Jlc3MsIEFz IHN1Y2ggaXQgaXMgbm90IGEgY29tcGxldGUgcHJvZHVjdCBub3Igc2hvdWxkIGl0IGJlIGNvbnNp ZGVyZWQgb25lLiwgRXh0cmEgY2FyZSBzaG91bGQgYmUgdGFrZW4gd2hlbiB0ZXN0aW5nIGFuZCBj b25maWd1cmluZyBhIHN5c3RlbSB0byB1c2UgdGhlIFhlbkdUIHByb2plY3QuCj4+Pj4+Pj4KPj4+ Pj4+PiBUaGUgbmV3cyBvZiB0aGlzIHVwZGF0ZToKPj4+Pj4+Pgo+Pj4+Pj4+IAktIGtlcm5lbCB1 cGRhdGUgZnJvbSAzLjE0LjEgdG8gZHJtLWludGVsIDMuMTcuMC4KPj4+Pj4+PiAJLSBXZSBwbGFu IHRvIGludGVncmF0ZSBJbnRlbCBHVlQtZyBhcyBhIGZlYXR1cmUgaW4gaTkxNSBkcml2ZXIuIFRo YXQgZWZmb3J0IGlzIHN0aWxsIHVuZGVyIHJldmlldywgbm90IGluY2x1ZGVkIGluIHRoaXMgdXBk YXRlIHlldC4KPj4+Pj4+PiAJLSBOZXh0IHVwZGF0ZSB3aWxsIGJlIGFyb3VuZCBlYXJseSBBcHIs IDIwMTUuCj4+Pj4+Pj4KPj4+Pj4+PiBUaGlzIHVwZGF0ZSBjb25zaXN0cyBvZjoKPj4+Pj4+Pgo+ Pj4+Pj4+IAktIEluY2x1ZGluZyBzb21lIGJ1ZyBmaXhlcyBhbmQgc3RhYmlsaXR5IGVuaGFuY2Vt ZW50Lgo+Pj4+Pj4+IAktIE1ha2luZyBYZW5HVCBkZXZpY2UgbW9kZWwgdG8gYmUgYXdhcmUgb2Yg QnJvYWR3ZWxsLiBJbiB0aGlzIHZlcnNpb24gQkRXIGlzIG5vdCB5ZXQgZnVuY3Rpb25pbmcuCj4+ Pj4+Pj4gCS0gQXZhaWxhYmxlIEZlbmNlIHJlZ2lzdGVycyBudW1iZXIgaXMgY2hhbmdlZCB0byAz MiBmcm9tIDE2IHRvIGFsaWduIHdpdGggSFNXIGhhcmR3YXJlLgo+Pj4+Pj4+IAktIE5ldyBjYXNj YWRlIGludGVycnVwdCBmcmFtZXdvcmsgZm9yIHN1cHBvcnRpbmcgaW50ZXJydXB0IHZpcnR1YWxp emF0aW9uIG9uIGJvdGggSGFzd2VsbCBhbmQgQnJvYWR3ZWxsLgo+Pj4+Pj4+IAktIEFkZCBiYWNr IHRoZSBnZW1fdmd0YnVmZmVyLiBUaGUgcHJldmlvdXMgcmVsZWFzZSBkaWQgbm90IGJ1aWxkIHRo YXQgbW9kdWxlIGZvciAzLjE0IGtlcm5lbC4gSW4gdGhpcyByZWxlYXNlLCB0aGUgbW9kdWxlIGlz IGJhY2sgYW5kIHJlYmFzZWQgdG8gMy4xNy4KPj4+Pj4+PiAJLSBFbmFibGUgdGhlIGlycSBiYXNl ZCBjb250ZXh0IHN3aXRjaCBpbiB2Z3QgZHJpdmVyLCB3aGljaCB3aWxsIGhlbHAgcmVkdWNlIHRo ZSBjcHUgdXRpbGl6YXRpb24gd2hpbGUgZG9pbmcgY29udGV4dCBzd2l0Y2gsIGl0IGlzIGVuYWJs ZWQgYnkgZGVmYXVsdCwgYW5kIGNhbiBiZSB0dXJuIG9mZiBieSBrZXJuZWwgZmxhZyBpcnFfYmFz ZWRfY3R4X3N3aXRjaC4KPj4+Pj4+Pgo+Pj4+Pj4+Cj4+Pj4+Pj4gUGxlYXNlIHJlZmVyIHRvIHRo ZSBuZXcgc2V0dXAgZ3VpZGUsIHdoaWNoIHByb3ZpZGVzIHN0ZXAtdG8tc3RlcCBkZXRhaWxzIGFi b3V0IGJ1aWxkaW5nL2NvbmZpZ3VyaW5nL3J1bm5pbmcgSW50ZWwgR1ZULWc6Cj4+Pj4+Pj4KPj4+ Pj4+PiAJaHR0cHM6Ly9naXRodWIuY29tLzAxb3JnL1hlbkdULVByZXZpZXcta2VybmVsL2Jsb2Iv bWFzdGVyL1hlbkdUX1NldHVwX0d1aWRlLnBkZgo+Pj4+Pj4+Cj4+Pj4+Pj4gVGhlIG5ldyBzb3Vy Y2UgY29kZXMgYXJlIGF2YWlsYWJsZSBhdCB0aGUgdXBkYXRlZCBnaXRodWIgcmVwb3M6Cj4+Pj4+ Pj4KPj4+Pj4+PiAJTGludXg6IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9YZW5HVC1QcmV2aWV3 LWtlcm5lbC5naXQKPj4+Pj4+PiAJWGVuOiBodHRwczovL2dpdGh1Yi5jb20vMDFvcmcvWGVuR1Qt UHJldmlldy14ZW4uZ2l0Cj4+Pj4+Pj4gCVFlbXU6IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9Y ZW5HVC1QcmV2aWV3LXFlbXUuZ2l0Cj4+Pj4+Pj4KPj4+Pj4+Pgo+Pj4+Pj4+IE1vcmUgaW5mb3Jt YXRpb24gYWJvdXQgSW50ZWwgR1ZULWcgYmFja2dyb3VuZCwgYXJjaGl0ZWN0dXJlLCBldGMgY2Fu IGJlIGZvdW5kIGF0Ogo+Pj4+Pj4+Cj4+Pj4+Pj4KPj4+Pj4+PiAJaHR0cHM6Ly93d3cudXNlbml4 Lm9yZy9jb25mZXJlbmNlL2F0YzE0L3RlY2huaWNhbC1zZXNzaW9ucy9wcmVzZW50YXRpb24vdGlh bgo+Pj4+Pj4+IAlodHRwOi8vZXZlbnRzLmxpbnV4Zm91bmRhdGlvbi5vcmcvc2l0ZXMvZXZlbnRz L2ZpbGVzL3NsaWRlcy9YZW5HVC1YZW4lMjBTdW1taXQtdjdfMC5wZGYKPj4+Pj4+PiAJaHR0cHM6 Ly8wMS5vcmcveGVuL2Jsb2dzL3NyY2xhcmt4LzIwMTMvZ3JhcGhpY3MtdmlydHVhbGl6YXRpb24t eGVuZ3QKPj4+Pj4+Pgo+Pj4+Pj4+Cj4+Pj4+Pj4KPj4+Pj4+PiBUaGUgcHJldmlvdXMgdXBkYXRl IGNhbiBiZSBmb3VuZCBoZXJlOgo+Pj4+Pj4+Cj4+Pj4+Pj4KPj4+Pj4+PiAJaHR0cDovL2xpc3Rz Lnhlbi5vcmcvYXJjaGl2ZXMvaHRtbC94ZW4tZGV2ZWwvMjAxNC0xMi9tc2cwMDQ3NC5odG1sCj4+ Pj4+Pj4KPj4+Pj4+Pgo+Pj4+Pj4+Cj4+Pj4+Pj4gQXBwcmVjaWF0ZSB5b3VyIGNvbW1lbnRzIQo+ Pj4+Pj4+Cj4+Pj4+Pj4KPj4+Pj4+Pgo+Pj4+Pj4+IC0tCj4+Pj4+Pj4gVGhhbmtzLAo+Pj4+Pj4+ IEppa2UKPj4+Pj4+Pgo+Pj4+Pj4+Cj4+Pj4+Pj4gT24gMTIvMDQvMjAxNCAxMDo0NSBBTSwgSmlr ZSBTb25nIHdyb3RlOgo+Pj4+Pj4+PiBIaSBhbGwsCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IFdlJ3JlIHBs ZWFzZWQgdG8gYW5ub3VuY2UgYSBwdWJsaWMgcmVsZWFzZSB0byBJbnRlbCBHcmFwaGljcyBWaXJ0 dWFsaXphdGlvbiBUZWNobm9sb2d5IChJbnRlbCBHVlQtZywgZm9ybWVybHkga25vd24gYXMgWGVu R1QpLiBJbnRlbCBHVlQtZyBpcyBhIGNvbXBsZXRlIHZHUFUgc29sdXRpb24gd2l0aCBtZWRpYXRl ZCBwYXNzLXRocm91Z2gsIHN1cHBvcnRlZCB0b2RheSBvbiA0dGggZ2VuZXJhdGlvbiBJbnRlbCBD b3JlKFRNKSBwcm9jZXNzb3JzIHdpdGggSW50ZWwgR3JhcGhpY3MgcHJvY2Vzc29ycy4gQSB2aXJ0 dWFsIEdQVSBpbnN0YW5jZSBpcyBtYWludGFpbmVkIGZvciBlYWNoIFZNLCB3aXRoIHBhcnQgb2Yg cGVyZm9ybWFuY2UgY3JpdGljYWwgcmVzb3VyY2VzIGRpcmVjdGx5IGFzc2lnbmVkLiBUaGUgY2Fw YWJpbGl0eSBvZiBydW5uaW5nIG5hdGl2ZSBncmFwaGljcyBkcml2ZXIgaW5zaWRlIGEgVk0sIHdp dGhvdXQgaHlwZXJ2aXNvciBpbnRlcnZlbnRpb24gaW4gcGVyZm9ybWFuY2UgY3JpdGljYWwgcGF0 aHMsIGFjaGlldmVzIGEgZ29vZCBiYWxhbmNlIGFtb25nIHBlcmZvcm1hbmNlLCBmZWF0dXJlLCBh bmQgc2hhcmluZyBjYXBhYmlsaXR5LiBUaG91Z2ggd2Ugb25seSBzdXBwb3J0IFhlbiBvbiBJbnRl bCBQcm9jZXNzb3IgR3JhcGhpY3Mgc28gZmFyLCB0aGUgY29yZSBsb2dpYyBjYW4gYmUgZWFzaWx5 IHBvcnRlZCB0byBvdGhlciBoeXBlcnZpc29ycy4KPj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4g VGhlIG5ld3Mgb2YgdGhpcyB1cGRhdGU6Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+IAktIGtl cm5lbCB1cGRhdGUgZnJvbSAzLjExLjYgdG8gMy4xNC4xCj4+Pj4+Pj4+Cj4+Pj4+Pj4+IAktIFdl IHBsYW4gdG8gaW50ZWdyYXRlIEludGVsIEdWVC1nIGFzIGEgZmVhdHVyZSBpbiBpOTE1IGRyaXZl ci4gVGhhdCBlZmZvcnQgaXMgc3RpbGwgdW5kZXIgcmV2aWV3LCBub3QgaW5jbHVkZWQgaW4gdGhp cyB1cGRhdGUgeWV0Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+IAktIE5leHQgdXBkYXRlIHdpbGwgYmUgYXJv dW5kIGVhcmx5IEphbiwgMjAxNQo+Pj4+Pj4+Pgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBUaGlzIHVwZGF0 ZSBjb25zaXN0cyBvZjoKPj4+Pj4+Pj4KPj4+Pj4+Pj4gCS0gV2luZG93cyBIVk0gc3VwcG9ydCB3 aXRoIGRyaXZlciB2ZXJzaW9uIDE1LjMzLjM5MTAKPj4+Pj4+Pj4KPj4+Pj4+Pj4gCS0gU3RhYmls aXR5IGZpeGVzLCBlLmcuIHN0YWJpbGl6ZSBHUFUsIHRoZSBHUFUgaGFuZyBvY2N1cnJlbmNlIHJh dGUgYmVjb21lcyByYXJlIG5vdwo+Pj4+Pj4+Pgo+Pj4+Pj4+PiAJLSBIYXJkd2FyZSBNZWRpYSBB Y2NlbGVyYXRpb24gZm9yIERlY29kaW5nL0VuY29kaW5nL1RyYW5zY29kaW5nLCBWQzEsIEgyNjQg ZXRjLiBmb3JtYXQgc3VwcG9ydGluZwo+Pj4+Pj4+Pgo+Pj4+Pj4+PiAJLSBEaXNwbGF5IGVuaGFu Y2VtZW50cywgZS5nLiBEUCB0eXBlIGlzIHN1cHBvcnRlZCBmb3IgdmlydHVhbCBQT1JUCj4+Pj4+ Pj4+Cj4+Pj4+Pj4+IAktIERpc3BsYXkgcG9ydCBjYXBhYmlsaXR5IHZpcnR1YWxpemF0aW9uOiB3 aXRoIHRoaXMgZmVhdHVyZSwgZG9tMCBtYW5hZ2VyIGNvdWxkIGZyZWVseSBhc3NpZ24gdmlydHVh bCBEREkgcG9ydHMgdG8gVk0sIG5vdCBuZWNlc3NhcnkgdG8gY2hlY2sgd2hldGhlciB0aGUgY29y cmVzcG9uZGluZyBwaHlzaWNhbCBEREkgcG9ydHMgYXJlIGF2YWlsYWJsZQo+Pj4+Pj4+Pgo+Pj4+ Pj4+Pgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBQbGVhc2UgcmVmZXIgdG8gdGhlIG5ldyBzZXR1cCBndWlk ZSwgd2hpY2ggcHJvdmlkZXMgc3RlcC10by1zdGVwIGRldGFpbHMgYWJvdXQgYnVpbGRpbmcvY29u ZmlndXJpbmcvcnVubmluZyBJbnRlbCBHVlQtZzoKPj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4g CWh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9YZW5HVC1QcmV2aWV3LWtlcm5lbC9ibG9iL21hc3Rl ci9YZW5HVF9TZXR1cF9HdWlkZS5wZGYKPj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+ Pj4gVGhlIG5ldyBzb3VyY2UgY29kZXMgYXJlIGF2YWlsYWJsZSBhdCB0aGUgdXBkYXRlZCBnaXRo dWIgcmVwb3M6Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+IAlMaW51eDogaHR0cHM6Ly9naXRo dWIuY29tLzAxb3JnL1hlbkdULVByZXZpZXcta2VybmVsLmdpdAo+Pj4+Pj4+Pgo+Pj4+Pj4+PiAJ WGVuOiBodHRwczovL2dpdGh1Yi5jb20vMDFvcmcvWGVuR1QtUHJldmlldy14ZW4uZ2l0Cj4+Pj4+ Pj4+Cj4+Pj4+Pj4+IAlRZW11OiBodHRwczovL2dpdGh1Yi5jb20vMDFvcmcvWGVuR1QtUHJldmll dy1xZW11LmdpdAo+Pj4+Pj4+Pgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBNb3JlIGluZm9ybWF0aW9uIGFi b3V0IEludGVsIEdWVC1nIGJhY2tncm91bmQsIGFyY2hpdGVjdHVyZSwgZXRjIGNhbiBiZSBmb3Vu ZCBhdDoKPj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gCWh0dHBzOi8vd3d3LnVzZW5peC5vcmcv Y29uZmVyZW5jZS9hdGMxNC90ZWNobmljYWwtc2Vzc2lvbnMvcHJlc2VudGF0aW9uL3RpYW4KPj4+ Pj4+Pj4KPj4+Pj4+Pj4gCWh0dHA6Ly9ldmVudHMubGludXhmb3VuZGF0aW9uLm9yZy9zaXRlcy9l dmVudHMvZmlsZXMvc2xpZGVzL1hlbkdULVhlbiUyMFN1bW1pdC12N18wLnBkZgo+Pj4+Pj4+Pgo+ Pj4+Pj4+PiAJaHR0cHM6Ly8wMS5vcmcveGVuL2Jsb2dzL3NyY2xhcmt4LzIwMTMvZ3JhcGhpY3Mt dmlydHVhbGl6YXRpb24teGVuZ3QKPj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4gVGhlIHByZXZp b3VzIHVwZGF0ZSBjYW4gYmUgZm91bmQgaGVyZToKPj4+Pj4+Pj4KPj4+Pj4+Pj4KPj4+Pj4+Pj4g CWh0dHA6Ly9saXN0cy54ZW4ub3JnL2FyY2hpdmVzL2h0bWwveGVuLWRldmVsLzIwMTQtMDcvbXNn MDMyNDguaHRtbAo+Pj4+Pj4+Pgo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBBcHByZWNpYXRlIHlvdXIgY29t bWVudHMhCj4+Pj4+Pj4+Cj4+Pj4+Pj4+Cj4+Pj4+Pj4+IC0tCj4+Pj4+Pj4+IFRoYW5rcywKPj4+ Pj4+Pj4gSmlrZQo+Pj4+Pj4+Pgo+Pj4+Pj4+PiBPbiAwNy8yNS8yMDE0IDA0OjMxIFBNLCBKaWtl IFNvbmcgd3JvdGU6Cj4+Pj4+Pj4+PiBIaSBhbGwsCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gV2UncmUg cGxlYXNlZCB0byBhbm5vdW5jZSBhbiB1cGRhdGUgdG8gSW50ZWwgR3JhcGhpY3MgVmlydHVhbGl6 YXRpb24gVGVjaG5vbG9neSAoSW50ZWwgR1ZULWcsIGZvcm1lcmx5IGtub3duIGFzIFhlbkdUKS4g SW50ZWwgR1ZULWcgaXMgYSBjb21wbGV0ZSB2R1BVIHNvbHV0aW9uIHdpdGggbWVkaWF0ZWQgcGFz cy10aHJvdWdoLCBzdXBwb3J0ZWQgdG9kYXkgb24gNHRoIGdlbmVyYXRpb24gSW50ZWwgQ29yZShU TSkgcHJvY2Vzc29ycyB3aXRoIEludGVsIEdyYXBoaWNzIHByb2Nlc3NvcnMuIEEgdmlydHVhbCBH UFUgaW5zdGFuY2UgaXMgbWFpbnRhaW5lZCBmb3IgZWFjaCBWTSwgd2l0aCBwYXJ0IG9mIHBlcmZv cm1hbmNlIGNyaXRpY2FsIHJlc291cmNlcyBkaXJlY3RseSBhc3NpZ25lZC4gVGhlIGNhcGFiaWxp dHkgb2YgcnVubmluZyBuYXRpdmUgZ3JhcGhpY3MgZHJpdmVyIGluc2lkZSBhIFZNLCB3aXRob3V0 IGh5cGVydmlzb3IgaW50ZXJ2ZW50aW9uIGluIHBlcmZvcm1hbmNlIGNyaXRpY2FsIHBhdGhzLCBh Y2hpZXZlcyBhIGdvb2QgYmFsYW5jZSBhbW9uZyBwZXJmb3JtYW5jZSwgZmVhdHVyZSwgYW5kIHNo YXJpbmcgY2FwYWJpbGl0eS4gVGhvdWdoIHdlIG9ubHkgc3VwcG9ydCBYZW4gb24gSW50ZWwgUHJv Y2Vzc29yIEdyYXBoaWNzIHNvIGZhciwgdGhlIGNvcmUgbG9naWMgY2FuIGJlIGVhc2lseSBwb3J0 ZWQgdG8gb3RoZXIgaHlwZXJ2aXNvcnMuCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gVGhlIG5ld3Mgb2Yg dGhpcyB1cGRhdGU6Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gCS0gUHJvamVjdCBjb2RlIG5hbWUgaXMg IlhlbkdUIiwgbm93IG9mZmljaWFsIG5hbWUgaXMgSW50ZWwgR3JhcGhpY3MgVmlydHVhbGl6YXRp b24gVGVjaG5vbG9neSAoSW50ZWwgR1ZULWcpCj4+Pj4+Pj4+PiAJLSBDdXJyZW50bHkgSW50ZWwg R1ZULWcgc3VwcG9ydHMgSW50ZWwgUHJvY2Vzc29yIEdyYXBoaWNzIGJ1aWx0IGludG8gNHRoIGdl bmVyYXRpb24gSW50ZWwgQ29yZSBwcm9jZXNzb3JzIC0gSGFzd2VsbCBwbGF0Zm9ybQo+Pj4+Pj4+ Pj4gCS0gTW92aW5nIGZvcndhcmQsIFhlbkdUIHdpbGwgY2hhbmdlIHRvIHF1YXJ0ZXJseSByZWxl YXNlIGNhZGVuY2UuIE5leHQgdXBkYXRlIHdpbGwgYmUgYXJvdW5kIGVhcmx5IE9jdG9iZXIsIDIw MTQuCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4gVGhpcyB1cGRhdGUgY29uc2lzdHMgb2Y6Cj4+Pj4+Pj4+ Pgo+Pj4+Pj4+Pj4gCS0gU3RhYmlsaXR5IGZpeGVzLCBlLmcuIHN0YWJsZSBEUCBzdXBwb3J0Cj4+ Pj4+Pj4+PiAJLSBEaXNwbGF5IGVuaGFuY2VtZW50cywgZS5nLiB2aXJ0dWFsIG1vbml0b3Igc3Vw cG9ydC4gVXNlcnMgY2FuIGRlZmluZSBhIHZpcnR1YWwgbW9uaXRvciB0eXBlIHdpdGggY3VzdG9t aXplZCBFRElEIGZvciB2aXJ0dWFsIG1hY2hpbmVzLCBub3QgbmVjZXNzYXJpbHkgdGhlIHNhbWUg YXMgcGh5c2ljYWwgbW9uaXRvcnMuCj4+Pj4+Pj4+PiAJLSBJbXByb3ZlZCBzdXBwb3J0IGZvciBH UFUgcmVjb3ZlcnkKPj4+Pj4+Pj4+IAktIEV4cGVyaW1lbnRhbCBXaW5kb3dzIEhWTSBzdXBwb3J0 LiBUbyBkb3dubG9hZCB0aGUgZXhwZXJpbWVudGFsIHZlcnNpb24sIHNlZSBzZXR1cCBndWlkZSBm b3IgZGV0YWlscwo+Pj4+Pj4+Pj4gCS0gRXhwZXJpbWVudGFsIEhhcmR3YXJlIE1lZGlhIEFjY2Vs ZXJhdGlvbiBmb3IgZGVjb2RpbmcuCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IFBsZWFz ZSByZWZlciB0byB0aGUgbmV3IHNldHVwIGd1aWRlLCB3aGljaCBwcm92aWRlcyBzdGVwLXRvLXN0 ZXAgZGV0YWlscyBhYm91dCBidWlsZGluZy9jb25maWd1cmluZy9ydW5uaW5nIEludGVsIEdWVC1n Ogo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IAlodHRwczovL2dpdGh1Yi5jb20vMDFvcmcvWGVuR1QtUHJl dmlldy1rZXJuZWwvYmxvYi9tYXN0ZXIvWGVuR1RfU2V0dXBfR3VpZGUucGRmCj4+Pj4+Pj4+Pgo+ Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IFRoZSBuZXcgc291cmNlIGNvZGVzIGFyZSBhdmFpbGFibGUgYXQg dGhlIHVwZGF0ZWQgZ2l0aHViIHJlcG9zOgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IAlMaW51eDogaHR0 cHM6Ly9naXRodWIuY29tLzAxb3JnL1hlbkdULVByZXZpZXcta2VybmVsLmdpdAo+Pj4+Pj4+Pj4g CVhlbjogaHR0cHM6Ly9naXRodWIuY29tLzAxb3JnL1hlbkdULVByZXZpZXcteGVuLmdpdAo+Pj4+ Pj4+Pj4gCVFlbXU6IGh0dHBzOi8vZ2l0aHViLmNvbS8wMW9yZy9YZW5HVC1QcmV2aWV3LXFlbXUu Z2l0Cj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IE1vcmUgaW5mb3JtYXRpb24gYWJvdXQg SW50ZWwgR1ZULWcgYmFja2dyb3VuZCwgYXJjaGl0ZWN0dXJlLCBldGMgY2FuIGJlIGZvdW5kIGF0 Ogo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+IAlodHRwczovL3d3dy51c2VuaXgub3JnL2NvbmZlcmVuY2Uv YXRjMTQvdGVjaG5pY2FsLXNlc3Npb25zL3ByZXNlbnRhdGlvbi90aWFuCj4+Pj4+Pj4+PiAJaHR0 cDovL2V2ZW50cy5saW51eGZvdW5kYXRpb24ub3JnL3NpdGVzL2V2ZW50cy9maWxlcy9zbGlkZXMv WGVuR1QtWGVuJTIwU3VtbWl0LXY3XzAucGRmCj4+Pj4+Pj4+PiAJaHR0cHM6Ly8wMS5vcmcveGVu L2Jsb2dzL3NyY2xhcmt4LzIwMTMvZ3JhcGhpY3MtdmlydHVhbGl6YXRpb24teGVuZ3QKPj4+Pj4+ Pj4+Cj4+Pj4+Pj4+PiBUaGUgcHJldmlvdXMgdXBkYXRlIGNhbiBiZSBmb3VuZCBoZXJlOgo+Pj4+ Pj4+Pj4KPj4+Pj4+Pj4+IAlodHRwOi8vbGlzdHMueGVuLm9yZy9hcmNoaXZlcy9odG1sL3hlbi1k ZXZlbC8yMDE0LTAyL21zZzAxODQ4Lmh0bWwKPj4+Pj4+Pj4+Cj4+Pj4+Pj4+PiBBcHByZWNpYXRl IHlvdXIgY29tbWVudHMhCj4+Pj4+Pj4+Pgo+Pj4+Pj4+Pj4KPj4+Pj4+Pj4+Cj4+Pj4+Pj4+Pgo+ Pj4+Pj4+Pj4gLS0KPj4+Pj4+Pj4+IFRoYW5rcywKPj4+Pj4+Pj4+IEppa2UKPj4+Pj4+Pj4+Cl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBt YWlsaW5nIGxpc3QKSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3Rz LmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo= From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752174AbcKFPD3 (ORCPT ); Sun, 6 Nov 2016 10:03:29 -0500 Received: from mga05.intel.com ([192.55.52.43]:43923 "EHLO mga05.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751764AbcKFPD2 (ORCPT ); Sun, 6 Nov 2016 10:03:28 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.31,602,1473145200"; d="scan'208";a="28156610" Message-ID: <581F4568.8070706@intel.com> Date: Sun, 06 Nov 2016 22:59:52 +0800 From: Jike Song User-Agent: Mozilla/5.0 (X11; Linux i686 on x86_64; rv:17.0) Gecko/20130801 Thunderbird/17.0.8 MIME-Version: 1.0 To: igvt-g@ml01.01.org, xen-devel@lists.xen.org, intel-gfx@lists.freedesktop.org, linux-kernel@vger.kernel.org CC: "Dong, Eddie" , "Li, Susie" , "Cowperthwaite, David J" , "Reddy, Raghuveer" , "Tian, Kevin" , "Zhu, Libo" , "Wang, Hongbo" , Zhiyuan Lv Subject: Re: [Intel-gfx] [Announcement] 2016-Q3 release of XenGT - a Mediated Graphics Passthrough Solution from Intel References: <53D215D3.50608@intel.com> <547FCAAD.2060406@intel.com> <54AF967B.3060503@intel.com> <5527CEC4.9080700@intel.com> <559B3E38.1080707@intel.com> <562F4311.9@intel.com> <56A861D3.5090007@intel.com> <57219F9F.9070602@intel.com> <5791B25C.8080109@intel.com> In-Reply-To: <5791B25C.8080109@intel.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi all, We are pleased to announce another update of Intel GVT-g for Xen. Intel GVT-g is a full GPU virtualization solution with mediated pass-through, starting from 4th generation Intel Core(TM) processors with Intel Graphics processors. A virtual GPU instance is maintained for each VM, with part of performance critical resources directly assigned. The capability of running native graphics driver inside a VM, without hypervisor intervention in performance critical paths, achieves a good balance among performance, feature, and sharing capability. Xen is currently supported on Intel Processor Graphics (a.k.a. XenGT). Repositories - Xen: https://github.com/01org/igvtg-xen (2016q3-4.6 branch) - Kernel: https://github.com/01org/igvtg-kernel (2016q3-4.3.0 branch) - Qemu: https://github.com/01org/igvtg-qemu (2016q3-2.3.0 branch) This update consists of: - Preliminary support new platform: 7th generation Intel® Core™ processors. For windows OS, it only supports Win10 RedStone 64 bit. - Windows 10 RedStone guest Support - Windows Guest QoS preliminary support: Administrators now are able to control the maximum amount of vGPU resource to be consumed by each VM from value 1% ~ 99%” - Display virtualization preliminary support: Besides the tracking of display register visit in guest VM, removing irrelative display pipeline info between host and guest VM - Live Migration and savevm/restorevm preliminary support on BDW with 2D/3D workload running Known issues: - At least 2GB memory is suggested for Guest Virtual Machine (win7-32/64, win8.1-64, win10-64) to run most 3D workloads - Windows8 and later Windows fast boot is not supported, the workaround is to disable power S3/S4 in HVM file by adding “acpi_S3=0, acpi_S4=0” - Sometimes when dom0 and guest has heavy workload, i915 in dom0 will trigger a false-alarmed TDR. The workaround is to disable dom0 hangcheck in dom0 grub file by adding “i915.enable_hangcheck=0” - Stability: When QoS feature is enabled, Windows guest full GPU reset is often trigger during MTBF test. This bug will be fixed in next release - Windows guest running OpenCL allocations occurs to host crash; the workaround is to disable logd in dom0 grub file by adding “i915. logd_enable =0” Next update will be around early Jan, 2017. GVT-g project portal: https://01.org/igvt-g Please subscribe mailing list: https://lists.01.org/mailman/listinfo/igvt-g More information about background, architecture and others about Intel GVT-g, can be found at: https://01.org/igvt-g https://www.usenix.org/conference/atc14/technical-sessions/presentation/tian http://events.linuxfoundation.org/sites/events/files/slides/XenGT-Xen%20Summit-v7_0.pdf http://events.linuxfoundation.org/sites/events/files/slides/XenGT-Xen%20Summit-REWRITE%203RD%20v4.pdf https://01.org/xen/blogs/srclarkx/2013/graphics-virtualization-xengt Note: The XenGT project should be considered a work in progress. As such it is not a complete product nor should it be considered one. Extra care should be taken when testing and configuring a system to use the XenGT project. -- Thanks, Jike On 07/22/2016 01:42 PM, Jike Song wrote: > Hi all, > > We are pleased to announce another update of Intel GVT-g for Xen. > > Intel GVT-g is a full GPU virtualization solution with mediated pass-through, starting from 4th generation Intel Core(TM) processors with Intel Graphics processors. A virtual GPU instance is maintained for each VM, with part of performance critical resources directly assigned. The capability of running native graphics driver inside a VM, without hypervisor intervention in performance critical paths, achieves a good balance among performance, feature, and sharing capability. Xen is currently supported on Intel Processor Graphics (a.k.a. XenGT). > > Repositories > - Xen: https://github.com/01org/igvtg-xen (2016q2-4.6 branch) > - Kernel: https://github.com/01org/igvtg-kernel (2016q2-4.3.0 branch) > - Qemu: https://github.com/01org/igvtg-qemu (2016q2-2.3.0 branch) > > This update consists of: > - Support Windows 10 guest > - Support Windows Graphics driver installation on both Windows Normal mode and Safe mode > > Known issues: > - At least 2GB memory is suggested for Guest Virtual Machine (VM) to run most 3D workloads > - Dom0 S3 related feature is not supported > - Windows 8 and later versions: fast boot is not supported, the workaround is to disable power S3/S4 in HVM file by adding "acpi_S3=0, acpi_S4=0" > - Using Windows Media Player play videos may cause host crash. Using VLC to play .ogg file may cause mosaic or slow response. > - Sometimes when both dom0 and guest have heavy workloads, i915 in dom0 will trigger a false graphics reset, > the workaround is to disable dom0 hangcheck in grub file by adding "i915.enable_hangcheck=0". > > Next update will be around early Oct, 2016. > > GVT-g project portal: https://01.org/igvt-g > Please subscribe mailing list: https://lists.01.org/mailman/listinfo/igvt-g > > More information about background, architecture and others about Intel GVT-g, can be found at: > https://01.org/igvt-g > https://www.usenix.org/conference/atc14/technical-sessions/presentation/tian > http://events.linuxfoundation.org/sites/events/files/slides/XenGT-Xen%20Summit-v7_0.pdf > http://events.linuxfoundation.org/sites/events/files/slides/XenGT-Xen%20Summit-REWRITE%203RD%20v4.pdf > https://01.org/xen/blogs/srclarkx/2013/graphics-virtualization-xengt > > > Note: The XenGT project should be considered a work in progress. As such it is not a complete product nor should it be considered one. Extra care should be taken when testing and configuring a system to use the XenGT project. > > -- > Thanks, > Jike > > On 04/28/2016 01:29 PM, Jike Song wrote: >> Hi all, >> >> We are pleased to announce another update of Intel GVT-g for Xen. >> >> Intel GVT-g is a full GPU virtualization solution with mediated pass-through, starting from 4th generation Intel Core(TM) processors with Intel Graphics processors. A virtual GPU instance is maintained for each VM, with part of performance critical resources directly assigned. The capability of running native graphics driver inside a VM, without hypervisor intervention in performance critical paths, achieves a good balance among performance, feature, and sharing capability. Xen is currently supported on Intel Processor Graphics (a.k.a. XenGT). >> >> >> Repositories >> ------------------------- >> >> Kernel: https://github.com/01org/igvtg-kernel (2016q1-4.3.0 branch) >> Xen: https://github.com/01org/igvtg-xen (2016q1-4.6 branch) >> Qemu: https://github.com/01org/igvtg-qemu (2016q1-2.3.0 branch) >> >> This update consists of: >> - Windows 10 guest is preliminarily supported in this release. >> - Implemented vgtbuffer(Indirect display) feature on SKL platform. >> - Backward compatibility support 5th generation (Broadwell) >> - Increased VGT stability on SKL platform >> - Kernel updated from drm-intel 4.2.0 to drm-intel 4.3.0 >> - Xen updated from Xen 4.5.0 to Xen 4.6.0 >> - Qemu updated from 1.6 to 2.3 >> >> Known issues: >> - At least 2GB memory is suggested for VM(win7-32/64, win8.1 64) to run most 3D workloads. >> - Windows 7 GFX driver upgrading only works on Safe mode. >> - Some media decode can't work well (will be resolved in the next version Windows GFX driver). >> - Windows8 and later Windows fast boot is not supported, whose workaround is to disable power S3/S4 in HVM file by adding "acpi_s3=0, acpi_s4=0" >> - Sometimes when dom0 and guest have heavy workload, i915 in dom0 will trigger a false graphics reset. The workaround is to disable dom0 hangcheck in dom0 grub file by adding "i915.enable_hangcheck=0" >> >> Next update will be around early July, 2016. >> >> GVT-g project portal: >> https://01.org/igvt-g >> >> Please subscribe the mailing list: >> https://lists.01.org/mailman/listinfo/igvt-g >> >> >> More information about background, architecture and others about Intel GVT-g, can be found at: >> >> https://01.org/igvt-g >> https://www.usenix.org/conference/atc14/technical-sessions/presentation/tian >> http://events.linuxfoundation.org/sites/events/files/slides/XenGT-Xen%20Summit-v7_0.pdf >> http://events.linuxfoundation.org/sites/events/files/slides/XenGT-Xen%20Summit-REWRITE%203RD%20v4.pdf >> https://01.org/xen/blogs/srclarkx/2013/graphics-virtualization-xengt >> >> >> Note: The XenGT project should be considered a work in progress. As such it is not a complete product nor should it be considered one. Extra care should be taken when testing and configuring a system to use the XenGT project. >> >> >> -- >> Thanks, >> Jike >> >> On 01/27/2016 02:21 PM, Jike Song wrote: >>> Hi all, >>> >>> We are pleased to announce another update of Intel GVT-g for Xen. >>> >>> Intel GVT-g is a full GPU virtualization solution with mediated pass-through, starting from 4th generation Intel Core(TM) processors with Intel Graphics processors. A virtual GPU instance is maintained for each VM, with part of performance critical resources directly assigned. The capability of running native graphics driver inside a VM, without hypervisor intervention in performance critical paths, achieves a good balance among performance, feature, and sharing capability. Xen is currently supported on Intel Processor Graphics (a.k.a. XenGT). >>> >>> Repositories >>> ------------------------- >>> >>> Kernel: https://github.com/01org/igvtg-kernel (2015q4-4.2.0 branch) >>> Xen: https://github.com/01org/igvtg-xen (2015q4-4.5 branch) >>> Qemu: https://github.com/01org/igvtg-qemu (xengt_public2015q4 branch) >>> >>> This update consists of: >>> >>> - 6th generation Intel Core Processor (code name: Skylake) is preliminarily supported in this release. Users could start run multiple Windows / Linux virtual machines simultaneously, and switch display among them. >>> - Backward compatibility support 4th generation Intel Core Processor (code name: Haswell) and 5th generation Intel Core Processor (code name: Broadwell). >>> - Kernel update from drm-intel 3.18.0 to drm-intel 4.2.0. >>> >>> Known issues: >>> - At least 2GB memory is suggested for a VM to run most 3D workloads. >>> - Keymap might be incorrect in guest. Config file may need to explicitly specify "keymap='en-us'". Although it looks like the default value, earlier we saw the problem of wrong keymap code if it is not explicitly set. >>> - Cannot move mouse pointer smoothly in guest by default launched by VNC mode. Configuration file need to explicitly specify "usb=1" to enable a USB bus, and "usbdevice='tablet'" to add pointer device using absolute coordinates. >>> - Running heavy 3D workloads in multiple guests for couple of hours may cause stability issue. >>> - There are still stability issues on Skylake >>> >>> >>> Next update will be around early April, 2016. >>> >>> GVT-g project portal: https://01.org/igvt-g >>> Please subscribe mailing list: https://lists.01.org/mailman/listinfo/igvt-g >>> >>> >>> More information about background, architecture and others about Intel GVT-g, can be found at: >>> >>> https://01.org/igvt-g >>> https://www.usenix.org/conference/atc14/technical-sessions/presentation/tian >>> http://events.linuxfoundation.org/sites/events/files/slides/XenGT-Xen%20Summit-v7_0.pdf >>> http://events.linuxfoundation.org/sites/events/files/slides/XenGT-Xen%20Summit-REWRITE%203RD%20v4.pdf >>> https://01.org/xen/blogs/srclarkx/2013/graphics-virtualization-xengt >>> >>> >>> Note: The XenGT project should be considered a work in progress. As such it is not a complete product nor should it be considered one. Extra care should be taken when testing and configuring a system to use the XenGT project. >>> >>> >>> -- >>> Thanks, >>> Jike >>> >>> On 10/27/2015 05:25 PM, Jike Song wrote: >>>> Hi all, >>>> >>>> We are pleased to announce another update of Intel GVT-g for Xen. >>>> >>>> Intel GVT-g is a full GPU virtualization solution with mediated pass-through, starting from 4th generation Intel Core(TM) processors with Intel Graphics processors. A virtual GPU instance is maintained for each VM, with part of performance critical resources directly assigned. The capability of running native graphics driver inside a VM, without hypervisor intervention in performance critical paths, achieves a good balance among performance, feature, and sharing capability. Xen is currently supported on Intel Processor Graphics (a.k.a. XenGT); and the core logic can be easily ported to other hypervisors. >>>> >>>> >>>> Repositories >>>> >>>> Kernel: https://github.com/01org/igvtg-kernel (2015q3-3.18.0 branch) >>>> Xen: https://github.com/01org/igvtg-xen (2015q3-4.5 branch) >>>> Qemu: https://github.com/01org/igvtg-qemu (xengt_public2015q3 branch) >>>> >>>> >>>> This update consists of: >>>> >>>> - XenGT is now merged with KVMGT in unified repositories(kernel and qemu), but currently >>>> different branches for qemu. XenGT and KVMGT share same iGVT-g core logic. >>>> - fix sysfs/debugfs access seldom crash issue >>>> - fix a BUG in XenGT I/O emulation logic >>>> - improve 3d workload stability >>>> >>>> Next update will be around early Jan, 2016. >>>> >>>> >>>> Known issues: >>>> >>>> - At least 2GB memory is suggested for VM to run most 3D workloads. >>>> - Keymap might be incorrect in guest. Config file may need to explicitly specify "keymap='en-us'". Although it looks like the default value, earlier we saw the problem of wrong keymap code if it is not explicitly set. >>>> - When using three monitors, doing hotplug between Guest pause/unpause may not be able to lightup all monitors automatically. Some specific monitor issues. >>>> - Cannot move mouse pointer smoothly in guest by default launched by VNC mode. Configuration file need to explicitly specify "usb=1" to enable a USB bus, and "usbdevice='tablet'" to add pointer device using absolute coordinates. >>>> - Resume dom0 from S3 may cause some error message. >>>> - i915 unload/reload cannot works well with less than 3 vcpu when upowerd service was running >>>> - Unigen Tropics running in multiple guests will cause dom0 and guests tdr. >>>> >>>> >>>> Please subscribe the mailing list to report BUGs, discuss, and/or contribute: >>>> >>>> https://lists.01.org/mailman/listinfo/igvt-g >>>> >>>> >>>> More information about Intel GVT-g background, architecture, etc can be found at(may not be up-to-date): >>>> >>>> https://01.org/igvt-g >>>> https://www.usenix.org/conference/atc14/technical-sessions/presentation/tian >>>> http://events.linuxfoundation.org/sites/events/files/slides/XenGT-Xen%20Summit-v7_0.pdf >>>> http://events.linuxfoundation.org/sites/events/files/slides/XenGT-Xen%20Summit-REWRITE%203RD%20v4.pdf >>>> https://01.org/xen/blogs/srclarkx/2013/graphics-virtualization-xengt >>>> >>>> >>>> Note: >>>> >>>> The XenGT project should be considered a work in progress. As such it is not a complete product nor should it be considered one. Extra care should be taken when testing and configuring a system to use the XenGT project. >>>> >>>> >>>> -- >>>> Thanks, >>>> Jike >>>> >>>> On 07/07/2015 10:49 AM, Jike Song wrote: >>>>> Hi all, >>>>> >>>>> We're pleased to announce a public update to Intel Graphics Virtualization Technology(Intel GVT-g, formerly known as XenGT). >>>>> >>>>> Intel GVT-g is a full GPU virtualization solution with mediated pass-through, starting from 4th generation Intel Core(TM) processors with Intel Graphics processors. A virtual GPU instance is maintained for each VM, with part of performance critical resources directly assigned. The capability of running native graphics driver inside a VM, without hypervisor intervention in performance critical paths, achieves a good balance among performance, feature, and sharing capability. Xen is currently supported on Intel Processor Graphics (a.k.a. XenGT); and the core logic can be easily ported to other hypervisors, for example, the experimental code has been released to support GVT-g running on a KVM hypervisor (a.k.a KVMGT). >>>>> >>>>> Tip of repositories >>>>> ------------------------- >>>>> >>>>> Kernel: 5b73653d5ca, Branch: master-2015Q2-3.18.0 >>>>> Qemu: 2a75bbff62c1, Branch: master >>>>> Xen: 38c36f0f511b1, Branch: master-2015Q2-4.5 >>>>> >>>>> This update consists of: >>>>> - Change time based scheduler timer to be configurable to enhance stability >>>>> - Fix stability issues that VM/Dom0 got tdr when hang up at some specific instruction on BDW >>>>> - Optimize the emulation of el_status register to enhance stability >>>>> - 2D/3D performance in linux VMs has been improved about 50% on BDW >>>>> - Fix abnormal idle power consumption issue due to wrong forcewake policy >>>>> - Fix tdr issue when running 2D/3D/Media workloads in Windows VMs simultaneously >>>>> - KVM support is still in a separate branch as prototype work. We plan to integrate KVM/Xen support together in the future releases >>>>> - Next update will be around early Oct, 2015 >>>>> >>>>> Notice that this release can support both Intel 4th generation Core CPU(code name: Haswell) and Intel 5th generation Core CPU (code name: Broadwell), while the limitation of the latter include: >>>>> * 3D conformance may have some failure >>>>> * Under high demand 3D workloads, stability issues are detected >>>>> * Multi-monitor scenario is not fully tested, while single monitor of VGA/HDMI/DP/eDP should just work >>>>> * Hotplug DP may cause black screen even on native environment >>>>> >>>>> Where to get >>>>> >>>>> kernel: https://github.com/01org/XenGT-Preview-kernel.git >>>>> xen: https://github.com/01org/XenGT-Preview-xen.git >>>>> qemu: https://github.com/01org/XenGT-Preview-qemu.git >>>>> >>>>> >>>>> We have a mailing list for GVT-g development, bug report and technical discussion: >>>>> >>>>> https://lists.01.org/mailman/listinfo/igvt-g >>>>> >>>>> More information about Intel GVT-g background, architecture, etc can be found at: >>>>> >>>>> https://www.usenix.org/conference/atc14/technical-sessions/presentation/tian >>>>> http://events.linuxfoundation.org/sites/events/files/slides/XenGT-Xen%20Summit-v7_0.pdf >>>>> https://01.org/xen/blogs/srclarkx/2013/graphics-virtualization-xengt >>>>> >>>>> >>>>> Note: The XenGT project should be considered a work in progress. As such it is not a complete product nor should it be considered one. Extra care should be taken when testing and configuring a system to use the XenGT project. >>>>> >>>>> >>>>> -- >>>>> Thanks, >>>>> Jike >>>>> >>>>> On 04/10/2015 09:23 PM, Jike Song wrote: >>>>>> Hi all, >>>>>> >>>>>> We're pleased to announce a public update to Intel Graphics Virtualization Technology (Intel GVT-g, formerly known as XenGT). Intel GVT-g is a complete vGPU solution with mediated pass-through, supported today on 4th generation Intel Core(TM) processors with Intel Graphics processors. A virtual GPU instance is maintained for each VM, with part of performance critical resources directly assigned. The capability of running native graphics driver inside a VM, without hypervisor intervention in performance critical paths, achieves a good balance among performance, feature, and sharing capability. Though we only support Xen on Intel Processor Graphics so far, the core logic can be easily ported to other hypervisors. >>>>>> >>>>>> Tip of repositories >>>>>> ------------------------- >>>>>> >>>>>> Kernel: a011c9f953e, Branch: master-2015Q1-3.18.0 >>>>>> Qemu: 2a75bbff62c1, Branch: master >>>>>> Xen: 38c36f0f511b1, Branch: master-2015Q1-4.5 >>>>>> >>>>>> Summary this update >>>>>> ------------------------- >>>>>> - Preliminary Broadwell support. >>>>>> - kernel update from drm-intel 3.17.0 to drm-intel 3.18.0(tag: drm-intel-next-fixes-2014-12-17, notice that i915 driver code is much newer than kernel stable version). >>>>>> - Next update will be around early July, 2015. >>>>>> - KVM support is still in a separate branch as prototype work. We plan to integrate KVM/Xen support together in future releases. >>>>>> >>>>>> This update consists of: >>>>>> - gvt-g core logic code was moved into i915 driver directory. >>>>>> - Host mediation is used for dom0 i915 driver access, instead of de-privileged dom0. >>>>>> - The Xen-specific code was separated from vgt core logic into a new file "driver/xen/xengt.c". >>>>>> - Broadwell is preliminarily supported in this release. Users could start multiple linux/windows 64-bit virtual machines simultaneously, and perform display switch among them. >>>>>> >>>>>> Notice that it is still preliminary release for BDW, which is not yet in the same level of HSW release. Differences include: >>>>>> * Power/performance tuning on BDW is not yet done. >>>>>> * Stability needs to be improved. >>>>>> * No 32-bit guest OS support. >>>>>> * Multi-monitor scenario is not fully tested, while single monitor of VGA/HDMI/DP/eDP should just work. >>>>>> >>>>>> >>>>>> Where to get: >>>>>> ----------------- >>>>>> kerenl: https://github.com/01org/XenGT-Preview-kernel.git >>>>>> Xen: https://github.com/01org/XenGT-Preview-xen.git >>>>>> Qemu: https://github.com/01org/XenGT-Preview-qemu.git >>>>>> >>>>>> Please refer to the new setup guide, which provides step-to-step details about building/configuring/running Intel GVT-g: >>>>>> https://github.com/01org/XenGT-Preview-kernel/blob/master-2015Q1-3.18.0/XenGT_Setup_Guide_2015Q1.pdf >>>>>> >>>>>> More information about Intel GVT-g background, architecture, etc can be found at: >>>>>> https://www.usenix.org/conference/atc14/technical-sessions/presentation/tian >>>>>> http://events.linuxfoundation.org/sites/events/files/slides/XenGT-Xen%20Summit-v7_0.pdf >>>>>> https://01.org/xen/blogs/srclarkx/2013/graphics-virtualization-xengt >>>>>> >>>>>> The previous update can be found here: >>>>>> http://lists.xen.org/archives/html/xen-devel/2014-12/msg00474.html >>>>>> >>>>>> >>>>>> Note >>>>>> --------------- >>>>>> The XenGT project should be considered a work in progress, As such it is not a complete product nor should it be considered one., Extra care should be taken when testing and configuring a system to use the XenGT project. >>>>>> >>>>>> >>>>>> -- >>>>>> Thanks, >>>>>> Jike >>>>>> >>>>>> On 01/09/2015 04:51 PM, Jike Song wrote: >>>>>>> Hi all, >>>>>>> >>>>>>> We're pleased to announce a public update to Intel Graphics Virtualization Technology (Intel GVT-g, formerly known as XenGT). Intel GVT-g is a complete vGPU solution with mediated pass-through, supported today on 4th generation Intel Core(TM) processors with Intel Graphics processors. A virtual GPU instance is maintained for each VM, with part of performance critical resources directly assigned. The capability of running native graphics driver inside a VM, without hypervisor intervention in performance critical paths, achieves a good balance among performance, feature, and sharing capability. Though we only support Xen on Intel Processor Graphics so far, the core logic can be easily ported to other hypervisors. The XenGT project should be considered a work in progress, As such it is not a complete product nor should it be considered one., Extra care should be taken when testing and configuring a system to use the XenGT project. >>>>>>> >>>>>>> The news of this update: >>>>>>> >>>>>>> - kernel update from 3.14.1 to drm-intel 3.17.0. >>>>>>> - We plan to integrate Intel GVT-g as a feature in i915 driver. That effort is still under review, not included in this update yet. >>>>>>> - Next update will be around early Apr, 2015. >>>>>>> >>>>>>> This update consists of: >>>>>>> >>>>>>> - Including some bug fixes and stability enhancement. >>>>>>> - Making XenGT device model to be aware of Broadwell. In this version BDW is not yet functioning. >>>>>>> - Available Fence registers number is changed to 32 from 16 to align with HSW hardware. >>>>>>> - New cascade interrupt framework for supporting interrupt virtualization on both Haswell and Broadwell. >>>>>>> - Add back the gem_vgtbuffer. The previous release did not build that module for 3.14 kernel. In this release, the module is back and rebased to 3.17. >>>>>>> - Enable the irq based context switch in vgt driver, which will help reduce the cpu utilization while doing context switch, it is enabled by default, and can be turn off by kernel flag irq_based_ctx_switch. >>>>>>> >>>>>>> >>>>>>> Please refer to the new setup guide, which provides step-to-step details about building/configuring/running Intel GVT-g: >>>>>>> >>>>>>> https://github.com/01org/XenGT-Preview-kernel/blob/master/XenGT_Setup_Guide.pdf >>>>>>> >>>>>>> The new source codes are available at the updated github repos: >>>>>>> >>>>>>> Linux: https://github.com/01org/XenGT-Preview-kernel.git >>>>>>> Xen: https://github.com/01org/XenGT-Preview-xen.git >>>>>>> Qemu: https://github.com/01org/XenGT-Preview-qemu.git >>>>>>> >>>>>>> >>>>>>> More information about Intel GVT-g background, architecture, etc can be found at: >>>>>>> >>>>>>> >>>>>>> https://www.usenix.org/conference/atc14/technical-sessions/presentation/tian >>>>>>> http://events.linuxfoundation.org/sites/events/files/slides/XenGT-Xen%20Summit-v7_0.pdf >>>>>>> https://01.org/xen/blogs/srclarkx/2013/graphics-virtualization-xengt >>>>>>> >>>>>>> >>>>>>> >>>>>>> The previous update can be found here: >>>>>>> >>>>>>> >>>>>>> http://lists.xen.org/archives/html/xen-devel/2014-12/msg00474.html >>>>>>> >>>>>>> >>>>>>> >>>>>>> Appreciate your comments! >>>>>>> >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Thanks, >>>>>>> Jike >>>>>>> >>>>>>> >>>>>>> On 12/04/2014 10:45 AM, Jike Song wrote: >>>>>>>> Hi all, >>>>>>>> >>>>>>>> We're pleased to announce a public release to Intel Graphics Virtualization Technology (Intel GVT-g, formerly known as XenGT). Intel GVT-g is a complete vGPU solution with mediated pass-through, supported today on 4th generation Intel Core(TM) processors with Intel Graphics processors. A virtual GPU instance is maintained for each VM, with part of performance critical resources directly assigned. The capability of running native graphics driver inside a VM, without hypervisor intervention in performance critical paths, achieves a good balance among performance, feature, and sharing capability. Though we only support Xen on Intel Processor Graphics so far, the core logic can be easily ported to other hypervisors. >>>>>>>> >>>>>>>> >>>>>>>> The news of this update: >>>>>>>> >>>>>>>> >>>>>>>> - kernel update from 3.11.6 to 3.14.1 >>>>>>>> >>>>>>>> - We plan to integrate Intel GVT-g as a feature in i915 driver. That effort is still under review, not included in this update yet >>>>>>>> >>>>>>>> - Next update will be around early Jan, 2015 >>>>>>>> >>>>>>>> >>>>>>>> This update consists of: >>>>>>>> >>>>>>>> - Windows HVM support with driver version 15.33.3910 >>>>>>>> >>>>>>>> - Stability fixes, e.g. stabilize GPU, the GPU hang occurrence rate becomes rare now >>>>>>>> >>>>>>>> - Hardware Media Acceleration for Decoding/Encoding/Transcoding, VC1, H264 etc. format supporting >>>>>>>> >>>>>>>> - Display enhancements, e.g. DP type is supported for virtual PORT >>>>>>>> >>>>>>>> - Display port capability virtualization: with this feature, dom0 manager could freely assign virtual DDI ports to VM, not necessary to check whether the corresponding physical DDI ports are available >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> Please refer to the new setup guide, which provides step-to-step details about building/configuring/running Intel GVT-g: >>>>>>>> >>>>>>>> >>>>>>>> https://github.com/01org/XenGT-Preview-kernel/blob/master/XenGT_Setup_Guide.pdf >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> The new source codes are available at the updated github repos: >>>>>>>> >>>>>>>> >>>>>>>> Linux: https://github.com/01org/XenGT-Preview-kernel.git >>>>>>>> >>>>>>>> Xen: https://github.com/01org/XenGT-Preview-xen.git >>>>>>>> >>>>>>>> Qemu: https://github.com/01org/XenGT-Preview-qemu.git >>>>>>>> >>>>>>>> >>>>>>>> More information about Intel GVT-g background, architecture, etc can be found at: >>>>>>>> >>>>>>>> >>>>>>>> https://www.usenix.org/conference/atc14/technical-sessions/presentation/tian >>>>>>>> >>>>>>>> http://events.linuxfoundation.org/sites/events/files/slides/XenGT-Xen%20Summit-v7_0.pdf >>>>>>>> >>>>>>>> https://01.org/xen/blogs/srclarkx/2013/graphics-virtualization-xengt >>>>>>>> >>>>>>>> >>>>>>>> The previous update can be found here: >>>>>>>> >>>>>>>> >>>>>>>> http://lists.xen.org/archives/html/xen-devel/2014-07/msg03248.html >>>>>>>> >>>>>>>> >>>>>>>> Appreciate your comments! >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Thanks, >>>>>>>> Jike >>>>>>>> >>>>>>>> On 07/25/2014 04:31 PM, Jike Song wrote: >>>>>>>>> Hi all, >>>>>>>>> >>>>>>>>> We're pleased to announce an update to Intel Graphics Virtualization Technology (Intel GVT-g, formerly known as XenGT). Intel GVT-g is a complete vGPU solution with mediated pass-through, supported today on 4th generation Intel Core(TM) processors with Intel Graphics processors. A virtual GPU instance is maintained for each VM, with part of performance critical resources directly assigned. The capability of running native graphics driver inside a VM, without hypervisor intervention in performance critical paths, achieves a good balance among performance, feature, and sharing capability. Though we only support Xen on Intel Processor Graphics so far, the core logic can be easily ported to other hypervisors. >>>>>>>>> >>>>>>>>> The news of this update: >>>>>>>>> >>>>>>>>> - Project code name is "XenGT", now official name is Intel Graphics Virtualization Technology (Intel GVT-g) >>>>>>>>> - Currently Intel GVT-g supports Intel Processor Graphics built into 4th generation Intel Core processors - Haswell platform >>>>>>>>> - Moving forward, XenGT will change to quarterly release cadence. Next update will be around early October, 2014. >>>>>>>>> >>>>>>>>> This update consists of: >>>>>>>>> >>>>>>>>> - Stability fixes, e.g. stable DP support >>>>>>>>> - Display enhancements, e.g. virtual monitor support. Users can define a virtual monitor type with customized EDID for virtual machines, not necessarily the same as physical monitors. >>>>>>>>> - Improved support for GPU recovery >>>>>>>>> - Experimental Windows HVM support. To download the experimental version, see setup guide for details >>>>>>>>> - Experimental Hardware Media Acceleration for decoding. >>>>>>>>> >>>>>>>>> >>>>>>>>> Please refer to the new setup guide, which provides step-to-step details about building/configuring/running Intel GVT-g: >>>>>>>>> >>>>>>>>> https://github.com/01org/XenGT-Preview-kernel/blob/master/XenGT_Setup_Guide.pdf >>>>>>>>> >>>>>>>>> >>>>>>>>> The new source codes are available at the updated github repos: >>>>>>>>> >>>>>>>>> Linux: https://github.com/01org/XenGT-Preview-kernel.git >>>>>>>>> Xen: https://github.com/01org/XenGT-Preview-xen.git >>>>>>>>> Qemu: https://github.com/01org/XenGT-Preview-qemu.git >>>>>>>>> >>>>>>>>> >>>>>>>>> More information about Intel GVT-g background, architecture, etc can be found at: >>>>>>>>> >>>>>>>>> https://www.usenix.org/conference/atc14/technical-sessions/presentation/tian >>>>>>>>> http://events.linuxfoundation.org/sites/events/files/slides/XenGT-Xen%20Summit-v7_0.pdf >>>>>>>>> https://01.org/xen/blogs/srclarkx/2013/graphics-virtualization-xengt >>>>>>>>> >>>>>>>>> The previous update can be found here: >>>>>>>>> >>>>>>>>> http://lists.xen.org/archives/html/xen-devel/2014-02/msg01848.html >>>>>>>>> >>>>>>>>> Appreciate your comments! >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Thanks, >>>>>>>>> Jike >>>>>>>>>