From mboxrd@z Thu Jan 1 00:00:00 1970 From: Rodrigo Vivi Subject: [PATCH 3/4] drm/i915: Move underrun work from fbc to fifo_underrun. Date: Mon, 26 Feb 2018 12:53:08 -0800 Message-ID: <20180226205309.2438-3-rodrigo.vivi@intel.com> References: <20180226205309.2438-1-rodrigo.vivi@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga09.intel.com (mga09.intel.com [134.134.136.24]) by gabe.freedesktop.org (Postfix) with ESMTPS id 66C8F6E525 for ; Mon, 26 Feb 2018 20:53:13 +0000 (UTC) In-Reply-To: <20180226205309.2438-1-rodrigo.vivi@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 Cc: Paulo Zanoni , Rodrigo Vivi List-Id: intel-gfx@lists.freedesktop.org VGhpcyB1bmRlcnJ1biB3b3JrIGNhbiBiZSB1c2VmdWwgdG8gZGlzYWJsZSBtb3JlIHBtCmZ1bmN0 aW9uIHRoYXQgY2FuIGNhdXNlIHRyb3VibGUgb24gdW5kZXJydW4gc2l0dWF0aW9ucywKbGlrZSBT QUdWLgoKQ2M6IFBhdWxvIFphbm9uaSA8cGF1bG8uci56YW5vbmlAaW50ZWwuY29tPgpTaWduZWQt b2ZmLWJ5OiBSb2RyaWdvIFZpdmkgPHJvZHJpZ28udml2aUBpbnRlbC5jb20+Ci0tLQogZHJpdmVy cy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaCAgICAgICAgICAgIHwgIDcgKysrLQogZHJpdmVycy9n cHUvZHJtL2k5MTUvaTkxNV9pcnEuYyAgICAgICAgICAgIHwgIDIgKysKIGRyaXZlcnMvZ3B1L2Ry bS9pOTE1L2ludGVsX2Rydi5oICAgICAgICAgICB8ICAzICstCiBkcml2ZXJzL2dwdS9kcm0vaTkx NS9pbnRlbF9mYmMuYyAgICAgICAgICAgfCAzOCArLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBkcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9maWZvX3VuZGVycnVuLmMgfCA1MSArKysrKysrKysrKysr KysrKysrKysrKysrKysrKy0KIDUgZmlsZXMgY2hhbmdlZCwgNjEgaW5zZXJ0aW9ucygrKSwgNDAg ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYu aCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgKaW5kZXggNGM1MTc0Y2VhYjk2Li4x NjUwZGQ1ZTVmZmIgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfZHJ2LmgK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9kcnYuaApAQCAtNjU4LDcgKzY1OCw2IEBA IHN0cnVjdCBpbnRlbF9mYmMgewogCWJvb2wgYWN0aXZlOwogCiAJYm9vbCB1bmRlcnJ1bl9kZXRl Y3RlZDsKLQlzdHJ1Y3Qgd29ya19zdHJ1Y3QgdW5kZXJydW5fd29yazsKIAogCS8qCiAJICogRHVl IHRvIHRoZSBhdG9taWMgcnVsZXMgd2UgY2FuJ3QgYWNjZXNzIHNvbWUgc3RydWN0dXJlcyB3aXRo b3V0IHRoZQpAQCAtMjEzMyw2ICsyMTMyLDEyIEBAIHN0cnVjdCBkcm1faTkxNV9wcml2YXRlIHsK IAl9IHNhZ3Y7CiAKIAlzdHJ1Y3QgeworCQlzdHJ1Y3Qgd29ya19zdHJ1Y3Qgd29yazsKKwkJc3Bp bmxvY2tfdCBsb2NrOworCQlib29sIGRldGVjdGVkOworCX0gdW5kZXJydW47CisKKwlzdHJ1Y3Qg ewogCQkvKgogCQkgKiBSYXcgd2F0ZXJtYXJrIGxhdGVuY3kgdmFsdWVzOgogCQkgKiBpbiAwLjF1 cyB1bml0cyBmb3IgV00wLApkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9p cnEuYyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJxLmMKaW5kZXggMGE3ZWQ5OTBhOGQx Li5lZTliZDJkNGNlMzQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfaXJx LmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV9pcnEuYwpAQCAtNDA0NSw2ICs0MDQ1 LDggQEAgdm9pZCBpbnRlbF9pcnFfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3By aXYpCiAKIAlpbnRlbF9ocGRfaW5pdF93b3JrKGRldl9wcml2KTsKIAorCWludGVsX3VuZGVycnVu X2luaXRfd29yayhkZXZfcHJpdik7CisKIAlJTklUX1dPUksoJnJwcy0+d29yaywgZ2VuNl9wbV9y cHNfd29yayk7CiAKIAlJTklUX1dPUksoJmRldl9wcml2LT5sM19wYXJpdHkuZXJyb3Jfd29yaywg aXZ5YnJpZGdlX3Bhcml0eV93b3JrKTsKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZHJ2LmgKaW5kZXggMjI2 MGFhMWVjZDhjLi4zY2EyN2NjODcwMGQgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1 L2ludGVsX2Rydi5oCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2Rydi5oCkBAIC0x MzE3LDYgKzEzMTcsNyBAQCB2b2lkIGludGVsX3BjaF9maWZvX3VuZGVycnVuX2lycV9oYW5kbGVy KHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAkJCQkJIGVudW0gcGlwZSBwY2hf dHJhbnNjb2Rlcik7CiB2b2lkIGludGVsX2NoZWNrX2NwdV9maWZvX3VuZGVycnVucyhzdHJ1Y3Qg ZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpOwogdm9pZCBpbnRlbF9jaGVja19wY2hfZmlmb191 bmRlcnJ1bnMoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKK3ZvaWQgaW50ZWxf dW5kZXJydW5faW5pdF93b3JrKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiAK IC8qIGk5MTVfaXJxLmMgKi8KIHZvaWQgZ2VuNV9lbmFibGVfZ3RfaXJxKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdiwgdWludDMyX3QgbWFzayk7CkBAIC0xNzY2LDcgKzE3NjcsNyBA QCB2b2lkIGludGVsX2ZiY19pbnZhbGlkYXRlKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKIHZvaWQgaW50ZWxfZmJjX2ZsdXNoKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZf cHJpdiwKIAkJICAgICB1bnNpZ25lZCBpbnQgZnJvbnRidWZmZXJfYml0cywgZW51bSBmYl9vcF9v cmlnaW4gb3JpZ2luKTsKIHZvaWQgaW50ZWxfZmJjX2NsZWFudXBfY2ZiKHN0cnVjdCBkcm1faTkx NV9wcml2YXRlICpkZXZfcHJpdik7Ci12b2lkIGludGVsX2ZiY19oYW5kbGVfZmlmb191bmRlcnJ1 bl9pcnEoc3RydWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KTsKK3ZvaWQgaW50ZWxfZmJj X3VuZGVycnVuX2RldGVjdGVkKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdik7CiAK IC8qIGludGVsX2hkbWkuYyAqLwogdm9pZCBpbnRlbF9oZG1pX2luaXQoc3RydWN0IGRybV9pOTE1 X3ByaXZhdGUgKmRldl9wcml2LCBpOTE1X3JlZ190IGhkbWlfcmVnLApkaWZmIC0tZ2l0IGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9mYmMuYwppbmRleCAzOGIwMzZjNDk5ZDkuLmM2MzU2ODU2NGI3NyAxMDA2NDQKLS0tIGEvZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfZmJjLmMKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUv aW50ZWxfZmJjLmMKQEAgLTEyMzEsMTAgKzEyMzEsOCBAQCB2b2lkIGludGVsX2ZiY19nbG9iYWxf ZGlzYWJsZShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJY2FuY2VsX3dvcmtf c3luYygmZmJjLT53b3JrLndvcmspOwogfQogCi1zdGF0aWMgdm9pZCBpbnRlbF9mYmNfdW5kZXJy dW5fd29ya19mbihzdHJ1Y3Qgd29ya19zdHJ1Y3QgKndvcmspCit2b2lkIGludGVsX2ZiY191bmRl cnJ1bl9kZXRlY3RlZChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiB7Ci0Jc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2ID0KLQkJY29udGFpbmVyX29mKHdvcmssIHN0 cnVjdCBkcm1faTkxNV9wcml2YXRlLCBmYmMudW5kZXJydW5fd29yayk7CiAJc3RydWN0IGludGVs X2ZiYyAqZmJjID0gJmRldl9wcml2LT5mYmM7CiAKIAltdXRleF9sb2NrKCZmYmMtPmxvY2spOwpA QCAtMTI1MiwzOSArMTI1MCw2IEBAIHN0YXRpYyB2b2lkIGludGVsX2ZiY191bmRlcnJ1bl93b3Jr X2ZuKHN0cnVjdCB3b3JrX3N0cnVjdCAqd29yaykKIH0KIAogLyoqCi0gKiBpbnRlbF9mYmNfaGFu ZGxlX2ZpZm9fdW5kZXJydW5faXJxIC0gZGlzYWJsZSBGQkMgd2hlbiB3ZSBnZXQgYSBGSUZPIHVu ZGVycnVuCi0gKiBAZGV2X3ByaXY6IGk5MTUgZGV2aWNlIGluc3RhbmNlCi0gKgotICogV2l0aG91 dCBGQkMsIG1vc3QgdW5kZXJydW5zIGFyZSBoYXJtbGVzcyBhbmQgZG9uJ3QgcmVhbGx5IGNhdXNl IHRvbyBtYW55Ci0gKiBwcm9ibGVtcywgZXhjZXB0IGZvciBhbiBhbm5veWluZyBtZXNzYWdlIG9u IGRtZXNnLiBXaXRoIEZCQywgdW5kZXJydW5zIGNhbgotICogYmVjb21lIGJsYWNrIHNjcmVlbnMg b3IgZXZlbiB3b3JzZSwgZXNwZWNpYWxseSB3aGVuIHBhaXJlZCB3aXRoIGJhZAotICogd2F0ZXJt YXJrcy4gU28gaW4gb3JkZXIgZm9yIHVzIHRvIGJlIG9uIHRoZSBzYWZlIHNpZGUsIGNvbXBsZXRl bHkgZGlzYWJsZSBGQkMKLSAqIGluIGNhc2Ugd2UgZXZlciBkZXRlY3QgYSBGSUZPIHVuZGVycnVu IG9uIGFueSBwaXBlLiBBbiB1bmRlcnJ1biBvbiBhbnkgcGlwZQotICogYWxyZWFkeSBzdWdnZXN0 cyB0aGF0IHdhdGVybWFya3MgbWF5IGJlIGJhZCwgc28gdHJ5IHRvIGJlIGFzIHNhZmUgYXMKLSAq IHBvc3NpYmxlLgotICoKLSAqIFRoaXMgZnVuY3Rpb24gaXMgY2FsbGVkIGZyb20gdGhlIElSUSBo YW5kbGVyLgotICovCi12b2lkIGludGVsX2ZiY19oYW5kbGVfZmlmb191bmRlcnJ1bl9pcnEoc3Ry dWN0IGRybV9pOTE1X3ByaXZhdGUgKmRldl9wcml2KQotewotCXN0cnVjdCBpbnRlbF9mYmMgKmZi YyA9ICZkZXZfcHJpdi0+ZmJjOwotCi0JaWYgKCFmYmNfc3VwcG9ydGVkKGRldl9wcml2KSkKLQkJ cmV0dXJuOwotCi0JLyogVGhlcmUncyBubyBndWFyYW50ZWUgdGhhdCB1bmRlcnJ1bl9kZXRlY3Rl ZCB3b24ndCBiZSBzZXQgdG8gdHJ1ZQotCSAqIHJpZ2h0IGFmdGVyIHRoaXMgY2hlY2sgYW5kIGJl Zm9yZSB0aGUgd29yayBpcyBzY2hlZHVsZWQsIGJ1dCB0aGF0J3MKLQkgKiBub3QgYSBwcm9ibGVt IHNpbmNlIHdlJ2xsIGNoZWNrIGl0IGFnYWluIHVuZGVyIHRoZSB3b3JrIGZ1bmN0aW9uCi0JICog d2hpbGUgRkJDIGlzIGxvY2tlZC4gVGhpcyBjaGVjayBoZXJlIGlzIGp1c3QgdG8gcHJldmVudCB1 cyBmcm9tCi0JICogdW5uZWNlc3NhcmlseSBzY2hlZHVsaW5nIHRoZSB3b3JrLCBhbmQgaXQgcmVs aWVzIG9uIHRoZSBmYWN0IHRoYXQgd2UKLQkgKiBuZXZlciBzd2l0Y2ggdW5kZXJydW5fZGV0ZWN0 IGJhY2sgdG8gZmFsc2UgYWZ0ZXIgaXQncyB0cnVlLiAqLwotCWlmIChSRUFEX09OQ0UoZmJjLT51 bmRlcnJ1bl9kZXRlY3RlZCkpCi0JCXJldHVybjsKLQotCXNjaGVkdWxlX3dvcmsoJmZiYy0+dW5k ZXJydW5fd29yayk7Ci19Ci0KLS8qKgogICogaW50ZWxfZmJjX2luaXRfcGlwZV9zdGF0ZSAtIGlu aXRpYWxpemUgRkJDJ3MgQ1JUQyB2aXNpYmlsaXR5IHRyYWNraW5nCiAgKiBAZGV2X3ByaXY6IGk5 MTUgZGV2aWNlIGluc3RhbmNlCiAgKgpAQCAtMTM1Miw3ICsxMzE3LDYgQEAgdm9pZCBpbnRlbF9m YmNfaW5pdChzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYpCiAJc3RydWN0IGludGVs X2ZiYyAqZmJjID0gJmRldl9wcml2LT5mYmM7CiAKIAlJTklUX1dPUksoJmZiYy0+d29yay53b3Jr LCBpbnRlbF9mYmNfd29ya19mbik7Ci0JSU5JVF9XT1JLKCZmYmMtPnVuZGVycnVuX3dvcmssIGlu dGVsX2ZiY191bmRlcnJ1bl93b3JrX2ZuKTsKIAltdXRleF9pbml0KCZmYmMtPmxvY2spOwogCWZi Yy0+ZW5hYmxlZCA9IGZhbHNlOwogCWZiYy0+YWN0aXZlID0gZmFsc2U7CmRpZmYgLS1naXQgYS9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9maWZvX3VuZGVycnVuLmMgYi9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9maWZvX3VuZGVycnVuLmMKaW5kZXggNzdjMTIzY2M4ODE3Li42YTI5MDYy MTE3N2IgMTAwNjQ0Ci0tLSBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX2ZpZm9fdW5kZXJy dW4uYworKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9maWZvX3VuZGVycnVuLmMKQEAg LTM1MCw2ICszNTAsNTUgQEAgYm9vbCBpbnRlbF9zZXRfcGNoX2ZpZm9fdW5kZXJydW5fcmVwb3J0 aW5nKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICpkZXZfcHJpdiwKIAlyZXR1cm4gb2xkOwogfQog CitzdGF0aWMgdm9pZCBpbnRlbF91bmRlcnJ1bl93b3JrX2ZuKHN0cnVjdCB3b3JrX3N0cnVjdCAq d29yaykKK3sKKwlzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAqZGV2X3ByaXYgPQorCQljb250YWlu ZXJfb2Yod29yaywgc3RydWN0IGRybV9pOTE1X3ByaXZhdGUsIHVuZGVycnVuLndvcmspOworCisJ aW50ZWxfZmJjX3VuZGVycnVuX2RldGVjdGVkKGRldl9wcml2KTsKK30KKworLyoKKyAqIGludGVs X2hhbmRsZV9maWZvX3VuZGVycnVuX2lycSAtIGRpc2FibGUgRkJDIHdoZW4gd2UgZ2V0IGEgRklG TyB1bmRlcnJ1bgorICoKKyAqIFdpdGhvdXQgRkJDLCBtb3N0IHVuZGVycnVucyBhcmUgaGFybWxl c3MgYW5kIGRvbid0IHJlYWxseSBjYXVzZSB0b28gbWFueQorICogcHJvYmxlbXMsIGV4Y2VwdCBm b3IgYW4gYW5ub3lpbmcgbWVzc2FnZSBvbiBkbWVzZy4gV2l0aCBGQkMsIHVuZGVycnVucyBjYW4K KyAqIGJlY29tZSBibGFjayBzY3JlZW5zIG9yIGV2ZW4gd29yc2UsIGVzcGVjaWFsbHkgd2hlbiBw YWlyZWQgd2l0aCBiYWQKKyAqIHdhdGVybWFya3MuIFNvIGluIG9yZGVyIGZvciB1cyB0byBiZSBv biB0aGUgc2FmZSBzaWRlLCBjb21wbGV0ZWx5IGRpc2FibGUgRkJDCisgKiBpbiBjYXNlIHdlIGV2 ZXIgZGV0ZWN0IGEgRklGTyB1bmRlcnJ1biBvbiBhbnkgcGlwZS4gQW4gdW5kZXJydW4gb24gYW55 IHBpcGUKKyAqIGFscmVhZHkgc3VnZ2VzdHMgdGhhdCB3YXRlcm1hcmtzIG1heSBiZSBiYWQsIHNv IHRyeSB0byBiZSBhcyBzYWZlIGFzCisgKiBwb3NzaWJsZS4KKyAqCisgKi8KK3N0YXRpYyB2b2lk IGludGVsX2hhbmRsZV9maWZvX3VuZGVycnVuX2lycShzdHJ1Y3QgZHJtX2k5MTVfcHJpdmF0ZSAq ZGV2X3ByaXYpCit7CisJaWYgKCFIQVNfRkJDKGRldl9wcml2KSkKKwkJcmV0dXJuOworCisJc3Bp bl9sb2NrKCZkZXZfcHJpdi0+dW5kZXJydW4ubG9jayk7CisKKwlpZiAoZGV2X3ByaXYtPnVuZGVy cnVuLmRldGVjdGVkKQorCQlnb3RvIG91dDsKKwlkZXZfcHJpdi0+dW5kZXJydW4uZGV0ZWN0ZWQg PSB0cnVlOworCisJc2NoZWR1bGVfd29yaygmZGV2X3ByaXYtPnVuZGVycnVuLndvcmspOworb3V0 OgorCXNwaW5fdW5sb2NrKCZkZXZfcHJpdi0+dW5kZXJydW4ubG9jayk7Cit9CisKKy8qKgorICog aW50ZWxfdW5kZXJydW5faW5pdF93b3JrIC0gSGFuZGxlIHVuZGVycnVuIG91dHNpZGUgYXRvbWlj IGNvbnRleHQuCisgKiBAZGV2X3ByaXY6IGk5MTUgZGV2aWNlIGluc3RhbmNlCisgKgorICogU29t ZSBmZWF0dXJlcyBuZWVkcyB0byBiZSBkaXNhYmxlZCB3aGVuIHVuZGVycnVuIGlzIGRldGVjdGVk LgorICogTGV0J3MgdXNlIHdvcmsgcXVldWUgdG8gbWFrZSBpdCBvdXRzaWRlIHRoZSBhdG9taWMg aXJxIGNvbnRleHQuCisgKi8KK3ZvaWQgaW50ZWxfdW5kZXJydW5faW5pdF93b3JrKHN0cnVjdCBk cm1faTkxNV9wcml2YXRlICpkZXZfcHJpdikKK3sKKwlJTklUX1dPUksoJmRldl9wcml2LT51bmRl cnJ1bi53b3JrLCBpbnRlbF91bmRlcnJ1bl93b3JrX2ZuKTsKKwlzcGluX2xvY2tfaW5pdCgmZGV2 X3ByaXYtPnVuZGVycnVuLmxvY2spOworfQorCiAvKioKICAqIGludGVsX2NwdV9maWZvX3VuZGVy cnVuX2lycV9oYW5kbGVyIC0gaGFuZGxlIENQVSBmaWZvIHVuZGVycnVuIGludGVycnVwdAogICog QGRldl9wcml2OiBpOTE1IGRldmljZSBpbnN0YW5jZQpAQCAtMzc5LDcgKzQyOCw3IEBAIHZvaWQg aW50ZWxfY3B1X2ZpZm9fdW5kZXJydW5faXJxX2hhbmRsZXIoc3RydWN0IGRybV9pOTE1X3ByaXZh dGUgKmRldl9wcml2LAogCQkJICBwaXBlX25hbWUocGlwZSkpOwogCX0KIAotCWludGVsX2ZiY19o YW5kbGVfZmlmb191bmRlcnJ1bl9pcnEoZGV2X3ByaXYpOworCWludGVsX2hhbmRsZV9maWZvX3Vu ZGVycnVuX2lycShkZXZfcHJpdik7CiB9CiAKIC8qKgotLSAKMi4xMy42CgpfX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpJbnRlbC1nZnggbWFpbGluZyBsaXN0 CkludGVsLWdmeEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3Rv cC5vcmcvbWFpbG1hbi9saXN0aW5mby9pbnRlbC1nZngK