From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: Re: HVMLite / PVHv2 - using x86 EFI boot entry Date: Thu, 14 Apr 2016 22:02:47 -0400 Message-ID: <20160415020246.GA6956__34567.3165088103$1460685951$gmane$org@localhost.localdomain> References: <570B3228.90400@suse.com> <20160413182951.GW1990@wotan.suse.de> <20160413185629.GA7501@char.us.oracle.com> <20160413204055.GD1990@wotan.suse.de> <20160413210801.GC5962@char.us.oracle.com> <20160413222317.GH1990@wotan.suse.de> <20160414010131.GA21510@localhost.localdomain> <20160414184048.GM1990@wotan.suse.de> <20160414195652.GC20459@localhost.localdomain> <20160414205619.GR1990@wotan.suse.de> 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.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1aqt77-0001ln-AR for xen-devel@lists.xenproject.org; Fri, 15 Apr 2016 02:04:05 +0000 Content-Disposition: inline In-Reply-To: <20160414205619.GR1990@wotan.suse.de> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: "Luis R. Rodriguez" Cc: Matt Fleming , Michael Chang , linux-kernel@vger.kernel.org, Julien Grall , Jan Beulich , "H. Peter Anvin" , Daniel Kiper , x86@kernel.org, =?utf-8?Q?Vojt=C4=9Bch_Pavl=C3=ADk?= , Gary Lin , xen-devel@lists.xenproject.org, Jeffrey Cheung , Charles Arndol , Kees Cook , Stefano Stabellini , Josh Triplett , joeyli , Borislav Petkov , Boris Ostrovsky , Juergen Gross , Andrew Cooper , Jim Fehlig , Andy Lutomirski , David Vrabel List-Id: xen-devel@lists.xenproject.org T24gVGh1LCBBcHIgMTQsIDIwMTYgYXQgMTA6NTY6MTlQTSArMDIwMCwgTHVpcyBSLiBSb2RyaWd1 ZXogd3JvdGU6Cj4gT24gVGh1LCBBcHIgMTQsIDIwMTYgYXQgMDM6NTY6NTNQTSAtMDQwMCwgS29u cmFkIFJ6ZXN6dXRlayBXaWxrIHdyb3RlOgo+ID4gT24gVGh1LCBBcHIgMTQsIDIwMTYgYXQgMDg6 NDA6NDhQTSArMDIwMCwgTHVpcyBSLiBSb2RyaWd1ZXogd3JvdGU6Cj4gPiA+IE9uIFdlZCwgQXBy IDEzLCAyMDE2IGF0IDA5OjAxOjMyUE0gLTA0MDAsIEtvbnJhZCBSemVzenV0ZWsgV2lsayB3cm90 ZToKPiA+ID4gPiBPbiBUaHUsIEFwciAxNCwgMjAxNiBhdCAxMjoyMzoxN0FNICswMjAwLCBMdWlz IFIuIFJvZHJpZ3VleiB3cm90ZToKPiA+ID4gPiA+IFZHQSBjb2RlIHdpbGwgYmUgZGVhZCBjb2Rl IGZvciBIVk1saXRlIGZvciBzdXJlIGFzIHRoZSBkZXNpZ24gZG9jCj4gPiA+ID4gPiBzYXlzIGl0 IHdpbGwgbm90IHJ1biBWR0EsIHRoZSBBQ1BJIGZsYWcgd2lsbCBiZSBzZXQgYnV0IHRoZSBjaGVj awo+ID4gPiA+ID4gZm9yIHRoYXQgaXMgbm90IHlldCBvbiBMaW51eC4gVGhhdCBtZWFucyB0aGUg VkdBIExpbnV4IGNvZGUgd2lsbAo+ID4gPiA+ID4gYmUgdGhlcmUgYnV0IHdlIGhhdmUgbm8gd2F5 IHRvIGVuc3VyZSBpdCB3aWxsIG5vdCBydW4gbm9yIHRoYXQKPiA+ID4gPiA+IGFueXRoaW5nIHdp bGwgbXVjayB3aXRoIGl0Lgo+ID4gPiA+IAo+ID4gPiA+IDxzaHJ1Z3M+IFRoZSB3b3JzdCBpdCB3 aWxsIGRvIGlzIHRyeSB0byByZWFkIG5vbi1leGlzdGVudCByZWdpc3RlcnMuCj4gPiA+IAo+ID4g PiBSZWFsbHkgPwo+ID4gPiAKPiA+ID4gSXMgdGhhdCB5b3VyIHBvc2l0aW9uIG9uIGFsbCBvdGhl ciBwb3NzaWJsZSBkZWFkIGNvZGUgdGhhdCBtYXkgaGF2ZSBiZWVuCj4gPiA+IHBvc3NpYmxlIG9u IG9sZCBYZW4gUFYgZ3Vlc3RzIGFzIHdlbGwgPwo+ID4gCj4gPiBUaGlzIGlzIG5vdCBqdXN0IHdp dGggWGVuIC0gaXQgd2l0aCBvdGhlciBkZXZpY2UgZHJpdmVycyB0aGF0IGFyZSBiZWluZwo+ID4g aW52b2tlZCBvbiBiYXJlbWV0YWwgYW5kIGFyZSBub3QgcHJlc2VudCBpbiBoYXJkd2FyZSBhbnlt b3JlLgo+IAo+IEluZGVlZCwgaG93ZXZlciB2aXJ0dWFsaXphdGlvbiBtYWtlcyB0aGlzIGlzc3Vl IG11Y2ggbW9yZSBwcm9taW5lbnQuCgpJIHN1cHBvc2UgLSBhcyBpdCBvbmx5IGV4cG9zZXMgYSBj ZXJ0YWluIHR5cGUgb2YgcGxhdGZvcm0gYW5kIG5vdGhpbmcKZWxzZS4KPiAKPiA+ID4gQXMgSSBo aW50ZWQsIGFmdGVyIHRoaW5raW5nIGFib3V0IHRoaXMgZm9yIGEgd2hpbGUgSSByZWFsaXplZCB0 aGF0IGRlYWQgY29kZSBpcwo+ID4gPiBsaWtlbHkgcHJlc2VudCBvbiBiYXJlIG1ldGFsIGFzIHdl bGwgZXZlbiB3aXRob3V0IHZpcnR1YWxpemF0aW9uLCBzcGVjaWFsbHkgaWYKPiA+IAo+ID4gWWVz IQo+ID4gPiB5b3UgYnVpbGQgbGFyZ2Ugc2luZ2xlIGtlcm5lbHMgdG8gc3VwcG9ydCBhIHdpZGUg YXJyYXkgb2YgZmVhdHVyZXMgd2hpY2ggb25seQo+ID4gPiBsYXRlIGF0IHJ1biB0aW1lIGNhbiBi ZSBkZXRlcm1pbmVkLiBWaXJ0dWFsaXphdGlvbiBhbmQgdGhlIHB2b3BzIGRlc2lnbiBqdXN0Cj4g PiA+IG1ha2VzIHRoaXMgaXNzdWUgbXVjaCBtb3JlIHByb21pbmVudC4gSWYgdGhlcmUgYXJlIG90 aGVyIGFyZWFzIG9mIGNvZGUgZXhwb3NlZAo+ID4gPiB0aGF0IGFjdHVhbGx5IG1heSBydW4sIGJ1 dCB3ZSBhcmUgbm90IHN1cmUgbWF5IHJ1biwgSSBmaWd1cmVkIHNvbWUgb3RoZXIgZm9sa3MKPiA+ ID4gd2l0aCBhIGJpdCBtb3JlIHNlY3VyaXR5IGNvbnNjaWVuY2UgbWluZHMgbWlnaHQgZXZlbiBz aW1wbHkgdGFrZSB0aGUgcG9zaXRpb24KPiA+ID4gaXQgbWF5IGJlIGEgc2VjdXJpdHkgcmlzayB0 byBsZWF2ZSB0aGF0IGNvZGUgZXhwb3NlZC4gU28gdG8gdGFrZSBhIHBvc2l0aW9uCj4gPiA+IHRo YXQgJ3RoZSB3b3JzdCBpdCB3aWxsIGRvIGlzIHRyeSB0byByZWFkIG5vbi1leGlzdGVudCByZWdp c3RlcnMnIC0tIHNlZW1zCj4gPiA+IHJhdGhlciBzaG9ydHNpZ2h0ZWQgaGVyZS4KPiA+IAo+ID4g U2VjdXJpdHkgY29uc2Npb3VzIHBlb3BsZSB0cmltIHRoZWlyIENPTkZJRy4KPiAKPiBOb3QgYWxs IExpbnV4IGRpc3RyaWJ1dGlvbnMgd2FudCB0byBkbyB0aGlzLCB0aGUgbW9yZSBiaW5hcmllcyB0 aGUKPiBoaWdoZXIgdGhlIGNvc3QgdG8gdGVzdCAvIHZldC4KCk9LLCBidXQgTGludXggZGlzdHJp YnV0aW9ucyBoYXZlIG1hbnkgZ29hbHMgLSBhbmQgYXJlIHB1bGxlZCBpbgpkaWZmZXJlbnQgZGly ZWN0aW9ucyBzbyB0aGV5IGNhbm5vdCBhbHdheXMgYWNoaWV2ZSB0aGUgJ2xvdyBmb290cHJpbnQg LQpzbWFsbCBhbW91bnQgb2YgY29kZSB0byBkbyBpbnNwZWN0aW9uIGZyb20gc2VjdXJpdHkgc3Rh bmRwb2ludCcKCj4gCj4gPiA+IEFueXdheSBmb3IgbW9yZSBkZXRhaWxzIG9uIHRob3VnaHRzIG9u IHRoaXMgcmVmZXIgdG8gdGhlIHRoaXMgd2lraToKPiA+ID4gCj4gPiA+IGh0dHA6Ly9rZXJuZWxu ZXdiaWVzLm9yZy9LZXJuZWxQcm9qZWN0cy9rZXJuZWwtc2FuZGJveGluZwo+ID4gPiAKPiA+ID4g U2luY2UgdGhpcyBpcyBub3cgZ2V0dGluZyBvZmYgdG9waWMgcGxlYXNlIHNlbmQgbWUgeW91ciBm ZWVkYmFjayBvbiBhbm90aGVyCj4gPiA+IHRocmVhZCBmb3IgdGhlIG5vbi12aXJ0dWFsaXphdGlv biBhc3BlY3RzIG9mIHRoaXMgaWYgdGhhdCBpbnRlcmVzdHMgeW91LiBNeQo+ID4gPiBwb2ludCBo ZXJlIHdhcyByYXRoZXIgdG8gaGlnaGxpZ2h0IHRoZSBpbXBvcnRhbmNlIG9mIGNsZWFyIHNlbWFu dGljcyBkdWUgdG8KPiA+ID4gdmlydHVhbGl6YXRpb24gaW4gbGlnaHQgb2YgcG9zc2libGUgZGVh ZCBjb2RlLgo+ID4gCj4gPiBUaGFuayB5b3UuCj4gPiA+IAo+ID4gPiA+IFRoZSBWR0EgY29kZSBz aG91bGQgYmUgYWJsZSB0byBoYW5kbGUgZmFpbHVyZXMgbGlrZSB0aGF0IGFuZAo+ID4gPiA+IG5v dCBpbml0aWFsaXplIGl0c2VsZiB3aGVuIHRoZSBoYXJkd2FyZSBpcyBkZWFkIChvciBub24tZXhp c3RlbnQpLgo+ID4gPiAKPiA+ID4gVGhhdCdzIHJpZ2h0LCBpdHMgdGhyb3VnaCBBQ1BJX0ZBRFRf Tk9fVkdBIGFuZCBzaW5jZSBpdHMgcGFydCBvZiB0aGUgSFZNTGl0ZQo+ID4gPiBkZXNpZ24gZG9j IHdlIHdhbnQgSFZNbGl0ZSBkZXNpZ24gdG8gYWRkcmVzcyBBQ1BJX0ZBRFRfTk9fVkdBIHByb3Bl cmx5LiAgSSd2ZQo+ID4gPiBwYXZlZCB0aGUgd2F5IGZvciB0aGlzIHRvIGJlIGRvbmUgY2xlYW5s eSBhbmQgZWFzaWx5IG5vdywgYnV0IHRoYXQgY29kZSBzaG91bGQKPiA+ID4gYmUgaW4gcGxhY2Ug YmVmb3JlIEhWTUxpdGUgY29kZSBnZXRzIG1lcmdlZC4KPiA+ID4gCj4gPiA+IERvZXMgZG9tVSBm b3Igb2xkIFhlbiBQViBhbHNvIHNldCBBQ1BJX0ZBRFRfTk9fVkdBIGFzIHdlbGwgPyAgU2hvdWxk IGl0ID8KPiA+IAo+ID4gSXQgZG9lcyBub3QuIE5vdCBzdXJlIC0gaXQgc2VlbXMgdG8gaGF2ZSB3 b3JrZWQgZmluZSBmb3IgdGhlIGxhc3QgdGVuCj4gPiB5ZWFycz8KPiAKPiBNYXliZSBIVk1MaXRl IHdpbGwgbmVlZCBpdCBlbmFibGVkIHRoZW4gdG9vLCBqdXN0IGZvciBidWcgcGFyaXR5LgoKPHNo cnVncz4gU3VyZS4KPiAKPiA+ID4gPiA+IFRvIGJlIGNsZWFyIC0tIGRlYWQgY29kZSBjb25jZXJu cyBzdGlsbCBleGlzdCBldmVuIHdpdGhvdXQKPiA+ID4gPiA+IHZpcnR1YWxpemF0aW9uIHNvbHV0 aW9ucywgaXRzIGp1c3QgdGhhdCB3aXRoIHZpcnR1YWxpemF0aW9uCj4gPiA+ID4gPiB0aGlzIHN0 dWZmIGNvbWVzIHVwIG1vcmUgYW5kIHRoZXJlIGhhcyBiZWVuIG5vIHByb2FjdGl2ZQo+ID4gPiA+ ID4gbWVhc3VyZXMgdG8gYWRkcmVzcyB0aGlzLiBUaGUgcXVlc3Rpb24gb2Ygc2VtYW50aWNzIGhl cmUgaXMKPiA+ID4gPiA+IHRvIHNlZSB0byB3aGF0IGV4dGVudCB3ZSBuZWVkIGVhcmxpZXIgYm9v dCBjb2RlIGFubm90YXRpb25zCj4gPiA+ID4gPiB0byBlbnN1cmUgd2UgYWRkcmVzcyBzZW1hbnRp Y3MgcHJvYWN0aXZlbHkuCj4gPiA+ID4gCj4gPiA+ID4gSSB0aGluayB3aGF0IHlvdSBtZWFuIGJ5 IGRlYWQgY29kZSBpcyBhbm90aGVyIHdvcmQgZm9yCj4gPiA+ID4gaGFyZHdhcmUgdGVzdCBjb3Zl cmFnZT8KPiA+ID4gCj4gPiA+IE5vLCBubywgaXRzIHZlcnkgZGlmZmVyZW50IGdpdmVuIHRoYXQg d2l0aCB2aXJ0dWFsaXphdGlvbiB0aGUgc2NvcGUgb2YgcG9zc2libGUKPiA+ID4gZGVhZCBjb2Rl IGlzIHNpZ25pZmljYW50IGFuZCBhdCBydW4gdGltZSB5b3UgYXJlIGNlcnRhaW4gYSBodWdlIHBv cnRpb24gb2YgY29kZQo+ID4gPiBzaG91bGQgKm5ldmVyIGV2ZXIqIHJ1bi4gU28gZm9yIGluc3Rh bmNlIHdlIGtub3cgb25jZSB3ZSBib290IGJhcmUgbWV0YWwgbm9uZQo+ID4gPiBvZiB0aGUgWGVu IHN0dWZmIHNob3VsZCBldmVyIHJ1biwgbGlrZXdpc2Ugb24gWGVuIGRvbTAgd2Uga25vdyBub25l IG9mIHRoZSBLVk0KPiA+ID4gLyBiYXJlLW1ldGFsIG9ubHkgc3R1ZmYgc2hvdWxkIG5ldmVyIHJ1 biwgd2hlbiBvbiBYZW4gZG9tVSwgbm9uZSBvZiB0aGUgWGVuCj4gPiAKPiA+IFdoYXQgaXMgdGhp cyAnYmFyZSBtZXRhbCBvbmx5IHN0dWZmJyB5b3Ugc3BlYWsgb2Y/IE9uIFhlbiBkb20wIG1vc3Qg b2YKPiA+IHRoZSBiYXJlbWV0YWwgY29kZSBpcyBydW5uaW5nLgo+IAo+IEEgbG90LCBub3QgYWxs LiBJbiB0aGUgcGFzdCBmb2xrcyBhZGRlZCBzdHVicyAodXNlZCB0byBiZSBwYXJhdmlydF9lbmFi bGVkKCkKPiBjaGVja3MpIHRvIHNvbWUgY29kZSwgYnV0IHdlIGFyZSBzaW1wbHkgbm90IHN1cmUg b2Ygb3RoZXIgcG9zc2libGUgY29uZmxpY3RzLgo+IFRoaXMgaXMgYW4ga25vd24gdW5rbm93biBp ZiB5b3Ugd2lsbC4KPiAKPiA+IEluIGZhY3QgdGhhdCBpcyBob3cgdGhlIGRldmljZSBkcml2ZXJz IHdvcmsuIE9yIGFyZSB5b3UgdGFsa2luZyBhYm91dCBsb3cKPiA+IGxldmVsIGJhcmVtZXRhbCBj b2RlPyBJZiBzbywgdGhlbiBQVkgvSFZNTGl0ZSBkb2VzIHRoYXQgLSBpdCBza2lwcyBwdm9wcyBz bwo+ID4gdGhhdCBpdCBjYW4gcnVuIHRoaXMgJ2xvdy1sZXZlbCBiYXJlbWV0YWwgY29kZScKPiAK PiBBcmUgeW91IHRlbGxpbmcgbWUgdGhhdCBIVk1MaXRlIGhhcyBubyBkZWFkIGNvZGUgaXNzdWVz ID8KCllvdSBzYWlkIGVhcmxpZXIgdGhhdCBiYXJlbWV0YWwgaGFzIGRlYWQgY29kZSBpc3N1ZS4g VGhlbiBieSBleHRlbnNpb25zCl9hbnlfIGV4ZWN1dGlvbiBwYXRoIGhhcyBkZWFkIGNvZGUgaXNz dWVzLgoKLi5zbmlwLi4KPiA+ID4gPiA+IFRoZXJlIGlzIHRoYXQgYW5kIGFzIG90aGVycyBoYXZl IHBvaW50ZWQgb3V0IGhvdyBjZXJ0YWluIGd1ZXN0cyB0eXBlcwo+ID4gPiA+ID4gYXJlIGFzc3Vt ZWQgdG8gbm90IGhhdmUgY2VydGFpbiBwZXJpcGhlcmFscywgYW5kIHdlIGhhdmUgbm8gaWRlYQo+ ID4gPiA+ID4gdG8gZW5zdXJlIGNlcnRhaW4gb2xkIGxlZ2FjeSBjb2RlIG1heSBub3QgZXZlciBy dW4gb3IgYmUgYWNjZXNzZWQKPiA+ID4gPiA+IGJ5IGRyaXZlcnMuCj4gPiA+ID4gCj4gPiA+ID4g T2ssIGJ1dCB0aGF0IGlzIG5vdCBhdCBjb2RlIHNldHVwLiBUaGF0IGlzIGxhdGVyIC0gd2hlbiBk ZXZpY2UKPiA+ID4gPiBkcml2ZXJzIGFyZSBpbml0aWFsaXplZC4gVGhpcyBubyBkaWZmZXJlbnQg dGhhbiBib290aW5nIG9uCj4gPiA+ID4gc29tZSBoYXJkd2FyZSB3aXRoIG1pc3NpbmcgZnVuY3Rp b25hbGl0eS4gQUNQSSwgUENJIGFuZCBQblAKPiA+ID4gPiBQblAgYXJlIHNldCB0aGVyZSB0byBo ZWxwIE9TZXMgZGlzY292ZXIgdGhpcy4KPiA+ID4gCj4gPiA+IFRvIGEgY2VydGFpbiBleHRlbnQg dGhpcyBpcyB0cnVlLCBidXQgdGhlcmUgbWF5IHRoaW5ncyB3aGljaCBhcmUgbWlzc2luZyBzdGls bC4KPiA+IAo+ID4gTGlrZT8KPiAKPiBUaGF0J3MgdGhlIHRoaW5nLCBJIGhhZCBhIGxpc3Qgb2Yg dGhpbmcgdG8gbG9vayBvdXQgZm9yIGFuZCB0aGVuIHRoaW5ncwo+IEkgcmFuIGFjcm9zcyBvdmVy IGNvZGUgaW5zcGVjdGlvbi4gV2UgbmVlZCBtb3JlIHdvcmsgdG8gYmUgc3VyZSB3ZSdyZQo+IHJl YWxseSB3ZWxsIGNvdmVyZWQuCj4gCj4gQXJlIHlvdSAqc3VyZSogd2UgaGF2ZSBubyBkZWFkIGNv ZGUgY29uY2VybnMgd2l0aCBIVk1MaXRlID8KPiBJZiB0aGVyZSBhcmUgZGVhZCBjb2RlIGNvbmNl cm5zIGFyZSB5b3Ugc3VyZSB0aGVyZSBtaWdodCBub3QKPiBiZSBkaWZmZXJlbmNlcyBiZXR3ZWVu IEtWTSBhbmQgSFZNTGl0ZSA/IFNob3VsZCBjcHVpZCBiZSB1c2VkIHRvCj4gYWRkcmVzcyBkaWZm ZXJlbmNlcyA/IFdpbGwgdGhhdCBlbmFibGUgdG8gZGlzdGluZ3Vpc2ggYmV0d2Vlbgo+IGh5YnJp ZCB2ZXJzaW9ucyBvZiBIVk1MaXRlID8gQXJlIHdlIHN1cmUgPwoKSFZNTGl0ZSBDUFUgc2VtYW50 aWNzIHdpbGwgYmUgdGhlIHNhbWUgYXMgd2hhdCBhIGJhcmVtZXRhbCBDUFUKc2VtYW50aWNzIGFy ZS4KClBsYXRmb3JtIHdpc2UgaXQgd2lsbCBiZSBkaWZmZXJlbnQgLSBhcyBpbiwgaW5zdGVhZCBv ZiBzYXkKaGF2aW5nIGEgc3BlYWtlciAodG8gZW11bGF0ZWQgaXQpIG9yIFJUQyBjbG9jayAoYWdh aW4sIGFub3RoZXIKdGhpbmcgdG8gZW11bGF0ZSksIG9yIHNheSBJREUgY29udHJvbGxlciAoYWdh aW4sIGFub3RoZXIKdGhpbmcgdG8gZW11bGF0ZSksIG9yIFJlYWx0ZWsgbmV0d29yayBjYXJkIChh Z2FpbiwgYW5vdGhlcgp0aGluZyB0byBlbXVsYXRlKSAtIGl0IGhhcyBub25lIG9mIHRob3NlLgoK W0tlZXAgaW4gbWluZCAnYW5vdGhlciB0aGluZyB0byBlbXVsYXRlJywgbWVhbnMgJ2Fub3RoZXIK QCRAKCkgdGhpbmcgaW4gUUVNVSB0aGF0IGNvdWxkIGJlIGEgc2VjdXJpdHkgYnVnJ10KClNvIGl0 IGRpZmZlcnMgZnJvbSBhbiBjb25zdW1lciB4ODYgcGxhdGZvcm0gaW4gdGhhdCBpdCBoYXMKbm9u ZSBvZiB0aGUgJ2xlZ2FjeScgc3R1ZmYuIEFuZCBpdCByZXF1aXJlcyBQViBkcml2ZXJzIHRvCmZ1 bmN0aW9uLiBBbmQgc2luY2UgaXQgcmVxdWlyZXMgUFYgZHJpdmVycyB0byBmdW5jdGlvbgpvbmx5 IE9TZXMgdGhhdCBoYXZlIHRob3NlIGNhbiB1c2UgdGhpcyBtb2RlLgo+IAo+ID4gPiBXZSByZWFs bHkgaGF2ZSBubyBpZGVhIHdoYXQgdGhlIGZ1bGwgbGlzdCBvZiB0aG9zZSB0aGluZ3MgYXJlLgo+ ID4gCj4gPiBPaywgaXQgc291bmRzIGxpa2UgeW91IGhhdmUgc29tZSBob21ld29yay4KPiAKPiBX ZSBhbGwgZG8uCj4gCj4gPiA+IEl0IG1heSBiZSB0aGF0IHRoaW5ncyBtYXkgaGF2ZSBiZWVuIHJ1 bm5pbmcgZm9yIGFnZXMgd2l0aG91dCBub3RpY2Ugb2YgYW4gaXNzdWUKPiA+ID4gb3IgdGhhdCBv bmx5IHVuZGVyIGNlcnRhaW4gc2l0dWF0aW9ucyB3aWxsIGNlcnRhaW4gaXNzdWVzIG9yIGJ1Z3Mg dHJpZ2dlciBhCj4gPiA+IGZhaWx1cmUuIEZvciBpbnN0YW5jZSwganVzdCB5ZXN0ZXJkYXkgSSB3 YXMgQ2MnZCBvbiBhIGJyYW5kLXNwYW5raW5nIG5ldyBsZWdhY3kKPiA+ID4gY29uZmxpY3QgWzBd LCBjYXVzZWQgYnkgdXBzdHJlYW0gY29tbWl0IDhjMDU4YjBiOWMzNGQ4YyAoIng4Ni9pcnE6IFBy b2JlIGZvcgo+ID4gPiBQSUMgcHJlc2VuY2UgYmVmb3JlIGFsbG9jYXRpbmcgZGVzY3MgZm9yIGxl Z2FjeSBJUlFzIikgbWVyZ2VkIG9uIHY0LjQgd2hlcmUKPiA+ID4gc29tZSBuZXcgY29kZSB1c2Vk IG5yX2xlZ2FjeV9pcnFzKCkgLS0gb25lIHByb3Bvc2VkIHNvbHV0aW9uIHNlZW1zIHRvIGJlIHRo YXQKPiA+ID4gZm9yIFhlbiBjb2RlIE5SX0lSUVNfTEVHQUNZIHNob3VsZCBiZSB1c2VkIGluc3Rl YWQgaXMgYXMgaXQgbGFja3MgUENJIFsxXSBhbmQKPiA+ID4gYW5vdGhlciB3YXMgdG8gcGVnIHRo ZSBsZWdhY3kgcmVxdWlyZW1lbnRzIGFzIGEgcXVpcmsgb24gdGhlIG5ldyB4ODYgcGxhdGZvcm0K PiA+ID4gbGVnYWN5IHF1aXJrIHN0dWZmIFsyXS4gQXJlIG90aGVyIHVzZXMgb2YgbnJfbGVnYWN5 X2lycXMoKSBjb3JyZWN0ID8gQXJlCj4gPiA+IHdlIHN1cmUgPwo+ID4gCj4gPiBBbmQgaG93IGlz IHRoaXMgZXhhbXBsZSByZWxhdGVkIHRvICdlYXJseSBib290dXAnIHBhdGg/Cj4gPiAKPiA+IEl0 IGlzIG5vdC4KPiAKPiBGb3IgZWFybHkgYm9vdCBjb2RlIC0tIGl0IGlzIG5vdC4gSFZNTGl0ZSBp cyBub3QgbWVyZ2VkLCBhbmQgUEhWIHdhcyBuZXZlcgo+IGNvbXBsZXRlZC4uIHNvIGhvdyBhcmUg eW91IHN1cmUgd2Ugd29uJ3QgaGF2ZSBhbnkgaXNzdWVzIHRoZXJlID8KCklmIHdlIGRpZCBub3Qg aGF2ZSBpc3N1ZXMgd2Ugd291bGQgYmUgb3V0IG9mIGpvYnMuCgpCdXQgdGhpcyBpcyBhIHNlcGVy YXRlIHRvcGljIC0gaXQgaXMgYW4gaXNzdWUgYWJvdXQgZGV2aWNlIGRyaXZlcnMgYW5kCnRoZSBh c3N1bXB0aW9ucyB0aGV5IGhhdmUuIEFuZCB0aG9zZSBhc3N1bXB0aW9ucyBhcmUgbm90IGFsd2F5 cwp0cnVlIChldmVuIHdpdGggbm9ybWFsIGhhcmR3YXJlKS4KCj4gCj4gPiBJdCBpcyBpbiBmYWN0 IHJlbGF0ZWQgdG8gUFYgY29kZXBhdGhzIC0gd2hpY2ggUFZIL0hWTUxpdGUgYW5kIEhWTSBndWVz dHMKPiA+IGRvIG5vdCBleGVyY2lzZS4KPiAKPiBBZ3JlZWQuCj4gCj4gPiA+IFswXSBodHRwOi8v bGttbC5rZXJuZWwub3JnL3IvNTcwRjkwREYuMTAyMDUwOEBvcmFjbGUuY29tCj4gPiA+IFsxXSBo dHRwczovL2xrbWwub3JnL2xrbWwvMjAxNi80LzE0LzUzMgo+ID4gPiBbMl0gaHR0cDovL2xrbWwu a2VybmVsLm9yZy9yLzE0NjA1OTIyODYtMzAwLTEtZ2l0LXNlbmQtZW1haWwtbWNncm9mQGtlcm5l bC5vcmcKPiA+ID4gCj4gPiA+ID4gPiA+ID4gSG93IHdlIGFkZHJlc3Mgc2VtYW50aWNzIHRoZW4g aXMgKnZlcnkqIGltcG9ydGFudCB0byBtZS4KPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+IFdoaWNo IHNlbWFudGljcz8gSG93IHRoZSBDUFUgaXMgZ29pbmcgdG8gYmUgYXQgc3RhcnR1cF9YID8gT3IK PiA+ID4gPiA+ID4gaG93IHRoZSBDUFUgaXMgZ29pbmcgdG8gYmUgd2hlbiBFRkkgZmlybXdhcmUg aW52b2tlcyB0aGUgRUZJIHN0dWI/Cj4gPiA+ID4gPiA+IE9yIHdoZW4gR1JVQjIgbG9hZHMgTGlu dXg/Cj4gPiA+ID4gPiAKPiA+ID4gPiA+IFdoYXQgaHlwZXJ2aXNvciBraWNrZWQgbWUgYW5kIHdo YXQgZ3Vlc3QgdHlwZSBJIGFtLgo+ID4gPiA+IAo+ID4gPiA+IGNwdWlkIHNvZnR3YXJlIGZsYWdz IGhhdmUgdGhhdCAtIGFuZCB0aGF0IHNlbWFudGljcyBoYXMgYmVlbiAKPiA+ID4gPiB0aGVyZSBm b3IgZW9ucy4KPiA+ID4gCj4gPiA+IFdlIGNhbm5vdCB1c2UgY3B1aWQgZWFybHkgaW4gYXNtIGNv ZGUsIEknbSBsb29raW5nIGZvciBzb21ldGhpbmcgd2UKPiA+IAo+ID4gPyEgV2h5IT8KPiAKPiBX aGF0IGV4aXN0aW5nIGNvZGUgdXNlcyBpdD8gSWYgdGhlcmUgaXMgbm90aGluZyB5b3UgYXJlIHN0 aWxsIGNlcnRhaW4KPiBpdCBzaG91bGQgd29yayA/IFdvdWxkIHRoYXQgd29yayBmb3Igb2xkIFBW IGd1ZXN0IGFzIHdlbGwgQlRXID8KClllYWguIEZvciBIVk0vSFZNTGl0ZSBpdCB0cmFwcyB0byB0 aGUgaHlwZXJ2aXNvci4KCkZvciBvbGQgUFYgZ3Vlc3RzIGl0IGlzIHVud2lzZSB0byB1c2UgaXQg YXMgaXQgZ29lcyBzdHJhaWdodCB0bwp0aGUgaGFyZHdhcmUgKGFzIFBWIGd1ZXN0cyBydW4gaW4g cmluZzMgLSB0aGV5IGFyZSBjb25zaWRlcmVkCid1c2Vyc3BhY2UnIGFuZCB0aGUgSW50ZWwgbm9y IEFNRCBkbyBub3QgdHJhcCBvbiAnY3B1aWQnIGluIHJpbmczCi11bmxlc3MgIHlvdSBydW4gaW4g YW4gVk1YIGNvbnRhaW5lcikuCj4gCj4gPiA+IGNhbiBldmVuIHVzZSBvbiBhc20gZWFybHkgaW4g Ym9vdCBjb2RlLCBvbiB4ODYgdGhlIGJlc3Qgb3B0aW9uIHdlCj4gPiA+IGhhdmUgaXMgdGhlIGJv b3RfcGFyYW1zLCBidXQgSSd2ZSBldmVuIGhhdmUgaGFkIGlzc3VlcyB3aXRoIHRoYXQKPiA+ID4g ZWFybHkgaW4gY29kZSwgYXMgSSBjYW4gb25seSBhY2Nlc3MgaXQgYWZ0ZXIgbG9hZF9pZHQoKSB3 aGVyZSBJCj4gPiA+IGRlc2NyaWJlZCBteSBlZmZvcnQgdG8gdW5pZnkgWGVuIFBWIGFuZCB4ODZf NjQgaW5pdCBwYXRocyBbM10uCj4gPiAKPiA+IFdlbGwsIFhlbiBQViBza2lwcyB4ODZfNjRfc3Rh cnRfa2VybmVsLi4KPiAKPiBZZXMsIGFuZCBpbiBkb2luZyBzbyBvZnRlbiB0aW1lcyBwZW9wbGUg c2tpcCBhZGRpbmcgWGVuIFBWIHNwZWNpZmljCj4gY29kZSwgYXMgd2FzIHRoZSBjYXNlIHdpdGgg S2FzYW4uCgpSaWdodC4gVGhhdCBpcyBhbiBleGlzdGluZyBwcm9ibGVtIFhlbiBQViBjb2RlIGhh cy4KCj4gCj4gPiA+IFszXSBodHRwOi8vbGttbC5rZXJuZWwub3JnL3IvQ0FCPU5FNlZUQ1JDYXpj TnBDZEo3cE4xZUQzPXhfZmNHT2RIMzdNelZweGtLRU41ZXN3QG1haWwuZ21haWwuY29tCj4gPiA+ IAo+ID4gPiA+ID4gTGV0IG1lIGVsYWJvcmF0ZSBtb3JlIGJlbG93Lgo+ID4gPiA+ID4gCj4gPiA+ ID4gPiA+IFRoYXQgKHRob3NlIGJvb3Rsb2FkZXJzKSBpcyBjbGVhcmx5IGRlZmluZWQuIFRoZSBV UkwgSSBwcm92aWRlZAo+ID4gPiA+ID4gPiBtZW50aW9ucyB0aGUgSFZNTGl0ZSBvbmUuIFRoZSBE b2N1bWVudGF0aW9uL3g4Ni9ib290LmMgbWVudGlvbnMKPiA+ID4gPiA+ID4gd2hhdCB0aGUgc2Vt YW50aWNzIGFyZSB0byBleHBlY3RlZCB3aGVuIHByb3ZpZGluZyBhbiBib290c3RyYXAKPiA+ID4g PiA+ID4gKHdoaWNoIGlzIHdoYXQgSFZNTGl0ZWwgc3R1YiBjb2RlIGluIExpbnV4IHdvdWxkIHdy aXRlIGFnYWluc3QgLQo+ID4gPiA+ID4gPiBhbmQgd2hhdCBFRkkgc3R1YiBjb2RlIGhhZCBiZWVu IHdyaXR0ZW4gYWdhaW5zdCB0b28pLgo+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+ID4gPiBJ J2xsIGVsYWJvcmF0ZSBvbiB0aGlzIGJ1dCBmaXJzdCBsZXQncyBjbGFyaWZ5IHdoeSBhIG5ldyBl bnRyeSBpcyB1c2VkIGZvcgo+ID4gPiA+ID4gPiA+ID4gPiBIVk1saXRlIHRvIHN0YXJ0IG9mIHdp dGg6Cj4gPiA+ID4gPiA+ID4gPiA+IAo+ID4gPiA+ID4gPiA+ID4gPiAgIDEpIFhlbiBBQkkgaGFz IGhpc3RvcmljYWxseSBub3Qgd2FudGVkIHRvIHNldCB1cCB0aGUgYm9vdCBwYXJhbXMgZm9yIExp bnV4Cj4gPiA+ID4gPiA+ID4gPiA+ICAgICAgZ3Vlc3RzLCBpbnN0ZWFkIGl0IGluc2lzdHMgb24g bGV0dGluZyB0aGUgTGludXgga2VybmVsIFhlbiBib290IHN0dWJzIGZpbGwKPiA+ID4gPiA+ID4g PiA+ID4gICAgICB0aGF0IG91dCBmb3IgaXQuIFRoaXMgc3RpY2tpbmcgcG9pbnQgbWVhbnMgaXQg aGFzIGltcGxpY2F0ZWQgYSBib290IHN0dWIuCj4gPiA+ID4gPiA+ID4gPiAKPiA+ID4gPiA+ID4g PiA+IAo+ID4gPiA+ID4gPiA+ID4gV2hpY2ggaXMgYi9jIGl0IGhhcyB0byBiZSBPUyBhZ25vc3Rp Yy4gSXQgaGFzIG5vdGhpbmcgdG8gZG8gJ25vdCB3YW50aW5nJy4KPiA+ID4gPiA+ID4gPiAKPiA+ ID4gPiA+ID4gPiBJdCBjYW4gc3RpbGwgYmUgT1MgYWdub3N0aWMgYW5kIHBhc3Mgb24gdHlwZSBh bmQgY3VzdG9tIGRhdGEgcG9pbnRlci4KPiA+ID4gPiA+ID4gCj4gPiA+ID4gPiA+IFN1cmUuIEl0 IGhhcyB0aGF0IChpdCBNVVNUIG90aGVyd2lzZSBob3cgZWxzZSB3b3VsZCB5b3UgcGFzcyBkYXRh KS4KPiA+ID4gPiA+ID4gSXQgaXMgZG9jdW1lbnRlZCBhcyB3ZWxsIGh0dHA6Ly94ZW5iaXRzLnhl bi5vcmcvZG9jcy91bnN0YWJsZS9oeXBlcmNhbGwveDg2XzY0L2luY2x1ZGUscHVibGljLHhlbi5o Lmh0bWwjaW5jb250ZW50c19zdGFydG9mZGF5Cj4gPiA+ID4gPiA+IChzZWUgIiBTdGFydCBvZiBk YXkgc3RydWN0dXJlIHBhc3NlZCB0byBQVkggZ3Vlc3RzIGluICVlYnguIikKPiA+ID4gPiA+IAo+ ID4gPiA+ID4gVGhlIGRlc2lnbiBkb2MgYmVncyBmb3IgYSBjdXN0b20gT1MgZW50cnkgcG9pbnQg dGhvdWdoLgo+ID4gPiA+IAo+ID4gPiA+IFRoYXQgaXMgd2hhdCB0aGUgRUxGIE5vdGUgaGFzLgo+ ID4gPiAKPiA+ID4gUmlnaHQsIGJ1dCBJJ20gc2F5aW5nIHRoYXQgaXRzIHJhdGhlciBzaWxseSB0 byBiZSBhZGRpbmcgZW50cnkgcG9pbnRzIGlmCj4gPiA+IGFsbCB3ZSB3YW50IHRoZSBjb2RlIHRv IGRvIGlzIGNvcHkgdGhlIGJvb3QgcGFyYW1zIGZvciB1cy4gVGhlIGRlc2lnbgo+ID4gPiBkb2Mg cmVxdWlyZXMgYSBuZXcgZW50cnksIGFuZCBsaWtld2lzZSB5b3UnZCBuZWVkIHlldC1hbm90aGVy LWVudHJ5IGlmCj4gPiA+IEhWTUxpdGUgaXMgdGhyb3duIG91dCB0aGUgd2luZG93IGFuZCBjb21l IGJhY2sgNSB5ZWFycyBsYXRlciBhZnRlciBuZXcKPiA+ID4gaGFyZHdhcmUgc29sdXRpb25zIGFy ZSBpbiBwbGFjZSBhbmQgbmVlZCB0byByZWRlc2lnbiBIVk1MaXRlLiBLaW5kIG9mCj4gPiAKPiA+ IFdoeSB3b3VsZCB5b3UgbmVlZCB0byByZWRlc2lnbiBIVk1MaXRlIGJhc2VkIG9uIGhhcmR3YXJl IHNvbHV0aW9ucz8KPiAKPiBUaGF0J3Mgd2hhdCBoYXBwZW5lZCB0byBYZW4gUFYsIHJpZ2h0ID8g QXJlIHdlIHN1cmUgNSB5ZWFycyBmcm9tIG5vdyB3ZSB3b24ndAo+IGhhdmUgYW55IG5ldyBoYXJk d2FyZSB2aXJ0dWFsaXphdGlvbiBmZWF0dXJlcyB0aGF0IHdpbGwganVzdCBvYnNvbGV0ZSBIVk1M aXRlPwoKVGhlcmUgd2VyZSBubyBoYXJkd2FyZSB2aXJ0dWFsaXphdGlvbiB3aGVuIFhlbiBQViBj YW1lIGFib3V0LgoKSWYgdGhlcmUgaXMgaGFyZHdhcmUgdmlydHVhbGl6YXRpb24gdGhhdCBvYnNv bGV0ZXMgSFZNTGl0ZSB0aGF0IG1lYW5zCml0IHdvdWxkIGFsc28gb2Jzb2xldGUgS1ZNIGFuZCBI Vk0gbW9kZSAtIGFzIEhWTUxpdGUgcnVucyBpbiBhbiBWTVgKY29udGFpbmVyIC0gdGhlIHNhbWUg dHlwZSB0aGF0IEtWTSBhbmQgWGVuIEhWTSBndWVzdHMgcnVuIGluLgoKPiAKPiA+IFRoZSBlbnRy YWNlIHBvaW50IGFuZCB0aGUgQ1BVIHN0YXRlIGFyZSBwcmV0dHkgd2VsbCBrbm93biAtIGl0IGlz IGFraW4KPiA+IHRvIHdoYXQgR1JVQjIgYm9vdGxvYWRlciBwYXRoIGlzIChwcm90ZWN0ZWQgbW9k ZSkuCj4gPiA+IHdoZXJlIHdlIGFyZSB3aXRoIFBWSCB0b2RheS4gTGlrZXdpc2UgaWYgb3RoZXIg cGFyYXZpcnR1YWxpemF0aW9uCj4gPiA+IGRldmVsb3BlcnMgd2FudCB0byBzdXBwb3J0IExpbnV4 IGFuZCB3YW50IHRvIGNvcHkgeW91ciBzdHJhdGVneSB0aGV5J2QKPiA+ID4gYWRkIHlldC1hbm90 aGVyLWVudHJ5LXBvaW50IGFzIHdlbGwuCj4gPiA+IAo+ID4gPiBUaGlzIGlzIGR1bWIuCj4gPiAK PiA+IFlvdSBzYXlpbmcgdGhlIEVGSSBlbnRyeSBwb2ludCBpcyBkdW1iPyBUaGF0IGluc3RlYWQg dGhlIEVGSQo+ID4gZmlybXdhcmUgc2hvdWxkIHVuZGVyc3RhbmQgTGludXggYm9vdHBhcmFtcyBh bmQgYm9vdGVkIHRoYXQ/Cj4gCj4gRUZJIGlzIGEgc3RhbmRhcmQuIFhlbiBpcyBub3QuIEFuZCBz aW5jZSB3ZSBhcmUgbm90IHRhbGtpbmcgYWJvdXQgbGVnYWN5CgpBbmQgaXMgYSBzdGFuZGFyZCBz b21ldGhpbmcgdGhhdCBoYXMgdG8gY29tZSBvdXQgb2YgYSBjb21taXR0ZWU/CgpJZiBzbywgdGhl biBMaW51eCBib290cGFyYW1zIGlzIG5vdCBhIHN0YW5kYXJkLiBOb3IgaXMgTElMTyBib290dXAK cGF0aC4KCj4gaGFyZHdhcmUgaW4gdGhlIGZ1dHVyZSwgRUZJIHNlZW1zIGxpa2UgYSBzZW5zaWJs ZSBvcHRpb24gdG8gY29uc2lkZXIgZm9yIGFuCj4gZW50cnkgcG9pbnQuIFNwZWNpYWxseSBnaXZl biB0aGF0IGl0IG1heSBtZWFuIHRoYXQgd2UgY2FuIHVsdGltYXRlbHkgYWxzbyBoZWxwCj4gdW5p ZnkgbW9yZSBlbnRyeSBwb2ludHMgb24gTGludXggaW4gZ2VuZXJhbC4gSSdkIHByZWZlciB0byBj b25zaWRlciB1c2luZwoKPGNob2tlcz4KSSBjYW4ganVzdCBzZWUgdGhhdC4gT24gbm9uLUVGSSBo YXJkd2FyZSBHUlVCMi9TWVNMSU5VWCB3b3VsZCB1c2UgdGhlIEVGSSBlbnRyeQpwb2ludCBhbmQg Y3JlYXRlIGFuIGZha2UgZmlybXdhcmUuCj4gRUZJIGNvbmZpZ3VyYXRpb24gdGFibGVzIGluc3Rl YWQgb2YgZXh0ZW5kaW5nIHRoZSB4ODYgYm9vdCBwcm90b2NvbC4KCldoYXQgaXMgdGhhdD8gQXJl IHlvdSB0YWxraW5nIGFib3V0IEVGSSBydW50aW1lIHNlcnZpY2VzPyBUYWtlIGEgbG9vawphdCB0 aGUgRUZJIHNwZWMgYW5kIHNlZSB3aGF0IHlvdSBoYXZlIHRvIGltcGxlbWVudCB0byBlbXVsYXRl IHRoaXMuCj4gCj4gPiA+ID4gPiBJZiB3ZSBoYWQgYSBzaW5nbGUgJ3R5cGUnIGFuZCAnY3VzdG9t IGRhdGEnIHBhc3NlZCB0byB0aGUga2VybmVsIHRoYXQKPiA+ID4gPiA+IHNob3VsZCBzdWZmaWNl IGZvciB0aGUgZGVmYXVsdCBMaW51eCBlbnRyeSBwb2ludCB0byBqdXN0IHBpdm90IG9mZgo+ID4g PiA+ID4gb2YgdGhhdCBhbmQgZG8gd2hhdCBpdCBuZWVkcyB3aXRob3V0IG1vcmUgZW50cnkgcG9p bnRzLiBPbmNlLgo+ID4gPiA+IAo+ID4gPiA+IEFuZCB3aGF0IGFib3V0IHJhbWRpc2s/IFdoYXQg YWJvdXQgbXVsdGlwbGUgcmFtZGlza3M/Cj4gPiA+ID4gV2hhdCBhYm91dCBjb21tYW5kIGxpbmU/ IEFsbCBvZiB0aGF0IGlzIHdoYXQgYm9vdHBhcmFtcwo+ID4gPiA+IHRyaWVzIHRvIHVuaWZ5IG9u IExpbnV4LiBCdXQgJ2Jvb3RwYXJhbXMnIGlzIHVuaXF1ZSB0byBMaW51eCwKPiA+ID4gPiBpdCBk b2VzIG5vdCBleGlzdCBvbiBGcmVlQlNELiBIZW5jZSBzb21lIHN0dWIgY29kZSB0byB0cmFuc3Bs YW50Cj4gPiA+ID4gT1MtYWdub3N0aWMgc2ltcGxlIGRhdGEgdG8gT1Mtc3BlY2lmaWMgaXMgbmVj Y2Vzc2FyeS4KPiA+ID4gCj4gPiA+IElmIHdlIGhhZCBhIFhlbiBBQkkgb3B0aW9uIHdoZXJlICph bGwqIHRoYXQgSSdtIGFza2luZyBpcyB5b3UgcGFzcwo+ID4gPiBmaXJzdDoKPiA+ID4gCj4gPiA+ ICAgYSkgaHlwZXJ2aXNvciB0eXBlCj4gPiAKPiA+IFdoeSBjYW4ndCB5b3UgdXNlIGNwdWlkLgo+ IAo+IEknbGwgZXZhbHVhdGUgdGhhdC4KPiAKPiA+ID4gICBiKSBjdXN0b20gZGF0YSBwb2ludGVy Cj4gPiAKPiA+IFdoYXQgaXMgdGhpcyBjdXN0b20gZGF0YSBwb2ludGVyIHlvdSBzcGVhayBvZj8K PiAKPiBGb3IgWGVuIHRoaXMgaXMgdGhlIGVuX3N0YXJ0X2luZm8sIHRoZSBzdHJ1Y3R1cmUgdGhh dCBYZW4gc3R1ZmZzIGluCj4gYSBjb3B5IG9mIGl0cyB2ZXJzaW9uIG9mIHdoYXQgd2UgbmVlZCB0 byBmaWxsIHRoZSBib290X3BhcmFtcy4KCk9rLCBidXQgdGhhdCBpcyB3aGF0IHdlIGRvIGluIHNv bWUgd2F5IHByb3ZpZGUuCgpJIGFtIGxvc3QgaGVyZS4gWW91IHNlZW0gdG8gc2F5aW5nIHlvdSB3 YW50IHNvbWV0aGluZyB0aGF0IGlzCmFscmVhZHkgdGhlcmU/Cgo+IAo+ID4gPiBXZSdkIGJlIGFi bGUgdG8gYXZvaWQgYWRkaW5nICphbnkqIGVudHJ5IHBvaW50IGFuZCBqdXN0IGFkZHJlc3MKPiA+ ID4gdGhlIHJlcXVpcmVtZW50cyBhcyBJIG5vdGVkIHdpdGggcHJlIC8gcG9zdCBzdHVicyBmb3Ig dGhlIHR5cGUuCj4gPiAKPiA+IEJ1dCB5b3UgbmVlZCBzb21lIGVudHJ5IHBvaW50IHRvIGNhbGwg aW50byBMaW51eC4gQXJlIHlvdQo+ID4gc3VnZ2VzdGluZyB0byB1c2UgdGhlIGV4aXN0aW5nIG9u ZXM/IE5vLCB0aGUgZXhpc3Rpbmcgb25lCj4gPiB3b3VsZG4ndCB1bmRlcnN0YW5kIHRoaXMuCj4g Cj4gSWYgd2UgdXNlZCB0aGUgYm9vdF9wYXJtcywgeWVzIGl0IHdvdWxkIGJlIHBvc3NpYmxlLgoK Li4uT1MgYWdub3N0aWMuLi4gdGhleSBhcmUgbm90LgoKPiAKPiA+ID4gVGhpcyB3b3VsZCByZXF1 aXJlIGFuIHg4NiBib290IHByb3RvY29sIGJ1bXAsIGJ1dCBhbGwgdGhlIGlzc3Vlcwo+ID4gPiBj cmVlcGluZyB1cCByYW5kb21seSBJIHRoaW5rIHRoYXQncyB3b3J0aCBwdXR0aW5nIG9uIHRoZSB0 YWJsZSBub3cuCj4gPiAKPiA+IEFhYWFoLCBzbyB5b3UgYXJlIHNheWluZyBleHBhbmQgdGhlIGJv b3RwYXJhbXMuIEluIG90aGVyIHdvcmRzCj4gPiBtYWtlIFhlbiBBQkkgY2FsbCBpbnRvIExpbnV4 IHVzaW5nIHRoZSBib290cGFyYW1zIHN0cnVjdHVyZSwgc2ltaWxhcgo+ID4gdG8gaG93IEdSVUIy IGRvZXMgaXQuCj4gPiAKPiA+IEhvdyBpcyB0aGF0IE9TIGFnbm9zdGljPwo+IAo+IFRoYXQncyBh biBpc3N1ZSwgSSB1bmRlcnN0YW5kLiBFRkkgaXMgT1MgYWdub3N0aWMgdGhvdWdoLgo+IAo+ID4g PiBBbmQgbWF5YmUgd2UgZG9uJ3Qgd2FudCBpdCB0byBiZSBoeXBlcnZpc29yIHNwZWNpZmljLCBw ZXJoYXBzIHRoZXJlIGFyZSBvdGhlcgo+ID4gPiAqbmVlZHMqIGZvciBjdXN0b20gcHJlLXBvc3Qg c3RhcnR1cF8zMigpL3N0YXJ0dXBfNjQoKSBzdHVicy4KPiA+IAo+ID4gTXVsdGlib290Pwo+IAo+ IENhbiB5b3UgZWxhYm9yYXRlPwoKR29vZ2xlIE11bHRpYm9vdCBzcGVjaWZpY2F0aW9uLgo+IAo+ ID4gPiBUbyBhdm9pZCBleHRlbmRpbmcgYm9vdF9wYXJhbXMgZnVydGhlciBJIGZpZ3VyZWQgcGVy aGFwcyB3ZSBjYW4gbG9vawo+ID4gPiBhdCBFRkkgYXMgYW5vdGhlciBvcHRpb24gaW5zdGVhZC4g SWYgd2UgYXJlIGdvaW5nIHRvIGRyb3AgYWxsIGxlZ2FjeQo+ID4gCj4gPiBCdXQgRUZJIHN1cHBv cnQgaXMgX2h1Z2VfLgo+IAo+IEkgZ2V0IHRoZSBzZW5zZSBub3cuIFBlcmhhcHMgd2Ugc2hvdWxk IGV4cGxvcmUgdG8gd2hhdCBleHRlbnQgbm93IHJlYWxseQo+IGF0IHRoZSBIYWNrYXRob24uCgpQ cmludCBvdXQgdGhlIEVGSSBzcGVjIGFuZCBjYXJyeSBpdCBvbiB0aGUgcGxhbmUuIFRoZSBwbGFu ZSB3aWxsIHRpbHQKdG8gb25lIHNpZGUgd2hlbiB0cnlpbmcgdG8gdGFrZSBvZmYuCgo+IAo+ID4g PiBQViBzdXBwb3J0IGZyb20gdGhlIGtlcm5lbCAobm90IHRoZSBoeXBlcnZpc29yKSBhbmQgcmVx dWlyZSBoYXJkd2FyZQo+ID4gPiB2aXJ0dWFsaXphdGlvbiA1IHllYXJzIGZyb20gbm93IG9uIHRo ZSBMaW51eCBrZXJuZWwsIGl0IGRvZXNuJ3Qgc2VlbQo+ID4gPiB0byBtZSBmYXIgZmV0Y2hlZCB0 byBhdCB0aGUgdmVyeSBsZWFzdCBjb25zaWRlciB1c2luZyBhbiBFRkkgZW50cnkKPiA+ID4gaW5z dGVhZCwgc3BlY2lhbGx5IHNpbmNlIGFsbCBpdCBkb2VzIGlzIHNldCBib290IHBhcmFtcyBhbmQg d2UgY2FuCj4gPiA+IG1ha2UgcmUtdXNlIHRoaXMgZm9yIEhWTUxpdGUgdG9vLgo+ID4gCj4gPiBC dXQgdG8gbWFrZSB0aGF0IHdvcmsgeW91IGhhdmUgdG8gZW11bGF0ZSBFRkkgZmlybXdhcmUgaW4g dGhlCj4gPiBoeXBlcnZpc29yLiBJcyB0aGF0IHdvcmsgeW91IGFyZSBzaWduaW5nIHVwIGZvcj8K PiAKPiBJJ2xsIGRvIHdoYXQgaXMgbmVlZGVkLCBhcyBJIGhhdmUgZG9uZSBiZWZvcmUuIElmIEVG SSBpcyBvbiB0aGUgbG9uZwo+IHRlcm0gcm9hZG1hcCBmb3IgQVJNIHBlcmhhcHMgdGhlcmUgYXJl IGEgZmV3IGJpcmRzIHRvIGtub2NrIHdpdGggb25lCj4gc3RvbmUgaGVyZS4gSWYgdGhlcmUgaXMg YWxzbyBpbnRlcmVzdCB0byBzdXBwb3J0IG90aGVyIE9TZXMgdGhyb3VnaAo+IEVGSSBzdGFuZGFy ZCBtZWFucyB0aGlzIGFsc28gc2hvdWxkIGhlbHAgbWFrZSB0aGF0IGVhc2llci4KPiAKPiAgIEx1 aXMKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1k ZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cDovL2xpc3RzLnhl bi5vcmcveGVuLWRldmVsCg==