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 1q1vCr-0006vP-Au for pgsql-interfaces@arkaria.postgresql.org; Wed, 24 May 2023 20:35:38 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1q1vCq-00079q-3J for pgsql-interfaces@arkaria.postgresql.org; Wed, 24 May 2023 20:35:36 +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 1q1nFW-0005th-GV for pgsql-interfaces@lists.postgresql.org; Wed, 24 May 2023 12:05:50 +0000 Received: from forwardcorp1c.mail.yandex.net ([2a02:6b8:c03:500:1:45:d181:df01]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1q1nFS-001dTi-Ad for pgsql-interfaces@lists.postgresql.org; Wed, 24 May 2023 12:05:49 +0000 Received: from mail-nwsmtp-mxback-corp-main-74.iva.yp-c.yandex.net (mail-nwsmtp-mxback-corp-main-74.iva.yp-c.yandex.net [IPv6:2a02:6b8:c0c:b27:0:640:c95d:0]) by forwardcorp1c.mail.yandex.net (Yandex) with ESMTP id 717A55F32A for ; Wed, 24 May 2023 15:05:42 +0300 (MSK) Received: from mail.yandex-team.ru (2a02:6b8:c0c:809d:0:640:b089:0 [2a02:6b8:c0c:809d:0:640:b089:0]) by mail-nwsmtp-mxback-corp-main-74.iva.yp-c.yandex.net (mxbackcorp/Yandex) with HTTP id f5FV3B05a8c0-KIVgHzuv; Wed, 24 May 2023 15:05:42 +0300 X-Yandex-Fwd: 2 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=userver.tech; s=mail; t=1684929942; bh=hsHBeKqUVe3zpnaxOfFy213BRYu05sF0SYeEGbgfus0=; h=Date:Subject:To:From:Message-Id; b=A2KZdKCNVFQKFPw+gjuS3YR787axT2mk9QMxwmZJURxRsfFpVcy2FpNIcGLDpD/Nn I6yFVssz1ty7cwBZWNXZXoS6qI4ZnLTUJLaw6BvcpcXBRgG3CdH0bgMTnPf1Nvp1/W cdzh7DrToRqQjlpKXZAAFLAkIfuDYTVIyAGhfODs= Authentication-Results: mail-nwsmtp-mxback-corp-main-74.iva.yp-c.yandex.net; dkim=pass header.i=@userver.tech Received: from xxsl4l6ndgil2oud.iva.yp-c.yandex.net (xxsl4l6ndgil2oud.iva.yp-c.yandex.net [2a02:6b8:c0c:908e:0:640:f9c2:0]) by mail-nwsmtp-mxback-corp-main-49.iva.yp-c.yandex.net (mxbackcorp/Yandex) with HTTP id J5Fv9G0Ota60-8afY3mWr for ; Wed, 24 May 2023 15:05:32 +0300 Received: by xxsl4l6ndgil2oud.iva.yp-c.yandex.net with HTTP; Wed, 24 May 2023 15:05:31 +0300 From: Ivan Trofimov Envelope-From: itrofimow@yandex-team.ru To: "pgsql-interfaces@lists.postgresql.org" Subject: libpq seems to misbehave in a pipelining corner case MIME-Version: 1.0 X-Mailer: Yamail [ http://yandex.ru ] 5.0 Date: Wed, 24 May 2023 15:05:41 +0300 Message-Id: <31441684929791@mail.yandex-team.ru> Content-Type: multipart/mixed; boundary="----==--bound.6072.xxsl4l6ndgil2oud.iva.yp-c.yandex.net" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk ------==--bound.6072.xxsl4l6ndgil2oud.iva.yp-c.yandex.net Content-Transfer-Encoding: base64 Content-Type: text/html; charset=utf-8 PGRpdj48ZGl2IHN0eWxlPSJiYWNrZ3JvdW5kLWNvbG9yOiMxZTFlMWU7Y29sb3I6I2Q0ZDRkNDtm b250LWZhbWlseTonZHJvaWQgc2FucyBtb25vJyAsICdtb25vc3BhY2UnICwgbW9ub3NwYWNlO2Zv bnQtc2l6ZToxNHB4O2ZvbnQtd2VpZ2h0Om5vcm1hbDtsaW5lLWhlaWdodDoxOXB4O3doaXRlLXNw YWNlOnByZSI+PGRpdj48c3BhbiBzdHlsZT0iY29sb3I6I2Q0ZDRkNCI+QXMgZmFyIGFzIGkgdW5k ZXJzdGFuZCwgdGhlcmUgaXMgYW4gaW52YXJpYW50IGluIGxpYnBxLCB0aGF0IGlmIFBRcGlwZWxp bmVTeW5jIGNhbGwgZmluaXNoZWQgc3VjY2Vzc2Z1bGx5LDwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFu IHN0eWxlPSJjb2xvcjojZDRkNGQ0Ij5QUXJlc3VsdFN0YXR1cyB3aWxsIGV2ZW50dWFsbHkgcmV0 dXJuIFBHUkVTX1BJUEVMSU5FX1NZTkMsIG9yIHRoZSBjb25uZWN0aW9uIHdpbGwgYmUgaW4gQ09O TkVDVElPTl9CQUQgc3RhdGUuPC9zcGFuPjwvZGl2PsKgPGRpdj48c3BhbiBzdHlsZT0iY29sb3I6 I2Q0ZDRkNCI+VGhpcyBpcyBoaWdobGlnaHRlZCBpbiBzZXZlcmFsIHBsYWNlcyBpbiB0aGUgZG9j czo8L3NwYW4+PC9kaXY+PGRpdj48c3BhbiBzdHlsZT0iY29sb3I6IzY3OTZlNiI+MS48L3NwYW4+ PHNwYW4gc3R5bGU9ImNvbG9yOiNkNGQ0ZDQiPiAiUEdSRVNfUElQRUxJTkVfU1lOQ8KgaXMgcmVw b3J0ZWQgZXhhY3RseSBvbmNlIGZvciBlYWNowqBQUXBpcGVsaW5lU3luY8KgYXQgdGhlIGNvcnJl c3BvbmRpbmcgcG9pbnQgaW4gdGhlIHBpcGVsaW5lLiI8L3NwYW4+PC9kaXY+PGRpdj48c3BhbiBz dHlsZT0iY29sb3I6IzY3OTZlNiI+Mi48L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiNkNGQ0ZDQi PiAiRnJvbSB0aGUgY2xpZW50J3MgcGVyc3BlY3RpdmUsIGFmdGVywqBQUXJlc3VsdFN0YXR1c8Kg cmV0dXJuc8KgUEdSRVNfRkFUQUxfRVJST1IsIHRoZSBwaXBlbGluZSBpcyBmbGFnZ2VkIGFzIGFi b3J0ZWQuwqA8L3NwYW4+PC9kaXY+PGRpdj48c3BhbiBzdHlsZT0iY29sb3I6I2Q0ZDRkNCI+UFFy ZXN1bHRTdGF0dXPCoHdpbGwgcmVwb3J0IGHCoFBHUkVTX1BJUEVMSU5FX0FCT1JURUTCoHJlc3Vs dCBmb3IgZWFjaCByZW1haW5pbmcgcXVldWVkIG9wZXJhdGlvbiBpbiBhbiBhYm9ydGVkIHBpcGVs aW5lLsKgPC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9ImNvbG9yOiNkNGQ0ZDQiPlRoZSBy ZXN1bHQgZm9ywqBQUXBpcGVsaW5lU3luY8KgaXMgcmVwb3J0ZWQgYXPCoFBHUkVTX1BJUEVMSU5F X1NZTkPCoHRvIHNpZ25hbCB0aGUgZW5kIG9mIHRoZSBhYm9ydGVkIHBpcGVsaW5lIGFuZMKgPC9z cGFuPjwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9ImNvbG9yOiNkNGQ0ZDQiPnJlc3VtcHRpb24gb2Yg bm9ybWFsIHJlc3VsdCBwcm9jZXNzaW5nLsKgVGhlIGNsaWVudMKgbXVzdMKgcHJvY2VzcyByZXN1 bHRzIHdpdGjCoFBRZ2V0UmVzdWx0wqBkdXJpbmcgZXJyb3IgcmVjb3ZlcnkuIjwvc3Bhbj48L2Rp dj7CoDxkaXY+PHNwYW4gc3R5bGU9ImNvbG9yOiNkNGQ0ZDQiPlNvIGkgZXhwZWN0IGEgY29kZSBs aWtlIHRoaXM8L3NwYW4+PC9kaXY+wqA8ZGl2PjxzcGFuIHN0eWxlPSJjb2xvcjojZDRkNGQ0Ij5p ZiAoIVBRcGlwZWxpbmVTeW5jKGNvbm4pKSBleGl0KDEpOzwvc3Bhbj48L2Rpdj7CoDxkaXY+PHNw YW4gc3R5bGU9ImNvbG9yOiNkNGQ0ZDQiPndoaWxlIChQUXN0YXR1cyhjb25uKSAhPSBDT05ORUNU SU9OX0JBRCkgezwhLS0gLS0+PC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9ImNvbG9yOiNk NGQ0ZDQiPsKgIMKgcmVzID0gUFFnZXRSZXN1bHQoY29ubik7PC9zcGFuPjwvZGl2PjxkaXY+PHNw YW4gc3R5bGU9ImNvbG9yOiNkNGQ0ZDQiPsKgIMKgaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgPT0g UEdSRVNfUElQRUxJTkVfU1lOQykgezwhLS0gLS0+PC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4gc3R5 bGU9ImNvbG9yOiNkNGQ0ZDQiPsKgIMKgIMKgIMKgYnJlYWs7PC9zcGFuPjwvZGl2PjxkaXY+PHNw YW4gc3R5bGU9ImNvbG9yOiNkNGQ0ZDQiPsKgIMKgfTwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuIHN0 eWxlPSJjb2xvcjojZDRkNGQ0Ij59PC9zcGFuPjwvZGl2PsKgPGRpdj48c3BhbiBzdHlsZT0iY29s b3I6I2Q0ZDRkNCI+dG8gZXZlbnR1YWxseSBleGl0IHRoZSBsb29wLjwvc3Bhbj48L2Rpdj7CoDxk aXY+PHNwYW4gc3R5bGU9ImNvbG9yOiNkNGQ0ZDQiPkhvd2V2ZXIsIGlmIGluc3RlYWQgb2YgZXhw ZWN0ZWQgIlJlYWR5VG9RdWVyeSIgcmVzcG9uc2Ugc2VydmVyIHNlbmRzIGFuIGVycm9yIGFuZCBj bG9zZXMgdGhlIGNvbm5lY3Rpb24gKDwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuIHN0eWxlPSJjb2xv cjojZDRkNGQ0Ij5zYXksIGJhY2tlbmQgdGVybWluYXRlZCBieSBhZG1pbmlzdHJhdG9yIG9yIHdp dGggYSBwcm94eSBpbiBwbGFjZSBhbmQgdXBzdHJlYW0gUEcgc2VydmVyIGJlaW5nIGRlYWQpIHRo aXMgbG9vcDwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuIHN0eWxlPSJjb2xvcjojZDRkNGQ0Ij5nZXRz IHN0dWNrIGluIGJ1c3ktbG9vcC48L3NwYW4+PC9kaXY+wqA8ZGl2PjxzcGFuIHN0eWxlPSJjb2xv cjojZDRkNGQ0Ij5NeSB1bmRlcnN0YW5kaW5nIGlzIHRoYXQgdHJhbnNpdGlvbnMgaW4gcGlwZWxp bmluZyBzdGF0ZS1tYWNoaW5lIGdvIGxpa2UgdGhpczo8L3NwYW4+PC9kaXY+PGRpdj48c3BhbiBz dHlsZT0iY29sb3I6IzY3OTZlNiI+MS48L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiNkNGQ0ZDQi PiBJbml0aWFsIFBRZ2V0UmVzdWx0IGNhbGwgZ2V0cyBoZXJlIGh0dHBzOi8vZ2l0aHViLmNvbS9w b3N0Z3Jlcy9wb3N0Z3Jlcy9ibG9iL2E4MTdlZGJmNmYzMDJjMzc2ZjVjMDAxMmQxOWEwNDc0YjZi ZGVhODgvc3JjL2ludGVyZmFjZXMvbGlicHEvZmUtZXhlYy5jI0wyMDgxPC9zcGFuPjwvZGl2Pjxk aXY+PHNwYW4gc3R5bGU9ImNvbG9yOiM2Nzk2ZTYiPjIuPC9zcGFuPjxzcGFuIHN0eWxlPSJjb2xv cjojZDRkNGQ0Ij4gcGFyc2VJbnB1dCBnZXRzIGFuIGVycm9yIHRoZSBzZXJ2ZXIgc2VuZCBodHRw czovL2dpdGh1Yi5jb20vcG9zdGdyZXMvcG9zdGdyZXMvYmxvYi9hODE3ZWRiZjZmMzAyYzM3NmY1 YzAwMTJkMTlhMDQ3NGI2YmRlYTg4L3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLXByb3RvY29sMy5j I0wyMTbCoDwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuIHN0eWxlPSJjb2xvcjojZDRkNGQ0Ij5hbmQg c3dpdGNoZXMgdGhlIHN0YXRlIGludG8gUEdBU1lOQ19SRUFEWTwvc3Bhbj48L2Rpdj48ZGl2Pjxz cGFuIHN0eWxlPSJjb2xvcjojNjc5NmU2Ij4zLjwvc3Bhbj48c3BhbiBzdHlsZT0iY29sb3I6I2Q0 ZDRkNCI+IFBRZ2V0UmVzdWx0IGNvbnRpbnVlcyBhbmQgaGVyZSBodHRwczovL2dpdGh1Yi5jb20v cG9zdGdyZXMvcG9zdGdyZXMvYmxvYi9hODE3ZWRiZjZmMzAyYzM3NmY1YzAwMTJkMTlhMDQ3NGI2 YmRlYTg4L3NyYy9pbnRlcmZhY2VzL2xpYnBxL2ZlLWV4ZWMuYyNMMjEyNjwvc3Bhbj48L2Rpdj48 ZGl2PjxzcGFuIHN0eWxlPSJjb2xvcjojZDRkNGQ0Ij5hZHZhbmNlcyB0aGUgcXVldWUsIHNvIHRo ZSBTeW5jIGVudHJ5IGlzIGdvbmUsIGFuZCBzd2l0Y2hlcyBpbnRvIFBHQVNZTkNfUElQRUxJTkVf SURMRSBsYXRlci48L3NwYW4+PC9kaXY+PGRpdj48c3BhbiBzdHlsZT0iY29sb3I6IzY3OTZlNiI+ NC48L3NwYW4+PHNwYW4gc3R5bGU9ImNvbG9yOiNkNGQ0ZDQiPiBOZXh0IFBRZ2V0UmVzdWx0IGNh bGwgZ2V0cyBoZXJlIGh0dHBzOi8vZ2l0aHViLmNvbS9wb3N0Z3Jlcy9wb3N0Z3Jlcy9ibG9iL2E4 MTdlZGJmNmYzMDJjMzc2ZjVjMDAxMmQxOWEwNDc0YjZiZGVhODgvc3JjL2ludGVyZmFjZXMvbGli cHEvZmUtZXhlYy5jI0xMMjExMEM0LUwyMTEwQzI2LDwvc3Bhbj48L2Rpdj48ZGl2PjxzcGFuIHN0 eWxlPSJjb2xvcjojZDRkNGQ0Ij5hbmQgcHFQaXBlbGluZVByb2Nlc3NRdWV1ZSBzd2l0Y2hlcyBp bnRvIFBHQVNZTkNfSURMRSBoZXJlIGh0dHBzOi8vZ2l0aHViLmNvbS9wb3N0Z3Jlcy9wb3N0Z3Jl cy9ibG9iL2E4MTdlZGJmNmYzMDJjMzc2ZjVjMDAxMmQxOWEwNDc0YjZiZGVhODgvc3JjL2ludGVy ZmFjZXMvbGlicHEvZmUtZXhlYy5jI0wzMDg0PC9zcGFuPjwvZGl2PsKgPGRpdj48c3BhbiBzdHls ZT0iY29sb3I6I2Q0ZDRkNCI+Tm93IHdlIGFyZSBzdHVjayBpbiB0aGUgcG9zaXRpb24gd2hlcmUg bGlicHEgY29uc2lkZXJzIHRoZSBjb25uZWN0aW9uIGJlaW5nIGluIENPTk5FQ1RJT05fT0sgc3Rh dGUgPC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9ImNvbG9yOiNkNGQ0ZDQiPihiZWNhdXNl IG5vIHJlYWRzL3dyaXRlcyBvdmVyIGhhbGYtY2xvc2VkIHNvY2tldCBoYXZlIGJlZW4gaXNzdWVz KSwgPC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9ImNvbG9yOiNkNGQ0ZDQiPmFzeW5jU3Rh dHVzIGJlaW5nIFBHQVNZTkNfSURMRSwgcGlwZWxpbmUgYmVpbmcgaW4gUFFfUElQRUxJTkVfQUJP UlRFRCBzdGF0ZSwgPC9zcGFuPjwvZGl2PjxkaXY+PHNwYW4gc3R5bGU9ImNvbG9yOiNkNGQ0ZDQi PmFuZCB0aGUgZXhwZWN0ZWQgUEdSRVNfUElQRUxJTkVfU1lOQyBuZXZlciBjYW1lIGFuZCBuZXZl ciB3aWxsIChiZWNhdXNlIFBHQVNZTkNfSURMRSkuPC9zcGFuPjwvZGl2PsKgPGRpdj48c3BhbiBz dHlsZT0iY29sb3I6I2Q0ZDRkNCI+V2hvIGlzIGF0IGZhdWx0IGhlcmUsIGlzIGl0IHBvc3RncmVz LCBsaWJwcSBvciBtZSBtaXN1bmRlcnN0YW5kaW5nL21pc3VzaW5nIGxpYnBxPzwvc3Bhbj48L2Rp dj48L2Rpdj48L2Rpdj4= ------==--bound.6072.xxsl4l6ndgil2oud.iva.yp-c.yandex.net Content-Disposition: attachment; filename="libpq_pipelining_busyloop.c" Content-Transfer-Encoding: base64 Content-Type: text/x-c; name="libpq_pipelining_busyloop.c" I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCiNpbmNsdWRlIDxsaWJwcS1m ZS5oPgoKc3RhdGljIHZvaWQKZXhpdF9uaWNlbHkoUEdjb25uICpjb25uKQp7CiAgICBQUWZpbmlz aChjb25uKTsKICAgIGV4aXQoMSk7Cn0KCmludAptYWluKGludCBhcmdjLCBjaGFyICoqYXJndikK ewogICAgY29uc3QgY2hhciAqY29ubmluZm87CiAgICBQR2Nvbm4gICAgICpjb25uOwogICAgUEdy ZXN1bHQgICAqcmVzOwogICAgaW50ICAgICAgICAgbkZpZWxkczsKICAgIGludCAgICAgICAgIGks CiAgICAgICAgICAgICAgICBqOwoKICAgIC8qCiAgICAgKiBJZiB0aGUgdXNlciBzdXBwbGllcyBh IHBhcmFtZXRlciBvbiB0aGUgY29tbWFuZCBsaW5lLCB1c2UgaXQgYXMgdGhlCiAgICAgKiBjb25u aW5mbyBzdHJpbmc7IG90aGVyd2lzZSBkZWZhdWx0IHRvIHNldHRpbmcgZGJuYW1lPXBvc3RncmVz IGFuZCB1c2luZwogICAgICogZW52aXJvbm1lbnQgdmFyaWFibGVzIG9yIGRlZmF1bHRzIGZvciBh bGwgb3RoZXIgY29ubmVjdGlvbiBwYXJhbWV0ZXJzLgogICAgICovCiAgICBpZiAoYXJnYyA+IDEp CiAgICAgICAgY29ubmluZm8gPSBhcmd2WzFdOwogICAgZWxzZQogICAgICAgIGNvbm5pbmZvID0g ImRibmFtZSA9IHBvc3RncmVzIjsKCiAgICAvKiBNYWtlIGEgY29ubmVjdGlvbiB0byB0aGUgZGF0 YWJhc2UgKi8KICAgIGNvbm4gPSBQUWNvbm5lY3RkYihjb25uaW5mbyk7CgogICAgLyogQ2hlY2sg dG8gc2VlIHRoYXQgdGhlIGJhY2tlbmQgY29ubmVjdGlvbiB3YXMgc3VjY2Vzc2Z1bGx5IG1hZGUg Ki8KICAgIGlmIChQUXN0YXR1cyhjb25uKSAhPSBDT05ORUNUSU9OX09LKQogICAgewogICAgICAg IGZwcmludGYoc3RkZXJyLCAiJXMiLCBQUWVycm9yTWVzc2FnZShjb25uKSk7CiAgICAgICAgZXhp dF9uaWNlbHkoY29ubik7CiAgICB9CgogICAgaWYgKCFQUWVudGVyUGlwZWxpbmVNb2RlKGNvbm4p KQogICAgewogICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXMiLCBQUWVycm9yTWVzc2FnZShjb25u KSk7CglleGl0X25pY2VseShjb25uKTsKICAgIH0KCiAgICBwcmludGYoIklzc3VlIHBnX3Rlcm1p bmF0ZV9iYWNrZW5kIGZvciB0aGUgY29ubmVjdGlvbiwgcHJlc3MgRW50ZXIgd2hlbiBkb25lLi4u XG4iKTsKICAgIHNjYW5mKCIlKmMiKTsKCiAgICBpZiAoIVBRcGlwZWxpbmVTeW5jKGNvbm4pKQog ICAgewogICAgICAgIGZwcmludGYoc3RkZXJyLCAiJXMiLCBQUWVycm9yTWVzc2FnZShjb25uKSk7 CglleGl0X25pY2VseShjb25uKTsKICAgIH0KCgogICAgaW50IGxvb3BfaXRlcmF0aW9uc19jb3Vu dCA9IDA7CiAgICB3aGlsZSAoUFFzdGF0dXMoY29ubikgIT0gQ09OTkVDVElPTl9CQUQpIHsKCXJl cyA9IFBRZ2V0UmVzdWx0KGNvbm4pOwoJaWYgKFBRcmVzdWx0U3RhdHVzKHJlcykgPT0gUEdSRVNf UElQRUxJTkVfU1lOQykgewoJCVBRY2xlYXIocmVzKTsKCQlicmVhazsKCX0KCVBRY2xlYXIocmVz KTsKCglpZigrK2xvb3BfaXRlcmF0aW9uc19jb3VudCA+IDEwMDApIHsKCQlwcmludGYoIlBRZ2V0 UmVzdWx0IGxvb3AgZ290IHN0dWNrIGluIGJ1c3ktbG9vcC5cbiIpOwoJCXByaW50ZigiUFFzdGF0 dXM6ICVpXG4iLCBQUXN0YXR1cyhjb25uKSk7CgkJcHJpbnRmKCJQUXBpcGVsaW5lU3RhdHVzOiAl aVxuIiwgUFFwaXBlbGluZVN0YXR1cyhjb25uKSk7CgkJZXhpdF9uaWNlbHkoY29ubik7Cgl9CiAg ICB9CgogICAgLyogY2xvc2UgdGhlIGNvbm5lY3Rpb24gdG8gdGhlIGRhdGFiYXNlIGFuZCBjbGVh bnVwICovCiAgICBQUWZpbmlzaChjb25uKTsKCiAgICBwcmludGYoIkZpbmlzaGluZywgdW5leHBl Y3RlZGx5XG4iKTsKCiAgICByZXR1cm4gMDsKfQo= ------==--bound.6072.xxsl4l6ndgil2oud.iva.yp-c.yandex.net--