From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Jonas Hahnfeld via "Developers list for Guile, the GNU extensibility library" Newsgroups: gmane.lisp.guile.devel Subject: [PATCH] Remove and ignore generated files Date: Wed, 18 Oct 2023 22:24:16 +0200 Message-ID: Reply-To: Jonas Hahnfeld Mime-Version: 1.0 Content-Type: multipart/signed; micalg="pgp-sha256"; protocol="application/pgp-signature"; boundary="=-fpVY5oGarD/Xi9geu/r0" Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="33390"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Evolution 3.50.0 To: guile-devel@gnu.org Original-X-From: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Wed Oct 18 22:25:00 2023 Return-path: Envelope-to: guile-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qtD6B-0008Q8-5g for guile-devel@m.gmane-mx.org; Wed, 18 Oct 2023 22:24:59 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qtD5l-0000go-5r; Wed, 18 Oct 2023 16:24:33 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qtD5j-0000gf-SX for guile-devel@gnu.org; Wed, 18 Oct 2023 16:24:31 -0400 Original-Received: from backus.hahnjo.de ([193.30.122.186] helo=mail.hahnjo.de) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qtD5f-0006hG-0x for guile-devel@gnu.org; Wed, 18 Oct 2023 16:24:31 -0400 Original-Received: from [IPv6:2a01:cb15:302:b500:478b:73c7:fdf0:1e6f] (unknown [IPv6:2a01:cb15:302:b500:478b:73c7:fdf0:1e6f]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (prime256v1) server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by mail.hahnjo.de (Postfix) with ESMTPSA id 62144756EE9A for ; Wed, 18 Oct 2023 22:24:22 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=hahnjo.de; s=default; t=1697660662; bh=zUk4Z3DINqTOhnLDvksNH9M4oppPwM1AJg1zof9Ga5Q=; h=Subject:From:To:Date; b=pG/CRe82CIF2c6R5FHDtpzIzewl91+uMfwQkdBUoej3zxnmi4xgIYK6oMzhfya/25 vBHFEwWYZ7WR9uNoNU//dl3aRCOQ+W5jrr4Gos8mjsRgv3+6EPrpXWUKIDI76xruOC JYBvTTAOj9bXpE0q9nrtcPfqqCUEQO1XoyuTEpJkeYHHgOdP3zCNraydoK6QS5yEST T67a/feOGN/Ni+Tr7xW9YBs2aKoxkG0lH8EnYdQYeN5JH5SYD/+viKVjb61waSRgN2 +rm4Y6wgqhPtvykFw6RVleivn4XUL7uKgRMQ4PHrkxNpBX4G1qah0EEaVxLH9Fy3d+ Gpbr5B22yCjvQ== Autocrypt: addr=hahnjo@hahnjo.de; prefer-encrypt=mutual; keydata=mQENBFIIleUBCAC94iH8XbAOTIPKPTRiMFcYyWaERWsRS1u3Cu6h3tlvTgLj02j9byL4uChGHhb0p6kuIqP89OlS/PGONDyMaMDvV4DL0woqbw87Y0qNLGHYiFtIXLqyhutHsNgsKObWKb2U7rhfmRbr5JUXFB3D5AWjKL1EBaYWlzH+wjJM3l3gqO9zmt5Q+4IhZkZHkb22SYsaAw4sdNtQ+SN3KUc1OYIZcJcooeQyQiddmiHCXQocMxQMGAbOSxuQhHaujsGWfwoqkAOAry0xt9Ry0FLKCGmj5F0YUlO3trSKuuWQ0xmJdXUMXCEFZ3odZ7t2pN0kGsKFhWN5ZyMqQF9E7igSOfdTABEBAAG0KUpvbmFzIEhhaG5mZWxkIDxqb25hcy5oYWhuZmVsZEBvbmxpbmUuZGU+iQE5BBMBAgAjBQJSKg3hAhsDBwsJCAcDAgEGFQgCCQoLBBYCAwECHgECF4AACgkQkcnDPSxhrNs1lAgAjEpy/TTOPTLEmdjXJDWgDom7y1+jTBHk37r3zjwWDJCkwr3WmVAnhY9muwo/8gkltvYk6CqzrIuUNxO7pTCfduEE04S19xUxd5IXVSxQoBG+AgzqvDqBmRCwMbDRXQ1EMu7qmX4FtZfjUmCZumQTf8unHzgGE5TgmYPM+UAS528AAWjT526lkLRhoSJHQlSBdaWGjiexCSyF76SedsXboCs9cS47mBWDwZOEin3eyycQlM0xBBPtEABF+Tq7Bt5/W9jc+wIe1f0QaUedsga75UY9wRYWu7Sjs90 1WSpEpdF+beU48rqaxEWLmLWkQy/3Vl571F21U+XP Received-SPF: pass client-ip=193.30.122.186; envelope-from=hahnjo@hahnjo.de; helo=mail.hahnjo.de X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Original-Sender: guile-devel-bounces+guile-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.lisp.guile.devel:22030 Archived-At: --=-fpVY5oGarD/Xi9geu/r0 Content-Type: multipart/mixed; boundary="=-NeTEijQqTMgJOqey+ZSN" --=-NeTEijQqTMgJOqey+ZSN Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi, running autogen.sh produces a number of generated files that are currently not properly ignored or even checked into git. Please take a look at the attached patches and apply if suitable. Thanks! Jonas --=-NeTEijQqTMgJOqey+ZSN Content-Disposition: attachment; filename="0001-Delete-two-config.rpath-scripts.patch" Content-Type: text/x-patch; name="0001-Delete-two-config.rpath-scripts.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBjYjJmOGVhZjdkOTQzNzllMjNiOThhN2IxNDFkNTkwZTI2NTQ1OTUzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb25hcyBIYWhuZmVsZCA8aGFobmpvQGhhaG5qby5kZT4KRGF0 ZTogV2VkLCAxOCBPY3QgMjAyMyAyMTowMDo1OCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMS8zXSBE ZWxldGUgdHdvIGNvbmZpZy5ycGF0aCBzY3JpcHRzCgpjb25maWcucnBhdGggaW4gdGhlIHRvcC1s ZXZlbCB3YXMgaGVhdmlseSBvdXRkYXRlZCBhbmQgdW51c2VkLiBUaGUKdmVyc2lvbiBvZiB0aGUg c2NyaXB0IGluIGJ1aWxkLWF1eC8gd2FzIG92ZXJ3cml0dGVuIGJ5IGF1dG9nZW4uc2g7CmNvbW1p dCA3ZjE4YjY1OWI5IGFscmVhZHkgdHJpZWQgdG8gcmVtb3ZlIGl0IHR3byB5ZWFycyBhZ28sIGJ1 dCBkaWQKbm90IGFkZCBpdCB0byAuZ2l0aWdub3JlCgoqIGNvbmZpZy5ycGF0aCwgYnVpbGQtYXV4 L2NvbmZpZy5ycGF0aDogUmVtb3ZlLgoqIC5naXRpZ25vcmU6IElnbm9yZSBidWlsZC1hdXgvY29u ZmlnLnJwYXRoLgotLS0KIC5naXRpZ25vcmUgICAgICAgICAgICAgfCAgIDEgKwogYnVpbGQtYXV4 L2NvbmZpZy5ycGF0aCB8IDY4NCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogY29uZmlnLnJwYXRoICAgICAgICAgICB8IDY2NiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgMSBpbnNlcnRpb24oKyksIDEzNTAg ZGVsZXRpb25zKC0pCiBkZWxldGUgbW9kZSAxMDA3NTUgYnVpbGQtYXV4L2NvbmZpZy5ycGF0aAog ZGVsZXRlIG1vZGUgMTAwNzU1IGNvbmZpZy5ycGF0aAoKZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUg Yi8uZ2l0aWdub3JlCmluZGV4IDkzMWViZjdjNC4uY2I2NzViZjQwIDEwMDY0NAotLS0gYS8uZ2l0 aWdub3JlCisrKyBiLy5naXRpZ25vcmUKQEAgLTM4LDYgKzM4LDcgQEAgYmVuY2htYXJrLWd1aWxl CiBjaGVjay1ndWlsZQogY2hlY2stZ3VpbGUubG9nCiBidWlsZC1hdXgvY29tcGlsZQorYnVpbGQt YXV4L2NvbmZpZy5ycGF0aAogY29uZmRlZnMuaAogY29uZmlnLmJ1aWxkLXN1YmRpcnMKIGNvbmZp Zy5jYWNoZQpkaWZmIC0tZ2l0IGEvYnVpbGQtYXV4L2NvbmZpZy5ycGF0aCBiL2J1aWxkLWF1eC9j b25maWcucnBhdGgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDFlMjU5NWZmNS4uMDAw MDAwMDAwCi0tLSBhL2J1aWxkLWF1eC9jb25maWcucnBhdGgKKysrIC9kZXYvbnVsbApAQCAtMSw2 ODQgKzAsMCBAQAotIyEgL2Jpbi9zaAotIyBPdXRwdXQgYSBzeXN0ZW0gZGVwZW5kZW50IHNldCBv ZiB2YXJpYWJsZXMsIGRlc2NyaWJpbmcgaG93IHRvIHNldCB0aGUKLSMgcnVuIHRpbWUgc2VhcmNo IHBhdGggb2Ygc2hhcmVkIGxpYnJhcmllcyBpbiBhbiBleGVjdXRhYmxlLgotIwotIyAgIENvcHly aWdodCAxOTk2LTIwMjMgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuCi0jICAgVGFrZW4g ZnJvbSBHTlUgbGlidG9vbCwgMjAwMQotIyAgIE9yaWdpbmFsbHkgYnkgR29yZG9uIE1hdHppZ2tl aXQgPGdvcmRAZ251LmFpLm1pdC5lZHU+LCAxOTk2Ci0jCi0jICAgVGhpcyBmaWxlIGlzIGZyZWUg c29mdHdhcmU7IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24gZ2l2ZXMKLSMgICB1bmxpbWl0 ZWQgcGVybWlzc2lvbiB0byBjb3B5IGFuZC9vciBkaXN0cmlidXRlIGl0LCB3aXRoIG9yIHdpdGhv dXQKLSMgICBtb2RpZmljYXRpb25zLCBhcyBsb25nIGFzIHRoaXMgbm90aWNlIGlzIHByZXNlcnZl ZC4KLSMKLSMgVGhlIGZpcnN0IGFyZ3VtZW50IHBhc3NlZCB0byB0aGlzIGZpbGUgaXMgdGhlIGNh bm9uaWNhbCBob3N0IHNwZWNpZmljYXRpb24sCi0jICAgIENQVV9UWVBFLU1BTlVGQUNUVVJFUi1P UEVSQVRJTkdfU1lTVEVNCi0jIG9yCi0jICAgIENQVV9UWVBFLU1BTlVGQUNUVVJFUi1LRVJORUwt T1BFUkFUSU5HX1NZU1RFTQotIyBUaGUgZW52aXJvbm1lbnQgdmFyaWFibGVzIENDLCBHQ0MsIExE RkxBR1MsIExELCB3aXRoX2dudV9sZAotIyBzaG91bGQgYmUgc2V0IGJ5IHRoZSBjYWxsZXIuCi0j Ci0jIFRoZSBzZXQgb2YgZGVmaW5lZCB2YXJpYWJsZXMgaXMgYXQgdGhlIGVuZCBvZiB0aGlzIHNj cmlwdC4KLQotIyBLbm93biBsaW1pdGF0aW9uczoKLSMgLSBPbiBJUklYIDYuNSB3aXRoIENDPSJj YyIsIHRoZSBydW4gdGltZSBzZWFyY2ggcGF0Y2ggbXVzdCBub3QgYmUgbG9uZ2VyCi0jICAgdGhh biAyNTYgYnl0ZXMsIG90aGVyd2lzZSB0aGUgY29tcGlsZXIgZHJpdmVyIHdpbGwgZHVtcCBjb3Jl LiBUaGUgb25seQotIyAgIGtub3duIHdvcmthcm91bmQgaXMgdG8gY2hvb3NlIHNob3J0ZXIgZGly ZWN0b3J5IG5hbWVzIGZvciB0aGUgYnVpbGQKLSMgICBkaXJlY3RvcnkgYW5kL29yIHRoZSBpbnN0 YWxsYXRpb24gZGlyZWN0b3J5LgotCi0jIEFsbCBrbm93biBsaW5rZXJzIHJlcXVpcmUgYSAnLmEn IGFyY2hpdmUgZm9yIHN0YXRpYyBsaW5raW5nIChleGNlcHQgTVNWQywKLSMgd2hpY2ggbmVlZHMg Jy5saWInKS4KLWxpYmV4dD1hCi1zaHJleHQ9LnNvCi0KLWhvc3Q9IiQxIgotaG9zdF9jcHU9YGVj aG8gIiRob3N0IiB8IHNlZCAncy9eXChbXi1dKlwpLVwoW14tXSpcKS1cKC4qXCkkL1wxLydgCi1o b3N0X3ZlbmRvcj1gZWNobyAiJGhvc3QiIHwgc2VkICdzL15cKFteLV0qXCktXChbXi1dKlwpLVwo LipcKSQvXDIvJ2AKLWhvc3Rfb3M9YGVjaG8gIiRob3N0IiB8IHNlZCAncy9eXChbXi1dKlwpLVwo W14tXSpcKS1cKC4qXCkkL1wzLydgCi0KLSMgQ29kZSB0YWtlbiBmcm9tIGxpYnRvb2wubTQncyBf TFRfQ0NfQkFTRU5BTUUuCi0KLWZvciBjY190ZW1wIGluICRDQyIiOyBkbwotICBjYXNlICRjY190 ZW1wIGluCi0gICAgY29tcGlsZSB8ICpbXFwvXWNvbXBpbGUgfCBjY2FjaGUgfCAqW1xcL11jY2Fj aGUgKSA7OwotICAgIGRpc3RjYyB8ICpbXFwvXWRpc3RjYyB8IHB1cmlmeSB8ICpbXFwvXXB1cmlm eSApIDs7Ci0gICAgXC0qKSA7OwotICAgICopIGJyZWFrOzsKLSAgZXNhYwotZG9uZQotY2NfYmFz ZW5hbWU9YGVjaG8gIiRjY190ZW1wIiB8IHNlZCAtZSAncyVeLiovJSUnYAotCi0jIENvZGUgdGFr ZW4gZnJvbSBsaWJ0b29sLm00J3MgX0xUX0NPTVBJTEVSX1BJQy4KLQotd2w9Ci1pZiB0ZXN0ICIk R0NDIiA9IHllczsgdGhlbgotICB3bD0nLVdsLCcKLWVsc2UKLSAgY2FzZSAiJGhvc3Rfb3MiIGlu Ci0gICAgYWl4KikKLSAgICAgIHdsPSctV2wsJwotICAgICAgOzsKLSAgICBtaW5ndyogfCBjeWd3 aW4qIHwgcHczMiogfCBvczIqIHwgY2VnY2MqKQotICAgICAgOzsKLSAgICBocHV4OSogfCBocHV4 MTAqIHwgaHB1eDExKikKLSAgICAgIHdsPSctV2wsJwotICAgICAgOzsKLSAgICBpcml4NSogfCBp cml4NiogfCBub25zdG9wdXgqKQotICAgICAgd2w9Jy1XbCwnCi0gICAgICA7OwotICAgIGxpbnV4 KiB8IGsqYnNkKi1nbnUgfCBrb3BlbnNvbGFyaXMqLWdudSkKLSAgICAgIGNhc2UgJGNjX2Jhc2Vu YW1lIGluCi0gICAgICAgIGVjYyopCi0gICAgICAgICAgd2w9Jy1XbCwnCi0gICAgICAgICAgOzsK LSAgICAgICAgaWNjKiB8IGlmb3J0KikKLSAgICAgICAgICB3bD0nLVdsLCcKLSAgICAgICAgICA7 OwotICAgICAgICBsZjk1KikKLSAgICAgICAgICB3bD0nLVdsLCcKLSAgICAgICAgICA7OwotICAg ICAgICBuYWdmb3IqKQotICAgICAgICAgIHdsPSctV2wsLVdsLCwnCi0gICAgICAgICAgOzsKLSAg ICAgICAgcGdjYyogfCBwZ2Y3NyogfCBwZ2Y5MCogfCBwZ2Y5NSogfCBwZ2ZvcnRyYW4qKQotICAg ICAgICAgIHdsPSctV2wsJwotICAgICAgICAgIDs7Ci0gICAgICAgIGNjYyopCi0gICAgICAgICAg d2w9Jy1XbCwnCi0gICAgICAgICAgOzsKLSAgICAgICAgeGwqIHwgYmd4bCogfCBiZ2YqIHwgbXBp eGwqKQotICAgICAgICAgIHdsPSctV2wsJwotICAgICAgICAgIDs7Ci0gICAgICAgIGNvbW8pCi0g ICAgICAgICAgd2w9Jy1sb3B0PScKLSAgICAgICAgICA7OwotICAgICAgICAqKQotICAgICAgICAg IGNhc2UgYCRDQyAtViAyPiYxIHwgc2VkIDVxYCBpbgotICAgICAgICAgICAgKlN1blwgRiogfCAq U3VuKkZvcnRyYW4qKQotICAgICAgICAgICAgICB3bD0KLSAgICAgICAgICAgICAgOzsKLSAgICAg ICAgICAgICpTdW5cIEMqKQotICAgICAgICAgICAgICB3bD0nLVdsLCcKLSAgICAgICAgICAgICAg OzsKLSAgICAgICAgICBlc2FjCi0gICAgICAgICAgOzsKLSAgICAgIGVzYWMKLSAgICAgIDs7Ci0g ICAgbmV3c29zNikKLSAgICAgIDs7Ci0gICAgKm50byogfCAqcW54KikKLSAgICAgIDs7Ci0gICAg b3NmMyogfCBvc2Y0KiB8IG9zZjUqKQotICAgICAgd2w9Jy1XbCwnCi0gICAgICA7OwotICAgIHJk b3MqKQotICAgICAgOzsKLSAgICBzb2xhcmlzKikKLSAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGlu Ci0gICAgICAgIGY3NyogfCBmOTAqIHwgZjk1KiB8IHN1bmY3NyogfCBzdW5mOTAqIHwgc3VuZjk1 KikKLSAgICAgICAgICB3bD0nLVFvcHRpb24gbGQgJwotICAgICAgICAgIDs7Ci0gICAgICAgICop Ci0gICAgICAgICAgd2w9Jy1XbCwnCi0gICAgICAgICAgOzsKLSAgICAgIGVzYWMKLSAgICAgIDs7 Ci0gICAgc3Vub3M0KikKLSAgICAgIHdsPSctUW9wdGlvbiBsZCAnCi0gICAgICA7OwotICAgIHN5 c3Y0IHwgc3lzdjQuMnV3MiogfCBzeXN2NC4zKikKLSAgICAgIHdsPSctV2wsJwotICAgICAgOzsK LSAgICBzeXN2NCpNUCopCi0gICAgICA7OwotICAgIHN5c3Y1KiB8IHVuaXh3YXJlKiB8IHNjbzMu MnY1KiB8IHNjbzV2NiogfCBPcGVuVU5JWCopCi0gICAgICB3bD0nLVdsLCcKLSAgICAgIDs7Ci0g ICAgdW5pY29zKikKLSAgICAgIHdsPSctV2wsJwotICAgICAgOzsKLSAgICB1dHM0KikKLSAgICAg IDs7Ci0gIGVzYWMKLWZpCi0KLSMgQ29kZSB0YWtlbiBmcm9tIGxpYnRvb2wubTQncyBfTFRfTElO S0VSX1NITElCUy4KLQotaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0KLWhhcmRjb2RlX2xpYmRp cl9zZXBhcmF0b3I9Ci1oYXJkY29kZV9kaXJlY3Q9bm8KLWhhcmRjb2RlX21pbnVzX0w9bm8KLQot Y2FzZSAiJGhvc3Rfb3MiIGluCi0gIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikK LSAgICAjIEZJWE1FOiB0aGUgTVNWQysrIHBvcnQgaGFzbid0IGJlZW4gdGVzdGVkIGluIGEgbG9v b29uZyB0aW1lCi0gICAgIyBXaGVuIG5vdCB1c2luZyBnY2MsIHdlIGN1cnJlbnRseSBhc3N1bWUg dGhhdCB3ZSBhcmUgdXNpbmcKLSAgICAjIE1pY3Jvc29mdCBWaXN1YWwgQysrLgotICAgIGlmIHRl c3QgIiRHQ0MiICE9IHllczsgdGhlbgotICAgICAgd2l0aF9nbnVfbGQ9bm8KLSAgICBmaQotICAg IDs7Ci0gIGludGVyaXgqKQotICAgICMgd2UganVzdCBob3BlL2Fzc3VtZSB0aGlzIGlzIGdjYyBh bmQgbm90IGM4OSAoPSBNU1ZDKyspCi0gICAgd2l0aF9nbnVfbGQ9eWVzCi0gICAgOzsKLSAgb3Bl bmJzZCopCi0gICAgd2l0aF9nbnVfbGQ9bm8KLSAgICA7OwotZXNhYwotCi1sZF9zaGxpYnM9eWVz Ci1pZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0geWVzOyB0aGVuCi0gICMgU2V0IHNvbWUgZGVmYXVs dHMgZm9yIEdOVSBsZCB3aXRoIHNoYXJlZCBsaWJyYXJ5IHN1cHBvcnQuIFRoZXNlCi0gICMgYXJl IHJlc2V0IGxhdGVyIGlmIHNoYXJlZCBsaWJyYXJpZXMgYXJlIG5vdCBzdXBwb3J0ZWQuIFB1dHRp bmcgdGhlbQotICAjIGhlcmUgYWxsb3dzIHRoZW0gdG8gYmUgb3ZlcnJpZGRlbiBpZiBuZWNlc3Nh cnkuCi0gICMgVW5saWtlIGxpYnRvb2wsIHdlIHVzZSAtcnBhdGggaGVyZSwgbm90IC0tcnBhdGgs IHNpbmNlIHRoZSBkb2N1bWVudGVkCi0gICMgb3B0aW9uIG9mIEdOVSBsZCBpcyBjYWxsZWQgLXJw YXRoLCBub3QgLS1ycGF0aC4KLSAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBh dGggJHt3bH0kbGliZGlyJwotICBjYXNlICIkaG9zdF9vcyIgaW4KLSAgICBhaXhbMy05XSopCi0g ICAgICAjIE9uIEFJWC9QUEMsIHRoZSBHTlUgbGlua2VyIGlzIHZlcnkgYnJva2VuCi0gICAgICBp ZiB0ZXN0ICIkaG9zdF9jcHUiICE9IGlhNjQ7IHRoZW4KLSAgICAgICAgbGRfc2hsaWJzPW5vCi0g ICAgICBmaQotICAgICAgOzsKLSAgICBhbWlnYW9zKikKLSAgICAgIGNhc2UgIiRob3N0X2NwdSIg aW4KLSAgICAgICAgcG93ZXJwYykKLSAgICAgICAgICA7OwotICAgICAgICBtNjhrKQotICAgICAg ICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicKLSAgICAgICAgICBoYXJk Y29kZV9taW51c19MPXllcwotICAgICAgICAgIDs7Ci0gICAgICBlc2FjCi0gICAgICA7OwotICAg IGJlb3MqKQotICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgZ3JlcCAnOiBzdXBwb3J0ZWQgdGFy Z2V0czouKiBlbGYnID4gL2Rldi9udWxsOyB0aGVuCi0gICAgICAgIDoKLSAgICAgIGVsc2UKLSAg ICAgICAgbGRfc2hsaWJzPW5vCi0gICAgICBmaQotICAgICAgOzsKLSAgICBjeWd3aW4qIHwgbWlu Z3cqIHwgcHczMiogfCBjZWdjYyopCi0gICAgICAjIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMg aXMgYWN0dWFsbHkgbWVhbmluZ2xlc3MsIGFzIHRoZXJlIGlzCi0gICAgICAjIG5vIHNlYXJjaCBw YXRoIGZvciBETExzLgotICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLUwkbGliZGly JwotICAgICAgaWYgJExEIC0taGVscCAyPiYxIHwgZ3JlcCAnYXV0by1pbXBvcnQnID4gL2Rldi9u dWxsOyB0aGVuCi0gICAgICAgIDoKLSAgICAgIGVsc2UKLSAgICAgICAgbGRfc2hsaWJzPW5vCi0g ICAgICBmaQotICAgICAgOzsKLSAgICBoYWlrdSopCi0gICAgICA7OwotICAgIGludGVyaXhbMy05 XSopCi0gICAgICBoYXJkY29kZV9kaXJlY3Q9bm8KLSAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFn X3NwZWM9JyR7d2x9LXJwYXRoLCRsaWJkaXInCi0gICAgICA7OwotICAgIGdudSogfCBsaW51eCog fCB0cGYqIHwgaypic2QqLWdudSB8IGtvcGVuc29sYXJpcyotZ251KQotICAgICAgaWYgJExEIC0t aGVscCAyPiYxIHwgZ3JlcCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rldi9udWxs OyB0aGVuCi0gICAgICAgIDoKLSAgICAgIGVsc2UKLSAgICAgICAgbGRfc2hsaWJzPW5vCi0gICAg ICBmaQotICAgICAgOzsKLSAgICBuZXRic2QqKQotICAgICAgOzsKLSAgICBzb2xhcmlzKikKLSAg ICAgIGlmICRMRCAtdiAyPiYxIHwgZ3JlcCAnQkZEIDJcLjgnID4gL2Rldi9udWxsOyB0aGVuCi0g ICAgICAgIGxkX3NobGlicz1ubwotICAgICAgZWxpZiAkTEQgLS1oZWxwIDI+JjEgfCBncmVwICc6 IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KLSAgICAgICAgOgot ICAgICAgZWxzZQotICAgICAgICBsZF9zaGxpYnM9bm8KLSAgICAgIGZpCi0gICAgICA7OwotICAg IHN5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVuVU5JWCopCi0g ICAgICBjYXNlIGAkTEQgLXYgMj4mMWAgaW4KLSAgICAgICAgKlwgWzAxXS4qIHwgKlwgMi5bMC05 XS4qIHwgKlwgMi4xWzAtNV0uKikKLSAgICAgICAgICBsZF9zaGxpYnM9bm8KLSAgICAgICAgICA7 OwotICAgICAgICAqKQotICAgICAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJzogc3Vw cG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgotICAgICAgICAgICAgaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nYHRlc3QgLXogIiRTQ09BQlNQQVRIIiAmJiBlY2hvICR7 d2x9LXJwYXRoLCRsaWJkaXJgJwotICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGxkX3NobGli cz1ubwotICAgICAgICAgIGZpCi0gICAgICAgICAgOzsKLSAgICAgIGVzYWMKLSAgICAgIDs7Ci0g ICAgc3Vub3M0KikKLSAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKLSAgICAgIDs7Ci0gICAgKikK LSAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJzogc3VwcG9ydGVkIHRhcmdldHM6Liog ZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgotICAgICAgICA6Ci0gICAgICBlbHNlCi0gICAgICAgIGxk X3NobGlicz1ubwotICAgICAgZmkKLSAgICAgIDs7Ci0gIGVzYWMKLSAgaWYgdGVzdCAiJGxkX3No bGlicyIgPSBubzsgdGhlbgotICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Ci0gIGZpCi1l bHNlCi0gIGNhc2UgIiRob3N0X29zIiBpbgotICAgIGFpeDMqKQotICAgICAgIyBOb3RlOiB0aGlz IGxpbmtlciBoYXJkY29kZXMgdGhlIGRpcmVjdG9yaWVzIGluIExJQlBBVEggaWYgdGhlcmUKLSAg ICAgICMgYXJlIG5vIGRpcmVjdG9yaWVzIHNwZWNpZmllZCBieSAtTC4KLSAgICAgIGhhcmRjb2Rl X21pbnVzX0w9eWVzCi0gICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotICAgICAgICAj IE5laXRoZXIgZGlyZWN0IGhhcmRjb2Rpbmcgbm9yIHN0YXRpYyBsaW5raW5nIGlzIHN1cHBvcnRl ZCB3aXRoIGEKLSAgICAgICAgIyBicm9rZW4gY29sbGVjdDIuCi0gICAgICAgIGhhcmRjb2RlX2Rp cmVjdD11bnN1cHBvcnRlZAotICAgICAgZmkKLSAgICAgIDs7Ci0gICAgYWl4WzQtOV0qKQotICAg ICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSAgICAgICAgIyBPbiBJQTY0LCB0 aGUgbGlua2VyIGRvZXMgcnVuIHRpbWUgbGlua2luZyBieSBkZWZhdWx0LCBzbyB3ZSBkb24ndAot ICAgICAgICAjIGhhdmUgdG8gZG8gYW55dGhpbmcgc3BlY2lhbC4KLSAgICAgICAgYWl4X3VzZV9y dW50aW1lbGlua2luZz1ubwotICAgICAgZWxzZQotICAgICAgICBhaXhfdXNlX3J1bnRpbWVsaW5r aW5nPW5vCi0gICAgICAgICMgVGVzdCBpZiB3ZSBhcmUgdHJ5aW5nIHRvIHVzZSBydW4gdGltZSBs aW5raW5nIG9yIG5vcm1hbAotICAgICAgICAjIEFJWCBzdHlsZSBsaW5raW5nLiBJZiAtYnJ0bCBp cyBzb21ld2hlcmUgaW4gTERGTEFHUywgd2UKLSAgICAgICAgIyBuZWVkIHRvIGRvIHJ1bnRpbWUg bGlua2luZy4KLSAgICAgICAgY2FzZSAkaG9zdF9vcyBpbiBhaXg0LlsyM118YWl4NC5bMjNdLip8 YWl4WzUtOV0qKQotICAgICAgICAgIGZvciBsZF9mbGFnIGluICRMREZMQUdTOyBkbwotICAgICAg ICAgICAgaWYgKHRlc3QgJGxkX2ZsYWcgPSAiLWJydGwiIHx8IHRlc3QgJGxkX2ZsYWcgPSAiLVds LC1icnRsIik7IHRoZW4KLSAgICAgICAgICAgICAgYWl4X3VzZV9ydW50aW1lbGlua2luZz15ZXMK LSAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgIGZpCi0gICAgICAgICAgZG9uZQotICAg ICAgICAgIDs7Ci0gICAgICAgIGVzYWMKLSAgICAgIGZpCi0gICAgICBoYXJkY29kZV9kaXJlY3Q9 eWVzCi0gICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPSc6JwotICAgICAgaWYgdGVzdCAi JEdDQyIgPSB5ZXM7IHRoZW4KLSAgICAgICAgY2FzZSAkaG9zdF9vcyBpbiBhaXg0LlswMTJdfGFp eDQuWzAxMl0uKikKLSAgICAgICAgICBjb2xsZWN0Mm5hbWU9YCR7Q0N9IC1wcmludC1wcm9nLW5h bWU9Y29sbGVjdDJgCi0gICAgICAgICAgaWYgdGVzdCAtZiAiJGNvbGxlY3QybmFtZSIgJiYgXAot ICAgICAgICAgICAgc3RyaW5ncyAiJGNvbGxlY3QybmFtZSIgfCBncmVwIHJlc29sdmVfbGliX25h bWUgPi9kZXYvbnVsbAotICAgICAgICAgIHRoZW4KLSAgICAgICAgICAgICMgV2UgaGF2ZSByZXdv cmtlZCBjb2xsZWN0MgotICAgICAgICAgICAgOgotICAgICAgICAgIGVsc2UKLSAgICAgICAgICAg ICMgV2UgaGF2ZSBvbGQgY29sbGVjdDIKLSAgICAgICAgICAgIGhhcmRjb2RlX2RpcmVjdD11bnN1 cHBvcnRlZAotICAgICAgICAgICAgaGFyZGNvZGVfbWludXNfTD15ZXMKLSAgICAgICAgICAgIGhh cmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicKLSAgICAgICAgICAgIGhhcmRjb2Rl X2xpYmRpcl9zZXBhcmF0b3I9Ci0gICAgICAgICAgZmkKLSAgICAgICAgICA7OwotICAgICAgICBl c2FjCi0gICAgICBmaQotICAgICAgIyBCZWdpbiBfTFRfQUNfU1lTX0xJQlBBVEhfQUlYLgotICAg ICAgZWNobyAnaW50IG1haW4gKCkgeyByZXR1cm4gMDsgfScgPiBjb25mdGVzdC5jCi0gICAgICAk e0NDfSAke0xERkxBR1N9IGNvbmZ0ZXN0LmMgLW8gY29uZnRlc3QKLSAgICAgIGFpeF9saWJwYXRo PWBkdW1wIC1IIGNvbmZ0ZXN0IDI+L2Rldi9udWxsIHwgc2VkIC1uIC1lICcvSW1wb3J0IEZpbGUg U3RyaW5ncy8sL14kLyB7IC9eMC8geyBzL14wICAqXCguKlwpJC9cMS87IHA7IH0KLX0nYAotICAg ICAgaWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbgotICAgICAgICBhaXhfbGlicGF0aD1g ZHVtcCAtSFg2NCBjb25mdGVzdCAyPi9kZXYvbnVsbCB8IHNlZCAtbiAtZSAnL0ltcG9ydCBGaWxl IFN0cmluZ3MvLC9eJC8geyAvXjAvIHsgcy9eMCAgKlwoLipcKSQvXDEvOyBwOyB9Ci19J2AKLSAg ICAgIGZpCi0gICAgICBpZiB0ZXN0IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVuCi0gICAgICAgIGFp eF9saWJwYXRoPSIvdXNyL2xpYjovbGliIgotICAgICAgZmkKLSAgICAgIHJtIC1mIGNvbmZ0ZXN0 LmMgY29uZnRlc3QKLSAgICAgICMgRW5kIF9MVF9BQ19TWVNfTElCUEFUSF9BSVguCi0gICAgICBp ZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KLSAgICAgICAgaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tYmxpYnBhdGg6JGxpYmRpcjonIiRhaXhfbGli cGF0aCIKLSAgICAgIGVsc2UKLSAgICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRo ZW4KLSAgICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1SICRsaWJkaXI6 L3Vzci9saWI6L2xpYicKLSAgICAgICAgZWxzZQotICAgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWM9JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4X2xpYnBhdGgiCi0gICAgICAg IGZpCi0gICAgICBmaQotICAgICAgOzsKLSAgICBhbWlnYW9zKikKLSAgICAgIGNhc2UgIiRob3N0 X2NwdSIgaW4KLSAgICAgICAgcG93ZXJwYykKLSAgICAgICAgICA7OwotICAgICAgICBtNjhrKQot ICAgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicKLSAgICAgICAg ICBoYXJkY29kZV9taW51c19MPXllcwotICAgICAgICAgIDs7Ci0gICAgICBlc2FjCi0gICAgICA7 OwotICAgIGJzZGlbNDVdKikKLSAgICAgIDs7Ci0gICAgY3lnd2luKiB8IG1pbmd3KiB8IHB3MzIq IHwgY2VnY2MqKQotICAgICAgIyBXaGVuIG5vdCB1c2luZyBnY2MsIHdlIGN1cnJlbnRseSBhc3N1 bWUgdGhhdCB3ZSBhcmUgdXNpbmcKLSAgICAgICMgTWljcm9zb2Z0IFZpc3VhbCBDKysuCi0gICAg ICAjIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMgaXMgYWN0dWFsbHkgbWVhbmluZ2xlc3MsIGFz IHRoZXJlIGlzCi0gICAgICAjIG5vIHNlYXJjaCBwYXRoIGZvciBETExzLgotICAgICAgaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYz0nICcKLSAgICAgIGxpYmV4dD1saWIKLSAgICAgIDs7Ci0gICAg ZGFyd2luKiB8IHJoYXBzb2R5KikKLSAgICAgIGhhcmRjb2RlX2RpcmVjdD1ubwotICAgICAgaWYg eyBjYXNlICRjY19iYXNlbmFtZSBpbiBpZm9ydCopIHRydWU7OyAqKSB0ZXN0ICIkR0NDIiA9IHll czs7IGVzYWM7IH07IHRoZW4KLSAgICAgICAgOgotICAgICAgZWxzZQotICAgICAgICBsZF9zaGxp YnM9bm8KLSAgICAgIGZpCi0gICAgICA7OwotICAgIGRndXgqKQotICAgICAgaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlYz0nLUwkbGliZGlyJwotICAgICAgOzsKLSAgICBmcmVlYnNkMi5bMDFdKikK LSAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKLSAgICAgIGhhcmRjb2RlX21pbnVzX0w9eWVzCi0g ICAgICA7OwotICAgIGZyZWVic2QqIHwgZHJhZ29uZmx5KiB8IG1pZG5pZ2h0YnNkKikKLSAgICAg IGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1SJGxpYmRpcicKLSAgICAgIGhhcmRjb2RlX2Rp cmVjdD15ZXMKLSAgICAgIDs7Ci0gICAgaHB1eDkqKQotICAgICAgaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYz0nJHt3bH0rYiAke3dsfSRsaWJkaXInCi0gICAgICBoYXJkY29kZV9saWJkaXJfc2Vw YXJhdG9yPToKLSAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKLSAgICAgICMgaGFyZGNvZGVfbWlu dXNfTDogTm90IHJlYWxseSBpbiB0aGUgc2VhcmNoIFBBVEgsCi0gICAgICAjIGJ1dCBhcyB0aGUg ZGVmYXVsdCBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KLSAgICAgIGhhcmRjb2RlX21pbnVzX0w9 eWVzCi0gICAgICA7OwotICAgIGhwdXgxMCopCi0gICAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQi ID0gbm87IHRoZW4KLSAgICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0rYiAk e3dsfSRsaWJkaXInCi0gICAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9OgotICAgICAg ICBoYXJkY29kZV9kaXJlY3Q9eWVzCi0gICAgICAgICMgaGFyZGNvZGVfbWludXNfTDogTm90IHJl YWxseSBpbiB0aGUgc2VhcmNoIFBBVEgsCi0gICAgICAgICMgYnV0IGFzIHRoZSBkZWZhdWx0IGxv Y2F0aW9uIG9mIHRoZSBsaWJyYXJ5LgotICAgICAgICBoYXJkY29kZV9taW51c19MPXllcwotICAg ICAgZmkKLSAgICAgIDs7Ci0gICAgaHB1eDExKikKLSAgICAgIGlmIHRlc3QgIiR3aXRoX2dudV9s ZCIgPSBubzsgdGhlbgotICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfSti ICR7d2x9JGxpYmRpcicKLSAgICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj06Ci0gICAg ICAgIGNhc2UgJGhvc3RfY3B1IGluCi0gICAgICAgICAgaHBwYSo2NCp8aWE2NCopCi0gICAgICAg ICAgICBoYXJkY29kZV9kaXJlY3Q9bm8KLSAgICAgICAgICAgIDs7Ci0gICAgICAgICAgKikKLSAg ICAgICAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKLSAgICAgICAgICAgICMgaGFyZGNvZGVfbWlu dXNfTDogTm90IHJlYWxseSBpbiB0aGUgc2VhcmNoIFBBVEgsCi0gICAgICAgICAgICAjIGJ1dCBh cyB0aGUgZGVmYXVsdCBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KLSAgICAgICAgICAgIGhhcmRj b2RlX21pbnVzX0w9eWVzCi0gICAgICAgICAgICA7OwotICAgICAgICBlc2FjCi0gICAgICBmaQot ICAgICAgOzsKLSAgICBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQotICAgICAgaGFyZGNv ZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwotICAgICAgaGFy ZGNvZGVfbGliZGlyX3NlcGFyYXRvcj06Ci0gICAgICA7OwotICAgIG5ldGJzZCopCi0gICAgICBo YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctUiRsaWJkaXInCi0gICAgICBoYXJkY29kZV9kaXJl Y3Q9eWVzCi0gICAgICA7OwotICAgIG5ld3NvczYpCi0gICAgICBoYXJkY29kZV9kaXJlY3Q9eWVz Ci0gICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1ycGF0aCAke3dsfSRsaWJk aXInCi0gICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPToKLSAgICAgIDs7Ci0gICAgKm50 byogfCAqcW54KikKLSAgICAgIDs7Ci0gICAgb3BlbmJzZCopCi0gICAgICBpZiB0ZXN0IC1mIC91 c3IvbGliZXhlYy9sZC5zbzsgdGhlbgotICAgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCi0gICAg ICAgIGlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAkQ0MgLUUgLSB8IGdyZXAgX19FTEZfX2Ai IHx8IHRlc3QgIiRob3N0X29zLSRob3N0X2NwdSIgPSAib3BlbmJzZDIuOC1wb3dlcnBjIjsgdGhl bgotICAgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoLCRsaWJk aXInCi0gICAgICAgIGVsc2UKLSAgICAgICAgICBjYXNlICIkaG9zdF9vcyIgaW4KLSAgICAgICAg ICAgIG9wZW5ic2RbMDFdLiogfCBvcGVuYnNkMi5bMC03XSB8IG9wZW5ic2QyLlswLTddLiopCi0g ICAgICAgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1SJGxpYmRpcicKLSAgICAg ICAgICAgICAgOzsKLSAgICAgICAgICAgICopCi0gICAgICAgICAgICAgIGhhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoLCRsaWJkaXInCi0gICAgICAgICAgICAgIDs7Ci0gICAg ICAgICAgZXNhYwotICAgICAgICBmaQotICAgICAgZWxzZQotICAgICAgICBsZF9zaGxpYnM9bm8K LSAgICAgIGZpCi0gICAgICA7OwotICAgIG9zMiopCi0gICAgICBoYXJkY29kZV9saWJkaXJfZmxh Z19zcGVjPSctTCRsaWJkaXInCi0gICAgICBoYXJkY29kZV9taW51c19MPXllcwotICAgICAgOzsK LSAgICBvc2YzKikKLSAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRo ICR7d2x9JGxpYmRpcicKLSAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9OgotICAgICAg OzsKLSAgICBvc2Y0KiB8IG9zZjUqKQotICAgICAgaWYgdGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4K LSAgICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBhdGggJHt3bH0kbGli ZGlyJwotICAgICAgZWxzZQotICAgICAgICAjIEJvdGggY2MgYW5kIGN4eCBjb21waWxlciBzdXBw b3J0IC1ycGF0aCBkaXJlY3RseQotICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSct cnBhdGggJGxpYmRpcicKLSAgICAgIGZpCi0gICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9y PToKLSAgICAgIDs7Ci0gICAgc29sYXJpcyopCi0gICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19z cGVjPSctUiRsaWJkaXInCi0gICAgICA7OwotICAgIHN1bm9zNCopCi0gICAgICBoYXJkY29kZV9s aWJkaXJfZmxhZ19zcGVjPSctTCRsaWJkaXInCi0gICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCi0g ICAgICBoYXJkY29kZV9taW51c19MPXllcwotICAgICAgOzsKLSAgICBzeXN2NCkKLSAgICAgIGNh c2UgJGhvc3RfdmVuZG9yIGluCi0gICAgICAgIHNuaSkKLSAgICAgICAgICBoYXJkY29kZV9kaXJl Y3Q9eWVzICMgaXMgdGhpcyByZWFsbHkgdHJ1ZT8/PwotICAgICAgICAgIDs7Ci0gICAgICAgIHNp ZW1lbnMpCi0gICAgICAgICAgaGFyZGNvZGVfZGlyZWN0PW5vCi0gICAgICAgICAgOzsKLSAgICAg ICAgbW90b3JvbGEpCi0gICAgICAgICAgaGFyZGNvZGVfZGlyZWN0PW5vICNNb3Rvcm9sYSBtYW51 YWwgc2F5cyB5ZXMsIGJ1dCBteSB0ZXN0cyBzYXkgdGhleSBsaWUKLSAgICAgICAgICA7OwotICAg ICAgZXNhYwotICAgICAgOzsKLSAgICBzeXN2NC4zKikKLSAgICAgIDs7Ci0gICAgc3lzdjQqTVAq KQotICAgICAgaWYgdGVzdCAtZCAvdXNyL25lYzsgdGhlbgotICAgICAgICBsZF9zaGxpYnM9eWVz Ci0gICAgICBmaQotICAgICAgOzsKLSAgICBzeXN2NCp1dzIqIHwgc3lzdjVPcGVuVU5JWCogfCBz eXN2NVVuaXhXYXJlNy5bMDFdLlsxMF0qIHwgdW5peHdhcmU3KiB8IHNjbzMuMnY1LjAuWzAyNF0q KQotICAgICAgOzsKLSAgICBzeXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqKQotICAgICAgaGFy ZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nYHRlc3QgLXogIiRTQ09BQlNQQVRIIiAmJiBlY2hvICR7 d2x9LVIsJGxpYmRpcmAnCi0gICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPSc6JwotICAg ICAgOzsKLSAgICB1dHM0KikKLSAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1MJGxp YmRpcicKLSAgICAgIDs7Ci0gICAgKikKLSAgICAgIGxkX3NobGlicz1ubwotICAgICAgOzsKLSAg ZXNhYwotZmkKLQotIyBDaGVjayBkeW5hbWljIGxpbmtlciBjaGFyYWN0ZXJpc3RpY3MKLSMgQ29k ZSB0YWtlbiBmcm9tIGxpYnRvb2wubTQncyBfTFRfU1lTX0RZTkFNSUNfTElOS0VSLgotIyBVbmxp a2UgbGlidG9vbC5tNCwgaGVyZSB3ZSBkb24ndCBjYXJlIGFib3V0IF9hbGxfIG5hbWVzIG9mIHRo ZSBsaWJyYXJ5LCBidXQKLSMgb25seSBhYm91dCB0aGUgb25lIHRoZSBsaW5rZXIgZmluZHMgd2hl biBwYXNzZWQgLWxOQU1FLiBUaGlzIGlzIHRoZSBsYXN0Ci0jIGVsZW1lbnQgb2YgbGlicmFyeV9u YW1lc19zcGVjIGluIGxpYnRvb2wubTQsIG9yIHBvc3NpYmx5IHR3byBvZiB0aGVtIGlmIHRoZQot IyBsaW5rZXIgaGFzIHNwZWNpYWwgc2VhcmNoIHJ1bGVzLgotbGlicmFyeV9uYW1lc19zcGVjPSAg ICAgICMgdGhlIGxhc3QgZWxlbWVudCBvZiBsaWJyYXJ5X25hbWVzX3NwZWMgaW4gbGlidG9vbC5t NAotbGlibmFtZV9zcGVjPSdsaWIkbmFtZScKLWNhc2UgIiRob3N0X29zIiBpbgotICBhaXgzKikK LSAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lLmEnCi0gICAgOzsKLSAgYWl4WzQtOV0q KQotICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUkc2hyZXh0JwotICAgIDs7Ci0gIGFt aWdhb3MqKQotICAgIGNhc2UgIiRob3N0X2NwdSIgaW4KLSAgICAgIHBvd2VycGMqKQotICAgICAg ICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHNocmV4dCcgOzsKLSAgICAgIG02OGspCi0g ICAgICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUuYScgOzsKLSAgICBlc2FjCi0gICAg OzsKLSAgYmVvcyopCi0gICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZSRzaHJleHQnCi0g ICAgOzsKLSAgYnNkaVs0NV0qKQotICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUkc2hy ZXh0JwotICAgIDs7Ci0gIGN5Z3dpbiogfCBtaW5ndyogfCBwdzMyKiB8IGNlZ2NjKikKLSAgICBz aHJleHQ9LmRsbAotICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUuZGxsLmEgJGxpYm5h bWUubGliJwotICAgIDs7Ci0gIGRhcndpbiogfCByaGFwc29keSopCi0gICAgc2hyZXh0PS5keWxp YgotICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUkc2hyZXh0JwotICAgIDs7Ci0gIGRn dXgqKQotICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUkc2hyZXh0JwotICAgIDs7Ci0g IGZyZWVic2RbMjNdLiopCi0gICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZSRzaHJleHQk dmVyc3VmZml4JwotICAgIDs7Ci0gIGZyZWVic2QqIHwgZHJhZ29uZmx5KiB8IG1pZG5pZ2h0YnNk KikKLSAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHNocmV4dCcKLSAgICA7OwotICBn bnUqKQotICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUkc2hyZXh0JwotICAgIDs7Ci0g IGhhaWt1KikKLSAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHNocmV4dCcKLSAgICA7 OwotICBocHV4OSogfCBocHV4MTAqIHwgaHB1eDExKikKLSAgICBjYXNlICRob3N0X2NwdSBpbgot ICAgICAgaWE2NCopCi0gICAgICAgIHNocmV4dD0uc28KLSAgICAgICAgOzsKLSAgICAgIGhwcGEq NjQqKQotICAgICAgICBzaHJleHQ9LnNsCi0gICAgICAgIDs7Ci0gICAgICAqKQotICAgICAgICBz aHJleHQ9LnNsCi0gICAgICAgIDs7Ci0gICAgZXNhYwotICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0n JGxpYm5hbWUkc2hyZXh0JwotICAgIDs7Ci0gIGludGVyaXhbMy05XSopCi0gICAgbGlicmFyeV9u YW1lc19zcGVjPSckbGlibmFtZSRzaHJleHQnCi0gICAgOzsKLSAgaXJpeDUqIHwgaXJpeDYqIHwg bm9uc3RvcHV4KikKLSAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHNocmV4dCcKLSAg ICBjYXNlICIkaG9zdF9vcyIgaW4KLSAgICAgIGlyaXg1KiB8IG5vbnN0b3B1eCopCi0gICAgICAg IGxpYnN1ZmY9IHNobGlic3VmZj0KLSAgICAgICAgOzsKLSAgICAgICopCi0gICAgICAgIGNhc2Ug JExEIGluCi0gICAgICAgICAgKi0zMnwqIi0zMiAifCotbWVsZjMyYnNtaXB8KiItbWVsZjMyYnNt aXAgIikgbGlic3VmZj0gc2hsaWJzdWZmPSA7OwotICAgICAgICAgICotbjMyfCoiLW4zMiAifCot bWVsZjMyYm1pcG4zMnwqIi1tZWxmMzJibWlwbjMyICIpIGxpYnN1ZmY9MzIgc2hsaWJzdWZmPU4z MiA7OwotICAgICAgICAgICotNjR8KiItNjQgInwqLW1lbGY2NGJtaXB8KiItbWVsZjY0Ym1pcCAi KSBsaWJzdWZmPTY0IHNobGlic3VmZj02NCA7OwotICAgICAgICAgICopIGxpYnN1ZmY9IHNobGli c3VmZj0gOzsKLSAgICAgICAgZXNhYwotICAgICAgICA7OwotICAgIGVzYWMKLSAgICA7OwotICBs aW51eCpvbGRsZCogfCBsaW51eCphb3V0KiB8IGxpbnV4KmNvZmYqKQotICAgIDs7Ci0gIGxpbnV4 KiB8IGsqYnNkKi1nbnUgfCBrb3BlbnNvbGFyaXMqLWdudSkKLSAgICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyRsaWJuYW1lJHNocmV4dCcKLSAgICA7OwotICBrbmV0YnNkKi1nbnUpCi0gICAgbGlicmFy eV9uYW1lc19zcGVjPSckbGlibmFtZSRzaHJleHQnCi0gICAgOzsKLSAgbmV0YnNkKikKLSAgICBs aWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHNocmV4dCcKLSAgICA7OwotICBuZXdzb3M2KQot ICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUkc2hyZXh0JwotICAgIDs7Ci0gICpudG8q IHwgKnFueCopCi0gICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZSRzaHJleHQnCi0gICAg OzsKLSAgb3BlbmJzZCopCi0gICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZSRzaHJleHQk dmVyc3VmZml4JwotICAgIDs7Ci0gIG9zMiopCi0gICAgbGlibmFtZV9zcGVjPSckbmFtZScKLSAg ICBzaHJleHQ9LmRsbAotICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUuYScKLSAgICA7 OwotICBvc2YzKiB8IG9zZjQqIHwgb3NmNSopCi0gICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGli bmFtZSRzaHJleHQnCi0gICAgOzsKLSAgcmRvcyopCi0gICAgOzsKLSAgc29sYXJpcyopCi0gICAg bGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZSRzaHJleHQnCi0gICAgOzsKLSAgc3Vub3M0KikK LSAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHNocmV4dCR2ZXJzdWZmaXgnCi0gICAg OzsKLSAgc3lzdjQgfCBzeXN2NC4zKikKLSAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1l JHNocmV4dCcKLSAgICA7OwotICBzeXN2NCpNUCopCi0gICAgbGlicmFyeV9uYW1lc19zcGVjPSck bGlibmFtZSRzaHJleHQnCi0gICAgOzsKLSAgc3lzdjUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8 IHVuaXh3YXJlKiB8IE9wZW5VTklYKiB8IHN5c3Y0KnV3MiopCi0gICAgbGlicmFyeV9uYW1lc19z cGVjPSckbGlibmFtZSRzaHJleHQnCi0gICAgOzsKLSAgdHBmKikKLSAgICBsaWJyYXJ5X25hbWVz X3NwZWM9JyRsaWJuYW1lJHNocmV4dCcKLSAgICA7OwotICB1dHM0KikKLSAgICBsaWJyYXJ5X25h bWVzX3NwZWM9JyRsaWJuYW1lJHNocmV4dCcKLSAgICA7OwotZXNhYwotCi1zZWRfcXVvdGVfc3Vi c3Q9J3MvXChbImAkXFxdXCkvXFxcMS9nJwotZXNjYXBlZF93bD1gZWNobyAiWCR3bCIgfCBzZWQg LWUgJ3MvXlgvLycgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAotc2hsaWJleHQ9YGVjaG8gIiRzaHJl eHQiIHwgc2VkIC1lICdzLF5cLiwsJ2AKLWVzY2FwZWRfbGlibmFtZV9zcGVjPWBlY2hvICJYJGxp Ym5hbWVfc3BlYyIgfCBzZWQgLWUgJ3MvXlgvLycgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAotZXNj YXBlZF9saWJyYXJ5X25hbWVzX3NwZWM9YGVjaG8gIlgkbGlicmFyeV9uYW1lc19zcGVjIiB8IHNl ZCAtZSAncy9eWC8vJyAtZSAiJHNlZF9xdW90ZV9zdWJzdCJgCi1lc2NhcGVkX2hhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWM9YGVjaG8gIlgkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyIgfCBzZWQg LWUgJ3MvXlgvLycgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAotCi1MQ19BTEw9QyBzZWQgLWUgJ3Mv XlwoW2EtekEtWjAtOV9dKlwpPS9hY2xfY3ZfXDE9LycgPDxFT0YKLQotIyBIb3cgdG8gcGFzcyBh IGxpbmtlciBmbGFnIHRocm91Z2ggdGhlIGNvbXBpbGVyLgotd2w9IiRlc2NhcGVkX3dsIgotCi0j IFN0YXRpYyBsaWJyYXJ5IHN1ZmZpeCAobm9ybWFsbHkgImEiKS4KLWxpYmV4dD0iJGxpYmV4dCIK LQotIyBTaGFyZWQgbGlicmFyeSBzdWZmaXggKG5vcm1hbGx5ICJzbyIpLgotc2hsaWJleHQ9IiRz aGxpYmV4dCIKLQotIyBGb3JtYXQgb2YgbGlicmFyeSBuYW1lIHByZWZpeC4KLWxpYm5hbWVfc3Bl Yz0iJGVzY2FwZWRfbGlibmFtZV9zcGVjIgotCi0jIExpYnJhcnkgbmFtZXMgdGhhdCB0aGUgbGlu a2VyIGZpbmRzIHdoZW4gcGFzc2VkIC1sTkFNRS4KLWxpYnJhcnlfbmFtZXNfc3BlYz0iJGVzY2Fw ZWRfbGlicmFyeV9uYW1lc19zcGVjIgotCi0jIEZsYWcgdG8gaGFyZGNvZGUgXCRsaWJkaXIgaW50 byBhIGJpbmFyeSBkdXJpbmcgbGlua2luZy4KLSMgVGhpcyBtdXN0IHdvcmsgZXZlbiBpZiBcJGxp YmRpciBkb2VzIG5vdCBleGlzdC4KLWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9IiRlc2NhcGVk X2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWMiCi0KLSMgV2hldGhlciB3ZSBuZWVkIGEgc2luZ2xl IC1ycGF0aCBmbGFnIHdpdGggYSBzZXBhcmF0ZWQgYXJndW1lbnQuCi1oYXJkY29kZV9saWJkaXJf c2VwYXJhdG9yPSIkaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvciIKLQotIyBTZXQgdG8geWVzIGlm IHVzaW5nIERJUi9saWJOQU1FLnNvIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIgaW50byB0 aGUKLSMgcmVzdWx0aW5nIGJpbmFyeS4KLWhhcmRjb2RlX2RpcmVjdD0iJGhhcmRjb2RlX2RpcmVj dCIKLQotIyBTZXQgdG8geWVzIGlmIHVzaW5nIHRoZSAtTERJUiBmbGFnIGR1cmluZyBsaW5raW5n IGhhcmRjb2RlcyBESVIgaW50byB0aGUKLSMgcmVzdWx0aW5nIGJpbmFyeS4KLWhhcmRjb2RlX21p bnVzX0w9IiRoYXJkY29kZV9taW51c19MIgotCi1FT0YKZGlmZiAtLWdpdCBhL2NvbmZpZy5ycGF0 aCBiL2NvbmZpZy5ycGF0aApkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMzVmOTU5Yjg3 Li4wMDAwMDAwMDAKLS0tIGEvY29uZmlnLnJwYXRoCisrKyAvZGV2L251bGwKQEAgLTEsNjY2ICsw LDAgQEAKLSMhIC9iaW4vc2gKLSMgT3V0cHV0IGEgc3lzdGVtIGRlcGVuZGVudCBzZXQgb2YgdmFy aWFibGVzLCBkZXNjcmliaW5nIGhvdyB0byBzZXQgdGhlCi0jIHJ1biB0aW1lIHNlYXJjaCBwYXRo IG9mIHNoYXJlZCBsaWJyYXJpZXMgaW4gYW4gZXhlY3V0YWJsZS4KLSMKLSMgICBDb3B5cmlnaHQg MTk5Ni0yMDA4IEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLgotIyAgIFRha2VuIGZyb20g R05VIGxpYnRvb2wsIDIwMDEKLSMgICBPcmlnaW5hbGx5IGJ5IEdvcmRvbiBNYXR6aWdrZWl0IDxn b3JkQGdudS5haS5taXQuZWR1PiwgMTk5NgotIwotIyAgIFRoaXMgZmlsZSBpcyBmcmVlIHNvZnR3 YXJlOyB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uIGdpdmVzCi0jICAgdW5saW1pdGVkIHBl cm1pc3Npb24gdG8gY29weSBhbmQvb3IgZGlzdHJpYnV0ZSBpdCwgd2l0aCBvciB3aXRob3V0Ci0j ICAgbW9kaWZpY2F0aW9ucywgYXMgbG9uZyBhcyB0aGlzIG5vdGljZSBpcyBwcmVzZXJ2ZWQuCi0j Ci0jIFRoZSBmaXJzdCBhcmd1bWVudCBwYXNzZWQgdG8gdGhpcyBmaWxlIGlzIHRoZSBjYW5vbmlj YWwgaG9zdCBzcGVjaWZpY2F0aW9uLAotIyAgICBDUFVfVFlQRS1NQU5VRkFDVFVSRVItT1BFUkFU SU5HX1NZU1RFTQotIyBvcgotIyAgICBDUFVfVFlQRS1NQU5VRkFDVFVSRVItS0VSTkVMLU9QRVJB VElOR19TWVNURU0KLSMgVGhlIGVudmlyb25tZW50IHZhcmlhYmxlcyBDQywgR0NDLCBMREZMQUdT LCBMRCwgd2l0aF9nbnVfbGQKLSMgc2hvdWxkIGJlIHNldCBieSB0aGUgY2FsbGVyLgotIwotIyBU aGUgc2V0IG9mIGRlZmluZWQgdmFyaWFibGVzIGlzIGF0IHRoZSBlbmQgb2YgdGhpcyBzY3JpcHQu Ci0KLSMgS25vd24gbGltaXRhdGlvbnM6Ci0jIC0gT24gSVJJWCA2LjUgd2l0aCBDQz0iY2MiLCB0 aGUgcnVuIHRpbWUgc2VhcmNoIHBhdGNoIG11c3Qgbm90IGJlIGxvbmdlcgotIyAgIHRoYW4gMjU2 IGJ5dGVzLCBvdGhlcndpc2UgdGhlIGNvbXBpbGVyIGRyaXZlciB3aWxsIGR1bXAgY29yZS4gVGhl IG9ubHkKLSMgICBrbm93biB3b3JrYXJvdW5kIGlzIHRvIGNob29zZSBzaG9ydGVyIGRpcmVjdG9y eSBuYW1lcyBmb3IgdGhlIGJ1aWxkCi0jICAgZGlyZWN0b3J5IGFuZC9vciB0aGUgaW5zdGFsbGF0 aW9uIGRpcmVjdG9yeS4KLQotIyBBbGwga25vd24gbGlua2VycyByZXF1aXJlIGEgYC5hJyBhcmNo aXZlIGZvciBzdGF0aWMgbGlua2luZyAoZXhjZXB0IE1TVkMsCi0jIHdoaWNoIG5lZWRzICcubGli JykuCi1saWJleHQ9YQotc2hyZXh0PS5zbwotCi1ob3N0PSIkMSIKLWhvc3RfY3B1PWBlY2hvICIk aG9zdCIgfCBzZWQgJ3MvXlwoW14tXSpcKS1cKFteLV0qXCktXCguKlwpJC9cMS8nYAotaG9zdF92 ZW5kb3I9YGVjaG8gIiRob3N0IiB8IHNlZCAncy9eXChbXi1dKlwpLVwoW14tXSpcKS1cKC4qXCkk L1wyLydgCi1ob3N0X29zPWBlY2hvICIkaG9zdCIgfCBzZWQgJ3MvXlwoW14tXSpcKS1cKFteLV0q XCktXCguKlwpJC9cMy8nYAotCi0jIENvZGUgdGFrZW4gZnJvbSBsaWJ0b29sLm00J3MgX0xUX0ND X0JBU0VOQU1FLgotCi1mb3IgY2NfdGVtcCBpbiAkQ0MiIjsgZG8KLSAgY2FzZSAkY2NfdGVtcCBp bgotICAgIGNvbXBpbGUgfCAqW1xcL11jb21waWxlIHwgY2NhY2hlIHwgKltcXC9dY2NhY2hlICkg OzsKLSAgICBkaXN0Y2MgfCAqW1xcL11kaXN0Y2MgfCBwdXJpZnkgfCAqW1xcL11wdXJpZnkgKSA7 OwotICAgIFwtKikgOzsKLSAgICAqKSBicmVhazs7Ci0gIGVzYWMKLWRvbmUKLWNjX2Jhc2VuYW1l PWBlY2hvICIkY2NfdGVtcCIgfCBzZWQgLWUgJ3MlXi4qLyUlJ2AKLQotIyBDb2RlIHRha2VuIGZy b20gbGlidG9vbC5tNCdzIEFDX0xJQlRPT0xfUFJPR19DT01QSUxFUl9QSUMuCi0KLXdsPQotaWYg dGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSAgd2w9Jy1XbCwnCi1lbHNlCi0gIGNhc2UgIiRob3N0 X29zIiBpbgotICAgIGFpeCopCi0gICAgICB3bD0nLVdsLCcKLSAgICAgIDs7Ci0gICAgZGFyd2lu KikKLSAgICAgIGNhc2UgJGNjX2Jhc2VuYW1lIGluCi0gICAgICAgIHhsYyopCi0gICAgICAgICAg d2w9Jy1XbCwnCi0gICAgICAgICAgOzsKLSAgICAgIGVzYWMKLSAgICAgIDs7Ci0gICAgbWluZ3cq IHwgY3lnd2luKiB8IHB3MzIqIHwgb3MyKikKLSAgICAgIDs7Ci0gICAgaHB1eDkqIHwgaHB1eDEw KiB8IGhwdXgxMSopCi0gICAgICB3bD0nLVdsLCcKLSAgICAgIDs7Ci0gICAgaXJpeDUqIHwgaXJp eDYqIHwgbm9uc3RvcHV4KikKLSAgICAgIHdsPSctV2wsJwotICAgICAgOzsKLSAgICBuZXdzb3M2 KQotICAgICAgOzsKLSAgICBsaW51eCogfCBrKmJzZCotZ251KQotICAgICAgY2FzZSAkY2NfYmFz ZW5hbWUgaW4KLSAgICAgICAgaWNjKiB8IGVjYyopCi0gICAgICAgICAgd2w9Jy1XbCwnCi0gICAg ICAgICAgOzsKLSAgICAgICAgcGdjYyB8IHBnZjc3IHwgcGdmOTApCi0gICAgICAgICAgd2w9Jy1X bCwnCi0gICAgICAgICAgOzsKLSAgICAgICAgY2NjKikKLSAgICAgICAgICB3bD0nLVdsLCcKLSAg ICAgICAgICA7OwotICAgICAgICBjb21vKQotICAgICAgICAgIHdsPSctbG9wdD0nCi0gICAgICAg ICAgOzsKLSAgICAgICAgKikKLSAgICAgICAgICBjYXNlIGAkQ0MgLVYgMj4mMSB8IHNlZCA1cWAg aW4KLSAgICAgICAgICAgICpTdW5cIEMqKQotICAgICAgICAgICAgICB3bD0nLVdsLCcKLSAgICAg ICAgICAgICAgOzsKLSAgICAgICAgICBlc2FjCi0gICAgICAgICAgOzsKLSAgICAgIGVzYWMKLSAg ICAgIDs7Ci0gICAgb3NmMyogfCBvc2Y0KiB8IG9zZjUqKQotICAgICAgd2w9Jy1XbCwnCi0gICAg ICA7OwotICAgIHJkb3MqKQotICAgICAgOzsKLSAgICBzb2xhcmlzKikKLSAgICAgIHdsPSctV2ws JwotICAgICAgOzsKLSAgICBzdW5vczQqKQotICAgICAgd2w9Jy1Rb3B0aW9uIGxkICcKLSAgICAg IDs7Ci0gICAgc3lzdjQgfCBzeXN2NC4ydXcyKiB8IHN5c3Y0LjMqKQotICAgICAgd2w9Jy1XbCwn Ci0gICAgICA7OwotICAgIHN5c3Y0Kk1QKikKLSAgICAgIDs7Ci0gICAgc3lzdjUqIHwgdW5peHdh cmUqIHwgc2NvMy4ydjUqIHwgc2NvNXY2KiB8IE9wZW5VTklYKikKLSAgICAgIHdsPSctV2wsJwot ICAgICAgOzsKLSAgICB1bmljb3MqKQotICAgICAgd2w9Jy1XbCwnCi0gICAgICA7OwotICAgIHV0 czQqKQotICAgICAgOzsKLSAgZXNhYwotZmkKLQotIyBDb2RlIHRha2VuIGZyb20gbGlidG9vbC5t NCdzIEFDX0xJQlRPT0xfUFJPR19MRF9TSExJQlMuCi0KLWhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWM9Ci1oYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPQotaGFyZGNvZGVfZGlyZWN0PW5vCi1oYXJk Y29kZV9taW51c19MPW5vCi0KLWNhc2UgIiRob3N0X29zIiBpbgotICBjeWd3aW4qIHwgbWluZ3cq IHwgcHczMiopCi0gICAgIyBGSVhNRTogdGhlIE1TVkMrKyBwb3J0IGhhc24ndCBiZWVuIHRlc3Rl ZCBpbiBhIGxvb29vbmcgdGltZQotICAgICMgV2hlbiBub3QgdXNpbmcgZ2NjLCB3ZSBjdXJyZW50 bHkgYXNzdW1lIHRoYXQgd2UgYXJlIHVzaW5nCi0gICAgIyBNaWNyb3NvZnQgVmlzdWFsIEMrKy4K LSAgICBpZiB0ZXN0ICIkR0NDIiAhPSB5ZXM7IHRoZW4KLSAgICAgIHdpdGhfZ251X2xkPW5vCi0g ICAgZmkKLSAgICA7OwotICBpbnRlcml4KikKLSAgICAjIHdlIGp1c3QgaG9wZS9hc3N1bWUgdGhp cyBpcyBnY2MgYW5kIG5vdCBjODkgKD0gTVNWQysrKQotICAgIHdpdGhfZ251X2xkPXllcwotICAg IDs7Ci0gIG9wZW5ic2QqKQotICAgIHdpdGhfZ251X2xkPW5vCi0gICAgOzsKLWVzYWMKLQotbGRf c2hsaWJzPXllcwotaWYgdGVzdCAiJHdpdGhfZ251X2xkIiA9IHllczsgdGhlbgotICAjIFNldCBz b21lIGRlZmF1bHRzIGZvciBHTlUgbGQgd2l0aCBzaGFyZWQgbGlicmFyeSBzdXBwb3J0LiBUaGVz ZQotICAjIGFyZSByZXNldCBsYXRlciBpZiBzaGFyZWQgbGlicmFyaWVzIGFyZSBub3Qgc3VwcG9y dGVkLiBQdXR0aW5nIHRoZW0KLSAgIyBoZXJlIGFsbG93cyB0aGVtIHRvIGJlIG92ZXJyaWRkZW4g aWYgbmVjZXNzYXJ5LgotICAjIFVubGlrZSBsaWJ0b29sLCB3ZSB1c2UgLXJwYXRoIGhlcmUsIG5v dCAtLXJwYXRoLCBzaW5jZSB0aGUgZG9jdW1lbnRlZAotICAjIG9wdGlvbiBvZiBHTlUgbGQgaXMg Y2FsbGVkIC1ycGF0aCwgbm90IC0tcnBhdGguCi0gIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9 JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKLSAgY2FzZSAiJGhvc3Rfb3MiIGluCi0gICAgYWl4 WzMtOV0qKQotICAgICAgIyBPbiBBSVgvUFBDLCB0aGUgR05VIGxpbmtlciBpcyB2ZXJ5IGJyb2tl bgotICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiAhPSBpYTY0OyB0aGVuCi0gICAgICAgIGxkX3No bGlicz1ubwotICAgICAgZmkKLSAgICAgIDs7Ci0gICAgYW1pZ2FvcyopCi0gICAgICBoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjPSctTCRsaWJkaXInCi0gICAgICBoYXJkY29kZV9taW51c19MPXll cwotICAgICAgIyBTYW11ZWwgQS4gRmFsdm8gSUkgPGtjNXRqYUBkb2xwaGluLm9wZW5wcm9qZWN0 cy5uZXQ+IHJlcG9ydHMKLSAgICAgICMgdGhhdCB0aGUgc2VtYW50aWNzIG9mIGR5bmFtaWMgbGli cmFyaWVzIG9uIEFtaWdhT1MsIGF0IGxlYXN0IHVwCi0gICAgICAjIHRvIHZlcnNpb24gNCwgaXMg dG8gc2hhcmUgZGF0YSBhbW9uZyBtdWx0aXBsZSBwcm9ncmFtcyBsaW5rZWQKLSAgICAgICMgd2l0 aCB0aGUgc2FtZSBkeW5hbWljIGxpYnJhcnkuICBTaW5jZSB0aGlzIGRvZXNuJ3QgbWF0Y2ggdGhl Ci0gICAgICAjIGJlaGF2aW9yIG9mIHNoYXJlZCBsaWJyYXJpZXMgb24gb3RoZXIgcGxhdGZvcm1z LCB3ZSBjYW5ub3QgdXNlCi0gICAgICAjIHRoZW0uCi0gICAgICBsZF9zaGxpYnM9bm8KLSAgICAg IDs7Ci0gICAgYmVvcyopCi0gICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCBncmVwICc6IHN1cHBv cnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KLSAgICAgICAgOgotICAgICAg ZWxzZQotICAgICAgICBsZF9zaGxpYnM9bm8KLSAgICAgIGZpCi0gICAgICA7OwotICAgIGN5Z3dp biogfCBtaW5ndyogfCBwdzMyKikKLSAgICAgICMgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyBp cyBhY3R1YWxseSBtZWFuaW5nbGVzcywgYXMgdGhlcmUgaXMKLSAgICAgICMgbm8gc2VhcmNoIHBh dGggZm9yIERMTHMuCi0gICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctTCRsaWJkaXIn Ci0gICAgICBpZiAkTEQgLS1oZWxwIDI+JjEgfCBncmVwICdhdXRvLWltcG9ydCcgPiAvZGV2L251 bGw7IHRoZW4KLSAgICAgICAgOgotICAgICAgZWxzZQotICAgICAgICBsZF9zaGxpYnM9bm8KLSAg ICAgIGZpCi0gICAgICA7OwotICAgIGludGVyaXhbMy05XSopCi0gICAgICBoYXJkY29kZV9kaXJl Y3Q9bm8KLSAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoLCRsaWJk aXInCi0gICAgICA7OwotICAgIGdudSogfCBsaW51eCogfCBrKmJzZCotZ251KQotICAgICAgaWYg JExEIC0taGVscCAyPiYxIHwgZ3JlcCAnOiBzdXBwb3J0ZWQgdGFyZ2V0czouKiBlbGYnID4gL2Rl di9udWxsOyB0aGVuCi0gICAgICAgIDoKLSAgICAgIGVsc2UKLSAgICAgICAgbGRfc2hsaWJzPW5v Ci0gICAgICBmaQotICAgICAgOzsKLSAgICBuZXRic2QqKQotICAgICAgOzsKLSAgICBzb2xhcmlz KikKLSAgICAgIGlmICRMRCAtdiAyPiYxIHwgZ3JlcCAnQkZEIDJcLjgnID4gL2Rldi9udWxsOyB0 aGVuCi0gICAgICAgIGxkX3NobGlicz1ubwotICAgICAgZWxpZiAkTEQgLS1oZWxwIDI+JjEgfCBn cmVwICc6IHN1cHBvcnRlZCB0YXJnZXRzOi4qIGVsZicgPiAvZGV2L251bGw7IHRoZW4KLSAgICAg ICAgOgotICAgICAgZWxzZQotICAgICAgICBsZF9zaGxpYnM9bm8KLSAgICAgIGZpCi0gICAgICA7 OwotICAgIHN5c3Y1KiB8IHNjbzMuMnY1KiB8IHNjbzV2NiogfCB1bml4d2FyZSogfCBPcGVuVU5J WCopCi0gICAgICBjYXNlIGAkTEQgLXYgMj4mMWAgaW4KLSAgICAgICAgKlwgWzAxXS4qIHwgKlwg Mi5bMC05XS4qIHwgKlwgMi4xWzAtNV0uKikKLSAgICAgICAgICBsZF9zaGxpYnM9bm8KLSAgICAg ICAgICA7OwotICAgICAgICAqKQotICAgICAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAg Jzogc3VwcG9ydGVkIHRhcmdldHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgotICAgICAgICAg ICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nYHRlc3QgLXogIiRTQ09BQlNQQVRIIiAmJiBl Y2hvICR7d2x9LXJwYXRoLCRsaWJkaXJgJwotICAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGxk X3NobGlicz1ubwotICAgICAgICAgIGZpCi0gICAgICAgICAgOzsKLSAgICAgIGVzYWMKLSAgICAg IDs7Ci0gICAgc3Vub3M0KikKLSAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKLSAgICAgIDs7Ci0g ICAgKikKLSAgICAgIGlmICRMRCAtLWhlbHAgMj4mMSB8IGdyZXAgJzogc3VwcG9ydGVkIHRhcmdl dHM6LiogZWxmJyA+IC9kZXYvbnVsbDsgdGhlbgotICAgICAgICA6Ci0gICAgICBlbHNlCi0gICAg ICAgIGxkX3NobGlicz1ubwotICAgICAgZmkKLSAgICAgIDs7Ci0gIGVzYWMKLSAgaWYgdGVzdCAi JGxkX3NobGlicyIgPSBubzsgdGhlbgotICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Ci0g IGZpCi1lbHNlCi0gIGNhc2UgIiRob3N0X29zIiBpbgotICAgIGFpeDMqKQotICAgICAgIyBOb3Rl OiB0aGlzIGxpbmtlciBoYXJkY29kZXMgdGhlIGRpcmVjdG9yaWVzIGluIExJQlBBVEggaWYgdGhl cmUKLSAgICAgICMgYXJlIG5vIGRpcmVjdG9yaWVzIHNwZWNpZmllZCBieSAtTC4KLSAgICAgIGhh cmRjb2RlX21pbnVzX0w9eWVzCi0gICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllczsgdGhlbgotICAg ICAgICAjIE5laXRoZXIgZGlyZWN0IGhhcmRjb2Rpbmcgbm9yIHN0YXRpYyBsaW5raW5nIGlzIHN1 cHBvcnRlZCB3aXRoIGEKLSAgICAgICAgIyBicm9rZW4gY29sbGVjdDIuCi0gICAgICAgIGhhcmRj b2RlX2RpcmVjdD11bnN1cHBvcnRlZAotICAgICAgZmkKLSAgICAgIDs7Ci0gICAgYWl4WzQtOV0q KQotICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlhNjQ7IHRoZW4KLSAgICAgICAgIyBPbiBJ QTY0LCB0aGUgbGlua2VyIGRvZXMgcnVuIHRpbWUgbGlua2luZyBieSBkZWZhdWx0LCBzbyB3ZSBk b24ndAotICAgICAgICAjIGhhdmUgdG8gZG8gYW55dGhpbmcgc3BlY2lhbC4KLSAgICAgICAgYWl4 X3VzZV9ydW50aW1lbGlua2luZz1ubwotICAgICAgZWxzZQotICAgICAgICBhaXhfdXNlX3J1bnRp bWVsaW5raW5nPW5vCi0gICAgICAgICMgVGVzdCBpZiB3ZSBhcmUgdHJ5aW5nIHRvIHVzZSBydW4g dGltZSBsaW5raW5nIG9yIG5vcm1hbAotICAgICAgICAjIEFJWCBzdHlsZSBsaW5raW5nLiBJZiAt YnJ0bCBpcyBzb21ld2hlcmUgaW4gTERGTEFHUywgd2UKLSAgICAgICAgIyBuZWVkIHRvIGRvIHJ1 bnRpbWUgbGlua2luZy4KLSAgICAgICAgY2FzZSAkaG9zdF9vcyBpbiBhaXg0LlsyM118YWl4NC5b MjNdLip8YWl4WzUtOV0qKQotICAgICAgICAgIGZvciBsZF9mbGFnIGluICRMREZMQUdTOyBkbwot ICAgICAgICAgICAgaWYgKHRlc3QgJGxkX2ZsYWcgPSAiLWJydGwiIHx8IHRlc3QgJGxkX2ZsYWcg PSAiLVdsLC1icnRsIik7IHRoZW4KLSAgICAgICAgICAgICAgYWl4X3VzZV9ydW50aW1lbGlua2lu Zz15ZXMKLSAgICAgICAgICAgICAgYnJlYWsKLSAgICAgICAgICAgIGZpCi0gICAgICAgICAgZG9u ZQotICAgICAgICAgIDs7Ci0gICAgICAgIGVzYWMKLSAgICAgIGZpCi0gICAgICBoYXJkY29kZV9k aXJlY3Q9eWVzCi0gICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPSc6JwotICAgICAgaWYg dGVzdCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSAgICAgICAgY2FzZSAkaG9zdF9vcyBpbiBhaXg0Llsw MTJdfGFpeDQuWzAxMl0uKikKLSAgICAgICAgICBjb2xsZWN0Mm5hbWU9YCR7Q0N9IC1wcmludC1w cm9nLW5hbWU9Y29sbGVjdDJgCi0gICAgICAgICAgaWYgdGVzdCAtZiAiJGNvbGxlY3QybmFtZSIg JiYgXAotICAgICAgICAgICAgc3RyaW5ncyAiJGNvbGxlY3QybmFtZSIgfCBncmVwIHJlc29sdmVf bGliX25hbWUgPi9kZXYvbnVsbAotICAgICAgICAgIHRoZW4KLSAgICAgICAgICAgICMgV2UgaGF2 ZSByZXdvcmtlZCBjb2xsZWN0MgotICAgICAgICAgICAgOgotICAgICAgICAgIGVsc2UKLSAgICAg ICAgICAgICMgV2UgaGF2ZSBvbGQgY29sbGVjdDIKLSAgICAgICAgICAgIGhhcmRjb2RlX2RpcmVj dD11bnN1cHBvcnRlZAotICAgICAgICAgICAgaGFyZGNvZGVfbWludXNfTD15ZXMKLSAgICAgICAg ICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicKLSAgICAgICAgICAgIGhh cmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9Ci0gICAgICAgICAgZmkKLSAgICAgICAgICA7OwotICAg ICAgICBlc2FjCi0gICAgICBmaQotICAgICAgIyBCZWdpbiBfTFRfQUNfU1lTX0xJQlBBVEhfQUlY LgotICAgICAgZWNobyAnaW50IG1haW4gKCkgeyByZXR1cm4gMDsgfScgPiBjb25mdGVzdC5jCi0g ICAgICAke0NDfSAke0xERkxBR1N9IGNvbmZ0ZXN0LmMgLW8gY29uZnRlc3QKLSAgICAgIGFpeF9s aWJwYXRoPWBkdW1wIC1IIGNvbmZ0ZXN0IDI+L2Rldi9udWxsIHwgc2VkIC1uIC1lICcvSW1wb3J0 IEZpbGUgU3RyaW5ncy8sL14kLyB7IC9eMC8geyBzL14wICAqXCguKlwpJC9cMS87IHA7IH0KLX0n YAotICAgICAgaWYgdGVzdCAteiAiJGFpeF9saWJwYXRoIjsgdGhlbgotICAgICAgICBhaXhfbGli cGF0aD1gZHVtcCAtSFg2NCBjb25mdGVzdCAyPi9kZXYvbnVsbCB8IHNlZCAtbiAtZSAnL0ltcG9y dCBGaWxlIFN0cmluZ3MvLC9eJC8geyAvXjAvIHsgcy9eMCAgKlwoLipcKSQvXDEvOyBwOyB9Ci19 J2AKLSAgICAgIGZpCi0gICAgICBpZiB0ZXN0IC16ICIkYWl4X2xpYnBhdGgiOyB0aGVuCi0gICAg ICAgIGFpeF9saWJwYXRoPSIvdXNyL2xpYjovbGliIgotICAgICAgZmkKLSAgICAgIHJtIC1mIGNv bmZ0ZXN0LmMgY29uZnRlc3QKLSAgICAgICMgRW5kIF9MVF9BQ19TWVNfTElCUEFUSF9BSVguCi0g ICAgICBpZiB0ZXN0ICIkYWl4X3VzZV9ydW50aW1lbGlua2luZyIgPSB5ZXM7IHRoZW4KLSAgICAg ICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0tYmxpYnBhdGg6JGxpYmRpcjonIiRh aXhfbGlicGF0aCIKLSAgICAgIGVsc2UKLSAgICAgICAgaWYgdGVzdCAiJGhvc3RfY3B1IiA9IGlh NjQ7IHRoZW4KLSAgICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1SICRs aWJkaXI6L3Vzci9saWI6L2xpYicKLSAgICAgICAgZWxzZQotICAgICAgICAgIGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWM9JyR7d2x9LWJsaWJwYXRoOiRsaWJkaXI6JyIkYWl4X2xpYnBhdGgiCi0g ICAgICAgIGZpCi0gICAgICBmaQotICAgICAgOzsKLSAgICBhbWlnYW9zKikKLSAgICAgIGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicKLSAgICAgIGhhcmRjb2RlX21pbnVzX0w9 eWVzCi0gICAgICAjIHNlZSBjb21tZW50IGFib3V0IGRpZmZlcmVudCBzZW1hbnRpY3Mgb24gdGhl IEdOVSBsZCBzZWN0aW9uCi0gICAgICBsZF9zaGxpYnM9bm8KLSAgICAgIDs7Ci0gICAgYnNkaVs0 NV0qKQotICAgICAgOzsKLSAgICBjeWd3aW4qIHwgbWluZ3cqIHwgcHczMiopCi0gICAgICAjIFdo ZW4gbm90IHVzaW5nIGdjYywgd2UgY3VycmVudGx5IGFzc3VtZSB0aGF0IHdlIGFyZSB1c2luZwot ICAgICAgIyBNaWNyb3NvZnQgVmlzdWFsIEMrKy4KLSAgICAgICMgaGFyZGNvZGVfbGliZGlyX2Zs YWdfc3BlYyBpcyBhY3R1YWxseSBtZWFuaW5nbGVzcywgYXMgdGhlcmUgaXMKLSAgICAgICMgbm8g c2VhcmNoIHBhdGggZm9yIERMTHMuCi0gICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScg JwotICAgICAgbGliZXh0PWxpYgotICAgICAgOzsKLSAgICBkYXJ3aW4qIHwgcmhhcHNvZHkqKQot ICAgICAgaGFyZGNvZGVfZGlyZWN0PW5vCi0gICAgICBpZiB0ZXN0ICIkR0NDIiA9IHllcyA7IHRo ZW4KLSAgICAgICAgOgotICAgICAgZWxzZQotICAgICAgICBjYXNlICRjY19iYXNlbmFtZSBpbgot ICAgICAgICAgIHhsYyopCi0gICAgICAgICAgICA7OwotICAgICAgICAgICopCi0gICAgICAgICAg ICBsZF9zaGxpYnM9bm8KLSAgICAgICAgICAgIDs7Ci0gICAgICAgIGVzYWMKLSAgICAgIGZpCi0g ICAgICA7OwotICAgIGRndXgqKQotICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nLUwk bGliZGlyJwotICAgICAgOzsKLSAgICBmcmVlYnNkMSopCi0gICAgICBsZF9zaGxpYnM9bm8KLSAg ICAgIDs7Ci0gICAgZnJlZWJzZDIuMiopCi0gICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVj PSctUiRsaWJkaXInCi0gICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCi0gICAgICA7OwotICAgIGZy ZWVic2QyKikKLSAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKLSAgICAgIGhhcmRjb2RlX21pbnVz X0w9eWVzCi0gICAgICA7OwotICAgIGZyZWVic2QqIHwgZHJhZ29uZmx5KikKLSAgICAgIGhhcmRj b2RlX2xpYmRpcl9mbGFnX3NwZWM9Jy1SJGxpYmRpcicKLSAgICAgIGhhcmRjb2RlX2RpcmVjdD15 ZXMKLSAgICAgIDs7Ci0gICAgaHB1eDkqKQotICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3Bl Yz0nJHt3bH0rYiAke3dsfSRsaWJkaXInCi0gICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9y PToKLSAgICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKLSAgICAgICMgaGFyZGNvZGVfbWludXNfTDog Tm90IHJlYWxseSBpbiB0aGUgc2VhcmNoIFBBVEgsCi0gICAgICAjIGJ1dCBhcyB0aGUgZGVmYXVs dCBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KLSAgICAgIGhhcmRjb2RlX21pbnVzX0w9eWVzCi0g ICAgICA7OwotICAgIGhwdXgxMCopCi0gICAgICBpZiB0ZXN0ICIkd2l0aF9nbnVfbGQiID0gbm87 IHRoZW4KLSAgICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nJHt3bH0rYiAke3dsfSRs aWJkaXInCi0gICAgICAgIGhhcmRjb2RlX2xpYmRpcl9zZXBhcmF0b3I9OgotICAgICAgICBoYXJk Y29kZV9kaXJlY3Q9eWVzCi0gICAgICAgICMgaGFyZGNvZGVfbWludXNfTDogTm90IHJlYWxseSBp biB0aGUgc2VhcmNoIFBBVEgsCi0gICAgICAgICMgYnV0IGFzIHRoZSBkZWZhdWx0IGxvY2F0aW9u IG9mIHRoZSBsaWJyYXJ5LgotICAgICAgICBoYXJkY29kZV9taW51c19MPXllcwotICAgICAgZmkK LSAgICAgIDs7Ci0gICAgaHB1eDExKikKLSAgICAgIGlmIHRlc3QgIiR3aXRoX2dudV9sZCIgPSBu bzsgdGhlbgotICAgICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfStiICR7d2x9 JGxpYmRpcicKLSAgICAgICAgaGFyZGNvZGVfbGliZGlyX3NlcGFyYXRvcj06Ci0gICAgICAgIGNh c2UgJGhvc3RfY3B1IGluCi0gICAgICAgICAgaHBwYSo2NCp8aWE2NCopCi0gICAgICAgICAgICBo YXJkY29kZV9kaXJlY3Q9bm8KLSAgICAgICAgICAgIDs7Ci0gICAgICAgICAgKikKLSAgICAgICAg ICAgIGhhcmRjb2RlX2RpcmVjdD15ZXMKLSAgICAgICAgICAgICMgaGFyZGNvZGVfbWludXNfTDog Tm90IHJlYWxseSBpbiB0aGUgc2VhcmNoIFBBVEgsCi0gICAgICAgICAgICAjIGJ1dCBhcyB0aGUg ZGVmYXVsdCBsb2NhdGlvbiBvZiB0aGUgbGlicmFyeS4KLSAgICAgICAgICAgIGhhcmRjb2RlX21p bnVzX0w9eWVzCi0gICAgICAgICAgICA7OwotICAgICAgICBlc2FjCi0gICAgICBmaQotICAgICAg OzsKLSAgICBpcml4NSogfCBpcml4NiogfCBub25zdG9wdXgqKQotICAgICAgaGFyZGNvZGVfbGli ZGlyX2ZsYWdfc3BlYz0nJHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwotICAgICAgaGFyZGNvZGVf bGliZGlyX3NlcGFyYXRvcj06Ci0gICAgICA7OwotICAgIG5ldGJzZCopCi0gICAgICBoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjPSctUiRsaWJkaXInCi0gICAgICBoYXJkY29kZV9kaXJlY3Q9eWVz Ci0gICAgICA7OwotICAgIG5ld3NvczYpCi0gICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzCi0gICAg ICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPScke3dsfS1ycGF0aCAke3dsfSRsaWJkaXInCi0g ICAgICBoYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPToKLSAgICAgIDs7Ci0gICAgb3BlbmJzZCop Ci0gICAgICBpZiB0ZXN0IC1mIC91c3IvbGliZXhlYy9sZC5zbzsgdGhlbgotICAgICAgICBoYXJk Y29kZV9kaXJlY3Q9eWVzCi0gICAgICAgIGlmIHRlc3QgLXogImBlY2hvIF9fRUxGX18gfCAkQ0Mg LUUgLSB8IGdyZXAgX19FTEZfX2AiIHx8IHRlc3QgIiRob3N0X29zLSRob3N0X2NwdSIgPSAib3Bl bmJzZDIuOC1wb3dlcnBjIjsgdGhlbgotICAgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWM9JyR7d2x9LXJwYXRoLCRsaWJkaXInCi0gICAgICAgIGVsc2UKLSAgICAgICAgICBjYXNlICIk aG9zdF9vcyIgaW4KLSAgICAgICAgICAgIG9wZW5ic2RbMDFdLiogfCBvcGVuYnNkMi5bMC03XSB8 IG9wZW5ic2QyLlswLTddLiopCi0gICAgICAgICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3Nw ZWM9Jy1SJGxpYmRpcicKLSAgICAgICAgICAgICAgOzsKLSAgICAgICAgICAgICopCi0gICAgICAg ICAgICAgIGhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9JyR7d2x9LXJwYXRoLCRsaWJkaXInCi0g ICAgICAgICAgICAgIDs7Ci0gICAgICAgICAgZXNhYwotICAgICAgICBmaQotICAgICAgZWxzZQot ICAgICAgICBsZF9zaGxpYnM9bm8KLSAgICAgIGZpCi0gICAgICA7OwotICAgIG9zMiopCi0gICAg ICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctTCRsaWJkaXInCi0gICAgICBoYXJkY29kZV9t aW51c19MPXllcwotICAgICAgOzsKLSAgICBvc2YzKikKLSAgICAgIGhhcmRjb2RlX2xpYmRpcl9m bGFnX3NwZWM9JyR7d2x9LXJwYXRoICR7d2x9JGxpYmRpcicKLSAgICAgIGhhcmRjb2RlX2xpYmRp cl9zZXBhcmF0b3I9OgotICAgICAgOzsKLSAgICBvc2Y0KiB8IG9zZjUqKQotICAgICAgaWYgdGVz dCAiJEdDQyIgPSB5ZXM7IHRoZW4KLSAgICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0n JHt3bH0tcnBhdGggJHt3bH0kbGliZGlyJwotICAgICAgZWxzZQotICAgICAgICAjIEJvdGggY2Mg YW5kIGN4eCBjb21waWxlciBzdXBwb3J0IC1ycGF0aCBkaXJlY3RseQotICAgICAgICBoYXJkY29k ZV9saWJkaXJfZmxhZ19zcGVjPSctcnBhdGggJGxpYmRpcicKLSAgICAgIGZpCi0gICAgICBoYXJk Y29kZV9saWJkaXJfc2VwYXJhdG9yPToKLSAgICAgIDs7Ci0gICAgc29sYXJpcyopCi0gICAgICBo YXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctUiRsaWJkaXInCi0gICAgICA7OwotICAgIHN1bm9z NCopCi0gICAgICBoYXJkY29kZV9saWJkaXJfZmxhZ19zcGVjPSctTCRsaWJkaXInCi0gICAgICBo YXJkY29kZV9kaXJlY3Q9eWVzCi0gICAgICBoYXJkY29kZV9taW51c19MPXllcwotICAgICAgOzsK LSAgICBzeXN2NCkKLSAgICAgIGNhc2UgJGhvc3RfdmVuZG9yIGluCi0gICAgICAgIHNuaSkKLSAg ICAgICAgICBoYXJkY29kZV9kaXJlY3Q9eWVzICMgaXMgdGhpcyByZWFsbHkgdHJ1ZT8/PwotICAg ICAgICAgIDs7Ci0gICAgICAgIHNpZW1lbnMpCi0gICAgICAgICAgaGFyZGNvZGVfZGlyZWN0PW5v Ci0gICAgICAgICAgOzsKLSAgICAgICAgbW90b3JvbGEpCi0gICAgICAgICAgaGFyZGNvZGVfZGly ZWN0PW5vICNNb3Rvcm9sYSBtYW51YWwgc2F5cyB5ZXMsIGJ1dCBteSB0ZXN0cyBzYXkgdGhleSBs aWUKLSAgICAgICAgICA7OwotICAgICAgZXNhYwotICAgICAgOzsKLSAgICBzeXN2NC4zKikKLSAg ICAgIDs7Ci0gICAgc3lzdjQqTVAqKQotICAgICAgaWYgdGVzdCAtZCAvdXNyL25lYzsgdGhlbgot ICAgICAgICBsZF9zaGxpYnM9eWVzCi0gICAgICBmaQotICAgICAgOzsKLSAgICBzeXN2NCp1dzIq IHwgc3lzdjVPcGVuVU5JWCogfCBzeXN2NVVuaXhXYXJlNy5bMDFdLlsxMF0qIHwgdW5peHdhcmU3 KiB8IHNjbzMuMnY1LjAuWzAyNF0qKQotICAgICAgOzsKLSAgICBzeXN2NSogfCBzY28zLjJ2NSog fCBzY281djYqKQotICAgICAgaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYz0nYHRlc3QgLXogIiRT Q09BQlNQQVRIIiAmJiBlY2hvICR7d2x9LVIsJGxpYmRpcmAnCi0gICAgICBoYXJkY29kZV9saWJk aXJfc2VwYXJhdG9yPSc6JwotICAgICAgOzsKLSAgICB1dHM0KikKLSAgICAgIGhhcmRjb2RlX2xp YmRpcl9mbGFnX3NwZWM9Jy1MJGxpYmRpcicKLSAgICAgIDs7Ci0gICAgKikKLSAgICAgIGxkX3No bGlicz1ubwotICAgICAgOzsKLSAgZXNhYwotZmkKLQotIyBDaGVjayBkeW5hbWljIGxpbmtlciBj aGFyYWN0ZXJpc3RpY3MKLSMgQ29kZSB0YWtlbiBmcm9tIGxpYnRvb2wubTQncyBBQ19MSUJUT09M X1NZU19EWU5BTUlDX0xJTktFUi4KLSMgVW5saWtlIGxpYnRvb2wubTQsIGhlcmUgd2UgZG9uJ3Qg Y2FyZSBhYm91dCBfYWxsXyBuYW1lcyBvZiB0aGUgbGlicmFyeSwgYnV0Ci0jIG9ubHkgYWJvdXQg dGhlIG9uZSB0aGUgbGlua2VyIGZpbmRzIHdoZW4gcGFzc2VkIC1sTkFNRS4gVGhpcyBpcyB0aGUg bGFzdAotIyBlbGVtZW50IG9mIGxpYnJhcnlfbmFtZXNfc3BlYyBpbiBsaWJ0b29sLm00LCBvciBw b3NzaWJseSB0d28gb2YgdGhlbSBpZiB0aGUKLSMgbGlua2VyIGhhcyBzcGVjaWFsIHNlYXJjaCBy dWxlcy4KLWxpYnJhcnlfbmFtZXNfc3BlYz0gICAgICAjIHRoZSBsYXN0IGVsZW1lbnQgb2YgbGli cmFyeV9uYW1lc19zcGVjIGluIGxpYnRvb2wubTQKLWxpYm5hbWVfc3BlYz0nbGliJG5hbWUnCi1j YXNlICIkaG9zdF9vcyIgaW4KLSAgYWl4MyopCi0gICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGli bmFtZS5hJwotICAgIDs7Ci0gIGFpeFs0LTldKikKLSAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRs aWJuYW1lJHNocmV4dCcKLSAgICA7OwotICBhbWlnYW9zKikKLSAgICBsaWJyYXJ5X25hbWVzX3Nw ZWM9JyRsaWJuYW1lLmEnCi0gICAgOzsKLSAgYmVvcyopCi0gICAgbGlicmFyeV9uYW1lc19zcGVj PSckbGlibmFtZSRzaHJleHQnCi0gICAgOzsKLSAgYnNkaVs0NV0qKQotICAgIGxpYnJhcnlfbmFt ZXNfc3BlYz0nJGxpYm5hbWUkc2hyZXh0JwotICAgIDs7Ci0gIGN5Z3dpbiogfCBtaW5ndyogfCBw dzMyKikKLSAgICBzaHJleHQ9LmRsbAotICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUu ZGxsLmEgJGxpYm5hbWUubGliJwotICAgIDs7Ci0gIGRhcndpbiogfCByaGFwc29keSopCi0gICAg c2hyZXh0PS5keWxpYgotICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUkc2hyZXh0Jwot ICAgIDs7Ci0gIGRndXgqKQotICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUkc2hyZXh0 JwotICAgIDs7Ci0gIGZyZWVic2QxKikKLSAgICA7OwotICBmcmVlYnNkKiB8IGRyYWdvbmZseSop Ci0gICAgY2FzZSAiJGhvc3Rfb3MiIGluCi0gICAgICBmcmVlYnNkWzEyM10qKQotICAgICAgICBs aWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHNocmV4dCR2ZXJzdWZmaXgnIDs7Ci0gICAgICAq KQotICAgICAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHNocmV4dCcgOzsKLSAgICBl c2FjCi0gICAgOzsKLSAgZ251KikKLSAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHNo cmV4dCcKLSAgICA7OwotICBocHV4OSogfCBocHV4MTAqIHwgaHB1eDExKikKLSAgICBjYXNlICRo b3N0X2NwdSBpbgotICAgICAgaWE2NCopCi0gICAgICAgIHNocmV4dD0uc28KLSAgICAgICAgOzsK LSAgICAgIGhwcGEqNjQqKQotICAgICAgICBzaHJleHQ9LnNsCi0gICAgICAgIDs7Ci0gICAgICAq KQotICAgICAgICBzaHJleHQ9LnNsCi0gICAgICAgIDs7Ci0gICAgZXNhYwotICAgIGxpYnJhcnlf bmFtZXNfc3BlYz0nJGxpYm5hbWUkc2hyZXh0JwotICAgIDs7Ci0gIGludGVyaXhbMy05XSopCi0g ICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZSRzaHJleHQnCi0gICAgOzsKLSAgaXJpeDUq IHwgaXJpeDYqIHwgbm9uc3RvcHV4KikKLSAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1l JHNocmV4dCcKLSAgICBjYXNlICIkaG9zdF9vcyIgaW4KLSAgICAgIGlyaXg1KiB8IG5vbnN0b3B1 eCopCi0gICAgICAgIGxpYnN1ZmY9IHNobGlic3VmZj0KLSAgICAgICAgOzsKLSAgICAgICopCi0g ICAgICAgIGNhc2UgJExEIGluCi0gICAgICAgICAgKi0zMnwqIi0zMiAifCotbWVsZjMyYnNtaXB8 KiItbWVsZjMyYnNtaXAgIikgbGlic3VmZj0gc2hsaWJzdWZmPSA7OwotICAgICAgICAgICotbjMy fCoiLW4zMiAifCotbWVsZjMyYm1pcG4zMnwqIi1tZWxmMzJibWlwbjMyICIpIGxpYnN1ZmY9MzIg c2hsaWJzdWZmPU4zMiA7OwotICAgICAgICAgICotNjR8KiItNjQgInwqLW1lbGY2NGJtaXB8KiIt bWVsZjY0Ym1pcCAiKSBsaWJzdWZmPTY0IHNobGlic3VmZj02NCA7OwotICAgICAgICAgICopIGxp YnN1ZmY9IHNobGlic3VmZj0gOzsKLSAgICAgICAgZXNhYwotICAgICAgICA7OwotICAgIGVzYWMK LSAgICA7OwotICBsaW51eCpvbGRsZCogfCBsaW51eCphb3V0KiB8IGxpbnV4KmNvZmYqKQotICAg IDs7Ci0gIGxpbnV4KiB8IGsqYnNkKi1nbnUpCi0gICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGli bmFtZSRzaHJleHQnCi0gICAgOzsKLSAga25ldGJzZCotZ251KQotICAgIGxpYnJhcnlfbmFtZXNf c3BlYz0nJGxpYm5hbWUkc2hyZXh0JwotICAgIDs7Ci0gIG5ldGJzZCopCi0gICAgbGlicmFyeV9u YW1lc19zcGVjPSckbGlibmFtZSRzaHJleHQnCi0gICAgOzsKLSAgbmV3c29zNikKLSAgICBsaWJy YXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHNocmV4dCcKLSAgICA7OwotICBudG8tcW54KikKLSAg ICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHNocmV4dCcKLSAgICA7OwotICBvcGVuYnNk KikKLSAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHNocmV4dCR2ZXJzdWZmaXgnCi0g ICAgOzsKLSAgb3MyKikKLSAgICBsaWJuYW1lX3NwZWM9JyRuYW1lJwotICAgIHNocmV4dD0uZGxs Ci0gICAgbGlicmFyeV9uYW1lc19zcGVjPSckbGlibmFtZS5hJwotICAgIDs7Ci0gIG9zZjMqIHwg b3NmNCogfCBvc2Y1KikKLSAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHNocmV4dCcK LSAgICA7OwotICByZG9zKikKLSAgICA7OwotICBzb2xhcmlzKikKLSAgICBsaWJyYXJ5X25hbWVz X3NwZWM9JyRsaWJuYW1lJHNocmV4dCcKLSAgICA7OwotICBzdW5vczQqKQotICAgIGxpYnJhcnlf bmFtZXNfc3BlYz0nJGxpYm5hbWUkc2hyZXh0JHZlcnN1ZmZpeCcKLSAgICA7OwotICBzeXN2NCB8 IHN5c3Y0LjMqKQotICAgIGxpYnJhcnlfbmFtZXNfc3BlYz0nJGxpYm5hbWUkc2hyZXh0JwotICAg IDs7Ci0gIHN5c3Y0Kk1QKikKLSAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1lJHNocmV4 dCcKLSAgICA7OwotICBzeXN2NSogfCBzY28zLjJ2NSogfCBzY281djYqIHwgdW5peHdhcmUqIHwg T3BlblVOSVgqIHwgc3lzdjQqdXcyKikKLSAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJuYW1l JHNocmV4dCcKLSAgICA7OwotICB1dHM0KikKLSAgICBsaWJyYXJ5X25hbWVzX3NwZWM9JyRsaWJu YW1lJHNocmV4dCcKLSAgICA7OwotZXNhYwotCi1zZWRfcXVvdGVfc3Vic3Q9J3MvXChbImAkXFxd XCkvXFxcMS9nJwotZXNjYXBlZF93bD1gZWNobyAiWCR3bCIgfCBzZWQgLWUgJ3MvXlgvLycgLWUg IiRzZWRfcXVvdGVfc3Vic3QiYAotc2hsaWJleHQ9YGVjaG8gIiRzaHJleHQiIHwgc2VkIC1lICdz LF5cLiwsJ2AKLWVzY2FwZWRfbGlibmFtZV9zcGVjPWBlY2hvICJYJGxpYm5hbWVfc3BlYyIgfCBz ZWQgLWUgJ3MvXlgvLycgLWUgIiRzZWRfcXVvdGVfc3Vic3QiYAotZXNjYXBlZF9saWJyYXJ5X25h bWVzX3NwZWM9YGVjaG8gIlgkbGlicmFyeV9uYW1lc19zcGVjIiB8IHNlZCAtZSAncy9eWC8vJyAt ZSAiJHNlZF9xdW90ZV9zdWJzdCJgCi1lc2NhcGVkX2hhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9 YGVjaG8gIlgkaGFyZGNvZGVfbGliZGlyX2ZsYWdfc3BlYyIgfCBzZWQgLWUgJ3MvXlgvLycgLWUg IiRzZWRfcXVvdGVfc3Vic3QiYAotCi1MQ19BTEw9QyBzZWQgLWUgJ3MvXlwoW2EtekEtWjAtOV9d KlwpPS9hY2xfY3ZfXDE9LycgPDxFT0YKLQotIyBIb3cgdG8gcGFzcyBhIGxpbmtlciBmbGFnIHRo cm91Z2ggdGhlIGNvbXBpbGVyLgotd2w9IiRlc2NhcGVkX3dsIgotCi0jIFN0YXRpYyBsaWJyYXJ5 IHN1ZmZpeCAobm9ybWFsbHkgImEiKS4KLWxpYmV4dD0iJGxpYmV4dCIKLQotIyBTaGFyZWQgbGli cmFyeSBzdWZmaXggKG5vcm1hbGx5ICJzbyIpLgotc2hsaWJleHQ9IiRzaGxpYmV4dCIKLQotIyBG b3JtYXQgb2YgbGlicmFyeSBuYW1lIHByZWZpeC4KLWxpYm5hbWVfc3BlYz0iJGVzY2FwZWRfbGli bmFtZV9zcGVjIgotCi0jIExpYnJhcnkgbmFtZXMgdGhhdCB0aGUgbGlua2VyIGZpbmRzIHdoZW4g cGFzc2VkIC1sTkFNRS4KLWxpYnJhcnlfbmFtZXNfc3BlYz0iJGVzY2FwZWRfbGlicmFyeV9uYW1l c19zcGVjIgotCi0jIEZsYWcgdG8gaGFyZGNvZGUgXCRsaWJkaXIgaW50byBhIGJpbmFyeSBkdXJp bmcgbGlua2luZy4KLSMgVGhpcyBtdXN0IHdvcmsgZXZlbiBpZiBcJGxpYmRpciBkb2VzIG5vdCBl eGlzdC4KLWhhcmRjb2RlX2xpYmRpcl9mbGFnX3NwZWM9IiRlc2NhcGVkX2hhcmRjb2RlX2xpYmRp cl9mbGFnX3NwZWMiCi0KLSMgV2hldGhlciB3ZSBuZWVkIGEgc2luZ2xlIC1ycGF0aCBmbGFnIHdp dGggYSBzZXBhcmF0ZWQgYXJndW1lbnQuCi1oYXJkY29kZV9saWJkaXJfc2VwYXJhdG9yPSIkaGFy ZGNvZGVfbGliZGlyX3NlcGFyYXRvciIKLQotIyBTZXQgdG8geWVzIGlmIHVzaW5nIERJUi9saWJO QU1FLnNvIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIgaW50byB0aGUKLSMgcmVzdWx0aW5n IGJpbmFyeS4KLWhhcmRjb2RlX2RpcmVjdD0iJGhhcmRjb2RlX2RpcmVjdCIKLQotIyBTZXQgdG8g eWVzIGlmIHVzaW5nIHRoZSAtTERJUiBmbGFnIGR1cmluZyBsaW5raW5nIGhhcmRjb2RlcyBESVIg aW50byB0aGUKLSMgcmVzdWx0aW5nIGJpbmFyeS4KLWhhcmRjb2RlX21pbnVzX0w9IiRoYXJkY29k ZV9taW51c19MIgotCi1FT0YKLS0gCjIuNDIuMAoK --=-NeTEijQqTMgJOqey+ZSN Content-Disposition: attachment; filename="0002-Deduplicate-and-sort-.gitignore.patch" Content-Type: text/x-patch; name="0002-Deduplicate-and-sort-.gitignore.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSAxZjhjOWUwOWRmMDU0MWFlNDkxODlmYmE4OGRhMzU5YzYyZmM0M2U4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb25hcyBIYWhuZmVsZCA8aGFobmpvQGhhaG5qby5kZT4KRGF0 ZTogV2VkLCAxOCBPY3QgMjAyMyAyMToxMDozNiArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMi8zXSBE ZWR1cGxpY2F0ZSBhbmQgc29ydCAuZ2l0aWdub3JlCgoqIC5naXRpZ25vcmU6IERlZHVwbGljYXRl IGFuZCBzb3J0LgotLS0KIC5naXRpZ25vcmUgfCAxMjcgKysrKysrKysrKysrKysrKysrKysrKyst LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA1NSBpbnNlcnRp b25zKCspLCA3MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS8uZ2l0aWdub3JlIGIvLmdpdGln bm9yZQppbmRleCBjYjY3NWJmNDAuLjQ3Mzc1ZTAyYSAxMDA2NDQKLS0tIGEvLmdpdGlnbm9yZQor KysgYi8uZ2l0aWdub3JlCkBAIC02LDI2ICs2LDExIEBAIE1ha2VmaWxlCiBNYWtlZmlsZS5pbgog LmRlcHMKIC5saWJzCi1hdXRvbTR0ZS5jYWNoZQotY29uZmlnLnN1YgotY29uZmlnLmd1ZXNzCi1j b25maWcuc3RhdHVzCi1jb25maWcubG9nCi1jb25maWcuaAogKi5kb2MKICoueAogKi5sbwogKi5s YQogKi5leGUKLWFjbG9jYWwubTQKLWxpYnRvb2wKLWx0bWFpbi5zaAotY29uZmlndXJlCi1kZXBj b21wCi1lbGlzcC1jb21wCi1taXNzaW5nCi1tZGF0ZS1zaAotaW5zdGFsbC1zaAogdGV4aW5mby50 ZXgKICp+CiAsKgpAQCAtMzMsMTIgKzE4LDkgQEAgQlVHUwogTWFrZWZpbGUKIE1ha2VmaWxlLmlu CiBhY2xvY2FsLm00Ci1hdXRvbTR0ZS5jYWNoZQogYmVuY2htYXJrLWd1aWxlCiBjaGVjay1ndWls ZQogY2hlY2stZ3VpbGUubG9nCi1idWlsZC1hdXgvY29tcGlsZQotYnVpbGQtYXV4L2NvbmZpZy5y cGF0aAogY29uZmRlZnMuaAogY29uZmlnLmJ1aWxkLXN1YmRpcnMKIGNvbmZpZy5jYWNoZQpAQCAt NjgsOCArNTAsNiBAQCBndWlsZS1wcm9jZWR1cmVzLnR4dAogZ3VpbGUtY29uZmlnL2d1aWxlLWNv bmZpZwogKi5nbwogVEFHUwotL21ldGEvZ3VpbGUtMy4wLnBjCi0vbWV0YS9ndWlsZS0zLjAtdW5p bnN0YWxsZWQucGMKIGdkYi1wcmUtaW5zdC1ndWlsZQogY3Njb3BlLm91dAogY3Njb3BlLmZpbGVz CkBAIC05Myw3NSArNzMsNzggQEAgSU5TVEFMTAogKi5wZ3MKICoucm4KICoucm5zCi0vbWV0YS9n ZGItdW5pbnN0YWxsZWQtZ3VpbGUKLS9tZXRhL2d1aWxlCi0vbWV0YS91bmluc3RhbGxlZC1lbnYK LS9leGFtcGxlcy9ib3gtbW9kdWxlL2JveAorKi50cnMKKy9HUEFUSAorL0dSVEFHUworL0dTWU1T CisvR1RBR1MKKy8uc2Mtc3RhcnQtKgorLy52ZXJzaW9uCisvYXV0b200dGUuY2FjaGUKKy9idWls ZC1hdXgvYXItbGliCisvYnVpbGQtYXV4L2NvbXBpbGUKKy9idWlsZC1hdXgvY29uZmlnLnJwYXRo CisvYnVpbGQtYXV4L3Rlc3QtZHJpdmVyCisvZG9jL3JlZi9zdGFuZGFyZC1saWJyYXJ5c2NtZmls ZXMKKy9kb2MvcmVmL3N0YW5kYXJkLWxpYnJhcnkudGV4aQogL2V4YW1wbGVzL2JveC9ib3gKKy9l eGFtcGxlcy9ib3gtbW9kdWxlL2JveAogL2xpYi9hbGxvY2EuaAorL2xpYi9hcnBhL2luZXQuaAog L2xpYi9jaGFyc2V0LmFsaWFzCiAvbGliL2NvbmZpZ21ha2UuaAorL2xpYi9kaXJlbnQuaAorL2xp Yi9mY250bC5oCisvbGliL2ljb252LmgKKy9saWIvbGFuZ2luZm8uaAorL2xpYi9saW1pdHMuaAor L2xpYi9saW5rLXdhcm5pbmcuaAorL2xpYi9sb2NhbGUuaAorL2xpYi9tYXRoLmgKKy9saWIvbmV0 ZGIuaAorL2xpYi9wb2xsLmgKIC9saWIvcmVmLWFkZC5zZWQKIC9saWIvcmVmLWRlbC5zZWQKKy9s aWIvc2lnbmFsLmgKKy9saWIvc3RkYWxpZ24uaAorL2xpYi9zdGRpbnQuaAorL2xpYi9zdGRpby5o CiAvbGliL3N0ZGxpYi5oCiAvbGliL3N0cmluZy5oCiAvbGliL3N0cmluZ3MuaAogL2xpYi9zeXMv ZmlsZS5oCisvbGliL3N5cy9zZWxlY3QuaAorL2xpYi9zeXMvc29ja2V0LmgKKy9saWIvc3lzL3N0 YXQuaAorL2xpYi9zeXMvdGltZS5oCisvbGliL3N5cy90aW1lcy5oCisvbGliL3N5cy90eXBlcy5o CisvbGliL3N5cy91aW8uaAogL2xpYi90aW1lLmgKIC9saWIvdW5pc3RkLmgKIC9saWIvdW5pc3Ry Ly5kaXJzdGFtcAotL2xpYi9hcnBhL2luZXQuaAotL2xpYi9zdGRpby5oCi0vbGliL3N5cy9zdGF0 LmgKLS9saWIvbGluay13YXJuaW5nLmgKLS9saWIvaWNvbnYuaAotL2xpYi9uZXRkYi5oCi0vR1BB VEgKLS9HUlRBR1MKLS9HU1lNUwotL0dUQUdTCisvbGliL3VuaXN0ci5oCisvbGliL3VuaXR5cGVz LmgKKy9saWIvdW51c2VkLXBhcmFtZXRlci5oCisvbGliL3djaGFyLmgKKy9saWIvd2N0eXBlLmgK Ky9saWJndWlsZS92bS1vcGVyYXRpb25zLmgKKy9tZXRhL2J1aWxkLWVudgorL21ldGEvZ2RiLXVu aW5zdGFsbGVkLWd1aWxlCiAvbWV0YS9ndWlsZAorL21ldGEvZ3VpbGUKKy9tZXRhL2d1aWxlLTMu MC5wYworL21ldGEvZ3VpbGUtMy4wLXVuaW5zdGFsbGVkLnBjCiAvbWV0YS9ndWlsZS1jb25maWcK LS9saWIvbG9jYWxlLmgKKy9tZXRhL3VuaW5zdGFsbGVkLWVudgogL21vZHVsZS9pY2UtOS9ldmFs LmdvLnN0YW1wCi0vZG9jL3JlZi9zdGFuZGFyZC1saWJyYXJ5LnRleGkKLS9kb2MvcmVmL3N0YW5k YXJkLWxpYnJhcnlzY21maWxlcwotL2xpYi93Y2hhci5oCi0vbGliL3N5cy9zb2NrZXQuaAotL2xp Yi91bnVzZWQtcGFyYW1ldGVyLmgKLS8udmVyc2lvbgotL2xpYi9pY29udi5oCi0vbGliL25ldGRi LmgKLS9saWIvdW5pc3RyLmgKLS9saWIvdW5pdHlwZXMuaAotLy5zYy1zdGFydC0qCi0vbGliL21h dGguaAotL2xpYi9zeXMvdGltZS5oCi0vdGVzdC1zdWl0ZS9zdGFuZGFsb25lL3Rlc3Qtc2NtLXNw YXduLXRocmVhZAorL3Rlc3Qtc3VpdGUvc3RhbmRhbG9uZS90ZXN0LWZvcmVpZ24tb2JqZWN0LWMK IC90ZXN0LXN1aXRlL3N0YW5kYWxvbmUvdGVzdC1wdGhyZWFkLWNyZWF0ZQogL3Rlc3Qtc3VpdGUv c3RhbmRhbG9uZS90ZXN0LXB0aHJlYWQtY3JlYXRlLXNlY29uZGFyeQotL3Rlc3Qtc3VpdGUvc3Rh bmRhbG9uZS90ZXN0LXNtb2ItbWFyay1yYWNlCi0vbGliL2ZjbnRsLmgKLS9saWIvc3lzL3Vpby5o Ci0vbGliL3N0ZGFsaWduLmgKLS9saWIvc2lnbmFsLmgKLS9saWIvc3lzL3R5cGVzLmgKLS9saWIv ZGlyZW50LmgKLS9saWIvbGFuZ2luZm8uaAotL2xpYi93Y3R5cGUuaAotL2xpYi9wb2xsLmgKLS9s aWIvc3lzL3NlbGVjdC5oCi0vbGliL3N5cy90aW1lcy5oCi0vYnVpbGQtYXV4L2FyLWxpYgotL2J1 aWxkLWF1eC90ZXN0LWRyaXZlcgotKi50cnMKLS90ZXN0LXN1aXRlL3N0YW5kYWxvbmUvdGVzdC1z bW9iLW1hcmsKLS90ZXN0LXN1aXRlL3N0YW5kYWxvbmUvdGVzdC1zY20tdmFsdWVzCi0vdGVzdC1z dWl0ZS9zdGFuZGFsb25lL3Rlc3Qtc2NtLXRvLWxhdGluMS1zdHJpbmcKIC90ZXN0LXN1aXRlL3N0 YW5kYWxvbmUvdGVzdC1zY20tYy1iaW5kLWtleXdvcmQtYXJndW1lbnRzCi0vbGliZ3VpbGUvdm0t b3BlcmF0aW9ucy5oCi0vdGVzdC1zdWl0ZS9zdGFuZGFsb25lL3Rlc3QtZm9yZWlnbi1vYmplY3Qt YworL3Rlc3Qtc3VpdGUvc3RhbmRhbG9uZS90ZXN0LXNjbS1zcGF3bi10aHJlYWQKKy90ZXN0LXN1 aXRlL3N0YW5kYWxvbmUvdGVzdC1zY20tdG8tbGF0aW4xLXN0cmluZworL3Rlc3Qtc3VpdGUvc3Rh bmRhbG9uZS90ZXN0LXNjbS12YWx1ZXMKKy90ZXN0LXN1aXRlL3N0YW5kYWxvbmUvdGVzdC1zbW9i LW1hcmsKKy90ZXN0LXN1aXRlL3N0YW5kYWxvbmUvdGVzdC1zbW9iLW1hcmstcmFjZQogL3Rlc3Qt c3VpdGUvc3RhbmRhbG9uZS90ZXN0LXNyZmktNAotL21ldGEvYnVpbGQtZW52Ci0vbGliL2xpbWl0 cy5oCi0vbGliL3N0ZGludC5oCi0tIAoyLjQyLjAKCg== --=-NeTEijQqTMgJOqey+ZSN Content-Disposition: attachment; filename="0003-Ignore-more-generated-files.patch" Content-Type: text/x-patch; name="0003-Ignore-more-generated-files.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSA1NDJhM2U1NTE1MmFiNjgxMWI0MDllYTRkNDczMTU5MjBiNWZmMTE4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb25hcyBIYWhuZmVsZCA8aGFobmpvQGhhaG5qby5kZT4KRGF0 ZTogV2VkLCAxOCBPY3QgMjAyMyAyMjoxODo0MCArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMy8zXSBJ Z25vcmUgbW9yZSBnZW5lcmF0ZWQgZmlsZXMKCiogLmdpdGlnbm9yZTogSWdub3JlIG1vcmUgZ2Vu ZXJhdGVkIGZpbGVzLgotLS0KIC5naXRpZ25vcmUgfCA2ICsrKysrKwogMSBmaWxlIGNoYW5nZWQs IDYgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhLy5naXRpZ25vcmUgYi8uZ2l0aWdub3JlCmlu ZGV4IDQ3Mzc1ZTAyYS4uNzcwNmEwODc5IDEwMDY0NAotLS0gYS8uZ2l0aWdub3JlCisrKyBiLy5n aXRpZ25vcmUKQEAgLTk1LDYgKzk1LDcgQEAgSU5TVEFMTAogL2xpYi9jb25maWdtYWtlLmgKIC9s aWIvZGlyZW50LmgKIC9saWIvZmNudGwuaAorL2xpYi9pbnR0eXBlcy5oCiAvbGliL2ljb252LmgK IC9saWIvbGFuZ2luZm8uaAogL2xpYi9saW1pdHMuaApAQCAtMTA1LDggKzEwNiwxMSBAQCBJTlNU QUxMCiAvbGliL3BvbGwuaAogL2xpYi9yZWYtYWRkLnNlZAogL2xpYi9yZWYtZGVsLnNlZAorL2xp Yi9zY2hlZC5oCiAvbGliL3NpZ25hbC5oCisvbGliL3NwYXduLmgKIC9saWIvc3RkYWxpZ24uaAor L2xpYi9zdGRja2RpbnQuaAogL2xpYi9zdGRpbnQuaAogL2xpYi9zdGRpby5oCiAvbGliL3N0ZGxp Yi5oCkBAIC0xMjgsNiArMTMyLDcgQEAgSU5TVEFMTAogL2xpYi91bnVzZWQtcGFyYW1ldGVyLmgK IC9saWIvd2NoYXIuaAogL2xpYi93Y3R5cGUuaAorL2xpYmd1aWxlL3NyZmktMTQuaS5jCiAvbGli Z3VpbGUvdm0tb3BlcmF0aW9ucy5oCiAvbWV0YS9idWlsZC1lbnYKIC9tZXRhL2dkYi11bmluc3Rh bGxlZC1ndWlsZQpAQCAtMTM4LDYgKzE0Myw3IEBAIElOU1RBTEwKIC9tZXRhL2d1aWxlLWNvbmZp ZwogL21ldGEvdW5pbnN0YWxsZWQtZW52CiAvbW9kdWxlL2ljZS05L2V2YWwuZ28uc3RhbXAKKy9w by8KIC90ZXN0LXN1aXRlL3N0YW5kYWxvbmUvdGVzdC1mb3JlaWduLW9iamVjdC1jCiAvdGVzdC1z dWl0ZS9zdGFuZGFsb25lL3Rlc3QtcHRocmVhZC1jcmVhdGUKIC90ZXN0LXN1aXRlL3N0YW5kYWxv bmUvdGVzdC1wdGhyZWFkLWNyZWF0ZS1zZWNvbmRhcnkKLS0gCjIuNDIuMAoK --=-NeTEijQqTMgJOqey+ZSN-- --=-fpVY5oGarD/Xi9geu/r0 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- iQEzBAABCAAdFiEEXw/5YGpL6H9VOgO2kcnDPSxhrNsFAmUwPvAACgkQkcnDPSxh rNsr+ggAtJVkFj+WFHu9yYQI+pYDCCF/SIHrkM9BpPuOl0NLMJdsYXsC1FQpbhmv 1K3MmUI4TeSgVjazw9nOtWBJV5/42icLqViC9rHCTcJn5Evz8zMrJXN00DnuDBnm 0x56yoo6wzIKvhkqZObdse7mz3zCyRl3MXnaKY1o5yqv58nQKsPDu2XCelhe04ly yz5aIHz+CAUMfSpcadx2QskbJqgn2USwH6tSkHjeLCvGx6ri+YjnWFXgNvpxjO24 vlLX7kOEN18raujtbAIng6OV0Of9I9rSr7DaWBV1uOj6SZDohsxASrovbS9ubNGL c0z5Ph5avG59ypMYVH2+gO6CzxshVA== =ev0c -----END PGP SIGNATURE----- --=-fpVY5oGarD/Xi9geu/r0--