From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jeff McGee Subject: Re: [RFC] GuC firmware versioning change Date: Fri, 12 Oct 2018 14:46:05 -0700 Message-ID: <20181012214605.GF21521@jeffdesk> References: <20181012202430.GB21521@jeffdesk> <20181012205143.GS10727@intel.com> <20181012213326.GE21521@jeffdesk> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by gabe.freedesktop.org (Postfix) with ESMTPS id 563756E049 for ; Fri, 12 Oct 2018 21:45:20 +0000 (UTC) Content-Disposition: inline In-Reply-To: <20181012213326.GE21521@jeffdesk> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Rodrigo Vivi Cc: intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org T24gRnJpLCBPY3QgMTIsIDIwMTggYXQgMDI6MzM6MjZQTSAtMDcwMCwgSmVmZiBNY0dlZSB3cm90 ZToKPiBPbiBGcmksIE9jdCAxMiwgMjAxOCBhdCAwMTo1MTo0NlBNIC0wNzAwLCBSb2RyaWdvIFZp dmkgd3JvdGU6Cj4gPiBPbiBGcmksIE9jdCAxMiwgMjAxOCBhdCAwMToyNDozMFBNIC0wNzAwLCBK ZWZmIE1jR2VlIHdyb3RlOgo+ID4gPiBUaGUgR3VDIGZpcm13YXJlIHRlYW0gaXMgcHJvcG9zaW5n IGEgY2hhbmdlIHRvIHRoZSBmaXJtd2FyZSB2ZXJzaW9uaW5nIHNjaGVtZS4KPiA+ID4gVGhlIGdv YWwgaXMgdG8gbW9yZSBhY2N1cmF0ZWx5IHRyYWNrIHRoZSBmaXJtd2FyZSBpbnRlcmZhY2UgdG8g aGVscCB1c2Vycwo+ID4gPiBtYW5hZ2UgZGVwZW5kZW5jaWVzIG9uIHRoYXQgaW50ZXJmYWNlLiBU aGUgcHJvcG9zZWQgc2NoZW1lIGlzIGJhc2VkIG9uCj4gPiA+IHNlbXZlci5vcmcgd2l0aCBzb21l IGFkZGl0aW9ucyB0byBoYW5kbGUgYnJhbmNoaW5nLgo+ID4gPiAKPiA+ID4gVGhlIHByb3Bvc2Vk IHZlcnNpb24gbnVtYmVyIHdvdWxkIGhhdmUgNCBmaWVsZHM6IEJBU0UuTUFKT1IuTUlOT1IuUEFU Q0guCj4gPiA+IENvbnRyYXN0IHRoaXMgd2l0aCB0aGUgMiBmaWVsZHMgaW4gdGhlIGN1cnJlbnQg dmVyc2lvbiBudW1iZXI6IE1BSk9SLk1JTk9SLgo+ID4gPiBTaWRlIG5vdGUsIHRoZSBjdXJyZW50 IGZpcm13YXJlIGVuY29kZXMgYSBCUkFOQ0ggYW5kIENMSUVOVCBudW1iZXIgYXMgd2VsbCwgYnV0 Cj4gPiA+IHRoZXkgaGF2ZSBub3QgYmVlbiBuZWVkZWQgYnkgaTkxNS4gU28gYSBmaXJtd2FyZSBy ZWxlYXNlZCB3aXRoIHRoZSBwcm9wb3NlZAo+ID4gPiBzY2hlbWUgd291bGQgYmUgbmFtZWQgPHBs YXRmb3JtPl9ndWNfdmVyPGJhc2U+XzxtYWpvcj5fPG1pbm9yPl88cGF0Y2g+LmJpbgo+ID4gPiAo ZXg6IHNrbF9ndWNfdmVyMV81XzRfNy5iaW4pIGluc3RlYWQgb2YgdGhlIGN1cnJlbnQKPiA+ID4g PHBsYXRmb3JtPl9ndWNfdmVyPG1ham9yPl88bWlub3I+LmJpbiAoZXg6IHNrbF9ndWNfdmVyOV8z My5iaW4pLgo+ID4gPiAKPiA+ID4gVGhlIEJBU0UgbnVtYmVyIGlzIGFuIElEIHRoYXQgaXMgdXNl ZCB0byBpZGVudGlmeSBhIHNldCBvZiByZWxlYXNlcyBpbiB3aGljaAo+ID4gPiB0aGUgTUFKT1Iu TUlOT1IuUEFUQ0ggc2VtYW50aWNzIGFyZSBjb25zaXN0ZW50LiBJbiBvdGhlciB3b3JkcywgdHdv IHJlbGVhc2VzCj4gPiA+IGZyb20gdGhlIHNhbWUgQkFTRSBjYW4gYmUgY29tcGFyZWQgdmlhIHRo ZWlyIE1BSk9SLk1JTk9SLlBBVENIIHRvIGluZmVyIHRoZWlyCj4gPiA+IHJlbGF0aW9uc2hpcCBh cyBkZXNjcmliZWQgYmVsb3cuIFR3byByZWxlYXNlcyBmcm9tIGEgZGlmZmVyZW50IEJBU0UgY2Fu bm90IGJlCj4gPiA+IHJlbGlhYmx5IGNvbXBhcmVkLiBUaGUgQkFTRSBudW1iZXIgZmFjaWxpdGF0 ZXMgYXJiaXRyYXJ5IGJyYW5jaGluZyB3aGljaCBjYW4KPiA+ID4gY3JlYXRlIGR1cGxpY2F0ZSBh bmQvb3IgZGlzY29ubmVjdGVkIE1BSk9SLk1JTk9SLlBBVENIIHZlcnNpb25zLiBUaGlzIHR5cGUg b2YKPiA+ID4gYnJhbmNoaW5nIGlzIGV4cGVjdGVkIHRvIGJlIHJhcmUsIGFuZCBzbyBCQVNFIHdp bGwgcmFyZWx5IGNoYW5nZS4gV2hlbiBhIG5ldwo+ID4gPiBCQVNFIGlzIGNyZWF0ZWQsIHRoZSBN QUpPUi5NSU5PUi5QQVRDSCByZXNldCB0byBzdGFydGluZyB2YWx1ZXMuCj4gPiAKPiA+IENvdWxk IHlvdSBwbGVhc2UgY2xhcmlmeSBhIGJpdCB3aGF0IEJBU0UgbWVhbnM/Cj4gPiBXaGF0IHdvdWxk IGJlIGEgZGlmZmVyZW50IEJBU0U/Cj4gPiAKPiAKPiBUaGUgQkFTRSBudW1iZXIgc3VwcG9ydHMg Z2VuZXJhbCBicmFuY2hpbmcgdGhhdCB3b3VsZCBjYXVzZSB2ZXJzaW9uIG51bWJlcgo+IGNvbmZs aWN0cy4gQnJhbmNoaW5nIGZvciBmaXJtd2FyZSByZWxlYXNlcyBpcyBub3QgZGVzaXJhYmxlLCBi dXQgaXQgaXMgYQo+IHByYWN0aWNhbCByZWFsaXR5LiBUaGVyZWZvcmUgdGhlIHZlcnNpb25pbmcg c2NoZW1lIG11c3QgYWNjb21vZGF0ZSBpdC4gTGV0J3MKPiBzYXkgdGhhdCBhIGhpZ2gtcHJpb3Jp dHkgcmVxdWVzdCBpcyBtYWRlIHRvIHB1dCBzcGVjaWZpYyB1cGRhdGVzIG9uIGFuIG9sZAo+IHJl bGVhc2UgdGhhdCBzYWlkIGN1c3RvbWVyIGlzIGxvY2tlZCBvbi4gVGhvc2UgdXBkYXRlcyBjb3Vs ZCBpbmNsdWRlIGFueSBzb3J0Cj4gb2YgY2hhbmdlIGluY2x1ZGluZyBpbnRlcmZhY2UgY2hhbmdl LiBUaGVuIHdlIGhhdmUgYSBzZXF1ZW5jZSBsaWtlIGJlbG93Ogo+IAo+IHYxLjEuMC4wICAgdjEu MS4wLjEgICB2MS4xLjAuMiAgIHYxLjEuMC4zICAgdjEuMS4xLjAKPiAtLS0tTy0tLS0tLS0tLS1P LS0tLS0tLS0tLU8tLS0tLS0tLS0tTy0tLS0tLS0tLS1PCj4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgXAo+ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcCj4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTy0tLS0tLS0t LS1PCj4gICAgICAgICAgICAgICAgICAgICAgICAgICB2Mi4xLjEuMCAgIHYyLjEuMS4xCj4gCj4g WW91IGNhbiBzZWUgdGhhdCBpZiB3ZSBkb24ndCBoYXZlIGEgQkFTRSBudW1iZXIgdGhhdCBjaGFu Z2VzIGZyb20gMSB0byAyLCB0aGVuCj4gd2UgZW5kIHVwIHdpdGggZHVwbGljYXRlZCB2MS4xLjAg YWxvbmcgdGhlIGRpZmZlcmVudCBicmFuY2hlcyB3aGljaCBhcmUgbm90IHRoZQo+IHNhbWUuIEFz IEkgd3JvdGUsIHRoaXMgc2hvdWxkIGJlIGEgdmVyeSByYXJlIHNjZW5hcmlvLCBidXQgaXQgY2Fu IGhhcHBlbi4gTWF5YmUKPiB1cHN0cmVhbSB3aWxsIGFsd2F5cyBiZSBzdXBwbGllZCB3aXRoIHJl bGVhc2VzIGZyb20gdGhlICJtYWluIiBCQVNFLCBhbmQgeW91Cj4gY2FuIGlnbm9yZSB0aGlzIGZp ZWxkLCBidXQgaXQgbmVlZHMgdG8gYmUgdGhlcmUgZm9yIG90aGVyIGZpcm13YXJlCj4gZGlzdHJp YnV0aW9ucy4KPiAtSmVmZgo+IAoKU29ycnksIEkgbWlzcmVwcmVzZW50ZWQgaG93IHRvIHRoZSBu dW1iZXJzIHdvdWxkIGNoYW5nZSBpbiB0aGUgYWJvdmUgZXhhbXBsZS4KVGhlIGNoYW5nZSBvZiBC QVNFIGZyb20gMSB0byAyIHdvdWxkIHJlc2V0IE1BSk9SLk1JTk9SLlBBVENILiBTbyB0aGUgc2Vx dWVuY2UKc2hvdWxkIGJlIHYxLjEuMC4yIC0+IHYyLjEuMC4wIC0+IHYyLjEuMC4xIGFuZCBzbyBv bi4KCklmIHdlIGRvbid0IGhhdmUgQkFTRSwgdGhlIHB1cmUgc2VtdmVyLm9yZyBzZXF1ZW5jZSB3 b3VsZCBiZToKCiAgdjEuMC4wICAgICB2MS4wLjEgICAgIHYxLjAuMiAgICAgdjEuMC4zICAgICB2 MS4xLjAKLS0tLU8tLS0tLS0tLS0tTy0tLS0tLS0tLS1PLS0tLS0tLS0tLU8tLS0tLS0tLS0tTwog ICAgICAgICAgICAgICAgICAgICAgICAgICBcCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBc CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBPLS0tLS0tLS0tLU8KICAgICAgICAgICAgICAgICAgICAgICAgICAgIHYxLjEuMCAgICAg djEuMS4xCgpBbmQgc28geW91IHNlZSB0aGUgZHVwbGljYXRpb24gb2YgdmVyc2lvbiBudW1iZXIu Ci0gSmVmZgoKPiA+ID4gCj4gPiA+IFRoZSBNQUpPUiBudW1iZXIgY29uZm9ybXMgdG8gdGhlIG1h am9yIGluIHNlbXZlci5vcmcuIEl0IGluY3JlbWVudHMgb24gYQo+ID4gPiBiYWNrd2FyZHMgaW5j b21wYXRpYmxlIGNoYW5nZSBvZiB0aGUgaW50ZXJmYWNlLiBJdCByZXNldHMgdG8gMSBvbiBhIGNo YW5nZSBvZgo+ID4gPiBCQVNFLiBUaGUgTUFKT1IgbnVtYmVyIGJhc2ljYWxseSB3b3JrcyB0aGUg c2FtZSBiZXR3ZWVuIHRoZSBjdXJyZW50IGFuZAo+ID4gPiBwcm9wb3NlZCB2ZXJzaW9uaW5nIHNj aGVtZXMuCj4gPiA+IAo+ID4gPiBUaGUgTUlOT1IgbnVtYmVyIGNvbmZvcm1zIHRvIHRoZSBtaW5v ciBpbiBzZW12ZXIub3JnLiBJdCBpbmNyZW1lbnRzIG9uIGEKPiA+ID4gYmFja3dhcmRzIGNvbXBh dGlibGUgY2hhbmdlIG9mIHRoZSBpbnRlcmZhY2UgKG5ldyBpbnRlcmZhY2VzIHRoYXQgYXJlIG9w dGlvbmFsCj4gPiA+IHRvIHVzZSkuIEl0IHdpbGwgYWxzbyBpbmNyZW1lbnQgb24gc3Vic3RhbnRp YWwgbmV3IGludGVybmFsIGZ1bmN0aW9uYWxpdHkgdGhhdAo+ID4gPiBkb2Vzbid0IGFmZmVjdCB0 aGUgaW50ZXJmYWNlIGJ1dCBzaG91bGQgYmUgY2FsbGVkIG91dCB0byB0aGUgdXNlci4gSXQgcmVz ZXRzIHRvCj4gPiA+IDAgb24gYSBjaGFuZ2Ugb2YgTUFKT1IuIFRoZSBNSU5PUiBudW1iZXIgaW4g dGhlIGN1cnJlbnQgdmVyc2lvbmluZyBzY2hlbWUKPiA+ID4gaW5jcmVtZW50cyBvbiBhbnkgYmFj a3dhcmRzIGNvbXBhdGlibGUgY2hhbmdlLiBUaGUgcHJvcG9zZWQgdmVyc2lvbmluZyBzY2hlbWUK PiA+ID4gYnJlYWtzIHRoaXMgaW50byB0aGUgTUlOT1IgbnVtYmVyIGp1c3QgZGVzY3JpYmVkIGFu ZCB0aGUgUEFUQ0ggbnVtYmVyIGJlbG93Lgo+ID4gPiAKPiA+ID4gVGhlIFBBVENIIG51bWJlciBj b25mb3JtcyB0byB0aGUgcGF0Y2ggaW4gc2VtdmVyLm9yZy4gSXQgaW5jcmVtZW50cyBvbiBhCj4g PiA+IGJhY2t3YXJkcyBjb21wYXRpYmxlIGludGVybmFsIGNoYW5nZSwgdXN1YWxseSBhIGJ1ZyBm aXguIEl0IHJlc2V0cyB0byAwIG9uIGEKPiA+ID4gY2hhbmdlIG9mIE1JTk9SLgo+ID4gCj4gPiBJ IGxpa2UgdGhlIGlkZWEgb2YgTUFKT1IuTUlOT1IuUEFUQ0ggZm9sbG93aW5nIHNlbXZlci5vcmcu Cj4gPiAKPiA+IEkgdGhpbmsgaWYgd2UgcmVtb3ZlIHRoZSBCQVNFIG91dCBvZiBwaWN0dXJlIGFu ZCBqdXN0IHVzZSBzZW12ZXIgY2xlYXIsCj4gPiBidXQgbWF5YmUgaXQgaXMganVzdCBiZWNhdXNl IEkgZGlkbid0IHF1aXRlIHVuZGVyc3RhbmQgQkFTRS4KPiA+IAo+ID4gPiAKPiA+ID4gVGhlIE1B Sk9SLk1JTk9SIGNvbGxlY3RpdmVseSBkZWZpbmUgdGhlIGludGVyZmFjZSB2ZXJzaW9uLiBCZWNh dXNlIHRoZSBNSU5PUgo+ID4gPiBtYXkgYWxzbyBpbmNyZW1lbnQgb24gYSBzdWJzdGFudGlhbCBp bnRlcm5hbCBjaGFuZ2UsIGl0IGRvZXNuJ3QgYWx3YXlzIG1hcmsgYW4KPiA+ID4gaW50ZXJmYWNl IGNoYW5nZSwgZS5nLiA0LjUgYW5kIDQuNiBtYXkgaGF2ZSBpZGVudGljYWwgaW50ZXJmYWNlcy4g QnV0IHRoZQo+ID4gPiBkZXRlcm1pbmF0aW9uIG9mIGludGVyZmFjZSBjb21wYXRpYmlsaXR5IGlz IHVuY2hhbmdlZCwgZS5nLiA0LjYgaXMgYWx3YXlzCj4gPiA+IGJhY2t3YXJkcyBjb21wYXRpYmxl IHdpdGggNC41Lgo+ID4gPiAKPiA+ID4gRWFjaCBNQUpPUi5NSU5PUiBtYXkgY29udGludWUgdG8g cmVjZWl2ZSBpbnRlcm5hbCBmaXhlcyBhbG9uZyBhIGJyYW5jaCBldmVuCj4gPiA+IGFmdGVyIHRo ZSBtYWluIGJyYW5jaCBmb3IgdGhhdCBCQVNFIGhhcyBtb3ZlZCBvbiB0byBhbm90aGVyIE1BSk9S Lk1JTk9SLgo+ID4gPiBSZWxlYXNlcyBmcm9tIHRoZXNlIGZpeC1vbmx5IGJyYW5jaGVzIGluY3Jl bWVudCBvbmx5IHRoZSBQQVRDSCBudW1iZXIgb24gdGhhdAo+ID4gPiBNQUpPUi5NSU5PUiwgYW5k IHRoZXJlZm9yZSByZW1haW4gc2VtYW50aWNhbGx5IGNvbnNpc3RlbnQgd2l0aCB0aGUgbWFpbiBi cmFuY2guCj4gPiA+IE5vIGNoYW5nZSBvZiBCQVNFIGlzIHRoZXJlZm9yZSBuZWVkZWQuIENvbnNp ZGVyIGFuIGV4YW1wbGU6Cj4gPiA+IAo+ID4gPiB2MS4xLjAuMCAgIHYxLjEuMC4xICAgdjEuMS4w LjIgICB2MS4xLjEuMCAgIHYxLjEuMS4xCj4gPiA+IC0tLS1PLS0tLS0tLS0tLU8tLS0tLS0tLS0t Ty0tLS0tLS0tLS1PLS0tLS0tLS0tLU8gICAgPC0tIG1haW4gYWRvcHRzIHYxLjEuMS54Cj4gPiA+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKPiA+ID4gICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwKPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcCj4gPiA+ICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIE8tLS0tLS0tLS0tTyAgICAgPC0tIGZpeGVzIGZvciBp bnRlcmZhY2UgdjEuMS4wLngKPiA+ID4gICAgICAgICAgICAgICAgICAgICAgICAgICB2MS4xLjAu MyAgIHYxLjEuMC40Cj4gPiAKPiA+IFRoaXMgYXBwcm9hY2ggaXMgY29vbCBhbmQgbW9yZSBvciBs ZXNzIGhvdyBNZXNhIGhhbmRsZXMgdGhlaXIgcmVsZWFzZXMsCj4gPiBleGNlcHQgYnkgdGhlIGZh Y3QgdGhhdCB0aGVpciBNYWpvciBpcyB0aGUgeWVhciBhbmQgbWlub3IgaXMgdGhlIG1vbnRoLgo+ ID4gCj4gPiBIb3dldmVyLCBvbiB0aGUgZmlybXdhcmUgc2lkZSBJIGhhdmUgYSBjb25jZXJuIGJl Y2F1c2Ugd2UgYXJlIHNvIGZhciB0cnlpbmcKPiA+IHRvIG1ha2Ugc3VyZSB0aGF0IHdlIGhhdmUg MS0xIHJlbGF0aW9uc2hpcCBvbiBrZXJuZWwtZmlybXdhcmUgdmVyc2lvbi4KPiA+IAo+ID4gQnV0 IGJhc2VkIG9uIHRoaXMgdmlldyBhbmQgd2hhdCBBbnVzaGEgdG9sZCBtZSB5ZXN0ZXJkYXkgaXQg c2VlbXMKPiA+IHRoYXQgR3VDIGlzIGdldHRpbmcgY29uc3RhbnQgcmVsZWFzZXMuIFdpdGggdGhl IGNvbnN0YW50IHBhdGNoZXMgd2Ugd2lsbAo+ID4gc29vbiBleHBsb2RlIGxpbnV4LWZpcm13YXJl LmdpdCByZXBvc2l0b3J5IHNpemUuCj4gPiAKPiA+IEJ1dCB0aGlzIG1heWJlIGlzIHNvbWV0aGlu ZyB0byBiZSBzb2x2ZWQgb24gbGludXgtZmlybXdhcmUgc2lkZSBhbmQgd2UgbWFrZQo+ID4gc3Vy ZSB0aGF0IHdlIGNsZWFuIHVwIGFuZCByZW1vdmUgZmlybXdhcmUgdGhhdCB3ZXJlIG5ldmVyIHJl bGVhc2VkIGluIGFueQo+ID4gb2ZmaWNpYWwgTGludXgga2VybmVsLiBBbnVzaGEgb3IgQW50b25p bywgdGhvdWdodHM/Cj4gPiAKPiA+IFRoYW5rcywKPiA+IFJvZHJpZ28uCj4gPiAKPiAKPiBJIGV4 cGVjdCB0aGF0IGk5MTUgd2lsbCBzdGlsbCByZXF1aXJlIGEgc2luZ2xlIHZlcnNpb24gb2YgZmly bXdhcmUgcGVyIHBsYXRmb3JtCj4gYXMgaXQgZG9lcyB0b2RheS4gVGhpcyBjaGFuZ2Ugc2hvdWxk IG5vdCBpbXBhY3QgdGhhdCBvdGhlciB0aGFuIHRvIHJlcXVpcmUgaTkxNQo+IHRvIGNoZWNrIDQg bnVtYmVycyBpbnN0ZWFkIG9mIDIuCj4gCj4gSXQgaXMgdHJ1ZSB0aGF0IGZpcm13YXJlIHJlbGVh c2VzIGFyZSBtYWRlICppbnRlcm5hbGx5KiAoZnJvbSB0aGUgZmlybXdhcmUKPiB0ZWFtIHRvIHRo ZSBvcGVyYXRpbmcgc3lzdGVtIHRlYW1zKSBhdCBhIGZyZXF1ZW50IHJhdGUuIEl0IGlzIHVwIHRv IGVhY2ggT1MKPiB0ZWFtIHRvIGRlY2lkZSB0aGVpciBvd24gY2FkZW5jZSBmb3IgaW50ZWdyYXRp bmcgYW5kIGRpc3RyaWJ1dGluZyB0aG9zZQo+IGZpcm13YXJlIGJhc2VkIG9uIHRoZWlyIHVuaXF1 ZSBzaXR1YXRpb24uIFNvIHRoZSBMaW51eCB0ZWFtIG1heSBmaWx0ZXIgdGhlc2UKPiByZWxlYXNl cyBhbmQgdXBkYXRlIHRoZSB1cHN0cmVhbSBtdWNoIGxlc3MgZnJlcXVlbnRseS4KPiAKPiA+ID4g Cj4gPiA+IFRoZXJlIGlzIG5vIG5lZWQgdG8gY2hhbmdlIHRoZSBCQVNFIGJlY2F1c2UgdGhlIGJy YW5jaGluZyBoYXBwZW5lZCBmcm9tIHRoZQo+ID4gPiBsYXN0IGZpeCAodjEuMS4wLjIpIG9uIHRo ZSBtYWluIGJyYW5jaCBwcmlvciB0byB0aGUgY2hhbmdlIG9mIGludGVyZmFjZQo+ID4gPiAodjEu MS4xLjApLiBBcyBsb25nIGFzIG9ubHkgZml4ZXMgYXJlIGFwcGxpZWQgdG8gdjEuMS4wLngsIHRo ZXJlIGlzIG5vIHJpc2sgb2YKPiA+ID4gdmVyc2lvbiBudW1iZXIgY2xhc2guIEFsbCBvZiB0aGVz ZSByZWxlYXNlIHZlcnNpb25zIHJlbWFpbiBzZW1hbnRpY2FsbHkKPiA+ID4gY29ubmVjdGVkIHdp dGggb25lIHNtYWxsIGNhdmVhdC4gSWYgdGhpcyBzZXQgb2YgcmVsZWFzZSB2ZXJzaW9ucyBjYW1l Cj4gPiA+IHNlcXVlbnRpYWxseSBhbG9uZyBhIHNpbmdsZSBicmFuY2gsIG9uZSBjb3VsZCBpbmZl ciB0aGF0IHRoZSBleGFjdCBmaXhlcyBpbgo+ID4gPiB2MS4xLjAuNCB3ZXJlIGluaGVyaXRlZCBi eSB2MS4xLjEuMC4gV2l0aCB0aGlzICJoaWRkZW4iIGJyYW5jaGluZywgdGhpcyBtYXkKPiA+ID4g bm90IGJlIHRydWUgYXMgaW4gdGhpcyBleGFtcGxlLiBPbmUgd291bGQgbmVlZCB0byByZXZpZXcg dGhlIHYxLjEuMS4wIHJlbGVhc2UKPiA+ID4gbm90ZXMgdG8gY2hlY2suCj4gPiA+IAo+ID4gPiBQ bGVhc2UgcHJvdmlkZSBhbnkgZmVlZGJhY2sgb24gdGhlIHByb3Bvc2VkIGNoYW5nZS4KPiA+ID4g Cj4gPiA+IFRoYW5rcywKPiA+ID4gSmVmZgo+IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fCj4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+IEludGVsLWdmeEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWls bWFuL2xpc3RpbmZvL2ludGVsLWdmeApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZngK