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.94.2) (envelope-from ) id 1tZzRP-00F117-Aj for pgsql-hackers@arkaria.postgresql.org; Mon, 20 Jan 2025 21:36:15 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tZzRO-006vd0-C9 for pgsql-hackers@arkaria.postgresql.org; Mon, 20 Jan 2025 21:36:14 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tZzRO-006vcs-0E for pgsql-hackers@lists.postgresql.org; Mon, 20 Jan 2025 21:36:14 +0000 Received: from mail-ed1-x52c.google.com ([2a00:1450:4864:20::52c]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tZzRL-000bYM-0T for pgsql-hackers@postgresql.org; Mon, 20 Jan 2025 21:36:13 +0000 Received: by mail-ed1-x52c.google.com with SMTP id 4fb4d7f45d1cf-5d9f06f8cf2so9515880a12.3 for ; Mon, 20 Jan 2025 13:36:11 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1737408970; x=1738013770; darn=postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=s5aot2lk8JBdaiem6MYmMg2e9Dg1Q9idgM9YCT4hM+4=; b=cDn2h4S/g/gSd4aNhXXyQW/3cjQOaDNyE9c52m99BQ0rFf8/FKqj6FgmnPvahoOH9m IoP9z6rvcJMRTH8ahAEL61zN1p2z7aGHLy3PsAM/2a0lGbxqfLxa/R1FAbHIRv4BRd6n cxSyx6XTnufhIbSUx/fYS0rrFcJ7wwhJsssPdBODd9UpU3b6HpJlN4z4K7n6e/UlwCSF WSEwTrSZQOQK+F2PoERPcZXb4N0WMQgobBqp1sOeKAFYqqsCjT7gBNn2XG08KTQv+HDs XfQb7cC4IlwdWWJNEYh4JioatSl/zR3U/tTibFJb4KmQY8/Sr0a2W8IywEGGrnfoL+TM DzDA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1737408970; x=1738013770; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=s5aot2lk8JBdaiem6MYmMg2e9Dg1Q9idgM9YCT4hM+4=; b=TsSv0Wg8s9s+/MARl9xa5ewTaXbNo6CSNUA/TeQLK4FF05/3lYww3vhlQVsA3Wrq4I zkuVTTZrMDGFKzTdYkpz5lwvxPL8Bq5VNXS97soyGZcYG7cCVYQ/Tr4oUkIIqDgXraBg /MPrzNVmVP2fNa7cjb6sFi5GNEGRfoQJ5rUVB5uZCzKk2yD96k94+fh7K/9alSZfx37K VrwR6ryFEBax21T1Ftm8rwk26M3mOrq+lXd0X8tIvtAQA+rZXbp/T6y4ylFzcMqTiWnl lZCIEopo19ew5VGd0PWghIX1xHxtWblXIxqTqh5uXWsWg1VAQHAaOt/iZdmK7C5I8iPy 9o7g== X-Forwarded-Encrypted: i=1; AJvYcCVYulGuJ6/pnQJJEXNThChGBdCZvHq1tCFISg4etltUTfcLbaEJVZN1tabtesaxwhNNhsqjodckQoa3BCto@postgresql.org X-Gm-Message-State: AOJu0YwcycsZi4W+548bvshWyPzXBflvQJNOn6h7EUKlxHGzFRJaAp9v qsB2QezPCLoacX6UUJY1TrZZL6xD3fsBO+qdloFDnGZ+d8/vRm/Enfl4PWs9o4GolXrmXocxbSo SMGszoQ2fMMblmXYpV7H968I8Hyo= X-Gm-Gg: ASbGncu78tnB1fVR3/FmvrksPBGCifL7RWnYq2mRPGJKaIbiNpld9e9D+Hm9aR7Fra2 CvDvflLvhKc/OW5NsFySApog7DScYKrZgm+kNk4Pllp17kiHVMyg= X-Google-Smtp-Source: AGHT+IEc5wFDUrGWpoWVTMHXjnUDcu41LKl02fL6kg3Bc6vJuE4Dxo6DbwDjkiAL1d/pZ/GahVTCtYg+gMq3u3hhz6Q= X-Received: by 2002:a05:6402:5110:b0:5d8:211a:4d59 with SMTP id 4fb4d7f45d1cf-5db7d318ee8mr14025837a12.19.1737408970109; Mon, 20 Jan 2025 13:36:10 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Michail Nikolaev Date: Mon, 20 Jan 2025 22:35:53 +0100 X-Gm-Features: AbW1kvZNc0BwM84PJIbjoq3HIi6UXUjPGZxd08wklOYWTkDbRYuLWR7ogPeiatI Message-ID: Subject: Re: [BUG?] check_exclusion_or_unique_constraint false negative To: "Zhijie Hou (Fujitsu)" Cc: Amit Kapila , "Hayato Kuroda (Fujitsu)" , PostgreSQL Hackers , Andres Freund Content-Type: multipart/mixed; boundary="0000000000007e8225062c2a0cad" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000007e8225062c2a0cad Content-Type: multipart/alternative; boundary="0000000000007e8222062c2a0cab" --0000000000007e8222062c2a0cab Content-Type: text/plain; charset="UTF-8" Hello, everyone! Simplified (and stabilized, I hope) the test. Best regards, Mikhail. --0000000000007e8222062c2a0cab Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hello, everyone!

Simplified (and stabil= ized,=C2=A0I hope) the test.

Best regards,
Mikhail.
--0000000000007e8222062c2a0cab-- --0000000000007e8225062c2a0cad Content-Type: application/octet-stream; name="v4-0001-Fix-possible-lost-tuples-in-non-MVCC-index-scans-.patch" Content-Disposition: attachment; filename="v4-0001-Fix-possible-lost-tuples-in-non-MVCC-index-scans-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m65hf9350 RnJvbSAxZWU3ZWM5NTY1Njc5ZDE2NzU4NWFjYzEwNjhiMTcyNjM3NGM1NTZlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBua2V5IDxtaWNoYWlsLm5pa29sYWV2QGdtYWlsLmNvbT4KRGF0 ZTogU2F0LCAyMyBOb3YgMjAyNCAxMzoxNDo0MCArMDEwMApTdWJqZWN0OiBbUEFUQ0ggdjQgMS8y XSBGaXggcG9zc2libGUgbG9zdCB0dXBsZXMgaW4gbm9uLU1WQ0MgaW5kZXggc2NhbnMgdXNpbmcK IFNuYXBzaG90RGlydHkKCkluIGNlcnRhaW4gc2NlbmFyaW9zLCBub24tTVZDQyBpbmRleCBzY2Fu cyB1c2luZyBTbmFwc2hvdERpcnR5IGNhbiBtaXNzIHR1cGxlcyB0aGF0IGFyZSBkZWxldGVkIGFu ZCByZS1pbnNlcnRlZCBjb25jdXJyZW50bHkgZHVyaW5nIHRoZSBzY2FuLiBUaGlzIGlzc3VlIGFy aXNlcyBiZWNhdXNlIHRoZSBzY2FuIG1pZ2h0IHNraXAgb3ZlciBkZWxldGVkIHR1cGxlcyBhbmQg ZmFpbCB0byBzZWUgbmV3bHkgaW5zZXJ0ZWQgb25lcyBpZiB0aGUgcGFnZSBjb250ZW50IGlzIGNh Y2hlZC4KClRvIGFkZHJlc3MgdGhpcywgd2UgbW9kaWZ5IHRoZSBTbmFwc2hvdERpcnR5IG1lY2hh bmlzbSB0byB0cmFjayB0aGUgbWF4aW11bSB4bWF4ICh0aGUgaGlnaGVzdCB0cmFuc2FjdGlvbiBJ RCBvZiBkZWxldGluZyB0cmFuc2FjdGlvbnMpIGVuY291bnRlcmVkIGR1cmluZyB0aGUgc2Nhbi4g SWYgdGhpcyB4bWF4IGlzIG5ld2VyIHRoYW4gdGhlIGxhdGVzdCBjb21wbGV0ZWQgdHJhbnNhY3Rp b24gSUQgYXQgdGhlIHN0YXJ0IG9mIHRoZSBzY2FuLCB3ZSByZXRyeSB0aGUgaW5kZXggc2NhbiB0 byBlbnN1cmUgYWxsIHJlbGV2YW50IHR1cGxlcyBhcmUgb2JzZXJ2ZWQuCgpLZXkgY2hhbmdlcyBp bmNsdWRlOgoKKiBVcGRhdGVkIEhlYXBUdXBsZVNhdGlzZmllc0RpcnR5IHRvIHJlY29yZCB0aGUg bWF4aW11bSB4bWF4IHNlZW4uCiogTW9kaWZpZWQgSW5pdERpcnR5U25hcHNob3QgdG8gYWNjZXB0 IGFuIG9wdGlvbmFsIHBhcmFtZXRlciBmb3IgdHJhY2tpbmcgeG1heC4KKiBBZGRlZCBsb2dpYyBp biBpbmRleCB1bmlxdWVuZXNzIGNoZWNrcyAoX2J0X2NoZWNrX3VuaXF1ZSkgYW5kIHJlcGxpY2F0 aW9uIHR1cGxlIHNlYXJjaGVzIChSZWxhdGlvbkZpbmRSZXBsVHVwbGVCeUluZGV4KSB0byByZXRy eSBzY2FucyBiYXNlZCBvbiB0aGUgdHJhY2tlZCB4bWF4LgoqIEludHJvZHVjZWQgYSBuZXcgZnVu Y3Rpb24gUmVhZExhc3RDb21wbGV0ZWRGdWxsVHJhbnNhY3Rpb25JZCB0byBvYnRhaW4gdGhlIGxh dGVzdCBjb21wbGV0ZWQgdHJhbnNhY3Rpb24gSUQuCiogVXBkYXRlZCBkb2N1bWVudGF0aW9uIGlu IG5idHJlZS9SRUFETUUgdG8gZXhwbGFpbiB0aGUgaXNzdWUgYW5kIHRoZSBzb2x1dGlvbi4KKiBB ZGRlZCBhIHJlZ3Jlc3Npb24gdGVzdCB0byBjb3ZlciB0aGlzIGVkZ2UgY2FzZS4KClRoaXMgZml4 IGVuc3VyZXMgdGhhdCBub24tTVZDQyBpbmRleCBzY2FucyBhcmUgbW9yZSByb2J1c3QgaW4gdGhl IGZhY2Ugb2YgY29uY3VycmVudCBkYXRhIG1vZGlmaWNhdGlvbnMsIHByZXZlbnRpbmcgcG90ZW50 aWFsIGRhdGEgaW5jb25zaXN0ZW5jaWVzLgotLS0KIGNvbnRyaWIvcGdzdGF0dHVwbGUvcGdzdGF0 dHVwbGUuYyAgICAgICAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFw YW1faGFuZGxlci5jICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFt X3Zpc2liaWxpdHkuYyAgIHwgMjAgKysrKysrKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUv UkVBRE1FICAgICAgICAgICAgICB8IDEwICsrKysKIHNyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUv bmJ0aW5zZXJ0LmMgICAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS92 YXJzdXAuYyAgICAgICAgICAgfCAxMSArKysrKwogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0lu ZGV4aW5nLmMgICAgICAgICAgIHwgMjkgKysrKysrKysrKystCiBzcmMvYmFja2VuZC9leGVjdXRv ci9leGVjUmVwbGljYXRpb24uYyAgICAgICAgfCAyNiArKysrKysrKystCiBzcmMvYmFja2VuZC9y ZXBsaWNhdGlvbi9sb2dpY2FsL29yaWdpbi5jICAgICAgfCAgMiArLQogc3JjL2luY2x1ZGUvYWNj ZXNzL3RyYW5zYW0uaCAgICAgICAgICAgICAgICAgIHwgMTYgKysrKysrKwogc3JjL2luY2x1ZGUv dXRpbHMvc25hcG1nci5oICAgICAgICAgICAgICAgICAgIHwgIDggKysrLQogc3JjL2luY2x1ZGUv dXRpbHMvc25hcHNob3QuaCAgICAgICAgICAgICAgICAgIHwgIDUgKy0KIHNyYy90ZXN0L21vZHVs ZXMvdGVzdF9taXNjL21lc29uLmJ1aWxkICAgICAgICB8ICAxICsKIC4uLi90ZXN0X21pc2MvdC8w MDdfZGlydHlfaW5kZXhfc2Nhbi5wbCAgICAgICB8IDQ3ICsrKysrKysrKysrKysrKysrKysKIDE0 IGZpbGVzIGNoYW5nZWQsIDE2OSBpbnNlcnRpb25zKCspLCAxMiBkZWxldGlvbnMoLSkKIGNyZWF0 ZSBtb2RlIDEwMDY0NCBzcmMvdGVzdC9tb2R1bGVzL3Rlc3RfbWlzYy90LzAwN19kaXJ0eV9pbmRl eF9zY2FuLnBsCgpkaWZmIC0tZ2l0IGEvY29udHJpYi9wZ3N0YXR0dXBsZS9wZ3N0YXR0dXBsZS5j IGIvY29udHJpYi9wZ3N0YXR0dXBsZS9wZ3N0YXR0dXBsZS5jCmluZGV4IDQ4Y2I4ZjU5YzRmLi5i YzMxMGZjYjMzMiAxMDA2NDQKLS0tIGEvY29udHJpYi9wZ3N0YXR0dXBsZS9wZ3N0YXR0dXBsZS5j CisrKyBiL2NvbnRyaWIvcGdzdGF0dHVwbGUvcGdzdGF0dHVwbGUuYwpAQCAtMzM1LDcgKzMzNSw3 IEBAIHBnc3RhdF9oZWFwKFJlbGF0aW9uIHJlbCwgRnVuY3Rpb25DYWxsSW5mbyBmY2luZm8pCiAJ c2NhbiA9IHRhYmxlX2JlZ2luc2Nhbl9zdHJhdChyZWwsIFNuYXBzaG90QW55LCAwLCBOVUxMLCB0 cnVlLCBmYWxzZSk7CiAJaHNjYW4gPSAoSGVhcFNjYW5EZXNjKSBzY2FuOwogCi0JSW5pdERpcnR5 U25hcHNob3QoU25hcHNob3REaXJ0eSk7CisJSW5pdERpcnR5U25hcHNob3QoU25hcHNob3REaXJ0 eSwgTlVMTCk7CiAKIAluYmxvY2tzID0gaHNjYW4tPnJzX25ibG9ja3M7CS8qICMgYmxvY2tzIHRv IGJlIHNjYW5uZWQgKi8KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVh cGFtX2hhbmRsZXIuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMK aW5kZXggZTgxN2Y4ZjhmODQuLjk4MzZiZDZjNTMwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC9oZWFwYW1faGFuZGxlci5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L2hlYXBhbV9oYW5kbGVyLmMKQEAgLTQwMiw3ICs0MDIsNyBAQCB0dXBsZV9sb2NrX3JldHJ5Ogog CQkJICoKIAkJCSAqIExvb3AgaGVyZSB0byBkZWFsIHdpdGggdXBkYXRlZCBvciBidXN5IHR1cGxl cwogCQkJICovCi0JCQlJbml0RGlydHlTbmFwc2hvdChTbmFwc2hvdERpcnR5KTsKKwkJCUluaXRE aXJ0eVNuYXBzaG90KFNuYXBzaG90RGlydHksIE5VTEwpOwogCQkJZm9yICg7OykKIAkJCXsKIAkJ CQlpZiAoSXRlbVBvaW50ZXJJbmRpY2F0ZXNNb3ZlZFBhcnRpdGlvbnModGlkKSkKZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV92aXNpYmlsaXR5LmMgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1fdmlzaWJpbGl0eS5jCmluZGV4IGUxNDY2MDViZDU3Li5l NzEzZDVkZjI0YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3Zp c2liaWxpdHkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1fdmlzaWJpbGl0 eS5jCkBAIC03MTksNiArNzE5LDEyIEBAIEhlYXBUdXBsZVNhdGlzZmllc1VwZGF0ZShIZWFwVHVw bGUgaHR1cCwgQ29tbWFuZElkIGN1cmNpZCwKIAkJcmV0dXJuIFRNX0RlbGV0ZWQ7CQkvKiBkZWxl dGVkIGJ5IG90aGVyICovCiB9CiAKK3N0YXRpYyB2b2lkIFVwZGF0ZURpcnR5TWF4WG1heChTbmFw c2hvdCBzbmFwc2hvdCwgVHJhbnNhY3Rpb25JZCB4bWF4KQoreworCWlmIChzbmFwc2hvdC0+eGlw ICE9IE5VTEwpCisJCXNuYXBzaG90LT54aXBbMF0gPSBUcmFuc2FjdGlvbklkTmV3ZXIoeG1heCwg c25hcHNob3QtPnhpcFswXSk7Cit9CisKIC8qCiAgKiBIZWFwVHVwbGVTYXRpc2ZpZXNEaXJ0eQog ICoJCVRydWUgaWZmIGhlYXAgdHVwbGUgaXMgdmFsaWQgaW5jbHVkaW5nIGVmZmVjdHMgb2Ygb3Bl biB0cmFuc2FjdGlvbnMuCkBAIC03MzcsNyArNzQzLDkgQEAgSGVhcFR1cGxlU2F0aXNmaWVzVXBk YXRlKEhlYXBUdXBsZSBodHVwLCBDb21tYW5kSWQgY3VyY2lkLAogICogU2ltaWxhcmx5IGZvciBz bmFwc2hvdC0+eG1heCBhbmQgdGhlIHR1cGxlJ3MgeG1heC4gIElmIHRoZSB0dXBsZSB3YXMKICAq IGluc2VydGVkIHNwZWN1bGF0aXZlbHksIG1lYW5pbmcgdGhhdCB0aGUgaW5zZXJ0ZXIgbWlnaHQg c3RpbGwgYmFjayBkb3duCiAgKiBvbiB0aGUgaW5zZXJ0aW9uIHdpdGhvdXQgYWJvcnRpbmcgdGhl IHdob2xlIHRyYW5zYWN0aW9uLCB0aGUgYXNzb2NpYXRlZAotICogdG9rZW4gaXMgYWxzbyByZXR1 cm5lZCBpbiBzbmFwc2hvdC0+c3BlY3VsYXRpdmVUb2tlbi4KKyAqIHRva2VuIGlzIGFsc28gcmV0 dXJuZWQgaW4gc25hcHNob3QtPnNwZWN1bGF0aXZlVG9rZW4uIElmIHhpcCBpcyAhPSBOVUxMCisg KiB4aXBbMF0gbWF5IGJlIHNldCB0byB4aWQgb2YgZGVsZXRlciBpZiBpdCBuZXdlciB0aGFuIHBy ZXZpb3VzbHkgc3RvcmUKKyAqIHZhbHVlLgogICovCiBzdGF0aWMgYm9vbAogSGVhcFR1cGxlU2F0 aXNmaWVzRGlydHkoSGVhcFR1cGxlIGh0dXAsIFNuYXBzaG90IHNuYXBzaG90LApAQCAtNzUwLDYg Kzc1OCwxMCBAQCBIZWFwVHVwbGVTYXRpc2ZpZXNEaXJ0eShIZWFwVHVwbGUgaHR1cCwgU25hcHNo b3Qgc25hcHNob3QsCiAKIAlzbmFwc2hvdC0+eG1pbiA9IHNuYXBzaG90LT54bWF4ID0gSW52YWxp ZFRyYW5zYWN0aW9uSWQ7CiAJc25hcHNob3QtPnNwZWN1bGF0aXZlVG9rZW4gPSAwOworCS8qCisJ ICogV2UgaW50ZW50aW9uYWxseSBrZWVwIHNuYXBzaG90LT54aXAgdmFsdWVzIHVuY2hhbmdlZCBh cyB0aGV5IHNob3VsZAorCSAqIGJlIHJlc2V0IGJ5IGxvZ2ljIG91dCBvZiB0aGUgc2luZ2xlIGhl YXAgZmV0Y2guCisJICovCiAKIAlpZiAoIUhlYXBUdXBsZUhlYWRlclhtaW5Db21taXR0ZWQodHVw bGUpKQogCXsKQEAgLTg3MCw2ICs4ODIsNyBAQCBIZWFwVHVwbGVTYXRpc2ZpZXNEaXJ0eShIZWFw VHVwbGUgaHR1cCwgU25hcHNob3Qgc25hcHNob3QsCiAJewogCQlpZiAoSEVBUF9YTUFYX0lTX0xP Q0tFRF9PTkxZKHR1cGxlLT50X2luZm9tYXNrKSkKIAkJCXJldHVybiB0cnVlOworCQlVcGRhdGVE aXJ0eU1heFhtYXgoc25hcHNob3QsIEhlYXBUdXBsZUhlYWRlckdldFJhd1htYXgodHVwbGUpKTsK IAkJcmV0dXJuIGZhbHNlOwkJCS8qIHVwZGF0ZWQgYnkgb3RoZXIgKi8KIAl9CiAKQEAgLTg5Myw3 ICs5MDYsMTAgQEAgSGVhcFR1cGxlU2F0aXNmaWVzRGlydHkoSGVhcFR1cGxlIGh0dXAsIFNuYXBz aG90IHNuYXBzaG90LAogCQkJcmV0dXJuIHRydWU7CiAJCX0KIAkJaWYgKFRyYW5zYWN0aW9uSWRE aWRDb21taXQoeG1heCkpCisJCXsKKwkJCVVwZGF0ZURpcnR5TWF4WG1heChzbmFwc2hvdCwgeG1h eCk7CiAJCQlyZXR1cm4gZmFsc2U7CisJCX0KIAkJLyogaXQgbXVzdCBoYXZlIGFib3J0ZWQgb3Ig Y3Jhc2hlZCAqLwogCQlyZXR1cm4gdHJ1ZTsKIAl9CkBAIC05MDIsNiArOTE4LDcgQEAgSGVhcFR1 cGxlU2F0aXNmaWVzRGlydHkoSGVhcFR1cGxlIGh0dXAsIFNuYXBzaG90IHNuYXBzaG90LAogCXsK IAkJaWYgKEhFQVBfWE1BWF9JU19MT0NLRURfT05MWSh0dXBsZS0+dF9pbmZvbWFzaykpCiAJCQly ZXR1cm4gdHJ1ZTsKKwkJVXBkYXRlRGlydHlNYXhYbWF4KHNuYXBzaG90LCBIZWFwVHVwbGVIZWFk ZXJHZXRSYXdYbWF4KHR1cGxlKSk7CiAJCXJldHVybiBmYWxzZTsKIAl9CiAKQEAgLTkzMSw2ICs5 NDgsNyBAQCBIZWFwVHVwbGVTYXRpc2ZpZXNEaXJ0eShIZWFwVHVwbGUgaHR1cCwgU25hcHNob3Qg c25hcHNob3QsCiAKIAlTZXRIaW50Qml0cyh0dXBsZSwgYnVmZmVyLCBIRUFQX1hNQVhfQ09NTUlU VEVELAogCQkJCUhlYXBUdXBsZUhlYWRlckdldFJhd1htYXgodHVwbGUpKTsKKwlVcGRhdGVEaXJ0 eU1heFhtYXgoc25hcHNob3QsIEhlYXBUdXBsZUhlYWRlckdldFJhd1htYXgodHVwbGUpKTsKIAly ZXR1cm4gZmFsc2U7CQkJCS8qIHVwZGF0ZWQgYnkgb3RoZXIgKi8KIH0KIApkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9SRUFETUUgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0 cmVlL1JFQURNRQppbmRleCA1M2Q0YTYxZGMzZi4uYzhmNjgxMmNmNjAgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvUkVBRE1FCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9u YnRyZWUvUkVBRE1FCkBAIC00ODksNiArNDg5LDE2IEBAIG9uIHRoZSBsZWFmIHBhZ2UgYXQgYWxs IHdoZW4gdGhlIHBhZ2UncyBMU04gaGFzIGNoYW5nZWQuICAoVGhhdCB3b24ndCB3b3JrCiB3aXRo IGFuIHVubG9nZ2VkIGluZGV4LCBzbyBmb3Igbm93IHdlIGRvbid0IGV2ZXIgYXBwbHkgdGhlICJk b24ndCBob2xkCiBvbnRvIHBpbiIgb3B0aW1pemF0aW9uIHRoZXJlLikKIAorRGVzcGl0ZSB0aGUg bG9ja2luZyBwcm90b2NvbCBpbiBwbGFjZSwgaXQgaXMgc3RpbGwgcG9zc2libGUgdG8gcmVjZWl2 ZSBhbgoraW5jb3JyZWN0IHJlc3VsdCBkdXJpbmcgbm9uLU1WQ0Mgc2NhbnMuIFRoaXMgaXNzdWUg Y2FuIG9jY3VyIGlmIGEgY29uY3VycmVudAordHJhbnNhY3Rpb24gZGVsZXRlcyBhIHR1cGxlIGFu ZCBpbnNlcnRzIGEgbmV3IHR1cGxlIHdpdGggYSBuZXcgVElEIGluIHRoZQorc2FtZSBwYWdlLiBJ ZiB0aGUgc2NhbiBoYXMgYWxyZWFkeSB2aXNpdGVkIHRoZSBwYWdlIGFuZCBjYWNoZWQgaXRzIGNv bnRlbnQKK2luIHRoZSBidWZmZXIgY2FjaGUsIGl0IG1pZ2h0IHNraXAgdGhlIG9sZCB0dXBsZSBk dWUgdG8gZGVsZXRpb24gYW5kIG1pc3MKK3RoZSBuZXcgdHVwbGUgYmVjYXVzZSBvZiB0aGUgY2Fj aGUuIFRoaXMgaXMgYSBrbm93biBsaW1pdGF0aW9uIG9mIHRoZQorU25hcHNob3REaXJ0eSBhbmQg U25hcHNob3RBbnkgbm9uLU1WQ0Mgc2NhbnMuIEhvd2V2ZXIsIGZvciBTbmFwc2hvdERpcnR5LAor aXQgaXMgcG9zc2libGUgdG8gd29yayBhcm91bmQgdGhpcyBsaW1pdGF0aW9uIGJ5IHVzaW5nIHRo ZSByZXR1cm5lZCBtYXgoeG1heCkKK3RvIGNvbXBhcmUgaXQgd2l0aCB0aGUgbGF0ZXN0IGNvbW1p dHRlZCB0cmFuc2FjdGlvbiBiZWZvcmUgdGhlIHNjYW4gc3RhcnRlZC4KKwogRmFzdHBhdGggRm9y IEluZGV4IEluc2VydGlvbgogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idGluc2VydC5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL25idHJlZS9uYnRpbnNlcnQuYwppbmRleCAzZWRkYmNmM2E4Mi4uMzNhZTJkNTgwOTcg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0aW5zZXJ0LmMKKysrIGIv c3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRpbnNlcnQuYwpAQCAtNDI3LDcgKzQyNyw3IEBA IF9idF9jaGVja191bmlxdWUoUmVsYXRpb24gcmVsLCBCVEluc2VydFN0YXRlIGluc2VydHN0YXRl LCBSZWxhdGlvbiBoZWFwUmVsLAogCS8qIEFzc3VtZSB1bmlxdWUgdW50aWwgd2UgZmluZCBhIGR1 cGxpY2F0ZSAqLwogCSppc191bmlxdWUgPSB0cnVlOwogCi0JSW5pdERpcnR5U25hcHNob3QoU25h cHNob3REaXJ0eSk7CisJSW5pdERpcnR5U25hcHNob3QoU25hcHNob3REaXJ0eSwgTlVMTCk7CiAK IAlwYWdlID0gQnVmZmVyR2V0UGFnZShpbnNlcnRzdGF0ZS0+YnVmKTsKIAlvcGFxdWUgPSBCVFBh Z2VHZXRPcGFxdWUocGFnZSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNh bS92YXJzdXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3ZhcnN1cC5jCmluZGV4IGZl ODk1Nzg3Y2I3Li5jNmYwYzc2OWY2MiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3Ry YW5zYW0vdmFyc3VwLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vdmFyc3VwLmMK QEAgLTI5Niw2ICsyOTYsMTcgQEAgUmVhZE5leHRGdWxsVHJhbnNhY3Rpb25JZCh2b2lkKQogCXJl dHVybiBmdWxsWGlkOwogfQogCitGdWxsVHJhbnNhY3Rpb25JZCBSZWFkTGFzdENvbXBsZXRlZEZ1 bGxUcmFuc2FjdGlvbklkKHZvaWQpCit7CisJRnVsbFRyYW5zYWN0aW9uSWQgZnVsbFhpZDsKKwor CUxXTG9ja0FjcXVpcmUoWGlkR2VuTG9jaywgTFdfU0hBUkVEKTsKKwlmdWxsWGlkID0gVHJhbnNh bVZhcmlhYmxlcy0+bGF0ZXN0Q29tcGxldGVkWGlkOworCUxXTG9ja1JlbGVhc2UoWGlkR2VuTG9j ayk7CisKKwlyZXR1cm4gZnVsbFhpZDsKK30KKwogLyoKICAqIEFkdmFuY2UgbmV4dFhpZCB0byB0 aGUgdmFsdWUgYWZ0ZXIgYSBnaXZlbiB4aWQuICBUaGUgZXBvY2ggaXMgaW5mZXJyZWQuCiAgKiBU aGlzIG11c3Qgb25seSBiZSBjYWxsZWQgZHVyaW5nIHJlY292ZXJ5IG9yIGZyb20gdHdvLXBoYXNl IHN0YXJ0LXVwIGNvZGUuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjSW5k ZXhpbmcuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNJbmRleGluZy5jCmluZGV4IDdjODdm MDEyYzMwLi5lMDVhODc2NzM0OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y0luZGV4aW5nLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0luZGV4aW5nLmMKQEAg LTExNyw2ICsxMTcsNyBAQAogI2luY2x1ZGUgInV0aWxzL211bHRpcmFuZ2V0eXBlcy5oIgogI2lu Y2x1ZGUgInV0aWxzL3JhbmdldHlwZXMuaCIKICNpbmNsdWRlICJ1dGlscy9zbmFwbWdyLmgiCisj aW5jbHVkZSAidXRpbHMvaW5qZWN0aW9uX3BvaW50LmgiCiAKIC8qIHdhaXRNb2RlIGFyZ3VtZW50 IHRvIGNoZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVfY29uc3RyYWludCgpICovCiB0eXBlZGVmIGVu dW0KQEAgLTcxMSw2ICs3MTIsOCBAQCBjaGVja19leGNsdXNpb25fb3JfdW5pcXVlX2NvbnN0cmFp bnQoUmVsYXRpb24gaGVhcCwgUmVsYXRpb24gaW5kZXgsCiAJSW5kZXhTY2FuRGVzYyBpbmRleF9z Y2FuOwogCVNjYW5LZXlEYXRhIHNjYW5rZXlzW0lOREVYX01BWF9LRVlTXTsKIAlTbmFwc2hvdERh dGEgRGlydHlTbmFwc2hvdDsKKwlUcmFuc2FjdGlvbklkIG1heFhtYXgsCisJCQkJICBsYXRlc3RD b21wbGV0ZWRYaWQ7CiAJaW50CQkJaTsKIAlib29sCQljb25mbGljdDsKIAlib29sCQlmb3VuZF9z ZWxmOwpAQCAtNzczLDkgKzc3NiwxMCBAQCBjaGVja19leGNsdXNpb25fb3JfdW5pcXVlX2NvbnN0 cmFpbnQoUmVsYXRpb24gaGVhcCwgUmVsYXRpb24gaW5kZXgsCiAKIAkvKgogCSAqIFNlYXJjaCB0 aGUgdHVwbGVzIHRoYXQgYXJlIGluIHRoZSBpbmRleCBmb3IgYW55IHZpb2xhdGlvbnMsIGluY2x1 ZGluZwotCSAqIHR1cGxlcyB0aGF0IGFyZW4ndCB2aXNpYmxlIHlldC4KKwkgKiB0dXBsZXMgdGhh dCBhcmVuJ3QgdmlzaWJsZSB5ZXQuIEFsc28sIGRldGVjdCBjYXNlcyBpbmRleCBzY2FuIHNraXAg dGhlCisJICogdHVwbGUgaW4gY2FzZSBvZiBwYXJhbGxlbCB1cGRhdGUgYWZ0ZXIgaW5kZXggcGFn ZSBjb250ZW50IHdhcyBjYWNoZWQuCiAJICovCi0JSW5pdERpcnR5U25hcHNob3QoRGlydHlTbmFw c2hvdCk7CisJSW5pdERpcnR5U25hcHNob3QoRGlydHlTbmFwc2hvdCwgJm1heFhtYXgpOwogCiAJ Zm9yIChpID0gMDsgaSA8IGluZG5rZXlhdHRzOyBpKyspCiAJewpAQCAtODA5LDYgKzgxMywxMiBA QCBjaGVja19leGNsdXNpb25fb3JfdW5pcXVlX2NvbnN0cmFpbnQoUmVsYXRpb24gaGVhcCwgUmVs YXRpb24gaW5kZXgsCiByZXRyeToKIAljb25mbGljdCA9IGZhbHNlOwogCWZvdW5kX3NlbGYgPSBm YWxzZTsKKwkvKgorCSAqIEVhY2ggdGltZSB3ZSByZXRyeSAtIHJlbWVtYmVyIGxhc3QgY29tcGxl dGVkIHRyYW5zYWN0aW9uIGJlZm9yZSBzdGFydAorCSAqIG9mIHRoZSBzY2FuLiBBc28gcmVzZXQg bWF4WG1heC4KKwkgKi8KKwlsYXRlc3RDb21wbGV0ZWRYaWQgPSBYaWRGcm9tRnVsbFRyYW5zYWN0 aW9uSWQoUmVhZExhc3RDb21wbGV0ZWRGdWxsVHJhbnNhY3Rpb25JZCgpKTsKKwltYXhYbWF4ID0g SW52YWxpZFRyYW5zYWN0aW9uSWQ7CiAJaW5kZXhfc2NhbiA9IGluZGV4X2JlZ2luc2NhbihoZWFw LCBpbmRleCwgJkRpcnR5U25hcHNob3QsIGluZG5rZXlhdHRzLCAwKTsKIAlpbmRleF9yZXNjYW4o aW5kZXhfc2Nhbiwgc2NhbmtleXMsIGluZG5rZXlhdHRzLCBOVUxMLCAwKTsKIApAQCAtOTI0LDYg KzkzNCwxOSBAQCByZXRyeToKIAl9CiAKIAlpbmRleF9lbmRzY2FuKGluZGV4X3NjYW4pOworCS8q CisJICogQ2hlY2sgZm9yIHRoZSBjYXNlIHdoZW4gaW5kZXggc2NhbiBmZXRjaGVkIHJlY29yZHMg YmVmb3JlIHNvbWUgb3RoZXIKKwkgKiB0cmFuc2FjdGlvbiBkZWxldGVkIHR1cGxlIGFuZCBpbnNl cnRlZCBhIG5ldyBvbmUuCisJICovCisJaWYgKCFjb25mbGljdCAmJiBUcmFuc2FjdGlvbklkSXNW YWxpZChtYXhYbWF4KSAmJiAhVHJhbnNhY3Rpb25JZElzQ3VycmVudFRyYW5zYWN0aW9uSWQobWF4 WG1heCkpCisJeworCQkvKgorCQkgKiBJZiB3ZSBoYXZlIHNraXBwZWQgc29tZSB0dXBsZSBiZWNh dXNlIGl0IHdhcyBkZWxldGVkLCBidXQgZGVsZXRpb24gaGFwcGVuZWQgYWZ0ZXIKKwkJICogc3Rh cnQgb2YgdGhlIGluZGV4IHNjYW4gLSByZXRyeSB0byBiZSBzdXJlLgorCQkgKi8KKwkJaWYgKFRy YW5zYWN0aW9uSWRQcmVjZWRlcyhsYXRlc3RDb21wbGV0ZWRYaWQsIG1heFhtYXgpKQorCQkJZ290 byByZXRyeTsKKwl9CiAKIAkvKgogCSAqIE9yZGluYXJpbHksIGF0IHRoaXMgcG9pbnQgdGhlIHNl YXJjaCBzaG91bGQgaGF2ZSBmb3VuZCB0aGUgb3JpZ2luYWxseQpAQCAtOTM3LDYgKzk2MCw4IEBA IHJldHJ5OgogCiAJRXhlY0Ryb3BTaW5nbGVUdXBsZVRhYmxlU2xvdChleGlzdGluZ19zbG90KTsK IAorCWlmICghY29uZmxpY3QpCisJCUlOSkVDVElPTl9QT0lOVCgiY2hlY2tfZXhjbHVzaW9uX29y X3VuaXF1ZV9jb25zdHJhaW50X25vX2NvbmZsaWN0Iik7CiAJcmV0dXJuICFjb25mbGljdDsKIH0K IApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1JlcGxpY2F0aW9uLmMgYi9z cmMvYmFja2VuZC9leGVjdXRvci9leGVjUmVwbGljYXRpb24uYwppbmRleCBlM2U0ZTQxYWMzOC4u MGViZmNjNzAwNWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSZXBsaWNh dGlvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSZXBsaWNhdGlvbi5jCkBAIC0y MTgsNiArMjE4LDggQEAgUmVsYXRpb25GaW5kUmVwbFR1cGxlQnlJbmRleChSZWxhdGlvbiByZWws IE9pZCBpZHhvaWQsCiAJSW5kZXhTY2FuRGVzYyBzY2FuOwogCVNuYXBzaG90RGF0YSBzbmFwOwog CVRyYW5zYWN0aW9uSWQgeHdhaXQ7CisJVHJhbnNhY3Rpb25JZCBtYXhYbWF4LAorCQkJCSAgbGF0 ZXN0Q29tcGxldGVkWGlkOwogCVJlbGF0aW9uCWlkeHJlbDsKIAlib29sCQlmb3VuZDsKIAlUeXBl Q2FjaGVFbnRyeSAqKmVxID0gTlVMTDsKQEAgLTIyOCw3ICsyMzAsNyBAQCBSZWxhdGlvbkZpbmRS ZXBsVHVwbGVCeUluZGV4KFJlbGF0aW9uIHJlbCwgT2lkIGlkeG9pZCwKIAogCWlzSWR4U2FmZVRv U2tpcER1cGxpY2F0ZXMgPSAoR2V0UmVsYXRpb25JZGVudGl0eU9yUEsocmVsKSA9PSBpZHhvaWQp OwogCi0JSW5pdERpcnR5U25hcHNob3Qoc25hcCk7CisJSW5pdERpcnR5U25hcHNob3Qoc25hcCwg Jm1heFhtYXgpOwogCiAJLyogQnVpbGQgc2NhbiBrZXkuICovCiAJc2tleV9hdHRvZmYgPSBidWls ZF9yZXBsaW5kZXhfc2Nhbl9rZXkoc2tleSwgcmVsLCBpZHhyZWwsIHNlYXJjaHNsb3QpOwpAQCAt MjM4LDYgKzI0MCwxMiBAQCBSZWxhdGlvbkZpbmRSZXBsVHVwbGVCeUluZGV4KFJlbGF0aW9uIHJl bCwgT2lkIGlkeG9pZCwKIAogcmV0cnk6CiAJZm91bmQgPSBmYWxzZTsKKwkvKgorCSAqIEVhY2gg dGltZSB3ZSByZXRyeSAtIHJlbWVtYmVyIGxhc3QgY29tcGxldGVkIHRyYW5zYWN0aW9uIGJlZm9y ZSBzdGFydAorIAkgKiBvZiB0aGUgc2Nhbi4gQXNvIHJlc2V0IG1heFhtYXguCisgCSAqLworCW1h eFhtYXggPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKKwlsYXRlc3RDb21wbGV0ZWRYaWQgPSBYaWRG cm9tRnVsbFRyYW5zYWN0aW9uSWQoUmVhZExhc3RDb21wbGV0ZWRGdWxsVHJhbnNhY3Rpb25JZCgp KTsKIAogCWluZGV4X3Jlc2NhbihzY2FuLCBza2V5LCBza2V5X2F0dG9mZiwgTlVMTCwgMCk7CiAK QEAgLTI3Nyw2ICsyODUsMjAgQEAgcmV0cnk6CiAJCWJyZWFrOwogCX0KIAorCS8qCisJICogQ2hl Y2sgZm9yIHRoZSBjYXNlIHdoZW4gaW5kZXggc2NhbiBmZXRjaGVkIHJlY29yZHMgYmVmb3JlIHNv bWUgb3RoZXIKKwkgKiB0cmFuc2FjdGlvbiBkZWxldGVkIHR1cGxlIGFuZCBpbnNlcnRlZCBhIG5l dyBvbmUuCisJICovCisJaWYgKCFmb3VuZCAmJiBUcmFuc2FjdGlvbklkSXNWYWxpZChtYXhYbWF4 KSAmJiAhVHJhbnNhY3Rpb25JZElzQ3VycmVudFRyYW5zYWN0aW9uSWQobWF4WG1heCkpCisJewor CQkvKgorCQkgKiBJZiB3ZSBoYXZlIHNraXBwZWQgc29tZSB0dXBsZSBiZWNhdXNlIGl0IHdhcyBk ZWxldGVkLCBidXQgZGVsZXRpb24gaGFwcGVuZWQgYWZ0ZXIKKwkJICogc3RhcnQgb2YgdGhlIGlu ZGV4IHNjYW4gLSByZXRyeSB0byBiZSBzdXJlLgorCQkgKi8KKwkJaWYgKFRyYW5zYWN0aW9uSWRQ cmVjZWRlcyhsYXRlc3RDb21wbGV0ZWRYaWQsIG1heFhtYXgpKQorCQkJZ290byByZXRyeTsKKwl9 CisKIAkvKiBGb3VuZCB0dXBsZSwgdHJ5IHRvIGxvY2sgaXQgaW4gdGhlIGxvY2ttb2RlLiAqLwog CWlmIChmb3VuZCkKIAl7CkBAIC00MDAsNyArNDIyLDcgQEAgUmVsYXRpb25GaW5kUmVwbFR1cGxl U2VxKFJlbGF0aW9uIHJlbCwgTG9ja1R1cGxlTW9kZSBsb2NrbW9kZSwKIAllcSA9IHBhbGxvYzAo c2l6ZW9mKCplcSkgKiBvdXRzbG90LT50dHNfdHVwbGVEZXNjcmlwdG9yLT5uYXR0cyk7CiAKIAkv KiBTdGFydCBhIGhlYXAgc2Nhbi4gKi8KLQlJbml0RGlydHlTbmFwc2hvdChzbmFwKTsKKwlJbml0 RGlydHlTbmFwc2hvdChzbmFwLCBOVUxMKTsKIAlzY2FuID0gdGFibGVfYmVnaW5zY2FuKHJlbCwg JnNuYXAsIDAsIE5VTEwpOwogCXNjYW5zbG90ID0gdGFibGVfc2xvdF9jcmVhdGUocmVsLCBOVUxM KTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9vcmlnaW4u YyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvb3JpZ2luLmMKaW5kZXggMWI1ODZj YjFjZjIuLjJkYmUyMDkxMmZhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9s b2dpY2FsL29yaWdpbi5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvb3Jp Z2luLmMKQEAgLTI4Miw3ICsyODIsNyBAQCByZXBsb3JpZ2luX2NyZWF0ZShjb25zdCBjaGFyICpy b25hbWUpCiAJICogdG8gdGhlIGV4Y2x1c2l2ZSBsb2NrIHRoZXJlJ3Mgbm8gZGFuZ2VyIHRoYXQg bmV3IHJvd3MgY2FuIGFwcGVhciB3aGlsZQogCSAqIHdlJ3JlIGNoZWNraW5nLgogCSAqLwotCUlu aXREaXJ0eVNuYXBzaG90KFNuYXBzaG90RGlydHkpOworCUluaXREaXJ0eVNuYXBzaG90KFNuYXBz aG90RGlydHksIE5VTEwpOwogCiAJcmVsID0gdGFibGVfb3BlbihSZXBsaWNhdGlvbk9yaWdpblJl bGF0aW9uSWQsIEV4Y2x1c2l2ZUxvY2spOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nl c3MvdHJhbnNhbS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3RyYW5zYW0uaAppbmRleCAwY2FiODY1 M2YxYi4uZGNlOTkyMzI1ZDcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy90cmFuc2Ft LmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3RyYW5zYW0uaApAQCAtMjg4LDYgKzI4OCw3IEBA IGV4dGVybiB2b2lkIFZhcnN1cFNobWVtSW5pdCh2b2lkKTsKIGV4dGVybiBGdWxsVHJhbnNhY3Rp b25JZCBHZXROZXdUcmFuc2FjdGlvbklkKGJvb2wgaXNTdWJYYWN0KTsKIGV4dGVybiB2b2lkIEFk dmFuY2VOZXh0RnVsbFRyYW5zYWN0aW9uSWRQYXN0WGlkKFRyYW5zYWN0aW9uSWQgeGlkKTsKIGV4 dGVybiBGdWxsVHJhbnNhY3Rpb25JZCBSZWFkTmV4dEZ1bGxUcmFuc2FjdGlvbklkKHZvaWQpOwor ZXh0ZXJuIEZ1bGxUcmFuc2FjdGlvbklkIFJlYWRMYXN0Q29tcGxldGVkRnVsbFRyYW5zYWN0aW9u SWQodm9pZCk7CiBleHRlcm4gdm9pZCBTZXRUcmFuc2FjdGlvbklkTGltaXQoVHJhbnNhY3Rpb25J ZCBvbGRlc3RfZGF0ZnJvemVueGlkLAogCQkJCQkJCQkgIE9pZCBvbGRlc3RfZGF0b2lkKTsKIGV4 dGVybiB2b2lkIEFkdmFuY2VPbGRlc3RDbG9nWGlkKFRyYW5zYWN0aW9uSWQgb2xkZXN0X2RhdGZy b3plbnhpZCk7CkBAIC0zNDQsNiArMzQ1LDIxIEBAIFRyYW5zYWN0aW9uSWRPbGRlcihUcmFuc2Fj dGlvbklkIGEsIFRyYW5zYWN0aW9uSWQgYikKIAlyZXR1cm4gYjsKIH0KIAorLyogcmV0dXJuIHRo ZSBuZXdlciBvZiB0aGUgdHdvIElEcyAqLworc3RhdGljIGlubGluZSBUcmFuc2FjdGlvbklkCitU cmFuc2FjdGlvbklkTmV3ZXIoVHJhbnNhY3Rpb25JZCBhLCBUcmFuc2FjdGlvbklkIGIpCit7CisJ aWYgKCFUcmFuc2FjdGlvbklkSXNWYWxpZChhKSkKKwkJcmV0dXJuIGI7CisKKwlpZiAoIVRyYW5z YWN0aW9uSWRJc1ZhbGlkKGIpKQorCQlyZXR1cm4gYTsKKworCWlmIChUcmFuc2FjdGlvbklkUHJl Y2VkZXMoYSwgYikpCisJCXJldHVybiBiOworCXJldHVybiBhOworfQorCiAvKiByZXR1cm4gdGhl IG9sZGVyIG9mIHRoZSB0d28gSURzLCBhc3N1bWluZyB0aGV5J3JlIGJvdGggbm9ybWFsICovCiBz dGF0aWMgaW5saW5lIFRyYW5zYWN0aW9uSWQKIE5vcm1hbFRyYW5zYWN0aW9uSWRPbGRlcihUcmFu c2FjdGlvbklkIGEsIFRyYW5zYWN0aW9uSWQgYikKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0 aWxzL3NuYXBtZ3IuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL3NuYXBtZ3IuaAppbmRleCBkMzQ2YmU3 MTY0Mi4uMGIxYWRmYzFlYTUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL3NuYXBtZ3Iu aAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9zbmFwbWdyLmgKQEAgLTM4LDkgKzM4LDEzIEBAIGV4 dGVybiBQR0RMTElNUE9SVCBTbmFwc2hvdERhdGEgU25hcHNob3RUb2FzdERhdGE7CiAgKiBXZSBk b24ndCBwcm92aWRlIGEgc3RhdGljIFNuYXBzaG90RGlydHkgdmFyaWFibGUgYmVjYXVzZSBpdCB3 b3VsZCBiZQogICogbm9uLXJlZW50cmFudC4gIEluc3RlYWQsIHVzZXJzIG9mIHRoYXQgc25hcHNo b3QgdHlwZSBzaG91bGQgZGVjbGFyZSBhCiAgKiBsb2NhbCB2YXJpYWJsZSBvZiB0eXBlIFNuYXBz aG90RGF0YSwgYW5kIGluaXRpYWxpemUgaXQgd2l0aCB0aGlzIG1hY3JvLgorICogcHhpZCBpcyBv cHRpb25hbCBhbmQgY2FuIGJlIE5VTEwuIElmIGl0IGlzIG5vdCBOVUxMLCBweGlkWzBdIHdpbGwg YmUgc2V0CisgKiB0byB0aGUgdHJhbnNhY3Rpb24gSUQgb2YgZGVsZXRpbmcgdHJhbnNhY3Rpb24g aWYgdGhlIHR1cGxlIGlzIGRlbGV0ZWQKKyAqIGFuZCBpdCBuZXdlciB0aGFuIHB4aWRbMF0uCiAg Ki8KLSNkZWZpbmUgSW5pdERpcnR5U25hcHNob3Qoc25hcHNob3RkYXRhKSAgXAotCSgoc25hcHNo b3RkYXRhKS5zbmFwc2hvdF90eXBlID0gU05BUFNIT1RfRElSVFkpCisjZGVmaW5lIEluaXREaXJ0 eVNuYXBzaG90KHNuYXBzaG90ZGF0YSwgcHhpZCkgIFwKKwkoKHNuYXBzaG90ZGF0YSkuc25hcHNo b3RfdHlwZSA9IFNOQVBTSE9UX0RJUlRZLCBcCisJIChzbmFwc2hvdGRhdGEpLnhpcCA9IChweGlk KSkKIAogLyoKICAqIFNpbWlsYXJseSwgc29tZSBpbml0aWFsaXphdGlvbiBpcyByZXF1aXJlZCBm b3IgYSBOb25WYWN1dW1hYmxlIHNuYXBzaG90LgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRp bHMvc25hcHNob3QuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL3NuYXBzaG90LmgKaW5kZXggMGU1NDZl YzE0OTcuLjRmNDVmY2NiZTMxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9zbmFwc2hv dC5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL3NuYXBzaG90LmgKQEAgLTkyLDcgKzkyLDEwIEBA IHR5cGVkZWYgZW51bSBTbmFwc2hvdFR5cGUKIAkgKiB4bWF4LiAgSWYgdGhlIHR1cGxlIHdhcyBp bnNlcnRlZCBzcGVjdWxhdGl2ZWx5LCBtZWFuaW5nIHRoYXQgdGhlCiAJICogaW5zZXJ0ZXIgbWln aHQgc3RpbGwgYmFjayBkb3duIG9uIHRoZSBpbnNlcnRpb24gd2l0aG91dCBhYm9ydGluZyB0aGUK IAkgKiB3aG9sZSB0cmFuc2FjdGlvbiwgdGhlIGFzc29jaWF0ZWQgdG9rZW4gaXMgYWxzbyByZXR1 cm5lZCBpbgotCSAqIHNuYXBzaG90LT5zcGVjdWxhdGl2ZVRva2VuLiAgU2VlIGFsc28gSW5pdERp cnR5U25hcHNob3QoKS4KKwkgKiBzbmFwc2hvdC0+c3BlY3VsYXRpdmVUb2tlbi4gSWYgeGlwIGlz IG5vbi1OVUxMLCB0aGUgeGlkIG9mIHRoZQorCSAqIGRlbGV0aW5nIHRyYW5zYWN0aW9uIGlzIHN0 b3JlZCBpbnRvIHhpcFswXSBpZiBpdCBuZXdlciB0aGFuIGV4aXN0aW5nCisJICogeGlwWzBdIHZh bHVlLgorCSAqIFNlZSBhbHNvIEluaXREaXJ0eVNuYXBzaG90KCkuCiAJICogLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQogCSAqLwogCVNOQVBTSE9UX0RJUlRZLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvbW9kdWxl cy90ZXN0X21pc2MvbWVzb24uYnVpbGQgYi9zcmMvdGVzdC9tb2R1bGVzL3Rlc3RfbWlzYy9tZXNv bi5idWlsZAppbmRleCA2NWE5NTE4YTAwZC4uMzFmNzkwMWJkZDQgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L21vZHVsZXMvdGVzdF9taXNjL21lc29uLmJ1aWxkCisrKyBiL3NyYy90ZXN0L21vZHVsZXMv dGVzdF9taXNjL21lc29uLmJ1aWxkCkBAIC0xNSw2ICsxNSw3IEBAIHRlc3RzICs9IHsKICAgICAg ICd0LzAwNF9pb19kaXJlY3QucGwnLAogICAgICAgJ3QvMDA1X3RpbWVvdXRzLnBsJywKICAgICAg ICd0LzAwNl9zaWduYWxfYXV0b3ZhY3V1bS5wbCcsCisgICAgICAndC8wMDdfZGlydHlfaW5kZXhf c2Nhbi5wbCcsCiAgICAgXSwKICAgfSwKIH0KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMv dGVzdF9taXNjL3QvMDA3X2RpcnR5X2luZGV4X3NjYW4ucGwgYi9zcmMvdGVzdC9tb2R1bGVzL3Rl c3RfbWlzYy90LzAwN19kaXJ0eV9pbmRleF9zY2FuLnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu ZGV4IDAwMDAwMDAwMDAwLi40ZDExNmU2NTllNwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0 L21vZHVsZXMvdGVzdF9taXNjL3QvMDA3X2RpcnR5X2luZGV4X3NjYW4ucGwKQEAgLTAsMCArMSw0 NyBAQAorCisjIENvcHlyaWdodCAoYykgMjAyNCwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1l bnQgR3JvdXAKKworIyBUZXN0IGlzc3VlIHdpdGggbG9zdCB0dXBsZSBpbiBjYXNlIG9mIERpcnR5 U25hcHNob3QgaW5kZXggc2NhbnMKK3VzZSBzdHJpY3Q7Cit1c2Ugd2FybmluZ3M7CisKK3VzZSBD b25maWc7Cit1c2UgRXJybm87CisKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOwordXNl IFBvc3RncmVTUUw6OlRlc3Q6OlV0aWxzOwordXNlIFRlc3Q6Ok1vcmU7CisKK2lmICgkRU5We2Vu YWJsZV9pbmplY3Rpb25fcG9pbnRzfSBuZSAneWVzJykKK3sKKwlwbGFuIHNraXBfYWxsID0+ICdJ bmplY3Rpb24gcG9pbnRzIG5vdCBzdXBwb3J0ZWQgYnkgdGhpcyBidWlsZCc7Cit9CisKK215ICgk bm9kZSwgJHJlc3VsdCk7Ciskbm9kZSA9IFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygn RGlydHlTY2FuX3Rlc3QnKTsKKyRub2RlLT5pbml0OworJG5vZGUtPmFwcGVuZF9jb25mKCdwb3N0 Z3Jlc3FsLmNvbmYnLCAnZnN5bmMgPSBvZmYnKTsKKyRub2RlLT5hcHBlbmRfY29uZigncG9zdGdy ZXNxbC5jb25mJywgJ2F1dG92YWN1dW0gPSBvZmYnKTsKKyRub2RlLT5zdGFydDsKKyRub2RlLT5z YWZlX3BzcWwoJ3Bvc3RncmVzJywgcShDUkVBVEUgRVhURU5TSU9OIGluamVjdGlvbl9wb2ludHMp KTsKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcShDUkVBVEUgVEFCTEUgdGJsKGkgaW50 IHByaW1hcnkga2V5LCBuIGludCkpKTsKKworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBx KElOU0VSVCBJTlRPIHRibCBWQUxVRVMoNDIsMSkpKTsKKyRub2RlLT5zYWZlX3BzcWwoJ3Bvc3Rn cmVzJywgcShTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19hdHRhY2goJ2NoZWNrX2V4Y2x1c2lvbl9v cl91bmlxdWVfY29uc3RyYWludF9ub19jb25mbGljdCcsICdlcnJvcicpKSk7CisKKyRub2RlLT5w Z2JlbmNoKAorCSctLW5vLXZhY3V1bSAtLWNsaWVudD00MCAtLXRyYW5zYWN0aW9ucz0xMDAwJywK KwkwLAorCVtxcnthY3R1YWxseSBwcm9jZXNzZWR9XSwKKwlbcXJ7XiR9XSwKKwknY29uY3VycmVu dCBVUFNFUlQnLAorCXsKKwkJJ29uX2NvbmZsaWN0cycgPT4gcSgKKwkJCUlOU0VSVCBJTlRPIHRi bCBWQUxVRVMoNDIsMSkgb24gY29uZmxpY3QoaSkgZG8gdXBkYXRlIHNldCBuID0gRVhDTFVERUQu biArIDE7CisJCSkKKwl9KTsKKworJG5vZGUtPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxKFNFTEVD VCBpbmplY3Rpb25fcG9pbnRzX2RldGFjaCgnY2hlY2tfZXhjbHVzaW9uX29yX3VuaXF1ZV9jb25z dHJhaW50X25vX2NvbmZsaWN0JykpKTsKKworJG5vZGUtPnN0b3A7Citkb25lX3Rlc3RpbmcoKTsK XCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCi0tIAoyLjQzLjAKCg== --0000000000007e8225062c2a0cad Content-Type: application/octet-stream; name="v4-0002-Add-isolation-test-to-reproduce-dirty-snapshot-sc.patch" Content-Disposition: attachment; filename="v4-0002-Add-isolation-test-to-reproduce-dirty-snapshot-sc.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m65hf93c1 RnJvbSAyZTIwYmM0NWFmYzJhNGE1MzBkNzg2ZDc5MTFhYzFhYWRmNTdjNDdhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBua2V5IDxtaWNoYWlsLm5pa29sYWV2QGdtYWlsLmNvbT4KRGF0 ZTogU2F0LCAyMyBOb3YgMjAyNCAxMzoyNToxMSArMDEwMApTdWJqZWN0OiBbUEFUQ0ggdjQgMi8y XSBBZGQgaXNvbGF0aW9uIHRlc3QgdG8gcmVwcm9kdWNlIGRpcnR5IHNuYXBzaG90IHNjYW4KIGlz c3VlCgpUaGlzIGNvbW1pdCBpbnRyb2R1Y2VzIGFuIGlzb2xhdGlvbiB0ZXN0IHRvIHJlbGlhYmx5 IHJlcHJvZHVjZSB0aGUgaXNzdWUgd2hlcmUgbm9uLU1WQ0MgaW5kZXggc2NhbnMgdXNpbmcgU25h cHNob3REaXJ0eSBjYW4gbWlzcyB0dXBsZXMgZHVlIHRvIGNvbmN1cnJlbnQgbW9kaWZpY2F0aW9u cy4gVGhpcyBzaXR1YXRpb24gY2FuIGxlYWQgdG8gaW5jb3JyZWN0IHJlc3VsdHMuCgpUbyBmYWNp bGl0YXRlIHRoaXMgdGVzdCwgbmV3IGluamVjdGlvbiBwb2ludCAgYWRkZWQgaW4gdGhlIGluZGV4 X2dldG5leHRfc2xvdC4KCkNoYW5nZXMgaW5jbHVkZToKCiogQWRkZWQgaW5qZWN0aW9uIHBvaW50 IGluIHNyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9pbmRleGFtLmMKKiBVcGRhdGVkIE1ha2VmaWxl IGFuZCBtZXNvbi5idWlsZCB0byBpbmNsdWRlIHRoZSBuZXcgZGlydHlfaW5kZXhfc2NhbiBpc29s YXRpb24gdGVzdC4KKiBDcmVhdGVkIGEgbmV3IGlzb2xhdGlvbiBzcGVjIGRpcnR5X2luZGV4X3Nj YW4uc3BlYyBhbmQgaXRzIGV4cGVjdGVkIG91dHB1dCB0byBkZWZpbmUgYW5kIHZlcmlmeSB0aGUg dGVzdCBzdGVwcy4KKiBUaGlzIHRlc3QgY29tcGxlbWVudHMgdGhlIHByZXZpb3VzIGZpeCBieSBk ZW1vbnN0cmF0aW5nIHRoZSBpc3N1ZSBhbmQgdmVyaWZ5aW5nIHRoYXQgdGhlIGZpeCBlZmZlY3Rp dmVseSBhZGRyZXNzZXMgaXQuCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2luZGV4YW0u YyAgICAgICAgICAgIHwgIDggKysrKwogc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRz L01ha2VmaWxlICAgIHwgIDIgKy0KIC4uLi9leHBlY3RlZC9kaXJ0eV9pbmRleF9zY2FuLm91dCAg ICAgICAgICAgICB8IDI2ICsrKysrKysrKysrKysKIHNyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9u X3BvaW50cy9tZXNvbi5idWlsZCB8ICAxICsKIC4uLi9zcGVjcy9kaXJ0eV9pbmRleF9zY2FuLnNw ZWMgICAgICAgICAgICAgICB8IDM3ICsrKysrKysrKysrKysrKysrKysKIDUgZmlsZXMgY2hhbmdl ZCwgNzMgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Yy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9leHBlY3RlZC9kaXJ0eV9pbmRleF9zY2Fu Lm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50 cy9zcGVjcy9kaXJ0eV9pbmRleF9zY2FuLnNwZWMKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9h Y2Nlc3MvaW5kZXgvaW5kZXhhbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2luZGV4YW0u YwppbmRleCA4YjFmNTU1NDM1Yi4uYWQzYTM2MDUyODIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9pbmRleC9pbmRleGFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2lu ZGV4YW0uYwpAQCAtNTcsNiArNTcsNyBAQAogI2luY2x1ZGUgInV0aWxzL3J1bGV1dGlscy5oIgog I2luY2x1ZGUgInV0aWxzL3NuYXBtZ3IuaCIKICNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgor I2luY2x1ZGUgInV0aWxzL2luamVjdGlvbl9wb2ludC5oIgogCiAKIC8qIC0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KQEAgLTY5 Niw2ICs2OTcsMTMgQEAgaW5kZXhfZ2V0bmV4dF9zbG90KEluZGV4U2NhbkRlc2Mgc2NhbiwgU2Nh bkRpcmVjdGlvbiBkaXJlY3Rpb24sIFR1cGxlVGFibGVTbG90ICoKIAkJICogdGhlIGluZGV4Lgog CQkgKi8KIAkJQXNzZXJ0KEl0ZW1Qb2ludGVySXNWYWxpZCgmc2Nhbi0+eHNfaGVhcHRpZCkpOwor I2lmZGVmIFVTRV9JTkpFQ1RJT05fUE9JTlRTCisJCWlmICghSXNDYXRhbG9nUmVsYXRpb25PaWQo c2Nhbi0+aW5kZXhSZWxhdGlvbi0+cmRfaWQpKQorCQl7CisJCQlJTkpFQ1RJT05fUE9JTlQoImlu ZGV4X2dldG5leHRfc2xvdF9iZWZvcmVfZmV0Y2giKTsKKwkJfQorI2VuZGlmCisKIAkJaWYgKGlu ZGV4X2ZldGNoX2hlYXAoc2Nhbiwgc2xvdCkpCiAJCQlyZXR1cm4gdHJ1ZTsKIAl9CmRpZmYgLS1n aXQgYS9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvTWFrZWZpbGUgYi9zcmMvdGVz dC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvTWFrZWZpbGUKaW5kZXggMDc1M2E5ZGY1OGMuLjEx YTliYWNjNzUwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMv TWFrZWZpbGUKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rpb25fcG9pbnRzL01ha2VmaWxl CkBAIC0xMyw3ICsxMyw3IEBAIFBHRklMRURFU0MgPSAiaW5qZWN0aW9uX3BvaW50cyAtIGZhY2ls aXR5IGZvciBpbmplY3Rpb24gcG9pbnRzIgogUkVHUkVTUyA9IGluamVjdGlvbl9wb2ludHMgcmVp bmRleF9jb25jCiBSRUdSRVNTX09QVFMgPSAtLWRscGF0aD0kKHRvcF9idWlsZGRpcikvc3JjL3Rl c3QvcmVncmVzcwogCi1JU09MQVRJT04gPSBiYXNpYyBpbnBsYWNlCitJU09MQVRJT04gPSBiYXNp YyBpbnBsYWNlIGRpcnR5X2luZGV4X3NjYW4KIAogVEFQX1RFU1RTID0gMQogCmRpZmYgLS1naXQg YS9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvZXhwZWN0ZWQvZGlydHlfaW5kZXhf c2Nhbi5vdXQgYi9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvZXhwZWN0ZWQvZGly dHlfaW5kZXhfc2Nhbi5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAu LjUxZmYyZDBiMGQwCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy9pbmplY3Rp b25fcG9pbnRzL2V4cGVjdGVkL2RpcnR5X2luZGV4X3NjYW4ub3V0CkBAIC0wLDAgKzEsMjYgQEAK K1BhcnNlZCB0ZXN0IHNwZWMgd2l0aCAzIHNlc3Npb25zCisKK3N0YXJ0aW5nIHBlcm11dGF0aW9u OiBzMV9zMSBzMl9zMSBzM19zMQoraW5qZWN0aW9uX3BvaW50c19hdHRhY2gKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgIAorKDEgcm93KQorCitzdGVwIHMx X3MxOiBJTlNFUlQgSU5UTyB0ZXN0LnRibCBWQUxVRVMoNDIsIDEpIG9uIGNvbmZsaWN0KGkpIGRv IHVwZGF0ZSBzZXQgbiA9IEVYQ0xVREVELm4gKyAxOyA8d2FpdGluZyAuLi4+CitzdGVwIHMyX3Mx OiBVUERBVEUgdGVzdC50YmwgU0VUIG4gPSBuICsgMSBXSEVSRSBpID0gNDI7CitzdGVwIHMzX3Mx OiAKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2goJ2luZGV4X2dldG5leHRfc2xvdF9i ZWZvcmVfZmV0Y2gnKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c193YWtldXAoJ2luZGV4X2dl dG5leHRfc2xvdF9iZWZvcmVfZmV0Y2gnKTsKKyA8d2FpdGluZyAuLi4+CitzdGVwIHMxX3MxOiA8 Li4uIGNvbXBsZXRlZD4KK3N0ZXAgczNfczE6IDwuLi4gY29tcGxldGVkPgoraW5qZWN0aW9uX3Bv aW50c19kZXRhY2gKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAg ICAgIAorKDEgcm93KQorCitpbmplY3Rpb25fcG9pbnRzX3dha2V1cAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgCisoMSByb3cpCisKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9tZXNvbi5idWlsZCBiL3NyYy90ZXN0 L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9tZXNvbi5idWlsZAppbmRleCA5ODliNGRiMjI2Yi4u MzkxMWFhMDI3NGQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50 cy9tZXNvbi5idWlsZAorKysgYi9zcmMvdGVzdC9tb2R1bGVzL2luamVjdGlvbl9wb2ludHMvbWVz b24uYnVpbGQKQEAgLTQ0LDYgKzQ0LDcgQEAgdGVzdHMgKz0gewogICAgICdzcGVjcyc6IFsKICAg ICAgICdiYXNpYycsCiAgICAgICAnaW5wbGFjZScsCisgICAgICAnZGlydHlfaW5kZXhfc2Nhbics CiAgICAgXSwKICAgfSwKICAgJ3RhcCc6IHsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMv aW5qZWN0aW9uX3BvaW50cy9zcGVjcy9kaXJ0eV9pbmRleF9zY2FuLnNwZWMgYi9zcmMvdGVzdC9t b2R1bGVzL2luamVjdGlvbl9wb2ludHMvc3BlY3MvZGlydHlfaW5kZXhfc2Nhbi5zcGVjCm5ldyBm aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwLi41NDA2NWYyMzNlNAotLS0gL2Rldi9u dWxsCisrKyBiL3NyYy90ZXN0L21vZHVsZXMvaW5qZWN0aW9uX3BvaW50cy9zcGVjcy9kaXJ0eV9p bmRleF9zY2FuLnNwZWMKQEAgLTAsMCArMSwzNyBAQAorc2V0dXAKK3sKKwlDUkVBVEUgRVhURU5T SU9OIGluamVjdGlvbl9wb2ludHM7CisJQ1JFQVRFIFNDSEVNQSB0ZXN0OworCUNSRUFURSBVTkxP R0dFRCBUQUJMRSB0ZXN0LnRibChpIGludCBwcmltYXJ5IGtleSwgbiBpbnQpOworCUNSRUFURSBJ TkRFWCB0Ymxfbl9pZHggT04gdGVzdC50Ymwobik7CisJSU5TRVJUIElOVE8gdGVzdC50YmwgVkFM VUVTKDQyLDEpOworfQorCit0ZWFyZG93bgoreworCURST1AgU0NIRU1BIHRlc3QgQ0FTQ0FERTsK KwlEUk9QIEVYVEVOU0lPTiBpbmplY3Rpb25fcG9pbnRzOworfQorCitzZXNzaW9uIHMxCitzZXR1 cAl7CisJU0VMRUNUIGluamVjdGlvbl9wb2ludHNfc2V0X2xvY2FsKCk7CisJU0VMRUNUIGluamVj dGlvbl9wb2ludHNfYXR0YWNoKCdjaGVja19leGNsdXNpb25fb3JfdW5pcXVlX2NvbnN0cmFpbnRf bm9fY29uZmxpY3QnLCAnZXJyb3InKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19hdHRhY2go J2luZGV4X2dldG5leHRfc2xvdF9iZWZvcmVfZmV0Y2gnLCAnd2FpdCcpOworfQorCitzdGVwIHMx X3MxCXsgSU5TRVJUIElOVE8gdGVzdC50YmwgVkFMVUVTKDQyLCAxKSBvbiBjb25mbGljdChpKSBk byB1cGRhdGUgc2V0IG4gPSBFWENMVURFRC5uICsgMTsgfQorCitzZXNzaW9uIHMyCitzdGVwIHMy X3MxCXsgVVBEQVRFIHRlc3QudGJsIFNFVCBuID0gbiArIDEgV0hFUkUgaSA9IDQyOyB9CisKK3Nl c3Npb24gczMKK3N0ZXAgczNfczEJCXsKKwlTRUxFQ1QgaW5qZWN0aW9uX3BvaW50c19kZXRhY2go J2luZGV4X2dldG5leHRfc2xvdF9iZWZvcmVfZmV0Y2gnKTsKKwlTRUxFQ1QgaW5qZWN0aW9uX3Bv aW50c193YWtldXAoJ2luZGV4X2dldG5leHRfc2xvdF9iZWZvcmVfZmV0Y2gnKTsKK30KKworcGVy bXV0YXRpb24KKwlzMV9zMQorCXMyX3MxCisJczNfczEoczFfczEpClwgTm8gbmV3bGluZSBhdCBl bmQgb2YgZmlsZQotLSAKMi40My4wCgo= --0000000000007e8225062c2a0cad--