From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3B526C433EF for ; Mon, 6 Dec 2021 09:52:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241548AbhLFJ4H (ORCPT ); Mon, 6 Dec 2021 04:56:07 -0500 Received: from us-smtp-delivery-124.mimecast.com ([170.10.129.124]:26293 "EHLO us-smtp-delivery-124.mimecast.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241535AbhLFJ4H (ORCPT ); Mon, 6 Dec 2021 04:56:07 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1638784358; 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: in-reply-to:in-reply-to:references:references; bh=kqxxSnMEN0luxhPtkhKUIBe4bghJJprL73LG2dA5v+k=; b=B/1Ci0bEe4cLxk0bKzONbrZY3eOEBAeLpTSLJFiODFck2/CdfgB4WbTM/IJ0xrlaZYYMB2 /fm9/bnTe7ExMvd6G6X0jcd9NmkSa1l/7IcL1PHjyKye0wFwJCLhDJYg59R/LsvXMTNtEL ugsre1xfqQ1rRtow1TO7lNSa0c7ehz0= Received: from mail-ed1-f69.google.com (mail-ed1-f69.google.com [209.85.208.69]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id us-mta-101-eeb4QP55NQmt9tyVsAEuVw-1; Mon, 06 Dec 2021 04:52:35 -0500 X-MC-Unique: eeb4QP55NQmt9tyVsAEuVw-1 Received: by mail-ed1-f69.google.com with SMTP id w5-20020a05640234c500b003f1b9ab06d2so7905839edc.13 for ; Mon, 06 Dec 2021 01:52:35 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:in-reply-to:references:date :message-id:mime-version; bh=kqxxSnMEN0luxhPtkhKUIBe4bghJJprL73LG2dA5v+k=; b=g7YbJULAVdaa017uLsDZlIqu/vconF5slscyZYviFKVZXa3/5x0CS0i4Qe4Qi/iWQr J4VqRpBR/YuVDxErce7Ow8xjpj5CoLbtRT0Py3bmPblzK1UT9AW53Rksf81V9eE/kRC5 INBfI20qopJh/wxTpfwDPUBNgHJwZKDDVvCF/24vZWL+R8boAZKrbzxlvHslnMs8B8cW qaN81Dd807c6gkIQ1oo1FuV6n7zs1gDNhqHECjf7/acAULYD2IiqDYt1DN8xGWohd+/P j/Jn4vXWJZysUBcEOzq7o08bmnNt8WojFS/LXS30dsrL/64QW22knYLkFbFokRcO+1kh 9jeg== X-Gm-Message-State: AOAM5319VriueJqrH0CaNBqUOOzpoYK1NAWbw0B4Bf0fQCtpU1PaahrX U58qjlqx4csBp6+edwSV32i7jDs/wVOvPW7oqrrcCSCCzTPf/ZO/nEBNs91YwsSYOOevMn0lEWz Gayf7DjTEWRfM3jTWaa1HcXick5tM3JTtMb7BT4GCj1We5UkFRHwLdhcqczy+UgE/ X-Received: by 2002:a17:906:a08d:: with SMTP id q13mr43909945ejy.465.1638784354671; Mon, 06 Dec 2021 01:52:34 -0800 (PST) X-Google-Smtp-Source: ABdhPJyK3wjW2uluqLTfSu59yjTR3SaT4qTaDz07rR7uUHQh3FQ/LgPrg/zmWUKoP0i6csgJc/UyXw== X-Received: by 2002:a17:906:a08d:: with SMTP id q13mr43909917ejy.465.1638784354396; Mon, 06 Dec 2021 01:52:34 -0800 (PST) Received: from fedora (g-server-2.ign.cz. [91.219.240.2]) by smtp.gmail.com with ESMTPSA id t5sm7663345edd.68.2021.12.06.01.52.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Dec 2021 01:52:33 -0800 (PST) From: Vitaly Kuznetsov To: Makarand Sonare Cc: kvm Subject: Re: KVM patches for Hyper-V improvements In-Reply-To: <87r1au6rfe.fsf@redhat.com> References: <87r1au6rfe.fsf@redhat.com> Date: Mon, 06 Dec 2021 10:52:33 +0100 Message-ID: <875ys26owu.fsf@redhat.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Precedence: bulk List-ID: X-Mailing-List: kvm@vger.kernel.org --=-=-= Content-Type: text/plain Vitaly Kuznetsov writes: > Makarand Sonare writes: > >> Hello Vitaly, >> I am interested in knowing the exact set of KVM >> patches that were added for the Nested Hyper-V scenario. Could you >> please point me to them? > This would be quite a lot of data and i'm not exactly sure how to gather it. E.g. I did $ git log --oneline --no-merges -i --grep 'hyper.*v' v4.15..origin/master arch/x86/kvm/ and then manually filtered the list (I've probably missed something and kept something unrelated but I can't thinkg of a better way). I ended up with 152 patches (attached). Features, which are specific to nested Hyper-V scenario (Hyper-V on KVM), are Direct Synthetic timers, Enlightened VMCS (eVMCS), Reenlightenment notifications + everything mentioning 'nesting' on the list. The rest should benefit both Windows and Hyper-V scenarios. Hope this helps at least a little bit, -- Vitaly --=-=-= Content-Type: application/octet-stream Content-Disposition: attachment; filename=list Content-Transfer-Encoding: base64 YjVhZWFkMDA2NGYzIEtWTTogeDg2OiBBc3N1bWUgYSA2NC1iaXQgaHlwZXJjYWxsIGZvciBndWVz dHMgd2l0aCBwcm90ZWN0ZWQgc3RhdGUKYzVhZGJiM2FmMDUxIEtWTTogeDg2OiBGaXggdW5pbml0 aWFsaXplZCBlb2lfZXhpdF9iaXRtYXAgdXNhZ2UgaW4gdmNwdV9sb2FkX2VvaV9leGl0bWFwKCkK NjIwYjI0MzhhYmY5IEtWTTogTWFrZSBrdm1fbWFrZV92Y3B1c19yZXF1ZXN0X21hc2soKSB1c2Ug cHJlLWFsbG9jYXRlZCBjcHVfa2lja19tYXNrCjY0NzBhY2NjN2JhOSBLVk06IHg4NjogaHlwZXIt djogQXZvaWQgY2FsbGluZyBrdm1fbWFrZV92Y3B1c19yZXF1ZXN0X21hc2soKSB3aXRoIHZjcHVf bWFzaz09TlVMTAo4ZDY4YmFkNmQ4NjkgS1ZNOiBuVk1YOiBGaWx0ZXIgb3V0IGFsbCB1bnN1cHBv cnRlZCBjb250cm9scyB3aGVuIGVWTUNTIHdhcyBhY3RpdmF0ZWQKOTRjMjQ1YTI0NWZmIEtWTTog eDg2OiBJZGVudGlmeSB2Q1BVMCBieSBpdHMgdmNwdV9pZHggaW5zdGVhZCBvZiBpdHMgdkNQVXMg YXJyYXkgZW50cnkKMGYyNTBhNjQ2MzgyIEtWTTogeDg2OiBoeXBlci12OiBEZWFjdGl2YXRlIEFQ SUN2IG9ubHkgd2hlbiBBdXRvRU9JIGZlYXR1cmUgaXMgaW4gdXNlCmZmYmUxN2NhZGFmNSBLVk06 IHg4NjogcmVtb3ZlIGRlYWQgaW5pdGlhbGl6YXRpb24KNGU2MmFhOTZkNmU1IEtWTTogeDg2OiBo eXBlci12OiBDaGVjayBpZiBndWVzdCBpcyBhbGxvd2VkIHRvIHVzZSBYTU0gcmVnaXN0ZXJzIGZv ciBoeXBlcmNhbGwgaW5wdXQKMmUyZjFlOGQwNDUwIEtWTTogeDg2OiBoeXBlci12OiBDaGVjayBh Y2Nlc3MgdG8gaHlwZXJjYWxsIGJlZm9yZSByZWFkaW5nIFhNTSByZWdpc3RlcnMKMzdiZTQwN2Iy Y2U4IEtWTTogblNWTTogRml4IEwxIHN0YXRlIGNvcnJ1cHRpb24gdXBvbiByZXR1cm4gZnJvbSBT TU0KZmI3OWY1NjZlNGM5IEtWTTogblNWTTogQ2hlY2sgdGhhdCBWTV9IU0FWRV9QQSBNU1Igd2Fz IHNldCBiZWZvcmUgVk1SVU4KZGMzMTMzODU1MjlmIEtWTTogblZNWDogUmVzZXQgZVZNQ1MgY2xl YW4gZmllbGRzIGRhdGEgZnJvbSBwcmVwYXJlX3ZtY3MwMigpCmQ2YmY3MWExOGM3NCBLVk06IG5W TVg6IElnbm9yZSAnaHZfY2xlYW5fZmllbGRzJyBkYXRhIHdoZW4gZVZNQ1MgZGF0YSBpcyBjb3Bp ZWQgaW4gdm14X2dldF9uZXN0ZWRfc3RhdGUoKQozYjE5YjgxYWNmMzAgS1ZNOiBuVk1YOiBSZWxl YXNlIGVubGlnaHRlbmVkIFZNQ1Mgb24gVk1DTEVBUgo0NDVjYWVkMDIxM2EgS1ZNOiB4ODY6IGh5 cGVyLXY6IEhvbm9yIEhWX1g2NF9FWF9QUk9DRVNTT1JfTUFTS1NfUkVDT01NRU5ERUQgYml0CmQy NjRlYjNjMTRkMCBLVk06IHg4NjogaHlwZXItdjogSG9ub3IgSFZfWDY0X0NMVVNURVJfSVBJX1JF Q09NTUVOREVEIGJpdApiYjUzZWNiNGQ2ZWEgS1ZNOiB4ODY6IGh5cGVyLXY6IEhvbm9yIEhWX1g2 NF9SRU1PVEVfVExCX0ZMVVNIX1JFQ09NTUVOREVEIGJpdAphOTIxY2Y4M2NjNGMgS1ZNOiB4ODY6 IGh5cGVyLXY6IEhvbm9yIEhWX0RFQlVHR0lORyBwcml2aWxlZ2UgYml0CmE2MGIzYzU5NGVmMyBL Vk06IHg4NjogaHlwZXItdjogSG9ub3IgSFZfU0lHTkFMX0VWRU5UUyBwcml2aWxlZ2UgYml0CjRm NTMyYjdmOTY5ZiBLVk06IHg4NjogaHlwZXItdjogSG9ub3IgSFZfUE9TVF9NRVNTQUdFUyBwcml2 aWxlZ2UgYml0CjM0ZWY3ZDdiOWMwNCBLVk06IHg4NjogaHlwZXItdjogQ2hlY2sgYWNjZXNzIHRv IEhWQ0FMTF9OT1RJRllfTE9OR19TUElOX1dBSVQgaHlwZXJjYWxsCjRhZDgxYTkxMTE5ZCBLVk06 IHg4NjogaHlwZXItdjogUHJlcGFyZSB0byBjaGVjayBhY2Nlc3MgdG8gSHlwZXItViBoeXBlcmNh bGxzCjFhYThhNDE4NGRiZCBLVk06IHg4NjogaHlwZXItdjogSG9ub3IgSFZfU1RJTUVSX0RJUkVD VF9NT0RFX0FWQUlMQUJMRSBwcml2aWxlZ2UgYml0CmQ2NmJmYTM2ZjllZCBLVk06IHg4NjogaHlw ZXItdjogSW52ZXJzZSB0aGUgZGVmYXVsdCBpbiBodl9jaGVja19tc3JfYWNjZXNzKCkKMTdiNmQ1 MTc3MWExIEtWTTogeDg2OiBoeXBlci12OiBIb25vciBIVl9GRUFUVVJFX0RFQlVHX01TUlNfQVZB SUxBQkxFIHByaXZpbGVnZSBiaXQKMGExOWM4OTkyZGI4IEtWTTogeDg2OiBoeXBlci12OiBIb25v ciBIVl9GRUFUVVJFX0dVRVNUX0NSQVNIX01TUl9BVkFJTEFCTEUgcHJpdmlsZWdlIGJpdAoyMzRk MDFiYWVjNWIgS1ZNOiB4ODY6IGh5cGVyLXY6IEhvbm9yIEhWX0FDQ0VTU19SRUVOTElHSFRFTk1F TlQgcHJpdmlsZWdlIGJpdAo5NDQyZjNiZDkwMTIgS1ZNOiB4ODY6IGh5cGVyLXY6IEhvbm9yIEhW X0FDQ0VTU19GUkVRVUVOQ1lfTVNSUyBwcml2aWxlZ2UgYml0Cjk3OGI1NzQ3NWM3NyBLVk06IHg4 NjogaHlwZXItdjogSG9ub3IgSFZfTVNSX0FQSUNfQUNDRVNTX0FWQUlMQUJMRSBwcml2aWxlZ2Ug Yml0CmViYTYwZGRhZTc5NCBLVk06IHg4NjogaHlwZXItdjogSG9ub3IgSFZfTVNSX1NZTlRJTUVS X0FWQUlMQUJMRSBwcml2aWxlZ2UgYml0CjllMjcxNWNhMjBkNyBLVk06IHg4NjogaHlwZXItdjog SG9ub3IgSFZfTVNSX1NZTklDX0FWQUlMQUJMRSBwcml2aWxlZ2UgYml0CmExZWM2NjFjM2ZkYyBL Vk06IHg4NjogaHlwZXItdjogSG9ub3IgSFZfTVNSX1JFRkVSRU5DRV9UU0NfQVZBSUxBQkxFIHBy aXZpbGVnZSBiaXQKNjc5MDA4ZTRiYmViIEtWTTogeDg2OiBoeXBlci12OiBIb25vciBIVl9NU1Jf UkVTRVRfQVZBSUxBQkxFIHByaXZpbGVnZSBiaXQKZDJhYzI1ZDQxOTZkIEtWTTogeDg2OiBoeXBl ci12OiBIb25vciBIVl9NU1JfVlBfSU5ERVhfQVZBSUxBQkxFIHByaXZpbGVnZSBiaXQKYzJiMzI4 NjdmMmU3IEtWTTogeDg2OiBoeXBlci12OiBIb25vciBIVl9NU1JfVElNRV9SRUZfQ09VTlRfQVZB SUxBQkxFIHByaXZpbGVnZSBiaXQKYjgwYTkyZmY4MTU4IEtWTTogeDg2OiBoeXBlci12OiBIb25v ciBIVl9NU1JfVlBfUlVOVElNRV9BVkFJTEFCTEUgcHJpdmlsZWdlIGJpdAoxNTYxYzJjYjg3YWIg S1ZNOiB4ODY6IGh5cGVyLXY6IEhvbm9yIEhWX01TUl9IWVBFUkNBTExfQVZBSUxBQkxFIHByaXZp bGVnZSBiaXQKYjQxMjgwMDBlMmM5IEtWTTogeDg2OiBoeXBlci12OiBQcmVwYXJlIHRvIGNoZWNr IGFjY2VzcyB0byBIeXBlci1WIE1TUnMKMTBkN2JmMWU0NmRjIEtWTTogeDg2OiBoeXBlci12OiBD YWNoZSBndWVzdCBDUFVJRCBsZWF2ZXMgZGV0ZXJtaW5pbmcgZmVhdHVyZXMgYXZhaWxhYmlsaXR5 CjY0NGY3MDY3MTlmMCBLVk06IHg4NjogaHlwZXItdjogSW50cm9kdWNlIEtWTV9DQVBfSFlQRVJW X0VORk9SQ0VfQ1BVSUQKM2M4NmMwZDNkYmI5IEtWTTogeDg2OiBoeXBlci12OiBNb3ZlIHRoZSBy ZW1vdGUgVExCIGZsdXNoIGxvZ2ljIG91dCBvZiB2bXgKZDhmNTUzN2E4ODE2IEtWTTogaHlwZXIt djogQWR2ZXJ0aXNlIHN1cHBvcnQgZm9yIGZhc3QgWE1NIGh5cGVyY2FsbHMKNTk3NDU2NWJjMjZk IEtWTTogeDg2OiBrdm1faHZfZmx1c2hfdGxiIHVzZSBpbnB1dHMgZnJvbSBYTU0gcmVnaXN0ZXJz CmJkMzhiMzIwNTNlYiBLVk06IGh5cGVyLXY6IENvbGxlY3QgaHlwZXJjYWxsIHBhcmFtcyBpbnRv IHN0cnVjdApkYTZkNjNhMDA2MmEgS1ZNOiBYODY6IGh5cGVyLXY6IFRhc2sgc3JjdSBsb2NrIHdo ZW4gYWNjZXNzaW5nIGt2bV9tZW1zbG90cygpCjA0NjlmMmY3YWI0YyBLVk06IHg4NjogaHlwZXIt djogRG9uJ3QgdG91Y2ggVFNDIHBhZ2UgdmFsdWVzIHdoZW4gZ3Vlc3Qgb3B0ZWQgZm9yIHJlLWVu bGlnaHRlbm1lbnQKY2M5Y2ZkZGIwNDMzIEtWTTogeDg2OiBoeXBlci12OiBUcmFjayBIeXBlci1W IFRTQyBwYWdlIHN0YXR1cwplODgwYzZlYTU1YjkgS1ZNOiB4ODY6IGh5cGVyLXY6IFByZXZlbnQg dXNpbmcgbm90LXlldC11cGRhdGVkIFRTQyBwYWdlIGJ5IHNlY29uZGFyeSBDUFVzCmQyNTQ3Y2Y1 OTc5MyBLVk06IHg4NjogaHlwZXItdjogTGltaXQgZ3Vlc3QgdG8gd3JpdGluZyB6ZXJvIHRvIEhW X1g2NF9NU1JfVFNDX0VNVUxBVElPTl9TVEFUVVMKOTc4YzgzNGE2NjkxIEtWTTogVk1YOiBUcmFj ayByb290IEhQQSBpbnN0ZWFkIG9mIEVQVFAgZm9yIHBhcmF2aXJ0IEh5cGVyLVYgVExCIGZsdXNo CjE0MDcyZTU2OTU4YyBLVk06IFZNWDogU2tpcCBhZGRpdGlvbmFsIEh5cGVyLVYgVExCIEVQVFAg Zmx1c2hlcyBpZiBvbmUgZmFpbHMKZWUzNjY1NmYwYWMzIEtWTTogVk1YOiBEZWZpbmUgSHlwZXIt ViBwYXJhdmlydCBUTEIgZmx1c2ggZmllbGRzIGlmZiBIeXBlci1WIGlzIGVuYWJsZWQKYzgyZjFi NjcwZmQwIEtWTTogVk1YOiBFeHBsaWNpdGx5IGNoZWNrIGZvciBodl9yZW1vdGVfZmx1c2hfdGxi IHdoZW4gbG9hZGluZyBwZ2QKNDQ2ZjdmMTE1NTMwIEtWTTogVk1YOiBEbyBIeXBlci1WIFRMQiBm bHVzaCBpZmYgdkNQVSdzIEVQVFAgaGFzbid0IGJlZW4gZmx1c2hlZAoyODhiZWUyODA5NGUgS1ZN OiBWTVg6IEZvbGQgSHlwZXItViBFUFRQIGNoZWNraW5nIGludG8gaXQncyBvbmx5IGNhbGxlcgpi NjhhYTE1Y2NhNTYgS1ZNOiBWTVg6IFN0YXNoIGt2bV92bXggaW4gYSBsb2NhbCB2YXJpYWJsZSBm b3IgSHlwZXItViBwYXJhdmlydCBUTEIgZmx1c2gKYTQwMzhlZjFhYTYzIEtWTTogVk1YOiBUcmFj ayBjb21tb24gRVBUUCBmb3IgSHlwZXItVidzIHBhcmF2aXJ0IFRMQiBmbHVzaAo5MTlmNGViYzU5 ODcgS1ZNOiB4ODY6IGh5cGVyLXY6IEZpeCBIeXBlci1WIGNvbnRleHQgbnVsbC1wdHItZGVyZWYK YjljZTBmODZkOTE5IEtWTTogeDg2OiBoeXBlci12OiBEcm9wIGh2X3ZjcHVfdG9fdmNwdSgpIGhl bHBlcgpmYzA4YjYyOGQ3YzkgS1ZNOiB4ODY6IGh5cGVyLXY6IEFsbG9jYXRlIEh5cGVyLVYgY29u dGV4dCBsYXppbHkKOGYwMTQ1NTBkZmIxIEtWTTogeDg2OiBoeXBlci12OiBNYWtlIEh5cGVyLVYg ZW11bGF0aW9uIGVuYWJsZW1lbnQgY29uZGl0aW9uYWwKNDU5MmI3ZWFhODdkIEtWTTogeDg2OiBo eXBlci12OiBBbGxvY2F0ZSAnc3RydWN0IGt2bV92Y3B1X2h2JyBkeW5hbWljYWxseQpmMmJjMTRi NjljMzggS1ZNOiB4ODY6IGh5cGVyLXY6IFByZXBhcmUgdG8gbWVldCB1bmFsbG9jYXRlZCBIeXBl ci1WIGNvbnRleHQKOWZmNWUwMzA0ZTk0IEtWTTogeDg2OiBoeXBlci12OiBBbHdheXMgdXNlIHRv X2h2X3ZjcHUoKSBhY2Nlc3NvciB0byBnZXQgdG8gJ3N0cnVjdCBrdm1fdmNwdV9odicKNzIxNjdh OWQ3ZGEyIEtWTTogeDg2OiBoeXBlci12OiBTdG9wIHNoYWRvd2luZyBnbG9iYWwgJ2N1cnJlbnRf dmNwdScgdmFyaWFibGUKMDVmMDRhZTRmZmNjIEtWTTogeDg2OiBoeXBlci12OiBJbnRyb2R1Y2Ug dG9fa3ZtX2h2KCkgaGVscGVyCmY2OWI1NWVmZWY4NCBLVk06IHg4NjogaHlwZXItdjogUmVuYW1l IHZjcHVfdG9faHZfc3luZGJnKCkgdG8gdG9faHZfc3luZGJnKCkKYWFmYTk3ZmQxYzAxIEtWTTog eDg2OiBoeXBlci12OiBSZW5hbWUgdmNwdV90b19zdGltZXIoKS9zdGltZXJfdG9fdmNwdSgpCmUw MTIxZmEyOWE3ZiBLVk06IHg4NjogaHlwZXItdjogUmVuYW1lIHZjcHVfdG9fc3luaWMoKS9zeW5p Y190b192Y3B1KCkKZWYzZjM5ODBkZWRmIEtWTTogeDg2OiBoeXBlci12OiBSZW5hbWUgdmNwdV90 b19odl92Y3B1KCkgdG8gdG9faHZfdmNwdSgpCmNiNWI5MTYxNzJjNiBLVk06IHg4NjogaHlwZXIt djogRHJvcCB1bnVzZWQga3ZtX2h2X3ZhcGljX2Fzc2lzdF9wYWdlX2VuYWJsZWQoKQpjMjFkNTRm MDMwN2YgS1ZNOiB4ODY6IGh5cGVyLXY6IGFsbG93IEtWTV9HRVRfU1VQUE9SVEVEX0hWX0NQVUlE IGFzIGEgc3lzdGVtIGlvY3RsCmRiY2YzZjk2ZmE2NiBLVk06IHg4NjogaHlwZXItdjogZGlzYWxs b3cgY29uZmlndXJpbmcgU3luSUMgdGltZXJzIHdpdGggbm8gU3luSUMKZGZjNTNiYWFlM2M2IHg4 Ni9oeXBlcnY6IFJlbW92ZSBhbGlhc2VzIHdpdGggWDY0IGluIHRoZWlyIG5hbWUKOTliNDhlY2M4 ZTgwIHg4Ni9rdm0vaHlwZXItdjogU3luaWMgZGVmYXVsdCBTQ09OVFJPTCBNU1IgbmVlZHMgdG8g YmUgZW5hYmxlZApiMTg3MDM4YjVlM2YgeDg2L2t2bS9oeXBlci12OiBBZGQgc3VwcG9ydCBmb3Ig c3ludGhldGljIGRlYnVnZ2VyIHZpYSBoeXBlcmNhbGxzCjQ1YzM4OTczZWQxOCB4ODYva3ZtL2h5 cGVyLXY6IGVuYWJsZSBoeXBlcmNhbGxzIHJlZ2FyZGxlc3Mgb2YgaHlwZXJjYWxsIHBhZ2UKZjk3 ZjVhNTZmNTk3IHg4Ni9rdm0vaHlwZXItdjogQWRkIHN1cHBvcnQgZm9yIHN5bnRoZXRpYyBkZWJ1 Z2dlciBpbnRlcmZhY2UKMjJhZDAwMjZkMDk3IHg4Ni9oeXBlci12OiBBZGQgc3ludGhldGljIGRl YnVnZ2VyIGRlZmluaXRpb25zCjczNTdiMWRmNzQ0YyBLVk06IHg4NjogaHlwZXJ2OiBSZW1vdmUg ZHVwbGljYXRlIGRlZmluaXRpb25zIG9mIFJlZmVyZW5jZSBUU0MgUGFnZQowYmFlZGQ3OTI3MTMg S1ZNOiB4ODY6IG1ha2UgSHlwZXItViBQViBUTEIgZmx1c2ggdXNlIHRsYl9mbHVzaF9ndWVzdCgp CmI2YTA2NTNhZTJjZCBLVk06IG5WTVg6IHByb3Blcmx5IGhhbmRsZSBlcnJvcnMgaW4gbmVzdGVk X3ZteF9oYW5kbGVfZW5saWdodGVuZWRfdm1wdHJsZCgpCjA3NzIxZmVlZTQ2YiBLVk06IG5WTVg6 IERvbid0IGVtdWxhdGUgaW5zdHJ1Y3Rpb25zIGluIGd1ZXN0IG1vZGUKYTQ0NDMyNjc4MDBhIEtW TTogblZNWDogY2xlYXIgUElOX0JBU0VEX1BPU1RFRF9JTlRSIGZyb20gbmVzdGVkIHBpbmJhc2Vk X2N0bHMgb25seSB3aGVuIGFwaWN2IGlzIGdsb2JhbGx5IGRpc2FibGVkCmE4MzUwMjMxNGNlMyB4 ODYva3ZtL2h5cGVyLXY6IGRvbid0IGFsbG93IHRvIHR1cm4gb24gdW5zdXBwb3J0ZWQgVk1YIGNv bnRyb2xzIGZvciBuZXN0ZWQgZ3Vlc3RzCjMxZGUzZDI1MDBlNCB4ODYva3ZtL2h5cGVyLXY6IG1v dmUgVk1YIGNvbnRyb2xzIHNhbml0aXphdGlvbiBvdXQgb2YgbmVzdGVkX2VuYWJsZV9ldm1jcygp CmY0ZmRjMGEyZWRmNCBrdm06IHg4NjogaHlwZXJ2OiBVc2UgQVBJQ3YgdXBkYXRlIHJlcXVlc3Qg aW50ZXJmYWNlCjhkZjE0YWY0MmYwMCBrdm06IHg4NjogQWRkIHN1cHBvcnQgZm9yIGR5bmFtaWMg QVBJQ3YgYWN0aXZhdGlvbgo0ZTE5YzM2ZjJkZjgga3ZtOiB4ODY6IEludHJvZHVjZSBBUElDdiBp bmhpYml0IHJlYXNvbiBiaXRzCmRlOWJmNGQ0Y2VhMyB4ODYva3ZtL2h5cGVyLXY6IHJlbW92ZSBz dGFsZSBldm1jc19hbHJlYWR5X2VuYWJsZWQgY2hlY2sgZnJvbSBuZXN0ZWRfZW5hYmxlX2V2bWNz KCkKMmY5ZjVjZGRiMjliIEtWTTogaHlwZXJ2OiBGaXggc29tZSB0eXBvcyBpbiB2Y3B1IHVuaW1w bCBpbmZvCmIyZDhiMTY3ZTE1YiBLVk06IHg4NjogaHlwZXItdjogc2V0IE5vTm9uQXJjaGl0ZWN0 dXJhbENvcmVTaGFyaW5nIENQVUlEIGJpdCB3aGVuIFNNVCBpcyBpbXBvc3NpYmxlCmEwNzNkN2Uz YWQ2OCBLVk06IGh5cGVydjogRml4IERpcmVjdCBTeW50aGV0aWMgdGltZXJzIGFzc2VydCBhbiBp bnRlcnJ1cHQgdy9vIGxhcGljX2luX2tlcm5lbAo1YTAxNjVmNmRkZTMgS1ZNOiB4ODY6IGFubm91 bmNlIEtWTV9DQVBfSFlQRVJWX0VOTElHSFRFTkVEX1ZNQ1Mgc3VwcG9ydCBvbmx5IHdoZW4gaXQg aXMgYXZhaWxhYmxlCmVhMTUyOTg3M2FiMSBLVk06IHg4NjogaHlwZXItdjogZG9uJ3QgY3Jhc2gg b24gS1ZNX0dFVF9TVVBQT1JURURfSFZfQ1BVSUQgd2hlbiBrdm1faW50ZWwubmVzdGVkIGlzIGRp c2FibGVkCjMyM2Q3M2E4ZWNhZCBLVk06IG5WTVg6IENoYW5nZSBLVk1fU1RBVEVfTkVTVEVEX0VW TUNTIHRvIHNpZ25hbCB2bWNzMTIgaXMgY29waWVkIGZyb20gZVZNQ1MKMTFlMzQ5MTQzZTMyIHg4 Ni9rdm0vblZNWDogZml4IFZNQ0xFQVIgd2hlbiBFbmxpZ2h0ZW5lZCBWTUNTIGlzIGluIHVzZQpk YTY2NzYxYzJkOTMgeDg2OiBrdm06IGh5cGVyLXY6IGRlYWwgd2l0aCBidWdneSBUTEIgZmx1c2gg cmVxdWVzdHMgZnJvbSBXUzIwMTIKMDEzY2M2ZWJiZjQxIHg4Ni9rdm0vaHlwZXItdjogYXZvaWQg c3B1cmlvdXMgcGVuZGluZyBzdGltZXIgb24gdkNQVSBpbml0CjNhMmY1NzczYmFhYiB4ODYva3Zt L2h5cGVyLXY6IG5lc3RlZF9lbmFibGVfZXZtY3MoKSBzZXRzIHZtY3NfdmVyc2lvbiBpbmNvcnJl Y3RseQpmMWFkY2VhZjAxZjAgeDg2L2t2bS9oeXBlci12OiByZWNvbW1lbmQgdXNpbmcgZVZNQ1Mg b25seSB3aGVuIGl0IGlzIGVuYWJsZWQKMTk5OGZkMzJhYTYyIHg4Ni9rdm0vaHlwZXItdjogZG9u J3QgcmVjb21tZW5kIGRvaW5nIHJlc2V0IHZpYSBzeW50aGV0aWMgTVNSCjk2OTlmOTcwZGU4NCB4 ODYva3ZtL2h5cGVyLXY6IGRvbid0IGFubm91bmNlIEdVRVNUIElETEUgTVNSIHN1cHBvcnQKODdh OGQ3OTViMmYxIHg4Ni9oeXBlci12OiBTdG9wIGNhcmluZyBhYm91dCBFT0kgZm9yIGRpcmVjdCBz dGltZXJzCjA4YTgwMGFjMjU3YSB4ODYva3ZtL2h5cGVyLXY6IGF2b2lkIG9wZW4tY29kaW5nIHN0 aW1lcl9tYXJrX3BlbmRpbmcoKSBpbiBrdm1faHZfbm90aWZ5X2Fja2VkX3NpbnQoKQo4NjQ0Zjc3 MWUwN2MgeDg2L2t2bS9oeXBlci12OiBkaXJlY3QgbW9kZSBmb3Igc3ludGhldGljIHRpbWVycwo2 YTA1OGExZWFkYzMgeDg2L2t2bS9oeXBlci12OiB1c2Ugc3RpbWVyIGNvbmZpZyBkZWZpbml0aW9u IGZyb20gaHlwZXJ2LXRsZnMuaAoyYmMzOTk3MGU5MzIgeDg2L2t2bS9oeXBlci12OiBJbnRyb2R1 Y2UgS1ZNX0dFVF9TVVBQT1JURURfSFZfQ1BVSUQKZTJlODcxYWIyZjAyIHg4Ni9rdm0vaHlwZXIt djogSW50cm9kdWNlIG5lc3RlZF9nZXRfZXZtY3NfdmVyc2lvbigpIGhlbHBlcgphNDk4N2RlZmMx ZTYgeDg2L2h5cGVyLXY6IERvIHNvbWUgaG91c2VrZWVwaW5nIGluIGh5cGVydi10bGZzLmgKN2Rl ZWM1ZTBkZjc0IHg4Njoga3ZtOiBoeXBlcnY6IGRvbid0IHJldHJ5IG1lc3NhZ2UgZGVsaXZlcnkg Zm9yIHBlcmlvZGljIHRpbWVycwozYTBlNzczMTcyNGYgeDg2OiBrdm06IGh5cGVydjogc2ltcGxp ZnkgU3luSUMgbWVzc2FnZSBkZWxpdmVyeQozNTkyY2RhNmJjMjcgS1ZNOiB4ODY6IEFkZCByZXF1 aXNpdGUgaW5jbHVkZXMgdG8gaHlwZXJ2LmgKNzJhZWI2MGM1MmJmIEtWTTogblZNWDogVmVyaWZ5 IGVWTUNTIHJldmlzaW9uIGlkIG1hdGNoIHN1cHBvcnRlZCBlVk1DUyB2ZXJzaW9uIG9uIGVWTUNT IFZNUFRSTEQKN2Y5YWQxZGZhM2M3IEtWTTogblZNWDogRml4IGtlcm5lbCBpbmZvLWxlYWsgd2hl biBlbmFibGluZyBLVk1fQ0FQX0hZUEVSVl9FTkxJR0hURU5FRF9WTUNTIG1vcmUgdGhhbiBvbmNl CjEyZTBjNjE4NmJhNCB4ODYva3ZtL2h5cGVydjogZG9uJ3QgY2xlYXIgVlAgYXNzaXN0IHBhZ2Vz IG9uIGluaXQKYzRlYmQ2Mjk1YWI3IEtWTTogblZNWDogb3B0aW1pemUgcHJlcGFyZV92bWNzMDJ7 LF9mdWxsfSBmb3IgRW5saWdodGVuZWQgVk1DUyBjYXNlCmI4YmJhYjkyOGZiMSBLVk06IG5WTVg6 IGltcGxlbWVudCBlbmxpZ2h0ZW5lZCBWTVBUUkxEIGFuZCBWTUNMRUFSCjU3YjExOWRhMzU5NCBL Vk06IG5WTVg6IGFkZCBLVk1fQ0FQX0hZUEVSVl9FTkxJR0hURU5FRF9WTUNTIGNhcGFiaWxpdHkK NWQ3YTY0NDMzNjhlIEtWTTogVk1YOiByZWZhY3RvciBldm1jc19zYW5pdGl6ZV9leGVjX2N0cmxz KCkKNzJiYmY5MzU4YzM2IEtWTTogaHlwZXJ2OiBkZWZpbmUgVlAgYXNzaXN0IHBhZ2UgaGVscGVy cwpmMjFkZDQ5NDUwNmEgS1ZNOiB4ODY6IGh5cGVydjogb3B0aW1pemUgc3BhcnNlIFZQIHNldCBw cm9jZXNzaW5nCmU2YjZjNDgzZWJlOSBLVk06IHg4NjogaHlwZXJ2OiBmaXggJ3RsYl9sdXNoJyB0 eXBvCjIxNGZmODNkNDQ3MyBLVk06IHg4NjogaHlwZXJ2OiBpbXBsZW1lbnQgUFYgSVBJIHNlbmQg aHlwZXJjYWxscwoyY2VmYzVmZWI4MGMgS1ZNOiB4ODY6IGh5cGVydjogb3B0aW1pemUga3ZtX2h2 X2ZsdXNoX3RsYigpIGZvciB2cF9pbmRleCA9PSB2Y3B1X2lkeCBjYXNlCjBiMGEzMWJhZGIyZCBL Vk06IHg4NjogaHlwZXJ2OiB2YWxpZF9iYW5rX21hc2sgc2hvdWxkIGJlICd1NjQnCjg3ZWU2MTNk MDc2MyBLVk06IHg4NjogaHlwZXJ2OiBrZWVwIHRyYWNrIG9mIG1pc21hdGNoZWQgVlAgaW5kZXhl cwoxNzc5YTM5Zjc4NjMgS1ZNOiB4ODY6IGh5cGVydjogY29uc2lzdGVudGx5IHVzZSAnaHZfdmNw dScgZm9yICdzdHJ1Y3Qga3ZtX3ZjcHVfaHYnIHZhcmlhYmxlcwphODEyMjk3YzRmZDkgS1ZNOiB4 ODY6IGh5cGVydjogb3B0aW1pemUgJ2FsbCBjcHVzJyBjYXNlIGluIGt2bV9odl9mbHVzaF90bGIo KQo5MTcwMjAwZWMwZWIgS1ZNOiB4ODY6IGh5cGVydjogZW5mb3JjZSB2cF9pbmRleCA8IEtWTV9N QVhfVkNQVVMKNWY4YmIwMDRiY2E0IEtWTTogdm14OiBoeXBlci12OiBkb24ndCBwYXNzIEVQVCBj b25maWd1cmF0aW9uIGluZm8gdG8gdm14X2h2X3JlbW90ZV9mbHVzaF90bGIoKQpkYmVlM2QwMjQ1 OGIgS1ZNOiB4ODY6IFZNWDogZml4IGJ1aWxkIHdpdGhvdXQgaHlwZXItdgpjMWFlYTkxOTZlZjQg S1ZNOiB4ODY6IGh5cGVydjogZGVjbGFyZSBLVk1fQ0FQX0hZUEVSVl9UTEJGTFVTSCBjYXBhYmls aXR5CmM3MDEyNjc2NGJmMCBLVk06IHg4NjogaHlwZXJ2OiBzaW1wbGlzdGljIEhWQ0FMTF9GTFVT SF9WSVJUVUFMX0FERFJFU1Nfe0xJU1QsU1BBQ0V9X0VYIGltcGxlbWVudGF0aW9uCmUyZjExZjQy ODI0YiBLVk06IHg4NjogaHlwZXJ2OiBzaW1wbGlzdGljIEhWQ0FMTF9GTFVTSF9WSVJUVUFMX0FE RFJFU1Nfe0xJU1QsU1BBQ0V9IGltcGxlbWVudGF0aW9uCjU2YjlhZTc4MzAzYSBLVk06IHg4Njog aHlwZXJ2OiBkbyByZXAgY2hlY2sgZm9yIGVhY2ggaHlwZXJjYWxsIHNlcGFyYXRlbHkKMTQyYzk1 ZGE5MmU4IEtWTTogeDg2OiBoeXBlcnY6IHVzZSBkZWZpbmVzIHdoZW4gcGFyc2luZyBoeXBlcmNh bGwgcGFyYW1ldGVycwo2OTZjYTc3OWE5MjggS1ZNOiB4ODY6IGZpeCAjVUQgYWRkcmVzcyBvZiBm YWlsZWQgSHlwZXItViBoeXBlcmNhbGxzCmNlZWY3ZDEwZGZiNiBLVk06IHg4NjogVk1YOiBoeXBl ci12OiBFbmxpZ2h0ZW5lZCBNU1ItQml0bWFwIHN1cHBvcnQKNDUyYTY4ZDBlZjM0IEtWTTogaHlw ZXJ2OiBpZHJfZmluZCBuZWVkcyBSQ1UgcHJvdGVjdGlvbgo3NzNlOGEwNDI1YzkgeDg2L2t2bTog dXNlIEVubGlnaHRlbmVkIFZNQ1Mgd2hlbiBydW5uaW5nIG9uIEh5cGVyLVYKZDRhYmM1NzdiYjAz IHg4Ni9rdm06IHJlbmFtZSBIVl9YNjRfTVNSX0FQSUNfQVNTSVNUX1BBR0UgdG8gSFZfWDY0X01T Ul9WUF9BU1NJU1RfUEFHRQpkMzJlZjU0N2ZkYmIga3ZtOiB4ODY6IGh5cGVydjogZGVsZXRlIGRl YWQgY29kZSBpbiBrdm1faHZfaHlwZXJjYWxsKCkKOTE1ZTZmNzhiZDA2IHg4Ni9rdm0vaHlwZXIt djogaW5qZWN0ICNHUCBvbmx5IHdoZW4gaW52YWxpZCBTSU5UeCB2ZWN0b3IgaXMgdW5tYXNrZWQK OThmNjVhZDQ1ODQ0IHg4Ni9rdm0vaHlwZXItdjogcmVtb3ZlIHN0YWxlIGVudHJpZXMgZnJvbSB2 ZWNfYml0bWFwL2F1dG9fZW9pX2JpdG1hcCBvbiB2ZWN0b3IgY2hhbmdlCmEyZTE2NGU3ZjQ1YSB4 ODYva3ZtL2h5cGVyLXY6IGFkZCByZWVubGlnaHRlbm1lbnQgTVNScyBzdXBwb3J0CmZhZWI3ODMz ZWVlMCBrdm06IHg4NjogaHlwZXJ2OiBndWVzdC0+aG9zdCBldmVudCBzaWduYWxpbmcgdmlhIGV2 ZW50ZmQKY2JjMDIzNmE0YjNlIGt2bTogeDg2OiBmYWN0b3Igb3V0IGt2bS5hcmNoLmh5cGVydiAo ZGUpaW5pdAowMDkyZTQzNDZmNDkgeDg2L2t2bTogU3VwcG9ydCBIeXBlci1WIHJlZW5saWdodGVu bWVudApiMGMzOWRjNjhlM2IgeDg2L2t2bTogUGFzcyBzdGFibGUgY2xvY2tzb3VyY2UgdG8gZ3Vl c3RzIHdoZW4gcnVubmluZyBuZXN0ZWQgb24gSHlwZXItVgo= --=-=-=--