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 1w2VjT-000M6f-2e for pgsql-hackers@arkaria.postgresql.org; Tue, 17 Mar 2026 14:49:20 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w2VjR-002Jd8-1l for pgsql-hackers@arkaria.postgresql.org; Tue, 17 Mar 2026 14:49:17 +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 1w2VjR-002Jcv-01 for pgsql-hackers@lists.postgresql.org; Tue, 17 Mar 2026 14:49:17 +0000 Received: from mail-ed1-x531.google.com ([2a00:1450:4864:20::531]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w2VjL-00000000cRT-1DTi for pgsql-hackers@lists.postgresql.org; Tue, 17 Mar 2026 14:49:16 +0000 Received: by mail-ed1-x531.google.com with SMTP id 4fb4d7f45d1cf-660dcafc85aso11291962a12.0 for ; Tue, 17 Mar 2026 07:49:11 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1773758950; cv=none; d=google.com; s=arc-20240605; b=O8wx4g8xQ39OVM39kOjxgudUiIGPUFj91HDzAJdA1995Pelar+D1lJYNiUHbh/6x+W aOHBF9iAQUTOBTb+bKlY3YBtRl/Wpymnj/Mgv9Fy11tjKkfoDDVBHJaQreJu7Pf6vxcw FhOFVKj8mnrk9ZxYpU49hx8xb6kbXAhBHOa9hVTxr5iQ89rKsVOYRdHLaNv9chIV/88i 7gEAWlCoN5QWMxX58RCXcOoGx1IZ6MWJ8SJIjmTLp0ZAfAzX7AZQRWVhG6boGi31gxqI 3+lSlBq8Jhn2p4idrCCjZ4L4Py691tm0+A6onvqIRQQeSWyvB69ktmE0lV/2rWFfRt1N Yajg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:dkim-signature; bh=ACYDAHk6yv4yD6D0KtorGMP56vc7nU5Zw8kNBNc9mVA=; fh=za9YTxpR/bXaLcQk+ELsR7tsns5XPU52e4R8Y99jRIY=; b=de5N4inj5hVSF+N8vcGqI/9KM4zGncJP/RDzh/S3ExaPkJgC4AE0pqj6uMEBKOuohN dpNG/o3vIu2mffBZnKdRu2iKnxf1YyfpmkosaHB3YT3C2eo+eNrGUBkGaa5wgcD5m29L m4Jt8OB3Zn70bMv2p/ulkOUW/24zuWwXEaa8+oMG2IlOONOjNyUEi2oaHu9fgeNuMUGd 80AVXzCcU+3jbdLyGGLu5D+gpeUPkNrvJmCfDKsZf0HAnPut0LWgHt+dX1KilD5RsFJg Jl/nPhBmHPXC9EEHCsUjwYTEht5rQOfBUHmXnhvV2joE1Lu5XuckX4r9XqbClv3JMYjq JOpg==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773758950; x=1774363750; 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=ACYDAHk6yv4yD6D0KtorGMP56vc7nU5Zw8kNBNc9mVA=; b=HgZAIMoqh8+WUI3fHBPFGzmX61VXqfO+TbxxS0akMLVTzn+148dbKko54MWi43TcYy CIXWfTpYM01h9rIybXFh6F35ROyiOHrcPqSI8QHYNgyFGdeMV6cvLTsDKFxLa4YKaeE4 Tv+BMXctuBFjSDAS7KHUBeyw9sSUrf+X205Dm+uYFCVq13Nkf9+iTzWLhRyxZfMC64wd caqzJOAsqVTdhArMssVqmYnCtculjhc+X6SqqeCPqcObpOG/NfW7PNd2bNQYcRAPITgl g2K19hPl2c5L7JJ0nN3tks46AzvnbppsdjoqyW2Egg6kyk2Zy/WPU7NrqBhnuMfnrnHQ gPRA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773758950; x=1774363750; 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=ACYDAHk6yv4yD6D0KtorGMP56vc7nU5Zw8kNBNc9mVA=; b=eyk0a9KYFFIC6/Cjj4+5ivS2nnk8NE8XUQvYsCjL2F20nzn3+BZ2SFWM4dKx90pKbk 4LaZPlyDG+nU6ABvHGFDu/9HQVwv5KXKdvr5+I931mN7SaWKtVtLO6ZkLuaw2dFBbgWT 70Go1yHxR4v0/z1w/hd6T18ogYUaurAskkuskYu6YwqP8CJ0F7aAFtbgCQcG4vq+ji2o YdHOMnVHojJE/oY0kgTg4wRZhvs99yQ9XDJsVu7fvNCcdAXiFdLDeUexIal6S/3hKl8F RFOTK80G9eZ+G6bZYf+WHv0p0rgTzhIIhp9JZ5bXXogJ4XYPHlo3WQC1Aj4omGSrl5+v vLgg== X-Forwarded-Encrypted: i=1; AJvYcCVfyjH8vgHnvhbGzslR7+PGZK1TBxhL/oqQh+au2zWoJtypv6H5NlFka7/DIdXvBEuPoj6+TAiiPYdKhNQX@lists.postgresql.org X-Gm-Message-State: AOJu0Yz+IhwKkx+eQhw4BNDKB1Dtvg+yenyjnXbzPdMB7vzfTzBUDf9t wj4qj15OhCOyv7jhUP9F/VIeGspDIZdKTSLITPmKD7SwfbjnxrBx9UWfajKddR5AReLRWQ1Co3Q k1iplsdgsEwQErvNLV7ZrKqFNbs3rgCM= X-Gm-Gg: ATEYQzwbIGhSGg5tPzC90dD6YPO1iXw57HaaVDV2JbniXQ8yjxSMfGsj/7SBDlpxfRN AlPXFOmZEddQc86MZj6GcQPaz6g8OZOkkpp2fhboEz/vaVP5l+KNNhKxozy7QI0aby72BOw/P3H F4KbUdLWVcQispLQ9eAlRDF3g0G0uMEIYtm7mDi5Cvhruhw7Iwl21/YtuS2ol06S1/0IFQSTm7R 7qGDMukUlCTaD0pF/FzCBSA9PtVVxXpba7OpW2q4Twr7yGUdVBZSIe9juYAN8Q59uDJr/g54sr/ y1lfVgJVsejx6mslsZnaGwC3I3dX6xM10Rw54UmqVCmFqgKRnsXgJt0zJJ00CwS3SlEN2P9T4ID x98ekpaRo X-Received: by 2002:a05:6402:274b:b0:64b:5562:c8f4 with SMTP id 4fb4d7f45d1cf-663ba9b7836mr9951339a12.7.1773758950073; Tue, 17 Mar 2026 07:49:10 -0700 (PDT) MIME-Version: 1.0 References: <6BC5DBAB-6084-4BB8-8450-52E9648AB021@gmail.com> <7F5BCD7A-764D-4D8D-8E27-6F2CAAEA1CEE@gmail.com> <4379FDA3-9446-4E2C-9C15-32EFE8D4F31B@yandex-team.ru> <7ib3sa55sapwjlaz4sijbiq7iezna27kjvvvar4dpgkmadml6t@gfpkkwmdnepx> <81DAFACF-7D55-4A84-ACB0-0425D1669DB4@gmail.com> In-Reply-To: From: Melanie Plageman Date: Tue, 17 Mar 2026 10:48:55 -0400 X-Gm-Features: AaiRm51RekfrZhBfoz2mzjEfD2D_kEAKYZ7sfJWBBTqZKfCk66DiM4wz_fstXns Message-ID: Subject: Re: eliminate xl_heap_visible to reduce WAL (and eventually set VM on-access) To: Kirill Reshke Cc: Chao Li , Andres Freund , Andrey Borodin , Xuneng Zhou , Robert Haas , PostgreSQL Hackers , Heikki Linnakangas Content-Type: multipart/mixed; boundary="0000000000002365dc064d39709f" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000002365dc064d39709f Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, Mar 17, 2026 at 5:05=E2=80=AFAM Kirill Reshke wrote: > > > From 788860ded375fcf744201347b9dcbf496070bfb5 Mon Sep 17 00:00:00 2001 > > From: Melanie Plageman > > Date: Wed, 25 Feb 2026 16:48:19 -0500 > > Subject: [PATCH v39 02/12] Add pruning fast path for all-visible and > all-frozen pages > > For the record, does this work with DISABLE_PAGE_SKIPPING? I think we > don't want the server to "fast-path" in case this option is set by > the user... Hmm. This is a good point. The docs for DISABLE_PAGE_SKIPPING say it is about fixing visibility map corruption and the fast path does detect and fix one type of visibility map corruption. It does not investigate for dead line pointers, though. I suppose DISABLE_PAGE_SKIPPING would want to also do that kind of VM corruption detection. Thanks for thinking of that. Attached v40 adds an option to disable the fast path. - Melanie --0000000000002365dc064d39709f Content-Type: text/x-patch; charset="US-ASCII"; name="v40-0001-Fix-visibility-map-corruption-in-more-cases.patch" Content-Disposition: attachment; filename="v40-0001-Fix-visibility-map-corruption-in-more-cases.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmupq5ud0 RnJvbSBiMDIwMTFmNTRiYzJkNzlhMmFjOWJlMTk5YWE2ZDA0OTVlY2FhOTU4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDI1IEZlYiAyMDI2IDE2OjIzOjA5IC0wNTAwClN1YmplY3Q6IFtQ QVRDSCB2NDAgMDEvMTJdIEZpeCB2aXNpYmlsaXR5IG1hcCBjb3JydXB0aW9uIGluIG1vcmUgY2Fz ZXMKCk1vdmUgVk0gY29ycnVwdGlvbiBkZXRlY3Rpb24gYW5kIHJlcGFpciBpbnRvIHBydW5pbmcu IFRoaXMgYWxsb3dzIFZNCnJlcGFpciBkdXJpbmcgb24tYWNjZXNzIHBydW5pbmcsIG5vdCBvbmx5 IGR1cmluZyB2YWN1dW0uCgpBbHNvLCBleHBhbmQgY29ycnVwdGlvbiBkZXRlY3Rpb24gdG8gY292 ZXIgcGFnZXMgbWFya2VkIGFsbC12aXNpYmxlIHRoYXQKY29udGFpbiBkZWFkIHR1cGxlcyBhbmQg dHVwbGVzIGluc2VydGVkIG9yIHVwZGF0ZWQgYnkgaW4tcHJvZ3Jlc3MKdHJhbnNhY3Rpb25zLCBy YXRoZXIgdGhhbiBvbmx5IGFsbC12aXNpYmxlIHBhZ2VzIHdpdGggTFBfREVBRCBpdGVtcy4KClBp bm5pbmcgdGhlIGNvcnJlY3QgVk0gcGFnZSBiZWZvcmUgb24tYWNjZXNzIHBydW5pbmcgaXMgY2hl YXAgd2hlbgpjb21wYXJlZCB0byB0aGUgY29zdCBvZiBhY3R1YWxseSBwcnVuaW5nLiBUaGUgdm1i dWZmZXIgaXMgc2F2ZWQgaW4gdGhlCnNjYW4gZGVzY3JpcHRvciwgc28gYSBxdWVyeSBzaG91bGQg b25seSBuZWVkIHRvIHBpbiBlYWNoIFZNIHBhZ2Ugb25jZQphbmQgYSBzaW5nbGUgVk0gcGFnZSBj b3ZlcnMgYSBsYXJnZSBudW1iZXIgb2YgaGVhcCBwYWdlcy4KCkF1dGhvcjogTWVsYW5pZSBQbGFn ZW1hbiA8bWVsYW5pZXBsYWdlbWFuQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENoYW8gTGkgPGxp LmV2YW4uY2hhb0BnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBLaXJpbGwgUmVzaGtlIDxyZXNoa2Vr aXJpbGxAZ21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL2JxYzRraDVt aWRmbjQ0Z25qaXFlejNianF2NHpvZ3lkZ3V2ZG40NDZyaXc0NWpjZjN5JTQwNGV6NjZpbDdlYnZr Ci0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgIHwgMTc2ICsrKysrKysr KysrKysrKysrKysrKysrKy0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5j IHwgIDg5ICstLS0tLS0tLS0tLS0tCiBzcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmggICAgICAg ICAgfCAgMTIgKysKIDMgZmlsZXMgY2hhbmdlZCwgMTc1IGluc2VydGlvbnMoKyksIDEwMiBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAu YyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCmluZGV4IDhkOWYwNjk0MjA2 Li41MmNhZmIyM2M2YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVo ZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKQEAgLTE5LDcg KzE5LDcgQEAKICNpbmNsdWRlICJhY2Nlc3MvaHR1cF9kZXRhaWxzLmgiCiAjaW5jbHVkZSAiYWNj ZXNzL211bHRpeGFjdC5oIgogI2luY2x1ZGUgImFjY2Vzcy90cmFuc2FtLmgiCi0jaW5jbHVkZSAi YWNjZXNzL3Zpc2liaWxpdHltYXBkZWZzLmgiCisjaW5jbHVkZSAiYWNjZXNzL3Zpc2liaWxpdHlt YXAuaCIKICNpbmNsdWRlICJhY2Nlc3MveGxvZy5oIgogI2luY2x1ZGUgImFjY2Vzcy94bG9naW5z ZXJ0LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdmFjdXVtLmgiCkBAIC0xMTQsNiArMTE0LDIxIEBA IHR5cGVkZWYgc3RydWN0CiAJICovCiAJSGVhcFBhZ2VGcmVlemUgcGFnZWZyejsKIAorCS8qLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorCSAq IFdvcmtpbmcgc3RhdGUgZm9yIHZpc2liaWxpdHkgbWFwIHByb2Nlc3NpbmcKKwkgKi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKwkgKi8KKwor CS8qCisJICogQ2FsbGVyIG11c3QgcHJvdmlkZSBhIHBpbm5lZCB2bWJ1ZmZlciBjb3JyZXNwb25k aW5nIHRvIHRoZSBoZWFwIGJsb2NrCisJICogcGFzc2VkIHRvIGhlYXBfcGFnZV9wcnVuZV9hbmRf ZnJlZXplKCkuIFdlIHdpbGwgZml4IGFueSBjb3JydXB0aW9uCisJICogZm91bmQgaW4gdGhlIFZN LgorCSAqLworCUJ1ZmZlcgkJdm1idWZmZXI7CisKKwkvKiBCaXRzIGluIHRoZSB2bWJ1ZmZlciBm b3IgdGhpcyBoZWFwIHBhZ2UgKi8KKwl1aW50OAkJdm1iaXRzOworCiAJLyotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAJICogSW5mb3JtYXRp b24gYWJvdXQgd2hhdCB3YXMgZG9uZQogCSAqCkBAIC0xNjgsNiArMTgzLDcgQEAgc3RhdGljIHZv aWQgcHJ1bmVfZnJlZXplX3NldHVwKFBydW5lRnJlZXplUGFyYW1zICpwYXJhbXMsCiAJCQkJCQkJ ICAgTXVsdGlYYWN0SWQgKm5ld19yZWxtaW5fbXhpZCwKIAkJCQkJCQkgICBQcnVuZUZyZWV6ZVJl c3VsdCAqcHJlc3VsdCwKIAkJCQkJCQkgICBQcnVuZVN0YXRlICpwcnN0YXRlKTsKK3N0YXRpYyB2 b2lkIGhlYXBfZml4X3ZtX2NvcnJ1cHRpb24oUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgT2Zmc2V0TnVt YmVyIG9mZm51bSk7CiBzdGF0aWMgdm9pZCBwcnVuZV9mcmVlemVfcGxhbihQcnVuZVN0YXRlICpw cnN0YXRlLAogCQkJCQkJCSAgT2Zmc2V0TnVtYmVyICpvZmZfbG9jKTsKIHN0YXRpYyBIVFNWX1Jl c3VsdCBoZWFwX3BydW5lX3NhdGlzZmllc192YWN1dW0oUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwKQEAg LTE3NSw3ICsxOTEsOCBAQCBzdGF0aWMgSFRTVl9SZXN1bHQgaGVhcF9wcnVuZV9zYXRpc2ZpZXNf dmFjdXVtKFBydW5lU3RhdGUgKnByc3RhdGUsCiBzdGF0aWMgaW5saW5lIEhUU1ZfUmVzdWx0IGh0 c3ZfZ2V0X3ZhbGlkX3N0YXR1cyhpbnQgc3RhdHVzKTsKIHN0YXRpYyB2b2lkIGhlYXBfcHJ1bmVf Y2hhaW4oT2Zmc2V0TnVtYmVyIG1heG9mZiwKIAkJCQkJCQkgT2Zmc2V0TnVtYmVyIHJvb3RvZmZu dW0sIFBydW5lU3RhdGUgKnByc3RhdGUpOwotc3RhdGljIHZvaWQgaGVhcF9wcnVuZV9yZWNvcmRf cHJ1bmFibGUoUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgVHJhbnNhY3Rpb25JZCB4aWQpOworc3RhdGlj IHZvaWQgaGVhcF9wcnVuZV9yZWNvcmRfcHJ1bmFibGUoUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgVHJh bnNhY3Rpb25JZCB4aWQsCisJCQkJCQkJCQkgICBPZmZzZXROdW1iZXIgb2ZmbnVtKTsKIHN0YXRp YyB2b2lkIGhlYXBfcHJ1bmVfcmVjb3JkX3JlZGlyZWN0KFBydW5lU3RhdGUgKnByc3RhdGUsCiAJ CQkJCQkJCQkgICBPZmZzZXROdW1iZXIgb2ZmbnVtLCBPZmZzZXROdW1iZXIgcmRvZmZudW0sCiAJ CQkJCQkJCQkgICBib29sIHdhc19ub3JtYWwpOwpAQCAtMjA5LDggKzIyNiw5IEBAIHN0YXRpYyBi b29sIGhlYXBfcGFnZV93aWxsX2ZyZWV6ZShib29sIGRpZF90dXBsZV9oaW50X2ZwaSwgYm9vbCBk b19wcnVuZSwgYm9vbCBkCiAgKiBDYWxsZXIgbXVzdCBoYXZlIHBpbiBvbiB0aGUgYnVmZmVyLCBh bmQgbXVzdCAqbm90KiBoYXZlIGEgbG9jayBvbiBpdC4KICAqCiAgKiBUaGlzIGZ1bmN0aW9uIG1h eSBwaW4gKnZtYnVmZmVyLiBJdCdzIHBhc3NlZCBieSByZWZlcmVuY2Ugc28gdGhlIGNhbGxlciBj YW4KLSAqIHJldXNlIHRoZSBwaW4gYWNyb3NzIGNhbGxzLCBhdm9pZGluZyByZXBlYXRlZCBwaW4v dW5waW4gY3ljbGVzLiBDYWxsZXIgaXMKLSAqIHJlc3BvbnNpYmxlIGZvciB1bnBpbm5pbmcgaXQu CisgKiByZXVzZSB0aGUgcGluIGFjcm9zcyBjYWxscywgYXZvaWRpbmcgcmVwZWF0ZWQgcGluL3Vu cGluIGN5Y2xlcy4gSWYgd2UgZmluZAorICogVk0gY29ycnVwdGlvbiBkdXJpbmcgcHJ1bmluZywg d2Ugd2lsbCBmaXggaXQuIENhbGxlciBpcyByZXNwb25zaWJsZSBmb3IKKyAqIHVucGlubmluZyAq dm1idWZmZXIuCiAgKi8KIHZvaWQKIGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVsYXRp b24sIEJ1ZmZlciBidWZmZXIsIEJ1ZmZlciAqdm1idWZmZXIpCkBAIC0yNzcsNiArMjk1LDE2IEBA IGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsIEJ1 ZmZlciAqdm1idWZmZXIpCiAJCXsKIAkJCU9mZnNldE51bWJlciBkdW1teV9vZmZfbG9jOwogCQkJ UHJ1bmVGcmVlemVSZXN1bHQgcHJlc3VsdDsKKwkJCVBydW5lRnJlZXplUGFyYW1zIHBhcmFtczsK KworCQkJdmlzaWJpbGl0eW1hcF9waW4ocmVsYXRpb24sIEJ1ZmZlckdldEJsb2NrTnVtYmVyKGJ1 ZmZlciksIHZtYnVmZmVyKTsKKworCQkJcGFyYW1zLnJlbGF0aW9uID0gcmVsYXRpb247CisJCQlw YXJhbXMuYnVmZmVyID0gYnVmZmVyOworCQkJcGFyYW1zLnZtYnVmZmVyID0gKnZtYnVmZmVyOwor CQkJcGFyYW1zLnJlYXNvbiA9IFBSVU5FX09OX0FDQ0VTUzsKKwkJCXBhcmFtcy52aXN0ZXN0ID0g dmlzdGVzdDsKKwkJCXBhcmFtcy5jdXRvZmZzID0gTlVMTDsKIAogCQkJLyoKIAkJCSAqIFdlIGRv bid0IHBhc3MgdGhlIEhFQVBfUEFHRV9QUlVORV9NQVJLX1VOVVNFRF9OT1cgb3B0aW9uCkBAIC0y ODQsMTQgKzMxMiw3IEBAIGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVsYXRpb24sIEJ1 ZmZlciBidWZmZXIsIEJ1ZmZlciAqdm1idWZmZXIpCiAJCQkgKiBjYW5ub3Qgc2FmZWx5IGRldGVy bWluZSB0aGF0IGR1cmluZyBvbi1hY2Nlc3MgcHJ1bmluZyB3aXRoIHRoZQogCQkJICogY3VycmVu dCBpbXBsZW1lbnRhdGlvbi4KIAkJCSAqLwotCQkJUHJ1bmVGcmVlemVQYXJhbXMgcGFyYW1zID0g ewotCQkJCS5yZWxhdGlvbiA9IHJlbGF0aW9uLAotCQkJCS5idWZmZXIgPSBidWZmZXIsCi0JCQkJ LnJlYXNvbiA9IFBSVU5FX09OX0FDQ0VTUywKLQkJCQkub3B0aW9ucyA9IDAsCi0JCQkJLnZpc3Rl c3QgPSB2aXN0ZXN0LAotCQkJCS5jdXRvZmZzID0gTlVMTCwKLQkJCX07CisJCQlwYXJhbXMub3B0 aW9ucyA9IDA7CiAKIAkJCWhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKCZwYXJhbXMsICZwcmVz dWx0LCAmZHVtbXlfb2ZmX2xvYywKIAkJCQkJCQkJCSAgIE5VTEwsIE5VTEwpOwpAQCAtMzU0LDYg KzM3NSwxMiBAQCBwcnVuZV9mcmVlemVfc2V0dXAoUHJ1bmVGcmVlemVQYXJhbXMgKnBhcmFtcywK IAlwcnN0YXRlLT5idWZmZXIgPSBwYXJhbXMtPmJ1ZmZlcjsKIAlwcnN0YXRlLT5wYWdlID0gQnVm ZmVyR2V0UGFnZShwYXJhbXMtPmJ1ZmZlcik7CiAKKwlBc3NlcnQoQnVmZmVySXNWYWxpZChwYXJh bXMtPnZtYnVmZmVyKSk7CisJcHJzdGF0ZS0+dm1idWZmZXIgPSBwYXJhbXMtPnZtYnVmZmVyOwor CXByc3RhdGUtPnZtYml0cyA9IHZpc2liaWxpdHltYXBfZ2V0X3N0YXR1cyhwcnN0YXRlLT5yZWxh dGlvbiwKKwkJCQkJCQkJCQkJICAgcHJzdGF0ZS0+YmxvY2ssCisJCQkJCQkJCQkJCSAgICZwcnN0 YXRlLT52bWJ1ZmZlcik7CisKIAkvKgogCSAqIE91ciBzdHJhdGVneSBpcyB0byBzY2FuIHRoZSBw YWdlIGFuZCBtYWtlIGxpc3RzIG9mIGl0ZW1zIHRvIGNoYW5nZSwKIAkgKiB0aGVuIGFwcGx5IHRo ZSBjaGFuZ2VzIHdpdGhpbiBhIGNyaXRpY2FsIHNlY3Rpb24uICBUaGlzIGtlZXBzIGFzIG11Y2gK QEAgLTc3MCw2ICs3OTcsOTAgQEAgaGVhcF9wYWdlX3dpbGxfZnJlZXplKGJvb2wgZGlkX3R1cGxl X2hpbnRfZnBpLAogCXJldHVybiBkb19mcmVlemU7CiB9CiAKKy8qCisgKiBIZWxwZXIgdG8gZml4 IHZpc2liaWxpdHktcmVsYXRlZCBjb3JydXB0aW9uIG9uIGEgaGVhcCBwYWdlIGFuZCBpdHMKKyAq IGNvcnJlc3BvbmRpbmcgVk0gcGFnZS4gQW4gYWxsLXZpc2libGUgcGFnZSBjYW5ub3QgaGF2ZSBk ZWFkIGl0ZW1zIG5vciBjYW4KKyAqIGl0IGhhdmUgdHVwbGVzIHRoYXQgYXJlIG5vdCB2aXNpYmxl IHRvIGFsbCBydW5uaW5nIHRyYW5zYWN0aW9ucy4gSXQgY2xlYXJzCisgKiB0aGUgVk0gY29ycnVw dGlvbiBhcyB3ZWxsIGFzIHJlc2V0dGluZyB0aGUgdm1iaXRzIHVzZWQgZHVyaW5nIHBydW5pbmcu CisgKgorICogVGhpcyBmdW5jdGlvbiBtdXN0IGJlIGNhbGxlZCB3aGlsZSBob2xkaW5nIGFuIGV4 Y2x1c2l2ZSBsb2NrIG9uIHRoZSBoZWFwCisgKiBidWZmZXIsIGFuZCBhbnkgZGVhZCBpdGVtcyBt dXN0IGhhdmUgYmVlbiBkaXNjb3ZlcmVkIHVuZGVyIHRoYXQgc2FtZSBsb2NrLgorICogQWx0aG91 Z2ggd2UgZG8gbm90IGhvbGQgYSBsb2NrIG9uIHRoZSBWTSBidWZmZXIsIGl0IGlzIHBpbm5lZCwg YW5kIHRoZSBoZWFwCisgKiBidWZmZXIgaXMgZXhjbHVzaXZlbHkgbG9ja2VkLCBlbnN1cmluZyB0 aGF0IG5vIG90aGVyIGJhY2tlbmQgY2FuIHVwZGF0ZSB0aGUKKyAqIFZNIGJpdHMgY29ycmVzcG9u ZGluZyB0byB0aGlzIGhlYXAgcGFnZS4KKyAqCisgKiBUaGlzIGZ1bmN0aW9uIG1ha2VzIGNoYW5n ZXMgdG8gdGhlIFZNIGFuZCwgcG90ZW50aWFsbHksIHRoZSBoZWFwIHBhZ2UsIGJ1dAorICogaXQg ZG9lcyBub3QgbmVlZCB0byBiZSBkb25lIGluIGEgY3JpdGljYWwgc2VjdGlvbi4KKyAqLworc3Rh dGljIHZvaWQKK2hlYXBfZml4X3ZtX2NvcnJ1cHRpb24oUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgT2Zm c2V0TnVtYmVyIG9mZm51bSkKK3sKKwljb25zdCBjaGFyICpyZWxuYW1lID0gUmVsYXRpb25HZXRS ZWxhdGlvbk5hbWUocHJzdGF0ZS0+cmVsYXRpb24pOworCisJQXNzZXJ0KEJ1ZmZlcklzTG9ja2Vk QnlNZUluTW9kZShwcnN0YXRlLT5idWZmZXIsIEJVRkZFUl9MT0NLX0VYQ0xVU0lWRSkpOworCisJ aWYgKFBhZ2VJc0FsbFZpc2libGUocHJzdGF0ZS0+cGFnZSkpCisJeworCQkvKgorCQkgKiBJdCdz IHBvc3NpYmxlIGZvciB0aGUgdmFsdWUgcmV0dXJuZWQgYnkKKwkJICogR2V0T2xkZXN0Tm9uUmVt b3ZhYmxlVHJhbnNhY3Rpb25JZCgpIHRvIG1vdmUgYmFja3dhcmRzLCBzbyBpdCdzIG5vdAorCQkg KiB3cm9uZyBmb3IgdXMgdG8gc2VlIHR1cGxlcyB0aGF0IGFwcGVhciB0byBub3QgYmUgdmlzaWJs ZSB0bworCQkgKiBldmVyeW9uZSB5ZXQsIHdoaWxlIFBEX0FMTF9WSVNJQkxFIGlzIGFscmVhZHkg c2V0LiBUaGUgcmVhbCBzYWZlCisJCSAqIHhtaW4gdmFsdWUgbmV2ZXIgbW92ZXMgYmFja3dhcmRz LCBidXQKKwkJICogR2V0T2xkZXN0Tm9uUmVtb3ZhYmxlVHJhbnNhY3Rpb25JZCgpIGlzIGNvbnNl cnZhdGl2ZSBhbmQgc29tZXRpbWVzCisJCSAqIHJldHVybnMgYSB2YWx1ZSB0aGF0J3MgdW5uZWNl c3NhcmlseSBzbWFsbCwgc28gaWYgd2Ugc2VlIHRoYXQKKwkJICogY29udHJhZGljdGlvbiBpdCBq dXN0IG1lYW5zIHRoYXQgdGhlIHR1cGxlcyB0aGF0IHdlIHRoaW5rIGFyZSBub3QKKwkJICogdmlz aWJsZSB0byBldmVyeW9uZSB5ZXQgYWN0dWFsbHkgYXJlLCBhbmQgdGhlIFBEX0FMTF9WSVNJQkxF IGZsYWcKKwkJICogaXMgY29ycmVjdC4KKwkJICoKKwkJICogSG93ZXZlciwgdGhlcmUgc2hvdWxk IG5ldmVyIGJlIExQX0RFQUQgaXRlbXMsIGRlYWQgdHVwbGUgdmVyc2lvbnMsCisJCSAqIG9yIHR1 cGxlcyBpbnNlcnRlZCBieSBhbiBpbi1wcm9ncmVzcyB0cmFuc2FjdGlvbiBvbiBhIHBhZ2Ugd2l0 aAorCQkgKiBQRF9BTExfVklTSUJMRSBzZXQuCisJCSAqLworCQlpZiAocHJzdGF0ZS0+bHBkZWFk X2l0ZW1zID4gMCkKKwkJeworCQkJZXJlcG9ydChXQVJOSU5HLAorCQkJCQkoZXJyY29kZShFUlJD T0RFX0RBVEFfQ09SUlVQVEVEKSwKKwkJCQkJIGVycm1zZygiZGVhZCBsaW5lIHBvaW50ZXIgZm91 bmQgb24gcGFnZSBtYXJrZWQgYWxsLXZpc2libGUiKSwKKwkJCQkJIGVycmNvbnRleHQoInJlbGF0 aW9uIFwiJXNcIiwgcGFnZSAldSwgdHVwbGUgJXUiLAorCQkJCQkJCQlyZWxuYW1lLCBwcnN0YXRl LT5ibG9jaywgb2ZmbnVtKSkpOworCQl9CisJCWVsc2UKKwkJeworCQkJZXJlcG9ydChXQVJOSU5H LAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFfQ09SUlVQVEVEKSwKKwkJCQkJIGVycm1zZygi dHVwbGUgbm90IHZpc2libGUgdG8gYWxsIHRyYW5zYWN0aW9ucyBmb3VuZCBvbiBwYWdlIG1hcmtl ZCBhbGwtdmlzaWJsZSIpLAorCQkJCQkgZXJyY29udGV4dCgicmVsYXRpb24gXCIlc1wiLCBwYWdl ICV1LCB0dXBsZSAldSIsCisJCQkJCQkJCXJlbG5hbWUsIHByc3RhdGUtPmJsb2NrLCBvZmZudW0p KSk7CisJCX0KKworCQkvKgorCQkgKiBNYXJrIHRoZSBidWZmZXIgZGlydHkgbm93IGluIGNhc2Ug d2UgbWFrZSBubyBmdXJ0aGVyIGNoYW5nZXMgYW5kCisJCSAqIHRoZXJlZm9yZSB3b3VsZCBub3Qg bWFyayBpdCBkaXJ0eSBsYXRlci4KKwkJICovCisJCVBhZ2VDbGVhckFsbFZpc2libGUocHJzdGF0 ZS0+cGFnZSk7CisJCU1hcmtCdWZmZXJEaXJ0eUhpbnQocHJzdGF0ZS0+YnVmZmVyLCB0cnVlKTsK Kwl9CisJZWxzZSBpZiAocHJzdGF0ZS0+dm1iaXRzICYgVklTSUJJTElUWU1BUF9WQUxJRF9CSVRT KQorCXsKKwkJLyoKKwkJICogQXMgb2YgUG9zdGdyZVNRTCA5LjIsIHRoZSB2aXNpYmlsaXR5IG1h cCBiaXQgc2hvdWxkIG5ldmVyIGJlIHNldCBpZgorCQkgKiB0aGUgcGFnZS1sZXZlbCBiaXQgaXMg Y2xlYXIuIEhvd2V2ZXIsIGZvciB2YWN1dW0sIGl0J3MgcG9zc2libGUKKwkJICogdGhhdCB0aGUg Yml0IGdvdCBjbGVhcmVkIGFmdGVyIGhlYXBfdmFjX3NjYW5fbmV4dF9ibG9jaygpIHdhcworCQkg KiBjYWxsZWQsIHNvIHdlIG11c3QgcmVjaGVjayBub3cgdGhhdCB3ZSBoYXZlIHRoZSBidWZmZXIg bG9jayBiZWZvcmUKKwkJICogY29uY2x1ZGluZyB0aGF0IHRoZSBWTSBpcyBjb3JydXB0LgorCQkg Ki8KKwkJZXJlcG9ydChXQVJOSU5HLAorCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQV9DT1JSVVBU RUQpLAorCQkJCSBlcnJtc2coInBhZ2UgaXMgbm90IG1hcmtlZCBhbGwtdmlzaWJsZSBidXQgdmlz aWJpbGl0eSBtYXAgYml0IGlzIHNldCIpLAorCQkJCSBlcnJjb250ZXh0KCJyZWxhdGlvbiBcIiVz XCIsIHBhZ2UgJXUiLAorCQkJCQkJCXJlbG5hbWUsIHByc3RhdGUtPmJsb2NrKSkpOworCX0KKwor CXZpc2liaWxpdHltYXBfY2xlYXIocHJzdGF0ZS0+cmVsYXRpb24sIHByc3RhdGUtPmJsb2NrLCBw cnN0YXRlLT52bWJ1ZmZlciwKKwkJCQkJCVZJU0lCSUxJVFlNQVBfVkFMSURfQklUUyk7CisJcHJz dGF0ZS0+dm1iaXRzID0gMDsKK30KIAogLyoKICAqIFBydW5lIGFuZCByZXBhaXIgZnJhZ21lbnRh dGlvbiBhbmQgcG90ZW50aWFsbHkgZnJlZXplIHR1cGxlcyBvbiB0aGUKQEAgLTgzMCw2ICs5NDEs MTAgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUHJ1bmVGcmVlemVQYXJhbXMgKnBhcmFt cywKIAkJCQkJICAgbmV3X3JlbGZyb3plbl94aWQsIG5ld19yZWxtaW5fbXhpZCwKIAkJCQkJICAg cHJlc3VsdCwgJnByc3RhdGUpOwogCisJaWYgKChwcnN0YXRlLnZtYml0cyAmIFZJU0lCSUxJVFlN QVBfVkFMSURfQklUUykgJiYKKwkJIVBhZ2VJc0FsbFZpc2libGUocHJzdGF0ZS5wYWdlKSkKKwkJ aGVhcF9maXhfdm1fY29ycnVwdGlvbigmcHJzdGF0ZSwgSW52YWxpZE9mZnNldE51bWJlcik7CisK IAkvKgogCSAqIEV4YW1pbmUgYWxsIGxpbmUgcG9pbnRlcnMgYW5kIHR1cGxlIHZpc2liaWxpdHkg aW5mb3JtYXRpb24gdG8gZGV0ZXJtaW5lCiAJICogd2hpY2ggbGluZSBwb2ludGVycyBzaG91bGQg Y2hhbmdlIHN0YXRlIGFuZCB3aGljaCB0dXBsZXMgbWF5IGJlIGZyb3plbi4KQEAgLTk3Myw2ICsx MDg4LDcgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUHJ1bmVGcmVlemVQYXJhbXMgKnBh cmFtcywKIAlwcmVzdWx0LT5zZXRfYWxsX3Zpc2libGUgPSBwcnN0YXRlLnNldF9hbGxfdmlzaWJs ZTsKIAlwcmVzdWx0LT5zZXRfYWxsX2Zyb3plbiA9IHByc3RhdGUuc2V0X2FsbF9mcm96ZW47CiAJ cHJlc3VsdC0+aGFzdHVwID0gcHJzdGF0ZS5oYXN0dXA7CisJcHJlc3VsdC0+dm1iaXRzID0gcHJz dGF0ZS52bWJpdHM7CiAKIAkvKgogCSAqIEZvciBjYWxsZXJzIHBsYW5uaW5nIHRvIHVwZGF0ZSB0 aGUgdmlzaWJpbGl0eSBtYXAsIHRoZSBjb25mbGljdCBob3Jpem9uCkBAIC0xMjk1LDcgKzE0MTEs OCBAQCBwcm9jZXNzX2NoYWluOgogCiAvKiBSZWNvcmQgbG93ZXN0IHNvb24tcHJ1bmFibGUgWElE ICovCiBzdGF0aWMgdm9pZAotaGVhcF9wcnVuZV9yZWNvcmRfcHJ1bmFibGUoUHJ1bmVTdGF0ZSAq cHJzdGF0ZSwgVHJhbnNhY3Rpb25JZCB4aWQpCitoZWFwX3BydW5lX3JlY29yZF9wcnVuYWJsZShQ cnVuZVN0YXRlICpwcnN0YXRlLCBUcmFuc2FjdGlvbklkIHhpZCwKKwkJCQkJCSAgIE9mZnNldE51 bWJlciBvZmZudW0pCiB7CiAJLyoKIAkgKiBUaGlzIHNob3VsZCBleGFjdGx5IG1hdGNoIHRoZSBQ YWdlU2V0UHJ1bmFibGUgbWFjcm8uICBXZSBjYW4ndCBzdG9yZQpAQCAtMTMwNSw2ICsxNDIyLDEz IEBAIGhlYXBfcHJ1bmVfcmVjb3JkX3BydW5hYmxlKFBydW5lU3RhdGUgKnByc3RhdGUsIFRyYW5z YWN0aW9uSWQgeGlkKQogCWlmICghVHJhbnNhY3Rpb25JZElzVmFsaWQocHJzdGF0ZS0+bmV3X3By dW5lX3hpZCkgfHwKIAkJVHJhbnNhY3Rpb25JZFByZWNlZGVzKHhpZCwgcHJzdGF0ZS0+bmV3X3By dW5lX3hpZCkpCiAJCXByc3RhdGUtPm5ld19wcnVuZV94aWQgPSB4aWQ7CisKKwkvKgorCSAqIEl0 J3MgaW5jb3JyZWN0IGZvciBhIHBhZ2UgdG8gYmUgbWFya2VkIGFsbC12aXNpYmxlIGlmIGl0IGNv bnRhaW5zCisJICogcHJ1bmFibGUgaXRlbXMuCisJICovCisJaWYgKFBhZ2VJc0FsbFZpc2libGUo cHJzdGF0ZS0+cGFnZSkpCisJCWhlYXBfZml4X3ZtX2NvcnJ1cHRpb24ocHJzdGF0ZSwgb2ZmbnVt KTsKIH0KIAogLyogUmVjb3JkIGxpbmUgcG9pbnRlciB0byBiZSByZWRpcmVjdGVkICovCkBAIC0x Mzg4LDYgKzE1MTIsMTUgQEAgaGVhcF9wcnVuZV9yZWNvcmRfZGVhZF9vcl91bnVzZWQoUHJ1bmVT dGF0ZSAqcHJzdGF0ZSwgT2Zmc2V0TnVtYmVyIG9mZm51bSwKIAkJaGVhcF9wcnVuZV9yZWNvcmRf dW51c2VkKHByc3RhdGUsIG9mZm51bSwgd2FzX25vcm1hbCk7CiAJZWxzZQogCQloZWFwX3BydW5l X3JlY29yZF9kZWFkKHByc3RhdGUsIG9mZm51bSwgd2FzX25vcm1hbCk7CisKKwkvKgorCSAqIEl0 J3MgaW5jb3JyZWN0IGZvciB0aGUgcGFnZSB0byBiZSBzZXQgYWxsLXZpc2libGUgaWYgaXQgY29u dGFpbnMgZGVhZAorCSAqIGl0ZW1zLiBGaXggdGhhdCBvbiB0aGUgaGVhcCBwYWdlIGFuZCBjaGVj ayB0aGUgVk0gZm9yIGNvcnJ1cHRpb24gYXMKKwkgKiB3ZWxsLiBEbyB0aGF0IGhlcmUgcmF0aGVy IHRoYW4gaW4gaGVhcF9wcnVuZV9yZWNvcmRfZGVhZCgpIHNvIHdlIGFsc28KKwkgKiBjb3ZlciB0 dXBsZXMgdGhhdCBhcmUgZGlyZWN0bHkgbWFya2VkIExQX1VOVVNFRCB2aWEgbWFya191bnVzZWRf bm93LgorCSAqLworCWlmIChQYWdlSXNBbGxWaXNpYmxlKHByc3RhdGUtPnBhZ2UpKQorCQloZWFw X2ZpeF92bV9jb3JydXB0aW9uKHByc3RhdGUsIG9mZm51bSk7CiB9CiAKIC8qIFJlY29yZCBsaW5l IHBvaW50ZXIgdG8gYmUgbWFya2VkIHVudXNlZCAqLwpAQCAtMTUyNyw3ICsxNjYwLDggQEAgaGVh cF9wcnVuZV9yZWNvcmRfdW5jaGFuZ2VkX2xwX25vcm1hbChQcnVuZVN0YXRlICpwcnN0YXRlLCBP ZmZzZXROdW1iZXIgb2ZmbnVtKQogCQkJICogdGhhdCB0aGUgcGFnZSBpcyByZWNvbnNpZGVyZWQg Zm9yIHBydW5pbmcgaW4gZnV0dXJlLgogCQkJICovCiAJCQloZWFwX3BydW5lX3JlY29yZF9wcnVu YWJsZShwcnN0YXRlLAotCQkJCQkJCQkJICAgSGVhcFR1cGxlSGVhZGVyR2V0VXBkYXRlWGlkKGh0 dXApKTsKKwkJCQkJCQkJCSAgIEhlYXBUdXBsZUhlYWRlckdldFVwZGF0ZVhpZChodHVwKSwKKwkJ CQkJCQkJCSAgIG9mZm51bSk7CiAJCQlicmVhazsKIAogCQljYXNlIEhFQVBUVVBMRV9JTlNFUlRf SU5fUFJPR1JFU1M6CkBAIC0xNTQyLDYgKzE2NzYsMTAgQEAgaGVhcF9wcnVuZV9yZWNvcmRfdW5j aGFuZ2VkX2xwX25vcm1hbChQcnVuZVN0YXRlICpwcnN0YXRlLCBPZmZzZXROdW1iZXIgb2ZmbnVt KQogCQkJcHJzdGF0ZS0+c2V0X2FsbF92aXNpYmxlID0gZmFsc2U7CiAJCQlwcnN0YXRlLT5zZXRf YWxsX2Zyb3plbiA9IGZhbHNlOwogCisJCQkvKiBUaGUgcGFnZSBzaG91bGQgbm90IGJlIG1hcmtl ZCBhbGwtdmlzaWJsZSAqLworCQkJaWYgKFBhZ2VJc0FsbFZpc2libGUocGFnZSkpCisJCQkJaGVh cF9maXhfdm1fY29ycnVwdGlvbihwcnN0YXRlLCBvZmZudW0pOworCiAJCQkvKgogCQkJICogSWYg d2Ugd2FudGVkIHRvIG9wdGltaXplIGZvciBhYm9ydHMsIHdlIG1pZ2h0IGNvbnNpZGVyIG1hcmtp bmcKIAkJCSAqIHRoZSBwYWdlIHBydW5hYmxlIHdoZW4gd2Ugc2VlIElOU0VSVF9JTl9QUk9HUkVT Uy4gIEJ1dCB3ZQpAQCAtMTU2Niw3ICsxNzA0LDggQEAgaGVhcF9wcnVuZV9yZWNvcmRfdW5jaGFu Z2VkX2xwX25vcm1hbChQcnVuZVN0YXRlICpwcnN0YXRlLCBPZmZzZXROdW1iZXIgb2ZmbnVtKQog CQkJICogdGhlIHBhZ2UgaXMgcmVjb25zaWRlcmVkIGZvciBwcnVuaW5nIGluIGZ1dHVyZS4KIAkJ CSAqLwogCQkJaGVhcF9wcnVuZV9yZWNvcmRfcHJ1bmFibGUocHJzdGF0ZSwKLQkJCQkJCQkJCSAg IEhlYXBUdXBsZUhlYWRlckdldFVwZGF0ZVhpZChodHVwKSk7CisJCQkJCQkJCQkgICBIZWFwVHVw bGVIZWFkZXJHZXRVcGRhdGVYaWQoaHR1cCksCisJCQkJCQkJCQkgICBvZmZudW0pOwogCQkJYnJl YWs7CiAKIAkJZGVmYXVsdDoKQEAgLTE2MzIsNiArMTc3MSwxMyBAQCBoZWFwX3BydW5lX3JlY29y ZF91bmNoYW5nZWRfbHBfZGVhZChQcnVuZVN0YXRlICpwcnN0YXRlLCBPZmZzZXROdW1iZXIgb2Zm bnVtKQogCiAJLyogUmVjb3JkIHRoZSBkZWFkIG9mZnNldCBmb3IgdmFjdXVtICovCiAJcHJzdGF0 ZS0+ZGVhZG9mZnNldHNbcHJzdGF0ZS0+bHBkZWFkX2l0ZW1zKytdID0gb2ZmbnVtOworCisJLyoK KwkgKiBJdCdzIGluY29ycmVjdCBmb3IgYSBwYWdlIHRvIGJlIG1hcmtlZCBhbGwtdmlzaWJsZSBp ZiBpdCBjb250YWlucyBkZWFkCisJICogaXRlbXMuCisJICovCisJaWYgKFBhZ2VJc0FsbFZpc2li bGUocHJzdGF0ZS0+cGFnZSkpCisJCWhlYXBfZml4X3ZtX2NvcnJ1cHRpb24ocHJzdGF0ZSwgb2Zm bnVtKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1 bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwppbmRleCA4MmM1 YjI4ZTBhZC4uOTU3MzIyNjQ4Y2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3ZhY3V1bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMK QEAgLTQyNSwxMSArNDI1LDYgQEAgc3RhdGljIHZvaWQgZmluZF9uZXh0X3Vuc2tpcHBhYmxlX2Js b2NrKExWUmVsU3RhdGUgKnZhY3JlbCwgYm9vbCAqc2tpcHNhbGx2aXMpOwogc3RhdGljIGJvb2wg bGF6eV9zY2FuX25ld19vcl9lbXB0eShMVlJlbFN0YXRlICp2YWNyZWwsIEJ1ZmZlciBidWYsCiAJ CQkJCQkJCSAgIEJsb2NrTnVtYmVyIGJsa25vLCBQYWdlIHBhZ2UsCiAJCQkJCQkJCSAgIGJvb2wg c2hhcmVsb2NrLCBCdWZmZXIgdm1idWZmZXIpOwotc3RhdGljIHZvaWQgaWRlbnRpZnlfYW5kX2Zp eF92bV9jb3JydXB0aW9uKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGhlYXBfYnVmZmVyLAotCQkJCQkJ CQkJCSAgIEJsb2NrTnVtYmVyIGhlYXBfYmxrLCBQYWdlIGhlYXBfcGFnZSwKLQkJCQkJCQkJCQkg ICBpbnQgbmxwZGVhZF9pdGVtcywKLQkJCQkJCQkJCQkgICBCdWZmZXIgdm1idWZmZXIsCi0JCQkJ CQkJCQkJICAgdWludDggKnZtYml0cyk7CiBzdGF0aWMgaW50CWxhenlfc2Nhbl9wcnVuZShMVlJl bFN0YXRlICp2YWNyZWwsIEJ1ZmZlciBidWYsCiAJCQkJCQkJQmxvY2tOdW1iZXIgYmxrbm8sIFBh Z2UgcGFnZSwKIAkJCQkJCQlCdWZmZXIgdm1idWZmZXIsCkBAIC0xOTY0LDgxICsxOTU5LDYgQEAg Y21wT2Zmc2V0TnVtYmVycyhjb25zdCB2b2lkICphLCBjb25zdCB2b2lkICpiKQogCXJldHVybiBw Z19jbXBfdTE2KCooY29uc3QgT2Zmc2V0TnVtYmVyICopIGEsICooY29uc3QgT2Zmc2V0TnVtYmVy ICopIGIpOwogfQogCi0vKgotICogSGVscGVyIHRvIGNvcnJlY3QgYW55IGNvcnJ1cHRpb24gZGV0 ZWN0ZWQgb24gYSBoZWFwIHBhZ2UgYW5kIGl0cwotICogY29ycmVzcG9uZGluZyB2aXNpYmlsaXR5 IG1hcCBwYWdlIGFmdGVyIHBydW5pbmcgYnV0IGJlZm9yZSBzZXR0aW5nIHRoZQotICogdmlzaWJp bGl0eSBtYXAuIEl0IGV4YW1pbmVzIHRoZSBoZWFwIHBhZ2UsIHRoZSBhc3NvY2lhdGVkIFZNIHBh Z2UsIGFuZCB0aGUKLSAqIG51bWJlciBvZiBkZWFkIGl0ZW1zIHByZXZpb3VzbHkgaWRlbnRpZmll ZC4KLSAqCi0gKiBUaGlzIGZ1bmN0aW9uIG11c3QgYmUgY2FsbGVkIHdoaWxlIGhvbGRpbmcgYW4g ZXhjbHVzaXZlIGxvY2sgb24gdGhlIGhlYXAKLSAqIGJ1ZmZlciwgYW5kIHRoZSBkZWFkIGl0ZW1z IG11c3QgaGF2ZSBiZWVuIGRpc2NvdmVyZWQgdW5kZXIgdGhhdCBzYW1lIGxvY2suCi0KLSAqIFRo ZSBwcm92aWRlZCB2bWJpdHMgbXVzdCByZWZsZWN0IHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBW TSBibG9jawotICogcmVmZXJlbmNlZCBieSB2bWJ1ZmZlci4gQWx0aG91Z2ggd2UgZG8gbm90IGhv bGQgYSBsb2NrIG9uIHRoZSBWTSBidWZmZXIsIGl0Ci0gKiBpcyBwaW5uZWQsIGFuZCB0aGUgaGVh cCBidWZmZXIgaXMgZXhjbHVzaXZlbHkgbG9ja2VkLCBlbnN1cmluZyB0aGF0IG5vCi0gKiBvdGhl ciBiYWNrZW5kIGNhbiB1cGRhdGUgdGhlIFZNIGJpdHMgY29ycmVzcG9uZGluZyB0byB0aGlzIGhl YXAgcGFnZS4KLSAqCi0gKiBJZiBpdCBjbGVhcnMgY29ycnVwdGlvbiwgaXQgd2lsbCB6ZXJvIG91 dCB2bWJpdHMuCi0gKi8KLXN0YXRpYyB2b2lkCi1pZGVudGlmeV9hbmRfZml4X3ZtX2NvcnJ1cHRp b24oUmVsYXRpb24gcmVsLCBCdWZmZXIgaGVhcF9idWZmZXIsCi0JCQkJCQkJICAgQmxvY2tOdW1i ZXIgaGVhcF9ibGssIFBhZ2UgaGVhcF9wYWdlLAotCQkJCQkJCSAgIGludCBubHBkZWFkX2l0ZW1z LAotCQkJCQkJCSAgIEJ1ZmZlciB2bWJ1ZmZlciwKLQkJCQkJCQkgICB1aW50OCAqdm1iaXRzKQot ewotCUFzc2VydCh2aXNpYmlsaXR5bWFwX2dldF9zdGF0dXMocmVsLCBoZWFwX2JsaywgJnZtYnVm ZmVyKSA9PSAqdm1iaXRzKTsKLQotCUFzc2VydChCdWZmZXJJc0xvY2tlZEJ5TWVJbk1vZGUoaGVh cF9idWZmZXIsIEJVRkZFUl9MT0NLX0VYQ0xVU0lWRSkpOwotCi0JLyoKLQkgKiBBcyBvZiBQb3N0 Z3JlU1FMIDkuMiwgdGhlIHZpc2liaWxpdHkgbWFwIGJpdCBzaG91bGQgbmV2ZXIgYmUgc2V0IGlm IHRoZQotCSAqIHBhZ2UtbGV2ZWwgYml0IGlzIGNsZWFyLiAgSG93ZXZlciwgaXQncyBwb3NzaWJs ZSB0aGF0IHRoZSBiaXQgZ290Ci0JICogY2xlYXJlZCBhZnRlciBoZWFwX3ZhY19zY2FuX25leHRf YmxvY2soKSB3YXMgY2FsbGVkLCBzbyB3ZSBtdXN0IHJlY2hlY2sKLQkgKiB3aXRoIGJ1ZmZlciBs b2NrIGJlZm9yZSBjb25jbHVkaW5nIHRoYXQgdGhlIFZNIGlzIGNvcnJ1cHQuCi0JICovCi0JaWYg KCFQYWdlSXNBbGxWaXNpYmxlKGhlYXBfcGFnZSkgJiYKLQkJKCgqdm1iaXRzICYgVklTSUJJTElU WU1BUF9WQUxJRF9CSVRTKSAhPSAwKSkKLQl7Ci0JCWVyZXBvcnQoV0FSTklORywKLQkJCQkoZXJy Y29kZShFUlJDT0RFX0RBVEFfQ09SUlVQVEVEKSwKLQkJCQkgZXJybXNnKCJwYWdlIGlzIG5vdCBt YXJrZWQgYWxsLXZpc2libGUgYnV0IHZpc2liaWxpdHkgbWFwIGJpdCBpcyBzZXQgaW4gcmVsYXRp b24gXCIlc1wiIHBhZ2UgJXUiLAotCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSwg aGVhcF9ibGspKSk7Ci0KLQkJdmlzaWJpbGl0eW1hcF9jbGVhcihyZWwsIGhlYXBfYmxrLCB2bWJ1 ZmZlciwKLQkJCQkJCQlWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMpOwotCQkqdm1iaXRzID0gMDsK LQl9Ci0KLQkvKgotCSAqIEl0J3MgcG9zc2libGUgZm9yIHRoZSB2YWx1ZSByZXR1cm5lZCBieQot CSAqIEdldE9sZGVzdE5vblJlbW92YWJsZVRyYW5zYWN0aW9uSWQoKSB0byBtb3ZlIGJhY2t3YXJk cywgc28gaXQncyBub3QKLQkgKiB3cm9uZyBmb3IgdXMgdG8gc2VlIHR1cGxlcyB0aGF0IGFwcGVh ciB0byBub3QgYmUgdmlzaWJsZSB0byBldmVyeW9uZQotCSAqIHlldCwgd2hpbGUgUERfQUxMX1ZJ U0lCTEUgaXMgYWxyZWFkeSBzZXQuIFRoZSByZWFsIHNhZmUgeG1pbiB2YWx1ZQotCSAqIG5ldmVy IG1vdmVzIGJhY2t3YXJkcywgYnV0IEdldE9sZGVzdE5vblJlbW92YWJsZVRyYW5zYWN0aW9uSWQo KSBpcwotCSAqIGNvbnNlcnZhdGl2ZSBhbmQgc29tZXRpbWVzIHJldHVybnMgYSB2YWx1ZSB0aGF0 J3MgdW5uZWNlc3NhcmlseSBzbWFsbCwKLQkgKiBzbyBpZiB3ZSBzZWUgdGhhdCBjb250cmFkaWN0 aW9uIGl0IGp1c3QgbWVhbnMgdGhhdCB0aGUgdHVwbGVzIHRoYXQgd2UKLQkgKiB0aGluayBhcmUg bm90IHZpc2libGUgdG8gZXZlcnlvbmUgeWV0IGFjdHVhbGx5IGFyZSwgYW5kIHRoZQotCSAqIFBE X0FMTF9WSVNJQkxFIGZsYWcgaXMgY29ycmVjdC4KLQkgKgotCSAqIFRoZXJlIHNob3VsZCBuZXZl ciBiZSBMUF9ERUFEIGl0ZW1zIG9uIGEgcGFnZSB3aXRoIFBEX0FMTF9WSVNJQkxFIHNldCwKLQkg KiBob3dldmVyLgotCSAqLwotCWVsc2UgaWYgKFBhZ2VJc0FsbFZpc2libGUoaGVhcF9wYWdlKSAm JiBubHBkZWFkX2l0ZW1zID4gMCkKLQl7Ci0JCWVyZXBvcnQoV0FSTklORywKLQkJCQkoZXJyY29k ZShFUlJDT0RFX0RBVEFfQ09SUlVQVEVEKSwKLQkJCQkgZXJybXNnKCJwYWdlIGNvbnRhaW5pbmcg TFBfREVBRCBpdGVtcyBpcyBtYXJrZWQgYXMgYWxsLXZpc2libGUgaW4gcmVsYXRpb24gXCIlc1wi IHBhZ2UgJXUiLAotCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocmVsKSwgaGVhcF9ibGsp KSk7Ci0KLQkJUGFnZUNsZWFyQWxsVmlzaWJsZShoZWFwX3BhZ2UpOwotCQlNYXJrQnVmZmVyRGly dHkoaGVhcF9idWZmZXIpOwotCQl2aXNpYmlsaXR5bWFwX2NsZWFyKHJlbCwgaGVhcF9ibGssIHZt YnVmZmVyLAotCQkJCQkJCVZJU0lCSUxJVFlNQVBfVkFMSURfQklUUyk7Ci0JCSp2bWJpdHMgPSAw OwotCX0KLX0KLQogLyoKICAqCWxhenlfc2Nhbl9wcnVuZSgpIC0tIGxhenlfc2Nhbl9oZWFwKCkg cHJ1bmluZyBhbmQgZnJlZXppbmcuCiAgKgpAQCAtMjA3MCw2ICsxOTkwLDcgQEAgbGF6eV9zY2Fu X3BydW5lKExWUmVsU3RhdGUgKnZhY3JlbCwKIAlQcnVuZUZyZWV6ZVBhcmFtcyBwYXJhbXMgPSB7 CiAJCS5yZWxhdGlvbiA9IHJlbCwKIAkJLmJ1ZmZlciA9IGJ1ZiwKKwkJLnZtYnVmZmVyID0gdm1i dWZmZXIsCiAJCS5yZWFzb24gPSBQUlVORV9WQUNVVU1fU0NBTiwKIAkJLm9wdGlvbnMgPSBIRUFQ X1BBR0VfUFJVTkVfRlJFRVpFLAogCQkudmlzdGVzdCA9IHZhY3JlbC0+dmlzdGVzdCwKQEAgLTIx NzksMTggKzIxMDAsMTIgQEAgbGF6eV9zY2FuX3BydW5lKExWUmVsU3RhdGUgKnZhY3JlbCwKIAlB c3NlcnQoIXByZXN1bHQuc2V0X2FsbF92aXNpYmxlIHx8ICEoKmhhc19scGRlYWRfaXRlbXMpKTsK IAlBc3NlcnQoIXByZXN1bHQuc2V0X2FsbF9mcm96ZW4gfHwgcHJlc3VsdC5zZXRfYWxsX3Zpc2li bGUpOwogCi0Jb2xkX3ZtYml0cyA9IHZpc2liaWxpdHltYXBfZ2V0X3N0YXR1cyh2YWNyZWwtPnJl bCwgYmxrbm8sICZ2bWJ1ZmZlcik7Ci0KLQlpZGVudGlmeV9hbmRfZml4X3ZtX2NvcnJ1cHRpb24o dmFjcmVsLT5yZWwsIGJ1ZiwgYmxrbm8sIHBhZ2UsCi0JCQkJCQkJCSAgIHByZXN1bHQubHBkZWFk X2l0ZW1zLCB2bWJ1ZmZlciwKLQkJCQkJCQkJICAgJm9sZF92bWJpdHMpOwotCiAJaWYgKCFwcmVz dWx0LnNldF9hbGxfdmlzaWJsZSkKIAkJcmV0dXJuIHByZXN1bHQubmRlbGV0ZWQ7CiAKIAkvKiBT ZXQgdGhlIHZpc2liaWxpdHkgbWFwIGFuZCBwYWdlIHZpc2liaWxpdHkgaGludCAqLworCW9sZF92 bWJpdHMgPSBwcmVzdWx0LnZtYml0czsKIAluZXdfdm1iaXRzID0gVklTSUJJTElUWU1BUF9BTExf VklTSUJMRTsKLQogCWlmIChwcmVzdWx0LnNldF9hbGxfZnJvemVuKQogCQluZXdfdm1iaXRzIHw9 IFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTjsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNj ZXNzL2hlYXBhbS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCmluZGV4IDJmZGM1MGI4 NjViLi5jNjQ5ZTVmMTk4MCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5o CisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaApAQCAtMjYyLDYgKzI2MiwxMiBAQCB0 eXBlZGVmIHN0cnVjdCBQcnVuZUZyZWV6ZVBhcmFtcwogCVJlbGF0aW9uCXJlbGF0aW9uOwkJLyog cmVsYXRpb24gY29udGFpbmluZyBidWZmZXIgdG8gYmUgcHJ1bmVkICovCiAJQnVmZmVyCQlidWZm ZXI7CQkJLyogYnVmZmVyIHRvIGJlIHBydW5lZCAqLwogCisJLyoKKwkgKiBDYWxsZXJzIHNob3Vs ZCBwcm92aWRlIGEgcGlubmVkIHZtYnVmZmVyIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGhlYXAKKwkg KiBibG9jayBpbiBidWZmZXIuIFdlIHdpbGwgY2hlY2sgZm9yIGFuZCByZXBhaXIgYW55IGNvcnJ1 cHRpb24gaW4gdGhlIFZNLgorCSAqLworCUJ1ZmZlcgkJdm1idWZmZXI7CisKIAkvKgogCSAqIFRo ZSByZWFzb24gcHJ1bmluZyB3YXMgcGVyZm9ybWVkLiAgSXQgaXMgdXNlZCB0byBzZXQgdGhlIFdB TCByZWNvcmQKIAkgKiBvcGNvZGUgd2hpY2ggaXMgdXNlZCBmb3IgZGVidWdnaW5nIGFuZCBhbmFs eXNpcyBwdXJwb3Nlcy4KQEAgLTMyNCw2ICszMzAsMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgUHJ1bmVG cmVlemVSZXN1bHQKIAlib29sCQlzZXRfYWxsX2Zyb3plbjsKIAlUcmFuc2FjdGlvbklkIHZtX2Nv bmZsaWN0X2hvcml6b247CiAKKwkvKgorCSAqIHZtYml0cyBpcyB0aGUgdmFsdWUgb2YgdGhlIHZt YnVmZmVyJ3Mgdm1iaXRzIGF0IHRoZSBiZWdpbm5pbmcgb2YKKwkgKiBwcnVuaW5nLiBJdCBpcyBj bGVhcmVkIGlmIFZNIGNvcnJ1cHRpb24gaXMgZm91bmQgYW5kIGNvcnJlY3RlZC4KKwkgKi8KKwl1 aW50OAkJdm1iaXRzOworCiAJLyoKIAkgKiBXaGV0aGVyIG9yIG5vdCB0aGUgcGFnZSBtYWtlcyBy ZWwgdHJ1bmNhdGlvbiB1bnNhZmUuICBUaGlzIGlzIHNldCB0bwogCSAqICd0cnVlJywgZXZlbiBp ZiB0aGUgcGFnZSBjb250YWlucyBMUF9ERUFEIGl0ZW1zLiAgVkFDVVVNIHdpbGwgcmVtb3ZlCi0t IAoyLjQzLjAKCg== --0000000000002365dc064d39709f Content-Type: text/x-patch; charset="US-ASCII"; name="v40-0002-Add-pruning-fast-path-for-all-visible-and-all-fr.patch" Content-Disposition: attachment; filename="v40-0002-Add-pruning-fast-path-for-all-visible-and-all-fr.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmupq9641 RnJvbSBhNTAzMjg1ZTAxMmRlMTI1MzlkZjM4NGQ2MTU2NzVjMWU0OGU1Y2ZkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDI1IEZlYiAyMDI2IDE2OjQ4OjE5IC0wNTAwClN1YmplY3Q6IFtQ QVRDSCB2NDAgMDIvMTJdIEFkZCBwcnVuaW5nIGZhc3QgcGF0aCBmb3IgYWxsLXZpc2libGUgYW5k CiBhbGwtZnJvemVuIHBhZ2VzCgpCZWNhdXNlIG9mIHRoZSBTS0lQX1BBR0VTX1RIUkVTSE9MRCBv cHRpbWl6YXRpb24gb3IgYSBzdGFsZSBwcnVuZSBYSUQsCmhlYXBfcGFnZV9wcnVuZV9hbmRfZnJl ZXplKCkgY2FuIGJlIGludm9rZWQgZm9yIHBhZ2VzIHdpdGggbm8gcHJ1bmluZyBvcgpmcmVlemlu ZyB3b3JrLiBUbyBhdm9pZCB0aGlzLCBpZiBhIHBhZ2UgaXMgYWxyZWFkeSBhbGwtZnJvemVuIG9y IGl0IGlzCmFsbC12aXNpYmxlIGFuZCBubyBmcmVlemluZyB3aWxsIGJlIGF0dGVtcHRlZCwgd2Ug ZXhpdCBlYXJseS4gV2UgY2FuJ3QKZXhpdCBlYXJseSBpZiB2YWN1dW0gcGFzc2VkIERJU0FCTEVf UEFHRV9TS0lQUElORywgdGhvdWdoLgoKQXV0aG9yOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmll cGxhZ2VtYW5AZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQ2hhbyBMaSA8bGkuZXZhbi5jaGFvQGdt YWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEtpcmlsbCBSZXNoa2UgPHJlc2hrZWtpcmlsbEBnbWFpbC5j b20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vYnFjNGtoNW1pZGZuNDRnbmppcWV6 M2JqcXY0em9neWRndXZkbjQ0NnJpdzQ1amNmM3klNDA0ZXo2NmlsN2VidmsKLS0tCiBzcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyAgfCA5MiArKysrKysrKysrKysrKysrKysrKysr KysrKystCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgfCAxMCArKysKIHNy Yy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaCAgICAgICAgICB8ICAxICsKIDMgZmlsZXMgY2hhbmdl ZCwgMTAyIGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3By dW5laGVhcC5jCmluZGV4IDUyY2FmYjIzYzZiLi5iZjc0MGMzN2YzZCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNz L2hlYXAvcHJ1bmVoZWFwLmMKQEAgLTEyOSw2ICsxMjksMTIgQEAgdHlwZWRlZiBzdHJ1Y3QKIAkv KiBCaXRzIGluIHRoZSB2bWJ1ZmZlciBmb3IgdGhpcyBoZWFwIHBhZ2UgKi8KIAl1aW50OAkJdm1i aXRzOwogCisJLyoKKwkgKiBUcnVlIGlmIHRoZSBwYWdlIGNhbiBieXBhc3MgZnVsbCBwYWdlIGlu c3BlY3Rpb24gZHVyaW5nIHBydW5pbmcgYW5kCisJICogZnJlZXppbmcgYmFzZWQgb24gaXRzIHZp c2liaWxpdHkgbWFwIHN0YXR1cyBhbmQgdGhlIGNhbGxlcidzIG9wdGlvbnMuCisJICovCisJYm9v bAkJZmFzdF9wYXRoOworCiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tCiAJICogSW5mb3JtYXRpb24gYWJvdXQgd2hhdCB3YXMgZG9uZQog CSAqCkBAIC0xODQsNiArMTkwLDcgQEAgc3RhdGljIHZvaWQgcHJ1bmVfZnJlZXplX3NldHVwKFBy dW5lRnJlZXplUGFyYW1zICpwYXJhbXMsCiAJCQkJCQkJICAgUHJ1bmVGcmVlemVSZXN1bHQgKnBy ZXN1bHQsCiAJCQkJCQkJICAgUHJ1bmVTdGF0ZSAqcHJzdGF0ZSk7CiBzdGF0aWMgdm9pZCBoZWFw X2ZpeF92bV9jb3JydXB0aW9uKFBydW5lU3RhdGUgKnByc3RhdGUsIE9mZnNldE51bWJlciBvZmZu dW0pOworc3RhdGljIHZvaWQgaGVhcF9wYWdlX2J5cGFzc19wcnVuZV9mcmVlemUoUHJ1bmVTdGF0 ZSAqcHJzdGF0ZSwgUHJ1bmVGcmVlemVSZXN1bHQgKnByZXN1bHQpOwogc3RhdGljIHZvaWQgcHJ1 bmVfZnJlZXplX3BsYW4oUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwKIAkJCQkJCQkgIE9mZnNldE51bWJl ciAqb2ZmX2xvYyk7CiBzdGF0aWMgSFRTVl9SZXN1bHQgaGVhcF9wcnVuZV9zYXRpc2ZpZXNfdmFj dXVtKFBydW5lU3RhdGUgKnByc3RhdGUsCkBAIC0zMTIsNyArMzE5LDcgQEAgaGVhcF9wYWdlX3By dW5lX29wdChSZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwgQnVmZmVyICp2bWJ1ZmZl cikKIAkJCSAqIGNhbm5vdCBzYWZlbHkgZGV0ZXJtaW5lIHRoYXQgZHVyaW5nIG9uLWFjY2VzcyBw cnVuaW5nIHdpdGggdGhlCiAJCQkgKiBjdXJyZW50IGltcGxlbWVudGF0aW9uLgogCQkJICovCi0J CQlwYXJhbXMub3B0aW9ucyA9IDA7CisJCQlwYXJhbXMub3B0aW9ucyA9IEhFQVBfUEFHRV9QUlVO RV9BTExPV19GQVNUX1BBVEg7CiAKIAkJCWhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKCZwYXJh bXMsICZwcmVzdWx0LCAmZHVtbXlfb2ZmX2xvYywKIAkJCQkJCQkJCSAgIE5VTEwsIE5VTEwpOwpA QCAtMzgxLDYgKzM4OCwxNiBAQCBwcnVuZV9mcmVlemVfc2V0dXAoUHJ1bmVGcmVlemVQYXJhbXMg KnBhcmFtcywKIAkJCQkJCQkJCQkJICAgcHJzdGF0ZS0+YmxvY2ssCiAJCQkJCQkJCQkJCSAgICZw cnN0YXRlLT52bWJ1ZmZlcik7CiAKKwkvKgorCSAqIElmIHRoZSBwYWdlIGlzIGFscmVhZHkgYWxs LWZyb3plbiwgb3IgYWxyZWFkeSBhbGwtdmlzaWJsZSB3aGVuIGZyZWV6aW5nCisJICogaXMgbm90 IGJlaW5nIGF0dGVtcHRlZCwgd2UgY2FuIHNraXAgcHJ1bmluZyBhbmQgZnJlZXppbmcgZW50aXJl bHkuCisJICogQ2FsbGVycyBtdXN0IG9wdCBpbiBieSBzZXR0aW5nIEhFQVBfUEFHRV9QUlVORV9B TExPV19GQVNUX1BBVEguCisJICovCisJcHJzdGF0ZS0+ZmFzdF9wYXRoID0gKChwcnN0YXRlLT52 bWJpdHMgJiBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4pIHx8CisJCQkJCQkgICgocHJzdGF0ZS0+ dm1iaXRzICYgVklTSUJJTElUWU1BUF9BTExfVklTSUJMRSkgJiYKKwkJCQkJCSAgICFwcnN0YXRl LT5hdHRlbXB0X2ZyZWV6ZSkpICYmCisJCShwYXJhbXMtPm9wdGlvbnMgJiBIRUFQX1BBR0VfUFJV TkVfQUxMT1dfRkFTVF9QQVRIKTsKKwogCS8qCiAJICogT3VyIHN0cmF0ZWd5IGlzIHRvIHNjYW4g dGhlIHBhZ2UgYW5kIG1ha2UgbGlzdHMgb2YgaXRlbXMgdG8gY2hhbmdlLAogCSAqIHRoZW4gYXBw bHkgdGhlIGNoYW5nZXMgd2l0aGluIGEgY3JpdGljYWwgc2VjdGlvbi4gIFRoaXMga2VlcHMgYXMg bXVjaApAQCAtODgyLDYgKzg5OSw2OCBAQCBoZWFwX2ZpeF92bV9jb3JydXB0aW9uKFBydW5lU3Rh dGUgKnByc3RhdGUsIE9mZnNldE51bWJlciBvZmZudW0pCiAJcHJzdGF0ZS0+dm1iaXRzID0gMDsK IH0KIAorLyoKKyAqIElmIHRoZSBwYWdlIGlzIGFscmVhZHkgYWxsLWZyb3plbiwgb3IgYWxyZWFk eSBhbGwtdmlzaWJsZSBhbmQgZnJlZXppbmcKKyAqIGlzIG5vdCBiZWluZyBhdHRlbXB0ZWQsIHRo ZXJlIGlzIG5vIHJlbWFpbmluZyB3b3JrIGFuZCB3ZSBjYW4gYnlwYXNzIHRoZQorICogZXhwZW5z aXZlIG92ZXJoZWFkIG9mIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKCkuCisgKgorICogVGhp cyBjYW4gaGFwcGVuIHdoZW4gdGhlIHBhZ2UgaGFzIGEgc3RhbGUgcHJ1bmUgaGludCwgb3IgaWYg VkFDVVVNIGlzCisgKiBzY2FubmluZyBhbiBhbHJlYWR5IGFsbC1mcm96ZW4gcGFnZSBkdWUgdG8g U0tJUF9QQUdFU19USFJFU0hPTEQuCisgKgorICogVGhlIGNhbGxlciBtdXN0IGFscmVhZHkgaGF2 ZSBleGFtaW5lZCB0aGUgdmlzaWJpbGl0eSBtYXAgYW5kIHNhdmVkIHRoZQorICogc3RhdHVzIGZv ciB0aGUgcGFnZSdzIFZNIGJpdHMgaW4gcHJzdGF0ZS0+dm1iaXRzLiBDYWxsZXIgbXVzdCBob2xk IGEKKyAqIGNvbnRlbnQgbG9jayBvbiB0aGUgaGVhcCBwYWdlIHNpbmNlIGl0IHdpbGwgZXhhbWlu ZSBsaW5lIHBvaW50ZXJzLgorICoKKyAqIEJlZm9yZSBjYWxsaW5nIGhlYXBfcGFnZV9ieXBhc3Nf cHJ1bmVfZnJlZXplKCksIHRoZSBjYWxsZXIgc2hvdWxkIGZpcnN0CisgKiBjaGVjayBmb3IgYW5k IGZpeCBhbnkgZGlzY3JlcGFuY3kgYmV0d2VlbiB0aGUgcGFnZS1sZXZlbCB2aXNpYmlsaXR5IGhp bnQKKyAqIGFuZCB0aGUgdmlzaWJpbGl0eSBtYXAuIE90aGVyd2lzZSwgdGhlIGZhc3QgcGF0aCB3 aWxsIGFsd2F5cyBwcmV2ZW50IHVzCisgKiBmcm9tIGdldHRpbmcgdGhlbSBpbiBzeW5jLiBOb3Rl IHRoYXQgaWYgdGhlcmUgYXJlIHR1cGxlcyBvbiB0aGUgcGFnZSB0aGF0CisgKiBhcmUgbm90IHZp c2libGUgdG8gYWxsIGJ1dCB0aGUgVk0gaXMgaW5jb3JyZWN0bHkgbWFya2VkCisgKiBhbGwtdmlz aWJsZS9hbGwtZnJvemVuLCB3ZSB3aWxsIG5vdCBnZXQgdGhlIGNoYW5jZSB0byBmaXggdGhhdCBj b3JydXB0aW9uCisgKiB3aGVuIHVzaW5nIHRoZSBmYXN0IHBhdGguCisgKi8KK3N0YXRpYyB2b2lk CitoZWFwX3BhZ2VfYnlwYXNzX3BydW5lX2ZyZWV6ZShQcnVuZVN0YXRlICpwcnN0YXRlLCBQcnVu ZUZyZWV6ZVJlc3VsdCAqcHJlc3VsdCkKK3sKKwlPZmZzZXROdW1iZXIgbWF4b2ZmID0gUGFnZUdl dE1heE9mZnNldE51bWJlcihwcnN0YXRlLT5wYWdlKTsKKwlQYWdlCQlwYWdlID0gcHJzdGF0ZS0+ cGFnZTsKKworCUFzc2VydChwcnN0YXRlLT52bWJpdHMgJiBWSVNJQklMSVRZTUFQX0FMTF9GUk9a RU4gfHwKKwkJICAgKHByc3RhdGUtPnZtYml0cyAmIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUg JiYKKwkJCSFwcnN0YXRlLT5hdHRlbXB0X2ZyZWV6ZSkpOworCisJLyogV2UnbGwgZmlsbCBpbiBw cmVzdWx0IGZvciB0aGUgY2FsbGVyICovCisJbWVtc2V0KHByZXN1bHQsIDAsIHNpemVvZihQcnVu ZUZyZWV6ZVJlc3VsdCkpOworCisJcHJlc3VsdC0+dm1iaXRzID0gcHJzdGF0ZS0+dm1iaXRzOwor CisJLyogQ2xlYXIgYW55IHN0YWxlIHBydW5lIGhpbnQgKi8KKwlpZiAoVHJhbnNhY3Rpb25JZElz VmFsaWQoUGFnZUdldFBydW5lWGlkKHBhZ2UpKSkKKwl7CisJCVBhZ2VDbGVhclBydW5hYmxlKHBh Z2UpOworCQlNYXJrQnVmZmVyRGlydHlIaW50KHByc3RhdGUtPmJ1ZmZlciwgdHJ1ZSk7CisJfQor CisJaWYgKFBhZ2VJc0VtcHR5KHBhZ2UpKQorCQlyZXR1cm47CisKKwlwcmVzdWx0LT5oYXN0dXAg PSB0cnVlOworCisJLyoKKwkgKiBTaW5jZSB0aGUgcGFnZSBpcyBhbGwtdmlzaWJsZSwgYSBjb3Vu dCBvZiB0aGUgbm9ybWFsIEl0ZW1JZHMgb24gdGhlCisJICogcGFnZSBzaG91bGQgYmUgc3VmZmlj aWVudCBmb3IgdmFjdXVtJ3MgbGl2ZSB0dXBsZSBjb3VudC4KKwkgKi8KKwlmb3IgKE9mZnNldE51 bWJlciBvZmYgPSBGaXJzdE9mZnNldE51bWJlcjsKKwkJIG9mZiA8PSBtYXhvZmY7CisJCSBvZmYg PSBPZmZzZXROdW1iZXJOZXh0KG9mZikpCisJeworCQlpZiAoSXRlbUlkSXNOb3JtYWwoUGFnZUdl dEl0ZW1JZChwYWdlLCBvZmYpKSkKKwkJCXByc3RhdGUtPmxpdmVfdHVwbGVzKys7CisJfQorCisJ cHJlc3VsdC0+bGl2ZV90dXBsZXMgPSBwcnN0YXRlLT5saXZlX3R1cGxlczsKK30KKwogLyoKICAq IFBydW5lIGFuZCByZXBhaXIgZnJhZ21lbnRhdGlvbiBhbmQgcG90ZW50aWFsbHkgZnJlZXplIHR1 cGxlcyBvbiB0aGUKICAqIHNwZWNpZmllZCBwYWdlLgpAQCAtOTQ1LDYgKzEwMjQsMTcgQEAgaGVh cF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUHJ1bmVGcmVlemVQYXJhbXMgKnBhcmFtcywKIAkJIVBh Z2VJc0FsbFZpc2libGUocHJzdGF0ZS5wYWdlKSkKIAkJaGVhcF9maXhfdm1fY29ycnVwdGlvbigm cHJzdGF0ZSwgSW52YWxpZE9mZnNldE51bWJlcik7CiAKKwkvKgorCSAqIElmIHRoZSB2aXNpYmls aXR5IG1hcCBzdGF0dXMgYWxsb3dzIGl0LCBieXBhc3MgcHJ1bmluZyBhbmQgZnJlZXppbmcKKwkg KiBlbnRpcmVseS4gVGhpcyBtdXN0IGJlIGRvbmUgYWZ0ZXIgZml4aW5nIGFueSBkaXNjcmVwYW5j eSBiZXR3ZWVuIHRoZQorCSAqIHBhZ2UtbGV2ZWwgdmlzaWJpbGl0eSBoaW50IGFuZCB0aGUgVk0u CisJICovCisJaWYgKHByc3RhdGUuZmFzdF9wYXRoKQorCXsKKwkJaGVhcF9wYWdlX2J5cGFzc19w cnVuZV9mcmVlemUoJnByc3RhdGUsIHByZXN1bHQpOworCQlyZXR1cm47CisJfQorCiAJLyoKIAkg KiBFeGFtaW5lIGFsbCBsaW5lIHBvaW50ZXJzIGFuZCB0dXBsZSB2aXNpYmlsaXR5IGluZm9ybWF0 aW9uIHRvIGRldGVybWluZQogCSAqIHdoaWNoIGxpbmUgcG9pbnRlcnMgc2hvdWxkIGNoYW5nZSBz dGF0ZSBhbmQgd2hpY2ggdHVwbGVzIG1heSBiZSBmcm96ZW4uCmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92 YWN1dW1sYXp5LmMKaW5kZXggOTU3MzIyNjQ4Y2EuLmFkN2EzMjkwODIxIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvdmFjdXVtbGF6eS5jCkBAIC0yMDE5LDYgKzIwMTksMTYgQEAgbGF6eV9zY2FuX3By dW5lKExWUmVsU3RhdGUgKnZhY3JlbCwKIAlpZiAodmFjcmVsLT5uaW5kZXhlcyA9PSAwKQogCQlw YXJhbXMub3B0aW9ucyB8PSBIRUFQX1BBR0VfUFJVTkVfTUFSS19VTlVTRURfTk9XOwogCisJLyoK KwkgKiBBbGxvdyBza2lwcGluZyBmdWxsIGluc3BlY3Rpb24gb2YgcGFnZXMgdGhhdCB0aGUgVk0g aW5kaWNhdGVzIGFyZQorCSAqIGFscmVhZHkgYWxsLWZyb3plbiAod2hpY2ggbWF5IGJlIHNjYW5u ZWQgZHVlIHRvIFNLSVBfUEFHRVNfVEhSRVNIT0xEKS4KKwkgKiBIb3dldmVyLCBpZiBESVNBQkxF X1BBR0VfU0tJUFBJTkcgd2FzIHNwZWNpZmllZCwgd2UgY2FuJ3QgdHJ1c3QgdGhlIFZNLAorCSAq IHNvIHdlIG11c3QgZXhhbWluZSB0aGUgcGFnZSB0byBtYWtlIHN1cmUgaXQgaXMgdHJ1bHkgYWxs LWZyb3plbiBhbmQgZml4CisJICogaXQgb3RoZXJ3aXNlLgorCSAqLworCWlmICh2YWNyZWwtPnNr aXB3aXRodm0pCisJCXBhcmFtcy5vcHRpb25zIHw9IEhFQVBfUEFHRV9QUlVORV9BTExPV19GQVNU X1BBVEg7CisKIAloZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgmcGFyYW1zLAogCQkJCQkJCSAg ICZwcmVzdWx0LAogCQkJCQkJCSAgICZ2YWNyZWwtPm9mZm51bSwKZGlmZiAtLWdpdCBhL3NyYy9p bmNsdWRlL2FjY2Vzcy9oZWFwYW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaAppbmRl eCBjNjQ5ZTVmMTk4MC4uMGI1NzFkNzA4OWYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vz cy9oZWFwYW0uaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKQEAgLTQyLDYgKzQy LDcgQEAKIC8qICJvcHRpb25zIiBmbGFnIGJpdHMgZm9yIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJl ZXplICovCiAjZGVmaW5lIEhFQVBfUEFHRV9QUlVORV9NQVJLX1VOVVNFRF9OT1cJCSgxIDw8IDAp CiAjZGVmaW5lIEhFQVBfUEFHRV9QUlVORV9GUkVFWkUJCQkJKDEgPDwgMSkKKyNkZWZpbmUgSEVB UF9QQUdFX1BSVU5FX0FMTE9XX0ZBU1RfUEFUSAkJKDEgPDwgMikKIAogdHlwZWRlZiBzdHJ1Y3Qg QnVsa0luc2VydFN0YXRlRGF0YSAqQnVsa0luc2VydFN0YXRlOwogdHlwZWRlZiBzdHJ1Y3QgR2xv YmFsVmlzU3RhdGUgR2xvYmFsVmlzU3RhdGU7Ci0tIAoyLjQzLjAKCg== --0000000000002365dc064d39709f Content-Type: text/x-patch; charset="UTF-8"; name="v40-0003-Use-GlobalVisState-in-vacuum-to-determine-page-l.patch" Content-Disposition: attachment; filename="v40-0003-Use-GlobalVisState-in-vacuum-to-determine-page-l.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmupqdcg2 RnJvbSAyNTVmYzlhZWI3MjFiYTk2ZWUzYTdiN2MzZTY3NWE0ZWUxMTA4N2Q2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDE3IERlYyAyMDI1IDE2OjUxOjA1IC0wNTAwClN1YmplY3Q6IFtQ QVRDSCB2NDAgMDMvMTJdIFVzZSBHbG9iYWxWaXNTdGF0ZSBpbiB2YWN1dW0gdG8gZGV0ZXJtaW5l IHBhZ2UKIGxldmVsIHZpc2liaWxpdHkKCkR1cmluZyB2YWN1dW0ncyBmaXJzdCBhbmQgdGhpcmQg cGhhc2VzLCB3ZSBleGFtaW5lIHR1cGxlcycgdmlzaWJpbGl0eQp0byBkZXRlcm1pbmUgaWYgd2Ug Y2FuIHNldCB0aGUgcGFnZSBhbGwtdmlzaWJsZSBpbiB0aGUgdmlzaWJpbGl0eSBtYXAuCgpQcmV2 aW91c2x5LCB0aGlzIGNoZWNrIGNvbXBhcmVkIHR1cGxlIHhtaW5zIGFnYWluc3QgYSBzaW5nbGUg WElEIGNob3NlbiBhdAp0aGUgc3RhcnQgb2YgdmFjdXVtIChPbGRlc3RYbWluKS4gV2Ugbm93IHVz ZSBHbG9iYWxWaXNTdGF0ZSwgd2hpY2ggYWxzbwplbmFibGVzIGZ1dHVyZSB3b3JrIHRvIHNldCB0 aGUgVk0gZHVyaW5nIG9uLWFjY2VzcyBwcnVuaW5nLCBzaW5jZSBvcmRpbmFyeQpxdWVyaWVzIGhh dmUgYWNjZXNzIHRvIEdsb2JhbFZpc1N0YXRlIGJ1dCBub3QgT2xkZXN0WG1pbi4KClRoaXMgYWxz byBiZW5lZml0cyB2YWN1dW06IGluIHNvbWUgY2FzZXMsIEdsb2JhbFZpc1N0YXRlIG1heSBhZHZh bmNlCmR1cmluZyBhIHZhY3V1bSwgYWxsb3dpbmcgbW9yZSBwYWdlcyB0byBiZWNvbWUgY29uc2lk ZXJlZCBhbGwtdmlzaWJsZS4KQW5kLCBpbiB0aGUgZnV0dXJlLCB3ZSBjb3VsZCBlYXNpbHkgYWRk IGEgaGV1cmlzdGljIHRvIHVwZGF0ZQpHbG9iYWxWaXNTdGF0ZSBtb3JlIGZyZXF1ZW50bHkgZHVy aW5nIHZhY3V1bXMgb2YgbGFyZ2UgdGFibGVzLgoKT2xkZXN0WG1pbiBpcyBzdGlsbCB1c2VkIGZv ciBmcmVlemluZyBhbmQgYXMgYSBiYWNrc3RvcCB0byBlbnN1cmUgd2UKZG9uJ3QgZnJlZXplIGEg ZGVhZCB0dXBsZSB0aGF0IHdhc24ndCB5ZXQgcHJ1bmFibGUgYWNjb3JkaW5nIHRvCkdsb2JhbFZp c1N0YXRlIGluIHRoZSByYXJlIG9jY3VycmVuY2VzIHdoZXJlIEdsb2JhbFZpc1N0YXRlIG1vdmVz CmJhY2t3YXJkcy4KCkJlY2F1c2UgY29tcGFyaW5nIGEgdHJhbnNhY3Rpb24gSUQgYWdhaW5zdCBH bG9iYWxWaXNTdGF0ZSBpcyBtb3JlCmV4cGVuc2l2ZSB0aGFuIGNvbXBhcmluZyBhZ2FpbnN0IGEg c2luZ2xlIFhJRCwgd2UgZGVmZXIgdGhpcyBjaGVjayB1bnRpbAphZnRlciBzY2FubmluZyBhbGwg dHVwbGVzIG9uIHRoZSBwYWdlLiBUaGVyZWZvcmUsIHdlIHBlcmZvcm0gdGhlCkdsb2JhbFZpc1N0 YXRlIGNoZWNrIG9ubHkgb25jZSBwZXIgcGFnZS4gVGhpcyBpcyBzYWZlIGJlY2F1c2UKdmlzaWJp bGl0eV9jdXRvZmZfeGlkIHJlY29yZHMgdGhlIG5ld2VzdCBsaXZlIHhtaW4gb24gdGhlIHBhZ2U7 CmlmIGl0IGlzIGdsb2JhbGx5IHZpc2libGUsIHRoZW4gdGhlIGVudGlyZSBwYWdlIGlzIGFsbC12 aXNpYmxlLgoKVXNpbmcgR2xvYmFsVmlzU3RhdGUgbWVhbnMgb24tYWNjZXNzIHBydW5pbmcgY2Fu IGFsc28gbWFpbnRhaW4KdmlzaWJpbGl0eV9jdXRvZmZfeGlkLiBUaGlzIGFwcHJvYWNoIHdpbGwg cmVzdWx0IGluIGV4YW1pbmluZyBtb3JlIHR1cGxlCnhtaW5zIHRoYW4gYmVmb3JlOyBob3dldmVy LCB0aGUgYWRkaXRpb25hbCBjb3N0IHNob3VsZCBub3QgYmUKc2lnbmlmaWNhbnQuIEFuZCBkb2lu ZyBzbyB3aWxsIGVuYWJsZSB1cyB0byBzZXQgdGhlIHZpc2liaWxpdHkgbWFwIG9uCmFjY2VzcyBp biB0aGUgZnV0dXJlLgoKQXV0aG9yOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5A Z21haWwuY29tPgpSZXZpZXdlZC1ieTogQW5kcmVzIEZyZXVuZCA8YW5kcmVzQGFuYXJhemVsLmRl PgpSZXZpZXdlZC1ieTogQ2hhbyBMaSA8bGkuZXZhbi5jaGFvQGdtYWlsLmNvbT4KUmV2aWV3ZWQt Ynk6IEtpcmlsbCBSZXNoa2UgPHJlc2hrZWtpcmlsbEBnbWFpbC5jb20+CkRpc2N1c3Npb246IGh0 dHBzOi8vcG9zdGdyLmVzL20vZmxhdC9icWM0a2g1bWlkZm40NGduamlxZXozYmpxdjR6b2d5ZGd1 dmRuNDQ2cml3NDVqY2YzeSU0MDRlejY2aWw3ZWJ2ayNjNzU1ZWYxNTE1MDdhYmE1ODQ3MWZmYWNh NjA3ZTQ5MwotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV92aXNpYmlsaXR5LmMg fCAyMiArKysrKysrKysKIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jICAgICAg ICAgfCAzNyArKysrKysrLS0tLS0tLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxh enkuYyAgICAgICAgfCA1MSArKysrKysrKysrKysrLS0tLS0tLS0KIHNyYy9pbmNsdWRlL2FjY2Vz cy9oZWFwYW0uaCAgICAgICAgICAgICAgICAgfCAgMiArCiA0IGZpbGVzIGNoYW5nZWQsIDcyIGlu c2VydGlvbnMoKyksIDQwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL2hlYXBhbV92aXNpYmlsaXR5LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9o ZWFwYW1fdmlzaWJpbGl0eS5jCmluZGV4IGZjNjRmNDM0M2NlLi5kNzBmYWIzYTc2MyAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3Zpc2liaWxpdHkuYworKysgYi9z cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1fdmlzaWJpbGl0eS5jCkBAIC0xMTMxLDYgKzEx MzEsMjggQEAgSGVhcFR1cGxlU2F0aXNmaWVzVmFjdXVtKEhlYXBUdXBsZSBodHVwLCBUcmFuc2Fj dGlvbklkIE9sZGVzdFhtaW4sCiAJcmV0dXJuIHJlczsKIH0KIAorLyoKKyAqIFdyYXBwZXIgYXJv dW5kIEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZVhpZCgpIGZvciB1c2Ugd2hlbiBleGFtaW5pbmcg bGl2ZQorICogdHVwbGVzLiBSZXR1cm5zIHRydWUgaWYgdGhlIGdpdmVuIFhJRCBtYXkgYmUgY29u c2lkZXJlZCBydW5uaW5nIGJ5IGF0IGxlYXN0CisgKiBvbmUgc25hcHNob3QuCisgKgorICogVGhp cyBmdW5jdGlvbiBhbG9uZSBpcyBpbnN1ZmZpY2llbnQgdG8gZGV0ZXJtaW5lIHR1cGxlIHZpc2li aWxpdHk7IGNhbGxlcnMKKyAqIG11c3QgYWxzbyBjb25zaWRlciB0aGUgWElEJ3MgY29tbWl0IHN0 YXR1cy4gSXRzIHB1cnBvc2UgaXMgcHVyZWx5IHNlbWFudGljOgorICogd2hlbiBhcHBsaWVkIHRv IGxpdmUgdHVwbGVzLCBHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVYaWQoKSBpcyBjaGVja2luZwor ICogd2hldGhlciB0aGUgaW5zZXJ0aW5nIHRyYW5zYWN0aW9uIGlzIHN0aWxsIGNvbnNpZGVyZWQg cnVubmluZywgbm90IHdoZXRoZXIKKyAqIHRoZSB0dXBsZSBpcyByZW1vdmFibGUuIExpdmUgdHVw bGVzIGFyZSwgYnkgZGVmaW5pdGlvbiwgbm90IHJlbW92YWJsZSwgYnV0CisgKiB0aGUgc25hcHNo b3QgY3JpdGVyaWEgZm9yIOKAnHRyYW5zYWN0aW9uIHN0aWxsIHJ1bm5pbmfigJ0gYXJlIGlkZW50 aWNhbCB0bworICogdGhvc2UgdXNlZCBmb3IgcmVtb3ZhbCBYSURzLgorICoKKyAqIFNlZSB0aGUg Y29tbWVudCBhYm92ZSBHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVbRnVsbF1YaWQoKSBmb3IgZGV0 YWlscyBvbiB0aGUKKyAqIHJlcXVpcmVkIHByZWNvbmRpdGlvbnMgZm9yIGNhbGxpbmcgdGhpcyBm dW5jdGlvbi4KKyAqLworYm9vbAorR2xvYmFsVmlzVGVzdFhpZE1heWJlUnVubmluZyhHbG9iYWxW aXNTdGF0ZSAqc3RhdGUsIFRyYW5zYWN0aW9uSWQgeGlkKQoreworCXJldHVybiAhR2xvYmFsVmlz VGVzdElzUmVtb3ZhYmxlWGlkKHN0YXRlLCB4aWQpOworfQorCiAvKgogICogV29yayBob3JzZSBm b3IgSGVhcFR1cGxlU2F0aXNmaWVzVmFjdXVtIGFuZCBzaW1pbGFyIHJvdXRpbmVzLgogICoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKaW5kZXggYmY3NDBjMzdmM2QuLmM4NWU0MTcyZWU4 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9z cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwpAQCAtMTA0Myw2ICsxMDQzLDE3IEBA IGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFBydW5lRnJlZXplUGFyYW1zICpwYXJhbXMsCiAJ ICovCiAJcHJ1bmVfZnJlZXplX3BsYW4oJnByc3RhdGUsIG9mZl9sb2MpOwogCisJLyoKKwkgKiBB ZnRlciBwcm9jZXNzaW5nIGFsbCB0aGUgbGl2ZSB0dXBsZXMgb24gdGhlIHBhZ2UsIGlmIHRoZSBu ZXdlc3QgeG1pbgorCSAqIGFtb25nc3QgdGhlbSBtYXkgYmUgY29uc2lkZXJlZCBydW5uaW5nIGJ5 IGFueSBzbmFwc2hvdCwgdGhlIHBhZ2UgY2Fubm90CisJICogYmUgYWxsLXZpc2libGUuCisJICov CisJaWYgKHByc3RhdGUuc2V0X2FsbF92aXNpYmxlICYmCisJCVRyYW5zYWN0aW9uSWRJc05vcm1h bChwcnN0YXRlLnZpc2liaWxpdHlfY3V0b2ZmX3hpZCkgJiYKKwkJR2xvYmFsVmlzVGVzdFhpZE1h eWJlUnVubmluZyhwcnN0YXRlLnZpc3Rlc3QsCisJCQkJCQkJCQkgcHJzdGF0ZS52aXNpYmlsaXR5 X2N1dG9mZl94aWQpKQorCQlwcnN0YXRlLnNldF9hbGxfdmlzaWJsZSA9IHByc3RhdGUuc2V0X2Fs bF9mcm96ZW4gPSBmYWxzZTsKKwogCS8qCiAJICogSWYgY2hlY2tzdW1zIGFyZSBlbmFibGVkLCBj YWxsaW5nIGhlYXBfcHJ1bmVfc2F0aXNmaWVzX3ZhY3V1bSgpIHdoaWxlCiAJICogY2hlY2tpbmcg dHVwbGUgdmlzaWJpbGl0eSBpbmZvcm1hdGlvbiBpbiBwcnVuZV9mcmVlemVfcGxhbigpIG1heSBo YXZlCkBAIC0xNzEwLDI5ICsxNzIxLDE1IEBAIGhlYXBfcHJ1bmVfcmVjb3JkX3VuY2hhbmdlZF9s cF9ub3JtYWwoUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgT2Zmc2V0TnVtYmVyIG9mZm51bSkKIAkJCQl9 CiAKIAkJCQkvKgotCQkJCSAqIFRoZSBpbnNlcnRlciBkZWZpbml0ZWx5IGNvbW1pdHRlZC4gIEJ1 dCBpcyBpdCBvbGQgZW5vdWdoCi0JCQkJICogdGhhdCBldmVyeW9uZSBzZWVzIGl0IGFzIGNvbW1p dHRlZD8gIEEgRnJvemVuVHJhbnNhY3Rpb25JZAotCQkJCSAqIGlzIHNlZW4gYXMgY29tbWl0dGVk IHRvIGV2ZXJ5b25lLiAgT3RoZXJ3aXNlLCB3ZSBjaGVjayBpZgotCQkJCSAqIHRoZXJlIGlzIGEg c25hcHNob3QgdGhhdCBjb25zaWRlcnMgdGhpcyB4aWQgdG8gc3RpbGwgYmUKLQkJCQkgKiBydW5u aW5nLCBhbmQgaWYgc28sIHdlIGRvbid0IGNvbnNpZGVyIHRoZSBwYWdlIGFsbC12aXNpYmxlLgor CQkJCSAqIFRoZSBpbnNlcnRlciBkZWZpbml0ZWx5IGNvbW1pdHRlZC4gQnV0IHdlIGRvbid0IGtu b3cgaWYgaXQKKwkJCQkgKiBpcyBvbGQgZW5vdWdoIHRoYXQgZXZlcnlvbmUgc2VlcyBpdCBhcyBj b21taXR0ZWQuIExhdGVyLAorCQkJCSAqIGFmdGVyIHByb2Nlc3NpbmcgYWxsIHRoZSB0dXBsZXMg b24gdGhlIHBhZ2UsIHdlJ2xsIGNoZWNrIGlmCisJCQkJICogdGhlcmUgaXMgYW55IHNuYXBzaG90 IHRoYXQgc3RpbGwgY29uc2lkZXJzIHRoZSBuZXdlc3QgeGlkCisJCQkJICogb24gdGhlIHBhZ2Ug dG8gYmUgcnVubmluZy4gSWYgc28sIHdlIGRvbid0IGNvbnNpZGVyIHRoZQorCQkJCSAqIHBhZ2Ug YWxsLXZpc2libGUuCiAJCQkJICovCiAJCQkJeG1pbiA9IEhlYXBUdXBsZUhlYWRlckdldFhtaW4o aHR1cCk7CiAKLQkJCQkvKgotCQkJCSAqIEZvciBub3cgYWx3YXlzIHVzZSBwcnN0YXRlLT5jdXRv ZmZzIGZvciB0aGlzIHRlc3QsIGJlY2F1c2UKLQkJCQkgKiB3ZSBvbmx5IHVwZGF0ZSAnc2V0X2Fs bF92aXNpYmxlJyBhbmQgJ3NldF9hbGxfZnJvemVuJyB3aGVuCi0JCQkJICogZnJlZXppbmcgaXMg cmVxdWVzdGVkLiBXZSBjb3VsZCB1c2UKLQkJCQkgKiBHbG9iYWxWaXNUZXN0SXNSZW1vdmFibGVY aWQgaW5zdGVhZCwgaWYgYSBub24tZnJlZXppbmcKLQkJCQkgKiBjYWxsZXIgd2FudGVkIHRvIHNl dCB0aGUgVk0gYml0LgotCQkJCSAqLwotCQkJCUFzc2VydChwcnN0YXRlLT5jdXRvZmZzKTsKLQkJ CQlpZiAoIVRyYW5zYWN0aW9uSWRQcmVjZWRlcyh4bWluLCBwcnN0YXRlLT5jdXRvZmZzLT5PbGRl c3RYbWluKSkKLQkJCQl7Ci0JCQkJCXByc3RhdGUtPnNldF9hbGxfdmlzaWJsZSA9IGZhbHNlOwot CQkJCQlwcnN0YXRlLT5zZXRfYWxsX2Zyb3plbiA9IGZhbHNlOwotCQkJCQlicmVhazsKLQkJCQl9 Ci0KIAkJCQkvKiBUcmFjayBuZXdlc3QgeG1pbiBvbiBwYWdlLiAqLwogCQkJCWlmIChUcmFuc2Fj dGlvbklkRm9sbG93cyh4bWluLCBwcnN0YXRlLT52aXNpYmlsaXR5X2N1dG9mZl94aWQpICYmCiAJ CQkJCVRyYW5zYWN0aW9uSWRJc05vcm1hbCh4bWluKSkKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1 bWxhenkuYwppbmRleCBhZDdhMzI5MDgyMS4uNzA5N2FhN2I3NzIgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC92YWN1dW1sYXp5LmMKQEAgLTQ2MSwxMyArNDYxLDEzIEBAIHN0YXRpYyB2b2lkIGRlYWRf aXRlbXNfY2xlYW51cChMVlJlbFN0YXRlICp2YWNyZWwpOwogCiAjaWZkZWYgVVNFX0FTU0VSVF9D SEVDS0lORwogc3RhdGljIGJvb2wgaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJl bCwgQnVmZmVyIGJ1ZiwKLQkJCQkJCQkJCSBUcmFuc2FjdGlvbklkIE9sZGVzdFhtaW4sCisJCQkJ CQkJCQkgR2xvYmFsVmlzU3RhdGUgKnZpc3Rlc3QsCiAJCQkJCQkJCQkgYm9vbCAqYWxsX2Zyb3pl biwKIAkJCQkJCQkJCSBUcmFuc2FjdGlvbklkICp2aXNpYmlsaXR5X2N1dG9mZl94aWQsCiAJCQkJ CQkJCQkgT2Zmc2V0TnVtYmVyICpsb2dnaW5nX29mZm51bSk7CiAjZW5kaWYKIHN0YXRpYyBib29s IGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYs Ci0JCQkJCQkJCQkJICAgVHJhbnNhY3Rpb25JZCBPbGRlc3RYbWluLAorCQkJCQkJCQkJCSAgIEds b2JhbFZpc1N0YXRlICp2aXN0ZXN0LAogCQkJCQkJCQkJCSAgIE9mZnNldE51bWJlciAqZGVhZG9m ZnNldHMsCiAJCQkJCQkJCQkJICAgaW50IG5kZWFkb2Zmc2V0cywKIAkJCQkJCQkJCQkgICBib29s ICphbGxfZnJvemVuLApAQCAtMjA2NCwxMyArMjA2NCwxMCBAQCBsYXp5X3NjYW5fcHJ1bmUoTFZS ZWxTdGF0ZSAqdmFjcmVsLAogCQlBc3NlcnQocHJlc3VsdC5scGRlYWRfaXRlbXMgPT0gMCk7CiAK IAkJQXNzZXJ0KGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZSh2YWNyZWwtPnJlbCwgYnVmLAotCQkJ CQkJCQkJCXZhY3JlbC0+Y3V0b2Zmcy5PbGRlc3RYbWluLCAmZGVidWdfYWxsX2Zyb3plbiwKKwkJ CQkJCQkJCQl2YWNyZWwtPnZpc3Rlc3QsICZkZWJ1Z19hbGxfZnJvemVuLAogCQkJCQkJCQkJCSZk ZWJ1Z19jdXRvZmYsICZ2YWNyZWwtPm9mZm51bSkpOwogCiAJCUFzc2VydChwcmVzdWx0LnNldF9h bGxfZnJvemVuID09IGRlYnVnX2FsbF9mcm96ZW4pOwotCi0JCUFzc2VydCghVHJhbnNhY3Rpb25J ZElzVmFsaWQoZGVidWdfY3V0b2ZmKSB8fAotCQkJICAgZGVidWdfY3V0b2ZmID09IHByZXN1bHQu dm1fY29uZmxpY3RfaG9yaXpvbik7CiAJfQogI2VuZGlmCiAKQEAgLTI4MjYsNyArMjgyMyw3IEBA IGxhenlfdmFjdXVtX2hlYXBfcGFnZShMVlJlbFN0YXRlICp2YWNyZWwsIEJsb2NrTnVtYmVyIGJs a25vLCBCdWZmZXIgYnVmZmVyLAogCSAqIGRvbmUgb3V0c2lkZSB0aGUgY3JpdGljYWwgc2VjdGlv bi4KIAkgKi8KIAlpZiAoaGVhcF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKHZhY3JlbC0+cmVs LCBidWZmZXIsCi0JCQkJCQkJCQkgICB2YWNyZWwtPmN1dG9mZnMuT2xkZXN0WG1pbiwKKwkJCQkJ CQkJCSAgIHZhY3JlbC0+dmlzdGVzdCwKIAkJCQkJCQkJCSAgIGRlYWRvZmZzZXRzLCBudW1fb2Zm c2V0cywKIAkJCQkJCQkJCSAgICZhbGxfZnJvemVuLCAmdmlzaWJpbGl0eV9jdXRvZmZfeGlkLAog CQkJCQkJCQkJICAgJnZhY3JlbC0+b2ZmbnVtKSkKQEAgLTM1ODcsMTQgKzM1ODQsMTQgQEAgZGVh ZF9pdGVtc19jbGVhbnVwKExWUmVsU3RhdGUgKnZhY3JlbCkKICAqLwogc3RhdGljIGJvb2wKIGhl YXBfcGFnZV9pc19hbGxfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCi0JCQkJCQkg VHJhbnNhY3Rpb25JZCBPbGRlc3RYbWluLAorCQkJCQkJIEdsb2JhbFZpc1N0YXRlICp2aXN0ZXN0 LAogCQkJCQkJIGJvb2wgKmFsbF9mcm96ZW4sCiAJCQkJCQkgVHJhbnNhY3Rpb25JZCAqdmlzaWJp bGl0eV9jdXRvZmZfeGlkLAogCQkJCQkJIE9mZnNldE51bWJlciAqbG9nZ2luZ19vZmZudW0pCiB7 CiAKIAlyZXR1cm4gaGVhcF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKHJlbCwgYnVmLAotCQkJ CQkJCQkJCSAgT2xkZXN0WG1pbiwKKwkJCQkJCQkJCQkgIHZpc3Rlc3QsCiAJCQkJCQkJCQkJICBO VUxMLCAwLAogCQkJCQkJCQkJCSAgYWxsX2Zyb3plbiwKIAkJCQkJCQkJCQkgIHZpc2liaWxpdHlf Y3V0b2ZmX3hpZCwKQEAgLTM2MTUsNyArMzYxMiw3IEBAIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJs ZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCiAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHBhZ2Ug aXMgYWxsLXZpc2libGUgb3RoZXIgdGhhbiB0aGUgcHJvdmlkZWQKICAqIGRlYWRvZmZzZXRzIGFu ZCBmYWxzZSBvdGhlcndpc2UuCiAgKgotICogT2xkZXN0WG1pbiBpcyB1c2VkIHRvIGRldGVybWlu ZSB2aXNpYmlsaXR5LgorICogdmlzdGVzdCBpcyB1c2VkIHRvIGRldGVybWluZSB2aXNpYmlsaXR5 LgogICoKICAqIE91dHB1dCBwYXJhbWV0ZXJzOgogICoKQEAgLTM2MzQsNyArMzYzMSw3IEBAIGhl YXBfcGFnZV9pc19hbGxfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCiAgKi8KIHN0 YXRpYyBib29sCiBoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUoUmVsYXRpb24gcmVsLCBC dWZmZXIgYnVmLAotCQkJCQkJCSAgIFRyYW5zYWN0aW9uSWQgT2xkZXN0WG1pbiwKKwkJCQkJCQkg ICBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwKIAkJCQkJCQkgICBPZmZzZXROdW1iZXIgKmRlYWRv ZmZzZXRzLAogCQkJCQkJCSAgIGludCBuZGVhZG9mZnNldHMsCiAJCQkJCQkJICAgYm9vbCAqYWxs X2Zyb3plbiwKQEAgLTM3MTUsNyArMzcxMiw3IEBAIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlz aWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCiAJCQkJewogCQkJCQlUcmFuc2FjdGlvbklk IHhtaW47CiAKLQkJCQkJLyogQ2hlY2sgY29tbWVudHMgaW4gbGF6eV9zY2FuX3BydW5lLiAqLwor CQkJCQkvKiBDaGVjayBoZWFwX3BydW5lX3JlY29yZF91bmNoYW5nZWRfbHBfbm9ybWFsIGNvbW1l bnRzICovCiAJCQkJCWlmICghSGVhcFR1cGxlSGVhZGVyWG1pbkNvbW1pdHRlZCh0dXBsZS50X2Rh dGEpKQogCQkJCQl7CiAJCQkJCQlhbGxfdmlzaWJsZSA9IGZhbHNlOwpAQCAtMzcyNCwxNiArMzcy MSwxNyBAQCBoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZm ZXIgYnVmLAogCQkJCQl9CiAKIAkJCQkJLyoKLQkJCQkJICogVGhlIGluc2VydGVyIGRlZmluaXRl bHkgY29tbWl0dGVkLiBCdXQgaXMgaXQgb2xkIGVub3VnaAotCQkJCQkgKiB0aGF0IGV2ZXJ5b25l IHNlZXMgaXQgYXMgY29tbWl0dGVkPworCQkJCQkgKiBUaGUgaW5zZXJ0ZXIgZGVmaW5pdGVseSBj b21taXR0ZWQuIEJ1dCB3ZSBkb24ndCBrbm93IGlmCisJCQkJCSAqIGl0IGlzIG9sZCBlbm91Z2gg dGhhdCBldmVyeW9uZSBzZWVzIGl0IGFzIGNvbW1pdHRlZC4KKwkJCQkJICogRG9uJ3QgY2hlY2sg dGhhdCBub3cuCisJCQkJCSAqCisJCQkJCSAqIElmIHdlIHNjYW4gYWxsIHR1cGxlcyB3aXRob3V0 IGZpbmRpbmcgb25lIHRoYXQgcHJldmVudHMKKwkJCQkJICogdGhlIHBhZ2UgZnJvbSBiZWluZyBh bGwtdmlzaWJsZSwgd2UgdGhlbiBjaGVjayB3aGV0aGVyCisJCQkJCSAqIGFueSBzbmFwc2hvdCBz dGlsbCBjb25zaWRlcnMgdGhlIG5ld2VzdCBYSUQgb24gdGhlIHBhZ2UKKwkJCQkJICogdG8gYmUg cnVubmluZy4gSW4gdGhhdCBjYXNlLCB0aGUgcGFnZSBpcyBub3QgY29uc2lkZXJlZAorCQkJCQkg KiBhbGwtdmlzaWJsZS4KIAkJCQkJICovCiAJCQkJCXhtaW4gPSBIZWFwVHVwbGVIZWFkZXJHZXRY bWluKHR1cGxlLnRfZGF0YSk7Ci0JCQkJCWlmICghVHJhbnNhY3Rpb25JZFByZWNlZGVzKHhtaW4s IE9sZGVzdFhtaW4pKQotCQkJCQl7Ci0JCQkJCQlhbGxfdmlzaWJsZSA9IGZhbHNlOwotCQkJCQkJ KmFsbF9mcm96ZW4gPSBmYWxzZTsKLQkJCQkJCWJyZWFrOwotCQkJCQl9CiAKIAkJCQkJLyogVHJh Y2sgbmV3ZXN0IHhtaW4gb24gcGFnZS4gKi8KIAkJCQkJaWYgKFRyYW5zYWN0aW9uSWRGb2xsb3dz KHhtaW4sICp2aXNpYmlsaXR5X2N1dG9mZl94aWQpICYmCkBAIC0zNzYyLDYgKzM3NjAsMTkgQEAg aGVhcF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwK IAkJfQogCX0JCQkJCQkJLyogc2NhbiBhbG9uZyBwYWdlICovCiAKKwkvKgorCSAqIEFmdGVyIHBy b2Nlc3NpbmcgYWxsIHRoZSBsaXZlIHR1cGxlcyBvbiB0aGUgcGFnZSwgaWYgdGhlIG5ld2VzdCB4 bWluCisJICogYW1vbmcgdGhlbSBtYXkgc3RpbGwgYmUgY29uc2lkZXJlZCBydW5uaW5nIGJ5IGFu eSBzbmFwc2hvdCwgdGhlIHBhZ2UKKwkgKiBjYW5ub3QgYmUgYWxsLXZpc2libGUuCisJICovCisJ aWYgKGFsbF92aXNpYmxlICYmCisJCVRyYW5zYWN0aW9uSWRJc05vcm1hbCgqdmlzaWJpbGl0eV9j dXRvZmZfeGlkKSAmJgorCQlHbG9iYWxWaXNUZXN0WGlkTWF5YmVSdW5uaW5nKHZpc3Rlc3QsICp2 aXNpYmlsaXR5X2N1dG9mZl94aWQpKQorCXsKKwkJYWxsX3Zpc2libGUgPSBmYWxzZTsKKwkJKmFs bF9mcm96ZW4gPSBmYWxzZTsKKwl9CisKIAkvKiBDbGVhciB0aGUgb2Zmc2V0IGluZm9ybWF0aW9u IG9uY2Ugd2UgaGF2ZSBwcm9jZXNzZWQgdGhlIGdpdmVuIHBhZ2UuICovCiAJKmxvZ2dpbmdfb2Zm bnVtID0gSW52YWxpZE9mZnNldE51bWJlcjsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNj ZXNzL2hlYXBhbS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCmluZGV4IDBiNTcxZDcw ODlmLi45MzEyODg2YWQ0YiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5o CisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaApAQCAtNDgwLDYgKzQ4MCw4IEBAIGV4 dGVybiBUTV9SZXN1bHQgSGVhcFR1cGxlU2F0aXNmaWVzVXBkYXRlKEhlYXBUdXBsZSBodHVwLCBD b21tYW5kSWQgY3VyY2lkLAogCQkJCQkJCQkJCSAgQnVmZmVyIGJ1ZmZlcik7CiBleHRlcm4gSFRT Vl9SZXN1bHQgSGVhcFR1cGxlU2F0aXNmaWVzVmFjdXVtKEhlYXBUdXBsZSBodHVwLCBUcmFuc2Fj dGlvbklkIE9sZGVzdFhtaW4sCiAJCQkJCQkJCQkJCUJ1ZmZlciBidWZmZXIpOworCitleHRlcm4g Ym9vbCBHbG9iYWxWaXNUZXN0WGlkTWF5YmVSdW5uaW5nKEdsb2JhbFZpc1N0YXRlICpzdGF0ZSwg VHJhbnNhY3Rpb25JZCB4aWQpOwogZXh0ZXJuIEhUU1ZfUmVzdWx0IEhlYXBUdXBsZVNhdGlzZmll c1ZhY3V1bUhvcml6b24oSGVhcFR1cGxlIGh0dXAsIEJ1ZmZlciBidWZmZXIsCiAJCQkJCQkJCQkJ CQkgICBUcmFuc2FjdGlvbklkICpkZWFkX2FmdGVyKTsKIGV4dGVybiB2b2lkIEhlYXBUdXBsZVNl dEhpbnRCaXRzKEhlYXBUdXBsZUhlYWRlciB0dXBsZSwgQnVmZmVyIGJ1ZmZlciwKLS0gCjIuNDMu MAoK --0000000000002365dc064d39709f Content-Type: text/x-patch; charset="US-ASCII"; name="v40-0004-Keep-newest-live-XID-up-to-date-even-if-page-not.patch" Content-Disposition: attachment; filename="v40-0004-Keep-newest-live-XID-up-to-date-even-if-page-not.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmupqhd13 RnJvbSBhMWQ3NjhhOGNlYThhYzEzZTI1MDE4OGVjOTZjMDFkOThhY2RhOTRhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBTYXQsIDI4IEZlYiAyMDI2IDE2OjA2OjUxIC0wNTAwClN1YmplY3Q6IFtQ QVRDSCB2NDAgMDQvMTJdIEtlZXAgbmV3ZXN0IGxpdmUgWElEIHVwLXRvLWRhdGUgZXZlbiBpZiBw YWdlIG5vdAogYWxsLXZpc2libGUKCkR1cmluZyBwcnVuaW5nLCB3ZSBrZWVwIHRyYWNrIG9mIHRo ZSBuZXdlc3QgeG1pbiBvZiBsaXZlIHR1cGxlcyBvbiB0aGUKcGFnZSB2aXNpYmxlIHRvIGFsbCBy dW5uaW5nIGFuZCBmdXR1cmUgdHJhbnNhY3Rpb25zIHNvIHRoYXQgd2UgY2FuIHVzZQppdCBsYXRl ciBhcyB0aGUgc25hcHNob3QgY29uZmxpY3QgaG9yaXpvbiB3aGVuIHNldHRpbmcgdGhlIFZNIGlm IHRoZQpwYWdlIHR1cm5zIG91dCB0byBiZSBhbGwtdmlzaWJsZS4KClByZXZpb3VzbHksIHdlIHN0 b3BwZWQgdXBkYXRpbmcgdGhpcyB2YWx1ZSBvbmNlIHdlIGRldGVybWluZWQgdGhlIHBhZ2UKd2Fz IG5vdCBhbGwtdmlzaWJsZS4gSG93ZXZlciwgbWFpbnRhaW5pbmcgaXQgZXZlbiB3aGVuIHRoZSBw YWdlIGlzIG5vdAphbGwtdmlzaWJsZSBpcyBpbmV4cGVuc2l2ZSBhbmQgbWFrZXMgdGhlIHNuYXBz aG90IGNvbmZsaWN0IGhvcml6b24KY2FsY3VsYXRpb24gY2xlYXJlci4gVGhpcyBndWFyYW50ZWVz IGl0IHdvbid0IGNvbnRhaW4gYSBzdGFsZSB2YWx1ZS4KClNpbmNlIHdlJ2xsIGtlZXAgaXQgdXAg dG8gZGF0ZSBhbGwgdGhlIHRpbWUgbm93IGFueXdheSwgdGhlcmUncyBubwpyZWFzb24gbm90IHRv IG1haW50YWluIGFsbF92aXNpYmxlIGZvciBvbi1hY2Nlc3MgcHJ1bmluZy4gVGhpcyB3aWxsCmFs bG93IHVzIHRvIHNldCB0aGUgVk0gb24tYWNjZXNzIGluIHRoZSBmdXR1cmUuCgpBdXRob3I6IE1l bGFuaWUgUGxhZ2VtYW4gPG1lbGFuaWVwbGFnZW1hbkBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBB bmRyZXMgRnJldW5kIDxhbmRyZXNAYW5hcmF6ZWwuZGU+ClJldmlld2VkLWJ5OiBDaGFvIExpIDxs aS5ldmFuLmNoYW9AZ21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL2Jx YzRraDVtaWRmbjQ0Z25qaXFlejNianF2NHpvZ3lkZ3V2ZG40NDZyaXc0NWpjZjN5JTQwNGV6NjZp bDdlYnZrCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgIHwgMTI3ICsr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVt bGF6eS5jIHwgIDMwICsrKy0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgNjUgaW5zZXJ0aW9ucygrKSwg OTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1 bmVoZWFwLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwppbmRleCBjODVl NDE3MmVlOC4uZDI3Njc3MGI5YjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3BydW5laGVhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCkBA IC0xMjksNiArMTI5LDkgQEAgdHlwZWRlZiBzdHJ1Y3QKIAkvKiBCaXRzIGluIHRoZSB2bWJ1ZmZl ciBmb3IgdGhpcyBoZWFwIHBhZ2UgKi8KIAl1aW50OAkJdm1iaXRzOwogCisJLyogVGhlIG5ld2Vz dCB4bWluIG9mIGxpdmUgdHVwbGVzIG9uIHRoZSBwYWdlICovCisJVHJhbnNhY3Rpb25JZCBuZXdl c3RfbGl2ZV94aWQ7CisKIAkvKgogCSAqIFRydWUgaWYgdGhlIHBhZ2UgY2FuIGJ5cGFzcyBmdWxs IHBhZ2UgaW5zcGVjdGlvbiBkdXJpbmcgcHJ1bmluZyBhbmQKIAkgKiBmcmVlemluZyBiYXNlZCBv biBpdHMgdmlzaWJpbGl0eSBtYXAgc3RhdHVzIGFuZCB0aGUgY2FsbGVyJ3Mgb3B0aW9ucy4KQEAg LTE2NiwxMSArMTY5LDYgQEAgdHlwZWRlZiBzdHJ1Y3QKIAkgKiBhbGwtZnJvemVuIGJpdHMgaW4g dGhlIHZpc2liaWxpdHkgbWFwIGNhbiBiZSBzZXQgZm9yIHRoaXMgcGFnZSBhZnRlcgogCSAqIHBy dW5pbmcuCiAJICoKLQkgKiB2aXNpYmlsaXR5X2N1dG9mZl94aWQgaXMgdGhlIG5ld2VzdCB4bWlu IG9mIGxpdmUgdHVwbGVzIG9uIHRoZSBwYWdlLgotCSAqIFRoZSBjYWxsZXIgY2FuIHVzZSBpdCBh cyB0aGUgY29uZmxpY3QgaG9yaXpvbiwgd2hlbiBzZXR0aW5nIHRoZSBWTQotCSAqIGJpdHMuICBJ dCBpcyBvbmx5IHZhbGlkIGlmIHdlIGZyb3plIHNvbWUgdHVwbGVzLCBhbmQgc2V0X2FsbF9mcm96 ZW4gaXMKLQkgKiB0cnVlLgotCSAqCiAJICogTk9URTogc2V0X2FsbF92aXNpYmxlIGFuZCBzZXRf YWxsX2Zyb3plbiBpbml0aWFsbHkgZG9uJ3QgaW5jbHVkZQogCSAqIExQX0RFQUQgaXRlbXMuIFRo YXQncyBjb252ZW5pZW50IGZvciBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgpIHRvCiAJICog dXNlIHRoZW0gdG8gZGVjaWRlIHdoZXRoZXIgdG8gZnJlZXplIHRoZSBwYWdlIG9yIG5vdC4gIFRo ZQpAQCAtMTgwLDcgKzE3OCw2IEBAIHR5cGVkZWYgc3RydWN0CiAJICovCiAJYm9vbAkJc2V0X2Fs bF92aXNpYmxlOwogCWJvb2wJCXNldF9hbGxfZnJvemVuOwotCVRyYW5zYWN0aW9uSWQgdmlzaWJp bGl0eV9jdXRvZmZfeGlkOwogfSBQcnVuZVN0YXRlOwogCiAvKiBMb2NhbCBmdW5jdGlvbnMgKi8K QEAgLTQ1MSw1MyArNDQ4LDM1IEBAIHBydW5lX2ZyZWV6ZV9zZXR1cChQcnVuZUZyZWV6ZVBhcmFt cyAqcGFyYW1zLAogCXByc3RhdGUtPmRlYWRvZmZzZXRzID0gcHJlc3VsdC0+ZGVhZG9mZnNldHM7 CiAKIAkvKgotCSAqIFZhY3V1bSBtYXkgdXBkYXRlIHRoZSBWTSBhZnRlciB3ZSdyZSBkb25lLiAg V2UgY2FuIGtlZXAgdHJhY2sgb2YKLQkgKiB3aGV0aGVyIHRoZSBwYWdlIHdpbGwgYmUgYWxsLXZp c2libGUgYW5kIGFsbC1mcm96ZW4gYWZ0ZXIgcHJ1bmluZyBhbmQKLQkgKiBmcmVlemluZyB0byBo ZWxwIHRoZSBjYWxsZXIgdG8gZG8gdGhhdC4KLQkgKgotCSAqIEN1cnJlbnRseSwgb25seSBWQUNV VU0gc2V0cyB0aGUgVk0gYml0cy4gIFRvIHNhdmUgdGhlIGVmZm9ydCwgb25seSBkbwotCSAqIHRo ZSBib29ra2VlcGluZyBpZiB0aGUgY2FsbGVyIG5lZWRzIGl0LiAgQ3VycmVudGx5LCB0aGF0J3Mg dGllZCB0bwotCSAqIEhFQVBfUEFHRV9QUlVORV9GUkVFWkUsIGJ1dCBpdCBjb3VsZCBiZSBhIHNl cGFyYXRlIGZsYWcgaWYgeW91IHdhbnRlZAotCSAqIHRvIHVwZGF0ZSB0aGUgVk0gYml0cyB3aXRo b3V0IGFsc28gZnJlZXppbmcgb3IgZnJlZXplIHdpdGhvdXQgYWxzbwotCSAqIHNldHRpbmcgdGhl IFZNIGJpdHMuCisJICogV2UgdHJhY2sgd2hldGhlciB0aGUgcGFnZSB3aWxsIGJlIGFsbC12aXNp YmxlL2FsbC1mcm96ZW4gYXQgdGhlIGVuZCBvZgorCSAqIHBydW5pbmcgYW5kIGZyZWV6aW5nLiBX aGlsZSBleGFtaW5pbmcgdHVwbGUgdmlzaWJpbGl0eSwgd2UnbGwgc2V0CisJICogc2V0X2FsbF92 aXNpYmxlIHRvIGZhbHNlIGlmIHRoZXJlIGFyZSB0dXBsZXMgb24gdGhlIHBhZ2Ugbm90IHZpc2li bGUgdG8KKwkgKiBhbGwgcnVubmluZyBhbmQgZnV0dXJlIHRyYW5zYWN0aW9ucy4gc2V0X2FsbF92 aXNpYmxlIGlzIGFsd2F5cworCSAqIG1haW50YWluZWQgYnV0IG9ubHkgVkFDVVVNIHdpbGwgc2V0 IHRoZSBWTSBpZiB0aGUgcGFnZSBlbmRzIHVwIGJlaW5nCisJICogYWxsLXZpc2libGUuCiAJICoK LQkgKiBJbiBhZGRpdGlvbiB0byB0ZWxsaW5nIHRoZSBjYWxsZXIgd2hldGhlciBpdCBjYW4gc2V0 IHRoZSBWTSBiaXQsIHdlCi0JICogYWxzbyB1c2UgJ3NldF9hbGxfdmlzaWJsZScgYW5kICdzZXRf YWxsX2Zyb3plbicgZm9yIG91ciBvd24KLQkgKiBkZWNpc2lvbi1tYWtpbmcuIElmIHRoZSB3aG9s ZSBwYWdlIHdvdWxkIGJlY29tZSBmcm96ZW4sIHdlIGNvbnNpZGVyCi0JICogb3Bwb3J0dW5pc3Rp Y2FsbHkgZnJlZXppbmcgdHVwbGVzLiAgV2Ugd2lsbCBub3QgYmUgYWJsZSB0byBmcmVlemUgdGhl Ci0JICogd2hvbGUgcGFnZSBpZiB0aGVyZSBhcmUgdHVwbGVzIHByZXNlbnQgdGhhdCBhcmUgbm90 IHZpc2libGUgdG8gZXZlcnlvbmUKLQkgKiBvciBpZiB0aGVyZSBhcmUgZGVhZCB0dXBsZXMgd2hp Y2ggYXJlIG5vdCB5ZXQgcmVtb3ZhYmxlLiAgSG93ZXZlciwgZGVhZAotCSAqIHR1cGxlcyB3aGlj aCB3aWxsIGJlIHJlbW92ZWQgYnkgdGhlIGVuZCBvZiB2YWN1dW1pbmcgc2hvdWxkIG5vdAotCSAq IHByZWNsdWRlIHVzIGZyb20gb3Bwb3J0dW5pc3RpY2FsbHkgZnJlZXppbmcuICBCZWNhdXNlIG9m IHRoYXQsIHdlIGRvCi0JICogbm90IGltbWVkaWF0ZWx5IGNsZWFyIHNldF9hbGxfdmlzaWJsZSBh bmQgc2V0X2FsbF9mcm96ZW4gd2hlbiB3ZSBzZWUKLQkgKiBMUF9ERUFEIGl0ZW1zLiAgV2UgZml4 IHRoYXQgYWZ0ZXIgc2Nhbm5pbmcgdGhlIGxpbmUgcG9pbnRlcnMuIFdlIG11c3QKLQkgKiBjb3Jy ZWN0IHNldF9hbGxfdmlzaWJsZSBhbmQgc2V0X2FsbF9mcm96ZW4gYmVmb3JlIHdlIHJldHVybiB0 aGVtIHRvIHRoZQotCSAqIGNhbGxlciwgc28gdGhhdCB0aGUgY2FsbGVyIGRvZXNuJ3Qgc2V0IHRo ZSBWTSBiaXRzIGluY29ycmVjdGx5LgorCSAqIFdlIGFsc28ga2VlcCB0cmFjayBvZiB0aGUgbmV3 ZXN0IGxpdmUgWElELCB3aGljaCBpcyB1c2VkIHRvIGNhbGN1bGF0ZQorCSAqIHRoZSBzbmFwc2hv dCBjb25mbGljdCBob3Jpem9uIGZvciBhIFdBTCByZWNvcmQgc2V0dGluZyB0aGUgVk0uCiAJICov Ci0JaWYgKHByc3RhdGUtPmF0dGVtcHRfZnJlZXplKQotCXsKLQkJcHJzdGF0ZS0+c2V0X2FsbF92 aXNpYmxlID0gdHJ1ZTsKLQkJcHJzdGF0ZS0+c2V0X2FsbF9mcm96ZW4gPSB0cnVlOwotCX0KLQll bHNlCi0JewotCQkvKgotCQkgKiBJbml0aWFsaXppbmcgdG8gZmFsc2UgYWxsb3dzIHNraXBwaW5n IHRoZSB3b3JrIHRvIHVwZGF0ZSB0aGVtIGluCi0JCSAqIGhlYXBfcHJ1bmVfcmVjb3JkX3VuY2hh bmdlZF9scF9ub3JtYWwoKS4KLQkJICovCi0JCXByc3RhdGUtPnNldF9hbGxfdmlzaWJsZSA9IGZh bHNlOwotCQlwcnN0YXRlLT5zZXRfYWxsX2Zyb3plbiA9IGZhbHNlOwotCX0KKwlwcnN0YXRlLT5z ZXRfYWxsX3Zpc2libGUgPSB0cnVlOworCXByc3RhdGUtPm5ld2VzdF9saXZlX3hpZCA9IEludmFs aWRUcmFuc2FjdGlvbklkOwogCiAJLyoKLQkgKiBUaGUgdmlzaWJpbGl0eSBjdXRvZmYgeGlkIGlz IHRoZSBuZXdlc3QgeG1pbiBvZiBsaXZlIHR1cGxlcyBvbiB0aGUKLQkgKiBwYWdlLiAgSW4gdGhl IGNvbW1vbiBjYXNlLCB0aGlzIHdpbGwgYmUgc2V0IGFzIHRoZSBjb25mbGljdCBob3Jpem9uIHRo ZQotCSAqIGNhbGxlciBjYW4gdXNlIGZvciB1cGRhdGluZyB0aGUgVk0uICBJZiwgYXQgdGhlIGVu ZCBvZiBmcmVlemluZyBhbmQKLQkgKiBwcnVuaW5nLCB0aGUgcGFnZSBpcyBhbGwtZnJvemVuLCB0 aGVyZSBpcyBubyBwb3NzaWJpbGl0eSB0aGF0IGFueQotCSAqIHJ1bm5pbmcgdHJhbnNhY3Rpb24g b24gdGhlIHN0YW5kYnkgZG9lcyBub3Qgc2VlIHR1cGxlcyBvbiB0aGUgcGFnZSBhcwotCSAqIGFs bC12aXNpYmxlLCBzbyB0aGUgY29uZmxpY3QgaG9yaXpvbiByZW1haW5zIEludmFsaWRUcmFuc2Fj dGlvbklkLgorCSAqIEN1cnJlbnRseSwgb25seSBWQUNVVU0gcGVyZm9ybXMgZnJlZXppbmcsIGJ1 dCBvdGhlciBjYWxsZXJzIG1heSBpbiB0aGUKKwkgKiBmdXR1cmUuIE90aGVyIGNhbGxlcnMgbXVz dCBpbml0aWFsaXplIHByc3RhdGUuc2V0X2FsbF9mcm96ZW4gdG8gZmFsc2UsCisJICogc2luY2Ug d2Ugd2lsbCBub3QgY2FsbCBoZWFwX3ByZXBhcmVfZnJlZXplX3R1cGxlKCkgZm9yIGVhY2ggdHVw bGUuCisJICoKKwkgKiBXZSBvbmx5IGNvbnNpZGVyIG9wcG9ydHVuaXN0aWMgZnJlZXppbmcgaWYg dGhlIHBhZ2Ugd291bGQgYmVjb21lCisJICogYWxsLWZyb3plbiwgb3IgaWYgaXQgd291bGQgYmUg YWxsLWZyb3plbiBleGNlcHQgZm9yIGRlYWQgdHVwbGVzIHRoYXQKKwkgKiBWQUNVVU0gd2lsbCBy ZW1vdmUuCisJICoKKwkgKiBEZWFkIHR1cGxlcyB0aGF0IHdpbGwgYmUgcmVtb3ZlZCBieSB0aGUg ZW5kIG9mIHZhY3V1bSBzaG91bGQgbm90CisJICogcHJldmVudCBvcHBvcnR1bmlzdGljIGZyZWV6 aW5nLiBUaGVyZWZvcmUsIHdlIGRvIG5vdCBjbGVhcgorCSAqIHNldF9hbGxfdmlzaWJsZSBhbmQg c2V0X2FsbF9mcm96ZW4gd2hlbiB3ZSBlbmNvdW50ZXIgTFBfREVBRCBpdGVtcy4KKwkgKiBJbnN0 ZWFkLCB3ZSBjb3JyZWN0IHRoZW0gYWZ0ZXIgZGVjaWRpbmcgd2hldGhlciB0byBmcmVlemUsIGJ1 dCBiZWZvcmUKKwkgKiB1cGRhdGluZyB0aGUgVk0sIHRvIGF2b2lkIHNldHRpbmcgdGhlIFZNIGJp dHMgaW5jb3JyZWN0bHkuCiAJICovCi0JcHJzdGF0ZS0+dmlzaWJpbGl0eV9jdXRvZmZfeGlkID0g SW52YWxpZFRyYW5zYWN0aW9uSWQ7CisJcHJzdGF0ZS0+c2V0X2FsbF9mcm96ZW4gPSBwcnN0YXRl LT5hdHRlbXB0X2ZyZWV6ZTsKIH0KIAogLyoKQEAgLTcyNyw3ICs3MDYsNiBAQCBoZWFwX3BhZ2Vf d2lsbF9mcmVlemUoYm9vbCBkaWRfdHVwbGVfaGludF9mcGksCiAJaWYgKCFwcnN0YXRlLT5hdHRl bXB0X2ZyZWV6ZSkKIAl7CiAJCUFzc2VydCghcHJzdGF0ZS0+c2V0X2FsbF9mcm96ZW4gJiYgcHJz dGF0ZS0+bmZyb3plbiA9PSAwKTsKLQkJQXNzZXJ0KHByc3RhdGUtPmxwZGVhZF9pdGVtcyA9PSAw IHx8ICFwcnN0YXRlLT5zZXRfYWxsX3Zpc2libGUpOwogCQlyZXR1cm4gZmFsc2U7CiAJfQogCkBA IC05ODIsOSArOTYwLDggQEAgaGVhcF9wYWdlX2J5cGFzc19wcnVuZV9mcmVlemUoUHJ1bmVTdGF0 ZSAqcHJzdGF0ZSwgUHJ1bmVGcmVlemVSZXN1bHQgKnByZXN1bHQpCiAgKiBIRUFQX1BBR0VfUFJV TkVfRlJFRVpFIG9wdGlvbiBpcyBwYXNzZWQsIHdlIGFsc28gc2V0CiAgKiBwcmVzdWx0LT5zZXRf YWxsX3Zpc2libGUgYW5kIHByZXN1bHQtPnNldF9hbGxfZnJvemVuIGFmdGVyIGRldGVybWluaW5n CiAgKiB3aGV0aGVyIG9yIG5vdCB0byBvcHBvcnR1bmlzdGljYWxseSBmcmVlemUsIHRvIGluZGlj YXRlIGlmIHRoZSBWTSBiaXRzIGNhbgotICogYmUgc2V0LiAgVGhleSBhcmUgYWx3YXlzIHNldCB0 byBmYWxzZSB3aGVuIHRoZSBIRUFQX1BBR0VfUFJVTkVfRlJFRVpFCi0gKiBvcHRpb24gaXMgbm90 IHBhc3NlZCwgYmVjYXVzZSBhdCB0aGUgbW9tZW50IG9ubHkgY2FsbGVycyB0aGF0IGFsc28gZnJl ZXplCi0gKiBuZWVkIHRoYXQgaW5mb3JtYXRpb24uCisgKiBiZSBzZXQuICdhbGwtZnJvemVuJyBp cyBhbHdheXMgc2V0IHRvIGZhbHNlIHdoZW4gdGhlIEhFQVBfUEFHRV9QUlVORV9GUkVFWkUKKyAq IG9wdGlvbiBpcyBub3QgcGFzc2VkLgogICoKICAqIHByZXN1bHQgY29udGFpbnMgb3V0cHV0IHBh cmFtZXRlcnMgbmVlZGVkIGJ5IGNhbGxlcnMsIHN1Y2ggYXMgdGhlIG51bWJlciBvZgogICogdHVw bGVzIHJlbW92ZWQgYW5kIHRoZSBvZmZzZXRzIG9mIGRlYWQgaXRlbXMgb24gdGhlIHBhZ2UgYWZ0 ZXIgcHJ1bmluZy4KQEAgLTEwNDksOSArMTAyNiw5IEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJl ZXplKFBydW5lRnJlZXplUGFyYW1zICpwYXJhbXMsCiAJICogYmUgYWxsLXZpc2libGUuCiAJICov CiAJaWYgKHByc3RhdGUuc2V0X2FsbF92aXNpYmxlICYmCi0JCVRyYW5zYWN0aW9uSWRJc05vcm1h bChwcnN0YXRlLnZpc2liaWxpdHlfY3V0b2ZmX3hpZCkgJiYKKwkJVHJhbnNhY3Rpb25JZElzTm9y bWFsKHByc3RhdGUubmV3ZXN0X2xpdmVfeGlkKSAmJgogCQlHbG9iYWxWaXNUZXN0WGlkTWF5YmVS dW5uaW5nKHByc3RhdGUudmlzdGVzdCwKLQkJCQkJCQkJCSBwcnN0YXRlLnZpc2liaWxpdHlfY3V0 b2ZmX3hpZCkpCisJCQkJCQkJCQkgcHJzdGF0ZS5uZXdlc3RfbGl2ZV94aWQpKQogCQlwcnN0YXRl LnNldF9hbGxfdmlzaWJsZSA9IHByc3RhdGUuc2V0X2FsbF9mcm96ZW4gPSBmYWxzZTsKIAogCS8q CkBAIC0xMjAyLDcgKzExNzksNyBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShQcnVuZUZy ZWV6ZVBhcmFtcyAqcGFyYW1zLAogCWlmIChwcmVzdWx0LT5zZXRfYWxsX2Zyb3plbikKIAkJcHJl c3VsdC0+dm1fY29uZmxpY3RfaG9yaXpvbiA9IEludmFsaWRUcmFuc2FjdGlvbklkOwogCWVsc2UK LQkJcHJlc3VsdC0+dm1fY29uZmxpY3RfaG9yaXpvbiA9IHByc3RhdGUudmlzaWJpbGl0eV9jdXRv ZmZfeGlkOworCQlwcmVzdWx0LT52bV9jb25mbGljdF9ob3Jpem9uID0gcHJzdGF0ZS5uZXdlc3Rf bGl2ZV94aWQ7CiAKIAlwcmVzdWx0LT5scGRlYWRfaXRlbXMgPSBwcnN0YXRlLmxwZGVhZF9pdGVt czsKIAkvKiB0aGUgcHJlc3VsdC0+ZGVhZG9mZnNldHMgYXJyYXkgd2FzIGFscmVhZHkgZmlsbGVk IGluICovCkBAIC0xNjYyLDYgKzE2MzksNyBAQCBzdGF0aWMgdm9pZAogaGVhcF9wcnVuZV9yZWNv cmRfdW5jaGFuZ2VkX2xwX25vcm1hbChQcnVuZVN0YXRlICpwcnN0YXRlLCBPZmZzZXROdW1iZXIg b2ZmbnVtKQogewogCUhlYXBUdXBsZUhlYWRlciBodHVwOworCVRyYW5zYWN0aW9uSWQgeG1pbjsK IAlQYWdlCQlwYWdlID0gcHJzdGF0ZS0+cGFnZTsKIAogCUFzc2VydCghcHJzdGF0ZS0+cHJvY2Vz c2VkW29mZm51bV0pOwpAQCAtMTcwOSwzMiArMTY4NywyNyBAQCBoZWFwX3BydW5lX3JlY29yZF91 bmNoYW5nZWRfbHBfbm9ybWFsKFBydW5lU3RhdGUgKnByc3RhdGUsIE9mZnNldE51bWJlciBvZmZu dW0pCiAJCQkgKiBTZWUgU2V0SGludEJpdHMgZm9yIG1vcmUgaW5mby4gIENoZWNrIHRoYXQgdGhl IHR1cGxlIGlzIGhpbnRlZAogCQkJICogeG1pbi1jb21taXR0ZWQgYmVjYXVzZSBvZiB0aGF0Lgog CQkJICovCi0JCQlpZiAocHJzdGF0ZS0+c2V0X2FsbF92aXNpYmxlKQorCQkJaWYgKCFIZWFwVHVw bGVIZWFkZXJYbWluQ29tbWl0dGVkKGh0dXApKQogCQkJewotCQkJCVRyYW5zYWN0aW9uSWQgeG1p bjsKKwkJCQlwcnN0YXRlLT5zZXRfYWxsX3Zpc2libGUgPSBmYWxzZTsKKwkJCQlwcnN0YXRlLT5z ZXRfYWxsX2Zyb3plbiA9IGZhbHNlOworCQkJCWJyZWFrOworCQkJfQogCi0JCQkJaWYgKCFIZWFw VHVwbGVIZWFkZXJYbWluQ29tbWl0dGVkKGh0dXApKQotCQkJCXsKLQkJCQkJcHJzdGF0ZS0+c2V0 X2FsbF92aXNpYmxlID0gZmFsc2U7Ci0JCQkJCXByc3RhdGUtPnNldF9hbGxfZnJvemVuID0gZmFs c2U7Ci0JCQkJCWJyZWFrOwotCQkJCX0KKwkJCS8qCisJCQkgKiBUaGUgaW5zZXJ0ZXIgZGVmaW5p dGVseSBjb21taXR0ZWQuIEJ1dCB3ZSBkb24ndCBrbm93IGlmIGl0IGlzCisJCQkgKiBvbGQgZW5v dWdoIHRoYXQgZXZlcnlvbmUgc2VlcyBpdCBhcyBjb21taXR0ZWQuIExhdGVyLCBhZnRlcgorCQkJ ICogcHJvY2Vzc2luZyBhbGwgdGhlIHR1cGxlcyBvbiB0aGUgcGFnZSwgd2UnbGwgY2hlY2sgaWYg dGhlcmUgaXMKKwkJCSAqIGFueSBzbmFwc2hvdCB0aGF0IHN0aWxsIGNvbnNpZGVycyB0aGUgbmV3 ZXN0IHhpZCBvbiB0aGUgcGFnZSB0bworCQkJICogYmUgcnVubmluZy4gSWYgc28sIHdlIGRvbid0 IGNvbnNpZGVyIHRoZSBwYWdlIGFsbC12aXNpYmxlLgorCQkJICovCisJCQl4bWluID0gSGVhcFR1 cGxlSGVhZGVyR2V0WG1pbihodHVwKTsKIAotCQkJCS8qCi0JCQkJICogVGhlIGluc2VydGVyIGRl ZmluaXRlbHkgY29tbWl0dGVkLiBCdXQgd2UgZG9uJ3Qga25vdyBpZiBpdAotCQkJCSAqIGlzIG9s ZCBlbm91Z2ggdGhhdCBldmVyeW9uZSBzZWVzIGl0IGFzIGNvbW1pdHRlZC4gTGF0ZXIsCi0JCQkJ ICogYWZ0ZXIgcHJvY2Vzc2luZyBhbGwgdGhlIHR1cGxlcyBvbiB0aGUgcGFnZSwgd2UnbGwgY2hl Y2sgaWYKLQkJCQkgKiB0aGVyZSBpcyBhbnkgc25hcHNob3QgdGhhdCBzdGlsbCBjb25zaWRlcnMg dGhlIG5ld2VzdCB4aWQKLQkJCQkgKiBvbiB0aGUgcGFnZSB0byBiZSBydW5uaW5nLiBJZiBzbywg d2UgZG9uJ3QgY29uc2lkZXIgdGhlCi0JCQkJICogcGFnZSBhbGwtdmlzaWJsZS4KLQkJCQkgKi8K LQkJCQl4bWluID0gSGVhcFR1cGxlSGVhZGVyR2V0WG1pbihodHVwKTsKKwkJCS8qIFRyYWNrIG5l d2VzdCB4bWluIG9uIHBhZ2UuICovCisJCQlpZiAoVHJhbnNhY3Rpb25JZEZvbGxvd3MoeG1pbiwg cHJzdGF0ZS0+bmV3ZXN0X2xpdmVfeGlkKSAmJgorCQkJCVRyYW5zYWN0aW9uSWRJc05vcm1hbCh4 bWluKSkKKwkJCQlwcnN0YXRlLT5uZXdlc3RfbGl2ZV94aWQgPSB4bWluOwogCi0JCQkJLyogVHJh Y2sgbmV3ZXN0IHhtaW4gb24gcGFnZS4gKi8KLQkJCQlpZiAoVHJhbnNhY3Rpb25JZEZvbGxvd3Mo eG1pbiwgcHJzdGF0ZS0+dmlzaWJpbGl0eV9jdXRvZmZfeGlkKSAmJgotCQkJCQlUcmFuc2FjdGlv bklkSXNOb3JtYWwoeG1pbikpCi0JCQkJCXByc3RhdGUtPnZpc2liaWxpdHlfY3V0b2ZmX3hpZCA9 IHhtaW47Ci0JCQl9CiAJCQlicmVhazsKIAogCQljYXNlIEhFQVBUVVBMRV9SRUNFTlRMWV9ERUFE OgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmluZGV4IDcwOTdhYTdiNzcyLi40ZDUy ZGUxYTk2YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5j CisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpAQCAtNDYzLDcgKzQ2 Myw3IEBAIHN0YXRpYyB2b2lkIGRlYWRfaXRlbXNfY2xlYW51cChMVlJlbFN0YXRlICp2YWNyZWwp Owogc3RhdGljIGJvb2wgaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVm ZmVyIGJ1ZiwKIAkJCQkJCQkJCSBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwKIAkJCQkJCQkJCSBi b29sICphbGxfZnJvemVuLAotCQkJCQkJCQkJIFRyYW5zYWN0aW9uSWQgKnZpc2liaWxpdHlfY3V0 b2ZmX3hpZCwKKwkJCQkJCQkJCSBUcmFuc2FjdGlvbklkICpuZXdlc3RfbGl2ZV94aWQsCiAJCQkJ CQkJCQkgT2Zmc2V0TnVtYmVyICpsb2dnaW5nX29mZm51bSk7CiAjZW5kaWYKIHN0YXRpYyBib29s IGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYs CkBAIC00NzEsNyArNDcxLDcgQEAgc3RhdGljIGJvb2wgaGVhcF9wYWdlX3dvdWxkX2JlX2FsbF92 aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKIAkJCQkJCQkJCQkgICBPZmZzZXROdW1i ZXIgKmRlYWRvZmZzZXRzLAogCQkJCQkJCQkJCSAgIGludCBuZGVhZG9mZnNldHMsCiAJCQkJCQkJ CQkJICAgYm9vbCAqYWxsX2Zyb3plbiwKLQkJCQkJCQkJCQkgICBUcmFuc2FjdGlvbklkICp2aXNp YmlsaXR5X2N1dG9mZl94aWQsCisJCQkJCQkJCQkJICAgVHJhbnNhY3Rpb25JZCAqbmV3ZXN0X2xp dmVfeGlkLAogCQkJCQkJCQkJCSAgIE9mZnNldE51bWJlciAqbG9nZ2luZ19vZmZudW0pOwogc3Rh dGljIHZvaWQgdXBkYXRlX3JlbHN0YXRzX2FsbF9pbmRleGVzKExWUmVsU3RhdGUgKnZhY3JlbCk7 CiBzdGF0aWMgdm9pZCB2YWN1dW1fZXJyb3JfY2FsbGJhY2sodm9pZCAqYXJnKTsKQEAgLTI3OTks NyArMjc5OSw3IEBAIGxhenlfdmFjdXVtX2hlYXBfcGFnZShMVlJlbFN0YXRlICp2YWNyZWwsIEJs b2NrTnVtYmVyIGJsa25vLCBCdWZmZXIgYnVmZmVyLAogCVBhZ2UJCXBhZ2UgPSBCdWZmZXJHZXRQ YWdlKGJ1ZmZlcik7CiAJT2Zmc2V0TnVtYmVyIHVudXNlZFtNYXhIZWFwVHVwbGVzUGVyUGFnZV07 CiAJaW50CQkJbnVudXNlZCA9IDA7Ci0JVHJhbnNhY3Rpb25JZCB2aXNpYmlsaXR5X2N1dG9mZl94 aWQ7CisJVHJhbnNhY3Rpb25JZCBuZXdlc3RfbGl2ZV94aWQ7CiAJVHJhbnNhY3Rpb25JZCBjb25m bGljdF94aWQgPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKIAlib29sCQlhbGxfZnJvemVuOwogCUxW U2F2ZWRFcnJJbmZvIHNhdmVkX2Vycl9pbmZvOwpAQCAtMjgyNSwxNCArMjgyNSwxNCBAQCBsYXp5 X3ZhY3V1bV9oZWFwX3BhZ2UoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCbG9ja051bWJlciBibGtubywg QnVmZmVyIGJ1ZmZlciwKIAlpZiAoaGVhcF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKHZhY3Jl bC0+cmVsLCBidWZmZXIsCiAJCQkJCQkJCQkgICB2YWNyZWwtPnZpc3Rlc3QsCiAJCQkJCQkJCQkg ICBkZWFkb2Zmc2V0cywgbnVtX29mZnNldHMsCi0JCQkJCQkJCQkgICAmYWxsX2Zyb3plbiwgJnZp c2liaWxpdHlfY3V0b2ZmX3hpZCwKKwkJCQkJCQkJCSAgICZhbGxfZnJvemVuLCAmbmV3ZXN0X2xp dmVfeGlkLAogCQkJCQkJCQkJICAgJnZhY3JlbC0+b2ZmbnVtKSkKIAl7CiAJCXZtZmxhZ3MgfD0g VklTSUJJTElUWU1BUF9BTExfVklTSUJMRTsKIAkJaWYgKGFsbF9mcm96ZW4pCiAJCXsKIAkJCXZt ZmxhZ3MgfD0gVklTSUJJTElUWU1BUF9BTExfRlJPWkVOOwotCQkJQXNzZXJ0KCFUcmFuc2FjdGlv bklkSXNWYWxpZCh2aXNpYmlsaXR5X2N1dG9mZl94aWQpKTsKKwkJCUFzc2VydCghVHJhbnNhY3Rp b25JZElzVmFsaWQobmV3ZXN0X2xpdmVfeGlkKSk7CiAJCX0KIAogCQkvKgpAQCAtMjg3Myw3ICsy ODczLDcgQEAgbGF6eV92YWN1dW1faGVhcF9wYWdlKExWUmVsU3RhdGUgKnZhY3JlbCwgQmxvY2tO dW1iZXIgYmxrbm8sIEJ1ZmZlciBidWZmZXIsCiAJCXZpc2liaWxpdHltYXBfc2V0X3ZtYml0cyhi bGtubywKIAkJCQkJCQkJIHZtYnVmZmVyLCB2bWZsYWdzLAogCQkJCQkJCQkgdmFjcmVsLT5yZWwt PnJkX2xvY2F0b3IpOwotCQljb25mbGljdF94aWQgPSB2aXNpYmlsaXR5X2N1dG9mZl94aWQ7CisJ CWNvbmZsaWN0X3hpZCA9IG5ld2VzdF9saXZlX3hpZDsKIAl9CiAKIAkvKgpAQCAtMzU4Niw3ICsz NTg2LDcgQEAgc3RhdGljIGJvb2wKIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZShSZWxhdGlvbiBy ZWwsIEJ1ZmZlciBidWYsCiAJCQkJCQkgR2xvYmFsVmlzU3RhdGUgKnZpc3Rlc3QsCiAJCQkJCQkg Ym9vbCAqYWxsX2Zyb3plbiwKLQkJCQkJCSBUcmFuc2FjdGlvbklkICp2aXNpYmlsaXR5X2N1dG9m Zl94aWQsCisJCQkJCQkgVHJhbnNhY3Rpb25JZCAqbmV3ZXN0X2xpdmVfeGlkLAogCQkJCQkJIE9m ZnNldE51bWJlciAqbG9nZ2luZ19vZmZudW0pCiB7CiAKQEAgLTM1OTQsNyArMzU5NCw3IEBAIGhl YXBfcGFnZV9pc19hbGxfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCiAJCQkJCQkJ CQkJICB2aXN0ZXN0LAogCQkJCQkJCQkJCSAgTlVMTCwgMCwKIAkJCQkJCQkJCQkgIGFsbF9mcm96 ZW4sCi0JCQkJCQkJCQkJICB2aXNpYmlsaXR5X2N1dG9mZl94aWQsCisJCQkJCQkJCQkJICBuZXdl c3RfbGl2ZV94aWQsCiAJCQkJCQkJCQkJICBsb2dnaW5nX29mZm51bSk7CiB9CiAjZW5kaWYKQEAg LTM2MTcsNyArMzYxNyw3IEBAIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZShSZWxhdGlvbiByZWws IEJ1ZmZlciBidWYsCiAgKiBPdXRwdXQgcGFyYW1ldGVyczoKICAqCiAgKiAgLSAqYWxsX2Zyb3pl bjogdHJ1ZSBpZiBldmVyeSB0dXBsZSBvbiB0aGUgcGFnZSBpcyBmcm96ZW4KLSAqICAtICp2aXNp YmlsaXR5X2N1dG9mZl94aWQ6IG5ld2VzdCB4bWluOyB2YWxpZCBvbmx5IGlmIHBhZ2UgaXMgYWxs LXZpc2libGUKKyAqICAtICpuZXdlc3RfbGl2ZV94aWQ6IG5ld2VzdCB4bWluIG9mIGxpdmUgdHVw bGVzIG9uIHRoZSBwYWdlCiAgKiAgLSAqbG9nZ2luZ19vZmZudW06IE9mZnNldE51bWJlciBvZiBj dXJyZW50IHR1cGxlIGJlaW5nIHByb2Nlc3NlZDsKICAqICAgICB1c2VkIGJ5IHZhY3V1bSdzIGVy cm9yIGNhbGxiYWNrIHN5c3RlbS4KICAqCkBAIC0zNjM1LDcgKzM2MzUsNyBAQCBoZWFwX3BhZ2Vf d291bGRfYmVfYWxsX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLAogCQkJCQkJCSAg IE9mZnNldE51bWJlciAqZGVhZG9mZnNldHMsCiAJCQkJCQkJICAgaW50IG5kZWFkb2Zmc2V0cywK IAkJCQkJCQkgICBib29sICphbGxfZnJvemVuLAotCQkJCQkJCSAgIFRyYW5zYWN0aW9uSWQgKnZp c2liaWxpdHlfY3V0b2ZmX3hpZCwKKwkJCQkJCQkgICBUcmFuc2FjdGlvbklkICpuZXdlc3RfbGl2 ZV94aWQsCiAJCQkJCQkJICAgT2Zmc2V0TnVtYmVyICpsb2dnaW5nX29mZm51bSkKIHsKIAlQYWdl CQlwYWdlID0gQnVmZmVyR2V0UGFnZShidWYpOwpAQCAtMzY0NSw3ICszNjQ1LDcgQEAgaGVhcF9w YWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKIAlib29s CQlhbGxfdmlzaWJsZSA9IHRydWU7CiAJaW50CQkJbWF0Y2hlZF9kZWFkX2NvdW50ID0gMDsKIAot CSp2aXNpYmlsaXR5X2N1dG9mZl94aWQgPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKKwkqbmV3ZXN0 X2xpdmVfeGlkID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CiAJKmFsbF9mcm96ZW4gPSB0cnVlOwog CiAJQXNzZXJ0KG5kZWFkb2Zmc2V0cyA9PSAwIHx8IGRlYWRvZmZzZXRzKTsKQEAgLTM3MzQsOSAr MzczNCw5IEBAIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1 ZmZlciBidWYsCiAJCQkJCXhtaW4gPSBIZWFwVHVwbGVIZWFkZXJHZXRYbWluKHR1cGxlLnRfZGF0 YSk7CiAKIAkJCQkJLyogVHJhY2sgbmV3ZXN0IHhtaW4gb24gcGFnZS4gKi8KLQkJCQkJaWYgKFRy YW5zYWN0aW9uSWRGb2xsb3dzKHhtaW4sICp2aXNpYmlsaXR5X2N1dG9mZl94aWQpICYmCisJCQkJ CWlmIChUcmFuc2FjdGlvbklkRm9sbG93cyh4bWluLCAqbmV3ZXN0X2xpdmVfeGlkKSAmJgogCQkJ CQkJVHJhbnNhY3Rpb25JZElzTm9ybWFsKHhtaW4pKQotCQkJCQkJKnZpc2liaWxpdHlfY3V0b2Zm X3hpZCA9IHhtaW47CisJCQkJCQkqbmV3ZXN0X2xpdmVfeGlkID0geG1pbjsKIAogCQkJCQkvKiBD aGVjayB3aGV0aGVyIHRoaXMgdHVwbGUgaXMgYWxyZWFkeSBmcm96ZW4gb3Igbm90ICovCiAJCQkJ CWlmIChhbGxfdmlzaWJsZSAmJiAqYWxsX2Zyb3plbiAmJgpAQCAtMzc2Niw4ICszNzY2LDggQEAg aGVhcF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwK IAkgKiBjYW5ub3QgYmUgYWxsLXZpc2libGUuCiAJICovCiAJaWYgKGFsbF92aXNpYmxlICYmCi0J CVRyYW5zYWN0aW9uSWRJc05vcm1hbCgqdmlzaWJpbGl0eV9jdXRvZmZfeGlkKSAmJgotCQlHbG9i YWxWaXNUZXN0WGlkTWF5YmVSdW5uaW5nKHZpc3Rlc3QsICp2aXNpYmlsaXR5X2N1dG9mZl94aWQp KQorCQlUcmFuc2FjdGlvbklkSXNOb3JtYWwoKm5ld2VzdF9saXZlX3hpZCkgJiYKKwkJR2xvYmFs VmlzVGVzdFhpZE1heWJlUnVubmluZyh2aXN0ZXN0LCAqbmV3ZXN0X2xpdmVfeGlkKSkKIAl7CiAJ CWFsbF92aXNpYmxlID0gZmFsc2U7CiAJCSphbGxfZnJvemVuID0gZmFsc2U7Ci0tIAoyLjQzLjAK Cg== --0000000000002365dc064d39709f Content-Type: text/x-patch; charset="US-ASCII"; name="v40-0005-Eliminate-XLOG_HEAP2_VISIBLE-from-vacuum-phase-I.patch" Content-Disposition: attachment; filename="v40-0005-Eliminate-XLOG_HEAP2_VISIBLE-from-vacuum-phase-I.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmupqov04 RnJvbSAwNWRmZTg4NDFlNGE5MGRjNTk1Nzc1ODYzZDU4YmFjY2U5OTZkNzBiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDIgRGVjIDIwMjUgMTU6MDc6NDIgLTA1MDAKU3ViamVjdDogW1BB VENIIHY0MCAwNS8xMl0gRWxpbWluYXRlIFhMT0dfSEVBUDJfVklTSUJMRSBmcm9tIHZhY3V1bSBw aGFzZSBJCiBwcnVuZS9mcmVlemUKClZhY3V1bSBubyBsb25nZXIgZW1pdHMgYSBzZXBhcmF0ZSBX QUwgcmVjb3JkIGZvciBlYWNoIHBhZ2Ugc2V0CmFsbC12aXNpYmxlIG9yIGFsbC1mcm96ZW4gZHVy aW5nIHBoYXNlIEkuIEluc3RlYWQsIHZpc2liaWxpdHkgbWFwCnVwZGF0ZXMgYXJlIG5vdyBpbmNs dWRlZCBpbiB0aGUgWExPR19IRUFQMl9QUlVORV9WQUNVVU1fU0NBTiByZWNvcmQgdGhhdAppcyBh bHJlYWR5IGVtaXR0ZWQgZm9yIHBydW5pbmcgYW5kIGZyZWV6aW5nLgoKUHJldmlvdXNseSwgaGVh cF9wYWdlX3BydW5lX2FuZF9mcmVlemUoKSBkZXRlcm1pbmVkIHdoZXRoZXIgYSBwYWdlIHdhcwph bGwtdmlzaWJsZSwgYnV0IHRoZSBjb3JyZXNwb25kaW5nIFZNIGJpdHMgd2VyZSBvbmx5IHNldCBs YXRlciBpbgpsYXp5X3NjYW5fcHJ1bmUoKS4gTm93IHRoZSBWTSBpcyB1cGRhdGVkIGltbWVkaWF0 ZWx5IGluCmhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKCksIGF0IHRoZSBzYW1lIHRpbWUgYXMg dGhlIGhlYXAKbW9kaWZpY2F0aW9ucy4KClRoaXMgY2hhbmdlIGFwcGxpZXMgb25seSB0byB2YWN1 dW0gcGhhc2UgSSwgbm90IHRvIHBydW5pbmcgcGVyZm9ybWVkCmR1cmluZyBub3JtYWwgcGFnZSBh Y2Nlc3MuCgpBdXRob3I6IE1lbGFuaWUgUGxhZ2VtYW4gPG1lbGFuaWVwbGFnZW1hbkBnbWFpbC5j b20+ClJldmlld2VkLWJ5OiBBbmRyZXMgRnJldW5kIDxhbmRyZXNAYW5hcmF6ZWwuZGU+ClJldmll d2VkLWJ5OiBSb2JlcnQgSGFhcyA8cm9iZXJ0bWhhYXNAZ21haWwuY29tPgpSZXZpZXdlZC1ieTog S2lyaWxsIFJlc2hrZSA8cmVzaGtla2lyaWxsQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENoYW8g TGkgPGxpLmV2YW4uY2hhb0BnbWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVz L20vZmxhdC9DQUFLUnVfWk13Nk5wZF9xbTJLTSUyQkZ3UTNjTU9NeDFEaDNWTWhwOC1WN1NPTHhk SzktZyU0MG1haWwuZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVo ZWFwLmMgIHwgMjYzICsrKysrKysrKysrKysrKysrKystLS0tLS0tLQogc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvdmFjdXVtbGF6eS5jIHwgMTA3ICstLS0tLS0tLS0tCiBzcmMvaW5jbHVkZS9hY2Nl c3MvaGVhcGFtLmggICAgICAgICAgfCAgMzggKystLQogMyBmaWxlcyBjaGFuZ2VkLCAyMDggaW5z ZXJ0aW9ucygrKSwgMjAwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFw LmMKaW5kZXggZDI3Njc3MGI5YjQuLjYzM2Q0NGFkYjAzIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9w cnVuZWhlYXAuYwpAQCAtNzIsNiArNzIsMjEgQEAgdHlwZWRlZiBzdHJ1Y3QKIAlPZmZzZXROdW1i ZXIgbm93dW51c2VkW01heEhlYXBUdXBsZXNQZXJQYWdlXTsKIAlIZWFwVHVwbGVGcmVlemUgZnJv emVuW01heEhlYXBUdXBsZXNQZXJQYWdlXTsKIAorCS8qCisJICogc2V0X2FsbF92aXNpYmxlIGFu ZCBzZXRfYWxsX2Zyb3plbiBpbmRpY2F0ZSBpZiB0aGUgYWxsLXZpc2libGUgYW5kCisJICogYWxs LWZyb3plbiBiaXRzIGluIHRoZSB2aXNpYmlsaXR5IG1hcCBjYW4gYmUgc2V0IGZvciB0aGlzIHBh Z2UgYWZ0ZXIKKwkgKiBwcnVuaW5nLgorCSAqCisJICogTk9URTogc2V0X2FsbF92aXNpYmxlIGFu ZCBzZXRfYWxsX2Zyb3plbiBpbml0aWFsbHkgZG9uJ3QgaW5jbHVkZQorCSAqIExQX0RFQUQgaXRl bXMuIFRoYXQncyBjb252ZW5pZW50IGZvciBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgpIHRv CisJICogdXNlIHRoZW0gdG8gZGVjaWRlIHdoZXRoZXIgdG8gb3Bwb3J0dW5pc3RpY2FsbHkgZnJl ZXplIHRoZSBwYWdlIG9yIG5vdC4KKwkgKiBUaGUgc2V0X2FsbF92aXNpYmxlIGFuZCBzZXRfYWxs X2Zyb3plbiB2YWx1ZXMgdWx0aW1hdGVseSB1c2VkIHRvIHNldAorCSAqIHRoZSBWTSBhcmUgYWRq dXN0ZWQgdG8gaW5jbHVkZSBMUF9ERUFEIGl0ZW1zIGFmdGVyIHdlIGRldGVybWluZSB3aGV0aGVy CisJICogb3Igbm90IHRvIG9wcG9ydHVuaXN0aWNhbGx5IGZyZWV6ZS4KKwkgKi8KKwlib29sCQlz ZXRfYWxsX3Zpc2libGU7CisJYm9vbAkJc2V0X2FsbF9mcm96ZW47CisKIAkvKi0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAkgKiBXb3JraW5n IHN0YXRlIGZvciBIT1QgY2hhaW4gcHJvY2Vzc2luZwogCSAqLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtMTIyLDEyICsxMzcsMTYgQEAg dHlwZWRlZiBzdHJ1Y3QKIAkvKgogCSAqIENhbGxlciBtdXN0IHByb3ZpZGUgYSBwaW5uZWQgdm1i dWZmZXIgY29ycmVzcG9uZGluZyB0byB0aGUgaGVhcCBibG9jawogCSAqIHBhc3NlZCB0byBoZWFw X3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgpLiBXZSB3aWxsIGZpeCBhbnkgY29ycnVwdGlvbgotCSAq IGZvdW5kIGluIHRoZSBWTS4KKwkgKiBmb3VuZCBpbiB0aGUgVk0gYW5kIHNldCB0aGUgVk0gaWYg dGhlIHBhZ2UgaXMgYWxsLXZpc2libGUvYWxsLWZyb3plbi4KIAkgKi8KIAlCdWZmZXIJCXZtYnVm ZmVyOwogCi0JLyogQml0cyBpbiB0aGUgdm1idWZmZXIgZm9yIHRoaXMgaGVhcCBwYWdlICovCi0J dWludDgJCXZtYml0czsKKwkvKgorCSAqIFRoZSBzdGF0ZSBvZiB0aGUgVk0gYml0cyBhdCB0aGUg YmVnaW5uaW5nIG9mIHBydW5pbmcgYW5kIHRoZSBzdGF0ZSB0aGV5CisJICogd2lsbCBiZSBpbiBh dCB0aGUgZW5kLgorCSAqLworCXVpbnQ4CQlvbGRfdm1iaXRzOworCXVpbnQ4CQluZXdfdm1iaXRz OwogCiAJLyogVGhlIG5ld2VzdCB4bWluIG9mIGxpdmUgdHVwbGVzIG9uIHRoZSBwYWdlICovCiAJ VHJhbnNhY3Rpb25JZCBuZXdlc3RfbGl2ZV94aWQ7CkBAIC0xNjMsMjEgKzE4Miw2IEBAIHR5cGVk ZWYgc3RydWN0CiAJICovCiAJaW50CQkJbHBkZWFkX2l0ZW1zOwkvKiBudW1iZXIgb2YgaXRlbXMg aW4gdGhlIGFycmF5ICovCiAJT2Zmc2V0TnVtYmVyICpkZWFkb2Zmc2V0czsJLyogcG9pbnRzIGRp cmVjdGx5IHRvIHByZXN1bHQtPmRlYWRvZmZzZXRzICovCi0KLQkvKgotCSAqIHNldF9hbGxfdmlz aWJsZSBhbmQgc2V0X2FsbF9mcm96ZW4gaW5kaWNhdGUgaWYgdGhlIGFsbC12aXNpYmxlIGFuZAot CSAqIGFsbC1mcm96ZW4gYml0cyBpbiB0aGUgdmlzaWJpbGl0eSBtYXAgY2FuIGJlIHNldCBmb3Ig dGhpcyBwYWdlIGFmdGVyCi0JICogcHJ1bmluZy4KLQkgKgotCSAqIE5PVEU6IHNldF9hbGxfdmlz aWJsZSBhbmQgc2V0X2FsbF9mcm96ZW4gaW5pdGlhbGx5IGRvbid0IGluY2x1ZGUKLQkgKiBMUF9E RUFEIGl0ZW1zLiBUaGF0J3MgY29udmVuaWVudCBmb3IgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVl emUoKSB0bwotCSAqIHVzZSB0aGVtIHRvIGRlY2lkZSB3aGV0aGVyIHRvIGZyZWV6ZSB0aGUgcGFn ZSBvciBub3QuICBUaGUKLQkgKiBzZXRfYWxsX3Zpc2libGUgYW5kIHNldF9hbGxfZnJvemVuIHZh bHVlcyByZXR1cm5lZCB0byB0aGUgY2FsbGVyIGFyZQotCSAqIGFkanVzdGVkIHRvIGluY2x1ZGUg TFBfREVBRCBpdGVtcyBhZnRlciB3ZSBkZXRlcm1pbmUgd2hldGhlciB0bwotCSAqIG9wcG9ydHVu aXN0aWNhbGx5IGZyZWV6ZS4KLQkgKi8KLQlib29sCQlzZXRfYWxsX3Zpc2libGU7Ci0JYm9vbAkJ c2V0X2FsbF9mcm96ZW47CiB9IFBydW5lU3RhdGU7CiAKIC8qIExvY2FsIGZ1bmN0aW9ucyAqLwpA QCAtMjE1LDcgKzIxOSw3IEBAIHN0YXRpYyB2b2lkIHBhZ2VfdmVyaWZ5X3JlZGlyZWN0cyhQYWdl IHBhZ2UpOwogCiBzdGF0aWMgYm9vbCBoZWFwX3BhZ2Vfd2lsbF9mcmVlemUoYm9vbCBkaWRfdHVw bGVfaGludF9mcGksIGJvb2wgZG9fcHJ1bmUsIGJvb2wgZG9faGludF9wcnVuZSwKIAkJCQkJCQkJ ICBQcnVuZVN0YXRlICpwcnN0YXRlKTsKLQorc3RhdGljIGJvb2wgaGVhcF9wYWdlX3dpbGxfc2V0 X3ZtKFBydW5lU3RhdGUgKnByc3RhdGUsIFBydW5lUmVhc29uIHJlYXNvbik7CiAKIC8qCiAgKiBP cHRpb25hbGx5IHBydW5lIGFuZCByZXBhaXIgZnJhZ21lbnRhdGlvbiBpbiB0aGUgc3BlY2lmaWVk IHBhZ2UuCkBAIC0zODEsMTcgKzM4NSwxOCBAQCBwcnVuZV9mcmVlemVfc2V0dXAoUHJ1bmVGcmVl emVQYXJhbXMgKnBhcmFtcywKIAogCUFzc2VydChCdWZmZXJJc1ZhbGlkKHBhcmFtcy0+dm1idWZm ZXIpKTsKIAlwcnN0YXRlLT52bWJ1ZmZlciA9IHBhcmFtcy0+dm1idWZmZXI7Ci0JcHJzdGF0ZS0+ dm1iaXRzID0gdmlzaWJpbGl0eW1hcF9nZXRfc3RhdHVzKHByc3RhdGUtPnJlbGF0aW9uLAotCQkJ CQkJCQkJCQkgICBwcnN0YXRlLT5ibG9jaywKLQkJCQkJCQkJCQkJICAgJnByc3RhdGUtPnZtYnVm ZmVyKTsKKwlwcnN0YXRlLT5uZXdfdm1iaXRzID0gMDsKKwlwcnN0YXRlLT5vbGRfdm1iaXRzID0g dmlzaWJpbGl0eW1hcF9nZXRfc3RhdHVzKHByc3RhdGUtPnJlbGF0aW9uLAorCQkJCQkJCQkJCQkJ ICAgcHJzdGF0ZS0+YmxvY2ssCisJCQkJCQkJCQkJCQkgICAmcHJzdGF0ZS0+dm1idWZmZXIpOwog CiAJLyoKIAkgKiBJZiB0aGUgcGFnZSBpcyBhbHJlYWR5IGFsbC1mcm96ZW4sIG9yIGFscmVhZHkg YWxsLXZpc2libGUgd2hlbiBmcmVlemluZwogCSAqIGlzIG5vdCBiZWluZyBhdHRlbXB0ZWQsIHdl IGNhbiBza2lwIHBydW5pbmcgYW5kIGZyZWV6aW5nIGVudGlyZWx5LgogCSAqIENhbGxlcnMgbXVz dCBvcHQgaW4gYnkgc2V0dGluZyBIRUFQX1BBR0VfUFJVTkVfQUxMT1dfRkFTVF9QQVRILgogCSAq LwotCXByc3RhdGUtPmZhc3RfcGF0aCA9ICgocHJzdGF0ZS0+dm1iaXRzICYgVklTSUJJTElUWU1B UF9BTExfRlJPWkVOKSB8fAotCQkJCQkJICAoKHByc3RhdGUtPnZtYml0cyAmIFZJU0lCSUxJVFlN QVBfQUxMX1ZJU0lCTEUpICYmCisJcHJzdGF0ZS0+ZmFzdF9wYXRoID0gKChwcnN0YXRlLT5vbGRf dm1iaXRzICYgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOKSB8fAorCQkJCQkJICAoKHByc3RhdGUt Pm9sZF92bWJpdHMgJiBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFKSAmJgogCQkJCQkJICAgIXBy c3RhdGUtPmF0dGVtcHRfZnJlZXplKSkgJiYKIAkJKHBhcmFtcy0+b3B0aW9ucyAmIEhFQVBfUEFH RV9QUlVORV9BTExPV19GQVNUX1BBVEgpOwogCkBAIC04NTYsNyArODYxLDcgQEAgaGVhcF9maXhf dm1fY29ycnVwdGlvbihQcnVuZVN0YXRlICpwcnN0YXRlLCBPZmZzZXROdW1iZXIgb2ZmbnVtKQog CQlQYWdlQ2xlYXJBbGxWaXNpYmxlKHByc3RhdGUtPnBhZ2UpOwogCQlNYXJrQnVmZmVyRGlydHlI aW50KHByc3RhdGUtPmJ1ZmZlciwgdHJ1ZSk7CiAJfQotCWVsc2UgaWYgKHByc3RhdGUtPnZtYml0 cyAmIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUykKKwllbHNlIGlmIChwcnN0YXRlLT5vbGRfdm1i aXRzICYgVklTSUJJTElUWU1BUF9WQUxJRF9CSVRTKQogCXsKIAkJLyoKIAkJICogQXMgb2YgUG9z dGdyZVNRTCA5LjIsIHRoZSB2aXNpYmlsaXR5IG1hcCBiaXQgc2hvdWxkIG5ldmVyIGJlIHNldCBp ZgpAQCAtODc0LDcgKzg3OSw0MyBAQCBoZWFwX2ZpeF92bV9jb3JydXB0aW9uKFBydW5lU3RhdGUg KnByc3RhdGUsIE9mZnNldE51bWJlciBvZmZudW0pCiAKIAl2aXNpYmlsaXR5bWFwX2NsZWFyKHBy c3RhdGUtPnJlbGF0aW9uLCBwcnN0YXRlLT5ibG9jaywgcHJzdGF0ZS0+dm1idWZmZXIsCiAJCQkJ CQlWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMpOwotCXByc3RhdGUtPnZtYml0cyA9IDA7CisJcHJz dGF0ZS0+b2xkX3ZtYml0cyA9IDA7Cit9CisKKy8qCisgKiBEZWNpZGUgd2hldGhlciB0byBzZXQg dGhlIHZpc2liaWxpdHkgbWFwIGJpdHMgKGFsbC12aXNpYmxlIGFuZCBhbGwtZnJvemVuKQorICog Zm9yIGhlYXBfYmxrIHVzaW5nIGluZm9ybWF0aW9uIGZyb20gdGhlIFBydW5lU3RhdGUgYW5kIFZN LgorICoKKyAqIFRoaXMgZnVuY3Rpb24gZG9lcyBub3QgYWN0dWFsbHkgc2V0IHRoZSBWTSBiaXRz IG9yIHBhZ2UtbGV2ZWwgdmlzaWJpbGl0eQorICogaGludCwgUERfQUxMX1ZJU0lCTEUuCisgKgor ICogUmV0dXJucyB0cnVlIGlmIG9uZSBvciBib3RoIFZNIGJpdHMgc2hvdWxkIGJlIHNldCBhbmQg ZmFsc2Ugb3RoZXJ3aXNlLgorICovCitzdGF0aWMgYm9vbAoraGVhcF9wYWdlX3dpbGxfc2V0X3Zt KFBydW5lU3RhdGUgKnByc3RhdGUsIFBydW5lUmVhc29uIHJlYXNvbikKK3sKKwkvKgorCSAqIFRo b3VnaCBvbi1hY2Nlc3MgcHJ1bmluZyBtYWludGFpbnMgcHJzdGF0ZS0+c2V0X2FsbF92aXNpYmxl LCB3ZSBkb24ndAorCSAqIGNvbnNpZGVyIHNldHRpbmcgdGhlIFZNLgorCSAqLworCWlmIChyZWFz b24gPT0gUFJVTkVfT05fQUNDRVNTKQorCQlyZXR1cm4gZmFsc2U7CisKKwlpZiAoIXByc3RhdGUt PnNldF9hbGxfdmlzaWJsZSkKKwkJcmV0dXJuIGZhbHNlOworCisJcHJzdGF0ZS0+bmV3X3ZtYml0 cyA9IFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEU7CisKKwlpZiAocHJzdGF0ZS0+c2V0X2FsbF9m cm96ZW4pCisJCXByc3RhdGUtPm5ld192bWJpdHMgfD0gVklTSUJJTElUWU1BUF9BTExfRlJPWkVO OworCisJaWYgKHByc3RhdGUtPm5ld192bWJpdHMgPT0gcHJzdGF0ZS0+b2xkX3ZtYml0cykKKwl7 CisJCXByc3RhdGUtPm5ld192bWJpdHMgPSAwOworCQlyZXR1cm4gZmFsc2U7CisJfQorCisJcmV0 dXJuIHRydWU7CiB9CiAKIC8qCkBAIC05MDMsMTUgKzk0NCwxMyBAQCBoZWFwX3BhZ2VfYnlwYXNz X3BydW5lX2ZyZWV6ZShQcnVuZVN0YXRlICpwcnN0YXRlLCBQcnVuZUZyZWV6ZVJlc3VsdCAqcHJl c3VsdCkKIAlPZmZzZXROdW1iZXIgbWF4b2ZmID0gUGFnZUdldE1heE9mZnNldE51bWJlcihwcnN0 YXRlLT5wYWdlKTsKIAlQYWdlCQlwYWdlID0gcHJzdGF0ZS0+cGFnZTsKIAotCUFzc2VydChwcnN0 YXRlLT52bWJpdHMgJiBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4gfHwKLQkJICAgKHByc3RhdGUt PnZtYml0cyAmIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUgJiYKKwlBc3NlcnQocHJzdGF0ZS0+ b2xkX3ZtYml0cyAmIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTiB8fAorCQkgICAocHJzdGF0ZS0+ b2xkX3ZtYml0cyAmIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUgJiYKIAkJCSFwcnN0YXRlLT5h dHRlbXB0X2ZyZWV6ZSkpOwogCiAJLyogV2UnbGwgZmlsbCBpbiBwcmVzdWx0IGZvciB0aGUgY2Fs bGVyICovCiAJbWVtc2V0KHByZXN1bHQsIDAsIHNpemVvZihQcnVuZUZyZWV6ZVJlc3VsdCkpOwog Ci0JcHJlc3VsdC0+dm1iaXRzID0gcHJzdGF0ZS0+dm1iaXRzOwotCiAJLyogQ2xlYXIgYW55IHN0 YWxlIHBydW5lIGhpbnQgKi8KIAlpZiAoVHJhbnNhY3Rpb25JZElzVmFsaWQoUGFnZUdldFBydW5l WGlkKHBhZ2UpKSkKIAl7CkBAIC05NDEsNyArOTgwLDggQEAgaGVhcF9wYWdlX2J5cGFzc19wcnVu ZV9mcmVlemUoUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgUHJ1bmVGcmVlemVSZXN1bHQgKnByZXN1bHQp CiAKIC8qCiAgKiBQcnVuZSBhbmQgcmVwYWlyIGZyYWdtZW50YXRpb24gYW5kIHBvdGVudGlhbGx5 IGZyZWV6ZSB0dXBsZXMgb24gdGhlCi0gKiBzcGVjaWZpZWQgcGFnZS4KKyAqIHNwZWNpZmllZCBw YWdlLiBJZiB0aGUgcGFnZSdzIHZpc2liaWxpdHkgc3RhdHVzIGhhcyBjaGFuZ2VkLCB1cGRhdGUg aXQgaW4KKyAqIHRoZSBWTS4KICAqCiAgKiBDYWxsZXIgbXVzdCBoYXZlIHBpbiBhbmQgYnVmZmVy IGNsZWFudXAgbG9jayBvbiB0aGUgcGFnZS4gIE5vdGUgdGhhdCB3ZQogICogZG9uJ3QgdXBkYXRl IHRoZSBGU00gaW5mb3JtYXRpb24gZm9yIHBhZ2Ugb24gY2FsbGVyJ3MgYmVoYWxmLiAgQ2FsbGVy IG1pZ2h0CkBAIC05NTYsMTIgKzk5NiwxMCBAQCBoZWFwX3BhZ2VfYnlwYXNzX3BydW5lX2ZyZWV6 ZShQcnVuZVN0YXRlICpwcnN0YXRlLCBQcnVuZUZyZWV6ZVJlc3VsdCAqcHJlc3VsdCkKICAqIHR1 cGxlcyBpZiBpdCdzIHJlcXVpcmVkIGluIG9yZGVyIHRvIGFkdmFuY2UgcmVsZnJvemVueGlkIC8g cmVsbWlubXhpZCwgb3IKICAqIGlmIGl0J3MgY29uc2lkZXJlZCBhZHZhbnRhZ2VvdXMgZm9yIG92 ZXJhbGwgc3lzdGVtIHBlcmZvcm1hbmNlIHRvIGRvIHNvCiAgKiBub3cuICBUaGUgJ3BhcmFtcy5j dXRvZmZzJywgJ3ByZXN1bHQnLCAnbmV3X3JlbGZyb3plbl94aWQnIGFuZAotICogJ25ld19yZWxt aW5fbXhpZCcgYXJndW1lbnRzIGFyZSByZXF1aXJlZCB3aGVuIGZyZWV6aW5nLiAgV2hlbgotICog SEVBUF9QQUdFX1BSVU5FX0ZSRUVaRSBvcHRpb24gaXMgcGFzc2VkLCB3ZSBhbHNvIHNldAotICog cHJlc3VsdC0+c2V0X2FsbF92aXNpYmxlIGFuZCBwcmVzdWx0LT5zZXRfYWxsX2Zyb3plbiBhZnRl ciBkZXRlcm1pbmluZwotICogd2hldGhlciBvciBub3QgdG8gb3Bwb3J0dW5pc3RpY2FsbHkgZnJl ZXplLCB0byBpbmRpY2F0ZSBpZiB0aGUgVk0gYml0cyBjYW4KLSAqIGJlIHNldC4gJ2FsbC1mcm96 ZW4nIGlzIGFsd2F5cyBzZXQgdG8gZmFsc2Ugd2hlbiB0aGUgSEVBUF9QQUdFX1BSVU5FX0ZSRUVa RQotICogb3B0aW9uIGlzIG5vdCBwYXNzZWQuCisgKiAnbmV3X3JlbG1pbl9teGlkJyBhcmd1bWVu dHMgYXJlIHJlcXVpcmVkIHdoZW4gZnJlZXppbmcuCisgKgorICogQSB2bWJ1ZmZlciBjb3JyZXNw b25kaW5nIHRvIHRoZSBoZWFwIHBhZ2UgaXMgYWxzbyBwYXNzZWQgYW5kIGlmIHRoZSBwYWdlIGlz CisgKiBmb3VuZCB0byBiZSBhbGwtdmlzaWJsZS9hbGwtZnJvemVuLCB3ZSB3aWxsIHNldCBpdCBp biB0aGUgVk0uCiAgKgogICogcHJlc3VsdCBjb250YWlucyBvdXRwdXQgcGFyYW1ldGVycyBuZWVk ZWQgYnkgY2FsbGVycywgc3VjaCBhcyB0aGUgbnVtYmVyIG9mCiAgKiB0dXBsZXMgcmVtb3ZlZCBh bmQgdGhlIG9mZnNldHMgb2YgZGVhZCBpdGVtcyBvbiB0aGUgcGFnZSBhZnRlciBwcnVuaW5nLgpA QCAtOTg5LDE1ICsxMDI3LDE3IEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFBydW5lRnJl ZXplUGFyYW1zICpwYXJhbXMsCiAJYm9vbAkJZG9fZnJlZXplOwogCWJvb2wJCWRvX3BydW5lOwog CWJvb2wJCWRvX2hpbnRfcHJ1bmU7CisJYm9vbAkJZG9fc2V0X3ZtOwogCWJvb2wJCWRpZF90dXBs ZV9oaW50X2ZwaTsKIAlpbnQ2NAkJZnBpX2JlZm9yZSA9IHBnV2FsVXNhZ2Uud2FsX2ZwaTsKKwlU cmFuc2FjdGlvbklkIGNvbmZsaWN0X3hpZCA9IEludmFsaWRUcmFuc2FjdGlvbklkOwogCiAJLyog SW5pdGlhbGl6ZSBwcnN0YXRlICovCiAJcHJ1bmVfZnJlZXplX3NldHVwKHBhcmFtcywKIAkJCQkJ ICAgbmV3X3JlbGZyb3plbl94aWQsIG5ld19yZWxtaW5fbXhpZCwKIAkJCQkJICAgcHJlc3VsdCwg JnByc3RhdGUpOwogCi0JaWYgKChwcnN0YXRlLnZtYml0cyAmIFZJU0lCSUxJVFlNQVBfVkFMSURf QklUUykgJiYKKwlpZiAoKHByc3RhdGUub2xkX3ZtYml0cyAmIFZJU0lCSUxJVFlNQVBfVkFMSURf QklUUykgJiYKIAkJIVBhZ2VJc0FsbFZpc2libGUocHJzdGF0ZS5wYWdlKSkKIAkJaGVhcF9maXhf dm1fY29ycnVwdGlvbigmcHJzdGF0ZSwgSW52YWxpZE9mZnNldE51bWJlcik7CiAKQEAgLTEwNzYs NiArMTExNiwzMCBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShQcnVuZUZyZWV6ZVBhcmFt cyAqcGFyYW1zLAogCQlwcnN0YXRlLnNldF9hbGxfdmlzaWJsZSA9IHByc3RhdGUuc2V0X2FsbF9m cm96ZW4gPSBmYWxzZTsKIAogCUFzc2VydCghcHJzdGF0ZS5zZXRfYWxsX2Zyb3plbiB8fCBwcnN0 YXRlLnNldF9hbGxfdmlzaWJsZSk7CisJQXNzZXJ0KCFwcnN0YXRlLnNldF9hbGxfdmlzaWJsZSB8 fCAocHJzdGF0ZS5scGRlYWRfaXRlbXMgPT0gMCkpOworCisJZG9fc2V0X3ZtID0gaGVhcF9wYWdl X3dpbGxfc2V0X3ZtKCZwcnN0YXRlLCBwYXJhbXMtPnJlYXNvbik7CisKKwkvKgorCSAqIG5ld192 bWJpdHMgc2hvdWxkIGJlIDAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIG9yIG5vdCB0aGUgcGFnZSBp cworCSAqIGFsbC12aXNpYmxlIGlmIHdlIGRvIG5vdCBpbnRlbmQgdG8gc2V0IHRoZSBWTS4KKwkg Ki8KKwlBc3NlcnQoZG9fc2V0X3ZtIHx8IHByc3RhdGUubmV3X3ZtYml0cyA9PSAwKTsKKworCS8q CisJICogVGhlIHNuYXBzaG90IGNvbmZsaWN0IGhvcml6b24gZm9yIHRoZSB3aG9sZSByZWNvcmQg aXMgdGhlIG1vc3QKKwkgKiBjb25zZXJ2YXRpdmUgKG5ld2VzdCkgaG9yaXpvbiByZXF1aXJlZCBi eSBhbnkgY2hhbmdlIGluIHRoZSByZWNvcmQuCisJICovCisJaWYgKGRvX3NldF92bSkKKwkJY29u ZmxpY3RfeGlkID0gcHJzdGF0ZS5uZXdlc3RfbGl2ZV94aWQ7CisJaWYgKGRvX2ZyZWV6ZSAmJiBU cmFuc2FjdGlvbklkRm9sbG93cyhwcnN0YXRlLnBhZ2VmcnouRnJlZXplUGFnZUNvbmZsaWN0WGlk LCBjb25mbGljdF94aWQpKQorCQljb25mbGljdF94aWQgPSBwcnN0YXRlLnBhZ2VmcnouRnJlZXpl UGFnZUNvbmZsaWN0WGlkOworCWlmIChkb19wcnVuZSAmJiBUcmFuc2FjdGlvbklkRm9sbG93cyhw cnN0YXRlLmxhdGVzdF94aWRfcmVtb3ZlZCwgY29uZmxpY3RfeGlkKSkKKwkJY29uZmxpY3RfeGlk ID0gcHJzdGF0ZS5sYXRlc3RfeGlkX3JlbW92ZWQ7CisKKwkvKiBMb2NrIHZtYnVmZmVyIGJlZm9y ZSBlbnRlcmluZyBhIGNyaXRpY2FsIHNlY3Rpb24gKi8KKwlpZiAoZG9fc2V0X3ZtKQorCQlMb2Nr QnVmZmVyKHByc3RhdGUudm1idWZmZXIsIEJVRkZFUl9MT0NLX0VYQ0xVU0lWRSk7CiAKIAkvKiBB bnkgZXJyb3Igd2hpbGUgYXBwbHlpbmcgdGhlIGNoYW5nZXMgaXMgY3JpdGljYWwgKi8KIAlTVEFS VF9DUklUX1NFQ1RJT04oKTsKQEAgLTEwOTcsMTQgKzExNjEsMTcgQEAgaGVhcF9wYWdlX3BydW5l X2FuZF9mcmVlemUoUHJ1bmVGcmVlemVQYXJhbXMgKnBhcmFtcywKIAogCQkvKgogCQkgKiBJZiB0 aGF0J3MgYWxsIHdlIGhhZCB0byBkbyB0byB0aGUgcGFnZSwgdGhpcyBpcyBhIG5vbi1XQUwtbG9n Z2VkCi0JCSAqIGhpbnQuICBJZiB3ZSBhcmUgZ29pbmcgdG8gZnJlZXplIG9yIHBydW5lIHRoZSBw YWdlLCB3ZSB3aWxsIG1hcmsKLQkJICogdGhlIGJ1ZmZlciBkaXJ0eSBiZWxvdy4KKwkJICogaGlu dC4gIElmIHdlIGFyZSBnb2luZyB0byBmcmVlemUgb3IgcHJ1bmUgdGhlIHBhZ2Ugb3Igc2V0CisJ CSAqIFBEX0FMTF9WSVNJQkxFLCB3ZSB3aWxsIG1hcmsgdGhlIGJ1ZmZlciBkaXJ0eSBiZWxvdy4K KwkJICoKKwkJICogU2V0dGluZyBQRF9BTExfVklTSUJMRSBpcyBmdWxseSBXQUwtbG9nZ2VkIGJl Y2F1c2UgaXQgaXMgZm9yYmlkZGVuCisJCSAqIGZvciB0aGUgVk0gdG8gYmUgc2V0IGFuZCBQRF9B TExfVklTSUJMRSB0byBiZSBjbGVhci4KIAkJICovCi0JCWlmICghZG9fZnJlZXplICYmICFkb19w cnVuZSkKKwkJaWYgKCFkb19mcmVlemUgJiYgIWRvX3BydW5lICYmICFkb19zZXRfdm0pCiAJCQlN YXJrQnVmZmVyRGlydHlIaW50KHByc3RhdGUuYnVmZmVyLCB0cnVlKTsKIAl9CiAKLQlpZiAoZG9f cHJ1bmUgfHwgZG9fZnJlZXplKQorCWlmIChkb19wcnVuZSB8fCBkb19mcmVlemUgfHwgZG9fc2V0 X3ZtKQogCXsKIAkJLyogQXBwbHkgdGhlIHBsYW5uZWQgaXRlbSBjaGFuZ2VzIGFuZCByZXBhaXIg cGFnZSBmcmFnbWVudGF0aW9uLiAqLwogCQlpZiAoZG9fcHJ1bmUpCkBAIC0xMTE4LDYgKzExODUs MjcgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUHJ1bmVGcmVlemVQYXJhbXMgKnBhcmFt cywKIAkJaWYgKGRvX2ZyZWV6ZSkKIAkJCWhlYXBfZnJlZXplX3ByZXBhcmVkX3R1cGxlcyhwcnN0 YXRlLmJ1ZmZlciwgcHJzdGF0ZS5mcm96ZW4sIHByc3RhdGUubmZyb3plbik7CiAKKwkJLyogU2V0 IHRoZSB2aXNpYmlsaXR5IG1hcCBhbmQgcGFnZSB2aXNpYmlsaXR5IGhpbnQgKi8KKwkJaWYgKGRv X3NldF92bSkKKwkJeworCQkJLyoKKwkJCSAqIFdoaWxlIGl0IGlzIHZhbGlkIGZvciBQRF9BTExf VklTSUJMRSB0byBiZSBzZXQgd2hlbiB0aGUKKwkJCSAqIGNvcnJlc3BvbmRpbmcgVk0gYml0IGlz IGNsZWFyLCB3ZSBzdHJvbmdseSBwcmVmZXIgdG8ga2VlcCB0aGVtCisJCQkgKiBpbiBzeW5jLgor CQkJICoKKwkJCSAqIFRoZSBoZWFwIGJ1ZmZlciBtdXN0IGJlIG1hcmtlZCBkaXJ0eSBiZWZvcmUg YWRkaW5nIGl0IHRvIHRoZQorCQkJICogV0FMIGNoYWluIHdoZW4gc2V0dGluZyB0aGUgVk0uIFdl IGRvbid0IHdvcnJ5IGFib3V0CisJCQkgKiB1bm5lY2Vzc2FyaWx5IGRpcnR5aW5nIHRoZSBoZWFw IGJ1ZmZlciBpZiBQRF9BTExfVklTSUJMRSBpcworCQkJICogYWxyZWFkeSBzZXQsIHRob3VnaC4g SXQgaXMgZXh0cmVtZWx5IHJhcmUgdG8gaGF2ZSBhIGNsZWFuIGhlYXAKKwkJCSAqIGJ1ZmZlciB3 aXRoIFBEX0FMTF9WSVNJQkxFIGFscmVhZHkgc2V0IGFuZCB0aGUgVk0gYml0cyBjbGVhciwKKwkJ CSAqIHNvIHRoZXJlIGlzIG5vIHBvaW50IGluIG9wdGltaXppbmcgaXQuCisJCQkgKi8KKwkJCVBh Z2VTZXRBbGxWaXNpYmxlKHByc3RhdGUucGFnZSk7CisJCQlQYWdlQ2xlYXJQcnVuYWJsZShwcnN0 YXRlLnBhZ2UpOworCQkJdmlzaWJpbGl0eW1hcF9zZXRfdm1iaXRzKHByc3RhdGUuYmxvY2ssIHBy c3RhdGUudm1idWZmZXIsIHByc3RhdGUubmV3X3ZtYml0cywKKwkJCQkJCQkJCSBwcnN0YXRlLnJl bGF0aW9uLT5yZF9sb2NhdG9yKTsKKwkJfQorCiAJCU1hcmtCdWZmZXJEaXJ0eShwcnN0YXRlLmJ1 ZmZlcik7CiAKIAkJLyoKQEAgLTExMjUsMjkgKzEyMTMsMTIgQEAgaGVhcF9wYWdlX3BydW5lX2Fu ZF9mcmVlemUoUHJ1bmVGcmVlemVQYXJhbXMgKnBhcmFtcywKIAkJICovCiAJCWlmIChSZWxhdGlv bk5lZWRzV0FMKHByc3RhdGUucmVsYXRpb24pKQogCQl7Ci0JCQkvKgotCQkJICogVGhlIHNuYXBz aG90Q29uZmxpY3RIb3Jpem9uIGZvciB0aGUgd2hvbGUgcmVjb3JkIHNob3VsZCBiZSB0aGUKLQkJ CSAqIG1vc3QgY29uc2VydmF0aXZlIG9mIGFsbCB0aGUgaG9yaXpvbnMgY2FsY3VsYXRlZCBmb3Ig YW55IG9mIHRoZQotCQkJICogcG9zc2libGUgbW9kaWZpY2F0aW9ucy4gSWYgdGhpcyByZWNvcmQg d2lsbCBwcnVuZSB0dXBsZXMsIGFueQotCQkJICogcXVlcmllcyBvbiB0aGUgc3RhbmRieSBvbGRl ciB0aGFuIHRoZSBuZXdlc3QgeGlkIG9mIHRoZSBtb3N0Ci0JCQkgKiByZWNlbnRseSByZW1vdmVk IHR1cGxlIHRoaXMgcmVjb3JkIHdpbGwgcHJ1bmUgd2lsbCBjb25mbGljdC4gSWYKLQkJCSAqIHRo aXMgcmVjb3JkIHdpbGwgZnJlZXplIHR1cGxlcywgYW55IHF1ZXJpZXMgb24gdGhlIHN0YW5kYnkg d2l0aAotCQkJICogeGlkcyBvbGRlciB0aGFuIHRoZSBuZXdlc3QgdHVwbGUgdGhpcyByZWNvcmQg d2lsbCBmcmVlemUgd2lsbAotCQkJICogY29uZmxpY3QuCi0JCQkgKi8KLQkJCVRyYW5zYWN0aW9u SWQgY29uZmxpY3RfeGlkOwotCi0JCQlpZiAoVHJhbnNhY3Rpb25JZEZvbGxvd3MocHJzdGF0ZS5w YWdlZnJ6LkZyZWV6ZVBhZ2VDb25mbGljdFhpZCwKLQkJCQkJCQkJCSBwcnN0YXRlLmxhdGVzdF94 aWRfcmVtb3ZlZCkpCi0JCQkJY29uZmxpY3RfeGlkID0gcHJzdGF0ZS5wYWdlZnJ6LkZyZWV6ZVBh Z2VDb25mbGljdFhpZDsKLQkJCWVsc2UKLQkJCQljb25mbGljdF94aWQgPSBwcnN0YXRlLmxhdGVz dF94aWRfcmVtb3ZlZDsKLQogCQkJbG9nX2hlYXBfcHJ1bmVfYW5kX2ZyZWV6ZShwcnN0YXRlLnJl bGF0aW9uLCBwcnN0YXRlLmJ1ZmZlciwKLQkJCQkJCQkJCSAgSW52YWxpZEJ1ZmZlciwJLyogdm1i dWZmZXIgKi8KLQkJCQkJCQkJCSAgMCwJLyogdm1mbGFncyAqLworCQkJCQkJCQkJICBkb19zZXRf dm0gPyBwcnN0YXRlLnZtYnVmZmVyIDogSW52YWxpZEJ1ZmZlciwKKwkJCQkJCQkJCSAgZG9fc2V0 X3ZtID8gcHJzdGF0ZS5uZXdfdm1iaXRzIDogMCwKIAkJCQkJCQkJCSAgY29uZmxpY3RfeGlkLAot CQkJCQkJCQkJICB0cnVlLCBwYXJhbXMtPnJlYXNvbiwKKwkJCQkJCQkJCSAgdHJ1ZSwgLyogY2xl YW51cCBsb2NrICovCisJCQkJCQkJCQkgIHBhcmFtcy0+cmVhc29uLAogCQkJCQkJCQkJICBwcnN0 YXRlLmZyb3plbiwgcHJzdGF0ZS5uZnJvemVuLAogCQkJCQkJCQkJICBwcnN0YXRlLnJlZGlyZWN0 ZWQsIHByc3RhdGUubnJlZGlyZWN0ZWQsCiAJCQkJCQkJCQkgIHByc3RhdGUubm93ZGVhZCwgcHJz dGF0ZS5uZGVhZCwKQEAgLTExNTcsMzMgKzEyMjgsNjcgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9m cmVlemUoUHJ1bmVGcmVlemVQYXJhbXMgKnBhcmFtcywKIAogCUVORF9DUklUX1NFQ1RJT04oKTsK IAorCWlmIChkb19zZXRfdm0pCisJCUxvY2tCdWZmZXIocHJzdGF0ZS52bWJ1ZmZlciwgQlVGRkVS X0xPQ0tfVU5MT0NLKTsKKworCS8qCisJICogRHVyaW5nIGl0cyBzZWNvbmQgcGFzcyBvdmVyIHRo ZSBoZWFwLCBWQUNVVU0gY2FsbHMKKwkgKiBoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUo KSB0byBkZXRlcm1pbmUgd2hldGhlciBhIHBhZ2UgaXMKKwkgKiBhbGwtdmlzaWJsZSBhbmQgYWxs LWZyb3plbi4gVGhlIGxvZ2ljIGhlcmUgaXMgc2ltaWxhci4gQWZ0ZXIgY29tcGxldGluZworCSAq IHBydW5pbmcgYW5kIGZyZWV6aW5nLCB1c2UgYW4gYXNzZXJ0aW9uIHRvIHZlcmlmeSB0aGF0IG91 ciByZXN1bHRzCisJICogcmVtYWluIGNvbnNpc3RlbnQgd2l0aCBoZWFwX3BhZ2Vfd291bGRfYmVf YWxsX3Zpc2libGUoKS4KKwkgKi8KKyNpZmRlZiBVU0VfQVNTRVJUX0NIRUNLSU5HCisJaWYgKHBy c3RhdGUuc2V0X2FsbF92aXNpYmxlKQorCXsKKwkJVHJhbnNhY3Rpb25JZCBkZWJ1Z19jdXRvZmY7 CisJCWJvb2wJCWRlYnVnX2FsbF9mcm96ZW47CisKKwkJQXNzZXJ0KHByc3RhdGUubHBkZWFkX2l0 ZW1zID09IDApOworCisJCUFzc2VydChoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUocHJzdGF0ZS5y ZWxhdGlvbiwgcHJzdGF0ZS5idWZmZXIsCisJCQkJCQkJCQkJcHJzdGF0ZS52aXN0ZXN0LAorCQkJ CQkJCQkJCSZkZWJ1Z19hbGxfZnJvemVuLAorCQkJCQkJCQkJCSZkZWJ1Z19jdXRvZmYsIG9mZl9s b2MpKTsKKworCQkvKgorCQkgKiBJdCdzIHBvc3NpYmxlIHRoZSBwYWdlIGlzIGNvbXBvc2VkIGVu dGlyZWx5IG9mIGZyb3plbiB0dXBsZXMgYnV0IGlzCisJCSAqIG5vdCBzZXQgYWxsLWZyb3plbiBp biB0aGUgVk0gYW5kIGRpZCBub3QgcGFzcworCQkgKiBIRUFQX1BBR0VfUFJVTkVfRlJFRVpFLiBJ biB0aGlzIGNhc2UsIGl0J3MgcG9zc2libGUKKwkJICogaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxl KCkgZmluZHMgdGhlIHBhZ2UgY29tcGxldGVseSBmcm96ZW4sIGV2ZW4KKwkJICogdGhvdWdoIHBy c3RhdGUuc2V0X2FsbF9mcm96ZW4gaXMgZmFsc2UuCisJCSAqLworCQlBc3NlcnQoIXByc3RhdGUu c2V0X2FsbF9mcm96ZW4gfHwgZGVidWdfYWxsX2Zyb3plbik7CisJfQorI2VuZGlmCisKIAkvKiBD b3B5IGluZm9ybWF0aW9uIGJhY2sgZm9yIGNhbGxlciAqLwogCXByZXN1bHQtPm5kZWxldGVkID0g cHJzdGF0ZS5uZGVsZXRlZDsKIAlwcmVzdWx0LT5ubmV3bHBkZWFkID0gcHJzdGF0ZS5uZGVhZDsK IAlwcmVzdWx0LT5uZnJvemVuID0gcHJzdGF0ZS5uZnJvemVuOwogCXByZXN1bHQtPmxpdmVfdHVw bGVzID0gcHJzdGF0ZS5saXZlX3R1cGxlczsKIAlwcmVzdWx0LT5yZWNlbnRseV9kZWFkX3R1cGxl cyA9IHByc3RhdGUucmVjZW50bHlfZGVhZF90dXBsZXM7Ci0JcHJlc3VsdC0+c2V0X2FsbF92aXNp YmxlID0gcHJzdGF0ZS5zZXRfYWxsX3Zpc2libGU7Ci0JcHJlc3VsdC0+c2V0X2FsbF9mcm96ZW4g PSBwcnN0YXRlLnNldF9hbGxfZnJvemVuOwogCXByZXN1bHQtPmhhc3R1cCA9IHByc3RhdGUuaGFz dHVwOwotCXByZXN1bHQtPnZtYml0cyA9IHByc3RhdGUudm1iaXRzOwotCi0JLyoKLQkgKiBGb3Ig Y2FsbGVycyBwbGFubmluZyB0byB1cGRhdGUgdGhlIHZpc2liaWxpdHkgbWFwLCB0aGUgY29uZmxp Y3QgaG9yaXpvbgotCSAqIGZvciB0aGF0IHJlY29yZCBtdXN0IGJlIHRoZSBuZXdlc3QgeG1pbiBv biB0aGUgcGFnZS4gIEhvd2V2ZXIsIGlmIHRoZQotCSAqIHBhZ2UgaXMgY29tcGxldGVseSBmcm96 ZW4sIHRoZXJlIGNhbiBiZSBubyBjb25mbGljdCBhbmQgdGhlCi0JICogdm1fY29uZmxpY3RfaG9y aXpvbiBzaG91bGQgcmVtYWluIEludmFsaWRUcmFuc2FjdGlvbklkLiAgVGhpcyBpbmNsdWRlcwot CSAqIHRoZSBjYXNlIHRoYXQgd2UganVzdCBmcm96ZSBhbGwgdGhlIHR1cGxlczsgdGhlIHBydW5l LWZyZWV6ZSByZWNvcmQKLQkgKiBpbmNsdWRlZCB0aGUgY29uZmxpY3QgWElEIGFscmVhZHkgc28g dGhlIGNhbGxlciBkb2Vzbid0IG5lZWQgaXQuCi0JICovCi0JaWYgKHByZXN1bHQtPnNldF9hbGxf ZnJvemVuKQotCQlwcmVzdWx0LT52bV9jb25mbGljdF9ob3Jpem9uID0gSW52YWxpZFRyYW5zYWN0 aW9uSWQ7Ci0JZWxzZQotCQlwcmVzdWx0LT52bV9jb25mbGljdF9ob3Jpem9uID0gcHJzdGF0ZS5u ZXdlc3RfbGl2ZV94aWQ7CiAKIAlwcmVzdWx0LT5scGRlYWRfaXRlbXMgPSBwcnN0YXRlLmxwZGVh ZF9pdGVtczsKIAkvKiB0aGUgcHJlc3VsdC0+ZGVhZG9mZnNldHMgYXJyYXkgd2FzIGFscmVhZHkg ZmlsbGVkIGluICovCiAKKwlwcmVzdWx0LT5uZXdfYWxsX3Zpc2libGVfcGFnZXMgPSAwOworCXBy ZXN1bHQtPm5ld19hbGxfZnJvemVuX3BhZ2VzID0gMDsKKwlwcmVzdWx0LT5uZXdfYWxsX3Zpc2li bGVfZnJvemVuX3BhZ2VzID0gMDsKKwlpZiAoZG9fc2V0X3ZtKQorCXsKKwkJaWYgKChwcnN0YXRl Lm9sZF92bWJpdHMgJiBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFKSA9PSAwKQorCQl7CisJCQlw cmVzdWx0LT5uZXdfYWxsX3Zpc2libGVfcGFnZXMgPSAxOworCQkJaWYgKHByc3RhdGUuc2V0X2Fs bF9mcm96ZW4pCisJCQkJcHJlc3VsdC0+bmV3X2FsbF92aXNpYmxlX2Zyb3plbl9wYWdlcyA9IDE7 CisJCX0KKwkJZWxzZSBpZiAoKHByc3RhdGUub2xkX3ZtYml0cyAmIFZJU0lCSUxJVFlNQVBfQUxM X0ZST1pFTikgPT0gMCAmJgorCQkJCSBwcnN0YXRlLnNldF9hbGxfZnJvemVuKQorCQkJcHJlc3Vs dC0+bmV3X2FsbF9mcm96ZW5fcGFnZXMgPSAxOworCX0KKwogCWlmIChwcnN0YXRlLmF0dGVtcHRf ZnJlZXplKQogCXsKIAkJaWYgKHByZXN1bHQtPm5mcm96ZW4gPiAwKQpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvdmFjdXVtbGF6eS5jCmluZGV4IDRkNTJkZTFhOTZjLi41ZWE5NjA4N2ZhZCAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCisrKyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpAQCAtNDU5LDEzICs0NTksNiBAQCBzdGF0aWMgdm9p ZCBkZWFkX2l0ZW1zX2FkZChMVlJlbFN0YXRlICp2YWNyZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBP ZmZzZXROdW1iZXIgKgogc3RhdGljIHZvaWQgZGVhZF9pdGVtc19yZXNldChMVlJlbFN0YXRlICp2 YWNyZWwpOwogc3RhdGljIHZvaWQgZGVhZF9pdGVtc19jbGVhbnVwKExWUmVsU3RhdGUgKnZhY3Jl bCk7CiAKLSNpZmRlZiBVU0VfQVNTRVJUX0NIRUNLSU5HCi1zdGF0aWMgYm9vbCBoZWFwX3BhZ2Vf aXNfYWxsX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLAotCQkJCQkJCQkJIEdsb2Jh bFZpc1N0YXRlICp2aXN0ZXN0LAotCQkJCQkJCQkJIGJvb2wgKmFsbF9mcm96ZW4sCi0JCQkJCQkJ CQkgVHJhbnNhY3Rpb25JZCAqbmV3ZXN0X2xpdmVfeGlkLAotCQkJCQkJCQkJIE9mZnNldE51bWJl ciAqbG9nZ2luZ19vZmZudW0pOwotI2VuZGlmCiBzdGF0aWMgYm9vbCBoZWFwX3BhZ2Vfd291bGRf YmVfYWxsX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLAogCQkJCQkJCQkJCSAgIEds b2JhbFZpc1N0YXRlICp2aXN0ZXN0LAogCQkJCQkJCQkJCSAgIE9mZnNldE51bWJlciAqZGVhZG9m ZnNldHMsCkBAIC0xOTk2LDggKzE5ODksNiBAQCBsYXp5X3NjYW5fcHJ1bmUoTFZSZWxTdGF0ZSAq dmFjcmVsLAogCQkudmlzdGVzdCA9IHZhY3JlbC0+dmlzdGVzdCwKIAkJLmN1dG9mZnMgPSAmdmFj cmVsLT5jdXRvZmZzLAogCX07Ci0JdWludDgJCW9sZF92bWJpdHMgPSAwOwotCXVpbnQ4CQluZXdf dm1iaXRzID0gMDsKIAogCUFzc2VydChCdWZmZXJHZXRCbG9ja051bWJlcihidWYpID09IGJsa25v KTsKIApAQCAtMjA0OCwyOSArMjAzOSw2IEBAIGxhenlfc2Nhbl9wcnVuZShMVlJlbFN0YXRlICp2 YWNyZWwsCiAJCXZhY3JlbC0+bmV3X2Zyb3plbl90dXBsZV9wYWdlcysrOwogCX0KIAotCS8qCi0J ICogVkFDVVVNIHdpbGwgY2FsbCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoKSBkdXJpbmcgdGhl IHNlY29uZCBwYXNzIG92ZXIKLQkgKiB0aGUgaGVhcCB0byBkZXRlcm1pbmUgYWxsX3Zpc2libGUg YW5kIGFsbF9mcm96ZW4gZm9yIHRoZSBwYWdlIC0tIHRoaXMKLQkgKiBpcyBhIHNwZWNpYWxpemVk IHZlcnNpb24gb2YgdGhlIGxvZ2ljIGZyb20gdGhpcyBmdW5jdGlvbi4gIE5vdyB0aGF0Ci0JICog d2UndmUgZmluaXNoZWQgcHJ1bmluZyBhbmQgZnJlZXppbmcsIG1ha2Ugc3VyZSB0aGF0IHdlJ3Jl IGluIHRvdGFsCi0JICogYWdyZWVtZW50IHdpdGggaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKCkg dXNpbmcgYW4gYXNzZXJ0aW9uLgotCSAqLwotI2lmZGVmIFVTRV9BU1NFUlRfQ0hFQ0tJTkcKLQlp ZiAocHJlc3VsdC5zZXRfYWxsX3Zpc2libGUpCi0JewotCQlUcmFuc2FjdGlvbklkIGRlYnVnX2N1 dG9mZjsKLQkJYm9vbAkJZGVidWdfYWxsX2Zyb3plbjsKLQotCQlBc3NlcnQocHJlc3VsdC5scGRl YWRfaXRlbXMgPT0gMCk7Ci0KLQkJQXNzZXJ0KGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZSh2YWNy ZWwtPnJlbCwgYnVmLAotCQkJCQkJCQkJCXZhY3JlbC0+dmlzdGVzdCwgJmRlYnVnX2FsbF9mcm96 ZW4sCi0JCQkJCQkJCQkJJmRlYnVnX2N1dG9mZiwgJnZhY3JlbC0+b2ZmbnVtKSk7Ci0KLQkJQXNz ZXJ0KHByZXN1bHQuc2V0X2FsbF9mcm96ZW4gPT0gZGVidWdfYWxsX2Zyb3plbik7Ci0JfQotI2Vu ZGlmCi0KIAkvKgogCSAqIE5vdyBzYXZlIGRldGFpbHMgb2YgdGhlIExQX0RFQUQgaXRlbXMgZnJv bSB0aGUgcGFnZSBpbiB2YWNyZWwKIAkgKi8KQEAgLTIwOTEsNiArMjA1OSwxNCBAQCBsYXp5X3Nj YW5fcHJ1bmUoTFZSZWxTdGF0ZSAqdmFjcmVsLAogCX0KIAogCS8qIEZpbmFsbHksIGFkZCBwYWdl LWxvY2FsIGNvdW50cyB0byB3aG9sZS1WQUNVVU0gY291bnRzICovCisJdmFjcmVsLT5uZXdfYWxs X3Zpc2libGVfcGFnZXMgKz0gcHJlc3VsdC5uZXdfYWxsX3Zpc2libGVfcGFnZXM7CisJdmFjcmVs LT5uZXdfYWxsX3Zpc2libGVfYWxsX2Zyb3plbl9wYWdlcyArPSBwcmVzdWx0Lm5ld19hbGxfdmlz aWJsZV9mcm96ZW5fcGFnZXM7CisJdmFjcmVsLT5uZXdfYWxsX2Zyb3plbl9wYWdlcyArPSBwcmVz dWx0Lm5ld19hbGxfZnJvemVuX3BhZ2VzOworCisJLyogQ2FwdHVyZSBpZiB0aGUgcGFnZSB3YXMg bmV3bHkgc2V0IGZyb3plbiAqLworCSp2bV9wYWdlX2Zyb3plbiA9IHByZXN1bHQubmV3X2FsbF92 aXNpYmxlX2Zyb3plbl9wYWdlcyA+IDAgfHwKKwkJcHJlc3VsdC5uZXdfYWxsX2Zyb3plbl9wYWdl cyA+IDA7CisKIAl2YWNyZWwtPnR1cGxlc19kZWxldGVkICs9IHByZXN1bHQubmRlbGV0ZWQ7CiAJ dmFjcmVsLT50dXBsZXNfZnJvemVuICs9IHByZXN1bHQubmZyb3plbjsKIAl2YWNyZWwtPmxwZGVh ZF9pdGVtcyArPSBwcmVzdWx0LmxwZGVhZF9pdGVtczsKQEAgLTIxMDQsNzEgKzIwODAsNiBAQCBs YXp5X3NjYW5fcHJ1bmUoTFZSZWxTdGF0ZSAqdmFjcmVsLAogCS8qIERpZCB3ZSBmaW5kIExQX0RF QUQgaXRlbXM/ICovCiAJKmhhc19scGRlYWRfaXRlbXMgPSAocHJlc3VsdC5scGRlYWRfaXRlbXMg PiAwKTsKIAotCUFzc2VydCghcHJlc3VsdC5zZXRfYWxsX3Zpc2libGUgfHwgISgqaGFzX2xwZGVh ZF9pdGVtcykpOwotCUFzc2VydCghcHJlc3VsdC5zZXRfYWxsX2Zyb3plbiB8fCBwcmVzdWx0LnNl dF9hbGxfdmlzaWJsZSk7Ci0KLQlpZiAoIXByZXN1bHQuc2V0X2FsbF92aXNpYmxlKQotCQlyZXR1 cm4gcHJlc3VsdC5uZGVsZXRlZDsKLQotCS8qIFNldCB0aGUgdmlzaWJpbGl0eSBtYXAgYW5kIHBh Z2UgdmlzaWJpbGl0eSBoaW50ICovCi0Jb2xkX3ZtYml0cyA9IHByZXN1bHQudm1iaXRzOwotCW5l d192bWJpdHMgPSBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFOwotCWlmIChwcmVzdWx0LnNldF9h bGxfZnJvemVuKQotCQluZXdfdm1iaXRzIHw9IFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTjsKLQot CS8qIE5vdGhpbmcgdG8gZG8gKi8KLQlpZiAob2xkX3ZtYml0cyA9PSBuZXdfdm1iaXRzKQotCQly ZXR1cm4gcHJlc3VsdC5uZGVsZXRlZDsKLQotCS8qCi0JICogSXQgc2hvdWxkIG5ldmVyIGJlIHRo ZSBjYXNlIHRoYXQgdGhlIHZpc2liaWxpdHkgbWFwIHBhZ2UgaXMgc2V0IHdoaWxlCi0JICogdGhl IHBhZ2UtbGV2ZWwgYml0IGlzIGNsZWFyIChhbmQgaWYgc28sIHdlIGNsZWFyZWQgaXQgYWJvdmUp LCBidXQgdGhlCi0JICogcmV2ZXJzZSBpcyBhbGxvd2VkIChpZiBjaGVja3N1bXMgYXJlIG5vdCBl bmFibGVkKS4gUmVnYXJkbGVzcywgc2V0IGJvdGgKLQkgKiBiaXRzIHNvIHRoYXQgd2UgZ2V0IGJh Y2sgaW4gc3luYy4KLQkgKgotCSAqIFRoZSBoZWFwIGJ1ZmZlciBtdXN0IGJlIG1hcmtlZCBkaXJ0 eSBiZWZvcmUgYWRkaW5nIGl0IHRvIHRoZSBXQUwgY2hhaW4KLQkgKiB3aGVuIHNldHRpbmcgdGhl IFZNLiBXZSBkb24ndCB3b3JyeSBhYm91dCB1bm5lY2Vzc2FyaWx5IGRpcnR5aW5nIHRoZQotCSAq IGhlYXAgYnVmZmVyIGlmIFBEX0FMTF9WSVNJQkxFIGlzIGFscmVhZHkgc2V0LCB0aG91Z2guIEl0 IGlzIGV4dHJlbWVseQotCSAqIHJhcmUgdG8gaGF2ZSBhIGNsZWFuIGhlYXAgYnVmZmVyIHdpdGgg UERfQUxMX1ZJU0lCTEUgYWxyZWFkeSBzZXQgYW5kCi0JICogdGhlIFZNIGJpdHMgY2xlYXIsIHNv IHRoZXJlIGlzIG5vIHBvaW50IGluIG9wdGltaXppbmcgaXQuCi0JICovCi0JUGFnZVNldEFsbFZp c2libGUocGFnZSk7Ci0JUGFnZUNsZWFyUHJ1bmFibGUocGFnZSk7Ci0JTWFya0J1ZmZlckRpcnR5 KGJ1Zik7Ci0KLQkvKgotCSAqIElmIHRoZSBwYWdlIGlzIGJlaW5nIHNldCBhbGwtZnJvemVuLCB3 ZSBwYXNzIEludmFsaWRUcmFuc2FjdGlvbklkIGFzCi0JICogdGhlIGN1dG9mZl94aWQsIHNpbmNl IGEgc25hcHNob3QgY29uZmxpY3QgaG9yaXpvbiBzdWZmaWNpZW50IHRvIG1ha2UKLQkgKiBldmVy eXRoaW5nIHNhZmUgZm9yIFJFRE8gd2FzIGxvZ2dlZCB3aGVuIHRoZSBwYWdlJ3MgdHVwbGVzIHdl cmUgZnJvemVuLgotCSAqLwotCUFzc2VydCghcHJlc3VsdC5zZXRfYWxsX2Zyb3plbiB8fAotCQkg ICAhVHJhbnNhY3Rpb25JZElzVmFsaWQocHJlc3VsdC52bV9jb25mbGljdF9ob3Jpem9uKSk7Ci0K LQl2aXNpYmlsaXR5bWFwX3NldCh2YWNyZWwtPnJlbCwgYmxrbm8sIGJ1ZiwKLQkJCQkJICBJbnZh bGlkWExvZ1JlY1B0ciwKLQkJCQkJICB2bWJ1ZmZlciwgcHJlc3VsdC52bV9jb25mbGljdF9ob3Jp em9uLAotCQkJCQkgIG5ld192bWJpdHMpOwotCi0JLyoKLQkgKiBJZiB0aGUgcGFnZSB3YXNuJ3Qg YWxyZWFkeSBzZXQgYWxsLXZpc2libGUgYW5kL29yIGFsbC1mcm96ZW4gaW4gdGhlIFZNLAotCSAq IGNvdW50IGl0IGFzIG5ld2x5IHNldCBmb3IgbG9nZ2luZy4KLQkgKi8KLQlpZiAoKG9sZF92bWJp dHMgJiBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFKSA9PSAwKQotCXsKLQkJdmFjcmVsLT5uZXdf YWxsX3Zpc2libGVfcGFnZXMrKzsKLQkJaWYgKHByZXN1bHQuc2V0X2FsbF9mcm96ZW4pCi0JCXsK LQkJCXZhY3JlbC0+bmV3X2FsbF92aXNpYmxlX2FsbF9mcm96ZW5fcGFnZXMrKzsKLQkJCSp2bV9w YWdlX2Zyb3plbiA9IHRydWU7Ci0JCX0KLQl9Ci0JZWxzZSBpZiAoKG9sZF92bWJpdHMgJiBWSVNJ QklMSVRZTUFQX0FMTF9GUk9aRU4pID09IDAgJiYKLQkJCSBwcmVzdWx0LnNldF9hbGxfZnJvemVu KQotCXsKLQkJdmFjcmVsLT5uZXdfYWxsX2Zyb3plbl9wYWdlcysrOwotCQkqdm1fcGFnZV9mcm96 ZW4gPSB0cnVlOwotCX0KLQogCXJldHVybiBwcmVzdWx0Lm5kZWxldGVkOwogfQogCkBAIC0zNTgy LDcgKzM0OTMsNyBAQCBkZWFkX2l0ZW1zX2NsZWFudXAoTFZSZWxTdGF0ZSAqdmFjcmVsKQogICog dGhhdCBleHBlY3Qgbm8gTFBfREVBRCBvbiB0aGUgcGFnZS4gQ3VycmVudGx5IGFzc2VydC1vbmx5 LCBidXQgdGhlcmUgaXMgbm8KICAqIHJlYXNvbiBub3QgdG8gdXNlIGl0IG91dHNpZGUgb2YgYXNz ZXJ0cy4KICAqLwotc3RhdGljIGJvb2wKK2Jvb2wKIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZShS ZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCiAJCQkJCQkgR2xvYmFsVmlzU3RhdGUgKnZpc3Rlc3Qs CiAJCQkJCQkgYm9vbCAqYWxsX2Zyb3plbiwKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vz cy9oZWFwYW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaAppbmRleCA5MzEyODg2YWQ0 Yi4uNGNlNjM5OTAzMjYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaAor KysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKQEAgLTI2NSw3ICsyNjUsOCBAQCB0eXBl ZGVmIHN0cnVjdCBQcnVuZUZyZWV6ZVBhcmFtcwogCiAJLyoKIAkgKiBDYWxsZXJzIHNob3VsZCBw cm92aWRlIGEgcGlubmVkIHZtYnVmZmVyIGNvcnJlc3BvbmRpbmcgdG8gdGhlIGhlYXAKLQkgKiBi bG9jayBpbiBidWZmZXIuIFdlIHdpbGwgY2hlY2sgZm9yIGFuZCByZXBhaXIgYW55IGNvcnJ1cHRp b24gaW4gdGhlIFZNLgorCSAqIGJsb2NrIGluIGJ1ZmZlci4gV2Ugd2lsbCBjaGVjayBmb3IgYW5k IHJlcGFpciBhbnkgY29ycnVwdGlvbiBpbiB0aGUgVk0KKwkgKiBhbmQgc2V0IHRoZSBWTSBhZnRl ciBwcnVuaW5nIGlmIHRoZSBwYWdlIGlzIGFsbC12aXNpYmxlL2FsbC1mcm96ZW4uCiAJICovCiAJ QnVmZmVyCQl2bWJ1ZmZlcjsKIApAQCAtMjgxLDggKzI4Miw3IEBAIHR5cGVkZWYgc3RydWN0IFBy dW5lRnJlZXplUGFyYW1zCiAJICogSEVBUF9QQUdFX1BSVU5FX01BUktfVU5VU0VEX05PVyBpbmRp Y2F0ZXMgdGhhdCBkZWFkIGl0ZW1zIGNhbiBiZSBzZXQKIAkgKiBMUF9VTlVTRUQgZHVyaW5nIHBy dW5pbmcuCiAJICoKLQkgKiBIRUFQX1BBR0VfUFJVTkVfRlJFRVpFIGluZGljYXRlcyB0aGF0IHdl IHdpbGwgYWxzbyBmcmVlemUgdHVwbGVzLCBhbmQKLQkgKiB3aWxsIHJldHVybiAnYWxsX3Zpc2li bGUnLCAnYWxsX2Zyb3plbicgZmxhZ3MgdG8gdGhlIGNhbGxlci4KKwkgKiBIRUFQX1BBR0VfUFJV TkVfRlJFRVpFIGluZGljYXRlcyB0aGF0IHdlIHdpbGwgYWxzbyBmcmVlemUgdHVwbGVzLgogCSAq LwogCWludAkJCW9wdGlvbnM7CiAKQEAgLTMxNiwyNiArMzE2LDEyIEBAIHR5cGVkZWYgc3RydWN0 IFBydW5lRnJlZXplUmVzdWx0CiAJaW50CQkJcmVjZW50bHlfZGVhZF90dXBsZXM7CiAKIAkvKgot CSAqIHNldF9hbGxfdmlzaWJsZSBhbmQgc2V0X2FsbF9mcm96ZW4gaW5kaWNhdGUgaWYgdGhlIGFs bC12aXNpYmxlIGFuZAotCSAqIGFsbC1mcm96ZW4gYml0cyBpbiB0aGUgdmlzaWJpbGl0eSBtYXAg c2hvdWxkIGJlIHNldCBmb3IgdGhpcyBwYWdlIGFmdGVyCi0JICogcHJ1bmluZy4KLQkgKgotCSAq IHZtX2NvbmZsaWN0X2hvcml6b24gaXMgdGhlIG5ld2VzdCB4bWluIG9mIGxpdmUgdHVwbGVzIG9u IHRoZSBwYWdlLiAgVGhlCi0JICogY2FsbGVyIGNhbiB1c2UgaXQgYXMgdGhlIGNvbmZsaWN0IGhv cml6b24gd2hlbiBzZXR0aW5nIHRoZSBWTSBiaXRzLiAgSXQKLQkgKiBpcyBvbmx5IHZhbGlkIGlm IHdlIGZyb3plIHNvbWUgdHVwbGVzIChuZnJvemVuID4gMCksIGFuZCBzZXRfYWxsX2Zyb3plbgot CSAqIGlzIHRydWUuCi0JICoKLQkgKiBUaGVzZSBhcmUgb25seSBzZXQgaWYgdGhlIEhFQVBfUEFH RV9QUlVORV9GUkVFWkUgb3B0aW9uIGlzIHNldC4KLQkgKi8KLQlib29sCQlzZXRfYWxsX3Zpc2li bGU7Ci0JYm9vbAkJc2V0X2FsbF9mcm96ZW47Ci0JVHJhbnNhY3Rpb25JZCB2bV9jb25mbGljdF9o b3Jpem9uOwotCi0JLyoKLQkgKiB2bWJpdHMgaXMgdGhlIHZhbHVlIG9mIHRoZSB2bWJ1ZmZlcidz IHZtYml0cyBhdCB0aGUgYmVnaW5uaW5nIG9mCi0JICogcHJ1bmluZy4gSXQgaXMgY2xlYXJlZCBp ZiBWTSBjb3JydXB0aW9uIGlzIGZvdW5kIGFuZCBjb3JyZWN0ZWQuCisJICogV2hldGhlciBvciBu b3QgdGhlIHBhZ2Ugd2FzIG5ld2x5IHNldCBhbGwtdmlzaWJsZSBhbmQgYWxsLWZyb3plbiBkdXJp bmcKKwkgKiBwaGFzZSBJIG9mIHZhY3V1bWluZy4KIAkgKi8KLQl1aW50OAkJdm1iaXRzOworCUJs b2NrTnVtYmVyIG5ld19hbGxfdmlzaWJsZV9wYWdlczsKKwlCbG9ja051bWJlciBuZXdfYWxsX3Zp c2libGVfZnJvemVuX3BhZ2VzOworCUJsb2NrTnVtYmVyIG5ld19hbGxfZnJvemVuX3BhZ2VzOwog CiAJLyoKIAkgKiBXaGV0aGVyIG9yIG5vdCB0aGUgcGFnZSBtYWtlcyByZWwgdHJ1bmNhdGlvbiB1 bnNhZmUuICBUaGlzIGlzIHNldCB0bwpAQCAtNDcyLDcgKzQ1OCwxMyBAQCBleHRlcm4gdm9pZCBs b2dfaGVhcF9wcnVuZV9hbmRfZnJlZXplKFJlbGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVy LAogLyogaW4gaGVhcC92YWN1dW1sYXp5LmMgKi8KIGV4dGVybiB2b2lkIGhlYXBfdmFjdXVtX3Jl bChSZWxhdGlvbiByZWwsCiAJCQkJCQkJY29uc3QgVmFjdXVtUGFyYW1zIHBhcmFtcywgQnVmZmVy QWNjZXNzU3RyYXRlZ3kgYnN0cmF0ZWd5KTsKLQorI2lmZGVmIFVTRV9BU1NFUlRfQ0hFQ0tJTkcK K2V4dGVybiBib29sIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZl ciBidWYsCisJCQkJCQkJCQkgR2xvYmFsVmlzU3RhdGUgKnZpc3Rlc3QsCisJCQkJCQkJCQkgYm9v bCAqYWxsX2Zyb3plbiwKKwkJCQkJCQkJCSBUcmFuc2FjdGlvbklkICp2aXNpYmlsaXR5X2N1dG9m Zl94aWQsCisJCQkJCQkJCQkgT2Zmc2V0TnVtYmVyICpsb2dnaW5nX29mZm51bSk7CisjZW5kaWYK IC8qIGluIGhlYXAvaGVhcGFtX3Zpc2liaWxpdHkuYyAqLwogZXh0ZXJuIGJvb2wgSGVhcFR1cGxl U2F0aXNmaWVzVmlzaWJpbGl0eShIZWFwVHVwbGUgaHR1cCwgU25hcHNob3Qgc25hcHNob3QsCiAJ CQkJCQkJCQkJIEJ1ZmZlciBidWZmZXIpOwotLSAKMi40My4wCgo= --0000000000002365dc064d39709f Content-Type: text/x-patch; charset="US-ASCII"; name="v40-0006-Eliminate-XLOG_HEAP2_VISIBLE-from-empty-page-vac.patch" Content-Disposition: attachment; filename="v40-0006-Eliminate-XLOG_HEAP2_VISIBLE-from-empty-page-vac.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmupqshd5 RnJvbSBjNDdhNjI3MGEwYTAwNDUzNDdjZGI0NTk3Yjk1Nzc5OGQyMWRiNGFhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBTYXQsIDI3IFNlcCAyMDI1IDExOjU1OjIxIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NDAgMDYvMTJdIEVsaW1pbmF0ZSBYTE9HX0hFQVAyX1ZJU0lCTEUgZnJvbSBlbXB0eS1w YWdlIHZhY3V1bQoKQXMgcGFydCBvZiByZW1vdmluZyBYTE9HX0hFQVAyX1ZJU0lCTEUgcmVjb3Jk cywgcGhhc2UgSSBvZiBWQUNVVU0gbm93Cm1hcmtzIGVtcHR5IHBhZ2VzIGFsbC12aXNpYmxlIGlu IGEgWExPR19IRUFQMl9QUlVORV9WQUNVVU1fU0NBTiByZWNvcmQuCgpBdXRob3I6IE1lbGFuaWUg UGxhZ2VtYW4gPG1lbGFuaWVwbGFnZW1hbkBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBSb2JlcnQg SGFhcyA8cm9iZXJ0bWhhYXNAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQW5kcmVzIEZyZXVuZCA8 YW5kcmVzQGFuYXJhemVsLmRlPgpSZXZpZXdlZC1ieTogQ2hhbyBMaSA8bGkuZXZhbi5jaGFvQGdt YWlsLmNvbT4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgfCAzNSAr KysrKysrKysrKysrKysrKysrKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjkgaW5zZXJ0aW9u cygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC92YWN1dW1sYXp5LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKaW5k ZXggNWVhOTYwODdmYWQuLjliZmUzYzU0NWZmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC92YWN1dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVt bGF6eS5jCkBAIC0xOTAzLDkgKzE5MDMsMTIgQEAgbGF6eV9zY2FuX25ld19vcl9lbXB0eShMVlJl bFN0YXRlICp2YWNyZWwsIEJ1ZmZlciBidWYsIEJsb2NrTnVtYmVyIGJsa25vLAogCQkgKi8KIAkJ aWYgKCFQYWdlSXNBbGxWaXNpYmxlKHBhZ2UpKQogCQl7CisJCQkvKiBMb2NrIHZtYnVmZmVyIGJl Zm9yZSBlbnRlcmluZyBjcml0aWNhbCBzZWN0aW9uICovCisJCQlMb2NrQnVmZmVyKHZtYnVmZmVy LCBCVUZGRVJfTE9DS19FWENMVVNJVkUpOworCiAJCQlTVEFSVF9DUklUX1NFQ1RJT04oKTsKIAot CQkJLyogbWFyayBidWZmZXIgZGlydHkgYmVmb3JlIHdyaXRpbmcgYSBXQUwgcmVjb3JkICovCisJ CQkvKiBNYXJrIGJ1ZmZlciBkaXJ0eSBiZWZvcmUgd3JpdGluZyBhbnkgV0FMIHJlY29yZHMgKi8K IAkJCU1hcmtCdWZmZXJEaXJ0eShidWYpOwogCiAJCQkvKgpAQCAtMTkyMywxMyArMTkyNiwzMyBA QCBsYXp5X3NjYW5fbmV3X29yX2VtcHR5KExWUmVsU3RhdGUgKnZhY3JlbCwgQnVmZmVyIGJ1Ziwg QmxvY2tOdW1iZXIgYmxrbm8sCiAKIAkJCVBhZ2VTZXRBbGxWaXNpYmxlKHBhZ2UpOwogCQkJUGFn ZUNsZWFyUHJ1bmFibGUocGFnZSk7Ci0JCQl2aXNpYmlsaXR5bWFwX3NldCh2YWNyZWwtPnJlbCwg Ymxrbm8sIGJ1ZiwKLQkJCQkJCQkgIEludmFsaWRYTG9nUmVjUHRyLAotCQkJCQkJCSAgdm1idWZm ZXIsIEludmFsaWRUcmFuc2FjdGlvbklkLAotCQkJCQkJCSAgVklTSUJJTElUWU1BUF9BTExfVklT SUJMRSB8Ci0JCQkJCQkJICBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4pOworCQkJdmlzaWJpbGl0 eW1hcF9zZXRfdm1iaXRzKGJsa25vLAorCQkJCQkJCQkJIHZtYnVmZmVyLAorCQkJCQkJCQkJIFZJ U0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUgfAorCQkJCQkJCQkJIFZJU0lCSUxJVFlNQVBfQUxMX0ZS T1pFTiwKKwkJCQkJCQkJCSB2YWNyZWwtPnJlbC0+cmRfbG9jYXRvcik7CisKKwkJCS8qCisJCQkg KiBFbWl0IFdBTCBmb3Igc2V0dGluZyBQRF9BTExfVklTSUJMRSBvbiB0aGUgaGVhcCBwYWdlIGFu ZAorCQkJICogc2V0dGluZyB0aGUgVk0uCisJCQkgKi8KKwkJCWlmIChSZWxhdGlvbk5lZWRzV0FM KHZhY3JlbC0+cmVsKSkKKwkJCQlsb2dfaGVhcF9wcnVuZV9hbmRfZnJlZXplKHZhY3JlbC0+cmVs LCBidWYsCisJCQkJCQkJCQkJICB2bWJ1ZmZlciwKKwkJCQkJCQkJCQkgIFZJU0lCSUxJVFlNQVBf QUxMX1ZJU0lCTEUgfAorCQkJCQkJCQkJCSAgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOLAorCQkJ CQkJCQkJCSAgSW52YWxpZFRyYW5zYWN0aW9uSWQsIC8qIGNvbmZsaWN0IHhpZCAqLworCQkJCQkJ CQkJCSAgZmFsc2UsCS8qIGNsZWFudXAgbG9jayAqLworCQkJCQkJCQkJCSAgUFJVTkVfVkFDVVVN X1NDQU4sCS8qIHJlYXNvbiAqLworCQkJCQkJCQkJCSAgTlVMTCwgMCwKKwkJCQkJCQkJCQkgIE5V TEwsIDAsCisJCQkJCQkJCQkJICBOVUxMLCAwLAorCQkJCQkJCQkJCSAgTlVMTCwgMCk7CisKIAkJ CUVORF9DUklUX1NFQ1RJT04oKTsKIAorCQkJTG9ja0J1ZmZlcih2bWJ1ZmZlciwgQlVGRkVSX0xP Q0tfVU5MT0NLKTsKKwogCQkJLyogQ291bnQgdGhlIG5ld2x5IGFsbC1mcm96ZW4gcGFnZXMgZm9y IGxvZ2dpbmcgKi8KIAkJCXZhY3JlbC0+bmV3X2FsbF92aXNpYmxlX3BhZ2VzKys7CiAJCQl2YWNy ZWwtPm5ld19hbGxfdmlzaWJsZV9hbGxfZnJvemVuX3BhZ2VzKys7Ci0tIAoyLjQzLjAKCg== --0000000000002365dc064d39709f Content-Type: text/x-patch; charset="US-ASCII"; name="v40-0007-Remove-XLOG_HEAP2_VISIBLE-entirely.patch" Content-Disposition: attachment; filename="v40-0007-Remove-XLOG_HEAP2_VISIBLE-entirely.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmupqvtd6 RnJvbSAxODFjODNmMDY1MmJmZWJlMGRiMmYxMTk4M2FkMDhiNTJjOGM3ODBiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBTYXQsIDI3IFNlcCAyMDI1IDExOjU1OjM2IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NDAgMDcvMTJdIFJlbW92ZSBYTE9HX0hFQVAyX1ZJU0lCTEUgZW50aXJlbHkKClRoZXJl IGFyZSBubyByZW1haW5pbmcgdXNlcnMgdGhhdCBlbWl0IFhMT0dfSEVBUDJfVklTSUJMRSByZWNv cmRzLCBzbyBpdApjYW4gYmUgcmVtb3ZlZC4gVGhpcyBpbmNsdWRlcyBkZWxldGluZyB0aGUgeGxf aGVhcF92aXNpYmxlIHN0cnVjdCBhbmQKYWxsIGZ1bmN0aW9ucyByZXNwb25zaWJsZSBmb3IgZW1p dHRpbmcgb3IgcmVwbGF5aW5nIFhMT0dfSEVBUDJfVklTSUJMRQpyZWNvcmRzLgoKVGhpcyBjaGFu Z2VzIHRoZSB2aXNpYmlsaXR5IG1hcCBBUEksIHNvIGFueSBleHRlcm5hbCB1c2Vycy9jb25zdW1l cnMgb2YKdGhlIFZNLW9ubHkgV0FMIHJlY29yZCB3aWxsIG5lZWQgdG8gY2hhbmdlLgoKQXV0aG9y OiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21haWwuY29tPgpSZXZpZXdlZC1i eTogQW5kcmV5IEJvcm9kaW4gPHg0bW1tQHlhbmRleC10ZWFtLnJ1PgpSZXZpZXdlZC1ieTogQW5k cmVzIEZyZXVuZCA8YW5kcmVzQGFuYXJhemVsLmRlPgpSZXZpZXdlZC1ieTogQ2hhbyBMaSA8bGku ZXZhbi5jaGFvQGdtYWlsLmNvbT4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL2J1Zm1h c2suYyAgICAgIHwgICA0ICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyAgICAg ICAgIHwgIDU0ICstLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5j ICAgIHwgMTU2ICsrLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC9wcnVuZWhlYXAuYyAgICAgIHwgICA0ICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1 dW1sYXp5LmMgICAgIHwgIDE2ICstLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0 eW1hcC5jICB8IDExMCArLS0tLS0tLS0tLS0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRl c2MvaGVhcGRlc2MuYyAgIHwgIDEwIC0tCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2Fs L2RlY29kZS5jIHwgICAxIC0KIHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYyAgICAg ICAgfCAgMTIgKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5oICAgICAgICAgfCAg MjAgLS0tCiBzcmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJpbGl0eW1hcC5oICAgICAgIHwgIDEzICst CiBzcmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJpbGl0eW1hcGRlZnMuaCAgIHwgICA5IC0tCiBzcmMv dG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAgIHwgICAxIC0KIDEzIGZpbGVzIGNo YW5nZWQsIDM4IGluc2VydGlvbnMoKyksIDM3MiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL2J1Zm1hc2suYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9j b21tb24vYnVmbWFzay5jCmluZGV4IDhhNjdiZmExYWZmLi5kOTA0MmUxZjkxZCAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9idWZtYXNrLmMKKysrIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2NvbW1vbi9idWZtYXNrLmMKQEAgLTU2LDggKzU2LDggQEAgbWFza19wYWdlX2hpbnRf Yml0cyhQYWdlIHBhZ2UpCiAKIAkvKgogCSAqIER1cmluZyByZXBsYXksIGlmIHRoZSBwYWdlIExT TiBoYXMgYWR2YW5jZWQgcGFzdCBvdXIgWExPRyByZWNvcmQncyBMU04sCi0JICogd2UgZG9uJ3Qg bWFyayB0aGUgcGFnZSBhbGwtdmlzaWJsZS4gU2VlIGhlYXBfeGxvZ192aXNpYmxlKCkgZm9yCi0J ICogZGV0YWlscy4KKwkgKiB3ZSBkb24ndCBtYXJrIHRoZSBwYWdlIGFsbC12aXNpYmxlLiBTZWUg aGVhcF94bG9nX3BydW5lX2ZyZWV6ZSgpIGZvcgorCSAqIG1vcmUgZGV0YWlscy4KIAkgKi8KIAlQ YWdlQ2xlYXJBbGxWaXNpYmxlKHBhZ2UpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvaGVhcGFtLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwppbmRl eCBlNWJkMDYyZGU3Ny4uMDQ0ZjM4NWU0NzcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL2hlYXBhbS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCkBA IC0yNTg5LDExICsyNTg5LDExIEBAIGhlYXBfbXVsdGlfaW5zZXJ0KFJlbGF0aW9uIHJlbGF0aW9u LCBUdXBsZVRhYmxlU2xvdCAqKnNsb3RzLCBpbnQgbnR1cGxlcywKIAkJewogCQkJUGFnZVNldEFs bFZpc2libGUocGFnZSk7CiAJCQlQYWdlQ2xlYXJQcnVuYWJsZShwYWdlKTsKLQkJCXZpc2liaWxp dHltYXBfc2V0X3ZtYml0cyhCdWZmZXJHZXRCbG9ja051bWJlcihidWZmZXIpLAotCQkJCQkJCQkJ IHZtYnVmZmVyLAotCQkJCQkJCQkJIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUgfAotCQkJCQkJ CQkJIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTiwKLQkJCQkJCQkJCSByZWxhdGlvbi0+cmRfbG9j YXRvcik7CisJCQl2aXNpYmlsaXR5bWFwX3NldChCdWZmZXJHZXRCbG9ja051bWJlcihidWZmZXIp LAorCQkJCQkJCSAgdm1idWZmZXIsCisJCQkJCQkJICBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxF IHwKKwkJCQkJCQkgIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTiwKKwkJCQkJCQkgIHJlbGF0aW9u LT5yZF9sb2NhdG9yKTsKIAkJfQogCiAJCS8qCkBAIC04ODg2LDUwICs4ODg2LDYgQEAgYm90dG9t dXBfc29ydF9hbmRfc2hyaW5rKFRNX0luZGV4RGVsZXRlT3AgKmRlbHN0YXRlKQogCXJldHVybiBu YmxvY2tzZmF2b3JhYmxlOwogfQogCi0vKgotICogUGVyZm9ybSBYTG9nSW5zZXJ0IGZvciBhIGhl YXAtdmlzaWJsZSBvcGVyYXRpb24uICAnYmxvY2snIGlzIHRoZSBibG9jawotICogYmVpbmcgbWFy a2VkIGFsbC12aXNpYmxlLCBhbmQgdm1fYnVmZmVyIGlzIHRoZSBidWZmZXIgY29udGFpbmluZyB0 aGUKLSAqIGNvcnJlc3BvbmRpbmcgdmlzaWJpbGl0eSBtYXAgYmxvY2suICBCb3RoIHNob3VsZCBo YXZlIGFscmVhZHkgYmVlbiBtb2RpZmllZAotICogYW5kIGRpcnRpZWQuCi0gKgotICogc25hcHNo b3RDb25mbGljdEhvcml6b24gY29tZXMgZnJvbSB0aGUgbGFyZ2VzdCB4bWluIG9uIHRoZSBwYWdl IGJlaW5nCi0gKiBtYXJrZWQgYWxsLXZpc2libGUuICBSRURPIHJvdXRpbmUgdXNlcyBpdCB0byBn ZW5lcmF0ZSByZWNvdmVyeSBjb25mbGljdHMuCi0gKgotICogSWYgY2hlY2tzdW1zIG9yIHdhbF9s b2dfaGludHMgYXJlIGVuYWJsZWQsIHdlIG1heSBhbHNvIGdlbmVyYXRlIGEgZnVsbC1wYWdlCi0g KiBpbWFnZSBvZiBoZWFwX2J1ZmZlci4gT3RoZXJ3aXNlLCB3ZSBvcHRpbWl6ZSBhd2F5IHRoZSBG UEkgKGJ5IHNwZWNpZnlpbmcKLSAqIFJFR0JVRl9OT19JTUFHRSBmb3IgdGhlIGhlYXAgYnVmZmVy KSwgaW4gd2hpY2ggY2FzZSB0aGUgY2FsbGVyIHNob3VsZCAqbm90KgotICogdXBkYXRlIHRoZSBo ZWFwIHBhZ2UncyBMU04uCi0gKi8KLVhMb2dSZWNQdHIKLWxvZ19oZWFwX3Zpc2libGUoUmVsYXRp b24gcmVsLCBCdWZmZXIgaGVhcF9idWZmZXIsIEJ1ZmZlciB2bV9idWZmZXIsCi0JCQkJIFRyYW5z YWN0aW9uSWQgc25hcHNob3RDb25mbGljdEhvcml6b24sIHVpbnQ4IHZtZmxhZ3MpCi17Ci0JeGxf aGVhcF92aXNpYmxlIHhscmVjOwotCVhMb2dSZWNQdHIJcmVjcHRyOwotCXVpbnQ4CQlmbGFnczsK LQotCUFzc2VydChCdWZmZXJJc1ZhbGlkKGhlYXBfYnVmZmVyKSk7Ci0JQXNzZXJ0KEJ1ZmZlcklz VmFsaWQodm1fYnVmZmVyKSk7Ci0KLQl4bHJlYy5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiA9IHNu YXBzaG90Q29uZmxpY3RIb3Jpem9uOwotCXhscmVjLmZsYWdzID0gdm1mbGFnczsKLQlpZiAoUmVs YXRpb25Jc0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyhyZWwpKQotCQl4bHJlYy5mbGFncyB8 PSBWSVNJQklMSVRZTUFQX1hMT0dfQ0FUQUxPR19SRUw7Ci0JWExvZ0JlZ2luSW5zZXJ0KCk7Ci0J WExvZ1JlZ2lzdGVyRGF0YSgmeGxyZWMsIFNpemVPZkhlYXBWaXNpYmxlKTsKLQotCVhMb2dSZWdp c3RlckJ1ZmZlcigwLCB2bV9idWZmZXIsIDApOwotCi0JZmxhZ3MgPSBSRUdCVUZfU1RBTkRBUkQ7 Ci0JaWYgKCFYTG9nSGludEJpdElzTmVlZGVkKCkpCi0JCWZsYWdzIHw9IFJFR0JVRl9OT19JTUFH RTsKLQlYTG9nUmVnaXN0ZXJCdWZmZXIoMSwgaGVhcF9idWZmZXIsIGZsYWdzKTsKLQotCXJlY3B0 ciA9IFhMb2dJbnNlcnQoUk1fSEVBUDJfSUQsIFhMT0dfSEVBUDJfVklTSUJMRSk7Ci0KLQlyZXR1 cm4gcmVjcHRyOwotfQotCiAvKgogICogUGVyZm9ybSBYTG9nSW5zZXJ0IGZvciBhIGhlYXAtdXBk YXRlIG9wZXJhdGlvbi4gIENhbGxlciBtdXN0IGFscmVhZHkKICAqIGhhdmUgbW9kaWZpZWQgdGhl IGJ1ZmZlcihzKSBhbmQgbWFya2VkIHRoZW0gZGlydHkuCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVh cGFtX3hsb2cuYwppbmRleCAxZGE3NzRjMTUzNi4uMTMwMmJiMTNlMTggMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwpAQCAtMjM5LDcgKzIzOSw3IEBAIGhlYXBfeGxvZ19wcnVu ZV9mcmVlemUoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJCWlmIChQYWdlSXNOZXcodm1wYWdl KSkKIAkJCVBhZ2VJbml0KHZtcGFnZSwgQkxDS1NaLCAwKTsKIAotCQl2aXNpYmlsaXR5bWFwX3Nl dF92bWJpdHMoYmxrbm8sIHZtYnVmZmVyLCB2bWZsYWdzLCBybG9jYXRvcik7CisJCXZpc2liaWxp dHltYXBfc2V0KGJsa25vLCB2bWJ1ZmZlciwgdm1mbGFncywgcmxvY2F0b3IpOwogCiAJCUFzc2Vy dChCdWZmZXJJc0RpcnR5KHZtYnVmZmVyKSk7CiAJCVBhZ2VTZXRMU04odm1wYWdlLCBsc24pOwpA QCAtMjUyLDE0MyArMjUyLDYgQEAgaGVhcF94bG9nX3BydW5lX2ZyZWV6ZShYTG9nUmVhZGVyU3Rh dGUgKnJlY29yZCkKIAkJWExvZ1JlY29yZFBhZ2VXaXRoRnJlZVNwYWNlKHJsb2NhdG9yLCBibGtu bywgZnJlZXNwYWNlKTsKIH0KIAotLyoKLSAqIFJlcGxheSBYTE9HX0hFQVAyX1ZJU0lCTEUgcmVj b3Jkcy4KLSAqCi0gKiBUaGUgY3JpdGljYWwgaW50ZWdyaXR5IHJlcXVpcmVtZW50IGhlcmUgaXMg dGhhdCB3ZSBtdXN0IG5ldmVyIGVuZCB1cCB3aXRoCi0gKiBhIHNpdHVhdGlvbiB3aGVyZSB0aGUg dmlzaWJpbGl0eSBtYXAgYml0IGlzIHNldCwgYW5kIHRoZSBwYWdlLWxldmVsCi0gKiBQRF9BTExf VklTSUJMRSBiaXQgaXMgY2xlYXIuICBJZiB0aGF0IHdlcmUgdG8gb2NjdXIsIHRoZW4gYSBzdWJz ZXF1ZW50Ci0gKiBwYWdlIG1vZGlmaWNhdGlvbiB3b3VsZCBmYWlsIHRvIGNsZWFyIHRoZSB2aXNp YmlsaXR5IG1hcCBiaXQuCi0gKi8KLXN0YXRpYyB2b2lkCi1oZWFwX3hsb2dfdmlzaWJsZShYTG9n UmVhZGVyU3RhdGUgKnJlY29yZCkKLXsKLQlYTG9nUmVjUHRyCWxzbiA9IHJlY29yZC0+RW5kUmVj UHRyOwotCXhsX2hlYXBfdmlzaWJsZSAqeGxyZWMgPSAoeGxfaGVhcF92aXNpYmxlICopIFhMb2dS ZWNHZXREYXRhKHJlY29yZCk7Ci0JQnVmZmVyCQl2bWJ1ZmZlciA9IEludmFsaWRCdWZmZXI7Ci0J QnVmZmVyCQlidWZmZXI7Ci0JUGFnZQkJcGFnZTsKLQlSZWxGaWxlTG9jYXRvciBybG9jYXRvcjsK LQlCbG9ja051bWJlciBibGtubzsKLQlYTG9nUmVkb0FjdGlvbiBhY3Rpb247Ci0KLQlBc3NlcnQo KHhscmVjLT5mbGFncyAmIFZJU0lCSUxJVFlNQVBfWExPR19WQUxJRF9CSVRTKSA9PSB4bHJlYy0+ ZmxhZ3MpOwotCi0JWExvZ1JlY0dldEJsb2NrVGFnKHJlY29yZCwgMSwgJnJsb2NhdG9yLCBOVUxM LCAmYmxrbm8pOwotCi0JLyoKLQkgKiBJZiB0aGVyZSBhcmUgYW55IEhvdCBTdGFuZGJ5IHRyYW5z YWN0aW9ucyBydW5uaW5nIHRoYXQgaGF2ZSBhbiB4bWluCi0JICogaG9yaXpvbiBvbGQgZW5vdWdo IHRoYXQgdGhpcyBwYWdlIGlzbid0IGFsbC12aXNpYmxlIGZvciB0aGVtLCB0aGV5Ci0JICogbWln aHQgaW5jb3JyZWN0bHkgZGVjaWRlIHRoYXQgYW4gaW5kZXgtb25seSBzY2FuIGNhbiBza2lwIGEg aGVhcCBmZXRjaC4KLQkgKgotCSAqIE5COiBJdCBtaWdodCBiZSBiZXR0ZXIgdG8gdGhyb3cgc29t ZSBraW5kIG9mICJzb2Z0IiBjb25mbGljdCBoZXJlIHRoYXQKLQkgKiBmb3JjZXMgYW55IGluZGV4 LW9ubHkgc2NhbiB0aGF0IGlzIGluIGZsaWdodCB0byBwZXJmb3JtIGhlYXAgZmV0Y2hlcywKLQkg KiByYXRoZXIgdGhhbiBraWxsaW5nIHRoZSB0cmFuc2FjdGlvbiBvdXRyaWdodC4KLQkgKi8KLQlp ZiAoSW5Ib3RTdGFuZGJ5KQotCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh4 bHJlYy0+c25hcHNob3RDb25mbGljdEhvcml6b24sCi0JCQkJCQkJCQkJCXhscmVjLT5mbGFncyAm IFZJU0lCSUxJVFlNQVBfWExPR19DQVRBTE9HX1JFTCwKLQkJCQkJCQkJCQkJcmxvY2F0b3IpOwot Ci0JLyoKLQkgKiBSZWFkIHRoZSBoZWFwIHBhZ2UsIGlmIGl0IHN0aWxsIGV4aXN0cy4gSWYgdGhl IGhlYXAgZmlsZSBoYXMgZHJvcHBlZCBvcgotCSAqIHRydW5jYXRlZCBsYXRlciBpbiByZWNvdmVy eSwgd2UgZG9uJ3QgbmVlZCB0byB1cGRhdGUgdGhlIHBhZ2UsIGJ1dCB3ZSdkCi0JICogYmV0dGVy IHN0aWxsIHVwZGF0ZSB0aGUgdmlzaWJpbGl0eSBtYXAuCi0JICovCi0JYWN0aW9uID0gWExvZ1Jl YWRCdWZmZXJGb3JSZWRvKHJlY29yZCwgMSwgJmJ1ZmZlcik7Ci0JaWYgKGFjdGlvbiA9PSBCTEtf TkVFRFNfUkVETykKLQl7Ci0JCS8qCi0JCSAqIFdlIGRvbid0IGJ1bXAgdGhlIExTTiBvZiB0aGUg aGVhcCBwYWdlIHdoZW4gc2V0dGluZyB0aGUgdmlzaWJpbGl0eQotCQkgKiBtYXAgYml0ICh1bmxl c3MgY2hlY2tzdW1zIG9yIHdhbF9oaW50X2JpdHMgaXMgZW5hYmxlZCwgaW4gd2hpY2gKLQkJICog Y2FzZSB3ZSBtdXN0KS4gVGhpcyBleHBvc2VzIHVzIHRvIHRvcm4gcGFnZSBoYXphcmRzLCBidXQg c2luY2UKLQkJICogd2UncmUgbm90IGluc3BlY3RpbmcgdGhlIGV4aXN0aW5nIHBhZ2UgY29udGVu dHMgaW4gYW55IHdheSwgd2UKLQkJICogZG9uJ3QgY2FyZS4KLQkJICovCi0JCXBhZ2UgPSBCdWZm ZXJHZXRQYWdlKGJ1ZmZlcik7Ci0KLQkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7Ci0JCVBhZ2VD bGVhclBydW5hYmxlKHBhZ2UpOwotCi0JCWlmIChYTG9nSGludEJpdElzTmVlZGVkKCkpCi0JCQlQ YWdlU2V0TFNOKHBhZ2UsIGxzbik7Ci0KLQkJTWFya0J1ZmZlckRpcnR5KGJ1ZmZlcik7Ci0JfQot CWVsc2UgaWYgKGFjdGlvbiA9PSBCTEtfUkVTVE9SRUQpCi0JewotCQkvKgotCQkgKiBJZiBoZWFw IGJsb2NrIHdhcyBiYWNrZWQgdXAsIHdlIGFscmVhZHkgcmVzdG9yZWQgaXQgYW5kIHRoZXJlJ3MK LQkJICogbm90aGluZyBtb3JlIHRvIGRvLiAoVGhpcyBjYW4gb25seSBoYXBwZW4gd2l0aCBjaGVj a3N1bXMgb3IKLQkJICogd2FsX2xvZ19oaW50cyBlbmFibGVkLikKLQkJICovCi0JfQotCi0JaWYg KEJ1ZmZlcklzVmFsaWQoYnVmZmVyKSkKLQl7Ci0JCVNpemUJCXNwYWNlID0gUGFnZUdldEZyZWVT cGFjZShCdWZmZXJHZXRQYWdlKGJ1ZmZlcikpOwotCi0JCVVubG9ja1JlbGVhc2VCdWZmZXIoYnVm ZmVyKTsKLQotCQkvKgotCQkgKiBTaW5jZSBGU00gaXMgbm90IFdBTC1sb2dnZWQgYW5kIG9ubHkg dXBkYXRlZCBoZXVyaXN0aWNhbGx5LCBpdAotCQkgKiBlYXNpbHkgYmVjb21lcyBzdGFsZSBpbiBz dGFuZGJ5cy4gIElmIHRoZSBzdGFuZGJ5IGlzIGxhdGVyIHByb21vdGVkCi0JCSAqIGFuZCBydW5z IFZBQ1VVTSwgaXQgd2lsbCBza2lwIHVwZGF0aW5nIGluZGl2aWR1YWwgZnJlZSBzcGFjZQotCQkg KiBmaWd1cmVzIGZvciBwYWdlcyB0aGF0IGJlY2FtZSBhbGwtdmlzaWJsZSAob3IgYWxsLWZyb3pl biwgZGVwZW5kaW5nCi0JCSAqIG9uIHRoZSB2YWN1dW0gbW9kZSwpIHdoaWNoIGlzIHRyb3VibGVz b21lIHdoZW4gRnJlZVNwYWNlTWFwVmFjdXVtCi0JCSAqIHByb3BhZ2F0ZXMgdG9vIG9wdGltaXN0 aWMgZnJlZSBzcGFjZSB2YWx1ZXMgdG8gdXBwZXIgRlNNIGxheWVyczsKLQkJICogbGF0ZXIgaW5z ZXJ0ZXJzIHRyeSB0byB1c2Ugc3VjaCBwYWdlcyBvbmx5IHRvIGZpbmQgb3V0IHRoYXQgdGhleQot CQkgKiBhcmUgdW51c2FibGUuICBUaGlzIGNhbiBjYXVzZSBsb25nIHN0YWxscyB3aGVuIHRoZXJl IGFyZSBtYW55IHN1Y2gKLQkJICogcGFnZXMuCi0JCSAqCi0JCSAqIEZvcmVzdGFsbCB0aG9zZSBw cm9ibGVtcyBieSB1cGRhdGluZyBGU00ncyBpZGVhIGFib3V0IGEgcGFnZSB0aGF0Ci0JCSAqIGlz IGJlY29taW5nIGFsbC12aXNpYmxlIG9yIGFsbC1mcm96ZW4uCi0JCSAqCi0JCSAqIERvIHRoaXMg cmVnYXJkbGVzcyBvZiBhIGZ1bGwtcGFnZSBpbWFnZSBiZWluZyBhcHBsaWVkLCBzaW5jZSB0aGUK LQkJICogRlNNIGRhdGEgaXMgbm90IGluIHRoZSBwYWdlIGFueXdheS4KLQkJICovCi0JCWlmICh4 bHJlYy0+ZmxhZ3MgJiBWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMpCi0JCQlYTG9nUmVjb3JkUGFn ZVdpdGhGcmVlU3BhY2UocmxvY2F0b3IsIGJsa25vLCBzcGFjZSk7Ci0JfQotCi0JLyoKLQkgKiBF dmVuIGlmIHdlIHNraXBwZWQgdGhlIGhlYXAgcGFnZSB1cGRhdGUgZHVlIHRvIHRoZSBMU04gaW50 ZXJsb2NrLCBpdCdzCi0JICogc3RpbGwgc2FmZSB0byB1cGRhdGUgdGhlIHZpc2liaWxpdHkgbWFw LiAgQW55IFdBTCByZWNvcmQgdGhhdCBjbGVhcnMKLQkgKiB0aGUgdmlzaWJpbGl0eSBtYXAgYml0 IGRvZXMgc28gYmVmb3JlIGNoZWNraW5nIHRoZSBwYWdlIExTTiwgc28gYW55Ci0JICogYml0cyB0 aGF0IG5lZWQgdG8gYmUgY2xlYXJlZCB3aWxsIHN0aWxsIGJlIGNsZWFyZWQuCi0JICovCi0JaWYg KFhMb2dSZWFkQnVmZmVyRm9yUmVkb0V4dGVuZGVkKHJlY29yZCwgMCwgUkJNX1pFUk9fT05fRVJS T1IsIGZhbHNlLAotCQkJCQkJCQkJICAmdm1idWZmZXIpID09IEJMS19ORUVEU19SRURPKQotCXsK LQkJUGFnZQkJdm1wYWdlID0gQnVmZmVyR2V0UGFnZSh2bWJ1ZmZlcik7Ci0JCVJlbGF0aW9uCXJl bG47Ci0JCXVpbnQ4CQl2bWJpdHM7Ci0KLQkJLyogaW5pdGlhbGl6ZSB0aGUgcGFnZSBpZiBpdCB3 YXMgcmVhZCBhcyB6ZXJvcyAqLwotCQlpZiAoUGFnZUlzTmV3KHZtcGFnZSkpCi0JCQlQYWdlSW5p dCh2bXBhZ2UsIEJMQ0tTWiwgMCk7Ci0KLQkJLyogcmVtb3ZlIFZJU0lCSUxJVFlNQVBfWExPR18q ICovCi0JCXZtYml0cyA9IHhscmVjLT5mbGFncyAmIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUzsK LQotCQkvKgotCQkgKiBYTG9nUmVhZEJ1ZmZlckZvclJlZG9FeHRlbmRlZCBsb2NrZWQgdGhlIGJ1 ZmZlci4gQnV0Ci0JCSAqIHZpc2liaWxpdHltYXBfc2V0IHdpbGwgaGFuZGxlIGxvY2tpbmcgaXRz ZWxmLgotCQkgKi8KLQkJTG9ja0J1ZmZlcih2bWJ1ZmZlciwgQlVGRkVSX0xPQ0tfVU5MT0NLKTsK LQotCQlyZWxuID0gQ3JlYXRlRmFrZVJlbGNhY2hlRW50cnkocmxvY2F0b3IpOwotCi0JCXZpc2li aWxpdHltYXBfc2V0KHJlbG4sIGJsa25vLCBJbnZhbGlkQnVmZmVyLCBsc24sIHZtYnVmZmVyLAot CQkJCQkJICB4bHJlYy0+c25hcHNob3RDb25mbGljdEhvcml6b24sIHZtYml0cyk7Ci0KLQkJUmVs ZWFzZUJ1ZmZlcih2bWJ1ZmZlcik7Ci0JCUZyZWVGYWtlUmVsY2FjaGVFbnRyeShyZWxuKTsKLQl9 Ci0JZWxzZSBpZiAoQnVmZmVySXNWYWxpZCh2bWJ1ZmZlcikpCi0JCVVubG9ja1JlbGVhc2VCdWZm ZXIodm1idWZmZXIpOwotfQotCiAvKgogICogR2l2ZW4gYW4gImluZm9iaXRzIiBmaWVsZCBmcm9t IGFuIFhMb2cgcmVjb3JkLCBzZXQgdGhlIGNvcnJlY3QgYml0cyBpbiB0aGUKICAqIGdpdmVuIGlu Zm9tYXNrIGFuZCBpbmZvbWFzazIgZm9yIHRoZSB0dXBsZSB0b3VjaGVkIGJ5IHRoZSByZWNvcmQu CkBAIC03NjksOCArNjMyLDggQEAgaGVhcF94bG9nX211bHRpX2luc2VydChYTG9nUmVhZGVyU3Rh dGUgKnJlY29yZCkKIAkgKgogCSAqIER1cmluZyByZWNvdmVyeSwgaG93ZXZlciwgbm8gY29uY3Vy cmVudCB3cml0ZXJzIGV4aXN0LiBUaGVyZWZvcmUsCiAJICogdXBkYXRpbmcgdGhlIFZNIHdpdGhv dXQgaG9sZGluZyB0aGUgaGVhcCBwYWdlIGxvY2sgaXMgc2FmZSBlbm91Z2guIFRoaXMKLQkgKiBz YW1lIGFwcHJvYWNoIGlzIHRha2VuIHdoZW4gcmVwbGF5aW5nIHhsX2hlYXBfdmlzaWJsZSByZWNv cmRzIChzZWUKLQkgKiBoZWFwX3hsb2dfdmlzaWJsZSgpKS4KKwkgKiBzYW1lIGFwcHJvYWNoIGlz IHRha2VuIHdoZW4gcmVwbGF5aW5nIFhMT0dfSEVBUDJfUFJVTkUqIHJlY29yZHMgKHNlZQorCSAq IGhlYXBfeGxvZ19wcnVuZV9mcmVlemUoKSkuCiAJICovCiAJaWYgKCh4bHJlYy0+ZmxhZ3MgJiBY TEhfSU5TRVJUX0FMTF9GUk9aRU5fU0VUKSAmJgogCQlYTG9nUmVhZEJ1ZmZlckZvclJlZG9FeHRl bmRlZChyZWNvcmQsIDEsIFJCTV9aRVJPX09OX0VSUk9SLCBmYWxzZSwKQEAgLTc4MiwxMSArNjQ1 LDExIEBAIGhlYXBfeGxvZ19tdWx0aV9pbnNlcnQoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJ CWlmIChQYWdlSXNOZXcodm1wYWdlKSkKIAkJCVBhZ2VJbml0KHZtcGFnZSwgQkxDS1NaLCAwKTsK IAotCQl2aXNpYmlsaXR5bWFwX3NldF92bWJpdHMoYmxrbm8sCi0JCQkJCQkJCSB2bWJ1ZmZlciwK LQkJCQkJCQkJIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUgfAotCQkJCQkJCQkgVklTSUJJTElU WU1BUF9BTExfRlJPWkVOLAotCQkJCQkJCQkgcmxvY2F0b3IpOworCQl2aXNpYmlsaXR5bWFwX3Nl dChibGtubywKKwkJCQkJCSAgdm1idWZmZXIsCisJCQkJCQkgIFZJU0lCSUxJVFlNQVBfQUxMX1ZJ U0lCTEUgfAorCQkJCQkJICBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4sCisJCQkJCQkgIHJsb2Nh dG9yKTsKIAogCQlBc3NlcnQoQnVmZmVySXNEaXJ0eSh2bWJ1ZmZlcikpOwogCQlQYWdlU2V0TFNO KHZtcGFnZSwgbHNuKTsKQEAgLTEzNjksOSArMTIzMiw2IEBAIGhlYXAyX3JlZG8oWExvZ1JlYWRl clN0YXRlICpyZWNvcmQpCiAJCWNhc2UgWExPR19IRUFQMl9QUlVORV9WQUNVVU1fQ0xFQU5VUDoK IAkJCWhlYXBfeGxvZ19wcnVuZV9mcmVlemUocmVjb3JkKTsKIAkJCWJyZWFrOwotCQljYXNlIFhM T0dfSEVBUDJfVklTSUJMRToKLQkJCWhlYXBfeGxvZ192aXNpYmxlKHJlY29yZCk7Ci0JCQlicmVh azsKIAkJY2FzZSBYTE9HX0hFQVAyX01VTFRJX0lOU0VSVDoKIAkJCWhlYXBfeGxvZ19tdWx0aV9p bnNlcnQocmVjb3JkKTsKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNz L2hlYXAvcHJ1bmVoZWFwLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwpp bmRleCA2MzNkNDRhZGIwMy4uYmEwMDUyMWQ4MzQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL3BydW5laGVhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5l aGVhcC5jCkBAIC0xMjAyLDggKzEyMDIsOCBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShQ cnVuZUZyZWV6ZVBhcmFtcyAqcGFyYW1zLAogCQkJICovCiAJCQlQYWdlU2V0QWxsVmlzaWJsZShw cnN0YXRlLnBhZ2UpOwogCQkJUGFnZUNsZWFyUHJ1bmFibGUocHJzdGF0ZS5wYWdlKTsKLQkJCXZp c2liaWxpdHltYXBfc2V0X3ZtYml0cyhwcnN0YXRlLmJsb2NrLCBwcnN0YXRlLnZtYnVmZmVyLCBw cnN0YXRlLm5ld192bWJpdHMsCi0JCQkJCQkJCQkgcHJzdGF0ZS5yZWxhdGlvbi0+cmRfbG9jYXRv cik7CisJCQl2aXNpYmlsaXR5bWFwX3NldChwcnN0YXRlLmJsb2NrLCBwcnN0YXRlLnZtYnVmZmVy LCBwcnN0YXRlLm5ld192bWJpdHMsCisJCQkJCQkJICBwcnN0YXRlLnJlbGF0aW9uLT5yZF9sb2Nh dG9yKTsKIAkJfQogCiAJCU1hcmtCdWZmZXJEaXJ0eShwcnN0YXRlLmJ1ZmZlcik7CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKaW5kZXggOWJmZTNjNTQ1ZmYuLjkzYTQ0MzdmMjliIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKKysrIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCkBAIC0xOTI2LDExICsxOTI2LDExIEBA IGxhenlfc2Nhbl9uZXdfb3JfZW1wdHkoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZmZXIgYnVmLCBC bG9ja051bWJlciBibGtubywKIAogCQkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7CiAJCQlQYWdl Q2xlYXJQcnVuYWJsZShwYWdlKTsKLQkJCXZpc2liaWxpdHltYXBfc2V0X3ZtYml0cyhibGtubywK LQkJCQkJCQkJCSB2bWJ1ZmZlciwKLQkJCQkJCQkJCSBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxF IHwKLQkJCQkJCQkJCSBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4sCi0JCQkJCQkJCQkgdmFjcmVs LT5yZWwtPnJkX2xvY2F0b3IpOworCQkJdmlzaWJpbGl0eW1hcF9zZXQoYmxrbm8sCisJCQkJCQkJ ICB2bWJ1ZmZlciwKKwkJCQkJCQkgIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUgfAorCQkJCQkJ CSAgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOLAorCQkJCQkJCSAgdmFjcmVsLT5yZWwtPnJkX2xv Y2F0b3IpOwogCiAJCQkvKgogCQkJICogRW1pdCBXQUwgZm9yIHNldHRpbmcgUERfQUxMX1ZJU0lC TEUgb24gdGhlIGhlYXAgcGFnZSBhbmQKQEAgLTI4MDQsOSArMjgwNCw5IEBAIGxhenlfdmFjdXVt X2hlYXBfcGFnZShMVlJlbFN0YXRlICp2YWNyZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBCdWZmZXIg YnVmZmVyLAogCQkgKi8KIAkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7CiAJCVBhZ2VDbGVhclBy dW5hYmxlKHBhZ2UpOwotCQl2aXNpYmlsaXR5bWFwX3NldF92bWJpdHMoYmxrbm8sCi0JCQkJCQkJ CSB2bWJ1ZmZlciwgdm1mbGFncywKLQkJCQkJCQkJIHZhY3JlbC0+cmVsLT5yZF9sb2NhdG9yKTsK KwkJdmlzaWJpbGl0eW1hcF9zZXQoYmxrbm8sCisJCQkJCQkgIHZtYnVmZmVyLCB2bWZsYWdzLAor CQkJCQkJICB2YWNyZWwtPnJlbC0+cmRfbG9jYXRvcik7CiAJCWNvbmZsaWN0X3hpZCA9IG5ld2Vz dF9saXZlX3hpZDsKIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zp c2liaWxpdHltYXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYwpp bmRleCBlMjFiOTYyODFhNi4uZjFkYTUyYjIwNjkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92 aXNpYmlsaXR5bWFwLmMKQEAgLTE0LDggKzE0LDcgQEAKICAqCQl2aXNpYmlsaXR5bWFwX2NsZWFy ICAtIGNsZWFyIGJpdHMgZm9yIG9uZSBwYWdlIGluIHRoZSB2aXNpYmlsaXR5IG1hcAogICoJCXZp c2liaWxpdHltYXBfcGluCSAtIHBpbiBhIG1hcCBwYWdlIGZvciBzZXR0aW5nIGEgYml0CiAgKgkJ dmlzaWJpbGl0eW1hcF9waW5fb2sgLSBjaGVjayB3aGV0aGVyIGNvcnJlY3QgbWFwIHBhZ2UgaXMg YWxyZWFkeSBwaW5uZWQKLSAqCQl2aXNpYmlsaXR5bWFwX3NldAkgLSBzZXQgYml0KHMpIGluIGEg cHJldmlvdXNseSBwaW5uZWQgcGFnZSBhbmQgbG9nCi0gKgkJdmlzaWJpbGl0eW1hcF9zZXRfdm1i aXRzIC0gc2V0IGJpdChzKSBpbiBhIHBpbm5lZCBwYWdlCisgKgkJdmlzaWJpbGl0eW1hcF9zZXQJ IC0gc2V0IGJpdChzKSBpbiBhIHByZXZpb3VzbHkgcGlubmVkIHBhZ2UKICAqCQl2aXNpYmlsaXR5 bWFwX2dldF9zdGF0dXMgLSBnZXQgc3RhdHVzIG9mIGJpdHMKICAqCQl2aXNpYmlsaXR5bWFwX2Nv dW50ICAtIGNvdW50IG51bWJlciBvZiBiaXRzIHNldCBpbiB2aXNpYmlsaXR5IG1hcAogICoJCXZp c2liaWxpdHltYXBfcHJlcGFyZV90cnVuY2F0ZSAtCkBAIC0yMjIsMTEyICsyMjEsMTEgQEAgdmlz aWJpbGl0eW1hcF9waW5fb2soQmxvY2tOdW1iZXIgaGVhcEJsaywgQnVmZmVyIHZtYnVmKQogCXJl dHVybiBCdWZmZXJJc1ZhbGlkKHZtYnVmKSAmJiBCdWZmZXJHZXRCbG9ja051bWJlcih2bWJ1Zikg PT0gbWFwQmxvY2s7CiB9CiAKLS8qCi0gKgl2aXNpYmlsaXR5bWFwX3NldCAtIHNldCBiaXQocykg b24gYSBwcmV2aW91c2x5IHBpbm5lZCBwYWdlCi0gKgotICogcmVjcHRyIGlzIHRoZSBMU04gb2Yg dGhlIFhMT0cgcmVjb3JkIHdlJ3JlIHJlcGxheWluZywgaWYgd2UncmUgaW4gcmVjb3ZlcnksCi0g KiBvciBJbnZhbGlkWExvZ1JlY1B0ciBpbiBub3JtYWwgcnVubmluZy4gIFRoZSBWTSBwYWdlIExT TiBpcyBhZHZhbmNlZCB0byB0aGUKLSAqIG9uZSBwcm92aWRlZDsgaW4gbm9ybWFsIHJ1bm5pbmcs IHdlIGdlbmVyYXRlIGEgbmV3IFhMT0cgcmVjb3JkIGFuZCBzZXQgdGhlCi0gKiBwYWdlIExTTiB0 byB0aGF0IHZhbHVlICh0aG91Z2ggdGhlIGhlYXAgcGFnZSdzIExTTiBtYXkgKm5vdCogYmUgdXBk YXRlZDsKLSAqIHNlZSBiZWxvdykuICBjdXRvZmZfeGlkIGlzIHRoZSBsYXJnZXN0IHhtaW4gb24g dGhlIHBhZ2UgYmVpbmcgbWFya2VkCi0gKiBhbGwtdmlzaWJsZTsgaXQgaXMgbmVlZGVkIGZvciBI b3QgU3RhbmRieSwgYW5kIGNhbiBiZSBJbnZhbGlkVHJhbnNhY3Rpb25JZAotICogaWYgdGhlIHBh Z2UgY29udGFpbnMgbm8gdHVwbGVzLiAgSXQgY2FuIGFsc28gYmUgc2V0IHRvIEludmFsaWRUcmFu c2FjdGlvbklkCi0gKiB3aGVuIGEgcGFnZSB0aGF0IGlzIGFscmVhZHkgYWxsLXZpc2libGUgaXMg YmVpbmcgbWFya2VkIGFsbC1mcm96ZW4uCi0gKgotICogQ2FsbGVyIGlzIGV4cGVjdGVkIHRvIHNl dCB0aGUgaGVhcCBwYWdlJ3MgUERfQUxMX1ZJU0lCTEUgYml0IGJlZm9yZSBjYWxsaW5nCi0gKiB0 aGlzIGZ1bmN0aW9uLiBFeGNlcHQgaW4gcmVjb3ZlcnksIGNhbGxlciBzaG91bGQgYWxzbyBwYXNz IHRoZSBoZWFwCi0gKiBidWZmZXIuIFdoZW4gY2hlY2tzdW1zIGFyZSBlbmFibGVkIGFuZCB3ZSdy ZSBub3QgaW4gcmVjb3ZlcnksIHdlIG11c3QgYWRkCi0gKiB0aGUgaGVhcCBidWZmZXIgdG8gdGhl IFdBTCBjaGFpbiB0byBwcm90ZWN0IGl0IGZyb20gYmVpbmcgdG9ybi4KLSAqCi0gKiBZb3UgbXVz dCBwYXNzIGEgYnVmZmVyIGNvbnRhaW5pbmcgdGhlIGNvcnJlY3QgbWFwIHBhZ2UgdG8gdGhpcyBm dW5jdGlvbi4KLSAqIENhbGwgdmlzaWJpbGl0eW1hcF9waW4gZmlyc3QgdG8gcGluIHRoZSByaWdo dCBvbmUuIFRoaXMgZnVuY3Rpb24gZG9lc24ndCBkbwotICogYW55IEkvTy4KLSAqLwotdm9pZAot dmlzaWJpbGl0eW1hcF9zZXQoUmVsYXRpb24gcmVsLCBCbG9ja051bWJlciBoZWFwQmxrLCBCdWZm ZXIgaGVhcEJ1ZiwKLQkJCQkgIFhMb2dSZWNQdHIgcmVjcHRyLCBCdWZmZXIgdm1CdWYsIFRyYW5z YWN0aW9uSWQgY3V0b2ZmX3hpZCwKLQkJCQkgIHVpbnQ4IGZsYWdzKQotewotCUJsb2NrTnVtYmVy IG1hcEJsb2NrID0gSEVBUEJMS19UT19NQVBCTE9DSyhoZWFwQmxrKTsKLQl1aW50MzIJCW1hcEJ5 dGUgPSBIRUFQQkxLX1RPX01BUEJZVEUoaGVhcEJsayk7Ci0JdWludDgJCW1hcE9mZnNldCA9IEhF QVBCTEtfVE9fT0ZGU0VUKGhlYXBCbGspOwotCVBhZ2UJCXBhZ2U7Ci0JdWludDgJICAgKm1hcDsK LQl1aW50OAkJc3RhdHVzOwotCi0jaWZkZWYgVFJBQ0VfVklTSUJJTElUWU1BUAotCWVsb2coREVC VUcxLCAidm1fc2V0IGZsYWdzIDB4JTAyWCBmb3IgJXMgJWQiLAotCQkgZmxhZ3MsIFJlbGF0aW9u R2V0UmVsYXRpb25OYW1lKHJlbCksIGhlYXBCbGspOwotI2VuZGlmCi0KLQlBc3NlcnQoSW5SZWNv dmVyeSB8fCAhWExvZ1JlY1B0cklzVmFsaWQocmVjcHRyKSk7Ci0JQXNzZXJ0KEluUmVjb3Zlcnkg fHwgUGFnZUlzQWxsVmlzaWJsZShCdWZmZXJHZXRQYWdlKGhlYXBCdWYpKSk7Ci0JQXNzZXJ0KChm bGFncyAmIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUykgPT0gZmxhZ3MpOwotCi0JLyogTXVzdCBu ZXZlciBzZXQgYWxsX2Zyb3plbiBiaXQgd2l0aG91dCBhbHNvIHNldHRpbmcgYWxsX3Zpc2libGUg Yml0ICovCi0JQXNzZXJ0KGZsYWdzICE9IFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTik7Ci0KLQkv KiBDaGVjayB0aGF0IHdlIGhhdmUgdGhlIHJpZ2h0IGhlYXAgcGFnZSBwaW5uZWQsIGlmIHByZXNl bnQgKi8KLQlpZiAoQnVmZmVySXNWYWxpZChoZWFwQnVmKSAmJiBCdWZmZXJHZXRCbG9ja051bWJl cihoZWFwQnVmKSAhPSBoZWFwQmxrKQotCQllbG9nKEVSUk9SLCAid3JvbmcgaGVhcCBidWZmZXIg cGFzc2VkIHRvIHZpc2liaWxpdHltYXBfc2V0Iik7Ci0KLQlBc3NlcnQoIUJ1ZmZlcklzVmFsaWQo aGVhcEJ1ZikgfHwKLQkJICAgQnVmZmVySXNMb2NrZWRCeU1lSW5Nb2RlKGhlYXBCdWYsIEJVRkZF Ul9MT0NLX0VYQ0xVU0lWRSkpOwotCi0JLyogQ2hlY2sgdGhhdCB3ZSBoYXZlIHRoZSByaWdodCBW TSBwYWdlIHBpbm5lZCAqLwotCWlmICghQnVmZmVySXNWYWxpZCh2bUJ1ZikgfHwgQnVmZmVyR2V0 QmxvY2tOdW1iZXIodm1CdWYpICE9IG1hcEJsb2NrKQotCQllbG9nKEVSUk9SLCAid3JvbmcgVk0g YnVmZmVyIHBhc3NlZCB0byB2aXNpYmlsaXR5bWFwX3NldCIpOwotCi0JcGFnZSA9IEJ1ZmZlckdl dFBhZ2Uodm1CdWYpOwotCW1hcCA9ICh1aW50OCAqKSBQYWdlR2V0Q29udGVudHMocGFnZSk7Ci0J TG9ja0J1ZmZlcih2bUJ1ZiwgQlVGRkVSX0xPQ0tfRVhDTFVTSVZFKTsKLQotCXN0YXR1cyA9ICht YXBbbWFwQnl0ZV0gPj4gbWFwT2Zmc2V0KSAmIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUzsKLQlp ZiAoZmxhZ3MgIT0gc3RhdHVzKQotCXsKLQkJU1RBUlRfQ1JJVF9TRUNUSU9OKCk7Ci0KLQkJbWFw W21hcEJ5dGVdIHw9IChmbGFncyA8PCBtYXBPZmZzZXQpOwotCQlNYXJrQnVmZmVyRGlydHkodm1C dWYpOwotCi0JCWlmIChSZWxhdGlvbk5lZWRzV0FMKHJlbCkpCi0JCXsKLQkJCWlmICghWExvZ1Jl Y1B0cklzVmFsaWQocmVjcHRyKSkKLQkJCXsKLQkJCQlBc3NlcnQoIUluUmVjb3ZlcnkpOwotCQkJ CXJlY3B0ciA9IGxvZ19oZWFwX3Zpc2libGUocmVsLCBoZWFwQnVmLCB2bUJ1ZiwgY3V0b2ZmX3hp ZCwgZmxhZ3MpOwotCi0JCQkJLyoKLQkJCQkgKiBJZiBkYXRhIGNoZWNrc3VtcyBhcmUgZW5hYmxl ZCAob3Igd2FsX2xvZ19oaW50cz1vbiksIHdlCi0JCQkJICogbmVlZCB0byBwcm90ZWN0IHRoZSBo ZWFwIHBhZ2UgZnJvbSBiZWluZyB0b3JuLgotCQkJCSAqCi0JCQkJICogSWYgbm90LCB0aGVuIHdl IG11c3QgKm5vdCogdXBkYXRlIHRoZSBoZWFwIHBhZ2UncyBMU04uIEluCi0JCQkJICogdGhpcyBj YXNlLCB0aGUgRlBJIGZvciB0aGUgaGVhcCBwYWdlIHdhcyBvbWl0dGVkIGZyb20gdGhlCi0JCQkJ ICogV0FMIHJlY29yZCBpbnNlcnRlZCBhYm92ZSwgc28gaXQgd291bGQgYmUgaW5jb3JyZWN0IHRv Ci0JCQkJICogdXBkYXRlIHRoZSBoZWFwIHBhZ2UncyBMU04uCi0JCQkJICovCi0JCQkJaWYgKFhM b2dIaW50Qml0SXNOZWVkZWQoKSkKLQkJCQl7Ci0JCQkJCVBhZ2UJCWhlYXBQYWdlID0gQnVmZmVy R2V0UGFnZShoZWFwQnVmKTsKLQotCQkJCQlQYWdlU2V0TFNOKGhlYXBQYWdlLCByZWNwdHIpOwot CQkJCX0KLQkJCX0KLQkJCVBhZ2VTZXRMU04ocGFnZSwgcmVjcHRyKTsKLQkJfQotCi0JCUVORF9D UklUX1NFQ1RJT04oKTsKLQl9Ci0KLQlMb2NrQnVmZmVyKHZtQnVmLCBCVUZGRVJfTE9DS19VTkxP Q0spOwotfQotCiAvKgogICogU2V0IFZNICh2aXNpYmlsaXR5IG1hcCkgZmxhZ3MgaW4gdGhlIFZN IGJsb2NrIGluIHZtQnVmLgogICoKICAqIFRoaXMgZnVuY3Rpb24gaXMgaW50ZW5kZWQgZm9yIGNh bGxlcnMgdGhhdCBsb2cgVk0gY2hhbmdlcyB0b2dldGhlcgogICogd2l0aCB0aGUgaGVhcCBwYWdl IG1vZGlmaWNhdGlvbnMgdGhhdCByZW5kZXJlZCB0aGUgcGFnZSBhbGwtdmlzaWJsZS4KLSAqIENh bGxlcnMgdGhhdCBsb2cgVk0gY2hhbmdlcyBzZXBhcmF0ZWx5IHNob3VsZCB1c2UgdmlzaWJpbGl0 eW1hcF9zZXQoKS4KICAqCiAgKiB2bUJ1ZiBtdXN0IGJlIHBpbm5lZCBhbmQgZXhjbHVzaXZlbHkg bG9ja2VkLCBhbmQgaXQgbXVzdCBjb3ZlciB0aGUgVk0gYml0cwogICogY29ycmVzcG9uZGluZyB0 byBoZWFwQmxrLgpAQCAtMzQzLDkgKzI0MSw5IEBAIHZpc2liaWxpdHltYXBfc2V0KFJlbGF0aW9u IHJlbCwgQmxvY2tOdW1iZXIgaGVhcEJsaywgQnVmZmVyIGhlYXBCdWYsCiAgKiBybG9jYXRvciBp cyB1c2VkIG9ubHkgZm9yIGRlYnVnZ2luZyBtZXNzYWdlcy4KICAqLwogdm9pZAotdmlzaWJpbGl0 eW1hcF9zZXRfdm1iaXRzKEJsb2NrTnVtYmVyIGhlYXBCbGssCi0JCQkJCQkgQnVmZmVyIHZtQnVm LCB1aW50OCBmbGFncywKLQkJCQkJCSBjb25zdCBSZWxGaWxlTG9jYXRvciBybG9jYXRvcikKK3Zp c2liaWxpdHltYXBfc2V0KEJsb2NrTnVtYmVyIGhlYXBCbGssCisJCQkJICBCdWZmZXIgdm1CdWYs IHVpbnQ4IGZsYWdzLAorCQkJCSAgY29uc3QgUmVsRmlsZUxvY2F0b3IgcmxvY2F0b3IpCiB7CiAJ QmxvY2tOdW1iZXIgbWFwQmxvY2sgPSBIRUFQQkxLX1RPX01BUEJMT0NLKGhlYXBCbGspOwogCXVp bnQzMgkJbWFwQnl0ZSA9IEhFQVBCTEtfVE9fTUFQQllURShoZWFwQmxrKTsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9ybWdyZGVzYy9oZWFwZGVzYy5jIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL3JtZ3JkZXNjL2hlYXBkZXNjLmMKaW5kZXggMDJhZTkxNjUzYzEuLjc1YWU2ZjlkMzc1IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MvaGVhcGRlc2MuYworKysgYi9z cmMvYmFja2VuZC9hY2Nlc3Mvcm1ncmRlc2MvaGVhcGRlc2MuYwpAQCAtMzQ5LDEzICszNDksNiBA QCBoZWFwMl9kZXNjKFN0cmluZ0luZm8gYnVmLCBYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJ CX0KIAkJfQogCX0KLQllbHNlIGlmIChpbmZvID09IFhMT0dfSEVBUDJfVklTSUJMRSkKLQl7Ci0J CXhsX2hlYXBfdmlzaWJsZSAqeGxyZWMgPSAoeGxfaGVhcF92aXNpYmxlICopIHJlYzsKLQotCQlh cHBlbmRTdHJpbmdJbmZvKGJ1ZiwgInNuYXBzaG90Q29uZmxpY3RIb3Jpem9uOiAldSwgZmxhZ3M6 IDB4JTAyWCIsCi0JCQkJCQkgeGxyZWMtPnNuYXBzaG90Q29uZmxpY3RIb3Jpem9uLCB4bHJlYy0+ ZmxhZ3MpOwotCX0KIAllbHNlIGlmIChpbmZvID09IFhMT0dfSEVBUDJfTVVMVElfSU5TRVJUKQog CXsKIAkJeGxfaGVhcF9tdWx0aV9pbnNlcnQgKnhscmVjID0gKHhsX2hlYXBfbXVsdGlfaW5zZXJ0 ICopIHJlYzsKQEAgLTQ2MSw5ICs0NTQsNiBAQCBoZWFwMl9pZGVudGlmeSh1aW50OCBpbmZvKQog CQljYXNlIFhMT0dfSEVBUDJfUFJVTkVfVkFDVVVNX0NMRUFOVVA6CiAJCQlpZCA9ICJQUlVORV9W QUNVVU1fQ0xFQU5VUCI7CiAJCQlicmVhazsKLQkJY2FzZSBYTE9HX0hFQVAyX1ZJU0lCTEU6Ci0J CQlpZCA9ICJWSVNJQkxFIjsKLQkJCWJyZWFrOwogCQljYXNlIFhMT0dfSEVBUDJfTVVMVElfSU5T RVJUOgogCQkJaWQgPSAiTVVMVElfSU5TRVJUIjsKIAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9kZWNvZGUuYyBiL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL2xvZ2ljYWwvZGVjb2RlLmMKaW5kZXggMjFmMDM4NjRhNjYuLjNjMDI3YmNiMmY3IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29kZS5jCisrKyBi L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvZGVjb2RlLmMKQEAgLTQ0OCw3ICs0NDgs NiBAQCBoZWFwMl9kZWNvZGUoTG9naWNhbERlY29kaW5nQ29udGV4dCAqY3R4LCBYTG9nUmVjb3Jk QnVmZmVyICpidWYpCiAJCWNhc2UgWExPR19IRUFQMl9QUlVORV9PTl9BQ0NFU1M6CiAJCWNhc2Ug WExPR19IRUFQMl9QUlVORV9WQUNVVU1fU0NBTjoKIAkJY2FzZSBYTE9HX0hFQVAyX1BSVU5FX1ZB Q1VVTV9DTEVBTlVQOgotCQljYXNlIFhMT0dfSEVBUDJfVklTSUJMRToKIAkJY2FzZSBYTE9HX0hF QVAyX0xPQ0tfVVBEQVRFRDoKIAkJCWJyZWFrOwogCQlkZWZhdWx0OgpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvc3RvcmFnZS9pcGMvc3RhbmRieS5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMv c3RhbmRieS5jCmluZGV4IGYzYWQ5MGM3YzdhLi42NmVkNTFhOGFhMSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvc3RvcmFnZS9pcGMvc3RhbmRieS5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2Uv aXBjL3N0YW5kYnkuYwpAQCAtNDc3LDEyICs0NzcsMTIgQEAgUmVzb2x2ZVJlY292ZXJ5Q29uZmxp Y3RXaXRoU25hcHNob3QoVHJhbnNhY3Rpb25JZCBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwKIAkg KiBJZiB3ZSBnZXQgcGFzc2VkIEludmFsaWRUcmFuc2FjdGlvbklkIHRoZW4gd2UgZG8gbm90aGlu ZyAobm8gY29uZmxpY3QpLgogCSAqCiAJICogVGhpcyBjYW4gaGFwcGVuIHdoZW4gcmVwbGF5aW5n IGFscmVhZHktYXBwbGllZCBXQUwgcmVjb3JkcyBhZnRlciBhCi0JICogc3RhbmRieSBjcmFzaCBv ciByZXN0YXJ0LCBvciB3aGVuIHJlcGxheWluZyBhbiBYTE9HX0hFQVAyX1ZJU0lCTEUKLQkgKiBy ZWNvcmQgdGhhdCBtYXJrcyBhcyBmcm96ZW4gYSBwYWdlIHdoaWNoIHdhcyBhbHJlYWR5IGFsbC12 aXNpYmxlLiAgSXQncwotCSAqIGFsc28gcXVpdGUgY29tbW9uIHdpdGggcmVjb3JkcyBnZW5lcmF0 ZWQgZHVyaW5nIGluZGV4IGRlbGV0aW9uCi0JICogKG9yaWdpbmFsIGV4ZWN1dGlvbiBvZiB0aGUg ZGVsZXRpb24gY2FuIHJlYXNvbiB0aGF0IGEgcmVjb3ZlcnkgY29uZmxpY3QKLQkgKiB3aGljaCBp cyBzdWZmaWNpZW50IGZvciB0aGUgZGVsZXRpb24gb3BlcmF0aW9uIG11c3QgdGFrZSBwbGFjZSBi ZWZvcmUKLQkgKiByZXBsYXkgb2YgdGhlIGRlbGV0aW9uIHJlY29yZCBpdHNlbGYpLgorCSAqIHN0 YW5kYnkgY3Jhc2ggb3IgcmVzdGFydCwgb3Igd2hlbiByZXBsYXlpbmcgYSByZWNvcmQgdGhhdCBt YXJrcyBhcworCSAqIGZyb3plbiBhIHBhZ2Ugd2hpY2ggd2FzIGFscmVhZHkgbWFya2VkIGFsbC12 aXNpYmxlIGluIHRoZSB2aXNpYmlsaXR5CisJICogbWFwLiAgSXQncyBhbHNvIHF1aXRlIGNvbW1v biB3aXRoIHJlY29yZHMgZ2VuZXJhdGVkIGR1cmluZyBpbmRleAorCSAqIGRlbGV0aW9uIChvcmln aW5hbCBleGVjdXRpb24gb2YgdGhlIGRlbGV0aW9uIGNhbiByZWFzb24gdGhhdCBhIHJlY292ZXJ5 CisJICogY29uZmxpY3Qgd2hpY2ggaXMgc3VmZmljaWVudCBmb3IgdGhlIGRlbGV0aW9uIG9wZXJh dGlvbiBtdXN0IHRha2UgcGxhY2UKKwkgKiBiZWZvcmUgcmVwbGF5IG9mIHRoZSBkZWxldGlvbiBy ZWNvcmQgaXRzZWxmKS4KIAkgKi8KIAlpZiAoIVRyYW5zYWN0aW9uSWRJc1ZhbGlkKHNuYXBzaG90 Q29uZmxpY3RIb3Jpem9uKSkKIAkJcmV0dXJuOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNj ZXNzL2hlYXBhbV94bG9nLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtX3hsb2cuaAppbmRl eCBjZTM1NjZiYTk0OS4uNWVlZDU2N2E4ZTUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vz cy9oZWFwYW1feGxvZy5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxvZy5oCkBA IC02MCw3ICs2MCw2IEBACiAjZGVmaW5lIFhMT0dfSEVBUDJfUFJVTkVfT05fQUNDRVNTCQkweDEw CiAjZGVmaW5lIFhMT0dfSEVBUDJfUFJVTkVfVkFDVVVNX1NDQU4JMHgyMAogI2RlZmluZSBYTE9H X0hFQVAyX1BSVU5FX1ZBQ1VVTV9DTEVBTlVQCTB4MzAKLSNkZWZpbmUgWExPR19IRUFQMl9WSVNJ QkxFCQkweDQwCiAjZGVmaW5lIFhMT0dfSEVBUDJfTVVMVElfSU5TRVJUIDB4NTAKICNkZWZpbmUg WExPR19IRUFQMl9MT0NLX1VQREFURUQgMHg2MAogI2RlZmluZSBYTE9HX0hFQVAyX05FV19DSUQJ CTB4NzAKQEAgLTQ0MywyMCArNDQyLDYgQEAgdHlwZWRlZiBzdHJ1Y3QgeGxfaGVhcF9pbnBsYWNl CiAKICNkZWZpbmUgTWluU2l6ZU9mSGVhcElucGxhY2UJKG9mZnNldG9mKHhsX2hlYXBfaW5wbGFj ZSwgbm1zZ3MpICsgc2l6ZW9mKGludCkpCiAKLS8qCi0gKiBUaGlzIGlzIHdoYXQgd2UgbmVlZCB0 byBrbm93IGFib3V0IHNldHRpbmcgYSB2aXNpYmlsaXR5IG1hcCBiaXQKLSAqCi0gKiBCYWNrdXAg YmxrIDA6IHZpc2liaWxpdHkgbWFwIGJ1ZmZlcgotICogQmFja3VwIGJsayAxOiBoZWFwIGJ1ZmZl cgotICovCi10eXBlZGVmIHN0cnVjdCB4bF9oZWFwX3Zpc2libGUKLXsKLQlUcmFuc2FjdGlvbklk IHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uOwotCXVpbnQ4CQlmbGFnczsKLX0geGxfaGVhcF92aXNp YmxlOwotCi0jZGVmaW5lIFNpemVPZkhlYXBWaXNpYmxlIChvZmZzZXRvZih4bF9oZWFwX3Zpc2li bGUsIGZsYWdzKSArIHNpemVvZih1aW50OCkpCi0KIHR5cGVkZWYgc3RydWN0IHhsX2hlYXBfbmV3 X2NpZAogewogCS8qCkBAIC01MDAsMTEgKzQ4NSw2IEBAIGV4dGVybiB2b2lkIGhlYXAyX2Rlc2Mo U3RyaW5nSW5mbyBidWYsIFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKTsKIGV4dGVybiBjb25zdCBj aGFyICpoZWFwMl9pZGVudGlmeSh1aW50OCBpbmZvKTsKIGV4dGVybiB2b2lkIGhlYXBfeGxvZ19s b2dpY2FsX3Jld3JpdGUoWExvZ1JlYWRlclN0YXRlICpyKTsKIAotZXh0ZXJuIFhMb2dSZWNQdHIg bG9nX2hlYXBfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBoZWFwX2J1ZmZlciwKLQkJCQkJ CQkJICAgQnVmZmVyIHZtX2J1ZmZlciwKLQkJCQkJCQkJICAgVHJhbnNhY3Rpb25JZCBzbmFwc2hv dENvbmZsaWN0SG9yaXpvbiwKLQkJCQkJCQkJICAgdWludDggdm1mbGFncyk7Ci0KIC8qIGluIGhl YXBkZXNjLmMsIHNvIGl0IGNhbiBiZSBzaGFyZWQgYmV0d2VlbiBmcm9udGVuZC9iYWNrZW5kIGNv ZGUgKi8KIGV4dGVybiB2b2lkIGhlYXBfeGxvZ19kZXNlcmlhbGl6ZV9wcnVuZV9hbmRfZnJlZXpl KGNoYXIgKmN1cnNvciwgdWludDE2IGZsYWdzLAogCQkJCQkJCQkJCQkJICAgaW50ICpucGxhbnMs IHhsaHBfZnJlZXplX3BsYW4gKipwbGFucywKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vz cy92aXNpYmlsaXR5bWFwLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJpbGl0eW1hcC5oCmlu ZGV4IDUyY2RlNTZiZTg2Li5lNGUwY2ZhOTg5ZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNj ZXNzL3Zpc2liaWxpdHltYXAuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvdmlzaWJpbGl0eW1h cC5oCkBAIC0xNSw3ICsxNSw2IEBACiAjZGVmaW5lIFZJU0lCSUxJVFlNQVBfSAogCiAjaW5jbHVk ZSAiYWNjZXNzL3Zpc2liaWxpdHltYXBkZWZzLmgiCi0jaW5jbHVkZSAiYWNjZXNzL3hsb2dkZWZz LmgiCiAjaW5jbHVkZSAic3RvcmFnZS9ibG9jay5oIgogI2luY2x1ZGUgInN0b3JhZ2UvYnVmLmgi CiAjaW5jbHVkZSAic3RvcmFnZS9yZWxmaWxlbG9jYXRvci5oIgpAQCAtMzIsMTUgKzMxLDkgQEAg ZXh0ZXJuIGJvb2wgdmlzaWJpbGl0eW1hcF9jbGVhcihSZWxhdGlvbiByZWwsIEJsb2NrTnVtYmVy IGhlYXBCbGssCiBleHRlcm4gdm9pZCB2aXNpYmlsaXR5bWFwX3BpbihSZWxhdGlvbiByZWwsIEJs b2NrTnVtYmVyIGhlYXBCbGssCiAJCQkJCQkJICBCdWZmZXIgKnZtYnVmKTsKIGV4dGVybiBib29s IHZpc2liaWxpdHltYXBfcGluX29rKEJsb2NrTnVtYmVyIGhlYXBCbGssIEJ1ZmZlciB2bWJ1Zik7 Ci1leHRlcm4gdm9pZCB2aXNpYmlsaXR5bWFwX3NldChSZWxhdGlvbiByZWwsCi0JCQkJCQkJICBC bG9ja051bWJlciBoZWFwQmxrLCBCdWZmZXIgaGVhcEJ1ZiwKLQkJCQkJCQkgIFhMb2dSZWNQdHIg cmVjcHRyLAotCQkJCQkJCSAgQnVmZmVyIHZtQnVmLAotCQkJCQkJCSAgVHJhbnNhY3Rpb25JZCBj dXRvZmZfeGlkLAotCQkJCQkJCSAgdWludDggZmxhZ3MpOwotZXh0ZXJuIHZvaWQgdmlzaWJpbGl0 eW1hcF9zZXRfdm1iaXRzKEJsb2NrTnVtYmVyIGhlYXBCbGssCi0JCQkJCQkJCQkgQnVmZmVyIHZt QnVmLCB1aW50OCBmbGFncywKLQkJCQkJCQkJCSBjb25zdCBSZWxGaWxlTG9jYXRvciBybG9jYXRv cik7CitleHRlcm4gdm9pZCB2aXNpYmlsaXR5bWFwX3NldChCbG9ja051bWJlciBoZWFwQmxrLAor CQkJCQkJCSAgQnVmZmVyIHZtQnVmLCB1aW50OCBmbGFncywKKwkJCQkJCQkgIGNvbnN0IFJlbEZp bGVMb2NhdG9yIHJsb2NhdG9yKTsKIGV4dGVybiB1aW50OCB2aXNpYmlsaXR5bWFwX2dldF9zdGF0 dXMoUmVsYXRpb24gcmVsLCBCbG9ja051bWJlciBoZWFwQmxrLCBCdWZmZXIgKnZtYnVmKTsKIGV4 dGVybiB2b2lkIHZpc2liaWxpdHltYXBfY291bnQoUmVsYXRpb24gcmVsLCBCbG9ja051bWJlciAq YWxsX3Zpc2libGUsIEJsb2NrTnVtYmVyICphbGxfZnJvemVuKTsKIGV4dGVybiBCbG9ja051bWJl ciB2aXNpYmlsaXR5bWFwX3ByZXBhcmVfdHJ1bmNhdGUoUmVsYXRpb24gcmVsLApkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3Zpc2liaWxpdHltYXBkZWZzLmggYi9zcmMvaW5jbHVkZS9h Y2Nlc3MvdmlzaWJpbGl0eW1hcGRlZnMuaAppbmRleCA4OTE1M2IzY2Q5YS4uZTU3OTRjODU1OWUg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy92aXNpYmlsaXR5bWFwZGVmcy5oCisrKyBi L3NyYy9pbmNsdWRlL2FjY2Vzcy92aXNpYmlsaXR5bWFwZGVmcy5oCkBAIC0yMSwxNCArMjEsNSBA QAogI2RlZmluZSBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4JMHgwMgogI2RlZmluZSBWSVNJQklM SVRZTUFQX1ZBTElEX0JJVFMJMHgwMwkvKiBPUiBvZiBhbGwgdmFsaWQgdmlzaWJpbGl0eW1hcAog CQkJCQkJCQkJCQkgKiBmbGFncyBiaXRzICovCi0vKgotICogVG8gZGV0ZWN0IHJlY292ZXJ5IGNv bmZsaWN0cyBkdXJpbmcgbG9naWNhbCBkZWNvZGluZyBvbiBhIHN0YW5kYnksIHdlIG5lZWQKLSAq IHRvIGtub3cgaWYgYSB0YWJsZSBpcyBhIHVzZXIgY2F0YWxvZyB0YWJsZS4gRm9yIHRoYXQgd2Ug YWRkIGFuIGFkZGl0aW9uYWwKLSAqIGJpdCBpbnRvIHhsX2hlYXBfdmlzaWJsZS5mbGFncywgaW4g YWRkaXRpb24gdG8gdGhlIGFib3ZlLgotICoKLSAqIE5COiBWSVNJQklMSVRZTUFQX1hMT0dfKiBt YXkgbm90IGJlIHBhc3NlZCB0byB2aXNpYmlsaXR5bWFwX3NldCgpLgotICovCi0jZGVmaW5lIFZJ U0lCSUxJVFlNQVBfWExPR19DQVRBTE9HX1JFTAkweDA0Ci0jZGVmaW5lIFZJU0lCSUxJVFlNQVBf WExPR19WQUxJRF9CSVRTCShWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMgfCBWSVNJQklMSVRZTUFQ X1hMT0dfQ0FUQUxPR19SRUwpCiAKICNlbmRpZgkJCQkJCQkvKiBWSVNJQklMSVRZTUFQREVGU19I ICovCmRpZmYgLS1naXQgYS9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90 b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CmluZGV4IDUyZjg2MDNhN2JlLi4zMTAyYzYxMTI1 ZSAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3Jj L3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTQ0MDksNyArNDQwOSw2IEBAIHhsX2hl YXBfcHJ1bmUKIHhsX2hlYXBfcmV3cml0ZV9tYXBwaW5nCiB4bF9oZWFwX3RydW5jYXRlCiB4bF9o ZWFwX3VwZGF0ZQoteGxfaGVhcF92aXNpYmxlCiB4bF9pbnZhbGlkX3BhZ2UKIHhsX2ludmFsaWRf cGFnZV9rZXkKIHhsX2ludmFsaWRhdGlvbnMKLS0gCjIuNDMuMAoK --0000000000002365dc064d39709f Content-Type: text/x-patch; charset="US-ASCII"; name="v40-0008-Track-which-relations-are-modified-by-a-query.patch" Content-Disposition: attachment; filename="v40-0008-Track-which-relations-are-modified-by-a-query.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmupqzrs7 RnJvbSAwNGIwM2MxZWMzYWJjZWU3NWU0NjRmZWY5OTRiNDgyZGY0MWIzNWY0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDMgRGVjIDIwMjUgMTU6MDc6MjQgLTA1MDAKU3ViamVjdDogW1BB VENIIHY0MCAwOC8xMl0gVHJhY2sgd2hpY2ggcmVsYXRpb25zIGFyZSBtb2RpZmllZCBieSBhIHF1 ZXJ5CgpTYXZlIHRoZSByZWxpZHMgb2YgbW9kaWZpZWQgcmVsYXRpb25zIGluIGEgYml0bWFwIGlu IHRoZSBleGVjdXRvciBzdGF0ZS4KQSBsYXRlciBjb21taXQgd2lsbCBwYXNzIHRoaXMgaW5mb3Jt YXRpb24gZG93biB0byBzY2FuIG5vZGVzIHRvIGNvbnRyb2wKd2hldGhlciBvciBub3Qgb24tYWNj ZXNzIHBydW5pbmcgaXMgYWxsb3dlZCB0byBzZXQgdGhlIHZpc2liaWxpdHkgbWFwLgpTZXR0aW5n IHRoZSB2aXNpYmlsaXR5IG1hcCBkdXJpbmcgYSBzY2FuIGlzIGNvdW50ZXJwcm9kdWN0aXZlIGlm IHRoZQpxdWVyeSBpcyBnb2luZyB0byBtb2RpZnkgdGhlIHBhZ2UgaW1tZWRpYXRlbHkgYWZ0ZXIu CgpSZWxhdGlvbnMgYXJlIGNvbnNpZGVyZWQgbW9kaWZpZWQgaWYgdGhleSBhcmUgdGhlIHRhcmdl dCBvZiBJTlNFUlQsClVQREFURSwgREVMRVRFLCBvciBNRVJHRSwgb3IgaWYgdGhleSBoYXZlIGFu eSByb3cgbWFyayAoaW5jbHVkaW5nIFNFTEVDVApGT1IgVVBEQVRFL1NIQVJFKS4gQWxsIHJvdyBt YXJrIHR5cGVzIGFyZSBpbmNsdWRlZCwgZXZlbiB0aG9zZSB3aGljaApkb24ndCBhY3R1YWxseSBt b2RpZnkgdHVwbGVzLCBiZWNhdXNlIHRoaXMgYml0bWFwIGlzIG9ubHkgdXNlZCBhcyBhIGhpbnQK dG8gYXZvaWQgdW5uZWNlc3Nhcnkgd29yay4KCkF1dGhvcjogTWVsYW5pZSBQbGFnZW1hbiA8bWVs YW5pZXBsYWdlbWFuQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJlcyBGcmV1bmQgPGFuZHJl c0BhbmFyYXplbC5kZT4KUmV2aWV3ZWQtYnk6IENoYW8gTGkgPGxpLmV2YW4uY2hhb0BnbWFpbC5j b20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vRjVDREQxQjUtNjI4Qy00NEExLTlG ODUtMzk1OEM2MjZGNkE5JTQwZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y01haW4uYyAgfCAxOCArKysrKysrKysrKysrKysrKysKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNVdGlscy5jIHwgMzEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2luY2x1 ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaCAgfCAgMyArKysKIHNyYy9pbmNsdWRlL25vZGVzL2V4ZWNu b2Rlcy5oICAgIHwgIDYgKysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDU4IGluc2VydGlvbnMoKykK CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jIGIvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY01haW4uYwppbmRleCA1OGI4NDk1NWMyYi4uOGQyMmI2ZGI4NjcgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKKysrIGIvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY01haW4uYwpAQCAtOTIyLDYgKzkyMiwxMCBAQCBJbml0UGxhbihRdWVy eURlc2MgKnF1ZXJ5RGVzYywgaW50IGVmbGFncykKIAkJCQkJYnJlYWs7CiAJCQl9CiAKKwkJCS8q IElmIGl0IGhhcyBhIHJvd21hcmssIHRoZSByZWxhdGlvbiBtYXkgYmUgbW9kaWZpZWQgKi8KKwkJ CWVzdGF0ZS0+ZXNfbW9kaWZpZWRfcmVsaWRzID0gYm1zX2FkZF9tZW1iZXIoZXN0YXRlLT5lc19t b2RpZmllZF9yZWxpZHMsCisJCQkJCQkJCQkJCQkJCXJjLT5ydGkpOworCiAJCQkvKiBDaGVjayB0 aGF0IHJlbGF0aW9uIGlzIGEgbGVnYWwgdGFyZ2V0IGZvciBtYXJraW5nICovCiAJCQlpZiAocmVs YXRpb24pCiAJCQkJQ2hlY2tWYWxpZFJvd01hcmtSZWwocmVsYXRpb24sIHJjLT5tYXJrVHlwZSk7 CkBAIC05OTIsNiArOTk2LDEwIEBAIEluaXRQbGFuKFF1ZXJ5RGVzYyAqcXVlcnlEZXNjLCBpbnQg ZWZsYWdzKQogCSAqLwogCXBsYW5zdGF0ZSA9IEV4ZWNJbml0Tm9kZShwbGFuLCBlc3RhdGUsIGVm bGFncyk7CiAKKyNpZmRlZiBVU0VfQVNTRVJUX0NIRUNLSU5HCisJQ3Jvc3NDaGVja01vZGlmaWVk UmVsaWRzKGVzdGF0ZSk7CisjZW5kaWYKKwogCS8qCiAJICogR2V0IHRoZSB0dXBsZSBkZXNjcmlw dG9yIGRlc2NyaWJpbmcgdGhlIHR5cGUgb2YgdHVwbGVzIHRvIHJldHVybi4KIAkgKi8KQEAgLTMw NDgsNiArMzA1NiwxMiBAQCBFdmFsUGxhblF1YWxTdGFydChFUFFTdGF0ZSAqZXBxc3RhdGUsIFBs YW4gKnBsYW5UcmVlKQogCXJjZXN0YXRlLT5lc19vdXRwdXRfY2lkID0gcGFyZW50ZXN0YXRlLT5l c19vdXRwdXRfY2lkOwogCXJjZXN0YXRlLT5lc19xdWVyeUVudiA9IHBhcmVudGVzdGF0ZS0+ZXNf cXVlcnlFbnY7CiAKKwkvKgorCSAqIFVzZSBhIGRlZXAgY29weSB0byBhdm9pZCBzdGFsZSBwb2lu dGVycyBzaW5jZSBibXNfYWRkX21lbWJlcigpIG1heQorCSAqIHJlYWxsb2NhdGUgdGhlIGJpdG1h cC4KKwkgKi8KKwlyY2VzdGF0ZS0+ZXNfbW9kaWZpZWRfcmVsaWRzID0gYm1zX2NvcHkocGFyZW50 ZXN0YXRlLT5lc19tb2RpZmllZF9yZWxpZHMpOworCiAJLyoKIAkgKiBSZXN1bHRSZWxJbmZvcyBu ZWVkZWQgYnkgc3VicGxhbnMgYXJlIGluaXRpYWxpemVkIGZyb20gc2NyYXRjaCB3aGVuIHRoZQog CSAqIHN1YnBsYW5zIHRoZW1zZWx2ZXMgYXJlIGluaXRpYWxpemVkLgpAQCAtMzE4MCw2ICszMTk0 LDEwIEBAIEV2YWxQbGFuUXVhbFN0YXJ0KEVQUVN0YXRlICplcHFzdGF0ZSwgUGxhbiAqcGxhblRy ZWUpCiAJICovCiAJZXBxc3RhdGUtPnJlY2hlY2twbGFuc3RhdGUgPSBFeGVjSW5pdE5vZGUocGxh blRyZWUsIHJjZXN0YXRlLCAwKTsKIAorI2lmZGVmIFVTRV9BU1NFUlRfQ0hFQ0tJTkcKKwlDcm9z c0NoZWNrTW9kaWZpZWRSZWxpZHMocmNlc3RhdGUpOworI2VuZGlmCisKIAlNZW1vcnlDb250ZXh0 U3dpdGNoVG8ob2xkY29udGV4dCk7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNVdGlscy5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1V0aWxzLmMKaW5kZXgg OTg4NmFiMDZiNjkuLjdkZmE5NWMyY2JlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRv ci9leGVjVXRpbHMuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjVXRpbHMuYwpAQCAt MTI1LDYgKzEyNSw4IEBAIENyZWF0ZUV4ZWN1dG9yU3RhdGUodm9pZCkKIAllc3RhdGUtPmVzX3Bh cnRfcHJ1bmVfcmVzdWx0cyA9IE5JTDsKIAllc3RhdGUtPmVzX3VucHJ1bmVkX3JlbGlkcyA9IE5V TEw7CiAKKwllc3RhdGUtPmVzX21vZGlmaWVkX3JlbGlkcyA9IE5VTEw7CisKIAllc3RhdGUtPmVz X2p1bmtGaWx0ZXIgPSBOVUxMOwogCiAJZXN0YXRlLT5lc19vdXRwdXRfY2lkID0gKENvbW1hbmRJ ZCkgMDsKQEAgLTg3Myw2ICs4NzUsMzMgQEAgRXhlY0dldFJhbmdlVGFibGVSZWxhdGlvbihFU3Rh dGUgKmVzdGF0ZSwgSW5kZXggcnRpLCBib29sIGlzUmVzdWx0UmVsKQogCXJldHVybiByZWw7CiB9 CiAKKyNpZmRlZiBVU0VfQVNTRVJUX0NIRUNLSU5HCisvKgorICogQXNzZXJ0IHRoYXQgZXNfbW9k aWZpZWRfcmVsaWRzIGluY2x1ZGVzIGFsbCBwb3RlbnRpYWxseSBtb2RpZmllZCBSVAorICogaW5k ZXhlcy4KKyAqLwordm9pZAorQ3Jvc3NDaGVja01vZGlmaWVkUmVsaWRzKEVTdGF0ZSAqZXN0YXRl KQoreworCUJpdG1hcHNldCAgKmV4cGVjdGVkID0gTlVMTDsKKwlMaXN0Q2VsbCAgICpsYzsKKwor CWZvcmVhY2gobGMsIGVzdGF0ZS0+ZXNfb3BlbmVkX3Jlc3VsdF9yZWxhdGlvbnMpCisJeworCQlS ZXN1bHRSZWxJbmZvICpycmkgPSBsZmlyc3Rfbm9kZShSZXN1bHRSZWxJbmZvLCBsYyk7CisKKwkJ ZXhwZWN0ZWQgPSBibXNfYWRkX21lbWJlcihleHBlY3RlZCwgcnJpLT5yaV9SYW5nZVRhYmxlSW5k ZXgpOworCX0KKwlpZiAoZXN0YXRlLT5lc19yb3dtYXJrcykKKwl7CisJCWZvciAoSW5kZXggcnRp ID0gMTsgcnRpIDw9IGVzdGF0ZS0+ZXNfcmFuZ2VfdGFibGVfc2l6ZTsgcnRpKyspCisJCQlpZiAo ZXN0YXRlLT5lc19yb3dtYXJrc1tydGkgLSAxXSAhPSBOVUxMKQorCQkJCWV4cGVjdGVkID0gYm1z X2FkZF9tZW1iZXIoZXhwZWN0ZWQsIHJ0aSk7CisJfQorCUFzc2VydChibXNfaXNfc3Vic2V0KGV4 cGVjdGVkLCBlc3RhdGUtPmVzX21vZGlmaWVkX3JlbGlkcykpOworfQorI2VuZGlmCisKIC8qCiAg KiBFeGVjSW5pdFJlc3VsdFJlbGF0aW9uCiAgKgkJT3BlbiByZWxhdGlvbiBnaXZlbiBieSB0aGUg cGFzc2VkLWluIFJUIGluZGV4IGFuZCBmaWxsIGl0cwpAQCAtODk4LDYgKzkyNyw4IEBAIEV4ZWNJ bml0UmVzdWx0UmVsYXRpb24oRVN0YXRlICplc3RhdGUsIFJlc3VsdFJlbEluZm8gKnJlc3VsdFJl bEluZm8sCiAJCWVzdGF0ZS0+ZXNfcmVzdWx0X3JlbGF0aW9ucyA9IChSZXN1bHRSZWxJbmZvICoq KQogCQkJcGFsbG9jMChlc3RhdGUtPmVzX3JhbmdlX3RhYmxlX3NpemUgKiBzaXplb2YoUmVzdWx0 UmVsSW5mbyAqKSk7CiAJZXN0YXRlLT5lc19yZXN1bHRfcmVsYXRpb25zW3J0aSAtIDFdID0gcmVz dWx0UmVsSW5mbzsKKwllc3RhdGUtPmVzX21vZGlmaWVkX3JlbGlkcyA9IGJtc19hZGRfbWVtYmVy KGVzdGF0ZS0+ZXNfbW9kaWZpZWRfcmVsaWRzLAorCQkJCQkJCQkJCQkJcnRpKTsKIAogCS8qCiAJ ICogU2F2aW5nIGluIHRoZSBsaXN0IGFsbG93cyB0byBhdm9pZCBuZWVkbGVzc2x5IHRyYXZlcnNp bmcgdGhlIHdob2xlCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5o IGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaAppbmRleCAwNjRkZjAxODExZS4uMDgw Y2ZkYWM0OGUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmgKKysr IGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaApAQCAtNzA3LDYgKzcwNyw5IEBAIGV4 dGVybiBSZWxhdGlvbiBFeGVjR2V0UmFuZ2VUYWJsZVJlbGF0aW9uKEVTdGF0ZSAqZXN0YXRlLCBJ bmRleCBydGksCiAJCQkJCQkJCQkJICBib29sIGlzUmVzdWx0UmVsKTsKIGV4dGVybiB2b2lkIEV4 ZWNJbml0UmVzdWx0UmVsYXRpb24oRVN0YXRlICplc3RhdGUsIFJlc3VsdFJlbEluZm8gKnJlc3Vs dFJlbEluZm8sCiAJCQkJCQkJCSAgIEluZGV4IHJ0aSk7CisjaWZkZWYgVVNFX0FTU0VSVF9DSEVD S0lORworZXh0ZXJuIHZvaWQgQ3Jvc3NDaGVja01vZGlmaWVkUmVsaWRzKEVTdGF0ZSAqZXN0YXRl KTsKKyNlbmRpZgogCiBleHRlcm4gaW50CWV4ZWN1dG9yX2VycnBvc2l0aW9uKEVTdGF0ZSAqZXN0 YXRlLCBpbnQgbG9jYXRpb24pOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVj bm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCmluZGV4IDA3MTZjNWE5YWVk Li5kMmY0ZjhlYTc0OCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgK KysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKQEAgLTY4OCw2ICs2ODgsMTIgQEAg dHlwZWRlZiBzdHJ1Y3QgRVN0YXRlCiAJCQkJCQkJCQkgKiBFeGVjRG9Jbml0aWFsUHJ1bmluZygp ICovCiAJY29uc3QgY2hhciAqZXNfc291cmNlVGV4dDsJLyogU291cmNlIHRleHQgZnJvbSBRdWVy eURlc2MgKi8KIAorCS8qCisJICogUlQgaW5kZXhlcyBvZiByZWxhdGlvbnMgbW9kaWZpZWQgYnkg dGhlIHF1ZXJ5IHRocm91Z2ggYQorCSAqIFVQREFURS9ERUxFVEUvSU5TRVJUL01FUkdFIG9yIHRh cmdldGVkIGJ5IGEgU0VMRUNUIEZPUiBVUERBVEUuCisJICovCisJQml0bWFwc2V0ICAqZXNfbW9k aWZpZWRfcmVsaWRzOworCiAJSnVua0ZpbHRlciAqZXNfanVua0ZpbHRlcjsJLyogdG9wLWxldmVs IGp1bmsgZmlsdGVyLCBpZiBhbnkgKi8KIAogCS8qIElmIHF1ZXJ5IGNhbiBpbnNlcnQvZGVsZXRl IHR1cGxlcywgdGhlIGNvbW1hbmQgSUQgdG8gbWFyayB0aGVtIHdpdGggKi8KLS0gCjIuNDMuMAoK --0000000000002365dc064d39709f Content-Type: text/x-patch; charset="US-ASCII"; name="v40-0009-Thread-flags-through-begin-scan-APIs.patch" Content-Disposition: attachment; filename="v40-0009-Thread-flags-through-begin-scan-APIs.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmupr3qp8 RnJvbSAwNWQ3MzZmYjViMDYwMGVmZmVkZTVlMDMwZDViOTI5Mjc0ZGFiZTJjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBNb24sIDIgTWFyIDIwMjYgMTY6MzE6MTcgLTA1MDAKU3ViamVjdDogW1BB VENIIHY0MCAwOS8xMl0gVGhyZWFkIGZsYWdzIHRocm91Z2ggYmVnaW4tc2NhbiBBUElzCgpBZGQg YSBmbGFncyBwYXJhbWV0ZXIgdG8gdGhlIGluZGV4X2ZldGNoX2JlZ2luKCkgdGFibGUgQU0gY2Fs bGJhY2sgYW5kCnRoZSBiZWdpbi1zY2FuIGhlbHBlcnMgc28gdGhlIGV4ZWN1dG9yIGNhbiBwYXNz IGNvbnRleHQgZm9yIGJ1aWxkaW5nCnNjYW4gZGVzY3JpcHRvcnMuIFRoaXMgaW50cm9kdWNlcyBh biBleHRlbnNpb24gcG9pbnQgZm9yIGZvbGxvdy11cCB3b3JrCnRvIG1hcmsgcmVsYXRpb25zIGFz IHJlYWQtb25seSBmb3IgdGhlIGN1cnJlbnQgcXVlcnksIHdpdGhvdXQgY2hhbmdpbmcKYmVoYXZp b3IgaW4gdGhpcyBwYXRjaC4KCkF1dGhvcjogTWVsYW5pZSBQbGFnZW1hbiA8bWVsYW5pZXBsYWdl bWFuQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENoYW8gTGkgPGxpLmV2YW4uY2hhb0BnbWFpbC5j b20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vRjVDREQxQjUtNjI4Qy00NEExLTlG ODUtMzk1OEM2MjZGNkE5JTQwZ21haWwuY29tCi0tLQogY29udHJpYi9wZ3Jvd2xvY2tzL3Bncm93 bG9ja3MuYyAgICAgICAgICAgfCAgMiArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5j ICAgICAgICAgICAgfCAgMyArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2dpbi9naW5pbnNlcnQuYyAg ICAgICAgfCAgMyArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIuYyAg fCAgNiArKy0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvZ2VuYW0uYyAgICAgICAgICB8ICA0 ICstLQogc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2luZGV4YW0uYyAgICAgICAgfCAgOCArKyst LS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0c29ydC5jICAgICAgIHwgIDIgKy0KIHNy Yy9iYWNrZW5kL2FjY2Vzcy90YWJsZS90YWJsZWFtLmMgICAgICAgIHwgMTMgKysrKystLS0tCiBz cmMvYmFja2VuZC9jb21tYW5kcy9jb25zdHJhaW50LmMgICAgICAgICB8ICAyICstCiBzcmMvYmFj a2VuZC9jb21tYW5kcy9jb3B5dG8uYyAgICAgICAgICAgICB8ICAyICstCiBzcmMvYmFja2VuZC9j b21tYW5kcy90YWJsZWNtZHMuYyAgICAgICAgICB8ICA4ICsrKy0tLQogc3JjL2JhY2tlbmQvY29t bWFuZHMvdHlwZWNtZHMuYyAgICAgICAgICAgfCAgNCArLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9y L2V4ZWNJbmRleGluZy5jICAgICAgIHwgIDIgKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNS ZXBsaWNhdGlvbi5jICAgIHwgIDggKysrLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlQml0 bWFwSGVhcHNjYW4uYyB8ICAyICstCiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhvbmx5 c2Nhbi5jICB8ICA2ICsrLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleHNjYW4uYyAg ICAgIHwgIDggKysrLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlU2FtcGxlc2Nhbi5jICAg ICB8ICAyICstCiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlU2Vxc2Nhbi5jICAgICAgICB8ICA2 ICsrLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVUaWRyYW5nZXNjYW4uYyAgIHwgIDYgKyst LQogc3JjL2JhY2tlbmQvcGFydGl0aW9uaW5nL3BhcnRib3VuZHMuYyAgICAgfCAgMiArLQogc3Jj L2JhY2tlbmQvdXRpbHMvYWR0L3NlbGZ1bmNzLmMgICAgICAgICAgfCAgMiArLQogc3JjL2luY2x1 ZGUvYWNjZXNzL2dlbmFtLmggICAgICAgICAgICAgICAgfCAgNSArKy0tCiBzcmMvaW5jbHVkZS9h Y2Nlc3MvaGVhcGFtLmggICAgICAgICAgICAgICB8ICA1ICsrLS0KIHNyYy9pbmNsdWRlL2FjY2Vz cy90YWJsZWFtLmggICAgICAgICAgICAgIHwgMzUgKysrKysrKysrKysrKystLS0tLS0tLS0KIDI1 IGZpbGVzIGNoYW5nZWQsIDgxIGluc2VydGlvbnMoKyksIDY1IGRlbGV0aW9ucygtKQoKZGlmZiAt LWdpdCBhL2NvbnRyaWIvcGdyb3dsb2Nrcy9wZ3Jvd2xvY2tzLmMgYi9jb250cmliL3Bncm93bG9j a3MvcGdyb3dsb2Nrcy5jCmluZGV4IGZmMzY5MmM4N2M0Li4wNTU2ZTlmN2I4OCAxMDA2NDQKLS0t IGEvY29udHJpYi9wZ3Jvd2xvY2tzL3Bncm93bG9ja3MuYworKysgYi9jb250cmliL3Bncm93bG9j a3MvcGdyb3dsb2Nrcy5jCkBAIC0xMTUsNyArMTE1LDcgQEAgcGdyb3dsb2NrcyhQR19GVU5DVElP Tl9BUkdTKQogCQkJCQkgICBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKTsKIAogCS8qIFNj YW4gdGhlIHJlbGF0aW9uICovCi0Jc2NhbiA9IHRhYmxlX2JlZ2luc2NhbihyZWwsIEdldEFjdGl2 ZVNuYXBzaG90KCksIDAsIE5VTEwpOworCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4ocmVsLCBHZXRB Y3RpdmVTbmFwc2hvdCgpLCAwLCBOVUxMLCAwKTsKIAloc2NhbiA9IChIZWFwU2NhbkRlc2MpIHNj YW47CiAKIAlhdHRpbm1ldGEgPSBUdXBsZURlc2NHZXRBdHRJbk1ldGFkYXRhKHJzaW5mby0+c2V0 RGVzYyk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluLmMgYi9zcmMv YmFja2VuZC9hY2Nlc3MvYnJpbi9icmluLmMKaW5kZXggMmEwZjhjOGUzYjguLmIyNWU4MTRhOTk2 IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluLmMKKysrIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jCkBAIC0yODQ0LDcgKzI4NDQsOCBAQCBfYnJpbl9wYXJh bGxlbF9zY2FuX2FuZF9idWlsZChCcmluQnVpbGRTdGF0ZSAqc3RhdGUsCiAJaW5kZXhJbmZvLT5p aV9Db25jdXJyZW50ID0gYnJpbnNoYXJlZC0+aXNjb25jdXJyZW50OwogCiAJc2NhbiA9IHRhYmxl X2JlZ2luc2Nhbl9wYXJhbGxlbChoZWFwLAotCQkJCQkJCQkJUGFyYWxsZWxUYWJsZVNjYW5Gcm9t QnJpblNoYXJlZChicmluc2hhcmVkKSk7CisJCQkJCQkJCQlQYXJhbGxlbFRhYmxlU2NhbkZyb21C cmluU2hhcmVkKGJyaW5zaGFyZWQpLAorCQkJCQkJCQkJMCk7CiAKIAlyZWx0dXBsZXMgPSB0YWJs ZV9pbmRleF9idWlsZF9zY2FuKGhlYXAsIGluZGV4LCBpbmRleEluZm8sIHRydWUsIHRydWUsCiAJ CQkJCQkJCQkgICBicmluYnVpbGRDYWxsYmFja1BhcmFsbGVsLCBzdGF0ZSwgc2Nhbik7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbmluc2VydC5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2dpbi9naW5pbnNlcnQuYwppbmRleCBlNTQ3ODJkOWRkOC4uNTU1YjE2NzcxZTkgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luaW5zZXJ0LmMKKysrIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2dpbi9naW5pbnNlcnQuYwpAQCAtMjA2OCw3ICsyMDY4LDggQEAgX2dpbl9w YXJhbGxlbF9zY2FuX2FuZF9idWlsZChHaW5CdWlsZFN0YXRlICpzdGF0ZSwKIAlpbmRleEluZm8t PmlpX0NvbmN1cnJlbnQgPSBnaW5zaGFyZWQtPmlzY29uY3VycmVudDsKIAogCXNjYW4gPSB0YWJs ZV9iZWdpbnNjYW5fcGFyYWxsZWwoaGVhcCwKLQkJCQkJCQkJCVBhcmFsbGVsVGFibGVTY2FuRnJv bUdpbkJ1aWxkU2hhcmVkKGdpbnNoYXJlZCkpOworCQkJCQkJCQkJUGFyYWxsZWxUYWJsZVNjYW5G cm9tR2luQnVpbGRTaGFyZWQoZ2luc2hhcmVkKSwKKwkJCQkJCQkJCTApOwogCiAJcmVsdHVwbGVz ID0gdGFibGVfaW5kZXhfYnVpbGRfc2NhbihoZWFwLCBpbmRleCwgaW5kZXhJbmZvLCB0cnVlLCBw cm9ncmVzcywKIAkJCQkJCQkJCSAgIGdpbkJ1aWxkQ2FsbGJhY2tQYXJhbGxlbCwgc3RhdGUsIHNj YW4pOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIu YyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMKaW5kZXggMjUzYTcz NWI2YzEuLjFlOTUwZDhlNmU1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9o ZWFwYW1faGFuZGxlci5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5k bGVyLmMKQEAgLTgwLDcgKzgwLDcgQEAgaGVhcGFtX3Nsb3RfY2FsbGJhY2tzKFJlbGF0aW9uIHJl bGF0aW9uKQogICovCiAKIHN0YXRpYyBJbmRleEZldGNoVGFibGVEYXRhICoKLWhlYXBhbV9pbmRl eF9mZXRjaF9iZWdpbihSZWxhdGlvbiByZWwpCitoZWFwYW1faW5kZXhfZmV0Y2hfYmVnaW4oUmVs YXRpb24gcmVsLCB1aW50MzIgZmxhZ3MpCiB7CiAJSW5kZXhGZXRjaEhlYXBEYXRhICpoc2NhbiA9 IHBhbGxvYzBfb2JqZWN0KEluZGV4RmV0Y2hIZWFwRGF0YSk7CiAKQEAgLTc2Miw3ICs3NjIsNyBA QCBoZWFwYW1fcmVsYXRpb25fY29weV9mb3JfY2x1c3RlcihSZWxhdGlvbiBPbGRIZWFwLCBSZWxh dGlvbiBOZXdIZWFwLAogCiAJCXRhYmxlU2NhbiA9IE5VTEw7CiAJCWhlYXBTY2FuID0gTlVMTDsK LQkJaW5kZXhTY2FuID0gaW5kZXhfYmVnaW5zY2FuKE9sZEhlYXAsIE9sZEluZGV4LCBTbmFwc2hv dEFueSwgTlVMTCwgMCwgMCk7CisJCWluZGV4U2NhbiA9IGluZGV4X2JlZ2luc2NhbihPbGRIZWFw LCBPbGRJbmRleCwgU25hcHNob3RBbnksIE5VTEwsIDAsIDAsIDApOwogCQlpbmRleF9yZXNjYW4o aW5kZXhTY2FuLCBOVUxMLCAwLCBOVUxMLCAwKTsKIAl9CiAJZWxzZQpAQCAtNzcxLDcgKzc3MSw3 IEBAIGhlYXBhbV9yZWxhdGlvbl9jb3B5X2Zvcl9jbHVzdGVyKFJlbGF0aW9uIE9sZEhlYXAsIFJl bGF0aW9uIE5ld0hlYXAsCiAJCXBnc3RhdF9wcm9ncmVzc191cGRhdGVfcGFyYW0oUFJPR1JFU1Nf UkVQQUNLX1BIQVNFLAogCQkJCQkJCQkJIFBST0dSRVNTX1JFUEFDS19QSEFTRV9TRVFfU0NBTl9I RUFQKTsKIAotCQl0YWJsZVNjYW4gPSB0YWJsZV9iZWdpbnNjYW4oT2xkSGVhcCwgU25hcHNob3RB bnksIDAsIChTY2FuS2V5KSBOVUxMKTsKKwkJdGFibGVTY2FuID0gdGFibGVfYmVnaW5zY2FuKE9s ZEhlYXAsIFNuYXBzaG90QW55LCAwLCAoU2NhbktleSkgTlVMTCwgMCk7CiAJCWhlYXBTY2FuID0g KEhlYXBTY2FuRGVzYykgdGFibGVTY2FuOwogCQlpbmRleFNjYW4gPSBOVUxMOwogCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvZ2VuYW0uYyBiL3NyYy9iYWNrZW5kL2FjY2Vz cy9pbmRleC9nZW5hbS5jCmluZGV4IDVlODliODZhNjJjLi4xZmU3ZmZiMjQ4NyAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2luZGV4L2dlbmFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2luZGV4L2dlbmFtLmMKQEAgLTQ1NSw3ICs0NTUsNyBAQCBzeXN0YWJsZV9iZWdpbnNjYW4o UmVsYXRpb24gaGVhcFJlbGF0aW9uLAogCQl9CiAKIAkJc3lzc2Nhbi0+aXNjYW4gPSBpbmRleF9i ZWdpbnNjYW4oaGVhcFJlbGF0aW9uLCBpcmVsLAotCQkJCQkJCQkJCSBzbmFwc2hvdCwgTlVMTCwg bmtleXMsIDApOworCQkJCQkJCQkJCSBzbmFwc2hvdCwgTlVMTCwgbmtleXMsIDAsIDApOwogCQlp bmRleF9yZXNjYW4oc3lzc2Nhbi0+aXNjYW4sIGlkeGtleSwgbmtleXMsIE5VTEwsIDApOwogCQlz eXNzY2FuLT5zY2FuID0gTlVMTDsKIApAQCAtNzE2LDcgKzcxNiw3IEBAIHN5c3RhYmxlX2JlZ2lu c2Nhbl9vcmRlcmVkKFJlbGF0aW9uIGhlYXBSZWxhdGlvbiwKIAkJYnN5c3NjYW4gPSB0cnVlOwog CiAJc3lzc2Nhbi0+aXNjYW4gPSBpbmRleF9iZWdpbnNjYW4oaGVhcFJlbGF0aW9uLCBpbmRleFJl bGF0aW9uLAotCQkJCQkJCQkJIHNuYXBzaG90LCBOVUxMLCBua2V5cywgMCk7CisJCQkJCQkJCQkg c25hcHNob3QsIE5VTEwsIG5rZXlzLCAwLCAwKTsKIAlpbmRleF9yZXNjYW4oc3lzc2Nhbi0+aXNj YW4sIGlkeGtleSwgbmtleXMsIE5VTEwsIDApOwogCXN5c3NjYW4tPnNjYW4gPSBOVUxMOwogCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaW5kZXgvaW5kZXhhbS5jIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2luZGV4L2luZGV4YW0uYwppbmRleCA1ZWI3ZTk5YWQzZS4uODcyMTk2MTNmMGIg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9pbmRleC9pbmRleGFtLmMKKysrIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL2luZGV4L2luZGV4YW0uYwpAQCAtMjU3LDcgKzI1Nyw3IEBAIGluZGV4 X2JlZ2luc2NhbihSZWxhdGlvbiBoZWFwUmVsYXRpb24sCiAJCQkJUmVsYXRpb24gaW5kZXhSZWxh dGlvbiwKIAkJCQlTbmFwc2hvdCBzbmFwc2hvdCwKIAkJCQlJbmRleFNjYW5JbnN0cnVtZW50YXRp b24gKmluc3RydW1lbnQsCi0JCQkJaW50IG5rZXlzLCBpbnQgbm9yZGVyYnlzKQorCQkJCWludCBu a2V5cywgaW50IG5vcmRlcmJ5cywgdWludDMyIGZsYWdzKQogewogCUluZGV4U2NhbkRlc2Mgc2Nh bjsKIApAQCAtMjg0LDcgKzI4NCw3IEBAIGluZGV4X2JlZ2luc2NhbihSZWxhdGlvbiBoZWFwUmVs YXRpb24sCiAJc2Nhbi0+aW5zdHJ1bWVudCA9IGluc3RydW1lbnQ7CiAKIAkvKiBwcmVwYXJlIHRv IGZldGNoIGluZGV4IG1hdGNoZXMgZnJvbSB0YWJsZSAqLwotCXNjYW4tPnhzX2hlYXBmZXRjaCA9 IHRhYmxlX2luZGV4X2ZldGNoX2JlZ2luKGhlYXBSZWxhdGlvbik7CisJc2Nhbi0+eHNfaGVhcGZl dGNoID0gdGFibGVfaW5kZXhfZmV0Y2hfYmVnaW4oaGVhcFJlbGF0aW9uLCBmbGFncyk7CiAKIAly ZXR1cm4gc2NhbjsKIH0KQEAgLTU5Myw3ICs1OTMsNyBAQCBJbmRleFNjYW5EZXNjCiBpbmRleF9i ZWdpbnNjYW5fcGFyYWxsZWwoUmVsYXRpb24gaGVhcHJlbCwgUmVsYXRpb24gaW5kZXhyZWwsCiAJ CQkJCQkgSW5kZXhTY2FuSW5zdHJ1bWVudGF0aW9uICppbnN0cnVtZW50LAogCQkJCQkJIGludCBu a2V5cywgaW50IG5vcmRlcmJ5cywKLQkJCQkJCSBQYXJhbGxlbEluZGV4U2NhbkRlc2MgcHNjYW4p CisJCQkJCQkgUGFyYWxsZWxJbmRleFNjYW5EZXNjIHBzY2FuLCB1aW50MzIgZmxhZ3MpCiB7CiAJ U25hcHNob3QJc25hcHNob3Q7CiAJSW5kZXhTY2FuRGVzYyBzY2FuOwpAQCAtNjE1LDcgKzYxNSw3 IEBAIGluZGV4X2JlZ2luc2Nhbl9wYXJhbGxlbChSZWxhdGlvbiBoZWFwcmVsLCBSZWxhdGlvbiBp bmRleHJlbCwKIAlzY2FuLT5pbnN0cnVtZW50ID0gaW5zdHJ1bWVudDsKIAogCS8qIHByZXBhcmUg dG8gZmV0Y2ggaW5kZXggbWF0Y2hlcyBmcm9tIHRhYmxlICovCi0Jc2Nhbi0+eHNfaGVhcGZldGNo ID0gdGFibGVfaW5kZXhfZmV0Y2hfYmVnaW4oaGVhcHJlbCk7CisJc2Nhbi0+eHNfaGVhcGZldGNo ID0gdGFibGVfaW5kZXhfZmV0Y2hfYmVnaW4oaGVhcHJlbCwgZmxhZ3MpOwogCiAJcmV0dXJuIHNj YW47CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHNvcnQuYyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0c29ydC5jCmluZGV4IDQ3YTliZGEzMGM5Li4w MTZhNWU1NDZkZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRzb3J0 LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRzb3J0LmMKQEAgLTE5MjgsNyAr MTkyOCw3IEBAIF9idF9wYXJhbGxlbF9zY2FuX2FuZF9zb3J0KEJUU3Bvb2wgKmJ0c3Bvb2wsIEJU U3Bvb2wgKmJ0c3Bvb2wyLAogCWluZGV4SW5mbyA9IEJ1aWxkSW5kZXhJbmZvKGJ0c3Bvb2wtPmlu ZGV4KTsKIAlpbmRleEluZm8tPmlpX0NvbmN1cnJlbnQgPSBidHNoYXJlZC0+aXNjb25jdXJyZW50 OwogCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWwoYnRzcG9vbC0+aGVhcCwKLQkJCQkJ CQkJCVBhcmFsbGVsVGFibGVTY2FuRnJvbUJUU2hhcmVkKGJ0c2hhcmVkKSk7CisJCQkJCQkJCQlQ YXJhbGxlbFRhYmxlU2NhbkZyb21CVFNoYXJlZChidHNoYXJlZCksIDApOwogCXJlbHR1cGxlcyA9 IHRhYmxlX2luZGV4X2J1aWxkX3NjYW4oYnRzcG9vbC0+aGVhcCwgYnRzcG9vbC0+aW5kZXgsIGlu ZGV4SW5mbywKIAkJCQkJCQkJCSAgIHRydWUsIHByb2dyZXNzLCBfYnRfYnVpbGRfY2FsbGJhY2ss CiAJCQkJCQkJCQkgICAmYnVpbGRzdGF0ZSwgc2Nhbik7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvdGFibGUvdGFibGVhbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RhYmxlL3RhYmxl YW0uYwppbmRleCBkZmRhMWFmNDEyZS4uZTk0NmNmYjM5M2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy90YWJsZS90YWJsZWFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RhYmxl L3RhYmxlYW0uYwpAQCAtMTYzLDEwICsxNjMsMTEgQEAgdGFibGVfcGFyYWxsZWxzY2FuX2luaXRp YWxpemUoUmVsYXRpb24gcmVsLCBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4sCiB9CiAKIFRh YmxlU2NhbkRlc2MKLXRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbChSZWxhdGlvbiByZWxhdGlvbiwg UGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBzY2FuKQordGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKFJl bGF0aW9uIHJlbGF0aW9uLCBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4sIHVpbnQzMiBmbGFn cykKIHsKIAlTbmFwc2hvdAlzbmFwc2hvdDsKLQl1aW50MzIJCWZsYWdzID0gU09fVFlQRV9TRVFT Q0FOIHwKKworCWZsYWdzIHw9IFNPX1RZUEVfU0VRU0NBTiB8CiAJCVNPX0FMTE9XX1NUUkFUIHwg U09fQUxMT1dfU1lOQyB8IFNPX0FMTE9XX1BBR0VNT0RFOwogCiAJQXNzZXJ0KFJlbEZpbGVMb2Nh dG9yRXF1YWxzKHJlbGF0aW9uLT5yZF9sb2NhdG9yLCBwc2Nhbi0+cGhzX2xvY2F0b3IpKTsKQEAg LTE5MCwxMiArMTkxLDE0IEBAIHRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbChSZWxhdGlvbiByZWxh dGlvbiwgUGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBzY2FuKQogCiBUYWJsZVNjYW5EZXNjCiB0YWJs ZV9iZWdpbnNjYW5fcGFyYWxsZWxfdGlkcmFuZ2UoUmVsYXRpb24gcmVsYXRpb24sCi0JCQkJCQkJ CSAgUGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBzY2FuKQorCQkJCQkJCQkgIFBhcmFsbGVsVGFibGVT Y2FuRGVzYyBwc2NhbiwKKwkJCQkJCQkJICB1aW50MzIgZmxhZ3MpCiB7CiAJU25hcHNob3QJc25h cHNob3Q7Ci0JdWludDMyCQlmbGFncyA9IFNPX1RZUEVfVElEUkFOR0VTQ0FOIHwgU09fQUxMT1df UEFHRU1PREU7CiAJVGFibGVTY2FuRGVzYyBzc2NhbjsKIAorCWZsYWdzIHw9IFNPX1RZUEVfVElE UkFOR0VTQ0FOIHwgU09fQUxMT1dfUEFHRU1PREU7CisKIAlBc3NlcnQoUmVsRmlsZUxvY2F0b3JF cXVhbHMocmVsYXRpb24tPnJkX2xvY2F0b3IsIHBzY2FuLT5waHNfbG9jYXRvcikpOwogCiAJLyog ZGlzYWJsZSBzeW5jc2NhbiBpbiBwYXJhbGxlbCB0aWQgcmFuZ2Ugc2Nhbi4gKi8KQEAgLTI0OCw3 ICsyNTEsNyBAQCB0YWJsZV9pbmRleF9mZXRjaF90dXBsZV9jaGVjayhSZWxhdGlvbiByZWwsCiAJ Ym9vbAkJZm91bmQ7CiAKIAlzbG90ID0gdGFibGVfc2xvdF9jcmVhdGUocmVsLCBOVUxMKTsKLQlz Y2FuID0gdGFibGVfaW5kZXhfZmV0Y2hfYmVnaW4ocmVsKTsKKwlzY2FuID0gdGFibGVfaW5kZXhf ZmV0Y2hfYmVnaW4ocmVsLCAwKTsKIAlmb3VuZCA9IHRhYmxlX2luZGV4X2ZldGNoX3R1cGxlKHNj YW4sIHRpZCwgc25hcHNob3QsIHNsb3QsICZjYWxsX2FnYWluLAogCQkJCQkJCQkJYWxsX2RlYWQp OwogCXRhYmxlX2luZGV4X2ZldGNoX2VuZChzY2FuKTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2NvbnN0cmFpbnQuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvbnN0cmFpbnQu YwppbmRleCBjYzExYzQ3YjZmMi4uMzdjZmJkNjM5MzggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL2NvbnN0cmFpbnQuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9jb25zdHJh aW50LmMKQEAgLTEwNiw3ICsxMDYsNyBAQCB1bmlxdWVfa2V5X3JlY2hlY2soUEdfRlVOQ1RJT05f QVJHUykKIAkgKi8KIAl0bXB0aWQgPSBjaGVja3RpZDsKIAl7Ci0JCUluZGV4RmV0Y2hUYWJsZURh dGEgKnNjYW4gPSB0YWJsZV9pbmRleF9mZXRjaF9iZWdpbih0cmlnZGF0YS0+dGdfcmVsYXRpb24p OworCQlJbmRleEZldGNoVGFibGVEYXRhICpzY2FuID0gdGFibGVfaW5kZXhfZmV0Y2hfYmVnaW4o dHJpZ2RhdGEtPnRnX3JlbGF0aW9uLCAwKTsKIAkJYm9vbAkJY2FsbF9hZ2FpbiA9IGZhbHNlOwog CiAJCWlmICghdGFibGVfaW5kZXhfZmV0Y2hfdHVwbGUoc2NhbiwgJnRtcHRpZCwgU25hcHNob3RT ZWxmLCBzbG90LApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvY29weXRvLmMgYi9z cmMvYmFja2VuZC9jb21tYW5kcy9jb3B5dG8uYwppbmRleCA0OTljZTlhZDNkYi4uZmI3OTFjNzk5 MGIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHl0by5jCisrKyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL2NvcHl0by5jCkBAIC0xMTYwLDcgKzExNjAsNyBAQCBDb3B5UmVsYXRp b25UbyhDb3B5VG9TdGF0ZSBjc3RhdGUsIFJlbGF0aW9uIHJlbCwgUmVsYXRpb24gcm9vdF9yZWws IHVpbnQ2NCAqcHJvYwogCUF0dHJNYXAgICAgKm1hcCA9IE5VTEw7CiAJVHVwbGVUYWJsZVNsb3Qg KnJvb3Rfc2xvdCA9IE5VTEw7CiAKLQlzY2FuZGVzYyA9IHRhYmxlX2JlZ2luc2NhbihyZWwsIEdl dEFjdGl2ZVNuYXBzaG90KCksIDAsIE5VTEwpOworCXNjYW5kZXNjID0gdGFibGVfYmVnaW5zY2Fu KHJlbCwgR2V0QWN0aXZlU25hcHNob3QoKSwgMCwgTlVMTCwgMCk7CiAJc2xvdCA9IHRhYmxlX3Ns b3RfY3JlYXRlKHJlbCwgTlVMTCk7CiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRl eCA2N2U0MmU1ZGYyOS4uY2MyZWM5MzkzYTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBA IC02NDExLDcgKzY0MTEsNyBAQCBBVFJld3JpdGVUYWJsZShBbHRlcmVkVGFibGVJbmZvICp0YWIs IE9pZCBPSUROZXdIZWFwKQogCQkgKiBjaGVja2luZyBhbGwgdGhlIGNvbnN0cmFpbnRzLgogCQkg Ki8KIAkJc25hcHNob3QgPSBSZWdpc3RlclNuYXBzaG90KEdldExhdGVzdFNuYXBzaG90KCkpOwot CQlzY2FuID0gdGFibGVfYmVnaW5zY2FuKG9sZHJlbCwgc25hcHNob3QsIDAsIE5VTEwpOworCQlz Y2FuID0gdGFibGVfYmVnaW5zY2FuKG9sZHJlbCwgc25hcHNob3QsIDAsIE5VTEwsIDApOwogCiAJ CS8qCiAJCSAqIFN3aXRjaCB0byBwZXItdHVwbGUgbWVtb3J5IGNvbnRleHQgYW5kIHJlc2V0IGl0 IGZvciBlYWNoIHR1cGxlCkBAIC0xMzk4MCw3ICsxMzk4MCw3IEBAIHZhbGlkYXRlRm9yZWlnbktl eUNvbnN0cmFpbnQoY2hhciAqY29ubmFtZSwKIAkgKi8KIAlzbmFwc2hvdCA9IFJlZ2lzdGVyU25h cHNob3QoR2V0TGF0ZXN0U25hcHNob3QoKSk7CiAJc2xvdCA9IHRhYmxlX3Nsb3RfY3JlYXRlKHJl bCwgTlVMTCk7Ci0Jc2NhbiA9IHRhYmxlX2JlZ2luc2NhbihyZWwsIHNuYXBzaG90LCAwLCBOVUxM KTsKKwlzY2FuID0gdGFibGVfYmVnaW5zY2FuKHJlbCwgc25hcHNob3QsIDAsIE5VTEwsIDApOwog CiAJcGVyVHVwQ3h0ID0gQWxsb2NTZXRDb250ZXh0Q3JlYXRlKEN1cnJlbnRNZW1vcnlDb250ZXh0 LAogCQkJCQkJCQkJICAidmFsaWRhdGVGb3JlaWduS2V5Q29uc3RyYWludCIsCkBAIC0yMjg4MSw3 ICsyMjg4MSw3IEBAIE1lcmdlUGFydGl0aW9uc01vdmVSb3dzKExpc3QgKip3cXVldWUsIExpc3Qg Km1lcmdpbmdQYXJ0aXRpb25zLCBSZWxhdGlvbiBuZXdQYXJ0CiAKIAkJLyogU2NhbiB0aHJvdWdo IHRoZSByb3dzLiAqLwogCQlzbmFwc2hvdCA9IFJlZ2lzdGVyU25hcHNob3QoR2V0TGF0ZXN0U25h cHNob3QoKSk7Ci0JCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4obWVyZ2luZ1BhcnRpdGlvbiwgc25h cHNob3QsIDAsIE5VTEwpOworCQlzY2FuID0gdGFibGVfYmVnaW5zY2FuKG1lcmdpbmdQYXJ0aXRp b24sIHNuYXBzaG90LCAwLCBOVUxMLCAwKTsKIAogCQkvKgogCQkgKiBTd2l0Y2ggdG8gcGVyLXR1 cGxlIG1lbW9yeSBjb250ZXh0IGFuZCByZXNldCBpdCBmb3IgZWFjaCB0dXBsZQpAQCAtMjMzNDUs NyArMjMzNDUsNyBAQCBTcGxpdFBhcnRpdGlvbk1vdmVSb3dzKExpc3QgKip3cXVldWUsIFJlbGF0 aW9uIHJlbCwgUmVsYXRpb24gc3BsaXRSZWwsCiAKIAkvKiBTY2FuIHRocm91Z2ggdGhlIHJvd3Mu ICovCiAJc25hcHNob3QgPSBSZWdpc3RlclNuYXBzaG90KEdldExhdGVzdFNuYXBzaG90KCkpOwot CXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4oc3BsaXRSZWwsIHNuYXBzaG90LCAwLCBOVUxMKTsKKwlz Y2FuID0gdGFibGVfYmVnaW5zY2FuKHNwbGl0UmVsLCBzbmFwc2hvdCwgMCwgTlVMTCwgMCk7CiAK IAkvKgogCSAqIFN3aXRjaCB0byBwZXItdHVwbGUgbWVtb3J5IGNvbnRleHQgYW5kIHJlc2V0IGl0 IGZvciBlYWNoIHR1cGxlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21k cy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlwZWNtZHMuYwppbmRleCAzZGFiNmJiNWE3OS4u NTMxNmNlYTdjZWMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3R5cGVjbWRzLmMK KysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlwZWNtZHMuYwpAQCAtMzE4NSw3ICszMTg1LDcg QEAgdmFsaWRhdGVEb21haW5Ob3ROdWxsQ29uc3RyYWludChPaWQgZG9tYWlub2lkKQogCiAJCS8q IFNjYW4gYWxsIHR1cGxlcyBpbiB0aGlzIHJlbGF0aW9uICovCiAJCXNuYXBzaG90ID0gUmVnaXN0 ZXJTbmFwc2hvdChHZXRMYXRlc3RTbmFwc2hvdCgpKTsKLQkJc2NhbiA9IHRhYmxlX2JlZ2luc2Nh bih0ZXN0cmVsLCBzbmFwc2hvdCwgMCwgTlVMTCk7CisJCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4o dGVzdHJlbCwgc25hcHNob3QsIDAsIE5VTEwsIDApOwogCQlzbG90ID0gdGFibGVfc2xvdF9jcmVh dGUodGVzdHJlbCwgTlVMTCk7CiAJCXdoaWxlICh0YWJsZV9zY2FuX2dldG5leHRzbG90KHNjYW4s IEZvcndhcmRTY2FuRGlyZWN0aW9uLCBzbG90KSkKIAkJewpAQCAtMzI2Niw3ICszMjY2LDcgQEAg dmFsaWRhdGVEb21haW5DaGVja0NvbnN0cmFpbnQoT2lkIGRvbWFpbm9pZCwgY29uc3QgY2hhciAq Y2NiaW4sIExPQ0tNT0RFIGxvY2ttb2QKIAogCQkvKiBTY2FuIGFsbCB0dXBsZXMgaW4gdGhpcyBy ZWxhdGlvbiAqLwogCQlzbmFwc2hvdCA9IFJlZ2lzdGVyU25hcHNob3QoR2V0TGF0ZXN0U25hcHNo b3QoKSk7Ci0JCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4odGVzdHJlbCwgc25hcHNob3QsIDAsIE5V TEwpOworCQlzY2FuID0gdGFibGVfYmVnaW5zY2FuKHRlc3RyZWwsIHNuYXBzaG90LCAwLCBOVUxM LCAwKTsKIAkJc2xvdCA9IHRhYmxlX3Nsb3RfY3JlYXRlKHRlc3RyZWwsIE5VTEwpOwogCQl3aGls ZSAodGFibGVfc2Nhbl9nZXRuZXh0c2xvdChzY2FuLCBGb3J3YXJkU2NhbkRpcmVjdGlvbiwgc2xv dCkpCiAJCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNJbmRleGluZy5j IGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0luZGV4aW5nLmMKaW5kZXggOWQwNzFlNDk1YzYu LmNiM2U0ZjY3ZWExIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjSW5kZXhp bmcuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjSW5kZXhpbmcuYwpAQCAtODE1LDcg KzgxNSw3IEBAIGNoZWNrX2V4Y2x1c2lvbl9vcl91bmlxdWVfY29uc3RyYWludChSZWxhdGlvbiBo ZWFwLCBSZWxhdGlvbiBpbmRleCwKIHJldHJ5OgogCWNvbmZsaWN0ID0gZmFsc2U7CiAJZm91bmRf c2VsZiA9IGZhbHNlOwotCWluZGV4X3NjYW4gPSBpbmRleF9iZWdpbnNjYW4oaGVhcCwgaW5kZXgs ICZEaXJ0eVNuYXBzaG90LCBOVUxMLCBpbmRua2V5YXR0cywgMCk7CisJaW5kZXhfc2NhbiA9IGlu ZGV4X2JlZ2luc2NhbihoZWFwLCBpbmRleCwgJkRpcnR5U25hcHNob3QsIE5VTEwsIGluZG5rZXlh dHRzLCAwLCAwKTsKIAlpbmRleF9yZXNjYW4oaW5kZXhfc2Nhbiwgc2NhbmtleXMsIGluZG5rZXlh dHRzLCBOVUxMLCAwKTsKIAogCXdoaWxlIChpbmRleF9nZXRuZXh0X3Nsb3QoaW5kZXhfc2Nhbiwg Rm9yd2FyZFNjYW5EaXJlY3Rpb24sIGV4aXN0aW5nX3Nsb3QpKQpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvZXhlY3V0b3IvZXhlY1JlcGxpY2F0aW9uLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9l eGVjUmVwbGljYXRpb24uYwppbmRleCAyNDk3ZWU3ZWRjNS4uNWI4Y2ExYWJmNjIgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNSZXBsaWNhdGlvbi5jCisrKyBiL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNSZXBsaWNhdGlvbi5jCkBAIC0yMDUsNyArMjA1LDcgQEAgUmVsYXRp b25GaW5kUmVwbFR1cGxlQnlJbmRleChSZWxhdGlvbiByZWwsIE9pZCBpZHhvaWQsCiAJc2tleV9h dHRvZmYgPSBidWlsZF9yZXBsaW5kZXhfc2Nhbl9rZXkoc2tleSwgcmVsLCBpZHhyZWwsIHNlYXJj aHNsb3QpOwogCiAJLyogU3RhcnQgYW4gaW5kZXggc2Nhbi4gKi8KLQlzY2FuID0gaW5kZXhfYmVn aW5zY2FuKHJlbCwgaWR4cmVsLCAmc25hcCwgTlVMTCwgc2tleV9hdHRvZmYsIDApOworCXNjYW4g PSBpbmRleF9iZWdpbnNjYW4ocmVsLCBpZHhyZWwsICZzbmFwLCBOVUxMLCBza2V5X2F0dG9mZiwg MCwgMCk7CiAKIHJldHJ5OgogCWZvdW5kID0gZmFsc2U7CkBAIC0zODMsNyArMzgzLDcgQEAgUmVs YXRpb25GaW5kUmVwbFR1cGxlU2VxKFJlbGF0aW9uIHJlbCwgTG9ja1R1cGxlTW9kZSBsb2NrbW9k ZSwKIAogCS8qIFN0YXJ0IGEgaGVhcCBzY2FuLiAqLwogCUluaXREaXJ0eVNuYXBzaG90KHNuYXAp OwotCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4ocmVsLCAmc25hcCwgMCwgTlVMTCk7CisJc2NhbiA9 IHRhYmxlX2JlZ2luc2NhbihyZWwsICZzbmFwLCAwLCBOVUxMLCAwKTsKIAlzY2Fuc2xvdCA9IHRh YmxlX3Nsb3RfY3JlYXRlKHJlbCwgTlVMTCk7CiAKIHJldHJ5OgpAQCAtNjAyLDcgKzYwMiw3IEBA IFJlbGF0aW9uRmluZERlbGV0ZWRUdXBsZUluZm9TZXEoUmVsYXRpb24gcmVsLCBUdXBsZVRhYmxl U2xvdCAqc2VhcmNoc2xvdCwKIAkgKiBub3QgeWV0IGNvbW1pdHRlZCBvciB0aG9zZSBqdXN0IGNv bW1pdHRlZCBwcmlvciB0byB0aGUgc2NhbiBhcmUKIAkgKiBleGNsdWRlZCBpbiB1cGRhdGVfbW9z dF9yZWNlbnRfZGVsZXRpb25faW5mbygpLgogCSAqLwotCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4o cmVsLCBTbmFwc2hvdEFueSwgMCwgTlVMTCk7CisJc2NhbiA9IHRhYmxlX2JlZ2luc2NhbihyZWws IFNuYXBzaG90QW55LCAwLCBOVUxMLCAwKTsKIAlzY2Fuc2xvdCA9IHRhYmxlX3Nsb3RfY3JlYXRl KHJlbCwgTlVMTCk7CiAKIAl0YWJsZV9yZXNjYW4oc2NhbiwgTlVMTCk7CkBAIC02NjYsNyArNjY2 LDcgQEAgUmVsYXRpb25GaW5kRGVsZXRlZFR1cGxlSW5mb0J5SW5kZXgoUmVsYXRpb24gcmVsLCBP aWQgaWR4b2lkLAogCSAqIG5vdCB5ZXQgY29tbWl0dGVkIG9yIHRob3NlIGp1c3QgY29tbWl0dGVk IHByaW9yIHRvIHRoZSBzY2FuIGFyZQogCSAqIGV4Y2x1ZGVkIGluIHVwZGF0ZV9tb3N0X3JlY2Vu dF9kZWxldGlvbl9pbmZvKCkuCiAJICovCi0Jc2NhbiA9IGluZGV4X2JlZ2luc2NhbihyZWwsIGlk eHJlbCwgU25hcHNob3RBbnksIE5VTEwsIHNrZXlfYXR0b2ZmLCAwKTsKKwlzY2FuID0gaW5kZXhf YmVnaW5zY2FuKHJlbCwgaWR4cmVsLCBTbmFwc2hvdEFueSwgTlVMTCwgc2tleV9hdHRvZmYsIDAs IDApOwogCiAJaW5kZXhfcmVzY2FuKHNjYW4sIHNrZXksIHNrZXlfYXR0b2ZmLCBOVUxMLCAwKTsK IApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUJpdG1hcEhlYXBzY2FuLmMg Yi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlQml0bWFwSGVhcHNjYW4uYwppbmRleCA3Y2Y4ZDIz Yzc0Mi4uMzI0ZTJiZWQyMmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVC aXRtYXBIZWFwc2Nhbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVCaXRtYXBIZWFw c2Nhbi5jCkBAIC0xNDgsNyArMTQ4LDcgQEAgQml0bWFwVGFibGVTY2FuU2V0dXAoQml0bWFwSGVh cFNjYW5TdGF0ZSAqbm9kZSkKIAkJCXRhYmxlX2JlZ2luc2Nhbl9ibShub2RlLT5zcy5zc19jdXJy ZW50UmVsYXRpb24sCiAJCQkJCQkJICAgbm9kZS0+c3MucHMuc3RhdGUtPmVzX3NuYXBzaG90LAog CQkJCQkJCSAgIDAsCi0JCQkJCQkJICAgTlVMTCk7CisJCQkJCQkJICAgTlVMTCwgMCk7CiAJfQog CiAJbm9kZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjLT5zdC5yc190Ym1pdGVyYXRvciA9IHRibWl0 ZXJhdG9yOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4b25seXNj YW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleG9ubHlzY2FuLmMKaW5kZXggYzhk YjM1N2U2OWYuLjE3YmY0OTc2Y2NlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9u b2RlSW5kZXhvbmx5c2Nhbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleG9u bHlzY2FuLmMKQEAgLTk1LDcgKzk1LDcgQEAgSW5kZXhPbmx5TmV4dChJbmRleE9ubHlTY2FuU3Rh dGUgKm5vZGUpCiAJCQkJCQkJCSAgIGVzdGF0ZS0+ZXNfc25hcHNob3QsCiAJCQkJCQkJCSAgICZu b2RlLT5pb3NzX0luc3RydW1lbnQsCiAJCQkJCQkJCSAgIG5vZGUtPmlvc3NfTnVtU2NhbktleXMs Ci0JCQkJCQkJCSAgIG5vZGUtPmlvc3NfTnVtT3JkZXJCeUtleXMpOworCQkJCQkJCQkgICBub2Rl LT5pb3NzX051bU9yZGVyQnlLZXlzLCAwKTsKIAogCQlub2RlLT5pb3NzX1NjYW5EZXNjID0gc2Nh bmRlc2M7CiAKQEAgLTc5MCw3ICs3OTAsNyBAQCBFeGVjSW5kZXhPbmx5U2NhbkluaXRpYWxpemVE U00oSW5kZXhPbmx5U2NhblN0YXRlICpub2RlLAogCQkJCQkJCQkgJm5vZGUtPmlvc3NfSW5zdHJ1 bWVudCwKIAkJCQkJCQkJIG5vZGUtPmlvc3NfTnVtU2NhbktleXMsCiAJCQkJCQkJCSBub2RlLT5p b3NzX051bU9yZGVyQnlLZXlzLAotCQkJCQkJCQkgcGlzY2FuKTsKKwkJCQkJCQkJIHBpc2Nhbiwg MCk7CiAJbm9kZS0+aW9zc19TY2FuRGVzYy0+eHNfd2FudF9pdHVwID0gdHJ1ZTsKIAlub2RlLT5p b3NzX1ZNQnVmZmVyID0gSW52YWxpZEJ1ZmZlcjsKIApAQCAtODU2LDcgKzg1Niw3IEBAIEV4ZWNJ bmRleE9ubHlTY2FuSW5pdGlhbGl6ZVdvcmtlcihJbmRleE9ubHlTY2FuU3RhdGUgKm5vZGUsCiAJ CQkJCQkJCSAmbm9kZS0+aW9zc19JbnN0cnVtZW50LAogCQkJCQkJCQkgbm9kZS0+aW9zc19OdW1T Y2FuS2V5cywKIAkJCQkJCQkJIG5vZGUtPmlvc3NfTnVtT3JkZXJCeUtleXMsCi0JCQkJCQkJCSBw aXNjYW4pOworCQkJCQkJCQkgcGlzY2FuLCAwKTsKIAlub2RlLT5pb3NzX1NjYW5EZXNjLT54c193 YW50X2l0dXAgPSB0cnVlOwogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L25vZGVJbmRleHNjYW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleHNjYW4uYwpp bmRleCBiZDgzZTQ3MTJiMy4uODhiZGYwYTUyZDEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL25vZGVJbmRleHNjYW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5k ZXhzY2FuLmMKQEAgLTExMyw3ICsxMTMsNyBAQCBJbmRleE5leHQoSW5kZXhTY2FuU3RhdGUgKm5v ZGUpCiAJCQkJCQkJCSAgIGVzdGF0ZS0+ZXNfc25hcHNob3QsCiAJCQkJCQkJCSAgICZub2RlLT5p c3NfSW5zdHJ1bWVudCwKIAkJCQkJCQkJICAgbm9kZS0+aXNzX051bVNjYW5LZXlzLAotCQkJCQkJ CQkgICBub2RlLT5pc3NfTnVtT3JkZXJCeUtleXMpOworCQkJCQkJCQkgICBub2RlLT5pc3NfTnVt T3JkZXJCeUtleXMsIDApOwogCiAJCW5vZGUtPmlzc19TY2FuRGVzYyA9IHNjYW5kZXNjOwogCkBA IC0yMDksNyArMjA5LDcgQEAgSW5kZXhOZXh0V2l0aFJlb3JkZXIoSW5kZXhTY2FuU3RhdGUgKm5v ZGUpCiAJCQkJCQkJCSAgIGVzdGF0ZS0+ZXNfc25hcHNob3QsCiAJCQkJCQkJCSAgICZub2RlLT5p c3NfSW5zdHJ1bWVudCwKIAkJCQkJCQkJICAgbm9kZS0+aXNzX051bVNjYW5LZXlzLAotCQkJCQkJ CQkgICBub2RlLT5pc3NfTnVtT3JkZXJCeUtleXMpOworCQkJCQkJCQkgICBub2RlLT5pc3NfTnVt T3JkZXJCeUtleXMsIDApOwogCiAJCW5vZGUtPmlzc19TY2FuRGVzYyA9IHNjYW5kZXNjOwogCkBA IC0xNzI2LDcgKzE3MjYsNyBAQCBFeGVjSW5kZXhTY2FuSW5pdGlhbGl6ZURTTShJbmRleFNjYW5T dGF0ZSAqbm9kZSwKIAkJCQkJCQkJICZub2RlLT5pc3NfSW5zdHJ1bWVudCwKIAkJCQkJCQkJIG5v ZGUtPmlzc19OdW1TY2FuS2V5cywKIAkJCQkJCQkJIG5vZGUtPmlzc19OdW1PcmRlckJ5S2V5cywK LQkJCQkJCQkJIHBpc2Nhbik7CisJCQkJCQkJCSBwaXNjYW4sIDApOwogCiAJLyoKIAkgKiBJZiBu byBydW4tdGltZSBrZXlzIHRvIGNhbGN1bGF0ZSBvciB0aGV5IGFyZSByZWFkeSwgZ28gYWhlYWQg YW5kIHBhc3MKQEAgLTE3OTAsNyArMTc5MCw3IEBAIEV4ZWNJbmRleFNjYW5Jbml0aWFsaXplV29y a2VyKEluZGV4U2NhblN0YXRlICpub2RlLAogCQkJCQkJCQkgJm5vZGUtPmlzc19JbnN0cnVtZW50 LAogCQkJCQkJCQkgbm9kZS0+aXNzX051bVNjYW5LZXlzLAogCQkJCQkJCQkgbm9kZS0+aXNzX051 bU9yZGVyQnlLZXlzLAotCQkJCQkJCQkgcGlzY2FuKTsKKwkJCQkJCQkJIHBpc2NhbiwgMCk7CiAK IAkvKgogCSAqIElmIG5vIHJ1bi10aW1lIGtleXMgdG8gY2FsY3VsYXRlIG9yIHRoZXkgYXJlIHJl YWR5LCBnbyBhaGVhZCBhbmQgcGFzcwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv bm9kZVNhbXBsZXNjYW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTYW1wbGVzY2FuLmMK aW5kZXggNmIwZDY1Zjc1MmYuLmNjNmIyM2FiZWUwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9l eGVjdXRvci9ub2RlU2FtcGxlc2Nhbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVT YW1wbGVzY2FuLmMKQEAgLTI5OCw3ICsyOTgsNyBAQCB0YWJsZXNhbXBsZV9pbml0KFNhbXBsZVNj YW5TdGF0ZSAqc2NhbnN0YXRlKQogCQkJCQkJCQkJIDAsIE5VTEwsCiAJCQkJCQkJCQkgc2NhbnN0 YXRlLT51c2VfYnVsa3JlYWQsCiAJCQkJCQkJCQkgYWxsb3dfc3luYywKLQkJCQkJCQkJCSBzY2Fu c3RhdGUtPnVzZV9wYWdlbW9kZSk7CisJCQkJCQkJCQkgc2NhbnN0YXRlLT51c2VfcGFnZW1vZGUs IDApOwogCX0KIAllbHNlCiAJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9k ZVNlcXNjYW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTZXFzY2FuLmMKaW5kZXggOGYy MTlmNjBhOTMuLmMyZDliNzI5M2RlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9u b2RlU2Vxc2Nhbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTZXFzY2FuLmMKQEAg LTcxLDcgKzcxLDcgQEAgU2VxTmV4dChTZXFTY2FuU3RhdGUgKm5vZGUpCiAJCSAqLwogCQlzY2Fu ZGVzYyA9IHRhYmxlX2JlZ2luc2Nhbihub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sCiAJCQkJ CQkJCSAgIGVzdGF0ZS0+ZXNfc25hcHNob3QsCi0JCQkJCQkJCSAgIDAsIE5VTEwpOworCQkJCQkJ CQkgICAwLCBOVUxMLCAwKTsKIAkJbm9kZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjID0gc2NhbmRl c2M7CiAJfQogCkBAIC0zNzUsNyArMzc1LDcgQEAgRXhlY1NlcVNjYW5Jbml0aWFsaXplRFNNKFNl cVNjYW5TdGF0ZSAqbm9kZSwKIAkJCQkJCQkJICBlc3RhdGUtPmVzX3NuYXBzaG90KTsKIAlzaG1f dG9jX2luc2VydChwY3h0LT50b2MsIG5vZGUtPnNzLnBzLnBsYW4tPnBsYW5fbm9kZV9pZCwgcHNj YW4pOwogCW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9Ci0JCXRhYmxlX2JlZ2luc2Nhbl9w YXJhbGxlbChub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sIHBzY2FuKTsKKwkJdGFibGVfYmVn aW5zY2FuX3BhcmFsbGVsKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwgcHNjYW4sIDApOwog fQogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCkBAIC00MDgsNSArNDA4LDUgQEAgRXhlY1NlcVNjYW5Jbml0aWFsaXpl V29ya2VyKFNlcVNjYW5TdGF0ZSAqbm9kZSwKIAogCXBzY2FuID0gc2htX3RvY19sb29rdXAocHdj eHQtPnRvYywgbm9kZS0+c3MucHMucGxhbi0+cGxhbl9ub2RlX2lkLCBmYWxzZSk7CiAJbm9kZS0+ c3Muc3NfY3VycmVudFNjYW5EZXNjID0KLQkJdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKG5vZGUt PnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwgcHNjYW4pOworCQl0YWJsZV9iZWdpbnNjYW5fcGFyYWxs ZWwobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLCBwc2NhbiwgMCk7CiB9CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlVGlkcmFuZ2VzY2FuLmMgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9ub2RlVGlkcmFuZ2VzY2FuLmMKaW5kZXggNjE3NzEzYmRlMDQuLjk5NGY3MDk4OWJj IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlVGlkcmFuZ2VzY2FuLmMKKysr IGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVRpZHJhbmdlc2Nhbi5jCkBAIC0yNDUsNyArMjQ1 LDcgQEAgVGlkUmFuZ2VOZXh0KFRpZFJhbmdlU2NhblN0YXRlICpub2RlKQogCQkJc2NhbmRlc2Mg PSB0YWJsZV9iZWdpbnNjYW5fdGlkcmFuZ2Uobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAog CQkJCQkJCQkJCQkJZXN0YXRlLT5lc19zbmFwc2hvdCwKIAkJCQkJCQkJCQkJCSZub2RlLT50cnNz X21pbnRpZCwKLQkJCQkJCQkJCQkJCSZub2RlLT50cnNzX21heHRpZCk7CisJCQkJCQkJCQkJCQkm bm9kZS0+dHJzc19tYXh0aWQsIDApOwogCQkJbm9kZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjID0g c2NhbmRlc2M7CiAJCX0KIAkJZWxzZQpAQCAtNDYwLDcgKzQ2MCw3IEBAIEV4ZWNUaWRSYW5nZVNj YW5Jbml0aWFsaXplRFNNKFRpZFJhbmdlU2NhblN0YXRlICpub2RlLCBQYXJhbGxlbENvbnRleHQg KnBjeHQpCiAJc2htX3RvY19pbnNlcnQocGN4dC0+dG9jLCBub2RlLT5zcy5wcy5wbGFuLT5wbGFu X25vZGVfaWQsIHBzY2FuKTsKIAlub2RlLT5zcy5zc19jdXJyZW50U2NhbkRlc2MgPQogCQl0YWJs ZV9iZWdpbnNjYW5fcGFyYWxsZWxfdGlkcmFuZ2Uobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9u LAotCQkJCQkJCQkJCSAgcHNjYW4pOworCQkJCQkJCQkJCSAgcHNjYW4sIDApOwogfQogCiAvKiAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCkBAIC00OTQsNSArNDk0LDUgQEAgRXhlY1RpZFJhbmdlU2NhbkluaXRpYWxpemVXb3Jr ZXIoVGlkUmFuZ2VTY2FuU3RhdGUgKm5vZGUsCiAJcHNjYW4gPSBzaG1fdG9jX2xvb2t1cChwd2N4 dC0+dG9jLCBub2RlLT5zcy5wcy5wbGFuLT5wbGFuX25vZGVfaWQsIGZhbHNlKTsKIAlub2RlLT5z cy5zc19jdXJyZW50U2NhbkRlc2MgPQogCQl0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWxfdGlkcmFu Z2Uobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAotCQkJCQkJCQkJCSAgcHNjYW4pOworCQkJ CQkJCQkJCSAgcHNjYW4sIDApOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFydGl0aW9u aW5nL3BhcnRib3VuZHMuYyBiL3NyYy9iYWNrZW5kL3BhcnRpdGlvbmluZy9wYXJ0Ym91bmRzLmMK aW5kZXggMGNhMzEyYWMyN2QuLmI3YzRlNmQxMDcxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9w YXJ0aXRpb25pbmcvcGFydGJvdW5kcy5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnRpdGlvbmluZy9w YXJ0Ym91bmRzLmMKQEAgLTMzNjIsNyArMzM2Miw3IEBAIGNoZWNrX2RlZmF1bHRfcGFydGl0aW9u X2NvbnRlbnRzKFJlbGF0aW9uIHBhcmVudCwgUmVsYXRpb24gZGVmYXVsdF9yZWwsCiAJCWVjb250 ZXh0ID0gR2V0UGVyVHVwbGVFeHByQ29udGV4dChlc3RhdGUpOwogCQlzbmFwc2hvdCA9IFJlZ2lz dGVyU25hcHNob3QoR2V0TGF0ZXN0U25hcHNob3QoKSk7CiAJCXR1cHNsb3QgPSB0YWJsZV9zbG90 X2NyZWF0ZShwYXJ0X3JlbCwgJmVzdGF0ZS0+ZXNfdHVwbGVUYWJsZSk7Ci0JCXNjYW4gPSB0YWJs ZV9iZWdpbnNjYW4ocGFydF9yZWwsIHNuYXBzaG90LCAwLCBOVUxMKTsKKwkJc2NhbiA9IHRhYmxl X2JlZ2luc2NhbihwYXJ0X3JlbCwgc25hcHNob3QsIDAsIE5VTEwsIDApOwogCiAJCS8qCiAJCSAq IFN3aXRjaCB0byBwZXItdHVwbGUgbWVtb3J5IGNvbnRleHQgYW5kIHJlc2V0IGl0IGZvciBlYWNo IHR1cGxlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvc2VsZnVuY3MuYyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL2FkdC9zZWxmdW5jcy5jCmluZGV4IGQ0ZGEwZThkZWE5Li41YjIxNjVj MjY3ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3NlbGZ1bmNzLmMKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvYWR0L3NlbGZ1bmNzLmMKQEAgLTcxNjEsNyArNzE2MSw3IEBAIGdl dF9hY3R1YWxfdmFyaWFibGVfZW5kcG9pbnQoUmVsYXRpb24gaGVhcFJlbCwKIAogCWluZGV4X3Nj YW4gPSBpbmRleF9iZWdpbnNjYW4oaGVhcFJlbCwgaW5kZXhSZWwsCiAJCQkJCQkJCSAmU25hcHNo b3ROb25WYWN1dW1hYmxlLCBOVUxMLAotCQkJCQkJCQkgMSwgMCk7CisJCQkJCQkJCSAxLCAwLCAw KTsKIAkvKiBTZXQgaXQgdXAgZm9yIGluZGV4LW9ubHkgc2NhbiAqLwogCWluZGV4X3NjYW4tPnhz X3dhbnRfaXR1cCA9IHRydWU7CiAJaW5kZXhfcmVzY2FuKGluZGV4X3NjYW4sIHNjYW5rZXlzLCAx LCBOVUxMLCAwKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9nZW5hbS5oIGIvc3Jj L2luY2x1ZGUvYWNjZXNzL2dlbmFtLmgKaW5kZXggMWEyN2JmMDYwYjMuLmRiMTAyODAzZWI1IDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2VuYW0uaAorKysgYi9zcmMvaW5jbHVkZS9h Y2Nlc3MvZ2VuYW0uaApAQCAtMTU4LDcgKzE1OCw3IEBAIGV4dGVybiBJbmRleFNjYW5EZXNjIGlu ZGV4X2JlZ2luc2NhbihSZWxhdGlvbiBoZWFwUmVsYXRpb24sCiAJCQkJCQkJCQkgUmVsYXRpb24g aW5kZXhSZWxhdGlvbiwKIAkJCQkJCQkJCSBTbmFwc2hvdCBzbmFwc2hvdCwKIAkJCQkJCQkJCSBJ bmRleFNjYW5JbnN0cnVtZW50YXRpb24gKmluc3RydW1lbnQsCi0JCQkJCQkJCQkgaW50IG5rZXlz LCBpbnQgbm9yZGVyYnlzKTsKKwkJCQkJCQkJCSBpbnQgbmtleXMsIGludCBub3JkZXJieXMsIHVp bnQzMiBmbGFncyk7CiBleHRlcm4gSW5kZXhTY2FuRGVzYyBpbmRleF9iZWdpbnNjYW5fYml0bWFw KFJlbGF0aW9uIGluZGV4UmVsYXRpb24sCiAJCQkJCQkJCQkJCVNuYXBzaG90IHNuYXBzaG90LAog CQkJCQkJCQkJCQlJbmRleFNjYW5JbnN0cnVtZW50YXRpb24gKmluc3RydW1lbnQsCkBAIC0xODQs NyArMTg0LDggQEAgZXh0ZXJuIEluZGV4U2NhbkRlc2MgaW5kZXhfYmVnaW5zY2FuX3BhcmFsbGVs KFJlbGF0aW9uIGhlYXByZWwsCiAJCQkJCQkJCQkJCSAgUmVsYXRpb24gaW5kZXhyZWwsCiAJCQkJ CQkJCQkJCSAgSW5kZXhTY2FuSW5zdHJ1bWVudGF0aW9uICppbnN0cnVtZW50LAogCQkJCQkJCQkJ CQkgIGludCBua2V5cywgaW50IG5vcmRlcmJ5cywKLQkJCQkJCQkJCQkJICBQYXJhbGxlbEluZGV4 U2NhbkRlc2MgcHNjYW4pOworCQkJCQkJCQkJCQkgIFBhcmFsbGVsSW5kZXhTY2FuRGVzYyBwc2Nh biwKKwkJCQkJCQkJCQkJICB1aW50MzIgZmxhZ3MpOwogZXh0ZXJuIEl0ZW1Qb2ludGVyIGluZGV4 X2dldG5leHRfdGlkKEluZGV4U2NhbkRlc2Mgc2NhbiwKIAkJCQkJCQkJCSBTY2FuRGlyZWN0aW9u IGRpcmVjdGlvbik7CiBleHRlcm4gYm9vbCBpbmRleF9mZXRjaF9oZWFwKEluZGV4U2NhbkRlc2Mg c2NhbiwgVHVwbGVUYWJsZVNsb3QgKnNsb3QpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNj ZXNzL2hlYXBhbS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCmluZGV4IDRjZTYzOTkw MzI2Li4zODIwYmJkN2Y5ZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5o CisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaApAQCAtOTYsOCArOTYsOSBAQCB0eXBl ZGVmIHN0cnVjdCBIZWFwU2NhbkRlc2NEYXRhCiAJUGFyYWxsZWxCbG9ja1RhYmxlU2Nhbldvcmtl ckRhdGEgKnJzX3BhcmFsbGVsd29ya2VyZGF0YTsKIAogCS8qCi0JICogRm9yIHNlcXVlbnRpYWwg c2NhbnMgYW5kIGJpdG1hcCBoZWFwIHNjYW5zLiBUaGUgY3VycmVudCBoZWFwIGJsb2NrJ3MKLQkg KiBjb3JyZXNwb25kaW5nIHBhZ2UgaW4gdGhlIHZpc2liaWxpdHkgbWFwLgorCSAqIEZvciBzZXF1 ZW50aWFsIHNjYW5zLCBiaXRtYXAgaGVhcCBzY2FucywgVElEIHJhbmdlIHNjYW5zLCBhbmQgc2Ft cGxlCisJICogc2NhbnMuIFRoZSBjdXJyZW50IGhlYXAgYmxvY2sncyBjb3JyZXNwb25kaW5nIHBh Z2UgaW4gdGhlIHZpc2liaWxpdHkKKwkgKiBtYXAuCiAJICovCiAJQnVmZmVyCQlyc192bWJ1ZmZl cjsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3RhYmxlYW0uaCBiL3NyYy9pbmNs dWRlL2FjY2Vzcy90YWJsZWFtLmgKaW5kZXggMDYwODQ3NTIyNDUuLmYxMDY1ZTMwNjM4IDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvdGFibGVhbS5oCisrKyBiL3NyYy9pbmNsdWRlL2Fj Y2Vzcy90YWJsZWFtLmgKQEAgLTQxOCw5ICs0MTgsMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgVGFibGVB bVJvdXRpbmUKIAkgKiBJbmRleEZldGNoVGFibGVEYXRhLCB3aGljaCB0aGUgQU0gd2lsbCB0eXBp Y2FsbHkgZW1iZWQgaW4gYSBsYXJnZXIKIAkgKiBzdHJ1Y3R1cmUgd2l0aCBhZGRpdGlvbmFsIGlu Zm9ybWF0aW9uLgogCSAqCisJICogJ2ZsYWdzJyBpcyBhIGJpdG1hc2sgb2YgU09fKiBmbGFncyBw cm92aWRpbmcgaGludHMgZnJvbSB0aGUgZXhlY3V0b3IKKwkgKiBhYm91dCB0aGUgc2NhbiBjb250 ZXh0LgorCSAqCiAJICogVHVwbGVzIGZvciBhbiBpbmRleCBzY2FuIGNhbiB0aGVuIGJlIGZldGNo ZWQgdmlhIGluZGV4X2ZldGNoX3R1cGxlLgogCSAqLwotCXN0cnVjdCBJbmRleEZldGNoVGFibGVE YXRhICooKmluZGV4X2ZldGNoX2JlZ2luKSAoUmVsYXRpb24gcmVsKTsKKwlzdHJ1Y3QgSW5kZXhG ZXRjaFRhYmxlRGF0YSAqKCppbmRleF9mZXRjaF9iZWdpbikgKFJlbGF0aW9uIHJlbCwgdWludDMy IGZsYWdzKTsKIAogCS8qCiAJICogUmVzZXQgaW5kZXggZmV0Y2guIFR5cGljYWxseSB0aGlzIHdp bGwgcmVsZWFzZSBjcm9zcyBpbmRleCBmZXRjaApAQCAtODk0LDkgKzg5Nyw5IEBAIHRhYmxlX2Jl Z2luc2Nhbl9jb21tb24oUmVsYXRpb24gcmVsLCBTbmFwc2hvdCBzbmFwc2hvdCwgaW50IG5rZXlz LAogICovCiBzdGF0aWMgaW5saW5lIFRhYmxlU2NhbkRlc2MKIHRhYmxlX2JlZ2luc2NhbihSZWxh dGlvbiByZWwsIFNuYXBzaG90IHNuYXBzaG90LAotCQkJCWludCBua2V5cywgU2NhbktleURhdGEg KmtleSkKKwkJCQlpbnQgbmtleXMsIFNjYW5LZXlEYXRhICprZXksIHVpbnQzMiBmbGFncykKIHsK LQl1aW50MzIJCWZsYWdzID0gU09fVFlQRV9TRVFTQ0FOIHwKKwlmbGFncyB8PSBTT19UWVBFX1NF UVNDQU4gfAogCQlTT19BTExPV19TVFJBVCB8IFNPX0FMTE9XX1NZTkMgfCBTT19BTExPV19QQUdF TU9ERTsKIAogCXJldHVybiB0YWJsZV9iZWdpbnNjYW5fY29tbW9uKHJlbCwgc25hcHNob3QsIG5r ZXlzLCBrZXksIE5VTEwsIGZsYWdzKTsKQEAgLTkzOSw5ICs5NDIsOSBAQCB0YWJsZV9iZWdpbnNj YW5fc3RyYXQoUmVsYXRpb24gcmVsLCBTbmFwc2hvdCBzbmFwc2hvdCwKICAqLwogc3RhdGljIGlu bGluZSBUYWJsZVNjYW5EZXNjCiB0YWJsZV9iZWdpbnNjYW5fYm0oUmVsYXRpb24gcmVsLCBTbmFw c2hvdCBzbmFwc2hvdCwKLQkJCQkgICBpbnQgbmtleXMsIFNjYW5LZXlEYXRhICprZXkpCisJCQkJ ICAgaW50IG5rZXlzLCBTY2FuS2V5RGF0YSAqa2V5LCB1aW50MzIgZmxhZ3MpCiB7Ci0JdWludDMy CQlmbGFncyA9IFNPX1RZUEVfQklUTUFQU0NBTiB8IFNPX0FMTE9XX1BBR0VNT0RFOworCWZsYWdz IHw9IFNPX1RZUEVfQklUTUFQU0NBTiB8IFNPX0FMTE9XX1BBR0VNT0RFOwogCiAJcmV0dXJuIHRh YmxlX2JlZ2luc2Nhbl9jb21tb24ocmVsLCBzbmFwc2hvdCwgbmtleXMsIGtleSwgTlVMTCwgZmxh Z3MpOwogfQpAQCAtOTU3LDkgKzk2MCw5IEBAIHN0YXRpYyBpbmxpbmUgVGFibGVTY2FuRGVzYwog dGFibGVfYmVnaW5zY2FuX3NhbXBsaW5nKFJlbGF0aW9uIHJlbCwgU25hcHNob3Qgc25hcHNob3Qs CiAJCQkJCQkgaW50IG5rZXlzLCBTY2FuS2V5RGF0YSAqa2V5LAogCQkJCQkJIGJvb2wgYWxsb3df c3RyYXQsIGJvb2wgYWxsb3dfc3luYywKLQkJCQkJCSBib29sIGFsbG93X3BhZ2Vtb2RlKQorCQkJ CQkJIGJvb2wgYWxsb3dfcGFnZW1vZGUsIHVpbnQzMiBmbGFncykKIHsKLQl1aW50MzIJCWZsYWdz ID0gU09fVFlQRV9TQU1QTEVTQ0FOOworCWZsYWdzIHw9IFNPX1RZUEVfU0FNUExFU0NBTjsKIAog CWlmIChhbGxvd19zdHJhdCkKIAkJZmxhZ3MgfD0gU09fQUxMT1dfU1RSQVQ7CkBAIC0xMDU5LDEw ICsxMDYyLDExIEBAIHRhYmxlX3NjYW5fZ2V0bmV4dHNsb3QoVGFibGVTY2FuRGVzYyBzc2Nhbiwg U2NhbkRpcmVjdGlvbiBkaXJlY3Rpb24sIFR1cGxlVGFibGVTCiBzdGF0aWMgaW5saW5lIFRhYmxl U2NhbkRlc2MKIHRhYmxlX2JlZ2luc2Nhbl90aWRyYW5nZShSZWxhdGlvbiByZWwsIFNuYXBzaG90 IHNuYXBzaG90LAogCQkJCQkJIEl0ZW1Qb2ludGVyIG1pbnRpZCwKLQkJCQkJCSBJdGVtUG9pbnRl ciBtYXh0aWQpCisJCQkJCQkgSXRlbVBvaW50ZXIgbWF4dGlkLCB1aW50MzIgZmxhZ3MpCiB7CiAJ VGFibGVTY2FuRGVzYyBzc2NhbjsKLQl1aW50MzIJCWZsYWdzID0gU09fVFlQRV9USURSQU5HRVND QU4gfCBTT19BTExPV19QQUdFTU9ERTsKKworCWZsYWdzIHw9IFNPX1RZUEVfVElEUkFOR0VTQ0FO IHwgU09fQUxMT1dfUEFHRU1PREU7CiAKIAlzc2NhbiA9IHRhYmxlX2JlZ2luc2Nhbl9jb21tb24o cmVsLCBzbmFwc2hvdCwgMCwgTlVMTCwgTlVMTCwgZmxhZ3MpOwogCkBAIC0xMTM5LDcgKzExNDMs OCBAQCBleHRlcm4gdm9pZCB0YWJsZV9wYXJhbGxlbHNjYW5faW5pdGlhbGl6ZShSZWxhdGlvbiBy ZWwsCiAgKiBDYWxsZXIgbXVzdCBob2xkIGEgc3VpdGFibGUgbG9jayBvbiB0aGUgcmVsYXRpb24u CiAgKi8KIGV4dGVybiBUYWJsZVNjYW5EZXNjIHRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbChSZWxh dGlvbiByZWxhdGlvbiwKLQkJCQkJCQkJCQkJICBQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW4p OworCQkJCQkJCQkJCQkgIFBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbiwKKwkJCQkJCQkJCQkJ ICB1aW50MzIgZmxhZ3MpOwogCiAvKgogICogQmVnaW4gYSBwYXJhbGxlbCB0aWQgcmFuZ2Ugc2Nh bi4gYHBzY2FuYCBuZWVkcyB0byBoYXZlIGJlZW4gaW5pdGlhbGl6ZWQKQEAgLTExNDksNyArMTE1 NCw4IEBAIGV4dGVybiBUYWJsZVNjYW5EZXNjIHRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbChSZWxh dGlvbiByZWxhdGlvbiwKICAqIENhbGxlciBtdXN0IGhvbGQgYSBzdWl0YWJsZSBsb2NrIG9uIHRo ZSByZWxhdGlvbi4KICAqLwogZXh0ZXJuIFRhYmxlU2NhbkRlc2MgdGFibGVfYmVnaW5zY2FuX3Bh cmFsbGVsX3RpZHJhbmdlKFJlbGF0aW9uIHJlbGF0aW9uLAotCQkJCQkJCQkJCQkJCSAgIFBhcmFs bGVsVGFibGVTY2FuRGVzYyBwc2Nhbik7CisJCQkJCQkJCQkJCQkJICAgUGFyYWxsZWxUYWJsZVNj YW5EZXNjIHBzY2FuLAorCQkJCQkJCQkJCQkJCSAgIHVpbnQzMiBmbGFncyk7CiAKIC8qCiAgKiBS ZXN0YXJ0IGEgcGFyYWxsZWwgc2Nhbi4gIENhbGwgdGhpcyBpbiB0aGUgbGVhZGVyIHByb2Nlc3Mu ICBDYWxsZXIgaXMKQEAgLTExNzIsMTAgKzExNzgsMTMgQEAgdGFibGVfcGFyYWxsZWxzY2FuX3Jl aW5pdGlhbGl6ZShSZWxhdGlvbiByZWwsIFBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbikKICAq IFByZXBhcmUgdG8gZmV0Y2ggdHVwbGVzIGZyb20gdGhlIHJlbGF0aW9uLCBhcyBuZWVkZWQgd2hl biBmZXRjaGluZyB0dXBsZXMKICAqIGZvciBhbiBpbmRleCBzY2FuLgogICoKKyAqICdmbGFncycg aXMgYSBiaXRtYXNrIG9mIFNPXyogZmxhZ3MgcHJvdmlkaW5nIGhpbnRzIGZyb20gdGhlIGV4ZWN1 dG9yIGFib3V0CisgKiB0aGUgc2NhbiBjb250ZXh0LgorICoKICAqIFR1cGxlcyBmb3IgYW4gaW5k ZXggc2NhbiBjYW4gdGhlbiBiZSBmZXRjaGVkIHZpYSB0YWJsZV9pbmRleF9mZXRjaF90dXBsZSgp LgogICovCiBzdGF0aWMgaW5saW5lIEluZGV4RmV0Y2hUYWJsZURhdGEgKgotdGFibGVfaW5kZXhf ZmV0Y2hfYmVnaW4oUmVsYXRpb24gcmVsKQordGFibGVfaW5kZXhfZmV0Y2hfYmVnaW4oUmVsYXRp b24gcmVsLCB1aW50MzIgZmxhZ3MpCiB7CiAJLyoKIAkgKiBXZSBkb24ndCBhbGxvdyBzY2FucyB0 byBiZSBzdGFydGVkIHdoaWxlIENoZWNrWGlkQWxpdmUgaXMgc2V0LCBleGNlcHQKQEAgLTExODUs NyArMTE5NCw3IEBAIHRhYmxlX2luZGV4X2ZldGNoX2JlZ2luKFJlbGF0aW9uIHJlbCkKIAlpZiAo dW5saWtlbHkoVHJhbnNhY3Rpb25JZElzVmFsaWQoQ2hlY2tYaWRBbGl2ZSkgJiYgIWJzeXNzY2Fu KSkKIAkJZWxvZyhFUlJPUiwgInNjYW4gc3RhcnRlZCBkdXJpbmcgbG9naWNhbCBkZWNvZGluZyIp OwogCi0JcmV0dXJuIHJlbC0+cmRfdGFibGVhbS0+aW5kZXhfZmV0Y2hfYmVnaW4ocmVsKTsKKwly ZXR1cm4gcmVsLT5yZF90YWJsZWFtLT5pbmRleF9mZXRjaF9iZWdpbihyZWwsIGZsYWdzKTsKIH0K IAogLyoKLS0gCjIuNDMuMAoK --0000000000002365dc064d39709f Content-Type: text/x-patch; charset="US-ASCII"; name="v40-0010-Pass-down-information-on-table-modification-to-s.patch" Content-Disposition: attachment; filename="v40-0010-Pass-down-information-on-table-modification-to-s.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmupr7of9 RnJvbSA3NzkwYzgxNzdiYTNhYThhOGJkMWEyMTZlYTc3ZmRmZDQyZWZjMWJmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBNb24sIDIgTWFyIDIwMjYgMTY6MzE6MzMgLTA1MDAKU3ViamVjdDogW1BB VENIIHY0MCAxMC8xMl0gUGFzcyBkb3duIGluZm9ybWF0aW9uIG9uIHRhYmxlIG1vZGlmaWNhdGlv biB0byBzY2FuCiBub2RlCgpQYXNzIGRvd24gaW5mb3JtYXRpb24gdG8gc2VxdWVudGlhbCBzY2Fu LCBpbmRleCBbb25seV0gc2NhbiwgYml0bWFwCnRhYmxlIHNjYW4sIHNhbXBsZSBzY2FuLCBhbmQg VElEIHJhbmdlIHNjYW4gbm9kZXMgb24gd2hldGhlciBvciBub3QgdGhlCnF1ZXJ5IG1vZGlmaWVz IHRoZSByZWxhdGlvbiBiZWluZyBzY2FubmVkLiBBIGxhdGVyIGNvbW1pdCB3aWxsIHVzZSB0aGlz CmluZm9ybWF0aW9uIHRvIHVwZGF0ZSB0aGUgVk0gZHVyaW5nIG9uLWFjY2VzcyBwcnVuaW5nIG9u bHkgaWYgdGhlCnJlbGF0aW9uIGlzIG5vdCBtb2RpZmllZCBieSB0aGUgcXVlcnkuCgpBdXRob3I6 IE1lbGFuaWUgUGxhZ2VtYW4gPG1lbGFuaWVwbGFnZW1hbkBnbWFpbC5jb20+ClJldmlld2VkLWJ5 OiBBbmRyZXMgRnJldW5kIDxhbmRyZXNAYW5hcmF6ZWwuZGU+ClJldmlld2VkLWJ5OiBBbmRyZXkg Qm9yb2RpbiA8eDRtbW1AeWFuZGV4LXRlYW0ucnU+ClJldmlld2VkLWJ5OiBDaGFvIExpIDxsaS5l dmFuLmNoYW9AZ21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tLzQzNzlG REEzLTk0NDYtNEUyQy05QzE1LTMyRUZFOEQ0RjMxQiU0MHlhbmRleC10ZWFtLnJ1Ci0tLQogc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIuYyAgfCAgMSArCiBzcmMvYmFja2Vu ZC9leGVjdXRvci9ub2RlQml0bWFwSGVhcHNjYW4uYyB8ICA5ICsrKysrKy0KIHNyYy9iYWNrZW5k L2V4ZWN1dG9yL25vZGVJbmRleG9ubHlzY2FuLmMgIHwgMjUgKysrKysrKysrKysrKysrLS0tCiBz cmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMgICAgICB8IDMyICsrKysrKysrKysr KysrKysrKysrLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9ub2RlU2FtcGxlc2Nhbi5jICAgICB8 ICA4ICsrKysrLQogc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNlcXNjYW4uYyAgICAgICAgfCAy NiArKysrKysrKysrKysrKystLS0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVUaWRyYW5nZXNj YW4uYyAgIHwgMjQgKysrKysrKysrKysrKystLS0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0u aCAgICAgICAgICAgICAgIHwgIDYgKysrKysKIHNyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmgg ICAgICAgICAgICAgIHwgIDMgKysrCiA5IGZpbGVzIGNoYW5nZWQsIDExOSBpbnNlcnRpb25zKCsp LCAxNSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9o ZWFwYW1faGFuZGxlci5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIu YwppbmRleCAxZTk1MGQ4ZTZlNS4uYWVjNTE5OWIyZTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvaGVhcGFtX2hhbmRsZXIuYwpAQCAtODcsNiArODcsNyBAQCBoZWFwYW1faW5kZXhfZmV0Y2hf YmVnaW4oUmVsYXRpb24gcmVsLCB1aW50MzIgZmxhZ3MpCiAJaHNjYW4tPnhzX2Jhc2UucmVsID0g cmVsOwogCWhzY2FuLT54c19jYnVmID0gSW52YWxpZEJ1ZmZlcjsKIAloc2Nhbi0+eHNfdm1idWZm ZXIgPSBJbnZhbGlkQnVmZmVyOworCWhzY2FuLT5tb2RpZmllc19iYXNlX3JlbCA9ICEoZmxhZ3Mg JiBTT19ISU5UX1JFTF9SRUFEX09OTFkpOwogCiAJcmV0dXJuICZoc2Nhbi0+eHNfYmFzZTsKIH0K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVCaXRtYXBIZWFwc2Nhbi5jIGIv c3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUJpdG1hcEhlYXBzY2FuLmMKaW5kZXggMzI0ZTJiZWQy MmMuLjBmMzBlNjk4MGRlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlQml0 bWFwSGVhcHNjYW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlQml0bWFwSGVhcHNj YW4uYwpAQCAtMTQ0LDExICsxNDQsMTggQEAgQml0bWFwVGFibGVTY2FuU2V0dXAoQml0bWFwSGVh cFNjYW5TdGF0ZSAqbm9kZSkKIAkgKi8KIAlpZiAoIW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVz YykKIAl7CisJCXVpbnQzMgkJZmxhZ3MgPSAwOworCisJCWlmICghYm1zX2lzX21lbWJlcigoKFNj YW4gKikgbm9kZS0+c3MucHMucGxhbiktPnNjYW5yZWxpZCwKKwkJCQkJCSAgIG5vZGUtPnNzLnBz LnN0YXRlLT5lc19tb2RpZmllZF9yZWxpZHMpKQorCQkJZmxhZ3MgfD0gU09fSElOVF9SRUxfUkVB RF9PTkxZOworCiAJCW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9CiAJCQl0YWJsZV9iZWdp bnNjYW5fYm0obm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAogCQkJCQkJCSAgIG5vZGUtPnNz LnBzLnN0YXRlLT5lc19zbmFwc2hvdCwKIAkJCQkJCQkgICAwLAotCQkJCQkJCSAgIE5VTEwsIDAp OworCQkJCQkJCSAgIE5VTEwsCisJCQkJCQkJICAgZmxhZ3MpOwogCX0KIAogCW5vZGUtPnNzLnNz X2N1cnJlbnRTY2FuRGVzYy0+c3QucnNfdGJtaXRlcmF0b3IgPSB0Ym1pdGVyYXRvcjsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleG9ubHlzY2FuLmMgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9ub2RlSW5kZXhvbmx5c2Nhbi5jCmluZGV4IDE3YmY0OTc2Y2NlLi4zZmFi NzE1Zjg3OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4b25seXNj YW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhvbmx5c2Nhbi5jCkBAIC04 NSw2ICs4NSwxMiBAQCBJbmRleE9ubHlOZXh0KEluZGV4T25seVNjYW5TdGF0ZSAqbm9kZSkKIAog CWlmIChzY2FuZGVzYyA9PSBOVUxMKQogCXsKKwkJdWludDMyCQlmbGFncyA9IDA7CisKKwkJaWYg KCFibXNfaXNfbWVtYmVyKCgoU2NhbiAqKSBub2RlLT5zcy5wcy5wbGFuKS0+c2NhbnJlbGlkLAor CQkJCQkJICAgZXN0YXRlLT5lc19tb2RpZmllZF9yZWxpZHMpKQorCQkJZmxhZ3MgfD0gU09fSElO VF9SRUxfUkVBRF9PTkxZOworCiAJCS8qCiAJCSAqIFdlIHJlYWNoIGhlcmUgaWYgdGhlIGluZGV4 IG9ubHkgc2NhbiBpcyBub3QgcGFyYWxsZWwsIG9yIGlmIHdlJ3JlCiAJCSAqIHNlcmlhbGx5IGV4 ZWN1dGluZyBhbiBpbmRleCBvbmx5IHNjYW4gdGhhdCB3YXMgcGxhbm5lZCB0byBiZQpAQCAtOTUs NyArMTAxLDggQEAgSW5kZXhPbmx5TmV4dChJbmRleE9ubHlTY2FuU3RhdGUgKm5vZGUpCiAJCQkJ CQkJCSAgIGVzdGF0ZS0+ZXNfc25hcHNob3QsCiAJCQkJCQkJCSAgICZub2RlLT5pb3NzX0luc3Ry dW1lbnQsCiAJCQkJCQkJCSAgIG5vZGUtPmlvc3NfTnVtU2NhbktleXMsCi0JCQkJCQkJCSAgIG5v ZGUtPmlvc3NfTnVtT3JkZXJCeUtleXMsIDApOworCQkJCQkJCQkgICBub2RlLT5pb3NzX051bU9y ZGVyQnlLZXlzLAorCQkJCQkJCQkgICBmbGFncyk7CiAKIAkJbm9kZS0+aW9zc19TY2FuRGVzYyA9 IHNjYW5kZXNjOwogCkBAIC03NjMsNiArNzcwLDcgQEAgRXhlY0luZGV4T25seVNjYW5Jbml0aWFs aXplRFNNKEluZGV4T25seVNjYW5TdGF0ZSAqbm9kZSwKIAlQYXJhbGxlbEluZGV4U2NhbkRlc2Mg cGlzY2FuOwogCWJvb2wJCWluc3RydW1lbnQgPSBub2RlLT5zcy5wcy5pbnN0cnVtZW50ICE9IE5V TEw7CiAJYm9vbAkJcGFyYWxsZWxfYXdhcmUgPSBub2RlLT5zcy5wcy5wbGFuLT5wYXJhbGxlbF9h d2FyZTsKKwl1aW50MzIJCWZsYWdzID0gMDsKIAogCWlmICghaW5zdHJ1bWVudCAmJiAhcGFyYWxs ZWxfYXdhcmUpCiAJewpAQCAtNzg0LDEzICs3OTIsMTggQEAgRXhlY0luZGV4T25seVNjYW5Jbml0 aWFsaXplRFNNKEluZGV4T25seVNjYW5TdGF0ZSAqbm9kZSwKIAkJcmV0dXJuOwogCX0KIAorCWlm ICghYm1zX2lzX21lbWJlcigoKFNjYW4gKikgbm9kZS0+c3MucHMucGxhbiktPnNjYW5yZWxpZCwK KwkJCQkJICAgZXN0YXRlLT5lc19tb2RpZmllZF9yZWxpZHMpKQorCQlmbGFncyB8PSBTT19ISU5U X1JFTF9SRUFEX09OTFk7CisKIAlub2RlLT5pb3NzX1NjYW5EZXNjID0KIAkJaW5kZXhfYmVnaW5z Y2FuX3BhcmFsbGVsKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwKIAkJCQkJCQkJIG5vZGUt Pmlvc3NfUmVsYXRpb25EZXNjLAogCQkJCQkJCQkgJm5vZGUtPmlvc3NfSW5zdHJ1bWVudCwKIAkJ CQkJCQkJIG5vZGUtPmlvc3NfTnVtU2NhbktleXMsCiAJCQkJCQkJCSBub2RlLT5pb3NzX051bU9y ZGVyQnlLZXlzLAotCQkJCQkJCQkgcGlzY2FuLCAwKTsKKwkJCQkJCQkJIHBpc2NhbiwgZmxhZ3Mp OworCiAJbm9kZS0+aW9zc19TY2FuRGVzYy0+eHNfd2FudF9pdHVwID0gdHJ1ZTsKIAlub2RlLT5p b3NzX1ZNQnVmZmVyID0gSW52YWxpZEJ1ZmZlcjsKIApAQCAtODMxLDYgKzg0NCw3IEBAIEV4ZWNJ bmRleE9ubHlTY2FuSW5pdGlhbGl6ZVdvcmtlcihJbmRleE9ubHlTY2FuU3RhdGUgKm5vZGUsCiAJ UGFyYWxsZWxJbmRleFNjYW5EZXNjIHBpc2NhbjsKIAlib29sCQlpbnN0cnVtZW50ID0gbm9kZS0+ c3MucHMuaW5zdHJ1bWVudCAhPSBOVUxMOwogCWJvb2wJCXBhcmFsbGVsX2F3YXJlID0gbm9kZS0+ c3MucHMucGxhbi0+cGFyYWxsZWxfYXdhcmU7CisJdWludDMyCQlmbGFncyA9IDA7CiAKIAlpZiAo IWluc3RydW1lbnQgJiYgIXBhcmFsbGVsX2F3YXJlKQogCXsKQEAgLTg1MCwxMyArODY0LDE4IEBA IEV4ZWNJbmRleE9ubHlTY2FuSW5pdGlhbGl6ZVdvcmtlcihJbmRleE9ubHlTY2FuU3RhdGUgKm5v ZGUsCiAJCXJldHVybjsKIAl9CiAKKwlpZiAoIWJtc19pc19tZW1iZXIoKChTY2FuICopIG5vZGUt PnNzLnBzLnBsYW4pLT5zY2FucmVsaWQsCisJCQkJCSAgIG5vZGUtPnNzLnBzLnN0YXRlLT5lc19t b2RpZmllZF9yZWxpZHMpKQorCQlmbGFncyB8PSBTT19ISU5UX1JFTF9SRUFEX09OTFk7CisKIAlu b2RlLT5pb3NzX1NjYW5EZXNjID0KIAkJaW5kZXhfYmVnaW5zY2FuX3BhcmFsbGVsKG5vZGUtPnNz LnNzX2N1cnJlbnRSZWxhdGlvbiwKIAkJCQkJCQkJIG5vZGUtPmlvc3NfUmVsYXRpb25EZXNjLAog CQkJCQkJCQkgJm5vZGUtPmlvc3NfSW5zdHJ1bWVudCwKIAkJCQkJCQkJIG5vZGUtPmlvc3NfTnVt U2NhbktleXMsCiAJCQkJCQkJCSBub2RlLT5pb3NzX051bU9yZGVyQnlLZXlzLAotCQkJCQkJCQkg cGlzY2FuLCAwKTsKKwkJCQkJCQkJIHBpc2NhbiwgZmxhZ3MpOworCiAJbm9kZS0+aW9zc19TY2Fu RGVzYy0+eHNfd2FudF9pdHVwID0gdHJ1ZTsKIAogCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5k ZXhzY2FuLmMKaW5kZXggODhiZGYwYTUyZDEuLjZhMjM1ZWYyNWNlIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0 b3Ivbm9kZUluZGV4c2Nhbi5jCkBAIC0xMDQsNiArMTA0LDEyIEBAIEluZGV4TmV4dChJbmRleFNj YW5TdGF0ZSAqbm9kZSkKIAogCWlmIChzY2FuZGVzYyA9PSBOVUxMKQogCXsKKwkJdWludDMyCQlm bGFncyA9IDA7CisKKwkJaWYgKCFibXNfaXNfbWVtYmVyKCgoU2NhbiAqKSBub2RlLT5zcy5wcy5w bGFuKS0+c2NhbnJlbGlkLAorCQkJCQkJICAgZXN0YXRlLT5lc19tb2RpZmllZF9yZWxpZHMpKQor CQkJZmxhZ3MgfD0gU09fSElOVF9SRUxfUkVBRF9PTkxZOworCiAJCS8qCiAJCSAqIFdlIHJlYWNo IGhlcmUgaWYgdGhlIGluZGV4IHNjYW4gaXMgbm90IHBhcmFsbGVsLCBvciBpZiB3ZSdyZQogCQkg KiBzZXJpYWxseSBleGVjdXRpbmcgYW4gaW5kZXggc2NhbiB0aGF0IHdhcyBwbGFubmVkIHRvIGJl IHBhcmFsbGVsLgpAQCAtMTEzLDcgKzExOSw4IEBAIEluZGV4TmV4dChJbmRleFNjYW5TdGF0ZSAq bm9kZSkKIAkJCQkJCQkJICAgZXN0YXRlLT5lc19zbmFwc2hvdCwKIAkJCQkJCQkJICAgJm5vZGUt Pmlzc19JbnN0cnVtZW50LAogCQkJCQkJCQkgICBub2RlLT5pc3NfTnVtU2NhbktleXMsCi0JCQkJ CQkJCSAgIG5vZGUtPmlzc19OdW1PcmRlckJ5S2V5cywgMCk7CisJCQkJCQkJCSAgIG5vZGUtPmlz c19OdW1PcmRlckJ5S2V5cywKKwkJCQkJCQkJICAgZmxhZ3MpOwogCiAJCW5vZGUtPmlzc19TY2Fu RGVzYyA9IHNjYW5kZXNjOwogCkBAIC0yMDAsNiArMjA3LDEyIEBAIEluZGV4TmV4dFdpdGhSZW9y ZGVyKEluZGV4U2NhblN0YXRlICpub2RlKQogCiAJaWYgKHNjYW5kZXNjID09IE5VTEwpCiAJewor CQl1aW50MzIJCWZsYWdzID0gMDsKKworCQlpZiAoIWJtc19pc19tZW1iZXIoKChTY2FuICopIG5v ZGUtPnNzLnBzLnBsYW4pLT5zY2FucmVsaWQsCisJCQkJCQkgICBlc3RhdGUtPmVzX21vZGlmaWVk X3JlbGlkcykpCisJCQlmbGFncyB8PSBTT19ISU5UX1JFTF9SRUFEX09OTFk7CisKIAkJLyoKIAkJ ICogV2UgcmVhY2ggaGVyZSBpZiB0aGUgaW5kZXggc2NhbiBpcyBub3QgcGFyYWxsZWwsIG9yIGlm IHdlJ3JlCiAJCSAqIHNlcmlhbGx5IGV4ZWN1dGluZyBhbiBpbmRleCBzY2FuIHRoYXQgd2FzIHBs YW5uZWQgdG8gYmUgcGFyYWxsZWwuCkBAIC0yMDksNyArMjIyLDggQEAgSW5kZXhOZXh0V2l0aFJl b3JkZXIoSW5kZXhTY2FuU3RhdGUgKm5vZGUpCiAJCQkJCQkJCSAgIGVzdGF0ZS0+ZXNfc25hcHNo b3QsCiAJCQkJCQkJCSAgICZub2RlLT5pc3NfSW5zdHJ1bWVudCwKIAkJCQkJCQkJICAgbm9kZS0+ aXNzX051bVNjYW5LZXlzLAotCQkJCQkJCQkgICBub2RlLT5pc3NfTnVtT3JkZXJCeUtleXMsIDAp OworCQkJCQkJCQkgICBub2RlLT5pc3NfTnVtT3JkZXJCeUtleXMsCisJCQkJCQkJCSAgIGZsYWdz KTsKIAogCQlub2RlLT5pc3NfU2NhbkRlc2MgPSBzY2FuZGVzYzsKIApAQCAtMTY5OSw2ICsxNzEz LDcgQEAgRXhlY0luZGV4U2NhbkluaXRpYWxpemVEU00oSW5kZXhTY2FuU3RhdGUgKm5vZGUsCiAJ UGFyYWxsZWxJbmRleFNjYW5EZXNjIHBpc2NhbjsKIAlib29sCQlpbnN0cnVtZW50ID0gbm9kZS0+ c3MucHMuaW5zdHJ1bWVudCAhPSBOVUxMOwogCWJvb2wJCXBhcmFsbGVsX2F3YXJlID0gbm9kZS0+ c3MucHMucGxhbi0+cGFyYWxsZWxfYXdhcmU7CisJdWludDMyCQlmbGFncyA9IDA7CiAKIAlpZiAo IWluc3RydW1lbnQgJiYgIXBhcmFsbGVsX2F3YXJlKQogCXsKQEAgLTE3MjAsMTMgKzE3MzUsMTcg QEAgRXhlY0luZGV4U2NhbkluaXRpYWxpemVEU00oSW5kZXhTY2FuU3RhdGUgKm5vZGUsCiAJCXJl dHVybjsKIAl9CiAKKwlpZiAoIWJtc19pc19tZW1iZXIoKChTY2FuICopIG5vZGUtPnNzLnBzLnBs YW4pLT5zY2FucmVsaWQsCisJCQkJCSAgIGVzdGF0ZS0+ZXNfbW9kaWZpZWRfcmVsaWRzKSkKKwkJ ZmxhZ3MgfD0gU09fSElOVF9SRUxfUkVBRF9PTkxZOworCiAJbm9kZS0+aXNzX1NjYW5EZXNjID0K IAkJaW5kZXhfYmVnaW5zY2FuX3BhcmFsbGVsKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwK IAkJCQkJCQkJIG5vZGUtPmlzc19SZWxhdGlvbkRlc2MsCiAJCQkJCQkJCSAmbm9kZS0+aXNzX0lu c3RydW1lbnQsCiAJCQkJCQkJCSBub2RlLT5pc3NfTnVtU2NhbktleXMsCiAJCQkJCQkJCSBub2Rl LT5pc3NfTnVtT3JkZXJCeUtleXMsCi0JCQkJCQkJCSBwaXNjYW4sIDApOworCQkJCQkJCQkgcGlz Y2FuLCBmbGFncyk7CiAKIAkvKgogCSAqIElmIG5vIHJ1bi10aW1lIGtleXMgdG8gY2FsY3VsYXRl IG9yIHRoZXkgYXJlIHJlYWR5LCBnbyBhaGVhZCBhbmQgcGFzcwpAQCAtMTc2NSw2ICsxNzg0LDcg QEAgRXhlY0luZGV4U2NhbkluaXRpYWxpemVXb3JrZXIoSW5kZXhTY2FuU3RhdGUgKm5vZGUsCiAJ UGFyYWxsZWxJbmRleFNjYW5EZXNjIHBpc2NhbjsKIAlib29sCQlpbnN0cnVtZW50ID0gbm9kZS0+ c3MucHMuaW5zdHJ1bWVudCAhPSBOVUxMOwogCWJvb2wJCXBhcmFsbGVsX2F3YXJlID0gbm9kZS0+ c3MucHMucGxhbi0+cGFyYWxsZWxfYXdhcmU7CisJdWludDMyCQlmbGFncyA9IDA7CiAKIAlpZiAo IWluc3RydW1lbnQgJiYgIXBhcmFsbGVsX2F3YXJlKQogCXsKQEAgLTE3ODQsMTMgKzE4MDQsMTcg QEAgRXhlY0luZGV4U2NhbkluaXRpYWxpemVXb3JrZXIoSW5kZXhTY2FuU3RhdGUgKm5vZGUsCiAJ CXJldHVybjsKIAl9CiAKKwlpZiAoIWJtc19pc19tZW1iZXIoKChTY2FuICopIG5vZGUtPnNzLnBz LnBsYW4pLT5zY2FucmVsaWQsCisJCQkJCSAgIG5vZGUtPnNzLnBzLnN0YXRlLT5lc19tb2RpZmll ZF9yZWxpZHMpKQorCQlmbGFncyB8PSBTT19ISU5UX1JFTF9SRUFEX09OTFk7CisKIAlub2RlLT5p c3NfU2NhbkRlc2MgPQogCQlpbmRleF9iZWdpbnNjYW5fcGFyYWxsZWwobm9kZS0+c3Muc3NfY3Vy cmVudFJlbGF0aW9uLAogCQkJCQkJCQkgbm9kZS0+aXNzX1JlbGF0aW9uRGVzYywKIAkJCQkJCQkJ ICZub2RlLT5pc3NfSW5zdHJ1bWVudCwKIAkJCQkJCQkJIG5vZGUtPmlzc19OdW1TY2FuS2V5cywK IAkJCQkJCQkJIG5vZGUtPmlzc19OdW1PcmRlckJ5S2V5cywKLQkJCQkJCQkJIHBpc2NhbiwgMCk7 CisJCQkJCQkJCSBwaXNjYW4sIGZsYWdzKTsKIAogCS8qCiAJICogSWYgbm8gcnVuLXRpbWUga2V5 cyB0byBjYWxjdWxhdGUgb3IgdGhleSBhcmUgcmVhZHksIGdvIGFoZWFkIGFuZCBwYXNzCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlU2FtcGxlc2Nhbi5jIGIvc3JjL2JhY2tl bmQvZXhlY3V0b3Ivbm9kZVNhbXBsZXNjYW4uYwppbmRleCBjYzZiMjNhYmVlMC4uOGQzNmZjZGE0 OGEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTYW1wbGVzY2FuLmMKKysr IGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNhbXBsZXNjYW4uYwpAQCAtMjkyLDEzICsyOTIs MTkgQEAgdGFibGVzYW1wbGVfaW5pdChTYW1wbGVTY2FuU3RhdGUgKnNjYW5zdGF0ZSkKIAkvKiBO b3cgd2UgY2FuIGNyZWF0ZSBvciByZXNldCB0aGUgSGVhcFNjYW5EZXNjICovCiAJaWYgKHNjYW5z dGF0ZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjID09IE5VTEwpCiAJeworCQl1aW50MzIJCWZsYWdz ID0gMDsKKworCQlpZiAoIWJtc19pc19tZW1iZXIoKChTY2FuICopIHNjYW5zdGF0ZS0+c3MucHMu cGxhbiktPnNjYW5yZWxpZCwKKwkJCQkJCSAgIHNjYW5zdGF0ZS0+c3MucHMuc3RhdGUtPmVzX21v ZGlmaWVkX3JlbGlkcykpCisJCQlmbGFncyB8PSBTT19ISU5UX1JFTF9SRUFEX09OTFk7CisKIAkJ c2NhbnN0YXRlLT5zcy5zc19jdXJyZW50U2NhbkRlc2MgPQogCQkJdGFibGVfYmVnaW5zY2FuX3Nh bXBsaW5nKHNjYW5zdGF0ZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAogCQkJCQkJCQkJIHNjYW5z dGF0ZS0+c3MucHMuc3RhdGUtPmVzX3NuYXBzaG90LAogCQkJCQkJCQkJIDAsIE5VTEwsCiAJCQkJ CQkJCQkgc2NhbnN0YXRlLT51c2VfYnVsa3JlYWQsCiAJCQkJCQkJCQkgYWxsb3dfc3luYywKLQkJ CQkJCQkJCSBzY2Fuc3RhdGUtPnVzZV9wYWdlbW9kZSwgMCk7CisJCQkJCQkJCQkgc2NhbnN0YXRl LT51c2VfcGFnZW1vZGUsIGZsYWdzKTsKIAl9CiAJZWxzZQogCXsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL25vZGVTZXFzY2FuLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2Rl U2Vxc2Nhbi5jCmluZGV4IGMyZDliNzI5M2RlLi45MzU2OTczODAyYiAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNlcXNjYW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRv ci9ub2RlU2Vxc2Nhbi5jCkBAIC02NSwxMyArNjUsMjAgQEAgU2VxTmV4dChTZXFTY2FuU3RhdGUg Km5vZGUpCiAKIAlpZiAoc2NhbmRlc2MgPT0gTlVMTCkKIAl7CisJCXVpbnQzMgkJZmxhZ3MgPSAw OworCisJCWlmICghYm1zX2lzX21lbWJlcigoKFNjYW4gKikgbm9kZS0+c3MucHMucGxhbiktPnNj YW5yZWxpZCwKKwkJCQkJCSAgIGVzdGF0ZS0+ZXNfbW9kaWZpZWRfcmVsaWRzKSkKKwkJCWZsYWdz IHw9IFNPX0hJTlRfUkVMX1JFQURfT05MWTsKKwogCQkvKgogCQkgKiBXZSByZWFjaCBoZXJlIGlm IHRoZSBzY2FuIGlzIG5vdCBwYXJhbGxlbCwgb3IgaWYgd2UncmUgc2VyaWFsbHkKIAkJICogZXhl Y3V0aW5nIGEgc2NhbiB0aGF0IHdhcyBwbGFubmVkIHRvIGJlIHBhcmFsbGVsLgogCQkgKi8KIAkJ c2NhbmRlc2MgPSB0YWJsZV9iZWdpbnNjYW4obm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAog CQkJCQkJCQkgICBlc3RhdGUtPmVzX3NuYXBzaG90LAotCQkJCQkJCQkgICAwLCBOVUxMLCAwKTsK KwkJCQkJCQkJICAgMCwgTlVMTCwgZmxhZ3MpOworCiAJCW5vZGUtPnNzLnNzX2N1cnJlbnRTY2Fu RGVzYyA9IHNjYW5kZXNjOwogCX0KIApAQCAtMzY4LDE0ICszNzUsMjAgQEAgRXhlY1NlcVNjYW5J bml0aWFsaXplRFNNKFNlcVNjYW5TdGF0ZSAqbm9kZSwKIHsKIAlFU3RhdGUJICAgKmVzdGF0ZSA9 IG5vZGUtPnNzLnBzLnN0YXRlOwogCVBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbjsKKwl1aW50 MzIJCWZsYWdzID0gMDsKIAogCXBzY2FuID0gc2htX3RvY19hbGxvY2F0ZShwY3h0LT50b2MsIG5v ZGUtPnBzY2FuX2xlbik7CiAJdGFibGVfcGFyYWxsZWxzY2FuX2luaXRpYWxpemUobm9kZS0+c3Mu c3NfY3VycmVudFJlbGF0aW9uLAogCQkJCQkJCQkgIHBzY2FuLAogCQkJCQkJCQkgIGVzdGF0ZS0+ ZXNfc25hcHNob3QpOwogCXNobV90b2NfaW5zZXJ0KHBjeHQtPnRvYywgbm9kZS0+c3MucHMucGxh bi0+cGxhbl9ub2RlX2lkLCBwc2Nhbik7CisJaWYgKCFibXNfaXNfbWVtYmVyKCgoU2NhbiAqKSBu b2RlLT5zcy5wcy5wbGFuKS0+c2NhbnJlbGlkLAorCQkJCQkgICBlc3RhdGUtPmVzX21vZGlmaWVk X3JlbGlkcykpCisJCWZsYWdzIHw9IFNPX0hJTlRfUkVMX1JFQURfT05MWTsKKwogCW5vZGUtPnNz LnNzX2N1cnJlbnRTY2FuRGVzYyA9Ci0JCXRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbChub2RlLT5z cy5zc19jdXJyZW50UmVsYXRpb24sIHBzY2FuLCAwKTsKKwkJdGFibGVfYmVnaW5zY2FuX3BhcmFs bGVsKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwgcHNjYW4sCisJCQkJCQkJCSBmbGFncyk7 CiB9CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQwNSw4ICs0MTgsMTUgQEAgRXhlY1NlcVNjYW5Jbml0aWFs aXplV29ya2VyKFNlcVNjYW5TdGF0ZSAqbm9kZSwKIAkJCQkJCQlQYXJhbGxlbFdvcmtlckNvbnRl eHQgKnB3Y3h0KQogewogCVBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbjsKKwl1aW50MzIJCWZs YWdzID0gMDsKKworCWlmICghYm1zX2lzX21lbWJlcigoKFNjYW4gKikgbm9kZS0+c3MucHMucGxh biktPnNjYW5yZWxpZCwKKwkJCQkJICAgbm9kZS0+c3MucHMuc3RhdGUtPmVzX21vZGlmaWVkX3Jl bGlkcykpCisJCWZsYWdzIHw9IFNPX0hJTlRfUkVMX1JFQURfT05MWTsKIAogCXBzY2FuID0gc2ht X3RvY19sb29rdXAocHdjeHQtPnRvYywgbm9kZS0+c3MucHMucGxhbi0+cGxhbl9ub2RlX2lkLCBm YWxzZSk7CiAJbm9kZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjID0KLQkJdGFibGVfYmVnaW5zY2Fu X3BhcmFsbGVsKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwgcHNjYW4sIDApOworCQl0YWJs ZV9iZWdpbnNjYW5fcGFyYWxsZWwobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAorCQkJCQkJ CQkgcHNjYW4sCisJCQkJCQkJCSBmbGFncyk7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9l eGVjdXRvci9ub2RlVGlkcmFuZ2VzY2FuLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlVGlk cmFuZ2VzY2FuLmMKaW5kZXggOTk0ZjcwOTg5YmMuLjA0YTc1ZTcyZmUxIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9leGVjdXRvci9ub2RlVGlkcmFuZ2VzY2FuLmMKKysrIGIvc3JjL2JhY2tlbmQv ZXhlY3V0b3Ivbm9kZVRpZHJhbmdlc2Nhbi5jCkBAIC0yNDIsMTAgKzI0MiwxNiBAQCBUaWRSYW5n ZU5leHQoVGlkUmFuZ2VTY2FuU3RhdGUgKm5vZGUpCiAKIAkJaWYgKHNjYW5kZXNjID09IE5VTEwp CiAJCXsKKwkJCXVpbnQzMgkJZmxhZ3MgPSAwOworCisJCQlpZiAoIWJtc19pc19tZW1iZXIoKChT Y2FuICopIG5vZGUtPnNzLnBzLnBsYW4pLT5zY2FucmVsaWQsCisJCQkJCQkJICAgZXN0YXRlLT5l c19tb2RpZmllZF9yZWxpZHMpKQorCQkJCWZsYWdzIHw9IFNPX0hJTlRfUkVMX1JFQURfT05MWTsK KwogCQkJc2NhbmRlc2MgPSB0YWJsZV9iZWdpbnNjYW5fdGlkcmFuZ2Uobm9kZS0+c3Muc3NfY3Vy cmVudFJlbGF0aW9uLAogCQkJCQkJCQkJCQkJZXN0YXRlLT5lc19zbmFwc2hvdCwKIAkJCQkJCQkJ CQkJCSZub2RlLT50cnNzX21pbnRpZCwKLQkJCQkJCQkJCQkJCSZub2RlLT50cnNzX21heHRpZCwg MCk7CisJCQkJCQkJCQkJCQkmbm9kZS0+dHJzc19tYXh0aWQsIGZsYWdzKTsKIAkJCW5vZGUtPnNz LnNzX2N1cnJlbnRTY2FuRGVzYyA9IHNjYW5kZXNjOwogCQl9CiAJCWVsc2UKQEAgLTQ1MiwxNSAr NDU4LDIxIEBAIEV4ZWNUaWRSYW5nZVNjYW5Jbml0aWFsaXplRFNNKFRpZFJhbmdlU2NhblN0YXRl ICpub2RlLCBQYXJhbGxlbENvbnRleHQgKnBjeHQpCiB7CiAJRVN0YXRlCSAgICplc3RhdGUgPSBu b2RlLT5zcy5wcy5zdGF0ZTsKIAlQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW47CisJdWludDMy CQlmbGFncyA9IDA7CiAKIAlwc2NhbiA9IHNobV90b2NfYWxsb2NhdGUocGN4dC0+dG9jLCBub2Rl LT50cnNzX3BzY2FubGVuKTsKIAl0YWJsZV9wYXJhbGxlbHNjYW5faW5pdGlhbGl6ZShub2RlLT5z cy5zc19jdXJyZW50UmVsYXRpb24sCiAJCQkJCQkJCSAgcHNjYW4sCiAJCQkJCQkJCSAgZXN0YXRl LT5lc19zbmFwc2hvdCk7CiAJc2htX3RvY19pbnNlcnQocGN4dC0+dG9jLCBub2RlLT5zcy5wcy5w bGFuLT5wbGFuX25vZGVfaWQsIHBzY2FuKTsKKworCWlmICghYm1zX2lzX21lbWJlcigoKFNjYW4g Kikgbm9kZS0+c3MucHMucGxhbiktPnNjYW5yZWxpZCwKKwkJCQkJICAgZXN0YXRlLT5lc19tb2Rp ZmllZF9yZWxpZHMpKQorCQlmbGFncyB8PSBTT19ISU5UX1JFTF9SRUFEX09OTFk7CisKIAlub2Rl LT5zcy5zc19jdXJyZW50U2NhbkRlc2MgPQogCQl0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWxfdGlk cmFuZ2Uobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAotCQkJCQkJCQkJCSAgcHNjYW4sIDAp OworCQkJCQkJCQkJCSAgcHNjYW4sIGZsYWdzKTsKIH0KIAogLyogLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDkwLDkg KzUwMiwxNSBAQCBFeGVjVGlkUmFuZ2VTY2FuSW5pdGlhbGl6ZVdvcmtlcihUaWRSYW5nZVNjYW5T dGF0ZSAqbm9kZSwKIAkJCQkJCQkJIFBhcmFsbGVsV29ya2VyQ29udGV4dCAqcHdjeHQpCiB7CiAJ UGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBzY2FuOworCXVpbnQzMgkJZmxhZ3MgPSAwOwogCiAJcHNj YW4gPSBzaG1fdG9jX2xvb2t1cChwd2N4dC0+dG9jLCBub2RlLT5zcy5wcy5wbGFuLT5wbGFuX25v ZGVfaWQsIGZhbHNlKTsKKworCWlmICghYm1zX2lzX21lbWJlcigoKFNjYW4gKikgbm9kZS0+c3Mu cHMucGxhbiktPnNjYW5yZWxpZCwKKwkJCQkJICAgbm9kZS0+c3MucHMuc3RhdGUtPmVzX21vZGlm aWVkX3JlbGlkcykpCisJCWZsYWdzIHw9IFNPX0hJTlRfUkVMX1JFQURfT05MWTsKKwogCW5vZGUt PnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9CiAJCXRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbF90aWRy YW5nZShub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sCi0JCQkJCQkJCQkJICBwc2NhbiwgMCk7 CisJCQkJCQkJCQkJICBwc2NhbiwgZmxhZ3MpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv YWNjZXNzL2hlYXBhbS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCmluZGV4IDM4MjBi YmQ3ZjlmLi4xYTczMDZlMjkzNSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBh bS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaApAQCAtMTMyLDYgKzEzMiwxMiBA QCB0eXBlZGVmIHN0cnVjdCBJbmRleEZldGNoSGVhcERhdGEKIAogCS8qIEN1cnJlbnQgaGVhcCBi bG9jaydzIGNvcnJlc3BvbmRpbmcgcGFnZSBpbiB0aGUgdmlzaWJpbGl0eSBtYXAgKi8KIAlCdWZm ZXIJCXhzX3ZtYnVmZmVyOworCisJLyoKKwkgKiBTb21lIG9wdGltaXphdGlvbnMgY2FuIG9ubHkg YmUgcGVyZm9ybWVkIGlmIHRoZSBxdWVyeSBkb2VzIG5vdCBtb2RpZnkKKwkgKiB0aGUgdW5kZXJs eWluZyByZWxhdGlvbi4gVHJhY2sgdGhhdCBoZXJlLgorCSAqLworCWJvb2wJCW1vZGlmaWVzX2Jh c2VfcmVsOwogfSBJbmRleEZldGNoSGVhcERhdGE7CiAKIC8qIFJlc3VsdCBjb2RlcyBmb3IgSGVh cFR1cGxlU2F0aXNmaWVzVmFjdXVtICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3Mv dGFibGVhbS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3RhYmxlYW0uaAppbmRleCBmMTA2NWUzMDYz OC4uNTdjZTk0YTM4NmYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmgK KysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3RhYmxlYW0uaApAQCAtNjMsNiArNjMsOSBAQCB0eXBl ZGVmIGVudW0gU2Nhbk9wdGlvbnMKIAogCS8qIHVucmVnaXN0ZXIgc25hcHNob3QgYXQgc2NhbiBl bmQ/ICovCiAJU09fVEVNUF9TTkFQU0hPVCA9IDEgPDwgOSwKKworCS8qIHNldCBpZiB0aGUgcXVl cnkgZG9lc24ndCBtb2RpZnkgdGhlIHJlbGF0aW9uICovCisJU09fSElOVF9SRUxfUkVBRF9PTkxZ ID0gMSA8PCAxMCwKIH0JCQlTY2FuT3B0aW9uczsKIAogLyoKLS0gCjIuNDMuMAoK --0000000000002365dc064d39709f Content-Type: text/x-patch; charset="US-ASCII"; name="v40-0011-Allow-on-access-pruning-to-set-pages-all-visible.patch" Content-Disposition: attachment; filename="v40-0011-Allow-on-access-pruning-to-set-pages-all-visible.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmuprbry10 RnJvbSAwYTE2ZGFkN2E0ZWJlMjI0ZjM1NjI5YTM5NjE5ZDBmZWIwM2YwM2EzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBGcmksIDI3IEZlYiAyMDI2IDE2OjMzOjQwIC0wNTAwClN1YmplY3Q6IFtQ QVRDSCB2NDAgMTEvMTJdIEFsbG93IG9uLWFjY2VzcyBwcnVuaW5nIHRvIHNldCBwYWdlcyBhbGwt dmlzaWJsZQoKTWFueSBxdWVyaWVzIGRvIG5vdCBtb2RpZnkgdGhlIHVuZGVybHlpbmcgcmVsYXRp b24uIEZvciBzdWNoIHF1ZXJpZXMsIGlmCm9uLWFjY2VzcyBwcnVuaW5nIG9jY3VycyBkdXJpbmcg dGhlIHNjYW4sIHdlIGNhbiBjaGVjayB3aGV0aGVyIHRoZSBwYWdlCmhhcyBiZWNvbWUgYWxsLXZp c2libGUgYW5kIHVwZGF0ZSB0aGUgdmlzaWJpbGl0eSBtYXAgYWNjb3JkaW5nbHkuClByZXZpb3Vz bHksIG9ubHkgdmFjdXVtIGFuZCBDT1BZIEZSRUVaRSBtYXJrZWQgcGFnZXMgYXMgYWxsLXZpc2li bGUgb3IKYWxsLWZyb3plbi4KClRoaXMgY29tbWl0IGltcGxlbWVudHMgb24tYWNjZXNzIFZNIHNl dHRpbmcgZm9yIHNlcXVlbnRpYWwgc2NhbnMgYXMgd2VsbAphcyBmb3IgdGhlIHVuZGVybHlpbmcg aGVhcCByZWxhdGlvbiBpbiBpbmRleCBzY2FucyBhbmQgYml0bWFwIGhlYXAKc2NhbnMuCgpBdXRo b3I6IE1lbGFuaWUgUGxhZ2VtYW4gPG1lbGFuaWVwbGFnZW1hbkBnbWFpbC5jb20+ClJldmlld2Vk LWJ5OiBBbmRyZXMgRnJldW5kIDxhbmRyZXNAYW5hcmF6ZWwuZGU+ClJldmlld2VkLWJ5OiBLaXJp bGwgUmVzaGtlIDxyZXNoa2VraXJpbGxAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQ2hhbyBMaSA8 bGkuZXZhbi5jaGFvQGdtYWlsLmNvbT4KRGlzY3Vzc2lvbjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9m bGF0L0NBQUtSdV9aTXc2TnBkX3FtMktNJTJCRndRM2NNT014MURoM1ZNaHA4LVY3U09MeGRLOS1n JTQwbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYyAg ICAgICAgICAgICAgfCAgMyArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRs ZXIuYyAgICAgIHwgIDYgKystCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyAg ICAgICAgICAgfCA0NiArKysrKysrKysrKysrKy0tLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC92YWN1dW1sYXp5LmMgICAgICAgICAgfCAgMiArLQogc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBh bS5oICAgICAgICAgICAgICAgICAgIHwgMTIgKysrLS0KIC4uLi90LzAzNV9zdGFuZGJ5X2xvZ2lj YWxfZGVjb2RpbmcucGwgICAgICAgICB8ICAzICstCiA2IGZpbGVzIGNoYW5nZWQsIDUyIGluc2Vy dGlvbnMoKyksIDIwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9oZWFwL2hlYXBhbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKaW5kZXgg MDQ0ZjM4NWU0NzcuLmRiZGY2NTIxYzQyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC9oZWFwYW0uYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwpAQCAt NjMzLDcgKzYzMyw4IEBAIGhlYXBfcHJlcGFyZV9wYWdlc2NhbihUYWJsZVNjYW5EZXNjIHNzY2Fu KQogCS8qCiAJICogUHJ1bmUgYW5kIHJlcGFpciBmcmFnbWVudGF0aW9uIGZvciB0aGUgd2hvbGUg cGFnZSwgaWYgcG9zc2libGUuCiAJICovCi0JaGVhcF9wYWdlX3BydW5lX29wdChzY2FuLT5yc19i YXNlLnJzX3JkLCBidWZmZXIsICZzY2FuLT5yc192bWJ1ZmZlcik7CisJaGVhcF9wYWdlX3BydW5l X29wdChzY2FuLT5yc19iYXNlLnJzX3JkLCBidWZmZXIsICZzY2FuLT5yc192bWJ1ZmZlciwKKwkJ CQkJCShzc2Nhbi0+cnNfZmxhZ3MgJiBTT19ISU5UX1JFTF9SRUFEX09OTFkpKTsKIAogCS8qCiAJ ICogV2UgbXVzdCBob2xkIHNoYXJlIGxvY2sgb24gdGhlIGJ1ZmZlciBjb250ZW50IHdoaWxlIGV4 YW1pbmluZyB0dXBsZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFt X2hhbmRsZXIuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMKaW5k ZXggYWVjNTE5OWIyZTYuLjE3ZDYyNTk0NGU4IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC9oZWFwYW1faGFuZGxlci5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hl YXBhbV9oYW5kbGVyLmMKQEAgLTE0OCw3ICsxNDgsOCBAQCBoZWFwYW1faW5kZXhfZmV0Y2hfdHVw bGUoc3RydWN0IEluZGV4RmV0Y2hUYWJsZURhdGEgKnNjYW4sCiAJCSAqLwogCQlpZiAocHJldl9i dWYgIT0gaHNjYW4tPnhzX2NidWYpCiAJCQloZWFwX3BhZ2VfcHJ1bmVfb3B0KGhzY2FuLT54c19i YXNlLnJlbCwgaHNjYW4tPnhzX2NidWYsCi0JCQkJCQkJCSZoc2Nhbi0+eHNfdm1idWZmZXIpOwor CQkJCQkJCQkmaHNjYW4tPnhzX3ZtYnVmZmVyLAorCQkJCQkJCQkhaHNjYW4tPm1vZGlmaWVzX2Jh c2VfcmVsKTsKIAl9CiAKIAkvKiBPYnRhaW4gc2hhcmUtbG9jayBvbiB0aGUgYnVmZmVyIHNvIHdl IGNhbiBleGFtaW5lIHZpc2liaWxpdHkgKi8KQEAgLTI1NDMsNyArMjU0NCw4IEBAIEJpdG1hcEhl YXBTY2FuTmV4dEJsb2NrKFRhYmxlU2NhbkRlc2Mgc2NhbiwKIAkvKgogCSAqIFBydW5lIGFuZCBy ZXBhaXIgZnJhZ21lbnRhdGlvbiBmb3IgdGhlIHdob2xlIHBhZ2UsIGlmIHBvc3NpYmxlLgogCSAq LwotCWhlYXBfcGFnZV9wcnVuZV9vcHQoc2Nhbi0+cnNfcmQsIGJ1ZmZlciwgJmhzY2FuLT5yc192 bWJ1ZmZlcik7CisJaGVhcF9wYWdlX3BydW5lX29wdChzY2FuLT5yc19yZCwgYnVmZmVyLCAmaHNj YW4tPnJzX3ZtYnVmZmVyLAorCQkJCQkJc2Nhbi0+cnNfZmxhZ3MgJiBTT19ISU5UX1JFTF9SRUFE X09OTFkpOwogCiAJLyoKIAkgKiBXZSBtdXN0IGhvbGQgc2hhcmUgbG9jayBvbiB0aGUgYnVmZmVy IGNvbnRlbnQgd2hpbGUgZXhhbWluaW5nIHR1cGxlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVh cC5jCmluZGV4IGJhMDA1MjFkODM0Li40NDc1NDU3ZmRkZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv cHJ1bmVoZWFwLmMKQEAgLTQ0LDYgKzQ0LDggQEAgdHlwZWRlZiBzdHJ1Y3QKIAlib29sCQltYXJr X3VudXNlZF9ub3c7CiAJLyogd2hldGhlciB0byBhdHRlbXB0IGZyZWV6aW5nIHR1cGxlcyAqLwog CWJvb2wJCWF0dGVtcHRfZnJlZXplOworCS8qIHdoZXRoZXIgdG8gYXR0ZW1wdCBzZXR0aW5nIHRo ZSBWTSAqLworCWJvb2wJCWF0dGVtcHRfc2V0X3ZtOwogCXN0cnVjdCBWYWN1dW1DdXRvZmZzICpj dXRvZmZzOwogCVJlbGF0aW9uCXJlbGF0aW9uOwogCkBAIC0yMTksNyArMjIxLDggQEAgc3RhdGlj IHZvaWQgcGFnZV92ZXJpZnlfcmVkaXJlY3RzKFBhZ2UgcGFnZSk7CiAKIHN0YXRpYyBib29sIGhl YXBfcGFnZV93aWxsX2ZyZWV6ZShib29sIGRpZF90dXBsZV9oaW50X2ZwaSwgYm9vbCBkb19wcnVu ZSwgYm9vbCBkb19oaW50X3BydW5lLAogCQkJCQkJCQkgIFBydW5lU3RhdGUgKnByc3RhdGUpOwot c3RhdGljIGJvb2wgaGVhcF9wYWdlX3dpbGxfc2V0X3ZtKFBydW5lU3RhdGUgKnByc3RhdGUsIFBy dW5lUmVhc29uIHJlYXNvbik7CitzdGF0aWMgYm9vbCBoZWFwX3BhZ2Vfd2lsbF9zZXRfdm0oUHJ1 bmVTdGF0ZSAqcHJzdGF0ZSwgUHJ1bmVSZWFzb24gcmVhc29uLAorCQkJCQkJCQkgIGJvb2wgZG9f cHJ1bmUsIGJvb2wgZG9fZnJlZXplKTsKIAogLyoKICAqIE9wdGlvbmFsbHkgcHJ1bmUgYW5kIHJl cGFpciBmcmFnbWVudGF0aW9uIGluIHRoZSBzcGVjaWZpZWQgcGFnZS4KQEAgLTIzOSw3ICsyNDIs OCBAQCBzdGF0aWMgYm9vbCBoZWFwX3BhZ2Vfd2lsbF9zZXRfdm0oUHJ1bmVTdGF0ZSAqcHJzdGF0 ZSwgUHJ1bmVSZWFzb24gcmVhc29uKTsKICAqIHVucGlubmluZyAqdm1idWZmZXIuCiAgKi8KIHZv aWQKLWhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIs IEJ1ZmZlciAqdm1idWZmZXIpCitoZWFwX3BhZ2VfcHJ1bmVfb3B0KFJlbGF0aW9uIHJlbGF0aW9u LCBCdWZmZXIgYnVmZmVyLCBCdWZmZXIgKnZtYnVmZmVyLAorCQkJCQlib29sIHJlbF9yZWFkX29u bHkpCiB7CiAJUGFnZQkJcGFnZSA9IEJ1ZmZlckdldFBhZ2UoYnVmZmVyKTsKIAlUcmFuc2FjdGlv bklkIHBydW5lX3hpZDsKQEAgLTMyMSw2ICszMjUsOCBAQCBoZWFwX3BhZ2VfcHJ1bmVfb3B0KFJl bGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLCBCdWZmZXIgKnZtYnVmZmVyKQogCQkJICog Y3VycmVudCBpbXBsZW1lbnRhdGlvbi4KIAkJCSAqLwogCQkJcGFyYW1zLm9wdGlvbnMgPSBIRUFQ X1BBR0VfUFJVTkVfQUxMT1dfRkFTVF9QQVRIOworCQkJaWYgKHJlbF9yZWFkX29ubHkpCisJCQkJ cGFyYW1zLm9wdGlvbnMgfD0gSEVBUF9QQUdFX1BSVU5FX1NFVF9WTTsKIAogCQkJaGVhcF9wYWdl X3BydW5lX2FuZF9mcmVlemUoJnBhcmFtcywgJnByZXN1bHQsICZkdW1teV9vZmZfbG9jLAogCQkJ CQkJCQkJICAgTlVMTCwgTlVMTCk7CkBAIC0zNzcsNiArMzgzLDcgQEAgcHJ1bmVfZnJlZXplX3Nl dHVwKFBydW5lRnJlZXplUGFyYW1zICpwYXJhbXMsCiAJLyogY3V0b2ZmcyBtdXN0IGJlIHByb3Zp ZGVkIGlmIHdlIHdpbGwgYXR0ZW1wdCBmcmVlemluZyAqLwogCUFzc2VydCghKHBhcmFtcy0+b3B0 aW9ucyAmIEhFQVBfUEFHRV9QUlVORV9GUkVFWkUpIHx8IHBhcmFtcy0+Y3V0b2Zmcyk7CiAJcHJz dGF0ZS0+YXR0ZW1wdF9mcmVlemUgPSAocGFyYW1zLT5vcHRpb25zICYgSEVBUF9QQUdFX1BSVU5F X0ZSRUVaRSkgIT0gMDsKKwlwcnN0YXRlLT5hdHRlbXB0X3NldF92bSA9IChwYXJhbXMtPm9wdGlv bnMgJiBIRUFQX1BBR0VfUFJVTkVfU0VUX1ZNKSAhPSAwOwogCXByc3RhdGUtPmN1dG9mZnMgPSBw YXJhbXMtPmN1dG9mZnM7CiAJcHJzdGF0ZS0+cmVsYXRpb24gPSBwYXJhbXMtPnJlbGF0aW9uOwog CXByc3RhdGUtPmJsb2NrID0gQnVmZmVyR2V0QmxvY2tOdW1iZXIocGFyYW1zLT5idWZmZXIpOwpA QCAtNDU2LDkgKzQ2Myw4IEBAIHBydW5lX2ZyZWV6ZV9zZXR1cChQcnVuZUZyZWV6ZVBhcmFtcyAq cGFyYW1zLAogCSAqIFdlIHRyYWNrIHdoZXRoZXIgdGhlIHBhZ2Ugd2lsbCBiZSBhbGwtdmlzaWJs ZS9hbGwtZnJvemVuIGF0IHRoZSBlbmQgb2YKIAkgKiBwcnVuaW5nIGFuZCBmcmVlemluZy4gV2hp bGUgZXhhbWluaW5nIHR1cGxlIHZpc2liaWxpdHksIHdlJ2xsIHNldAogCSAqIHNldF9hbGxfdmlz aWJsZSB0byBmYWxzZSBpZiB0aGVyZSBhcmUgdHVwbGVzIG9uIHRoZSBwYWdlIG5vdCB2aXNpYmxl IHRvCi0JICogYWxsIHJ1bm5pbmcgYW5kIGZ1dHVyZSB0cmFuc2FjdGlvbnMuIHNldF9hbGxfdmlz aWJsZSBpcyBhbHdheXMKLQkgKiBtYWludGFpbmVkIGJ1dCBvbmx5IFZBQ1VVTSB3aWxsIHNldCB0 aGUgVk0gaWYgdGhlIHBhZ2UgZW5kcyB1cCBiZWluZwotCSAqIGFsbC12aXNpYmxlLgorCSAqIGFs bCBydW5uaW5nIGFuZCBmdXR1cmUgdHJhbnNhY3Rpb25zLiBJZiBlbmFibGVkIGZvciB0aGlzIHNj YW4sIHdlIHdpbGwKKwkgKiBzZXQgdGhlIFZNIGlmIHRoZSBwYWdlIGVuZHMgdXAgYmVpbmcgYWxs LXZpc2libGUuCiAJICoKIAkgKiBXZSBhbHNvIGtlZXAgdHJhY2sgb2YgdGhlIG5ld2VzdCBsaXZl IFhJRCwgd2hpY2ggaXMgdXNlZCB0byBjYWxjdWxhdGUKIAkgKiB0aGUgc25hcHNob3QgY29uZmxp Y3QgaG9yaXpvbiBmb3IgYSBXQUwgcmVjb3JkIHNldHRpbmcgdGhlIFZNLgpAQCAtODg5LDIxICs4 OTUsMzcgQEAgaGVhcF9maXhfdm1fY29ycnVwdGlvbihQcnVuZVN0YXRlICpwcnN0YXRlLCBPZmZz ZXROdW1iZXIgb2ZmbnVtKQogICogVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBhY3R1YWxseSBzZXQg dGhlIFZNIGJpdHMgb3IgcGFnZS1sZXZlbCB2aXNpYmlsaXR5CiAgKiBoaW50LCBQRF9BTExfVklT SUJMRS4KICAqCisgKiBUaGlzIHNob3VsZCBiZSBjYWxsZWQgb25seSBhZnRlciBkb19mcmVlemUg aGFzIGJlZW4gZGVjaWRlZCAoYW5kIGRvX3BydW5lCisgKiBoYXMgYmVlbiBzZXQpLCBhcyB0aGVz ZSBmYWN0b3IgaW50byBvdXIgaGV1cmlzdGljLWJhc2VkIGRlY2lzaW9uLgorICoKICAqIFJldHVy bnMgdHJ1ZSBpZiBvbmUgb3IgYm90aCBWTSBiaXRzIHNob3VsZCBiZSBzZXQgYW5kIGZhbHNlIG90 aGVyd2lzZS4KICAqLwogc3RhdGljIGJvb2wKLWhlYXBfcGFnZV93aWxsX3NldF92bShQcnVuZVN0 YXRlICpwcnN0YXRlLCBQcnVuZVJlYXNvbiByZWFzb24pCitoZWFwX3BhZ2Vfd2lsbF9zZXRfdm0o UHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgUHJ1bmVSZWFzb24gcmVhc29uLAorCQkJCQkgIGJvb2wgZG9f cHJ1bmUsIGJvb2wgZG9fZnJlZXplKQogewotCS8qCi0JICogVGhvdWdoIG9uLWFjY2VzcyBwcnVu aW5nIG1haW50YWlucyBwcnN0YXRlLT5zZXRfYWxsX3Zpc2libGUsIHdlIGRvbid0Ci0JICogY29u c2lkZXIgc2V0dGluZyB0aGUgVk0uCi0JICovCi0JaWYgKHJlYXNvbiA9PSBQUlVORV9PTl9BQ0NF U1MpCisJaWYgKCFwcnN0YXRlLT5hdHRlbXB0X3NldF92bSkKIAkJcmV0dXJuIGZhbHNlOwogCiAJ aWYgKCFwcnN0YXRlLT5zZXRfYWxsX3Zpc2libGUpCiAJCXJldHVybiBmYWxzZTsKIAorCS8qCisJ ICogSWYgdGhpcyBpcyBhbiBvbi1hY2Nlc3MgY2FsbCBhbmQgd2UncmUgbm90IGFjdHVhbGx5IHBy dW5pbmcsIGF2b2lkCisJICogc2V0dGluZyB0aGUgdmlzaWJpbGl0eSBtYXAgaWYgaXQgd291bGQg bmV3bHkgZGlydHkgdGhlIGhlYXAgcGFnZSBvciwgaWYKKwkgKiB0aGUgcGFnZSBpcyBhbHJlYWR5 IGRpcnR5LCBpZiBkb2luZyBzbyB3b3VsZCByZXF1aXJlIGluY2x1ZGluZyBhCisJICogZnVsbC1w YWdlIGltYWdlIChGUEkpIG9mIHRoZSBoZWFwIHBhZ2UgaW4gdGhlIFdBTC4gVGhpcyBzaXR1YXRp b24KKwkgKiBzaG91bGQgYmUgcmFyZSwgYXMgb24tYWNjZXNzIHBydW5pbmcgaXMgb25seSBhdHRl bXB0ZWQgd2hlbgorCSAqIHBkX3BydW5lX3hpZCBpcyB2YWxpZC4KKwkgKi8KKwlpZiAocmVhc29u ID09IFBSVU5FX09OX0FDQ0VTUyAmJiAhZG9fcHJ1bmUgJiYgIWRvX2ZyZWV6ZSAmJgorCQkoIUJ1 ZmZlcklzRGlydHkocHJzdGF0ZS0+YnVmZmVyKSB8fCBYTG9nQ2hlY2tCdWZmZXJOZWVkc0JhY2t1 cChwcnN0YXRlLT5idWZmZXIpKSkKKwl7CisJCXByc3RhdGUtPnNldF9hbGxfdmlzaWJsZSA9IGZh bHNlOworCQlwcnN0YXRlLT5zZXRfYWxsX2Zyb3plbiA9IGZhbHNlOworCQlyZXR1cm4gZmFsc2U7 CisJfQorCiAJcHJzdGF0ZS0+bmV3X3ZtYml0cyA9IFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEU7 CiAKIAlpZiAocHJzdGF0ZS0+c2V0X2FsbF9mcm96ZW4pCkBAIC0xMTE4LDcgKzExNDAsNyBAQCBo ZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShQcnVuZUZyZWV6ZVBhcmFtcyAqcGFyYW1zLAogCUFz c2VydCghcHJzdGF0ZS5zZXRfYWxsX2Zyb3plbiB8fCBwcnN0YXRlLnNldF9hbGxfdmlzaWJsZSk7 CiAJQXNzZXJ0KCFwcnN0YXRlLnNldF9hbGxfdmlzaWJsZSB8fCAocHJzdGF0ZS5scGRlYWRfaXRl bXMgPT0gMCkpOwogCi0JZG9fc2V0X3ZtID0gaGVhcF9wYWdlX3dpbGxfc2V0X3ZtKCZwcnN0YXRl LCBwYXJhbXMtPnJlYXNvbik7CisJZG9fc2V0X3ZtID0gaGVhcF9wYWdlX3dpbGxfc2V0X3ZtKCZw cnN0YXRlLCBwYXJhbXMtPnJlYXNvbiwgZG9fcHJ1bmUsIGRvX2ZyZWV6ZSk7CiAKIAkvKgogCSAq IG5ld192bWJpdHMgc2hvdWxkIGJlIDAgcmVnYXJkbGVzcyBvZiB3aGV0aGVyIG9yIG5vdCB0aGUg cGFnZSBpcwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5j IGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmluZGV4IDkzYTQ0MzdmMjli Li4xZGRkMzFjN2VhZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVt bGF6eS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpAQCAtMjAw OCw3ICsyMDA4LDcgQEAgbGF6eV9zY2FuX3BydW5lKExWUmVsU3RhdGUgKnZhY3JlbCwKIAkJLmJ1 ZmZlciA9IGJ1ZiwKIAkJLnZtYnVmZmVyID0gdm1idWZmZXIsCiAJCS5yZWFzb24gPSBQUlVORV9W QUNVVU1fU0NBTiwKLQkJLm9wdGlvbnMgPSBIRUFQX1BBR0VfUFJVTkVfRlJFRVpFLAorCQkub3B0 aW9ucyA9IEhFQVBfUEFHRV9QUlVORV9GUkVFWkUgfCBIRUFQX1BBR0VfUFJVTkVfU0VUX1ZNLAog CQkudmlzdGVzdCA9IHZhY3JlbC0+dmlzdGVzdCwKIAkJLmN1dG9mZnMgPSAmdmFjcmVsLT5jdXRv ZmZzLAogCX07CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmggYi9zcmMv aW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKaW5kZXggMWE3MzA2ZTI5MzUuLmU5NjE3YjFlNjY2IDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKKysrIGIvc3JjL2luY2x1ZGUv YWNjZXNzL2hlYXBhbS5oCkBAIC00Myw2ICs0Myw3IEBACiAjZGVmaW5lIEhFQVBfUEFHRV9QUlVO RV9NQVJLX1VOVVNFRF9OT1cJCSgxIDw8IDApCiAjZGVmaW5lIEhFQVBfUEFHRV9QUlVORV9GUkVF WkUJCQkJKDEgPDwgMSkKICNkZWZpbmUgSEVBUF9QQUdFX1BSVU5FX0FMTE9XX0ZBU1RfUEFUSAkJ KDEgPDwgMikKKyNkZWZpbmUgSEVBUF9QQUdFX1BSVU5FX1NFVF9WTQkJCQkoMSA8PCAzKQogCiB0 eXBlZGVmIHN0cnVjdCBCdWxrSW5zZXJ0U3RhdGVEYXRhICpCdWxrSW5zZXJ0U3RhdGU7CiB0eXBl ZGVmIHN0cnVjdCBHbG9iYWxWaXNTdGF0ZSBHbG9iYWxWaXNTdGF0ZTsKQEAgLTk4LDcgKzk5LDgg QEAgdHlwZWRlZiBzdHJ1Y3QgSGVhcFNjYW5EZXNjRGF0YQogCS8qCiAJICogRm9yIHNlcXVlbnRp YWwgc2NhbnMsIGJpdG1hcCBoZWFwIHNjYW5zLCBUSUQgcmFuZ2Ugc2NhbnMsIGFuZCBzYW1wbGUK IAkgKiBzY2Fucy4gVGhlIGN1cnJlbnQgaGVhcCBibG9jaydzIGNvcnJlc3BvbmRpbmcgcGFnZSBp biB0aGUgdmlzaWJpbGl0eQotCSAqIG1hcC4KKwkgKiBtYXAuIElmIHRoZSByZWxhdGlvbiBpcyBu b3QgbW9kaWZpZWQgYnkgdGhlIHF1ZXJ5LCBvbi1hY2Nlc3MgcHJ1bmluZworCSAqIG1heSBzZXQg dGhlIFZNLgogCSAqLwogCUJ1ZmZlcgkJcnNfdm1idWZmZXI7CiAKQEAgLTEzMCw3ICsxMzIsMTEg QEAgdHlwZWRlZiBzdHJ1Y3QgSW5kZXhGZXRjaEhlYXBEYXRhCiAJICovCiAJQnVmZmVyCQl4c19j YnVmOwogCi0JLyogQ3VycmVudCBoZWFwIGJsb2NrJ3MgY29ycmVzcG9uZGluZyBwYWdlIGluIHRo ZSB2aXNpYmlsaXR5IG1hcCAqLworCS8qCisJICogQ3VycmVudCBoZWFwIGJsb2NrJ3MgY29ycmVz cG9uZGluZyBwYWdlIGluIHRoZSB2aXNpYmlsaXR5IG1hcC4gRm9yCisJICogaW5kZXggc2NhbnMg dGhhdCBkbyBub3QgbW9kaWZ5IHRoZSB1bmRlcmx5aW5nIGhlYXAgdGFibGUsIG9uLWFjY2Vzcwor CSAqIHBydW5pbmcgbWF5IHNldCB0aGUgVk0gb24tYWNjZXNzLgorCSAqLwogCUJ1ZmZlcgkJeHNf dm1idWZmZXI7CiAKIAkvKgpAQCAtNDQxLDcgKzQ0Nyw3IEBAIGV4dGVybiBUcmFuc2FjdGlvbklk IGhlYXBfaW5kZXhfZGVsZXRlX3R1cGxlcyhSZWxhdGlvbiByZWwsCiAKIC8qIGluIGhlYXAvcHJ1 bmVoZWFwLmMgKi8KIGV4dGVybiB2b2lkIGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVs YXRpb24sIEJ1ZmZlciBidWZmZXIsCi0JCQkJCQkJCUJ1ZmZlciAqdm1idWZmZXIpOworCQkJCQkJ CQlCdWZmZXIgKnZtYnVmZmVyLCBib29sIHJlbF9yZWFkX29ubHkpOwogZXh0ZXJuIHZvaWQgaGVh cF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUHJ1bmVGcmVlemVQYXJhbXMgKnBhcmFtcywKIAkJCQkJ CQkJCSAgIFBydW5lRnJlZXplUmVzdWx0ICpwcmVzdWx0LAogCQkJCQkJCQkJICAgT2Zmc2V0TnVt YmVyICpvZmZfbG9jLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMzVfc3RhbmRi eV9sb2dpY2FsX2RlY29kaW5nLnBsIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMzVfc3RhbmRieV9s b2dpY2FsX2RlY29kaW5nLnBsCmluZGV4IGQyNjRhNjk4ZmY2Li5hNTUzNmJhNGZmNiAxMDA2NDQK LS0tIGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMzVfc3RhbmRieV9sb2dpY2FsX2RlY29kaW5nLnBs CisrKyBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDM1X3N0YW5kYnlfbG9naWNhbF9kZWNvZGluZy5w bApAQCAtMjk2LDYgKzI5Niw3IEBAIHdhbF9sZXZlbCA9ICdsb2dpY2FsJwogbWF4X3JlcGxpY2F0 aW9uX3Nsb3RzID0gNAogbWF4X3dhbF9zZW5kZXJzID0gNAogYXV0b3ZhY3V1bSA9IG9mZgoraG90 X3N0YW5kYnlfZmVlZGJhY2sgPSBvbgogfSk7CiAkbm9kZV9wcmltYXJ5LT5kdW1wX2luZm87CiAk bm9kZV9wcmltYXJ5LT5zdGFydDsKQEAgLTc0OCw3ICs3NDksNyBAQCBjaGVja19wZ19yZWN2bG9n aWNhbF9zdGRlcnIoJGhhbmRsZSwKICRsb2dzdGFydCA9IC1zICRub2RlX3N0YW5kYnktPmxvZ2Zp bGU7CiAKIHJlYWN0aXZlX3Nsb3RzX2NoYW5nZV9oZnNfYW5kX3dhaXRfZm9yX3htaW5zKCdzaGFy ZWRfcm93X3JlbW92YWxfJywKLQknbm9fY29uZmxpY3RfJywgMCwgMSk7CisJJ25vX2NvbmZsaWN0 XycsIDEsIDApOwogCiAjIFRoaXMgc2hvdWxkIG5vdCB0cmlnZ2VyIGEgY29uZmxpY3QKIHdhaXRf dW50aWxfdmFjdXVtX2Nhbl9yZW1vdmUoCi0tIAoyLjQzLjAKCg== --0000000000002365dc064d39709f Content-Type: text/x-patch; charset="UTF-8"; name="v40-0012-Set-pd_prune_xid-on-insert.patch" Content-Disposition: attachment; filename="v40-0012-Set-pd_prune_xid-on-insert.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mmuprfsj11 RnJvbSBlNGM3MTEyZDQ5ZTY1MGY1OWRhYjgzNGQzZGI2MDA3YzY5ZjM0ZjFhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1bCAyMDI1IDE2OjEyOjU2IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2NDAgMTIvMTJdIFNldCBwZF9wcnVuZV94aWQgb24gaW5zZXJ0Ck1JTUUtVmVyc2lvbjog MS4wCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5z ZmVyLUVuY29kaW5nOiA4Yml0CgpOb3cgdGhhdCB2aXNpYmlsaXR5IG1hcCAoVk0pIHVwZGF0ZXMg Y2FuIG9jY3VyIGR1cmluZyByZWFkLW9ubHkgcXVlcmllcywKaXQgbWFrZXMgc2Vuc2UgdG8gYWxz byBzZXQgdGhlIHBhZ2XigJlzIHBkX3BydW5lX3hpZCBoaW50IGR1cmluZyBpbnNlcnRzCmFuZCBv biB0aGUgbmV3IHBhZ2UgZHVyaW5nIHVwZGF0ZXMuCgpUaGlzIGVuYWJsZXMgaGVhcF9wYWdlX3By dW5lX2FuZF9mcmVlemUoKSB0byBydW4gYW5kIHNldCB0aGUgVk0KYWxsLXZpc2libGUgYWZ0ZXIg YSBwYWdlIGlzIGZpbGxlZCB3aXRoIG5ld2x5IGluc2VydGVkIHR1cGxlcyB0aGUgZmlyc3QKdGlt ZSBpdCBpcyByZWFkLgoKVGhpcyBjaGFuZ2UgYWxzbyBhZGRyZXNzZXMgYSBsb25nLXN0YW5kaW5n IG5vdGUgaW4gaGVhcF9pbnNlcnQoKSBhbmQKaGVhcF9tdWx0aV9pbnNlcnQoKSwgd2hpY2ggb2Jz ZXJ2ZWQgdGhhdCBzZXR0aW5nIHBkX3BydW5lX3hpZCB3b3VsZApoZWxwIGNsZWFuIHVwIGFib3J0 ZWQgaW5zZXJ0aW9ucyBzb29uZXIuIFdpdGhvdXQgaXQsIHN1Y2ggdHVwbGVzIG1pZ2h0Cmxpbmdl ciB1bnRpbCBWQUNVVU0sIHdoZXJlYXMgbm93IHRoZXkgY2FuIGJlIHBydW5lZCBlYXJsaWVyLgoK VGhlIGluZGV4IGtpbGx0dXBsZXMgdGVzdCBoYWQgdG8gYmUgdXBkYXRlZCB0byByZWZsZWN0IGEg bGFyZ2VyIG51bWJlcgpvZiBoaXRzIGJ5IHNvbWUgYWNjZXNzZXMuIFNpbmNlIHRoZSBwcnVuZV94 aWQgaXMgc2V0IGJ5IHRoZSBmaWxsL2luc2VydApzdGVwLCBvbi1hY2Nlc3MgcHJ1bmluZyBjYW4g aGFwcGVuIGR1cmluZyB0aGUgZmlyc3QgYWNjZXNzIHN0ZXAgKGJlZm9yZQp0aGUgREVMRVRFKS4g VGhpcyBpcyB3aGVuIHRoZSBWTSBpcyBleHRlbmRlZC4gQWZ0ZXIgdGhlIERFTEVURSwgdGhlIG5l eHQKYWNjZXNzIGhpdHMgdGhlIFZNIGJsb2NrIGluc3RlYWQgb2YgZXh0ZW5kaW5nIGl0LiBUaHVz LCBhbiBhZGRpdGlvbmFsCmJ1ZmZlciBoaXQgaXMgY291bnRlZCBmb3IgdGhlIHRhYmxlLgoKQXV0 aG9yOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21haWwuY29tPgpSZXZpZXdl ZC1ieTogQ2hhbyBMaSA8bGkuZXZhbi5jaGFvQGdtYWlsLmNvbT4KRGlzY3Vzc2lvbjogaHR0cHM6 Ly9wb3N0Z3IuZXMvbS9mbGF0L0NBQUtSdV9aTXc2TnBkX3FtMktNJTJCRndRM2NNT014MURoM1ZN aHA4LVY3U09MeGRLOS1nJTQwbWFpbC5nbWFpbC5jb20KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC9oZWFwYW0uYyAgICAgICAgICAgICAgfCA0MCArKysrKysrKysrKystLS0tLS0tCiBzcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jICAgICAgICAgfCAxOSArKysrKysrKy0K IHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jICAgICAgICAgICB8IDE3ICsrKyst LS0tCiAuLi4vbW9kdWxlcy9pbmRleC9leHBlY3RlZC9raWxsdHVwbGVzLm91dCAgICAgfCAgOCAr Ky0tCiA0IGZpbGVzIGNoYW5nZWQsIDU2IGluc2VydGlvbnMoKyksIDI4IGRlbGV0aW9ucygtKQoK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKaW5kZXggZGJkZjY1MjFjNDIuLmMxOTk2NDZiMjVkIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYworKysgYi9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW0uYwpAQCAtMjE1Niw2ICsyMTU2LDcgQEAgaGVhcF9pbnNl cnQoUmVsYXRpb24gcmVsYXRpb24sIEhlYXBUdXBsZSB0dXAsIENvbW1hbmRJZCBjaWQsCiAJVHJh bnNhY3Rpb25JZCB4aWQgPSBHZXRDdXJyZW50VHJhbnNhY3Rpb25JZCgpOwogCUhlYXBUdXBsZQlo ZWFwdHVwOwogCUJ1ZmZlcgkJYnVmZmVyOworCVBhZ2UJCXBhZ2U7CiAJQnVmZmVyCQl2bWJ1ZmZl ciA9IEludmFsaWRCdWZmZXI7CiAJYm9vbAkJYWxsX3Zpc2libGVfY2xlYXJlZCA9IGZhbHNlOwog CkBAIC0yMTgyLDYgKzIxODMsOCBAQCBoZWFwX2luc2VydChSZWxhdGlvbiByZWxhdGlvbiwgSGVh cFR1cGxlIHR1cCwgQ29tbWFuZElkIGNpZCwKIAkJCQkJCQkJCSAgICZ2bWJ1ZmZlciwgTlVMTCwK IAkJCQkJCQkJCSAgIDApOwogCisJcGFnZSA9IEJ1ZmZlckdldFBhZ2UoYnVmZmVyKTsKKwogCS8q CiAJICogV2UncmUgYWJvdXQgdG8gZG8gdGhlIGFjdHVhbCBpbnNlcnQgLS0gYnV0IGNoZWNrIGZv ciBjb25mbGljdCBmaXJzdCwgdG8KIAkgKiBhdm9pZCBwb3NzaWJseSBoYXZpbmcgdG8gcm9sbCBi YWNrIHdvcmsgd2UndmUganVzdCBkb25lLgpAQCAtMjIwNSwyNSArMjIwOCwzMCBAQCBoZWFwX2lu c2VydChSZWxhdGlvbiByZWxhdGlvbiwgSGVhcFR1cGxlIHR1cCwgQ29tbWFuZElkIGNpZCwKIAlS ZWxhdGlvblB1dEhlYXBUdXBsZShyZWxhdGlvbiwgYnVmZmVyLCBoZWFwdHVwLAogCQkJCQkJIChv cHRpb25zICYgSEVBUF9JTlNFUlRfU1BFQ1VMQVRJVkUpICE9IDApOwogCi0JaWYgKFBhZ2VJc0Fs bFZpc2libGUoQnVmZmVyR2V0UGFnZShidWZmZXIpKSkKKwlpZiAoUGFnZUlzQWxsVmlzaWJsZShw YWdlKSkKIAl7CiAJCWFsbF92aXNpYmxlX2NsZWFyZWQgPSB0cnVlOwotCQlQYWdlQ2xlYXJBbGxW aXNpYmxlKEJ1ZmZlckdldFBhZ2UoYnVmZmVyKSk7CisJCVBhZ2VDbGVhckFsbFZpc2libGUocGFn ZSk7CiAJCXZpc2liaWxpdHltYXBfY2xlYXIocmVsYXRpb24sCiAJCQkJCQkJSXRlbVBvaW50ZXJH ZXRCbG9ja051bWJlcigmKGhlYXB0dXAtPnRfc2VsZikpLAogCQkJCQkJCXZtYnVmZmVyLCBWSVNJ QklMSVRZTUFQX1ZBTElEX0JJVFMpOwogCX0KIAogCS8qCi0JICogWFhYIFNob3VsZCB3ZSBzZXQg UGFnZVNldFBydW5hYmxlIG9uIHRoaXMgcGFnZSA/CisJICogU2V0IHBkX3BydW5lX3hpZCB0byB0 cmlnZ2VyIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKCkgb25jZSB0aGUgcGFnZQorCSAqIGlz IGZ1bGwgc28gdGhhdCB3ZSBjYW4gc2V0IHRoZSBwYWdlIGFsbC12aXNpYmxlIGluIHRoZSBWTSBv biB0aGUgbmV4dAorCSAqIHBhZ2UgYWNjZXNzLgogCSAqCi0JICogVGhlIGluc2VydGluZyB0cmFu c2FjdGlvbiBtYXkgZXZlbnR1YWxseSBhYm9ydCB0aHVzIG1ha2luZyB0aGlzIHR1cGxlCi0JICog REVBRCBhbmQgaGVuY2UgYXZhaWxhYmxlIGZvciBwcnVuaW5nLiBUaG91Z2ggd2UgZG9uJ3Qgd2Fu dCB0byBvcHRpbWl6ZQotCSAqIGZvciBhYm9ydHMsIGlmIG5vIG90aGVyIHR1cGxlIGluIHRoaXMg cGFnZSBpcyBVUERBVEVkL0RFTEVURWQsIHRoZQotCSAqIGFib3J0ZWQgdHVwbGUgd2lsbCBuZXZl ciBiZSBwcnVuZWQgdW50aWwgbmV4dCB2YWN1dW0gaXMgdHJpZ2dlcmVkLgorCSAqIFNldHRpbmcg cGRfcHJ1bmVfeGlkIGlzIGFsc28gaGFuZHkgaWYgdGhlIGluc2VydGluZyB0cmFuc2FjdGlvbgor CSAqIGV2ZW50dWFsbHkgYWJvcnRzIG1ha2luZyB0aGlzIHR1cGxlIERFQUQgYW5kIGhlbmNlIGF2 YWlsYWJsZSBmb3IKKwkgKiBwcnVuaW5nLiBJZiBubyBvdGhlciB0dXBsZSBpbiB0aGlzIHBhZ2Ug aXMgVVBEQVRFZC9ERUxFVEVkLCB0aGUgYWJvcnRlZAorCSAqIHR1cGxlIHdvdWxkIG5ldmVyIG90 aGVyd2lzZSBiZSBwcnVuZWQgdW50aWwgbmV4dCB2YWN1dW0gaXMgdHJpZ2dlcmVkLgogCSAqCi0J ICogSWYgeW91IGRvIGFkZCBQYWdlU2V0UHJ1bmFibGUgaGVyZSwgYWRkIGl0IGluIGhlYXBfeGxv Z19pbnNlcnQgdG9vLgorCSAqIERvbid0IHNldCBpdCBpZiB3ZSBhcmUgaW4gYm9vdHN0cmFwIG1v ZGUgb3Igd2UgYXJlIGluc2VydGluZyBhIGZyb3plbgorCSAqIHR1cGxlLgogCSAqLworCWlmIChU cmFuc2FjdGlvbklkSXNOb3JtYWwoeGlkKSAmJiAhKG9wdGlvbnMgJiBIRUFQX0lOU0VSVF9GUk9a RU4pKQorCQlQYWdlU2V0UHJ1bmFibGUocGFnZSwgeGlkKTsKIAogCU1hcmtCdWZmZXJEaXJ0eShi dWZmZXIpOwogCkBAIC0yMjMzLDcgKzIyNDEsNiBAQCBoZWFwX2luc2VydChSZWxhdGlvbiByZWxh dGlvbiwgSGVhcFR1cGxlIHR1cCwgQ29tbWFuZElkIGNpZCwKIAkJeGxfaGVhcF9pbnNlcnQgeGxy ZWM7CiAJCXhsX2hlYXBfaGVhZGVyIHhsaGRyOwogCQlYTG9nUmVjUHRyCXJlY3B0cjsKLQkJUGFn ZQkJcGFnZSA9IEJ1ZmZlckdldFBhZ2UoYnVmZmVyKTsKIAkJdWludDgJCWluZm8gPSBYTE9HX0hF QVBfSU5TRVJUOwogCQlpbnQJCQlidWZmbGFncyA9IDA7CiAKQEAgLTI1OTgsOCArMjYwNSwxMyBA QCBoZWFwX211bHRpX2luc2VydChSZWxhdGlvbiByZWxhdGlvbiwgVHVwbGVUYWJsZVNsb3QgKipz bG90cywgaW50IG50dXBsZXMsCiAJCX0KIAogCQkvKgotCQkgKiBYWFggU2hvdWxkIHdlIHNldCBQ YWdlU2V0UHJ1bmFibGUgb24gdGhpcyBwYWdlID8gU2VlIGhlYXBfaW5zZXJ0KCkKKwkJICogU2V0 IHBkX3BydW5lX3hpZC4gU2VlIGhlYXBfaW5zZXJ0KCkgZm9yIG1vcmUgb24gd2h5IHdlIGRvIHRo aXMgd2hlbgorCQkgKiBpbnNlcnRpbmcgdHVwbGVzLiBUaGlzIG9ubHkgbWFrZXMgc2Vuc2UgaWYg d2UgYXJlbid0IGFscmVhZHkKKwkJICogc2V0dGluZyB0aGUgcGFnZSBmcm96ZW4gaW4gdGhlIFZN LiBXZSBhbHNvIGRvbid0IHNldCBpdCBpbgorCQkgKiBib290c3RyYXAgbW9kZS4KIAkJICovCisJ CWlmICghYWxsX2Zyb3plbl9zZXQgJiYgVHJhbnNhY3Rpb25JZElzTm9ybWFsKHhpZCkpCisJCQlQ YWdlU2V0UHJ1bmFibGUocGFnZSwgeGlkKTsKIAogCQlNYXJrQnVmZmVyRGlydHkoYnVmZmVyKTsK IApAQCAtNDE0MSwxMiArNDE1MywxMiBAQCBsMjoKIAkgKiB0aGUgc3Vic2VxdWVudCBwYWdlIHBy dW5pbmcgd2lsbCBiZSBhIG5vLW9wIGFuZCB0aGUgaGludCB3aWxsIGJlCiAJICogY2xlYXJlZC4K IAkgKgotCSAqIFhYWCBTaG91bGQgd2Ugc2V0IGhpbnQgb24gbmV3YnVmIGFzIHdlbGw/ICBJZiB0 aGUgdHJhbnNhY3Rpb24gYWJvcnRzLAotCSAqIHRoZXJlIHdvdWxkIGJlIGEgcHJ1bmFibGUgdHVw bGUgaW4gdGhlIG5ld2J1ZjsgYnV0IGZvciBub3cgd2UgY2hvb3NlCi0JICogbm90IHRvIG9wdGlt aXplIGZvciBhYm9ydHMuICBOb3RlIHRoYXQgaGVhcF94bG9nX3VwZGF0ZSBtdXN0IGJlIGtlcHQg aW4KLQkgKiBzeW5jIGlmIHRoaXMgZGVjaXNpb24gY2hhbmdlcy4KKwkgKiBXZSBzZXQgdGhlIG5l dyBwYWdlIHBydW5hYmxlIGFzIHdlbGwuIFNlZSBoZWFwX2luc2VydCgpIGZvciBtb3JlIG9uIHdo eQorCSAqIHdlIGRvIHRoaXMgd2hlbiBpbnNlcnRpbmcgdHVwbGVzLgogCSAqLwogCVBhZ2VTZXRQ cnVuYWJsZShwYWdlLCB4aWQpOworCWlmIChuZXdidWYgIT0gYnVmZmVyKQorCQlQYWdlU2V0UHJ1 bmFibGUobmV3cGFnZSwgeGlkKTsKIAogCWlmICh1c2VfaG90X3VwZGF0ZSkKIAl7CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1feGxvZy5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwppbmRleCAxMzAyYmIxM2UxOC4uZjNmNDE5ZDNkYzEg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV94bG9nLmMKKysrIGIv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3hsb2cuYwpAQCAtNDUwLDYgKzQ1MCwxNCBA QCBoZWFwX3hsb2dfaW5zZXJ0KFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCiAJCWZyZWVzcGFj ZSA9IFBhZ2VHZXRIZWFwRnJlZVNwYWNlKHBhZ2UpOyAvKiBuZWVkZWQgdG8gdXBkYXRlIEZTTSBi ZWxvdyAqLwogCisJCS8qCisJCSAqIFNldCB0aGUgcGFnZSBwcnVuYWJsZSB0byB0cmlnZ2VyIG9u LWFjY2VzcyBwcnVuaW5nIGxhdGVyLCB3aGljaCBtYXkKKwkJICogc2V0IHRoZSBwYWdlIGFsbC12 aXNpYmxlIGluIHRoZSBWTS4gU2VlIGNvbW1lbnRzIGluIGhlYXBfaW5zZXJ0KCkuCisJCSAqLwor CQlpZiAoVHJhbnNhY3Rpb25JZElzTm9ybWFsKFhMb2dSZWNHZXRYaWQocmVjb3JkKSkgJiYKKwkJ CSFIZWFwVHVwbGVIZWFkZXJYbWluRnJvemVuKGh0dXApKQorCQkJUGFnZVNldFBydW5hYmxlKHBh Z2UsIFhMb2dSZWNHZXRYaWQocmVjb3JkKSk7CisKIAkJUGFnZVNldExTTihwYWdlLCBsc24pOwog CiAJCWlmICh4bHJlYy0+ZmxhZ3MgJiBYTEhfSU5TRVJUX0FMTF9WSVNJQkxFX0NMRUFSRUQpCkBA IC01OTksMTIgKzYwNywxOSBAQCBoZWFwX3hsb2dfbXVsdGlfaW5zZXJ0KFhMb2dSZWFkZXJTdGF0 ZSAqcmVjb3JkKQogCQlpZiAoeGxyZWMtPmZsYWdzICYgWExIX0lOU0VSVF9BTExfVklTSUJMRV9D TEVBUkVEKQogCQkJUGFnZUNsZWFyQWxsVmlzaWJsZShwYWdlKTsKIAotCQkvKiBYTEhfSU5TRVJU X0FMTF9GUk9aRU5fU0VUIGltcGxpZXMgdGhhdCBhbGwgdHVwbGVzIGFyZSB2aXNpYmxlICovCisJ CS8qCisJCSAqIFhMSF9JTlNFUlRfQUxMX0ZST1pFTl9TRVQgaW1wbGllcyB0aGF0IGFsbCB0dXBs ZXMgYXJlIHZpc2libGUuIElmCisJCSAqIHdlIGFyZSBub3Qgc2V0dGluZyB0aGUgcGFnZSBmcm96 ZW4sIHRoZW4gc2V0IHRoZSBwYWdlJ3MgcHJ1bmFibGUKKwkJICogaGludCBzbyB0aGF0IHdlIHRy aWdnZXIgb24tYWNjZXNzIHBydW5pbmcgbGF0ZXIgd2hpY2ggbWF5IHNldCB0aGUKKwkJICogcGFn ZSBhbGwtdmlzaWJsZSBpbiB0aGUgVk0uCisJCSAqLwogCQlpZiAoeGxyZWMtPmZsYWdzICYgWExI X0lOU0VSVF9BTExfRlJPWkVOX1NFVCkKIAkJewogCQkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7 CiAJCQlQYWdlQ2xlYXJQcnVuYWJsZShwYWdlKTsKIAkJfQorCQllbHNlCisJCQlQYWdlU2V0UHJ1 bmFibGUocGFnZSwgWExvZ1JlY0dldFhpZChyZWNvcmQpKTsKIAogCQlNYXJrQnVmZmVyRGlydHko YnVmZmVyKTsKIAl9CkBAIC05MjEsNiArOTM2LDggQEAgaGVhcF94bG9nX3VwZGF0ZShYTG9nUmVh ZGVyU3RhdGUgKnJlY29yZCwgYm9vbCBob3RfdXBkYXRlKQogCQlmcmVlc3BhY2UgPSBQYWdlR2V0 SGVhcEZyZWVTcGFjZShucGFnZSk7CiAKIAkJUGFnZVNldExTTihucGFnZSwgbHNuKTsKKwkJLyog U2VlIGhlYXBfaW5zZXJ0KCkgZm9yIHdoeSB3ZSBzZXQgcGRfcHJ1bmVfeGlkIG9uIGluc2VydCAq LworCQlQYWdlU2V0UHJ1bmFibGUobnBhZ2UsIFhMb2dSZWNHZXRYaWQocmVjb3JkKSk7CiAJCU1h cmtCdWZmZXJEaXJ0eShuYnVmZmVyKTsKIAl9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL3BydW5laGVhcC5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFw LmMKaW5kZXggNDQ3NTQ1N2ZkZGUuLjJjNDliYzcyZjRiIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9w cnVuZWhlYXAuYwpAQCAtMjYxLDcgKzI2MSw4IEBAIGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRp b24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsIEJ1ZmZlciAqdm1idWZmZXIsCiAJLyoKIAkgKiBG aXJzdCBjaGVjayB3aGV0aGVyIHRoZXJlJ3MgYW55IGNoYW5jZSB0aGVyZSdzIHNvbWV0aGluZyB0 byBwcnVuZSwKIAkgKiBkZXRlcm1pbmluZyB0aGUgYXBwcm9wcmlhdGUgaG9yaXpvbiBpcyBhIHdh c3RlIGlmIHRoZXJlJ3Mgbm8gcHJ1bmVfeGlkCi0JICogKGkuZS4gbm8gdXBkYXRlcy9kZWxldGVz IGxlZnQgcG90ZW50aWFsbHkgZGVhZCB0dXBsZXMgYXJvdW5kKS4KKwkgKiAoaS5lLiBubyB1cGRh dGVzL2RlbGV0ZXMgbGVmdCBwb3RlbnRpYWxseSBkZWFkIHR1cGxlcyBhcm91bmQgYW5kIG5vCisJ ICogaW5zZXJ0cyBpbnNlcnRlZCBuZXcgdHVwbGVzIHRoYXQgbWF5IGJlIHZpc2libGUgdG8gYWxs KS4KIAkgKi8KIAlwcnVuZV94aWQgPSBQYWdlR2V0UHJ1bmVYaWQocGFnZSk7CiAJaWYgKCFUcmFu c2FjdGlvbklkSXNWYWxpZChwcnVuZV94aWQpKQpAQCAtMTg2MywxNiArMTg2NCwxNCBAQCBoZWFw X3BydW5lX3JlY29yZF91bmNoYW5nZWRfbHBfbm9ybWFsKFBydW5lU3RhdGUgKnByc3RhdGUsIE9m ZnNldE51bWJlciBvZmZudW0pCiAJCQlwcnN0YXRlLT5zZXRfYWxsX3Zpc2libGUgPSBmYWxzZTsK IAkJCXByc3RhdGUtPnNldF9hbGxfZnJvemVuID0gZmFsc2U7CiAKLQkJCS8qIFRoZSBwYWdlIHNo b3VsZCBub3QgYmUgbWFya2VkIGFsbC12aXNpYmxlICovCi0JCQlpZiAoUGFnZUlzQWxsVmlzaWJs ZShwYWdlKSkKLQkJCQloZWFwX2ZpeF92bV9jb3JydXB0aW9uKHByc3RhdGUsIG9mZm51bSk7Ci0K IAkJCS8qCi0JCQkgKiBJZiB3ZSB3YW50ZWQgdG8gb3B0aW1pemUgZm9yIGFib3J0cywgd2UgbWln aHQgY29uc2lkZXIgbWFya2luZwotCQkJICogdGhlIHBhZ2UgcHJ1bmFibGUgd2hlbiB3ZSBzZWUg SU5TRVJUX0lOX1BST0dSRVNTLiAgQnV0IHdlCi0JCQkgKiBkb24ndC4gIFNlZSByZWxhdGVkIGRl Y2lzaW9ucyBhYm91dCB3aGVuIHRvIG1hcmsgdGhlIHBhZ2UKLQkJCSAqIHBydW5hYmxlIGluIGhl YXBhbS5jLgorCQkJICogVGhvdWdoIHRoZXJlIGlzIG5vdGhpbmcgInBydW5hYmxlIiBvbiB0aGUg cGFnZSwgd2UgbWFpbnRhaW4KKwkJCSAqIHBkX3BydW5lX3hpZCBmb3IgaW5zZXJ0cyBzbyB0aGF0 IHdlIGhhdmUgdGhlIG9wcG9ydHVuaXR5IHRvCisJCQkgKiBtYXJrIHRoZW0gYWxsLXZpc2libGUg ZHVyaW5nIHRoZSBuZXh0IHJvdW5kIG9mIHBydW5pbmcuCiAJCQkgKi8KKwkJCWhlYXBfcHJ1bmVf cmVjb3JkX3BydW5hYmxlKHByc3RhdGUsCisJCQkJCQkJCQkgICBIZWFwVHVwbGVIZWFkZXJHZXRY bWluKGh0dXApLAorCQkJCQkJCQkJICAgb2ZmbnVtKTsKIAkJCWJyZWFrOwogCiAJCWNhc2UgSEVB UFRVUExFX0RFTEVURV9JTl9QUk9HUkVTUzoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21vZHVsZXMv aW5kZXgvZXhwZWN0ZWQva2lsbHR1cGxlcy5vdXQgYi9zcmMvdGVzdC9tb2R1bGVzL2luZGV4L2V4 cGVjdGVkL2tpbGx0dXBsZXMub3V0CmluZGV4IGJlN2RkZDc1NmVmLi43MDAxNDRkNjc4MyAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvbW9kdWxlcy9pbmRleC9leHBlY3RlZC9raWxsdHVwbGVzLm91dAor KysgYi9zcmMvdGVzdC9tb2R1bGVzL2luZGV4L2V4cGVjdGVkL2tpbGx0dXBsZXMub3V0CkBAIC01 NCw3ICs1NCw3IEBAIHN0ZXAgZmx1c2g6IFNFTEVDVCBGUk9NIHBnX3N0YXRfZm9yY2VfbmV4dF9m bHVzaCgpOwogc3RlcCByZXN1bHQ6IFNFTEVDVCBoZWFwX2Jsa3NfcmVhZCArIGhlYXBfYmxrc19o aXQgLSBjb3VudGVyLmhlYXBfYWNjZXNzZXMgQVMgbmV3X2hlYXBfYWNjZXNzZXMgRlJPTSBjb3Vu dGVyLCBwZ19zdGF0aW9fYWxsX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ2tpbGxfcHJpb3JfdHVw bGUnOwogbmV3X2hlYXBfYWNjZXNzZXMKIC0tLS0tLS0tLS0tLS0tLS0tCi0gICAgICAgICAgICAg ICAgMQorICAgICAgICAgICAgICAgIDIKICgxIHJvdykKIAogc3RlcCBtZWFzdXJlOiBVUERBVEUg Y291bnRlciBTRVQgaGVhcF9hY2Nlc3NlcyA9IChTRUxFQ1QgaGVhcF9ibGtzX3JlYWQgKyBoZWFw X2Jsa3NfaGl0IEZST00gcGdfc3RhdGlvX2FsbF90YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICdraWxs X3ByaW9yX3R1cGxlJyk7CkBAIC0xMzAsNyArMTMwLDcgQEAgc3RlcCBmbHVzaDogU0VMRUNUIEZS T00gcGdfc3RhdF9mb3JjZV9uZXh0X2ZsdXNoKCk7CiBzdGVwIHJlc3VsdDogU0VMRUNUIGhlYXBf Ymxrc19yZWFkICsgaGVhcF9ibGtzX2hpdCAtIGNvdW50ZXIuaGVhcF9hY2Nlc3NlcyBBUyBuZXdf aGVhcF9hY2Nlc3NlcyBGUk9NIGNvdW50ZXIsIHBnX3N0YXRpb19hbGxfdGFibGVzIFdIRVJFIHJl bG5hbWUgPSAna2lsbF9wcmlvcl90dXBsZSc7CiBuZXdfaGVhcF9hY2Nlc3NlcwogLS0tLS0tLS0t LS0tLS0tLS0KLSAgICAgICAgICAgICAgICAxCisgICAgICAgICAgICAgICAgMgogKDEgcm93KQog CiBzdGVwIG1lYXN1cmU6IFVQREFURSBjb3VudGVyIFNFVCBoZWFwX2FjY2Vzc2VzID0gKFNFTEVD VCBoZWFwX2Jsa3NfcmVhZCArIGhlYXBfYmxrc19oaXQgRlJPTSBwZ19zdGF0aW9fYWxsX3RhYmxl cyBXSEVSRSByZWxuYW1lID0gJ2tpbGxfcHJpb3JfdHVwbGUnKTsKQEAgLTI4Myw3ICsyODMsNyBA QCBzdGVwIGZsdXNoOiBTRUxFQ1QgRlJPTSBwZ19zdGF0X2ZvcmNlX25leHRfZmx1c2goKTsKIHN0 ZXAgcmVzdWx0OiBTRUxFQ1QgaGVhcF9ibGtzX3JlYWQgKyBoZWFwX2Jsa3NfaGl0IC0gY291bnRl ci5oZWFwX2FjY2Vzc2VzIEFTIG5ld19oZWFwX2FjY2Vzc2VzIEZST00gY291bnRlciwgcGdfc3Rh dGlvX2FsbF90YWJsZXMgV0hFUkUgcmVsbmFtZSA9ICdraWxsX3ByaW9yX3R1cGxlJzsKIG5ld19o ZWFwX2FjY2Vzc2VzCiAtLS0tLS0tLS0tLS0tLS0tLQotICAgICAgICAgICAgICAgIDEKKyAgICAg ICAgICAgICAgICAyCiAoMSByb3cpCiAKIHN0ZXAgbWVhc3VyZTogVVBEQVRFIGNvdW50ZXIgU0VU IGhlYXBfYWNjZXNzZXMgPSAoU0VMRUNUIGhlYXBfYmxrc19yZWFkICsgaGVhcF9ibGtzX2hpdCBG Uk9NIHBnX3N0YXRpb19hbGxfdGFibGVzIFdIRVJFIHJlbG5hbWUgPSAna2lsbF9wcmlvcl90dXBs ZScpOwpAQCAtMzI5LDcgKzMyOSw3IEBAIHN0ZXAgZmx1c2g6IFNFTEVDVCBGUk9NIHBnX3N0YXRf Zm9yY2VfbmV4dF9mbHVzaCgpOwogc3RlcCByZXN1bHQ6IFNFTEVDVCBoZWFwX2Jsa3NfcmVhZCAr IGhlYXBfYmxrc19oaXQgLSBjb3VudGVyLmhlYXBfYWNjZXNzZXMgQVMgbmV3X2hlYXBfYWNjZXNz ZXMgRlJPTSBjb3VudGVyLCBwZ19zdGF0aW9fYWxsX3RhYmxlcyBXSEVSRSByZWxuYW1lID0gJ2tp bGxfcHJpb3JfdHVwbGUnOwogbmV3X2hlYXBfYWNjZXNzZXMKIC0tLS0tLS0tLS0tLS0tLS0tCi0g ICAgICAgICAgICAgICAgMQorICAgICAgICAgICAgICAgIDIKICgxIHJvdykKIAogc3RlcCBtZWFz dXJlOiBVUERBVEUgY291bnRlciBTRVQgaGVhcF9hY2Nlc3NlcyA9IChTRUxFQ1QgaGVhcF9ibGtz X3JlYWQgKyBoZWFwX2Jsa3NfaGl0IEZST00gcGdfc3RhdGlvX2FsbF90YWJsZXMgV0hFUkUgcmVs bmFtZSA9ICdraWxsX3ByaW9yX3R1cGxlJyk7Ci0tIAoyLjQzLjAKCg== --0000000000002365dc064d39709f--