From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.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 WMNhAAYuV2MdEAAAbAwnHQ (envelope-from ) for ; Tue, 25 Oct 2022 02:29:58 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id +DZ7AAYuV2MtHQEA9RJhRA (envelope-from ) for ; Tue, 25 Oct 2022 02:29:58 +0200 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 729623E272 for ; Tue, 25 Oct 2022 02:29:57 +0200 (CEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1on7kg-0000Yy-Mq; Mon, 24 Oct 2022 20:25:08 -0400 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 1on7kc-0000TP-6x for guix-patches@gnu.org; Mon, 24 Oct 2022 20:25:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1on7kb-0002EC-US for guix-patches@gnu.org; Mon, 24 Oct 2022 20:25:01 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1on7kb-0007Rr-Pc for guix-patches@gnu.org; Mon, 24 Oct 2022 20:25:01 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#58768] [PATCH] gnu: Add gocryptfs. Resent-From: Felix Lechner Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Tue, 25 Oct 2022 00:25:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 58768 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 58768@debbugs.gnu.org X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.166665748128599 (code B ref -1); Tue, 25 Oct 2022 00:25:01 +0000 Received: (at submit) by debbugs.gnu.org; 25 Oct 2022 00:24:41 +0000 Received: from localhost ([127.0.0.1]:49759 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1on7kG-0007RC-J7 for submit@debbugs.gnu.org; Mon, 24 Oct 2022 20:24:41 -0400 Received: from lists.gnu.org ([209.51.188.17]:56424) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1on7kE-0007R5-KH for submit@debbugs.gnu.org; Mon, 24 Oct 2022 20:24:39 -0400 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 1on7kE-0007rX-BN for guix-patches@gnu.org; Mon, 24 Oct 2022 20:24:38 -0400 Received: from linode.us-core.com ([2600:3c01::f03c:93ff:fe26:6229]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1on7kB-0002Bx-FV for guix-patches@gnu.org; Mon, 24 Oct 2022 20:24:38 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; s=2017; bh=j/+D5ypGlAiVVn8 H6hTuzwLAmvTK4QX2kVZFh1EMsUA=; h=to:subject:date:from; d=lease-up.com; b=bTD2cG1N3WnNczNvdSZUhKDDJvXlqNC+KmSaLdEEseHR54OqlZ2o9o6QTg2haWNbv+iE wFrpMF6R9aMzkF3ic3gBO1xnNACMwAbYNv6wWXr/yGxCzmK8geRL1jUN5o7PjyV2iYEU84 MzLxJjHG3QMp99I7Kw3BJROVWgR/pxOv4= Received: by linode.us-core.com (OpenSMTPD) with ESMTPSA id 00e3ab49 (TLSv1.3:AEAD-AES256-GCM-SHA384:256:NO) for ; Tue, 25 Oct 2022 00:24:31 +0000 (UTC) Received: by mail-lf1-f42.google.com with SMTP id bp15so19265439lfb.13 for ; Mon, 24 Oct 2022 17:24:31 -0700 (PDT) X-Gm-Message-State: ACrzQf1yWgTQ2NrSu/uMfMc+qSJePjuaIaWTABOXFGxNGbOHK2y7BT7D cMvvoxoImbJa/iu8MhLIC2VLauCAyMvWmLgEhQM= X-Google-Smtp-Source: AMsMyM4bjggsUSDa8hMFIIZ70bTyI9GMkYQxFWSaBIxzErTbiETdP3lSnUZRiMAPerdm4ObOQwV5HH5u4ZRYM44jhAM= X-Received: by 2002:ac2:46d9:0:b0:4a2:22e1:4ad1 with SMTP id p25-20020ac246d9000000b004a222e14ad1mr12062153lfo.19.1666657469503; Mon, 24 Oct 2022 17:24:29 -0700 (PDT) MIME-Version: 1.0 Date: Mon, 24 Oct 2022 17:23:52 -0700 X-Gmail-Original-Message-ID: Message-ID: Content-Type: multipart/mixed; boundary="0000000000006ed3f705ebd0ee35" Received-SPF: pass client-ip=2600:3c01::f03c:93ff:fe26:6229; envelope-from=felix.lechner@lease-up.com; helo=linode.us-core.com X-Spam_score_int: 16 X-Spam_score: 1.6 X-Spam_bar: + X-Spam_report: (1.6 / 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, RCVD_IN_SBL_CSS=3.335, RCVD_IN_XBL=0.375, SPF_HELO_PASS=-0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "Guix-patches" Reply-to: Felix Lechner X-ACL-Warn: , Felix Lechner via Guix-patches From: Felix Lechner via Guix-patches via Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1666657797; h=from:from:sender:sender:reply-to:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type:resent-cc:resent-from:resent-sender: resent-message-id:list-id:list-help:list-unsubscribe:list-subscribe: list-post:dkim-signature; bh=j/+D5ypGlAiVVn8H6hTuzwLAmvTK4QX2kVZFh1EMsUA=; b=QpOBtDurQPKij+FRcXb2zCWtyfju0BvUVaFnn7D1ypdpPhdFRWIFPYLqjcLP3slxFhjows ENZg81uQnq1YQ0qIzhilKKv6/Sfsfzb4KW2GRNYZM0rbYFKCkKmDpV1BYLt76Cwuv0Kxcn Jkt7P/NYzuWQ53VVoe3cxPx64Yhic8R19IAnpBErW/wk0XS8wTg8CmJM/2jNvWuKSAhZW9 fGcN0ka3EoqSYPyMyvr1aHarjEU2XWYPrYk/5uj+9RW51WfTqIMoMh9J4ZLfgOOgXT0Ydt I6/uc/1ykzbw5WC4ivC6fsmCp8C4/G1WnCZMKJRZAQNsDyjsv7EFUC25uq7gHg== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1666657797; a=rsa-sha256; cv=none; b=ZAiAf9D6mDJV3l8ujtjZRsrVIPzePw2eM7DKABYlB2BnA/QZbPSCpuN21EPT3sIGgLTpTq c+UJ50rek+wAkQxyki4MtqxiOrXSFIrPwU+qiezfwIGNlkWKO8mWU/Yeg7H83CUD23IExo egK9cCsGmmOnorYQ7YNXv8dQubHfRnOgLvxiIkWkuHFghqnQ+ITdFY0VYDGetJkB7NzeoR e86HkKNKyrkU0eJuz73L+o5M2NfUyobyQDXPPYBp9oOtDpGur99iHIEkqtaAIFcmrvncV9 wyD+7K1Eqyymjq9Swyoj3NWAOaFRGvBi63Gmk4F1nu/Txdi4Wljsx/5Uk7YMSg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=lease-up.com header.s=2017 header.b=bTD2cG1N; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: 2.29 Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=lease-up.com header.s=2017 header.b=bTD2cG1N; dmarc=pass (policy=none) header.from=gnu.org; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 729623E272 X-Spam-Score: 2.29 X-Migadu-Scanner: scn1.migadu.com X-TUID: dMMF0EHHTemQ --0000000000006ed3f705ebd0ee35 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Control: tags -1 + patch Control: block -1 by 58658 58659 Hi, This patch adds Gocryptfs to master. It's a file-based, encrypted overlay file system inspired by EncFS=E2=80=94but better. Since there are some exotic prerequisites, I placed the code in its own fil= e. Please note that Gocryptfs requires updates to go-golang-org-x-net [1] and go-github-com-sabhiram-go-gitignore. [2] Those were filed separately. Thanks! Kind regards, Felix Lechner [1] https://debbugs.gnu.org/58658 [2] https://debbugs.gnu.org/58659 --0000000000006ed3f705ebd0ee35 Content-Type: text/x-scheme; charset="US-ASCII"; name="gocryptfs.scm" Content-Disposition: attachment; filename="gocryptfs.scm" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l9ngq1ht0 KGRlZmluZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBnb2NyeXB0ZnMpKQoKKHVzZS1tb2R1bGVzIChn bnUgcGFja2FnZXMgZ29sYW5nKQogICAgICAgICAgICAgKGdudSBwYWNrYWdlcyBwa2ctY29uZmln KQogICAgICAgICAgICAgKGdudSBwYWNrYWdlcyB0bHMpCiAgICAgICAgICAgICAoZ3VpeCBidWls ZC1zeXN0ZW0gZ28pCiAgICAgICAgICAgICAoZ3VpeCBnZXhwKQogICAgICAgICAgICAgKGd1aXgg Z2l0LWRvd25sb2FkKQogICAgICAgICAgICAgKChndWl4IGxpY2Vuc2VzKSAjOnByZWZpeCBsaWNl bnNlOikKICAgICAgICAgICAgIChndWl4IHBhY2thZ2VzKSkKCihkZWZpbmUtcHVibGljIGdvLWdp dGh1Yi1jb20taGFud2VuLWdvLWZ1c2UtdjIKICAobGV0ICgoY29tbWl0ICI0YzI1YzljMWVlY2Vm YjhiZWVlYTNkYWRkZjM0ODZlYjFkZDQ4Yjg5IikKICAgICAgICAocmV2aXNpb24gIjAiKSkKICAg IChwYWNrYWdlCiAgICAgIChuYW1lICJnby1naXRodWItY29tLWhhbndlbi1nby1mdXNlLXYyIikK ICAgICAgKHZlcnNpb24gKGdpdC12ZXJzaW9uICIyLjEuMCIgcmV2aXNpb24gY29tbWl0KSkKICAg ICAgKHNvdXJjZSAob3JpZ2luCiAgICAgICAgICAgICAgICAobWV0aG9kIGdpdC1mZXRjaCkKICAg ICAgICAgICAgICAgICh1cmkgKGdpdC1yZWZlcmVuY2UKICAgICAgICAgICAgICAgICAgICAgICh1 cmwgImh0dHBzOi8vZ2l0aHViLmNvbS9oYW53ZW4vZ28tZnVzZSIpCiAgICAgICAgICAgICAgICAg ICAgICAoY29tbWl0IGNvbW1pdCkpKQogICAgICAgICAgICAgICAgKGZpbGUtbmFtZSAoZ2l0LWZp bGUtbmFtZSBuYW1lIHZlcnNpb24pKQogICAgICAgICAgICAgICAgKHNoYTI1NgogICAgICAgICAg ICAgICAgIChiYXNlMzIKICAgICAgICAgICAgICAgICAgIjBoaTN4OTYzYmo5aGNuZ3l5MmJhM21p cGNxeDVnd3F2Y2o3dmcxcjR2bGFsMnFic3FjbWYiKSkpKQogICAgICAoYnVpbGQtc3lzdGVtIGdv LWJ1aWxkLXN5c3RlbSkKICAgICAgKGFyZ3VtZW50cwogICAgICAgJygjOmltcG9ydC1wYXRoICJn aXRodWIuY29tL2hhbndlbi9nby1mdXNlL3YyIikpCiAgICAgIChuYXRpdmUtaW5wdXRzIChsaXN0 CiAgICAgICAgICAgICAgICAgICAgICBnby1nb2xhbmctb3JnLXgtc3lzCiAgICAgICAgICAgICAg ICAgICAgICBnby1nb2xhbmctb3JnLXgtc3luYwogICAgICAgICAgICAgICAgICAgICAgZ28tZ2l0 aHViLWNvbS1reWxlbGVtb25zLWdvZGVidWcpKQogICAgICAoaG9tZS1wYWdlICJodHRwczovL2dp dGh1Yi5jb20vaGFud2VuL2dvLWZ1c2UiKQogICAgICAoc3lub3BzaXMgIkdvIGJpbmRpbmdzIGZv ciBGVVNFIGZpbGVzeXN0ZW1zIikKICAgICAgKGRlc2NyaXB0aW9uCiAgICAgICAiVGhpcyBpcyBh IHJlcG9zaXRvcnkgY29udGFpbmluZyBHbyBiaW5kaW5ncyBmb3Igd3JpdGluZyBGVVNFIGZpbGUg c3lzdGVtcy4iKQogICAgICAobGljZW5zZSBsaWNlbnNlOmJzZC0zKSkpKQoKKGRlZmluZS1wdWJs aWMgZ28tZ2l0aHViLWNvbS1qYWNvYnNhLWNyeXB0bwogIChsZXQgKChjb21taXQgIjlmNDRlMmQx MTExNTQ1MmRhZDhmNDA0ZjAyOTU3NDQyMjg1NWY0NmEiKQogICAgICAgIChyZXZpc2lvbiAiMCIp KQogICAgKHBhY2thZ2UKICAgICAgKG5hbWUgImdvLWdpdGh1Yi1jb20tamFjb2JzYS1jcnlwdG8i KQogICAgICAodmVyc2lvbiAoZ2l0LXZlcnNpb24gIjAuMC4wIiByZXZpc2lvbiBjb21taXQpKQog ICAgICAoc291cmNlIChvcmlnaW4KICAgICAgICAgICAgICAgIChtZXRob2QgZ2l0LWZldGNoKQog ICAgICAgICAgICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQogICAgICAgICAgICAgICAgICAgICAg KHVybCAiaHR0cHM6Ly9naXRodWIuY29tL2phY29ic2EvY3J5cHRvIikKICAgICAgICAgICAgICAg ICAgICAgIChjb21taXQgY29tbWl0KSkpCiAgICAgICAgICAgICAgICAoZmlsZS1uYW1lIChnaXQt ZmlsZS1uYW1lIG5hbWUgdmVyc2lvbikpCiAgICAgICAgICAgICAgICAoc2hhMjU2CiAgICAgICAg ICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAgICAgICAiMThjM2N4OGl6eGRhanEyMnpkcTBu MTlqOWQybDZpaWNrZDNtejM5ajVoOTZrdzdsNXFteSIpKSkpCiAgICAgIChidWlsZC1zeXN0ZW0g Z28tYnVpbGQtc3lzdGVtKQogICAgICAoYXJndW1lbnRzCiAgICAgICAobGlzdCAjOmltcG9ydC1w YXRoICJnaXRodWIuY29tL2phY29ic2EvY3J5cHRvIgogICAgICAgICAgICAgOzsgU291cmNlLW9u bHkgcGFja2FnZS4KICAgICAgICAgICAgICM6dGVzdHM/ICNmCiAgICAgICAgICAgICAjOnBoYXNl cwogICAgICAgICAgICAgI34obW9kaWZ5LXBoYXNlcyAlc3RhbmRhcmQtcGhhc2VzCiAgICAgICAg ICAgICAgICAgOzsgU291cmNlLW9ubHkgcGFja2FnZS4KICAgICAgICAgICAgICAgICAoZGVsZXRl ICdidWlsZCkpKSkKICAgICAgKGhvbWUtcGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL2phY29ic2Ev Y3J5cHRvIikKICAgICAgKHN5bm9wc2lzICJDcnlwdG9ncmFwaHkgbWlzc2luZyBmcm9tIHRoZSBH byBzdGFuZGFyZCBsaWJyYXJ5IikKICAgICAgKGRlc2NyaXB0aW9uCiAgICAgICAiVGhpcyByZXBv c2l0b3J5IGNvbnRhaW5zIEdvIHBhY2thZ2VzIHJlbGF0ZWQgdG8gY3J5cHRvZ3JhcGhpYyBzdGFu ZGFyZHMgdGhhdCBhcmUKbm90IGluY2x1ZGVkIGluIHRoZSBHbyBzdGFuZGFyZCBsaWJyYXJ5LiIp CiAgICAgIChsaWNlbnNlIGxpY2Vuc2U6YXNsMi4wKSkpKQoKKGRlZmluZS1wdWJsaWMgZ28tZ2l0 aHViLWNvbS1qYWNvYnNhLW9nbGVtYXRjaGVycwogIChsZXQgKChjb21taXQgIjE0MTkwMWVhNjdj ZDQ3NjljNjgwMGFhN2JmZGZjNTU4ZmEyMmJkYTUiKQogICAgICAgIChyZXZpc2lvbiAiMCIpKQog ICAgKHBhY2thZ2UKICAgICAgKG5hbWUgImdvLWdpdGh1Yi1jb20tamFjb2JzYS1vZ2xlbWF0Y2hl cnMiKQogICAgICAodmVyc2lvbiAoZ2l0LXZlcnNpb24gIjAuMC4wIiByZXZpc2lvbiBjb21taXQp KQogICAgICAoc291cmNlIChvcmlnaW4KICAgICAgICAgICAgICAgIChtZXRob2QgZ2l0LWZldGNo KQogICAgICAgICAgICAgICAgKHVyaSAoZ2l0LXJlZmVyZW5jZQogICAgICAgICAgICAgICAgICAg ICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL2phY29ic2Evb2dsZW1hdGNoZXJzIikKICAgICAg ICAgICAgICAgICAgICAgIChjb21taXQgY29tbWl0KSkpCiAgICAgICAgICAgICAgICAoZmlsZS1u YW1lIChnaXQtZmlsZS1uYW1lIG5hbWUgdmVyc2lvbikpCiAgICAgICAgICAgICAgICAoc2hhMjU2 CiAgICAgICAgICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAgICAgICAiMDlmZjV4NnZiaGQ5 emwxejR5enlrNTczaWZoMTZycnkzOHExcng5ODZrYno0aHFrbW5pcSIpKSkpCiAgICAgIChidWls ZC1zeXN0ZW0gZ28tYnVpbGQtc3lzdGVtKQogICAgICAoYXJndW1lbnRzCiAgICAgICAnKCM6aW1w b3J0LXBhdGggImdpdGh1Yi5jb20vamFjb2JzYS9vZ2xlbWF0Y2hlcnMiCiAgICAgICAgIDs7IGJy ZWFrIGxvb3Agd2l0aCB3aXRoIGdvLWdpdGh1Yi1jb20tamFjb2JzYS1vZ2xldGVzdAogICAgICAg ICAjOnRlc3RzPyAjZikpCiAgICAgIChob21lLXBhZ2UgImh0dHBzOi8vZ2l0aHViLmNvbS9qYWNv YnNhL29nbGVtYXRjaGVycyIpCiAgICAgIChzeW5vcHNpcyAiTWF0Y2hlcnMgZm9yIEdvIHRlc3Rp bmcgZnJhbWV3b3JrIikKICAgICAgKGRlc2NyaXB0aW9uCiAgICAgICAiUGFja2FnZSBvZ2xlbWF0 Y2hlcnMgcHJvdmlkZXMgYSBzZXQgb2YgbWF0Y2hlcnMgdXNlZnVsIGluIGEgdGVzdGluZyBvciBt b2NraW5nCmZyYW1ld29yay4gIFRoZXNlIG1hdGNoZXJzIGFyZSBpbnNwaXJlZCBieSBhbmQgbW9z dGx5IGNvbXBhdGlibGUgd2l0aCBHb29nbGUKVGVzdCBmb3IgQysrIGFuZCBHb29nbGUgSlMgVGVz dC4iKQogICAgICAobGljZW5zZSBsaWNlbnNlOmFzbDIuMCkpKSkKCihkZWZpbmUtcHVibGljIGdv LWdpdGh1Yi1jb20tamFjb2JzYS1vZ2xlbW9jawogIChsZXQgKChjb21taXQgImU5NGQ3OTRkMDZm ZmM2ZGU0MmNiMTlkMGRhYjNjMjE5ZWZkZDZkY2YiKQogICAgICAgIChyZXZpc2lvbiAiMCIpKQog ICAgKHBhY2thZ2UKICAgICAgKG5hbWUgImdvLWdpdGh1Yi1jb20tamFjb2JzYS1vZ2xlbW9jayIp CiAgICAgICh2ZXJzaW9uIChnaXQtdmVyc2lvbiAiMC4wLjAiIHJldmlzaW9uIGNvbW1pdCkpCiAg ICAgIChzb3VyY2UgKG9yaWdpbgogICAgICAgICAgICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCiAg ICAgICAgICAgICAgICAodXJpIChnaXQtcmVmZXJlbmNlCiAgICAgICAgICAgICAgICAgICAgICAo dXJsICJodHRwczovL2dpdGh1Yi5jb20vamFjb2JzYS9vZ2xlbW9jayIpCiAgICAgICAgICAgICAg ICAgICAgICAoY29tbWl0IGNvbW1pdCkpKQogICAgICAgICAgICAgICAgKGZpbGUtbmFtZSAoZ2l0 LWZpbGUtbmFtZSBuYW1lIHZlcnNpb24pKQogICAgICAgICAgICAgICAgKHNoYTI1NgogICAgICAg ICAgICAgICAgIChiYXNlMzIKICAgICAgICAgICAgICAgICAgIjE0eXhmOHlrd2R3a2NjY2tzbDY3 NDF4Z3pjZjhxeWt5aTU4a3A0bWF4cGdzY3FoZGw4cnEiKSkpKQogICAgICAoYnVpbGQtc3lzdGVt IGdvLWJ1aWxkLXN5c3RlbSkKICAgICAgKGFyZ3VtZW50cwogICAgICAgKGxpc3QKICAgICAgICAj OmltcG9ydC1wYXRoICJnaXRodWIuY29tL2phY29ic2Evb2dsZW1vY2siCiAgICAgICAgOzsgYnJl YWsgbG9vcCB3aXRoIHdpdGggZ28tZ2l0aHViLWNvbS1qYWNvYnNhLW9nbGV0ZXN0CiAgICAgICAg Izp0ZXN0cz8gI2YpKQogICAgICAobmF0aXZlLWlucHV0cyAobGlzdAogICAgICAgICAgICAgICAg ICAgICAgZ28tZ2l0aHViLWNvbS1qYWNvYnNhLW9nbGVtYXRjaGVycykpCiAgICAgIChob21lLXBh Z2UgImh0dHBzOi8vZ2l0aHViLmNvbS9qYWNvYnNhL29nbGVtb2NrIikKICAgICAgKHN5bm9wc2lz ICJNb2NraW5nIGZyYW1ld29yayBmb3IgdW5pdCB0ZXN0cyIpCiAgICAgIChkZXNjcmlwdGlvbgog ICAgICAgIlBhY2thZ2Ugb2dsZW1vY2sgcHJvdmlkZXMgYSBtb2NraW5nIGZyYW1ld29yayBmb3Ig dW5pdCB0ZXN0cy4iKQogICAgICAobGljZW5zZSBsaWNlbnNlOmFzbDIuMCkpKSkKCihkZWZpbmUt cHVibGljIGdvLWdpdGh1Yi1jb20tamFjb2JzYS1vZ2xldGVzdAogIChsZXQgKChjb21taXQgIjgw ZDUwYTczNWExMTA4YTJhZWI3YWJjNGE5ODhkMTgzZjIwYzUyOTIiKQogICAgICAgIChyZXZpc2lv biAiMCIpKQogICAgKHBhY2thZ2UKICAgICAgKG5hbWUgImdvLWdpdGh1Yi1jb20tamFjb2JzYS1v Z2xldGVzdCIpCiAgICAgICh2ZXJzaW9uIChnaXQtdmVyc2lvbiAiMC4wLjAiIHJldmlzaW9uIGNv bW1pdCkpCiAgICAgIChzb3VyY2UgKG9yaWdpbgogICAgICAgICAgICAgICAgKG1ldGhvZCBnaXQt ZmV0Y2gpCiAgICAgICAgICAgICAgICAodXJpIChnaXQtcmVmZXJlbmNlCiAgICAgICAgICAgICAg ICAgICAgICAodXJsICJodHRwczovL2dpdGh1Yi5jb20vamFjb2JzYS9vZ2xldGVzdCIpCiAgICAg ICAgICAgICAgICAgICAgICAoY29tbWl0IGNvbW1pdCkpKQogICAgICAgICAgICAgICAgKGZpbGUt bmFtZSAoZ2l0LWZpbGUtbmFtZSBuYW1lIHZlcnNpb24pKQogICAgICAgICAgICAgICAgKHNoYTI1 NgogICAgICAgICAgICAgICAgIChiYXNlMzIKICAgICAgICAgICAgICAgICAgIjFsYndieHpyNzVn NjVxMDdyeTVrNGtnbHhxczN5bTd4a3Zxem56bTU1cm0zcWs3NnY4M3IiKSkpKQogICAgICAoYnVp bGQtc3lzdGVtIGdvLWJ1aWxkLXN5c3RlbSkKICAgICAgKGFyZ3VtZW50cwogICAgICAgJygjOmlt cG9ydC1wYXRoICJnaXRodWIuY29tL2phY29ic2Evb2dsZXRlc3QiCiAgICAgICAgIDs7IFRoZXNl IHRlc3RzIHNob3VsZCBiZSBtYWRlIHdvcmtpbmcKICAgICAgICAgIzp0ZXN0cz8gI2YpKQogICAg ICAobmF0aXZlLWlucHV0cyAobGlzdAogICAgICAgICAgICAgICAgICAgICAgZ28tZ2l0aHViLWNv bS1qYWNvYnNhLW9nbGVtYXRjaGVycwogICAgICAgICAgICAgICAgICAgICAgZ28tZ2l0aHViLWNv bS1qYWNvYnNhLW9nbGVtb2NrCiAgICAgICAgICAgICAgICAgICAgICBnby1naXRodWItY29tLWph Y29ic2EtcmVxdHJhY2UKICAgICAgICAgICAgICAgICAgICAgIGdvLWdvbGFuZy1vcmcteC1uZXQp KQogICAgICAoaG9tZS1wYWdlICJodHRwczovL2dpdGh1Yi5jb20vamFjb2JzYS9vZ2xldGVzdCIp CiAgICAgIChzeW5vcHNpcyAiRXhwcmVzc2l2ZSB1bml0IHRlc3RzIikKICAgICAgKGRlc2NyaXB0 aW9uCiAgICAgICAiUGFja2FnZSBvZ2xldGVzdCBwcm92aWRlcyBhIGZyYW1ld29yayBmb3Igd3Jp dGluZyBleHByZXNzaXZlIHVuaXQgdGVzdHMuICBJdAppbnRlZ3JhdGVzIHdpdGggdGhlIGJ1aWx0 aW4gdGVzdGluZyBwYWNrYWdlLCBzbyBpdCB3b3JrcyB3aXRoIHRoZSBnb3Rlc3QKY29tbWFuZC4g IFVubGlrZSB0aGUgdGVzdGluZyBwYWNrYWdlIHdoaWNoIG9mZmVycyBvbmx5IGJhc2ljIGNhcGFi aWxpdGllcyBmb3IKc2lnbmFsbGluZyBmYWlsdXJlcywgaXQgb2ZmZXJzIHdheXMgdG8gZXhwcmVz cyBleHBlY3RhdGlvbnMgYW5kIGdldCBuaWNlIGZhaWx1cmUKbWVzc2FnZXMgYXV0b21hdGljYWxs eS4iKQogICAgICAobGljZW5zZSBsaWNlbnNlOmFzbDIuMCkpKSkKCihkZWZpbmUtcHVibGljIGdv LWdpdGh1Yi1jb20tamFjb2JzYS1yZXF0cmFjZQogIChsZXQgKChjb21taXQgIjI0NWM5ZTAyMzRj YjJhZDU0MjQ4M2EzMzYzMjRlOTgyZjFhMjI5MzQiKQogICAgICAgIChyZXZpc2lvbiAiMCIpKQog ICAgKHBhY2thZ2UKICAgICAgKG5hbWUgImdvLWdpdGh1Yi1jb20tamFjb2JzYS1yZXF0cmFjZSIp CiAgICAgICh2ZXJzaW9uIChnaXQtdmVyc2lvbiAiMC4wLjAiIHJldmlzaW9uIGNvbW1pdCkpCiAg ICAgIChzb3VyY2UgKG9yaWdpbgogICAgICAgICAgICAgICAgKG1ldGhvZCBnaXQtZmV0Y2gpCiAg ICAgICAgICAgICAgICAodXJpIChnaXQtcmVmZXJlbmNlCiAgICAgICAgICAgICAgICAgICAgICAo dXJsICJodHRwczovL2dpdGh1Yi5jb20vamFjb2JzYS9yZXF0cmFjZSIpCiAgICAgICAgICAgICAg ICAgICAgICAoY29tbWl0IGNvbW1pdCkpKQogICAgICAgICAgICAgICAgKGZpbGUtbmFtZSAoZ2l0 LWZpbGUtbmFtZSBuYW1lIHZlcnNpb24pKQogICAgICAgICAgICAgICAgKHNoYTI1NgogICAgICAg ICAgICAgICAgIChiYXNlMzIKICAgICAgICAgICAgICAgICAgIjB6ZnlpamlnMTA4OTZ2NDJydnhr YTFuNHduNmxpanF6NDB5MjI4MTE4N2w3bXE4dnY1am4iKSkpKQogICAgICAoYnVpbGQtc3lzdGVt IGdvLWJ1aWxkLXN5c3RlbSkKICAgICAgKGFyZ3VtZW50cwogICAgICAgJygjOmltcG9ydC1wYXRo ICJnaXRodWIuY29tL2phY29ic2EvcmVxdHJhY2UiKSkKICAgICAgKGlucHV0cyAobGlzdAogICAg ICAgICAgICAgICBnby1nb2xhbmctb3JnLXgtbmV0KSkKICAgICAgKGhvbWUtcGFnZSAiaHR0cHM6 Ly9naXRodWIuY29tL2phY29ic2EvcmVxdHJhY2UiKQogICAgICAoc3lub3BzaXMgIlNpbXBsZSBy ZXF1ZXN0IHRyYWNpbmcgZnJhbWV3b3JrIikKICAgICAgKGRlc2NyaXB0aW9uCiAgICAgICAiUGFj a2FnZSByZXF0cmFjZSBjb250YWlucyBhIHZlcnkgc2ltcGxlIHJlcXVlc3QgdHJhY2luZyBmcmFt ZXdvcmsuIikKICAgICAgKGxpY2Vuc2UgbGljZW5zZTphc2wyLjApKSkpCgooZGVmaW5lLXB1Ymxp YyBnby1naXRodWItY29tLXBrZy14YXR0cgogIChwYWNrYWdlCiAgICAobmFtZSAiZ28tZ2l0aHVi LWNvbS1wa2cteGF0dHIiKQogICAgKHZlcnNpb24gIjAuNC45IikKICAgIChzb3VyY2UgKG9yaWdp bgogICAgICAgICAgICAgIChtZXRob2QgZ2l0LWZldGNoKQogICAgICAgICAgICAgICh1cmkgKGdp dC1yZWZlcmVuY2UKICAgICAgICAgICAgICAgICAgICAodXJsICJodHRwczovL2dpdGh1Yi5jb20v cGtnL3hhdHRyIikKICAgICAgICAgICAgICAgICAgICAoY29tbWl0IChzdHJpbmctYXBwZW5kICJ2 IiB2ZXJzaW9uKSkpKQogICAgICAgICAgICAgIChmaWxlLW5hbWUgKGdpdC1maWxlLW5hbWUgbmFt ZSB2ZXJzaW9uKSkKICAgICAgICAgICAgICAoc2hhMjU2CiAgICAgICAgICAgICAgIChiYXNlMzIK ICAgICAgICAgICAgICAgICIwcWc0emgwZDhtNGFkYWlpY3NkMGNwdzB3Nmc4c2swMWY0ano3anl4 Z2lyaDF3ZmNzcXl6IikpKSkKICAgIChidWlsZC1zeXN0ZW0gZ28tYnVpbGQtc3lzdGVtKQogICAg KGFyZ3VtZW50cwogICAgICcoIzppbXBvcnQtcGF0aCAiZ2l0aHViLmNvbS9wa2cveGF0dHIiKSkK ICAgIChuYXRpdmUtaW5wdXRzIChsaXN0IGdvLWdvbGFuZy1vcmcteC1zeXMpKQogICAgKGhvbWUt cGFnZSAiaHR0cHM6Ly9naXRodWIuY29tL3BrZy94YXR0ciIpCiAgICAoc3lub3BzaXMgIlN1cHBv cnQgZm9yIGV4dGVuZGVkIGZpbGUgc3lzdGVtIGF0dHJpYnV0ZXMiKQogICAgKGRlc2NyaXB0aW9u CiAgICAgIlBhY2thZ2UgeGF0dHIgcHJvdmlkZXMgc3VwcG9ydCBmb3IgZXh0ZW5kZWQgYXR0cmli dXRlcyBvbiBMaW51eCwgRGFyd2luIGFuZApGcmVlQlNELiAgRXh0ZW5kZWQgYXR0cmlidXRlcyBh cmUgbmFtZTp2YWx1ZSBwYWlycyBwZXJtYW5lbnRseSBhc3NvY2lhdGVkIHdpdGgKZmlsZXMgb3Ig ZGlyZWN0b3JpZXMuICBUaGV5IGFyZSBzaW1pbGFyIHRvIHRoZSBlbnZpcm9ubWVudCBzdHJpbmdz IGFzc29jaWF0ZWQgd2l0aAphIHByb2Nlc3MuICBBbiBhdHRyaWJ1dGUgbWF5IGJlIGRlZmluZWQg b3IgdW5kZWZpbmVkLiAgSWYgZGVmaW5lZCwgaXRzIHZhbHVlIG1heQpiZSBlbXB0eSBvciBub24t ZW1wdHkuICBZb3UgY2FuIGZpbmQgbW9yZSBkZXRhaWxzIGhlcmU6CkBAdXJse2h0dHBzOi8vZW4u d2lraXBlZGlhLm9yZy93aWtpL0V4dGVuZGVkX2ZpbGVfYXR0cmlidXRlcywKaHR0cHM6Ly9lbi53 aWtpcGVkaWEub3JnL3dpa2kvRXh0ZW5kZWRfZmlsZV9hdHRyaWJ1dGVzfQouIikKICAgIChsaWNl bnNlIGxpY2Vuc2U6YnNkLTIpKSkKCihkZWZpbmUtcHVibGljIGdvLWdpdGh1Yi1jb20tcmZqYWtv Yi1lbWUKICAocGFja2FnZQogICAgKG5hbWUgImdvLWdpdGh1Yi1jb20tcmZqYWtvYi1lbWUiKQog ICAgKHZlcnNpb24gIjEuMS4yIikKICAgIChzb3VyY2UgKG9yaWdpbgogICAgICAgICAgICAgICht ZXRob2QgZ2l0LWZldGNoKQogICAgICAgICAgICAgICh1cmkgKGdpdC1yZWZlcmVuY2UKICAgICAg ICAgICAgICAgICAgICAodXJsICJodHRwczovL2dpdGh1Yi5jb20vcmZqYWtvYi9lbWUiKQogICAg ICAgICAgICAgICAgICAgIChjb21taXQgKHN0cmluZy1hcHBlbmQgInYiIHZlcnNpb24pKSkpCiAg ICAgICAgICAgICAgKGZpbGUtbmFtZSAoZ2l0LWZpbGUtbmFtZSBuYW1lIHZlcnNpb24pKQogICAg ICAgICAgICAgIChzaGEyNTYKICAgICAgICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAgICAg IjF5cmJodnkwMzM3bWYxMmZwOHA0c3k4cnk4cjN3MnFmZGY4dmFsNWhqMDdwMmxyaTBjcWsiKSkp KQogICAgKGJ1aWxkLXN5c3RlbSBnby1idWlsZC1zeXN0ZW0pCiAgICAoYXJndW1lbnRzCiAgICAg JygjOmltcG9ydC1wYXRoICJnaXRodWIuY29tL3JmamFrb2IvZW1lIikpCiAgICAoaG9tZS1wYWdl ICJodHRwczovL2dpdGh1Yi5jb20vcmZqYWtvYi9lbWUiKQogICAgKHN5bm9wc2lzICJFTUUgZm9y IEdvIikKICAgIChkZXNjcmlwdGlvbgogICAgICJFTUUgKEVDQi1NaXgtRUNCIG9yLCBjbGVhcmVy LCBFbmNyeXB0LU1peC1FbmNyeXB0KSBpcyBhIHdpZGUtYmxvY2sgZW5jcnlwdGlvbgptb2RlIGRl dmVsb3BlZCBieSBIYWxldmkgYW5kIFJvZ2F3YXkuIikKICAgIChsaWNlbnNlIGxpY2Vuc2U6ZXhw YXQpKSkKCihkZWZpbmUtcHVibGljIGdvY3J5cHRmcwogIChwYWNrYWdlCiAgICAobmFtZSAiZ29j cnlwdGZzIikKICAgICh2ZXJzaW9uICIyLjMuMCIpCiAgICAoc291cmNlIChvcmlnaW4KICAgICAg ICAgICAgICAobWV0aG9kIGdpdC1mZXRjaCkKICAgICAgICAgICAgICAodXJpIChnaXQtcmVmZXJl bmNlCiAgICAgICAgICAgICAgICAgICAgKHVybCAiaHR0cHM6Ly9naXRodWIuY29tL3JmamFrb2Iv Z29jcnlwdGZzIikKICAgICAgICAgICAgICAgICAgICAoY29tbWl0IChzdHJpbmctYXBwZW5kICJ2 IiB2ZXJzaW9uKSkpKQogICAgICAgICAgICAgIChmaWxlLW5hbWUgKGdpdC1maWxlLW5hbWUgbmFt ZSB2ZXJzaW9uKSkKICAgICAgICAgICAgICAoc2hhMjU2CiAgICAgICAgICAgICAgIChiYXNlMzIK ICAgICAgICAgICAgICAgICIxbGtjeDYxcjkzeHEyMXNjZzk4aHJ2Y2x3d3hibGk5M3Bxbm5jazBk MDhpc3ZoZ2pkNTkwIikpKSkKICAgIChidWlsZC1zeXN0ZW0gZ28tYnVpbGQtc3lzdGVtKQogICAg KGFyZ3VtZW50cwogICAgIChsaXN0CiAgICAgICM6aW1wb3J0LXBhdGggImdpdGh1Yi5jb20vcmZq YWtvYi9nb2NyeXB0ZnMiCiAgICAgICM6YnVpbGQtZmxhZ3MKICAgICAgI34obGlzdAogICAgICAg ICAiLWxkZmxhZ3MiIChzdHJpbmctYXBwZW5kCiAgICAgICAgICAgICAgICAgICAgICItWCBtYWlu LkdpdFZlcnNpb249IiAjJHZlcnNpb24KICAgICAgICAgICAgICAgICAgICAgIiAtWCBtYWluLkdp dFZlcnNpb25GdXNlPSIgIyQocGFja2FnZS12ZXJzaW9uCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvLWdpdGh1Yi1jb20taGFud2VuLWdvLWZ1c2Ut djIpCiAgICAgICAgICAgICAgICAgICAgICIgLVggbWFpbi5CdWlsZERhdGU9IiAiW3JlcHJvZHVj aWJsZV0iKSkKICAgICAgIzpwaGFzZXMKICAgICAgI34obW9kaWZ5LXBoYXNlcyAlc3RhbmRhcmQt cGhhc2VzCiAgICAgICAgICA7OyBhZnRlciAnY2hlY2sgcGhhc2UsIHNob3VsZCBtYXliZSB1bm1v dW50IGxlZnRvdmVyIG1vdW50cyBhcyBpbgogICAgICAgICAgOzsgaHR0cHM6Ly9naXRodWIuY29t L3JmamFrb2IvZ29jcnlwdGZzL2Jsb2IvYTU1YjNjYzE1YTZkOWJjZTExNmE5MGYzM2RmNGJjOTlk OWRkNmExMC90ZXN0LmJhc2gjTDI4CiAgICAgICAgICAocmVwbGFjZSAnYnVpbGQKICAgICAgICAg ICAgKGxhbWJkYSBhcmd1bWVudHMKICAgICAgICAgICAgICAoZm9yLWVhY2gKICAgICAgICAgICAg ICAgKGxhbWJkYSAoZGlyZWN0b3J5KQogICAgICAgICAgICAgICAgIChhcHBseSAoYXNzb2MtcmVm ICVzdGFuZGFyZC1waGFzZXMgJ2J1aWxkKQogICAgICAgICAgICAgICAgICAgICAgICAoYXBwZW5k IGFyZ3VtZW50cyAobGlzdCAjOmltcG9ydC1wYXRoIGRpcmVjdG9yeSkpKSkKICAgICAgICAgICAg ICAgKGxpc3QKICAgICAgICAgICAgICAgICJnaXRodWIuY29tL3JmamFrb2IvZ29jcnlwdGZzIgog ICAgICAgICAgICAgICAgImdpdGh1Yi5jb20vcmZqYWtvYi9nb2NyeXB0ZnMvZ29jcnlwdGZzLXhy YXkiCiAgICAgICAgICAgICAgICAiZ2l0aHViLmNvbS9yZmpha29iL2dvY3J5cHRmcy9jb250cmli L3N0YXRmcyIKICAgICAgICAgICAgICAgICJnaXRodWIuY29tL3JmamFrb2IvZ29jcnlwdGZzL2Nv bnRyaWIvZmluZGhvbGVzIgogICAgICAgICAgICAgICAgImdpdGh1Yi5jb20vcmZqYWtvYi9nb2Ny eXB0ZnMvY29udHJpYi9hdG9taWNyZW5hbWUiKSkpKSkpKQogICAgKG5hdGl2ZS1pbnB1dHMgKGxp c3QKICAgICAgICAgICAgICAgICAgICBnby1naXRodWItY29tLWhhbndlbi1nby1mdXNlLXYyCiAg ICAgICAgICAgICAgICAgICAgZ28tZ2l0aHViLWNvbS1qYWNvYnNhLWNyeXB0bwogICAgICAgICAg ICAgICAgICAgIGdvLWdpdGh1Yi1jb20tamFjb2JzYS1vZ2xlbWF0Y2hlcnMKICAgICAgICAgICAg ICAgICAgICBnby1naXRodWItY29tLWphY29ic2Etb2dsZW1vY2sKICAgICAgICAgICAgICAgICAg ICBnby1naXRodWItY29tLWphY29ic2Etb2dsZXRlc3QKICAgICAgICAgICAgICAgICAgICBnby1n aXRodWItY29tLWphY29ic2EtcmVxdHJhY2UKICAgICAgICAgICAgICAgICAgICBnby1naXRodWIt Y29tLXBrZy14YXR0cgogICAgICAgICAgICAgICAgICAgIGdvLWdpdGh1Yi1jb20tcmZqYWtvYi1l bWUKICAgICAgICAgICAgICAgICAgICBnby1naXRodWItY29tLXNhYmhpcmFtLWdvLWdpdGlnbm9y ZQogICAgICAgICAgICAgICAgICAgIGdvLWdpdGh1Yi1jb20tc3BmMTMtcGZsYWcKICAgICAgICAg ICAgICAgICAgICBnby1nb2xhbmctb3JnLXgtY3J5cHRvCiAgICAgICAgICAgICAgICAgICAgZ28t Z29sYW5nLW9yZy14LW5ldAogICAgICAgICAgICAgICAgICAgIGdvLWdvbGFuZy1vcmcteC1zeXMK ICAgICAgICAgICAgICAgICAgICBnby1nb2xhbmctb3JnLXgtdGVybQogICAgICAgICAgICAgICAg ICAgIG9wZW5zc2wKICAgICAgICAgICAgICAgICAgICBwa2ctY29uZmlnKSkKICAgIChob21lLXBh Z2UgImh0dHBzOi8vZ2l0aHViLmNvbS9yZmpha29iL2dvY3J5cHRmcyIpCiAgICAoc3lub3BzaXMg IkVuY3J5cHRlZCBvdmVybGF5IGZpbGVzeXN0ZW0iKQogICAgKGRlc2NyaXB0aW9uCiAgICAgIkdv Y3J5cHRmcyBpcyBhbiBlbmNyeXB0ZWQgb3ZlcmxheSBmaWxlc3lzdGVtIHdyaXR0ZW4gaW4gR28u ICBJdApmZWF0dXJlcyBhIGZpbGUtYmFzZWQgZW5jcnlwdGlvbiB0aGF0IGlzIGltcGxlbWVudGVk IGFzIGEgbW91bnRhYmxlCkZVU0UgZmlsZXN5c3RlbS4KCkdvY3J5cHRmcyB3YXMgaW5zcGlyZWQg YnkgRW5jRlMgYW5kIHN0cml2ZXMgdG8gZml4IGl0cyBzZWN1cml0eSBpc3N1ZXMKd2hpbGUgcHJv dmlkaW5nIGdvb2QgcGVyZm9ybWFuY2UuICBHb2NyeXB0ZnMgaXMgYXMgZmFzdCBhcyBFbmNGUyBp biB0aGUKZGVmYXVsdCBtb2RlIGFuZCBzaWduaWZpY2FudGx5IGZhc3RlciB0aGFuIHBhcmFub2lh IG1vZGUgaW4gRW5jRlMsCndoaWNoIHByb3ZpZGVzIGEgc2VjdXJpdHkgbGV2ZWwgY29tcGFyYWJs ZSB0byBHb2NyeXB0ZnMuCgpPbiBDUFVzIHdpdGhvdXQgQUVTLU5JLCBnb2NyeXB0ZnMgdXNlcyBP cGVuU1NMIHRocm91Z2ggYSB0aGluIHdyYXBwZXIKY2FsbGVkIHN0dXBpZGdjbS4gIFRoaXMgcHJv dmlkZXMgYSA0eCBzcGVlZHVwIGNvbXBhcmVkIHRvIEdvJ3MgYnVpbHRpbgpBRVMtR0NNIGltcGxl bWVudGF0aW9uLiIpCiAgICAobGljZW5zZSBsaWNlbnNlOmV4cGF0KSkpCg== --0000000000006ed3f705ebd0ee35--