Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vRYPb-00G78p-20 for pgsql-hackers@arkaria.postgresql.org; Fri, 05 Dec 2025 16:12:04 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vRYPa-008zM3-0o for pgsql-hackers@arkaria.postgresql.org; Fri, 05 Dec 2025 16:12:02 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with utf8esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vRYPX-008zLt-0c for pgsql-hackers@lists.postgresql.org; Fri, 05 Dec 2025 16:12:02 +0000 Received: from out203-205-221-231.mail.qq.com ([203.205.221.231]) by makus.postgresql.org with utf8esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vRYPN-003Iny-21 for pgsql-hackers@lists.postgresql.org; Fri, 05 Dec 2025 16:11:54 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qq.com; s=s201512; t=1764951100; bh=atvu3cLhLT6AVJ1BiU8/Mk0d/BJymlnRqbIvHIKahSA=; h=From:To:Cc:Subject:Date:References:In-Reply-To; b=c6ijwq/Zqt+rFFz+3PAqRDm6X4SD1qc7Yh4ztDGcl7KAlZNyYSMhDNvi8bbeb9PvW P+kiiiqhEsJRR40/TdP1wMyn58G+Ldw282Kwv4qNHq6NBsbqAxRwTacq8wutkg/kNq 3Tyj3DiBkWV2v91ICvL8fvob/DvpgyXgUoH8b55I= X-QQ-XMRINFO: MSVp+SPm3vtS1Vd6Y4Mggwc= X-QQ-XMAILINFO: OQac6g2KrvnWxNgWA65KlgIMjw9JNseO9ZPQvc6VgxlL483KWtYejmv3VazNBa ZRwr6u3Ez1q4i5sT4TOcJXkE8h4yN5DZC+qUMkXg1AHjK+CzJwGOQBSTlYYlIq8gtPP9b7U+cbNPU +TlTR20WxvvhICyZrfz8dmH8iiHl6XbFzu1O9Njv0ft1VMY/W1+N0GO4Bz429jWn4t2IEYjV4ZsI0 HpTyi18/MAsrQQkLVd2BXQxdI2WgNk9YG+djdxW/kZDbp6Uhu49ifkGH4U5lhaaV2tiSbvpKMq5iu hRHhEDpNPpzSGLhbiz4RJt1araorjn22rlaiu8Wg80LADe0xGRyFV0TaErQAHMg6VFydy5npVWvmk 9Fqq18DY3ZHBhWkXHVCc100vEWFbwlsZo0UV3G+Wcdxo+hdYy3TCVlYKf8anaArQc3kSpmYgECl4P 8HBVqLxjSXtKrV8Wmj9pgikudj4tUeGTCugc2TPMtbQT23gXbLjG/ARVpxG0mgke46lLlSLb0tTqb W/0JUYwm8gTh7HIfyExZSdaFScmIUBnuHgka6F4CgODcza0mRtx9V3TK5VDtDQywzcUukyRqKrZaV jGDtZ/LtLGTwMTnMdqEYr04AsvwZ1FWmVkmEcLa9dSd+28jAVna1tboapvGtYegybMhHioA1NugBt stygk3UcwzkSZO/sK+fDBk5ond7MCkTPb5AA8WldSh0GlW1+P40Le3GO+P1wH1CXxaYqRWA+xIUgu KJQOPiKfpKfUdERBhoPjjmzcZiqMufAdknqoE1+rkqkrgHaH9SWUEqqfwoexm+jrAcfZmM/Mac5Xe 0FKyzRZBWf7H+ydy5u0vw1jwknGvF/ludkSiFELgjMnDs3DgU0IMQHtZG3TU0SuOZha9GK3vUNoKC JqDGGaCuazDFSwA/XPEvQols8onm3iVKFae1sqKbVOKXnAYNnaw5ezKoUu03IAjvNu2NHe8426h2L 01VejWJlKt0Pk+D2xjPFM8pV6i/7VfAkObfx3RhVy/Wz4zAIYuXxzGE+q0WvYDICTGylWNqtSSf2L jQhaoMysvC5LH7Y0= From: "=?utf-8?B?Y2NhNTUwNw==?=" To: "=?utf-8?B?Sm9obiBOYXlsb3I=?=" , "=?utf-8?B?U2FtaSBJbXNlaWg=?=" Cc: "=?utf-8?B?SGVpa2tpIExpbm5ha2FuZ2Fz?=" , "=?utf-8?B?cGdzcWwtaGFja2Vycw==?=" Subject: Re: Support loser tree for k-way merge Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_6933043B_C1B2AAE0_77317C6A" Content-Transfer-Encoding: 8Bit Date: Sat, 6 Dec 2025 00:11:39 +0800 X-Priority: 3 Message-ID: X-QQ-MIME: TCMime 1.0 by Tencent X-Mailer: QQMail 2.x X-QQ-Mailer: QQMail 2.x References: <28f47336-84e2-445e-8216-d1ce7d3ddc3e@iki.fi> In-Reply-To: X-QQ-mid: xmseza62-0t1764951099t4lmdkv9i List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. ------=_NextPart_6933043B_C1B2AAE0_77317C6A Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGksDQoNCkNhbiB3ZSBzdXBwb3J0IGxvc2VyIHRyZWUgZmlyc3QgYW5kIHNldCB0aGUgZGVm YXVsdCB2YWx1ZSBvZiBlbmFibGVfbG9zZXJfdHJlZSB0byBvZmY/DQoNCkFueXdheSwgSSBh dHRhY2ggMiBwYXRjaGVzLiAocGFzcyBjaGVjay13b3JsZCkNCg0KdjItMDAwMTogc3VwcG9y dCB0dXBsZXNvcnRfaGVhcF9idWlsZCgpIHdoaWNoIGNhbiBidWlsZCBhIHZhbGlkIGhlYXAg aW4gTyhuKSwgYmV0dGVyDQp0aGFuIGN1cnJlbnRseSBPKG4gbG9nIG4pLiBUaGlzIGFsc28g bWFrZSBiZWdpbm1lcmdlKCkgbW9yZSBjbGVhciBhbmQgc2ltcGxlIHdoZW4NCnN1cHBvcnRp bmcgbG9zZXIgdHJlZS4NCg0KdjItMDAwMjogc3VwcG9ydCB0aGUgbG9zZXIgdHJlZS4NCg0K LS0NClJlZ2FyZHMsDQpDaGFuZ0FvIENoZW4NCg== ------=_NextPart_6933043B_C1B2AAE0_77317C6A Content-Type: application/octet-stream; charset="utf-8"; name="v2-0001-Support-tuplesort_heap_build-in-tuplesort.c.patch" Content-Disposition: attachment; filename="v2-0001-Support-tuplesort_heap_build-in-tuplesort.c.patch" Content-Transfer-Encoding: base64 RnJvbSBiZWY1MTRhNjg3YmNkYzZmMTNiODRkZWQxN2Q2MmFiM2NmMWZmODQ4IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDaGFuZ0FvIENoZW4gPGNjYTU1MDdAcXEuY29tPgpE YXRlOiBGcmksIDUgRGVjIDIwMjUgMTQ6Mzc6MjEgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy IDEvMl0gU3VwcG9ydCB0dXBsZXNvcnRfaGVhcF9idWlsZCgpIGluIHR1cGxlc29ydC5jLgoK QnVpbGQgYSB2YWxpZCBoZWFwIHdpdGggbiB0dXBsZXMgYnkgdXNpbmcgdHVwbGVzb3J0X2hl YXBfaW5zZXJ0KCkgaXMKTyhuIGxvZyBuKSwgd2UgY2FuIHVzZSB0dXBsZXNvcnRfaGVhcF9i dWlsZCgpIHRvIG9wdGltaXplIGl0LCB3aGljaAppcyBPKG4pLgotLS0KIHNyYy9iYWNrZW5k L3V0aWxzL3NvcnQvdHVwbGVzb3J0LmMgfCAxMDMgKysrKysrKysrKysrKysrLS0tLS0tLS0t LS0tLS0KIDEgZmlsZSBjaGFuZ2VkLCA1MyBpbnNlcnRpb25zKCspLCA1MCBkZWxldGlvbnMo LSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9zb3J0L3R1cGxlc29ydC5jIGIv c3JjL2JhY2tlbmQvdXRpbHMvc29ydC90dXBsZXNvcnQuYwppbmRleCA1ZDQ0MTFkYzMzZi4u ZTI4YjhjZmE4NjggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL3NvcnQvdHVwbGVz b3J0LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvc29ydC90dXBsZXNvcnQuYwpAQCAtNDY1 LDcgKzQ2NSw3IEBAIHN0YXRpYyB2b2lkIGR1bXB0dXBsZXMoVHVwbGVzb3J0c3RhdGUgKnN0 YXRlLCBib29sIGFsbHR1cGxlcyk7CiBzdGF0aWMgdm9pZCBtYWtlX2JvdW5kZWRfaGVhcChU dXBsZXNvcnRzdGF0ZSAqc3RhdGUpOwogc3RhdGljIHZvaWQgc29ydF9ib3VuZGVkX2hlYXAo VHVwbGVzb3J0c3RhdGUgKnN0YXRlKTsKIHN0YXRpYyB2b2lkIHR1cGxlc29ydF9zb3J0X21l bXR1cGxlcyhUdXBsZXNvcnRzdGF0ZSAqc3RhdGUpOwotc3RhdGljIHZvaWQgdHVwbGVzb3J0 X2hlYXBfaW5zZXJ0KFR1cGxlc29ydHN0YXRlICpzdGF0ZSwgU29ydFR1cGxlICp0dXBsZSk7 CitzdGF0aWMgdm9pZCB0dXBsZXNvcnRfaGVhcF9idWlsZChUdXBsZXNvcnRzdGF0ZSAqc3Rh dGUpOwogc3RhdGljIHZvaWQgdHVwbGVzb3J0X2hlYXBfcmVwbGFjZV90b3AoVHVwbGVzb3J0 c3RhdGUgKnN0YXRlLCBTb3J0VHVwbGUgKnR1cGxlKTsKIHN0YXRpYyB2b2lkIHR1cGxlc29y dF9oZWFwX2RlbGV0ZV90b3AoVHVwbGVzb3J0c3RhdGUgKnN0YXRlKTsKIHN0YXRpYyB2b2lk IHJldmVyc2VkaXJlY3Rpb24oVHVwbGVzb3J0c3RhdGUgKnN0YXRlKTsKQEAgLTIyNjksMTAg KzIyNjksMTQgQEAgYmVnaW5tZXJnZShUdXBsZXNvcnRzdGF0ZSAqc3RhdGUpCiAKIAkJaWYg KG1lcmdlcmVhZG5leHQoc3RhdGUsIHN0YXRlLT5pbnB1dFRhcGVzW3NyY1RhcGVJbmRleF0s ICZ0dXApKQogCQl7CisJCQlBc3NlcnQoc3RhdGUtPm1lbXR1cGNvdW50IDwgc3RhdGUtPm1l bXR1cHNpemUpOworCQkJQ0hFQ0tfRk9SX0lOVEVSUlVQVFMoKTsKIAkJCXR1cC5zcmN0YXBl ID0gc3JjVGFwZUluZGV4OwotCQkJdHVwbGVzb3J0X2hlYXBfaW5zZXJ0KHN0YXRlLCAmdHVw KTsKKwkJCXN0YXRlLT5tZW10dXBsZXNbc3RhdGUtPm1lbXR1cGNvdW50KytdID0gdHVwOwog CQl9CiAJfQorCisJdHVwbGVzb3J0X2hlYXBfYnVpbGQoc3RhdGUpOwogfQogCiAvKgpAQCAt MjU5MywzMiArMjU5NywyNSBAQCBtYWtlX2JvdW5kZWRfaGVhcChUdXBsZXNvcnRzdGF0ZSAq c3RhdGUpCiAJLyogUmV2ZXJzZSBzb3J0IGRpcmVjdGlvbiBzbyBsYXJnZXN0IGVudHJ5IHdp bGwgYmUgYXQgcm9vdCAqLwogCXJldmVyc2VkaXJlY3Rpb24oc3RhdGUpOwogCi0Jc3RhdGUt Pm1lbXR1cGNvdW50ID0gMDsJCS8qIG1ha2UgdGhlIGhlYXAgZW1wdHkgKi8KLQlmb3IgKGkg PSAwOyBpIDwgdHVwY291bnQ7IGkrKykKKwkvKiBCdWlsZCBhIHZhbGlkIGhlYXAgZnJvbSB0 aGUgZmlyc3QgInN0YXRlLT5ib3VuZCIgdHVwbGVzICovCisJc3RhdGUtPm1lbXR1cGNvdW50 ID0gc3RhdGUtPmJvdW5kOworCXR1cGxlc29ydF9oZWFwX2J1aWxkKHN0YXRlKTsKKworCS8q IFByb2Nlc3MgdGhlIHJlbWFpbmluZyB0dXBsZXMgKi8KKwlmb3IgKGkgPSBzdGF0ZS0+Ym91 bmQ7IGkgPCB0dXBjb3VudDsgaSsrKQogCXsKLQkJaWYgKHN0YXRlLT5tZW10dXBjb3VudCA8 IHN0YXRlLT5ib3VuZCkKKwkJLyoKKwkJICogVGhlIGhlYXAgaXMgZnVsbC4gIFJlcGxhY2Ug dGhlIGxhcmdlc3QgZW50cnkgd2l0aCB0aGUgbmV3CisJCSAqIHR1cGxlLCBvciBqdXN0IGRp c2NhcmQgaXQsIGlmIGl0J3MgbGFyZ2VyIHRoYW4gYW55dGhpbmcgYWxyZWFkeQorCQkgKiBp biB0aGUgaGVhcC4KKwkJICovCisJCWlmIChDT01QQVJFVFVQKHN0YXRlLCAmc3RhdGUtPm1l bXR1cGxlc1tpXSwgJnN0YXRlLT5tZW10dXBsZXNbMF0pIDw9IDApCiAJCXsKLQkJCS8qIElu c2VydCBuZXh0IHR1cGxlIGludG8gaGVhcCAqLwotCQkJLyogTXVzdCBjb3B5IHNvdXJjZSB0 dXBsZSB0byBhdm9pZCBwb3NzaWJsZSBvdmVyd3JpdGUgKi8KLQkJCVNvcnRUdXBsZQlzdHVw ID0gc3RhdGUtPm1lbXR1cGxlc1tpXTsKLQotCQkJdHVwbGVzb3J0X2hlYXBfaW5zZXJ0KHN0 YXRlLCAmc3R1cCk7CisJCQlmcmVlX3NvcnRfdHVwbGUoc3RhdGUsICZzdGF0ZS0+bWVtdHVw bGVzW2ldKTsKKwkJCUNIRUNLX0ZPUl9JTlRFUlJVUFRTKCk7CiAJCX0KIAkJZWxzZQotCQl7 Ci0JCQkvKgotCQkJICogVGhlIGhlYXAgaXMgZnVsbC4gIFJlcGxhY2UgdGhlIGxhcmdlc3Qg ZW50cnkgd2l0aCB0aGUgbmV3Ci0JCQkgKiB0dXBsZSwgb3IganVzdCBkaXNjYXJkIGl0LCBp ZiBpdCdzIGxhcmdlciB0aGFuIGFueXRoaW5nIGFscmVhZHkKLQkJCSAqIGluIHRoZSBoZWFw LgotCQkJICovCi0JCQlpZiAoQ09NUEFSRVRVUChzdGF0ZSwgJnN0YXRlLT5tZW10dXBsZXNb aV0sICZzdGF0ZS0+bWVtdHVwbGVzWzBdKSA8PSAwKQotCQkJewotCQkJCWZyZWVfc29ydF90 dXBsZShzdGF0ZSwgJnN0YXRlLT5tZW10dXBsZXNbaV0pOwotCQkJCUNIRUNLX0ZPUl9JTlRF UlJVUFRTKCk7Ci0JCQl9Ci0JCQllbHNlCi0JCQkJdHVwbGVzb3J0X2hlYXBfcmVwbGFjZV90 b3Aoc3RhdGUsICZzdGF0ZS0+bWVtdHVwbGVzW2ldKTsKLQkJfQorCQkJdHVwbGVzb3J0X2hl YXBfcmVwbGFjZV90b3Aoc3RhdGUsICZzdGF0ZS0+bWVtdHVwbGVzW2ldKTsKIAl9CiAKIAlB c3NlcnQoc3RhdGUtPm1lbXR1cGNvdW50ID09IHN0YXRlLT5ib3VuZCk7CkBAIC0yNzIxLDQw ICsyNzE4LDQ2IEBAIHR1cGxlc29ydF9zb3J0X21lbXR1cGxlcyhUdXBsZXNvcnRzdGF0ZSAq c3RhdGUpCiB9CiAKIC8qCi0gKiBJbnNlcnQgYSBuZXcgdHVwbGUgaW50byBhbiBlbXB0eSBv ciBleGlzdGluZyBoZWFwLCBtYWludGFpbmluZyB0aGUKLSAqIGhlYXAgaW52YXJpYW50LiAg Q2FsbGVyIGlzIHJlc3BvbnNpYmxlIGZvciBlbnN1cmluZyB0aGVyZSdzIHJvb20uCi0gKgot ICogTm90ZTogRm9yIHNvbWUgY2FsbGVycywgdHVwbGUgcG9pbnRzIHRvIGEgbWVtdHVwbGVz W10gZW50cnkgYWJvdmUgdGhlCi0gKiBlbmQgb2YgdGhlIGhlYXAuICBUaGlzIGlzIHNhZmUg YXMgbG9uZyBhcyBpdCdzIG5vdCBpbW1lZGlhdGVseSBhZGphY2VudAotICogdG8gdGhlIGVu ZCBvZiB0aGUgaGVhcCAoaWUsIGluIHRoZSBbbWVtdHVwY291bnRdIGFycmF5IGVudHJ5KSAt LS0gaWYgaXQKLSAqIGlzLCBpdCBtaWdodCBnZXQgb3ZlcndyaXR0ZW4gYmVmb3JlIGJlaW5n IG1vdmVkIGludG8gdGhlIGhlYXAhCisgKiBCdWlsZCBhIHZhbGlkIGhlYXAgZnJvbSBtZW10 dXBsZXNbXS4KICAqLwogc3RhdGljIHZvaWQKLXR1cGxlc29ydF9oZWFwX2luc2VydChUdXBs ZXNvcnRzdGF0ZSAqc3RhdGUsIFNvcnRUdXBsZSAqdHVwbGUpCit0dXBsZXNvcnRfaGVhcF9i dWlsZChUdXBsZXNvcnRzdGF0ZSAqc3RhdGUpCiB7Ci0JU29ydFR1cGxlICAqbWVtdHVwbGVz OwotCWludAkJCWo7Ci0KLQltZW10dXBsZXMgPSBzdGF0ZS0+bWVtdHVwbGVzOwotCUFzc2Vy dChzdGF0ZS0+bWVtdHVwY291bnQgPCBzdGF0ZS0+bWVtdHVwc2l6ZSk7Ci0KLQlDSEVDS19G T1JfSU5URVJSVVBUUygpOworCVNvcnRUdXBsZSAgICptZW10dXBsZXMgPSBzdGF0ZS0+bWVt dHVwbGVzOworCVNvcnRUdXBsZQkgc3R1cDsKKwlpbnQgICAgICAgICAgaG9sZTsKKwl1bnNp Z25lZCBpbnQgaSwgaiwgbjsKIAogCS8qCi0JICogU2lmdC11cCB0aGUgbmV3IGVudHJ5LCBw ZXIgS251dGggNS4yLjMgZXhlcmNpc2UgMTYuIE5vdGUgdGhhdCBLbnV0aCBpcwotCSAqIHVz aW5nIDEtYmFzZWQgYXJyYXkgaW5kZXhlcywgbm90IDAtYmFzZWQuCisJICogc3RhdGUtPm1l bXR1cGNvdW50IGlzICJpbnQiLCBidXQgd2UgdXNlICJ1bnNpZ25lZCBpbnQiIGZvciBpLCBq LCBuLgorCSAqIFRoaXMgcHJldmVudHMgb3ZlcmZsb3cgaW4gdGhlICIyICogaSArIDEiIGNh bGN1bGF0aW9uLCBzaW5jZSBhdCB0aGUgdG9wCisJICogb2YgdGhlIGxvb3Agd2UgbXVzdCBo YXZlIGkgPCBuIDw9IElOVF9NQVggPD0gVUlOVF9NQVgvMi4KIAkgKi8KLQlqID0gc3RhdGUt Pm1lbXR1cGNvdW50Kys7Ci0Jd2hpbGUgKGogPiAwKQorCW4gPSBzdGF0ZS0+bWVtdHVwY291 bnQ7CisJZm9yIChob2xlID0gKHN0YXRlLT5tZW10dXBjb3VudCAtIDIpIC8gMjsgaG9sZSA+ PSAwOyBob2xlLS0pCiAJewotCQlpbnQJCQlpID0gKGogLSAxKSA+PiAxOwotCi0JCWlmIChD T01QQVJFVFVQKHN0YXRlLCB0dXBsZSwgJm1lbXR1cGxlc1tpXSkgPj0gMCkKLQkJCWJyZWFr OwotCQltZW10dXBsZXNbal0gPSBtZW10dXBsZXNbaV07Ci0JCWogPSBpOworCQlDSEVDS19G T1JfSU5URVJSVVBUUygpOworCQkvKiBpIGlzIHdoZXJlIHRoZSAiaG9sZSIgaXMgKi8KKwkJ aSA9IGhvbGU7CisJCS8qIGNvcHkgbWVtdHVwbGVzW2ldIGJlY2F1c2UgaXQgd2lsbCBnZXQg b3ZlcndyaXR0ZW4gYmVsb3cgKi8KKwkJc3R1cCA9IG1lbXR1cGxlc1tpXTsKKwkJLyogc2lm dCBkb3duICovCisJCWZvciAoOzspCisJCXsKKwkJCWogPSAyICogaSArIDE7CisKKwkJCWlm IChqID49IG4pCisJCQkJYnJlYWs7CisJCQlpZiAoaiArIDEgPCBuICYmCisJCQkJQ09NUEFS RVRVUChzdGF0ZSwgJm1lbXR1cGxlc1tqXSwgJm1lbXR1cGxlc1tqICsgMV0pID4gMCkKKwkJ CQlqKys7CisJCQlpZiAoQ09NUEFSRVRVUChzdGF0ZSwgJnN0dXAsICZtZW10dXBsZXNbal0p IDw9IDApCisJCQkJYnJlYWs7CisJCQltZW10dXBsZXNbaV0gPSBtZW10dXBsZXNbal07CisJ CQlpID0gajsKKwkJfQorCQltZW10dXBsZXNbaV0gPSBzdHVwOwogCX0KLQltZW10dXBsZXNb al0gPSAqdHVwbGU7CiB9CiAKIC8qCi0tIAoyLjUyLjAKCg== ------=_NextPart_6933043B_C1B2AAE0_77317C6A Content-Type: application/octet-stream; charset="utf-8"; name="v2-0002-Support-loser-tree-for-k-way-merge.patch" Content-Disposition: attachment; filename="v2-0002-Support-loser-tree-for-k-way-merge.patch" Content-Transfer-Encoding: base64 RnJvbSA5ZGJmMDdmMjhkMjU3YmQ2YWVmOGJhY2IzODA3NmYwZGE5ZmM4YTQ1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBDaGFuZ0FvIENoZW4gPGNjYTU1MDdAcXEuY29tPgpE YXRlOiBGcmksIDUgRGVjIDIwMjUgMjM6NDg6MDUgKzA4MDAKU3ViamVjdDogW1BBVENIIHYy IDIvMl0gU3VwcG9ydCBsb3NlciB0cmVlIGZvciBrLXdheSBtZXJnZS4KClRoZSBsb3NlciB0 cmVlIHVzdWFsbHkgaGFzIGZld2VyIGNvbXBhcmlzb25zIHRoYW4gdGhlIGhlYXAgZHVyaW5n Cmstd2F5IG1lcmdlLiBCdXQgdGhlIGhlYXAgbWF5YmUgYmV0dGVyIGlmIHRoZSBjYXJkaW5h bGl0eSBvZiB0aGUKaW5wdXQgZGF0YSBpcyB2ZXJ5IGxvdy4gQWRkIGEgR1VDICdlbmFibGVf bG9zZXJfdHJlZScgdG8gY29udHJvbAp0aGUgdXNlIG9mIGxvc2VyIHRyZWUsIGRlZmF1bHQg dG8gb2ZmLgotLS0KIGRvYy9zcmMvc2dtbC9jb25maWcuc2dtbCAgICAgICAgICAgICAgICAg ICAgICB8ICAxNCArKwogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfcGFyYW1ldGVycy5k YXQgICAgIHwgICA3ICsKIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25m LnNhbXBsZSB8ICAgMSArCiBzcmMvYmFja2VuZC91dGlscy9zb3J0L3R1cGxlc29ydC5jICAg ICAgICAgICAgfCAyMTggKysrKysrKysrKysrKystLS0tCiBzcmMvaW5jbHVkZS91dGlscy9n dWMuaCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zeXN2aWV3cy5vdXQgICAgICAgIHwgICAzICstCiA2IGZpbGVzIGNoYW5nZWQs IDIwMiBpbnNlcnRpb25zKCspLCA0MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvY29uZmlnLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKaW5kZXgg NDA1Yzk2ODliZDAuLjAzMTU5MWJiODIwIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY29u ZmlnLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCkBAIC01NjE3LDYgKzU2 MTcsMjAgQEAgQU5ZIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5udW1fc3luYzwv cmVwbGFjZWFibGU+ICggPHJlcGxhY2VhYmxlIGNsYXNzPSIKICAgICAgIDwvbGlzdGl0ZW0+ CiAgICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgIDx2YXJsaXN0ZW50cnkgaWQ9Imd1Yy1l bmFibGUtbG9zZXItdHJlZSIgeHJlZmxhYmVsPSJlbmFibGVfbG9zZXJfdHJlZSI+CisgICAg ICA8dGVybT48dmFybmFtZT5lbmFibGVfbG9zZXJfdHJlZTwvdmFybmFtZT4gKDx0eXBlPmJv b2xlYW48L3R5cGU+KQorICAgICAgPGluZGV4dGVybT4KKyAgICAgICA8cHJpbWFyeT48dmFy bmFtZT5lbmFibGVfbG9zZXJfdHJlZTwvdmFybmFtZT4gY29uZmlndXJhdGlvbiBwYXJhbWV0 ZXI8L3ByaW1hcnk+CisgICAgICA8L2luZGV4dGVybT4KKyAgICAgIDwvdGVybT4KKyAgICAg IDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAgICAgICAgRW5hYmxlcyBvciBkaXNhYmxl cyB0aGUgZXh0ZXJuYWwgay13YXkgbWVyZ2UncyB1c2Ugb2YgbG9zZXIgdHJlZS4KKyAgICAg ICAgVGhlIGRlZmF1bHQgaXMgPGxpdGVyYWw+b2ZmPC9saXRlcmFsPi4KKyAgICAgICA8L3Bh cmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgICA8 dmFybGlzdGVudHJ5IGlkPSJndWMtZW5hYmxlLW1hdGVyaWFsIiB4cmVmbGFiZWw9ImVuYWJs ZV9tYXRlcmlhbCI+CiAgICAgICA8dGVybT48dmFybmFtZT5lbmFibGVfbWF0ZXJpYWw8L3Zh cm5hbWU+ICg8dHlwZT5ib29sZWFuPC90eXBlPikKICAgICAgIDxpbmRleHRlcm0+CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y19wYXJhbWV0ZXJzLmRhdCBiL3Ny Yy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3BhcmFtZXRlcnMuZGF0CmluZGV4IDNiOWQ4MzQ5 MDc4Li5jYmVjZTkxMTQ5NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9n dWNfcGFyYW1ldGVycy5kYXQKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfcGFy YW1ldGVycy5kYXQKQEAgLTg4Miw2ICs4ODIsMTMgQEAKICAgYm9vdF92YWwgPT4gJ3RydWUn LAogfSwKIAoreyBuYW1lID0+ICdlbmFibGVfbG9zZXJfdHJlZScsIHR5cGUgPT4gJ2Jvb2wn LCBjb250ZXh0ID0+ICdQR0NfVVNFUlNFVCcsIGdyb3VwID0+ICdRVUVSWV9UVU5JTkdfTUVU SE9EJywKKyAgc2hvcnRfZGVzYyA9PiAnRW5hYmxlcyBsb3NlciB0cmVlIGZvciBleHRlcm5h bCBrLXdheSBtZXJnZS4nLAorICBmbGFncyA9PiAnR1VDX0VYUExBSU4nLAorICB2YXJpYWJs ZSA9PiAnZW5hYmxlX2xvc2VyX3RyZWUnLAorICBib290X3ZhbCA9PiAnZmFsc2UnLAorfSwK KwogeyBuYW1lID0+ICdlbmFibGVfbWF0ZXJpYWwnLCB0eXBlID0+ICdib29sJywgY29udGV4 dCA9PiAnUEdDX1VTRVJTRVQnLCBncm91cCA9PiAnUVVFUllfVFVOSU5HX01FVEhPRCcsCiAg IHNob3J0X2Rlc2MgPT4gJ0VuYWJsZXMgdGhlIHBsYW5uZXJcJ3MgdXNlIG9mIG1hdGVyaWFs aXphdGlvbi4nLAogICBmbGFncyA9PiAnR1VDX0VYUExBSU4nLApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIGIvc3JjL2JhY2tl bmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCmluZGV4IGRjOWUyMjU1Zjhh Li4yZmZiYTkxOGE0MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0 Z3Jlc3FsLmNvbmYuc2FtcGxlCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdy ZXNxbC5jb25mLnNhbXBsZQpAQCAtNDEyLDYgKzQxMiw3IEBACiAjZW5hYmxlX2luY3JlbWVu dGFsX3NvcnQgPSBvbgogI2VuYWJsZV9pbmRleHNjYW4gPSBvbgogI2VuYWJsZV9pbmRleG9u bHlzY2FuID0gb24KKyNlbmFibGVfbG9zZXJfdHJlZSA9IG9mZgogI2VuYWJsZV9tYXRlcmlh bCA9IG9uCiAjZW5hYmxlX21lbW9pemUgPSBvbgogI2VuYWJsZV9tZXJnZWpvaW4gPSBvbgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvc29ydC90dXBsZXNvcnQuYyBiL3NyYy9i YWNrZW5kL3V0aWxzL3NvcnQvdHVwbGVzb3J0LmMKaW5kZXggZTI4YjhjZmE4NjguLjU3YzNk MDI2NmRjIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9zb3J0L3R1cGxlc29ydC5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL3NvcnQvdHVwbGVzb3J0LmMKQEAgLTQyLDE2ICs0 MiwxNiBAQAogICogZW5kIG9mIHRoZSBpbnB1dCBpcyByZWFjaGVkLCB3ZSBkdW1wIG91dCBy ZW1haW5pbmcgdHVwbGVzIGluIG1lbW9yeSBpbnRvCiAgKiBhIGZpbmFsIHJ1biwgdGhlbiBt ZXJnZSB0aGUgcnVucy4KICAqCi0gKiBXaGVuIG1lcmdpbmcgcnVucywgd2UgdXNlIGEgaGVh cCBjb250YWluaW5nIGp1c3QgdGhlIGZyb250bW9zdCB0dXBsZSBmcm9tCi0gKiBlYWNoIHNv dXJjZSBydW47IHdlIHJlcGVhdGVkbHkgb3V0cHV0IHRoZSBzbWFsbGVzdCB0dXBsZSBhbmQg cmVwbGFjZSBpdAotICogd2l0aCB0aGUgbmV4dCB0dXBsZSBmcm9tIGl0cyBzb3VyY2UgdGFw ZSAoaWYgYW55KS4gIFdoZW4gdGhlIGhlYXAgZW1wdGllcywKLSAqIHRoZSBtZXJnZSBpcyBj b21wbGV0ZS4gIFRoZSBiYXNpYyBtZXJnZSBhbGdvcml0aG0gdGh1cyBuZWVkcyB2ZXJ5IGxp dHRsZQotICogbWVtb3J5IC0tLSBvbmx5IE0gdHVwbGVzIGZvciBhbiBNLXdheSBtZXJnZSwg YW5kIE0gaXMgY29uc3RyYWluZWQgdG8gYQotICogc21hbGwgbnVtYmVyLiAgSG93ZXZlciwg d2UgY2FuIHN0aWxsIG1ha2UgZ29vZCB1c2Ugb2Ygb3VyIGZ1bGwgd29ya01lbQotICogYWxs b2NhdGlvbiBieSBwcmUtcmVhZGluZyBhZGRpdGlvbmFsIGJsb2NrcyBmcm9tIGVhY2ggc291 cmNlIHRhcGUuICBXaXRob3V0Ci0gKiBwcmVyZWFkaW5nLCBvdXIgYWNjZXNzIHBhdHRlcm4g dG8gdGhlIHRlbXBvcmFyeSBmaWxlIHdvdWxkIGJlIHZlcnkgZXJyYXRpYzsKLSAqIG9uIGF2 ZXJhZ2Ugd2UnZCByZWFkIG9uZSBibG9jayBmcm9tIGVhY2ggb2YgTSBzb3VyY2UgdGFwZXMg ZHVyaW5nIHRoZSBzYW1lCi0gKiB0aW1lIHRoYXQgd2UncmUgd3JpdGluZyBNIGJsb2NrcyB0 byB0aGUgb3V0cHV0IHRhcGUsIHNvIHRoZXJlIGlzIG5vCisgKiBXaGVuIG1lcmdpbmcgcnVu cywgd2UgdXNlIGEgaGVhcCBvciBsb3NlciB0cmVlIGNvbnRhaW5pbmcganVzdCB0aGUgZnJv bnRtb3N0CisgKiB0dXBsZSBmcm9tIGVhY2ggc291cmNlIHJ1bjsgd2UgcmVwZWF0ZWRseSBv dXRwdXQgdGhlIHNtYWxsZXN0IHR1cGxlIGFuZAorICogcmVwbGFjZSBpdCB3aXRoIHRoZSBu ZXh0IHR1cGxlIGZyb20gaXRzIHNvdXJjZSB0YXBlIChpZiBhbnkpLiAgV2hlbiB0aGUgaGVh cAorICogb3IgbG9zZXIgdHJlZSBlbXB0aWVzLCB0aGUgbWVyZ2UgaXMgY29tcGxldGUuICBU aGUgYmFzaWMgbWVyZ2UgYWxnb3JpdGhtIHRodXMKKyAqIG5lZWRzIHZlcnkgbGl0dGxlIG1l bW9yeSAtLS0gb25seSBNIHR1cGxlcyBmb3IgYW4gTS13YXkgbWVyZ2UsIGFuZCBNIGlzCisg KiBjb25zdHJhaW5lZCB0byBhIHNtYWxsIG51bWJlci4gIEhvd2V2ZXIsIHdlIGNhbiBzdGls bCBtYWtlIGdvb2QgdXNlIG9mIG91cgorICogZnVsbCB3b3JrTWVtIGFsbG9jYXRpb24gYnkg cHJlLXJlYWRpbmcgYWRkaXRpb25hbCBibG9ja3MgZnJvbSBlYWNoIHNvdXJjZSB0YXBlLgor ICogV2l0aG91dCBwcmVyZWFkaW5nLCBvdXIgYWNjZXNzIHBhdHRlcm4gdG8gdGhlIHRlbXBv cmFyeSBmaWxlIHdvdWxkIGJlIHZlcnkKKyAqIGVycmF0aWM7IG9uIGF2ZXJhZ2Ugd2UnZCBy ZWFkIG9uZSBibG9jayBmcm9tIGVhY2ggb2YgTSBzb3VyY2UgdGFwZXMgZHVyaW5nCisgKiB0 aGUgc2FtZSB0aW1lIHRoYXQgd2UncmUgd3JpdGluZyBNIGJsb2NrcyB0byB0aGUgb3V0cHV0 IHRhcGUsIHNvIHRoZXJlIGlzIG5vCiAgKiBzZXF1ZW50aWFsaXR5IG9mIGFjY2VzcyBhdCBh bGwsIGRlZmVhdGluZyB0aGUgcmVhZC1haGVhZCBtZXRob2RzIHVzZWQgYnkKICAqIG1vc3Qg VW5peCBrZXJuZWxzLiAgV29yc2UsIHRoZSBvdXRwdXQgdGFwZSBnZXRzIHdyaXR0ZW4gaW50 byBhIHZlcnkgcmFuZG9tCiAgKiBzZXF1ZW5jZSBvZiBibG9ja3Mgb2YgdGhlIHRlbXAgZmls ZSwgZW5zdXJpbmcgdGhhdCB0aGluZ3Mgd2lsbCBiZSBldmVuCkBAIC0xMjAsOCArMTIwLDEy IEBACiAjZGVmaW5lIElOSVRJQUxfTUVNVFVQU0laRSBNYXgoMTAyNCwgXAogCUFMTE9DU0VU X1NFUEFSQVRFX1RIUkVTSE9MRCAvIHNpemVvZihTb3J0VHVwbGUpICsgMSkKIAorLyogTE9T RVJfVFJFRV9FT0YgaXMgYWx3YXlzIGEgbG9zZXIgaW4gY29tcGFyaXNvbiAqLworI2RlZmlu ZSBMT1NFUl9UUkVFX0VPRiAtMQorCiAvKiBHVUMgdmFyaWFibGVzICovCiBib29sCQl0cmFj ZV9zb3J0ID0gZmFsc2U7Citib29sICAgICAgICBlbmFibGVfbG9zZXJfdHJlZSA9IGZhbHNl OwogCiAjaWZkZWYgREVCVUdfQk9VTkRFRF9TT1JUCiBib29sCQlvcHRpbWl6ZV9ib3VuZGVk X3NvcnQgPSB0cnVlOwpAQCAtMjA2LDYgKzIxMCw4IEBAIHN0cnVjdCBUdXBsZXNvcnRzdGF0 ZQogCQkJCQkJCQkgKiBzcGFjZSAqLwogCVR1cFNvcnRTdGF0dXMgbWF4U3BhY2VTdGF0dXM7 CS8qIHNvcnQgc3RhdHVzIHdoZW4gbWF4U3BhY2Ugd2FzIHJlYWNoZWQgKi8KIAlMb2dpY2Fs VGFwZVNldCAqdGFwZXNldDsJLyogbG9ndGFwZS5jIG9iamVjdCBmb3IgdGFwZXMgaW4gYSB0 ZW1wIGZpbGUgKi8KKwlib29sICAgICAgICB1c2VMb3NlclRyZWU7ICAgLyogdXNlIGxvc2Vy IHRyZWUgZm9yIGstd2F5IG1lcmdlIGlmIHRydWUgKi8KKwlpbnQxNiAgICAgICpsb3NlcnM7 ICAgICAgICAgLyogYXJyYXkgb2YgbG9zZXJzLCBsb3NlcnNbMF0gaXMgdGhlIHdpbm5lciAq LwogCiAJLyoKIAkgKiBUaGlzIGFycmF5IGhvbGRzIHRoZSB0dXBsZXMgbm93IGluIHNvcnQg bWVtb3J5LiAgSWYgd2UgYXJlIGluIHN0YXRlCkBAIC00NjgsNiArNDc0LDggQEAgc3RhdGlj IHZvaWQgdHVwbGVzb3J0X3NvcnRfbWVtdHVwbGVzKFR1cGxlc29ydHN0YXRlICpzdGF0ZSk7 CiBzdGF0aWMgdm9pZCB0dXBsZXNvcnRfaGVhcF9idWlsZChUdXBsZXNvcnRzdGF0ZSAqc3Rh dGUpOwogc3RhdGljIHZvaWQgdHVwbGVzb3J0X2hlYXBfcmVwbGFjZV90b3AoVHVwbGVzb3J0 c3RhdGUgKnN0YXRlLCBTb3J0VHVwbGUgKnR1cGxlKTsKIHN0YXRpYyB2b2lkIHR1cGxlc29y dF9oZWFwX2RlbGV0ZV90b3AoVHVwbGVzb3J0c3RhdGUgKnN0YXRlKTsKK3N0YXRpYyB2b2lk IHR1cGxlc29ydF9sb3Nlcl90cmVlX2J1aWxkKFR1cGxlc29ydHN0YXRlICpzdGF0ZSk7Citz dGF0aWMgdm9pZCB0dXBsZXNvcnRfbG9zZXJfdHJlZV9hZGp1c3QoVHVwbGVzb3J0c3RhdGUg KnN0YXRlKTsKIHN0YXRpYyB2b2lkIHJldmVyc2VkaXJlY3Rpb24oVHVwbGVzb3J0c3RhdGUg KnN0YXRlKTsKIHN0YXRpYyB1bnNpZ25lZCBpbnQgZ2V0bGVuKExvZ2ljYWxUYXBlICp0YXBl LCBib29sIGVvZk9LKTsKIHN0YXRpYyB2b2lkIG1hcmtydW5lbmQoTG9naWNhbFRhcGUgKnRh cGUpOwpAQCAtNjgyLDYgKzY5MCwxMCBAQCB0dXBsZXNvcnRfYmVnaW5fY29tbW9uKGludCB3 b3JrTWVtLCBTb3J0Q29vcmRpbmF0ZSBjb29yZGluYXRlLCBpbnQgc29ydG9wdCkKIAlzdGF0 ZS0+YmFzZS50dXBsZXMgPSB0cnVlOwogCXN0YXRlLT5hYmJyZXZOZXh0ID0gMTA7CiAKKwkv KiBVc2UgbG9zZXIgdHJlZSBmb3Igay13YXkgbWVyZ2UgaWYgZW5hYmxlX2xvc2VyX3RyZWUg aXMgdHJ1ZSAqLworCXN0YXRlLT51c2VMb3NlclRyZWUgPSBlbmFibGVfbG9zZXJfdHJlZTsK KwlzdGF0ZS0+bG9zZXJzID0gTlVMTDsKKwogCS8qCiAJICogd29ya01lbSBpcyBmb3JjZWQg dG8gYmUgYXQgbGVhc3QgNjRLQiwgdGhlIGN1cnJlbnQgbWluaW11bSB2YWxpZCB2YWx1ZQog CSAqIGZvciB0aGUgd29ya19tZW0gR1VDLiAgVGhpcyBpcyBhIGRlZmVuc2UgYWdhaW5zdCBw YXJhbGxlbCBzb3J0IGNhbGxlcnMKQEAgLTE2NTIsMTEgKzE2NjQsMTIgQEAgdHVwbGVzb3J0 X2dldHR1cGxlX2NvbW1vbihUdXBsZXNvcnRzdGF0ZSAqc3RhdGUsIGJvb2wgZm9yd2FyZCwK IAkJCSAqLwogCQkJaWYgKHN0YXRlLT5tZW10dXBjb3VudCA+IDApCiAJCQl7Ci0JCQkJaW50 CQkJc3JjVGFwZUluZGV4ID0gc3RhdGUtPm1lbXR1cGxlc1swXS5zcmN0YXBlOworCQkJCWlu dCAgICAgICAgIGkgPSAoc3RhdGUtPnVzZUxvc2VyVHJlZSA/IHN0YXRlLT5sb3NlcnNbMF0g OiAwKTsKKwkJCQlpbnQJCQlzcmNUYXBlSW5kZXggPSBzdGF0ZS0+bWVtdHVwbGVzW2ldLnNy Y3RhcGU7CiAJCQkJTG9naWNhbFRhcGUgKnNyY1RhcGUgPSBzdGF0ZS0+aW5wdXRUYXBlc1tz cmNUYXBlSW5kZXhdOwogCQkJCVNvcnRUdXBsZQluZXd0dXA7CiAKLQkJCQkqc3R1cCA9IHN0 YXRlLT5tZW10dXBsZXNbMF07CisJCQkJKnN0dXAgPSBzdGF0ZS0+bWVtdHVwbGVzW2ldOwog CiAJCQkJLyoKIAkJCQkgKiBSZW1lbWJlciB0aGUgdHVwbGUgd2UgcmV0dXJuLCBzbyB0aGF0 IHdlIGNhbiByZWN5Y2xlIGl0cwpAQCAtMTY2NSwxNiArMTY3OCwxNyBAQCB0dXBsZXNvcnRf Z2V0dHVwbGVfY29tbW9uKFR1cGxlc29ydHN0YXRlICpzdGF0ZSwgYm9vbCBmb3J3YXJkLAog CQkJCXN0YXRlLT5sYXN0UmV0dXJuZWRUdXBsZSA9IHN0dXAtPnR1cGxlOwogCiAJCQkJLyoK LQkJCQkgKiBQdWxsIG5leHQgdHVwbGUgZnJvbSB0YXBlLCBhbmQgcmVwbGFjZSB0aGUgcmV0 dXJuZWQgdHVwbGUKLQkJCQkgKiBhdCB0b3Agb2YgdGhlIGhlYXAgd2l0aCBpdC4KKwkJCQkg KiBQdWxsIG5leHQgdHVwbGUgZnJvbSB0YXBlLCBhbmQgYWRqdXN0IHRoZSBoZWFwIG9yIGxv c2VyIHRyZWUuCiAJCQkJICovCiAJCQkJaWYgKCFtZXJnZXJlYWRuZXh0KHN0YXRlLCBzcmNU YXBlLCAmbmV3dHVwKSkKIAkJCQl7CiAJCQkJCS8qCiAJCQkJCSAqIElmIG5vIG1vcmUgZGF0 YSwgd2UndmUgcmVhY2hlZCBlbmQgb2YgcnVuIG9uIHRoaXMgdGFwZS4KLQkJCQkJICogUmVt b3ZlIHRoZSB0b3Agbm9kZSBmcm9tIHRoZSBoZWFwLgogCQkJCQkgKi8KLQkJCQkJdHVwbGVz b3J0X2hlYXBfZGVsZXRlX3RvcChzdGF0ZSk7CisJCQkJCWlmIChzdGF0ZS0+dXNlTG9zZXJU cmVlKQorCQkJCQkJc3RhdGUtPm1lbXR1cGxlc1tpXS5zcmN0YXBlID0gTE9TRVJfVFJFRV9F T0Y7CisJCQkJCWVsc2UKKwkJCQkJCXR1cGxlc29ydF9oZWFwX2RlbGV0ZV90b3Aoc3RhdGUp OwogCQkJCQlzdGF0ZS0+bklucHV0UnVucy0tOwogCiAJCQkJCS8qCkBAIC0xNjgyLDEwICsx Njk2LDIyIEBAIHR1cGxlc29ydF9nZXR0dXBsZV9jb21tb24oVHVwbGVzb3J0c3RhdGUgKnN0 YXRlLCBib29sIGZvcndhcmQsCiAJCQkJCSAqIGFueXdheSwgYnV0IGJldHRlciB0byByZWxl YXNlIHRoZSBtZW1vcnkgZWFybHkuCiAJCQkJCSAqLwogCQkJCQlMb2dpY2FsVGFwZUNsb3Nl KHNyY1RhcGUpOwotCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCQl9Ci0JCQkJbmV3dHVwLnNyY3Rh cGUgPSBzcmNUYXBlSW5kZXg7Ci0JCQkJdHVwbGVzb3J0X2hlYXBfcmVwbGFjZV90b3Aoc3Rh dGUsICZuZXd0dXApOworCQkJCWVsc2UKKwkJCQl7CisJCQkJCW5ld3R1cC5zcmN0YXBlID0g c3JjVGFwZUluZGV4OworCQkJCQlpZiAoc3RhdGUtPnVzZUxvc2VyVHJlZSkKKwkJCQkJCXN0 YXRlLT5tZW10dXBsZXNbaV0gPSBuZXd0dXA7CisJCQkJCWVsc2UKKwkJCQkJCXR1cGxlc29y dF9oZWFwX3JlcGxhY2VfdG9wKHN0YXRlLCAmbmV3dHVwKTsKKwkJCQl9CisKKwkJCQlpZiAo c3RhdGUtPnVzZUxvc2VyVHJlZSkKKwkJCQl7CisJCQkJCXR1cGxlc29ydF9sb3Nlcl90cmVl X2FkanVzdChzdGF0ZSk7CisJCQkJCWlmIChzdGF0ZS0+bG9zZXJzWzBdID09IExPU0VSX1RS RUVfRU9GKQorCQkJCQkJc3RhdGUtPm1lbXR1cGNvdW50ID0gMDsKKwkJCQl9CiAJCQkJcmV0 dXJuIHRydWU7CiAJCQl9CiAJCQlyZXR1cm4gZmFsc2U7CkBAIC0yMDY2LDggKzIwOTIsOCBA QCBtZXJnZXJ1bnMoVHVwbGVzb3J0c3RhdGUgKnN0YXRlKQogCQlpbml0X3NsYWJfYWxsb2Nh dG9yKHN0YXRlLCAwKTsKIAogCS8qCi0JICogQWxsb2NhdGUgYSBuZXcgJ21lbXR1cGxlcycg YXJyYXksIGZvciB0aGUgaGVhcC4gIEl0IHdpbGwgaG9sZCBvbmUgdHVwbGUKLQkgKiBmcm9t IGVhY2ggaW5wdXQgdGFwZS4KKwkgKiBBbGxvY2F0ZSBhIG5ldyAnbWVtdHVwbGVzJyBhcnJh eS4gIEl0IHdpbGwgaG9sZCBvbmUgdHVwbGUgZnJvbSBlYWNoCisJICogaW5wdXQgdGFwZS4K IAkgKgogCSAqIFdlIGNvdWxkIHNocmluayB0aGlzLCB0b28sIGJldHdlZW4gcGFzc2VzIGlu IGEgbXVsdGktcGFzcyBtZXJnZSwgYnV0IHdlCiAJICogZG9uJ3QgYm90aGVyLiAgKFRoZSBp bml0aWFsIGlucHV0IHRhcGVzIGFyZSBzdGlsbCBpbiBvdXRwdXRUYXBlcy4gIFRoZQpAQCAt MjA3OCw2ICsyMTA0LDE0IEBAIG1lcmdlcnVucyhUdXBsZXNvcnRzdGF0ZSAqc3RhdGUpCiAJ CQkJCQkJCQkJCQkJCXN0YXRlLT5uT3V0cHV0VGFwZXMgKiBzaXplb2YoU29ydFR1cGxlKSk7 CiAJVVNFTUVNKHN0YXRlLCBHZXRNZW1vcnlDaHVua1NwYWNlKHN0YXRlLT5tZW10dXBsZXMp KTsKIAorCS8qIEFsbG9jYXRlIGEgJ2xvc2VycycgYXJyYXkgaWYgd2Ugd2lsbCB1c2UgbG9z ZXIgdHJlZSBmb3IgbWVyZ2UgKi8KKwlpZiAoc3RhdGUtPnVzZUxvc2VyVHJlZSAmJiBzdGF0 ZS0+bG9zZXJzID09IE5VTEwpCisJeworCQlzdGF0ZS0+bG9zZXJzID0gKGludDE2ICopIE1l bW9yeUNvbnRleHRBbGxvYyhzdGF0ZS0+YmFzZS5tYWluY29udGV4dCwKKwkJCQkJCQkJCQkJ CQkgc3RhdGUtPm5PdXRwdXRUYXBlcyAqIHNpemVvZihpbnQxNikpOworCQlVU0VNRU0oc3Rh dGUsIEdldE1lbW9yeUNodW5rU3BhY2Uoc3RhdGUtPmxvc2VycykpOworCX0KKwogCS8qCiAJ ICogVXNlIGFsbCB0aGUgcmVtYWluaW5nIG1lbW9yeSB3ZSBoYXZlIGF2YWlsYWJsZSBmb3Ig dGFwZSBidWZmZXJzIGFtb25nCiAJICogYWxsIHRoZSBpbnB1dCB0YXBlcy4gIEF0IHRoZSBi ZWdpbm5pbmcgb2YgZWFjaCBtZXJnZSBwYXNzLCB3ZSB3aWxsCkBAIC0yMTk1LDYyICsyMjI5 LDcyIEBAIG1lcmdlcnVucyhUdXBsZXNvcnRzdGF0ZSAqc3RhdGUpCiBzdGF0aWMgdm9pZAog bWVyZ2VvbmVydW4oVHVwbGVzb3J0c3RhdGUgKnN0YXRlKQogeworCWludCAgICAgICAgIGk7 CiAJaW50CQkJc3JjVGFwZUluZGV4OwogCUxvZ2ljYWxUYXBlICpzcmNUYXBlOwogCiAJLyoK IAkgKiBTdGFydCB0aGUgbWVyZ2UgYnkgbG9hZGluZyBvbmUgdHVwbGUgZnJvbSBlYWNoIGFj dGl2ZSBzb3VyY2UgdGFwZSBpbnRvCi0JICogdGhlIGhlYXAuCisJICogdGhlIGhlYXAgb3Ig bG9zZXIgdHJlZS4KIAkgKi8KIAliZWdpbm1lcmdlKHN0YXRlKTsKIAogCUFzc2VydChzdGF0 ZS0+c2xhYkFsbG9jYXRvclVzZWQpOwogCiAJLyoKLQkgKiBFeGVjdXRlIG1lcmdlIGJ5IHJl cGVhdGVkbHkgZXh0cmFjdGluZyBsb3dlc3QgdHVwbGUgaW4gaGVhcCwgd3JpdGluZyBpdAot CSAqIG91dCwgYW5kIHJlcGxhY2luZyBpdCB3aXRoIG5leHQgdHVwbGUgZnJvbSBzYW1lIHRh cGUgKGlmIHRoZXJlIGlzCi0JICogYW5vdGhlciBvbmUpLgorCSAqIEV4ZWN1dGUgbWVyZ2Ug YnkgcmVwZWF0ZWRseSBleHRyYWN0aW5nIHRoZSB0dXBsZSBpbiB0aGUgaGVhcCBvciBsb3Nl cgorCSAqIHRyZWUsIHdyaXRpbmcgaXQgb3V0LCBwdWxsaW5nIG5leHQgdHVwbGUgZnJvbSBz YW1lIHRhcGUgKGlmIHRoZXJlIGlzCisJICogYW5vdGhlciBvbmUpLCBhbmQgYWRqdXN0aW5n IHRoZSBoZWFwIG9yIGxvc2VyIHRyZWUuCiAJICovCiAJd2hpbGUgKHN0YXRlLT5tZW10dXBj b3VudCA+IDApCiAJewogCQlTb3J0VHVwbGUJc3R1cDsKIAogCQkvKiB3cml0ZSB0aGUgdHVw bGUgdG8gZGVzdFRhcGUgKi8KLQkJc3JjVGFwZUluZGV4ID0gc3RhdGUtPm1lbXR1cGxlc1sw XS5zcmN0YXBlOworCQlpID0gKHN0YXRlLT51c2VMb3NlclRyZWUgPyBzdGF0ZS0+bG9zZXJz WzBdIDogMCk7CisJCXNyY1RhcGVJbmRleCA9IHN0YXRlLT5tZW10dXBsZXNbaV0uc3JjdGFw ZTsKIAkJc3JjVGFwZSA9IHN0YXRlLT5pbnB1dFRhcGVzW3NyY1RhcGVJbmRleF07Ci0JCVdS SVRFVFVQKHN0YXRlLCBzdGF0ZS0+ZGVzdFRhcGUsICZzdGF0ZS0+bWVtdHVwbGVzWzBdKTsK KwkJV1JJVEVUVVAoc3RhdGUsIHN0YXRlLT5kZXN0VGFwZSwgJnN0YXRlLT5tZW10dXBsZXNb aV0pOwogCiAJCS8qIHJlY3ljbGUgdGhlIHNsb3Qgb2YgdGhlIHR1cGxlIHdlIGp1c3Qgd3Jv dGUgb3V0LCBmb3IgdGhlIG5leHQgcmVhZCAqLwotCQlpZiAoc3RhdGUtPm1lbXR1cGxlc1sw XS50dXBsZSkKLQkJCVJFTEVBU0VfU0xBQl9TTE9UKHN0YXRlLCBzdGF0ZS0+bWVtdHVwbGVz WzBdLnR1cGxlKTsKKwkJaWYgKHN0YXRlLT5tZW10dXBsZXNbaV0udHVwbGUpCisJCQlSRUxF QVNFX1NMQUJfU0xPVChzdGF0ZSwgc3RhdGUtPm1lbXR1cGxlc1tpXS50dXBsZSk7CiAKLQkJ LyoKLQkJICogcHVsbCBuZXh0IHR1cGxlIGZyb20gdGhlIHRhcGUsIGFuZCByZXBsYWNlIHRo ZSB3cml0dGVuLW91dCB0dXBsZSBpbgotCQkgKiB0aGUgaGVhcCB3aXRoIGl0LgotCQkgKi8K KwkJLyogcHVsbCBuZXh0IHR1cGxlIGZyb20gdGhlIHRhcGUsIGFuZCBhZGp1c3QgdGhlIGhl YXAgb3IgbG9zZXIgdHJlZSAqLwogCQlpZiAobWVyZ2VyZWFkbmV4dChzdGF0ZSwgc3JjVGFw ZSwgJnN0dXApKQogCQl7CiAJCQlzdHVwLnNyY3RhcGUgPSBzcmNUYXBlSW5kZXg7Ci0JCQl0 dXBsZXNvcnRfaGVhcF9yZXBsYWNlX3RvcChzdGF0ZSwgJnN0dXApOworCQkJaWYgKHN0YXRl LT51c2VMb3NlclRyZWUpCisJCQkJc3RhdGUtPm1lbXR1cGxlc1tpXSA9IHN0dXA7CisJCQll bHNlCisJCQkJdHVwbGVzb3J0X2hlYXBfcmVwbGFjZV90b3Aoc3RhdGUsICZzdHVwKTsKIAkJ fQogCQllbHNlCiAJCXsKLQkJCXR1cGxlc29ydF9oZWFwX2RlbGV0ZV90b3Aoc3RhdGUpOwor CQkJaWYgKHN0YXRlLT51c2VMb3NlclRyZWUpCisJCQkJc3RhdGUtPm1lbXR1cGxlc1tpXS5z cmN0YXBlID0gTE9TRVJfVFJFRV9FT0Y7CisJCQllbHNlCisJCQkJdHVwbGVzb3J0X2hlYXBf ZGVsZXRlX3RvcChzdGF0ZSk7CiAJCQlzdGF0ZS0+bklucHV0UnVucy0tOwogCQl9CisKKwkJ aWYgKHN0YXRlLT51c2VMb3NlclRyZWUpCisJCXsKKwkJCXR1cGxlc29ydF9sb3Nlcl90cmVl X2FkanVzdChzdGF0ZSk7CisJCQlpZiAoc3RhdGUtPmxvc2Vyc1swXSA9PSBMT1NFUl9UUkVF X0VPRikKKwkJCQlzdGF0ZS0+bWVtdHVwY291bnQgPSAwOworCQl9CiAJfQogCi0JLyoKLQkg KiBXaGVuIHRoZSBoZWFwIGVtcHRpZXMsIHdlJ3JlIGRvbmUuICBXcml0ZSBhbiBlbmQtb2Yt cnVuIG1hcmtlciBvbiB0aGUKLQkgKiBvdXRwdXQgdGFwZS4KLQkgKi8KKwkvKiBEb25lLiBX cml0ZSBhbiBlbmQtb2YtcnVuIG1hcmtlciBvbiB0aGUgb3V0cHV0IHRhcGUuICovCiAJbWFy a3J1bmVuZChzdGF0ZS0+ZGVzdFRhcGUpOwogfQogCiAvKgogICogYmVnaW5tZXJnZSAtIGlu aXRpYWxpemUgZm9yIGEgbWVyZ2UgcGFzcwogICoKLSAqIEZpbGwgdGhlIG1lcmdlIGhlYXAg d2l0aCB0aGUgZmlyc3QgdHVwbGUgZnJvbSBlYWNoIGlucHV0IHRhcGUuCisgKiBQdWxsIHRo ZSBmaXJzdCB0dXBsZSBmcm9tIGVhY2ggaW5wdXQgdGFwZSwgYW5kIGJ1aWxkIGEgaGVhcAor ICogb3IgbG9zZXIgdHJlZSBmb3IgdGhlIG1lcmdlIHBhc3MuCiAgKi8KIHN0YXRpYyB2b2lk CiBiZWdpbm1lcmdlKFR1cGxlc29ydHN0YXRlICpzdGF0ZSkKQEAgLTIyNzYsNyArMjMyMCwx MCBAQCBiZWdpbm1lcmdlKFR1cGxlc29ydHN0YXRlICpzdGF0ZSkKIAkJfQogCX0KIAotCXR1 cGxlc29ydF9oZWFwX2J1aWxkKHN0YXRlKTsKKwlpZiAoc3RhdGUtPnVzZUxvc2VyVHJlZSkK KwkJdHVwbGVzb3J0X2xvc2VyX3RyZWVfYnVpbGQoc3RhdGUpOworCWVsc2UKKwkJdHVwbGVz b3J0X2hlYXBfYnVpbGQoc3RhdGUpOwogfQogCiAvKgpAQCAtMjgyNiw2ICsyODczLDk1IEBA IHR1cGxlc29ydF9oZWFwX3JlcGxhY2VfdG9wKFR1cGxlc29ydHN0YXRlICpzdGF0ZSwgU29y dFR1cGxlICp0dXBsZSkKIAltZW10dXBsZXNbaV0gPSAqdHVwbGU7CiB9CiAKKy8qCisgKiBC dWlsZCBhIHZhbGlkIGxvc2VyIHRyZWUgZnJvbSBtZW10dXBsZXNbXS4KKyAqLworc3RhdGlj IHZvaWQKK3R1cGxlc29ydF9sb3Nlcl90cmVlX2J1aWxkKFR1cGxlc29ydHN0YXRlICpzdGF0 ZSkKK3sKKwlTb3J0VHVwbGUgICptZW10dXBsZXMgPSBzdGF0ZS0+bWVtdHVwbGVzOworCWlu dCAgICAgICAgIGsgPSBzdGF0ZS0+bWVtdHVwY291bnQ7CisJaW50MTYgICAgICAgd2lubmVy c1tNQVhPUkRFUl07CisJaW50ICAgICAgICAgaTsKKworCUFzc2VydChzdGF0ZS0+bG9zZXJz ICE9IE5VTEwpOworCUFzc2VydChrIDw9IE1BWE9SREVSKTsKKworCS8qIHRoaXMgY2FuIGhh cHBlbj8gKi8KKwlpZiAodW5saWtlbHkoayA8PSAwKSkKKwkJcmV0dXJuOworCisJLyogMS13 YXkgbWVyZ2UsIGxvc2Vyc1swXSBpcyBhbHdheXMgMCAqLworCWlmIChrID09IDEpCisJewor CQlzdGF0ZS0+bG9zZXJzWzBdID0gMDsKKwkJcmV0dXJuOworCX0KKworCS8qIGZpbGwgdGhl IGxvc2VycyBhcnJheSAqLworCWZvciAoaSA9IGsgLSAxOyBpID4gMDsgaS0tKQorCXsKKwkJ aW50IGwgPSBpICogMjsKKwkJaW50IHIgPSBsICsgMTsKKwkJaW50IGxsID0gKGwgPj0gayA/ IGwgLSBrIDogd2lubmVyc1tsXSk7CisJCWludCByciA9IChyID49IGsgPyByIC0gayA6IHdp bm5lcnNbcl0pOworCisJCWlmIChDT01QQVJFVFVQKHN0YXRlLCAmbWVtdHVwbGVzW2xsXSwg Jm1lbXR1cGxlc1tycl0pIDwgMCkKKwkJeworCQkJd2lubmVyc1tpXSA9IGxsOworCQkJc3Rh dGUtPmxvc2Vyc1tpXSA9IHJyOworCQl9CisJCWVsc2UKKwkJeworCQkJd2lubmVyc1tpXSA9 IHJyOworCQkJc3RhdGUtPmxvc2Vyc1tpXSA9IGxsOworCQl9CisJfQorCXN0YXRlLT5sb3Nl cnNbMF0gPSB3aW5uZXJzWzFdOworfQorCisvKgorICogQWRqdXN0IHRoZSBsb3NlciB0cmVl IHRvIGdldCB0aGUgbmV3IHdpbm5lci4gIENhbGxlciBtdXN0IGhhdmUgYWxyZWFkeQorICog cHVsbGVkIHRoZSBuZXh0IHR1cGxlIGZyb20gdGhlIGxhc3Qgd2lubmVyJ3MgaW5wdXQgdGFw ZSwgYW5kIHBsYWNlZCBpdAorICogdG8gbWVtdHVwbGVzW2xvc2Vyc1swXV0uCisgKi8KK3N0 YXRpYyB2b2lkCit0dXBsZXNvcnRfbG9zZXJfdHJlZV9hZGp1c3QoVHVwbGVzb3J0c3RhdGUg KnN0YXRlKQoreworCVNvcnRUdXBsZSAgKm1lbXR1cGxlcyA9IHN0YXRlLT5tZW10dXBsZXM7 CisJaW50ICAgICAgICAgayA9IHN0YXRlLT5tZW10dXBjb3VudDsKKwlpbnQgICAgICAgICB3 aW5uZXIgPSBzdGF0ZS0+bG9zZXJzWzBdOworCWludCAgICAgICAgIGkgPSAod2lubmVyICsg aykgLyAyOworCisJQXNzZXJ0KHN0YXRlLT5sb3NlcnMgIT0gTlVMTCk7CisJQXNzZXJ0KGsg PiAwICYmIGsgPD0gTUFYT1JERVIpOworCUFzc2VydCh3aW5uZXIgPj0gMCAmJiB3aW5uZXIg PCBrKTsKKworCS8qCisJICogUmVhY2ggZW5kIG9mIHJ1biBvbiB0aGUgdGFwZSwgc2V0IHdp bm5lciB0byBMT1NFUl9UUkVFX0VPRiBzbyB0aGF0CisJICogaXQncyBhbHdheXMgYSBsb3Nl ciBpbiBjb21wYXJpc29uLgorCSAqLworCWlmIChtZW10dXBsZXNbd2lubmVyXS5zcmN0YXBl ID09IExPU0VSX1RSRUVfRU9GKQorCQl3aW5uZXIgPSBMT1NFUl9UUkVFX0VPRjsKKworCWZv ciAoOyBpID4gMDsgaSAvPSAyKQorCXsKKwkJaW50IGxvc2VyID0gc3RhdGUtPmxvc2Vyc1tp XTsKKworCQkvKiBMT1NFUl9UUkVFX0VPRiBpcyBhbHdheXMgYSBsb3NlciAqLworCQlpZiAo bG9zZXIgPT0gTE9TRVJfVFJFRV9FT0YpCisJCQljb250aW51ZTsKKworCQlpZiAod2lubmVy ID09IExPU0VSX1RSRUVfRU9GIHx8CisJCQlDT01QQVJFVFVQKHN0YXRlLCAmbWVtdHVwbGVz W3dpbm5lcl0sICZtZW10dXBsZXNbbG9zZXJdKSA+IDApCisJCXsKKwkJCXN0YXRlLT5sb3Nl cnNbaV0gPSB3aW5uZXI7CisJCQl3aW5uZXIgPSBsb3NlcjsKKwkJfQorCX0KKwlzdGF0ZS0+ bG9zZXJzWzBdID0gd2lubmVyOworfQorCiAvKgogICogRnVuY3Rpb24gdG8gcmV2ZXJzZSB0 aGUgc29ydCBkaXJlY3Rpb24gZnJvbSBpdHMgY3VycmVudCBzdGF0ZQogICoKZGlmZiAtLWdp dCBhL3NyYy9pbmNsdWRlL3V0aWxzL2d1Yy5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvZ3VjLmgK aW5kZXggZjIxZWMzN2RhODkuLjhjMjJlZWQ3MTZiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS91dGlscy9ndWMuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9ndWMuaApAQCAtMzI0LDYg KzMyNCw3IEBAIGV4dGVybiBQR0RMTElNUE9SVCBpbnQgdGNwX3VzZXJfdGltZW91dDsKIGV4 dGVybiBQR0RMTElNUE9SVCBjaGFyICpyb2xlX3N0cmluZzsKIGV4dGVybiBQR0RMTElNUE9S VCBib29sIGluX2hvdF9zdGFuZGJ5X2d1YzsKIGV4dGVybiBQR0RMTElNUE9SVCBib29sIHRy YWNlX3NvcnQ7CitleHRlcm4gUEdETExJTVBPUlQgYm9vbCBlbmFibGVfbG9zZXJfdHJlZTsK IAogI2lmZGVmIERFQlVHX0JPVU5ERURfU09SVAogZXh0ZXJuIFBHRExMSU1QT1JUIGJvb2wg b3B0aW1pemVfYm91bmRlZF9zb3J0OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zeXN2aWV3cy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3N5c3Zp ZXdzLm91dAppbmRleCAwNDExZGI4MzJmMS4uYjQ5MmU5ZGU2ZmQgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc3lzdmlld3Mub3V0CisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvc3lzdmlld3Mub3V0CkBAIC0xNTksNiArMTU5LDcgQEAgc2VsZWN0 IG5hbWUsIHNldHRpbmcgZnJvbSBwZ19zZXR0aW5ncyB3aGVyZSBuYW1lIGxpa2UgJ2VuYWJs ZSUnOwogIGVuYWJsZV9pbmNyZW1lbnRhbF9zb3J0ICAgICAgICB8IG9uCiAgZW5hYmxlX2lu ZGV4b25seXNjYW4gICAgICAgICAgIHwgb24KICBlbmFibGVfaW5kZXhzY2FuICAgICAgICAg ICAgICAgfCBvbgorIGVuYWJsZV9sb3Nlcl90cmVlICAgICAgICAgICAgICB8IG9mZgogIGVu YWJsZV9tYXRlcmlhbCAgICAgICAgICAgICAgICB8IG9uCiAgZW5hYmxlX21lbW9pemUgICAg ICAgICAgICAgICAgIHwgb24KICBlbmFibGVfbWVyZ2Vqb2luICAgICAgICAgICAgICAgfCBv bgpAQCAtMTczLDcgKzE3NCw3IEBAIHNlbGVjdCBuYW1lLCBzZXR0aW5nIGZyb20gcGdfc2V0 dGluZ3Mgd2hlcmUgbmFtZSBsaWtlICdlbmFibGUlJzsKICBlbmFibGVfc2Vxc2NhbiAgICAg ICAgICAgICAgICAgfCBvbgogIGVuYWJsZV9zb3J0ICAgICAgICAgICAgICAgICAgICB8IG9u CiAgZW5hYmxlX3RpZHNjYW4gICAgICAgICAgICAgICAgIHwgb24KLSgyNSByb3dzKQorKDI2 IHJvd3MpCiAKIC0tIFRoZXJlIGFyZSBhbHdheXMgd2FpdCBldmVudCBkZXNjcmlwdGlvbnMg Zm9yIHZhcmlvdXMgdHlwZXMuICBJbmplY3Rpb25Qb2ludAogLS0gbWF5IGJlIHByZXNlbnQg b3IgYWJzZW50LCBkZXBlbmRpbmcgb24gaGlzdG9yeSBzaW5jZSBsYXN0IHBvc3RtYXN0ZXIg c3RhcnQuCi0tIAoyLjUyLjAKCg== ------=_NextPart_6933043B_C1B2AAE0_77317C6A--