From mboxrd@z Thu Jan 1 00:00:00 1970 From: Joonas Lahtinen Subject: Re: [Intel-gfx] [RFC PATCH 00/42] Introduce memory region concept (including device local memory) Date: Mon, 25 Feb 2019 18:35:22 -0800 Message-ID: <155114852274.9592.12818040180881092356@jlahtine-mobl.jf.intel.com> References: <20190214145740.14521-1-matthew.auld@intel.com> <155058317682.14819.11536571701277398274@jlahtine-desk.ger.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Dave Airlie Cc: intel-gfx@lists.freedesktop.org, Matthew Auld , dri-devel List-Id: dri-devel@lists.freedesktop.org UXVvdGluZyBEYXZlIEFpcmxpZSAoMjAxOS0wMi0yNSAxMjoyNDo0OCkKPiBPbiBUdWUsIDE5IEZl YiAyMDE5IGF0IDIzOjMyLCBKb29uYXMgTGFodGluZW4KPiA8am9vbmFzLmxhaHRpbmVuQGxpbnV4 LmludGVsLmNvbT4gd3JvdGU6Cj4gPgo+ID4gKyBkcmktZGV2ZWwgbWFpbGluZyBsaXN0LCBlc3Bl Y2lhbGx5IGZvciB0aGUgYnVkZHkgYWxsb2NhdG9yIHBhcnQKPiA+Cj4gPiBRdW90aW5nIERhdmUg QWlybGllICgyMDE5LTAyLTE1IDAyOjQ3OjA3KQo+ID4gPiBPbiBGcmksIDE1IEZlYiAyMDE5IGF0 IDAwOjU3LCBNYXR0aGV3IEF1bGQgPG1hdHRoZXcuYXVsZEBpbnRlbC5jb20+IHdyb3RlOgo+ID4g PiA+Cj4gPiA+ID4gSW4gcHJlcGFyYXRpb24gZm9yIHVwY29taW5nIGRldmljZXMgd2l0aCBkZXZp Y2UgbG9jYWwgbWVtb3J5LCBpbnRyb2R1Y2UgdGhlCj4gPiA+ID4gY29uY2VwdCBvZiBkaWZmZXJl bnQgbWVtb3J5IHJlZ2lvbnMsIGFuZCBhIHNpbXBsZSBidWRkeSBhbGxvY2F0b3IgdG8gbWFuYWdl Cj4gPiA+ID4gdGhlbS4KPiA+ID4KPiA+ID4gVGhpcyBpcyBtaXNzaW5nIHRoZSBpbmZvcm1hdGlv biBvbiB3aHkgaXQncyBub3QgVFRNLgo+ID4gPgo+ID4gPiBOb3RoaW5nIGFnYWluc3QgZXh0ZW5k aW5nIGk5MTUgZ2VtIG9mZiBpbnRvIGRvaW5nIHN0dWZmIHdlIGFscmVhZHkKPiA+ID4gaGF2ZSBl eGFtcGxlcyBvZmYgaW4gdHJlZSwgYnV0IGJlZm9yZSB5b3UgZG8gdGhhdCBpdCB3b3VsZCBiZSBn b29kIHRvCj4gPiA+IGhhdmUgYSB3aHkgd2UgY2FuJ3QgdXNlIFRUTSBkaXNjdXNzaW9uIGluIHB1 YmxpYy4KPiA+Cj4gPiBHbGFkIHRoYXQgeW91IGFza2VkLiBJdCdzIG15IGZhdWx0IHRoYXQgaXQg d2FzIG5vdCBpbmNsdWRlZCBpbgo+ID4gdGhlIGNvdmVyIGxldHRlci4gSSBhbnRpY2lwYXRlZCB0 aGUgcXVlc3Rpb24sIGJ1dCB3YXMgdHJhdmVsbGluZwo+ID4gZm9yIGEgY291cGxlIG9mIGRheXMg YXQgdGhlIHRpbWUgdGhpcyB3YXMgc2VudC4gSSBkaWRuJ3Qgd2FudAo+ID4gdG8gd3JpdGUgYSBo YXN0eSBleHBsYW5hdGlvbiBhbmQgdGhlbiBkaXNhcHBlYXIsIGxlYXZpbmcgb3RoZXJzIHRvCj4g PiB0YWtlIHRoZSBoZWF0Lgo+ID4KPiA+IFNvIGhlcmUgZ29lcyB0aGUgbGVzcy1oYXN0eSB2ZXJz aW9uOgo+ID4KPiA+IFdlIGRpZCBhbiBhbmFseXNpcyBvbiB0aGUgZWZmb3J0IG5lZWRlZCB2cyBi ZW5lZml0IGdhaW5lZCBvZiB1c2luZwo+ID4gVFRNIHdoZW4gdGhpcyB3YXMgc3RhcnRlZCBpbml0 aWFsbHkuIFRoZSBjb25jbHVzaW9uIHdhcyB0aGF0IHdlCj4gPiBhbHJlYWR5IHNoYXJlIHRoZSBp bnRlcmVzdGluZyBiaXRzIG9mIGNvZGUgdGhyb3VnaCBjb3JlIERSTSwgcmVhbGx5Lgo+ID4KPiA+ IFJlLXdyaXRpbmcgdGhlIG1lbW9yeSBoYW5kbGluZyB0byBUVE0gd291bGQgYnV5IHVzIG1vcmUg ZmluZS1ncmFpbmVkCj4gPiBsb2NraW5nLiBCdXQgaXQncyBtb3JlIGEgdHJhaXQgb2YgcmV3cml0 aW5nIHRoZSBtZW1vcnkgaGFuZGxpbmcgd2l0aAo+ID4gdGhlIGluZm9ybWF0aW9uIHdlIGhhdmUg bGVhcm5lZCwgdGhhbiByZXdyaXRpbmcgaXQgdG8gdXNlIFRUTSA6KQo+ID4KPiA+IEFuZCBmdXJ0 aGVyLCB3ZSd2ZSBiZWVuIGdldHRpbmcgcmlkIG9mIHN0cnVjdF9tdXRleCBhdCBhIHN0ZWFkeSBw aGFzZQo+ID4gaW4gdGhlIHBhc3QgeWVhcnMsIHNvIHdlIGhhdmUgYSBjbGVhciBwYXRoIHRvIHRo ZSBmaW5lLWdyYWluZWQgbG9ja2luZwo+ID4gYWxyZWFkeSBpbiB0aGUgbm90LXNvLWRpc3RhbnQg ZnV0dXJlLiBXaXRoIGFsbCB0aGlzIHdlIGRpZCBub3Qgc2VlCj4gPiBtdWNoIGdhaW5lZCBmcm9t IGNvbnZlcnRpbmcgb3ZlciwgYXMgdGhlIGNvZGUgc2hhcmluZyBpcyBhbHJlYWR5Cj4gPiBzdWJz dGFudGlhbC4KPiA+Cj4gPiBXZSBhbHNvIHdhbnRlZCB0byBoYXZlIHRoZSBidWRkeSBhbGxvY2F0 b3IgaW5zdGVhZCBvZiBhIGZvciBsb29wIG1ha2luZwo+ID4gZHJtX21tIGFsbG9jYXRpb25zIHRv IG1ha2Ugc3VyZSB3ZSBjYW4ga2VlcCB0aGUgbWVtb3J5IGZyYWdtZW50YXRpb24KPiA+IGF0IGJh eS4gVGhlIGludGVudCBpcyB0byBtb3ZlIHRoZSBidWRkeSBhbGxvY2F0b3IgdG8gY29yZSBEUk0s IHRvIHRoZQo+ID4gYmVuZWZpdCBvZiBhbGwgdGhlIGRyaXZlcnMsIGlmIHRoZXJlIGlzIGludGVy ZXN0IGZyb20gY29tbXVuaXR5LiBJdCBoYXMKPiA+IGJlZW4gd3JpdHRlbiBhcyBhIHN0cmljdGx5 IHNlcGFyYXRlIGNvbXBvbmVudCB3aXRoIHRoYXQgaW4gbWluZC4KPiA+Cj4gPiBBbmQgaWYgeW91 IHRha2UgdGhlIGJ1ZGR5IGFsbG9jYXRvciBvdXQgb2YgdGhlIHBhdGNoIHNldCwgdGhlIHJlc3Qg aXMKPiA+IG1vc3RseSBqdXN0IHZmdW5jaW5nIHRoaW5ncyB1cCB0byBiZSBhYmxlIHRvIGhhdmUg ZGlmZmVyZW50IGJhY2tpbmcKPiA+IHN0b3JhZ2VzIGZvciBvYmplY3RzLiBXZSB0b29rIHRoZSBv cHBvcnR1bml0eSB0byBtb3ZlIG92ZXIgdG8gdGhlIG1vcmUKPiA+IHZhbGdyaW5kIGZyaWVuZGx5 IG1tYXAgd2hpbGUgdG91Y2hpbmcgdGhpbmdzLCBidXQgaXQncyBzb21ldGhpbmcgd2UKPiA+IGhh dmUgYmVlbiBjb250ZW1wbGF0aW5nIGFueXdheS4gQW5kIHllYWgsIGxvYWRzIG9mIHNlbGZ0ZXN0 cy4KPiA+Cj4gPiBUaGF0J3MgcmVhbGx5IGFsbCB0aGF0IG5lZWRlZCBhZGRpbmcsIGFuZCBtb3N0 IG9mIGl0IGlzIGludGVybmFsIHRvCj4gPiBpOTE1IGFuZCBub3QgdG8gZG8gd2l0aCB1QVBJLiBU aGlzIG1lYW5zIHBvcnRpbmcgb3ZlciBhbiB1c2Vyc3BhY2UKPiA+IGRyaXZlciBkb2Vzbid0IHJl cXVpcmUgYSBzdWJzdGFudGlhbCByZXdyaXRlLCBidXQgYWRkaW5nIG5ldyBhIGZldwo+ID4gbmV3 IElPQ1RMcyB0byBzZXQgdGhlIHByZWZlcnJlZCBiYWNraW5nIHN0b3JhZ2UgcGxhY2VtZW50cy4K PiA+Cj4gPiBBbGwgdGhlIHByZXZpb3VzIEdFTSBhYnN0cmFjdGlvbnMga2VlcCBhcHBseWluZywg c28gd2UgZGlkIG5vdCBzZWUKPiA+IGEganVzdGlmaWNhdGlvbiB0byByZXdyaXRlIHRoZSBrZXJu ZWwgZHJpdmVyIGFuZCB1c2Vyc3BhY2UgZHJpdmVycy4KPiA+IEl0IHdvdWxkIGhhdmUganVzdCB0 byBtYWRlIHRoaW5ncyBsb29rIGxpa2UgVFRNLCB3aGVuIHdlIGFscmVhZHkKPiA+IGhhdmUgdGhl IGltcG9ydGFudCBwYXJ0cyBvZiB0aGUgY29kZSBzaGFyZWQgd2l0aCBUVE0gZHJpdmVycwo+ID4g YmVoaW5kIHRoZSBHRU0gaW50ZXJmYWNlcyB3aGljaCBhbGwgb3VyIGRyaXZlcnMgc2l0IG9uIHRv cCBvZi4KPiAKPiBhKSB5b3UgZ3V5cyBzaG91bGQgYmUgdGhlIGNvbW11bml0eSBhcyB3ZWxsLCBp ZiB0aGUgYnVkZHkgYWxsb2NhdG9yIGlzCj4gdXNlZnVsIGluIHRoZSBjb3JlIERSTSBnZXQgb3V0 IHRoZXJlIGFuZCB0cnkgYW5kIHNlZSBpZiBhbnlvbmUgZWxzZQo+IGhhcyBhIHVzZSBjYXNlIGZv ciBpdCwgbGlrZSB0aGUgR1BVIHNjaGVkdWxlciB3ZSBoYXZlIG5vdyAoY2FuIGk5MTUKPiB1c2Ug dGhhdCB5ZXQ/IDotKQoKV2VsbCwgdGhlIGJ1ZGR5IGFsbG9jYXRvciBzaG91bGQgYmUgdXNlZnVs IGZvciBhbnlib2R5IHdpc2hpbmcgdG8gaGF2ZQphcyBjb250aW51b3VzIHBoeXNpY2FsIGFsbG9j YXRpb25zIGFzIHBvc3NpYmxlLiBJIGhhdmUgbmFpdmVseSBhc3N1bWVkCnRoYXQgd291bGQgYmUg YWxtb3N0IGV2ZXJ5b25lLiBTbyBpdCB3b3VsZCBiZSBvbmx5IGEgcXVlc3Rpb24gaWYgb3RoZXJz CnNlZSB0aGUgYW1vdW50IG9mIHdvcmsgcmVxdWlyZWQgdG8gY29udmVydCBvdmVyIGlzIGp1c3Rp ZmllZCBmb3IgdGhlbS4KCkZvciB0aGUgY29tbW9uIERSTSBzY2hlZHVsZXIsIEkgdGhpbmsgYSBz b2xpZCBtb3ZlIGZyb20gdGhlIGJlZ2lubmluZwp3b3VsZCBoYXZlIGJlZW4gdG8gZmFjdG9yIG91 dCB0aGUgaTkxNSBzY2hlZHVsZXIgYXMgaXQgd2FzIG1vc3QgYWR2YW5jZWQKaW4gZmVhdHVyZXMg OikgTm93IHRoZXJlIGlzIGEgd2F5IG1vcmUgdHJpdmlhbCBjb21tb24gc2NoZWR1bGVyIGNvcmUg d2l0aApubyBlYXN5IHBhdGggdG8gdHJhbnNpdGlvbiB3aXRob3V0IGEgZmVhdHVyZSByZWdyZXNz aW9uLgoKV2UnZCBoYXZlIHRvIHJld3JpdGUgbWFueSBvZiB0aGUgbW9yZSBhZHZhbmNlZCBmZWF0 dXJlcyBmb3IgdGhhdCBjb2RlYmFzZQpiZWZvcmUgd2UgY291bGQgdHJhbnNpdGlvbiBvdmVyLiBJ dCdzIGhhcmQgdG8ganVzdGlmeSBzdWNoIHdvcmssIGZvcgp0aGF0IGl0IHdvdWxkIGJ1eSB1cyB2 ZXJ5IGxpdHRsZSBjb21wYXJlZCB0byBhbW91bnQgb2Ygd29yay4KClNpdHVhdGlvbiB3b3VsZCBi ZSBkaWZmZXJlbnQgaWYgdGhlcmUgd2FzIHNvbWV0aGluZyBnYWluZWQgZnJvbQpzd2l0Y2hpbmcg b3Zlci4gVGhpcyB3b3VsZCBiZSB0aGUgc2l0dWF0aW9uIGlmIHRoZSBtb3JlIGFkdmFuY2VkCnNj aGVkdWxlciB3YXMgcGlja2VkIGFzIHRoZSBzaGFyZWQgY29kZWJhc2UuCgo+IGIpIGhvd2V2ZXIg dGhpcyBsYXN0IHR3byBwYXJhZ3JhcGhzIGZpbGwgbWUgd2l0aCBubyBjb25maWRlbmNlIHRoYXQK PiB5b3UndmUgbG9va2VkIGF0IFRUTSBhdCBhbGwuIEl0IHNvdW5kcyBsaWtlIHlvdSB0b29rIGNv bW1lbnRzIGFib3V0Cj4gVFRNIG1hZGUgMTAgeWVhcnMgYWdvLCBhbmQgZGlkbid0IHVwZGF0ZSB0 aGVtLiBUaGVyZSBzaG91bGQgYmUgbm8KPiBtYWpvciByZWFzb24gZm9yIGEgdWFwaSBjaGFuZ2Ug anVzdCBiZWNhdXNlIHlvdSBhZG9wdCBUVE0uIFRUTSBoYXNuJ3QKPiBldmVyIGhhZCBhIGNvbW1v biB1YXBpIGFjcm9zcyBkcml2ZXJzIHVwc3RyZWFtLCBvbmUgd2FzIHByb3Bvc2VkCj4gaW5pdGlh bGx5ID4gMTAgeWVhcnMgYWdvLgoKVGhpcyBpcyBvbmUgcGFydCBteSBjb25mdXNpb24gb24gd2hh dCB0aGUgcXVlc3Rpb24gd2FzIGZvciBhbmQgb3RoZXIKcGFydCBiYWQgd29yZGluZyBvbiBteSBi ZWhhbGYuCgpTbyBhbiBhdHRlbXB0IHRvIHJlLWFuc3dlcjogV2hlbiB0aGlzIGVmZm9ydCB3YXMg c3RhcnRlZCBpdCB3YXMgb2J2aW91cwp0aGF0IHRoZSBhbW91bnQgb2YgbmV3IGNvZGUgcmVxdWly ZWQgd2FzIGxvdyAoYXMgeW91IGNhbiBzZWUpLiBGZWVkYmFjawphYm91dCB3aGF0IGNvbnZlcnRp bmcgdG8gVFRNIHdvdWxkIHJlcXVpcmUgdnMuIGdpdmUgdXMgd2FzIGdhdGhlcmVkIGZyb20KZm9s a3MgaW5jbHVkaW5nIERhbmllbCBhbmQgQ2hyaXMgYW5kIHRoZSB1bmFuaW1vdXMgZGVjaXNpb24g d2FzIHRoYXQgaXQKd291bGQgbm90IGJlIGp1c3RpZmlhYmxlLgoKPiBBbGwgdGhlIGN1cnJlbnQg VFRNIHVzaW5nIGRyaXZlcnMgZXhjZXB0Cj4gdm13YXJlIHVzZSBhIEdFTSBiYXNlZCBBUEkgYXMg d2VsbC4gVFRNIGlzIGFuIGludGVybmFsIGRyaXZlciBoZWxwZXIKPiBmb3IgbWFuYWdpbmcgcG9v bHMgb2YgUkFNLgo+IAo+IEknbSBqdXN0IG5vdCBzdXJlIHdoYXQgcmVidWlsZGluZyBhIGNodW5r IG9mIHNoYXJlZCBjb2RlIGluc2lkZSB0aGUKPiBpOTE1IGRyaXZlciBpcyBidXlpbmcgeW91LCBl eGNlcHQgYSB0cmFuc2l0aW9uIHBhdGggaW50byBkaXZlcmdlbmNlCj4gZnJvbSBhbGwgdGhlIG90 aGVyIGRpc2NyZXRlIFJBTSBkcml2ZXJzLgoKSSBndWVzcyB3aGF0IEknbSB0cnlpbmcgdG8gc2F5 LCB0aGVyZSBpc24ndCB0aGF0IG11Y2ggY29kZSBiZWluZyBhZGRlZAp0aGF0IHdvdWxkbid0IGJl IHRoZXJlIGFueXdheS4gVGhlIGk5MTUgR0VNIGNvZGUgaGFzIGFscmVhZHkgZ3Jvd24gdG8Kd2hh dCBpdCBpcyBiZWZvcmUgdGhpcy4KCkFkZGluZyB0aGUgc3VnZ2VzdGVkIHNtYWxsZXIgYW1vdW50 IG9mIGNvZGUgdnMuIGRvaW5nIGEgbXVjaCBiaWdnZXIKcmV3cml0ZSBpcyBzb21ldGhpbmcgb2Yg YSBzdHJhaWdodGZvcndhcmQgY2hvaWNlIHdpdGggdGhlIGFtb3VudCBvZgpwbGF0Zm9ybXMgYW5k IGZlYXR1cmVzIGluIGZsaWdodCwgZXNwZWNpYWxseSB3aGVuIHRoZSBlbmQgcmVzdWx0IGlzCnRo ZSBzYW1lLgoKPiBMaWtlIHRoZSBnYWxsaXVtIGF2ZXJzaW9uIGluCj4gdXNlcnNwYWNlLCBoYXZp bmcgYSBUVE0gYXZlcnNpb24gaW4ga2VybmVsIHNwYWNlIGlzIGdvaW5nIHRvIGJlIHRoZQo+IHdy b25nIHBhdGgsIGFuZCBJJ2QgcmF0aGVyIG5vdCBoYXZlIHRvIGNsZWFuIGl0IHVwIGluIDUgeWVh cnMgd2hlbiB5b3UKPiBndXlzIGV2ZW50dWFsbHkgcmVhbGlzZSBpdC4KPiAKPiBUaGUgaTkxNSBH RU0gY29kZSBnZXQgcmV3cml0dGVuIGFuZCByZWZhY3RvcmVkIHF1aXRlIG9mdGVuCgpXZWxsLCB3 ZSBjb250aW51YWxseSB0cnkgdG8gaW1wcm92ZSB0aGluZ3MgYW5kIGFjY29tbW9kYXRlIHVwY29t aW5nCnByb2R1Y3QgcmVxdWlyZW1lbnRzIGFuZCBoYXJkd2FyZSBmZWF0dXJlLiBUaGUgdGhpbmcg aXMgdGhhdCB3ZSBkbyBpdAp1cHN0cmVhbSBmaXJzdCwgc28gaGFyZCB0byBhdm9pZCB0aGUgY2h1 cm4uCgpXaGVuIG1vdmluZyByYXBpZGx5LCBpdCdzIGhhcmQgdG8gcHJvamVjdCB3aGF0IHRoZSBz aGFyZWQgcG9ydGlvbiBvZgp0aGUgY29kZSBtaWdodCBiZSBvciBleGFjdGx5IGxvb2suIEknbSBt eXNlbGYgbXVjaCBtb3JlIGJlbGlldmVyIGluCmV4dHJhY3RpbmcgdGhlIGdlbmVyaWMgcG9ydGlv bnMgb3V0IHdoZW4gdGhlIGNvZGUgaXMgdGhlcmUgYW5kIHdvcmtpbmcuCgpUaGUgY2h1cm4gd291 bGQgYmUgZXZlbiBiaWdnZXIgaWYgdGhlcmUgaXMgYSBzdHJpY3QgcmVxdWlyZW1lbnQgdG8KcmVm YWN0b3IgdGhlIGNvbW1vbiBwYXJ0cyBvdXQgc3RyYWlnaHQgZnJvbSB0aGUgYmVnaW5uaW5nLCBi ZWZvcmUKYW55dGhpbmcgaXMgZXZlbiBwcm92ZW4gaW4gcHJhY3RpY2UuCgpUaGF0J2QganVzdCBt ZWFuIGl0IGdldHMgbXVjaCBoYXJkZXIgdG8gc2VsbCBkb2luZyB0aGluZ3MgdXBzdHJlYW0KZmly c3QgdG8gdGhlIG1hbmFnZW1lbnQuCgpXaGVuIHRoZSBjb2RlIGlzIGluIHBsYWNlIGFuZCB3b3Jr aW5nLCBhbmQgd2Ugc3RpbGwgYWdyZWUgdGhhdCBtb3JlCmNvZGUgcmV1c2UgY291bGQgYmUgYmVu ZWZpY2lhbCwgaXQgd2lsbCBiZSBtb3JlIHZpYWJsZSB0aGluZyB0byBkbwp3aGVuIHRoZXJlIGFy ZSBsZXNzIG1vdmluZyBwYXJ0cy4KCj4gYW5kIGhhcyBhCj4gYnVzIGZhY3RvciBvZiBpY2tsZSwg aWYgaGUgZGVjaWRlZCB0byBnbyBlbHNld2hlcmUsIHlvdSB3aWxsIGhhdmUgYQo+IHBpbGUgb2Yg Y29kZSB0aGF0IG5vYm9keSBnZXRzLCBJIHRoaW5rIGhhdmluZyBhIFRUTSBiYWNrZW5kIHdvdWxk IGhhdmUKPiBhIGJldHRlciBsb25nIHRlcm0gZWZmZWN0IG9uIHlvdXIgZHJpdmVyIG1haW50YWlu YWJpbGl0eS4KCldlbGwsIGFzIHlvdSBtaWdodCBub3RpY2UsIHRoZSBwYXRjaGVzIGFyZSBub3Qg ZnJvbSBpY2tsZS4KCkknbSBub3Qgc2F5aW5nIHdlIGNvdWxkbid0IGltcHJvdmUgY29kZSBzaGFy aW5nLiBJIGN1cnJlbnRseSBoYXZlIGEKcHJpb3JpdHkgaW4gbWFraW5nIHN1cmUgd2UgY2FuIGVu YWJsZSB0aGUgdXBjb21pbmcgcGxhdGZvcm1zLCB3aGljaCBoYXMKYSBtdWNoIG1vcmUgZGlyZWN0 IGVmZmVjdCBvbiBvdXIgc2hvcnQgYW5kIGxvbmcgdGVybSBkcml2ZXIKbWFpbnRhaW5hYmlsaXR5 IHRocm91Z2ggcmVzb3VyY2luZyA6KQoKSWYgdGhlIHBsYXRmb3JtIHN1cHBvcnQgaXMgbm90IHRo ZXJlLCBpdCdzIGhhcmQgdG8gaGF2ZSB0aGUgaGVhZGNvdW50CnRvIHdvcmsgb24gcmVmYWN0b3Jp bmcgdGhlIHJldXNhYmxlIHBhcnRzIG9mIGNvZGUgb3V0LgoKU28gSSdtIGhvcGluZyB3ZSBjYW4g aGF2ZSBhbiBpbmNyZW1lbnRhbCBhcHByb2FjaCB0byB0aGUgY29kZQpyZWZhY3RvcmluZ3Mgc3Vn Z2VzdGVkLCB0aGF0IGRvZXNuJ3Qgc3RhbGwgdGhlIGRlbGl2ZXJ5IG9mIHRoZSBmZWF0dXJlcy4K ClJlZ2FyZHMsIEpvb25hcwoKPiBEYXZlLgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5m cmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0 aW5mby9kcmktZGV2ZWw=