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 1n6joJ-0007he-PN for pgsql-odbc@arkaria.postgresql.org; Mon, 10 Jan 2022 01:49:24 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1n6joH-0004lp-GC for pgsql-odbc@arkaria.postgresql.org; Mon, 10 Jan 2022 01:49:21 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1n6joH-0004le-39 for pgsql-odbc@lists.postgresql.org; Mon, 10 Jan 2022 01:49:21 +0000 Received: from mx08-00574e01.pphosted.com ([185.183.31.38]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1n6jo9-0002S7-PV for pgsql-odbc@lists.postgresql.org; Mon, 10 Jan 2022 01:49:17 +0000 Received: from pps.filterd (m0214000.ppops.net [127.0.0.1]) by mx08-00574e01.pphosted.com (8.16.1.2/8.16.1.2) with ESMTP id 209MMIc9014202 for ; Mon, 10 Jan 2022 01:49:06 GMT Received: from mail-wm1-f72.google.com (mail-wm1-f72.google.com [209.85.128.72]) by mx08-00574e01.pphosted.com (PPS) with ESMTPS id 3dfp831bwb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128 verify=NOT) for ; Mon, 10 Jan 2022 01:49:06 +0000 Received: by mail-wm1-f72.google.com with SMTP id az9-20020a05600c600900b0034692565ca8so6995964wmb.9 for ; Sun, 09 Jan 2022 17:49:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iress-com.20210112.gappssmtp.com; s=20210112; h=mime-version:from:date:message-id:subject:to; bh=KkZsi1V4sL63K7y/BYY9zI3Uj+NAZx9cGb9ahpqN5CE=; b=60eYh7gGaitWDX3G5dfh/OWAiQ4/DB8YwiVPgpXgSslqC8eG2HOP1G5GuI5jofkObg irf242BNIvLD7VJm9AEG9/wwr3p9Zl0g8KxZb/9VK3MQhVrHDcHtVht+XR2fB3cmafOe DtJzPYM0rwBM0HmEIeBv71F4sfbWzPPYTZeS9wN/C+eCU43D4BYQRwXzXH1kPEkf5bOc DB4jR9/QTjYe4StKGcJiVo2P2H09Yfq0tht1Trfa+nkNPwJNcKgzYP4i6iubk4UObs23 L6qS9bjWykOlJXdgNYKWqOXZlcTYrW4UCUl2c/p9usotp9PtrSutf+qrJ5zeiuNWZL/j Vs1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=KkZsi1V4sL63K7y/BYY9zI3Uj+NAZx9cGb9ahpqN5CE=; b=QfWcuw5CRfLjaqvptbvbbCZYUFThiGnO/aFN43GLg1TmXMgV7HM6OTHr5UWbG6VIGK lIb7ET8LLgNGt0q3/q4OMmt8ukcygF+PcM+I9Dlr2JzR+a45Aubhnb5Y6npP+rFiD00c Aky5xmtLN6E/wjxnkf+9USiSwn7jKs5Tfpj1VBD8gv7p/1kQZQqlC/8yX6uASwfha77e YaSrfePXKA+WSqHGc+qHWsmbDl695ibDwYrkUiBDI6fSBnmxDX0U1UxQ0xCUAIx35c86 dHKhVwES8hhqrCNoTz625st+cvvni9NM8Ob4OHRa5+J1fJIVer+k4xS/EYm4Ep8btMeW E4Kw== X-Gm-Message-State: AOAM532yv1c72oDIphiZIJPCErjw0W/y6g7eB4nwxsxHDOl3Th6reNJR KHeNG6zW/K/M7CIU+dcWjzTrm2iJxljSDUvzUxxv1HrA3Exm1pgmsabb2mBecGbV0uNzPefdPRs gz2SLw+jboWJsz9+xyJmiHWxWJypLpaAm6nSaPStw9laSfGZFXXubrA== X-Received: by 2002:adf:fac3:: with SMTP id a3mr3818118wrs.369.1641779345449; Sun, 09 Jan 2022 17:49:05 -0800 (PST) X-Google-Smtp-Source: ABdhPJwC/3g2fs0LudHU8lwY8t2ZVsVHojtGu6cSYt2nBvVDrodQQhEyOCdY3OsEK5oz4DPjOrY6/xqEuxme X-Received: by 2002:adf:fac3:: with SMTP id a3mr3818106wrs.369.1641779345109; Sun, 09 Jan 2022 17:49:05 -0800 (PST) Received: from eu1.smtp.exclaimer.net (eu1.smtp.exclaimer.net. [104.40.229.156]) by smtp-relay.gmail.com with ESMTPS id s6sm195988wmr.50.2022.01.09.17.49.04 for (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Sun, 09 Jan 2022 17:49:05 -0800 (PST) X-Relaying-Domain: iress.com Received: from mail-wm1-f71.google.com (209.85.128.71) by eu1.smtp.exclaimer.net (104.40.229.156) with Exclaimer Signature Manager ESMTP Proxy eu1.smtp.exclaimer.net (tlsversion=TLS12, tlscipher=TLS_ECDHE_WITH_AES256_SHA1); Mon, 10 Jan 2022 01:49:04 +0000 X-ExclaimerHostedSignatures-MessageProcessed: true X-ExclaimerProxyLatency: 5667751 X-ExclaimerImprintLatency: 3295851 X-ExclaimerImprintAction: 94adc1c132c1417b9420fce4b5c004ba Received: by mail-wm1-f71.google.com with SMTP id bd8-20020a05600c1f0800b003490705086bso249500wmb.7 for ; Sun, 09 Jan 2022 17:49:04 -0800 (PST) X-Received: by 2002:adf:cd87:: with SMTP id q7mr11590358wrj.625.1641779343928; Sun, 09 Jan 2022 17:49:03 -0800 (PST) X-Received: by 2002:adf:cd87:: with SMTP id q7mr11590348wrj.625.1641779343709; Sun, 09 Jan 2022 17:49:03 -0800 (PST) MIME-Version: 1.0 From: Adrian Grucza Date: Mon, 10 Jan 2022 12:49:43 +1100 Message-ID: Subject: [PATCH] Fix FetchRefcursors issues To: pgsql-odbc@lists.postgresql.org Content-Type: multipart/mixed; boundary="00000000000095048f05d5308ace" X-Proofpoint-ORIG-GUID: i4cA5hxaTMe-1BNajnjtKsHXuIADAMG0 X-Proofpoint-GUID: i4cA5hxaTMe-1BNajnjtKsHXuIADAMG0 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. --00000000000095048f05d5308ace Content-Type: multipart/alternative; boundary="00000000000095048d05d5308acc" --00000000000095048d05d5308acc Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hi all, I've created a patch (attached) that fixes some issues with the automatic fetching of refcursors from a function/procedure (the FetchRefcursors setting). It includes updates to the tests. Below is a summary of the patch: 1. Fix crash if error occurs when fetching noninitial refcursor 2. Fix error when fetching NULL refcursor 3. Return empty result if all refcursors are NULL Regards, Adrian Grucza Technical Lead Tel: +61390185800 adrian.grucza@iress.com www.iress.com Level 16 385 Bourke St Melbourne, Victoria, 3000 The contents of this email originated from Iress. For this purpose Iress in= cludes Iress Limited and/or any of its subsidiaries, holding companies and = trading entities. =E2=80=8BIf you have received this email in error please = notify the sender immediately and delete this email. nosig --00000000000095048d05d5308acc Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable
Hi all,

<= div>I've created a=C2=A0patch=C2=A0(att= ached) that fixes some issues with the automatic fetching of refcursors fro= m a function/procedure (the FetchRefcursors=C2=A0setting). It includes upda= tes to the tests.

Below is a summary of the patch:
1. Fix crash if error occurs when fetching noninitial refcursor
=
2. Fix error when fetching NULL refcursor
3. Return empty re= sult if all refcursors are NULL

Regards,
3D"iress.com"
Adrian Grucza​  
<= /table><= /table>
Technical Lead
Tel: +61390185800
<= table cellpadding=3D"0" cellspacing=3D"0" border=3D"0" style=3D"font-size:0= ;color:#999999;font-style:normal;font-weight:400;white-space:nowrap;">
adrian.grucza@iress.com
www.iress.com
Level 16 385 Bourke&nb= sp;St
 Melbourne, Victoria, 3000
The contents of this= email originated from Iress. For this purpose Iress includes Iress Limited= and/or any of its subsidiaries, holding companies and trading entities. &#= 8203;If you have received this email in error please notify the sender imme= diately and delete this email. 
nosig
--00000000000095048d05d5308acc-- --00000000000095048f05d5308ace Content-Type: application/octet-stream; name="Fix-FetchRefcursors-issues.patch" Content-Disposition: attachment; filename="Fix-FetchRefcursors-issues.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_ky80v6380 RnJvbSA0Njg4MTc5YzExYmFkZmY4MGE2MDM2MDA5MDgwOTZlMWIzMzNhNzYwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBZHJpYW4gR3J1Y3phIDxhZHJpYW4uZ3J1Y3phQGlyZXNzLmNv bT4KRGF0ZTogTW9uLCAxMCBKYW4gMjAyMiAxMjoyNDowMCArMTEwMApTdWJqZWN0OiBbUEFUQ0gg MS8yXSBGaXggRmV0Y2hSZWZjdXJzb3JzIGlzc3VlcyAxLiBGaXggY3Jhc2ggaWYgZXJyb3Igb2Nj dXJzCiB3aGVuIGZldGNoaW5nIG5vbmluaXRpYWwgcmVmY3Vyc29yIDIuIEZpeCBlcnJvciB3aGVu IGZldGNoaW5nIE5VTEwgcmVmY3Vyc29yCiAzLiBSZXR1cm4gZW1wdHkgcmVzdWx0IGlmIGFsbCBy ZWZjdXJzb3JzIGFyZSBOVUxMCgotLS0KIHN0YXRlbWVudC5jICAgICAgICAgICAgICAgICAgICAg ICAgfCAyMCArKysrKysrKysrKysrKystLS0tLQogdGVzdC9leHBlY3RlZC9mZXRjaC1yZWZjdXJz b3JzLm91dCB8IDM2ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLQogdGVzdC9z cmMvZmV0Y2gtcmVmY3Vyc29ycy10ZXN0LmMgICB8IDI5ICsrKysrKysrKysrKysrKysrKystLS0t LS0tLS0tCiAzIGZpbGVzIGNoYW5nZWQsIDY2IGluc2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygt KQoKZGlmZiAtLWdpdCBhL3N0YXRlbWVudC5jIGIvc3RhdGVtZW50LmMKaW5kZXggZTdmODE2Zi4u ZjQ1Y2Q3OSAxMDA2NDQKLS0tIGEvc3RhdGVtZW50LmMKKysrIGIvc3RhdGVtZW50LmMKQEAgLTIz MDQsNiArMjMwNCw3IEBAIE1ZTE9HKERFVEFJTF9MT0dfTEVWRUwsICIhIVNDX2ZldGNoIHJldHVy biA9JWRcbiIsIHJldCk7CiAJCXsKIAkJCWNoYXIJCQlmZXRjaFsxMjhdOwogCQkJUVJlc3VsdENs YXNzIAkqbGFzdCA9IE5VTEwsICpyZXM7CisJCQlCT09MCQkJcmVmY3Vyc29yX2ZvdW5kID0gRkFM U0U7CiAKIAkJCS8qIEl0ZXJhdGUgdGhlIGNvbHVtbnMgaW4gdGhlIHJlc3VsdCB0byBsb29rIGZv ciByZWZjdXJzb3JzICovCiAJCQludW1jb2xzID0gUVJfTnVtUmVzdWx0Q29scyhyaG9sZC5maXJz dCk7CkBAIC0yMzE4LDcgKzIzMTksMTIgQEAgTVlMT0coREVUQUlMX0xPR19MRVZFTCwgIiEhU0Nf ZmV0Y2ggcmV0dXJuID0lZFxuIiwgcmV0KTsKIAkJCQkJCWJyZWFrOwogCQkJCQl9CiAKKwkJCQkJ cmVmY3Vyc29yX2ZvdW5kID0gVFJVRTsKIAkJCQkJU1RSX1RPX05BTUUoc2VsZi0+Y3Vyc29yX25h bWUsIFFSX2dldF92YWx1ZV9iYWNrZW5kX3RleHQocmhvbGQuZmlyc3QsIDAsIGkpKTsKKwkJCQkJ LyogU2tpcCBOVUxMIHJlZmN1cnNvcnMgKGFsbG93cyBwcm9jZWR1cmUgdG8gcmV0dXJuIGEgdmFy aWFibGUgbnVtYmVyIG9mIHJlc3VsdHMpICovCisJCQkJCWlmICghU0NfY3Vyc29yX2lzX3ZhbGlk KHNlbGYpKQorCQkJCQkJY29udGludWU7CisKIAkJCQkJU0Nfc2V0X2ZldGNoY3Vyc29yKHNlbGYp OwogCQkJCQlxaS5yZXN1bHRfaW4gPSBOVUxMOwogCQkJCQlxaS5jdXJzb3IgPSBTQ19jdXJzb3Jf bmFtZShzZWxmKTsKQEAgLTIzMzksMTkgKzIzNDUsMjMgQEAgTVlMT0coREVUQUlMX0xPR19MRVZF TCwgIiEhU0NfZmV0Y2ggcmV0dXJuID0lZFxuIiwgcmV0KTsKIAkJCQkJCQlRUl9jb25jYXQobGFz dCwgcmVzKTsKIAkJCQkJCQlzZWxmLT5tdWx0aV9zdGF0ZW1lbnQgPSBUUlVFOwogCQkJCQkJfQor CQkJCQkJbGFzdCA9IHJlczsKIAkJCQkJCWlmICghUVJfY29tbWFuZF9tYXliZV9zdWNjZXNzZnVs KHJlcykpCiAJCQkJCQl7CiAJCQkJCQkJU0Nfc2V0X2Vycm9yaW5mbyhzZWxmLCByZXMsIDApOwot CQkJCQkJCVFSX0Rlc3RydWN0b3IocmhvbGQuZmlyc3QpOwogCQkJCQkJCWJyZWFrOwogCQkJCQkJ fQotCi0JCQkJCQlsYXN0ID0gcmVzOwogCQkJCQl9CiAJCQkJfQogCQkJfQotCQkJaWYgKGxhc3Qp Ci0JCQkJUVJfRGVzdHJ1Y3RvcihyaG9sZC5maXJzdCk7CisJCQlpZiAocmVmY3Vyc29yX2ZvdW5k KQorCQkJeworCQkJCS8qIERpc2NhcmQgb3JpZ2luYWwgcmVzdWx0ICovCisJCQkJaWYgKE5VTEwg PT0gbGFzdCkKKwkJCQkJU0Nfc2V0X1Jlc3VsdChzZWxmLCBRUl9Db25zdHJ1Y3RvcigpKTsJLyog cmV0dXJuIGVtcHR5IHJlc3VsdCAqLworCQkJCWVsc2UKKwkJCQkJUVJfRGVzdHJ1Y3RvcihyaG9s ZC5maXJzdCk7CisJCQl9CiAJCX0KIAl9CiBjbGVhbnVwOgpkaWZmIC0tZ2l0IGEvdGVzdC9leHBl Y3RlZC9mZXRjaC1yZWZjdXJzb3JzLm91dCBiL3Rlc3QvZXhwZWN0ZWQvZmV0Y2gtcmVmY3Vyc29y cy5vdXQKaW5kZXggZmZmOWVlMS4uYmZlNmY4NSAxMDA2NDQKLS0tIGEvdGVzdC9leHBlY3RlZC9m ZXRjaC1yZWZjdXJzb3JzLm91dAorKysgYi90ZXN0L2V4cGVjdGVkL2ZldGNoLXJlZmN1cnNvcnMu b3V0CkBAIC0yLDE5ICsyLDQ3IEBAIENyZWF0aW5nIHByb2NlZHVyZSAncmVmcHJvYycKIGNvbm5l Y3RlZAogZGlzY29ubmVjdGluZwogCi0tLSBURVNUIHVzaW5nIEZldGNoUmVmY3Vyc29ycz0wIGFu ZCBTUUxfQVRUUl9BVVRPQ09NTUlUPTEKKy0tIFRFU1QgdXNpbmcgRmV0Y2hSZWZjdXJzb3JzPTAs IGF1dG9jb21taXQ9MSwgbnVtcmVzdWx0cz0yCiBjb25uZWN0ZWQKIE91dHB1dCBwYXJhbSBudW1f Y3Vyc29yIGlzIDIKIC0tMSBSZXN1bHQgc2V0OgotMglyZWYxCXJlZjIKKzIJPHVubmFtZWQgcG9y dGFsIDE+CTx1bm5hbWVkIHBvcnRhbCAyPgogZGlzY29ubmVjdGluZwogCi0tLSBURVNUIHVzaW5n IEZldGNoUmVmY3Vyc29ycz0xIGFuZCBTUUxfQVRUUl9BVVRPQ09NTUlUPTEKKy0tIFRFU1QgdXNp bmcgRmV0Y2hSZWZjdXJzb3JzPTEsIGF1dG9jb21taXQ9MSwgbnVtcmVzdWx0cz0yCiBjb25uZWN0 ZWQKIFNRTEV4ZWN1dGUgZmFpbGVkCiBIWTAwMD1RdWVyeSBtdXN0IGJlIGV4ZWN1dGVkIGluIGEg dHJhbnNhY3Rpb24gd2hlbiBGZXRjaFJlZmN1cnNvcnMgc2V0dGluZyBpcyBlbmFibGVkLgogCi0t LSBURVNUIHVzaW5nIEZldGNoUmVmY3Vyc29ycz0xIGFuZCBTUUxfQVRUUl9BVVRPQ09NTUlUPTAK Ky0tIFRFU1QgdXNpbmcgRmV0Y2hSZWZjdXJzb3JzPTEsIGF1dG9jb21taXQ9MCwgbnVtcmVzdWx0 cz0wCitjb25uZWN0ZWQKK091dHB1dCBwYXJhbSBudW1fY3Vyc29yIGlzIDAKKy0tMSBSZXN1bHQg c2V0OgorZGlzY29ubmVjdGluZworCistLSBURVNUIHVzaW5nIEZldGNoUmVmY3Vyc29ycz0xLCBh dXRvY29tbWl0PTAsIG51bXJlc3VsdHM9MQorY29ubmVjdGVkCitPdXRwdXQgcGFyYW0gbnVtX2N1 cnNvciBpcyAxCistLTEgUmVzdWx0IHNldDoKKzEJZm9vCisyCWJhcgorMwlmb29iYXIKK2Rpc2Nv bm5lY3RpbmcKKworLS0gVEVTVCB1c2luZyBGZXRjaFJlZmN1cnNvcnM9MSwgYXV0b2NvbW1pdD0w LCBudW1yZXN1bHRzPTIKK2Nvbm5lY3RlZAorT3V0cHV0IHBhcmFtIG51bV9jdXJzb3IgaXMgMgor LS0xIFJlc3VsdCBzZXQ6CisxCWZvbworMgliYXIKKzMJZm9vYmFyCistLTIgUmVzdWx0IHNldDoK K2Zvb2JhcgkzCitiYXIJMgorZm9vCTEKK2Rpc2Nvbm5lY3RpbmcKKworLS0gVEVTVCB1c2luZyBG ZXRjaFJlZmN1cnNvcnM9MSwgYXV0b2NvbW1pdD0wLCBudW1yZXN1bHRzPTMKIGNvbm5lY3RlZAog T3V0cHV0IHBhcmFtIG51bV9jdXJzb3IgaXMgMgogLS0xIFJlc3VsdCBzZXQ6CmRpZmYgLS1naXQg YS90ZXN0L3NyYy9mZXRjaC1yZWZjdXJzb3JzLXRlc3QuYyBiL3Rlc3Qvc3JjL2ZldGNoLXJlZmN1 cnNvcnMtdGVzdC5jCmluZGV4IGVkOWE0N2EuLjAxZTU4ZTQgMTAwNjQ0Ci0tLSBhL3Rlc3Qvc3Jj L2ZldGNoLXJlZmN1cnNvcnMtdGVzdC5jCisrKyBiL3Rlc3Qvc3JjL2ZldGNoLXJlZmN1cnNvcnMt dGVzdC5jCkBAIC0zMywxMyArMzMsMTkgQEAgc3RhdGljIHZvaWQgc2V0dXBfcHJvY2VkdXJlKCkK IAlDSEVDS19DT05OX1JFU1VMVChyYywgImZhaWxlZCB0byBhbGxvY2F0ZSBzdG10IGhhbmRsZSIs IGNvbm4pOwogCiAJcmMgPSBTUUxFeGVjRGlyZWN0KGhzdG10LCAiY3JlYXRlIG9yIHJlcGxhY2Ug cHJvY2VkdXJlIHJlZnByb2MiCi0JCQkiKGlub3V0IG51bV9jdXJzb3IgaW50ZWdlciwgaW5vdXQg cmVmMSByZWZjdXJzb3IgZGVmYXVsdCAncmVmMScsIGlub3V0IHJlZjIgcmVmY3Vyc29yIGRlZmF1 bHQgJ3JlZjInKSBhcyAiCisJCQkiKGlub3V0IG51bV9jdXJzb3IgaW50ZWdlciwgaW5vdXQgcmVm MSByZWZjdXJzb3IgZGVmYXVsdCBudWxsLCBpbm91dCByZWYyIHJlZmN1cnNvciBkZWZhdWx0IG51 bGwpIGFzICIKIAkJCSIkcHJvY2VkdXJlJCBcbiIKIAkJCSJERUNMQVJFIFxuIgogCQkJIkJFR0lO IFxuIgotCQkJIm51bV9jdXJzb3IgOj0gMjsgXG4iCi0JCQkiT1BFTiByZWYxIEZPUiBTRUxFQ1Qg aWQsIHQgRlJPTSB0ZXN0dGFiMSBPUkRFUiBCWSBpZCBBU0M7IFxuIgotCQkJIk9QRU4gcmVmMiBG T1IgU0VMRUNUIHQsIGlkIEZST00gdGVzdHRhYjEgT1JERVIgQlkgaWQgREVTQzsgXG4iCisJCQki SUYgbnVtX2N1cnNvciA+IDAgVEhFTiBcbiIKKwkJCSIgICAgT1BFTiByZWYxIEZPUiBTRUxFQ1Qg aWQsIHQgRlJPTSB0ZXN0dGFiMSBPUkRFUiBCWSBpZCBBU0M7IFxuIgorCQkJIkVORCBJRjsgXG4i CisJCQkiSUYgbnVtX2N1cnNvciA+IDEgVEhFTiBcbiIKKwkJCSIgICAgT1BFTiByZWYyIEZPUiBT RUxFQ1QgdCwgaWQgRlJPTSB0ZXN0dGFiMSBPUkRFUiBCWSBpZCBERVNDOyBcbiIKKwkJCSJFTkQg SUY7IFxuIgorCQkJIklGIG51bV9jdXJzb3IgPiAyIFRIRU4gXG4iCisJCQkiICAgIG51bV9jdXJz b3IgOj0gMjsgXG4iCisJCQkiRU5EIElGOyBcbiIKIAkJCSJFTkQ7IFxuIgogCQkJIiRwcm9jZWR1 cmUkIFxuIgogCQkJIkxBTkdVQUdFIHBscGdzcWxcbiIKQEAgLTUyLDEzICs1OCwxMyBAQCBzdGF0 aWMgdm9pZCBzZXR1cF9wcm9jZWR1cmUoKQogCXRlc3RfZGlzY29ubmVjdCgpOwogfQogCi1zdGF0 aWMgdm9pZCByZWZjdXJzb3JfdGVzdChjaGFyKiBjb25uZWN0cGFyYW1zLCBTUUxVSU5URUdFUiBh dXRvY29tbWl0KQorc3RhdGljIHZvaWQgcmVmY3Vyc29yX3Rlc3QoY2hhciogY29ubmVjdHBhcmFt cywgU1FMVUlOVEVHRVIgYXV0b2NvbW1pdCwgaW50IG51bXJlc3VsdHMpCiB7CiAJU1FMUkVUVVJO CXJjOwogCUhTVE1UCQloc3RtdCA9IFNRTF9OVUxMX0hTVE1UOwotCWludAkgICAgICAgIG51bV9j dXJzb3IgPSAwOworCWludAkgICAgICAgIG51bV9jdXJzb3IgPSBudW1yZXN1bHRzOwogCi0JcHJp bnRmKCJcbi0tIFRFU1QgdXNpbmcgJXMgYW5kIFNRTF9BVFRSX0FVVE9DT01NSVQ9JXVcbiIsIGNv bm5lY3RwYXJhbXMsIGF1dG9jb21taXQpOworCXByaW50ZigiXG4tLSBURVNUIHVzaW5nICVzLCBh dXRvY29tbWl0PSV1LCBudW1yZXN1bHRzPSVkXG4iLCBjb25uZWN0cGFyYW1zLCBhdXRvY29tbWl0 LCBudW1yZXN1bHRzKTsKIAogCXRlc3RfY29ubmVjdF9leHQoY29ubmVjdHBhcmFtcyk7CiAKQEAg LTEwMiw5ICsxMDgsMTIgQEAgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogewogCXNl dHVwX3Byb2NlZHVyZSgpOwogCi0JcmVmY3Vyc29yX3Rlc3QoIkZldGNoUmVmY3Vyc29ycz0wIiwg U1FMX0FVVE9DT01NSVRfT04pOwotCXJlZmN1cnNvcl90ZXN0KCJGZXRjaFJlZmN1cnNvcnM9MSIs IFNRTF9BVVRPQ09NTUlUX09OKTsKLQlyZWZjdXJzb3JfdGVzdCgiRmV0Y2hSZWZjdXJzb3JzPTEi LCBTUUxfQVVUT0NPTU1JVF9PRkYpOworCXJlZmN1cnNvcl90ZXN0KCJGZXRjaFJlZmN1cnNvcnM9 MCIsIFNRTF9BVVRPQ09NTUlUX09OLCAyKTsKKwlyZWZjdXJzb3JfdGVzdCgiRmV0Y2hSZWZjdXJz b3JzPTEiLCBTUUxfQVVUT0NPTU1JVF9PTiwgMik7CisJcmVmY3Vyc29yX3Rlc3QoIkZldGNoUmVm Y3Vyc29ycz0xIiwgU1FMX0FVVE9DT01NSVRfT0ZGLCAwKTsKKwlyZWZjdXJzb3JfdGVzdCgiRmV0 Y2hSZWZjdXJzb3JzPTEiLCBTUUxfQVVUT0NPTU1JVF9PRkYsIDEpOworCXJlZmN1cnNvcl90ZXN0 KCJGZXRjaFJlZmN1cnNvcnM9MSIsIFNRTF9BVVRPQ09NTUlUX09GRiwgMik7CisJcmVmY3Vyc29y X3Rlc3QoIkZldGNoUmVmY3Vyc29ycz0xIiwgU1FMX0FVVE9DT01NSVRfT0ZGLCAzKTsKIAogCXJl dHVybiAwOwogfQotLSAKMi4xMy4wLndpbmRvd3MuMQoK --00000000000095048f05d5308ace--