From mboxrd@z Thu Jan 1 00:00:00 1970 From: shuang.he@intel.com Subject: Re: [PATCH] drm/i915: Reserve space improvements Date: 28 Jun 2015 14:11:02 -0700 Message-ID: <6299f3$mfp6p9@orsmga002.jf.intel.com> References: <1435165408-15470-1-git-send-email-John.C.Harrison@Intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by gabe.freedesktop.org (Postfix) with ESMTP id BDD956E29C for ; Sun, 28 Jun 2015 14:11:03 -0700 (PDT) In-Reply-To: <1435165408-15470-1-git-send-email-John.C.Harrison@Intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: shuang.he@intel.com, lei.a.liu@intel.com, intel-gfx@lists.freedesktop.org, John.C.Harrison@Intel.com List-Id: intel-gfx@lists.freedesktop.org VGVzdGVkLUJ5OiBJbnRlbCBHcmFwaGljcyBRQSBQUlRTIChQYXRjaCBSZWdyZXNzaW9uIFRlc3Qg U3lzdGVtIENvbnRhY3Q6IHNodWFuZy5oZUBpbnRlbC5jb20pClRhc2sgaWQ6IDY1NzUKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVN1bW1hcnktLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tClBsYXRmb3JtICAgICAgICAgIERlbHRhICAgICAgICAgIGRybS1p bnRlbC1uaWdodGx5ICAgICAgICAgIFNlcmllcyBBcHBsaWVkCklMSyAgICAgICAgICAgICAgICAg LTQgICAgICAgICAgICAgIDMwMy8zMDMgICAgICAgICAgICAgIDI5OS8zMDMKU05CICAgICAgICAg ICAgICAgICAtNSAgICAgICAgICAgICAgMzEyLzMxMiAgICAgICAgICAgICAgMzA3LzMxMgpJVkIg ICAgICAgICAgICAgICAgIC05ICAgICAgICAgICAgICAzNDMvMzQzICAgICAgICAgICAgICAzMzQv MzQzCkJZVCAgICAgICAgICAgICAgICAgLTUgICAgICAgICAgICAgIDI4NC8yODQgICAgICAgICAg ICAgIDI3OS8yODQKSFNXICAgICAgICAgICAgICAgICAtOCAgICAgICAgICAgICAgMzgwLzM4MCAg ICAgICAgICAgICAgMzcyLzM4MAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t RGV0YWlsZWQtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tClBsYXRmb3JtICBU ZXN0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcm0taW50ZWwtbmlnaHRseSAgICAg ICAgICBTZXJpZXMgQXBwbGllZAoqSUxLICBpZ3RAZ2VtX3JpbmdmaWxsQGJsaXR0ZXIgICAgICBQ QVNTKDEpICAgICAgRE1FU0dfV0FSTigxKQooZG1lc2cgcGF0Y2ggYXBwbGllZClXQVJOSU5HOmF0 X2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYzojcmluZ193YWl0X2Zvcl9z cGFjZVtpOTE1XSgpQFdBUk5JTkc6LiogYXQgLiogcmluZ193YWl0X2Zvcl9zcGFjZSsweAoqSUxL ICBpZ3RAZ2VtX3JpbmdmaWxsQGJsaXR0ZXItaW50ZXJydXB0aWJsZSAgICAgIFBBU1MoMSkgICAg ICBETUVTR19XQVJOKDEpCihkbWVzZyBwYXRjaCBhcHBsaWVkKVdBUk5JTkc6YXRfZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jOiNyaW5nX3dhaXRfZm9yX3NwYWNlW2k5MTVd KClAV0FSTklORzouKiBhdCAuKiByaW5nX3dhaXRfZm9yX3NwYWNlKzB4CipJTEsgIGlndEBnZW1f dXNlcnB0cl9ibGl0c0Bmb3JrZWQtc3luYy1tdWx0aWZkLW5vcm1hbCAgICAgIFBBU1MoMSkgICAg ICBETUVTR19XQVJOKDEpCihkbWVzZyBwYXRjaCBhcHBsaWVkKVdBUk5JTkc6YXRfZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jOiNyaW5nX3dhaXRfZm9yX3NwYWNlW2k5MTVd KClAV0FSTklORzouKiBhdCAuKiByaW5nX3dhaXRfZm9yX3NwYWNlKzB4CipJTEsgIGlndEBnZW1f dXNlcnB0cl9ibGl0c0Bmb3JrZWQtdW5zeW5jLW5vcm1hbCAgICAgIFBBU1MoMSkgICAgICBETUVT R19XQVJOKDEpCihkbWVzZyBwYXRjaCBhcHBsaWVkKVdBUk5JTkc6YXRfZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jOiNyaW5nX3dhaXRfZm9yX3NwYWNlW2k5MTVdKClAV0FS TklORzouKiBhdCAuKiByaW5nX3dhaXRfZm9yX3NwYWNlKzB4CipTTkIgIGlndEBnZW1fcmluZ19z eW5jX2NvcHlAc3luYy1yZW5kZXItYmxpdHRlci1yZWFkLXdyaXRlICAgICAgUEFTUygxKSAgICAg IERNRVNHX1dBUk4oMSkKKGRtZXNnIHBhdGNoIGFwcGxpZWQpV0FSTklORzphdF9kcml2ZXJzL2dw dS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmM6I3Jpbmdfd2FpdF9mb3Jfc3BhY2VbaTkxNV0o KUBXQVJOSU5HOi4qIGF0IC4qIHJpbmdfd2FpdF9mb3Jfc3BhY2UrMHgKKlNOQiAgaWd0QGdlbV9y aW5nX3N5bmNfY29weUBzeW5jLXJlbmRlci1ibGl0dGVyLXdyaXRlLXJlYWQgICAgICBQQVNTKDEp ICAgICAgRE1FU0dfV0FSTigxKQooZG1lc2cgcGF0Y2ggYXBwbGllZClXQVJOSU5HOmF0X2RyaXZl cnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYzojcmluZ193YWl0X2Zvcl9zcGFjZVtp OTE1XSgpQFdBUk5JTkc6LiogYXQgLiogcmluZ193YWl0X2Zvcl9zcGFjZSsweAoqU05CICBpZ3RA Z2VtX3Jpbmdfc3luY19jb3B5QHN5bmMtcmVuZGVyLWJsaXR0ZXItd3JpdGUtd3JpdGUgICAgICBQ QVNTKDEpICAgICAgRE1FU0dfV0FSTigxKQooZG1lc2cgcGF0Y2ggYXBwbGllZClXQVJOSU5HOmF0 X2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYzojcmluZ193YWl0X2Zvcl9z cGFjZVtpOTE1XSgpQFdBUk5JTkc6LiogYXQgLiogcmluZ193YWl0X2Zvcl9zcGFjZSsweAoqU05C ICBpZ3RAZ2VtX3VzZXJwdHJfYmxpdHNAY29oZXJlbmN5LXN5bmMgICAgICBQQVNTKDEpICAgICAg RE1FU0dfV0FSTigxKQooZG1lc2cgcGF0Y2ggYXBwbGllZClXQVJOSU5HOmF0X2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYzojcmluZ193YWl0X2Zvcl9zcGFjZVtpOTE1XSgp QFdBUk5JTkc6LiogYXQgLiogcmluZ193YWl0X2Zvcl9zcGFjZSsweAoqU05CICBpZ3RAcG1fcnBz QG1pbi1tYXgtY29uZmlnLWxvYWRlZCAgICAgIFBBU1MoMSkgICAgICBETUVTR19XQVJOKDEpCihk bWVzZyBwYXRjaCBhcHBsaWVkKVdBUk5JTkc6YXRfZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxf cmluZ2J1ZmZlci5jOiNyaW5nX3dhaXRfZm9yX3NwYWNlW2k5MTVdKClAV0FSTklORzouKiBhdCAu KiByaW5nX3dhaXRfZm9yX3NwYWNlKzB4CldBUk5JTkc6YXRfZHJpdmVycy9ncHUvZHJtL2k5MTUv aTkxNV9nZW0uYzojX19pOTE1X2FkZF9yZXF1ZXN0W2k5MTVdKClAV0FSTklORzouKiBhdCAuKiBf X2k5MTVfYWRkX3JlcXVlc3QrMHgKKklWQiAgaWd0QGdlbV9saW5lYXJfYmxpdHNAaW50ZXJydXB0 aWJsZSAgICAgIFBBU1MoMSkgICAgICBETUVTR19XQVJOKDEpCihkbWVzZyBwYXRjaCBhcHBsaWVk KVdBUk5JTkc6YXRfZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jOiNyaW5n X3dhaXRfZm9yX3NwYWNlW2k5MTVdKClAV0FSTklORzouKiBhdCAuKiByaW5nX3dhaXRfZm9yX3Nw YWNlKzB4CipJVkIgIGlndEBnZW1fbGluZWFyX2JsaXRzQG5vcm1hbCAgICAgIFBBU1MoMSkgICAg ICBETUVTR19XQVJOKDEpCihkbWVzZyBwYXRjaCBhcHBsaWVkKVdBUk5JTkc6YXRfZHJpdmVycy9n cHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jOiNyaW5nX3dhaXRfZm9yX3NwYWNlW2k5MTVd KClAV0FSTklORzouKiBhdCAuKiByaW5nX3dhaXRfZm9yX3NwYWNlKzB4CipJVkIgIGlndEBnZW1f cmluZ2ZpbGxAYmxpdHRlciAgICAgIFBBU1MoMSkgICAgICBETUVTR19XQVJOKDEpCihkbWVzZyBw YXRjaCBhcHBsaWVkKVdBUk5JTkc6YXRfZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1 ZmZlci5jOiNyaW5nX3dhaXRfZm9yX3NwYWNlW2k5MTVdKClAV0FSTklORzouKiBhdCAuKiByaW5n X3dhaXRfZm9yX3NwYWNlKzB4CipJVkIgIGlndEBnZW1fcmluZ2ZpbGxAYmxpdHRlci1pbnRlcnJ1 cHRpYmxlICAgICAgUEFTUygxKSAgICAgIERNRVNHX1dBUk4oMSkKKGRtZXNnIHBhdGNoIGFwcGxp ZWQpV0FSTklORzphdF9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmM6I3Jp bmdfd2FpdF9mb3Jfc3BhY2VbaTkxNV0oKUBXQVJOSU5HOi4qIGF0IC4qIHJpbmdfd2FpdF9mb3Jf c3BhY2UrMHgKKklWQiAgaWd0QGdlbV90aWxlZF9ibGl0c0BpbnRlcnJ1cHRpYmxlICAgICAgUEFT UygxKSAgICAgIERNRVNHX1dBUk4oMSkKKGRtZXNnIHBhdGNoIGFwcGxpZWQpV0FSTklORzphdF9k cml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmM6I3Jpbmdfd2FpdF9mb3Jfc3Bh Y2VbaTkxNV0oKUBXQVJOSU5HOi4qIGF0IC4qIHJpbmdfd2FpdF9mb3Jfc3BhY2UrMHgKKklWQiAg aWd0QGdlbV90aWxlZF9ibGl0c0Bub3JtYWwgICAgICBQQVNTKDEpICAgICAgRE1FU0dfV0FSTigx KQooZG1lc2cgcGF0Y2ggYXBwbGllZClXQVJOSU5HOmF0X2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3JpbmdidWZmZXIuYzojcmluZ193YWl0X2Zvcl9zcGFjZVtpOTE1XSgpQFdBUk5JTkc6Liog YXQgLiogcmluZ193YWl0X2Zvcl9zcGFjZSsweAoqSVZCICBpZ3RAZ2VtX3VzZXJwdHJfYmxpdHNA Y29oZXJlbmN5LXN5bmMgICAgICBQQVNTKDEpICAgICAgRE1FU0dfV0FSTigxKQooZG1lc2cgcGF0 Y2ggYXBwbGllZClXQVJOSU5HOmF0X2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZm ZXIuYzojcmluZ193YWl0X2Zvcl9zcGFjZVtpOTE1XSgpQFdBUk5JTkc6LiogYXQgLiogcmluZ193 YWl0X2Zvcl9zcGFjZSsweAoqSVZCICBpZ3RAZ2VtX3VzZXJwdHJfYmxpdHNAY29oZXJlbmN5LXVu c3luYyAgICAgIFBBU1MoMSkgICAgICBETUVTR19XQVJOKDEpCihkbWVzZyBwYXRjaCBhcHBsaWVk KVdBUk5JTkc6YXRfZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jOiNyaW5n X3dhaXRfZm9yX3NwYWNlW2k5MTVdKClAV0FSTklORzouKiBhdCAuKiByaW5nX3dhaXRfZm9yX3Nw YWNlKzB4CipJVkIgIGlndEBwbV9ycHNAbWluLW1heC1jb25maWctbG9hZGVkICAgICAgUEFTUygx KSAgICAgIERNRVNHX1dBUk4oMSkKKGRtZXNnIHBhdGNoIGFwcGxpZWQpV0FSTklORzphdF9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmM6I3Jpbmdfd2FpdF9mb3Jfc3BhY2Vb aTkxNV0oKUBXQVJOSU5HOi4qIGF0IC4qIHJpbmdfd2FpdF9mb3Jfc3BhY2UrMHgKV0FSTklORzph dF9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X2dlbS5jOiNfX2k5MTVfYWRkX3JlcXVlc3RbaTkx NV0oKUBXQVJOSU5HOi4qIGF0IC4qIF9faTkxNV9hZGRfcmVxdWVzdCsweAoqQllUICBpZ3RAZ2Vt X2d0dF9ob2cgICAgICBQQVNTKDEpICAgICAgRE1FU0dfV0FSTigxKQooZG1lc2cgcGF0Y2ggYXBw bGllZClXQVJOSU5HOmF0X2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYzoj cmluZ193YWl0X2Zvcl9zcGFjZVtpOTE1XSgpQFdBUk5JTkc6LiogYXQgLiogcmluZ193YWl0X2Zv cl9zcGFjZSsweAoqQllUICBpZ3RAZ2VtX3BhcnRpYWxfcHdyaXRlX3ByZWFkQHJlYWRzLWRpc3Bs YXkgICAgICBQQVNTKDEpICAgICAgRkFJTCgxKQoqQllUICBpZ3RAZ2VtX3JpbmdmaWxsQGJsaXR0 ZXIgICAgICBQQVNTKDEpICAgICAgRE1FU0dfV0FSTigxKQooZG1lc2cgcGF0Y2ggYXBwbGllZClX QVJOSU5HOmF0X2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYzojcmluZ193 YWl0X2Zvcl9zcGFjZVtpOTE1XSgpQFdBUk5JTkc6LiogYXQgLiogcmluZ193YWl0X2Zvcl9zcGFj ZSsweAoqQllUICBpZ3RAZ2VtX3JpbmdmaWxsQGJsaXR0ZXItaW50ZXJydXB0aWJsZSAgICAgIFBB U1MoMSkgICAgICBETUVTR19XQVJOKDEpCihkbWVzZyBwYXRjaCBhcHBsaWVkKVdBUk5JTkc6YXRf ZHJpdmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jOiNyaW5nX3dhaXRfZm9yX3Nw YWNlW2k5MTVdKClAV0FSTklORzouKiBhdCAuKiByaW5nX3dhaXRfZm9yX3NwYWNlKzB4CipCWVQg IGlndEBnZW1fcmluZ2ZpbGxAcmVuZGVyLWludGVycnVwdGlibGUgICAgICBQQVNTKDEpICAgICAg RE1FU0dfV0FSTigxKQooZG1lc2cgcGF0Y2ggYXBwbGllZClXQVJOSU5HOmF0X2RyaXZlcnMvZ3B1 L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIuYzojcmluZ193YWl0X2Zvcl9zcGFjZVtpOTE1XSgp QFdBUk5JTkc6LiogYXQgLiogcmluZ193YWl0X2Zvcl9zcGFjZSsweAoqSFNXICBpZ3RAZ2VtX2xp bmVhcl9ibGl0c0BpbnRlcnJ1cHRpYmxlICAgICAgUEFTUygxKSAgICAgIERNRVNHX1dBUk4oMSkK KGRtZXNnIHBhdGNoIGFwcGxpZWQpV0FSTklORzphdF9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9yaW5nYnVmZmVyLmM6I3Jpbmdfd2FpdF9mb3Jfc3BhY2VbaTkxNV0oKUBXQVJOSU5HOi4qIGF0 IC4qIHJpbmdfd2FpdF9mb3Jfc3BhY2UrMHgKKkhTVyAgaWd0QGdlbV9saW5lYXJfYmxpdHNAbm9y bWFsICAgICAgUEFTUygxKSAgICAgIERNRVNHX1dBUk4oMSkKKGRtZXNnIHBhdGNoIGFwcGxpZWQp V0FSTklORzphdF9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmM6I3Jpbmdf d2FpdF9mb3Jfc3BhY2VbaTkxNV0oKUBXQVJOSU5HOi4qIGF0IC4qIHJpbmdfd2FpdF9mb3Jfc3Bh Y2UrMHgKKkhTVyAgaWd0QGdlbV9yaW5nZmlsbEBibGl0dGVyICAgICAgUEFTUygxKSAgICAgIERN RVNHX1dBUk4oMSkKKGRtZXNnIHBhdGNoIGFwcGxpZWQpV0FSTklORzphdF9kcml2ZXJzL2dwdS9k cm0vaTkxNS9pbnRlbF9yaW5nYnVmZmVyLmM6I3Jpbmdfd2FpdF9mb3Jfc3BhY2VbaTkxNV0oKUBX QVJOSU5HOi4qIGF0IC4qIHJpbmdfd2FpdF9mb3Jfc3BhY2UrMHgKKkhTVyAgaWd0QGdlbV9yaW5n ZmlsbEBibGl0dGVyLWludGVycnVwdGlibGUgICAgICBQQVNTKDEpICAgICAgRE1FU0dfV0FSTigx KQooZG1lc2cgcGF0Y2ggYXBwbGllZClXQVJOSU5HOmF0X2RyaXZlcnMvZ3B1L2RybS9pOTE1L2lu dGVsX3JpbmdidWZmZXIuYzojcmluZ193YWl0X2Zvcl9zcGFjZVtpOTE1XSgpQFdBUk5JTkc6Liog YXQgLiogcmluZ193YWl0X2Zvcl9zcGFjZSsweAoqSFNXICBpZ3RAZ2VtX3RpbGVkX2JsaXRzQGlu dGVycnVwdGlibGUgICAgICBQQVNTKDEpICAgICAgRE1FU0dfV0FSTigxKQooZG1lc2cgcGF0Y2gg YXBwbGllZClXQVJOSU5HOmF0X2RyaXZlcnMvZ3B1L2RybS9pOTE1L2ludGVsX3JpbmdidWZmZXIu YzojcmluZ193YWl0X2Zvcl9zcGFjZVtpOTE1XSgpQFdBUk5JTkc6LiogYXQgLiogcmluZ193YWl0 X2Zvcl9zcGFjZSsweAoqSFNXICBpZ3RAZ2VtX3RpbGVkX2JsaXRzQG5vcm1hbCAgICAgIFBBU1Mo MSkgICAgICBETUVTR19XQVJOKDEpCihkbWVzZyBwYXRjaCBhcHBsaWVkKVdBUk5JTkc6YXRfZHJp dmVycy9ncHUvZHJtL2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jOiNyaW5nX3dhaXRfZm9yX3NwYWNl W2k5MTVdKClAV0FSTklORzouKiBhdCAuKiByaW5nX3dhaXRfZm9yX3NwYWNlKzB4CipIU1cgIGln dEBnZW1fdXNlcnB0cl9ibGl0c0Bjb2hlcmVuY3ktc3luYyAgICAgIFBBU1MoMSkgICAgICBETUVT R19XQVJOKDEpCihkbWVzZyBwYXRjaCBhcHBsaWVkKVdBUk5JTkc6YXRfZHJpdmVycy9ncHUvZHJt L2k5MTUvaW50ZWxfcmluZ2J1ZmZlci5jOiNyaW5nX3dhaXRfZm9yX3NwYWNlW2k5MTVdKClAV0FS TklORzouKiBhdCAuKiByaW5nX3dhaXRfZm9yX3NwYWNlKzB4CipIU1cgIGlndEBnZW1fdXNlcnB0 cl9ibGl0c0Bjb2hlcmVuY3ktdW5zeW5jICAgICAgUEFTUygxKSAgICAgIERNRVNHX1dBUk4oMSkK KGRtZXNnIHBhdGNoIGFwcGxpZWQpV0FSTklORzphdF9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pbnRl bF9yaW5nYnVmZmVyLmM6I3Jpbmdfd2FpdF9mb3Jfc3BhY2VbaTkxNV0oKUBXQVJOSU5HOi4qIGF0 IC4qIHJpbmdfd2FpdF9mb3Jfc3BhY2UrMHgKTm90ZTogWW91IG5lZWQgdG8gcGF5IG1vcmUgYXR0 ZW50aW9uIHRvIGxpbmUgc3RhcnQgd2l0aCAnKicKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHA6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9s aXN0aW5mby9pbnRlbC1nZngK