From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id uG86OaCPjGhvhwEAWB0awg (envelope-from ) for ; Fri, 01 Aug 2025 05:57:52 -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=Eooj/Hep; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id E4EC91E102; Fri, 1 Aug 2025 05:57:52 -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 B6D561E089 for ; Fri, 1 Aug 2025 05:57:50 -0400 (EDT) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 6E32E3858420 for ; Fri, 1 Aug 2025 09:57:50 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 6E32E3858420 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=Eooj/Hep Received: from mgamail.intel.com (mgamail.intel.com [192.198.163.14]) by sourceware.org (Postfix) with ESMTPS id 51DE73858C54 for ; Fri, 1 Aug 2025 09:39:38 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 51DE73858C54 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 51DE73858C54 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=1754041178; cv=none; b=R4y/HvoV+4lqzLsWVYII7GCvKAOEq2JNfsl6/mgJP4SjTw7RS0N8rPYsRPKgRJTeVXecBOA0uGxWjcVKxNdq56cKzHbiE/YRLZoUc7QNEBffMtlcQ6LkVKG9jcsIoNL81M8M8JWDmCTWqCs3tlVeHVOVu+1Lc6j58afUzr0De30= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1754041178; c=relaxed/simple; bh=kWy+oBsT7Ws4q5qobIw6Sl3u7Z1PaBKCUziuOO4MZmQ=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=gGkj5xX4XFfD8KZ3B/0VmQuIF9ZgXueudoRaFjmIyNxLivD4QtkED4ZAHC0PBTVQ8Ih0nnPaXVgScm8S1hMx44x8+K1SkSmtzg9mGzT3yU4/0gFtBskG/Miq/zkJOZiWOAnWf3w++fTn027J37uz+K1UWLYNHVnnS3xMTfmXrFY= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 51DE73858C54 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1754041178; x=1785577178; h=from:to:subject:date:message-id:in-reply-to:references: mime-version:content-transfer-encoding; bh=kWy+oBsT7Ws4q5qobIw6Sl3u7Z1PaBKCUziuOO4MZmQ=; b=Eooj/HepeaZdHdIWglNQUV0GZOAOlDUwv3y6Zo1SBeSnW6iOg6RiA/9e 4JExwtVX5pR+JeDsK1EY8k2R0P8/wNnJ8lzcDCEVhgv7DjBgtvaBsOfJV SGM1O3R1TQs1NBwM64ArQlfQoJezGwDlyoDqn9hevuV7sWxkrTAeXeHTY 8eo9ByXN4i+oLdcn2h/JTPtz+NJA4kyXtXzcbVUBdoJEyk0m0ZXsbe5Je 2F9cOtA/5cwQtTbrMS+L53FwGPsb3rai/78rVkYuTK4sXJXUFIGnArq/T 0QSutTCFyQb0LmDn3upMgQ6smuk/zfpAwFMUSQtzY3A+kGt0JGOIQNdqu w==; X-CSE-ConnectionGUID: KV/KQRr2QqCKo//uUIrarQ== X-CSE-MsgGUID: SnglYsIXTYyZuJr7luaEtg== X-IronPort-AV: E=McAfee;i="6800,10657,11508"; a="56465247" X-IronPort-AV: E=Sophos;i="6.17,255,1747724400"; d="scan'208";a="56465247" 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:37 -0700 X-CSE-ConnectionGUID: w+iBz8GVSoifS7uE7J1ipg== X-CSE-MsgGUID: e07c8HG9ScmMfoimCDAwLA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="6.17,255,1747724400"; d="scan'208";a="187196796" 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:36 -0700 From: Tankut Baris Aktemur To: gdb-patches@sourceware.org, Markus Metzger Subject: [PATCH v3 10/44] gdb, gdbserver, rsp, ze: acknowledge libraries Date: Fri, 1 Aug 2025 11:37:12 +0200 Message-Id: <20250801-upstream-intelgt-mvp-v3-10-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 RnJvbTogTWFya3VzIE1ldHpnZXIgPG1hcmt1cy50Lm1ldHpnZXJAaW50ZWwuY29tPgoKT24gc29t ZSBhY2NlbGVyYXRvciBkZXZpY2VzLCBkZXZpY2Ugc2hhcmVkIGxpYnJhcmllcyBhcmUgbG9hZGVk IGZyb20gYQpob3N0IHRocmVhZCByYXRoZXIgdGhhbiBmcm9tIGEgZGV2aWNlIHRocmVhZC4gIFRo ZSByZXBvcnRpbmcgZW50aXR5IG1heQpub3QgYmUgdGhlIG9uZSB0aGF0IGFjdHVhbGx5IGRvZXMg dGhlIGxvYWQuCgpJbnRlbCBHUFUgZGV2aWNlcywgZm9yIGV4YW1wbGUsIHRoYXQgYXJlIGJhc2Vk IG9uIExldmVsLVplcm8sIHdpbGwgcmVwb3J0CnNoYXJlZCBsaWJyYXJ5IGV2ZW50cyB2aWEgdGhl IGRldmljZSdzIGRlYnVnIGludGVyZmFjZS4gIFRoaXMgaXMgdHJpZ2dlcmVkCmZyb20gYSBob3N0 IHRocmVhZCBjYWxsaW5nIHRoZSBydW4tdGltZSBpbnRlcmZhY2UgZm9yIGxvYWRpbmcgYSBkZXZp Y2UKc2hhcmVkIGxpYnJhcnkuCgpUaGUgTGV2ZWwtWmVybyBydW4tdGltZSBlbnN1cmVzIHRoYXQg dGhpcyBob3N0IHRocmVhZCB3aWxsIG5vdCByZXR1cm4KdW50aWwgdGhlIHJlc3BlY3RpdmUgZGVi dWcgZXZlbnQgaGFzIGJlZW4gYWNrbm93bGVkZ2VkIGJ5IHRoZSBkZWJ1Z2dlci4KVGhpcyBhbGxv d3MgZGVidWdnZXJzIHRvIHNldCBicmVha3BvaW50cyBiZWZvcmUgdGhlIG5ldyBsaWJyYXJ5IGlz IHVzZWQuCgpBZGQgYSBtZWNoYW5pc20gdGhhdCBhbGxvd3MgZ2Ric2VydmVyIHRvIHJlcXVlc3Qg YWNrbm93bGVkZ2VtZW50IG9mIG5ld2x5CnJlcG9ydGVkIHNoYXJlZCBsaWJyYXJpZXMgYW5kIEdE QiB0byBhY2tub3dsZWRnZSByZXF1ZXN0ZWQgbGlicmFyaWVzIGFmdGVyCnBsYWNpbmcgYnJlYWtw b2ludHMuCgpSZXZpZXdlZC1CeTogRWxpIFphcmV0c2tpaSA8ZWxpekBnbnUub3JnPgotLS0KIGdk Yi9ORVdTICAgICAgICAgICAgICAgICAgICAgIHwgICA3ICsrKwogZ2RiL2RvYy9nZGIudGV4aW5m byAgICAgICAgICAgfCAgNzYgKysrKysrKysrKysrKysrKysrKystLS0KIGdkYi9mZWF0dXJlcy9s aWJyYXJ5LWxpc3QuZHRkIHwgIDI0ICsrKy0tLS0KIGdkYi9yZW1vdGUuYyAgICAgICAgICAgICAg ICAgIHwgMTE0ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysKIGdkYi9zb2xpYi10 YXJnZXQuYyAgICAgICAgICAgIHwgIDU4ICsrKysrKysrKysrKysrKystCiBnZGIvc29saWItdGFy Z2V0LmggICAgICAgICAgICB8ICAgMSArCiBnZGIvc29saWIuYyAgICAgICAgICAgICAgICAgICB8 ICAxNCArKysrLQogZ2RiL3NvbGliLmggICAgICAgICAgICAgICAgICAgfCAgIDQgKysKIGdkYi90 YXJnZXQtZGVsZWdhdGVzLWdlbi5jICAgIHwgIDUwICsrKysrKysrKysrKysrKwogZ2RiL3Rhcmdl dC5jICAgICAgICAgICAgICAgICAgfCAgMTYgKysrKysKIGdkYi90YXJnZXQuaCAgICAgICAgICAg ICAgICAgIHwgIDIxICsrKysrKysKIGdkYnNlcnZlci9kbGwuY2MgICAgICAgICAgICAgIHwgIDk0 ICsrKysrKysrKysrKysrKysrKysrKysrKysrLS0KIGdkYnNlcnZlci9kbGwuaCAgICAgICAgICAg ICAgIHwgIDI4ICsrKysrKy0tLQogZ2Ric2VydmVyL3NlcnZlci5jYyAgICAgICAgICAgfCAxNDEg KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tCiBnZGJzZXJ2ZXIvc2Vy dmVyLmggICAgICAgICAgICB8ICAgNCArKwogZ2Ric2VydmVyL3RhcmdldC5jYyAgICAgICAgICAg fCAgMTQgKysrKysKIGdkYnNlcnZlci90YXJnZXQuaCAgICAgICAgICAgIHwgIDIwICsrKysrKwog MTcgZmlsZXMgY2hhbmdlZCwgNjQ0IGluc2VydGlvbnMoKyksIDQyIGRlbGV0aW9ucygtKQoKZGlm ZiAtLWdpdCBhL2dkYi9ORVdTIGIvZ2RiL05FV1MKaW5kZXggMzY5NDRlMWEwYTQwOGFhYjMyMDBi Y2QzMmM4ZWU0NjJiYjA2NDI4ZS4uZTk1NTUwNDk2YzQxOTBmNzAzMmU5MTczMjljZTQ5Nzg0NGE3 OWU2NyAxMDA2NDQKLS0tIGEvZ2RiL05FV1MKKysrIGIvZ2RiL05FV1MKQEAgLTIwMiw2ICsyMDIs MTMgQEAgcVhmZXI6bGlicmFyaWVzOnJlYWQncyByZXNwb25zZQogICBpbmRpY2F0ZXMgc3VwcG9y dCBieSBzdXBwbHlpbmcgcVhmZXI6bGlicmFyaWVzOnJlYWQ6aW4tbWVtb3J5LWxpYnJhcnkrIGlu IHRoZQogICBxU3VwcG9ydGVkIHBhY2tldC4KIAordkFjazpsaWJyYXJ5Cit2QWNrOmluLW1lbW9y eS1saWJyYXJ5CisKKyAgQWNrbm93bGVkZ2UgbGlicmFyaWVzIHRvIGdkYnNlcnZlciB3aGVuIHJl cXVlc3RlZC4gIExpYnJhcmllcyBhcmUgYWNrbm93bGVkZ2VkCisgIGFmdGVyIHRoZSBpbml0aWFs IHByb2Nlc3NpbmcgYnkgR0RCIHN1Y2ggYXMgbG9hZGluZyBzeW1ib2xzIGFuZCBwbGFjaW5nCisg IGJyZWFrcG9pbnRzLgorCiAqIENoYW5nZWQgcmVtb3RlIHBhY2tldHMKIAogcVhmZXI6dGhyZWFk czpyZWFkCmRpZmYgLS1naXQgYS9nZGIvZG9jL2dkYi50ZXhpbmZvIGIvZ2RiL2RvYy9nZGIudGV4 aW5mbwppbmRleCA2MjhlZTQ5YjcwM2MyMzg4OGY1MThhZjU4NDEyODExMWM5NDczZWY5Li5mYWE5 MzE3N2UwZTlmMGE2YjgzZWM5ZGRhMTAzMTI3NmFlMWMxMTRkIDEwMDY0NAotLS0gYS9nZGIvZG9j L2dkYi50ZXhpbmZvCisrKyBiL2dkYi9kb2MvZ2RiLnRleGluZm8KQEAgLTQzNjYwLDYgKzQzNjYw LDQ0IEBAIGZvciBzdWNjZXNzIChAcHhyZWZ7U3RvcCBSZXBseSBQYWNrZXRzfSkKIEBjaW5kZXgg QHNhbXB7dlN0b3BwZWR9IHBhY2tldAogQHhyZWZ7Tm90aWZpY2F0aW9uIFBhY2tldHN9LgogCitA aXRlbSB2QWNrOkB2YXJ7dHlwZX06QHZhcnthcmd9WyxAdmFye2FyZ31AZG90c3t9XVs7QHZhcnt0 eXBlfTpAdmFye2FyZ31bLEB2YXJ7YXJnfUBkb3Rze31dXUBkb3Rze30KK0BjaW5kZXggQHNhbXB7 dkFja30gcGFja2V0CitAYW5jaG9ye3ZBY2sgcGFja2V0fQorCitBY2tub3dsZWRnZSBhIEBzYW1w ezt9LXNlcGFyYXRlZCBsaXN0IG9mIHJlbW90ZSBzdHViIHJlc3BvbnNlcywgZWFjaAord2l0aCBh IEBzYW1weyx9LXNlcGFyYXRlZCBsaXN0IG9mIGFyZ3VtZW50cyBkZWZpbmVkIGJ5IGl0cyBAdmFy e3R5cGV9LgorVGhlIGZvbGxvd2luZyBAdmFye3R5cGV9cyB3aXRoIHRoZWlyIHJlc3BlY3RpdmUg YXJndW1lbnRzIGFyZQorc3VwcG9ydGVkOgorCitAdGFibGUgQHNhbXAKK0BpdGVtIGxpYnJhcnk6 QHZhcntuYW1lfQorQWNrbm93bGVkZ2UgdGhlIHNoYXJlZCBsaWJyYXJ5IHRoYXQgaGFkIGJlZW4g cmVwb3J0ZWQgYXMKK0BzYW1wezxsaWJyYXJ5IG5hbWU9IkB2YXJ7bmFtZX0iIGFjaz0ieWVzIj59 IGluIHRoZSByZW1vdGUgc3R1YidzCitAc2FtcHtxWGZlcjpsaWJyYXJpZXM6cmVhZH0gcmVzcG9u c2UuICBAdmFsdWV7R0RCTn0gYWNrbm93bGVkZ2VzCitsaWJyYXJpZXMgYWZ0ZXIgaW5pdGlhbCBw cm9jZXNzaW5nIGxpa2UgbG9hZGluZyBzeW1ib2xzIGFuZCBwbGFjaW5nCiticmVha3BvaW50cy4g IFRoZSBmaWxlIG5hbWUgaXMgYSBoZXgtZW5jb2RlZCBzdHJpbmcuCisKK0BpdGVtIGluLW1lbW9y eS1saWJyYXJ5OkB2YXJ7YmVnaW59LEB2YXJ7ZW5kfQorQWNrbm93bGVkZ2UgdGhlIHNoYXJlZCBs aWJyYXJ5IHRoYXQgaGFkIGJlZW4gcmVwb3J0ZWQgYXMKK0BzYW1wezxpbi1tZW1vcnktbGlicmFy eSBiZWdpbj0iQHZhcntiZWdpbn0iIGVuZD0iQHZhcntlbmR9IiBhY2s9InllcyI+fQoraW4gdGhl IHJlbW90ZSBzdHViJ3MgQHNhbXB7cVhmZXI6bGlicmFyaWVzOnJlYWR9IHJlc3BvbnNlLgorQHZh bHVle0dEQk59IGFja25vd2xlZGdlcyBsaWJyYXJpZXMgYWZ0ZXIgaW5pdGlhbCBwcm9jZXNzaW5n IGxpa2UKK2xvYWRpbmcgc3ltYm9scyBhbmQgcGxhY2luZyBicmVha3BvaW50cy4gIEJvdGggYXJn dW1lbnRzIGFyZSB1bnNpZ25lZAoraW50ZWdlcnMuCitAZW5kIHRhYmxlCisKK1JlcGx5OgorQHRh YmxlIEBzYW1wCitAaXRlbSBPSworZm9yIHN1Y2Nlc3MKK0BpdGVtIEUgQHZhcntubn0KK2ZvciBh biBlcnJvcgorQGVuZCB0YWJsZQorCitAdmFsdWV7R0RCTn0gaW5kaWNhdGVzIHN1cHBvcnQgZm9y IGFja25vd2xlZGdpbmcgaW5kaXZpZHVhbCB0eXBlcyBvZgorcmVzcG9uc2VzIGJ5IHN1cHBseWlu ZyBhbiBhcHByb3ByaWF0ZSBAc2FtcHtxU3VwcG9ydGVkfSBmZWF0dXJlCisoQHB4cmVme3FTdXBw b3J0ZWR9KSBmb3IgZWFjaCB0eXBlIHRoYXQgaXQgc3VwcG9ydHMuCisKIEBpdGVtIHggQHZhcnth ZGRyfSxAdmFye2xlbmd0aH0KIEBhbmNob3J7eCBwYWNrZXR9CiBAY2luZGV4IEBzYW1we3h9IHBh Y2tldApAQCAtNDUwMjksNiArNDUwNjcsMTQgQEAgZGlkbid0IHN1cHBvcnQgQHNhbXB7RS5AdmFy e2VycnRleHR9fSwgYW5kIG9sZGVyIHZlcnNpb25zIG9mCiAKIE5ldyBwYWNrZXRzIHNob3VsZCBi ZSB3cml0dGVuIHRvIHN1cHBvcnQgQHNhbXB7RS5AdmFye2VycnRleHR9fQogcmVnYXJkbGVzcyBv ZiB0aGlzIGZlYXR1cmUgYmVpbmcgdHJ1ZSBvciBub3QuCisKK0BpdGVtIHZBY2s6bGlicmFyeQor VGhpcyBmZWF0dXJlIGluZGljYXRlcyB3aGV0aGVyIEB2YWx1ZXtHREJOfSBzdXBwb3J0cyBhY2tu b3dsZWRnaW5nCitsaWJyYXJpZXMgcmVwb3J0ZWQgYnkgbmFtZS4KKworQGl0ZW0gdkFjazppbi1t ZW1vcnktbGlicmFyeQorVGhpcyBmZWF0dXJlIGluZGljYXRlcyB3aGV0aGVyIEB2YWx1ZXtHREJO fSBzdXBwb3J0cyBhY2tub3dsZWRnaW5nCitpbi1tZW1vcnkgbGlicmFyaWVzIHJlcG9ydGVkIGJ5 IGJlZ2luIGFuZCBlbmQgdGFyZ2V0IGFkZHJlc3MuCiBAZW5kIHRhYmxlCiAKIFN0dWJzIHNob3Vs ZCBpZ25vcmUgYW55IHVua25vd24gdmFsdWVzIGZvcgpAQCAtNDgzMDMsNiArNDgzNDksMTMgQEAg YXNzb2NpYXRlZCBuYW1lIG9yIGJlZ2luIGFuZCBlbmQgYWRkcmVzc2VzIGFuZCBvbmUgb3IgbW9y ZSBzZWdtZW50IG9yCiBzZWN0aW9uIGJhc2UgYWRkcmVzc2VzLCB3aGljaCByZXBvcnQgd2hlcmUg dGhlIGxpYnJhcnkgd2FzIGxvYWRlZCBpbgogbWVtb3J5LgogCitJdCBtYXkgb3B0aW9uYWxseSBj b250YWluIGEgcmVxdWVzdCBmb3IgYWNrbm93bGVkZ2luZyB0aGF0IGxpYnJhcnkuCitAdmFsdWV7 R0RCTn0gaW5kaWNhdGVzIHN1cHBvcnQgZm9yIGFja25vd2xlZGdpbmcgbGlicmFyaWVzIGJ5Citz dXBwbHlpbmcgYW4gYXBwcm9wcmlhdGUgQHNhbXB7cVN1cHBvcnRlZH0gZmVhdHVyZQorKEBweHJl ZntxU3VwcG9ydGVkfSkuICBUaGUgcmVtb3RlIHN0dWIgbXVzdCBub3QgcmVxdWVzdAorYWNrbm93 bGVkZ2VtZW50IG9mIGxpYnJhcmllcyB1bmxlc3MgQHZhbHVle0dEQk59IGluZGljYXRlZCBzdXBw b3J0IGZvcgoraXQuCisKIEZvciB0aGUgY29tbW9uIGNhc2Ugb2YgbGlicmFyaWVzIHRoYXQgYXJl IGZ1bGx5IGxpbmtlZCBiaW5hcmllcywgdGhlCiBsaWJyYXJ5IHNob3VsZCBoYXZlIGEgbGlzdCBv ZiBzZWdtZW50cy4gIElmIHRoZSB0YXJnZXQgc3VwcG9ydHMKIGR5bmFtaWMgbGlua2luZyBvZiBh IHJlbG9jYXRhYmxlIG9iamVjdCBmaWxlLCBpdHMgbGlicmFyeSBYTUwgZWxlbWVudApAQCAtNDgz MjgsMTYgKzQ4MzgxLDIxIEBAIG9mZnNldCwgbG9va3MgbGlrZSB0aGlzOgogPC9saWJyYXJ5LWxp c3Q+CiBAZW5kIHNtYWxsZXhhbXBsZQogCi1BIGNvcnJlc3BvbmRpbmcgbWVtb3J5IG1hcCBmb3Ig YW4gaW4tbWVtb3J5IGxpYnJhcnkgbG9va3MgbGlrZSB0aGlzOgorQSBjb3JyZXNwb25kaW5nIG1l bW9yeSBtYXAgZm9yIGFuIGluLW1lbW9yeSBsaWJyYXJ5IHdpdGggYSByZXF1ZXN0IGZvcgorYWNr bm93bGVkZ2VtZW50IGxvb2tzIGxpa2UgdGhpczoKIAogQHNtYWxsZXhhbXBsZQogPGxpYnJhcnkt bGlzdD4KLSAgPGluLW1lbW9yeS1saWJyYXJ5IGJlZ2luPSIweGEwMDAwMDAiIGVuZD0iMHhhMDAx MDAwIj4KKyAgPGluLW1lbW9yeS1saWJyYXJ5IGJlZ2luPSIweGEwMDAwMDAiIGVuZD0iMHhhMDAx MDAwIiBhY2s9InllcyI+CiAgICAgPHNlZ21lbnQgYWRkcmVzcz0iMHgxMDAwMDAwMCIvPgogICA8 L2luLW1lbW9yeS1saWJyYXJ5PgogPC9saWJyYXJ5LWxpc3Q+CiBAZW5kIHNtYWxsZXhhbXBsZQog CitAdmFsdWV7R0RCTn0gd2lsbCBhY2tub3dsZWRnZSB0aGUgbGlicmFyeSB3aXRoIGEgQHNhbXB7 dkFjaztsaWJyYXJ5fQorb3IsIGFzIGluIHRoaXMgY2FzZSwgYSBAc2FtcHt2QWNrO2luLW1lbW9y eS1saWJyYXJ5fSBwYWNrZXQuCitAeHJlZnt2QWNrIHBhY2tldH0uCisKIEFub3RoZXIgc2ltcGxl IG1lbW9yeSBtYXAsIHdpdGggb25lIGxvYWRlZCBsaWJyYXJ5IHdpdGggdGhyZWUKIGFsbG9jYXRl ZCBzZWN0aW9ucyAoLnRleHQsIC5kYXRhLCAuYnNzKSwgbG9va3MgbGlrZSB0aGlzOgogCkBAIC00 ODM1NiwxNiArNDg0MTQsMTggQEAgVGhlIGZvcm1hdCBvZiBhIGxpYnJhcnkgbGlzdCBpcyBkZXNj cmliZWQgYnkgdGhpcyBEVEQ6CiBAc21hbGxleGFtcGxlCiA8IS0tIGxpYnJhcnktbGlzdDogUm9v dCBlbGVtZW50IHdpdGggdmVyc2lvbmluZyAtLT4KIDwhRUxFTUVOVCBsaWJyYXJ5LWxpc3QgICAg ICAgICAgICAobGlicmFyeSB8IGluLW1lbW9yeS1saWJyYXJ5KSo+Ci08IUFUVExJU1QgbGlicmFy eS1saXN0ICAgICAgICAgICAgdmVyc2lvbiBDREFUQSAgICNGSVhFRCAgIjEuMSI+Cis8IUFUVExJ U1QgbGlicmFyeS1saXN0ICAgICAgICAgICAgdmVyc2lvbiBDREFUQSAgICAgICAgICAgI0ZJWEVE ICAiMS4xIj4KIDwhRUxFTUVOVCBsaWJyYXJ5ICAgICAgICAgICAgICAgICAoc2VnbWVudCosIHNl Y3Rpb24qKT4KLTwhQVRUTElTVCBsaWJyYXJ5ICAgICAgICAgICAgICAgICBuYW1lICAgIENEQVRB ICAgI1JFUVVJUkVEPgorPCFBVFRMSVNUIGxpYnJhcnkgICAgICAgICAgICAgICAgIG5hbWUgICAg Q0RBVEEgICAgICAgICAgICNSRVFVSVJFRAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGFjayAgICAgKHllcyB8IG5vKSAgICAgICdubyc+CiA8IUVMRU1FTlQgaW4tbWVtb3J5LWxp YnJhcnkgICAgICAgKHNlZ21lbnQqLCBzZWN0aW9uKik+Ci08IUFUVExJU1QgaW4tbWVtb3J5LWxp YnJhcnkgICAgICAgYmVnaW4gICAgQ0RBVEEgICAjUkVRVUlSRUQKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBlbmQgICAgICBDREFUQSAgICNSRVFVSVJFRD4KKzwhQVRUTElTVCBp bi1tZW1vcnktbGlicmFyeSAgICAgICBiZWdpbiAgIENEQVRBICAgICAgICAgICAjUkVRVUlSRUQK KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbmQgICAgIENEQVRBICAgICAgICAg ICAjUkVRVUlSRUQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2sgICAgICh5 ZXMgfCBubykgICAgICAnbm8nPgogPCFFTEVNRU5UIHNlZ21lbnQgICAgICAgICAgICAgICAgIEVN UFRZPgotPCFBVFRMSVNUIHNlZ21lbnQgICAgICAgICAgICAgICAgIGFkZHJlc3MgQ0RBVEEgICAj UkVRVUlSRUQ+Cis8IUFUVExJU1Qgc2VnbWVudCAgICAgICAgICAgICAgICAgYWRkcmVzcyBDREFU QSAgICAgICAgICAgI1JFUVVJUkVEPgogPCFFTEVNRU5UIHNlY3Rpb24gICAgICAgICAgICAgICAg IEVNUFRZPgotPCFBVFRMSVNUIHNlY3Rpb24gICAgICAgICAgICAgICAgIGFkZHJlc3MgQ0RBVEEg ICAjUkVRVUlSRUQ+Cis8IUFUVExJU1Qgc2VjdGlvbiAgICAgICAgICAgICAgICAgYWRkcmVzcyBD REFUQSAgICAgICAgICAgI1JFUVVJUkVEPgogQGVuZCBzbWFsbGV4YW1wbGUKIAogSW4gYWRkaXRp b24sIHNlZ21lbnRzIGFuZCBzZWN0aW9uIGRlc2NyaXB0b3JzIGNhbm5vdCBiZSBtaXhlZCB3aXRo aW4gYQpkaWZmIC0tZ2l0IGEvZ2RiL2ZlYXR1cmVzL2xpYnJhcnktbGlzdC5kdGQgYi9nZGIvZmVh dHVyZXMvbGlicmFyeS1saXN0LmR0ZAppbmRleCBiYWEwMTQ4NWFmOTUwYzU4ZTllMjQyMjI5MzY1 NTAxYzA0M2UyZmUxLi4wZWU3ZWIzNjRiOTdjNjExODBmY2FlY2NhMzYzN2EwODFlMzI3MzZiIDEw MDY0NAotLS0gYS9nZGIvZmVhdHVyZXMvbGlicmFyeS1saXN0LmR0ZAorKysgYi9nZGIvZmVhdHVy ZXMvbGlicmFyeS1saXN0LmR0ZApAQCAtNSwxOCArNSwyMCBAQAogICAgICBub3RpY2UgYW5kIHRo aXMgbm90aWNlIGFyZSBwcmVzZXJ2ZWQuICAtLT4KIAogPCEtLSBsaWJyYXJ5LWxpc3Q6IFJvb3Qg ZWxlbWVudCB3aXRoIHZlcnNpb25pbmcgLS0+Ci08IUVMRU1FTlQgbGlicmFyeS1saXN0ICAobGli cmFyeSB8IGluLW1lbW9yeS1saWJyYXJ5KSo+Ci08IUFUVExJU1QgbGlicmFyeS1saXN0ICB2ZXJz aW9uIENEQVRBICAgI0ZJWEVEICAiMS4xIj4KKzwhRUxFTUVOVCBsaWJyYXJ5LWxpc3QgICAgICAg ICAgKGxpYnJhcnkgfCBpbi1tZW1vcnktbGlicmFyeSkqPgorPCFBVFRMSVNUIGxpYnJhcnktbGlz dCAgICAgICAgICB2ZXJzaW9uIENEQVRBICAgICAgICAgI0ZJWEVEICAiMS4xIj4KIAotPCFFTEVN RU5UIGxpYnJhcnkgICAgICAgKHNlZ21lbnQqLCBzZWN0aW9uKik+Ci08IUFUVExJU1QgbGlicmFy eSAgICAgICBuYW1lICAgIENEQVRBICAgI1JFUVVJUkVEPgorPCFFTEVNRU5UIGxpYnJhcnkgICAg ICAgICAgICAgICAoc2VnbWVudCosIHNlY3Rpb24qKT4KKzwhQVRUTElTVCBsaWJyYXJ5ICAgICAg ICAgICAgICAgbmFtZSAgICBDREFUQSAgICAgICAgICNSRVFVSVJFRAorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBhY2sgICAgICh5ZXMgfCBubykgICAgJ25vJz4KIAotPCFFTEVNRU5U IGluLW1lbW9yeS1saWJyYXJ5ICAgICAgIChzZWdtZW50Kiwgc2VjdGlvbiopPgotPCFBVFRMSVNU IGluLW1lbW9yeS1saWJyYXJ5ICAgICAgIGJlZ2luICAgIENEQVRBICAgI1JFUVVJUkVECi0gICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW5kICAgICAgQ0RBVEEgICAjUkVRVUlSRUQ+ Cis8IUVMRU1FTlQgaW4tbWVtb3J5LWxpYnJhcnkgICAgIChzZWdtZW50Kiwgc2VjdGlvbiopPgor PCFBVFRMSVNUIGluLW1lbW9yeS1saWJyYXJ5ICAgICBiZWdpbiAgIENEQVRBICAgICAgICAgI1JF UVVJUkVECisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZCAgICAgQ0RBVEEgICAg ICAgICAjUkVRVUlSRUQKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWNrICAgICAo eWVzIHwgbm8pICAgICdubyc+CiAKLTwhRUxFTUVOVCBzZWdtZW50ICAgICAgIEVNUFRZPgotPCFB VFRMSVNUIHNlZ21lbnQgICAgICAgYWRkcmVzcyBDREFUQSAgICNSRVFVSVJFRD4KKzwhRUxFTUVO VCBzZWdtZW50ICAgICAgICAgICAgICAgRU1QVFk+Cis8IUFUVExJU1Qgc2VnbWVudCAgICAgICAg ICAgICAgIGFkZHJlc3MgQ0RBVEEgICAgICAgICAjUkVRVUlSRUQ+CiAKLTwhRUxFTUVOVCBzZWN0 aW9uICAgICAgIEVNUFRZPgotPCFBVFRMSVNUIHNlY3Rpb24gICAgICAgYWRkcmVzcyBDREFUQSAg ICNSRVFVSVJFRD4KKzwhRUxFTUVOVCBzZWN0aW9uICAgICAgICAgICAgICAgRU1QVFk+Cis8IUFU VExJU1Qgc2VjdGlvbiAgICAgICAgICAgICAgIGFkZHJlc3MgQ0RBVEEgICAgICAgICAjUkVRVUlS RUQ+CmRpZmYgLS1naXQgYS9nZGIvcmVtb3RlLmMgYi9nZGIvcmVtb3RlLmMKaW5kZXggM2QzYWNk MTlhNTNjMzY2NTA1NWY4ZTI3Y2M4NjY5OTE2MDgzZjU2Mi4uYTRkYWNhODg1Zjc3ODAzMzc0Mzg0 YWRiZTEzNTI0YWYzZTYyYjEyYiAxMDA2NDQKLS0tIGEvZ2RiL3JlbW90ZS5jCisrKyBiL2dkYi9y ZW1vdGUuYwpAQCAtMzc5LDYgKzM3OSwxMiBAQCBlbnVtIHsKICAgLyogU3VwcG9ydCByZW1vdGUg Q1RSTC1DLiAgKi8KICAgUEFDS0VUX3ZDdHJsQywKIAorICAvKiBTdXBwb3J0IGFja25vd2xlZGdp bmcgbGlicmFyaWVzLiAgKi8KKyAgUEFDS0VUX3ZBY2tfbGlicmFyeSwKKworICAvKiBTdXBwb3J0 IGFja25vd2xlZGdpbmcgaW4tbWVtb3J5LWxpYnJhcmllcy4gICovCisgIFBBQ0tFVF92QWNrX2lu X21lbW9yeV9saWJyYXJ5LAorCiAgIC8qIFN1cHBvcnQgVEFSR0VUX1dBSVRLSU5EX05PX1JFU1VN RUQuICAqLwogICBQQUNLRVRfbm9fcmVzdW1lZCwKIApAQCAtMTE1Nyw2ICsxMTYzLDkgQEAgY2xh c3MgcmVtb3RlX3RhcmdldCA6IHB1YmxpYyBwcm9jZXNzX3N0cmF0dW1fdGFyZ2V0CiAKICAgYm9v bCBpc19hZGRyZXNzX3RhZ2dlZCAoZ2RiYXJjaCAqZ2RiYXJjaCwgQ09SRV9BRERSIGFkZHJlc3Mp IG92ZXJyaWRlOwogCisgIHZvaWQgYWNrX2xpYnJhcnkgKGNvbnN0IGNoYXIgKm5hbWUpIG92ZXJy aWRlOworICB2b2lkIGFja19pbl9tZW1vcnlfbGlicmFyeSAoQ09SRV9BRERSIGJlZ2luLCBDT1JF X0FERFIgZW5kKSBvdmVycmlkZTsKKwogcHVibGljOiAvKiBSZW1vdGUgc3BlY2lmaWMgbWV0aG9k cy4gICovCiAKICAgdm9pZCByZW1vdGVfZG93bmxvYWRfY29tbWFuZF9zb3VyY2UgKGludCBudW0s IFVMT05HRVNUIGFkZHIsCkBAIC01ODY0LDYgKzU4NzMsMTAgQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBwcm90b2NvbF9mZWF0dXJlIHJlbW90ZV9wcm90b2NvbF9mZWF0dXJlc1tdID0gewogICB7ICJl cnJvci1tZXNzYWdlIiwgUEFDS0VUX0VOQUJMRSwgcmVtb3RlX3N1cHBvcnRlZF9wYWNrZXQsCiAg ICAgUEFDS0VUX2FjY2VwdF9lcnJvcl9tZXNzYWdlIH0sCiAgIHsgImJpbmFyeS11cGxvYWQiLCBQ QUNLRVRfRElTQUJMRSwgcmVtb3RlX3N1cHBvcnRlZF9wYWNrZXQsIFBBQ0tFVF94IH0sCisgIHsg InZBY2s6bGlicmFyeSIsIFBBQ0tFVF9ESVNBQkxFLCByZW1vdGVfc3VwcG9ydGVkX3BhY2tldCwK KyAgICBQQUNLRVRfdkFja19saWJyYXJ5IH0sCisgIHsgInZBY2s6aW4tbWVtb3J5LWxpYnJhcnki LCBQQUNLRVRfRElTQUJMRSwgcmVtb3RlX3N1cHBvcnRlZF9wYWNrZXQsCisgICAgUEFDS0VUX3ZB Y2tfaW5fbWVtb3J5X2xpYnJhcnkgfSwKIH07CiAKIHN0YXRpYyBjaGFyICpyZW1vdGVfc3VwcG9y dF94bWw7CkBAIC01OTc4LDYgKzU5OTEsMTQgQEAgcmVtb3RlX3RhcmdldDo6cmVtb3RlX3F1ZXJ5 X3N1cHBvcnRlZCAoKQogICAgICAgcmVtb3RlX3F1ZXJ5X3N1cHBvcnRlZF9hcHBlbmQKIAkoJnEs ICJxWGZlcjpsaWJyYXJpZXM6cmVhZDppbi1tZW1vcnktbGlicmFyeSsiKTsKIAorICAgICAgaWYg KG1fZmVhdHVyZXMucGFja2V0X3NldF9jbWRfc3RhdGUgKFBBQ0tFVF92QWNrX2xpYnJhcnkpCisJ ICAhPSBBVVRPX0JPT0xFQU5fRkFMU0UpCisJcmVtb3RlX3F1ZXJ5X3N1cHBvcnRlZF9hcHBlbmQg KCZxLCAidkFjazpsaWJyYXJ5KyIpOworCisgICAgICBpZiAobV9mZWF0dXJlcy5wYWNrZXRfc2V0 X2NtZF9zdGF0ZSAoUEFDS0VUX3ZBY2tfaW5fbWVtb3J5X2xpYnJhcnkpCisJICAhPSBBVVRPX0JP T0xFQU5fRkFMU0UpCisJcmVtb3RlX3F1ZXJ5X3N1cHBvcnRlZF9hcHBlbmQgKCZxLCAidkFjazpp bi1tZW1vcnktbGlicmFyeSsiKTsKKwogICAgICAgLyogS2VlcCB0aGlzIG9uZSBsYXN0IHRvIHdv cmsgYXJvdW5kIGEgZ2Ric2VydmVyIDw9IDcuMTAgYnVnIGluCiAJIHRoZSBxU3VwcG9ydGVkOnht bFJlZ2lzdGVycz1pMzg2IGhhbmRsaW5nLiAgKi8KICAgICAgIGlmIChyZW1vdGVfc3VwcG9ydF94 bWwgIT0gTlVMTApAQCAtMTU3NjAsNiArMTU3ODEsOTQgQEAgcmVtb3RlX3RhcmdldDo6dmNvbnRf cl9zdXBwb3J0ZWQgKCkKIAkgICYmIGdldF9yZW1vdGVfc3RhdGUgKCktPnN1cHBvcnRzX3ZDb250 LnIpOwogfQogCisvKiBBY2tub3dsZWRnZSBwcm9jZXNzaW5nIG9mIGxpYnJhcnkgTkFNRSBpcyBj b21wbGV0ZS4gICovCisKK3ZvaWQKK3JlbW90ZV90YXJnZXQ6OmFja19saWJyYXJ5IChjb25zdCBj aGFyICpuYW1lKQoreworICBpZiAobV9mZWF0dXJlcy5wYWNrZXRfc3VwcG9ydCAoUEFDS0VUX3ZB Y2tfbGlicmFyeSkgPT0gUEFDS0VUX0RJU0FCTEUpCisgICAgZXJyb3IgKF8oInZBY2s6bGlicmFy eSBwYWNrZXQgZGlzYWJsZWQuIikpOworCisgIHJlbW90ZV9zdGF0ZSAqcnMgPSBnZXRfcmVtb3Rl X3N0YXRlICgpOworICBjaGFyICpwID0gcnMtPmJ1Zi5kYXRhICgpOworICBsb25nIHNpemUgPSBn ZXRfcmVtb3RlX3BhY2tldF9zaXplICgpOworCisgIGludCB3cml0dGVuID0gc25wcmludGYgKHAs IHNpemUsICJ2QWNrOmxpYnJhcnk6Iik7CisgIGlmICh3cml0dGVuID09IHNpemUpCisgICAgZXJy b3IgKF8oIlJlbW90ZSBwYWNrZXQgYnVmZmVyIHRvbyBzbWFsbCBmb3IgdkFjazpsaWJyYXJ5IHBh Y2tldC4iKSk7CisKKyAgcCArPSB3cml0dGVuOworICBzaXplIC09IHdyaXR0ZW47CisKKyAgaW50 IGxlbiA9IHN0cm5sZW4gKG5hbWUsIHNpemUpOworICBpZiAoc2l6ZSA8PSAoMiAqIGxlbikpCisg ICAgZXJyb3IgKF8oIkxpYnJhcnkgbmFtZSB0b28gbG9uZyBmb3IgdkFjazpsaWJyYXJ5IHBhY2tl dC4iKSk7CisKKyAgaW50IGNvbnZlcnRlZCA9IGJpbjJoZXggKChjb25zdCBnZGJfYnl0ZSAqKSBu YW1lLCBwLCBsZW4pOworICBpZiAoY29udmVydGVkIDwgbGVuKQorICAgIGVycm9yIChfKCJGYWls ZWQgdG8gZW5jb2RlIGxpYnJhcnkgbmFtZSBmb3IgdkFjazpsaWJyYXJ5IHBhY2tldC4iKSk7CisK KyAgd3JpdHRlbiA9IDIgKiBjb252ZXJ0ZWQ7CisgIHAgKz0gd3JpdHRlbjsKKyAgc2l6ZSAtPSB3 cml0dGVuOworCisgIGdkYl9hc3NlcnQgKHNpemUgPiAwKTsKKyAgKnAgPSAwOworCisgIHB1dHBr dCAocnMtPmJ1Zik7CisgIGdldHBrdCAoJnJzLT5idWYsIDApOworCisgIHBhY2tldF9yZXN1bHQg cmVzdWx0ID0gbV9mZWF0dXJlcy5wYWNrZXRfb2sgKHJzLT5idWYsIFBBQ0tFVF92QWNrX2xpYnJh cnkpOworICBzd2l0Y2ggKHJlc3VsdC5zdGF0dXMgKCkpCisgICAgeworICAgIGNhc2UgUEFDS0VU X09LOgorICAgICAgYnJlYWs7CisgICAgY2FzZSBQQUNLRVRfVU5LTk9XTjoKKyAgICAgIGVycm9y IChfKCJObyBzdXBwb3J0IGZvciBhY2tub3dsZWRnaW5nIGxpYnJhcmllcy4iKSk7CisgICAgY2Fz ZSBQQUNLRVRfRVJST1I6CisgICAgICBlcnJvciAoXygiQWNrbm93bGVkZ2luZyBsaWJyYXJ5ICcl cycgZmFpbGVkOiAnJXMnIiksIG5hbWUsCisJICAgICBycy0+YnVmLmRhdGEgKCkpOworICAgIH0K K30KKworLyogQWNrbm93bGVkZ2UgcHJvY2Vzc2luZyBvZiBpbi1tZW1vcnkgbGlicmFyeSBCRUdJ Ti4uRU5EIGlzIGNvbXBsZXRlLiAgKi8KKwordm9pZAorcmVtb3RlX3RhcmdldDo6YWNrX2luX21l bW9yeV9saWJyYXJ5IChDT1JFX0FERFIgYmVnaW4sIENPUkVfQUREUiBlbmQpCit7CisgIGlmICht X2ZlYXR1cmVzLnBhY2tldF9zdXBwb3J0IChQQUNLRVRfdkFja19pbl9tZW1vcnlfbGlicmFyeSkK KyAgICAgID09IFBBQ0tFVF9ESVNBQkxFKQorICAgIGVycm9yIChfKCJ2QWNrOmluLW1lbW9yeS1s aWJyYXJ5IHBhY2tldCBkaXNhYmxlZC4iKSk7CisKKyAgcmVtb3RlX3N0YXRlICpycyA9IGdldF9y ZW1vdGVfc3RhdGUgKCk7CisgIGNoYXIgKnAgPSBycy0+YnVmLmRhdGEgKCk7CisgIGxvbmcgc2l6 ZSA9IGdldF9yZW1vdGVfcGFja2V0X3NpemUgKCk7CisKKyAgaW50IHdyaXR0ZW4gPSBzbnByaW50 ZiAocCwgc2l6ZSwgInZBY2s6aW4tbWVtb3J5LWxpYnJhcnk6JXMsJXMiLAorCQkJICBjb3JlX2Fk ZHJfdG9fc3RyaW5nX256IChiZWdpbiksCisJCQkgIGNvcmVfYWRkcl90b19zdHJpbmdfbnogKGVu ZCkpOworICBpZiAod3JpdHRlbiA9PSBzaXplKQorICAgIGVycm9yIChfKCJSZW1vdGUgcGFja2V0 IGJ1ZmZlciB0b28gc21hbGwgZm9yIHZBY2s6aW4tbWVtb3J5LWxpYnJhcnkgIgorCSAgICAgInBh Y2tldC4iKSk7CisKKyAgcHV0cGt0IChycy0+YnVmKTsKKyAgZ2V0cGt0ICgmcnMtPmJ1ZiwgMCk7 CisKKyAgcGFja2V0X3Jlc3VsdCByZXN1bHQKKyAgICA9IG1fZmVhdHVyZXMucGFja2V0X29rIChy cy0+YnVmLCBQQUNLRVRfdkFja19pbl9tZW1vcnlfbGlicmFyeSk7CisgIHN3aXRjaCAocmVzdWx0 LnN0YXR1cyAoKSkKKyAgICB7CisgICAgY2FzZSBQQUNLRVRfT0s6CisgICAgICBicmVhazsKKyAg ICBjYXNlIFBBQ0tFVF9VTktOT1dOOgorICAgICAgZXJyb3IgKF8oIk5vIHN1cHBvcnQgZm9yIGFj a25vd2xlZGdpbmcgaW4tbWVtb3J5IGxpYnJhcmllcy4iKSk7CisgICAgY2FzZSBQQUNLRVRfRVJS T1I6CisgICAgICBlcnJvciAoXygiRmFpbGVkIHRvIGFja25vd2xlZGdlIGluLW1lbW9yeSBsaWJy YXJ5ICVzLSVzOiAlcyIpLAorCSAgICAgY29yZV9hZGRyX3RvX3N0cmluZ19ueiAoYmVnaW4pLCBj b3JlX2FkZHJfdG9fc3RyaW5nX256IChlbmQpLAorCSAgICAgcnMtPmJ1Zi5kYXRhICgpKTsKKyAg ICB9Cit9CisKIC8qIFRoZSAic2V0L3Nob3cgcmFuZ2Utc3RlcHBpbmciIHNldCBob29rLiAgKi8K IAogc3RhdGljIHZvaWQKQEAgLTE2NTI1LDYgKzE2NjM0LDExIEBAIFNob3cgdGhlIG1heGltdW0g c2l6ZSBvZiB0aGUgYWRkcmVzcyAoaW4gYml0cykgaW4gYSBtZW1vcnkgcGFja2V0LiIpLCBOVUxM LAogCiAgIGFkZF9wYWNrZXRfY29uZmlnX2NtZCAoUEFDS0VUX3ZDdHJsQywgInZDdHJsQyIsICJj dHJsLWMiLCAwKTsKIAorICBhZGRfcGFja2V0X2NvbmZpZ19jbWQgKFBBQ0tFVF92QWNrX2xpYnJh cnksICJ2QWNrOmxpYnJhcnkiLCAiYWNrLWxpYnJhcnkiLCAwKTsKKworICBhZGRfcGFja2V0X2Nv bmZpZ19jbWQgKFBBQ0tFVF92QWNrX2luX21lbW9yeV9saWJyYXJ5LAorCQkJICJ2QWNrOmluLW1l bW9yeS1saWJyYXJ5IiwgImFjay1pbi1tZW1vcnktbGlicmFyeSIsIDApOworCiAgIGFkZF9wYWNr ZXRfY29uZmlnX2NtZCAoUEFDS0VUX1FUaHJlYWRFdmVudHMsICJRVGhyZWFkRXZlbnRzIiwgInRo cmVhZC1ldmVudHMiLAogCQkJIDApOwogCmRpZmYgLS1naXQgYS9nZGIvc29saWItdGFyZ2V0LmMg Yi9nZGIvc29saWItdGFyZ2V0LmMKaW5kZXggNWQ5YmM4ZjUzMjA0ZWI3ZTYyOWYzODA3YmNiMTcw YzZhY2UzNTdhYS4uMzA0MjM3ZTlkNjBjMDY2MWU2NWVhNmFlODZjMTY1YmQwMmQxMjVlNSAxMDA2 NDQKLS0tIGEvZ2RiL3NvbGliLXRhcmdldC5jCisrKyBiL2dkYi9zb2xpYi10YXJnZXQuYwpAQCAt NTMsNiArNTMsMTEgQEAgc3RydWN0IGxtX2luZm9fdGFyZ2V0IGZpbmFsIDogcHVibGljIGxtX2lu Zm8KICAgICAgVGhpcyBpcyBvbmx5IHZhbGlkIGlmIGxvY2F0aW9uID09IGxtX2luX21lbW9yeS4g ICovCiAgIENPUkVfQUREUiBiZWdpbiA9IDB1bGwsIGVuZCA9IDB1bGw7CiAKKyAgLyogQSBmbGFn IHNheWluZyB3aGV0aGVyIGxpYnJhcnkgbG9hZCBhbmQgdW5sb2FkIG5lZWQgdG8gYmUgYWNrbm93 bGVkZ2VkCisgICAgIHRvIHRoZSB0YXJnZXQgYWZ0ZXIgcHJvY2Vzc2luZyB0aGUgbGlicmFyeSBh bmQgcGxhY2luZy9yZW1vdmluZworICAgICBicmVha3BvaW50cy4gICovCisgIGJvb2wgbmVlZF9h Y2sgPSBmYWxzZTsKKwogICAvKiBUaGUgdGFyZ2V0IGNhbiBlaXRoZXIgc3BlY2lmeSBzZWdtZW50 IGJhc2VzIG9yIHNlY3Rpb24gYmFzZXMsIG5vdAogICAgICBib3RoLiAgKi8KIApAQCAtMTMyLDYg KzEzNywyNCBAQCBsaWJyYXJ5X2xpc3Rfc3RhcnRfc2VjdGlvbiAoc3RydWN0IGdkYl94bWxfcGFy c2VyICpwYXJzZXIsCiAgIGxhc3QtPnNlY3Rpb25fYmFzZXMucHVzaF9iYWNrIChhZGRyZXNzKTsK IH0KIAorLyogSGFuZGxlIHRoZSAnYWNrJyBhdHRyaWJ1dGUgb2YgPGxpYnJhcnk+IGFuZCA8aW4t bWVtb3J5LWxpYnJhcnk+LiAgKi8KKworc3RhdGljIHZvaWQKK2xpYnJhcnlfYWNrIChsbV9pbmZv X3RhcmdldCAmaXRlbSwgc3RkOjp2ZWN0b3I8Z2RiX3htbF92YWx1ZT4gJmF0dHJpYnV0ZXMpCit7 CisgIGdkYl94bWxfdmFsdWUgKmFjayA9IHhtbF9maW5kX2F0dHJpYnV0ZSAoYXR0cmlidXRlcywg ImFjayIpOworICBpZiAoYWNrICE9IG51bGxwdHIpCisgICAgeworICAgICAgY29uc3QgY2hhciAq dmFsdWUgPSAoY29uc3QgY2hhciAqKSBhY2stPnZhbHVlLmdldCAoKTsKKyAgICAgIGlmIChzdHJj bXAgKHZhbHVlLCAieWVzIikgPT0gMCkKKwlpdGVtLm5lZWRfYWNrID0gdHJ1ZTsKKyAgICAgIGVs c2UgaWYgKHN0cmNtcCAodmFsdWUsICJubyIpID09IDApCisJaXRlbS5uZWVkX2FjayA9IGZhbHNl OworICAgICAgZWxzZQorCXdhcm5pbmcgKF8oImJhZCBhdHRyaWJ1dGUgdmFsdWUgZm9yIGxpYnJh cnk6YWNrIikpOworICAgIH0KK30KKwogLyogSGFuZGxlIHRoZSBzdGFydCBvZiBhIDxsaWJyYXJ5 PiBlbGVtZW50LiAgKi8KIAogc3RhdGljIHZvaWQKQEAgLTE0Niw2ICsxNjksOCBAQCBsaWJyYXJ5 X2xpc3Rfc3RhcnRfbGlicmFyeSAoc3RydWN0IGdkYl94bWxfcGFyc2VyICpwYXJzZXIsCiAgIGl0 ZW0tPm5hbWUKICAgICA9IChjb25zdCBjaGFyICopIHhtbF9maW5kX2F0dHJpYnV0ZSAoYXR0cmli dXRlcywgIm5hbWUiKS0+dmFsdWUuZ2V0ICgpOwogCisgIGxpYnJhcnlfYWNrICgqaXRlbSwgYXR0 cmlidXRlcyk7CisKICAgbGlzdC0+ZW1wbGFjZV9iYWNrIChpdGVtKTsKIH0KIApAQCAtMTY1LDYg KzE5MCw4IEBAIGluX21lbW9yeV9saWJyYXJ5X2xpc3Rfc3RhcnRfbGlicmFyeSAoc3RydWN0IGdk Yl94bWxfcGFyc2VyICpwYXJzZXIsCiAgIGl0ZW0tPmVuZCA9IChDT1JFX0FERFIpICooVUxPTkdF U1QgKikKICAgICB4bWxfZmluZF9hdHRyaWJ1dGUgKGF0dHJpYnV0ZXMsICJlbmQiKS0+dmFsdWUu Z2V0ICgpOwogCisgIGxpYnJhcnlfYWNrICgqaXRlbSwgYXR0cmlidXRlcyk7CisKICAgbGlzdC0+ ZW1wbGFjZV9iYWNrIChpdGVtKTsKIH0KIApAQCAtMTk2LDcgKzIyMyw4IEBAIGxpYnJhcnlfbGlz dF9zdGFydF9saXN0IChzdHJ1Y3QgZ2RiX3htbF9wYXJzZXIgKnBhcnNlciwKICAgICB7CiAgICAg ICBjb25zdCBjaGFyICpzdHJpbmcgPSAoY29uc3QgY2hhciAqKSB2ZXJzaW9uLT52YWx1ZS5nZXQg KCk7CiAKLSAgICAgIGlmICgoc3RyY21wIChzdHJpbmcsICIxLjAiKSAhPSAwKSAmJiAoc3RyY21w IChzdHJpbmcsICIxLjEiKSAhPSAwKSkKKyAgICAgIGlmICgoc3RyY21wIChzdHJpbmcsICIxLjAi KSAhPSAwKSAmJiAoc3RyY21wIChzdHJpbmcsICIxLjEiKSAhPSAwKQorCSAgJiYgKHN0cmNtcCAo c3RyaW5nLCAiMS4yIikgIT0gMCkpCiAJZ2RiX3htbF9lcnJvciAocGFyc2VyLAogCQkgICAgICAg XygiTGlicmFyeSBsaXN0IGhhcyB1bnN1cHBvcnRlZCB2ZXJzaW9uIFwiJXNcIiIpLAogCQkgICAg ICAgc3RyaW5nKTsKQEAgLTIyOCwxMiArMjU2LDE0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZ2Ri X3htbF9lbGVtZW50IGxpYnJhcnlfY2hpbGRyZW5bXSA9IHsKIAogc3RhdGljIGNvbnN0IHN0cnVj dCBnZGJfeG1sX2F0dHJpYnV0ZSBsaWJyYXJ5X2F0dHJpYnV0ZXNbXSA9IHsKICAgeyAibmFtZSIs IEdEQl9YTUxfQUZfTk9ORSwgTlVMTCwgTlVMTCB9LAorICB7ICJhY2siLCBHREJfWE1MX0FGX09Q VElPTkFMLCBOVUxMLCBOVUxMIH0sCiAgIHsgTlVMTCwgR0RCX1hNTF9BRl9OT05FLCBOVUxMLCBO VUxMIH0KIH07CiAKIHN0YXRpYyBjb25zdCBzdHJ1Y3QgZ2RiX3htbF9hdHRyaWJ1dGUgaW5fbWVt b3J5X2xpYnJhcnlfYXR0cmlidXRlc1tdID0gewogICB7ICJiZWdpbiIsIEdEQl9YTUxfQUZfTk9O RSwgZ2RiX3htbF9wYXJzZV9hdHRyX3Vsb25nZXN0LCBOVUxMIH0sCiAgIHsgImVuZCIsIEdEQl9Y TUxfQUZfTk9ORSwgZ2RiX3htbF9wYXJzZV9hdHRyX3Vsb25nZXN0LCBOVUxMIH0sCisgIHsgImFj ayIsIEdEQl9YTUxfQUZfT1BUSU9OQUwsIE5VTEwsIE5VTEwgfSwKICAgeyBOVUxMLCBHREJfWE1M X0FGX05PTkUsIE5VTEwsIE5VTEwgfQogfTsKIApAQCAtNDY0LDYgKzQ5NCwzMiBAQCB0YXJnZXRf c29saWJfb3BzOjpiZmRfb3Blbl9mcm9tX3RhcmdldF9tZW1vcnkgKENPUkVfQUREUiBhZGRyLAog ICByZXR1cm4gZ2RiX2JmZF9vcGVuX2Zyb21fdGFyZ2V0X21lbW9yeSAoYWRkciwgc2l6ZSwgdGFy Z2V0KTsKIH0KIAordm9pZAordGFyZ2V0X3NvbGliX29wczo6YWNrX2xpYnJhcnkgKHNvbGliICZz bykgY29uc3QKK3sKKyAgbG1faW5mb190YXJnZXQgKmxtCisgICAgPSBnZGI6OmNoZWNrZWRfc3Rh dGljX2Nhc3Q8bG1faW5mb190YXJnZXQgKj4gKHNvLmxtX2luZm8uZ2V0ICgpKTsKKworICBpZiAo IWxtLT5uZWVkX2FjaykKKyAgICByZXR1cm47CisKKyAgLyogVHJ5IG9ubHkgb25jZSwgd2hldGhl ciB3ZSBzdWNjZWVkIG9yIG5vdC4gICovCisgIGxtLT5uZWVkX2FjayA9IGZhbHNlOworICBzd2l0 Y2ggKGxtLT5sb2NhdGlvbikKKyAgICB7CisgICAgY2FzZSBsbV9vbl9kaXNrOgorICAgICAgdGFy Z2V0X2Fja19saWJyYXJ5IChzby5vcmlnaW5hbF9uYW1lLmNfc3RyICgpKTsKKyAgICAgIHJldHVy bjsKKworICAgIGNhc2UgbG1faW5fbWVtb3J5OgorICAgICAgdGFyZ2V0X2Fja19pbl9tZW1vcnlf bGlicmFyeSAobG0tPmJlZ2luLCBsbS0+ZW5kKTsKKyAgICAgIHJldHVybjsKKyAgICB9CisKKyAg Z2RiX2Fzc2VydF9ub3RfcmVhY2hlZCAoImJhZCBzb2xpYiBsb2NhdGlvbiAnJWQnIGZvciAlcy4i LCBsbS0+bG9jYXRpb24sCisJCQkgIHNvLm9yaWdpbmFsX25hbWUuY19zdHIgKCkpOworfQorCiAv KiBTZWUgc29saWItdGFyZ2V0LmguICAqLwogCiBzb2xpYl9vcHNfdXAKZGlmZiAtLWdpdCBhL2dk Yi9zb2xpYi10YXJnZXQuaCBiL2dkYi9zb2xpYi10YXJnZXQuaAppbmRleCBlY2Q2NzY1OGM3MWNi ODU0ZjAxMmM0MzExYmE3OWJiNDBhMmNhMWIxLi5hNDE3MDUyYjU0MWRiZTc1ZmVlN2Y0NTVlYzkw N2UyZTFjODQzYTA1IDEwMDY0NAotLS0gYS9nZGIvc29saWItdGFyZ2V0LmgKKysrIGIvZ2RiL3Nv bGliLXRhcmdldC5oCkBAIC0zMSw2ICszMSw3IEBAIHN0cnVjdCB0YXJnZXRfc29saWJfb3BzIDog c29saWJfb3BzCiAgIGJvb2wgaW5fZHluc3ltX3Jlc29sdmVfY29kZSAoQ09SRV9BRERSIHBjKSBj b25zdCBvdmVycmlkZTsKICAgZ2RiX2JmZF9yZWZfcHRyIGJmZF9vcGVuX2Zyb21fdGFyZ2V0X21l bW9yeQogICAgIChDT1JFX0FERFIgYWRkciwgQ09SRV9BRERSIHNpemUsIGNvbnN0IGNoYXIgKnRh cmdldCkgY29uc3Qgb3ZlcnJpZGU7CisgIHZvaWQgYWNrX2xpYnJhcnkgKHNvbGliICZzbykgY29u c3Qgb3ZlcnJpZGU7CiB9OwogCiAvKiBSZXR1cm4gYSBuZXcgc29saWJfb3BzIGZvciBzeXN0ZW1z IGZldGNoaW5nIHNvbGlicyBmcm9tIHRoZSB0YXJnZXQuICAqLwpkaWZmIC0tZ2l0IGEvZ2RiL3Nv bGliLmMgYi9nZGIvc29saWIuYwppbmRleCBmMmIyNmQ0ZTlmOWI1NmIwZDE3NGU1MjIzNjY5YmQz OTJjMzExNGRlLi5iN2E1NTJlODBkYzM0ZWE1YjY5ZjU1ZjRlMjVmNWEzOTBhNTdjMmRhIDEwMDY0 NAotLS0gYS9nZGIvc29saWIuYworKysgYi9nZGIvc29saWIuYwpAQCAtOTg0LDYgKzk4NCw3IEBA IHNvbGliX2FkZCAoY29uc3QgY2hhciAqcGF0dGVybiwgaW50IGZyb21fdHR5LCBpbnQgcmVhZHN5 bXMpCiAgICAgaWYgKGZyb21fdHR5KQogICAgICAgYWRkX2ZsYWdzIHw9IFNZTUZJTEVfVkVSQk9T RTsKIAorICAgIHN0ZDo6bGlzdDxzb2xpYiAqPiBhZGRlZF9zb2xpYnM7CiAgICAgZm9yIChzb2xp YiAmZ2RiIDogY3VycmVudF9wcm9ncmFtX3NwYWNlLT5zb2xpYnMgKCkpCiAgICAgICBpZiAoIXBh dHRlcm4gfHwgcmVfZXhlYyAoZ2RiLm5hbWUuY19zdHIgKCkpKQogCXsKQEAgLTEwMDYsMTQgKzEw MDcsMjMgQEAgc29saWJfYWRkIChjb25zdCBjaGFyICpwYXR0ZXJuLCBpbnQgZnJvbV90dHksIGlu dCByZWFkc3ltcykKIAkJCQlzdHlsZWRfc3RyaW5nIChmaWxlX25hbWVfc3R5bGUuc3R5bGUgKCks CiAJCQkJCSAgICAgICBnZGIubmFtZS5jX3N0ciAoKSkpOwogCQl9Ci0JICAgICAgZWxzZSBpZiAo c29saWJfcmVhZF9zeW1ib2xzIChnZGIsIGFkZF9mbGFncykpCi0JCWxvYWRlZF9hbnlfc3ltYm9s cyA9IHRydWU7CisJICAgICAgZWxzZQorCQlhZGRlZF9zb2xpYnMucHVzaF9iYWNrICgmZ2RiKTsK IAkgICAgfQogCX0KIAorICAgIGZvciAoc29saWIgKmdkYiA6IGFkZGVkX3NvbGlicykKKyAgICAg IGlmIChzb2xpYl9yZWFkX3N5bWJvbHMgKCpnZGIsIGFkZF9mbGFncykpCisJbG9hZGVkX2FueV9z eW1ib2xzID0gdHJ1ZTsKKwogICAgIGlmIChsb2FkZWRfYW55X3N5bWJvbHMgfHwgIWN1cnJlbnRf cHJvZ3JhbV9zcGFjZS0+ZGVsZXRlZF9zb2xpYnMuZW1wdHkgKCkpCiAgICAgICBicmVha3BvaW50 X3JlX3NldCAoKTsKIAorICAgIC8qIEFja25vd2xlZGdlIGxvYWRpbmcgb2YgbmV3IHNvbGlicy4g IFRoaXMgbXVzdCBiZSBjYWxsZWQgYWZ0ZXIKKyAgICAgICBicmVha3BvaW50cyBoYXZlIGJlZW4g c2V0IGluIHRoaXMgbmV3bHkgbG9hZGVkIHNvbGliLiAgKi8KKyAgICBmb3IgKHNvbGliICpnZGIg OiBhZGRlZF9zb2xpYnMpCisgICAgICBnZGItPm9wcyAoKS5hY2tfbGlicmFyeSAoKmdkYik7CisK ICAgICBpZiAoZnJvbV90dHkgJiYgcGF0dGVybiAmJiAhYW55X21hdGNoZXMpCiAgICAgICBnZGJf cHJpbnRmICgiTm8gbG9hZGVkIHNoYXJlZCBsaWJyYXJpZXMgbWF0Y2ggdGhlIHBhdHRlcm4gYCVz Jy5cbiIsCiAJCSAgcGF0dGVybik7CmRpZmYgLS1naXQgYS9nZGIvc29saWIuaCBiL2dkYi9zb2xp Yi5oCmluZGV4IDMyMTAxZDI3Y2M1YWNhZTIyOTM5ZWI2YTlmNzIyMzlhYWY0ODEyYTQuLjI3OTA2 MDNlYTViYjNlMGIwNDYzYzhjMjI1NGU2OWVhNGU1YzBhMzEgMTAwNjQ0Ci0tLSBhL2dkYi9zb2xp Yi5oCisrKyBiL2dkYi9zb2xpYi5oCkBAIC0yNjksNiArMjY5LDEwIEBAIHN0cnVjdCBzb2xpYl9v cHMKICAgICAgVGhlIFRBUkdFVCBzdHJpbmcgaXMgdXNlZCB0byBpZGVudGlmeSB0aGUgdGFyZ2V0 LiAgKi8KICAgdmlydHVhbCBnZGJfYmZkX3JlZl9wdHIgYmZkX29wZW5fZnJvbV90YXJnZXRfbWVt b3J5CiAgICAgKENPUkVfQUREUiBhZGRyLCBDT1JFX0FERFIgc2l6ZSwgY29uc3QgY2hhciAqdGFy Z2V0KSBjb25zdDsKKworICAvKiBBY2tub3dsZWRnZSBhIGxpYnJhcnkuICBUaGlzIGlzIGNhbGxl ZCBmcm9tIGFkZF9zb2xpYiBhZnRlcgorICAgICBsb2FkaW5nIHN5bWJvbHMgYW5kIHBsYWNpbmcg YnJlYWtwb2ludHMuICAqLworICB2aXJ0dWFsIHZvaWQgYWNrX2xpYnJhcnkgKHNvbGliICZzbykg Y29uc3Qge30KIH07CiAKIC8qIEEgdW5pcXVlIHBvaW50ZXIgdG8gYW4gc29saWJfb3BzLiAgKi8K ZGlmZiAtLWdpdCBhL2dkYi90YXJnZXQtZGVsZWdhdGVzLWdlbi5jIGIvZ2RiL3RhcmdldC1kZWxl Z2F0ZXMtZ2VuLmMKaW5kZXggMTY0ZGRiYjlhMmVhMmRhNWZlNGUwMmY3OGMzZmE4MmQ1ZTllYWYx OC4uYTMxMWZmM2RhYTg3ODk1MjRiMThhNTI5ODVjNmUyMDRmNGMwOTBhMCAxMDA2NDQKLS0tIGEv Z2RiL3RhcmdldC1kZWxlZ2F0ZXMtZ2VuLmMKKysrIGIvZ2RiL3RhcmdldC1kZWxlZ2F0ZXMtZ2Vu LmMKQEAgLTE5MCw2ICsxOTAsOCBAQCBzdHJ1Y3QgZHVtbXlfdGFyZ2V0IDogcHVibGljIHRhcmdl dF9vcHMKICAgdm9pZCBjYWxsX2hpc3RvcnlfZnJvbSAoVUxPTkdFU1QgYXJnMCwgaW50IGFyZzEs IHJlY29yZF9wcmludF9mbGFncyBhcmcyKSBvdmVycmlkZTsKICAgdm9pZCBjYWxsX2hpc3Rvcnlf cmFuZ2UgKFVMT05HRVNUIGFyZzAsIFVMT05HRVNUIGFyZzEsIHJlY29yZF9wcmludF9mbGFncyBh cmcyKSBvdmVycmlkZTsKICAgYm9vbCBhdWdtZW50ZWRfbGlicmFyaWVzX3N2cjRfcmVhZCAoKSBv dmVycmlkZTsKKyAgdm9pZCBhY2tfbGlicmFyeSAoY29uc3QgY2hhciAqYXJnMCkgb3ZlcnJpZGU7 CisgIHZvaWQgYWNrX2luX21lbW9yeV9saWJyYXJ5IChDT1JFX0FERFIgYXJnMCwgQ09SRV9BRERS IGFyZzEpIG92ZXJyaWRlOwogICBjb25zdCBzdHJ1Y3QgZnJhbWVfdW53aW5kICpnZXRfdW53aW5k ZXIgKCkgb3ZlcnJpZGU7CiAgIGNvbnN0IHN0cnVjdCBmcmFtZV91bndpbmQgKmdldF90YWlsY2Fs bF91bndpbmRlciAoKSBvdmVycmlkZTsKICAgdm9pZCBwcmVwYXJlX3RvX2dlbmVyYXRlX2NvcmUg KCkgb3ZlcnJpZGU7CkBAIC0zNzEsNiArMzczLDggQEAgc3RydWN0IGRlYnVnX3RhcmdldCA6IHB1 YmxpYyB0YXJnZXRfb3BzCiAgIHZvaWQgY2FsbF9oaXN0b3J5X2Zyb20gKFVMT05HRVNUIGFyZzAs IGludCBhcmcxLCByZWNvcmRfcHJpbnRfZmxhZ3MgYXJnMikgb3ZlcnJpZGU7CiAgIHZvaWQgY2Fs bF9oaXN0b3J5X3JhbmdlIChVTE9OR0VTVCBhcmcwLCBVTE9OR0VTVCBhcmcxLCByZWNvcmRfcHJp bnRfZmxhZ3MgYXJnMikgb3ZlcnJpZGU7CiAgIGJvb2wgYXVnbWVudGVkX2xpYnJhcmllc19zdnI0 X3JlYWQgKCkgb3ZlcnJpZGU7CisgIHZvaWQgYWNrX2xpYnJhcnkgKGNvbnN0IGNoYXIgKmFyZzAp IG92ZXJyaWRlOworICB2b2lkIGFja19pbl9tZW1vcnlfbGlicmFyeSAoQ09SRV9BRERSIGFyZzAs IENPUkVfQUREUiBhcmcxKSBvdmVycmlkZTsKICAgY29uc3Qgc3RydWN0IGZyYW1lX3Vud2luZCAq Z2V0X3Vud2luZGVyICgpIG92ZXJyaWRlOwogICBjb25zdCBzdHJ1Y3QgZnJhbWVfdW53aW5kICpn ZXRfdGFpbGNhbGxfdW53aW5kZXIgKCkgb3ZlcnJpZGU7CiAgIHZvaWQgcHJlcGFyZV90b19nZW5l cmF0ZV9jb3JlICgpIG92ZXJyaWRlOwpAQCAtNDIwMiw2ICs0MjA2LDUyIEBAIGRlYnVnX3Rhcmdl dDo6YXVnbWVudGVkX2xpYnJhcmllc19zdnI0X3JlYWQgKCkKICAgcmV0dXJuIHJlc3VsdDsKIH0K IAordm9pZAordGFyZ2V0X29wczo6YWNrX2xpYnJhcnkgKGNvbnN0IGNoYXIgKmFyZzApCit7Cisg IHRoaXMtPmJlbmVhdGggKCktPmFja19saWJyYXJ5IChhcmcwKTsKK30KKwordm9pZAorZHVtbXlf dGFyZ2V0OjphY2tfbGlicmFyeSAoY29uc3QgY2hhciAqYXJnMCkKK3sKKyAgdGNvbXBsYWluICgp OworfQorCit2b2lkCitkZWJ1Z190YXJnZXQ6OmFja19saWJyYXJ5IChjb25zdCBjaGFyICphcmcw KQoreworICBnZGJfcHJpbnRmIChnZGJfc3RkbG9nLCAiLT4gJXMtPmFja19saWJyYXJ5ICguLi4p XG4iLCB0aGlzLT5iZW5lYXRoICgpLT5zaG9ydG5hbWUgKCkpOworICB0aGlzLT5iZW5lYXRoICgp LT5hY2tfbGlicmFyeSAoYXJnMCk7CisgIGdkYl9wcmludGYgKGdkYl9zdGRsb2csICI8LSAlcy0+ YWNrX2xpYnJhcnkgKCIsIHRoaXMtPmJlbmVhdGggKCktPnNob3J0bmFtZSAoKSk7CisgIHRhcmdl dF9kZWJ1Z19wcmludF9jb25zdF9jaGFyX3AgKGFyZzApOworICBnZGJfcHV0cyAoIilcbiIsIGdk Yl9zdGRsb2cpOworfQorCit2b2lkCit0YXJnZXRfb3BzOjphY2tfaW5fbWVtb3J5X2xpYnJhcnkg KENPUkVfQUREUiBhcmcwLCBDT1JFX0FERFIgYXJnMSkKK3sKKyAgdGhpcy0+YmVuZWF0aCAoKS0+ YWNrX2luX21lbW9yeV9saWJyYXJ5IChhcmcwLCBhcmcxKTsKK30KKwordm9pZAorZHVtbXlfdGFy Z2V0OjphY2tfaW5fbWVtb3J5X2xpYnJhcnkgKENPUkVfQUREUiBhcmcwLCBDT1JFX0FERFIgYXJn MSkKK3sKKyAgdGNvbXBsYWluICgpOworfQorCit2b2lkCitkZWJ1Z190YXJnZXQ6OmFja19pbl9t ZW1vcnlfbGlicmFyeSAoQ09SRV9BRERSIGFyZzAsIENPUkVfQUREUiBhcmcxKQoreworICBnZGJf cHJpbnRmIChnZGJfc3RkbG9nLCAiLT4gJXMtPmFja19pbl9tZW1vcnlfbGlicmFyeSAoLi4uKVxu IiwgdGhpcy0+YmVuZWF0aCAoKS0+c2hvcnRuYW1lICgpKTsKKyAgdGhpcy0+YmVuZWF0aCAoKS0+ YWNrX2luX21lbW9yeV9saWJyYXJ5IChhcmcwLCBhcmcxKTsKKyAgZ2RiX3ByaW50ZiAoZ2RiX3N0 ZGxvZywgIjwtICVzLT5hY2tfaW5fbWVtb3J5X2xpYnJhcnkgKCIsIHRoaXMtPmJlbmVhdGggKCkt PnNob3J0bmFtZSAoKSk7CisgIHRhcmdldF9kZWJ1Z19wcmludF9DT1JFX0FERFIgKGFyZzApOwor ICBnZGJfcHV0cyAoIiwgIiwgZ2RiX3N0ZGxvZyk7CisgIHRhcmdldF9kZWJ1Z19wcmludF9DT1JF X0FERFIgKGFyZzEpOworICBnZGJfcHV0cyAoIilcbiIsIGdkYl9zdGRsb2cpOworfQorCiBjb25z dCBzdHJ1Y3QgZnJhbWVfdW53aW5kICoKIHRhcmdldF9vcHM6OmdldF91bndpbmRlciAoKQogewpk aWZmIC0tZ2l0IGEvZ2RiL3RhcmdldC5jIGIvZ2RiL3RhcmdldC5jCmluZGV4IGY3YzQzZjY5YTI4 ODcyODc1MGI1ZGM4NTYyNjc0MmJjYTAxM2U2OTQuLmMxNDFkZTIyZWY2YjIxMzhiZjZhYTM1N2Qx MjE0ZTljOWFlNDNiYzggMTAwNjQ0Ci0tLSBhL2dkYi90YXJnZXQuYworKysgYi9nZGIvdGFyZ2V0 LmMKQEAgLTQyMzcsNiArNDIzNywyMiBAQCB0YXJnZXRfZG9uZV9nZW5lcmF0aW5nX2NvcmUgKHZv aWQpCiAgIGN1cnJlbnRfaW5mZXJpb3IgKCktPnRvcF90YXJnZXQgKCktPmRvbmVfZ2VuZXJhdGlu Z19jb3JlICgpOwogfQogCisvKiBTZWUgdGFyZ2V0LmguICAqLworCit2b2lkCit0YXJnZXRfYWNr X2xpYnJhcnkgKGNvbnN0IGNoYXIgKm5hbWUpCit7CisgIGN1cnJlbnRfaW5mZXJpb3IgKCktPnRv cF90YXJnZXQgKCktPmFja19saWJyYXJ5IChuYW1lKTsKK30KKworLyogU2VlIHRhcmdldC5oLiAg Ki8KKwordm9pZAordGFyZ2V0X2Fja19pbl9tZW1vcnlfbGlicmFyeSAoQ09SRV9BRERSIGJlZ2lu LCBDT1JFX0FERFIgZW5kKQoreworICBjdXJyZW50X2luZmVyaW9yICgpLT50b3BfdGFyZ2V0ICgp LT5hY2tfaW5fbWVtb3J5X2xpYnJhcnkgKGJlZ2luLCBlbmQpOworfQorCiAMCiAKIHN0YXRpYyBj aGFyIHRhcmdfZGVzY1tdID0KZGlmZiAtLWdpdCBhL2dkYi90YXJnZXQuaCBiL2dkYi90YXJnZXQu aAppbmRleCAzNjVlODk0ZWZlNjkxOGRiOTY1MzIxOGIxNzhjOWEzNjIwNjgyOWIxLi43MDQ3ODgz NGZlNjlmNjcyMGQ5MTk0OWNmZTU3MmU0ZmQ5MDBlZTVmIDEwMDY0NAotLS0gYS9nZGIvdGFyZ2V0 LmgKKysrIGIvZ2RiL3RhcmdldC5oCkBAIC0xMzI0LDYgKzEzMjQsMjEgQEAgc3RydWN0IHRhcmdl dF9vcHMKICAgICB2aXJ0dWFsIGJvb2wgYXVnbWVudGVkX2xpYnJhcmllc19zdnI0X3JlYWQgKCkK ICAgICAgIFRBUkdFVF9ERUZBVUxUX1JFVFVSTiAoZmFsc2UpOwogCisgICAgLyogQWNrbm93bGVk Z2UgYSBsaWJyYXJ5IHJlcG9ydGVkIGJ5IG5hbWUuCisKKyAgICAgICBMaWJyYXJpZXMgYXJlIGFj a25vd2xlZGdlZCBhZnRlciBpbml0aWFsIHByb2Nlc3NpbmcgbGlrZSBsb2FkaW5nCisgICAgICAg c3ltYm9scyBhbmQgcGxhY2luZyBicmVha3BvaW50cyBvbiByZXF1ZXN0IGZyb20gdGhlIHRhcmdl dC4gICovCisgICAgdmlydHVhbCB2b2lkIGFja19saWJyYXJ5IChjb25zdCBjaGFyICpuYW1lKQor ICAgICAgVEFSR0VUX0RFRkFVTFRfTk9SRVRVUk4gKHRjb21wbGFpbiAoKSk7CisKKyAgICAvKiBB Y2tub3dsZWRnZSBhbiBpbi1tZW1vcnkgbGlicmFyeSByZXBvcnRlZCBieSBiZWdpbiBhbmQgZW5k IHRhcmdldAorICAgICAgIGFkZHJlc3Nlcy4KKworICAgICAgIExpYnJhcmllcyBhcmUgYWNrbm93 bGVkZ2VkIGFmdGVyIGluaXRpYWwgcHJvY2Vzc2luZyBsaWtlIGxvYWRpbmcKKyAgICAgICBzeW1i b2xzIGFuZCBwbGFjaW5nIGJyZWFrcG9pbnRzIG9uIHJlcXVlc3QgZnJvbSB0aGUgdGFyZ2V0LiAg Ki8KKyAgICB2aXJ0dWFsIHZvaWQgYWNrX2luX21lbW9yeV9saWJyYXJ5IChDT1JFX0FERFIgYmVn aW4sIENPUkVfQUREUiBlbmQpCisgICAgICBUQVJHRVRfREVGQVVMVF9OT1JFVFVSTiAodGNvbXBs YWluICgpKTsKKwogICAgIC8qIFRob3NlIHVud2luZGVycyBhcmUgdHJpZWQgYmVmb3JlIGFueSBv dGhlciBhcmNoIHVud2luZGVycy4gIElmCiAgICAgICAgU0VMRiBkb2Vzbid0IGhhdmUgdW53aW5k ZXJzLCBpdCBzaG91bGQgZGVsZWdhdGUgdG8gdGhlCiAgICAgICAgImJlbmVhdGgiIHRhcmdldC4g ICovCkBAIC0yNjYwLDQgKzI2NzUsMTAgQEAgZXh0ZXJuIHZvaWQgdGFyZ2V0X3ByZXBhcmVfdG9f Z2VuZXJhdGVfY29yZSAodm9pZCk7CiAvKiBTZWUgdG9fZG9uZV9nZW5lcmF0aW5nX2NvcmUuICAq LwogZXh0ZXJuIHZvaWQgdGFyZ2V0X2RvbmVfZ2VuZXJhdGluZ19jb3JlICh2b2lkKTsKIAorLyog U2VlIHRhcmdldF9vcHM6OmFja19saWJyYXJ5LiAgKi8KK2V4dGVybiB2b2lkIHRhcmdldF9hY2tf bGlicmFyeSAoY29uc3QgY2hhciAqbmFtZSk7CisKKy8qIFNlZSB0YXJnZXRfb3BzOjphY2tfaW5f bWVtb3J5X2xpYnJhcnkuICAqLworZXh0ZXJuIHZvaWQgdGFyZ2V0X2Fja19pbl9tZW1vcnlfbGli cmFyeSAoQ09SRV9BRERSIGJlZ2luLCBDT1JFX0FERFIgZW5kKTsKKwogI2VuZGlmIC8qIEdEQl9U QVJHRVRfSCAqLwpkaWZmIC0tZ2l0IGEvZ2Ric2VydmVyL2RsbC5jYyBiL2dkYnNlcnZlci9kbGwu Y2MKaW5kZXggYzhlN2MwMzAxMmE2ZmQxNjUwYTdmN2E0ODI3Zjc5YjM3MzVkNjI0Yi4uZTZjYjU5 N2NhOTA4NTVlNjkzMmVkNmMyMmMyNjZiYTFmZWZlM2UzMSAxMDA2NDQKLS0tIGEvZ2Ric2VydmVy L2RsbC5jYworKysgYi9nZGJzZXJ2ZXIvZGxsLmNjCkBAIC0yNSwxOCArMjUsMjQgQEAKIC8qIFJl Y29yZCBhIG5ld2x5IGxvYWRlZCBETEwgYXQgQkFTRV9BRERSIGZvciB0aGUgY3VycmVudCBwcm9j ZXNzLiAgKi8KIAogdm9pZAotbG9hZGVkX2RsbCAoY29uc3QgY2hhciAqbmFtZSwgQ09SRV9BRERS IGJhc2VfYWRkcikKK2xvYWRlZF9kbGwgKGNvbnN0IGNoYXIgKm5hbWUsIENPUkVfQUREUiBiYXNl X2FkZHIsIGJvb2wgbmVlZF9hY2spCiB7Ci0gIGxvYWRlZF9kbGwgKGN1cnJlbnRfcHJvY2VzcyAo KSwgbmFtZSwgYmFzZV9hZGRyKTsKKyAgbG9hZGVkX2RsbCAoY3VycmVudF9wcm9jZXNzICgpLCBu YW1lLCBiYXNlX2FkZHIsIG5lZWRfYWNrKTsKIH0KIAogLyogUmVjb3JkIGEgbmV3bHkgbG9hZGVk IERMTCBhdCBCQVNFX0FERFIgZm9yIFBST0MuICAqLwogCiB2b2lkCi1sb2FkZWRfZGxsIChwcm9j ZXNzX2luZm8gKnByb2MsIGNvbnN0IGNoYXIgKm5hbWUsIENPUkVfQUREUiBiYXNlX2FkZHIpCits b2FkZWRfZGxsIChwcm9jZXNzX2luZm8gKnByb2MsIGNvbnN0IGNoYXIgKm5hbWUsIENPUkVfQURE UiBiYXNlX2FkZHIsCisJICAgIGJvb2wgbmVlZF9hY2spCiB7CisgIGlmIChuZWVkX2FjayAmJiAh Z2V0X2NsaWVudF9zdGF0ZSAoKS52YWNrX2xpYnJhcnlfc3VwcG9ydGVkKQorICAgIHRocm93X2Vy cm9yIChOT1RfU1VQUE9SVEVEX0VSUk9SLAorCQkgXygibGlicmFyeSBhY2tub3dsZWRnZW1lbnQg bm90IHN1cHBvcnRlZC4iKSk7CisKICAgZ2RiX2Fzc2VydCAocHJvYyAhPSBudWxscHRyKTsKLSAg cHJvYy0+YWxsX2RsbHMuZW1wbGFjZV9iYWNrIChuYW1lICE9IG51bGxwdHIgPyBuYW1lIDogIiIs IGJhc2VfYWRkcik7CisgIHByb2MtPmFsbF9kbGxzLmVtcGxhY2VfYmFjayAobmFtZSAhPSBudWxs cHRyID8gbmFtZSA6ICIiLCBiYXNlX2FkZHIsCisJCQkgICAgICAgbmVlZF9hY2spOwogICBwcm9j LT5kbGxzX2NoYW5nZWQgPSB0cnVlOwogfQogCkBAIC00NCw4ICs1MCwxNCBAQCBsb2FkZWRfZGxs IChwcm9jZXNzX2luZm8gKnByb2MsIGNvbnN0IGNoYXIgKm5hbWUsIENPUkVfQUREUiBiYXNlX2Fk ZHIpCiAKIHZvaWQKIGxvYWRlZF9kbGwgKHByb2Nlc3NfaW5mbyAqcHJvYywgQ09SRV9BRERSIGJl Z2luLCBDT1JFX0FERFIgZW5kLAotCSAgICBDT1JFX0FERFIgYmFzZV9hZGRyKQorCSAgICBDT1JF X0FERFIgYmFzZV9hZGRyLCBib29sIG5lZWRfYWNrKQogeworICAvKiBJdCBzdWZmaWNlcyB0byBh c3NlcnQgc3VwcG9ydCBmb3Igb24tZGlzayBsaWJyYXJ5IGFja25vd2xlZGdlbWVudCBzaW5jZSB3 ZQorICAgICBjYW4gZmFsbCBiYWNrIHRvIHRoYXQuICAqLworICBpZiAobmVlZF9hY2sgJiYgIWdl dF9jbGllbnRfc3RhdGUgKCkudmFja19saWJyYXJ5X3N1cHBvcnRlZCkKKyAgICB0aHJvd19lcnJv ciAoTk9UX1NVUFBPUlRFRF9FUlJPUiwKKwkJIF8oImxpYnJhcnkgYWNrbm93bGVkZ2VtZW50IG5v dCBzdXBwb3J0ZWQuIikpOworCiAgIGdkYl9hc3NlcnQgKHByb2MgIT0gbnVsbHB0cik7CiAKICAg LyogV2UgZG8gbm90IHN1cHBvcnQgZHVwbGljYXRlIGluLW1lbW9yeSBsaWJyYXJpZXMuICAqLwpA QCAtNjEsNyArNzMsNyBAQCBsb2FkZWRfZGxsIChwcm9jZXNzX2luZm8gKnByb2MsIENPUkVfQURE UiBiZWdpbiwgQ09SRV9BRERSIGVuZCwKICAgICBlcnJvciAoXygiRHVwbGljYXRlIGluLW1lbW9y eSBsaWJyYXJ5OyBiZWdpbjogJXMsIGVuZDogJXMsIGJhc2U6ICVzLiIpLAogCSAgIHBhZGRyZXNz IChiZWdpbiksIHBhZGRyZXNzIChlbmQpLCBwYWRkcmVzcyAoYmFzZV9hZGRyKSk7CiAKLSAgcHJv Yy0+YWxsX2RsbHMuZW1wbGFjZV9iYWNrIChiZWdpbiwgZW5kLCBiYXNlX2FkZHIpOworICBwcm9j LT5hbGxfZGxscy5lbXBsYWNlX2JhY2sgKGJlZ2luLCBlbmQsIGJhc2VfYWRkciwgbmVlZF9hY2sp OwogICBwcm9jLT5kbGxzX2NoYW5nZWQgPSB0cnVlOwogfQogCkBAIC03NCw2ICs4Niw3NCBAQCB1 bmxvYWRlZF9kbGwgKGNvbnN0IGNoYXIgKm5hbWUsIENPUkVfQUREUiBiYXNlX2FkZHIpCiAgIHVu bG9hZGVkX2RsbCAoY3VycmVudF9wcm9jZXNzICgpLCBuYW1lLCBiYXNlX2FkZHIpOwogfQogCitz dGF0aWMgdm9pZAorYWNrX2RsbCAocHJvY2Vzc19pbmZvICpwcm9jZXNzLCBkbGxfaW5mbyAmZGxs KQoreworICBnZGJfYXNzZXJ0IChkbGwubmVlZF9hY2spOworCisgIHN3aXRjaCAoZGxsLmxvY2F0 aW9uKQorICAgIHsKKyAgICBjYXNlIGRsbF9pbmZvOjpvbl9kaXNrOgorICAgICAgLyogQ2hlY2sg aWYgdGhpcyBpcyBhIHRlbXBvcmFyeSBmaWxlIGZvciBhbiBpbi1tZW1vcnkgbGlicmFyeS4gICov CisgICAgICBpZiAoZGxsLmJlZ2luID09IDApCisJeworCSAgdGFyZ2V0X2Fja19saWJyYXJ5IChw cm9jZXNzLCBkbGwubmFtZS5jX3N0ciAoKSk7CisJICBkbGwubmVlZF9hY2sgPSBmYWxzZTsKKwkg IHJldHVybjsKKwl9CisKKyAgICAgIFtbZmFsbHRocm91Z2hdXTsKKyAgICBjYXNlIGRsbF9pbmZv Ojppbl9tZW1vcnk6CisgICAgICB0YXJnZXRfYWNrX2luX21lbW9yeV9saWJyYXJ5IChwcm9jZXNz LCBkbGwuYmVnaW4sIGRsbC5lbmQpOworICAgICAgZGxsLm5lZWRfYWNrID0gZmFsc2U7CisgICAg ICByZXR1cm47CisgICAgfQorCisgIGludGVybmFsX2Vycm9yIChfKCJiYWQgbGlicmFyeSBsb2Nh dGlvbjogJWQuIiksIGRsbC5sb2NhdGlvbik7Cit9CisKK3ZvaWQKK2Fja19kbGwgKHByb2Nlc3Nf aW5mbyAqcHJvYywgY29uc3QgY2hhciAqbmFtZSkKK3sKKyAgc3RkOjpsaXN0PGRsbF9pbmZvPiAm ZGxscyA9IHByb2MtPmFsbF9kbGxzOworICBzdGQ6Omxpc3Q8ZGxsX2luZm8+OjppdGVyYXRvciBp dAorICAgID0gc3RkOjpmaW5kX2lmIChkbGxzLmJlZ2luICgpLCBkbGxzLmVuZCAoKSwKKwkJICAg IFtuYW1lXSAoY29uc3QgZGxsX2luZm8gJmRsbCkKKwl7CisJICByZXR1cm4gKGRsbC5uYW1lID09 IHN0ZDo6c3RyaW5nIChuYW1lKSk7CisJfSk7CisKKyAgaWYgKGl0ICE9IGRsbHMuZW5kICgpKQor ICAgIGFja19kbGwgKHByb2MsICppdCk7Cit9CisKK3ZvaWQKK2Fja19kbGwgKGNvbnN0IGNoYXIg Km5hbWUpCit7CisgIGFja19kbGwgKGN1cnJlbnRfcHJvY2VzcyAoKSwgbmFtZSk7Cit9CisKK3Zv aWQKK2Fja19kbGwgKHByb2Nlc3NfaW5mbyAqcHJvYywgQ09SRV9BRERSIGJlZ2luLCBDT1JFX0FE RFIgZW5kKQoreworICBzdGQ6Omxpc3Q8ZGxsX2luZm8+ICZkbGxzID0gcHJvYy0+YWxsX2RsbHM7 CisgIHN0ZDo6bGlzdDxkbGxfaW5mbz46Oml0ZXJhdG9yIGl0CisgICAgPSBzdGQ6OmZpbmRfaWYg KGRsbHMuYmVnaW4gKCksIGRsbHMuZW5kICgpLAorCQkgICAgW2JlZ2luLCBlbmRdIChjb25zdCBk bGxfaW5mbyAmZGxsKQorCXsKKwkgIHJldHVybiAoKGRsbC5iZWdpbiA9PSBiZWdpbikgJiYgKGRs bC5lbmQgPT0gZW5kKSk7CisJfSk7CisKKyAgaWYgKGl0ICE9IGRsbHMuZW5kICgpKQorICAgIGFj a19kbGwgKHByb2MsICppdCk7Cit9CisKK3ZvaWQKK2Fja19kbGwgKENPUkVfQUREUiBiZWdpbiwg Q09SRV9BRERSIGVuZCkKK3sKKyAgYWNrX2RsbCAoY3VycmVudF9wcm9jZXNzICgpLCBiZWdpbiwg ZW5kKTsKK30KKwogc3RhdGljIHZvaWQKIHVubG9hZF9kbGxfaWYgKHByb2Nlc3NfaW5mbyAqcHJv YywKIAkgICAgICAgc3RkOjpmdW5jdGlvbjxib29sIChjb25zdCBkbGxfaW5mbyAmKT4gcHJlZCkK QEAgLTk1LDYgKzE3NSw4IEBAIHVubG9hZF9kbGxfaWYgKHByb2Nlc3NfaW5mbyAqcHJvYywKICAg ICB7CiAgICAgICAvKiBETEwgaGFzIGJlZW4gZm91bmQgc28gcmVtb3ZlIHRoZSBlbnRyeSBhbmQg ZnJlZSBhc3NvY2lhdGVkCiAJIHJlc291cmNlcy4gICovCisgICAgICBpZiAoaXRlci0+bmVlZF9h Y2spCisJYWNrX2RsbCAocHJvYywgKml0ZXIpOwogICAgICAgcHJvYy0+YWxsX2RsbHMuZXJhc2Ug KGl0ZXIpOwogICAgICAgcHJvYy0+ZGxsc19jaGFuZ2VkID0gdHJ1ZTsKICAgICB9CmRpZmYgLS1n aXQgYS9nZGJzZXJ2ZXIvZGxsLmggYi9nZGJzZXJ2ZXIvZGxsLmgKaW5kZXggYTNhZjg2ZGQ2MTIy ZmY4YjhjNDdhMzM1ODkwZjU0YTkwNmY2ZDViZS4uOGRkZDMyM2FhMjI4ZmEwMmIxOTI1ZTg3MTMx M2IwN2MzZDFiM2FhNSAxMDA2NDQKLS0tIGEvZ2Ric2VydmVyL2RsbC5oCisrKyBiL2dkYnNlcnZl ci9kbGwuaApAQCAtMzEsMTIgKzMxLDE1IEBAIHN0cnVjdCBkbGxfaW5mbwogICAgIGluX21lbW9y eQogICB9OwogCi0gIGRsbF9pbmZvIChjb25zdCBzdGQ6OnN0cmluZyAmbmFtZV8sIENPUkVfQURE UiBiYXNlX2FkZHJfKQotICAgIDogbG9jYXRpb24gKG9uX2Rpc2spLCBuYW1lIChuYW1lXyksIGJh c2VfYWRkciAoYmFzZV9hZGRyXykKKyAgZGxsX2luZm8gKGNvbnN0IHN0ZDo6c3RyaW5nICZuYW1l XywgQ09SRV9BRERSIGJhc2VfYWRkcl8sIGJvb2wgbmVlZF9hY2tfKQorICAgIDogbG9jYXRpb24g KG9uX2Rpc2spLCBuYW1lIChuYW1lXyksIGJlZ2luICgwKSwgZW5kICgwKSwKKyAgICAgIGJhc2Vf YWRkciAoYmFzZV9hZGRyXyksIG5lZWRfYWNrIChuZWVkX2Fja18pCiAgIHt9CiAKLSAgZGxsX2lu Zm8gKENPUkVfQUREUiBiZWdpbl8sIENPUkVfQUREUiBlbmRfLCBDT1JFX0FERFIgYmFzZV9hZGRy XykKLSAgICA6IGxvY2F0aW9uIChpbl9tZW1vcnkpLCBiZWdpbiAoYmVnaW5fKSwgZW5kIChlbmRf KSwgYmFzZV9hZGRyIChiYXNlX2FkZHJfKQorICBkbGxfaW5mbyAoQ09SRV9BRERSIGJlZ2luXywg Q09SRV9BRERSIGVuZF8sIENPUkVfQUREUiBiYXNlX2FkZHJfLAorCSAgICBib29sIG5lZWRfYWNr XykKKyAgICA6IGxvY2F0aW9uIChpbl9tZW1vcnkpLCBiZWdpbiAoYmVnaW5fKSwgZW5kIChlbmRf KSwgYmFzZV9hZGRyIChiYXNlX2FkZHJfKSwKKyAgICAgIG5lZWRfYWNrIChuZWVkX2Fja18pCiAg IHt9CiAKICAgLyogV2hlcmUgdGhlIGxpYnJhcnkgYml0cyBhcmUgc3RvcmVkLiAgKi8KQEAgLTU4 LDE3ICs2MSwyOCBAQCBzdHJ1Y3QgZGxsX2luZm8KIAogICAvKiBUaGUgYmFzZSBhZGRyZXNzIGF0 IHdoaWNoIHRoZSBsaWJyYXJ5IGlzIGxvYWRlZC4gICovCiAgIENPUkVfQUREUiBiYXNlX2FkZHI7 CisKKyAgLyogV2hldGhlciB3ZSBuZWVkIHRvIGFja25vd2xlZGdlIHRoYXQgd2UgcHJvY2Vzc2Vk IHRoZSBsaWJyYXJ5IGV2ZW50LAorICAgICBlLmcuIHRoYXQgd2UgaW5zZXJ0ZWQgcGVuZGluZyBi cmVha3BvaW50cy4gICovCisgIGJvb2wgbmVlZF9hY2s7CiB9OwogCi1leHRlcm4gdm9pZCBsb2Fk ZWRfZGxsIChjb25zdCBjaGFyICpuYW1lLCBDT1JFX0FERFIgYmFzZV9hZGRyKTsKKy8qIFRocm93 cyBOT1RfU1VQUE9SVEVEX0VSUk9SIGlmIGxpYnJhcnkgYWNrbm93bGVkZ2VtZW50IGlzIHJlcXVl c3RlZAorICAoTkVFRF9BQ0sgPSBUUlVFKSBhbmQgbm90IHN1cHBvcnRlZC4gICovCitleHRlcm4g dm9pZCBsb2FkZWRfZGxsIChjb25zdCBjaGFyICpuYW1lLCBDT1JFX0FERFIgYmFzZV9hZGRyLAor CQkJYm9vbCBuZWVkX2FjayA9IGZhbHNlKTsKIGV4dGVybiB2b2lkIGxvYWRlZF9kbGwgKHByb2Nl c3NfaW5mbyAqcHJvYywgY29uc3QgY2hhciAqbmFtZSwKLQkJCUNPUkVfQUREUiBiYXNlX2FkZHIp OworCQkJQ09SRV9BRERSIGJhc2VfYWRkciwgYm9vbCBuZWVkX2FjayA9IGZhbHNlKTsKIGV4dGVy biB2b2lkIGxvYWRlZF9kbGwgKHByb2Nlc3NfaW5mbyAqcHJvYywgQ09SRV9BRERSIGJlZ2luLCBD T1JFX0FERFIgZW5kLAotCQkJQ09SRV9BRERSIGJhc2VfYWRkcik7CisJCQlDT1JFX0FERFIgYmFz ZV9hZGRyLCBib29sIG5lZWRfYWNrID0gZmFsc2UpOwogZXh0ZXJuIHZvaWQgdW5sb2FkZWRfZGxs IChjb25zdCBjaGFyICpuYW1lLCBDT1JFX0FERFIgYmFzZV9hZGRyKTsKIGV4dGVybiB2b2lkIHVu bG9hZGVkX2RsbCAocHJvY2Vzc19pbmZvICpwcm9jLCBjb25zdCBjaGFyICpuYW1lLAogCQkJICBD T1JFX0FERFIgYmFzZV9hZGRyKTsKIGV4dGVybiB2b2lkIHVubG9hZGVkX2RsbCAocHJvY2Vzc19p bmZvICpwcm9jLCBDT1JFX0FERFIgYmVnaW4sIENPUkVfQUREUiBlbmQsCiAJCQkgIENPUkVfQURE UiBiYXNlX2FkZHIpOworZXh0ZXJuIHZvaWQgYWNrX2RsbCAoY29uc3QgY2hhciAqbmFtZSk7Citl eHRlcm4gdm9pZCBhY2tfZGxsIChwcm9jZXNzX2luZm8gKnByb2MsIGNvbnN0IGNoYXIgKm5hbWUp OworZXh0ZXJuIHZvaWQgYWNrX2RsbCAoQ09SRV9BRERSIGJlZ2luLCBDT1JFX0FERFIgZW5kKTsK K2V4dGVybiB2b2lkIGFja19kbGwgKHByb2Nlc3NfaW5mbyAqcHJvYywgQ09SRV9BRERSIGJlZ2lu LCBDT1JFX0FERFIgZW5kKTsKIAogI2VuZGlmIC8qIEdEQlNFUlZFUl9ETExfSCAqLwpkaWZmIC0t Z2l0IGEvZ2Ric2VydmVyL3NlcnZlci5jYyBiL2dkYnNlcnZlci9zZXJ2ZXIuY2MKaW5kZXggYWE2 OTVmMmYyZjgwNjg2ZWE2ZGMyYWUzYWUxYmZkN2MwODEwNjdiZi4uMTk5M2E1NmZhNzhkYzRiNmRj ZDcwYmViMGMxYmVjZGRmMzRmZjkzMyAxMDA2NDQKLS0tIGEvZ2Ric2VydmVyL3NlcnZlci5jYwor KysgYi9nZGJzZXJ2ZXIvc2VydmVyLmNjCkBAIC0xOTQ0LDE4ICsxOTQ0LDIyIEBAIGRsbF90b190 bXBmaWxlIChkbGxfaW5mbyAmZGxsKQogc3RhdGljIHN0ZDo6c3RyaW5nCiBwcmludF9xeGZlcl9s aWJyYXJpZXNfZW50cnkgKGRsbF9pbmZvICZkbGwpCiB7CisgIGNvbnN0IGNsaWVudF9zdGF0ZSAm Y3MgPSBnZXRfY2xpZW50X3N0YXRlICgpOworCiAgIHN3aXRjaCAoZGxsLmxvY2F0aW9uKQogICAg IHsKICAgICBjYXNlIGRsbF9pbmZvOjppbl9tZW1vcnk6Ci0gICAgICBpZiAoZ2V0X2NsaWVudF9z dGF0ZSAoKS5pbl9tZW1vcnlfbGlicmFyeV9zdXBwb3J0ZWQpCisgICAgICBpZiAoY3MuaW5fbWVt b3J5X2xpYnJhcnlfc3VwcG9ydGVkCisJICAmJiAoIWRsbC5uZWVkX2FjayB8fCBjcy52YWNrX2lu X21lbW9yeV9saWJyYXJ5X3N1cHBvcnRlZCkpCiAJcmV0dXJuIHN0cmluZ19wcmludGYKLQkgICgi ICA8aW4tbWVtb3J5LWxpYnJhcnkgYmVnaW49XCIweCVzXCIgZW5kPVwiMHglc1wiPiIKKwkgICgi ICA8aW4tbWVtb3J5LWxpYnJhcnkgYmVnaW49XCIweCVzXCIgZW5kPVwiMHglc1wiJXM+IgogCSAg ICI8c2VnbWVudCBhZGRyZXNzPVwiMHglc1wiLz48L2luLW1lbW9yeS1saWJyYXJ5PlxuIiwKIAkg ICBwYWRkcmVzcyAoZGxsLmJlZ2luKSwgcGFkZHJlc3MgKGRsbC5lbmQpLAotCSAgIHBhZGRyZXNz IChkbGwuYmFzZV9hZGRyKSk7CisJICAgZGxsLm5lZWRfYWNrID8gIiBhY2s9XCJ5ZXNcIiIgOiAi IiwgcGFkZHJlc3MgKGRsbC5iYXNlX2FkZHIpKTsKIAotICAgICAgLyogR0RCIGRvZXMgbm90IHN1 cHBvcnQgaW4tbWVtb3J5LWxpYnJhcnkuICBGYWxsIGJhY2sgdG8gc3RvcmluZyBpdCBpbiBhCi0J IHRlbXBvcmFyeSBmaWxlIGFuZCByZXBvcnQgdGhhdCBmaWxlIHRvIEdEQi4gICovCisgICAgICAv KiBHREIgZG9lcyBub3Qgc3VwcG9ydCBpbi1tZW1vcnktbGlicmFyeSBvciBhY2tub3dsZWRnaW5n CisJIGluLW1lbW9yeSBsaWJyYXJpZXMuICBGYWxsIGJhY2sgdG8gc3RvcmluZyBpdCBpbiBhIHRl bXBvcmFyeQorCSBmaWxlIGFuZCByZXBvcnQgdGhhdCBmaWxlIHRvIEdEQi4gICovCiAgICAgICB0 cnkKIAl7CiAJICBkbGxfdG9fdG1wZmlsZSAoZGxsKTsKQEAgLTE5NjgsOSArMTk3MiwxMyBAQCBw cmludF9xeGZlcl9saWJyYXJpZXNfZW50cnkgKGRsbF9pbmZvICZkbGwpCiAKICAgICAgIFtbZmFs bHRocm91Z2hdXTsKICAgICBjYXNlIGRsbF9pbmZvOjpvbl9kaXNrOgorICAgICAgLyogV2UgY2hl Y2tlZCB0aGlzIHdoZW4gcmVxdWVzdGluZyBhY2tub3dsZWRnZW1lbnQgZm9yIERMTC4gICovCisg ICAgICBnZGJfYXNzZXJ0ICghZGxsLm5lZWRfYWNrIHx8IGNzLnZhY2tfbGlicmFyeV9zdXBwb3J0 ZWQpOworCiAgICAgICByZXR1cm4gc3RyaW5nX3ByaW50ZgotCSgiICA8bGlicmFyeSBuYW1lPVwi JXNcIj48c2VnbWVudCBhZGRyZXNzPVwiMHglc1wiLz48L2xpYnJhcnk+XG4iLAotCSBkbGwubmFt ZS5jX3N0ciAoKSwgcGFkZHJlc3MgKGRsbC5iYXNlX2FkZHIpKTsKKwkoIiAgPGxpYnJhcnkgbmFt ZT1cIiVzXCIlcz48c2VnbWVudCBhZGRyZXNzPVwiMHglc1wiLz48L2xpYnJhcnk+XG4iLAorCSBk bGwubmFtZS5jX3N0ciAoKSwgZGxsLm5lZWRfYWNrID8gIiBhY2s9XCJ5ZXNcIiIgOiAiIiwKKwkg cGFkZHJlc3MgKGRsbC5iYXNlX2FkZHIpKTsKICAgICB9CiAKICAgZ2RiX2Fzc2VydF9ub3RfcmVh Y2hlZCAoInVua25vd24gZGxsIGxvY2F0aW9uOiAleCIsIGRsbC5sb2NhdGlvbik7CkBAIC0yMDAy LDYgKzIwMTAsMTggQEAgbGlicmFyeV9saXN0X3ZlcnNpb25fbmVlZGVkIChjb25zdCBzdGQ6Omxp c3Q8ZGxsX2luZm8+ICZkbGxzKQogCSAgICB9CiAJICBicmVhazsKIAl9CisKKyAgICAgIGlmIChk bGwubmVlZF9hY2spCisJeworCSAgLyogV2UgY2hlY2tlZCBzdXBwb3J0IGZvciBhY2tub3dsZWRn ZW1lbnQgd2hlbiB3ZSBpbnNlcnRlZCBETEwuCisKKwkgICAgIEl0IHN1ZmZpY2VzIHRvIGFzc2Vy dCBzdXBwb3J0IGZvciBvbi1kaXNrIGxpYnJhcnkgYWNrbm93bGVkZ2VtZW50CisJICAgICBzaW5j ZSB3ZSBjYW4gZmFsbCBiYWNrIHRvIHRoYXQuICAqLworCSAgZ2RiX2Fzc2VydCAoIWRsbC5uZWVk X2FjayB8fCBjcy52YWNrX2xpYnJhcnlfc3VwcG9ydGVkKTsKKworCSAgbWFqb3IgPSBzdGQ6Om1h eCAobWFqb3IsIDEpOworCSAgbWlub3IgPSBzdGQ6Om1heCAobWlub3IsIDIpOworCX0KICAgICB9 CiAKICAgcmV0dXJuIHN0ZDo6dG9fc3RyaW5nIChtYWpvcikgKyBzdGQ6OnN0cmluZyAoIi4iKSAr IHN0ZDo6dG9fc3RyaW5nIChtaW5vcik7CkBAIC0yODY2LDYgKzI4ODYsMTAgQEAgaGFuZGxlX3F1 ZXJ5IChjaGFyICpvd25fYnVmLCBpbnQgcGFja2V0X2xlbiwgaW50ICpuZXdfcGFja2V0X2xlbl9w KQogCQljcy5lcnJvcl9tZXNzYWdlX3N1cHBvcnRlZCA9IHRydWU7CiAJICAgICAgZWxzZSBpZiAo ZmVhdHVyZSA9PSAicVhmZXI6bGlicmFyaWVzOnJlYWQ6aW4tbWVtb3J5LWxpYnJhcnkrIikKIAkJ Y3MuaW5fbWVtb3J5X2xpYnJhcnlfc3VwcG9ydGVkID0gdHJ1ZTsKKwkgICAgICBlbHNlIGlmIChm ZWF0dXJlID09ICJ2QWNrOmxpYnJhcnkrIikKKwkJY3MudmFja19saWJyYXJ5X3N1cHBvcnRlZCA9 IHRydWU7CisJICAgICAgZWxzZSBpZiAoZmVhdHVyZSA9PSAidkFjazppbi1tZW1vcnktbGlicmFy eSsiKQorCQljcy52YWNrX2luX21lbW9yeV9saWJyYXJ5X3N1cHBvcnRlZCA9IHRydWU7CiAJICAg ICAgZWxzZQogCQl7CiAJCSAgLyogTW92ZSB0aGUgdW5rbm93biBmZWF0dXJlcyBhbGwgdG9nZXRo ZXIuICAqLwpAQCAtMjk5NCw2ICszMDE4LDkgQEAgaGFuZGxlX3F1ZXJ5IChjaGFyICpvd25fYnVm LCBpbnQgcGFja2V0X2xlbiwgaW50ICpuZXdfcGFja2V0X2xlbl9wKQogICAgICAgaWYgKHRhcmdl dF9zdXBwb3J0c19tZW1vcnlfdGFnZ2luZyAoKSkKIAlzdHJjYXQgKG93bl9idWYsICI7bWVtb3J5 LXRhZ2dpbmcrIik7CiAKKyAgICAgIHN0cmNhdCAob3duX2J1ZiwgIjt2QWNrOmxpYnJhcnkrIik7 CisgICAgICBzdHJjYXQgKG93bl9idWYsICI7dkFjazppbi1tZW1vcnktbGlicmFyeSsiKTsKKwog ICAgICAgLyogUmVpbml0aWFsaXplIGNvbXBvbmVudHMgYXMgbmVlZGVkIGZvciB0aGUgbmV3IGNv bm5lY3Rpb24uICAqLwogICAgICAgaG9zdGlvX2hhbmRsZV9uZXdfZ2RiX2Nvbm5lY3Rpb24gKCk7 CiAgICAgICB0YXJnZXRfaGFuZGxlX25ld19nZGJfY29ubmVjdGlvbiAoKTsKQEAgLTMzODEsNiAr MzQwOCwxMDAgQEAgZXJyOgogICByZXR1cm47CiB9CiAKKy8qIFBhcnNlIHZBY2sgcGFja2V0cy4g ICovCisKK3N0YXRpYyB2b2lkCitoYW5kbGVfdl9hY2sgKGNoYXIgKm93bl9idWYpCit7CisgIGNs aWVudF9zdGF0ZSAmY3MgPSBnZXRfY2xpZW50X3N0YXRlICgpOworICBjb25zdCBjaGFyICpsaWJz dHIgPSAibGlicmFyeToiOworICBjb25zdCBjaGFyICppbWxpYnN0ciA9ICJpbi1tZW1vcnktbGli cmFyeToiOworCisgIC8qIE1vdmUgcGFzdCB2QWNrOiB0byB0aGUgZmlyc3QgdHlwZSBzdHJpbmcu ICAqLworICBjaGFyICpwID0gJm93bl9idWZbNV07CisgIGRvCisgICAgeworICAgICAgaWYgKHN0 cm5jbXAgKHAsIGxpYnN0ciwgc3RybGVuIChsaWJzdHIpKSA9PSAwKQorCXsKKwkgIGlmICghY3Mu dmFja19saWJyYXJ5X3N1cHBvcnRlZCkKKwkgICAgeworCSAgICAgIHNwcmludGYgKG93bl9idWYs CisJCSAgICAgICAiRS52QWNrOmxpYnJhcnkgcGFja2V0IG5vdCBzdXBwb3J0ZWQuIik7CisJICAg ICAgcmV0dXJuOworCSAgICB9CisKKwkgIHAgKz0gc3RybGVuIChsaWJzdHIpOworCisJICAvKiBX ZSBleHBlY3QgYSBzaW5nbGUgYXJndW1lbnQ6IHRoZSBmaWxlbmFtZS4gICovCisJICBjb25zdCBj aGFyICpoZXggPSBwOworCisJICBwID0gc3RyY2hyIChwLCAnOycpOworCSAgaWYgKHAgPT0gaGV4 KQorCSAgICB7CisJICAgICAgc3ByaW50ZiAob3duX2J1ZiwgIkUubWlzc2luZyBhcmd1bWVudCBp biB2QWNrOmxpYnJhcnkuIik7CisJICAgICAgcmV0dXJuOworCSAgICB9CisKKwkgIGlmIChwICE9 IG51bGxwdHIpCisJICAgICpwKysgPSAnXDAnOworCisJICBzdGQ6OnN0cmluZyBuYW1lID0gaGV4 MnN0ciAoaGV4KTsKKwkgIGlmIChzdHJsZW4gKGhleCkgPCAobmFtZS5zaXplICgpICogMikpCisJ ICAgIHsKKwkgICAgICBzcHJpbnRmIChvd25fYnVmLCAiRS5mYWlsZWQgdG8gY29udmVydCBsaWJy YXJ5IG5hbWUgJyVzJyBpbiAiCisJCSAgICAgICAidkFjazpsaWJyYXJ5LiIsIGhleCk7CisJICAg ICAgcmV0dXJuOworCSAgICB9CisKKwkgIGFja19kbGwgKG5hbWUuY19zdHIgKCkpOworCX0KKyAg ICAgIGVsc2UgaWYgKHN0cm5jbXAgKHAsIGltbGlic3RyLCBzdHJsZW4gKGltbGlic3RyKSkgPT0g MCkKKwl7CisJICBpZiAoIWNzLnZhY2tfaW5fbWVtb3J5X2xpYnJhcnlfc3VwcG9ydGVkKQorCSAg ICB7CisJICAgICAgc3ByaW50ZiAob3duX2J1ZiwKKwkJICAgICAgICJFLnZBY2s6aW4tbWVtb3J5 LWxpYnJhcnkgcGFja2V0IG5vdCBzdXBwb3J0ZWQuIik7CisJICAgICAgcmV0dXJuOworCSAgICB9 CisKKwkgIHAgKz0gc3RybGVuIChpbWxpYnN0cik7CisKKwkgIC8qIFdlIGV4cGVjdCB0d28gYXJn dW1lbnRzOiBiZWdpbiBhbmQgZW5kIGFkZHJlc3MuICAqLworCSAgQ09SRV9BRERSIGJlZ2luLCBl bmQ7CisKKwkgIGJlZ2luID0gKENPUkVfQUREUikgc3RydG91bGwgKHAsICZwLCAxNik7CisJICBp ZiAoKCpwID09IDApIHx8ICgqcCA9PSAnOycpKQorCSAgICB7CisJICAgICAgc3ByaW50ZiAob3du X2J1ZiwKKwkJICAgICAgICJFLm1pc3NpbmcgYXJndW1lbnQgaW4gdkFjazppbi1tZW1vcnktbGli cmFyeS4iKTsKKwkgICAgICByZXR1cm47CisJICAgIH0KKworCSAgaWYgKCpwICE9ICcsJykKKwkg ICAgYnJlYWs7CisKKwkgIGVuZCA9IChDT1JFX0FERFIpIHN0cnRvdWxsIChwKzEsICZwLCAxNik7 CisJICBpZiAoKnAgPT0gJzsnKQorCSAgICBwICs9IDE7CisJICBlbHNlIGlmICgqcCAhPSAwKQor CSAgICBicmVhazsKKworCSAgYWNrX2RsbCAoYmVnaW4sIGVuZCk7CisJfQorICAgICAgZWxzZQor CWJyZWFrOworICAgIH0KKyAgd2hpbGUgKHAgIT0gbnVsbHB0ciAmJiAqcCAhPSAwKTsKKworICBp ZiAocCA9PSBudWxscHRyIHx8ICpwID09IDApCisgICAgd3JpdGVfb2sgKG93bl9idWYpOworICBl bHNlCisgICAgeworICAgICAgc3RkOjpzdHJpbmcganVuayB7IHAgfTsKKyAgICAgIHNwcmludGYg KG93bl9idWYsICJFLmp1bmsgaW4gdkFjazogJyVzJy4iLCBqdW5rLmNfc3RyICgpKTsKKyAgICB9 Cit9CisKIC8qIFJlc3VtZSB0YXJnZXQgd2l0aCBBQ1RJT05TLCBhbiBhcnJheSBvZiBOVU1fQUNU SU9OUyBlbGVtZW50cy4gICovCiAKIHN0YXRpYyB2b2lkCkBAIC0zNzIzLDYgKzM4NDQsMTIgQEAg aGFuZGxlX3ZfcmVxdWVzdHMgKGNoYXIgKm93bl9idWYsIGludCBwYWNrZXRfbGVuLCBpbnQgKm5l d19wYWNrZXRfbGVuKQogICAgICAgcmV0dXJuOwogICAgIH0KIAorICBpZiAoc3RhcnRzd2l0aCAo b3duX2J1ZiwgInZBY2s6IikpCisgICAgeworICAgICAgaGFuZGxlX3ZfYWNrIChvd25fYnVmKTsK KyAgICAgIHJldHVybjsKKyAgICB9CisKICAgaWYgKGhhbmRsZV9ub3RpZl9hY2sgKG93bl9idWYs IHBhY2tldF9sZW4pKQogICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvZ2Ric2VydmVyL3NlcnZl ci5oIGIvZ2Ric2VydmVyL3NlcnZlci5oCmluZGV4IGViYjU5ODBmNzBkZDc3OGFiZmFhZGUxMDg2 YjRiODlhNTI5YjQyOTguLjU1NTI1ODhjOTQ3YTUyMmIzYWFhMzE0MDE1MzUyZDdlM2Q3NWM4Yjkg MTAwNjQ0Ci0tLSBhL2dkYnNlcnZlci9zZXJ2ZXIuaAorKysgYi9nZGJzZXJ2ZXIvc2VydmVyLmgK QEAgLTE5OSw2ICsxOTksMTAgQEAgc3RydWN0IGNsaWVudF9zdGF0ZQogCiAgIC8qIFRydWUgaWYg cVhmZXI6bGlicmFyaWVzOnJlYWQgc3VwcG9ydHMgaW4tbWVtb3J5LWxpYnJhcnkuICAqLwogICBi b29sIGluX21lbW9yeV9saWJyYXJ5X3N1cHBvcnRlZCA9IGZhbHNlOworCisgIC8qIFRyYWNrIHN1 cHBvcnRlZCBwYWNrZXRzLiAgKi8KKyAgYm9vbCB2YWNrX2xpYnJhcnlfc3VwcG9ydGVkID0gZmFs c2U7CisgIGJvb2wgdmFja19pbl9tZW1vcnlfbGlicmFyeV9zdXBwb3J0ZWQgPSBmYWxzZTsKIH07 CiAKIGNsaWVudF9zdGF0ZSAmZ2V0X2NsaWVudF9zdGF0ZSAoKTsKZGlmZiAtLWdpdCBhL2dkYnNl cnZlci90YXJnZXQuY2MgYi9nZGJzZXJ2ZXIvdGFyZ2V0LmNjCmluZGV4IGM0MDAxNzRjNDdjZmQw ZTJhZDIxOGZiY2Q5NWFiZmQ1YjQ2OGJlNjAuLjY1MzA4Yjc4NDk3Y2QyMzUxNjViN2UxMzY4NDgw YmI0YjA2NDRmMjYgMTAwNjQ0Ci0tLSBhL2dkYnNlcnZlci90YXJnZXQuY2MKKysrIGIvZ2Ric2Vy dmVyL3RhcmdldC5jYwpAQCAtNDQxLDYgKzQ0MSwyMCBAQCBwcm9jZXNzX3N0cmF0dW1fdGFyZ2V0 OjpzdG9yZV9tZW10YWdzIChDT1JFX0FERFIgYWRkcmVzcywgc2l6ZV90IGxlbiwKICAgZ2RiX2Fz c2VydF9ub3RfcmVhY2hlZCAoInRhcmdldCBvcCBzdG9yZV9tZW10YWdzIG5vdCBzdXBwb3J0ZWQi KTsKIH0KIAordm9pZAorcHJvY2Vzc19zdHJhdHVtX3RhcmdldDo6YWNrX2xpYnJhcnkgKHByb2Nl c3NfaW5mbyAqcHJvY2VzcywgY29uc3QgY2hhciAqbmFtZSkKK3sKKyAgZ2RiX2Fzc2VydF9ub3Rf cmVhY2hlZCAoInRhcmdldCBvcCBhY2tfbGlicmFyeSBub3Qgc3VwcG9ydGVkIik7Cit9CisKK3Zv aWQKK3Byb2Nlc3Nfc3RyYXR1bV90YXJnZXQ6OmFja19pbl9tZW1vcnlfbGlicmFyeSAocHJvY2Vz c19pbmZvICpwcm9jZXNzLAorCQkJCQkgICAgICAgQ09SRV9BRERSIGJlZ2luLAorCQkJCQkgICAg ICAgQ09SRV9BRERSIGVuZCkKK3sKKyAgZ2RiX2Fzc2VydF9ub3RfcmVhY2hlZCAoInRhcmdldCBv cCBhY2tfaW5fbWVtb3J5X2xpYnJhcnkgbm90IHN1cHBvcnRlZCIpOworfQorCiBpbnQKIHByb2Nl c3Nfc3RyYXR1bV90YXJnZXQ6OnJlYWRfb2Zmc2V0cyAoQ09SRV9BRERSICp0ZXh0LCBDT1JFX0FE RFIgKmRhdGEpCiB7CmRpZmYgLS1naXQgYS9nZGJzZXJ2ZXIvdGFyZ2V0LmggYi9nZGJzZXJ2ZXIv dGFyZ2V0LmgKaW5kZXggNjZjYTcyZmVjMTdlZjE2YjVhYTA5NGMwNjBiNjE3ODEzNTkwYjZmZC4u YTk4ZGQzMzY3NmRjMjE1NmY5NGEwOGY5MzE3N2FjZTNhMGQ1MTUzZCAxMDA2NDQKLS0tIGEvZ2Ri c2VydmVyL3RhcmdldC5oCisrKyBiL2dkYnNlcnZlci90YXJnZXQuaApAQCAtNTMwLDYgKzUzMCwx MyBAQCBjbGFzcyBwcm9jZXNzX3N0cmF0dW1fdGFyZ2V0CiAgICAgIFJldHVybnMgdHJ1ZSBpZiBz dWNjZXNzZnVsIGFuZCBmYWxzZSBvdGhlcndpc2UuICAqLwogICB2aXJ0dWFsIGJvb2wgc3RvcmVf bWVtdGFncyAoQ09SRV9BRERSIGFkZHJlc3MsIHNpemVfdCBsZW4sCiAJCQkgICAgICBjb25zdCBn ZGI6OmJ5dGVfdmVjdG9yICZ0YWdzLCBpbnQgdHlwZSk7CisKKyAgLyogQWNrbm93bGVkZ2UgYSBs aWJyYXJ5IHJlcG9ydGVkIGJ5IG5hbWUuICAqLworICB2aXJ0dWFsIHZvaWQgYWNrX2xpYnJhcnkg KHByb2Nlc3NfaW5mbyAqcHJvY2VzcywgY29uc3QgY2hhciAqbmFtZSk7CisKKyAgLyogQWNrbm93 bGVkZ2UgYW4gaW4tbWVtb3J5IGxpYnJhcnkgcmVwb3J0ZWQgYnkgYWRkcmVzcy4gICovCisgIHZp cnR1YWwgdm9pZCBhY2tfaW5fbWVtb3J5X2xpYnJhcnkgKHByb2Nlc3NfaW5mbyAqcHJvY2Vzcywg Q09SRV9BRERSIGJlZ2luLAorCQkJCSAgICAgIENPUkVfQUREUiBlbmQpOwogfTsKIAogZXh0ZXJu IHByb2Nlc3Nfc3RyYXR1bV90YXJnZXQgKnRoZV90YXJnZXQ7CkBAIC03MjcsNiArNzM0LDE5IEBA IHRhcmdldF90aHJlYWRfcGVuZGluZ19jaGlsZCAodGhyZWFkX2luZm8gKnRocmVhZCwgdGFyZ2V0 X3dhaXRraW5kICpraW5kKQogICByZXR1cm4gdGhlX3RhcmdldC0+dGhyZWFkX3BlbmRpbmdfY2hp bGQgKHRocmVhZCwga2luZCk7CiB9CiAKK3N0YXRpYyBpbmxpbmUgdm9pZAordGFyZ2V0X2Fja19s aWJyYXJ5IChwcm9jZXNzX2luZm8gKnByb2Nlc3MsIGNvbnN0IGNoYXIgKm5hbWUpCit7CisgIHRo ZV90YXJnZXQtPmFja19saWJyYXJ5IChwcm9jZXNzLCBuYW1lKTsKK30KKworc3RhdGljIGlubGlu ZSB2b2lkCit0YXJnZXRfYWNrX2luX21lbW9yeV9saWJyYXJ5IChwcm9jZXNzX2luZm8gKnByb2Nl c3MsICBDT1JFX0FERFIgYmVnaW4sCisJCQkgICAgICBDT1JFX0FERFIgZW5kKQoreworICB0aGVf dGFyZ2V0LT5hY2tfaW5fbWVtb3J5X2xpYnJhcnkgKHByb2Nlc3MsIGJlZ2luLCBlbmQpOworfQor CiAvKiBSZWFkIExFTiBieXRlcyBmcm9tIE1FTUFERFIgaW4gdGhlIGJ1ZmZlciBNWUFERFIuICBS ZXR1cm4gMCBpZiB0aGUgcmVhZAogICAgaXMgc3VjY2Vzc2Z1bCwgb3RoZXJ3aXNlLCByZXR1cm4g YSBub24temVybyBlcnJvciBjb2RlLiAgKi8KIAoKLS0gCjIuMzQuMQoKSW50ZWwgRGV1dHNjaGxh bmQgR21iSA0KUmVnaXN0ZXJlZCBBZGRyZXNzOiBBbSBDYW1wZW9uIDEwLCA4NTU3OSBOZXViaWJl cmcsIEdlcm1hbnkNClRlbDogKzQ5IDg5IDk5IDg4NTMtMCwgd3d3LmludGVsLmRlDQpNYW5hZ2lu ZyBEaXJlY3RvcnM6IFNlYW4gRmVubmVsbHksIEplZmZyZXkgU2NobmVpZGVybWFuLCBUaWZmYW55 IERvb24gU2lsdmENCkNoYWlycGVyc29uIG9mIHRoZSBTdXBlcnZpc29yeSBCb2FyZDogTmljb2xl IExhdQ0KUmVnaXN0ZXJlZCBPZmZpY2U6IE11bmljaA0KQ29tbWVyY2lhbCBSZWdpc3RlcjogQW10 c2dlcmljaHQgTXVlbmNoZW4gSFJCIDE4NjkyOAo=