Received: from localhost (unknown [200.46.204.183]) by postgresql.org (Postfix) with ESMTP id 9019964FCCF for ; Fri, 19 Sep 2008 15:14:19 -0300 (ADT) Received: from postgresql.org ([200.46.204.86]) by localhost (mx1.hub.org [200.46.204.183]) (amavisd-maia, port 10024) with ESMTP id 04846-09 for ; Fri, 19 Sep 2008 15:14:15 -0300 (ADT) X-Greylist: from auto-whitelisted by SQLgrey-1.7.6 Received: from mail.esilo.com (ns2.esilo.com [63.150.152.211]) by postgresql.org (Postfix) with ESMTP id F12E464FCC2 for ; Fri, 19 Sep 2008 15:14:14 -0300 (ADT) Received: from [10.0.0.2] (fwext-esilo-jupiter.esilo.com [64.135.45.146]) (authenticated bits=0) by mail.esilo.com (8.13.1/8.13.1) with ESMTP id m8JIE9lL015911; Fri, 19 Sep 2008 14:14:09 -0400 Message-ID: <48D3EBEC.1040503@esilo.com> Date: Fri, 19 Sep 2008 14:14:04 -0400 From: Andrew Chernow User-Agent: Thunderbird 2.0.0.16 (Windows/20080708) MIME-Version: 1.0 To: Tom Lane CC: Alvaro Herrera , PostgreSQL-development , Merlin Moncure Subject: Re: [PATCHES] libpq events patch (with sgml docs) References: <48C18533.2000204@esilo.com> <20080905192215.GK4353@alvh.no-ip.org> <48C18B48.509@esilo.com> <20080905194853.GL4353@alvh.no-ip.org> <48C191A7.3000205@esilo.com> <20080905201504.GM4353@alvh.no-ip.org> <48C19759.90402@esilo.com> <27615.1221619326@sss.pgh.pa.us> <48D072E3.6010703@esilo.com> <28673.1221622817@sss.pgh.pa.us> <48D080B0.6070104@esilo.com> <454.1221626213@sss.pgh.pa.us> <48D0DFBE.9050900@esilo.com> <8872.1221653812@sss.pgh.pa.us> <48D1041D.5070808@esilo.com> <10839.1221658586@sss.pgh.pa.us> <48D11443.4010608@esilo.com> <48D11631.8070709@esilo.com> <28666.1221840662@sss.pgh.pa.us> In-Reply-To: <28666.1221840662@sss.pgh.pa.us> Content-Type: multipart/mixed; boundary="------------040602010503070503050203" X-Virus-Scanned: Maia Mailguard 1.0.1 X-Spam-Status: No, hits=0 tagged_above=0 required=5 tests=none X-Spam-Level: X-Archive-Number: 200809/1248 X-Sequence-Number: 124377 This is a multi-part message in MIME format. --------------040602010503070503050203 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Tom Lane wrote: > > I'll go ahead and apply this patch in a little bit, but if you concur > with the above reasoning, please put together a followon patch to add > such a function. > > regards, tom lane > > I attached a patch. You have to copy the events in PQmakeEmptyPGResult because there is no where else to do this, other than copyresult but that is different because it copies from a result not a conn. PQmakeEmptyPGResult - must copy events here PQsetResultAttrs - set attributes PQsetvalue - set tuple values PQfireResultCreateEvents(conn,res) - now fire resultcreate event PQgetResult now calls PQfireResultCreateEvents. BTW, the event system might be an alternative solution for PGNoticeHooks (PGEVT_NOTICE). -- Andrew Chernow eSilo, LLC every bit counts http://www.esilo.com/ --------------040602010503070503050203 Content-Type: text/plain; name="pgevents.patch" Content-Transfer-Encoding: base64 Content-Disposition: inline; filename="pgevents.patch" SW5kZXg6IGRvYy9zcmMvc2dtbC9saWJwcS5zZ21sCj09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZpbGU6 IC9wcm9qZWN0cy9jdnNyb290L3Bnc3FsL2RvYy9zcmMvc2dtbC9saWJwcS5zZ21sLHYKcmV0 cmlldmluZyByZXZpc2lvbiAxLjI2MgpkaWZmIC1DNiAtcjEuMjYyIGxpYnBxLnNnbWwKKioq IGRvYy9zcmMvc2dtbC9saWJwcS5zZ21sCTE5IFNlcCAyMDA4IDE2OjQwOjQwIC0wMDAwCTEu MjYyCi0tLSBkb2Mvc3JjL3NnbWwvbGlicHEuc2dtbAkxOSBTZXAgMjAwOCAxODowNTo1NSAt MDAwMAoqKioqKioqKioqKioqKioKKioqIDQ1OTIsNDYwNCAqKioqCiAgICAgICAgPHBhcmFt ZXRlcj5jb25uPC9wYXJhbWV0ZXI+IGlzIG5vdCBudWxsIGFuZCA8cGFyYW1ldGVyPnN0YXR1 czwvPgogICAgICAgIGluZGljYXRlcyBhbiBlcnJvciwgdGhlIGN1cnJlbnQgZXJyb3IgbWVz c2FnZSBvZiB0aGUgc3BlY2lmaWVkCiAgICAgICAgY29ubmVjdGlvbiBpcyBjb3BpZWQgaW50 byB0aGUgPHN0cnVjdG5hbWU+UEdyZXN1bHQ8L3N0cnVjdG5hbWU+LgogICAgICAgIEFsc28s IGlmIDxwYXJhbWV0ZXI+Y29ubjwvcGFyYW1ldGVyPiBpcyBub3QgbnVsbCwgYW55IGV2ZW50 IGhhbmRsZXJzCiAgICAgICAgcmVnaXN0ZXJlZCBpbiB0aGUgY29ubmVjdGlvbiBhcmUgY29w aWVkIGludG8gdGhlCiAgICAgICAgPHN0cnVjdG5hbWU+UEdyZXN1bHQ8L3N0cnVjdG5hbWU+ IChidXQgdGhleSBkb24ndCBnZXQKISAgICAgICA8bGl0ZXJhbD5QR0VWVF9SRVNVTFRDUkVB VEU8Lz4gY2FsbHMpLgogICAgICAgIE5vdGUgdGhhdCA8ZnVuY3Rpb24+UFFjbGVhcjwvZnVu Y3Rpb24+IHNob3VsZCBldmVudHVhbGx5IGJlIGNhbGxlZAogICAgICAgIG9uIHRoZSBvYmpl Y3QsIGp1c3QgYXMgd2l0aCBhIDxzdHJ1Y3RuYW1lPlBHcmVzdWx0PC9zdHJ1Y3RuYW1lPgog ICAgICAgIHJldHVybmVkIGJ5IDxhcHBsaWNhdGlvbj5saWJwcTwvYXBwbGljYXRpb24+IGl0 c2VsZi4KICAgICAgIDwvcGFyYT4KICAgICAgPC9saXN0aXRlbT4KICAgICA8L3Zhcmxpc3Rl bnRyeT4KLS0tIDQ1OTIsNDYwNiAtLS0tCiAgICAgICAgPHBhcmFtZXRlcj5jb25uPC9wYXJh bWV0ZXI+IGlzIG5vdCBudWxsIGFuZCA8cGFyYW1ldGVyPnN0YXR1czwvPgogICAgICAgIGlu ZGljYXRlcyBhbiBlcnJvciwgdGhlIGN1cnJlbnQgZXJyb3IgbWVzc2FnZSBvZiB0aGUgc3Bl Y2lmaWVkCiAgICAgICAgY29ubmVjdGlvbiBpcyBjb3BpZWQgaW50byB0aGUgPHN0cnVjdG5h bWU+UEdyZXN1bHQ8L3N0cnVjdG5hbWU+LgogICAgICAgIEFsc28sIGlmIDxwYXJhbWV0ZXI+ Y29ubjwvcGFyYW1ldGVyPiBpcyBub3QgbnVsbCwgYW55IGV2ZW50IGhhbmRsZXJzCiAgICAg ICAgcmVnaXN0ZXJlZCBpbiB0aGUgY29ubmVjdGlvbiBhcmUgY29waWVkIGludG8gdGhlCiAg ICAgICAgPHN0cnVjdG5hbWU+UEdyZXN1bHQ8L3N0cnVjdG5hbWU+IChidXQgdGhleSBkb24n dCBnZXQKISAgICAgICA8bGl0ZXJhbD5QR0VWVF9SRVNVTFRDUkVBVEU8Lz4gY2FsbHMpLiAg QWx0aG91Z2gsCiEgICAgICAgPGZ1bmN0aW9uPlBRZmlyZVJlc3VsdENyZWF0ZUV2ZW50czwv ZnVuY3Rpb24+IGNhbiBiZSB1c2VkIHRvIGZpcmUKISAgICAgICA8bGl0ZXJhbD5QR0VWVF9S RVNVTFRDUkVBVEU8Lz4gZXZlbnRzLgogICAgICAgIE5vdGUgdGhhdCA8ZnVuY3Rpb24+UFFj bGVhcjwvZnVuY3Rpb24+IHNob3VsZCBldmVudHVhbGx5IGJlIGNhbGxlZAogICAgICAgIG9u IHRoZSBvYmplY3QsIGp1c3QgYXMgd2l0aCBhIDxzdHJ1Y3RuYW1lPlBHcmVzdWx0PC9zdHJ1 Y3RuYW1lPgogICAgICAgIHJldHVybmVkIGJ5IDxhcHBsaWNhdGlvbj5saWJwcTwvYXBwbGlj YXRpb24+IGl0c2VsZi4KICAgICAgIDwvcGFyYT4KICAgICAgPC9saXN0aXRlbT4KICAgICA8 L3Zhcmxpc3RlbnRyeT4KKioqKioqKioqKioqKioqCioqKiA1MjQyLDUyNTMgKioqKgotLS0g NTI0NCw1Mjc5IC0tLS0KICAgICAgICAgIHZvaWQgKlBRcmVzdWx0SW5zdGFuY2VEYXRhKGNv bnN0IFBHcmVzdWx0ICpyZXMsIFBHRXZlbnRQcm9jIHByb2MpOwogICAgICAgICA8L3N5bm9w c2lzPgogICAgICAgIDwvcGFyYT4KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlz dGVudHJ5PgogICAgIDwvdmFyaWFibGVsaXN0PgorIAorICAgICA8dmFybGlzdGVudHJ5Pgor ICAgICAgPHRlcm0+CisgICAgICAgPGZ1bmN0aW9uPlBRZmlyZVJlc3VsdENyZWF0ZUV2ZW50 czwvZnVuY3Rpb24+CisgICAgICAgPGluZGV4dGVybT4KKyAgICAgICAgPHByaW1hcnk+UFFm aXJlUmVzdWx0Q3JlYXRlRXZlbnRzPC9wcmltYXJ5PgorICAgICAgIDwvaW5kZXh0ZXJtPgor ICAgICAgPC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAg ICBNYW51YWxseSBmaXJlcyBhIDxsaXRlcmFsPlBHRVZUX1JFU1VMVENSRUFURTwvbGl0ZXJh bD4gZXZlbnQuICBUaGlzIGlzCisgICAgICAgIHVzZWZ1bCBmb3IgYXBwbGljYXRpb25zIHRo YXQgY3JlYXRlIGEgcmVzdWx0IHVzaW5nCisgICAgICAgIDxmdW5jdGlvbj5QUW1ha2VFbXB0 eVBHUmVzdWx0PC9mdW5jdGlvbj4sIHdoaWNoIGRvZXMgbm90IGZpcmUgYQorICAgICAgICA8 bGl0ZXJhbD5QR0VWVF9SRVNVTFRDUkVBVEU8L2xpdGVyYWw+IGV2ZW50LiAgSXQgYWxsb3dz IGFuIGFwcGxpY2F0aW9uCisgICAgICAgIHRvIGNyZWF0ZSB0aGUgcmVzdWx0LCBmaWxsIGl0 IGFuZCB0aGVuIGZpcmUgdGhlIGNyZWF0aW9uIGV2ZW50LiAgVGhpcworICAgICAgICByZXR1 cm5zIG5vbi16ZXJvIGZvciBzdWNjZXNzIGFuZCB6ZXJvIGZvciBmYWlsdXJlLgorIAorICAg ICAgICA8c3lub3BzaXM+CisgICAgICAgICBpbnQgUFFmaXJlUmVzdWx0Q3JlYXRlRXZlbnRz KGNvbnN0IFBHY29ubiBjb25uLCBQR3Jlc3VsdCAqcmVzKTsKKyAgICAgICAgPC9zeW5vcHNp cz4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3Rl bnRyeT4KKyAgICA8L3ZhcmlhYmxlbGlzdD4KICAgIDwvc2VjdDI+CiAgCiAgICA8c2VjdDIg aWQ9ImxpYnBxLWV2ZW50cy1leGFtcGxlIj4KICAgICA8dGl0bGU+RXZlbnQgRXhhbXBsZTwv dGl0bGU+CiAgCiAgICAgPHBhcmE+CkluZGV4OiBzcmMvaW50ZXJmYWNlcy9saWJwcS9leHBv cnRzLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09ClJDUyBmaWxlOiAvcHJvamVjdHMvY3Zzcm9vdC9wZ3Nx bC9zcmMvaW50ZXJmYWNlcy9saWJwcS9leHBvcnRzLnR4dCx2CnJldHJpZXZpbmcgcmV2aXNp b24gMS4yMApkaWZmIC1DNiAtcjEuMjAgZXhwb3J0cy50eHQKKioqIHNyYy9pbnRlcmZhY2Vz L2xpYnBxL2V4cG9ydHMudHh0CTE3IFNlcCAyMDA4IDA0OjMxOjA4IC0wMDAwCTEuMjAKLS0t IHNyYy9pbnRlcmZhY2VzL2xpYnBxL2V4cG9ydHMudHh0CTE5IFNlcCAyMDA4IDE4OjA1OjU1 IC0wMDAwCioqKioqKioqKioqKioqKgoqKiogMTQ3LDE1MiAqKioqCi0tLSAxNDcsMTUzIC0t LS0KICBQUXJlc3VsdEFsbG9jICAgICAgICAgICAgIDE0NQogIFBRcmVnaXN0ZXJFdmVudFBy b2MgICAgICAgMTQ2CiAgUFFpbnN0YW5jZURhdGEgICAgICAgICAgICAxNDcKICBQUXNldElu c3RhbmNlRGF0YSAgICAgICAgIDE0OAogIFBRcmVzdWx0SW5zdGFuY2VEYXRhICAgICAgMTQ5 CiAgUFFyZXN1bHRTZXRJbnN0YW5jZURhdGEgICAxNTAKKyBQUWZpcmVSZXN1bHRDcmVhdGVF dmVudHMgIDE1MQpJbmRleDogc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZXhlYy5jCj09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT0KUkNTIGZpbGU6IC9wcm9qZWN0cy9jdnNyb290L3Bnc3FsL3NyYy9pbnRlcmZh Y2VzL2xpYnBxL2ZlLWV4ZWMuYyx2CnJldHJpZXZpbmcgcmV2aXNpb24gMS4xOTkKZGlmZiAt QzYgLXIxLjE5OSBmZS1leGVjLmMKKioqIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWV4ZWMu YwkxOSBTZXAgMjAwOCAxNjo0MDo0MCAtMDAwMAkxLjE5OQotLS0gc3JjL2ludGVyZmFjZXMv bGlicHEvZmUtZXhlYy5jCTE5IFNlcCAyMDA4IDE4OjA1OjU1IC0wMDAwCioqKioqKioqKioq KioqKgoqKiogMTU5NSwxNjMwICoqKioKICAJCQkJCQkJICBsaWJwcV9nZXR0ZXh0KCJ1bmV4 cGVjdGVkIGFzeW5jU3RhdHVzOiAlZFxuIiksCiAgCQkJCQkJCSAgKGludCkgY29ubi0+YXN5 bmNTdGF0dXMpOwogIAkJCXJlcyA9IFBRbWFrZUVtcHR5UEdyZXN1bHQoY29ubiwgUEdSRVNf RkFUQUxfRVJST1IpOwogIAkJCWJyZWFrOwogIAl9CiAgCiEgCWlmIChyZXMpCiEgCXsKISAJ CWludCBpOwohIAohIAkJZm9yIChpID0gMDsgaSA8IHJlcy0+bkV2ZW50czsgaSsrKQohIAkJ ewohIAkJCVBHRXZlbnRSZXN1bHRDcmVhdGUgZXZ0OwohIAohIAkJCWV2dC5jb25uID0gY29u bjsKISAJCQlldnQucmVzdWx0ID0gcmVzOwohIAkJCWlmICghcmVzLT5ldmVudHNbaV0ucHJv YyhQR0VWVF9SRVNVTFRDUkVBVEUsICZldnQsCiEgCQkJCQkJCQkJIHJlcy0+ZXZlbnRzW2ld LnBhc3NUaHJvdWdoKSkKISAJCQl7CiEgCQkJCXByaW50ZlBRRXhwQnVmZmVyKCZjb25uLT5l cnJvck1lc3NhZ2UsCiEgCQkJCQkJCQkgIGxpYnBxX2dldHRleHQoIlBHRXZlbnRQcm9jIFwi JXNcIiBmYWlsZWQgZHVyaW5nIFBHRVZUX1JFU1VMVENSRUFURSBldmVudFxuIiksCiEgCQkJ CQkJCQkgIHJlcy0+ZXZlbnRzW2ldLm5hbWUpOwohIAkJCQlwcVNldFJlc3VsdEVycm9yKHJl cywgY29ubi0+ZXJyb3JNZXNzYWdlLmRhdGEpOwohIAkJCQlyZXMtPnJlc3VsdFN0YXR1cyA9 IFBHUkVTX0ZBVEFMX0VSUk9SOwohIAkJCQlicmVhazsKISAJCQl9CiEgCQkJcmVzLT5ldmVu dHNbaV0ucmVzdWx0SW5pdGlhbGl6ZWQgPSBUUlVFOwohIAkJfQohIAl9CiEgCiAgCXJldHVy biByZXM7CiAgfQogIAogIAogIC8qCiAgICogUFFleGVjCi0tLSAxNTk1LDE2MDggLS0tLQog IAkJCQkJCQkgIGxpYnBxX2dldHRleHQoInVuZXhwZWN0ZWQgYXN5bmNTdGF0dXM6ICVkXG4i KSwKICAJCQkJCQkJICAoaW50KSBjb25uLT5hc3luY1N0YXR1cyk7CiAgCQkJcmVzID0gUFFt YWtlRW1wdHlQR3Jlc3VsdChjb25uLCBQR1JFU19GQVRBTF9FUlJPUik7CiAgCQkJYnJlYWs7 CiAgCX0KICAKISAJLyogRnVuY3Rpb24gcGVyZm9ybXMgZXJyb3IgaGFuZGxpbmc6IG1lc3Nh Z2UgYW5kIHJlc3VsdFN0YXR1cy4gKi8KISAJKHZvaWQpIFBRZmlyZVJlc3VsdENyZWF0ZUV2 ZW50cyhjb25uLCByZXMpOwogIAlyZXR1cm4gcmVzOwogIH0KICAKICAKICAvKgogICAqIFBR ZXhlYwpJbmRleDogc3JjL2ludGVyZmFjZXMvbGlicHEvbGlicHEtZXZlbnRzLmMKPT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PQpSQ1MgZmlsZTogL3Byb2plY3RzL2N2c3Jvb3QvcGdzcWwvc3JjL2ludGVyZmFj ZXMvbGlicHEvbGlicHEtZXZlbnRzLmMsdgpyZXRyaWV2aW5nIHJldmlzaW9uIDEuMgpkaWZm IC1DNiAtcjEuMiBsaWJwcS1ldmVudHMuYwoqKiogc3JjL2ludGVyZmFjZXMvbGlicHEvbGli cHEtZXZlbnRzLmMJMTkgU2VwIDIwMDggMTY6NDA6NDAgLTAwMDAJMS4yCi0tLSBzcmMvaW50 ZXJmYWNlcy9saWJwcS9saWJwcS1ldmVudHMuYwkxOSBTZXAgMjAwOCAxODowNTo1NSAtMDAw MAoqKioqKioqKioqKioqKioKKioqIDE3MiwxNzcgKioqKgotLS0gMTcyLDIwOSAtLS0tCiAg CWZvciAoaSA9IDA7IGkgPCByZXN1bHQtPm5FdmVudHM7IGkrKykKICAJCWlmIChyZXN1bHQt PmV2ZW50c1tpXS5wcm9jID09IHByb2MpCiAgCQkJcmV0dXJuIHJlc3VsdC0+ZXZlbnRzW2ld LmRhdGE7CiAgCiAgCXJldHVybiBOVUxMOwogIH0KKyAKKyBpbnQKKyBQUWZpcmVSZXN1bHRD cmVhdGVFdmVudHMoY29uc3QgUEdjb25uICpjb25uLCBQR3Jlc3VsdCAqcmVzKQorIHsKKyAJ aW50IGk7CisgCisgCWlmICghY29ubiB8fCAhcmVzKQorIAkJcmV0dXJuIEZBTFNFOworIAor IAlmb3IgKGkgPSAwOyBpIDwgcmVzLT5uRXZlbnRzOyBpKyspCisgCXsKKyAJCVBHRXZlbnRS ZXN1bHRDcmVhdGUgZXZ0OworIAorIAkJZXZ0LmNvbm4gPSBjb25uOworIAkJZXZ0LnJlc3Vs dCA9IHJlczsKKyAJCWlmICghcmVzLT5ldmVudHNbaV0ucHJvYyhQR0VWVF9SRVNVTFRDUkVB VEUsICZldnQsCisgCQkJCQkJCQkgcmVzLT5ldmVudHNbaV0ucGFzc1Rocm91Z2gpKQorIAkJ eworIAkJCXByaW50ZlBRRXhwQnVmZmVyKCZjb25uLT5lcnJvck1lc3NhZ2UsCisgCQkJCQkJ CSAgbGlicHFfZ2V0dGV4dCgiUEdFdmVudFByb2MgXCIlc1wiIGZhaWxlZCBkdXJpbmcgUEdF VlRfUkVTVUxUQ1JFQVRFIGV2ZW50XG4iKSwKKyAJCQkJCQkJICByZXMtPmV2ZW50c1tpXS5u YW1lKTsKKyAJCQlwcVNldFJlc3VsdEVycm9yKHJlcywgY29ubi0+ZXJyb3JNZXNzYWdlLmRh dGEpOworIAkJCXJlcy0+cmVzdWx0U3RhdHVzID0gUEdSRVNfRkFUQUxfRVJST1I7CisgCQkJ cmV0dXJuIEZBTFNFOworIAkJfQorIAorIAkJcmVzLT5ldmVudHNbaV0ucmVzdWx0SW5pdGlh bGl6ZWQgPSBUUlVFOworIAl9CisgCisgCXJldHVybiBUUlVFOworIH0KKyAKSW5kZXg6IHNy Yy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWV2ZW50cy5oCj09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KUkNTIGZp bGU6IC9wcm9qZWN0cy9jdnNyb290L3Bnc3FsL3NyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBx LWV2ZW50cy5oLHYKcmV0cmlldmluZyByZXZpc2lvbiAxLjEKZGlmZiAtQzYgLXIxLjEgbGli cHEtZXZlbnRzLmgKKioqIHNyYy9pbnRlcmZhY2VzL2xpYnBxL2xpYnBxLWV2ZW50cy5oCTE3 IFNlcCAyMDA4IDA0OjMxOjA4IC0wMDAwCTEuMQotLS0gc3JjL2ludGVyZmFjZXMvbGlicHEv bGlicHEtZXZlbnRzLmgJMTkgU2VwIDIwMDggMTg6MDU6NTUgLTAwMDAKKioqKioqKioqKioq KioqCioqKiA4MSw5MSAqKioqCi0tLSA4MSw5MyAtLS0tCiAgLyogU2V0cyB0aGUgUEdyZXN1 bHQgaW5zdGFuY2UgZGF0YSBmb3IgdGhlIHByb3ZpZGVkIHByb2MgdG8gZGF0YS4gKi8KICBl eHRlcm4gaW50CVBRcmVzdWx0U2V0SW5zdGFuY2VEYXRhKFBHcmVzdWx0ICpyZXN1bHQsIFBH RXZlbnRQcm9jIHByb2MsIHZvaWQgKmRhdGEpOwogIAogIC8qIEdldHMgdGhlIFBHcmVzdWx0 IGluc3RhbmNlIGRhdGEgZm9yIHRoZSBwcm92aWRlZCBwcm9jLiAqLwogIGV4dGVybiB2b2lk ICpQUXJlc3VsdEluc3RhbmNlRGF0YShjb25zdCBQR3Jlc3VsdCAqcmVzdWx0LCBQR0V2ZW50 UHJvYyBwcm9jKTsKICAKKyBleHRlcm4gaW50IFBRZmlyZVJlc3VsdENyZWF0ZUV2ZW50cyhj b25zdCBQR2Nvbm4gKmNvbm4sIFBHcmVzdWx0ICpyZXMpOworIAogICNpZmRlZiBfX2NwbHVz cGx1cwogIH0KICAjZW5kaWYKICAKICAjZW5kaWYgLyogTElCUFFfRVZFTlRTX0ggKi8K --------------040602010503070503050203--