From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sean Paul Subject: [PATCH 6/8] drm/msm: dpu: Separate crtc assignment from vblank enable Date: Tue, 13 Nov 2018 15:52:49 -0500 Message-ID: <20181113205257.170707-6-sean@poorly.run> References: <20181113205257.170707-1-sean@poorly.run> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20181113205257.170707-1-sean@poorly.run> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: dri-devel@lists.freedesktop.org, freedreno@lists.freedesktop.org, linux-arm-msm@vger.kernel.org Cc: Sean Paul List-Id: linux-arm-msm@vger.kernel.org RnJvbTogU2VhbiBQYXVsIDxzZWFucGF1bEBjaHJvbWl1bS5vcmc+CgpJbnN0ZWFkIG9mIGFzc2ln bmluZy9jbGVhcmluZyB0aGUgY3J0YyBvbiB2YmxhbmsgZW5hYmxlL2Rpc2FibGUsIHdlIGNhbgpq dXN0IGFzc2lnbiBhbmQgY2xlYXIgdGhlIGNydGMgb24gbW9kZXNldC4gVGhhdCBhbGxvd3MgdXMg dG8ganVzdCB0b2dnbGUKdGhlIGVuY29kZXIncyB2YmxhbmsgaW50ZXJydXB0cyBvbiB2Ymxhbmtf ZW5hYmxlLgoKU28gd2h5IGlzIHRoaXMgaW1wb3J0YW50PyBQcmV2aW91c2x5IHRoZSBkcml2ZXIg d2FzIHVzaW5nIHRoZSBsZWdhY3kKcG9pbnRlcnMgdG8gYXNzaWduL2NsZWFyIHRoZSBjcnRjLiBM ZWdhY3kgcG9pbnRlcnMgYXJlIGNsZWFyZWQgX2FmdGVyXwpkaXNhYmxpbmcgdGhlIGhhcmR3YXJl LCBzbyB0aGUgbGVnYWN5IHBvaW50ZXIgd2FzIHZhbGlkIGR1cmluZwp2YmxhbmtfZGlzYWJsZSwg YnV0IHRoYXQncyBub3Qgc29tZXRoaW5nIHdlIHNob3VsZCByZWx5IG9uLgoKSW5zdGVhZCBvZiBy ZWx5aW5nIG9uIHRoZSBjb3JlIG9yZGVyaW5nIHRoZSBsZWdhY3kgcG9pbnRlciBhc3NpZ25tZW50 cwpqdXN0IHNvLCB3ZSdsbCBhc3NpZ24gdGhlIGNydGMgaW4gZHB1X2NydGMgZW5hYmxlL2Rpc2Fi bGUuIFRoaXMgaXMgdGhlCm9ubHkgcGxhY2UgdGhhdCBtYXBwaW5nIGNhbiBjaGFuZ2UsIHNvIHdl J3JlIGNvdmVyZWQgdGhlcmUuCgpXZSdyZSBhbHNvIHRha2luZyBhZHZhbnRhZ2Ugb2YgZHJtX2Ny dGNfdmJsYW5rX29uL29mZi4gQnkgdXNpbmcgdGhpcywgd2UKZW5zdXJlIHRoYXQgdmJsYW5rX2Vu YWJsZS9kaXNhYmxlIGNhbiBuZXZlciBiZSBjYWxsZWQgd2hpbGUgdGhlIGNydGMgaXMKb2ZmICh3 aGljaCBtZWFucyB0aGUgYXNzaWduZWQgY3J0YyB3aWxsIGFsd2F5cyBiZSB2YWxpZCkuIEFzIHN1 Y2gsIHdlCmRvbid0IG5lZWQgdG8gdXNlIG1vZGVzZXQgbG9ja3Mgb3IgdGhlIGNydGNfbG9jayBp biB0aGUKdmJsYW5rX2VuYWJsZS9kaXNhYmxlIHJvdXRpbmUgdG8gYmUgc3VyZSBzdGF0ZSBpcyBj b25zaXN0ZW50LgoKLi4uSSB0aGluay4KClNpZ25lZC1vZmYtYnk6IFNlYW4gUGF1bCA8c2VhbnBh dWxAY2hyb21pdW0ub3JnPgotLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9j cnRjLmMgICAgfCA3NyArKysrKysrKystLS0tLS0tLS0tLS0KIGRyaXZlcnMvZ3B1L2RybS9tc20v ZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmMgfCAyNyArKysrKy0tLQogZHJpdmVycy9ncHUvZHJtL21z bS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuaCB8IDEwICsrKwogMyBmaWxlcyBjaGFuZ2VkLCA1OSBp bnNlcnRpb25zKCspLCA1NSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kcml2ZXJzL2dwdS9k cm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jIGIvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2Rw dTEvZHB1X2NydGMuYwppbmRleCA0YjdmOThhNmFiNjAuLjU5ZTgyMzI4MWZkZiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2NydGMuYworKysgYi9kcml2ZXJz L2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfY3J0Yy5jCkBAIC03NTcsNDMgKzc1Nyw2IEBAIHZv aWQgZHB1X2NydGNfY29tbWl0X2tpY2tvZmYoc3RydWN0IGRybV9jcnRjICpjcnRjKQogCURQVV9B VFJBQ0VfRU5EKCJjcnRjX2NvbW1pdCIpOwogfQogCi0vKioKLSAqIF9kcHVfY3J0Y192Ymxhbmtf ZW5hYmxlX25vX2xvY2sgLSB1cGRhdGUgcG93ZXIgcmVzb3VyY2UgYW5kIHZibGFuayByZXF1ZXN0 Ci0gKiBAZHB1X2NydGM6IFBvaW50ZXIgdG8gZHB1IGNydGMgc3RydWN0dXJlCi0gKiBAZW5hYmxl OiBXaGV0aGVyIHRvIGVuYWJsZS9kaXNhYmxlIHZibGFua3MKLSAqLwotc3RhdGljIHZvaWQgX2Rw dV9jcnRjX3ZibGFua19lbmFibGVfbm9fbG9jaygKLQkJc3RydWN0IGRwdV9jcnRjICpkcHVfY3J0 YywgYm9vbCBlbmFibGUpCi17Ci0Jc3RydWN0IGRybV9jcnRjICpjcnRjID0gJmRwdV9jcnRjLT5i YXNlOwotCXN0cnVjdCBkcm1fZGV2aWNlICpkZXYgPSBjcnRjLT5kZXY7Ci0Jc3RydWN0IGRybV9l bmNvZGVyICplbmM7Ci0KLQlpZiAoZW5hYmxlKSB7Ci0JCWxpc3RfZm9yX2VhY2hfZW50cnkoZW5j LCAmZGV2LT5tb2RlX2NvbmZpZy5lbmNvZGVyX2xpc3QsIGhlYWQpIHsKLQkJCWlmIChlbmMtPmNy dGMgIT0gY3J0YykKLQkJCQljb250aW51ZTsKLQotCQkJdHJhY2VfZHB1X2NydGNfdmJsYW5rX2Vu YWJsZShEUk1JRCgmZHB1X2NydGMtPmJhc2UpLAotCQkJCQkJICAgICBEUk1JRChlbmMpLCBlbmFi bGUsCi0JCQkJCQkgICAgIGRwdV9jcnRjKTsKLQotCQkJZHB1X2VuY29kZXJfYXNzaWduX2NydGMo ZW5jLCBjcnRjKTsKLQkJfQotCX0gZWxzZSB7Ci0JCWxpc3RfZm9yX2VhY2hfZW50cnkoZW5jLCAm ZGV2LT5tb2RlX2NvbmZpZy5lbmNvZGVyX2xpc3QsIGhlYWQpIHsKLQkJCWlmIChlbmMtPmNydGMg IT0gY3J0YykKLQkJCQljb250aW51ZTsKLQotCQkJdHJhY2VfZHB1X2NydGNfdmJsYW5rX2VuYWJs ZShEUk1JRCgmZHB1X2NydGMtPmJhc2UpLAotCQkJCQkJICAgICBEUk1JRChlbmMpLCBlbmFibGUs Ci0JCQkJCQkgICAgIGRwdV9jcnRjKTsKLQotCQkJZHB1X2VuY29kZXJfYXNzaWduX2NydGMoZW5j LCBOVUxMKTsKLQkJfQotCX0KLX0KLQogLyoqCiAgKiBkcHVfY3J0Y19kdXBsaWNhdGVfc3RhdGUg LSBzdGF0ZSBkdXBsaWNhdGUgaG9vawogICogQGNydGM6IFBvaW50ZXIgdG8gZHJtIGNydGMgc3Ry dWN0dXJlCkBAIC04NDcsNiArODEwLDEwIEBAIHN0YXRpYyB2b2lkIGRwdV9jcnRjX2Rpc2FibGUo c3RydWN0IGRybV9jcnRjICpjcnRjLAogCS8qIERpc2FibGUvc2F2ZSB2YmxhbmsgaXJxIGhhbmRs aW5nICovCiAJZHJtX2NydGNfdmJsYW5rX29mZihjcnRjKTsKIAorCWRybV9mb3JfZWFjaF9lbmNv ZGVyX21hc2soZW5jb2RlciwgY3J0Yy0+ZGV2LAorCQkJCSAgb2xkX2NydGNfc3RhdGUtPmVuY29k ZXJfbWFzaykKKwkJZHB1X2VuY29kZXJfYXNzaWduX2NydGMoZW5jb2RlciwgTlVMTCk7CisKIAlt dXRleF9sb2NrKCZkcHVfY3J0Yy0+Y3J0Y19sb2NrKTsKIAogCS8qIHdhaXQgZm9yIGZyYW1lX2V2 ZW50X2RvbmUgY29tcGxldGlvbiAqLwpAQCAtODU2LDkgKzgyMyw2IEBAIHN0YXRpYyB2b2lkIGRw dV9jcnRjX2Rpc2FibGUoc3RydWN0IGRybV9jcnRjICpjcnRjLAogCQkJCWF0b21pY19yZWFkKCZk cHVfY3J0Yy0+ZnJhbWVfcGVuZGluZykpOwogCiAJdHJhY2VfZHB1X2NydGNfZGlzYWJsZShEUk1J RChjcnRjKSwgZmFsc2UsIGRwdV9jcnRjKTsKLQlpZiAoZHB1X2NydGMtPmVuYWJsZWQgJiYgZHB1 X2NydGMtPnZibGFua19yZXF1ZXN0ZWQpIHsKLQkJX2RwdV9jcnRjX3ZibGFua19lbmFibGVfbm9f bG9jayhkcHVfY3J0YywgZmFsc2UpOwotCX0KIAlkcHVfY3J0Yy0+ZW5hYmxlZCA9IGZhbHNlOwog CiAJaWYgKGF0b21pY19yZWFkKCZkcHVfY3J0Yy0+ZnJhbWVfcGVuZGluZykpIHsKQEAgLTkyMiwx MyArODg2LDEzIEBAIHN0YXRpYyB2b2lkIGRwdV9jcnRjX2VuYWJsZShzdHJ1Y3QgZHJtX2NydGMg KmNydGMsCiAKIAltdXRleF9sb2NrKCZkcHVfY3J0Yy0+Y3J0Y19sb2NrKTsKIAl0cmFjZV9kcHVf Y3J0Y19lbmFibGUoRFJNSUQoY3J0YyksIHRydWUsIGRwdV9jcnRjKTsKLQlpZiAoIWRwdV9jcnRj LT5lbmFibGVkICYmIGRwdV9jcnRjLT52YmxhbmtfcmVxdWVzdGVkKSB7Ci0JCV9kcHVfY3J0Y192 YmxhbmtfZW5hYmxlX25vX2xvY2soZHB1X2NydGMsIHRydWUpOwotCX0KIAlkcHVfY3J0Yy0+ZW5h YmxlZCA9IHRydWU7CiAKIAltdXRleF91bmxvY2soJmRwdV9jcnRjLT5jcnRjX2xvY2spOwogCisJ ZHJtX2Zvcl9lYWNoX2VuY29kZXJfbWFzayhlbmNvZGVyLCBjcnRjLT5kZXYsIGNydGMtPnN0YXRl LT5lbmNvZGVyX21hc2spCisJCWRwdV9lbmNvZGVyX2Fzc2lnbl9jcnRjKGVuY29kZXIsIGNydGMp OworCiAJLyogRW5hYmxlL3Jlc3RvcmUgdmJsYW5rIGlycSBoYW5kbGluZyAqLwogCWRybV9jcnRj X3ZibGFua19vbihjcnRjKTsKIH0KQEAgLTExNzMsMTAgKzExMzcsMzMgQEAgc3RhdGljIGludCBk cHVfY3J0Y19hdG9taWNfY2hlY2soc3RydWN0IGRybV9jcnRjICpjcnRjLAogaW50IGRwdV9jcnRj X3ZibGFuayhzdHJ1Y3QgZHJtX2NydGMgKmNydGMsIGJvb2wgZW4pCiB7CiAJc3RydWN0IGRwdV9j cnRjICpkcHVfY3J0YyA9IHRvX2RwdV9jcnRjKGNydGMpOworCXN0cnVjdCBkcm1fZW5jb2RlciAq ZW5jOwogCi0JbXV0ZXhfbG9jaygmZHB1X2NydGMtPmNydGNfbG9jayk7CiAJdHJhY2VfZHB1X2Ny dGNfdmJsYW5rKERSTUlEKCZkcHVfY3J0Yy0+YmFzZSksIGVuLCBkcHVfY3J0Yyk7Ci0JX2RwdV9j cnRjX3ZibGFua19lbmFibGVfbm9fbG9jayhkcHVfY3J0YywgZW4pOworCisJLyoKKwkgKiBOb3Jt YWxseSB3ZSB3b3VsZCBpdGVyYXRlIHRocm91Z2ggZW5jb2Rlcl9tYXNrIGluIGNydGMgc3RhdGUg dG8gZmluZAorCSAqIGF0dGFjaGVkIGVuY29kZXJzLiBJbiB0aGlzIGNhc2UsIHdlIG1pZ2h0IGJl IGRpc2FibGluZyB2YmxhbmsgX2FmdGVyXworCSAqIGVuY29kZXJfbWFzayBoYXMgYmVlbiBjbGVh cmVkLgorCSAqCisJICogSW5zdGVhZCwgd2UgImFzc2lnbiIgYSBjcnRjIHRvIHRoZSBlbmNvZGVy IGluIGVuYWJsZSBhbmQgY2xlYXIgaXQgaW4KKwkgKiBkaXNhYmxlICh3aGljaCBpcyBhbHNvIGFm dGVyIGVuY29kZXJfbWFzayBpcyBjbGVhcmVkKS4gU28gaW5zdGVhZCBvZgorCSAqIHVzaW5nIGVu Y29kZXIgbWFzaywgd2UnbGwgYXNrIHRoZSBlbmNvZGVyIHRvIHRvZ2dsZSBpdHNlbGYgaWZmIGl0 J3MKKwkgKiBjdXJyZW50bHkgYXNzaWduZWQgdG8gb3VyIGNydGMuCisJICoKKwkgKiBOb3RlIGFs c28gdGhhdCB0aGlzIGZ1bmN0aW9uIGNhbm5vdCBiZSBjYWxsZWQgd2hpbGUgY3J0YyBpcyBkaXNh YmxlZAorCSAqIHNpbmNlIHdlIHVzZSBkcm1fY3J0Y192Ymxhbmtfb24vb2ZmLiBTbyB3ZSBkb24n dCBuZWVkIHRvIHdvcnJ5CisJICogYWJvdXQgdGhlIGFzc2lnbmVkIGNydGNzIGJlaW5nIGluY29u c2lzdGVudCB3aXRoIHRoZSBjdXJyZW50IHN0YXRlCisJICogKHdoaWNoIG1lYW5zIG5vIG5lZWQg dG8gd29ycnkgYWJvdXQgbW9kZXNldCBsb2NrcykuCisJICovCisJbGlzdF9mb3JfZWFjaF9lbnRy eShlbmMsICZjcnRjLT5kZXYtPm1vZGVfY29uZmlnLmVuY29kZXJfbGlzdCwgaGVhZCkgeworCQl0 cmFjZV9kcHVfY3J0Y192YmxhbmtfZW5hYmxlKERSTUlEKGNydGMpLCBEUk1JRChlbmMpLCBlbiwK KwkJCQkJICAgICBkcHVfY3J0Yyk7CisKKwkJZHB1X2VuY29kZXJfdG9nZ2xlX3ZibGFua19mb3Jf Y3J0YyhlbmMsIGNydGMsIGVuKTsKKwl9CisKKwltdXRleF9sb2NrKCZkcHVfY3J0Yy0+Y3J0Y19s b2NrKTsKIAlkcHVfY3J0Yy0+dmJsYW5rX3JlcXVlc3RlZCA9IGVuOwogCW11dGV4X3VubG9jaygm ZHB1X2NydGMtPmNydGNfbG9jayk7CiAKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9tc20v ZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmMgYi9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9k cHVfZW5jb2Rlci5jCmluZGV4IGZkNjUxNGY2ODFhZS4uNTkxNGFlNzA1NzJjIDEwMDY0NAotLS0g YS9kcml2ZXJzL2dwdS9kcm0vbXNtL2Rpc3AvZHB1MS9kcHVfZW5jb2Rlci5jCisrKyBiL2RyaXZl cnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmMKQEAgLTEyNjcsMjIgKzEyNjcs MjkgQEAgdm9pZCBkcHVfZW5jb2Rlcl9hc3NpZ25fY3J0YyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmRy bV9lbmMsIHN0cnVjdCBkcm1fY3J0YyAqY3J0YykKIHsKIAlzdHJ1Y3QgZHB1X2VuY29kZXJfdmly dCAqZHB1X2VuYyA9IHRvX2RwdV9lbmNvZGVyX3ZpcnQoZHJtX2VuYyk7CiAJdW5zaWduZWQgbG9u ZyBsb2NrX2ZsYWdzOwotCWJvb2wgZW5hYmxlOwotCWludCBpOwotCi0JZW5hYmxlID0gY3J0YyA/ IHRydWUgOiBmYWxzZTsKLQotCWlmICghZHJtX2VuYykgewotCQlEUFVfRVJST1IoImludmFsaWQg ZW5jb2RlclxuIik7Ci0JCXJldHVybjsKLQl9Ci0JdHJhY2VfZHB1X2VuY192YmxhbmtfY2IoRFJN SUQoZHJtX2VuYyksIGVuYWJsZSk7CiAKIAlzcGluX2xvY2tfaXJxc2F2ZSgmZHB1X2VuYy0+ZW5j X3NwaW5sb2NrLCBsb2NrX2ZsYWdzKTsKIAkvKiBjcnRjIHNob3VsZCBhbHdheXMgYmUgY2xlYXJl ZCBiZWZvcmUgcmUtYXNzaWduaW5nICovCiAJV0FSTl9PTihjcnRjICYmIGRwdV9lbmMtPmNydGMp OwogCWRwdV9lbmMtPmNydGMgPSBjcnRjOwogCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRwdV9l bmMtPmVuY19zcGlubG9jaywgbG9ja19mbGFncyk7Cit9CisKK3ZvaWQgZHB1X2VuY29kZXJfdG9n Z2xlX3ZibGFua19mb3JfY3J0YyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmRybV9lbmMsCisJCQkJCXN0 cnVjdCBkcm1fY3J0YyAqY3J0YywgYm9vbCBlbmFibGUpCit7CisJc3RydWN0IGRwdV9lbmNvZGVy X3ZpcnQgKmRwdV9lbmMgPSB0b19kcHVfZW5jb2Rlcl92aXJ0KGRybV9lbmMpOworCXVuc2lnbmVk IGxvbmcgbG9ja19mbGFnczsKKwlpbnQgaTsKKworCXRyYWNlX2RwdV9lbmNfdmJsYW5rX2NiKERS TUlEKGRybV9lbmMpLCBlbmFibGUpOworCisJc3Bpbl9sb2NrX2lycXNhdmUoJmRwdV9lbmMtPmVu Y19zcGlubG9jaywgbG9ja19mbGFncyk7CisJaWYgKGRwdV9lbmMtPmNydGMgPT0gY3J0Yykgewor CQlzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkcHVfZW5jLT5lbmNfc3BpbmxvY2ssIGxvY2tfZmxh Z3MpOworCQlyZXR1cm47CisJfQorCXNwaW5fdW5sb2NrX2lycXJlc3RvcmUoJmRwdV9lbmMtPmVu Y19zcGlubG9jaywgbG9ja19mbGFncyk7CiAKIAlmb3IgKGkgPSAwOyBpIDwgZHB1X2VuYy0+bnVt X3BoeXNfZW5jczsgaSsrKSB7CiAJCXN0cnVjdCBkcHVfZW5jb2Rlcl9waHlzICpwaHlzID0gZHB1 X2VuYy0+cGh5c19lbmNzW2ldOwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL21zbS9kaXNw L2RwdTEvZHB1X2VuY29kZXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9l bmNvZGVyLmgKaW5kZXggYmUxZDgwODY3ODM0Li42ODk2ZWEyYWI4NTQgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9tc20vZGlzcC9kcHUxL2RwdV9lbmNvZGVyLmgKKysrIGIvZHJpdmVycy9n cHUvZHJtL21zbS9kaXNwL2RwdTEvZHB1X2VuY29kZXIuaApAQCAtNjIsNiArNjIsMTYgQEAgdm9p ZCBkcHVfZW5jb2Rlcl9nZXRfaHdfcmVzb3VyY2VzKHN0cnVjdCBkcm1fZW5jb2RlciAqZW5jb2Rl ciwKIHZvaWQgZHB1X2VuY29kZXJfYXNzaWduX2NydGMoc3RydWN0IGRybV9lbmNvZGVyICplbmNv ZGVyLAogCQkJICAgICBzdHJ1Y3QgZHJtX2NydGMgKmNydGMpOwogCisvKioKKyAqIGRwdV9lbmNv ZGVyX3RvZ2dsZV92YmxhbmtfZm9yX2NydGMgLSBUb2dnbGVzIHZibGFuayBpbnRlcnJ1cHRzIG9u IG9yIG9mZiBpZgorICoJdGhlIGVuY29kZXIgaXMgYXNzaWduZWQgdG8gdGhlIGdpdmVuIGNydGMK KyAqIEBlbmNvZGVyOgllbmNvZGVyIHBvaW50ZXIKKyAqIEBjcnRjOgljcnRjIHBvaW50ZXIKKyAq IEBlbmFibGU6CXRydWUgaWYgdmJsYW5rIHNob3VsZCBiZSBlbmFibGVkCisgKi8KK3ZvaWQgZHB1 X2VuY29kZXJfdG9nZ2xlX3ZibGFua19mb3JfY3J0YyhzdHJ1Y3QgZHJtX2VuY29kZXIgKmVuY29k ZXIsCisJCQkJCXN0cnVjdCBkcm1fY3J0YyAqY3J0YywgYm9vbCBlbmFibGUpOworCiAvKioKICAq IGRwdV9lbmNvZGVyX3JlZ2lzdGVyX2ZyYW1lX2V2ZW50X2NhbGxiYWNrIC0gcHJvdmlkZSBjYWxs YmFjayB0byBlbmNvZGVyIHRoYXQKICAqCXdpbGwgYmUgY2FsbGVkIGFmdGVyIHRoZSByZXF1ZXN0 IGlzIGNvbXBsZXRlLCBvciBvdGhlciBldmVudHMuCi0tIApTZWFuIFBhdWwsIFNvZnR3YXJlIEVu Z2luZWVyLCBHb29nbGUgLyBDaHJvbWl1bSBPUwoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vZHJpLWRldmVsCg==