From mboxrd@z Thu Jan 1 00:00:00 1970 From: Manasi Navare Subject: [PATCH v6 08/28] drm/dsc: Define Display Stream Compression PPS infoframe Date: Wed, 24 Oct 2018 15:28:20 -0700 Message-ID: <20181024222840.25683-9-manasi.d.navare@intel.com> References: <20181024222840.25683-1-manasi.d.navare@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181024222840.25683-1-manasi.d.navare@intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org Cc: Harry Wentland List-Id: dri-devel@lists.freedesktop.org VGhpcyBwYXRjaCBkZWZpbmVzIGEgbmV3IGhlYWRlciBmaWxlIGZvciBhbGwgdGhlIERTQyAxLjIg c3RydWN0dXJlcwphbmQgY3JlYXRlcyBhIHN0cnVjdHVyZSBmb3IgUFBTIGluZm9mcmFtZSB3aGlj aCB3aWxsIGJlIHVzZWQgdG8gc2VuZApwaWN0dXJlIHBhcmFtZXRlciBzZXQgc2Vjb25kYXJ5IGRh dGEgcGFja2V0IGZvciBkaXNwbGF5IHN0cmVhbSBjb21wcmVzc2lvbi4KQWxsIHRoZSBQUFMgaW5m b2ZyYW1lIHN5bnRheCBlbGVtZW50cyBhcmUgdGFrZW4gZnJvbSBEU0MgMS4yIHNwZWNpZmljYXRp b24KZnJvbSBWRVNBLgoKdjM6CiogQWRkIHRoZSBTUERYIHNob3J0aGFuZCAoQ2hyaXMgV2lsc29u KQp2MjoKKiBEbyBub3QgdXNlIGJpdGZpZWxkcyBpbiB0aGUgc3RydWN0IChKYW5pIE5pa3VsYSkK CkNjOiBHYXVyYXYgSyBTaW5naCA8Z2F1cmF2Lmsuc2luZ2hAaW50ZWwuY29tPgpDYzogZHJpLWRl dmVsQGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpDYzogSmFuaSBOaWt1bGEgPGphbmkubmlrdWxhQGxp bnV4LmludGVsLmNvbT4KQ2M6IFZpbGxlIFN5cmphbGEgPHZpbGxlLnN5cmphbGFAbGludXguaW50 ZWwuY29tPgpDYzogQW51c2hhIFNyaXZhdHNhIDxhbnVzaGEuc3JpdmF0c2FAaW50ZWwuY29tPgpD YzogSGFycnkgV2VudGxhbmQgPGhhcnJ5LndlbnRsYW5kQGFtZC5jb20+ClNpZ25lZC1vZmYtYnk6 IE1hbmFzaSBOYXZhcmUgPG1hbmFzaS5kLm5hdmFyZUBpbnRlbC5jb20+ClJldmlld2VkLWJ5OiBI YXJyeSBXZW50bGFuZCA8aGFycnkud2VudGxhbmRAYW1kLmNvbT4KLS0tCiBpbmNsdWRlL2RybS9k cm1fZHNjLmggfCAzNDcgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr CiAxIGZpbGUgY2hhbmdlZCwgMzQ3IGluc2VydGlvbnMoKykKIGNyZWF0ZSBtb2RlIDEwMDY0NCBp bmNsdWRlL2RybS9kcm1fZHNjLmgKCmRpZmYgLS1naXQgYS9pbmNsdWRlL2RybS9kcm1fZHNjLmgg Yi9pbmNsdWRlL2RybS9kcm1fZHNjLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMDAwLi4xZDhhMDM5ODNiOTAKLS0tIC9kZXYvbnVsbAorKysgYi9pbmNsdWRlL2RybS9kcm1f ZHNjLmgKQEAgLTAsMCArMSwzNDcgQEAKKy8qIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQK KyAqIENvcHlyaWdodCAoQykgMjAxOCBJbnRlbCBDb3JwLgorICoKKyAqIEF1dGhvcnM6CisgKiBN YW5hc2kgTmF2YXJlIDxtYW5hc2kuZC5uYXZhcmVAaW50ZWwuY29tPgorICovCisKKyNpZm5kZWYg RFJNX0RTQ19IXworI2RlZmluZSBEUk1fRFNDX0hfCisKKyNpbmNsdWRlIDxkcm0vZHJtX2RwX2hl bHBlci5oPgorCisvKiBWRVNBIERpc3BsYXkgU3RyZWFtIENvbXByZXNzaW9uIERTQyAxLjIgY29u c3RhbnRzICovCisjZGVmaW5lIERTQ19OVU1fQlVGX1JBTkdFUwkxNQorCisvKioKKyAqIHN0cnVj dCBwaWN0dXJlX3BhcmFtZXRlcl9zZXQgLSBSZXByZXNlbnRzIDEyOCBieXRlcyBvZiBQaWN0dXJl IFBhcmFtZXRlciBTZXQKKyAqCisgKiBUaGUgVkVTQSBEU0Mgc3RhbmRhcmQgZGVmaW5lcyBwaWN0 dXJlIHBhcmFtZXRlciBzZXQgKFBQUykgd2hpY2ggZGlzcGxheQorICogc3RyZWFtIGNvbXByZXNz aW9uIGVuY29kZXJzIG11c3QgY29tbXVuaWNhdGUgdG8gZGVjb2RlcnMuCisgKiBUaGUgUFBTIGlz IGVuY2Fwc3VsYXRlZCBpbiAxMjggYnl0ZXMgKFBQUyAwIHRocm91Z2ggUFBTIDEyNykuIFRoZSBm aWVsZHMgaW4KKyAqIHRoaXMgc3RydWN0dXJlIGFyZSBhcyBwZXIgVGFibGUgNC4xIGluIFZlc2Eg RFNDIHNwZWNpZmljYXRpb24gdjEuMS92MS4yLgorICogVGhlIFBQUyBmaWVsZHMgdGhhdCBzcGFu IG92ZXIgbW9yZSB0aGFuIGEgYnl0ZSBzaG91bGQgYmUgc3RvcmVkIGluIEJpZyBFbmRpYW4KKyAq IGZvcm1hdC4KKyAqLworc3RydWN0IHBpY3R1cmVfcGFyYW1ldGVyX3NldCB7CisJLyoqCisJICog QGRzY192ZXJzaW9uOgorCSAqIFBQUzBbMzowXSAtIGRzY192ZXJzaW9uX21pbm9yOiBDb250YWlu cyBNaW5vciB2ZXJzaW9uIG9mIERTQworCSAqIFBQUzBbNzo0XSAtIGRzY192ZXJzaW9uX21ham9y OiBDb250YWlucyBtYWpvciB2ZXJzaW9uIG9mIERTQworCSAqLworCXU4IGRzY192ZXJzaW9uOwor CS8qKgorCSAqIEBwcHNfaWRlbnRpZmllcjoKKwkgKiBQUFMxWzc6MF0gLSBBcHBsaWNhdGlvbiBz cGVjaWZpYyBpZGVudGlmaWVyIHRoYXQgY2FuIGJlCisJICogdXNlZCB0byBkaWZmZXJlbnRpYXRl IGJldHdlZW4gZGlmZmVyZW50IFBQUyB0YWJsZXMuCisJICovCisJdTggcHBzX2lkZW50aWZpZXI7 CisJLyoqCisJICogQHBwc19yZXNlcnZlZDoKKwkgKiBQUFMyWzc6MF0tIFJFU0VSVkVEIEJ5dGUK KwkgKi8KKwl1OCBwcHNfcmVzZXJ2ZWQ7CisJLyoqCisJICogQHBwc18zOgorCSAqIFBQUzNbMzow XSAtIGxpbmVidWZfZGVwdGg6IENvbnRhaW5zIGxpbmVidWZmZXIgYml0IGRlcHRoIHVzZWQgdG8K KwkgKiBnZW5lcmF0ZSB0aGUgYml0c3RyZWFtLiAoMHgwIC0gMTYgYml0cyBmb3IgRFNDIDEuMiwg MHg4IC0gOCBiaXRzLAorCSAqIDB4QSAtIDEwIGJpdHMsIDB4QiAtIDExIGJpdHMsIDB4QyAtIDEy IGJpdHMsIDB4RCAtIDEzIGJpdHMsCisJICogMHhFIC0gMTQgYml0cyBmb3IgRFNDMS4yLCAweEYg LSAxNCBiaXRzIGZvciBEU0MgMS4yLgorCSAqIFBQUzNbNzo0XSAtIGJpdHNfcGVyX2NvbXBvbmVu dDogQml0cyBwZXIgY29tcG9uZW50IGZvciB0aGUgb3JpZ2luYWwKKwkgKiBwaXhlbHMgb2YgdGhl IGVuY29kZWQgcGljdHVyZS4KKwkgKiAweDAgPSAxNmJwYyAoYWxsb3dlZCBvbmx5IHdoZW4gZHNj X3ZlcnNpb25fbWlub3IgPSAweDIpCisJICogMHg4ID0gOGJwYywgMHhBID0gMTBicGMsIDB4QyA9 IDEyYnBjLCAweEUgPSAxNGJwYyAoYWxzbworCSAqIGFsbG93ZWQgb25seSB3aGVuIGRzY19taW5v cl92ZXJzaW9uID0gMHgyKQorCSAqLworCXU4IHBwc18zOworCS8qKgorCSAqIEBwcHNfNDoKKwkg KiBQUFM0WzE6MF0gLVRoZXNlIGFyZSB0aGUgbW9zdCBzaWduaWZpY2FudCAyIGJpdHMgb2YKKwkg KiBjb21wcmVzc2VkIEJQUCBiaXRzX3Blcl9waXhlbFs5OjBdIHN5bnRheCBlbGVtZW50LgorCSAq IFBQUzRbMl0gLSB2YnJfZW5hYmxlOiAwID0gVkJSIGRpc2FibGVkLCAxID0gVkJSIGVuYWJsZWQK KwkgKiBQUFM0WzNdIC0gc2ltcGxlXzQyMjogSW5kaWNhdGVzIGlmIGRlY29kZXIgZHJvcHMgc2Ft cGxlcyB0bworCSAqIHJlY29uc3RydWN0IHRoZSA0OjI6MiBwaWN0dXJlLgorCSAqIFBQUzRbNF0g LSBDb252ZXJ0X3JnYjogSW5kaWNhdGVzIGlmIERTQyBjb2xvciBzcGFjZSBjb252ZXJzaW9uIGlz CisJICogYWN0aXZlLgorCSAqIFBQUzRbNV0gLSBibG9ia19wcmVkX2VuYWJsZTogSW5kaWNhdGVz IGlmIEJQIGlzIHVzZWQgdG8gY29kZSBhbnkKKwkgKiBncm91cHMgaW4gcGljdHVyZQorCSAqIFBQ UzRbNzo2XSAtIFJlc2V2ZWQgYml0cworCSAqLworCXU4IHBwc180OworCS8qKgorCSAqIEBiaXRz X3Blcl9waXhlbF9sb3c6CisJICogUFBTNVs3OjBdIC0gVGhpcyBpbmRpY2F0ZXMgdGhlIGxvd2Vy IHNpZ25pZmljYW50IDggYml0cyBvZgorCSAqIHRoZSBjb21wcmVzc2VkIEJQUCBiaXRzX3Blcl9w aXhlbFs5OjBdIGVsZW1lbnQuCisJICovCisJdTggYml0c19wZXJfcGl4ZWxfbG93OworCS8qKgor CSAqIEBwaWNfaGVpZ2h0OgorCSAqIFBQUzZbNzowXSwgUFBTN1s3OjBdIC1waWNfaGVpZ2h0OiBT cGVjaWZpZXMgdGhlIG51bWJlciBvZiBwaXhlbCByb3dzCisJICogd2l0aGluIHRoZSByYXN0ZXIu CisJICovCisJX19iZTE2IHBpY19oZWlnaHQ7CisJLyoqCisJICogQHBpY193aWR0aDoKKwkgKiBQ UFM4Wzc6MF0sIFBQUzlbNzowXSAtIHBpY193aWR0aDogTnVtYmVyIG9mIHBpeGVsIGNvbHVtbnMg d2l0aGluCisJICogdGhlIHJhc3Rlci4KKwkgKi8KKwlfX2JlMTYgcGljX3dpZHRoOworCS8qKgor CSAqIEBzbGljZV9oZWlnaHQ6CisJICogUFBTMTBbNzowXSwgUFBTMTFbNzowXSAtIFNsaWNlIGhl aWdodCBpbiB1bml0cyBvZiBwaXhlbHMuCisJICovCisJX19iZTE2IHNsaWNlX2hlaWdodDsKKwkv KioKKwkgKiBAc2xpY2Vfd2lkdGg6CisJICogUFBTMTJbNzowXSwgUFBTMTNbNzowXSAtIFNsaWNl IHdpZHRoIGluIHRlcm1zIG9mIHBpeGVscy4KKwkgKi8KKwlfX2JlMTYgc2xpY2Vfd2lkdGg7CisJ LyoqCisJICogQGNodW5rX3NpemU6CisJICogUFBTMTRbNzowXSwgUFBTMTVbNzowXSAtIFNpemUg aW4gdW5pdHMgb2YgYnl0ZXMgb2YgdGhlIGNodW5rcworCSAqIHRoYXQgYXJlIHVzZWQgZm9yIHNs aWNlIG11bHRpcGxleGluZy4KKwkgKi8KKwlfX2JlMTYgY2h1bmtfc2l6ZTsKKwkvKioKKwkgKiBA aW5pdGlhbF94bWl0X2RlbGF5X2hpZ2g6CisJICogUFBTMTZbMTowXSAtIE1vc3QgU2lnbmlmaWNh bnQgdHdvIGJpdHMgb2YgaW5pdGlhbCB0cmFuc21pc3Npb24gZGVsYXkuCisJICogSXQgc3BlY2lm aWVzIHRoZSBudW1iZXIgb2YgcGl4ZWwgdGltZXMgdGhhdCB0aGUgZW5jb2RlciB3YWl0cyBiZWZv cmUKKwkgKiB0cmFuc21pdHRpbmcgZGF0YSBmcm9tIGl0cyByYXRlIGJ1ZmZlci4KKwkgKiBQUFMx Nls3OjJdIC0gUmVzZXJ2ZWQKKwkgKi8KKwl1OCBpbml0aWFsX3htaXRfZGVsYXlfaGlnaDsKKwkv KioKKwkgKiBAaW5pdGlhbF94bWl0X2RlbGF5X2xvdzoKKwkgKiBQUFMxN1s3OjBdIC0gTGVhc3Qg c2lnbmlmaWNhbnQgOCBiaXRzIG9mIGluaXRpYWwgdHJhbnNtaXNzaW9uIGRlbGF5LgorCSAqLwor CXU4IGluaXRpYWxfeG1pdF9kZWxheV9sb3c7CisJLyoqCisJICogQGluaXRpYWxfZGVjX2RlbGF5 OgorCSAqCisJICogUFBTMThbNzowXSwgUFBTMTlbNzowXSAtIEluaXRpYWwgZGVjb2RpbmcgZGVs YXkgd2hpY2ggaXMgdGhlIG51bWJlcgorCSAqIG9mIHBpeGVsIHRpbWVzIHRoYXQgdGhlIGRlY29k ZXIgYWNjdW11bGF0ZXMgZGF0YSBpbiBpdHMgcmF0ZSBidWZmZXIKKwkgKiBiZWZvcmUgc3RhcnRp bmcgdG8gZGVjb2RlIGFuZCBvdXRwdXQgcGl4ZWxzLgorCSAqLworCV9fYmUxNiBpbml0aWFsX2Rl Y19kZWxheTsKKwkvKioKKwkgKiBAcHBzMjBfcmVzZXJ2ZWQ6CisJICoKKwkgKiBQUFMyMFs3OjBd IC0gUmVzZXJ2ZWQKKwkgKi8KKwl1OCBwcHMyMF9yZXNlcnZlZDsKKwkvKioKKwkgKiBAaW5pdGlh bF9zY2FsZV92YWx1ZToKKwkgKiBQUFMyMVs1OjBdIC0gSW5pdGlhbCByY1hmb3JtU2NhbGUgZmFj dG9yIHVzZWQgYXQgYmVnaW5uaW5nCisJICogb2YgYSBzbGljZS4KKwkgKiBQUFMyMVs3OjZdIC0g UmVzZXJ2ZWQKKwkgKi8KKwl1OCBpbml0aWFsX3NjYWxlX3ZhbHVlOworCS8qKgorCSAqIEBzY2Fs ZV9pbmNyZW1lbnRfaW50ZXJ2YWw6CisJICogUFBTMjJbNzowXSwgUFBTMjNbNzowXSAtIE51bWJl ciBvZiBncm91cCB0aW1lcyBiZXR3ZWVuIGluY3JlbWVudGluZworCSAqIHRoZSByY1hmb3JtU2Nh bGUgZmFjdG9yIGF0IGVuZCBvZiBhIHNsaWNlLgorCSAqLworCV9fYmUxNiBzY2FsZV9pbmNyZW1l bnRfaW50ZXJ2YWw7CisJLyoqCisJICogQHNjYWxlX2RlY3JlbWVudF9pbnRlcnZhbF9oaWdoOgor CSAqIFBQUzI0WzM6MF0gLSBIaWdoZXIgNCBiaXRzIGluZGljYXRpbmcgbnVtYmVyIG9mIGdyb3Vw IHRpbWVzIGJldHdlZW4KKwkgKiBkZWNyZW1lbnRpbmcgdGhlIHJjWGZvcm1TY2FsZSBmYWN0b3Ig YXQgYmVnaW5uaW5nIG9mIGEgc2xpY2UuCisJICogUFBTMjRbNzo0XSAtIFJlc2VydmVkCisJICov CisJdTggc2NhbGVfZGVjcmVtZW50X2ludGVydmFsX2hpZ2g7CisJLyoqCisJICogQHNjYWxlX2Rl Y3JlbWVudF9pbnRlcnZhbF9sb3c6CisJICogUFBTMjVbNzowXSAtIExvd2VyIDggYml0cyBvZiBz Y2FsZSBkZWNyZW1lbnQgaW50ZXJ2YWwKKwkgKi8KKwl1OCBzY2FsZV9kZWNyZW1lbnRfaW50ZXJ2 YWxfbG93OworCS8qKgorCSAqIEBwcHMyNl9yZXNlcnZlZDoKKwkgKiBQUFMyNls3OjBdCisJICov CisJdTggcHBzMjZfcmVzZXJ2ZWQ7CisJLyoqCisJICogQGZpcnN0X2xpbmVfYnBnX29mZnNldDoK KwkgKiBQUFMyN1s0OjBdIC0gTnVtYmVyIG9mIGFkZGl0aW9uYWwgYml0cyB0aGF0IGFyZSBhbGxv Y2F0ZWQKKwkgKiBmb3IgZWFjaCBncm91cCBvbiBmaXJzdCBsaW5lIG9mIGEgc2xpY2UuCisJICog UFBTMjdbNzo1XSAtIFJlc2VydmVkCisJICovCisJdTggZmlyc3RfbGluZV9icGdfb2Zmc2V0Owor CS8qKgorCSAqIEBuZmxfYnBnX29mZnNldDoKKwkgKiBQUFMyOFs3OjBdLCBQUFMyOVs3OjBdIC0g TnVtYmVyIG9mIGJpdHMgaW5jbHVkaW5nIGZyYWMgYml0cworCSAqIGRlYWxsb2NhdGVkIGZvciBl YWNoIGdyb3VwIGZvciBncm91cHMgYWZ0ZXIgdGhlIGZpcnN0IGxpbmUgb2Ygc2xpY2UuCisJICov CisJX19iZTE2IG5mbF9icGdfb2Zmc2V0OworCS8qKgorCSAqIEBzbGljZV9icGdfb2Zmc2V0Ogor CSAqIFBQUzMwLCBQUFMzMVs3OjBdIC0gTnVtYmVyIG9mIGJpdHMgdGhhdCBhcmUgZGVhbGxvY2F0 ZWQgZm9yIGVhY2gKKwkgKiBncm91cCB0byBlbmZvcmNlIHRoZSBzbGljZSBjb25zdHJhaW50Lgor CSAqLworCV9fYmUxNiBzbGljZV9icGdfb2Zmc2V0OworCS8qKgorCSAqIEBpbml0aWFsX29mZnNl dDoKKwkgKiBQUFMzMiwzM1s3OjBdIC0gSW5pdGlhbCB2YWx1ZSBmb3IgcmNYZm9ybU9mZnNldAor CSAqLworCV9fYmUxNiBpbml0aWFsX29mZnNldDsKKwkvKioKKwkgKiBAZmluYWxfb2Zmc2V0Ogor CSAqIFBQUzM0LDM1Wzc6MF0gLSBNYXhpbXVtIGVuZC1vZi1zbGljZSB2YWx1ZSBmb3IgcmNYZm9y bU9mZnNldAorCSAqLworCV9fYmUxNiBmaW5hbF9vZmZzZXQ7CisJLyoqCisJICogQGZsYXRuZXNz X21pbl9xcDoKKwkgKiBQUFMzNls0OjBdIC0gTWluaW11bSBRUCBhdCB3aGljaCBmbGF0bmVzcyBp cyBzaWduYWxlZCBhbmQKKwkgKiBmbGF0bmVzcyBRUCBhZGp1c3RtZW50IGlzIG1hZGUuCisJICog UFBTMzZbNzo1XSAtIFJlc2VydmVkCisJICovCisJdTggZmxhdG5lc3NfbWluX3FwOworCS8qKgor CSAqIEBmbGF0bmVzc19tYXhfcXA6CisJICogUFBTMzdbNDowXSAtIE1heCBRUCBhdCB3aGljaCBm bGF0bmVzcyBpcyBzaWduYWxsZWQgYW5kCisJICogdGhlIGZsYXRuZXNzIGFkanVzdG1lbnQgaXMg bWFkZS4KKwkgKiBQUFMzN1s3OjVdIC0gUmVzZXJ2ZWQKKwkgKi8KKwl1OCBmbGF0bmVzc19tYXhf cXA7CisJLyoqCisJICogQHJjX21vZGVsX3NpemU6CisJICogUFBTMzgsMzlbNzowXSAtIE51bWJl ciBvZiBiaXRzIHdpdGhpbiBSQyBNb2RlbC4KKwkgKi8KKwlfX2JlMTYgcmNfbW9kZWxfc2l6ZTsK KwkvKioKKwkgKiBAcmNfZWRnZV9mYWN0b3I6CisJICogUFBTNDBbMzowXSAtIFJhdGlvIG9mIGN1 cnJlbnQgYWN0aXZpdHkgdnMsIHByZXZpb3VzCisJICogYWN0aXZpdHkgdG8gZGV0ZXJtaW5lIHBy ZXNlbmNlIG9mIGVkZ2UuCisJICogUFBTNDBbNzo0XSAtIFJlc2VydmVkCisJICovCisJdTggcmNf ZWRnZV9mYWN0b3I7CisJLyoqCisJICogQHJjX3F1YW50X2luY3JfbGltaXQwOgorCSAqIFBQUzQx WzQ6MF0gLSBRUCB0aHJlc2hvbGQgdXNlZCBpbiBzaG9ydCB0ZXJtIFJDCisJICogUFBTNDFbNzo1 XSAtIFJlc2VydmVkCisJICovCisJdTggcmNfcXVhbnRfaW5jcl9saW1pdDA7CisJLyoqCisJICog QHJjX3F1YW50X2luY3JfbGltaXQxOgorCSAqIFBQUzQyWzQ6MF0gLSBRUCB0aHJlc2hvbGQgdXNl ZCBpbiBzaG9ydCB0ZXJtIFJDCisJICogUFBTNDJbNzo1XSAtIFJlc2VydmVkCisJICovCisJdTgg cmNfcXVhbnRfaW5jcl9saW1pdDE7CisJLyoqCisJICogQHJjX3RndF9vZmZzZXQ6CisJICogUFBT NDNbMzowXSAtIExvd2VyIGVuZCBvZiB0aGUgdmFyaWFiaWxpdHkgcmFuZ2UgYXJvdW5kIHRoZSB0 YXJnZXQKKwkgKiBiaXRzIHBlciBncm91cCB0aGF0IGlzIGFsbG93ZWQgYnkgc2hvcnQgdGVybSBS Qy4KKwkgKiBQUFM0M1s3OjRdLSBVcHBlciBlbmQgb2YgdGhlIHZhcmlhYmlsaXR5IHJhbmdlIGFy b3VuZCB0aGUgdGFyZ2V0CisJICogYml0cyBwZXIgZ3JvdXAgdGhhdCBpIGFsbG93ZWQgYnkgc2hv cnQgdGVybSByYy4KKwkgKi8KKwl1OCByY190Z3Rfb2Zmc2V0OworCS8qKgorCSAqIEByY19idWZf dGhyZXNoOgorCSAqIFBQUzQ0Wzc6MF0gLSBQUFM1N1s3OjBdIC0gU3BlY2lmaWVzIHRoZSB0aHJl c2hvbGRzIGluIFJDIG1vZGVsIGZvcgorCSAqIHRoZSAxNSByYW5nZXMgZGVmaW5lZCBieSAxNCB0 aHJlc2hvbGRzLgorCSAqLworCXU4IHJjX2J1Zl90aHJlc2hbRFNDX05VTV9CVUZfUkFOR0VTIC0g MV07CisJLyoqCisJICogQHJjX3JhbmdlX3BhcmFtZXRlcnM6CisJICogUFBTNThbNzowXSAtIFBQ Uzg3Wzc6MF0KKwkgKiBQYXJhbWV0ZXJzIHRoYXQgY29ycmVzcG9uZCB0byBlYWNoIG9mIHRoZSAx NSByYW5nZXMuCisJICovCisJX19iZTE2IHJjX3JhbmdlX3BhcmFtZXRlcnNbRFNDX05VTV9CVUZf UkFOR0VTXTsKKwkvKioKKwkgKiBAbmF0aXZlXzQyMl80MjA6CisJICogUFBTODhbMF0gLSAwID0g TmF0aXZlIDQ6MjoyIG5vdCB1c2VkCisJICogMSA9IE5hdGl2ZSA0OjI6MiB1c2VkCisJICogUFBT ODhbMV0gLSAwID0gTmF0aXZlIDQ6MjowIG5vdCB1c2UKKwkgKiAxID0gTmF0aXZlIDQ6MjowIHVz ZWQKKwkgKiBQUFM4OFs3OjJdIC0gUmVzZXJ2ZWQgNiBiaXRzCisJICovCisJdTggbmF0aXZlXzQy Ml80MjA7CisJLyoqCisJICogQHNlY29uZF9saW5lX2JwZ19vZmZzZXQ6CisJICogUFBTODlbNDow XSAtIEFkZGl0aW9uYWwgYml0cy9ncm91cCBidWRnZXQgZm9yIHRoZQorCSAqIHNlY29uZCBsaW5l IG9mIGEgc2xpY2UgaW4gTmF0aXZlIDQ6MjowIG1vZGUuCisJICogU2V0IHRvIDAgaWYgRFNDIG1p bm9yIHZlcnNpb24gaXMgMSBvciBuYXRpdmU0MjAgaXMgMC4KKwkgKiBQUFM4OVs3OjVdIC0gUmVz ZXJ2ZWQKKwkgKi8KKwl1OCBzZWNvbmRfbGluZV9icGdfb2Zmc2V0OworCS8qKgorCSAqIEBuc2xf YnBnX29mZnNldDoKKwkgKiBQUFM5MFs3OjBdLCBQUFM5MVs3OjBdIC0gTnVtYmVyIG9mIGJpdHMg dGhhdCBhcmUgZGVhbGxvY2F0ZWQKKwkgKiBmb3IgZWFjaCBncm91cCB0aGF0IGlzIG5vdCBpbiB0 aGUgc2Vjb25kIGxpbmUgb2YgYSBzbGljZS4KKwkgKi8KKwlfX2JlMTYgbnNsX2JwZ19vZmZzZXQ7 CisJLyoqCisJICogQHNlY29uZF9saW5lX29mZnNldF9hZGo6CisJICogUFBTOTJbNzowXSwgUFBT OTNbNzowXSAtIFVzZWQgYXMgb2Zmc2V0IGFkanVzdG1lbnQgZm9yIHRoZSBzZWNvbmQKKwkgKiBs aW5lIGluIE5hdGl2ZSA0OjI6MCBtb2RlLgorCSAqLworCV9fYmUxNiBzZWNvbmRfbGluZV9vZmZz ZXRfYWRqOworCS8qKgorCSAqIEBwcHNfbG9uZ185NF9yZXNlcnZlZDoKKwkgKiBQUFMgOTQsIDk1 LCA5NiwgOTcgLSBSZXNlcnZlZAorCSAqLworCXUzMiBwcHNfbG9uZ185NF9yZXNlcnZlZDsKKwkv KioKKwkgKiBAcHBzX2xvbmdfOThfcmVzZXJ2ZWQ6CisJICogUFBTIDk4LCA5OSwgMTAwLCAxMDEg LSBSZXNlcnZlZAorCSAqLworCXUzMiBwcHNfbG9uZ185OF9yZXNlcnZlZDsKKwkvKioKKwkgKiBA cHBzX2xvbmdfMTAyX3Jlc2VydmVkOgorCSAqIFBQUyAxMDIsIDEwMywgMTA0LCAxMDUgLSBSZXNl cnZlZAorCSAqLworCXUzMiBwcHNfbG9uZ18xMDJfcmVzZXJ2ZWQ7CisJLyoqCisJICogQHBwc19s b25nXzEwNl9yZXNlcnZlZDoKKwkgKiBQUFMgMTA2LCAxMDcsIDEwOCwgMTA5IC0gcmVzZXJ2ZWQK KwkgKi8KKwl1MzIgcHBzX2xvbmdfMTA2X3Jlc2VydmVkOworCS8qKgorCSAqIEBwcHNfbG9uZ18x MTBfcmVzZXJ2ZWQ6CisJICogUFBTIDExMCwgMTExLCAxMTIsIDExMyAtIHJlc2VydmVkCisJICov CisJdTMyIHBwc19sb25nXzExMF9yZXNlcnZlZDsKKwkvKioKKwkgKiBAcHBzX2xvbmdfMTE0X3Jl c2VydmVkOgorCSAqIFBQUyAxMTQgLSAxMTcgLSByZXNlcnZlZAorCSAqLworCXUzMiBwcHNfbG9u Z18xMTRfcmVzZXJ2ZWQ7CisJLyoqCisJICogQHBwc19sb25nXzExOF9yZXNlcnZlZDoKKwkgKiBQ UFMgMTE4IC0gMTIxIC0gcmVzZXJ2ZWQKKwkgKi8KKwl1MzIgcHBzX2xvbmdfMTE4X3Jlc2VydmVk OworCS8qKgorCSAqIEBwcHNfbG9uZ18xMjJfcmVzZXJ2ZWQ6CisJICogUFBTIDEyMi0gMTI1IC0g cmVzZXJ2ZWQKKwkgKi8KKwl1MzIgcHBzX2xvbmdfMTIyX3Jlc2VydmVkOworCS8qKgorCSAqIEBw cHNfc2hvcnRfMTI2X3Jlc2VydmVkOgorCSAqIFBQUyAxMjYsIDEyNyAtIHJlc2VydmVkCisJICov CisJX19iZTE2IHBwc19zaG9ydF8xMjZfcmVzZXJ2ZWQ7Cit9OworCisvKioKKyAqIHN0cnVjdCBk cm1fZHNjX3Bwc19pbmZvZnJhbWUgLSBEU0MgaW5mb2ZyYW1lIGNhcnJ5aW5nIHRoZSBQaWN0dXJl IFBhcmFtZXRlcgorICogU2V0IE1ldGFkYXRhCisgKgorICogVGhpcyBzdHJ1Y3R1cmUgcmVwcmVz ZW50cyB0aGUgRFNDIFBQUyBpbmZvZnJhbWUgcmVxdWlyZWQgdG8gc2VuZCB0aGUgUGljdHVyZQor ICogUGFyYW1ldGVyIFNldCBtZXRhZGF0YSByZXF1aXJlZCBiZWZvcmUgZW5hYmxpbmcgVkVTQSBE aXNwbGF5IFN0cmVhbQorICogQ29tcHJlc3Npb24uIFRoaXMgaXMgYmFzZWQgb24gdGhlIERQIFNl Y29uZGFyeSBEYXRhIFBhY2tldCBzdHJ1Y3R1cmUgYW5kCisgKiBjb21wcmlzZXMgb2YgU0RQIEhl YWRlciBhcyBkZWZpbmVkIGluIGRybV9kcF9oZWxwZXIuaCBhbmQgUFBTIHBheWxvYWQuCisgKgor ICogQHBwc19oZWFkZXI6CisgKgorICogSGVhZGVyIGZvciBQUFMgYXMgcGVyIERQIFNEUCBoZWFk ZXIgZm9ybWF0CisgKgorICogQHBwc19wYXlsb2FkOgorICoKKyAqIFBQUyBwYXlsb2FkIGZpZWxk cyBhcyBwZXIgRFNDIHNwZWNpZmljYXRpb24gVGFibGUgNC0xCisgKi8KK3N0cnVjdCBkcm1fZHNj X3Bwc19pbmZvZnJhbWUgeworCXN0cnVjdCBkcF9zZHBfaGVhZGVyIHBwc19oZWFkZXI7CisJc3Ry dWN0IHBpY3R1cmVfcGFyYW1ldGVyX3NldCBwcHNfcGF5bG9hZDsKK30gX19wYWNrZWQ7CisKKyNl bmRpZiAvKiBfRFJNX0RTQ19IXyAqLwotLSAKMi4xOC4wCgpfX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0CkludGVsLWdm eEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFp bG1hbi9saXN0aW5mby9pbnRlbC1nZngK