From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id gCnhH2iNjGhrhgEAWB0awg (envelope-from ) for ; Fri, 01 Aug 2025 05:48:24 -0400 Authentication-Results: simark.ca; dkim=pass (2048-bit key; unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=JFb2I+WK; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id 6F5F21E102; Fri, 1 Aug 2025 05:48:24 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-10.1 required=5.0 tests=ARC_SIGNED,ARC_VALID, BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU, MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED,RCVD_IN_VALIDITY_CERTIFIED, RCVD_IN_VALIDITY_RPBL,RCVD_IN_VALIDITY_SAFE autolearn=ham autolearn_force=no version=4.0.1 Received: from server2.sourceware.org (server2.sourceware.org [8.43.85.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id E14231E089 for ; Fri, 1 Aug 2025 05:48:22 -0400 (EDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 7F445385842F for ; Fri, 1 Aug 2025 09:48:22 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 7F445385842F Authentication-Results: sourceware.org; dkim=pass (2048-bit key, unprotected) header.d=intel.com header.i=@intel.com header.a=rsa-sha256 header.s=Intel header.b=JFb2I+WK Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.14]) by sourceware.org (Postfix) with ESMTPS id 585563858C31 for ; Fri, 1 Aug 2025 09:39:33 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 585563858C31 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=intel.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=intel.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 585563858C31 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=192.198.163.14 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1754041173; cv=none; b=tI6E8IVLpWYwXMtUMTiScX/7J8iFVerNwy7OXmU12KOfvwACT5TREOTDeqqsksRavChKzKTK2CKBrfUebGGYfs19+Pfeb5oRX46v+cfFNEVW1dZpPDfkeBye/kcfCHBPu8+610H0rp4NMzgqlfpmPQICyo1d/UDSnq/wbXALQv4= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1754041173; c=relaxed/simple; bh=pmfz0s0diTzFJ4lu3qc5xLoippLqKgmDCoSsxdmvBEA=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=vWQt8i7ZFMKD00MRfqH3bCrmVu7gMtY+IoVCsFthCRZ0CgjNWrXzCmLM6SEw60nRG6YjZgd5QXTq5soS/P1m+DnxC7IBM5f1/vSb/E61rsD50eWYqxKhU7XvfaKKlkxBCf2XSQaY9uxE5/+BkVVLKwakTdncxJU8EeNtEMshb7E= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 585563858C31 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1754041173; x=1785577173; h=from:to:subject:date:message-id:in-reply-to:references: mime-version:content-transfer-encoding; bh=pmfz0s0diTzFJ4lu3qc5xLoippLqKgmDCoSsxdmvBEA=; b=JFb2I+WKCC7Px8koXmGsCcwsjFw2Y6v+PXPztX+zqaE1Zv9+N4nC4a3j w7rvDl9GX0dymIgqayEVv0D9qBZQwGmPIVS8Go7v4CoiZoXthhkC1oG9X zVj1SuIpzSLETRBUq4imKm8/LR7RX+7JtiBav6QFqdJ72PjlYQLTLVr6c gtcT3/inm7RtrUMivigdJGG/rCtRwR/4YZ6ZlSoSiREeHmM2Xy1260ISA udZrag+1yW9TMySN2vYQHf3afTEA1TzCpan3qy60suTV5W7NLTfqueTor tNxP+TRT7uNrQu4wrtwcCcpFlznPL9IWu+E0USDieOINoPrhfRzLSTRu0 A==; X-CSE-ConnectionGUID: aP4l116xROW9aNpjkheGsg== X-CSE-MsgGUID: okrYT7u+S+yKFIRI6wXetQ== X-IronPort-AV: E=McAfee;i="6800,10657,11508"; a="56465243" X-IronPort-AV: E=Sophos;i="6.17,255,1747724400"; d="scan'208";a="56465243" Received: from fmviesa002.fm.intel.com ([10.60.135.142]) by fmvoesa108.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Aug 2025 02:39:33 -0700 X-CSE-ConnectionGUID: +lEhKob/RY+Yb8hf1VIMHQ== X-CSE-MsgGUID: FP3ggZkKQJ2XlpQM1JY3iA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.17,255,1747724400"; d="scan'208";a="187196789" Received: from gkldtt-dev-004.igk.intel.com (HELO localhost) ([10.123.221.202]) by fmviesa002-auth.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 01 Aug 2025 02:39:32 -0700 From: Tankut Baris Aktemur To: gdb-patches@sourceware.org, Markus Metzger Subject: [PATCH v3 09/44] gdb, gdbserver, ze: in-memory libraries Date: Fri, 1 Aug 2025 11:37:11 +0200 Message-Id: <20250801-upstream-intelgt-mvp-v3-9-59ce0f87075b@intel.com> X-Mailer: git-send-email 2.34.1 In-Reply-To: <20250801-upstream-intelgt-mvp-v3-0-59ce0f87075b@intel.com> References: <20250801-upstream-intelgt-mvp-v3-0-59ce0f87075b@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" X-Mailer: b4 0.14.2 Content-Transfer-Encoding: base64 X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org RnJvbTogTWFya3VzIE1ldHpnZXIgPG1hcmt1cy50Lm1ldHpnZXJAaW50ZWwuY29tPgoKRm9yIElu dGVsIEdQVSBkZXZpY2VzLCBkZXZpY2UgbGlicmFyaWVzIGxpdmUgaW4gdGhlIGhvc3QgbWVtb3J5 IGFuZCBhcmUKbG9hZGVkIG9udG8gdGhlIGRldmljZSBmcm9tIHRoZXJlLgoKQWRkIHN1cHBvcnQg Zm9yIHJlcG9ydGluZyBzdWNoIGluLW1lbW9yeSBzaGFyZWQgbGlicmFyaWVzIHZpYQoKICAgIHFY ZmVyOmxpYnJhcmllczpyZWFkCgphbmQgaGF2ZSBHREIgcmVhZCB0aGVtIGZyb20gdGFyZ2V0IG1l bW9yeS4KClJldmlld2VkLUJ5OiBFbGkgWmFyZXRza2lpIDxlbGl6QGdudS5vcmc+Ci0tLQogZ2Ri L05FV1MgICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKysKIGdkYi9kb2MvZ2RiLnRleGluZm8g ICAgICAgICAgIHwgIDQzICsrKysrKysrKy0tLS0KIGdkYi9mZWF0dXJlcy9saWJyYXJ5LWxpc3Qu ZHRkIHwgICA4ICsrLQogZ2RiL3JlbW90ZS5jICAgICAgICAgICAgICAgICAgfCAgIDMgKwogZ2Ri L3NvbGliLXRhcmdldC5jICAgICAgICAgICAgfCAgODggKysrKysrKysrKysrKysrKysrKysrKysr Ky0tCiBnZGIvc29saWItdGFyZ2V0LmggICAgICAgICAgICB8ICAgMiArCiBnZGIvc29saWIuYyAg ICAgICAgICAgICAgICAgICB8ICAzMSArKysrKysrKystCiBnZGIvc29saWIuaCAgICAgICAgICAg ICAgICAgICB8ICAxMiArKystCiBnZGJzZXJ2ZXIvZGxsLmNjICAgICAgICAgICAgICB8ICA5NSAr KysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQogZ2Ric2VydmVyL2RsbC5oICAgICAgICAgICAg ICAgfCAgMzQgKysrKysrKysrKy0KIGdkYnNlcnZlci9zZXJ2ZXIuY2MgICAgICAgICAgIHwgMTM3 ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKystLQogZ2Ric2VydmVyL3Nl cnZlci5oICAgICAgICAgICAgfCAgIDMgKwogMTIgZmlsZXMgY2hhbmdlZCwgNDE1IGluc2VydGlv bnMoKyksIDQ3IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL2dkYi9ORVdTIGIvZ2RiL05FV1MK aW5kZXggNTczNjU2NWQ0NzU4YTMxYWQ3OTAyOTA1ZDI4MGMyZjY4ZjdhOGIwOC4uMzY5NDRlMWEw YTQwOGFhYjMyMDBiY2QzMmM4ZWU0NjJiYjA2NDI4ZSAxMDA2NDQKLS0tIGEvZ2RiL05FV1MKKysr IGIvZ2RiL05FV1MKQEAgLTE5Niw2ICsxOTYsMTIgQEAgdkZpbGU6bHN0YXQKICAgdkZpbGU6c3Rh dCBidXQgaWYgdGhlIGZpbGVuYW1lIGlzIGEgc3ltYm9saWMgbGluaywgcmV0dXJuCiAgIGluZm9y bWF0aW9uIGFib3V0IHRoZSBsaW5rIGl0c2VsZiwgdGhlIGZpbGUgdGhlIGxpbmsgcmVmZXJzIHRv LgogCitxWGZlcjpsaWJyYXJpZXM6cmVhZCdzIHJlc3BvbnNlCisKKyAgVGhlIHFYZmVyOmxpYnJh cmllczpyZWFkIHF1ZXJ5IHN1cHBvcnRzIHJlcG9ydGluZyBpbi1tZW1vcnkgbGlicmFyaWVzLiAg R0RCCisgIGluZGljYXRlcyBzdXBwb3J0IGJ5IHN1cHBseWluZyBxWGZlcjpsaWJyYXJpZXM6cmVh ZDppbi1tZW1vcnktbGlicmFyeSsgaW4gdGhlCisgIHFTdXBwb3J0ZWQgcGFja2V0LgorCiAqIENo YW5nZWQgcmVtb3RlIHBhY2tldHMKIAogcVhmZXI6dGhyZWFkczpyZWFkCmRpZmYgLS1naXQgYS9n ZGIvZG9jL2dkYi50ZXhpbmZvIGIvZ2RiL2RvYy9nZGIudGV4aW5mbwppbmRleCBhNGM5OGQxOGUy MDE4Mjc2NWY4Y2YwNTQ2NDQ3YzY3NzdjZGQ1ZTJkLi42MjhlZTQ5YjcwM2MyMzg4OGY1MThhZjU4 NDEyODExMWM5NDczZWY5IDEwMDY0NAotLS0gYS9nZGIvZG9jL2dkYi50ZXhpbmZvCisrKyBiL2dk Yi9kb2MvZ2RiLnRleGluZm8KQEAgLTI0ODgyLDYgKzI0ODgyLDkgQEAgZnV0dXJlIGNvbm5lY3Rp b25zIGlzIHNob3duLiAgVGhlIGF2YWlsYWJsZSBzZXR0aW5ncyBhcmU6CiBAdGFiIEBjb2Rle25v IHJlc3VtZWQgdGhyZWFkIGxlZnQgc3RvcCByZXBseX0KIEB0YWIgVHJhY2tpbmcgdGhyZWFkIGxp ZmV0aW1lLgogCitAaXRlbSBAY29kZXtxWGZlcjpsaWJyYXJpZXM6cmVhZDppbi1tZW1vcnktbGli cmFyeX0KK0B0YWIgQGNvZGV7aW4tbWVtb3J5LWxpYnJhcnkgbGlicmFyeSBlbGVtZW50c30KK0B0 YWIgU3VwcG9ydCBmb3IgaW4tbWVtb3J5IGxpYnJhcmllcy4KIEBlbmQgbXVsdGl0YWJsZQogCiBA Y2luZGV4IHBhY2tldCBzaXplLCByZW1vdGUsIGNvbmZpZ3VyaW5nCkBAIC00ODI5NSw5ICs0ODI5 OCwxMCBAQCBxdWVyaWVzIHRoZSB0YXJnZXQncyBvcGVyYXRpbmcgc3lzdGVtIGFuZCByZXBvcnRz IHdoaWNoIGxpYnJhcmllcwogYXJlIGxvYWRlZC4KIAogVGhlIEBzYW1we3FYZmVyOmxpYnJhcmll czpyZWFkfSBwYWNrZXQgcmV0dXJucyBhbiBYTUwgZG9jdW1lbnQgd2hpY2gKLWxpc3RzIGxvYWRl ZCBsaWJyYXJpZXMgYW5kIHRoZWlyIG9mZnNldHMuICBFYWNoIGxpYnJhcnkgaGFzIGFuCi1hc3Nv Y2lhdGVkIG5hbWUgYW5kIG9uZSBvciBtb3JlIHNlZ21lbnQgb3Igc2VjdGlvbiBiYXNlIGFkZHJl c3NlcywKLXdoaWNoIHJlcG9ydCB3aGVyZSB0aGUgbGlicmFyeSB3YXMgbG9hZGVkIGluIG1lbW9y eS4KK2xpc3RzIGxvYWRlZCBsaWJyYXJpZXMgYW5kIHRoZWlyIG9mZnNldHMuICBFYWNoIGxpYnJh cnkgaGFzIGVpdGhlciBhbgorYXNzb2NpYXRlZCBuYW1lIG9yIGJlZ2luIGFuZCBlbmQgYWRkcmVz c2VzIGFuZCBvbmUgb3IgbW9yZSBzZWdtZW50IG9yCitzZWN0aW9uIGJhc2UgYWRkcmVzc2VzLCB3 aGljaCByZXBvcnQgd2hlcmUgdGhlIGxpYnJhcnkgd2FzIGxvYWRlZCBpbgorbWVtb3J5LgogCiBG b3IgdGhlIGNvbW1vbiBjYXNlIG9mIGxpYnJhcmllcyB0aGF0IGFyZSBmdWxseSBsaW5rZWQgYmlu YXJpZXMsIHRoZQogbGlicmFyeSBzaG91bGQgaGF2ZSBhIGxpc3Qgb2Ygc2VnbWVudHMuICBJZiB0 aGUgdGFyZ2V0IHN1cHBvcnRzCkBAIC00ODMwOSw2ICs0ODMxMywxMCBAQCBkZXBlbmQgb24gdGhl IGxpYnJhcnkncyBsaW5rLXRpbWUgYmFzZSBhZGRyZXNzZXMuCiBAdmFsdWV7R0RCTn0gbXVzdCBi ZSBsaW5rZWQgd2l0aCB0aGUgRXhwYXQgbGlicmFyeSB0byBzdXBwb3J0IFhNTAogbGlicmFyeSBs aXN0cy4gIEB4cmVme0V4cGF0fS4KIAorQHZhbHVle0dEQk59IGluZGljYXRlcyBzdXBwb3J0IGZv ciBpbi1tZW1vcnkgbGlicmFyeSBlbGVtZW50cyBieQorc3VwcGx5aW5nIHRoZSBAY29kZXtxWGZl cjpsaWJyYXJpZXM6cmVhZDppbi1tZW1vcnktbGlicmFyeSt9CitAc2FtcHtxU3VwcG9ydGVkfSBm ZWF0dXJlIChAcHhyZWZ7cVN1cHBvcnRlZH0pLgorCiBBIHNpbXBsZSBtZW1vcnkgbWFwLCB3aXRo IG9uZSBsb2FkZWQgbGlicmFyeSByZWxvY2F0ZWQgYnkgYSBzaW5nbGUKIG9mZnNldCwgbG9va3Mg bGlrZSB0aGlzOgogCkBAIC00ODMyMCw2ICs0ODMyOCwxNiBAQCBvZmZzZXQsIGxvb2tzIGxpa2Ug dGhpczoKIDwvbGlicmFyeS1saXN0PgogQGVuZCBzbWFsbGV4YW1wbGUKIAorQSBjb3JyZXNwb25k aW5nIG1lbW9yeSBtYXAgZm9yIGFuIGluLW1lbW9yeSBsaWJyYXJ5IGxvb2tzIGxpa2UgdGhpczoK KworQHNtYWxsZXhhbXBsZQorPGxpYnJhcnktbGlzdD4KKyAgPGluLW1lbW9yeS1saWJyYXJ5IGJl Z2luPSIweGEwMDAwMDAiIGVuZD0iMHhhMDAxMDAwIj4KKyAgICA8c2VnbWVudCBhZGRyZXNzPSIw eDEwMDAwMDAwIi8+CisgIDwvaW4tbWVtb3J5LWxpYnJhcnk+Cis8L2xpYnJhcnktbGlzdD4KK0Bl bmQgc21hbGxleGFtcGxlCisKIEFub3RoZXIgc2ltcGxlIG1lbW9yeSBtYXAsIHdpdGggb25lIGxv YWRlZCBsaWJyYXJ5IHdpdGggdGhyZWUKIGFsbG9jYXRlZCBzZWN0aW9ucyAoLnRleHQsIC5kYXRh LCAuYnNzKSwgbG9va3MgbGlrZSB0aGlzOgogCkBAIC00ODMzNywxNCArNDgzNTUsMTcgQEAgVGhl IGZvcm1hdCBvZiBhIGxpYnJhcnkgbGlzdCBpcyBkZXNjcmliZWQgYnkgdGhpcyBEVEQ6CiAKIEBz bWFsbGV4YW1wbGUKIDwhLS0gbGlicmFyeS1saXN0OiBSb290IGVsZW1lbnQgd2l0aCB2ZXJzaW9u aW5nIC0tPgotPCFFTEVNRU5UIGxpYnJhcnktbGlzdCAgKGxpYnJhcnkpKj4KLTwhQVRUTElTVCBs aWJyYXJ5LWxpc3QgIHZlcnNpb24gQ0RBVEEgICAjRklYRUQgICIxLjAiPgotPCFFTEVNRU5UIGxp YnJhcnkgICAgICAgKHNlZ21lbnQqLCBzZWN0aW9uKik+Ci08IUFUVExJU1QgbGlicmFyeSAgICAg ICBuYW1lICAgIENEQVRBICAgI1JFUVVJUkVEPgotPCFFTEVNRU5UIHNlZ21lbnQgICAgICAgRU1Q VFk+Ci08IUFUVExJU1Qgc2VnbWVudCAgICAgICBhZGRyZXNzIENEQVRBICAgI1JFUVVJUkVEPgot PCFFTEVNRU5UIHNlY3Rpb24gICAgICAgRU1QVFk+Ci08IUFUVExJU1Qgc2VjdGlvbiAgICAgICBh ZGRyZXNzIENEQVRBICAgI1JFUVVJUkVEPgorPCFFTEVNRU5UIGxpYnJhcnktbGlzdCAgICAgICAg ICAgIChsaWJyYXJ5IHwgaW4tbWVtb3J5LWxpYnJhcnkpKj4KKzwhQVRUTElTVCBsaWJyYXJ5LWxp c3QgICAgICAgICAgICB2ZXJzaW9uIENEQVRBICAgI0ZJWEVEICAiMS4xIj4KKzwhRUxFTUVOVCBs aWJyYXJ5ICAgICAgICAgICAgICAgICAoc2VnbWVudCosIHNlY3Rpb24qKT4KKzwhQVRUTElTVCBs aWJyYXJ5ICAgICAgICAgICAgICAgICBuYW1lICAgIENEQVRBICAgI1JFUVVJUkVEPgorPCFFTEVN RU5UIGluLW1lbW9yeS1saWJyYXJ5ICAgICAgIChzZWdtZW50Kiwgc2VjdGlvbiopPgorPCFBVFRM SVNUIGluLW1lbW9yeS1saWJyYXJ5ICAgICAgIGJlZ2luICAgIENEQVRBICAgI1JFUVVJUkVECisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kICAgICAgQ0RBVEEgICAjUkVRVUlS RUQ+Cis8IUVMRU1FTlQgc2VnbWVudCAgICAgICAgICAgICAgICAgRU1QVFk+Cis8IUFUVExJU1Qg c2VnbWVudCAgICAgICAgICAgICAgICAgYWRkcmVzcyBDREFUQSAgICNSRVFVSVJFRD4KKzwhRUxF TUVOVCBzZWN0aW9uICAgICAgICAgICAgICAgICBFTVBUWT4KKzwhQVRUTElTVCBzZWN0aW9uICAg ICAgICAgICAgICAgICBhZGRyZXNzIENEQVRBICAgI1JFUVVJUkVEPgogQGVuZCBzbWFsbGV4YW1w bGUKIAogSW4gYWRkaXRpb24sIHNlZ21lbnRzIGFuZCBzZWN0aW9uIGRlc2NyaXB0b3JzIGNhbm5v dCBiZSBtaXhlZCB3aXRoaW4gYQpkaWZmIC0tZ2l0IGEvZ2RiL2ZlYXR1cmVzL2xpYnJhcnktbGlz dC5kdGQgYi9nZGIvZmVhdHVyZXMvbGlicmFyeS1saXN0LmR0ZAppbmRleCA2Njk0NWNiZTk3YzEz Y2ZhYzVhNGQwMGU5YTc1MmNjZDg0MTkyNTJmLi5iYWEwMTQ4NWFmOTUwYzU4ZTllMjQyMjI5MzY1 NTAxYzA0M2UyZmUxIDEwMDY0NAotLS0gYS9nZGIvZmVhdHVyZXMvbGlicmFyeS1saXN0LmR0ZAor KysgYi9nZGIvZmVhdHVyZXMvbGlicmFyeS1saXN0LmR0ZApAQCAtNSwxMiArNSwxNiBAQAogICAg ICBub3RpY2UgYW5kIHRoaXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAtLT4KIAogPCEtLSBsaWJy YXJ5LWxpc3Q6IFJvb3QgZWxlbWVudCB3aXRoIHZlcnNpb25pbmcgLS0+Ci08IUVMRU1FTlQgbGli cmFyeS1saXN0ICAobGlicmFyeSkqPgotPCFBVFRMSVNUIGxpYnJhcnktbGlzdCAgdmVyc2lvbiBD REFUQSAgICNGSVhFRCAgIjEuMCI+Cis8IUVMRU1FTlQgbGlicmFyeS1saXN0ICAobGlicmFyeSB8 IGluLW1lbW9yeS1saWJyYXJ5KSo+Cis8IUFUVExJU1QgbGlicmFyeS1saXN0ICB2ZXJzaW9uIENE QVRBICAgI0ZJWEVEICAiMS4xIj4KIAogPCFFTEVNRU5UIGxpYnJhcnkgICAgICAgKHNlZ21lbnQq LCBzZWN0aW9uKik+CiA8IUFUVExJU1QgbGlicmFyeSAgICAgICBuYW1lICAgIENEQVRBICAgI1JF UVVJUkVEPgogCis8IUVMRU1FTlQgaW4tbWVtb3J5LWxpYnJhcnkgICAgICAgKHNlZ21lbnQqLCBz ZWN0aW9uKik+Cis8IUFUVExJU1QgaW4tbWVtb3J5LWxpYnJhcnkgICAgICAgYmVnaW4gICAgQ0RB VEEgICAjUkVRVUlSRUQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQgICAg ICBDREFUQSAgICNSRVFVSVJFRD4KKwogPCFFTEVNRU5UIHNlZ21lbnQgICAgICAgRU1QVFk+CiA8 IUFUVExJU1Qgc2VnbWVudCAgICAgICBhZGRyZXNzIENEQVRBICAgI1JFUVVJUkVEPgogCmRpZmYg LS1naXQgYS9nZGIvcmVtb3RlLmMgYi9nZGIvcmVtb3RlLmMKaW5kZXggNjIwOGE5MGY5NGE3MGJm MjViMGUxNmNmYzRkY2NlMWUwMWYyODgyOC4uM2QzYWNkMTlhNTNjMzY2NTA1NWY4ZTI3Y2M4NjY5 OTE2MDgzZjU2MiAxMDA2NDQKLS0tIGEvZ2RiL3JlbW90ZS5jCisrKyBiL2dkYi9yZW1vdGUuYwpA QCAtNTk3NSw2ICs1OTc1LDkgQEAgcmVtb3RlX3RhcmdldDo6cmVtb3RlX3F1ZXJ5X3N1cHBvcnRl ZCAoKQogCSAgIT0gQVVUT19CT09MRUFOX0ZBTFNFKQogCXJlbW90ZV9xdWVyeV9zdXBwb3J0ZWRf YXBwZW5kICgmcSwgIm1lbW9yeS10YWdnaW5nKyIpOwogCisgICAgICByZW1vdGVfcXVlcnlfc3Vw cG9ydGVkX2FwcGVuZAorCSgmcSwgInFYZmVyOmxpYnJhcmllczpyZWFkOmluLW1lbW9yeS1saWJy YXJ5KyIpOworCiAgICAgICAvKiBLZWVwIHRoaXMgb25lIGxhc3QgdG8gd29yayBhcm91bmQgYSBn ZGJzZXJ2ZXIgPD0gNy4xMCBidWcgaW4KIAkgdGhlIHFTdXBwb3J0ZWQ6eG1sUmVnaXN0ZXJzPWkz ODYgaGFuZGxpbmcuICAqLwogICAgICAgaWYgKHJlbW90ZV9zdXBwb3J0X3htbCAhPSBOVUxMCmRp ZmYgLS1naXQgYS9nZGIvc29saWItdGFyZ2V0LmMgYi9nZGIvc29saWItdGFyZ2V0LmMKaW5kZXgg NzcwMDI4ZDk5MDM5NTNjYjc2MWMyOTAxYWFlNWExZjI0N2FhYTM0Yi4uNWQ5YmM4ZjUzMjA0ZWI3 ZTYyOWYzODA3YmNiMTcwYzZhY2UzNTdhYSAxMDA2NDQKLS0tIGEvZ2RiL3NvbGliLXRhcmdldC5j CisrKyBiL2dkYi9zb2xpYi10YXJnZXQuYwpAQCAtMjMsMTYgKzIzLDM2IEBACiAjaW5jbHVkZSAi c3ltZmlsZS5oIgogI2luY2x1ZGUgInRhcmdldC5oIgogI2luY2x1ZGUgInNvbGliLXRhcmdldC5o IgorI2luY2x1ZGUgImdkYnN1cHBvcnQvZmlsZXN0dWZmLmgiCisjaW5jbHVkZSAiZ2RiX2JmZC5o IgogI2luY2x1ZGUgPHZlY3Rvcj4KICNpbmNsdWRlICJpbmZlcmlvci5oIgogCisvKiBUaGUgbG9j YXRpb24gb2YgYSBsb2FkZWQgbGlicmFyeS4gICovCisKK2VudW0gbG1fbG9jYXRpb25fdAorewor ICBsbV9vbl9kaXNrLAorICBsbV9pbl9tZW1vcnkKK307CisKIC8qIFByaXZhdGUgZGF0YSBmb3Ig ZWFjaCBsb2FkZWQgbGlicmFyeS4gICovCiBzdHJ1Y3QgbG1faW5mb190YXJnZXQgZmluYWwgOiBw dWJsaWMgbG1faW5mbwogeworICAvKiBUaGUgbGlicmFyeSdzIGxvY2F0aW9uLiAgKi8KKyAgbG1f bG9jYXRpb25fdCBsb2NhdGlvbjsKKwogICAvKiBUaGUgbGlicmFyeSdzIG5hbWUuICBUaGUgbmFt ZSBpcyBub3JtYWxseSBrZXB0IGluIHRoZSBzdHJ1Y3QKLSAgICAgc29saWI7IGl0IGlzIG9ubHkg aGVyZSBkdXJpbmcgWE1MIHBhcnNpbmcuICAqLworICAgICBzb2xpYjsgaXQgaXMgb25seSBoZXJl IGR1cmluZyBYTUwgcGFyc2luZy4KKworICAgICBUaGlzIGlzIG9ubHkgdmFsaWQgaWYgbG9jYXRp b24gPT0gbG1fb25fZGlzay4gICovCiAgIHN0ZDo6c3RyaW5nIG5hbWU7CiAKKyAgLyogVGhlIGxp YnJhcnkncyBiZWdpbiBhbmQgZW5kIG1lbW9yeSBhZGRyZXNzZXMuCisKKyAgICAgVGhpcyBpcyBv bmx5IHZhbGlkIGlmIGxvY2F0aW9uID09IGxtX2luX21lbW9yeS4gICovCisgIENPUkVfQUREUiBi ZWdpbiA9IDB1bGwsIGVuZCA9IDB1bGw7CisKICAgLyogVGhlIHRhcmdldCBjYW4gZWl0aGVyIHNw ZWNpZnkgc2VnbWVudCBiYXNlcyBvciBzZWN0aW9uIGJhc2VzLCBub3QKICAgICAgYm90aC4gICov CiAKQEAgLTEyMiwxMiArMTQyLDMyIEBAIGxpYnJhcnlfbGlzdF9zdGFydF9saWJyYXJ5IChzdHJ1 Y3QgZ2RiX3htbF9wYXJzZXIgKnBhcnNlciwKIHsKICAgYXV0byAqbGlzdCA9IChzdGQ6OnZlY3Rv cjxsbV9pbmZvX3RhcmdldF91cD4gKikgdXNlcl9kYXRhOwogICBsbV9pbmZvX3RhcmdldCAqaXRl bSA9IG5ldyBsbV9pbmZvX3RhcmdldDsKKyAgaXRlbS0+bG9jYXRpb24gPSBsbV9vbl9kaXNrOwog ICBpdGVtLT5uYW1lCiAgICAgPSAoY29uc3QgY2hhciAqKSB4bWxfZmluZF9hdHRyaWJ1dGUgKGF0 dHJpYnV0ZXMsICJuYW1lIiktPnZhbHVlLmdldCAoKTsKIAogICBsaXN0LT5lbXBsYWNlX2JhY2sg KGl0ZW0pOwogfQogCisvKiBIYW5kbGUgdGhlIHN0YXJ0IG9mIGEgPGluLW1lbW9yeS1saWJyYXJ5 PiBlbGVtZW50LiAgKi8KKworc3RhdGljIHZvaWQKK2luX21lbW9yeV9saWJyYXJ5X2xpc3Rfc3Rh cnRfbGlicmFyeSAoc3RydWN0IGdkYl94bWxfcGFyc2VyICpwYXJzZXIsCisJCQkJICAgICAgY29u c3Qgc3RydWN0IGdkYl94bWxfZWxlbWVudCAqZWxlbWVudCwKKwkJCQkgICAgICB2b2lkICp1c2Vy X2RhdGEsCisJCQkJICAgICAgc3RkOjp2ZWN0b3I8Z2RiX3htbF92YWx1ZT4gJmF0dHJpYnV0ZXMp Cit7CisgIGF1dG8gKmxpc3QgPSAoc3RkOjp2ZWN0b3I8bG1faW5mb190YXJnZXRfdXA+ICopIHVz ZXJfZGF0YTsKKyAgbG1faW5mb190YXJnZXQgKml0ZW0gPSBuZXcgbG1faW5mb190YXJnZXQ7Cisg IGl0ZW0tPmxvY2F0aW9uID0gbG1faW5fbWVtb3J5OworICBpdGVtLT5iZWdpbiA9IChDT1JFX0FE RFIpICooVUxPTkdFU1QgKikKKyAgICB4bWxfZmluZF9hdHRyaWJ1dGUgKGF0dHJpYnV0ZXMsICJi ZWdpbiIpLT52YWx1ZS5nZXQgKCk7CisgIGl0ZW0tPmVuZCA9IChDT1JFX0FERFIpICooVUxPTkdF U1QgKikKKyAgICB4bWxfZmluZF9hdHRyaWJ1dGUgKGF0dHJpYnV0ZXMsICJlbmQiKS0+dmFsdWUu Z2V0ICgpOworCisgIGxpc3QtPmVtcGxhY2VfYmFjayAoaXRlbSk7Cit9CisKIHN0YXRpYyB2b2lk CiBsaWJyYXJ5X2xpc3RfZW5kX2xpYnJhcnkgKHN0cnVjdCBnZGJfeG1sX3BhcnNlciAqcGFyc2Vy LAogCQkJICBjb25zdCBzdHJ1Y3QgZ2RiX3htbF9lbGVtZW50ICplbGVtZW50LApAQCAtMTU2LDcg KzE5Niw3IEBAIGxpYnJhcnlfbGlzdF9zdGFydF9saXN0IChzdHJ1Y3QgZ2RiX3htbF9wYXJzZXIg KnBhcnNlciwKICAgICB7CiAgICAgICBjb25zdCBjaGFyICpzdHJpbmcgPSAoY29uc3QgY2hhciAq KSB2ZXJzaW9uLT52YWx1ZS5nZXQgKCk7CiAKLSAgICAgIGlmIChzdHJjbXAgKHN0cmluZywgIjEu MCIpICE9IDApCisgICAgICBpZiAoKHN0cmNtcCAoc3RyaW5nLCAiMS4wIikgIT0gMCkgJiYgKHN0 cmNtcCAoc3RyaW5nLCAiMS4xIikgIT0gMCkpCiAJZ2RiX3htbF9lcnJvciAocGFyc2VyLAogCQkg ICAgICAgXygiTGlicmFyeSBsaXN0IGhhcyB1bnN1cHBvcnRlZCB2ZXJzaW9uIFwiJXNcIiIpLAog CQkgICAgICAgc3RyaW5nKTsKQEAgLTE5MSwxMCArMjMxLDE5IEBAIHN0YXRpYyBjb25zdCBzdHJ1 Y3QgZ2RiX3htbF9hdHRyaWJ1dGUgbGlicmFyeV9hdHRyaWJ1dGVzW10gPSB7CiAgIHsgTlVMTCwg R0RCX1hNTF9BRl9OT05FLCBOVUxMLCBOVUxMIH0KIH07CiAKK3N0YXRpYyBjb25zdCBzdHJ1Y3Qg Z2RiX3htbF9hdHRyaWJ1dGUgaW5fbWVtb3J5X2xpYnJhcnlfYXR0cmlidXRlc1tdID0geworICB7 ICJiZWdpbiIsIEdEQl9YTUxfQUZfTk9ORSwgZ2RiX3htbF9wYXJzZV9hdHRyX3Vsb25nZXN0LCBO VUxMIH0sCisgIHsgImVuZCIsIEdEQl9YTUxfQUZfTk9ORSwgZ2RiX3htbF9wYXJzZV9hdHRyX3Vs b25nZXN0LCBOVUxMIH0sCisgIHsgTlVMTCwgR0RCX1hNTF9BRl9OT05FLCBOVUxMLCBOVUxMIH0K K307CisKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZ2RiX3htbF9lbGVtZW50IGxpYnJhcnlfbGlzdF9j aGlsZHJlbltdID0gewogICB7ICJsaWJyYXJ5IiwgbGlicmFyeV9hdHRyaWJ1dGVzLCBsaWJyYXJ5 X2NoaWxkcmVuLAogICAgIEdEQl9YTUxfRUZfUkVQRUFUQUJMRSB8IEdEQl9YTUxfRUZfT1BUSU9O QUwsCiAgICAgbGlicmFyeV9saXN0X3N0YXJ0X2xpYnJhcnksIGxpYnJhcnlfbGlzdF9lbmRfbGli cmFyeSB9LAorICB7ICJpbi1tZW1vcnktbGlicmFyeSIsIGluX21lbW9yeV9saWJyYXJ5X2F0dHJp YnV0ZXMsIGxpYnJhcnlfY2hpbGRyZW4sCisgICAgR0RCX1hNTF9FRl9SRVBFQVRBQkxFIHwgR0RC X1hNTF9FRl9PUFRJT05BTCwKKyAgICBpbl9tZW1vcnlfbGlicmFyeV9saXN0X3N0YXJ0X2xpYnJh cnksIGxpYnJhcnlfbGlzdF9lbmRfbGlicmFyeSB9LAogICB7IE5VTEwsIE5VTEwsIE5VTEwsIEdE Ql9YTUxfRUZfTk9ORSwgTlVMTCwgTlVMTCB9CiB9OwogCkBAIC0yNDYsMTAgKzI5NSwzMSBAQCB0 YXJnZXRfc29saWJfb3BzOjpjdXJyZW50X3NvcyAoKSBjb25zdAogICBmb3IgKGxtX2luZm9fdGFy Z2V0X3VwICZpbmZvIDogbGlicmFyeV9saXN0KQogICAgIHsKICAgICAgIGF1dG8gJm5ld19zb2xp YiA9IHNvcy5lbXBsYWNlX2JhY2sgKCp0aGlzKTsKKyAgICAgIHN3aXRjaCAoaW5mby0+bG9jYXRp b24pCisJeworCWNhc2UgbG1fb25fZGlzazoKKwkgIC8qIFdlIGRvbid0IG5lZWQgYSBjb3B5IG9m IHRoZSBuYW1lIGluIElORk8gYW55bW9yZS4gICovCisJICBuZXdfc29saWIubmFtZSA9IHN0ZDo6 bW92ZSAoaW5mby0+bmFtZSk7CisJICBuZXdfc29saWIub3JpZ2luYWxfbmFtZSA9IG5ld19zb2xp Yi5uYW1lOworCSAgYnJlYWs7CisKKwljYXNlIGxtX2luX21lbW9yeToKKwkgIGlmIChpbmZvLT5l bmQgPD0gaW5mby0+YmVnaW4pCisJICAgIHdhcm5pbmcgKF8oImJhZCBpbi1tZW1vcnktbGlicmFy eSBsb2NhdGlvbjogYmVnaW49JXMsIGVuZD0lcyIpLAorCQkgICAgIGNvcmVfYWRkcl90b19zdHJp bmdfbnogKGluZm8tPmJlZ2luKSwKKwkJICAgICBjb3JlX2FkZHJfdG9fc3RyaW5nX256IChpbmZv LT5lbmQpKTsKKwkgIGVsc2UKKwkgICAgeworCSAgICAgIG5ld19zb2xpYi5vcmlnaW5hbF9uYW1l ID0gc3RkOjpzdHJpbmcgKCJpbi1tZW1vcnktIikKKwkJKyBjb3JlX2FkZHJfdG9fc3RyaW5nX256 IChpbmZvLT5iZWdpbikKKwkJKyAiLSIKKwkJKyBjb3JlX2FkZHJfdG9fc3RyaW5nX256IChpbmZv LT5lbmQpOwogCi0gICAgICAvKiBXZSBkb24ndCBuZWVkIGEgY29weSBvZiB0aGUgbmFtZSBpbiBJ TkZPIGFueW1vcmUuICAqLwotICAgICAgbmV3X3NvbGliLm5hbWUgPSBzdGQ6Om1vdmUgKGluZm8t Pm5hbWUpOwotICAgICAgbmV3X3NvbGliLm9yaWdpbmFsX25hbWUgPSBuZXdfc29saWIubmFtZTsK KwkgICAgICBuZXdfc29saWIuYmVnaW4gPSBpbmZvLT5iZWdpbjsKKwkgICAgICBuZXdfc29saWIu ZW5kID0gaW5mby0+ZW5kOworCSAgICB9CisJICBicmVhazsKKwl9CiAgICAgICBuZXdfc29saWIu bG1faW5mbyA9IHN0ZDo6bW92ZSAoaW5mbyk7CiAgICAgfQogCkBAIC0zODYsNiArNDU2LDE0IEBA IHRhcmdldF9zb2xpYl9vcHM6OmluX2R5bnN5bV9yZXNvbHZlX2NvZGUgKENPUkVfQUREUiBwYykg Y29uc3QKICAgcmV0dXJuIGluX3BsdF9zZWN0aW9uIChwYyk7CiB9CiAKK2dkYl9iZmRfcmVmX3B0 cgordGFyZ2V0X3NvbGliX29wczo6YmZkX29wZW5fZnJvbV90YXJnZXRfbWVtb3J5IChDT1JFX0FE RFIgYWRkciwKKwkJCQkJICAgICAgIENPUkVfQUREUiBzaXplLAorCQkJCQkgICAgICAgY29uc3Qg Y2hhciAqdGFyZ2V0KSBjb25zdAoreworICByZXR1cm4gZ2RiX2JmZF9vcGVuX2Zyb21fdGFyZ2V0 X21lbW9yeSAoYWRkciwgc2l6ZSwgdGFyZ2V0KTsKK30KKwogLyogU2VlIHNvbGliLXRhcmdldC5o LiAgKi8KIAogc29saWJfb3BzX3VwCmRpZmYgLS1naXQgYS9nZGIvc29saWItdGFyZ2V0LmggYi9n ZGIvc29saWItdGFyZ2V0LmgKaW5kZXggODlhZTJiYzliOWUxNTViOWNjMzFiNzQxMGE4MTRlMjM0 MGFiODY3YS4uZWNkNjc2NThjNzFjYjg1NGYwMTJjNDMxMWJhNzliYjQwYTJjYTFiMSAxMDA2NDQK LS0tIGEvZ2RiL3NvbGliLXRhcmdldC5oCisrKyBiL2dkYi9zb2xpYi10YXJnZXQuaApAQCAtMjks NiArMjksOCBAQCBzdHJ1Y3QgdGFyZ2V0X3NvbGliX29wcyA6IHNvbGliX29wcwogICB2b2lkIHJl bG9jYXRlX3NlY3Rpb25fYWRkcmVzc2VzIChzb2xpYiAmc28sIHRhcmdldF9zZWN0aW9uICopIGNv bnN0IG92ZXJyaWRlOwogICBvd25pbmdfaW50cnVzaXZlX2xpc3Q8c29saWI+IGN1cnJlbnRfc29z ICgpIGNvbnN0IG92ZXJyaWRlOwogICBib29sIGluX2R5bnN5bV9yZXNvbHZlX2NvZGUgKENPUkVf QUREUiBwYykgY29uc3Qgb3ZlcnJpZGU7CisgIGdkYl9iZmRfcmVmX3B0ciBiZmRfb3Blbl9mcm9t X3RhcmdldF9tZW1vcnkKKyAgICAoQ09SRV9BRERSIGFkZHIsIENPUkVfQUREUiBzaXplLCBjb25z dCBjaGFyICp0YXJnZXQpIGNvbnN0IG92ZXJyaWRlOwogfTsKIAogLyogUmV0dXJuIGEgbmV3IHNv bGliX29wcyBmb3Igc3lzdGVtcyBmZXRjaGluZyBzb2xpYnMgZnJvbSB0aGUgdGFyZ2V0LiAgKi8K ZGlmZiAtLWdpdCBhL2dkYi9zb2xpYi5jIGIvZ2RiL3NvbGliLmMKaW5kZXggM2VjMjAzMmYwMTI4 OTAxMWJhMWJjM2E2NTFiMDc2MzY0Zjk0MzhmMS4uZjJiMjZkNGU5ZjliNTZiMGQxNzRlNTIyMzY2 OWJkMzkyYzMxMTRkZSAxMDA2NDQKLS0tIGEvZ2RiL3NvbGliLmMKKysrIGIvZ2RiL3NvbGliLmMK QEAgLTQ3Myw2ICs0NzMsMTQgQEAgc29saWJfb3BzOjpiZmRfb3BlbiAoY29uc3QgY2hhciAqcGF0 aG5hbWUpIGNvbnN0CiAgIHJldHVybiBzb2xpYl9iZmRfb3BlbiAocGF0aG5hbWUpOwogfQogCitn ZGJfYmZkX3JlZl9wdHIKK3NvbGliX29wczo6YmZkX29wZW5fZnJvbV90YXJnZXRfbWVtb3J5IChD T1JFX0FERFIgYWRkciwKKwkJCQkJQ09SRV9BRERSIHNpemUsCisJCQkJCWNvbnN0IGNoYXIgKnRh cmdldCkgY29uc3QKK3sKKyAgZXJyb3IgKF8oIlRhcmdldCBkb2VzIG5vdCBzdXBwb3J0IGluLW1l bW9yeSBzaGFyZWQgbGlicmFyaWVzLiIpKTsKK30KKwogLyogR2l2ZW4gYSBwb2ludGVyIHRvIG9u ZSBvZiB0aGUgc2hhcmVkIG9iamVjdHMgaW4gb3VyIGxpc3Qgb2YgbWFwcGVkCiAgICBvYmplY3Rz LCB1c2UgdGhlIHJlY29yZGVkIG5hbWUgdG8gb3BlbiBhIGJmZCBkZXNjcmlwdG9yIGZvciB0aGUK ICAgIG9iamVjdCwgYnVpbGQgYSBzZWN0aW9uIHRhYmxlLCByZWxvY2F0ZSBhbGwgdGhlIHNlY3Rp b24gYWRkcmVzc2VzCkBAIC00ODgsOCArNDk2LDI1IEBAIHNvbGliX29wczo6YmZkX29wZW4gKGNv bnN0IGNoYXIgKnBhdGhuYW1lKSBjb25zdAogc3RhdGljIGludAogc29saWJfbWFwX3NlY3Rpb25z IChzb2xpYiAmc28pCiB7Ci0gIGdkYjo6dW5pcXVlX3htYWxsb2NfcHRyPGNoYXI+IGZpbGVuYW1l ICh0aWxkZV9leHBhbmQgKHNvLm5hbWUuY19zdHIgKCkpKTsKLSAgZ2RiX2JmZF9yZWZfcHRyIGFi ZmQgKHNvLm9wcyAoKS5iZmRfb3BlbiAoZmlsZW5hbWUuZ2V0ICgpKSk7CisgIGdkYl9iZmRfcmVm X3B0ciBhYmZkOworICBpZiAoIXNvLm5hbWUuZW1wdHkgKCkpCisgICAgeworICAgICAgZ2RiOjp1 bmlxdWVfeG1hbGxvY19wdHI8Y2hhcj4gZmlsZW5hbWUgKHRpbGRlX2V4cGFuZCAoc28ubmFtZS5j X3N0ciAoKSkpOworICAgICAgYWJmZCA9IHNvLm9wcyAoKS5iZmRfb3BlbiAoZmlsZW5hbWUuZ2V0 ICgpKTsKKyAgICB9CisgIGVsc2UgaWYgKHNvLmJlZ2luICE9IDAgJiYgc28uZW5kICE9IDApCisg ICAgeworICAgICAgaWYgKHNvLmVuZCA8PSBzby5iZWdpbikKKwllcnJvciAoXygiQmFkIGFkZHJl c3MgcmFuZ2UgWyVzOyAlcykgZm9yIGluLW1lbW9yeSBzaGFyZWQgbGlicmFyeS4iKSwKKwkgICAg ICAgY29yZV9hZGRyX3RvX3N0cmluZ19ueiAoc28uYmVnaW4pLAorCSAgICAgICBjb3JlX2FkZHJf dG9fc3RyaW5nX256IChzby5lbmQpKTsKKworICAgICAgYWJmZCA9IHNvLm9wcyAoKS5iZmRfb3Bl bl9mcm9tX3RhcmdldF9tZW1vcnkgKHNvLmJlZ2luLAorCQkJCQkJICAgIHNvLmVuZCAtIHNvLmJl Z2luLAorCQkJCQkJICAgIGdudXRhcmdldCk7CisgICAgfQorICBlbHNlCisgICAgaW50ZXJuYWxf ZXJyb3IgKF8oImJhZCBzb19saXN0IikpOwogCiAgIC8qIElmIHdlIGhhdmUgYSBjb3JlIHRhcmdl dCB0aGVuIHRoZSBjb3JlIHRhcmdldCBtaWdodCBoYXZlIHNvbWUgaGVscGZ1bAogICAgICBpbmZv cm1hdGlvbiAoaS5lLiBidWlsZC1pZHMpIGFib3V0IHRoZSBzaGFyZWQgbGlicmFyaWVzIHdlIGFy ZSB0cnlpbmcKQEAgLTUzNiw3ICs1NjEsNyBAQCBzb2xpYl9tYXBfc2VjdGlvbnMgKHNvbGliICZz bykKIAkgICAgewogCSAgICAgIHdhcm5pbmcgKF8oIkJ1aWxkLWlkIG9mICVwcyBkb2VzIG5vdCBt YXRjaCBjb3JlIGZpbGUuIiksCiAJCSAgICAgICBzdHlsZWRfc3RyaW5nIChmaWxlX25hbWVfc3R5 bGUuc3R5bGUgKCksCi0JCQkJICAgICAgZmlsZW5hbWUuZ2V0ICgpKSk7CisJCQkJICAgICAgc28u bmFtZS5jX3N0ciAoKSkpOwogCSAgICAgIGFiZmQgPSBudWxscHRyOwogCSAgICB9CiAJfQpkaWZm IC0tZ2l0IGEvZ2RiL3NvbGliLmggYi9nZGIvc29saWIuaAppbmRleCBiOTQ2NWUxMDNiZGQ4OWM4 M2JhNTc1ZDc1NTFjZTg0ZTVlMWM3YTM2Li4zMjEwMWQyN2NjNWFjYWUyMjkzOWViNmE5ZjcyMjM5 YWFmNDgxMmE0IDEwMDY0NAotLS0gYS9nZGIvc29saWIuaAorKysgYi9nZGIvc29saWIuaApAQCAt OTQsOSArOTQsMTQgQEAgc3RydWN0IHNvbGliIDogaW50cnVzaXZlX2xpc3Rfbm9kZTxzb2xpYj4K ICAgICAgbWFwIHdlJ3ZlIGFscmVhZHkgbG9hZGVkLiAgKi8KICAgc3RkOjpzdHJpbmcgb3JpZ2lu YWxfbmFtZTsKIAotICAvKiBTaGFyZWQgb2JqZWN0IGZpbGUgbmFtZSwgZXhwYW5kZWQgdG8gc29t ZXRoaW5nIEdEQiBjYW4gb3Blbi4gICovCisgIC8qIFNoYXJlZCBvYmplY3QgZmlsZSBuYW1lLCBl eHBhbmRlZCB0byBzb21ldGhpbmcgR0RCIGNhbiBvcGVuLgorICAgICBUaGlzIGlzIGFuIGVtcHR5 IHN0cmluZyBmb3IgaW4tbWVtb3J5IHNoYXJlZCBvYmplY3RzLiAgKi8KICAgc3RkOjpzdHJpbmcg bmFtZTsKIAorICAvKiBUaGUgYWRkcmVzcyByYW5nZSBvZiBhbiBpbi1tZW1vcnkgc2hhcmVkIG9i amVjdC4gIEJvdGggQkVHSU4gYW5kIEVORAorICAgICBhcmUgemVybyBmb3Igb24tZGlzayBzaGFy ZWQgb2JqZWN0cy4gICovCisgIENPUkVfQUREUiBiZWdpbiA9IDAsIGVuZCA9IDA7CisKICAgLyog VGhlIGZvbGxvd2luZyBmaWVsZHMgb2YgdGhlIHN0cnVjdHVyZSBhcmUgYnVpbHQgZnJvbQogICAg ICBpbmZvcm1hdGlvbiBnYXRoZXJlZCBmcm9tIHRoZSBzaGFyZWQgb2JqZWN0IGZpbGUgaXRzZWxm LCBhbmQKICAgICAgYXJlIHNldCB3aGVuIHdlIGFjdHVhbGx5IGFkZCBpdCB0byBvdXIgc3ltYm9s IHRhYmxlcy4KQEAgLTI1OSw2ICsyNjQsMTEgQEAgc3RydWN0IHNvbGliX29wcwogICAgICBUaGUg c3VwcG9ydHNfbmFtZXNwYWNlcyBtZXRob2QgbXVzdCByZXR1cm4gdHJ1ZSBmb3IgdGhpcyB0byBi ZSBjYWxsZWQuICAqLwogICB2aXJ0dWFsIHN0ZDo6dmVjdG9yPGNvbnN0IHNvbGliICo+IGdldF9z b2xpYnNfaW5fbnMgKGludCBucykgY29uc3QKICAgeyBnZGJfYXNzZXJ0X25vdF9yZWFjaGVkICgi bmFtZXNwYWNlcyBub3Qgc3VwcG9ydGVkIik7IH0KKworICAvKiBPcGVuIGFuIGluLW1lbW9yeSBz aGFyZWQgbGlicmFyeSBhdCBBRERSIG9mIGF0IG1vc3QgU0laRSBieXRlcy4KKyAgICAgVGhlIFRB UkdFVCBzdHJpbmcgaXMgdXNlZCB0byBpZGVudGlmeSB0aGUgdGFyZ2V0LiAgKi8KKyAgdmlydHVh bCBnZGJfYmZkX3JlZl9wdHIgYmZkX29wZW5fZnJvbV90YXJnZXRfbWVtb3J5CisgICAgKENPUkVf QUREUiBhZGRyLCBDT1JFX0FERFIgc2l6ZSwgY29uc3QgY2hhciAqdGFyZ2V0KSBjb25zdDsKIH07 CiAKIC8qIEEgdW5pcXVlIHBvaW50ZXIgdG8gYW4gc29saWJfb3BzLiAgKi8KZGlmZiAtLWdpdCBh L2dkYnNlcnZlci9kbGwuY2MgYi9nZGJzZXJ2ZXIvZGxsLmNjCmluZGV4IDVjZThiMmI0NWQ1MDhi YWI2OWRkNmM1N2NjZTZkNGY2MDkxMWQwNjUuLmM4ZTdjMDMwMTJhNmZkMTY1MGE3ZjdhNDgyN2Y3 OWIzNzM1ZDYyNGIgMTAwNjQ0Ci0tLSBhL2dkYnNlcnZlci9kbGwuY2MKKysrIGIvZ2Ric2VydmVy L2RsbC5jYwpAQCAtNDAsMzQgKzQwLDQ0IEBAIGxvYWRlZF9kbGwgKHByb2Nlc3NfaW5mbyAqcHJv YywgY29uc3QgY2hhciAqbmFtZSwgQ09SRV9BRERSIGJhc2VfYWRkcikKICAgcHJvYy0+ZGxsc19j aGFuZ2VkID0gdHJ1ZTsKIH0KIAotLyogUmVjb3JkIHRoYXQgdGhlIERMTCB3aXRoIE5BTUUgYW5k IEJBU0VfQUREUiBoYXMgYmVlbiB1bmxvYWRlZAotICAgZnJvbSB0aGUgY3VycmVudCBwcm9jZXNz LiAgKi8KKy8qIFJlY29yZCBhIG5ld2x5IGxvYWRlZCBpbi1tZW1vcnkgRExMIGF0IEJBU0VfQURE UiBmb3IgUFJPQy4gICovCiAKIHZvaWQKLXVubG9hZGVkX2RsbCAoY29uc3QgY2hhciAqbmFtZSwg Q09SRV9BRERSIGJhc2VfYWRkcikKK2xvYWRlZF9kbGwgKHByb2Nlc3NfaW5mbyAqcHJvYywgQ09S RV9BRERSIGJlZ2luLCBDT1JFX0FERFIgZW5kLAorCSAgICBDT1JFX0FERFIgYmFzZV9hZGRyKQog ewotICB1bmxvYWRlZF9kbGwgKGN1cnJlbnRfcHJvY2VzcyAoKSwgbmFtZSwgYmFzZV9hZGRyKTsK KyAgZ2RiX2Fzc2VydCAocHJvYyAhPSBudWxscHRyKTsKKworICAvKiBXZSBkbyBub3Qgc3VwcG9y dCBkdXBsaWNhdGUgaW4tbWVtb3J5IGxpYnJhcmllcy4gICovCisgIHN0ZDo6bGlzdDxkbGxfaW5m bz4gJmRsbHMgPSBwcm9jLT5hbGxfZGxsczsKKyAgc3RkOjpsaXN0PGRsbF9pbmZvPjo6aXRlcmF0 b3IgaXQKKyAgICA9IHN0ZDo6ZmluZF9pZiAoZGxscy5iZWdpbiAoKSwgZGxscy5lbmQgKCksCisJ CSAgICBbYmVnaW4sIGVuZF0gKGNvbnN0IGRsbF9pbmZvICZkbGwpCisJeworCSAgcmV0dXJuICgo ZGxsLmJlZ2luID09IGJlZ2luKSAmJiAoZGxsLmVuZCA9PSBlbmQpKTsKKwl9KTsKKworICBpZiAo aXQgIT0gZGxscy5lbmQgKCkpCisgICAgZXJyb3IgKF8oIkR1cGxpY2F0ZSBpbi1tZW1vcnkgbGli cmFyeTsgYmVnaW46ICVzLCBlbmQ6ICVzLCBiYXNlOiAlcy4iKSwKKwkgICBwYWRkcmVzcyAoYmVn aW4pLCBwYWRkcmVzcyAoZW5kKSwgcGFkZHJlc3MgKGJhc2VfYWRkcikpOworCisgIHByb2MtPmFs bF9kbGxzLmVtcGxhY2VfYmFjayAoYmVnaW4sIGVuZCwgYmFzZV9hZGRyKTsKKyAgcHJvYy0+ZGxs c19jaGFuZ2VkID0gdHJ1ZTsKIH0KIAogLyogUmVjb3JkIHRoYXQgdGhlIERMTCB3aXRoIE5BTUUg YW5kIEJBU0VfQUREUiBoYXMgYmVlbiB1bmxvYWRlZAotICAgZnJvbSBQUk9DLiAgKi8KKyAgIGZy b20gdGhlIGN1cnJlbnQgcHJvY2Vzcy4gICovCiAKIHZvaWQKLXVubG9hZGVkX2RsbCAocHJvY2Vz c19pbmZvICpwcm9jLCBjb25zdCBjaGFyICpuYW1lLCBDT1JFX0FERFIgYmFzZV9hZGRyKQordW5s b2FkZWRfZGxsIChjb25zdCBjaGFyICpuYW1lLCBDT1JFX0FERFIgYmFzZV9hZGRyKQogewotICBn ZGJfYXNzZXJ0IChwcm9jICE9IG51bGxwdHIpOwotICBhdXRvIHByZWQgPSBbJl0gKGNvbnN0IGRs bF9pbmZvICZkbGwpCi0gICAgewotICAgICAgaWYgKGJhc2VfYWRkciAhPSBVTlNQRUNJRklFRF9D T1JFX0FERFIKLQkgICYmIGJhc2VfYWRkciA9PSBkbGwuYmFzZV9hZGRyKQotCXJldHVybiB0cnVl OwotCi0gICAgICBpZiAobmFtZSAhPSBOVUxMICYmIGRsbC5uYW1lID09IG5hbWUpCi0JcmV0dXJu IHRydWU7Ci0KLSAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9OworICB1bmxvYWRlZF9kbGwgKGN1 cnJlbnRfcHJvY2VzcyAoKSwgbmFtZSwgYmFzZV9hZGRyKTsKK30KIAorc3RhdGljIHZvaWQKK3Vu bG9hZF9kbGxfaWYgKHByb2Nlc3NfaW5mbyAqcHJvYywKKwkgICAgICAgc3RkOjpmdW5jdGlvbjxi b29sIChjb25zdCBkbGxfaW5mbyAmKT4gcHJlZCkKK3sKICAgYXV0byBpdGVyID0gc3RkOjpmaW5k X2lmIChwcm9jLT5hbGxfZGxscy5iZWdpbiAoKSwgcHJvYy0+YWxsX2RsbHMuZW5kICgpLAogCQkJ ICAgIHByZWQpOwogCkBAIC04OSwzICs5OSw1MiBAQCB1bmxvYWRlZF9kbGwgKHByb2Nlc3NfaW5m byAqcHJvYywgY29uc3QgY2hhciAqbmFtZSwgQ09SRV9BRERSIGJhc2VfYWRkcikKICAgICAgIHBy b2MtPmRsbHNfY2hhbmdlZCA9IHRydWU7CiAgICAgfQogfQorCisvKiBSZWNvcmQgdGhhdCB0aGUg RExMIHdpdGggTkFNRSBhbmQgQkFTRV9BRERSIGhhcyBiZWVuIHVubG9hZGVkCisgICBmcm9tIFBS T0MuICAqLworCit2b2lkCit1bmxvYWRlZF9kbGwgKHByb2Nlc3NfaW5mbyAqcHJvYywgY29uc3Qg Y2hhciAqbmFtZSwgQ09SRV9BRERSIGJhc2VfYWRkcikKK3sKKyAgdW5sb2FkX2RsbF9pZiAocHJv YywgWyZdIChjb25zdCBkbGxfaW5mbyAmZGxsKQorICAgIHsKKyAgICAgIGlmIChkbGwubG9jYXRp b24gIT0gZGxsX2luZm86Om9uX2Rpc2spCisJcmV0dXJuIGZhbHNlOworCisgICAgICBpZiAoYmFz ZV9hZGRyICE9IFVOU1BFQ0lGSUVEX0NPUkVfQUREUgorCSAgJiYgYmFzZV9hZGRyID09IGRsbC5i YXNlX2FkZHIpCisJcmV0dXJuIHRydWU7CisKKyAgICAgIGlmIChuYW1lICE9IE5VTEwgJiYgZGxs Lm5hbWUgPT0gbmFtZSkKKwlyZXR1cm4gdHJ1ZTsKKworICAgICAgcmV0dXJuIGZhbHNlOworICAg IH0pOworfQorCisvKiBSZWNvcmQgdGhhdCB0aGUgaW4tbWVtb3J5IERMTCBmcm9tIEJFR0lOIHRv IEVORCBsb2FkZWQgYXQgQkFTRV9BRERSIGhhcyBiZWVuCisgICB1bmxvYWRlZC4gICovCisKK3Zv aWQKK3VubG9hZGVkX2RsbCAocHJvY2Vzc19pbmZvICpwcm9jLCBDT1JFX0FERFIgYmVnaW4sIENP UkVfQUREUiBlbmQsCisJICAgICAgQ09SRV9BRERSIGJhc2VfYWRkcikKK3sKKyAgdW5sb2FkX2Rs bF9pZiAocHJvYywgWyZdIChjb25zdCBkbGxfaW5mbyAmZGxsKQorICAgIHsKKyAgICAgIGlmIChk bGwubG9jYXRpb24gIT0gZGxsX2luZm86OmluX21lbW9yeSkKKwlyZXR1cm4gZmFsc2U7CisKKyAg ICAgIGlmIChiYXNlX2FkZHIgIT0gVU5TUEVDSUZJRURfQ09SRV9BRERSCisJICAmJiBiYXNlX2Fk ZHIgPT0gZGxsLmJhc2VfYWRkcikKKwlyZXR1cm4gdHJ1ZTsKKworICAgICAgLyogV2UgZG8gbm90 IHJlcXVpcmUgdGhlIGVuZCBhZGRyZXNzIHRvIGJlIHNwZWNpZmllZCAtIHdlIGRvbid0CisJIHN1 cHBvcnQgcGFydGlhbGx5IHVubG9hZGVkIGxpYnJhcmllcywgYW55d2F5LiAgKi8KKyAgICAgIGlm ICgoYmVnaW4gPT0gZGxsLmJlZ2luKQorCSAgJiYgKGVuZCA9PSBVTlNQRUNJRklFRF9DT1JFX0FE RFIKKwkgICAgICB8fCBlbmQgPT0gZGxsLmVuZCkpCisJcmV0dXJuIHRydWU7CisKKyAgICAgIHJl dHVybiBmYWxzZTsKKyAgICB9KTsKK30KZGlmZiAtLWdpdCBhL2dkYnNlcnZlci9kbGwuaCBiL2dk YnNlcnZlci9kbGwuaAppbmRleCBiNWQ5YzM5NTdmMGFiNjg1MTA4M2FlZTM0MmY5MGI3NGI0ZGQx MGQ5Li5hM2FmODZkZDYxMjJmZjhiOGM0N2EzMzU4OTBmNTRhOTA2ZjZkNWJlIDEwMDY0NAotLS0g YS9nZGJzZXJ2ZXIvZGxsLmgKKysrIGIvZ2Ric2VydmVyL2RsbC5oCkBAIC0xOCwyNSArMTgsNTcg QEAKICNpZm5kZWYgR0RCU0VSVkVSX0RMTF9ICiAjZGVmaW5lIEdEQlNFUlZFUl9ETExfSAogCisj aW5jbHVkZSAiZ2Ric3VwcG9ydC9nZGJfdW5saW5rZXIuaCIKICNpbmNsdWRlIDxsaXN0PgogCiBz dHJ1Y3QgcHJvY2Vzc19pbmZvOwogCiBzdHJ1Y3QgZGxsX2luZm8KIHsKKyAgZW51bSBsb2NhdGlv bl90CisgIHsKKyAgICBvbl9kaXNrLAorICAgIGluX21lbW9yeQorICB9OworCiAgIGRsbF9pbmZv IChjb25zdCBzdGQ6OnN0cmluZyAmbmFtZV8sIENPUkVfQUREUiBiYXNlX2FkZHJfKQotICA6IG5h bWUgKG5hbWVfKSwgYmFzZV9hZGRyIChiYXNlX2FkZHJfKQorICAgIDogbG9jYXRpb24gKG9uX2Rp c2spLCBuYW1lIChuYW1lXyksIGJhc2VfYWRkciAoYmFzZV9hZGRyXykKKyAge30KKworICBkbGxf aW5mbyAoQ09SRV9BRERSIGJlZ2luXywgQ09SRV9BRERSIGVuZF8sIENPUkVfQUREUiBiYXNlX2Fk ZHJfKQorICAgIDogbG9jYXRpb24gKGluX21lbW9yeSksIGJlZ2luIChiZWdpbl8pLCBlbmQgKGVu ZF8pLCBiYXNlX2FkZHIgKGJhc2VfYWRkcl8pCiAgIHt9CiAKKyAgLyogV2hlcmUgdGhlIGxpYnJh cnkgYml0cyBhcmUgc3RvcmVkLiAgKi8KKyAgbG9jYXRpb25fdCBsb2NhdGlvbjsKKworICAvKiBU aGUgbmFtZSBvZiBhIGZpbGUgb24gZGlzayBjb250YWluaW5nIHRoZSBsaWJyYXJ5LgorCisgICAg IFRoaXMgaXMgb25seSB2YWxpZCBpZiBMT0NBVElPTiA9PSBPTl9ESVNLLiAgKi8KICAgc3RkOjpz dHJpbmcgbmFtZTsKKworICAvKiBBbiBvcHRpb25hbCB1bmxpbmtlciBpbiBjYXNlIHRoaXMgaXMg YSB0ZW1wb3JhcnkgZmlsZS4gICovCisgIHN0ZDo6b3B0aW9uYWw8Z2RiOjp1bmxpbmtlcj4gdW5s aW5rZXI7CisKKyAgLyogVGhlIGFkZHJlc3MgcmFuZ2UgaW4gbWVtb3J5IGNvbnRhaW5pbmcgdGhl IGxpYnJhcnkuCisKKyAgICAgVGhpcyBpcyBvbmx5IHZhbGlkIGlmIExPQ0FUSU9OID09IElOX01F TU9SWS4gICovCisgIENPUkVfQUREUiBiZWdpbjsKKyAgQ09SRV9BRERSIGVuZDsKKworICAvKiBU aGUgYmFzZSBhZGRyZXNzIGF0IHdoaWNoIHRoZSBsaWJyYXJ5IGlzIGxvYWRlZC4gICovCiAgIENP UkVfQUREUiBiYXNlX2FkZHI7CiB9OwogCiBleHRlcm4gdm9pZCBsb2FkZWRfZGxsIChjb25zdCBj aGFyICpuYW1lLCBDT1JFX0FERFIgYmFzZV9hZGRyKTsKIGV4dGVybiB2b2lkIGxvYWRlZF9kbGwg KHByb2Nlc3NfaW5mbyAqcHJvYywgY29uc3QgY2hhciAqbmFtZSwKIAkJCUNPUkVfQUREUiBiYXNl X2FkZHIpOworZXh0ZXJuIHZvaWQgbG9hZGVkX2RsbCAocHJvY2Vzc19pbmZvICpwcm9jLCBDT1JF X0FERFIgYmVnaW4sIENPUkVfQUREUiBlbmQsCisJCQlDT1JFX0FERFIgYmFzZV9hZGRyKTsKIGV4 dGVybiB2b2lkIHVubG9hZGVkX2RsbCAoY29uc3QgY2hhciAqbmFtZSwgQ09SRV9BRERSIGJhc2Vf YWRkcik7CiBleHRlcm4gdm9pZCB1bmxvYWRlZF9kbGwgKHByb2Nlc3NfaW5mbyAqcHJvYywgY29u c3QgY2hhciAqbmFtZSwKIAkJCSAgQ09SRV9BRERSIGJhc2VfYWRkcik7CitleHRlcm4gdm9pZCB1 bmxvYWRlZF9kbGwgKHByb2Nlc3NfaW5mbyAqcHJvYywgQ09SRV9BRERSIGJlZ2luLCBDT1JFX0FE RFIgZW5kLAorCQkJICBDT1JFX0FERFIgYmFzZV9hZGRyKTsKIAogI2VuZGlmIC8qIEdEQlNFUlZF Ul9ETExfSCAqLwpkaWZmIC0tZ2l0IGEvZ2Ric2VydmVyL3NlcnZlci5jYyBiL2dkYnNlcnZlci9z ZXJ2ZXIuY2MKaW5kZXggY2U4NGM3Zjc1ZDk4OTk5MTE3NzUyNDY1ZmQxMjkyMjZiMGY0NDNlOS4u YWE2OTVmMmYyZjgwNjg2ZWE2ZGMyYWUzYWUxYmZkN2MwODEwNjdiZiAxMDA2NDQKLS0tIGEvZ2Ri c2VydmVyL3NlcnZlci5jYworKysgYi9nZGJzZXJ2ZXIvc2VydmVyLmNjCkBAIC0xODg1LDYgKzE4 ODUsMTI4IEBAIGhhbmRsZV9xeGZlcl9mZWF0dXJlcyAoY29uc3QgY2hhciAqYW5uZXgsCiAgIHJl dHVybiBsZW47CiB9CiAKKy8qIFR1cm4gYW4gaW4tbWVtb3J5IGxpYnJhcnkgRExMIGludG8gYW4g b24tZGlzayBsaWJyYXJ5IHVzaW5nIGEgdGVtcG9yYXJ5CisgICBmaWxlLiAgKi8KKworc3RhdGlj IHZvaWQKK2RsbF90b190bXBmaWxlIChkbGxfaW5mbyAmZGxsKQoreworICBnZGJfYXNzZXJ0IChk bGwubG9jYXRpb24gPT0gZGxsX2luZm86OmluX21lbW9yeSk7CisKKyAgaWYgKGRsbC5lbmQgPD0g ZGxsLmJlZ2luKQorICAgIGVycm9yIChfKCJiYWQgaW4tbWVtb3J5LWxpYnJhcnkgbG9jYXRpb246 IGJlZ2luPSVzLCBlbmQ9JXMiKSwKKwkgICBjb3JlX2FkZHJfdG9fc3RyaW5nX256IChkbGwuYmVn aW4pLAorCSAgIGNvcmVfYWRkcl90b19zdHJpbmdfbnogKGRsbC5lbmQpKTsKKworICBzdGQ6OnZl Y3Rvcjx1bnNpZ25lZCBjaGFyPiBidWZmZXIgKGRsbC5lbmQgLSBkbGwuYmVnaW4pOworICBpbnQg ZXJyY29kZSA9IGdkYl9yZWFkX21lbW9yeSAoZGxsLmJlZ2luLCBidWZmZXIuZGF0YSAoKSwgYnVm ZmVyLnNpemUgKCkpOworICBpZiAoZXJyY29kZSAhPSBidWZmZXIuc2l6ZSAoKSkKKyAgICBlcnJv ciAoXygiZmFpbGVkIHRvIHJlYWQgaW4tbWVtb3J5IGxpYnJhcnkgYXQgJXMuLiVzIiksCisJICAg Y29yZV9hZGRyX3RvX3N0cmluZ19ueiAoZGxsLmJlZ2luKSwKKwkgICBjb3JlX2FkZHJfdG9fc3Ry aW5nX256IChkbGwuZW5kKSk7CisKKyAgc3RkOjpzdHJpbmcgbmFtZSA9IGdldF9zdGFuZGFyZF90 ZW1wX2RpciAoKQorICAgICsgIi9nZGItaW4tbWVtb3J5LSIKKyAgICArIGNvcmVfYWRkcl90b19z dHJpbmdfbnogKGRsbC5iZWdpbikKKyAgICArICItIgorICAgICsgY29yZV9hZGRyX3RvX3N0cmlu Z19ueiAoZGxsLmVuZCk7CisKKyAgZ2RiOjpjaGFyX3ZlY3RvciB0bXBuYW1lID0gbWFrZV90ZW1w X2ZpbGVuYW1lIChuYW1lKTsKKworICBzY29wZWRfZmQgZmQgeyBnZGJfbWtvc3RlbXBfY2xvZXhl YyAodG1wbmFtZS5kYXRhICgpLCBPX0JJTkFSWSkgfTsKKyAgaWYgKGZkLmdldCAoKSA9PSAtMSkK KyAgICBlcnJvciAoXygiZmFpbGVkIHRvIGNyZWF0ZSB0ZW1wb3JhcnkgZmlsZSAlczogJXMiKSwg dG1wbmFtZS5kYXRhICgpLAorCSAgIHNhZmVfc3RyZXJyb3IgKGVycm5vKSk7CisKKyAgZ2RiOjp1 bmxpbmtlciB1bmxpbmtlciAodG1wbmFtZS5kYXRhICgpKTsKKyAgc2l6ZV90IHNpemUgPSBidWZm ZXIuc2l6ZSAoKTsKKyAgdW5zaWduZWQgY2hhciAqaGVhZCA9IGJ1ZmZlci5kYXRhICgpOworICBk bworICAgIHsKKyAgICAgIHNzaXplX3Qgd3JpdHRlbiA9IHdyaXRlIChmZC5nZXQgKCksIGhlYWQs IHNpemUpOworICAgICAgaWYgKHdyaXR0ZW4gPD0gMCkKKwllcnJvciAoXygiZmFpbGVkIHRvIHdy aXRlIGludG8gJXMiKSwgbmFtZS5jX3N0ciAoKSk7CisKKyAgICAgIGhlYWQgKz0gd3JpdHRlbjsK KyAgICAgIHNpemUgLT0gd3JpdHRlbjsKKyAgICB9CisgIHdoaWxlIChzaXplID4gMCk7CisKKyAg ZGxsLmxvY2F0aW9uID0gZGxsX2luZm86Om9uX2Rpc2s7CisgIGRsbC5uYW1lID0gdG1wbmFtZS5k YXRhICgpOworICBkbGwudW5saW5rZXIuZW1wbGFjZSAoZGxsLm5hbWUuY19zdHIgKCkpOworCisg IHVubGlua2VyLmtlZXAgKCk7Cit9CisKKy8qIFByaW50IGEgcVhmZXI6bGlicmFyaWVzOnJlYWQg ZW50cnkgZm9yIERMTC4gICovCisKK3N0YXRpYyBzdGQ6OnN0cmluZworcHJpbnRfcXhmZXJfbGli cmFyaWVzX2VudHJ5IChkbGxfaW5mbyAmZGxsKQoreworICBzd2l0Y2ggKGRsbC5sb2NhdGlvbikK KyAgICB7CisgICAgY2FzZSBkbGxfaW5mbzo6aW5fbWVtb3J5OgorICAgICAgaWYgKGdldF9jbGll bnRfc3RhdGUgKCkuaW5fbWVtb3J5X2xpYnJhcnlfc3VwcG9ydGVkKQorCXJldHVybiBzdHJpbmdf cHJpbnRmCisJICAoIiAgPGluLW1lbW9yeS1saWJyYXJ5IGJlZ2luPVwiMHglc1wiIGVuZD1cIjB4 JXNcIj4iCisJICAgIjxzZWdtZW50IGFkZHJlc3M9XCIweCVzXCIvPjwvaW4tbWVtb3J5LWxpYnJh cnk+XG4iLAorCSAgIHBhZGRyZXNzIChkbGwuYmVnaW4pLCBwYWRkcmVzcyAoZGxsLmVuZCksCisJ ICAgcGFkZHJlc3MgKGRsbC5iYXNlX2FkZHIpKTsKKworICAgICAgLyogR0RCIGRvZXMgbm90IHN1 cHBvcnQgaW4tbWVtb3J5LWxpYnJhcnkuICBGYWxsIGJhY2sgdG8gc3RvcmluZyBpdCBpbiBhCisJ IHRlbXBvcmFyeSBmaWxlIGFuZCByZXBvcnQgdGhhdCBmaWxlIHRvIEdEQi4gICovCisgICAgICB0 cnkKKwl7CisJICBkbGxfdG9fdG1wZmlsZSAoZGxsKTsKKwl9CisgICAgICBjYXRjaCAoY29uc3Qg Z2RiX2V4Y2VwdGlvbiAmZXgpCisJeworCSAgd2FybmluZyAoIiVzIiwgZXgud2hhdCAoKSk7CisJ ICByZXR1cm4gc3RkOjpzdHJpbmcgKCk7CisJfQorCisgICAgICBbW2ZhbGx0aHJvdWdoXV07Cisg ICAgY2FzZSBkbGxfaW5mbzo6b25fZGlzazoKKyAgICAgIHJldHVybiBzdHJpbmdfcHJpbnRmCisJ KCIgIDxsaWJyYXJ5IG5hbWU9XCIlc1wiPjxzZWdtZW50IGFkZHJlc3M9XCIweCVzXCIvPjwvbGli cmFyeT5cbiIsCisJIGRsbC5uYW1lLmNfc3RyICgpLCBwYWRkcmVzcyAoZGxsLmJhc2VfYWRkcikp OworICAgIH0KKworICBnZGJfYXNzZXJ0X25vdF9yZWFjaGVkICgidW5rbm93biBkbGwgbG9jYXRp b246ICV4IiwgZGxsLmxvY2F0aW9uKTsKK30KKworLyogRGV0ZXJtaW5lIHRoZSBsaWJyYXJ5LWxp c3QgdmVyc2lvbiByZXF1aXJlZCBmb3IgY29tbXVuaWNhdGluZyB0aGUgc2hhcmVkCisgICBsaWJy YXJpZXMuICAqLworCitzdGF0aWMgc3RkOjpzdHJpbmcKK2xpYnJhcnlfbGlzdF92ZXJzaW9uX25l ZWRlZCAoY29uc3Qgc3RkOjpsaXN0PGRsbF9pbmZvPiAmZGxscykKK3sKKyAgY29uc3QgY2xpZW50 X3N0YXRlICZjcyA9IGdldF9jbGllbnRfc3RhdGUgKCk7CisgIGludCBtYWpvciA9IDEsIG1pbm9y ID0gMDsKKworICBmb3IgKGNvbnN0IGRsbF9pbmZvICZkbGwgOiBkbGxzKQorICAgIHsKKyAgICAg IHN3aXRjaCAoZGxsLmxvY2F0aW9uKQorCXsKKwljYXNlIGRsbF9pbmZvOjpvbl9kaXNrOgorCSAg bWFqb3IgPSBzdGQ6Om1heCAobWFqb3IsIDEpOworCSAgbWlub3IgPSBzdGQ6Om1heCAobWlub3Is IDApOworCSAgYnJlYWs7CisKKwljYXNlIGRsbF9pbmZvOjppbl9tZW1vcnk6CisJICBpZiAoY3Mu aW5fbWVtb3J5X2xpYnJhcnlfc3VwcG9ydGVkKQorCSAgICB7CisJICAgICAgbWFqb3IgPSBzdGQ6 Om1heCAobWFqb3IsIDEpOworCSAgICAgIG1pbm9yID0gc3RkOjptYXggKG1pbm9yLCAxKTsKKwkg ICAgfQorCSAgYnJlYWs7CisJfQorICAgIH0KKworICByZXR1cm4gc3RkOjp0b19zdHJpbmcgKG1h am9yKSArIHN0ZDo6c3RyaW5nICgiLiIpICsgc3RkOjp0b19zdHJpbmcgKG1pbm9yKTsKK30KKwog LyogSGFuZGxlIHFYZmVyOmxpYnJhcmllczpyZWFkLiAgKi8KIAogc3RhdGljIGludApAQCAtMTg5 OCwxMyArMjAyMCwxMyBAQCBoYW5kbGVfcXhmZXJfbGlicmFyaWVzIChjb25zdCBjaGFyICphbm5l eCwKICAgaWYgKGFubmV4WzBdICE9ICdcMCcgfHwgY3VycmVudF90aHJlYWQgPT0gTlVMTCkKICAg ICByZXR1cm4gLTE7CiAKLSAgc3RkOjpzdHJpbmcgZG9jdW1lbnQgPSAiPGxpYnJhcnktbGlzdCB2 ZXJzaW9uPVwiMS4wXCI+XG4iOwotCiAgIHByb2Nlc3NfaW5mbyAqcHJvYyA9IGN1cnJlbnRfcHJv Y2VzcyAoKTsKLSAgZm9yIChjb25zdCBkbGxfaW5mbyAmZGxsIDogcHJvYy0+YWxsX2RsbHMpCi0g ICAgZG9jdW1lbnQgKz0gc3RyaW5nX3ByaW50ZgotICAgICAgKCIgIDxsaWJyYXJ5IG5hbWU9XCIl c1wiPjxzZWdtZW50IGFkZHJlc3M9XCIweCVzXCIvPjwvbGlicmFyeT5cbiIsCi0gICAgICAgZGxs Lm5hbWUuY19zdHIgKCksIHBhZGRyZXNzIChkbGwuYmFzZV9hZGRyKSk7CisgIHN0ZDo6c3RyaW5n IGRvY3VtZW50ID0gIjxsaWJyYXJ5LWxpc3QgdmVyc2lvbj1cIiIKKyAgICArIGxpYnJhcnlfbGlz dF92ZXJzaW9uX25lZWRlZCAocHJvYy0+YWxsX2RsbHMpCisgICAgKyAiXCI+XG4iOworCisgIGZv ciAoZGxsX2luZm8gJmRsbCA6IHByb2MtPmFsbF9kbGxzKQorICAgIGRvY3VtZW50ICs9IHByaW50 X3F4ZmVyX2xpYnJhcmllc19lbnRyeSAoZGxsKTsKIAogICBkb2N1bWVudCArPSAiPC9saWJyYXJ5 LWxpc3Q+XG4iOwogCkBAIC0yNzQyLDYgKzI4NjQsOCBAQCBoYW5kbGVfcXVlcnkgKGNoYXIgKm93 bl9idWYsIGludCBwYWNrZXRfbGVuLCBpbnQgKm5ld19wYWNrZXRfbGVuX3ApCiAJCX0KIAkgICAg ICBlbHNlIGlmIChmZWF0dXJlID09ICJlcnJvci1tZXNzYWdlKyIpCiAJCWNzLmVycm9yX21lc3Nh Z2Vfc3VwcG9ydGVkID0gdHJ1ZTsKKwkgICAgICBlbHNlIGlmIChmZWF0dXJlID09ICJxWGZlcjps aWJyYXJpZXM6cmVhZDppbi1tZW1vcnktbGlicmFyeSsiKQorCQljcy5pbl9tZW1vcnlfbGlicmFy eV9zdXBwb3J0ZWQgPSB0cnVlOwogCSAgICAgIGVsc2UKIAkJewogCQkgIC8qIE1vdmUgdGhlIHVu a25vd24gZmVhdHVyZXMgYWxsIHRvZ2V0aGVyLiAgKi8KQEAgLTI3NzIsNiArMjg5Niw3IEBAIGhh bmRsZV9xdWVyeSAoY2hhciAqb3duX2J1ZiwgaW50IHBhY2tldF9sZW4sIGludCAqbmV3X3BhY2tl dF9sZW5fcCkKIAkgIC8qIFdlIGRvIG5vdCBoYXZlIGFueSBob29rIHRvIGluZGljYXRlIHdoZXRo ZXIgdGhlIG5vbi1TVlI0IHRhcmdldAogCSAgICAgYmFja2VuZCBzdXBwb3J0cyBxWGZlcjpsaWJy YXJpZXM6cmVhZCwgc28gYWx3YXlzIHJlcG9ydCBpdC4gICovCiAJICBzdHJjYXQgKG93bl9idWYs ICI7cVhmZXI6bGlicmFyaWVzOnJlYWQrIik7CisJICBzdHJjYXQgKG93bl9idWYsICI7cVhmZXI6 bGlicmFyaWVzOnJlYWQ6aW4tbWVtb3J5LWxpYnJhcnkrIik7CiAJfQogCiAgICAgICBpZiAodGhl X3RhcmdldC0+c3VwcG9ydHNfcmVhZF9hdXh2ICgpKQpkaWZmIC0tZ2l0IGEvZ2Ric2VydmVyL3Nl cnZlci5oIGIvZ2Ric2VydmVyL3NlcnZlci5oCmluZGV4IDU2MDk1ODRmNzE2NDg4ZmNhNTk5YThk MzBkZmEwZjExYjUwMDQyYzguLmViYjU5ODBmNzBkZDc3OGFiZmFhZGUxMDg2YjRiODlhNTI5YjQy OTggMTAwNjQ0Ci0tLSBhL2dkYnNlcnZlci9zZXJ2ZXIuaAorKysgYi9nZGJzZXJ2ZXIvc2VydmVy LmgKQEAgLTE5Niw2ICsxOTYsOSBAQCBzdHJ1Y3QgY2xpZW50X3N0YXRlCiAgICAgIGFyZSBub3Qg c3VwcG9ydGVkIHdpdGggcVJjbWQgYW5kIG0gcGFja2V0cywgYnV0IGFyZSBzdGlsbCBzdXBwb3J0 ZWQKICAgICAgZXZlcnl3aGVyZSBlbHNlLiAgVGhpcyBpcyBmb3IgYmFja3dhcmQgY29tcGF0aWJp bGl0eSByZWFzb25zLiAgKi8KICAgYm9vbCBlcnJvcl9tZXNzYWdlX3N1cHBvcnRlZCA9IGZhbHNl OworCisgIC8qIFRydWUgaWYgcVhmZXI6bGlicmFyaWVzOnJlYWQgc3VwcG9ydHMgaW4tbWVtb3J5 LWxpYnJhcnkuICAqLworICBib29sIGluX21lbW9yeV9saWJyYXJ5X3N1cHBvcnRlZCA9IGZhbHNl OwogfTsKIAogY2xpZW50X3N0YXRlICZnZXRfY2xpZW50X3N0YXRlICgpOwoKLS0gCjIuMzQuMQoK SW50ZWwgRGV1dHNjaGxhbmQgR21iSA0KUmVnaXN0ZXJlZCBBZGRyZXNzOiBBbSBDYW1wZW9uIDEw LCA4NTU3OSBOZXViaWJlcmcsIEdlcm1hbnkNClRlbDogKzQ5IDg5IDk5IDg4NTMtMCwgd3d3Lmlu dGVsLmRlDQpNYW5hZ2luZyBEaXJlY3RvcnM6IFNlYW4gRmVubmVsbHksIEplZmZyZXkgU2NobmVp ZGVybWFuLCBUaWZmYW55IERvb24gU2lsdmENCkNoYWlycGVyc29uIG9mIHRoZSBTdXBlcnZpc29y eSBCb2FyZDogTmljb2xlIExhdQ0KUmVnaXN0ZXJlZCBPZmZpY2U6IE11bmljaA0KQ29tbWVyY2lh bCBSZWdpc3RlcjogQW10c2dlcmljaHQgTXVlbmNoZW4gSFJCIDE4NjkyOAo=