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 1w1qrw-000esJ-2r for pgsql-hackers@arkaria.postgresql.org; Sun, 15 Mar 2026 19:11:22 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w1qru-005QTx-2D for pgsql-hackers@arkaria.postgresql.org; Sun, 15 Mar 2026 19:11:19 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w1qrt-005QPw-1g for pgsql-hackers@lists.postgresql.org; Sun, 15 Mar 2026 19:11:18 +0000 Received: from mail-ed1-x529.google.com ([2a00:1450:4864:20::529]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w1qrk-00000000HYw-2d2o for pgsql-hackers@lists.postgresql.org; Sun, 15 Mar 2026 19:11:17 +0000 Received: by mail-ed1-x529.google.com with SMTP id 4fb4d7f45d1cf-6655469237aso447451a12.0 for ; Sun, 15 Mar 2026 12:11:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1773601867; cv=none; d=google.com; s=arc-20240605; b=LP2E0VYzPNv5s204SvtLMjNgdayBNSyabDARf6H6qoyG+olpeGx0H09HSqmxZnG+vB BBsQQkH1gAn24Yq6gn96N6dHSnfa/+o60zY+LnvgNnXCdKq/SjNiBxOXgefcc22cq7ev g5SBNQvsa+fYFhZY10JU/UUWj4T3kmP5J2TLMWt4tRdT4PCLrEZSdC8GZMZXMfvGTYx4 OWoj58obA6/yb/AAnCy3Hf1skmH24i6YLv99hGbnohxwlolhau4Eii7QHbnMbRw3TIHP KAdjarcSaVPcouG4r9PulaKDTQqVAhOmNTfHUQXHFEygY0qlfO+nh0mfYRTc1LNgkOe1 NnxQ== 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=dZoJ+a/OPa9T3J/3knWuSa84rBBSKtggMnHw1Xp5CSY=; fh=s3Pq0eLtws/kxWmwYMs1DvCDEE+6SyWJEgVbTMsThds=; b=ZFr06ieK2uaiPrcSY7XUwXTFFlHwFztllw+l9CoSCA2ZlBOc/j83AYyuxZEG5KbN7g Vo5T8DHOaS8jXFmFf6WcbD4uKBiEe3s1j2pb0C5EjxQO8bjy57UGQLtPeIx1gxZvLT+l NpT0Jrc+F3ogccNncqFUcrSIXJLSi2WFqaE8V7dxKdlSIPwjyyW+0QcgbOW4pQfyZKbP 4zRhMCouVebzEKjmOM+P4q9m6ytzqhSgwWsD6BjiYb2Nk805P8SDmXyspAnNQXSWjWld RyDqA7zKtYlB5vQ249J/YuOlwzMdgbOEpq2M2Yan9Ie7qWUbaT188KTO0zcl2TQc1+74 pJfA==; 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=1773601867; x=1774206667; 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=dZoJ+a/OPa9T3J/3knWuSa84rBBSKtggMnHw1Xp5CSY=; b=DItq2AFsnv/yHRou4iTam5sdAb/zNNljG4QflV0A1iV65/M/Iavu2kUWcGW2F0uDm5 a3xpgyEyjEWQa0kN+OV0hIyEN6Bq912PjplvaYLNM6gmgGtnURO20kWADuqpFbok8nYi tWpPiJg09YsI8vF6YTPsEV3rkYe40J1+huBgkLnDkQIYTQVnupRtZDFKnW5mienimAI4 t0sHRKVz7r27UBoG5zesjaj4VCYWNk12q4PelLFnsX30dAN9DQUiLvU2v+QMLFts7gLR 2GVGKpSrwWWq0RJdEyAfaSqHEP3mnfhSKVF6G6yvEZTu4bR7nzo1CB5AM7ZdR0L9Wy53 JB8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1773601867; x=1774206667; 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=dZoJ+a/OPa9T3J/3knWuSa84rBBSKtggMnHw1Xp5CSY=; b=CHiLya+Yt6jbe2D6V/87z5yU5TAB3g0oZnXKrzfjTMSAmxo05YG81kUXEd5lxo75lw i0gCijAONqcakYn5ksCQJ657Co2OQ2EosSCHVH8ggu7aRh1sebZ6JmjF7AKUsuihiOP4 XRnX1Av2ssCql9VI3G9ZjVrImk4uUh/apXN5xm40KVb2xWTF8MahKQMFHaY/thAY4zL9 FVg2c2lhRCCfFZh/DioNAK907wC7wweKlleGYbfibNhia8v5Qkf6c/Nm58iBX6BfrFsM I9cdRuZcf5piIK9mr3f1aDhYHMuvKncAZnnOuzGEPjslP1pATPB4+aSnzbJqtwedtTIF 6hhA== X-Forwarded-Encrypted: i=1; AJvYcCU2RVmN+9/Y2aAavh7pMFrl1h/RsnHXGjCW6KIibaaCYykzVzPoMxJVSPIoETpmE1LEUlSZ1dR2JW+kGD14@lists.postgresql.org X-Gm-Message-State: AOJu0YyphhKhS6RaP2kIH7eHO8n+t3R1LU3miJRmGnWJ6sYV0d/uOmlE cOXRSRlUPA8IQjghtxCloCsI+Z1kxevyGHAvTEzlCHXdm307G4wDaGHS7OT8voUMYFnbkzMFaUA E17O9oS6vE0IrpdkbCDfSCyLAYt2pqhY= X-Gm-Gg: ATEYQzx39jDQCuxs8VjkbdB8Aia+agsY0n3VtloAattfo0D9XGpSpeg4Mon/fr7wfEf AwUWZz+D/y6LWtYEzT9z3oXGg8WKLHQ7M2WCTVQAM963lbWOogdfBRSWVmp7P34pZFSboRqiOQC fhZflfQj9WeQD8gjjWLFd8jvAOuLVg+Ck5V1/j7EFNPRVzdIHKtyHD6NHd0VdaT6UUn721IwtIB 0A+a8NW97FaZFdrRjCokFR1zUtIcwpJmqvL9TJO8oe3EWfYuPtJbG2vmnsgDaAMvK612Ut7pHpj JMqk5m6c2CVIW3DwYvq2q4F87uB3+CNSIQhOunH0qzJk31Dqr8NTnEiEPZdJ/dbDP/jtT+KhvLL K+rj7ZdXa X-Received: by 2002:a05:6402:1d49:b0:663:4560:aa8d with SMTP id 4fb4d7f45d1cf-663bac0b2a9mr5842083a12.26.1773601867195; Sun, 15 Mar 2026 12:11:07 -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: Sun, 15 Mar 2026 15:10:54 -0400 X-Gm-Features: AaiRm53pskRhNLwzySaxbbdBUXHhLbi-OOryABh0YrRUz-_tdfkGstfC8a4VBAw Message-ID: Subject: Re: eliminate xl_heap_visible to reduce WAL (and eventually set VM on-access) To: Chao Li Cc: Andres Freund , Andrey Borodin , Kirill Reshke , Xuneng Zhou , Robert Haas , PostgreSQL Hackers , Heikki Linnakangas Content-Type: multipart/mixed; boundary="00000000000044ac80064d14dd96" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --00000000000044ac80064d14dd96 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Mar 11, 2026 at 1:01=E2=80=AFPM Melanie Plageman wrote: > > On Fri, Mar 6, 2026 at 6:33=E2=80=AFPM Melanie Plageman > wrote: > > > > Thanks for the review! Attached is v36. I've pushed some of the early > > patches in the set and this is what is left. > > I've gone ahead and pushed another of the introductory commits. > Attached v37 has the remaining patches. I've pushed a few more of the trivial commits in the set. Attached v38 has the remaining patches. - Melanie --00000000000044ac80064d14dd96 Content-Type: text/x-patch; charset="US-ASCII"; name="v38-0001-Fix-visibility-map-corruption-in-more-cases.patch" Content-Disposition: attachment; filename="v38-0001-Fix-visibility-map-corruption-in-more-cases.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mms4pij70 RnJvbSAwY2E5MmQyY2NlZTBlNTg5YTM1YTc5ZjkwNDZjM2E3OTAwZWNhY2Y0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDI1IEZlYiAyMDI2IDE2OjIzOjA5IC0wNTAwClN1YmplY3Q6IFtQ QVRDSCB2MzggMDEvMTJdIEZpeCB2aXNpYmlsaXR5IG1hcCBjb3JydXB0aW9uIGluIG1vcmUgY2Fz ZXMKCk1vdmUgVk0gY29ycnVwdGlvbiBkZXRlY3Rpb24gYW5kIHJlcGFpciBpbnRvIHBydW5pbmcu IFRoaXMgYWxsb3dzIFZNCnJlcGFpciBkdXJpbmcgb24tYWNjZXNzIHBydW5pbmcsIG5vdCBvbmx5 IGR1cmluZyB2YWN1dW0uCgpBbHNvLCBleHBhbmQgY29ycnVwdGlvbiBkZXRlY3Rpb24gdG8gY292 ZXIgcGFnZXMgbWFya2VkIGFsbC12aXNpYmxlIHRoYXQKY29udGFpbiBkZWFkIHR1cGxlcyBhbmQg dHVwbGVzIGluc2VydGVkIG9yIHVwZGF0ZWQgYnkgaW4tcHJvZ3Jlc3MKdHJhbnNhY3Rpb25zLCBy YXRoZXIgdGhhbiBvbmx5IGFsbC12aXNpYmxlIHBhZ2VzIHdpdGggTFBfREVBRCBpdGVtcy4KClBp bm5pbmcgdGhlIGNvcnJlY3QgVk0gcGFnZSBiZWZvcmUgb24tYWNjZXNzIHBydW5pbmcgaXMgY2hl YXAgd2hlbgpjb21wYXJlZCB0byB0aGUgY29zdCBvZiBhY3R1YWxseSBwcnVuaW5nLiBUaGUgdm1i dWZmZXIgaXMgc2F2ZWQgaW4gdGhlCnNjYW4gZGVzY3JpcHRvciwgc28gYSBxdWVyeSBzaG91bGQg b25seSBuZWVkIHRvIHBpbiBlYWNoIFZNIHBhZ2Ugb25jZQphbmQgYSBzaW5nbGUgVk0gcGFnZSBj b3ZlcnMgYSBsYXJnZSBudW1iZXIgb2YgaGVhcCBwYWdlcy4KCkF1dGhvcjogTWVsYW5pZSBQbGFn ZW1hbiA8bWVsYW5pZXBsYWdlbWFuQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENoYW8gTGkgPGxp LmV2YW4uY2hhb0BnbWFpbC5jb20+Ci0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVo ZWFwLmMgIHwgMTc2ICsrKysrKysrKysrKysrKysrKysrKysrKy0tLQogc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvdmFjdXVtbGF6eS5jIHwgIDg5ICstLS0tLS0tLS0tLS0tCiBzcmMvaW5jbHVkZS9h Y2Nlc3MvaGVhcGFtLmggICAgICAgICAgfCAgMTIgKysKIDMgZmlsZXMgY2hhbmdlZCwgMTc1IGlu c2VydGlvbnMoKyksIDEwMiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVh cC5jCmluZGV4IDhkOWYwNjk0MjA2Li41MmNhZmIyM2M2YiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv cHJ1bmVoZWFwLmMKQEAgLTE5LDcgKzE5LDcgQEAKICNpbmNsdWRlICJhY2Nlc3MvaHR1cF9kZXRh aWxzLmgiCiAjaW5jbHVkZSAiYWNjZXNzL211bHRpeGFjdC5oIgogI2luY2x1ZGUgImFjY2Vzcy90 cmFuc2FtLmgiCi0jaW5jbHVkZSAiYWNjZXNzL3Zpc2liaWxpdHltYXBkZWZzLmgiCisjaW5jbHVk ZSAiYWNjZXNzL3Zpc2liaWxpdHltYXAuaCIKICNpbmNsdWRlICJhY2Nlc3MveGxvZy5oIgogI2lu Y2x1ZGUgImFjY2Vzcy94bG9naW5zZXJ0LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdmFjdXVtLmgi CkBAIC0xMTQsNiArMTE0LDIxIEBAIHR5cGVkZWYgc3RydWN0CiAJICovCiAJSGVhcFBhZ2VGcmVl emUgcGFnZWZyejsKIAorCS8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorCSAqIFdvcmtpbmcgc3RhdGUgZm9yIHZpc2liaWxpdHkgbWFwIHBy b2Nlc3NpbmcKKwkgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKwkgKi8KKworCS8qCisJICogQ2FsbGVyIG11c3QgcHJvdmlkZSBhIHBpbm5l ZCB2bWJ1ZmZlciBjb3JyZXNwb25kaW5nIHRvIHRoZSBoZWFwIGJsb2NrCisJICogcGFzc2VkIHRv IGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKCkuIFdlIHdpbGwgZml4IGFueSBjb3JydXB0aW9u CisJICogZm91bmQgaW4gdGhlIFZNLgorCSAqLworCUJ1ZmZlcgkJdm1idWZmZXI7CisKKwkvKiBC aXRzIGluIHRoZSB2bWJ1ZmZlciBmb3IgdGhpcyBoZWFwIHBhZ2UgKi8KKwl1aW50OAkJdm1iaXRz OworCiAJLyotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAJICogSW5mb3JtYXRpb24gYWJvdXQgd2hhdCB3YXMgZG9uZQogCSAqCkBAIC0xNjgs NiArMTgzLDcgQEAgc3RhdGljIHZvaWQgcHJ1bmVfZnJlZXplX3NldHVwKFBydW5lRnJlZXplUGFy YW1zICpwYXJhbXMsCiAJCQkJCQkJICAgTXVsdGlYYWN0SWQgKm5ld19yZWxtaW5fbXhpZCwKIAkJ CQkJCQkgICBQcnVuZUZyZWV6ZVJlc3VsdCAqcHJlc3VsdCwKIAkJCQkJCQkgICBQcnVuZVN0YXRl ICpwcnN0YXRlKTsKK3N0YXRpYyB2b2lkIGhlYXBfZml4X3ZtX2NvcnJ1cHRpb24oUHJ1bmVTdGF0 ZSAqcHJzdGF0ZSwgT2Zmc2V0TnVtYmVyIG9mZm51bSk7CiBzdGF0aWMgdm9pZCBwcnVuZV9mcmVl emVfcGxhbihQcnVuZVN0YXRlICpwcnN0YXRlLAogCQkJCQkJCSAgT2Zmc2V0TnVtYmVyICpvZmZf bG9jKTsKIHN0YXRpYyBIVFNWX1Jlc3VsdCBoZWFwX3BydW5lX3NhdGlzZmllc192YWN1dW0oUHJ1 bmVTdGF0ZSAqcHJzdGF0ZSwKQEAgLTE3NSw3ICsxOTEsOCBAQCBzdGF0aWMgSFRTVl9SZXN1bHQg aGVhcF9wcnVuZV9zYXRpc2ZpZXNfdmFjdXVtKFBydW5lU3RhdGUgKnByc3RhdGUsCiBzdGF0aWMg aW5saW5lIEhUU1ZfUmVzdWx0IGh0c3ZfZ2V0X3ZhbGlkX3N0YXR1cyhpbnQgc3RhdHVzKTsKIHN0 YXRpYyB2b2lkIGhlYXBfcHJ1bmVfY2hhaW4oT2Zmc2V0TnVtYmVyIG1heG9mZiwKIAkJCQkJCQkg T2Zmc2V0TnVtYmVyIHJvb3RvZmZudW0sIFBydW5lU3RhdGUgKnByc3RhdGUpOwotc3RhdGljIHZv aWQgaGVhcF9wcnVuZV9yZWNvcmRfcHJ1bmFibGUoUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgVHJhbnNh Y3Rpb25JZCB4aWQpOworc3RhdGljIHZvaWQgaGVhcF9wcnVuZV9yZWNvcmRfcHJ1bmFibGUoUHJ1 bmVTdGF0ZSAqcHJzdGF0ZSwgVHJhbnNhY3Rpb25JZCB4aWQsCisJCQkJCQkJCQkgICBPZmZzZXRO dW1iZXIgb2ZmbnVtKTsKIHN0YXRpYyB2b2lkIGhlYXBfcHJ1bmVfcmVjb3JkX3JlZGlyZWN0KFBy dW5lU3RhdGUgKnByc3RhdGUsCiAJCQkJCQkJCQkgICBPZmZzZXROdW1iZXIgb2ZmbnVtLCBPZmZz ZXROdW1iZXIgcmRvZmZudW0sCiAJCQkJCQkJCQkgICBib29sIHdhc19ub3JtYWwpOwpAQCAtMjA5 LDggKzIyNiw5IEBAIHN0YXRpYyBib29sIGhlYXBfcGFnZV93aWxsX2ZyZWV6ZShib29sIGRpZF90 dXBsZV9oaW50X2ZwaSwgYm9vbCBkb19wcnVuZSwgYm9vbCBkCiAgKiBDYWxsZXIgbXVzdCBoYXZl IHBpbiBvbiB0aGUgYnVmZmVyLCBhbmQgbXVzdCAqbm90KiBoYXZlIGEgbG9jayBvbiBpdC4KICAq CiAgKiBUaGlzIGZ1bmN0aW9uIG1heSBwaW4gKnZtYnVmZmVyLiBJdCdzIHBhc3NlZCBieSByZWZl cmVuY2Ugc28gdGhlIGNhbGxlciBjYW4KLSAqIHJldXNlIHRoZSBwaW4gYWNyb3NzIGNhbGxzLCBh dm9pZGluZyByZXBlYXRlZCBwaW4vdW5waW4gY3ljbGVzLiBDYWxsZXIgaXMKLSAqIHJlc3BvbnNp YmxlIGZvciB1bnBpbm5pbmcgaXQuCisgKiByZXVzZSB0aGUgcGluIGFjcm9zcyBjYWxscywgYXZv aWRpbmcgcmVwZWF0ZWQgcGluL3VucGluIGN5Y2xlcy4gSWYgd2UgZmluZAorICogVk0gY29ycnVw dGlvbiBkdXJpbmcgcHJ1bmluZywgd2Ugd2lsbCBmaXggaXQuIENhbGxlciBpcyByZXNwb25zaWJs ZSBmb3IKKyAqIHVucGlubmluZyAqdm1idWZmZXIuCiAgKi8KIHZvaWQKIGhlYXBfcGFnZV9wcnVu ZV9vcHQoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsIEJ1ZmZlciAqdm1idWZmZXIp CkBAIC0yNzcsNiArMjk1LDE2IEBAIGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVsYXRp b24sIEJ1ZmZlciBidWZmZXIsIEJ1ZmZlciAqdm1idWZmZXIpCiAJCXsKIAkJCU9mZnNldE51bWJl ciBkdW1teV9vZmZfbG9jOwogCQkJUHJ1bmVGcmVlemVSZXN1bHQgcHJlc3VsdDsKKwkJCVBydW5l RnJlZXplUGFyYW1zIHBhcmFtczsKKworCQkJdmlzaWJpbGl0eW1hcF9waW4ocmVsYXRpb24sIEJ1 ZmZlckdldEJsb2NrTnVtYmVyKGJ1ZmZlciksIHZtYnVmZmVyKTsKKworCQkJcGFyYW1zLnJlbGF0 aW9uID0gcmVsYXRpb247CisJCQlwYXJhbXMuYnVmZmVyID0gYnVmZmVyOworCQkJcGFyYW1zLnZt YnVmZmVyID0gKnZtYnVmZmVyOworCQkJcGFyYW1zLnJlYXNvbiA9IFBSVU5FX09OX0FDQ0VTUzsK KwkJCXBhcmFtcy52aXN0ZXN0ID0gdmlzdGVzdDsKKwkJCXBhcmFtcy5jdXRvZmZzID0gTlVMTDsK IAogCQkJLyoKIAkJCSAqIFdlIGRvbid0IHBhc3MgdGhlIEhFQVBfUEFHRV9QUlVORV9NQVJLX1VO VVNFRF9OT1cgb3B0aW9uCkBAIC0yODQsMTQgKzMxMiw3IEBAIGhlYXBfcGFnZV9wcnVuZV9vcHQo UmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsIEJ1ZmZlciAqdm1idWZmZXIpCiAJCQkg KiBjYW5ub3Qgc2FmZWx5IGRldGVybWluZSB0aGF0IGR1cmluZyBvbi1hY2Nlc3MgcHJ1bmluZyB3 aXRoIHRoZQogCQkJICogY3VycmVudCBpbXBsZW1lbnRhdGlvbi4KIAkJCSAqLwotCQkJUHJ1bmVG cmVlemVQYXJhbXMgcGFyYW1zID0gewotCQkJCS5yZWxhdGlvbiA9IHJlbGF0aW9uLAotCQkJCS5i dWZmZXIgPSBidWZmZXIsCi0JCQkJLnJlYXNvbiA9IFBSVU5FX09OX0FDQ0VTUywKLQkJCQkub3B0 aW9ucyA9IDAsCi0JCQkJLnZpc3Rlc3QgPSB2aXN0ZXN0LAotCQkJCS5jdXRvZmZzID0gTlVMTCwK LQkJCX07CisJCQlwYXJhbXMub3B0aW9ucyA9IDA7CiAKIAkJCWhlYXBfcGFnZV9wcnVuZV9hbmRf ZnJlZXplKCZwYXJhbXMsICZwcmVzdWx0LCAmZHVtbXlfb2ZmX2xvYywKIAkJCQkJCQkJCSAgIE5V TEwsIE5VTEwpOwpAQCAtMzU0LDYgKzM3NSwxMiBAQCBwcnVuZV9mcmVlemVfc2V0dXAoUHJ1bmVG cmVlemVQYXJhbXMgKnBhcmFtcywKIAlwcnN0YXRlLT5idWZmZXIgPSBwYXJhbXMtPmJ1ZmZlcjsK IAlwcnN0YXRlLT5wYWdlID0gQnVmZmVyR2V0UGFnZShwYXJhbXMtPmJ1ZmZlcik7CiAKKwlBc3Nl cnQoQnVmZmVySXNWYWxpZChwYXJhbXMtPnZtYnVmZmVyKSk7CisJcHJzdGF0ZS0+dm1idWZmZXIg PSBwYXJhbXMtPnZtYnVmZmVyOworCXByc3RhdGUtPnZtYml0cyA9IHZpc2liaWxpdHltYXBfZ2V0 X3N0YXR1cyhwcnN0YXRlLT5yZWxhdGlvbiwKKwkJCQkJCQkJCQkJICAgcHJzdGF0ZS0+YmxvY2ss CisJCQkJCQkJCQkJCSAgICZwcnN0YXRlLT52bWJ1ZmZlcik7CisKIAkvKgogCSAqIE91ciBzdHJh dGVneSBpcyB0byBzY2FuIHRoZSBwYWdlIGFuZCBtYWtlIGxpc3RzIG9mIGl0ZW1zIHRvIGNoYW5n ZSwKIAkgKiB0aGVuIGFwcGx5IHRoZSBjaGFuZ2VzIHdpdGhpbiBhIGNyaXRpY2FsIHNlY3Rpb24u ICBUaGlzIGtlZXBzIGFzIG11Y2gKQEAgLTc3MCw2ICs3OTcsOTAgQEAgaGVhcF9wYWdlX3dpbGxf ZnJlZXplKGJvb2wgZGlkX3R1cGxlX2hpbnRfZnBpLAogCXJldHVybiBkb19mcmVlemU7CiB9CiAK Ky8qCisgKiBIZWxwZXIgdG8gZml4IHZpc2liaWxpdHktcmVsYXRlZCBjb3JydXB0aW9uIG9uIGEg aGVhcCBwYWdlIGFuZCBpdHMKKyAqIGNvcnJlc3BvbmRpbmcgVk0gcGFnZS4gQW4gYWxsLXZpc2li bGUgcGFnZSBjYW5ub3QgaGF2ZSBkZWFkIGl0ZW1zIG5vciBjYW4KKyAqIGl0IGhhdmUgdHVwbGVz IHRoYXQgYXJlIG5vdCB2aXNpYmxlIHRvIGFsbCBydW5uaW5nIHRyYW5zYWN0aW9ucy4gSXQgY2xl YXJzCisgKiB0aGUgVk0gY29ycnVwdGlvbiBhcyB3ZWxsIGFzIHJlc2V0dGluZyB0aGUgdm1iaXRz IHVzZWQgZHVyaW5nIHBydW5pbmcuCisgKgorICogVGhpcyBmdW5jdGlvbiBtdXN0IGJlIGNhbGxl ZCB3aGlsZSBob2xkaW5nIGFuIGV4Y2x1c2l2ZSBsb2NrIG9uIHRoZSBoZWFwCisgKiBidWZmZXIs IGFuZCBhbnkgZGVhZCBpdGVtcyBtdXN0IGhhdmUgYmVlbiBkaXNjb3ZlcmVkIHVuZGVyIHRoYXQg c2FtZSBsb2NrLgorICogQWx0aG91Z2ggd2UgZG8gbm90IGhvbGQgYSBsb2NrIG9uIHRoZSBWTSBi dWZmZXIsIGl0IGlzIHBpbm5lZCwgYW5kIHRoZSBoZWFwCisgKiBidWZmZXIgaXMgZXhjbHVzaXZl bHkgbG9ja2VkLCBlbnN1cmluZyB0aGF0IG5vIG90aGVyIGJhY2tlbmQgY2FuIHVwZGF0ZSB0aGUK KyAqIFZNIGJpdHMgY29ycmVzcG9uZGluZyB0byB0aGlzIGhlYXAgcGFnZS4KKyAqCisgKiBUaGlz IGZ1bmN0aW9uIG1ha2VzIGNoYW5nZXMgdG8gdGhlIFZNIGFuZCwgcG90ZW50aWFsbHksIHRoZSBo ZWFwIHBhZ2UsIGJ1dAorICogaXQgZG9lcyBub3QgbmVlZCB0byBiZSBkb25lIGluIGEgY3JpdGlj YWwgc2VjdGlvbi4KKyAqLworc3RhdGljIHZvaWQKK2hlYXBfZml4X3ZtX2NvcnJ1cHRpb24oUHJ1 bmVTdGF0ZSAqcHJzdGF0ZSwgT2Zmc2V0TnVtYmVyIG9mZm51bSkKK3sKKwljb25zdCBjaGFyICpy ZWxuYW1lID0gUmVsYXRpb25HZXRSZWxhdGlvbk5hbWUocHJzdGF0ZS0+cmVsYXRpb24pOworCisJ QXNzZXJ0KEJ1ZmZlcklzTG9ja2VkQnlNZUluTW9kZShwcnN0YXRlLT5idWZmZXIsIEJVRkZFUl9M T0NLX0VYQ0xVU0lWRSkpOworCisJaWYgKFBhZ2VJc0FsbFZpc2libGUocHJzdGF0ZS0+cGFnZSkp CisJeworCQkvKgorCQkgKiBJdCdzIHBvc3NpYmxlIGZvciB0aGUgdmFsdWUgcmV0dXJuZWQgYnkK KwkJICogR2V0T2xkZXN0Tm9uUmVtb3ZhYmxlVHJhbnNhY3Rpb25JZCgpIHRvIG1vdmUgYmFja3dh cmRzLCBzbyBpdCdzIG5vdAorCQkgKiB3cm9uZyBmb3IgdXMgdG8gc2VlIHR1cGxlcyB0aGF0IGFw cGVhciB0byBub3QgYmUgdmlzaWJsZSB0bworCQkgKiBldmVyeW9uZSB5ZXQsIHdoaWxlIFBEX0FM TF9WSVNJQkxFIGlzIGFscmVhZHkgc2V0LiBUaGUgcmVhbCBzYWZlCisJCSAqIHhtaW4gdmFsdWUg bmV2ZXIgbW92ZXMgYmFja3dhcmRzLCBidXQKKwkJICogR2V0T2xkZXN0Tm9uUmVtb3ZhYmxlVHJh bnNhY3Rpb25JZCgpIGlzIGNvbnNlcnZhdGl2ZSBhbmQgc29tZXRpbWVzCisJCSAqIHJldHVybnMg YSB2YWx1ZSB0aGF0J3MgdW5uZWNlc3NhcmlseSBzbWFsbCwgc28gaWYgd2Ugc2VlIHRoYXQKKwkJ ICogY29udHJhZGljdGlvbiBpdCBqdXN0IG1lYW5zIHRoYXQgdGhlIHR1cGxlcyB0aGF0IHdlIHRo aW5rIGFyZSBub3QKKwkJICogdmlzaWJsZSB0byBldmVyeW9uZSB5ZXQgYWN0dWFsbHkgYXJlLCBh bmQgdGhlIFBEX0FMTF9WSVNJQkxFIGZsYWcKKwkJICogaXMgY29ycmVjdC4KKwkJICoKKwkJICog SG93ZXZlciwgdGhlcmUgc2hvdWxkIG5ldmVyIGJlIExQX0RFQUQgaXRlbXMsIGRlYWQgdHVwbGUg dmVyc2lvbnMsCisJCSAqIG9yIHR1cGxlcyBpbnNlcnRlZCBieSBhbiBpbi1wcm9ncmVzcyB0cmFu c2FjdGlvbiBvbiBhIHBhZ2Ugd2l0aAorCQkgKiBQRF9BTExfVklTSUJMRSBzZXQuCisJCSAqLwor CQlpZiAocHJzdGF0ZS0+bHBkZWFkX2l0ZW1zID4gMCkKKwkJeworCQkJZXJlcG9ydChXQVJOSU5H LAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFfQ09SUlVQVEVEKSwKKwkJCQkJIGVycm1zZygi ZGVhZCBsaW5lIHBvaW50ZXIgZm91bmQgb24gcGFnZSBtYXJrZWQgYWxsLXZpc2libGUiKSwKKwkJ CQkJIGVycmNvbnRleHQoInJlbGF0aW9uIFwiJXNcIiwgcGFnZSAldSwgdHVwbGUgJXUiLAorCQkJ CQkJCQlyZWxuYW1lLCBwcnN0YXRlLT5ibG9jaywgb2ZmbnVtKSkpOworCQl9CisJCWVsc2UKKwkJ eworCQkJZXJlcG9ydChXQVJOSU5HLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFfQ09SUlVQ VEVEKSwKKwkJCQkJIGVycm1zZygidHVwbGUgbm90IHZpc2libGUgdG8gYWxsIHRyYW5zYWN0aW9u cyBmb3VuZCBvbiBwYWdlIG1hcmtlZCBhbGwtdmlzaWJsZSIpLAorCQkJCQkgZXJyY29udGV4dCgi cmVsYXRpb24gXCIlc1wiLCBwYWdlICV1LCB0dXBsZSAldSIsCisJCQkJCQkJCXJlbG5hbWUsIHBy c3RhdGUtPmJsb2NrLCBvZmZudW0pKSk7CisJCX0KKworCQkvKgorCQkgKiBNYXJrIHRoZSBidWZm ZXIgZGlydHkgbm93IGluIGNhc2Ugd2UgbWFrZSBubyBmdXJ0aGVyIGNoYW5nZXMgYW5kCisJCSAq IHRoZXJlZm9yZSB3b3VsZCBub3QgbWFyayBpdCBkaXJ0eSBsYXRlci4KKwkJICovCisJCVBhZ2VD bGVhckFsbFZpc2libGUocHJzdGF0ZS0+cGFnZSk7CisJCU1hcmtCdWZmZXJEaXJ0eUhpbnQocHJz dGF0ZS0+YnVmZmVyLCB0cnVlKTsKKwl9CisJZWxzZSBpZiAocHJzdGF0ZS0+dm1iaXRzICYgVklT SUJJTElUWU1BUF9WQUxJRF9CSVRTKQorCXsKKwkJLyoKKwkJICogQXMgb2YgUG9zdGdyZVNRTCA5 LjIsIHRoZSB2aXNpYmlsaXR5IG1hcCBiaXQgc2hvdWxkIG5ldmVyIGJlIHNldCBpZgorCQkgKiB0 aGUgcGFnZS1sZXZlbCBiaXQgaXMgY2xlYXIuIEhvd2V2ZXIsIGZvciB2YWN1dW0sIGl0J3MgcG9z c2libGUKKwkJICogdGhhdCB0aGUgYml0IGdvdCBjbGVhcmVkIGFmdGVyIGhlYXBfdmFjX3NjYW5f bmV4dF9ibG9jaygpIHdhcworCQkgKiBjYWxsZWQsIHNvIHdlIG11c3QgcmVjaGVjayBub3cgdGhh dCB3ZSBoYXZlIHRoZSBidWZmZXIgbG9jayBiZWZvcmUKKwkJICogY29uY2x1ZGluZyB0aGF0IHRo ZSBWTSBpcyBjb3JydXB0LgorCQkgKi8KKwkJZXJlcG9ydChXQVJOSU5HLAorCQkJCShlcnJjb2Rl KEVSUkNPREVfREFUQV9DT1JSVVBURUQpLAorCQkJCSBlcnJtc2coInBhZ2UgaXMgbm90IG1hcmtl ZCBhbGwtdmlzaWJsZSBidXQgdmlzaWJpbGl0eSBtYXAgYml0IGlzIHNldCIpLAorCQkJCSBlcnJj b250ZXh0KCJyZWxhdGlvbiBcIiVzXCIsIHBhZ2UgJXUiLAorCQkJCQkJCXJlbG5hbWUsIHByc3Rh dGUtPmJsb2NrKSkpOworCX0KKworCXZpc2liaWxpdHltYXBfY2xlYXIocHJzdGF0ZS0+cmVsYXRp b24sIHByc3RhdGUtPmJsb2NrLCBwcnN0YXRlLT52bWJ1ZmZlciwKKwkJCQkJCVZJU0lCSUxJVFlN QVBfVkFMSURfQklUUyk7CisJcHJzdGF0ZS0+dm1iaXRzID0gMDsKK30KIAogLyoKICAqIFBydW5l IGFuZCByZXBhaXIgZnJhZ21lbnRhdGlvbiBhbmQgcG90ZW50aWFsbHkgZnJlZXplIHR1cGxlcyBv biB0aGUKQEAgLTgzMCw2ICs5NDEsMTAgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUHJ1 bmVGcmVlemVQYXJhbXMgKnBhcmFtcywKIAkJCQkJICAgbmV3X3JlbGZyb3plbl94aWQsIG5ld19y ZWxtaW5fbXhpZCwKIAkJCQkJICAgcHJlc3VsdCwgJnByc3RhdGUpOwogCisJaWYgKChwcnN0YXRl LnZtYml0cyAmIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUykgJiYKKwkJIVBhZ2VJc0FsbFZpc2li bGUocHJzdGF0ZS5wYWdlKSkKKwkJaGVhcF9maXhfdm1fY29ycnVwdGlvbigmcHJzdGF0ZSwgSW52 YWxpZE9mZnNldE51bWJlcik7CisKIAkvKgogCSAqIEV4YW1pbmUgYWxsIGxpbmUgcG9pbnRlcnMg YW5kIHR1cGxlIHZpc2liaWxpdHkgaW5mb3JtYXRpb24gdG8gZGV0ZXJtaW5lCiAJICogd2hpY2gg bGluZSBwb2ludGVycyBzaG91bGQgY2hhbmdlIHN0YXRlIGFuZCB3aGljaCB0dXBsZXMgbWF5IGJl IGZyb3plbi4KQEAgLTk3Myw2ICsxMDg4LDcgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUo UHJ1bmVGcmVlemVQYXJhbXMgKnBhcmFtcywKIAlwcmVzdWx0LT5zZXRfYWxsX3Zpc2libGUgPSBw cnN0YXRlLnNldF9hbGxfdmlzaWJsZTsKIAlwcmVzdWx0LT5zZXRfYWxsX2Zyb3plbiA9IHByc3Rh dGUuc2V0X2FsbF9mcm96ZW47CiAJcHJlc3VsdC0+aGFzdHVwID0gcHJzdGF0ZS5oYXN0dXA7CisJ cHJlc3VsdC0+dm1iaXRzID0gcHJzdGF0ZS52bWJpdHM7CiAKIAkvKgogCSAqIEZvciBjYWxsZXJz IHBsYW5uaW5nIHRvIHVwZGF0ZSB0aGUgdmlzaWJpbGl0eSBtYXAsIHRoZSBjb25mbGljdCBob3Jp em9uCkBAIC0xMjk1LDcgKzE0MTEsOCBAQCBwcm9jZXNzX2NoYWluOgogCiAvKiBSZWNvcmQgbG93 ZXN0IHNvb24tcHJ1bmFibGUgWElEICovCiBzdGF0aWMgdm9pZAotaGVhcF9wcnVuZV9yZWNvcmRf cHJ1bmFibGUoUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgVHJhbnNhY3Rpb25JZCB4aWQpCitoZWFwX3By dW5lX3JlY29yZF9wcnVuYWJsZShQcnVuZVN0YXRlICpwcnN0YXRlLCBUcmFuc2FjdGlvbklkIHhp ZCwKKwkJCQkJCSAgIE9mZnNldE51bWJlciBvZmZudW0pCiB7CiAJLyoKIAkgKiBUaGlzIHNob3Vs ZCBleGFjdGx5IG1hdGNoIHRoZSBQYWdlU2V0UHJ1bmFibGUgbWFjcm8uICBXZSBjYW4ndCBzdG9y ZQpAQCAtMTMwNSw2ICsxNDIyLDEzIEBAIGhlYXBfcHJ1bmVfcmVjb3JkX3BydW5hYmxlKFBydW5l U3RhdGUgKnByc3RhdGUsIFRyYW5zYWN0aW9uSWQgeGlkKQogCWlmICghVHJhbnNhY3Rpb25JZElz VmFsaWQocHJzdGF0ZS0+bmV3X3BydW5lX3hpZCkgfHwKIAkJVHJhbnNhY3Rpb25JZFByZWNlZGVz KHhpZCwgcHJzdGF0ZS0+bmV3X3BydW5lX3hpZCkpCiAJCXByc3RhdGUtPm5ld19wcnVuZV94aWQg PSB4aWQ7CisKKwkvKgorCSAqIEl0J3MgaW5jb3JyZWN0IGZvciBhIHBhZ2UgdG8gYmUgbWFya2Vk IGFsbC12aXNpYmxlIGlmIGl0IGNvbnRhaW5zCisJICogcHJ1bmFibGUgaXRlbXMuCisJICovCisJ aWYgKFBhZ2VJc0FsbFZpc2libGUocHJzdGF0ZS0+cGFnZSkpCisJCWhlYXBfZml4X3ZtX2NvcnJ1 cHRpb24ocHJzdGF0ZSwgb2ZmbnVtKTsKIH0KIAogLyogUmVjb3JkIGxpbmUgcG9pbnRlciB0byBi ZSByZWRpcmVjdGVkICovCkBAIC0xMzg4LDYgKzE1MTIsMTUgQEAgaGVhcF9wcnVuZV9yZWNvcmRf ZGVhZF9vcl91bnVzZWQoUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgT2Zmc2V0TnVtYmVyIG9mZm51bSwK IAkJaGVhcF9wcnVuZV9yZWNvcmRfdW51c2VkKHByc3RhdGUsIG9mZm51bSwgd2FzX25vcm1hbCk7 CiAJZWxzZQogCQloZWFwX3BydW5lX3JlY29yZF9kZWFkKHByc3RhdGUsIG9mZm51bSwgd2FzX25v cm1hbCk7CisKKwkvKgorCSAqIEl0J3MgaW5jb3JyZWN0IGZvciB0aGUgcGFnZSB0byBiZSBzZXQg YWxsLXZpc2libGUgaWYgaXQgY29udGFpbnMgZGVhZAorCSAqIGl0ZW1zLiBGaXggdGhhdCBvbiB0 aGUgaGVhcCBwYWdlIGFuZCBjaGVjayB0aGUgVk0gZm9yIGNvcnJ1cHRpb24gYXMKKwkgKiB3ZWxs LiBEbyB0aGF0IGhlcmUgcmF0aGVyIHRoYW4gaW4gaGVhcF9wcnVuZV9yZWNvcmRfZGVhZCgpIHNv IHdlIGFsc28KKwkgKiBjb3ZlciB0dXBsZXMgdGhhdCBhcmUgZGlyZWN0bHkgbWFya2VkIExQX1VO VVNFRCB2aWEgbWFya191bnVzZWRfbm93LgorCSAqLworCWlmIChQYWdlSXNBbGxWaXNpYmxlKHBy c3RhdGUtPnBhZ2UpKQorCQloZWFwX2ZpeF92bV9jb3JydXB0aW9uKHByc3RhdGUsIG9mZm51bSk7 CiB9CiAKIC8qIFJlY29yZCBsaW5lIHBvaW50ZXIgdG8gYmUgbWFya2VkIHVudXNlZCAqLwpAQCAt MTUyNyw3ICsxNjYwLDggQEAgaGVhcF9wcnVuZV9yZWNvcmRfdW5jaGFuZ2VkX2xwX25vcm1hbChQ cnVuZVN0YXRlICpwcnN0YXRlLCBPZmZzZXROdW1iZXIgb2ZmbnVtKQogCQkJICogdGhhdCB0aGUg cGFnZSBpcyByZWNvbnNpZGVyZWQgZm9yIHBydW5pbmcgaW4gZnV0dXJlLgogCQkJICovCiAJCQlo ZWFwX3BydW5lX3JlY29yZF9wcnVuYWJsZShwcnN0YXRlLAotCQkJCQkJCQkJICAgSGVhcFR1cGxl SGVhZGVyR2V0VXBkYXRlWGlkKGh0dXApKTsKKwkJCQkJCQkJCSAgIEhlYXBUdXBsZUhlYWRlckdl dFVwZGF0ZVhpZChodHVwKSwKKwkJCQkJCQkJCSAgIG9mZm51bSk7CiAJCQlicmVhazsKIAogCQlj YXNlIEhFQVBUVVBMRV9JTlNFUlRfSU5fUFJPR1JFU1M6CkBAIC0xNTQyLDYgKzE2NzYsMTAgQEAg aGVhcF9wcnVuZV9yZWNvcmRfdW5jaGFuZ2VkX2xwX25vcm1hbChQcnVuZVN0YXRlICpwcnN0YXRl LCBPZmZzZXROdW1iZXIgb2ZmbnVtKQogCQkJcHJzdGF0ZS0+c2V0X2FsbF92aXNpYmxlID0gZmFs c2U7CiAJCQlwcnN0YXRlLT5zZXRfYWxsX2Zyb3plbiA9IGZhbHNlOwogCisJCQkvKiBUaGUgcGFn ZSBzaG91bGQgbm90IGJlIG1hcmtlZCBhbGwtdmlzaWJsZSAqLworCQkJaWYgKFBhZ2VJc0FsbFZp c2libGUocGFnZSkpCisJCQkJaGVhcF9maXhfdm1fY29ycnVwdGlvbihwcnN0YXRlLCBvZmZudW0p OworCiAJCQkvKgogCQkJICogSWYgd2Ugd2FudGVkIHRvIG9wdGltaXplIGZvciBhYm9ydHMsIHdl IG1pZ2h0IGNvbnNpZGVyIG1hcmtpbmcKIAkJCSAqIHRoZSBwYWdlIHBydW5hYmxlIHdoZW4gd2Ug c2VlIElOU0VSVF9JTl9QUk9HUkVTUy4gIEJ1dCB3ZQpAQCAtMTU2Niw3ICsxNzA0LDggQEAgaGVh cF9wcnVuZV9yZWNvcmRfdW5jaGFuZ2VkX2xwX25vcm1hbChQcnVuZVN0YXRlICpwcnN0YXRlLCBP ZmZzZXROdW1iZXIgb2ZmbnVtKQogCQkJICogdGhlIHBhZ2UgaXMgcmVjb25zaWRlcmVkIGZvciBw cnVuaW5nIGluIGZ1dHVyZS4KIAkJCSAqLwogCQkJaGVhcF9wcnVuZV9yZWNvcmRfcHJ1bmFibGUo cHJzdGF0ZSwKLQkJCQkJCQkJCSAgIEhlYXBUdXBsZUhlYWRlckdldFVwZGF0ZVhpZChodHVwKSk7 CisJCQkJCQkJCQkgICBIZWFwVHVwbGVIZWFkZXJHZXRVcGRhdGVYaWQoaHR1cCksCisJCQkJCQkJ CQkgICBvZmZudW0pOwogCQkJYnJlYWs7CiAKIAkJZGVmYXVsdDoKQEAgLTE2MzIsNiArMTc3MSwx MyBAQCBoZWFwX3BydW5lX3JlY29yZF91bmNoYW5nZWRfbHBfZGVhZChQcnVuZVN0YXRlICpwcnN0 YXRlLCBPZmZzZXROdW1iZXIgb2ZmbnVtKQogCiAJLyogUmVjb3JkIHRoZSBkZWFkIG9mZnNldCBm b3IgdmFjdXVtICovCiAJcHJzdGF0ZS0+ZGVhZG9mZnNldHNbcHJzdGF0ZS0+bHBkZWFkX2l0ZW1z KytdID0gb2ZmbnVtOworCisJLyoKKwkgKiBJdCdzIGluY29ycmVjdCBmb3IgYSBwYWdlIHRvIGJl IG1hcmtlZCBhbGwtdmlzaWJsZSBpZiBpdCBjb250YWlucyBkZWFkCisJICogaXRlbXMuCisJICov CisJaWYgKFBhZ2VJc0FsbFZpc2libGUocHJzdGF0ZS0+cGFnZSkpCisJCWhlYXBfZml4X3ZtX2Nv cnJ1cHRpb24ocHJzdGF0ZSwgb2ZmbnVtKTsKIH0KIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zh Y3V1bWxhenkuYwppbmRleCA4MmM1YjI4ZTBhZC4uOTU3MzIyNjQ4Y2EgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYworKysgYi9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC92YWN1dW1sYXp5LmMKQEAgLTQyNSwxMSArNDI1LDYgQEAgc3RhdGljIHZvaWQgZmlu ZF9uZXh0X3Vuc2tpcHBhYmxlX2Jsb2NrKExWUmVsU3RhdGUgKnZhY3JlbCwgYm9vbCAqc2tpcHNh bGx2aXMpOwogc3RhdGljIGJvb2wgbGF6eV9zY2FuX25ld19vcl9lbXB0eShMVlJlbFN0YXRlICp2 YWNyZWwsIEJ1ZmZlciBidWYsCiAJCQkJCQkJCSAgIEJsb2NrTnVtYmVyIGJsa25vLCBQYWdlIHBh Z2UsCiAJCQkJCQkJCSAgIGJvb2wgc2hhcmVsb2NrLCBCdWZmZXIgdm1idWZmZXIpOwotc3RhdGlj IHZvaWQgaWRlbnRpZnlfYW5kX2ZpeF92bV9jb3JydXB0aW9uKFJlbGF0aW9uIHJlbCwgQnVmZmVy IGhlYXBfYnVmZmVyLAotCQkJCQkJCQkJCSAgIEJsb2NrTnVtYmVyIGhlYXBfYmxrLCBQYWdlIGhl YXBfcGFnZSwKLQkJCQkJCQkJCQkgICBpbnQgbmxwZGVhZF9pdGVtcywKLQkJCQkJCQkJCQkgICBC dWZmZXIgdm1idWZmZXIsCi0JCQkJCQkJCQkJICAgdWludDggKnZtYml0cyk7CiBzdGF0aWMgaW50 CWxhenlfc2Nhbl9wcnVuZShMVlJlbFN0YXRlICp2YWNyZWwsIEJ1ZmZlciBidWYsCiAJCQkJCQkJ QmxvY2tOdW1iZXIgYmxrbm8sIFBhZ2UgcGFnZSwKIAkJCQkJCQlCdWZmZXIgdm1idWZmZXIsCkBA IC0xOTY0LDgxICsxOTU5LDYgQEAgY21wT2Zmc2V0TnVtYmVycyhjb25zdCB2b2lkICphLCBjb25z dCB2b2lkICpiKQogCXJldHVybiBwZ19jbXBfdTE2KCooY29uc3QgT2Zmc2V0TnVtYmVyICopIGEs ICooY29uc3QgT2Zmc2V0TnVtYmVyICopIGIpOwogfQogCi0vKgotICogSGVscGVyIHRvIGNvcnJl Y3QgYW55IGNvcnJ1cHRpb24gZGV0ZWN0ZWQgb24gYSBoZWFwIHBhZ2UgYW5kIGl0cwotICogY29y cmVzcG9uZGluZyB2aXNpYmlsaXR5IG1hcCBwYWdlIGFmdGVyIHBydW5pbmcgYnV0IGJlZm9yZSBz ZXR0aW5nIHRoZQotICogdmlzaWJpbGl0eSBtYXAuIEl0IGV4YW1pbmVzIHRoZSBoZWFwIHBhZ2Us IHRoZSBhc3NvY2lhdGVkIFZNIHBhZ2UsIGFuZCB0aGUKLSAqIG51bWJlciBvZiBkZWFkIGl0ZW1z IHByZXZpb3VzbHkgaWRlbnRpZmllZC4KLSAqCi0gKiBUaGlzIGZ1bmN0aW9uIG11c3QgYmUgY2Fs bGVkIHdoaWxlIGhvbGRpbmcgYW4gZXhjbHVzaXZlIGxvY2sgb24gdGhlIGhlYXAKLSAqIGJ1ZmZl ciwgYW5kIHRoZSBkZWFkIGl0ZW1zIG11c3QgaGF2ZSBiZWVuIGRpc2NvdmVyZWQgdW5kZXIgdGhh dCBzYW1lIGxvY2suCi0KLSAqIFRoZSBwcm92aWRlZCB2bWJpdHMgbXVzdCByZWZsZWN0IHRoZSBj dXJyZW50IHN0YXRlIG9mIHRoZSBWTSBibG9jawotICogcmVmZXJlbmNlZCBieSB2bWJ1ZmZlci4g QWx0aG91Z2ggd2UgZG8gbm90IGhvbGQgYSBsb2NrIG9uIHRoZSBWTSBidWZmZXIsIGl0Ci0gKiBp cyBwaW5uZWQsIGFuZCB0aGUgaGVhcCBidWZmZXIgaXMgZXhjbHVzaXZlbHkgbG9ja2VkLCBlbnN1 cmluZyB0aGF0IG5vCi0gKiBvdGhlciBiYWNrZW5kIGNhbiB1cGRhdGUgdGhlIFZNIGJpdHMgY29y cmVzcG9uZGluZyB0byB0aGlzIGhlYXAgcGFnZS4KLSAqCi0gKiBJZiBpdCBjbGVhcnMgY29ycnVw dGlvbiwgaXQgd2lsbCB6ZXJvIG91dCB2bWJpdHMuCi0gKi8KLXN0YXRpYyB2b2lkCi1pZGVudGlm eV9hbmRfZml4X3ZtX2NvcnJ1cHRpb24oUmVsYXRpb24gcmVsLCBCdWZmZXIgaGVhcF9idWZmZXIs Ci0JCQkJCQkJICAgQmxvY2tOdW1iZXIgaGVhcF9ibGssIFBhZ2UgaGVhcF9wYWdlLAotCQkJCQkJ CSAgIGludCBubHBkZWFkX2l0ZW1zLAotCQkJCQkJCSAgIEJ1ZmZlciB2bWJ1ZmZlciwKLQkJCQkJ CQkgICB1aW50OCAqdm1iaXRzKQotewotCUFzc2VydCh2aXNpYmlsaXR5bWFwX2dldF9zdGF0dXMo cmVsLCBoZWFwX2JsaywgJnZtYnVmZmVyKSA9PSAqdm1iaXRzKTsKLQotCUFzc2VydChCdWZmZXJJ c0xvY2tlZEJ5TWVJbk1vZGUoaGVhcF9idWZmZXIsIEJVRkZFUl9MT0NLX0VYQ0xVU0lWRSkpOwot Ci0JLyoKLQkgKiBBcyBvZiBQb3N0Z3JlU1FMIDkuMiwgdGhlIHZpc2liaWxpdHkgbWFwIGJpdCBz aG91bGQgbmV2ZXIgYmUgc2V0IGlmIHRoZQotCSAqIHBhZ2UtbGV2ZWwgYml0IGlzIGNsZWFyLiAg SG93ZXZlciwgaXQncyBwb3NzaWJsZSB0aGF0IHRoZSBiaXQgZ290Ci0JICogY2xlYXJlZCBhZnRl ciBoZWFwX3ZhY19zY2FuX25leHRfYmxvY2soKSB3YXMgY2FsbGVkLCBzbyB3ZSBtdXN0IHJlY2hl Y2sKLQkgKiB3aXRoIGJ1ZmZlciBsb2NrIGJlZm9yZSBjb25jbHVkaW5nIHRoYXQgdGhlIFZNIGlz IGNvcnJ1cHQuCi0JICovCi0JaWYgKCFQYWdlSXNBbGxWaXNpYmxlKGhlYXBfcGFnZSkgJiYKLQkJ KCgqdm1iaXRzICYgVklTSUJJTElUWU1BUF9WQUxJRF9CSVRTKSAhPSAwKSkKLQl7Ci0JCWVyZXBv cnQoV0FSTklORywKLQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFfQ09SUlVQVEVEKSwKLQkJCQkg ZXJybXNnKCJwYWdlIGlzIG5vdCBtYXJrZWQgYWxsLXZpc2libGUgYnV0IHZpc2liaWxpdHkgbWFw IGJpdCBpcyBzZXQgaW4gcmVsYXRpb24gXCIlc1wiIHBhZ2UgJXUiLAotCQkJCQkJUmVsYXRpb25H ZXRSZWxhdGlvbk5hbWUocmVsKSwgaGVhcF9ibGspKSk7Ci0KLQkJdmlzaWJpbGl0eW1hcF9jbGVh cihyZWwsIGhlYXBfYmxrLCB2bWJ1ZmZlciwKLQkJCQkJCQlWSVNJQklMSVRZTUFQX1ZBTElEX0JJ VFMpOwotCQkqdm1iaXRzID0gMDsKLQl9Ci0KLQkvKgotCSAqIEl0J3MgcG9zc2libGUgZm9yIHRo ZSB2YWx1ZSByZXR1cm5lZCBieQotCSAqIEdldE9sZGVzdE5vblJlbW92YWJsZVRyYW5zYWN0aW9u SWQoKSB0byBtb3ZlIGJhY2t3YXJkcywgc28gaXQncyBub3QKLQkgKiB3cm9uZyBmb3IgdXMgdG8g c2VlIHR1cGxlcyB0aGF0IGFwcGVhciB0byBub3QgYmUgdmlzaWJsZSB0byBldmVyeW9uZQotCSAq IHlldCwgd2hpbGUgUERfQUxMX1ZJU0lCTEUgaXMgYWxyZWFkeSBzZXQuIFRoZSByZWFsIHNhZmUg eG1pbiB2YWx1ZQotCSAqIG5ldmVyIG1vdmVzIGJhY2t3YXJkcywgYnV0IEdldE9sZGVzdE5vblJl bW92YWJsZVRyYW5zYWN0aW9uSWQoKSBpcwotCSAqIGNvbnNlcnZhdGl2ZSBhbmQgc29tZXRpbWVz IHJldHVybnMgYSB2YWx1ZSB0aGF0J3MgdW5uZWNlc3NhcmlseSBzbWFsbCwKLQkgKiBzbyBpZiB3 ZSBzZWUgdGhhdCBjb250cmFkaWN0aW9uIGl0IGp1c3QgbWVhbnMgdGhhdCB0aGUgdHVwbGVzIHRo YXQgd2UKLQkgKiB0aGluayBhcmUgbm90IHZpc2libGUgdG8gZXZlcnlvbmUgeWV0IGFjdHVhbGx5 IGFyZSwgYW5kIHRoZQotCSAqIFBEX0FMTF9WSVNJQkxFIGZsYWcgaXMgY29ycmVjdC4KLQkgKgot CSAqIFRoZXJlIHNob3VsZCBuZXZlciBiZSBMUF9ERUFEIGl0ZW1zIG9uIGEgcGFnZSB3aXRoIFBE X0FMTF9WSVNJQkxFIHNldCwKLQkgKiBob3dldmVyLgotCSAqLwotCWVsc2UgaWYgKFBhZ2VJc0Fs bFZpc2libGUoaGVhcF9wYWdlKSAmJiBubHBkZWFkX2l0ZW1zID4gMCkKLQl7Ci0JCWVyZXBvcnQo V0FSTklORywKLQkJCQkoZXJyY29kZShFUlJDT0RFX0RBVEFfQ09SUlVQVEVEKSwKLQkJCQkgZXJy bXNnKCJwYWdlIGNvbnRhaW5pbmcgTFBfREVBRCBpdGVtcyBpcyBtYXJrZWQgYXMgYWxsLXZpc2li bGUgaW4gcmVsYXRpb24gXCIlc1wiIHBhZ2UgJXUiLAotCQkJCQkJUmVsYXRpb25HZXRSZWxhdGlv bk5hbWUocmVsKSwgaGVhcF9ibGspKSk7Ci0KLQkJUGFnZUNsZWFyQWxsVmlzaWJsZShoZWFwX3Bh Z2UpOwotCQlNYXJrQnVmZmVyRGlydHkoaGVhcF9idWZmZXIpOwotCQl2aXNpYmlsaXR5bWFwX2Ns ZWFyKHJlbCwgaGVhcF9ibGssIHZtYnVmZmVyLAotCQkJCQkJCVZJU0lCSUxJVFlNQVBfVkFMSURf QklUUyk7Ci0JCSp2bWJpdHMgPSAwOwotCX0KLX0KLQogLyoKICAqCWxhenlfc2Nhbl9wcnVuZSgp IC0tIGxhenlfc2Nhbl9oZWFwKCkgcHJ1bmluZyBhbmQgZnJlZXppbmcuCiAgKgpAQCAtMjA3MCw2 ICsxOTkwLDcgQEAgbGF6eV9zY2FuX3BydW5lKExWUmVsU3RhdGUgKnZhY3JlbCwKIAlQcnVuZUZy ZWV6ZVBhcmFtcyBwYXJhbXMgPSB7CiAJCS5yZWxhdGlvbiA9IHJlbCwKIAkJLmJ1ZmZlciA9IGJ1 ZiwKKwkJLnZtYnVmZmVyID0gdm1idWZmZXIsCiAJCS5yZWFzb24gPSBQUlVORV9WQUNVVU1fU0NB TiwKIAkJLm9wdGlvbnMgPSBIRUFQX1BBR0VfUFJVTkVfRlJFRVpFLAogCQkudmlzdGVzdCA9IHZh Y3JlbC0+dmlzdGVzdCwKQEAgLTIxNzksMTggKzIxMDAsMTIgQEAgbGF6eV9zY2FuX3BydW5lKExW UmVsU3RhdGUgKnZhY3JlbCwKIAlBc3NlcnQoIXByZXN1bHQuc2V0X2FsbF92aXNpYmxlIHx8ICEo Kmhhc19scGRlYWRfaXRlbXMpKTsKIAlBc3NlcnQoIXByZXN1bHQuc2V0X2FsbF9mcm96ZW4gfHwg cHJlc3VsdC5zZXRfYWxsX3Zpc2libGUpOwogCi0Jb2xkX3ZtYml0cyA9IHZpc2liaWxpdHltYXBf Z2V0X3N0YXR1cyh2YWNyZWwtPnJlbCwgYmxrbm8sICZ2bWJ1ZmZlcik7Ci0KLQlpZGVudGlmeV9h bmRfZml4X3ZtX2NvcnJ1cHRpb24odmFjcmVsLT5yZWwsIGJ1ZiwgYmxrbm8sIHBhZ2UsCi0JCQkJ CQkJCSAgIHByZXN1bHQubHBkZWFkX2l0ZW1zLCB2bWJ1ZmZlciwKLQkJCQkJCQkJICAgJm9sZF92 bWJpdHMpOwotCiAJaWYgKCFwcmVzdWx0LnNldF9hbGxfdmlzaWJsZSkKIAkJcmV0dXJuIHByZXN1 bHQubmRlbGV0ZWQ7CiAKIAkvKiBTZXQgdGhlIHZpc2liaWxpdHkgbWFwIGFuZCBwYWdlIHZpc2li aWxpdHkgaGludCAqLworCW9sZF92bWJpdHMgPSBwcmVzdWx0LnZtYml0czsKIAluZXdfdm1iaXRz ID0gVklTSUJJTElUWU1BUF9BTExfVklTSUJMRTsKLQogCWlmIChwcmVzdWx0LnNldF9hbGxfZnJv emVuKQogCQluZXdfdm1iaXRzIHw9IFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTjsKIApkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hl YXBhbS5oCmluZGV4IDJmZGM1MGI4NjViLi5jNjQ5ZTVmMTk4MCAxMDA2NDQKLS0tIGEvc3JjL2lu Y2x1ZGUvYWNjZXNzL2hlYXBhbS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaApA QCAtMjYyLDYgKzI2MiwxMiBAQCB0eXBlZGVmIHN0cnVjdCBQcnVuZUZyZWV6ZVBhcmFtcwogCVJl bGF0aW9uCXJlbGF0aW9uOwkJLyogcmVsYXRpb24gY29udGFpbmluZyBidWZmZXIgdG8gYmUgcHJ1 bmVkICovCiAJQnVmZmVyCQlidWZmZXI7CQkJLyogYnVmZmVyIHRvIGJlIHBydW5lZCAqLwogCisJ LyoKKwkgKiBDYWxsZXJzIHNob3VsZCBwcm92aWRlIGEgcGlubmVkIHZtYnVmZmVyIGNvcnJlc3Bv bmRpbmcgdG8gdGhlIGhlYXAKKwkgKiBibG9jayBpbiBidWZmZXIuIFdlIHdpbGwgY2hlY2sgZm9y IGFuZCByZXBhaXIgYW55IGNvcnJ1cHRpb24gaW4gdGhlIFZNLgorCSAqLworCUJ1ZmZlcgkJdm1i dWZmZXI7CisKIAkvKgogCSAqIFRoZSByZWFzb24gcHJ1bmluZyB3YXMgcGVyZm9ybWVkLiAgSXQg aXMgdXNlZCB0byBzZXQgdGhlIFdBTCByZWNvcmQKIAkgKiBvcGNvZGUgd2hpY2ggaXMgdXNlZCBm b3IgZGVidWdnaW5nIGFuZCBhbmFseXNpcyBwdXJwb3Nlcy4KQEAgLTMyNCw2ICszMzAsMTIgQEAg dHlwZWRlZiBzdHJ1Y3QgUHJ1bmVGcmVlemVSZXN1bHQKIAlib29sCQlzZXRfYWxsX2Zyb3plbjsK IAlUcmFuc2FjdGlvbklkIHZtX2NvbmZsaWN0X2hvcml6b247CiAKKwkvKgorCSAqIHZtYml0cyBp cyB0aGUgdmFsdWUgb2YgdGhlIHZtYnVmZmVyJ3Mgdm1iaXRzIGF0IHRoZSBiZWdpbm5pbmcgb2YK KwkgKiBwcnVuaW5nLiBJdCBpcyBjbGVhcmVkIGlmIFZNIGNvcnJ1cHRpb24gaXMgZm91bmQgYW5k IGNvcnJlY3RlZC4KKwkgKi8KKwl1aW50OAkJdm1iaXRzOworCiAJLyoKIAkgKiBXaGV0aGVyIG9y IG5vdCB0aGUgcGFnZSBtYWtlcyByZWwgdHJ1bmNhdGlvbiB1bnNhZmUuICBUaGlzIGlzIHNldCB0 bwogCSAqICd0cnVlJywgZXZlbiBpZiB0aGUgcGFnZSBjb250YWlucyBMUF9ERUFEIGl0ZW1zLiAg VkFDVVVNIHdpbGwgcmVtb3ZlCi0tIAoyLjQzLjAKCg== --00000000000044ac80064d14dd96 Content-Type: text/x-patch; charset="US-ASCII"; name="v38-0002-Add-pruning-fast-path-for-all-visible-and-all-fr.patch" Content-Disposition: attachment; filename="v38-0002-Add-pruning-fast-path-for-all-visible-and-all-fr.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mms4pn9f1 RnJvbSA0ZWJlNTJmMWIwNjBkYjM5NWQ4YWJlNTI1NWVhMWE4NmVkNGZkYzRhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDI1IEZlYiAyMDI2IDE2OjQ4OjE5IC0wNTAwClN1YmplY3Q6IFtQ QVRDSCB2MzggMDIvMTJdIEFkZCBwcnVuaW5nIGZhc3QgcGF0aCBmb3IgYWxsLXZpc2libGUgYW5k CiBhbGwtZnJvemVuIHBhZ2VzCgpCZWNhdXNlIG9mIHRoZSBTS0lQX1BBR0VTX1RIUkVTSE9MRCBv cHRpbWl6YXRpb24gb3IgYSBzdGFsZSBwcnVuZSBYSUQsCmhlYXBfcGFnZV9wcnVuZV9hbmRfZnJl ZXplKCkgY2FuIGJlIGludm9rZWQgZm9yIHBhZ2VzIHdpdGggbm8gcHJ1bmluZyBvcgpmcmVlemlu ZyB3b3JrLiBUbyBhdm9pZCB0aGlzLCBpZiBhIHBhZ2UgaXMgYWxyZWFkeSBhbGwtZnJvemVuIG9y IGl0IGlzCmFsbC12aXNpYmxlIGFuZCBubyBmcmVlemluZyB3aWxsIGJlIGF0dGVtcHRlZCwgd2Ug ZXhpdCBlYXJseS4KCkF1dGhvcjogTWVsYW5pZSBQbGFnZW1hbiA8bWVsYW5pZXBsYWdlbWFuQGdt YWlsLmNvbT4KUmV2aWV3ZWQtYnk6IENoYW8gTGkgPGxpLmV2YW4uY2hhb0BnbWFpbC5jb20+Ci0t LQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgfCA3NSArKysrKysrKysrKysr KysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDc1IGluc2VydGlvbnMoKykKCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCmluZGV4IDUyY2FmYjIzYzZiLi5hNGEwYTkxNmY2MSAx MDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKKysrIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKQEAgLTE4NCw2ICsxODQsNyBAQCBzdGF0 aWMgdm9pZCBwcnVuZV9mcmVlemVfc2V0dXAoUHJ1bmVGcmVlemVQYXJhbXMgKnBhcmFtcywKIAkJ CQkJCQkgICBQcnVuZUZyZWV6ZVJlc3VsdCAqcHJlc3VsdCwKIAkJCQkJCQkgICBQcnVuZVN0YXRl ICpwcnN0YXRlKTsKIHN0YXRpYyB2b2lkIGhlYXBfZml4X3ZtX2NvcnJ1cHRpb24oUHJ1bmVTdGF0 ZSAqcHJzdGF0ZSwgT2Zmc2V0TnVtYmVyIG9mZm51bSk7CitzdGF0aWMgdm9pZCBoZWFwX3BhZ2Vf YnlwYXNzX3BydW5lX2ZyZWV6ZShQcnVuZVN0YXRlICpwcnN0YXRlLCBQcnVuZUZyZWV6ZVJlc3Vs dCAqcHJlc3VsdCk7CiBzdGF0aWMgdm9pZCBwcnVuZV9mcmVlemVfcGxhbihQcnVuZVN0YXRlICpw cnN0YXRlLAogCQkJCQkJCSAgT2Zmc2V0TnVtYmVyICpvZmZfbG9jKTsKIHN0YXRpYyBIVFNWX1Jl c3VsdCBoZWFwX3BydW5lX3NhdGlzZmllc192YWN1dW0oUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwKQEAg LTg4Miw2ICs4ODMsNjggQEAgaGVhcF9maXhfdm1fY29ycnVwdGlvbihQcnVuZVN0YXRlICpwcnN0 YXRlLCBPZmZzZXROdW1iZXIgb2ZmbnVtKQogCXByc3RhdGUtPnZtYml0cyA9IDA7CiB9CiAKKy8q CisgKiBJZiB0aGUgcGFnZSBpcyBhbHJlYWR5IGFsbC1mcm96ZW4sIG9yIGFscmVhZHkgYWxsLXZp c2libGUgYW5kIGZyZWV6aW5nCisgKiBpcyBub3QgYmVpbmcgYXR0ZW1wdGVkLCB0aGVyZSBpcyBu byByZW1haW5pbmcgd29yayBhbmQgd2UgY2FuIGJ5cGFzcyB0aGUKKyAqIGV4cGVuc2l2ZSBvdmVy aGVhZCBvZiBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgpLgorICoKKyAqIFRoaXMgY2FuIGhh cHBlbiB3aGVuIHRoZSBwYWdlIGhhcyBhIHN0YWxlIHBydW5lIGhpbnQsIG9yIGlmIFZBQ1VVTSBp cworICogc2Nhbm5pbmcgYW4gYWxyZWFkeSBhbGwtZnJvemVuIHBhZ2UgZHVlIHRvIFNLSVBfUEFH RVNfVEhSRVNIT0xELgorICoKKyAqIFRoZSBjYWxsZXIgbXVzdCBhbHJlYWR5IGhhdmUgZXhhbWlu ZWQgdGhlIHZpc2liaWxpdHkgbWFwIGFuZCBzYXZlZCB0aGUKKyAqIHN0YXR1cyBmb3IgdGhlIHBh Z2UncyBWTSBiaXRzIGluIHByc3RhdGUtPnZtYml0cy4gQ2FsbGVyIG11c3QgaG9sZCBhCisgKiBj b250ZW50IGxvY2sgb24gdGhlIGhlYXAgcGFnZSBzaW5jZSBpdCB3aWxsIGV4YW1pbmUgbGluZSBw b2ludGVycy4KKyAqCisgKiBCZWZvcmUgY2FsbGluZyBoZWFwX3BhZ2VfYnlwYXNzX3BydW5lX2Zy ZWV6ZSgpLCB0aGUgY2FsbGVyIHNob3VsZCBmaXJzdAorICogY2hlY2sgZm9yIGFuZCBmaXggYW55 IGRpc2NyZXBhbmN5IGJldHdlZW4gdGhlIHBhZ2UtbGV2ZWwgdmlzaWJpbGl0eSBoaW50CisgKiBh bmQgdGhlIHZpc2liaWxpdHkgbWFwLiBPdGhlcndpc2UsIHRoZSBmYXN0IHBhdGggd2lsbCBhbHdh eXMgcHJldmVudCB1cworICogZnJvbSBnZXR0aW5nIHRoZW0gaW4gc3luYy4gTm90ZSB0aGF0IGlm IHRoZXJlIGFyZSB0dXBsZXMgb24gdGhlIHBhZ2UgdGhhdAorICogYXJlIG5vdCB2aXNpYmxlIHRv IGFsbCBidXQgdGhlIFZNIGlzIGluY29ycmVjdGx5IG1hcmtlZAorICogYWxsLXZpc2libGUvYWxs LWZyb3plbiwgd2Ugd2lsbCBub3QgZ2V0IHRoZSBjaGFuY2UgdG8gZml4IHRoYXQgY29ycnVwdGlv bgorICogd2hlbiB1c2luZyB0aGUgZmFzdCBwYXRoLgorICovCitzdGF0aWMgdm9pZAoraGVhcF9w YWdlX2J5cGFzc19wcnVuZV9mcmVlemUoUHJ1bmVTdGF0ZSAqcHJzdGF0ZSwgUHJ1bmVGcmVlemVS ZXN1bHQgKnByZXN1bHQpCit7CisJT2Zmc2V0TnVtYmVyIG1heG9mZiA9IFBhZ2VHZXRNYXhPZmZz ZXROdW1iZXIocHJzdGF0ZS0+cGFnZSk7CisJUGFnZQkJcGFnZSA9IHByc3RhdGUtPnBhZ2U7CisK KwlBc3NlcnQocHJzdGF0ZS0+dm1iaXRzICYgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOIHx8CisJ CSAgIChwcnN0YXRlLT52bWJpdHMgJiBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFICYmCisJCQkh cHJzdGF0ZS0+YXR0ZW1wdF9mcmVlemUpKTsKKworCS8qIFdlJ2xsIGZpbGwgaW4gcHJlc3VsdCBm b3IgdGhlIGNhbGxlciAqLworCW1lbXNldChwcmVzdWx0LCAwLCBzaXplb2YoUHJ1bmVGcmVlemVS ZXN1bHQpKTsKKworCXByZXN1bHQtPnZtYml0cyA9IHByc3RhdGUtPnZtYml0czsKKworCS8qIENs ZWFyIGFueSBzdGFsZSBwcnVuZSBoaW50ICovCisJaWYgKFRyYW5zYWN0aW9uSWRJc1ZhbGlkKFBh Z2VHZXRQcnVuZVhpZChwYWdlKSkpCisJeworCQlQYWdlQ2xlYXJQcnVuYWJsZShwYWdlKTsKKwkJ TWFya0J1ZmZlckRpcnR5SGludChwcnN0YXRlLT5idWZmZXIsIHRydWUpOworCX0KKworCWlmIChQ YWdlSXNFbXB0eShwYWdlKSkKKwkJcmV0dXJuOworCisJcHJlc3VsdC0+aGFzdHVwID0gdHJ1ZTsK KworCS8qCisJICogU2luY2UgdGhlIHBhZ2UgaXMgYWxsLXZpc2libGUsIGEgY291bnQgb2YgdGhl IG5vcm1hbCBJdGVtSWRzIG9uIHRoZQorCSAqIHBhZ2Ugc2hvdWxkIGJlIHN1ZmZpY2llbnQgZm9y IHZhY3V1bSdzIGxpdmUgdHVwbGUgY291bnQuCisJICovCisJZm9yIChPZmZzZXROdW1iZXIgb2Zm ID0gRmlyc3RPZmZzZXROdW1iZXI7CisJCSBvZmYgPD0gbWF4b2ZmOworCQkgb2ZmID0gT2Zmc2V0 TnVtYmVyTmV4dChvZmYpKQorCXsKKwkJaWYgKEl0ZW1JZElzTm9ybWFsKFBhZ2VHZXRJdGVtSWQo cGFnZSwgb2ZmKSkpCisJCQlwcnN0YXRlLT5saXZlX3R1cGxlcysrOworCX0KKworCXByZXN1bHQt PmxpdmVfdHVwbGVzID0gcHJzdGF0ZS0+bGl2ZV90dXBsZXM7Cit9CisKIC8qCiAgKiBQcnVuZSBh bmQgcmVwYWlyIGZyYWdtZW50YXRpb24gYW5kIHBvdGVudGlhbGx5IGZyZWV6ZSB0dXBsZXMgb24g dGhlCiAgKiBzcGVjaWZpZWQgcGFnZS4KQEAgLTk0NSw2ICsxMDA4LDE4IEBAIGhlYXBfcGFnZV9w cnVuZV9hbmRfZnJlZXplKFBydW5lRnJlZXplUGFyYW1zICpwYXJhbXMsCiAJCSFQYWdlSXNBbGxW aXNpYmxlKHByc3RhdGUucGFnZSkpCiAJCWhlYXBfZml4X3ZtX2NvcnJ1cHRpb24oJnByc3RhdGUs IEludmFsaWRPZmZzZXROdW1iZXIpOwogCisJLyoKKwkgKiBJZiB0aGUgcGFnZSBpcyBhbHJlYWR5 IGFsbC1mcm96ZW4sIG9yIGFscmVhZHkgYWxsLXZpc2libGUgd2hlbiBmcmVlemluZworCSAqIGlz IG5vdCBiZWluZyBhdHRlbXB0ZWQsIHdlIGNhbiBleGl0IGVhcmx5LiBEbyB0aGlzIGFmdGVyIGZp eGluZyBhbnkKKwkgKiBkaXNjcmVwYW5jeSBiZXR3ZWVuIHRoZSBwYWdlLWxldmVsIHZpc2liaWxp dHkgaGludCBhbmQgdGhlIFZNLgorCSAqLworCWlmIChwcnN0YXRlLnZtYml0cyAmIFZJU0lCSUxJ VFlNQVBfQUxMX0ZST1pFTiB8fAorCQkocHJzdGF0ZS52bWJpdHMgJiBWSVNJQklMSVRZTUFQX0FM TF9WSVNJQkxFICYmICFwcnN0YXRlLmF0dGVtcHRfZnJlZXplKSkKKwl7CisJCWhlYXBfcGFnZV9i eXBhc3NfcHJ1bmVfZnJlZXplKCZwcnN0YXRlLCBwcmVzdWx0KTsKKwkJcmV0dXJuOworCX0KKwog CS8qCiAJICogRXhhbWluZSBhbGwgbGluZSBwb2ludGVycyBhbmQgdHVwbGUgdmlzaWJpbGl0eSBp bmZvcm1hdGlvbiB0byBkZXRlcm1pbmUKIAkgKiB3aGljaCBsaW5lIHBvaW50ZXJzIHNob3VsZCBj aGFuZ2Ugc3RhdGUgYW5kIHdoaWNoIHR1cGxlcyBtYXkgYmUgZnJvemVuLgotLSAKMi40My4wCgo= --00000000000044ac80064d14dd96 Content-Type: text/x-patch; charset="UTF-8"; name="v38-0003-Use-GlobalVisState-in-vacuum-to-determine-page-l.patch" Content-Disposition: attachment; filename="v38-0003-Use-GlobalVisState-in-vacuum-to-determine-page-l.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mms4ps002 RnJvbSAwNzM5Njk1OGQ2NTg4Y2Q4MmFjNDIwNTU1YjRkNGIyNTE5NGNlZDJkIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDE3IERlYyAyMDI1IDE2OjUxOjA1IC0wNTAwClN1YmplY3Q6IFtQ QVRDSCB2MzggMDMvMTJdIFVzZSBHbG9iYWxWaXNTdGF0ZSBpbiB2YWN1dW0gdG8gZGV0ZXJtaW5l 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 PgpSZXZpZXdlZC1ieTogQ2hhbyBMaSA8bGkuZXZhbi5jaGFvQGdtYWlsLmNvbT4KRGlzY3Vzc2lv bjogaHR0cHM6Ly9wb3N0Z3IuZXMvbS9mbGF0L2JxYzRraDVtaWRmbjQ0Z25qaXFlejNianF2NHpv Z3lkZ3V2ZG40NDZyaXc0NWpjZjN5JTQwNGV6NjZpbDdlYnZrI2M3NTVlZjE1MTUwN2FiYTU4NDcx ZmZhY2E2MDdlNDkzCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX3Zpc2liaWxp dHkuYyB8IDIyICsrKysrKysrKwogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMg ICAgICAgICB8IDM3ICsrKysrKystLS0tLS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFj dXVtbGF6eS5jICAgICAgICB8IDUxICsrKysrKysrKysrKystLS0tLS0tLQogc3JjL2luY2x1ZGUv YWNjZXNzL2hlYXBhbS5oICAgICAgICAgICAgICAgICB8ICAyICsKIDQgZmlsZXMgY2hhbmdlZCwg NzIgaW5zZXJ0aW9ucygrKSwgNDAgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvaGVhcGFtX3Zpc2liaWxpdHkuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9o ZWFwL2hlYXBhbV92aXNpYmlsaXR5LmMKaW5kZXggZmM2NGY0MzQzY2UuLmQ3MGZhYjNhNzYzIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9oZWFwYW1fdmlzaWJpbGl0eS5jCisr KyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV92aXNpYmlsaXR5LmMKQEAgLTExMzEs NiArMTEzMSwyOCBAQCBIZWFwVHVwbGVTYXRpc2ZpZXNWYWN1dW0oSGVhcFR1cGxlIGh0dXAsIFRy YW5zYWN0aW9uSWQgT2xkZXN0WG1pbiwKIAlyZXR1cm4gcmVzOwogfQogCisvKgorICogV3JhcHBl ciBhcm91bmQgR2xvYmFsVmlzVGVzdElzUmVtb3ZhYmxlWGlkKCkgZm9yIHVzZSB3aGVuIGV4YW1p bmluZyBsaXZlCisgKiB0dXBsZXMuIFJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gWElEIG1heSBi ZSBjb25zaWRlcmVkIHJ1bm5pbmcgYnkgYXQgbGVhc3QKKyAqIG9uZSBzbmFwc2hvdC4KKyAqCisg KiBUaGlzIGZ1bmN0aW9uIGFsb25lIGlzIGluc3VmZmljaWVudCB0byBkZXRlcm1pbmUgdHVwbGUg dmlzaWJpbGl0eTsgY2FsbGVycworICogbXVzdCBhbHNvIGNvbnNpZGVyIHRoZSBYSUQncyBjb21t aXQgc3RhdHVzLiBJdHMgcHVycG9zZSBpcyBwdXJlbHkgc2VtYW50aWM6CisgKiB3aGVuIGFwcGxp ZWQgdG8gbGl2ZSB0dXBsZXMsIEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZVhpZCgpIGlzIGNoZWNr aW5nCisgKiB3aGV0aGVyIHRoZSBpbnNlcnRpbmcgdHJhbnNhY3Rpb24gaXMgc3RpbGwgY29uc2lk ZXJlZCBydW5uaW5nLCBub3Qgd2hldGhlcgorICogdGhlIHR1cGxlIGlzIHJlbW92YWJsZS4gTGl2 ZSB0dXBsZXMgYXJlLCBieSBkZWZpbml0aW9uLCBub3QgcmVtb3ZhYmxlLCBidXQKKyAqIHRoZSBz bmFwc2hvdCBjcml0ZXJpYSBmb3Ig4oCcdHJhbnNhY3Rpb24gc3RpbGwgcnVubmluZ+KAnSBhcmUg aWRlbnRpY2FsIHRvCisgKiB0aG9zZSB1c2VkIGZvciByZW1vdmFsIFhJRHMuCisgKgorICogU2Vl IHRoZSBjb21tZW50IGFib3ZlIEdsb2JhbFZpc1Rlc3RJc1JlbW92YWJsZVtGdWxsXVhpZCgpIGZv ciBkZXRhaWxzIG9uIHRoZQorICogcmVxdWlyZWQgcHJlY29uZGl0aW9ucyBmb3IgY2FsbGluZyB0 aGlzIGZ1bmN0aW9uLgorICovCitib29sCitHbG9iYWxWaXNUZXN0WGlkTWF5YmVSdW5uaW5nKEds b2JhbFZpc1N0YXRlICpzdGF0ZSwgVHJhbnNhY3Rpb25JZCB4aWQpCit7CisJcmV0dXJuICFHbG9i YWxWaXNUZXN0SXNSZW1vdmFibGVYaWQoc3RhdGUsIHhpZCk7Cit9CisKIC8qCiAgKiBXb3JrIGhv cnNlIGZvciBIZWFwVHVwbGVTYXRpc2ZpZXNWYWN1dW0gYW5kIHNpbWlsYXIgcm91dGluZXMuCiAg KgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgYi9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwppbmRleCBhNGEwYTkxNmY2MS4uMDVmZTNk ZWViOTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCisr KyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCkBAIC0xMDI4LDYgKzEwMjgs MTcgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUHJ1bmVGcmVlemVQYXJhbXMgKnBhcmFt cywKIAkgKi8KIAlwcnVuZV9mcmVlemVfcGxhbigmcHJzdGF0ZSwgb2ZmX2xvYyk7CiAKKwkvKgor CSAqIEFmdGVyIHByb2Nlc3NpbmcgYWxsIHRoZSBsaXZlIHR1cGxlcyBvbiB0aGUgcGFnZSwgaWYg dGhlIG5ld2VzdCB4bWluCisJICogYW1vbmdzdCB0aGVtIG1heSBiZSBjb25zaWRlcmVkIHJ1bm5p bmcgYnkgYW55IHNuYXBzaG90LCB0aGUgcGFnZSBjYW5ub3QKKwkgKiBiZSBhbGwtdmlzaWJsZS4K KwkgKi8KKwlpZiAocHJzdGF0ZS5zZXRfYWxsX3Zpc2libGUgJiYKKwkJVHJhbnNhY3Rpb25JZElz Tm9ybWFsKHByc3RhdGUudmlzaWJpbGl0eV9jdXRvZmZfeGlkKSAmJgorCQlHbG9iYWxWaXNUZXN0 WGlkTWF5YmVSdW5uaW5nKHByc3RhdGUudmlzdGVzdCwKKwkJCQkJCQkJCSBwcnN0YXRlLnZpc2li aWxpdHlfY3V0b2ZmX3hpZCkpCisJCXByc3RhdGUuc2V0X2FsbF92aXNpYmxlID0gcHJzdGF0ZS5z ZXRfYWxsX2Zyb3plbiA9IGZhbHNlOworCiAJLyoKIAkgKiBJZiBjaGVja3N1bXMgYXJlIGVuYWJs ZWQsIGNhbGxpbmcgaGVhcF9wcnVuZV9zYXRpc2ZpZXNfdmFjdXVtKCkgd2hpbGUKIAkgKiBjaGVj a2luZyB0dXBsZSB2aXNpYmlsaXR5IGluZm9ybWF0aW9uIGluIHBydW5lX2ZyZWV6ZV9wbGFuKCkg bWF5IGhhdmUKQEAgLTE2OTUsMjkgKzE3MDYsMTUgQEAgaGVhcF9wcnVuZV9yZWNvcmRfdW5jaGFu Z2VkX2xwX25vcm1hbChQcnVuZVN0YXRlICpwcnN0YXRlLCBPZmZzZXROdW1iZXIgb2ZmbnVtKQog CQkJCX0KIAogCQkJCS8qCi0JCQkJICogVGhlIGluc2VydGVyIGRlZmluaXRlbHkgY29tbWl0dGVk LiAgQnV0IGlzIGl0IG9sZCBlbm91Z2gKLQkJCQkgKiB0aGF0IGV2ZXJ5b25lIHNlZXMgaXQgYXMg Y29tbWl0dGVkPyAgQSBGcm96ZW5UcmFuc2FjdGlvbklkCi0JCQkJICogaXMgc2VlbiBhcyBjb21t aXR0ZWQgdG8gZXZlcnlvbmUuICBPdGhlcndpc2UsIHdlIGNoZWNrIGlmCi0JCQkJICogdGhlcmUg aXMgYSBzbmFwc2hvdCB0aGF0IGNvbnNpZGVycyB0aGlzIHhpZCB0byBzdGlsbCBiZQotCQkJCSAq IHJ1bm5pbmcsIGFuZCBpZiBzbywgd2UgZG9uJ3QgY29uc2lkZXIgdGhlIHBhZ2UgYWxsLXZpc2li bGUuCisJCQkJICogVGhlIGluc2VydGVyIGRlZmluaXRlbHkgY29tbWl0dGVkLiBCdXQgd2UgZG9u J3Qga25vdyBpZiBpdAorCQkJCSAqIGlzIG9sZCBlbm91Z2ggdGhhdCBldmVyeW9uZSBzZWVzIGl0 IGFzIGNvbW1pdHRlZC4gTGF0ZXIsCisJCQkJICogYWZ0ZXIgcHJvY2Vzc2luZyBhbGwgdGhlIHR1 cGxlcyBvbiB0aGUgcGFnZSwgd2UnbGwgY2hlY2sgaWYKKwkJCQkgKiB0aGVyZSBpcyBhbnkgc25h cHNob3QgdGhhdCBzdGlsbCBjb25zaWRlcnMgdGhlIG5ld2VzdCB4aWQKKwkJCQkgKiBvbiB0aGUg cGFnZSB0byBiZSBydW5uaW5nLiBJZiBzbywgd2UgZG9uJ3QgY29uc2lkZXIgdGhlCisJCQkJICog cGFnZSBhbGwtdmlzaWJsZS4KIAkJCQkgKi8KIAkJCQl4bWluID0gSGVhcFR1cGxlSGVhZGVyR2V0 WG1pbihodHVwKTsKIAotCQkJCS8qCi0JCQkJICogRm9yIG5vdyBhbHdheXMgdXNlIHByc3RhdGUt PmN1dG9mZnMgZm9yIHRoaXMgdGVzdCwgYmVjYXVzZQotCQkJCSAqIHdlIG9ubHkgdXBkYXRlICdz ZXRfYWxsX3Zpc2libGUnIGFuZCAnc2V0X2FsbF9mcm96ZW4nIHdoZW4KLQkJCQkgKiBmcmVlemlu ZyBpcyByZXF1ZXN0ZWQuIFdlIGNvdWxkIHVzZQotCQkJCSAqIEdsb2JhbFZpc1Rlc3RJc1JlbW92 YWJsZVhpZCBpbnN0ZWFkLCBpZiBhIG5vbi1mcmVlemluZwotCQkJCSAqIGNhbGxlciB3YW50ZWQg dG8gc2V0IHRoZSBWTSBiaXQuCi0JCQkJICovCi0JCQkJQXNzZXJ0KHByc3RhdGUtPmN1dG9mZnMp OwotCQkJCWlmICghVHJhbnNhY3Rpb25JZFByZWNlZGVzKHhtaW4sIHByc3RhdGUtPmN1dG9mZnMt Pk9sZGVzdFhtaW4pKQotCQkJCXsKLQkJCQkJcHJzdGF0ZS0+c2V0X2FsbF92aXNpYmxlID0gZmFs c2U7Ci0JCQkJCXByc3RhdGUtPnNldF9hbGxfZnJvemVuID0gZmFsc2U7Ci0JCQkJCWJyZWFrOwot CQkJCX0KLQogCQkJCS8qIFRyYWNrIG5ld2VzdCB4bWluIG9uIHBhZ2UuICovCiAJCQkJaWYgKFRy YW5zYWN0aW9uSWRGb2xsb3dzKHhtaW4sIHByc3RhdGUtPnZpc2liaWxpdHlfY3V0b2ZmX3hpZCkg JiYKIAkJCQkJVHJhbnNhY3Rpb25JZElzTm9ybWFsKHhtaW4pKQpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv dmFjdXVtbGF6eS5jCmluZGV4IDk1NzMyMjY0OGNhLi5hZDg1ZTFlMTczOCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCisrKyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpAQCAtNDYxLDEzICs0NjEsMTMgQEAgc3RhdGljIHZvaWQg ZGVhZF9pdGVtc19jbGVhbnVwKExWUmVsU3RhdGUgKnZhY3JlbCk7CiAKICNpZmRlZiBVU0VfQVNT RVJUX0NIRUNLSU5HCiBzdGF0aWMgYm9vbCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoUmVsYXRp b24gcmVsLCBCdWZmZXIgYnVmLAotCQkJCQkJCQkJIFRyYW5zYWN0aW9uSWQgT2xkZXN0WG1pbiwK KwkJCQkJCQkJCSBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwKIAkJCQkJCQkJCSBib29sICphbGxf ZnJvemVuLAogCQkJCQkJCQkJIFRyYW5zYWN0aW9uSWQgKnZpc2liaWxpdHlfY3V0b2ZmX3hpZCwK IAkJCQkJCQkJCSBPZmZzZXROdW1iZXIgKmxvZ2dpbmdfb2ZmbnVtKTsKICNlbmRpZgogc3RhdGlj IGJvb2wgaGVhcF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVy IGJ1ZiwKLQkJCQkJCQkJCQkgICBUcmFuc2FjdGlvbklkIE9sZGVzdFhtaW4sCisJCQkJCQkJCQkJ ICAgR2xvYmFsVmlzU3RhdGUgKnZpc3Rlc3QsCiAJCQkJCQkJCQkJICAgT2Zmc2V0TnVtYmVyICpk ZWFkb2Zmc2V0cywKIAkJCQkJCQkJCQkgICBpbnQgbmRlYWRvZmZzZXRzLAogCQkJCQkJCQkJCSAg IGJvb2wgKmFsbF9mcm96ZW4sCkBAIC0yMDU0LDEzICsyMDU0LDEwIEBAIGxhenlfc2Nhbl9wcnVu ZShMVlJlbFN0YXRlICp2YWNyZWwsCiAJCUFzc2VydChwcmVzdWx0LmxwZGVhZF9pdGVtcyA9PSAw KTsKIAogCQlBc3NlcnQoaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKHZhY3JlbC0+cmVsLCBidWYs Ci0JCQkJCQkJCQkJdmFjcmVsLT5jdXRvZmZzLk9sZGVzdFhtaW4sICZkZWJ1Z19hbGxfZnJvemVu LAorCQkJCQkJCQkJCXZhY3JlbC0+dmlzdGVzdCwgJmRlYnVnX2FsbF9mcm96ZW4sCiAJCQkJCQkJ CQkJJmRlYnVnX2N1dG9mZiwgJnZhY3JlbC0+b2ZmbnVtKSk7CiAKIAkJQXNzZXJ0KHByZXN1bHQu c2V0X2FsbF9mcm96ZW4gPT0gZGVidWdfYWxsX2Zyb3plbik7Ci0KLQkJQXNzZXJ0KCFUcmFuc2Fj dGlvbklkSXNWYWxpZChkZWJ1Z19jdXRvZmYpIHx8Ci0JCQkgICBkZWJ1Z19jdXRvZmYgPT0gcHJl c3VsdC52bV9jb25mbGljdF9ob3Jpem9uKTsKIAl9CiAjZW5kaWYKIApAQCAtMjgxNiw3ICsyODEz LDcgQEAgbGF6eV92YWN1dW1faGVhcF9wYWdlKExWUmVsU3RhdGUgKnZhY3JlbCwgQmxvY2tOdW1i ZXIgYmxrbm8sIEJ1ZmZlciBidWZmZXIsCiAJICogZG9uZSBvdXRzaWRlIHRoZSBjcml0aWNhbCBz ZWN0aW9uLgogCSAqLwogCWlmIChoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUodmFjcmVs LT5yZWwsIGJ1ZmZlciwKLQkJCQkJCQkJCSAgIHZhY3JlbC0+Y3V0b2Zmcy5PbGRlc3RYbWluLAor CQkJCQkJCQkJICAgdmFjcmVsLT52aXN0ZXN0LAogCQkJCQkJCQkJICAgZGVhZG9mZnNldHMsIG51 bV9vZmZzZXRzLAogCQkJCQkJCQkJICAgJmFsbF9mcm96ZW4sICZ2aXNpYmlsaXR5X2N1dG9mZl94 aWQsCiAJCQkJCQkJCQkgICAmdmFjcmVsLT5vZmZudW0pKQpAQCAtMzU3NywxNCArMzU3NCwxNCBA QCBkZWFkX2l0ZW1zX2NsZWFudXAoTFZSZWxTdGF0ZSAqdmFjcmVsKQogICovCiBzdGF0aWMgYm9v bAogaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKLQkJ CQkJCSBUcmFuc2FjdGlvbklkIE9sZGVzdFhtaW4sCisJCQkJCQkgR2xvYmFsVmlzU3RhdGUgKnZp c3Rlc3QsCiAJCQkJCQkgYm9vbCAqYWxsX2Zyb3plbiwKIAkJCQkJCSBUcmFuc2FjdGlvbklkICp2 aXNpYmlsaXR5X2N1dG9mZl94aWQsCiAJCQkJCQkgT2Zmc2V0TnVtYmVyICpsb2dnaW5nX29mZm51 bSkKIHsKIAogCXJldHVybiBoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUocmVsLCBidWYs Ci0JCQkJCQkJCQkJICBPbGRlc3RYbWluLAorCQkJCQkJCQkJCSAgdmlzdGVzdCwKIAkJCQkJCQkJ CQkgIE5VTEwsIDAsCiAJCQkJCQkJCQkJICBhbGxfZnJvemVuLAogCQkJCQkJCQkJCSAgdmlzaWJp bGl0eV9jdXRvZmZfeGlkLApAQCAtMzYwNSw3ICszNjAyLDcgQEAgaGVhcF9wYWdlX2lzX2FsbF92 aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUg cGFnZSBpcyBhbGwtdmlzaWJsZSBvdGhlciB0aGFuIHRoZSBwcm92aWRlZAogICogZGVhZG9mZnNl dHMgYW5kIGZhbHNlIG90aGVyd2lzZS4KICAqCi0gKiBPbGRlc3RYbWluIGlzIHVzZWQgdG8gZGV0 ZXJtaW5lIHZpc2liaWxpdHkuCisgKiB2aXN0ZXN0IGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHZpc2li aWxpdHkuCiAgKgogICogT3V0cHV0IHBhcmFtZXRlcnM6CiAgKgpAQCAtMzYyNCw3ICszNjIxLDcg QEAgaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKICAq Lwogc3RhdGljIGJvb2wKIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZShSZWxhdGlvbiBy ZWwsIEJ1ZmZlciBidWYsCi0JCQkJCQkJICAgVHJhbnNhY3Rpb25JZCBPbGRlc3RYbWluLAorCQkJ CQkJCSAgIEdsb2JhbFZpc1N0YXRlICp2aXN0ZXN0LAogCQkJCQkJCSAgIE9mZnNldE51bWJlciAq ZGVhZG9mZnNldHMsCiAJCQkJCQkJICAgaW50IG5kZWFkb2Zmc2V0cywKIAkJCQkJCQkgICBib29s ICphbGxfZnJvemVuLApAQCAtMzcwNSw3ICszNzAyLDcgQEAgaGVhcF9wYWdlX3dvdWxkX2JlX2Fs bF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKIAkJCQl7CiAJCQkJCVRyYW5zYWN0 aW9uSWQgeG1pbjsKIAotCQkJCQkvKiBDaGVjayBjb21tZW50cyBpbiBsYXp5X3NjYW5fcHJ1bmUu ICovCisJCQkJCS8qIENoZWNrIGhlYXBfcHJ1bmVfcmVjb3JkX3VuY2hhbmdlZF9scF9ub3JtYWwg Y29tbWVudHMgKi8KIAkJCQkJaWYgKCFIZWFwVHVwbGVIZWFkZXJYbWluQ29tbWl0dGVkKHR1cGxl LnRfZGF0YSkpCiAJCQkJCXsKIAkJCQkJCWFsbF92aXNpYmxlID0gZmFsc2U7CkBAIC0zNzE0LDE2 ICszNzExLDE3IEBAIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZShSZWxhdGlvbiByZWws IEJ1ZmZlciBidWYsCiAJCQkJCX0KIAogCQkJCQkvKgotCQkJCQkgKiBUaGUgaW5zZXJ0ZXIgZGVm aW5pdGVseSBjb21taXR0ZWQuIEJ1dCBpcyBpdCBvbGQgZW5vdWdoCi0JCQkJCSAqIHRoYXQgZXZl cnlvbmUgc2VlcyBpdCBhcyBjb21taXR0ZWQ/CisJCQkJCSAqIFRoZSBpbnNlcnRlciBkZWZpbml0 ZWx5IGNvbW1pdHRlZC4gQnV0IHdlIGRvbid0IGtub3cgaWYKKwkJCQkJICogaXQgaXMgb2xkIGVu b3VnaCB0aGF0IGV2ZXJ5b25lIHNlZXMgaXQgYXMgY29tbWl0dGVkLgorCQkJCQkgKiBEb24ndCBj aGVjayB0aGF0IG5vdy4KKwkJCQkJICoKKwkJCQkJICogSWYgd2Ugc2NhbiBhbGwgdHVwbGVzIHdp dGhvdXQgZmluZGluZyBvbmUgdGhhdCBwcmV2ZW50cworCQkJCQkgKiB0aGUgcGFnZSBmcm9tIGJl aW5nIGFsbC12aXNpYmxlLCB3ZSB0aGVuIGNoZWNrIHdoZXRoZXIKKwkJCQkJICogYW55IHNuYXBz aG90IHN0aWxsIGNvbnNpZGVycyB0aGUgbmV3ZXN0IFhJRCBvbiB0aGUgcGFnZQorCQkJCQkgKiB0 byBiZSBydW5uaW5nLiBJbiB0aGF0IGNhc2UsIHRoZSBwYWdlIGlzIG5vdCBjb25zaWRlcmVkCisJ CQkJCSAqIGFsbC12aXNpYmxlLgogCQkJCQkgKi8KIAkJCQkJeG1pbiA9IEhlYXBUdXBsZUhlYWRl ckdldFhtaW4odHVwbGUudF9kYXRhKTsKLQkJCQkJaWYgKCFUcmFuc2FjdGlvbklkUHJlY2VkZXMo eG1pbiwgT2xkZXN0WG1pbikpCi0JCQkJCXsKLQkJCQkJCWFsbF92aXNpYmxlID0gZmFsc2U7Ci0J CQkJCQkqYWxsX2Zyb3plbiA9IGZhbHNlOwotCQkJCQkJYnJlYWs7Ci0JCQkJCX0KIAogCQkJCQkv KiBUcmFjayBuZXdlc3QgeG1pbiBvbiBwYWdlLiAqLwogCQkJCQlpZiAoVHJhbnNhY3Rpb25JZEZv bGxvd3MoeG1pbiwgKnZpc2liaWxpdHlfY3V0b2ZmX3hpZCkgJiYKQEAgLTM3NTIsNiArMzc1MCwx OSBAQCBoZWFwX3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIg YnVmLAogCQl9CiAJfQkJCQkJCQkvKiBzY2FuIGFsb25nIHBhZ2UgKi8KIAorCS8qCisJICogQWZ0 ZXIgcHJvY2Vzc2luZyBhbGwgdGhlIGxpdmUgdHVwbGVzIG9uIHRoZSBwYWdlLCBpZiB0aGUgbmV3 ZXN0IHhtaW4KKwkgKiBhbW9uZyB0aGVtIG1heSBzdGlsbCBiZSBjb25zaWRlcmVkIHJ1bm5pbmcg YnkgYW55IHNuYXBzaG90LCB0aGUgcGFnZQorCSAqIGNhbm5vdCBiZSBhbGwtdmlzaWJsZS4KKwkg Ki8KKwlpZiAoYWxsX3Zpc2libGUgJiYKKwkJVHJhbnNhY3Rpb25JZElzTm9ybWFsKCp2aXNpYmls aXR5X2N1dG9mZl94aWQpICYmCisJCUdsb2JhbFZpc1Rlc3RYaWRNYXliZVJ1bm5pbmcodmlzdGVz dCwgKnZpc2liaWxpdHlfY3V0b2ZmX3hpZCkpCisJeworCQlhbGxfdmlzaWJsZSA9IGZhbHNlOwor CQkqYWxsX2Zyb3plbiA9IGZhbHNlOworCX0KKwogCS8qIENsZWFyIHRoZSBvZmZzZXQgaW5mb3Jt YXRpb24gb25jZSB3ZSBoYXZlIHByb2Nlc3NlZCB0aGUgZ2l2ZW4gcGFnZS4gKi8KIAkqbG9nZ2lu Z19vZmZudW0gPSBJbnZhbGlkT2Zmc2V0TnVtYmVyOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9hY2Nlc3MvaGVhcGFtLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKaW5kZXggYzY0 OWU1ZjE5ODAuLmJiYjIyM2RkMGQyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVh cGFtLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCkBAIC00NzksNiArNDc5LDgg QEAgZXh0ZXJuIFRNX1Jlc3VsdCBIZWFwVHVwbGVTYXRpc2ZpZXNVcGRhdGUoSGVhcFR1cGxlIGh0 dXAsIENvbW1hbmRJZCBjdXJjaWQsCiAJCQkJCQkJCQkJICBCdWZmZXIgYnVmZmVyKTsKIGV4dGVy biBIVFNWX1Jlc3VsdCBIZWFwVHVwbGVTYXRpc2ZpZXNWYWN1dW0oSGVhcFR1cGxlIGh0dXAsIFRy YW5zYWN0aW9uSWQgT2xkZXN0WG1pbiwKIAkJCQkJCQkJCQkJQnVmZmVyIGJ1ZmZlcik7CisKK2V4 dGVybiBib29sIEdsb2JhbFZpc1Rlc3RYaWRNYXliZVJ1bm5pbmcoR2xvYmFsVmlzU3RhdGUgKnN0 YXRlLCBUcmFuc2FjdGlvbklkIHhpZCk7CiBleHRlcm4gSFRTVl9SZXN1bHQgSGVhcFR1cGxlU2F0 aXNmaWVzVmFjdXVtSG9yaXpvbihIZWFwVHVwbGUgaHR1cCwgQnVmZmVyIGJ1ZmZlciwKIAkJCQkJ CQkJCQkJCSAgIFRyYW5zYWN0aW9uSWQgKmRlYWRfYWZ0ZXIpOwogZXh0ZXJuIHZvaWQgSGVhcFR1 cGxlU2V0SGludEJpdHMoSGVhcFR1cGxlSGVhZGVyIHR1cGxlLCBCdWZmZXIgYnVmZmVyLAotLSAK Mi40My4wCgo= --00000000000044ac80064d14dd96 Content-Type: text/x-patch; charset="US-ASCII"; name="v38-0004-Keep-newest-live-XID-up-to-date-even-if-page-not.patch" Content-Disposition: attachment; filename="v38-0004-Keep-newest-live-XID-up-to-date-even-if-page-not.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mms4pv3m3 RnJvbSBhMzIxMTc1MDc3OGY2YThiZWM0MmVkZDI1ZjU3NjNlMmFlMzFkMjFjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBTYXQsIDI4IEZlYiAyMDI2IDE2OjA2OjUxIC0wNTAwClN1YmplY3Q6IFtQ QVRDSCB2MzggMDQvMTJdIEtlZXAgbmV3ZXN0IGxpdmUgWElEIHVwLXRvLWRhdGUgZXZlbiBpZiBw YWdlIG5vdAogYWxsLXZpc2libGUKCkR1cmluZyBwcnVuaW5nLCB3ZSBrZWVwIHRyYWNrIG9mIHRo ZSBuZXdlc3QgeG1pbiBvZiBsaXZlIHR1cGxlcyBvbiB0aGUKcGFnZSB2aXNpYmxlIHRvIGFsbCBy dW5uaW5nIGFuZCBmdXR1cmUgdHJhbnNhY3Rpb25zIHNvIHRoYXQgd2UgY2FuIHVzZQppdCBsYXRl ciBhcyB0aGUgc25hcHNob3QgY29uZmxpY3QgaG9yaXpvbiB3aGVuIHNldHRpbmcgdGhlIFZNIGlm IHRoZQpwYWdlIHR1cm5zIG91dCB0byBiZSBhbGwtdmlzaWJsZS4KClByZXZpb3VzbHksIHdlIHN0 b3BwZWQgdXBkYXRpbmcgdGhpcyB2YWx1ZSBvbmNlIHdlIGRldGVybWluZWQgdGhlIHBhZ2UKd2Fz IG5vdCBhbGwtdmlzaWJsZS4gSG93ZXZlciwgbWFpbnRhaW5pbmcgaXQgZXZlbiB3aGVuIHRoZSBw YWdlIGlzIG5vdAphbGwtdmlzaWJsZSBpcyBpbmV4cGVuc2l2ZSBhbmQgbWFrZXMgdGhlIHNuYXBz aG90IGNvbmZsaWN0IGhvcml6b24KY2FsY3VsYXRpb24gY2xlYXJlci4gVGhpcyBndWFyYW50ZWVz IGl0IHdvbid0IGNvbnRhaW4gYSBzdGFsZSB2YWx1ZS4KClNpbmNlIHdlJ2xsIGtlZXAgaXQgdXAg dG8gZGF0ZSBhbGwgdGhlIHRpbWUgbm93IGFueXdheSwgdGhlcmUncyBubwpyZWFzb24gbm90IHRv IG1haW50YWluIGFsbF92aXNpYmxlIGZvciBvbi1hY2Nlc3MgcHJ1bmluZy4gVGhpcyB3aWxsCmFs bG93IHVzIHRvIHNldCB0aGUgVk0gb24tYWNjZXNzIGluIHRoZSBmdXR1cmUuCgpBdXRob3I6IE1l bGFuaWUgUGxhZ2VtYW4gPG1lbGFuaWVwbGFnZW1hbkBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBB bmRyZXMgRnJldW5kIDxhbmRyZXNAYW5hcmF6ZWwuZGU+ClJldmlld2VkLWJ5OiBDaGFvIExpIDxs aS5ldmFuLmNoYW9AZ21haWwuY29tPgpEaXNjdXNzaW9uOiBodHRwczovL3Bvc3Rnci5lcy9tL2Jx YzRraDVtaWRmbjQ0Z25qaXFlejNianF2NHpvZ3lkZ3V2ZG40NDZyaXc0NWpjZjN5JTQwNGV6NjZp bDdlYnZrCi0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMgIHwgMTI3ICsr KysrKysrKysrLS0tLS0tLS0tLS0tLS0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVt bGF6eS5jIHwgIDMwICsrKy0tLS0KIDIgZmlsZXMgY2hhbmdlZCwgNjUgaW5zZXJ0aW9ucygrKSwg OTIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1 bmVoZWFwLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwppbmRleCAwNWZl M2RlZWI5NS4uMDFjMTljYTg3OTYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L3BydW5laGVhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jCkBA IC0xMjksNiArMTI5LDkgQEAgdHlwZWRlZiBzdHJ1Y3QKIAkvKiBCaXRzIGluIHRoZSB2bWJ1ZmZl ciBmb3IgdGhpcyBoZWFwIHBhZ2UgKi8KIAl1aW50OAkJdm1iaXRzOwogCisJLyogVGhlIG5ld2Vz dCB4bWluIG9mIGxpdmUgdHVwbGVzIG9uIHRoZSBwYWdlICovCisJVHJhbnNhY3Rpb25JZCBuZXdl c3RfbGl2ZV94aWQ7CisKIAkvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KIAkgKiBJbmZvcm1hdGlvbiBhYm91dCB3aGF0IHdhcyBkb25lCiAJ ICoKQEAgLTE2MCwxMSArMTYzLDYgQEAgdHlwZWRlZiBzdHJ1Y3QKIAkgKiBhbGwtZnJvemVuIGJp dHMgaW4gdGhlIHZpc2liaWxpdHkgbWFwIGNhbiBiZSBzZXQgZm9yIHRoaXMgcGFnZSBhZnRlcgog CSAqIHBydW5pbmcuCiAJICoKLQkgKiB2aXNpYmlsaXR5X2N1dG9mZl94aWQgaXMgdGhlIG5ld2Vz dCB4bWluIG9mIGxpdmUgdHVwbGVzIG9uIHRoZSBwYWdlLgotCSAqIFRoZSBjYWxsZXIgY2FuIHVz ZSBpdCBhcyB0aGUgY29uZmxpY3QgaG9yaXpvbiwgd2hlbiBzZXR0aW5nIHRoZSBWTQotCSAqIGJp dHMuICBJdCBpcyBvbmx5IHZhbGlkIGlmIHdlIGZyb3plIHNvbWUgdHVwbGVzLCBhbmQgc2V0X2Fs bF9mcm96ZW4gaXMKLQkgKiB0cnVlLgotCSAqCiAJICogTk9URTogc2V0X2FsbF92aXNpYmxlIGFu ZCBzZXRfYWxsX2Zyb3plbiBpbml0aWFsbHkgZG9uJ3QgaW5jbHVkZQogCSAqIExQX0RFQUQgaXRl bXMuIFRoYXQncyBjb252ZW5pZW50IGZvciBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgpIHRv CiAJICogdXNlIHRoZW0gdG8gZGVjaWRlIHdoZXRoZXIgdG8gZnJlZXplIHRoZSBwYWdlIG9yIG5v dC4gIFRoZQpAQCAtMTc0LDcgKzE3Miw2IEBAIHR5cGVkZWYgc3RydWN0CiAJICovCiAJYm9vbAkJ c2V0X2FsbF92aXNpYmxlOwogCWJvb2wJCXNldF9hbGxfZnJvemVuOwotCVRyYW5zYWN0aW9uSWQg dmlzaWJpbGl0eV9jdXRvZmZfeGlkOwogfSBQcnVuZVN0YXRlOwogCiAvKiBMb2NhbCBmdW5jdGlv bnMgKi8KQEAgLTQzNSw1MyArNDMyLDM1IEBAIHBydW5lX2ZyZWV6ZV9zZXR1cChQcnVuZUZyZWV6 ZVBhcmFtcyAqcGFyYW1zLAogCXByc3RhdGUtPmRlYWRvZmZzZXRzID0gcHJlc3VsdC0+ZGVhZG9m ZnNldHM7CiAKIAkvKgotCSAqIFZhY3V1bSBtYXkgdXBkYXRlIHRoZSBWTSBhZnRlciB3ZSdyZSBk b25lLiAgV2UgY2FuIGtlZXAgdHJhY2sgb2YKLQkgKiB3aGV0aGVyIHRoZSBwYWdlIHdpbGwgYmUg YWxsLXZpc2libGUgYW5kIGFsbC1mcm96ZW4gYWZ0ZXIgcHJ1bmluZyBhbmQKLQkgKiBmcmVlemlu ZyB0byBoZWxwIHRoZSBjYWxsZXIgdG8gZG8gdGhhdC4KLQkgKgotCSAqIEN1cnJlbnRseSwgb25s eSBWQUNVVU0gc2V0cyB0aGUgVk0gYml0cy4gIFRvIHNhdmUgdGhlIGVmZm9ydCwgb25seSBkbwot CSAqIHRoZSBib29ra2VlcGluZyBpZiB0aGUgY2FsbGVyIG5lZWRzIGl0LiAgQ3VycmVudGx5LCB0 aGF0J3MgdGllZCB0bwotCSAqIEhFQVBfUEFHRV9QUlVORV9GUkVFWkUsIGJ1dCBpdCBjb3VsZCBi ZSBhIHNlcGFyYXRlIGZsYWcgaWYgeW91IHdhbnRlZAotCSAqIHRvIHVwZGF0ZSB0aGUgVk0gYml0 cyB3aXRob3V0IGFsc28gZnJlZXppbmcgb3IgZnJlZXplIHdpdGhvdXQgYWxzbwotCSAqIHNldHRp bmcgdGhlIFZNIGJpdHMuCisJICogV2UgdHJhY2sgd2hldGhlciB0aGUgcGFnZSB3aWxsIGJlIGFs bC12aXNpYmxlL2FsbC1mcm96ZW4gYXQgdGhlIGVuZCBvZgorCSAqIHBydW5pbmcgYW5kIGZyZWV6 aW5nLiBXaGlsZSBleGFtaW5pbmcgdHVwbGUgdmlzaWJpbGl0eSwgd2UnbGwgc2V0CisJICogc2V0 X2FsbF92aXNpYmxlIHRvIGZhbHNlIGlmIHRoZXJlIGFyZSB0dXBsZXMgb24gdGhlIHBhZ2Ugbm90 IHZpc2libGUgdG8KKwkgKiBhbGwgcnVubmluZyBhbmQgZnV0dXJlIHRyYW5zYWN0aW9ucy4gc2V0 X2FsbF92aXNpYmxlIGlzIGFsd2F5cworCSAqIG1haW50YWluZWQgYnV0IG9ubHkgVkFDVVVNIHdp bGwgc2V0IHRoZSBWTSBpZiB0aGUgcGFnZSBlbmRzIHVwIGJlaW5nCisJICogYWxsLXZpc2libGUu CiAJICoKLQkgKiBJbiBhZGRpdGlvbiB0byB0ZWxsaW5nIHRoZSBjYWxsZXIgd2hldGhlciBpdCBj YW4gc2V0IHRoZSBWTSBiaXQsIHdlCi0JICogYWxzbyB1c2UgJ3NldF9hbGxfdmlzaWJsZScgYW5k ICdzZXRfYWxsX2Zyb3plbicgZm9yIG91ciBvd24KLQkgKiBkZWNpc2lvbi1tYWtpbmcuIElmIHRo ZSB3aG9sZSBwYWdlIHdvdWxkIGJlY29tZSBmcm96ZW4sIHdlIGNvbnNpZGVyCi0JICogb3Bwb3J0 dW5pc3RpY2FsbHkgZnJlZXppbmcgdHVwbGVzLiAgV2Ugd2lsbCBub3QgYmUgYWJsZSB0byBmcmVl emUgdGhlCi0JICogd2hvbGUgcGFnZSBpZiB0aGVyZSBhcmUgdHVwbGVzIHByZXNlbnQgdGhhdCBh cmUgbm90IHZpc2libGUgdG8gZXZlcnlvbmUKLQkgKiBvciBpZiB0aGVyZSBhcmUgZGVhZCB0dXBs ZXMgd2hpY2ggYXJlIG5vdCB5ZXQgcmVtb3ZhYmxlLiAgSG93ZXZlciwgZGVhZAotCSAqIHR1cGxl cyB3aGljaCB3aWxsIGJlIHJlbW92ZWQgYnkgdGhlIGVuZCBvZiB2YWN1dW1pbmcgc2hvdWxkIG5v dAotCSAqIHByZWNsdWRlIHVzIGZyb20gb3Bwb3J0dW5pc3RpY2FsbHkgZnJlZXppbmcuICBCZWNh dXNlIG9mIHRoYXQsIHdlIGRvCi0JICogbm90IGltbWVkaWF0ZWx5IGNsZWFyIHNldF9hbGxfdmlz aWJsZSBhbmQgc2V0X2FsbF9mcm96ZW4gd2hlbiB3ZSBzZWUKLQkgKiBMUF9ERUFEIGl0ZW1zLiAg V2UgZml4IHRoYXQgYWZ0ZXIgc2Nhbm5pbmcgdGhlIGxpbmUgcG9pbnRlcnMuIFdlIG11c3QKLQkg KiBjb3JyZWN0IHNldF9hbGxfdmlzaWJsZSBhbmQgc2V0X2FsbF9mcm96ZW4gYmVmb3JlIHdlIHJl dHVybiB0aGVtIHRvIHRoZQotCSAqIGNhbGxlciwgc28gdGhhdCB0aGUgY2FsbGVyIGRvZXNuJ3Qg c2V0IHRoZSBWTSBiaXRzIGluY29ycmVjdGx5LgorCSAqIFdlIGFsc28ga2VlcCB0cmFjayBvZiB0 aGUgbmV3ZXN0IGxpdmUgWElELCB3aGljaCBpcyB1c2VkIHRvIGNhbGN1bGF0ZQorCSAqIHRoZSBz bmFwc2hvdCBjb25mbGljdCBob3Jpem9uIGZvciBhIFdBTCByZWNvcmQgc2V0dGluZyB0aGUgVk0u CiAJICovCi0JaWYgKHByc3RhdGUtPmF0dGVtcHRfZnJlZXplKQotCXsKLQkJcHJzdGF0ZS0+c2V0 X2FsbF92aXNpYmxlID0gdHJ1ZTsKLQkJcHJzdGF0ZS0+c2V0X2FsbF9mcm96ZW4gPSB0cnVlOwot CX0KLQllbHNlCi0JewotCQkvKgotCQkgKiBJbml0aWFsaXppbmcgdG8gZmFsc2UgYWxsb3dzIHNr aXBwaW5nIHRoZSB3b3JrIHRvIHVwZGF0ZSB0aGVtIGluCi0JCSAqIGhlYXBfcHJ1bmVfcmVjb3Jk X3VuY2hhbmdlZF9scF9ub3JtYWwoKS4KLQkJICovCi0JCXByc3RhdGUtPnNldF9hbGxfdmlzaWJs ZSA9IGZhbHNlOwotCQlwcnN0YXRlLT5zZXRfYWxsX2Zyb3plbiA9IGZhbHNlOwotCX0KKwlwcnN0 YXRlLT5zZXRfYWxsX3Zpc2libGUgPSB0cnVlOworCXByc3RhdGUtPm5ld2VzdF9saXZlX3hpZCA9 IEludmFsaWRUcmFuc2FjdGlvbklkOwogCiAJLyoKLQkgKiBUaGUgdmlzaWJpbGl0eSBjdXRvZmYg eGlkIGlzIHRoZSBuZXdlc3QgeG1pbiBvZiBsaXZlIHR1cGxlcyBvbiB0aGUKLQkgKiBwYWdlLiAg SW4gdGhlIGNvbW1vbiBjYXNlLCB0aGlzIHdpbGwgYmUgc2V0IGFzIHRoZSBjb25mbGljdCBob3Jp em9uIHRoZQotCSAqIGNhbGxlciBjYW4gdXNlIGZvciB1cGRhdGluZyB0aGUgVk0uICBJZiwgYXQg dGhlIGVuZCBvZiBmcmVlemluZyBhbmQKLQkgKiBwcnVuaW5nLCB0aGUgcGFnZSBpcyBhbGwtZnJv emVuLCB0aGVyZSBpcyBubyBwb3NzaWJpbGl0eSB0aGF0IGFueQotCSAqIHJ1bm5pbmcgdHJhbnNh Y3Rpb24gb24gdGhlIHN0YW5kYnkgZG9lcyBub3Qgc2VlIHR1cGxlcyBvbiB0aGUgcGFnZSBhcwot CSAqIGFsbC12aXNpYmxlLCBzbyB0aGUgY29uZmxpY3QgaG9yaXpvbiByZW1haW5zIEludmFsaWRU cmFuc2FjdGlvbklkLgorCSAqIEN1cnJlbnRseSwgb25seSBWQUNVVU0gcGVyZm9ybXMgZnJlZXpp bmcsIGJ1dCBvdGhlciBjYWxsZXJzIG1heSBpbiB0aGUKKwkgKiBmdXR1cmUuIE90aGVyIGNhbGxl cnMgbXVzdCBpbml0aWFsaXplIHByc3RhdGUuc2V0X2FsbF9mcm96ZW4gdG8gZmFsc2UsCisJICog c2luY2Ugd2Ugd2lsbCBub3QgY2FsbCBoZWFwX3ByZXBhcmVfZnJlZXplX3R1cGxlKCkgZm9yIGVh Y2ggdHVwbGUuCisJICoKKwkgKiBXZSBvbmx5IGNvbnNpZGVyIG9wcG9ydHVuaXN0aWMgZnJlZXpp bmcgaWYgdGhlIHBhZ2Ugd291bGQgYmVjb21lCisJICogYWxsLWZyb3plbiwgb3IgaWYgaXQgd291 bGQgYmUgYWxsLWZyb3plbiBleGNlcHQgZm9yIGRlYWQgdHVwbGVzIHRoYXQKKwkgKiBWQUNVVU0g d2lsbCByZW1vdmUuCisJICoKKwkgKiBEZWFkIHR1cGxlcyB0aGF0IHdpbGwgYmUgcmVtb3ZlZCBi eSB0aGUgZW5kIG9mIHZhY3V1bSBzaG91bGQgbm90CisJICogcHJldmVudCBvcHBvcnR1bmlzdGlj IGZyZWV6aW5nLiBUaGVyZWZvcmUsIHdlIGRvIG5vdCBjbGVhcgorCSAqIHNldF9hbGxfdmlzaWJs ZSBhbmQgc2V0X2FsbF9mcm96ZW4gd2hlbiB3ZSBlbmNvdW50ZXIgTFBfREVBRCBpdGVtcy4KKwkg KiBJbnN0ZWFkLCB3ZSBjb3JyZWN0IHRoZW0gYWZ0ZXIgZGVjaWRpbmcgd2hldGhlciB0byBmcmVl emUsIGJ1dCBiZWZvcmUKKwkgKiB1cGRhdGluZyB0aGUgVk0sIHRvIGF2b2lkIHNldHRpbmcgdGhl IFZNIGJpdHMgaW5jb3JyZWN0bHkuCiAJICovCi0JcHJzdGF0ZS0+dmlzaWJpbGl0eV9jdXRvZmZf eGlkID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CisJcHJzdGF0ZS0+c2V0X2FsbF9mcm96ZW4gPSBw cnN0YXRlLT5hdHRlbXB0X2ZyZWV6ZTsKIH0KIAogLyoKQEAgLTcxMSw3ICs2OTAsNiBAQCBoZWFw X3BhZ2Vfd2lsbF9mcmVlemUoYm9vbCBkaWRfdHVwbGVfaGludF9mcGksCiAJaWYgKCFwcnN0YXRl LT5hdHRlbXB0X2ZyZWV6ZSkKIAl7CiAJCUFzc2VydCghcHJzdGF0ZS0+c2V0X2FsbF9mcm96ZW4g JiYgcHJzdGF0ZS0+bmZyb3plbiA9PSAwKTsKLQkJQXNzZXJ0KHByc3RhdGUtPmxwZGVhZF9pdGVt cyA9PSAwIHx8ICFwcnN0YXRlLT5zZXRfYWxsX3Zpc2libGUpOwogCQlyZXR1cm4gZmFsc2U7CiAJ fQogCkBAIC05NjYsOSArOTQ0LDggQEAgaGVhcF9wYWdlX2J5cGFzc19wcnVuZV9mcmVlemUoUHJ1 bmVTdGF0ZSAqcHJzdGF0ZSwgUHJ1bmVGcmVlemVSZXN1bHQgKnByZXN1bHQpCiAgKiBIRUFQX1BB R0VfUFJVTkVfRlJFRVpFIG9wdGlvbiBpcyBwYXNzZWQsIHdlIGFsc28gc2V0CiAgKiBwcmVzdWx0 LT5zZXRfYWxsX3Zpc2libGUgYW5kIHByZXN1bHQtPnNldF9hbGxfZnJvemVuIGFmdGVyIGRldGVy bWluaW5nCiAgKiB3aGV0aGVyIG9yIG5vdCB0byBvcHBvcnR1bmlzdGljYWxseSBmcmVlemUsIHRv IGluZGljYXRlIGlmIHRoZSBWTSBiaXRzIGNhbgotICogYmUgc2V0LiAgVGhleSBhcmUgYWx3YXlz IHNldCB0byBmYWxzZSB3aGVuIHRoZSBIRUFQX1BBR0VfUFJVTkVfRlJFRVpFCi0gKiBvcHRpb24g aXMgbm90IHBhc3NlZCwgYmVjYXVzZSBhdCB0aGUgbW9tZW50IG9ubHkgY2FsbGVycyB0aGF0IGFs c28gZnJlZXplCi0gKiBuZWVkIHRoYXQgaW5mb3JtYXRpb24uCisgKiBiZSBzZXQuICdhbGwtZnJv emVuJyBpcyBhbHdheXMgc2V0IHRvIGZhbHNlIHdoZW4gdGhlIEhFQVBfUEFHRV9QUlVORV9GUkVF WkUKKyAqIG9wdGlvbiBpcyBub3QgcGFzc2VkLgogICoKICAqIHByZXN1bHQgY29udGFpbnMgb3V0 cHV0IHBhcmFtZXRlcnMgbmVlZGVkIGJ5IGNhbGxlcnMsIHN1Y2ggYXMgdGhlIG51bWJlciBvZgog ICogdHVwbGVzIHJlbW92ZWQgYW5kIHRoZSBvZmZzZXRzIG9mIGRlYWQgaXRlbXMgb24gdGhlIHBh Z2UgYWZ0ZXIgcHJ1bmluZy4KQEAgLTEwMzQsOSArMTAxMSw5IEBAIGhlYXBfcGFnZV9wcnVuZV9h bmRfZnJlZXplKFBydW5lRnJlZXplUGFyYW1zICpwYXJhbXMsCiAJICogYmUgYWxsLXZpc2libGUu CiAJICovCiAJaWYgKHByc3RhdGUuc2V0X2FsbF92aXNpYmxlICYmCi0JCVRyYW5zYWN0aW9uSWRJ c05vcm1hbChwcnN0YXRlLnZpc2liaWxpdHlfY3V0b2ZmX3hpZCkgJiYKKwkJVHJhbnNhY3Rpb25J ZElzTm9ybWFsKHByc3RhdGUubmV3ZXN0X2xpdmVfeGlkKSAmJgogCQlHbG9iYWxWaXNUZXN0WGlk TWF5YmVSdW5uaW5nKHByc3RhdGUudmlzdGVzdCwKLQkJCQkJCQkJCSBwcnN0YXRlLnZpc2liaWxp dHlfY3V0b2ZmX3hpZCkpCisJCQkJCQkJCQkgcHJzdGF0ZS5uZXdlc3RfbGl2ZV94aWQpKQogCQlw cnN0YXRlLnNldF9hbGxfdmlzaWJsZSA9IHByc3RhdGUuc2V0X2FsbF9mcm96ZW4gPSBmYWxzZTsK IAogCS8qCkBAIC0xMTg3LDcgKzExNjQsNyBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShQ cnVuZUZyZWV6ZVBhcmFtcyAqcGFyYW1zLAogCWlmIChwcmVzdWx0LT5zZXRfYWxsX2Zyb3plbikK IAkJcHJlc3VsdC0+dm1fY29uZmxpY3RfaG9yaXpvbiA9IEludmFsaWRUcmFuc2FjdGlvbklkOwog CWVsc2UKLQkJcHJlc3VsdC0+dm1fY29uZmxpY3RfaG9yaXpvbiA9IHByc3RhdGUudmlzaWJpbGl0 eV9jdXRvZmZfeGlkOworCQlwcmVzdWx0LT52bV9jb25mbGljdF9ob3Jpem9uID0gcHJzdGF0ZS5u ZXdlc3RfbGl2ZV94aWQ7CiAKIAlwcmVzdWx0LT5scGRlYWRfaXRlbXMgPSBwcnN0YXRlLmxwZGVh ZF9pdGVtczsKIAkvKiB0aGUgcHJlc3VsdC0+ZGVhZG9mZnNldHMgYXJyYXkgd2FzIGFscmVhZHkg ZmlsbGVkIGluICovCkBAIC0xNjQ3LDYgKzE2MjQsNyBAQCBzdGF0aWMgdm9pZAogaGVhcF9wcnVu ZV9yZWNvcmRfdW5jaGFuZ2VkX2xwX25vcm1hbChQcnVuZVN0YXRlICpwcnN0YXRlLCBPZmZzZXRO dW1iZXIgb2ZmbnVtKQogewogCUhlYXBUdXBsZUhlYWRlciBodHVwOworCVRyYW5zYWN0aW9uSWQg eG1pbjsKIAlQYWdlCQlwYWdlID0gcHJzdGF0ZS0+cGFnZTsKIAogCUFzc2VydCghcHJzdGF0ZS0+ cHJvY2Vzc2VkW29mZm51bV0pOwpAQCAtMTY5NCwzMiArMTY3MiwyNyBAQCBoZWFwX3BydW5lX3Jl Y29yZF91bmNoYW5nZWRfbHBfbm9ybWFsKFBydW5lU3RhdGUgKnByc3RhdGUsIE9mZnNldE51bWJl ciBvZmZudW0pCiAJCQkgKiBTZWUgU2V0SGludEJpdHMgZm9yIG1vcmUgaW5mby4gIENoZWNrIHRo YXQgdGhlIHR1cGxlIGlzIGhpbnRlZAogCQkJICogeG1pbi1jb21taXR0ZWQgYmVjYXVzZSBvZiB0 aGF0LgogCQkJICovCi0JCQlpZiAocHJzdGF0ZS0+c2V0X2FsbF92aXNpYmxlKQorCQkJaWYgKCFI ZWFwVHVwbGVIZWFkZXJYbWluQ29tbWl0dGVkKGh0dXApKQogCQkJewotCQkJCVRyYW5zYWN0aW9u SWQgeG1pbjsKKwkJCQlwcnN0YXRlLT5zZXRfYWxsX3Zpc2libGUgPSBmYWxzZTsKKwkJCQlwcnN0 YXRlLT5zZXRfYWxsX2Zyb3plbiA9IGZhbHNlOworCQkJCWJyZWFrOworCQkJfQogCi0JCQkJaWYg KCFIZWFwVHVwbGVIZWFkZXJYbWluQ29tbWl0dGVkKGh0dXApKQotCQkJCXsKLQkJCQkJcHJzdGF0 ZS0+c2V0X2FsbF92aXNpYmxlID0gZmFsc2U7Ci0JCQkJCXByc3RhdGUtPnNldF9hbGxfZnJvemVu ID0gZmFsc2U7Ci0JCQkJCWJyZWFrOwotCQkJCX0KKwkJCS8qCisJCQkgKiBUaGUgaW5zZXJ0ZXIg ZGVmaW5pdGVseSBjb21taXR0ZWQuIEJ1dCB3ZSBkb24ndCBrbm93IGlmIGl0IGlzCisJCQkgKiBv bGQgZW5vdWdoIHRoYXQgZXZlcnlvbmUgc2VlcyBpdCBhcyBjb21taXR0ZWQuIExhdGVyLCBhZnRl cgorCQkJICogcHJvY2Vzc2luZyBhbGwgdGhlIHR1cGxlcyBvbiB0aGUgcGFnZSwgd2UnbGwgY2hl Y2sgaWYgdGhlcmUgaXMKKwkJCSAqIGFueSBzbmFwc2hvdCB0aGF0IHN0aWxsIGNvbnNpZGVycyB0 aGUgbmV3ZXN0IHhpZCBvbiB0aGUgcGFnZSB0bworCQkJICogYmUgcnVubmluZy4gSWYgc28sIHdl IGRvbid0IGNvbnNpZGVyIHRoZSBwYWdlIGFsbC12aXNpYmxlLgorCQkJICovCisJCQl4bWluID0g SGVhcFR1cGxlSGVhZGVyR2V0WG1pbihodHVwKTsKIAotCQkJCS8qCi0JCQkJICogVGhlIGluc2Vy dGVyIGRlZmluaXRlbHkgY29tbWl0dGVkLiBCdXQgd2UgZG9uJ3Qga25vdyBpZiBpdAotCQkJCSAq IGlzIG9sZCBlbm91Z2ggdGhhdCBldmVyeW9uZSBzZWVzIGl0IGFzIGNvbW1pdHRlZC4gTGF0ZXIs Ci0JCQkJICogYWZ0ZXIgcHJvY2Vzc2luZyBhbGwgdGhlIHR1cGxlcyBvbiB0aGUgcGFnZSwgd2Un bGwgY2hlY2sgaWYKLQkJCQkgKiB0aGVyZSBpcyBhbnkgc25hcHNob3QgdGhhdCBzdGlsbCBjb25z aWRlcnMgdGhlIG5ld2VzdCB4aWQKLQkJCQkgKiBvbiB0aGUgcGFnZSB0byBiZSBydW5uaW5nLiBJ ZiBzbywgd2UgZG9uJ3QgY29uc2lkZXIgdGhlCi0JCQkJICogcGFnZSBhbGwtdmlzaWJsZS4KLQkJ CQkgKi8KLQkJCQl4bWluID0gSGVhcFR1cGxlSGVhZGVyR2V0WG1pbihodHVwKTsKKwkJCS8qIFRy YWNrIG5ld2VzdCB4bWluIG9uIHBhZ2UuICovCisJCQlpZiAoVHJhbnNhY3Rpb25JZEZvbGxvd3Mo eG1pbiwgcHJzdGF0ZS0+bmV3ZXN0X2xpdmVfeGlkKSAmJgorCQkJCVRyYW5zYWN0aW9uSWRJc05v cm1hbCh4bWluKSkKKwkJCQlwcnN0YXRlLT5uZXdlc3RfbGl2ZV94aWQgPSB4bWluOwogCi0JCQkJ LyogVHJhY2sgbmV3ZXN0IHhtaW4gb24gcGFnZS4gKi8KLQkJCQlpZiAoVHJhbnNhY3Rpb25JZEZv bGxvd3MoeG1pbiwgcHJzdGF0ZS0+dmlzaWJpbGl0eV9jdXRvZmZfeGlkKSAmJgotCQkJCQlUcmFu c2FjdGlvbklkSXNOb3JtYWwoeG1pbikpCi0JCQkJCXByc3RhdGUtPnZpc2liaWxpdHlfY3V0b2Zm X3hpZCA9IHhtaW47Ci0JCQl9CiAJCQlicmVhazsKIAogCQljYXNlIEhFQVBUVVBMRV9SRUNFTlRM WV9ERUFEOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5j IGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCmluZGV4IGFkODVlMWUxNzM4 Li4yMzQwMmU3ZTI2YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVt bGF6eS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3ZhY3V1bWxhenkuYwpAQCAtNDYz LDcgKzQ2Myw3IEBAIHN0YXRpYyB2b2lkIGRlYWRfaXRlbXNfY2xlYW51cChMVlJlbFN0YXRlICp2 YWNyZWwpOwogc3RhdGljIGJvb2wgaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJl bCwgQnVmZmVyIGJ1ZiwKIAkJCQkJCQkJCSBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwKIAkJCQkJ CQkJCSBib29sICphbGxfZnJvemVuLAotCQkJCQkJCQkJIFRyYW5zYWN0aW9uSWQgKnZpc2liaWxp dHlfY3V0b2ZmX3hpZCwKKwkJCQkJCQkJCSBUcmFuc2FjdGlvbklkICpuZXdlc3RfbGl2ZV94aWQs CiAJCQkJCQkJCQkgT2Zmc2V0TnVtYmVyICpsb2dnaW5nX29mZm51bSk7CiAjZW5kaWYKIHN0YXRp YyBib29sIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZl ciBidWYsCkBAIC00NzEsNyArNDcxLDcgQEAgc3RhdGljIGJvb2wgaGVhcF9wYWdlX3dvdWxkX2Jl X2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKIAkJCQkJCQkJCQkgICBPZmZz ZXROdW1iZXIgKmRlYWRvZmZzZXRzLAogCQkJCQkJCQkJCSAgIGludCBuZGVhZG9mZnNldHMsCiAJ CQkJCQkJCQkJICAgYm9vbCAqYWxsX2Zyb3plbiwKLQkJCQkJCQkJCQkgICBUcmFuc2FjdGlvbklk ICp2aXNpYmlsaXR5X2N1dG9mZl94aWQsCisJCQkJCQkJCQkJICAgVHJhbnNhY3Rpb25JZCAqbmV3 ZXN0X2xpdmVfeGlkLAogCQkJCQkJCQkJCSAgIE9mZnNldE51bWJlciAqbG9nZ2luZ19vZmZudW0p Owogc3RhdGljIHZvaWQgdXBkYXRlX3JlbHN0YXRzX2FsbF9pbmRleGVzKExWUmVsU3RhdGUgKnZh Y3JlbCk7CiBzdGF0aWMgdm9pZCB2YWN1dW1fZXJyb3JfY2FsbGJhY2sodm9pZCAqYXJnKTsKQEAg LTI3ODksNyArMjc4OSw3IEBAIGxhenlfdmFjdXVtX2hlYXBfcGFnZShMVlJlbFN0YXRlICp2YWNy ZWwsIEJsb2NrTnVtYmVyIGJsa25vLCBCdWZmZXIgYnVmZmVyLAogCVBhZ2UJCXBhZ2UgPSBCdWZm ZXJHZXRQYWdlKGJ1ZmZlcik7CiAJT2Zmc2V0TnVtYmVyIHVudXNlZFtNYXhIZWFwVHVwbGVzUGVy UGFnZV07CiAJaW50CQkJbnVudXNlZCA9IDA7Ci0JVHJhbnNhY3Rpb25JZCB2aXNpYmlsaXR5X2N1 dG9mZl94aWQ7CisJVHJhbnNhY3Rpb25JZCBuZXdlc3RfbGl2ZV94aWQ7CiAJVHJhbnNhY3Rpb25J ZCBjb25mbGljdF94aWQgPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKIAlib29sCQlhbGxfZnJvemVu OwogCUxWU2F2ZWRFcnJJbmZvIHNhdmVkX2Vycl9pbmZvOwpAQCAtMjgxNSwxNCArMjgxNSwxNCBA QCBsYXp5X3ZhY3V1bV9oZWFwX3BhZ2UoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCbG9ja051bWJlciBi bGtubywgQnVmZmVyIGJ1ZmZlciwKIAlpZiAoaGVhcF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxl KHZhY3JlbC0+cmVsLCBidWZmZXIsCiAJCQkJCQkJCQkgICB2YWNyZWwtPnZpc3Rlc3QsCiAJCQkJ CQkJCQkgICBkZWFkb2Zmc2V0cywgbnVtX29mZnNldHMsCi0JCQkJCQkJCQkgICAmYWxsX2Zyb3pl biwgJnZpc2liaWxpdHlfY3V0b2ZmX3hpZCwKKwkJCQkJCQkJCSAgICZhbGxfZnJvemVuLCAmbmV3 ZXN0X2xpdmVfeGlkLAogCQkJCQkJCQkJICAgJnZhY3JlbC0+b2ZmbnVtKSkKIAl7CiAJCXZtZmxh Z3MgfD0gVklTSUJJTElUWU1BUF9BTExfVklTSUJMRTsKIAkJaWYgKGFsbF9mcm96ZW4pCiAJCXsK IAkJCXZtZmxhZ3MgfD0gVklTSUJJTElUWU1BUF9BTExfRlJPWkVOOwotCQkJQXNzZXJ0KCFUcmFu c2FjdGlvbklkSXNWYWxpZCh2aXNpYmlsaXR5X2N1dG9mZl94aWQpKTsKKwkJCUFzc2VydCghVHJh bnNhY3Rpb25JZElzVmFsaWQobmV3ZXN0X2xpdmVfeGlkKSk7CiAJCX0KIAogCQkvKgpAQCAtMjg2 Myw3ICsyODYzLDcgQEAgbGF6eV92YWN1dW1faGVhcF9wYWdlKExWUmVsU3RhdGUgKnZhY3JlbCwg QmxvY2tOdW1iZXIgYmxrbm8sIEJ1ZmZlciBidWZmZXIsCiAJCXZpc2liaWxpdHltYXBfc2V0X3Zt Yml0cyhibGtubywKIAkJCQkJCQkJIHZtYnVmZmVyLCB2bWZsYWdzLAogCQkJCQkJCQkgdmFjcmVs LT5yZWwtPnJkX2xvY2F0b3IpOwotCQljb25mbGljdF94aWQgPSB2aXNpYmlsaXR5X2N1dG9mZl94 aWQ7CisJCWNvbmZsaWN0X3hpZCA9IG5ld2VzdF9saXZlX3hpZDsKIAl9CiAKIAkvKgpAQCAtMzU3 Niw3ICszNTc2LDcgQEAgc3RhdGljIGJvb2wKIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZShSZWxh dGlvbiByZWwsIEJ1ZmZlciBidWYsCiAJCQkJCQkgR2xvYmFsVmlzU3RhdGUgKnZpc3Rlc3QsCiAJ CQkJCQkgYm9vbCAqYWxsX2Zyb3plbiwKLQkJCQkJCSBUcmFuc2FjdGlvbklkICp2aXNpYmlsaXR5 X2N1dG9mZl94aWQsCisJCQkJCQkgVHJhbnNhY3Rpb25JZCAqbmV3ZXN0X2xpdmVfeGlkLAogCQkJ CQkJIE9mZnNldE51bWJlciAqbG9nZ2luZ19vZmZudW0pCiB7CiAKQEAgLTM1ODQsNyArMzU4NCw3 IEBAIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZShSZWxhdGlvbiByZWwsIEJ1ZmZlciBidWYsCiAJ CQkJCQkJCQkJICB2aXN0ZXN0LAogCQkJCQkJCQkJCSAgTlVMTCwgMCwKIAkJCQkJCQkJCQkgIGFs bF9mcm96ZW4sCi0JCQkJCQkJCQkJICB2aXNpYmlsaXR5X2N1dG9mZl94aWQsCisJCQkJCQkJCQkJ ICBuZXdlc3RfbGl2ZV94aWQsCiAJCQkJCQkJCQkJICBsb2dnaW5nX29mZm51bSk7CiB9CiAjZW5k aWYKQEAgLTM2MDcsNyArMzYwNyw3IEBAIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZShSZWxhdGlv biByZWwsIEJ1ZmZlciBidWYsCiAgKiBPdXRwdXQgcGFyYW1ldGVyczoKICAqCiAgKiAgLSAqYWxs X2Zyb3plbjogdHJ1ZSBpZiBldmVyeSB0dXBsZSBvbiB0aGUgcGFnZSBpcyBmcm96ZW4KLSAqICAt ICp2aXNpYmlsaXR5X2N1dG9mZl94aWQ6IG5ld2VzdCB4bWluOyB2YWxpZCBvbmx5IGlmIHBhZ2Ug aXMgYWxsLXZpc2libGUKKyAqICAtICpuZXdlc3RfbGl2ZV94aWQ6IG5ld2VzdCB4bWluIG9mIGxp dmUgdHVwbGVzIG9uIHRoZSBwYWdlCiAgKiAgLSAqbG9nZ2luZ19vZmZudW06IE9mZnNldE51bWJl ciBvZiBjdXJyZW50IHR1cGxlIGJlaW5nIHByb2Nlc3NlZDsKICAqICAgICB1c2VkIGJ5IHZhY3V1 bSdzIGVycm9yIGNhbGxiYWNrIHN5c3RlbS4KICAqCkBAIC0zNjI1LDcgKzM2MjUsNyBAQCBoZWFw X3BhZ2Vfd291bGRfYmVfYWxsX3Zpc2libGUoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmLAogCQkJ CQkJCSAgIE9mZnNldE51bWJlciAqZGVhZG9mZnNldHMsCiAJCQkJCQkJICAgaW50IG5kZWFkb2Zm c2V0cywKIAkJCQkJCQkgICBib29sICphbGxfZnJvemVuLAotCQkJCQkJCSAgIFRyYW5zYWN0aW9u SWQgKnZpc2liaWxpdHlfY3V0b2ZmX3hpZCwKKwkJCQkJCQkgICBUcmFuc2FjdGlvbklkICpuZXdl c3RfbGl2ZV94aWQsCiAJCQkJCQkJICAgT2Zmc2V0TnVtYmVyICpsb2dnaW5nX29mZm51bSkKIHsK IAlQYWdlCQlwYWdlID0gQnVmZmVyR2V0UGFnZShidWYpOwpAQCAtMzYzNSw3ICszNjM1LDcgQEAg aGVhcF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwK IAlib29sCQlhbGxfdmlzaWJsZSA9IHRydWU7CiAJaW50CQkJbWF0Y2hlZF9kZWFkX2NvdW50ID0g MDsKIAotCSp2aXNpYmlsaXR5X2N1dG9mZl94aWQgPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKKwkq bmV3ZXN0X2xpdmVfeGlkID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CiAJKmFsbF9mcm96ZW4gPSB0 cnVlOwogCiAJQXNzZXJ0KG5kZWFkb2Zmc2V0cyA9PSAwIHx8IGRlYWRvZmZzZXRzKTsKQEAgLTM3 MjQsOSArMzcyNCw5IEBAIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZShSZWxhdGlvbiBy ZWwsIEJ1ZmZlciBidWYsCiAJCQkJCXhtaW4gPSBIZWFwVHVwbGVIZWFkZXJHZXRYbWluKHR1cGxl LnRfZGF0YSk7CiAKIAkJCQkJLyogVHJhY2sgbmV3ZXN0IHhtaW4gb24gcGFnZS4gKi8KLQkJCQkJ aWYgKFRyYW5zYWN0aW9uSWRGb2xsb3dzKHhtaW4sICp2aXNpYmlsaXR5X2N1dG9mZl94aWQpICYm CisJCQkJCWlmIChUcmFuc2FjdGlvbklkRm9sbG93cyh4bWluLCAqbmV3ZXN0X2xpdmVfeGlkKSAm JgogCQkJCQkJVHJhbnNhY3Rpb25JZElzTm9ybWFsKHhtaW4pKQotCQkJCQkJKnZpc2liaWxpdHlf Y3V0b2ZmX3hpZCA9IHhtaW47CisJCQkJCQkqbmV3ZXN0X2xpdmVfeGlkID0geG1pbjsKIAogCQkJ CQkvKiBDaGVjayB3aGV0aGVyIHRoaXMgdHVwbGUgaXMgYWxyZWFkeSBmcm96ZW4gb3Igbm90ICov CiAJCQkJCWlmIChhbGxfdmlzaWJsZSAmJiAqYWxsX2Zyb3plbiAmJgpAQCAtMzc1Niw4ICszNzU2 LDggQEAgaGVhcF9wYWdlX3dvdWxkX2JlX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVy IGJ1ZiwKIAkgKiBjYW5ub3QgYmUgYWxsLXZpc2libGUuCiAJICovCiAJaWYgKGFsbF92aXNpYmxl ICYmCi0JCVRyYW5zYWN0aW9uSWRJc05vcm1hbCgqdmlzaWJpbGl0eV9jdXRvZmZfeGlkKSAmJgot CQlHbG9iYWxWaXNUZXN0WGlkTWF5YmVSdW5uaW5nKHZpc3Rlc3QsICp2aXNpYmlsaXR5X2N1dG9m Zl94aWQpKQorCQlUcmFuc2FjdGlvbklkSXNOb3JtYWwoKm5ld2VzdF9saXZlX3hpZCkgJiYKKwkJ R2xvYmFsVmlzVGVzdFhpZE1heWJlUnVubmluZyh2aXN0ZXN0LCAqbmV3ZXN0X2xpdmVfeGlkKSkK IAl7CiAJCWFsbF92aXNpYmxlID0gZmFsc2U7CiAJCSphbGxfZnJvemVuID0gZmFsc2U7Ci0tIAoy LjQzLjAKCg== --00000000000044ac80064d14dd96 Content-Type: text/x-patch; charset="US-ASCII"; name="v38-0005-Eliminate-XLOG_HEAP2_VISIBLE-from-vacuum-phase-I.patch" Content-Disposition: attachment; filename="v38-0005-Eliminate-XLOG_HEAP2_VISIBLE-from-vacuum-phase-I.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mms4q1584 RnJvbSA1MzJmYTZkYTNhM2I2OTFmMGNhZmNjMThhNTdhZTIyNTFhOGE3NzI1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDIgRGVjIDIwMjUgMTU6MDc6NDIgLTA1MDAKU3ViamVjdDogW1BB VENIIHYzOCAwNS8xMl0gRWxpbWluYXRlIFhMT0dfSEVBUDJfVklTSUJMRSBmcm9tIHZhY3V1bSBw 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 LmMKaW5kZXggMDFjMTljYTg3OTYuLmExMjdlMjkxNDRlIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu 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 VHJhbnNhY3Rpb25JZCBuZXdlc3RfbGl2ZV94aWQ7CkBAIC0xNTcsMjEgKzE3Niw2IEBAIHR5cGVk ZWYgc3RydWN0CiAJICovCiAJaW50CQkJbHBkZWFkX2l0ZW1zOwkvKiBudW1iZXIgb2YgaXRlbXMg aW4gdGhlIGFycmF5ICovCiAJT2Zmc2V0TnVtYmVyICpkZWFkb2Zmc2V0czsJLyogcG9pbnRzIGRp cmVjdGx5IHRvIHByZXN1bHQtPmRlYWRvZmZzZXRzICovCi0KLQkvKgotCSAqIHNldF9hbGxfdmlz aWJsZSBhbmQgc2V0X2FsbF9mcm96ZW4gaW5kaWNhdGUgaWYgdGhlIGFsbC12aXNpYmxlIGFuZAot CSAqIGFsbC1mcm96ZW4gYml0cyBpbiB0aGUgdmlzaWJpbGl0eSBtYXAgY2FuIGJlIHNldCBmb3Ig dGhpcyBwYWdlIGFmdGVyCi0JICogcHJ1bmluZy4KLQkgKgotCSAqIE5PVEU6IHNldF9hbGxfdmlz aWJsZSBhbmQgc2V0X2FsbF9mcm96ZW4gaW5pdGlhbGx5IGRvbid0IGluY2x1ZGUKLQkgKiBMUF9E RUFEIGl0ZW1zLiBUaGF0J3MgY29udmVuaWVudCBmb3IgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVl emUoKSB0bwotCSAqIHVzZSB0aGVtIHRvIGRlY2lkZSB3aGV0aGVyIHRvIGZyZWV6ZSB0aGUgcGFn ZSBvciBub3QuICBUaGUKLQkgKiBzZXRfYWxsX3Zpc2libGUgYW5kIHNldF9hbGxfZnJvemVuIHZh bHVlcyByZXR1cm5lZCB0byB0aGUgY2FsbGVyIGFyZQotCSAqIGFkanVzdGVkIHRvIGluY2x1ZGUg TFBfREVBRCBpdGVtcyBhZnRlciB3ZSBkZXRlcm1pbmUgd2hldGhlciB0bwotCSAqIG9wcG9ydHVu aXN0aWNhbGx5IGZyZWV6ZS4KLQkgKi8KLQlib29sCQlzZXRfYWxsX3Zpc2libGU7Ci0JYm9vbAkJ c2V0X2FsbF9mcm96ZW47CiB9IFBydW5lU3RhdGU7CiAKIC8qIExvY2FsIGZ1bmN0aW9ucyAqLwpA QCAtMjA5LDcgKzIxMyw3IEBAIHN0YXRpYyB2b2lkIHBhZ2VfdmVyaWZ5X3JlZGlyZWN0cyhQYWdl IHBhZ2UpOwogCiBzdGF0aWMgYm9vbCBoZWFwX3BhZ2Vfd2lsbF9mcmVlemUoYm9vbCBkaWRfdHVw bGVfaGludF9mcGksIGJvb2wgZG9fcHJ1bmUsIGJvb2wgZG9faGludF9wcnVuZSwKIAkJCQkJCQkJ ICBQcnVuZVN0YXRlICpwcnN0YXRlKTsKLQorc3RhdGljIGJvb2wgaGVhcF9wYWdlX3dpbGxfc2V0 X3ZtKFBydW5lU3RhdGUgKnByc3RhdGUsIFBydW5lUmVhc29uIHJlYXNvbik7CiAKIC8qCiAgKiBP cHRpb25hbGx5IHBydW5lIGFuZCByZXBhaXIgZnJhZ21lbnRhdGlvbiBpbiB0aGUgc3BlY2lmaWVk IHBhZ2UuCkBAIC0zNzUsOSArMzc5LDEwIEBAIHBydW5lX2ZyZWV6ZV9zZXR1cChQcnVuZUZyZWV6 ZVBhcmFtcyAqcGFyYW1zLAogCiAJQXNzZXJ0KEJ1ZmZlcklzVmFsaWQocGFyYW1zLT52bWJ1ZmZl cikpOwogCXByc3RhdGUtPnZtYnVmZmVyID0gcGFyYW1zLT52bWJ1ZmZlcjsKLQlwcnN0YXRlLT52 bWJpdHMgPSB2aXNpYmlsaXR5bWFwX2dldF9zdGF0dXMocHJzdGF0ZS0+cmVsYXRpb24sCi0JCQkJ CQkJCQkJCSAgIHByc3RhdGUtPmJsb2NrLAotCQkJCQkJCQkJCQkgICAmcHJzdGF0ZS0+dm1idWZm ZXIpOworCXByc3RhdGUtPm5ld192bWJpdHMgPSAwOworCXByc3RhdGUtPm9sZF92bWJpdHMgPSB2 aXNpYmlsaXR5bWFwX2dldF9zdGF0dXMocHJzdGF0ZS0+cmVsYXRpb24sCisJCQkJCQkJCQkJCQkg ICBwcnN0YXRlLT5ibG9jaywKKwkJCQkJCQkJCQkJCSAgICZwcnN0YXRlLT52bWJ1ZmZlcik7CiAK IAkvKgogCSAqIE91ciBzdHJhdGVneSBpcyB0byBzY2FuIHRoZSBwYWdlIGFuZCBtYWtlIGxpc3Rz IG9mIGl0ZW1zIHRvIGNoYW5nZSwKQEAgLTg0MCw3ICs4NDUsNyBAQCBoZWFwX2ZpeF92bV9jb3Jy dXB0aW9uKFBydW5lU3RhdGUgKnByc3RhdGUsIE9mZnNldE51bWJlciBvZmZudW0pCiAJCVBhZ2VD bGVhckFsbFZpc2libGUocHJzdGF0ZS0+cGFnZSk7CiAJCU1hcmtCdWZmZXJEaXJ0eUhpbnQocHJz dGF0ZS0+YnVmZmVyLCB0cnVlKTsKIAl9Ci0JZWxzZSBpZiAocHJzdGF0ZS0+dm1iaXRzICYgVklT SUJJTElUWU1BUF9WQUxJRF9CSVRTKQorCWVsc2UgaWYgKHByc3RhdGUtPm9sZF92bWJpdHMgJiBW SVNJQklMSVRZTUFQX1ZBTElEX0JJVFMpCiAJewogCQkvKgogCQkgKiBBcyBvZiBQb3N0Z3JlU1FM IDkuMiwgdGhlIHZpc2liaWxpdHkgbWFwIGJpdCBzaG91bGQgbmV2ZXIgYmUgc2V0IGlmCkBAIC04 NTgsNyArODYzLDQzIEBAIGhlYXBfZml4X3ZtX2NvcnJ1cHRpb24oUHJ1bmVTdGF0ZSAqcHJzdGF0 ZSwgT2Zmc2V0TnVtYmVyIG9mZm51bSkKIAogCXZpc2liaWxpdHltYXBfY2xlYXIocHJzdGF0ZS0+ cmVsYXRpb24sIHByc3RhdGUtPmJsb2NrLCBwcnN0YXRlLT52bWJ1ZmZlciwKIAkJCQkJCVZJU0lC SUxJVFlNQVBfVkFMSURfQklUUyk7Ci0JcHJzdGF0ZS0+dm1iaXRzID0gMDsKKwlwcnN0YXRlLT5v bGRfdm1iaXRzID0gMDsKK30KKworLyoKKyAqIERlY2lkZSB3aGV0aGVyIHRvIHNldCB0aGUgdmlz aWJpbGl0eSBtYXAgYml0cyAoYWxsLXZpc2libGUgYW5kIGFsbC1mcm96ZW4pCisgKiBmb3IgaGVh cF9ibGsgdXNpbmcgaW5mb3JtYXRpb24gZnJvbSB0aGUgUHJ1bmVTdGF0ZSBhbmQgVk0uCisgKgor ICogVGhpcyBmdW5jdGlvbiBkb2VzIG5vdCBhY3R1YWxseSBzZXQgdGhlIFZNIGJpdHMgb3IgcGFn ZS1sZXZlbCB2aXNpYmlsaXR5CisgKiBoaW50LCBQRF9BTExfVklTSUJMRS4KKyAqCisgKiBSZXR1 cm5zIHRydWUgaWYgb25lIG9yIGJvdGggVk0gYml0cyBzaG91bGQgYmUgc2V0IGFuZCBmYWxzZSBv dGhlcndpc2UuCisgKi8KK3N0YXRpYyBib29sCitoZWFwX3BhZ2Vfd2lsbF9zZXRfdm0oUHJ1bmVT dGF0ZSAqcHJzdGF0ZSwgUHJ1bmVSZWFzb24gcmVhc29uKQoreworCS8qCisJICogVGhvdWdoIG9u LWFjY2VzcyBwcnVuaW5nIG1haW50YWlucyBwcnN0YXRlLT5zZXRfYWxsX3Zpc2libGUsIHdlIGRv bid0CisJICogY29uc2lkZXIgc2V0dGluZyB0aGUgVk0uCisJICovCisJaWYgKHJlYXNvbiA9PSBQ UlVORV9PTl9BQ0NFU1MpCisJCXJldHVybiBmYWxzZTsKKworCWlmICghcHJzdGF0ZS0+c2V0X2Fs bF92aXNpYmxlKQorCQlyZXR1cm4gZmFsc2U7CisKKwlwcnN0YXRlLT5uZXdfdm1iaXRzID0gVklT SUJJTElUWU1BUF9BTExfVklTSUJMRTsKKworCWlmIChwcnN0YXRlLT5zZXRfYWxsX2Zyb3plbikK KwkJcHJzdGF0ZS0+bmV3X3ZtYml0cyB8PSBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU47CisKKwlp ZiAocHJzdGF0ZS0+bmV3X3ZtYml0cyA9PSBwcnN0YXRlLT5vbGRfdm1iaXRzKQorCXsKKwkJcHJz dGF0ZS0+bmV3X3ZtYml0cyA9IDA7CisJCXJldHVybiBmYWxzZTsKKwl9CisKKwlyZXR1cm4gdHJ1 ZTsKIH0KIAogLyoKQEAgLTg4NywxNSArOTI4LDEzIEBAIGhlYXBfcGFnZV9ieXBhc3NfcHJ1bmVf ZnJlZXplKFBydW5lU3RhdGUgKnByc3RhdGUsIFBydW5lRnJlZXplUmVzdWx0ICpwcmVzdWx0KQog CU9mZnNldE51bWJlciBtYXhvZmYgPSBQYWdlR2V0TWF4T2Zmc2V0TnVtYmVyKHByc3RhdGUtPnBh Z2UpOwogCVBhZ2UJCXBhZ2UgPSBwcnN0YXRlLT5wYWdlOwogCi0JQXNzZXJ0KHByc3RhdGUtPnZt Yml0cyAmIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTiB8fAotCQkgICAocHJzdGF0ZS0+dm1iaXRz ICYgVklTSUJJTElUWU1BUF9BTExfVklTSUJMRSAmJgorCUFzc2VydChwcnN0YXRlLT5vbGRfdm1i aXRzICYgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOIHx8CisJCSAgIChwcnN0YXRlLT5vbGRfdm1i aXRzICYgVklTSUJJTElUWU1BUF9BTExfVklTSUJMRSAmJgogCQkJIXByc3RhdGUtPmF0dGVtcHRf ZnJlZXplKSk7CiAKIAkvKiBXZSdsbCBmaWxsIGluIHByZXN1bHQgZm9yIHRoZSBjYWxsZXIgKi8K IAltZW1zZXQocHJlc3VsdCwgMCwgc2l6ZW9mKFBydW5lRnJlZXplUmVzdWx0KSk7CiAKLQlwcmVz dWx0LT52bWJpdHMgPSBwcnN0YXRlLT52bWJpdHM7Ci0KIAkvKiBDbGVhciBhbnkgc3RhbGUgcHJ1 bmUgaGludCAqLwogCWlmIChUcmFuc2FjdGlvbklkSXNWYWxpZChQYWdlR2V0UHJ1bmVYaWQocGFn ZSkpKQogCXsKQEAgLTkyNSw3ICs5NjQsOCBAQCBoZWFwX3BhZ2VfYnlwYXNzX3BydW5lX2ZyZWV6 ZShQcnVuZVN0YXRlICpwcnN0YXRlLCBQcnVuZUZyZWV6ZVJlc3VsdCAqcHJlc3VsdCkKIAogLyoK ICAqIFBydW5lIGFuZCByZXBhaXIgZnJhZ21lbnRhdGlvbiBhbmQgcG90ZW50aWFsbHkgZnJlZXpl IHR1cGxlcyBvbiB0aGUKLSAqIHNwZWNpZmllZCBwYWdlLgorICogc3BlY2lmaWVkIHBhZ2UuIElm IHRoZSBwYWdlJ3MgdmlzaWJpbGl0eSBzdGF0dXMgaGFzIGNoYW5nZWQsIHVwZGF0ZSBpdCBpbgor ICogdGhlIFZNLgogICoKICAqIENhbGxlciBtdXN0IGhhdmUgcGluIGFuZCBidWZmZXIgY2xlYW51 cCBsb2NrIG9uIHRoZSBwYWdlLiAgTm90ZSB0aGF0IHdlCiAgKiBkb24ndCB1cGRhdGUgdGhlIEZT TSBpbmZvcm1hdGlvbiBmb3IgcGFnZSBvbiBjYWxsZXIncyBiZWhhbGYuICBDYWxsZXIgbWlnaHQK QEAgLTk0MCwxMiArOTgwLDEwIEBAIGhlYXBfcGFnZV9ieXBhc3NfcHJ1bmVfZnJlZXplKFBydW5l U3RhdGUgKnByc3RhdGUsIFBydW5lRnJlZXplUmVzdWx0ICpwcmVzdWx0KQogICogdHVwbGVzIGlm IGl0J3MgcmVxdWlyZWQgaW4gb3JkZXIgdG8gYWR2YW5jZSByZWxmcm96ZW54aWQgLyByZWxtaW5t eGlkLCBvcgogICogaWYgaXQncyBjb25zaWRlcmVkIGFkdmFudGFnZW91cyBmb3Igb3ZlcmFsbCBz eXN0ZW0gcGVyZm9ybWFuY2UgdG8gZG8gc28KICAqIG5vdy4gIFRoZSAncGFyYW1zLmN1dG9mZnMn LCAncHJlc3VsdCcsICduZXdfcmVsZnJvemVuX3hpZCcgYW5kCi0gKiAnbmV3X3JlbG1pbl9teGlk JyBhcmd1bWVudHMgYXJlIHJlcXVpcmVkIHdoZW4gZnJlZXppbmcuICBXaGVuCi0gKiBIRUFQX1BB R0VfUFJVTkVfRlJFRVpFIG9wdGlvbiBpcyBwYXNzZWQsIHdlIGFsc28gc2V0Ci0gKiBwcmVzdWx0 LT5zZXRfYWxsX3Zpc2libGUgYW5kIHByZXN1bHQtPnNldF9hbGxfZnJvemVuIGFmdGVyIGRldGVy bWluaW5nCi0gKiB3aGV0aGVyIG9yIG5vdCB0byBvcHBvcnR1bmlzdGljYWxseSBmcmVlemUsIHRv IGluZGljYXRlIGlmIHRoZSBWTSBiaXRzIGNhbgotICogYmUgc2V0LiAnYWxsLWZyb3plbicgaXMg YWx3YXlzIHNldCB0byBmYWxzZSB3aGVuIHRoZSBIRUFQX1BBR0VfUFJVTkVfRlJFRVpFCi0gKiBv cHRpb24gaXMgbm90IHBhc3NlZC4KKyAqICduZXdfcmVsbWluX214aWQnIGFyZ3VtZW50cyBhcmUg cmVxdWlyZWQgd2hlbiBmcmVlemluZy4KKyAqCisgKiBBIHZtYnVmZmVyIGNvcnJlc3BvbmRpbmcg dG8gdGhlIGhlYXAgcGFnZSBpcyBhbHNvIHBhc3NlZCBhbmQgaWYgdGhlIHBhZ2UgaXMKKyAqIGZv dW5kIHRvIGJlIGFsbC12aXNpYmxlL2FsbC1mcm96ZW4sIHdlIHdpbGwgc2V0IGl0IGluIHRoZSBW TS4KICAqCiAgKiBwcmVzdWx0IGNvbnRhaW5zIG91dHB1dCBwYXJhbWV0ZXJzIG5lZWRlZCBieSBj YWxsZXJzLCBzdWNoIGFzIHRoZSBudW1iZXIgb2YKICAqIHR1cGxlcyByZW1vdmVkIGFuZCB0aGUg b2Zmc2V0cyBvZiBkZWFkIGl0ZW1zIG9uIHRoZSBwYWdlIGFmdGVyIHBydW5pbmcuCkBAIC05NzMs MTUgKzEwMTEsMTcgQEAgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUoUHJ1bmVGcmVlemVQYXJh bXMgKnBhcmFtcywKIAlib29sCQlkb19mcmVlemU7CiAJYm9vbAkJZG9fcHJ1bmU7CiAJYm9vbAkJ ZG9faGludF9wcnVuZTsKKwlib29sCQlkb19zZXRfdm07CiAJYm9vbAkJZGlkX3R1cGxlX2hpbnRf ZnBpOwogCWludDY0CQlmcGlfYmVmb3JlID0gcGdXYWxVc2FnZS53YWxfZnBpOworCVRyYW5zYWN0 aW9uSWQgY29uZmxpY3RfeGlkID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CiAKIAkvKiBJbml0aWFs aXplIHByc3RhdGUgKi8KIAlwcnVuZV9mcmVlemVfc2V0dXAocGFyYW1zLAogCQkJCQkgICBuZXdf cmVsZnJvemVuX3hpZCwgbmV3X3JlbG1pbl9teGlkLAogCQkJCQkgICBwcmVzdWx0LCAmcHJzdGF0 ZSk7CiAKLQlpZiAoKHByc3RhdGUudm1iaXRzICYgVklTSUJJTElUWU1BUF9WQUxJRF9CSVRTKSAm JgorCWlmICgocHJzdGF0ZS5vbGRfdm1iaXRzICYgVklTSUJJTElUWU1BUF9WQUxJRF9CSVRTKSAm JgogCQkhUGFnZUlzQWxsVmlzaWJsZShwcnN0YXRlLnBhZ2UpKQogCQloZWFwX2ZpeF92bV9jb3Jy dXB0aW9uKCZwcnN0YXRlLCBJbnZhbGlkT2Zmc2V0TnVtYmVyKTsKIApAQCAtOTkwLDggKzEwMzAs OCBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShQcnVuZUZyZWV6ZVBhcmFtcyAqcGFyYW1z LAogCSAqIGlzIG5vdCBiZWluZyBhdHRlbXB0ZWQsIHdlIGNhbiBleGl0IGVhcmx5LiBEbyB0aGlz IGFmdGVyIGZpeGluZyBhbnkKIAkgKiBkaXNjcmVwYW5jeSBiZXR3ZWVuIHRoZSBwYWdlLWxldmVs IHZpc2liaWxpdHkgaGludCBhbmQgdGhlIFZNLgogCSAqLwotCWlmIChwcnN0YXRlLnZtYml0cyAm IFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTiB8fAotCQkocHJzdGF0ZS52bWJpdHMgJiBWSVNJQklM SVRZTUFQX0FMTF9WSVNJQkxFICYmICFwcnN0YXRlLmF0dGVtcHRfZnJlZXplKSkKKwlpZiAocHJz dGF0ZS5vbGRfdm1iaXRzICYgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOIHx8CisJCShwcnN0YXRl Lm9sZF92bWJpdHMgJiBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxFICYmICFwcnN0YXRlLmF0dGVt cHRfZnJlZXplKSkKIAl7CiAJCWhlYXBfcGFnZV9ieXBhc3NfcHJ1bmVfZnJlZXplKCZwcnN0YXRl LCBwcmVzdWx0KTsKIAkJcmV0dXJuOwpAQCAtMTA2MSw2ICsxMTAxLDMwIEBAIGhlYXBfcGFnZV9w cnVuZV9hbmRfZnJlZXplKFBydW5lRnJlZXplUGFyYW1zICpwYXJhbXMsCiAJCXByc3RhdGUuc2V0 X2FsbF92aXNpYmxlID0gcHJzdGF0ZS5zZXRfYWxsX2Zyb3plbiA9IGZhbHNlOwogCiAJQXNzZXJ0 KCFwcnN0YXRlLnNldF9hbGxfZnJvemVuIHx8IHByc3RhdGUuc2V0X2FsbF92aXNpYmxlKTsKKwlB c3NlcnQoIXByc3RhdGUuc2V0X2FsbF92aXNpYmxlIHx8IChwcnN0YXRlLmxwZGVhZF9pdGVtcyA9 PSAwKSk7CisKKwlkb19zZXRfdm0gPSBoZWFwX3BhZ2Vfd2lsbF9zZXRfdm0oJnByc3RhdGUsIHBh cmFtcy0+cmVhc29uKTsKKworCS8qCisJICogbmV3X3ZtYml0cyBzaG91bGQgYmUgMCByZWdhcmRs ZXNzIG9mIHdoZXRoZXIgb3Igbm90IHRoZSBwYWdlIGlzCisJICogYWxsLXZpc2libGUgaWYgd2Ug ZG8gbm90IGludGVuZCB0byBzZXQgdGhlIFZNLgorCSAqLworCUFzc2VydChkb19zZXRfdm0gfHwg cHJzdGF0ZS5uZXdfdm1iaXRzID09IDApOworCisJLyoKKwkgKiBUaGUgc25hcHNob3QgY29uZmxp Y3QgaG9yaXpvbiBmb3IgdGhlIHdob2xlIHJlY29yZCBpcyB0aGUgbW9zdAorCSAqIGNvbnNlcnZh dGl2ZSAobmV3ZXN0KSBob3Jpem9uIHJlcXVpcmVkIGJ5IGFueSBjaGFuZ2UgaW4gdGhlIHJlY29y ZC4KKwkgKi8KKwlpZiAoZG9fc2V0X3ZtKQorCQljb25mbGljdF94aWQgPSBwcnN0YXRlLm5ld2Vz dF9saXZlX3hpZDsKKwlpZiAoZG9fZnJlZXplICYmIFRyYW5zYWN0aW9uSWRGb2xsb3dzKHByc3Rh dGUucGFnZWZyei5GcmVlemVQYWdlQ29uZmxpY3RYaWQsIGNvbmZsaWN0X3hpZCkpCisJCWNvbmZs aWN0X3hpZCA9IHByc3RhdGUucGFnZWZyei5GcmVlemVQYWdlQ29uZmxpY3RYaWQ7CisJaWYgKGRv X3BydW5lICYmIFRyYW5zYWN0aW9uSWRGb2xsb3dzKHByc3RhdGUubGF0ZXN0X3hpZF9yZW1vdmVk LCBjb25mbGljdF94aWQpKQorCQljb25mbGljdF94aWQgPSBwcnN0YXRlLmxhdGVzdF94aWRfcmVt b3ZlZDsKKworCS8qIExvY2sgdm1idWZmZXIgYmVmb3JlIGVudGVyaW5nIGEgY3JpdGljYWwgc2Vj dGlvbiAqLworCWlmIChkb19zZXRfdm0pCisJCUxvY2tCdWZmZXIocHJzdGF0ZS52bWJ1ZmZlciwg QlVGRkVSX0xPQ0tfRVhDTFVTSVZFKTsKIAogCS8qIEFueSBlcnJvciB3aGlsZSBhcHBseWluZyB0 aGUgY2hhbmdlcyBpcyBjcml0aWNhbCAqLwogCVNUQVJUX0NSSVRfU0VDVElPTigpOwpAQCAtMTA4 MiwxNCArMTE0NiwxNyBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShQcnVuZUZyZWV6ZVBh cmFtcyAqcGFyYW1zLAogCiAJCS8qCiAJCSAqIElmIHRoYXQncyBhbGwgd2UgaGFkIHRvIGRvIHRv IHRoZSBwYWdlLCB0aGlzIGlzIGEgbm9uLVdBTC1sb2dnZWQKLQkJICogaGludC4gIElmIHdlIGFy ZSBnb2luZyB0byBmcmVlemUgb3IgcHJ1bmUgdGhlIHBhZ2UsIHdlIHdpbGwgbWFyawotCQkgKiB0 aGUgYnVmZmVyIGRpcnR5IGJlbG93LgorCQkgKiBoaW50LiAgSWYgd2UgYXJlIGdvaW5nIHRvIGZy ZWV6ZSBvciBwcnVuZSB0aGUgcGFnZSBvciBzZXQKKwkJICogUERfQUxMX1ZJU0lCTEUsIHdlIHdp bGwgbWFyayB0aGUgYnVmZmVyIGRpcnR5IGJlbG93LgorCQkgKgorCQkgKiBTZXR0aW5nIFBEX0FM TF9WSVNJQkxFIGlzIGZ1bGx5IFdBTC1sb2dnZWQgYmVjYXVzZSBpdCBpcyBmb3JiaWRkZW4KKwkJ ICogZm9yIHRoZSBWTSB0byBiZSBzZXQgYW5kIFBEX0FMTF9WSVNJQkxFIHRvIGJlIGNsZWFyLgog CQkgKi8KLQkJaWYgKCFkb19mcmVlemUgJiYgIWRvX3BydW5lKQorCQlpZiAoIWRvX2ZyZWV6ZSAm JiAhZG9fcHJ1bmUgJiYgIWRvX3NldF92bSkKIAkJCU1hcmtCdWZmZXJEaXJ0eUhpbnQocHJzdGF0 ZS5idWZmZXIsIHRydWUpOwogCX0KIAotCWlmIChkb19wcnVuZSB8fCBkb19mcmVlemUpCisJaWYg KGRvX3BydW5lIHx8IGRvX2ZyZWV6ZSB8fCBkb19zZXRfdm0pCiAJewogCQkvKiBBcHBseSB0aGUg cGxhbm5lZCBpdGVtIGNoYW5nZXMgYW5kIHJlcGFpciBwYWdlIGZyYWdtZW50YXRpb24uICovCiAJ CWlmIChkb19wcnVuZSkKQEAgLTExMDMsNiArMTE3MCwyNyBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5k X2ZyZWV6ZShQcnVuZUZyZWV6ZVBhcmFtcyAqcGFyYW1zLAogCQlpZiAoZG9fZnJlZXplKQogCQkJ aGVhcF9mcmVlemVfcHJlcGFyZWRfdHVwbGVzKHByc3RhdGUuYnVmZmVyLCBwcnN0YXRlLmZyb3pl biwgcHJzdGF0ZS5uZnJvemVuKTsKIAorCQkvKiBTZXQgdGhlIHZpc2liaWxpdHkgbWFwIGFuZCBw YWdlIHZpc2liaWxpdHkgaGludCAqLworCQlpZiAoZG9fc2V0X3ZtKQorCQl7CisJCQkvKgorCQkJ ICogV2hpbGUgaXQgaXMgdmFsaWQgZm9yIFBEX0FMTF9WSVNJQkxFIHRvIGJlIHNldCB3aGVuIHRo ZQorCQkJICogY29ycmVzcG9uZGluZyBWTSBiaXQgaXMgY2xlYXIsIHdlIHN0cm9uZ2x5IHByZWZl ciB0byBrZWVwIHRoZW0KKwkJCSAqIGluIHN5bmMuCisJCQkgKgorCQkJICogVGhlIGhlYXAgYnVm ZmVyIG11c3QgYmUgbWFya2VkIGRpcnR5IGJlZm9yZSBhZGRpbmcgaXQgdG8gdGhlCisJCQkgKiBX QUwgY2hhaW4gd2hlbiBzZXR0aW5nIHRoZSBWTS4gV2UgZG9uJ3Qgd29ycnkgYWJvdXQKKwkJCSAq IHVubmVjZXNzYXJpbHkgZGlydHlpbmcgdGhlIGhlYXAgYnVmZmVyIGlmIFBEX0FMTF9WSVNJQkxF IGlzCisJCQkgKiBhbHJlYWR5IHNldCwgdGhvdWdoLiBJdCBpcyBleHRyZW1lbHkgcmFyZSB0byBo YXZlIGEgY2xlYW4gaGVhcAorCQkJICogYnVmZmVyIHdpdGggUERfQUxMX1ZJU0lCTEUgYWxyZWFk eSBzZXQgYW5kIHRoZSBWTSBiaXRzIGNsZWFyLAorCQkJICogc28gdGhlcmUgaXMgbm8gcG9pbnQg aW4gb3B0aW1pemluZyBpdC4KKwkJCSAqLworCQkJUGFnZVNldEFsbFZpc2libGUocHJzdGF0ZS5w YWdlKTsKKwkJCVBhZ2VDbGVhclBydW5hYmxlKHByc3RhdGUucGFnZSk7CisJCQl2aXNpYmlsaXR5 bWFwX3NldF92bWJpdHMocHJzdGF0ZS5ibG9jaywgcHJzdGF0ZS52bWJ1ZmZlciwgcHJzdGF0ZS5u ZXdfdm1iaXRzLAorCQkJCQkJCQkJIHByc3RhdGUucmVsYXRpb24tPnJkX2xvY2F0b3IpOworCQl9 CisKIAkJTWFya0J1ZmZlckRpcnR5KHByc3RhdGUuYnVmZmVyKTsKIAogCQkvKgpAQCAtMTExMCwy OSArMTE5OCwxMiBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShQcnVuZUZyZWV6ZVBhcmFt cyAqcGFyYW1zLAogCQkgKi8KIAkJaWYgKFJlbGF0aW9uTmVlZHNXQUwocHJzdGF0ZS5yZWxhdGlv bikpCiAJCXsKLQkJCS8qCi0JCQkgKiBUaGUgc25hcHNob3RDb25mbGljdEhvcml6b24gZm9yIHRo ZSB3aG9sZSByZWNvcmQgc2hvdWxkIGJlIHRoZQotCQkJICogbW9zdCBjb25zZXJ2YXRpdmUgb2Yg YWxsIHRoZSBob3Jpem9ucyBjYWxjdWxhdGVkIGZvciBhbnkgb2YgdGhlCi0JCQkgKiBwb3NzaWJs ZSBtb2RpZmljYXRpb25zLiBJZiB0aGlzIHJlY29yZCB3aWxsIHBydW5lIHR1cGxlcywgYW55Ci0J CQkgKiBxdWVyaWVzIG9uIHRoZSBzdGFuZGJ5IG9sZGVyIHRoYW4gdGhlIG5ld2VzdCB4aWQgb2Yg dGhlIG1vc3QKLQkJCSAqIHJlY2VudGx5IHJlbW92ZWQgdHVwbGUgdGhpcyByZWNvcmQgd2lsbCBw cnVuZSB3aWxsIGNvbmZsaWN0LiBJZgotCQkJICogdGhpcyByZWNvcmQgd2lsbCBmcmVlemUgdHVw bGVzLCBhbnkgcXVlcmllcyBvbiB0aGUgc3RhbmRieSB3aXRoCi0JCQkgKiB4aWRzIG9sZGVyIHRo YW4gdGhlIG5ld2VzdCB0dXBsZSB0aGlzIHJlY29yZCB3aWxsIGZyZWV6ZSB3aWxsCi0JCQkgKiBj b25mbGljdC4KLQkJCSAqLwotCQkJVHJhbnNhY3Rpb25JZCBjb25mbGljdF94aWQ7Ci0KLQkJCWlm IChUcmFuc2FjdGlvbklkRm9sbG93cyhwcnN0YXRlLnBhZ2VmcnouRnJlZXplUGFnZUNvbmZsaWN0 WGlkLAotCQkJCQkJCQkJIHByc3RhdGUubGF0ZXN0X3hpZF9yZW1vdmVkKSkKLQkJCQljb25mbGlj dF94aWQgPSBwcnN0YXRlLnBhZ2VmcnouRnJlZXplUGFnZUNvbmZsaWN0WGlkOwotCQkJZWxzZQot CQkJCWNvbmZsaWN0X3hpZCA9IHByc3RhdGUubGF0ZXN0X3hpZF9yZW1vdmVkOwotCiAJCQlsb2df aGVhcF9wcnVuZV9hbmRfZnJlZXplKHByc3RhdGUucmVsYXRpb24sIHByc3RhdGUuYnVmZmVyLAot CQkJCQkJCQkJICBJbnZhbGlkQnVmZmVyLAkvKiB2bWJ1ZmZlciAqLwotCQkJCQkJCQkJICAwLAkv KiB2bWZsYWdzICovCisJCQkJCQkJCQkgIGRvX3NldF92bSA/IHByc3RhdGUudm1idWZmZXIgOiBJ bnZhbGlkQnVmZmVyLAorCQkJCQkJCQkJICBkb19zZXRfdm0gPyBwcnN0YXRlLm5ld192bWJpdHMg OiAwLAogCQkJCQkJCQkJICBjb25mbGljdF94aWQsCi0JCQkJCQkJCQkgIHRydWUsIHBhcmFtcy0+ cmVhc29uLAorCQkJCQkJCQkJICB0cnVlLCAvKiBjbGVhbnVwIGxvY2sgKi8KKwkJCQkJCQkJCSAg cGFyYW1zLT5yZWFzb24sCiAJCQkJCQkJCQkgIHByc3RhdGUuZnJvemVuLCBwcnN0YXRlLm5mcm96 ZW4sCiAJCQkJCQkJCQkgIHByc3RhdGUucmVkaXJlY3RlZCwgcHJzdGF0ZS5ucmVkaXJlY3RlZCwK IAkJCQkJCQkJCSAgcHJzdGF0ZS5ub3dkZWFkLCBwcnN0YXRlLm5kZWFkLApAQCAtMTE0MiwzMyAr MTIxMyw2NyBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShQcnVuZUZyZWV6ZVBhcmFtcyAq cGFyYW1zLAogCiAJRU5EX0NSSVRfU0VDVElPTigpOwogCisJaWYgKGRvX3NldF92bSkKKwkJTG9j a0J1ZmZlcihwcnN0YXRlLnZtYnVmZmVyLCBCVUZGRVJfTE9DS19VTkxPQ0spOworCisJLyoKKwkg KiBEdXJpbmcgaXRzIHNlY29uZCBwYXNzIG92ZXIgdGhlIGhlYXAsIFZBQ1VVTSBjYWxscworCSAq IGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZSgpIHRvIGRldGVybWluZSB3aGV0aGVyIGEg cGFnZSBpcworCSAqIGFsbC12aXNpYmxlIGFuZCBhbGwtZnJvemVuLiBUaGUgbG9naWMgaGVyZSBp cyBzaW1pbGFyLiBBZnRlciBjb21wbGV0aW5nCisJICogcHJ1bmluZyBhbmQgZnJlZXppbmcsIHVz ZSBhbiBhc3NlcnRpb24gdG8gdmVyaWZ5IHRoYXQgb3VyIHJlc3VsdHMKKwkgKiByZW1haW4gY29u c2lzdGVudCB3aXRoIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZSgpLgorCSAqLworI2lm ZGVmIFVTRV9BU1NFUlRfQ0hFQ0tJTkcKKwlpZiAocHJzdGF0ZS5zZXRfYWxsX3Zpc2libGUpCisJ eworCQlUcmFuc2FjdGlvbklkIGRlYnVnX2N1dG9mZjsKKwkJYm9vbAkJZGVidWdfYWxsX2Zyb3pl bjsKKworCQlBc3NlcnQocHJzdGF0ZS5scGRlYWRfaXRlbXMgPT0gMCk7CisKKwkJQXNzZXJ0KGhl YXBfcGFnZV9pc19hbGxfdmlzaWJsZShwcnN0YXRlLnJlbGF0aW9uLCBwcnN0YXRlLmJ1ZmZlciwK KwkJCQkJCQkJCQlwcnN0YXRlLnZpc3Rlc3QsCisJCQkJCQkJCQkJJmRlYnVnX2FsbF9mcm96ZW4s CisJCQkJCQkJCQkJJmRlYnVnX2N1dG9mZiwgb2ZmX2xvYykpOworCisJCS8qCisJCSAqIEl0J3Mg cG9zc2libGUgdGhlIHBhZ2UgaXMgY29tcG9zZWQgZW50aXJlbHkgb2YgZnJvemVuIHR1cGxlcyBi dXQgaXMKKwkJICogbm90IHNldCBhbGwtZnJvemVuIGluIHRoZSBWTSBhbmQgZGlkIG5vdCBwYXNz CisJCSAqIEhFQVBfUEFHRV9QUlVORV9GUkVFWkUuIEluIHRoaXMgY2FzZSwgaXQncyBwb3NzaWJs ZQorCQkgKiBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoKSBmaW5kcyB0aGUgcGFnZSBjb21wbGV0 ZWx5IGZyb3plbiwgZXZlbgorCQkgKiB0aG91Z2ggcHJzdGF0ZS5zZXRfYWxsX2Zyb3plbiBpcyBm YWxzZS4KKwkJICovCisJCUFzc2VydCghcHJzdGF0ZS5zZXRfYWxsX2Zyb3plbiB8fCBkZWJ1Z19h bGxfZnJvemVuKTsKKwl9CisjZW5kaWYKKwogCS8qIENvcHkgaW5mb3JtYXRpb24gYmFjayBmb3Ig Y2FsbGVyICovCiAJcHJlc3VsdC0+bmRlbGV0ZWQgPSBwcnN0YXRlLm5kZWxldGVkOwogCXByZXN1 bHQtPm5uZXdscGRlYWQgPSBwcnN0YXRlLm5kZWFkOwogCXByZXN1bHQtPm5mcm96ZW4gPSBwcnN0 YXRlLm5mcm96ZW47CiAJcHJlc3VsdC0+bGl2ZV90dXBsZXMgPSBwcnN0YXRlLmxpdmVfdHVwbGVz OwogCXByZXN1bHQtPnJlY2VudGx5X2RlYWRfdHVwbGVzID0gcHJzdGF0ZS5yZWNlbnRseV9kZWFk X3R1cGxlczsKLQlwcmVzdWx0LT5zZXRfYWxsX3Zpc2libGUgPSBwcnN0YXRlLnNldF9hbGxfdmlz aWJsZTsKLQlwcmVzdWx0LT5zZXRfYWxsX2Zyb3plbiA9IHByc3RhdGUuc2V0X2FsbF9mcm96ZW47 CiAJcHJlc3VsdC0+aGFzdHVwID0gcHJzdGF0ZS5oYXN0dXA7Ci0JcHJlc3VsdC0+dm1iaXRzID0g cHJzdGF0ZS52bWJpdHM7Ci0KLQkvKgotCSAqIEZvciBjYWxsZXJzIHBsYW5uaW5nIHRvIHVwZGF0 ZSB0aGUgdmlzaWJpbGl0eSBtYXAsIHRoZSBjb25mbGljdCBob3Jpem9uCi0JICogZm9yIHRoYXQg cmVjb3JkIG11c3QgYmUgdGhlIG5ld2VzdCB4bWluIG9uIHRoZSBwYWdlLiAgSG93ZXZlciwgaWYg dGhlCi0JICogcGFnZSBpcyBjb21wbGV0ZWx5IGZyb3plbiwgdGhlcmUgY2FuIGJlIG5vIGNvbmZs aWN0IGFuZCB0aGUKLQkgKiB2bV9jb25mbGljdF9ob3Jpem9uIHNob3VsZCByZW1haW4gSW52YWxp ZFRyYW5zYWN0aW9uSWQuICBUaGlzIGluY2x1ZGVzCi0JICogdGhlIGNhc2UgdGhhdCB3ZSBqdXN0 IGZyb3plIGFsbCB0aGUgdHVwbGVzOyB0aGUgcHJ1bmUtZnJlZXplIHJlY29yZAotCSAqIGluY2x1 ZGVkIHRoZSBjb25mbGljdCBYSUQgYWxyZWFkeSBzbyB0aGUgY2FsbGVyIGRvZXNuJ3QgbmVlZCBp dC4KLQkgKi8KLQlpZiAocHJlc3VsdC0+c2V0X2FsbF9mcm96ZW4pCi0JCXByZXN1bHQtPnZtX2Nv bmZsaWN0X2hvcml6b24gPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKLQllbHNlCi0JCXByZXN1bHQt PnZtX2NvbmZsaWN0X2hvcml6b24gPSBwcnN0YXRlLm5ld2VzdF9saXZlX3hpZDsKIAogCXByZXN1 bHQtPmxwZGVhZF9pdGVtcyA9IHByc3RhdGUubHBkZWFkX2l0ZW1zOwogCS8qIHRoZSBwcmVzdWx0 LT5kZWFkb2Zmc2V0cyBhcnJheSB3YXMgYWxyZWFkeSBmaWxsZWQgaW4gKi8KIAorCXByZXN1bHQt Pm5ld19hbGxfdmlzaWJsZV9wYWdlcyA9IDA7CisJcHJlc3VsdC0+bmV3X2FsbF9mcm96ZW5fcGFn ZXMgPSAwOworCXByZXN1bHQtPm5ld19hbGxfdmlzaWJsZV9mcm96ZW5fcGFnZXMgPSAwOworCWlm IChkb19zZXRfdm0pCisJeworCQlpZiAoKHByc3RhdGUub2xkX3ZtYml0cyAmIFZJU0lCSUxJVFlN QVBfQUxMX1ZJU0lCTEUpID09IDApCisJCXsKKwkJCXByZXN1bHQtPm5ld19hbGxfdmlzaWJsZV9w YWdlcyA9IDE7CisJCQlpZiAocHJzdGF0ZS5zZXRfYWxsX2Zyb3plbikKKwkJCQlwcmVzdWx0LT5u ZXdfYWxsX3Zpc2libGVfZnJvemVuX3BhZ2VzID0gMTsKKwkJfQorCQllbHNlIGlmICgocHJzdGF0 ZS5vbGRfdm1iaXRzICYgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOKSA9PSAwICYmCisJCQkJIHBy c3RhdGUuc2V0X2FsbF9mcm96ZW4pCisJCQlwcmVzdWx0LT5uZXdfYWxsX2Zyb3plbl9wYWdlcyA9 IDE7CisJfQorCiAJaWYgKHByc3RhdGUuYXR0ZW1wdF9mcmVlemUpCiAJewogCQlpZiAocHJlc3Vs dC0+bmZyb3plbiA+IDApCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1 dW1sYXp5LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKaW5kZXggMjM0 MDJlN2UyNmMuLjZiNTIxMGQ2MzkzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC92YWN1dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5j CkBAIC00NTksMTMgKzQ1OSw2IEBAIHN0YXRpYyB2b2lkIGRlYWRfaXRlbXNfYWRkKExWUmVsU3Rh dGUgKnZhY3JlbCwgQmxvY2tOdW1iZXIgYmxrbm8sIE9mZnNldE51bWJlciAqCiBzdGF0aWMgdm9p ZCBkZWFkX2l0ZW1zX3Jlc2V0KExWUmVsU3RhdGUgKnZhY3JlbCk7CiBzdGF0aWMgdm9pZCBkZWFk X2l0ZW1zX2NsZWFudXAoTFZSZWxTdGF0ZSAqdmFjcmVsKTsKIAotI2lmZGVmIFVTRV9BU1NFUlRf Q0hFQ0tJTkcKLXN0YXRpYyBib29sIGhlYXBfcGFnZV9pc19hbGxfdmlzaWJsZShSZWxhdGlvbiBy ZWwsIEJ1ZmZlciBidWYsCi0JCQkJCQkJCQkgR2xvYmFsVmlzU3RhdGUgKnZpc3Rlc3QsCi0JCQkJ CQkJCQkgYm9vbCAqYWxsX2Zyb3plbiwKLQkJCQkJCQkJCSBUcmFuc2FjdGlvbklkICpuZXdlc3Rf bGl2ZV94aWQsCi0JCQkJCQkJCQkgT2Zmc2V0TnVtYmVyICpsb2dnaW5nX29mZm51bSk7Ci0jZW5k aWYKIHN0YXRpYyBib29sIGhlYXBfcGFnZV93b3VsZF9iZV9hbGxfdmlzaWJsZShSZWxhdGlvbiBy ZWwsIEJ1ZmZlciBidWYsCiAJCQkJCQkJCQkJICAgR2xvYmFsVmlzU3RhdGUgKnZpc3Rlc3QsCiAJ CQkJCQkJCQkJICAgT2Zmc2V0TnVtYmVyICpkZWFkb2Zmc2V0cywKQEAgLTE5OTYsOCArMTk4OSw2 IEBAIGxhenlfc2Nhbl9wcnVuZShMVlJlbFN0YXRlICp2YWNyZWwsCiAJCS52aXN0ZXN0ID0gdmFj cmVsLT52aXN0ZXN0LAogCQkuY3V0b2ZmcyA9ICZ2YWNyZWwtPmN1dG9mZnMsCiAJfTsKLQl1aW50 OAkJb2xkX3ZtYml0cyA9IDA7Ci0JdWludDgJCW5ld192bWJpdHMgPSAwOwogCiAJQXNzZXJ0KEJ1 ZmZlckdldEJsb2NrTnVtYmVyKGJ1ZikgPT0gYmxrbm8pOwogCkBAIC0yMDM4LDI5ICsyMDI5LDYg QEAgbGF6eV9zY2FuX3BydW5lKExWUmVsU3RhdGUgKnZhY3JlbCwKIAkJdmFjcmVsLT5uZXdfZnJv emVuX3R1cGxlX3BhZ2VzKys7CiAJfQogCi0JLyoKLQkgKiBWQUNVVU0gd2lsbCBjYWxsIGhlYXBf cGFnZV9pc19hbGxfdmlzaWJsZSgpIGR1cmluZyB0aGUgc2Vjb25kIHBhc3Mgb3ZlcgotCSAqIHRo ZSBoZWFwIHRvIGRldGVybWluZSBhbGxfdmlzaWJsZSBhbmQgYWxsX2Zyb3plbiBmb3IgdGhlIHBh Z2UgLS0gdGhpcwotCSAqIGlzIGEgc3BlY2lhbGl6ZWQgdmVyc2lvbiBvZiB0aGUgbG9naWMgZnJv bSB0aGlzIGZ1bmN0aW9uLiAgTm93IHRoYXQKLQkgKiB3ZSd2ZSBmaW5pc2hlZCBwcnVuaW5nIGFu ZCBmcmVlemluZywgbWFrZSBzdXJlIHRoYXQgd2UncmUgaW4gdG90YWwKLQkgKiBhZ3JlZW1lbnQg d2l0aCBoZWFwX3BhZ2VfaXNfYWxsX3Zpc2libGUoKSB1c2luZyBhbiBhc3NlcnRpb24uCi0JICov Ci0jaWZkZWYgVVNFX0FTU0VSVF9DSEVDS0lORwotCWlmIChwcmVzdWx0LnNldF9hbGxfdmlzaWJs ZSkKLQl7Ci0JCVRyYW5zYWN0aW9uSWQgZGVidWdfY3V0b2ZmOwotCQlib29sCQlkZWJ1Z19hbGxf ZnJvemVuOwotCi0JCUFzc2VydChwcmVzdWx0LmxwZGVhZF9pdGVtcyA9PSAwKTsKLQotCQlBc3Nl cnQoaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKHZhY3JlbC0+cmVsLCBidWYsCi0JCQkJCQkJCQkJ dmFjcmVsLT52aXN0ZXN0LCAmZGVidWdfYWxsX2Zyb3plbiwKLQkJCQkJCQkJCQkmZGVidWdfY3V0 b2ZmLCAmdmFjcmVsLT5vZmZudW0pKTsKLQotCQlBc3NlcnQocHJlc3VsdC5zZXRfYWxsX2Zyb3pl biA9PSBkZWJ1Z19hbGxfZnJvemVuKTsKLQl9Ci0jZW5kaWYKLQogCS8qCiAJICogTm93IHNhdmUg ZGV0YWlscyBvZiB0aGUgTFBfREVBRCBpdGVtcyBmcm9tIHRoZSBwYWdlIGluIHZhY3JlbAogCSAq LwpAQCAtMjA4MSw2ICsyMDQ5LDE0IEBAIGxhenlfc2Nhbl9wcnVuZShMVlJlbFN0YXRlICp2YWNy ZWwsCiAJfQogCiAJLyogRmluYWxseSwgYWRkIHBhZ2UtbG9jYWwgY291bnRzIHRvIHdob2xlLVZB Q1VVTSBjb3VudHMgKi8KKwl2YWNyZWwtPm5ld19hbGxfdmlzaWJsZV9wYWdlcyArPSBwcmVzdWx0 Lm5ld19hbGxfdmlzaWJsZV9wYWdlczsKKwl2YWNyZWwtPm5ld19hbGxfdmlzaWJsZV9hbGxfZnJv emVuX3BhZ2VzICs9IHByZXN1bHQubmV3X2FsbF92aXNpYmxlX2Zyb3plbl9wYWdlczsKKwl2YWNy ZWwtPm5ld19hbGxfZnJvemVuX3BhZ2VzICs9IHByZXN1bHQubmV3X2FsbF9mcm96ZW5fcGFnZXM7 CisKKwkvKiBDYXB0dXJlIGlmIHRoZSBwYWdlIHdhcyBuZXdseSBzZXQgZnJvemVuICovCisJKnZt X3BhZ2VfZnJvemVuID0gcHJlc3VsdC5uZXdfYWxsX3Zpc2libGVfZnJvemVuX3BhZ2VzID4gMCB8 fAorCQlwcmVzdWx0Lm5ld19hbGxfZnJvemVuX3BhZ2VzID4gMDsKKwogCXZhY3JlbC0+dHVwbGVz X2RlbGV0ZWQgKz0gcHJlc3VsdC5uZGVsZXRlZDsKIAl2YWNyZWwtPnR1cGxlc19mcm96ZW4gKz0g cHJlc3VsdC5uZnJvemVuOwogCXZhY3JlbC0+bHBkZWFkX2l0ZW1zICs9IHByZXN1bHQubHBkZWFk X2l0ZW1zOwpAQCAtMjA5NCw3MSArMjA3MCw2IEBAIGxhenlfc2Nhbl9wcnVuZShMVlJlbFN0YXRl ICp2YWNyZWwsCiAJLyogRGlkIHdlIGZpbmQgTFBfREVBRCBpdGVtcz8gKi8KIAkqaGFzX2xwZGVh ZF9pdGVtcyA9IChwcmVzdWx0LmxwZGVhZF9pdGVtcyA+IDApOwogCi0JQXNzZXJ0KCFwcmVzdWx0 LnNldF9hbGxfdmlzaWJsZSB8fCAhKCpoYXNfbHBkZWFkX2l0ZW1zKSk7Ci0JQXNzZXJ0KCFwcmVz dWx0LnNldF9hbGxfZnJvemVuIHx8IHByZXN1bHQuc2V0X2FsbF92aXNpYmxlKTsKLQotCWlmICgh cHJlc3VsdC5zZXRfYWxsX3Zpc2libGUpCi0JCXJldHVybiBwcmVzdWx0Lm5kZWxldGVkOwotCi0J LyogU2V0IHRoZSB2aXNpYmlsaXR5IG1hcCBhbmQgcGFnZSB2aXNpYmlsaXR5IGhpbnQgKi8KLQlv bGRfdm1iaXRzID0gcHJlc3VsdC52bWJpdHM7Ci0JbmV3X3ZtYml0cyA9IFZJU0lCSUxJVFlNQVBf QUxMX1ZJU0lCTEU7Ci0JaWYgKHByZXN1bHQuc2V0X2FsbF9mcm96ZW4pCi0JCW5ld192bWJpdHMg fD0gVklTSUJJTElUWU1BUF9BTExfRlJPWkVOOwotCi0JLyogTm90aGluZyB0byBkbyAqLwotCWlm IChvbGRfdm1iaXRzID09IG5ld192bWJpdHMpCi0JCXJldHVybiBwcmVzdWx0Lm5kZWxldGVkOwot Ci0JLyoKLQkgKiBJdCBzaG91bGQgbmV2ZXIgYmUgdGhlIGNhc2UgdGhhdCB0aGUgdmlzaWJpbGl0 eSBtYXAgcGFnZSBpcyBzZXQgd2hpbGUKLQkgKiB0aGUgcGFnZS1sZXZlbCBiaXQgaXMgY2xlYXIg KGFuZCBpZiBzbywgd2UgY2xlYXJlZCBpdCBhYm92ZSksIGJ1dCB0aGUKLQkgKiByZXZlcnNlIGlz IGFsbG93ZWQgKGlmIGNoZWNrc3VtcyBhcmUgbm90IGVuYWJsZWQpLiBSZWdhcmRsZXNzLCBzZXQg Ym90aAotCSAqIGJpdHMgc28gdGhhdCB3ZSBnZXQgYmFjayBpbiBzeW5jLgotCSAqCi0JICogVGhl IGhlYXAgYnVmZmVyIG11c3QgYmUgbWFya2VkIGRpcnR5IGJlZm9yZSBhZGRpbmcgaXQgdG8gdGhl IFdBTCBjaGFpbgotCSAqIHdoZW4gc2V0dGluZyB0aGUgVk0uIFdlIGRvbid0IHdvcnJ5IGFib3V0 IHVubmVjZXNzYXJpbHkgZGlydHlpbmcgdGhlCi0JICogaGVhcCBidWZmZXIgaWYgUERfQUxMX1ZJ U0lCTEUgaXMgYWxyZWFkeSBzZXQsIHRob3VnaC4gSXQgaXMgZXh0cmVtZWx5Ci0JICogcmFyZSB0 byBoYXZlIGEgY2xlYW4gaGVhcCBidWZmZXIgd2l0aCBQRF9BTExfVklTSUJMRSBhbHJlYWR5IHNl dCBhbmQKLQkgKiB0aGUgVk0gYml0cyBjbGVhciwgc28gdGhlcmUgaXMgbm8gcG9pbnQgaW4gb3B0 aW1pemluZyBpdC4KLQkgKi8KLQlQYWdlU2V0QWxsVmlzaWJsZShwYWdlKTsKLQlQYWdlQ2xlYXJQ cnVuYWJsZShwYWdlKTsKLQlNYXJrQnVmZmVyRGlydHkoYnVmKTsKLQotCS8qCi0JICogSWYgdGhl IHBhZ2UgaXMgYmVpbmcgc2V0IGFsbC1mcm96ZW4sIHdlIHBhc3MgSW52YWxpZFRyYW5zYWN0aW9u SWQgYXMKLQkgKiB0aGUgY3V0b2ZmX3hpZCwgc2luY2UgYSBzbmFwc2hvdCBjb25mbGljdCBob3Jp em9uIHN1ZmZpY2llbnQgdG8gbWFrZQotCSAqIGV2ZXJ5dGhpbmcgc2FmZSBmb3IgUkVETyB3YXMg bG9nZ2VkIHdoZW4gdGhlIHBhZ2UncyB0dXBsZXMgd2VyZSBmcm96ZW4uCi0JICovCi0JQXNzZXJ0 KCFwcmVzdWx0LnNldF9hbGxfZnJvemVuIHx8Ci0JCSAgICFUcmFuc2FjdGlvbklkSXNWYWxpZChw cmVzdWx0LnZtX2NvbmZsaWN0X2hvcml6b24pKTsKLQotCXZpc2liaWxpdHltYXBfc2V0KHZhY3Jl bC0+cmVsLCBibGtubywgYnVmLAotCQkJCQkgIEludmFsaWRYTG9nUmVjUHRyLAotCQkJCQkgIHZt YnVmZmVyLCBwcmVzdWx0LnZtX2NvbmZsaWN0X2hvcml6b24sCi0JCQkJCSAgbmV3X3ZtYml0cyk7 Ci0KLQkvKgotCSAqIElmIHRoZSBwYWdlIHdhc24ndCBhbHJlYWR5IHNldCBhbGwtdmlzaWJsZSBh bmQvb3IgYWxsLWZyb3plbiBpbiB0aGUgVk0sCi0JICogY291bnQgaXQgYXMgbmV3bHkgc2V0IGZv ciBsb2dnaW5nLgotCSAqLwotCWlmICgob2xkX3ZtYml0cyAmIFZJU0lCSUxJVFlNQVBfQUxMX1ZJ U0lCTEUpID09IDApCi0JewotCQl2YWNyZWwtPm5ld19hbGxfdmlzaWJsZV9wYWdlcysrOwotCQlp ZiAocHJlc3VsdC5zZXRfYWxsX2Zyb3plbikKLQkJewotCQkJdmFjcmVsLT5uZXdfYWxsX3Zpc2li bGVfYWxsX2Zyb3plbl9wYWdlcysrOwotCQkJKnZtX3BhZ2VfZnJvemVuID0gdHJ1ZTsKLQkJfQot CX0KLQllbHNlIGlmICgob2xkX3ZtYml0cyAmIFZJU0lCSUxJVFlNQVBfQUxMX0ZST1pFTikgPT0g MCAmJgotCQkJIHByZXN1bHQuc2V0X2FsbF9mcm96ZW4pCi0JewotCQl2YWNyZWwtPm5ld19hbGxf ZnJvemVuX3BhZ2VzKys7Ci0JCSp2bV9wYWdlX2Zyb3plbiA9IHRydWU7Ci0JfQotCiAJcmV0dXJu IHByZXN1bHQubmRlbGV0ZWQ7CiB9CiAKQEAgLTM1NzIsNyArMzQ4Myw3IEBAIGRlYWRfaXRlbXNf Y2xlYW51cChMVlJlbFN0YXRlICp2YWNyZWwpCiAgKiB0aGF0IGV4cGVjdCBubyBMUF9ERUFEIG9u IHRoZSBwYWdlLiBDdXJyZW50bHkgYXNzZXJ0LW9ubHksIGJ1dCB0aGVyZSBpcyBubwogICogcmVh c29uIG5vdCB0byB1c2UgaXQgb3V0c2lkZSBvZiBhc3NlcnRzLgogICovCi1zdGF0aWMgYm9vbAor Ym9vbAogaGVhcF9wYWdlX2lzX2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwK IAkJCQkJCSBHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdCwKIAkJCQkJCSBib29sICphbGxfZnJvemVu LApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oIGIvc3JjL2luY2x1ZGUv YWNjZXNzL2hlYXBhbS5oCmluZGV4IGJiYjIyM2RkMGQyLi5mNzdhMDAyOTFiYiAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9o ZWFwYW0uaApAQCAtMjY0LDcgKzI2NCw4IEBAIHR5cGVkZWYgc3RydWN0IFBydW5lRnJlZXplUGFy YW1zCiAKIAkvKgogCSAqIENhbGxlcnMgc2hvdWxkIHByb3ZpZGUgYSBwaW5uZWQgdm1idWZmZXIg Y29ycmVzcG9uZGluZyB0byB0aGUgaGVhcAotCSAqIGJsb2NrIGluIGJ1ZmZlci4gV2Ugd2lsbCBj aGVjayBmb3IgYW5kIHJlcGFpciBhbnkgY29ycnVwdGlvbiBpbiB0aGUgVk0uCisJICogYmxvY2sg aW4gYnVmZmVyLiBXZSB3aWxsIGNoZWNrIGZvciBhbmQgcmVwYWlyIGFueSBjb3JydXB0aW9uIGlu IHRoZSBWTQorCSAqIGFuZCBzZXQgdGhlIFZNIGFmdGVyIHBydW5pbmcgaWYgdGhlIHBhZ2UgaXMg YWxsLXZpc2libGUvYWxsLWZyb3plbi4KIAkgKi8KIAlCdWZmZXIJCXZtYnVmZmVyOwogCkBAIC0y ODAsOCArMjgxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgUHJ1bmVGcmVlemVQYXJhbXMKIAkgKiBIRUFQ X1BBR0VfUFJVTkVfTUFSS19VTlVTRURfTk9XIGluZGljYXRlcyB0aGF0IGRlYWQgaXRlbXMgY2Fu IGJlIHNldAogCSAqIExQX1VOVVNFRCBkdXJpbmcgcHJ1bmluZy4KIAkgKgotCSAqIEhFQVBfUEFH RV9QUlVORV9GUkVFWkUgaW5kaWNhdGVzIHRoYXQgd2Ugd2lsbCBhbHNvIGZyZWV6ZSB0dXBsZXMs IGFuZAotCSAqIHdpbGwgcmV0dXJuICdhbGxfdmlzaWJsZScsICdhbGxfZnJvemVuJyBmbGFncyB0 byB0aGUgY2FsbGVyLgorCSAqIEhFQVBfUEFHRV9QUlVORV9GUkVFWkUgaW5kaWNhdGVzIHRoYXQg d2Ugd2lsbCBhbHNvIGZyZWV6ZSB0dXBsZXMuCiAJICovCiAJaW50CQkJb3B0aW9uczsKIApAQCAt MzE1LDI2ICszMTUsMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgUHJ1bmVGcmVlemVSZXN1bHQKIAlpbnQJ CQlyZWNlbnRseV9kZWFkX3R1cGxlczsKIAogCS8qCi0JICogc2V0X2FsbF92aXNpYmxlIGFuZCBz ZXRfYWxsX2Zyb3plbiBpbmRpY2F0ZSBpZiB0aGUgYWxsLXZpc2libGUgYW5kCi0JICogYWxsLWZy b3plbiBiaXRzIGluIHRoZSB2aXNpYmlsaXR5IG1hcCBzaG91bGQgYmUgc2V0IGZvciB0aGlzIHBh Z2UgYWZ0ZXIKLQkgKiBwcnVuaW5nLgotCSAqCi0JICogdm1fY29uZmxpY3RfaG9yaXpvbiBpcyB0 aGUgbmV3ZXN0IHhtaW4gb2YgbGl2ZSB0dXBsZXMgb24gdGhlIHBhZ2UuICBUaGUKLQkgKiBjYWxs ZXIgY2FuIHVzZSBpdCBhcyB0aGUgY29uZmxpY3QgaG9yaXpvbiB3aGVuIHNldHRpbmcgdGhlIFZN IGJpdHMuICBJdAotCSAqIGlzIG9ubHkgdmFsaWQgaWYgd2UgZnJvemUgc29tZSB0dXBsZXMgKG5m cm96ZW4gPiAwKSwgYW5kIHNldF9hbGxfZnJvemVuCi0JICogaXMgdHJ1ZS4KLQkgKgotCSAqIFRo ZXNlIGFyZSBvbmx5IHNldCBpZiB0aGUgSEVBUF9QQUdFX1BSVU5FX0ZSRUVaRSBvcHRpb24gaXMg c2V0LgotCSAqLwotCWJvb2wJCXNldF9hbGxfdmlzaWJsZTsKLQlib29sCQlzZXRfYWxsX2Zyb3pl bjsKLQlUcmFuc2FjdGlvbklkIHZtX2NvbmZsaWN0X2hvcml6b247Ci0KLQkvKgotCSAqIHZtYml0 cyBpcyB0aGUgdmFsdWUgb2YgdGhlIHZtYnVmZmVyJ3Mgdm1iaXRzIGF0IHRoZSBiZWdpbm5pbmcg b2YKLQkgKiBwcnVuaW5nLiBJdCBpcyBjbGVhcmVkIGlmIFZNIGNvcnJ1cHRpb24gaXMgZm91bmQg YW5kIGNvcnJlY3RlZC4KKwkgKiBXaGV0aGVyIG9yIG5vdCB0aGUgcGFnZSB3YXMgbmV3bHkgc2V0 IGFsbC12aXNpYmxlIGFuZCBhbGwtZnJvemVuIGR1cmluZworCSAqIHBoYXNlIEkgb2YgdmFjdXVt aW5nLgogCSAqLwotCXVpbnQ4CQl2bWJpdHM7CisJQmxvY2tOdW1iZXIgbmV3X2FsbF92aXNpYmxl X3BhZ2VzOworCUJsb2NrTnVtYmVyIG5ld19hbGxfdmlzaWJsZV9mcm96ZW5fcGFnZXM7CisJQmxv Y2tOdW1iZXIgbmV3X2FsbF9mcm96ZW5fcGFnZXM7CiAKIAkvKgogCSAqIFdoZXRoZXIgb3Igbm90 IHRoZSBwYWdlIG1ha2VzIHJlbCB0cnVuY2F0aW9uIHVuc2FmZS4gIFRoaXMgaXMgc2V0IHRvCkBA IC00NzEsNyArNDU3LDEzIEBAIGV4dGVybiB2b2lkIGxvZ19oZWFwX3BydW5lX2FuZF9mcmVlemUo UmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCiAvKiBpbiBoZWFwL3ZhY3V1bWxhenku YyAqLwogZXh0ZXJuIHZvaWQgaGVhcF92YWN1dW1fcmVsKFJlbGF0aW9uIHJlbCwKIAkJCQkJCQlj b25zdCBWYWN1dW1QYXJhbXMgcGFyYW1zLCBCdWZmZXJBY2Nlc3NTdHJhdGVneSBic3RyYXRlZ3kp OwotCisjaWZkZWYgVVNFX0FTU0VSVF9DSEVDS0lORworZXh0ZXJuIGJvb2wgaGVhcF9wYWdlX2lz X2FsbF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKKwkJCQkJCQkJCSBHbG9iYWxW aXNTdGF0ZSAqdmlzdGVzdCwKKwkJCQkJCQkJCSBib29sICphbGxfZnJvemVuLAorCQkJCQkJCQkJ IFRyYW5zYWN0aW9uSWQgKnZpc2liaWxpdHlfY3V0b2ZmX3hpZCwKKwkJCQkJCQkJCSBPZmZzZXRO dW1iZXIgKmxvZ2dpbmdfb2ZmbnVtKTsKKyNlbmRpZgogLyogaW4gaGVhcC9oZWFwYW1fdmlzaWJp bGl0eS5jICovCiBleHRlcm4gYm9vbCBIZWFwVHVwbGVTYXRpc2ZpZXNWaXNpYmlsaXR5KEhlYXBU dXBsZSBodHVwLCBTbmFwc2hvdCBzbmFwc2hvdCwKIAkJCQkJCQkJCQkgQnVmZmVyIGJ1ZmZlcik7 Ci0tIAoyLjQzLjAKCg== --00000000000044ac80064d14dd96 Content-Type: text/x-patch; charset="US-ASCII"; name="v38-0006-Eliminate-XLOG_HEAP2_VISIBLE-from-empty-page-vac.patch" Content-Disposition: attachment; filename="v38-0006-Eliminate-XLOG_HEAP2_VISIBLE-from-empty-page-vac.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mms4q4gl5 RnJvbSBkYjRjYzIzNjFjY2M0NDZiNTRkZjNkMmQ1YWZkZTcwZjY4NjlkZGUxIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBTYXQsIDI3IFNlcCAyMDI1IDExOjU1OjIxIC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MzggMDYvMTJdIEVsaW1pbmF0ZSBYTE9HX0hFQVAyX1ZJU0lCTEUgZnJvbSBlbXB0eS1w YWdlIHZhY3V1bQoKQXMgcGFydCBvZiByZW1vdmluZyBYTE9HX0hFQVAyX1ZJU0lCTEUgcmVjb3Jk cywgcGhhc2UgSSBvZiBWQUNVVU0gbm93Cm1hcmtzIGVtcHR5IHBhZ2VzIGFsbC12aXNpYmxlIGlu IGEgWExPR19IRUFQMl9QUlVORV9WQUNVVU1fU0NBTiByZWNvcmQuCgpBdXRob3I6IE1lbGFuaWUg UGxhZ2VtYW4gPG1lbGFuaWVwbGFnZW1hbkBnbWFpbC5jb20+ClJldmlld2VkLWJ5OiBSb2JlcnQg SGFhcyA8cm9iZXJ0bWhhYXNAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQW5kcmVzIEZyZXVuZCA8 YW5kcmVzQGFuYXJhemVsLmRlPgpSZXZpZXdlZC1ieTogQ2hhbyBMaSA8bGkuZXZhbi5jaGFvQGdt YWlsLmNvbT4KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgfCAzNSAr KysrKysrKysrKysrKysrKysrKysrKy0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjkgaW5zZXJ0aW9u cygrKSwgNiBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVh cC92YWN1dW1sYXp5LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKaW5k ZXggNmI1MjEwZDYzOTMuLjE0NTFjOTQzNjQ0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl 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== --00000000000044ac80064d14dd96 Content-Type: text/x-patch; charset="US-ASCII"; name="v38-0007-Remove-XLOG_HEAP2_VISIBLE-entirely.patch" Content-Disposition: attachment; filename="v38-0007-Remove-XLOG_HEAP2_VISIBLE-entirely.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mms4q6nz6 RnJvbSA5N2EyNDhlNzcxMWVhZWQzMTk1NGRkNzA4OTc5MGUzMzY5YjBjNThhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBTYXQsIDI3IFNlcCAyMDI1IDExOjU1OjM2IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MzggMDcvMTJdIFJlbW92ZSBYTE9HX0hFQVAyX1ZJU0lCTEUgZW50aXJlbHkKClRoZXJl 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 bmRleCBhMTI3ZTI5MTQ0ZS4uOWI1YTA3MjZmMmIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL3BydW5laGVhcC5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5l aGVhcC5jCkBAIC0xMTg3LDggKzExODcsOCBAQCBoZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZShQ cnVuZUZyZWV6ZVBhcmFtcyAqcGFyYW1zLAogCQkJICovCiAJCQlQYWdlU2V0QWxsVmlzaWJsZShw cnN0YXRlLnBhZ2UpOwogCQkJUGFnZUNsZWFyUHJ1bmFibGUocHJzdGF0ZS5wYWdlKTsKLQkJCXZp c2liaWxpdHltYXBfc2V0X3ZtYml0cyhwcnN0YXRlLmJsb2NrLCBwcnN0YXRlLnZtYnVmZmVyLCBw cnN0YXRlLm5ld192bWJpdHMsCi0JCQkJCQkJCQkgcHJzdGF0ZS5yZWxhdGlvbi0+cmRfbG9jYXRv cik7CisJCQl2aXNpYmlsaXR5bWFwX3NldChwcnN0YXRlLmJsb2NrLCBwcnN0YXRlLnZtYnVmZmVy LCBwcnN0YXRlLm5ld192bWJpdHMsCisJCQkJCQkJICBwcnN0YXRlLnJlbGF0aW9uLT5yZF9sb2Nh dG9yKTsKIAkJfQogCiAJCU1hcmtCdWZmZXJEaXJ0eShwcnN0YXRlLmJ1ZmZlcik7CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKaW5kZXggMTQ1MWM5NDM2NDQuLjhiZDE3OGFlN2U2IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKKysrIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL2hlYXAvdmFjdXVtbGF6eS5jCkBAIC0xOTI2LDExICsxOTI2LDExIEBA IGxhenlfc2Nhbl9uZXdfb3JfZW1wdHkoTFZSZWxTdGF0ZSAqdmFjcmVsLCBCdWZmZXIgYnVmLCBC bG9ja051bWJlciBibGtubywKIAogCQkJUGFnZVNldEFsbFZpc2libGUocGFnZSk7CiAJCQlQYWdl Q2xlYXJQcnVuYWJsZShwYWdlKTsKLQkJCXZpc2liaWxpdHltYXBfc2V0X3ZtYml0cyhibGtubywK LQkJCQkJCQkJCSB2bWJ1ZmZlciwKLQkJCQkJCQkJCSBWSVNJQklMSVRZTUFQX0FMTF9WSVNJQkxF IHwKLQkJCQkJCQkJCSBWSVNJQklMSVRZTUFQX0FMTF9GUk9aRU4sCi0JCQkJCQkJCQkgdmFjcmVs LT5yZWwtPnJkX2xvY2F0b3IpOworCQkJdmlzaWJpbGl0eW1hcF9zZXQoYmxrbm8sCisJCQkJCQkJ ICB2bWJ1ZmZlciwKKwkJCQkJCQkgIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUgfAorCQkJCQkJ CSAgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOLAorCQkJCQkJCSAgdmFjcmVsLT5yZWwtPnJkX2xv Y2F0b3IpOwogCiAJCQkvKgogCQkJICogRW1pdCBXQUwgZm9yIHNldHRpbmcgUERfQUxMX1ZJU0lC TEUgb24gdGhlIGhlYXAgcGFnZSBhbmQKQEAgLTI3OTQsOSArMjc5NCw5IEBAIGxhenlfdmFjdXVt 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 b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0CmluZGV4IGVjODUxM2Q5MGI1Li40YzdjZTliZDRi NSAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3Jj L3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTQzODksNyArNDM4OSw2IEBAIHhsX2hl YXBfcHJ1bmUKIHhsX2hlYXBfcmV3cml0ZV9tYXBwaW5nCiB4bF9oZWFwX3RydW5jYXRlCiB4bF9o ZWFwX3VwZGF0ZQoteGxfaGVhcF92aXNpYmxlCiB4bF9pbnZhbGlkX3BhZ2UKIHhsX2ludmFsaWRf cGFnZV9rZXkKIHhsX2ludmFsaWRhdGlvbnMKLS0gCjIuNDMuMAoK --00000000000044ac80064d14dd96 Content-Type: text/x-patch; charset="US-ASCII"; name="v38-0008-Track-which-relations-are-modified-by-a-query.patch" Content-Disposition: attachment; filename="v38-0008-Track-which-relations-are-modified-by-a-query.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mms4q92l7 RnJvbSBmNzA3ZDM0NWYzZWU0M2E5YjVlOTE0ZTRkNDk2YzgzNDg1ZWEzODBiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBXZWQsIDMgRGVjIDIwMjUgMTU6MDc6MjQgLTA1MDAKU3ViamVjdDogW1BB VENIIHYzOCAwOC8xMl0gVHJhY2sgd2hpY2ggcmVsYXRpb25zIGFyZSBtb2RpZmllZCBieSBhIHF1 ZXJ5CgpTYXZlIHRoZSByZWxpZHMgb2YgbW9kaWZpZWQgcmVsYXRpb25zIGluIGEgYml0bWFwIGlu IHRoZSBleGVjdXRvciBzdGF0ZS4KQSBsYXRlciBjb21taXQgd2lsbCBwYXNzIHRoaXMgaW5mb3Jt YXRpb24gZG93biB0byBzY2FuIG5vZGVzIHRvIGNvbnRyb2wKd2hldGhlciBvciBub3Qgb24tYWNj ZXNzIHBydW5pbmcgaXMgYWxsb3dlZCB0byBzZXQgdGhlIHZpc2liaWxpdHkgbWFwLgpTZXR0aW5n IHRoZSB2aXNpYmlsaXR5IG1hcCBkdXJpbmcgYSBzY2FuIGlzIGNvdW50ZXJwcm9kdWN0aXZlIGlm IHRoZQpxdWVyeSBpcyBnb2luZyB0byBtb2RpZnkgdGhlIHBhZ2UgaW1tZWRpYXRlbHkgYWZ0ZXIu CgpSZWxhdGlvbnMgYXJlIGNvbnNpZGVyZWQgbW9kaWZpZWQgaWYgdGhleSBhcmUgdGhlIHRhcmdl dCBvZiBJTlNFUlQsClVQREFURSwgREVMRVRFLCBvciBNRVJHRSwgb3IgaWYgdGhleSBoYXZlIGFu eSByb3cgbWFyayAoaW5jbHVkaW5nIFNFTEVDVApGT1IgVVBEQVRFL1NIQVJFKS4gQWxsIHJvdyBt YXJrIHR5cGVzIGFyZSBpbmNsdWRlZCwgZXZlbiB0aG9zZSB3aGljaApkb24ndCBhY3R1YWxseSBt b2RpZnkgdHVwbGVzLCBiZWNhdXNlIHRoaXMgYml0bWFwIGlzIG9ubHkgdXNlZCBhcyBhIGhpbnQK dG8gYXZvaWQgdW5uZWNlc3Nhcnkgd29yay4KCkF1dGhvcjogTWVsYW5pZSBQbGFnZW1hbiA8bWVs YW5pZXBsYWdlbWFuQGdtYWlsLmNvbT4KUmV2aWV3ZWQtYnk6IEFuZHJlcyBGcmV1bmQgPGFuZHJl c0BhbmFyYXplbC5kZT4KUmV2aWV3ZWQtYnk6IENoYW8gTGkgPGxpLmV2YW4uY2hhb0BnbWFpbC5j b20+CkRpc2N1c3Npb246IGh0dHBzOi8vcG9zdGdyLmVzL20vRjVDREQxQjUtNjI4Qy00NEExLTlG ODUtMzk1OEM2MjZGNkE5JTQwZ21haWwuY29tCi0tLQogc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y01haW4uYyAgfCAxOCArKysrKysrKysrKysrKysrKysKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNVdGlscy5jIHwgMzEgKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2luY2x1 ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaCAgfCAgMyArKysKIHNyYy9pbmNsdWRlL25vZGVzL2V4ZWNu b2Rlcy5oICAgIHwgIDYgKysrKysrCiA0IGZpbGVzIGNoYW5nZWQsIDU4IGluc2VydGlvbnMoKykK CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jIGIvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY01haW4uYwppbmRleCBiZmQzZWJjNjAxZS4uNTdkY2RlZGEwNTYgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKKysrIGIvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY01haW4uYwpAQCAtOTIwLDYgKzkyMCwxMCBAQCBJbml0UGxhbihRdWVy eURlc2MgKnF1ZXJ5RGVzYywgaW50IGVmbGFncykKIAkJCQkJYnJlYWs7CiAJCQl9CiAKKwkJCS8q IElmIGl0IGhhcyBhIHJvd21hcmssIHRoZSByZWxhdGlvbiBtYXkgYmUgbW9kaWZpZWQgKi8KKwkJ CWVzdGF0ZS0+ZXNfbW9kaWZpZWRfcmVsaWRzID0gYm1zX2FkZF9tZW1iZXIoZXN0YXRlLT5lc19t b2RpZmllZF9yZWxpZHMsCisJCQkJCQkJCQkJCQkJCXJjLT5ydGkpOworCiAJCQkvKiBDaGVjayB0 aGF0IHJlbGF0aW9uIGlzIGEgbGVnYWwgdGFyZ2V0IGZvciBtYXJraW5nICovCiAJCQlpZiAocmVs YXRpb24pCiAJCQkJQ2hlY2tWYWxpZFJvd01hcmtSZWwocmVsYXRpb24sIHJjLT5tYXJrVHlwZSk7 CkBAIC05OTAsNiArOTk0LDEwIEBAIEluaXRQbGFuKFF1ZXJ5RGVzYyAqcXVlcnlEZXNjLCBpbnQg ZWZsYWdzKQogCSAqLwogCXBsYW5zdGF0ZSA9IEV4ZWNJbml0Tm9kZShwbGFuLCBlc3RhdGUsIGVm bGFncyk7CiAKKyNpZmRlZiBVU0VfQVNTRVJUX0NIRUNLSU5HCisJQ3Jvc3NDaGVja01vZGlmaWVk UmVsaWRzKGVzdGF0ZSk7CisjZW5kaWYKKwogCS8qCiAJICogR2V0IHRoZSB0dXBsZSBkZXNjcmlw dG9yIGRlc2NyaWJpbmcgdGhlIHR5cGUgb2YgdHVwbGVzIHRvIHJldHVybi4KIAkgKi8KQEAgLTMw MzMsNiArMzA0MSwxMiBAQCBFdmFsUGxhblF1YWxTdGFydChFUFFTdGF0ZSAqZXBxc3RhdGUsIFBs YW4gKnBsYW5UcmVlKQogCXJjZXN0YXRlLT5lc19vdXRwdXRfY2lkID0gcGFyZW50ZXN0YXRlLT5l c19vdXRwdXRfY2lkOwogCXJjZXN0YXRlLT5lc19xdWVyeUVudiA9IHBhcmVudGVzdGF0ZS0+ZXNf cXVlcnlFbnY7CiAKKwkvKgorCSAqIFVzZSBhIGRlZXAgY29weSB0byBhdm9pZCBzdGFsZSBwb2lu dGVycyBzaW5jZSBibXNfYWRkX21lbWJlcigpIG1heQorCSAqIHJlYWxsb2NhdGUgdGhlIGJpdG1h cC4KKwkgKi8KKwlyY2VzdGF0ZS0+ZXNfbW9kaWZpZWRfcmVsaWRzID0gYm1zX2NvcHkocGFyZW50 ZXN0YXRlLT5lc19tb2RpZmllZF9yZWxpZHMpOworCiAJLyoKIAkgKiBSZXN1bHRSZWxJbmZvcyBu ZWVkZWQgYnkgc3VicGxhbnMgYXJlIGluaXRpYWxpemVkIGZyb20gc2NyYXRjaCB3aGVuIHRoZQog CSAqIHN1YnBsYW5zIHRoZW1zZWx2ZXMgYXJlIGluaXRpYWxpemVkLgpAQCAtMzE2NSw2ICszMTc5 LDEwIEBAIEV2YWxQbGFuUXVhbFN0YXJ0KEVQUVN0YXRlICplcHFzdGF0ZSwgUGxhbiAqcGxhblRy ZWUpCiAJICovCiAJZXBxc3RhdGUtPnJlY2hlY2twbGFuc3RhdGUgPSBFeGVjSW5pdE5vZGUocGxh blRyZWUsIHJjZXN0YXRlLCAwKTsKIAorI2lmZGVmIFVTRV9BU1NFUlRfQ0hFQ0tJTkcKKwlDcm9z c0NoZWNrTW9kaWZpZWRSZWxpZHMocmNlc3RhdGUpOworI2VuZGlmCisKIAlNZW1vcnlDb250ZXh0 U3dpdGNoVG8ob2xkY29udGV4dCk7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL2V4ZWNVdGlscy5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY1V0aWxzLmMKaW5kZXgg Y2Q0ZDU0NTJjZmIuLjBmODM2NGI4NzIwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRv ci9leGVjVXRpbHMuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjVXRpbHMuYwpAQCAt MTIzLDYgKzEyMyw4IEBAIENyZWF0ZUV4ZWN1dG9yU3RhdGUodm9pZCkKIAllc3RhdGUtPmVzX3Bh cnRfcHJ1bmVfcmVzdWx0cyA9IE5JTDsKIAllc3RhdGUtPmVzX3VucHJ1bmVkX3JlbGlkcyA9IE5V TEw7CiAKKwllc3RhdGUtPmVzX21vZGlmaWVkX3JlbGlkcyA9IE5VTEw7CisKIAllc3RhdGUtPmVz X2p1bmtGaWx0ZXIgPSBOVUxMOwogCiAJZXN0YXRlLT5lc19vdXRwdXRfY2lkID0gKENvbW1hbmRJ ZCkgMDsKQEAgLTg3MSw2ICs4NzMsMzMgQEAgRXhlY0dldFJhbmdlVGFibGVSZWxhdGlvbihFU3Rh dGUgKmVzdGF0ZSwgSW5kZXggcnRpLCBib29sIGlzUmVzdWx0UmVsKQogCXJldHVybiByZWw7CiB9 CiAKKyNpZmRlZiBVU0VfQVNTRVJUX0NIRUNLSU5HCisvKgorICogQXNzZXJ0IHRoYXQgZXNfbW9k aWZpZWRfcmVsaWRzIGluY2x1ZGVzIGFsbCBwb3RlbnRpYWxseSBtb2RpZmllZCBSVAorICogaW5k ZXhlcy4KKyAqLwordm9pZAorQ3Jvc3NDaGVja01vZGlmaWVkUmVsaWRzKEVTdGF0ZSAqZXN0YXRl KQoreworCUJpdG1hcHNldCAgKmV4cGVjdGVkID0gTlVMTDsKKwlMaXN0Q2VsbCAgICpsYzsKKwor CWZvcmVhY2gobGMsIGVzdGF0ZS0+ZXNfb3BlbmVkX3Jlc3VsdF9yZWxhdGlvbnMpCisJeworCQlS ZXN1bHRSZWxJbmZvICpycmkgPSBsZmlyc3Rfbm9kZShSZXN1bHRSZWxJbmZvLCBsYyk7CisKKwkJ ZXhwZWN0ZWQgPSBibXNfYWRkX21lbWJlcihleHBlY3RlZCwgcnJpLT5yaV9SYW5nZVRhYmxlSW5k ZXgpOworCX0KKwlpZiAoZXN0YXRlLT5lc19yb3dtYXJrcykKKwl7CisJCWZvciAoSW5kZXggcnRp ID0gMTsgcnRpIDw9IGVzdGF0ZS0+ZXNfcmFuZ2VfdGFibGVfc2l6ZTsgcnRpKyspCisJCQlpZiAo ZXN0YXRlLT5lc19yb3dtYXJrc1tydGkgLSAxXSAhPSBOVUxMKQorCQkJCWV4cGVjdGVkID0gYm1z X2FkZF9tZW1iZXIoZXhwZWN0ZWQsIHJ0aSk7CisJfQorCUFzc2VydChibXNfaXNfc3Vic2V0KGV4 cGVjdGVkLCBlc3RhdGUtPmVzX21vZGlmaWVkX3JlbGlkcykpOworfQorI2VuZGlmCisKIC8qCiAg KiBFeGVjSW5pdFJlc3VsdFJlbGF0aW9uCiAgKgkJT3BlbiByZWxhdGlvbiBnaXZlbiBieSB0aGUg cGFzc2VkLWluIFJUIGluZGV4IGFuZCBmaWxsIGl0cwpAQCAtODk2LDYgKzkyNSw4IEBAIEV4ZWNJ bml0UmVzdWx0UmVsYXRpb24oRVN0YXRlICplc3RhdGUsIFJlc3VsdFJlbEluZm8gKnJlc3VsdFJl bEluZm8sCiAJCWVzdGF0ZS0+ZXNfcmVzdWx0X3JlbGF0aW9ucyA9IChSZXN1bHRSZWxJbmZvICoq KQogCQkJcGFsbG9jMChlc3RhdGUtPmVzX3JhbmdlX3RhYmxlX3NpemUgKiBzaXplb2YoUmVzdWx0 UmVsSW5mbyAqKSk7CiAJZXN0YXRlLT5lc19yZXN1bHRfcmVsYXRpb25zW3J0aSAtIDFdID0gcmVz dWx0UmVsSW5mbzsKKwllc3RhdGUtPmVzX21vZGlmaWVkX3JlbGlkcyA9IGJtc19hZGRfbWVtYmVy KGVzdGF0ZS0+ZXNfbW9kaWZpZWRfcmVsaWRzLAorCQkJCQkJCQkJCQkJcnRpKTsKIAogCS8qCiAJ ICogU2F2aW5nIGluIHRoZSBsaXN0IGFsbG93cyB0byBhdm9pZCBuZWVkbGVzc2x5IHRyYXZlcnNp bmcgdGhlIHdob2xlCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjdXRvci5o IGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaAppbmRleCA4MmM0NDJkMjNmOC4uMTQx MWQ1Mjc2Y2EgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWN1dG9yLmgKKysr IGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY3V0b3IuaApAQCAtNzA1LDYgKzcwNSw5IEBAIGV4 dGVybiBSZWxhdGlvbiBFeGVjR2V0UmFuZ2VUYWJsZVJlbGF0aW9uKEVTdGF0ZSAqZXN0YXRlLCBJ bmRleCBydGksCiAJCQkJCQkJCQkJICBib29sIGlzUmVzdWx0UmVsKTsKIGV4dGVybiB2b2lkIEV4 ZWNJbml0UmVzdWx0UmVsYXRpb24oRVN0YXRlICplc3RhdGUsIFJlc3VsdFJlbEluZm8gKnJlc3Vs dFJlbEluZm8sCiAJCQkJCQkJCSAgIEluZGV4IHJ0aSk7CisjaWZkZWYgVVNFX0FTU0VSVF9DSEVD S0lORworZXh0ZXJuIHZvaWQgQ3Jvc3NDaGVja01vZGlmaWVkUmVsaWRzKEVTdGF0ZSAqZXN0YXRl KTsKKyNlbmRpZgogCiBleHRlcm4gaW50CWV4ZWN1dG9yX2VycnBvc2l0aW9uKEVTdGF0ZSAqZXN0 YXRlLCBpbnQgbG9jYXRpb24pOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9leGVj bm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCmluZGV4IDYzYzA2N2Q1YWFl Li42MTAzODVkZjEyYiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgK KysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmgKQEAgLTY3OSw2ICs2NzksMTIgQEAg dHlwZWRlZiBzdHJ1Y3QgRVN0YXRlCiAJCQkJCQkJCQkgKiBFeGVjRG9Jbml0aWFsUHJ1bmluZygp ICovCiAJY29uc3QgY2hhciAqZXNfc291cmNlVGV4dDsJLyogU291cmNlIHRleHQgZnJvbSBRdWVy eURlc2MgKi8KIAorCS8qCisJICogUlQgaW5kZXhlcyBvZiByZWxhdGlvbnMgbW9kaWZpZWQgYnkg dGhlIHF1ZXJ5IHRocm91Z2ggYQorCSAqIFVQREFURS9ERUxFVEUvSU5TRVJUL01FUkdFIG9yIHRh cmdldGVkIGJ5IGEgU0VMRUNUIEZPUiBVUERBVEUuCisJICovCisJQml0bWFwc2V0ICAqZXNfbW9k aWZpZWRfcmVsaWRzOworCiAJSnVua0ZpbHRlciAqZXNfanVua0ZpbHRlcjsJLyogdG9wLWxldmVs IGp1bmsgZmlsdGVyLCBpZiBhbnkgKi8KIAogCS8qIElmIHF1ZXJ5IGNhbiBpbnNlcnQvZGVsZXRl IHR1cGxlcywgdGhlIGNvbW1hbmQgSUQgdG8gbWFyayB0aGVtIHdpdGggKi8KLS0gCjIuNDMuMAoK --00000000000044ac80064d14dd96 Content-Type: text/x-patch; charset="US-ASCII"; name="v38-0009-Thread-flags-through-begin-scan-APIs.patch" Content-Disposition: attachment; filename="v38-0009-Thread-flags-through-begin-scan-APIs.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mms4qcop8 RnJvbSBlNTAxZWMyNzg0NGFlMDU2YzlkNWIwNDM5ZTMyN2RlZDQ1MGM5Y2UyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBNb24sIDIgTWFyIDIwMjYgMTY6MzE6MTcgLTA1MDAKU3ViamVjdDogW1BB VENIIHYzOCAwOS8xMl0gVGhyZWFkIGZsYWdzIHRocm91Z2ggYmVnaW4tc2NhbiBBUElzCgpBZGQg 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 a3MvcGdyb3dsb2Nrcy5jCmluZGV4IGY4ODI2OTMzMmI2Li4yN2YwMWQ4MDU1ZiAxMDA2NDQKLS0t IGEvY29udHJpYi9wZ3Jvd2xvY2tzL3Bncm93bG9ja3MuYworKysgYi9jb250cmliL3Bncm93bG9j a3MvcGdyb3dsb2Nrcy5jCkBAIC0xMTQsNyArMTE0LDcgQEAgcGdyb3dsb2NrcyhQR19GVU5DVElP Tl9BUkdTKQogCQkJCQkgICBSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShyZWwpKTsKIAogCS8qIFNj YW4gdGhlIHJlbGF0aW9uICovCi0Jc2NhbiA9IHRhYmxlX2JlZ2luc2NhbihyZWwsIEdldEFjdGl2 ZVNuYXBzaG90KCksIDAsIE5VTEwpOworCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4ocmVsLCBHZXRB Y3RpdmVTbmFwc2hvdCgpLCAwLCBOVUxMLCAwKTsKIAloc2NhbiA9IChIZWFwU2NhbkRlc2MpIHNj YW47CiAKIAlhdHRpbm1ldGEgPSBUdXBsZURlc2NHZXRBdHRJbk1ldGFkYXRhKHJzaW5mby0+c2V0 RGVzYyk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluLmMgYi9zcmMv YmFja2VuZC9hY2Nlc3MvYnJpbi9icmluLmMKaW5kZXggMTkwOWMzMjU0YjUuLmEyMjFlMDMyZjVk IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvYnJpbi9icmluLmMKKysrIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2JyaW4vYnJpbi5jCkBAIC0yODQyLDcgKzI4NDIsOCBAQCBfYnJpbl9wYXJh bGxlbF9zY2FuX2FuZF9idWlsZChCcmluQnVpbGRTdGF0ZSAqc3RhdGUsCiAJaW5kZXhJbmZvLT5p aV9Db25jdXJyZW50ID0gYnJpbnNoYXJlZC0+aXNjb25jdXJyZW50OwogCiAJc2NhbiA9IHRhYmxl X2JlZ2luc2Nhbl9wYXJhbGxlbChoZWFwLAotCQkJCQkJCQkJUGFyYWxsZWxUYWJsZVNjYW5Gcm9t QnJpblNoYXJlZChicmluc2hhcmVkKSk7CisJCQkJCQkJCQlQYXJhbGxlbFRhYmxlU2NhbkZyb21C cmluU2hhcmVkKGJyaW5zaGFyZWQpLAorCQkJCQkJCQkJMCk7CiAKIAlyZWx0dXBsZXMgPSB0YWJs ZV9pbmRleF9idWlsZF9zY2FuKGhlYXAsIGluZGV4LCBpbmRleEluZm8sIHRydWUsIHRydWUsCiAJ CQkJCQkJCQkgICBicmluYnVpbGRDYWxsYmFja1BhcmFsbGVsLCBzdGF0ZSwgc2Nhbik7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2luL2dpbmluc2VydC5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2dpbi9naW5pbnNlcnQuYwppbmRleCA5N2NlYTVmN2Q0ZS4uNzQyNDNlZmE3NGYgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naW4vZ2luaW5zZXJ0LmMKKysrIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2dpbi9naW5pbnNlcnQuYwpAQCAtMjA2NSw3ICsyMDY1LDggQEAgX2dpbl9w YXJhbGxlbF9zY2FuX2FuZF9idWlsZChHaW5CdWlsZFN0YXRlICpzdGF0ZSwKIAlpbmRleEluZm8t PmlpX0NvbmN1cnJlbnQgPSBnaW5zaGFyZWQtPmlzY29uY3VycmVudDsKIAogCXNjYW4gPSB0YWJs ZV9iZWdpbnNjYW5fcGFyYWxsZWwoaGVhcCwKLQkJCQkJCQkJCVBhcmFsbGVsVGFibGVTY2FuRnJv bUdpbkJ1aWxkU2hhcmVkKGdpbnNoYXJlZCkpOworCQkJCQkJCQkJUGFyYWxsZWxUYWJsZVNjYW5G cm9tR2luQnVpbGRTaGFyZWQoZ2luc2hhcmVkKSwKKwkJCQkJCQkJCTApOwogCiAJcmVsdHVwbGVz ID0gdGFibGVfaW5kZXhfYnVpbGRfc2NhbihoZWFwLCBpbmRleCwgaW5kZXhJbmZvLCB0cnVlLCBw cm9ncmVzcywKIAkJCQkJCQkJCSAgIGdpbkJ1aWxkQ2FsbGJhY2tQYXJhbGxlbCwgc3RhdGUsIHNj YW4pOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtX2hhbmRsZXIu YyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMKaW5kZXggNDJiZjcz ZDMxMzguLjYxMjI2MDNkMTFlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9o ZWFwYW1faGFuZGxlci5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5k bGVyLmMKQEAgLTc5LDcgKzc5LDcgQEAgaGVhcGFtX3Nsb3RfY2FsbGJhY2tzKFJlbGF0aW9uIHJl bGF0aW9uKQogICovCiAKIHN0YXRpYyBJbmRleEZldGNoVGFibGVEYXRhICoKLWhlYXBhbV9pbmRl eF9mZXRjaF9iZWdpbihSZWxhdGlvbiByZWwpCitoZWFwYW1faW5kZXhfZmV0Y2hfYmVnaW4oUmVs YXRpb24gcmVsLCB1aW50MzIgZmxhZ3MpCiB7CiAJSW5kZXhGZXRjaEhlYXBEYXRhICpoc2NhbiA9 IHBhbGxvYzBfb2JqZWN0KEluZGV4RmV0Y2hIZWFwRGF0YSk7CiAKQEAgLTc2MSw3ICs3NjEsNyBA QCBoZWFwYW1fcmVsYXRpb25fY29weV9mb3JfY2x1c3RlcihSZWxhdGlvbiBPbGRIZWFwLCBSZWxh dGlvbiBOZXdIZWFwLAogCiAJCXRhYmxlU2NhbiA9IE5VTEw7CiAJCWhlYXBTY2FuID0gTlVMTDsK LQkJaW5kZXhTY2FuID0gaW5kZXhfYmVnaW5zY2FuKE9sZEhlYXAsIE9sZEluZGV4LCBTbmFwc2hv dEFueSwgTlVMTCwgMCwgMCk7CisJCWluZGV4U2NhbiA9IGluZGV4X2JlZ2luc2NhbihPbGRIZWFw LCBPbGRJbmRleCwgU25hcHNob3RBbnksIE5VTEwsIDAsIDAsIDApOwogCQlpbmRleF9yZXNjYW4o aW5kZXhTY2FuLCBOVUxMLCAwLCBOVUxMLCAwKTsKIAl9CiAJZWxzZQpAQCAtNzcwLDcgKzc3MCw3 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 L3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0c29ydC5jCmluZGV4IDY5ZWYxNTI3ZTA2Li5i YzRlZWRiYTRhYyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRzb3J0 LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRzb3J0LmMKQEAgLTE5MjcsNyAr MTkyNyw3IEBAIF9idF9wYXJhbGxlbF9zY2FuX2FuZF9zb3J0KEJUU3Bvb2wgKmJ0c3Bvb2wsIEJU 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 cmMvYmFja2VuZC9jb21tYW5kcy9jb3B5dG8uYwppbmRleCBkNmVmNzI3NWE2NC4uOTAwMTk5ZGJl MjkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2NvcHl0by5jCisrKyBiL3NyYy9i YWNrZW5kL2NvbW1hbmRzL2NvcHl0by5jCkBAIC0xMTU5LDcgKzExNTksNyBAQCBDb3B5UmVsYXRp b25UbyhDb3B5VG9TdGF0ZSBjc3RhdGUsIFJlbGF0aW9uIHJlbCwgUmVsYXRpb24gcm9vdF9yZWws IHVpbnQ2NCAqcHJvYwogCUF0dHJNYXAgICAgKm1hcCA9IE5VTEw7CiAJVHVwbGVUYWJsZVNsb3Qg KnJvb3Rfc2xvdCA9IE5VTEw7CiAKLQlzY2FuZGVzYyA9IHRhYmxlX2JlZ2luc2NhbihyZWwsIEdl dEFjdGl2ZVNuYXBzaG90KCksIDAsIE5VTEwpOworCXNjYW5kZXNjID0gdGFibGVfYmVnaW5zY2Fu KHJlbCwgR2V0QWN0aXZlU25hcHNob3QoKSwgMCwgTlVMTCwgMCk7CiAJc2xvdCA9IHRhYmxlX3Ns b3RfY3JlYXRlKHJlbCwgTlVMTCk7CiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29t bWFuZHMvdGFibGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRl eCBjZDZkNzIwMzg2Zi4uMDQ1NWIzNmM0MWUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBA IC02Mzk2LDcgKzYzOTYsNyBAQCBBVFJld3JpdGVUYWJsZShBbHRlcmVkVGFibGVJbmZvICp0YWIs IE9pZCBPSUROZXdIZWFwKQogCQkgKiBjaGVja2luZyBhbGwgdGhlIGNvbnN0cmFpbnRzLgogCQkg Ki8KIAkJc25hcHNob3QgPSBSZWdpc3RlclNuYXBzaG90KEdldExhdGVzdFNuYXBzaG90KCkpOwot CQlzY2FuID0gdGFibGVfYmVnaW5zY2FuKG9sZHJlbCwgc25hcHNob3QsIDAsIE5VTEwpOworCQlz Y2FuID0gdGFibGVfYmVnaW5zY2FuKG9sZHJlbCwgc25hcHNob3QsIDAsIE5VTEwsIDApOwogCiAJ CS8qCiAJCSAqIFN3aXRjaCB0byBwZXItdHVwbGUgbWVtb3J5IGNvbnRleHQgYW5kIHJlc2V0IGl0 IGZvciBlYWNoIHR1cGxlCkBAIC0xMzk2NSw3ICsxMzk2NSw3IEBAIHZhbGlkYXRlRm9yZWlnbktl eUNvbnN0cmFpbnQoY2hhciAqY29ubmFtZSwKIAkgKi8KIAlzbmFwc2hvdCA9IFJlZ2lzdGVyU25h cHNob3QoR2V0TGF0ZXN0U25hcHNob3QoKSk7CiAJc2xvdCA9IHRhYmxlX3Nsb3RfY3JlYXRlKHJl bCwgTlVMTCk7Ci0Jc2NhbiA9IHRhYmxlX2JlZ2luc2NhbihyZWwsIHNuYXBzaG90LCAwLCBOVUxM KTsKKwlzY2FuID0gdGFibGVfYmVnaW5zY2FuKHJlbCwgc25hcHNob3QsIDAsIE5VTEwsIDApOwog CiAJcGVyVHVwQ3h0ID0gQWxsb2NTZXRDb250ZXh0Q3JlYXRlKEN1cnJlbnRNZW1vcnlDb250ZXh0 LAogCQkJCQkJCQkJICAidmFsaWRhdGVGb3JlaWduS2V5Q29uc3RyYWludCIsCkBAIC0yMjg2Nyw3 ICsyMjg2Nyw3IEBAIE1lcmdlUGFydGl0aW9uc01vdmVSb3dzKExpc3QgKip3cXVldWUsIExpc3Qg Km1lcmdpbmdQYXJ0aXRpb25zLCBSZWxhdGlvbiBuZXdQYXJ0CiAKIAkJLyogU2NhbiB0aHJvdWdo IHRoZSByb3dzLiAqLwogCQlzbmFwc2hvdCA9IFJlZ2lzdGVyU25hcHNob3QoR2V0TGF0ZXN0U25h cHNob3QoKSk7Ci0JCXNjYW4gPSB0YWJsZV9iZWdpbnNjYW4obWVyZ2luZ1BhcnRpdGlvbiwgc25h cHNob3QsIDAsIE5VTEwpOworCQlzY2FuID0gdGFibGVfYmVnaW5zY2FuKG1lcmdpbmdQYXJ0aXRp b24sIHNuYXBzaG90LCAwLCBOVUxMLCAwKTsKIAogCQkvKgogCQkgKiBTd2l0Y2ggdG8gcGVyLXR1 cGxlIG1lbW9yeSBjb250ZXh0IGFuZCByZXNldCBpdCBmb3IgZWFjaCB0dXBsZQpAQCAtMjMzMzEs NyArMjMzMzEsNyBAQCBTcGxpdFBhcnRpdGlvbk1vdmVSb3dzKExpc3QgKip3cXVldWUsIFJlbGF0 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 Yi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlQml0bWFwSGVhcHNjYW4uYwppbmRleCA3NGVhYzkz Mjg0ZS4uNjIwZmM3ZTI1OWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVC aXRtYXBIZWFwc2Nhbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVCaXRtYXBIZWFw c2Nhbi5jCkBAIC0xMDgsNyArMTA4LDcgQEAgQml0bWFwVGFibGVTY2FuU2V0dXAoQml0bWFwSGVh cFNjYW5TdGF0ZSAqbm9kZSkKIAkJCXRhYmxlX2JlZ2luc2Nhbl9ibShub2RlLT5zcy5zc19jdXJy ZW50UmVsYXRpb24sCiAJCQkJCQkJICAgbm9kZS0+c3MucHMuc3RhdGUtPmVzX3NuYXBzaG90LAog CQkJCQkJCSAgIDAsCi0JCQkJCQkJICAgTlVMTCk7CisJCQkJCQkJICAgTlVMTCwgMCk7CiAJfQog CiAJbm9kZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjLT5zdC5yc190Ym1pdGVyYXRvciA9IHRibWl0 ZXJhdG9yOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4b25seXNj YW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleG9ubHlzY2FuLmMKaW5kZXggOWU4 ZWE4ZGRmMjIuLmFlZmI3OTJlZTZlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9u b2RlSW5kZXhvbmx5c2Nhbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleG9u bHlzY2FuLmMKQEAgLTk0LDcgKzk0LDcgQEAgSW5kZXhPbmx5TmV4dChJbmRleE9ubHlTY2FuU3Rh dGUgKm5vZGUpCiAJCQkJCQkJCSAgIGVzdGF0ZS0+ZXNfc25hcHNob3QsCiAJCQkJCQkJCSAgICZu b2RlLT5pb3NzX0luc3RydW1lbnQsCiAJCQkJCQkJCSAgIG5vZGUtPmlvc3NfTnVtU2NhbktleXMs Ci0JCQkJCQkJCSAgIG5vZGUtPmlvc3NfTnVtT3JkZXJCeUtleXMpOworCQkJCQkJCQkgICBub2Rl LT5pb3NzX051bU9yZGVyQnlLZXlzLCAwKTsKIAogCQlub2RlLT5pb3NzX1NjYW5EZXNjID0gc2Nh bmRlc2M7CiAKQEAgLTc4OCw3ICs3ODgsNyBAQCBFeGVjSW5kZXhPbmx5U2NhbkluaXRpYWxpemVE U00oSW5kZXhPbmx5U2NhblN0YXRlICpub2RlLAogCQkJCQkJCQkgJm5vZGUtPmlvc3NfSW5zdHJ1 bWVudCwKIAkJCQkJCQkJIG5vZGUtPmlvc3NfTnVtU2NhbktleXMsCiAJCQkJCQkJCSBub2RlLT5p b3NzX051bU9yZGVyQnlLZXlzLAotCQkJCQkJCQkgcGlzY2FuKTsKKwkJCQkJCQkJIHBpc2Nhbiwg MCk7CiAJbm9kZS0+aW9zc19TY2FuRGVzYy0+eHNfd2FudF9pdHVwID0gdHJ1ZTsKIAlub2RlLT5p b3NzX1ZNQnVmZmVyID0gSW52YWxpZEJ1ZmZlcjsKIApAQCAtODU0LDcgKzg1NCw3IEBAIEV4ZWNJ bmRleE9ubHlTY2FuSW5pdGlhbGl6ZVdvcmtlcihJbmRleE9ubHlTY2FuU3RhdGUgKm5vZGUsCiAJ CQkJCQkJCSAmbm9kZS0+aW9zc19JbnN0cnVtZW50LAogCQkJCQkJCQkgbm9kZS0+aW9zc19OdW1T Y2FuS2V5cywKIAkJCQkJCQkJIG5vZGUtPmlvc3NfTnVtT3JkZXJCeUtleXMsCi0JCQkJCQkJCSBw aXNjYW4pOworCQkJCQkJCQkgcGlzY2FuLCAwKTsKIAlub2RlLT5pb3NzX1NjYW5EZXNjLT54c193 YW50X2l0dXAgPSB0cnVlOwogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9y L25vZGVJbmRleHNjYW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleHNjYW4uYwpp bmRleCA0NTEzYjFmN2E5MC4uNDc3Y2Q0ZmNmOTkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4 ZWN1dG9yL25vZGVJbmRleHNjYW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5k ZXhzY2FuLmMKQEAgLTExMSw3ICsxMTEsNyBAQCBJbmRleE5leHQoSW5kZXhTY2FuU3RhdGUgKm5v ZGUpCiAJCQkJCQkJCSAgIGVzdGF0ZS0+ZXNfc25hcHNob3QsCiAJCQkJCQkJCSAgICZub2RlLT5p c3NfSW5zdHJ1bWVudCwKIAkJCQkJCQkJICAgbm9kZS0+aXNzX051bVNjYW5LZXlzLAotCQkJCQkJ CQkgICBub2RlLT5pc3NfTnVtT3JkZXJCeUtleXMpOworCQkJCQkJCQkgICBub2RlLT5pc3NfTnVt T3JkZXJCeUtleXMsIDApOwogCiAJCW5vZGUtPmlzc19TY2FuRGVzYyA9IHNjYW5kZXNjOwogCkBA IC0yMDcsNyArMjA3LDcgQEAgSW5kZXhOZXh0V2l0aFJlb3JkZXIoSW5kZXhTY2FuU3RhdGUgKm5v ZGUpCiAJCQkJCQkJCSAgIGVzdGF0ZS0+ZXNfc25hcHNob3QsCiAJCQkJCQkJCSAgICZub2RlLT5p c3NfSW5zdHJ1bWVudCwKIAkJCQkJCQkJICAgbm9kZS0+aXNzX051bVNjYW5LZXlzLAotCQkJCQkJ CQkgICBub2RlLT5pc3NfTnVtT3JkZXJCeUtleXMpOworCQkJCQkJCQkgICBub2RlLT5pc3NfTnVt T3JkZXJCeUtleXMsIDApOwogCiAJCW5vZGUtPmlzc19TY2FuRGVzYyA9IHNjYW5kZXNjOwogCkBA IC0xNzIzLDcgKzE3MjMsNyBAQCBFeGVjSW5kZXhTY2FuSW5pdGlhbGl6ZURTTShJbmRleFNjYW5T dGF0ZSAqbm9kZSwKIAkJCQkJCQkJICZub2RlLT5pc3NfSW5zdHJ1bWVudCwKIAkJCQkJCQkJIG5v ZGUtPmlzc19OdW1TY2FuS2V5cywKIAkJCQkJCQkJIG5vZGUtPmlzc19OdW1PcmRlckJ5S2V5cywK LQkJCQkJCQkJIHBpc2Nhbik7CisJCQkJCQkJCSBwaXNjYW4sIDApOwogCiAJLyoKIAkgKiBJZiBu byBydW4tdGltZSBrZXlzIHRvIGNhbGN1bGF0ZSBvciB0aGV5IGFyZSByZWFkeSwgZ28gYWhlYWQg YW5kIHBhc3MKQEAgLTE3ODcsNyArMTc4Nyw3IEBAIEV4ZWNJbmRleFNjYW5Jbml0aWFsaXplV29y a2VyKEluZGV4U2NhblN0YXRlICpub2RlLAogCQkJCQkJCQkgJm5vZGUtPmlzc19JbnN0cnVtZW50 LAogCQkJCQkJCQkgbm9kZS0+aXNzX051bVNjYW5LZXlzLAogCQkJCQkJCQkgbm9kZS0+aXNzX051 bU9yZGVyQnlLZXlzLAotCQkJCQkJCQkgcGlzY2FuKTsKKwkJCQkJCQkJIHBpc2NhbiwgMCk7CiAK IAkvKgogCSAqIElmIG5vIHJ1bi10aW1lIGtleXMgdG8gY2FsY3VsYXRlIG9yIHRoZXkgYXJlIHJl YWR5LCBnbyBhaGVhZCBhbmQgcGFzcwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Iv bm9kZVNhbXBsZXNjYW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTYW1wbGVzY2FuLmMK aW5kZXggMWIwYWY3MGZkN2EuLjQ3NjYwYmFmMmZhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9l eGVjdXRvci9ub2RlU2FtcGxlc2Nhbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVT YW1wbGVzY2FuLmMKQEAgLTI5Nyw3ICsyOTcsNyBAQCB0YWJsZXNhbXBsZV9pbml0KFNhbXBsZVNj YW5TdGF0ZSAqc2NhbnN0YXRlKQogCQkJCQkJCQkJIDAsIE5VTEwsCiAJCQkJCQkJCQkgc2NhbnN0 YXRlLT51c2VfYnVsa3JlYWQsCiAJCQkJCQkJCQkgYWxsb3dfc3luYywKLQkJCQkJCQkJCSBzY2Fu c3RhdGUtPnVzZV9wYWdlbW9kZSk7CisJCQkJCQkJCQkgc2NhbnN0YXRlLT51c2VfcGFnZW1vZGUs IDApOwogCX0KIAllbHNlCiAJewpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9k ZVNlcXNjYW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTZXFzY2FuLmMKaW5kZXggYWYz Yzc4OGNlOGIuLmQ5ZDdlYzA1MTZhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9u b2RlU2Vxc2Nhbi5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTZXFzY2FuLmMKQEAg LTcxLDcgKzcxLDcgQEAgU2VxTmV4dChTZXFTY2FuU3RhdGUgKm5vZGUpCiAJCSAqLwogCQlzY2Fu ZGVzYyA9IHRhYmxlX2JlZ2luc2Nhbihub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sCiAJCQkJ CQkJCSAgIGVzdGF0ZS0+ZXNfc25hcHNob3QsCi0JCQkJCQkJCSAgIDAsIE5VTEwpOworCQkJCQkJ CQkgICAwLCBOVUxMLCAwKTsKIAkJbm9kZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjID0gc2NhbmRl c2M7CiAJfQogCkBAIC0zNzQsNyArMzc0LDcgQEAgRXhlY1NlcVNjYW5Jbml0aWFsaXplRFNNKFNl cVNjYW5TdGF0ZSAqbm9kZSwKIAkJCQkJCQkJICBlc3RhdGUtPmVzX3NuYXBzaG90KTsKIAlzaG1f dG9jX2luc2VydChwY3h0LT50b2MsIG5vZGUtPnNzLnBzLnBsYW4tPnBsYW5fbm9kZV9pZCwgcHNj YW4pOwogCW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9Ci0JCXRhYmxlX2JlZ2luc2Nhbl9w YXJhbGxlbChub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sIHBzY2FuKTsKKwkJdGFibGVfYmVn aW5zY2FuX3BhcmFsbGVsKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwgcHNjYW4sIDApOwog fQogCiAvKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCkBAIC00MDcsNSArNDA3LDUgQEAgRXhlY1NlcVNjYW5Jbml0aWFsaXpl V29ya2VyKFNlcVNjYW5TdGF0ZSAqbm9kZSwKIAogCXBzY2FuID0gc2htX3RvY19sb29rdXAocHdj eHQtPnRvYywgbm9kZS0+c3MucHMucGxhbi0+cGxhbl9ub2RlX2lkLCBmYWxzZSk7CiAJbm9kZS0+ c3Muc3NfY3VycmVudFNjYW5EZXNjID0KLQkJdGFibGVfYmVnaW5zY2FuX3BhcmFsbGVsKG5vZGUt PnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwgcHNjYW4pOworCQl0YWJsZV9iZWdpbnNjYW5fcGFyYWxs ZWwobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLCBwc2NhbiwgMCk7CiB9CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlVGlkcmFuZ2VzY2FuLmMgYi9zcmMvYmFja2VuZC9l eGVjdXRvci9ub2RlVGlkcmFuZ2VzY2FuLmMKaW5kZXggNTAzODE3ZGE2NWIuLjQ2MWVkYjg4OTNi IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlVGlkcmFuZ2VzY2FuLmMKKysr IGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVRpZHJhbmdlc2Nhbi5jCkBAIC0yNDUsNyArMjQ1 LDcgQEAgVGlkUmFuZ2VOZXh0KFRpZFJhbmdlU2NhblN0YXRlICpub2RlKQogCQkJc2NhbmRlc2Mg PSB0YWJsZV9iZWdpbnNjYW5fdGlkcmFuZ2Uobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAog CQkJCQkJCQkJCQkJZXN0YXRlLT5lc19zbmFwc2hvdCwKIAkJCQkJCQkJCQkJCSZub2RlLT50cnNz X21pbnRpZCwKLQkJCQkJCQkJCQkJCSZub2RlLT50cnNzX21heHRpZCk7CisJCQkJCQkJCQkJCQkm bm9kZS0+dHJzc19tYXh0aWQsIDApOwogCQkJbm9kZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjID0g c2NhbmRlc2M7CiAJCX0KIAkJZWxzZQpAQCAtNDU5LDcgKzQ1OSw3IEBAIEV4ZWNUaWRSYW5nZVNj YW5Jbml0aWFsaXplRFNNKFRpZFJhbmdlU2NhblN0YXRlICpub2RlLCBQYXJhbGxlbENvbnRleHQg KnBjeHQpCiAJc2htX3RvY19pbnNlcnQocGN4dC0+dG9jLCBub2RlLT5zcy5wcy5wbGFuLT5wbGFu X25vZGVfaWQsIHBzY2FuKTsKIAlub2RlLT5zcy5zc19jdXJyZW50U2NhbkRlc2MgPQogCQl0YWJs ZV9iZWdpbnNjYW5fcGFyYWxsZWxfdGlkcmFuZ2Uobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9u LAotCQkJCQkJCQkJCSAgcHNjYW4pOworCQkJCQkJCQkJCSAgcHNjYW4sIDApOwogfQogCiAvKiAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCkBAIC00OTMsNSArNDkzLDUgQEAgRXhlY1RpZFJhbmdlU2NhbkluaXRpYWxpemVXb3Jr 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 L2luY2x1ZGUvYWNjZXNzL2dlbmFtLmgKaW5kZXggNGMwNDI5Y2M2MTMuLjlhYmNjOTlkNmM4IDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2VuYW0uaAorKysgYi9zcmMvaW5jbHVkZS9h Y2Nlc3MvZ2VuYW0uaApAQCAtMTU2LDcgKzE1Niw3IEBAIGV4dGVybiBJbmRleFNjYW5EZXNjIGlu ZGV4X2JlZ2luc2NhbihSZWxhdGlvbiBoZWFwUmVsYXRpb24sCiAJCQkJCQkJCQkgUmVsYXRpb24g aW5kZXhSZWxhdGlvbiwKIAkJCQkJCQkJCSBTbmFwc2hvdCBzbmFwc2hvdCwKIAkJCQkJCQkJCSBJ bmRleFNjYW5JbnN0cnVtZW50YXRpb24gKmluc3RydW1lbnQsCi0JCQkJCQkJCQkgaW50IG5rZXlz LCBpbnQgbm9yZGVyYnlzKTsKKwkJCQkJCQkJCSBpbnQgbmtleXMsIGludCBub3JkZXJieXMsIHVp bnQzMiBmbGFncyk7CiBleHRlcm4gSW5kZXhTY2FuRGVzYyBpbmRleF9iZWdpbnNjYW5fYml0bWFw KFJlbGF0aW9uIGluZGV4UmVsYXRpb24sCiAJCQkJCQkJCQkJCVNuYXBzaG90IHNuYXBzaG90LAog CQkJCQkJCQkJCQlJbmRleFNjYW5JbnN0cnVtZW50YXRpb24gKmluc3RydW1lbnQsCkBAIC0xODIs NyArMTgyLDggQEAgZXh0ZXJuIEluZGV4U2NhbkRlc2MgaW5kZXhfYmVnaW5zY2FuX3BhcmFsbGVs KFJlbGF0aW9uIGhlYXByZWwsCiAJCQkJCQkJCQkJCSAgUmVsYXRpb24gaW5kZXhyZWwsCiAJCQkJ CQkJCQkJCSAgSW5kZXhTY2FuSW5zdHJ1bWVudGF0aW9uICppbnN0cnVtZW50LAogCQkJCQkJCQkJ CQkgIGludCBua2V5cywgaW50IG5vcmRlcmJ5cywKLQkJCQkJCQkJCQkJICBQYXJhbGxlbEluZGV4 U2NhbkRlc2MgcHNjYW4pOworCQkJCQkJCQkJCQkgIFBhcmFsbGVsSW5kZXhTY2FuRGVzYyBwc2Nh biwKKwkJCQkJCQkJCQkJICB1aW50MzIgZmxhZ3MpOwogZXh0ZXJuIEl0ZW1Qb2ludGVyIGluZGV4 X2dldG5leHRfdGlkKEluZGV4U2NhbkRlc2Mgc2NhbiwKIAkJCQkJCQkJCSBTY2FuRGlyZWN0aW9u IGRpcmVjdGlvbik7CiBleHRlcm4gYm9vbCBpbmRleF9mZXRjaF9oZWFwKEluZGV4U2NhbkRlc2Mg c2NhbiwgVHVwbGVUYWJsZVNsb3QgKnNsb3QpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNj ZXNzL2hlYXBhbS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCmluZGV4IGY3N2EwMDI5 MWJiLi5jMjYyMWRjMmZhYyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5o CisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaApAQCAtOTUsOCArOTUsOSBAQCB0eXBl 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 --00000000000044ac80064d14dd96 Content-Type: text/x-patch; charset="US-ASCII"; name="v38-0010-Pass-down-information-on-table-modification-to-s.patch" Content-Disposition: attachment; filename="v38-0010-Pass-down-information-on-table-modification-to-s.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mms4qg409 RnJvbSAzYTZiMDhmYzMyMTlhZmQ3OWRjODFhNTIxOWU2YTU0M2Q2NzAzNmY2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBNb24sIDIgTWFyIDIwMjYgMTY6MzE6MzMgLTA1MDAKU3ViamVjdDogW1BB VENIIHYzOCAxMC8xMl0gUGFzcyBkb3duIGluZm9ybWF0aW9uIG9uIHRhYmxlIG1vZGlmaWNhdGlv 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 YwppbmRleCA2MTIyNjAzZDExZS4uZDM1YjY4OGQ3NTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9oZWFwL2hlYXBhbV9oYW5kbGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvaGVhcGFtX2hhbmRsZXIuYwpAQCAtODYsNiArODYsNyBAQCBoZWFwYW1faW5kZXhfZmV0Y2hf YmVnaW4oUmVsYXRpb24gcmVsLCB1aW50MzIgZmxhZ3MpCiAJaHNjYW4tPnhzX2Jhc2UucmVsID0g cmVsOwogCWhzY2FuLT54c19jYnVmID0gSW52YWxpZEJ1ZmZlcjsKIAloc2Nhbi0+eHNfdm1idWZm ZXIgPSBJbnZhbGlkQnVmZmVyOworCWhzY2FuLT5tb2RpZmllc19iYXNlX3JlbCA9ICEoZmxhZ3Mg JiBTT19ISU5UX1JFTF9SRUFEX09OTFkpOwogCiAJcmV0dXJuICZoc2Nhbi0+eHNfYmFzZTsKIH0K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVCaXRtYXBIZWFwc2Nhbi5jIGIv c3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUJpdG1hcEhlYXBzY2FuLmMKaW5kZXggNjIwZmM3ZTI1 OWEuLmE1YWI1ZTJiMzdmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlQml0 bWFwSGVhcHNjYW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlQml0bWFwSGVhcHNj YW4uYwpAQCAtMTA0LDExICsxMDQsMTggQEAgQml0bWFwVGFibGVTY2FuU2V0dXAoQml0bWFwSGVh cFNjYW5TdGF0ZSAqbm9kZSkKIAkgKi8KIAlpZiAoIW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVz YykKIAl7CisJCXVpbnQzMgkJZmxhZ3MgPSAwOworCisJCWlmICghYm1zX2lzX21lbWJlcigoKFNj YW4gKikgbm9kZS0+c3MucHMucGxhbiktPnNjYW5yZWxpZCwKKwkJCQkJCSAgIG5vZGUtPnNzLnBz LnN0YXRlLT5lc19tb2RpZmllZF9yZWxpZHMpKQorCQkJZmxhZ3MgfD0gU09fSElOVF9SRUxfUkVB RF9PTkxZOworCiAJCW5vZGUtPnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9CiAJCQl0YWJsZV9iZWdp bnNjYW5fYm0obm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAogCQkJCQkJCSAgIG5vZGUtPnNz LnBzLnN0YXRlLT5lc19zbmFwc2hvdCwKIAkJCQkJCQkgICAwLAotCQkJCQkJCSAgIE5VTEwsIDAp OworCQkJCQkJCSAgIE5VTEwsCisJCQkJCQkJICAgZmxhZ3MpOwogCX0KIAogCW5vZGUtPnNzLnNz X2N1cnJlbnRTY2FuRGVzYy0+c3QucnNfdGJtaXRlcmF0b3IgPSB0Ym1pdGVyYXRvcjsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVJbmRleG9ubHlzY2FuLmMgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9ub2RlSW5kZXhvbmx5c2Nhbi5jCmluZGV4IGFlZmI3OTJlZTZlLi42ZDdh MzJjMWNiOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZUluZGV4b25seXNj YW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhvbmx5c2Nhbi5jCkBAIC04 NCw2ICs4NCwxMiBAQCBJbmRleE9ubHlOZXh0KEluZGV4T25seVNjYW5TdGF0ZSAqbm9kZSkKIAog CWlmIChzY2FuZGVzYyA9PSBOVUxMKQogCXsKKwkJdWludDMyCQlmbGFncyA9IDA7CisKKwkJaWYg KCFibXNfaXNfbWVtYmVyKCgoU2NhbiAqKSBub2RlLT5zcy5wcy5wbGFuKS0+c2NhbnJlbGlkLAor CQkJCQkJICAgZXN0YXRlLT5lc19tb2RpZmllZF9yZWxpZHMpKQorCQkJZmxhZ3MgfD0gU09fSElO VF9SRUxfUkVBRF9PTkxZOworCiAJCS8qCiAJCSAqIFdlIHJlYWNoIGhlcmUgaWYgdGhlIGluZGV4 IG9ubHkgc2NhbiBpcyBub3QgcGFyYWxsZWwsIG9yIGlmIHdlJ3JlCiAJCSAqIHNlcmlhbGx5IGV4 ZWN1dGluZyBhbiBpbmRleCBvbmx5IHNjYW4gdGhhdCB3YXMgcGxhbm5lZCB0byBiZQpAQCAtOTQs NyArMTAwLDggQEAgSW5kZXhPbmx5TmV4dChJbmRleE9ubHlTY2FuU3RhdGUgKm5vZGUpCiAJCQkJ CQkJCSAgIGVzdGF0ZS0+ZXNfc25hcHNob3QsCiAJCQkJCQkJCSAgICZub2RlLT5pb3NzX0luc3Ry dW1lbnQsCiAJCQkJCQkJCSAgIG5vZGUtPmlvc3NfTnVtU2NhbktleXMsCi0JCQkJCQkJCSAgIG5v ZGUtPmlvc3NfTnVtT3JkZXJCeUtleXMsIDApOworCQkJCQkJCQkgICBub2RlLT5pb3NzX051bU9y ZGVyQnlLZXlzLAorCQkJCQkJCQkgICBmbGFncyk7CiAKIAkJbm9kZS0+aW9zc19TY2FuRGVzYyA9 IHNjYW5kZXNjOwogCkBAIC03NjEsNiArNzY4LDcgQEAgRXhlY0luZGV4T25seVNjYW5Jbml0aWFs aXplRFNNKEluZGV4T25seVNjYW5TdGF0ZSAqbm9kZSwKIAlQYXJhbGxlbEluZGV4U2NhbkRlc2Mg cGlzY2FuOwogCWJvb2wJCWluc3RydW1lbnQgPSBub2RlLT5zcy5wcy5pbnN0cnVtZW50ICE9IE5V TEw7CiAJYm9vbAkJcGFyYWxsZWxfYXdhcmUgPSBub2RlLT5zcy5wcy5wbGFuLT5wYXJhbGxlbF9h d2FyZTsKKwl1aW50MzIJCWZsYWdzID0gMDsKIAogCWlmICghaW5zdHJ1bWVudCAmJiAhcGFyYWxs ZWxfYXdhcmUpCiAJewpAQCAtNzgyLDEzICs3OTAsMTggQEAgRXhlY0luZGV4T25seVNjYW5Jbml0 aWFsaXplRFNNKEluZGV4T25seVNjYW5TdGF0ZSAqbm9kZSwKIAkJcmV0dXJuOwogCX0KIAorCWlm ICghYm1zX2lzX21lbWJlcigoKFNjYW4gKikgbm9kZS0+c3MucHMucGxhbiktPnNjYW5yZWxpZCwK KwkJCQkJICAgZXN0YXRlLT5lc19tb2RpZmllZF9yZWxpZHMpKQorCQlmbGFncyB8PSBTT19ISU5U X1JFTF9SRUFEX09OTFk7CisKIAlub2RlLT5pb3NzX1NjYW5EZXNjID0KIAkJaW5kZXhfYmVnaW5z Y2FuX3BhcmFsbGVsKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwKIAkJCQkJCQkJIG5vZGUt Pmlvc3NfUmVsYXRpb25EZXNjLAogCQkJCQkJCQkgJm5vZGUtPmlvc3NfSW5zdHJ1bWVudCwKIAkJ CQkJCQkJIG5vZGUtPmlvc3NfTnVtU2NhbktleXMsCiAJCQkJCQkJCSBub2RlLT5pb3NzX051bU9y ZGVyQnlLZXlzLAotCQkJCQkJCQkgcGlzY2FuLCAwKTsKKwkJCQkJCQkJIHBpc2NhbiwgZmxhZ3Mp OworCiAJbm9kZS0+aW9zc19TY2FuRGVzYy0+eHNfd2FudF9pdHVwID0gdHJ1ZTsKIAlub2RlLT5p b3NzX1ZNQnVmZmVyID0gSW52YWxpZEJ1ZmZlcjsKIApAQCAtODI5LDYgKzg0Miw3IEBAIEV4ZWNJ bmRleE9ubHlTY2FuSW5pdGlhbGl6ZVdvcmtlcihJbmRleE9ubHlTY2FuU3RhdGUgKm5vZGUsCiAJ UGFyYWxsZWxJbmRleFNjYW5EZXNjIHBpc2NhbjsKIAlib29sCQlpbnN0cnVtZW50ID0gbm9kZS0+ c3MucHMuaW5zdHJ1bWVudCAhPSBOVUxMOwogCWJvb2wJCXBhcmFsbGVsX2F3YXJlID0gbm9kZS0+ c3MucHMucGxhbi0+cGFyYWxsZWxfYXdhcmU7CisJdWludDMyCQlmbGFncyA9IDA7CiAKIAlpZiAo IWluc3RydW1lbnQgJiYgIXBhcmFsbGVsX2F3YXJlKQogCXsKQEAgLTg0OCwxMyArODYyLDE4IEBA IEV4ZWNJbmRleE9ubHlTY2FuSW5pdGlhbGl6ZVdvcmtlcihJbmRleE9ubHlTY2FuU3RhdGUgKm5v ZGUsCiAJCXJldHVybjsKIAl9CiAKKwlpZiAoIWJtc19pc19tZW1iZXIoKChTY2FuICopIG5vZGUt PnNzLnBzLnBsYW4pLT5zY2FucmVsaWQsCisJCQkJCSAgIG5vZGUtPnNzLnBzLnN0YXRlLT5lc19t b2RpZmllZF9yZWxpZHMpKQorCQlmbGFncyB8PSBTT19ISU5UX1JFTF9SRUFEX09OTFk7CisKIAlu b2RlLT5pb3NzX1NjYW5EZXNjID0KIAkJaW5kZXhfYmVnaW5zY2FuX3BhcmFsbGVsKG5vZGUtPnNz LnNzX2N1cnJlbnRSZWxhdGlvbiwKIAkJCQkJCQkJIG5vZGUtPmlvc3NfUmVsYXRpb25EZXNjLAog CQkJCQkJCQkgJm5vZGUtPmlvc3NfSW5zdHJ1bWVudCwKIAkJCQkJCQkJIG5vZGUtPmlvc3NfTnVt U2NhbktleXMsCiAJCQkJCQkJCSBub2RlLT5pb3NzX051bU9yZGVyQnlLZXlzLAotCQkJCQkJCQkg cGlzY2FuLCAwKTsKKwkJCQkJCQkJIHBpc2NhbiwgZmxhZ3MpOworCiAJbm9kZS0+aW9zc19TY2Fu RGVzYy0+eHNfd2FudF9pdHVwID0gdHJ1ZTsKIAogCS8qCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlSW5k ZXhzY2FuLmMKaW5kZXggNDc3Y2Q0ZmNmOTkuLjUyYjdmYzQ2NTkzIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9leGVjdXRvci9ub2RlSW5kZXhzY2FuLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0 b3Ivbm9kZUluZGV4c2Nhbi5jCkBAIC0xMDIsNiArMTAyLDEyIEBAIEluZGV4TmV4dChJbmRleFNj YW5TdGF0ZSAqbm9kZSkKIAogCWlmIChzY2FuZGVzYyA9PSBOVUxMKQogCXsKKwkJdWludDMyCQlm bGFncyA9IDA7CisKKwkJaWYgKCFibXNfaXNfbWVtYmVyKCgoU2NhbiAqKSBub2RlLT5zcy5wcy5w bGFuKS0+c2NhbnJlbGlkLAorCQkJCQkJICAgZXN0YXRlLT5lc19tb2RpZmllZF9yZWxpZHMpKQor CQkJZmxhZ3MgfD0gU09fSElOVF9SRUxfUkVBRF9PTkxZOworCiAJCS8qCiAJCSAqIFdlIHJlYWNo IGhlcmUgaWYgdGhlIGluZGV4IHNjYW4gaXMgbm90IHBhcmFsbGVsLCBvciBpZiB3ZSdyZQogCQkg KiBzZXJpYWxseSBleGVjdXRpbmcgYW4gaW5kZXggc2NhbiB0aGF0IHdhcyBwbGFubmVkIHRvIGJl IHBhcmFsbGVsLgpAQCAtMTExLDcgKzExNyw4IEBAIEluZGV4TmV4dChJbmRleFNjYW5TdGF0ZSAq bm9kZSkKIAkJCQkJCQkJICAgZXN0YXRlLT5lc19zbmFwc2hvdCwKIAkJCQkJCQkJICAgJm5vZGUt Pmlzc19JbnN0cnVtZW50LAogCQkJCQkJCQkgICBub2RlLT5pc3NfTnVtU2NhbktleXMsCi0JCQkJ CQkJCSAgIG5vZGUtPmlzc19OdW1PcmRlckJ5S2V5cywgMCk7CisJCQkJCQkJCSAgIG5vZGUtPmlz c19OdW1PcmRlckJ5S2V5cywKKwkJCQkJCQkJICAgZmxhZ3MpOwogCiAJCW5vZGUtPmlzc19TY2Fu RGVzYyA9IHNjYW5kZXNjOwogCkBAIC0xOTgsNiArMjA1LDEyIEBAIEluZGV4TmV4dFdpdGhSZW9y ZGVyKEluZGV4U2NhblN0YXRlICpub2RlKQogCiAJaWYgKHNjYW5kZXNjID09IE5VTEwpCiAJewor CQl1aW50MzIJCWZsYWdzID0gMDsKKworCQlpZiAoIWJtc19pc19tZW1iZXIoKChTY2FuICopIG5v ZGUtPnNzLnBzLnBsYW4pLT5zY2FucmVsaWQsCisJCQkJCQkgICBlc3RhdGUtPmVzX21vZGlmaWVk X3JlbGlkcykpCisJCQlmbGFncyB8PSBTT19ISU5UX1JFTF9SRUFEX09OTFk7CisKIAkJLyoKIAkJ ICogV2UgcmVhY2ggaGVyZSBpZiB0aGUgaW5kZXggc2NhbiBpcyBub3QgcGFyYWxsZWwsIG9yIGlm IHdlJ3JlCiAJCSAqIHNlcmlhbGx5IGV4ZWN1dGluZyBhbiBpbmRleCBzY2FuIHRoYXQgd2FzIHBs YW5uZWQgdG8gYmUgcGFyYWxsZWwuCkBAIC0yMDcsNyArMjIwLDggQEAgSW5kZXhOZXh0V2l0aFJl b3JkZXIoSW5kZXhTY2FuU3RhdGUgKm5vZGUpCiAJCQkJCQkJCSAgIGVzdGF0ZS0+ZXNfc25hcHNo b3QsCiAJCQkJCQkJCSAgICZub2RlLT5pc3NfSW5zdHJ1bWVudCwKIAkJCQkJCQkJICAgbm9kZS0+ aXNzX051bVNjYW5LZXlzLAotCQkJCQkJCQkgICBub2RlLT5pc3NfTnVtT3JkZXJCeUtleXMsIDAp OworCQkJCQkJCQkgICBub2RlLT5pc3NfTnVtT3JkZXJCeUtleXMsCisJCQkJCQkJCSAgIGZsYWdz KTsKIAogCQlub2RlLT5pc3NfU2NhbkRlc2MgPSBzY2FuZGVzYzsKIApAQCAtMTY5Niw2ICsxNzEw LDcgQEAgRXhlY0luZGV4U2NhbkluaXRpYWxpemVEU00oSW5kZXhTY2FuU3RhdGUgKm5vZGUsCiAJ UGFyYWxsZWxJbmRleFNjYW5EZXNjIHBpc2NhbjsKIAlib29sCQlpbnN0cnVtZW50ID0gbm9kZS0+ c3MucHMuaW5zdHJ1bWVudCAhPSBOVUxMOwogCWJvb2wJCXBhcmFsbGVsX2F3YXJlID0gbm9kZS0+ c3MucHMucGxhbi0+cGFyYWxsZWxfYXdhcmU7CisJdWludDMyCQlmbGFncyA9IDA7CiAKIAlpZiAo IWluc3RydW1lbnQgJiYgIXBhcmFsbGVsX2F3YXJlKQogCXsKQEAgLTE3MTcsMTMgKzE3MzIsMTcg QEAgRXhlY0luZGV4U2NhbkluaXRpYWxpemVEU00oSW5kZXhTY2FuU3RhdGUgKm5vZGUsCiAJCXJl dHVybjsKIAl9CiAKKwlpZiAoIWJtc19pc19tZW1iZXIoKChTY2FuICopIG5vZGUtPnNzLnBzLnBs YW4pLT5zY2FucmVsaWQsCisJCQkJCSAgIGVzdGF0ZS0+ZXNfbW9kaWZpZWRfcmVsaWRzKSkKKwkJ ZmxhZ3MgfD0gU09fSElOVF9SRUxfUkVBRF9PTkxZOworCiAJbm9kZS0+aXNzX1NjYW5EZXNjID0K IAkJaW5kZXhfYmVnaW5zY2FuX3BhcmFsbGVsKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwK IAkJCQkJCQkJIG5vZGUtPmlzc19SZWxhdGlvbkRlc2MsCiAJCQkJCQkJCSAmbm9kZS0+aXNzX0lu c3RydW1lbnQsCiAJCQkJCQkJCSBub2RlLT5pc3NfTnVtU2NhbktleXMsCiAJCQkJCQkJCSBub2Rl LT5pc3NfTnVtT3JkZXJCeUtleXMsCi0JCQkJCQkJCSBwaXNjYW4sIDApOworCQkJCQkJCQkgcGlz Y2FuLCBmbGFncyk7CiAKIAkvKgogCSAqIElmIG5vIHJ1bi10aW1lIGtleXMgdG8gY2FsY3VsYXRl IG9yIHRoZXkgYXJlIHJlYWR5LCBnbyBhaGVhZCBhbmQgcGFzcwpAQCAtMTc2Miw2ICsxNzgxLDcg QEAgRXhlY0luZGV4U2NhbkluaXRpYWxpemVXb3JrZXIoSW5kZXhTY2FuU3RhdGUgKm5vZGUsCiAJ UGFyYWxsZWxJbmRleFNjYW5EZXNjIHBpc2NhbjsKIAlib29sCQlpbnN0cnVtZW50ID0gbm9kZS0+ c3MucHMuaW5zdHJ1bWVudCAhPSBOVUxMOwogCWJvb2wJCXBhcmFsbGVsX2F3YXJlID0gbm9kZS0+ c3MucHMucGxhbi0+cGFyYWxsZWxfYXdhcmU7CisJdWludDMyCQlmbGFncyA9IDA7CiAKIAlpZiAo IWluc3RydW1lbnQgJiYgIXBhcmFsbGVsX2F3YXJlKQogCXsKQEAgLTE3ODEsMTMgKzE4MDEsMTcg QEAgRXhlY0luZGV4U2NhbkluaXRpYWxpemVXb3JrZXIoSW5kZXhTY2FuU3RhdGUgKm5vZGUsCiAJ CXJldHVybjsKIAl9CiAKKwlpZiAoIWJtc19pc19tZW1iZXIoKChTY2FuICopIG5vZGUtPnNzLnBz LnBsYW4pLT5zY2FucmVsaWQsCisJCQkJCSAgIG5vZGUtPnNzLnBzLnN0YXRlLT5lc19tb2RpZmll ZF9yZWxpZHMpKQorCQlmbGFncyB8PSBTT19ISU5UX1JFTF9SRUFEX09OTFk7CisKIAlub2RlLT5p c3NfU2NhbkRlc2MgPQogCQlpbmRleF9iZWdpbnNjYW5fcGFyYWxsZWwobm9kZS0+c3Muc3NfY3Vy cmVudFJlbGF0aW9uLAogCQkJCQkJCQkgbm9kZS0+aXNzX1JlbGF0aW9uRGVzYywKIAkJCQkJCQkJ ICZub2RlLT5pc3NfSW5zdHJ1bWVudCwKIAkJCQkJCQkJIG5vZGUtPmlzc19OdW1TY2FuS2V5cywK IAkJCQkJCQkJIG5vZGUtPmlzc19OdW1PcmRlckJ5S2V5cywKLQkJCQkJCQkJIHBpc2NhbiwgMCk7 CisJCQkJCQkJCSBwaXNjYW4sIGZsYWdzKTsKIAogCS8qCiAJICogSWYgbm8gcnVuLXRpbWUga2V5 cyB0byBjYWxjdWxhdGUgb3IgdGhleSBhcmUgcmVhZHksIGdvIGFoZWFkIGFuZCBwYXNzCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlU2FtcGxlc2Nhbi5jIGIvc3JjL2JhY2tl bmQvZXhlY3V0b3Ivbm9kZVNhbXBsZXNjYW4uYwppbmRleCA0NzY2MGJhZjJmYS4uNjJlZmYxOWJj NGYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL25vZGVTYW1wbGVzY2FuLmMKKysr IGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNhbXBsZXNjYW4uYwpAQCAtMjkxLDEzICsyOTEs MTkgQEAgdGFibGVzYW1wbGVfaW5pdChTYW1wbGVTY2FuU3RhdGUgKnNjYW5zdGF0ZSkKIAkvKiBO b3cgd2UgY2FuIGNyZWF0ZSBvciByZXNldCB0aGUgSGVhcFNjYW5EZXNjICovCiAJaWYgKHNjYW5z dGF0ZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjID09IE5VTEwpCiAJeworCQl1aW50MzIJCWZsYWdz ID0gMDsKKworCQlpZiAoIWJtc19pc19tZW1iZXIoKChTY2FuICopIHNjYW5zdGF0ZS0+c3MucHMu cGxhbiktPnNjYW5yZWxpZCwKKwkJCQkJCSAgIHNjYW5zdGF0ZS0+c3MucHMuc3RhdGUtPmVzX21v ZGlmaWVkX3JlbGlkcykpCisJCQlmbGFncyB8PSBTT19ISU5UX1JFTF9SRUFEX09OTFk7CisKIAkJ c2NhbnN0YXRlLT5zcy5zc19jdXJyZW50U2NhbkRlc2MgPQogCQkJdGFibGVfYmVnaW5zY2FuX3Nh bXBsaW5nKHNjYW5zdGF0ZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAogCQkJCQkJCQkJIHNjYW5z dGF0ZS0+c3MucHMuc3RhdGUtPmVzX3NuYXBzaG90LAogCQkJCQkJCQkJIDAsIE5VTEwsCiAJCQkJ CQkJCQkgc2NhbnN0YXRlLT51c2VfYnVsa3JlYWQsCiAJCQkJCQkJCQkgYWxsb3dfc3luYywKLQkJ CQkJCQkJCSBzY2Fuc3RhdGUtPnVzZV9wYWdlbW9kZSwgMCk7CisJCQkJCQkJCQkgc2NhbnN0YXRl LT51c2VfcGFnZW1vZGUsIGZsYWdzKTsKIAl9CiAJZWxzZQogCXsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2V4ZWN1dG9yL25vZGVTZXFzY2FuLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2Rl U2Vxc2Nhbi5jCmluZGV4IGQ5ZDdlYzA1MTZhLi42NTM0OWVhOWM1NCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvZXhlY3V0b3Ivbm9kZVNlcXNjYW4uYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRv ci9ub2RlU2Vxc2Nhbi5jCkBAIC02NSwxMyArNjUsMjAgQEAgU2VxTmV4dChTZXFTY2FuU3RhdGUg Km5vZGUpCiAKIAlpZiAoc2NhbmRlc2MgPT0gTlVMTCkKIAl7CisJCXVpbnQzMgkJZmxhZ3MgPSAw OworCisJCWlmICghYm1zX2lzX21lbWJlcigoKFNjYW4gKikgbm9kZS0+c3MucHMucGxhbiktPnNj YW5yZWxpZCwKKwkJCQkJCSAgIGVzdGF0ZS0+ZXNfbW9kaWZpZWRfcmVsaWRzKSkKKwkJCWZsYWdz IHw9IFNPX0hJTlRfUkVMX1JFQURfT05MWTsKKwogCQkvKgogCQkgKiBXZSByZWFjaCBoZXJlIGlm IHRoZSBzY2FuIGlzIG5vdCBwYXJhbGxlbCwgb3IgaWYgd2UncmUgc2VyaWFsbHkKIAkJICogZXhl Y3V0aW5nIGEgc2NhbiB0aGF0IHdhcyBwbGFubmVkIHRvIGJlIHBhcmFsbGVsLgogCQkgKi8KIAkJ c2NhbmRlc2MgPSB0YWJsZV9iZWdpbnNjYW4obm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAog CQkJCQkJCQkgICBlc3RhdGUtPmVzX3NuYXBzaG90LAotCQkJCQkJCQkgICAwLCBOVUxMLCAwKTsK KwkJCQkJCQkJICAgMCwgTlVMTCwgZmxhZ3MpOworCiAJCW5vZGUtPnNzLnNzX2N1cnJlbnRTY2Fu RGVzYyA9IHNjYW5kZXNjOwogCX0KIApAQCAtMzY3LDE0ICszNzQsMjAgQEAgRXhlY1NlcVNjYW5J bml0aWFsaXplRFNNKFNlcVNjYW5TdGF0ZSAqbm9kZSwKIHsKIAlFU3RhdGUJICAgKmVzdGF0ZSA9 IG5vZGUtPnNzLnBzLnN0YXRlOwogCVBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbjsKKwl1aW50 MzIJCWZsYWdzID0gMDsKIAogCXBzY2FuID0gc2htX3RvY19hbGxvY2F0ZShwY3h0LT50b2MsIG5v ZGUtPnBzY2FuX2xlbik7CiAJdGFibGVfcGFyYWxsZWxzY2FuX2luaXRpYWxpemUobm9kZS0+c3Mu c3NfY3VycmVudFJlbGF0aW9uLAogCQkJCQkJCQkgIHBzY2FuLAogCQkJCQkJCQkgIGVzdGF0ZS0+ ZXNfc25hcHNob3QpOwogCXNobV90b2NfaW5zZXJ0KHBjeHQtPnRvYywgbm9kZS0+c3MucHMucGxh bi0+cGxhbl9ub2RlX2lkLCBwc2Nhbik7CisJaWYgKCFibXNfaXNfbWVtYmVyKCgoU2NhbiAqKSBu b2RlLT5zcy5wcy5wbGFuKS0+c2NhbnJlbGlkLAorCQkJCQkgICBlc3RhdGUtPmVzX21vZGlmaWVk X3JlbGlkcykpCisJCWZsYWdzIHw9IFNPX0hJTlRfUkVMX1JFQURfT05MWTsKKwogCW5vZGUtPnNz LnNzX2N1cnJlbnRTY2FuRGVzYyA9Ci0JCXRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbChub2RlLT5z cy5zc19jdXJyZW50UmVsYXRpb24sIHBzY2FuLCAwKTsKKwkJdGFibGVfYmVnaW5zY2FuX3BhcmFs bGVsKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwgcHNjYW4sCisJCQkJCQkJCSBmbGFncyk7 CiB9CiAKIC8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KQEAgLTQwNCw4ICs0MTcsMTUgQEAgRXhlY1NlcVNjYW5Jbml0aWFs aXplV29ya2VyKFNlcVNjYW5TdGF0ZSAqbm9kZSwKIAkJCQkJCQlQYXJhbGxlbFdvcmtlckNvbnRl eHQgKnB3Y3h0KQogewogCVBhcmFsbGVsVGFibGVTY2FuRGVzYyBwc2NhbjsKKwl1aW50MzIJCWZs YWdzID0gMDsKKworCWlmICghYm1zX2lzX21lbWJlcigoKFNjYW4gKikgbm9kZS0+c3MucHMucGxh biktPnNjYW5yZWxpZCwKKwkJCQkJICAgbm9kZS0+c3MucHMuc3RhdGUtPmVzX21vZGlmaWVkX3Jl bGlkcykpCisJCWZsYWdzIHw9IFNPX0hJTlRfUkVMX1JFQURfT05MWTsKIAogCXBzY2FuID0gc2ht X3RvY19sb29rdXAocHdjeHQtPnRvYywgbm9kZS0+c3MucHMucGxhbi0+cGxhbl9ub2RlX2lkLCBm YWxzZSk7CiAJbm9kZS0+c3Muc3NfY3VycmVudFNjYW5EZXNjID0KLQkJdGFibGVfYmVnaW5zY2Fu X3BhcmFsbGVsKG5vZGUtPnNzLnNzX2N1cnJlbnRSZWxhdGlvbiwgcHNjYW4sIDApOworCQl0YWJs ZV9iZWdpbnNjYW5fcGFyYWxsZWwobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAorCQkJCQkJ CQkgcHNjYW4sCisJCQkJCQkJCSBmbGFncyk7CiB9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9l eGVjdXRvci9ub2RlVGlkcmFuZ2VzY2FuLmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9ub2RlVGlk cmFuZ2VzY2FuLmMKaW5kZXggNDYxZWRiODg5M2IuLjdmYmRmNDAxNzM0IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9leGVjdXRvci9ub2RlVGlkcmFuZ2VzY2FuLmMKKysrIGIvc3JjL2JhY2tlbmQv ZXhlY3V0b3Ivbm9kZVRpZHJhbmdlc2Nhbi5jCkBAIC0yNDIsMTAgKzI0MiwxNiBAQCBUaWRSYW5n ZU5leHQoVGlkUmFuZ2VTY2FuU3RhdGUgKm5vZGUpCiAKIAkJaWYgKHNjYW5kZXNjID09IE5VTEwp CiAJCXsKKwkJCXVpbnQzMgkJZmxhZ3MgPSAwOworCisJCQlpZiAoIWJtc19pc19tZW1iZXIoKChT Y2FuICopIG5vZGUtPnNzLnBzLnBsYW4pLT5zY2FucmVsaWQsCisJCQkJCQkJICAgZXN0YXRlLT5l c19tb2RpZmllZF9yZWxpZHMpKQorCQkJCWZsYWdzIHw9IFNPX0hJTlRfUkVMX1JFQURfT05MWTsK KwogCQkJc2NhbmRlc2MgPSB0YWJsZV9iZWdpbnNjYW5fdGlkcmFuZ2Uobm9kZS0+c3Muc3NfY3Vy cmVudFJlbGF0aW9uLAogCQkJCQkJCQkJCQkJZXN0YXRlLT5lc19zbmFwc2hvdCwKIAkJCQkJCQkJ CQkJCSZub2RlLT50cnNzX21pbnRpZCwKLQkJCQkJCQkJCQkJCSZub2RlLT50cnNzX21heHRpZCwg MCk7CisJCQkJCQkJCQkJCQkmbm9kZS0+dHJzc19tYXh0aWQsIGZsYWdzKTsKIAkJCW5vZGUtPnNz LnNzX2N1cnJlbnRTY2FuRGVzYyA9IHNjYW5kZXNjOwogCQl9CiAJCWVsc2UKQEAgLTQ1MSwxNSAr NDU3LDIxIEBAIEV4ZWNUaWRSYW5nZVNjYW5Jbml0aWFsaXplRFNNKFRpZFJhbmdlU2NhblN0YXRl ICpub2RlLCBQYXJhbGxlbENvbnRleHQgKnBjeHQpCiB7CiAJRVN0YXRlCSAgICplc3RhdGUgPSBu b2RlLT5zcy5wcy5zdGF0ZTsKIAlQYXJhbGxlbFRhYmxlU2NhbkRlc2MgcHNjYW47CisJdWludDMy CQlmbGFncyA9IDA7CiAKIAlwc2NhbiA9IHNobV90b2NfYWxsb2NhdGUocGN4dC0+dG9jLCBub2Rl LT50cnNzX3BzY2FubGVuKTsKIAl0YWJsZV9wYXJhbGxlbHNjYW5faW5pdGlhbGl6ZShub2RlLT5z cy5zc19jdXJyZW50UmVsYXRpb24sCiAJCQkJCQkJCSAgcHNjYW4sCiAJCQkJCQkJCSAgZXN0YXRl LT5lc19zbmFwc2hvdCk7CiAJc2htX3RvY19pbnNlcnQocGN4dC0+dG9jLCBub2RlLT5zcy5wcy5w bGFuLT5wbGFuX25vZGVfaWQsIHBzY2FuKTsKKworCWlmICghYm1zX2lzX21lbWJlcigoKFNjYW4g Kikgbm9kZS0+c3MucHMucGxhbiktPnNjYW5yZWxpZCwKKwkJCQkJICAgZXN0YXRlLT5lc19tb2Rp ZmllZF9yZWxpZHMpKQorCQlmbGFncyB8PSBTT19ISU5UX1JFTF9SRUFEX09OTFk7CisKIAlub2Rl LT5zcy5zc19jdXJyZW50U2NhbkRlc2MgPQogCQl0YWJsZV9iZWdpbnNjYW5fcGFyYWxsZWxfdGlk cmFuZ2Uobm9kZS0+c3Muc3NfY3VycmVudFJlbGF0aW9uLAotCQkJCQkJCQkJCSAgcHNjYW4sIDAp OworCQkJCQkJCQkJCSAgcHNjYW4sIGZsYWdzKTsKIH0KIAogLyogLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpAQCAtNDg5LDkg KzUwMSwxNSBAQCBFeGVjVGlkUmFuZ2VTY2FuSW5pdGlhbGl6ZVdvcmtlcihUaWRSYW5nZVNjYW5T dGF0ZSAqbm9kZSwKIAkJCQkJCQkJIFBhcmFsbGVsV29ya2VyQ29udGV4dCAqcHdjeHQpCiB7CiAJ UGFyYWxsZWxUYWJsZVNjYW5EZXNjIHBzY2FuOworCXVpbnQzMgkJZmxhZ3MgPSAwOwogCiAJcHNj YW4gPSBzaG1fdG9jX2xvb2t1cChwd2N4dC0+dG9jLCBub2RlLT5zcy5wcy5wbGFuLT5wbGFuX25v ZGVfaWQsIGZhbHNlKTsKKworCWlmICghYm1zX2lzX21lbWJlcigoKFNjYW4gKikgbm9kZS0+c3Mu cHMucGxhbiktPnNjYW5yZWxpZCwKKwkJCQkJICAgbm9kZS0+c3MucHMuc3RhdGUtPmVzX21vZGlm aWVkX3JlbGlkcykpCisJCWZsYWdzIHw9IFNPX0hJTlRfUkVMX1JFQURfT05MWTsKKwogCW5vZGUt PnNzLnNzX2N1cnJlbnRTY2FuRGVzYyA9CiAJCXRhYmxlX2JlZ2luc2Nhbl9wYXJhbGxlbF90aWRy YW5nZShub2RlLT5zcy5zc19jdXJyZW50UmVsYXRpb24sCi0JCQkJCQkJCQkJICBwc2NhbiwgMCk7 CisJCQkJCQkJCQkJICBwc2NhbiwgZmxhZ3MpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUv YWNjZXNzL2hlYXBhbS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbS5oCmluZGV4IGMyNjIx ZGMyZmFjLi45NzhlYTkwZmZhMiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBh bS5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaApAQCAtMTMxLDYgKzEzMSwxMiBA QCB0eXBlZGVmIHN0cnVjdCBJbmRleEZldGNoSGVhcERhdGEKIAogCS8qIEN1cnJlbnQgaGVhcCBi bG9jaydzIGNvcnJlc3BvbmRpbmcgcGFnZSBpbiB0aGUgdmlzaWJpbGl0eSBtYXAgKi8KIAlCdWZm ZXIJCXhzX3ZtYnVmZmVyOworCisJLyoKKwkgKiBTb21lIG9wdGltaXphdGlvbnMgY2FuIG9ubHkg YmUgcGVyZm9ybWVkIGlmIHRoZSBxdWVyeSBkb2VzIG5vdCBtb2RpZnkKKwkgKiB0aGUgdW5kZXJs eWluZyByZWxhdGlvbi4gVHJhY2sgdGhhdCBoZXJlLgorCSAqLworCWJvb2wJCW1vZGlmaWVzX2Jh c2VfcmVsOwogfSBJbmRleEZldGNoSGVhcERhdGE7CiAKIC8qIFJlc3VsdCBjb2RlcyBmb3IgSGVh cFR1cGxlU2F0aXNmaWVzVmFjdXVtICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3Mv dGFibGVhbS5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3RhYmxlYW0uaAppbmRleCBmMTA2NWUzMDYz OC4uNTdjZTk0YTM4NmYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy90YWJsZWFtLmgK KysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3RhYmxlYW0uaApAQCAtNjMsNiArNjMsOSBAQCB0eXBl ZGVmIGVudW0gU2Nhbk9wdGlvbnMKIAogCS8qIHVucmVnaXN0ZXIgc25hcHNob3QgYXQgc2NhbiBl bmQ/ICovCiAJU09fVEVNUF9TTkFQU0hPVCA9IDEgPDwgOSwKKworCS8qIHNldCBpZiB0aGUgcXVl cnkgZG9lc24ndCBtb2RpZnkgdGhlIHJlbGF0aW9uICovCisJU09fSElOVF9SRUxfUkVBRF9PTkxZ ID0gMSA8PCAxMCwKIH0JCQlTY2FuT3B0aW9uczsKIAogLyoKLS0gCjIuNDMuMAoK --00000000000044ac80064d14dd96 Content-Type: text/x-patch; charset="US-ASCII"; name="v38-0011-Allow-on-access-pruning-to-set-pages-all-visible.patch" Content-Disposition: attachment; filename="v38-0011-Allow-on-access-pruning-to-set-pages-all-visible.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mms4qjik10 RnJvbSBhYTA1ZTY4MzM2MjA3ZGJiNjRjMDQ2OGFiM2YwMTdmOGY2NmY5ZTA1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBGcmksIDI3IEZlYiAyMDI2IDE2OjMzOjQwIC0wNTAwClN1YmplY3Q6IFtQ QVRDSCB2MzggMTEvMTJdIEFsbG93IG9uLWFjY2VzcyBwcnVuaW5nIHRvIHNldCBwYWdlcyBhbGwt 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 ZXggZDM1YjY4OGQ3NTEuLmEwODNiNjlmZmNkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC9oZWFwYW1faGFuZGxlci5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hl YXBhbV9oYW5kbGVyLmMKQEAgLTE0Nyw3ICsxNDcsOCBAQCBoZWFwYW1faW5kZXhfZmV0Y2hfdHVw bGUoc3RydWN0IEluZGV4RmV0Y2hUYWJsZURhdGEgKnNjYW4sCiAJCSAqLwogCQlpZiAocHJldl9i dWYgIT0gaHNjYW4tPnhzX2NidWYpCiAJCQloZWFwX3BhZ2VfcHJ1bmVfb3B0KGhzY2FuLT54c19i YXNlLnJlbCwgaHNjYW4tPnhzX2NidWYsCi0JCQkJCQkJCSZoc2Nhbi0+eHNfdm1idWZmZXIpOwor CQkJCQkJCQkmaHNjYW4tPnhzX3ZtYnVmZmVyLAorCQkJCQkJCQkhaHNjYW4tPm1vZGlmaWVzX2Jh c2VfcmVsKTsKIAl9CiAKIAkvKiBPYnRhaW4gc2hhcmUtbG9jayBvbiB0aGUgYnVmZmVyIHNvIHdl IGNhbiBleGFtaW5lIHZpc2liaWxpdHkgKi8KQEAgLTI1NDIsNyArMjU0Myw4IEBAIEJpdG1hcEhl YXBTY2FuTmV4dEJsb2NrKFRhYmxlU2NhbkRlc2Mgc2NhbiwKIAkvKgogCSAqIFBydW5lIGFuZCBy ZXBhaXIgZnJhZ21lbnRhdGlvbiBmb3IgdGhlIHdob2xlIHBhZ2UsIGlmIHBvc3NpYmxlLgogCSAq LwotCWhlYXBfcGFnZV9wcnVuZV9vcHQoc2Nhbi0+cnNfcmQsIGJ1ZmZlciwgJmhzY2FuLT5yc192 bWJ1ZmZlcik7CisJaGVhcF9wYWdlX3BydW5lX29wdChzY2FuLT5yc19yZCwgYnVmZmVyLCAmaHNj YW4tPnJzX3ZtYnVmZmVyLAorCQkJCQkJc2Nhbi0+cnNfZmxhZ3MgJiBTT19ISU5UX1JFTF9SRUFE X09OTFkpOwogCiAJLyoKIAkgKiBXZSBtdXN0IGhvbGQgc2hhcmUgbG9jayBvbiB0aGUgYnVmZmVy IGNvbnRlbnQgd2hpbGUgZXhhbWluaW5nIHR1cGxlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC9wcnVuZWhlYXAuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVh cC5jCmluZGV4IDliNWEwNzI2ZjJiLi4zY2RjMWEzNjQ0MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFwLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAv cHJ1bmVoZWFwLmMKQEAgLTQ0LDYgKzQ0LDggQEAgdHlwZWRlZiBzdHJ1Y3QKIAlib29sCQltYXJr X3VudXNlZF9ub3c7CiAJLyogd2hldGhlciB0byBhdHRlbXB0IGZyZWV6aW5nIHR1cGxlcyAqLwog CWJvb2wJCWF0dGVtcHRfZnJlZXplOworCS8qIHdoZXRoZXIgdG8gYXR0ZW1wdCBzZXR0aW5nIHRo ZSBWTSAqLworCWJvb2wJCWF0dGVtcHRfc2V0X3ZtOwogCXN0cnVjdCBWYWN1dW1DdXRvZmZzICpj dXRvZmZzOwogCVJlbGF0aW9uCXJlbGF0aW9uOwogCkBAIC0yMTMsNyArMjE1LDggQEAgc3RhdGlj IHZvaWQgcGFnZV92ZXJpZnlfcmVkaXJlY3RzKFBhZ2UgcGFnZSk7CiAKIHN0YXRpYyBib29sIGhl YXBfcGFnZV93aWxsX2ZyZWV6ZShib29sIGRpZF90dXBsZV9oaW50X2ZwaSwgYm9vbCBkb19wcnVu ZSwgYm9vbCBkb19oaW50X3BydW5lLAogCQkJCQkJCQkgIFBydW5lU3RhdGUgKnByc3RhdGUpOwot c3RhdGljIGJvb2wgaGVhcF9wYWdlX3dpbGxfc2V0X3ZtKFBydW5lU3RhdGUgKnByc3RhdGUsIFBy dW5lUmVhc29uIHJlYXNvbik7CitzdGF0aWMgYm9vbCBoZWFwX3BhZ2Vfd2lsbF9zZXRfdm0oUHJ1 bmVTdGF0ZSAqcHJzdGF0ZSwgUHJ1bmVSZWFzb24gcmVhc29uLAorCQkJCQkJCQkgIGJvb2wgZG9f cHJ1bmUsIGJvb2wgZG9fZnJlZXplKTsKIAogLyoKICAqIE9wdGlvbmFsbHkgcHJ1bmUgYW5kIHJl cGFpciBmcmFnbWVudGF0aW9uIGluIHRoZSBzcGVjaWZpZWQgcGFnZS4KQEAgLTIzMyw3ICsyMzYs OCBAQCBzdGF0aWMgYm9vbCBoZWFwX3BhZ2Vfd2lsbF9zZXRfdm0oUHJ1bmVTdGF0ZSAqcHJzdGF0 ZSwgUHJ1bmVSZWFzb24gcmVhc29uKTsKICAqIHVucGlubmluZyAqdm1idWZmZXIuCiAgKi8KIHZv aWQKLWhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIs IEJ1ZmZlciAqdm1idWZmZXIpCitoZWFwX3BhZ2VfcHJ1bmVfb3B0KFJlbGF0aW9uIHJlbGF0aW9u LCBCdWZmZXIgYnVmZmVyLCBCdWZmZXIgKnZtYnVmZmVyLAorCQkJCQlib29sIHJlbF9yZWFkX29u bHkpCiB7CiAJUGFnZQkJcGFnZSA9IEJ1ZmZlckdldFBhZ2UoYnVmZmVyKTsKIAlUcmFuc2FjdGlv bklkIHBydW5lX3hpZDsKQEAgLTMxNSw2ICszMTksOCBAQCBoZWFwX3BhZ2VfcHJ1bmVfb3B0KFJl bGF0aW9uIHJlbGF0aW9uLCBCdWZmZXIgYnVmZmVyLCBCdWZmZXIgKnZtYnVmZmVyKQogCQkJICog Y3VycmVudCBpbXBsZW1lbnRhdGlvbi4KIAkJCSAqLwogCQkJcGFyYW1zLm9wdGlvbnMgPSAwOwor CQkJaWYgKHJlbF9yZWFkX29ubHkpCisJCQkJcGFyYW1zLm9wdGlvbnMgPSBIRUFQX1BBR0VfUFJV TkVfU0VUX1ZNOwogCiAJCQloZWFwX3BhZ2VfcHJ1bmVfYW5kX2ZyZWV6ZSgmcGFyYW1zLCAmcHJl c3VsdCwgJmR1bW15X29mZl9sb2MsCiAJCQkJCQkJCQkgICBOVUxMLCBOVUxMKTsKQEAgLTM3MSw2 ICszNzcsNyBAQCBwcnVuZV9mcmVlemVfc2V0dXAoUHJ1bmVGcmVlemVQYXJhbXMgKnBhcmFtcywK IAkvKiBjdXRvZmZzIG11c3QgYmUgcHJvdmlkZWQgaWYgd2Ugd2lsbCBhdHRlbXB0IGZyZWV6aW5n ICovCiAJQXNzZXJ0KCEocGFyYW1zLT5vcHRpb25zICYgSEVBUF9QQUdFX1BSVU5FX0ZSRUVaRSkg fHwgcGFyYW1zLT5jdXRvZmZzKTsKIAlwcnN0YXRlLT5hdHRlbXB0X2ZyZWV6ZSA9IChwYXJhbXMt Pm9wdGlvbnMgJiBIRUFQX1BBR0VfUFJVTkVfRlJFRVpFKSAhPSAwOworCXByc3RhdGUtPmF0dGVt cHRfc2V0X3ZtID0gKHBhcmFtcy0+b3B0aW9ucyAmIEhFQVBfUEFHRV9QUlVORV9TRVRfVk0pICE9 IDA7CiAJcHJzdGF0ZS0+Y3V0b2ZmcyA9IHBhcmFtcy0+Y3V0b2ZmczsKIAlwcnN0YXRlLT5yZWxh dGlvbiA9IHBhcmFtcy0+cmVsYXRpb247CiAJcHJzdGF0ZS0+YmxvY2sgPSBCdWZmZXJHZXRCbG9j a051bWJlcihwYXJhbXMtPmJ1ZmZlcik7CkBAIC00NDAsOSArNDQ3LDggQEAgcHJ1bmVfZnJlZXpl X3NldHVwKFBydW5lRnJlZXplUGFyYW1zICpwYXJhbXMsCiAJICogV2UgdHJhY2sgd2hldGhlciB0 aGUgcGFnZSB3aWxsIGJlIGFsbC12aXNpYmxlL2FsbC1mcm96ZW4gYXQgdGhlIGVuZCBvZgogCSAq IHBydW5pbmcgYW5kIGZyZWV6aW5nLiBXaGlsZSBleGFtaW5pbmcgdHVwbGUgdmlzaWJpbGl0eSwg d2UnbGwgc2V0CiAJICogc2V0X2FsbF92aXNpYmxlIHRvIGZhbHNlIGlmIHRoZXJlIGFyZSB0dXBs ZXMgb24gdGhlIHBhZ2Ugbm90IHZpc2libGUgdG8KLQkgKiBhbGwgcnVubmluZyBhbmQgZnV0dXJl IHRyYW5zYWN0aW9ucy4gc2V0X2FsbF92aXNpYmxlIGlzIGFsd2F5cwotCSAqIG1haW50YWluZWQg YnV0IG9ubHkgVkFDVVVNIHdpbGwgc2V0IHRoZSBWTSBpZiB0aGUgcGFnZSBlbmRzIHVwIGJlaW5n Ci0JICogYWxsLXZpc2libGUuCisJICogYWxsIHJ1bm5pbmcgYW5kIGZ1dHVyZSB0cmFuc2FjdGlv bnMuIElmIGVuYWJsZWQgZm9yIHRoaXMgc2Nhbiwgd2Ugd2lsbAorCSAqIHNldCB0aGUgVk0gaWYg dGhlIHBhZ2UgZW5kcyB1cCBiZWluZyBhbGwtdmlzaWJsZS4KIAkgKgogCSAqIFdlIGFsc28ga2Vl cCB0cmFjayBvZiB0aGUgbmV3ZXN0IGxpdmUgWElELCB3aGljaCBpcyB1c2VkIHRvIGNhbGN1bGF0 ZQogCSAqIHRoZSBzbmFwc2hvdCBjb25mbGljdCBob3Jpem9uIGZvciBhIFdBTCByZWNvcmQgc2V0 dGluZyB0aGUgVk0uCkBAIC04NzMsMjEgKzg3OSwzNyBAQCBoZWFwX2ZpeF92bV9jb3JydXB0aW9u KFBydW5lU3RhdGUgKnByc3RhdGUsIE9mZnNldE51bWJlciBvZmZudW0pCiAgKiBUaGlzIGZ1bmN0 aW9uIGRvZXMgbm90IGFjdHVhbGx5IHNldCB0aGUgVk0gYml0cyBvciBwYWdlLWxldmVsIHZpc2li aWxpdHkKICAqIGhpbnQsIFBEX0FMTF9WSVNJQkxFLgogICoKKyAqIFRoaXMgc2hvdWxkIGJlIGNh bGxlZCBvbmx5IGFmdGVyIGRvX2ZyZWV6ZSBoYXMgYmVlbiBkZWNpZGVkIChhbmQgZG9fcHJ1bmUK KyAqIGhhcyBiZWVuIHNldCksIGFzIHRoZXNlIGZhY3RvciBpbnRvIG91ciBoZXVyaXN0aWMtYmFz ZWQgZGVjaXNpb24uCisgKgogICogUmV0dXJucyB0cnVlIGlmIG9uZSBvciBib3RoIFZNIGJpdHMg c2hvdWxkIGJlIHNldCBhbmQgZmFsc2Ugb3RoZXJ3aXNlLgogICovCiBzdGF0aWMgYm9vbAotaGVh cF9wYWdlX3dpbGxfc2V0X3ZtKFBydW5lU3RhdGUgKnByc3RhdGUsIFBydW5lUmVhc29uIHJlYXNv bikKK2hlYXBfcGFnZV93aWxsX3NldF92bShQcnVuZVN0YXRlICpwcnN0YXRlLCBQcnVuZVJlYXNv biByZWFzb24sCisJCQkJCSAgYm9vbCBkb19wcnVuZSwgYm9vbCBkb19mcmVlemUpCiB7Ci0JLyoK LQkgKiBUaG91Z2ggb24tYWNjZXNzIHBydW5pbmcgbWFpbnRhaW5zIHByc3RhdGUtPnNldF9hbGxf dmlzaWJsZSwgd2UgZG9uJ3QKLQkgKiBjb25zaWRlciBzZXR0aW5nIHRoZSBWTS4KLQkgKi8KLQlp ZiAocmVhc29uID09IFBSVU5FX09OX0FDQ0VTUykKKwlpZiAoIXByc3RhdGUtPmF0dGVtcHRfc2V0 X3ZtKQogCQlyZXR1cm4gZmFsc2U7CiAKIAlpZiAoIXByc3RhdGUtPnNldF9hbGxfdmlzaWJsZSkK IAkJcmV0dXJuIGZhbHNlOwogCisJLyoKKwkgKiBJZiB0aGlzIGlzIGFuIG9uLWFjY2VzcyBjYWxs IGFuZCB3ZSdyZSBub3QgYWN0dWFsbHkgcHJ1bmluZywgYXZvaWQKKwkgKiBzZXR0aW5nIHRoZSB2 aXNpYmlsaXR5IG1hcCBpZiBpdCB3b3VsZCBuZXdseSBkaXJ0eSB0aGUgaGVhcCBwYWdlIG9yLCBp ZgorCSAqIHRoZSBwYWdlIGlzIGFscmVhZHkgZGlydHksIGlmIGRvaW5nIHNvIHdvdWxkIHJlcXVp cmUgaW5jbHVkaW5nIGEKKwkgKiBmdWxsLXBhZ2UgaW1hZ2UgKEZQSSkgb2YgdGhlIGhlYXAgcGFn ZSBpbiB0aGUgV0FMLiBUaGlzIHNpdHVhdGlvbgorCSAqIHNob3VsZCBiZSByYXJlLCBhcyBvbi1h Y2Nlc3MgcHJ1bmluZyBpcyBvbmx5IGF0dGVtcHRlZCB3aGVuCisJICogcGRfcHJ1bmVfeGlkIGlz IHZhbGlkLgorCSAqLworCWlmIChyZWFzb24gPT0gUFJVTkVfT05fQUNDRVNTICYmICFkb19wcnVu ZSAmJiAhZG9fZnJlZXplICYmCisJCSghQnVmZmVySXNEaXJ0eShwcnN0YXRlLT5idWZmZXIpIHx8 IFhMb2dDaGVja0J1ZmZlck5lZWRzQmFja3VwKHByc3RhdGUtPmJ1ZmZlcikpKQorCXsKKwkJcHJz dGF0ZS0+c2V0X2FsbF92aXNpYmxlID0gZmFsc2U7CisJCXByc3RhdGUtPnNldF9hbGxfZnJvemVu ID0gZmFsc2U7CisJCXJldHVybiBmYWxzZTsKKwl9CisKIAlwcnN0YXRlLT5uZXdfdm1iaXRzID0g VklTSUJJTElUWU1BUF9BTExfVklTSUJMRTsKIAogCWlmIChwcnN0YXRlLT5zZXRfYWxsX2Zyb3pl bikKQEAgLTExMDMsNyArMTEyNSw3IEBAIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXplKFBydW5l RnJlZXplUGFyYW1zICpwYXJhbXMsCiAJQXNzZXJ0KCFwcnN0YXRlLnNldF9hbGxfZnJvemVuIHx8 IHByc3RhdGUuc2V0X2FsbF92aXNpYmxlKTsKIAlBc3NlcnQoIXByc3RhdGUuc2V0X2FsbF92aXNp YmxlIHx8IChwcnN0YXRlLmxwZGVhZF9pdGVtcyA9PSAwKSk7CiAKLQlkb19zZXRfdm0gPSBoZWFw X3BhZ2Vfd2lsbF9zZXRfdm0oJnByc3RhdGUsIHBhcmFtcy0+cmVhc29uKTsKKwlkb19zZXRfdm0g PSBoZWFwX3BhZ2Vfd2lsbF9zZXRfdm0oJnByc3RhdGUsIHBhcmFtcy0+cmVhc29uLCBkb19wcnVu ZSwgZG9fZnJlZXplKTsKIAogCS8qCiAJICogbmV3X3ZtYml0cyBzaG91bGQgYmUgMCByZWdhcmRs ZXNzIG9mIHdoZXRoZXIgb3Igbm90IHRoZSBwYWdlIGlzCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1 dW1sYXp5LmMKaW5kZXggOGJkMTc4YWU3ZTYuLmQyY2FlNzdiNTJhIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9hY2Nlc3MvaGVhcC92YWN1dW1sYXp5LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNz L2hlYXAvdmFjdXVtbGF6eS5jCkBAIC0yMDA4LDcgKzIwMDgsNyBAQCBsYXp5X3NjYW5fcHJ1bmUo TFZSZWxTdGF0ZSAqdmFjcmVsLAogCQkuYnVmZmVyID0gYnVmLAogCQkudm1idWZmZXIgPSB2bWJ1 ZmZlciwKIAkJLnJlYXNvbiA9IFBSVU5FX1ZBQ1VVTV9TQ0FOLAotCQkub3B0aW9ucyA9IEhFQVBf UEFHRV9QUlVORV9GUkVFWkUsCisJCS5vcHRpb25zID0gSEVBUF9QQUdFX1BSVU5FX0ZSRUVaRSB8 IEhFQVBfUEFHRV9QUlVORV9TRVRfVk0sCiAJCS52aXN0ZXN0ID0gdmFjcmVsLT52aXN0ZXN0LAog CQkuY3V0b2ZmcyA9ICZ2YWNyZWwtPmN1dG9mZnMsCiAJfTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL2FjY2Vzcy9oZWFwYW0uaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW0uaAppbmRleCA5 NzhlYTkwZmZhMi4uNzY4ZDQ0MmMzOWMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9o ZWFwYW0uaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtLmgKQEAgLTQyLDYgKzQyLDcg QEAKIC8qICJvcHRpb25zIiBmbGFnIGJpdHMgZm9yIGhlYXBfcGFnZV9wcnVuZV9hbmRfZnJlZXpl ICovCiAjZGVmaW5lIEhFQVBfUEFHRV9QUlVORV9NQVJLX1VOVVNFRF9OT1cJCSgxIDw8IDApCiAj ZGVmaW5lIEhFQVBfUEFHRV9QUlVORV9GUkVFWkUJCQkJKDEgPDwgMSkKKyNkZWZpbmUgSEVBUF9Q QUdFX1BSVU5FX1NFVF9WTQkJCQkoMSA8PCAyKQogCiB0eXBlZGVmIHN0cnVjdCBCdWxrSW5zZXJ0 U3RhdGVEYXRhICpCdWxrSW5zZXJ0U3RhdGU7CiB0eXBlZGVmIHN0cnVjdCBHbG9iYWxWaXNTdGF0 ZSBHbG9iYWxWaXNTdGF0ZTsKQEAgLTk3LDcgKzk4LDggQEAgdHlwZWRlZiBzdHJ1Y3QgSGVhcFNj YW5EZXNjRGF0YQogCS8qCiAJICogRm9yIHNlcXVlbnRpYWwgc2NhbnMsIGJpdG1hcCBoZWFwIHNj YW5zLCBUSUQgcmFuZ2Ugc2NhbnMsIGFuZCBzYW1wbGUKIAkgKiBzY2Fucy4gVGhlIGN1cnJlbnQg aGVhcCBibG9jaydzIGNvcnJlc3BvbmRpbmcgcGFnZSBpbiB0aGUgdmlzaWJpbGl0eQotCSAqIG1h cC4KKwkgKiBtYXAuIElmIHRoZSByZWxhdGlvbiBpcyBub3QgbW9kaWZpZWQgYnkgdGhlIHF1ZXJ5 LCBvbi1hY2Nlc3MgcHJ1bmluZworCSAqIG1heSBzZXQgdGhlIFZNLgogCSAqLwogCUJ1ZmZlcgkJ cnNfdm1idWZmZXI7CiAKQEAgLTEyOSw3ICsxMzEsMTEgQEAgdHlwZWRlZiBzdHJ1Y3QgSW5kZXhG ZXRjaEhlYXBEYXRhCiAJICovCiAJQnVmZmVyCQl4c19jYnVmOwogCi0JLyogQ3VycmVudCBoZWFw IGJsb2NrJ3MgY29ycmVzcG9uZGluZyBwYWdlIGluIHRoZSB2aXNpYmlsaXR5IG1hcCAqLworCS8q CisJICogQ3VycmVudCBoZWFwIGJsb2NrJ3MgY29ycmVzcG9uZGluZyBwYWdlIGluIHRoZSB2aXNp YmlsaXR5IG1hcC4gRm9yCisJICogaW5kZXggc2NhbnMgdGhhdCBkbyBub3QgbW9kaWZ5IHRoZSB1 bmRlcmx5aW5nIGhlYXAgdGFibGUsIG9uLWFjY2VzcworCSAqIHBydW5pbmcgbWF5IHNldCB0aGUg Vk0gb24tYWNjZXNzLgorCSAqLwogCUJ1ZmZlcgkJeHNfdm1idWZmZXI7CiAKIAkvKgpAQCAtNDQw LDcgKzQ0Niw3IEBAIGV4dGVybiBUcmFuc2FjdGlvbklkIGhlYXBfaW5kZXhfZGVsZXRlX3R1cGxl cyhSZWxhdGlvbiByZWwsCiAKIC8qIGluIGhlYXAvcHJ1bmVoZWFwLmMgKi8KIGV4dGVybiB2b2lk IGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRpb24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsCi0J CQkJCQkJCUJ1ZmZlciAqdm1idWZmZXIpOworCQkJCQkJCQlCdWZmZXIgKnZtYnVmZmVyLCBib29s IHJlbF9yZWFkX29ubHkpOwogZXh0ZXJuIHZvaWQgaGVhcF9wYWdlX3BydW5lX2FuZF9mcmVlemUo UHJ1bmVGcmVlemVQYXJhbXMgKnBhcmFtcywKIAkJCQkJCQkJCSAgIFBydW5lRnJlZXplUmVzdWx0 ICpwcmVzdWx0LAogCQkJCQkJCQkJICAgT2Zmc2V0TnVtYmVyICpvZmZfbG9jLApkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMzVfc3RhbmRieV9sb2dpY2FsX2RlY29kaW5nLnBsIGIv c3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMzVfc3RhbmRieV9sb2dpY2FsX2RlY29kaW5nLnBsCmluZGV4 IGQyNjRhNjk4ZmY2Li5hNTUzNmJhNGZmNiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVjb3Zlcnkv dC8wMzVfc3RhbmRieV9sb2dpY2FsX2RlY29kaW5nLnBsCisrKyBiL3NyYy90ZXN0L3JlY292ZXJ5 L3QvMDM1X3N0YW5kYnlfbG9naWNhbF9kZWNvZGluZy5wbApAQCAtMjk2LDYgKzI5Niw3IEBAIHdh bF9sZXZlbCA9ICdsb2dpY2FsJwogbWF4X3JlcGxpY2F0aW9uX3Nsb3RzID0gNAogbWF4X3dhbF9z ZW5kZXJzID0gNAogYXV0b3ZhY3V1bSA9IG9mZgoraG90X3N0YW5kYnlfZmVlZGJhY2sgPSBvbgog fSk7CiAkbm9kZV9wcmltYXJ5LT5kdW1wX2luZm87CiAkbm9kZV9wcmltYXJ5LT5zdGFydDsKQEAg LTc0OCw3ICs3NDksNyBAQCBjaGVja19wZ19yZWN2bG9naWNhbF9zdGRlcnIoJGhhbmRsZSwKICRs b2dzdGFydCA9IC1zICRub2RlX3N0YW5kYnktPmxvZ2ZpbGU7CiAKIHJlYWN0aXZlX3Nsb3RzX2No YW5nZV9oZnNfYW5kX3dhaXRfZm9yX3htaW5zKCdzaGFyZWRfcm93X3JlbW92YWxfJywKLQknbm9f Y29uZmxpY3RfJywgMCwgMSk7CisJJ25vX2NvbmZsaWN0XycsIDEsIDApOwogCiAjIFRoaXMgc2hv dWxkIG5vdCB0cmlnZ2VyIGEgY29uZmxpY3QKIHdhaXRfdW50aWxfdmFjdXVtX2Nhbl9yZW1vdmUo Ci0tIAoyLjQzLjAKCg== --00000000000044ac80064d14dd96 Content-Type: text/x-patch; charset="UTF-8"; name="v38-0012-Set-pd_prune_xid-on-insert.patch" Content-Disposition: attachment; filename="v38-0012-Set-pd_prune_xid-on-insert.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mms4qm2t11 RnJvbSBmYzU5Nzk1MDY4NGRhZDYzMjgxMTRhYzBkMTBmNzkxYmM1MmI1M2M0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNZWxhbmllIFBsYWdlbWFuIDxtZWxhbmllcGxhZ2VtYW5AZ21h aWwuY29tPgpEYXRlOiBUdWUsIDI5IEp1bCAyMDI1IDE2OjEyOjU2IC0wNDAwClN1YmplY3Q6IFtQ QVRDSCB2MzggMTIvMTJdIFNldCBwZF9wcnVuZV94aWQgb24gaW5zZXJ0Ck1JTUUtVmVyc2lvbjog 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 LmMKaW5kZXggM2NkYzFhMzY0NDEuLjdjYjllMWUyYWFjIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9w cnVuZWhlYXAuYwpAQCAtMjU1LDcgKzI1NSw4IEBAIGhlYXBfcGFnZV9wcnVuZV9vcHQoUmVsYXRp b24gcmVsYXRpb24sIEJ1ZmZlciBidWZmZXIsIEJ1ZmZlciAqdm1idWZmZXIsCiAJLyoKIAkgKiBG aXJzdCBjaGVjayB3aGV0aGVyIHRoZXJlJ3MgYW55IGNoYW5jZSB0aGVyZSdzIHNvbWV0aGluZyB0 byBwcnVuZSwKIAkgKiBkZXRlcm1pbmluZyB0aGUgYXBwcm9wcmlhdGUgaG9yaXpvbiBpcyBhIHdh c3RlIGlmIHRoZXJlJ3Mgbm8gcHJ1bmVfeGlkCi0JICogKGkuZS4gbm8gdXBkYXRlcy9kZWxldGVz IGxlZnQgcG90ZW50aWFsbHkgZGVhZCB0dXBsZXMgYXJvdW5kKS4KKwkgKiAoaS5lLiBubyB1cGRh dGVzL2RlbGV0ZXMgbGVmdCBwb3RlbnRpYWxseSBkZWFkIHR1cGxlcyBhcm91bmQgYW5kIG5vCisJ ICogaW5zZXJ0cyBpbnNlcnRlZCBuZXcgdHVwbGVzIHRoYXQgbWF5IGJlIHZpc2libGUgdG8gYWxs KS4KIAkgKi8KIAlwcnVuZV94aWQgPSBQYWdlR2V0UHJ1bmVYaWQocGFnZSk7CiAJaWYgKCFUcmFu c2FjdGlvbklkSXNWYWxpZChwcnVuZV94aWQpKQpAQCAtMTg0OCwxNiArMTg0OSwxNCBAQCBoZWFw 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== --00000000000044ac80064d14dd96--