From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp2.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms13.migadu.com with LMTPS id qGfsFxzsfWeQTQEAe85BDQ:P1 (envelope-from ) for ; Wed, 08 Jan 2025 03:08:12 +0000 Received: from aspmx1.migadu.com ([2001:41d0:403:58f0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp2.migadu.com with LMTPS id qGfsFxzsfWeQTQEAe85BDQ (envelope-from ) for ; Wed, 08 Jan 2025 04:08:12 +0100 X-Envelope-To: larch@yhetil.org Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=debbugs.gnu.org header.s=debbugs-gnu-org header.b=p6lcHcdd; dkim=fail ("headers rsa verify failed") header.d=gmail.com header.s=20230601 header.b="KPBB/xuq"; 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"; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=gmail.com (policy=none) ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1736305662; h=from:from:sender:sender: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:in-reply-to:in-reply-to:references:references: list-id:list-help:list-unsubscribe:list-subscribe:list-post: dkim-signature; bh=AsdM/1hyrWm9r0kU1+zwmFJOWkdaPyhWDfrHZBipIVw=; b=cHlU7JOhdd96j7J6caYniOmHcCUqYwVPigOOz0S/KWTxfvX+KYHhXMg8qHs4bNkbvb86jp KCq+YWuC4luVoDKosjMqII/xTgdKRVzrGyWsTmNIjekQlweNqdOsd6oT8mBqKlmRYAIfjx 9ODnUAen2yN4BwXlxqW1FMtt8wdv8V6IaGh9K6Xs8Dp9cqmL6wFb56mLtG19XcLxCXmHZG 5pA2Mrdo1A/1Y7zJgd9015wV9BbTQRi/3uDXU/oBEovrIyHwczKBGWJgGxEVNny9Bn0qhd 1EjJGRDDenaAWbYeT1e++OgVloLZhz/ol24ISCTIiG1geNNtCIJDbQkpMQMf4Q== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=debbugs.gnu.org header.s=debbugs-gnu-org header.b=p6lcHcdd; dkim=fail ("headers rsa verify failed") header.d=gmail.com header.s=20230601 header.b="KPBB/xuq"; 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"; dmarc=fail reason="SPF not aligned (relaxed), DKIM not aligned (relaxed)" header.from=gmail.com (policy=none) ARC-Seal: i=1; s=key1; d=yhetil.org; t=1736305662; a=rsa-sha256; cv=none; b=V/FzXhBLHyWQsToS6uyK1vnqLBdveeKBCemHXXLYDyZL824xIbvLBGr2iOff6DEVHcdvzH /AYCkCByZoE0Yh9fo2z2ev2Q1MRedb840ceiGGYH2R8ALH5/fNuhPpBOdrpWRdXcrMfle2 QMZPF4UolvY1IsIaHxyOPksMCsDaqvZ8SzQGSqlM1kMdFe5E303yJWkr3z87FCR6pTNFx9 2bhDEWIEYbkRRW14fT25Ml40yUoRKSgDUkuaTSqb9zo/aATCwZ9U0KysIue4oADyg+420C z8mrvF9M3yBWTbrlTt4Aw2hxLZ6aDWkgGggCUQWF8UpfLaWNY0QYz93lGTgxZg== 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 9C1B2465F7 for ; Wed, 08 Jan 2025 04:07:41 +0100 (CET) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1tVMPR-0003Hs-RH; Tue, 07 Jan 2025 22:07:05 -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 1tVMPQ-0003Hi-5x for guix-patches@gnu.org; Tue, 07 Jan 2025 22:07:04 -0500 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1tVMPP-0003P9-Ly for guix-patches@gnu.org; Tue, 07 Jan 2025 22:07:03 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=debbugs.gnu.org; s=debbugs-gnu-org; h=Date:From:MIME-Version:To:In-Reply-To:References:Subject; bh=AsdM/1hyrWm9r0kU1+zwmFJOWkdaPyhWDfrHZBipIVw=; b=p6lcHcdd3hIzxcLsVBJ9VASzHNvXc6TIG98oU0hq/oyaYg26lImqCjzwOSHUQaGyd8mwWG76Sd4BcsKBvthA5IDcLZYA5F/wgJiP6Z2WB36+VeOL0AmwgLRVQiw374Bb4vROSvdVkz0cBhjs0OKpqMp169CSH67puRJXZ6VTBn2PYZ2vzvTQt5NkMW/pHP1VEKSYmC6KPez3UG4tJYUkjZ6DhAI72vRObUMHKcS690LQSjFZ6fcirzaY8ZR+WPHEh/0lgRe+Cx2/TVy7nacNPTiXL2zSRtekMJmvsliAuY1PXUzDas3a0gSOqF1rPpn/Pg5dChiIYkAKhgkMxM6Igw==; Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1tVMPP-00082X-Ct for guix-patches@gnu.org; Tue, 07 Jan 2025 22:07:03 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#72207] [PATCH] gnu: ganeti: Fix build. References: <5d7ae8c0db78c963581ef2fb1cca83c7c5b8466b.1721476128.git.attila@lendvai.name> In-Reply-To: <5d7ae8c0db78c963581ef2fb1cca83c7c5b8466b.1721476128.git.attila@lendvai.name> Resent-From: Reed Meyerson Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Wed, 08 Jan 2025 03:07:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 72207 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 72207@debbugs.gnu.org Received: via spool by 72207-submit@debbugs.gnu.org id=B72207.173630562230897 (code B ref 72207); Wed, 08 Jan 2025 03:07:03 +0000 Received: (at 72207) by debbugs.gnu.org; 8 Jan 2025 03:07:02 +0000 Received: from localhost ([127.0.0.1]:45434 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1tVMPL-00081m-9Z for submit@debbugs.gnu.org; Tue, 07 Jan 2025 22:07:02 -0500 Received: from mail-ed1-x536.google.com ([2a00:1450:4864:20::536]:58485) by debbugs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1tVGA0-0004nk-IF for 72207@debbugs.gnu.org; Tue, 07 Jan 2025 15:26:45 -0500 Received: by mail-ed1-x536.google.com with SMTP id 4fb4d7f45d1cf-5d414b8af7bso31613590a12.0 for <72207@debbugs.gnu.org>; Tue, 07 Jan 2025 12:26:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1736281603; x=1736886403; darn=debbugs.gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=AsdM/1hyrWm9r0kU1+zwmFJOWkdaPyhWDfrHZBipIVw=; b=KPBB/xuqJ9ouOFKHRECa+hWZgj99g4MSP8abqmANrQ/2/HPDxc2ZqYD1Nvqq74/GHK df9Oajsz2uqlxWZkpLoYZ5/01KkXRq7UNZzXY9N/12A6S486ueGr6CguvmvT5rLkc39i 3Be2D5VccX2CM7MgA6QOX/uc+3DrGG+gWN/oXwPW/Q5S7vF3XJC/f9MYrm0QWrwDlFrY /YDL7N5qcfotz62fVqvX0IUQRZjC66xHUsuPos1UeZHmue366PxlTkgH4OYDVrichTZM 8Fq4MwgHt8iGnrWJhPci+VmKmxtv30U2AhJ8dAr7gqDzuMDsF0aLQS2YdCwCJQBX7o1d aymg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736281603; x=1736886403; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=AsdM/1hyrWm9r0kU1+zwmFJOWkdaPyhWDfrHZBipIVw=; b=RAWwwtMwCQuBkzsO3WhScKqixRU/t6ZnEqpVnZp0smtW1C3D+WpK9eF3uZ1DtpYdTm nGliG2QCezKlnXn5xnaWUD7S6l411+GlkYmDZZ8mLIWmAGBZEbNQEPrQr5cZ2uYLdSKH 8QUiUjGocs3zGefanybtHPC6+inB1DPgqfS95H0HQXIX82WQFxSRC7in6U9zDQh1Dn8V Dkmp1pGNCwCyAfqA5XTxUHHOPsjMaZraMwUXBJWeOVN/5L4+CJ7nCuhaSdUt7kkLLo1p g7txARKfavG5LCR3686eUfFeC2b4gfd0ZORQOZLHaKD79h3hgGNvHBbKFcGeirCaXvAN CJ/g== X-Gm-Message-State: AOJu0YwiKeIpAwEKJV9MSXsjuskm15JRrDioNykDArfAnvVRUpHuBX3/ nK0zmgA95Fuec0xZ++R53VYMpAWPHcCFoOj9rD4gZkI4rkdlVkn5/HgpGCnlaYRju0QjYMd9ao5 uFmbqA5zb8moZf9QiPUeVn8xbFv8cEf7j X-Gm-Gg: ASbGnct8RuSKWw5kUlMAmBMyVMzsSWlbYhaXW6gtuTQ7i4VwTN4saTum5seccy7dyN/ ptfXUgzcCm/qtusYI6k8QltiZ6gLoxQYW+q/w X-Google-Smtp-Source: AGHT+IFpM8AsVXLIu7rwdzL/qZWIy4QB8uFFUy6IrQkqPGwxwH1L2URgxvV5ZsgzTX0Tw4Dw9GKD/EkpVxsOVwduAGg= X-Received: by 2002:a05:6402:4023:b0:5d0:e2c8:dc8d with SMTP id 4fb4d7f45d1cf-5d972e1b962mr177743a12.20.1736281602452; Tue, 07 Jan 2025 12:26:42 -0800 (PST) MIME-Version: 1.0 From: Reed Meyerson Date: Tue, 7 Jan 2025 15:26:31 -0500 X-Gm-Features: AbW1kvZ_k6BYywa0iBo4wDUM9QJKjj5xAvgu5NSr_pYqylOPVmBhidg3fa9tpLY Message-ID: Content-Type: multipart/alternative; boundary="00000000000024f319062b2390db" X-Mailman-Approved-At: Tue, 07 Jan 2025 22:06:54 -0500 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: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: guix-patches-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Scanner: mx11.migadu.com X-Migadu-Spam-Score: -0.52 X-Spam-Score: -0.52 X-Migadu-Queue-Id: 9C1B2465F7 X-TUID: hDCJpME4ly++ --00000000000024f319062b2390db Content-Type: text/plain; charset="UTF-8" Sorry, I think I attached the patch incorrectly. Here are the contents: >From d3feb577f2040daa6b54f0af264dea1d477e530d Mon Sep 17 00:00:00 2001 Message-ID: < d3feb577f2040daa6b54f0af264dea1d477e530d.1736269185.git.reed.meyerson@gmail.com> From: Reed Meyerson Date: Tue, 7 Jan 2025 11:27:00 -0500 Subject: [PATCH 1/1] removing deprecated sphinx.util.compat import Change-Id: I21c4dd5e7210021e8905dc6237bd5148aeed930d --- .../patches/ganeti-openssh-test-fix.patch | 46 +++++++++++++++++++ .../patches/ganeti-sphinx-import.patch | 12 +++++ gnu/packages/virtualization.scm | 12 ++++- 3 files changed, 68 insertions(+), 2 deletions(-) create mode 100644 gnu/packages/patches/ganeti-openssh-test-fix.patch create mode 100644 gnu/packages/patches/ganeti-sphinx-import.patch diff --git a/gnu/packages/patches/ganeti-openssh-test-fix.patch b/gnu/packages/patches/ganeti-openssh-test-fix.patch new file mode 100644 index 0000000000..ed7a498fab --- /dev/null +++ b/gnu/packages/patches/ganeti-openssh-test-fix.patch @@ -0,0 +1,46 @@ +From 8a06656acf8f6e3dfa907bea77bd57a469a8d3fb Mon Sep 17 00:00:00 2001 +From: codefritzel +Date: Thu, 11 Jul 2024 23:10:41 +0200 +Subject: replace dsa with rsa in TestUpdateSshRoot + +DSA to be deactivated in OpenSSH from 2025. Since version 7.0 dsa is +marked as deprecated. + +The TestUpdateSshRoot uses DSA, which will fail in the future with newer +OpenSSH versions. + +fixes #1752 + +Signed-off-by: codefritzel + +diff --git a/test/py/ganeti.tools.prepare_node_join_unittest.py b/test/py/ ganeti.tools.prepare_node_join_unittest.py +index fe7efdf8c..fe029b8f2 100755 +--- a/test/py/ganeti.tools.prepare_node_join_unittest.py ++++ b/test/py/ganeti.tools.prepare_node_join_unittest.py +@@ -229,20 +229,20 @@ class TestUpdateSshRoot(unittest.TestCase): + def testUpdate(self): + data = { + constants.SSHS_SSH_ROOT_KEY: [ +- (constants.SSHK_DSA, "privatedsa", "ssh-dss pubdsa"), ++ (constants.SSHK_RSA, "privatersa", "ssh-rsa pubrsa"), + ], +- constants.SSHS_SSH_KEY_TYPE: "dsa", +- constants.SSHS_SSH_KEY_BITS: 1024, ++ constants.SSHS_SSH_KEY_TYPE: "rsa", ++ constants.SSHS_SSH_KEY_BITS: 2048, + } + + prepare_node_join.UpdateSshRoot(data, False, + _homedir_fn=self._GetHomeDir) + self.assertEqual(os.listdir(self.tmpdir), [".ssh"]) + self.assertEqual(sorted(os.listdir(self.sshdir)), +- sorted(["authorized_keys", "id_dsa", "id_dsa.pub"])) +- self.assertTrue(utils.ReadFile(utils.PathJoin(self.sshdir, "id_dsa")) ++ sorted(["authorized_keys", "id_rsa", "id_rsa.pub"])) ++ self.assertTrue(utils.ReadFile(utils.PathJoin(self.sshdir, "id_rsa")) + is not None) +- pub_key = utils.ReadFile(utils.PathJoin(self.sshdir, "id_dsa.pub")) ++ pub_key = utils.ReadFile(utils.PathJoin(self.sshdir, "id_rsa.pub")) + self.assertTrue(pub_key is not None) + self.assertEqual(utils.ReadFile(utils.PathJoin(self.sshdir, + "authorized_keys")), diff --git a/gnu/packages/patches/ganeti-sphinx-import.patch b/gnu/packages/patches/ganeti-sphinx-import.patch new file mode 100644 index 0000000000..8c6e7b5be5 --- /dev/null +++ b/gnu/packages/patches/ganeti-sphinx-import.patch @@ -0,0 +1,12 @@ +diff --git a/lib/build/sphinx_ext.py b/lib/build/sphinx_ext.py +index ca8b8216e..017f52343 100644 +--- a/lib/build/sphinx_ext.py ++++ b/lib/build/sphinx_ext.py +@@ -45,7 +45,6 @@ import docutils.parsers.rst + from docutils.parsers.rst import Directive + + import sphinx.errors +-import sphinx.util.compat + import sphinx.roles + import sphinx.addnodes + diff --git a/gnu/packages/virtualization.scm b/gnu/packages/virtualization.scm index 9dff421341..4cc46b3939 100644 --- a/gnu/packages/virtualization.scm +++ b/gnu/packages/virtualization.scm @@ -776,10 +776,12 @@ (define-public ganeti "ganeti-procps-compat.patch" "ganeti-disable-version-symlinks.patch" "ganeti-lens-compat.patch" + "ganeti-openssh-test-fix.patch" "ganeti-template-haskell-2.17.patch" "ganeti-template-haskell-2.18.patch" "ganeti-reorder-arbitrary-definitions.patch" - "ganeti-relax-dependencies.patch")))) + "ganeti-relax-dependencies.patch" + "ganeti-sphinx-import.patch")))) (build-system gnu-build-system) (arguments `(#:imported-modules (,@%default-gnu-imported-modules @@ -923,13 +925,19 @@ (define-public ganeti (("test/py/ganeti\\.hypervisor\\.hv_kvm_unittest\\.py") "") (("test/py/ganeti\\.tools\\.ensure_dirs_unittest\\.py") "") (("test/py/ganeti\\.utils\\.io_unittest-runasroot\\.py") "") + ;; Tracked at: https://github.com/ganeti/ganeti/issues/1752 + (("test/py/ganeti\\.ssh_unittest\\.py") "") ;; Disable the bash_completion test, as it requires the full ;; bash instead of bash-minimal. (("test/py/bash_completion\\.bash") "") ;; This test requires networking. (("test/py/import-export_unittest\\.bash") - "")))) + "")) + (substitute* "test/hs/Test/Ganeti/OpCodes.hs" + ;; Some serdes failure, tracked at: + ;; https://github.com/ganeti/ganeti/issues/1753 + ((", 'case_py_compat_types") "")))) (add-after 'build 'build-bash-completions (lambda _ (setenv "PYTHONPATH" ".") base-commit: 84a68cffe6abf1056df2607e79ef587b63820a6e -- 2.46.0 Best, Reed --00000000000024f319062b2390db Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: base64 PGRpdiBkaXI9Imx0ciI+PGRpdiBkaXI9Imx0ciI+PGRpdj5Tb3JyeSwgSSB0aGluayBJIGF0dGFj aGVkIHRoZSBwYXRjaCBpbmNvcnJlY3RseS4gSGVyZSBhcmUgdGhlIGNvbnRlbnRzOjwvZGl2Pjxk aXY+PGJyPjwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5Om1vbm9zcGFjZSI+PHNw YW4gc3R5bGU9ImNvbG9yOnJnYigwLDAsMCk7YmFja2dyb3VuZC1jb2xvcjpyZ2IoMjU1LDI1NSwy NTUpIj5Gcm9tIGQzZmViNTc3ZjIwNDBkYWE2YjU0ZjBhZjI2NGRlYTFkNDc3ZTUzMGQgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxDQo8L3NwYW4+PGJyPk1lc3NhZ2UtSUQ6ICZsdDs8YSBocmVmPSJt YWlsdG86ZDNmZWI1NzdmMjA0MGRhYTZiNTRmMGFmMjY0ZGVhMWQ0NzdlNTMwZC4xNzM2MjY5MTg1 LmdpdC5yZWVkLm1leWVyc29uQGdtYWlsLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPmQzZmViNTc3ZjIw NDBkYWE2YjU0ZjBhZjI2NGRlYTFkNDc3ZTUzMGQuMTczNjI2OTE4NS5naXQucmVlZC5tZXllcnNv bkBnbWFpbC5jb208L2E+Jmd0Ow0KPGJyPkZyb206IFJlZWQgTWV5ZXJzb24gJmx0OzxhIGhyZWY9 Im1haWx0bzpyZWVkLm1leWVyc29uQGdtYWlsLmNvbSIgdGFyZ2V0PSJfYmxhbmsiPnJlZWQubWV5 ZXJzb25AZ21haWwuY29tPC9hPiZndDsNCjxicj5EYXRlOiBUdWUsIDcgSmFuIDIwMjUgMTE6Mjc6 MDAgLTA1MDANCjxicj5TdWJqZWN0OiBbUEFUQ0ggMS8xXSByZW1vdmluZyBkZXByZWNhdGVkIHNw aGlueC51dGlsLmNvbXBhdCBpbXBvcnQNCjxicj4NCjxicj5DaGFuZ2UtSWQ6IEkyMWM0ZGQ1ZTcy MTAwMjFlODkwNWRjNjIzN2JkNTE0OGFlZWQ5MzBkDQo8YnI+LS0tDQo8YnI+IC4uLi9wYXRjaGVz L2dhbmV0aS1vcGVuc3NoLXRlc3QtZml4LnBhdGNoIMKgwqDCoMKgfCA0NiArKysrKysrKysrKysr KysrKysrDQo8YnI+IC4uLi9wYXRjaGVzL2dhbmV0aS1zcGhpbngtaW1wb3J0LnBhdGNoIMKgwqDC oMKgwqDCoMKgfCAxMiArKysrKw0KPGJyPiBnbnUvcGFja2FnZXMvdmlydHVhbGl6YXRpb24uc2Nt IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqB8IDEyICsrKystDQo8YnI+IDMgZmlsZXMgY2hh bmdlZCwgNjggaW5zZXJ0aW9ucygrKSwgMiBkZWxldGlvbnMoLSkNCjxicj4gY3JlYXRlIG1vZGUg MTAwNjQ0IGdudS9wYWNrYWdlcy9wYXRjaGVzL2dhbmV0aS1vcGVuc3NoLXRlc3QtZml4LnBhdGNo DQo8YnI+IGNyZWF0ZSBtb2RlIDEwMDY0NCBnbnUvcGFja2FnZXMvcGF0Y2hlcy9nYW5ldGktc3Bo aW54LWltcG9ydC5wYXRjaA0KPGJyPg0KPGJyPmRpZmYgLS1naXQgYS9nbnUvcGFja2FnZXMvcGF0 Y2hlcy9nYW5ldGktb3BlbnNzaC10ZXN0LWZpeC5wYXRjaCBiL2dudS9wYWNrYWdlcy9wYXRjaGVz L2dhbmV0aS1vcGVuc3NoLXRlc3QtZml4LnBhdGNoDQo8YnI+bmV3IGZpbGUgbW9kZSAxMDA2NDQN Cjxicj5pbmRleCAwMDAwMDAwMDAwLi5lZDdhNDk4ZmFiDQo8YnI+LS0tIC9kZXYvbnVsbA0KPGJy PisrKyBiL2dudS9wYWNrYWdlcy9wYXRjaGVzL2dhbmV0aS1vcGVuc3NoLXRlc3QtZml4LnBhdGNo DQo8YnI+QEAgLTAsMCArMSw0NiBAQA0KPGJyPitGcm9tIDhhMDY2NTZhY2Y4ZjZlM2RmYTkwN2Jl YTc3YmQ1N2E0NjlhOGQzZmIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxDQo8YnI+K0Zyb206IGNv ZGVmcml0emVsICZsdDs8YSBocmVmPSJtYWlsdG86cGFzY2FsLXBmQGhvdG1haWwuZGUiIHRhcmdl dD0iX2JsYW5rIj5wYXNjYWwtcGZAaG90bWFpbC5kZTwvYT4mZ3Q7DQo8YnI+K0RhdGU6IFRodSwg MTEgSnVsIDIwMjQgMjM6MTA6NDEgKzAyMDANCjxicj4rU3ViamVjdDogcmVwbGFjZSBkc2Egd2l0 aCByc2EgaW4gVGVzdFVwZGF0ZVNzaFJvb3QNCjxicj4rDQo8YnI+K0RTQSB0byBiZSBkZWFjdGl2 YXRlZCBpbiBPcGVuU1NIIGZyb20gMjAyNS4gU2luY2UgdmVyc2lvbiA3LjAgZHNhIGlzDQo8YnI+ K21hcmtlZCBhcyBkZXByZWNhdGVkLg0KPGJyPisNCjxicj4rVGhlIFRlc3RVcGRhdGVTc2hSb290 IHVzZXMgRFNBLCB3aGljaCB3aWxsIGZhaWwgaW4gdGhlIGZ1dHVyZSB3aXRoIG5ld2VyDQo8YnI+ K09wZW5TU0ggdmVyc2lvbnMuDQo8YnI+Kw0KPGJyPitmaXhlcyAjMTc1Mg0KPGJyPisNCjxicj4r U2lnbmVkLW9mZi1ieTogY29kZWZyaXR6ZWwgJmx0OzxhIGhyZWY9Im1haWx0bzpwYXNjYWwtcGZA aG90bWFpbC5kZSIgdGFyZ2V0PSJfYmxhbmsiPnBhc2NhbC1wZkBob3RtYWlsLmRlPC9hPiZndDsN Cjxicj4rDQo8YnI+K2RpZmYgLS1naXQgYS90ZXN0L3B5LzxhIGhyZWY9Imh0dHA6Ly9nYW5ldGku dG9vbHMucHJlcGFyZV9ub2RlX2pvaW5fdW5pdHRlc3QucHkiIHRhcmdldD0iX2JsYW5rIj5nYW5l dGkudG9vbHMucHJlcGFyZV9ub2RlX2pvaW5fdW5pdHRlc3QucHk8L2E+IGIvdGVzdC9weS88YSBo cmVmPSJodHRwOi8vZ2FuZXRpLnRvb2xzLnByZXBhcmVfbm9kZV9qb2luX3VuaXR0ZXN0LnB5IiB0 YXJnZXQ9Il9ibGFuayI+Z2FuZXRpLnRvb2xzLnByZXBhcmVfbm9kZV9qb2luX3VuaXR0ZXN0LnB5 PC9hPg0KPGJyPitpbmRleCBmZTdlZmRmOGMuLmZlMDI5YjhmMiAxMDA3NTUNCjxicj4rLS0tIGEv dGVzdC9weS88YSBocmVmPSJodHRwOi8vZ2FuZXRpLnRvb2xzLnByZXBhcmVfbm9kZV9qb2luX3Vu aXR0ZXN0LnB5IiB0YXJnZXQ9Il9ibGFuayI+Z2FuZXRpLnRvb2xzLnByZXBhcmVfbm9kZV9qb2lu X3VuaXR0ZXN0LnB5PC9hPg0KPGJyPisrKysgYi90ZXN0L3B5LzxhIGhyZWY9Imh0dHA6Ly9nYW5l dGkudG9vbHMucHJlcGFyZV9ub2RlX2pvaW5fdW5pdHRlc3QucHkiIHRhcmdldD0iX2JsYW5rIj5n YW5ldGkudG9vbHMucHJlcGFyZV9ub2RlX2pvaW5fdW5pdHRlc3QucHk8L2E+DQo8YnI+K0BAIC0y MjksMjAgKzIyOSwyMCBAQCBjbGFzcyBUZXN0VXBkYXRlU3NoUm9vdCh1bml0dGVzdC5UZXN0Q2Fz ZSk6DQo8YnI+KyDCoMKgZGVmIHRlc3RVcGRhdGUoc2VsZik6DQo8YnI+KyDCoMKgwqDCoGRhdGEg PSB7DQo8YnI+KyDCoMKgwqDCoMKgwqBjb25zdGFudHMuU1NIU19TU0hfUk9PVF9LRVk6IFsNCjxi cj4rLSDCoMKgwqDCoMKgwqDCoChjb25zdGFudHMuU1NIS19EU0EsICZxdW90O3ByaXZhdGVkc2Em cXVvdDssICZxdW90O3NzaC1kc3MgcHViZHNhJnF1b3Q7KSwNCjxicj4rKyDCoMKgwqDCoMKgwqDC oChjb25zdGFudHMuU1NIS19SU0EsICZxdW90O3ByaXZhdGVyc2EmcXVvdDssICZxdW90O3NzaC1y c2EgcHVicnNhJnF1b3Q7KSwNCjxicj4rIMKgwqDCoMKgwqDCoMKgwqBdLA0KPGJyPistIMKgwqDC oMKgwqBjb25zdGFudHMuU1NIU19TU0hfS0VZX1RZUEU6ICZxdW90O2RzYSZxdW90OywNCjxicj4r LSDCoMKgwqDCoMKgY29uc3RhbnRzLlNTSFNfU1NIX0tFWV9CSVRTOiAxMDI0LA0KPGJyPisrIMKg wqDCoMKgwqBjb25zdGFudHMuU1NIU19TU0hfS0VZX1RZUEU6ICZxdW90O3JzYSZxdW90OywNCjxi cj4rKyDCoMKgwqDCoMKgY29uc3RhbnRzLlNTSFNfU1NIX0tFWV9CSVRTOiAyMDQ4LA0KPGJyPisg wqDCoMKgwqDCoMKgfQ0KPGJyPisgwqA8YnI+KyDCoMKgwqDCoHByZXBhcmVfbm9kZV9qb2luLlVw ZGF0ZVNzaFJvb3QoZGF0YSwgRmFsc2UsDQo8YnI+KyDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBfaG9tZWRpcl9m bj1zZWxmLl9HZXRIb21lRGlyKQ0KPGJyPisgwqDCoMKgwqBzZWxmLmFzc2VydEVxdWFsKG9zLmxp c3RkaXIoc2VsZi50bXBkaXIpLCBbJnF1b3Q7LnNzaCZxdW90O10pDQo8YnI+KyDCoMKgwqDCoHNl bGYuYXNzZXJ0RXF1YWwoc29ydGVkKG9zLmxpc3RkaXIoc2VsZi5zc2hkaXIpKSwNCjxicj4rLSDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc29ydGVkKFsmcXVvdDthdXRo b3JpemVkX2tleXMmcXVvdDssICZxdW90O2lkX2RzYSZxdW90OywgJnF1b3Q7aWRfZHNhLnB1YiZx dW90O10pKQ0KPGJyPistIMKgwqDCoHNlbGYuYXNzZXJ0VHJ1ZSh1dGlscy5SZWFkRmlsZSh1dGls cy5QYXRoSm9pbihzZWxmLnNzaGRpciwgJnF1b3Q7aWRfZHNhJnF1b3Q7KSkNCjxicj4rKyDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgc29ydGVkKFsmcXVvdDthdXRob3Jp emVkX2tleXMmcXVvdDssICZxdW90O2lkX3JzYSZxdW90OywgJnF1b3Q7aWRfcnNhLnB1YiZxdW90 O10pKQ0KPGJyPisrIMKgwqDCoHNlbGYuYXNzZXJ0VHJ1ZSh1dGlscy5SZWFkRmlsZSh1dGlscy5Q YXRoSm9pbihzZWxmLnNzaGRpciwgJnF1b3Q7aWRfcnNhJnF1b3Q7KSkNCjxicj4rIMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpcyBub3QgTm9uZSkNCjxicj4rLSDCoMKg wqBwdWJfa2V5ID0gdXRpbHMuUmVhZEZpbGUodXRpbHMuUGF0aEpvaW4oc2VsZi5zc2hkaXIsICZx dW90O2lkX2RzYS5wdWImcXVvdDspKQ0KPGJyPisrIMKgwqDCoHB1Yl9rZXkgPSB1dGlscy5SZWFk RmlsZSh1dGlscy5QYXRoSm9pbihzZWxmLnNzaGRpciwgJnF1b3Q7aWRfcnNhLnB1YiZxdW90Oykp DQo8YnI+KyDCoMKgwqDCoHNlbGYuYXNzZXJ0VHJ1ZShwdWJfa2V5IGlzIG5vdCBOb25lKQ0KPGJy PisgwqDCoMKgwqBzZWxmLmFzc2VydEVxdWFsKHV0aWxzLlJlYWRGaWxlKHV0aWxzLlBhdGhKb2lu KHNlbGYuc3NoZGlyLA0KPGJyPisgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAmcXVvdDthdXRob3JpemVkX2tleXMmcXVvdDspKSwNCjxicj5kaWZmIC0tZ2l0 IGEvZ251L3BhY2thZ2VzL3BhdGNoZXMvZ2FuZXRpLXNwaGlueC1pbXBvcnQucGF0Y2ggYi9nbnUv cGFja2FnZXMvcGF0Y2hlcy9nYW5ldGktc3BoaW54LWltcG9ydC5wYXRjaA0KPGJyPm5ldyBmaWxl IG1vZGUgMTAwNjQ0DQo8YnI+aW5kZXggMDAwMDAwMDAwMC4uOGM2ZTdiNWJlNQ0KPGJyPi0tLSAv ZGV2L251bGwNCjxicj4rKysgYi9nbnUvcGFja2FnZXMvcGF0Y2hlcy9nYW5ldGktc3BoaW54LWlt cG9ydC5wYXRjaA0KPGJyPkBAIC0wLDAgKzEsMTIgQEANCjxicj4rZGlmZiAtLWdpdCBhL2xpYi9i dWlsZC9zcGhpbnhfZXh0LnB5IGIvbGliL2J1aWxkL3NwaGlueF9leHQucHkNCjxicj4raW5kZXgg Y2E4YjgyMTZlLi4wMTdmNTIzNDMgMTAwNjQ0DQo8YnI+Ky0tLSBhL2xpYi9idWlsZC9zcGhpbnhf ZXh0LnB5DQo8YnI+KysrKyBiL2xpYi9idWlsZC9zcGhpbnhfZXh0LnB5DQo8YnI+K0BAIC00NSw3 ICs0NSw2IEBAIGltcG9ydCBkb2N1dGlscy5wYXJzZXJzLnJzdA0KPGJyPisgZnJvbSBkb2N1dGls cy5wYXJzZXJzLnJzdCBpbXBvcnQgRGlyZWN0aXZlDQo8YnI+KyDCoDxicj4rIGltcG9ydCBzcGhp bnguZXJyb3JzDQo8YnI+Ky1pbXBvcnQgc3BoaW54LnV0aWwuY29tcGF0DQo8YnI+KyBpbXBvcnQg c3BoaW54LnJvbGVzDQo8YnI+KyBpbXBvcnQgc3BoaW54LmFkZG5vZGVzDQo8YnI+KyDCoDxicj5k aWZmIC0tZ2l0IGEvZ251L3BhY2thZ2VzL3ZpcnR1YWxpemF0aW9uLnNjbSBiL2dudS9wYWNrYWdl cy92aXJ0dWFsaXphdGlvbi5zY20NCjxicj5pbmRleCA5ZGZmNDIxMzQxLi40Y2M0NmIzOTM5IDEw MDY0NA0KPGJyPi0tLSBhL2dudS9wYWNrYWdlcy92aXJ0dWFsaXphdGlvbi5zY20NCjxicj4rKysg Yi9nbnUvcGFja2FnZXMvdmlydHVhbGl6YXRpb24uc2NtDQo8YnI+QEAgLTc3NiwxMCArNzc2LDEy IEBAIChkZWZpbmUtcHVibGljIGdhbmV0aQ0KPGJyPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAmcXVv dDtnYW5ldGktcHJvY3BzLWNvbXBhdC5wYXRjaCZxdW90Ow0KPGJyPiDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAmcXVvdDtnYW5ldGktZGlzYWJsZS12ZXJzaW9uLXN5bWxpbmtzLnBhdGNoJnF1b3Q7DQo8 YnI+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCZxdW90O2dhbmV0aS1sZW5zLWNvbXBhdC5wYXRjaCZx dW90Ow0KPGJyPisgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCZxdW90O2dhbmV0aS1vcGVuc3NoLXRlc3Qt Zml4LnBhdGNoJnF1b3Q7DQo8YnI+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCZxdW90O2dhbmV0aS10 ZW1wbGF0ZS1oYXNrZWxsLTIuMTcucGF0Y2gmcXVvdDsNCjxicj4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgJnF1b3Q7Z2FuZXRpLXRlbXBsYXRlLWhhc2tlbGwtMi4xOC5wYXRjaCZxdW90Ow0KPGJyPiDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAmcXVvdDtnYW5ldGktcmVvcmRlci1hcmJpdHJhcnktZGVmaW5p dGlvbnMucGF0Y2gmcXVvdDsNCjxicj4tIMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAmcXVvdDtnYW5ldGkt cmVsYXgtZGVwZW5kZW5jaWVzLnBhdGNoJnF1b3Q7KSkpKQ0KPGJyPisgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCZxdW90O2dhbmV0aS1yZWxheC1kZXBlbmRlbmNpZXMucGF0Y2gmcXVvdDsNCjxicj4rIMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAmcXVvdDtnYW5ldGktc3BoaW54LWltcG9ydC5wYXRjaCZxdW90Oykp KSkNCjxicj4gwqDCoMKgwqAoYnVpbGQtc3lzdGVtIGdudS1idWlsZC1zeXN0ZW0pDQo8YnI+IMKg wqDCoMKgKGFyZ3VtZW50cw0KPGJyPiDCoMKgwqDCoMKgYCgjOmltcG9ydGVkLW1vZHVsZXMgKCxA JWRlZmF1bHQtZ251LWltcG9ydGVkLW1vZHVsZXMNCjxicj5AQCAtOTIzLDEzICs5MjUsMTkgQEAg KGRlZmluZS1wdWJsaWMgZ2FuZXRpDQo8YnI+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCgoJnF1b3Q7dGVzdC9weS9nYW5ldGlcXC5oeXBlcnZpc29yXFwuaHZfa3ZtX3VuaXR0ZXN0XFwu cHkmcXVvdDspICZxdW90OyZxdW90OykNCjxicj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgKCgmcXVvdDt0ZXN0L3B5L2dhbmV0aVxcLnRvb2xzXFwuZW5zdXJlX2RpcnNfdW5pdHRlc3Rc XC5weSZxdW90OykgJnF1b3Q7JnF1b3Q7KQ0KPGJyPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAoKCZxdW90O3Rlc3QvcHkvZ2FuZXRpXFwudXRpbHNcXC5pb191bml0dGVzdC1ydW5hc3Jv b3RcXC5weSZxdW90OykgJnF1b3Q7JnF1b3Q7KQ0KPGJyPisgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoDs7IFRyYWNrZWQgYXQ6IDxhIGhyZWY9Imh0dHBzOi8vZ2l0aHViLmNvbS9nYW5ldGkv Z2FuZXRpL2lzc3Vlcy8xNzUyIiB0YXJnZXQ9Il9ibGFuayI+aHR0cHM6Ly9naXRodWIuY29tL2dh bmV0aS9nYW5ldGkvaXNzdWVzLzE3NTI8L2E+DQo8YnI+KyDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgKCgmcXVvdDt0ZXN0L3B5L2dhbmV0aVxcLnNzaF91bml0dGVzdFxcLnB5JnF1b3Q7KSAm cXVvdDsmcXVvdDspDQo8YnI+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoDs7IERpc2Fi bGUgdGhlIGJhc2hfY29tcGxldGlvbiB0ZXN0LCBhcyBpdCByZXF1aXJlcyB0aGUgZnVsbA0KPGJy PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqA7OyBiYXNoIGluc3RlYWQgb2YgYmFzaC1t aW5pbWFsLg0KPGJyPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAoKCZxdW90O3Rlc3Qv cHkvYmFzaF9jb21wbGV0aW9uXFwuYmFzaCZxdW90OykNCjxicj4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAmcXVvdDsmcXVvdDspDQo8YnI+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoDs7IFRoaXMgdGVzdCByZXF1aXJlcyBuZXR3b3JraW5nLg0KPGJyPiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAoKCZxdW90O3Rlc3QvcHkvaW1wb3J0LWV4cG9ydF91bml0dGVz dFxcLmJhc2gmcXVvdDspDQo8YnI+LSDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAmcXVv dDsmcXVvdDspKSkpDQo8YnI+KyDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAmcXVvdDsm cXVvdDspKQ0KPGJyPisgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgKHN1YnN0aXR1dGUqICZxdW90 O3Rlc3QvaHMvVGVzdC9HYW5ldGkvT3BDb2Rlcy5ocyZxdW90Ow0KPGJyPisgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoDs7IFNvbWUgc2VyZGVzIGZhaWx1cmUsIHRyYWNrZWQgYXQ6DQo8YnI+ KyDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgOzsgPGEgaHJlZj0iaHR0cHM6Ly9naXRodWIu Y29tL2dhbmV0aS9nYW5ldGkvaXNzdWVzLzE3NTMiIHRhcmdldD0iX2JsYW5rIj5odHRwczovL2dp dGh1Yi5jb20vZ2FuZXRpL2dhbmV0aS9pc3N1ZXMvMTc1MzwvYT4NCjxicj4rIMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAoKCZxdW90OywgJiMzOTtjYXNlX3B5X2NvbXBhdF90eXBlcyZxdW90 OykgJnF1b3Q7JnF1b3Q7KSkpKQ0KPGJyPiDCoMKgwqDCoMKgwqDCoMKgwqAoYWRkLWFmdGVyICYj Mzk7YnVpbGQgJiMzOTtidWlsZC1iYXNoLWNvbXBsZXRpb25zDQo8YnI+IMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAobGFtYmRhIF8NCjxicj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAoc2V0ZW52 ICZxdW90O1BZVEhPTlBBVEgmcXVvdDsgJnF1b3Q7LiZxdW90OykNCjxicj4NCjxicj5iYXNlLWNv bW1pdDogODRhNjhjZmZlNmFiZjEwNTZkZjI2MDdlNzllZjU4N2I2MzgyMGE2ZQ0KPGJyPi0tIMKg PGJyPjIuNDYuMA0KPGRpdiBjbGFzcz0iZ21haWwteWo2cW8iPjwvZGl2PjxkaXYgY2xhc3M9Imdt YWlsLWFkTCI+PGJyPjwvZGl2PjxkaXYgY2xhc3M9ImdtYWlsLWFkTCI+QmVzdCw8L2Rpdj48ZGl2 IGNsYXNzPSJnbWFpbC1hZEwiPlJlZWQ8YnI+PC9kaXY+PC9zcGFuPjwvZGl2PjwvZGl2PjwvZGl2 Pg0K --00000000000024f319062b2390db--