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.96) (envelope-from ) id 1vd8pa-00ESfH-0E for pgsql-hackers@arkaria.postgresql.org; Tue, 06 Jan 2026 15:18:47 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vd8pZ-008d1n-02 for pgsql-hackers@arkaria.postgresql.org; Tue, 06 Jan 2026 15:18:45 +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.96) (envelope-from ) id 1vd8pY-008d1f-1z for pgsql-hackers@lists.postgresql.org; Tue, 06 Jan 2026 15:18:45 +0000 Received: from mail-ot1-x32d.google.com ([2607:f8b0:4864:20::32d]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1vd8pW-004uo3-2w for pgsql-hackers@lists.postgresql.org; Tue, 06 Jan 2026 15:18:45 +0000 Received: by mail-ot1-x32d.google.com with SMTP id 46e09a7af769-7ce2b14202fso496826a34.3 for ; Tue, 06 Jan 2026 07:18:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=tigerdata.com; s=google; t=1767712721; x=1768317521; darn=lists.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=dDxlGBKD8J4v0NNIWIJvQsY5utMqwbBYYyTVfZaVO+4=; b=YBjiAjR+IVf5vYPjnhS1TuHJurxk0UAfI0Eb1cS9pFT8m5B7Ian5kHhWPABWKKc+38 zYk2i+I06QJqItzf3epHxt0gL08sS7PDdcgVe9KWsuU0wpwZp1GF2xMu2tCEBtmNh27c wOo7Z0TP4wN4anYik7xoskVGXFJT/MtcAGZ1J4hvuOvHWX5zKT/hxv2AI5dAIw8SjLpv 7llev3gE5Vb+5Jt3j1rw108B6xN7XET+y4Hm6W4lFAZiSU25EoBKH4mlNShvfdW0dihI txLx89Ww5q/MUVyplxMKH8UT2RI1XdpvCD+pbNm++/SZdqtX2jBjRij3w0bmlUnoG+/W /v8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767712721; x=1768317521; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=dDxlGBKD8J4v0NNIWIJvQsY5utMqwbBYYyTVfZaVO+4=; b=tvmdhIO+xtOmg3xFPnsZkYihDQHEWXG6tCpynzfHDpxOz1p7+0CVuRH4/U9kW3PM73 HwrKmbsio9Svwy+X8miChMw+Dpv6Xduu7v2nVKOuoD9XK5VU8cl9U+dpP0GNB5/n70PU dbMnvxMOuMWdjf0lE6SC8LeTmZHOGZQSswBppCy5sQ+fFI4dfT610si2HHOzGHO1nA+5 qS6tQ/uu+ZhkOhKncdumGX7mxNvuYYBzxyamMY2GDqK03OIk3x8KuxnyuR2+PMuKDq7w C4CdKleVzIpF1CAlR0UpbWzquzx9VnWIru+PM8KMtQaPbe+p5VH5AaowP+MLbwn1UDXP nu3g== X-Gm-Message-State: AOJu0YwZHbtHjafTUqM4HlA5oKZDohe4VCkmSCfvbdJklCJjJrglZYOn sgM/tlRfFG+wGEX7WO/blFVhC38RyegcbYJDZKvM2wD7brjEWaqh7utwtWULxcflaXPkAFgRnNp /YWrN436FAL3d4XsMCaxRlm5bwGnKfo+XCC166HyZcdmA6FcZtE6mbPjW3g== X-Gm-Gg: AY/fxX6ANk0RqIkFDZN6RqUN34ZfvjO4pmTpGIr8BCqVHAbRUDq52NdhUJOJ+GEl0+6 QI7+a5rkF2J9q42Rc7Kk8t2et4QOltqwUbfrwXc61smzQhWUM7R87BEYNGE54NGBOlZIvZ/FmkG eIO8lvz/o9jv9kd049d4ipAQ3xt1nieB4rnE5R5RzpFJFk+gwdTskMwyWjvsoMinEPGs/bn7lMM bweMIcmVzkgtrUhcZbM15iDF88vh5MB+Ua3QlVru87nMXFT4aR8Sypr2DwarYV5lMIo3uyX X-Google-Smtp-Source: AGHT+IF4Y9q50s0GLtgGO4vWQvJ8Oore79R98InbExXp6pyHz4sJmiJYnh7uiLd0h4ga29UfEdcSfNdbn/G2B00zOPI= X-Received: by 2002:a05:6830:6014:b0:7c7:58e9:8e16 with SMTP id 46e09a7af769-7ce4666fc1fmr2231574a34.14.1767712720838; Tue, 06 Jan 2026 07:18:40 -0800 (PST) MIME-Version: 1.0 References: <174319365391.60294.17413945943923890743.pgcf@coridan.postgresql.org> In-Reply-To: From: Aleksander Alekseev Date: Tue, 6 Jan 2026 18:18:29 +0300 X-Gm-Features: AQt7F2pZ5nng4VAi9Br9rwzZ_2AvHAOpjOzCfDw1BPMCV4FU8SNm3xcSjsooL-E Message-ID: Subject: Re: [PATCH] Refactor SLRU to always use long file names To: pgsql-hackers@lists.postgresql.org Cc: Rustam ALLAKOV , Michael Paquier Content-Type: multipart/mixed; boundary="000000000000ca8ccf0647b9b03b" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000ca8ccf0647b9b03b Content-Type: text/plain; charset="UTF-8" Hi, > > > The new status of this patch is: Ready for Committer > > > > Thanks for testing! > > > > Here is the rebased patch. > > Rebased. Rebased. -- Best regards, Aleksander Alekseev --000000000000ca8ccf0647b9b03b Content-Type: text/x-patch; charset="US-ASCII"; name="v7-0001-Always-use-long-SLRU-segment-file-names.patch" Content-Disposition: attachment; filename="v7-0001-Always-use-long-SLRU-segment-file-names.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mk2qi47r0 RnJvbSA4OWVlMjFiOTU0MTFhZjA5YWE1ZWM1NDZjYjZhNTkzNjk2NTNmZjZkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGVrc2FuZGVyIEFsZWtzZWV2IDxhbGVrc2FuZGVyQHRpbWVz Y2FsZS5jb20+CkRhdGU6IFdlZCwgMTEgU2VwIDIwMjQgMTM6MTc6MzMgKzAzMDAKU3ViamVjdDog W1BBVENIIHY3XSBBbHdheXMgdXNlIGxvbmcgU0xSVSBzZWdtZW50IGZpbGUgbmFtZXMKClBHMTcg aW50cm9kdWNlZCBsb25nIFNMUlUgc2VnbWVudCBmaWxlIG5hbWVzIChjb21taXQgNGVkOGYwOTEz YmZkKS4gV2UgdXNlZApzaG9ydCBvciBsb25nIGZpbGUgbmFtZXMgZGVwZW5kaW5nIG9uIFNscnVD dGwtPmxvbmdfc2VnbWVudF9uYW1lcy4gVGhpcyBjb21taXQKcmVmYWN0b3JzIFNMUlUgdG8gYWx3 YXlzIHVzZSBsb25nIGZpbGUgbmFtZXMgaW4gb3JkZXIgdG8gc2ltcGxpZnkgdGhlIGNvZGUuCgpB bGVrc2FuZGVyIEFsZWtzZWV2LCByZXZpZXdlZCBieSBNaWNoYWVsIFBhcXVpZXIsIFJ1c3RhbSBB bGxha292CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vQ0FKN2M2VE95N2ZVVzlNdU5l T1dvcjNjU0ZuUWc5dGd6PW1qWEhEYjk0R09SdE1fRXlnQG1haWwuZ21haWwuY29tCgooISEhKSBi dW1wIGNhdHZlcnNpb24gYW5kIGNoYW5nZSB0aGUgY29ycmVzcG9uZGluZyBUT0RPIEZJWE1FIGxp bmUgaW4gcGdfdXBncmFkZS5oCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vY2xvZy5j ICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL2NvbW1pdF90 cy5jICAgICAgICB8ICAzICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhhY3Qu YyAgICAgICAgfCAgNiArLQogc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vc2xydS5jICAgICAg ICAgICAgIHwgNzEgKysrKy0tLS0tLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNh bS9zdWJ0cmFucy5jICAgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvYXN5bmMu YyAgICAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvbG1nci9wcmVk aWNhdGUuYyAgICAgICAgICB8ICAyICstCiBzcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5j ICAgICAgICAgICAgICAgfCA3NCArKysrKysrKysrKysrKysrKysrCiBzcmMvYmluL3BnX3VwZ3Jh ZGUvcGdfdXBncmFkZS5oICAgICAgICAgICAgICAgfCAgNiArKwogc3JjL2Jpbi9wZ192ZXJpZnli YWNrdXAvdC8wMDNfY29ycnVwdGlvbi5wbCAgIHwgIDIgKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9z bHJ1LmggICAgICAgICAgICAgICAgICAgICB8IDEwICstLQogLi4uL3Rlc3Rfc2xydS90LzAwMl9t dWx0aXhhY3Rfd3JhcGFyb3VuZC5wbCAgIHwgIDYgKy0KIHNyYy90ZXN0L21vZHVsZXMvdGVzdF9z bHJ1L3Rlc3Rfc2xydS5jICAgICAgICB8ICA4ICstCiAxMyBmaWxlcyBjaGFuZ2VkLCAxMDYgaW5z ZXJ0aW9ucygrKSwgODggZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0vY2xvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vY2xvZy5jCmlu ZGV4IGI1YzM4YmJiMTYyLi5lNDZkYzEzZmI1YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0vY2xvZy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL2Nsb2cu YwpAQCAtODA5LDcgKzgwOSw3IEBAIENMT0dTaG1lbUluaXQodm9pZCkKIAlYYWN0Q3RsLT5QYWdl UHJlY2VkZXMgPSBDTE9HUGFnZVByZWNlZGVzOwogCVNpbXBsZUxydUluaXQoWGFjdEN0bCwgInRy YW5zYWN0aW9uIiwgQ0xPR1NobWVtQnVmZmVycygpLCBDTE9HX0xTTlNfUEVSX1BBR0UsCiAJCQkJ ICAicGdfeGFjdCIsIExXVFJBTkNIRV9YQUNUX0JVRkZFUiwKLQkJCQkgIExXVFJBTkNIRV9YQUNU X1NMUlUsIFNZTkNfSEFORExFUl9DTE9HLCBmYWxzZSk7CisJCQkJICBMV1RSQU5DSEVfWEFDVF9T TFJVLCBTWU5DX0hBTkRMRVJfQ0xPRyk7CiAJU2xydVBhZ2VQcmVjZWRlc1VuaXRUZXN0cyhYYWN0 Q3RsLCBDTE9HX1hBQ1RTX1BFUl9QQUdFKTsKIH0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv YWNjZXNzL3RyYW5zYW0vY29tbWl0X3RzLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9j b21taXRfdHMuYwppbmRleCAwODJiNTY0ZGE4Zi4uMjU3NzRmYmMxYjkgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL2NvbW1pdF90cy5jCisrKyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy90cmFuc2FtL2NvbW1pdF90cy5jCkBAIC01NTQsOCArNTU0LDcgQEAgQ29tbWl0VHNTaG1l bUluaXQodm9pZCkKIAlTaW1wbGVMcnVJbml0KENvbW1pdFRzQ3RsLCAiY29tbWl0X3RpbWVzdGFt cCIsIENvbW1pdFRzU2htZW1CdWZmZXJzKCksIDAsCiAJCQkJICAicGdfY29tbWl0X3RzIiwgTFdU UkFOQ0hFX0NPTU1JVFRTX0JVRkZFUiwKIAkJCQkgIExXVFJBTkNIRV9DT01NSVRUU19TTFJVLAot CQkJCSAgU1lOQ19IQU5ETEVSX0NPTU1JVF9UUywKLQkJCQkgIGZhbHNlKTsKKwkJCQkgIFNZTkNf SEFORExFUl9DT01NSVRfVFMpOwogCVNscnVQYWdlUHJlY2VkZXNVbml0VGVzdHMoQ29tbWl0VHND dGwsIENPTU1JVF9UU19YQUNUU19QRVJfUEFHRSk7CiAKIAljb21taXRUc1NoYXJlZCA9IFNobWVt SW5pdFN0cnVjdCgiQ29tbWl0VHMgc2hhcmVkIiwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy90cmFuc2FtL211bHRpeGFjdC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vbXVs dGl4YWN0LmMKaW5kZXggM2Y0MjM2MzZiNDguLjM0ODJiMWMxNmFkIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9tdWx0aXhhY3QuYworKysgYi9zcmMvYmFja2VuZC9hY2Nl c3MvdHJhbnNhbS9tdWx0aXhhY3QuYwpAQCAtMTczNiwxNSArMTczNiwxMyBAQCBNdWx0aVhhY3RT aG1lbUluaXQodm9pZCkKIAkJCQkgICJtdWx0aXhhY3Rfb2Zmc2V0IiwgbXVsdGl4YWN0X29mZnNl dF9idWZmZXJzLCAwLAogCQkJCSAgInBnX211bHRpeGFjdC9vZmZzZXRzIiwgTFdUUkFOQ0hFX01V TFRJWEFDVE9GRlNFVF9CVUZGRVIsCiAJCQkJICBMV1RSQU5DSEVfTVVMVElYQUNUT0ZGU0VUX1NM UlUsCi0JCQkJICBTWU5DX0hBTkRMRVJfTVVMVElYQUNUX09GRlNFVCwKLQkJCQkgIGZhbHNlKTsK KwkJCQkgIFNZTkNfSEFORExFUl9NVUxUSVhBQ1RfT0ZGU0VUKTsKIAlTbHJ1UGFnZVByZWNlZGVz VW5pdFRlc3RzKE11bHRpWGFjdE9mZnNldEN0bCwgTVVMVElYQUNUX09GRlNFVFNfUEVSX1BBR0Up OwogCVNpbXBsZUxydUluaXQoTXVsdGlYYWN0TWVtYmVyQ3RsLAogCQkJCSAgIm11bHRpeGFjdF9t ZW1iZXIiLCBtdWx0aXhhY3RfbWVtYmVyX2J1ZmZlcnMsIDAsCiAJCQkJICAicGdfbXVsdGl4YWN0 L21lbWJlcnMiLCBMV1RSQU5DSEVfTVVMVElYQUNUTUVNQkVSX0JVRkZFUiwKIAkJCQkgIExXVFJB TkNIRV9NVUxUSVhBQ1RNRU1CRVJfU0xSVSwKLQkJCQkgIFNZTkNfSEFORExFUl9NVUxUSVhBQ1Rf TUVNQkVSLAotCQkJCSAgdHJ1ZSk7CisJCQkJICBTWU5DX0hBTkRMRVJfTVVMVElYQUNUX01FTUJF Uik7CiAJLyogZG9lc24ndCBjYWxsIFNpbXBsZUxydVRydW5jYXRlKCkgb3IgbWVldCBjcml0ZXJp YSBmb3IgdW5pdCB0ZXN0cyAqLwogCiAJLyogSW5pdGlhbGl6ZSBvdXIgc2hhcmVkIHN0YXRlIHN0 cnVjdCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vc2xydS5jIGIv c3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vc2xydS5jCmluZGV4IDU0OWM3ZTNlNjRiLi4xOGJh ZWRkNmRlNiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vc2xydS5jCisr KyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3NscnUuYwpAQCAtNzcsNDEgKzc3LDIxIEBA CiAgKgogICogInBhdGgiIHNob3VsZCBwb2ludCB0byBhIGJ1ZmZlciBhdCBsZWFzdCBNQVhQR1BB VEggY2hhcmFjdGVycyBsb25nLgogICoKLSAqIElmIGN0bC0+bG9uZ19zZWdtZW50X25hbWVzIGlz IHRydWUsIHNlZ25vIGNhbiBiZSBpbiB0aGUgcmFuZ2UgWzAsIDJeNjAtMV0uCi0gKiBUaGUgcmVz dWx0aW5nIGZpbGUgbmFtZSBpcyBtYWRlIG9mIDE1IGNoYXJhY3RlcnMsIGUuZy4gZGlyLzEyMzQ1 Njc4OUFCQ0RFRi4KLSAqCi0gKiBJZiBjdGwtPmxvbmdfc2VnbWVudF9uYW1lcyBpcyBmYWxzZSwg c2Vnbm8gY2FuIGJlIGluIHRoZSByYW5nZSBbMCwgMl4yNC0xXS4KLSAqIFRoZSByZXN1bHRpbmcg ZmlsZSBuYW1lIGlzIG1hZGUgb2YgNCB0byA2IGNoYXJhY3RlcnMsIGFzIG9mOgotICoKLSAqICBk aXIvMTIzNCAgIGZvciBbMCwgMl4xNi0xXQotICogIGRpci8xMjM0NSAgZm9yIFsyXjE2LCAyXjIw LTFdCi0gKiAgZGlyLzEyMzQ1NiBmb3IgWzJeMjAsIDJeMjQtMV0KKyAqIHNlZ25vIGNhbiBiZSBp biB0aGUgcmFuZ2UgWzAsIDJeNjAtMV0uIFRoZSByZXN1bHRpbmcgZmlsZSBuYW1lIGlzIG1hZGUK KyAqIG9mIDE1IGNoYXJhY3RlcnMsIGUuZy4gZGlyLzEyMzQ1Njc4OUFCQ0RFRi4KICAqLwogc3Rh dGljIGlubGluZSBpbnQKIFNscnVGaWxlTmFtZShTbHJ1Q3RsIGN0bCwgY2hhciAqcGF0aCwgaW50 NjQgc2Vnbm8pCiB7Ci0JaWYgKGN0bC0+bG9uZ19zZWdtZW50X25hbWVzKQotCXsKLQkJLyoKLQkJ ICogV2UgY291bGQgdXNlIDE2IGNoYXJhY3RlcnMgaGVyZSBidXQgdGhlIGRpc2FkdmFudGFnZSB3 b3VsZCBiZSB0aGF0Ci0JCSAqIHRoZSBTTFJVIHNlZ21lbnRzIHdpbGwgYmUgaGFyZCB0byBkaXN0 aW5ndWlzaCBmcm9tIFdBTCBzZWdtZW50cy4KLQkJICoKLQkJICogRm9yIHRoaXMgcmVhc29uIHdl IHVzZSAxNSBjaGFyYWN0ZXJzLiBJdCBpcyBlbm91Z2ggYnV0IGFsc28gbWVhbnMKLQkJICogdGhh dCBpbiB0aGUgZnV0dXJlIHdlIGNhbid0IGRlY3JlYXNlIFNMUlVfUEFHRVNfUEVSX1NFR01FTlQg ZWFzaWx5LgotCQkgKi8KLQkJQXNzZXJ0KHNlZ25vID49IDAgJiYgc2Vnbm8gPD0gSU5UNjRDT05T VCgweEZGRkZGRkZGRkZGRkZGRikpOwotCQlyZXR1cm4gc25wcmludGYocGF0aCwgTUFYUEdQQVRI LCAiJXMvJTAxNSIgUFJJWDY0LCBjdGwtPkRpciwgc2Vnbm8pOwotCX0KLQllbHNlCi0JewotCQkv KgotCQkgKiBEZXNwaXRlIHRoZSBmYWN0IHRoYXQgJTA0WCBmb3JtYXQgc3RyaW5nIGlzIHVzZWQg dXAgdG8gMjQgYml0Ci0JCSAqIGludGVnZXJzIGFyZSBhbGxvd2VkLiBTZWUgU2xydUNvcnJlY3RT ZWdtZW50RmlsZW5hbWVMZW5ndGgoKQotCQkgKi8KLQkJQXNzZXJ0KHNlZ25vID49IDAgJiYgc2Vn bm8gPD0gSU5UNjRDT05TVCgweEZGRkZGRikpOwotCQlyZXR1cm4gc25wcmludGYocGF0aCwgTUFY UEdQQVRILCAiJXMvJTA0WCIsIChjdGwpLT5EaXIsCi0JCQkJCQkodW5zaWduZWQgaW50KSBzZWdu byk7Ci0JfQorCS8qCisJICogV2UgY291bGQgdXNlIDE2IGNoYXJhY3RlcnMgaGVyZSBidXQgdGhl IGRpc2FkdmFudGFnZSB3b3VsZCBiZSB0aGF0CisJICogdGhlIFNMUlUgc2VnbWVudHMgd2lsbCBi ZSBoYXJkIHRvIGRpc3Rpbmd1aXNoIGZyb20gV0FMIHNlZ21lbnRzLgorCSAqCisJICogRm9yIHRo aXMgcmVhc29uIHdlIHVzZSAxNSBjaGFyYWN0ZXJzLiBJdCBpcyBlbm91Z2ggYnV0IGFsc28gbWVh bnMKKwkgKiB0aGF0IGluIHRoZSBmdXR1cmUgd2UgY2FuJ3QgZGVjcmVhc2UgU0xSVV9QQUdFU19Q RVJfU0VHTUVOVCBlYXNpbHkuCisJICovCisJQXNzZXJ0KHNlZ25vID49IDAgJiYgc2Vnbm8gPD0g SU5UNjRDT05TVCgweEZGRkZGRkZGRkZGRkZGRikpOworCXJldHVybiBzbnByaW50ZihwYXRoLCBN QVhQR1BBVEgsICIlcy8lMDE1IiBQUklYNjQsIGN0bC0+RGlyLCBzZWdubyk7CiB9CiAKIC8qCkBA IC0yNTEsNyArMjMxLDcgQEAgU2ltcGxlTHJ1QXV0b3R1bmVCdWZmZXJzKGludCBkaXZpc29yLCBp bnQgbWF4KQogdm9pZAogU2ltcGxlTHJ1SW5pdChTbHJ1Q3RsIGN0bCwgY29uc3QgY2hhciAqbmFt ZSwgaW50IG5zbG90cywgaW50IG5sc25zLAogCQkJICBjb25zdCBjaGFyICpzdWJkaXIsIGludCBi dWZmZXJfdHJhbmNoZV9pZCwgaW50IGJhbmtfdHJhbmNoZV9pZCwKLQkJCSAgU3luY1JlcXVlc3RI YW5kbGVyIHN5bmNfaGFuZGxlciwgYm9vbCBsb25nX3NlZ21lbnRfbmFtZXMpCisJCQkgIFN5bmNS ZXF1ZXN0SGFuZGxlciBzeW5jX2hhbmRsZXIpCiB7CiAJU2xydVNoYXJlZAlzaGFyZWQ7CiAJYm9v bAkJZm91bmQ7CkBAIC0zNDIsNyArMzIyLDYgQEAgU2ltcGxlTHJ1SW5pdChTbHJ1Q3RsIGN0bCwg Y29uc3QgY2hhciAqbmFtZSwgaW50IG5zbG90cywgaW50IG5sc25zLAogCSAqLwogCWN0bC0+c2hh cmVkID0gc2hhcmVkOwogCWN0bC0+c3luY19oYW5kbGVyID0gc3luY19oYW5kbGVyOwotCWN0bC0+ bG9uZ19zZWdtZW50X25hbWVzID0gbG9uZ19zZWdtZW50X25hbWVzOwogCWN0bC0+bmJhbmtzID0g bmJhbmtzOwogCXN0cmxjcHkoY3RsLT5EaXIsIHN1YmRpciwgc2l6ZW9mKGN0bC0+RGlyKSk7CiB9 CkBAIC0xNzczLDMwICsxNzUyLDYgQEAgU2xydVNjYW5EaXJDYkRlbGV0ZUFsbChTbHJ1Q3RsIGN0 bCwgY2hhciAqZmlsZW5hbWUsIGludDY0IHNlZ3BhZ2UsIHZvaWQgKmRhdGEpCiAJcmV0dXJuIGZh bHNlOwkJCQkvKiBrZWVwIGdvaW5nICovCiB9CiAKLS8qCi0gKiBBbiBpbnRlcm5hbCBmdW5jdGlv biB1c2VkIGJ5IFNscnVTY2FuRGlyZWN0b3J5KCkuCi0gKgotICogUmV0dXJucyB0cnVlIGlmIGEg ZmlsZSB3aXRoIGEgbmFtZSBvZiBhIGdpdmVuIGxlbmd0aCBtYXkgYmUgYSBjb3JyZWN0Ci0gKiBT TFJVIHNlZ21lbnQuCi0gKi8KLXN0YXRpYyBpbmxpbmUgYm9vbAotU2xydUNvcnJlY3RTZWdtZW50 RmlsZW5hbWVMZW5ndGgoU2xydUN0bCBjdGwsIHNpemVfdCBsZW4pCi17Ci0JaWYgKGN0bC0+bG9u Z19zZWdtZW50X25hbWVzKQotCQlyZXR1cm4gKGxlbiA9PSAxNSk7CQkvKiBzZWUgU2xydUZpbGVO YW1lKCkgKi8KLQllbHNlCi0KLQkJLyoKLQkJICogQ29tbWl0IDYzOGNmMDllNzZkIGFsbG93ZWQg NS1jaGFyYWN0ZXIgbGVuZ3Rocy4gTGF0ZXIgY29tbWl0Ci0JCSAqIDczYzk4NmFkZGU1IGFsbG93 ZWQgNi1jaGFyYWN0ZXIgbGVuZ3RoLgotCQkgKgotCQkgKiBOb3RlOiBUaGVyZSBpcyBhbiBvbmdv aW5nIHBsYW4gdG8gbWlncmF0ZSBhbGwgU0xSVXMgdG8gNjQtYml0IHBhZ2UKLQkJICogbnVtYmVy cywgYW5kIHRoZSBjb3JyZXNwb25kaW5nIDE1LWNoYXJhY3RlciBmaWxlIG5hbWVzLCB3aGljaCBt YXkKLQkJICogZXZlbnR1YWxseSBkZXByZWNhdGUgdGhlIHN1cHBvcnQgZm9yIDQsIDUsIGFuZCA2 LWNoYXJhY3RlciBuYW1lcy4KLQkJICovCi0JCXJldHVybiAobGVuID09IDQgfHwgbGVuID09IDUg fHwgbGVuID09IDYpOwotfQotCiAvKgogICogU2NhbiB0aGUgU2ltcGxlTHJ1IGRpcmVjdG9yeSBh bmQgYXBwbHkgYSBjYWxsYmFjayB0byBlYWNoIGZpbGUgZm91bmQgaW4gaXQuCiAgKgpAQCAtMTgy OCw3ICsxNzgzLDcgQEAgU2xydVNjYW5EaXJlY3RvcnkoU2xydUN0bCBjdGwsIFNscnVTY2FuQ2Fs bGJhY2sgY2FsbGJhY2ssIHZvaWQgKmRhdGEpCiAKIAkJbGVuID0gc3RybGVuKGNsZGUtPmRfbmFt ZSk7CiAKLQkJaWYgKFNscnVDb3JyZWN0U2VnbWVudEZpbGVuYW1lTGVuZ3RoKGN0bCwgbGVuKSAm JgorCQlpZiAoKGxlbiA9PSAxNSkgJiYKIAkJCXN0cnNwbihjbGRlLT5kX25hbWUsICIwMTIzNDU2 Nzg5QUJDREVGIikgPT0gbGVuKQogCQl7CiAJCQlzZWdubyA9IHN0cnRvaTY0KGNsZGUtPmRfbmFt ZSwgTlVMTCwgMTYpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vc3Vi dHJhbnMuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3N1YnRyYW5zLmMKaW5kZXggYzA5 ODdmNDNmMTEuLjM1MzY5NzFjYTdkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJh bnNhbS9zdWJ0cmFucy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3N1YnRyYW5z LmMKQEAgLTI0Miw3ICsyNDIsNyBAQCBTVUJUUkFOU1NobWVtSW5pdCh2b2lkKQogCVN1YlRyYW5z Q3RsLT5QYWdlUHJlY2VkZXMgPSBTdWJUcmFuc1BhZ2VQcmVjZWRlczsKIAlTaW1wbGVMcnVJbml0 KFN1YlRyYW5zQ3RsLCAic3VidHJhbnNhY3Rpb24iLCBTVUJUUkFOU1NobWVtQnVmZmVycygpLCAw LAogCQkJCSAgInBnX3N1YnRyYW5zIiwgTFdUUkFOQ0hFX1NVQlRSQU5TX0JVRkZFUiwKLQkJCQkg IExXVFJBTkNIRV9TVUJUUkFOU19TTFJVLCBTWU5DX0hBTkRMRVJfTk9ORSwgZmFsc2UpOworCQkJ CSAgTFdUUkFOQ0hFX1NVQlRSQU5TX1NMUlUsIFNZTkNfSEFORExFUl9OT05FKTsKIAlTbHJ1UGFn ZVByZWNlZGVzVW5pdFRlc3RzKFN1YlRyYW5zQ3RsLCBTVUJUUkFOU19YQUNUU19QRVJfUEFHRSk7 CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FzeW5jLmMgYi9zcmMvYmFj a2VuZC9jb21tYW5kcy9hc3luYy5jCmluZGV4IDQwYzQyZjU3MmVkLi4wZGQxYTkyM2ZjOSAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvYXN5bmMuYworKysgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9hc3luYy5jCkBAIC01MzYsNyArNTM2LDcgQEAgQXN5bmNTaG1lbUluaXQodm9pZCkK IAlOb3RpZnlDdGwtPlBhZ2VQcmVjZWRlcyA9IGFzeW5jUXVldWVQYWdlUHJlY2VkZXM7CiAJU2lt cGxlTHJ1SW5pdChOb3RpZnlDdGwsICJub3RpZnkiLCBub3RpZnlfYnVmZmVycywgMCwKIAkJCQkg ICJwZ19ub3RpZnkiLCBMV1RSQU5DSEVfTk9USUZZX0JVRkZFUiwgTFdUUkFOQ0hFX05PVElGWV9T TFJVLAotCQkJCSAgU1lOQ19IQU5ETEVSX05PTkUsIHRydWUpOworCQkJCSAgU1lOQ19IQU5ETEVS X05PTkUpOwogCiAJaWYgKCFmb3VuZCkKIAl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9y YWdlL2xtZ3IvcHJlZGljYXRlLmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2xtZ3IvcHJlZGljYXRl LmMKaW5kZXggZmU3NWVhZDM1MDEuLjhlOTdiYjM1MjI1IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9zdG9yYWdlL2xtZ3IvcHJlZGljYXRlLmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9sbWdy L3ByZWRpY2F0ZS5jCkBAIC04MTQsNyArODE0LDcgQEAgU2VyaWFsSW5pdCh2b2lkKQogCVNpbXBs ZUxydUluaXQoU2VyaWFsU2xydUN0bCwgInNlcmlhbGl6YWJsZSIsCiAJCQkJICBzZXJpYWxpemFi bGVfYnVmZmVycywgMCwgInBnX3NlcmlhbCIsCiAJCQkJICBMV1RSQU5DSEVfU0VSSUFMX0JVRkZF UiwgTFdUUkFOQ0hFX1NFUklBTF9TTFJVLAotCQkJCSAgU1lOQ19IQU5ETEVSX05PTkUsIGZhbHNl KTsKKwkJCQkgIFNZTkNfSEFORExFUl9OT05FKTsKICNpZmRlZiBVU0VfQVNTRVJUX0NIRUNLSU5H CiAJU2VyaWFsUGFnZVByZWNlZGVzTG9naWNhbGx5VW5pdFRlc3RzKCk7CiAjZW5kaWYKZGlmZiAt LWdpdCBhL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191cGdyYWRlLmMgYi9zcmMvYmluL3BnX3VwZ3Jh ZGUvcGdfdXBncmFkZS5jCmluZGV4IDIxMjdkMjk3YmZlLi40MzQ4NDNlNGFmZSAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuYworKysgYi9zcmMvYmluL3BnX3VwZ3Jh ZGUvcGdfdXBncmFkZS5jCkBAIC00MSw2ICs0MSw3IEBACiAKICNpbmNsdWRlICJwb3N0Z3Jlc19m ZS5oIgogCisjaW5jbHVkZSA8ZGlyZW50Lmg+CiAjaW5jbHVkZSA8dGltZS5oPgogCiAjaW5jbHVk ZSAiYWNjZXNzL211bHRpeGFjdC5oIgpAQCAtNjQsNiArNjUsOCBAQCBzdGF0aWMgdm9pZCBwcmVw YXJlX25ld19jbHVzdGVyKHZvaWQpOwogc3RhdGljIHZvaWQgcHJlcGFyZV9uZXdfZ2xvYmFscyh2 b2lkKTsKIHN0YXRpYyB2b2lkIGNyZWF0ZV9uZXdfb2JqZWN0cyh2b2lkKTsKIHN0YXRpYyB2b2lk IGNvcHlfeGFjdF94bG9nX3hpZCh2b2lkKTsKK3N0YXRpYyB2b2lkIGNoZWNrX3NscnVfc2VnbWVu dF9maWxlbmFtZXModm9pZCk7CitzdGF0aWMgdm9pZCByZW5hbWVfc2xydV9zZWdtZW50cyhjb25z dCBjaGFyICpkaXJuYW1lKTsKIHN0YXRpYyB2b2lkIHNldF9mcm96ZW54aWRzKGJvb2wgbWlubXhp ZF9vbmx5KTsKIHN0YXRpYyB2b2lkIG1ha2Vfb3V0cHV0ZGlycyhjaGFyICpwZ2RhdGEpOwogc3Rh dGljIHZvaWQgc2V0dXAoY2hhciAqYXJndjApOwpAQCAtMTYyLDYgKzE2NSw3IEBAIG1haW4oaW50 IGFyZ2MsIGNoYXIgKiphcmd2KQogCiAJY29weV94YWN0X3hsb2dfeGlkKCk7CiAJc2V0X25ld19j bHVzdGVyX2NoYXJfc2lnbmVkbmVzcygpOworCWNoZWNrX3NscnVfc2VnbWVudF9maWxlbmFtZXMo KTsKIAogCS8qIE5ldyBub3cgdXNpbmcgeGlkcyBvZiB0aGUgb2xkIHN5c3RlbSAqLwogCkBAIC05 MDIsNiArOTA2LDc2IEBAIGNvcHlfeGFjdF94bG9nX3hpZCh2b2lkKQogCWNoZWNrX29rKCk7CiB9 CiAKK3N0YXRpYyB2b2lkCityZW5hbWVfc2xydV9zZWdtZW50cyhjb25zdCBjaGFyKiBkaXJuYW1l KQoreworCURJUgkJICAgKmRpcjsKKwlzdHJ1Y3QgZGlyZW50ICpkZTsKKwlpbnQgCQlsZW47CisJ aW50NjQgCQlzZWdubzsKKwljaGFyCQlkaXJfcGF0aFtNQVhQR1BBVEhdOworCWNoYXIJCW9sZF9w YXRoW01BWFBHUEFUSF07CisJY2hhcgkJbmV3X3BhdGhbTUFYUEdQQVRIXTsKKworCXByZXBfc3Rh dHVzKCJSZW5hbWluZyBTTFJVIHNlZ21lbnRzIGluICVzIiwgZGlybmFtZSk7CisJc25wcmludGYo ZGlyX3BhdGgsIHNpemVvZihkaXJfcGF0aCksICIlcy8lcyIsIG5ld19jbHVzdGVyLnBnZGF0YSwg ZGlybmFtZSk7CisKKwlkaXIgPSBvcGVuZGlyKGRpcl9wYXRoKTsKKwlpZiAoZGlyID09IE5VTEwp CisJCXBnX2ZhdGFsKCJjb3VsZCBub3Qgb3BlbiBkaXJlY3RvcnkgXCIlc1wiOiAlbSIsIGRpcl9w YXRoKTsKKworCXdoaWxlIChlcnJubyA9IDAsIChkZSA9IHJlYWRkaXIoZGlyKSkgIT0gTlVMTCkK Kwl7CisJCS8qCisJCSAqIGlnbm9yZSAnLicsICcuLicgYW5kIGV2ZXJ5dGhpbmcgZWxzZSB0aGF0 IGRvZXNuJ3QgbG9vaworCQkgKiBsaWtlIGFuIFNMUlUgc2VnbWVudCB3aXRoIGEgc2hvcnQgZmls ZSBuYW1lCisJCSAqLworCisJCWxlbiA9IHN0cmxlbihkZS0+ZF9uYW1lKTsKKwkJaWYobGVuICE9 IDQgJiYgbGVuICE9IDUgJiYgbGVuICE9IDYpCisJCQljb250aW51ZTsKKworCQlpZihzdHJzcG4o ZGUtPmRfbmFtZSwgIjAxMjM0NTY3ODlBQkNERUYiKSAhPSBsZW4pCisJCQljb250aW51ZTsKKwor CQlzZWdubyA9IHN0cnRvaTY0KGRlLT5kX25hbWUsIE5VTEwsIDE2KTsKKwkJc25wcmludGYobmV3 X3BhdGgsIE1BWFBHUEFUSCwgIiVzLyUwMTVsbFgiLCBkaXJfcGF0aCwKKwkJCQkJKGxvbmcgbG9u Zykgc2Vnbm8pOworCQlzbnByaW50ZihvbGRfcGF0aCwgTUFYUEdQQVRILCAiJXMvJXMiLCBkaXJf cGF0aCwgZGUtPmRfbmFtZSk7CisKKwkJaWYgKHBnX212X2ZpbGUob2xkX3BhdGgsIG5ld19wYXRo KSAhPSAwKQorCQkJcGdfZmF0YWwoImNvdWxkIG5vdCByZW5hbWUgZmlsZSBcIiVzXCIgdG8gXCIl c1wiOiAlbSIsCisJCQkJCSBvbGRfcGF0aCwgbmV3X3BhdGgpOworCX0KKworCWlmIChlcnJubykK KwkJcGdfZmF0YWwoImNvdWxkIG5vdCByZWFkIGRpcmVjdG9yeSBcIiVzXCI6ICVtIiwgZGlyX3Bh dGgpOworCisJaWYgKGNsb3NlZGlyKGRpcikpCisJCXBnX2ZhdGFsKCJjb3VsZCBub3QgY2xvc2Ug ZGlyZWN0b3J5IFwiJXNcIjogJW0iLCBkaXJfcGF0aCk7CisKKwljaGVja19vaygpOworfQorCitz dGF0aWMgdm9pZAorY2hlY2tfc2xydV9zZWdtZW50X2ZpbGVuYW1lcyh2b2lkKQoreworCWludCBp OworCXN0YXRpYyBjb25zdCBjaGFyKiBkaXJzW10gPSB7CisJCSJwZ194YWN0IiwKKwkJInBnX2Nv bW1pdF90cyIsCisJCSJwZ19tdWx0aXhhY3Qvb2Zmc2V0cyIsCisJCSJwZ19tdWx0aXhhY3QvbWVt YmVycyIsCisJCSJwZ19zdWJ0cmFucyIsCisJCSJwZ19zZXJpYWwiLAorCX07CisKKwlpZihvbGRf Y2x1c3Rlci5jb250cm9sZGF0YS5jYXRfdmVyID49IFNMUlVfU0VHX0ZJTEVOQU1FU19DSEFOR0Vf Q0FUX1ZFUikKKwkJcmV0dXJuOworCisJZm9yIChpID0gMDsgaSA8IHNpemVvZihkaXJzKS9zaXpl b2YoZGlyc1swXSk7IGkrKykKKwkJcmVuYW1lX3NscnVfc2VnbWVudHMoZGlyc1tpXSk7Cit9CiAK IC8qCiAgKglzZXRfZnJvemVueGlkcygpCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3VwZ3JhZGUv cGdfdXBncmFkZS5oIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuaAppbmRleCBlYzAx OGU0ZjI5Mi4uNTgxMDJlNmE0ODMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191 cGdyYWRlLmgKKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuaApAQCAtMTM4LDYg KzEzOCwxMiBAQCBleHRlcm4gY2hhciAqb3V0cHV0X2ZpbGVzW107CiAgKi8KICNkZWZpbmUgREVG QVVMVF9DSEFSX1NJR05FRE5FU1NfQ0FUX1ZFUiAyMDI1MDIyMTIKIAorLyoKKyAqIGNoYW5nZSBv ZiBTTFJVIHNlZ21lbnQgZmlsZW5hbWVzIGxlbmd0aCBpbiBQRzE5CisgKiBUT0RPIEZJWE1FIENI QU5HRSBUTyBUSEUgQUNUVUFMIFZBTFVFIEJFRk9SRSBDT01NSVRUSU5HCisgKi8KKyNkZWZpbmUg U0xSVV9TRUdfRklMRU5BTUVTX0NIQU5HRV9DQVRfVkVSIDIwMjYwMTA2MQorCiAvKgogICogRWFj aCByZWxhdGlvbiBpcyByZXByZXNlbnRlZCBieSBhIHJlbGluZm8gc3RydWN0dXJlLgogICovCmRp ZmYgLS1naXQgYS9zcmMvYmluL3BnX3ZlcmlmeWJhY2t1cC90LzAwM19jb3JydXB0aW9uLnBsIGIv c3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMDNfY29ycnVwdGlvbi5wbAppbmRleCBiMWQ2NWI4 YWEwZi4uNDY3N2U5NTg0Y2EgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdmVyaWZ5YmFja3VwL3Qv MDAzX2NvcnJ1cHRpb24ucGwKKysrIGIvc3JjL2Jpbi9wZ192ZXJpZnliYWNrdXAvdC8wMDNfY29y cnVwdGlvbi5wbApAQCAtMjQ2LDcgKzI0Niw3IEBAIHN1YiBtdXRpbGF0ZV9leHRyYV90YWJsZXNw YWNlX2ZpbGUKIHN1YiBtdXRpbGF0ZV9taXNzaW5nX2ZpbGUKIHsKIAlteSAoJGJhY2t1cF9wYXRo KSA9IEBfOwotCW15ICRwYXRobmFtZSA9ICIkYmFja3VwX3BhdGgvcGdfeGFjdC8wMDAwIjsKKwlt eSAkcGF0aG5hbWUgPSAiJGJhY2t1cF9wYXRoL3BnX3hhY3QvMDAwMDAwMDAwMDAwMDAwIjsKIAl1 bmxpbmsoJHBhdGhuYW1lKSB8fCBkaWUgIiRwYXRobmFtZTogJCEiOwogCXJldHVybjsKIH0KZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9zbHJ1LmggYi9zcmMvaW5jbHVkZS9hY2Nlc3Mv c2xydS5oCmluZGV4IDRjYjhmNDc4ZmNlLi41NDFmZWJmODZiYyAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvYWNjZXNzL3NscnUuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3Mvc2xydS5oCkBAIC0x MTYsMTMgKzExNiw2IEBAIHR5cGVkZWYgc3RydWN0IFNscnVDdGxEYXRhCiAJLyogTnVtYmVyIG9m IGJhbmtzIGluIHRoaXMgU0xSVS4gKi8KIAl1aW50MTYJCW5iYW5rczsKIAotCS8qCi0JICogSWYg dHJ1ZSwgdXNlIGxvbmcgc2VnbWVudCBmaWxlIG5hbWVzLiAgT3RoZXJ3aXNlLCB1c2Ugc2hvcnQg ZmlsZSBuYW1lcy4KLQkgKgotCSAqIEZvciBkZXRhaWxzIGFib3V0IHRoZSBmaWxlIG5hbWUgZm9y bWF0LCBzZWUgU2xydUZpbGVOYW1lKCkuCi0JICovCi0JYm9vbAkJbG9uZ19zZWdtZW50X25hbWVz OwotCiAJLyoKIAkgKiBXaGljaCBzeW5jIGhhbmRsZXIgZnVuY3Rpb24gdG8gdXNlIHdoZW4gaGFu ZGluZyBzeW5jIHJlcXVlc3RzIG92ZXIgdG8KIAkgKiB0aGUgY2hlY2twb2ludGVyLiAgU1lOQ19I QU5ETEVSX05PTkUgdG8gZGlzYWJsZSBmc3luYyAoZWcgcGdfbm90aWZ5KS4KQEAgLTE2OSw4ICsx NjIsNyBAQCBleHRlcm4gU2l6ZSBTaW1wbGVMcnVTaG1lbVNpemUoaW50IG5zbG90cywgaW50IG5s c25zKTsKIGV4dGVybiBpbnQJU2ltcGxlTHJ1QXV0b3R1bmVCdWZmZXJzKGludCBkaXZpc29yLCBp bnQgbWF4KTsKIGV4dGVybiB2b2lkIFNpbXBsZUxydUluaXQoU2xydUN0bCBjdGwsIGNvbnN0IGNo YXIgKm5hbWUsIGludCBuc2xvdHMsIGludCBubHNucywKIAkJCQkJCSAgY29uc3QgY2hhciAqc3Vi ZGlyLCBpbnQgYnVmZmVyX3RyYW5jaGVfaWQsCi0JCQkJCQkgIGludCBiYW5rX3RyYW5jaGVfaWQs IFN5bmNSZXF1ZXN0SGFuZGxlciBzeW5jX2hhbmRsZXIsCi0JCQkJCQkgIGJvb2wgbG9uZ19zZWdt ZW50X25hbWVzKTsKKwkJCQkJCSAgaW50IGJhbmtfdHJhbmNoZV9pZCwgU3luY1JlcXVlc3RIYW5k bGVyIHN5bmNfaGFuZGxlcik7CiBleHRlcm4gaW50CVNpbXBsZUxydVplcm9QYWdlKFNscnVDdGwg Y3RsLCBpbnQ2NCBwYWdlbm8pOwogZXh0ZXJuIHZvaWQgU2ltcGxlTHJ1WmVyb0FuZFdyaXRlUGFn ZShTbHJ1Q3RsIGN0bCwgaW50NjQgcGFnZW5vKTsKIGV4dGVybiBpbnQJU2ltcGxlTHJ1UmVhZFBh Z2UoU2xydUN0bCBjdGwsIGludDY0IHBhZ2VubywgYm9vbCB3cml0ZV9vaywKZGlmZiAtLWdpdCBh L3NyYy90ZXN0L21vZHVsZXMvdGVzdF9zbHJ1L3QvMDAyX211bHRpeGFjdF93cmFwYXJvdW5kLnBs IGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X3NscnUvdC8wMDJfbXVsdGl4YWN0X3dyYXBhcm91bmQu cGwKaW5kZXggMzc5M2FjMWM0NTAuLjhiNDYwMWFiOGUxIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9t b2R1bGVzL3Rlc3Rfc2xydS90LzAwMl9tdWx0aXhhY3Rfd3JhcGFyb3VuZC5wbAorKysgYi9zcmMv dGVzdC9tb2R1bGVzL3Rlc3Rfc2xydS90LzAwMl9tdWx0aXhhY3Rfd3JhcGFyb3VuZC5wbApAQCAt NDAsNyArNDAsNyBAQCBteSAkc2xydV9wYWdlc19wZXJfc2VnbWVudCA9ICQxOwogbXkgJG11bHRp eGFjdF9vZmZzZXRzX3Blcl9wYWdlID0gJGJsY2tzeiAvIDg7ICAgIyBzaXplb2YoTXVsdGlYYWN0 T2Zmc2V0KSA9PSA4CiBteSAkc2Vnbm8gPQogICBpbnQoMHhGRkZGRkZGOCAvICRtdWx0aXhhY3Rf b2Zmc2V0c19wZXJfcGFnZSAvICRzbHJ1X3BhZ2VzX3Blcl9zZWdtZW50KTsKLW15ICRzbHJ1X2Zp bGUgPSBzcHJpbnRmKCclcy9wZ19tdWx0aXhhY3Qvb2Zmc2V0cy8lMDRYJywgJG5vZGVfcGdkYXRh LCAkc2Vnbm8pOworbXkgJHNscnVfZmlsZSA9IHNwcmludGYoJyVzL3BnX211bHRpeGFjdC9vZmZz ZXRzLyUwMTVYJywgJG5vZGVfcGdkYXRhLCAkc2Vnbm8pOwogb3BlbiBteSAkZmgsICI+IiwgJHNs cnVfZmlsZQogICBvciBkaWUgImNvdWxkIG5vdCBvcGVuIFwiJHNscnVfZmlsZVwiOiAkISI7CiBi aW5tb2RlICRmaDsKQEAgLTUwLDggKzUwLDggQEAgc3lzd3JpdGUoJGZoLCAiXDAiIHggJGJ5dGVz X3Blcl9zZWcpID09ICRieXRlc19wZXJfc2VnCiBjbG9zZSAkZmg7CiAKICMgcmVtb3ZlIG9sZCBm aWxlCi11bmxpbmsoIiRub2RlX3BnZGF0YS9wZ19tdWx0aXhhY3Qvb2Zmc2V0cy8wMDAwIikKLSAg b3IgZGllICJjb3VsZCBub3QgdW5saW5rIFwiJG5vZGVfcGdkYXRhL3BnX211bHRpeGFjdC9vZmZz ZXRzLzAwMDBcIjogJCEiOwordW5saW5rKCIkbm9kZV9wZ2RhdGEvcGdfbXVsdGl4YWN0L29mZnNl dHMvMDAwMDAwMDAwMDAwMDAwIikKKyAgb3IgZGllICJjb3VsZCBub3QgdW5saW5rIFwiJG5vZGVf cGdkYXRhL3BnX211bHRpeGFjdC9vZmZzZXRzLzAwMDAwMDAwMDAwMDAwMFwiOiAkISI7CiAKICMg Q29uc3VtZSBtdWx0aXhpZHMgdG8gd3JhcCBhcm91bmQuICBXZSBzdGFydCBhdCAweEZGRkZGRkY4 LCBzbyBhZnRlcgogIyBjcmVhdGluZyAxNiBtdWx0aXhhY3RzIHdlIHNob3VsZCBkZWZpbml0ZWx5 IGhhdmUgd3JhcHBlZCBhcm91bmQuCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVzL3Rlc3Rf c2xydS90ZXN0X3NscnUuYyBiL3NyYy90ZXN0L21vZHVsZXMvdGVzdF9zbHJ1L3Rlc3Rfc2xydS5j CmluZGV4IDRkYzc0ZTE5NjIwLi42NDJmMWFlYjhjYSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvbW9k dWxlcy90ZXN0X3NscnUvdGVzdF9zbHJ1LmMKKysrIGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X3Ns cnUvdGVzdF9zbHJ1LmMKQEAgLTIxMywxMSArMjEzLDYgQEAgdGVzdF9zbHJ1X3BhZ2VfcHJlY2Vk ZXNfbG9naWNhbGx5KGludDY0IHBhZ2UxLCBpbnQ2NCBwYWdlMikKIHN0YXRpYyB2b2lkCiB0ZXN0 X3NscnVfc2htZW1fc3RhcnR1cCh2b2lkKQogewotCS8qCi0JICogU2hvcnQgc2VnbWVudHMgbmFt ZXMgYXJlIHdlbGwgdGVzdGVkIGVsc2V3aGVyZSBzbyBpbiB0aGlzIHRlc3Qgd2UgYXJlCi0JICog Zm9jdXNpbmcgb24gbG9uZyBuYW1lcy4KLQkgKi8KLQljb25zdCBib29sCWxvbmdfc2VnbWVudF9u YW1lcyA9IHRydWU7CiAJY29uc3QgY2hhcglzbHJ1X2Rpcl9uYW1lW10gPSAicGdfdGVzdF9zbHJ1 IjsKIAlpbnQJCQl0ZXN0X3RyYW5jaGVfaWQgPSAtMTsKIAlpbnQJCQl0ZXN0X2J1ZmZlcl90cmFu Y2hlX2lkID0gLTE7CkBAIC0yNDcsOCArMjQyLDcgQEAgdGVzdF9zbHJ1X3NobWVtX3N0YXJ0dXAo dm9pZCkKIAlUZXN0U2xydUN0bC0+UGFnZVByZWNlZGVzID0gdGVzdF9zbHJ1X3BhZ2VfcHJlY2Vk ZXNfbG9naWNhbGx5OwogCVNpbXBsZUxydUluaXQoVGVzdFNscnVDdGwsICJUZXN0U0xSVSIsCiAJ CQkJICBOVU1fVEVTVF9CVUZGRVJTLCAwLCBzbHJ1X2Rpcl9uYW1lLAotCQkJCSAgdGVzdF9idWZm ZXJfdHJhbmNoZV9pZCwgdGVzdF90cmFuY2hlX2lkLCBTWU5DX0hBTkRMRVJfTk9ORSwKLQkJCQkg IGxvbmdfc2VnbWVudF9uYW1lcyk7CisJCQkJICB0ZXN0X2J1ZmZlcl90cmFuY2hlX2lkLCB0ZXN0 X3RyYW5jaGVfaWQsIFNZTkNfSEFORExFUl9OT05FKTsKIH0KIAogdm9pZAotLSAKMi40My4wCgo= --000000000000ca8ccf0647b9b03b--