Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1purqd-00076F-09 for pgsql-hackers@arkaria.postgresql.org; Fri, 05 May 2023 09:35:31 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1purqb-0007I2-Uw for pgsql-hackers@arkaria.postgresql.org; Fri, 05 May 2023 09:35:29 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pur3k-00074I-Gw for pgsql-hackers@lists.postgresql.org; Fri, 05 May 2023 08:45:00 +0000 Received: from mail-m121164.qiye.163.com ([115.236.121.164]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1pur3a-000dw2-Re for pgsql-hackers@postgresql.org; Fri, 05 May 2023 08:44:58 +0000 Received: from hashdata.cn (localhost [127.0.0.1]) by mail-m121164.qiye.163.com (HMail) with ESMTP id F0F693A01E8 for ; Fri, 5 May 2023 16:44:39 +0800 (CST) Content-Type: multipart/mixed; BOUNDARY="=_Part_201176_630817964.1683276279979" Message-ID: To: pgsql-hackers Subject: =?UTF-8?B?RmVhdHVyZTogQWRkIHJlbG9wdGlvbiBzdXBwb3J0IGZvciB0YWJsZSBhY2Nlc3MgbWV0aG9k?= X-Priority: 3 X-Mailer: HMail Webmail Server V2.0 Copyright (c) 2016-163.com X-Originating-IP: 111.60.108.148 MIME-Version: 1.0 Received: from wuhao@hashdata.cn( [111.60.108.148) ] by ajax-webmail ( [127.0.0.1] ) ; Fri, 5 May 2023 16:44:39 +0800 (GMT+08:00) From: =?UTF-8?B?5ZC05piK?= Date: Fri, 5 May 2023 16:44:39 +0800 (GMT+08:00) X-HM-Spam-Status: e1kfGhgUHx5ZQUtXWQgPGg8OCBgUHx5ZQUlOS1dZFg8aDwILHllBWSg2Ly tZV1koWUFPN1dZLVlBSVdZDwkaFQgSH1lBWRodHk5WHUkdHk1DQ00ZH0tNVQIWExYaEhckFA4PWV dZGBILWUFZSkpKVU1LVUpLQ1VKT0NZV1kWGg8SFR0UWUFZS1VLVUtVS1kG X-HM-Tid: 0a87eaefc544b04ekuuu187ad0c1287 X-HM-MType: 1 X-HM-Sender-Digest: e1kMHhlZQQ8JDh5XWRIfHhUPWUFZRzo2LjpKDDk5OQMdGEgPMCk3Nx8u TU8JGVVKVUpNQ0hJTE1JQ0pKSEhVMxYaEhdVDA4TGhQ7ExoIEx8aDxpVGBVFWVdZEgtZQVlKSkpV TUtVSktDVUpPQ1lXWQgBWUFIQ0hJSTcG List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=_Part_201176_630817964.1683276279979 Content-Type: multipart/alternative; BOUNDARY="=_Part_201177_1645340579.1683276279979" --=_Part_201177_1645340579.1683276279979 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 SGkgcGctaGFja2VycywKCgpXaGVuIEkgd3JvdGUgYW4gZXh0ZW5zaW9uIHRvIGltcGxlbWVudCBh IG5ldyBzdG9yYWdlIGJ5IHRhYmxlIGFjY2VzcyBtZXRob2QuIEkgZm91bmQgc29tZSBpc3N1ZXMK dGhhdCB0aGUgZXhpc3RpbmcgY29kZSBoYXMgc3Ryb25nIGFzc3VtcHRpb25zIGZvciBoZWFwIHRh YmxlcyBub3cuIEhlcmUgYXJlIDMgaXNzdWVzIHRoYXQgSSBjdXJyZW50bHkgaGF2ZToKCgoxLiBJ bmRleCBhY2Nlc3MgbWV0aG9kIGhhcyBhIGNhbGxiYWNrIHRvIGhhbmRsZSByZWxvcHRpb25zLCBi dXQgdGFibGUgYWNjZXNzIG1ldGhvZCBoYXNuJ3QuIFdlIGNhbid0CmFkZCBzdG9yYWdlLXNwZWNp ZmljIHBhcmFtZXRlcnMgYnkgYFdJVEhgIGNsYXVzZSB3aGVuIGNyZWF0aW5nIGEgdGFibGUuCjIu IEV4aXN0aW5nIGNvZGUgc3Ryb25nbHkgYXNzdW1lcyB0aGF0IHRoZSBkYXRhIGZpbGUgb2YgYSB0 YWJsZSBzdHJ1Y3R1cmVzIGJ5IGEgc2VyaWFsIHBoeXNpY2FsIGZpbGVzIG5hbWVkCmluIGEgaGFy ZCBjb2RlZCBydWxlOiA8cmVsZmlsZW5vZGU+Wy48c2Vnbm8+XS4gSXQgbWF5IG9ubHkgZml0IGZv ciBoZWFwIGxpa2UgdGFibGVzLiBBIG5ldyBzdG9yYWdlIG1heSBoYXZlIGl0cwpvd25lciBzdHJ1 Y3R1cmUgb24gaG93IHRoZSBkYXRhIGZpbGVzIGFyZSBvcmdhbml6ZWQuIFRoZSBwcm9ibGVtIGhh cHBlbnMgd2hlbiBkcm9wcGluZyBhIHRhYmxlLgoKMy4gVGhlIGV4aXN0aW5nIGNvZGUgYWxzbyBh c3N1bWVzIHRoYXQgdGhlIGRhdGEgZmlsZSBjb25zaXN0cyBvZiBhIHNlcmllcyBvZiBmaXgtc2l6 ZWQgYmxvY2suIEl0IG1heSBub3QKYmUgZGVzaXJlZCBieSBvdGhlciBzdG9yYWdlLiBJcyB0aGVy ZSBhbnkgc3VnZ2VzdGlvbnMgb24gdGhpcyBzaXR1YXRpb24/CgoKVGhlIHJlc3Qgb2YgdGhpcyBt YWlsIGlzIHRvIHRhbGsgYWJvdXQgdGhlIGZpcnN0IGlzc3VlLiBJdCBsb29rcyByZWFzb25hYmxl IHRvIGFkZCBhIHNpbWlsYXIgY2FsbGJhY2sgaW4Kc3RydWN0IFRhYmxlQW1Sb3V0aW5lLCBhbmQg cGFyc2UgcmVsb3B0aW9ucyBieSB0aGUgY2FsbGJhY2suIFRoaXMgcGF0Y2ggaXMgaW4gdGhlIGF0 dGFjaG1lbnQgZmlsZS4KCgpBbm90aGVyIHRoaW5nIGFib3V0IHJlbG9wdGlvbiBpcyB0aGF0IHRo ZSBjdXJyZW50IEFQSSBwYXNzZXMgYSBwYXJhbWV0ZXIgYHZhbGlkYXRlYCB0byB0ZWxsIHRoZSBw YXJzZQpmdW5jdGlvaW4gdG8gY2hlY2sgYW5kIHdoZXRoZXIgdG8gcmFpc2UgYW4gZXJyb3IuIEl0 IGRvZXNuJ3QgaGF2ZSBlbm91Z2ggY29udGV4dCB3aGVuIHRoZXNlIHJlbG9wdGlvaW5zCmFyZSB1 c2VkOgoxLiBDUkVBVEUgVEFCTEUgLi4uIFdJVEgoLi4uKQoyLiBBTFRFUiBUQUJMRSAuLi4gU0VU IC4uLgozLiBBTFRFUiBUQUJMRSAuLi4gUkVTRVQgLi4uClRoZSByZWFzb24gd2h5IHRoZSBjb250 ZXh0IG1hdHRlcnMgaXMgdGhhdCBzb21lIHJlbG9wdGlvbnMgYXJlIGRpc2FsbG93ZWQgdG8gY2hh bmdlIGFmdGVyIGNyZWF0aW5nCnRoZSB0YWJsZSwgd2hpbGUgc29tZSByZWxvcHRpb25zIGFyZSBh bGxvd2VkLgoKCgpJIHdvbmRlciBpZiB0aGlzIGNoYW5nZSBtYWtlcyBzZW5zZSBmb3IgeW91LgoK ClRoZSBhdHRhY2hlZCBwYXRjaCBvbmx5IHN1cHBvcnRzIGNhbGxiYWNrIGZvciBUQU0tc3BlY2lm aWMgaW1wbGVtZW50YXRpb24sIG5vdCBpbmNsdWRlIHRoZSBjaGFuZ2UKYWJvdXQgdXNhZ2UgY29u dGV4dC4KCgpSZWdhcmRzLApIYW8gV3UKCgoKCgoKCg0KDQo= --=_Part_201177_1645340579.1683276279979 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: base64 PGRpdiBzdHlsZT0iY29sb3I6IzAwMDsgZm9udC1zaXplOiAxNHB4O2ZvbnQtZmFtaWx5OiBhcmlh bDsiPjxkaXY+SGkgcGctaGFja2Vycyw8L2Rpdj48ZGl2Pjxici8+PC9kaXY+PGRpdj5XaGVuIEkg d3JvdGUgYW4gZXh0ZW5zaW9uIHRvIGltcGxlbWVudCBhIG5ldyBzdG9yYWdlIGJ5IHRhYmxlIGFj Y2VzcyBtZXRob2QuIEkgZm91bmQgc29tZSBpc3N1ZXM8L2Rpdj48ZGl2PnRoYXQgdGhlIGV4aXN0 aW5nIGNvZGUgaGFzIHN0cm9uZyBhc3N1bXB0aW9ucyBmb3IgaGVhcCB0YWJsZXMgbm93LiBIZXJl IGFyZSAzIGlzc3VlcyB0aGF0IEkgY3VycmVudGx5IGhhdmU6PC9kaXY+PGRpdj48YnIvPjwvZGl2 PjxkaXY+MS4gSW5kZXggYWNjZXNzIG1ldGhvZCBoYXMgYSBjYWxsYmFjayB0byBoYW5kbGUgcmVs b3B0aW9ucywgYnV0IHRhYmxlIGFjY2VzcyBtZXRob2QgaGFzbiYjMzk7dC4gV2UgY2FuJiMzOTt0 PGJyLz48ZGl2PmFkZCBzdG9yYWdlLXNwZWNpZmljIHBhcmFtZXRlcnMgYnkgYFdJVEhgIGNsYXVz ZSB3aGVuIGNyZWF0aW5nIGEgdGFibGUuPC9kaXY+PGRpdj4yLiBFeGlzdGluZyBjb2RlIHN0cm9u Z2x5IGFzc3VtZXMgdGhhdCB0aGUgZGF0YSBmaWxlIG9mIGEgdGFibGUgc3RydWN0dXJlcyBieSBh IHNlcmlhbCBwaHlzaWNhbCBmaWxlcyBuYW1lZDwvZGl2PjxkaXY+aW4gYSBoYXJkIGNvZGVkIHJ1 bGU6ICZsdDtyZWxmaWxlbm9kZSZndDtbLiZsdDtzZWdubyZndDtdLiBJdCBtYXkgb25seSBmaXQg Zm9yIGhlYXAgbGlrZSB0YWJsZXMuIEEgbmV3IHN0b3JhZ2UgbWF5IGhhdmUgaXRzPC9kaXY+PGRp dj5vd25lciBzdHJ1Y3R1cmUgb24gaG93IHRoZSBkYXRhIGZpbGVzIGFyZSBvcmdhbml6ZWQuIFRo ZSBwcm9ibGVtIGhhcHBlbnMgd2hlbiBkcm9wcGluZyBhIHRhYmxlLjxici8+PC9kaXY+PGRpdj4z LiBUaGUgZXhpc3RpbmcgY29kZSBhbHNvIGFzc3VtZXMgdGhhdCB0aGUgZGF0YSBmaWxlIGNvbnNp c3RzIG9mIGEgc2VyaWVzIG9mIGZpeC1zaXplZCBibG9jay4gSXQgbWF5IG5vdDwvZGl2PjxkaXY+ YmUgZGVzaXJlZCBieSBvdGhlciBzdG9yYWdlLiBJcyB0aGVyZSBhbnkgc3VnZ2VzdGlvbnMgb24g dGhpcyBzaXR1YXRpb24/PC9kaXY+PGRpdj48YnIvPjwvZGl2PjxkaXY+VGhlIHJlc3Qgb2YgdGhp cyBtYWlsIGlzIHRvIHRhbGsgYWJvdXQgdGhlIGZpcnN0IGlzc3VlLiBJdCBsb29rcyByZWFzb25h YmxlIHRvIGFkZCBhIHNpbWlsYXIgY2FsbGJhY2sgaW48L2Rpdj48ZGl2PnN0cnVjdCBUYWJsZUFt Um91dGluZSwgYW5kIHBhcnNlIHJlbG9wdGlvbnMgYnkgdGhlIGNhbGxiYWNrLiBUaGlzIHBhdGNo IGlzIGluIHRoZSBhdHRhY2htZW50IGZpbGUuPC9kaXY+PGRpdj48YnIvPjwvZGl2PjxkaXY+QW5v dGhlciB0aGluZyBhYm91dCByZWxvcHRpb24gaXMgdGhhdCB0aGUgY3VycmVudCBBUEkgcGFzc2Vz IGEgcGFyYW1ldGVyIGB2YWxpZGF0ZWAgdG8gdGVsbCB0aGUgcGFyc2U8L2Rpdj48ZGl2PmZ1bmN0 aW9pbiB0byBjaGVjayBhbmQgd2hldGhlciB0byByYWlzZSBhbiBlcnJvci4gSXQgZG9lc24mIzM5 O3QgaGF2ZSBlbm91Z2ggY29udGV4dCB3aGVuIHRoZXNlIHJlbG9wdGlvaW5zPC9kaXY+PGRpdj5h cmUgdXNlZDo8L2Rpdj48ZGl2PjEuIENSRUFURSBUQUJMRSAuLi4gV0lUSCguLi4pPGJyLz48ZGl2 PjIuIEFMVEVSIFRBQkxFIC4uLiBTRVQgLi4uPC9kaXY+PGRpdj4zLiBBTFRFUiBUQUJMRSAuLi4g UkVTRVQgLi4uPC9kaXY+PGRpdj5UaGUgcmVhc29uIHdoeSB0aGUgY29udGV4dCBtYXR0ZXJzIGlz IHRoYXQgc29tZSByZWxvcHRpb25zIGFyZSBkaXNhbGxvd2VkIHRvIGNoYW5nZSBhZnRlciBjcmVh dGluZzwvZGl2PjxkaXY+dGhlIHRhYmxlLCB3aGlsZSBzb21lIHJlbG9wdGlvbnMgYXJlIGFsbG93 ZWQuPGJyLz48L2Rpdj48L2Rpdj48L2Rpdj48ZGl2Pkkgd29uZGVyIGlmIHRoaXMgY2hhbmdlIG1h a2VzIHNlbnNlIGZvciB5b3UuPC9kaXY+PGRpdj48YnIvPjwvZGl2PjxkaXY+VGhlIGF0dGFjaGVk IHBhdGNoIG9ubHkgc3VwcG9ydHMgY2FsbGJhY2sgZm9yIFRBTS1zcGVjaWZpYyBpbXBsZW1lbnRh dGlvbiwgbm90IGluY2x1ZGUgdGhlIGNoYW5nZTwvZGl2PjxkaXY+YWJvdXQgdXNhZ2UgY29udGV4 dC48L2Rpdj48ZGl2Pjxici8+PC9kaXY+PGRpdj5SZWdhcmRzLDwvZGl2PjxkaXY+SGFvIFd1PC9k aXY+PGRpdj48YnIvPjwvZGl2PjxkaXY+PGJyLz48L2Rpdj48L2Rpdj48ZGl2PjwvZGl2PjwhLS0g ank1Q29udGVudFN1ZmZpeCAtLT48YnI+ --=_Part_201177_1645340579.1683276279979-- --=_Part_201176_630817964.1683276279979 Content-Disposition: attachment; filename="=?UTF-8?B?cmVsb3B0aW9ucy5kaWZmcw==?=" Content-Transfer-Encoding: base64 Content-Type: application/octet-stream; name="=?UTF-8?B?cmVsb3B0aW9ucy5kaWZmcw==?="; charset="utf-8" Y29tbWl0IDVjNWM0NzJlM2ZlNDBmOGJiNzFlMjcyNzMyN2JmM2EwNzBkYmEwMzEKQXV0aG9yOiBI YW8gV3UgPGdmcGhvZW5peDc4QGdtYWlsLmNvbT4KRGF0ZTogICBGcmkgTWF5IDUgMDk6MTM6MjIg MjAyMyArMDgwMAoKICAgIEFkZCByZWxvcHRpb24gc3VwcG9ydCBmb3IgdGFibGUKCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv YnJpbi9icmluLmMKaW5kZXggNDFiZjk1MGE0YS4uYzdmMTMwYWNkMyAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9icmlu L2JyaW4uYwpAQCAtOTczLDcgKzk3Myw3IEBAIGJyaW52YWN1dW1jbGVhbnVwKEluZGV4VmFjdXVt SW5mbyAqaW5mbywgSW5kZXhCdWxrRGVsZXRlUmVzdWx0ICpzdGF0cykKICAqIHJlbG9wdGlvbnMg cHJvY2Vzc29yIGZvciBCUklOIGluZGV4ZXMKICAqLwogYnl0ZWEgKgotYnJpbm9wdGlvbnMoRGF0 dW0gcmVsb3B0aW9ucywgYm9vbCB2YWxpZGF0ZSkKK2JyaW5vcHRpb25zKERhdHVtIHJlbG9wdGlv bnMsIGNoYXIgcmVsa2luZCwgYm9vbCB2YWxpZGF0ZSkKIHsKIAlzdGF0aWMgY29uc3QgcmVsb3B0 X3BhcnNlX2VsdCB0YWJbXSA9IHsKIAkJeyJwYWdlc19wZXJfcmFuZ2UiLCBSRUxPUFRfVFlQRV9J TlQsIG9mZnNldG9mKEJyaW5PcHRpb25zLCBwYWdlc1BlclJhbmdlKX0sCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3JlbG9wdGlvbnMuYyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy9jb21tb24vcmVsb3B0aW9ucy5jCmluZGV4IDkwY2IzOTUxZmMuLmVlZDk1MjE4MjcgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcmVsb3B0aW9ucy5jCisrKyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy9jb21tb24vcmVsb3B0aW9ucy5jCkBAIC0xNDAxLDcgKzE0MDEsNyBAQCBl eHRyYWN0UmVsT3B0aW9ucyhIZWFwVHVwbGUgdHVwbGUsIFR1cGxlRGVzYyB0dXBkZXNjLAogCQlj YXNlIFJFTEtJTkRfUkVMQVRJT046CiAJCWNhc2UgUkVMS0lORF9UT0FTVFZBTFVFOgogCQljYXNl IFJFTEtJTkRfTUFUVklFVzoKLQkJCW9wdGlvbnMgPSBoZWFwX3JlbG9wdGlvbnMoY2xhc3NGb3Jt LT5yZWxraW5kLCBkYXR1bSwgZmFsc2UpOworCQkJb3B0aW9ucyA9IHRhYmxlX3JlbG9wdGlvbnMo YW1vcHRpb25zLCBkYXR1bSwgY2xhc3NGb3JtLT5yZWxraW5kLCBmYWxzZSk7CiAJCQlicmVhazsK IAkJY2FzZSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFOgogCQkJb3B0aW9ucyA9IHBhcnRpdGlv bmVkX3RhYmxlX3JlbG9wdGlvbnMoZGF0dW0sIGZhbHNlKTsKQEAgLTE0MTEsNyArMTQxMSw3IEBA IGV4dHJhY3RSZWxPcHRpb25zKEhlYXBUdXBsZSB0dXBsZSwgVHVwbGVEZXNjIHR1cGRlc2MsCiAJ CQlicmVhazsKIAkJY2FzZSBSRUxLSU5EX0lOREVYOgogCQljYXNlIFJFTEtJTkRfUEFSVElUSU9O RURfSU5ERVg6Ci0JCQlvcHRpb25zID0gaW5kZXhfcmVsb3B0aW9ucyhhbW9wdGlvbnMsIGRhdHVt LCBmYWxzZSk7CisJCQlvcHRpb25zID0gaW5kZXhfcmVsb3B0aW9ucyhhbW9wdGlvbnMsIGRhdHVt LCBjbGFzc0Zvcm0tPnJlbGtpbmQsIGZhbHNlKTsKIAkJCWJyZWFrOwogCQljYXNlIFJFTEtJTkRf Rk9SRUlHTl9UQUJMRToKIAkJCW9wdGlvbnMgPSBOVUxMOwpAQCAtMjAxNCwzNyArMjAxNCw0MyBA QCB2aWV3X3JlbG9wdGlvbnMoRGF0dW0gcmVsb3B0aW9ucywgYm9vbCB2YWxpZGF0ZSkKIAkJCQkJ CQkJCSAgdGFiLCBsZW5ndGhvZih0YWIpKTsKIH0KIAotLyoKLSAqIFBhcnNlIG9wdGlvbnMgZm9y IGhlYXBzLCB2aWV3cyBhbmQgdG9hc3QgdGFibGVzLgotICovCiBieXRlYSAqCi1oZWFwX3JlbG9w dGlvbnMoY2hhciByZWxraW5kLCBEYXR1bSByZWxvcHRpb25zLCBib29sIHZhbGlkYXRlKQordGFi bGVfcmVsb3B0aW9ucyhhbW9wdGlvbnNfZnVuY3Rpb24gYW1vcHRpb25zLCBEYXR1bSByZWxvcHRp b25zLCBjaGFyIHJlbGtpbmQsIGJvb2wgdmFsaWRhdGUpCit7CisJQXNzZXJ0KHJlbGtpbmQgPT0g UkVMS0lORF9SRUxBVElPTiB8fAorCQkJcmVsa2luZCA9PSBSRUxLSU5EX1RPQVNUVkFMVUUgfHwK KwkJCXJlbGtpbmQgPT0gUkVMS0lORF9NQVRWSUVXKTsKKwlpZiAoYW1vcHRpb25zID09IE5VTEwp CisJeworCQlpZiAoUG9pbnRlcklzVmFsaWQoRGF0dW1HZXRQb2ludGVyKHJlbG9wdGlvbnMpKSkK KwkJCWVsb2coRVJST1IsICJ0YWJsZSBhY2Nlc3MgbWV0aG9kIGRvZXNuJ3Qgc3VwcG9ydGVkIHJl bG9wdGlvbnMiKTsKKwkJcmV0dXJuIE5VTEw7CisJfQorCXJldHVybiBhbW9wdGlvbnMocmVsb3B0 aW9ucywgcmVsa2luZCwgdmFsaWRhdGUpOworfQorCitieXRlYSAqCit0YWJsZV9yZWxvcHRpb25z X2FtKE9pZCBhY2Nlc3NNZXRob2RJZCwgRGF0dW0gcmVsb3B0aW9ucywgY2hhciByZWxraW5kLCBi b29sIHZhbGlkYXRlKQogewotCVN0ZFJkT3B0aW9ucyAqcmRvcHRzOworCWNvbnN0IFRhYmxlQW1S b3V0aW5lICp0YW07CiAKLQlzd2l0Y2ggKHJlbGtpbmQpCisJQXNzZXJ0KHJlbGtpbmQgPT0gUkVM S0lORF9SRUxBVElPTiB8fAorCQkJcmVsa2luZCA9PSBSRUxLSU5EX1RPQVNUVkFMVUUgfHwKKwkJ CXJlbGtpbmQgPT0gUkVMS0lORF9NQVRWSUVXKTsKKworCXN3aXRjaChhY2Nlc3NNZXRob2RJZCkK IAl7Ci0JCWNhc2UgUkVMS0lORF9UT0FTVFZBTFVFOgotCQkJcmRvcHRzID0gKFN0ZFJkT3B0aW9u cyAqKQotCQkJCWRlZmF1bHRfcmVsb3B0aW9ucyhyZWxvcHRpb25zLCB2YWxpZGF0ZSwgUkVMT1BU X0tJTkRfVE9BU1QpOwotCQkJaWYgKHJkb3B0cyAhPSBOVUxMKQotCQkJewotCQkJCS8qIGFkanVz dCBkZWZhdWx0LW9ubHkgcGFyYW1ldGVycyBmb3IgVE9BU1QgcmVsYXRpb25zICovCi0JCQkJcmRv cHRzLT5maWxsZmFjdG9yID0gMTAwOwotCQkJCXJkb3B0cy0+YXV0b3ZhY3V1bS5hbmFseXplX3Ro cmVzaG9sZCA9IC0xOwotCQkJCXJkb3B0cy0+YXV0b3ZhY3V1bS5hbmFseXplX3NjYWxlX2ZhY3Rv ciA9IC0xOwotCQkJfQotCQkJcmV0dXJuIChieXRlYSAqKSByZG9wdHM7Ci0JCWNhc2UgUkVMS0lO RF9SRUxBVElPTjoKLQkJY2FzZSBSRUxLSU5EX01BVFZJRVc6Ci0JCQlyZXR1cm4gZGVmYXVsdF9y ZWxvcHRpb25zKHJlbG9wdGlvbnMsIHZhbGlkYXRlLCBSRUxPUFRfS0lORF9IRUFQKTsKKwkJLyog YnVpbHQtaW4gdGFibGUgYWNjZXNzIG1ldGhvZCBwdXQgaGVyZSB0byBmZXRjaCBUQU0gZmFzdCAq LworCQljYXNlIEhFQVBfVEFCTEVfQU1fT0lEOgorCQkJdGFtID0gR2V0SGVhcGFtVGFibGVBbVJv dXRpbmUoKTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgotCQkJLyogb3RoZXIgcmVsa2luZHMgYXJl IG5vdCBzdXBwb3J0ZWQgKi8KLQkJCXJldHVybiBOVUxMOworCQkJdGFtID0gR2V0VGFibGVBbVJv dXRpbmVCeUFtSWQoYWNjZXNzTWV0aG9kSWQpOworCQkJYnJlYWs7CiAJfQorCXJldHVybiB0YWJs ZV9yZWxvcHRpb25zKHRhbS0+YW1vcHRpb25zLCByZWxvcHRpb25zLCByZWxraW5kLCB2YWxpZGF0 ZSk7CiB9CiAKLQogLyoKICAqIFBhcnNlIG9wdGlvbnMgZm9yIGluZGV4ZXMuCiAgKgpAQCAtMjA1 Myw3ICsyMDU5LDcgQEAgaGVhcF9yZWxvcHRpb25zKGNoYXIgcmVsa2luZCwgRGF0dW0gcmVsb3B0 aW9ucywgYm9vbCB2YWxpZGF0ZSkKICAqCXZhbGlkYXRlCWVycm9yIGZsYWcKICAqLwogYnl0ZWEg KgotaW5kZXhfcmVsb3B0aW9ucyhhbW9wdGlvbnNfZnVuY3Rpb24gYW1vcHRpb25zLCBEYXR1bSBy ZWxvcHRpb25zLCBib29sIHZhbGlkYXRlKQoraW5kZXhfcmVsb3B0aW9ucyhhbW9wdGlvbnNfZnVu Y3Rpb24gYW1vcHRpb25zLCBEYXR1bSByZWxvcHRpb25zLCBjaGFyIHJlbGtpbmQsIGJvb2wgdmFs aWRhdGUpCiB7CiAJQXNzZXJ0KGFtb3B0aW9ucyAhPSBOVUxMKTsKIApAQCAtMjA2MSw3ICsyMDY3 LDcgQEAgaW5kZXhfcmVsb3B0aW9ucyhhbW9wdGlvbnNfZnVuY3Rpb24gYW1vcHRpb25zLCBEYXR1 bSByZWxvcHRpb25zLCBib29sIHZhbGlkYXRlKQogCWlmICghUG9pbnRlcklzVmFsaWQoRGF0dW1H ZXRQb2ludGVyKHJlbG9wdGlvbnMpKSkKIAkJcmV0dXJuIE5VTEw7CiAKLQlyZXR1cm4gYW1vcHRp b25zKHJlbG9wdGlvbnMsIHZhbGlkYXRlKTsKKwlyZXR1cm4gYW1vcHRpb25zKHJlbG9wdGlvbnMs IHJlbGtpbmQsIHZhbGlkYXRlKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9naW4vZ2ludXRpbC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW51dGlsLmMKaW5k ZXggNDM3ZjI0NzUzYy4uN2NkYWYzYzZmOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNz L2dpbi9naW51dGlsLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW51dGlsLmMKQEAg LTU5OCw3ICs1OTgsNyBAQCBnaW5FeHRyYWN0RW50cmllcyhHaW5TdGF0ZSAqZ2luc3RhdGUsIE9m ZnNldE51bWJlciBhdHRudW0sCiB9CiAKIGJ5dGVhICoKLWdpbm9wdGlvbnMoRGF0dW0gcmVsb3B0 aW9ucywgYm9vbCB2YWxpZGF0ZSkKK2dpbm9wdGlvbnMoRGF0dW0gcmVsb3B0aW9ucywgY2hhciBy ZWxraW5kLCBib29sIHZhbGlkYXRlKQogewogCXN0YXRpYyBjb25zdCByZWxvcHRfcGFyc2VfZWx0 IHRhYltdID0gewogCQl7ImZhc3R1cGRhdGUiLCBSRUxPUFRfVFlQRV9CT09MLCBvZmZzZXRvZihH aW5PcHRpb25zLCB1c2VGYXN0VXBkYXRlKX0sCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nl c3MvZ2lzdC9naXN0dXRpbC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHV0aWwuYwpp bmRleCBmOWY1MTE1MmI4Li5jYzIxMzY4YzQ1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3MvZ2lzdC9naXN0dXRpbC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R1dGls LmMKQEAgLTkwOSw3ICs5MDksNyBAQCBnaXN0UGFnZVJlY3ljbGFibGUoUGFnZSBwYWdlKQogfQog CiBieXRlYSAqCi1naXN0b3B0aW9ucyhEYXR1bSByZWxvcHRpb25zLCBib29sIHZhbGlkYXRlKQor Z2lzdG9wdGlvbnMoRGF0dW0gcmVsb3B0aW9ucywgY2hhciByZWxraW5kLCBib29sIHZhbGlkYXRl KQogewogCXN0YXRpYyBjb25zdCByZWxvcHRfcGFyc2VfZWx0IHRhYltdID0gewogCQl7ImZpbGxm YWN0b3IiLCBSRUxPUFRfVFlQRV9JTlQsIG9mZnNldG9mKEdpU1RPcHRpb25zLCBmaWxsZmFjdG9y KX0sCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNodXRpbC5jIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaHV0aWwuYwppbmRleCA4ODA4OWNlMDJiLi42MzhjYjkw MWM0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNodXRpbC5jCisrKyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2h1dGlsLmMKQEAgLTI3Myw3ICsyNzMsNyBAQCBf aGFzaF9jaGVja3BhZ2UoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLCBpbnQgZmxhZ3MpCiB9CiAK IGJ5dGVhICoKLWhhc2hvcHRpb25zKERhdHVtIHJlbG9wdGlvbnMsIGJvb2wgdmFsaWRhdGUpCito YXNob3B0aW9ucyhEYXR1bSByZWxvcHRpb25zLCBjaGFyIHJlbGtpbmQsIGJvb2wgdmFsaWRhdGUp CiB7CiAJc3RhdGljIGNvbnN0IHJlbG9wdF9wYXJzZV9lbHQgdGFiW10gPSB7CiAJCXsiZmlsbGZh Y3RvciIsIFJFTE9QVF9UWVBFX0lOVCwgb2Zmc2V0b2YoSGFzaE9wdGlvbnMsIGZpbGxmYWN0b3Ip fSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jCmluZGV4IGNiYjM1YWE3 M2QuLmQwYWRjNjc0ZTIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBh bV9oYW5kbGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIu YwpAQCAtMjMsNiArMjMsNyBAQAogI2luY2x1ZGUgImFjY2Vzcy9oZWFwYW0uaCIKICNpbmNsdWRl ICJhY2Nlc3MvaGVhcHRvYXN0LmgiCiAjaW5jbHVkZSAiYWNjZXNzL211bHRpeGFjdC5oIgorI2lu Y2x1ZGUgImFjY2Vzcy9yZWxvcHRpb25zLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3Jld3JpdGVoZWFw LmgiCiAjaW5jbHVkZSAiYWNjZXNzL3N5bmNzY2FuLmgiCiAjaW5jbHVkZSAiYWNjZXNzL3RhYmxl YW0uaCIKQEAgLTI1MzksNiArMjU0MCwzNiBAQCBTYW1wbGVIZWFwVHVwbGVWaXNpYmxlKFRhYmxl U2NhbkRlc2Mgc2NhbiwgQnVmZmVyIGJ1ZmZlciwKIAl9CiB9CiAKKy8qCisgKiBQYXJzZSBvcHRp b25zIGZvciBoZWFwcywgdmlld3MgYW5kIHRvYXN0IHRhYmxlcy4KKyAqLworc3RhdGljIGJ5dGVh ICoKK2hlYXBhbV9hbW9wdGlvbnMoRGF0dW0gcmVsb3B0aW9ucywgY2hhciByZWxraW5kLCBib29s IHZhbGlkYXRlKQoreworCVN0ZFJkT3B0aW9ucyAqcmRvcHRzOworCisJc3dpdGNoIChyZWxraW5k KQorCXsKKwkJY2FzZSBSRUxLSU5EX1RPQVNUVkFMVUU6CisJCQlyZG9wdHMgPSAoU3RkUmRPcHRp b25zICopCisJCQkJZGVmYXVsdF9yZWxvcHRpb25zKHJlbG9wdGlvbnMsIHZhbGlkYXRlLCBSRUxP UFRfS0lORF9UT0FTVCk7CisJCQlpZiAocmRvcHRzICE9IE5VTEwpCisJCQl7CisJCQkJLyogYWRq dXN0IGRlZmF1bHQtb25seSBwYXJhbWV0ZXJzIGZvciBUT0FTVCByZWxhdGlvbnMgKi8KKwkJCQly ZG9wdHMtPmZpbGxmYWN0b3IgPSAxMDA7CisJCQkJcmRvcHRzLT5hdXRvdmFjdXVtLmFuYWx5emVf dGhyZXNob2xkID0gLTE7CisJCQkJcmRvcHRzLT5hdXRvdmFjdXVtLmFuYWx5emVfc2NhbGVfZmFj dG9yID0gLTE7CisJCQl9CisJCQlyZXR1cm4gKGJ5dGVhICopIHJkb3B0czsKKwkJY2FzZSBSRUxL SU5EX1JFTEFUSU9OOgorCQljYXNlIFJFTEtJTkRfTUFUVklFVzoKKwkJCXJldHVybiBkZWZhdWx0 X3JlbG9wdGlvbnMocmVsb3B0aW9ucywgdmFsaWRhdGUsIFJFTE9QVF9LSU5EX0hFQVApOworCQlk ZWZhdWx0OgorCQkJQXNzZXJ0KGZhbHNlKTsKKwkJCXJldHVybiBOVUxMOworCX0KK30KKwogCiAv KiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KICAqIERlZmluaXRpb24gb2YgdGhlIGhlYXAgdGFibGUgYWNjZXNz IG1ldGhvZC4KQEAgLTI2MDEsNyArMjYzMiwxMCBAQCBzdGF0aWMgY29uc3QgVGFibGVBbVJvdXRp bmUgaGVhcGFtX21ldGhvZHMgPSB7CiAJLnNjYW5fYml0bWFwX25leHRfYmxvY2sgPSBoZWFwYW1f c2Nhbl9iaXRtYXBfbmV4dF9ibG9jaywKIAkuc2Nhbl9iaXRtYXBfbmV4dF90dXBsZSA9IGhlYXBh bV9zY2FuX2JpdG1hcF9uZXh0X3R1cGxlLAogCS5zY2FuX3NhbXBsZV9uZXh0X2Jsb2NrID0gaGVh cGFtX3NjYW5fc2FtcGxlX25leHRfYmxvY2ssCi0JLnNjYW5fc2FtcGxlX25leHRfdHVwbGUgPSBo ZWFwYW1fc2Nhbl9zYW1wbGVfbmV4dF90dXBsZQorCS5zY2FuX3NhbXBsZV9uZXh0X3R1cGxlID0g aGVhcGFtX3NjYW5fc2FtcGxlX25leHRfdHVwbGUsCisKKwkuYW1vcHRpb25zCT0gaGVhcGFtX2Ft b3B0aW9ucywKKwogfTsKIAogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVl L25idHV0aWxzLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHV0aWxzLmMKaW5kZXgg MDVhYmYzNjAzMi4uNWJhMTZiNmJiNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL25i dHJlZS9uYnR1dGlscy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0dXRpbHMu YwpAQCAtMjEwOSw3ICsyMTA5LDcgQEAgQlRyZWVTaG1lbUluaXQodm9pZCkKIH0KIAogYnl0ZWEg KgotYnRvcHRpb25zKERhdHVtIHJlbG9wdGlvbnMsIGJvb2wgdmFsaWRhdGUpCitidG9wdGlvbnMo RGF0dW0gcmVsb3B0aW9ucywgY2hhciByZWxraW5kLCBib29sIHZhbGlkYXRlKQogewogCXN0YXRp YyBjb25zdCByZWxvcHRfcGFyc2VfZWx0IHRhYltdID0gewogCQl7ImZpbGxmYWN0b3IiLCBSRUxP UFRfVFlQRV9JTlQsIG9mZnNldG9mKEJUT3B0aW9ucywgZmlsbGZhY3Rvcil9LApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd1dGlscy5jIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL3NwZ2lzdC9zcGd1dGlscy5jCmluZGV4IDE5MGU0Zjc2YTkuLmVjZjhhZjMyYWMgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3BndXRpbHMuYworKysgYi9zcmMvYmFj a2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3V0aWxzLmMKQEAgLTcyOCw3ICs3MjgsNyBAQCBTcEdpc3RJ bml0TWV0YXBhZ2UoUGFnZSBwYWdlKQogICogcmVsb3B0aW9ucyBwcm9jZXNzaW5nIGZvciBTUEdp U1QKICAqLwogYnl0ZWEgKgotc3Bnb3B0aW9ucyhEYXR1bSByZWxvcHRpb25zLCBib29sIHZhbGlk YXRlKQorc3Bnb3B0aW9ucyhEYXR1bSByZWxvcHRpb25zLCBjaGFyIHJlbGtpbmQsIGJvb2wgdmFs aWRhdGUpCiB7CiAJc3RhdGljIGNvbnN0IHJlbG9wdF9wYXJzZV9lbHQgdGFiW10gPSB7CiAJCXsi ZmlsbGZhY3RvciIsIFJFTE9QVF9UWVBFX0lOVCwgb2Zmc2V0b2YoU3BHaXN0T3B0aW9ucywgZmls bGZhY3Rvcil9LApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RhYmxlL3RhYmxlYW1h cGkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90YWJsZS90YWJsZWFtYXBpLmMKaW5kZXggZDc3OThi NmFmYi4uMDM5MmJhNzg0MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RhYmxlL3Rh YmxlYW1hcGkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdGFibGUvdGFibGVhbWFwaS5jCkBA IC0xMDcsNiArMTA3LDM2IEBAIEdldFRhYmxlQW1Sb3V0aW5lKE9pZCBhbWhhbmRsZXIpCiAJcmV0 dXJuIHJvdXRpbmU7CiB9CiAKKy8qCisgKiBHZXRUYWJsZUFtUm91dGluZUJ5QW1JZCAtIGxvb2sg dXAgdGhlIGhhbmRsZXIgb2YgdGhlIHRhYmxlIGFjY2VzcyBtZXRob2QKKyAqIHdpdGggdGhlIGdp dmVuIE9JRCwgYW5kIGdldCBpdHMgVGFibGVBbVJvdXRpbmUgc3RydWN0LgorICoKKyAqIElmIHRo ZSBnaXZlbiBPSUQgaXNuJ3QgYSB2YWxpZCBpbmRleCBhY2Nlc3MgbWV0aG9kLCB0aHJvd3MgZXJy b3IuCisgKi8KK2NvbnN0IFRhYmxlQW1Sb3V0aW5lICoKK0dldFRhYmxlQW1Sb3V0aW5lQnlBbUlk KE9pZCBhbW9pZCkKK3sKKwlIZWFwVHVwbGUJdHVwbGU7CisJRm9ybV9wZ19hbSAgYW1mb3JtOwor CXJlZ3Byb2MgICAgIGFtaGFuZGxlcjsKKworCXR1cGxlID0gU2VhcmNoU3lzQ2FjaGUxKEFNT0lE LCBPYmplY3RJZEdldERhdHVtKGFtb2lkKSk7CisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cGxl KSkKKwkJZXJlcG9ydChFUlJPUiwgKGVycm1zZygiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgYWNj ZXNzIG1ldGhvZCAldSIsIGFtb2lkKSkpOworCisJYW1mb3JtID0gKEZvcm1fcGdfYW0pIEdFVFNU UlVDVCh0dXBsZSk7CisJaWYgKGFtZm9ybS0+YW10eXBlICE9IEFNVFlQRV9UQUJMRSkKKwkJZXJl cG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlT SVRFX1NUQVRFKSwKKwkJCQkgZXJybXNnKCJhY2Nlc3MgbWV0aG9kIFwiJXNcIiBpcyBub3Qgb2Yg dHlwZSBUQUJMRSIsCisJCQkJCQlOYW1lU3RyKGFtZm9ybS0+YW1uYW1lKSkpKTsKKworCWFtaGFu ZGxlciA9IGFtZm9ybS0+YW1oYW5kbGVyOworCVJlbGVhc2VTeXNDYWNoZSh0dXBsZSk7CisKKwly ZXR1cm4gR2V0VGFibGVBbVJvdXRpbmUoYW1oYW5kbGVyKTsKK30KKwogLyogY2hlY2tfaG9vazog dmFsaWRhdGUgbmV3IGRlZmF1bHRfdGFibGVfYWNjZXNzX21ldGhvZCAqLwogYm9vbAogY2hlY2tf ZGVmYXVsdF90YWJsZV9hY2Nlc3NfbWV0aG9kKGNoYXIgKipuZXd2YWwsIHZvaWQgKipleHRyYSwg R3VjU291cmNlIHNvdXJjZSkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvdG9hc3Rp bmcuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvdG9hc3RpbmcuYwppbmRleCBhYjEyYjBiOWRlLi4y OTFhNTU2YzcxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3RvYXN0aW5nLmMKKysr IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy90b2FzdGluZy5jCkBAIC0xNSw2ICsxNSw3IEBACiAjaW5j bHVkZSAicG9zdGdyZXMuaCIKIAogI2luY2x1ZGUgImFjY2Vzcy9oZWFwYW0uaCIKKyNpbmNsdWRl ICJhY2Nlc3MvcmVsb3B0aW9ucy5oIgogI2luY2x1ZGUgImFjY2Vzcy90b2FzdF9jb21wcmVzc2lv bi5oIgogI2luY2x1ZGUgImFjY2Vzcy94YWN0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9iaW5hcnlf dXBncmFkZS5oIgpAQCAtMTQ4LDYgKzE0OSwxMSBAQCBjcmVhdGVfdG9hc3RfdGFibGUoUmVsYXRp b24gcmVsLCBPaWQgdG9hc3RPaWQsIE9pZCB0b2FzdEluZGV4T2lkLAogCU9iamVjdEFkZHJlc3Mg YmFzZW9iamVjdCwKIAkJCQl0b2FzdG9iamVjdDsKIAorCUFzc2VydChyZWwtPnJkX3RhYmxlYW0g fHwgcmVsLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9QQVJUSVRJT05FRF9UQUJMRSk7CisJ aWYgKHJlbC0+cmRfdGFibGVhbSkKKwkJKHZvaWQpIHRhYmxlX3JlbG9wdGlvbnNfYW0odGFibGVf cmVsYXRpb25fdG9hc3RfYW0ocmVsKSwgcmVsb3B0aW9ucywKKwkJCQkJCQkJCVJFTEtJTkRfVE9B U1RWQUxVRSwgdHJ1ZSk7CisKIAkvKgogCSAqIElzIGl0IGFscmVhZHkgdG9hc3RlZD8KIAkgKi8K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NyZWF0ZWFzLmMgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy9jcmVhdGVhcy5jCmluZGV4IGU5MTkyMGNhMTQuLjkxODNmNzI1OGUgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NyZWF0ZWFzLmMKKysrIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvY3JlYXRlYXMuYwpAQCAtMTMwLDggKzEzMCw2IEBAIGNyZWF0ZV9jdGFzX2ludGVy bmFsKExpc3QgKmF0dHJMaXN0LCBJbnRvQ2xhdXNlICppbnRvKQogCQkJCQkJCQkJCXZhbGlkbnNw cywKIAkJCQkJCQkJCQl0cnVlLCBmYWxzZSk7CiAKLQkodm9pZCkgaGVhcF9yZWxvcHRpb25zKFJF TEtJTkRfVE9BU1RWQUxVRSwgdG9hc3Rfb3B0aW9ucywgdHJ1ZSk7Ci0KIAlOZXdSZWxhdGlvbkNy ZWF0ZVRvYXN0VGFibGUoaW50b1JlbGF0aW9uQWRkci5vYmplY3RJZCwgdG9hc3Rfb3B0aW9ucyk7 CiAKIAkvKiBDcmVhdGUgdGhlICJ2aWV3IiBwYXJ0IG9mIGEgbWF0ZXJpYWxpemVkIHZpZXcuICov CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9pbmRleGNtZHMuYyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jCmluZGV4IGU2ZWU5OWU1MWYuLjViOGM0YjEzNTggMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jCisrKyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL2luZGV4Y21kcy5jCkBAIC04ODcsNyArODg3LDcgQEAgRGVmaW5lSW5kZXgo T2lkIHJlbGF0aW9uSWQsCiAJcmVsb3B0aW9ucyA9IHRyYW5zZm9ybVJlbE9wdGlvbnMoKERhdHVt KSAwLCBzdG10LT5vcHRpb25zLAogCQkJCQkJCQkJIE5VTEwsIE5VTEwsIGZhbHNlLCBmYWxzZSk7 CiAKLQkodm9pZCkgaW5kZXhfcmVsb3B0aW9ucyhhbW9wdGlvbnMsIHJlbG9wdGlvbnMsIHRydWUp OworCSh2b2lkKSBpbmRleF9yZWxvcHRpb25zKGFtb3B0aW9ucywgcmVsb3B0aW9ucywgUkVMS0lO RF9JTkRFWCwgdHJ1ZSk7CiAKIAkvKgogCSAqIFByZXBhcmUgYXJndW1lbnRzIGZvciBpbmRleF9j cmVhdGUsIHByaW1hcmlseSBhbiBJbmRleEluZm8gc3RydWN0dXJlLgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJs ZWNtZHMuYwppbmRleCBjN2E4YTY4OWI3Li5lODc0YmE5Nzc4IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJs ZWNtZHMuYwpAQCAtODIyLDYgKzgyMiwyNiBAQCBEZWZpbmVSZWxhdGlvbihDcmVhdGVTdG10ICpz dG10LCBjaGFyIHJlbGtpbmQsIE9pZCBvd25lcklkLAogCWlmICghT2lkSXNWYWxpZChvd25lcklk KSkKIAkJb3duZXJJZCA9IEdldFVzZXJJZCgpOwogCisJLyoKKwkgKiBJZiB0aGUgc3RhdGVtZW50 IGhhc24ndCBzcGVjaWZpZWQgYW4gYWNjZXNzIG1ldGhvZCwgYnV0IHdlJ3JlIGRlZmluaW5nCisJ ICogYSB0eXBlIG9mIHJlbGF0aW9uIHRoYXQgbmVlZHMgb25lLCB1c2UgdGhlIGRlZmF1bHQuCisJ ICovCisJaWYgKHN0bXQtPmFjY2Vzc01ldGhvZCAhPSBOVUxMKQorCXsKKwkJYWNjZXNzTWV0aG9k ID0gc3RtdC0+YWNjZXNzTWV0aG9kOworCisJCWlmIChwYXJ0aXRpb25lZCkKKwkJCWVyZXBvcnQo RVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJ CQkJIGVycm1zZygic3BlY2lmeWluZyBhIHRhYmxlIGFjY2VzcyBtZXRob2QgaXMgbm90IHN1cHBv cnRlZCBvbiBhIHBhcnRpdGlvbmVkIHRhYmxlIikpKTsKKwl9CisJZWxzZSBpZiAoUkVMS0lORF9I QVNfVEFCTEVfQU0ocmVsa2luZCkpCisJCWFjY2Vzc01ldGhvZCA9IGRlZmF1bHRfdGFibGVfYWNj ZXNzX21ldGhvZDsKKworCS8qIGxvb2sgdXAgdGhlIGFjY2VzcyBtZXRob2QsIHZlcmlmeSBpdCBp cyBmb3IgYSB0YWJsZSAqLworCWlmIChhY2Nlc3NNZXRob2QgIT0gTlVMTCkKKwkJYWNjZXNzTWV0 aG9kSWQgPSBnZXRfdGFibGVfYW1fb2lkKGFjY2Vzc01ldGhvZCwgZmFsc2UpOworCiAJLyoKIAkg KiBQYXJzZSBhbmQgdmFsaWRhdGUgcmVsb3B0aW9ucywgaWYgYW55LgogCSAqLwpAQCAtODM2LDgg Kzg1NiwxMyBAQCBEZWZpbmVSZWxhdGlvbihDcmVhdGVTdG10ICpzdG10LCBjaGFyIHJlbGtpbmQs IE9pZCBvd25lcklkLAogCQljYXNlIFJFTEtJTkRfUEFSVElUSU9ORURfVEFCTEU6CiAJCQkodm9p ZCkgcGFydGl0aW9uZWRfdGFibGVfcmVsb3B0aW9ucyhyZWxvcHRpb25zLCB0cnVlKTsKIAkJCWJy ZWFrOworCQljYXNlIFJFTEtJTkRfUkVMQVRJT046CisJCWNhc2UgUkVMS0lORF9NQVRWSUVXOgor CQljYXNlIFJFTEtJTkRfVE9BU1RWQUxVRToKKwkJCSh2b2lkKSB0YWJsZV9yZWxvcHRpb25zX2Ft KGFjY2Vzc01ldGhvZElkLCByZWxvcHRpb25zLCByZWxraW5kLCB0cnVlKTsKKwkJCWJyZWFrOwog CQlkZWZhdWx0OgotCQkJKHZvaWQpIGhlYXBfcmVsb3B0aW9ucyhyZWxraW5kLCByZWxvcHRpb25z LCB0cnVlKTsKKwkJCWJyZWFrOwogCX0KIAogCWlmIChzdG10LT5vZlR5cGVuYW1lKQpAQCAtOTQx LDI2ICs5NjYsNiBAQCBEZWZpbmVSZWxhdGlvbihDcmVhdGVTdG10ICpzdG10LCBjaGFyIHJlbGtp bmQsIE9pZCBvd25lcklkLAogCQkJYXR0ci0+YXR0c3RvcmFnZSA9IEdldEF0dHJpYnV0ZVN0b3Jh Z2UoYXR0ci0+YXR0dHlwaWQsIGNvbERlZi0+c3RvcmFnZV9uYW1lKTsKIAl9CiAKLQkvKgotCSAq IElmIHRoZSBzdGF0ZW1lbnQgaGFzbid0IHNwZWNpZmllZCBhbiBhY2Nlc3MgbWV0aG9kLCBidXQg d2UncmUgZGVmaW5pbmcKLQkgKiBhIHR5cGUgb2YgcmVsYXRpb24gdGhhdCBuZWVkcyBvbmUsIHVz ZSB0aGUgZGVmYXVsdC4KLQkgKi8KLQlpZiAoc3RtdC0+YWNjZXNzTWV0aG9kICE9IE5VTEwpCi0J ewotCQlhY2Nlc3NNZXRob2QgPSBzdG10LT5hY2Nlc3NNZXRob2Q7Ci0KLQkJaWYgKHBhcnRpdGlv bmVkKQotCQkJZXJlcG9ydChFUlJPUiwKLQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05P VF9TVVBQT1JURUQpLAotCQkJCQkgZXJybXNnKCJzcGVjaWZ5aW5nIGEgdGFibGUgYWNjZXNzIG1l dGhvZCBpcyBub3Qgc3VwcG9ydGVkIG9uIGEgcGFydGl0aW9uZWQgdGFibGUiKSkpOwotCX0KLQll bHNlIGlmIChSRUxLSU5EX0hBU19UQUJMRV9BTShyZWxraW5kKSkKLQkJYWNjZXNzTWV0aG9kID0g ZGVmYXVsdF90YWJsZV9hY2Nlc3NfbWV0aG9kOwotCi0JLyogbG9vayB1cCB0aGUgYWNjZXNzIG1l dGhvZCwgdmVyaWZ5IGl0IGlzIGZvciBhIHRhYmxlICovCi0JaWYgKGFjY2Vzc01ldGhvZCAhPSBO VUxMKQotCQlhY2Nlc3NNZXRob2RJZCA9IGdldF90YWJsZV9hbV9vaWQoYWNjZXNzTWV0aG9kLCBm YWxzZSk7Ci0KIAkvKgogCSAqIENyZWF0ZSB0aGUgcmVsYXRpb24uICBJbmhlcml0ZWQgZGVmYXVs dHMgYW5kIGNvbnN0cmFpbnRzIGFyZSBwYXNzZWQgaW4KIAkgKiBmb3IgaW1tZWRpYXRlIGhhbmRs aW5nIC0tLSBzaW5jZSB0aGV5IGRvbid0IG5lZWQgcGFyc2luZywgdGhleSBjYW4gYmUKQEAgLTE0 MzMzLDcgKzE0MzM4LDcgQEAgQVRFeGVjU2V0UmVsT3B0aW9ucyhSZWxhdGlvbiByZWwsIExpc3Qg KmRlZkxpc3QsIEFsdGVyVGFibGVUeXBlIG9wZXJhdGlvbiwKIAkJY2FzZSBSRUxLSU5EX1JFTEFU SU9OOgogCQljYXNlIFJFTEtJTkRfVE9BU1RWQUxVRToKIAkJY2FzZSBSRUxLSU5EX01BVFZJRVc6 Ci0JCQkodm9pZCkgaGVhcF9yZWxvcHRpb25zKHJlbC0+cmRfcmVsLT5yZWxraW5kLCBuZXdPcHRp b25zLCB0cnVlKTsKKwkJCSh2b2lkKSB0YWJsZV9yZWxvcHRpb25zKHJlbC0+cmRfdGFibGVhbS0+ YW1vcHRpb25zLCBuZXdPcHRpb25zLCByZWwtPnJkX3JlbC0+cmVsa2luZCwgdHJ1ZSk7CiAJCQli cmVhazsKIAkJY2FzZSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFOgogCQkJKHZvaWQpIHBhcnRp dGlvbmVkX3RhYmxlX3JlbG9wdGlvbnMobmV3T3B0aW9ucywgdHJ1ZSk7CkBAIC0xNDM0Myw3ICsx NDM0OCw3IEBAIEFURXhlY1NldFJlbE9wdGlvbnMoUmVsYXRpb24gcmVsLCBMaXN0ICpkZWZMaXN0 LCBBbHRlclRhYmxlVHlwZSBvcGVyYXRpb24sCiAJCQlicmVhazsKIAkJY2FzZSBSRUxLSU5EX0lO REVYOgogCQljYXNlIFJFTEtJTkRfUEFSVElUSU9ORURfSU5ERVg6Ci0JCQkodm9pZCkgaW5kZXhf cmVsb3B0aW9ucyhyZWwtPnJkX2luZGFtLT5hbW9wdGlvbnMsIG5ld09wdGlvbnMsIHRydWUpOwor CQkJKHZvaWQpIGluZGV4X3JlbG9wdGlvbnMocmVsLT5yZF9pbmRhbS0+YW1vcHRpb25zLCBuZXdP cHRpb25zLCByZWwtPnJkX3JlbC0+cmVsa2luZCwgdHJ1ZSk7CiAJCQlicmVhazsKIAkJZGVmYXVs dDoKIAkJCWVyZXBvcnQoRVJST1IsCkBAIC0xNDQ0Niw3ICsxNDQ1MSw3IEBAIEFURXhlY1NldFJl bE9wdGlvbnMoUmVsYXRpb24gcmVsLCBMaXN0ICpkZWZMaXN0LCBBbHRlclRhYmxlVHlwZSBvcGVy YXRpb24sCiAJCQkJCQkJCQkJIGRlZkxpc3QsICJ0b2FzdCIsIHZhbGlkbnNwcywgZmFsc2UsCiAJ CQkJCQkJCQkJIG9wZXJhdGlvbiA9PSBBVF9SZXNldFJlbE9wdGlvbnMpOwogCi0JCSh2b2lkKSBo ZWFwX3JlbG9wdGlvbnMoUkVMS0lORF9UT0FTVFZBTFVFLCBuZXdPcHRpb25zLCB0cnVlKTsKKwkJ KHZvaWQpIHRhYmxlX3JlbG9wdGlvbnModG9hc3RyZWwtPnJkX3RhYmxlYW0tPmFtb3B0aW9ucywg bmV3T3B0aW9ucywgUkVMS0lORF9UT0FTVFZBTFVFLCB0cnVlKTsKIAogCQltZW1zZXQocmVwbF92 YWwsIDAsIHNpemVvZihyZXBsX3ZhbCkpOwogCQltZW1zZXQocmVwbF9udWxsLCBmYWxzZSwgc2l6 ZW9mKHJlcGxfbnVsbCkpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMg Yi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwppbmRleCAzMGI1MWJmNGQzLi4zNTk4OTU1OGFk IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYworKysgYi9zcmMvYmFja2Vu ZC90Y29wL3V0aWxpdHkuYwpAQCAtMTE5NSw5ICsxMTk1LDYgQEAgUHJvY2Vzc1V0aWxpdHlTbG93 KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJCQkJCQkJCQl2YWxpZG5zcHMsCiAJCQkJCQkJ CQkJCQkJCQkJdHJ1ZSwKIAkJCQkJCQkJCQkJCQkJCQlmYWxzZSk7Ci0JCQkJCQkJKHZvaWQpIGhl YXBfcmVsb3B0aW9ucyhSRUxLSU5EX1RPQVNUVkFMVUUsCi0JCQkJCQkJCQkJCQkgICB0b2FzdF9v cHRpb25zLAotCQkJCQkJCQkJCQkJICAgdHJ1ZSk7CiAKIAkJCQkJCQlOZXdSZWxhdGlvbkNyZWF0 ZVRvYXN0VGFibGUoYWRkcmVzcy5vYmplY3RJZCwKIAkJCQkJCQkJCQkJCQkJdG9hc3Rfb3B0aW9u cyk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jIGIvc3Jj L2JhY2tlbmQvdXRpbHMvY2FjaGUvcmVsY2FjaGUuYwppbmRleCA0MDE0MGRlOTU4Li4yMGU4MGMy NGU3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9yZWxjYWNoZS5jCisrKyBi L3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3JlbGNhY2hlLmMKQEAgLTQ3NCw4ICs0NzQsMTAgQEAg UmVsYXRpb25QYXJzZVJlbE9wdGlvbnMoUmVsYXRpb24gcmVsYXRpb24sIEhlYXBUdXBsZSB0dXBs ZSkKIAl7CiAJCWNhc2UgUkVMS0lORF9SRUxBVElPTjoKIAkJY2FzZSBSRUxLSU5EX1RPQVNUVkFM VUU6Ci0JCWNhc2UgUkVMS0lORF9WSUVXOgogCQljYXNlIFJFTEtJTkRfTUFUVklFVzoKKwkJCWFt b3B0c2ZuID0gcmVsYXRpb24tPnJkX3RhYmxlYW0tPmFtb3B0aW9uczsKKwkJCWJyZWFrOworCQlj YXNlIFJFTEtJTkRfVklFVzoKIAkJY2FzZSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFOgogCQkJ YW1vcHRzZm4gPSBOVUxMOwogCQkJYnJlYWs7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nl c3MvYW1hcGkuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9hbWFwaS5oCmluZGV4IDI4MTAzOWVmNjcu LjM4OWE3NGZiYzMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9hbWFwaS5oCisrKyBi L3NyYy9pbmNsdWRlL2FjY2Vzcy9hbWFwaS5oCkBAIC0xMzgsNiArMTM4LDcgQEAgdHlwZWRlZiB2 b2lkICgqYW1jb3N0ZXN0aW1hdGVfZnVuY3Rpb24pIChzdHJ1Y3QgUGxhbm5lckluZm8gKnJvb3Qs CiAKIC8qIHBhcnNlIGluZGV4IHJlbG9wdGlvbnMgKi8KIHR5cGVkZWYgYnl0ZWEgKigqYW1vcHRp b25zX2Z1bmN0aW9uKSAoRGF0dW0gcmVsb3B0aW9ucywKKwkJCQkJCQkJCSAgY2hhciByZWxraW5k LAogCQkJCQkJCQkJICBib29sIHZhbGlkYXRlKTsKIAogLyogcmVwb3J0IEFNLCBpbmRleCwgb3Ig aW5kZXggY29sdW1uIHByb3BlcnR5ICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3Mv YnJpbl9pbnRlcm5hbC5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2JyaW5faW50ZXJuYWwuaAppbmRl eCA5N2RkYzkyNWIyLi4xY2FmN2M3M2M3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3Mv YnJpbl9pbnRlcm5hbC5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9icmluX2ludGVybmFsLmgK QEAgLTEwNyw3ICsxMDcsNyBAQCBleHRlcm4gSW5kZXhCdWxrRGVsZXRlUmVzdWx0ICpicmluYnVs a2RlbGV0ZShJbmRleFZhY3V1bUluZm8gKmluZm8sCiAJCQkJCQkJCQkJCSB2b2lkICpjYWxsYmFj a19zdGF0ZSk7CiBleHRlcm4gSW5kZXhCdWxrRGVsZXRlUmVzdWx0ICpicmludmFjdXVtY2xlYW51 cChJbmRleFZhY3V1bUluZm8gKmluZm8sCiAJCQkJCQkJCQkJCQlJbmRleEJ1bGtEZWxldGVSZXN1 bHQgKnN0YXRzKTsKLWV4dGVybiBieXRlYSAqYnJpbm9wdGlvbnMoRGF0dW0gcmVsb3B0aW9ucywg Ym9vbCB2YWxpZGF0ZSk7CitleHRlcm4gYnl0ZWEgKmJyaW5vcHRpb25zKERhdHVtIHJlbG9wdGlv bnMsIGNoYXIgcmVsa2luZCwgYm9vbCB2YWxpZGF0ZSk7CiAKIC8qIGJyaW5fdmFsaWRhdGUuYyAq LwogZXh0ZXJuIGJvb2wgYnJpbnZhbGlkYXRlKE9pZCBvcGNsYXNzb2lkKTsKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL2FjY2Vzcy9naW5fcHJpdmF0ZS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2dp bl9wcml2YXRlLmgKaW5kZXggNmRhNjQ5MjhiNi4uYmI2ODQyM2FiZSAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvYWNjZXNzL2dpbl9wcml2YXRlLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2dp bl9wcml2YXRlLmgKQEAgLTg5LDcgKzg5LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgR2luU3RhdGUKIAog CiAvKiBnaW51dGlsLmMgKi8KLWV4dGVybiBieXRlYSAqZ2lub3B0aW9ucyhEYXR1bSByZWxvcHRp b25zLCBib29sIHZhbGlkYXRlKTsKK2V4dGVybiBieXRlYSAqZ2lub3B0aW9ucyhEYXR1bSByZWxv cHRpb25zLCBjaGFyIHJlbGtpbmQsIGJvb2wgdmFsaWRhdGUpOwogZXh0ZXJuIHZvaWQgaW5pdEdp blN0YXRlKEdpblN0YXRlICpzdGF0ZSwgUmVsYXRpb24gaW5kZXgpOwogZXh0ZXJuIEJ1ZmZlciBH aW5OZXdCdWZmZXIoUmVsYXRpb24gaW5kZXgpOwogZXh0ZXJuIHZvaWQgR2luSW5pdEJ1ZmZlcihC dWZmZXIgYiwgdWludDMyIGYpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3Rf cHJpdmF0ZS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3RfcHJpdmF0ZS5oCmluZGV4IGVlMjc1 NjUwYmQuLjY1OGRhMTRiMzMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9naXN0X3By aXZhdGUuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdF9wcml2YXRlLmgKQEAgLTQ3OSw3 ICs0NzksNyBAQCBleHRlcm4gdm9pZCBnaXN0YWRqdXN0bWVtYmVycyhPaWQgb3BmYW1pbHlvaWQs CiAjZGVmaW5lIEdJU1RfTUlOX0ZJTExGQUNUT1IJCQkxMAogI2RlZmluZSBHSVNUX0RFRkFVTFRf RklMTEZBQ1RPUgkJOTAKIAotZXh0ZXJuIGJ5dGVhICpnaXN0b3B0aW9ucyhEYXR1bSByZWxvcHRp b25zLCBib29sIHZhbGlkYXRlKTsKK2V4dGVybiBieXRlYSAqZ2lzdG9wdGlvbnMoRGF0dW0gcmVs b3B0aW9ucywgY2hhciByZWxraW5kLCBib29sIHZhbGlkYXRlKTsKIGV4dGVybiBib29sIGdpc3Rw cm9wZXJ0eShPaWQgaW5kZXhfb2lkLCBpbnQgYXR0bm8sCiAJCQkJCQkgSW5kZXhBTVByb3BlcnR5 IHByb3AsIGNvbnN0IGNoYXIgKnByb3BuYW1lLAogCQkJCQkJIGJvb2wgKnJlcywgYm9vbCAqaXNu dWxsKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oYXNoLmggYi9zcmMvaW5jbHVk ZS9hY2Nlc3MvaGFzaC5oCmluZGV4IDllMDM1MjcwYTEuLmQ3MTQ0MWZmMjUgMTAwNjQ0Ci0tLSBh L3NyYy9pbmNsdWRlL2FjY2Vzcy9oYXNoLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hhc2gu aApAQCAtMzgwLDcgKzM4MCw3IEBAIGV4dGVybiBJbmRleEJ1bGtEZWxldGVSZXN1bHQgKmhhc2hi dWxrZGVsZXRlKEluZGV4VmFjdXVtSW5mbyAqaW5mbywKIAkJCQkJCQkJCQkJIHZvaWQgKmNhbGxi YWNrX3N0YXRlKTsKIGV4dGVybiBJbmRleEJ1bGtEZWxldGVSZXN1bHQgKmhhc2h2YWN1dW1jbGVh bnVwKEluZGV4VmFjdXVtSW5mbyAqaW5mbywKIAkJCQkJCQkJCQkJCUluZGV4QnVsa0RlbGV0ZVJl c3VsdCAqc3RhdHMpOwotZXh0ZXJuIGJ5dGVhICpoYXNob3B0aW9ucyhEYXR1bSByZWxvcHRpb25z LCBib29sIHZhbGlkYXRlKTsKK2V4dGVybiBieXRlYSAqaGFzaG9wdGlvbnMoRGF0dW0gcmVsb3B0 aW9ucywgY2hhciByZWxraW5kLCBib29sIHZhbGlkYXRlKTsKIGV4dGVybiBib29sIGhhc2h2YWxp ZGF0ZShPaWQgb3BjbGFzc29pZCk7CiBleHRlcm4gdm9pZCBoYXNoYWRqdXN0bWVtYmVycyhPaWQg b3BmYW1pbHlvaWQsCiAJCQkJCQkJICBPaWQgb3BjbGFzc29pZCwKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2FjY2Vzcy9uYnRyZWUuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9uYnRyZWUuaAppbmRl eCBkNjg0Nzg2MDk1Li44NTQ3YzZhODA2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3Mv bmJ0cmVlLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL25idHJlZS5oCkBAIC0xMjYwLDcgKzEy NjAsNyBAQCBleHRlcm4gdm9pZCBfYnRfZW5kX3ZhY3V1bShSZWxhdGlvbiByZWwpOwogZXh0ZXJu IHZvaWQgX2J0X2VuZF92YWN1dW1fY2FsbGJhY2soaW50IGNvZGUsIERhdHVtIGFyZyk7CiBleHRl cm4gU2l6ZSBCVHJlZVNobWVtU2l6ZSh2b2lkKTsKIGV4dGVybiB2b2lkIEJUcmVlU2htZW1Jbml0 KHZvaWQpOwotZXh0ZXJuIGJ5dGVhICpidG9wdGlvbnMoRGF0dW0gcmVsb3B0aW9ucywgYm9vbCB2 YWxpZGF0ZSk7CitleHRlcm4gYnl0ZWEgKmJ0b3B0aW9ucyhEYXR1bSByZWxvcHRpb25zLCBjaGFy IHJlbGtpbmQsIGJvb2wgdmFsaWRhdGUpOwogZXh0ZXJuIGJvb2wgYnRwcm9wZXJ0eShPaWQgaW5k ZXhfb2lkLCBpbnQgYXR0bm8sCiAJCQkJCSAgIEluZGV4QU1Qcm9wZXJ0eSBwcm9wLCBjb25zdCBj aGFyICpwcm9wbmFtZSwKIAkJCQkJICAgYm9vbCAqcmVzLCBib29sICppc251bGwpOwpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3JlbG9wdGlvbnMuaCBiL3NyYy9pbmNsdWRlL2FjY2Vz cy9yZWxvcHRpb25zLmgKaW5kZXggMWQ1YmZhNjJmZi4uOWJhNTdjYjVkNSAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvYWNjZXNzL3JlbG9wdGlvbnMuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3Mv cmVsb3B0aW9ucy5oCkBAIC0yMzUsMTEgKzIzNSwxNSBAQCBleHRlcm4gdm9pZCAqYnVpbGRfbG9j YWxfcmVsb3B0aW9ucyhsb2NhbF9yZWxvcHRzICpyZWxvcHRzLCBEYXR1bSBvcHRpb25zLAogCiBl eHRlcm4gYnl0ZWEgKmRlZmF1bHRfcmVsb3B0aW9ucyhEYXR1bSByZWxvcHRpb25zLCBib29sIHZh bGlkYXRlLAogCQkJCQkJCQkgcmVsb3B0X2tpbmQga2luZCk7Ci1leHRlcm4gYnl0ZWEgKmhlYXBf cmVsb3B0aW9ucyhjaGFyIHJlbGtpbmQsIERhdHVtIHJlbG9wdGlvbnMsIGJvb2wgdmFsaWRhdGUp OworCitleHRlcm4gYnl0ZWEgKnRhYmxlX3JlbG9wdGlvbnMoYW1vcHRpb25zX2Z1bmN0aW9uIGFt b3B0aW9ucywgRGF0dW0gcmVsb3B0aW9ucywKKwkJCQkJCQkJICBjaGFyIHJlbGtpbmQsIGJvb2wg dmFsaWRhdGUpOworZXh0ZXJuIGJ5dGVhICp0YWJsZV9yZWxvcHRpb25zX2FtKE9pZCBhY2Nlc3NN ZXRob2RJZCwgRGF0dW0gcmVsb3B0aW9ucywKKwkJCQkJCQkJICBjaGFyIHJlbGtpbmQsIGJvb2wg dmFsaWRhdGUpOwogZXh0ZXJuIGJ5dGVhICp2aWV3X3JlbG9wdGlvbnMoRGF0dW0gcmVsb3B0aW9u cywgYm9vbCB2YWxpZGF0ZSk7CiBleHRlcm4gYnl0ZWEgKnBhcnRpdGlvbmVkX3RhYmxlX3JlbG9w dGlvbnMoRGF0dW0gcmVsb3B0aW9ucywgYm9vbCB2YWxpZGF0ZSk7CiBleHRlcm4gYnl0ZWEgKmlu ZGV4X3JlbG9wdGlvbnMoYW1vcHRpb25zX2Z1bmN0aW9uIGFtb3B0aW9ucywgRGF0dW0gcmVsb3B0 aW9ucywKLQkJCQkJCQkgICBib29sIHZhbGlkYXRlKTsKKwkJCQkJCQkgICBjaGFyIHJlbGtpbmQs IGJvb2wgdmFsaWRhdGUpOwogZXh0ZXJuIGJ5dGVhICphdHRyaWJ1dGVfcmVsb3B0aW9ucyhEYXR1 bSByZWxvcHRpb25zLCBib29sIHZhbGlkYXRlKTsKIGV4dGVybiBieXRlYSAqdGFibGVzcGFjZV9y ZWxvcHRpb25zKERhdHVtIHJlbG9wdGlvbnMsIGJvb2wgdmFsaWRhdGUpOwogZXh0ZXJuIExPQ0tN T0RFIEFsdGVyVGFibGVHZXRSZWxPcHRpb25zTG9ja0xldmVsKExpc3QgKmRlZkxpc3QpOwpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3NwZ2lzdC5oIGIvc3JjL2luY2x1ZGUvYWNjZXNz L3NwZ2lzdC5oCmluZGV4IGZlMzFkMzJkYmUuLjljZWJhNDAwYzggMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2FjY2Vzcy9zcGdpc3QuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3Mvc3BnaXN0LmgK QEAgLTE5MCw3ICsxOTAsNyBAQCB0eXBlZGVmIHN0cnVjdCBzcGdMZWFmQ29uc2lzdGVudE91dAog CiAKIC8qIHNwZ3V0aWxzLmMgKi8KLWV4dGVybiBieXRlYSAqc3Bnb3B0aW9ucyhEYXR1bSByZWxv cHRpb25zLCBib29sIHZhbGlkYXRlKTsKK2V4dGVybiBieXRlYSAqc3Bnb3B0aW9ucyhEYXR1bSBy ZWxvcHRpb25zLCBjaGFyIHJlbGtpbmQsIGJvb2wgdmFsaWRhdGUpOwogCiAvKiBzcGdpbnNlcnQu YyAqLwogZXh0ZXJuIEluZGV4QnVpbGRSZXN1bHQgKnNwZ2J1aWxkKFJlbGF0aW9uIGhlYXAsIFJl bGF0aW9uIGluZGV4LApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3RhYmxlYW0uaCBi L3NyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmgKaW5kZXggYjE5ZDUwZWNjMi4uNjgxZDg3MmNi OCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3RhYmxlYW0uaAorKysgYi9zcmMvaW5j bHVkZS9hY2Nlc3MvdGFibGVhbS5oCkBAIC04NjYsNiArODY2LDExIEBAIHR5cGVkZWYgc3RydWN0 IFRhYmxlQW1Sb3V0aW5lCiAJCQkJCQkJCQkJICAgc3RydWN0IFNhbXBsZVNjYW5TdGF0ZSAqc2Nh bnN0YXRlLAogCQkJCQkJCQkJCSAgIFR1cGxlVGFibGVTbG90ICpzbG90KTsKIAorCS8qCisJICog VGhpcyBjYWxsYmFjayBpcyB1c2VkIHRvIHBhcnNlIHJlbG9wdGlvbnMgZm9yIHJlbGF0aW9uL21h dHZpZXcvdG9hc3QuCisJICovCisJYnl0ZWEgICAgICAgKigqYW1vcHRpb25zKShEYXR1bSByZWxv cHRpb25zLCBjaGFyIHJlbGtpbmQsIGJvb2wgdmFsaWRhdGUpOworCiB9IFRhYmxlQW1Sb3V0aW5l OwogCiAKQEAgLTIwOTUsNiArMjEwMCw3IEBAIGV4dGVybiB2b2lkIHRhYmxlX2Jsb2NrX3JlbGF0 aW9uX2VzdGltYXRlX3NpemUoUmVsYXRpb24gcmVsLAogICovCiAKIGV4dGVybiBjb25zdCBUYWJs ZUFtUm91dGluZSAqR2V0VGFibGVBbVJvdXRpbmUoT2lkIGFtaGFuZGxlcik7CitleHRlcm4gY29u c3QgVGFibGVBbVJvdXRpbmUgKkdldFRhYmxlQW1Sb3V0aW5lQnlBbUlkKE9pZCBhbW9pZCk7CiBl eHRlcm4gY29uc3QgVGFibGVBbVJvdXRpbmUgKkdldEhlYXBhbVRhYmxlQW1Sb3V0aW5lKHZvaWQp OwogCiAjZW5kaWYJCQkJCQkJLyogVEFCTEVBTV9IICovCg== --=_Part_201176_630817964.1683276279979--