From mboxrd@z Thu Jan 1 00:00:00 1970 From: Paolo Bonzini Subject: Re: PATCH: setup_vmcs_config: disable TSC scaling on unlike processors Date: Wed, 14 Dec 2016 13:30:50 +0100 Message-ID: <6a58d9b5-eb7f-2c39-c48b-7f731febbbaa@redhat.com> References: <20161202150632.GA22204@potion> <59a3f1a2-5b9e-2ca7-5285-1469fef40f42@redhat.com> <20161206110858.GC8660@potion> <22b615ad-9161-2fef-4d17-885c33b0ac76@redhat.com> <20161207152520.GA15611@potion> <23190243-47f6-ebb9-279d-c4db9f58c6ef@redhat.com> <20161208143206.GA22892@potion> <20161213154334.GC2293@potion> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="------------8B7449AB4F16CEAF60943521" Cc: David Hildenbrand , kvm@vger.kernel.org To: Don Bowman , =?UTF-8?B?UmFkaW0gS3LEjW3DocWZ?= Return-path: Received: from mx1.redhat.com ([209.132.183.28]:58772 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1754870AbcLNMay (ORCPT ); Wed, 14 Dec 2016 07:30:54 -0500 In-Reply-To: Sender: kvm-owner@vger.kernel.org List-ID: This is a multi-part message in MIME format. --------------8B7449AB4F16CEAF60943521 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit On 14/12/2016 05:07, Don Bowman wrote: > OK, how about this? > As a side note, i'm still not clear on why this happens. cpuid cannot > tell the difference between these processors (same model hex-id, > stepping, extended family, extended model). The only difference is one > was an OEM 'tray' and one was the retail (to upgrade the single-socket > machine to dual socket). Can you please provide the exact model, and the output of the attached program for both CPUs. The argument to the program is a CPU number, so you should run it once with a CPU id from the OEM processor, and once with a CPU id from the retail processor (so two ids that have a different "physical id" in /proc/cpuinfo). Also please include /proc/cpuinfo contents, and the boot log to check the microcode revision. I'd like to pass this info to Intel. Thanks, Paolo > diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c > index 5382b82..84733b3 100644 > --- a/arch/x86/kvm/vmx.c > +++ b/arch/x86/kvm/vmx.c > @@ -103,6 +103,14 @@ module_param_named(enable_shadow_vmcs, > enable_shadow_vmcs, bool, S_IRUGO); > static bool __read_mostly nested = 0; > module_param(nested, bool, S_IRUGO); > > +/* > + * Override the 'all cpu have identical flag' check. > + * Note: KVM is going to fail unless you explicitly disable > + * features that are not present on all CPUs > +*/ > +static bool __read_mostly ignore_inconsistency = false; > +module_param(ignore_inconsistency, bool, S_IRUGO); > + > static u64 __read_mostly host_xss; > > static bool __read_mostly enable_pml = 1; > @@ -9202,9 +9210,11 @@ static void __init vmx_check_processor_compat(void *rtn) > if (setup_vmcs_config(&vmcs_conf) < 0) > *(int *)rtn = -EIO; > if (memcmp(&vmcs_config, &vmcs_conf, sizeof(struct vmcs_config)) != 0) { > - printk(KERN_ERR "kvm: CPU %d feature inconsistency!\n", > - smp_processor_id()); > - *(int *)rtn = -EIO; > + printk(KERN_ERR "kvm: CPU %d feature inconsistency%s!\n", > + smp_processor_id(), > + ignore_inconsistency ? " -- ignored" : ""); > + if (!ignore_inconsistency) > + *(int *)rtn = -EIO; > } > } --------------8B7449AB4F16CEAF60943521 Content-Type: text/plain; charset=UTF-8; name="vmxcap" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="vmxcap" IyEvdXNyL2Jpbi9weXRob24KIwojIHRvb2wgZm9yIHF1ZXJ5aW5nIFZNWCBjYXBhYmlsaXRp ZXMKIwojIENvcHlyaWdodCAyMDA5LTIwMTAgUmVkIEhhdCwgSW5jLgojCiMgQXV0aG9yczoK IyAgQXZpIEtpdml0eSA8YXZpQHJlZGhhdC5jb20+CiMKIyBUaGlzIHdvcmsgaXMgbGljZW5z ZWQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgR1BMLCB2ZXJzaW9uIDIuICBTZWUKIyB0 aGUgQ09QWUlORyBmaWxlIGluIHRoZSB0b3AtbGV2ZWwgZGlyZWN0b3J5LgoKTVNSX0lBMzJf Vk1YX0JBU0lDID0gMHg0ODAKTVNSX0lBMzJfVk1YX1BJTkJBU0VEX0NUTFMgPSAweDQ4MQpN U1JfSUEzMl9WTVhfUFJPQ0JBU0VEX0NUTFMgPSAweDQ4MgpNU1JfSUEzMl9WTVhfRVhJVF9D VExTID0gMHg0ODMKTVNSX0lBMzJfVk1YX0VOVFJZX0NUTFMgPSAweDQ4NApNU1JfSUEzMl9W TVhfTUlTQ19DVExTID0gMHg0ODUKTVNSX0lBMzJfVk1YX1BST0NCQVNFRF9DVExTMiA9IDB4 NDhCCk1TUl9JQTMyX1ZNWF9FUFRfVlBJRF9DQVAgPSAweDQ4QwpNU1JfSUEzMl9WTVhfVFJV RV9QSU5CQVNFRF9DVExTID0gMHg0OEQKTVNSX0lBMzJfVk1YX1RSVUVfUFJPQ0JBU0VEX0NU TFMgPSAweDQ4RQpNU1JfSUEzMl9WTVhfVFJVRV9FWElUX0NUTFMgPSAweDQ4RgpNU1JfSUEz Ml9WTVhfVFJVRV9FTlRSWV9DVExTID0gMHg0OTAKTVNSX0lBMzJfVk1YX1ZNRlVOQyA9IDB4 NDkxCgppbXBvcnQgc3lzCgpjbGFzcyBtc3Iob2JqZWN0KToKICAgIGRlZiBfX2luaXRfXyhz ZWxmKToKICAgICAgICBzZWxmLmYgPSBvcGVuKCcvZGV2L2NwdS8nICsgc3lzLmFyZ3ZbMV0g KyAnL21zcicsICdyJywgMCkKICAgIGRlZiByZWFkKHNlbGYsIGluZGV4LCBkZWZhdWx0ID0g Tm9uZSk6CiAgICAgICAgaW1wb3J0IHN0cnVjdAogICAgICAgIHNlbGYuZi5zZWVrKGluZGV4 KQogICAgICAgIHRyeToKICAgICAgICAgICAgcmV0dXJuIHN0cnVjdC51bnBhY2soJ1EnLCBz ZWxmLmYucmVhZCg4KSlbMF0KICAgICAgICBleGNlcHQ6CiAgICAgICAgICAgIHJldHVybiBk ZWZhdWx0CgpjbGFzcyBDb250cm9sKG9iamVjdCk6CiAgICBkZWYgX19pbml0X18oc2VsZiwg bmFtZSwgYml0cywgY2FwX21zciwgdHJ1ZV9jYXBfbXNyID0gTm9uZSk6CiAgICAgICAgc2Vs Zi5uYW1lID0gbmFtZQogICAgICAgIHNlbGYuYml0cyA9IGJpdHMKICAgICAgICBzZWxmLmNh cF9tc3IgPSBjYXBfbXNyCiAgICAgICAgc2VsZi50cnVlX2NhcF9tc3IgPSB0cnVlX2NhcF9t c3IKICAgIGRlZiByZWFkMihzZWxmLCBucik6CiAgICAgICAgbSA9IG1zcigpCiAgICAgICAg dmFsID0gbS5yZWFkKG5yLCAwKQogICAgICAgIHJldHVybiAodmFsICYgMHhmZmZmZmZmZiwg dmFsID4+IDMyKQogICAgZGVmIHNob3coc2VsZik6CiAgICAgICAgcHJpbnQgc2VsZi5uYW1l CiAgICAgICAgbWJ6LCBtYjEgPSBzZWxmLnJlYWQyKHNlbGYuY2FwX21zcikKICAgICAgICB0 bWJ6LCB0bWIxID0gMCwgMAogICAgICAgIGlmIHNlbGYudHJ1ZV9jYXBfbXNyOgogICAgICAg ICAgICB0bWJ6LCB0bWIxID0gc2VsZi5yZWFkMihzZWxmLnRydWVfY2FwX21zcikKICAgICAg ICBmb3IgYml0IGluIHNvcnRlZChzZWxmLmJpdHMua2V5cygpKToKICAgICAgICAgICAgemVy byA9IG5vdCAobWJ6ICYgKDEgPDwgYml0KSkKICAgICAgICAgICAgb25lID0gbWIxICYgKDEg PDwgYml0KQogICAgICAgICAgICB0cnVlX3plcm8gPSBub3QgKHRtYnogJiAoMSA8PCBiaXQp KQogICAgICAgICAgICB0cnVlX29uZSA9IHRtYjEgJiAoMSA8PCBiaXQpCiAgICAgICAgICAg IHM9ICc/JwogICAgICAgICAgICBpZiAoc2VsZi50cnVlX2NhcF9tc3IgYW5kIHRydWVfemVy byBhbmQgdHJ1ZV9vbmUKICAgICAgICAgICAgICAgIGFuZCBvbmUgYW5kIG5vdCB6ZXJvKToK ICAgICAgICAgICAgICAgIHMgPSAnZGVmYXVsdCcKICAgICAgICAgICAgZWxpZiB6ZXJvIGFu ZCBub3Qgb25lOgogICAgICAgICAgICAgICAgcyA9ICdubycKICAgICAgICAgICAgZWxpZiBv bmUgYW5kIG5vdCB6ZXJvOgogICAgICAgICAgICAgICAgcyA9ICdmb3JjZWQnCiAgICAgICAg ICAgIGVsaWYgb25lIGFuZCB6ZXJvOgogICAgICAgICAgICAgICAgcyA9ICd5ZXMnCiAgICAg ICAgICAgIHByaW50ICcgICUtNDBzICVzJyAlIChzZWxmLmJpdHNbYml0XSwgcykKCmNsYXNz IE1pc2Mob2JqZWN0KToKICAgIGRlZiBfX2luaXRfXyhzZWxmLCBuYW1lLCBiaXRzLCBtc3Ip OgogICAgICAgIHNlbGYubmFtZSA9IG5hbWUKICAgICAgICBzZWxmLmJpdHMgPSBiaXRzCiAg ICAgICAgc2VsZi5tc3IgPSBtc3IKICAgIGRlZiBzaG93KHNlbGYpOgogICAgICAgIHByaW50 IHNlbGYubmFtZQogICAgICAgIHZhbHVlID0gbXNyKCkucmVhZChzZWxmLm1zciwgMCkKICAg ICAgICBwcmludCAnICBIZXg6IDB4JXgnICUgKHZhbHVlKQogICAgICAgIGRlZiBmaXJzdF9i aXQoa2V5KToKICAgICAgICAgICAgaWYgdHlwZShrZXkpIGlzIHR1cGxlOgogICAgICAgICAg ICAgICAgcmV0dXJuIGtleVswXQogICAgICAgICAgICBlbHNlOgogICAgICAgICAgICAgICAg cmV0dXJuIGtleQogICAgICAgIGZvciBiaXRzIGluIHNvcnRlZChzZWxmLmJpdHMua2V5cygp LCBrZXkgPSBmaXJzdF9iaXQpOgogICAgICAgICAgICBpZiB0eXBlKGJpdHMpIGlzIHR1cGxl OgogICAgICAgICAgICAgICAgbG8sIGhpID0gYml0cwogICAgICAgICAgICAgICAgZm10ID0g aW50CiAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICBsbyA9IGhpID0gYml0cwog ICAgICAgICAgICAgICAgZGVmIGZtdCh4KToKICAgICAgICAgICAgICAgICAgICByZXR1cm4g eyBUcnVlOiAneWVzJywgRmFsc2U6ICdubycgfVt4XQogICAgICAgICAgICB2ID0gKHZhbHVl ID4+IGxvKSAmICgoMSA8PCAoaGkgLSBsbyArIDEpKSAtIDEpCiAgICAgICAgICAgIHByaW50 ICcgICUtNDBzICVzJyAlIChzZWxmLmJpdHNbYml0c10sIGZtdCh2KSkKCmNvbnRyb2xzID0g WwogICAgTWlzYygKICAgICAgICBuYW1lID0gJ0Jhc2ljIFZNWCBJbmZvcm1hdGlvbicsCiAg ICAgICAgYml0cyA9IHsKICAgICAgICAgICAgKDAsIDMwKTogJ1JldmlzaW9uJywKICAgICAg ICAgICAgKDMyLDQ0KTogJ1ZNQ1Mgc2l6ZScsCiAgICAgICAgICAgIDQ4OiAnVk1DUyByZXN0 cmljdGVkIHRvIDMyIGJpdCBhZGRyZXNzZXMnLAogICAgICAgICAgICA0OTogJ0R1YWwtbW9u aXRvciBzdXBwb3J0JywKICAgICAgICAgICAgKDUwLCA1Myk6ICdWTUNTIG1lbW9yeSB0eXBl JywKICAgICAgICAgICAgNTQ6ICdJTlMvT1VUUyBpbnN0cnVjdGlvbiBpbmZvcm1hdGlvbics CiAgICAgICAgICAgIDU1OiAnSUEzMl9WTVhfVFJVRV8qX0NUTFMgc3VwcG9ydCcsCiAgICAg ICAgICAgIH0sCiAgICAgICAgbXNyID0gTVNSX0lBMzJfVk1YX0JBU0lDLAogICAgICAgICks CiAgICBDb250cm9sKAogICAgICAgIG5hbWUgPSAncGluLWJhc2VkIGNvbnRyb2xzJywKICAg ICAgICBiaXRzID0gewogICAgICAgICAgICAwOiAnRXh0ZXJuYWwgaW50ZXJydXB0IGV4aXRp bmcnLAogICAgICAgICAgICAzOiAnTk1JIGV4aXRpbmcnLAogICAgICAgICAgICA1OiAnVmly dHVhbCBOTUlzJywKICAgICAgICAgICAgNjogJ0FjdGl2YXRlIFZNWC1wcmVlbXB0aW9uIHRp bWVyJywKICAgICAgICAgICAgNzogJ1Byb2Nlc3MgcG9zdGVkIGludGVycnVwdHMnLAogICAg ICAgICAgICB9LAogICAgICAgIGNhcF9tc3IgPSBNU1JfSUEzMl9WTVhfUElOQkFTRURfQ1RM UywKICAgICAgICB0cnVlX2NhcF9tc3IgPSBNU1JfSUEzMl9WTVhfVFJVRV9QSU5CQVNFRF9D VExTLAogICAgICAgICksCgogICAgQ29udHJvbCgKICAgICAgICBuYW1lID0gJ3ByaW1hcnkg cHJvY2Vzc29yLWJhc2VkIGNvbnRyb2xzJywKICAgICAgICBiaXRzID0gewogICAgICAgICAg ICAyOiAnSW50ZXJydXB0IHdpbmRvdyBleGl0aW5nJywKICAgICAgICAgICAgMzogJ1VzZSBU U0Mgb2Zmc2V0dGluZycsCiAgICAgICAgICAgIDc6ICdITFQgZXhpdGluZycsCiAgICAgICAg ICAgIDk6ICdJTlZMUEcgZXhpdGluZycsCiAgICAgICAgICAgIDEwOiAnTVdBSVQgZXhpdGlu ZycsCiAgICAgICAgICAgIDExOiAnUkRQTUMgZXhpdGluZycsCiAgICAgICAgICAgIDEyOiAn UkRUU0MgZXhpdGluZycsCiAgICAgICAgICAgIDE1OiAnQ1IzLWxvYWQgZXhpdGluZycsCiAg ICAgICAgICAgIDE2OiAnQ1IzLXN0b3JlIGV4aXRpbmcnLAogICAgICAgICAgICAxOTogJ0NS OC1sb2FkIGV4aXRpbmcnLAogICAgICAgICAgICAyMDogJ0NSOC1zdG9yZSBleGl0aW5nJywK ICAgICAgICAgICAgMjE6ICdVc2UgVFBSIHNoYWRvdycsCiAgICAgICAgICAgIDIyOiAnTk1J LXdpbmRvdyBleGl0aW5nJywKICAgICAgICAgICAgMjM6ICdNT1YtRFIgZXhpdGluZycsCiAg ICAgICAgICAgIDI0OiAnVW5jb25kaXRpb25hbCBJL08gZXhpdGluZycsCiAgICAgICAgICAg IDI1OiAnVXNlIEkvTyBiaXRtYXBzJywKICAgICAgICAgICAgMjc6ICdNb25pdG9yIHRyYXAg ZmxhZycsCiAgICAgICAgICAgIDI4OiAnVXNlIE1TUiBiaXRtYXBzJywKICAgICAgICAgICAg Mjk6ICdNT05JVE9SIGV4aXRpbmcnLAogICAgICAgICAgICAzMDogJ1BBVVNFIGV4aXRpbmcn LAogICAgICAgICAgICAzMTogJ0FjdGl2YXRlIHNlY29uZGFyeSBjb250cm9sJywKICAgICAg ICAgICAgfSwKICAgICAgICBjYXBfbXNyID0gTVNSX0lBMzJfVk1YX1BST0NCQVNFRF9DVExT LAogICAgICAgIHRydWVfY2FwX21zciA9IE1TUl9JQTMyX1ZNWF9UUlVFX1BST0NCQVNFRF9D VExTLAogICAgICAgICksCgogICAgQ29udHJvbCgKICAgICAgICBuYW1lID0gJ3NlY29uZGFy eSBwcm9jZXNzb3ItYmFzZWQgY29udHJvbHMnLAogICAgICAgIGJpdHMgPSB7CiAgICAgICAg ICAgIDA6ICdWaXJ0dWFsaXplIEFQSUMgYWNjZXNzZXMnLAogICAgICAgICAgICAxOiAnRW5h YmxlIEVQVCcsCiAgICAgICAgICAgIDI6ICdEZXNjcmlwdG9yLXRhYmxlIGV4aXRpbmcnLAog ICAgICAgICAgICAzOiAnRW5hYmxlIFJEVFNDUCcsCiAgICAgICAgICAgIDQ6ICdWaXJ0dWFs aXplIHgyQVBJQyBtb2RlJywKICAgICAgICAgICAgNTogJ0VuYWJsZSBWUElEJywKICAgICAg ICAgICAgNjogJ1dCSU5WRCBleGl0aW5nJywKICAgICAgICAgICAgNzogJ1VucmVzdHJpY3Rl ZCBndWVzdCcsCiAgICAgICAgICAgIDg6ICdBUElDIHJlZ2lzdGVyIGVtdWxhdGlvbicsCiAg ICAgICAgICAgIDk6ICdWaXJ0dWFsIGludGVycnVwdCBkZWxpdmVyeScsCiAgICAgICAgICAg IDEwOiAnUEFVU0UtbG9vcCBleGl0aW5nJywKICAgICAgICAgICAgMTE6ICdSRFJBTkQgZXhp dGluZycsCiAgICAgICAgICAgIDEyOiAnRW5hYmxlIElOVlBDSUQnLAogICAgICAgICAgICAx MzogJ0VuYWJsZSBWTSBmdW5jdGlvbnMnLAogICAgICAgICAgICAxNDogJ1ZNQ1Mgc2hhZG93 aW5nJywKICAgICAgICAgICAgMTY6ICdSRFNFRUQgZXhpdGluZycsCiAgICAgICAgICAgIDE4 OiAnRVBULXZpb2xhdGlvbiAjVkUnLAogICAgICAgICAgICAyMDogJ0VuYWJsZSBYU0FWRVMv WFJTVE9SUycsCiAgICAgICAgICAgIDI1OiAnVFNDIHNjYWxpbmcnLAogICAgICAgICAgICB9 LAogICAgICAgIGNhcF9tc3IgPSBNU1JfSUEzMl9WTVhfUFJPQ0JBU0VEX0NUTFMyLAogICAg ICAgICksCgogICAgQ29udHJvbCgKICAgICAgICBuYW1lID0gJ1ZNLUV4aXQgY29udHJvbHMn LAogICAgICAgIGJpdHMgPSB7CiAgICAgICAgICAgIDI6ICdTYXZlIGRlYnVnIGNvbnRyb2xz JywKICAgICAgICAgICAgOTogJ0hvc3QgYWRkcmVzcy1zcGFjZSBzaXplJywKICAgICAgICAg ICAgMTI6ICdMb2FkIElBMzJfUEVSRl9HTE9CQUxfQ1RSTCcsCiAgICAgICAgICAgIDE1OiAn QWNrbm93bGVkZ2UgaW50ZXJydXB0IG9uIGV4aXQnLAogICAgICAgICAgICAxODogJ1NhdmUg SUEzMl9QQVQnLAogICAgICAgICAgICAxOTogJ0xvYWQgSUEzMl9QQVQnLAogICAgICAgICAg ICAyMDogJ1NhdmUgSUEzMl9FRkVSJywKICAgICAgICAgICAgMjE6ICdMb2FkIElBMzJfRUZF UicsCiAgICAgICAgICAgIDIyOiAnU2F2ZSBWTVgtcHJlZW1wdGlvbiB0aW1lciB2YWx1ZScs CiAgICAgICAgICAgIH0sCiAgICAgICAgY2FwX21zciA9IE1TUl9JQTMyX1ZNWF9FWElUX0NU TFMsCiAgICAgICAgdHJ1ZV9jYXBfbXNyID0gTVNSX0lBMzJfVk1YX1RSVUVfRVhJVF9DVExT LAogICAgICAgICksCgogICAgQ29udHJvbCgKICAgICAgICBuYW1lID0gJ1ZNLUVudHJ5IGNv bnRyb2xzJywKICAgICAgICBiaXRzID0gewogICAgICAgICAgICAyOiAnTG9hZCBkZWJ1ZyBj b250cm9scycsCiAgICAgICAgICAgIDk6ICdJQS0zMmUgbW9kZSBndWVzdCcsCiAgICAgICAg ICAgIDEwOiAnRW50cnkgdG8gU01NJywKICAgICAgICAgICAgMTE6ICdEZWFjdGl2YXRlIGR1 YWwtbW9uaXRvciB0cmVhdG1lbnQnLAogICAgICAgICAgICAxMzogJ0xvYWQgSUEzMl9QRVJG X0dMT0JBTF9DVFJMJywKICAgICAgICAgICAgMTQ6ICdMb2FkIElBMzJfUEFUJywKICAgICAg ICAgICAgMTU6ICdMb2FkIElBMzJfRUZFUicsCiAgICAgICAgICAgIH0sCiAgICAgICAgY2Fw X21zciA9IE1TUl9JQTMyX1ZNWF9FTlRSWV9DVExTLAogICAgICAgIHRydWVfY2FwX21zciA9 IE1TUl9JQTMyX1ZNWF9UUlVFX0VOVFJZX0NUTFMsCiAgICAgICAgKSwKCiAgICBNaXNjKAog ICAgICAgIG5hbWUgPSAnTWlzY2VsbGFuZW91cyBkYXRhJywKICAgICAgICBiaXRzID0gewog ICAgICAgICAgICAoMCw0KTogJ1ZNWC1wcmVlbXB0aW9uIHRpbWVyIHNjYWxlIChsb2cyKScs CiAgICAgICAgICAgIDU6ICdTdG9yZSBFRkVSLkxNQSBpbnRvIElBLTMyZSBtb2RlIGd1ZXN0 IGNvbnRyb2wnLAogICAgICAgICAgICA2OiAnSExUIGFjdGl2aXR5IHN0YXRlJywKICAgICAg ICAgICAgNzogJ1NodXRkb3duIGFjdGl2aXR5IHN0YXRlJywKICAgICAgICAgICAgODogJ1dh aXQtZm9yLVNJUEkgYWN0aXZpdHkgc3RhdGUnLAogICAgICAgICAgICAxNTogJ0lBMzJfU01C QVNFIHN1cHBvcnQnLAogICAgICAgICAgICAoMTYsMjQpOiAnTnVtYmVyIG9mIENSMy10YXJn ZXQgdmFsdWVzJywKICAgICAgICAgICAgKDI1LDI3KTogJ01TUi1sb2FkL3N0b3JlIGNvdW50 IHJlY29tbWVuZGF0aW9uJywKICAgICAgICAgICAgMjg6ICdJQTMyX1NNTV9NT05JVE9SX0NU TFsyXSBjYW4gYmUgc2V0IHRvIDEnLAogICAgICAgICAgICAyOTogJ1ZNV1JJVEUgdG8gVk0t ZXhpdCBpbmZvcm1hdGlvbiBmaWVsZHMnLAogICAgICAgICAgICAoMzIsNjMpOiAnTVNFRyBy ZXZpc2lvbiBpZGVudGlmaWVyJywKICAgICAgICAgICAgfSwKICAgICAgICBtc3IgPSBNU1Jf SUEzMl9WTVhfTUlTQ19DVExTLAogICAgICAgICksCgogICAgTWlzYygKICAgICAgICBuYW1l ID0gJ1ZQSUQgYW5kIEVQVCBjYXBhYmlsaXRpZXMnLAogICAgICAgIGJpdHMgPSB7CiAgICAg ICAgICAgIDA6ICdFeGVjdXRlLW9ubHkgRVBUIHRyYW5zbGF0aW9ucycsCiAgICAgICAgICAg IDY6ICdQYWdlLXdhbGsgbGVuZ3RoIDQnLAogICAgICAgICAgICA4OiAnUGFnaW5nLXN0cnVj dHVyZSBtZW1vcnkgdHlwZSBVQycsCiAgICAgICAgICAgIDE0OiAnUGFnaW5nLXN0cnVjdHVy ZSBtZW1vcnkgdHlwZSBXQicsCiAgICAgICAgICAgIDE2OiAnMk1CIEVQVCBwYWdlcycsCiAg ICAgICAgICAgIDE3OiAnMUdCIEVQVCBwYWdlcycsCiAgICAgICAgICAgIDIwOiAnSU5WRVBU IHN1cHBvcnRlZCcsCiAgICAgICAgICAgIDIxOiAnRVBUIGFjY2Vzc2VkIGFuZCBkaXJ0eSBm bGFncycsCiAgICAgICAgICAgIDI1OiAnU2luZ2xlLWNvbnRleHQgSU5WRVBUJywKICAgICAg ICAgICAgMjY6ICdBbGwtY29udGV4dCBJTlZFUFQnLAogICAgICAgICAgICAzMjogJ0lOVlZQ SUQgc3VwcG9ydGVkJywKICAgICAgICAgICAgNDA6ICdJbmRpdmlkdWFsLWFkZHJlc3MgSU5W VlBJRCcsCiAgICAgICAgICAgIDQxOiAnU2luZ2xlLWNvbnRleHQgSU5WVlBJRCcsCiAgICAg ICAgICAgIDQyOiAnQWxsLWNvbnRleHQgSU5WVlBJRCcsCiAgICAgICAgICAgIDQzOiAnU2lu Z2xlLWNvbnRleHQtcmV0YWluaW5nLWdsb2JhbHMgSU5WVlBJRCcsCiAgICAgICAgICAgIH0s CiAgICAgICAgbXNyID0gTVNSX0lBMzJfVk1YX0VQVF9WUElEX0NBUCwKICAgICAgICApLAog ICAgTWlzYygKICAgICAgICBuYW1lID0gJ1ZNIEZ1bmN0aW9ucycsCiAgICAgICAgYml0cyA9 IHsKICAgICAgICAgICAgMDogJ0VQVFAgU3dpdGNoaW5nJywKICAgICAgICAgICAgfSwKICAg ICAgICBtc3IgPSBNU1JfSUEzMl9WTVhfVk1GVU5DLAogICAgICAgICksCiAgICBdCgpmb3Ig YyBpbiBjb250cm9sczoKICAgIGMuc2hvdygpCg== --------------8B7449AB4F16CEAF60943521--