From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: Re: [PATCH] drm/i915: Introduce concept of a sub-platform Date: Mon, 18 Mar 2019 07:09:59 +0000 Message-ID: References: <20190315122633.11421-1-tvrtko.ursulin@linux.intel.com> <20190315171250.tfj3xmlqncesqlrq@ldmartin-desk.amr.corp.intel.com> <20190315184050.f7rci2tljsvwlmou@ldmartin-desk.amr.corp.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8"; Format="flowed" Content-Transfer-Encoding: base64 Return-path: Received: from mga07.intel.com (mga07.intel.com [134.134.136.100]) by gabe.freedesktop.org (Postfix) with ESMTPS id 11B238982C for ; Mon, 18 Mar 2019 07:10:08 +0000 (UTC) In-Reply-To: <20190315184050.f7rci2tljsvwlmou@ldmartin-desk.amr.corp.intel.com> Content-Language: en-US List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Lucas De Marchi Cc: Jani Nikula , Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org Ck9uIDE1LzAzLzIwMTkgMTg6NDAsIEx1Y2FzIERlIE1hcmNoaSB3cm90ZToKPiBPbiBGcmksIE1h ciAxNSwgMjAxOSBhdCAwNTozMTowNVBNICswMDAwLCBUdnJ0a28gVXJzdWxpbiB3cm90ZToKPj4K Pj4gT24gMTUvMDMvMjAxOSAxNzoxMiwgTHVjYXMgRGUgTWFyY2hpIHdyb3RlOgo+Pj4gT24gRnJp LCBNYXIgMTUsIDIwMTkgYXQgMTI6MjY6MzNQTSArMDAwMCwgVHZydGtvIFVyc3VsaW4gd3JvdGU6 Cj4+Pj4gRnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KPj4+ Pgo+Pj4+IENvbmNlcHQgb2YgYSBzdWItcGxhdGZvcm0gYWxyZWFkeSBleGlzdCBpbiBvdXIgY29k ZSAobGlrZSBVTFggYW5kIFVMVAo+Pj4+IHBsYXRmb3JtIHZhcmlhbnRzIGFuZCBzaW1pbGFyKSxp bXBsZW1lbnRlZCB2aWEgdGhlIG1hY3JvcyB3aGljaCBjaGVjayBhCj4+Pj4gbGlzdCBvZiBkZXZp Y2UgaWRzIHRvIGRldGVybWluZSBhIG1hdGNoLgo+Pj4+Cj4+Pj4gV2l0aCB0aGlzIHBhdGNoIHdl IGNvbnNvbGlkYXRlIGRldmljZSBpZHMgY2hlY2tpbmcgaW50byBhIHNpbmdsZSAKPj4+PiBmdW5j dGlvbgo+Pj4+IGNhbGxlZCBkdXJpbmcgZWFybHkgZHJpdmVyIGxvYWQuCj4+Pj4KPj4+PiBBIGZl dyBsb3cgYml0cyBpbiB0aGUgcGxhdGZvcm0gbWFzayBhcmUgcmVzZXJ2ZWQgZm9yIHN1Yi1wbGF0 Zm9ybQo+Pj4+IGlkZW50aWZpY2F0aW9uIGFuZCBkZWZpbmVkIGFzIGEgcGVyLXBsYXRmb3JtIG5h bWVzcGFjZS4KPj4+Pgo+Pj4+IEF0IHRoZSBzYW1lIHRpbWUgaXQgZnV0dXJlIHByb29mcyB0aGUg cGxhdGZvcm1fbWFzayBoYW5kbGluZyBieSAKPj4+PiBwcmVwYXJpbmcKPj4+PiB0aGUgY29kZSBm b3IgZWFzeSBleHRlbmRpbmcsIGFuZCB0aWRpZXMgdGhlIHZlcnkgdmVyYm9zZSBXQVJOIHN0cmlu Z3MKPj4+PiBnZW5lcmF0ZWQgd2hlbiBJU19QTEFURk9STSBtYWNyb3MgYXJlIGVtYmVkZGVkIGlu dG8gYSBXQVJOIHR5cGUKPj4+PiBzdGF0ZW1lbnRzLgo+Pj4+Cj4+Pj4gVGhlIGFwcHJvYWNoIGlz IGFsc28gYmVuZWZpY2lhbCB0byBkcml2ZXIgc2l6ZSwgd2l0aCBhbiBjb21iaW5lZCAKPj4+PiBz aHJpbmsgb2YKPj4+PiBjb2RlIGFuZCBzdHJpbmdzIG9mIGFyb3VuZCAxLjcga2lCLgo+Pj4+Cj4+ Pj4gdjI6IEZpeGVkIElTX1NVQlBMQVRGT1JNLiBVcGRhdGVkIGNvbW1pdCBtc2cuCj4+Pj4gdjM6 IENocmlzIHdhcyByaWdodCwgdGhlcmUgaXMgYW4gb3JkZXJpbmcgcHJvYmxlbS4KPj4+Pgo+Pj4+ IHY0Ogo+Pj4+ICogQ2F0Y2gtdXAgd2l0aCBuZXcgc3ViLXBsYXRmb3Jtcy4KPj4+PiAqIFJlYmFz ZSBmb3IgUlVOVElNRV9JTkZPLgo+Pj4+ICogRHJvcCBzdWJwbGF0Zm9ybSBtYXNrIHVuaW9uIHRy aWNrcyBhbmQgY29udmVydCBwbGF0Zm9ybV9tYXNrIHRvIGFuCj4+Pj4gwqAgYXJyYXkgZm9yIGV4 dGVuc2liaWxpdHkuCj4+Pj4KPj4+PiBTaWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZy dGtvLnVyc3VsaW5AaW50ZWwuY29tPgo+Pj4+IFN1Z2dlc3RlZC1ieTogQ2hyaXMgV2lsc29uIDxj aHJpc0BjaHJpcy13aWxzb24uY28udWs+Cj4+Pj4gQ2M6IENocmlzIFdpbHNvbiA8Y2hyaXNAY2hy aXMtd2lsc29uLmNvLnVrPgo+Pj4+IENjOiBKYW5pIE5pa3VsYSA8amFuaS5uaWt1bGFAaW50ZWwu Y29tPgo+Pj4+IENjOiBMdWNhcyBEZSBNYXJjaGkgPGx1Y2FzLmRlbWFyY2hpQGludGVsLmNvbT4K Pj4+PiBDYzogSm9zZSBTb3V6YSA8am9zZS5zb3V6YUBpbnRlbC5jb20+Cj4+Pj4gLS0tCj4+Pj4g ZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuY8KgwqDCoMKgwqDCoMKgwqDCoCB8wqDCoCA3 ICstCj4+Pj4gZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaMKgwqDCoMKgwqDCoMKgwqDC oCB8IDExMCArKysrKysrKysrKysrKystLS0tLS0tLQo+Pj4+IGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfcGNpLmPCoMKgwqDCoMKgwqDCoMKgwqAgfMKgwqAgMiArLQo+Pj4+IGRyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX2RldmljZV9pbmZvLmMgfMKgIDc5ICsrKysrKysrKysrKysrKysKPj4+ PiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9kZXZpY2VfaW5mby5oIHzCoCAyOCArKysrKy0K Pj4+PiA1IGZpbGVzIGNoYW5nZWQsIDE3OSBpbnNlcnRpb25zKCspLCA0NyBkZWxldGlvbnMoLSkK Pj4+Pgo+Pj4+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jIAo+ Pj4+IGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuYwo+Pj4+IGluZGV4IDBkNzQzOTA3 ZTdiYy4uMzIxODM1MGNkMjI1IDEwMDY0NAo+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTVfZHJ2LmMKPj4+PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5jCj4+ Pj4gQEAgLTg2Myw2ICs4NjMsOCBAQCBzdGF0aWMgaW50IGk5MTVfZHJpdmVyX2luaXRfZWFybHko c3RydWN0IAo+Pj4+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+Pj4+IMKgwqDCoMKgaWYg KGk5MTVfaW5qZWN0X2xvYWRfZmFpbHVyZSgpKQo+Pj4+IMKgwqDCoMKgwqDCoMKgIHJldHVybiAt RU5PREVWOwo+Pj4+Cj4+Pj4gK8KgwqDCoCBpbnRlbF9kZXZpY2VfaW5mb19zdWJwbGF0Zm9ybV9p bml0KGRldl9wcml2KTsKPj4+PiArCj4+Pj4gwqDCoMKgwqBzcGluX2xvY2tfaW5pdCgmZGV2X3By aXYtPmlycV9sb2NrKTsKPj4+PiDCoMKgwqDCoHNwaW5fbG9ja19pbml0KCZkZXZfcHJpdi0+Z3B1 X2Vycm9yLmxvY2spOwo+Pj4+IMKgwqDCoMKgbXV0ZXhfaW5pdCgmZGV2X3ByaXYtPmJhY2tsaWdo dF9sb2NrKTsKPj4+PiBAQCAtMTc1MiwxMCArMTc1NCwxMSBAQCBzdGF0aWMgdm9pZCBpOTE1X3dl bGNvbWVfbWVzc2FnZXMoc3RydWN0IAo+Pj4+IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQo+ Pj4+IMKgwqDCoMKgaWYgKGRybV9kZWJ1ZyAmIERSTV9VVF9EUklWRVIpIHsKPj4+PiDCoMKgwqDC oMKgwqDCoCBzdHJ1Y3QgZHJtX3ByaW50ZXIgcCA9IGRybV9kZWJ1Z19wcmludGVyKCJpOTE1IGRl dmljZSBpbmZvOiIpOwo+Pj4+Cj4+Pj4gLcKgwqDCoMKgwqDCoMKgIGRybV9wcmludGYoJnAsICJw Y2lpZD0weCUwNHggcmV2PTB4JTAyeCBwbGF0Zm9ybT0lcyBnZW49JWlcbiIsCj4+Pj4gK8KgwqDC oMKgwqDCoMKgIGRybV9wcmludGYoJnAsICJwY2lpZD0weCUwNHggcmV2PTB4JTAyeCBwbGF0Zm9y bT0lcyAoJXgpIAo+Pj4+IGdlbj0laVxuIiwKPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIElOVEVMX0RFVklEKGRldl9wcml2KSwKPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIElOVEVMX1JFVklEKGRldl9wcml2KSwKPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgIGludGVsX3BsYXRmb3JtX25hbWUoSU5URUxfSU5GTyhkZXZfcHJpdiktPnBsYXRmb3JtKSwK Pj4+PiArIAo+Pj4+IFJVTlRJTUVfSU5GTyhkZXZfcHJpdiktPnBsYXRmb3JtX21hc2tbSU5URUxf SU5GTyhkZXZfcHJpdiktPnBsYXRmb3JtIAo+Pj4+IC8gKEJJVFNfUEVSX1RZUEUoUlVOVElNRV9J TkZPKGRldl9wcml2KS0+cGxhdGZvcm1fbWFza1swXSkgLSAKPj4+PiBJTlRFTF9TVUJQTEFURk9S TV9CSVRTKV0sCj4+Pgo+Pj4gYnVnIGhlcmUsIElOVEVMX1NVQlBMQVRGT1JNX0JJVFMgc2hvdWxk IGJlIG91dHNpZGUgb2YgW10uIEJhZCB0aGluZ3MKPj4+IHdpbGwgaGFwcGVuIGZvciBwbGF0Zm9y bT0zMiAvb1wKPj4KPj4gPyBbMzIgLyAoMzIgLSAzKV0gPSBbMV0sIGZvciB3aGljaCB0aGVyZSBp cyBhIEJVSUxEX0JVR19PTiB3aXRoIGEgCj4+IGNvbW1lbnQgc2F5aW5nIHRvIGluY3JlYXNlIHNp emUgb2YgYXJyYXkuCj4gCj4gSSB0aGluayBJIG1pc3NlZCBhICIoIiBhbmQgdGhvdWdodCB0aGF0 IHdvdWxkIGJlICgzMiAvIDMyKSAtIDMKPiAKPiBhbnl3YXksIHlvdSBhcmUgcHJpbnRpbmcgY29u ZnVzaW5nIGluZm9ybWF0aW9uIGhlcmUgc2luY2UgeW91IG9ubHkgcHJpbnQKPiBvbmUgdTMyLgoK Q29uZnVzaW5nIGhvdyBhbmQgd2hhdCBpcyB0aGUgc2Vjb25kIHUzMj8gWW91IG1lYW4gd2hlbiBh cnJheSBnZXRzIApleHBhbmRlZCBpbiB0aGUgZnV0dXJlPyBIZXJlIHRoZSBhY3R1YWwgaWRlYSAo c2VlIG5leHQgdmVyc2lvbikgaXMgdG8gCm9ubHkgcHJpbnQgdGhlIHN1YnBsYXRmb3JtIGJpdHMu Cgo+Pgo+Pj4KPj4+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIElOVEVMX0dFTihkZXZf cHJpdikpOwo+Pj4+Cj4+Pj4gwqDCoMKgwqDCoMKgwqAgaW50ZWxfZGV2aWNlX2luZm9fZHVtcF9m bGFncyhJTlRFTF9JTkZPKGRldl9wcml2KSwgJnApOwo+Pj4+IEBAIC0xNzk4LDggKzE4MDEsNiBA QCBpOTE1X2RyaXZlcl9jcmVhdGUoc3RydWN0IHBjaV9kZXYgKnBkZXYsIGNvbnN0IAo+Pj4+IHN0 cnVjdCBwY2lfZGV2aWNlX2lkICplbnQpCj4+Pj4gwqDCoMKgwqBtZW1jcHkoZGV2aWNlX2luZm8s IG1hdGNoX2luZm8sIHNpemVvZigqZGV2aWNlX2luZm8pKTsKPj4+PiDCoMKgwqDCoFJVTlRJTUVf SU5GTyhpOTE1KS0+ZGV2aWNlX2lkID0gcGRldi0+ZGV2aWNlOwo+Pj4+Cj4+Pj4gLcKgwqDCoCBC VUlMRF9CVUdfT04oSU5URUxfTUFYX1BMQVRGT1JNUyA+Cj4+Pj4gLcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCBCSVRTX1BFUl9UWVBFKGRldmljZV9pbmZvLT5wbGF0Zm9ybV9tYXNrKSk7Cj4+Pj4g wqDCoMKgwqBCVUdfT04oZGV2aWNlX2luZm8tPmdlbiA+IEJJVFNfUEVSX1RZUEUoZGV2aWNlX2lu Zm8tPmdlbl9tYXNrKSk7Cj4+Pj4KPj4+PiDCoMKgwqDCoHJldHVybiBpOTE1Owo+Pj4+IGRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oIAo+Pj4+IGIvZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9kcnYuaAo+Pj4+IGluZGV4IGRjY2I2MDA2YWFiZi4uMzQyODJjZjY2 Y2IwIDEwMDY0NAo+Pj4+IC0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKPj4+ PiArKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2Rydi5oCj4+Pj4gQEAgLTIyODEsNyAr MjI4MSw0NiBAQCBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCAKPj4+PiBpOTE1X3NnX3NlZ21l bnRfc2l6ZSh2b2lkKQo+Pj4+ICNkZWZpbmUgSVNfUkVWSUQocCwgc2luY2UsIHVudGlsKSBcCj4+ Pj4gwqDCoMKgwqAoSU5URUxfUkVWSUQocCkgPj0gKHNpbmNlKSAmJiBJTlRFTF9SRVZJRChwKSA8 PSAodW50aWwpKQo+Pj4+Cj4+Pj4gLSNkZWZpbmUgSVNfUExBVEZPUk0oZGV2X3ByaXYsIHApIAo+ Pj4+IChJTlRFTF9JTkZPKGRldl9wcml2KS0+cGxhdGZvcm1fbWFzayAmIEJJVChwKSkKPj4+PiAr I2RlZmluZSBfX0lTX1BMQVRGT1JNKGRldl9wcml2LCBwKSBcCj4+Pj4gKyh7IFwKPj4+PiArwqDC oMKgIGNvbnN0IHVuc2lnbmVkIGludCBwYml0c19fID0gXAo+Pj4+ICvCoMKgwqDCoMKgwqDCoCBC SVRTX1BFUl9UWVBFKFJVTlRJTUVfSU5GTyhkZXZfcHJpdiktPnBsYXRmb3JtX21hc2tbMF0pIC0g XAo+Pj4+ICvCoMKgwqDCoMKgwqDCoCBJTlRFTF9TVUJQTEFURk9STV9CSVRTOyBcCj4+Pj4gK8Kg wqDCoCBjb25zdCB1bnNpZ25lZCBpbnQgcGlfXyA9IChwKSAvIHBiaXRzX187IFwKPj4+PiArwqDC oMKgIGNvbnN0IHVuc2lnbmVkIGludCBwYl9fID0gKHApICUgcGJpdHNfXyArIAo+Pj4+IElOVEVM X1NVQlBMQVRGT1JNX0JJVFM7IFwKPj4+PiArXAo+Pj4+ICvCoMKgwqAgQlVJTERfQlVHX09OKCFf X2J1aWx0aW5fY29uc3RhbnRfcChwKSk7IFwKPj4+PiArXAo+Pj4+ICvCoMKgwqAgKFJVTlRJTUVf SU5GTyhkZXZfcHJpdiktPnBsYXRmb3JtX21hc2tbcGlfX10gJiBCSVQocGJfXykpOyBcCj4+Pgo+ Pj4KPj4+IFVnaC4gVGhhdCBkb3VibGUgZHdvcmQgZmlkZGxpbmcgaXMgd2F5IHRvbyB1Z2x5LiBJ TU8gaXQgaXMgbm90IGJ1eWluZyB1cwo+Pj4gYW55dGhpbmcuIEp1c3QgdXNlIGEgdTY0IHJhdGhl ciB0aGFuIHRoZSBkb3VibGUgZHdvcmQuIFlvdXIgYXBwcm9hY2ggbWF5Cj4+PiBoYXZlIGEgc21h bGwgYmVuZWZpdCBvbiBBUkNIPWkzODYsIGJ1dCBoYXMgdGhlIGJ1cmRlbiBvZiBjYXJyeWluZyBh bGwKPj4+IHRoaXMgZm9yd2FyZC7CoCBUaGUgZGlmZiBiZWxvdyAob25seSBidWlsZC10ZXN0ZWQp IGlzIG9uIHRvcCBvZiB5b3VycywKPj4+IHdoaWNoIGlzIGJhc2ljYWxseSBlcXVpdmFsZW50IHRv ICJtb3ZlIHRvIHU2NCBhbmQgdGhlbiBhZGQgdGhlCj4+PiBzdWJwbGF0Zm9ybSBwYXJ0Ii4KPj4+ Cj4+PiDCoCB0ZXh0wqDCoMKgIGRhdGHCoMKgwqDCoCBic3PCoMKgwqDCoCBkZWPCoMKgwqDCoCBo ZXggZmlsZW5hbWUKPj4+IDE4MzQ2MjDCoMKgIDQwNDU0wqDCoMKgIDQxNzYgMTg3OTI1MMKgIDFj YWNkMiAKPj4+IGRyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTUuby55b3Vycwo+Pj4gMTgzNDcxMMKg wqAgNDA0NTTCoMKgwqAgNDE3NiAxODc5MzQwwqAgMWNhZDJjIGRyaXZlcnMvZ3B1L2RybS9pOTE1 L2k5MTUubwo+Pgo+PiBUaGUgY29zdCBvZiBnb2luZyB1NjQgd291bGQgYmUgaGlnaGVyIHRoYW4g d2hhdCB5b3Ugc2F3IGlmIGJpdHMgYWJvdmUgCj4+IHdlcmUgYWN0dWFsbHkgdXNlZCBJIHRoaW5r LiBCdXQgd291bGQgaGF2ZSB0byBjaGVjayB0aGUgb3V0cHV0IHRvIGJlIAo+PiBzdXJlLiBJdCB3 YXMgYXQgbGVhc3QgYSB5ZWFyIGFnbyBJIHRoaW5rIEkgbGFzdCBwbGF5ZWQgd2l0aCB0aGlzLgo+ IAo+IEkgY2hhbGxlbmdlIHRoYXQuIE15IGJ1dHQgZmVlbGluZyBoZXJlIGlzIHByZXR0eSBzdHJv bmcgdGhhdCdzIG5vdAo+IHRydWUuCgpJIGhvcGUgeW91IG1lYW50IGd1dCBmZWVsaW5nLiBBbnl3 YXlzLCBJIHNhaWQgSSB3YXNuJ3QgMTAwJSBzdXJlIG9mIHRoZSAKZGV0YWlscywgcmlnaHQ/IEhh dmluZyBleGVyY2lzZWQgbXkgbWVtb3J5IGxhbmVzIEkgdGhpbmsgdGhlIGJpZ2dlc3QgCm5lZ2F0 aXZlIGVmZmVjdCBvZiB0aGUgbW92ZSB0byB1NjQgd2FzIGluIGNvbmp1bmN0aW9uIHdpdGggdGhp cyAKc3VicGxhdGZvcm0gaWRlYS4gVGhpcyBpcyBkdWUgdGhlICJpZiAobWFzayAmIHBsYXRmb3Jt KSAmJiAobWFzayAmIApzdWJwbGF0Zm9ybSkiIGV4cGFuZGluZyB0byAyIHU2NCBjb25zdGFudHMg cGVyIGNoZWNrLiBJIGhhdmUgYSByZW1lZHkgCmZvciB0aGF0LCBidXQgbGV0cyBub3QgZ2V0IGJv Z2dlZCBkb3duIGFuZCBjb2RlIHNpemUgd2hpY2ggaXMgbm90IHRoZSAKbWFpbiBjb25zaWRlcmF0 aW9uIGhlcmUuIElkZWEgd2FzIHRvIGNvbnNvbGlkYXRlIGFuZCBzaW1wbGlmeSB3aGlsc3QgCnBy ZXNlcnZpbmcgdGhlIHR3byBiZW5lZmljaWFsIGVmZmVjdHMgd2hpY2ggSSBhbHJlYWR5IGV4cGxh aW4uCgo+PiBCZW5lZml0IG9mIHRoZSB1MzIgYXJyYXkgYXBwcm9hY2ggaXMgdGhhdCBpdCBhdm9p ZHMgdGhhdCBldmVuIG9uIAo+PiA2NC1iaXQgYnVpbGRzLgo+IAo+IG15IHBvaW50IGlzIG9uIDY0 LWJpdCBidWlsZHMuLi4gSXQgbWF5IHN1ZmZlciBhIGxpdHRsZSBvbiBtMzIuCgpXaGljaCBpcyB3 aHkgSSBoaW50ZWQgdGhlIHUzMiBhcnJheSBhcHByb2FjaCBkb2VzIG5vdCBzdWZmZXIgb24gZWl0 aGVyLiAKTm8gaW5jcmVhc2Ugb24gNjQtYml0LCBubyByZWFsIGluY3JlYXNlIG9uIDMyLWJpdC4K ClJlZ2FyZHMsCgpUdnJ0a28KCj4gCj4gTHVjYXMgRGUgTWFyY2hpCj4gCj4+IEFzIGl0IHN0YW5k cyB2NSBvZiBteSBwYXRjaCBoYXMgbWluaW1hbCBwb3NpdGl2ZSBlZmZlY3Qgb24gY29kZSBzaXpl IAo+PiAoc3ViIDFrKS4gTWF5YmUgYSBiaXQgYmV0dGVyIGluIG5vbi1kZWJ1ZyBidWlsZHMuIEJ1 dCB0aGUgbWFpbiBwb2ludCAKPj4gaXMgYWJvdXQgdGhlIGRldmlkIGNoZWNraW5nIGNvbnNvbGlk YXRpb24uCj4+Cj4+IEl0IGlzIG9mIGNvdXJzZSBvcGVuIHRvIGRpc2N1c3Npb24uCj4+Cj4+IFJl Z2FyZHMsCj4+Cj4+IFR2cnRrbwo+IApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0cy5mcmVl ZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZng=