From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org 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 smtp.lore.kernel.org (Postfix) with ESMTPS id DEB3CCD4F4C for ; Sun, 8 Sep 2024 15:46:34 +0000 (UTC) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1snK72-0004Bh-Mf; Sun, 08 Sep 2024 11:46:04 -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 1snK6v-0004Ac-Qu for grub-devel@gnu.org; Sun, 08 Sep 2024 11:45:57 -0400 Received: from mail-lf1-x129.google.com ([2a00:1450:4864:20::129]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1snK6q-0005XY-Q3 for grub-devel@gnu.org; Sun, 08 Sep 2024 11:45:57 -0400 Received: by mail-lf1-x129.google.com with SMTP id 2adb3069b0e04-535694d67eeso3465399e87.0 for ; Sun, 08 Sep 2024 08:45:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1725810350; x=1726415150; darn=gnu.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=w/ax+wHTu5EAsW5rOi6NhLwzvJVhwJ91m4xbCIxPZHA=; b=BhxWMoBC46oAIgJoOPdyFcf10dUvqtNLxFM5JbtOavgcXC1B2s1pd+PoAZxwSpNjgl XZFo+p+msHSod/TaMXHixp7JN68pGhWazvnGUPT7uYsb018Vhla6ezOzir37Q2muoL+M g8RYDe8XAMTSUwL1e51p7a3SRTJusJo5BTxalQp8aZwsU9+ht1x6ZqoeV2qLmvhi/9fd vSsFeC6GzKfGfyvZuEzBzGo4eEpzuCw3n2UrA/xJTHBhezmX7PUOfNzQm/ZxWQw1jyez poNoQ91sCUi57DPhe5m73okiTfKBdAqcpKdJk6pK8MPfj1m42F/Qv/4LIzff8psDPdV1 vs+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1725810350; x=1726415150; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=w/ax+wHTu5EAsW5rOi6NhLwzvJVhwJ91m4xbCIxPZHA=; b=kkHs/cEvxk/DEfygx2tM+MtMlntp2XXmpvMA9BMSOI/oCBpEYfLN+JdbFFpT6zWcOO yTsRnw7ocaJuJ1UygbOlUhEiZ8gddax0XkB2EzA3SWgcvTcgke2xa9HZJ9EAkLn+eMlw ayLnvzmEY6rDent+kThGTN7uRsVAV5iYNKCSZayP6fQWSOCKptVv0YjvYmAqHaDlde8g r/jqNDJqJxzbLPz5omk+8cffYSHzGhrUpOjS/nVSJZ4KyyZREGusq1UYShF/U5NdBYFh jGE4RioZF84WaK/64/aMB2HvroinME7CjR/b0i62KEsm8R4kh20EWpiko+/F82/kZb3z 83LA== X-Gm-Message-State: AOJu0YyhZgLUAnFGOAiBa8EFO4r32037/ZU2QmxzMNhfEyPIWjPORztq HHrbKh2oxtedI7a+ALDePqSCBbvBq1psJ1QXl66PwR6ocesxNLxQdzA/ODhr X-Google-Smtp-Source: AGHT+IEvnQlnIdWCi2wO2Gd6m26OJqktewOuMKPGEMjgCZo6wFZQxZQJS+rMsQSD5qm9cd7aOA9BgA== X-Received: by 2002:a05:6512:234f:b0:534:53d7:c97f with SMTP id 2adb3069b0e04-535677e857fmr5239295e87.23.1725810349042; Sun, 08 Sep 2024 08:45:49 -0700 (PDT) Received: from localhost ([194.4.164.139]) by smtp.gmail.com with ESMTPSA id 2adb3069b0e04-5365f903e74sm424802e87.217.2024.09.08.08.45.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 08 Sep 2024 08:45:47 -0700 (PDT) From: Vladimir Serbinenko To: grub-devel@gnu.org Cc: Vladimir Serbinenko Subject: [PATCH v5 3/5] Adjust import script, definitions and API users for libgcrypt 1.11 Date: Sun, 8 Sep 2024 18:43:13 +0300 Message-Id: <20240908154316.3811-3-phcoder@gmail.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240908154316.3811-1-phcoder@gmail.com> References: <20240908154316.3811-1-phcoder@gmail.com> MIME-Version: 1.0 Received-SPF: pass client-ip=2a00:1450:4864:20::129; envelope-from=phcoder@gmail.com; helo=mail-lf1-x129.google.com 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, FREEMAIL_FROM=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: The development of GNU GRUB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: The development of GNU GRUB Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org Sender: grub-devel-bounces+grub-devel=archiver.kernel.org@gnu.org U2lnbmVkLW9mZi1ieTogVmxhZGltaXIgU2VyYmluZW5rbyA8cGhjb2RlckBnbWFpbC5jb20+Ci0t LQogYXV0b2dlbi5zaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA1ICsK IGNvbmYvTWFrZWZpbGUuY29tbW9uICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNCArLQog Z3J1Yi1jb3JlL01ha2VmaWxlLmNvcmUuZGVmICAgICAgICAgICAgICAgICAgIHwgIDM2ICsrLQog Z3J1Yi1jb3JlL2NvbW1hbmRzL2hhc2hzdW0uYyAgICAgICAgICAgICAgICAgIHwgICAyICstCiBn cnViLWNvcmUvY29tbWFuZHMvbGVnYWN5Y2ZnLmMgICAgICAgICAgICAgICAgfCAgIDYgKy0KIGdy dWItY29yZS9jb21tYW5kcy9wZ3AuYyAgICAgICAgICAgICAgICAgICAgICB8IDExNCArKystLS0t LQogZ3J1Yi1jb3JlL2NvbW1hbmRzL3hudV91dWlkLmMgICAgICAgICAgICAgICAgIHwgICAyICst CiBncnViLWNvcmUvZGlzay9jcnlwdG9kaXNrLmMgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0K IGdydWItY29yZS9pby9nemlvLmMgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQog Z3J1Yi1jb3JlL2lvL2x6b3Bpby5jICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiBn cnViLWNvcmUvbGliL2FkbGVyMzIuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMjEgKy0KIGdy dWItY29yZS9saWIvY3JjNjQuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAyNCArLQogZ3J1 Yi1jb3JlL2xpYi9jcnlwdG8uYyAgICAgICAgICAgICAgICAgICAgICAgIHwgMjQ1ICsrKysrKysr KysrKysrKy0KIGdydWItY29yZS9saWIvbGliZ2NyeXB0LXBhdGNoZXMvMDFfbWQucGF0Y2ggICB8 IDIwNyArKysrKysrKysrKysrKwogLi4uLzAzX2Rpc2FibGVfcnNhX3NoYWtlLnBhdGNoICAgICAg ICAgICAgICAgIHwgIDM0ICsrKwogLi4uL2xpYmdjcnlwdC1wYXRjaGVzLzA0X2FyaWFfc3RhdGlj LnBhdGNoICAgIHwgIDIyICsrCiBncnViLWNvcmUvbGliL2xpYmdjcnlwdC9zcmMvZ2NyeXB0LWlu dC5oICAgICAgfCAgNTEgLS0tLQogZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHRfd3JhcC9jaXBoZXJf d3JhcC5oICAgIHwgIDE0ICstCiBncnViLWNvcmUvbGliL2xpYmdjcnlwdF93cmFwL21lbS5jICAg ICAgICAgICAgfCAgODMgKysrKystCiBncnViLWNvcmUvbGliL3h6ZW1iZWQveHpfZGVjX3N0cmVh bS5jICAgICAgICAgfCAgMTggKy0KIGluY2x1ZGUvZ3J1Yi9jcnlwdG8uaCAgICAgICAgICAgICAg ICAgICAgICAgICB8IDI2MyArKysrKysrKysrKysrKystLS0KIGluY2x1ZGUvZ3J1Yi9nY3J5cHQv Z3BnLWVycm9yLmggICAgICAgICAgICAgICB8ICAyOSArKwogdXRpbC9ncnViLWZzdGVzdC5jICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCiB1dGlsL2ltcG9ydF9nY3J5LnB5ICAg ICAgICAgICAgICAgICAgICAgICAgICAgfCAxOTMgKysrKysrKysrLS0tLQogdXRpbC9pbXBvcnRf Z2NyeXB0X2ludGguc2VkICAgICAgICAgICAgICAgICAgIHwgIDE3ICsrCiB1dGlsL2ltcG9ydF9n Y3J5cHRoLnNlZCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgLQogMjYgZmlsZXMgY2hhbmdl ZCwgMTExNyBpbnNlcnRpb25zKCspLCAyODMgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2 NDQgZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtcGF0Y2hlcy8wMV9tZC5wYXRjaAogY3JlYXRlIG1v ZGUgMTAwNjQ0IGdydWItY29yZS9saWIvbGliZ2NyeXB0LXBhdGNoZXMvMDNfZGlzYWJsZV9yc2Ff c2hha2UucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBncnViLWNvcmUvbGliL2xpYmdjcnlwdC1w YXRjaGVzLzA0X2FyaWFfc3RhdGljLnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgdXRpbC9pbXBv cnRfZ2NyeXB0X2ludGguc2VkCgpkaWZmIC0tZ2l0IGEvYXV0b2dlbi5zaCBiL2F1dG9nZW4uc2gK aW5kZXggMTk1ZGFhNTQxLi4wNWJjOWIyZjAgMTAwNzU1Ci0tLSBhL2F1dG9nZW4uc2gKKysrIGIv YXV0b2dlbi5zaApAQCAtMzUsNiArMzUsNyBAQCAke1BZVEhPTn0gdXRpbC9pbXBvcnRfdW5pY29k ZS5weSB1bmljb2RlL1VuaWNvZGVEYXRhLnR4dCB1bmljb2RlL0JpZGlNaXJyb3JpbmcudAogZWNo byAiSW1wb3J0aW5nIGxpYmdjcnlwdC4uLiIKICR7UFlUSE9OfSB1dGlsL2ltcG9ydF9nY3J5LnB5 IGdydWItY29yZS9saWIvbGliZ2NyeXB0LyBncnViLWNvcmUKIHNlZCAtbiAtZiB1dGlsL2ltcG9y dF9nY3J5cHRoLnNlZCA8IGdydWItY29yZS9saWIvbGliZ2NyeXB0L3NyYy9nY3J5cHQuaC5pbiA+ IGluY2x1ZGUvZ3J1Yi9nY3J5cHQvZ2NyeXB0LmgKK3NlZCAtbiAtZiB1dGlsL2ltcG9ydF9nY3J5 cHRfaW50aC5zZWQgPCBncnViLWNvcmUvbGliL2xpYmdjcnlwdC9zcmMvZ2NyeXB0LWludC5oID4+ IGluY2x1ZGUvZ3J1Yi9nY3J5cHQvZ2NyeXB0LmgKIGlmIFsgLWYgaW5jbHVkZS9ncnViL2djcnlw dC9nMTBsaWIuaCBdOyB0aGVuCiAgICAgcm0gaW5jbHVkZS9ncnViL2djcnlwdC9nMTBsaWIuaAog ZmkKQEAgLTUxLDYgKzUyLDEwIEBAIGZvciB4IGluIG1waS1hc20tZGVmcy5oIG1waWgtYWRkMS5j IG1waWgtc3ViMS5jIG1waWgtbXVsMS5jIG1waWgtbXVsMi5jIG1waWgtbXVsCiAgICAgY3AgZ3J1 Yi1jb3JlL2xpYi9saWJnY3J5cHQtZ3J1Yi9tcGkvZ2VuZXJpYy8iJHgiIGdydWItY29yZS9saWIv bGliZ2NyeXB0LWdydWIvbXBpLyIkeCIKIGRvbmUKIAorZm9yIHggaW4gZ3J1Yi1jb3JlL2xpYi9s aWJnY3J5cHQtcGF0Y2hlcy8qLnBhdGNoOyBkbworICAgIHBhdGNoIC1pICR4IC1wMQorZG9uZQor CiBlY2hvICJHZW5lcmF0aW5nIEF1dG9tYWtlIGlucHV0Li4uIgogCiAjIEF1dG9tYWtlIGRvZXNu J3QgbGlrZSBpbmNsdWRpbmcgZmlsZXMgZnJvbSBhIHBhdGggb3V0c2lkZSB0aGUgcHJvamVjdC4K ZGlmZiAtLWdpdCBhL2NvbmYvTWFrZWZpbGUuY29tbW9uIGIvY29uZi9NYWtlZmlsZS5jb21tb24K aW5kZXggYzYwZjU1Mzg2Li41Y2FkYTQ1NjggMTAwNjQ0Ci0tLSBhL2NvbmYvTWFrZWZpbGUuY29t bW9uCisrKyBiL2NvbmYvTWFrZWZpbGUuY29tbW9uCkBAIC04MSw4ICs4MSw4IEBAIENQUEZMQUdT X0dOVUxJQiA9IC1JJCh0b3BfYnVpbGRkaXIpL2dydWItY29yZS9saWIvZ251bGliIC1JJCh0b3Bf c3JjZGlyKS9ncnViLWNvCiBDRkxBR1NfUE9TSVggPSAtZm5vLWJ1aWx0aW4KIENQUEZMQUdTX1BP U0lYID0gLUkkKHRvcF9zcmNkaXIpL2dydWItY29yZS9saWIvcG9zaXhfd3JhcAogCi1DRkxBR1Nf R0NSWSA9IC1Xbm8tZXJyb3IgLVduby1taXNzaW5nLWZpZWxkLWluaXRpYWxpemVycyAtV25vLXJl ZHVuZGFudC1kZWNscyAtV25vLXVuZGVmICQoQ0ZMQUdTX1BPU0lYKQotQ1BQRkxBR1NfR0NSWSA9 IC1JJCh0b3Bfc3JjZGlyKS9ncnViLWNvcmUvbGliL2xpYmdjcnlwdF93cmFwICQoQ1BQRkxBR1Nf UE9TSVgpIC1EX0dDUllQVF9JTl9MSUJHQ1JZUFQ9MSAtSSQodG9wX3NyY2RpcikvaW5jbHVkZS9n cnViL2djcnlwdAorQ0ZMQUdTX0dDUlkgPSAtV25vLWVycm9yPXNpZ24tY29tcGFyZSAtV25vLW1p c3NpbmctZmllbGQtaW5pdGlhbGl6ZXJzIC1Xbm8tcmVkdW5kYW50LWRlY2xzIC1Xbm8tdW5kZWYg JChDRkxBR1NfUE9TSVgpCitDUFBGTEFHU19HQ1JZID0gLUkkKHRvcF9zcmNkaXIpL2dydWItY29y ZS9saWIvbGliZ2NyeXB0X3dyYXAgJChDUFBGTEFHU19QT1NJWCkgLURfR0NSWVBUX0lOX0xJQkdD UllQVD0xIC1EX0dDUllQVF9DT05GSUdfSF9JTkNMVURFRD0xIC1ESEFWRV9TVFJUT1VMPTEgLUkk KHRvcF9zcmNkaXIpL2luY2x1ZGUvZ3J1Yi9nY3J5cHQKIAogQ1BQRkxBR1NfRUZJRU1VID0gLUkk KHRvcF9zcmNkaXIpL2dydWItY29yZS9lZmllbXUvcnVudGltZQogCmRpZmYgLS1naXQgYS9ncnVi LWNvcmUvTWFrZWZpbGUuY29yZS5kZWYgYi9ncnViLWNvcmUvTWFrZWZpbGUuY29yZS5kZWYKaW5k ZXggNzA1ZDczZmFiLi43OTllNGQ0NzEgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9NYWtlZmlsZS5j b3JlLmRlZgorKysgYi9ncnViLWNvcmUvTWFrZWZpbGUuY29yZS5kZWYKQEAgLTk3NSw4ICs5NzUs OCBAQCBtb2R1bGUgPSB7CiBtb2R1bGUgPSB7CiAgIG5hbWUgPSBwZ3A7CiAgIGNvbW1vbiA9IGNv bW1hbmRzL3BncC5jOwotICBjZmxhZ3MgPSAnJChDRkxBR1NfUE9TSVgpJzsKLSAgY3BwZmxhZ3Mg PSAnLUkkKHNyY2RpcikvbGliL3Bvc2l4X3dyYXAnOworICBjZmxhZ3MgPSAnJChDRkxBR1NfR0NS WSkgLVduby1yZWR1bmRhbnQtZGVjbHMgLVduby1zaWduLWNvbXBhcmUnOworICBjcHBmbGFncyA9 ICckKENQUEZMQUdTX0dDUlkpJzsKIH07CiAKIG1vZHVsZSA9IHsKQEAgLTIxNzUsNiArMjE3NSwy MiBAQCBtb2R1bGUgPSB7CiAgIGNvbW1vbiA9IHRlc3RzL3NldGptcF90ZXN0LmM7CiB9OwogCitt b2R1bGUgPSB7CisgIG5hbWUgPSBkc2Ffc2V4cF90ZXN0OworICBjb21tb24gPSB0ZXN0cy9kc2Ff c2V4cF90ZXN0LmM7CisKKyAgY2ZsYWdzID0gJyQoQ0ZMQUdTX0dDUlkpIC1Xbm8tcmVkdW5kYW50 LWRlY2xzIC1Xbm8tc2lnbi1jb21wYXJlJzsKKyAgY3BwZmxhZ3MgPSAnJChDUFBGTEFHU19HQ1JZ KSc7Cit9OworCittb2R1bGUgPSB7CisgIG5hbWUgPSByc2Ffc2V4cF90ZXN0OworICBjb21tb24g PSB0ZXN0cy9yc2Ffc2V4cF90ZXN0LmM7CisKKyAgY2ZsYWdzID0gJyQoQ0ZMQUdTX0dDUlkpIC1X bm8tcmVkdW5kYW50LWRlY2xzIC1Xbm8tc2lnbi1jb21wYXJlJzsKKyAgY3BwZmxhZ3MgPSAnJChD UFBGTEFHU19HQ1JZKSc7Cit9OworCiBtb2R1bGUgPSB7CiAgIG5hbWUgPSBzaWduYXR1cmVfdGVz dDsKICAgY29tbW9uID0gdGVzdHMvc2lnbmF0dXJlX3Rlc3QuYzsKQEAgLTI1MjksNyArMjU0NSwy MyBAQCBtb2R1bGUgPSB7CiAgIGNvbW1vbiA9IGxpYi9saWJnY3J5cHQtZ3J1Yi9tcGkvbXBpY29k ZXIuYzsKICAgY29tbW9uID0gbGliL2xpYmdjcnlwdC1ncnViL21waS9tcGloLXJzaGlmdC5jOwog ICBjb21tb24gPSBsaWIvbGliZ2NyeXB0LWdydWIvbXBpL21waS1pbmxpbmUuYzsKKyAgY29tbW9u ID0gbGliL2xpYmdjcnlwdC1ncnViL21waS9tcGloLWNvbnN0LXRpbWUuYzsKKyAgY29tbW9uID0g bGliL2xpYmdjcnlwdC1ncnViL21waS9tcGktc2Nhbi5jOworICBjb21tb24gPSBsaWIvbGliZ2Ny eXB0LWdydWIvc3JjL2NvbnN0LXRpbWUuYzsKICAgY29tbW9uID0gbGliL2xpYmdjcnlwdF93cmFw L21lbS5jOworICBjb21tb24gPSBsaWIvbGliZ2NyeXB0LWdydWIvY2lwaGVyL21kLmM7CisKKyAg Y2ZsYWdzID0gJyQoQ0ZMQUdTX0dDUlkpIC1Xbm8tcmVkdW5kYW50LWRlY2xzIC1Xbm8tc2lnbi1j b21wYXJlIC1Xbm8tdW51c2VkLWJ1dC1zZXQtdmFyaWFibGUnOworICBjcHBmbGFncyA9ICckKENQ UEZMQUdTX0dDUlkpJzsKK307CisKK21vZHVsZSA9IHsKKyAgbmFtZSA9IHB1YmtleTsKKyAgY29t bW9uID0gbGliL2xpYmdjcnlwdC1ncnViL2NpcGhlci9wdWJrZXktdXRpbC5jOworICBjb21tb24g PSBsaWIvbGliZ2NyeXB0LWdydWIvY2lwaGVyL3JzYS1jb21tb24uYzsKKyAgY29tbW9uID0gbGli L2xpYmdjcnlwdC1ncnViL2NpcGhlci9kc2EtY29tbW9uLmM7CisgIGNvbW1vbiA9IGxpYi9saWJn Y3J5cHQtZ3J1Yi9zcmMvc2V4cC5jOworICBjb21tb24gPSBsaWIvYjY0ZGVjLmM7CiAKICAgY2Zs YWdzID0gJyQoQ0ZMQUdTX0dDUlkpIC1Xbm8tcmVkdW5kYW50LWRlY2xzIC1Xbm8tc2lnbi1jb21w YXJlJzsKICAgY3BwZmxhZ3MgPSAnJChDUFBGTEFHU19HQ1JZKSc7CmRpZmYgLS1naXQgYS9ncnVi LWNvcmUvY29tbWFuZHMvaGFzaHN1bS5jIGIvZ3J1Yi1jb3JlL2NvbW1hbmRzL2hhc2hzdW0uYwpp bmRleCBkNTZiNWIwYmIuLmI2ZjhlM2QxYSAxMDA2NDQKLS0tIGEvZ3J1Yi1jb3JlL2NvbW1hbmRz L2hhc2hzdW0uYworKysgYi9ncnViLWNvcmUvY29tbWFuZHMvaGFzaHN1bS5jCkBAIC03Myw3ICs3 Myw3IEBAIGhhc2hfZmlsZSAoZ3J1Yl9maWxlX3QgZmlsZSwgY29uc3QgZ2NyeV9tZF9zcGVjX3Qg Kmhhc2gsIHZvaWQgKnJlc3VsdCkKICAgaWYgKCFyZWFkYnVmIHx8ICFjb250ZXh0KQogICAgIGdv dG8gZmFpbDsKIAotICBoYXNoLT5pbml0IChjb250ZXh0KTsKKyAgaGFzaC0+aW5pdCAoY29udGV4 dCwgMCk7CiAgIHdoaWxlICgxKQogICAgIHsKICAgICAgIGdydWJfc3NpemVfdCByOwpkaWZmIC0t Z2l0IGEvZ3J1Yi1jb3JlL2NvbW1hbmRzL2xlZ2FjeWNmZy5jIGIvZ3J1Yi1jb3JlL2NvbW1hbmRz L2xlZ2FjeWNmZy5jCmluZGV4IGU5ZTlkOTRlZi4uMDUyYmIxMTBkIDEwMDY0NAotLS0gYS9ncnVi LWNvcmUvY29tbWFuZHMvbGVnYWN5Y2ZnLmMKKysrIGIvZ3J1Yi1jb3JlL2NvbW1hbmRzL2xlZ2Fj eWNmZy5jCkBAIC02MjUsNyArNjI1LDcgQEAgY2hlY2tfcGFzc3dvcmRfbWQ1X3JlYWwgKGNvbnN0 IGNoYXIgKmVudGVyZWQsCiAgIGlmICghY3R4KQogICAgIHJldHVybiAwOwogCi0gIEdSVUJfTURf TUQ1LT5pbml0IChjdHgpOworICBHUlVCX01EX01ENS0+aW5pdCAoY3R4LCAwKTsKICAgR1JVQl9N RF9NRDUtPndyaXRlIChjdHgsIGVudGVyZWQsIGVudGVyZWRsZW4pOwogICBHUlVCX01EX01ENS0+ d3JpdGUgKGN0eCwgcHctPnNhbHQgKyAzLCBwdy0+c2FsdGxlbiAtIDMpOwogICBHUlVCX01EX01E NS0+d3JpdGUgKGN0eCwgZW50ZXJlZCwgZW50ZXJlZGxlbik7CkBAIC02MzMsNyArNjMzLDcgQEAg Y2hlY2tfcGFzc3dvcmRfbWQ1X3JlYWwgKGNvbnN0IGNoYXIgKmVudGVyZWQsCiAgIEdSVUJfTURf TUQ1LT5maW5hbCAoY3R4KTsKICAgZ3J1Yl9tZW1jcHkgKGFsdF9yZXN1bHQsIGRpZ2VzdCwgTUQ1 X0hBU0hMRU4pOwogCi0gIEdSVUJfTURfTUQ1LT5pbml0IChjdHgpOworICBHUlVCX01EX01ENS0+ aW5pdCAoY3R4LCAwKTsKICAgR1JVQl9NRF9NRDUtPndyaXRlIChjdHgsIGVudGVyZWQsIGVudGVy ZWRsZW4pOwogICBHUlVCX01EX01ENS0+d3JpdGUgKGN0eCwgcHctPnNhbHQsIHB3LT5zYWx0bGVu KTsgLyogaW5jbHVkZSB0aGUgJDEkIGhlYWRlciAqLwogICBmb3IgKGkgPSBlbnRlcmVkbGVuOyBp ID4gMTY7IGkgLT0gMTYpCkBAIC02NDksNyArNjQ5LDcgQEAgY2hlY2tfcGFzc3dvcmRfbWQ1X3Jl YWwgKGNvbnN0IGNoYXIgKmVudGVyZWQsCiAgICAgewogICAgICAgZ3J1Yl9tZW1jcHkgKGFsdF9y ZXN1bHQsIGRpZ2VzdCwgMTYpOwogCi0gICAgICBHUlVCX01EX01ENS0+aW5pdCAoY3R4KTsKKyAg ICAgIEdSVUJfTURfTUQ1LT5pbml0IChjdHgsIDApOwogICAgICAgaWYgKChpICYgMSkgIT0gMCkK IAlHUlVCX01EX01ENS0+d3JpdGUgKGN0eCwgZW50ZXJlZCwgZW50ZXJlZGxlbik7CiAgICAgICBl bHNlCmRpZmYgLS1naXQgYS9ncnViLWNvcmUvY29tbWFuZHMvcGdwLmMgYi9ncnViLWNvcmUvY29t bWFuZHMvcGdwLmMKaW5kZXggYzY3NjZmMDQ0Li4yMmVjYTk3ZmYgMTAwNjQ0Ci0tLSBhL2dydWIt Y29yZS9jb21tYW5kcy9wZ3AuYworKysgYi9ncnViLWNvcmUvY29tbWFuZHMvcGdwLmMKQEAgLTEz Niw0MSArMTM2LDI3IEBAIHN0cnVjdCBzaWduYXR1cmVfdjRfaGVhZGVyCiAgIGdydWJfdWludDE2 X3QgaGFzaGVkX3N1YjsKIH0gR1JVQl9QQUNLRUQ7CiAKLWNvbnN0IGNoYXIgKmhhc2hlc1tdID0g ewotICBbMHgwMV0gPSAibWQ1IiwKLSAgWzB4MDJdID0gInNoYTEiLAotICBbMHgwM10gPSAicmlw ZW1kMTYwIiwKLSAgWzB4MDhdID0gInNoYTI1NiIsCi0gIFsweDA5XSA9ICJzaGEzODQiLAotICBb MHgwYV0gPSAic2hhNTEyIiwKLSAgWzB4MGJdID0gInNoYTIyNCIKLX07Ci0KIHN0cnVjdCBnY3J5 X3BrX3NwZWMgKmdydWJfY3J5cHRvX3BrX2RzYTsKIHN0cnVjdCBnY3J5X3BrX3NwZWMgKmdydWJf Y3J5cHRvX3BrX2VjZHNhOwogc3RydWN0IGdjcnlfcGtfc3BlYyAqZ3J1Yl9jcnlwdG9fcGtfcnNh OwogCi1zdGF0aWMgaW50Ci1kc2FfcGFkIChnY3J5X21waV90ICpobXBpLCBncnViX3VpbnQ4X3Qg Kmh2YWwsCi0JIGNvbnN0IGdjcnlfbWRfc3BlY190ICpoYXNoLCBzdHJ1Y3QgZ3J1Yl9wdWJsaWNf c3Via2V5ICpzayk7Ci1zdGF0aWMgaW50Ci1yc2FfcGFkIChnY3J5X21waV90ICpobXBpLCBncnVi X3VpbnQ4X3QgKmh2YWwsCi0JIGNvbnN0IGdjcnlfbWRfc3BlY190ICpoYXNoLCBzdHJ1Y3QgZ3J1 Yl9wdWJsaWNfc3Via2V5ICpzayk7Ci0KIHN0cnVjdAogewogICBjb25zdCBjaGFyICpuYW1lOwor ICBjb25zdCBjaGFyICpzaWdzZXhwOwogICBncnViX3NpemVfdCBubXBpc2lnOworICBjb25zdCBj aGFyICpwdWJzZXhwOwogICBncnViX3NpemVfdCBubXBpcHViOwogICBzdHJ1Y3QgZ2NyeV9wa19z cGVjICoqYWxnbzsKLSAgaW50ICgqcGFkKSAoZ2NyeV9tcGlfdCAqaG1waSwgZ3J1Yl91aW50OF90 ICpodmFsLAotCSAgICAgIGNvbnN0IGdjcnlfbWRfc3BlY190ICpoYXNoLCBzdHJ1Y3QgZ3J1Yl9w dWJsaWNfc3Via2V5ICpzayk7CisgIGNvbnN0IGNoYXIgKnBhZGRpbmc7CiAgIGNvbnN0IGNoYXIg Km1vZHVsZTsKIH0gcGthbGdvc1tdID0KICAgewotICAgIFsxXSA9IHsgInJzYSIsIDEsIDIsICZn cnViX2NyeXB0b19wa19yc2EsIHJzYV9wYWQsICJnY3J5X3JzYSIgfSwKLSAgICBbM10gPSB7ICJy c2EiLCAxLCAyLCAmZ3J1Yl9jcnlwdG9fcGtfcnNhLCByc2FfcGFkLCAiZ2NyeV9yc2EiIH0sCi0g ICAgWzE3XSA9IHsgImRzYSIsIDIsIDQsICZncnViX2NyeXB0b19wa19kc2EsIGRzYV9wYWQsICJn Y3J5X2RzYSIgfSwKKyAgICBbMV0gPSB7ICJyc2EiLCAiKHNpZy12YWwgKHJzYSAocyAlTSkpKSIs IDEsICIocHVibGljLWtleSAoZHNhIChuICVNKSAoZSAlTSkpKSIsIDIsICZncnViX2NyeXB0b19w a19yc2EsICJwa2NzMSIsICJnY3J5X3JzYSIgfSwKKyAgICBbM10gPSB7ICJyc2EiLCAiKHNpZy12 YWwgKHJzYSAocyAlTSkpKSIsIDEsICIocHVibGljLWtleSAoZHNhIChuICVNKSAoZSAlTSkpKSIs IDIsICZncnViX2NyeXB0b19wa19yc2EsICJwa2NzMSIsICJnY3J5X3JzYSIgfSwKKyAgICBbMTdd ID0geyAiZHNhIiwgIihzaWctdmFsIChkc2EgKHIgJU0pIChzICVNKSkpIiwgMiwKKwkgICAgICIo cHVibGljLWtleSAoZHNhIChwICVNKSAocSAlTSkgKGcgJU0pICh5ICVNKSkpIiwKKwkgICAgIDQs ICZncnViX2NyeXB0b19wa19kc2EsICJyYXciLCAiZ2NyeV9kc2EiIH0sCiAgIH07CiAKIHN0cnVj dCBncnViX3B1YmxpY19rZXkKQEAgLTE5Niw3ICsxODIsNyBAQCBmcmVlX3BrIChzdHJ1Y3QgZ3J1 Yl9wdWJsaWNfa2V5ICpwaykKICAgICAgIGdydWJfc2l6ZV90IGk7CiAgICAgICBmb3IgKGkgPSAw OyBpIDwgQVJSQVlfU0laRSAoc2stPm1waXMpOyBpKyspCiAJaWYgKHNrLT5tcGlzW2ldKQotCSAg Z2NyeV9tcGlfcmVsZWFzZSAoc2stPm1waXNbaV0pOworCSAgX2djcnlfbXBpX3JlbGVhc2UgKHNr LT5tcGlzW2ldKTsKICAgICAgIG5zayA9IHNrLT5uZXh0OwogICAgICAgZ3J1Yl9mcmVlIChzayk7 CiAgICAgfQpAQCAtMzAzLDcgKzI4OSw3IEBAIGdydWJfbG9hZF9wdWJsaWNfa2V5IChncnViX2Zp bGVfdCBmKQogCWdvdG8gZmFpbDsKIAogICAgICAgZ3J1Yl9tZW1zZXQgKGZpbmdlcnByaW50X2Nv bnRleHQsIDAsIEdSVUJfTURfU0hBMS0+Y29udGV4dHNpemUpOwotICAgICAgR1JVQl9NRF9TSEEx LT5pbml0IChmaW5nZXJwcmludF9jb250ZXh0KTsKKyAgICAgIEdSVUJfTURfU0hBMS0+aW5pdCAo ZmluZ2VycHJpbnRfY29udGV4dCwgMCk7CiAgICAgICBHUlVCX01EX1NIQTEtPndyaXRlIChmaW5n ZXJwcmludF9jb250ZXh0LCAiXHg5OSIsIDEpOwogICAgICAgbGVuX2JlID0gZ3J1Yl9jcHVfdG9f YmUxNiAobGVuKTsKICAgICAgIEdSVUJfTURfU0hBMS0+d3JpdGUgKGZpbmdlcnByaW50X2NvbnRl eHQsICZsZW5fYmUsIHNpemVvZiAobGVuX2JlKSk7CkBAIC0zMzYsNyArMzIyLDcgQEAgZ3J1Yl9s b2FkX3B1YmxpY19rZXkgKGdydWJfZmlsZV90IGYpCiAKIAkgIEdSVUJfTURfU0hBMS0+d3JpdGUg KGZpbmdlcnByaW50X2NvbnRleHQsIGJ1ZmZlciwgbGIgKyBzaXplb2YgKGdydWJfdWludDE2X3Qp KTsKIAotCSAgaWYgKGdjcnlfbXBpX3NjYW4gKCZzay0+bXBpc1tpXSwgR0NSWU1QSV9GTVRfUEdQ LAorCSAgaWYgKF9nY3J5X21waV9zY2FuICgmc2stPm1waXNbaV0sIEdDUllNUElfRk1UX1BHUCwK IAkJCSAgICAgYnVmZmVyLCBsYiArIHNpemVvZiAoZ3J1Yl91aW50MTZfdCksIDApKQogCSAgICB7 CiAJICAgICAgZ3J1Yl9lcnJvciAoR1JVQl9FUlJfQkFEX1NJR05BVFVSRSwgTl8oImJhZCBzaWdu YXR1cmUiKSk7CkBAIC0zOTQsNTEgKzM4MCw2IEBAIGdydWJfY3J5cHRvX3BrX2xvY2F0ZV9zdWJr ZXlfaW5fdHJ1c3RkYiAoZ3J1Yl91aW50NjRfdCBrZXlpZCkKICAgcmV0dXJuIDA7CiB9CiAKLQot c3RhdGljIGludAotZHNhX3BhZCAoZ2NyeV9tcGlfdCAqaG1waSwgZ3J1Yl91aW50OF90ICpodmFs LAotCSBjb25zdCBnY3J5X21kX3NwZWNfdCAqaGFzaCwgc3RydWN0IGdydWJfcHVibGljX3N1Ymtl eSAqc2spCi17Ci0gIHVuc2lnbmVkIG5iaXRzID0gZ2NyeV9tcGlfZ2V0X25iaXRzIChzay0+bXBp c1sxXSk7Ci0gIGdydWJfZHByaW50ZiAoImNyeXB0IiwgIm11c3QgYmUgJXUgYml0cyBnb3QgJWQg Yml0c1xuIiwgbmJpdHMsCi0JCShpbnQpKDggKiBoYXNoLT5tZGxlbikpOwotICByZXR1cm4gZ2Ny eV9tcGlfc2NhbiAoaG1waSwgR0NSWU1QSV9GTVRfVVNHLCBodmFsLAotCQkJbmJpdHMgLyA4IDwg KHVuc2lnbmVkKSBoYXNoLT5tZGxlbiA/IG5iaXRzIC8gOAotCQkJOiAodW5zaWduZWQpIGhhc2gt Pm1kbGVuLCAwKTsKLX0KLQotc3RhdGljIGludAotcnNhX3BhZCAoZ2NyeV9tcGlfdCAqaG1waSwg Z3J1Yl91aW50OF90ICpodmFsLAotCSBjb25zdCBnY3J5X21kX3NwZWNfdCAqaGFzaCwgc3RydWN0 IGdydWJfcHVibGljX3N1YmtleSAqc2spCi17Ci0gIGdydWJfc2l6ZV90IHRsZW4sIGVtbGVuLCBm ZmxlbjsKLSAgZ3J1Yl91aW50OF90ICplbSwgKmVtcHRyOwotICB1bnNpZ25lZCBuYml0cyA9IGdj cnlfbXBpX2dldF9uYml0cyAoc2stPm1waXNbMF0pOwotICBpbnQgcmV0OwotICB0bGVuID0gaGFz aC0+bWRsZW4gKyBoYXNoLT5hc25sZW47Ci0gIGVtbGVuID0gKG5iaXRzICsgNykgLyA4OwotICBp ZiAoZW1sZW4gPCB0bGVuICsgMTEpCi0gICAgcmV0dXJuIDE7Ci0KLSAgZW0gPSBncnViX21hbGxv YyAoZW1sZW4pOwotICBpZiAoIWVtKQotICAgIHJldHVybiAxOwotCi0gIGVtWzBdID0gMHgwMDsK LSAgZW1bMV0gPSAweDAxOwotICBmZmxlbiA9IGVtbGVuIC0gdGxlbiAtIDM7Ci0gIGZvciAoZW1w dHIgPSBlbSArIDI7IGVtcHRyIDwgZW0gKyAyICsgZmZsZW47IGVtcHRyKyspCi0gICAgKmVtcHRy ID0gMHhmZjsKLSAgKmVtcHRyKysgPSAweDAwOwotICBncnViX21lbWNweSAoZW1wdHIsIGhhc2gt PmFzbm9pZCwgaGFzaC0+YXNubGVuKTsKLSAgZW1wdHIgKz0gaGFzaC0+YXNubGVuOwotICBncnVi X21lbWNweSAoZW1wdHIsIGh2YWwsIGhhc2gtPm1kbGVuKTsKLQotICByZXQgPSBnY3J5X21waV9z Y2FuIChobXBpLCBHQ1JZTVBJX0ZNVF9VU0csIGVtLCBlbWxlbiwgMCk7Ci0gIGdydWJfZnJlZSAo ZW0pOwotICByZXR1cm4gcmV0OwotfQotCiBzdHJ1Y3QgZ3J1Yl9wdWJrZXlfY29udGV4dAogewog ICBncnViX2ZpbGVfdCBzaWc7CkBAIC00ODMsMTUgKzQyNCwxMiBAQCBncnViX3ZlcmlmeV9zaWdu YXR1cmVfaW5pdCAoc3RydWN0IGdydWJfcHVia2V5X2NvbnRleHQgKmN0eHQsIGdydWJfZmlsZV90 IHNpZykKICAgaWYgKHQgIT0gMCkKICAgICByZXR1cm4gZ3J1Yl9lcnJvciAoR1JVQl9FUlJfQkFE X1NJR05BVFVSRSwgTl8oImJhZCBzaWduYXR1cmUiKSk7CiAKLSAgaWYgKGggPj0gQVJSQVlfU0la RSAoaGFzaGVzKSB8fCBoYXNoZXNbaF0gPT0gTlVMTCkKLSAgICByZXR1cm4gZ3J1Yl9lcnJvciAo R1JVQl9FUlJfQkFEX1NJR05BVFVSRSwgInVua25vd24gaGFzaCIpOwotCiAgIGlmIChwayA+PSBB UlJBWV9TSVpFIChwa2FsZ29zKSB8fCBwa2FsZ29zW3BrXS5uYW1lID09IE5VTEwpCiAgICAgcmV0 dXJuIGdydWJfZXJyb3IgKEdSVUJfRVJSX0JBRF9TSUdOQVRVUkUsIE5fKCJiYWQgc2lnbmF0dXJl IikpOwogCi0gIGN0eHQtPmhhc2ggPSBncnViX2NyeXB0b19sb29rdXBfbWRfYnlfbmFtZSAoaGFz aGVzW2hdKTsKKyAgY3R4dC0+aGFzaCA9IGdydWJfY3J5cHRvX2xvb2t1cF9tZF9ieV9hbGdvICho KTsKICAgaWYgKCFjdHh0LT5oYXNoKQotICAgIHJldHVybiBncnViX2Vycm9yIChHUlVCX0VSUl9C QURfU0lHTkFUVVJFLCAiaGFzaCBgJXMnIG5vdCBsb2FkZWQiLCBoYXNoZXNbaF0pOworICAgIHJl dHVybiBncnViX2Vycm9yIChHUlVCX0VSUl9CQURfU0lHTkFUVVJFLCAiaGFzaCBgJWQnIG5vdCBs b2FkZWQiLCBoKTsKIAogICBncnViX2RwcmludGYgKCJjcnlwdCIsICJhbGl2ZVxuIik7CiAKQEAg LTQ5OSw3ICs0MzcsNyBAQCBncnViX3ZlcmlmeV9zaWduYXR1cmVfaW5pdCAoc3RydWN0IGdydWJf cHVia2V5X2NvbnRleHQgKmN0eHQsIGdydWJfZmlsZV90IHNpZykKICAgaWYgKCFjdHh0LT5oYXNo X2NvbnRleHQpCiAgICAgcmV0dXJuIGdydWJfZXJybm87CiAKLSAgY3R4dC0+aGFzaC0+aW5pdCAo Y3R4dC0+aGFzaF9jb250ZXh0KTsKKyAgY3R4dC0+aGFzaC0+aW5pdCAoY3R4dC0+aGFzaF9jb250 ZXh0LCAwKTsKICAgY3R4dC0+c2lnID0gc2lnOwogCiAgIHJldHVybiBHUlVCX0VSUl9OT05FOwpA QCAtNTI4LDcgKzQ2Niw2IEBAIGdydWJfdmVyaWZ5X3NpZ25hdHVyZV9yZWFsIChzdHJ1Y3QgZ3J1 Yl9wdWJrZXlfY29udGV4dCAqY3R4dCwKICAgZ3J1Yl91aW50MTZfdCB1bmhhc2hlZF9zdWI7CiAg IGdydWJfc3NpemVfdCByOwogICBncnViX3VpbnQ4X3QgaGFzaF9zdGFydFsyXTsKLSAgZ2NyeV9t cGlfdCBobXBpOwogICBncnViX3VpbnQ2NF90IGtleWlkID0gMDsKICAgc3RydWN0IGdydWJfcHVi bGljX3N1YmtleSAqc2s7CiAKQEAgLTYyMCw3ICs1NTcsNyBAQCBncnViX3ZlcmlmeV9zaWduYXR1 cmVfcmVhbCAoc3RydWN0IGdydWJfcHVia2V5X2NvbnRleHQgKmN0eHQsCiAgICAgICBncnViX21l bWNweSAocmVhZGJ1ZiwgJmwsIHNpemVvZiAobCkpOwogICAgICAgZ3J1Yl9kcHJpbnRmICgiY3J5 cHQiLCAiYWxpdmVcbiIpOwogCi0gICAgICBpZiAoZ2NyeV9tcGlfc2NhbiAoJm1waXNbaV0sIEdD UllNUElfRk1UX1BHUCwKKyAgICAgIGlmIChfZ2NyeV9tcGlfc2NhbiAoJm1waXNbaV0sIEdDUllN UElfRk1UX1BHUCwKIAkJCSByZWFkYnVmLCBsYiArIHNpemVvZiAoZ3J1Yl91aW50MTZfdCksIDAp KQogCWdvdG8gZmFpbDsKICAgICAgIGdydWJfZHByaW50ZiAoImNyeXB0IiwgImFsaXZlXG4iKTsK QEAgLTYzOCw4ICs1NzUsNiBAQCBncnViX3ZlcmlmeV9zaWduYXR1cmVfcmVhbCAoc3RydWN0IGdy dWJfcHVia2V5X2NvbnRleHQgKmN0eHQsCiAgICAgICBnb3RvIGZhaWw7CiAgICAgfQogCi0gIGlm IChwa2FsZ29zW3BrXS5wYWQgKCZobXBpLCBodmFsLCBjdHh0LT5oYXNoLCBzaykpCi0gICAgZ290 byBmYWlsOwogICBpZiAoISpwa2FsZ29zW3BrXS5hbGdvKQogICAgIHsKICAgICAgIGdydWJfZGxf bG9hZCAocGthbGdvc1twa10ubW9kdWxlKTsKQEAgLTY1Miw3ICs1ODcsMjQgQEAgZ3J1Yl92ZXJp Znlfc2lnbmF0dXJlX3JlYWwgKHN0cnVjdCBncnViX3B1YmtleV9jb250ZXh0ICpjdHh0LAogCQkg IHBrYWxnb3NbcGtdLm1vZHVsZSk7CiAgICAgICBnb3RvIGZhaWw7CiAgICAgfQotICBpZiAoKCpw a2FsZ29zW3BrXS5hbGdvKS0+dmVyaWZ5ICgwLCBobXBpLCBtcGlzLCBzay0+bXBpcywgMCwgMCkp CisKKyAgZ2NyeV9zZXhwX3QgaHNleHAsIHB1YmtleSwgc2lnOworICBncnViX3NpemVfdCBlcnJv ZjsKKworICBpZihfZ2NyeV9zZXhwX2J1aWxkKCZoc2V4cCwgJmVycm9mLCAiKGRhdGEgKGZsYWdz ICVzKSAoaGFzaCAlcyAlYikpIiwgcGthbGdvc1twa10ucGFkZGluZywgY3R4dC0+aGFzaC0+bmFt ZSwgY3R4dC0+aGFzaC0+bWRsZW4sIGh2YWwpKQorICAgIGdvdG8gZmFpbDsKKworICBpZihfZ2Ny eV9zZXhwX2J1aWxkKCZwdWJrZXksICZlcnJvZiwgcGthbGdvc1twa10ucHVic2V4cCwgc2stPm1w aXNbMF0sIHNrLT5tcGlzWzFdLCBzay0+bXBpc1syXSwgc2stPm1waXNbM10pKQorICAgIGdvdG8g ZmFpbDsKKworICBpZihfZ2NyeV9zZXhwX2J1aWxkKCZzaWcsICZlcnJvZiwgcGthbGdvc1twa10u c2lnc2V4cCwgbXBpc1swXSwgbXBpc1sxXSkpCisgICAgZ290byBmYWlsOworCisgIF9nY3J5X3Nl eHBfZHVtcChzaWcpOworICBfZ2NyeV9zZXhwX2R1bXAoaHNleHApOworICBfZ2NyeV9zZXhwX2R1 bXAocHVia2V5KTsKKworICBpZiAoKCpwa2FsZ29zW3BrXS5hbGdvKS0+dmVyaWZ5IChzaWcsIGhz ZXhwLCBwdWJrZXkpKQogICAgIGdvdG8gZmFpbDsKIAogICBncnViX2ZyZWUgKHJlYWRidWYpOwpk aWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2NvbW1hbmRzL3hudV91dWlkLmMgYi9ncnViLWNvcmUvY29t bWFuZHMveG51X3V1aWQuYwppbmRleCBhZTRiM2E0MTUuLjE0MDZjNDNmNSAxMDA2NDQKLS0tIGEv Z3J1Yi1jb3JlL2NvbW1hbmRzL3hudV91dWlkLmMKKysrIGIvZ3J1Yi1jb3JlL2NvbW1hbmRzL3hu dV91dWlkLmMKQEAgLTY4LDcgKzY4LDcgQEAgZ3J1Yl9jbWRfeG51X3V1aWQgKGdydWJfY29tbWFu ZF90IGNtZCBfX2F0dHJpYnV0ZV9fICgodW51c2VkKSksCiAgIGN0eCA9IGdydWJfemFsbG9jIChH UlVCX01EX01ENS0+Y29udGV4dHNpemUpOwogICBpZiAoIWN0eCkKICAgICByZXR1cm4gZ3J1Yl9l cnJubzsKLSAgR1JVQl9NRF9NRDUtPmluaXQgKGN0eCk7CisgIEdSVUJfTURfTUQ1LT5pbml0IChj dHgsIDApOwogICBHUlVCX01EX01ENS0+d3JpdGUgKGN0eCwgaGFzaF9wcmVmaXgsIHNpemVvZiAo aGFzaF9wcmVmaXgpKTsKICAgR1JVQl9NRF9NRDUtPndyaXRlIChjdHgsICZzZXJpYWwsIHNpemVv ZiAoc2VyaWFsKSk7CiAgIEdSVUJfTURfTUQ1LT5maW5hbCAoY3R4KTsKZGlmZiAtLWdpdCBhL2dy dWItY29yZS9kaXNrL2NyeXB0b2Rpc2suYyBiL2dydWItY29yZS9kaXNrL2NyeXB0b2Rpc2suYwpp bmRleCA1ZTFlYjI3NDMuLmU1MmE3ZWJiNSAxMDA2NDQKLS0tIGEvZ3J1Yi1jb3JlL2Rpc2svY3J5 cHRvZGlzay5jCisrKyBiL2dydWItY29yZS9kaXNrL2NyeXB0b2Rpc2suYwpAQCAtMjk3LDcgKzI5 Nyw3IEBAIGdydWJfY3J5cHRvZGlza19lbmRlY3J5cHQgKHN0cnVjdCBncnViX2NyeXB0b2Rpc2sg KmRldiwKIAkgICAgICByZXR1cm4gR1BHX0VSUl9PVVRfT0ZfTUVNT1JZOwogCiAJICAgIHRtcCA9 IGdydWJfY3B1X3RvX2xlNjQgKHNlY3RvciA8PCBsb2dfc2VjdG9yX3NpemUpOwotCSAgICBkZXYt Pml2X2hhc2gtPmluaXQgKGN0eCk7CisJICAgIGRldi0+aXZfaGFzaC0+aW5pdCAoY3R4LCAwKTsK IAkgICAgZGV2LT5pdl9oYXNoLT53cml0ZSAoY3R4LCBkZXYtPml2X3ByZWZpeCwgZGV2LT5pdl9w cmVmaXhfbGVuKTsKIAkgICAgZGV2LT5pdl9oYXNoLT53cml0ZSAoY3R4LCAmdG1wLCBzaXplb2Yg KHRtcCkpOwogCSAgICBkZXYtPml2X2hhc2gtPmZpbmFsIChjdHgpOwpkaWZmIC0tZ2l0IGEvZ3J1 Yi1jb3JlL2lvL2d6aW8uYyBiL2dydWItY29yZS9pby9nemlvLmMKaW5kZXggY2I3ZWIxZmUzLi5m YTlkOTQyYjIgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9pby9nemlvLmMKKysrIGIvZ3J1Yi1jb3Jl L2lvL2d6aW8uYwpAQCAtMTIwMSw3ICsxMjAxLDcgQEAgaW5pdGlhbGl6ZV90YWJsZXMgKGdydWJf Z3ppb190IGd6aW8pCiAgIGd6aW8tPnRkID0gTlVMTDsKIAogICBpZiAoZ3ppby0+aGNvbnRleHQp Ci0gICAgZ3ppby0+aGRlc2MtPmluaXQoZ3ppby0+aGNvbnRleHQpOworICAgIGd6aW8tPmhkZXNj LT5pbml0KGd6aW8tPmhjb250ZXh0LCAwKTsKIH0KIAogCmRpZmYgLS1naXQgYS9ncnViLWNvcmUv aW8vbHpvcGlvLmMgYi9ncnViLWNvcmUvaW8vbHpvcGlvLmMKaW5kZXggYTdkNDQyNTQzLi5jZWE5 NDIzMDggMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9pby9sem9waW8uYworKysgYi9ncnViLWNvcmUv aW8vbHpvcGlvLmMKQEAgLTM0NSw3ICszNDUsNyBAQCB0ZXN0X2hlYWRlciAoZ3J1Yl9maWxlX3Qg ZmlsZSkKICAgICBpZiAoISBjb250ZXh0KQogICAgICAgcmV0dXJuIDA7CiAKLSAgICBoY2hlY2st PmluaXQoY29udGV4dCk7CisgICAgaGNoZWNrLT5pbml0KGNvbnRleHQsIDApOwogCiAgICAgLyog TUFHSUMgaXMgbm90IGluY2x1ZGVkIGluIGNoZWNrIGNhbGN1bGF0aW9uLiAgKi8KICAgICBoY2hl Y2stPndyaXRlKGNvbnRleHQsICZoZWFkZXIubHpvcF92ZXJzaW9uLCBzaXplb2YoaGVhZGVyKS0g TFpPUF9NQUdJQ19TSVpFKTsKZGlmZiAtLWdpdCBhL2dydWItY29yZS9saWIvYWRsZXIzMi5jIGIv Z3J1Yi1jb3JlL2xpYi9hZGxlcjMyLmMKaW5kZXggNDNiNjhhZjYyLi5mODQ5Y2NlZTYgMTAwNjQ0 Ci0tLSBhL2dydWItY29yZS9saWIvYWRsZXIzMi5jCisrKyBiL2dydWItY29yZS9saWIvYWRsZXIz Mi5jCkBAIC0yOSwxMCArMjksMTIgQEAgc3RydWN0IGFkbGVyMzJfY29udGV4dAogfTsKIAogc3Rh dGljIHZvaWQKLWFkbGVyMzJfaW5pdCAodm9pZCAqY29udGV4dCkKK2FkbGVyMzJfaW5pdCAodm9p ZCAqY29udGV4dCwgdW5zaWduZWQgaW50IGZsYWdzKQogewogICBzdHJ1Y3QgYWRsZXIzMl9jb250 ZXh0ICpjdHggPSBjb250ZXh0OwogCisgICh2b2lkKSBmbGFnczsKKwogICBjdHgtPmEgPSAxOwog ICBjdHgtPmIgPSAwOwogfQpAQCAtODEsMTMgKzgzLDIyIEBAIGFkbGVyMzJfcmVhZCAodm9pZCAq Y29udGV4dCkKIAogc3RhdGljIGdjcnlfbWRfc3BlY190IHNwZWNfYWRsZXIzMiA9CiAgIHsKLSAg ICAiQURMRVIzMiIsIDAsIDAsIDAsIDQsCi0gICAgYWRsZXIzMl9pbml0LCBhZGxlcjMyX3dyaXRl LCBhZGxlcjMyX2ZpbmFsLCBhZGxlcjMyX3JlYWQsCi0gICAgc2l6ZW9mIChzdHJ1Y3QgYWRsZXIz Ml9jb250ZXh0KSwKKyAgICAuYWxnbyA9IEdDUllfTURfQURMRVIzMiwKKyAgICAuZmxhZ3MgPSB7 LmRpc2FibGVkID0gMCwgLmZpcHMgPSAwfSwKKyAgICAubmFtZSA9ICJBRExFUjMyIiwKKyAgICAu YXNub2lkID0gTlVMTCwKKyAgICAuYXNubGVuID0gMCwKKyAgICAub2lkcyA9IE5VTEwsCisgICAg Lm1kbGVuID0gNCwKKyAgICAuaW5pdCA9IGFkbGVyMzJfaW5pdCwKKyAgICAud3JpdGUgPSBhZGxl cjMyX3dyaXRlLAorICAgIC5maW5hbCA9IGFkbGVyMzJfZmluYWwsCisgICAgLnJlYWQgPSBhZGxl cjMyX3JlYWQsCisgICAgLmNvbnRleHRzaXplID0gc2l6ZW9mIChzdHJ1Y3QgYWRsZXIzMl9jb250 ZXh0KSwKKyAgICAuYmxvY2tzaXplID0gNjQsCiAjaWZkZWYgR1JVQl9VVElMCiAgICAgLm1vZG5h bWUgPSAiYWRsZXIzMiIsCiAjZW5kaWYKLSAgICAuYmxvY2tzaXplID0gNjQKICAgfTsKIAogCmRp ZmYgLS1naXQgYS9ncnViLWNvcmUvbGliL2NyYzY0LmMgYi9ncnViLWNvcmUvbGliL2NyYzY0LmMK aW5kZXggNDk2MGYzZjg5Li5jMjMxZmE5N2MgMTAwNjQ0Ci0tLSBhL2dydWItY29yZS9saWIvY3Jj NjQuYworKysgYi9ncnViLWNvcmUvbGliL2NyYzY0LmMKQEAgLTYxLDggKzYxLDEwIEBAIGluaXRf Y3JjNjRfdGFibGUgKHZvaWQpCiB9CiAKIHN0YXRpYyB2b2lkCi1jcmM2NF9pbml0ICh2b2lkICpj b250ZXh0KQorY3JjNjRfaW5pdCAodm9pZCAqY29udGV4dCwgdW5zaWduZWQgaW50IGZsYWdzKQog eworICAodm9pZCkgZmxhZ3M7CisKICAgaWYgKCEgY3JjNjRfdGFibGVbMV0pCiAgICAgaW5pdF9j cmM2NF90YWJsZSAoKTsKICAgKihncnViX3VpbnQ2NF90ICopIGNvbnRleHQgPSAwOwpAQCAtOTcs MTAgKzk5LDIyIEBAIGNyYzY0X2ZpbmFsICh2b2lkICpjb250ZXh0IF9fYXR0cmlidXRlX18gKCh1 bnVzZWQpKSkKIAogZ2NyeV9tZF9zcGVjX3QgX2djcnlfZGlnZXN0X3NwZWNfY3JjNjQgPQogICB7 Ci0gICAgIkNSQzY0IiwgMCwgMCwgMCwgOCwKLSAgICBjcmM2NF9pbml0LCBjcmM2NF93cml0ZSwg Y3JjNjRfZmluYWwsIGNyYzY0X3JlYWQsCi0gICAgc2l6ZW9mIChncnViX3VpbnQ2NF90KSwKLSAg ICAuYmxvY2tzaXplID0gNjQKKyAgICAuYWxnbyA9IEdDUllfTURfQ1JDNjQsCisgICAgLmZsYWdz ID0gey5kaXNhYmxlZCA9IDAsIC5maXBzID0gMH0sCisgICAgLm5hbWUgPSAiQ1JDNjQiLAorICAg IC5hc25vaWQgPSBOVUxMLAorICAgIC5hc25sZW4gPSAwLAorICAgIC5vaWRzID0gTlVMTCwKKyAg ICAubWRsZW4gPSA4LAorICAgIC5pbml0ID0gY3JjNjRfaW5pdCwKKyAgICAud3JpdGUgPSBjcmM2 NF93cml0ZSwKKyAgICAuZmluYWwgPSBjcmM2NF9maW5hbCwKKyAgICAucmVhZCA9IGNyYzY0X3Jl YWQsCisgICAgLmNvbnRleHRzaXplID0gc2l6ZW9mIChncnViX3VpbnQ2NF90KSwKKyAgICAuYmxv Y2tzaXplID0gNjQsCisjaWZkZWYgR1JVQl9VVElMCisgICAgLm1vZG5hbWUgPSAiY3JjNjQiLAor I2VuZGlmCiAgIH07CiAKIEdSVUJfTU9EX0lOSVQoY3JjNjQpCmRpZmYgLS1naXQgYS9ncnViLWNv cmUvbGliL2NyeXB0by5jIGIvZ3J1Yi1jb3JlL2xpYi9jcnlwdG8uYwppbmRleCAzOTZmNzY0MTAu LmRkNjBkZDRhYyAxMDA2NDQKLS0tIGEvZ3J1Yi1jb3JlL2xpYi9jcnlwdG8uYworKysgYi9ncnVi LWNvcmUvbGliL2NyeXB0by5jCkBAIC0zNyw2ICszNyw4IEBAIHN0cnVjdCBncnViX2NyeXB0b19o bWFjX2hhbmRsZQogc3RhdGljIGdjcnlfY2lwaGVyX3NwZWNfdCAqZ3J1Yl9jaXBoZXJzID0gTlVM TDsKIHN0YXRpYyBnY3J5X21kX3NwZWNfdCAqZ3J1Yl9kaWdlc3RzID0gTlVMTDsKIAoraW50IF9n Y3J5X25vX2ZpcHNfbW9kZV9yZXF1aXJlZCA9IDE7CisKIHZvaWQgKCpncnViX2NyeXB0b19hdXRv bG9hZF9ob29rKSAoY29uc3QgY2hhciAqbmFtZSkgPSBOVUxMOwogCiAvKiBCYXNlZCBvbiBsaWJn Y3J5cHQtMS40LjQvc3JjL21pc2MuYy4gICovCkBAIC01Niw2ICs1OCwxNyBAQCBfZ2NyeV9idXJu X3N0YWNrIChpbnQgc2l6ZSkKICAgZ3J1Yl9idXJuX3N0YWNrIChzaXplKTsKIH0KIAordm9pZAor X19nY3J5X2J1cm5fc3RhY2sgKHVuc2lnbmVkIGludCBzaXplKQoreworICBncnViX2J1cm5fc3Rh Y2sgKHNpemUpOworfQorCit2b2lkCitfX2djcnlfYnVybl9zdGFja19kdW1teSAodm9pZCkKK3sK K30KKwogdm9pZCBfX2F0dHJpYnV0ZV9fICgobm9yZXR1cm4pKQogX2djcnlfYXNzZXJ0X2ZhaWxl ZCAoY29uc3QgY2hhciAqZXhwciwgY29uc3QgY2hhciAqZmlsZSwgaW50IGxpbmUsCiAJCSAgICAg Y29uc3QgY2hhciAqZnVuYykKQEAgLTY0LDYgKzc3LDEyIEBAIF9nY3J5X2Fzc2VydF9mYWlsZWQg KGNvbnN0IGNoYXIgKmV4cHIsIGNvbnN0IGNoYXIgKmZpbGUsIGludCBsaW5lLAogICBncnViX2Zh dGFsICgiYXNzZXJ0aW9uICVzIGF0ICVzOiVkICglcykgZmFpbGVkXG4iLCBleHByLCBmaWxlLCBs aW5lLCBmdW5jKTsKIH0KIAordm9pZAorX2djcnlfYnVnKCBjb25zdCBjaGFyICpmaWxlLCBpbnQg bGluZSwgY29uc3QgY2hhciAqZnVuYyApCit7CisgICAgZ3J1Yl9mYXRhbCAoIi4uLiB0aGlzIGlz IGEgYnVnICglczolZDolcylcbiIsIGZpbGUsIGxpbmUsIGZ1bmMpOworfQorCiAKIHZvaWQgX2dj cnlfbG9nX2Vycm9yIChjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKQEAgLTgzLDYgKzEwMiwzNiBA QCB2b2lkIF9nY3J5X2xvZ19lcnJvciAoY29uc3QgY2hhciAqZm10LCAuLi4pCiAgICAgfQogfQog Cit2b2lkIF9nY3J5X2xvZ19pbmZvIChjb25zdCBjaGFyICpmbXQsIC4uLikKK3sKKyAgdmFfbGlz dCBhcmdzOworICBjb25zdCBjaGFyICpkZWJ1ZyA9IGdydWJfZW52X2dldCAoImRlYnVnIik7CisK KyAgaWYgKCEgZGVidWcpCisgICAgcmV0dXJuOworCisgIGlmIChncnViX3N0cndvcmQgKGRlYnVn LCAiYWxsIikgfHwgZ3J1Yl9zdHJ3b3JkIChkZWJ1ZywgImdjcnlwdCIpKQorICAgIHsKKyAgICAg IGdydWJfcHJpbnRmICgiZ2NyeXB0IGluZm86ICIpOworICAgICAgdmFfc3RhcnQgKGFyZ3MsIGZt dCk7CisgICAgICBncnViX3ZwcmludGYgKGZtdCwgYXJncyk7CisgICAgICB2YV9lbmQgKGFyZ3Mp OworICAgICAgZ3J1Yl9yZWZyZXNoICgpOworICAgIH0KK30KKwordm9pZAorX2djcnlfZmFzdF93 aXBlbWVtb3J5MiAodm9pZCAqcHRyLCBpbnQgc2V0LCBncnViX3NpemVfdCBsZW4pCit7CisgIGdy dWJfbWVtc2V0KHB0ciwgc2V0LCBsZW4pOworfQorCit2b2lkCitfZ2NyeV9mYXN0X3dpcGVtZW1v cnkgKHZvaWQgKnB0ciwgZ3J1Yl9zaXplX3QgbGVuKQoreworICBncnViX21lbXNldChwdHIsIDAs IGxlbik7Cit9CisKIHZvaWQKIGdydWJfY2lwaGVyX3JlZ2lzdGVyIChnY3J5X2NpcGhlcl9zcGVj X3QgKmNpcGhlcikKIHsKQEAgLTEyOSw3ICsxNzgsNyBAQCBncnViX2NyeXB0b19oYXNoIChjb25z dCBnY3J5X21kX3NwZWNfdCAqaGFzaCwgdm9pZCAqb3V0LCBjb25zdCB2b2lkICppbiwKIAogICBp ZiAoaGFzaC0+Y29udGV4dHNpemUgPiBzaXplb2YgKGN0eCkpCiAgICAgZ3J1Yl9mYXRhbCAoIlRv byBsYXJnZSBtZCBjb250ZXh0Iik7Ci0gIGhhc2gtPmluaXQgKCZjdHgpOworICBoYXNoLT5pbml0 ICgmY3R4LCAwKTsKICAgaGFzaC0+d3JpdGUgKCZjdHgsIGluLCBpbmxlbik7CiAgIGhhc2gtPmZp bmFsICgmY3R4KTsKICAgZ3J1Yl9tZW1jcHkgKG91dCwgaGFzaC0+cmVhZCAoJmN0eCksIGhhc2gt Pm1kbGVuKTsKQEAgLTE1Myw2ICsyMDIsOTEgQEAgZ3J1Yl9jcnlwdG9fbG9va3VwX21kX2J5X25h bWUgKGNvbnN0IGNoYXIgKm5hbWUpCiAgICAgfQogfQogCitjb25zdCBnY3J5X21kX3NwZWNfdCAq CitncnViX2NyeXB0b19sb29rdXBfbWRfYnlfb2lkIChjb25zdCBjaGFyICpvaWQpCit7CisgIGNv bnN0IGdjcnlfbWRfc3BlY190ICptZDsKKworICBpZiAoIW9pZCkKKyAgICByZXR1cm4gTlVMTDsK KworICBpZiAoZ3J1Yl9zdHJuY21wIChvaWQsICJvaWQuIiwgNCkgPT0gMCB8fCBncnViX3N0cm5j bXAgKG9pZCwgIk9JRC4iLCA0KSA9PSAwKQorICAgIG9pZCArPSA0OworCisKKyAgZm9yIChtZCA9 IGdydWJfZGlnZXN0czsgbWQ7IG1kID0gbWQtPm5leHQpCisgICAgeworICAgICAgY29uc3QgZ2Ny eV9tZF9vaWRfc3BlY190ICpvaWRfc3BlY3MgPSBtZC0+b2lkczsKKyAgICAgIGlmIChvaWRfc3Bl Y3MpCisgICAgICAgIHsKKyAgICAgICAgICBmb3IgKGludCBqID0gMDsgb2lkX3NwZWNzW2pdLm9p ZHN0cmluZzsgaisrKQorICAgICAgICAgICAgaWYgKGdydWJfc3RyY2FzZWNtcCAob2lkLCBvaWRf c3BlY3Nbal0ub2lkc3RyaW5nKSA9PSAwKQorICAgICAgICAgICAgICByZXR1cm4gbWQ7CisgICAg ICAgIH0KKyAgICB9CisKKyAgcmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyBjb25zdCBjaGFyICpt ZF9hbGdvc1tdID0geworICAgIFsxXSA9ICJNRDUiLAorICAgIFsyXSA9ICJTSEExIiwKKyAgICBb M10gPSAiUklQRU1EMTYwIiwKKyAgICBbNl0gPSAiVElHRVIiLAorICAgIFs4XSA9ICJTSEEyNTYi LAorICAgIFs5XSA9ICJTSEEzODQiLAorICAgIFsxMF0gPSAiU0hBNTEyIiwKKyAgICBbMTFdID0g IlNIQTIyNCIsCisKKyAgICBbMzAxXSA9ICJNRDQiLAorICAgIFszMDJdID0gIkNSQzMyIiwKKyAg ICBbMzAzXSA9ICJDUkMzMlJGQzE1MTAiLAorICAgIFszMDRdID0gIkNSQzI0UkZDMjQ0MCIsCisg ICAgWzMwNV0gPSAiV0hJUkxQT09MIiwKKyAgICBbMzA2XSA9ICJUSUdFUjEiLAorICAgIFszMDdd ID0gIlRJR0VSMiIsCisgICAgWzMwOF0gPSAiR09TVFIzNDExXzk0IiwKKyAgICBbMzA5XSA9ICJT VFJJQk9HMjU2IiwKKyAgICBbMzEwXSA9ICJTVFJJQk9HNTEyIiwKKyAgICBbMzExXSA9ICJHT1NU UjM0MTFfQ1AiLAorICAgIFszMTJdID0gIlNIQTMtMjI0IiwKKyAgICBbMzEzXSA9ICJTSEEzLTI1 NiIsCisgICAgWzMxNF0gPSAiU0hBMy0zODQiLAorICAgIFszMTVdID0gIlNIQTMtNTEyIiwKKyAg ICBbMzE2XSA9ICJTSEFLRTEyOCIsCisgICAgWzMxN10gPSAiU0hBS0UyNTYiLAorICAgIFszMThd ID0gIkJMQUtFMkJfNTEyIiwKKyAgICBbMzE5XSA9ICJCTEFLRTJCXzM4NCIsCisgICAgWzMyMF0g PSAiQkxBS0UyQl8yNTYiLAorICAgIFszMjFdID0gIkJMQUtFMkJfMTYwIiwKKyAgICBbMzIyXSA9 ICJCTEFLRTJTXzI1NiIsCisgICAgWzMyM10gPSAiQkxBS0UyU18yMjQiLAorICAgIFszMjRdID0g IkJMQUtFMlNfMTYwIiwKKyAgICBbMzI1XSA9ICJCTEFLRTJTXzEyOCIsCisgICAgWzMyNl0gPSAi U00zIiwKKyAgICBbMzI3XSA9ICJTSEE1MTJfMjU2IiwKKyAgICBbMzI4XSA9ICJTSEE1MTJfMjI0 IiwKK307CisKKworY29uc3QgZ2NyeV9tZF9zcGVjX3QgKgorZ3J1Yl9jcnlwdG9fbG9va3VwX21k X2J5X2FsZ28gKGludCBhbGdvKQoreworICBjb25zdCBnY3J5X21kX3NwZWNfdCAqbWQ7CisgIGlu dCBmaXJzdCA9IDE7CisgIHdoaWxlICgxKQorICAgIHsKKyAgICAgIGZvciAobWQgPSBncnViX2Rp Z2VzdHM7IG1kOyBtZCA9IG1kLT5uZXh0KQorCWlmIChhbGdvID09IG1kLT5hbGdvKQorCSAgcmV0 dXJuIG1kOworICAgICAgaWYgKGdydWJfY3J5cHRvX2F1dG9sb2FkX2hvb2sgJiYgZmlyc3QgJiYg YWxnbyA+IDAgJiYgYWxnbyA8IChpbnQpQVJSQVlfU0laRShtZF9hbGdvcykgJiYgbWRfYWxnb3Nb YWxnb10pIHsKKwlncnViX2NyeXB0b19hdXRvbG9hZF9ob29rIChtZF9hbGdvc1thbGdvXSk7Cisg ICAgICB9IGVsc2UKKwlyZXR1cm4gTlVMTDsKKyAgICAgIGZpcnN0ID0gMDsKKyAgICB9Cit9CisK IGNvbnN0IGdjcnlfY2lwaGVyX3NwZWNfdCAqCiBncnViX2NyeXB0b19sb29rdXBfY2lwaGVyX2J5 X25hbWUgKGNvbnN0IGNoYXIgKm5hbWUpCiB7CkBAIC0xOTYsNyArMzMwLDkgQEAgZ3J1Yl9jcnlw dG9fY2lwaGVyX3NldF9rZXkgKGdydWJfY3J5cHRvX2NpcGhlcl9oYW5kbGVfdCBjaXBoZXIsCiAJ CQkgICAgY29uc3QgdW5zaWduZWQgY2hhciAqa2V5LAogCQkJICAgIHVuc2lnbmVkIGtleWxlbikK IHsKLSAgcmV0dXJuIGNpcGhlci0+Y2lwaGVyLT5zZXRrZXkgKGNpcGhlci0+Y3R4LCBrZXksIGtl eWxlbik7CisgIC8qIFRPRE86IEZpeCB0aGlzLiBJdCdzIHVnbHkgYXMgaGVsbC4gICovCisgIHZv aWQgKmJ1bGtfb3BzWzEwMF07CisgIHJldHVybiBjaXBoZXItPmNpcGhlci0+c2V0a2V5IChjaXBo ZXItPmN0eCwga2V5LCBrZXlsZW4sICh2b2lkICopIGJ1bGtfb3BzKTsKIH0KIAogZ2NyeV9lcnJf Y29kZV90CkBAIC0zNDMsNyArNDc5LDcgQEAgZ3J1Yl9jcnlwdG9faG1hY19pbml0IChjb25zdCBz dHJ1Y3QgZ2NyeV9tZF9zcGVjICptZCwKICAgZ3J1Yl9mcmVlIChoZWxwa2V5KTsKICAgaGVscGtl eSA9IE5VTEw7CiAKLSAgbWQtPmluaXQgKGN0eCk7CisgIG1kLT5pbml0IChjdHgsIDApOwogCiAg IG1kLT53cml0ZSAoY3R4LCBpcGFkLCBtZC0+YmxvY2tzaXplKTsgLyogaW5uZXIgcGFkICovCiAg IGdydWJfbWVtc2V0IChpcGFkLCAwLCBtZC0+YmxvY2tzaXplKTsKQEAgLTM5MCw3ICs1MjYsNyBA QCBncnViX2NyeXB0b19obWFjX2ZpbmkgKHN0cnVjdCBncnViX2NyeXB0b19obWFjX2hhbmRsZSAq aG5kLCB2b2lkICpvdXQpCiAgIGhuZC0+bWQtPnJlYWQgKGhuZC0+Y3R4KTsKICAgcCA9IGhuZC0+ bWQtPnJlYWQgKGhuZC0+Y3R4KTsKIAotICBobmQtPm1kLT5pbml0IChjdHgyKTsKKyAgaG5kLT5t ZC0+aW5pdCAoY3R4MiwgMCk7CiAgIGhuZC0+bWQtPndyaXRlIChjdHgyLCBobmQtPm9wYWQsIGhu ZC0+bWQtPmJsb2Nrc2l6ZSk7CiAgIGhuZC0+bWQtPndyaXRlIChjdHgyLCBwLCBobmQtPm1kLT5t ZGxlbik7CiAgIGhuZC0+bWQtPmZpbmFsIChjdHgyKTsKQEAgLTQzMywxOSArNTY5LDEwNiBAQCBn cnViX2NyeXB0b19nY3J5X2Vycm9yIChnY3J5X2Vycl9jb2RlX3QgaW4pCiAgIHJldHVybiBHUlVC X0FDQ0VTU19ERU5JRUQ7CiB9CiAKKworLyoKKyAqIENvbXBhcmUgYnl0ZSBhcnJheXMgb2YgbGVu Z3RoIExFTiwgcmV0dXJuIDEgaWYgaXQncyBub3Qgc2FtZSwKKyAqIDAsIG90aGVyd2lzZS4KKyAq LwogaW50Ci1ncnViX2NyeXB0b19tZW1jbXAgKGNvbnN0IHZvaWQgKmEsIGNvbnN0IHZvaWQgKmIs IGdydWJfc2l6ZV90IG4pCitncnViX2NyeXB0b19tZW1jbXAgKGNvbnN0IHZvaWQgKmIxLCBjb25z dCB2b2lkICpiMiwgZ3J1Yl9zaXplX3QgbGVuKQogewotICByZWdpc3RlciBncnViX3NpemVfdCBj b3VudGVyID0gMDsKLSAgY29uc3QgZ3J1Yl91aW50OF90ICpwYSwgKnBiOworICBjb25zdCBncnVi X3VpbnQ4X3QgKmEgPSBiMTsKKyAgY29uc3QgZ3J1Yl91aW50OF90ICpiID0gYjI7CisgIGludCBh YiwgYmE7CisgIGdydWJfc2l6ZV90IGk7CiAKLSAgZm9yIChwYSA9IGEsIHBiID0gYjsgbjsgcGEr KywgcGIrKywgbi0tKQorICAvKiBDb25zdGFudC10aW1lIGNvbXBhcmUuICovCisgIGZvciAoaSA9 IDAsIGFiID0gMCwgYmEgPSAwOyBpIDwgbGVuOyBpKyspCiAgICAgewotICAgICAgaWYgKCpwYSAh PSAqcGIpCi0JY291bnRlcisrOworICAgICAgLyogSWYgYVtpXSAhPSBiW2ldLCBlaXRoZXIgYWIg b3IgYmEgd2lsbCBiZSBuZWdhdGl2ZS4gKi8KKyAgICAgIGFiIHw9IGFbaV0gLSBiW2ldOworICAg ICAgYmEgfD0gYltpXSAtIGFbaV07CiAgICAgfQogCi0gIHJldHVybiAhIWNvdW50ZXI7CisgIC8q ICdhYiB8IGJhJyBpcyBuZWdhdGl2ZSB3aGVuIGJ1ZmZlcnMgYXJlIG5vdCBlcXVhbCwgZXh0cmFj dCBzaWduIGJpdC4gICovCisgIHJldHVybiAoKHVuc2lnbmVkIGludCkoYWIgfCBiYSkgPj4gKHNp emVvZih1bnNpZ25lZCBpbnQpICogOCAtIDEpKSAmIDE7Cit9CisKKwordm9pZCAqCitfZ2NyeV9t YWxsb2Nfc2VjdXJlIChncnViX3NpemVfdCBuKQoreworICByZXR1cm4gZ3J1Yl9tYWxsb2Mobik7 Cit9CisKK3ZvaWQgKgorX2djcnlfbWFsbG9jIChncnViX3NpemVfdCBuKQoreworICByZXR1cm4g Z3J1Yl9tYWxsb2Mobik7Cit9CisKK3ZvaWQgKgorX2djcnlfeG1hbGxvYyhncnViX3NpemVfdCBu KQoreworICB2b2lkICpyZXQgPSBncnViX21hbGxvYyhuKTsKKyAgaWYgKHJldCA9PSBOVUxMKQor ICAgIGdydWJfZmF0YWwoIl9nY3J5X3htYWxsb2MgZmFpbGVkIik7CisgIHJldHVybiByZXQ7Cit9 CisKK3ZvaWQgKgorX2djcnlfeG1hbGxvY19zZWN1cmUoZ3J1Yl9zaXplX3QgbikKK3sKKyAgdm9p ZCAqcmV0ID0gZ3J1Yl9tYWxsb2Mobik7CisgIGlmIChyZXQgPT0gTlVMTCkKKyAgICBncnViX2Zh dGFsKCJfZ2NyeV94bWFsbG9jX3NlY3VyZSBmYWlsZWQiKTsKKyAgcmV0dXJuIHJldDsKK30KKwor dm9pZCBfZ2NyeV9mcmVlICh2b2lkICpwKQoreworICBncnViX2ZyZWUgKHApOworfQorCit2b2lk ICoKK19nY3J5X3hyZWFsbG9jICh2b2lkICphLCBncnViX3NpemVfdCBuKQoreworICB2b2lkICpy ZXQgPSBncnViX3JlYWxsb2MoYSwgbik7CisgIGlmIChyZXQgPT0gTlVMTCkKKyAgICBncnViX2Zh dGFsKCJfZ2NyeV94cmVhbGxvYyBmYWlsZWQiKTsKKyAgcmV0dXJuIHJldDsKK30KKwordm9pZCAq CitfZ2NyeV94Y2FsbG9jIChncnViX3NpemVfdCBuLCBncnViX3NpemVfdCBtKQoreworICB2b2lk ICpyZXQgPSBncnViX2NhbGxvYyhuLCBtKTsKKyAgaWYgKHJldCA9PSBOVUxMKQorICAgIGdydWJf ZmF0YWwoIl9nY3J5X3hjYWxsb2MgZmFpbGVkIik7CisgIHJldHVybiByZXQ7Cit9CisKK3ZvaWQg KgorX2djcnlfeGNhbGxvY19zZWN1cmUgKGdydWJfc2l6ZV90IG4sIGdydWJfc2l6ZV90IG0pCit7 CisgIHZvaWQgKnJldCA9IGdydWJfY2FsbG9jKG4sIG0pOworICBpZiAocmV0ID09IE5VTEwpCisg ICAgZ3J1Yl9mYXRhbCgiX2djcnlfeGNhbGxvY19zZWN1cmUgZmFpbGVkIik7CisgIHJldHVybiBy ZXQ7Cit9CisKKworaW50CitfZ2NyeV9pc19zZWN1cmUgKGNvbnN0IHZvaWQgKmEpCit7CisgICh2 b2lkKSBhOworCisgIHJldHVybiAwOworfQorCit2b2lkIF9nY3J5X2RpdmlkZV9ieV96ZXJvICh2 b2lkKQoreworICBncnViX2ZhdGFsKCJnY3J5cHQgZGl2aXNpb24gYnkgemVybyIpOwogfQogCiAj aWZuZGVmIEdSVUJfVVRJTApkaWZmIC0tZ2l0IGEvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtcGF0 Y2hlcy8wMV9tZC5wYXRjaCBiL2dydWItY29yZS9saWIvbGliZ2NyeXB0LXBhdGNoZXMvMDFfbWQu cGF0Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwLi5kYmI0OTNkZmMKLS0t IC9kZXYvbnVsbAorKysgYi9ncnViLWNvcmUvbGliL2xpYmdjcnlwdC1wYXRjaGVzLzAxX21kLnBh dGNoCkBAIC0wLDAgKzEsMjA3IEBACistLS0gYS9ncnViLWNvcmUvbGliL2xpYmdjcnlwdC1ncnVi L2NpcGhlci9tZC5jIDIwMjQtMDUtMjEgMDE6MjI6MDQuMjIyMDg0NzczICswMzAwCisrKysgYi9n cnViLWNvcmUvbGliL2xpYmdjcnlwdC1ncnViL2NpcGhlci9tZC5jIDIwMjQtMDUtMjEgMDE6MjI6 MDcuMzY4MDk5OTYxICswMzAwCitAQCAtMjAsMTEgKzIwLDI1IEBACisgICogWW91IHNob3VsZCBo YXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExlc3NlciBHZW5lcmFsIFB1YmxpYworICAq IExpY2Vuc2UgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW07IGlmIG5vdCwgc2VlIDxodHRwOi8vd3d3 LmdudS5vcmcvbGljZW5zZXMvPi4KKyAgKi8KKysjaW5jbHVkZSA8Y29uZmlnLmg+CisrI2luY2x1 ZGUgPHN0ZGlvLmg+CisrI2luY2x1ZGUgPHN0ZGxpYi5oPgorKyNpbmNsdWRlIDxzdHJpbmcuaD4K KysjaW5jbHVkZSA8ZXJybm8uaD4KKyAKKyAKKyAjaW5jbHVkZSAiZzEwbGliLmgiCisgI2luY2x1 ZGUgImNpcGhlci5oIgorIAorKyNkZWZpbmUgX2djcnlfbWRfc2VsZnRlc3QoYSxiLGMpIDAKKyt0 eXBlZGVmIHN0cnVjdCBnY3J5X21kX2xpc3QKKyt7CisrICBjb25zdCBnY3J5X21kX3NwZWNfdCAq c3BlYzsKKysgIHN0cnVjdCBnY3J5X21kX2xpc3QgKm5leHQ7CisrICBzaXplX3QgYWN0dWFsX3N0 cnVjdF9zaXplOyAgICAgLyogQWxsb2NhdGVkIHNpemUgb2YgdGhpcyBzdHJ1Y3R1cmUuICovCisr ICBQUk9QRVJMWV9BTElHTkVEX1RZUEUgY29udGV4dFsxXTsKKyt9IEdjcnlEaWdlc3RFbnRyeTsK KysKKyAKKyAvKiBUaGlzIGlzIHRoZSBsaXN0IG9mIHRoZSBkaWdlc3QgaW1wbGVtZW50YXRpb25z IGluY2x1ZGVkIGluCisgICAgbGliZ2NyeXB0LiAgKi8KK0BAIC01Myw3ICs2Nyw2IEBACisgc3Rh dGljIHZvaWQgbWRfY2xvc2UgKGdjcnlfbWRfaGRfdCBhKTsKKyBzdGF0aWMgdm9pZCBtZF93cml0 ZSAoZ2NyeV9tZF9oZF90IGEsIGNvbnN0IHZvaWQgKmluYnVmLCBzaXplX3QgaW5sZW4pOworIHN0 YXRpYyBieXRlICptZF9yZWFkKCBnY3J5X21kX2hkX3QgYSwgaW50IGFsZ28gKTsKKy1zdGF0aWMg aW50IG1kX2dldF9hbGdvKCBnY3J5X21kX2hkX3QgYSApOworIHN0YXRpYyBpbnQgbWRfZGlnZXN0 X2xlbmd0aCggaW50IGFsZ28gKTsKKyBzdGF0aWMgdm9pZCBtZF9zdGFydF9kZWJ1ZyAoIGdjcnlf bWRfaGRfdCBhLCBjb25zdCBjaGFyICpzdWZmaXggKTsKKyBzdGF0aWMgdm9pZCBtZF9zdG9wX2Rl YnVnICggZ2NyeV9tZF9oZF90IGEgKTsKK0BAIC0xODYsOSArMTk5LDYgQEAKKyAKKyAgIGlmICgh IGVycikKKyAgICAgeworLSAgICAgIC8qIEhtbW0sIHNob3VsZCB3ZSByZWFsbHkgZG8gdGhhdD8g LSB5ZXMgWy13a10gKi8KKy0gICAgICBfZ2NyeV9mYXN0X3JhbmRvbV9wb2xsICgpOworLQorICAg ICAgIGlmIChhbGdvKQorIAl7CisgCSAgZXJyID0gbWRfZW5hYmxlIChoZCwgYWxnbyk7CitAQCAt NDM3LDE0ICs0NDcsNiBAQAorIHsKKyAgIEdjcnlEaWdlc3RFbnRyeSAqcjsKKyAKKy0gIGlmIChh LT5jdHgtPmRlYnVnKQorLSAgICB7CistICAgICAgaWYgKGEtPmJ1ZnBvcyAmJiBmd3JpdGUgKGEt PmJ1ZiwgYS0+YnVmcG9zLCAxLCBhLT5jdHgtPmRlYnVnKSAhPSAxKQorLQlCVUcoKTsKKy0gICAg ICBpZiAoaW5sZW4gJiYgZndyaXRlIChpbmJ1ZiwgaW5sZW4sIDEsIGEtPmN0eC0+ZGVidWcpICE9 IDEpCistCUJVRygpOworLSAgICB9CistCisgICBmb3IgKHIgPSBhLT5jdHgtPmxpc3Q7IHI7IHIg PSByLT5uZXh0KQorICAgICB7CisgICAgICAgaWYgKGEtPmJ1ZnBvcykKK0BAIC01MjAsNTUgKzUy Miw2IEBACisgCisgCisgCistc3RhdGljIGdjcnlfZXJyX2NvZGVfdAorLW1kX2N1c3RvbWl6ZSAo Z2NyeV9tZF9oZF90IGgsIHZvaWQgKmJ1ZmZlciwgc2l6ZV90IGJ1ZmxlbikKKy17CistICBnY3J5 X2Vycl9jb2RlX3QgcmMgPSAwOworLSAgR2NyeURpZ2VzdEVudHJ5ICpyOworLSAgaW50IGFsZ29f aGFkX2N1c3RvbWl6ZSA9IDA7CistCistICBpZiAoIWgtPmN0eC0+bGlzdCkKKy0gICAgcmV0dXJu IEdQR19FUlJfRElHRVNUX0FMR087IC8qIE1pZ2h0IGhhcHBlbiBpZiBubyBhbGdvIGlzIGVuYWJs ZWQuICAqLworLQorLSAgZm9yIChyID0gaC0+Y3R4LT5saXN0OyByOyByID0gci0+bmV4dCkKKy0g ICAgeworLSAgICAgIHN3aXRjaCAoci0+c3BlYy0+YWxnbykKKy0gICAgICAgIHsKKy0gICAgICAg IGNhc2UgR0NSWV9NRF9DU0hBS0UxMjg6CistICAgICAgICBjYXNlIEdDUllfTURfQ1NIQUtFMjU2 OgorLSAgICAgICAgICBhbGdvX2hhZF9jdXN0b21pemUgPSAxOworLSAgICAgICAgICBpZiAoYnVm bGVuICE9IHNpemVvZiAoc3RydWN0IGdjcnlfY3NoYWtlX2N1c3RvbWl6YXRpb24pKQorLSAgICAg ICAgICAgIHJjID0gR1BHX0VSUl9JTlZfQVJHOworLSAgICAgICAgICBlbHNlCistICAgICAgICAg ICAgcmMgPSBfZ2NyeV9jc2hha2VfY3VzdG9taXplIChyLT5jb250ZXh0LCBidWZmZXIpOworLSAg ICAgICAgICBicmVhazsKKy0gICAgICAgIGRlZmF1bHQ6CistICAgICAgICAgIHJjID0gR1BHX0VS Ul9ESUdFU1RfQUxHTzsKKy0gICAgICAgICAgYnJlYWs7CistICAgICAgICB9CistCistICAgICAg aWYgKHJjKQorLSAgICAgICAgYnJlYWs7CistICAgIH0KKy0KKy0gIGlmIChyYyAmJiAhYWxnb19o YWRfY3VzdG9taXplKQorLSAgICB7CistICAgICAgLyogTm9uZSBvZiBhbGdvcml0aG1zIGhhZCBj dXN0b21pemUgaW1wbGVtZW50YXRpb24sIHNvIGNvbnRleHRzIHdlcmUgbm90CistICAgICAgICog bW9kaWZpZWQuIEp1c3QgcmV0dXJuIGVycm9yLiAqLworLSAgICAgIHJldHVybiByYzsKKy0gICAg fQorLSAgZWxzZSBpZiAocmMgJiYgYWxnb19oYWRfY3VzdG9taXplKQorLSAgICB7CistICAgICAg LyogU29tZSBvZiB0aGUgY29udGV4dHMgaGF2ZSBiZWVuIG1vZGlmaWVkLCBidXQgZ290IGVycm9y LiBSZXNldAorLSAgICAgICAqIGFsbCBjb250ZXh0cy4gKi8KKy0gICAgICBfZ2NyeV9tZF9yZXNl dCAoaCk7CistICAgICAgcmV0dXJuIHJjOworLSAgICB9CistCistICByZXR1cm4gMDsKKy19Cist CistCisgZ2NyeV9lcnJfY29kZV90CisgX2djcnlfbWRfY3RsIChnY3J5X21kX2hkX3QgaGQsIGlu dCBjbWQsIHZvaWQgKmJ1ZmZlciwgc2l6ZV90IGJ1ZmxlbikKKyB7CitAQCAtNTg3LDkgKzU0MCw2 IEBACisgICAgIGNhc2UgR0NSWUNUTF9TVE9QX0RVTVA6CisgICAgICAgbWRfc3RvcF9kZWJ1ZyAo IGhkICk7CisgICAgICAgYnJlYWs7CistICAgIGNhc2UgR0NSWUNUTF9NRF9DVVNUT01JWkU6Cist ICAgICAgcmMgPSBtZF9jdXN0b21pemUgKGhkLCBidWZmZXIsIGJ1Zmxlbik7CistICAgICAgYnJl YWs7CisgICAgIGRlZmF1bHQ6CisgICAgICAgcmMgPSBHUEdfRVJSX0lOVl9PUDsKKyAgICAgfQor QEAgLTY5NSw2ICs2NDUsNyBAQAorICAgICAgIHJldHVybjsKKyAgICAgfQorIAorKyNpZiAwCisg ICBpZiAoc3BlYy0+aGFzaF9idWZmZXJzICE9IE5VTEwpCisgICAgIHsKKyAgICAgICBnY3J5X2J1 ZmZlcl90IGlvdjsKK0BAIC03MTEsNiArNjYyLDcgQEAKKyAgICAgICBzcGVjLT5oYXNoX2J1ZmZl cnMgKGRpZ2VzdCwgc3BlYy0+bWRsZW4sICZpb3YsIDEpOworICAgICB9CisgICBlbHNlCisrI2Vu ZGlmCisgICAgIHsKKyAgICAgICAvKiBGb3IgdGhlIG90aGVycyB3ZSBkbyBub3QgaGF2ZSBhIGZh c3QgZnVuY3Rpb24sIHNvIHdlIHVzZSB0aGUKKyAgICAgICAgICBub3JtYWwgZnVuY3Rpb25zLiAq LworQEAgLTc0Niw3ICs2OTgsNyBAQAorICAgIERJR0VTVExFTiBtYXkgYWxzbyBiZSB0aGUgYXBw cm9wcmlhdGUgbGVuZ3RoIG9yLCBpbiBjYXNlIG9mIFhPRgorICAgIGFsZ29yaXRobXMsIERJR0VT VExFTiBpbmRpY2F0ZXMgbnVtYmVyIGJ5dGVzIHRvIGV4dHJhY3QgZnJvbSBYT0YKKyAgICB0byBE SUdFU1QuICAqLworLSNkZWZpbmUgX2djcnlfbWRfaGFzaF9idWZmZXJzIDAKKysKKyAKKyAvKiBT aG9ydGN1dCBmdW5jdGlvbiB0byBoYXNoIG11bHRpcGxlIGJ1ZmZlcnMgd2l0aCBhIGdpdmVuIGFs Z28uICBJbgorICAgIGNvbnRyYXN0IHRvIGdjcnlfbWRfaGFzaF9idWZmZXIsIHRoaXMgZnVuY3Rp b24gcmV0dXJucyBhbiBlcnJvciBvbgorQEAgLTc2Miw3ICs3MTQsNiBAQAorICAgIE9uIHN1Y2Nl c3MgMCBpcyByZXR1cm5lZCBhbmQgcmVzdWx0aW5nIGhhc2ggb3IgSE1BQyBpcyBzdG9yZWQgYXQK KyAgICBESUdFU1Qgd2hpY2ggbXVzdCBoYXZlIGJlZW4gcHJvdmlkZWQgYnkgdGhlIGNhbGxlciB3 aXRoIGFuCisgICAgYXBwcm9wcmlhdGUgbGVuZ3RoLiAgKi8KKy0jZGVmaW5lIF9nY3J5X21kX2hh c2hfYnVmZmVycyAwCisgCisgCisgCitAQCAtODkzLDQzICs4NDQsMTUgQEAKKyBzdGF0aWMgdm9p ZAorIG1kX3N0YXJ0X2RlYnVnICggZ2NyeV9tZF9oZF90IG1kLCBjb25zdCBjaGFyICpzdWZmaXgg KQorIHsKKy0gIHN0YXRpYyBpbnQgaWR4PTA7CistICBjaGFyIGJ1Zls1MF07CistCistICBpZiAo Zmlwc19tb2RlICgpKQorLSAgICByZXR1cm47CistCistICBpZiAoIG1kLT5jdHgtPmRlYnVnICkK Ky0gICAgeworLSAgICAgIGxvZ19kZWJ1ZygiT29wczogbWQgZGVidWcgYWxyZWFkeSBzdGFydGVk XG4iKTsKKy0gICAgICByZXR1cm47CistICAgIH0KKy0gIGlkeCsrOworLSAgc25wcmludGYgKGJ1 ZiwgRElNKGJ1ZiktMSwgImRiZ21kLSUwNWQuJS4xMHMiLCBpZHgsIHN1ZmZpeCApOworLSAgbWQt PmN0eC0+ZGVidWcgPSBmb3BlbihidWYsICJ3Iik7CistICBpZiAoICFtZC0+Y3R4LT5kZWJ1ZyAp CistICAgIGxvZ19kZWJ1ZygibWQgZGVidWc6IGNhbid0IG9wZW4gJXNcbiIsIGJ1ZiApOworKyAg KHZvaWQpIG1kOworKyAgKHZvaWQpIHN1ZmZpeDsKKyB9CisgCisgCisgc3RhdGljIHZvaWQKKyBt ZF9zdG9wX2RlYnVnKCBnY3J5X21kX2hkX3QgbWQgKQorIHsKKy0gIGlmICggbWQtPmN0eC0+ZGVi dWcgKQorLSAgICB7CistICAgICAgaWYgKCBtZC0+YnVmcG9zICkKKy0gICAgICAgIG1kX3dyaXRl ICggbWQsIE5VTEwsIDAgKTsKKy0gICAgICBmY2xvc2UgKG1kLT5jdHgtPmRlYnVnKTsKKy0gICAg ICBtZC0+Y3R4LT5kZWJ1ZyA9IE5VTEw7CistICAgIH0KKy0KKy0gIHsgIC8qIGEga2x1ZGdlIHRv IHB1bGwgaW4gdGhlIF9fbXVsZGkzIGZvciBTb2xhcmlzICovCistICAgIHZvbGF0aWxlIHUzMiBh ID0gKHUzMikodWludHB0cl90KW1kOworLSAgICB2b2xhdGlsZSB1NjQgYiA9IDQyOworLSAgICB2 b2xhdGlsZSB1NjQgYzsKKy0gICAgYyA9IGEgKiBiOworLSAgICAodm9pZCljOworLSAgfQorKyAg KHZvaWQpIG1kOworIH0KKyAKKyAKZGlmZiAtLWdpdCBhL2dydWItY29yZS9saWIvbGliZ2NyeXB0 LXBhdGNoZXMvMDNfZGlzYWJsZV9yc2Ffc2hha2UucGF0Y2ggYi9ncnViLWNvcmUvbGliL2xpYmdj cnlwdC1wYXRjaGVzLzAzX2Rpc2FibGVfcnNhX3NoYWtlLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAw NjQ0CmluZGV4IDAwMDAwMDAwMC4uY2Y0M2YwNDUxCi0tLSAvZGV2L251bGwKKysrIGIvZ3J1Yi1j b3JlL2xpYi9saWJnY3J5cHQtcGF0Y2hlcy8wM19kaXNhYmxlX3JzYV9zaGFrZS5wYXRjaApAQCAt MCwwICsxLDM0IEBACistLS0gYS9ncnViLWNvcmUvbGliL2xpYmdjcnlwdC1ncnViL2NpcGhlci9y c2EtY29tbW9uLmMJMjAyNC0wOS0wOCAxODowODo0Ny4wOTU5NTY4NTIgKzAzMDAKKysrKyBiL2dy dWItY29yZS9saWIvbGliZ2NyeXB0LWdydWIvY2lwaGVyL3JzYS1jb21tb24uYwkyMDI0LTA5LTA4 IDE4OjEwOjIzLjg0OTk1OTU5MSArMDMwMAorQEAgLTkxMiw2ICs5MTIsNyBAQAorICAgbWVtY3B5 IChwLCBzYWx0LCBzYWx0bGVuKTsKKyAKKyAgIC8qIFN0ZXAgOTogZGJtYXNrID0gTUdGKEgsIGVt bGVuIC0gaGxlbiAtIDEpLiAgKi8KKysjaWYgMCAvLyBOb3Qgc3VwcG9ydGVkIHlldAorICAgaWYg KGFsZ28gPT0gR0NSWV9NRF9TSEFLRTEyOCB8fCBhbGdvID09IEdDUllfTURfU0hBS0UyNTYpCisg ICAgIHsKKyAgICAgICBnY3J5X2J1ZmZlcl90IGlvdjsKK0BAIC05MjUsNiArOTI2LDcgQEAKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmlvdiwgMSk7CisgICAgIH0KKyAg IGVsc2UKKysjZW5kaWYKKyAgICAgbWdmMSAoZGJtYXNrLCBlbWxlbiAtIGhsZW4gLSAxLCBoLCBo bGVuLCBhbGdvKTsKKyAKKyAgIC8qIFN0ZXAgMTA6IG1hc2tlZERCID0gREIgXiBkYk1hc2sgKi8K K0BAIC0xMDg2LDYgKzEwODgsNyBAQAorICAgICB9CisgCisgICAvKiBTdGVwIDc6IGRibWFzayA9 IE1HRihILCBlbWxlbiAtIGhsZW4gLSAxKS4gICovCisrI2lmIDAgLy8gTm90IHN1cHBvcnRlZCB5 ZXQKKyAgIGlmIChhbGdvID09IEdDUllfTURfU0hBS0UxMjggfHwgYWxnbyA9PSBHQ1JZX01EX1NI QUtFMjU2KQorICAgICB7CisgICAgICAgZ2NyeV9idWZmZXJfdCBpb3Y7CitAQCAtMTA5OSw2ICsx MTAyLDcgQEAKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJmlvdiwgMSk7 CisgICAgIH0KKyAgIGVsc2UKKysjZW5kaWYKKyAgICAgbWdmMSAoZGJtYXNrLCBlbWxlbiAtIGhs ZW4gLSAxLCBoLCBobGVuLCBhbGdvKTsKKyAKKyAgIC8qIFN0ZXAgODogbWFza2VkREIgPSBEQiBe IGRiTWFzay4gICovCmRpZmYgLS1naXQgYS9ncnViLWNvcmUvbGliL2xpYmdjcnlwdC1wYXRjaGVz LzA0X2FyaWFfc3RhdGljLnBhdGNoIGIvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtcGF0Y2hlcy8w NF9hcmlhX3N0YXRpYy5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAu LmJjYTdlODA2MgotLS0gL2Rldi9udWxsCisrKyBiL2dydWItY29yZS9saWIvbGliZ2NyeXB0LXBh dGNoZXMvMDRfYXJpYV9zdGF0aWMucGF0Y2gKQEAgLTAsMCArMSwyMiBAQAorTWFyayBhcmlhX2Vu Y3J5cHQgYW5kIGFyaWFfZGVjcnlwdCBhcyBzdGF0aWMKKworLS0tIGEvZ3J1Yi1jb3JlL2xpYi9s aWJnY3J5cHQtZ3J1Yi9jaXBoZXIvYXJpYS5jCTIwMjQtMDktMDggMTg6MjA6NTcuOTI2OTc3NDc5 ICswMzAwCisrKysgYi9ncnViLWNvcmUvbGliL2xpYmdjcnlwdC1ncnViL2NpcGhlci9hcmlhLmMJ MjAyNC0wOS0wOCAxODoyMTowOS43MzE5Nzc4MTIgKzAzMDAKK0BAIC0xMDEzLDcgKzEwMTMsNyBA QAorICAgcmV0dXJuIDQgKiBzaXplb2Yodm9pZCAqKSArIDQgKiBzaXplb2YodTMyKTsgLyogc3Rh Y2sgYnVybiBkZXB0aCAqLworIH0KKyAKKy11bnNpZ25lZCBpbnQKKytzdGF0aWMgdW5zaWduZWQg aW50CisgYXJpYV9lbmNyeXB0KHZvaWQgKmMsIGJ5dGUgKm91dGJ1ZiwgY29uc3QgYnl0ZSAqaW5i dWYpCisgeworICAgQVJJQV9jb250ZXh0ICpjdHggPSAoQVJJQV9jb250ZXh0ICopYzsKK0BAIC0x MDIzLDcgKzEwMjMsNyBAQAorICAgcmV0dXJuIGFyaWFfY3J5cHQgKGN0eCwgb3V0YnVmLCBpbmJ1 ZiwgY3R4LT5lbmNfa2V5KTsKKyB9CisgCistdW5zaWduZWQgaW50Cisrc3RhdGljIHVuc2lnbmVk IGludAorIGFyaWFfZGVjcnlwdCh2b2lkICpjLCBieXRlICpvdXRidWYsIGNvbnN0IGJ5dGUgKmlu YnVmKQorIHsKKyAgIEFSSUFfY29udGV4dCAqY3R4ID0gKEFSSUFfY29udGV4dCAqKWM7CmRpZmYg LS1naXQgYS9ncnViLWNvcmUvbGliL2xpYmdjcnlwdC9zcmMvZ2NyeXB0LWludC5oIGIvZ3J1Yi1j b3JlL2xpYi9saWJnY3J5cHQvc3JjL2djcnlwdC1pbnQuaAppbmRleCAxYjQ0OTI4MTguLjcwMTA4 MTY4MCAxMDA2NDQKLS0tIGEvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQvc3JjL2djcnlwdC1pbnQu aAorKysgYi9ncnViLWNvcmUvbGliL2xpYmdjcnlwdC9zcmMvZ2NyeXB0LWludC5oCkBAIC0yOTcs NTcgKzI5Nyw2IEBAIHZvaWQgX2djcnlfc2V0X2xvZ19oYW5kbGVyIChnY3J5X2hhbmRsZXJfbG9n X3QgZiwgdm9pZCAqb3BhcXVlKTsKIHZvaWQgX2djcnlfc2V0X2dldHRleHRfaGFuZGxlciAoY29u c3QgY2hhciAqKCpmKShjb25zdCBjaGFyKikpOwogdm9pZCBfZ2NyeV9zZXRfcHJvZ3Jlc3NfaGFu ZGxlciAoZ2NyeV9oYW5kbGVyX3Byb2dyZXNzX3QgY2IsIHZvaWQgKmNiX2RhdGEpOwogCi0MCi0v KiBSZXR1cm4gYSBwb2ludGVyIHRvIGEgc3RyaW5nIGNvbnRhaW5pbmcgYSBkZXNjcmlwdGlvbiBv ZiB0aGUgZXJyb3IKLSAgIGNvZGUgaW4gdGhlIGVycm9yIHZhbHVlIEVSUi4gICovCi1zdGF0aWMg aW5saW5lIGNvbnN0IGNoYXIgKgotX2djcnlfc3RyZXJyb3IgKGdjcnlfZXJyb3JfdCBlcnIpCi17 Ci0gIHJldHVybiBncGdfc3RyZXJyb3IgKGVycik7Ci19Ci0KLS8qIFJldHVybiBhIHBvaW50ZXIg dG8gYSBzdHJpbmcgY29udGFpbmluZyBhIGRlc2NyaXB0aW9uIG9mIHRoZSBlcnJvcgotICAgc291 cmNlIGluIHRoZSBlcnJvciB2YWx1ZSBFUlIuICAqLwotc3RhdGljIGlubGluZSBjb25zdCBjaGFy ICoKLV9nY3J5X3N0cnNvdXJjZSAoZ2NyeV9lcnJvcl90IGVycikKLXsKLSAgcmV0dXJuIGdwZ19z dHJzb3VyY2UgKGVycik7Ci19Ci0KLS8qIFJldHJpZXZlIHRoZSBlcnJvciBjb2RlIGZvciB0aGUg c3lzdGVtIGVycm9yIEVSUi4gIFRoaXMgcmV0dXJucwotICAgR1BHX0VSUl9VTktOT1dOX0VSUk5P IGlmIHRoZSBzeXN0ZW0gZXJyb3IgaXMgbm90IG1hcHBlZCAocmVwb3J0Ci0gICB0aGlzKS4gICov Ci1zdGF0aWMgaW5saW5lIGdjcnlfZXJyX2NvZGVfdAotX2djcnlfZXJyX2NvZGVfZnJvbV9lcnJu byAoaW50IGVycikKLXsKLSAgcmV0dXJuIGdwZ19lcnJfY29kZV9mcm9tX2Vycm5vIChlcnIpOwot fQotCi0vKiBSZXRyaWV2ZSB0aGUgc3lzdGVtIGVycm9yIGZvciB0aGUgZXJyb3IgY29kZSBDT0RF LiAgVGhpcyByZXR1cm5zIDAKLSAgIGlmIENPREUgaXMgbm90IGEgc3lzdGVtIGVycm9yIGNvZGUu ICAqLwotc3RhdGljIGlubGluZSBpbnQKLV9nY3J5X2Vycl9jb2RlX3RvX2Vycm5vIChnY3J5X2Vy cl9jb2RlX3QgY29kZSkKLXsKLSAgcmV0dXJuIGdwZ19lcnJfY29kZV90b19lcnJubyAoY29kZSk7 Ci19Ci0KLS8qIFJldHVybiBhbiBlcnJvciB2YWx1ZSB3aXRoIHRoZSBlcnJvciBzb3VyY2UgU09V UkNFIGFuZCB0aGUgc3lzdGVtCi0gICBlcnJvciBFUlIuICAqLwotc3RhdGljIGlubGluZSBnY3J5 X2Vycm9yX3QKLV9nY3J5X2Vycl9tYWtlX2Zyb21fZXJybm8gKGdwZ19lcnJfc291cmNlX3Qgc291 cmNlLCBpbnQgZXJyKQotewotICByZXR1cm4gZ3BnX2Vycl9tYWtlX2Zyb21fZXJybm8gKHNvdXJj ZSwgZXJyKTsKLX0KLQotCi0vKiBSZXR1cm4gYW4gZXJyb3IgdmFsdWUgd2l0aCB0aGUgc3lzdGVt IGVycm9yIEVSUi4gICovCi1zdGF0aWMgaW5saW5lIGdjcnlfZXJyb3JfdAotX2djcnlfZXJyb3Jf ZnJvbV9lcnJubyAoaW50IGVycikKLXsKLSAgcmV0dXJuIGdwZ19lcnJvciAoZ3BnX2Vycl9jb2Rl X2Zyb21fZXJybm8gKGVycikpOwotfQotCi0KIAwKIGdwZ19lcnJfY29kZV90IF9nY3J5X3NleHBf bmV3IChnY3J5X3NleHBfdCAqcmV0c2V4cCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBjb25zdCB2b2lkICpidWZmZXIsIHNpemVfdCBsZW5ndGgsCmRpZmYgLS1naXQgYS9ncnViLWNv cmUvbGliL2xpYmdjcnlwdF93cmFwL2NpcGhlcl93cmFwLmggYi9ncnViLWNvcmUvbGliL2xpYmdj cnlwdF93cmFwL2NpcGhlcl93cmFwLmgKaW5kZXggNDI4MzU0OTNkLi4zNWViM2YzNTUgMTAwNjQ0 Ci0tLSBhL2dydWItY29yZS9saWIvbGliZ2NyeXB0X3dyYXAvY2lwaGVyX3dyYXAuaAorKysgYi9n cnViLWNvcmUvbGliL2xpYmdjcnlwdF93cmFwL2NpcGhlcl93cmFwLmgKQEAgLTE5LDYgKzE5LDgg QEAKICNpZm5kZWYgR1JVQl9HQ1JZX1dSQVBfSEVBREVSCiAjZGVmaW5lIEdSVUJfR0NSWV9XUkFQ X0hFQURFUiAxCiAKKyNkZWZpbmUgVVNFX1NIQTUxMiAxCisKICNpbmNsdWRlIDxncnViL3R5cGVz Lmg+CiAjaW5jbHVkZSA8Z3J1Yi9tbS5oPgogI2luY2x1ZGUgPGdydWIvbWlzYy5oPgpAQCAtMzUs OSArMzcsNyBAQAogI3VuZGVmIF9fR05VX0xJQlJBUllfXwogI2RlZmluZSBfX0dOVV9MSUJSQVJZ X18gMQogCi0jZGVmaW5lIFU2NF9DKGMpIChjICMjIFVMTCkKLQotI2RlZmluZSBQVUJLRVlfRkxB R19OT19CTElORElORyAgICAoMSA8PCAwKQorI2RlZmluZSBVSU5UNjRfQyhjKSAoYyAjIyBVTEwp CiAKICNkZWZpbmUgQ0lQSEVSX0lORk9fTk9fV0VBS19LRVkgICAgMQogCkBAIC03NCw0ICs3NCwx MiBAQCBfZ2NyeV9maXBzX21vZGUgKHZvaWQpCiAKICNkZWZpbmUgZ2NyeV9tcGlfbW9kIF9nY3J5 X21waV9tb2QKIAorI2RlZmluZSBzdHJ0b2wgZ3J1Yl9zdHJ0b2wKKyNkZWZpbmUgc3RydG91bCBn cnViX3N0cnRvdWwKKyNkZWZpbmUgYXRvaShucHRyKSAoc3RydG9sKChucHRyKSwgTlVMTCwgMTAp KQorCisjZGVmaW5lIHN0cGNweSBncnViX3N0cGNweQorCisjZGVmaW5lIHNwZWNfZnJvbV9hbGdv IGdydWJfY3J5cHRvX2xvb2t1cF9tZF9ieV9hbGdvCisKICNlbmRpZgpkaWZmIC0tZ2l0IGEvZ3J1 Yi1jb3JlL2xpYi9saWJnY3J5cHRfd3JhcC9tZW0uYyBiL2dydWItY29yZS9saWIvbGliZ2NyeXB0 X3dyYXAvbWVtLmMKaW5kZXggNzRjNmVhZmU1Li5lOTQ3ZGM5OTggMTAwNjQ0Ci0tLSBhL2dydWIt Y29yZS9saWIvbGliZ2NyeXB0X3dyYXAvbWVtLmMKKysrIGIvZ3J1Yi1jb3JlL2xpYi9saWJnY3J5 cHRfd3JhcC9tZW0uYwpAQCAtNDYsNiArNDYsMTUgQEAgZ2NyeV94Y2FsbG9jIChzaXplX3Qgbiwg c2l6ZV90IG0pCiAgIHJldHVybiByZXQ7CiB9CiAKK3ZvaWQgKgorX2djcnlfY2FsbG9jIChzaXpl X3Qgbiwgc2l6ZV90IG0pCit7CisgIHNpemVfdCBzejsKKyAgaWYgKGdydWJfbXVsIChuLCBtLCAm c3opKQorICAgIHJldHVybiBOVUxMOworICByZXR1cm4gZ3J1Yl96YWxsb2MgKHN6KTsKK30KKwog dm9pZCAqCiBnY3J5X3htYWxsb2Nfc2VjdXJlIChzaXplX3QgbikKIHsKQEAgLTY5LDYgKzc4LDE1 IEBAIGdjcnlfeGNhbGxvY19zZWN1cmUgKHNpemVfdCBuLCBzaXplX3QgbSkKICAgcmV0dXJuIHJl dDsKIH0KIAordm9pZCAqCitfZ2NyeV9jYWxsb2Nfc2VjdXJlIChzaXplX3Qgbiwgc2l6ZV90IG0p Cit7CisgIHNpemVfdCBzejsKKyAgaWYgKGdydWJfbXVsIChuLCBtLCAmc3opKQorICAgIHJldHVy biBOVUxMOworICByZXR1cm4gZ3J1Yl96YWxsb2MgKHN6KTsKK30KKwogdm9pZCAqCiBnY3J5X3ht YWxsb2MgKHNpemVfdCBuKQogewpAQCAtODksMTAgKzEwNywxMCBAQCBnY3J5X3hyZWFsbG9jICh2 b2lkICphLCBzaXplX3QgbikKICAgcmV0dXJuIHJldDsKIH0KIAotdm9pZAotX2djcnlfY2hlY2tf aGVhcCAoY29uc3Qgdm9pZCAqYSBfX2F0dHJpYnV0ZV9fICgodW51c2VkKSkpCit2b2lkICoKK19n Y3J5X3JlYWxsb2MgKHZvaWQgKmEsIHNpemVfdCBuKQogewotCisgIHJldHVybiBncnViX3JlYWxs b2MgKGEsIG4pOwogfQogCiB2b2lkIF9nY3J5X2xvZ19wcmludGYgKGNvbnN0IGNoYXIgKmZtdCwg Li4uKQpAQCAtMTEzLDYgKzEzMSwyNCBAQCB2b2lkIF9nY3J5X2xvZ19wcmludGYgKGNvbnN0IGNo YXIgKmZtdCwgLi4uKQogICAgIH0KIH0KIAordm9pZCBfZ2NyeV9sb2dfZGVidWcgKGNvbnN0IGNo YXIgKmZtdCwgLi4uKQoreworICB2YV9saXN0IGFyZ3M7CisgIGNvbnN0IGNoYXIgKmRlYnVnID0g Z3J1Yl9lbnZfZ2V0ICgiZGVidWciKTsKKworICBpZiAoISBkZWJ1ZykKKyAgICByZXR1cm47CisK KyAgaWYgKGdydWJfc3Ryd29yZCAoZGVidWcsICJhbGwiKSB8fCBncnViX3N0cndvcmQgKGRlYnVn LCAiZ2NyeXB0IikpCisgICAgeworICAgICAgZ3J1Yl9wcmludGYgKCJnY3J5cHQ6ICIpOworICAg ICAgdmFfc3RhcnQgKGFyZ3MsIGZtdCk7CisgICAgICBncnViX3ZwcmludGYgKGZtdCwgYXJncyk7 CisgICAgICB2YV9lbmQgKGFyZ3MpOworICAgICAgZ3J1Yl9yZWZyZXNoICgpOworICAgIH0KK30K Kwogdm9pZCBfZ2NyeV9sb2dfYnVnIChjb25zdCBjaGFyICpmbXQsIC4uLikKIHsKICAgdmFfbGlz dCBhcmdzOwpAQCAtMTI2LDkgKzE2Miw5IEBAIHZvaWQgX2djcnlfbG9nX2J1ZyAoY29uc3QgY2hh ciAqZm10LCAuLi4pCiB9CiAKIGdjcnlfZXJyX2NvZGVfdAotZ3BnX2Vycm9yX2Zyb21fc3lzZXJy b3IgKHZvaWQpCitncGdfZXJyX2NvZGVfZnJvbV9lcnJubyAoaW50IGVycikKIHsKLSAgc3dpdGNo IChncnViX2Vycm5vKQorICBzd2l0Y2ggKGVycikKICAgICB7CiAgICAgY2FzZSBHUlVCX0VSUl9O T05FOgogICAgICAgcmV0dXJuIEdQR19FUlJfTk9fRVJST1I7CkBAIC0xMzgsMyArMTc0LDQwIEBA IGdwZ19lcnJvcl9mcm9tX3N5c2Vycm9yICh2b2lkKQogICAgICAgcmV0dXJuIEdQR19FUlJfR0VO RVJBTDsKICAgICB9CiB9CisKK2djcnlfZXJyX2NvZGVfdAorZ3BnX2Vycm9yX2Zyb21fc3lzZXJy b3IgKHZvaWQpCit7CisgIHJldHVybiBncGdfZXJyX2NvZGVfZnJvbV9lcnJubyhncnViX2Vycm5v KTsKK30KKworZ2NyeV9lcnJfY29kZV90CitncGdfZXJyX2NvZGVfZnJvbV9zeXNlcnJvciAodm9p ZCkKK3sKKyAgcmV0dXJuIGdwZ19lcnJvcl9mcm9tX3N5c2Vycm9yICgpOworfQorCit2b2lkIF9n Y3J5X2ZhdGFsX2Vycm9yKGludCByYywgY29uc3QgY2hhciAqdGV4dCApCit7CisgIGdydWJfZmF0 YWwoImdjcnkgZmF0YWwgJWQ6ICVzIiwgcmMsIHRleHQpOworfQorCisKK3ZvaWQgX2djcnlfcmFu ZG9taXplICh2b2lkICpidWZmZXIgX19hdHRyaWJ1dGVfXygodW51c2VkKSksIHNpemVfdCBsZW5n dGggX19hdHRyaWJ1dGVfXygodW51c2VkKSksCisgICAgICAgICAgICAgICAgICAgICAgZW51bSBn Y3J5X3JhbmRvbV9sZXZlbCBsZXZlbCBfX2F0dHJpYnV0ZV9fKCh1bnVzZWQpKSkKK3sKKyAgZ3J1 Yl9mYXRhbCgiQXR0ZW1wdCB0byBnZXQgc2VjdXJlIHJhbmRvbSBudW1iZXJzIik7Cit9CisKKwor dm9pZCAqX2djcnlfcmFuZG9tX2J5dGVzX3NlY3VyZSAoc2l6ZV90IG5ieXRlcyBfX2F0dHJpYnV0 ZV9fKCh1bnVzZWQpKSwgZW51bSBnY3J5X3JhbmRvbV9sZXZlbCBsZXZlbCBfX2F0dHJpYnV0ZV9f KCh1bnVzZWQpKSkKK3sKKyAgZ3J1Yl9mYXRhbCgiQXR0ZW1wdCB0byBnZXQgc2VjdXJlIHJhbmRv bSBudW1iZXJzIik7Cit9CisKK2NvbnN0IGNoYXIgKmdwZ19zdHJlcnJvciAoZ3BnX2Vycm9yX3Qg ZXJyKQoreworICBzdGF0aWMgY2hhciBidWZbMjU2XTsKKyAgZ3J1Yl9zbnByaW50ZihidWYsIHNp emVvZihidWYpIC0gNSwgImdwZyBlcnJvciAlZFxuIiwgZXJyKTsKKyAgcmV0dXJuIGJ1ZjsKK30K ZGlmZiAtLWdpdCBhL2dydWItY29yZS9saWIveHplbWJlZC94el9kZWNfc3RyZWFtLmMgYi9ncnVi LWNvcmUvbGliL3h6ZW1iZWQveHpfZGVjX3N0cmVhbS5jCmluZGV4IDgzMmQ4YWY5YS4uZjJkZDQy ZGMyIDEwMDY0NAotLS0gYS9ncnViLWNvcmUvbGliL3h6ZW1iZWQveHpfZGVjX3N0cmVhbS5jCisr KyBiL2dydWItY29yZS9saWIveHplbWJlZC94el9kZWNfc3RyZWFtLmMKQEAgLTQyNSw5ICs0MjUs OSBAQCBzdGF0aWMgZW51bSB4el9yZXQgaGFzaF92YWxpZGF0ZShzdHJ1Y3QgeHpfZGVjICpzLCBz dHJ1Y3QgeHpfYnVmICpiLAogCiAjaWZuZGVmIEdSVUJfRU1CRURfREVDT01QUkVTU09SCiAJaWYg KHMtPmhhc2gpCi0JCXMtPmhhc2gtPmluaXQocy0+aGFzaF9jb250ZXh0KTsKKwkJcy0+aGFzaC0+ aW5pdChzLT5oYXNoX2NvbnRleHQsIDApOwogCWlmIChzLT5jcmMzMikKLQkJcy0+Y3JjMzItPmlu aXQocy0+Y3JjMzJfY29udGV4dCk7CisJCXMtPmNyYzMyLT5pbml0KHMtPmNyYzMyX2NvbnRleHQs IDApOwogI2VuZGlmCiAJcy0+aGF2ZV9oYXNoX3ZhbHVlID0gMDsKIAlzLT5wb3MgPSAwOwpAQCAt NDkzLDcgKzQ5Myw3IEBAIHN0YXRpYyBlbnVtIHh6X3JldCBkZWNfc3RyZWFtX2hlYWRlcihzdHJ1 Y3QgeHpfZGVjICpzKQogCQlzLT5jcmMzMl9jb250ZXh0ID0ga21hbGxvYyhzLT5jcmMzMi0+Y29u dGV4dHNpemUsIEdGUF9LRVJORUwpOwogCQlpZiAocy0+Y3JjMzJfY29udGV4dCA9PSBOVUxMKQog CQkJcmV0dXJuIFhaX01FTUxJTUlUX0VSUk9SOwotCQlzLT5jcmMzMi0+aW5pdChzLT5jcmMzMl9j b250ZXh0KTsKKwkJcy0+Y3JjMzItPmluaXQocy0+Y3JjMzJfY29udGV4dCwgMCk7CiAJfQogI2Vu ZGlmCiAKQEAgLTUzMSw5ICs1MzEsOSBAQCBzdGF0aWMgZW51bSB4el9yZXQgZGVjX3N0cmVhbV9o ZWFkZXIoc3RydWN0IHh6X2RlYyAqcykKIAkJCQlyZXR1cm4gWFpfTUVNTElNSVRfRVJST1I7CiAJ CQl9CiAKLQkJCXMtPmhhc2gtPmluaXQocy0+aGFzaF9jb250ZXh0KTsKLQkJCXMtPmhhc2gtPmlu aXQocy0+aW5kZXguaGFzaC5oYXNoX2NvbnRleHQpOwotIAkJCXMtPmhhc2gtPmluaXQocy0+Ymxv Y2suaGFzaC5oYXNoX2NvbnRleHQpOworCQkJcy0+aGFzaC0+aW5pdChzLT5oYXNoX2NvbnRleHQs IDApOworCQkJcy0+aGFzaC0+aW5pdChzLT5pbmRleC5oYXNoLmhhc2hfY29udGV4dCwgMCk7Cisg CQkJcy0+aGFzaC0+aW5pdChzLT5ibG9jay5oYXNoLmhhc2hfY29udGV4dCwgMCk7CiAJCX0KICNl bmRpZgogCX0KQEAgLTEwMTQsOSArMTAxNCw5IEBAIHZvaWQgeHpfZGVjX3Jlc2V0KHN0cnVjdCB4 el9kZWMgKnMpCiAjaWZuZGVmIEdSVUJfRU1CRURfREVDT01QUkVTU09SCiAJaWYgKHMtPmhhc2gp CiAJewotCQlzLT5oYXNoLT5pbml0KHMtPmhhc2hfY29udGV4dCk7Ci0JCXMtPmhhc2gtPmluaXQo cy0+aW5kZXguaGFzaC5oYXNoX2NvbnRleHQpOwotCQlzLT5oYXNoLT5pbml0KHMtPmJsb2NrLmhh c2guaGFzaF9jb250ZXh0KTsKKwkJcy0+aGFzaC0+aW5pdChzLT5oYXNoX2NvbnRleHQsIDApOwor CQlzLT5oYXNoLT5pbml0KHMtPmluZGV4Lmhhc2guaGFzaF9jb250ZXh0LCAwKTsKKwkJcy0+aGFz aC0+aW5pdChzLT5ibG9jay5oYXNoLmhhc2hfY29udGV4dCwgMCk7CiAJfQogI2VuZGlmCiAJcy0+ aGF2ZV9oYXNoX3ZhbHVlID0gMDsKZGlmZiAtLWdpdCBhL2luY2x1ZGUvZ3J1Yi9jcnlwdG8uaCBi L2luY2x1ZGUvZ3J1Yi9jcnlwdG8uaAppbmRleCAzMWM4N2MzMDIuLmMwYjQyYTczNSAxMDA2NDQK LS0tIGEvaW5jbHVkZS9ncnViL2NyeXB0by5oCisrKyBiL2luY2x1ZGUvZ3J1Yi9jcnlwdG8uaApA QCAtNjUsNyArNjUsMzMgQEAgdHlwZWRlZiBlbnVtCiAgICAgR1BHX0VSUl9XUk9OR19QVUJLRVlf QUxHTywKICAgICBHUEdfRVJSX09VVF9PRl9NRU1PUlksCiAgICAgR1BHX0VSUl9UT09fTEFSR0Us Ci0gICAgR1BHX0VSUl9FTk9NRU0KKyAgICBHUEdfRVJSX0VOT01FTSwKKyAgICBHUEdfRVJSX0NI RUNLU1VNLAorICAgIEdQR19FUlJfSU5WX0xFTkdUSCwKKyAgICBHUEdfRVJSX1ZBTFVFX05PVF9G T1VORCwKKyAgICBHUEdfRVJSX0VSQU5HRSwKKyAgICBHUEdfRVJSX0lOVl9EQVRBLAorICAgIEdQ R19FUlJfRU5DT0RJTkdfUFJPQkxFTSwKKyAgICBHUEdfRVJSX0JVRkZFUl9UT09fU0hPUlQsCisg ICAgR1BHX0VSUl9TWU5UQVgsCisgICAgR1BHX0VSUl9TRVhQX0lOVl9MRU5fU1BFQywKKyAgICBH UEdfRVJSX1NFWFBfVU5NQVRDSEVEX0RILAorICAgIEdQR19FUlJfU0VYUF9VTk1BVENIRURfUEFS RU4sCisgICAgR1BHX0VSUl9TRVhQX1pFUk9fUFJFRklYLAorICAgIEdQR19FUlJfU0VYUF9ORVNU RURfREgsCisgICAgR1BHX0VSUl9TRVhQX1VORVhQRUNURURfUFVOQywKKyAgICBHUEdfRVJSX1NF WFBfQkFEX0NIQVJBQ1RFUiwKKyAgICBHUEdfRVJSX1NFWFBfTk9UX0NBTk9OSUNBTCwKKyAgICBH UEdfRVJSX1NFWFBfU1RSSU5HX1RPT19MT05HLAorICAgIEdQR19FUlJfU0VYUF9CQURfUVVPVEFU SU9OLAorICAgIEdQR19FUlJfU0VYUF9PRERfSEVYX05VTUJFUlMsCisgICAgR1BHX0VSUl9TRVhQ X0JBRF9IRVhfQ0hBUiwKKyAgICBHUEdfRVJSX0xJTUlUX1JFQUNIRUQsCisgICAgR1BHX0VSUl9F T0YsCisgICAgR1BHX0VSUl9CQURfREFUQSwKKyAgICBHUEdfRVJSX0VJTlZBTCwKKyAgICBHUEdf RVJSX0lOVl9TVEFURSwKKyAgICBHUEdfRVJSX1VOS05PV05fQUxHT1JJVEhNLAogICB9IGdwZ19l cnJfY29kZV90OwogdHlwZWRlZiBncGdfZXJyX2NvZGVfdCBncGdfZXJyb3JfdDsKIHR5cGVkZWYg Z3BnX2Vycm9yX3QgZ2NyeV9lcnJvcl90OwpAQCAtODQsMzcgKzExMCw2MCBAQCBlbnVtIGdjcnlf Y2lwaGVyX21vZGVzCiAgIH07CiAjZW5kaWYKIAorLyogRXh0cmEgYWxnbyBJRHMgbm90IGNvbWlu ZyBmcm9tIGdjcnlwdC4gICovCisjZGVmaW5lIEdDUllfTURfQURMRVIzMiAxMDMwMQorI2RlZmlu ZSBHQ1JZX01EX0NSQzY0IDEwMzAyCisKIC8qIERvbid0IHJlbHkgb24gdGhpcy4gQ2hlY2shICAq LwogI2RlZmluZSBHUlVCX0NSWVBUT19NQVhfTURMRU4gNjQKICNkZWZpbmUgR1JVQl9DUllQVE9f TUFYX0NJUEhFUl9CTE9DS1NJWkUgMTYKICNkZWZpbmUgR1JVQl9DUllQVE9fTUFYX01EX0NPTlRF WFRfU0laRSAyNTYKIAogLyogVHlwZSBmb3IgdGhlIGNpcGhlcl9zZXRrZXkgZnVuY3Rpb24uICAq Lworc3RydWN0IGNpcGhlcl9idWxrX29wczsKKwogdHlwZWRlZiBnY3J5X2Vycl9jb2RlX3QgKCpn Y3J5X2NpcGhlcl9zZXRrZXlfdCkgKHZvaWQgKmMsCiAJCQkJCQkgY29uc3QgdW5zaWduZWQgY2hh ciAqa2V5LAotCQkJCQkJIHVuc2lnbmVkIGtleWxlbik7CisJCQkJCQkgdW5zaWduZWQga2V5bGVu LAorCQkJCQkJIHN0cnVjdCBjaXBoZXJfYnVsa19vcHMgKmJ1bGtfb3BzKTsKIAogLyogVHlwZSBm b3IgdGhlIGNpcGhlcl9lbmNyeXB0IGZ1bmN0aW9uLiAgKi8KLXR5cGVkZWYgdm9pZCAoKmdjcnlf Y2lwaGVyX2VuY3J5cHRfdCkgKHZvaWQgKmMsCi0JCQkJICAgICAgIHVuc2lnbmVkIGNoYXIgKm91 dGJ1ZiwKLQkJCQkgICAgICAgY29uc3QgdW5zaWduZWQgY2hhciAqaW5idWYpOwordHlwZWRlZiB1 bnNpZ25lZCBpbnQgKCpnY3J5X2NpcGhlcl9lbmNyeXB0X3QpICh2b2lkICpjLAorCQkJCQkgICAg ICAgdW5zaWduZWQgY2hhciAqb3V0YnVmLAorCQkJCQkgICAgICAgY29uc3QgdW5zaWduZWQgY2hh ciAqaW5idWYpOwogCiAvKiBUeXBlIGZvciB0aGUgY2lwaGVyX2RlY3J5cHQgZnVuY3Rpb24uICAq LwotdHlwZWRlZiB2b2lkICgqZ2NyeV9jaXBoZXJfZGVjcnlwdF90KSAodm9pZCAqYywKLQkJCQkg ICAgICAgdW5zaWduZWQgY2hhciAqb3V0YnVmLAotCQkJCSAgICAgICBjb25zdCB1bnNpZ25lZCBj aGFyICppbmJ1Zik7Cit0eXBlZGVmIHVuc2lnbmVkIGludCAoKmdjcnlfY2lwaGVyX2RlY3J5cHRf dCkgKHZvaWQgKmMsCisJCQkJCSAgICAgICB1bnNpZ25lZCBjaGFyICpvdXRidWYsCisJCQkJCSAg ICAgICBjb25zdCB1bnNpZ25lZCBjaGFyICppbmJ1Zik7CiAKIC8qIFR5cGUgZm9yIHRoZSBjaXBo ZXJfc3RlbmNyeXB0IGZ1bmN0aW9uLiAgKi8KIHR5cGVkZWYgdm9pZCAoKmdjcnlfY2lwaGVyX3N0 ZW5jcnlwdF90KSAodm9pZCAqYywKIAkJCQkJIHVuc2lnbmVkIGNoYXIgKm91dGJ1ZiwKIAkJCQkJ IGNvbnN0IHVuc2lnbmVkIGNoYXIgKmluYnVmLAotCQkJCQkgdW5zaWduZWQgaW50IG4pOworCQkJ CQkgZ3J1Yl9zaXplX3Qgbik7CiAKIC8qIFR5cGUgZm9yIHRoZSBjaXBoZXJfc3RkZWNyeXB0IGZ1 bmN0aW9uLiAgKi8KIHR5cGVkZWYgdm9pZCAoKmdjcnlfY2lwaGVyX3N0ZGVjcnlwdF90KSAodm9p ZCAqYywKIAkJCQkJIHVuc2lnbmVkIGNoYXIgKm91dGJ1ZiwKIAkJCQkJIGNvbnN0IHVuc2lnbmVk IGNoYXIgKmluYnVmLAotCQkJCQkgdW5zaWduZWQgaW50IG4pOworCQkJCQkgZ3J1Yl9zaXplX3Qg bik7CisKK3R5cGVkZWYgdm9pZCAoKnNlbGZ0ZXN0X3JlcG9ydF9mdW5jX3QpKGNvbnN0IGNoYXIg KmRvbWFpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGludCBhbGdv LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqd2hh dCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoYXIgKmVy cmRlc2MpOworCisvKiBUaGUgdHlwZSB1c2VkIHRvIGNvbnZleSBhZGRpdGlvbmFsIGluZm9ybWF0 aW9uIHRvIGEgY2lwaGVyLiAgKi8KK3R5cGVkZWYgZ3BnX2Vycl9jb2RlX3QgKCpnY3J5X2NpcGhl cl9zZXRfZXh0cmFfaW5mb190KQorICAgICAodm9pZCAqYywgaW50IHdoYXQsIGNvbnN0IHZvaWQg KmJ1ZmZlciwgZ3J1Yl9zaXplX3QgYnVmbGVuKTsKKworLyogVGhlIHR5cGUgdXNlZCB0byBzZXQg YW4gSVYgZGlyZWN0bHkgaW4gdGhlIGFsZ29yaXRobSBtb2R1bGUuICAqLwordHlwZWRlZiB2b2lk ICgqZ2NyeV9jaXBoZXJfc2V0aXZfZnVuY190KSh2b2lkICpjLCBjb25zdCBncnViX3VpbnQ4X3Qg Kml2LCBncnViX3NpemVfdCBpdmxlbik7CisKKy8qIERlZmluaXRpb24gb2YgdGhlIHNlbGZ0ZXN0 IGZ1bmN0aW9ucy4gICovCit0eXBlZGVmIGdwZ19lcnJfY29kZV90ICgqZ2NyeV9zZWxmdGVzdF9m dW5jX3QpCisgICAgIChpbnQgYWxnbywgaW50IGV4dGVuZGVkLCBzZWxmdGVzdF9yZXBvcnRfZnVu Y190IHJlcG9ydCk7CiAKIHR5cGVkZWYgc3RydWN0IGdjcnlfY2lwaGVyX29pZF9zcGVjCiB7CkBA IC0xMjUsOSArMTc0LDE0IEBAIHR5cGVkZWYgc3RydWN0IGdjcnlfY2lwaGVyX29pZF9zcGVjCiAv KiBNb2R1bGUgc3BlY2lmaWNhdGlvbiBzdHJ1Y3R1cmUgZm9yIGNpcGhlcnMuICAqLwogdHlwZWRl ZiBzdHJ1Y3QgZ2NyeV9jaXBoZXJfc3BlYwogeworICBpbnQgYWxnbzsKKyAgc3RydWN0IHsKKyAg ICB1bnNpZ25lZCBpbnQgZGlzYWJsZWQ6MTsKKyAgICB1bnNpZ25lZCBpbnQgZmlwczoxOworICB9 IGZsYWdzOwogICBjb25zdCBjaGFyICpuYW1lOwogICBjb25zdCBjaGFyICoqYWxpYXNlczsKLSAg Z2NyeV9jaXBoZXJfb2lkX3NwZWNfdCAqb2lkczsKKyAgY29uc3QgZ2NyeV9jaXBoZXJfb2lkX3Nw ZWNfdCAqb2lkczsKICAgZ3J1Yl9zaXplX3QgYmxvY2tzaXplOwogICBncnViX3NpemVfdCBrZXls ZW47CiAgIGdydWJfc2l6ZV90IGNvbnRleHRzaXplOwpAQCAtMTM2LDYgKzE5MCwxMCBAQCB0eXBl ZGVmIHN0cnVjdCBnY3J5X2NpcGhlcl9zcGVjCiAgIGdjcnlfY2lwaGVyX2RlY3J5cHRfdCBkZWNy eXB0OwogICBnY3J5X2NpcGhlcl9zdGVuY3J5cHRfdCBzdGVuY3J5cHQ7CiAgIGdjcnlfY2lwaGVy X3N0ZGVjcnlwdF90IHN0ZGVjcnlwdDsKKyAgZ2NyeV9zZWxmdGVzdF9mdW5jX3Qgc2VsZnRlc3Q7 CisgIGdjcnlfY2lwaGVyX3NldF9leHRyYV9pbmZvX3Qgc2V0X2V4dHJhX2luZm87CisgIGdjcnlf Y2lwaGVyX3NldGl2X2Z1bmNfdCBzZXRpdjsKKwogI2lmZGVmIEdSVUJfVVRJTAogICBjb25zdCBj aGFyICptb2RuYW1lOwogI2VuZGlmCkBAIC0xNDMsNyArMjAxLDcgQEAgdHlwZWRlZiBzdHJ1Y3Qg Z2NyeV9jaXBoZXJfc3BlYwogfSBnY3J5X2NpcGhlcl9zcGVjX3Q7CiAKIC8qIFR5cGUgZm9yIHRo ZSBtZF9pbml0IGZ1bmN0aW9uLiAgKi8KLXR5cGVkZWYgdm9pZCAoKmdjcnlfbWRfaW5pdF90KSAo dm9pZCAqYyk7Cit0eXBlZGVmIHZvaWQgKCpnY3J5X21kX2luaXRfdCkgKHZvaWQgKmMsIHVuc2ln bmVkIGludCBmbGFncyk7CiAKIC8qIFR5cGUgZm9yIHRoZSBtZF93cml0ZSBmdW5jdGlvbi4gICov CiB0eXBlZGVmIHZvaWQgKCpnY3J5X21kX3dyaXRlX3QpICh2b2lkICpjLCBjb25zdCB2b2lkICpi dWYsIGdydWJfc2l6ZV90IG5ieXRlcyk7CkBAIC0xNjIsMTYgKzIyMCwyNCBAQCB0eXBlZGVmIHN0 cnVjdCBnY3J5X21kX29pZF9zcGVjCiAvKiBNb2R1bGUgc3BlY2lmaWNhdGlvbiBzdHJ1Y3R1cmUg Zm9yIG1lc3NhZ2UgZGlnZXN0cy4gICovCiB0eXBlZGVmIHN0cnVjdCBnY3J5X21kX3NwZWMKIHsK KyAgaW50IGFsZ287CisgIHN0cnVjdCB7CisgICAgdW5zaWduZWQgaW50IGRpc2FibGVkOjE7Cisg ICAgdW5zaWduZWQgaW50IGZpcHM6MTsKKyAgfSBmbGFnczsKICAgY29uc3QgY2hhciAqbmFtZTsK LSAgdW5zaWduZWQgY2hhciAqYXNub2lkOworICBjb25zdCB1bnNpZ25lZCBjaGFyICphc25vaWQ7 CiAgIGludCBhc25sZW47Ci0gIGdjcnlfbWRfb2lkX3NwZWNfdCAqb2lkczsKKyAgY29uc3QgZ2Ny eV9tZF9vaWRfc3BlY190ICpvaWRzOwogICBncnViX3NpemVfdCBtZGxlbjsKICAgZ2NyeV9tZF9p bml0X3QgaW5pdDsKICAgZ2NyeV9tZF93cml0ZV90IHdyaXRlOwogICBnY3J5X21kX2ZpbmFsX3Qg ZmluYWw7CiAgIGdjcnlfbWRfcmVhZF90IHJlYWQ7CisgIHZvaWQgKmV4dHJhY3Q7CisgIHZvaWQg Kmhhc2hfYnVmZmVyczsKICAgZ3J1Yl9zaXplX3QgY29udGV4dHNpemU7IC8qIGFsbG9jYXRlIHRo aXMgYW1vdW50IG9mIGNvbnRleHQgKi8KKwogICAvKiBCbG9jayBzaXplLCBuZWVkZWQgZm9yIEhN QUMuICAqLwogICBncnViX3NpemVfdCBibG9ja3NpemU7CiAjaWZkZWYgR1JVQl9VVElMCkBAIC0x ODAsNTQgKzI0NiwxMjMgQEAgdHlwZWRlZiBzdHJ1Y3QgZ2NyeV9tZF9zcGVjCiAgIHN0cnVjdCBn Y3J5X21kX3NwZWMgKm5leHQ7CiB9IGdjcnlfbWRfc3BlY190OwogCit0eXBlZGVmIHN0cnVjdCBn Y3J5X21kX2hhbmRsZSpnY3J5X21kX2hkX3Q7CisKIHN0cnVjdCBnY3J5X21waTsKIHR5cGVkZWYg c3RydWN0IGdjcnlfbXBpICpnY3J5X21waV90OwogCitzdHJ1Y3QgZ2NyeV9zZXhwOwordHlwZWRl ZiBzdHJ1Y3QgZ2NyeV9zZXhwICpnY3J5X3NleHBfdDsKKworCisjZGVmaW5lIFBVQktFWV9GTEFH X05PX0JMSU5ESU5HICAgICgxIDw8IDApCisjZGVmaW5lIFBVQktFWV9GTEFHX1JGQzY5NzkgICAg ICAgICgxIDw8IDEpCisjZGVmaW5lIFBVQktFWV9GTEFHX0ZJWEVETEVOICAgICAgICgxIDw8IDIp CisjZGVmaW5lIFBVQktFWV9GTEFHX0xFR0FDWVJFU1VMVCAgICgxIDw8IDMpCisjZGVmaW5lIFBV QktFWV9GTEFHX1JBV19GTEFHICAgICAgICgxIDw8IDQpCisjZGVmaW5lIFBVQktFWV9GTEFHX1RS QU5TSUVOVF9LRVkgICgxIDw8IDUpCisjZGVmaW5lIFBVQktFWV9GTEFHX1VTRV9YOTMxICAgICAg ICgxIDw8IDYpCisjZGVmaW5lIFBVQktFWV9GTEFHX1VTRV9GSVBTMTg2ICAgICgxIDw8IDcpCisj ZGVmaW5lIFBVQktFWV9GTEFHX1VTRV9GSVBTMTg2XzIgICgxIDw8IDgpCisjZGVmaW5lIFBVQktF WV9GTEFHX1BBUkFNICAgICAgICAgICgxIDw8IDkpCisjZGVmaW5lIFBVQktFWV9GTEFHX0NPTVAg ICAgICAgICAgICgxIDw8IDEwKQorI2RlZmluZSBQVUJLRVlfRkxBR19OT0NPTVAgICAgICAgICAo MSA8PCAxMSkKKyNkZWZpbmUgUFVCS0VZX0ZMQUdfRUREU0EgICAgICAgICAgKDEgPDwgMTIpCisj ZGVmaW5lIFBVQktFWV9GTEFHX0dPU1QgICAgICAgICAgICgxIDw8IDEzKQorI2RlZmluZSBQVUJL RVlfRkxBR19OT19LRVlURVNUICAgICAoMSA8PCAxNCkKKyNkZWZpbmUgUFVCS0VZX0ZMQUdfREpC X1RXRUFLICAgICAgKDEgPDwgMTUpCisjZGVmaW5lIFBVQktFWV9GTEFHX1NNMiAgICAgICAgICAg ICgxIDw8IDE2KQorI2RlZmluZSBQVUJLRVlfRkxBR19QUkVIQVNIICAgICAgICAoMSA8PCAxNykK KworZW51bSBwa19vcGVyYXRpb24KKyAgeworICAgIFBVQktFWV9PUF9FTkNSWVBULAorICAgIFBV QktFWV9PUF9ERUNSWVBULAorICAgIFBVQktFWV9PUF9TSUdOLAorICAgIFBVQktFWV9PUF9WRVJJ RlkKKyAgfTsKKworZW51bSBwa19lbmNvZGluZworICB7CisgICAgUFVCS0VZX0VOQ19SQVcsCisg ICAgUFVCS0VZX0VOQ19QS0NTMSwKKyAgICBQVUJLRVlfRU5DX1BLQ1MxX1JBVywKKyAgICBQVUJL RVlfRU5DX09BRVAsCisgICAgUFVCS0VZX0VOQ19QU1MsCisgICAgUFVCS0VZX0VOQ19VTktOT1dO CisgIH07CisKK3N0cnVjdCBwa19lbmNvZGluZ19jdHgKK3sKKyAgZW51bSBwa19vcGVyYXRpb24g b3A7CisgIHVuc2lnbmVkIGludCBuYml0czsKKworICBlbnVtIHBrX2VuY29kaW5nIGVuY29kaW5n OworICBpbnQgZmxhZ3M7CisKKyAgaW50IGhhc2hfYWxnbzsKKworICAvKiBmb3IgT0FFUCAqLwor ICB1bnNpZ25lZCBjaGFyICpsYWJlbDsKKyAgZ3J1Yl9zaXplX3QgbGFiZWxsZW47CisKKyAgLyog Zm9yIFBTUyAqLworICBncnViX3NpemVfdCBzYWx0bGVuOworCisgIGludCAoKiB2ZXJpZnlfY21w KSAodm9pZCAqb3BhcXVlLCBnY3J5X21waV90IHRtcCk7CisgIHZvaWQgKnZlcmlmeV9hcmc7Cit9 OworCiAvKiBUeXBlIGZvciB0aGUgcGtfZ2VuZXJhdGUgZnVuY3Rpb24uICAqLwotdHlwZWRlZiBn Y3J5X2Vycl9jb2RlX3QgKCpnY3J5X3BrX2dlbmVyYXRlX3QpIChpbnQgYWxnbywKLQkJCQkJICAg ICAgIHVuc2lnbmVkIGludCBuYml0cywKLQkJCQkJICAgICAgIHVuc2lnbmVkIGxvbmcgdXNlX2Us Ci0JCQkJCSAgICAgICBnY3J5X21waV90ICpza2V5LAotCQkJCQkgICAgICAgZ2NyeV9tcGlfdCAq KnJldGZhY3RvcnMpOwordHlwZWRlZiBnY3J5X2Vycl9jb2RlX3QgKCpnY3J5X3BrX2dlbmVyYXRl X3QpIChnY3J5X3NleHBfdCBnZW5wYXJtcywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgZ2NyeV9zZXhwX3QgKnJfc2tleSk7CiAKIC8qIFR5cGUgZm9yIHRo ZSBwa19jaGVja19zZWNyZXRfa2V5IGZ1bmN0aW9uLiAgKi8KLXR5cGVkZWYgZ2NyeV9lcnJfY29k ZV90ICgqZ2NyeV9wa19jaGVja19zZWNyZXRfa2V5X3QpIChpbnQgYWxnbywKLQkJCQkJCSAgICAg ICBnY3J5X21waV90ICpza2V5KTsKK3R5cGVkZWYgZ2NyeV9lcnJfY29kZV90ICgqZ2NyeV9wa19j aGVja19zZWNyZXRfa2V5X3QpIChnY3J5X3NleHBfdCBrZXlwYXJtcyk7CiAKIC8qIFR5cGUgZm9y IHRoZSBwa19lbmNyeXB0IGZ1bmN0aW9uLiAgKi8KLXR5cGVkZWYgZ2NyeV9lcnJfY29kZV90ICgq Z2NyeV9wa19lbmNyeXB0X3QpIChpbnQgYWxnbywKLQkJCQkJICAgICAgZ2NyeV9tcGlfdCAqcmVz YXJyLAotCQkJCQkgICAgICBnY3J5X21waV90IGRhdGEsCi0JCQkJCSAgICAgIGdjcnlfbXBpX3Qg KnBrZXksCi0JCQkJCSAgICAgIGludCBmbGFncyk7Cit0eXBlZGVmIGdjcnlfZXJyX2NvZGVfdCAo KmdjcnlfcGtfZW5jcnlwdF90KSAoZ2NyeV9zZXhwX3QgKnJfY2lwaCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnY3J5X3NleHBfdCBzX2RhdGEsCisgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NyeV9zZXhwX3Qga2V5 cGFybXMpOwogCiAvKiBUeXBlIGZvciB0aGUgcGtfZGVjcnlwdCBmdW5jdGlvbi4gICovCi10eXBl ZGVmIGdjcnlfZXJyX2NvZGVfdCAoKmdjcnlfcGtfZGVjcnlwdF90KSAoaW50IGFsZ28sCi0JCQkJ CSAgICAgIGdjcnlfbXBpX3QgKnJlc3VsdCwKLQkJCQkJICAgICAgZ2NyeV9tcGlfdCAqZGF0YSwK LQkJCQkJICAgICAgZ2NyeV9tcGlfdCAqc2tleSwKLQkJCQkJICAgICAgaW50IGZsYWdzKTsKK3R5 cGVkZWYgZ2NyeV9lcnJfY29kZV90ICgqZ2NyeV9wa19kZWNyeXB0X3QpIChnY3J5X3NleHBfdCAq cl9wbGFpbiwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBn Y3J5X3NleHBfdCBzX2RhdGEsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZ2NyeV9zZXhwX3Qga2V5cGFybXMpOwogCiAvKiBUeXBlIGZvciB0aGUgcGtfc2ln biBmdW5jdGlvbi4gICovCi10eXBlZGVmIGdjcnlfZXJyX2NvZGVfdCAoKmdjcnlfcGtfc2lnbl90 KSAoaW50IGFsZ28sCi0JCQkJCSAgIGdjcnlfbXBpX3QgKnJlc2FyciwKLQkJCQkJICAgZ2NyeV9t cGlfdCBkYXRhLAotCQkJCQkgICBnY3J5X21waV90ICpza2V5KTsKK3R5cGVkZWYgZ2NyeV9lcnJf Y29kZV90ICgqZ2NyeV9wa19zaWduX3QpIChnY3J5X3NleHBfdCAqcl9zaWcsCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZ2NyeV9zZXhwX3Qgc19kYXRhLAorICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjcnlfc2V4cF90IGtleXBh cm1zKTsKIAogLyogVHlwZSBmb3IgdGhlIHBrX3ZlcmlmeSBmdW5jdGlvbi4gICovCi10eXBlZGVm IGdjcnlfZXJyX2NvZGVfdCAoKmdjcnlfcGtfdmVyaWZ5X3QpIChpbnQgYWxnbywKLQkJCQkJICAg ICBnY3J5X21waV90IGhhc2gsCi0JCQkJCSAgICAgZ2NyeV9tcGlfdCAqZGF0YSwKLQkJCQkJICAg ICBnY3J5X21waV90ICpwa2V5LAotCQkJCQkgICAgIGludCAoKmNtcCkgKHZvaWQgKiwgZ2NyeV9t cGlfdCksCi0JCQkJCSAgICAgdm9pZCAqb3BhcXVldik7Cit0eXBlZGVmIGdjcnlfZXJyX2NvZGVf dCAoKmdjcnlfcGtfdmVyaWZ5X3QpIChnY3J5X3NleHBfdCBzX3NpZywKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjcnlfc2V4cF90IHNfZGF0YSwKKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdjcnlfc2V4cF90IGtleXBh cm1zKTsKIAogLyogVHlwZSBmb3IgdGhlIHBrX2dldF9uYml0cyBmdW5jdGlvbi4gICovCi10eXBl ZGVmIHVuc2lnbmVkICgqZ2NyeV9wa19nZXRfbmJpdHNfdCkgKGludCBhbGdvLCBnY3J5X21waV90 ICpwa2V5KTsKK3R5cGVkZWYgdW5zaWduZWQgKCpnY3J5X3BrX2dldF9uYml0c190KSAoZ2NyeV9z ZXhwX3Qga2V5cGFybXMpOworCisvKiBUaGUgdHlwZSB1c2VkIHRvIGNvbXB1dGUgdGhlIGtleWdy aXAuICAqLwordHlwZWRlZiBncGdfZXJyX2NvZGVfdCAoKnBrX2NvbXBfa2V5Z3JpcF90KSAoZ2Ny eV9tZF9oZF90IG1kLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZ2NyeV9zZXhwX3Qga2V5cGFybSk7CisKKy8qIFRoZSB0eXBlIHVzZWQgdG8gcXVlcnkgYW4g RUNDIGN1cnZlIG5hbWUuICAqLwordHlwZWRlZiBjb25zdCBjaGFyICooKnBrX2dldF9jdXJ2ZV90 KShnY3J5X3NleHBfdCBrZXlwYXJtcywgaW50IGl0ZXJhdG9yLAorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB1bnNpZ25lZCBpbnQgKnJfbmJpdHMpOworCisvKiBUaGUgdHlw ZSB1c2VkIHRvIHF1ZXJ5IEVDQyBjdXJ2ZSBwYXJhbWV0ZXJzIGJ5IG5hbWUuICAqLwordHlwZWRl ZiBnY3J5X3NleHBfdCAoKnBrX2dldF9jdXJ2ZV9wYXJhbV90KShjb25zdCBjaGFyICpuYW1lKTsK IAogLyogTW9kdWxlIHNwZWNpZmljYXRpb24gc3RydWN0dXJlIGZvciBtZXNzYWdlIGRpZ2VzdHMu ICAqLwogdHlwZWRlZiBzdHJ1Y3QgZ2NyeV9wa19zcGVjCiB7CisgIGludCBhbGdvOworICBzdHJ1 Y3QgeworICAgIHVuc2lnbmVkIGludCBkaXNhYmxlZDoxOworICAgIHVuc2lnbmVkIGludCBmaXBz OjE7CisgIH0gZmxhZ3M7CisgIGludCB1c2U7CiAgIGNvbnN0IGNoYXIgKm5hbWU7CiAgIGNvbnN0 IGNoYXIgKiphbGlhc2VzOwogICBjb25zdCBjaGFyICplbGVtZW50c19wa2V5OwpAQCAtMjM1LDcg KzM3MCw2IEBAIHR5cGVkZWYgc3RydWN0IGdjcnlfcGtfc3BlYwogICBjb25zdCBjaGFyICplbGVt ZW50c19lbmM7CiAgIGNvbnN0IGNoYXIgKmVsZW1lbnRzX3NpZzsKICAgY29uc3QgY2hhciAqZWxl bWVudHNfZ3JpcDsKLSAgaW50IHVzZTsKICAgZ2NyeV9wa19nZW5lcmF0ZV90IGdlbmVyYXRlOwog ICBnY3J5X3BrX2NoZWNrX3NlY3JldF9rZXlfdCBjaGVja19zZWNyZXRfa2V5OwogICBnY3J5X3Br X2VuY3J5cHRfdCBlbmNyeXB0OwpAQCAtMjQzLDYgKzM3NywxMCBAQCB0eXBlZGVmIHN0cnVjdCBn Y3J5X3BrX3NwZWMKICAgZ2NyeV9wa19zaWduX3Qgc2lnbjsKICAgZ2NyeV9wa192ZXJpZnlfdCB2 ZXJpZnk7CiAgIGdjcnlfcGtfZ2V0X25iaXRzX3QgZ2V0X25iaXRzOworICBwa19jb21wX2tleWdy aXBfdCBjb21wX2tleWdyaXA7CisgIHBrX2dldF9jdXJ2ZV90IGdldF9jdXJ2ZTsKKyAgcGtfZ2V0 X2N1cnZlX3BhcmFtX3QgZ2V0X2N1cnZlX3BhcmFtOworCiAjaWZkZWYgR1JVQl9VVElMCiAgIGNv bnN0IGNoYXIgKm1vZG5hbWU7CiAjZW5kaWYKQEAgLTM0NSw2ICs0ODMsMTAgQEAgZ3J1Yl9jcnlw dG9faGFzaCAoY29uc3QgZ2NyeV9tZF9zcGVjX3QgKmhhc2gsIHZvaWQgKm91dCwgY29uc3Qgdm9p ZCAqaW4sCiAJCSAgZ3J1Yl9zaXplX3QgaW5sZW4pOwogY29uc3QgZ2NyeV9tZF9zcGVjX3QgKgog Z3J1Yl9jcnlwdG9fbG9va3VwX21kX2J5X25hbWUgKGNvbnN0IGNoYXIgKm5hbWUpOworY29uc3Qg Z2NyeV9tZF9zcGVjX3QgKgorZ3J1Yl9jcnlwdG9fbG9va3VwX21kX2J5X2FsZ28gKGludCBhbGdv KTsKK2NvbnN0IGdjcnlfbWRfc3BlY190ICoKK2dydWJfY3J5cHRvX2xvb2t1cF9tZF9ieV9vaWQg KGNvbnN0IGNoYXIgKm9pZCk7CiAKIGdydWJfZXJyX3QKIGdydWJfY3J5cHRvX2djcnlfZXJyb3Ig KGdjcnlfZXJyX2NvZGVfdCBpbik7CkBAIC00MDgsNyArNTUwLDM1IEBAIHZvaWQgX2djcnlfYXNz ZXJ0X2ZhaWxlZCAoY29uc3QgY2hhciAqZXhwciwgY29uc3QgY2hhciAqZmlsZSwgaW50IGxpbmUs CiAKIHZvaWQgX2djcnlfYnVybl9zdGFjayAoaW50IGJ5dGVzKTsKIHZvaWQgX2djcnlfbG9nX2Vy cm9yKCBjb25zdCBjaGFyICpmbXQsIC4uLiApICBfX2F0dHJpYnV0ZV9fICgoZm9ybWF0IChfX3By aW50Zl9fLCAxLCAyKSkpOwordm9pZCBfZ2NyeV9sb2dfaW5mbyAoY29uc3QgY2hhciAqZm10LCAu Li4pOwordm9pZCBfX2djcnlfYnVybl9zdGFjayAodW5zaWduZWQgaW50IHNpemUpOwordm9pZCBf X2djcnlfYnVybl9zdGFja19kdW1teSAodm9pZCk7Cit2b2lkIF9nY3J5X2J1ZyggY29uc3QgY2hh ciAqZmlsZSwgaW50IGxpbmUsIGNvbnN0IGNoYXIgKmZ1bmMgKTsKK3ZvaWQKK19nY3J5X2Zhc3Rf d2lwZW1lbW9yeSAodm9pZCAqcHRyLCBncnViX3NpemVfdCBsZW4pOwordm9pZAorX2djcnlfZmFz dF93aXBlbWVtb3J5MiAodm9pZCAqcHRyLCBpbnQgc2V0LCBncnViX3NpemVfdCBsZW4pOwordW5z aWduZWQgaW50CitfZ2NyeV9jdF9tZW1lcXVhbCAoY29uc3Qgdm9pZCAqYjEsIGNvbnN0IHZvaWQg KmIyLCBncnViX3NpemVfdCBsZW4pOwordW5zaWduZWQgaW50CitfZ2NyeV9jdF9ub3RfbWVtZXF1 YWwgKGNvbnN0IHZvaWQgKmIxLCBjb25zdCB2b2lkICpiMiwgZ3J1Yl9zaXplX3QgbGVuKTsKKwor CitzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBfZ2NyeV9nZXRfaHdfZmVhdHVyZXModm9pZCkK K3sKKyAgcmV0dXJuIDA7Cit9CiAKK3ZvaWQgKl9nY3J5X21hbGxvYyhncnViX3NpemVfdCBuKTsK K3ZvaWQgKl9nY3J5X21hbGxvY19zZWN1cmUoZ3J1Yl9zaXplX3Qgbik7Cit2b2lkICpfZ2NyeV94 bWFsbG9jKGdydWJfc2l6ZV90IG4pOwordm9pZCAqX2djcnlfeG1hbGxvY19zZWN1cmUoZ3J1Yl9z aXplX3Qgbik7Cit2b2lkIF9nY3J5X2ZyZWUgKHZvaWQgKnApOwordm9pZCAqX2djcnlfeHJlYWxs b2MgKHZvaWQgKmEsIGdydWJfc2l6ZV90IG4pOworaW50IF9nY3J5X2lzX3NlY3VyZSAoY29uc3Qg dm9pZCAqYSk7Cit2b2lkICpfZ2NyeV94Y2FsbG9jIChncnViX3NpemVfdCBuLCBncnViX3NpemVf dCBtKTsKK3ZvaWQgKl9nY3J5X3hjYWxsb2Nfc2VjdXJlIChncnViX3NpemVfdCBuLCBncnViX3Np emVfdCBtKTsKK3ZvaWQgX2djcnlfZGl2aWRlX2J5X3plcm8gKHZvaWQpOwogCiAjaWZkZWYgR1JV Ql9VVElMCiB2b2lkIGdydWJfZ2NyeV9pbml0X2FsbCAodm9pZCk7CkBAIC00MTksNCArNTg5LDEx IEBAIGdydWJfZ2V0X3JhbmRvbSAodm9pZCAqb3V0LCBncnViX3NpemVfdCBsZW4pOwogCiAjZW5k aWYKIAordHlwZWRlZiBzdHJ1Y3QgX2dwZ3J0X2I2NHN0YXRlICpncGdydF9iNjRzdGF0ZV90Owor Z3BncnRfYjY0c3RhdGVfdCBncGdydF9iNjRkZWNfc3RhcnQgKGNvbnN0IGNoYXIgKnRpdGxlKTsK K2dwZ19lcnJvcl90ICAgICAgZ3BncnRfYjY0ZGVjX3Byb2MgKGdwZ3J0X2I2NHN0YXRlX3Qgc3Rh dGUsCisJCQkJICAgIHZvaWQgKmJ1ZmZlciwgZ3J1Yl9zaXplX3QgbGVuZ3RoLAorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgZ3J1Yl9zaXplX3QgKnJfbmJ5dGVzKTsKK2dwZ19l cnJvcl90ICAgICAgZ3BncnRfYjY0ZGVjX2ZpbmlzaCAoZ3BncnRfYjY0c3RhdGVfdCBzdGF0ZSk7 Citjb25zdCBjaGFyICpncGdfc3RyZXJyb3IgKGdwZ19lcnJvcl90IGVycik7CiAjZW5kaWYKZGlm ZiAtLWdpdCBhL2luY2x1ZGUvZ3J1Yi9nY3J5cHQvZ3BnLWVycm9yLmggYi9pbmNsdWRlL2dydWIv Z2NyeXB0L2dwZy1lcnJvci5oCmluZGV4IDFlNDI1MDI4NC4uOTY2ZWJmODJkIDEwMDY0NAotLS0g YS9pbmNsdWRlL2dydWIvZ2NyeXB0L2dwZy1lcnJvci5oCisrKyBiL2luY2x1ZGUvZ3J1Yi9nY3J5 cHQvZ3BnLWVycm9yLmgKQEAgLTI5LDQgKzI5LDMzIEBAIGdwZ19lcnJfc291cmNlIChncGdfZXJy b3JfdCBlcnIgX19hdHRyaWJ1dGVfXyAoKHVudXNlZCkpKQogZ2NyeV9lcnJfY29kZV90CiBncGdf ZXJyb3JfZnJvbV9zeXNlcnJvciAodm9pZCk7CiAKK2djcnlfZXJyX2NvZGVfdAorZ3BnX2Vycl9j b2RlX2Zyb21fc3lzZXJyb3IgKHZvaWQpOworCitnY3J5X2Vycl9jb2RlX3QKK2dwZ19lcnJvcl9m cm9tX2Vycm5vIChpbnQgZXJyKTsKKworZ2NyeV9lcnJfY29kZV90CitncGdfZXJyX2NvZGVfZnJv bV9lcnJubyAoaW50IGVycik7CisKK3N0YXRpYyBpbmxpbmUgY29uc3QgY2hhciAqCitncGdfc3Ry c291cmNlIChnY3J5X2Vycm9yX3QgZXJyIF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKSkKK3sKKyAg cmV0dXJuIE5VTEw7Cit9CisKK3N0YXRpYyBpbmxpbmUgaW50CitncGdfZXJyX2NvZGVfdG9fZXJy bm8gKGdjcnlfZXJyX2NvZGVfdCBjb2RlKQoreworICByZXR1cm4gY29kZSA/IDEgOiAwOworfQor CitzdGF0aWMgaW5saW5lIGdjcnlfZXJyb3JfdAorZ3BnX2Vycl9tYWtlX2Zyb21fZXJybm8gKGdw Z19lcnJfc291cmNlX3Qgc291cmNlIF9fYXR0cmlidXRlX18gKCh1bnVzZWQpKSwgaW50IGVycikK K3sKKyAgcmV0dXJuIGdwZ19lcnJfY29kZV9mcm9tX2Vycm5vIChlcnIpOworfQorCisjZGVmaW5l IGdwZ19lcnJvcih4KSAoeCkKKwogI2VuZGlmCmRpZmYgLS1naXQgYS91dGlsL2dydWItZnN0ZXN0 LmMgYi91dGlsL2dydWItZnN0ZXN0LmMKaW5kZXggN2ZmOTAzN2I4Li4yNGIyMGFiOTEgMTAwNjQ0 Ci0tLSBhL3V0aWwvZ3J1Yi1mc3Rlc3QuYworKysgYi91dGlsL2dydWItZnN0ZXN0LmMKQEAgLTM2 NSw3ICszNjUsNyBAQCBzdGF0aWMgdm9pZAogY21kX2NyYyAoY2hhciAqcGF0aG5hbWUpCiB7CiAg IGdydWJfdWludDhfdCAqY3JjMzJfY29udGV4dCA9IHhtYWxsb2MgKEdSVUJfTURfQ1JDMzItPmNv bnRleHRzaXplKTsKLSAgR1JVQl9NRF9DUkMzMi0+aW5pdChjcmMzMl9jb250ZXh0KTsKKyAgR1JV Ql9NRF9DUkMzMi0+aW5pdChjcmMzMl9jb250ZXh0LCAwKTsKIAogICByZWFkX2ZpbGUgKHBhdGhu YW1lLCBjcmNfaG9vaywgY3JjMzJfY29udGV4dCk7CiAgIEdSVUJfTURfQ1JDMzItPmZpbmFsKGNy YzMyX2NvbnRleHQpOwpkaWZmIC0tZ2l0IGEvdXRpbC9pbXBvcnRfZ2NyeS5weSBiL3V0aWwvaW1w b3J0X2djcnkucHkKaW5kZXggMmIzMzIyZDNhLi5lM2Y2ZDY1YTEgMTAwNjQ0Ci0tLSBhL3V0aWwv aW1wb3J0X2djcnkucHkKKysrIGIvdXRpbC9pbXBvcnRfZ2NyeS5weQpAQCAtMjIsNiArMjIsMjMg QEAgaW1wb3J0IG9zCiBpbXBvcnQgZGF0ZXRpbWUKIGltcG9ydCBjb2RlY3MKIAorZGVmIHJlbW92 ZXN1ZmZpeChiYXNlOiBzdHIsIHN1ZmZpeDogc3RyKSAtPiBzdHI6CisgICAgIiIiIEJhY2twb3J0 IG9mIGByZW1vdmVzdWZmaXhgIGZyb20gUEVQLTYxNiAoUHl0aG9uIDMuOSspICIiIgorCisgICAg aWYgYmFzZS5lbmRzd2l0aChzdWZmaXgpOgorICAgICAgICByZXR1cm4gYmFzZVs6LWxlbihzdWZm aXgpXQorICAgIGVsc2U6CisgICAgICAgIHJldHVybiBiYXNlCisKKworZGVmIHJlbW92ZXByZWZp eChiYXNlOiBzdHIsIHByZWZpeDogc3RyKSAtPiBzdHI6CisgICAgIiIiIEJhY2twb3J0IG9mIGBy ZW1vdmVwcmVmaXhgIGZyb20gUEVQLTYxNiAoUHl0aG9uIDMuOSspICIiIgorCisgICAgaWYgYmFz ZS5zdGFydHN3aXRoKHByZWZpeCk6CisgICAgICAgIHJldHVybiBiYXNlW2xlbihwcmVmaXgpOl0K KyAgICBlbHNlOgorICAgICAgICByZXR1cm4gYmFzZQorCiBpZiBsZW4gKHN5cy5hcmd2KSA8IDM6 CiAgICAgcHJpbnQgKCJVc2FnZTogJXMgU09VUkNFIERFU1RJTkFUSU9OIiAlIHN5cy5hcmd2WzBd KQogICAgIGV4aXQgKDApCkBAIC02Miw2ICs3OSwxMiBAQCBjb25mdXRpbC53cml0ZSAoIiAgY2Zs YWdzID0gJyQoQ0ZMQUdTX0dDUlkpJztcbiIpOwogY29uZnV0aWwud3JpdGUgKCIgIGNwcGZsYWdz ID0gJyQoQ1BQRkxBR1NfR0NSWSknO1xuIik7CiBjb25mdXRpbC53cml0ZSAoIiAgZXh0cmFfZGlz dCA9IGdydWItY29yZS9saWIvbGliZ2NyeXB0LWdydWIvY2lwaGVyL0NoYW5nZUxvZztcbiIpOwog Y29uZnV0aWwud3JpdGUgKCJcbiIpOworCitmb3Igc3JjIGluIFsnc3JjL2NvbnN0LXRpbWUuYydd OgorICAgIGNvbmZ1dGlsLndyaXRlICgiICBjb21tb24gPSBncnViLWNvcmUvbGliL2xpYmdjcnlw dC1ncnViLyVzO1xuIiAlIHNyYykKKworY29uZnV0aWwud3JpdGUgKCJcbiIpOworCiBjaGxvZyA9 ICIiCiBtb2R1bGVzX3N5bV9tZCA9IFtdCiAKQEAgLTcxLDYgKzk0LDggQEAgbW9kdWxlc19zeW1f bWQgPSBbXQogbWRibG9ja3NpemVzID0geyJfZ2NyeV9kaWdlc3Rfc3BlY19jcmMzMiIgOiA2NCwK ICAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfY3JjMzJfcmZjMTUxMCIgOiA2NCwK ICAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfY3JjMjRfcmZjMjQ0MCIgOiA2NCwK KyAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfY3NoYWtlMTI4IjogNjQsCisgICAg ICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX2NzaGFrZTI1NiI6IDY0LAogICAgICAgICAg ICAgICAgICJfZ2NyeV9kaWdlc3Rfc3BlY19tZDQiIDogNjQsCiAgICAgICAgICAgICAgICAgIl9n Y3J5X2RpZ2VzdF9zcGVjX21kNSIgOiA2NCwKICAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0 X3NwZWNfcm1kMTYwIiA6IDY0LApAQCAtNzksMTAgKzEwNCwyMyBAQCBtZGJsb2Nrc2l6ZXMgPSB7 Il9nY3J5X2RpZ2VzdF9zcGVjX2NyYzMyIiA6IDY0LAogICAgICAgICAgICAgICAgICJfZ2NyeV9k aWdlc3Rfc3BlY19zaGEyNTYiIDogNjQsCiAgICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9z cGVjX3NoYTM4NCIgOiAxMjgsCiAgICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3No YTUxMiIgOiAxMjgsCisgICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3NoYTUxMl8y NTYiOiAxMjgsCisgICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3NoYTUxMl8yMjQi OiAxMjgsCiAgICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3RpZ2VyIiA6IDY0LAog ICAgICAgICAgICAgICAgICJfZ2NyeV9kaWdlc3Rfc3BlY190aWdlcjEiIDogNjQsCiAgICAgICAg ICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3RpZ2VyMiIgOiA2NCwKLSAgICAgICAgICAgICAg ICAiX2djcnlfZGlnZXN0X3NwZWNfd2hpcmxwb29sIiA6IDY0fQorICAgICAgICAgICAgICAgICJf Z2NyeV9kaWdlc3Rfc3BlY193aGlybHBvb2wiIDogNjQsCisgICAgICAgICAgICAgICAgIl9nY3J5 X2RpZ2VzdF9zcGVjX3NoYWtlMTI4IjogNjQsCisgICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2Vz dF9zcGVjX3NoYWtlMjU2IjogNjQsCisgICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVj X3NtMyI6IDY0LAorICAgICAgICAgICAgICAgICJfZ2NyeV9kaWdlc3Rfc3BlY19zdHJpYm9nXzI1 NiI6IDY0LAorICAgICAgICAgICAgICAgICJfZ2NyeV9kaWdlc3Rfc3BlY19zdHJpYm9nXzUxMiI6 IDY0LAorICAgICAgICAgICAgICAgICJfZ2NyeV9kaWdlc3Rfc3BlY19zaGEzXzIyNCI6IDExNTIg LyA4LAorICAgICAgICAgICAgICAgICJfZ2NyeV9kaWdlc3Rfc3BlY19zaGEzXzI1NiI6IDEwODgg LyA4LAorICAgICAgICAgICAgICAgICJfZ2NyeV9kaWdlc3Rfc3BlY19zaGEzXzM4NCI6IDgzMiAv IDgsCisgICAgICAgICAgICAgICAgIl9nY3J5X2RpZ2VzdF9zcGVjX3NoYTNfNTEyIjogNTc2IC8g OCwKKyAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfZ29zdDM0MTFfOTQiOiAzMiwK KyAgICAgICAgICAgICAgICAiX2djcnlfZGlnZXN0X3NwZWNfZ29zdDM0MTFfY3AiOiAzMn0KIAog Y3J5cHRvbGlzdCA9IGNvZGVjcy5vcGVuIChvcy5wYXRoLmpvaW4gKGNpcGhlcl9kaXJfb3V0LCAi Y3J5cHRvLmxzdCIpLCAidyIsICJ1dGYtOCIpCiAKQEAgLTk5LDI2ICsxMzcsNjAgQEAgY3J5cHRv bGlzdC53cml0ZSAoIkFFUy0yNTY6IGdjcnlfcmlqbmRhZWxcbiIpOwogY3J5cHRvbGlzdC53cml0 ZSAoIkFETEVSMzI6IGFkbGVyMzJcbiIpOwogY3J5cHRvbGlzdC53cml0ZSAoIkNSQzY0OiBjcmM2 NFxuIik7CiAKK2V4dHJhX2ZpbGVzID0geworICAgICJnY3J5X2NhbWVsbGlhIjogWyJjYW1lbGxp YS5jIl0sICMgTWFpbiBmaWxlIGlzIGNhbWVsbGlhLWdsdWUuYworICAgICJnY3J5X3NoYTUxMiIg IDogWyJoYXNoLWNvbW1vbi5jIl0sCit9CitleHRyYV9maWxlc19saXN0ID0gW3ggZm9yIHhzIGlu IGV4dHJhX2ZpbGVzLnZhbHVlcygpIGZvciB4IGluIHhzXSArIFsicHVia2V5LXV0aWwuYyIsICJy c2EtY29tbW9uLmMiLCAiZHNhLWNvbW1vbi5jIiwgIm1kLmMiXQorCiBmb3IgY2lwaGVyX2ZpbGUg aW4gY2lwaGVyX2ZpbGVzOgogICAgIGluZmlsZSA9IG9zLnBhdGguam9pbiAoY2lwaGVyX2Rpcl9p biwgY2lwaGVyX2ZpbGUpCiAgICAgb3V0ZmlsZSA9IG9zLnBhdGguam9pbiAoY2lwaGVyX2Rpcl9v dXQsIGNpcGhlcl9maWxlKQogICAgIGlmIGNpcGhlcl9maWxlID09ICJDaGFuZ2VMb2ciIG9yIGNp cGhlcl9maWxlID09ICJDaGFuZ2VMb2ctMjAxMSI6CiAgICAgICAgIGNvbnRpbnVlCiAgICAgY2hs b2duZXcgPSAiCSogJXMiICUgY2lwaGVyX2ZpbGUKLSAgICBpZiByZS5tYXRjaCAoIihNYW5pZmVz dHxNYWtlZmlsZVwuYW18YWNcLmN8Y2lwaGVyXC5jfGhhc2gtY29tbW9uXC5jfGhtYWMtdGVzdHNc LmN8bWRcLmN8cHVia2V5XC5jKSQiLCBjaXBoZXJfZmlsZSkgb3IgY2lwaGVyX2ZpbGUgPT0gImtk Zi5jIiBvciBjaXBoZXJfZmlsZSA9PSAiZWxnYW1hbC5jIiBvciBjaXBoZXJfZmlsZSA9PSAicHJp bWVnZW4uYyIgb3IgY2lwaGVyX2ZpbGUgPT0gImVjYy5jIiBvciBjaXBoZXJfZmlsZSA9PSAidGVz dC1nZXRydXNhZ2UuYyI6CisgICAgIyBVbnVzZWQgZ2VuZXJpYyBzdXBwb3J0IGZpbGVzCisgICAg aWYgcmUubWF0Y2ggKHIiKE1ha2VmaWxlXC5hbXxjaXBoZXJcLmN8Y2lwaGVyLS4qXC5jfG1hYy0u KlwuY3xtYWNcLmN8cHVia2V5XC5jfHByaW1lZ2VuXC5jKSQiLCBjaXBoZXJfZmlsZSk6CisgICAg ICAgIGNobG9nID0gIiVzJXM6IFJlbW92ZWRcbiIgJSAoY2hsb2csIGNobG9nbmV3KQorICAgICAg ICBjb250aW51ZQorICAgICMgVE9ETzogU3VwcG9ydCBLREYKKyAgICBpZiByZS5tYXRjaCAociIo a2RmXC5jfHNjcnlwdFwuYykkIiwgY2lwaGVyX2ZpbGUpOgorICAgICAgICBjaGxvZyA9ICIlcyVz OiBSZW1vdmVkXG4iICUgKGNobG9nLCBjaGxvZ25ldykKKyAgICAgICAgY29udGludWUKKyAgICAj IFRPRE86IFN1cHBvcnQgY2hhY2hhMjAgYW5kIHBvbHkxMzA1CisgICAgaWYgY2lwaGVyX2ZpbGUg aW4gWyJjaGFjaGEyMC5jIiwgInBvbHkxMzA1LmMiXToKKyAgICAgICAgY2hsb2cgPSAiJXMlczog UmVtb3ZlZFxuIiAlIChjaGxvZywgY2hsb2duZXcpCisgICAgICAgIGNvbnRpbnVlCisgICAgIyBU T0RPOiBTdXBwb3J0IGJsYWtlMgorICAgIGlmIGNpcGhlcl9maWxlID09ICJibGFrZTIuYyI6Cisg ICAgICAgIGNobG9nID0gIiVzJXM6IFJlbW92ZWRcbiIgJSAoY2hsb2csIGNobG9nbmV3KQorICAg ICAgICBjb250aW51ZSAgICAgICAgCisKKyAgICAjIFRPRE86IFVzZSBvcHRpbWl6ZWQgdmVyc2lv bnMKKyAgICBpZiByZS5tYXRjaCAociIoLipcLltzU118LiotYWFyY2g2NC1jZS5jfC4qLWludGVs LXNoYWV4dFwuY3wuKi1zc3NlMy1pMzg2XC5jfC4qLXBwY1wuY3wuKi1zc3NlMy1hbWQ2NFwuY3wu Ki1zMzkweFwuY3xyaWpuZGFlbC1hZXNuaVwuY3xjcmMtaW50ZWwtcGNsbXVsXC5jfC4qLWFybXY4 LWNlXC5jfC4qLXAxMGxlXC5jfHJpam5kYWVsLXBhZGxvY2suY3wuKi1wcGM4bGUuY3wuKi1wcGM5 bGUuY3xyaWpuZGFlbC12YWVzXC5jfC4qLXZhZXMtaTM4NlwuY3wuKi1hdng1MTIteDg2XC5jKSQi LCBjaXBoZXJfZmlsZSk6CisgICAgICAgIGNobG9nID0gIiVzJXM6IFJlbW92ZWRcbiIgJSAoY2hs b2csIGNobG9nbmV3KQorICAgICAgICBjb250aW51ZQorICAgICMgVE9ETzogU3VwcG9ydCBFQ0Ms IEVsZ2FtYWwgYW5kIHBvc3QtcXVhbnR1bQorICAgIGlmIHJlLm1hdGNoIChyIl4oZWNjLS4qXC5j fGVjY1wuY3xlbGdhbWFsXC5jfGtlbVwuY3xrZW0tZWNjXC5jfHNudHJ1cDc2MVwuY3xtY2VsaWVj ZTY2ODgxMjhmXC5jfGt5YmVyXC5jfGt5YmVyLS4qXC5jKSQiLCBjaXBoZXJfZmlsZSk6CisgICAg ICAgIGNobG9nID0gIiVzJXM6IFJlbW92ZWRcbiIgJSAoY2hsb2csIGNobG9nbmV3KQorICAgICAg ICBjb250aW51ZQorICAgICMgTm90IHBhcnQgb2YgdGhlIGNvZGUKKyAgICBpZiBjaXBoZXJfZmls ZSBpbiBbImdvc3Qtcy1ib3guYyJdOgogICAgICAgICBjaGxvZyA9ICIlcyVzOiBSZW1vdmVkXG4i ICUgKGNobG9nLCBjaGxvZ25ldykKICAgICAgICAgY29udGludWUKICAgICAjIEF1dG9nZW5lcmF0 ZWQgZmlsZXMuIE5vdCBldmVuIHdvcnRoIG1lbnRpb25uaW5nIGluIENoYW5nZUxvZwotICAgIGlm IHJlLm1hdGNoICgiTWFrZWZpbGVcLmluJCIsIGNpcGhlcl9maWxlKToKKyAgICBpZiByZS5tYXRj aCAociJNYWtlZmlsZVwuaW4kIiwgY2lwaGVyX2ZpbGUpOgogICAgICAgICBjb250aW51ZQogICAg IG5jaCA9IEZhbHNlCi0gICAgaWYgcmUubWF0Y2ggKCIuKlwuW2NoXSQiLCBjaXBoZXJfZmlsZSk6 Ci0gICAgICAgIGlzYyA9IHJlLm1hdGNoICgiLipcLmMkIiwgY2lwaGVyX2ZpbGUpCisgICAgaWYg cmUubWF0Y2ggKHIiLipcLltjaF0kIiwgY2lwaGVyX2ZpbGUpOgorICAgICAgICBpc2MgPSByZS5t YXRjaCAociIuKlwuYyQiLCBjaXBoZXJfZmlsZSkKICAgICAgICAgZiA9IGNvZGVjcy5vcGVuIChp bmZpbGUsICJyIiwgInV0Zi04IikKICAgICAgICAgZncgPSBjb2RlY3Mub3BlbiAob3V0ZmlsZSwg InciLCAidXRmLTgiKQogICAgICAgICBmdy53cml0ZSAoIi8qIFRoaXMgZmlsZSB3YXMgYXV0b21h dGljYWxseSBpbXBvcnRlZCB3aXRoIFxuIikKICAgICAgICAgZncud3JpdGUgKCIgICBpbXBvcnRf Z2NyeS5weS4gUGxlYXNlIGRvbid0IG1vZGlmeSBpdCAqL1xuIikKLSAgICAgICAgZncud3JpdGUg KCIjaW5jbHVkZSA8Z3J1Yi9kbC5oPlxuIikKKyAgICAgICAgYWRkX2xpY2Vuc2UgPSBjaXBoZXJf ZmlsZSA9PSAicHVia2V5LXV0aWwuYyIgb3IgKGlzYyBhbmQgbm90IGNpcGhlcl9maWxlIGluIGV4 dHJhX2ZpbGVzX2xpc3QpCisgICAgICAgIGlmIGFkZF9saWNlbnNlOgorICAgICAgICAgICAgZncu d3JpdGUgKCIjaW5jbHVkZSA8Z3J1Yi9kbC5oPlxuIikKICAgICAgICAgaWYgY2lwaGVyX2ZpbGUg PT0gImNhbWVsbGlhLmgiOgogICAgICAgICAgICAgZncud3JpdGUgKCIjaW5jbHVkZSA8Z3J1Yi9t aXNjLmg+XG4iKQogICAgICAgICAgICAgZncud3JpdGUgKCJ2b2lkIGNhbWVsbGlhX3NldHVwMTI4 KGNvbnN0IHVuc2lnbmVkIGNoYXIgKmtleSwgZ3J1Yl91aW50MzJfdCAqc3Via2V5KTtcbiIpCkBA IC0xMzIsNyArMjA0LDcgQEAgZm9yIGNpcGhlcl9maWxlIGluIGNpcGhlcl9maWxlczoKICAgICAg ICAgICAgIGZ3LndyaXRlICgidm9pZCBjYW1lbGxpYV9kZWNyeXB0MjU2KGNvbnN0IGdydWJfdWlu dDMyX3QgKnN1YmtleSwgZ3J1Yl91aW50MzJfdCAqaW8pO1xuIikgICAgICAgICAgICAgICAgICAg ICAgCiAgICAgICAgICAgICBmdy53cml0ZSAoIiNkZWZpbmUgbWVtY3B5IGdydWJfbWVtY3B5XG4i KQogICAgICAgICAjIFdob2xlIGxpYmdjcnlwdCBpcyBkaXN0cmlidXRlZCB1bmRlciBHUEx2Mysg b3IgY29tcGF0aWJsZQotICAgICAgICBpZiBpc2M6CisgICAgICAgIGlmIGFkZF9saWNlbnNlOgog ICAgICAgICAgICAgZncud3JpdGUgKCJHUlVCX01PRF9MSUNFTlNFIChcIkdQTHYzK1wiKTtcbiIp CiAKICAgICAgICAgY2lwaGVybmFtZXMgPSBbXQpAQCAtMTQ4LDE0ICsyMjAsMTAgQEAgZm9yIGNp cGhlcl9maWxlIGluIGNpcGhlcl9maWxlczoKICAgICAgICAgaXNjaXBoZXIgPSBGYWxzZQogICAg ICAgICBpc2NyeXB0b3N0YXJ0ID0gRmFsc2UKICAgICAgICAgaXNjb21tYSA9IEZhbHNlCi0gICAg ICAgIGlzZ2x1ZSA9IEZhbHNlCiAgICAgICAgIHNraXBfc3RhdGVtZW50ID0gRmFsc2UKKyAgICAg ICAgc2tpcF9jb21tYSA9IEZhbHNlCiAgICAgICAgIGlmIGlzYzoKLSAgICAgICAgICAgIG1vZG5h bWUgPSBjaXBoZXJfZmlsZSBbMDpsZW4oY2lwaGVyX2ZpbGUpIC0gMl0KLSAgICAgICAgICAgIGlm IHJlLm1hdGNoICgiLiotZ2x1ZSQiLCBtb2RuYW1lKToKLSAgICAgICAgICAgICAgICBtb2RuYW1l ID0gbW9kbmFtZS5yZXBsYWNlICgiLWdsdWUiLCAiIikKLSAgICAgICAgICAgICAgICBpc2dsdWUg PSBUcnVlCi0gICAgICAgICAgICBtb2RuYW1lID0gImdjcnlfJXMiICUgbW9kbmFtZQorICAgICAg ICAgICAgbW9kbmFtZSA9ICJnY3J5XyVzIiAlIHJlbW92ZXN1ZmZpeChyZW1vdmVzdWZmaXgoY2lw aGVyX2ZpbGUsICIuYyIpLCAiLWdsdWUiKS5yZXBsYWNlKCItIiwgIl8iKQogICAgICAgICBmb3Ig bGluZSBpbiBmOgogICAgICAgICAgICAgbGluZSA9IGxpbmUKICAgICAgICAgICAgIGlmIHNraXBf c3RhdGVtZW50OgpAQCAtMTcxLDcgKzIzOSw3IEBAIGZvciBjaXBoZXJfZmlsZSBpbiBjaXBoZXJf ZmlsZXM6CiAgICAgICAgICAgICAgICAgICAgIHNraXAyID0gRmFsc2UKICAgICAgICAgICAgICAg ICBjb250aW51ZQogICAgICAgICAgICAgaWYgaXNjcnlwdG9zdGFydDoKLSAgICAgICAgICAgICAg ICBzID0gcmUuc2VhcmNoICgiICpcIihbQS1aMC05X2Etel0qKVwiIiwgbGluZSkKKyAgICAgICAg ICAgICAgICBzID0gcmUuc2VhcmNoICgiICpcIihbQS1aMC05X2Etei1dKilcIiIsIGxpbmUpCiAg ICAgICAgICAgICAgICAgaWYgbm90IHMgaXMgTm9uZToKICAgICAgICAgICAgICAgICAgICAgc2cg PSBzLmdyb3VwcygpWzBdCiAgICAgICAgICAgICAgICAgICAgIGNyeXB0b2xpc3Qud3JpdGUgKCgi JXM6ICVzXG4iKSAlIChzZywgbW9kbmFtZSkpCkBAIC0yMDEsNyArMjY5LDcgQEAgZm9yIGNpcGhl cl9maWxlIGluIGNpcGhlcl9maWxlczoKICAgICAgICAgICAgICAgICAgICAgaXNwayA9IEZhbHNl CiAgICAgICAgICAgICAgICAgaXNjb21tYSA9IG5vdCByZS5zZWFyY2ggKCIsJCIsIGxpbmUpIGlz IE5vbmUKICAgICAgICAgICAgICMgVXNlZCBvbmx5IGZvciBzZWxmdGVzdHMuCi0gICAgICAgICAg ICBtID0gcmUubWF0Y2ggKCIoc3RhdGljIGJ5dGV8c3RhdGljIHVuc2lnbmVkIGNoYXIpICh3ZWFr X2tleXNfY2hrc3VtKVxbWzAtOV0qXF0gPSIsIGxpbmUpCisgICAgICAgICAgICBtID0gcmUubWF0 Y2ggKHIiKHN0YXRpYyBieXRlfHN0YXRpYyB1bnNpZ25lZCBjaGFyfHN0YXRpYyBjb25zdCBnY3J5 X21kX3NwZWNfdCBcKiBjb25zdCkgKHdlYWtfa2V5c19jaGtzdW18ZGlnZXN0X2xpc3QpXFtbMC05 XSpcXSA9IiwgbGluZSkKICAgICAgICAgICAgIGlmIG5vdCBtIGlzIE5vbmU6CiAgICAgICAgICAg ICAgICAgc2tpcCA9IDEKICAgICAgICAgICAgICAgICBmbmFtZSA9IG0uZ3JvdXBzICgpWzFdCkBA IC0yMTIsMTEgKzI4MCwxNSBAQCBmb3IgY2lwaGVyX2ZpbGUgaW4gY2lwaGVyX2ZpbGVzOgogICAg ICAgICAgICAgICAgICAgICBjaGxvZ25ldyA9ICIlcyAlcyIgJSAoY2hsb2duZXcsIGNobXNnKQog ICAgICAgICAgICAgICAgICAgICBuY2ggPSBUcnVlCiAgICAgICAgICAgICAgICAgY29udGludWUK KyAgICAgICAgICAgIGlmIChub3QgaG9sZCkgYW5kIChyZS5tYXRjaCAociJbIFx0XSoocnVuX3Nl bGZ0ZXN0c3xkb190cmlwbGVkZXNfc2V0X2V4dHJhX2luZm8pLD8iLCBsaW5lKSBpcyBub3QgTm9u ZSk6CisgICAgICAgICAgICAgICAgaXNjb21tYSA9IFRydWUKKyAgICAgICAgICAgICAgICBsaW5l ID0gIiIKICAgICAgICAgICAgIGlmIGhvbGQ6CiAgICAgICAgICAgICAgICAgaG9sZCA9IEZhbHNl CiAgICAgICAgICAgICAgICAgIyBXZSdyZSBvcHRpbWlzaW5nIGZvciBzaXplIGFuZCBleGNsdWRl IGFueXRoaW5nIG5lZWRpbmcgZ29vZAogICAgICAgICAgICAgICAgICMgcmFuZG9tbmVzcy4KLSAg ICAgICAgICAgICAgICBpZiBub3QgcmUubWF0Y2ggKCIocnVuX3NlbGZ0ZXN0c3xzZWxmdGVzdHxf Z2NyeV9hZXNfYy4uXy4uY3xfZ2NyeV9bYS16MC05XSpfaGFzaF9idWZmZXJ8dHJpcGxlZGVzX3Nl dDJrZXlzfGRvX3RyaXBsZWRlc19zZXRfZXh0cmFfaW5mb3xfZ2NyeV9ybWQxNjBfbWl4YmxvY2t8 c2VycGVudF90ZXN0fGRzYV9nZW5lcmF0ZV9leHR8dGVzdF9rZXlzfGdlbl9rfHNpZ258Z2VuX3g5 MzFfcGFybV94cHxnZW5lcmF0ZV94OTMxfGdlbmVyYXRlX2tleXxkc2FfZ2VuZXJhdGV8ZHNhX3Np Z258ZWNjX3NpZ258Z2VuZXJhdGV8Z2VuZXJhdGVfZmlwczE4NnxfZ2NyeV9yZWdpc3Rlcl9wa19k c2FfcHJvZ3Jlc3N8X2djcnlfcmVnaXN0ZXJfcGtfZWNjX3Byb2dyZXNzfHByb2dyZXNzfHNjYW52 YWx8ZWMyb3N8ZWNjX2dlbmVyYXRlX2V4dHxlY2NfZ2VuZXJhdGV8Y29tcHV0ZV9rZXlncmlwfGVj Y19nZXRfcGFyYW18X2djcnlfcmVnaXN0ZXJfcGtfZHNhX3Byb2dyZXNzfGdlbl94OTMxX3Bhcm1f eHB8Z2VuX3g5MzFfcGFybV94aXxyc2FfZGVjcnlwdHxyc2Ffc2lnbnxyc2FfZ2VuZXJhdGVfZXh0 fHJzYV9nZW5lcmF0ZXxzZWNyZXR8Y2hlY2tfZXhwb25lbnR8cnNhX2JsaW5kfHJzYV91bmJsaW5k fGV4dHJhY3RfYV9mcm9tX3NleHB8Y3VydmVfZnJlZXxjdXJ2ZV9jb3B5fHBvaW50X3NldCkiLCBs aW5lKSBpcyBOb25lOgorICAgICAgICAgICAgICAgICMgVE9ETzogU3VwcG9ydCBzaGFrZTIrcnNh IChOZWVkcyBtZF9leHRyYWN0KQorICAgICAgICAgICAgICAgIGlmIHJlLm1hdGNoICgiKF9nY3J5 X2hhc2hfc2VsZnRlc3RfY2hlY2tfb25lfGJ1bGtfc2VsZnRlc3Rfc2V0a2V5fHJ1bl9zZWxmdGVz dHN8ZG9fdHJpcGxlZGVzX3NldF9leHRyYV9pbmZvfHNlbGZ0ZXN0fHNtNF9zZWxmdGVzdHxjc2hh a2VfaGFzaF9idWZmZXJzfF9nY3J5X1thLXowLTlfXSpfaGFzaF9idWZmZXJzfF9nY3J5X3NoYTFf aGFzaF9idWZmZXJ8dHJpcGxlZGVzX3NldDJrZXlzfF9nY3J5X3JtZDE2MF9taXhibG9ja3xzZXJw ZW50X3Rlc3R8ZHNhX2dlbmVyYXRlX2V4dHx0ZXN0X2tleXN8Z2VuX2t8c2lnbnxnZW5feDkzMV9w YXJtX3hwfGdlbmVyYXRlX3g5MzF8Z2VuZXJhdGVfa2V5fGRzYV9nZW5lcmF0ZXxkc2Ffc2lnbnxl Y2Nfc2lnbnxnZW5lcmF0ZXxnZW5lcmF0ZV9maXBzMTg2fF9nY3J5X3JlZ2lzdGVyX3BrX2RzYV9w cm9ncmVzc3xfZ2NyeV9yZWdpc3Rlcl9wa19lY2NfcHJvZ3Jlc3N8cHJvZ3Jlc3N8c2NhbnZhbHxl YzJvc3xlY2NfZ2VuZXJhdGVfZXh0fGVjY19nZW5lcmF0ZXxlY2NfZ2V0X3BhcmFtfF9nY3J5X3Jl Z2lzdGVyX3BrX2RzYV9wcm9ncmVzc3xnZW5feDkzMV9wYXJtX3hwfGdlbl94OTMxX3Bhcm1feGl8 cnNhX2RlY3J5cHR8cnNhX3NpZ258cnNhX2dlbmVyYXRlX2V4dHxyc2FfZ2VuZXJhdGV8c2VjcmV0 fGNoZWNrX2V4cG9uZW50fHJzYV9ibGluZHxyc2FfdW5ibGluZHxleHRyYWN0X2FfZnJvbV9zZXhw fGN1cnZlX2ZyZWV8Y3VydmVfY29weXxwb2ludF9zZXR8X2djcnlfZHNhX2dlbl9yZmM2OTc5X2t8 Yml0czJvY3RldHN8aW50Mm9jdGV0c3xtZF9leHRyYWN0fF9nY3J5X21kX2RlYnVnfF9nY3J5X21k X3NlbGZ0ZXN0fF9nY3J5X21kX2lzX2VuYWJsZWR8X2djcnlfbWRfaXNfc2VjdXJlfF9nY3J5X21k X2luaXR8X2djcnlfbWRfaW5mb3xfZ2NyeV9tZF9nZXRfYWxnbyB8bWRfZ2V0X2FsZ28gfF9nY3J5 X21kX2dldCB8X2djcnlfbWRfZXh0cmFjdHxfZ2NyeV9tZF9zZXRrZXl8bWRfc2V0a2V5fHByZXBh cmVfbWFjcGFkc3xfZ2NyeV9tZF9hbGdvX25hbWV8c2VhcmNoX29pZHxzcGVjX2Zyb21fb2lkfHNw ZWNfZnJvbV9uYW1lfHNwZWNfZnJvbV9hbGdvfG1hcF9hbGdvfF9nY3J5X2NzaGFrZV9jdXN0b21p emV8Y3NoYWtlX2lucHV0X1tzbl0pIiwgbGluZSkgaXMgbm90IE5vbmU6CiAKICAgICAgICAgICAg ICAgICAgICAgc2tpcCA9IDEKICAgICAgICAgICAgICAgICAgICAgaWYgbm90IHJlLm1hdGNoICgi c2VsZnRlc3QiLCBsaW5lKSBpcyBOb25lIGFuZCBjaXBoZXJfZmlsZSA9PSAiaWRlYS5jIjoKQEAg LTIyNCw2ICsyOTYsMTEgQEAgZm9yIGNpcGhlcl9maWxlIGluIGNpcGhlcl9maWxlczoKIAogICAg ICAgICAgICAgICAgICAgICBpZiBub3QgcmUubWF0Y2ggKCJzZXJwZW50X3Rlc3QiLCBsaW5lKSBp cyBOb25lOgogICAgICAgICAgICAgICAgICAgICAgICAgZncud3JpdGUgKCJzdGF0aWMgY29uc3Qg Y2hhciAqc2VycGVudF90ZXN0ICh2b2lkKSB7IHJldHVybiAwOyB9XG4iKTsKKyAgICAgICAgICAg ICAgICAgICAgaWYgbm90IHJlLm1hdGNoICgic200X3NlbGZ0ZXN0IiwgbGluZSkgaXMgTm9uZToK KyAgICAgICAgICAgICAgICAgICAgICAgIGZ3LndyaXRlICgic3RhdGljIGNvbnN0IGNoYXIgKnNt NF9zZWxmdGVzdCAodm9pZCkgeyByZXR1cm4gMDsgfVxuIik7CisgICAgICAgICAgICAgICAgICAg IGhhc2hfYnVmID0gcmUubWF0Y2ggKCIoX2djcnlfW2EtejAtOV9dKl9oYXNoX2J1ZmZlcnMpIiwg bGluZSkKKyAgICAgICAgICAgICAgICAgICAgaWYgaGFzaF9idWYgaXMgbm90IE5vbmU6CisgICAg ICAgICAgICAgICAgICAgICAgICBmdy53cml0ZSAoIiNkZWZpbmUgJXMgMCIgJSAoaGFzaF9idWYu Z3JvdXAoMCkpKQogICAgICAgICAgICAgICAgICAgICBpZiBub3QgcmUubWF0Y2ggKCJkc2FfZ2Vu ZXJhdGUiLCBsaW5lKSBpcyBOb25lOgogICAgICAgICAgICAgICAgICAgICAgICAgZncud3JpdGUg KCIjZGVmaW5lIGRzYV9nZW5lcmF0ZSAwIik7CiAgICAgICAgICAgICAgICAgICAgIGlmIG5vdCBy ZS5tYXRjaCAoImVjY19nZW5lcmF0ZSIsIGxpbmUpIGlzIE5vbmU6CkBAIC0yMzgsNiArMzE1LDEw IEBAIGZvciBjaXBoZXJfZmlsZSBpbiBjaXBoZXJfZmlsZXM6CiAgICAgICAgICAgICAgICAgICAg ICAgICBmdy53cml0ZSAoIiNkZWZpbmUgZHNhX3NpZ24gMCIpOwogICAgICAgICAgICAgICAgICAg ICBpZiBub3QgcmUubWF0Y2ggKCJlY2Nfc2lnbiIsIGxpbmUpIGlzIE5vbmU6CiAgICAgICAgICAg ICAgICAgICAgICAgICBmdy53cml0ZSAoIiNkZWZpbmUgZWNjX3NpZ24gMCIpOworICAgICAgICAg ICAgICAgICAgICBpZiBub3QgcmUubWF0Y2ggKCJzZWFyY2hfb2lkIiwgbGluZSkgaXMgTm9uZToK KyAgICAgICAgICAgICAgICAgICAgICAgIGZ3LndyaXRlICgiI2RlZmluZSBzZWFyY2hfb2lkKGEs YikgZ3J1Yl9jcnlwdG9fbG9va3VwX21kX2J5X29pZChhKSIpCisgICAgICAgICAgICAgICAgICAg IGlmIG5vdCByZS5tYXRjaCAoInNwZWNfZnJvbV9uYW1lIiwgbGluZSkgaXMgTm9uZToKKyAgICAg ICAgICAgICAgICAgICAgICAgIGZ3LndyaXRlICgiI2RlZmluZSBzcGVjX2Zyb21fbmFtZSBncnVi X2NyeXB0b19sb29rdXBfbWRfYnlfbmFtZSIpCiAgICAgICAgICAgICAgICAgICAgIGZuYW1lID0g cmUubWF0Y2ggKCJbYS16QS1aMC05X10qIiwgbGluZSkuZ3JvdXAgKCkKICAgICAgICAgICAgICAg ICAgICAgY2htc2cgPSAiKCVzKTogUmVtb3ZlZC4iICUgZm5hbWUKICAgICAgICAgICAgICAgICAg ICAgaWYgbmNoOgpAQCAtMjU3LDQ1ICszMzgsNDYgQEAgZm9yIGNpcGhlcl9maWxlIGluIGNpcGhl cl9maWxlczoKICAgICAgICAgICAgICAgICAgICAgY2hsb2duZXcgPSAiJXM6ICVzIiAlIChjaGxv Z25ldywgY2htc2cpCiAgICAgICAgICAgICAgICAgICAgIG5jaCA9IFRydWUKICAgICAgICAgICAg ICAgICBjb250aW51ZQotICAgICAgICAgICAgbSA9IHJlLm1hdGNoICgiZ2NyeV9jaXBoZXJfc3Bl Y190IiwgbGluZSkKKyAgICAgICAgICAgIG0gPSByZS5tYXRjaCAoIihjb25zdCApP2djcnlfY2lw aGVyX3NwZWNfdCIsIGxpbmUpCiAgICAgICAgICAgICBpZiBpc2MgYW5kIG5vdCBtIGlzIE5vbmU6 CiAgICAgICAgICAgICAgICAgYXNzZXJ0IChub3QgaXNtZCkKICAgICAgICAgICAgICAgICBhc3Nl cnQgKG5vdCBpc3BrKQogICAgICAgICAgICAgICAgIGFzc2VydCAobm90IGlzY2lwaGVyKQogICAg ICAgICAgICAgICAgIGFzc2VydCAobm90IGlzY3J5cHRvc3RhcnQpCi0gICAgICAgICAgICAgICAg Y2lwaGVybmFtZSA9IGxpbmUgW2xlbiAoImdjcnlfY2lwaGVyX3NwZWNfdCIpOl0uc3RyaXAgKCkK KyAgICAgICAgICAgICAgICBjaXBoZXJuYW1lID0gcmVtb3ZlcHJlZml4KHJlbW92ZXByZWZpeChs aW5lLCAiY29uc3QgIiksICJnY3J5X2NpcGhlcl9zcGVjX3QiKS5zdHJpcCAoKQogICAgICAgICAg ICAgICAgIGNpcGhlcm5hbWUgPSByZS5tYXRjaCgiW2EtekEtWjAtOV9dKiIsY2lwaGVybmFtZSku Z3JvdXAgKCkKICAgICAgICAgICAgICAgICBjaXBoZXJuYW1lcy5hcHBlbmQgKGNpcGhlcm5hbWUp CiAgICAgICAgICAgICAgICAgaXNjaXBoZXIgPSBUcnVlCiAgICAgICAgICAgICAgICAgaXNjcnlw dG9zdGFydCA9IFRydWUKIAotICAgICAgICAgICAgbSA9IHJlLm1hdGNoICgiZ2NyeV9wa19zcGVj X3QiLCBsaW5lKQorICAgICAgICAgICAgbSA9IHJlLm1hdGNoICgiKGNvbnN0ICk/Z2NyeV9wa19z cGVjX3QiLCBsaW5lKQogICAgICAgICAgICAgaWYgaXNjIGFuZCBub3QgbSBpcyBOb25lOgogICAg ICAgICAgICAgICAgIGFzc2VydCAobm90IGlzbWQpCiAgICAgICAgICAgICAgICAgYXNzZXJ0IChu b3QgaXNwaykKICAgICAgICAgICAgICAgICBhc3NlcnQgKG5vdCBpc2NpcGhlcikKICAgICAgICAg ICAgICAgICBhc3NlcnQgKG5vdCBpc2NyeXB0b3N0YXJ0KQotICAgICAgICAgICAgICAgIHBrbmFt ZSA9IGxpbmUgW2xlbiAoImdjcnlfcGtfc3BlY190Iik6XS5zdHJpcCAoKQorICAgICAgICAgICAg ICAgIHBrbmFtZSA9IHJlbW92ZXByZWZpeChyZW1vdmVwcmVmaXgobGluZSwgImNvbnN0ICIpLCAi Z2NyeV9wa19zcGVjX3QiKS5zdHJpcCAoKQogICAgICAgICAgICAgICAgIHBrbmFtZSA9IHJlLm1h dGNoKCJbYS16QS1aMC05X10qIixwa25hbWUpLmdyb3VwICgpCiAgICAgICAgICAgICAgICAgcGtu YW1lcy5hcHBlbmQgKHBrbmFtZSkKICAgICAgICAgICAgICAgICBpc3BrID0gVHJ1ZQogICAgICAg ICAgICAgICAgIGlzY3J5cHRvc3RhcnQgPSBUcnVlCiAKLSAgICAgICAgICAgIG0gPSByZS5tYXRj aCAoImdjcnlfbWRfc3BlY190IiwgbGluZSkKKyAgICAgICAgICAgIG0gPSByZS5tYXRjaCAoIihj b25zdCApP2djcnlfbWRfc3BlY190IiwgbGluZSkKICAgICAgICAgICAgIGlmIGlzYyBhbmQgbm90 IG0gaXMgTm9uZToKICAgICAgICAgICAgICAgICBhc3NlcnQgKG5vdCBpc21kKQogICAgICAgICAg ICAgICAgIGFzc2VydCAobm90IGlzcGspCiAgICAgICAgICAgICAgICAgYXNzZXJ0IChub3QgaXNj aXBoZXIpCiAgICAgICAgICAgICAgICAgYXNzZXJ0IChub3QgaXNjcnlwdG9zdGFydCkKLSAgICAg ICAgICAgICAgICBtZG5hbWUgPSBsaW5lIFtsZW4gKCJnY3J5X21kX3NwZWNfdCIpOl0uc3RyaXAg KCkKKyAgICAgICAgICAgICAgICBsaW5lID0gcmVtb3ZlcHJlZml4KGxpbmUsICJjb25zdCAiKQor ICAgICAgICAgICAgICAgIG1kbmFtZSA9IHJlbW92ZXByZWZpeChyZW1vdmVwcmVmaXgobGluZSwg ImNvbnN0ICIpLCAiZ2NyeV9tZF9zcGVjX3QiKS5zdHJpcCAoKQogICAgICAgICAgICAgICAgIG1k bmFtZSA9IHJlLm1hdGNoKCJbYS16QS1aMC05X10qIixtZG5hbWUpLmdyb3VwICgpCiAgICAgICAg ICAgICAgICAgbWRuYW1lcy5hcHBlbmQgKG1kbmFtZSkKICAgICAgICAgICAgICAgICBpc21kID0g VHJ1ZQogICAgICAgICAgICAgICAgIG1kYXJnID0gMAogICAgICAgICAgICAgICAgIGlzY3J5cHRv c3RhcnQgPSBUcnVlCi0gICAgICAgICAgICBtID0gcmUubWF0Y2ggKCJzdGF0aWMgY29uc3QgY2hh ciBcKnNlbGZ0ZXN0Lio7JCIsIGxpbmUpCisgICAgICAgICAgICBtID0gcmUubWF0Y2ggKHIic3Rh dGljIGNvbnN0IGNoYXIgXCpzZWxmdGVzdC4qOyQiLCBsaW5lKQogICAgICAgICAgICAgaWYgbm90 IG0gaXMgTm9uZToKLSAgICAgICAgICAgICAgICBmbmFtZSA9IGxpbmVbbGVuICgic3RhdGljIGNv bnN0IGNoYXIgXCoiKTpdCisgICAgICAgICAgICAgICAgZm5hbWUgPSBsaW5lW2xlbiAociJzdGF0 aWMgY29uc3QgY2hhciBcKiIpOl0KICAgICAgICAgICAgICAgICBmbmFtZSA9IHJlLm1hdGNoICgi W2EtekEtWjAtOV9dKiIsIGZuYW1lKS5ncm91cCAoKQogICAgICAgICAgICAgICAgIGNobXNnID0g Iiglcyk6IFJlbW92ZWQgZGVjbGFyYXRpb24uIiAlIGZuYW1lCiAgICAgICAgICAgICAgICAgaWYg bmNoOgpAQCAtMzMxLDcgKzQxMyw3IEBAIGZvciBjaXBoZXJfZmlsZSBpbiBjaXBoZXJfZmlsZXM6 CiAgICAgICAgICAgICAgICAgICAgIGNobG9nbmV3ID0gIiVzICVzIiAlIChjaGxvZ25ldywgY2ht c2cpCiAgICAgICAgICAgICAgICAgICAgIG5jaCA9IFRydWUKICAgICAgICAgICAgICAgICBjb250 aW51ZQotICAgICAgICAgICAgbSA9IHJlLm1hdGNoICgic3RhdGljIHZvaWQgXChcKnByb2dyZXNz X2NiXCkuKjskIiwgbGluZSkKKyAgICAgICAgICAgIG0gPSByZS5tYXRjaCAociJzdGF0aWMgdm9p ZCBcKFwqcHJvZ3Jlc3NfY2JcKS4qOyQiLCBsaW5lKQogICAgICAgICAgICAgaWYgbm90IG0gaXMg Tm9uZToKICAgICAgICAgICAgICAgICBjaG1zZyA9ICIocHJvZ3Jlc3NfY2IpOiBSZW1vdmVkIGRl Y2xhcmF0aW9uLiIKICAgICAgICAgICAgICAgICBpZiBuY2g6CkBAIC0zNDAsNyArNDIyLDcgQEAg Zm9yIGNpcGhlcl9maWxlIGluIGNpcGhlcl9maWxlczoKICAgICAgICAgICAgICAgICAgICAgY2hs b2duZXcgPSAiJXMgJXMiICUgKGNobG9nbmV3LCBjaG1zZykKICAgICAgICAgICAgICAgICAgICAg bmNoID0gVHJ1ZQogICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBtID0gcmUu bWF0Y2ggKCJzdGF0aWMgdm9pZCBcKnByb2dyZXNzX2NiX2RhdGEuKjskIiwgbGluZSkKKyAgICAg ICAgICAgIG0gPSByZS5tYXRjaCAociJzdGF0aWMgdm9pZCBcKnByb2dyZXNzX2NiX2RhdGEuKjsk IiwgbGluZSkKICAgICAgICAgICAgIGlmIG5vdCBtIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAg Y2htc2cgPSAiKHByb2dyZXNzX2NiKTogUmVtb3ZlZCBkZWNsYXJhdGlvbi4iCiAgICAgICAgICAg ICAgICAgaWYgbmNoOgpAQCAtMzUwLDIyICs0MzIsMjIgQEAgZm9yIGNpcGhlcl9maWxlIGluIGNp cGhlcl9maWxlczoKICAgICAgICAgICAgICAgICAgICAgbmNoID0gVHJ1ZQogICAgICAgICAgICAg ICAgIGNvbnRpbnVlCiAKLSAgICAgICAgICAgIG0gPSByZS5tYXRjaCAoIihzdGF0aWMgY29uc3Qg Y2hhciggfClcKnxzdGF0aWMgZ3BnX2Vycl9jb2RlX3R8dm9pZHxzdGF0aWMgaW50fHN0YXRpYyBn Y3J5X2Vycl9jb2RlX3R8c3RhdGljIGdjcnlfbXBpX3R8c3RhdGljIHZvaWR8dm9pZHxzdGF0aWMg ZWxsaXB0aWNfY3VydmVfdCkgKiQiLCBsaW5lKQorICAgICAgICAgICAgbSA9IHJlLm1hdGNoIChy Iigoc3RhdGljICk/Y29uc3QgY2hhciggfClcKnxzdGF0aWMgY29uc3QgZ2NyeV9tZF9zcGVjX3Qg XCp8KHN0YXRpYyApP2dwZ19lcnJfY29kZV90fGdwZ19lcnJvcl90fHZvaWR8KHN0YXRpYyApPyh1 bnNpZ25lZCApP2ludHwoc3RhdGljICk/Z2NyeV9lcnJfY29kZV90fHN0YXRpYyBnY3J5X21waV90 fHN0YXRpYyB2b2lkfHZvaWR8c3RhdGljIGVsbGlwdGljX2N1cnZlX3QpICokIiwgbGluZSkKICAg ICAgICAgICAgIGlmIG5vdCBtIGlzIE5vbmU6CiAgICAgICAgICAgICAgICAgaG9sZCA9IFRydWUK ICAgICAgICAgICAgICAgICBob2xkbGluZSA9IGxpbmUKICAgICAgICAgICAgICAgICBjb250aW51 ZQotICAgICAgICAgICAgbSA9IHJlLm1hdGNoICgic3RhdGljIGludCB0cmlwbGVkZXNfc2V0Mmtl eXMgXCguKlwpOyIsIGxpbmUpCisgICAgICAgICAgICBtID0gcmUubWF0Y2ggKHIic3RhdGljIGlu dCB0cmlwbGVkZXNfc2V0MmtleXMgXCguKlwpOyIsIGxpbmUpCiAgICAgICAgICAgICBpZiBub3Qg bSBpcyBOb25lOgogICAgICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBtID0gcmUu bWF0Y2ggKCJzdGF0aWMgaW50IHRyaXBsZWRlc19zZXQza2V5cyBcKC4qXCk7IiwgbGluZSkKKyAg ICAgICAgICAgIG0gPSByZS5tYXRjaCAociJzdGF0aWMgaW50IHRyaXBsZWRlc19zZXQza2V5cyBc KC4qXCk7IiwgbGluZSkKICAgICAgICAgICAgIGlmIG5vdCBtIGlzIE5vbmU6CiAgICAgICAgICAg ICAgICAgY29udGludWUKLSAgICAgICAgICAgIG0gPSByZS5tYXRjaCAoInN0YXRpYyBpbnQgdHJp cGxlZGVzX3NldDJrZXlzIFwoIiwgbGluZSkKKyAgICAgICAgICAgIG0gPSByZS5tYXRjaCAociJz dGF0aWMgaW50IHRyaXBsZWRlc19zZXQya2V5cyBcKCIsIGxpbmUpCiAgICAgICAgICAgICBpZiBu b3QgbSBpcyBOb25lOgogICAgICAgICAgICAgICAgIHNraXBfc3RhdGVtZW50ID0gVHJ1ZQogICAg ICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgICAgICBtID0gcmUubWF0Y2ggKCJzdGF0aWMg aW50IHRyaXBsZWRlc19zZXQza2V5cyBcKCIsIGxpbmUpCisgICAgICAgICAgICBtID0gcmUubWF0 Y2ggKHIic3RhdGljIGludCB0cmlwbGVkZXNfc2V0M2tleXMgXCgiLCBsaW5lKQogICAgICAgICAg ICAgaWYgbm90IG0gaXMgTm9uZToKICAgICAgICAgICAgICAgICBza2lwX3N0YXRlbWVudCA9IFRy dWUKICAgICAgICAgICAgICAgICBjb250aW51ZQpAQCAtNDIxLDExICs1MDMsOSBAQCBmb3IgY2lw aGVyX2ZpbGUgaW4gY2lwaGVyX2ZpbGVzOgogICAgICAgICAgICAgICAgIGNvbnRpbnVlCiAgICAg ICAgICAgICBmdy53cml0ZSAobGluZSkKICAgICAgICAgaWYgbGVuIChjaXBoZXJuYW1lcykgPiAw IG9yIGxlbiAobWRuYW1lcykgPiAwIG9yIGxlbiAocGtuYW1lcykgPiAwOgotICAgICAgICAgICAg aWYgaXNnbHVlOgotICAgICAgICAgICAgICAgIG1vZGZpbGVzID0gImxpYi9saWJnY3J5cHQtZ3J1 Yi9jaXBoZXIvJXMgbGliL2xpYmdjcnlwdC1ncnViL2NpcGhlci8lcyIgXAotICAgICAgICAgICAg ICAgICAgICAlIChjaXBoZXJfZmlsZSwgY2lwaGVyX2ZpbGUucmVwbGFjZSAoIi1nbHVlLmMiLCAi LmMiKSkKLSAgICAgICAgICAgIGVsc2U6Ci0gICAgICAgICAgICAgICAgbW9kZmlsZXMgPSAibGli L2xpYmdjcnlwdC1ncnViL2NpcGhlci8lcyIgJSBjaXBoZXJfZmlsZQorICAgICAgICAgICAgbW9k ZmlsZXMgPSBbY2lwaGVyX2ZpbGVdCisgICAgICAgICAgICBpZiBtb2RuYW1lIGluIGV4dHJhX2Zp bGVzLmtleXMoKToKKyAgICAgICAgICAgICAgICBtb2RmaWxlcyArPSBleHRyYV9maWxlc1ttb2Ru YW1lXQogICAgICAgICAgICAgaWYgbGVuIChjaXBoZXJuYW1lcykgPiAwIG9yIGxlbiAobWRuYW1l cykgPiAwOgogICAgICAgICAgICAgICAgIG1vZHVsZXNfc3ltX21kLmFwcGVuZCAobW9kbmFtZSkK ICAgICAgICAgICAgIGNobXNnID0gIihHUlVCX01PRF9JTklUKCVzKSk6IE5ldyBmdW5jdGlvblxu IiAlIG1vZG5hbWUKQEAgLTQ0Nyw3ICs1MjcsNyBAQCBmb3IgY2lwaGVyX2ZpbGUgaW4gY2lwaGVy X2ZpbGVzOgogICAgICAgICAgICAgICAgIGNobG9nbmV3ID0gIiVzXG4JJXMiICUgKGNobG9nbmV3 LCBjaG1zZykKICAgICAgICAgICAgICAgICBmdy53cml0ZSAoIiAgZ3J1Yl9tZF9yZWdpc3RlciAo JiVzKTtcbiIgJSBtZG5hbWUpCiAgICAgICAgICAgICBmb3IgcGtuYW1lIGluIHBrbmFtZXM6Ci0g ICAgICAgICAgICAgICAgY2htc2cgPSAiUmVnaXN0ZXIgcGsgJXMiICUgbWRuYW1lCisgICAgICAg ICAgICAgICAgY2htc2cgPSAiUmVnaXN0ZXIgcGsgJXMiICUgcGtuYW1lCiAgICAgICAgICAgICAg ICAgY2hsb2duZXcgPSAiJXNcbgklcyIgJSAoY2hsb2duZXcsIGNobXNnKQogICAgICAgICAgICAg ICAgIGZ3LndyaXRlICgiICBncnViX2NyeXB0b19wa18lcyA9ICYlcztcbiIKICAgICAgICAgICAg ICAgICAgICAgICAgICAgJSAocGtuYW1lLnJlcGxhY2UgKCJfZ2NyeV9wdWJrZXlfc3BlY18iLCAi IiksIHBrbmFtZSkpCkBAIC00NjUsMTcgKzU0NSwxNyBAQCBmb3IgY2lwaGVyX2ZpbGUgaW4gY2lw aGVyX2ZpbGVzOgogICAgICAgICAgICAgICAgIGNobG9nbmV3ID0gIiVzXG4JJXMiICUgKGNobG9n bmV3LCBjaG1zZykKICAgICAgICAgICAgICAgICBmdy53cml0ZSAoIiAgZ3J1Yl9tZF91bnJlZ2lz dGVyICgmJXMpO1xuIiAlIG1kbmFtZSkKICAgICAgICAgICAgIGZvciBwa25hbWUgaW4gcGtuYW1l czoKLSAgICAgICAgICAgICAgICBjaG1zZyA9ICJVbnJlZ2lzdGVyIHBrICVzIiAlIG1kbmFtZQor ICAgICAgICAgICAgICAgIGNobXNnID0gIlVucmVnaXN0ZXIgcGsgJXMiICUgcGtuYW1lCiAgICAg ICAgICAgICAgICAgY2hsb2duZXcgPSAiJXNcbgklcyIgJSAoY2hsb2duZXcsIGNobXNnKQogICAg ICAgICAgICAgICAgIGZ3LndyaXRlICgiICBncnViX2NyeXB0b19wa18lcyA9IDA7XG4iCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICUgKHBrbmFtZS5yZXBsYWNlICgiX2djcnlfcHVia2V5X3Nw ZWNfIiwgIiIpKSkKICAgICAgICAgICAgIGZ3LndyaXRlICgifVxuIikKICAgICAgICAgICAgIGNv bmYud3JpdGUgKCJtb2R1bGUgPSB7XG4iKQogICAgICAgICAgICAgY29uZi53cml0ZSAoIiAgbmFt ZSA9ICVzO1xuIiAlIG1vZG5hbWUpCi0gICAgICAgICAgICBmb3Igc3JjIGluIG1vZGZpbGVzLnNw bGl0KCk6Ci0gICAgICAgICAgICAgICAgY29uZi53cml0ZSAoIiAgY29tbW9uID0gJXM7XG4iICUg c3JjKQorICAgICAgICAgICAgZm9yIHNyYyBpbiBtb2RmaWxlczoKKyAgICAgICAgICAgICAgICBj b25mLndyaXRlICgiICBjb21tb24gPSBsaWIvbGliZ2NyeXB0LWdydWIvY2lwaGVyLyVzO1xuIiAl IHNyYykKICAgICAgICAgICAgICAgICBpZiBsZW4gKGNpcGhlcm5hbWVzKSA+IDAgb3IgbGVuICht ZG5hbWVzKSA+IDA6Ci0gICAgICAgICAgICAgICAgICAgIGNvbmZ1dGlsLndyaXRlICgiICBjb21t b24gPSBncnViLWNvcmUvJXM7XG4iICUgc3JjKQorICAgICAgICAgICAgICAgICAgICBjb25mdXRp bC53cml0ZSAoIiAgY29tbW9uID0gZ3J1Yi1jb3JlL2xpYi9saWJnY3J5cHQtZ3J1Yi9jaXBoZXIv JXM7XG4iICUgc3JjKQogICAgICAgICAgICAgaWYgbW9kbmFtZSA9PSAiZ2NyeV9lY2MiOgogICAg ICAgICAgICAgICAgIGNvbmYud3JpdGUgKCIgIGNvbW1vbiA9IGxpYi9saWJnY3J5cHQtZ3J1Yi9t cGkvZWMuYztcbiIpCiAgICAgICAgICAgICAgICAgY29uZi53cml0ZSAoIiAgY2ZsYWdzID0gJyQo Q0ZMQUdTX0dDUlkpIC1Xbm8tcmVkdW5kYW50LWRlY2xzIC1Xbm8tc2lnbi1jb21wYXJlJztcbiIp CkBAIC00OTAsNyArNTcwLDcgQEAgZm9yIGNpcGhlcl9maWxlIGluIGNpcGhlcl9maWxlczoKICAg ICAgICAgICAgIGZ3LmNsb3NlICgpCiAgICAgICAgICAgICBpZiBuY2g6CiAgICAgICAgICAgICAg ICAgY2hsb2cgPSAiJXMlc1xuIiAlIChjaGxvZywgY2hsb2duZXcpCi0gICAgICAgIGVsaWYgaXNj IGFuZCBjaXBoZXJfZmlsZSAhPSAiY2FtZWxsaWEuYyI6CisgICAgICAgIGVsaWYgaXNjIGFuZCBj aXBoZXJfZmlsZSBub3QgaW4gZXh0cmFfZmlsZXNfbGlzdDoKICAgICAgICAgICAgIHByaW50ICgi V0FSTklORzogQyBmaWxlIGlzbid0IGEgbW9kdWxlOiAlcyIgJSBjaXBoZXJfZmlsZSkKICAgICAg ICAgICAgIGYuY2xvc2UgKCkKICAgICAgICAgICAgIGZ3LmNsb3NlICgpCkBAIC01MTIsNyArNTky LDcgQEAgZm9yIHNyYyBpbiBzb3J0ZWQgKG9zLmxpc3RkaXIgKG9zLnBhdGguam9pbiAoaW5kaXIs ICJzcmMiKSkpOgogICAgICAgICAgICAgb3Igc3JjID09ICJsaWJnY3J5cHQudmVycyIgb3Igc3Jj ID09ICJNYWtlZmlsZS5hbSIgXAogICAgICAgICAgICAgb3Igc3JjID09ICJNYW5pZmVzdCIgb3Ig c3JjID09ICJtaXNjLmMiIFwKICAgICAgICAgICAgIG9yIHNyYyA9PSAibWlzc2luZy1zdHJpbmcu YyIgb3Igc3JjID09ICJtb2R1bGUuYyIgXAotICAgICAgICAgICAgb3Igc3JjID09ICJzZWNtZW0u YyIgb3Igc3JjID09ICJzZXhwLmMiIFwKKyAgICAgICAgICAgIG9yIHNyYyA9PSAic2VjbWVtLmMi IFwKICAgICAgICAgICAgIG9yIHNyYyA9PSAic3RkbWVtLmMiIG9yIHNyYyA9PSAidmlzaWJpbGl0 eS5jIjoKICAgICAgICAgY29udGludWUKICAgICBvdXRmaWxlID0gb3MucGF0aC5qb2luIChiYXNl ZGlyLCAic3JjIiwgc3JjKQpAQCAtNTM0LDggKzYxNCwxNyBAQCBmb3Igc3JjIGluIHNvcnRlZCAo b3MubGlzdGRpciAob3MucGF0aC5qb2luIChpbmRpciwgInNyYyIpKSk6CiAgICAgICAgIGZ3LmNs b3NlICgpCiAgICAgICAgIGNvbnRpbnVlCiAKKyAgICBpZiBzcmMgPT0gImNpcGhlci1wcm90by5o IjoKKyAgICAgICAgZncud3JpdGUoIiNpbmNsdWRlIDxncnViL2NyeXB0by5oPlxuIikKKyAgICAg ICAgZncud3JpdGUoInR5cGVkZWYgZ2NyeV9zZWxmdGVzdF9mdW5jX3Qgc2VsZnRlc3RfZnVuY190 OyIpCisgICAgICAgIGYuY2xvc2UgKCkKKyAgICAgICAgZncuY2xvc2UgKCkKKyAgICAgICAgY29u dGludWUKKwogICAgIGlmIHNyYyA9PSAiZzEwbGliLmgiOgotICAgICAgICBmdy53cml0ZSAoZi5y ZWFkICgpLnJlcGxhY2UgKCIocHJpbnRmLGYsYSkiLCAiKF9fcHJpbnRmX18sZixhKSIpKQorICAg ICAgICBmdy53cml0ZSgiI2luY2x1ZGUgPGNpcGhlcl93cmFwLmg+XG4iKQorICAgICAgICBmdy53 cml0ZSgiI2luY2x1ZGUgPGdydWIvY3J5cHRvLmg+XG4iKQorICAgICAgICBmdy53cml0ZSAoZi5y ZWFkICgpLnJlcGxhY2UgKCIocHJpbnRmLGYsYSkiLCAiKF9fcHJpbnRmX18sZixhKSIpLnJlcGxh Y2UgKCIjaW5jbHVkZSBcIi4uL2NvbXBhdC9saWJjb21wYXQuaFwiIiwgIiIpLnJlcGxhY2UoIiNk ZWZpbmUgTl8oYSkgKGEpIiwgIiIpKQogICAgICAgICBmLmNsb3NlICgpCiAgICAgICAgIGZ3LmNs b3NlICgpCiAgICAgICAgIGNvbnRpbnVlCkBAIC01NDYsNyArNjM1LDcgQEAgZm9yIHNyYyBpbiBz b3J0ZWQgKG9zLmxpc3RkaXIgKG9zLnBhdGguam9pbiAoaW5kaXIsICJzcmMiKSkpOgogCiBmb3Ig c3JjIGluIHNvcnRlZCAob3MubGlzdGRpciAob3MucGF0aC5qb2luIChpbmRpciwgIm1waSIpKSk6 CiAgICAgaWYgc3JjID09ICJjb25maWcubGlua3MiIG9yIHNyYyA9PSAiQ2hhbmdlTG9nLTIwMTEi IFwKLSAgICAgICAgICAgIG9yIHNyYyA9PSAibXBpLXNjYW4uYyIgb3Igc3JjID09ICJNYW5pZmVz dCIgXAorICAgICAgICAgICAgb3Igc3JjID09ICJNYW5pZmVzdCIgXAogICAgICAgICAgICAgb3Ig c3JjID09ICJNYWtlZmlsZS5hbSI6CiAgICAgICAgIGNvbnRpbnVlCiAgICAgaW5maWxlID0gb3Mu cGF0aC5qb2luIChpbmRpciwgIm1waSIsIHNyYykKQEAgLTU2OCwxNyArNjU3LDE3IEBAIGZvciBz cmMgaW4gc29ydGVkIChvcy5saXN0ZGlyIChvcy5wYXRoLmpvaW4gKGluZGlyLCAibXBpIikpKToK ICAgICAgICAgICAgIGhvbGQgPSBGYWxzZQogICAgICAgICAgICAgIyBXZSdyZSBvcHRpbWlzaW5n IGZvciBzaXplIGFuZCBleGNsdWRlIGFueXRoaW5nIG5lZWRpbmcgZ29vZAogICAgICAgICAgICAg IyByYW5kb21uZXNzLgotICAgICAgICAgICAgaWYgbm90IHJlLm1hdGNoICgiKF9nY3J5X21waV9n ZXRfaHdfY29uZmlnfGdjcnlfbXBpX3JhbmRvbWl6ZSkiLCBsaW5lKSBpcyBOb25lOgorICAgICAg ICAgICAgaWYgbm90IHJlLm1hdGNoICgiKF9nY3J5X21waV9nZXRfaHdfY29uZmlnfGdjcnlfbXBp X3JhbmRvbWl6ZXxfZ2NyeV9tcGlfcmFuZG9taXplKSIsIGxpbmUpIGlzIE5vbmU6CiAgICAgICAg ICAgICAgICAgc2tpcCA9IDEKICAgICAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICAgICAg ZWxzZToKICAgICAgICAgICAgICAgICBmdy53cml0ZSAoaG9sZGxpbmUpCi0gICAgICAgIG0gPSBy ZS5tYXRjaCAoIihjb25zdCBjaGFyKCB8KVwqfHZvaWQpICokIiwgbGluZSkKKyAgICAgICAgbSA9 IHJlLm1hdGNoIChyIihjb25zdCBjaGFyKCB8KVwqfHZvaWQpICokIiwgbGluZSkKICAgICAgICAg aWYgbm90IG0gaXMgTm9uZToKICAgICAgICAgICAgIGhvbGQgPSBUcnVlCiAgICAgICAgICAgICBo b2xkbGluZSA9IGxpbmUKICAgICAgICAgICAgIGNvbnRpbnVlCi0gICAgICAgIG0gPSByZS5tYXRj aCAoIiNpbmNsdWRlIFwibW9kLXNvdXJjZS1pbmZvXC5oXCIiLCBsaW5lKQorICAgICAgICBtID0g cmUubWF0Y2ggKHIiI2luY2x1ZGUgXCJtb2Qtc291cmNlLWluZm9cLmhcIiIsIGxpbmUpCiAgICAg ICAgIGlmIG5vdCBtIGlzIE5vbmU6CiAgICAgICAgICAgICBjb250aW51ZQogICAgICAgICBmdy53 cml0ZSAobGluZSkKQEAgLTYxMiw5ICs3MDEsNiBAQCBmdy53cml0ZSAoIiNpbmNsdWRlIDxjaXBo ZXJfd3JhcC5oPlxuIikKIGNobG9nID0gIiVzCSogZzEwbGliLmg6IExpa2V3aXNlLlxuIiAlIGNo bG9nCiBmdy5jbG9zZSAoKQogCi1pbmZpbGUgPSBvcy5wYXRoLmpvaW4gKGNpcGhlcl9kaXJfaW4s ICJDaGFuZ2VMb2ciKQotb3V0ZmlsZSA9IG9zLnBhdGguam9pbiAoY2lwaGVyX2Rpcl9vdXQsICJD aGFuZ2VMb2ciKQotCiBjb25mLmNsb3NlICgpOwogCiBpbml0ZmlsZSA9IGNvZGVjcy5vcGVuIChv cy5wYXRoLmpvaW4gKGNpcGhlcl9kaXJfb3V0LCAiaW5pdC5jIiksICJ3IiwgInV0Zi04IikKQEAg LTY0Myw3ICs3MjksNyBAQCBjb25mdXRpbC53cml0ZSAoIn07XG4iKTsKIGNvbmZ1dGlsLmNsb3Nl ICgpOwogCiAKLWY9Y29kZWNzLm9wZW4gKGluZmlsZSwgInIiLCAidXRmLTgiKQorb3V0ZmlsZSA9 IG9zLnBhdGguam9pbiAoY2lwaGVyX2Rpcl9vdXQsICJDaGFuZ2VMb2ciKQogZnc9Y29kZWNzLm9w ZW4gKG91dGZpbGUsICJ3IiwgInV0Zi04IikKIGR0ID0gZGF0ZXRpbWUuZGF0ZS50b2RheSAoKQog Zncud3JpdGUgKCIlMDRkLSUwMmQtJTAyZCAgQXV0b21hdGljIGltcG9ydCB0b29sXG4iICUgXApA QCAtNjUzLDcgKzczOSw0IEBAIGZ3LndyaXRlICgiCUltcG9ydGVkIGNpcGhlcnMgdG8gR1JVQlxu IikKIGZ3LndyaXRlICgiXG4iKQogZncud3JpdGUgKGNobG9nKQogZncud3JpdGUgKCJcbiIpCi1m b3IgbGluZSBpbiBmOgotICAgIGZ3LndyaXRlIChsaW5lKQotZi5jbG9zZSAoKQogZncuY2xvc2Ug KCkKZGlmZiAtLWdpdCBhL3V0aWwvaW1wb3J0X2djcnlwdF9pbnRoLnNlZCBiL3V0aWwvaW1wb3J0 X2djcnlwdF9pbnRoLnNlZApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAuLmVi ZTkzNzFlZQotLS0gL2Rldi9udWxsCisrKyBiL3V0aWwvaW1wb3J0X2djcnlwdF9pbnRoLnNlZApA QCAtMCwwICsxLDE3IEBACisvXiNASU5TRVJUX1NZU19TRUxFQ1RfSEAvIGQKKy9eQEZBTExCQUNL X1NPQ0tMRU5fVEAvIGQKKy9eIyAqaW5jbHVkZSA8c3RkbGliXC5oPi8gZAorL14jICppbmNsdWRl IDxzdHJpbmdcLmg+LyBkCisvXiMgKmluY2x1ZGUgPHdpbnNvY2syXC5oPi8gZAorL14jICppbmNs dWRlIDx3czJ0Y3BpcFwuaD4vIGQKKy9eIyAqaW5jbHVkZSA8dGltZVwuaD4vIGQKKy9eIyAqaW5j bHVkZSA8c3lzXC9zb2NrZXRcLmg+LyBkCisvXiMgKmluY2x1ZGUgPHN5c1wvdGltZVwuaD4vIGQK Ky9eICB0eXBlZGVmIGxvbmcgc3NpemVfdDsvIGQKKy9eICB0eXBlZGVmIGludCAgcGlkX3Q7LyBk CisvXiMgKmluY2x1ZGUgPGdwZy1lcnJvclwuaD4vIHMsI2luY2x1ZGUgPGdwZy1lcnJvci5oPiwj aW5jbHVkZSA8Z3J1Yi9nY3J5cHQvZ3BnLWVycm9yLmg+LAorL150eXBlZGVmIGdwZ19lcnJvcl90 IGdjcnlfZXJyb3JfdDsvIGQKKy9edHlwZWRlZiBncGdfZXJyX2NvZGVfdCBnY3J5X2Vycl9jb2Rl X3Q7LyBkCisvXnR5cGVkZWYgc3RydWN0IGdjcnlfbXBpIFwqZ2NyeV9tcGlfdDsvIGQKKy9eI2Vy cm9yICBnY3J5cHQuaCBhbHJlYWR5IGluY2x1ZGVkLyBkCitwCmRpZmYgLS1naXQgYS91dGlsL2lt cG9ydF9nY3J5cHRoLnNlZCBiL3V0aWwvaW1wb3J0X2djcnlwdGguc2VkCmluZGV4IGZlNmQxYTA3 Mi4uNTAzYjRiNTQ3IDEwMDY0NAotLS0gYS91dGlsL2ltcG9ydF9nY3J5cHRoLnNlZAorKysgYi91 dGlsL2ltcG9ydF9nY3J5cHRoLnNlZApAQCAtMTMsNiArMTMsNCBAQAogL150eXBlZGVmIGdwZ19l cnJvcl90IGdjcnlfZXJyb3JfdDsvIGQKIC9edHlwZWRlZiBncGdfZXJyX2NvZGVfdCBnY3J5X2Vy cl9jb2RlX3Q7LyBkCiAvXnR5cGVkZWYgc3RydWN0IGdjcnlfbXBpIFwqZ2NyeV9tcGlfdDsvIGQK LS9ec3RydWN0IGdjcnlfdGhyZWFkX2Nicy8gZAotcyxfZ2NyeV9tcGlfaW52bSxnY3J5X21waV9p bnZtLGcKIHAKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCi0tIAoyLjM5LjIKCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpHcnViLWRldmVsIG1haWxp bmcgbGlzdApHcnViLWRldmVsQGdudS5vcmcKaHR0cHM6Ly9saXN0cy5nbnUub3JnL21haWxtYW4v bGlzdGluZm8vZ3J1Yi1kZXZlbAo=