From mboxrd@z Thu Jan 1 00:00:00 1970 From: Boqun Feng Subject: [PATCH v2 17/17] xen: tools: add SGX to applying MSR policy Date: Mon, 4 Dec 2017 08:15:28 +0800 Message-ID: <20171204001528.1342-18-boqun.feng@intel.com> References: <20171204001528.1342-1-boqun.feng@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: In-Reply-To: <20171204001528.1342-1-boqun.feng@intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xen.org Cc: Kevin Tian , Stefano Stabellini , Wei Liu , Jun Nakajima , George Dunlap , Andrew Cooper , Ian Jackson , =?UTF-8?q?Marek=20Marczykowski-G=C3=B3recki?= , Tim Deegan , kai.huang@linux.intel.com, Julien Grall , Jan Beulich , David Scott , Boqun Feng List-Id: xen-devel@lists.xenproject.org SW4gbGlieGMsIGEgbmV3IGZ1bmN0aW9uICd4Y19tc3Jfc2d4X3NldCcgaXMgYWRkZWQsIHRoaXMg ZnVuY3Rpb24gd2lsbAphcHBseSBTR1ggcmVsYXRlZCBNU1IgcG9saWN5IHRvIHRoZSB0YXJnZXQg ZG9tYWluLiBUaGlzIGZ1bmN0aW9uIHRha2VzCnRoZSB2YWx1ZSBvZiAnbGV3cicgYW5kICdsZWhh c2gqJyBpbiAnbGlieGxfc2d4X2J1aWxkaW5mbycsIGFuZCBzZXQKdGhlIHByb3BlciBNU1JzIGlu IGFsbCB2Y3B1cyB2aWEgJ1hFTl9ET01DVExfc2V0X3ZjcHVfbXNycycgaHlwZXJjYWxsLgoKSWYg dGhlIHBoeXNpY2FsIElBMzJfU0dYTEVQVUJLRVlIQVNIbiBNU1JzIGFyZSB3cml0YWJsZToKCiog RG9tYWluJ3MgSUEzMl9GRUFUVVJFX0NPTlRST0xfU0dYX0xFX1dSIGJpdCBkZXBlbmRzIG9uICds d2VyJyhkZWZhdWx0CiAgZmFsc2UpCgoqIElmICdsZWhhc2gnIGlzIHVuc2V0LCBkbyBub3RoaW5n LCBhcyB3ZSBhbHJlYWR5IHNldCB0aGUgcHJvcGVyIHZhbHVlCiAgaW4gc2d4X2RvbWFpbl9tc3Jf aW5pdCgpLgoKKiBJZiAnbGVoYXNoJyBpcyBzZXQsIHNldCB0aGUgZG9tYWluJ3MgdmlydHVhbCBJ QTMyX1NHWExFUFVCS0VZSEFTSG4KICB3aXRoIGl0cyB2YWx1ZSwgYW5kIGxhdGVyIG9uIHRoZSB2 Y3B1J3MgdmlydHVhbCBJQTMyX1NHWExFUFVCS0VZSEFTSG4KICB3aWxsIGJlIHNldCB3aXRoIHRo ZSBzYW1lIHZhbHVlLgoKSWYgdGhlIHBoeXNpY2FsIElBMzJfU0dYTEVQVUJLRVlIQVNIbiBNU1Jz IGFyZSBub3Qgd3JpdGFibGUsIHVzaW5nCidsZWhhc2gnIG9yICdsZXdyJyBwYXJhbWV0ZXIgcmVz dWx0cyBpbiBkb21haW4gY3JlYXRpb24gZmFpbHVyZS4KClNpZ25lZC1vZmYtYnk6IEJvcXVuIEZl bmcgPGJvcXVuLmZlbmdAaW50ZWwuY29tPgotLS0KIHRvb2xzL2xpYnhjL01ha2VmaWxlICAgICAg ICAgIHwgIDEgKwogdG9vbHMvbGlieGMvaW5jbHVkZS94ZW5jdHJsLmggfCAgMiArKwogdG9vbHMv bGlieGMveGNfbXNyX3g4Ni5oICAgICAgfCAxMCArKysrKysKIHRvb2xzL2xpYnhjL3hjX3NneC5j ICAgICAgICAgIHwgODIgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KwogdG9vbHMvbGlieGwvbGlieGxfZG9tLmMgICAgICAgfCAyOSArKysrKysrKysrKysrKysKIHRv b2xzL3hsL3hsX3BhcnNlLmMgICAgICAgICAgIHwgMTAgKysrKysrCiA2IGZpbGVzIGNoYW5nZWQs IDEzNCBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgdG9vbHMvbGlieGMveGNfc2d4 LmMKCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy9NYWtlZmlsZSBiL3Rvb2xzL2xpYnhjL01ha2Vm aWxlCmluZGV4IDlhMDE5ZThkZmVkNS4uNDI4NDMwYTE1YzQwIDEwMDY0NAotLS0gYS90b29scy9s aWJ4Yy9NYWtlZmlsZQorKysgYi90b29scy9saWJ4Yy9NYWtlZmlsZQpAQCAtNDEsNiArNDEsNyBA QCBDVFJMX1NSQ1MteSAgICAgICArPSB4Y19mb3JlaWduX21lbW9yeS5jCiBDVFJMX1NSQ1MteSAg ICAgICArPSB4Y19rZXhlYy5jCiBDVFJMX1NSQ1MteSAgICAgICArPSB4Y19yZXNvdXJjZS5jCiBD VFJMX1NSQ1MtJChDT05GSUdfWDg2KSArPSB4Y19wc3IuYworQ1RSTF9TUkNTLSQoQ09ORklHX1g4 NikgKz0geGNfc2d4LmMKIENUUkxfU1JDUy0kKENPTkZJR19YODYpICs9IHhjX3BhZ2V0YWIuYwog Q1RSTF9TUkNTLSQoQ09ORklHX0xpbnV4KSArPSB4Y19saW51eC5jCiBDVFJMX1NSQ1MtJChDT05G SUdfRnJlZUJTRCkgKz0geGNfZnJlZWJzZC5jCmRpZmYgLS1naXQgYS90b29scy9saWJ4Yy9pbmNs dWRlL3hlbmN0cmwuaCBiL3Rvb2xzL2xpYnhjL2luY2x1ZGUveGVuY3RybC5oCmluZGV4IGFkNDQy OWNhNWZmZC4uYWJjOWY3MTExNDFhIDEwMDY0NAotLS0gYS90b29scy9saWJ4Yy9pbmNsdWRlL3hl bmN0cmwuaAorKysgYi90b29scy9saWJ4Yy9pbmNsdWRlL3hlbmN0cmwuaApAQCAtMTg1NSw2ICsx ODU1LDggQEAgdm9pZCB4Y19jcHVpZF90b19zdHIoY29uc3QgdW5zaWduZWQgaW50ICpyZWdzLAog aW50IHhjX21jYV9vcCh4Y19pbnRlcmZhY2UgKnhjaCwgc3RydWN0IHhlbl9tYyAqbWMpOwogaW50 IHhjX21jYV9vcF9pbmplY3RfdjIoeGNfaW50ZXJmYWNlICp4Y2gsIHVuc2lnbmVkIGludCBmbGFn cywKICAgICAgICAgICAgICAgICAgICAgICAgIHhjX2NwdW1hcF90IGNwdW1hcCwgdW5zaWduZWQg aW50IG5yX2NwdXMpOworaW50IHhjX21zcl9zZ3hfc2V0KHhjX2ludGVyZmFjZSAqeGNoLCB1aW50 MzJfdCBkb21pZCwgYm9vbCBsZXdyLAorICAgICAgICAgICAgICAgICAgIHVpbnQ2NF90ICpsZWhh c2gsIGludCBtYXhfdmNwdSk7CiAjZW5kaWYKIAogc3RydWN0IHhjX3B4X3ZhbCB7CmRpZmYgLS1n aXQgYS90b29scy9saWJ4Yy94Y19tc3JfeDg2LmggYi90b29scy9saWJ4Yy94Y19tc3JfeDg2LmgK aW5kZXggN2YxMDBlNzFhN2ExLi41NGVhYTRkZTg5NDUgMTAwNjQ0Ci0tLSBhL3Rvb2xzL2xpYnhj L3hjX21zcl94ODYuaAorKysgYi90b29scy9saWJ4Yy94Y19tc3JfeDg2LmgKQEAgLTI0LDYgKzI0 LDE2IEBACiAjZGVmaW5lIE1TUl9JQTMyX0NNVF9FVlRTRUwgICAgIDB4MDAwMDBjOGQKICNkZWZp bmUgTVNSX0lBMzJfQ01UX0NUUiAgICAgICAgMHgwMDAwMGM4ZQogCisjZGVmaW5lIE1TUl9JQTMy X0ZFQVRVUkVfQ09OVFJPTAkweDAwMDAwMDNhCisjZGVmaW5lIElBMzJfRkVBVFVSRV9DT05UUk9M X0xPQ0sgICAgICAgICAgICAgICAgICAgICAweDAwMDEKKyNkZWZpbmUgSUEzMl9GRUFUVVJFX0NP TlRST0xfU0dYX0VOQUJMRSAgICAgICAgICAgICAgIDB4NDAwMDAKKyNkZWZpbmUgSUEzMl9GRUFU VVJFX0NPTlRST0xfU0dYX0xFX1dSICAgICAgICAgICAgICAgIDB4MjAwMDAKKworI2RlZmluZSBN U1JfSUEzMl9TR1hMRVBVQktFWUhBU0gwICAgMHgwMDAwMDA4YworI2RlZmluZSBNU1JfSUEzMl9T R1hMRVBVQktFWUhBU0gxICAgMHgwMDAwMDA4ZAorI2RlZmluZSBNU1JfSUEzMl9TR1hMRVBVQktF WUhBU0gyICAgMHgwMDAwMDA4ZQorI2RlZmluZSBNU1JfSUEzMl9TR1hMRVBVQktFWUhBU0gzICAg MHgwMDAwMDA4ZgorCiAjZW5kaWYKIAogLyoKZGlmZiAtLWdpdCBhL3Rvb2xzL2xpYnhjL3hjX3Nn eC5jIGIvdG9vbHMvbGlieGMveGNfc2d4LmMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw MDAwMDAwMDAwLi44Zjk3Y2EwMDQyZTAKLS0tIC9kZXYvbnVsbAorKysgYi90b29scy9saWJ4Yy94 Y19zZ3guYwpAQCAtMCwwICsxLDgyIEBACisvKgorICogeGNfc2d4LmMKKyAqCisgKiBTR1ggcmVs YXRlZCBNU1Igc2V0dXAKKyAqCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgICAgICBJbnRlbCBDb3Jw b3JhdGlvbgorICogQXV0aG9yIEJvcXVuIEZlbmcgPGJvcXVuLmZlbmdAaW50ZWwuY29tPgorICoK KyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBp dCBhbmQvb3IgbW9kaWZ5CisgKiBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMZXNzZXIg R2VuZXJhbCBQdWJsaWMgTGljZW5zZSBhcyBwdWJsaXNoZWQKKyAqIGJ5IHRoZSBGcmVlIFNvZnR3 YXJlIEZvdW5kYXRpb247IHZlcnNpb24gMi4xIG9ubHkuIHdpdGggdGhlIHNwZWNpYWwKKyAqIGV4 Y2VwdGlvbiBvbiBsaW5raW5nIGRlc2NyaWJlZCBpbiBmaWxlIExJQ0VOU0UuCisgKgorICogVGhp cyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2Vm dWwsCisgKiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGll ZCB3YXJyYW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElD VUxBUiBQVVJQT1NFLiAgU2VlIHRoZQorICogR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYyBMaWNl bnNlIGZvciBtb3JlIGRldGFpbHMuCisgKi8KKworI2luY2x1ZGUgPGFzc2VydC5oPgorI2luY2x1 ZGUgInhjX3ByaXZhdGUuaCIKKyNpbmNsdWRlICJ4Y19tc3JfeDg2LmgiCisKK2ludCB4Y19tc3Jf c2d4X3NldCh4Y19pbnRlcmZhY2UgKnhjaCwgdWludDMyX3QgZG9taWQsIGJvb2wgbGV3ciwKKyAg ICAgICAgICAgICAgICAgICB1aW50NjRfdCAqbGVoYXNoLCBpbnQgbWF4X3ZjcHUpCit7CisgICAg aW50IHJjLCBpLCBucl9tc3JzOworICAgIERFQ0xBUkVfRE9NQ1RMOworICAgIHhlbl9kb21jdGxf dmNwdV9tc3JfdCBzZ3hfbXNyc1s1XTsKKyAgICBERUNMQVJFX0hZUEVSQ0FMTF9CVUZGRVIodm9p ZCwgYnVmZmVyKTsKKworICAgIGlmICggIWxlaGFzaCAmJiAhbGV3ciApCisgICAgICAgIHJldHVy biAwOworCisgICAgc2d4X21zcnNbMF0uaW5kZXggPSBNU1JfSUEzMl9GRUFUVVJFX0NPTlRST0w7 CisgICAgc2d4X21zcnNbMF0ucmVzZXJ2ZWQgPSAwOworICAgIHNneF9tc3JzWzBdLnZhbHVlID0g SUEzMl9GRUFUVVJFX0NPTlRST0xfTE9DSyB8CisgICAgICAgICAgICAgICAgICAgICAgICBJQTMy X0ZFQVRVUkVfQ09OVFJPTF9TR1hfRU5BQkxFIHwKKyAgICAgICAgICAgICAgICAgICAgICAgIChs ZXdyID8gSUEzMl9GRUFUVVJFX0NPTlRST0xfU0dYX0xFX1dSIDogMCk7CisKKyAgICBpZiAoICFs ZWhhc2ggKQorICAgICAgICBucl9tc3JzID0gMTsKKyAgICBlbHNlCisgICAgeworICAgICAgICBu cl9tc3JzID0gNTsKKworICAgICAgICBmb3IgKCBpID0gMDsgaSA8IDQ7IGkrKyApCisgICAgICAg IHsKKyAgICAgICAgICAgIHNneF9tc3JzW2krMV0uaW5kZXggPSBNU1JfSUEzMl9TR1hMRVBVQktF WUhBU0gwICsgaTsKKyAgICAgICAgICAgIHNneF9tc3JzW2krMV0ucmVzZXJ2ZWQgPSAwOworICAg ICAgICAgICAgc2d4X21zcnNbaSsxXS52YWx1ZSA9IGxlaGFzaFtpXTsKKyAgICAgICAgfQorICAg IH0KKworICAgIGJ1ZmZlciA9IHhjX2h5cGVyY2FsbF9idWZmZXJfYWxsb2MoeGNoLCBidWZmZXIs CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBucl9tc3JzICogc2l6ZW9m KHhlbl9kb21jdGxfdmNwdV9tc3JfdCkpOworICAgIGlmICggIWJ1ZmZlciApCisgICAgeworICAg ICAgICBFUlJPUigiVW5hYmxlIHRvIGFsbG9jYXRlICV6dSBieXRlcyBmb3IgbXNyIGh5cGVyY2Fs bCBidWZmZXIiLAorICAgICAgICAgICAgICA1ICogc2l6ZW9mKHhlbl9kb21jdGxfdmNwdV9tc3Jf dCkpOworICAgICAgICByZXR1cm4gLTE7CisgICAgfQorCisgICAgZG9tY3RsLmNtZCA9IFhFTl9E T01DVExfc2V0X3ZjcHVfbXNyczsKKyAgICBkb21jdGwuZG9tYWluID0gZG9taWQ7CisgICAgZG9t Y3RsLnUudmNwdV9tc3JzLm1zcl9jb3VudCA9IG5yX21zcnM7CisgICAgc2V0X3hlbl9ndWVzdF9o YW5kbGUoZG9tY3RsLnUudmNwdV9tc3JzLm1zcnMsIGJ1ZmZlcik7CisKKyAgICBtZW1jcHkoYnVm ZmVyLCBzZ3hfbXNycywgbnJfbXNycyAqIHNpemVvZih4ZW5fZG9tY3RsX3ZjcHVfbXNyX3QpKTsK KworICAgIGZvciAoIGkgPSAwOyBpIDwgbWF4X3ZjcHU7IGkrKyApIHsKKyAgICAgICAgZG9tY3Rs LnUudmNwdV9tc3JzLnZjcHUgPSBpOworICAgICAgICByYyA9IHhjX2RvbWN0bCh4Y2gsICZkb21j dGwpOworCisgICAgICAgIGlmIChyYykKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KKworICAg IHhjX2h5cGVyY2FsbF9idWZmZXJfZnJlZSh4Y2gsIGJ1ZmZlcik7CisKKyAgICByZXR1cm4gcmM7 Cit9CmRpZmYgLS1naXQgYS90b29scy9saWJ4bC9saWJ4bF9kb20uYyBiL3Rvb2xzL2xpYnhsL2xp YnhsX2RvbS5jCmluZGV4IGFjMzhhZDY1ZGQxOS4uZDVlMzNmODk0MGJhIDEwMDY0NAotLS0gYS90 b29scy9saWJ4bC9saWJ4bF9kb20uYworKysgYi90b29scy9saWJ4bC9saWJ4bF9kb20uYwpAQCAt MzU4LDYgKzM1OCwzNSBAQCBpbnQgbGlieGxfX2J1aWxkX3ByZShsaWJ4bF9fZ2MgKmdjLCB1aW50 MzJfdCBkb21pZCwKICAgICAgICAgcmV0dXJuIEVSUk9SX0ZBSUw7CiAgICAgfQogCisgICAgaWYg KGluZm8tPnR5cGUgPT0gTElCWExfRE9NQUlOX1RZUEVfSFZNKQorICAgIHsKKyAgICAgICAgdWlu dDY0X3QgbGVoYXNoWzRdOworCisgICAgICAgIGlmICggIWluZm8tPnUuaHZtLnNneC5sZWhhc2gw ICYmICFpbmZvLT51Lmh2bS5zZ3gubGVoYXNoMSAmJgorICAgICAgICAgICAgICFpbmZvLT51Lmh2 bS5zZ3gubGVoYXNoMiAmJiAhaW5mby0+dS5odm0uc2d4LmxlaGFzaDMgKQorICAgICAgICB7Cisg ICAgICAgICAgICByYyA9IHhjX21zcl9zZ3hfc2V0KGN0eC0+eGNoLCBkb21pZCwKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgbGlieGxfZGVmYm9vbF92YWwoaW5mby0+dS5odm0uc2d4 Lmxld3IpLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBOVUxMLCBpbmZvLT5tYXhf dmNwdXMpOworICAgICAgICB9CisgICAgICAgIGVsc2UKKyAgICAgICAgeworICAgICAgICAgICAg bGVoYXNoWzBdID0gaW5mby0+dS5odm0uc2d4LmxlaGFzaDA7CisgICAgICAgICAgICBsZWhhc2hb MV0gPSBpbmZvLT51Lmh2bS5zZ3gubGVoYXNoMTsKKyAgICAgICAgICAgIGxlaGFzaFsyXSA9IGlu Zm8tPnUuaHZtLnNneC5sZWhhc2gyOworICAgICAgICAgICAgbGVoYXNoWzNdID0gaW5mby0+dS5o dm0uc2d4LmxlaGFzaDM7CisKKyAgICAgICAgICAgIHJjID0geGNfbXNyX3NneF9zZXQoY3R4LT54 Y2gsIGRvbWlkLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsaWJ4bF9kZWZib29s X3ZhbChpbmZvLT51Lmh2bS5zZ3gubGV3ciksCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxlaGFzaCwgaW5mby0+bWF4X3ZjcHVzKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmIChy YykgeworICAgICAgICAgICAgTE9HKEVSUk9SLCAiVW5hYmxlIHRvIHNldCBTR1ggcmVsYXRlZCBN U1JzICglZCkiLCByYyk7CisgICAgICAgICAgICByZXR1cm4gRVJST1JfRkFJTDsKKyAgICAgICAg fQorICAgIH0KKwogICAgIGlmICh4Y19kb21haW5fc2V0X2dudHRhYl9saW1pdHMoY3R4LT54Y2gs IGRvbWlkLCBpbmZvLT5tYXhfZ3JhbnRfZnJhbWVzLAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaW5mby0+bWF4X21hcHRyYWNrX2ZyYW1lcykgIT0gMCkgewogICAgICAgICBM T0coRVJST1IsICJDb3VsZG4ndCBzZXQgZ3JhbnQgdGFibGUgbGltaXRzIik7CmRpZmYgLS1naXQg YS90b29scy94bC94bF9wYXJzZS5jIGIvdG9vbHMveGwveGxfcGFyc2UuYwppbmRleCBlOTY2MTJi YzcxZjMuLjIxMWVlODMyY2EzMSAxMDA2NDQKLS0tIGEvdG9vbHMveGwveGxfcGFyc2UuYworKysg Yi90b29scy94bC94bF9wYXJzZS5jCkBAIC04MjgsNiArODI4LDE2IEBAIGludCBwYXJzZV9zZ3hf Y29uZmlnKGxpYnhsX3NneF9idWlsZGluZm8gKnNneCwgY2hhciAqdG9rZW4pCiAgICAgICAgICAg ICBmcHJpbnRmKHN0ZGVyciwgIidsZWhhc2g9PC4uLj4nIHJlcXVpcmVzIDI1NmJpdCBTSEEyNTYg aGFzaFxuIik7CiAgICAgICAgICAgICByZXR1cm4gMTsKICAgICAgICAgfQorICAgICAgICAKKyAg ICAgICAgLyoKKyAgICAgICAgICogJ2xlaGFzaCcgaXMgYSBoZXggc3RyaW5nIG9mIDMyIGJ5dGVz IGluIGxpdHRsZS1lbmRpYW4sIGkuZS4gdGhlCisgICAgICAgICAqIGxlZnRtb3N0IGJ5dGUgaXMg dGhlIGxlYXN0IHNpZ25pZmljYW50IGJ5dGUuCisgICAgICAgICAqCisgICAgICAgICAqIFdlIGNv bnZlcnQgdGhlIGhleCBzdHJpbmcgOCBieXRlcyg2NCBiaXQpIGEgdGltZSB0byB1aW50NjQgdmlh CisgICAgICAgICAqIHN0cnRvdWxsKCkuIEFuZCBzdHJ0b3VsbCgpIHRyZWF0cyB0aGUgc3RyaW5n IGFzIGJpZy1lbmRpYW4sCisgICAgICAgICAqIHRoZXJlZm9yZSB3ZSBuZWVkIHRvIHN3YXAgdGhl IHZhbHVlIGFmdGVyd2FyZHMgdG8gZ2V0IHRoZSBjb3JyZWN0CisgICAgICAgICAqIHZhbHVlLgor ICAgICAgICAgKi8KIAogICAgICAgICBjaGFyIGJ1ZlsxN107CiAKLS0gCjIuMTUuMAoKCl9fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWls aW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbnByb2plY3Qub3JnCmh0dHBzOi8vbGlzdHMueGVu cHJvamVjdC5vcmcvbWFpbG1hbi9saXN0aW5mby94ZW4tZGV2ZWw=