From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: Re: [PATCH v6 04/28] drm/dp: DRM DP helper/macros to get DP sink DSC parameters Date: Wed, 30 Jan 2019 10:27:50 -0800 Message-ID: <20190130182740.GB5943@intel.com> References: <20181024222840.25683-1-manasi.d.navare@intel.com> <20181024222840.25683-5-manasi.d.navare@intel.com> <20181219185448.GU21184@phenom.ffwll.local> <20190130180657.GW114153@art_vandelay> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20190130180657.GW114153@art_vandelay> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: Sean Paul Cc: intel-gfx , dri-devel List-Id: dri-devel@lists.freedesktop.org T24gV2VkLCBKYW4gMzAsIDIwMTkgYXQgMDE6MDY6NTdQTSAtMDUwMCwgU2VhbiBQYXVsIHdyb3Rl Ogo+IE9uIFdlZCwgSmFuIDMwLCAyMDE5IGF0IDEyOjA2OjQ1UE0gKzAxMDAsIERhbmllbCBWZXR0 ZXIgd3JvdGU6Cj4gPiBPbiBXZWQsIERlYyAxOSwgMjAxOCBhdCA3OjU0IFBNIERhbmllbCBWZXR0 ZXIgPGRhbmllbEBmZndsbC5jaD4gd3JvdGU6Cj4gPiA+Cj4gPiA+IE9uIFdlZCwgT2N0IDI0LCAy MDE4IGF0IDAzOjI4OjE2UE0gLTA3MDAsIE1hbmFzaSBOYXZhcmUgd3JvdGU6Cj4gPiA+ID4gVGhp cyBwYXRjaCBhZGRzIGlubGluZSBmdW5jdGlvbnMgYW5kIGhlbHBlcnMgZm9yIG9idGFpbmluZwo+ ID4gPiA+IERQIHNpbmsncyBzdXBwb3J0ZWQgRFNDIHBhcmFtZXRlcnMgbGlrZSBEU0Mgc2luayBz dXBwb3J0LAo+ID4gPiA+IGVEUCBjb21wcmVzc2VkIEJQUCBzdXBwb3J0ZWQsIG1heGltdW0gc2xp Y2UgY291bnQgc3VwcG9ydGVkCj4gPiA+ID4gYnkgdGhlIHNpbmsgZGV2aWNlcywgRFNDIGxpbmUg YnVmZmVyIGJpdCBkZXB0aCBzdXBwb3J0ZWQgb24gRFAgc2luaywKPiA+ID4gPiBEU0Mgc2luayBt YXhpbXVtIGNvbG9yIGRlcHRoIGJ5IHBhcnNpbmcgY29ycmVzcG9uZGluZyBEUENEIHJlZ2lzdGVy cy4KPiA+ID4gPgo+ID4gPiA+IHY0Ogo+ID4gPiA+ICogQWRkIGhlbHBlciB0byBnaXZlIGxpbmUg YnVmIGJpdCBkZXB0aCAoTWFuYXNpKQo+ID4gPiA+ICogQ29ycmVjdCB0aGUgYml0IG1hc2tpbmcg aW4gY29sb3IgZGVwdGggaGVscGVyIChtYW5hc2kpCj4gPiA+ID4gdjM6Cj4gPiA+ID4gKiBVc2Ug U0xJQ0VfQ0FQXzIgZm9yIERQIChBbnVzaGEpCj4gPiA+ID4gdjI6Cj4gPiA+ID4gKiBBZGQgRFND IHNpbmsgc3VwcG9ydCBtYWNybyAoSmFuaSBOKQo+ID4gPiA+Cj4gPiA+ID4gQ2M6IEdhdXJhdiBL IFNpbmdoIDxnYXVyYXYuay5zaW5naEBpbnRlbC5jb20+Cj4gPiA+ID4gQ2M6IGRyaS1kZXZlbEBs aXN0cy5mcmVlZGVza3RvcC5vcmcKPiA+ID4gPiBDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxh QGxpbnV4LmludGVsLmNvbT4KPiA+ID4gPiBDYzogVmlsbGUgU3lyamFsYSA8dmlsbGUuc3lyamFs YUBsaW51eC5pbnRlbC5jb20+Cj4gPiA+ID4gQ2M6IEFudXNoYSBTcml2YXRzYSA8YW51c2hhLnNy aXZhdHNhQGludGVsLmNvbT4KPiA+ID4gPiBTaWduZWQtb2ZmLWJ5OiBNYW5hc2kgTmF2YXJlIDxt YW5hc2kuZC5uYXZhcmVAaW50ZWwuY29tPgo+ID4gPiA+IFJldmlld2VkLWJ5OiBBbnVzaGEgU3Jp dmF0c2EgPGFudXNoYS5zcml2YXRzYUBpbnRlbC5jb20+Cj4gPiA+ID4gUmV2aWV3ZWQtYnk6IEdh dXJhdiBLIFNpbmdoIDxnYXVyYXYuay5zaW5naEBpbnRlbC5jb20+Cj4gPiA+ID4gLS0tCj4gPiA+ ID4gIGRyaXZlcnMvZ3B1L2RybS9kcm1fZHBfaGVscGVyLmMgfCA5MCArKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysKPiA+ID4gPiAgaW5jbHVkZS9kcm0vZHJtX2RwX2hlbHBlci5oICAg ICB8IDMwICsrKysrKysrKysrCj4gPiA+ID4gIDIgZmlsZXMgY2hhbmdlZCwgMTIwIGluc2VydGlv bnMoKykKPiA+ID4gPgo+ID4gPiA+IGRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vZHJtX2Rw X2hlbHBlci5jIGIvZHJpdmVycy9ncHUvZHJtL2RybV9kcF9oZWxwZXIuYwo+ID4gPiA+IGluZGV4 IDM3YzAxYjYwNzZlYy4uNmQ0ODM0ODdmMmI0IDEwMDY0NAo+ID4gPiA+IC0tLSBhL2RyaXZlcnMv Z3B1L2RybS9kcm1fZHBfaGVscGVyLmMKPiA+ID4gPiArKysgYi9kcml2ZXJzL2dwdS9kcm0vZHJt X2RwX2hlbHBlci5jCj4gPiA+ID4gQEAgLTEzNTIsMyArMTM1Miw5MyBAQCBpbnQgZHJtX2RwX3Jl YWRfZGVzYyhzdHJ1Y3QgZHJtX2RwX2F1eCAqYXV4LCBzdHJ1Y3QgZHJtX2RwX2Rlc2MgKmRlc2Ms Cj4gPiA+ID4gICAgICAgcmV0dXJuIDA7Cj4gPiA+ID4gIH0KPiA+ID4gPiAgRVhQT1JUX1NZTUJP TChkcm1fZHBfcmVhZF9kZXNjKTsKPiA+ID4gPiArCj4gPiA+ID4gKy8qKgo+ID4gPiA+ICsgKiBE Uk0gRFAgSGVscGVycyBmb3IgRFNDCj4gPiA+ID4gKyAqLwo+ID4gPgo+ID4gPiBUaGlzIGlzbid0 IHJlYWxseSBrZXJuZWxkb2MuIENhbiB5b3UgcGxzIGZpeCBpdCwgaW5jbHVkaW5nIGFsbCB0aGUg b3RoZXIKPiA+ID4gbmV3IGV4cG9ydGVkIGZ1bmN0aW9ucz8KPiA+IAo+ID4gUGluZy4gU3RpbGwg bm90IGZpeGVkLCBhbmQgaXQncyB3ZWxsIG92ZXIgb25lIG1vbnRoIG5vdy4gV291bGQgYmUgbmlj ZQo+ID4gdG8gZ2V0IHRoaXMgc29ydGVkLiBJJ2QgdHlwZSB0aGUgZG9jcyBteXNlbGYsIGJ1dCBJ IGRvbid0IHJlYWxseSBoYXZlCj4gPiBhbiBpZGVhIGFib3V0IERTQy4KPiA+IAo+IAo+IEhhLCB0 aGlzIGlzIGdvb2QgdGltaW5nLCBJIGp1c3Qgc3R1bWJsZWQgb3ZlciB0aGUgZm9sbG93aW5nIGh0 bWxkb2NzIHdhcm5pbmdzOgo+IC4uL2RyaXZlcnMvZ3B1L2RybS9kcm1fZHBfaGVscGVyLmM6MTM2 ODogd2FybmluZzogRnVuY3Rpb24gcGFyYW1ldGVyIG9yIG1lbWJlciAnZHNjX2RwY2QnIG5vdCBk ZXNjcmliZWQgaW4gJ2RybV9kcF9kc2Nfc2lua19tYXhfc2xpY2VfY291bnQnCj4gLi4vZHJpdmVy cy9ncHUvZHJtL2RybV9kcF9oZWxwZXIuYzoxMzY4OiB3YXJuaW5nOiBGdW5jdGlvbiBwYXJhbWV0 ZXIgb3IgbWVtYmVyICdpc19lZHAnIG5vdCBkZXNjcmliZWQgaW4gJ2RybV9kcF9kc2Nfc2lua19t YXhfc2xpY2VfY291bnQnCj4gCj4gSSB0cmllZCB0byBhZGQgdGhlbSwgYnV0IHRoZXJlJ3MgYSBs b3Qgb2YgZHNjIGZ1bmN0aW9ucyB0aGF0IG5lZWQgZG9jcyBhbmQgSQo+IGRvbid0IGhhdmUgdGhl IHRpbWUvZW5lcmd5IHRvIGRvY3VtZW50IHRoZW0gcHJvcGVybHkuCj4gCj4gU28sIEknbGwgZWNo byBEYW5pZWwncyByZXF1ZXN0Lgo+IAo+IFNlYW4KPgoKVGhhbmtzIFNlYW4sIEkgd2lsbCB1cGRh dGUgdGhlIGtlcm5lbCBkb2MgZm9yIHRoZXNlIGRzYyBoZWxwZXJzIGluIGRybV9kcF9oZWxwZXJz LmMgYXMgd2VsbC4KClJlZ2FyZHMKTWFuYXNpCiAKPiA+IFRoYW5rcywgRGFuaWVsCj4gPiAKPiA+ ID4KPiA+ID4gVGhhbmtzLCBEYW5pZWwKPiA+ID4KPiA+ID4gPiArdTggZHJtX2RwX2RzY19zaW5r X21heF9zbGljZV9jb3VudChjb25zdCB1OCBkc2NfZHBjZFtEUF9EU0NfUkVDRUlWRVJfQ0FQX1NJ WkVdLAo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvb2wgaXNfZWRw KQo+ID4gPiA+ICt7Cj4gPiA+ID4gKyAgICAgdTggc2xpY2VfY2FwMSA9IGRzY19kcGNkW0RQX0RT Q19TTElDRV9DQVBfMSAtIERQX0RTQ19TVVBQT1JUXTsKPiA+ID4gPiArCj4gPiA+ID4gKyAgICAg aWYgKGlzX2VkcCkgewo+ID4gPiA+ICsgICAgICAgICAgICAgLyogRm9yIGVEUCwgcmVnaXN0ZXIg RFNDX1NMSUNFX0NBUEFCSUxJVElFU18xIGdpdmVzIHNsaWNlIGNvdW50ICovCj4gPiA+ID4gKyAg ICAgICAgICAgICBpZiAoc2xpY2VfY2FwMSAmIERQX0RTQ180X1BFUl9EUF9EU0NfU0lOSykKPiA+ ID4gPiArICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDQ7Cj4gPiA+ID4gKyAgICAgICAgICAg ICBpZiAoc2xpY2VfY2FwMSAmIERQX0RTQ18yX1BFUl9EUF9EU0NfU0lOSykKPiA+ID4gPiArICAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIDI7Cj4gPiA+ID4gKyAgICAgICAgICAgICBpZiAoc2xp Y2VfY2FwMSAmIERQX0RTQ18xX1BFUl9EUF9EU0NfU0lOSykKPiA+ID4gPiArICAgICAgICAgICAg ICAgICAgICAgcmV0dXJuIDE7Cj4gPiA+ID4gKyAgICAgfSBlbHNlIHsKPiA+ID4gPiArICAgICAg ICAgICAgIC8qIEZvciBEUCwgdXNlIHZhbHVlcyBmcm9tIERTQ19TTElDRV9DQVBfMSBhbmQgRFND X1NMSUNFX0NBUDIgKi8KPiA+ID4gPiArICAgICAgICAgICAgIHU4IHNsaWNlX2NhcDIgPSBkc2Nf ZHBjZFtEUF9EU0NfU0xJQ0VfQ0FQXzIgLSBEUF9EU0NfU1VQUE9SVF07Cj4gPiA+ID4gKwo+ID4g PiA+ICsgICAgICAgICAgICAgaWYgKHNsaWNlX2NhcDIgJiBEUF9EU0NfMjRfUEVSX0RQX0RTQ19T SU5LKQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMjQ7Cj4gPiA+ID4gKyAg ICAgICAgICAgICBpZiAoc2xpY2VfY2FwMiAmIERQX0RTQ18yMF9QRVJfRFBfRFNDX1NJTkspCj4g PiA+ID4gKyAgICAgICAgICAgICAgICAgICAgIHJldHVybiAyMDsKPiA+ID4gPiArICAgICAgICAg ICAgIGlmIChzbGljZV9jYXAyICYgRFBfRFNDXzE2X1BFUl9EUF9EU0NfU0lOSykKPiA+ID4gPiAr ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE2Owo+ID4gPiA+ICsgICAgICAgICAgICAgaWYg KHNsaWNlX2NhcDEgJiBEUF9EU0NfMTJfUEVSX0RQX0RTQ19TSU5LKQo+ID4gPiA+ICsgICAgICAg ICAgICAgICAgICAgICByZXR1cm4gMTI7Cj4gPiA+ID4gKyAgICAgICAgICAgICBpZiAoc2xpY2Vf Y2FwMSAmIERQX0RTQ18xMF9QRVJfRFBfRFNDX1NJTkspCj4gPiA+ID4gKyAgICAgICAgICAgICAg ICAgICAgIHJldHVybiAxMDsKPiA+ID4gPiArICAgICAgICAgICAgIGlmIChzbGljZV9jYXAxICYg RFBfRFNDXzhfUEVSX0RQX0RTQ19TSU5LKQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gODsKPiA+ID4gPiArICAgICAgICAgICAgIGlmIChzbGljZV9jYXAxICYgRFBfRFNDXzZf UEVSX0RQX0RTQ19TSU5LKQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICByZXR1cm4gNjsK PiA+ID4gPiArICAgICAgICAgICAgIGlmIChzbGljZV9jYXAxICYgRFBfRFNDXzRfUEVSX0RQX0RT Q19TSU5LKQo+ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICByZXR1cm4gNDsKPiA+ID4gPiAr ICAgICAgICAgICAgIGlmIChzbGljZV9jYXAxICYgRFBfRFNDXzJfUEVSX0RQX0RTQ19TSU5LKQo+ ID4gPiA+ICsgICAgICAgICAgICAgICAgICAgICByZXR1cm4gMjsKPiA+ID4gPiArICAgICAgICAg ICAgIGlmIChzbGljZV9jYXAxICYgRFBfRFNDXzFfUEVSX0RQX0RTQ19TSU5LKQo+ID4gPiA+ICsg ICAgICAgICAgICAgICAgICAgICByZXR1cm4gMTsKPiA+ID4gPiArICAgICB9Cj4gPiA+ID4gKwo+ ID4gPiA+ICsgICAgIHJldHVybiAwOwo+ID4gPiA+ICt9Cj4gPiA+ID4gK0VYUE9SVF9TWU1CT0wo ZHJtX2RwX2RzY19zaW5rX21heF9zbGljZV9jb3VudCk7Cj4gPiA+ID4gKwo+ID4gPiA+ICt1OCBk cm1fZHBfZHNjX3NpbmtfbGluZV9idWZfZGVwdGgoY29uc3QgdTggZHNjX2RwY2RbRFBfRFNDX1JF Q0VJVkVSX0NBUF9TSVpFXSkKPiA+ID4gPiArewo+ID4gPiA+ICsgICAgIHU4IGxpbmVfYnVmX2Rl cHRoID0gZHNjX2RwY2RbRFBfRFNDX0xJTkVfQlVGX0JJVF9ERVBUSCAtIERQX0RTQ19TVVBQT1JU XTsKPiA+ID4gPiArCj4gPiA+ID4gKyAgICAgc3dpdGNoIChsaW5lX2J1Zl9kZXB0aCAmIERQX0RT Q19MSU5FX0JVRl9CSVRfREVQVEhfTUFTSykgewo+ID4gPiA+ICsgICAgIGNhc2UgRFBfRFNDX0xJ TkVfQlVGX0JJVF9ERVBUSF85Ogo+ID4gPiA+ICsgICAgICAgICAgICAgcmV0dXJuIDk7Cj4gPiA+ ID4gKyAgICAgY2FzZSBEUF9EU0NfTElORV9CVUZfQklUX0RFUFRIXzEwOgo+ID4gPiA+ICsgICAg ICAgICAgICAgcmV0dXJuIDEwOwo+ID4gPiA+ICsgICAgIGNhc2UgRFBfRFNDX0xJTkVfQlVGX0JJ VF9ERVBUSF8xMToKPiA+ID4gPiArICAgICAgICAgICAgIHJldHVybiAxMTsKPiA+ID4gPiArICAg ICBjYXNlIERQX0RTQ19MSU5FX0JVRl9CSVRfREVQVEhfMTI6Cj4gPiA+ID4gKyAgICAgICAgICAg ICByZXR1cm4gMTI7Cj4gPiA+ID4gKyAgICAgY2FzZSBEUF9EU0NfTElORV9CVUZfQklUX0RFUFRI XzEzOgo+ID4gPiA+ICsgICAgICAgICAgICAgcmV0dXJuIDEzOwo+ID4gPiA+ICsgICAgIGNhc2Ug RFBfRFNDX0xJTkVfQlVGX0JJVF9ERVBUSF8xNDoKPiA+ID4gPiArICAgICAgICAgICAgIHJldHVy biAxNDsKPiA+ID4gPiArICAgICBjYXNlIERQX0RTQ19MSU5FX0JVRl9CSVRfREVQVEhfMTU6Cj4g PiA+ID4gKyAgICAgICAgICAgICByZXR1cm4gMTU7Cj4gPiA+ID4gKyAgICAgY2FzZSBEUF9EU0Nf TElORV9CVUZfQklUX0RFUFRIXzE2Ogo+ID4gPiA+ICsgICAgICAgICAgICAgcmV0dXJuIDE2Owo+ ID4gPiA+ICsgICAgIGNhc2UgRFBfRFNDX0xJTkVfQlVGX0JJVF9ERVBUSF84Ogo+ID4gPiA+ICsg ICAgICAgICAgICAgcmV0dXJuIDg7Cj4gPiA+ID4gKyAgICAgfQo+ID4gPiA+ICsKPiA+ID4gPiAr ICAgICByZXR1cm4gMDsKPiA+ID4gPiArfQo+ID4gPiA+ICtFWFBPUlRfU1lNQk9MKGRybV9kcF9k c2Nfc2lua19saW5lX2J1Zl9kZXB0aCk7Cj4gPiA+ID4gKwo+ID4gPiA+ICt1OCBkcm1fZHBfZHNj X3NpbmtfbWF4X2NvbG9yX2RlcHRoKGNvbnN0IHU4IGRzY19kcGNkW0RQX0RTQ19SRUNFSVZFUl9D QVBfU0laRV0pCj4gPiA+ID4gK3sKPiA+ID4gPiArICAgICB1OCBjb2xvcl9kZXB0aCA9IGRzY19k cGNkW0RQX0RTQ19ERUNfQ09MT1JfREVQVEhfQ0FQIC0gRFBfRFNDX1NVUFBPUlRdOwo+ID4gPiA+ ICsKPiA+ID4gPiArICAgICBpZiAoY29sb3JfZGVwdGggJiBEUF9EU0NfMTJfQlBDKQo+ID4gPiA+ ICsgICAgICAgICAgICAgcmV0dXJuIDEyOwo+ID4gPiA+ICsgICAgIGlmIChjb2xvcl9kZXB0aCAm IERQX0RTQ18xMF9CUEMpCj4gPiA+ID4gKyAgICAgICAgICAgICByZXR1cm4gMTA7Cj4gPiA+ID4g KyAgICAgaWYgKGNvbG9yX2RlcHRoICYgRFBfRFNDXzhfQlBDKQo+ID4gPiA+ICsgICAgICAgICAg ICAgcmV0dXJuIDg7Cj4gPiA+ID4gKwo+ID4gPiA+ICsgICAgIHJldHVybiAwOwo+ID4gPiA+ICt9 Cj4gPiA+ID4gK0VYUE9SVF9TWU1CT0woZHJtX2RwX2RzY19zaW5rX21heF9jb2xvcl9kZXB0aCk7 Cj4gPiA+ID4gZGlmZiAtLWdpdCBhL2luY2x1ZGUvZHJtL2RybV9kcF9oZWxwZXIuaCBiL2luY2x1 ZGUvZHJtL2RybV9kcF9oZWxwZXIuaAo+ID4gPiA+IGluZGV4IGRkMzNkNTk3MzlmOC4uN2Y3ZjVi OTY1NDY2IDEwMDY0NAo+ID4gPiA+IC0tLSBhL2luY2x1ZGUvZHJtL2RybV9kcF9oZWxwZXIuaAo+ ID4gPiA+ICsrKyBiL2luY2x1ZGUvZHJtL2RybV9kcF9oZWxwZXIuaAo+ID4gPiA+IEBAIC0xMDY3 LDYgKzEwNjcsMzYgQEAgZHJtX2RwX2lzX2JyYW5jaChjb25zdCB1OCBkcGNkW0RQX1JFQ0VJVkVS X0NBUF9TSVpFXSkKPiA+ID4gPiAgICAgICByZXR1cm4gZHBjZFtEUF9ET1dOU1RSRUFNUE9SVF9Q UkVTRU5UXSAmIERQX0RXTl9TVFJNX1BPUlRfUFJFU0VOVDsKPiA+ID4gPiAgfQo+ID4gPiA+Cj4g PiA+ID4gKy8qIERQL2VEUCBEU0Mgc3VwcG9ydCAqLwo+ID4gPiA+ICt1OCBkcm1fZHBfZHNjX3Np bmtfbWF4X3NsaWNlX2NvdW50KGNvbnN0IHU4IGRzY19kcGNkW0RQX0RTQ19SRUNFSVZFUl9DQVBf U0laRV0sCj4gPiA+ID4gKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc19l ZHApOwo+ID4gPiA+ICt1OCBkcm1fZHBfZHNjX3NpbmtfbGluZV9idWZfZGVwdGgoY29uc3QgdTgg ZHNjX2RwY2RbRFBfRFNDX1JFQ0VJVkVSX0NBUF9TSVpFXSk7Cj4gPiA+ID4gK3U4IGRybV9kcF9k c2Nfc2lua19tYXhfY29sb3JfZGVwdGgoY29uc3QgdTggZHNjX2RwY1tEUF9EU0NfUkVDRUlWRVJf Q0FQX1NJWkVdKTsKPiA+ID4gPiArCj4gPiA+ID4gK3N0YXRpYyBpbmxpbmUgYm9vbAo+ID4gPiA+ ICtkcm1fZHBfc2lua19zdXBwb3J0c19kc2MoY29uc3QgdTggZHNjX2RwY2RbRFBfRFNDX1JFQ0VJ VkVSX0NBUF9TSVpFXSkKPiA+ID4gPiArewo+ID4gPiA+ICsgICAgIHJldHVybiBkc2NfZHBjZFtE UF9EU0NfU1VQUE9SVCAtIERQX0RTQ19TVVBQT1JUXSAmCj4gPiA+ID4gKyAgICAgICAgICAgICBE UF9EU0NfREVDT01QUkVTU0lPTl9JU19TVVBQT1JURUQ7Cj4gPiA+ID4gK30KPiA+ID4gPiArCj4g PiA+ID4gK3N0YXRpYyBpbmxpbmUgdTE2Cj4gPiA+ID4gK2RybV9lZHBfZHNjX3Npbmtfb3V0cHV0 X2JwcChjb25zdCB1OCBkc2NfZHBjZFtEUF9EU0NfUkVDRUlWRVJfQ0FQX1NJWkVdKQo+ID4gPiA+ ICt7Cj4gPiA+ID4gKyAgICAgcmV0dXJuIGRzY19kcGNkW0RQX0RTQ19NQVhfQklUU19QRVJfUElY RUxfTE9XIC0gRFBfRFNDX1NVUFBPUlRdIHwKPiA+ID4gPiArICAgICAgICAgICAgIChkc2NfZHBj ZFtEUF9EU0NfTUFYX0JJVFNfUEVSX1BJWEVMX0hJIC0gRFBfRFNDX1NVUFBPUlRdICYKPiA+ID4g PiArICAgICAgICAgICAgICBEUF9EU0NfTUFYX0JJVFNfUEVSX1BJWEVMX0hJX01BU0sgPDwKPiA+ ID4gPiArICAgICAgICAgICAgICBEUF9EU0NfTUFYX0JJVFNfUEVSX1BJWEVMX0hJX1NISUZUKTsK PiA+ID4gPiArfQo+ID4gPiA+ICsKPiA+ID4gPiArc3RhdGljIGlubGluZSB1MzIKPiA+ID4gPiAr ZHJtX2RwX2RzY19zaW5rX21heF9zbGljZV93aWR0aChjb25zdCB1OCBkc2NfZHBjZFtEUF9EU0Nf UkVDRUlWRVJfQ0FQX1NJWkVdKQo+ID4gPiA+ICt7Cj4gPiA+ID4gKyAgICAgLyogTWF4IFNsaWNl d2lkdGggPSBOdW1iZXIgb2YgUGl4ZWxzICogMzIwICovCj4gPiA+ID4gKyAgICAgcmV0dXJuIGRz Y19kcGNkW0RQX0RTQ19NQVhfU0xJQ0VfV0lEVEggLSBEUF9EU0NfU1VQUE9SVF0gKgo+ID4gPiA+ ICsgICAgICAgICAgICAgRFBfRFNDX1NMSUNFX1dJRFRIX01VTFRJUExJRVI7Cj4gPiA+ID4gK30K PiA+ID4gPiArCj4gPiA+ID4gIC8qCj4gPiA+ID4gICAqIERpc3BsYXlQb3J0IEFVWCBjaGFubmVs Cj4gPiA+ID4gICAqLwo+ID4gPiA+IC0tCj4gPiA+ID4gMi4xOC4wCj4gPiA+ID4KPiA+ID4gPiBf X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwo+ID4gPiA+IElu dGVsLWdmeCBtYWlsaW5nIGxpc3QKPiA+ID4gPiBJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0b3Au b3JnCj4gPiA+ID4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5m by9pbnRlbC1nZngKPiA+ID4KPiA+ID4gLS0KPiA+ID4gRGFuaWVsIFZldHRlcgo+ID4gPiBTb2Z0 d2FyZSBFbmdpbmVlciwgSW50ZWwgQ29ycG9yYXRpb24KPiA+ID4gaHR0cDovL2Jsb2cuZmZ3bGwu Y2gKPiA+IAo+ID4gCj4gPiAKPiA+IC0tIAo+ID4gRGFuaWVsIFZldHRlcgo+ID4gU29mdHdhcmUg RW5naW5lZXIsIEludGVsIENvcnBvcmF0aW9uCj4gPiArNDEgKDApIDc5IDM2NSA1NyA0OCAtIGh0 dHA6Ly9ibG9nLmZmd2xsLmNoCj4gPiBfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fXwo+ID4gSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdAo+ID4gSW50ZWwtZ2Z4QGxp c3RzLmZyZWVkZXNrdG9wLm9yZwo+ID4gaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngKPiAKPiAtLSAKPiBTZWFuIFBhdWwsIFNvZnR3YXJlIEVu Z2luZWVyLCBHb29nbGUgLyBDaHJvbWl1bSBPUwpfX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdmeEBsaXN0 cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK