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 smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (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 94A4DC02187 for ; Sun, 19 Jan 2025 08:45:31 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 8A6F360891; Sun, 19 Jan 2025 08:45:30 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id kAnihdg2zGX1; Sun, 19 Jan 2025 08:45:27 +0000 (UTC) X-Comment: SPF check N/A for local connections - client-ip=140.211.166.142; helo=lists1.osuosl.org; envelope-from=buildroot-bounces@buildroot.org; receiver= DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 46F6560878 Received: from lists1.osuosl.org (lists1.osuosl.org [140.211.166.142]) by smtp3.osuosl.org (Postfix) with ESMTP id 46F6560878; Sun, 19 Jan 2025 08:45:27 +0000 (UTC) Received: from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138]) by lists1.osuosl.org (Postfix) with ESMTP id 17AE9D2 for ; Sun, 19 Jan 2025 08:45:22 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id F01CD847EF for ; Sun, 19 Jan 2025 08:45:21 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id YMDCWYRqnWSJ for ; Sun, 19 Jan 2025 08:45:18 +0000 (UTC) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=217.70.183.194; helo=relay2-d.mail.gandi.net; envelope-from=thomas.petazzoni@bootlin.com; receiver= DMARC-Filter: OpenDMARC Filter v1.4.2 smtp1.osuosl.org 13B90847CA DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org 13B90847CA Received: from relay2-d.mail.gandi.net (relay2-d.mail.gandi.net [217.70.183.194]) by smtp1.osuosl.org (Postfix) with ESMTPS id 13B90847CA for ; Sun, 19 Jan 2025 08:45:17 +0000 (UTC) Received: by mail.gandi.net (Postfix) with ESMTPA id 53ACF40005; Sun, 19 Jan 2025 08:45:16 +0000 (UTC) To: buildroot@buildroot.org Cc: Thomas Petazzoni Date: Sun, 19 Jan 2025 09:45:07 +0100 Message-ID: <20250119084511.2816892-4-thomas.petazzoni@bootlin.com> X-Mailer: git-send-email 2.47.1 In-Reply-To: <20250119084511.2816892-1-thomas.petazzoni@bootlin.com> References: <20250119084511.2816892-1-thomas.petazzoni@bootlin.com> MIME-Version: 1.0 X-GND-Sasl: thomas.petazzoni@bootlin.com X-Mailman-Original-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bootlin.com; s=gm1; t=1737276316; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=MtsWM1wnswuXHLDw4c/bwNOJnt5YcgbaDioKHXdFU9A=; b=OTQtnAIJLarNYQflyJQSe5pcq57r2ozWwW6kzdRSxIdadrwgb2qdOXJgzFwE9SfuFNo253 0ye0uWSsBKadFM08WKEmZun2v3jzz+bevGKVLWfabmLi0nKS7HAbInKrnPs/7tVREqxizc 07iq4S2z+GHV+y6Iuo0IyHSgCLf6WuyqHjEnymW++IHBkyU8GFpsPxjY3o8/oIMBtp8uJA k2GrdcdxfCotB8Ut7oaBb7LENgQMk+EZhxwGnNPgvsCNbW7LCEwqJycY0Ej+/m5q9KYbG+ R4A4vR4vea0FIG8Q1uRhkfpo0ZiXAu1ZjFaAMq1JsVc1i+ikT/CjaznIeSUIJQ== X-Mailman-Original-Authentication-Results: smtp1.osuosl.org; dmarc=pass (p=reject dis=none) header.from=bootlin.com X-Mailman-Original-Authentication-Results: smtp1.osuosl.org; dkim=pass (2048-bit key, unprotected) header.d=bootlin.com header.i=@bootlin.com header.a=rsa-sha256 header.s=gm1 header.b=OTQtnAIJ Subject: [Buildroot] [PATCH 3/4] package/gnu-efi: fix build due to short-wchar X-BeenThere: buildroot@buildroot.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Discussion and development of buildroot List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , From: Thomas Petazzoni via buildroot Reply-To: Thomas Petazzoni Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: buildroot-bounces@buildroot.org Sender: "buildroot" VGhlIGdudS1lZmkgY29kZSBiYXNlIGlzIHNvIGZhciBidWlsdCB3aXRoIC1mc2hvcnQtd2NoYXI6 CgrigJgtZnNob3J0LXdjaGFy4oCZCiAgICAgT3ZlcnJpZGUgdGhlIHVuZGVybHlpbmcgdHlwZSBm b3Ig4oCYd2NoYXJfdOKAmSB0byBiZSDigJhzaG9ydCB1bnNpZ25lZAogICAgIGludOKAmSBpbnN0 ZWFkIG9mIHRoZSBkZWZhdWx0IGZvciB0aGUgdGFyZ2V0LiAgVGhpcyBvcHRpb24gaXMgdXNlZnVs CiAgICAgZm9yIGJ1aWxkaW5nIHByb2dyYW1zIHRvIHJ1biB1bmRlciBXSU5FLgoKICAgICAqV2Fy bmluZzoqIHRoZSDigJgtZnNob3J0LXdjaGFy4oCZIHN3aXRjaCBjYXVzZXMgR0NDIHRvIGdlbmVy YXRlIGNvZGUKICAgICB0aGF0IGlzIG5vdCBiaW5hcnkgY29tcGF0aWJsZSB3aXRoIGNvZGUgZ2Vu ZXJhdGVkIHdpdGhvdXQgdGhhdAogICAgIHN3aXRjaC4gIFVzZSBpdCB0byBjb25mb3JtIHRvIGEg bm9uLWRlZmF1bHQgYXBwbGljYXRpb24gYmluYXJ5CiAgICAgaW50ZXJmYWNlLgoKSG93ZXZlciwg dGhpcyBpcyBoaWdobHkgaW5jb21wYXRpYmxlIHdpdGggdGhlIGRlZmluaXRpb25zIG9mIHdjaGFy X3QKYnkgbXVzbCwgY2F1c2luZyBidWlsZCBpc3N1ZXM6Cgovd29ya2Rpci9pbnN0YW5jZS0wL291 dHB1dC0xL2J1aWxkL2dudS1lZmktMy4wLjE4Ly9saWIvY29uc29sZS5jOjg0OjY4OiBlcnJvcjog cGFzc2luZyBhcmd1bWVudCAyIG9mICdDb25PdXQtPk91dHB1dFN0cmluZycgZnJvbSBpbmNvbXBh dGlibGUgcG9pbnRlciB0eXBlIFstV2Vycm9yPWluY29tcGF0aWJsZS1wb2ludGVyLXR5cGVzXQpb Li4uXQovd29ya2Rpci9pbnN0YW5jZS0wL291dHB1dC0xL2J1aWxkL2dudS1lZmktMy4wLjE4Ly9s aWIvY29uc29sZS5jOjg0OjY4OiBub3RlOiBleHBlY3RlZCAnQ0hBUjE2IConIHtha2EgJ2ludCAq J30gYnV0IGFyZ3VtZW50IGlzIG9mIHR5cGUgJ3Nob3J0IHVuc2lnbmVkIGludCAqJwoKVGhlc2Ug aGF2ZSBiZWVuIGFkZHJlc3NlZCB1cHN0cmVhbSBieSBzaW1wbHkgbm90IHVzaW5nIC1mc2hvcnQt d2NoYXIKYW55bW9yZSwgc28gd2UgYmFja3BvcnQgdGhlIHJlbGV2YW50IHBhdGNoZXMuCgpUaGUg cGF0Y2ggMDAwMy1Vc2UtY2hhcjE2X3QtbGl0ZXJhbHMucGF0Y2ggd2FzIGRpcmVjdGx5IGJhY2tw b3J0ZWQsIGl0CndhcyAicmVkb25lIiAoaXQncyBhIHZlcnkgbWVjaGFuaWNhbCBwYXRjaCkgYXMg YmFja3BvcnRpbmcgdGhlIHBhdGNoCmFuZCBmaXhpbmcgdGhlIGNvbmZsaWN0cyB3YXMgbW9yZSBl ZmZvcnQgdGhhbiByZWRvaW5nIHRoZSBwYXRjaCBmcm9tCnNjcmF0Y2guIEJ1dCBpbiBlc3NlbmNl LCBpdCBpcyB0aGUgc2FtZSBwYXRjaCBhcyB3aGF0IGlzIHVwc3RyZWFtLgoKRml4ZXM6CgogIGh0 dHA6Ly9hdXRvYnVpbGQuYnVpbGRyb290Lm5ldC9yZXN1bHRzLzhiMmY1YjM4Mjg0ZTcwZGRlOGM1 NjE5ZTUwNTBlN2YyMDFhMGJjYzMvCgpTaWduZWQtb2ZmLWJ5OiBUaG9tYXMgUGV0YXp6b25pIDx0 aG9tYXMucGV0YXp6b25pQGJvb3RsaW4uY29tPgotLS0KIC4uLi8wMDAyLU1ha2UtQ0hBUjE2LXVz ZS11aW50MTZfdC5wYXRjaCAgICAgICB8ICAxNjQgKysKIC4uLi9nbnUtZWZpLzAwMDMtVXNlLWNo YXIxNl90LWxpdGVyYWxzLnBhdGNoICB8IDIxMDMgKysrKysrKysrKysrKysrKysKIDIgZmlsZXMg Y2hhbmdlZCwgMjI2NyBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9kZSAxMDA2NDQgcGFja2FnZS9n bnUtZWZpLzAwMDItTWFrZS1DSEFSMTYtdXNlLXVpbnQxNl90LnBhdGNoCiBjcmVhdGUgbW9kZSAx MDA2NDQgcGFja2FnZS9nbnUtZWZpLzAwMDMtVXNlLWNoYXIxNl90LWxpdGVyYWxzLnBhdGNoCgpk aWZmIC0tZ2l0IGEvcGFja2FnZS9nbnUtZWZpLzAwMDItTWFrZS1DSEFSMTYtdXNlLXVpbnQxNl90 LnBhdGNoIGIvcGFja2FnZS9nbnUtZWZpLzAwMDItTWFrZS1DSEFSMTYtdXNlLXVpbnQxNl90LnBh dGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjM2YTJlYTJhOGUKLS0t IC9kZXYvbnVsbAorKysgYi9wYWNrYWdlL2dudS1lZmkvMDAwMi1NYWtlLUNIQVIxNi11c2UtdWlu dDE2X3QucGF0Y2gKQEAgLTAsMCArMSwxNjQgQEAKK0Zyb20gZjY1ZTVkYjU2NjY1MjlhYmIxOGZl MjRmNWM0NTMzMTQwNGExY2U5OSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IENhbGx1 bSBGYXJtZXIgPGdtYnIzQG9wZW5zdXNlLm9yZz4KK0RhdGU6IFdlZCwgMjkgTWF5IDIwMjQgMTY6 MjI6NTAgKzAxMDAKK1N1YmplY3Q6IFtQQVRDSF0gTWFrZSBDSEFSMTYgdXNlIHVpbnQxNl90CisK K211c2wtbGliYyBkb2Vzbid0IGxpa2UgZnNob3J0LXdjaGFyIHNvIHJlbW92ZSB3Y2hhcl90IHVz YWdlCitVc2UgdWludDE2X3QgYXMgY2hhcjE2X3QgY2FuIGJlIHVwIHRvIDMyYml0cworRml4ZXMg bmNyb3hvbi9nbnUtZWZpIzE2CisKK1NpZ25lZC1vZmYtYnk6IENhbGx1bSBGYXJtZXIgPGdtYnIz QG9wZW5zdXNlLm9yZz4KK1Vwc3RyZWFtOiBodHRwczovL2dpdGh1Yi5jb20vbmNyb3hvbi9nbnUt ZWZpL2NvbW1pdC9lZGZkYTdjMzk2MTM0YzcxMDk0NDRiMjMwY2U0YjBkYTFlNjFkNTI0CitTaWdu ZWQtb2ZmLWJ5OiBUaG9tYXMgUGV0YXp6b25pIDx0aG9tYXMucGV0YXp6b25pQGJvb3RsaW4uY29t PgorLS0tCisgTWFrZS5kZWZhdWx0cyAgICAgICAgICAgICB8IDQgKystLQorIGluYy9hYXJjaDY0 L2VmaWJpbmQuaCAgICAgfCAyICstCisgaW5jL2FybS9lZmliaW5kLmggICAgICAgICB8IDIgKy0K KyBpbmMvaWEzMi9lZmliaW5kLmggICAgICAgIHwgMiArLQorIGluYy9pYTY0L2VmaWJpbmQuaCAg ICAgICAgfCAyICstCisgaW5jL2xvb25nYXJjaDY0L2VmaWJpbmQuaCB8IDIgKy0KKyBpbmMvbWlw czY0ZWwvZWZpYmluZC5oICAgIHwgMiArLQorIGluYy9yaXNjdjY0L2VmaWJpbmQuaCAgICAgfCA1 ICsrLS0tCisgaW5jL3g4Nl82NC9lZmliaW5kLmggICAgICB8IDIgKy0KKyA5IGZpbGVzIGNoYW5n ZWQsIDExIGluc2VydGlvbnMoKyksIDEyIGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvTWFr ZS5kZWZhdWx0cyBiL01ha2UuZGVmYXVsdHMKK2luZGV4IGM5ZjliNGYuLjgzMjA0YTYgMTAwNzU1 CistLS0gYS9NYWtlLmRlZmF1bHRzCisrKysgYi9NYWtlLmRlZmF1bHRzCitAQCAtMTg3LDExICsx ODcsMTEgQEAgZW5kaWYKKyAKKyBpZmVxIChGcmVlQlNELCAkKGZpbmRzdHJpbmcgRnJlZUJTRCwg JChPUykpKQorIENGTEFHUyAgKz0gJChBUkNIMzI2NCkgLWcgLU8yIC1XYWxsIC1XZXh0cmEgLVdl cnJvciBcCistICAgICAgICAgICAtZnVuc2lnbmVkLWNoYXIgLWZzaG9ydC13Y2hhciAtZm5vLXN0 cmljdC1hbGlhc2luZyBcCisrICAgICAgICAgICAtZnVuc2lnbmVkLWNoYXIgLWZuby1zdHJpY3Qt YWxpYXNpbmcgXAorICAgICAgICAgICAgLWZmcmVlc3RhbmRpbmcgLWZuby1zdGFjay1wcm90ZWN0 b3IKKyBlbHNlCisgQ0ZMQUdTICArPSAkKEFSQ0gzMjY0KSAtZyAtTzIgLVdhbGwgLVdleHRyYSAt V25vLXBvaW50ZXItc2lnbiAtV2Vycm9yIFwKKy0gICAgICAgICAgIC1mdW5zaWduZWQtY2hhciAt ZnNob3J0LXdjaGFyIC1mbm8tc3RyaWN0LWFsaWFzaW5nIFwKKysgICAgICAgICAgIC1mdW5zaWdu ZWQtY2hhciAtZm5vLXN0cmljdC1hbGlhc2luZyBcCisgCSAgIC1mZnJlZXN0YW5kaW5nIC1mbm8t c3RhY2stcHJvdGVjdG9yIC1mbm8tc3RhY2stY2hlY2sgXAorICAgICAgICAgICAgJChpZiAkKGZp bmRzdHJpbmcgZ2NjLCQoQ0MpKSwtZm5vLW1lcmdlLWFsbC1jb25zdGFudHMsKQorIGVuZGlmCitk aWZmIC0tZ2l0IGEvaW5jL2FhcmNoNjQvZWZpYmluZC5oIGIvaW5jL2FhcmNoNjQvZWZpYmluZC5o CitpbmRleCBkNmI1ZDBmLi4xYTFmYjc5IDEwMDY0NAorLS0tIGEvaW5jL2FhcmNoNjQvZWZpYmlu ZC5oCisrKysgYi9pbmMvYWFyY2g2NC9lZmliaW5kLmgKK0BAIC00MCw3ICs0MCw3IEBAIHR5cGVk ZWYgaW50NjRfdCAgICAgICAgICAgICBpbnRwdHJfdDsKKyAKKyAjaW5jbHVkZSA8c3RkZGVmLmg+ CisgCistdHlwZWRlZiB3Y2hhcl90IENIQVIxNjsKKyt0eXBlZGVmIHVpbnQxNl90IENIQVIxNjsK KyAjZGVmaW5lIFdDSEFSIENIQVIxNgorIAorIHR5cGVkZWYgdWludDY0X3QgICBVSU5UNjQ7Citk aWZmIC0tZ2l0IGEvaW5jL2FybS9lZmliaW5kLmggYi9pbmMvYXJtL2VmaWJpbmQuaAoraW5kZXgg OGM1NzhkZi4uYmM0MzkzMSAxMDA2NDQKKy0tLSBhL2luYy9hcm0vZWZpYmluZC5oCisrKysgYi9p bmMvYXJtL2VmaWJpbmQuaAorQEAgLTQ4LDcgKzQ4LDcgQEAgdHlwZWRlZiBpbnQzMl90ICAgICAg ICAgICAgIGludHB0cl90OworIAorICNpbmNsdWRlIDxzdGRkZWYuaD4KKyAKKy10eXBlZGVmIHdj aGFyX3QgQ0hBUjE2OworK3R5cGVkZWYgdWludDE2X3QgQ0hBUjE2OworICNkZWZpbmUgV0NIQVIg Q0hBUjE2CisgCisgdHlwZWRlZiB1aW50NjRfdCAgIFVJTlQ2NDsKK2RpZmYgLS1naXQgYS9pbmMv aWEzMi9lZmliaW5kLmggYi9pbmMvaWEzMi9lZmliaW5kLmgKK2luZGV4IDcxOGU4ZDEuLjFiMzNm MmYgMTAwNjQ0CistLS0gYS9pbmMvaWEzMi9lZmliaW5kLmgKKysrKyBiL2luYy9pYTMyL2VmaWJp bmQuaAorQEAgLTg3LDcgKzg3LDcgQEAgUmV2aXNpb24gSGlzdG9yeQorIAorICNpbmNsdWRlIDxz dGRkZWYuaD4KKyAKKy10eXBlZGVmIHdjaGFyX3QgQ0hBUjE2OworK3R5cGVkZWYgdWludDE2X3Qg Q0hBUjE2OworICNkZWZpbmUgV0NIQVIgQ0hBUjE2CisgCisgCitkaWZmIC0tZ2l0IGEvaW5jL2lh NjQvZWZpYmluZC5oIGIvaW5jL2lhNjQvZWZpYmluZC5oCitpbmRleCAxZDI3NDViLi4xYWQ0MWY4 IDEwMDY0NAorLS0tIGEvaW5jL2lhNjQvZWZpYmluZC5oCisrKysgYi9pbmMvaWE2NC9lZmliaW5k LmgKK0BAIC03NCw3ICs3NCw3IEBAIFJldmlzaW9uIEhpc3RvcnkKKyAKKyAjaW5jbHVkZSA8c3Rk ZGVmLmg+CisgCistdHlwZWRlZiB3Y2hhcl90IENIQVIxNjsKKyt0eXBlZGVmIHVpbnQxNl90IENI QVIxNjsKKyAjZGVmaW5lIFdDSEFSIENIQVIxNgorIAorIHR5cGVkZWYgdWludDY0X3QgICBVSU5U NjQ7CitkaWZmIC0tZ2l0IGEvaW5jL2xvb25nYXJjaDY0L2VmaWJpbmQuaCBiL2luYy9sb29uZ2Fy Y2g2NC9lZmliaW5kLmgKK2luZGV4IDhlZDgzYTUuLjgwNjIwOWQgMTAwNjQ0CistLS0gYS9pbmMv bG9vbmdhcmNoNjQvZWZpYmluZC5oCisrKysgYi9pbmMvbG9vbmdhcmNoNjQvZWZpYmluZC5oCitA QCAtNDQsNyArNDQsNyBAQCB0eXBlZGVmIGludDY0X3QgICAgICAgICAgICAgaW50cHRyX3Q7Cisg CisgI2luY2x1ZGUgPHN0ZGRlZi5oPgorIAorLXR5cGVkZWYgd2NoYXJfdCBDSEFSMTY7CisrdHlw ZWRlZiB1aW50MTZfdCBDSEFSMTY7CisgI2RlZmluZSBXQ0hBUiBDSEFSMTYKKyAKKyB0eXBlZGVm IHVpbnQ2NF90ICAgVUlOVDY0OworZGlmZiAtLWdpdCBhL2luYy9taXBzNjRlbC9lZmliaW5kLmgg Yi9pbmMvbWlwczY0ZWwvZWZpYmluZC5oCitpbmRleCBjZjc3ZGRjLi45YjM5NmNjIDEwMDY0NAor LS0tIGEvaW5jL21pcHM2NGVsL2VmaWJpbmQuaAorKysrIGIvaW5jL21pcHM2NGVsL2VmaWJpbmQu aAorQEAgLTQyLDcgKzQyLDcgQEAgdHlwZWRlZiBpbnQ2NF90ICAgICAgICAgICAgIGludHB0cl90 OworIAorICNpbmNsdWRlIDxzdGRkZWYuaD4KKyAKKy10eXBlZGVmIHdjaGFyX3QgQ0hBUjE2Owor K3R5cGVkZWYgdWludDE2X3QgQ0hBUjE2OworICNkZWZpbmUgV0NIQVIgQ0hBUjE2CisgCisgdHlw ZWRlZiB1aW50NjRfdCAgIFVJTlQ2NDsKK2RpZmYgLS1naXQgYS9pbmMvcmlzY3Y2NC9lZmliaW5k LmggYi9pbmMvcmlzY3Y2NC9lZmliaW5kLmgKK2luZGV4IGQ4YjRmMzkuLmI2ZDQxOGMgMTAwNjQ0 CistLS0gYS9pbmMvcmlzY3Y2NC9lZmliaW5kLmgKKysrKyBiL2luYy9yaXNjdjY0L2VmaWJpbmQu aAorQEAgLTE3LDEzICsxNywxMiBAQAorICAqLworIAorICNpbmNsdWRlIDxzdGRpbnQuaD4KKysj aW5jbHVkZSA8c3RkZGVmLmg+CisgCisgLy8KKyAvLyBCYXNpYyBFRkkgdHlwZXMgb2YgdmFyaW91 cyB3aWR0aHMKKyAvLworIAorLSNpbmNsdWRlIDxzdGRkZWYuaD4KKy0KKyB0eXBlZGVmIHVpbnQ2 NF90ICAgICAgICAgICAgICAgIFVJTlQ2NDsKKyB0eXBlZGVmIGludDY0X3QgICAgICAgICAgICAg ICAgIElOVDY0OworIHR5cGVkZWYgdWludDMyX3QgICAgICAgICAgICAgICAgVUlOVDMyOworQEAg LTMzLDcgKzMyLDcgQEAgdHlwZWRlZiBpbnQxNl90ICAgICAgICAgICAgICAgICBJTlQxNjsKKyB0 eXBlZGVmIHVpbnQ4X3QgICAgICAgICAgICAgICAgIFVJTlQ4OworIHR5cGVkZWYgaW50OF90ICAg ICAgICAgICAgICAgICAgSU5UODsKKyB0eXBlZGVmIGNoYXIgICAgICAgICAgICAgICAgICAgIENI QVI4OworLXR5cGVkZWYgd2NoYXJfdCAgICAgICAgICAgICAgICAgQ0hBUjE2OworK3R5cGVkZWYg dWludDE2X3QgICAgICAgICAgICAgICAgIENIQVIxNjsKKyAjZGVmaW5lIFdDSEFSICAgICAgICAg ICAgICAgICAgIENIQVIxNgorICN1bmRlZiBWT0lECisgdHlwZWRlZiB2b2lkICAgICAgICAgICAg ICAgICAgICBWT0lEOworZGlmZiAtLWdpdCBhL2luYy94ODZfNjQvZWZpYmluZC5oIGIvaW5jL3g4 Nl82NC9lZmliaW5kLmgKK2luZGV4IGU0NTRlZDIuLjhmNDMxY2IgMTAwNjQ0CistLS0gYS9pbmMv eDg2XzY0L2VmaWJpbmQuaAorKysrIGIvaW5jL3g4Nl82NC9lZmliaW5kLmgKK0BAIC05OCw3ICs5 OCw3IEBAIFJldmlzaW9uIEhpc3RvcnkKKyAKKyAjaW5jbHVkZSA8c3RkZGVmLmg+CisgCistdHlw ZWRlZiB3Y2hhcl90IENIQVIxNjsKKyt0eXBlZGVmIHVpbnQxNl90IENIQVIxNjsKKyAjZGVmaW5l IFdDSEFSIENIQVIxNgorIAorIHR5cGVkZWYgdWludDY0X3QgICBVSU5UNjQ7CistLSAKKzIuNDcu MQorCmRpZmYgLS1naXQgYS9wYWNrYWdlL2dudS1lZmkvMDAwMy1Vc2UtY2hhcjE2X3QtbGl0ZXJh bHMucGF0Y2ggYi9wYWNrYWdlL2dudS1lZmkvMDAwMy1Vc2UtY2hhcjE2X3QtbGl0ZXJhbHMucGF0 Y2gKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNjZjM2JmMmRiYgotLS0g L2Rldi9udWxsCisrKyBiL3BhY2thZ2UvZ251LWVmaS8wMDAzLVVzZS1jaGFyMTZfdC1saXRlcmFs cy5wYXRjaApAQCAtMCwwICsxLDIxMDMgQEAKK0Zyb20gNWE0YzAyYTQzZTM2ZGI3MTM5OGM1YTJm MzhkNmNkOWYwZDU0ZWJiNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDEKK0Zyb206IFRob21hcyBQ ZXRhenpvbmkgPHRob21hcy5wZXRhenpvbmlAYm9vdGxpbi5jb20+CitEYXRlOiBTdW4sIDEyIEph biAyMDI1IDE4OjA4OjUwICswMTAwCitTdWJqZWN0OiBbUEFUQ0hdIFVzZSBjaGFyMTZfdCBsaXRl cmFscworCitBZGQgY2hhcjE2X3QoJ3UnKSBsaXRlcmFscworUmVtb3ZlIHdjaGFyX3QoJ0wnKSBs aXRlcmFscworCitVcHN0cmVhbTogaHR0cHM6Ly9naXRodWIuY29tL25jcm94b24vZ251LWVmaS9j b21taXQvZjhlYmNmYzA3NzY2NTAxM2FiYTZmMjZmOTg0MDRlMjQ2MDkzYmRkNgorW1Rob21hczog T3JpZ2luYWxseSBhdXRob3JlZCBieSBDYWxsdW0gRmFybWVyIDxnbWJyM0BvcGVuc3VzZS5vcmc+ LAorYnV0IHJlZG9uZSBmcm9tIHNjcmF0Y2ggdG8gYmUgYXBwbGljYWJsZSB0byAzLjAuMTguXQor U2lnbmVkLW9mZi1ieTogVGhvbWFzIFBldGF6em9uaSA8dGhvbWFzLnBldGF6em9uaUBib290bGlu LmNvbT4KKy0tLQorIGFwcHMvQWxsb2NQYWdlcy5jICAgICAgICAgICAgICAgIHwgIDM0ICsrKy0t LQorIGFwcHMvRnJlZVBhZ2VzLmMgICAgICAgICAgICAgICAgIHwgIDI2ICsrLS0tCisgYXBwcy9i bHRncmlkLmMgICAgICAgICAgICAgICAgICAgfCAgMTggKy0tCisgYXBwcy9jdG9yc19kdG9yc19w cmlvcml0eV90ZXN0LmMgfCAgMTAgKy0KKyBhcHBzL2N0b3JzX2Zucy5jICAgICAgICAgICAgICAg ICB8ICAgOCArLQorIGFwcHMvY3RvcnNfdGVzdC5jICAgICAgICAgICAgICAgIHwgICAyICstCisg YXBwcy9kZWJ1Z2hvb2suYyAgICAgICAgICAgICAgICAgfCAgMTAgKy0KKyBhcHBzL2RydjAuYyAg ICAgICAgICAgICAgICAgICAgICB8ICAxMCArLQorIGFwcHMvZHJ2MF91c2UuYyAgICAgICAgICAg ICAgICAgIHwgIDE2ICstLQorIGFwcHMvbGZiZ3JpZC5jICAgICAgICAgICAgICAgICAgIHwgIDI0 ICsrLS0KKyBhcHBzL21vZGVsaXN0LmMgICAgICAgICAgICAgICAgICB8ICAzMCArKy0tLQorIGFw cHMvcHJpbnRlbnYuYyAgICAgICAgICAgICAgICAgIHwgICA2ICstCisgYXBwcy9yb3V0ZTgwaC5j ICAgICAgICAgICAgICAgICAgfCAgMTIgKy0KKyBhcHBzL3NldGRiZy5jICAgICAgICAgICAgICAg ICAgICB8ICAgOCArLQorIGFwcHMvc2V0am1wLmMgICAgICAgICAgICAgICAgICAgIHwgICA2ICst CisgYXBwcy90LmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0KKyBhcHBzL3QyLmMg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQorIGFwcHMvdDMuYyAgICAgICAgICAgICAg ICAgICAgICAgIHwgIDM4ICsrKy0tLS0KKyBhcHBzL3Q0LmMgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgNCArLQorIGFwcHMvdDUuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICstCisg YXBwcy90Ni5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTQgKy0tCisgYXBwcy90Ny5jICAg ICAgICAgICAgICAgICAgICAgICAgfCAgIDggKy0KKyBhcHBzL3Q4LmMgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgNiArLQorIGFwcHMvdGNjLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDY0 ICsrKysrLS0tLS0tCisgYXBwcy90cGF1c2UuYyAgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0K KyBhcHBzL3Vuc2V0ZGJnLmMgICAgICAgICAgICAgICAgICB8ICAgOCArLQorIGluYy9lZmkuaCAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAyICstCisgaW5jL2VmaWxpYi5oICAgICAgICAgICAg ICAgICAgICAgfCAgMzAgKystLS0KKyBsaWIvY21kbGluZS5jICAgICAgICAgICAgICAgICAgICB8 ICAgNiArLQorIGxpYi9jb25zb2xlLmMgICAgICAgICAgICAgICAgICAgIHwgICAyICstCisgbGli L2RwYXRoLmMgICAgICAgICAgICAgICAgICAgICAgfCAxOTAgKysrKysrKysrKysrKysrLS0tLS0t LS0tLS0tLS0tLQorIGxpYi9lcnJvci5jICAgICAgICAgICAgICAgICAgICAgIHwgIDg0ICsrKysr KystLS0tLS0tCisgbGliL2d1aWQuYyAgICAgICAgICAgICAgICAgICAgICAgfCAxMDIgKysrKysr KystLS0tLS0tLS0KKyBsaWIvaW5pdC5jICAgICAgICAgICAgICAgICAgICAgICB8ICAgMiArLQor IGxpYi9wcmludC5jICAgICAgICAgICAgICAgICAgICAgIHwgIDE0ICstLQorIDM1IGZpbGVzIGNo YW5nZWQsIDQwMyBpbnNlcnRpb25zKCspLCA0MDMgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQg YS9hcHBzL0FsbG9jUGFnZXMuYyBiL2FwcHMvQWxsb2NQYWdlcy5jCitpbmRleCBiYjgxODQ5Li43 OTBhZGJhIDEwMDY0NAorLS0tIGEvYXBwcy9BbGxvY1BhZ2VzLmMKKysrKyBiL2FwcHMvQWxsb2NQ YWdlcy5jCitAQCAtMTIwLDI5ICsxMjAsMjkgQEAgZWZpX21haW4gKEVGSV9IQU5ETEUgaW1hZ2Us IEVGSV9TWVNURU1fVEFCTEUgKnN5c3RhYikKKyAKKyAJSW5pdGlhbGl6ZUxpYihpbWFnZSwgc3lz dGFiKTsKKyAKKy0JUHJpbnQoTCJBbGxvY2F0ZVBhZ2U6IF9fQWxsb2NUeXBlX18gX19NZW1UeXBl X18gX19OdW1QYWdlc19fIFtfX0FkZHJfX11cbiIpOworLQlQcmludChMIl9fQWxsb2NUeXBlX18g ezAsMSwyfSAtLSBBbnksIE1heEFkZHIsIEFkZHJcbiIpOyAKKy0JUHJpbnQoTCJfX01lbVR5cGVf XyAgIHswLi4xM30sIFJlc2VydmVkID09MCwgTENvZGU9PTEsIExEYXRhPT0yLCBCU0NvZGU9PTMs IEJTRGF0YT09NCwgLi4uXG4iKTsKKy0JUHJpbnQoTCJfX051bVBhZ2VzX18gIHswLi4leH1cbiIs IE1BWF9OVU1fUEFHRVMpOworLQlQcmludChMIltfX0FkZHJfX10gICAgIDAuLi4gJWxseFxuIiwg TUFYX0FERFIpOworLQlQcmludChMIkFsbCBudW1iZXJzIGluIGhleCBubyBsZWFkaW5nIDB4XG4i KTsKKy0JUHJpbnQoTCJcbiIpOworKwlQcmludCh1IkFsbG9jYXRlUGFnZTogX19BbGxvY1R5cGVf XyBfX01lbVR5cGVfXyBfX051bVBhZ2VzX18gW19fQWRkcl9fXVxuIik7CisrCVByaW50KHUiX19B bGxvY1R5cGVfXyB7MCwxLDJ9IC0tIEFueSwgTWF4QWRkciwgQWRkclxuIik7IAorKwlQcmludCh1 Il9fTWVtVHlwZV9fICAgezAuLjEzfSwgUmVzZXJ2ZWQgPT0wLCBMQ29kZT09MSwgTERhdGE9PTIs IEJTQ29kZT09MywgQlNEYXRhPT00LCAuLi5cbiIpOworKwlQcmludCh1Il9fTnVtUGFnZXNfXyAg ezAuLiV4fVxuIiwgTUFYX05VTV9QQUdFUyk7CisrCVByaW50KHUiW19fQWRkcl9fXSAgICAgMC4u LiAlbGx4XG4iLCBNQVhfQUREUik7CisrCVByaW50KHUiQWxsIG51bWJlcnMgaW4gaGV4IG5vIGxl YWRpbmcgMHhcbiIpOworKwlQcmludCh1IlxuIik7CisgCisgI2lmIERFQlVHCistCVByaW50KEwi Tm93IGdldCBhcmdjL2FyZ3ZcbiIpOworKwlQcmludCh1Ik5vdyBnZXQgYXJnYy9hcmd2XG4iKTsK KyAjZW5kaWYKKyAJYXJnYyA9IEdldFNoZWxsQXJnY0FyZ3YoaW1hZ2UsICZhcmd2KTsKKyAjaWYg REVCVUcKKy0JUHJpbnQoTCJhcmdjID0gJWRcbiIsIGFyZ2MpOworKwlQcmludCh1ImFyZ2MgPSAl ZFxuIiwgYXJnYyk7CisgI2VuZGlmCisgCisgI2lmIERFQlVHCisgCWZvciAoYyA9IDA7ICBjIDwg YXJnYzsgIGMrKyApIHsKKy0JCVByaW50KEwiYXJndlslZF0gPSA8JXM+XG4iLCBjLCBhcmd2W2Nd KTsKKysJCVByaW50KHUiYXJndlslZF0gPSA8JXM+XG4iLCBjLCBhcmd2W2NdKTsKKyAJfQorICNl bmRpZgorIAlpZiAoIChhcmdjIDwgNCkgfHwgKGFyZ2MgPiA1KSApIHsKKy0JCVByaW50KEwiV3Jv bmcgYXJndW1lbnQgY291bnRcbiIpOworKwkJUHJpbnQodSJXcm9uZyBhcmd1bWVudCBjb3VudFxu Iik7CisgCQlyZXR1cm4gRUZJX1NVQ0NFU1M7CisgCX0KKyAKK0BAIC0xNTIsMzEgKzE1MiwzMSBA QCBlZmlfbWFpbiAoRUZJX0hBTkRMRSBpbWFnZSwgRUZJX1NZU1RFTV9UQUJMRSAqc3lzdGFiKQor IAlpZiAoIGFyZ2MgPT0gNSApIEFkZHIgPSB4dG9pKGFyZ3ZbNF0pOworIAorIAlpZiAoIChBbGxv Y1R5cGUgPCAwKSB8fCAoQWxsb2NUeXBlID4gMikpIHsKKy0JCVByaW50KEwiSW52YWxpZCBBbGxv Y1R5cGVcbiIpOworKwkJUHJpbnQodSJJbnZhbGlkIEFsbG9jVHlwZVxuIik7CisgCQllcnIrKzsK KyAJfQorIAlpZiAoIChNZW1UeXBlIDwgMCkgfHwgKE1lbVR5cGUgPiAxMykgKSB7CistCQlQcmlu dChMIkludmFsaWQgTWVtVHlwZVxuIik7CisrCQlQcmludCh1IkludmFsaWQgTWVtVHlwZVxuIik7 CisgCQllcnIrKzsKKyAJfQorIAlpZiAoIChOdW1QYWdlcyA8IDApIHx8IChOdW1QYWdlcyA+IE1B WF9OVU1fUEFHRVMpICkgeworLQkJUHJpbnQoTCJJbmF2bGlkIE51bVBhZ2VzXG4iKTsKKysJCVBy aW50KHUiSW5hdmxpZCBOdW1QYWdlc1xuIik7CisgCQllcnIrKzsKKyAJfQorIAlpZiAoIEFkZHIg PiBNQVhfQUREUiApIHsKKy0JCVByaW50KEwiSW5hdmxpZCBBZGRyZXNzXG4iKTsKKysJCVByaW50 KHUiSW5hdmxpZCBBZGRyZXNzXG4iKTsKKyAJCWVycisrOworIAl9CisgCWlmICggZXJyICkgewor IAkJcmV0dXJuIEVGSV9JTlZBTElEX1BBUkFNRVRFUjsKKyAJfQorIAorLQlQcmludChMIkFsbG9j YXRQYWdlKCVkLCVkLCVkLCVseClcbiIsIEFsbG9jVHlwZSwgTWVtVHlwZSwgTnVtUGFnZXMsIEFk ZHIpOworKwlQcmludCh1IkFsbG9jYXRQYWdlKCVkLCVkLCVkLCVseClcbiIsIEFsbG9jVHlwZSwg TWVtVHlwZSwgTnVtUGFnZXMsIEFkZHIpOworIAorIAllZmlfc3RhdHVzID0gdWVmaV9jYWxsX3dy YXBwZXIoQlMtPkFsbG9jYXRlUGFnZXMsIDQsIEFsbG9jVHlwZSwgTWVtVHlwZSwgTnVtUGFnZXMs ICZBZGRyKTsKKyAKKyAJaWYgKCBFRklfRVJST1IoZWZpX3N0YXR1cykgKSB7CistCQlQcmludChM IkFsbG9jYXRlIFBhZ2VzIEZhaWxlZDogJWRcbiIsIGVmaV9zdGF0dXMpOworKwkJUHJpbnQodSJB bGxvY2F0ZSBQYWdlcyBGYWlsZWQ6ICVkXG4iLCBlZmlfc3RhdHVzKTsKKyAJCXJldHVybiBlZmlf c3RhdHVzOworIAl9CisgCitkaWZmIC0tZ2l0IGEvYXBwcy9GcmVlUGFnZXMuYyBiL2FwcHMvRnJl ZVBhZ2VzLmMKK2luZGV4IDI0N2M3NWQuLjI3ZGE3YTcgMTAwNjQ0CistLS0gYS9hcHBzL0ZyZWVQ YWdlcy5jCisrKysgYi9hcHBzL0ZyZWVQYWdlcy5jCitAQCAtOTMsMjcgKzkzLDI3IEBAIGVmaV9t YWluIChFRklfSEFORExFIGltYWdlLCBFRklfU1lTVEVNX1RBQkxFICpzeXN0YWIpCisgCisgCUlu aXRpYWxpemVMaWIoaW1hZ2UsIHN5c3RhYik7CisgCistCVByaW50KEwiRnJlZVBhZ2VzOiBfX1Bo eXNBZGRyX18gX19QZ0NudF9fXG4iKTsKKy0JUHJpbnQoTCJfX1BoeXNBZGRyX18gICAwLi4uICVs bHhcbiIsIE1BWF9BRERSKTsKKy0JUHJpbnQoTCJfX1BnQ250X18gICAgIFswLi4lbHhdXG4iLCBN QVhfTlVNX1BBR0VTKTsKKy0JUHJpbnQoTCJBbGwgbnVtYmVycyBoZXggdy8gbm8gbGVhZGluZyAw eFxuIik7CistCVByaW50KEwiXG4iKTsKKysJUHJpbnQodSJGcmVlUGFnZXM6IF9fUGh5c0FkZHJf XyBfX1BnQ250X19cbiIpOworKwlQcmludCh1Il9fUGh5c0FkZHJfXyAgIDAuLi4gJWxseFxuIiwg TUFYX0FERFIpOworKwlQcmludCh1Il9fUGdDbnRfXyAgICAgWzAuLiVseF1cbiIsIE1BWF9OVU1f UEFHRVMpOworKwlQcmludCh1IkFsbCBudW1iZXJzIGhleCB3LyBubyBsZWFkaW5nIDB4XG4iKTsK KysJUHJpbnQodSJcbiIpOworIAorICNpZiBERUJVRworLQlQcmludChMIk5vdyBwYXJzZSBhcmdj L2FyZ3ZcbiIpOworKwlQcmludCh1Ik5vdyBwYXJzZSBhcmdjL2FyZ3ZcbiIpOworICNlbmRpZgor IAlhcmdjID0gR2V0U2hlbGxBcmdjQXJndihpbWFnZSwgJmFyZ3YpOworICNpZiBERUJVRworLQlQ cmludChMImFyZ2MgPSAlZFxuIiwgYXJnYyk7CisrCVByaW50KHUiYXJnYyA9ICVkXG4iLCBhcmdj KTsKKyAjZW5kaWYKKyAKKyAjaWYgREVCVUcKKyAJZm9yIChjID0gMDsgIGMgPCBhcmdjOyAgYysr ICkgeworLQkJUHJpbnQoTCJhcmd2WyVkXSA9IDwlcz5cbiIsIGMsIGFyZ3ZbY10pOworKwkJUHJp bnQodSJhcmd2WyVkXSA9IDwlcz5cbiIsIGMsIGFyZ3ZbY10pOworIAl9CisgI2VuZGlmCisgCWlm IChhcmdjICE9IDMpIHsKKy0JCVByaW50KEwiSW52YWxpZCBhcmd1bWVudCBjb3VudFxuIik7Cisr CQlQcmludCh1IkludmFsaWQgYXJndW1lbnQgY291bnRcbiIpOworIAkJcmV0dXJuIEVGSV9TVUND RVNTOworIAl9CisgCitAQCAtMTIxLDIzICsxMjEsMjMgQEAgZWZpX21haW4gKEVGSV9IQU5ETEUg aW1hZ2UsIEVGSV9TWVNURU1fVEFCTEUgKnN5c3RhYikKKyAJUGdDbnQJID0geHRvaShhcmd2WzJd KTsKKyAKKyAJaWYgKCAoUGdDbnQgPCAwKSB8fCAoUGdDbnQgPiBNQVhfTlVNX1BBR0VTKSApIHsK Ky0JCVByaW50KEwiSW5hdmxpZCBQZ0NudFxuIik7CisrCQlQcmludCh1IkluYXZsaWQgUGdDbnRc biIpOworIAkJZXJyKys7CisgCX0KKyAJaWYgKCBQaHlzQWRkciA+IE1BWF9BRERSICkgeworLQkJ UHJpbnQoTCJJbmF2bGlkIEFkZHJlc3NcbiIpOworKwkJUHJpbnQodSJJbmF2bGlkIEFkZHJlc3Nc biIpOworIAkJZXJyKys7CisgCX0KKyAJaWYgKCBlcnIgKSB7CisgCQlyZXR1cm4gRUZJX1NVQ0NF U1M7CisgCX0KKyAKKy0JUHJpbnQoTCJGcmVlUGFnZXMoJWx4LCVkKVxuIiwgUGh5c0FkZHIsIFBn Q250KTsKKysJUHJpbnQodSJGcmVlUGFnZXMoJWx4LCVkKVxuIiwgUGh5c0FkZHIsIFBnQ250KTsK KyAKKyAJZWZpX3N0YXR1cyA9IHVlZmlfY2FsbF93cmFwcGVyKEJTLT5GcmVlUGFnZXMsIDIsIFBo eXNBZGRyLCBQZ0NudCk7CisgCisgCWlmICggRUZJX0VSUk9SKGVmaV9zdGF0dXMpICkgeworLQkJ UHJpbnQoTCJGcmVlIFBhZ2VzIEZhaWxlZDogJWRcbiIsIGVmaV9zdGF0dXMpOworKwkJUHJpbnQo dSJGcmVlIFBhZ2VzIEZhaWxlZDogJWRcbiIsIGVmaV9zdGF0dXMpOworIAkJcmV0dXJuIGVmaV9z dGF0dXM7CisgCX0KKyAKK2RpZmYgLS1naXQgYS9hcHBzL2JsdGdyaWQuYyBiL2FwcHMvYmx0Z3Jp ZC5jCitpbmRleCBmZjY5NzUzLi44NWE2MGFiIDEwMDY0NAorLS0tIGEvYXBwcy9ibHRncmlkLmMK KysrKyBiL2FwcHMvYmx0Z3JpZC5jCitAQCAtMzgsNyArMzgsNyBAQCBkcmF3X2JveGVzKEVGSV9H UkFQSElDU19PVVRQVVRfUFJPVE9DT0wgKmdvcCkKKyAJaWYgKGdvcC0+TW9kZSkgeworIAkJaW1h eCA9IGdvcC0+TW9kZS0+TWF4TW9kZTsKKyAJfSBlbHNlIHsKKy0JCVByaW50KEwiZ29wLT5Nb2Rl IGlzIE5VTExcbiIpOworKwkJUHJpbnQodSJnb3AtPk1vZGUgaXMgTlVMTFxuIik7CisgCQlyZXR1 cm47CisgCX0KKyAKK0BAIC00Nyw4ICs0Nyw4IEBAIGRyYXdfYm94ZXMoRUZJX0dSQVBISUNTX09V VFBVVF9QUk9UT0NPTCAqZ29wKQorIAkJcmMgPSB1ZWZpX2NhbGxfd3JhcHBlcihnb3AtPlF1ZXJ5 TW9kZSwgNCwgZ29wLCBpLCAmU2l6ZU9mSW5mbywKKyAJCQkJCSZpbmZvKTsKKyAJCWlmIChyYyA9 PSBFRklfTk9UX1NUQVJURUQpIHsKKy0JCQlQcmludChMImdvcC0+UXVlcnlNb2RlKCkgcmV0dXJu ZWQgJXJcbiIsIHJjKTsKKy0JCQlQcmludChMIlRyeWluZyB0byBzdGFydCBHT1Agd2l0aCBTZXRN b2RlKCkuXG4iKTsKKysJCQlQcmludCh1ImdvcC0+UXVlcnlNb2RlKCkgcmV0dXJuZWQgJXJcbiIs IHJjKTsKKysJCQlQcmludCh1IlRyeWluZyB0byBzdGFydCBHT1Agd2l0aCBTZXRNb2RlKCkuXG4i KTsKKyAJCQlyYyA9IHVlZmlfY2FsbF93cmFwcGVyKGdvcC0+U2V0TW9kZSwgMiwgZ29wLAorIAkJ CQlnb3AtPk1vZGUgPyBnb3AtPk1vZGUtPk1vZGUgOiAwKTsKKyAJCQlyYyA9IHVlZmlfY2FsbF93 cmFwcGVyKGdvcC0+UXVlcnlNb2RlLCA0LCBnb3AsIGksCitAQCAtNTYsNyArNTYsNyBAQCBkcmF3 X2JveGVzKEVGSV9HUkFQSElDU19PVVRQVVRfUFJPVE9DT0wgKmdvcCkKKyAJCX0KKyAKKyAJCWlm IChFRklfRVJST1IocmMpKSB7CistCQkJUHJpbnQoTCIlZDogQmFkIHJlc3BvbnNlIGZyb20gUXVl cnlNb2RlOiAlciAoJWQpXG4iLAorKwkJCVByaW50KHUiJWQ6IEJhZCByZXNwb25zZSBmcm9tIFF1 ZXJ5TW9kZTogJXIgKCVkKVxuIiwKKyAJCQkgICAgICBpLCByYywgcmMpOworIAkJCWNvbnRpbnVl OworIAkJfQorQEAgLTcwLDcgKzcwLDcgQEAgZHJhd19ib3hlcyhFRklfR1JBUEhJQ1NfT1VUUFVU X1BST1RPQ09MICpnb3ApCisgCisgCQlQaXhlbEJ1ZmZlciA9IEFsbG9jYXRlUG9vbChCdWZmZXJT aXplKTsKKyAJCWlmICghUGl4ZWxCdWZmZXIpIHsKKy0JCQlQcmludChMIkFsbG9jYXRpb24gb2Yg MHglMDhseCBieXRlcyBmYWlsZWQuXG4iLAorKwkJCVByaW50KHUiQWxsb2NhdGlvbiBvZiAweCUw OGx4IGJ5dGVzIGZhaWxlZC5cbiIsCisgCQkJICAgICAgc2l6ZW9mKFVJTlQzMikgKiBOdW1QaXhl bHMpOworIAkJCXJldHVybjsKKyAJCX0KK0BAIC04OCw3ICs4OCw3IEBAIGRyYXdfYm94ZXMoRUZJ X0dSQVBISUNTX09VVFBVVF9QUk9UT0NPTCAqZ29wKQorIAkJRnJlZVBvb2woUGl4ZWxCdWZmZXIp OworIAkJcmV0dXJuOworIAl9CistCVByaW50KEwiTmV2ZXIgZm91bmQgdGhlIGFjdGl2ZSB2aWRl byBtb2RlP1xuIik7CisrCVByaW50KHUiTmV2ZXIgZm91bmQgdGhlIGFjdGl2ZSB2aWRlbyBtb2Rl P1xuIik7CisgfQorIAorIHN0YXRpYyBFRklfU1RBVFVTCitAQCAtMTAwLDcgKzEwMCw3IEBAIFNl dFdhdGNoZG9nKFVJTlROIHNlY29uZHMpCisgCWlmIChFRklfRVJST1IocmMpKSB7CisgCQlDSEFS MTYgQnVmZmVyWzY0XTsKKyAJCVN0YXR1c1RvU3RyaW5nKEJ1ZmZlciwgcmMpOworLQkJUHJpbnQo TCJCYWQgcmVzcG9uc2UgZnJvbSBRdWVyeU1vZGU6ICVzICglZClcbiIsIEJ1ZmZlciwgcmMpOwor KwkJUHJpbnQodSJCYWQgcmVzcG9uc2UgZnJvbSBRdWVyeU1vZGU6ICVzICglZClcbiIsIEJ1ZmZl ciwgcmMpOworIAl9CisgCXJldHVybiByYzsKKyB9CitAQCAtMTE3LDEyICsxMTcsMTIgQEAgZWZp X21haW4gKEVGSV9IQU5ETEUgaW1hZ2VfaGFuZGxlLCBFRklfU1lTVEVNX1RBQkxFICpzeXN0YWIp CisgCisgCXJjID0gTGliTG9jYXRlUHJvdG9jb2woJkdyYXBoaWNzT3V0cHV0UHJvdG9jb2wsICh2 b2lkICoqKSZnb3ApOworIAlpZiAoRUZJX0VSUk9SKHJjKSkgeworLQkJUHJpbnQoTCJDb3VsZCBu b3QgbG9jYXRlIEdPUDogJXJcbiIsIHJjKTsKKysJCVByaW50KHUiQ291bGQgbm90IGxvY2F0ZSBH T1A6ICVyXG4iLCByYyk7CisgCQlyZXR1cm4gcmM7CisgCX0KKyAKKyAJaWYgKCFnb3ApIHsKKy0J CVByaW50KEwiTG9jYXRlUHJvdG9jb2woR09QLCAmZ29wKSByZXR1cm5lZCAlciBidXQgR09QIGlz IE5VTExcbiIsIHJjKTsKKysJCVByaW50KHUiTG9jYXRlUHJvdG9jb2woR09QLCAmZ29wKSByZXR1 cm5lZCAlciBidXQgR09QIGlzIE5VTExcbiIsIHJjKTsKKyAJCXJldHVybiBFRklfVU5TVVBQT1JU RUQ7CisgCX0KKyAKK2RpZmYgLS1naXQgYS9hcHBzL2N0b3JzX2R0b3JzX3ByaW9yaXR5X3Rlc3Qu YyBiL2FwcHMvY3RvcnNfZHRvcnNfcHJpb3JpdHlfdGVzdC5jCitpbmRleCA0OWUzMjM5Li4wNGFh MWJhIDEwMDY0NAorLS0tIGEvYXBwcy9jdG9yc19kdG9yc19wcmlvcml0eV90ZXN0LmMKKysrKyBi L2FwcHMvY3RvcnNfZHRvcnNfcHJpb3JpdHlfdGVzdC5jCitAQCAtMywyNyArMywyNyBAQAorIA0K KyAvLyAxMDEgaW4gaW5pdF9hcnJheSwgNjU0MzQgaW4gY3RvcnMNCisgc3RhdGljIHZvaWQgX19h dHRyaWJ1dGVfXygoY29uc3RydWN0b3IoMTAxKSkpIEVGSV9OT19UQUlMX0NBTEwgY3RvcnMxMDEo KSB7DQorLSAgICBQcmludChMIjEpIGN0b3Igd2l0aCBsb3dlciBudW1iZXJlZCBwcmlvcml0eSBc clxuIik7DQorKyAgICBQcmludCh1IjEpIGN0b3Igd2l0aCBsb3dlciBudW1iZXJlZCBwcmlvcml0 eSBcclxuIik7DQorIH0NCisgDQorIC8vIDY1NDM0IGluIGluaXRfYXJyYXksIDEwMSBpbiBjdG9y cw0KKyBzdGF0aWMgdm9pZCBfX2F0dHJpYnV0ZV9fKChjb25zdHJ1Y3Rvcig2NTQzNCkpKSBFRklf Tk9fVEFJTF9DQUxMIGN0b3JzNjU0MzQoKSB7DQorLSAgICBQcmludChMIjIpIGN0b3Igd2l0aCBo aWdoZXIgbnVtYmVyZWQgcHJpb3JpdHkgXHJcbiIpOw0KKysgICAgUHJpbnQodSIyKSBjdG9yIHdp dGggaGlnaGVyIG51bWJlcmVkIHByaW9yaXR5IFxyXG4iKTsNCisgfQ0KKyANCisgLy8gMTAxIGlu IGZpbmlfYXJyYXksIDY1NDM0IGluIGR0b3JzDQorIHN0YXRpYyB2b2lkIF9fYXR0cmlidXRlX18o KGRlc3RydWN0b3IoMTAxKSkpIEVGSV9OT19UQUlMX0NBTEwgZHRvcnMxMDEoKSB7DQorLSAgICBQ cmludChMIjQpIGR0b3Igd2l0aCBsb3dlciBudW1iZXJlZCBwcmlvcml0eSBcclxuIik7DQorKyAg ICBQcmludCh1IjQpIGR0b3Igd2l0aCBsb3dlciBudW1iZXJlZCBwcmlvcml0eSBcclxuIik7DQor IH0NCisgDQorIC8vIDY1NDM0IGluIGZpbmlfYXJyYXksIDEwMSBpbiBkdG9ycw0KKyBzdGF0aWMg dm9pZCBfX2F0dHJpYnV0ZV9fKChkZXN0cnVjdG9yKDY1NDM0KSkpIEVGSV9OT19UQUlMX0NBTEwg ZHRvcnM2NTQzNCgpIHsNCistICAgIFByaW50KEwiMykgZHRvciB3aXRoIGhpZ2hlciBudW1iZXJl ZCBwcmlvcml0eSBcclxuIik7DQorKyAgICBQcmludCh1IjMpIGR0b3Igd2l0aCBoaWdoZXIgbnVt YmVyZWQgcHJpb3JpdHkgXHJcbiIpOw0KKyB9DQorIA0KKyBFRklfU1RBVFVTDQorIGVmaV9tYWlu IChFRklfSEFORExFIGltYWdlIEVGSV9VTlVTRUQsIEVGSV9TWVNURU1fVEFCTEUgKnN5c3RhYiBF RklfVU5VU0VEKQ0KKyB7DQorLSAgICBQcmludChMIk1haW4gZnVuY3Rpb24gXHJcbiIpOw0KKysg ICAgUHJpbnQodSJNYWluIGZ1bmN0aW9uIFxyXG4iKTsNCisgICAgIHJldHVybiBFRklfU1VDQ0VT UzsNCisgfQorXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCitkaWZmIC0tZ2l0IGEvYXBwcy9j dG9yc19mbnMuYyBiL2FwcHMvY3RvcnNfZm5zLmMKK2luZGV4IDcwMjc0NDcuLjUxY2RjZDMgMTAw NjQ0CistLS0gYS9hcHBzL2N0b3JzX2Zucy5jCisrKysgYi9hcHBzL2N0b3JzX2Zucy5jCitAQCAt MTEsMTYgKzExLDE2IEBAIGludCBjb25zdHJ1Y3RlZF92YWx1ZSA9IDA7CisgCisgc3RhdGljIHZv aWQgX19hdHRyaWJ1dGVfXygoX19jb25zdHJ1Y3Rvcl9fKSkgRUZJX05PX1RBSUxfQ0FMTCBjdG9y KHZvaWQpCisgeworLQlQcmludChMIiVhOiVkOiVhKCkgY29uc3RydWN0ZWRfdmFsdWU6JWRcbiIs IF9fRklMRV9fLCBfX0xJTkVfXywgX19mdW5jX18sIGNvbnN0cnVjdGVkX3ZhbHVlKTsKKysJUHJp bnQodSIlYTolZDolYSgpIGNvbnN0cnVjdGVkX3ZhbHVlOiVkXG4iLCBfX0ZJTEVfXywgX19MSU5F X18sIF9fZnVuY19fLCBjb25zdHJ1Y3RlZF92YWx1ZSk7CisgCWNvbnN0cnVjdGVkX3ZhbHVlID0g MTsKKy0JUHJpbnQoTCIlYTolZDolYSgpIGNvbnN0cnVjdGVkX3ZhbHVlOiVkXG4iLCBfX0ZJTEVf XywgX19MSU5FX18sIF9fZnVuY19fLCBjb25zdHJ1Y3RlZF92YWx1ZSk7CisrCVByaW50KHUiJWE6 JWQ6JWEoKSBjb25zdHJ1Y3RlZF92YWx1ZTolZFxuIiwgX19GSUxFX18sIF9fTElORV9fLCBfX2Z1 bmNfXywgY29uc3RydWN0ZWRfdmFsdWUpOworIH0KKyAKKyBzdGF0aWMgdm9pZCBfX2F0dHJpYnV0 ZV9fKChfX2Rlc3RydWN0b3JfXykpIEVGSV9OT19UQUlMX0NBTEwgZHRvcih2b2lkKQorIHsKKy0J UHJpbnQoTCIlYTolZDolYSgpIGNvbnN0cnVjdGVkX3ZhbHVlOiVkXG4iLCBfX0ZJTEVfXywgX19M SU5FX18sIF9fZnVuY19fLCBjb25zdHJ1Y3RlZF92YWx1ZSk7CisrCVByaW50KHUiJWE6JWQ6JWEo KSBjb25zdHJ1Y3RlZF92YWx1ZTolZFxuIiwgX19GSUxFX18sIF9fTElORV9fLCBfX2Z1bmNfXywg Y29uc3RydWN0ZWRfdmFsdWUpOworIAljb25zdHJ1Y3RlZF92YWx1ZSA9IDA7CistCVByaW50KEwi JWE6JWQ6JWEoKSBjb25zdHJ1Y3RlZF92YWx1ZTolZFxuIiwgX19GSUxFX18sIF9fTElORV9fLCBf X2Z1bmNfXywgY29uc3RydWN0ZWRfdmFsdWUpOworKwlQcmludCh1IiVhOiVkOiVhKCkgY29uc3Ry dWN0ZWRfdmFsdWU6JWRcbiIsIF9fRklMRV9fLCBfX0xJTkVfXywgX19mdW5jX18sIGNvbnN0cnVj dGVkX3ZhbHVlKTsKKyB9CisgCisgLy8gdmltOmZlbmM9dXRmLTg6dHc9NzU6bm9ldAorZGlmZiAt LWdpdCBhL2FwcHMvY3RvcnNfdGVzdC5jIGIvYXBwcy9jdG9yc190ZXN0LmMKK2luZGV4IDdlNDhk YTguLmE1MGQwMmUgMTAwNjQ0CistLS0gYS9hcHBzL2N0b3JzX3Rlc3QuYworKysrIGIvYXBwcy9j dG9yc190ZXN0LmMKK0BAIC0xMiw3ICsxMiw3IEBAIGV4dGVybiBpbnQgY29uc3RydWN0ZWRfdmFs dWU7CisgRUZJX1NUQVRVUworIGVmaV9tYWluIChFRklfSEFORExFIGltYWdlIEVGSV9VTlVTRUQs IEVGSV9TWVNURU1fVEFCTEUgKnN5c3RhYiBFRklfVU5VU0VEKQorIHsKKy0JUHJpbnQoTCIlYTol ZDolYSgpIGNvbnN0cnVjdGVkX3ZhbHVlOiVkXG4iLCBfX0ZJTEVfXywgX19MSU5FX18sIF9fZnVu Y19fLCBjb25zdHJ1Y3RlZF92YWx1ZSk7CisrCVByaW50KHUiJWE6JWQ6JWEoKSBjb25zdHJ1Y3Rl ZF92YWx1ZTolZFxuIiwgX19GSUxFX18sIF9fTElORV9fLCBfX2Z1bmNfXywgY29uc3RydWN0ZWRf dmFsdWUpOworIAorIAlyZXR1cm4gRUZJX1NVQ0NFU1M7CisgfQorZGlmZiAtLWdpdCBhL2FwcHMv ZGVidWdob29rLmMgYi9hcHBzL2RlYnVnaG9vay5jCitpbmRleCBjODYyZjBmLi4xZDlmOWQwIDEw MDY0NAorLS0tIGEvYXBwcy9kZWJ1Z2hvb2suYworKysrIGIvYXBwcy9kZWJ1Z2hvb2suYworQEAg LTUwLDE2ICs1MCwxNiBAQCBEZWJ1Z0hvb2sodm9pZCkKKyAJaWYgKHgpCisgCQlyZXR1cm47Cisg CistCWVmaV9zdGF0dXMgPSBHZXRWYXJpYWJsZShMIkRVTU1ZX0RFQlVHIiwgJmRhdGEsICZkYXRh U2l6ZSwgZ3VpZCk7CisrCWVmaV9zdGF0dXMgPSBHZXRWYXJpYWJsZSh1IkRVTU1ZX0RFQlVHIiwg JmRhdGEsICZkYXRhU2l6ZSwgZ3VpZCk7CisgCWlmIChFRklfRVJST1IoZWZpX3N0YXR1cykpIHsK KyAJCXJldHVybjsKKyAJfQorIAorLQlQcmludChMImFkZC1zeW1ib2wtZmlsZSAvdXNyL2xpYi9k ZWJ1Zy9ib290L2VmaS9kZWJ1Z2hvb2suZGVidWcgIgorLQkgICAgICBMIjB4JTA4eCAtcyAuZGF0 YSAweCUwOHhcbiIsICZfdGV4dCwgJl9kYXRhKTsKKysJUHJpbnQodSJhZGQtc3ltYm9sLWZpbGUg L3Vzci9saWIvZGVidWcvYm9vdC9lZmkvZGVidWdob29rLmRlYnVnICIKKysJICAgICAgdSIweCUw OHggLXMgLmRhdGEgMHglMDh4XG4iLCAmX3RleHQsICZfZGF0YSk7CisgCistCVByaW50KEwiUGF1 c2luZyBmb3IgZGVidWdnZXIgYXR0YWNobWVudC5cbiIpOworLQlQcmludChMIlRvIGRpc2FibGUg dGhpcywgcmVtb3ZlIHRoZSBFRkkgdmFyaWFibGUgRFVNTVlfREVCVUctJWcgLlxuIiwKKysJUHJp bnQodSJQYXVzaW5nIGZvciBkZWJ1Z2dlciBhdHRhY2htZW50LlxuIik7CisrCVByaW50KHUiVG8g ZGlzYWJsZSB0aGlzLCByZW1vdmUgdGhlIEVGSSB2YXJpYWJsZSBEVU1NWV9ERUJVRy0lZyAuXG4i LAorIAkgICAgICAmZ3VpZCk7CisgCXggPSAxOworIAl3aGlsZSAoeCsrKSB7CitkaWZmIC0tZ2l0 IGEvYXBwcy9kcnYwLmMgYi9hcHBzL2RydjAuYworaW5kZXggMWQwYzA2Zi4uY2ZlNTg0YiAxMDA2 NDQKKy0tLSBhL2FwcHMvZHJ2MC5jCisrKysgYi9hcHBzL2RydjAuYworQEAgLTExMSw3ICsxMTEs NyBAQCBEcnYwU2F5SGVsbG8oCisgICBpZiAoISBIZWxsb1dobykKKyAgICAgcmV0dXJuIEVGSV9J TlZBTElEX1BBUkFNRVRFUjsKKyAKKy0gIFByaW50KEwiSGVsbG8gJXMhXG4iLCBIZWxsb1dobyk7 CisrICBQcmludCh1IkhlbGxvICVzIVxuIiwgSGVsbG9XaG8pOworICAgSW50ZXJuYWxHbnVFZmlB cHBzRHJ2MFByb3RvY29sRGF0YS5Db3VudGVyICsrOworICAgcmV0dXJuIEVGSV9TVUNDRVNTOwor IH0KK0BAIC0xNDEsNyArMTQxLDcgQEAgRHJ2MFVubG9hZChJTiBFRklfSEFORExFIEltYWdlSGFu ZGxlKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZHbnVFZmlBcHBzRHJ2MFBy b3RvY29sR3VpZCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAmSW50ZXJuYWxH bnVFZmlBcHBzRHJ2MFByb3RvY29sRGF0YS5Qcm90bywKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBOVUxMKTsKKy0gIFByaW50KEwiRHJpdmVyIGluc3RhbmNlIHVubG9hZGVkLlxu IiwgSW1hZ2VIYW5kbGUpOworKyAgUHJpbnQodSJEcml2ZXIgaW5zdGFuY2UgdW5sb2FkZWQuXG4i LCBJbWFnZUhhbmRsZSk7CisgICByZXR1cm4gRUZJX1NVQ0NFU1M7CisgfQorIAorQEAgLTE2Nyw3 ICsxNjcsNyBAQCBlZmlfbWFpbiAoRUZJX0hBTkRMRSBJbWFnZUhhbmRsZSwgRUZJX1NZU1RFTV9U QUJMRSAqU3lzVGFiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHZvaWQqKikmTG9h ZGVkSW1hZ2UsIEltYWdlSGFuZGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTlVM TCwgRUZJX09QRU5fUFJPVE9DT0xfR0VUX1BST1RPQ09MKTsKKyAgIGlmIChFRklfRVJST1IoU3Rh dHVzKSkgeworLSAgICBQcmludChMIkNvdWxkIG5vdCBvcGVuIGxvYWRlZCBpbWFnZSBwcm90b2Nv bDogJWRcbiIsIFN0YXR1cyk7CisrICAgIFByaW50KHUiQ291bGQgbm90IG9wZW4gbG9hZGVkIGlt YWdlIHByb3RvY29sOiAlZFxuIiwgU3RhdHVzKTsKKyAgICAgcmV0dXJuIFN0YXR1czsKKyAgIH0K KyAKK0BAIC0xNzYsNyArMTc2LDcgQEAgZWZpX21haW4gKEVGSV9IQU5ETEUgSW1hZ2VIYW5kbGUs IEVGSV9TWVNURU1fVEFCTEUgKlN5c1RhYikKKyAgICAgICAmSW1hZ2VIYW5kbGUsICZHbnVFZmlB cHBzRHJ2MFByb3RvY29sR3VpZCwKKyAgICAgICAmSW50ZXJuYWxHbnVFZmlBcHBzRHJ2MFByb3Rv Y29sRGF0YS5Qcm90bywgTlVMTCk7CisgICBpZiAoRUZJX0VSUk9SKFN0YXR1cykpIHsKKy0gICAg UHJpbnQoTCJFcnJvciByZWdpc3RlcmluZyBkcml2ZXIgaW5zdGFuY2U6ICVkXG4iLCBTdGF0dXMp OworKyAgICBQcmludCh1IkVycm9yIHJlZ2lzdGVyaW5nIGRyaXZlciBpbnN0YW5jZTogJWRcbiIs IFN0YXR1cyk7CisgICAgIHJldHVybiBTdGF0dXM7CisgICB9CisgCitAQCAtMTg0LDcgKzE4NCw3 IEBAIGVmaV9tYWluIChFRklfSEFORExFIEltYWdlSGFuZGxlLCBFRklfU1lTVEVNX1RBQkxFICpT eXNUYWIpCisgICAgKiBpbnN0YW5jZSBmcm9tIHN5c3RlbSAqLworICAgTG9hZGVkSW1hZ2UtPlVu bG9hZCA9IChFRklfSU1BR0VfVU5MT0FEKURydjBVbmxvYWQ7CisgCistICBQcmludChMIkRyaXZl ciBpbnN0YW5jZSBsb2FkZWQgc3VjY2Vzc2Z1bGx5LlxuIik7CisrICBQcmludCh1IkRyaXZlciBp bnN0YW5jZSBsb2FkZWQgc3VjY2Vzc2Z1bGx5LlxuIik7CisgICByZXR1cm4gRUZJX1NVQ0NFU1M7 ICAvKiBhdCB0aGlzIHBvaW50LCB0aGlzIGluc3RhbmNlIHN0YXlzIHJlc2lkZW50CisgICAgICAg ICAgICAgICAgICAgICAgICAgKiB1bnRpbCBpbWFnZSBpcyB1bmxvYWRlZCwgZWcuIHdpdGggc2hl bGwncyB1bmxvYWQsCisgICAgICAgICAgICAgICAgICAgICAgICAgKiBFeGl0Qm9vdFNlcnZpY2Vz KCkgKi8KK2RpZmYgLS1naXQgYS9hcHBzL2RydjBfdXNlLmMgYi9hcHBzL2RydjBfdXNlLmMKK2lu ZGV4IGQ4Njg4Y2YuLjViZWQyZWQgMTAwNjQ0CistLS0gYS9hcHBzL2RydjBfdXNlLmMKKysrKyBi L2FwcHMvZHJ2MF91c2UuYworQEAgLTI4LDIwICsyOCwyMCBAQCBQbGF5V2l0aEdudUVmaUFwcHNE cnYwUHJvdG9jb2woSU4gRUZJX0hBTkRMRSBEcnZIYW5kbGUpIHsKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIE5VTEwsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBFRklfT1BF Tl9QUk9UT0NPTF9HRVRfUFJPVE9DT0wpOworICAgaWYgKEVGSV9FUlJPUihTdGF0dXMpKSB7Cist ICAgIFByaW50KEwiQ2Fubm90IG9wZW4gcHJvdG86ICVkXG4iLCBTdGF0dXMpOworKyAgICBQcmlu dCh1IkNhbm5vdCBvcGVuIHByb3RvOiAlZFxuIiwgU3RhdHVzKTsKKyAgICAgcmV0dXJuIFN0YXR1 czsKKyAgIH0KKyAKKy0gIFN0YXR1cyA9IHVlZmlfY2FsbF93cmFwcGVyKGRydi0+U2F5SGVsbG8s IDIsIEwiU2FtcGxlIFVFRkkgRHJpdmVyIik7CisrICBTdGF0dXMgPSB1ZWZpX2NhbGxfd3JhcHBl cihkcnYtPlNheUhlbGxvLCAyLCB1IlNhbXBsZSBVRUZJIERyaXZlciIpOworICAgaWYgKEVGSV9F UlJPUihTdGF0dXMpKSB7CistICAgIFByaW50KEwiQ2Fubm90IGNhbGwgU2F5SGVsbG86ICVkXG4i LCBTdGF0dXMpOworKyAgICBQcmludCh1IkNhbm5vdCBjYWxsIFNheUhlbGxvOiAlZFxuIiwgU3Rh dHVzKTsKKyAgIH0KKyAKKyAgIFN0YXR1cyA9IHVlZmlfY2FsbF93cmFwcGVyKGRydi0+R2V0TnVt YmVyT2ZIZWxsbywgMiwgJk51bWJlck9mSGVsbG8pOworICAgaWYgKEVGSV9FUlJPUihTdGF0dXMp KSB7CistICAgIFByaW50KEwiQ2Fubm90IGNhbGwgR2V0TnVtYmVyT2ZIZWxsbzogJWRcbiIsIFN0 YXR1cyk7CisrICAgIFByaW50KHUiQ2Fubm90IGNhbGwgR2V0TnVtYmVyT2ZIZWxsbzogJWRcbiIs IFN0YXR1cyk7CisgICB9IGVsc2UgeworLSAgICBQcmludChMIkhlbGxvIHdhcyBjYWxsZWQgJWQg dGltZShzKS5cbiIsIE51bWJlck9mSGVsbG8pOworKyAgICBQcmludCh1IkhlbGxvIHdhcyBjYWxs ZWQgJWQgdGltZShzKS5cbiIsIE51bWJlck9mSGVsbG8pOworICAgfQorIAorICAgcmV0dXJuIEVG SV9TVUNDRVNTOworQEAgLTYwLDE2ICs2MCwxNiBAQCBlZmlfbWFpbiAoRUZJX0hBTkRMRSBJbWFn ZSwgRUZJX1NZU1RFTV9UQUJMRSAqU3lzVGFiKQorICAgU3RhdHVzID0gTGliTG9jYXRlSGFuZGxl KEJ5UHJvdG9jb2wsICZHbnVFZmlBcHBzRHJ2MFByb3RvY29sR3VpZCwKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICBOVUxMLCAmTm9IYW5kbGVzLCAmSGFuZGxlcyk7CisgICBpZiAoRUZJX0VS Uk9SKFN0YXR1cykpIHsKKy0gICAgUHJpbnQoTCJFcnJvciBsb29raW5nIHVwIGhhbmRsZXMgZm9y IHByb3RvOiAlZFxuIiwgU3RhdHVzKTsKKysgICAgUHJpbnQodSJFcnJvciBsb29raW5nIHVwIGhh bmRsZXMgZm9yIHByb3RvOiAlZFxuIiwgU3RhdHVzKTsKKyAgICAgcmV0dXJuIFN0YXR1czsKKyAg IH0KKyAKKyAgIGZvciAoaSA9IDAgOyBpIDwgTm9IYW5kbGVzIDsgKytpKQorICAgeworLSAgICBQ cmludChMIlBsYXlpbmcgd2l0aCBkcml2ZXIgaW5zdGFuY2UgJWQuLi5cbiIsIGkpOworKyAgICBQ cmludCh1IlBsYXlpbmcgd2l0aCBkcml2ZXIgaW5zdGFuY2UgJWQuLi5cbiIsIGkpOworICAgICBT dGF0dXMgPSBQbGF5V2l0aEdudUVmaUFwcHNEcnYwUHJvdG9jb2woSGFuZGxlc1tpXSk7CisgICAg IGlmIChFRklfRVJST1IoU3RhdHVzKSkKKy0gICAgICBQcmludChMIkVycm9yIHBsYXlpbmcgd2l0 aCBpbnN0YW5jZSAlZCwgc2tpcHBpbmdcbiIsIGkpOworKyAgICAgIFByaW50KHUiRXJyb3IgcGxh eWluZyB3aXRoIGluc3RhbmNlICVkLCBza2lwcGluZ1xuIiwgaSk7CisgICB9CisgCisgICBpZiAo SGFuZGxlcykKK2RpZmYgLS1naXQgYS9hcHBzL2xmYmdyaWQuYyBiL2FwcHMvbGZiZ3JpZC5jCitp bmRleCAzOTE0MzEzLi5kNDQ0MDg3IDEwMDY0NAorLS0tIGEvYXBwcy9sZmJncmlkLmMKKysrKyBi L2FwcHMvbGZiZ3JpZC5jCitAQCAtMjgsNyArMjgsNyBAQCBmaWxsX2JveGVzKFVJTlQzMiAqUGl4 ZWxCdWZmZXIsIFVJTlQzMiBXaWR0aCwgVUlOVDMyIEhlaWdodCwgVUlOVDMyIFBpdGNoLAorIAlj YXNlIFBpeGVsQmx0T25seToKKyAJCXJldHVybjsKKyAJZGVmYXVsdDoKKy0JCVByaW50KEwiSW52 YWxpZCBwaXhlbCBmb3JtYXRcbiIpOworKwkJUHJpbnQodSJJbnZhbGlkIHBpeGVsIGZvcm1hdFxu Iik7CisgCQlyZXR1cm47CisgCX0KKyAKK0BAIC02Miw3ICs2Miw3IEBAIGRyYXdfYm94ZXMoRUZJ X0dSQVBISUNTX09VVFBVVF9QUk9UT0NPTCAqZ29wKQorIAlpZiAoZ29wLT5Nb2RlKSB7CisgCQlp bWF4ID0gZ29wLT5Nb2RlLT5NYXhNb2RlOworIAl9IGVsc2UgeworLQkJUHJpbnQoTCJnb3AtPk1v ZGUgaXMgTlVMTFxuIik7CisrCQlQcmludCh1ImdvcC0+TW9kZSBpcyBOVUxMXG4iKTsKKyAJCXJl dHVybjsKKyAJfQorIAorQEAgLTcxLDggKzcxLDggQEAgZHJhd19ib3hlcyhFRklfR1JBUEhJQ1Nf T1VUUFVUX1BST1RPQ09MICpnb3ApCisgCQlyYyA9IHVlZmlfY2FsbF93cmFwcGVyKGdvcC0+UXVl cnlNb2RlLCA0LCBnb3AsIGksICZTaXplT2ZJbmZvLAorIAkJCQkJJmluZm8pOworIAkJaWYgKHJj ID09IEVGSV9OT1RfU1RBUlRFRCkgeworLQkJCVByaW50KEwiZ29wLT5RdWVyeU1vZGUoKSByZXR1 cm5lZCAlclxuIiwgcmMpOworLQkJCVByaW50KEwiVHJ5aW5nIHRvIHN0YXJ0IEdPUCB3aXRoIFNl dE1vZGUoKS5cbiIpOworKwkJCVByaW50KHUiZ29wLT5RdWVyeU1vZGUoKSByZXR1cm5lZCAlclxu IiwgcmMpOworKwkJCVByaW50KHUiVHJ5aW5nIHRvIHN0YXJ0IEdPUCB3aXRoIFNldE1vZGUoKS5c biIpOworIAkJCXJjID0gdWVmaV9jYWxsX3dyYXBwZXIoZ29wLT5TZXRNb2RlLCAyLCBnb3AsCisg CQkJCWdvcC0+TW9kZSA/IGdvcC0+TW9kZS0+TW9kZSA6IDApOworIAkJCXJjID0gdWVmaV9jYWxs X3dyYXBwZXIoZ29wLT5RdWVyeU1vZGUsIDQsIGdvcCwgaSwKK0BAIC04MCw3ICs4MCw3IEBAIGRy YXdfYm94ZXMoRUZJX0dSQVBISUNTX09VVFBVVF9QUk9UT0NPTCAqZ29wKQorIAkJfQorIAorIAkJ aWYgKEVGSV9FUlJPUihyYykpIHsKKy0JCQlQcmludChMIiVkOiBCYWQgcmVzcG9uc2UgZnJvbSBR dWVyeU1vZGU6ICVyICglZClcbiIsCisrCQkJUHJpbnQodSIlZDogQmFkIHJlc3BvbnNlIGZyb20g UXVlcnlNb2RlOiAlciAoJWQpXG4iLAorIAkJCSAgICAgIGksIHJjLCByYyk7CisgCQkJY29udGlu dWU7CisgCQl9CitAQCAtOTYsMTMgKzk2LDEzIEBAIGRyYXdfYm94ZXMoRUZJX0dSQVBISUNTX09V VFBVVF9QUk9UT0NPTCAqZ29wKQorIAkJfSBlbHNlIHsKKyAJCQlDb3B5U2l6ZSA9IEJ1ZmZlclNp emUgPCBnb3AtPk1vZGUtPkZyYW1lQnVmZmVyU2l6ZSA/CisgCQkJCUJ1ZmZlclNpemUgOiBnb3At Pk1vZGUtPkZyYW1lQnVmZmVyU2l6ZTsKKy0JCQlQcmludChMImhlaWdodCAqIHBpdGNoICogcGl4 ZWxzaXplID0gJWx1IGJ1ZiBmYiBzaXplIGlzICVsdTsgdXNpbmcgJWx1XG4iLAorKwkJCVByaW50 KHUiaGVpZ2h0ICogcGl0Y2ggKiBwaXhlbHNpemUgPSAlbHUgYnVmIGZiIHNpemUgaXMgJWx1OyB1 c2luZyAlbHVcbiIsCisgCQkJICAgICAgQnVmZmVyU2l6ZSwgZ29wLT5Nb2RlLT5GcmFtZUJ1ZmZl clNpemUsIENvcHlTaXplKTsKKyAJCX0KKyAKKyAJCVBpeGVsQnVmZmVyID0gQWxsb2NhdGVQb29s KEJ1ZmZlclNpemUpOworIAkJaWYgKCFQaXhlbEJ1ZmZlcikgeworLQkJCVByaW50KEwiQWxsb2Nh dGlvbiBvZiAweCUwOGx4IGJ5dGVzIGZhaWxlZC5cbiIsCisrCQkJUHJpbnQodSJBbGxvY2F0aW9u IG9mIDB4JTA4bHggYnl0ZXMgZmFpbGVkLlxuIiwKKyAJCQkgICAgICBzaXplb2YoVUlOVDMyKSAq IE51bVBpeGVscyk7CisgCQkJcmV0dXJuOworIAkJfQorQEAgLTExMiw3ICsxMTIsNyBAQCBkcmF3 X2JveGVzKEVGSV9HUkFQSElDU19PVVRQVVRfUFJPVE9DT0wgKmdvcCkKKyAJCQkgICBpbmZvLT5Q aXhlbEZvcm1hdCwgaW5mby0+UGl4ZWxJbmZvcm1hdGlvbik7CisgCisgCQlpZiAoaW5mby0+UGl4 ZWxGb3JtYXQgPT0gUGl4ZWxCbHRPbmx5KSB7CistCQkJUHJpbnQoTCJObyBsaW5lYXIgZnJhbWVi dWZmZXIgb24gdGhpcyBkZXZpY2UuXG4iKTsKKysJCQlQcmludCh1Ik5vIGxpbmVhciBmcmFtZWJ1 ZmZlciBvbiB0aGlzIGRldmljZS5cbiIpOworIAkJCXJldHVybjsKKyAJCX0KKyAjaWYgX19TSVpF T0ZfUE9JTlRFUl9fID09IDgKK0BAIC0xMjYsNyArMTI2LDcgQEAgZHJhd19ib3hlcyhFRklfR1JB UEhJQ1NfT1VUUFVUX1BST1RPQ09MICpnb3ApCisgCQlDb3B5TWVtKChWT0lEICopRnJhbWVCdWZm ZXJBZGRyLCBQaXhlbEJ1ZmZlciwgQ29weVNpemUpOworIAkJcmV0dXJuOworIAl9CistCVByaW50 KEwiTmV2ZXIgZm91bmQgdGhlIGFjdGl2ZSB2aWRlbyBtb2RlP1xuIik7CisrCVByaW50KHUiTmV2 ZXIgZm91bmQgdGhlIGFjdGl2ZSB2aWRlbyBtb2RlP1xuIik7CisgfQorIAorIHN0YXRpYyBFRklf U1RBVFVTCitAQCAtMTM4LDcgKzEzOCw3IEBAIFNldFdhdGNoZG9nKFVJTlROIHNlY29uZHMpCisg CWlmIChFRklfRVJST1IocmMpKSB7CisgCQlDSEFSMTYgQnVmZmVyWzY0XTsKKyAJCVN0YXR1c1Rv U3RyaW5nKEJ1ZmZlciwgcmMpOworLQkJUHJpbnQoTCJCYWQgcmVzcG9uc2UgZnJvbSBRdWVyeU1v ZGU6ICVzICglZClcbiIsIEJ1ZmZlciwgcmMpOworKwkJUHJpbnQodSJCYWQgcmVzcG9uc2UgZnJv bSBRdWVyeU1vZGU6ICVzICglZClcbiIsIEJ1ZmZlciwgcmMpOworIAl9CisgCXJldHVybiByYzsK KyB9CitAQCAtMTU1LDEyICsxNTUsMTIgQEAgZWZpX21haW4gKEVGSV9IQU5ETEUgaW1hZ2VfaGFu ZGxlLCBFRklfU1lTVEVNX1RBQkxFICpzeXN0YWIpCisgCisgCXJjID0gTGliTG9jYXRlUHJvdG9j b2woJkdyYXBoaWNzT3V0cHV0UHJvdG9jb2wsICh2b2lkICoqKSZnb3ApOworIAlpZiAoRUZJX0VS Uk9SKHJjKSkgeworLQkJUHJpbnQoTCJDb3VsZCBub3QgbG9jYXRlIEdPUDogJXJcbiIsIHJjKTsK KysJCVByaW50KHUiQ291bGQgbm90IGxvY2F0ZSBHT1A6ICVyXG4iLCByYyk7CisgCQlyZXR1cm4g cmM7CisgCX0KKyAKKyAJaWYgKCFnb3ApIHsKKy0JCVByaW50KEwiTG9jYXRlUHJvdG9jb2woR09Q LCAmZ29wKSByZXR1cm5lZCAlciBidXQgR09QIGlzIE5VTExcbiIsIHJjKTsKKysJCVByaW50KHUi TG9jYXRlUHJvdG9jb2woR09QLCAmZ29wKSByZXR1cm5lZCAlciBidXQgR09QIGlzIE5VTExcbiIs IHJjKTsKKyAJCXJldHVybiBFRklfVU5TVVBQT1JURUQ7CisgCX0KKyAKK2RpZmYgLS1naXQgYS9h cHBzL21vZGVsaXN0LmMgYi9hcHBzL21vZGVsaXN0LmMKK2luZGV4IDEzMjE5YjcuLjUxNTQ5NjIg MTAwNjQ0CistLS0gYS9hcHBzL21vZGVsaXN0LmMKKysrKyBiL2FwcHMvbW9kZWxpc3QuYworQEAg LTExLDkgKzExLDkgQEAgcHJpbnRfbW9kZXMoRUZJX0dSQVBISUNTX09VVFBVVF9QUk9UT0NPTCAq Z29wKQorIAorIAlpZiAoZ29wLT5Nb2RlKSB7CisgCQlpbWF4ID0gZ29wLT5Nb2RlLT5NYXhNb2Rl OworLQkJUHJpbnQoTCJHT1AgcmVwb3J0cyBNYXhNb2RlICVkXG4iLCBpbWF4KTsKKysJCVByaW50 KHUiR09QIHJlcG9ydHMgTWF4TW9kZSAlZFxuIiwgaW1heCk7CisgCX0gZWxzZSB7CistCQlQcmlu dChMImdvcC0+TW9kZSBpcyBOVUxMXG4iKTsKKysJCVByaW50KHUiZ29wLT5Nb2RlIGlzIE5VTExc biIpOworIAkJaW1heCA9IDE7CisgCX0KKyAKK0BAIC0yMyw4ICsyMyw4IEBAIHByaW50X21vZGVz KEVGSV9HUkFQSElDU19PVVRQVVRfUFJPVE9DT0wgKmdvcCkKKyAJCXJjID0gdWVmaV9jYWxsX3dy YXBwZXIoZ29wLT5RdWVyeU1vZGUsIDQsIGdvcCwgaSwgJlNpemVPZkluZm8sCisgCQkJCQkmaW5m byk7CisgCQlpZiAocmMgPT0gRUZJX05PVF9TVEFSVEVEKSB7CistCQkJUHJpbnQoTCJnb3AtPlF1 ZXJ5TW9kZSgpIHJldHVybmVkICVyXG4iLCByYyk7CistCQkJUHJpbnQoTCJUcnlpbmcgdG8gc3Rh cnQgR09QIHdpdGggU2V0TW9kZSgpLlxuIik7CisrCQkJUHJpbnQodSJnb3AtPlF1ZXJ5TW9kZSgp IHJldHVybmVkICVyXG4iLCByYyk7CisrCQkJUHJpbnQodSJUcnlpbmcgdG8gc3RhcnQgR09QIHdp dGggU2V0TW9kZSgpLlxuIik7CisgCQkJcmMgPSB1ZWZpX2NhbGxfd3JhcHBlcihnb3AtPlNldE1v ZGUsIDIsIGdvcCwKKyAJCQkJZ29wLT5Nb2RlID8gZ29wLT5Nb2RlLT5Nb2RlIDogMCk7CisgCQkJ cmMgPSB1ZWZpX2NhbGxfd3JhcHBlcihnb3AtPlF1ZXJ5TW9kZSwgNCwgZ29wLCBpLAorQEAgLTMy LDM3ICszMiwzNyBAQCBwcmludF9tb2RlcyhFRklfR1JBUEhJQ1NfT1VUUFVUX1BST1RPQ09MICpn b3ApCisgCQl9CisgCisgCQlpZiAoRUZJX0VSUk9SKHJjKSkgeworLQkJCVByaW50KEwiJWQ6IEJh ZCByZXNwb25zZSBmcm9tIFF1ZXJ5TW9kZTogJXIgKCVkKVxuIiwKKysJCQlQcmludCh1IiVkOiBC YWQgcmVzcG9uc2UgZnJvbSBRdWVyeU1vZGU6ICVyICglZClcbiIsCisgCQkJICAgICAgaSwgcmMs IHJjKTsKKyAJCQljb250aW51ZTsKKyAJCX0KKy0JCVByaW50KEwiJWMlZDogJWR4JWQgIiwKKysJ CVByaW50KHUiJWMlZDogJWR4JWQgIiwKKyAJCSAgICAgIChnb3AtPk1vZGUgJiYKKyAJCSAgICAg ICBDb21wYXJlTWVtKGluZm8sZ29wLT5Nb2RlLT5JbmZvLHNpemVvZigqaW5mbykpID09IDAKKyAJ CSAgICAgICApID8gJyonIDogJyAnLAorIAkJICAgICAgaSwgaW5mby0+SG9yaXpvbnRhbFJlc29s dXRpb24sIGluZm8tPlZlcnRpY2FsUmVzb2x1dGlvbik7CisgCQlzd2l0Y2goaW5mby0+UGl4ZWxG b3JtYXQpIHsKKyAJCQljYXNlIFBpeGVsUmVkR3JlZW5CbHVlUmVzZXJ2ZWQ4Qml0UGVyQ29sb3I6 CistCQkJCVByaW50KEwiUkdCUiIpOworKwkJCQlQcmludCh1IlJHQlIiKTsKKyAJCQkJYnJlYWs7 CisgCQkJY2FzZSBQaXhlbEJsdWVHcmVlblJlZFJlc2VydmVkOEJpdFBlckNvbG9yOgorLQkJCQlQ cmludChMIkJHUlIiKTsKKysJCQkJUHJpbnQodSJCR1JSIik7CisgCQkJCWJyZWFrOworIAkJCWNh c2UgUGl4ZWxCaXRNYXNrOgorLQkJCQlQcmludChMIlI6JTA4eCBHOiUwOHggQjolMDh4IFg6JTA4 eCIsCisrCQkJCVByaW50KHUiUjolMDh4IEc6JTA4eCBCOiUwOHggWDolMDh4IiwKKyAJCQkJCWlu Zm8tPlBpeGVsSW5mb3JtYXRpb24uUmVkTWFzaywKKyAJCQkJCWluZm8tPlBpeGVsSW5mb3JtYXRp b24uR3JlZW5NYXNrLAorIAkJCQkJaW5mby0+UGl4ZWxJbmZvcm1hdGlvbi5CbHVlTWFzaywKKyAJ CQkJCWluZm8tPlBpeGVsSW5mb3JtYXRpb24uUmVzZXJ2ZWRNYXNrKTsKKyAJCQkJYnJlYWs7Cisg CQkJY2FzZSBQaXhlbEJsdE9ubHk6CistCQkJCVByaW50KEwiKGJsdCBvbmx5KSIpOworKwkJCQlQ cmludCh1IihibHQgb25seSkiKTsKKyAJCQkJYnJlYWs7CisgCQkJZGVmYXVsdDoKKy0JCQkJUHJp bnQoTCIoSW52YWxpZCBwaXhlbCBmb3JtYXQpIik7CisrCQkJCVByaW50KHUiKEludmFsaWQgcGl4 ZWwgZm9ybWF0KSIpOworIAkJCQlicmVhazsKKyAJCX0KKy0JCVByaW50KEwiIHBpdGNoICVkXG4i LCBpbmZvLT5QaXhlbHNQZXJTY2FuTGluZSk7CisrCQlQcmludCh1IiBwaXRjaCAlZFxuIiwgaW5m by0+UGl4ZWxzUGVyU2NhbkxpbmUpOworIAl9CisgfQorIAorQEAgLTc1LDcgKzc1LDcgQEAgU2V0 V2F0Y2hkb2coVUlOVE4gc2Vjb25kcykKKyAJaWYgKEVGSV9FUlJPUihyYykpIHsKKyAJCUNIQVIx NiBCdWZmZXJbNjRdOworIAkJU3RhdHVzVG9TdHJpbmcoQnVmZmVyLCByYyk7CistCQlQcmludChM IkJhZCByZXNwb25zZSBmcm9tIFF1ZXJ5TW9kZTogJXMgKCVkKVxuIiwgQnVmZmVyLCByYyk7Cisr CQlQcmludCh1IkJhZCByZXNwb25zZSBmcm9tIFF1ZXJ5TW9kZTogJXMgKCVkKVxuIiwgQnVmZmVy LCByYyk7CisgCX0KKyAJcmV0dXJuIHJjOworIH0KK0BAIC05MiwxMiArOTIsMTIgQEAgZWZpX21h aW4gKEVGSV9IQU5ETEUgaW1hZ2VfaGFuZGxlLCBFRklfU1lTVEVNX1RBQkxFICpzeXN0YWIpCisg CisgCXJjID0gTGliTG9jYXRlUHJvdG9jb2woJkdyYXBoaWNzT3V0cHV0UHJvdG9jb2wsICh2b2lk ICoqKSZnb3ApOworIAlpZiAoRUZJX0VSUk9SKHJjKSkgeworLQkJUHJpbnQoTCJDb3VsZCBub3Qg bG9jYXRlIEdPUDogJXJcbiIsIHJjKTsKKysJCVByaW50KHUiQ291bGQgbm90IGxvY2F0ZSBHT1A6 ICVyXG4iLCByYyk7CisgCQlyZXR1cm4gcmM7CisgCX0KKyAKKyAJaWYgKCFnb3ApIHsKKy0JCVBy aW50KEwiTG9jYXRlUHJvdG9jb2woR09QLCAmZ29wKSByZXR1cm5lZCAlciBidXQgR09QIGlzIE5V TExcbiIsIHJjKTsKKysJCVByaW50KHUiTG9jYXRlUHJvdG9jb2woR09QLCAmZ29wKSByZXR1cm5l ZCAlciBidXQgR09QIGlzIE5VTExcbiIsIHJjKTsKKyAJCXJldHVybiBFRklfVU5TVVBQT1JURUQ7 CisgCX0KKyAKK2RpZmYgLS1naXQgYS9hcHBzL3ByaW50ZW52LmMgYi9hcHBzL3ByaW50ZW52LmMK K2luZGV4IDYzNDFlNDAuLmVmYTdjZDYgMTAwNjQ0CistLS0gYS9hcHBzL3ByaW50ZW52LmMKKysr KyBiL2FwcHMvcHJpbnRlbnYuYworQEAgLTE0LDEwICsxNCwxMCBAQCBlZmlfbWFpbiAoRUZJX0hB TkRMRSBpbWFnZSwgRUZJX1NZU1RFTV9UQUJMRSAqc3lzdGFiKQorIAluYW1lWzBdID0gMDsKKyAJ dmVuZG9yID0gTnVsbEd1aWQ7CisgCistCVByaW50KEwiR1VJRCAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgVmFyaWFibGUgTmFtZSAgICAgICAgVmFsdWVcbiIpOworLQlQcmludChMIj09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09ID09PT09PT09PT09PT09PT09PT09ID09 PT09PT09XG4iKTsKKysJUHJpbnQodSJHVUlEICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBWYXJpYWJsZSBOYW1lICAgICAgICBWYWx1ZVxuIik7CisrCVByaW50KHUiPT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0gPT09PT09PT09PT09PT09PT09PT0gPT09PT09PT1cbiIp OworIAorLQlTdHJDcHkoZm10LCBMIiUuLTM1ZyAlLi0yMHMgJXNcbiIpOworKwlTdHJDcHkoZm10 LCB1IiUuLTM1ZyAlLi0yMHMgJXNcbiIpOworIAl3aGlsZSAoMSkgeworIAkJc2l6ZSA9IHNpemVv ZihuYW1lKTsKKyAJCXN0YXR1cyA9IHVlZmlfY2FsbF93cmFwcGVyKFJULT5HZXROZXh0VmFyaWFi bGVOYW1lLCAzLCAmc2l6ZSwgbmFtZSwgJnZlbmRvcik7CitkaWZmIC0tZ2l0IGEvYXBwcy9yb3V0 ZTgwaC5jIGIvYXBwcy9yb3V0ZTgwaC5jCitpbmRleCA1MjcyZGQzLi5hMDdkOWNmIDEwMDY0NAor LS0tIGEvYXBwcy9yb3V0ZTgwaC5jCisrKysgYi9hcHBzL3JvdXRlODBoLmMKK0BAIC0yNywxNyAr MjcsMTcgQEAgdHlwZWRlZiBzdHJ1Y3QgeworIHN0YXRpYyBpbmxpbmUgdm9pZCBzZXRfYml0KHZv bGF0aWxlIHVpbnQzMl90ICpmbGFnLCBpbnQgYml0LCBpbnQgdmFsdWUpCisgeworIAl1aW50MzJf dCB2YWwgPSAqZmxhZzsKKy0JUHJpbnQoTCJjdXJyZW50IHZhbHVlIGlzIDB4JTJ4XG4iLCB2YWwp OworKwlQcmludCh1ImN1cnJlbnQgdmFsdWUgaXMgMHglMnhcbiIsIHZhbCk7CisgCisgCWlmICh2 YWx1ZSkgeworIAkJdmFsIHw9ICgxIDw8IGJpdCk7CisgCX0gZWxzZSB7CisgCQl2YWwgJj0gfigx IDw8IGJpdCk7CisgCX0KKy0JUHJpbnQoTCJzZXR0aW5nIHZhbHVlIHRvIDB4JTJ4XG4iLCB2YWwp OworKwlQcmludCh1InNldHRpbmcgdmFsdWUgdG8gMHglMnhcbiIsIHZhbCk7CisgCSpmbGFnID0g dmFsOworIAl2YWwgPSAqZmxhZzsKKy0JUHJpbnQoTCJuZXcgdmFsdWUgaXMgMHglMnhcbiIsIHZh bCk7CisrCVByaW50KHUibmV3IHZhbHVlIGlzIDB4JTJ4XG4iLCB2YWwpOworIH0KKyAKKyBzdGF0 aWMgaW50IGlzX2RldmljZShFRklfUENJX0lPICpwY2lpbywgdWludDE2X3QgdmVuZG9yX2lkLCB1 aW50MTZfdCBkZXZpY2VfaWQpCitAQCAtMTEyLDcgKzExMiw3IEBAIGVmaV9tYWluIChFRklfSEFO RExFIGltYWdlX2hhbmRsZSwgRUZJX1NZU1RFTV9UQUJMRSAqc3lzdGFiKQorIAl9CisgCisgCWlm IChyYyA9PSBFRklfTk9UX0ZPVU5EKSB7CistCQlQcmludChMIkRldmljZSBub3QgZm91bmQuXG4i KTsKKysJCVByaW50KHUiRGV2aWNlIG5vdCBmb3VuZC5cbiIpOworIAkJcmV0dXJuIHJjOworIAl9 IGVsc2UgaWYgKEVGSV9FUlJPUihyYykpIHsKKyAJCXJldHVybiByYzsKK0BAIC0xMjMsMTIgKzEy MywxMiBAQCBlZmlfbWFpbiAoRUZJX0hBTkRMRSBpbWFnZV9oYW5kbGUsIEVGSV9TWVNURU1fVEFC TEUgKnN5c3RhYikKKyAJaWYgKEVGSV9FUlJPUihyYykpCisgCQlyZXR1cm4gcmM7CisgCWlmICgh KGxwY2lmLnJjYmEgJiAxKSkgeworLQkJUHJpbnQoTCJyY3JiIGlzIG5vdCBtYXBwZWQsIGNhbm5v dCByb3V0ZSBwb3J0IDgwaFxuIik7CisrCQlQcmludCh1InJjcmIgaXMgbm90IG1hcHBlZCwgY2Fu bm90IHJvdXRlIHBvcnQgODBoXG4iKTsKKyAJCXJldHVybiBFRklfVU5TVVBQT1JURUQ7CisgCX0K KyAJbHBjaWYucmNiYSAmPSB+MVVMOworIAorLQlQcmludChMInJjYmE6IDB4JTh4XG4iLCBscGNp Zi5yY2JhLCBscGNpZi5yY2JhKTsKKysJUHJpbnQodSJyY2JhOiAweCU4eFxuIiwgbHBjaWYucmNi YSwgbHBjaWYucmNiYSk7CisgCXNldF9iaXQoKHVpbnQzMl90ICopKGludHB0cl90KShscGNpZi5y Y2JhICsgR0NTX09GRlNFVF9BRERSKSwKKyAJCSAgICAgR0NTX1JQUl9TSElGVCwgR0NTX1JQUl9Q Q0kpOworIAorZGlmZiAtLWdpdCBhL2FwcHMvc2V0ZGJnLmMgYi9hcHBzL3NldGRiZy5jCitpbmRl eCA4OTcxNDBlLi43NjE3YmY5IDEwMDY0NAorLS0tIGEvYXBwcy9zZXRkYmcuYworKysrIGIvYXBw cy9zZXRkYmcuYworQEAgLTE2LDIyICsxNiwyMiBAQCBlZmlfbWFpbiAoRUZJX0hBTkRMRSBpbWFn ZSwgRUZJX1NZU1RFTV9UQUJMRSAqc3lzdGFiKQorICNpZiAwCisgCVVJTlQ4IGRhdGEgPSAxOwor IAorLQlzdGF0dXMgPSBSVC0+U2V0VmFyaWFibGUoTCJTSElNX0RFQlVHIiwgJlNISU1fR1VJRCwK KysJc3RhdHVzID0gUlQtPlNldFZhcmlhYmxlKHUiU0hJTV9ERUJVRyIsICZTSElNX0dVSUQsCisg CQkJCSBFRklfVkFSSUFCTEVfTk9OX1ZPTEFUSUxFIHwKKyAJCQkJIEVGSV9WQVJJQUJMRV9CT09U U0VSVklDRV9BQ0NFU1MgfAorIAkJCQkgRUZJX1ZBUklBQkxFX1JVTlRJTUVfQUNDRVNTLAorIAkJ CQkgc2l6ZW9mKGRhdGEpLCAmZGF0YSk7CisgCWlmIChFRklfRVJST1Ioc3RhdHVzKSkKKy0JCVBy aW50KEwiU2V0VmFyaWFibGUgZmFpbGVkOiAlclxuIiwgc3RhdHVzKTsKKysJCVByaW50KHUiU2V0 VmFyaWFibGUgZmFpbGVkOiAlclxuIiwgc3RhdHVzKTsKKyAjZW5kaWYKKyAKKy0Jc3RhdHVzID0g UlQtPlNldFZhcmlhYmxlKEwiR1JVQl9FTlYiLCAmU0hJTV9HVUlELAorKwlzdGF0dXMgPSBSVC0+ U2V0VmFyaWFibGUodSJHUlVCX0VOViIsICZTSElNX0dVSUQsCisgCQkJCSBFRklfVkFSSUFCTEVf Tk9OX1ZPTEFUSUxFIHwKKyAJCQkJIEVGSV9WQVJJQUJMRV9CT09UU0VSVklDRV9BQ0NFU1MgfAor IAkJCQkgRUZJX1ZBUklBQkxFX1JVTlRJTUVfQUNDRVNTLAorIAkJCQkgc2l6ZW9mKGdydWJlbnYp LTEsIGdydWJlbnYpOworIAlpZiAoRUZJX0VSUk9SKHN0YXR1cykpCistCQlQcmludChMIlNldFZh cmlhYmxlKEdSVUJfRU5WKSBmYWlsZWQ6ICVyXG4iLCBzdGF0dXMpOworKwkJUHJpbnQodSJTZXRW YXJpYWJsZShHUlVCX0VOVikgZmFpbGVkOiAlclxuIiwgc3RhdHVzKTsKKyAKKyAJcmV0dXJuIEVG SV9TVUNDRVNTOworIH0KK2RpZmYgLS1naXQgYS9hcHBzL3NldGptcC5jIGIvYXBwcy9zZXRqbXAu YworaW5kZXggZDllMGYyOS4uNTJjMTYzYiAxMDA2NDQKKy0tLSBhL2FwcHMvc2V0am1wLmMKKysr KyBiL2FwcHMvc2V0am1wLmMKK0BAIC0xNCwxNiArMTQsMTYgQEAgZWZpX21haW4oCisgCisgCUlu aXRpYWxpemVMaWIoaW1hZ2VfaGFuZGxlLCBzeXN0YWIpOworIAlyYyA9IHNldGptcChlbnYpOwor LQlQcmludChMInNldGptcCgpID0gJWRcbiIsIHJjKTsKKysJUHJpbnQodSJzZXRqbXAoKSA9ICVk XG4iLCByYyk7CisgCisgCWlmIChyYyA9PSAzKSB7CistCQlQcmludChMIjMgd29ya2VkXG4iKTsK KysJCVByaW50KHUiMyB3b3JrZWRcbiIpOworIAkJbG9uZ2ptcChlbnYsIDApOworIAkJcmV0dXJu IDA7CisgCX0KKyAKKyAJaWYgKHJjID09IDEpIHsKKy0JCVByaW50KEwiMCBnb3QgdG8gYmUgb25l IHlheVxuIik7CisrCQlQcmludCh1IjAgZ290IHRvIGJlIG9uZSB5YXlcbiIpOworIAkJcmV0dXJu IDA7CisgCX0KKyAKK2RpZmYgLS1naXQgYS9hcHBzL3QuYyBiL2FwcHMvdC5jCitpbmRleCBjN2Uz ZDU3Li4yODdjMWM3IDEwMDY0NAorLS0tIGEvYXBwcy90LmMKKysrKyBiL2FwcHMvdC5jCitAQCAt MjAsNyArMjAsNyBAQCBlZmlfbWFpbiAoRUZJX0hBTkRMRSBpbWFnZV9oYW5kbGUsIEVGSV9TWVNU RU1fVEFCTEUgKnN5c3RhYikKKyAKKyAJSW5pdGlhbGl6ZUxpYihpbWFnZV9oYW5kbGUsIHN5c3Rh Yik7CisgCWNvbm91dCA9IHN5c3RhYi0+Q29uT3V0OworLQl1ZWZpX2NhbGxfd3JhcHBlcihjb25v dXQtPk91dHB1dFN0cmluZywgMiwgY29ub3V0LCAoQ0hBUjE2ICopTCJIZWxsbyBXb3JsZCFcblxy Iik7CisrCXVlZmlfY2FsbF93cmFwcGVyKGNvbm91dC0+T3V0cHV0U3RyaW5nLCAyLCBjb25vdXQs IChDSEFSMTYgKil1IkhlbGxvIFdvcmxkIVxuXHIiKTsKKyAJdWVmaV9jYWxsX3dyYXBwZXIoY29u b3V0LT5PdXRwdXRTdHJpbmcsIDIsIGNvbm91dCwgYTJ1KCJIZWxsbyBXb3JsZCFcblxyIikpOwor IAorIAlyZXR1cm4gRUZJX1NVQ0NFU1M7CitkaWZmIC0tZ2l0IGEvYXBwcy90Mi5jIGIvYXBwcy90 Mi5jCitpbmRleCA2YTA5YzQyLi42NmNhODE0IDEwMDY0NAorLS0tIGEvYXBwcy90Mi5jCisrKysg Yi9hcHBzL3QyLmMKK0BAIC04LDcgKzgsNyBAQCBlZmlfbWFpbiAoRUZJX0hBTkRMRSBpbWFnZSwg RUZJX1NZU1RFTV9UQUJMRSAqc3lzdGFiKQorIAorICAgICAgICAgSW5pdGlhbGl6ZUxpYihpbWFn ZSwgc3lzdGFiKTsKKyAJY29ub3V0ID0gc3lzdGFiLT5Db25PdXQ7CistCXVlZmlfY2FsbF93cmFw cGVyKGNvbm91dC0+T3V0cHV0U3RyaW5nLCAyLCBjb25vdXQsIEwiSGVsbG8gV29ybGQhXG5cciIp OworKwl1ZWZpX2NhbGxfd3JhcHBlcihjb25vdXQtPk91dHB1dFN0cmluZywgMiwgY29ub3V0LCB1 IkhlbGxvIFdvcmxkIVxuXHIiKTsKKyAKKyAJcmV0dXJuIEVGSV9TVUNDRVNTOworIH0KK2RpZmYg LS1naXQgYS9hcHBzL3QzLmMgYi9hcHBzL3QzLmMKK2luZGV4IDYyMzgzMGEuLjA5ZGI1OTggMTAw NjQ0CistLS0gYS9hcHBzL3QzLmMKKysrKyBiL2FwcHMvdDMuYworQEAgLTE2LDE5ICsxNiwxOSBA QCBlZmlfbWFpbigKKyAJSW5pdGlhbGl6ZUxpYihpbWFnZV9oYW5kbGUsIHN5c3RhYik7CisgCVBv b2xBbGxvY2F0aW9uVHlwZSA9IDI7IC8qIGtsb29qICovCisgCistCVByaW50KEwiSGVsbG8gV29y bGQhICgweGQ9MHgleCwgMTM9JWQpXG4iLCAxMywgMTMpOworKwlQcmludCh1IkhlbGxvIFdvcmxk ISAoMHhkPTB4JXgsIDEzPSVkKVxuIiwgMTMsIDEzKTsKKyAKKy0JUHJpbnQoTCJiZWZvcmUgSW5p dGlhbGl6ZUxpYigpOiBQb29sQWxsb2NhdGlvblR5cGU9JWRcbiIsCisrCVByaW50KHUiYmVmb3Jl IEluaXRpYWxpemVMaWIoKTogUG9vbEFsbG9jYXRpb25UeXBlPSVkXG4iLAorIAkJcGF0KTsKKyAK Ky0JUHJpbnQoTCIgYWZ0ZXIgSW5pdGlhbGl6ZUxpYigpOiBQb29sQWxsb2NhdGlvblR5cGU9JWRc biIsCisrCVByaW50KHUiIGFmdGVyIEluaXRpYWxpemVMaWIoKTogUG9vbEFsbG9jYXRpb25UeXBl PSVkXG4iLAorIAkJUG9vbEFsbG9jYXRpb25UeXBlKTsKKyAKKyAJLyoKKyAJICogTG9jYXRlIGxv YWRlZF9pbWFnZV9oYW5kbGUgaW5zdGFuY2UuCisgCSAqLworIAorLQlQcmludChMIkJTLT5IYW5k bGVQcm90b2NvbCgpICAiKTsKKysJUHJpbnQodSJCUy0+SGFuZGxlUHJvdG9jb2woKSAgIik7Cisg CisgCWVmaV9zdGF0dXMgPSB1ZWZpX2NhbGxfd3JhcHBlcigKKyAJCUJTLT5IYW5kbGVQcm90b2Nv bCwKK0BAIC0zOCwzMSArMzgsMzEgQEAgZWZpX21haW4oCisgCQkmdm9pZF9saV9wKTsKKyAJbGkg PSB2b2lkX2xpX3A7CisgCistCVByaW50KEwiJXhoICglcilcbiIsIGVmaV9zdGF0dXMsIGVmaV9z dGF0dXMpOworKwlQcmludCh1IiV4aCAoJXIpXG4iLCBlZmlfc3RhdHVzLCBlZmlfc3RhdHVzKTsK KyAKKyAJaWYgKGVmaV9zdGF0dXMgIT0gRUZJX1NVQ0NFU1MpIHsKKyAJCXJldHVybiBlZmlfc3Rh dHVzOworIAl9CisgCistCVByaW50KEwiICBsaTogJXhoXG4iLCBsaSk7CisrCVByaW50KHUiICBs aTogJXhoXG4iLCBsaSk7CisgCisgCWlmICghbGkpIHsKKyAJCXJldHVybiBFRklfVU5TVVBQT1JU RUQ7CisgCX0KKyAKKy0JUHJpbnQoTCIgIGxpLT5SZXZpc2lvbjogICAgICAgICV4aFxuIiwgbGkt PlJldmlzaW9uKTsKKy0JUHJpbnQoTCIgIGxpLT5QYXJlbnRIYW5kbGU6ICAgICV4aFxuIiwgbGkt PlBhcmVudEhhbmRsZSk7CistCVByaW50KEwiICBsaS0+U3lzdGVtVGFibGU6ICAgICAleGhcbiIs IGxpLT5TeXN0ZW1UYWJsZSk7CistCVByaW50KEwiICBsaS0+RGV2aWNlSGFuZGxlOiAgICAleGhc biIsIGxpLT5EZXZpY2VIYW5kbGUpOworLQlQcmludChMIiAgbGktPkZpbGVQYXRoOiAgICAgICAg JXhoXG4iLCBsaS0+RmlsZVBhdGgpOworLQlQcmludChMIiAgbGktPlJlc2VydmVkOiAgICAgICAg JXhoXG4iLCBsaS0+UmVzZXJ2ZWQpOworLQlQcmludChMIiAgbGktPkxvYWRPcHRpb25zU2l6ZTog JXhoXG4iLCBsaS0+TG9hZE9wdGlvbnNTaXplKTsKKy0JUHJpbnQoTCIgIGxpLT5Mb2FkT3B0aW9u czogICAgICV4aFxuIiwgbGktPkxvYWRPcHRpb25zKTsKKy0JUHJpbnQoTCIgIGxpLT5JbWFnZUJh c2U6ICAgICAgICV4aFxuIiwgbGktPkltYWdlQmFzZSk7CistCVByaW50KEwiICBsaS0+SW1hZ2VT aXplOiAgICAgICAleGhcbiIsIGxpLT5JbWFnZVNpemUpOworLQlQcmludChMIiAgbGktPkltYWdl Q29kZVR5cGU6ICAgJXhoXG4iLCBsaS0+SW1hZ2VDb2RlVHlwZSk7CistCVByaW50KEwiICBsaS0+ SW1hZ2VEYXRhVHlwZTogICAleGhcbiIsIGxpLT5JbWFnZURhdGFUeXBlKTsKKy0JUHJpbnQoTCIg IGxpLT5VbmxvYWQ6ICAgICAgICAgICV4aFxuIiwgbGktPlVubG9hZCk7CisrCVByaW50KHUiICBs aS0+UmV2aXNpb246ICAgICAgICAleGhcbiIsIGxpLT5SZXZpc2lvbik7CisrCVByaW50KHUiICBs aS0+UGFyZW50SGFuZGxlOiAgICAleGhcbiIsIGxpLT5QYXJlbnRIYW5kbGUpOworKwlQcmludCh1 IiAgbGktPlN5c3RlbVRhYmxlOiAgICAgJXhoXG4iLCBsaS0+U3lzdGVtVGFibGUpOworKwlQcmlu dCh1IiAgbGktPkRldmljZUhhbmRsZTogICAgJXhoXG4iLCBsaS0+RGV2aWNlSGFuZGxlKTsKKysJ UHJpbnQodSIgIGxpLT5GaWxlUGF0aDogICAgICAgICV4aFxuIiwgbGktPkZpbGVQYXRoKTsKKysJ UHJpbnQodSIgIGxpLT5SZXNlcnZlZDogICAgICAgICV4aFxuIiwgbGktPlJlc2VydmVkKTsKKysJ UHJpbnQodSIgIGxpLT5Mb2FkT3B0aW9uc1NpemU6ICV4aFxuIiwgbGktPkxvYWRPcHRpb25zU2l6 ZSk7CisrCVByaW50KHUiICBsaS0+TG9hZE9wdGlvbnM6ICAgICAleGhcbiIsIGxpLT5Mb2FkT3B0 aW9ucyk7CisrCVByaW50KHUiICBsaS0+SW1hZ2VCYXNlOiAgICAgICAleGhcbiIsIGxpLT5JbWFn ZUJhc2UpOworKwlQcmludCh1IiAgbGktPkltYWdlU2l6ZTogICAgICAgJXhoXG4iLCBsaS0+SW1h Z2VTaXplKTsKKysJUHJpbnQodSIgIGxpLT5JbWFnZUNvZGVUeXBlOiAgICV4aFxuIiwgbGktPklt YWdlQ29kZVR5cGUpOworKwlQcmludCh1IiAgbGktPkltYWdlRGF0YVR5cGU6ICAgJXhoXG4iLCBs aS0+SW1hZ2VEYXRhVHlwZSk7CisrCVByaW50KHUiICBsaS0+VW5sb2FkOiAgICAgICAgICAleGhc biIsIGxpLT5VbmxvYWQpOworIAorICNpZiAwCisgdHlwZWRlZiBzdHJ1Y3QgeworZGlmZiAtLWdp dCBhL2FwcHMvdDQuYyBiL2FwcHMvdDQuYworaW5kZXggYjg0ODdlYy4uMTIxNTEyMSAxMDA2NDQK Ky0tLSBhL2FwcHMvdDQuYworKysrIGIvYXBwcy90NC5jCitAQCAtNyw4ICs3LDggQEAgZWZpX21h aW4gKEVGSV9IQU5ETEUgKmltYWdlLCBFRklfU1lTVEVNX1RBQkxFICpzeXN0YWIpCisgCVVJTlRO IGluZGV4OworIAorICAgICAgICAgSW5pdGlhbGl6ZUxpYihpbWFnZSwgc3lzdGFiKTsKKy0JdWVm aV9jYWxsX3dyYXBwZXIoc3lzdGFiLT5Db25PdXQtPk91dHB1dFN0cmluZywgMiwgc3lzdGFiLT5D b25PdXQsIEwiSGVsbG8gYXBwbGljYXRpb24gc3RhcnRlZFxyXG4iKTsKKy0JdWVmaV9jYWxsX3dy YXBwZXIoc3lzdGFiLT5Db25PdXQtPk91dHB1dFN0cmluZywgMiwgc3lzdGFiLT5Db25PdXQsIEwi XHJcblxyXG5cclxuSGl0IGFueSBrZXkgdG8gZXhpdFxyXG4iKTsKKysJdWVmaV9jYWxsX3dyYXBw ZXIoc3lzdGFiLT5Db25PdXQtPk91dHB1dFN0cmluZywgMiwgc3lzdGFiLT5Db25PdXQsIHUiSGVs bG8gYXBwbGljYXRpb24gc3RhcnRlZFxyXG4iKTsKKysJdWVmaV9jYWxsX3dyYXBwZXIoc3lzdGFi LT5Db25PdXQtPk91dHB1dFN0cmluZywgMiwgc3lzdGFiLT5Db25PdXQsIHUiXHJcblxyXG5cclxu SGl0IGFueSBrZXkgdG8gZXhpdFxyXG4iKTsKKyAJdWVmaV9jYWxsX3dyYXBwZXIoc3lzdGFiLT5C b290U2VydmljZXMtPldhaXRGb3JFdmVudCwgMywgMSwgJnN5c3RhYi0+Q29uSW4tPldhaXRGb3JL ZXksICZpbmRleCk7CisgCXJldHVybiBFRklfU1VDQ0VTUzsKKyB9CitkaWZmIC0tZ2l0IGEvYXBw cy90NS5jIGIvYXBwcy90NS5jCitpbmRleCA3Yzg2OGQyLi5lMDFhOGUzIDEwMDY0NAorLS0tIGEv YXBwcy90NS5jCisrKysgYi9hcHBzL3Q1LmMKK0BAIC01LDkgKzUsOSBAQCBFRklfU1RBVFVTCisg ZWZpX21haW4gKEVGSV9IQU5ETEUgaW1hZ2UsIEVGSV9TWVNURU1fVEFCTEUgKnN5c3RhYikKKyB7 CisgCUluaXRpYWxpemVMaWIoaW1hZ2UsIHN5c3RhYik7CistCVByaW50KEwiSGVsbG9MaWIgYXBw bGljYXRpb24gc3RhcnRlZFxuIik7CistCVByaW50KEwiXG5cblxuSGl0IGFueSBrZXkgdG8gZXhp dCB0aGlzIGltYWdlXG4iKTsKKysJUHJpbnQodSJIZWxsb0xpYiBhcHBsaWNhdGlvbiBzdGFydGVk XG4iKTsKKysJUHJpbnQodSJcblxuXG5IaXQgYW55IGtleSB0byBleGl0IHRoaXMgaW1hZ2VcbiIp OworIAlXYWl0Rm9yU2luZ2xlRXZlbnQoU1QtPkNvbkluLT5XYWl0Rm9yS2V5LCAwKTsKKy0JdWVm aV9jYWxsX3dyYXBwZXIoU1QtPkNvbk91dC0+T3V0cHV0U3RyaW5nLCAyLCBTVC0+Q29uT3V0LCBM IlxuXG4iKTsKKysJdWVmaV9jYWxsX3dyYXBwZXIoU1QtPkNvbk91dC0+T3V0cHV0U3RyaW5nLCAy LCBTVC0+Q29uT3V0LCB1IlxuXG4iKTsKKyAJcmV0dXJuIEVGSV9TVUNDRVNTOworIH0KK2RpZmYg LS1naXQgYS9hcHBzL3Q2LmMgYi9hcHBzL3Q2LmMKK2luZGV4IGY5NWVhNjYuLmEzODkzZTUgMTAw NjQ0CistLS0gYS9hcHBzL3Q2LmMKKysrKyBiL2FwcHMvdDYuYworQEAgLTI1LDE5ICsyNSwxOSBA QCBlZmlfbWFpbiAoRUZJX0hBTkRMRSBpbWFnZSwgRUZJX1NZU1RFTV9UQUJMRSAqc3lzdGFiKQor IAkJCQkmTG9hZGVkSW1hZ2VQcm90b2NvbCwgCisgCQkJCSh2b2lkICoqKSAmbG9hZGVkX2ltYWdl KTsKKyAJaWYgKEVGSV9FUlJPUihzdGF0dXMpKSB7CistCQlQcmludChMImhhbmRsZXByb3RvY29s OiAlclxuIiwgc3RhdHVzKTsKKysJCVByaW50KHUiaGFuZGxlcHJvdG9jb2w6ICVyXG4iLCBzdGF0 dXMpOworIAl9CisgCisgI2lmIDAKKyAJQlMtPkhhbmRsZVByb3RvY29sKGxvYWRlZF9pbWFnZS0+ RGV2aWNlSGFuZGxlLCAmRGV2aWNlUGF0aFByb3RvY29sLCAodm9pZCAqKikgJmRldl9wYXRoKTsK KyAKKy0JUHJpbnQoTCJJbWFnZSBkZXZpY2UgICAgICA6ICVzXG4iLCBEZXZpY2VQYXRoVG9TdHIo ZGV2X3BhdGgpKTsKKy0JUHJpbnQoTCJJbWFnZSBmaWxlICAgICAgICA6ICVzXG4iLCBEZXZpY2VQ YXRoVG9TdHIobG9hZGVkX2ltYWdlLT5GaWxlUGF0aCkpOworKwlQcmludCh1IkltYWdlIGRldmlj ZSAgICAgIDogJXNcbiIsIERldmljZVBhdGhUb1N0cihkZXZfcGF0aCkpOworKwlQcmludCh1Iklt YWdlIGZpbGUgICAgICAgIDogJXNcbiIsIERldmljZVBhdGhUb1N0cihsb2FkZWRfaW1hZ2UtPkZp bGVQYXRoKSk7CisgI2VuZGlmCistCVByaW50KEwiSW1hZ2UgYmFzZSAgICAgICAgOiAlbHhcbiIs IGxvYWRlZF9pbWFnZS0+SW1hZ2VCYXNlKTsKKy0JUHJpbnQoTCJJbWFnZSBzaXplICAgICAgICA6 ICVseFxuIiwgbG9hZGVkX2ltYWdlLT5JbWFnZVNpemUpOworLQlQcmludChMIkxvYWQgb3B0aW9u cyBzaXplIDogJWx4XG4iLCBsb2FkZWRfaW1hZ2UtPkxvYWRPcHRpb25zU2l6ZSk7CistCVByaW50 KEwiTG9hZCBvcHRpb25zICAgICAgOiAlc1xuIiwgbG9hZGVkX2ltYWdlLT5Mb2FkT3B0aW9ucyk7 CisrCVByaW50KHUiSW1hZ2UgYmFzZSAgICAgICAgOiAlbHhcbiIsIGxvYWRlZF9pbWFnZS0+SW1h Z2VCYXNlKTsKKysJUHJpbnQodSJJbWFnZSBzaXplICAgICAgICA6ICVseFxuIiwgbG9hZGVkX2lt YWdlLT5JbWFnZVNpemUpOworKwlQcmludCh1IkxvYWQgb3B0aW9ucyBzaXplIDogJWx4XG4iLCBs b2FkZWRfaW1hZ2UtPkxvYWRPcHRpb25zU2l6ZSk7CisrCVByaW50KHUiTG9hZCBvcHRpb25zICAg ICAgOiAlc1xuIiwgbG9hZGVkX2ltYWdlLT5Mb2FkT3B0aW9ucyk7CisgCisgCXJldHVybiBFRklf U1VDQ0VTUzsKKyB9CitkaWZmIC0tZ2l0IGEvYXBwcy90Ny5jIGIvYXBwcy90Ny5jCitpbmRleCBm MDJhYWVlLi44NmUyNzllIDEwMDY0NAorLS0tIGEvYXBwcy90Ny5jCisrKysgYi9hcHBzL3Q3LmMK K0BAIC05LDE2ICs5LDE2IEBAIGVmaV9tYWluIChFRklfSEFORExFIGltYWdlLCBFRklfU1lTVEVN X1RBQkxFICpzeXN0YWIpCisgCisgCUluaXRpYWxpemVMaWIoaW1hZ2UsIHN5c3RhYik7CisgCist CVByaW50KEwiSGVsbG9MaWIgYXBwbGljYXRpb24gc3RhcnRlZFxuIik7CisrCVByaW50KHUiSGVs bG9MaWIgYXBwbGljYXRpb24gc3RhcnRlZFxuIik7CisgCistCVByaW50KEwiXG5cblxuSGl0IGFu eSBrZXkgdG8gZXhpdCB0aGlzIGltYWdlXG4iKTsKKysJUHJpbnQodSJcblxuXG5IaXQgYW55IGtl eSB0byBleGl0IHRoaXMgaW1hZ2VcbiIpOworIAlXYWl0Rm9yU2luZ2xlRXZlbnQoU1QtPkNvbklu LT5XYWl0Rm9yS2V5LCAwKTsKKyAKKy0JdWVmaV9jYWxsX3dyYXBwZXIoU1QtPkNvbk91dC0+T3V0 cHV0U3RyaW5nLCAyLCBTVC0+Q29uT3V0LCBMIlxuXG4iKTsKKysJdWVmaV9jYWxsX3dyYXBwZXIo U1QtPkNvbk91dC0+T3V0cHV0U3RyaW5nLCAyLCBTVC0+Q29uT3V0LCB1IlxuXG4iKTsKKyAKKyAJ ZWZpX3N0YXR1cyA9IHVlZmlfY2FsbF93cmFwcGVyKFNULT5Db25Jbi0+UmVhZEtleVN0cm9rZSwg MiwgU1QtPkNvbkluLCAmZWZpX2lucHV0X2tleSk7CisgCistCVByaW50KEwiU2NhbkNvZGU6ICV4 aCAgVW5pY29kZUNoYXI6ICV4aCBDYWxsUnRTdGF0dXM6ICV4XG4iLAorKwlQcmludCh1IlNjYW5D b2RlOiAleGggIFVuaWNvZGVDaGFyOiAleGggQ2FsbFJ0U3RhdHVzOiAleFxuIiwKKyAJCWVmaV9p bnB1dF9rZXkuU2NhbkNvZGUsIGVmaV9pbnB1dF9rZXkuVW5pY29kZUNoYXIsIGVmaV9zdGF0dXMp OworIAorIAlyZXR1cm4gRUZJX1NVQ0NFU1M7CitkaWZmIC0tZ2l0IGEvYXBwcy90OC5jIGIvYXBw cy90OC5jCitpbmRleCAxMGY4ODExLi5lOGIwZGJiIDEwMDY0NAorLS0tIGEvYXBwcy90OC5jCisr KysgYi9hcHBzL3Q4LmMKK0BAIC0xMCwxMCArMTAsMTAgQEAgZWZpX21haW4gKEVGSV9IQU5ETEUg SW1hZ2VIYW5kbGUsIEVGSV9TWVNURU1fVEFCTEUgKlN5c3RlbVRhYmxlKQorICAgSW5pdGlhbGl6 ZUxpYihJbWFnZUhhbmRsZSwgU3lzdGVtVGFibGUpOworICAgQXJnYyA9IEdldFNoZWxsQXJnY0Fy Z3YoSW1hZ2VIYW5kbGUsICZBcmd2KTsKKyAKKy0gIFByaW50KEwiSGVsbG8gV29ybGQsIHN0YXJ0 ZWQgd2l0aCBBcmdjPSVkXG4iLCBBcmdjKTsKKysgIFByaW50KHUiSGVsbG8gV29ybGQsIHN0YXJ0 ZWQgd2l0aCBBcmdjPSVkXG4iLCBBcmdjKTsKKyAgIGZvciAoaSA9IDAgOyBpIDwgQXJnYyA7ICsr aSkKKy0gICAgUHJpbnQoTCIgIEFyZ3ZbJWRdID0gJyVzJ1xuIiwgaSwgQXJndltpXSk7CisrICAg IFByaW50KHUiICBBcmd2WyVkXSA9ICclcydcbiIsIGksIEFyZ3ZbaV0pOworIAorLSAgUHJpbnQo TCJCeWUuXG4iKTsKKysgIFByaW50KHUiQnllLlxuIik7CisgICByZXR1cm4gRUZJX1NVQ0NFU1M7 CisgfQorZGlmZiAtLWdpdCBhL2FwcHMvdGNjLmMgYi9hcHBzL3RjYy5jCitpbmRleCAwOWFkOThi Li4wNTM2OGFkIDEwMDY0NAorLS0tIGEvYXBwcy90Y2MuYworKysrIGIvYXBwcy90Y2MuYworQEAg LTE4LDE1ICsxOCwxNSBAQCB2b2lkIGR1bXBfc3RhY2tfaGVscGVyKHVpbnQ2NF90IHJzcF92YWwp CisgCXVpbnQ2NF90ICpyc3AgPSAodWludDY0X3QgKilyc3BfdmFsOworIAlpbnQgeDsKKyAKKy0J UHJpbnQoTCIlJXJzcDogMHglMDh4JTA4eCBzdGFjazpcclxuIiwKKysJUHJpbnQodSIlJXJzcDog MHglMDh4JTA4eCBzdGFjazpcclxuIiwKKyAJCQkJCShyc3BfdmFsICYgMHhmZmZmZmZmZjAwMDAw MDAwKSA+PjMyLAorIAkJCQkJIHJzcF92YWwgJiAweGZmZmZmZmZmKTsKKyAJZm9yICh4ID0gMDsg eCA8IDg7IHgrKykgeworLQkJUHJpbnQoTCIlMDh4OiAiLCAoKHVpbnQ2NF90KXJzcCkgJiAweGZm ZmZmZmZmKTsKKy0JCVByaW50KEwiJTAxNnggIiwgKnJzcCsrKTsKKy0JCVByaW50KEwiJTAxNngg IiwgKnJzcCsrKTsKKy0JCVByaW50KEwiJTAxNnggIiwgKnJzcCsrKTsKKy0JCVByaW50KEwiJTAx NnhcclxuIiwgKnJzcCsrKTsKKysJCVByaW50KHUiJTA4eDogIiwgKCh1aW50NjRfdClyc3ApICYg MHhmZmZmZmZmZik7CisrCQlQcmludCh1IiUwMTZ4ICIsICpyc3ArKyk7CisrCQlQcmludCh1IiUw MTZ4ICIsICpyc3ArKyk7CisrCQlQcmludCh1IiUwMTZ4ICIsICpyc3ArKyk7CisrCQlQcmludCh1 IiUwMTZ4XHJcbiIsICpyc3ArKyk7CisgCX0KKyB9CisgI2VuZGlmCitAQCAtMzI4LDEwMiArMzI4 LDEwMiBAQCBlZmlfbWFpbiAoRUZJX0hBTkRMRSAqaW1hZ2UsIEVGSV9TWVNURU1fVEFCTEUgKnN5 c3RhYikKKyAJX19hc21fXyB2b2xhdGlsZSgib3V0ICUwLCUxIiA6IDogImEiICgodWludDhfdCkw eDE0KSwgImROIiAoMHg4MCkpOworICNlbmRpZgorIAorLQlQcmludChMIkhlbGxvXHJcbiIpOwor KwlQcmludCh1IkhlbGxvXHJcbiIpOworIAlyYyA9IHRlc3RfZmFpbHVyZSgpOworIAlpZiAoRUZJ X0VSUk9SKHJjKSkgeworLQkJUHJpbnQoTCJSZXR1cm5pbmcgRmFpbHVyZSB3b3Jrc1xuIik7Cisr CQlQcmludCh1IlJldHVybmluZyBGYWlsdXJlIHdvcmtzXG4iKTsKKyAJfSBlbHNlIHsKKy0JCVBy aW50KEwiUmV0dXJuaW5nIGZhaWx1cmUgZG9lc24ndCB3b3JrLlxyXG4iKTsKKy0JCVByaW50KEwi JSVyYXggd2FzIDB4JTAxNngsIHNob3VsZCBoYXZlIGJlZW4gMHglMDE2eFxuIiwKKysJCVByaW50 KHUiUmV0dXJuaW5nIGZhaWx1cmUgZG9lc24ndCB3b3JrLlxyXG4iKTsKKysJCVByaW50KHUiJSVy YXggd2FzIDB4JTAxNngsIHNob3VsZCBoYXZlIGJlZW4gMHglMDE2eFxuIiwKKyAJCQlyYywgRUZJ X1VOU1VQUE9SVEVEKTsKKyAJCXJldHVybiBFRklfSU5WQUxJRF9QQVJBTUVURVI7CisgCX0KKyAK KyAJcmMgPSB0ZXN0X2NhbGwwKCk7CisgCWlmICghRUZJX0VSUk9SKHJjKSkgeworLQkJUHJpbnQo TCIwIGFyZ3Mgd29ya3MganVzdCBmaW5lIGhlcmUuXHJcbiIpOworKwkJUHJpbnQodSIwIGFyZ3Mg d29ya3MganVzdCBmaW5lIGhlcmUuXHJcbiIpOworIAl9IGVsc2UgeworLQkJUHJpbnQoTCIwIGFy Z3MgZmFpbGVkOiAweCUwMTZ4XG4iLCByYyk7CisrCQlQcmludCh1IjAgYXJncyBmYWlsZWQ6IDB4 JTAxNnhcbiIsIHJjKTsKKyAJCXJldHVybiByYzsKKyAJfQorIAorIAlyYyA9IHRlc3RfY2FsbDEo KTsKKyAJaWYgKCFFRklfRVJST1IocmMpKSB7CistCQlQcmludChMIjEgYXJnIHdvcmtzIGp1c3Qg ZmluZSBoZXJlLlxyXG4iKTsKKysJCVByaW50KHUiMSBhcmcgd29ya3MganVzdCBmaW5lIGhlcmUu XHJcbiIpOworIAl9IGVsc2UgeworLQkJUHJpbnQoTCIxIGFyZyBmYWlsZWQ6IDB4JTAxNnhcbiIs IHJjKTsKKysJCVByaW50KHUiMSBhcmcgZmFpbGVkOiAweCUwMTZ4XG4iLCByYyk7CisgCQlyZXR1 cm4gcmM7CisgCX0KKyAKKyAJcmMgPSB0ZXN0X2NhbGwyKCk7CisgCWlmICghRUZJX0VSUk9SKHJj KSkgeworLQkJUHJpbnQoTCIyIGFyZ3Mgd29ya3MganVzdCBmaW5lIGhlcmUuXHJcbiIpOworKwkJ UHJpbnQodSIyIGFyZ3Mgd29ya3MganVzdCBmaW5lIGhlcmUuXHJcbiIpOworIAl9IGVsc2Ugewor LQkJUHJpbnQoTCIyIGFyZ3MgZmFpbGVkOiAweCUwMTZ4XG4iLCByYyk7CisrCQlQcmludCh1IjIg YXJncyBmYWlsZWQ6IDB4JTAxNnhcbiIsIHJjKTsKKyAJCXJldHVybiByYzsKKyAJfQorIAorIAly YyA9IHRlc3RfY2FsbDMoKTsKKyAJaWYgKCFFRklfRVJST1IocmMpKSB7CistCQlQcmludChMIjMg YXJncyB3b3JrcyBqdXN0IGZpbmUgaGVyZS5cclxuIik7CisrCQlQcmludCh1IjMgYXJncyB3b3Jr cyBqdXN0IGZpbmUgaGVyZS5cclxuIik7CisgCX0gZWxzZSB7CistCQlQcmludChMIjMgYXJncyBm YWlsZWQ6IDB4JTAxNnhcbiIsIHJjKTsKKysJCVByaW50KHUiMyBhcmdzIGZhaWxlZDogMHglMDE2 eFxuIiwgcmMpOworIAkJcmV0dXJuIHJjOworIAl9CisgCisgCXJjID0gdGVzdF9jYWxsNCgpOwor IAlpZiAoIUVGSV9FUlJPUihyYykpIHsKKy0JCVByaW50KEwiNCBhcmdzIHdvcmtzIGp1c3QgZmlu ZSBoZXJlLlxyXG4iKTsKKysJCVByaW50KHUiNCBhcmdzIHdvcmtzIGp1c3QgZmluZSBoZXJlLlxy XG4iKTsKKyAJfSBlbHNlIHsKKy0JCVByaW50KEwiNCBhcmdzIGZhaWxlZDogMHglMDE2eFxuIiwg cmMpOworKwkJUHJpbnQodSI0IGFyZ3MgZmFpbGVkOiAweCUwMTZ4XG4iLCByYyk7CisgCQlyZXR1 cm4gcmM7CisgCX0KKyAKKyAJcmMgPSB0ZXN0X2NhbGw1KCk7CisgCWlmICghRUZJX0VSUk9SKHJj KSkgeworLQkJUHJpbnQoTCI1IGFyZ3Mgd29ya3MganVzdCBmaW5lIGhlcmUuXHJcbiIpOworKwkJ UHJpbnQodSI1IGFyZ3Mgd29ya3MganVzdCBmaW5lIGhlcmUuXHJcbiIpOworIAl9IGVsc2Ugewor LQkJUHJpbnQoTCI1IGFyZ3MgZmFpbGVkOiAweCUwMTZ4XG4iLCByYyk7CisrCQlQcmludCh1IjUg YXJncyBmYWlsZWQ6IDB4JTAxNnhcbiIsIHJjKTsKKyAJCXJldHVybiByYzsKKyAJfQorIAorIAly YyA9IHRlc3RfY2FsbDYoKTsKKyAJaWYgKCFFRklfRVJST1IocmMpKSB7CistCQlQcmludChMIjYg YXJncyB3b3JrcyBqdXN0IGZpbmUgaGVyZS5cclxuIik7CisrCQlQcmludCh1IjYgYXJncyB3b3Jr cyBqdXN0IGZpbmUgaGVyZS5cclxuIik7CisgCX0gZWxzZSB7CistCQlQcmludChMIjYgYXJncyBm YWlsZWQ6IDB4JTAxNnhcbiIsIHJjKTsKKysJCVByaW50KHUiNiBhcmdzIGZhaWxlZDogMHglMDE2 eFxuIiwgcmMpOworIAkJcmV0dXJuIHJjOworIAl9CisgCisgCXJjID0gdGVzdF9jYWxsNygpOwor IAlpZiAoIUVGSV9FUlJPUihyYykpIHsKKy0JCVByaW50KEwiNyBhcmdzIHdvcmtzIGp1c3QgZmlu ZSBoZXJlLlxyXG4iKTsKKysJCVByaW50KHUiNyBhcmdzIHdvcmtzIGp1c3QgZmluZSBoZXJlLlxy XG4iKTsKKyAJfSBlbHNlIHsKKy0JCVByaW50KEwiNyBhcmdzIGZhaWxlZDogMHglMDE2eFxuIiwg cmMpOworKwkJUHJpbnQodSI3IGFyZ3MgZmFpbGVkOiAweCUwMTZ4XG4iLCByYyk7CisgCQlyZXR1 cm4gcmM7CisgCX0KKyAKKyAJcmMgPSB0ZXN0X2NhbGw4KCk7CisgCWlmICghRUZJX0VSUk9SKHJj KSkgeworLQkJUHJpbnQoTCI4IGFyZ3Mgd29ya3MganVzdCBmaW5lIGhlcmUuXHJcbiIpOworKwkJ UHJpbnQodSI4IGFyZ3Mgd29ya3MganVzdCBmaW5lIGhlcmUuXHJcbiIpOworIAl9IGVsc2Ugewor LQkJUHJpbnQoTCI4IGFyZ3MgZmFpbGVkOiAweCUwMTZ4XG4iLCByYyk7CisrCQlQcmludCh1Ijgg YXJncyBmYWlsZWQ6IDB4JTAxNnhcbiIsIHJjKTsKKyAJCXJldHVybiByYzsKKyAJfQorIAorIAly YyA9IHRlc3RfY2FsbDkoKTsKKyAJaWYgKCFFRklfRVJST1IocmMpKSB7CistCQlQcmludChMIjkg YXJncyB3b3JrcyBqdXN0IGZpbmUgaGVyZS5cclxuIik7CisrCQlQcmludCh1IjkgYXJncyB3b3Jr cyBqdXN0IGZpbmUgaGVyZS5cclxuIik7CisgCX0gZWxzZSB7CistCQlQcmludChMIjkgYXJncyBm YWlsZWQ6IDB4JTAxNnhcbiIsIHJjKTsKKysJCVByaW50KHUiOSBhcmdzIGZhaWxlZDogMHglMDE2 eFxuIiwgcmMpOworIAkJcmV0dXJuIHJjOworIAl9CisgCisgCXJjID0gdGVzdF9jYWxsMTAoKTsK KyAJaWYgKCFFRklfRVJST1IocmMpKSB7CistCQlQcmludChMIjEwIGFyZ3Mgd29ya3MganVzdCBm aW5lIGhlcmUuXHJcbiIpOworKwkJUHJpbnQodSIxMCBhcmdzIHdvcmtzIGp1c3QgZmluZSBoZXJl LlxyXG4iKTsKKyAJfSBlbHNlIHsKKy0JCVByaW50KEwiMTAgYXJncyBmYWlsZWQ6IDB4JTAxNnhc biIsIHJjKTsKKysJCVByaW50KHUiMTAgYXJncyBmYWlsZWQ6IDB4JTAxNnhcbiIsIHJjKTsKKyAJ CXJldHVybiByYzsKKyAJfQorIAorZGlmZiAtLWdpdCBhL2FwcHMvdHBhdXNlLmMgYi9hcHBzL3Rw YXVzZS5jCitpbmRleCA1MWM4NmRmLi4yZGQ3ODQ2IDEwMDY0NAorLS0tIGEvYXBwcy90cGF1c2Uu YworKysrIGIvYXBwcy90cGF1c2UuYworQEAgLTQsNiArNCw2IEBACisgRUZJX1NUQVRVUworIGVm aV9tYWluIChFRklfSEFORExFIGltYWdlLCBFRklfU1lTVEVNX1RBQkxFICpzeXN0YWIpCisgewor LQlQcmludChMIlByZXNzIGBxJyB0byBxdWl0LCBhbnkgb3RoZXIga2V5IHRvIGNvbnRpbnVlOlxu Iik7CisrCVByaW50KHUiUHJlc3MgYHEnIHRvIHF1aXQsIGFueSBvdGhlciBrZXkgdG8gY29udGlu dWU6XG4iKTsKKyAJCisgfQorZGlmZiAtLWdpdCBhL2FwcHMvdW5zZXRkYmcuYyBiL2FwcHMvdW5z ZXRkYmcuYworaW5kZXggNzMxZTA5Yi4uOTg5MGJkMCAxMDA2NDQKKy0tLSBhL2FwcHMvdW5zZXRk YmcuYworKysrIGIvYXBwcy91bnNldGRiZy5jCitAQCAtMTUsMjIgKzE1LDIyIEBAIGVmaV9tYWlu IChFRklfSEFORExFIGltYWdlLCBFRklfU1lTVEVNX1RBQkxFICpzeXN0YWIpCisgCVVJTlQ4IGRh dGEgPSAxOworIAlJbml0aWFsaXplTGliKGltYWdlLCBzeXN0YWIpOworIAorLQlzdGF0dXMgPSBS VC0+U2V0VmFyaWFibGUoTCJTSElNX0RFQlVHIiwgJlNISU1fR1VJRCwKKysJc3RhdHVzID0gUlQt PlNldFZhcmlhYmxlKHUiU0hJTV9ERUJVRyIsICZTSElNX0dVSUQsCisgCQkJCSBFRklfVkFSSUFC TEVfTk9OX1ZPTEFUSUxFIHwKKyAJCQkJIEVGSV9WQVJJQUJMRV9CT09UU0VSVklDRV9BQ0NFU1Mg fAorIAkJCQkgRUZJX1ZBUklBQkxFX1JVTlRJTUVfQUNDRVNTLAorIAkJCQkgMCwgJmRhdGEpOwor IAlpZiAoRUZJX0VSUk9SKHN0YXR1cykpCistCQlQcmludChMIlNldFZhcmlhYmxlIGZhaWxlZDog JXJcbiIsIHN0YXR1cyk7CisrCQlQcmludCh1IlNldFZhcmlhYmxlIGZhaWxlZDogJXJcbiIsIHN0 YXR1cyk7CisgCisgI2lmIDAKKy0Jc3RhdHVzID0gUlQtPlNldFZhcmlhYmxlKEwiR1JVQl9FTlYi LCAmU0hJTV9HVUlELAorKwlzdGF0dXMgPSBSVC0+U2V0VmFyaWFibGUodSJHUlVCX0VOViIsICZT SElNX0dVSUQsCisgCQkJCSBFRklfVkFSSUFCTEVfTk9OX1ZPTEFUSUxFIHwKKyAJCQkJIEVGSV9W QVJJQUJMRV9CT09UU0VSVklDRV9BQ0NFU1MgfAorIAkJCQkgRUZJX1ZBUklBQkxFX1JVTlRJTUVf QUNDRVNTLAorIAkJCQkgc2l6ZW9mKGdydWJlbnYpLTEsIGdydWJlbnYpOworIAlpZiAoRUZJX0VS Uk9SKHN0YXR1cykpCistCQlQcmludChMIlNldFZhcmlhYmxlKEdSVUJfRU5WKSBmYWlsZWQ6ICVy XG4iLCBzdGF0dXMpOworKwkJUHJpbnQodSJTZXRWYXJpYWJsZShHUlVCX0VOVikgZmFpbGVkOiAl clxuIiwgc3RhdHVzKTsKKyAjZW5kaWYKKyAKKyAJcmV0dXJuIEVGSV9TVUNDRVNTOworZGlmZiAt LWdpdCBhL2luYy9lZmkuaCBiL2luYy9lZmkuaAoraW5kZXggNmQ4MzM3NC4uY2M0ZmM0ZiAxMDA2 NDQKKy0tLSBhL2luYy9lZmkuaAorKysrIGIvaW5jL2VmaS5oCitAQCAtMzcsNyArMzcsNyBAQCBS ZXZpc2lvbiBIaXN0b3J5CisgZXh0ZXJuICJDIiB7CisgI2VuZGlmCisgCistI2RlZmluZSBFRklf RklSTVdBUkVfVkVORE9SICAgICAgICAgTCJJTlRFTCIKKysjZGVmaW5lIEVGSV9GSVJNV0FSRV9W RU5ET1IgICAgICAgICB1IklOVEV1IgorICNkZWZpbmUgRUZJX0ZJUk1XQVJFX01BSk9SX1JFVklT SU9OIDEyCisgI2RlZmluZSBFRklfRklSTVdBUkVfTUlOT1JfUkVWSVNJT04gMzMKKyAjZGVmaW5l IEVGSV9GSVJNV0FSRV9SRVZJU0lPTiAoKEVGSV9GSVJNV0FSRV9NQUpPUl9SRVZJU0lPTiA8PDE2 KSB8IChFRklfRklSTVdBUkVfTUlOT1JfUkVWSVNJT04pKQorZGlmZiAtLWdpdCBhL2luYy9lZmls aWIuaCBiL2luYy9lZmlsaWIuaAoraW5kZXggZjM1ZDJlZC4uMDA2OGFlOCAxMDA2NDQKKy0tLSBh L2luYy9lZmlsaWIuaAorKysrIGIvaW5jL2VmaWxpYi5oCitAQCAtMTgwLDIxICsxODAsMjEgQEAg ZXh0ZXJuIEVGSV9HVUlEIFNoZWxsRHluYW1pY0NvbW1hbmRQcm90b2NvbEd1aWQ7CisgLy8KKyAj ZGVmaW5lIExPQURfT1BUSU9OX0FDVElWRSAgICAgIDB4MDAwMDAwMDEKKyAKKy0jZGVmaW5lIFZh ckxhbmd1YWdlQ29kZXMgICAgICAgTCJMYW5nQ29kZXMiCistI2RlZmluZSBWYXJMYW5ndWFnZSAg ICAgICAgICAgIEwiTGFuZyIKKy0jZGVmaW5lIFZhclRpbWVvdXQgICAgICAgICAgICAgTCJUaW1l b3V0IgorLSNkZWZpbmUgVmFyQ29uc29sZUlucCAgICAgICAgICBMIkNvbkluIgorLSNkZWZpbmUg VmFyQ29uc29sZU91dCAgICAgICAgICBMIkNvbk91dCIKKy0jZGVmaW5lIFZhckVycm9yT3V0ICAg ICAgICAgICAgTCJFcnJPdXQiCistI2RlZmluZSBWYXJCb290T3B0aW9uICAgICAgICAgIEwiQm9v dCUwNHgiCistI2RlZmluZSBWYXJCb290T3JkZXIgICAgICAgICAgIEwiQm9vdE9yZGVyIgorLSNk ZWZpbmUgVmFyQm9vdE5leHQgICAgICAgICAgICBMIkJvb3ROZXh0IgorLSNkZWZpbmUgVmFyQm9v dEN1cnJlbnQgICAgICAgICBMIkJvb3RDdXJyZW50IgorLSNkZWZpbmUgVmFyRHJpdmVyT3B0aW9u ICAgICAgICBMIkRyaXZlciUwNHgiCistI2RlZmluZSBWYXJEcml2ZXJPcmRlciAgICAgICAgIEwi RHJpdmVyT3JkZXIiCistI2RlZmluZSBWYXJDb25zb2xlSW5wRGV2ICAgICAgIEwiQ29uSW5EZXYi CistI2RlZmluZSBWYXJDb25zb2xlT3V0RGV2ICAgICAgIEwiQ29uT3V0RGV2IgorLSNkZWZpbmUg VmFyRXJyb3JPdXREZXYgICAgICAgICBMIkVyck91dERldiIKKysjZGVmaW5lIFZhckxhbmd1YWdl Q29kZXMgICAgICAgdSJMYW5nQ29kZXMiCisrI2RlZmluZSBWYXJMYW5ndWFnZSAgICAgICAgICAg IHUiTGFuZyIKKysjZGVmaW5lIFZhclRpbWVvdXQgICAgICAgICAgICAgdSJUaW1lb3V0IgorKyNk ZWZpbmUgVmFyQ29uc29sZUlucCAgICAgICAgICB1IkNvbkluIgorKyNkZWZpbmUgVmFyQ29uc29s ZU91dCAgICAgICAgICB1IkNvbk91dCIKKysjZGVmaW5lIFZhckVycm9yT3V0ICAgICAgICAgICAg dSJFcnJPdXQiCisrI2RlZmluZSBWYXJCb290T3B0aW9uICAgICAgICAgIHUiQm9vdCUwNHgiCisr I2RlZmluZSBWYXJCb290T3JkZXIgICAgICAgICAgIHUiQm9vdE9yZGVyIgorKyNkZWZpbmUgVmFy Qm9vdE5leHQgICAgICAgICAgICB1IkJvb3ROZXh0IgorKyNkZWZpbmUgVmFyQm9vdEN1cnJlbnQg ICAgICAgICB1IkJvb3RDdXJyZW50IgorKyNkZWZpbmUgVmFyRHJpdmVyT3B0aW9uICAgICAgICB1 IkRyaXZlciUwNHgiCisrI2RlZmluZSBWYXJEcml2ZXJPcmRlciAgICAgICAgIHUiRHJpdmVyT3Jk ZXIiCisrI2RlZmluZSBWYXJDb25zb2xlSW5wRGV2ICAgICAgIHUiQ29uSW5EZXYiCisrI2RlZmlu ZSBWYXJDb25zb2xlT3V0RGV2ICAgICAgIHUiQ29uT3V0RGV2IgorKyNkZWZpbmUgVmFyRXJyb3JP dXREZXYgICAgICAgICB1IkVyck91dERldiIKKyAKKyAjZGVmaW5lIExhbmd1YWdlQ29kZUVuZ2xp c2ggICAgImVuZyIKKyAKK2RpZmYgLS1naXQgYS9saWIvY21kbGluZS5jIGIvbGliL2NtZGxpbmUu YworaW5kZXggOWMyMTRkZC4uYTdmMmZhMiAxMDA2NDQKKy0tLSBhL2xpYi9jbWRsaW5lLmMKKysr KyBiL2xpYi9jbWRsaW5lLmMKK0BAIC02Nyw3ICs2Nyw3IEBAIEdldFNoZWxsQXJnY0FyZ3ZGcm9t TG9hZGVkSW1hZ2UoCisgICBpZiAoKCpBcmdTdGFydCAhPSBMJ1wwJykgJiYgKEFyZ2MgPCBNQVhf Q01ETElORV9BUkdDKSkKKyAgICAgQXJndltBcmdjKytdID0gQXJnU3RhcnQ7CisgCistICAvLyBQ cmludChMIkdvdCBhcmdjL2FyZ3YgZnJvbSBsb2FkZWQgaW1hZ2UgcHJvdG9cbiIpOworKyAgLy8g UHJpbnQodSJHb3QgYXJnYy9hcmd2IGZyb20gbG9hZGVkIGltYWdlIHByb3RvXG4iKTsKKyAgICpS ZXN1bHRBcmd2ID0gQXJndjsKKyAgIHJldHVybiBBcmdjOworIH0KK0BAIC05Myw3ICs5Myw3IEBA IElOVE4gR2V0U2hlbGxBcmdjQXJndihFRklfSEFORExFIEltYWdlSGFuZGxlLCBDSEFSMTYgKipB cmd2W10pCisgICBpZiAoIUVGSV9FUlJPUihTdGF0dXMpKQorICAgeworICAgICAvLyB1c2Ugc2hl bGwgMi4wIGludGVyZmFjZQorLSAgICAvLyBQcmludChMIkdvdCBhcmdjL2FyZ3YgZnJvbSBzaGVs bCBpbnRmIHByb3RvXG4iKTsKKysgICAgLy8gUHJpbnQodSJHb3QgYXJnYy9hcmd2IGZyb20gc2hl bGwgaW50ZiBwcm90b1xuIik7CisgICAgICpBcmd2ID0gRWZpU2hlbGxQYXJhbWV0ZXJzUHJvdG9j b2wtPkFyZ3Y7CisgICAgIHJldHVybiBFZmlTaGVsbFBhcmFtZXRlcnNQcm90b2NvbC0+QXJnYzsK KyAgIH0KK0BAIC0xMDksNyArMTA5LDcgQEAgSU5UTiBHZXRTaGVsbEFyZ2NBcmd2KEVGSV9IQU5E TEUgSW1hZ2VIYW5kbGUsIENIQVIxNiAqKkFyZ3ZbXSkKKyAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICk7CisgICBpZiAoIUVGSV9FUlJPUihTdGF0dXMpKQorICAgeworLSAgICAvLyBQcmlu dChMIkdvdCBhcmdjL2FyZ3YgZnJvbSBzaGVsbCBwYXJhbXMgcHJvdG9cbiIpOworKyAgICAvLyBQ cmludCh1IkdvdCBhcmdjL2FyZ3YgZnJvbSBzaGVsbCBwYXJhbXMgcHJvdG9cbiIpOworICAgICAq QXJndiA9IEVmaVNoZWxsSW50ZXJmYWNlUHJvdG9jb2wtPkFyZ3Y7CisgICAgIHJldHVybiBFZmlT aGVsbEludGVyZmFjZVByb3RvY29sLT5BcmdjOworICAgfQorZGlmZiAtLWdpdCBhL2xpYi9jb25z b2xlLmMgYi9saWIvY29uc29sZS5jCitpbmRleCA1Y2E0N2VmLi5hNzMzZmI2IDEwMDY0NAorLS0t IGEvbGliL2NvbnNvbGUuYworKysrIGIvbGliL2NvbnNvbGUuYworQEAgLTgxLDcgKzgxLDcgQEAg SUlucHV0ICgKKyAgICAgICAgIAorICAgICAgICAgaWYgKEtleS5Vbmljb2RlQ2hhciA9PSAnXGIn KSB7CisgICAgICAgICAgICAgaWYgKExlbikgeworLSAgICAgICAgICAgICAgICB1ZWZpX2NhbGxf d3JhcHBlcihDb25PdXQtPk91dHB1dFN0cmluZywgMiwgQ29uT3V0LCBMIlxiIFxiIik7CisrICAg ICAgICAgICAgICAgIHVlZmlfY2FsbF93cmFwcGVyKENvbk91dC0+T3V0cHV0U3RyaW5nLCAyLCBD b25PdXQsIHUiXGIgXGIiKTsKKyAgICAgICAgICAgICAgICAgTGVuIC09IDE7CisgICAgICAgICAg ICAgfQorICAgICAgICAgICAgIGNvbnRpbnVlOworZGlmZiAtLWdpdCBhL2xpYi9kcGF0aC5jIGIv bGliL2RwYXRoLmMKK2luZGV4IDYzZTRlNzAuLjBlZTk5MjEgMTAwNjQ0CistLS0gYS9saWIvZHBh dGguYworKysrIGIvbGliL2RwYXRoLmMKK0BAIC00NzksNyArNDc5LDcgQEAgX0RldlBhdGhQY2kg KAorICAgICBQQ0lfREVWSUNFX1BBVEggICAgICAgICAqUGNpOworIAorICAgICBQY2kgPSBEZXZQ YXRoOworLSAgICBDYXRQcmludChTdHIsIEwiUGNpKDB4JXgsMHgleCkiLCBQY2ktPkRldmljZSwg UGNpLT5GdW5jdGlvbik7CisrICAgIENhdFByaW50KFN0ciwgdSJQY2koMHgleCwweCV4KSIsIFBj aS0+RGV2aWNlLCBQY2ktPkZ1bmN0aW9uKTsKKyB9CisgCisgc3RhdGljIFZPSUQKK0BAIC00OTEs NyArNDkxLDcgQEAgX0RldlBhdGhQY2NhcmQgKAorICAgICBQQ0NBUkRfREVWSUNFX1BBVEggICAg ICAqUGNjYXJkOworIAorICAgICBQY2NhcmQgPSBEZXZQYXRoOworLSAgICBDYXRQcmludChTdHIs IEwiUGNjYXJkKDB4JXgpIiwgUGNjYXJkLT4gRnVuY3Rpb25OdW1iZXIgKTsKKysgICAgQ2F0UHJp bnQoU3RyLCB1IlBjY2FyZCgweCV4KSIsIFBjY2FyZC0+IEZ1bmN0aW9uTnVtYmVyICk7CisgfQor IAorIHN0YXRpYyBWT0lECitAQCAtNTAzLDcgKzUwMyw3IEBAIF9EZXZQYXRoTWVtTWFwICgKKyAg ICAgTUVNTUFQX0RFVklDRV9QQVRIICAgICAgKk1lbU1hcDsKKyAKKyAgICAgTWVtTWFwID0gRGV2 UGF0aDsKKy0gICAgQ2F0UHJpbnQoU3RyLCBMIk1lbU1hcCglZCwweCV4LDB4JXgpIiwKKysgICAg Q2F0UHJpbnQoU3RyLCB1Ik1lbU1hcCglZCwweCV4LDB4JXgpIiwKKyAgICAgICAgIE1lbU1hcC0+ TWVtb3J5VHlwZSwKKyAgICAgICAgIE1lbU1hcC0+U3RhcnRpbmdBZGRyZXNzLAorICAgICAgICAg TWVtTWFwLT5FbmRpbmdBZGRyZXNzCitAQCAtNTE5LDcgKzUxOSw3IEBAIF9EZXZQYXRoQ29udHJv bGxlciAoCisgICAgIENPTlRST0xMRVJfREVWSUNFX1BBVEggICpDb250cm9sbGVyOworIAorICAg ICBDb250cm9sbGVyID0gRGV2UGF0aDsKKy0gICAgQ2F0UHJpbnQoU3RyLCBMIkN0cmwoJWQpIiwK KysgICAgQ2F0UHJpbnQoU3RyLCB1IkN0cmwoJWQpIiwKKyAgICAgICAgIENvbnRyb2xsZXItPkNv bnRyb2xsZXIKKyAgICAgICAgICk7CisgfQorQEAgLTUzNiwyMSArNTM2LDIxIEBAIF9EZXZQYXRo VmVuZG9yICgKKyAKKyAgICAgVmVuZG9yID0gRGV2UGF0aDsKKyAgICAgc3dpdGNoIChEZXZpY2VQ YXRoVHlwZSgmVmVuZG9yLT5IZWFkZXIpKSB7CistICAgIGNhc2UgSEFSRFdBUkVfREVWSUNFX1BB VEg6ICBUeXBlID0gTCJIdyI7ICAgICAgICBicmVhazsKKy0gICAgY2FzZSBNRVNTQUdJTkdfREVW SUNFX1BBVEg6IFR5cGUgPSBMIk1zZyI7ICAgICAgIGJyZWFrOworLSAgICBjYXNlIE1FRElBX0RF VklDRV9QQVRIOiAgICAgVHlwZSA9IEwiTWVkaWEiOyAgICAgYnJlYWs7CistICAgIGRlZmF1bHQ6 ICAgICAgICAgICAgICAgICAgICBUeXBlID0gTCI/IjsgICAgICAgICBicmVhazsKKysgICAgY2Fz ZSBIQVJEV0FSRV9ERVZJQ0VfUEFUSDogIFR5cGUgPSB1Ikh3IjsgICAgICAgIGJyZWFrOworKyAg ICBjYXNlIE1FU1NBR0lOR19ERVZJQ0VfUEFUSDogVHlwZSA9IHUiTXNnIjsgICAgICAgYnJlYWs7 CisrICAgIGNhc2UgTUVESUFfREVWSUNFX1BBVEg6ICAgICBUeXBlID0gdSJNZWRpYSI7ICAgICBi cmVhazsKKysgICAgZGVmYXVsdDogICAgICAgICAgICAgICAgICAgIFR5cGUgPSB1Ij8iOyAgICAg ICAgIGJyZWFrOworICAgICB9CisgCistICAgIENhdFByaW50KFN0ciwgTCJWZW4lcyglZyIsIFR5 cGUsICZWZW5kb3ItPkd1aWQpOworKyAgICBDYXRQcmludChTdHIsIHUiVmVuJXMoJWciLCBUeXBl LCAmVmVuZG9yLT5HdWlkKTsKKyAgICAgaWYgKENvbXBhcmVHdWlkICgmVmVuZG9yLT5HdWlkLCAm VW5rbm93bkRldmljZSkgPT0gMCkgeworICAgICAgICAgLy8KKyAgICAgICAgIC8vIEdVSUQgdXNl ZCBieSBFRkkgdG8gZW51bWVyYXRlIGFuIEVERCAxLjEgZGV2aWNlCisgICAgICAgICAvLworICAg ICAgICAgVW5rbm93bkRldlBhdGggPSAoVU5LTk9XTl9ERVZJQ0VfVkVORE9SX0RFVklDRV9QQVRI ICopVmVuZG9yOworLSAgICAgICAgQ2F0UHJpbnQoU3RyLCBMIjolMDJ4KSIsIFVua25vd25EZXZQ YXRoLT5MZWdhY3lEcml2ZUxldHRlcik7CisrICAgICAgICBDYXRQcmludChTdHIsIHUiOiUwMngp IiwgVW5rbm93bkRldlBhdGgtPkxlZ2FjeURyaXZlTGV0dGVyKTsKKyAgICAgfSBlbHNlIHsKKy0g ICAgICAgIENhdFByaW50KFN0ciwgTCIpIik7CisrICAgICAgICBDYXRQcmludChTdHIsIHUiKSIp OworICAgICB9CisgfQorIAorQEAgLTU3MCw0MCArNTcwLDQwIEBAIF9EZXZQYXRoQWNwaSAoCisg ICAgIGlmICgoQWNwaS0+SElEICYgUE5QX0VJU0FfSURfTUFTSykgPT0gUE5QX0VJU0FfSURfQ09O U1QpIHsKKyAgICAgICAgIHN3aXRjaCAoIEVJU0FfSURfVE9fTlVNKCBBY3BpLT4gSElEICkgKSB7 CisgICAgICAgICAgICAgY2FzZSAweDMwMSA6IHsKKy0gICAgICAgICAgICAgICAgQ2F0UHJpbnQo IFN0ciAsIEwiS2V5Ym9hcmQoJWQpIiAsIEFjcGktPiBVSUQgKSA7CisrICAgICAgICAgICAgICAg IENhdFByaW50KCBTdHIgLCB1IktleWJvYXJkKCVkKSIgLCBBY3BpLT4gVUlEICkgOworICAgICAg ICAgICAgICAgICBicmVhayA7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIGNhc2UgMHg0 MDEgOiB7CistICAgICAgICAgICAgICAgIENhdFByaW50KCBTdHIgLCBMIlBhcmFsbGVsUG9ydCgl ZCkiICwgQWNwaS0+IFVJRCApIDsKKysgICAgICAgICAgICAgICAgQ2F0UHJpbnQoIFN0ciAsIHUi UGFyYWxsZWxQb3J0KCVkKSIgLCBBY3BpLT4gVUlEICkgOworICAgICAgICAgICAgICAgICBicmVh ayA7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIGNhc2UgMHg1MDEgOiB7CistICAgICAg ICAgICAgICAgIENhdFByaW50KCBTdHIgLCBMIlNlcmlhbCglZCkiICwgQWNwaS0+IFVJRCApIDsK KysgICAgICAgICAgICAgICAgQ2F0UHJpbnQoIFN0ciAsIHUiU2VyaWFsKCVkKSIgLCBBY3BpLT4g VUlEICkgOworICAgICAgICAgICAgICAgICBicmVhayA7CisgICAgICAgICAgICAgfQorICAgICAg ICAgICAgIGNhc2UgMHg2MDQgOiB7CistICAgICAgICAgICAgICAgIENhdFByaW50KCBTdHIgLCBM IkZsb3BweSglZCkiICwgQWNwaS0+IFVJRCApIDsKKysgICAgICAgICAgICAgICAgQ2F0UHJpbnQo IFN0ciAsIHUiRmxvcHB5KCVkKSIgLCBBY3BpLT4gVUlEICkgOworICAgICAgICAgICAgICAgICBi cmVhayA7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIGNhc2UgMHhhMDMgOiB7CistICAg ICAgICAgICAgICAgIENhdFByaW50KCBTdHIgLCBMIlBjaVJvb3QoJWQpIiAsIEFjcGktPiBVSUQg KSA7CisrICAgICAgICAgICAgICAgIENhdFByaW50KCBTdHIgLCB1IlBjaVJvb3QoJWQpIiAsIEFj cGktPiBVSUQgKSA7CisgICAgICAgICAgICAgICAgIGJyZWFrIDsKKyAgICAgICAgICAgICB9Cisg ICAgICAgICAgICAgY2FzZSAweGEwOCA6IHsKKy0gICAgICAgICAgICAgICAgQ2F0UHJpbnQoIFN0 ciAsIEwiUGNpZVJvb3QoJWQpIiAsIEFjcGktPiBVSUQgKSA7CisrICAgICAgICAgICAgICAgIENh dFByaW50KCBTdHIgLCB1IlBjaWVSb290KCVkKSIgLCBBY3BpLT4gVUlEICkgOworICAgICAgICAg ICAgICAgICBicmVhayA7CisgICAgICAgICAgICAgfQorICAgICAgICAgICAgIGRlZmF1bHQgOiB7 CistICAgICAgICAgICAgICAgIENhdFByaW50KCBTdHIgLCBMIkFjcGkoUE5QJTA0eCIgLCBFSVNB X0lEX1RPX05VTSggQWNwaS0+IEhJRCApICkgOworLSAgICAgICAgICAgICAgICBpZiAoIEFjcGkt PiBVSUQgKSBDYXRQcmludCggU3RyICwgTCIsJWQiICwgQWNwaS0+IFVJRCApIDsKKy0gICAgICAg ICAgICAgICAgQ2F0UHJpbnQoIFN0ciAsIEwiKSIgKSA7CisrICAgICAgICAgICAgICAgIENhdFBy aW50KCBTdHIgLCB1IkFjcGkoUE5QJTA0eCIgLCBFSVNBX0lEX1RPX05VTSggQWNwaS0+IEhJRCAp ICkgOworKyAgICAgICAgICAgICAgICBpZiAoIEFjcGktPiBVSUQgKSBDYXRQcmludCggU3RyICwg dSIsJWQiICwgQWNwaS0+IFVJRCApIDsKKysgICAgICAgICAgICAgICAgQ2F0UHJpbnQoIFN0ciAs IHUiKSIgKSA7CisgICAgICAgICAgICAgICAgIGJyZWFrIDsKKyAgICAgICAgICAgICB9CisgCX0K KyAgICAgfSBlbHNlIHsKKy0gICAgICAgIENhdFByaW50KCBTdHIgLCBMIkFjcGkoMHglWCIgLCBB Y3BpLT4gSElEICkgOworLSAgICAgICAgaWYgKCBBY3BpLT4gVUlEICkgQ2F0UHJpbnQoIFN0ciAs IEwiLCVkIiAsIEFjcGktPiBVSUQgKSA7CistICAgICAgICBDYXRQcmludCggU3RyICwgTCIpIiAs IEFjcGktPiBISUQgLCBBY3BpLT4gVUlEICkgOworKyAgICAgICAgQ2F0UHJpbnQoIFN0ciAsIHUi QWNwaSgweCVYIiAsIEFjcGktPiBISUQgKSA7CisrICAgICAgICBpZiAoIEFjcGktPiBVSUQgKSBD YXRQcmludCggU3RyICwgdSIsJWQiICwgQWNwaS0+IFVJRCApIDsKKysgICAgICAgIENhdFByaW50 KCBTdHIgLCB1IikiICwgQWNwaS0+IEhJRCAsIEFjcGktPiBVSUQgKSA7CisgICAgIH0KKyB9Cisg CitAQCAtNjE3LDkgKzYxNyw5IEBAIF9EZXZQYXRoQXRhcGkgKAorICAgICBBVEFQSV9ERVZJQ0Vf UEFUSCAgICAgICAqQXRhcGk7CisgCisgICAgIEF0YXBpID0gRGV2UGF0aDsKKy0gICAgQ2F0UHJp bnQoU3RyLCBMIkF0YSglcywlcykiLAorLSAgICAgICAgQXRhcGktPlByaW1hcnlTZWNvbmRhcnkg PyBMIlNlY29uZGFyeSIgOiBMIlByaW1hcnkiLAorLSAgICAgICAgQXRhcGktPlNsYXZlTWFzdGVy ID8gTCJTbGF2ZSIgOiBMIk1hc3RlciIKKysgICAgQ2F0UHJpbnQoU3RyLCB1IkF0YSglcywlcyki LAorKyAgICAgICAgQXRhcGktPlByaW1hcnlTZWNvbmRhcnkgPyB1IlNlY29uZGFyeSIgOiB1IlBy aW1hcnkiLAorKyAgICAgICAgQXRhcGktPlNsYXZlTWFzdGVyID8gdSJTbGF2ZSIgOiB1Ik1hc3Rl ciIKKyAgICAgICAgICk7CisgfQorIAorQEAgLTYzMiw3ICs2MzIsNyBAQCBfRGV2UGF0aFNjc2kg KAorICAgICBTQ1NJX0RFVklDRV9QQVRIICAgICAgICAqU2NzaTsKKyAKKyAgICAgU2NzaSA9IERl dlBhdGg7CistICAgIENhdFByaW50KFN0ciwgTCJTY3NpKCVkLCVkKSIsIFNjc2ktPlB1biwgU2Nz aS0+THVuKTsKKysgICAgQ2F0UHJpbnQoU3RyLCB1IlNjc2koJWQsJWQpIiwgU2NzaS0+UHVuLCBT Y3NpLT5MdW4pOworIH0KKyAKKyAKK0BAIC02NDUsOCArNjQ1LDggQEAgX0RldlBhdGhGaWJyZSAo CisgICAgIEZJQlJFQ0hBTk5FTF9ERVZJQ0VfUEFUSCAgICAqRmlicmU7CisgCisgICAgIEZpYnJl ID0gRGV2UGF0aDsKKy0gICAgQ2F0UHJpbnQoIFN0ciAsIEwiRmlicmUlcygweCUwMTZseCwweCUw MTZseCkiICwKKy0gICAgICAgIERldmljZVBhdGhUeXBlKCAmIEZpYnJlLT4gSGVhZGVyICkgPT0g TVNHX0ZJQlJFQ0hBTk5FTF9EUCA/IEwiIiA6IEwiRXgiICwKKysgICAgQ2F0UHJpbnQoIFN0ciAs IHUiRmlicmUlcygweCUwMTZseCwweCUwMTZseCkiICwKKysgICAgICAgIERldmljZVBhdGhUeXBl KCAmIEZpYnJlLT4gSGVhZGVyICkgPT0gTVNHX0ZJQlJFQ0hBTk5FTF9EUCA/IHUiIiA6IHUiRXgi ICwKKyAgICAgICAgIEZpYnJlLT4gV1dOICwgRmlicmUtPiBMdW4gKSA7CisgfQorIAorQEAgLTY2 MCw3ICs2NjAsNyBAQCBfRGV2UGF0aDEzOTQgKAorIAorICAgICBGMTM5NCA9IERldlBhdGg7Cisg ICAgIC8vIEd1aWQgaGFzIGZvcm1hdCBvZiBJRUVFLUVVSTY0CistICAgIENhdFByaW50KFN0ciwg TCJJMTM5NCglMDE2bHgpIiwgRjEzOTQtPkd1aWQpOworKyAgICBDYXRQcmludChTdHIsIHUiSTEz OTQoJTAxNmx4KSIsIEYxMzk0LT5HdWlkKTsKKyB9CisgCisgCitAQCAtNjc0LDcgKzY3NCw3IEBA IF9EZXZQYXRoVXNiICgKKyAgICAgVVNCX0RFVklDRV9QQVRIICAgICAgICAgKlVzYjsKKyAKKyAg ICAgVXNiID0gRGV2UGF0aDsKKy0gICAgQ2F0UHJpbnQoIFN0ciAsIEwiVXNiKDB4JXgsMHgleCki ICwgVXNiLT4gUG9ydCAsIFVzYi0+IEVuZHBvaW50ICkgOworKyAgICBDYXRQcmludCggU3RyICwg dSJVc2IoMHgleCwweCV4KSIgLCBVc2ItPiBQb3J0ICwgVXNiLT4gRW5kcG9pbnQgKSA7CisgfQor IAorIAorQEAgLTY4Nyw3ICs2ODcsNyBAQCBfRGV2UGF0aEkyTyAoCisgICAgIEkyT19ERVZJQ0Vf UEFUSCAgICAgICAgICpJMk87CisgCisgICAgIEkyTyA9IERldlBhdGg7CistICAgIENhdFByaW50 KFN0ciwgTCJJMk8oMHglWCkiLCBJMk8tPlRpZCk7CisrICAgIENhdFByaW50KFN0ciwgdSJJMk8o MHglWCkiLCBJMk8tPlRpZCk7CisgfQorIAorIHN0YXRpYyBWT0lECitAQCAtNzEwLDE1ICs3MTAs MTUgQEAgX0RldlBhdGhNYWNBZGRyICgKKyAgICAgICAgIEh3QWRkcmVzc1NpemUgPSA2OworICAg ICB9CisgCistICAgIENhdFByaW50KFN0ciwgTCJNYWMoIik7CisrICAgIENhdFByaW50KFN0ciwg dSJNYWMoIik7CisgCisgICAgIGZvcihJbmRleCA9IDA7IEluZGV4IDwgSHdBZGRyZXNzU2l6ZTsg SW5kZXgrKykgeworLSAgICAgICAgQ2F0UHJpbnQoU3RyLCBMIiUwMngiLE1BQy0+TWFjQWRkcmVz cy5BZGRyW0luZGV4XSk7CisrICAgICAgICBDYXRQcmludChTdHIsIHUiJTAyeCIsTUFDLT5NYWNB ZGRyZXNzLkFkZHJbSW5kZXhdKTsKKyAgICAgfQorICAgICBpZiAoIE1BQy0+IElmVHlwZSAhPSAw ICkgeworLSAgICAgICAgQ2F0UHJpbnQoU3RyLCBMIiwlZCIgLCBNQUMtPiBJZlR5cGUgKSA7Cisr ICAgICAgICBDYXRQcmludChTdHIsIHUiLCVkIiAsIE1BQy0+IElmVHlwZSApIDsKKyAgICAgfQor LSAgICBDYXRQcmludChTdHIsIEwiKSIpOworKyAgICBDYXRQcmludChTdHIsIHUiKSIpOworIH0K KyAKKyBzdGF0aWMgVk9JRAorQEAgLTcyNyw3ICs3MjcsNyBAQCBDYXRQcmludElQdjQoCisgICAg IElOIEVGSV9JUHY0X0FERFJFU1MgKiBBZGRyZXNzCisgICAgICkKKyB7CistICAgIENhdFByaW50 KCBTdHIgLCBMIiVkLiVkLiVkLiVkIiAsIEFkZHJlc3MtPiBBZGRyWyAwIF0gLCBBZGRyZXNzLT4g QWRkclsgMSBdICwKKysgICAgQ2F0UHJpbnQoIFN0ciAsIHUiJWQuJWQuJWQuJWQiICwgQWRkcmVz cy0+IEFkZHJbIDAgXSAsIEFkZHJlc3MtPiBBZGRyWyAxIF0gLAorICAgICAgICAgQWRkcmVzcy0+ IEFkZHJbIDIgXSAsIEFkZHJlc3MtPiBBZGRyWyAzIF0gKSA7CisgfQorIAorQEAgLTc0OSwxMSAr NzQ5LDExIEBAIENhdFByaW50TmV0d29ya1Byb3RvY29sKAorICAgICApCisgeworICAgICBpZiAo IFByb3RvID09IDYgKSB7CistICAgICAgICBDYXRQcmludCggU3RyICwgTCJUQ1AiICkgOworKyAg ICAgICAgQ2F0UHJpbnQoIFN0ciAsIHUiVENQIiApIDsKKyAgICAgfSBlbHNlIGlmICggUHJvdG8g PT0gMTcgKSB7CistICAgICAgICBDYXRQcmludCggU3RyICwgTCJVRFAiICkgOworKyAgICAgICAg Q2F0UHJpbnQoIFN0ciAsIHUiVURQIiApIDsKKyAgICAgfSBlbHNlIHsKKy0gICAgICAgIENhdFBy aW50KCBTdHIgLCBMIiVkIiAsIFByb3RvICkgOworKyAgICAgICAgQ2F0UHJpbnQoIFN0ciAsIHUi JWQiICwgUHJvdG8gKSA7CisgICAgIH0KKyB9CisgCitAQCAtNzY3LDExICs3NjcsMTEgQEAgX0Rl dlBhdGhJUHY0ICgKKyAgICAgQk9PTEVBTiBzaG93IDsKKyAKKyAgICAgSVAgPSBEZXZQYXRoOwor LSAgICBDYXRQcmludCggU3RyICwgTCJJUHY0KCIpIDsKKysgICAgQ2F0UHJpbnQoIFN0ciAsIHUi SVB2NCgiKSA7CisgICAgIENhdFByaW50SVB2NCggU3RyICwgJiBJUC0+IFJlbW90ZUlwQWRkcmVz cyApIDsKKy0gICAgQ2F0UHJpbnQoIFN0ciAsIEwiLCIpIDsKKysgICAgQ2F0UHJpbnQoIFN0ciAs IHUiLCIpIDsKKyAgICAgQ2F0UHJpbnROZXR3b3JrUHJvdG9jb2woIFN0ciAsIElQLT4gUHJvdG9j b2wgKSA7CistICAgIENhdFByaW50KCBTdHIgLCBMIiwlcyIgLCBJUC0+IFN0YXRpY0lwQWRkcmVz cyA/IEwiU3RhdGljIiA6IEwiREhDUCIgKSA7CisrICAgIENhdFByaW50KCBTdHIgLCB1IiwlcyIg LCBJUC0+IFN0YXRpY0lwQWRkcmVzcyA/IHUiU3RhdGljIiA6IHUiREhDUCIgKSA7CisgICAgIHNo b3cgPSBJc05vdE51bGxJUHY0KCAmIElQLT4gTG9jYWxJcEFkZHJlc3MgKSA7CisgICAgIGlmICgg ISBzaG93ICYmIERldmljZVBhdGhOb2RlTGVuZ3RoKCAmIElQLT4gSGVhZGVyICkgPT0gc2l6ZW9m KCBJUHY0X0RFVklDRV9QQVRIICkgKSB7CisgICAgICAgICAvKiBvbmx5IHZlcnNpb24gMiBpbmNs dWRlcyBnYXRld2F5IGFuZCBuZXRtYXNrICovCitAQCAtNzc5LDIzICs3NzksMjMgQEAgX0RldlBh dGhJUHY0ICgKKyAgICAgICAgIHNob3cgfD0gSXNOb3ROdWxsSVB2NCggJiBJUC0+IFN1Ym5ldE1h c2sgICkgOworICAgICB9CisgICAgIGlmICggc2hvdyApIHsKKy0gICAgICAgIENhdFByaW50KCBT dHIgLCBMIiwiICkgOworKyAgICAgICAgQ2F0UHJpbnQoIFN0ciAsIHUiLCIgKSA7CisgICAgICAg ICBDYXRQcmludElQdjQoIFN0ciAsICYgSVAtPiBMb2NhbElwQWRkcmVzcyApIDsKKyAgICAgICAg IGlmICggRGV2aWNlUGF0aE5vZGVMZW5ndGgoICYgSVAtPiBIZWFkZXIgKSA9PSBzaXplb2YoIElQ djRfREVWSUNFX1BBVEggKSApIHsKKyAgICAgICAgICAgICAvKiBvbmx5IHZlcnNpb24gMiBpbmNs dWRlcyBnYXRld2F5IGFuZCBuZXRtYXNrICovCisgICAgICAgICAgICAgc2hvdyA9IElzTm90TnVs bElQdjQoICYgSVAtPiBHYXRld2F5SXBBZGRyZXNzICkgOworICAgICAgICAgICAgIHNob3cgfD0g SXNOb3ROdWxsSVB2NCggJiBJUC0+IFN1Ym5ldE1hc2sgKSA7CisgICAgICAgICAgICAgaWYgKCBz aG93ICkgeworLSAgICAgICAgICAgICAgICBDYXRQcmludCggU3RyICwgTCIsIikgOworKyAgICAg ICAgICAgICAgICBDYXRQcmludCggU3RyICwgdSIsIikgOworICAgICAgICAgICAgICAgICBDYXRQ cmludElQdjQoIFN0ciAsICYgSVAtPiBHYXRld2F5SXBBZGRyZXNzICkgOworICAgICAgICAgICAg ICAgICBpZiAoIElzTm90TnVsbElQdjQoICYgSVAtPiBTdWJuZXRNYXNrICkgKSB7CistICAgICAg ICAgICAgICAgICAgICBDYXRQcmludCggU3RyICwgTCIsIikgOworKyAgICAgICAgICAgICAgICAg ICAgQ2F0UHJpbnQoIFN0ciAsIHUiLCIpIDsKKyAgICAgICAgICAgICAgICAgICAgIENhdFByaW50 SVB2NCggU3RyICwgJiBJUC0+IFN1Ym5ldE1hc2sgKSA7CisgICAgICAgICAgICAgICAgIH0KKyAg ICAgICAgICAgICB9CisgICAgICAgICB9CisgICAgIH0KKy0gICAgQ2F0UHJpbnQoIFN0ciAsIEwi KSIpIDsKKysgICAgQ2F0UHJpbnQoIFN0ciAsIHUiKSIpIDsKKyB9CisgCisgI2RlZmluZSBDYXRQ cmludElQdjZfQUREKCB4ICwgeSApICggKCAoVUlOVDE2KSAoIHggKSApIDw8IDggfCAoIHkgKSAp CitAQCAtODA1LDcgKzgwNSw3IEBAIENhdFByaW50SVB2NigKKyAgICAgSU4gRUZJX0lQdjZfQURE UkVTUyAqIEFkZHJlc3MKKyAgICAgKQorIHsKKy0gICAgQ2F0UHJpbnQoIFN0ciAsIEwiJXg6JXg6 JXg6JXg6JXg6JXg6JXg6JXgiICwKKysgICAgQ2F0UHJpbnQoIFN0ciAsIHUiJXg6JXg6JXg6JXg6 JXg6JXg6JXg6JXgiICwKKyAgICAgICAgIENhdFByaW50SVB2Nl9BREQoIEFkZHJlc3MtPiBBZGRy WyAwIF0gLCBBZGRyZXNzLT4gQWRkclsgMSBdICkgLAorICAgICAgICAgQ2F0UHJpbnRJUHY2X0FE RCggQWRkcmVzcy0+IEFkZHJbIDIgXSAsIEFkZHJlc3MtPiBBZGRyWyAzIF0gKSAsCisgICAgICAg ICBDYXRQcmludElQdjZfQUREKCBBZGRyZXNzLT4gQWRkclsgNCBdICwgQWRkcmVzcy0+IEFkZHJb IDUgXSApICwKK0BAIC04MjUsMjEgKzgyNSwyMSBAQCBfRGV2UGF0aElQdjYgKAorICAgICBJUHY2 X0RFVklDRV9QQVRIICAgICAqSVA7CisgCisgICAgIElQID0gRGV2UGF0aDsKKy0gICAgQ2F0UHJp bnQoIFN0ciAsIEwiSVB2NigiKSA7CisrICAgIENhdFByaW50KCBTdHIgLCB1IklQdjYoIikgOwor ICAgICBDYXRQcmludElQdjYoIFN0ciAsICYgSVAtPiBSZW1vdGVJcEFkZHJlc3MgKSA7CistICAg IENhdFByaW50KCBTdHIgLCBMIiwiKSA7CisrICAgIENhdFByaW50KCBTdHIgLCB1IiwiKSA7Cisg ICAgIENhdFByaW50TmV0d29ya1Byb3RvY29sKCBTdHIsIElQLT4gUHJvdG9jb2wgKSA7CistICAg IENhdFByaW50KCBTdHIgLCBMIiwlcywiICwgSVAtPiBJUEFkZHJlc3NPcmlnaW4gPworLSAgICAg ICAgKCBJUC0+IElQQWRkcmVzc09yaWdpbiA9PSAxID8gTCJTdGF0ZWxlc3NBdXRvQ29uZmlndXJl IiA6CistICAgICAgICBMIlN0YXRlZnVsQXV0b0NvbmZpZ3VyZSIgKSA6IEwiU3RhdGljIiApIDsK KysgICAgQ2F0UHJpbnQoIFN0ciAsIHUiLCVzLCIgLCBJUC0+IElQQWRkcmVzc09yaWdpbiA/Cisr ICAgICAgICAoIElQLT4gSVBBZGRyZXNzT3JpZ2luID09IDEgPyB1IlN0YXRlbGVzc0F1dG9Db25m aWd1cmUiIDoKKysgICAgICAgIHUiU3RhdGVmdWxBdXRvQ29uZmlndXJlIiApIDogdSJTdGF0aWMi ICkgOworICAgICBDYXRQcmludElQdjYoIFN0ciAsICYgSVAtPiBMb2NhbElwQWRkcmVzcyApIDsK KyAgICAgaWYgKCBEZXZpY2VQYXRoTm9kZUxlbmd0aCggJiBJUC0+IEhlYWRlciApID09IHNpemVv ZiggSVB2Nl9ERVZJQ0VfUEFUSCApICkgeworLSAgICAgICAgQ2F0UHJpbnQoIFN0ciAsIEwiLCIp IDsKKysgICAgICAgIENhdFByaW50KCBTdHIgLCB1IiwiKSA7CisgICAgICAgICBDYXRQcmludElQ djYoIFN0ciAsICYgSVAtPiBHYXRld2F5SXBBZGRyZXNzICkgOworLSAgICAgICAgQ2F0UHJpbnQo IFN0ciAsIEwiLCIpIDsKKy0gICAgICAgIENhdFByaW50KCBTdHIgLCBMIiVkIiAsICYgSVAtPiBQ cmVmaXhMZW5ndGggKSA7CisrICAgICAgICBDYXRQcmludCggU3RyICwgdSIsIikgOworKyAgICAg ICAgQ2F0UHJpbnQoIFN0ciAsIHUiJWQiICwgJiBJUC0+IFByZWZpeExlbmd0aCApIDsKKyAgICAg fQorLSAgICBDYXRQcmludCggU3RyICwgTCIpIikgOworKyAgICBDYXRQcmludCggU3RyICwgdSIp IikgOworIH0KKyAKKyBzdGF0aWMgVk9JRAorQEAgLTg1Miw3ICs4NTIsNyBAQCBfRGV2UGF0aFVy aSAoCisgCisgICAgIFVyaSA9IERldlBhdGg7CisgCistICAgIENhdFByaW50KCBTdHIsIEwiVXJp KCVhKSIsIFVyaS0+VXJpICk7CisrICAgIENhdFByaW50KCBTdHIsIHUiVXJpKCVhKSIsIFVyaS0+ VXJpICk7CisgfQorIAorIHN0YXRpYyBWT0lECitAQCAtODY0LDcgKzg2NCw3IEBAIF9EZXZQYXRo SW5maW5pQmFuZCAoCisgICAgIElORklOSUJBTkRfREVWSUNFX1BBVEggICpJbmZpbmlCYW5kOwor IAorICAgICBJbmZpbmlCYW5kID0gRGV2UGF0aDsKKy0gICAgQ2F0UHJpbnQoU3RyLCBMIkluZmlu aWJhbmQoMHgleCwlZywweCVseCwweCVseCwweCVseCkiLAorKyAgICBDYXRQcmludChTdHIsIHUi SW5maW5pYmFuZCgweCV4LCVnLDB4JWx4LDB4JWx4LDB4JWx4KSIsCisgICAgICAgICBJbmZpbmlC YW5kLT5SZXNvdXJjZUZsYWdzLCBJbmZpbmlCYW5kLT5Qb3J0R2lkLCBJbmZpbmlCYW5kLT5TZXJ2 aWNlSWQsCisgICAgICAgICBJbmZpbmlCYW5kLT5UYXJnZXRQb3J0SWQsIEluZmluaUJhbmQtPkRl dmljZUlkKTsKKyB9CitAQCAtODkwLDI1ICs4OTAsMjUgQEAgX0RldlBhdGhVYXJ0ICgKKyAgICAg fQorIAorICAgICBpZiAoVWFydC0+QmF1ZFJhdGUgPT0gMCkgeworLSAgICAgICAgQ2F0UHJpbnQo U3RyLCBMIlVhcnQoREVGQVVMVCwiKTsKKysgICAgICAgIENhdFByaW50KFN0ciwgdSJVYXJ0KERF RkFVTFQsIik7CisgICAgIH0gZWxzZSB7CistICAgICAgICBDYXRQcmludChTdHIsIEwiVWFydCgl bGQsIiwgVWFydC0+QmF1ZFJhdGUpOworKyAgICAgICAgQ2F0UHJpbnQoU3RyLCB1IlVhcnQoJWxk LCIsIFVhcnQtPkJhdWRSYXRlKTsKKyAgICAgfQorIAorICAgICBpZiAoVWFydC0+RGF0YUJpdHMg PT0gMCkgeworLSAgICAgICAgQ2F0UHJpbnQoU3RyLCBMIkRFRkFVTFQsIik7CisrICAgICAgICBD YXRQcmludChTdHIsIHUiREVGQVVMVCwiKTsKKyAgICAgfSBlbHNlIHsKKy0gICAgICAgIENhdFBy aW50KFN0ciwgTCIlZCwiLCBVYXJ0LT5EYXRhQml0cyk7CisrICAgICAgICBDYXRQcmludChTdHIs IHUiJWQsIiwgVWFydC0+RGF0YUJpdHMpOworICAgICB9CisgCistICAgIENhdFByaW50KFN0ciwg TCIlYywiLCBQYXJpdHkpOworKyAgICBDYXRQcmludChTdHIsIHUiJWMsIiwgUGFyaXR5KTsKKyAK KyAgICAgc3dpdGNoIChVYXJ0LT5TdG9wQml0cykgeworLSAgICAgICAgY2FzZSAwICA6IENhdFBy aW50KFN0ciwgTCJEKSIpOyAgIGJyZWFrOworLSAgICAgICAgY2FzZSAxICA6IENhdFByaW50KFN0 ciwgTCIxKSIpOyAgIGJyZWFrOworLSAgICAgICAgY2FzZSAyICA6IENhdFByaW50KFN0ciwgTCIx LjUpIik7IGJyZWFrOworLSAgICAgICAgY2FzZSAzICA6IENhdFByaW50KFN0ciwgTCIyKSIpOyAg IGJyZWFrOworLSAgICAgICAgZGVmYXVsdCA6IENhdFByaW50KFN0ciwgTCJ4KSIpOyAgIGJyZWFr OworKyAgICAgICAgY2FzZSAwICA6IENhdFByaW50KFN0ciwgdSJEKSIpOyAgIGJyZWFrOworKyAg ICAgICAgY2FzZSAxICA6IENhdFByaW50KFN0ciwgdSIxKSIpOyAgIGJyZWFrOworKyAgICAgICAg Y2FzZSAyICA6IENhdFByaW50KFN0ciwgdSIxLjUpIik7IGJyZWFrOworKyAgICAgICAgY2FzZSAz ICA6IENhdFByaW50KFN0ciwgdSIyKSIpOyAgIGJyZWFrOworKyAgICAgICAgZGVmYXVsdCA6IENh dFByaW50KFN0ciwgdSJ4KSIpOyAgIGJyZWFrOworICAgICB9CisgfQorIAorQEAgLTkyMSw3ICs5 MjEsNyBAQCBfRGV2UGF0aFNhdGEgKAorICAgICBTQVRBX0RFVklDRV9QQVRIICogU2F0YSA7Cisg CisgICAgIFNhdGEgPSBEZXZQYXRoOworLSAgICBDYXRQcmludCggU3RyICwgTCJTYXRhKDB4JXgs MHgleCwweCV4KSIgLCBTYXRhLT4gSEJBUG9ydE51bWJlciAsCisrICAgIENhdFByaW50KCBTdHIg LCB1IlNhdGEoMHgleCwweCV4LDB4JXgpIiAsIFNhdGEtPiBIQkFQb3J0TnVtYmVyICwKKyAgICAg ICAgIFNhdGEtPiBQb3J0TXVsdGlwbGllclBvcnROdW1iZXIgLCBTYXRhLT4gTHVuICkgOworIH0K KyAKK0BAIC05MzYsMTkgKzkzNiwxOSBAQCBfRGV2UGF0aEhhcmREcml2ZSAoCisgICAgIEhkID0g RGV2UGF0aDsKKyAgICAgc3dpdGNoIChIZC0+U2lnbmF0dXJlVHlwZSkgeworICAgICAgICAgY2Fz ZSBTSUdOQVRVUkVfVFlQRV9NQlI6CistICAgICAgICAgICAgQ2F0UHJpbnQoU3RyLCBMIkhEKCVk LE1CUiwweCUwOHgpIiwKKysgICAgICAgICAgICBDYXRQcmludChTdHIsIHUiSEQoJWQsTUJSLDB4 JTA4eCkiLAorICAgICAgICAgICAgICAgICBIZC0+UGFydGl0aW9uTnVtYmVyLAorICAgICAgICAg ICAgICAgICAqKChVSU5UMzIgKikoJihIZC0+U2lnbmF0dXJlWzBdKSkpCisgICAgICAgICAgICAg ICAgICk7CisgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICBjYXNlIFNJR05BVFVSRV9UWVBF X0dVSUQ6CistICAgICAgICAgICAgQ2F0UHJpbnQoU3RyLCBMIkhEKCVkLEdQVCwlZykiLAorKyAg ICAgICAgICAgIENhdFByaW50KFN0ciwgdSJIRCglZCxHUFQsJWcpIiwKKyAgICAgICAgICAgICAg ICAgSGQtPlBhcnRpdGlvbk51bWJlciwKKyAgICAgICAgICAgICAgICAgKEVGSV9HVUlEICopICYo SGQtPlNpZ25hdHVyZVswXSkKKyAgICAgICAgICAgICAgICAgKTsKKyAgICAgICAgICAgICBicmVh azsKKyAgICAgICAgIGRlZmF1bHQ6CistICAgICAgICAgICAgQ2F0UHJpbnQoU3RyLCBMIkhEKCVk LCVkLDApIiwKKysgICAgICAgICAgICBDYXRQcmludChTdHIsIHUiSEQoJWQsJWQsMCkiLAorICAg ICAgICAgICAgICAgICBIZC0+UGFydGl0aW9uTnVtYmVyLAorICAgICAgICAgICAgICAgICBIZC0+ U2lnbmF0dXJlVHlwZQorICAgICAgICAgICAgICAgICApOworQEAgLTk2NSw3ICs5NjUsNyBAQCBf RGV2UGF0aENEUk9NICgKKyAgICAgQ0RST01fREVWSUNFX1BBVEggICAgICAgKkNkOworIAorICAg ICBDZCA9IERldlBhdGg7CistICAgIENhdFByaW50KCBTdHIgLCBMIkNEUk9NKDB4JXgpIiAsIENk LT4gQm9vdEVudHJ5ICkgOworKyAgICBDYXRQcmludCggU3RyICwgdSJDRFJPTSgweCV4KSIgLCBD ZC0+IEJvb3RFbnRyeSApIDsKKyB9CisgCisgc3RhdGljIFZPSUQKK0BAIC05NzcsNyArOTc3LDcg QEAgX0RldlBhdGhGaWxlUGF0aCAoCisgICAgIEZJTEVQQVRIX0RFVklDRV9QQVRIICAgICpGcDsK KyAKKyAgICAgRnAgPSBEZXZQYXRoOworLSAgICBDYXRQcmludChTdHIsIEwiJXMiLCBGcC0+UGF0 aE5hbWUpOworKyAgICBDYXRQcmludChTdHIsIHUiJXMiLCBGcC0+UGF0aE5hbWUpOworIH0KKyAK KyBzdGF0aWMgVk9JRAorQEAgLTk4OSw3ICs5ODksNyBAQCBfRGV2UGF0aE1lZGlhUHJvdG9jb2wg KAorICAgICBNRURJQV9QUk9UT0NPTF9ERVZJQ0VfUEFUSCAgKk1lZGlhUHJvdDsKKyAKKyAgICAg TWVkaWFQcm90ID0gRGV2UGF0aDsKKy0gICAgQ2F0UHJpbnQoU3RyLCBMIiVnIiwgJk1lZGlhUHJv dC0+UHJvdG9jb2wpOworKyAgICBDYXRQcmludChTdHIsIHUiJWciLCAmTWVkaWFQcm90LT5Qcm90 b2NvbCk7CisgfQorIAorIHN0YXRpYyBWT0lECitAQCAtMTAwMywxNiArMTAwMywxNiBAQCBfRGV2 UGF0aEJzc0JzcyAoCisgCisgICAgIEJzcyA9IERldlBhdGg7CisgICAgIHN3aXRjaCAoQnNzLT5E ZXZpY2VUeXBlKSB7CistICAgIGNhc2UgQkJTX1RZUEVfRkxPUFBZOiAgICAgICAgICAgICAgIFR5 cGUgPSBMIkZsb3BweSI7ICAgICAgIGJyZWFrOworLSAgICBjYXNlIEJCU19UWVBFX0hBUkREUklW RTogICAgICAgICAgICBUeXBlID0gTCJIYXJkZHJpdmUiOyAgICBicmVhazsKKy0gICAgY2FzZSBC QlNfVFlQRV9DRFJPTTogICAgICAgICAgICAgICAgVHlwZSA9IEwiQ0RST00iOyAgICAgICAgYnJl YWs7CistICAgIGNhc2UgQkJTX1RZUEVfUENNQ0lBOiAgICAgICAgICAgICAgIFR5cGUgPSBMIlBD TUNJQSI7ICAgICAgIGJyZWFrOworLSAgICBjYXNlIEJCU19UWVBFX1VTQjogICAgICAgICAgICAg ICAgICBUeXBlID0gTCJVc2IiOyAgICAgICAgICBicmVhazsKKy0gICAgY2FzZSBCQlNfVFlQRV9F TUJFRERFRF9ORVRXT1JLOiAgICAgVHlwZSA9IEwiTmV0IjsgICAgICAgICAgYnJlYWs7CistICAg IGRlZmF1bHQ6ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFR5cGUgPSBMIj8iOyAgICAgICAg ICAgIGJyZWFrOworKyAgICBjYXNlIEJCU19UWVBFX0ZMT1BQWTogICAgICAgICAgICAgICBUeXBl ID0gdSJGbG9wcHkiOyAgICAgICBicmVhazsKKysgICAgY2FzZSBCQlNfVFlQRV9IQVJERFJJVkU6 ICAgICAgICAgICAgVHlwZSA9IHUiSGFyZGRyaXZlIjsgICAgYnJlYWs7CisrICAgIGNhc2UgQkJT X1RZUEVfQ0RST006ICAgICAgICAgICAgICAgIFR5cGUgPSB1IkNEUk9NIjsgICAgICAgIGJyZWFr OworKyAgICBjYXNlIEJCU19UWVBFX1BDTUNJQTogICAgICAgICAgICAgICBUeXBlID0gdSJQQ01D SUEiOyAgICAgICBicmVhazsKKysgICAgY2FzZSBCQlNfVFlQRV9VU0I6ICAgICAgICAgICAgICAg ICAgVHlwZSA9IHUiVXNiIjsgICAgICAgICAgYnJlYWs7CisrICAgIGNhc2UgQkJTX1RZUEVfRU1C RURERURfTkVUV09SSzogICAgIFR5cGUgPSB1Ik5ldCI7ICAgICAgICAgIGJyZWFrOworKyAgICBk ZWZhdWx0OiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUeXBlID0gdSI/IjsgICAgICAgICAg ICBicmVhazsKKyAgICAgfQorIAorLSAgICBDYXRQcmludChTdHIsIEwiQnNzLSVzKCVhKSIsIFR5 cGUsIEJzcy0+U3RyaW5nKTsKKysgICAgQ2F0UHJpbnQoU3RyLCB1IkJzcy0lcyglYSkiLCBUeXBl LCBCc3MtPlN0cmluZyk7CisgfQorIAorIAorQEAgLTEwMjIsNyArMTAyMiw3IEBAIF9EZXZQYXRo RW5kSW5zdGFuY2UgKAorICAgICBJTiBWT0lEICAgICAgICAgICAgICAgICAqRGV2UGF0aCBFRklf VU5VU0VECisgICAgICkKKyB7CistICAgIENhdFByaW50KFN0ciwgTCIsIik7CisrICAgIENhdFBy aW50KFN0ciwgdSIsIik7CisgfQorIAorIC8qKgorQEAgLTEwNDQsMzcgKzEwNDQsMzcgQEAgX0Rl dlBhdGhOb2RlVW5rbm93biAoCisgICAgIHZhbHVlICs9IDQgOworICAgICBzd2l0Y2ggKCBQYXRo LT4gVHlwZSApIHsKKyAgICAgICAgIGNhc2UgSEFSRFdBUkVfREVWSUNFX1BBVEggOiB7IC8qIFVu a25vd24gSGFyZHdhcmUgRGV2aWNlIFBhdGggKi8KKy0gICAgICAgICAgICBDYXRQcmludCggU3Ry ICwgTCJIYXJkd2FyZVBhdGgoJWQiICwgUGF0aC0+IFN1YlR5cGUgKSA7CisrICAgICAgICAgICAg Q2F0UHJpbnQoIFN0ciAsIHUiSGFyZHdhcmVQYXRoKCVkIiAsIFBhdGgtPiBTdWJUeXBlICkgOwor ICAgICAgICAgICAgIGJyZWFrIDsKKyAgICAgICAgIH0KKyAgICAgICAgIGNhc2UgQUNQSV9ERVZJ Q0VfUEFUSCA6IHsgLyogVW5rbm93biBBQ1BJIERldmljZSBQYXRoICovCistICAgICAgICAgICAg Q2F0UHJpbnQoIFN0ciAsIEwiQWNwaVBhdGgoJWQiICwgUGF0aC0+IFN1YlR5cGUgKSA7CisrICAg ICAgICAgICAgQ2F0UHJpbnQoIFN0ciAsIHUiQWNwaVBhdGgoJWQiICwgUGF0aC0+IFN1YlR5cGUg KSA7CisgICAgICAgICAgICAgYnJlYWsgOworICAgICAgICAgfQorICAgICAgICAgY2FzZSBNRVNT QUdJTkdfREVWSUNFX1BBVEggOiB7IC8qIFVua25vd24gTWVzc2FnaW5nIERldmljZSBQYXRoICov CistICAgICAgICAgICAgQ2F0UHJpbnQoIFN0ciAsIEwiTXNnKCVkIiAsIFBhdGgtPiBTdWJUeXBl ICkgOworKyAgICAgICAgICAgIENhdFByaW50KCBTdHIgLCB1Ik1zZyglZCIgLCBQYXRoLT4gU3Vi VHlwZSApIDsKKyAgICAgICAgICAgICBicmVhayA7CisgICAgICAgICB9CisgICAgICAgICBjYXNl IE1FRElBX0RFVklDRV9QQVRIIDogeyAvKiBVbmtub3duIE1lZGlhIERldmljZSBQYXRoICovCist ICAgICAgICAgICAgQ2F0UHJpbnQoIFN0ciAsIEwiTWVkaWFQYXRoKCVkIiAsIFBhdGgtPiBTdWJU eXBlICkgOworKyAgICAgICAgICAgIENhdFByaW50KCBTdHIgLCB1Ik1lZGlhUGF0aCglZCIgLCBQ YXRoLT4gU3ViVHlwZSApIDsKKyAgICAgICAgICAgICBicmVhayA7CisgICAgICAgICB9CisgICAg ICAgICBjYXNlIEJCU19ERVZJQ0VfUEFUSCA6IHsgLyogVW5rbm93biBCSU9TIEJvb3QgU3BlY2lm aWNhdGlvbiBEZXZpY2UgUGF0aCAqLworLSAgICAgICAgICAgIENhdFByaW50KCBTdHIgLCBMIkJi c1BhdGgoJWQiICwgUGF0aC0+IFN1YlR5cGUgKSA7CisrICAgICAgICAgICAgQ2F0UHJpbnQoIFN0 ciAsIHUiQmJzUGF0aCglZCIgLCBQYXRoLT4gU3ViVHlwZSApIDsKKyAgICAgICAgICAgICBicmVh ayA7CisgICAgICAgICB9CisgICAgICAgICBkZWZhdWx0IDogeyAvKiBVbmtub3duIERldmljZSBQ YXRoICovCistICAgICAgICAgICAgQ2F0UHJpbnQoIFN0ciAsIEwiUGF0aCglZCwlZCIgLCBQYXRo LT4gVHlwZSAsIFBhdGgtPiBTdWJUeXBlICkgOworKyAgICAgICAgICAgIENhdFByaW50KCBTdHIg LCB1IlBhdGgoJWQsJWQiICwgUGF0aC0+IFR5cGUgLCBQYXRoLT4gU3ViVHlwZSApIDsKKyAgICAg ICAgICAgICBicmVhayA7CisgICAgICAgICB9CisgICAgIH0KKyAgICAgbGVuZ3RoID0gRGV2aWNl UGF0aE5vZGVMZW5ndGgoIFBhdGggKSA7CisgICAgIGZvciAoIGluZGV4ID0gMCA7IGluZGV4IDwg bGVuZ3RoIDsgaW5kZXggKysgKSB7CistICAgICAgICBpZiAoIGluZGV4ID09IDAgKSBDYXRQcmlu dCggU3RyICwgTCIsMHgiICkgOworLSAgICAgICAgQ2F0UHJpbnQoIFN0ciAsIEwiJTAyeCIgLCAq IHZhbHVlICkgOworKyAgICAgICAgaWYgKCBpbmRleCA9PSAwICkgQ2F0UHJpbnQoIFN0ciAsIHUi LDB4IiApIDsKKysgICAgICAgIENhdFByaW50KCBTdHIgLCB1IiUwMngiICwgKiB2YWx1ZSApIDsK KyAJdmFsdWUgKysgOworICAgICB9CistICAgIENhdFByaW50KCBTdHIgLCBMIikiICkgOworKyAg ICBDYXRQcmludCggU3RyICwgdSIpIiApIDsKKyB9CisgCisgCitAQCAtMTE4MCw3ICsxMTgwLDcg QEAgRGV2aWNlUGF0aFRvU3RyICgKKyAgICAgICAgIC8vCisgCisgICAgICAgICBpZiAoU3RyLmxl biAgJiYgIER1bXBOb2RlICE9IF9EZXZQYXRoRW5kSW5zdGFuY2UpIHsKKy0gICAgICAgICAgICBD YXRQcmludCAoJlN0ciwgTCIvIik7CisrICAgICAgICAgICAgQ2F0UHJpbnQgKCZTdHIsIHUiLyIp OworICAgICAgICAgfQorIAorICAgICAgICAgLy8KK2RpZmYgLS1naXQgYS9saWIvZXJyb3IuYyBi L2xpYi9lcnJvci5jCitpbmRleCAzOGUwM2U4Li4yODM3YmJiIDEwMDY0NAorLS0tIGEvbGliL2Vy cm9yLmMKKysrKyBiL2xpYi9lcnJvci5jCitAQCAtMjMsNDkgKzIzLDQ5IEBAIHR5cGVkZWYgc3Ry dWN0IHsKKyAgICAgV0NIQVIJCSpEZXNjOworIH0gRXJyb3JDb2RlVGFibGVfVHlwZTsKKyBFcnJv ckNvZGVUYWJsZV9UeXBlIEVycm9yQ29kZVRhYmxlW10gPSB7CistCXsgIEVGSV9TVUNDRVNTLCAg ICAgICAgICAgICAgICBMIlN1Y2Nlc3MifSwKKy0JeyAgRUZJX0xPQURfRVJST1IsICAgICAgICAg ICAgIEwiTG9hZCBFcnJvciJ9LAorLQl7ICBFRklfSU5WQUxJRF9QQVJBTUVURVIsICAgICAgTCJJ bnZhbGlkIFBhcmFtZXRlciJ9LAorLQl7ICBFRklfVU5TVVBQT1JURUQsICAgICAgICAgICAgTCJV bnN1cHBvcnRlZCJ9LAorLQl7ICBFRklfQkFEX0JVRkZFUl9TSVpFLCAgICAgICAgTCJCYWQgQnVm ZmVyIFNpemUifSwKKy0JeyAgRUZJX0JVRkZFUl9UT09fU01BTEwsICAgICAgIEwiQnVmZmVyIFRv byBTbWFsbCJ9LAorLQl7ICBFRklfTk9UX1JFQURZLCAgICAgICAgICAgICAgTCJOb3QgUmVhZHki fSwKKy0JeyAgRUZJX0RFVklDRV9FUlJPUiwgICAgICAgICAgIEwiRGV2aWNlIEVycm9yIn0sCist CXsgIEVGSV9XUklURV9QUk9URUNURUQsICAgICAgICBMIldyaXRlIFByb3RlY3RlZCJ9LAorLQl7 ICBFRklfT1VUX09GX1JFU09VUkNFUywgICAgICAgTCJPdXQgb2YgUmVzb3VyY2VzIn0sCistCXsg IEVGSV9WT0xVTUVfQ09SUlVQVEVELCAgICAgICBMIlZvbHVtZSBDb3JydXB0In0sCistCXsgIEVG SV9WT0xVTUVfRlVMTCwgICAgICAgICAgICBMIlZvbHVtZSBGdWxsIn0sCistCXsgIEVGSV9OT19N RURJQSwgICAgICAgICAgICAgICBMIk5vIE1lZGlhIn0sCistCXsgIEVGSV9NRURJQV9DSEFOR0VE LCAgICAgICAgICBMIk1lZGlhIGNoYW5nZWQifSwKKy0JeyAgRUZJX05PVF9GT1VORCwgICAgICAg ICAgICAgIEwiTm90IEZvdW5kIn0sCistCXsgIEVGSV9BQ0NFU1NfREVOSUVELCAgICAgICAgICBM IkFjY2VzcyBEZW5pZWQifSwKKy0JeyAgRUZJX05PX1JFU1BPTlNFLCAgICAgICAgICAgIEwiTm8g UmVzcG9uc2UifSwKKy0JeyAgRUZJX05PX01BUFBJTkcsICAgICAgICAgICAgIEwiTm8gbWFwcGlu ZyJ9LAorLQl7ICBFRklfVElNRU9VVCwgICAgICAgICAgICAgICAgTCJUaW1lIG91dCJ9LAorLQl7 ICBFRklfTk9UX1NUQVJURUQsICAgICAgICAgICAgTCJOb3Qgc3RhcnRlZCJ9LAorLQl7ICBFRklf QUxSRUFEWV9TVEFSVEVELCAgICAgICAgTCJBbHJlYWR5IHN0YXJ0ZWQifSwKKy0JeyAgRUZJX0FC T1JURUQsICAgICAgICAgICAgICAgIEwiQWJvcnRlZCJ9LAorLQl7ICBFRklfSUNNUF9FUlJPUiwg ICAgICAgICAgICAgTCJJQ01QIEVycm9yIn0sCistCXsgIEVGSV9URlRQX0VSUk9SLCAgICAgICAg ICAgICBMIlRGVFAgRXJyb3IifSwKKy0JeyAgRUZJX1BST1RPQ09MX0VSUk9SLCAgICAgICAgIEwi UHJvdG9jb2wgRXJyb3IifSwKKy0JeyAgRUZJX0lOQ09NUEFUSUJMRV9WRVJTSU9OLCAgIEwiSW5j b21wYXRpYmxlIFZlcnNpb24ifSwKKy0JeyAgRUZJX1NFQ1VSSVRZX1ZJT0xBVElPTiwgICAgIEwi U2VjdXJpdHkgUG9saWN5IFZpb2xhdGlvbiJ9LAorLQl7ICBFRklfQ1JDX0VSUk9SLCAgICAgICAg ICAgICAgTCJDUkMgRXJyb3IifSwKKy0JeyAgRUZJX0VORF9PRl9NRURJQSwgICAgICAgICAgIEwi RW5kIG9mIE1lZGlhIn0sCistCXsgIEVGSV9FTkRfT0ZfRklMRSwgICAgICAgICAgICBMIkVuZCBv ZiBGaWxlIn0sCistCXsgIEVGSV9JTlZBTElEX0xBTkdVQUdFLCAgICAgICBMIkludmFsaWQgTGFu Z3VhZ2VzIn0sCistCXsgIEVGSV9DT01QUk9NSVNFRF9EQVRBLCAgICAgICBMIkNvbXByb21pc2Vk IERhdGEifSwKKy0JeyAgRUZJX0lQX0FERFJFU1NfQ09ORkxJQ1QsICAgIEwiSVAgQWRkcmVzcyBD b25mbGljdCJ9LAorLQl7ICBFRklfSFRUUF9FUlJPUiwgICAgICAgICAgICAgTCJIVFRQIEVycm9y In0sCisrCXsgIEVGSV9TVUNDRVNTLCAgICAgICAgICAgICAgICB1IlN1Y2Nlc3MifSwKKysJeyAg RUZJX0xPQURfRVJST1IsICAgICAgICAgICAgIHUiTG9hZCBFcnJvciJ9LAorKwl7ICBFRklfSU5W QUxJRF9QQVJBTUVURVIsICAgICAgdSJJbnZhbGlkIFBhcmFtZXRlciJ9LAorKwl7ICBFRklfVU5T VVBQT1JURUQsICAgICAgICAgICAgdSJVbnN1cHBvcnRlZCJ9LAorKwl7ICBFRklfQkFEX0JVRkZF Ul9TSVpFLCAgICAgICAgdSJCYWQgQnVmZmVyIFNpemUifSwKKysJeyAgRUZJX0JVRkZFUl9UT09f U01BTEwsICAgICAgIHUiQnVmZmVyIFRvbyBTbWFsbCJ9LAorKwl7ICBFRklfTk9UX1JFQURZLCAg ICAgICAgICAgICAgdSJOb3QgUmVhZHkifSwKKysJeyAgRUZJX0RFVklDRV9FUlJPUiwgICAgICAg ICAgIHUiRGV2aWNlIEVycm9yIn0sCisrCXsgIEVGSV9XUklURV9QUk9URUNURUQsICAgICAgICB1 IldyaXRlIFByb3RlY3RlZCJ9LAorKwl7ICBFRklfT1VUX09GX1JFU09VUkNFUywgICAgICAgdSJP dXQgb2YgUmVzb3VyY2VzIn0sCisrCXsgIEVGSV9WT0xVTUVfQ09SUlVQVEVELCAgICAgICB1IlZv bHVtZSBDb3JydXB0In0sCisrCXsgIEVGSV9WT0xVTUVfRlVMTCwgICAgICAgICAgICB1IlZvbHVt ZSBGdWxsIn0sCisrCXsgIEVGSV9OT19NRURJQSwgICAgICAgICAgICAgICB1Ik5vIE1lZGlhIn0s CisrCXsgIEVGSV9NRURJQV9DSEFOR0VELCAgICAgICAgICB1Ik1lZGlhIGNoYW5nZWQifSwKKysJ eyAgRUZJX05PVF9GT1VORCwgICAgICAgICAgICAgIHUiTm90IEZvdW5kIn0sCisrCXsgIEVGSV9B Q0NFU1NfREVOSUVELCAgICAgICAgICB1IkFjY2VzcyBEZW5pZWQifSwKKysJeyAgRUZJX05PX1JF U1BPTlNFLCAgICAgICAgICAgIHUiTm8gUmVzcG9uc2UifSwKKysJeyAgRUZJX05PX01BUFBJTkcs ICAgICAgICAgICAgIHUiTm8gbWFwcGluZyJ9LAorKwl7ICBFRklfVElNRU9VVCwgICAgICAgICAg ICAgICAgdSJUaW1lIG91dCJ9LAorKwl7ICBFRklfTk9UX1NUQVJURUQsICAgICAgICAgICAgdSJO b3Qgc3RhcnRlZCJ9LAorKwl7ICBFRklfQUxSRUFEWV9TVEFSVEVELCAgICAgICAgdSJBbHJlYWR5 IHN0YXJ0ZWQifSwKKysJeyAgRUZJX0FCT1JURUQsICAgICAgICAgICAgICAgIHUiQWJvcnRlZCJ9 LAorKwl7ICBFRklfSUNNUF9FUlJPUiwgICAgICAgICAgICAgdSJJQ01QIEVycm9yIn0sCisrCXsg IEVGSV9URlRQX0VSUk9SLCAgICAgICAgICAgICB1IlRGVFAgRXJyb3IifSwKKysJeyAgRUZJX1BS T1RPQ09MX0VSUk9SLCAgICAgICAgIHUiUHJvdG9jb2wgRXJyb3IifSwKKysJeyAgRUZJX0lOQ09N UEFUSUJMRV9WRVJTSU9OLCAgIHUiSW5jb21wYXRpYmxlIFZlcnNpb24ifSwKKysJeyAgRUZJX1NF Q1VSSVRZX1ZJT0xBVElPTiwgICAgIHUiU2VjdXJpdHkgUG9saWN5IFZpb2xhdGlvbiJ9LAorKwl7 ICBFRklfQ1JDX0VSUk9SLCAgICAgICAgICAgICAgdSJDUkMgRXJyb3IifSwKKysJeyAgRUZJX0VO RF9PRl9NRURJQSwgICAgICAgICAgIHUiRW5kIG9mIE1lZGlhIn0sCisrCXsgIEVGSV9FTkRfT0Zf RklMRSwgICAgICAgICAgICB1IkVuZCBvZiBGaWxlIn0sCisrCXsgIEVGSV9JTlZBTElEX0xBTkdV QUdFLCAgICAgICB1IkludmFsaWQgTGFuZ3VhZ2VzIn0sCisrCXsgIEVGSV9DT01QUk9NSVNFRF9E QVRBLCAgICAgICB1IkNvbXByb21pc2VkIERhdGEifSwKKysJeyAgRUZJX0lQX0FERFJFU1NfQ09O RkxJQ1QsICAgIHUiSVAgQWRkcmVzcyBDb25mbGljdCJ9LAorKwl7ICBFRklfSFRUUF9FUlJPUiwg ICAgICAgICAgICAgdSJIVFRQIEVycm9yIn0sCisgCisgCS8vIHdhcm5pbmdzCistCXsgIEVGSV9X QVJOX1VOS05PV05fR0xZUEgsICAgICBMIldhcm5pbmcgVW5rbm93biBHbHlwaCJ9LAorLQl7ICBF RklfV0FSTl9ERUxFVEVfRkFJTFVSRSwgICAgTCJXYXJuaW5nIERlbGV0ZSBGYWlsdXJlIn0sCist CXsgIEVGSV9XQVJOX1dSSVRFX0ZBSUxVUkUsICAgICBMIldhcm5pbmcgV3JpdGUgRmFpbHVyZSJ9 LAorLQl7ICBFRklfV0FSTl9CVUZGRVJfVE9PX1NNQUxMLCAgTCJXYXJuaW5nIEJ1ZmZlciBUb28g U21hbGwifSwKKy0JeyAgRUZJX1dBUk5fU1RBTEVfREFUQSwgICAgICAgIEwiV2FybmluZyBTdGFs ZSBEYXRhIn0sCistCXsgIEVGSV9XQVJOX0ZJTEVfU1lTVEVNLCAgICAgICBMIldhcm5pbmcgRmls ZSBTeXN0ZW0ifSwKKy0JeyAgRUZJX1dBUk5fUkVTRVRfUkVRVUlSRUQsICAgIEwiV2FybmluZyBS ZXNldCBSZXF1aXJlZCJ9LAorKwl7ICBFRklfV0FSTl9VTktOT1dOX0dMWVBILCAgICAgdSJXYXJu aW5nIFVua25vd24gR2x5cGgifSwKKysJeyAgRUZJX1dBUk5fREVMRVRFX0ZBSUxVUkUsICAgIHUi V2FybmluZyBEZWxldGUgRmFpbHVyZSJ9LAorKwl7ICBFRklfV0FSTl9XUklURV9GQUlMVVJFLCAg ICAgdSJXYXJuaW5nIFdyaXRlIEZhaWx1cmUifSwKKysJeyAgRUZJX1dBUk5fQlVGRkVSX1RPT19T TUFMTCwgIHUiV2FybmluZyBCdWZmZXIgVG9vIFNtYWxsIn0sCisrCXsgIEVGSV9XQVJOX1NUQUxF X0RBVEEsICAgICAgICB1Ildhcm5pbmcgU3RhbGUgRGF0YSJ9LAorKwl7ICBFRklfV0FSTl9GSUxF X1NZU1RFTSwgICAgICAgdSJXYXJuaW5nIEZpbGUgU3lzdGVtIn0sCisrCXsgIEVGSV9XQVJOX1JF U0VUX1JFUVVJUkVELCAgICB1Ildhcm5pbmcgUmVzZXQgUmVxdWlyZWQifSwKKyAJeyAgMCwgTlVM TH0KKyB9IDsKKyAKK0BAIC04NSw1ICs4NSw1IEBAIFN0YXR1c1RvU3RyaW5nICgKKyAgICAgICAg IH0KKyAgICAgfQorIAorLSAgICBVbmljb2RlU1ByaW50IChCdWZmZXIsIDAsIEwiJVgiLCBTdGF0 dXMpOworKyAgICBVbmljb2RlU1ByaW50IChCdWZmZXIsIDAsIHUiJVgiLCBTdGF0dXMpOworIH0K K2RpZmYgLS1naXQgYS9saWIvZ3VpZC5jIGIvbGliL2d1aWQuYworaW5kZXggOWM4Y2M2ZC4uOWY4 MTdhNSAxMDA2NDQKKy0tLSBhL2xpYi9ndWlkLmMKKysrKyBiL2xpYi9ndWlkLmMKK0BAIC00OCw1 NiArNDgsNTYgQEAgc3RhdGljIHN0cnVjdCB7CisgICAgIEVGSV9HVUlEICAgICAgICAqR3VpZDsK KyAgICAgV0NIQVIgICAgICAgICAgICpHdWlkTmFtZTsKKyB9IEtub3duR3VpZHNbXSA9IHsKKy0J eyAgJk51bGxHdWlkLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEwiRzAi IH0sCistCXsgICZnRWZpR2xvYmFsVmFyaWFibGVHdWlkLCAgICAgICAgICAgICAgICAgICAgICAg ICBMIkVmaVZhciIgfSwKKy0KKy0JeyAgJlZhcmlhYmxlU3RvcmVQcm90b2NvbCwgICAgICAgICAg ICAgICAgICAgICAgICAgIEwiVmFyU3RvcmUiIH0sCistCXsgICZnRWZpRGV2aWNlUGF0aFByb3Rv Y29sR3VpZCwgICAgICAgICAgICAgICAgICAgICBMIkRldlBhdGgiIH0sCistCXsgICZnRWZpTG9h ZGVkSW1hZ2VQcm90b2NvbEd1aWQsICAgICAgICAgICAgICAgICAgICBMIkxkSW1nIiB9LAorLQl7 ICAmZ0VmaVNpbXBsZVRleHRJblByb3RvY29sR3VpZCwgICAgICAgICAgICAgICAgICAgTCJUeHRJ biIgfSwKKy0JeyAgJmdFZmlTaW1wbGVUZXh0T3V0UHJvdG9jb2xHdWlkLCAgICAgICAgICAgICAg ICAgIEwiVHh0T3V0IiB9LAorLQl7ICAmZ0VmaUJsb2NrSW9Qcm90b2NvbEd1aWQsICAgICAgICAg ICAgICAgICAgICAgICAgTCJCbGtJbyIgfSwKKy0JeyAgJmdFZmlCbG9ja0lvMlByb3RvY29sR3Vp ZCwgICAgICAgICAgICAgICAgICAgICAgIEwiQmxrSW8yIiB9LAorLQl7ICAmZ0VmaURpc2tJb1By b3RvY29sR3VpZCwgICAgICAgICAgICAgICAgICAgICAgICAgTCJEc2tJbyIgfSwKKy0JeyAgJmdF ZmlEaXNrSW8yUHJvdG9jb2xHdWlkLCAgICAgICAgICAgICAgICAgICAgICAgIEwiRHNrSW8yIiB9 LAorLQl7ICAmZ0VmaVNpbXBsZUZpbGVTeXN0ZW1Qcm90b2NvbEd1aWQsICAgICAgICAgICAgICAg TCJGcyIgfSwKKy0JeyAgJmdFZmlMb2FkRmlsZVByb3RvY29sR3VpZCwgICAgICAgICAgICAgICAg ICAgICAgIEwiTGRGaWxlIiB9LAorLQl7ICAmZ0VmaURldmljZUlvUHJvdG9jb2xHdWlkLCAgICAg ICAgICAgICAgICAgICAgICAgTCJEZXZJbyIgfSwKKy0JeyAgJmdFZmlDb21wb25lbnROYW1lUHJv dG9jb2xHdWlkLCAgICAgICAgICAgICAgICAgIEwiQ05hbWUiIH0sCistCXsgICZnRWZpQ29tcG9u ZW50TmFtZTJQcm90b2NvbEd1aWQsICAgICAgICAgICAgICAgICBMIkNOYW1lMiIgfSwKKy0KKy0J eyAgJmdFZmlGaWxlSW5mb0d1aWQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEwiRmls ZUluZm8iIH0sCistCXsgICZnRWZpRmlsZVN5c3RlbUluZm9HdWlkLCAgICAgICAgICAgICAgICAg ICAgICAgICBMIkZzSW5mbyIgfSwKKy0JeyAgJmdFZmlGaWxlU3lzdGVtVm9sdW1lTGFiZWxJbmZv SWRHdWlkLCAgICAgICAgICAgIEwiRnNWb2xJbmZvIiB9LAorLQorLQl7ICAmZ0VmaVVuaWNvZGVD b2xsYXRpb25Qcm90b2NvbEd1aWQsICAgICAgICAgICAgICAgTCJVbmljb2RlIiB9LAorLQl7ICAm TGVnYWN5Qm9vdFByb3RvY29sLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTCJMZWdhY3lC b290IiB9LAorLQl7ICAmZ0VmaVNlcmlhbElvUHJvdG9jb2xHdWlkLCAgICAgICAgICAgICAgICAg ICAgICAgTCJTZXJJbyIgfSwKKy0JeyAgJlZnYUNsYXNzUHJvdG9jb2wsICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIEwiVmdhQ2xhc3MifSwKKy0JeyAgJmdFZmlTaW1wbGVOZXR3b3JrUHJv dG9jb2xHdWlkLCAgICAgICAgICAgICAgICAgIEwiTmV0IiB9LAorLQl7ICAmZ0VmaU5ldHdvcmtJ bnRlcmZhY2VJZGVudGlmaWVyUHJvdG9jb2xHdWlkLCAgICAgTCJOaWkiIH0sCistCXsgICZnRWZp UHhlQmFzZUNvZGVQcm90b2NvbEd1aWQsICAgICAgICAgICAgICAgICAgICBMIlB4ZSIgfSwKKy0J eyAgJmdFZmlQeGVCYXNlQ29kZUNhbGxiYWNrUHJvdG9jb2xHdWlkLCAgICAgICAgICAgIEwiUHhl Q2IiIH0sCistCistCXsgICZUZXh0T3V0U3BsaXRlclByb3RvY29sLCAgICAgICAgICAgICAgICAg ICAgICAgICBMIlR4dE91dFNwbGl0IiB9LAorLQl7ICAmRXJyb3JPdXRTcGxpdGVyUHJvdG9jb2ws ICAgICAgICAgICAgICAgICAgICAgICAgTCJFcnJPdXRTcGxpdCIgfSwKKy0JeyAgJlRleHRJblNw bGl0ZXJQcm90b2NvbCwgICAgICAgICAgICAgICAgICAgICAgICAgIEwiVHh0SW5TcGxpdCIgfSwK Ky0JeyAgJmdFZmlQY0Fuc2lHdWlkLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEwi UGNBbnNpIiB9LAorLQl7ICAmZ0VmaVZUMTAwR3VpZCwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTCJWdDEwMCIgfSwKKy0JeyAgJmdFZmlWVDEwMFBsdXNHdWlkLCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIEwiVnQxMDBQbHVzIiB9LAorLQl7ICAmZ0VmaVZUVVRGOEd1aWQs ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTCJWdFV0ZjgiIH0sCistCXsgICZVbmtu b3duRGV2aWNlLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMIlVua25vd25EZXYi IH0sCistCistCXsgICZFZmlQYXJ0VHlwZVN5c3RlbVBhcnRpdGlvbkd1aWQsICAgICAgICAgICAg ICAgICBMIkVTUCIgfSwKKy0JeyAgJkVmaVBhcnRUeXBlTGVnYWN5TWJyR3VpZCwgICAgICAgICAg ICAgICAgICAgICAgIEwiR1BUIE1CUiIgfSwKKy0KKy0JeyAgJlNoZWxsSW50ZXJmYWNlUHJvdG9j b2wsICAgICAgICAgICAgICAgICAgICAgICAgIEwiU2hlbGxJbnQiIH0sCistCXsgICZTRW52SWQs ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMIlNFbnYiIH0sCistCXsg ICZTUHJvdElkLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMIlNoZWxs UHJvdElkIiB9LAorLQl7ICAmU01hcElkLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTCJTaGVsbERldlBhdGhNYXAiIH0sCistCXsgICZTQWxpYXNJZCwgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMIlNoZWxsQWxpYXMiIH0sCistCistCXsgIE5V TEwsIEwiIiB9CisrCXsgICZOdWxsR3VpZCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1IkcwIiB9LAorKwl7ICAmZ0VmaUdsb2JhbFZhcmlhYmxlR3VpZCwgICAgICAgICAg ICAgICAgICAgICAgICAgdSJFZmlWYXIiIH0sCisrCisrCXsgICZWYXJpYWJsZVN0b3JlUHJvdG9j b2wsICAgICAgICAgICAgICAgICAgICAgICAgICB1IlZhclN0b3JlIiB9LAorKwl7ICAmZ0VmaURl dmljZVBhdGhQcm90b2NvbEd1aWQsICAgICAgICAgICAgICAgICAgICAgdSJEZXZQYXRoIiB9LAor Kwl7ICAmZ0VmaUxvYWRlZEltYWdlUHJvdG9jb2xHdWlkLCAgICAgICAgICAgICAgICAgICAgdSJM ZEltZyIgfSwKKysJeyAgJmdFZmlTaW1wbGVUZXh0SW5Qcm90b2NvbEd1aWQsICAgICAgICAgICAg ICAgICAgIHUiVHh0SW4iIH0sCisrCXsgICZnRWZpU2ltcGxlVGV4dE91dFByb3RvY29sR3VpZCwg ICAgICAgICAgICAgICAgICB1IlR4dE91dCIgfSwKKysJeyAgJmdFZmlCbG9ja0lvUHJvdG9jb2xH dWlkLCAgICAgICAgICAgICAgICAgICAgICAgIHUiQmxrSW8iIH0sCisrCXsgICZnRWZpQmxvY2tJ bzJQcm90b2NvbEd1aWQsICAgICAgICAgICAgICAgICAgICAgICB1IkJsa0lvMiIgfSwKKysJeyAg JmdFZmlEaXNrSW9Qcm90b2NvbEd1aWQsICAgICAgICAgICAgICAgICAgICAgICAgIHUiRHNrSW8i IH0sCisrCXsgICZnRWZpRGlza0lvMlByb3RvY29sR3VpZCwgICAgICAgICAgICAgICAgICAgICAg ICB1IkRza0lvMiIgfSwKKysJeyAgJmdFZmlTaW1wbGVGaWxlU3lzdGVtUHJvdG9jb2xHdWlkLCAg ICAgICAgICAgICAgIHUiRnMiIH0sCisrCXsgICZnRWZpTG9hZEZpbGVQcm90b2NvbEd1aWQsICAg ICAgICAgICAgICAgICAgICAgICB1IkxkRmlsZSIgfSwKKysJeyAgJmdFZmlEZXZpY2VJb1Byb3Rv Y29sR3VpZCwgICAgICAgICAgICAgICAgICAgICAgIHUiRGV2SW8iIH0sCisrCXsgICZnRWZpQ29t cG9uZW50TmFtZVByb3RvY29sR3VpZCwgICAgICAgICAgICAgICAgICB1IkNOYW1lIiB9LAorKwl7 ICAmZ0VmaUNvbXBvbmVudE5hbWUyUHJvdG9jb2xHdWlkLCAgICAgICAgICAgICAgICAgdSJDTmFt ZTIiIH0sCisrCisrCXsgICZnRWZpRmlsZUluZm9HdWlkLCAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICB1IkZpbGVJbmZvIiB9LAorKwl7ICAmZ0VmaUZpbGVTeXN0ZW1JbmZvR3VpZCwgICAg ICAgICAgICAgICAgICAgICAgICAgdSJGc0luZm8iIH0sCisrCXsgICZnRWZpRmlsZVN5c3RlbVZv bHVtZUxhYmVsSW5mb0lkR3VpZCwgICAgICAgICAgICB1IkZzVm9sSW5mbyIgfSwKKysKKysJeyAg JmdFZmlVbmljb2RlQ29sbGF0aW9uUHJvdG9jb2xHdWlkLCAgICAgICAgICAgICAgIHUiVW5pY29k ZSIgfSwKKysJeyAgJkxlZ2FjeUJvb3RQcm90b2NvbCwgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHUiTGVnYWN5Qm9vdCIgfSwKKysJeyAgJmdFZmlTZXJpYWxJb1Byb3RvY29sR3VpZCwgICAg ICAgICAgICAgICAgICAgICAgIHUiU2VySW8iIH0sCisrCXsgICZWZ2FDbGFzc1Byb3RvY29sLCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1IlZnYUNsYXNzIn0sCisrCXsgICZnRWZpU2lt cGxlTmV0d29ya1Byb3RvY29sR3VpZCwgICAgICAgICAgICAgICAgICB1Ik5ldCIgfSwKKysJeyAg JmdFZmlOZXR3b3JrSW50ZXJmYWNlSWRlbnRpZmllclByb3RvY29sR3VpZCwgICAgIHUiTmlpIiB9 LAorKwl7ICAmZ0VmaVB4ZUJhc2VDb2RlUHJvdG9jb2xHdWlkLCAgICAgICAgICAgICAgICAgICAg dSJQeGUiIH0sCisrCXsgICZnRWZpUHhlQmFzZUNvZGVDYWxsYmFja1Byb3RvY29sR3VpZCwgICAg ICAgICAgICB1IlB4ZUNiIiB9LAorKworKwl7ICAmVGV4dE91dFNwbGl0ZXJQcm90b2NvbCwgICAg ICAgICAgICAgICAgICAgICAgICAgdSJUeHRPdXRTcGxpdCIgfSwKKysJeyAgJkVycm9yT3V0U3Bs aXRlclByb3RvY29sLCAgICAgICAgICAgICAgICAgICAgICAgIHUiRXJyT3V0U3BsaXQiIH0sCisr CXsgICZUZXh0SW5TcGxpdGVyUHJvdG9jb2wsICAgICAgICAgICAgICAgICAgICAgICAgICB1IlR4 dEluU3BsaXQiIH0sCisrCXsgICZnRWZpUGNBbnNpR3VpZCwgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1IlBjQW5zaSIgfSwKKysJeyAgJmdFZmlWVDEwMEd1aWQsICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHUiVnQxMDAiIH0sCisrCXsgICZnRWZpVlQxMDBQbHVzR3Vp ZCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1IlZ0MTAwUGx1cyIgfSwKKysJeyAgJmdF ZmlWVFVURjhHdWlkLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHUiVnRVdGY4IiB9 LAorKwl7ICAmVW5rbm93bkRldmljZSwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dSJVbmtub3duRGV2IiB9LAorKworKwl7ICAmRWZpUGFydFR5cGVTeXN0ZW1QYXJ0aXRpb25HdWlk LCAgICAgICAgICAgICAgICAgdSJFU1AiIH0sCisrCXsgICZFZmlQYXJ0VHlwZUxlZ2FjeU1ickd1 aWQsICAgICAgICAgICAgICAgICAgICAgICB1IkdQVCBNQlIiIH0sCisrCisrCXsgICZTaGVsbElu dGVyZmFjZVByb3RvY29sLCAgICAgICAgICAgICAgICAgICAgICAgICB1IlNoZWxsSW50IiB9LAor Kwl7ICAmU0VudklkLCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdSJT RW52IiB9LAorKwl7ICAmU1Byb3RJZCwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdSJTaGVsbFByb3RJZCIgfSwKKysJeyAgJlNNYXBJZCwgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHUiU2hlbGxEZXZQYXRoTWFwIiB9LAorKwl7ICAmU0FsaWFz SWQsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdSJTaGVsbEFsaWFzIiB9 LAorKworKwl7ICBOVUxMLCB1IiIgfQorIH07CisgCisgLy8KK0BAIC0xNjMsNyArMTYzLDcgQEAg R3VpZFRvU3RyaW5nICgKKyAgICAgLy8gRWxzZSBkdW1wIGl0CisgICAgIC8vCisgCistICAgIFVu aWNvZGVTUHJpbnQgKEJ1ZmZlciwgMCwgTCIlMDh4LSUwNHgtJTA0eC0lMDJ4JTAyeC0lMDJ4JTAy eCUwMnglMDJ4JTAyeCUwMngiLAorKyAgICBVbmljb2RlU1ByaW50IChCdWZmZXIsIDAsIHUiJTA4 eC0lMDR4LSUwNHgtJTAyeCUwMngtJTAyeCUwMnglMDJ4JTAyeCUwMnglMDJ4IiwKKyAgICAgICAg IEd1aWQtPkRhdGExLAorICAgICAgICAgR3VpZC0+RGF0YTIsCisgICAgICAgICBHdWlkLT5EYXRh MywKK2RpZmYgLS1naXQgYS9saWIvaW5pdC5jIGIvbGliL2luaXQuYworaW5kZXggNzI2ZTQ5My4u Y2RmMDZiZiAxMDA2NDQKKy0tLSBhL2xpYi9pbml0LmMKKysrKyBiL2xpYi9pbml0LmMKK0BAIC0x NzIsNyArMTcyLDcgQEAgRUZJRGVidWdWYXJpYWJsZSAoCisgICAgIFVJTlROICAgICAgICAgICBO ZXdFRklEZWJ1ZzsKKyAKKyAgICAgRGF0YVNpemUgPSBzaXplb2YoRUZJRGVidWcpOworLSAgICBT dGF0dXMgPSB1ZWZpX2NhbGxfd3JhcHBlcihSVC0+R2V0VmFyaWFibGUsIDUsIEwiRUZJRGVidWci LCAmRWZpR2xvYmFsVmFyaWFibGUsICZBdHRyaWJ1dGVzLCAmRGF0YVNpemUsICZOZXdFRklEZWJ1 Zyk7CisrICAgIFN0YXR1cyA9IHVlZmlfY2FsbF93cmFwcGVyKFJULT5HZXRWYXJpYWJsZSwgNSwg dSJFRklEZWJ1ZyIsICZFZmlHbG9iYWxWYXJpYWJsZSwgJkF0dHJpYnV0ZXMsICZEYXRhU2l6ZSwg Jk5ld0VGSURlYnVnKTsKKyAgICAgaWYgKCFFRklfRVJST1IoU3RhdHVzKSkgeworICAgICAgICAg RUZJRGVidWcgPSBOZXdFRklEZWJ1ZzsKKyAgICAgfQorZGlmZiAtLWdpdCBhL2xpYi9wcmludC5j IGIvbGliL3ByaW50LmMKK2luZGV4IGE0M2RjOGMuLjc3Y2VhMjUgMTAwNjQ0CistLS0gYS9saWIv cHJpbnQuYworKysrIGIvbGliL3ByaW50LmMKK0BAIC04ODEsNyArODgxLDcgQEAgUmV0dXJuczoK KyAgICAgaWYgKCFVbmljb2RlU3RyKQorICAgICAgICAgcmV0dXJuIDA7CisgCistICAgIFVuaWNv ZGVGbXQgPSBQb29sUHJpbnQoTCIlYSIsIGZtdCk7CisrICAgIFVuaWNvZGVGbXQgPSBQb29sUHJp bnQodSIlYSIsIGZtdCk7CisgICAgIGlmICghVW5pY29kZUZtdCkgeworICAgICAgICAgRnJlZVBv b2woVW5pY29kZVN0cik7CisgICAgICAgICByZXR1cm4gMDsKK0BAIC0xMjYxLDcgKzEyNjEsNyBA QCBSZXR1cm5zOgorICAgICAgICAgICAgIGNhc2UgJ3MnOgorICAgICAgICAgICAgICAgICBJdGVt Lkl0ZW0ucHcgPSB2YV9hcmcocHMtPmFyZ3MsIENIQVIxNiAqKTsKKyAgICAgICAgICAgICAgICAg aWYgKCFJdGVtLkl0ZW0ucHcpIHsKKy0gICAgICAgICAgICAgICAgICAgIEl0ZW0uSXRlbS5wdyA9 IEwiKG51bGwpIjsKKysgICAgICAgICAgICAgICAgICAgIEl0ZW0uSXRlbS5wdyA9IHUiKG51bGwp IjsKKyAgICAgICAgICAgICAgICAgfQorICAgICAgICAgICAgICAgICBicmVhazsKKyAKK0BAIC0x NDc5LDcgKzE0NzksNyBAQCBUaW1lVG9TdHJpbmcgKAorICAgICBZZWFyID0gVGltZS0+WWVhciAl IDEwMDsKKyAKKyAgICAgLy8gYnVnYnVnOiBmb3Igbm93IGp1c3QgcHJpbnQgaXQgYW55IG9sZCB3 YXkKKy0gICAgVW5pY29kZVNQcmludCAoQnVmZmVyLCAwLCBMIiUwMmQvJTAyZC8lMDJkICAlMDJk OiUwMmQlYyIsCisrICAgIFVuaWNvZGVTUHJpbnQgKEJ1ZmZlciwgMCwgdSIlMDJkLyUwMmQvJTAy ZCAgJTAyZDolMDJkJWMiLAorICAgICAgICAgVGltZS0+TW9udGgsCisgICAgICAgICBUaW1lLT5E YXksCisgICAgICAgICBZZWFyLAorQEAgLTE1MzAsNyArMTUzMCw3IEBAIER1bXBIZXggKAorIAor ICAgICAgICAgVmFsW0luZGV4KjNdID0gMDsKKyAgICAgICAgIFN0cltJbmRleF0gPSAwOworLSAg ICAgICAgUHJpbnQgKEwiJSphJVg6ICUtLjQ4YSAqJWEqXG4iLCBJbmRlbnQsICIiLCBPZmZzZXQs IFZhbCwgU3RyKTsKKysgICAgICAgIFByaW50ICh1IiUqYSVYOiAlLS40OGEgKiVhKlxuIiwgSW5k ZW50LCAiIiwgT2Zmc2V0LCBWYWwsIFN0cik7CisgCisgICAgICAgICBEYXRhICs9IFNpemU7Cisg ICAgICAgICBPZmZzZXQgKz0gU2l6ZTsKK0BAIC0xNTQzLDkgKzE1NDMsOSBAQCBEdW1wSGV4ICgK KyAgICAgICAgICAgICAvLyAgYmxvY2sgdXBkYXRlcworICAgICAgICAgICAgIC8vCisgICAgICAg ICAgICAgU2NyZWVuQ291bnQgPSAwOworLSAgICAgICAgICAgIFByaW50IChMIlByZXNzIEVudGVy IHRvIGNvbnRpbnVlIDoiKTsKKy0gICAgICAgICAgICBJbnB1dCAoTCIiLCBSZXR1cm5TdHIsIHNp emVvZihSZXR1cm5TdHIpL3NpemVvZihDSEFSMTYpKTsKKy0gICAgICAgICAgICBQcmludCAoTCJc biIpOworKyAgICAgICAgICAgIFByaW50ICh1IlByZXNzIEVudGVyIHRvIGNvbnRpbnVlIDoiKTsK KysgICAgICAgICAgICBJbnB1dCAodSIiLCBSZXR1cm5TdHIsIHNpemVvZihSZXR1cm5TdHIpL3Np emVvZihDSEFSMTYpKTsKKysgICAgICAgICAgICBQcmludCAodSJcbiIpOworICAgICAgICAgfQor IAorICAgICB9CistLSAKKzIuNDcuMQorCi0tIAoyLjQ3LjEKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmJ1aWxkcm9vdCBtYWlsaW5nIGxpc3QKYnVpbGRy b290QGJ1aWxkcm9vdC5vcmcKaHR0cHM6Ly9saXN0cy5idWlsZHJvb3Qub3JnL21haWxtYW4vbGlz dGluZm8vYnVpbGRyb290Cg==