From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id KBFhGl9mwGN3DAEAbAwnHQ (envelope-from ) for ; Thu, 12 Jan 2023 20:58:23 +0100 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id QDWKGV9mwGPMVgEAG6o9tA (envelope-from ) for ; Thu, 12 Jan 2023 20:58:23 +0100 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 1685D325D8 for ; Thu, 12 Jan 2023 20:58:21 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pG3hI-0004lM-0m; Thu, 12 Jan 2023 14:57:12 -0500 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 1pG3hG-0004lE-Uf for guix-devel@gnu.org; Thu, 12 Jan 2023 14:57:10 -0500 Received: from mail-4022.proton.ch ([185.70.40.22]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pG3hC-0006Fk-N7 for guix-devel@gnu.org; Thu, 12 Jan 2023 14:57:10 -0500 Date: Thu, 12 Jan 2023 19:56:56 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=elenq.tech; s=protonmail3; t=1673553420; x=1673812620; bh=5QfxvZib0TU1OBb7jnusCYqLWpnikY748NUDRi996NQ=; h=Date:To:From:Cc:Subject:Message-ID:In-Reply-To:References: Feedback-ID:From:To:Cc:Date:Subject:Reply-To:Feedback-ID: Message-ID:BIMI-Selector; b=cb+meS0G8pbWhJqAFqTEHMfnCKW9x2fInHhn5eQWi9jeZGCocD0zIyTolWF1wzc/S 7lsc5bKkQgNMh/AlqIJslzOpju2sxbdynzMMjGXzda+YlGDs7FxWPxu0w2P0+8vbYa lriWg5IB5UfjcoHnh1lOOHP3nKpSBzglTsLo7Af/wMddVlb7UNKBHkDIUzT9nx9YC6 BDU1WDqcsM4hMO5PjaTt1WFbGw/ddxDqThyjS9EUKfHnxJUOGIjq9hq2y8WSU38nQ0 ByVuQHGI7RjK3YS+RHPfR0PpFWOOoN5SQXs5HtnJC4ghsxnIOov/P53G7ILofdhLMy /hS1yZQaTmDVQ== To: Ekaitz Zarraga From: Ekaitz Zarraga Cc: Efraim Flashner , "guix-devel\\\\\\\\@gnu.org" Subject: Re: WIP: zig-build-system Message-ID: <8LvJ97sbVMdQU87Ucepn5g_9fjgv0ochK3sTaoamrdwWT3TiFmX425mypnueXIfZI67ej5c4ar98yk_1O0sGJ_7CTSBwDgrgjcROBvV5nbA=@elenq.tech> In-Reply-To: References: Feedback-ID: 3263582:user:proton MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_N1mp0KgatSjhhZa6M3F7pc9BEJrO39T1nt52y816Jk" Received-SPF: pass client-ip=185.70.40.22; envelope-from=ekaitz@elenq.tech; helo=mail-4022.proton.ch 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_PASS=-0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: guix-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Development of GNU Guix and the GNU System distribution." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-devel-bounces+larch=yhetil.org@gnu.org Sender: guix-devel-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=elenq.tech header.s=protonmail3 header.b=cb+meS0G; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=elenq.tech ARC-Seal: i=1; s=key1; d=yhetil.org; t=1673553502; a=rsa-sha256; cv=none; b=MwQMH1tUO7r3+Dyl0xmBIsADxy0Iq0tNAypNJLGaSIg7F5eYVrR8fu7a6WjPrP6FUeHlsJ uvTeYGqFf6cQltYydN2pFr6v8nsF9jIWriw0/WfMYpQi7dzigivvp11H58XkuA7uF0BnUJ JGTaglU/amW5nec5OctC+8DmPEWntusbDovwWveq2g0bOCIgfmB4OgndCWPigCfWBf1aDW 8pQ1LvTIkdsBc49Qbzp9DgTEoh8iRPD3ZvV0mu6jVvWq4Tf5h2QIy+uWsVtNw8YZYJ3oqG LQX7S6Ye65sZ87cOdtkmYiZLvq3l0PieIYsLaSp69w+3Xan4xxwZ+hGPpG9L5Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1673553502; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=5QfxvZib0TU1OBb7jnusCYqLWpnikY748NUDRi996NQ=; b=p1BkGlL/I85P1VqbBbD0a9VY0LTPOL2YsRM/98BXjUhwf6AAY3084js4KU06BVnuObF51g OeOAADEj3EeKRZTGotUVlbKezyJf7PVw2p3TjOxKQWQbN94PYHCcEtz0Gk7Gnl7julq6hN mqHm5Eb6LOrMlG14DsFyhOqJO03a19kXhYUDgnf8xdA28QTey+ibYLpo52yfPeb1zai+9I C22l+I68gIRNpHljOmX8YcSKNuACa4VEmsslQxUGCu+mxBPRNG2Ry3KgkwBqJNh/nXpaI/ 8tpS8OMscFj2eiUtT8iewxnP8K6dU6WqOBMump8z/Qt1vE2zauDxC59QXrtOFw== X-Migadu-Queue-Id: 1685D325D8 X-Migadu-Scanner: scn0.migadu.com Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=elenq.tech header.s=protonmail3 header.b=cb+meS0G; spf=pass (aspmx1.migadu.com: domain of "guix-devel-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-devel-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=elenq.tech X-Migadu-Spam-Score: -6.91 X-Spam-Score: -6.91 X-TUID: lhEnr4DeFvmM This is a multi-part message in MIME format. --b1_N1mp0KgatSjhhZa6M3F7pc9BEJrO39T1nt52y816Jk Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi I think I have something working! It's not intended to be production-ready code but it should be near to that= . There are two files attached: the build system and a package to show how to= use it more or less. Please take a look and tell me what you think. Let's see if we can merge th= is someday. Best, Ekaitz --b1_N1mp0KgatSjhhZa6M3F7pc9BEJrO39T1nt52y816Jk Content-Type: text/x-patch; name=0002-Add-a-sample-package-for-testing-the-zig-build-syste.patch Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=0002-Add-a-sample-package-for-testing-the-zig-build-syste.patch RnJvbSA1ZTI2YjI1YjllZDUwYTZjN2M1ZTY5NmQxZmRjMDZlNTMxYzQxNmQzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBFa2FpdHogWmFycmFnYSA8ZWthaXR6QGVsZW5xLnRlY2g+CkRh dGU6IFRodSwgMTUgRGVjIDIwMjIgMTM6MDI6MjUgKzAxMDAKU3ViamVjdDogW1BBVENIIDIvMl0g QWRkIGEgc2FtcGxlIHBhY2thZ2UgZm9yIHRlc3RpbmcgdGhlIHppZyBidWlsZCBzeXN0ZW0KCi0t LQogZ251L3BhY2thZ2VzL3ppZy5zY20gfCAzNCArKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKystCiAxIGZpbGUgY2hhbmdlZCwgMzMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQoK ZGlmZiAtLWdpdCBhL2dudS9wYWNrYWdlcy96aWcuc2NtIGIvZ251L3BhY2thZ2VzL3ppZy5zY20K aW5kZXggY2RhOTNiZWQyZS4uZmYzY2FmMTQ0ZiAxMDA2NDQKLS0tIGEvZ251L3BhY2thZ2VzL3pp Zy5zY20KKysrIGIvZ251L3BhY2thZ2VzL3ppZy5zY20KQEAgLTI1LDcgKzI1LDkgQEAgKGRlZmlu ZS1tb2R1bGUgKGdudSBwYWNrYWdlcyB6aWcpCiAgICM6dXNlLW1vZHVsZSAoKGd1aXggbGljZW5z ZXMpICM6cHJlZml4IGxpY2Vuc2U6KQogICAjOnVzZS1tb2R1bGUgKGd1aXggYnVpbGQtc3lzdGVt IGNtYWtlKQogICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcykKLSAgIzp1c2UtbW9kdWxlIChn bnUgcGFja2FnZXMgbGx2bSkpCisgICM6dXNlLW1vZHVsZSAoZ251IHBhY2thZ2VzIGxsdm0pCisg ICM6dXNlLW1vZHVsZSAoZ3VpeCBidWlsZC1zeXN0ZW0gemlnKQorICAjOnVzZS1tb2R1bGUgKGdu dSBwYWNrYWdlcyBjb21tZW5jZW1lbnQpKQogCiAoZGVmaW5lLXB1YmxpYyB6aWcKICAgKHBhY2th Z2UKQEAgLTEwNCwzICsxMDYsMzMgQEAgKGRlZmluZS1wdWJsaWMgemlnCiAgICAgOzsgaHR0cHM6 Ly9naXRodWIuY29tL3ppZ2xhbmcvemlnL2lzc3Vlcy82NDg1CiAgICAgKHN1cHBvcnRlZC1zeXN0 ZW1zICU2NGJpdC1zdXBwb3J0ZWQtc3lzdGVtcykKICAgICAobGljZW5zZSBsaWNlbnNlOmV4cGF0 KSkpCisKKworKGRlZmluZS1wdWJsaWMgdGlnZXJiZWV0bGUKKyAgKGxldCAoKGNvbW1pdC1pZCAi MjAyMi0xMi0xMi13ZWVrbHkiKQorICAgICAgICAocmV2aXNpb24gIjAiKSkKKyAgICAocGFja2Fn ZQorICAgICAgKG5hbWUgInRpZ2VyYmVldGxlIikKKyAgICAgICh2ZXJzaW9uIChzdHJpbmctYXBw ZW5kIHJldmlzaW9uICItIiBjb21taXQtaWQpKQorICAgICAgKHNvdXJjZQorICAgICAgICAob3Jp Z2luCisgICAgICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCisgICAgICAgICAgKHVyaSAoZ2l0LXJl ZmVyZW5jZQorICAgICAgICAgICAgICAgICAodXJsICJodHRwczovL2dpdGh1Yi5jb20vdGlnZXJi ZWV0bGVkYi90aWdlcmJlZXRsZS5naXQiKQorICAgICAgICAgICAgICAgICAoY29tbWl0IGNvbW1p dC1pZCkpKQorICAgICAgICAgIChmaWxlLW5hbWUgKGdpdC1maWxlLW5hbWUgbmFtZSB2ZXJzaW9u KSkKKyAgICAgICAgICAoc2hhMjU2CisgICAgICAgICAgICAoYmFzZTMyICIxOHJhd2w4cmh5cGx3 OGhwYTNmemJxOWZxZzA4OHgwY2FsejY4OGM3emRmZjZ5NmY2bWNyIikpKSkKKyAgICAgIChidWls ZC1zeXN0ZW0gemlnLWJ1aWxkLXN5c3RlbSkKKworICAgICAgKGFyZ3VtZW50cworICAgICAgICAg YCgjOnppZy1yZWxlYXNlLXR5cGUgInNhZmUiKSkKKworICAgICAgKHN5bm9wc2lzICJEaXN0cmli dXRlZCBmaW5hbmNpYWwgYWNjb3VudGluZyBkYXRhYmFzZSBkZXNpZ25lZCBmb3IgbWlzc2lvbgor Y3JpdGljYWwgc2FmZXR5IGFuZCBwZXJmb3JtYW5jZSIpCisKKyAgICAgIChkZXNjcmlwdGlvbiAi RmluYW5jaWFsIGFjY291bnRpbmcgZGF0YWJhc2UgZGVzaWduZWQgZm9yIG1pc3Npb24gY3JpdGlj YWwKK3NhZmV0IHkgYW5kIHBlcmZvcm1hbmNlIHRvIHBvd2VyIHRoZSBmdXR1cmUgb2YgZmluYW5j aWFsCitzZXJ2aWNlcy4iKQorICAgICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL3Rp Z2VyYmVldGxlZGIvdGlnZXJiZWV0bGUuZ2l0IikKKyAgICAgIChsaWNlbnNlIGxpY2Vuc2U6YXNs Mi4wKSkpKQotLSAKMi4zOC4wCgo= --b1_N1mp0KgatSjhhZa6M3F7pc9BEJrO39T1nt52y816Jk Content-Type: text/x-patch; name=0001-WIP-Add-a-zig-build-system.patch Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=0001-WIP-Add-a-zig-build-system.patch RnJvbSBiNzBkZmZlMTI2ZDg0ZWY0ZGUzMmY5MzFjZjg4YWMwYTNhYmJkNzQ3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBFa2FpdHogWmFycmFnYSA8ZWthaXR6QGVsZW5xLnRlY2g+CkRh dGU6IFRodSwgMTUgRGVjIDIwMjIgMTM6MDE6MjMgKzAxMDAKU3ViamVjdDogW1BBVENIIDEvMl0g V0lQOiBBZGQgYSB6aWctYnVpbGQtc3lzdGVtCgotLS0KIE1ha2VmaWxlLmFtICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHwgICAyICsKIGV0Yy9zbmlwcGV0cy95YXMvc2NoZW1lLW1vZGUv Z3VpeC1wYWNrYWdlIHwgICA1ICstCiBndWl4L2J1aWxkLXN5c3RlbS96aWcuc2NtICAgICAgICAg ICAgICAgICB8IDEyMyArKysrKysrKysrKysrKysrKysrKysrCiBndWl4L2J1aWxkL3ppZy1idWls ZC1zeXN0ZW0uc2NtICAgICAgICAgICB8IDEwMCArKysrKysrKysrKysrKysrKysKIDQgZmlsZXMg Y2hhbmdlZCwgMjI4IGluc2VydGlvbnMoKyksIDIgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAx MDA2NDQgZ3VpeC9idWlsZC1zeXN0ZW0vemlnLnNjbQogY3JlYXRlIG1vZGUgMTAwNjQ0IGd1aXgv YnVpbGQvemlnLWJ1aWxkLXN5c3RlbS5zY20KCmRpZmYgLS1naXQgYS9NYWtlZmlsZS5hbSBiL01h a2VmaWxlLmFtCmluZGV4IGI1NDI4OGMwZmMuLjRjYzdjMmU1Y2YgMTAwNjQ0Ci0tLSBhL01ha2Vm aWxlLmFtCisrKyBiL01ha2VmaWxlLmFtCkBAIC0xNzksNiArMTc5LDcgQEAgTU9EVUxFUyA9CQkJ CQlcCiAgIGd1aXgvYnVpbGQtc3lzdGVtL3Njb25zLnNjbQkJCVwKICAgZ3VpeC9idWlsZC1zeXN0 ZW0vdGV4bGl2ZS5zY20JCQlcCiAgIGd1aXgvYnVpbGQtc3lzdGVtL3RyaXZpYWwuc2NtCQkJXAor ICBndWl4L2J1aWxkLXN5c3RlbS96aWcuc2NtCQkJXAogICBndWl4L2Z0cC1jbGllbnQuc2NtCQkJ CVwKICAgZ3VpeC9odHRwLWNsaWVudC5zY20JCQkJXAogICBndWl4L2dudXBnLnNjbQkJCQlcCkBA IC0yNjMsNiArMjY0LDcgQEAgTU9EVUxFUyA9CQkJCQlcCiAgIGd1aXgvYnVpbGQvZ3JhZnQuc2Nt CQkJCVwKICAgZ3VpeC9idWlsZC9ib3VybmlzaC5zY20JCQlcCiAgIGd1aXgvYnVpbGQvcXQtdXRp bHMuc2NtCQkJXAorICBndWl4L2J1aWxkL3ppZy1idWlsZC1zeXN0ZW0uc2NtCQlcCiAgIGd1aXgv YnVpbGQvbWFrZS1ib290c3RyYXAuc2NtCQkJXAogICBndWl4L3NlYXJjaC1wYXRocy5zY20JCQkJ XAogICBndWl4L3BhY2thZ2VzLnNjbQkJCQlcCmRpZmYgLS1naXQgYS9ldGMvc25pcHBldHMveWFz L3NjaGVtZS1tb2RlL2d1aXgtcGFja2FnZSBiL2V0Yy9zbmlwcGV0cy95YXMvc2NoZW1lLW1vZGUv Z3VpeC1wYWNrYWdlCmluZGV4IDcyNGEzOTJmODEuLjNiYjYzMDc2NTkgMTAwNjQ0Ci0tLSBhL2V0 Yy9zbmlwcGV0cy95YXMvc2NoZW1lLW1vZGUvZ3VpeC1wYWNrYWdlCisrKyBiL2V0Yy9zbmlwcGV0 cy95YXMvc2NoZW1lLW1vZGUvZ3VpeC1wYWNrYWdlCkBAIC00Myw4ICs0Myw5IEBACiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2NvbnMtYnVpbGQtc3lzdGVtIgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRleGxpdmUtYnVpbGQt c3lzdGVtIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInRyaXZp YWwtYnVpbGQtc3lzdGVtIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIndhZi1idWlsZC1zeXN0ZW0iKX0pCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAid2FmLWJ1aWxkLXN5c3RlbSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICJ6aWctYnVpbGQtc3lzdGVtIil9KQogICAgIChob21lLXBhZ2UgIiQ0 IikKICAgICAoc3lub3BzaXMgIiQ1IikKICAgICAoZGVzY3JpcHRpb24gIiQ2IikKLSAgICAobGlj ZW5zZSAkNykpKQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKKyAgICAobGljZW5zZSAkNykp KQpkaWZmIC0tZ2l0IGEvZ3VpeC9idWlsZC1zeXN0ZW0vemlnLnNjbSBiL2d1aXgvYnVpbGQtc3lz dGVtL3ppZy5zY20KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uOGMxNzA5 ZWYzYgotLS0gL2Rldi9udWxsCisrKyBiL2d1aXgvYnVpbGQtc3lzdGVtL3ppZy5zY20KQEAgLTAs MCArMSwxMjMgQEAKKzs7OyBHTlUgR3VpeCAtLS0gRnVuY3Rpb25hbCBwYWNrYWdlIG1hbmFnZW1l bnQgZm9yIEdOVQorOzs7IENvcHlyaWdodCDCqSAyMDIzIEVrYWl0eiBaYXJyYWdhIDxla2FpdHpA ZWxlbnEudGVjaD4KKzs7OworOzs7IFRoaXMgZmlsZSBpcyBwYXJ0IG9mIEdOVSBHdWl4LgorOzs7 Cis7OzsgR05VIEd1aXggaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQg YW5kL29yIG1vZGlmeSBpdAorOzs7IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwg UHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5Cis7OzsgdGhlIEZyZWUgU29mdHdhcmUgRm91 bmRhdGlvbjsgZWl0aGVyIHZlcnNpb24gMyBvZiB0aGUgTGljZW5zZSwgb3IgKGF0Cis7OzsgeW91 ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgorOzs7Cis7OzsgR05VIEd1aXggaXMgZGlzdHJp YnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwgYnV0Cis7OzsgV0lUSE9V VCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgorOzs7 IE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNl ZSB0aGUKKzs7OyBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgor Ozs7Cis7OzsgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIEdlbmVy YWwgUHVibGljIExpY2Vuc2UKKzs7OyBhbG9uZyB3aXRoIEdOVSBHdWl4LiAgSWYgbm90LCBzZWUg PGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+LgorCisoZGVmaW5lLW1vZHVsZSAoZ3VpeCBi dWlsZC1zeXN0ZW0gemlnKQorICAjOnVzZS1tb2R1bGUgKGd1aXggc2VhcmNoLXBhdGhzKQorICAj OnVzZS1tb2R1bGUgKGd1aXggc3RvcmUpCisgICM6dXNlLW1vZHVsZSAoZ3VpeCB1dGlscykKKyAg Izp1c2UtbW9kdWxlIChndWl4IGdleHApCisgICM6dXNlLW1vZHVsZSAoZ3VpeCBtb25hZHMpCisg ICM6dXNlLW1vZHVsZSAoZ3VpeCBwYWNrYWdlcykKKyAgIzp1c2UtbW9kdWxlIChndWl4IGJ1aWxk LXN5c3RlbSkKKyAgIzp1c2UtbW9kdWxlIChndWl4IGJ1aWxkLXN5c3RlbSBnbnUpCisgICM6dXNl LW1vZHVsZSAoaWNlLTkgbWF0Y2gpCisgICM6dXNlLW1vZHVsZSAoc3JmaSBzcmZpLTI2KQorICAj OmV4cG9ydCAoemlnLWJ1aWxkLXN5c3RlbSkpCisKKworKGRlZmluZSAoZGVmYXVsdC16aWcpCisg ICJSZXR1cm4gdGhlIGRlZmF1bHQgemlnIHBhY2thZ2UuIgorICA7OyBMYXppbHkgcmVzb2x2ZSB0 aGUgYmluZGluZyB0byBhdm9pZCBhIGNpcmN1bGFyIGRlcGVuZGVuY3kuCisgIChsZXQgKCh6aWcg KHJlc29sdmUtaW50ZXJmYWNlICcoZ251IHBhY2thZ2VzIHppZykpKSkKKyAgICAobW9kdWxlLXJl ZiB6aWcgJ3ppZykpKQorCisoZGVmaW5lICV6aWctYnVpbGQtc3lzdGVtLW1vZHVsZXMKKyAgOzsg QnVpbGQtc2lkZSBtb2R1bGVzIGltcG9ydGVkIGJ5IGRlZmF1bHQuCisgIGAoKGd1aXggYnVpbGQg emlnLWJ1aWxkLXN5c3RlbSkKKyAgICAoZ3VpeCBidWlsZCBzeXNjYWxscykKKyAgICAsQCVnbnUt YnVpbGQtc3lzdGVtLW1vZHVsZXMpKQorCisoZGVmaW5lKiAoemlnLWJ1aWxkIG5hbWUgaW5wdXRz CisgICAgICAgICAgICAgICAgICAgICM6a2V5CisgICAgICAgICAgICAgICAgICAgIHNvdXJjZQor ICAgICAgICAgICAgICAgICAgICAodGVzdHM/ICN0KQorICAgICAgICAgICAgICAgICAgICAodGVz dC10YXJnZXQgI2YpCisgICAgICAgICAgICAgICAgICAgICh6aWctYnVpbGQtZmxhZ3MgJycoKSkK KyAgICAgICAgICAgICAgICAgICAgKHppZy10ZXN0LWZsYWdzICcnKCkpCisgICAgICAgICAgICAg ICAgICAgICh6aWctcmVsZWFzZS10eXBlICNmKQorICAgICAgICAgICAgICAgICAgICAocGhhc2Vz ICclc3RhbmRhcmQtcGhhc2VzKQorICAgICAgICAgICAgICAgICAgICAob3V0cHV0cyAnKCJvdXQi KSkKKyAgICAgICAgICAgICAgICAgICAgKHNlYXJjaC1wYXRocyAnKCkpCisgICAgICAgICAgICAg ICAgICAgIChzeXN0ZW0gKCVjdXJyZW50LXN5c3RlbSkpCisgICAgICAgICAgICAgICAgICAgIChn dWlsZSAjZikKKyAgICAgICAgICAgICAgICAgICAgKGltcG9ydGVkLW1vZHVsZXMgJXppZy1idWls ZC1zeXN0ZW0tbW9kdWxlcykKKyAgICAgICAgICAgICAgICAgICAgKG1vZHVsZXMgJygoZ3VpeCBi dWlsZCB6aWctYnVpbGQtc3lzdGVtKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChn dWl4IGJ1aWxkIHV0aWxzKSkpKQorICAiQnVpbGQgU09VUkNFIHVzaW5nIFppZywgYW5kIHdpdGgg SU5QVVRTLiIKKyAgKGRlZmluZSBidWlsZGVyCisgICAgKHdpdGgtaW1wb3J0ZWQtbW9kdWxlcyBp bXBvcnRlZC1tb2R1bGVzCisgICAgICAjfihiZWdpbgorICAgICAgICAgICh1c2UtbW9kdWxlcyAj JEAoc2V4cC0+Z2V4cCBtb2R1bGVzKSkKKyAgICAgICAgICAoemlnLWJ1aWxkICM6bmFtZSAjJG5h bWUKKyAgICAgICAgICAgICAgICAgICAgICM6c291cmNlICMrc291cmNlCisgICAgICAgICAgICAg ICAgICAgICAjOnN5c3RlbSAjJHN5c3RlbQorICAgICAgICAgICAgICAgICAgICAgIzp0ZXN0LXRh cmdldCAjJHRlc3QtdGFyZ2V0CisgICAgICAgICAgICAgICAgICAgICAjOnppZy1idWlsZC1mbGFn cyAjJHppZy1idWlsZC1mbGFncworICAgICAgICAgICAgICAgICAgICAgIzp6aWctdGVzdC1mbGFn cyAjJHppZy10ZXN0LWZsYWdzCisgICAgICAgICAgICAgICAgICAgICAjOnppZy1yZWxlYXNlLXR5 cGUgIyR6aWctcmVsZWFzZS10eXBlCisgICAgICAgICAgICAgICAgICAgICAjOnRlc3RzPyAjJHRl c3RzPworICAgICAgICAgICAgICAgICAgICAgIzpwaGFzZXMgIyRwaGFzZXMKKyAgICAgICAgICAg ICAgICAgICAgICM6b3V0cHV0cyAjJChvdXRwdXRzLT5nZXhwIG91dHB1dHMpCisgICAgICAgICAg ICAgICAgICAgICAjOnNlYXJjaC1wYXRocyAnIyQoc2V4cC0+Z2V4cAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIChtYXAgc2VhcmNoLXBhdGgtc3BlY2lmaWNhdGlvbi0+ c2V4cAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNo LXBhdGhzKSkKKyAgICAgICAgICAgICAgICAgICAgICM6aW5wdXRzICMkKGlucHV0LXR1cGxlcy0+ Z2V4cCBpbnB1dHMpKSkpKQorCisgIChtbGV0ICVzdG9yZS1tb25hZCAoKGd1aWxlIChwYWNrYWdl LT5kZXJpdmF0aW9uIChvciBndWlsZSAoZGVmYXVsdC1ndWlsZSkpCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN5c3RlbSAjOmdyYWZ0PyAjZikpKQor ICAgIChnZXhwLT5kZXJpdmF0aW9uIG5hbWUgYnVpbGRlcgorICAgICAgICAgICAgICAgICAgICAg ICM6c3lzdGVtIHN5c3RlbQorICAgICAgICAgICAgICAgICAgICAgICM6Z3VpbGUtZm9yLWJ1aWxk IGd1aWxlKSkpCisKKyhkZWZpbmUqIChsb3dlciBuYW1lCisgICAgICAgICAgICAgICAgIzprZXkg c291cmNlIGlucHV0cyBuYXRpdmUtaW5wdXRzIG91dHB1dHMgc3lzdGVtIHRhcmdldAorICAgICAg ICAgICAgICAgICh6aWcgKGRlZmF1bHQtemlnKSkKKyAgICAgICAgICAgICAgICAjOmFsbG93LW90 aGVyLWtleXMKKyAgICAgICAgICAgICAgICAjOnJlc3QgYXJndW1lbnRzKQorICAiUmV0dXJuIGEg YmFnIGZvciBOQU1FLiIKKworICAoZGVmaW5lIHByaXZhdGUta2V5d29yZHMKKyAgICAnKCM6dGFy Z2V0ICM6emlnICM6aW5wdXRzICM6bmF0aXZlLWlucHV0cyAjOm91dHB1dHMpKQorCisgIDs7IFRP RE86IHN1cHBvcnQgY3Jvc3MtY29tcGlsYXRpb24KKyAgOzsgSXQncyBhcyBzaW1wbGUgYXMgYWRk aW5nIHNvbWUgYnVpbGQgZmxhZ3MgdG8gYHppZy1idWlsZC1mbGFnc2AKKyAgKGFuZCAobm90IHRh cmdldCkKKyAgICAgICAoYmFnCisgICAgICAgICAobmFtZSBuYW1lKQorICAgICAgICAgKHN5c3Rl bSBzeXN0ZW0pCisgICAgICAgICAodGFyZ2V0IHRhcmdldCkKKyAgICAgICAgIChob3N0LWlucHV0 cyBgKCxAKGlmIHNvdXJjZQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYCgoInNvdXJj ZSIgLHNvdXJjZSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnKCkpCisgICAgICAg ICAgICAgICAgICAgICAgICAsQGlucHV0cworCisgICAgICAgICAgICAgICAgICAgICAgICA7OyBL ZWVwIHRoZSBzdGFuZGFyZCBpbnB1dHMgb2YgJ2dudS1idWlsZC1zeXN0ZW0nCisgICAgICAgICAg ICAgICAgICAgICAgICA7OyBUT0RPOiBkbyB3ZSBuZWVkIHRoaXM/CisgICAgICAgICAgICAgICAg ICAgICAgICAsQChzdGFuZGFyZC1wYWNrYWdlcykpKQorICAgICAgICAgKGJ1aWxkLWlucHV0cyBg KCgiemlnIiAsemlnKQorICAgICAgICAgICAgICAgICAgICAgICAgICxAbmF0aXZlLWlucHV0cykp CisgICAgICAgICAob3V0cHV0cyBvdXRwdXRzKQorICAgICAgICAgKGJ1aWxkIHppZy1idWlsZCkK KyAgICAgICAgIChhcmd1bWVudHMgKHN0cmlwLWtleXdvcmQtYXJndW1lbnRzIHByaXZhdGUta2V5 d29yZHMgYXJndW1lbnRzKSkpKSkKKworKGRlZmluZSB6aWctYnVpbGQtc3lzdGVtCisgIChidWls ZC1zeXN0ZW0KKyAgICAobmFtZSAnemlnKQorICAgIChkZXNjcmlwdGlvbgorICAgICAiWmlnIGJ1 aWxkIHN5c3RlbSwgdG8gYnVpbGQgWmlnIHBhY2thZ2VzIikKKyAgICAobG93ZXIgbG93ZXIpKSkK ZGlmZiAtLWdpdCBhL2d1aXgvYnVpbGQvemlnLWJ1aWxkLXN5c3RlbS5zY20gYi9ndWl4L2J1aWxk L3ppZy1idWlsZC1zeXN0ZW0uc2NtCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw MDAuLmQ0MTRlYmZiMTcKLS0tIC9kZXYvbnVsbAorKysgYi9ndWl4L2J1aWxkL3ppZy1idWlsZC1z eXN0ZW0uc2NtCkBAIC0wLDAgKzEsMTAwIEBACis7OzsgR05VIEd1aXggLS0tIEZ1bmN0aW9uYWwg cGFja2FnZSBtYW5hZ2VtZW50IGZvciBHTlUKKzs7OyBDb3B5cmlnaHQgwqkgMjAyMyBFa2FpdHog WmFycmFnYSA8ZWthaXR6QGVsZW5xLnRlY2g+Cis7OzsKKzs7OyBUaGlzIGZpbGUgaXMgcGFydCBv ZiBHTlUgR3VpeC4KKzs7OworOzs7IEdOVSBHdWl4IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4g cmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkgaXQKKzs7OyB1bmRlciB0aGUgdGVybXMgb2Yg dGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieQorOzs7IHRoZSBG cmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlciB2ZXJzaW9uIDMgb2YgdGhlIExpY2Vuc2Us IG9yIChhdAorOzs7IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KKzs7OworOzs7IEdO VSBHdWl4IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWws IGJ1dAorOzs7IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQg d2FycmFudHkgb2YKKzs7OyBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNV TEFSIFBVUlBPU0UuICBTZWUgdGhlCis7OzsgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9y IG1vcmUgZGV0YWlscy4KKzs7OworOzs7IFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg b2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCis7OzsgYWxvbmcgd2l0aCBHTlUgR3Vp eC4gIElmIG5vdCwgc2VlIDxodHRwOi8vd3d3LmdudS5vcmcvbGljZW5zZXMvPi4KKworKGRlZmlu ZS1tb2R1bGUgKGd1aXggYnVpbGQgemlnLWJ1aWxkLXN5c3RlbSkKKyAgIzp1c2UtbW9kdWxlICgo Z3VpeCBidWlsZCBnbnUtYnVpbGQtc3lzdGVtKSAjOnByZWZpeCBnbnU6KQorICAjOnVzZS1tb2R1 bGUgKGd1aXggYnVpbGQgdXRpbHMpCisgICM6dXNlLW1vZHVsZSAoaWNlLTkgcG9wZW4pCisgICM6 dXNlLW1vZHVsZSAoaWNlLTkgcmRlbGltKQorICAjOnVzZS1tb2R1bGUgKGljZS05IGZ0dykKKyAg Izp1c2UtbW9kdWxlIChpY2UtOSBmb3JtYXQpCisgICM6dXNlLW1vZHVsZSAoaWNlLTkgbWF0Y2gp CisgICM6dXNlLW1vZHVsZSAocm5ycyBpbyBwb3J0cykKKyAgIzp1c2UtbW9kdWxlIChzcmZpIHNy ZmktMSkKKyAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktMjYpCisgICM6ZXhwb3J0ICglc3RhbmRh cmQtcGhhc2VzCisgICAgICAgICAgICB6aWctYnVpbGQpKQorCis7OyBJbnRlcmVzdGluZyBndWlk ZSBoZXJlOgorOzsgaHR0cHM6Ly9naXRodWIuY29tL3JpdmVyd20vcml2ZXIvYmxvYi9tYXN0ZXIv UEFDS0FHSU5HLm1kCisoZGVmaW5lIGdsb2JhbC1jYWNoZS1kaXIgInppZy1jYWNoZSIpCisKKyhk ZWZpbmUqIChzZXQtY2MgIzpyZXN0IGFyZ3MpCisgIDs7IFRPRE86IFppZyBuZWVkcyB0aGUgZ2Nj LXRvb2xjaGFpbiBpbiBvcmRlciB0byBmaW5kIHRoZSBsaWJjLgorICA7OyAgICAgICB3ZSBuZWVk IHRvIHRoaW5rIGFib3V0IGhvdyB0byBzb2x2ZSB0aGlzIGluIHRoZSBidWlsZCBzeXN0ZW0KKyAg OzsgICAgICAgZGlyZWN0bHk6IC0tbGliYworICAoc2V0ZW52ICJDQyIgImdjYyIpKQorCisoZGVm aW5lKiAoc2V0LXppZy1nbG9iYWwtY2FjaGUtZGlyICM6cmVzdCBhcmdzKQorICAoc2V0ZW52ICJa SUdfR0xPQkFMX0NBQ0hFX0RJUiIgZ2xvYmFsLWNhY2hlLWRpcikpCisKKyhkZWZpbmUqIChidWls ZCAjOmtleQorICAgICAgICAgICAgICAgIHppZy1idWlsZC1mbGFncworICAgICAgICAgICAgICAg IHppZy1yZWxlYXNlLXR5cGUgICAgICAgOzsgInNhZmUiLCAiZmFzdCIgb3IgInNtYWxsIiBlbXB0 eSBmb3IgYQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgZGVidWcg YnVpbGQiCisgICAgICAgICAgICAgICAgIzphbGxvdy1vdGhlci1rZXlzKQorICAiQnVpbGQgYSBn aXZlbiBaaWcgcGFja2FnZS4iCisKKyAgKHNldGVudiAiREVTVERJUiIgIm91dCIpCisgIChsZXQg KChjYWxsIGAoInppZyIgImJ1aWxkIgorICAgICAgICAgICAgICAgICAgICAgIi0tcHJlZml4IiAg ICAgICAgICAgICAiIiAgICAgICAgICAgIDs7IERvbid0IGFkZCAvdXNyCisgICAgICAgICAgICAg ICAgICAgICAiLS1wcmVmaXgtbGliLWRpciIgICAgICJsaWIiCisgICAgICAgICAgICAgICAgICAg ICAiLS1wcmVmaXgtZXhlLWRpciIgICAgICJiaW4iCisgICAgICAgICAgICAgICAgICAgICAiLS1w cmVmaXgtaW5jbHVkZS1kaXIiICJpbmNsdWRlIgorICAgICAgICAgICAgICAgICAgICAgLEAoaWYg emlnLXJlbGVhc2UtdHlwZQorICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0IChzdHJpbmct YXBwZW5kICItRHJlbGVhc2UtIiB6aWctcmVsZWFzZS10eXBlKSkKKyAgICAgICAgICAgICAgICAg ICAgICAgICAnKCkpCisgICAgICAgICAgICAgICAgICAgICAsQHppZy1idWlsZC1mbGFncykpKQor ICAoZm9ybWF0ICN0ICJydW5uaW5nOiB+c34lIiBjYWxsKQorICAoYXBwbHkgaW52b2tlIGNhbGwp KSkKKworKGRlZmluZSogKGNoZWNrICM6a2V5IHRlc3RzPworICAgICAgICAgICAgICAgIHppZy10 ZXN0LWZsYWdzCisgICAgICAgICAgICAgICAgIzphbGxvdy1vdGhlci1rZXlzKQorICAiUnVuIGFs bCB0aGUgdGVzdHMiCisgICh3aGVuIHRlc3RzPworICAgIChsZXQgKChvbGQtZGVzdGRpciAoZ2V0 ZW52ICJERVNURElSIikpKQorICAgICAgKHNldGVudiAiREVTVERJUiIgInRlc3Qtb3V0IikgOzsg QXZvaWQgY29saXNpb25zIHdpdGggdGhlIGJ1aWxkIG91dHB1dAorICAgICAgKGxldCAoKGNhbGwg YCgiemlnIiAiYnVpbGQiICJ0ZXN0IgorICAgICAgICAgICAgICAgICAgICAsQHppZy10ZXN0LWZs YWdzKSkpCisgICAgICAgIChmb3JtYXQgI3QgInJ1bm5pbmc6IH5zfiUiIGNhbGwpCisgICAgICAg IChhcHBseSBpbnZva2UgY2FsbCkpCisgICAgICAoaWYgb2xkLWRlc3RkaXIKKyAgICAgICAgKHNl dGVudiAiREVTVERJUiIgb2xkLWRlc3RkaXIpCisgICAgICAgICh1bnNldGVudiAiREVTVERJUiIp KSkpKQorCisoZGVmaW5lKiAoaW5zdGFsbCAjOmtleSBpbnB1dHMgb3V0cHV0cyAjOmFsbG93LW90 aGVyLWtleXMpCisgICJJbnN0YWxsIGEgZ2l2ZW4gWmlnIHBhY2thZ2UuIgorICAobGV0ICgob3V0 IChhc3NvYy1yZWYgb3V0cHV0cyAib3V0IikpKQorICAgIChjb3B5LXJlY3Vyc2l2ZWx5ICJvdXQi IG91dCkpKQorCisoZGVmaW5lICVzdGFuZGFyZC1waGFzZXMKKyAgKG1vZGlmeS1waGFzZXMgZ251 OiVzdGFuZGFyZC1waGFzZXMKKyAgICAoZGVsZXRlICdib290c3RyYXApCisgICAgKGRlbGV0ZSAn Y29uZmlndXJlKQorICAgIChhZGQtYmVmb3JlICdidWlsZCAnc2V0LXppZy1nbG9iYWwtY2FjaGUt ZGlyIHNldC16aWctZ2xvYmFsLWNhY2hlLWRpcikKKyAgICAoYWRkLWJlZm9yZSAnYnVpbGQgJ3Nl dC1jYyBzZXQtY2MpCisgICAgKHJlcGxhY2UgJ2J1aWxkIGJ1aWxkKQorICAgIChyZXBsYWNlICdj aGVjayBjaGVjaykKKyAgICAocmVwbGFjZSAnaW5zdGFsbCBpbnN0YWxsKSkpCisKKworKGRlZmlu ZSogKHppZy1idWlsZCAjOmtleSBpbnB1dHMgKHBoYXNlcyAlc3RhbmRhcmQtcGhhc2VzKQorICAg ICAgICAgICAgICAgICAgICAgICM6YWxsb3ctb3RoZXIta2V5cyAjOnJlc3QgYXJncykKKyAgIkJ1 aWxkIHRoZSBnaXZlbiBaaWcgcGFja2FnZSwgYXBwbHlpbmcgYWxsIG9mIFBIQVNFUyBpbiBvcmRl ci4iCisgIChhcHBseSBnbnU6Z251LWJ1aWxkICM6aW5wdXRzIGlucHV0cyAjOnBoYXNlcyBwaGFz ZXMgYXJncykpCi0tIAoyLjM4LjAKCg== --b1_N1mp0KgatSjhhZa6M3F7pc9BEJrO39T1nt52y816Jk--