From mboxrd@z Thu Jan 1 00:00:00 1970 From: Chao Gao Subject: [PATCH v7 00/10] improve late microcode loading Date: Mon, 27 May 2019 16:31:21 +0800 Message-ID: <1558945891-3015-1-git-send-email-chao.gao@intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hVAya-00049T-Py for xen-devel@lists.xenproject.org; Mon, 27 May 2019 08:27:24 +0000 List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Sergey Dyasli , Ashok Raj , Wei Liu , Andrew Cooper , Jan Beulich , Boris Ostrovsky , Chao Gao , Brian Woods , Suravee Suthikulpanit , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org Q2hhbmdlcyBpbiB2ZXJzaW9uIDc6CiAtIGNhY2hlIG9uZSBtaWNyb2NvZGUgdXBkYXRlIHJhdGhl ciB0aGFuIGEgbGlzdCBvZiBpdC4gQXNzdW1pbmcgdGhhdCBhbGwgQ1BVcwogKGluY2x1ZGluZyB0 aG9zZSB3aWxsIGJlIHBsdWdnZWQgaW4gbGF0ZXIpIGluIHRoZSBzeXN0ZW0gaGF2ZSB0aGUgc2Ft ZQogc2lnbmF0dXJlLCBvbmUgdXBkYXRlIG1hdGNoZXMgd2l0aCBvbmUgQ1BVIHNob3VsZCBtYXRj aCB3aXRoIG90aGVycy4gVGh1cywgb25lCiB1cGRhdGUgaXMgZW5vdWdoIGZvciBtaWNyb2NvZGUg dXBkYXRpbmcgZHVyaW5nIENQVSBob3QtcGx1ZyBhbmQgcmVzdW1pbmcuCiAtIFRvIGhhbmRsZSBs b2FkIGZhaWx1cmUsIG1pY3JvY29kZSB1cGRhdGUgaXMgY2FjaGVkIGFmdGVyIGl0IGlzIGFwcGxp ZWQgdG8KIGF2b2lkIGEgYnJva2VuIHVwZGF0ZSBvdmVycmlkaW5nIGEgdmFsaWRhdGVkIG9uZS4g VW52YWxpZGF0ZWQgbWljcm9jb2RlIHVwZGF0ZXMKIGFyZSBwYXNzZWQgYnkgYXJndW1lbnRzIHJh dGhlciB0aGFuIGFub3RoZXIgZ2xvYmFsIHZhcmlhYmxlLCB3aGVyZSB0aGlzIHNlcmllcwogc2xp Z2h0bHkgZGlmZmVycyBmcm9tIFJvZ2VyJ3Mgc3VnZ2VzdGlvbiBpbjoKIGh0dHBzOi8vbGlzdHMu eGVuLm9yZy9hcmNoaXZlcy9odG1sL3hlbi1kZXZlbC8yMDE5LTAzL21zZzAwNzc2Lmh0bWwKIC0g aW5jb3Jwb3JhdGUgU2VyZ2V5J3MgcGF0Y2ggKHBhdGNoIDEwKSB0byBmaXggYSBidWc6IHdlIG1h aW50YWluIGEgdmFyaWFibGUKIHRvIHJlZmxlY3QgY3VycmVudCBtaWNyb2NvZGUgcmV2aXNpb24u IEJ1dCBpbiBzb21lIGNhc2VzLCB0aGlzIHZhcmlhYmxlIGlzbid0CiBpbml0aWFsaXplZCBkdXJp bmcgc3lzdGVtIGJvb3QgdGltZSwgd2hpY2ggcmVzdWx0cyBpbiBmYWxzZWx5IHJlcG9ydGluZyB0 aGF0CiBwcm9jZXNzb3IgaXMgc3VzY2VwdGlibGUgdG8gc29tZSBrbm93biB2dWxuZXJhYmlsaXRp ZXMuCiAtIGZpeCBpc3N1ZXMgcmVwb3J0ZWQgYnkgU2VyZ2V5OgogaHR0cHM6Ly9saXN0cy54ZW5w cm9qZWN0Lm9yZy9hcmNoaXZlcy9odG1sL3hlbi1kZXZlbC8yMDE5LTAzL21zZzAwOTAxLmh0bWwK IC0gUmVzcG9uc2VzIHRvIFNlcmdleS9Sb2dlci9XZWkvQXNob2sncyBvdGhlciBjb21tZW50cy4K Ck1ham9yIGNoYW5nZXMgaW4gdmVyc2lvbiA2OgogLSBydW4gd2JpbnZkIGJlZm9yZSB1cGRhdGlu ZyBtaWNyb2NvZGUgKHBhdGNoIDEwKQogLSBhZGQgYW4gdXNlcnNwYWNlIHRvb2wgZm9yIGxhdGUg bWljcm9jb2RlIHVwZGF0ZSAocGF0Y2ggMSkKIC0gc2NhbGUgdGltZSB0byB3YWl0IGJ5IHRoZSBu dW1iZXIgb2YgcmVtYWluaW5nIENQVXMgdG8gcmVzcG9uZCAKIC0gcmVtb3ZlICdjcHUnIHBhcmFt ZXRlcnMgZnJvbSBzb21lIHJlbGF0ZWQgY2FsbGJhY2tzIGFuZCBmdW5jdGlucwogLSBzYXZlIGFu IHVjb2RlIHBhdGNoIG9ubHkgaWYgaXRzIHN1cHBvcnRlZCBDUFUgaXMgYWxsb3dlZCB0byBtaXgg d2l0aAogICBjdXJyZW50IGNwdS4KCkNoYW5nZXMgaW4gdmVyc2lvbiA1OgogLSBzdXBwb3J0IHBh cmFsbGVsIG1pY3JvY29kZSB1cGRhdGVzIGZvciBhbGwgY29yZXMgKHNlZSBwYXRjaCA4KQogLSBB ZGRyZXNzIFJvZ2VyJ3MgY29tbWVudHMgb24gdGhlIGxhc3QgdmVyc2lvbi4KClRoZSBpbnRlbnRp b24gb2YgdGhpcyBzZXJpZXMgaXMgdG8gbWFrZSB0aGUgbGF0ZSBtaWNyb2NvZGUgbG9hZGluZwpt b3JlIHJlbGlhYmxlIGJ5IHJlbmRlenZvdXNpbmcgYWxsIGNwdXMgaW4gc3RvcF9tYWNoaW5lIGNv bnRleHQuClRoaXMgaWRlYSBjb21lcyBmcm9tIEFzaG9rLiBJIGFtIHBvcnRpbmcgaGlzIGxpbnV4 IHBhdGNoIHRvIFhlbgooc2VlIHBhdGNoIDcgYW5kIDggZm9yIG1vcmUgZGV0YWlscykuCgpUaGlz IHNlcmllcyBpbmNsdWRlcyBmaXZlIGNoYW5nZXM6CiAxLiBQYXRjaCAxOiBhbiB1c2Vyc3BhY2Ug dG9vbCBmb3IgbGF0ZSBtaWNyb2NvZGUgdXBkYXRlCiAyLiBQYXRjaCAyLTY6IGludHJvZHVjZSBh IGdsb2JhbCBtaWNyb2NvZGUgY2FjaGUgYW5kIHNvbWUgY2xlYW51cAogMy4gUGF0Y2ggNzogd3Jp dGViYWNrIGFuZCBpbnZhbGlkYXRlIGNhY2hlIGJlZm9yZSB1cGRhdGluZyBtaWNyb2NvZGUKIDMu IFBhdGNoIDg6IHN5bmNocm9uaXplIGxhdGUgbWljcm9jb2RlIGxvYWRpbmcKIDQuIFBhdGNoIDk6 IHN1cHBvcnQgcGFyYWxsZWwgbWljcm9jb2RlcyB1cGRhdGUgb24gZGlmZmVyZW50IGNvcmVzCiA1 LiBQYXRjaCAxMDogYWx3YXlzIHJlYWQgbWljcm9jb2RlIHJldmlzaW9uIGF0IGJvb3QgdGltZQoK Q3VycmVudGx5LCBsYXRlIG1pY3JvY29kZSBsb2FkaW5nIGRvZXMgYSBsb3Qgb2YgdGhpbmdzIGlu Y2x1ZGluZwpwYXJzaW5nIG1pY3JvY29kZSBibG9iLCBjaGVja2luZyB0aGUgc2lnbmF0dXJlL3Jl dmlzaW9uIGFuZCBwZXJmb3JtaW5nCnVwZGF0ZS4gUHV0dGluZyBhbGwgb2YgdGhlbSBpbnRvIHN0 b3BfbWFjaGluZSBjb250ZXh0IGlzIGEgYmFkIGlkZWEKYmVjYXVzZSBvZiBjb21wbGV4aXR5IChv bmUgaXNzdWUgSSBvYnNlcnZlZCBpcyBtZW1vcnkgYWxsb2NhdGlvbgp0cmlnZ2VyZWQgb25lIGFz c2VydGlvbiBpbiBzdG9wX21hY2hpbmUgY29udGV4dCkuIFRvIHNpbXBsaWZ5IHRoZQpsb2FkIHBy b2Nlc3MsIHBhcnNpbmcgbWljcm9jb2RlIGlzIG1vdmVkIG91dCBvZiB0aGUgbG9hZCBwcm9jZXNz LgpSZW1haW5pbmcgcGFydHMgb2YgbG9hZCBwcm9jZXNzIGlzIHB1dCB0byBzdG9wX21hY2hpbmUg Y29udGV4dC4KClJlZ2FyZGluZyBjaGFuZ2VzIHRvIEFNRCBzaWRlLCBJIGRpZG4ndCBkbyBhbnkg dGVzdCBmb3IgdGhlbSBkdWUgdG8KbGFjayBvZiBoYXJkd2FyZS4gU2VyZ2V5LCBjb3VsZCB5b3Ug aGVscCB0byB0ZXN0IHRoaXMgc2VyaWVzIG9uIGFuCkFNRCBtYWNoaW5lIGFnYWluPwpBdCBsZWFz dCwgdHdvIGJhc2ljIHRlc3RzIGFyZSBuZWVkZWQ6CiogZG8gYSBtaWNyb2NvZGUgdXBkYXRlIGFm dGVyIHN5c3RlbSBib290dXAKKiBkb24ndCBicmluZyBhbGwgcENQVXMgdXAgYXQgYm9vdHVwIGJ5 IHNwZWNpZnlpbmcgbWF4Y3B1cyBvcHRpb24gaW4geGVuCiAgY29tbWFuZCBsaW5lIGFuZCB0aGVu IGRvIGEgbWljcm9jb2RlIHVwZGF0ZSBhbmQgb25saW5lIGFsbCBvZmZsaW5lZAogIENQVXMgdmlh ICd4ZW4taHB0b29sJy4KCkNoYW8gR2FvICg5KToKICBtaXNjL3hlbi11Y29kZTogVXBsb2FkIGEg bWljcm9jb2RlIGJsb2IgdG8gdGhlIGh5cGVydmlzb3IKICBtaWNyb2NvZGUvaW50ZWw6IGV4dGVu ZCBtaWNyb2NvZGVfdXBkYXRlX21hdGNoKCkKICBtaWNyb2NvZGU6IGludHJvZHVjZSBhIGdsb2Jh bCBjYWNoZSBvZiB1Y29kZSBwYXRjaAogIG1pY3JvY29kZTogcmVtb3ZlIHN0cnVjdCB1Y29kZV9j cHVfaW5mbwogIG1pY3JvY29kZTogcmVtb3ZlIHBvaW50bGVzcyAnY3B1JyBwYXJhbWV0ZXIKICBt aWNyb2NvZGU6IHNwbGl0IG91dCBhcHBseV9taWNyb2NvZGUoKSBmcm9tIGNwdV9yZXF1ZXN0X21p Y3JvY29kZSgpCiAgbWljcm9jb2RlL2ludGVsOiBXcml0ZWJhY2sgYW5kIGludmFsaWRhdGUgY2Fj aGVzIGJlZm9yZSB1cGRhdGluZwogICAgbWljcm9jb2RlCiAgeDg2L21pY3JvY29kZTogU3luY2hy b25pemUgbGF0ZSBtaWNyb2NvZGUgbG9hZGluZwogIG1pY3JvY29kZTogcmVtb3ZlIG1pY3JvY29k ZV91cGRhdGVfbG9jawoKU2VyZ2V5IER5YXNsaSAoMSk6CiAgeDg2L21pY3JvY29kZTogYWx3YXlz IGNvbGxlY3RfY3B1X2luZm8oKSBkdXJpbmcgYm9vdAoKIHRvb2xzL2xpYnhjL2luY2x1ZGUveGVu Y3RybC5oICAgfCAgIDEgKwogdG9vbHMvbGlieGMveGNfbWlzYy5jICAgICAgICAgICB8ICAyMyAr KysKIHRvb2xzL21pc2MvTWFrZWZpbGUgICAgICAgICAgICAgfCAgIDQgKwogdG9vbHMvbWlzYy94 ZW4tdWNvZGUuYyAgICAgICAgICB8ICA3OCArKysrKysrKwogeGVuL2FyY2gveDg2L2FjcGkvcG93 ZXIuYyAgICAgICB8ICAgMiArLQogeGVuL2FyY2gveDg2L2FwaWMuYyAgICAgICAgICAgICB8ICAg MiArLQogeGVuL2FyY2gveDg2L21pY3JvY29kZS5jICAgICAgICB8IDQwMSArKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYvbWljcm9jb2RlX2FtZC5j ICAgIHwgMjQ1ICsrKysrKysrKysrKy0tLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L21pY3JvY29k ZV9pbnRlbC5jICB8IDIwMiArKysrKysrKysrLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L3NtcGJv b3QuYyAgICAgICAgICB8ICAgNSArLQogeGVuL2FyY2gveDg2L3NwZWNfY3RybC5jICAgICAgICB8 ICAgMiArLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9taWNyb2NvZGUuaCB8ICAzOSArKy0tCiB4ZW4v aW5jbHVkZS9hc20teDg2L3Byb2Nlc3Nvci5oIHwgICAzICstCiAxMyBmaWxlcyBjaGFuZ2VkLCA2 MzkgaW5zZXJ0aW9ucygrKSwgMzY4IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRv b2xzL21pc2MveGVuLXVjb2RlLmMKCi0tIAoxLjguMy4xCgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2 ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWls bWFuL2xpc3RpbmZvL3hlbi1kZXZlbA== 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 X-Spam-Level: X-Spam-Status: No, score=-3.0 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9D0BFC46460 for ; Mon, 27 May 2019 08:27:50 +0000 (UTC) Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 7E2912173C for ; Mon, 27 May 2019 08:27:50 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 7E2912173C Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=xen-devel-bounces@lists.xenproject.org Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hVAyc-00049Y-0R; Mon, 27 May 2019 08:27:26 +0000 Received: from us1-rack-dfw2.inumbo.com ([104.130.134.6]) by lists.xenproject.org with esmtp (Exim 4.89) (envelope-from ) id 1hVAya-00049T-Py for xen-devel@lists.xenproject.org; Mon, 27 May 2019 08:27:24 +0000 X-Inumbo-ID: 4023e8bb-8059-11e9-8980-bc764e045a96 Received: from mga12.intel.com (unknown [192.55.52.136]) by us1-rack-dfw2.inumbo.com (Halon) with ESMTPS id 4023e8bb-8059-11e9-8980-bc764e045a96; Mon, 27 May 2019 08:27:23 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by fmsmga106.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 27 May 2019 01:27:22 -0700 X-ExtLoop1: 1 Received: from gao-cwp.sh.intel.com ([10.239.159.26]) by orsmga005.jf.intel.com with ESMTP; 27 May 2019 01:27:19 -0700 From: Chao Gao To: xen-devel@lists.xenproject.org Date: Mon, 27 May 2019 16:31:21 +0800 Message-Id: <1558945891-3015-1-git-send-email-chao.gao@intel.com> X-Mailer: git-send-email 1.9.1 MIME-Version: 1.0 Subject: [Xen-devel] [PATCH v7 00/10] improve late microcode loading X-BeenThere: xen-devel@lists.xenproject.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Cc: Sergey Dyasli , Ashok Raj , Wei Liu , Andrew Cooper , Jan Beulich , Boris Ostrovsky , Chao Gao , Brian Woods , Suravee Suthikulpanit , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 Errors-To: xen-devel-bounces@lists.xenproject.org Sender: "Xen-devel" Message-ID: <20190527083121.WevFz3xl2udPr4B18eUPbnsoSojg-AzuRIQgT8HXZdk@z> Q2hhbmdlcyBpbiB2ZXJzaW9uIDc6CiAtIGNhY2hlIG9uZSBtaWNyb2NvZGUgdXBkYXRlIHJhdGhl ciB0aGFuIGEgbGlzdCBvZiBpdC4gQXNzdW1pbmcgdGhhdCBhbGwgQ1BVcwogKGluY2x1ZGluZyB0 aG9zZSB3aWxsIGJlIHBsdWdnZWQgaW4gbGF0ZXIpIGluIHRoZSBzeXN0ZW0gaGF2ZSB0aGUgc2Ft ZQogc2lnbmF0dXJlLCBvbmUgdXBkYXRlIG1hdGNoZXMgd2l0aCBvbmUgQ1BVIHNob3VsZCBtYXRj aCB3aXRoIG90aGVycy4gVGh1cywgb25lCiB1cGRhdGUgaXMgZW5vdWdoIGZvciBtaWNyb2NvZGUg dXBkYXRpbmcgZHVyaW5nIENQVSBob3QtcGx1ZyBhbmQgcmVzdW1pbmcuCiAtIFRvIGhhbmRsZSBs b2FkIGZhaWx1cmUsIG1pY3JvY29kZSB1cGRhdGUgaXMgY2FjaGVkIGFmdGVyIGl0IGlzIGFwcGxp ZWQgdG8KIGF2b2lkIGEgYnJva2VuIHVwZGF0ZSBvdmVycmlkaW5nIGEgdmFsaWRhdGVkIG9uZS4g VW52YWxpZGF0ZWQgbWljcm9jb2RlIHVwZGF0ZXMKIGFyZSBwYXNzZWQgYnkgYXJndW1lbnRzIHJh dGhlciB0aGFuIGFub3RoZXIgZ2xvYmFsIHZhcmlhYmxlLCB3aGVyZSB0aGlzIHNlcmllcwogc2xp Z2h0bHkgZGlmZmVycyBmcm9tIFJvZ2VyJ3Mgc3VnZ2VzdGlvbiBpbjoKIGh0dHBzOi8vbGlzdHMu eGVuLm9yZy9hcmNoaXZlcy9odG1sL3hlbi1kZXZlbC8yMDE5LTAzL21zZzAwNzc2Lmh0bWwKIC0g aW5jb3Jwb3JhdGUgU2VyZ2V5J3MgcGF0Y2ggKHBhdGNoIDEwKSB0byBmaXggYSBidWc6IHdlIG1h aW50YWluIGEgdmFyaWFibGUKIHRvIHJlZmxlY3QgY3VycmVudCBtaWNyb2NvZGUgcmV2aXNpb24u IEJ1dCBpbiBzb21lIGNhc2VzLCB0aGlzIHZhcmlhYmxlIGlzbid0CiBpbml0aWFsaXplZCBkdXJp bmcgc3lzdGVtIGJvb3QgdGltZSwgd2hpY2ggcmVzdWx0cyBpbiBmYWxzZWx5IHJlcG9ydGluZyB0 aGF0CiBwcm9jZXNzb3IgaXMgc3VzY2VwdGlibGUgdG8gc29tZSBrbm93biB2dWxuZXJhYmlsaXRp ZXMuCiAtIGZpeCBpc3N1ZXMgcmVwb3J0ZWQgYnkgU2VyZ2V5OgogaHR0cHM6Ly9saXN0cy54ZW5w cm9qZWN0Lm9yZy9hcmNoaXZlcy9odG1sL3hlbi1kZXZlbC8yMDE5LTAzL21zZzAwOTAxLmh0bWwK IC0gUmVzcG9uc2VzIHRvIFNlcmdleS9Sb2dlci9XZWkvQXNob2sncyBvdGhlciBjb21tZW50cy4K Ck1ham9yIGNoYW5nZXMgaW4gdmVyc2lvbiA2OgogLSBydW4gd2JpbnZkIGJlZm9yZSB1cGRhdGlu ZyBtaWNyb2NvZGUgKHBhdGNoIDEwKQogLSBhZGQgYW4gdXNlcnNwYWNlIHRvb2wgZm9yIGxhdGUg bWljcm9jb2RlIHVwZGF0ZSAocGF0Y2ggMSkKIC0gc2NhbGUgdGltZSB0byB3YWl0IGJ5IHRoZSBu dW1iZXIgb2YgcmVtYWluaW5nIENQVXMgdG8gcmVzcG9uZCAKIC0gcmVtb3ZlICdjcHUnIHBhcmFt ZXRlcnMgZnJvbSBzb21lIHJlbGF0ZWQgY2FsbGJhY2tzIGFuZCBmdW5jdGlucwogLSBzYXZlIGFu IHVjb2RlIHBhdGNoIG9ubHkgaWYgaXRzIHN1cHBvcnRlZCBDUFUgaXMgYWxsb3dlZCB0byBtaXgg d2l0aAogICBjdXJyZW50IGNwdS4KCkNoYW5nZXMgaW4gdmVyc2lvbiA1OgogLSBzdXBwb3J0IHBh cmFsbGVsIG1pY3JvY29kZSB1cGRhdGVzIGZvciBhbGwgY29yZXMgKHNlZSBwYXRjaCA4KQogLSBB ZGRyZXNzIFJvZ2VyJ3MgY29tbWVudHMgb24gdGhlIGxhc3QgdmVyc2lvbi4KClRoZSBpbnRlbnRp b24gb2YgdGhpcyBzZXJpZXMgaXMgdG8gbWFrZSB0aGUgbGF0ZSBtaWNyb2NvZGUgbG9hZGluZwpt b3JlIHJlbGlhYmxlIGJ5IHJlbmRlenZvdXNpbmcgYWxsIGNwdXMgaW4gc3RvcF9tYWNoaW5lIGNv bnRleHQuClRoaXMgaWRlYSBjb21lcyBmcm9tIEFzaG9rLiBJIGFtIHBvcnRpbmcgaGlzIGxpbnV4 IHBhdGNoIHRvIFhlbgooc2VlIHBhdGNoIDcgYW5kIDggZm9yIG1vcmUgZGV0YWlscykuCgpUaGlz IHNlcmllcyBpbmNsdWRlcyBmaXZlIGNoYW5nZXM6CiAxLiBQYXRjaCAxOiBhbiB1c2Vyc3BhY2Ug dG9vbCBmb3IgbGF0ZSBtaWNyb2NvZGUgdXBkYXRlCiAyLiBQYXRjaCAyLTY6IGludHJvZHVjZSBh IGdsb2JhbCBtaWNyb2NvZGUgY2FjaGUgYW5kIHNvbWUgY2xlYW51cAogMy4gUGF0Y2ggNzogd3Jp dGViYWNrIGFuZCBpbnZhbGlkYXRlIGNhY2hlIGJlZm9yZSB1cGRhdGluZyBtaWNyb2NvZGUKIDMu IFBhdGNoIDg6IHN5bmNocm9uaXplIGxhdGUgbWljcm9jb2RlIGxvYWRpbmcKIDQuIFBhdGNoIDk6 IHN1cHBvcnQgcGFyYWxsZWwgbWljcm9jb2RlcyB1cGRhdGUgb24gZGlmZmVyZW50IGNvcmVzCiA1 LiBQYXRjaCAxMDogYWx3YXlzIHJlYWQgbWljcm9jb2RlIHJldmlzaW9uIGF0IGJvb3QgdGltZQoK Q3VycmVudGx5LCBsYXRlIG1pY3JvY29kZSBsb2FkaW5nIGRvZXMgYSBsb3Qgb2YgdGhpbmdzIGlu Y2x1ZGluZwpwYXJzaW5nIG1pY3JvY29kZSBibG9iLCBjaGVja2luZyB0aGUgc2lnbmF0dXJlL3Jl dmlzaW9uIGFuZCBwZXJmb3JtaW5nCnVwZGF0ZS4gUHV0dGluZyBhbGwgb2YgdGhlbSBpbnRvIHN0 b3BfbWFjaGluZSBjb250ZXh0IGlzIGEgYmFkIGlkZWEKYmVjYXVzZSBvZiBjb21wbGV4aXR5IChv bmUgaXNzdWUgSSBvYnNlcnZlZCBpcyBtZW1vcnkgYWxsb2NhdGlvbgp0cmlnZ2VyZWQgb25lIGFz c2VydGlvbiBpbiBzdG9wX21hY2hpbmUgY29udGV4dCkuIFRvIHNpbXBsaWZ5IHRoZQpsb2FkIHBy b2Nlc3MsIHBhcnNpbmcgbWljcm9jb2RlIGlzIG1vdmVkIG91dCBvZiB0aGUgbG9hZCBwcm9jZXNz LgpSZW1haW5pbmcgcGFydHMgb2YgbG9hZCBwcm9jZXNzIGlzIHB1dCB0byBzdG9wX21hY2hpbmUg Y29udGV4dC4KClJlZ2FyZGluZyBjaGFuZ2VzIHRvIEFNRCBzaWRlLCBJIGRpZG4ndCBkbyBhbnkg dGVzdCBmb3IgdGhlbSBkdWUgdG8KbGFjayBvZiBoYXJkd2FyZS4gU2VyZ2V5LCBjb3VsZCB5b3Ug aGVscCB0byB0ZXN0IHRoaXMgc2VyaWVzIG9uIGFuCkFNRCBtYWNoaW5lIGFnYWluPwpBdCBsZWFz dCwgdHdvIGJhc2ljIHRlc3RzIGFyZSBuZWVkZWQ6CiogZG8gYSBtaWNyb2NvZGUgdXBkYXRlIGFm dGVyIHN5c3RlbSBib290dXAKKiBkb24ndCBicmluZyBhbGwgcENQVXMgdXAgYXQgYm9vdHVwIGJ5 IHNwZWNpZnlpbmcgbWF4Y3B1cyBvcHRpb24gaW4geGVuCiAgY29tbWFuZCBsaW5lIGFuZCB0aGVu IGRvIGEgbWljcm9jb2RlIHVwZGF0ZSBhbmQgb25saW5lIGFsbCBvZmZsaW5lZAogIENQVXMgdmlh ICd4ZW4taHB0b29sJy4KCkNoYW8gR2FvICg5KToKICBtaXNjL3hlbi11Y29kZTogVXBsb2FkIGEg bWljcm9jb2RlIGJsb2IgdG8gdGhlIGh5cGVydmlzb3IKICBtaWNyb2NvZGUvaW50ZWw6IGV4dGVu ZCBtaWNyb2NvZGVfdXBkYXRlX21hdGNoKCkKICBtaWNyb2NvZGU6IGludHJvZHVjZSBhIGdsb2Jh bCBjYWNoZSBvZiB1Y29kZSBwYXRjaAogIG1pY3JvY29kZTogcmVtb3ZlIHN0cnVjdCB1Y29kZV9j cHVfaW5mbwogIG1pY3JvY29kZTogcmVtb3ZlIHBvaW50bGVzcyAnY3B1JyBwYXJhbWV0ZXIKICBt aWNyb2NvZGU6IHNwbGl0IG91dCBhcHBseV9taWNyb2NvZGUoKSBmcm9tIGNwdV9yZXF1ZXN0X21p Y3JvY29kZSgpCiAgbWljcm9jb2RlL2ludGVsOiBXcml0ZWJhY2sgYW5kIGludmFsaWRhdGUgY2Fj aGVzIGJlZm9yZSB1cGRhdGluZwogICAgbWljcm9jb2RlCiAgeDg2L21pY3JvY29kZTogU3luY2hy b25pemUgbGF0ZSBtaWNyb2NvZGUgbG9hZGluZwogIG1pY3JvY29kZTogcmVtb3ZlIG1pY3JvY29k ZV91cGRhdGVfbG9jawoKU2VyZ2V5IER5YXNsaSAoMSk6CiAgeDg2L21pY3JvY29kZTogYWx3YXlz IGNvbGxlY3RfY3B1X2luZm8oKSBkdXJpbmcgYm9vdAoKIHRvb2xzL2xpYnhjL2luY2x1ZGUveGVu Y3RybC5oICAgfCAgIDEgKwogdG9vbHMvbGlieGMveGNfbWlzYy5jICAgICAgICAgICB8ICAyMyAr KysKIHRvb2xzL21pc2MvTWFrZWZpbGUgICAgICAgICAgICAgfCAgIDQgKwogdG9vbHMvbWlzYy94 ZW4tdWNvZGUuYyAgICAgICAgICB8ICA3OCArKysrKysrKwogeGVuL2FyY2gveDg2L2FjcGkvcG93 ZXIuYyAgICAgICB8ICAgMiArLQogeGVuL2FyY2gveDg2L2FwaWMuYyAgICAgICAgICAgICB8ICAg MiArLQogeGVuL2FyY2gveDg2L21pY3JvY29kZS5jICAgICAgICB8IDQwMSArKysrKysrKysrKysr KysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tCiB4ZW4vYXJjaC94ODYvbWljcm9jb2RlX2FtZC5j ICAgIHwgMjQ1ICsrKysrKysrKysrKy0tLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L21pY3JvY29k ZV9pbnRlbC5jICB8IDIwMiArKysrKysrKysrLS0tLS0tLS0tLQogeGVuL2FyY2gveDg2L3NtcGJv b3QuYyAgICAgICAgICB8ICAgNSArLQogeGVuL2FyY2gveDg2L3NwZWNfY3RybC5jICAgICAgICB8 ICAgMiArLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9taWNyb2NvZGUuaCB8ICAzOSArKy0tCiB4ZW4v aW5jbHVkZS9hc20teDg2L3Byb2Nlc3Nvci5oIHwgICAzICstCiAxMyBmaWxlcyBjaGFuZ2VkLCA2 MzkgaW5zZXJ0aW9ucygrKSwgMzY4IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHRv b2xzL21pc2MveGVuLXVjb2RlLmMKCi0tIAoxLjguMy4xCgoKX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX18KWGVuLWRldmVsIG1haWxpbmcgbGlzdApYZW4tZGV2 ZWxAbGlzdHMueGVucHJvamVjdC5vcmcKaHR0cHM6Ly9saXN0cy54ZW5wcm9qZWN0Lm9yZy9tYWls bWFuL2xpc3RpbmZvL3hlbi1kZXZlbA==