From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: Re: [PATCH v6 04/28] drm/dp: DRM DP helper/macros to get DP sink DSC parameters Date: Wed, 30 Jan 2019 13:06:57 -0500 Message-ID: <20190130180657.GW114153@art_vandelay> References: <20181024222840.25683-1-manasi.d.navare@intel.com> <20181024222840.25683-5-manasi.d.navare@intel.com> <20181219185448.GU21184@phenom.ffwll.local> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Daniel Vetter Cc: intel-gfx , dri-devel List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBKYW4gMzAsIDIwMTkgYXQgMTI6MDY6NDVQTSArMDEwMCwgRGFuaWVsIFZldHRlciB3 cm90ZToKPiBPbiBXZWQsIERlYyAxOSwgMjAxOCBhdCA3OjU0IFBNIERhbmllbCBWZXR0ZXIgPGRh bmllbEBmZndsbC5jaD4gd3JvdGU6Cj4gPgo+ID4gT24gV2VkLCBPY3QgMjQsIDIwMTggYXQgMDM6 Mjg6MTZQTSAtMDcwMCwgTWFuYXNpIE5hdmFyZSB3cm90ZToKPiA+ID4gVGhpcyBwYXRjaCBhZGRz IGlubGluZSBmdW5jdGlvbnMgYW5kIGhlbHBlcnMgZm9yIG9idGFpbmluZwo+ID4gPiBEUCBzaW5r J3Mgc3VwcG9ydGVkIERTQyBwYXJhbWV0ZXJzIGxpa2UgRFNDIHNpbmsgc3VwcG9ydCwKPiA+ID4g ZURQIGNvbXByZXNzZWQgQlBQIHN1cHBvcnRlZCwgbWF4aW11bSBzbGljZSBjb3VudCBzdXBwb3J0 ZWQKPiA+ID4gYnkgdGhlIHNpbmsgZGV2aWNlcywgRFNDIGxpbmUgYnVmZmVyIGJpdCBkZXB0aCBz dXBwb3J0ZWQgb24gRFAgc2luaywKPiA+ID4gRFNDIHNpbmsgbWF4aW11bSBjb2xvciBkZXB0aCBi eSBwYXJzaW5nIGNvcnJlc3BvbmRpbmcgRFBDRCByZWdpc3RlcnMuCj4gPiA+Cj4gPiA+IHY0Ogo+ ID4gPiAqIEFkZCBoZWxwZXIgdG8gZ2l2ZSBsaW5lIGJ1ZiBiaXQgZGVwdGggKE1hbmFzaSkKPiA+ ID4gKiBDb3JyZWN0IHRoZSBiaXQgbWFza2luZyBpbiBjb2xvciBkZXB0aCBoZWxwZXIgKG1hbmFz aSkKPiA+ID4gdjM6Cj4gPiA+ICogVXNlIFNMSUNFX0NBUF8yIGZvciBEUCAoQW51c2hhKQo+ID4g PiB2MjoKPiA+ID4gKiBBZGQgRFNDIHNpbmsgc3VwcG9ydCBtYWNybyAoSmFuaSBOKQo+ID4gPgo+ ID4gPiBDYzogR2F1cmF2IEsgU2luZ2ggPGdhdXJhdi5rLnNpbmdoQGludGVsLmNvbT4KPiA+ID4g Q2M6IGRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+ID4gQ2M6IEphbmkgTmlrdWxh IDxqYW5pLm5pa3VsYUBsaW51eC5pbnRlbC5jb20+Cj4gPiA+IENjOiBWaWxsZSBTeXJqYWxhIDx2 aWxsZS5zeXJqYWxhQGxpbnV4LmludGVsLmNvbT4KPiA+ID4gQ2M6IEFudXNoYSBTcml2YXRzYSA8 YW51c2hhLnNyaXZhdHNhQGludGVsLmNvbT4KPiA+ID4gU2lnbmVkLW9mZi1ieTogTWFuYXNpIE5h dmFyZSA8bWFuYXNpLmQubmF2YXJlQGludGVsLmNvbT4KPiA+ID4gUmV2aWV3ZWQtYnk6IEFudXNo YSBTcml2YXRzYSA8YW51c2hhLnNyaXZhdHNhQGludGVsLmNvbT4KPiA+ID4gUmV2aWV3ZWQtYnk6 IEdhdXJhdiBLIFNpbmdoIDxnYXVyYXYuay5zaW5naEBpbnRlbC5jb20+Cj4gPiA+IC0tLQo+ID4g PiAgZHJpdmVycy9ncHUvZHJtL2RybV9kcF9oZWxwZXIuYyB8IDkwICsrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKwo+ID4gPiAgaW5jbHVkZS9kcm0vZHJtX2RwX2hlbHBlci5oICAgICB8 IDMwICsrKysrKysrKysrCj4gPiA+ICAyIGZpbGVzIGNoYW5nZWQsIDEyMCBpbnNlcnRpb25zKCsp Cj4gPiA+Cj4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2RwX2hlbHBlci5j IGIvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9oZWxwZXIuYwo+ID4gPiBpbmRleCAzN2MwMWI2MDc2 ZWMuLjZkNDgzNDg3ZjJiNCAxMDA2NDQKPiA+ID4gLS0tIGEvZHJpdmVycy9ncHUvZHJtL2RybV9k cF9oZWxwZXIuYwo+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJtX2RwX2hlbHBlci5jCj4g PiA+IEBAIC0xMzUyLDMgKzEzNTIsOTMgQEAgaW50IGRybV9kcF9yZWFkX2Rlc2Moc3RydWN0IGRy bV9kcF9hdXggKmF1eCwgc3RydWN0IGRybV9kcF9kZXNjICpkZXNjLAo+ID4gPiAgICAgICByZXR1 cm4gMDsKPiA+ID4gIH0KPiA+ID4gIEVYUE9SVF9TWU1CT0woZHJtX2RwX3JlYWRfZGVzYyk7Cj4g PiA+ICsKPiA+ID4gKy8qKgo+ID4gPiArICogRFJNIERQIEhlbHBlcnMgZm9yIERTQwo+ID4gPiAr ICovCj4gPgo+ID4gVGhpcyBpc24ndCByZWFsbHkga2VybmVsZG9jLiBDYW4geW91IHBscyBmaXgg aXQsIGluY2x1ZGluZyBhbGwgdGhlIG90aGVyCj4gPiBuZXcgZXhwb3J0ZWQgZnVuY3Rpb25zPwo+ IAo+IFBpbmcuIFN0aWxsIG5vdCBmaXhlZCwgYW5kIGl0J3Mgd2VsbCBvdmVyIG9uZSBtb250aCBu b3cuIFdvdWxkIGJlIG5pY2UKPiB0byBnZXQgdGhpcyBzb3J0ZWQuIEknZCB0eXBlIHRoZSBkb2Nz IG15c2VsZiwgYnV0IEkgZG9uJ3QgcmVhbGx5IGhhdmUKPiBhbiBpZGVhIGFib3V0IERTQy4KPiAK CkhhLCB0aGlzIGlzIGdvb2QgdGltaW5nLCBJIGp1c3Qgc3R1bWJsZWQgb3ZlciB0aGUgZm9sbG93 aW5nIGh0bWxkb2NzIHdhcm5pbmdzOgouLi9kcml2ZXJzL2dwdS9kcm0vZHJtX2RwX2hlbHBlci5j OjEzNjg6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFtZXRlciBvciBtZW1iZXIgJ2RzY19kcGNkJyBu b3QgZGVzY3JpYmVkIGluICdkcm1fZHBfZHNjX3NpbmtfbWF4X3NsaWNlX2NvdW50JwouLi9kcml2 ZXJzL2dwdS9kcm0vZHJtX2RwX2hlbHBlci5jOjEzNjg6IHdhcm5pbmc6IEZ1bmN0aW9uIHBhcmFt ZXRlciBvciBtZW1iZXIgJ2lzX2VkcCcgbm90IGRlc2NyaWJlZCBpbiAnZHJtX2RwX2RzY19zaW5r X21heF9zbGljZV9jb3VudCcKCkkgdHJpZWQgdG8gYWRkIHRoZW0sIGJ1dCB0aGVyZSdzIGEgbG90 IG9mIGRzYyBmdW5jdGlvbnMgdGhhdCBuZWVkIGRvY3MgYW5kIEkKZG9uJ3QgaGF2ZSB0aGUgdGlt ZS9lbmVyZ3kgdG8gZG9jdW1lbnQgdGhlbSBwcm9wZXJseS4KClNvLCBJJ2xsIGVjaG8gRGFuaWVs J3MgcmVxdWVzdC4KClNlYW4KCj4gVGhhbmtzLCBEYW5pZWwKPiAKPiA+Cj4gPiBUaGFua3MsIERh bmllbAo+ID4KPiA+ID4gK3U4IGRybV9kcF9kc2Nfc2lua19tYXhfc2xpY2VfY291bnQoY29uc3Qg dTggZHNjX2RwY2RbRFBfRFNDX1JFQ0VJVkVSX0NBUF9TSVpFXSwKPiA+ID4gKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc19lZHApCj4gPiA+ICt7Cj4gPiA+ICsgICAgIHU4 IHNsaWNlX2NhcDEgPSBkc2NfZHBjZFtEUF9EU0NfU0xJQ0VfQ0FQXzEgLSBEUF9EU0NfU1VQUE9S VF07Cj4gPiA+ICsKPiA+ID4gKyAgICAgaWYgKGlzX2VkcCkgewo+ID4gPiArICAgICAgICAgICAg IC8qIEZvciBlRFAsIHJlZ2lzdGVyIERTQ19TTElDRV9DQVBBQklMSVRJRVNfMSBnaXZlcyBzbGlj ZSBjb3VudCAqLwo+ID4gPiArICAgICAgICAgICAgIGlmIChzbGljZV9jYXAxICYgRFBfRFNDXzRf UEVSX0RQX0RTQ19TSU5LKQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDQ7Cj4g PiA+ICsgICAgICAgICAgICAgaWYgKHNsaWNlX2NhcDEgJiBEUF9EU0NfMl9QRVJfRFBfRFNDX1NJ TkspCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMjsKPiA+ID4gKyAgICAgICAg ICAgICBpZiAoc2xpY2VfY2FwMSAmIERQX0RTQ18xX1BFUl9EUF9EU0NfU0lOSykKPiA+ID4gKyAg ICAgICAgICAgICAgICAgICAgIHJldHVybiAxOwo+ID4gPiArICAgICB9IGVsc2Ugewo+ID4gPiAr ICAgICAgICAgICAgIC8qIEZvciBEUCwgdXNlIHZhbHVlcyBmcm9tIERTQ19TTElDRV9DQVBfMSBh bmQgRFNDX1NMSUNFX0NBUDIgKi8KPiA+ID4gKyAgICAgICAgICAgICB1OCBzbGljZV9jYXAyID0g ZHNjX2RwY2RbRFBfRFNDX1NMSUNFX0NBUF8yIC0gRFBfRFNDX1NVUFBPUlRdOwo+ID4gPiArCj4g PiA+ICsgICAgICAgICAgICAgaWYgKHNsaWNlX2NhcDIgJiBEUF9EU0NfMjRfUEVSX0RQX0RTQ19T SU5LKQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDI0Owo+ID4gPiArICAgICAg ICAgICAgIGlmIChzbGljZV9jYXAyICYgRFBfRFNDXzIwX1BFUl9EUF9EU0NfU0lOSykKPiA+ID4g KyAgICAgICAgICAgICAgICAgICAgIHJldHVybiAyMDsKPiA+ID4gKyAgICAgICAgICAgICBpZiAo c2xpY2VfY2FwMiAmIERQX0RTQ18xNl9QRVJfRFBfRFNDX1NJTkspCj4gPiA+ICsgICAgICAgICAg ICAgICAgICAgICByZXR1cm4gMTY7Cj4gPiA+ICsgICAgICAgICAgICAgaWYgKHNsaWNlX2NhcDEg JiBEUF9EU0NfMTJfUEVSX0RQX0RTQ19TSU5LKQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAg cmV0dXJuIDEyOwo+ID4gPiArICAgICAgICAgICAgIGlmIChzbGljZV9jYXAxICYgRFBfRFNDXzEw X1BFUl9EUF9EU0NfU0lOSykKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiAxMDsK PiA+ID4gKyAgICAgICAgICAgICBpZiAoc2xpY2VfY2FwMSAmIERQX0RTQ184X1BFUl9EUF9EU0Nf U0lOSykKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiA4Owo+ID4gPiArICAgICAg ICAgICAgIGlmIChzbGljZV9jYXAxICYgRFBfRFNDXzZfUEVSX0RQX0RTQ19TSU5LKQo+ID4gPiAr ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDY7Cj4gPiA+ICsgICAgICAgICAgICAgaWYgKHNs aWNlX2NhcDEgJiBEUF9EU0NfNF9QRVJfRFBfRFNDX1NJTkspCj4gPiA+ICsgICAgICAgICAgICAg ICAgICAgICByZXR1cm4gNDsKPiA+ID4gKyAgICAgICAgICAgICBpZiAoc2xpY2VfY2FwMSAmIERQ X0RTQ18yX1BFUl9EUF9EU0NfU0lOSykKPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIHJldHVy biAyOwo+ID4gPiArICAgICAgICAgICAgIGlmIChzbGljZV9jYXAxICYgRFBfRFNDXzFfUEVSX0RQ X0RTQ19TSU5LKQo+ID4gPiArICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7Cj4gPiA+ICsg ICAgIH0KPiA+ID4gKwo+ID4gPiArICAgICByZXR1cm4gMDsKPiA+ID4gK30KPiA+ID4gK0VYUE9S VF9TWU1CT0woZHJtX2RwX2RzY19zaW5rX21heF9zbGljZV9jb3VudCk7Cj4gPiA+ICsKPiA+ID4g K3U4IGRybV9kcF9kc2Nfc2lua19saW5lX2J1Zl9kZXB0aChjb25zdCB1OCBkc2NfZHBjZFtEUF9E U0NfUkVDRUlWRVJfQ0FQX1NJWkVdKQo+ID4gPiArewo+ID4gPiArICAgICB1OCBsaW5lX2J1Zl9k ZXB0aCA9IGRzY19kcGNkW0RQX0RTQ19MSU5FX0JVRl9CSVRfREVQVEggLSBEUF9EU0NfU1VQUE9S VF07Cj4gPiA+ICsKPiA+ID4gKyAgICAgc3dpdGNoIChsaW5lX2J1Zl9kZXB0aCAmIERQX0RTQ19M SU5FX0JVRl9CSVRfREVQVEhfTUFTSykgewo+ID4gPiArICAgICBjYXNlIERQX0RTQ19MSU5FX0JV Rl9CSVRfREVQVEhfOToKPiA+ID4gKyAgICAgICAgICAgICByZXR1cm4gOTsKPiA+ID4gKyAgICAg Y2FzZSBEUF9EU0NfTElORV9CVUZfQklUX0RFUFRIXzEwOgo+ID4gPiArICAgICAgICAgICAgIHJl dHVybiAxMDsKPiA+ID4gKyAgICAgY2FzZSBEUF9EU0NfTElORV9CVUZfQklUX0RFUFRIXzExOgo+ ID4gPiArICAgICAgICAgICAgIHJldHVybiAxMTsKPiA+ID4gKyAgICAgY2FzZSBEUF9EU0NfTElO RV9CVUZfQklUX0RFUFRIXzEyOgo+ID4gPiArICAgICAgICAgICAgIHJldHVybiAxMjsKPiA+ID4g KyAgICAgY2FzZSBEUF9EU0NfTElORV9CVUZfQklUX0RFUFRIXzEzOgo+ID4gPiArICAgICAgICAg ICAgIHJldHVybiAxMzsKPiA+ID4gKyAgICAgY2FzZSBEUF9EU0NfTElORV9CVUZfQklUX0RFUFRI XzE0Ogo+ID4gPiArICAgICAgICAgICAgIHJldHVybiAxNDsKPiA+ID4gKyAgICAgY2FzZSBEUF9E U0NfTElORV9CVUZfQklUX0RFUFRIXzE1Ogo+ID4gPiArICAgICAgICAgICAgIHJldHVybiAxNTsK PiA+ID4gKyAgICAgY2FzZSBEUF9EU0NfTElORV9CVUZfQklUX0RFUFRIXzE2Ogo+ID4gPiArICAg ICAgICAgICAgIHJldHVybiAxNjsKPiA+ID4gKyAgICAgY2FzZSBEUF9EU0NfTElORV9CVUZfQklU X0RFUFRIXzg6Cj4gPiA+ICsgICAgICAgICAgICAgcmV0dXJuIDg7Cj4gPiA+ICsgICAgIH0KPiA+ ID4gKwo+ID4gPiArICAgICByZXR1cm4gMDsKPiA+ID4gK30KPiA+ID4gK0VYUE9SVF9TWU1CT0wo ZHJtX2RwX2RzY19zaW5rX2xpbmVfYnVmX2RlcHRoKTsKPiA+ID4gKwo+ID4gPiArdTggZHJtX2Rw X2RzY19zaW5rX21heF9jb2xvcl9kZXB0aChjb25zdCB1OCBkc2NfZHBjZFtEUF9EU0NfUkVDRUlW RVJfQ0FQX1NJWkVdKQo+ID4gPiArewo+ID4gPiArICAgICB1OCBjb2xvcl9kZXB0aCA9IGRzY19k cGNkW0RQX0RTQ19ERUNfQ09MT1JfREVQVEhfQ0FQIC0gRFBfRFNDX1NVUFBPUlRdOwo+ID4gPiAr Cj4gPiA+ICsgICAgIGlmIChjb2xvcl9kZXB0aCAmIERQX0RTQ18xMl9CUEMpCj4gPiA+ICsgICAg ICAgICAgICAgcmV0dXJuIDEyOwo+ID4gPiArICAgICBpZiAoY29sb3JfZGVwdGggJiBEUF9EU0Nf MTBfQlBDKQo+ID4gPiArICAgICAgICAgICAgIHJldHVybiAxMDsKPiA+ID4gKyAgICAgaWYgKGNv bG9yX2RlcHRoICYgRFBfRFNDXzhfQlBDKQo+ID4gPiArICAgICAgICAgICAgIHJldHVybiA4Owo+ ID4gPiArCj4gPiA+ICsgICAgIHJldHVybiAwOwo+ID4gPiArfQo+ID4gPiArRVhQT1JUX1NZTUJP TChkcm1fZHBfZHNjX3NpbmtfbWF4X2NvbG9yX2RlcHRoKTsKPiA+ID4gZGlmZiAtLWdpdCBhL2lu Y2x1ZGUvZHJtL2RybV9kcF9oZWxwZXIuaCBiL2luY2x1ZGUvZHJtL2RybV9kcF9oZWxwZXIuaAo+ ID4gPiBpbmRleCBkZDMzZDU5NzM5ZjguLjdmN2Y1Yjk2NTQ2NiAxMDA2NDQKPiA+ID4gLS0tIGEv aW5jbHVkZS9kcm0vZHJtX2RwX2hlbHBlci5oCj4gPiA+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9k cF9oZWxwZXIuaAo+ID4gPiBAQCAtMTA2Nyw2ICsxMDY3LDM2IEBAIGRybV9kcF9pc19icmFuY2go Y29uc3QgdTggZHBjZFtEUF9SRUNFSVZFUl9DQVBfU0laRV0pCj4gPiA+ICAgICAgIHJldHVybiBk cGNkW0RQX0RPV05TVFJFQU1QT1JUX1BSRVNFTlRdICYgRFBfRFdOX1NUUk1fUE9SVF9QUkVTRU5U Owo+ID4gPiAgfQo+ID4gPgo+ID4gPiArLyogRFAvZURQIERTQyBzdXBwb3J0ICovCj4gPiA+ICt1 OCBkcm1fZHBfZHNjX3NpbmtfbWF4X3NsaWNlX2NvdW50KGNvbnN0IHU4IGRzY19kcGNkW0RQX0RT Q19SRUNFSVZFUl9DQVBfU0laRV0sCj4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGJvb2wgaXNfZWRwKTsKPiA+ID4gK3U4IGRybV9kcF9kc2Nfc2lua19saW5lX2J1Zl9kZXB0 aChjb25zdCB1OCBkc2NfZHBjZFtEUF9EU0NfUkVDRUlWRVJfQ0FQX1NJWkVdKTsKPiA+ID4gK3U4 IGRybV9kcF9kc2Nfc2lua19tYXhfY29sb3JfZGVwdGgoY29uc3QgdTggZHNjX2RwY1tEUF9EU0Nf UkVDRUlWRVJfQ0FQX1NJWkVdKTsKPiA+ID4gKwo+ID4gPiArc3RhdGljIGlubGluZSBib29sCj4g PiA+ICtkcm1fZHBfc2lua19zdXBwb3J0c19kc2MoY29uc3QgdTggZHNjX2RwY2RbRFBfRFNDX1JF Q0VJVkVSX0NBUF9TSVpFXSkKPiA+ID4gK3sKPiA+ID4gKyAgICAgcmV0dXJuIGRzY19kcGNkW0RQ X0RTQ19TVVBQT1JUIC0gRFBfRFNDX1NVUFBPUlRdICYKPiA+ID4gKyAgICAgICAgICAgICBEUF9E U0NfREVDT01QUkVTU0lPTl9JU19TVVBQT1JURUQ7Cj4gPiA+ICt9Cj4gPiA+ICsKPiA+ID4gK3N0 YXRpYyBpbmxpbmUgdTE2Cj4gPiA+ICtkcm1fZWRwX2RzY19zaW5rX291dHB1dF9icHAoY29uc3Qg dTggZHNjX2RwY2RbRFBfRFNDX1JFQ0VJVkVSX0NBUF9TSVpFXSkKPiA+ID4gK3sKPiA+ID4gKyAg ICAgcmV0dXJuIGRzY19kcGNkW0RQX0RTQ19NQVhfQklUU19QRVJfUElYRUxfTE9XIC0gRFBfRFND X1NVUFBPUlRdIHwKPiA+ID4gKyAgICAgICAgICAgICAoZHNjX2RwY2RbRFBfRFNDX01BWF9CSVRT X1BFUl9QSVhFTF9ISSAtIERQX0RTQ19TVVBQT1JUXSAmCj4gPiA+ICsgICAgICAgICAgICAgIERQ X0RTQ19NQVhfQklUU19QRVJfUElYRUxfSElfTUFTSyA8PAo+ID4gPiArICAgICAgICAgICAgICBE UF9EU0NfTUFYX0JJVFNfUEVSX1BJWEVMX0hJX1NISUZUKTsKPiA+ID4gK30KPiA+ID4gKwo+ID4g PiArc3RhdGljIGlubGluZSB1MzIKPiA+ID4gK2RybV9kcF9kc2Nfc2lua19tYXhfc2xpY2Vfd2lk dGgoY29uc3QgdTggZHNjX2RwY2RbRFBfRFNDX1JFQ0VJVkVSX0NBUF9TSVpFXSkKPiA+ID4gK3sK PiA+ID4gKyAgICAgLyogTWF4IFNsaWNld2lkdGggPSBOdW1iZXIgb2YgUGl4ZWxzICogMzIwICov Cj4gPiA+ICsgICAgIHJldHVybiBkc2NfZHBjZFtEUF9EU0NfTUFYX1NMSUNFX1dJRFRIIC0gRFBf RFNDX1NVUFBPUlRdICoKPiA+ID4gKyAgICAgICAgICAgICBEUF9EU0NfU0xJQ0VfV0lEVEhfTVVM VElQTElFUjsKPiA+ID4gK30KPiA+ID4gKwo+ID4gPiAgLyoKPiA+ID4gICAqIERpc3BsYXlQb3J0 IEFVWCBjaGFubmVsCj4gPiA+ICAgKi8KPiA+ID4gLS0KPiA+ID4gMi4xOC4wCj4gPiA+Cj4gPiA+ IF9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCj4gPiA+IElu dGVsLWdmeCBtYWlsaW5nIGxpc3QKPiA+ID4gSW50ZWwtZ2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9y Zwo+ID4gPiBodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9tYWlsbWFuL2xpc3RpbmZvL2lu dGVsLWdmeAo+ID4KPiA+IC0tCj4gPiBEYW5pZWwgVmV0dGVyCj4gPiBTb2Z0d2FyZSBFbmdpbmVl ciwgSW50ZWwgQ29ycG9yYXRpb24KPiA+IGh0dHA6Ly9ibG9nLmZmd2xsLmNoCj4gCj4gCj4gCj4g LS0gCj4gRGFuaWVsIFZldHRlcgo+IFNvZnR3YXJlIEVuZ2luZWVyLCBJbnRlbCBDb3Jwb3JhdGlv bgo+ICs0MSAoMCkgNzkgMzY1IDU3IDQ4IC0gaHR0cDovL2Jsb2cuZmZ3bGwuY2gKPiBfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+IEludGVsLWdmeCBtYWls aW5nIGxpc3QKPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCj4gaHR0cHM6Ly9saXN0 cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngKCi0tIApTZWFuIFBh dWwsIFNvZnR3YXJlIEVuZ2luZWVyLCBHb29nbGUgLyBDaHJvbWl1bSBPUwpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK