Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1p3Elk-000500-Rw for pgsql-hackers@arkaria.postgresql.org; Thu, 08 Dec 2022 11:08:49 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1p3Elj-0005F5-PW for pgsql-hackers@arkaria.postgresql.org; Thu, 08 Dec 2022 11:08:47 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1p3Elj-0005Ev-76 for pgsql-hackers@lists.postgresql.org; Thu, 08 Dec 2022 11:08:47 +0000 Received: from mail-wm1-x32f.google.com ([2a00:1450:4864:20::32f]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1p3Ele-0000AI-5H for pgsql-hackers@postgresql.org; Thu, 08 Dec 2022 11:08:46 +0000 Received: by mail-wm1-x32f.google.com with SMTP id h8-20020a1c2108000000b003d1efd60b65so3118491wmh.0 for ; Thu, 08 Dec 2022 03:08:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=2rx1868N2VL1u8Uju8PcEgUbW3UzLWbwHP+xeCk1+gA=; b=iDVn2FD/Z2EvPNTEBB354/FGLySVxLW72wZHHFyUEim6FGcoVK5uVREQB3EgwTRW+Q gdGrDZJlKhTLN+cD4lrhm3GqshOgAUZeMZ7jamRCxLxuW8T1/R0QpFGbTpB2mZPtOcyP FzWxr8k3T6kDrCuRp+gHXE4BzyaZB2ul8t04VM0T6AM2pl9WEKPR+bT5ULmiUsr0RASz paYv6RSWQUhUobqyhpt6FrLVboQRwQjVd6QNjjbfzBw6Soq9gyemjQUPM2xlh/8WRbhW yKdFja1gt4Ae/Zz1JXpj9eh0wwxf62AdhUpA7WF7u/sS4xpIA3lqtJTGs+NMPTbn7wLR mNFQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:from:content-language:references:cc:to:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=2rx1868N2VL1u8Uju8PcEgUbW3UzLWbwHP+xeCk1+gA=; b=kGDn1wBFYsfJoC7tVKK1U2ODVFkUgBsa29zQS52n7+ZNIiFjPnA4B6ycXWPLkjognl y6+vou7TkXXAwrmnwFg3Kaic4K9TbQFpiGTc65sJq+X7M9XE3HyQrBHW/Hdf757Oj8Bu svBc61GltSdybQtD/d2CnLF8SprY34aqXyfDdkbHdKxImq/Jf7tzF7nxNNHEwtfpAiiO lqbUHBhvKISuaVxJvYJFDhilqiWvpn/p7pJbQXiv1OwzJ+WXebnpbyWZhACoAn3tBRIX +co4FppflUFtrIEsnaMdRoMOsfH45zohyp3wq40zGUsdv4reQsDJlvdm/v+NfnxcJ1MU Yw/A== X-Gm-Message-State: ANoB5plJ9iBekCSC1nUlCLpjaHj1NBmckGQ0XoAF9spPqtNKKJyqp4gU XUuYPAgrzCT/dwf5JbelKHo= X-Google-Smtp-Source: AA0mqf6hGLjapZWiwmSQIcRlcMFSr6gKx57okV3FBD/gOeRPA4xiFjVH2fftGio6vB0gdaL4g+30lg== X-Received: by 2002:a05:600c:3ba3:b0:3d0:a089:4d8b with SMTP id n35-20020a05600c3ba300b003d0a0894d8bmr1669854wms.35.1670497720532; Thu, 08 Dec 2022 03:08:40 -0800 (PST) Received: from [10.95.94.86] ([54.239.6.188]) by smtp.gmail.com with ESMTPSA id t15-20020a7bc3cf000000b003a3170a7af9sm4597303wmj.4.2022.12.08.03.08.39 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 08 Dec 2022 03:08:39 -0800 (PST) Content-Type: multipart/mixed; boundary="------------CJJNZUFIbsklop00k5Z4QnhV" Message-ID: Date: Thu, 8 Dec 2022 12:07:22 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.5.1 Subject: Re: Minimal logical decoding on standbys To: Andres Freund Cc: Robert Haas , Alvaro Herrera , Ibrar Ahmed , Amit Khandekar , fabriziomello@gmail.com, tushar , Rahila Syed , pgsql-hackers References: <2b14d595-1e8b-e5b6-6098-6a11d19fa1c7@amazon.com> <688cbedf-a172-f0d8-8352-d4ea223bceeb@amazon.com> <20211028210755.afmwcvpo6ajwdx6n@alap3.anarazel.de> <6711d09f-eaa9-264b-ec7f-88004218b075@amazon.com> <178cf7da-9bd7-e328-9c49-e28ac4701352@gmail.com> <4b19419f-2e7c-a76b-c948-26d10af6693d@gmail.com> <20221207175824.apmc5clnj2fdjkaq@awork3.anarazel.de> Content-Language: en-US From: "Drouvot, Bertrand" In-Reply-To: <20221207175824.apmc5clnj2fdjkaq@awork3.anarazel.de> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------CJJNZUFIbsklop00k5Z4QnhV Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi, On 12/7/22 6:58 PM, Andres Freund wrote: > Hi, > > On 2022-12-07 10:00:25 +0100, Drouvot, Bertrand wrote: >>> Please find attached a new patch series: >>> >>> v27-0001-Add-info-in-WAL-records-in-preparation-for-logic.patch >>> v27-0002-Handle-logical-slot-conflicts-on-standby.patch >>> v27-0003-Allow-logical-decoding-on-standby.patch >>> v27-0004-New-TAP-test-for-logical-decoding-on-standby.patch >>> v27-0005-Doc-changes-describing-details-about-logical-dec.patch >>> v27-0006-Fixing-Walsender-corner-case-with-logical-decodi.patch > > This failed on cfbot [1]. The tap output [2] has the following bit: > > [09:48:56.216](5.979s) not ok 26 - cannot read from logical replication slot > [09:48:56.223](0.007s) # Failed test 'cannot read from logical replication slot' > # at C:/cirrus/src/test/recovery/t/034_standby_logical_decoding.pl line 422. > ... > Warning: unable to close filehandle GEN150 properly: Bad file descriptor during global destruction. > Warning: unable to close filehandle GEN155 properly: Bad file descriptor during global destruction. > > The "unable to close filehandle" stuff in my experience indicates an IPC::Run > process that wasn't ended before the tap test ended. > > Greetings, > > Andres Freund > > [1] https://cirrus-ci.com/task/5092676671373312 > [2] https://api.cirrus-ci.com/v1/artifact/task/5092676671373312/testrun/build/testrun/recovery/034_standby_logical_decoding/log/regress_log_034_standby_logical_decoding Thanks for pointing out! Please find attached V29 addressing this "Windows perl" issue: V29 changes the way the slot invalidation is tested and adds a "handle->finish". That looks ok now (I launched several successful consecutive tests on my enabled cirrus-ci repository). V29 differs from V28 only in 0004 to workaround the above "Windows perl" issue. Regards, -- Bertrand Drouvot PostgreSQL Contributors Team RDS Open Source Databases Amazon Web Services: https://aws.amazon.com --------------CJJNZUFIbsklop00k5Z4QnhV Content-Type: text/plain; charset=UTF-8; name="v29-0006-Fixing-Walsender-corner-case-with-logical-decodi.patch" Content-Disposition: attachment; filename*0="v29-0006-Fixing-Walsender-corner-case-with-logical-decodi.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBlZjQ3M2YyNTJjNmUwMzQ3MGM5NzVjM2NjMmY5MzQ4MmUzZDk4NDczIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVGh1LCA4IERlYyAyMDIyIDEwOjI0OjE4ICswMDAwClN1YmplY3Q6IFtQQVRD SCB2MjkgNi82XSBGaXhpbmcgV2Fsc2VuZGVyIGNvcm5lciBjYXNlIHdpdGggbG9naWNhbCBk ZWNvZGluZyBvbgogc3RhbmRieS4KClRoZSBwcm9ibGVtIGlzIHRoYXQgV2FsU25kV2FpdEZv cldhbCgpIHdhaXRzIGZvciB0aGUgKnJlcGxheSogTFNOIHRvCmluY3JlYXNlLCBidXQgZ2V0 cyB3b2tlbiB1cCBieSB3YWxyZWNlaXZlciB3aGVuIG5ldyBXQUwgaGFzIGJlZW4KZmx1c2hl ZC4gV2hpY2ggbWVhbnMgdGhhdCB0eXBpY2FsbHkgd2Fsc2VuZGVycyB3aWxsIGdldCB3b2tl biB1cCBhdCB0aGUKc2FtZSB0aW1lIHRoYXQgdGhlIHN0YXJ0dXAgcHJvY2VzcyB3aWxsIGJl IC0gd2hpY2ggbWVhbnMgdGhhdCBieSB0aGUKdGltZSB0aGUgbG9naWNhbCB3YWxzZW5kZXIg Y2hlY2tzIEdldFhMb2dSZXBsYXlSZWNQdHIoKSBpdCdzIHVubGlrZWx5CnRoYXQgdGhlIHN0 YXJ0dXAgcHJvY2VzcyBhbHJlYWR5IHJlcGxheWVkIHRoZSByZWNvcmQgYW5kIHVwZGF0ZWQK WExvZ0N0bC0+bGFzdFJlcGxheWVkRW5kUmVjUHRyLgoKSW50cm9kdWNpbmcgYSBuZXcgY29u ZGl0aW9uIHZhcmlhYmxlIHRvIGZpeCB0aGlzIGNvcm5lciBjYXNlLgotLS0KIHNyYy9iYWNr ZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jIHwgMjggKysrKysrKysrKysrKysr KysrKysKIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jICAgICAgIHwgMzEg KysrKysrKysrKysrKysrKystLS0tLS0KIHNyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3dh aXRfZXZlbnQuYyAgIHwgIDMgKysrCiBzcmMvaW5jbHVkZS9hY2Nlc3MveGxvZ3JlY292ZXJ5 LmggICAgICAgICB8ICAzICsrKwogc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2Fsc2VuZGVy LmggICAgICAgfCAgMSArCiBzcmMvaW5jbHVkZS91dGlscy93YWl0X2V2ZW50LmggICAgICAg ICAgICB8ICAxICsKIDYgZmlsZXMgY2hhbmdlZCwgNTkgaW5zZXJ0aW9ucygrKSwgOCBkZWxl dGlvbnMoLSkKICA0MS4yJSBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS8KICA0OC41JSBz cmMvYmFja2VuZC9yZXBsaWNhdGlvbi8KICAgMy42JSBzcmMvYmFja2VuZC91dGlscy9hY3Rp dml0eS8KICAgMy40JSBzcmMvaW5jbHVkZS9hY2Nlc3MvCgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMgYi9zcmMvYmFja2VuZC9hY2Nl c3MvdHJhbnNhbS94bG9ncmVjb3ZlcnkuYwppbmRleCA5N2I4ODI1NjRmLi5lOTU4NTQ1ZTli IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9ncmVjb3Zlcnku YworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9ncmVjb3ZlcnkuYwpAQCAt MzU4LDYgKzM1OCw5IEBAIHR5cGVkZWYgc3RydWN0IFhMb2dSZWNvdmVyeUN0bERhdGEKIAlS ZWNvdmVyeVBhdXNlU3RhdGUgcmVjb3ZlcnlQYXVzZVN0YXRlOwogCUNvbmRpdGlvblZhcmlh YmxlIHJlY292ZXJ5Tm90UGF1c2VkQ1Y7CiAKKwkvKiBSZXBsYXkgc3RhdGUgKHNlZSBnZXRS ZXBsYXllZENWKCkgZm9yIG1vcmUgZXhwbGFuYXRpb24pICovCisJQ29uZGl0aW9uVmFyaWFi bGUgcmVwbGF5ZWRDVjsKKwogCXNsb2NrX3QJCWluZm9fbGNrOwkJLyogbG9ja3Mgc2hhcmVk IHZhcmlhYmxlcyBzaG93biBhYm92ZSAqLwogfSBYTG9nUmVjb3ZlcnlDdGxEYXRhOwogCkBA IC00NjcsNiArNDcwLDcgQEAgWExvZ1JlY292ZXJ5U2htZW1Jbml0KHZvaWQpCiAJU3Bpbkxv Y2tJbml0KCZYTG9nUmVjb3ZlcnlDdGwtPmluZm9fbGNrKTsKIAlJbml0U2hhcmVkTGF0Y2go JlhMb2dSZWNvdmVyeUN0bC0+cmVjb3ZlcnlXYWtldXBMYXRjaCk7CiAJQ29uZGl0aW9uVmFy aWFibGVJbml0KCZYTG9nUmVjb3ZlcnlDdGwtPnJlY292ZXJ5Tm90UGF1c2VkQ1YpOworCUNv bmRpdGlvblZhcmlhYmxlSW5pdCgmWExvZ1JlY292ZXJ5Q3RsLT5yZXBsYXllZENWKTsKIH0K IAogLyoKQEAgLTE5MTYsNiArMTkyMCwxMSBAQCBBcHBseVdhbFJlY29yZChYTG9nUmVhZGVy U3RhdGUgKnhsb2dyZWFkZXIsIFhMb2dSZWNvcmQgKnJlY29yZCwgVGltZUxpbmVJRCAqcmVw bAogCVhMb2dSZWNvdmVyeUN0bC0+bGFzdFJlcGxheWVkVExJID0gKnJlcGxheVRMSTsKIAlT cGluTG9ja1JlbGVhc2UoJlhMb2dSZWNvdmVyeUN0bC0+aW5mb19sY2spOwogCisJLyoKKwkg KiB3YWtlIHVwIHdhbHNlbmRlcihzKSB1c2VkIGJ5IGxvZ2ljYWwgZGVjb2Rpbmcgb24gc3Rh bmRieS4KKwkgKi8KKwlDb25kaXRpb25WYXJpYWJsZUJyb2FkY2FzdCgmWExvZ1JlY292ZXJ5 Q3RsLT5yZXBsYXllZENWKTsKKwogCS8qCiAJICogSWYgcm1fcmVkbyBjYWxsZWQgWExvZ1Jl cXVlc3RXYWxSZWNlaXZlclJlcGx5LCB0aGVuIHdlIHdha2UgdXAgdGhlCiAJICogcmVjZWl2 ZXIgc28gdGhhdCBpdCBub3RpY2VzIHRoZSB1cGRhdGVkIGxhc3RSZXBsYXllZEVuZFJlY1B0 ciBhbmQgc2VuZHMKQEAgLTQ5MTQsMyArNDkyMywyMiBAQCBhc3NpZ25fcmVjb3ZlcnlfdGFy Z2V0X3hpZChjb25zdCBjaGFyICpuZXd2YWwsIHZvaWQgKmV4dHJhKQogCWVsc2UKIAkJcmVj b3ZlcnlUYXJnZXQgPSBSRUNPVkVSWV9UQVJHRVRfVU5TRVQ7CiB9CisKKy8qCisgKiBSZXR1 cm4gdGhlIENvbmRpdGlvblZhcmlhYmxlIGluZGljYXRpbmcgdGhhdCBhIHJlcGxheSBoYXMg YmVlbiBkb25lLgorICoKKyAqIFRoaXMgaXMgbmVlZGVkIGZvciBsb2dpY2FsIGRlY29kaW5n IG9uIHN0YW5kYnkuIEluZGVlZCB0aGUgInByb2JsZW0iIGlzIHRoYXQKKyAqIFdhbFNuZFdh aXRGb3JXYWwoKSB3YWl0cyBmb3IgdGhlICpyZXBsYXkqIExTTiB0byBpbmNyZWFzZSwgYnV0 IGdldHMgd29rZW4gdXAKKyAqIGJ5IHdhbHJlY2VpdmVyIHdoZW4gbmV3IFdBTCBoYXMgYmVl biBmbHVzaGVkLiBXaGljaCBtZWFucyB0aGF0IHR5cGljYWxseQorICogd2Fsc2VuZGVycyB3 aWxsIGdldCB3b2tlbiB1cCBhdCB0aGUgc2FtZSB0aW1lIHRoYXQgdGhlIHN0YXJ0dXAgcHJv Y2VzcworICogd2lsbCBiZSAtIHdoaWNoIG1lYW5zIHRoYXQgYnkgdGhlIHRpbWUgdGhlIGxv Z2ljYWwgd2Fsc2VuZGVyIGNoZWNrcworICogR2V0WExvZ1JlcGxheVJlY1B0cigpIGl0J3Mg dW5saWtlbHkgdGhhdCB0aGUgc3RhcnR1cCBwcm9jZXNzIGFscmVhZHkgcmVwbGF5ZWQKKyAq IHRoZSByZWNvcmQgYW5kIHVwZGF0ZWQgWExvZ0N0bC0+bGFzdFJlcGxheWVkRW5kUmVjUHRy LgorICoKKyAqIFRoZSBDb25kaXRpb25WYXJpYWJsZSBYTG9nUmVjb3ZlcnlDdGwtPnJlcGxh eWVkQ1Ygc29sdmVzIHRoaXMgY29ybmVyIGNhc2UuCisgKi8KK0NvbmRpdGlvblZhcmlhYmxl ICoKK2dldFJlcGxheWVkQ1Yodm9pZCkKK3sKKwlyZXR1cm4gJlhMb2dSZWNvdmVyeUN0bC0+ cmVwbGF5ZWRDVjsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dh bHNlbmRlci5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMKaW5kZXgg OTY2MmUzMTZjOS4uOGM4ZGJlODEyZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vd2Fsc2VuZGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2Vu ZGVyLmMKQEAgLTE1NDgsNiArMTU0OCw3IEBAIFdhbFNuZFdhaXRGb3JXYWwoWExvZ1JlY1B0 ciBsb2MpCiB7CiAJaW50CQkJd2FrZUV2ZW50czsKIAlzdGF0aWMgWExvZ1JlY1B0ciBSZWNl bnRGbHVzaFB0ciA9IEludmFsaWRYTG9nUmVjUHRyOworCUNvbmRpdGlvblZhcmlhYmxlICpy ZXBsYXllZENWID0gZ2V0UmVwbGF5ZWRDVigpOwogCiAJLyoKIAkgKiBGYXN0IHBhdGggdG8g YXZvaWQgYWNxdWlyaW5nIHRoZSBzcGlubG9jayBpbiBjYXNlIHdlIGFscmVhZHkga25vdyB3 ZQpAQCAtMTU2Niw3ICsxNTY3LDYgQEAgV2FsU25kV2FpdEZvcldhbChYTG9nUmVjUHRyIGxv YykKIAogCWZvciAoOzspCiAJewotCQlsb25nCQlzbGVlcHRpbWU7CiAKIAkJLyogQ2xlYXIg YW55IGFscmVhZHktcGVuZGluZyB3YWtldXBzICovCiAJCVJlc2V0TGF0Y2goTXlMYXRjaCk7 CkBAIC0xNjUwLDIwICsxNjUwLDM1IEBAIFdhbFNuZFdhaXRGb3JXYWwoWExvZ1JlY1B0ciBs b2MpCiAJCVdhbFNuZEtlZXBhbGl2ZUlmTmVjZXNzYXJ5KCk7CiAKIAkJLyoKLQkJICogU2xl ZXAgdW50aWwgc29tZXRoaW5nIGhhcHBlbnMgb3Igd2UgdGltZSBvdXQuICBBbHNvIHdhaXQg Zm9yIHRoZQotCQkgKiBzb2NrZXQgYmVjb21pbmcgd3JpdGFibGUsIGlmIHRoZXJlJ3Mgc3Rp bGwgcGVuZGluZyBvdXRwdXQuCisJCSAqIFdoZW4gbm90IGluIHJlY292ZXJ5LCBzbGVlcCB1 bnRpbCBzb21ldGhpbmcgaGFwcGVucyBvciB3ZSB0aW1lIG91dC4KKwkJICogQWxzbyB3YWl0 IGZvciB0aGUgc29ja2V0IGJlY29taW5nIHdyaXRhYmxlLCBpZiB0aGVyZSdzIHN0aWxsIHBl bmRpbmcgb3V0cHV0LgogCQkgKiBPdGhlcndpc2Ugd2UgbWlnaHQgc2l0IG9uIHNlbmRhYmxl IG91dHB1dCBkYXRhIHdoaWxlIHdhaXRpbmcgZm9yCiAJCSAqIG5ldyBXQUwgdG8gYmUgZ2Vu ZXJhdGVkLiAgKEJ1dCBpZiB3ZSBoYXZlIG5vdGhpbmcgdG8gc2VuZCwgd2UgZG9uJ3QKIAkJ ICogd2FudCB0byB3YWtlIG9uIHNvY2tldC13cml0YWJsZS4pCiAJCSAqLwotCQlzbGVlcHRp bWUgPSBXYWxTbmRDb21wdXRlU2xlZXB0aW1lKEdldEN1cnJlbnRUaW1lc3RhbXAoKSk7CisJ CWlmICghUmVjb3ZlcnlJblByb2dyZXNzKCkpCisJCXsKKwkJCWxvbmcJCXNsZWVwdGltZTsK KwkJCXNsZWVwdGltZSA9IFdhbFNuZENvbXB1dGVTbGVlcHRpbWUoR2V0Q3VycmVudFRpbWVz dGFtcCgpKTsKIAotCQl3YWtlRXZlbnRzID0gV0xfU09DS0VUX1JFQURBQkxFOworCQkJd2Fr ZUV2ZW50cyA9IFdMX1NPQ0tFVF9SRUFEQUJMRTsKIAotCQlpZiAocHFfaXNfc2VuZF9wZW5k aW5nKCkpCi0JCQl3YWtlRXZlbnRzIHw9IFdMX1NPQ0tFVF9XUklURUFCTEU7CisJCQlpZiAo cHFfaXNfc2VuZF9wZW5kaW5nKCkpCisJCQkJd2FrZUV2ZW50cyB8PSBXTF9TT0NLRVRfV1JJ VEVBQkxFOwogCi0JCVdhbFNuZFdhaXQod2FrZUV2ZW50cywgc2xlZXB0aW1lLCBXQUlUX0VW RU5UX1dBTF9TRU5ERVJfV0FJVF9XQUwpOworCQkJV2FsU25kV2FpdCh3YWtlRXZlbnRzLCBz bGVlcHRpbWUgKiAxMCwgV0FJVF9FVkVOVF9XQUxfU0VOREVSX1dBSVRfV0FMKTsKKwkJfQor CQllbHNlCisJCS8qCisJCSAqIFdlIGFyZSBpbiB0aGUgbG9naWNhbCBkZWNvZGluZyBvbiBz dGFuZGJ5IGNhc2UuCisJCSAqIFdlIGFyZSB3YWl0aW5nIGZvciB0aGUgc3RhcnR1cCBwcm9j ZXNzIHRvIHJlcGxheSB3YWwgcmVjb3JkKHMpIHVzaW5nCisJCSAqIGEgdGltZW91dCBpbiBj YXNlIHdlIGFyZSByZXF1ZXN0ZWQgdG8gc3RvcC4KKwkJICovCisJCXsKKwkJCUNvbmRpdGlv blZhcmlhYmxlUHJlcGFyZVRvU2xlZXAocmVwbGF5ZWRDVik7CisJCQlDb25kaXRpb25WYXJp YWJsZVRpbWVkU2xlZXAocmVwbGF5ZWRDViwgMTAwMCwKKwkJCQkJCQkJCQlXQUlUX0VWRU5U X1dBTF9TRU5ERVJfV0FJVF9SRVBMQVkpOworCQl9CiAJfQogCiAJLyogcmVhY3RpdmF0ZSBs YXRjaCBzbyBXYWxTbmRMb29wIGtub3dzIHRvIGNvbnRpbnVlICovCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS93YWl0X2V2ZW50LmMgYi9zcmMvYmFja2VuZC91 dGlscy9hY3Rpdml0eS93YWl0X2V2ZW50LmMKaW5kZXggYjJhYmQ3NWRkYi4uM2Y2MDU5ODA1 YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvd2FpdF9ldmVudC5j CisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3dhaXRfZXZlbnQuYwpAQCAtNDU3 LDYgKzQ1Nyw5IEBAIHBnc3RhdF9nZXRfd2FpdF9pcGMoV2FpdEV2ZW50SVBDIHcpCiAJCWNh c2UgV0FJVF9FVkVOVF9XQUxfUkVDRUlWRVJfV0FJVF9TVEFSVDoKIAkJCWV2ZW50X25hbWUg PSAiV2FsUmVjZWl2ZXJXYWl0U3RhcnQiOwogCQkJYnJlYWs7CisJCWNhc2UgV0FJVF9FVkVO VF9XQUxfU0VOREVSX1dBSVRfUkVQTEFZOgorCQkJZXZlbnRfbmFtZSA9ICJXYWxSZWNlaXZl cldhaXRSZXBsYXkiOworCQkJYnJlYWs7CiAJCWNhc2UgV0FJVF9FVkVOVF9YQUNUX0dST1VQ X1VQREFURToKIAkJCWV2ZW50X25hbWUgPSAiWGFjdEdyb3VwVXBkYXRlIjsKIAkJCWJyZWFr OwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2dyZWNvdmVyeS5oIGIvc3Jj L2luY2x1ZGUvYWNjZXNzL3hsb2dyZWNvdmVyeS5oCmluZGV4IGYzMzk4NDI1ZDguLjBhZmQ1 N2VjYWMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9ncmVjb3ZlcnkuaAor KysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MveGxvZ3JlY292ZXJ5LmgKQEAgLTE1LDYgKzE1LDcg QEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX2NvbnRyb2wuaCIKICNpbmNsdWRlICJsaWIvc3Ry aW5naW5mby5oIgogI2luY2x1ZGUgInV0aWxzL3RpbWVzdGFtcC5oIgorI2luY2x1ZGUgInN0 b3JhZ2UvY29uZGl0aW9uX3ZhcmlhYmxlLmgiCiAKIC8qCiAgKiBSZWNvdmVyeSB0YXJnZXQg dHlwZS4KQEAgLTE1NSw0ICsxNTYsNiBAQCBleHRlcm4gdm9pZCBSZWNvdmVyeVJlcXVpcmVz SW50UGFyYW1ldGVyKGNvbnN0IGNoYXIgKnBhcmFtX25hbWUsIGludCBjdXJyVmFsdWUsCiAK IGV4dGVybiB2b2lkIHhsb2dfb3V0ZGVzYyhTdHJpbmdJbmZvIGJ1ZiwgWExvZ1JlYWRlclN0 YXRlICpyZWNvcmQpOwogCitleHRlcm4gQ29uZGl0aW9uVmFyaWFibGUgKmdldFJlcGxheWVk Q1Yodm9pZCk7CisKICNlbmRpZgkJCQkJCQkvKiBYTE9HUkVDT1ZFUllfSCAqLwpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmggYi9zcmMvaW5jbHVk ZS9yZXBsaWNhdGlvbi93YWxzZW5kZXIuaAppbmRleCA4MzM2YTZlNzE5Li41NTBlZjMxMDdm IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxzZW5kZXIuaAorKysg Yi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi93YWxzZW5kZXIuaApAQCAtMTMsNiArMTMsNyBA QAogI2RlZmluZSBfV0FMU0VOREVSX0gKIAogI2luY2x1ZGUgPHNpZ25hbC5oPgorI2luY2x1 ZGUgInN0b3JhZ2UvY29uZGl0aW9uX3ZhcmlhYmxlLmgiCiAKIC8qCiAgKiBXaGF0IHRvIGRv IHdpdGggYSBzbmFwc2hvdCBpbiBjcmVhdGUgcmVwbGljYXRpb24gc2xvdCBjb21tYW5kLgpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvd2FpdF9ldmVudC5oIGIvc3JjL2luY2x1 ZGUvdXRpbHMvd2FpdF9ldmVudC5oCmluZGV4IDBiMjEwMGJlNGEuLjMwYzJjZjM1YWUgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL3dhaXRfZXZlbnQuaAorKysgYi9zcmMvaW5j bHVkZS91dGlscy93YWl0X2V2ZW50LmgKQEAgLTEyOCw2ICsxMjgsNyBAQCB0eXBlZGVmIGVu dW0KIAlXQUlUX0VWRU5UX1NZTkNfUkVQLAogCVdBSVRfRVZFTlRfV0FMX1JFQ0VJVkVSX0VY SVQsCiAJV0FJVF9FVkVOVF9XQUxfUkVDRUlWRVJfV0FJVF9TVEFSVCwKKwlXQUlUX0VWRU5U X1dBTF9TRU5ERVJfV0FJVF9SRVBMQVksCiAJV0FJVF9FVkVOVF9YQUNUX0dST1VQX1VQREFU RQogfSBXYWl0RXZlbnRJUEM7CiAKLS0gCjIuMzQuMQoK --------------CJJNZUFIbsklop00k5Z4QnhV Content-Type: text/plain; charset=UTF-8; name="v29-0005-Doc-changes-describing-details-about-logical-dec.patch" Content-Disposition: attachment; filename*0="v29-0005-Doc-changes-describing-details-about-logical-dec.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA2MjUzZTQ5YTY1YTQzZGIyNDE2MDk0ZGU5ZDgxY2JmYmRlNjBhYWI3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVGh1LCA4IERlYyAyMDIyIDEwOjIzOjI4ICswMDAwClN1YmplY3Q6IFtQQVRD SCB2MjkgNS82XSBEb2MgY2hhbmdlcyBkZXNjcmliaW5nIGRldGFpbHMgYWJvdXQgbG9naWNh bAogZGVjb2RpbmcuCgpBdXRob3I6IEFuZHJlcyBGcmV1bmQgKGluIGFuIG9sZGVyIHZlcnNp b24pLCBBbWl0IEtoYW5kZWthciwgQmVydHJhbmQgRHJvdXZvdApSZXZpZXdlZC1CeTogQmVy dHJhbmQgRHJvdXZvdCwgQW5kcmVzIEZyZXVuZCwgUm9iZXJ0IEhhYXMsIEZhYnJpemlvIGRl IFJveWVzIE1lbGxvCi0tLQogZG9jL3NyYy9zZ21sL2xvZ2ljYWxkZWNvZGluZy5zZ21sIHwg MjEgKysrKysrKysrKysrKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMjEgaW5zZXJ0aW9u cygrKQogMTAwLjAlIGRvYy9zcmMvc2dtbC8KCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv bG9naWNhbGRlY29kaW5nLnNnbWwgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbGRlY29kaW5nLnNn bWwKaW5kZXggMzhlZTY5ZGNjYy4uOWFjZjE2MDM3YSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL2xvZ2ljYWxkZWNvZGluZy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9sb2dpY2FsZGVj b2Rpbmcuc2dtbApAQCAtMzE2LDYgKzMxNiwyNyBAQCBwb3N0Z3Jlcz0jIHNlbGVjdCAqIGZy b20gcGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzKCdyZWdyZXNzaW9uX3Nsb3QnLCBOVUxM LCBOVQogICAgICBtYXkgY29uc3VtZSBjaGFuZ2VzIGZyb20gYSBzbG90IGF0IGFueSBnaXZl biB0aW1lLgogICAgIDwvcGFyYT4KIAorICAgIDxwYXJhPgorICAgICBBIGxvZ2ljYWwgcmVw bGljYXRpb24gc2xvdCBjYW4gYWxzbyBiZSBjcmVhdGVkIG9uIGEgaG90IHN0YW5kYnkuIFRv IHByZXZlbnQKKyAgICAgPGNvbW1hbmQ+VkFDVVVNPC9jb21tYW5kPiBmcm9tIHJlbW92aW5n IHJlcXVpcmVkIHJvd3MgZnJvbSB0aGUgc3lzdGVtCisgICAgIGNhdGFsb2dzLCA8dmFybmFt ZT5ob3Rfc3RhbmRieV9mZWVkYmFjazwvdmFybmFtZT4gc2hvdWxkIGJlIHNldCBvbiB0aGUK KyAgICAgc3RhbmRieS4gSW4gc3BpdGUgb2YgdGhhdCwgaWYgYW55IHJlcXVpcmVkIHJvd3Mg Z2V0IHJlbW92ZWQsIHRoZSBzbG90IGdldHMKKyAgICAgaW52YWxpZGF0ZWQuIEl0J3MgaGln aGx5IHJlY29tbWVuZGVkIHRvIHVzZSBhIHBoeXNpY2FsIHNsb3QgYmV0d2VlbiB0aGUgcHJp bWFyeQorICAgICBhbmQgdGhlIHN0YW5kYnkuIE90aGVyd2lzZSwgaG90X3N0YW5kYnlfZmVl ZGJhY2sgd2lsbCB3b3JrLCBidXQgb25seSB3aGlsZSB0aGUKKyAgICAgY29ubmVjdGlvbiBp cyBhbGl2ZSAoZm9yIGV4YW1wbGUgYSBub2RlIHJlc3RhcnQgd291bGQgYnJlYWsgaXQpLiBF eGlzdGluZworICAgICBsb2dpY2FsIHNsb3RzIG9uIHN0YW5kYnkgYWxzbyBnZXQgaW52YWxp ZGF0ZWQgaWYgd2FsX2xldmVsIG9uIHByaW1hcnkgaXMgcmVkdWNlZCB0bworICAgICBsZXNz IHRoYW4gJ2xvZ2ljYWwnLgorICAgIDwvcGFyYT4KKworICAgIDxwYXJhPgorICAgICBGb3Ig YSBsb2dpY2FsIHNsb3QgdG8gYmUgY3JlYXRlZCwgaXQgYnVpbGRzIGEgaGlzdG9yaWMgc25h cHNob3QsIGZvciB3aGljaAorICAgICBpbmZvcm1hdGlvbiBvZiBhbGwgdGhlIGN1cnJlbnRs eSBydW5uaW5nIHRyYW5zYWN0aW9ucyBpcyBlc3NlbnRpYWwuIE9uCisgICAgIHByaW1hcnks IHRoaXMgaW5mb3JtYXRpb24gaXMgYXZhaWxhYmxlLCBidXQgb24gc3RhbmRieSwgdGhpcyBp bmZvcm1hdGlvbgorICAgICBoYXMgdG8gYmUgb2J0YWluZWQgZnJvbSBwcmltYXJ5LiBTbywg c2xvdCBjcmVhdGlvbiBtYXkgd2FpdCBmb3Igc29tZQorICAgICBhY3Rpdml0eSB0byBoYXBw ZW4gb24gdGhlIHByaW1hcnkuIElmIHRoZSBwcmltYXJ5IGlzIGlkbGUsIGNyZWF0aW5nIGEK KyAgICAgbG9naWNhbCBzbG90IG9uIHN0YW5kYnkgbWF5IHRha2UgYSBub3RpY2VhYmxlIHRp bWUuCisgICAgPC9wYXJhPgorCiAgICAgPGNhdXRpb24+CiAgICAgIDxwYXJhPgogICAgICAg UmVwbGljYXRpb24gc2xvdHMgcGVyc2lzdCBhY3Jvc3MgY3Jhc2hlcyBhbmQga25vdyBub3Ro aW5nIGFib3V0IHRoZSBzdGF0ZQotLSAKMi4zNC4xCgo= --------------CJJNZUFIbsklop00k5Z4QnhV Content-Type: text/plain; charset=UTF-8; name="v29-0004-New-TAP-test-for-logical-decoding-on-standby.patch" Content-Disposition: attachment; filename*0="v29-0004-New-TAP-test-for-logical-decoding-on-standby.patch" Content-Transfer-Encoding: base64 RnJvbSA3YWQ2NjZhNWNkMTdkMDRiNTNmNDFmNjM5M2RhNDM5MDFkYjcwNGVlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVGh1LCA4IERlYyAyMDIyIDEwOjIyOjI4ICswMDAwClN1YmplY3Q6IFtQQVRD SCB2MjkgNC82XSBOZXcgVEFQIHRlc3QgZm9yIGxvZ2ljYWwgZGVjb2Rpbmcgb24gc3RhbmRi eS4KCkF1dGhvcjogQ3JhaWcgUmluZ2VyIChpbiBhbiBvbGRlciB2ZXJzaW9uKSwgQW1pdCBL aGFuZGVrYXIsIEJlcnRyYW5kIERyb3V2b3QKUmV2aWV3ZWQtQnk6IEJlcnRyYW5kIERyb3V2 b3QsIEFuZHJlcyBGcmV1bmQsIFJvYmVydCBIYWFzLCBGYWJyaXppbyBkZSBSb3llcyBNZWxs bwotLS0KIHNyYy90ZXN0L3BlcmwvUG9zdGdyZVNRTC9UZXN0L0NsdXN0ZXIucG0gICAgICB8 ICAzNyArKwogc3JjL3Rlc3QvcmVjb3ZlcnkvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAg IHwgICAxICsKIC4uLi90LzAzNF9zdGFuZGJ5X2xvZ2ljYWxfZGVjb2RpbmcucGwgICAgICAg ICB8IDQ3OSArKysrKysrKysrKysrKysrKysKIDMgZmlsZXMgY2hhbmdlZCwgNTE3IGluc2Vy dGlvbnMoKykKICAgNi4wJSBzcmMvdGVzdC9wZXJsL1Bvc3RncmVTUUwvVGVzdC8KICA5My43 JSBzcmMvdGVzdC9yZWNvdmVyeS90LwoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3BlcmwvUG9z dGdyZVNRTC9UZXN0L0NsdXN0ZXIucG0gYi9zcmMvdGVzdC9wZXJsL1Bvc3RncmVTUUwvVGVz dC9DbHVzdGVyLnBtCmluZGV4IDc0MTExODhkYzguLjE3MWRjODUzODggMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3BlcmwvUG9zdGdyZVNRTC9UZXN0L0NsdXN0ZXIucG0KKysrIGIvc3JjL3Rl c3QvcGVybC9Qb3N0Z3JlU1FML1Rlc3QvQ2x1c3Rlci5wbQpAQCAtMzAzNyw2ICszMDM3LDQz IEBAICRTSUd7VEVSTX0gPSAkU0lHe0lOVH0gPSBzdWIgewogCiA9cG9kCiAKKz1pdGVtICRu b2RlLT5jcmVhdGVfbG9naWNhbF9zbG90X29uX3N0YW5kYnkoc2VsZiwgbWFzdGVyLCBzbG90 X25hbWUsIGRibmFtZSkKKworQ3JlYXRlIGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdCBvbiBn aXZlbiBzdGFuZGJ5CisKKz1jdXQKKworc3ViIGNyZWF0ZV9sb2dpY2FsX3Nsb3Rfb25fc3Rh bmRieQoreworCW15ICgkc2VsZiwgJG1hc3RlciwgJHNsb3RfbmFtZSwgJGRibmFtZSkgPSBA XzsKKwlteSAoJHN0ZG91dCwgJHN0ZGVycik7CisKKwlteSAkaGFuZGxlOworCisJJGhhbmRs ZSA9IElQQzo6UnVuOjpzdGFydChbJ3BnX3JlY3Zsb2dpY2FsJywgJy1kJywgJHNlbGYtPmNv bm5zdHIoJGRibmFtZSksICctUCcsICd0ZXN0X2RlY29kaW5nJywgJy1TJywgJHNsb3RfbmFt ZSwgJy0tY3JlYXRlLXNsb3QnXSwgJz4nLCBcJHN0ZG91dCwgJzI+JywgXCRzdGRlcnIpOwor CisJIyBPbmNlIHNsb3QgcmVzdGFydF9sc24gaXMgY3JlYXRlZCwgdGhlIHN0YW5kYnkgbG9v a3MgZm9yIHhsX3J1bm5pbmdfeGFjdHMKKwkjIFdBTCByZWNvcmQgZnJvbSB0aGUgcmVzdGFy dF9sc24gb253YXJkcy4gU28gZmlyc3RseSwgd2FpdCB1bnRpbCB0aGUgc2xvdAorCSMgcmVz dGFydF9sc24gaXMgZXZhbHVhdGVkLgorCisJJHNlbGYtPnBvbGxfcXVlcnlfdW50aWwoCisJ CSdwb3N0Z3JlcycsIHFxWworCQlTRUxFQ1QgcmVzdGFydF9sc24gSVMgTk9UIE5VTEwKKwkJ RlJPTSBwZ19jYXRhbG9nLnBnX3JlcGxpY2F0aW9uX3Nsb3RzIFdIRVJFIHNsb3RfbmFtZSA9 ICckc2xvdF9uYW1lJworCV0pIG9yIGRpZSAidGltZWQgb3V0IHdhaXRpbmcgZm9yIGxvZ2lj YWwgc2xvdCB0byBjYWxjdWxhdGUgaXRzIHJlc3RhcnRfbHNuIjsKKworCSMgTm93IGFycmFu Z2UgZm9yIHRoZSB4bF9ydW5uaW5nX3hhY3RzIHJlY29yZCBmb3Igd2hpY2ggcGdfcmVjdmxv Z2ljYWwKKwkjIGlzIHdhaXRpbmcuCisJJG1hc3Rlci0+c2FmZV9wc3FsKCdwb3N0Z3Jlcycs ICdDSEVDS1BPSU5UJyk7CisKKwkkaGFuZGxlLT5maW5pc2goKTsKKworCWlzKCRzZWxmLT5z bG90KCRzbG90X25hbWUpLT57J3Nsb3RfdHlwZSd9LCAnbG9naWNhbCcsICRzbG90X25hbWUg LiAnIG9uIHN0YW5kYnkgY3JlYXRlZCcpCisJCW9yIGRpZSAiY291bGQgbm90IGNyZWF0ZSBz bG90IiAuICRzbG90X25hbWU7Cit9CisKKz1wb2QKKwogPWJhY2sKIAogPWN1dApkaWZmIC0t Z2l0IGEvc3JjL3Rlc3QvcmVjb3ZlcnkvbWVzb24uYnVpbGQgYi9zcmMvdGVzdC9yZWNvdmVy eS9tZXNvbi5idWlsZAppbmRleCBiMGUzOTgzNjNmLi5kNjhlZTliNjYzIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWNvdmVyeS9tZXNvbi5idWlsZAorKysgYi9zcmMvdGVzdC9yZWNvdmVy eS9tZXNvbi5idWlsZApAQCAtMzgsNiArMzgsNyBAQCB0ZXN0cyArPSB7CiAgICAgICAndC8w MzFfcmVjb3ZlcnlfY29uZmxpY3QucGwnLAogICAgICAgJ3QvMDMyX3JlbGZpbGVub2RlX3Jl dXNlLnBsJywKICAgICAgICd0LzAzM19yZXBsYXlfdHNwX2Ryb3BzLnBsJywKKyAgICAgICd0 LzAzNF9zdGFuZGJ5X2xvZ2ljYWxfZGVjb2RpbmcucGwnLAogICAgIF0sCiAgIH0sCiB9CmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWNvdmVyeS90LzAzNF9zdGFuZGJ5X2xvZ2ljYWxfZGVj b2RpbmcucGwgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzAzNF9zdGFuZGJ5X2xvZ2ljYWxfZGVj b2RpbmcucGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uNDI1ODg0 NGM4ZgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L3JlY292ZXJ5L3QvMDM0X3N0YW5k YnlfbG9naWNhbF9kZWNvZGluZy5wbApAQCAtMCwwICsxLDQ3OSBAQAorIyBsb2dpY2FsIGRl Y29kaW5nIG9uIHN0YW5kYnkgOiB0ZXN0IGxvZ2ljYWwgZGVjb2RpbmcsCisjIHJlY292ZXJ5 IGNvbmZsaWN0IGFuZCBzdGFuZGJ5IHByb21vdGlvbi4KKwordXNlIHN0cmljdDsKK3VzZSB3 YXJuaW5nczsKKwordXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7Cit1c2UgVGVzdDo6 TW9yZSB0ZXN0cyA9PiA0MjsKKworbXkgKCRzdGRpbiwgJHN0ZG91dCwgJHN0ZGVyciwgJHJl dCwgJGhhbmRsZSwgJHNsb3QpOworCitteSAkbm9kZV9wcmltYXJ5ID0gUG9zdGdyZVNRTDo6 VGVzdDo6Q2x1c3Rlci0+bmV3KCdwcmltYXJ5Jyk7CitteSAkbm9kZV9zdGFuZGJ5ID0gUG9z dGdyZVNRTDo6VGVzdDo6Q2x1c3Rlci0+bmV3KCdzdGFuZGJ5Jyk7CisKKyMgTmFtZSBmb3Ig dGhlIHBoeXNpY2FsIHNsb3Qgb24gcHJpbWFyeQorbXkgJHByaW1hcnlfc2xvdG5hbWUgPSAn cHJpbWFyeV9waHlzaWNhbCc7CisKKyMgZmluZCAkcGF0IGluIGxvZ2ZpbGUgb2YgJG5vZGUg YWZ0ZXIgJG9mZi10aCBieXRlCitzdWIgZmluZF9pbl9sb2cKK3sKKwlteSAoJG5vZGUsICRw YXQsICRvZmYpID0gQF87CisKKwkkb2ZmID0gMCB1bmxlc3MgZGVmaW5lZCAkb2ZmOworCW15 ICRsb2cgPSBQb3N0Z3JlU1FMOjpUZXN0OjpVdGlsczo6c2x1cnBfZmlsZSgkbm9kZS0+bG9n ZmlsZSk7CisJcmV0dXJuIDAgaWYgKGxlbmd0aCgkbG9nKSA8PSAkb2ZmKTsKKworCSRsb2cg PSBzdWJzdHIoJGxvZywgJG9mZik7CisKKwlyZXR1cm4gJGxvZyA9fiBtLyRwYXQvOworfQor CisjIEZldGNoIHhtaW4gY29sdW1ucyBmcm9tIHNsb3QncyBwZ19yZXBsaWNhdGlvbl9zbG90 cyByb3csIGFmdGVyIHdhaXRpbmcgZm9yCisjIGdpdmVuIGJvb2xlYW4gY29uZGl0aW9uIHRv IGJlIHRydWUgdG8gZW5zdXJlIHdlJ3ZlIHJlYWNoZWQgYSBxdWllc2NlbnQgc3RhdGUuCitz dWIgd2FpdF9mb3JfeG1pbnMKK3sKKwlteSAoJG5vZGUsICRzbG90bmFtZSwgJGNoZWNrX2V4 cHIpID0gQF87CisKKwkkbm9kZS0+cG9sbF9xdWVyeV91bnRpbCgKKwkJJ3Bvc3RncmVzJywg cXFbCisJCVNFTEVDVCAkY2hlY2tfZXhwcgorCQlGUk9NIHBnX2NhdGFsb2cucGdfcmVwbGlj YXRpb25fc2xvdHMKKwkJV0hFUkUgc2xvdF9uYW1lID0gJyRzbG90bmFtZSc7CisJXSkgb3Ig ZGllICJUaW1lZCBvdXQgd2FpdGluZyBmb3Igc2xvdCB4bWlucyB0byBhZHZhbmNlIjsKK30K KworIyBDcmVhdGUgdGhlIHJlcXVpcmVkIGxvZ2ljYWwgc2xvdHMgb24gc3RhbmRieS4KK3N1 YiBjcmVhdGVfbG9naWNhbF9zbG90cworeworCSRub2RlX3N0YW5kYnktPmNyZWF0ZV9sb2dp Y2FsX3Nsb3Rfb25fc3RhbmRieSgkbm9kZV9wcmltYXJ5LCAnaW5hY3RpdmVzbG90JywgJ3Rl c3RkYicpOworCSRub2RlX3N0YW5kYnktPmNyZWF0ZV9sb2dpY2FsX3Nsb3Rfb25fc3RhbmRi eSgkbm9kZV9wcmltYXJ5LCAnYWN0aXZlc2xvdCcsICd0ZXN0ZGInKTsKK30KKworIyBBY3F1 aXJlIG9uZSBvZiB0aGUgc3RhbmRieSBsb2dpY2FsIHNsb3RzIGNyZWF0ZWQgYnkgY3JlYXRl X2xvZ2ljYWxfc2xvdHMoKS4KKyMgSW4gY2FzZSB3YWl0IGlzIHRydWUgd2UgYXJlIHdhaXRp bmcgZm9yIGFuIGFjdGl2ZSBwaWQgb24gdGhlICdhY3RpdmVzbG90JyBzbG90LgorIyBJZiB3 YWl0IGlzIG5vdCB0cnVlIGl0IG1lYW5zIHdlIGFyZSB0ZXN0aW5nIGEga25vd24gZmFpbHVy ZSBzY2VuYXJpby4KK3N1YiBtYWtlX3Nsb3RfYWN0aXZlCit7CisJbXkgJHdhaXQgPSBzaGlm dDsKKwlteSAkc2xvdF91c2VyX2hhbmRsZTsKKworCXByaW50ICJzdGFydGluZyBwZ19yZWN2 bG9naWNhbFxuIjsKKwkkc2xvdF91c2VyX2hhbmRsZSA9IElQQzo6UnVuOjpzdGFydChbJ3Bn X3JlY3Zsb2dpY2FsJywgJy1kJywgJG5vZGVfc3RhbmRieS0+Y29ubnN0cigndGVzdGRiJyks ICctUycsICdhY3RpdmVzbG90JywgJy1mJywgJy0nLCAnLS1uby1sb29wJywgJy0tc3RhcnQn XSwgJz4nLCBcJHN0ZG91dCwgJzI+JywgXCRzdGRlcnIpOworCisJaWYgKCR3YWl0KQorCSMg bWFrZSBzdXJlIGFjdGl2ZXNsb3QgaXMgaW4gdXNlCisJeworCQkkbm9kZV9zdGFuZGJ5LT5w b2xsX3F1ZXJ5X3VudGlsKCd0ZXN0ZGInLAorCQkJIlNFTEVDVCBFWElTVFMgKFNFTEVDVCAx IEZST00gcGdfcmVwbGljYXRpb25fc2xvdHMgV0hFUkUgc2xvdF9uYW1lID0gJ2FjdGl2ZXNs b3QnIEFORCBhY3RpdmVfcGlkIElTIE5PVCBOVUxMKSIKKwkJKSBvciBkaWUgInNsb3QgbmV2 ZXIgYmVjYW1lIGFjdGl2ZSI7CisJfQorCisJcmV0dXJuICRzbG90X3VzZXJfaGFuZGxlOwor fQorCisjIENoZWNrIHBnX3JlY3Zsb2dpY2FsIHN0ZGVycgorc3ViIGNoZWNrX3BnX3JlY3Zs b2dpY2FsX3N0ZGVycgoreworCW15ICgkc2xvdF91c2VyX2hhbmRsZSwgJGNoZWNrX3N0ZGVy cikgPSBAXzsKKwlteSAkcmV0dXJuOworCisJIyBvdXIgY2xpZW50IHNob3VsZCd2ZSB0ZXJt aW5hdGVkIGluIHJlc3BvbnNlIHRvIHRoZSB3YWxzZW5kZXIgZXJyb3IKKwkkc2xvdF91c2Vy X2hhbmRsZS0+ZmluaXNoOworCSRyZXR1cm4gPSAkPzsKKwljbXBfb2soJHJldHVybiwgIiE9 IiwgMCwgInBnX3JlY3Zsb2dpY2FsIGV4aXRlZCBub24temVybyIpOworCWlmICgkcmV0dXJu KSB7CisJCWxpa2UoJHN0ZGVyciwgcXIvJGNoZWNrX3N0ZGVyci8sICdzbG90IGhhcyBiZWVu IGludmFsaWRhdGVkJyk7CisJfQorCisJcmV0dXJuIDA7Cit9CisKKyMgQ2hlY2sgaWYgYWxs IHRoZSBzbG90cyBvbiBzdGFuZGJ5IGFyZSBkcm9wcGVkLiBUaGVzZSBpbmNsdWRlIHRoZSAn YWN0aXZlc2xvdCcKKyMgdGhhdCB3YXMgYWNxdWlyZWQgYnkgbWFrZV9zbG90X2FjdGl2ZSgp LCBhbmQgdGhlIG5vbi1hY3RpdmUgJ2luYWN0aXZlc2xvdCcuCitzdWIgY2hlY2tfc2xvdHNf ZHJvcHBlZAoreworCW15ICgkc2xvdF91c2VyX2hhbmRsZSkgPSBAXzsKKworCWlzKCRub2Rl X3N0YW5kYnktPnNsb3QoJ2luYWN0aXZlc2xvdCcpLT57J3Nsb3RfdHlwZSd9LCAnJywgJ2lu YWN0aXZlc2xvdCBvbiBzdGFuZGJ5IGRyb3BwZWQnKTsKKwlpcygkbm9kZV9zdGFuZGJ5LT5z bG90KCdhY3RpdmVzbG90JyktPnsnc2xvdF90eXBlJ30sICcnLCAnYWN0aXZlc2xvdCBvbiBz dGFuZGJ5IGRyb3BwZWQnKTsKKworCWNoZWNrX3BnX3JlY3Zsb2dpY2FsX3N0ZGVycigkc2xv dF91c2VyX2hhbmRsZSwgImNvbmZsaWN0IHdpdGggcmVjb3ZlcnkiKTsKK30KKworIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCisjIEluaXRpYWxpemUgcHJpbWFyeSBub2RlCisjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMKKworJG5vZGVfcHJpbWFyeS0+aW5pdChhbGxvd3Nfc3RyZWFt aW5nID0+IDEsIGhhc19hcmNoaXZpbmcgPT4gMSk7Ciskbm9kZV9wcmltYXJ5LT5hcHBlbmRf Y29uZigncG9zdGdyZXNxbC5jb25mJywgcXsKK3dhbF9sZXZlbCA9ICdsb2dpY2FsJworbWF4 X3JlcGxpY2F0aW9uX3Nsb3RzID0gNAorbWF4X3dhbF9zZW5kZXJzID0gNAorbG9nX21pbl9t ZXNzYWdlcyA9ICdkZWJ1ZzInCitsb2dfZXJyb3JfdmVyYm9zaXR5ID0gdmVyYm9zZQorfSk7 Ciskbm9kZV9wcmltYXJ5LT5kdW1wX2luZm87Ciskbm9kZV9wcmltYXJ5LT5zdGFydDsKKwor JG5vZGVfcHJpbWFyeS0+cHNxbCgncG9zdGdyZXMnLCBxW0NSRUFURSBEQVRBQkFTRSB0ZXN0 ZGJdKTsKKworJG5vZGVfcHJpbWFyeS0+c2FmZV9wc3FsKCd0ZXN0ZGInLCBxcVtTRUxFQ1Qg KiBGUk9NIHBnX2NyZWF0ZV9waHlzaWNhbF9yZXBsaWNhdGlvbl9zbG90KCckcHJpbWFyeV9z bG90bmFtZScpO10pOworbXkgJGJhY2t1cF9uYW1lID0gJ2IxJzsKKyRub2RlX3ByaW1hcnkt PmJhY2t1cCgkYmFja3VwX25hbWUpOworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBJ bml0aWFsaXplIHN0YW5kYnkgbm9kZQorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworJG5v ZGVfc3RhbmRieS0+aW5pdF9mcm9tX2JhY2t1cCgKKwkkbm9kZV9wcmltYXJ5LCAkYmFja3Vw X25hbWUsCisJaGFzX3N0cmVhbWluZyA9PiAxLAorCWhhc19yZXN0b3JpbmcgPT4gMSk7Cisk bm9kZV9zdGFuZGJ5LT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJywKKwlxcVtwcmlt YXJ5X3Nsb3RfbmFtZSA9ICckcHJpbWFyeV9zbG90bmFtZSddKTsKKyRub2RlX3N0YW5kYnkt PnN0YXJ0OworJG5vZGVfcHJpbWFyeS0+d2FpdF9mb3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5 LCAncmVwbGF5JywgJG5vZGVfcHJpbWFyeS0+bHNuKCdmbHVzaCcpKTsKKworCisjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBUZXN0IHRo YXQgbG9naWNhbCBkZWNvZGluZyBvbiB0aGUgc3RhbmRieQorIyBiZWhhdmVzIGNvcnJlY3Rs eS4KKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj CisKK2NyZWF0ZV9sb2dpY2FsX3Nsb3RzKCk7CisKKyRub2RlX3ByaW1hcnktPnNhZmVfcHNx bCgndGVzdGRiJywgcXFbQ1JFQVRFIFRBQkxFIGRlY29kaW5nX3Rlc3QoeCBpbnRlZ2VyLCB5 IHRleHQpO10pOworJG5vZGVfcHJpbWFyeS0+c2FmZV9wc3FsKCd0ZXN0ZGInLCBxcVtJTlNF UlQgSU5UTyBkZWNvZGluZ190ZXN0KHgseSkgU0VMRUNUIHMsIHM6OnRleHQgRlJPTSBnZW5l cmF0ZV9zZXJpZXMoMSwxMCkgcztdKTsKKworJG5vZGVfcHJpbWFyeS0+d2FpdF9mb3JfY2F0 Y2h1cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJG5vZGVfcHJpbWFyeS0+bHNuKCdmbHVz aCcpKTsKKworbXkgJHJlc3VsdCA9ICRub2RlX3N0YW5kYnktPnNhZmVfcHNxbCgndGVzdGRi JywKKwlxcVtTRUxFQ1QgcGdfbG9naWNhbF9zbG90X2dldF9jaGFuZ2VzKCdhY3RpdmVzbG90 JywgTlVMTCwgTlVMTCk7XSk7CisKKyMgdGVzdCBpZiBiYXNpYyBkZWNvZGluZyB3b3Jrcwor aXMoc2NhbGFyKG15IEBmb29iYXIgPSBzcGxpdCAvXi9tLCAkcmVzdWx0KSwKKwkxNCwgJ0Rl Y29kaW5nIHByb2R1Y2VkIDE0IHJvd3MnKTsKKworIyBJbnNlcnQgc29tZSByb3dzIGFuZCB2 ZXJpZnkgdGhhdCB3ZSBnZXQgdGhlIHNhbWUgcmVzdWx0cyBmcm9tIHBnX3JlY3Zsb2dpY2Fs CisjIGFuZCB0aGUgU1FMIGludGVyZmFjZS4KKyRub2RlX3ByaW1hcnktPnNhZmVfcHNxbCgn dGVzdGRiJywKKwlxcVtJTlNFUlQgSU5UTyBkZWNvZGluZ190ZXN0KHgseSkgU0VMRUNUIHMs IHM6OnRleHQgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSw0KSBzO10KKyk7CisKK215ICRleHBl Y3RlZCA9IHF7QkVHSU4KK3RhYmxlIHB1YmxpYy5kZWNvZGluZ190ZXN0OiBJTlNFUlQ6IHhb aW50ZWdlcl06MSB5W3RleHRdOicxJwordGFibGUgcHVibGljLmRlY29kaW5nX3Rlc3Q6IElO U0VSVDogeFtpbnRlZ2VyXToyIHlbdGV4dF06JzInCit0YWJsZSBwdWJsaWMuZGVjb2Rpbmdf dGVzdDogSU5TRVJUOiB4W2ludGVnZXJdOjMgeVt0ZXh0XTonMycKK3RhYmxlIHB1YmxpYy5k ZWNvZGluZ190ZXN0OiBJTlNFUlQ6IHhbaW50ZWdlcl06NCB5W3RleHRdOic0JworQ09NTUlU fTsKKworJG5vZGVfcHJpbWFyeS0+d2FpdF9mb3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAn cmVwbGF5JywgJG5vZGVfcHJpbWFyeS0+bHNuKCdmbHVzaCcpKTsKKworbXkgJHN0ZG91dF9z cWwgPSAkbm9kZV9zdGFuZGJ5LT5zYWZlX3BzcWwoJ3Rlc3RkYicsCisJcXFbU0VMRUNUIGRh dGEgRlJPTSBwZ19sb2dpY2FsX3Nsb3RfcGVla19jaGFuZ2VzKCdhY3RpdmVzbG90JywgTlVM TCwgTlVMTCwgJ2luY2x1ZGUteGlkcycsICcwJywgJ3NraXAtZW1wdHkteGFjdHMnLCAnMScp O10KKyk7CisKK2lzKCRzdGRvdXRfc3FsLCAkZXhwZWN0ZWQsICdnb3QgZXhwZWN0ZWQgb3V0 cHV0IGZyb20gU1FMIGRlY29kaW5nIHNlc3Npb24nKTsKKworbXkgJGVuZHBvcyA9ICRub2Rl X3N0YW5kYnktPnNhZmVfcHNxbCgndGVzdGRiJywKKwkiU0VMRUNUIGxzbiBGUk9NIHBnX2xv Z2ljYWxfc2xvdF9wZWVrX2NoYW5nZXMoJ2FjdGl2ZXNsb3QnLCBOVUxMLCBOVUxMKSBPUkRF UiBCWSBsc24gREVTQyBMSU1JVCAxOyIKKyk7CitwcmludCAid2FpdGluZyB0byByZXBsYXkg JGVuZHBvc1xuIjsKKworIyBJbnNlcnQgc29tZSByb3dzIGFmdGVyICRlbmRwb3MsIHdoaWNo IHdlIHdvbid0IHJlYWQuCiskbm9kZV9wcmltYXJ5LT5zYWZlX3BzcWwoJ3Rlc3RkYicsCisJ cXFbSU5TRVJUIElOVE8gZGVjb2RpbmdfdGVzdCh4LHkpIFNFTEVDVCBzLCBzOjp0ZXh0IEZS T00gZ2VuZXJhdGVfc2VyaWVzKDUsNTApIHM7XQorKTsKKworJG5vZGVfcHJpbWFyeS0+d2Fp dF9mb3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJG5vZGVfcHJpbWFyeS0+ bHNuKCdmbHVzaCcpKTsKKworbXkgJHN0ZG91dF9yZWN2ID0gJG5vZGVfc3RhbmRieS0+cGdf cmVjdmxvZ2ljYWxfdXB0bygKKyAgICAndGVzdGRiJywgJ2FjdGl2ZXNsb3QnLCAkZW5kcG9z LCAxODAsCisgICAgJ2luY2x1ZGUteGlkcycgICAgID0+ICcwJywKKyAgICAnc2tpcC1lbXB0 eS14YWN0cycgPT4gJzEnKTsKK2Nob21wKCRzdGRvdXRfcmVjdik7Citpcygkc3Rkb3V0X3Jl Y3YsICRleHBlY3RlZCwKKyAgICAnZ290IHNhbWUgZXhwZWN0ZWQgb3V0cHV0IGZyb20gcGdf cmVjdmxvZ2ljYWwgZGVjb2Rpbmcgc2Vzc2lvbicpOworCiskbm9kZV9zdGFuZGJ5LT5wb2xs X3F1ZXJ5X3VudGlsKCd0ZXN0ZGInLAorCSJTRUxFQ1QgRVhJU1RTIChTRUxFQ1QgMSBGUk9N IHBnX3JlcGxpY2F0aW9uX3Nsb3RzIFdIRVJFIHNsb3RfbmFtZSA9ICdhY3RpdmVzbG90JyBB TkQgYWN0aXZlX3BpZCBJUyBOVUxMKSIKKykgb3IgZGllICJzbG90IG5ldmVyIGJlY2FtZSBp bmFjdGl2ZSI7CisKKyRzdGRvdXRfcmVjdiA9ICRub2RlX3N0YW5kYnktPnBnX3JlY3Zsb2dp Y2FsX3VwdG8oCisgICAgJ3Rlc3RkYicsICdhY3RpdmVzbG90JywgJGVuZHBvcywgMTgwLAor ICAgICdpbmNsdWRlLXhpZHMnICAgICA9PiAnMCcsCisgICAgJ3NraXAtZW1wdHkteGFjdHMn ID0+ICcxJyk7CitjaG9tcCgkc3Rkb3V0X3JlY3YpOworaXMoJHN0ZG91dF9yZWN2LCAnJywg J3BnX3JlY3Zsb2dpY2FsIGFja25vd2xlZGdlZCBjaGFuZ2VzJyk7CisKKyRub2RlX3ByaW1h cnktPnNhZmVfcHNxbCgncG9zdGdyZXMnLCAnQ1JFQVRFIERBVEFCQVNFIG90aGVyZGInKTsK KworaXMoICRub2RlX3ByaW1hcnktPnBzcWwoCisgICAgICAgICdvdGhlcmRiJywKKyAgICAg ICAgIlNFTEVDVCBsc24gRlJPTSBwZ19sb2dpY2FsX3Nsb3RfcGVla19jaGFuZ2VzKCdhY3Rp dmVzbG90JywgTlVMTCwgTlVMTCkgT1JERVIgQlkgbHNuIERFU0MgTElNSVQgMTsiCisgICAg KSwKKyAgICAzLAorICAgICdyZXBsYXlpbmcgbG9naWNhbCBzbG90IGZyb20gYW5vdGhlciBk YXRhYmFzZSBmYWlscycpOworCisjIGRyb3AgdGhlIGxvZ2ljYWwgc2xvdHMKKyRub2RlX3N0 YW5kYnktPnBzcWwoJ3Bvc3RncmVzJywgcVtTRUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9z bG90KCdpbmFjdGl2ZXNsb3QnKV0pOworJG5vZGVfc3RhbmRieS0+cHNxbCgncG9zdGdyZXMn LCBxW1NFTEVDVCBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ2FjdGl2ZXNsb3QnKV0pOwor CisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor IyBSZWNvdmVyeSBjb25mbGljdDogSW52YWxpZGF0ZSBjb25mbGljdGluZyBzbG90cywgaW5j bHVkaW5nIGluLXVzZSBzbG90cworIyBTY2VuYXJpbyAxOiBob3Rfc3RhbmRieV9mZWVkYmFj ayBvZmYgYW5kIHZhY3V1bSBGVUxMCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIworCitjcmVhdGVfbG9naWNhbF9zbG90cygpOworCisjIE9u ZSB3YXkgdG8gcmVwcm9kdWNlIHJlY292ZXJ5IGNvbmZsaWN0IGlzIHRvIHJ1biBWQUNVVU0g RlVMTCB3aXRoCisjIGhvdF9zdGFuZGJ5X2ZlZWRiYWNrIHR1cm5lZCBvZmYgb24gdGhlIHN0 YW5kYnkuCiskbm9kZV9zdGFuZGJ5LT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25mJyxx WworaG90X3N0YW5kYnlfZmVlZGJhY2sgPSBvZmYKK10pOworJG5vZGVfc3RhbmRieS0+cmVz dGFydDsKKyMgZW5zdXJlIHdhbHJlY2VpdmVyIGZlZWRiYWNrIG9mZiBieSB3YWl0aW5nIGZv ciBleHBlY3RlZCB4bWluIGFuZAorIyBjYXRhbG9nX3htaW4gb24gcHJpbWFyeS4gQm90aCBz aG91bGQgYmUgTlVMTCBzaW5jZSBoc19mZWVkYmFjayBpcyBvZmYKK3dhaXRfZm9yX3htaW5z KCRub2RlX3ByaW1hcnksICRwcmltYXJ5X3Nsb3RuYW1lLAorCQkJICAgInhtaW4gSVMgTlVM TCBBTkQgY2F0YWxvZ194bWluIElTIE5VTEwiKTsKKworJGhhbmRsZSA9IG1ha2Vfc2xvdF9h Y3RpdmUoMSk7CisKKyMgVGhpcyBzaG91bGQgdHJpZ2dlciB0aGUgY29uZmxpY3QKKyRub2Rl X3ByaW1hcnktPnNhZmVfcHNxbCgndGVzdGRiJywgJ1ZBQ1VVTSBGVUxMJyk7CisKKyRub2Rl X3ByaW1hcnktPndhaXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRieSwgJ3JlcGxheScsICRu b2RlX3ByaW1hcnktPmxzbignZmx1c2gnKSk7CisKKyMgbWVzc2FnZSBzaG91bGQgYmUgaXNz dWVkCitvayggZmluZF9pbl9sb2coCisgICAkbm9kZV9zdGFuZGJ5LAorICAiaW52YWxpZGF0 aW5nIHNsb3QgXCJpbmFjdGl2ZXNsb3RcIiBiZWNhdXNlIGl0IGNvbmZsaWN0cyB3aXRoIHJl Y292ZXJ5IiksCisgICdpbmFjdGl2ZXNsb3Qgc2xvdCBpbnZhbGlkYXRpb24gaXMgbG9nZ2Vk IHdpdGggdmFjdXVtIEZVTEwnKTsKKworb2soIGZpbmRfaW5fbG9nKAorICAgJG5vZGVfc3Rh bmRieSwKKyAgImludmFsaWRhdGluZyBzbG90IFwiYWN0aXZlc2xvdFwiIGJlY2F1c2UgaXQg Y29uZmxpY3RzIHdpdGggcmVjb3ZlcnkiKSwKKyAgJ2FjdGl2ZXNsb3Qgc2xvdCBpbnZhbGlk YXRpb24gaXMgbG9nZ2VkIHdpdGggdmFjdXVtIEZVTEwnKTsKKworIyBWZXJpZnkgdGhhdCBw Z19zdGF0X2RhdGFiYXNlX2NvbmZsaWN0cy5jb25mbF9hY3RpdmVfbG9naWNhbHNsb3QgaGFz IGJlZW4gdXBkYXRlZAorb2soICRub2RlX3N0YW5kYnktPnBvbGxfcXVlcnlfdW50aWwoCisJ J3Bvc3RncmVzJywKKwkic2VsZWN0IChjb25mbF9hY3RpdmVfbG9naWNhbHNsb3QgPSAxKSBm cm9tIHBnX3N0YXRfZGF0YWJhc2VfY29uZmxpY3RzIHdoZXJlIGRhdG5hbWUgPSAndGVzdGRi JyIsICd0JyksCisJJ2NvbmZsX2FjdGl2ZV9sb2dpY2Fsc2xvdCB1cGRhdGVkJykgb3IgZGll ICJUaW1lZCBvdXQgd2FpdGluZyBjb25mbF9hY3RpdmVfbG9naWNhbHNsb3QgdG8gYmUgdXBk YXRlZCI7CisKKyRoYW5kbGUgPSBtYWtlX3Nsb3RfYWN0aXZlKDApOworIyBXZSBhcmUgbm90 IGFibGUgdG8gcmVhZCBmcm9tIHRoZSBzbG90IGFzIGl0IGhhcyBiZWVuIGludmFsaWRhdGVk CitjaGVja19wZ19yZWN2bG9naWNhbF9zdGRlcnIoJGhhbmRsZSwgImNhbm5vdCByZWFkIGZy b20gbG9naWNhbCByZXBsaWNhdGlvbiBzbG90IFwiYWN0aXZlc2xvdFwiIik7CisKKyMgVHVy biBob3Rfc3RhbmRieV9mZWVkYmFjayBiYWNrIG9uCiskbm9kZV9zdGFuZGJ5LT5hcHBlbmRf Y29uZigncG9zdGdyZXNxbC5jb25mJyxxWworaG90X3N0YW5kYnlfZmVlZGJhY2sgPSBvbgor XSk7Ciskbm9kZV9zdGFuZGJ5LT5yZXN0YXJ0OworCisjIGVuc3VyZSB3YWxyZWNlaXZlciBm ZWVkYmFjayBzZW50IGJ5IHdhaXRpbmcgZm9yIGV4cGVjdGVkIHhtaW4gYW5kCisjIGNhdGFs b2dfeG1pbiBvbiBwcmltYXJ5LiBXaXRoIGhvdF9zdGFuZGJ5X2ZlZWRiYWNrIG9uLCB4bWlu IHNob3VsZCBhZHZhbmNlLAorIyBidXQgY2F0YWxvZ194bWluIHNob3VsZCBzdGlsbCByZW1h aW4gTlVMTCBzaW5jZSB0aGVyZSBpcyBubyBsb2dpY2FsIHNsb3QuCit3YWl0X2Zvcl94bWlu cygkbm9kZV9wcmltYXJ5LCAkcHJpbWFyeV9zbG90bmFtZSwKKwkJCSAgICJ4bWluIElTIE5P VCBOVUxMIEFORCBjYXRhbG9nX3htaW4gSVMgTlVMTCIpOworCisjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBSZWNvdmVyeSBjb25mbGlj dDogSW52YWxpZGF0ZSBjb25mbGljdGluZyBzbG90cywgaW5jbHVkaW5nIGluLXVzZSBzbG90 cworIyBTY2VuYXJpbyAyOiBjb25mbGljdCBkdWUgdG8gcm93IHJlbW92YWwgd2l0aCBob3Rf c3RhbmRieV9mZWVkYmFjayBvZmYuCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIworCisjIGdldCB0aGUgcG9zaXRpb24gdG8gc2VhcmNoIGZy b20gaW4gdGhlIHN0YW5kYnkgbG9nZmlsZQorbXkgJGxvZ3N0YXJ0ID0gLXMgJG5vZGVfc3Rh bmRieS0+bG9nZmlsZTsKKworIyBkcm9wIHRoZSBsb2dpY2FsIHNsb3RzCiskbm9kZV9zdGFu ZGJ5LT5wc3FsKCdwb3N0Z3JlcycsIHFbU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xv dCgnaW5hY3RpdmVzbG90JyldKTsKKyRub2RlX3N0YW5kYnktPnBzcWwoJ3Bvc3RncmVzJywg cVtTRUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdhY3RpdmVzbG90JyldKTsKKwor Y3JlYXRlX2xvZ2ljYWxfc2xvdHMoKTsKKworIyBPbmUgd2F5IHRvIHByb2R1Y2UgcmVjb3Zl cnkgY29uZmxpY3QgaXMgdG8gY3JlYXRlL2Ryb3AgYSByZWxhdGlvbiBhbmQgbGF1bmNoIGEg dmFjdXVtCisjIHdpdGggaG90X3N0YW5kYnlfZmVlZGJhY2sgdHVybmVkIG9mZiBvbiB0aGUg c3RhbmRieS4KKyRub2RlX3N0YW5kYnktPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYn LHFbCitob3Rfc3RhbmRieV9mZWVkYmFjayA9IG9mZgorXSk7Ciskbm9kZV9zdGFuZGJ5LT5y ZXN0YXJ0OworIyBlbnN1cmUgd2FscmVjZWl2ZXIgZmVlZGJhY2sgb2ZmIGJ5IHdhaXRpbmcg Zm9yIGV4cGVjdGVkIHhtaW4gYW5kCisjIGNhdGFsb2dfeG1pbiBvbiBwcmltYXJ5LiBCb3Ro IHNob3VsZCBiZSBOVUxMIHNpbmNlIGhzX2ZlZWRiYWNrIGlzIG9mZgord2FpdF9mb3JfeG1p bnMoJG5vZGVfcHJpbWFyeSwgJHByaW1hcnlfc2xvdG5hbWUsCisJCQkgICAieG1pbiBJUyBO VUxMIEFORCBjYXRhbG9nX3htaW4gSVMgTlVMTCIpOworCiskaGFuZGxlID0gbWFrZV9zbG90 X2FjdGl2ZSgxKTsKKworIyBUaGlzIHNob3VsZCB0cmlnZ2VyIHRoZSBjb25mbGljdAorJG5v ZGVfcHJpbWFyeS0+c2FmZV9wc3FsKCd0ZXN0ZGInLCBxcVtDUkVBVEUgVEFCTEUgY29uZmxp Y3RfdGVzdCh4IGludGVnZXIsIHkgdGV4dCk7XSk7Ciskbm9kZV9wcmltYXJ5LT5zYWZlX3Bz cWwoJ3Rlc3RkYicsIHFxW0RST1AgVEFCTEUgY29uZmxpY3RfdGVzdDtdKTsKKyRub2RlX3By aW1hcnktPnNhZmVfcHNxbCgndGVzdGRiJywgJ1ZBQ1VVTScpOworCiskbm9kZV9wcmltYXJ5 LT53YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAkbm9kZV9wcmlt YXJ5LT5sc24oJ2ZsdXNoJykpOworCisjIG1lc3NhZ2Ugc2hvdWxkIGJlIGlzc3VlZAorb2so IGZpbmRfaW5fbG9nKAorICAgJG5vZGVfc3RhbmRieSwKKyAgImludmFsaWRhdGluZyBzbG90 IFwiaW5hY3RpdmVzbG90XCIgYmVjYXVzZSBpdCBjb25mbGljdHMgd2l0aCByZWNvdmVyeSIs ICRsb2dzdGFydCksCisgICdpbmFjdGl2ZXNsb3Qgc2xvdCBpbnZhbGlkYXRpb24gaXMgbG9n Z2VkIGR1ZSB0byByb3cgcmVtb3ZhbCcpOworCitvayggZmluZF9pbl9sb2coCisgICAkbm9k ZV9zdGFuZGJ5LAorICAiaW52YWxpZGF0aW5nIHNsb3QgXCJhY3RpdmVzbG90XCIgYmVjYXVz ZSBpdCBjb25mbGljdHMgd2l0aCByZWNvdmVyeSIsICRsb2dzdGFydCksCisgICdhY3RpdmVz bG90IHNsb3QgaW52YWxpZGF0aW9uIGlzIGxvZ2dlZCBkdWUgdG8gcm93IHJlbW92YWwnKTsK KworIyBWZXJpZnkgdGhhdCBwZ19zdGF0X2RhdGFiYXNlX2NvbmZsaWN0cy5jb25mbF9hY3Rp dmVfbG9naWNhbHNsb3QgaGFzIGJlZW4gdXBkYXRlZAorIyB3ZSBub3cgZXhwZWN0IDIgY29u ZmxpY3RzIHJlcG9ydGVkIGFzIHRoZSBjb3VudGVyIHBlcnNpc3QgYWNyb3NzIHJlc3RhcnRz CitvayggJG5vZGVfc3RhbmRieS0+cG9sbF9xdWVyeV91bnRpbCgKKwkncG9zdGdyZXMnLAor CSJzZWxlY3QgKGNvbmZsX2FjdGl2ZV9sb2dpY2Fsc2xvdCA9IDIpIGZyb20gcGdfc3RhdF9k YXRhYmFzZV9jb25mbGljdHMgd2hlcmUgZGF0bmFtZSA9ICd0ZXN0ZGInIiwgJ3QnKSwKKwkn Y29uZmxfYWN0aXZlX2xvZ2ljYWxzbG90IHVwZGF0ZWQnKSBvciBkaWUgIlRpbWVkIG91dCB3 YWl0aW5nIGNvbmZsX2FjdGl2ZV9sb2dpY2Fsc2xvdCB0byBiZSB1cGRhdGVkIjsKKworJGhh bmRsZSA9IG1ha2Vfc2xvdF9hY3RpdmUoMCk7CisjIFdlIGFyZSBub3QgYWJsZSB0byByZWFk IGZyb20gdGhlIHNsb3QgYXMgaXQgaGFzIGJlZW4gaW52YWxpZGF0ZWQKK2NoZWNrX3BnX3Jl Y3Zsb2dpY2FsX3N0ZGVycigkaGFuZGxlLCAiY2Fubm90IHJlYWQgZnJvbSBsb2dpY2FsIHJl cGxpY2F0aW9uIHNsb3QgXCJhY3RpdmVzbG90XCIiKTsKKworIyBUdXJuIGhvdF9zdGFuZGJ5 X2ZlZWRiYWNrIGJhY2sgb24KKyRub2RlX3N0YW5kYnktPmFwcGVuZF9jb25mKCdwb3N0Z3Jl c3FsLmNvbmYnLHFbCitob3Rfc3RhbmRieV9mZWVkYmFjayA9IG9uCitdKTsKKyRub2RlX3N0 YW5kYnktPnJlc3RhcnQ7CisKKyMgZW5zdXJlIHdhbHJlY2VpdmVyIGZlZWRiYWNrIHNlbnQg Ynkgd2FpdGluZyBmb3IgZXhwZWN0ZWQgeG1pbiBhbmQKKyMgY2F0YWxvZ194bWluIG9uIHBy aW1hcnkuIFdpdGggaG90X3N0YW5kYnlfZmVlZGJhY2sgb24sIHhtaW4gc2hvdWxkIGFkdmFu Y2UsCisjIGJ1dCBjYXRhbG9nX3htaW4gc2hvdWxkIHN0aWxsIHJlbWFpbiBOVUxMIHNpbmNl IHRoZXJlIGlzIG5vIGxvZ2ljYWwgc2xvdC4KK3dhaXRfZm9yX3htaW5zKCRub2RlX3ByaW1h cnksICRwcmltYXJ5X3Nsb3RuYW1lLAorCQkJICAgInhtaW4gSVMgTk9UIE5VTEwgQU5EIGNh dGFsb2dfeG1pbiBJUyBOVUxMIik7CisKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjCisjIFJlY292ZXJ5IGNvbmZsaWN0OiBJbnZhbGlkYXRl IGNvbmZsaWN0aW5nIHNsb3RzLCBpbmNsdWRpbmcgaW4tdXNlIHNsb3RzCisjIFNjZW5hcmlv IDM6IGluY29ycmVjdCB3YWxfbGV2ZWwgb24gcHJpbWFyeS4KKyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyMgZ2V0IHRoZSBwb3NpdGlv biB0byBzZWFyY2ggZnJvbSBpbiB0aGUgc3RhbmRieSBsb2dmaWxlCiskbG9nc3RhcnQgPSAt cyAkbm9kZV9zdGFuZGJ5LT5sb2dmaWxlOworCisjIGRyb3AgdGhlIGxvZ2ljYWwgc2xvdHMK KyRub2RlX3N0YW5kYnktPnBzcWwoJ3Bvc3RncmVzJywgcVtTRUxFQ1QgcGdfZHJvcF9yZXBs aWNhdGlvbl9zbG90KCdpbmFjdGl2ZXNsb3QnKV0pOworJG5vZGVfc3RhbmRieS0+cHNxbCgn cG9zdGdyZXMnLCBxW1NFTEVDVCBwZ19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ2FjdGl2ZXNs b3QnKV0pOworCitjcmVhdGVfbG9naWNhbF9zbG90cygpOworCiskaGFuZGxlID0gbWFrZV9z bG90X2FjdGl2ZSgxKTsKKworIyBNYWtlIHByaW1hcnkgd2FsX2xldmVsIHJlcGxpY2EuIFRo aXMgd2lsbCB0cmlnZ2VyIHNsb3QgY29uZmxpY3QuCiskbm9kZV9wcmltYXJ5LT5hcHBlbmRf Y29uZigncG9zdGdyZXNxbC5jb25mJyxxWword2FsX2xldmVsID0gJ3JlcGxpY2EnCitdKTsK KyRub2RlX3ByaW1hcnktPnJlc3RhcnQ7CisKKyRub2RlX3ByaW1hcnktPndhaXRfZm9yX2Nh dGNodXAoJG5vZGVfc3RhbmRieSwgJ3JlcGxheScsICRub2RlX3ByaW1hcnktPmxzbignZmx1 c2gnKSk7CisKKyMgbWVzc2FnZSBzaG91bGQgYmUgaXNzdWVkCitvayggZmluZF9pbl9sb2co CisgICAkbm9kZV9zdGFuZGJ5LAorICAiaW52YWxpZGF0aW5nIHNsb3QgXCJpbmFjdGl2ZXNs b3RcIiBiZWNhdXNlIGl0IGNvbmZsaWN0cyB3aXRoIHJlY292ZXJ5IiwgJGxvZ3N0YXJ0KSwK KyAgJ2luYWN0aXZlc2xvdCBzbG90IGludmFsaWRhdGlvbiBpcyBsb2dnZWQgZHVlIHRvIHdh bF9sZXZlbCcpOworCitvayggZmluZF9pbl9sb2coCisgICAkbm9kZV9zdGFuZGJ5LAorICAi aW52YWxpZGF0aW5nIHNsb3QgXCJhY3RpdmVzbG90XCIgYmVjYXVzZSBpdCBjb25mbGljdHMg d2l0aCByZWNvdmVyeSIsICRsb2dzdGFydCksCisgICdhY3RpdmVzbG90IHNsb3QgaW52YWxp ZGF0aW9uIGlzIGxvZ2dlZCBkdWUgdG8gd2FsX2xldmVsJyk7CisKKyMgVmVyaWZ5IHRoYXQg cGdfc3RhdF9kYXRhYmFzZV9jb25mbGljdHMuY29uZmxfYWN0aXZlX2xvZ2ljYWxzbG90IGhh cyBiZWVuIHVwZGF0ZWQKKyMgd2Ugbm93IGV4cGVjdCAzIGNvbmZsaWN0cyByZXBvcnRlZCBh cyB0aGUgY291bnRlciBwZXJzaXN0IGFjcm9zcyByZXN0YXJ0cworb2soICRub2RlX3N0YW5k YnktPnBvbGxfcXVlcnlfdW50aWwoCisJJ3Bvc3RncmVzJywKKwkic2VsZWN0IChjb25mbF9h Y3RpdmVfbG9naWNhbHNsb3QgPSAzKSBmcm9tIHBnX3N0YXRfZGF0YWJhc2VfY29uZmxpY3Rz IHdoZXJlIGRhdG5hbWUgPSAndGVzdGRiJyIsICd0JyksCisJJ2NvbmZsX2FjdGl2ZV9sb2dp Y2Fsc2xvdCB1cGRhdGVkJykgb3IgZGllICJUaW1lZCBvdXQgd2FpdGluZyBjb25mbF9hY3Rp dmVfbG9naWNhbHNsb3QgdG8gYmUgdXBkYXRlZCI7CisKKyRoYW5kbGUgPSBtYWtlX3Nsb3Rf YWN0aXZlKDApOworIyBXZSBhcmUgbm90IGFibGUgdG8gcmVhZCBmcm9tIHRoZSBzbG90IGFz IGl0IHJlcXVpcmVzIHdhbF9sZXZlbCBhdCBsZWFzdCBsb2dpY2FsIG9uIG1hc3RlcgorY2hl Y2tfcGdfcmVjdmxvZ2ljYWxfc3RkZXJyKCRoYW5kbGUsICJsb2dpY2FsIGRlY29kaW5nIG9u IHN0YW5kYnkgcmVxdWlyZXMgd2FsX2xldmVsIHRvIGJlIGF0IGxlYXN0IGxvZ2ljYWwgb24g bWFzdGVyIik7CisKKyMgUmVzdG9yZSBwcmltYXJ5IHdhbF9sZXZlbAorJG5vZGVfcHJpbWFy eS0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZicscVsKK3dhbF9sZXZlbCA9ICdsb2dp Y2FsJworXSk7Ciskbm9kZV9wcmltYXJ5LT5yZXN0YXJ0OworJG5vZGVfcHJpbWFyeS0+d2Fp dF9mb3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJG5vZGVfcHJpbWFyeS0+ bHNuKCdmbHVzaCcpKTsKKworJGhhbmRsZSA9IG1ha2Vfc2xvdF9hY3RpdmUoMCk7CisjIGFz IHRoZSBzbG90IGhhcyBiZWVuIGludmFsaWRhdGVkIHdlIHNob3VsZCBub3QgYmUgYWJsZSB0 byByZWFkCitjaGVja19wZ19yZWN2bG9naWNhbF9zdGRlcnIoJGhhbmRsZSwgImNhbm5vdCBy ZWFkIGZyb20gbG9naWNhbCByZXBsaWNhdGlvbiBzbG90IFwiYWN0aXZlc2xvdFwiIik7CisK KyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisj IERST1AgREFUQUJBU0Ugc2hvdWxkIGRyb3BzIGl0J3Mgc2xvdHMsIGluY2x1ZGluZyBhY3Rp dmUgc2xvdHMuCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIworCiskbm9kZV9zdGFuZGJ5LT5wc3FsKCdwb3N0Z3JlcycsIHFbU0VMRUNUIHBn X2Ryb3BfcmVwbGljYXRpb25fc2xvdCgnaW5hY3RpdmVzbG90JyldKTsKKyRub2RlX3N0YW5k YnktPnBzcWwoJ3Bvc3RncmVzJywgcVtTRUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90 KCdhY3RpdmVzbG90JyldKTsKK2NyZWF0ZV9sb2dpY2FsX3Nsb3RzKCk7CiskaGFuZGxlID0g bWFrZV9zbG90X2FjdGl2ZSgxKTsKKyMgQ3JlYXRlIGEgc2xvdCBvbiBhIGRhdGFiYXNlIHRo YXQgd291bGQgbm90IGJlIGRyb3BwZWQuIFRoaXMgc2xvdCBzaG91bGQgbm90CisjIGdldCBk cm9wcGVkLgorJG5vZGVfc3RhbmRieS0+Y3JlYXRlX2xvZ2ljYWxfc2xvdF9vbl9zdGFuZGJ5 KCRub2RlX3ByaW1hcnksICdvdGhlcnNsb3QnLCAncG9zdGdyZXMnKTsKKworIyBkcm9wZGIg b24gdGhlIHByaW1hcnkgdG8gdmVyaWZ5IHNsb3RzIGFyZSBkcm9wcGVkIG9uIHN0YW5kYnkK KyRub2RlX3ByaW1hcnktPnNhZmVfcHNxbCgncG9zdGdyZXMnLCBxW0RST1AgREFUQUJBU0Ug dGVzdGRiXSk7CisKKyRub2RlX3ByaW1hcnktPndhaXRfZm9yX2NhdGNodXAoJG5vZGVfc3Rh bmRieSwgJ3JlcGxheScsICRub2RlX3ByaW1hcnktPmxzbignZmx1c2gnKSk7CisKK2lzKCRu b2RlX3N0YW5kYnktPnNhZmVfcHNxbCgncG9zdGdyZXMnLAorCXFbU0VMRUNUIEVYSVNUUyhT RUxFQ1QgMSBGUk9NIHBnX2RhdGFiYXNlIFdIRVJFIGRhdG5hbWUgPSAndGVzdGRiJyldKSwg J2YnLAorCSdkYXRhYmFzZSBkcm9wcGVkIG9uIHN0YW5kYnknKTsKKworY2hlY2tfc2xvdHNf ZHJvcHBlZCgkaGFuZGxlKTsKKworaXMoJG5vZGVfc3RhbmRieS0+c2xvdCgnb3RoZXJzbG90 JyktPnsnc2xvdF90eXBlJ30sICdsb2dpY2FsJywKKwknb3RoZXJzbG90IG9uIHN0YW5kYnkg bm90IGRyb3BwZWQnKTsKKworIyBDbGVhbnVwIDogbWFudWFsbHkgZHJvcCB0aGUgc2xvdCB0 aGF0IHdhcyBub3QgZHJvcHBlZC4KKyRub2RlX3N0YW5kYnktPnBzcWwoJ3Bvc3RncmVzJywg cVtTRUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdvdGhlcnNsb3QnKV0pOworCisj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBU ZXN0IHN0YW5kYnkgcHJvbW90aW9uIGFuZCBsb2dpY2FsIGRlY29kaW5nIGJlaGF2aW9yCisj IGFmdGVyIHRoZSBzdGFuZGJ5IGdldHMgcHJvbW90ZWQuCisjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCiskbm9kZV9wcmltYXJ5LT5wc3Fs KCdwb3N0Z3JlcycsIHFbQ1JFQVRFIERBVEFCQVNFIHRlc3RkYl0pOworJG5vZGVfcHJpbWFy eS0+c2FmZV9wc3FsKCd0ZXN0ZGInLCBxcVtDUkVBVEUgVEFCTEUgZGVjb2RpbmdfdGVzdCh4 IGludGVnZXIsIHkgdGV4dCk7XSk7CisKKyMgY3JlYXRlIHRoZSBsb2dpY2FsIHNsb3RzCitj cmVhdGVfbG9naWNhbF9zbG90cygpOworCisjIEluc2VydCBzb21lIHJvd3MgYmVmb3JlIHRo ZSBwcm9tb3Rpb24KKyRub2RlX3ByaW1hcnktPnNhZmVfcHNxbCgndGVzdGRiJywKKwlxcVtJ TlNFUlQgSU5UTyBkZWNvZGluZ190ZXN0KHgseSkgU0VMRUNUIHMsIHM6OnRleHQgRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSw0KSBzO10KKyk7CisKKyRub2RlX3ByaW1hcnktPndhaXRfZm9y X2NhdGNodXAoJG5vZGVfc3RhbmRieSwgJ3JlcGxheScsICRub2RlX3ByaW1hcnktPmxzbign Zmx1c2gnKSk7CisKKyMgcHJvbW90ZQorJG5vZGVfc3RhbmRieS0+cHJvbW90ZTsKKworIyBp bnNlcnQgc29tZSByb3dzIG9uIHByb21vdGVkIHN0YW5kYnkKKyRub2RlX3N0YW5kYnktPnNh ZmVfcHNxbCgndGVzdGRiJywKKwlxcVtJTlNFUlQgSU5UTyBkZWNvZGluZ190ZXN0KHgseSkg U0VMRUNUIHMsIHM6OnRleHQgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoNSw3KSBzO10KKyk7CisK KworJGV4cGVjdGVkID0gcXtCRUdJTgordGFibGUgcHVibGljLmRlY29kaW5nX3Rlc3Q6IElO U0VSVDogeFtpbnRlZ2VyXToxIHlbdGV4dF06JzEnCit0YWJsZSBwdWJsaWMuZGVjb2Rpbmdf dGVzdDogSU5TRVJUOiB4W2ludGVnZXJdOjIgeVt0ZXh0XTonMicKK3RhYmxlIHB1YmxpYy5k ZWNvZGluZ190ZXN0OiBJTlNFUlQ6IHhbaW50ZWdlcl06MyB5W3RleHRdOiczJwordGFibGUg cHVibGljLmRlY29kaW5nX3Rlc3Q6IElOU0VSVDogeFtpbnRlZ2VyXTo0IHlbdGV4dF06JzQn CitDT01NSVQKK0JFR0lOCit0YWJsZSBwdWJsaWMuZGVjb2RpbmdfdGVzdDogSU5TRVJUOiB4 W2ludGVnZXJdOjUgeVt0ZXh0XTonNScKK3RhYmxlIHB1YmxpYy5kZWNvZGluZ190ZXN0OiBJ TlNFUlQ6IHhbaW50ZWdlcl06NiB5W3RleHRdOic2JwordGFibGUgcHVibGljLmRlY29kaW5n X3Rlc3Q6IElOU0VSVDogeFtpbnRlZ2VyXTo3IHlbdGV4dF06JzcnCitDT01NSVR9OworCisj IGNoZWNrIHRoYXQgd2UgYXJlIGRlY29kaW5nIHByZSBhbmQgcG9zdCBwcm9tb3Rpb24gaW5z ZXJ0ZWQgcm93cworJHN0ZG91dF9zcWwgPSAkbm9kZV9zdGFuZGJ5LT5zYWZlX3BzcWwoJ3Rl c3RkYicsCisJcXFbU0VMRUNUIGRhdGEgRlJPTSBwZ19sb2dpY2FsX3Nsb3RfcGVla19jaGFu Z2VzKCdhY3RpdmVzbG90JywgTlVMTCwgTlVMTCwgJ2luY2x1ZGUteGlkcycsICcwJywgJ3Nr aXAtZW1wdHkteGFjdHMnLCAnMScpO10KKyk7CisKK2lzKCRzdGRvdXRfc3FsLCAkZXhwZWN0 ZWQsICdnb3QgZXhwZWN0ZWQgb3V0cHV0IGZyb20gU1FMIGRlY29kaW5nIHNlc3Npb24gb24g cHJvbW90ZWQgc3RhbmRieScpOwotLSAKMi4zNC4xCgo= --------------CJJNZUFIbsklop00k5Z4QnhV Content-Type: text/plain; charset=UTF-8; name="v29-0003-Allow-logical-decoding-on-standby.patch" Content-Disposition: attachment; filename="v29-0003-Allow-logical-decoding-on-standby.patch" Content-Transfer-Encoding: base64 RnJvbSBmOWM5Mzk2MzU2MThkMDgxMWM2ZDk2ODNhM2YxYzAxNmFjYWIwOWJjIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVGh1LCA4IERlYyAyMDIyIDEwOjIwOjM1ICswMDAwClN1YmplY3Q6IFtQQVRD SCB2MjkgMy82XSBBbGxvdyBsb2dpY2FsIGRlY29kaW5nIG9uIHN0YW5kYnkuCgpBbGxvdyBh IGxvZ2ljYWwgc2xvdCB0byBiZSBjcmVhdGVkIG9uIHN0YW5kYnkuIFJlc3RyaWN0IGl0cyB1 c2FnZQpvciBpdHMgY3JlYXRpb24gaWYgd2FsX2xldmVsIG9uIHByaW1hcnkgaXMgbGVzcyB0 aGFuIGxvZ2ljYWwuCkR1cmluZyBzbG90IGNyZWF0aW9uLCBpdCdzIHJlc3RhcnRfbHNuIGlz IHNldCB0byB0aGUgbGFzdCByZXBsYXllZApMU04uIEVmZmVjdGl2ZWx5LCBhIGxvZ2ljYWwg c2xvdCBjcmVhdGlvbiBvbiBzdGFuZGJ5IHdhaXRzIGZvciBhbgp4bF9ydW5uaW5nX3hhY3Qg cmVjb3JkIHRvIGFycml2ZSBmcm9tIHByaW1hcnkuIENvbmZsaWN0aW5nIHNsb3RzCndvdWxk IGJlIGhhbmRsZWQgaW4gbmV4dCBjb21taXRzLgoKQXV0aG9yOiBBbmRyZXMgRnJldW5kIChp biBhbiBvbGRlciB2ZXJzaW9uKSwgQW1pdCBLaGFuZGVrYXIsIEJlcnRyYW5kIERyb3V2b3QK UmV2aWV3ZWQtQnk6IEJlcnRyYW5kIERyb3V2b3QsIEFuZHJlcyBGcmV1bmQsIFJvYmVydCBI YWFzLCBGYWJyaXppbyBkZSBSb3llcyBNZWxsbwotLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy90 cmFuc2FtL3hsb2cuYyAgICAgICAgIHwgMTEgKysrKwogc3JjL2JhY2tlbmQvcmVwbGljYXRp b24vbG9naWNhbC9kZWNvZGUuYyAgfCAyMiArKysrKystCiBzcmMvYmFja2VuZC9yZXBsaWNh dGlvbi9sb2dpY2FsL2xvZ2ljYWwuYyB8IDM3ICsrKysrKystLS0tLQogc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vc2xvdC5jICAgICAgICAgICAgfCA3MyArKysrKysrKysrKysrKystLS0t LS0tLQogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMgICAgICAgfCAyNyAr KysrKy0tLS0KIHNyYy9pbmNsdWRlL2FjY2Vzcy94bG9nLmggICAgICAgICAgICAgICAgIHwg IDEgKwogNiBmaWxlcyBjaGFuZ2VkLCAxMTggaW5zZXJ0aW9ucygrKSwgNTMgZGVsZXRpb25z KC0pCiAgIDQuNSUgc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vCiAgMzYuNiUgc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC8KICA1Ny45JSBzcmMvYmFja2VuZC9yZXBsaWNh dGlvbi8KCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMg Yi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKaW5kZXggZTQ1MDNmYjM2ZC4u MDBmMDIxOTQyZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxv Zy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYwpAQCAtNDQ3MSw2 ICs0NDcxLDE3IEBAIExvY2FsUHJvY2Vzc0NvbnRyb2xGaWxlKGJvb2wgcmVzZXQpCiAJUmVh ZENvbnRyb2xGaWxlKCk7CiB9CiAKKy8qCisgKiBHZXQgdGhlIHdhbF9sZXZlbCBmcm9tIHRo ZSBjb250cm9sIGZpbGUuIEZvciBhIHN0YW5kYnksIHRoaXMgdmFsdWUgc2hvdWxkIGJlCisg KiBjb25zaWRlcmVkIGFzIGl0cyBhY3RpdmUgd2FsX2xldmVsLCBiZWNhdXNlIGl0IG1heSBi ZSBkaWZmZXJlbnQgZnJvbSB3aGF0CisgKiB3YXMgb3JpZ2luYWxseSBjb25maWd1cmVkIG9u IHN0YW5kYnkuCisgKi8KK1dhbExldmVsCitHZXRBY3RpdmVXYWxMZXZlbE9uU3RhbmRieSh2 b2lkKQoreworCXJldHVybiBDb250cm9sRmlsZS0+d2FsX2xldmVsOworfQorCiAvKgogICog SW5pdGlhbGl6YXRpb24gb2Ygc2hhcmVkIG1lbW9yeSBmb3IgWExPRwogICovCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29kZS5jIGIvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9kZWNvZGUuYwppbmRleCAyY2MwYWM5ZWIwLi5j MjEwNzIxYWIwIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2Fs L2RlY29kZS5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvZGVjb2Rl LmMKQEAgLTE1MiwxMSArMTUyLDMxIEBAIHhsb2dfZGVjb2RlKExvZ2ljYWxEZWNvZGluZ0Nv bnRleHQgKmN0eCwgWExvZ1JlY29yZEJ1ZmZlciAqYnVmKQogCQkJICogY2FuIHJlc3RhcnQg ZnJvbSB0aGVyZS4KIAkJCSAqLwogCQkJYnJlYWs7CisJCWNhc2UgWExPR19QQVJBTUVURVJf Q0hBTkdFOgorCQl7CisJCQl4bF9wYXJhbWV0ZXJfY2hhbmdlICp4bHJlYyA9CisJCQkJKHhs X3BhcmFtZXRlcl9jaGFuZ2UgKikgWExvZ1JlY0dldERhdGEoYnVmLT5yZWNvcmQpOworCisJ CQkvKgorCQkJICogSWYgd2FsX2xldmVsIG9uIHByaW1hcnkgaXMgcmVkdWNlZCB0byBsZXNz IHRoYW4gbG9naWNhbCwgdGhlbiB3ZQorCQkJICogd2FudCB0byBwcmV2ZW50IGV4aXN0aW5n IGxvZ2ljYWwgc2xvdHMgZnJvbSBiZWluZyB1c2VkLgorCQkJICogRXhpc3RpbmcgbG9naWNh bCBzbG90cyBvbiBzdGFuZGJ5IGdldCBpbnZhbGlkYXRlZCB3aGVuIHRoaXMgV0FMCisJCQkg KiByZWNvcmQgaXMgcmVwbGF5ZWQ7IGFuZCBmdXJ0aGVyLCBzbG90IGNyZWF0aW9uIGZhaWxz IHdoZW4gdGhlCisJCQkgKiB3YWwgbGV2ZWwgaXMgbm90IHN1ZmZpY2llbnQ7IGJ1dCBhbGwg dGhlc2Ugb3BlcmF0aW9ucyBhcmUgbm90CisJCQkgKiBzeW5jaHJvbml6ZWQsIHNvIGEgbG9n aWNhbCBzbG90IG1heSBjcmVlcCBpbiB3aGlsZSB0aGUgd2FsX2xldmVsCisJCQkgKiBpcyBi ZWluZyByZWR1Y2VkLiBIZW5jZSB0aGlzIGV4dHJhIGNoZWNrLgorCQkJICovCisJCQlpZiAo eGxyZWMtPndhbF9sZXZlbCA8IFdBTF9MRVZFTF9MT0dJQ0FMKQorCQkJCWVyZXBvcnQoRVJS T1IsCisJCQkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRF X1NUQVRFKSwKKwkJCQkJCSBlcnJtc2coImxvZ2ljYWwgZGVjb2Rpbmcgb24gc3RhbmRieSBy ZXF1aXJlcyAiCisJCQkJCQkJCSJ3YWxfbGV2ZWwgdG8gYmUgYXQgbGVhc3QgbG9naWNhbCBv biBtYXN0ZXIiKSkpOworCQkJYnJlYWs7CisJCX0KIAkJY2FzZSBYTE9HX05PT1A6CiAJCWNh c2UgWExPR19ORVhUT0lEOgogCQljYXNlIFhMT0dfU1dJVENIOgogCQljYXNlIFhMT0dfQkFD S1VQX0VORDoKLQkJY2FzZSBYTE9HX1BBUkFNRVRFUl9DSEFOR0U6CiAJCWNhc2UgWExPR19S RVNUT1JFX1BPSU5UOgogCQljYXNlIFhMT0dfRlBXX0NIQU5HRToKIAkJY2FzZSBYTE9HX0ZQ SV9GT1JfSElOVDoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2lj YWwvbG9naWNhbC5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2Fs LmMKaW5kZXggNjI1YTdmNDI3My4uYTk1NjdmMmQ4YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsLmMKKysrIGIvc3JjL2JhY2tlbmQvcmVw bGljYXRpb24vbG9naWNhbC9sb2dpY2FsLmMKQEAgLTExOSwyMyArMTE5LDIyIEBAIENoZWNr TG9naWNhbERlY29kaW5nUmVxdWlyZW1lbnRzKHZvaWQpCiAJCQkJKGVycmNvZGUoRVJSQ09E RV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCiAJCQkJIGVycm1zZygibG9n aWNhbCBkZWNvZGluZyByZXF1aXJlcyBhIGRhdGFiYXNlIGNvbm5lY3Rpb24iKSkpOwogCi0J LyogLS0tLQotCSAqIFRPRE86IFdlIGdvdCB0byBjaGFuZ2UgdGhhdCBzb21lZGF5IHNvb24u Li4KLQkgKgotCSAqIFRoZXJlJ3MgYmFzaWNhbGx5IHRocmVlIHRoaW5ncyBtaXNzaW5nIHRv IGFsbG93IHRoaXM6Ci0JICogMSkgV2UgbmVlZCB0byBiZSBhYmxlIHRvIGNvcnJlY3RseSBh bmQgcXVpY2tseSBpZGVudGlmeSB0aGUgdGltZWxpbmUgYQotCSAqCSAgTFNOIGJlbG9uZ3Mg dG8KLQkgKiAyKSBXZSBuZWVkIHRvIGZvcmNlIGhvdF9zdGFuZGJ5X2ZlZWRiYWNrIHRvIGJl IGVuYWJsZWQgYXQgYWxsIHRpbWVzIHNvCi0JICoJICB0aGUgcHJpbWFyeSBjYW5ub3QgcmVt b3ZlIHJvd3Mgd2UgbmVlZC4KLQkgKiAzKSBzdXBwb3J0IGRyb3BwaW5nIHJlcGxpY2F0aW9u IHNsb3RzIHJlZmVycmluZyB0byBhIGRhdGFiYXNlLCBpbgotCSAqCSAgZGJhc2VfcmVkby4g VGhlcmUgY2FuJ3QgYmUgYW55IGFjdGl2ZSBvbmVzIGR1ZSB0byBIUyByZWNvdmVyeQotCSAq CSAgY29uZmxpY3RzLCBzbyB0aGF0IHNob3VsZCBiZSByZWxhdGl2ZWx5IGVhc3kuCi0JICog LS0tLQotCSAqLwogCWlmIChSZWNvdmVyeUluUHJvZ3Jlc3MoKSkKLQkJZXJlcG9ydChFUlJP UiwKLQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkJ IGVycm1zZygibG9naWNhbCBkZWNvZGluZyBjYW5ub3QgYmUgdXNlZCB3aGlsZSBpbiByZWNv dmVyeSIpKSk7CisJeworCQkvKgorCQkgKiBUaGlzIGNoZWNrIG1heSBoYXZlIHJhY2UgY29u ZGl0aW9ucywgYnV0IHdoZW5ldmVyCisJCSAqIFhMT0dfUEFSQU1FVEVSX0NIQU5HRSBpbmRp Y2F0ZXMgdGhhdCB3YWxfbGV2ZWwgaGFzIGNoYW5nZWQsIHdlCisJCSAqIHZlcmlmeSB0aGF0 IHRoZXJlIGFyZSBubyBleGlzdGluZyBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3RzLiBBbmQg dG8KKwkJICogYXZvaWQgcmFjZXMgYXJvdW5kIGNyZWF0aW5nIGEgbmV3IHNsb3QsCisJCSAq IENoZWNrTG9naWNhbERlY29kaW5nUmVxdWlyZW1lbnRzKCkgaXMgY2FsbGVkIG9uY2UgYmVm b3JlIGNyZWF0aW5nCisJCSAqIHRoZSBzbG90LCBhbmQgb25jZSB3aGVuIGxvZ2ljYWwgZGVj b2RpbmcgaXMgaW5pdGlhbGx5IHN0YXJ0aW5nIHVwLgorCQkgKi8KKwkJaWYgKEdldEFjdGl2 ZVdhbExldmVsT25TdGFuZGJ5KCkgPCBXQUxfTEVWRUxfTE9HSUNBTCkKKwkJCWVyZXBvcnQo RVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJ VEVfU1RBVEUpLAorCQkJCQkgZXJybXNnKCJsb2dpY2FsIGRlY29kaW5nIG9uIHN0YW5kYnkg cmVxdWlyZXMgIgorCQkJCQkJCSJ3YWxfbGV2ZWwgdG8gYmUgYXQgbGVhc3QgbG9naWNhbCBv biBtYXN0ZXIiKSkpOworCX0KIH0KIAogLyoKQEAgLTMzMSw2ICszMzAsMTIgQEAgQ3JlYXRl SW5pdERlY29kaW5nQ29udGV4dChjb25zdCBjaGFyICpwbHVnaW4sCiAJTG9naWNhbERlY29k aW5nQ29udGV4dCAqY3R4OwogCU1lbW9yeUNvbnRleHQgb2xkX2NvbnRleHQ7CiAKKwkvKgor CSAqIE9uIHN0YW5kYnksIHRoaXMgY2hlY2sgaXMgYWxzbyByZXF1aXJlZCB3aGlsZSBjcmVh dGluZyB0aGUgc2xvdC4gQ2hlY2sKKwkgKiB0aGUgY29tbWVudHMgaW4gdGhpcyBmdW5jdGlv bi4KKwkgKi8KKwlDaGVja0xvZ2ljYWxEZWNvZGluZ1JlcXVpcmVtZW50cygpOworCiAJLyog c2hvcnRlciBsaW5lcy4uLiAqLwogCXNsb3QgPSBNeVJlcGxpY2F0aW9uU2xvdDsKIApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jIGIvc3JjL2JhY2tlbmQv cmVwbGljYXRpb24vc2xvdC5jCmluZGV4IDZhNGUyY2QxOWIuLmY1NTRkYWM2ZmQgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYworKysgYi9zcmMvYmFja2Vu ZC9yZXBsaWNhdGlvbi9zbG90LmMKQEAgLTUxLDYgKzUxLDcgQEAKICNpbmNsdWRlICJzdG9y YWdlL3Byb2MuaCIKICNpbmNsdWRlICJzdG9yYWdlL3Byb2NhcnJheS5oIgogI2luY2x1ZGUg InV0aWxzL2J1aWx0aW5zLmgiCisjaW5jbHVkZSAiYWNjZXNzL3hsb2dyZWNvdmVyeS5oIgog CiAvKgogICogUmVwbGljYXRpb24gc2xvdCBvbi1kaXNrIGRhdGEgc3RydWN0dXJlLgpAQCAt MTE3NSwzNyArMTE3Niw0NiBAQCBSZXBsaWNhdGlvblNsb3RSZXNlcnZlV2FsKHZvaWQpCiAJ CS8qCiAJCSAqIEZvciBsb2dpY2FsIHNsb3RzIGxvZyBhIHN0YW5kYnkgc25hcHNob3QgYW5k IHN0YXJ0IGxvZ2ljYWwgZGVjb2RpbmcKIAkJICogYXQgZXhhY3RseSB0aGF0IHBvc2l0aW9u LiBUaGF0IGFsbG93cyB0aGUgc2xvdCB0byBzdGFydCB1cCBtb3JlCi0JCSAqIHF1aWNrbHku CisJCSAqIHF1aWNrbHkuIEJ1dCBvbiBhIHN0YW5kYnkgd2UgY2Fubm90IGRvIFdBTCB3cml0 ZXMsIHNvIGp1c3QgdXNlIHRoZQorCQkgKiByZXBsYXkgcG9pbnRlcjsgZWZmZWN0aXZlbHks IGFuIGF0dGVtcHQgdG8gY3JlYXRlIGEgbG9naWNhbCBzbG90IG9uCisJCSAqIHN0YW5kYnkg d2lsbCBjYXVzZSBpdCB0byB3YWl0IGZvciBhbiB4bF9ydW5uaW5nX3hhY3QgcmVjb3JkIHRv IGJlCisJCSAqIGxvZ2dlZCBpbmRlcGVuZGVudGx5IG9uIHRoZSBwcmltYXJ5LCBzbyB0aGF0 IGEgc25hcHNob3QgY2FuIGJlIGJ1aWx0CisJCSAqIHVzaW5nIHRoZSByZWNvcmQuCiAJCSAq Ci0JCSAqIFRoYXQncyBub3QgbmVlZGVkIChvciBpbmRlZWQgaGVscGZ1bCkgZm9yIHBoeXNp Y2FsIHNsb3RzIGFzIHRoZXknbGwKLQkJICogc3RhcnQgcmVwbGF5IGF0IHRoZSBsYXN0IGxv Z2dlZCBjaGVja3BvaW50IGFueXdheS4gSW5zdGVhZCByZXR1cm4KLQkJICogdGhlIGxvY2F0 aW9uIG9mIHRoZSBsYXN0IHJlZG8gTFNOLiBXaGlsZSB0aGF0IHNsaWdodGx5IGluY3JlYXNl cwotCQkgKiB0aGUgY2hhbmNlIHRoYXQgd2UgaGF2ZSB0byByZXRyeSwgaXQncyB3aGVyZSBh IGJhc2UgYmFja3VwIGhhcyB0bwotCQkgKiBzdGFydCByZXBsYXkgYXQuCisJCSAqIE5vbmUg b2YgdGhpcyBpcyBuZWVkZWQgKG9yIGluZGVlZCBoZWxwZnVsKSBmb3IgcGh5c2ljYWwgc2xv dHMgYXMKKwkJICogdGhleSdsbCBzdGFydCByZXBsYXkgYXQgdGhlIGxhc3QgbG9nZ2VkIGNo ZWNrcG9pbnQgYW55d2F5LiBJbnN0ZWFkCisJCSAqIHJldHVybiB0aGUgbG9jYXRpb24gb2Yg dGhlIGxhc3QgcmVkbyBMU04uIFdoaWxlIHRoYXQgc2xpZ2h0bHkKKwkJICogaW5jcmVhc2Vz IHRoZSBjaGFuY2UgdGhhdCB3ZSBoYXZlIHRvIHJldHJ5LCBpdCdzIHdoZXJlIGEgYmFzZSBi YWNrdXAKKwkJICogaGFzIHRvIHN0YXJ0IHJlcGxheSBhdC4KIAkJICovCi0JCWlmICghUmVj b3ZlcnlJblByb2dyZXNzKCkgJiYgU2xvdElzTG9naWNhbChzbG90KSkKKwkJaWYgKFNsb3RJ c1BoeXNpY2FsKHNsb3QpKQorCQkJcmVzdGFydF9sc24gPSBHZXRSZWRvUmVjUHRyKCk7CisJ CWVsc2UgaWYgKFJlY292ZXJ5SW5Qcm9ncmVzcygpKQogCQl7Ci0JCQlYTG9nUmVjUHRyCWZs dXNocHRyOwotCi0JCQkvKiBzdGFydCBhdCBjdXJyZW50IGluc2VydCBwb3NpdGlvbiAqLwot CQkJcmVzdGFydF9sc24gPSBHZXRYTG9nSW5zZXJ0UmVjUHRyKCk7Ci0JCQlTcGluTG9ja0Fj cXVpcmUoJnNsb3QtPm11dGV4KTsKLQkJCXNsb3QtPmRhdGEucmVzdGFydF9sc24gPSByZXN0 YXJ0X2xzbjsKLQkJCVNwaW5Mb2NrUmVsZWFzZSgmc2xvdC0+bXV0ZXgpOwotCi0JCQkvKiBt YWtlIHN1cmUgd2UgaGF2ZSBlbm91Z2ggaW5mb3JtYXRpb24gdG8gc3RhcnQgKi8KLQkJCWZs dXNocHRyID0gTG9nU3RhbmRieVNuYXBzaG90KCk7Ci0KLQkJCS8qIGFuZCBtYWtlIHN1cmUg aXQncyBmc3luY2VkIHRvIGRpc2sgKi8KLQkJCVhMb2dGbHVzaChmbHVzaHB0cik7CisJCQly ZXN0YXJ0X2xzbiA9IEdldFhMb2dSZXBsYXlSZWNQdHIoTlVMTCk7CisJCQkvKgorCQkJICog UmVwbGF5IHBvaW50ZXIgbWF5IHBvaW50IG9uZSBwYXN0IHRoZSBlbmQgb2YgdGhlIHJlY29y ZC4gSWYgdGhhdAorCQkJICogaXMgYSBYTE9HIHBhZ2UgYm91bmRhcnksIGl0IHdpbGwgbm90 IGJlIGEgdmFsaWQgTFNOIGZvciB0aGUKKwkJCSAqIHN0YXJ0IG9mIGEgcmVjb3JkLCBzbyBi dW1wIGl0IHVwIHBhc3QgdGhlIHBhZ2UgaGVhZGVyLgorCQkJICovCisJCQlpZiAoIVhSZWNP ZmZJc1ZhbGlkKHJlc3RhcnRfbHNuKSkKKwkJCXsKKwkJCQlpZiAocmVzdGFydF9sc24gJSBY TE9HX0JMQ0tTWiAhPSAwKQorCQkJCQllbG9nKEVSUk9SLCAiaW52YWxpZCByZXBsYXkgcG9p bnRlciIpOworCisJCQkJLyogRm9yIHRoZSBmaXJzdCBwYWdlIG9mIGEgc2VnbWVudCBmaWxl LCBpdCdzIGEgbG9uZyBoZWFkZXIgKi8KKwkJCQlpZiAoWExvZ1NlZ21lbnRPZmZzZXQocmVz dGFydF9sc24sIHdhbF9zZWdtZW50X3NpemUpID09IDApCisJCQkJCXJlc3RhcnRfbHNuICs9 IFNpemVPZlhMb2dMb25nUEhEOworCQkJCWVsc2UKKwkJCQkJcmVzdGFydF9sc24gKz0gU2l6 ZU9mWExvZ1Nob3J0UEhEOworCQkJfQogCQl9CiAJCWVsc2UKLQkJewotCQkJcmVzdGFydF9s c24gPSBHZXRSZWRvUmVjUHRyKCk7Ci0JCQlTcGluTG9ja0FjcXVpcmUoJnNsb3QtPm11dGV4 KTsKLQkJCXNsb3QtPmRhdGEucmVzdGFydF9sc24gPSByZXN0YXJ0X2xzbjsKLQkJCVNwaW5M b2NrUmVsZWFzZSgmc2xvdC0+bXV0ZXgpOwotCQl9CisJCQlyZXN0YXJ0X2xzbiA9IEdldFhM b2dJbnNlcnRSZWNQdHIoKTsKKworCQlTcGluTG9ja0FjcXVpcmUoJnNsb3QtPm11dGV4KTsK KwkJc2xvdC0+ZGF0YS5yZXN0YXJ0X2xzbiA9IHJlc3RhcnRfbHNuOworCQlTcGluTG9ja1Jl bGVhc2UoJnNsb3QtPm11dGV4KTsKIAogCQkvKiBwcmV2ZW50IFdBTCByZW1vdmFsIGFzIGZh c3QgYXMgcG9zc2libGUgKi8KIAkJUmVwbGljYXRpb25TbG90c0NvbXB1dGVSZXF1aXJlZExT TigpOwpAQCAtMTIyMSw2ICsxMjMxLDE3IEBAIFJlcGxpY2F0aW9uU2xvdFJlc2VydmVXYWwo dm9pZCkKIAkJaWYgKFhMb2dHZXRMYXN0UmVtb3ZlZFNlZ25vKCkgPCBzZWdubykKIAkJCWJy ZWFrOwogCX0KKworCWlmICghUmVjb3ZlcnlJblByb2dyZXNzKCkgJiYgU2xvdElzTG9naWNh bChzbG90KSkKKwl7CisJCVhMb2dSZWNQdHIJZmx1c2hwdHI7CisKKwkJLyogbWFrZSBzdXJl IHdlIGhhdmUgZW5vdWdoIGluZm9ybWF0aW9uIHRvIHN0YXJ0ICovCisJCWZsdXNocHRyID0g TG9nU3RhbmRieVNuYXBzaG90KCk7CisKKwkJLyogYW5kIG1ha2Ugc3VyZSBpdCdzIGZzeW5j ZWQgdG8gZGlzayAqLworCQlYTG9nRmx1c2goZmx1c2hwdHIpOworCX0KIH0KIAogLyoKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jIGIvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMKaW5kZXggNjRmYmQ1MmUzNC4uOTY2MmUz MTZjOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMK KysrIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMKQEAgLTkwNiwxNCAr OTA2LDE4IEBAIGxvZ2ljYWxfcmVhZF94bG9nX3BhZ2UoWExvZ1JlYWRlclN0YXRlICpzdGF0 ZSwgWExvZ1JlY1B0ciB0YXJnZXRQYWdlUHRyLCBpbnQgcmVxCiAJaW50CQkJY291bnQ7CiAJ V0FMUmVhZEVycm9yIGVycmluZm87CiAJWExvZ1NlZ05vCXNlZ25vOwotCVRpbWVMaW5lSUQJ Y3VyclRMSSA9IEdldFdBTEluc2VydGlvblRpbWVMaW5lKCk7CisJVGltZUxpbmVJRAljdXJy VExJOwogCiAJLyoKLQkgKiBTaW5jZSBsb2dpY2FsIGRlY29kaW5nIGlzIG9ubHkgcGVybWl0 dGVkIG9uIGEgcHJpbWFyeSBzZXJ2ZXIsIHdlIGtub3cKLQkgKiB0aGF0IHRoZSBjdXJyZW50 IHRpbWVsaW5lIElEIGNhbid0IGJlIGNoYW5naW5nIGFueSBtb3JlLiBJZiB3ZSBkaWQgdGhp cwotCSAqIG9uIGEgc3RhbmRieSwgd2UnZCBoYXZlIHRvIHdvcnJ5IGFib3V0IHRoZSB2YWx1 ZXMgd2UgY29tcHV0ZSBoZXJlCi0JICogYmVjb21pbmcgaW52YWxpZCBkdWUgdG8gYSBwcm9t b3Rpb24gb3IgdGltZWxpbmUgY2hhbmdlLgorCSAqIFNpbmNlIGxvZ2ljYWwgZGVjb2Rpbmcg aXMgYWxzbyBwZXJtaXR0ZWQgb24gYSBzdGFuZGJ5IHNlcnZlciwgd2UgbmVlZAorCSAqIHRv IGNoZWNrIGlmIHRoZSBzZXJ2ZXIgaXMgaW4gcmVjb3ZlcnkgdG8gZGVjaWRlIGhvdyB0byBn ZXQgdGhlIGN1cnJlbnQKKwkgKiB0aW1lbGluZSBJRCAoc28gdGhhdCBpdCBhbHNvIGNvdmVy IHRoZSBwcm9tb3Rpb24gb3IgdGltZWxpbmUgY2hhbmdlIGNhc2VzKS4KIAkgKi8KKwlpZiAo IVJlY292ZXJ5SW5Qcm9ncmVzcygpKQorCQljdXJyVExJID0gR2V0V0FMSW5zZXJ0aW9uVGlt ZUxpbmUoKTsKKwllbHNlCisJCUdldFhMb2dSZXBsYXlSZWNQdHIoJmN1cnJUTEkpOworCiAJ WExvZ1JlYWREZXRlcm1pbmVUaW1lbGluZShzdGF0ZSwgdGFyZ2V0UGFnZVB0ciwgcmVxTGVu LCBjdXJyVExJKTsKIAlzZW5kVGltZUxpbmVJc0hpc3RvcmljID0gKHN0YXRlLT5jdXJyVExJ ICE9IGN1cnJUTEkpOwogCXNlbmRUaW1lTGluZSA9IHN0YXRlLT5jdXJyVExJOwpAQCAtMzA3 NCwxMCArMzA3OCwxMiBAQCBYTG9nU2VuZExvZ2ljYWwodm9pZCkKIAkgKiBJZiBmaXJzdCB0 aW1lIHRocm91Z2ggaW4gdGhpcyBzZXNzaW9uLCBpbml0aWFsaXplIGZsdXNoUHRyLiAgT3Ro ZXJ3aXNlLAogCSAqIHdlIG9ubHkgbmVlZCB0byB1cGRhdGUgZmx1c2hQdHIgaWYgRW5kUmVj UHRyIGlzIHBhc3QgaXQuCiAJICovCi0JaWYgKGZsdXNoUHRyID09IEludmFsaWRYTG9nUmVj UHRyKQotCQlmbHVzaFB0ciA9IEdldEZsdXNoUmVjUHRyKE5VTEwpOwotCWVsc2UgaWYgKGxv Z2ljYWxfZGVjb2RpbmdfY3R4LT5yZWFkZXItPkVuZFJlY1B0ciA+PSBmbHVzaFB0cikKLQkJ Zmx1c2hQdHIgPSBHZXRGbHVzaFJlY1B0cihOVUxMKTsKKwlpZiAoZmx1c2hQdHIgPT0gSW52 YWxpZFhMb2dSZWNQdHIgfHwKKwkJbG9naWNhbF9kZWNvZGluZ19jdHgtPnJlYWRlci0+RW5k UmVjUHRyID49IGZsdXNoUHRyKQorCXsKKwkJZmx1c2hQdHIgPSAoYW1fY2FzY2FkaW5nX3dh bHNlbmRlciA/CisJCQkJCUdldFN0YW5kYnlGbHVzaFJlY1B0cihOVUxMKSA6IEdldEZsdXNo UmVjUHRyKE5VTEwpKTsKKwl9CiAKIAkvKiBJZiBFbmRSZWNQdHIgaXMgc3RpbGwgcGFzdCBv dXIgZmx1c2hQdHIsIGl0IG1lYW5zIHdlIGNhdWdodCB1cC4gKi8KIAlpZiAobG9naWNhbF9k ZWNvZGluZ19jdHgtPnJlYWRlci0+RW5kUmVjUHRyID49IGZsdXNoUHRyKQpAQCAtMzE2OCw3 ICszMTc0LDggQEAgR2V0U3RhbmRieUZsdXNoUmVjUHRyKFRpbWVMaW5lSUQgKnRsaSkKIAly ZWNlaXZlUHRyID0gR2V0V2FsUmN2Rmx1c2hSZWNQdHIoTlVMTCwgJnJlY2VpdmVUTEkpOwog CXJlcGxheVB0ciA9IEdldFhMb2dSZXBsYXlSZWNQdHIoJnJlcGxheVRMSSk7CiAKLQkqdGxp ID0gcmVwbGF5VExJOworCWlmICh0bGkpCisJCSp0bGkgPSByZXBsYXlUTEk7CiAKIAlyZXN1 bHQgPSByZXBsYXlQdHI7CiAJaWYgKHJlY2VpdmVUTEkgPT0gcmVwbGF5VExJICYmIHJlY2Vp dmVQdHIgPiByZXBsYXlQdHIpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3MveGxv Zy5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2cuaAppbmRleCAxZmJkNDhmYmRhLi4wMjdl MTU1ZThlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MveGxvZy5oCisrKyBiL3Ny Yy9pbmNsdWRlL2FjY2Vzcy94bG9nLmgKQEAgLTIzMCw2ICsyMzAsNyBAQCBleHRlcm4gdm9p ZCBYTE9HU2htZW1Jbml0KHZvaWQpOwogZXh0ZXJuIHZvaWQgQm9vdFN0cmFwWExPRyh2b2lk KTsKIGV4dGVybiB2b2lkIEluaXRpYWxpemVXYWxDb25zaXN0ZW5jeUNoZWNraW5nKHZvaWQp OwogZXh0ZXJuIHZvaWQgTG9jYWxQcm9jZXNzQ29udHJvbEZpbGUoYm9vbCByZXNldCk7Citl eHRlcm4gV2FsTGV2ZWwgR2V0QWN0aXZlV2FsTGV2ZWxPblN0YW5kYnkodm9pZCk7CiBleHRl cm4gdm9pZCBTdGFydHVwWExPRyh2b2lkKTsKIGV4dGVybiB2b2lkIFNodXRkb3duWExPRyhp bnQgY29kZSwgRGF0dW0gYXJnKTsKIGV4dGVybiB2b2lkIENyZWF0ZUNoZWNrUG9pbnQoaW50 IGZsYWdzKTsKLS0gCjIuMzQuMQoK --------------CJJNZUFIbsklop00k5Z4QnhV Content-Type: text/plain; charset=UTF-8; name="v29-0002-Handle-logical-slot-conflicts-on-standby.patch" Content-Disposition: attachment; filename="v29-0002-Handle-logical-slot-conflicts-on-standby.patch" Content-Transfer-Encoding: base64 RnJvbSBhNzRjZGYyMDY4N2Q4MTIwNWJiY2UzOTc1OGZmOTcxOTAwNzIzY2JkIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVGh1LCA4IERlYyAyMDIyIDEwOjE5OjI3ICswMDAwClN1YmplY3Q6IFtQQVRD SCB2MjkgMi82XSBIYW5kbGUgbG9naWNhbCBzbG90IGNvbmZsaWN0cyBvbiBzdGFuZGJ5LgoK RHVyaW5nIFdBTCByZXBsYXkgb24gc3RhbmRieSwgd2hlbiBzbG90IGNvbmZsaWN0IGlzIGlk ZW50aWZpZWQsCmludmFsaWRhdGUgc3VjaCBzbG90cy4gQWxzbyBkbyB0aGUgc2FtZSB0aGlu ZyBpZiB3YWxfbGV2ZWwgb24gbWFzdGVyCmlzIHJlZHVjZWQgdG8gYmVsb3cgbG9naWNhbCBh bmQgdGhlcmUgYXJlIGV4aXN0aW5nIGxvZ2ljYWwgc2xvdHMKb24gc3RhbmRieS4gSW50cm9k dWNlIGEgbmV3IFByb2NTaWduYWxSZWFzb24gdmFsdWUgZm9yIHNsb3QKY29uZmxpY3QgcmVj b3ZlcnkuIEFycmFuZ2UgZm9yIGEgbmV3IHBnX3N0YXRfZGF0YWJhc2VfY29uZmxpY3RzIGZp ZWxkOgpjb25mbF9hY3RpdmVfbG9naWNhbHNsb3QuCgpBdXRob3I6IEFuZHJlcyBGcmV1bmQg KGluIGFuIG9sZGVyIHZlcnNpb24pLCBBbWl0IEtoYW5kZWthciwgQmVydHJhbmQgRHJvdXZv dApSZXZpZXdlZC1CeTogQmVydHJhbmQgRHJvdXZvdCwgQW5kcmVzIEZyZXVuZCwgUm9iZXJ0 IEhhYXMsIEZhYnJpemlvIGRlIFJveWVzIE1lbGxvCi0tLQogZG9jL3NyYy9zZ21sL21vbml0 b3Jpbmcuc2dtbCAgICAgICAgICAgICAgICAgIHwgIDExICsKIHNyYy9iYWNrZW5kL2FjY2Vz cy9naXN0L2dpc3R4bG9nLmMgICAgICAgICAgICB8ICAgMiArCiBzcmMvYmFja2VuZC9hY2Nl c3MvaGFzaC9oYXNoX3hsb2cuYyAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvaGVhcGFtLmMgICAgICAgICAgICAgIHwgICAzICsKIHNyYy9iYWNrZW5kL2Fj Y2Vzcy9uYnRyZWUvbmJ0eGxvZy5jICAgICAgICAgICB8ICAgMiArCiBzcmMvYmFja2VuZC9h Y2Nlc3Mvc3BnaXN0L3NwZ3hsb2cuYyAgICAgICAgICAgfCAgIDEgKwogc3JjL2JhY2tlbmQv YWNjZXNzL3RyYW5zYW0veGxvZy5jICAgICAgICAgICAgIHwgIDEzICsrCiBzcmMvYmFja2Vu ZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwgICAgICAgICAgfCAgIDMgKy0KIC4uLi9yZXBs aWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWxmdW5jcy5jICAgICAgICB8ICAgNyArLQogc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vc2xvdC5jICAgICAgICAgICAgICAgIHwgMjA5ICsrKysrKysr KysrKysrKysrKwogc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMgICAgICAg ICAgIHwgICA4ICsKIHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NhcnJheS5jICAgICAg ICAgICB8ICAgNCArCiBzcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jc2lnbmFsLmMgICAg ICAgICAgfCAgIDMgKwogc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvc3RhbmRieS5jICAgICAg ICAgICAgIHwgIDEzICstCiBzcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMgICAgICAgICAg ICAgICAgICAgfCAgMjIgKysKIHNyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9k YXRhYmFzZS5jICB8ICAgNCArCiBzcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3Mu YyAgICAgICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCAg ICAgICAgICAgICAgIHwgICA1ICsKIHNyYy9pbmNsdWRlL3Bnc3RhdC5oICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90Lmgg ICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL2luY2x1ZGUvc3RvcmFnZS9wcm9jc2lnbmFs LmggICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL3N0b3JhZ2Uvc3RhbmRieS5o ICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1 bGVzLm91dCAgICAgICAgICAgfCAgIDMgKy0KIDIzIGZpbGVzIGNoYW5nZWQsIDMxOCBpbnNl cnRpb25zKCspLCA1IGRlbGV0aW9ucygtKQogICAzLjglIGRvYy9zcmMvc2dtbC8KICAgNS4x JSBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS8KICAgNC41JSBzcmMvYmFja2VuZC9hY2Nl c3MvCiAgIDMuOCUgc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC8KICA1Ny40JSBz cmMvYmFja2VuZC9yZXBsaWNhdGlvbi8KICAgNy4zJSBzcmMvYmFja2VuZC9zdG9yYWdlL2lw Yy8KICAgNy44JSBzcmMvYmFja2VuZC90Y29wLwogICAzLjMlIHNyYy9iYWNrZW5kLwogICA1 LjklIHNyYy9pbmNsdWRlLwoKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5n LnNnbWwgYi9kb2Mvc3JjL3NnbWwvbW9uaXRvcmluZy5zZ21sCmluZGV4IDExYThlYmU1ZWMu LjE5YjUwOTYwZWMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwK KysrIGIvZG9jL3NyYy9zZ21sL21vbml0b3Jpbmcuc2dtbApAQCAtNDMxNyw2ICs0MzE3LDE3 IEBAIFNFTEVDVCBwaWQsIHdhaXRfZXZlbnRfdHlwZSwgd2FpdF9ldmVudCBGUk9NIHBnX3N0 YXRfYWN0aXZpdHkgV0hFUkUgd2FpdF9ldmVudCBpCiAgICAgICAgZGVhZGxvY2tzCiAgICAg ICA8L3BhcmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVm aW5pdGlvbiI+CisgICAgICAgPHN0cnVjdGZpZWxkPmNvbmZsX2FjdGl2ZV9sb2dpY2Fsc2xv dDwvc3RydWN0ZmllbGQ+IDx0eXBlPmJpZ2ludDwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAg ICAgIDxwYXJhPgorICAgICAgIE51bWJlciBvZiBhY3RpdmUgbG9naWNhbCBzbG90cyBpbiB0 aGlzIGRhdGFiYXNlIHRoYXQgaGF2ZSBiZWVuCisgICAgICAgaW52YWxpZGF0ZWQgYmVjYXVz ZSB0aGV5IGNvbmZsaWN0IHdpdGggcmVjb3ZlcnkgKG5vdGUgdGhhdCBpbmFjdGl2ZSBvbmVz CisgICAgICAgYXJlIGFsc28gaW52YWxpZGF0ZWQgYnV0IGRvIG5vdCBpbmNyZW1lbnQgdGhp cyBjb3VudGVyKQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgogICAgIDwv dGJvZHk+CiAgICA8L3Rncm91cD4KICAgPC90YWJsZT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL2FjY2Vzcy9naXN0L2dpc3R4bG9nLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9n aXN0eGxvZy5jCmluZGV4IGI3NDc5MDBhNDUuLjc1ODE4MjY2YTYgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R4bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2dpc3QvZ2lzdHhsb2cuYwpAQCAtMTk2LDYgKzE5Niw3IEBAIGdpc3RSZWRvRGVsZXRl UmVjb3JkKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQlYTG9nUmVjR2V0QmxvY2tUYWco cmVjb3JkLCAwLCAmcmxvY2F0b3IsIE5VTEwsIE5VTEwpOwogCiAJCVJlc29sdmVSZWNvdmVy eUNvbmZsaWN0V2l0aFNuYXBzaG90KHhsZGF0YS0+c25hcHNob3RDb25mbGljdEhvcml6b24s CisJCQkJCQkJCQkJCXhsZGF0YS0+b25DYXRhbG9nQWNjZXNzaWJsZUluTG9naWNhbERlY29k aW5nLAogCQkJCQkJCQkJCQlybG9jYXRvcik7CiAJfQogCkBAIC0zOTYsNiArMzk3LDcgQEAg Z2lzdFJlZG9QYWdlUmV1c2UoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJICovCiAJaWYg KEluSG90U3RhbmRieSkKIAkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3RG dWxsWGlkKHhscmVjLT5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwKKwkJCQkJCQkJCQkJCSAg IHhscmVjLT5vbkNhdGFsb2dBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcsCiAJCQkJCQkJ CQkJCQkgICB4bHJlYy0+bG9jYXRvcik7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2FjY2Vzcy9oYXNoL2hhc2hfeGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFz aF94bG9nLmMKaW5kZXggYjQ1MjY5N2EyZi4uNjE1NjVmOTA1ZCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaF94bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL2hhc2gvaGFzaF94bG9nLmMKQEAgLTEwMDEsNiArMTAwMSw3IEBAIGhhc2hfeGxvZ192 YWN1dW1fb25lX3BhZ2UoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAKIAkJWExvZ1JlY0dl dEJsb2NrVGFnKHJlY29yZCwgMCwgJnJsb2NhdG9yLCBOVUxMLCBOVUxMKTsKIAkJUmVzb2x2 ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoeGxkYXRhLT5zbmFwc2hvdENvbmZsaWN0 SG9yaXpvbiwKKwkJCQkJCQkJCQkJeGxkYXRhLT5vbkNhdGFsb2dBY2Nlc3NpYmxlSW5Mb2dp Y2FsRGVjb2RpbmcsCiAJCQkJCQkJCQkJCXJsb2NhdG9yKTsKIAl9CiAKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNz L2hlYXAvaGVhcGFtLmMKaW5kZXggYjQyYTZiZmE2MS4uYTc5ZjAxMDI4NiAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKKysrIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvaGVhcGFtLmMKQEAgLTg2OTYsNiArODY5Niw3IEBAIGhlYXBfeGxvZ19w cnVuZShYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkgKi8KIAlpZiAoSW5Ib3RTdGFuZGJ5 KQogCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bHJlYy0+c25hcHNo b3RDb25mbGljdEhvcml6b24sCisJCQkJCQkJCQkJCXhscmVjLT5vbkNhdGFsb2dBY2Nlc3Np YmxlSW5Mb2dpY2FsRGVjb2RpbmcsCiAJCQkJCQkJCQkJCXJsb2NhdG9yKTsKIAogCS8qCkBA IC04ODY1LDYgKzg4NjYsNyBAQCBoZWFwX3hsb2dfdmlzaWJsZShYTG9nUmVhZGVyU3RhdGUg KnJlY29yZCkKIAkgKi8KIAlpZiAoSW5Ib3RTdGFuZGJ5KQogCQlSZXNvbHZlUmVjb3ZlcnlD b25mbGljdFdpdGhTbmFwc2hvdCh4bHJlYy0+c25hcHNob3RDb25mbGljdEhvcml6b24sCisJ CQkJCQkJCQkJCXhscmVjLT5vbkNhdGFsb2dBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2Rpbmcs CiAJCQkJCQkJCQkJCXJsb2NhdG9yKTsKIAogCS8qCkBAIC05MTIwLDYgKzkxMjIsNyBAQCBo ZWFwX3hsb2dfZnJlZXplX3BhZ2UoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAKIAkJWExv Z1JlY0dldEJsb2NrVGFnKHJlY29yZCwgMCwgJnJsb2NhdG9yLCBOVUxMLCBOVUxMKTsKIAkJ UmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoeGxyZWMtPnNuYXBzaG90Q29u ZmxpY3RIb3Jpem9uLAorCQkJCQkJCQkJCQl4bHJlYy0+b25DYXRhbG9nQWNjZXNzaWJsZUlu TG9naWNhbERlY29kaW5nLAogCQkJCQkJCQkJCQlybG9jYXRvcik7CiAJfQogCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHhsb2cuYyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9uYnRyZWUvbmJ0eGxvZy5jCmluZGV4IDNlMzExYTk4YTYuLjYyODlmOGQyNTAg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0eGxvZy5jCisrKyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0eGxvZy5jCkBAIC02NjksNiArNjY5LDcg QEAgYnRyZWVfeGxvZ19kZWxldGUoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpCiAJCVhMb2dS ZWNHZXRCbG9ja1RhZyhyZWNvcmQsIDAsICZybG9jYXRvciwgTlVMTCwgTlVMTCk7CiAKIAkJ UmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoeGxyZWMtPnNuYXBzaG90Q29u ZmxpY3RIb3Jpem9uLAorCQkJCQkJCQkJCQl4bHJlYy0+b25DYXRhbG9nQWNjZXNzaWJsZUlu TG9naWNhbERlY29kaW5nLAogCQkJCQkJCQkJCQlybG9jYXRvcik7CiAJfQogCkBAIC0xMDA3 LDYgKzEwMDgsNyBAQCBidHJlZV94bG9nX3JldXNlX3BhZ2UoWExvZ1JlYWRlclN0YXRlICpy ZWNvcmQpCiAKIAlpZiAoSW5Ib3RTdGFuZGJ5KQogCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGlj dFdpdGhTbmFwc2hvdEZ1bGxYaWQoeGxyZWMtPnNuYXBzaG90Q29uZmxpY3RIb3Jpem9uLAor CQkJCQkJCQkJCQkJICAgeGxyZWMtPm9uQ2F0YWxvZ0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNv ZGluZywKIAkJCQkJCQkJCQkJCSAgIHhscmVjLT5sb2NhdG9yKTsKIH0KIApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd4bG9nLmMgYi9zcmMvYmFja2VuZC9h Y2Nlc3Mvc3BnaXN0L3NwZ3hsb2cuYwppbmRleCA0NGFkYzIwOThmLi42YWQ0NjcxMTdmIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3hsb2cuYworKysgYi9z cmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3hsb2cuYwpAQCAtODc5LDYgKzg3OSw3IEBA IHNwZ1JlZG9WYWN1dW1SZWRpcmVjdChYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAogCQlY TG9nUmVjR2V0QmxvY2tUYWcocmVjb3JkLCAwLCAmbG9jYXRvciwgTlVMTCwgTlVMTCk7CiAJ CVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KHhsZGF0YS0+c25hcHNob3RD b25mbGljdEhvcml6b24sCisJCQkJCQkJCQkJCXhsZGF0YS0+b25DYXRhbG9nQWNjZXNzaWJs ZUluTG9naWNhbERlY29kaW5nLAogCQkJCQkJCQkJCQlsb2NhdG9yKTsKIAl9CiAKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL3hsb2cuYwppbmRleCBhMzFmYmJmZjc4Li5lNDUwM2ZiMzZkIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKKysrIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCkBAIC03OTY3LDYgKzc5NjcsMTkgQEAg eGxvZ19yZWRvKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCQkvKiBVcGRhdGUgb3VyIGNv cHkgb2YgdGhlIHBhcmFtZXRlcnMgaW4gcGdfY29udHJvbCAqLwogCQltZW1jcHkoJnhscmVj LCBYTG9nUmVjR2V0RGF0YShyZWNvcmQpLCBzaXplb2YoeGxfcGFyYW1ldGVyX2NoYW5nZSkp OwogCisJCS8qCisJCSAqIEludmFsaWRhdGUgbG9naWNhbCBzbG90cyBpZiB3ZSBhcmUgaW4g aG90IHN0YW5kYnkgYW5kIHRoZSBwcmltYXJ5IGRvZXMgbm90CisJCSAqIGhhdmUgYSBXQUwg bGV2ZWwgc3VmZmljaWVudCBmb3IgbG9naWNhbCBkZWNvZGluZy4gTm8gbmVlZCB0byBzZWFy Y2gKKwkJICogZm9yIHBvdGVudGlhbGx5IGNvbmZsaWN0aW5nIGxvZ2ljYWxseSBzbG90cyBp ZiBzdGFuZGJ5IGlzIHJ1bm5pbmcKKwkJICogd2l0aCB3YWxfbGV2ZWwgbG93ZXIgdGhhbiBs b2dpY2FsLCBiZWNhdXNlIGluIHRoYXQgY2FzZSwgd2Ugd291bGQKKwkJICogaGF2ZSBlaXRo ZXIgZGlzYWxsb3dlZCBjcmVhdGlvbiBvZiBsb2dpY2FsIHNsb3RzIG9yIGludmFsaWRhdGVk IGV4aXN0aW5nCisJCSAqIG9uZXMuCisJCSAqLworCQlpZiAoSW5SZWNvdmVyeSAmJiBJbkhv dFN0YW5kYnkgJiYKKwkJCXhscmVjLndhbF9sZXZlbCA8IFdBTF9MRVZFTF9MT0dJQ0FMICYm CisJCQl3YWxfbGV2ZWwgPj0gV0FMX0xFVkVMX0xPR0lDQUwpCisJCQlJbnZhbGlkYXRlQ29u ZmxpY3RpbmdMb2dpY2FsUmVwbGljYXRpb25TbG90cyhJbnZhbGlkT2lkLEludmFsaWRUcmFu c2FjdGlvbklkKTsKKwogCQlMV0xvY2tBY3F1aXJlKENvbnRyb2xGaWxlTG9jaywgTFdfRVhD TFVTSVZFKTsKIAkJQ29udHJvbEZpbGUtPk1heENvbm5lY3Rpb25zID0geGxyZWMuTWF4Q29u bmVjdGlvbnM7CiAJCUNvbnRyb2xGaWxlLT5tYXhfd29ya2VyX3Byb2Nlc3NlcyA9IHhscmVj Lm1heF93b3JrZXJfcHJvY2Vzc2VzOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxv Zy9zeXN0ZW1fdmlld3Muc3FsIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Mu c3FsCmluZGV4IDJkODEwNGIwOTAuLjBlMGI4ZWY0MTUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNxbAorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9n L3N5c3RlbV92aWV3cy5zcWwKQEAgLTEwNjUsNyArMTA2NSw4IEBAIENSRUFURSBWSUVXIHBn X3N0YXRfZGF0YWJhc2VfY29uZmxpY3RzIEFTCiAgICAgICAgICAgICBwZ19zdGF0X2dldF9k Yl9jb25mbGljdF9sb2NrKEQub2lkKSBBUyBjb25mbF9sb2NrLAogICAgICAgICAgICAgcGdf c3RhdF9nZXRfZGJfY29uZmxpY3Rfc25hcHNob3QoRC5vaWQpIEFTIGNvbmZsX3NuYXBzaG90 LAogICAgICAgICAgICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3RfYnVmZmVycGluKEQub2lk KSBBUyBjb25mbF9idWZmZXJwaW4sCi0gICAgICAgICAgICBwZ19zdGF0X2dldF9kYl9jb25m bGljdF9zdGFydHVwX2RlYWRsb2NrKEQub2lkKSBBUyBjb25mbF9kZWFkbG9jaworICAgICAg ICAgICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3Rfc3RhcnR1cF9kZWFkbG9jayhELm9pZCkg QVMgY29uZmxfZGVhZGxvY2ssCisgICAgICAgICAgICBwZ19zdGF0X2dldF9kYl9jb25mbGlj dF9sb2dpY2Fsc2xvdChELm9pZCkgQVMgY29uZmxfYWN0aXZlX2xvZ2ljYWxzbG90CiAgICAg RlJPTSBwZ19kYXRhYmFzZSBEOwogCiBDUkVBVEUgVklFVyBwZ19zdGF0X3VzZXJfZnVuY3Rp b25zIEFTCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xv Z2ljYWxmdW5jcy5jIGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2Fs ZnVuY3MuYwppbmRleCA1YzIzMTc4NTcwLi44NDMyZGUyMTliIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWxmdW5jcy5jCisrKyBiL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbGZ1bmNzLmMKQEAgLTIxNiwxMSAr MjE2LDE0IEBAIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdlc19ndXRzKEZ1bmN0aW9uQ2Fs bEluZm8gZmNpbmZvLCBib29sIGNvbmZpcm0sIGJvb2wgYmluCiAKIAkJLyoKIAkJICogQWZ0 ZXIgdGhlIHNhbml0eSBjaGVja3MgaW4gQ3JlYXRlRGVjb2RpbmdDb250ZXh0LCBtYWtlIHN1 cmUgdGhlCi0JCSAqIHJlc3RhcnRfbHNuIGlzIHZhbGlkLiAgQXZvaWQgImNhbm5vdCBnZXQg Y2hhbmdlcyIgd29yZGluZyBpbiB0aGlzCisJCSAqIHJlc3RhcnRfbHNuIGlzIHZhbGlkIG9y IGJvdGggeG1pbiBhbmQgY2F0YWxvZ194bWluIGFyZSB2YWxpZC4KKwkJICogQXZvaWQgImNh bm5vdCBnZXQgY2hhbmdlcyIgd29yZGluZyBpbiB0aGlzCiAJCSAqIGVycm1zZyBiZWNhdXNl IHRoYXQnZCBiZSBjb25mdXNpbmdseSBhbWJpZ3VvdXMgYWJvdXQgbm8gY2hhbmdlcwogCQkg KiBiZWluZyBhdmFpbGFibGUuCiAJCSAqLwotCQlpZiAoWExvZ1JlY1B0cklzSW52YWxpZChN eVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS5yZXN0YXJ0X2xzbikpCisJCWlmIChYTG9nUmVjUHRy SXNJbnZhbGlkKE15UmVwbGljYXRpb25TbG90LT5kYXRhLnJlc3RhcnRfbHNuKQorCQkJfHwg KCFUcmFuc2FjdGlvbklkSXNWYWxpZChNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS54bWluKQor CQkJCSYmICFUcmFuc2FjdGlvbklkSXNWYWxpZChNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS5j YXRhbG9nX3htaW4pKSkKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNP REVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAogCQkJCQkgZXJybXNnKCJj YW4gbm8gbG9uZ2VyIGdldCBjaGFuZ2VzIGZyb20gcmVwbGljYXRpb24gc2xvdCBcIiVzXCIi LApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vc2xvdC5jIGIvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vc2xvdC5jCmluZGV4IDg5OWFjZmQ5MTIuLjZhNGUyY2QxOWIg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYworKysgYi9zcmMv YmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKQEAgLTE0MzIsNiArMTQzMiwyMTUgQEAgcmVz dGFydDoKIAlyZXR1cm4gaW52YWxpZGF0ZWQ7CiB9CiAKKy8qCisgKiBIZWxwZXIgZm9yIElu dmFsaWRhdGVDb25mbGljdGluZ0xvZ2ljYWxSZXBsaWNhdGlvblNsb3QgLS0gYWNxdWlyZXMg dGhlIGdpdmVuIHNsb3QKKyAqIGFuZCBtYXJrIGl0IGludmFsaWQsIGlmIG5lY2Vzc2FyeSBh bmQgcG9zc2libGUuCisgKgorICogUmV0dXJucyB3aGV0aGVyIFJlcGxpY2F0aW9uU2xvdENv bnRyb2xMb2NrIHdhcyByZWxlYXNlZCBpbiB0aGUgaW50ZXJpbSAoYW5kCisgKiBpbiB0aGF0 IGNhc2Ugd2UncmUgbm90IGhvbGRpbmcgdGhlIGxvY2sgYXQgcmV0dXJuLCBvdGhlcndpc2Ug d2UgYXJlKS4KKyAqCisgKiBUaGlzIGlzIGluaGVyZW50bHkgcmFjeSwgYmVjYXVzZSB3ZSBy ZWxlYXNlIHRoZSBMV0xvY2sKKyAqIGZvciBzeXNjYWxscywgc28gY2FsbGVyIG11c3QgcmVz dGFydCBpZiB3ZSByZXR1cm4gdHJ1ZS4KKyAqLworc3RhdGljIGJvb2wKK0ludmFsaWRhdGVQ b3NzaWJseUNvbmZsaWN0aW5nTG9naWNhbFJlcGxpY2F0aW9uU2xvdChSZXBsaWNhdGlvblNs b3QgKnMsIFRyYW5zYWN0aW9uSWQgeGlkKQoreworCWludAkJbGFzdF9zaWduYWxlZF9waWQg PSAwOworCWJvb2wJcmVsZWFzZWRfbG9jayA9IGZhbHNlOworCisJZm9yICg7OykKKwl7CisJ CVRyYW5zYWN0aW9uSWQgc2xvdF94bWluOworCQlUcmFuc2FjdGlvbklkIHNsb3RfY2F0YWxv Z194bWluOworCQlOYW1lRGF0YQlzbG90bmFtZTsKKwkJaW50CQkJYWN0aXZlX3BpZCA9IDA7 CisKKwkJQXNzZXJ0KExXTG9ja0hlbGRCeU1lSW5Nb2RlKFJlcGxpY2F0aW9uU2xvdENvbnRy b2xMb2NrLCBMV19TSEFSRUQpKTsKKworCQlpZiAoIXMtPmluX3VzZSkKKwkJeworCQkJaWYg KHJlbGVhc2VkX2xvY2spCisJCQkJTFdMb2NrUmVsZWFzZShSZXBsaWNhdGlvblNsb3RDb250 cm9sTG9jayk7CisJCQlicmVhazsKKwkJfQorCisJCS8qCisJCSAqIENoZWNrIGlmIHRoZSBz bG90IG5lZWRzIHRvIGJlIGludmFsaWRhdGVkLiBJZiBpdCBuZWVkcyB0byBiZQorCQkgKiBp bnZhbGlkYXRlZCwgYW5kIGlzIG5vdCBjdXJyZW50bHkgYWNxdWlyZWQsIGFjcXVpcmUgaXQg YW5kIG1hcmsgaXQKKwkJICogYXMgaGF2aW5nIGJlZW4gaW52YWxpZGF0ZWQuIFdlIGRvIHRo aXMgd2l0aCB0aGUgc3BpbmxvY2sgaGVsZCB0bworCQkgKiBhdm9pZCByYWNlIGNvbmRpdGlv bnMgLS0gZm9yIGV4YW1wbGUgdGhlIHhtaW4ocykgY291bGQgbW92ZSBmb3J3YXJkCisJCSAq ICwgb3IgdGhlIHNsb3QgY291bGQgYmUgZHJvcHBlZC4KKwkJICovCisJCVNwaW5Mb2NrQWNx dWlyZSgmcy0+bXV0ZXgpOworCisJCXNsb3RfeG1pbiA9IHMtPmRhdGEueG1pbjsKKwkJc2xv dF9jYXRhbG9nX3htaW4gPSBzLT5kYXRhLmNhdGFsb2dfeG1pbjsKKworCQkvKgorCQkgKiBJ ZiB0aGUgc2xvdCBpcyBhbHJlYWR5IGludmFsaWQgb3IgaXMgbm90IGNvbmZsaWN0aW5nLCB3 ZSBkb24ndCBuZWVkIHRvCisJCSAqIGRvIGFueXRoaW5nLgorCQkgKi8KKworCQkvKiBzbG90 IGhhcyBiZWVuIGludmFsaWRhdGVkICovCisJCWlmICgoIVRyYW5zYWN0aW9uSWRJc1ZhbGlk KHNsb3RfeG1pbikgJiYgIVRyYW5zYWN0aW9uSWRJc1ZhbGlkKHNsb3RfY2F0YWxvZ194bWlu KSkKKwkJCXx8CisJCS8qCisJCSAqIHdlIGFyZSBub3QgZm9yY2luZyBmb3IgaW52YWxpZGF0 aW9uIGJlY2F1c2UgdGhlIHhpZCBpcyB2YWxpZAorCQkgKiBhbmQgdGhpcyBpcyBhIG5vbiBj b25mbGljdGluZyBzbG90CisJCSAqLworCQkJKFRyYW5zYWN0aW9uSWRJc1ZhbGlkKHhpZCkg JiYgISgKKwkJCQkoVHJhbnNhY3Rpb25JZElzVmFsaWQoc2xvdF94bWluKSAmJiBUcmFuc2Fj dGlvbklkUHJlY2VkZXNPckVxdWFscyhzbG90X3htaW4sIHhpZCkpCisJCQkJfHwKKwkJCQko VHJhbnNhY3Rpb25JZElzVmFsaWQoc2xvdF9jYXRhbG9nX3htaW4pICYmIFRyYW5zYWN0aW9u SWRQcmVjZWRlc09yRXF1YWxzKHNsb3RfY2F0YWxvZ194bWluLCB4aWQpKQorCQkJCSkpCisJ CQkpCisJCXsKKwkJCVNwaW5Mb2NrUmVsZWFzZSgmcy0+bXV0ZXgpOworCQkJaWYgKHJlbGVh c2VkX2xvY2spCisJCQkJTFdMb2NrUmVsZWFzZShSZXBsaWNhdGlvblNsb3RDb250cm9sTG9j ayk7CisJCQlicmVhazsKKwkJfQorCisJCXNsb3RuYW1lID0gcy0+ZGF0YS5uYW1lOworCQlh Y3RpdmVfcGlkID0gcy0+YWN0aXZlX3BpZDsKKworCQkvKgorCQkgKiBJZiB0aGUgc2xvdCBj YW4gYmUgYWNxdWlyZWQsIGRvIHNvIGFuZCBtYXJrIGl0IGludmFsaWRhdGVkCisJCSAqIGlt bWVkaWF0ZWx5LiAgT3RoZXJ3aXNlIHdlJ2xsIHNpZ25hbCB0aGUgb3duaW5nIHByb2Nlc3Ms IGJlbG93LCBhbmQKKwkJICogcmV0cnkuCisJCSAqLworCQlpZiAoYWN0aXZlX3BpZCA9PSAw KQorCQl7CisJCQlNeVJlcGxpY2F0aW9uU2xvdCA9IHM7CisJCQlzLT5hY3RpdmVfcGlkID0g TXlQcm9jUGlkOworCQkJcy0+ZGF0YS54bWluID0gSW52YWxpZFRyYW5zYWN0aW9uSWQ7CisJ CQlzLT5kYXRhLmNhdGFsb2dfeG1pbiA9IEludmFsaWRUcmFuc2FjdGlvbklkOworCQl9CisK KwkJU3BpbkxvY2tSZWxlYXNlKCZzLT5tdXRleCk7CisKKwkJaWYgKGFjdGl2ZV9waWQgIT0g MCkKKwkJeworCQkJLyoKKwkJCSAqIFByZXBhcmUgdGhlIHNsZWVwIG9uIHRoZSBzbG90J3Mg Y29uZGl0aW9uIHZhcmlhYmxlIGJlZm9yZQorCQkJICogcmVsZWFzaW5nIHRoZSBsb2NrLCB0 byBjbG9zZSBhIHBvc3NpYmxlIHJhY2UgY29uZGl0aW9uIGlmIHRoZQorCQkJICogc2xvdCBp cyByZWxlYXNlZCBiZWZvcmUgdGhlIHNsZWVwIGJlbG93LgorCQkJICovCisKKwkJCUNvbmRp dGlvblZhcmlhYmxlUHJlcGFyZVRvU2xlZXAoJnMtPmFjdGl2ZV9jdik7CisKKwkJCUxXTG9j a1JlbGVhc2UoUmVwbGljYXRpb25TbG90Q29udHJvbExvY2spOworCQkJcmVsZWFzZWRfbG9j ayA9IHRydWU7CisKKwkJCS8qCisJCQkgKiBTaWduYWwgdG8gdGVybWluYXRlIHRoZSBwcm9j ZXNzIHRoYXQgb3ducyB0aGUgc2xvdCwgaWYgd2UKKwkJCSAqIGhhdmVuJ3QgYWxyZWFkeSBz aWduYWxsZWQgaXQuICAoQXZvaWRhbmNlIG9mIHJlcGVhdGVkCisJCQkgKiBzaWduYWxsaW5n IGlzIHRoZSBvbmx5IHJlYXNvbiBmb3IgdGhlcmUgdG8gYmUgYSBsb29wIGluIHRoaXMKKwkJ CSAqIHJvdXRpbmU7IG90aGVyd2lzZSB3ZSBjb3VsZCByZWx5IG9uIGNhbGxlcidzIHJlc3Rh cnQgbG9vcC4pCisJCQkgKgorCQkJICogVGhlcmUgaXMgdGhlIHJhY2UgY29uZGl0aW9uIHRo YXQgb3RoZXIgcHJvY2VzcyBtYXkgb3duIHRoZSBzbG90CisJCQkgKiBhZnRlciBpdHMgY3Vy cmVudCBvd25lciBwcm9jZXNzIGlzIHRlcm1pbmF0ZWQgYW5kIGJlZm9yZSB0aGlzCisJCQkg KiBwcm9jZXNzIG93bnMgaXQuIFRvIGhhbmRsZSB0aGF0LCB3ZSBzaWduYWwgb25seSBpZiB0 aGUgUElEIG9mCisJCQkgKiB0aGUgb3duaW5nIHByb2Nlc3MgaGFzIGNoYW5nZWQgZnJvbSB0 aGUgcHJldmlvdXMgdGltZS4gKFRoaXMKKwkJCSAqIGxvZ2ljIGFzc3VtZXMgdGhhdCB0aGUg c2FtZSBQSUQgaXMgbm90IHJldXNlZCB2ZXJ5IHF1aWNrbHkuKQorCQkJICovCisJCQlpZiAo bGFzdF9zaWduYWxlZF9waWQgIT0gYWN0aXZlX3BpZCkKKwkJCXsKKwkJCQllcmVwb3J0KExP RywKKwkJCQkJCShlcnJtc2coInRlcm1pbmF0aW5nIHByb2Nlc3MgJWQgYmVjYXVzZSByZXBs aWNhdGlvbiBzbG90IFwiJXNcIiBjb25mbGljdHMgd2l0aCByZWNvdmVyeSIsCisJCQkJCQkJ CWFjdGl2ZV9waWQsIE5hbWVTdHIoc2xvdG5hbWUpKSkpOworCisJCQkJKHZvaWQpIFNlbmRQ cm9jU2lnbmFsKGFjdGl2ZV9waWQsIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNB TFNMT1QsIEludmFsaWRCYWNrZW5kSWQpOworCQkJCWxhc3Rfc2lnbmFsZWRfcGlkID0gYWN0 aXZlX3BpZDsKKwkJCX0KKworCQkJLyogV2FpdCB1bnRpbCB0aGUgc2xvdCBpcyByZWxlYXNl ZC4gKi8KKwkJCUNvbmRpdGlvblZhcmlhYmxlU2xlZXAoJnMtPmFjdGl2ZV9jdiwKKwkJCQkJ CQkJCVdBSVRfRVZFTlRfUkVQTElDQVRJT05fU0xPVF9EUk9QKTsKKworCQkJLyoKKwkJCSAq IFJlLWFjcXVpcmUgbG9jayBhbmQgc3RhcnQgb3Zlcjsgd2UgZXhwZWN0IHRvIGludmFsaWRh dGUgdGhlCisJCQkgKiBzbG90IG5leHQgdGltZSAodW5sZXNzIGFub3RoZXIgcHJvY2VzcyBh Y3F1aXJlcyB0aGUgc2xvdCBpbiB0aGUKKwkJCSAqIG1lYW50aW1lKS4KKwkJCSAqLworCQkJ TFdMb2NrQWNxdWlyZShSZXBsaWNhdGlvblNsb3RDb250cm9sTG9jaywgTFdfU0hBUkVEKTsK KwkJCWNvbnRpbnVlOworCQl9CisJCWVsc2UKKwkJeworCQkJLyoKKwkJCSAqIFdlIGhvbGQg dGhlIHNsb3Qgbm93IGFuZCBoYXZlIGFscmVhZHkgaW52YWxpZGF0ZWQgaXQ7IGZsdXNoIGl0 CisJCQkgKiB0byBlbnN1cmUgdGhhdCBzdGF0ZSBwZXJzaXN0cy4KKwkJCSAqCisJCQkgKiBE b24ndCB3YW50IHRvIGhvbGQgUmVwbGljYXRpb25TbG90Q29udHJvbExvY2sgYWNyb3NzIGZp bGUKKwkJCSAqIHN5c3RlbSBvcGVyYXRpb25zLCBzbyByZWxlYXNlIGl0IG5vdyBidXQgYmUg c3VyZSB0byB0ZWxsIGNhbGxlcgorCQkJICogdG8gcmVzdGFydCBmcm9tIHNjcmF0Y2guCisJ CQkgKi8KKwkJCUxXTG9ja1JlbGVhc2UoUmVwbGljYXRpb25TbG90Q29udHJvbExvY2spOwor CQkJcmVsZWFzZWRfbG9jayA9IHRydWU7CisKKwkJCS8qIE1ha2Ugc3VyZSB0aGUgaW52YWxp ZGF0ZWQgc3RhdGUgcGVyc2lzdHMgYWNyb3NzIHNlcnZlciByZXN0YXJ0ICovCisJCQlSZXBs aWNhdGlvblNsb3RNYXJrRGlydHkoKTsKKwkJCVJlcGxpY2F0aW9uU2xvdFNhdmUoKTsKKwkJ CVJlcGxpY2F0aW9uU2xvdFJlbGVhc2UoKTsKKwkJCXBnc3RhdF9kcm9wX3JlcGxzbG90KHMp OworCisJCQllcmVwb3J0KExPRywKKwkJCQkJKGVycm1zZygiaW52YWxpZGF0aW5nIHNsb3Qg XCIlc1wiIGJlY2F1c2UgaXQgY29uZmxpY3RzIHdpdGggcmVjb3ZlcnkiLCBOYW1lU3RyKHNs b3RuYW1lKSkpKTsKKworCQkJLyogZG9uZSB3aXRoIHRoaXMgc2xvdCBmb3Igbm93ICovCisJ CQlicmVhazsKKwkJfQorCX0KKworCUFzc2VydCghcmVsZWFzZWRfbG9jayA9PSBMV0xvY2tI ZWxkQnlNZUluTW9kZShSZXBsaWNhdGlvblNsb3RDb250cm9sTG9jaywgTFdfU0hBUkVEKSk7 CisKKwlyZXR1cm4gcmVsZWFzZWRfbG9jazsKK30KKworLyoKKyAqIFJlc29sdmUgcmVjb3Zl cnkgY29uZmxpY3RzIHdpdGggbG9naWNhbCBzbG90cy4KKyAqCisgKiBXaGVuIHhpZCBpcyB2 YWxpZCwgaXQgbWVhbnMgdGhhdCB3ZSBhcmUgYWJvdXQgdG8gcmVtb3ZlIHJvd3Mgb2xkZXIg dGhhbiB4aWQuCisgKiBUaGVyZWZvcmUgd2UgbmVlZCB0byBpbnZhbGlkYXRlIHNsb3RzIHRo YXQgZGVwZW5kIG9uIHNlZWluZyB0aG9zZSByb3dzLgorICogV2hlbiB4aWQgaXMgaW52YWxp ZCwgaW52YWxpZGF0ZSBhbGwgbG9naWNhbCBzbG90cy4gVGhpcyBpcyByZXF1aXJlZCB3aGVu IHRoZQorICogbWFzdGVyIHdhbF9sZXZlbCBpcyBzZXQgYmFjayB0byByZXBsaWNhLCBzbyBl eGlzdGluZyBsb2dpY2FsIHNsb3RzIG5lZWQgdG8KKyAqIGJlIGludmFsaWRhdGVkLgorICov Cit2b2lkCitJbnZhbGlkYXRlQ29uZmxpY3RpbmdMb2dpY2FsUmVwbGljYXRpb25TbG90cyhP aWQgZGJvaWQsIFRyYW5zYWN0aW9uSWQgeGlkKQoreworCisJQXNzZXJ0KG1heF9yZXBsaWNh dGlvbl9zbG90cyA+PSAwKTsKKworCWlmIChtYXhfcmVwbGljYXRpb25fc2xvdHMgPT0gMCkK KwkJcmV0dXJuOworcmVzdGFydDoKKwlMV0xvY2tBY3F1aXJlKFJlcGxpY2F0aW9uU2xvdENv bnRyb2xMb2NrLCBMV19TSEFSRUQpOworCWZvciAoaW50IGkgPSAwOyBpIDwgbWF4X3JlcGxp Y2F0aW9uX3Nsb3RzOyBpKyspCisJeworCQlSZXBsaWNhdGlvblNsb3QgKnMgPSAmUmVwbGlj YXRpb25TbG90Q3RsLT5yZXBsaWNhdGlvbl9zbG90c1tpXTsKKworCQlpZiAoIXMtPmluX3Vz ZSkKKwkJCWNvbnRpbnVlOworCisJCS8qIFdlIGFyZSBvbmx5IGRlYWxpbmcgd2l0aCAqbG9n aWNhbCogc2xvdCBjb25mbGljdHMuICovCisJCWlmICghU2xvdElzTG9naWNhbChzKSkKKwkJ CWNvbnRpbnVlOworCisJCS8qIG5vdCBvdXIgZGF0YWJhc2UgYW5kIHdlIGRvbid0IHdhbnQg YWxsIHRoZSBkYXRhYmFzZSwgc2tpcCAqLworCQlpZiAocy0+ZGF0YS5kYXRhYmFzZSAhPSBk Ym9pZCAmJiBUcmFuc2FjdGlvbklkSXNWYWxpZCh4aWQpKQorCQkJY29udGludWU7CisKKwkJ aWYgKEludmFsaWRhdGVQb3NzaWJseUNvbmZsaWN0aW5nTG9naWNhbFJlcGxpY2F0aW9uU2xv dChzLCB4aWQpKQorCQl7CisJCQkvKiBpZiB0aGUgbG9jayB3YXMgcmVsZWFzZWQsIHdlIG5l ZWQgdG8gcmVzdGFydCBmcm9tIHNjcmF0Y2ggKi8KKwkJCWdvdG8gcmVzdGFydDsKKwkJfQor CX0KKwlMV0xvY2tSZWxlYXNlKFJlcGxpY2F0aW9uU2xvdENvbnRyb2xMb2NrKTsKK30KKwog LyoKICAqIEZsdXNoIGFsbCByZXBsaWNhdGlvbiBzbG90cyB0byBkaXNrLgogICoKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jIGIvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMKaW5kZXggYzExYmIzNzE2Zi4uNjRmYmQ1MmUz NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMKKysr IGIvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmMKQEAgLTEyNTMsNiArMTI1 MywxNCBAQCBTdGFydExvZ2ljYWxSZXBsaWNhdGlvbihTdGFydFJlcGxpY2F0aW9uQ21kICpj bWQpCiAKIAlSZXBsaWNhdGlvblNsb3RBY3F1aXJlKGNtZC0+c2xvdG5hbWUsIHRydWUpOwog CisJaWYgKCFUcmFuc2FjdGlvbklkSXNWYWxpZChNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS54 bWluKQorCQkgJiYgIVRyYW5zYWN0aW9uSWRJc1ZhbGlkKE15UmVwbGljYXRpb25TbG90LT5k YXRhLmNhdGFsb2dfeG1pbikpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJS Q09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCisJCQkJIGVycm1zZygi Y2Fubm90IHJlYWQgZnJvbSBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIiwKKwkJ CQkJCWNtZC0+c2xvdG5hbWUpLAorCQkJCSBlcnJkZXRhaWwoIlRoaXMgc2xvdCBoYXMgYmVl biBpbnZhbGlkYXRlZCBiZWNhdXNlIGl0IHdhcyBjb25mbGljdGluZyB3aXRoIHJlY292ZXJ5 LiIpKSk7CisKIAlpZiAoWExvZ1JlY1B0cklzSW52YWxpZChNeVJlcGxpY2F0aW9uU2xvdC0+ ZGF0YS5yZXN0YXJ0X2xzbikpCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJS Q09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lURV9TVEFURSksCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jYXJyYXkuYyBiL3NyYy9iYWNrZW5kL3N0b3Jh Z2UvaXBjL3Byb2NhcnJheS5jCmluZGV4IDAxNzZmMzAyNzAuLmQ2OGI3NTJjOTEgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NhcnJheS5jCisrKyBiL3NyYy9i YWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NhcnJheS5jCkBAIC0zNDc3LDYgKzM0NzcsMTAgQEAg U2lnbmFsVmlydHVhbFRyYW5zYWN0aW9uKFZpcnR1YWxUcmFuc2FjdGlvbklkIHZ4aWQsIFBy b2NTaWduYWxSZWFzb24gc2lnbW9kZSwKIAogCQlHRVRfVlhJRF9GUk9NX1BHUFJPQyhwcm9j dnhpZCwgKnByb2MpOwogCisJCS8qCisJCSAqIE5vdGU6IHZ4aWQubG9jYWxUcmFuc2FjdGlv bklkIGNhbiBiZSBpbnZhbGlkLCB3aGljaCBtZWFucyB0aGUKKwkJICogcmVxdWVzdCBpcyB0 byBzaWduYWwgdGhlIHBpZCB0aGF0IGlzIG5vdCBydW5uaW5nIGEgdHJhbnNhY3Rpb24uCisJ CSAqLwogCQlpZiAocHJvY3Z4aWQuYmFja2VuZElkID09IHZ4aWQuYmFja2VuZElkICYmCiAJ CQlwcm9jdnhpZC5sb2NhbFRyYW5zYWN0aW9uSWQgPT0gdnhpZC5sb2NhbFRyYW5zYWN0aW9u SWQpCiAJCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NzaWdu YWwuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NzaWduYWwuYwppbmRleCA3NzY3 NjU3ZjI3Li4xYjNiZjk0M2MxIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lw Yy9wcm9jc2lnbmFsLmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY3NpZ25h bC5jCkBAIC02NjksNiArNjY5LDkgQEAgcHJvY3NpZ25hbF9zaWd1c3IxX2hhbmRsZXIoU0lH TkFMX0FSR1MpCiAJaWYgKENoZWNrUHJvY1NpZ25hbChQUk9DU0lHX1JFQ09WRVJZX0NPTkZM SUNUX1NOQVBTSE9UKSkKIAkJUmVjb3ZlcnlDb25mbGljdEludGVycnVwdChQUk9DU0lHX1JF Q09WRVJZX0NPTkZMSUNUX1NOQVBTSE9UKTsKIAorCWlmIChDaGVja1Byb2NTaWduYWwoUFJP Q1NJR19SRUNPVkVSWV9DT05GTElDVF9MT0dJQ0FMU0xPVCkpCisJCVJlY292ZXJ5Q29uZmxp Y3RJbnRlcnJ1cHQoUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9MT0dJQ0FMU0xPVCk7CisK IAlpZiAoQ2hlY2tQcm9jU2lnbmFsKFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfU1RBUlRV UF9ERUFETE9DSykpCiAJCVJlY292ZXJ5Q29uZmxpY3RJbnRlcnJ1cHQoUFJPQ1NJR19SRUNP VkVSWV9DT05GTElDVF9TVEFSVFVQX0RFQURMT0NLKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvc3RvcmFnZS9pcGMvc3RhbmRieS5jIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMv c3RhbmRieS5jCmluZGV4IGY0MzIyOWRmZGEuLjU1Mzk1Mzk1OWQgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYworKysgYi9zcmMvYmFja2VuZC9zdG9y YWdlL2lwYy9zdGFuZGJ5LmMKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJ1dGlscy9w c19zdGF0dXMuaCIKICNpbmNsdWRlICJ1dGlscy90aW1lb3V0LmgiCiAjaW5jbHVkZSAidXRp bHMvdGltZXN0YW1wLmgiCisjaW5jbHVkZSAicmVwbGljYXRpb24vc2xvdC5oIgogCiAvKiBV c2VyLXNldHRhYmxlIEdVQyBwYXJhbWV0ZXJzICovCiBpbnQJCQl2YWN1dW1fZGVmZXJfY2xl YW51cF9hZ2U7CkBAIC00NzUsNiArNDc2LDcgQEAgUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RX aXRoVmlydHVhbFhJRHMoVmlydHVhbFRyYW5zYWN0aW9uSWQgKndhaXRsaXN0LAogICovCiB2 b2lkCiBSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdChUcmFuc2FjdGlvbklk IHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uLAorCQkJCQkJCQkJYm9vbCBvbkNhdGFsb2dBY2Nl c3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcsCiAJCQkJCQkJCQlSZWxGaWxlTG9jYXRvciBsb2Nh dG9yKQogewogCVZpcnR1YWxUcmFuc2FjdGlvbklkICpiYWNrZW5kczsKQEAgLTQ5OSw2ICs1 MDEsOSBAQCBSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdChUcmFuc2FjdGlv bklkIHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uLAogCQkJCQkJCQkJCSAgIFBST0NTSUdfUkVD T1ZFUllfQ09ORkxJQ1RfU05BUFNIT1QsCiAJCQkJCQkJCQkJICAgV0FJVF9FVkVOVF9SRUNP VkVSWV9DT05GTElDVF9TTkFQU0hPVCwKIAkJCQkJCQkJCQkgICB0cnVlKTsKKworCWlmIChv bkNhdGFsb2dBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcpCisJCUludmFsaWRhdGVDb25m bGljdGluZ0xvZ2ljYWxSZXBsaWNhdGlvblNsb3RzKGxvY2F0b3IuZGJPaWQsIHNuYXBzaG90 Q29uZmxpY3RIb3Jpem9uKTsKIH0KIAogLyoKQEAgLTUwNyw2ICs1MTIsNyBAQCBSZXNvbHZl UmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdChUcmFuc2FjdGlvbklkIHNuYXBzaG90Q29u ZmxpY3RIb3Jpem9uLAogICovCiB2b2lkCiBSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhT bmFwc2hvdEZ1bGxYaWQoRnVsbFRyYW5zYWN0aW9uSWQgc25hcHNob3RDb25mbGljdEhvcml6 b24sCisJCQkJCQkJCQkJICAgYm9vbCBvbkNhdGFsb2dBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVj b2RpbmcsCiAJCQkJCQkJCQkJICAgUmVsRmlsZUxvY2F0b3IgbG9jYXRvcikKIHsKIAkvKgpA QCAtNTI1LDcgKzUzMSw5IEBAIFJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90 RnVsbFhpZChGdWxsVHJhbnNhY3Rpb25JZCBzbmFwc2hvdENvbmZsaWN0SG9yCiAJCVRyYW5z YWN0aW9uSWQgdHJ1bmNhdGVkOwogCiAJCXRydW5jYXRlZCA9IFhpZEZyb21GdWxsVHJhbnNh Y3Rpb25JZChzbmFwc2hvdENvbmZsaWN0SG9yaXpvbik7Ci0JCVJlc29sdmVSZWNvdmVyeUNv bmZsaWN0V2l0aFNuYXBzaG90KHRydW5jYXRlZCwgbG9jYXRvcik7CisJCVJlc29sdmVSZWNv dmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KHRydW5jYXRlZCwKKwkJCQkJCQkJCQkJb25DYXRh bG9nQWNjZXNzaWJsZUluTG9naWNhbERlY29kaW5nLAorCQkJCQkJCQkJCQlsb2NhdG9yKTsK IAl9CiB9CiAKQEAgLTE0ODYsNiArMTQ5NCw5IEBAIGdldF9yZWNvdmVyeV9jb25mbGljdF9k ZXNjKFByb2NTaWduYWxSZWFzb24gcmVhc29uKQogCQljYXNlIFBST0NTSUdfUkVDT1ZFUllf Q09ORkxJQ1RfU05BUFNIT1Q6CiAJCQlyZWFzb25EZXNjID0gXygicmVjb3ZlcnkgY29uZmxp Y3Qgb24gc25hcHNob3QiKTsKIAkJCWJyZWFrOworCQljYXNlIFBST0NTSUdfUkVDT1ZFUllf Q09ORkxJQ1RfTE9HSUNBTFNMT1Q6CisJCQlyZWFzb25EZXNjID0gXygicmVjb3ZlcnkgY29u ZmxpY3Qgb24gcmVwbGljYXRpb24gc2xvdCIpOworCQkJYnJlYWs7CiAJCWNhc2UgUFJPQ1NJ R19SRUNPVkVSWV9DT05GTElDVF9TVEFSVFVQX0RFQURMT0NLOgogCQkJcmVhc29uRGVzYyA9 IF8oInJlY292ZXJ5IGNvbmZsaWN0IG9uIGJ1ZmZlciBkZWFkbG9jayIpOwogCQkJYnJlYWs7 CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3Bvc3RncmVzLmMgYi9zcmMvYmFja2Vu ZC90Y29wL3Bvc3RncmVzLmMKaW5kZXggMzA4MjA5M2QxZS4uZDkwMGVlZDlmNCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jCisrKyBiL3NyYy9iYWNrZW5kL3Rj b3AvcG9zdGdyZXMuYwpAQCAtMjQ3MCw2ICsyNDcwLDkgQEAgZXJyZGV0YWlsX3JlY292ZXJ5 X2NvbmZsaWN0KHZvaWQpCiAJCWNhc2UgUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9TTkFQ U0hPVDoKIAkJCWVycmRldGFpbCgiVXNlciBxdWVyeSBtaWdodCBoYXZlIG5lZWRlZCB0byBz ZWUgcm93IHZlcnNpb25zIHRoYXQgbXVzdCBiZSByZW1vdmVkLiIpOwogCQkJYnJlYWs7CisJ CWNhc2UgUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9MT0dJQ0FMU0xPVDoKKwkJCWVycmRl dGFpbCgiVXNlciB3YXMgdXNpbmcgdGhlIGxvZ2ljYWwgc2xvdCB0aGF0IG11c3QgYmUgZHJv cHBlZC4iKTsKKwkJCWJyZWFrOwogCQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1Rf U1RBUlRVUF9ERUFETE9DSzoKIAkJCWVycmRldGFpbCgiVXNlciB0cmFuc2FjdGlvbiBjYXVz ZWQgYnVmZmVyIGRlYWRsb2NrIHdpdGggcmVjb3ZlcnkuIik7CiAJCQlicmVhazsKQEAgLTMw MzksNiArMzA0MiwyNSBAQCBSZWNvdmVyeUNvbmZsaWN0SW50ZXJydXB0KFByb2NTaWduYWxS ZWFzb24gcmVhc29uKQogCQkJY2FzZSBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX0xPQ0s6 CiAJCQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfVEFCTEVTUEFDRToKIAkJCWNh c2UgUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9TTkFQU0hPVDoKKwkJCWNhc2UgUFJPQ1NJ R19SRUNPVkVSWV9DT05GTElDVF9MT0dJQ0FMU0xPVDoKKwkJCQkvKgorCQkJCSAqIEZvciBj b25mbGljdHMgdGhhdCByZXF1aXJlIGEgbG9naWNhbCBzbG90IHRvIGJlIGludmFsaWRhdGVk LCB0aGUKKwkJCQkgKiByZXF1aXJlbWVudCBpcyBmb3IgdGhlIHNpZ25hbCByZWNlaXZlciB0 byByZWxlYXNlIHRoZSBzbG90LAorCQkJCSAqIHNvIHRoYXQgaXQgY291bGQgYmUgaW52YWxp ZGF0ZWQgYnkgdGhlIHNpZ25hbCBzZW5kZXIuIFNvIGZvcgorCQkJCSAqIG5vcm1hbCBiYWNr ZW5kcywgdGhlIHRyYW5zYWN0aW9uIHNob3VsZCBiZSBhYm9ydGVkLCBqdXN0CisJCQkJICog bGlrZSBmb3Igb3RoZXIgcmVjb3ZlcnkgY29uZmxpY3RzLiBCdXQgaWYgaXQncyB3YWxzZW5k ZXIgb24KKwkJCQkgKiBzdGFuZGJ5LCB0aGVuIGl0IGhhcyB0byBiZSBraWxsZWQgc28gYXMg dG8gcmVsZWFzZSBhbgorCQkJCSAqIGFjcXVpcmVkIGxvZ2ljYWwgc2xvdC4KKwkJCQkgKi8K KwkJCQlpZiAoYW1fY2FzY2FkaW5nX3dhbHNlbmRlciAmJgorCQkJCQlyZWFzb24gPT0gUFJP Q1NJR19SRUNPVkVSWV9DT05GTElDVF9MT0dJQ0FMU0xPVCAmJgorCQkJCQlNeVJlcGxpY2F0 aW9uU2xvdCAmJiBTbG90SXNMb2dpY2FsKE15UmVwbGljYXRpb25TbG90KSkKKwkJCQl7CisJ CQkJCVJlY292ZXJ5Q29uZmxpY3RQZW5kaW5nID0gdHJ1ZTsKKwkJCQkJUXVlcnlDYW5jZWxQ ZW5kaW5nID0gdHJ1ZTsKKwkJCQkJSW50ZXJydXB0UGVuZGluZyA9IHRydWU7CisJCQkJCWJy ZWFrOworCQkJCX0KIAogCQkJCS8qCiAJCQkJICogSWYgd2UgYXJlbid0IGluIGEgdHJhbnNh Y3Rpb24gYW55IGxvbmdlciB0aGVuIGlnbm9yZS4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9kYXRhYmFzZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMv YWN0aXZpdHkvcGdzdGF0X2RhdGFiYXNlLmMKaW5kZXggMjkwMDg2ZmMyMi4uN2E4OTA5ZDhi OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X2RhdGFi YXNlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvcGdzdGF0X2RhdGFiYXNl LmMKQEAgLTEwOSw2ICsxMDksOSBAQCBwZ3N0YXRfcmVwb3J0X3JlY292ZXJ5X2NvbmZsaWN0 KGludCByZWFzb24pCiAJCWNhc2UgUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9CVUZGRVJQ SU46CiAJCQlkYmVudHJ5LT5jb25mbGljdF9idWZmZXJwaW4rKzsKIAkJCWJyZWFrOworCQlj YXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNMT1Q6CisJCQlkYmVudHJ5 LT5jb25mbGljdF9sb2dpY2Fsc2xvdCsrOworCQkJYnJlYWs7CiAJCWNhc2UgUFJPQ1NJR19S RUNPVkVSWV9DT05GTElDVF9TVEFSVFVQX0RFQURMT0NLOgogCQkJZGJlbnRyeS0+Y29uZmxp Y3Rfc3RhcnR1cF9kZWFkbG9jaysrOwogCQkJYnJlYWs7CkBAIC0zODcsNiArMzkwLDcgQEAg cGdzdGF0X2RhdGFiYXNlX2ZsdXNoX2NiKFBnU3RhdF9FbnRyeVJlZiAqZW50cnlfcmVmLCBi b29sIG5vd2FpdCkKIAlQR1NUQVRfQUNDVU1fREJDT1VOVChjb25mbGljdF90YWJsZXNwYWNl KTsKIAlQR1NUQVRfQUNDVU1fREJDT1VOVChjb25mbGljdF9sb2NrKTsKIAlQR1NUQVRfQUND VU1fREJDT1VOVChjb25mbGljdF9zbmFwc2hvdCk7CisJUEdTVEFUX0FDQ1VNX0RCQ09VTlQo Y29uZmxpY3RfbG9naWNhbHNsb3QpOwogCVBHU1RBVF9BQ0NVTV9EQkNPVU5UKGNvbmZsaWN0 X2J1ZmZlcnBpbik7CiAJUEdTVEFUX0FDQ1VNX0RCQ09VTlQoY29uZmxpY3Rfc3RhcnR1cF9k ZWFkbG9jayk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRm dW5jcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNzLmMKaW5kZXggMjVh MTU5YjVlNS4uNmE3NjQ3ZDAzMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0 L3Bnc3RhdGZ1bmNzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNz LmMKQEAgLTEwMTcsNiArMTAxNyw4IEBAIFBHX1NUQVRfR0VUX0RCRU5UUllfSU5UNjQoeGFj dF9jb21taXQpOwogLyogcGdfc3RhdF9nZXRfZGJfeGFjdF9yb2xsYmFjayAqLwogUEdfU1RB VF9HRVRfREJFTlRSWV9JTlQ2NCh4YWN0X3JvbGxiYWNrKTsKIAorLyogcGdfc3RhdF9nZXRf ZGJfY29uZmxpY3RfbG9naWNhbHNsb3QgKi8KK1BHX1NUQVRfR0VUX0RCRU5UUllfSU5UNjQo Y29uZmxpY3RfbG9naWNhbHNsb3QpOwogCiBEYXR1bQogcGdfc3RhdF9nZXRfZGJfc3RhdF9y ZXNldF90aW1lKFBHX0ZVTkNUSU9OX0FSR1MpCkBAIC0xMDUwLDYgKzEwNTIsNyBAQCBwZ19z dGF0X2dldF9kYl9jb25mbGljdF9hbGwoUEdfRlVOQ1RJT05fQVJHUykKIAkJcmVzdWx0ID0g KGludDY0KSAoZGJlbnRyeS0+Y29uZmxpY3RfdGFibGVzcGFjZSArCiAJCQkJCQkgIGRiZW50 cnktPmNvbmZsaWN0X2xvY2sgKwogCQkJCQkJICBkYmVudHJ5LT5jb25mbGljdF9zbmFwc2hv dCArCisJCQkJCQkgIGRiZW50cnktPmNvbmZsaWN0X2xvZ2ljYWxzbG90ICsKIAkJCQkJCSAg ZGJlbnRyeS0+Y29uZmxpY3RfYnVmZmVycGluICsKIAkJCQkJCSAgZGJlbnRyeS0+Y29uZmxp Y3Rfc3RhcnR1cF9kZWFkbG9jayk7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CmluZGV4 IGY5MzAxYjI2MjcuLjEwNWIwMWQ2OGUgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApA QCAtNTUzOSw2ICs1NTM5LDExIEBACiAgIHByb25hbWUgPT4gJ3BnX3N0YXRfZ2V0X2RiX2Nv bmZsaWN0X3NuYXBzaG90JywgcHJvdm9sYXRpbGUgPT4gJ3MnLAogICBwcm9wYXJhbGxlbCA9 PiAncicsIHByb3JldHR5cGUgPT4gJ2ludDgnLCBwcm9hcmd0eXBlcyA9PiAnb2lkJywKICAg cHJvc3JjID0+ICdwZ19zdGF0X2dldF9kYl9jb25mbGljdF9zbmFwc2hvdCcgfSwKK3sgb2lk ID0+ICc5OTAxJywKKyAgZGVzY3IgPT4gJ3N0YXRpc3RpY3M6IHJlY292ZXJ5IGNvbmZsaWN0 cyBpbiBkYXRhYmFzZSBjYXVzZWQgYnkgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90JywKKyAg cHJvbmFtZSA9PiAncGdfc3RhdF9nZXRfZGJfY29uZmxpY3RfbG9naWNhbHNsb3QnLCBwcm92 b2xhdGlsZSA9PiAncycsCisgIHByb3BhcmFsbGVsID0+ICdyJywgcHJvcmV0dHlwZSA9PiAn aW50OCcsIHByb2FyZ3R5cGVzID0+ICdvaWQnLAorICBwcm9zcmMgPT4gJ3BnX3N0YXRfZ2V0 X2RiX2NvbmZsaWN0X2xvZ2ljYWxzbG90JyB9LAogeyBvaWQgPT4gJzMwNjgnLAogICBkZXNj ciA9PiAnc3RhdGlzdGljczogcmVjb3ZlcnkgY29uZmxpY3RzIGluIGRhdGFiYXNlIGNhdXNl ZCBieSBzaGFyZWQgYnVmZmVyIHBpbicsCiAgIHByb25hbWUgPT4gJ3BnX3N0YXRfZ2V0X2Ri X2NvbmZsaWN0X2J1ZmZlcnBpbicsIHByb3ZvbGF0aWxlID0+ICdzJywKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL3Bnc3RhdC5oIGIvc3JjL2luY2x1ZGUvcGdzdGF0LmgKaW5kZXggYTNk ZjhkMjdjMy4uN2ZmY2U4NGQwNyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGdzdGF0LmgK KysrIGIvc3JjL2luY2x1ZGUvcGdzdGF0LmgKQEAgLTI5MSw2ICsyOTEsNyBAQCB0eXBlZGVm IHN0cnVjdCBQZ1N0YXRfU3RhdERCRW50cnkKIAlQZ1N0YXRfQ291bnRlciBjb25mbGljdF90 YWJsZXNwYWNlOwogCVBnU3RhdF9Db3VudGVyIGNvbmZsaWN0X2xvY2s7CiAJUGdTdGF0X0Nv dW50ZXIgY29uZmxpY3Rfc25hcHNob3Q7CisJUGdTdGF0X0NvdW50ZXIgY29uZmxpY3RfbG9n aWNhbHNsb3Q7CiAJUGdTdGF0X0NvdW50ZXIgY29uZmxpY3RfYnVmZmVycGluOwogCVBnU3Rh dF9Db3VudGVyIGNvbmZsaWN0X3N0YXJ0dXBfZGVhZGxvY2s7CiAJUGdTdGF0X0NvdW50ZXIg dGVtcF9maWxlczsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3Qu aCBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaAppbmRleCA2NWYyYzc0MjM5Li4w ZWQxZDhhZjI4IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90LmgK KysrIGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5oCkBAIC0yMTYsNiArMjE2LDcg QEAgZXh0ZXJuIFhMb2dSZWNQdHIgUmVwbGljYXRpb25TbG90c0NvbXB1dGVMb2dpY2FsUmVz dGFydExTTih2b2lkKTsKIGV4dGVybiBib29sIFJlcGxpY2F0aW9uU2xvdHNDb3VudERCU2xv dHMoT2lkIGRib2lkLCBpbnQgKm5zbG90cywgaW50ICpuYWN0aXZlKTsKIGV4dGVybiB2b2lk IFJlcGxpY2F0aW9uU2xvdHNEcm9wREJTbG90cyhPaWQgZGJvaWQpOwogZXh0ZXJuIGJvb2wg SW52YWxpZGF0ZU9ic29sZXRlUmVwbGljYXRpb25TbG90cyhYTG9nU2VnTm8gb2xkZXN0U2Vn bm8pOworZXh0ZXJuIHZvaWQgSW52YWxpZGF0ZUNvbmZsaWN0aW5nTG9naWNhbFJlcGxpY2F0 aW9uU2xvdHMoT2lkIGRib2lkLCBUcmFuc2FjdGlvbklkIHhpZCk7CiBleHRlcm4gUmVwbGlj YXRpb25TbG90ICpTZWFyY2hOYW1lZFJlcGxpY2F0aW9uU2xvdChjb25zdCBjaGFyICpuYW1l LCBib29sIG5lZWRfbG9jayk7CiBleHRlcm4gaW50CVJlcGxpY2F0aW9uU2xvdEluZGV4KFJl cGxpY2F0aW9uU2xvdCAqc2xvdCk7CiBleHRlcm4gYm9vbCBSZXBsaWNhdGlvblNsb3ROYW1l KGludCBpbmRleCwgTmFtZSBuYW1lKTsKQEAgLTIyNyw1ICsyMjgsNiBAQCBleHRlcm4gdm9p ZCBDaGVja1BvaW50UmVwbGljYXRpb25TbG90cyh2b2lkKTsKIAogZXh0ZXJuIHZvaWQgQ2hl Y2tTbG90UmVxdWlyZW1lbnRzKHZvaWQpOwogZXh0ZXJuIHZvaWQgQ2hlY2tTbG90UGVybWlz c2lvbnModm9pZCk7CitleHRlcm4gdm9pZCBSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhM b2dpY2FsU2xvdHMoT2lkIGRib2lkLCBUcmFuc2FjdGlvbklkIHhpZCwgY2hhciAqcmVhc29u KTsKIAogI2VuZGlmCQkJCQkJCS8qIFNMT1RfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvc3RvcmFnZS9wcm9jc2lnbmFsLmggYi9zcmMvaW5jbHVkZS9zdG9yYWdlL3Byb2NzaWdu YWwuaAppbmRleCBlZTYzNjkwMGYzLi41NjA5NmJkM2UyIDEwMDY0NAotLS0gYS9zcmMvaW5j bHVkZS9zdG9yYWdlL3Byb2NzaWduYWwuaAorKysgYi9zcmMvaW5jbHVkZS9zdG9yYWdlL3By b2NzaWduYWwuaApAQCAtNDEsNiArNDEsNyBAQCB0eXBlZGVmIGVudW0KIAlQUk9DU0lHX1JF Q09WRVJZX0NPTkZMSUNUX1RBQkxFU1BBQ0UsCiAJUFJPQ1NJR19SRUNPVkVSWV9DT05GTElD VF9MT0NLLAogCVBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfU05BUFNIT1QsCisJUFJPQ1NJ R19SRUNPVkVSWV9DT05GTElDVF9MT0dJQ0FMU0xPVCwKIAlQUk9DU0lHX1JFQ09WRVJZX0NP TkZMSUNUX0JVRkZFUlBJTiwKIAlQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NUQVJUVVBf REVBRExPQ0ssCiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3N0b3JhZ2Uvc3RhbmRieS5o IGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9zdGFuZGJ5LmgKaW5kZXggZTQ2YzkzNGM1Ni4uYmU4 NmExMjQ2ZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvc3RvcmFnZS9zdGFuZGJ5LmgKKysr IGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9zdGFuZGJ5LmgKQEAgLTMwLDggKzMwLDEwIEBAIGV4 dGVybiB2b2lkIEluaXRSZWNvdmVyeVRyYW5zYWN0aW9uRW52aXJvbm1lbnQodm9pZCk7CiBl eHRlcm4gdm9pZCBTaHV0ZG93blJlY292ZXJ5VHJhbnNhY3Rpb25FbnZpcm9ubWVudCh2b2lk KTsKIAogZXh0ZXJuIHZvaWQgUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3Qo VHJhbnNhY3Rpb25JZCBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwKKwkJCQkJCQkJCQkJCWJv b2wgb25DYXRhbG9nQWNjZXNzaWJsZUluTG9naWNhbERlY29kaW5nLAogCQkJCQkJCQkJCQkJ UmVsRmlsZUxvY2F0b3IgbG9jYXRvcik7CiBleHRlcm4gdm9pZCBSZXNvbHZlUmVjb3ZlcnlD b25mbGljdFdpdGhTbmFwc2hvdEZ1bGxYaWQoRnVsbFRyYW5zYWN0aW9uSWQgc25hcHNob3RD b25mbGljdEhvcml6b24sCisJCQkJCQkJCQkJCQkJICAgYm9vbCBvbkNhdGFsb2dBY2Nlc3Np YmxlSW5Mb2dpY2FsRGVjb2RpbmcsCiAJCQkJCQkJCQkJCQkJICAgUmVsRmlsZUxvY2F0b3Ig bG9jYXRvcik7CiBleHRlcm4gdm9pZCBSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhUYWJs ZXNwYWNlKE9pZCB0c2lkKTsKIGV4dGVybiB2b2lkIFJlc29sdmVSZWNvdmVyeUNvbmZsaWN0 V2l0aERhdGFiYXNlKE9pZCBkYmlkKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvcnVsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5v dXQKaW5kZXggZmI5ZjkzNmQ0My4uMWNjNjJjNDQ3ZCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9ydWxlcy5vdXQKQEAgLTE4NjgsNyArMTg2OCw4IEBAIHBnX3N0YXRfZGF0YWJhc2Vf Y29uZmxpY3RzfCBTRUxFQ1QgZC5vaWQgQVMgZGF0aWQsCiAgICAgcGdfc3RhdF9nZXRfZGJf Y29uZmxpY3RfbG9jayhkLm9pZCkgQVMgY29uZmxfbG9jaywKICAgICBwZ19zdGF0X2dldF9k Yl9jb25mbGljdF9zbmFwc2hvdChkLm9pZCkgQVMgY29uZmxfc25hcHNob3QsCiAgICAgcGdf c3RhdF9nZXRfZGJfY29uZmxpY3RfYnVmZmVycGluKGQub2lkKSBBUyBjb25mbF9idWZmZXJw aW4sCi0gICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3Rfc3RhcnR1cF9kZWFkbG9jayhkLm9p ZCkgQVMgY29uZmxfZGVhZGxvY2sKKyAgICBwZ19zdGF0X2dldF9kYl9jb25mbGljdF9zdGFy dHVwX2RlYWRsb2NrKGQub2lkKSBBUyBjb25mbF9kZWFkbG9jaywKKyAgICBwZ19zdGF0X2dl dF9kYl9jb25mbGljdF9sb2dpY2Fsc2xvdChkLm9pZCkgQVMgY29uZmxfYWN0aXZlX2xvZ2lj YWxzbG90CiAgICBGUk9NIHBnX2RhdGFiYXNlIGQ7CiBwZ19zdGF0X2dzc2FwaXwgU0VMRUNU IHMucGlkLAogICAgIHMuZ3NzX2F1dGggQVMgZ3NzX2F1dGhlbnRpY2F0ZWQsCi0tIAoyLjM0 LjEKCg== --------------CJJNZUFIbsklop00k5Z4QnhV Content-Type: text/plain; charset=UTF-8; name="v29-0001-Add-info-in-WAL-records-in-preparation-for-logic.patch" Content-Disposition: attachment; filename*0="v29-0001-Add-info-in-WAL-records-in-preparation-for-logic.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA1NjM2NzI4MTM4YWZkMGYxMzgzZTBlNzNjMjVmNGI2YmQwMmViMTJlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogVGh1LCA4IERlYyAyMDIyIDEwOjE4OjM3ICswMDAwClN1YmplY3Q6IFtQQVRD SCB2MjkgMS82XSBBZGQgaW5mbyBpbiBXQUwgcmVjb3JkcyBpbiBwcmVwYXJhdGlvbiBmb3Ig bG9naWNhbAogc2xvdCBjb25mbGljdCBoYW5kbGluZy4KCldoZW4gYSBXQUwgcmVwbGF5IG9u IHN0YW5kYnkgaW5kaWNhdGVzIHRoYXQgYSBjYXRhbG9nIHRhYmxlIHR1cGxlIGlzCnRvIGJl IGRlbGV0ZWQgYnkgYW4geGlkIHRoYXQgaXMgZ3JlYXRlciB0aGFuIGEgbG9naWNhbCBzbG90 J3MKY2F0YWxvZ194bWluLCB0aGVuIHRoYXQgbWVhbnMgdGhlIHNsb3QncyBjYXRhbG9nX3ht aW4gY29uZmxpY3RzIHdpdGgKdGhlIHhpZCwgYW5kIHdlIG5lZWQgdG8gaGFuZGxlIHRoZSBj b25mbGljdC4gIFdoaWxlIHN1YnNlcXVlbnQgY29tbWl0cwp3aWxsIGRvIHRoZSBhY3R1YWwg Y29uZmxpY3QgaGFuZGxpbmcsIHRoaXMgY29tbWl0IGFkZHMgYSBuZXcgZmllbGQKb25DYXRh bG9nQWNjZXNzaWJsZUluTG9naWNhbERlY29kaW5nIGluIHN1Y2ggV0FMIHJlY29yZHMsIHRo YXQgaXMgdHJ1ZQpmb3IgY2F0YWxvZyB0YWJsZXMsIHNvIGFzIHRvIGFycmFuZ2UgZm9yIGNv bmZsaWN0IGhhbmRsaW5nLgoKQXV0aG9yOiBBbmRyZXMgRnJldW5kIChpbiBhbiBvbGRlciB2 ZXJzaW9uKSwgQW1pdCBLaGFuZGVrYXIsIEJlcnRyYW5kCkRyb3V2b3QKUmV2aWV3ZWQtQnk6 IEJlcnRyYW5kIERyb3V2b3QsIEFuZHJlcyBGcmV1bmQsIFJvYmVydCBIYWFzLCBGYWJyaXpp byBkZQpSb3llcyBNZWxsbwotLS0KIGNvbnRyaWIvdGVzdF9kZWNvZGluZy9leHBlY3RlZC9k ZGwub3V0ICB8IDI5ICsrKysrKysrKysrKysKIGNvbnRyaWIvdGVzdF9kZWNvZGluZy9zcWwv ZGRsLnNxbCAgICAgICB8ICA3ICsrKysKIGRvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sICAg ICAgICAgICAgICB8IDExICsrKysrCiBzcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3JlbG9w dGlvbnMuYyAgfCAgMiArLQogc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHhsb2cuYyAg ICAgIHwgIDEgKwogc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaGluc2VydC5jICAgIHwg IDEgKwogc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMgICAgICAgIHwgIDQgKy0K IHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3BydW5laGVhcC5jICAgICB8ICAxICsKIHNyYy9i YWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYyB8ICAzICstCiBzcmMvYmFja2Vu ZC9hY2Nlc3MvbmJ0cmVlL25idHBhZ2UuYyAgICAgfCAgMiArCiBzcmMvYmFja2VuZC9hY2Nl c3Mvc3BnaXN0L3NwZ3ZhY3V1bS5jICAgfCAgMSArCiBzcmMvYmFja2VuZC9jYXRhbG9nL2lu ZGV4LmMgICAgICAgICAgICAgfCAxNCArKysrKy0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy90 YWJsZWNtZHMuYyAgICAgICAgfCA1NSArKysrKysrKysrKysrKysrKysrKysrKystCiBzcmMv aW5jbHVkZS9hY2Nlc3MvZ2lzdHhsb2cuaCAgICAgICAgICAgfCAgMiArCiBzcmMvaW5jbHVk ZS9hY2Nlc3MvaGFzaF94bG9nLmggICAgICAgICAgfCAgMSArCiBzcmMvaW5jbHVkZS9hY2Nl c3MvaGVhcGFtX3hsb2cuaCAgICAgICAgfCAgNSArKy0KIHNyYy9pbmNsdWRlL2FjY2Vzcy9u YnR4bG9nLmggICAgICAgICAgICB8ICAyICsKIHNyYy9pbmNsdWRlL2FjY2Vzcy9zcGd4bG9n LmggICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfaW5kZXguaCAg ICAgICAgICB8ICAyICsKIHNyYy9pbmNsdWRlL3V0aWxzL3JlbC5oICAgICAgICAgICAgICAg ICB8IDM0ICsrKysrKysrKysrKysrKwogMjAgZmlsZXMgY2hhbmdlZCwgMTY5IGluc2VydGlv bnMoKyksIDkgZGVsZXRpb25zKC0pCiAgMTEuMiUgY29udHJpYi90ZXN0X2RlY29kaW5nL2V4 cGVjdGVkLwogICA2LjYlIGNvbnRyaWIvdGVzdF9kZWNvZGluZy9zcWwvCiAgIDYuNSUgZG9j L3NyYy9zZ21sLwogICA4LjMlIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwLwogICA3LjElIHNy Yy9iYWNrZW5kL2FjY2Vzcy8KICAgNi4wJSBzcmMvYmFja2VuZC9jYXRhbG9nLwogIDIyLjYl IHNyYy9iYWNrZW5kL2NvbW1hbmRzLwogICA4LjUlIHNyYy9pbmNsdWRlL2FjY2Vzcy8KICAy MS40JSBzcmMvaW5jbHVkZS91dGlscy8KCmRpZmYgLS1naXQgYS9jb250cmliL3Rlc3RfZGVj b2RpbmcvZXhwZWN0ZWQvZGRsLm91dCBiL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9leHBlY3Rl ZC9kZGwub3V0CmluZGV4IDlhMjhiNWRkYzUuLjQwY2YyZjRkYzQgMTAwNjQ0Ci0tLSBhL2Nv bnRyaWIvdGVzdF9kZWNvZGluZy9leHBlY3RlZC9kZGwub3V0CisrKyBiL2NvbnRyaWIvdGVz dF9kZWNvZGluZy9leHBlY3RlZC9kZGwub3V0CkBAIC00ODMsNiArNDgzLDcgQEAgQ1JFQVRF IFRBQkxFIHJlcGxpY2F0aW9uX21ldGFkYXRhICgKICkKIFdJVEggKHVzZXJfY2F0YWxvZ190 YWJsZSA9IHRydWUpCiA7CitDUkVBVEUgSU5ERVggcmVwbGljYXRpb25fbWV0YWRhdGFfaWR4 MSBvbiByZXBsaWNhdGlvbl9tZXRhZGF0YShyZWxhdGlvbik7CiBcZCsgcmVwbGljYXRpb25f bWV0YWRhdGEKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBUYWJsZSAicHVibGljLnJlcGxpY2F0aW9uX21ldGFkYXRhIgogICBDb2x1bW4gIHwg IFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgICAgICAgICBE ZWZhdWx0ICAgICAgICAgICAgICAgICAgICAgIHwgU3RvcmFnZSAgfCBTdGF0cyB0YXJnZXQg fCBEZXNjcmlwdGlvbiAKQEAgLTQ5Miw4ICs0OTMsMTUgQEAgV0lUSCAodXNlcl9jYXRhbG9n X3RhYmxlID0gdHJ1ZSkKICBvcHRpb25zICB8IHRleHRbXSAgfCAgICAgICAgICAgfCAgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8IGV4dGVuZGVkIHwgICAgICAgICAgICAgIHwgCiBJbmRleGVzOgogICAgICJyZXBsaWNh dGlvbl9tZXRhZGF0YV9wa2V5IiBQUklNQVJZIEtFWSwgYnRyZWUgKGlkKQorICAgICJyZXBs aWNhdGlvbl9tZXRhZGF0YV9pZHgxIiBidHJlZSAocmVsYXRpb24pCiBPcHRpb25zOiB1c2Vy X2NhdGFsb2dfdGFibGU9dHJ1ZQogCitTRUxFQ1QgYm9vbF9hbmQoaW5kaXN1c2VyY2F0YWxv ZykgZnJvbSBwZ19pbmRleCB3aGVyZSBpbmRyZWxpZCA9ICdyZXBsaWNhdGlvbl9tZXRhZGF0 YSc6OnJlZ2NsYXNzOworIGJvb2xfYW5kIAorLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKwog SU5TRVJUIElOVE8gcmVwbGljYXRpb25fbWV0YWRhdGEocmVsYXRpb24sIG9wdGlvbnMpCiBW QUxVRVMgKCdmb28nLCBBUlJBWVsnYScsICdiJ10pOwogQUxURVIgVEFCTEUgcmVwbGljYXRp b25fbWV0YWRhdGEgUkVTRVQgKHVzZXJfY2F0YWxvZ190YWJsZSk7CkBAIC01MDYsNiArNTE0 LDEzIEBAIEFMVEVSIFRBQkxFIHJlcGxpY2F0aW9uX21ldGFkYXRhIFJFU0VUICh1c2VyX2Nh dGFsb2dfdGFibGUpOwogIG9wdGlvbnMgIHwgdGV4dFtdICB8ICAgICAgICAgICB8ICAgICAg ICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgZXh0ZW5kZWQgfCAgICAgICAgICAgICAgfCAKIEluZGV4ZXM6CiAgICAgInJlcGxpY2F0 aW9uX21ldGFkYXRhX3BrZXkiIFBSSU1BUlkgS0VZLCBidHJlZSAoaWQpCisgICAgInJlcGxp Y2F0aW9uX21ldGFkYXRhX2lkeDEiIGJ0cmVlIChyZWxhdGlvbikKKworU0VMRUNUIGJvb2xf b3IoaW5kaXN1c2VyY2F0YWxvZykgZnJvbSBwZ19pbmRleCB3aGVyZSBpbmRyZWxpZCA9ICdy ZXBsaWNhdGlvbl9tZXRhZGF0YSc6OnJlZ2NsYXNzOworIGJvb2xfb3IgCistLS0tLS0tLS0K KyBmCisoMSByb3cpCiAKIElOU0VSVCBJTlRPIHJlcGxpY2F0aW9uX21ldGFkYXRhKHJlbGF0 aW9uLCBvcHRpb25zKQogVkFMVUVTICgnYmFyJywgQVJSQVlbJ2EnLCAnYiddKTsKQEAgLTUx OSw4ICs1MzQsMTUgQEAgQUxURVIgVEFCTEUgcmVwbGljYXRpb25fbWV0YWRhdGEgU0VUICh1 c2VyX2NhdGFsb2dfdGFibGUgPSB0cnVlKTsKICBvcHRpb25zICB8IHRleHRbXSAgfCAgICAg ICAgICAgfCAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8IGV4dGVuZGVkIHwgICAgICAgICAgICAgIHwgCiBJbmRleGVzOgog ICAgICJyZXBsaWNhdGlvbl9tZXRhZGF0YV9wa2V5IiBQUklNQVJZIEtFWSwgYnRyZWUgKGlk KQorICAgICJyZXBsaWNhdGlvbl9tZXRhZGF0YV9pZHgxIiBidHJlZSAocmVsYXRpb24pCiBP cHRpb25zOiB1c2VyX2NhdGFsb2dfdGFibGU9dHJ1ZQogCitTRUxFQ1QgYm9vbF9hbmQoaW5k aXN1c2VyY2F0YWxvZykgZnJvbSBwZ19pbmRleCB3aGVyZSBpbmRyZWxpZCA9ICdyZXBsaWNh dGlvbl9tZXRhZGF0YSc6OnJlZ2NsYXNzOworIGJvb2xfYW5kIAorLS0tLS0tLS0tLQorIHQK KygxIHJvdykKKwogSU5TRVJUIElOVE8gcmVwbGljYXRpb25fbWV0YWRhdGEocmVsYXRpb24s IG9wdGlvbnMpCiBWQUxVRVMgKCdibHViJywgTlVMTCk7CiAtLSBtYWtlIHN1cmUgcmV3cml0 ZXMgZG9uJ3Qgd29yawpAQCAtNTM4LDggKzU2MCwxNSBAQCBBTFRFUiBUQUJMRSByZXBsaWNh dGlvbl9tZXRhZGF0YSBTRVQgKHVzZXJfY2F0YWxvZ190YWJsZSA9IGZhbHNlKTsKICByZXdy aXRlbWVvcm5vdCB8IGludGVnZXIgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IHBsYWluICAgIHwg ICAgICAgICAgICAgIHwgCiBJbmRleGVzOgogICAgICJyZXBsaWNhdGlvbl9tZXRhZGF0YV9w a2V5IiBQUklNQVJZIEtFWSwgYnRyZWUgKGlkKQorICAgICJyZXBsaWNhdGlvbl9tZXRhZGF0 YV9pZHgxIiBidHJlZSAocmVsYXRpb24pCiBPcHRpb25zOiB1c2VyX2NhdGFsb2dfdGFibGU9 ZmFsc2UKIAorU0VMRUNUIGJvb2xfb3IoaW5kaXN1c2VyY2F0YWxvZykgZnJvbSBwZ19pbmRl eCB3aGVyZSBpbmRyZWxpZCA9ICdyZXBsaWNhdGlvbl9tZXRhZGF0YSc6OnJlZ2NsYXNzOwor IGJvb2xfb3IgCistLS0tLS0tLS0KKyBmCisoMSByb3cpCisKIElOU0VSVCBJTlRPIHJlcGxp Y2F0aW9uX21ldGFkYXRhKHJlbGF0aW9uLCBvcHRpb25zKQogVkFMVUVTICgnemFwaG9kJywg TlVMTCk7CiBTRUxFQ1QgZGF0YSBGUk9NIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdlcygn cmVncmVzc2lvbl9zbG90JywgTlVMTCwgTlVMTCwgJ2luY2x1ZGUteGlkcycsICcwJywgJ3Nr aXAtZW1wdHkteGFjdHMnLCAnMScpOwpkaWZmIC0tZ2l0IGEvY29udHJpYi90ZXN0X2RlY29k aW5nL3NxbC9kZGwuc3FsIGIvY29udHJpYi90ZXN0X2RlY29kaW5nL3NxbC9kZGwuc3FsCmlu ZGV4IDRmNzZiZWQ3MmMuLjg1ZGRkNGJlMDMgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvdGVzdF9k ZWNvZGluZy9zcWwvZGRsLnNxbAorKysgYi9jb250cmliL3Rlc3RfZGVjb2Rpbmcvc3FsL2Rk bC5zcWwKQEAgLTI3NiwxOSArMjc2LDI1IEBAIENSRUFURSBUQUJMRSByZXBsaWNhdGlvbl9t ZXRhZGF0YSAoCiApCiBXSVRIICh1c2VyX2NhdGFsb2dfdGFibGUgPSB0cnVlKQogOworCitD UkVBVEUgSU5ERVggcmVwbGljYXRpb25fbWV0YWRhdGFfaWR4MSBvbiByZXBsaWNhdGlvbl9t ZXRhZGF0YShyZWxhdGlvbik7CisKIFxkKyByZXBsaWNhdGlvbl9tZXRhZGF0YQorU0VMRUNU IGJvb2xfYW5kKGluZGlzdXNlcmNhdGFsb2cpIGZyb20gcGdfaW5kZXggd2hlcmUgaW5kcmVs aWQgPSAncmVwbGljYXRpb25fbWV0YWRhdGEnOjpyZWdjbGFzczsKIAogSU5TRVJUIElOVE8g cmVwbGljYXRpb25fbWV0YWRhdGEocmVsYXRpb24sIG9wdGlvbnMpCiBWQUxVRVMgKCdmb28n LCBBUlJBWVsnYScsICdiJ10pOwogCiBBTFRFUiBUQUJMRSByZXBsaWNhdGlvbl9tZXRhZGF0 YSBSRVNFVCAodXNlcl9jYXRhbG9nX3RhYmxlKTsKIFxkKyByZXBsaWNhdGlvbl9tZXRhZGF0 YQorU0VMRUNUIGJvb2xfb3IoaW5kaXN1c2VyY2F0YWxvZykgZnJvbSBwZ19pbmRleCB3aGVy ZSBpbmRyZWxpZCA9ICdyZXBsaWNhdGlvbl9tZXRhZGF0YSc6OnJlZ2NsYXNzOwogCiBJTlNF UlQgSU5UTyByZXBsaWNhdGlvbl9tZXRhZGF0YShyZWxhdGlvbiwgb3B0aW9ucykKIFZBTFVF UyAoJ2JhcicsIEFSUkFZWydhJywgJ2InXSk7CiAKIEFMVEVSIFRBQkxFIHJlcGxpY2F0aW9u X21ldGFkYXRhIFNFVCAodXNlcl9jYXRhbG9nX3RhYmxlID0gdHJ1ZSk7CiBcZCsgcmVwbGlj YXRpb25fbWV0YWRhdGEKK1NFTEVDVCBib29sX2FuZChpbmRpc3VzZXJjYXRhbG9nKSBmcm9t IHBnX2luZGV4IHdoZXJlIGluZHJlbGlkID0gJ3JlcGxpY2F0aW9uX21ldGFkYXRhJzo6cmVn Y2xhc3M7CiAKIElOU0VSVCBJTlRPIHJlcGxpY2F0aW9uX21ldGFkYXRhKHJlbGF0aW9uLCBv cHRpb25zKQogVkFMVUVTICgnYmx1YicsIE5VTEwpOwpAQCAtMjk5LDYgKzMwNSw3IEBAIEFM VEVSIFRBQkxFIHJlcGxpY2F0aW9uX21ldGFkYXRhIEFMVEVSIENPTFVNTiByZXdyaXRlbWVv cm5vdCBUWVBFIHRleHQ7CiAKIEFMVEVSIFRBQkxFIHJlcGxpY2F0aW9uX21ldGFkYXRhIFNF VCAodXNlcl9jYXRhbG9nX3RhYmxlID0gZmFsc2UpOwogXGQrIHJlcGxpY2F0aW9uX21ldGFk YXRhCitTRUxFQ1QgYm9vbF9vcihpbmRpc3VzZXJjYXRhbG9nKSBmcm9tIHBnX2luZGV4IHdo ZXJlIGluZHJlbGlkID0gJ3JlcGxpY2F0aW9uX21ldGFkYXRhJzo6cmVnY2xhc3M7CiAKIElO U0VSVCBJTlRPIHJlcGxpY2F0aW9uX21ldGFkYXRhKHJlbGF0aW9uLCBvcHRpb25zKQogVkFM VUVTICgnemFwaG9kJywgTlVMTCk7CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxv Z3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IDllZDJiMDIwYjcu LjE4ZDZiOTljYWMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisr KyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCkBAIC00NDM3LDYgKzQ0MzcsMTcgQEAg U0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8L3Jl cGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAg ICA8L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFi bGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3Ry dWN0ZmllbGQ+aW5kaXN1c2VyY2F0YWxvZzwvc3RydWN0ZmllbGQ+IDx0eXBlPmJvb2w8L3R5 cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBJZiB0cnVlLCB0aGUg aW5kZXggaXMgbGlua2VkIHRvIGEgdGFibGUgdGhhdCBpcyBkZWNsYXJlZCBhcyBhbiBhZGRp dGlvbmFsCisgICAgICAgY2F0YWxvZyB0YWJsZSBmb3IgcHVycG9zZXMgb2YgbG9naWNhbCBy ZXBsaWNhdGlvbiAobWVhbnMgaGFzIDxsaW5rIGxpbmtlbmQ9InNxbC1jcmVhdGV0YWJsZSI+ PGxpdGVyYWw+dXNlcl9jYXRhbG9nX3RhYmxlPC9saXRlcmFsPjwvbGluaz4pCisgICAgICAg c2V0IHRvIHRydWUuCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAg ICAgPHJvdz4KICAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFy YSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CiAgICAgICAgPHN0cnVjdGZpZWxkPmluZGlz cmVwbGlkZW50PC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Ym9vbDwvdHlwZT4KZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcmVsb3B0aW9ucy5jIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2NvbW1vbi9yZWxvcHRpb25zLmMKaW5kZXggNzViNzM0NDg5MS4uNGI0MWY1ZTY4 ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9yZWxvcHRpb25zLmMK KysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2NvbW1vbi9yZWxvcHRpb25zLmMKQEAgLTEyMCw3 ICsxMjAsNyBAQCBzdGF0aWMgcmVsb3B0X2Jvb2wgYm9vbFJlbE9wdHNbXSA9CiAJCQlSRUxP UFRfS0lORF9IRUFQLAogCQkJQWNjZXNzRXhjbHVzaXZlTG9jawogCQl9LAotCQlmYWxzZQor CQlIRUFQX0RFRkFVTFRfVVNFUl9DQVRBTE9HX1RBQkxFCiAJfSwKIAl7CiAJCXsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R4bG9nLmMgYi9zcmMvYmFja2Vu ZC9hY2Nlc3MvZ2lzdC9naXN0eGxvZy5jCmluZGV4IGNiNWFmZmEzZDIuLmI3NDc5MDBhNDUg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R4bG9nLmMKKysrIGIv c3JjL2JhY2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHhsb2cuYwpAQCAtNjA4LDYgKzYwOCw3IEBA IGdpc3RYTG9nUGFnZVJldXNlKFJlbGF0aW9uIHJlbCwgQmxvY2tOdW1iZXIgYmxrbm8sIEZ1 bGxUcmFuc2FjdGlvbklkIGRlbGV0ZVhpZCkKIAkgKi8KIAogCS8qIFhMT0cgc3R1ZmYgKi8K Kwl4bHJlY19yZXVzZS5vbkNhdGFsb2dBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcgPSBJ bmRleElzQWNjZXNzaWJsZUluTG9naWNhbERlY29kaW5nKHJlbCk7CiAJeGxyZWNfcmV1c2Uu bG9jYXRvciA9IHJlbC0+cmRfbG9jYXRvcjsKIAl4bHJlY19yZXVzZS5ibG9jayA9IGJsa25v OwogCXhscmVjX3JldXNlLnNuYXBzaG90Q29uZmxpY3RIb3Jpem9uID0gZGVsZXRlWGlkOwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaGluc2VydC5jIGIvc3Jj L2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaGluc2VydC5jCmluZGV4IDlhOTIxZTM0MWUuLjdl NTlhMzg0YWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hpbnNl cnQuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNoaW5zZXJ0LmMKQEAgLTQz Miw2ICs0MzIsNyBAQCBfaGFzaF92YWN1dW1fb25lX3BhZ2UoUmVsYXRpb24gcmVsLCBSZWxh dGlvbiBocmVsLCBCdWZmZXIgbWV0YWJ1ZiwgQnVmZmVyIGJ1ZikKIAkJCXhsX2hhc2hfdmFj dXVtX29uZV9wYWdlIHhscmVjOwogCQkJWExvZ1JlY1B0cglyZWNwdHI7CiAKKwkJCXhscmVj Lm9uQ2F0YWxvZ0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyA9IFJlbGF0aW9uSXNBY2Nl c3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcoaHJlbCk7CiAJCQl4bHJlYy5zbmFwc2hvdENvbmZs aWN0SG9yaXpvbiA9IHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uOwogCQkJeGxyZWMubnR1cGxl cyA9IG5kZWxldGFibGU7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFw L2hlYXBhbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKaW5kZXggNzQ3 ZGI1MDM3Ni4uYjQyYTZiZmE2MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hl YXAvaGVhcGFtLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKQEAg LTY4MzEsNiArNjgzMSw3IEBAIGhlYXBfZnJlZXplX2V4ZWN1dGVfcHJlcGFyZWQoUmVsYXRp b24gcmVsLCBCdWZmZXIgYnVmZmVyLAogCQlzbmFwc2hvdENvbmZsaWN0SG9yaXpvbiA9IEZy ZWV6ZUxpbWl0OwogCQlUcmFuc2FjdGlvbklkUmV0cmVhdChzbmFwc2hvdENvbmZsaWN0SG9y aXpvbik7CiAKKwkJeGxyZWMub25DYXRhbG9nQWNjZXNzaWJsZUluTG9naWNhbERlY29kaW5n ID0gUmVsYXRpb25Jc0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyhyZWwpOwogCQl4bHJl Yy5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiA9IHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uOwog CQl4bHJlYy5ucGxhbnMgPSBucGxhbnM7CiAKQEAgLTgyNDgsNyArODI0OSw3IEBAIGJvdHRv bXVwX3NvcnRfYW5kX3NocmluayhUTV9JbmRleERlbGV0ZU9wICpkZWxzdGF0ZSkKICAqIHVw ZGF0ZSB0aGUgaGVhcCBwYWdlJ3MgTFNOLgogICovCiBYTG9nUmVjUHRyCi1sb2dfaGVhcF92 aXNpYmxlKFJlbEZpbGVMb2NhdG9yIHJsb2NhdG9yLCBCdWZmZXIgaGVhcF9idWZmZXIsIEJ1 ZmZlciB2bV9idWZmZXIsCitsb2dfaGVhcF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVy IGhlYXBfYnVmZmVyLCBCdWZmZXIgdm1fYnVmZmVyLAogCQkJCSBUcmFuc2FjdGlvbklkIHNu YXBzaG90Q29uZmxpY3RIb3Jpem9uLCB1aW50OCB2bWZsYWdzKQogewogCXhsX2hlYXBfdmlz aWJsZSB4bHJlYzsKQEAgLTgyNTgsNiArODI1OSw3IEBAIGxvZ19oZWFwX3Zpc2libGUoUmVs RmlsZUxvY2F0b3IgcmxvY2F0b3IsIEJ1ZmZlciBoZWFwX2J1ZmZlciwgQnVmZmVyIHZtX2J1 ZmZlciwKIAlBc3NlcnQoQnVmZmVySXNWYWxpZChoZWFwX2J1ZmZlcikpOwogCUFzc2VydChC dWZmZXJJc1ZhbGlkKHZtX2J1ZmZlcikpOwogCisJeGxyZWMub25DYXRhbG9nQWNjZXNzaWJs ZUluTG9naWNhbERlY29kaW5nID0gUmVsYXRpb25Jc0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNv ZGluZyhyZWwpOwogCXhscmVjLnNuYXBzaG90Q29uZmxpY3RIb3Jpem9uID0gc25hcHNob3RD b25mbGljdEhvcml6b247CiAJeGxyZWMuZmxhZ3MgPSB2bWZsYWdzOwogCVhMb2dCZWdpbklu c2VydCgpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvcHJ1bmVoZWFw LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwppbmRleCA5MWM1ZjVl OWVmLi5hYWU3OGY3MTQ0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9w cnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYwpA QCAtNDE4LDYgKzQxOCw3IEBAIGhlYXBfcGFnZV9wcnVuZShSZWxhdGlvbiByZWxhdGlvbiwg QnVmZmVyIGJ1ZmZlciwKIAkJCXhsX2hlYXBfcHJ1bmUgeGxyZWM7CiAJCQlYTG9nUmVjUHRy CXJlY3B0cjsKIAorCQkJeGxyZWMub25DYXRhbG9nQWNjZXNzaWJsZUluTG9naWNhbERlY29k aW5nID0gUmVsYXRpb25Jc0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyhyZWxhdGlvbik7 CiAJCQl4bHJlYy5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiA9IHByc3RhdGUuc25hcHNob3RD b25mbGljdEhvcml6b247CiAJCQl4bHJlYy5ucmVkaXJlY3RlZCA9IHByc3RhdGUubnJlZGly ZWN0ZWQ7CiAJCQl4bHJlYy5uZGVhZCA9IHByc3RhdGUubmRlYWQ7CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMKaW5kZXggNGVkNzAyNzVlMi4uMGJkNzNmNGQ5 ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5j CisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYwpAQCAtMjgz LDggKzI4Myw3IEBAIHZpc2liaWxpdHltYXBfc2V0KFJlbGF0aW9uIHJlbCwgQmxvY2tOdW1i ZXIgaGVhcEJsaywgQnVmZmVyIGhlYXBCdWYsCiAJCQlpZiAoWExvZ1JlY1B0cklzSW52YWxp ZChyZWNwdHIpKQogCQkJewogCQkJCUFzc2VydCghSW5SZWNvdmVyeSk7Ci0JCQkJcmVjcHRy ID0gbG9nX2hlYXBfdmlzaWJsZShyZWwtPnJkX2xvY2F0b3IsIGhlYXBCdWYsIHZtQnVmLAot CQkJCQkJCQkJCSAgY3V0b2ZmX3hpZCwgZmxhZ3MpOworCQkJCXJlY3B0ciA9IGxvZ19oZWFw X3Zpc2libGUocmVsLCBoZWFwQnVmLCB2bUJ1ZiwgY3V0b2ZmX3hpZCwgZmxhZ3MpOwogCiAJ CQkJLyoKIAkJCQkgKiBJZiBkYXRhIGNoZWNrc3VtcyBhcmUgZW5hYmxlZCAob3Igd2FsX2xv Z19oaW50cz1vbiksIHdlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVl L25idHBhZ2UuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0cGFnZS5jCmluZGV4 IDY1YWE0NDg5M2MuLjg4NzczYzBlNDEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vz cy9uYnRyZWUvbmJ0cGFnZS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0 cGFnZS5jCkBAIC04MzYsNiArODM2LDcgQEAgX2J0X2xvZ19yZXVzZV9wYWdlKFJlbGF0aW9u IHJlbCwgQmxvY2tOdW1iZXIgYmxrbm8sIEZ1bGxUcmFuc2FjdGlvbklkIHNhZmV4aWQpCiAJ ICovCiAKIAkvKiBYTE9HIHN0dWZmICovCisJeGxyZWNfcmV1c2Uub25DYXRhbG9nQWNjZXNz aWJsZUluTG9naWNhbERlY29kaW5nID0gSW5kZXhJc0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNv ZGluZyhyZWwpOwogCXhscmVjX3JldXNlLmxvY2F0b3IgPSByZWwtPnJkX2xvY2F0b3I7CiAJ eGxyZWNfcmV1c2UuYmxvY2sgPSBibGtubzsKIAl4bHJlY19yZXVzZS5zbmFwc2hvdENvbmZs aWN0SG9yaXpvbiA9IHNhZmV4aWQ7CkBAIC0xMzU4LDYgKzEzNTksNyBAQCBfYnRfZGVsaXRl bXNfZGVsZXRlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGJ1ZiwKIAkJWExvZ1JlY1B0cglyZWNw dHI7CiAJCXhsX2J0cmVlX2RlbGV0ZSB4bHJlY19kZWxldGU7CiAKKwkJeGxyZWNfZGVsZXRl Lm9uQ2F0YWxvZ0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyA9IEluZGV4SXNBY2Nlc3Np YmxlSW5Mb2dpY2FsRGVjb2RpbmcocmVsKTsKIAkJeGxyZWNfZGVsZXRlLnNuYXBzaG90Q29u ZmxpY3RIb3Jpem9uID0gc25hcHNob3RDb25mbGljdEhvcml6b247CiAJCXhscmVjX2RlbGV0 ZS5uZGVsZXRlZCA9IG5kZWxldGFibGU7CiAJCXhscmVjX2RlbGV0ZS5udXBkYXRlZCA9IG51 cGRhdGFibGU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0L3NwZ3Zh Y3V1bS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWN1dW0uYwppbmRleCBh ZDkwYjIxM2I5Li5iZTIzOTA3Njg3IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3Mv c3BnaXN0L3NwZ3ZhY3V1bS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3Bn dmFjdXVtLmMKQEAgLTUwMyw2ICs1MDMsNyBAQCB2YWN1dW1SZWRpcmVjdEFuZFBsYWNlaG9s ZGVyKFJlbGF0aW9uIGluZGV4LCBCdWZmZXIgYnVmZmVyKQogCXNwZ3hsb2dWYWN1dW1SZWRp cmVjdCB4bHJlYzsKIAlHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdDsKIAorCXhscmVjLm9uQ2F0 YWxvZ0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyA9IEluZGV4SXNBY2Nlc3NpYmxlSW5M b2dpY2FsRGVjb2RpbmcoaW5kZXgpOwogCXhscmVjLm5Ub1BsYWNlaG9sZGVyID0gMDsKIAl4 bHJlYy5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiA9IEludmFsaWRUcmFuc2FjdGlvbklkOwog CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL2luZGV4LmMgYi9zcmMvYmFja2Vu ZC9jYXRhbG9nL2luZGV4LmMKaW5kZXggNjFmMWQzOTI2YS4uZjZiMmM5YWM3MSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jCisrKyBiL3NyYy9iYWNrZW5kL2Nh dGFsb2cvaW5kZXguYwpAQCAtMTIzLDcgKzEyMyw4IEBAIHN0YXRpYyB2b2lkIFVwZGF0ZUlu ZGV4UmVsYXRpb24oT2lkIGluZGV4b2lkLCBPaWQgaGVhcG9pZCwKIAkJCQkJCQkJYm9vbCBp c2V4Y2x1c2lvbiwKIAkJCQkJCQkJYm9vbCBpbW1lZGlhdGUsCiAJCQkJCQkJCWJvb2wgaXN2 YWxpZCwKLQkJCQkJCQkJYm9vbCBpc3JlYWR5KTsKKwkJCQkJCQkJYm9vbCBpc3JlYWR5LAor CQkJCQkJCQlib29sIGlzX3VzZXJfY2F0YWxvZyk7CiBzdGF0aWMgdm9pZCBpbmRleF91cGRh dGVfc3RhdHMoUmVsYXRpb24gcmVsLAogCQkJCQkJCSAgIGJvb2wgaGFzaW5kZXgsCiAJCQkJ CQkJICAgZG91YmxlIHJlbHR1cGxlcyk7CkBAIC01NDUsNyArNTQ2LDggQEAgVXBkYXRlSW5k ZXhSZWxhdGlvbihPaWQgaW5kZXhvaWQsCiAJCQkJCWJvb2wgaXNleGNsdXNpb24sCiAJCQkJ CWJvb2wgaW1tZWRpYXRlLAogCQkJCQlib29sIGlzdmFsaWQsCi0JCQkJCWJvb2wgaXNyZWFk eSkKKwkJCQkJYm9vbCBpc3JlYWR5LAorCQkJCQlib29sIGlzX3VzZXJfY2F0YWxvZykKIHsK IAlpbnQydmVjdG9yICppbmRrZXk7CiAJb2lkdmVjdG9yICAqaW5kY29sbGF0aW9uOwpAQCAt NjIyLDYgKzYyNCw3IEBAIFVwZGF0ZUluZGV4UmVsYXRpb24oT2lkIGluZGV4b2lkLAogCXZh bHVlc1tBbnVtX3BnX2luZGV4X2luZGNoZWNreG1pbiAtIDFdID0gQm9vbEdldERhdHVtKGZh bHNlKTsKIAl2YWx1ZXNbQW51bV9wZ19pbmRleF9pbmRpc3JlYWR5IC0gMV0gPSBCb29sR2V0 RGF0dW0oaXNyZWFkeSk7CiAJdmFsdWVzW0FudW1fcGdfaW5kZXhfaW5kaXNsaXZlIC0gMV0g PSBCb29sR2V0RGF0dW0odHJ1ZSk7CisJdmFsdWVzW0FudW1fcGdfaW5kZXhfaW5kaXN1c2Vy Y2F0YWxvZyAtIDFdID0gQm9vbEdldERhdHVtKGlzX3VzZXJfY2F0YWxvZyk7CiAJdmFsdWVz W0FudW1fcGdfaW5kZXhfaW5kaXNyZXBsaWRlbnQgLSAxXSA9IEJvb2xHZXREYXR1bShmYWxz ZSk7CiAJdmFsdWVzW0FudW1fcGdfaW5kZXhfaW5ka2V5IC0gMV0gPSBQb2ludGVyR2V0RGF0 dW0oaW5ka2V5KTsKIAl2YWx1ZXNbQW51bV9wZ19pbmRleF9pbmRjb2xsYXRpb24gLSAxXSA9 IFBvaW50ZXJHZXREYXR1bShpbmRjb2xsYXRpb24pOwpAQCAtNzM1LDYgKzczOCw3IEBAIGlu ZGV4X2NyZWF0ZShSZWxhdGlvbiBoZWFwUmVsYXRpb24sCiAJVHJhbnNhY3Rpb25JZCByZWxm cm96ZW54aWQ7CiAJTXVsdGlYYWN0SWQgcmVsbWlubXhpZDsKIAlib29sCQljcmVhdGVfc3Rv cmFnZSA9ICFSZWxGaWxlTnVtYmVySXNWYWxpZChyZWxGaWxlTnVtYmVyKTsKKwlib29sCQlp c3VzZXJjYXRhbG9nID0gZmFsc2U7CiAKIAkvKiBjb25zdHJhaW50IGZsYWdzIGNhbiBvbmx5 IGJlIHNldCB3aGVuIGEgY29uc3RyYWludCBpcyByZXF1ZXN0ZWQgKi8KIAlBc3NlcnQoKGNv bnN0cl9mbGFncyA9PSAwKSB8fApAQCAtMTAxNCwxMyArMTAxOCwxNyBAQCBpbmRleF9jcmVh dGUoUmVsYXRpb24gaGVhcFJlbGF0aW9uLAogCSAqCSAgKE9yLCBjb3VsZCBkZWZpbmUgYSBy dWxlIHRvIG1haW50YWluIHRoZSBwcmVkaWNhdGUpIC0tTmVscywgRmViICc5MgogCSAqIC0t LS0tLS0tLS0tLS0tLS0KIAkgKi8KKwlpZiAoaGVhcFJlbGF0aW9uLT5yZF9vcHRpb25zKQor CQlpc3VzZXJjYXRhbG9nID0gKChTdGRSZE9wdGlvbnMgKikgKGhlYXBSZWxhdGlvbiktPnJk X29wdGlvbnMpLT51c2VyX2NhdGFsb2dfdGFibGU7CisKIAlVcGRhdGVJbmRleFJlbGF0aW9u KGluZGV4UmVsYXRpb25JZCwgaGVhcFJlbGF0aW9uSWQsIHBhcmVudEluZGV4UmVsaWQsCiAJ CQkJCQlpbmRleEluZm8sCiAJCQkJCQljb2xsYXRpb25PYmplY3RJZCwgY2xhc3NPYmplY3RJ ZCwgY29sb3B0aW9ucywKIAkJCQkJCWlzcHJpbWFyeSwgaXNfZXhjbHVzaW9uLAogCQkJCQkJ KGNvbnN0cl9mbGFncyAmIElOREVYX0NPTlNUUl9DUkVBVEVfREVGRVJSQUJMRSkgPT0gMCwK IAkJCQkJCSFjb25jdXJyZW50ICYmICFpbnZhbGlkLAotCQkJCQkJIWNvbmN1cnJlbnQpOwor CQkJCQkJIWNvbmN1cnJlbnQsCisJCQkJCQlpc3VzZXJjYXRhbG9nKTsKIAogCS8qCiAJICog UmVnaXN0ZXIgcmVsY2FjaGUgaW52YWxpZGF0aW9uIG9uIHRoZSBpbmRleGVzJyBoZWFwIHJl bGF0aW9uLCB0bwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRz LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwppbmRleCBlZTg4ZTg3ZDc2 Li5iNTYzNDhlMTFhIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNt ZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYwpAQCAtMTAzLDYg KzEwMyw3IEBACiAjaW5jbHVkZSAidXRpbHMvc3lzY2FjaGUuaCIKICNpbmNsdWRlICJ1dGls cy90aW1lc3RhbXAuaCIKICNpbmNsdWRlICJ1dGlscy90eXBjYWNoZS5oIgorI2luY2x1ZGUg InV0aWxzL3JlbC5oIgogCiAvKgogICogT04gQ09NTUlUIGFjdGlvbiBsaXN0CkBAIC0xNDE4 OSw2ICsxNDE5MCwxMCBAQCBBVEV4ZWNTZXRSZWxPcHRpb25zKFJlbGF0aW9uIHJlbCwgTGlz dCAqZGVmTGlzdCwgQWx0ZXJUYWJsZVR5cGUgb3BlcmF0aW9uLAogCURhdHVtCQlyZXBsX3Zh bFtOYXR0c19wZ19jbGFzc107CiAJYm9vbAkJcmVwbF9udWxsW05hdHRzX3BnX2NsYXNzXTsK IAlib29sCQlyZXBsX3JlcGxbTmF0dHNfcGdfY2xhc3NdOworCUxpc3RDZWxsICAgKmNlbGw7 CisJTGlzdAkgICAqcmVsX29wdGlvbnM7CisJYm9vbAkJY2F0YWxvZ190YWJsZV92YWwgPSBI RUFQX0RFRkFVTFRfVVNFUl9DQVRBTE9HX1RBQkxFOworCWJvb2wJCWNhdGFsb2dfdGFibGUg PSBmYWxzZTsKIAlzdGF0aWMgY2hhciAqdmFsaWRuc3BzW10gPSBIRUFQX1JFTE9QVF9OQU1F U1BBQ0VTOwogCiAJaWYgKGRlZkxpc3QgPT0gTklMICYmIG9wZXJhdGlvbiAhPSBBVF9SZXBs YWNlUmVsT3B0aW9ucykKQEAgLTE0MjU1LDcgKzE0MjYwLDYgQEAgQVRFeGVjU2V0UmVsT3B0 aW9ucyhSZWxhdGlvbiByZWwsIExpc3QgKmRlZkxpc3QsIEFsdGVyVGFibGVUeXBlIG9wZXJh dGlvbiwKIAl7CiAJCVF1ZXJ5CSAgICp2aWV3X3F1ZXJ5ID0gZ2V0X3ZpZXdfcXVlcnkocmVs KTsKIAkJTGlzdAkgICAqdmlld19vcHRpb25zID0gdW50cmFuc2Zvcm1SZWxPcHRpb25zKG5l d09wdGlvbnMpOwotCQlMaXN0Q2VsbCAgICpjZWxsOwogCQlib29sCQljaGVja19vcHRpb24g PSBmYWxzZTsKIAogCQlmb3JlYWNoKGNlbGwsIHZpZXdfb3B0aW9ucykKQEAgLTE0MjgzLDYg KzE0Mjg3LDIwIEBAIEFURXhlY1NldFJlbE9wdGlvbnMoUmVsYXRpb24gcmVsLCBMaXN0ICpk ZWZMaXN0LCBBbHRlclRhYmxlVHlwZSBvcGVyYXRpb24sCiAJCX0KIAl9CiAKKwkvKiBJZiB1 c2VyX2NhdGFsb2dfdGFibGUgaXMgcGFydCBvZiB0aGUgbmV3IG9wdGlvbnMsIHJlY29yZCBp dHMgbmV3IHZhbHVlICovCisJcmVsX29wdGlvbnMgPSB1bnRyYW5zZm9ybVJlbE9wdGlvbnMo bmV3T3B0aW9ucyk7CisKKwlmb3JlYWNoKGNlbGwsIHJlbF9vcHRpb25zKQorCXsKKwkJRGVm RWxlbSAgICAqZGVmZWwgPSAoRGVmRWxlbSAqKSBsZmlyc3QoY2VsbCk7CisKKwkJaWYgKHN0 cmNtcChkZWZlbC0+ZGVmbmFtZSwgInVzZXJfY2F0YWxvZ190YWJsZSIpID09IDApCisJCXsK KwkJCWNhdGFsb2dfdGFibGUgPSB0cnVlOworCQkJY2F0YWxvZ190YWJsZV92YWwgPSBkZWZH ZXRCb29sZWFuKGRlZmVsKTsKKwkJfQorCX0KKwogCS8qCiAJICogQWxsIHdlIG5lZWQgZG8g aGVyZSBpcyB1cGRhdGUgdGhlIHBnX2NsYXNzIHJvdzsgdGhlIG5ldyBvcHRpb25zIHdpbGwg YmUKIAkgKiBwcm9wYWdhdGVkIGludG8gcmVsY2FjaGVzIGR1cmluZyBwb3N0LWNvbW1pdCBj YWNoZSBpbnZhbC4KQEAgLTE0MzA5LDYgKzE0MzI3LDQxIEBAIEFURXhlY1NldFJlbE9wdGlv bnMoUmVsYXRpb24gcmVsLCBMaXN0ICpkZWZMaXN0LCBBbHRlclRhYmxlVHlwZSBvcGVyYXRp b24sCiAKIAlSZWxlYXNlU3lzQ2FjaGUodHVwbGUpOwogCisJLyogVXBkYXRlIHRoZSBpbmRl eGVzIGlmIHRoZXJlIGlzIGEgbmVlZCB0byAqLworCWlmIChjYXRhbG9nX3RhYmxlIHx8IG9w ZXJhdGlvbiA9PSBBVF9SZXNldFJlbE9wdGlvbnMpCisJeworCQlSZWxhdGlvbglwZ19pbmRl eDsKKwkJSGVhcFR1cGxlCXBnX2luZGV4X3R1cGxlOworCQlGb3JtX3BnX2luZGV4IHBnX2lu ZGV4X2Zvcm07CisJCUxpc3RDZWxsICAgKmluZGV4OworCisJCXBnX2luZGV4ID0gdGFibGVf b3BlbihJbmRleFJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJCWZvcmVhY2go aW5kZXgsIFJlbGF0aW9uR2V0SW5kZXhMaXN0KHJlbCkpCisJCXsKKwkJCU9pZAkJCXRoaXNJ bmRleE9pZCA9IGxmaXJzdF9vaWQoaW5kZXgpOworCisJCQlwZ19pbmRleF90dXBsZSA9IFNl YXJjaFN5c0NhY2hlQ29weTEoSU5ERVhSRUxJRCwKKwkJCQkJCQkJCQkJCSBPYmplY3RJZEdl dERhdHVtKHRoaXNJbmRleE9pZCkpOworCQkJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHBnX2lu ZGV4X3R1cGxlKSkKKwkJCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Ig aW5kZXggJXUiLCB0aGlzSW5kZXhPaWQpOworCQkJcGdfaW5kZXhfZm9ybSA9IChGb3JtX3Bn X2luZGV4KSBHRVRTVFJVQ1QocGdfaW5kZXhfdHVwbGUpOworCisJCQkvKiBNb2RpZnkgdGhl IGluZGV4IG9ubHkgaWYgdXNlcl9jYXRhbG9nX3RhYmxlIGRpZmZlciAqLworCQkJaWYgKGNh dGFsb2dfdGFibGVfdmFsICE9IHBnX2luZGV4X2Zvcm0tPmluZGlzdXNlcmNhdGFsb2cpCisJ CQl7CisJCQkJcGdfaW5kZXhfZm9ybS0+aW5kaXN1c2VyY2F0YWxvZyA9IGNhdGFsb2dfdGFi bGVfdmFsOworCQkJCUNhdGFsb2dUdXBsZVVwZGF0ZShwZ19pbmRleCwgJnBnX2luZGV4X3R1 cGxlLT50X3NlbGYsIHBnX2luZGV4X3R1cGxlKTsKKwkJCQlJbnZva2VPYmplY3RQb3N0QWx0 ZXJIb29rQXJnKEluZGV4UmVsYXRpb25JZCwgdGhpc0luZGV4T2lkLCAwLAorCQkJCQkJCQkJ CQkgSW52YWxpZE9pZCwgdHJ1ZSk7CisJCQl9CisKKwkJCWhlYXBfZnJlZXR1cGxlKHBnX2lu ZGV4X3R1cGxlKTsKKwkJfQorCisJCXRhYmxlX2Nsb3NlKHBnX2luZGV4LCBSb3dFeGNsdXNp dmVMb2NrKTsKKwl9CisKIAkvKiByZXBlYXQgdGhlIHdob2xlIGV4ZXJjaXNlIGZvciB0aGUg dG9hc3QgdGFibGUsIGlmIHRoZXJlJ3Mgb25lICovCiAJaWYgKE9pZElzVmFsaWQocmVsLT5y ZF9yZWwtPnJlbHRvYXN0cmVsaWQpKQogCXsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2Fj Y2Vzcy9naXN0eGxvZy5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3R4bG9nLmgKaW5kZXgg MzNmMWM3ZTMxYi4uNDBjM2VhOGY3MSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNz L2dpc3R4bG9nLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3R4bG9nLmgKQEAgLTQ5 LDYgKzQ5LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgZ2lzdHhsb2dQYWdlVXBkYXRlCiAgKi8KIHR5 cGVkZWYgc3RydWN0IGdpc3R4bG9nRGVsZXRlCiB7CisJYm9vbCAgICAgICAgb25DYXRhbG9n QWNjZXNzaWJsZUluTG9naWNhbERlY29kaW5nOwogCVRyYW5zYWN0aW9uSWQgc25hcHNob3RD b25mbGljdEhvcml6b247CiAJdWludDE2CQludG9kZWxldGU7CQkvKiBudW1iZXIgb2YgZGVs ZXRlZCBvZmZzZXRzICovCiAKQEAgLTk3LDYgKzk4LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgZ2lz dHhsb2dQYWdlRGVsZXRlCiAgKi8KIHR5cGVkZWYgc3RydWN0IGdpc3R4bG9nUGFnZVJldXNl CiB7CisJYm9vbCAgICAgICAgb25DYXRhbG9nQWNjZXNzaWJsZUluTG9naWNhbERlY29kaW5n OwogCVJlbEZpbGVMb2NhdG9yIGxvY2F0b3I7CiAJQmxvY2tOdW1iZXIgYmxvY2s7CiAJRnVs bFRyYW5zYWN0aW9uSWQgc25hcHNob3RDb25mbGljdEhvcml6b247CmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9hY2Nlc3MvaGFzaF94bG9nLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGFz aF94bG9nLmgKaW5kZXggNmRhZmI0YTU5OC4uMmVhZTY0NGU4OSAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvYWNjZXNzL2hhc2hfeGxvZy5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9o YXNoX3hsb2cuaApAQCAtMjUwLDYgKzI1MCw3IEBAIHR5cGVkZWYgc3RydWN0IHhsX2hhc2hf aW5pdF9iaXRtYXBfcGFnZQogICovCiB0eXBlZGVmIHN0cnVjdCB4bF9oYXNoX3ZhY3V1bV9v bmVfcGFnZQogeworCWJvb2wgICAgICAgIG9uQ2F0YWxvZ0FjY2Vzc2libGVJbkxvZ2ljYWxE ZWNvZGluZzsKIAlUcmFuc2FjdGlvbklkIHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uOwogCWlu dAkJCW50dXBsZXM7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1f eGxvZy5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9nLmgKaW5kZXggNWM3NzI5 MGVlYy4uM2Q4MTRhNWFlMiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBh bV94bG9nLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9nLmgKQEAgLTI0 Miw2ICsyNDIsNyBAQCB0eXBlZGVmIHN0cnVjdCB4bF9oZWFwX3VwZGF0ZQogICovCiB0eXBl ZGVmIHN0cnVjdCB4bF9oZWFwX3BydW5lCiB7CisJYm9vbCAgICAgICAgb25DYXRhbG9nQWNj ZXNzaWJsZUluTG9naWNhbERlY29kaW5nOwogCVRyYW5zYWN0aW9uSWQgc25hcHNob3RDb25m bGljdEhvcml6b247CiAJdWludDE2CQlucmVkaXJlY3RlZDsKIAl1aW50MTYJCW5kZWFkOwpA QCAtMzQyLDYgKzM0Myw3IEBAIHR5cGVkZWYgc3RydWN0IHhsX2hlYXBfZnJlZXplX3BsYW4K ICAqLwogdHlwZWRlZiBzdHJ1Y3QgeGxfaGVhcF9mcmVlemVfcGFnZQogeworCWJvb2wgICAg ICAgIG9uQ2F0YWxvZ0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZzsKIAlUcmFuc2FjdGlv bklkIHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uOwogCXVpbnQxNgkJbnBsYW5zOwogCkBAIC0z NTksNiArMzYxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgeGxfaGVhcF9mcmVlemVfcGFnZQogICov CiB0eXBlZGVmIHN0cnVjdCB4bF9oZWFwX3Zpc2libGUKIHsKKwlib29sICAgICAgICBvbkNh dGFsb2dBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2Rpbmc7CiAJVHJhbnNhY3Rpb25JZCBzbmFw c2hvdENvbmZsaWN0SG9yaXpvbjsKIAl1aW50OAkJZmxhZ3M7CiB9IHhsX2hlYXBfdmlzaWJs ZTsKQEAgLTQwOCw3ICs0MTEsNyBAQCBleHRlcm4gdm9pZCBoZWFwMl9kZXNjKFN0cmluZ0lu Zm8gYnVmLCBYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCk7CiBleHRlcm4gY29uc3QgY2hhciAq aGVhcDJfaWRlbnRpZnkodWludDggaW5mbyk7CiBleHRlcm4gdm9pZCBoZWFwX3hsb2dfbG9n aWNhbF9yZXdyaXRlKFhMb2dSZWFkZXJTdGF0ZSAqcik7CiAKLWV4dGVybiBYTG9nUmVjUHRy IGxvZ19oZWFwX3Zpc2libGUoUmVsRmlsZUxvY2F0b3IgcmxvY2F0b3IsIEJ1ZmZlciBoZWFw X2J1ZmZlciwKK2V4dGVybiBYTG9nUmVjUHRyIGxvZ19oZWFwX3Zpc2libGUoUmVsYXRpb24g cmVsLCBCdWZmZXIgaGVhcF9idWZmZXIsCiAJCQkJCQkJCSAgIEJ1ZmZlciB2bV9idWZmZXIs CiAJCQkJCQkJCSAgIFRyYW5zYWN0aW9uSWQgc25hcHNob3RDb25mbGljdEhvcml6b24sCiAJ CQkJCQkJCSAgIHVpbnQ4IHZtZmxhZ3MpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNj ZXNzL25idHhsb2cuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9uYnR4bG9nLmgKaW5kZXggM2Iy ZDk1OWM2OS4uMTkzMWYyYmJiYyAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL25i dHhsb2cuaAorKysgYi9zcmMvaW5jbHVkZS9hY2Nlc3MvbmJ0eGxvZy5oCkBAIC0xODUsNiAr MTg1LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgeGxfYnRyZWVfZGVkdXAKICAqLwogdHlwZWRlZiBz dHJ1Y3QgeGxfYnRyZWVfcmV1c2VfcGFnZQogeworCWJvb2wgICAgICAgIG9uQ2F0YWxvZ0Fj Y2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZzsKIAlSZWxGaWxlTG9jYXRvciBsb2NhdG9yOwog CUJsb2NrTnVtYmVyIGJsb2NrOwogCUZ1bGxUcmFuc2FjdGlvbklkIHNuYXBzaG90Q29uZmxp Y3RIb3Jpem9uOwpAQCAtMjMyLDYgKzIzMyw3IEBAIHR5cGVkZWYgc3RydWN0IHhsX2J0cmVl X3ZhY3V1bQogCiB0eXBlZGVmIHN0cnVjdCB4bF9idHJlZV9kZWxldGUKIHsKKwlib29sICAg ICAgICBvbkNhdGFsb2dBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2Rpbmc7CiAJVHJhbnNhY3Rp b25JZCBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbjsKIAl1aW50MTYJCW5kZWxldGVkOwogCXVp bnQxNgkJbnVwZGF0ZWQ7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9hY2Nlc3Mvc3BneGxv Zy5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3NwZ3hsb2cuaAppbmRleCA4MjMzMmNiNjk0Li4w NGZlNGE0YTUyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3Mvc3BneGxvZy5oCisr KyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9zcGd4bG9nLmgKQEAgLTIzNyw2ICsyMzcsNyBAQCB0 eXBlZGVmIHN0cnVjdCBzcGd4bG9nVmFjdXVtUm9vdAogCiB0eXBlZGVmIHN0cnVjdCBzcGd4 bG9nVmFjdXVtUmVkaXJlY3QKIHsKKwlib29sICAgICAgICBvbkNhdGFsb2dBY2Nlc3NpYmxl SW5Mb2dpY2FsRGVjb2Rpbmc7CiAJdWludDE2CQluVG9QbGFjZWhvbGRlcjsgLyogbnVtYmVy IG9mIHJlZGlyZWN0cyB0byBtYWtlIHBsYWNlaG9sZGVycyAqLwogCU9mZnNldE51bWJlciBm aXJzdFBsYWNlaG9sZGVyOwkvKiBmaXJzdCBwbGFjZWhvbGRlciB0dXBsZSB0byByZW1vdmUg Ki8KIAlUcmFuc2FjdGlvbklkIHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uOwkvKiBuZXdlc3Qg WElEIG9mIHJlbW92ZWQgcmVkaXJlY3RzICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX2luZGV4LmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2luZGV4LmgKaW5k ZXggZjg1Mzg0NmVlMS4uZGQxNjQzMTM3OCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19pbmRleC5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfaW5kZXguaApA QCAtNDMsNiArNDMsOCBAQCBDQVRBTE9HKHBnX2luZGV4LDI2MTAsSW5kZXhSZWxhdGlvbklk KSBCS0lfU0NIRU1BX01BQ1JPCiAJYm9vbAkJaW5kY2hlY2t4bWluOwkvKiBtdXN0IHdlIHdh aXQgZm9yIHhtaW4gdG8gYmUgb2xkPyAqLwogCWJvb2wJCWluZGlzcmVhZHk7CQkvKiBpcyB0 aGlzIGluZGV4IHJlYWR5IGZvciBpbnNlcnRzPyAqLwogCWJvb2wJCWluZGlzbGl2ZTsJCS8q IGlzIHRoaXMgaW5kZXggYWxpdmUgYXQgYWxsPyAqLworCWJvb2wJCWluZGlzdXNlcmNhdGFs b2c7CS8qIGlzIHRoaXMgaW5kZXggbGlua2VkIHRvIGEgdXNlciBjYXRhbG9nCisJCQkJCQkJ CQkgKiByZWxhdGlvbj8gKi8KIAlib29sCQlpbmRpc3JlcGxpZGVudDsgLyogaXMgdGhpcyBp bmRleCB0aGUgaWRlbnRpdHkgZm9yIHJlcGxpY2F0aW9uPyAqLwogCiAJLyogdmFyaWFibGUt bGVuZ3RoIGZpZWxkcyBzdGFydCBoZXJlLCBidXQgd2UgYWxsb3cgZGlyZWN0IGFjY2VzcyB0 byBpbmRrZXkgKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL3JlbC5oIGIvc3Jj L2luY2x1ZGUvdXRpbHMvcmVsLmgKaW5kZXggZjM4M2EyZmNhOS4uOWI3N2UyM2MyOSAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvcmVsLmgKKysrIGIvc3JjL2luY2x1ZGUvdXRp bHMvcmVsLmgKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJzdG9yYWdlL3NtZ3IuaCIK ICNpbmNsdWRlICJ1dGlscy9yZWxjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxzL3JlbHRyaWdn ZXIuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2NhdGFsb2cuaCIKIAogCiAvKgpAQCAtMzQzLDYg KzM0NCw3IEBAIHR5cGVkZWYgc3RydWN0IFN0ZFJkT3B0aW9ucwogCiAjZGVmaW5lIEhFQVBf TUlOX0ZJTExGQUNUT1IJCQkxMAogI2RlZmluZSBIRUFQX0RFRkFVTFRfRklMTEZBQ1RPUgkJ MTAwCisjZGVmaW5lIEhFQVBfREVGQVVMVF9VU0VSX0NBVEFMT0dfVEFCTEUJCWZhbHNlCiAK IC8qCiAgKiBSZWxhdGlvbkdldFRvYXN0VHVwbGVUYXJnZXQKQEAgLTM3OCw2ICszODAsOSBA QCB0eXBlZGVmIHN0cnVjdCBTdGRSZE9wdGlvbnMKICAqIFJlbGF0aW9uSXNVc2VkQXNDYXRh bG9nVGFibGUKICAqCQlSZXR1cm5zIHdoZXRoZXIgdGhlIHJlbGF0aW9uIHNob3VsZCBiZSB0 cmVhdGVkIGFzIGEgY2F0YWxvZyB0YWJsZQogICoJCWZyb20gdGhlIHBvdiBvZiBsb2dpY2Fs IGRlY29kaW5nLiAgTm90ZSBtdWx0aXBsZSBldmFsIG9mIGFyZ3VtZW50IQorICoJCVRoaXMg ZGVmaW5pdGlvbiBzaG91bGQgbm90IGludm9rZSBhbnl0aGluZyB0aGF0IHBlcmZvcm1zIGNh dGFsb2cKKyAqCQlhY2Nlc3M7IG90aGVyd2lzZSBpdCBtYXkgY2F1c2UgaW5maW5pdGUgcmVj dXJzaW9uLiBDaGVjayB0aGUgY29tbWVudHMKKyAqCQlpbiBSZWxhdGlvbklzQWNjZXNzaWJs ZUluTG9naWNhbERlY29kaW5nKCkgZm9yIGRldGFpbHMuCiAgKi8KICNkZWZpbmUgUmVsYXRp b25Jc1VzZWRBc0NhdGFsb2dUYWJsZShyZWxhdGlvbikJXAogCSgocmVsYXRpb24pLT5yZF9v cHRpb25zICYmIFwKQEAgLTY3OCwxMiArNjgzLDQxIEBAIFJlbGF0aW9uQ2xvc2VTbWdyKFJl bGF0aW9uIHJlbGF0aW9uKQogICogUmVsYXRpb25Jc0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNv ZGluZwogICoJCVRydWUgaWYgd2UgbmVlZCB0byBsb2cgZW5vdWdoIGluZm9ybWF0aW9uIHRv IGhhdmUgYWNjZXNzIHZpYQogICoJCWRlY29kaW5nIHNuYXBzaG90LgorICoJCVRoaXMgZGVm aW5pdGlvbiBzaG91bGQgbm90IGludm9rZSBhbnl0aGluZyB0aGF0IHBlcmZvcm1zIGNhdGFs b2cKKyAqCQlhY2Nlc3MuIE90aGVyd2lzZSwgZS5nLiBsb2dnaW5nIGEgV0FMIGVudHJ5IGZv ciBjYXRhbG9nIHJlbGF0aW9uIG1heQorICoJCWludm9rZSB0aGlzIGZ1bmN0aW9uLCB3aGlj aCB3aWxsIGluIHR1cm4gZG8gY2F0YWxvZyBhY2Nlc3MsIHdoaWNoIG1heQorICoJCWluIHR1 cm4gY2F1c2UgYW5vdGhlciBzaW1pbGFyIFdBTCBlbnRyeSB0byBiZSBsb2dnZWQsIGxlYWRp bmcgdG8KKyAqCQlpbmZpbml0ZSByZWN1cnNpb24uCiAgKi8KICNkZWZpbmUgUmVsYXRpb25J c0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyhyZWxhdGlvbikgXAogCShYTG9nTG9naWNh bEluZm9BY3RpdmUoKSAmJiBcCiAJIFJlbGF0aW9uTmVlZHNXQUwocmVsYXRpb24pICYmIFwK IAkgKElzQ2F0YWxvZ1JlbGF0aW9uKHJlbGF0aW9uKSB8fCBSZWxhdGlvbklzVXNlZEFzQ2F0 YWxvZ1RhYmxlKHJlbGF0aW9uKSkpCiAKKy8qCisgKiBJbmRleElzVXNlckNhdGFsb2cKKyAq CQlUcnVlIGlmIGluZGV4IGlzIGxpbmtlZCB0byBhIHVzZXIgY2F0YWxvZyByZWxhdGlvbi4K KyAqLworI2RlZmluZSBJbmRleElzVXNlckNhdGFsb2cocmVsYXRpb24pCQkJCQkJCQkJCQlc CisJKEFzc2VydE1hY3JvKHJlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9J TkRFWCksCQkJCVwKKwkgKHJlbGF0aW9uKS0+cmRfaW5kZXgtPmluZGlzdXNlcmNhdGFsb2cp CisKKy8qCisgKiBJbmRleElzQWNjZXNzaWJsZUluTG9naWNhbERlY29kaW5nCisgKgkJVHJ1 ZSBpZiB3ZSBuZWVkIHRvIGxvZyBlbm91Z2ggaW5mb3JtYXRpb24gdG8gaGF2ZSBhY2Nlc3Mg dmlhCisgKgkJZGVjb2Rpbmcgc25hcHNob3QuCisgKgkJVGhpcyBkZWZpbml0aW9uIHNob3Vs ZCBub3QgaW52b2tlIGFueXRoaW5nIHRoYXQgcGVyZm9ybXMgY2F0YWxvZworICoJCWFjY2Vz cy4gT3RoZXJ3aXNlLCBlLmcuIGxvZ2dpbmcgYSBXQUwgZW50cnkgZm9yIGNhdGFsb2cgcmVs YXRpb24gbWF5CisgKgkJaW52b2tlIHRoaXMgZnVuY3Rpb24sIHdoaWNoIHdpbGwgaW4gdHVy biBkbyBjYXRhbG9nIGFjY2Vzcywgd2hpY2ggbWF5CisgKgkJaW4gdHVybiBjYXVzZSBhbm90 aGVyIHNpbWlsYXIgV0FMIGVudHJ5IHRvIGJlIGxvZ2dlZCwgbGVhZGluZyB0bworICoJCWlu ZmluaXRlIHJlY3Vyc2lvbi4KKyAqLworI2RlZmluZSBJbmRleElzQWNjZXNzaWJsZUluTG9n aWNhbERlY29kaW5nKHJlbGF0aW9uKSBcCisJKEFzc2VydE1hY3JvKHJlbGF0aW9uLT5yZF9y ZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9JTkRFWCksIFwKKwkgWExvZ0xvZ2ljYWxJbmZvQWN0 aXZlKCkgJiYgXAorCSBSZWxhdGlvbk5lZWRzV0FMKHJlbGF0aW9uKSAmJiBcCisJIChJc0Nh dGFsb2dSZWxhdGlvbihyZWxhdGlvbikgfHwgSW5kZXhJc1VzZXJDYXRhbG9nKHJlbGF0aW9u KSkpCisKIC8qCiAgKiBSZWxhdGlvbklzTG9naWNhbGx5TG9nZ2VkCiAgKgkJVHJ1ZSBpZiB3 ZSBuZWVkIHRvIGxvZyBlbm91Z2ggaW5mb3JtYXRpb24gdG8gZXh0cmFjdCB0aGUgZGF0YSBm cm9tIHRoZQotLSAKMi4zNC4xCgo= --------------CJJNZUFIbsklop00k5Z4QnhV--