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 1pkW72-0005DP-6H for pgsql-bugs@arkaria.postgresql.org; Thu, 06 Apr 2023 20:21:40 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pkW71-0006sy-5n for pgsql-bugs@arkaria.postgresql.org; Thu, 06 Apr 2023 20:21:39 +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 1pkUZg-0003Ag-WB for pgsql-bugs@lists.postgresql.org; Thu, 06 Apr 2023 18:43:09 +0000 Received: from mahout.postgresql.org ([2001:4800:3e1:1::227]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1pkUZd-001IMo-Sn for pgsql-bugs@lists.postgresql.org; Thu, 06 Apr 2023 18:43:08 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=postgresql.org; s=20171124; h=Message-ID:Date:Reply-To:Cc:From:To:Subject: MIME-Version:Content-Type:Sender:Content-Transfer-Encoding:Content-ID: Content-Description:In-Reply-To:References; bh=dmzAn7OeIUL/ZUR2q6jZSQ1r2NM3tctqC7O3f3Bl710=; b=ZZPwJMgY+3LSAZ9MvssUDIZVQ4 9YMDZYydMprw1HZSvaOvnbASBogy9VMzVQcBQ5k4rr5Y4E6FhEuFdVsPCih8dT3aqMvx/MWP7UNY+ Tux4Vt7X9+iN4uECEOH4IIJerWrz7aSDEl5uWYE8avWzXb4CFVhbLaTquVimtMXV5IVZBBEEbzPQl xofwfff2t+oKH5r5axoae33YCDWIeTFM6aAUJxxNiuugAzeny2/jjILqFGaKynTFxE2LccbUr/eGS 4sQ3uJbsWKaJqwiPD582GO0ceJwbjGUZl4X6hSRq6Xvc/J8ctgEIfhC00Dhv1GDbQ2Wz+X5aHqe/S v1vXc0gA==; Received: from wrigleys.postgresql.org ([2a02:c0:301:0:ffff::34]) by mahout.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pkUZc-0001i7-Eh for pgsql-bugs@lists.postgresql.org; Thu, 06 Apr 2023 18:43:04 +0000 Received: from localhost ([127.0.0.1] helo=wrigleys.postgresql.org) by wrigleys.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1pkUZb-006FVn-8B for pgsql-bugs@lists.postgresql.org; Thu, 06 Apr 2023 18:43:03 +0000 Content-Type: multipart/mixed; boundary="===============0485329379055893742==" MIME-Version: 1.0 Subject: BUG #17889: Invalid cursor direction for a foreign scan that reached the fetch_size (MOVE BACKWARD ALL IN cX) To: pgsql-bugs@lists.postgresql.org From: PG Bug reporting form Cc: eric.cyr@gmail.com Reply-To: eric.cyr@gmail.com, pgsql-bugs@lists.postgresql.org Date: Thu, 06 Apr 2023 18:42:38 +0000 Message-ID: <17889-e8c39a251d258dda@postgresql.org> X-Auto-Response-Suppress: All Auto-Submitted: auto-generated List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --===============0485329379055893742== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhlIGZvbGxvd2luZyBidWcgaGFzIGJlZW4gbG9nZ2VkIG9uIHRoZSB3ZWJzaXRlOgoKQnVnIHJl ZmVyZW5jZTogICAgICAxNzg4OQpMb2dnZWQgYnk6ICAgICAgICAgIEVyaWMgQ3lyCkVtYWlsIGFk ZHJlc3M6ICAgICAgZXJpYy5jeXJAZ21haWwuY29tClBvc3RncmVTUUwgdmVyc2lvbjogMTUuMgpP cGVyYXRpbmcgc3lzdGVtOiAgIFVidW50dSAyMi4wNC4yIExUUywgbWFjT1MgMTMuMwpEZXNjcmlw dGlvbjogICAgICAgIAoKSGVsbG8sDQoNCkkgc3R1bWJsZWQgdXBvbiBhIHN0cmFuZ2UgY2FzZSB0 aGF0IGNhdXNlcyBhbiBlcnJvciBpbiB2ZXJzaW9uIDE1Lg0KSG9wZWZ1bGx5IHRoZSBmb2xsb3dp bmcgd2lsbCBiZSBoZWxwZnVsLg0KDQpUaGFuayB5b3UgdmVyeSBtdWNoDQpIYXZlIGEgZ3JlYXQg ZGF5DQoNCi0tDQoNClRoZSBzY2VuYXJpbyBpcyB0aGUgZm9sbG93aW5nOg0KT24gREIgMSBoYXZl DQozIHRhYmxlcywgYSB2aWV3IHVzaW5nIGEgd2hlcmUgY2xhdXNlIG9uIHRhYmxlIDEgYW5kIGEg dmlldyB1c2luZyBhIGlubmVyCmpvaW4gb24gdGFibGUgMSBhbmQgMi4NCg0KT24gREIgMiBoYXZl DQpBIGZkdyBzZXJ2ZXIod2l0aCB1c2VfcmVtb3RlX2VzdGltYXRlIHNldCB0byB0cnVlKSwgMyBm b3JlaWduIHRhYmxlcywgb25lCmZvciBlYWNoIHZpZXcgYW5kIG9uZSBmb3IgdGFibGUgMyBhbmQg YSB2aWV3IG9uIHRoZSBmb3JlaWduIHRhYmxlIG9mIHZpZXcgb2YKdGFibGUgMSAod2l0aCBhIGN0 ZSB1c2luZyBhIGZ1bmN0aW9uIGFuZCB1c2VkIGluIHdoZXJlIGNsYXVzZSkNCg0KT24gREIgMiBl eGVjdXRlIGEgU0VMRUNUIG9uIHZpZXcgb2YgZm9yZWlnbiB0YWJsZSAxIHdpdGggYSBqb2luIG9u IGZvcmVpZ24KdGFibGUgMiB3aXRoIGEgd2hlcmUgY2xhdXNlIHVzaW5nIGEgc3VicXVlcnkgb24g Zm9yZWlnbiB0YWJsZSAzLg0KDQpJZiB0aGUgU0VMRUNUIHdvdWxkIHJldHVybiBhbiBhbW91bnQg b2Ygcm93cyBlcXVhbCBvciBncmVhdGVyIHRoYW4gdGhlIGZldGNoCnNpemUgb2YgZm9yZWlnbiB0 YWJsZSBvZiB2aWV3IG9mIHRhYmxlIDEgdGhlIGVycm9yIHdpbGwgb2NjdXIuDQoNCi0tDQoNClRo ZSBzYW1lIHNjZW5hcmlvIHdhcyB0ZXN0ZWQgb24gUG9zdGdyZXMgMTAgYW5kIDE0LCBib3RoIHdv cmtlZCB3aXRob3V0CmVycm9yLg0KDQotLQ0KDQpUaGUgZXJyb3IgaXMgdGhlIGZvbGxvd2luZzoN Cg0KRVJST1I6IGN1cnNvciBjYW4gb25seSBzY2FuIGZvcndhcmQgSGludDoNCkRlY2xhcmUgaXQg d2l0aCBTQ1JPTEwgb3B0aW9uIHRvIGVuYWJsZSBiYWNrd2FyZCBzY2FuLg0KV2hlcmU6IHJlbW90 ZSBTUUwgY29tbWFuZDogTU9WRSBCQUNLV0FSRCBBTEwgSU4gYzMNCg0KLS0NCg0KVGhlIG1vdmUg YmFja3dhcmQgaGFwcGVucyBpbiBwb3N0Z3Jlc19mZHcuYyAxNjc2OjE2ODANCg0KZWxzZSBpZiAo ZnNzdGF0ZS0+ZmV0Y2hfY3RfMiA+IDEpDQp7DQogICAgc25wcmludGYoc3FsLCBzaXplb2Yoc3Fs KSwgIk1PVkUgQkFDS1dBUkQgQUxMIElOIGMldSIsDQogICAgICAgICAgICAgZnNzdGF0ZS0+Y3Vy c29yX251bWJlcik7DQp9DQoNCi0tDQoNClRoZSBFWFBMQUlOIHJlc3VsdCBpcyB0aGUgZm9sbG93 aW5nOg0KDQpOZXN0ZWQgTG9vcCBMZWZ0IEpvaW4gIChjb3N0PTIyNC40Ny4uOTIzLjc4IHJvd3M9 MSB3aWR0aD02OCkNCiIgIE91dHB1dDogYS5kZWYsIGIub3RoZXJfZGVmLCBhLmNfZmsiDQogIEpv aW4gRmlsdGVyOiAoYi5hX2ZrID0gYS5waykNCiAgLT4gIEZvcmVpZ24gU2NhbiBvbiBzY2hlbWFf dGVzdC50ZXN0X2FfdGFibGVfdmlld19mb3JlaWduIGEgCihjb3N0PTEwMC4wMC4uNzczLjQ1IHJv d3M9MSB3aWR0aD00MCkNCiIgICAgICAgIE91dHB1dDogYS5waywgYS5jX2ZrLCBhLmRlZiwgYS5m bGFnIg0KICAgICAgICBGaWx0ZXI6ICgoU3ViUGxhbiAxKSA9ICdjZGVmMSc6OnRleHQpDQoiICAg ICAgICBSZW1vdGUgU1FMOiBTRUxFQ1QgcGssIGNfZmssIGRlZiBGUk9NCnNjaGVtYV90ZXN0LnRl c3RfYV90YWJsZV92aWV3Ig0KICAgICAgICBTdWJQbGFuIDENCiAgICAgICAgICAtPiAgRm9yZWln biBTY2FuIG9uIHNjaGVtYV90ZXN0LnRlc3RfY190YWJsZV9mb3JlaWduIGMgCihjb3N0PTEwMC4x Ni4uMTA4LjIwIHJvd3M9MSB3aWR0aD0zMikNCiAgICAgICAgICAgICAgICBPdXRwdXQ6IGMuZGVm DQogICAgICAgICAgICAgICAgUmVtb3RlIFNRTDogU0VMRUNUIGRlZiBGUk9NIHNjaGVtYV90ZXN0 LnRlc3RfY190YWJsZSBXSEVSRQooKHBrID0gJDE6OmludGVnZXIpKQ0KICAtPiAgRm9yZWlnbiBT Y2FuIG9uIHNjaGVtYV90ZXN0LnRlc3RfYl90YWJsZV92aWV3X2ZvcmVpZ24gYiAKKGNvc3Q9MTI0 LjQ3Li4xNTAuMTkgcm93cz02IHdpZHRoPTQ0KQ0KIiAgICAgICAgT3V0cHV0OiBOVUxMOjppbnRl Z2VyLCBiLmFfZmssIE5VTEw6OmludGVnZXIsIGIub3RoZXJfZGVmIg0KIiAgICAgICAgUmVtb3Rl IFNRTDogU0VMRUNUIGFfZmssIG90aGVyX2RlZiBGUk9NCnNjaGVtYV90ZXN0LnRlc3RfYl90YWJs ZV92aWV3IFdIRVJFICgob3RoZXJfaWQgPSAkMTo6aW50ZWdlcikpIg0KICAgICAgICBJbml0UGxh biAyIChyZXR1cm5zICQxKQ0KICAgICAgICAgIC0+ICBSZXN1bHQgIChjb3N0PTAuMDAuLjAuMjYg cm93cz0xIHdpZHRoPTQpDQogICAgICAgICAgICAgICAgT3V0cHV0OiBzY2hlbWFfdGVzdC50ZXN0 X2Z1bmN0aW9uKCkNCg0KLS0NCg0KSGVyZSBpcyB0aGUgU1FMIHVzZWQgdG8gcmVjcmVhdGUgdGhl IGlzc3VlOg0KDQotLQ0KDQpDUkVBVEUgVVNFUiB0ZXN0X3VzZXIgUEFTU1dPUkQgJzEyMzQnOw0K Q1JFQVRFIFVTRVIgdGVzdF9mZHdfdXNlciBQQVNTV09SRCAnMTIzNCc7DQoNCkNSRUFURSBEQVRB QkFTRSBkYl90ZXN0XzE7DQpDUkVBVEUgREFUQUJBU0UgZGJfdGVzdF8yOw0KDQotLQ0KLS0NCi0t DQoNClxjIGRiX3Rlc3RfMQ0KDQotLQ0KDQpDUkVBVEUgU0NIRU1BIHNjaGVtYV90ZXN0Ow0KR1JB TlQgQUxMIE9OIFNDSEVNQSBzY2hlbWFfdGVzdCBUTyBwdWJsaWM7DQoNCi0tDQoNCkNSRUFURSBU QUJMRSBzY2hlbWFfdGVzdC50ZXN0X2NfdGFibGUgKA0KICAgIHBrIGludGVnZXIgTk9UIE5VTEws DQogICAgb3RoZXJfaWQgaW50ZWdlciwNCiAgICBkZWYgdGV4dCBOT1QgTlVMTCwNCiAgICBmbGFn IGludGVnZXIgTk9UIE5VTEwNCik7DQoNCkFMVEVSIFRBQkxFIHNjaGVtYV90ZXN0LnRlc3RfY190 YWJsZQ0KICAgIEFERCBDT05TVFJBSU5UIHRlc3RfY190YWJsZV9wayBQUklNQVJZIEtFWSAocGsp Ow0KDQpHUkFOVCBBTEwgT04gVEFCTEUgc2NoZW1hX3Rlc3QudGVzdF9jX3RhYmxlIFRPIHB1Ymxp YzsNCg0KSU5TRVJUIElOVE8gc2NoZW1hX3Rlc3QudGVzdF9jX3RhYmxlKHBrLCBvdGhlcl9pZCwg ZGVmLCBmbGFnKSBWQUxVRVMgKDEsIDEsCidjZGVmMScsIDEpOw0KDQotLQ0KDQpDUkVBVEUgVEFC TEUgc2NoZW1hX3Rlc3QudGVzdF9hX3RhYmxlICgNCiAgICBwayBpbnRlZ2VyIE5PVCBOVUxMLA0K ICAgIGNfZmsgaW50ZWdlciBOT1QgTlVMTCwNCiAgICBkZWYgdGV4dCwNCiAgICBmbGFnIGludGVn ZXIgTk9UIE5VTEwNCik7DQoNCkFMVEVSIFRBQkxFIHNjaGVtYV90ZXN0LnRlc3RfYV90YWJsZQ0K ICAgIEFERCBDT05TVFJBSU5UIHRlc3RfYV90YWJsZV9wayBQUklNQVJZIEtFWSAocGspOw0KDQpB TFRFUiBUQUJMRSBzY2hlbWFfdGVzdC50ZXN0X2FfdGFibGUNCiAgICBBREQgQ09OU1RSQUlOVCB0 ZXN0X2FfdGFibGVfZmsgRk9SRUlHTiBLRVkgKGNfZmspIFJFRkVSRU5DRVMKc2NoZW1hX3Rlc3Qu dGVzdF9jX3RhYmxlKHBrKTsNCg0KR1JBTlQgQUxMIE9OIFRBQkxFIHNjaGVtYV90ZXN0LnRlc3Rf YV90YWJsZSBUTyBwdWJsaWM7DQoNCklOU0VSVCBJTlRPIHNjaGVtYV90ZXN0LnRlc3RfYV90YWJs ZShwaywgY19maywgZGVmLCBmbGFnKSBWQUxVRVMgKDEwMSwgMSwKJ2FkZWYyXzEwMScsIDEpOw0K SU5TRVJUIElOVE8gc2NoZW1hX3Rlc3QudGVzdF9hX3RhYmxlKHBrLCBjX2ZrLCBkZWYsIGZsYWcp IFZBTFVFUyAoMTAyLCAxLAonYWRlZjJfMTAyJywgMSk7DQoNCi0tDQoNCkNSRUFURSBWSUVXIHNj aGVtYV90ZXN0LnRlc3RfYV90YWJsZV92aWV3DQpBUw0KIFNFTEVDVA0KICAgIGEucGssDQogICAg YS5jX2ZrLA0KICAgIGEuZGVmLA0KICAgIGEuZmxhZw0KICAgRlJPTSBzY2hlbWFfdGVzdC50ZXN0 X2FfdGFibGUgYQ0KICBXSEVSRSBhLmZsYWcgPSAxDQo7DQoNCkdSQU5UIEFMTCBPTiBUQUJMRSBz Y2hlbWFfdGVzdC50ZXN0X2FfdGFibGVfdmlldyBUTyBwdWJsaWM7DQoNCi0tDQoNCkNSRUFURSBU QUJMRSBzY2hlbWFfdGVzdC50ZXN0X2JfdGFibGUgKA0KICAgIHBrIGludGVnZXIgTk9UIE5VTEws DQogICAgYV9mayBpbnRlZ2VyIE5PVCBOVUxMLA0KICAgIG90aGVyX2lkIGludGVnZXIgTk9UIE5V TEwsDQogICAgb3RoZXJfZGVmIHRleHQgTk9UIE5VTEwNCik7DQoNCkFMVEVSIFRBQkxFIHNjaGVt YV90ZXN0LnRlc3RfYl90YWJsZQ0KICAgIEFERCBDT05TVFJBSU5UIHRlc3RfYl90YWJsZV9wayBQ UklNQVJZIEtFWSAocGspOw0KDQpBTFRFUiBUQUJMRSBzY2hlbWFfdGVzdC50ZXN0X2JfdGFibGUN CiAgICBBREQgQ09OU1RSQUlOVCB0ZXN0X2JfdGFibGVfZmsgRk9SRUlHTiBLRVkgKGFfZmspIFJF RkVSRU5DRVMKc2NoZW1hX3Rlc3QudGVzdF9hX3RhYmxlKHBrKTsNCg0KR1JBTlQgQUxMIE9OIFRB QkxFIHNjaGVtYV90ZXN0LnRlc3RfYl90YWJsZSBUTyBwdWJsaWM7DQoNCklOU0VSVCBJTlRPIHNj aGVtYV90ZXN0LnRlc3RfYl90YWJsZShwaywgYV9maywgb3RoZXJfaWQsIG90aGVyX2RlZikgVkFM VUVTCigxMDExLCAxMDEsIDEsICdiZGVmLTEwMS0xJyk7DQpJTlNFUlQgSU5UTyBzY2hlbWFfdGVz dC50ZXN0X2JfdGFibGUocGssIGFfZmssIG90aGVyX2lkLCBvdGhlcl9kZWYpIFZBTFVFUwooMTAx MiwgMTAxLCAyLCAnYmRlZi0xMDEtMicpOw0KSU5TRVJUIElOVE8gc2NoZW1hX3Rlc3QudGVzdF9i X3RhYmxlKHBrLCBhX2ZrLCBvdGhlcl9pZCwgb3RoZXJfZGVmKSBWQUxVRVMKKDEwMjEsIDEwMiwg MSwgJ2JkZWYtMTAyLTEnKTsNCklOU0VSVCBJTlRPIHNjaGVtYV90ZXN0LnRlc3RfYl90YWJsZShw aywgYV9maywgb3RoZXJfaWQsIG90aGVyX2RlZikgVkFMVUVTCigxMDIyLCAxMDIsIDIsICdiZGVm LTEwMi0yJyk7DQoNCi0tDQoNCkNSRUFURSBWSUVXIHNjaGVtYV90ZXN0LnRlc3RfYl90YWJsZV92 aWV3DQpBUw0KIFNFTEVDVA0KICAgIGIucGssDQogICAgYi5hX2ZrLA0KICAgIGIub3RoZXJfaWQs DQogICAgYi5vdGhlcl9kZWYNCiAgIEZST00gc2NoZW1hX3Rlc3QudGVzdF9iX3RhYmxlIGINCiAg ICAgICAgSU5ORVIgSk9JTiBzY2hlbWFfdGVzdC50ZXN0X2FfdGFibGUgYQ0KICAgICAgICAgICAg ICAgIE9OIGIuYV9mayA9IGEucGsNCjsNCg0KR1JBTlQgQUxMIE9OIFRBQkxFIHNjaGVtYV90ZXN0 LnRlc3RfYl90YWJsZV92aWV3IFRPIHB1YmxpYzsNCg0KLS0NCi0tDQotLQ0KDQpcYyBkYl90ZXN0 XzINCg0KLS0NCg0KQ1JFQVRFIFNDSEVNQSBzY2hlbWFfdGVzdDsNCkdSQU5UIEFMTCBPTiBTQ0hF TUEgc2NoZW1hX3Rlc3QgVE8gcHVibGljOw0KDQotLQ0KDQpDUkVBVEUgRVhURU5TSU9OIElGIE5P VCBFWElTVFMgcG9zdGdyZXNfZmR3Ow0KDQpDUkVBVEUgU0VSVkVSIGRiX3Rlc3RfMV9mZHcgRk9S RUlHTiBEQVRBIFdSQVBQRVIgcG9zdGdyZXNfZmR3IE9QVElPTlMgKA0KICAgIGRibmFtZSAnZGJf dGVzdF8xJywNCiAgICBob3N0ICdsb2NhbGhvc3QnLA0KICAgIHVzZV9yZW1vdGVfZXN0aW1hdGUg J3RydWUnDQopOw0KDQpDUkVBVEUgVVNFUiBNQVBQSU5HIEZPUiBwdWJsaWMgU0VSVkVSIGRiX3Rl c3RfMV9mZHcgT1BUSU9OUyAoDQogICAgcGFzc3dvcmQgJzEyMzQnLA0KICAgICJ1c2VyIiAndGVz dF9mZHdfdXNlcicNCik7DQoNCi0tDQoNCkNSRUFURSBGT1JFSUdOIFRBQkxFIHNjaGVtYV90ZXN0 LnRlc3RfYV90YWJsZV92aWV3X2ZvcmVpZ24gKA0KICAgIHBrIGludGVnZXIsDQogICAgY19mayBp bnRlZ2VyLA0KICAgIGRlZiB0ZXh0LA0KICAgIGZsYWcgaW50ZWdlcg0KKQ0KU0VSVkVSIGRiX3Rl c3RfMV9mZHcNCk9QVElPTlMgKA0KICAgIHNjaGVtYV9uYW1lICdzY2hlbWFfdGVzdCcsDQogICAg dGFibGVfbmFtZSAndGVzdF9hX3RhYmxlX3ZpZXcnDQopOw0KDQotLQ0KDQpDUkVBVEUgRk9SRUlH TiBUQUJMRSBzY2hlbWFfdGVzdC50ZXN0X2JfdGFibGVfdmlld19mb3JlaWduICgNCiAgICBwayBp bnRlZ2VyLA0KICAgIGFfZmsgaW50ZWdlciwNCiAgICBvdGhlcl9pZCBpbnRlZ2VyLA0KICAgIG90 aGVyX2RlZiB0ZXh0DQopDQpTRVJWRVIgZGJfdGVzdF8xX2Zkdw0KT1BUSU9OUyAoDQogICAgc2No ZW1hX25hbWUgJ3NjaGVtYV90ZXN0JywNCiAgICB0YWJsZV9uYW1lICd0ZXN0X2JfdGFibGVfdmll dycsDQogICAgZmV0Y2hfc2l6ZSAnMTAwJw0KKTsNCg0KLS0NCg0KQ1JFQVRFIEZVTkNUSU9OIHNj aGVtYV90ZXN0LnRlc3RfZnVuY3Rpb24oKSBSRVRVUk5TIGludGVnZXINCiAgICBMQU5HVUFHRSBw bHBnc3FsIFNUQUJMRQ0KICAgIEFTICQkDQogICAgQkVHSU4NCiAgICAgICAgcmV0dXJuIDE7DQog ICAgRU5EOw0KJCQNCjsNCg0KLS0NCg0KQ1JFQVRFIFZJRVcgc2NoZW1hX3Rlc3QudGVzdF9iX3Rh YmxlX3ZpZXcNCkFTDQogV0lUSCB0X3Rlc3QgQVMgKA0KICAgICAgICAgU0VMRUNUIHNjaGVtYV90 ZXN0LnRlc3RfZnVuY3Rpb24oKSBBUyBvdGhlcl9pZA0KICAgICAgICApDQogU0VMRUNUDQogICAg Yi5waywNCiAgICBiLmFfZmssDQogICAgYi5vdGhlcl9pZCwNCiAgICBiLm90aGVyX2RlZg0KICAg RlJPTSBzY2hlbWFfdGVzdC50ZXN0X2JfdGFibGVfdmlld19mb3JlaWduIGINCiAgV0hFUkUgYi5v dGhlcl9pZCA9ICggU0VMRUNUIHQub3RoZXJfaWQgRlJPTSB0X3Rlc3QgdCkNCjsNCg0KR1JBTlQg QUxMIE9OIFRBQkxFIHNjaGVtYV90ZXN0LnRlc3RfYl90YWJsZV92aWV3IFRPIHB1YmxpYzsNCg0K LS0NCg0KQ1JFQVRFIEZPUkVJR04gVEFCTEUgc2NoZW1hX3Rlc3QudGVzdF9jX3RhYmxlX2ZvcmVp Z24gKA0KICAgIHBrIGludGVnZXIsDQogICAgb3RoZXJfaWQgaW50ZWdlciwNCiAgICBkZWYgdGV4 dCwNCiAgICBmbGFnIGludGVnZXINCikNClNFUlZFUiBkYl90ZXN0XzFfZmR3DQpPUFRJT05TICgN CiAgICBzY2hlbWFfbmFtZSAnc2NoZW1hX3Rlc3QnLA0KICAgIHRhYmxlX25hbWUgJ3Rlc3RfY190 YWJsZScNCik7DQoNCi0tDQotLQ0KLS0NCg0KXGMgZGJfdGVzdF8yDQoNCi0tIHdoZW4gbmIgcmV0 dXJuZWQgcm93cyA+PSBmZXRjaF9zaXplDQotLSBmYWlscyB3aXRoIGVycm9yIC0+IFs1NTAwMF0g RVJST1I6IGN1cnNvciBjYW4gb25seSBzY2FuIGZvcndhcmQgSGludDoKRGVjbGFyZSBpdCB3aXRo IFNDUk9MTCBvcHRpb24gdG8gZW5hYmxlIGJhY2t3YXJkIHNjYW4uIFdoZXJlOiByZW1vdGUgU1FM CmNvbW1hbmQ6IE1PVkUgQkFDS1dBUkQgQUxMIElOIGMzDQoNCkFMVEVSIEZPUkVJR04gVEFCTEUg c2NoZW1hX3Rlc3QudGVzdF9iX3RhYmxlX3ZpZXdfZm9yZWlnbiBPUFRJT05TICggU0VUCmZldGNo X3NpemUgJzInICk7DQoNClNFTEVDVCBhLmRlZiBBUyBhZGVmLA0KICAgICAgIGIub3RoZXJfZGVm IEFTIGJkZWYsDQogICAgICAgYS5jX2ZrDQpGUk9NIHNjaGVtYV90ZXN0LnRlc3RfYV90YWJsZV92 aWV3X2ZvcmVpZ24gYQ0KICAgICBMRUZUIEpPSU4gc2NoZW1hX3Rlc3QudGVzdF9iX3RhYmxlX3Zp ZXcgYg0KICAgICAgICAgICAgT04gYi5hX2ZrID0gYS5waw0KV0hFUkUgKFNFTEVDVCBjLmRlZg0K ICAgICAgICAgRlJPTSBzY2hlbWFfdGVzdC50ZXN0X2NfdGFibGVfZm9yZWlnbiBjDQogICAgICAg IFdIRVJFIGMucGsgPSBhLmNfZmspID0gJ2NkZWYxJw0KOw0KDQotLSB3aGVuIG5iIHJldHVybmVk IHJvd3MgPCBmZXRjaF9zaXplDQotLSBzdWNjZWVkDQoNCkFMVEVSIEZPUkVJR04gVEFCTEUgc2No ZW1hX3Rlc3QudGVzdF9iX3RhYmxlX3ZpZXdfZm9yZWlnbiBPUFRJT05TICggU0VUCmZldGNoX3Np emUgJzEwMCcgKTsNCg0KU0VMRUNUIGEuZGVmIEFTIGFkZWYsDQogICAgICAgYi5vdGhlcl9kZWYg QVMgYmRlZiwNCiAgICAgICBhLmNfZmsNCkZST00gc2NoZW1hX3Rlc3QudGVzdF9hX3RhYmxlX3Zp ZXdfZm9yZWlnbiBhDQogICAgIExFRlQgSk9JTiBzY2hlbWFfdGVzdC50ZXN0X2JfdGFibGVfdmll dyBiDQogICAgICAgICAgICBPTiBiLmFfZmsgPSBhLnBrDQpXSEVSRSAoU0VMRUNUIGMuZGVmDQog ICAgICAgICBGUk9NIHNjaGVtYV90ZXN0LnRlc3RfY190YWJsZV9mb3JlaWduIGMNCiAgICAgICAg V0hFUkUgYy5wayA9IGEuY19maykgPSAnY2RlZjEnDQo7Cgo= --===============0485329379055893742==--