From mboxrd@z Thu Jan 1 00:00:00 1970 Return-path: From: Bastian Krause Date: Wed, 17 Jun 2020 16:31:24 +0200 Message-Id: <20200617143125.23999-6-bst@pengutronix.de> In-Reply-To: <20200617143125.23999-1-bst@pengutronix.de> References: <20200617143125.23999-1-bst@pengutronix.de> MIME-Version: 1.0 Subject: [ptxdist] [PATCH v3 5/6] doc: dev_code_signing: rework and extend code signing section List-Id: PTXdist Development Mailing List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: ptxdist@pengutronix.de Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: ptxdist-bounces@pengutronix.de Sender: "ptxdist" To: ptxdist@pengutronix.de Cc: Bastian Krause , Roland Hieber U2lnbmVkLW9mZi1ieTogQmFzdGlhbiBLcmF1c2UgPGJzdEBwZW5ndXRyb25peC5kZT4KUmV2aWV3 ZWQtYnk6IFJvbGFuZCBIaWViZXIgPHJoaUBwZW5ndXRyb25peC5kZT4KVGVzdGVkLWJ5OiBMYWRp c2xhdiBNaWNobCA8bGFkaXNAbGludXgtbWlwcy5vcmc+Ci0tLQpDaGFuZ2VzIHNpbmNlIHYyOgot IGFkanVzdCBzZWN0aW9uICJDcmVhdGluZyBDdXN0b20gQ29kZSBTaWduaW5nIFByb3ZpZGVycyIg dG8gdXBkYXRlZAogIGNvZGUgc2lnbmluZyBwcm92aWRlciB0ZW1wbGF0ZXMKQ2hhbmdlcyBzaW5j ZSAoaW1wbGljaXQpIHYxOgotIGFkZCBoeXBlcmxpbmsgdGFyZ2V0IHRvIGNvZGUgc2lnbmluZyBj b25zdW1lcnMgdG8gYWxsb3cgcmVmZXJlbmNlcyBpbgogIGEgbGF0ZXIgY29tbWl0Ci0tLQogZG9j L2Rldl9jb2RlX3NpZ25pbmcucnN0IHwgMTQ4ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0tLS0tLQogMSBmaWxlIGNoYW5nZWQsIDEyNSBpbnNlcnRpb25zKCspLCAyMyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9kb2MvZGV2X2NvZGVfc2lnbmluZy5yc3QgYi9kb2MvZGV2X2Nv ZGVfc2lnbmluZy5yc3QKaW5kZXggZGUwMDg3ZjhiLi5mYmViYjZiNTIgMTAwNjQ0Ci0tLSBhL2Rv Yy9kZXZfY29kZV9zaWduaW5nLnJzdAorKysgYi9kb2MvZGV2X2NvZGVfc2lnbmluZy5yc3QKQEAg LTMsMzQgKzMsMTM2IEBACiBDb2RlIFNpZ25pbmcKIC0tLS0tLS0tLS0tLQogCi1UaGlzIGlzIGFu IG92ZXJ2aWV3IG92ZXIgdGhlIHB0eGRpc3Qgc2lnbmluZyBpbmZyYXN0cnVjdHVyZS4KLXB0eGRp c3QgdXNlcyBQS0NTIzExIGludGVybmFsbHkgZm9yIHByb3ZpZGluZyBhY2Nlc3MgdG8ga2V5cyBh bmQgY2VydGlmaWNhdGVzLgotUGFja2FnZXMgdGhhdCB3aXNoIHRvIHNpZ24gc29tZXRoaW5nIHNo b3VsZCBpbXBsZW1lbnQgYSBQS0NTIzExIGludGVyZmFjZS4KK0luIG9yZGVyIHRvIG1ha2Ugc3Vy ZSBhbiBhcnRpZmFjdCB3YXMgY3JlYXRlZCBieSBhIGtub3duIGF1dGhvcml0eSBhbmQgd2FzIG5v dAorYWx0ZXJlZCBsYXRlciwgZGlnaXRhbCBzaWduYXR1cmVzIHBsYXkgYSBrZXkgcm9sZSB3aGVu IGJ1aWxkaW5nIGZpcm13YXJlCitpbWFnZXMuCitUaGlzIGlzIGFsc28gZXNzZW50aWFsIHdoZW4g YSB2ZXJpZmllZCBib290IGNoYWluIGlzIGVzdGFibGlzaGVkLCBlLmcuIHZpYQorKkhpZ2ggQXNz dXJhbmNlIEJvb3QqIChIQUIpLCBzaWduZWQgRklUIGltYWdlcywgYW5kIGEgdmVyaWZpZWQgcm9v dCBmaWxlCitzeXN0ZW0uCisKK1BUWGRpc3QgdXNlcyBgUEtDUyMxMSA8cGtjczExLWRvY18+YF8g aW50ZXJuYWxseSB0byBwcm92aWRlIGFjY2VzcyB0byBrZXlzIGFuZAorY2VydGlmaWNhdGVzLCB0 aGVyZWZvcmUgY29kZSBzaWduaW5nIGNvbnN1bWVycyBzaG91bGQgaW1wbGVtZW50IGEgUEtDUyMx MQoraW50ZXJmYWNlIHRvIG1ha2UgdXNlIG9mIFBUWGRpc3QncyBjb2RlIHNpZ25pbmcgaW5mcmFz dHJ1Y3R1cmUuCiAKIEFzIFBLQ1MjMTEgVVJJcyB1c3VhbGx5IGRpZmZlciBiZXR3ZWVuIGRpZmZl cmVudCB1c2VjYXNlcyAocmVsZWFzZSB2cy4KLWRldmVsb3BtZW50KSB0aGUgVVJJcyBub3JtYWxs eSBhcmUgbm90IGhhcmRjb2RlZCBpbiB0aGUgcGFja2FnZSBjb25maWd1cmF0aW9uLgotSW5zdGVh ZCwgcHR4ZGlzdCBoYXMgdGhlIGlkZWEgb2YgInJvbGVzIiB3aGljaCBhcmUgc3RyaW5nIGlkZW50 aWZpZXJzIHVzZWQgdG8KK2RldmVsb3BtZW50KSB0aGUgVVJJcyBhcmUgdXN1YWxseSBub3QgaGFy ZGNvZGVkIGluIHRoZSBwYWNrYWdlIGNvbmZpZ3VyYXRpb24uCitJbnN0ZWFkLCBQVFhkaXN0IGhh cyB0aGUgaWRlYSBvZiAqKnJvbGVzKiogd2hpY2ggYXJlIHN0cmluZyBpZGVudGlmaWVycyB1c2Vk IHRvCiBhY2Nlc3MgYSBzaW5nbGUgcHJpdmF0ZS9wdWJsaWMga2V5IHBhaXIgYW5kIGEgY2VydGlm aWNhdGUuCiAKLXB0eGRpc3Qgc3VwcG9ydHMgSGFyZHdhcmUgU2VjdXJpdHkgTW9kdWxlcyAoSFNN KS4KLUluIGNhc2UgYSBIU00gaXMgbm90IHByZXNlbnQgb3Igc2hhbGwgbm90IGJlIHVzZWQgU29m dEhTTSBpcyB1c2VkIGludGVybmFsbHkgdG8KLXRyYW5zcGFyZW50bHkgcHJvdmlkZSB0aGUgc2Ft ZSBBUEkgaW50ZXJuYWxseS4KK0ZpbmFsbHksIG9uZSBvciBzZXZlcmFsICoqY29kZSBzaWduaW5n IHByb3ZpZGVycyoqIHN1cHBseSB0aGUgbWFwcGluZyBmcm9tCityb2xlcyB0byB0aGUgcmVzcGVj dGl2ZSBrZXkgbWF0ZXJpYWwgb3IgZXZlbiBwcm92aWRlIGl0IHRoZW1zZWx2ZXMgZm9yCitkZXZl bG9wbWVudC4KKworUFRYZGlzdCBzdXBwb3J0cyAqSGFyZHdhcmUgU2VjdXJpdHkgTW9kdWxlcyog KEhTTSkuCitJbiBjYXNlIGFuIEhTTSBpcyBub3QgcHJlc2VudCBvciBzaGFsbCBub3QgYmUgdXNl ZCwgUFRYZGlzdCBjYW4gZW11bGF0ZSBpdAordXNpbmcgYFNvZnRIU00gPHNvZnRoc21fPmBfLCB3 aGlsZSBzdGlsbCB0cmFuc3BhcmVudGx5IHByb3ZpZGluZyB0aGUgc2FtZSBBUEkKK3RvIGNvZGUg c2lnbmluZyBjb25zdW1lcnMuCisKKy4uIF9wa2NzMTEtZG9jOiBodHRwczovL3d3dy5jcnlwdHNv ZnQuY29tL3BrY3MxMWRvYy8KKy4uIF9zb2Z0aHNtOiBodHRwczovL3d3dy5vcGVuZG5zc2VjLm9y Zy9zb2Z0aHNtLworCisuLiBfY29kZV9zaWduaW5nX3Byb3ZpZGVyczoKIAotRm9yIGVhY2ggcm9s ZSBhIFBLQ1MjMTEgVVJJIG11c3QgYmUga25vd24gYnkgcHR4ZGlzdC4KLUluIGNhc2Ugb2YgYSBI U00gdGhlIGtleXMgYW5kIGNlcnRpZmljYXRlcyBhcmUgc3RvcmVkIGluIHRoZSBIU00sIGJ1dCBw dHhkaXN0CitDb2RlIFNpZ25pbmcgUHJvdmlkZXJzCit+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CisK K0ZvciBlYWNoIHJvbGUgYSBQS0NTIzExIFVSSSBtdXN0IGJlIGtub3duIGJ5IFBUWGRpc3QuCitJ biBjYXNlIG9mIGFuIEhTTSB0aGUga2V5cyBhbmQgY2VydGlmaWNhdGVzIGFyZSBzdG9yZWQgaW4g dGhlIEhTTSwgYnV0IFBUWGRpc3QKIG5lZWRzIHRvIGtub3cgdGhlIFBLQ1MjMTEgVVJJIHRvIGFj Y2VzcyB0aGUga2V5cy4KLVRoaXMgaXMgZG9uZSBpbiBwdHhkaXN0IHJ1bGUgZmlsZXMgY2FsbGlu ZyBjc19zZXRfdXJpIDxyb2xlPiA8dXJpPi4KLUZvciBTb2Z0SFNNIHRoZSBVUkkgaXMgZ2VuZXJh dGVkIGludGVybmFsbHkgYnkgcHR4ZGlzdCwgYnV0IGluc3RlYWQgdGhlCi1rZXlzL2NlcnRpZmlj YXRlcyBmb3IgZWFjaCByb2xlIGhhdmUgaGF2ZSB0byBiZSBpbXBvcnRlZC4KLVRoaXMgaXMgZG9u ZSB3aXRoIHRoZSBjc19pbXBvcnRfKiBmdW5jdGlvbnMgYmVsb3cuCi0KLUR1cmluZyBlYWNoIGlu dm9jYXRpb24gb2YgcHR4ZGlzdCBleGFjdGx5IG9uZSBrZXkgcHJvdmlkZXIgaXMgYWN0aXZlLgot VGhlIGNvZGUgc2lnbmluZyBwcm92aWRlciBjYW4gYmUgY2hvc2VuIHdpdGggdGhlIFBUWENPTkZf Q09ERV9TSUdOSU5HX1BST1ZJREVSCi12YXJpYWJsZS4KLUEgY29kZSBzaWduaW5nIHByb3ZpZGVy IGlzIGEgcGFja2FnZSByZXNwb3NpYmxlIGZvciBwcm92aWRpbmcgdGhlIHJvbGUgPC0+Ci1QS0NT IzExIFVSSSByZWxhdGlvbnNoaXBzIGluIGNhc2UgYSBIU00gaXMgdXNlZCBvciBmb3IgcHJvdmlk aW5nIHRoZSBrZXkKK0ZvciBTb2Z0SFNNIHRoZSBVUkkgaXMgZ2VuZXJhdGVkIGludGVybmFsbHkg YnkgUFRYZGlzdCwgYnV0IGluc3RlYWQgdGhlCitrZXlzL2NlcnRpZmljYXRlcyBmb3IgZWFjaCBy b2xlIGhhdmUgdG8gYmUgaW1wb3J0ZWQgYnkgdGhlIGNvZGUgc2lnbmluZworcHJvdmlkZXIgaW50 byB0aGUgU29mdEhTTS4KKworQSBjb2RlIHNpZ25pbmcgcHJvdmlkZXIgaXMgYSBwYWNrYWdlIHJl c3BvbnNpYmxlIGZvciBwcm92aWRpbmcgdGhlIHJvbGUg4oaUCitQS0NTIzExIFVSSSByZWxhdGlv bnNoaXBzIGluIGNhc2UgYW4gSFNNIGlzIHVzZWQsIG9yIGZvciBwcm92aWRpbmcgdGhlIGtleQog bWF0ZXJpYWwgaW4gY2FzZSBTb2Z0SFNNIGlzIHVzZWQuCiAKLUEgcGFja2FnZSB3aGljaCB3YW50 cyB0byBzaWduIHNvbWV0aGluZyBvciB3aGljaCBuZWVkcyBhY2Nlc3MgdG8ga2V5cyBoYXMgdG8K LXNlbGVjdCBDT0RFX1NJR05JTkcuCi1UaGlzIG1ha2VzIHN1cmUgdGhlIGtleXMgYXJlIHJlYWR5 IHdoZW4gdGhlIHBhY2thZ2UgaXMgYmVpbmcgYnVpbHQuCitXaGVuIGBgUFRYQ09ORl9DT0RFX1NJ R05JTkdgYCBpcyBlbmFibGVkIGV4YWN0bHkgb25lIGNvZGUgc2lnbmluZyBwcm92aWRlciBpcwor YWN0aXZlIGR1cmluZyBlYWNoIGludm9jYXRpb24gb2YgUFRYZGlzdC4KKworUFRYZGlzdCBjb21l cyBlcXVpcHBlZCB3aXRoIGEgZGV2ZWxvcG1lbnQgY29kZSBzaWduaW5nIHByb3ZpZGVyICJkZXZl bCIKK2ltcGxlbWVudGVkIHZpYSB0aGUgcGFja2FnZSBgYGhvc3QtcHR4LWNvZGUtc2lnbmluZy1k ZXZgYC4KK0l0IGltcG9ydHMgcHVibGljbHkgYXZhaWxhYmxlIGRldmVsb3BtZW50IGtleXMgZm9y IGVhY2ggcm9sZSBpbnRvIHRoZSBTb2Z0SFNNLgorCisuLiBpbXBvcnRhbnQ6OiBUaGUgYGBob3N0 LXB0eC1jb2RlLXNpZ25pbmctZGV2YGAgY29kZSBzaWduaW5nIHByb3ZpZGVyIGNhbiBiZQorICB1 c2VkIHRvIHNpZ24gYXJ0aWZhY3RzIGZvciBkZXZlbG9wbWVudCBwdXJwb3NlcywgYnV0ICoqbXVz dCBub3QqKiBiZSB1c2VkIGZvcgorICBwcm9kdWN0aW9uLgorCitDcmVhdGluZyBDdXN0b20gQ29k ZSBTaWduaW5nIFByb3ZpZGVycworXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5eXl5e Xl4KKworV2hlbiBhIHNldCBvZiByZWxlYXNlIGtleXMgb3IgcHJvamVjdC1zcGVjaWZpYyBkZXZl bG9wbWVudCBrZXlzIHNob3VsZCBiZQordXNlZCAoZS5nLiB0byBhY2hpZXZlIGJhY2t3YXJkIGNv bXBhdGliaWxpdHkpLCBhIG5ldyBjb2RlIHNpZ25pbmcgcHJvdmlkZXIKK211c3QgYmUgaW50cm9k dWNlZC4KKworVXNlIGBgcHR4ZGlzdCBuZXdwYWNrYWdlIGNvZGUtc2lnbmluZy1wcm92aWRlcmBg IHRvIGdlbmVyYXRlIHN1Y2ggYSBuZXcgY29kZQorc2lnbmluZyBwcm92aWRlci4KK1BUWGRpc3Qg ZGlzdGluZ3Vpc2hlcyBiZXR3ZWVuICJTb2Z0SFNNIiwgIkhTTXMgd2l0aCBPcGVuU0Mgc3VwcG9y dCIgYW5kICJvdGhlcgorSFNNcyIuCitUaGUgZ2VuZXJhdGVkIHNoZWxsIHNjcmlwdCBpbiBgYGxv Y2FsX3NyYy88bmFtZT4tY29kZS1zaWduaW5nL2BgIGNvbnRhaW5zCithbiBleGFtcGxlcyBmb3Ig dGhlIHNlbGVjdGVkIEhTTSB1c2UgY2FzZS4KK1NlZSA6cmVmOmBjb2RlX3NpZ25pbmdfaGVscGVy X2Z1bmN0aW9uc2AgZm9yIGFuIGV4cGxhbmF0aW9uIG9mIHRoZSBhdmFpbGFibGUKK2NvZGUgc2ln bmluZyBoZWxwZXJzLgorSW4gY2FzZSBvZiBTb2Z0SFNNIHVzZSBjYXNlcyB0aGUga2V5cyBzaG91 bGQgYWxzbyBiZSBwbGFjZWQgaW5zaWRlCitgYGxvY2FsX3NyYy88bmFtZT4tY29kZS1zaWduaW5n L2BgCisKK0luIGNhc2UgYW4gSFNNIGlzIHVzZWQgaXQgaXMgcmVxdWlyZWQgdG8gZXh0ZW5kIHRo ZSBgYENPREVfU0lHTklOR19FTlZgYCB3aXRoCithZGRpdGlvbmFsIGVudmlyb25tZW50IHZhcmlh YmxlcyB2aWEgYSBwcmUgcnVsZSBpbgorYGAkKFBUWERJU1RfUExBVEZPUk1DT05GSUdESVIpL3J1 bGVzL3ByZS9gYC4KK0ZvciBTb2Z0SFNNIHN1Y2ggYSBwcmUgcnVsZSBleGlzdHMgYWxyZWFkeSBp biB1cHN0cmVhbSBQVFhkaXN0IGluCitgYHJ1bGVzL3ByZS8wMjAtY29kZS1zaWduaW5nLXNvZnRo c20ubWFrZWBgLgorRm9yIEhTTXMgd2l0aCAqT3BlblNDKiBzdXBwb3J0IGEgcHJlIHJ1bGUgaXMg Z2VuZXJhdGVkIGluCitgYCQoUFRYRElTVF9QTEFURk9STUNPTkZJR0RJUikvcnVsZXMvcHJlLzAy MC08bmFtZT4tY29kZS1zaWduaW5nLWhzbS5tYWtlYGAuCitGb3Igb3RoZXIgSFNNcyBhIHNrZWxl dG9uIHByZSBtYWtlIGZpbGUgaXMgZ2VuZXJhdGVkIGFuZCBtdXN0IGJlIGFkanVzdGVkLgorCitG b3IgZXhhbXBsZSwgZm9yIE5pdHJva2V5IEhTTXMgd2hpY2ggdXNlIE9wZW5TQyB0aGUgZ2VuZXJh dGVkIHByZSBydWxlIGxvb2tzCitsaWtlIHRoaXM6CisKKy4uIGNvZGUtYmxvY2s6OiBtYWtlCisK KyAgICBpZmRlZiBQVFhDT05GX0NPREVfU0lHTklOR19QUk9WSURFUl88TkFNRT4KKyAgICBDT0RF X1NJR05JTkdfRU5WICs9IFwKKyAgICAJUEtDUzExX01PRFVMRV9QQVRIPSIke1BUWERJU1RfU1lT Uk9PVF9IT1NUfS9saWIvcGtjczExL29wZW5zYy1wa2NzMTEuc28iCisgICAgZW5kaWYKKworTm90 ZSB0aGF0IHRoZSBtb2R1bGUgaXMgYnVpbHQgaW4gdGhlIEJTUCBpbiB0aGlzIGNhc2UuCitUaGlz IGlzIG5vdCBzdHJpY3RseSByZXF1aXJlZCwgaXQgaXMgYWxzbyBwb3NzaWJsZSB0byB1c2UgYW4g b3RoZXJ3aXNlCitkaXN0cmlidXRlZCBtb2R1bGUsIGUuZy4gYnkgdGhlIEhTTSBtYW51ZmFjdHVy ZXIuCitGb3IgSFNNcyBzdXBwb3J0ZWQgYnkgT3BlblNDIHRoZSByZXF1aXJlZCBPcGVuU0Mgc2Vs ZWN0cyBhcmUgZ2VuZXJhdGVkLgorSWYgYW4gSFNNIHdpdGhvdXQgT3BlblNDIHN1cHBvcnQgaXMg dXNlZCB0aGUgYGBzZWxlY3QgRklYTUVgYCBzaG91bGQgZWl0aGVyIGJlCityZXBsYWNlZCB3aXRo IGFuIGFwcHJvcHJpYXRlIGhvc3QgdG9vbCB0aGF0IHByb3ZpZGVzIHRoZSBQS0NTIzExIG1vZHVs ZSBvcgorcmVtb3ZlZCBhbHRvZ2V0aGVyIGlmIGFuIGV4dGVybmFsIFBLQ1MjMTEgbW9kdWxlIGlz IHVzZWQuCisKK1N3aXRjaGluZyB0aGUgY29kZSBzaWduaW5nIHByb3ZpZGVyIGlzIG5vdyBmaW5h bGx5IHBvc3NpYmxlIHdpdGgKK2BgcHR4ZGlzdCBwbGF0Zm9ybWNvbmZpZ2BgLCB0aGVuIG5hdmln YXRlIHRvICpDb2RlIHNpZ25pbmcqIOKGkiAqQ29kZSBzaWduaW5nCitwcm92aWRlciouCisKKy4u IF9jb2RlX3NpZ25pbmdfY29uc3VtZXJzOgorCitDb2RlIFNpZ25pbmcgQ29uc3VtZXJzCit+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+CisKK0EgcGFja2FnZSBoYXMgdG8gc2VsZWN0IGBgQ09ERV9TSUdO SU5HYGAgaWYgaXQgd2FudHMgdG8gc2lnbiBzb21ldGhpbmcsIG9yIGlmCitpdCBuZWVkcyBhY2Nl c3MgdG8ga2V5cyBhbmQvb3IgY2VydGlmaWNhdGVzLgorVGhlIGNvbmZpZyBzeW1ib2wgaXMgYXZh aWxhYmxlIGluIHB0eGNvbmZpZyBhcyB3ZWxsIGFzIGluIHBsYXRmb3JtY29uZmlnLgorU2VsZWN0 aW5nIHRoaXMgc3ltYm9sIG1ha2VzIHN1cmUgdGhlIGtleXMgYW5kIGNlcnRpZmljYXRlcyBhcmUg cmVhZHkgd2hlbiB0aGUKK3BhY2thZ2UgaXMgYmVpbmcgYnVpbHQuCisKK0J5IGFkZGluZyBgYENP REVfU0lHTklOR19FTlZgYCB0byB0aGUgcGFja2FnZSdzIG1ha2UvY29uZi9pbWFnZSBlbnZpcm9u bWVudCBhCit0b29sIGltcGxlbWVudGluZyBhIFBLQ1MjMTEgaW50ZXJmYWNlIGNhbiBhY2Nlc3Mg dGhlIEhTTSBvciBTb2Z0SFNNLgorVGhlIFBLQ1MjMTEgVVJJIGNhbiBiZSByZXRyaWV2ZWQgdmlh IDpyZWY6YGNzX2dldF91cmlgIGFuZCBwYXNzZWQgb24sIHVzdWFsbHkKK2Fsc28gdmlhIGFuIGVu dmlyb25tZW50IHZhcmlhYmxlLgorCis6cmVmOmBjc19nZXRfY2FgIGNhbiBiZSB1c2VkIHRvIGlu c3RhbGwgYSBrZXlyaW5nIHRvIHRoZSByb290IGZpbGUgc3lzdGVtLCBlLmcuOgorCisuLiBjb2Rl LWJsb2NrOjogbm9uZQorCisgICAgJChjYWxsIGluc3RhbGxfY29weSwgcmF1YywgMCwgMCwgMDY0 NCwgXAorICAgICAgJChzaGVsbCBjc19nZXRfY2EgdXBkYXRlKSwgXAorICAgICAgL2V0Yy9yYXVj L2NhLmNlcnQucGVtKQorCisuLiBub3RlOjogV2hlbiBjb2RlIHNpZ25pbmcgaGVscGVyIGZ1bmN0 aW9ucyBhcmUgdXNlZCBpbiBtYWtlIHZhcmlhYmxlcyAoZS5nLgorICBmb3IgZW52aXJvbm1lbnQg ZGVmaW5pdGlvbnMpIHJlY3Vyc2l2ZWx5IGV4cGFuZGVkIHZhcmlhYmxlcyBtdXN0IGJlIHVzZWQK KyAgKGBgPWBgLCBub3QgYGA6PWBgKS4KKyAgT3RoZXJ3aXNlIHRoZSB2YXJpYWJsZSBpcyBleHBh bmRlZCBiZWZvcmUgYSBjb2RlIHNpZ25pbmcgcHJvdmlkZXIgY2FuIHBlcmZvcm0KKyAgaXRzIHNl dHVwLgotLSAKMi4yNy4wCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KcHR4ZGlzdCBtYWlsaW5nIGxpc3QKcHR4ZGlzdEBwZW5ndXRyb25peC5kZQpUbyB1 bnN1YnNjcmliZSwgc2VuZCBhIG1haWwgd2l0aCBzdWJqZWN0ICJ1bnN1YnNjcmliZSIgdG8gcHR4 ZGlzdC1yZXF1ZXN0QHBlbmd1dHJvbml4LmRlCg==