From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [216.205.24.124]) by mx.groups.io with SMTP id smtpd.web10.4042.1608154861697625893 for ; Wed, 16 Dec 2020 13:41:01 -0800 Authentication-Results: mx.groups.io; dkim=pass header.i=@redhat.com header.s=mimecast20190719 header.b=gLXV2N4F; spf=pass (domain: redhat.com, ip: 216.205.24.124, mailfrom: lersek@redhat.com) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1608154860; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=9qDQvPvqhgrOZ/eRG9X5RreH1haMFLOQJKowB1J1i/s=; b=gLXV2N4FD5Q30C+bSP7EQXTtsCbte+Dy2AA63qfzmwutJs9o70iqaL1W9IA3lpmQXGWthA lVFP1DG3zLKBDzmZkXrZHBq2F7J2QEkCXZrCRW0H35EERCB1Sinih+Rgffht2evDpJiVli TuOyU0ATT0vnukFSzmuVWafAHILSeNE= Received: from mimecast-mx01.redhat.com (mimecast-mx01.redhat.com [209.132.183.4]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-253-wYJBj1R0OKO-wB5Y1oKVjg-1; Wed, 16 Dec 2020 16:40:59 -0500 X-MC-Unique: wYJBj1R0OKO-wB5Y1oKVjg-1 Received: from smtp.corp.redhat.com (int-mx04.intmail.prod.int.phx2.redhat.com [10.5.11.14]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mimecast-mx01.redhat.com (Postfix) with ESMTPS id E58A61005504; Wed, 16 Dec 2020 21:40:57 +0000 (UTC) Received: from lacos-laptop-7.usersys.redhat.com (ovpn-114-152.ams2.redhat.com [10.36.114.152]) by smtp.corp.redhat.com (Postfix) with ESMTP id 1A8145D9C0; Wed, 16 Dec 2020 21:40:52 +0000 (UTC) From: "Laszlo Ersek" To: devel@edk2.groups.io, virtio-fs@redhat.com, lersek@redhat.com Cc: Ard Biesheuvel , Jordan Justen , =?UTF-8?q?Philippe=20Mathieu-Daud=C3=A9?= Subject: [edk2 PATCH 14/48] OvmfPkg/VirtioFsDxe: implement the wrapper function for FUSE_FLUSH Date: Wed, 16 Dec 2020 22:10:51 +0100 Message-Id: <20201216211125.19496-15-lersek@redhat.com> In-Reply-To: <20201216211125.19496-1-lersek@redhat.com> References: <20201216211125.19496-1-lersek@redhat.com> MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.14 Authentication-Results: relay.mimecast.com; auth=pass smtp.auth=CUSA124A263 smtp.mailfrom=lersek@redhat.com X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: base64 QWRkIHRoZSBWaXJ0aW9Gc0Z1c2VGbHVzaCgpIGZ1bmN0aW9uLCBmb3Igc2VuZGluZyB0aGUgRlVT RV9GTFVTSCBjb21tYW5kCnRvIHRoZSBWaXJ0aW8gRmlsZXN5c3RlbSBkZXZpY2UuCgpDYzogQXJk IEJpZXNoZXV2ZWwgPGFyZC5iaWVzaGV1dmVsQGFybS5jb20+CkNjOiBKb3JkYW4gSnVzdGVuIDxq b3JkYW4ubC5qdXN0ZW5AaW50ZWwuY29tPgpDYzogUGhpbGlwcGUgTWF0aGlldS1EYXVkw6kgPHBo aWxtZEByZWRoYXQuY29tPgpSZWY6IGh0dHBzOi8vYnVnemlsbGEudGlhbm9jb3JlLm9yZy9zaG93 X2J1Zy5jZ2k/aWQ9MzA5NwpTaWduZWQtb2ZmLWJ5OiBMYXN6bG8gRXJzZWsgPGxlcnNla0ByZWRo YXQuY29tPgotLS0KIE92bWZQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJkL1ZpcnRpb0ZzLmgg fCAgMTEgKysKIE92bWZQa2cvVmlydGlvRnNEeGUvVmlydGlvRnNEeGUuaW5mICAgICAgICAgfCAg IDEgKwogT3ZtZlBrZy9WaXJ0aW9Gc0R4ZS9WaXJ0aW9Gc0R4ZS5oICAgICAgICAgICB8ICAgNyAr KwogT3ZtZlBrZy9WaXJ0aW9Gc0R4ZS9GdXNlRmx1c2guYyAgICAgICAgICAgICB8IDExMSArKysr KysrKysrKysrKysrKysrKwogNCBmaWxlcyBjaGFuZ2VkLCAxMzAgaW5zZXJ0aW9ucygrKQoKZGlm ZiAtLWdpdCBhL092bWZQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJkL1ZpcnRpb0ZzLmggYi9P dm1mUGtnL0luY2x1ZGUvSW5kdXN0cnlTdGFuZGFyZC9WaXJ0aW9Gcy5oCmluZGV4IDc5N2Q5NGEz OWEzOS4uZmVjMmY0YmU1MzFmIDEwMDY0NAotLS0gYS9Pdm1mUGtnL0luY2x1ZGUvSW5kdXN0cnlT dGFuZGFyZC9WaXJ0aW9Gcy5oCisrKyBiL092bWZQa2cvSW5jbHVkZS9JbmR1c3RyeVN0YW5kYXJk L1ZpcnRpb0ZzLmgKQEAgLTgzLDE2ICs4MywxNyBAQCB0eXBlZGVmIHN0cnVjdCB7CiANCiAvLw0K IC8vIEZVU0Ugb3BlcmF0aW9uIGNvZGVzLg0KIC8vDQogdHlwZWRlZiBlbnVtIHsNCiAgIFZpcnRp b0ZzRnVzZU9wRm9yZ2V0ICAgICAgPSAgMiwNCiAgIFZpcnRpb0ZzRnVzZU9wUmVsZWFzZSAgICAg PSAxOCwNCiAgIFZpcnRpb0ZzRnVzZU9wRnN5bmMgICAgICAgPSAyMCwNCisgIFZpcnRpb0ZzRnVz ZU9wRmx1c2ggICAgICAgPSAyNSwNCiAgIFZpcnRpb0ZzRnVzZU9wSW5pdCAgICAgICAgPSAyNiwN CiAgIFZpcnRpb0ZzRnVzZU9wT3BlbkRpciAgICAgPSAyNywNCiAgIFZpcnRpb0ZzRnVzZU9wUmVs ZWFzZURpciAgPSAyOSwNCiAgIFZpcnRpb0ZzRnVzZU9wRnN5bmNEaXIgICAgPSAzMCwNCiB9IFZJ UlRJT19GU19GVVNFX09QQ09ERTsNCiANCiAjcHJhZ21hIHBhY2sgKDEpDQogLy8NCkBAIC0xMzYs MTYgKzEzNywyNiBAQCB0eXBlZGVmIHN0cnVjdCB7CiAvLyBIZWFkZXIgZm9yIFZpcnRpb0ZzRnVz ZU9wRnN5bmMgYW5kIFZpcnRpb0ZzRnVzZU9wRnN5bmNEaXIuDQogLy8NCiB0eXBlZGVmIHN0cnVj dCB7DQogICBVSU5UNjQgRmlsZUhhbmRsZTsNCiAgIFVJTlQzMiBGc3luY0ZsYWdzOw0KICAgVUlO VDMyIFBhZGRpbmc7DQogfSBWSVJUSU9fRlNfRlVTRV9GU1lOQ19SRVFVRVNUOw0KIA0KKy8vDQor Ly8gSGVhZGVyIGZvciBWaXJ0aW9Gc0Z1c2VPcEZsdXNoLg0KKy8vDQordHlwZWRlZiBzdHJ1Y3Qg ew0KKyAgVUlOVDY0IEZpbGVIYW5kbGU7DQorICBVSU5UMzIgVW51c2VkOw0KKyAgVUlOVDMyIFBh ZGRpbmc7DQorICBVSU5UNjQgTG9ja093bmVyOw0KK30gVklSVElPX0ZTX0ZVU0VfRkxVU0hfUkVR VUVTVDsNCisNCiAvLw0KIC8vIEhlYWRlcnMgZm9yIFZpcnRpb0ZzRnVzZU9wSW5pdC4NCiAvLw0K IHR5cGVkZWYgc3RydWN0IHsNCiAgIFVJTlQzMiBNYWpvcjsNCiAgIFVJTlQzMiBNaW5vcjsNCiAg IFVJTlQzMiBNYXhSZWFkYWhlYWQ7DQogICBVSU5UMzIgRmxhZ3M7DQpkaWZmIC0tZ2l0IGEvT3Zt ZlBrZy9WaXJ0aW9Gc0R4ZS9WaXJ0aW9Gc0R4ZS5pbmYgYi9Pdm1mUGtnL1ZpcnRpb0ZzRHhlL1Zp cnRpb0ZzRHhlLmluZgppbmRleCA4Mzk2NjBhMGY5MDQuLjE1ZTIxNzcyYzhhYyAxMDA2NDQKLS0t IGEvT3ZtZlBrZy9WaXJ0aW9Gc0R4ZS9WaXJ0aW9Gc0R4ZS5pbmYKKysrIGIvT3ZtZlBrZy9WaXJ0 aW9Gc0R4ZS9WaXJ0aW9Gc0R4ZS5pbmYKQEAgLTc3LDE2ICs3NywxNyBAQCBbRGVmaW5lc10KICAg RU5UUllfUE9JTlQgICAgICAgICAgICAgICAgICAgICAgICAgICA9IFZpcnRpb0ZzRW50cnlQb2lu dA0KIA0KIFtQYWNrYWdlc10NCiAgIE1kZVBrZy9NZGVQa2cuZGVjDQogICBPdm1mUGtnL092bWZQ a2cuZGVjDQogDQogW1NvdXJjZXNdDQogICBEcml2ZXJCaW5kaW5nLmMNCisgIEZ1c2VGbHVzaC5j DQogICBGdXNlRm9yZ2V0LmMNCiAgIEZ1c2VGc3luYy5jDQogICBGdXNlSW5pdC5jDQogICBGdXNl T3BlbkRpci5jDQogICBGdXNlUmVsZWFzZS5jDQogICBIZWxwZXJzLmMNCiAgIFNpbXBsZUZzQ2xv c2UuYw0KICAgU2ltcGxlRnNEZWxldGUuYw0KZGlmZiAtLWdpdCBhL092bWZQa2cvVmlydGlvRnNE eGUvVmlydGlvRnNEeGUuaCBiL092bWZQa2cvVmlydGlvRnNEeGUvVmlydGlvRnNEeGUuaAppbmRl eCBhYzFmYjg5NjU0NzIuLjcxNTFhNjJiYjQyYiAxMDA2NDQKLS0tIGEvT3ZtZlBrZy9WaXJ0aW9G c0R4ZS9WaXJ0aW9Gc0R4ZS5oCisrKyBiL092bWZQa2cvVmlydGlvRnNEeGUvVmlydGlvRnNEeGUu aApAQCAtMjEyLDE2ICsyMTIsMjMgQEAgVmlydGlvRnNGdXNlUmVsZWFzZUZpbGVPckRpciAoCiBF RklfU1RBVFVTDQogVmlydGlvRnNGdXNlRnN5bmNGaWxlT3JEaXIgKA0KICAgSU4gT1VUIFZJUlRJ T19GUyAqVmlydGlvRnMsDQogICBJTiAgICAgVUlOVDY0ICAgIE5vZGVJZCwNCiAgIElOICAgICBV SU5UNjQgICAgRnVzZUhhbmRsZSwNCiAgIElOICAgICBCT09MRUFOICAgSXNEaXINCiAgICk7DQog DQorRUZJX1NUQVRVUw0KK1ZpcnRpb0ZzRnVzZUZsdXNoICgNCisgIElOIE9VVCBWSVJUSU9fRlMg KlZpcnRpb0ZzLA0KKyAgSU4gICAgIFVJTlQ2NCAgICBOb2RlSWQsDQorICBJTiAgICAgVUlOVDY0 ICAgIEZ1c2VIYW5kbGUNCisgICk7DQorDQogRUZJX1NUQVRVUw0KIFZpcnRpb0ZzRnVzZUluaXRT ZXNzaW9uICgNCiAgIElOIE9VVCBWSVJUSU9fRlMgKlZpcnRpb0ZzDQogICApOw0KIA0KIEVGSV9T VEFUVVMNCiBWaXJ0aW9Gc0Z1c2VPcGVuRGlyICgNCiAgIElOIE9VVCBWSVJUSU9fRlMgKlZpcnRp b0ZzLA0KZGlmZiAtLWdpdCBhL092bWZQa2cvVmlydGlvRnNEeGUvRnVzZUZsdXNoLmMgYi9Pdm1m UGtnL1ZpcnRpb0ZzRHhlL0Z1c2VGbHVzaC5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAwMC4uYjY4OWFkMzI5MTBhCi0tLSAvZGV2L251bGwKKysrIGIvT3ZtZlBrZy9WaXJ0 aW9Gc0R4ZS9GdXNlRmx1c2guYwpAQCAtMCwwICsxLDExMSBAQAorLyoqIEBmaWxlDQorICBGVVNF X0ZMVVNIIHdyYXBwZXIgZm9yIHRoZSBWaXJ0aW8gRmlsZXN5c3RlbSBkZXZpY2UuDQorDQorICBD b3B5cmlnaHQgKEMpIDIwMjAsIFJlZCBIYXQsIEluYy4NCisNCisgIFNQRFgtTGljZW5zZS1JZGVu dGlmaWVyOiBCU0QtMi1DbGF1c2UtUGF0ZW50DQorKiovDQorDQorI2luY2x1ZGUgIlZpcnRpb0Zz RHhlLmgiDQorDQorLyoqDQorICBGbHVzaCBjaGFuZ2VzIHF1ZXVlZCBvbiB0aGUgbG9jYWwgdmly dHVhbGl6YXRpb24gaG9zdCB0byB0aGUgcmVtb3RlIHN0b3JhZ2UNCisgIHNlcnZlcidzIG1lbW9y eSAobm90IHN0b3JhZ2UgZGV2aWNlKSwgb3ZlciB0aGUgbmV0d29yaywgYnkgc2VuZGluZyB0aGUN CisgIEZVU0VfRkxVU0ggcmVxdWVzdCB0byB0aGUgVmlydGlvIEZpbGVzeXN0ZW0gZGV2aWNlLg0K Kw0KKyAgVGhlIGZ1bmN0aW9uIG1heSBvbmx5IGJlIGNhbGxlZCBhZnRlciBWaXJ0aW9Gc0Z1c2VJ bml0U2Vzc2lvbigpIHJldHVybnMNCisgIHN1Y2Nlc3NmdWxseSBhbmQgYmVmb3JlIFZpcnRpb0Zz VW5pbml0KCkgaXMgY2FsbGVkLg0KKw0KKyAgQHBhcmFtW2luLG91dF0gVmlydGlvRnMgIFRoZSBW aXJ0aW8gRmlsZXN5c3RlbSBkZXZpY2UgdG8gc2VuZCB0aGUgRlVTRV9GTFVTSA0KKyAgICAgICAg ICAgICAgICAgICAgICAgICAgIHJlcXVlc3QgdG8uIE9uIG91dHB1dCwgdGhlIEZVU0UgcmVxdWVz dCBjb3VudGVyDQorICAgICAgICAgICAgICAgICAgICAgICAgICAgIlZpcnRpb0ZzLT5SZXF1ZXN0 SWQiIHdpbGwgaGF2ZSBiZWVuIGluY3JlbWVudGVkLg0KKw0KKyAgQHBhcmFtW2luXSBOb2RlSWQg ICAgICAgIFRoZSBpbm9kZSBudW1iZXIgb2YgdGhlIHJlZ3VsYXIgZmlsZSB0byBmbHVzaC4NCisN CisgIEBwYXJhbVtpbl0gRnVzZUhhbmRsZSAgICBUaGUgb3BlbiBoYW5kbGUgdG8gdGhlIHJlZ3Vs YXIgZmlsZSB0byBmbHVzaC4NCisNCisgIEByZXR2YWwgRUZJX1NVQ0NFU1MgIFRoZSByZWd1bGFy IGZpbGUgaGFzIGJlZW4gZmx1c2hlZC4NCisNCisgIEByZXR1cm4gICAgICAgICAgICAgIFRoZSAi ZXJybm8iIHZhbHVlIG1hcHBlZCB0byBhbiBFRklfU1RBVFVTIGNvZGUsIGlmIHRoZQ0KKyAgICAg ICAgICAgICAgICAgICAgICAgVmlydGlvIEZpbGVzeXN0ZW0gZGV2aWNlIGV4cGxpY2l0bHkgcmVw b3J0ZWQgYW4gZXJyb3IuDQorDQorICBAcmV0dXJuICAgICAgICAgICAgICBFcnJvciBjb2RlcyBw cm9wYWdhdGVkIGZyb20gVmlydGlvRnNTZ0xpc3RzVmFsaWRhdGUoKSwNCisgICAgICAgICAgICAg ICAgICAgICAgIFZpcnRpb0ZzRnVzZU5ld1JlcXVlc3QoKSwgVmlydGlvRnNTZ0xpc3RzU3VibWl0 KCksDQorICAgICAgICAgICAgICAgICAgICAgICBWaXJ0aW9Gc0Z1c2VDaGVja1Jlc3BvbnNlKCku DQorKiovDQorRUZJX1NUQVRVUw0KK1ZpcnRpb0ZzRnVzZUZsdXNoICgNCisgIElOIE9VVCBWSVJU SU9fRlMgKlZpcnRpb0ZzLA0KKyAgSU4gICAgIFVJTlQ2NCAgICBOb2RlSWQsDQorICBJTiAgICAg VUlOVDY0ICAgIEZ1c2VIYW5kbGUNCisgICkNCit7DQorICBWSVJUSU9fRlNfRlVTRV9SRVFVRVNU ICAgICAgICBDb21tb25SZXE7DQorICBWSVJUSU9fRlNfRlVTRV9GTFVTSF9SRVFVRVNUICBGbHVz aFJlcTsNCisgIFZJUlRJT19GU19JT19WRUNUT1IgICAgICAgICAgIFJlcUlvVmVjWzJdOw0KKyAg VklSVElPX0ZTX1NDQVRURVJfR0FUSEVSX0xJU1QgUmVxU2dMaXN0Ow0KKyAgVklSVElPX0ZTX0ZV U0VfUkVTUE9OU0UgICAgICAgQ29tbW9uUmVzcDsNCisgIFZJUlRJT19GU19JT19WRUNUT1IgICAg ICAgICAgIFJlc3BJb1ZlY1sxXTsNCisgIFZJUlRJT19GU19TQ0FUVEVSX0dBVEhFUl9MSVNUIFJl c3BTZ0xpc3Q7DQorICBFRklfU1RBVFVTICAgICAgICAgICAgICAgICAgICBTdGF0dXM7DQorDQor ICAvLw0KKyAgLy8gU2V0IHVwIHRoZSBzY2F0dGVyLWdhdGhlciBsaXN0cy4NCisgIC8vDQorICBS ZXFJb1ZlY1swXS5CdWZmZXIgPSAmQ29tbW9uUmVxOw0KKyAgUmVxSW9WZWNbMF0uU2l6ZSAgID0g c2l6ZW9mIENvbW1vblJlcTsNCisgIFJlcUlvVmVjWzFdLkJ1ZmZlciA9ICZGbHVzaFJlcTsNCisg IFJlcUlvVmVjWzFdLlNpemUgICA9IHNpemVvZiBGbHVzaFJlcTsNCisgIFJlcVNnTGlzdC5Jb1Zl YyAgICA9IFJlcUlvVmVjOw0KKyAgUmVxU2dMaXN0Lk51bVZlYyAgID0gQVJSQVlfU0laRSAoUmVx SW9WZWMpOw0KKw0KKyAgUmVzcElvVmVjWzBdLkJ1ZmZlciA9ICZDb21tb25SZXNwOw0KKyAgUmVz cElvVmVjWzBdLlNpemUgICA9IHNpemVvZiBDb21tb25SZXNwOw0KKyAgUmVzcFNnTGlzdC5Jb1Zl YyAgICA9IFJlc3BJb1ZlYzsNCisgIFJlc3BTZ0xpc3QuTnVtVmVjICAgPSBBUlJBWV9TSVpFIChS ZXNwSW9WZWMpOw0KKw0KKyAgLy8NCisgIC8vIFZhbGlkYXRlIHRoZSBzY2F0dGVyLWdhdGhlciBs aXN0czsgY2FsY3VsYXRlIHRoZSB0b3RhbCB0cmFuc2ZlciBzaXplcy4NCisgIC8vDQorICBTdGF0 dXMgPSBWaXJ0aW9Gc1NnTGlzdHNWYWxpZGF0ZSAoVmlydGlvRnMsICZSZXFTZ0xpc3QsICZSZXNw U2dMaXN0KTsNCisgIGlmIChFRklfRVJST1IgKFN0YXR1cykpIHsNCisgICAgcmV0dXJuIFN0YXR1 czsNCisgIH0NCisNCisgIC8vDQorICAvLyBQb3B1bGF0ZSB0aGUgY29tbW9uIHJlcXVlc3QgaGVh ZGVyLg0KKyAgLy8NCisgIFN0YXR1cyA9IFZpcnRpb0ZzRnVzZU5ld1JlcXVlc3QgKFZpcnRpb0Zz LCAmQ29tbW9uUmVxLCBSZXFTZ0xpc3QuVG90YWxTaXplLA0KKyAgICAgICAgICAgICBWaXJ0aW9G c0Z1c2VPcEZsdXNoLCBOb2RlSWQpOw0KKyAgaWYgKEVGSV9FUlJPUiAoU3RhdHVzKSkgew0KKyAg ICByZXR1cm4gU3RhdHVzOw0KKyAgfQ0KKw0KKyAgLy8NCisgIC8vIFBvcHVsYXRlIHRoZSBGVVNF X0ZMVVNILXNwZWNpZmljIGZpZWxkcy4NCisgIC8vDQorICBGbHVzaFJlcS5GaWxlSGFuZGxlID0g RnVzZUhhbmRsZTsNCisgIEZsdXNoUmVxLlVudXNlZCAgICAgPSAwOw0KKyAgRmx1c2hSZXEuUGFk ZGluZyAgICA9IDA7DQorICBGbHVzaFJlcS5Mb2NrT3duZXIgID0gMDsNCisNCisgIC8vDQorICAv LyBTdWJtaXQgdGhlIHJlcXVlc3QuDQorICAvLw0KKyAgU3RhdHVzID0gVmlydGlvRnNTZ0xpc3Rz U3VibWl0IChWaXJ0aW9GcywgJlJlcVNnTGlzdCwgJlJlc3BTZ0xpc3QpOw0KKyAgaWYgKEVGSV9F UlJPUiAoU3RhdHVzKSkgew0KKyAgICByZXR1cm4gU3RhdHVzOw0KKyAgfQ0KKw0KKyAgLy8NCisg IC8vIFZlcmlmeSB0aGUgcmVzcG9uc2UgKGFsbCByZXNwb25zZSBidWZmZXJzIGFyZSBmaXhlZCBz aXplKS4NCisgIC8vDQorICBTdGF0dXMgPSBWaXJ0aW9Gc0Z1c2VDaGVja1Jlc3BvbnNlICgmUmVz cFNnTGlzdCwgQ29tbW9uUmVxLlVuaXF1ZSwgTlVMTCk7DQorICBpZiAoU3RhdHVzID09IEVGSV9E RVZJQ0VfRVJST1IpIHsNCisgICAgREVCVUcgKChERUJVR19FUlJPUiwgIiVhOiBMYWJlbD1cIiVz XCIgTm9kZUlkPSVMdSBGdXNlSGFuZGxlPSVMdSAiDQorICAgICAgIkVycm5vPSVkXG4iLCBfX0ZV TkNUSU9OX18sIFZpcnRpb0ZzLT5MYWJlbCwgTm9kZUlkLCBGdXNlSGFuZGxlLA0KKyAgICAgIENv bW1vblJlc3AuRXJyb3IpKTsNCisgICAgU3RhdHVzID0gVmlydGlvRnNFcnJub1RvRWZpU3RhdHVz IChDb21tb25SZXNwLkVycm9yKTsNCisgIH0NCisgIHJldHVybiBTdGF0dXM7DQorfQ0KLS0gCjIu MTkuMS4zLmczMDI0N2FhNWQyMDEKCgo=