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 1p8GMz-00008r-9l for pgsql-hackers@arkaria.postgresql.org; Thu, 22 Dec 2022 07:52:01 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1p8GMx-0001WF-Sh for pgsql-hackers@arkaria.postgresql.org; Thu, 22 Dec 2022 07:51:59 +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 1p8GMx-0001W5-9O for pgsql-hackers@lists.postgresql.org; Thu, 22 Dec 2022 07:51:59 +0000 Received: from mail-wr1-x433.google.com ([2a00:1450:4864:20::433]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1p8GMr-0001U5-ED for pgsql-hackers@postgresql.org; Thu, 22 Dec 2022 07:51:58 +0000 Received: by mail-wr1-x433.google.com with SMTP id h16so770999wrz.12 for ; Wed, 21 Dec 2022 23:51:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=in-reply-to:content-language:references:cc:to:from:subject :user-agent:mime-version:date:message-id:from:to:cc:subject:date :message-id:reply-to; bh=LlJ5UMRMzOvv8yjsQWSpPFP53wZtZiPHaeow15nQhe4=; b=qEdpaDIM0G3opz7lIl4Bb76EERI0Q1XhC+Vk7e/8sGoeNrsIzuQxVQ8hqhjLn+KLEj /qPaYRzatxXhxxyxQQLMdNcGD1Fcz1jXYlypLtHdBKTK4VtjZsmyojwYPDdV5nVCpYEP QrotdZbL7p58UkATItiQ/OGBjrzysABv8837csqaeDuycFaAM+wzTFJkdE6usVNtWjaZ P9GKZlEk7IojFPSxXkomzxPs3tYXLuMZooKcih1+MO6EjP+236WygsAArv+3sCwiNivd bP4NSzry4OJ7mbmu2HAJs645Iz6eJK7/P20tYE8pj+OVtq16gpka82SlmIsTiiJEhC/F jImw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:content-language:references:cc:to:from:subject :user-agent:mime-version:date:message-id:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=LlJ5UMRMzOvv8yjsQWSpPFP53wZtZiPHaeow15nQhe4=; b=x1DwHsdTZMBYkIMgVOtFMVbF+WULNiqSRh7oSfsE+L1u/gXX95FwxAt7/AJ6/JfD3u xd5pIr2eNRB61CqOAzCVkXtWYo4hLqzycivHsdScTVWgkmjla8bK61On//v+roaiAX+q eJc7+pT+kg3srdDMXres/k8OExr/gFOl42ffkKBUVGHdPHQuXYBExIwerBer2ggrIHoi jLmbVMb0N0VQF48eUMlYUNx/aXY53A0kV2VBv0slOJPEAMmljpdwUAza8kOeqBQLEZEZ /DzHSk4XQax5UoOB8+PVvO6QDV485pCVTv3CDPsIqXQh25pe0jqKbJlnfNS5aEter78e mnfA== X-Gm-Message-State: AFqh2kq6VgeTNWhxjIz+Feh/8l2Bg8gK8fJ4GqXmq7+UPCLpwP1Ps0qE mHcwtUOWg5RULwqgjC6wjwU= X-Google-Smtp-Source: AMrXdXsLpEgeBTeXzxBOG2MG+bFHzUv26dngblRH+blNkI0F8zuioCDT+5y2MTR8cNtDOODB1bCk6Q== X-Received: by 2002:adf:ed0a:0:b0:242:142a:c8ba with SMTP id a10-20020adfed0a000000b00242142ac8bamr2691204wro.52.1671695512226; Wed, 21 Dec 2022 23:51:52 -0800 (PST) Received: from [192.168.6.196] ([54.239.6.185]) by smtp.gmail.com with ESMTPSA id bj19-20020a0560001e1300b002238ea5750csm20681697wrb.72.2022.12.21.23.51.50 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Wed, 21 Dec 2022 23:51:51 -0800 (PST) Content-Type: multipart/mixed; boundary="------------33idPHuZjSjOk9JsByk0nzBq" Message-ID: Date: Thu, 22 Dec 2022 08:50:34 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:102.0) Gecko/20100101 Thunderbird/102.6.0 Subject: Re: Minimal logical decoding on standbys From: "Drouvot, Bertrand" To: Robert Haas , Andres Freund Cc: Alvaro Herrera , Ibrar Ahmed , Amit Khandekar , fabriziomello@gmail.com, tushar , Rahila Syed , pgsql-hackers References: <4b19419f-2e7c-a76b-c948-26d10af6693d@gmail.com> <20221207175824.apmc5clnj2fdjkaq@awork3.anarazel.de> <09c26df0-c5f9-eae0-5a6a-10fb00b0522e@gmail.com> <9f0a021e-40e1-0ae6-8086-a4457c99749e@gmail.com> <0ae83e69-bda0-0eb8-ef4a-d169292e3f66@gmail.com> <47f5faf0-6a6d-602a-5d5b-9449ca74c6ad@gmail.com> <20221214173552.sshklqvwezeo52h3@alap3.anarazel.de> <1f2ad9fd-53ff-74cc-a602-72d45423bcab@gmail.com> Content-Language: en-US In-Reply-To: <1f2ad9fd-53ff-74cc-a602-72d45423bcab@gmail.com> 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. --------------33idPHuZjSjOk9JsByk0nzBq Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Hi, On 12/21/22 10:06 AM, Drouvot, Bertrand wrote: > Hi, > > On 12/20/22 10:41 PM, Robert Haas wrote: >> On Tue, Dec 20, 2022 at 3:39 PM Robert Haas wrote: >> I guess whatever else we >> do here, we should fix the comments. >> > > Agree, please find attached a patch proposal doing so. > > >> Bottom line is that I think the two cases that have alignment issues >> as coded are xl_hash_vacuum_one_page and gistxlogDelete. Everything >> else is OK, as far as I can tell right now. >> > > Thanks a lot for the repro(s) and explanations! That's very useful/helpful. > > Based on your discovery about the wrong comments above, I'm now tempted to fix those 2 alignment issues > by using a FLEXIBLE_ARRAY_MEMBER within those structs (as you proposed in [1]) (as that should also prevent > any possible wrong comments about where the array is located). > > What do you think? As mentioned above, It looks to me that making use of a FLEXIBLE_ARRAY_MEMBER is a good choice. So, please find attached v35 making use of a FLEXIBLE_ARRAY_MEMBER in xl_hash_vacuum_one_page and gistxlogDelete (your 2 repros are not failing anymore). I've also added a few words in the commit message in 0001 about it. So, we end up with: (gdb) ptype /o struct xl_hash_vacuum_one_page /* offset | size */ type = struct xl_hash_vacuum_one_page { /* 0 | 4 */ TransactionId snapshotConflictHorizon; /* 4 | 4 */ int ntuples; /* 8 | 1 */ _Bool isCatalogRel; /* XXX 1-byte hole */ /* 10 | 0 */ OffsetNumber offsets[]; /* XXX 2-byte padding */ /* total size (bytes): 12 */ } (gdb) ptype /o struct gistxlogDelete /* offset | size */ type = struct gistxlogDelete { /* 0 | 4 */ TransactionId snapshotConflictHorizon; /* 4 | 2 */ uint16 ntodelete; /* 6 | 1 */ _Bool isCatalogRel; /* XXX 1-byte hole */ /* 8 | 0 */ OffsetNumber offsets[]; /* total size (bytes): 8 */ } While looking at it, I've a question: xl_hash_vacuum_one_page.ntuples is an int, do you see any reason why it is not an uint16? (we would get rid of 4 bytes in the struct). Regards, -- Bertrand Drouvot PostgreSQL Contributors Team RDS Open Source Databases Amazon Web Services: https://aws.amazon.com --------------33idPHuZjSjOk9JsByk0nzBq Content-Type: text/plain; charset=UTF-8; name="v35-0006-Fixing-Walsender-corner-case-with-logical-decodi.patch" Content-Disposition: attachment; filename*0="v35-0006-Fixing-Walsender-corner-case-with-logical-decodi.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSBhNzY1MTAzZDg4NDExZTM0NGJjMmIwNTg5NzYzMWEzZTY5NTI2NDY3IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogV2VkLCAyMSBEZWMgMjAyMiAxNDoxNDoxMCArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjM1IDYvNl0gRml4aW5nIFdhbHNlbmRlciBjb3JuZXIgY2FzZSB3aXRoIGxvZ2ljYWwg ZGVjb2Rpbmcgb24KIHN0YW5kYnkuCgpUaGUgcHJvYmxlbSBpcyB0aGF0IFdhbFNuZFdhaXRG b3JXYWwoKSB3YWl0cyBmb3IgdGhlICpyZXBsYXkqIExTTiB0bwppbmNyZWFzZSwgYnV0IGdl dHMgd29rZW4gdXAgYnkgd2FscmVjZWl2ZXIgd2hlbiBuZXcgV0FMIGhhcyBiZWVuCmZsdXNo ZWQuIFdoaWNoIG1lYW5zIHRoYXQgdHlwaWNhbGx5IHdhbHNlbmRlcnMgd2lsbCBnZXQgd29r ZW4gdXAgYXQgdGhlCnNhbWUgdGltZSB0aGF0IHRoZSBzdGFydHVwIHByb2Nlc3Mgd2lsbCBi ZSAtIHdoaWNoIG1lYW5zIHRoYXQgYnkgdGhlCnRpbWUgdGhlIGxvZ2ljYWwgd2Fsc2VuZGVy IGNoZWNrcyBHZXRYTG9nUmVwbGF5UmVjUHRyKCkgaXQncyB1bmxpa2VseQp0aGF0IHRoZSBz dGFydHVwIHByb2Nlc3MgYWxyZWFkeSByZXBsYXllZCB0aGUgcmVjb3JkIGFuZCB1cGRhdGVk ClhMb2dDdGwtPmxhc3RSZXBsYXllZEVuZFJlY1B0ci4KCkludHJvZHVjaW5nIGEgbmV3IGNv bmRpdGlvbiB2YXJpYWJsZSB0byBmaXggdGhpcyBjb3JuZXIgY2FzZS4KLS0tCiBzcmMvYmFj a2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9ncmVjb3ZlcnkuYyB8IDI4ICsrKysrKysrKysrKysr KysrKysrCiBzcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYyAgICAgICB8IDMx ICsrKysrKysrKysrKysrKysrLS0tLS0tCiBzcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS93 YWl0X2V2ZW50LmMgICB8ICAzICsrKwogc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2dyZWNvdmVy eS5oICAgICAgICAgfCAgMyArKysKIHNyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHNlbmRl ci5oICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUvdXRpbHMvd2FpdF9ldmVudC5oICAgICAg ICAgICAgfCAgMSArCiA2IGZpbGVzIGNoYW5nZWQsIDU5IGluc2VydGlvbnMoKyksIDggZGVs ZXRpb25zKC0pCiAgNDEuMiUgc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vCiAgNDguNSUg c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vCiAgIDMuNiUgc3JjL2JhY2tlbmQvdXRpbHMvYWN0 aXZpdHkvCiAgIDMuNCUgc3JjL2luY2x1ZGUvYWNjZXNzLwoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2dyZWNvdmVyeS5jIGIvc3JjL2JhY2tlbmQvYWNj ZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMKaW5kZXggZDVhODFmOWQ4My4uYWM4YjE2OWFi NSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5 LmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZ3JlY292ZXJ5LmMKQEAg LTM1OCw2ICszNTgsOSBAQCB0eXBlZGVmIHN0cnVjdCBYTG9nUmVjb3ZlcnlDdGxEYXRhCiAJ UmVjb3ZlcnlQYXVzZVN0YXRlIHJlY292ZXJ5UGF1c2VTdGF0ZTsKIAlDb25kaXRpb25WYXJp YWJsZSByZWNvdmVyeU5vdFBhdXNlZENWOwogCisJLyogUmVwbGF5IHN0YXRlIChzZWUgZ2V0 UmVwbGF5ZWRDVigpIGZvciBtb3JlIGV4cGxhbmF0aW9uKSAqLworCUNvbmRpdGlvblZhcmlh YmxlIHJlcGxheWVkQ1Y7CisKIAlzbG9ja190CQlpbmZvX2xjazsJCS8qIGxvY2tzIHNoYXJl ZCB2YXJpYWJsZXMgc2hvd24gYWJvdmUgKi8KIH0gWExvZ1JlY292ZXJ5Q3RsRGF0YTsKIApA QCAtNDY3LDYgKzQ3MCw3IEBAIFhMb2dSZWNvdmVyeVNobWVtSW5pdCh2b2lkKQogCVNwaW5M b2NrSW5pdCgmWExvZ1JlY292ZXJ5Q3RsLT5pbmZvX2xjayk7CiAJSW5pdFNoYXJlZExhdGNo KCZYTG9nUmVjb3ZlcnlDdGwtPnJlY292ZXJ5V2FrZXVwTGF0Y2gpOwogCUNvbmRpdGlvblZh cmlhYmxlSW5pdCgmWExvZ1JlY292ZXJ5Q3RsLT5yZWNvdmVyeU5vdFBhdXNlZENWKTsKKwlD b25kaXRpb25WYXJpYWJsZUluaXQoJlhMb2dSZWNvdmVyeUN0bC0+cmVwbGF5ZWRDVik7CiB9 CiAKIC8qCkBAIC0xOTE2LDYgKzE5MjAsMTEgQEAgQXBwbHlXYWxSZWNvcmQoWExvZ1JlYWRl clN0YXRlICp4bG9ncmVhZGVyLCBYTG9nUmVjb3JkICpyZWNvcmQsIFRpbWVMaW5lSUQgKnJl cGwKIAlYTG9nUmVjb3ZlcnlDdGwtPmxhc3RSZXBsYXllZFRMSSA9ICpyZXBsYXlUTEk7CiAJ U3BpbkxvY2tSZWxlYXNlKCZYTG9nUmVjb3ZlcnlDdGwtPmluZm9fbGNrKTsKIAorCS8qCisJ ICogd2FrZSB1cCB3YWxzZW5kZXIocykgdXNlZCBieSBsb2dpY2FsIGRlY29kaW5nIG9uIHN0 YW5kYnkuCisJICovCisJQ29uZGl0aW9uVmFyaWFibGVCcm9hZGNhc3QoJlhMb2dSZWNvdmVy eUN0bC0+cmVwbGF5ZWRDVik7CisKIAkvKgogCSAqIElmIHJtX3JlZG8gY2FsbGVkIFhMb2dS ZXF1ZXN0V2FsUmVjZWl2ZXJSZXBseSwgdGhlbiB3ZSB3YWtlIHVwIHRoZQogCSAqIHJlY2Vp dmVyIHNvIHRoYXQgaXQgbm90aWNlcyB0aGUgdXBkYXRlZCBsYXN0UmVwbGF5ZWRFbmRSZWNQ dHIgYW5kIHNlbmRzCkBAIC00OTE2LDMgKzQ5MjUsMjIgQEAgYXNzaWduX3JlY292ZXJ5X3Rh cmdldF94aWQoY29uc3QgY2hhciAqbmV3dmFsLCB2b2lkICpleHRyYSkKIAllbHNlCiAJCXJl Y292ZXJ5VGFyZ2V0ID0gUkVDT1ZFUllfVEFSR0VUX1VOU0VUOwogfQorCisvKgorICogUmV0 dXJuIHRoZSBDb25kaXRpb25WYXJpYWJsZSBpbmRpY2F0aW5nIHRoYXQgYSByZXBsYXkgaGFz IGJlZW4gZG9uZS4KKyAqCisgKiBUaGlzIGlzIG5lZWRlZCBmb3IgbG9naWNhbCBkZWNvZGlu ZyBvbiBzdGFuZGJ5LiBJbmRlZWQgdGhlICJwcm9ibGVtIiBpcyB0aGF0CisgKiBXYWxTbmRX YWl0Rm9yV2FsKCkgd2FpdHMgZm9yIHRoZSAqcmVwbGF5KiBMU04gdG8gaW5jcmVhc2UsIGJ1 dCBnZXRzIHdva2VuIHVwCisgKiBieSB3YWxyZWNlaXZlciB3aGVuIG5ldyBXQUwgaGFzIGJl ZW4gZmx1c2hlZC4gV2hpY2ggbWVhbnMgdGhhdCB0eXBpY2FsbHkKKyAqIHdhbHNlbmRlcnMg d2lsbCBnZXQgd29rZW4gdXAgYXQgdGhlIHNhbWUgdGltZSB0aGF0IHRoZSBzdGFydHVwIHBy b2Nlc3MKKyAqIHdpbGwgYmUgLSB3aGljaCBtZWFucyB0aGF0IGJ5IHRoZSB0aW1lIHRoZSBs b2dpY2FsIHdhbHNlbmRlciBjaGVja3MKKyAqIEdldFhMb2dSZXBsYXlSZWNQdHIoKSBpdCdz IHVubGlrZWx5IHRoYXQgdGhlIHN0YXJ0dXAgcHJvY2VzcyBhbHJlYWR5IHJlcGxheWVkCisg KiB0aGUgcmVjb3JkIGFuZCB1cGRhdGVkIFhMb2dDdGwtPmxhc3RSZXBsYXllZEVuZFJlY1B0 ci4KKyAqCisgKiBUaGUgQ29uZGl0aW9uVmFyaWFibGUgWExvZ1JlY292ZXJ5Q3RsLT5yZXBs YXllZENWIHNvbHZlcyB0aGlzIGNvcm5lciBjYXNlLgorICovCitDb25kaXRpb25WYXJpYWJs ZSAqCitnZXRSZXBsYXllZENWKHZvaWQpCit7CisJcmV0dXJuICZYTG9nUmVjb3ZlcnlDdGwt PnJlcGxheWVkQ1Y7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93 YWxzZW5kZXIuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCmluZGV4 IDk2NjJlMzE2YzkuLjhjOGRiZTgxMmYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxp Y2F0aW9uL3dhbHNlbmRlci5jCisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNl bmRlci5jCkBAIC0xNTQ4LDYgKzE1NDgsNyBAQCBXYWxTbmRXYWl0Rm9yV2FsKFhMb2dSZWNQ dHIgbG9jKQogewogCWludAkJCXdha2VFdmVudHM7CiAJc3RhdGljIFhMb2dSZWNQdHIgUmVj ZW50Rmx1c2hQdHIgPSBJbnZhbGlkWExvZ1JlY1B0cjsKKwlDb25kaXRpb25WYXJpYWJsZSAq cmVwbGF5ZWRDViA9IGdldFJlcGxheWVkQ1YoKTsKIAogCS8qCiAJICogRmFzdCBwYXRoIHRv IGF2b2lkIGFjcXVpcmluZyB0aGUgc3BpbmxvY2sgaW4gY2FzZSB3ZSBhbHJlYWR5IGtub3cg d2UKQEAgLTE1NjYsNyArMTU2Nyw2IEBAIFdhbFNuZFdhaXRGb3JXYWwoWExvZ1JlY1B0ciBs b2MpCiAKIAlmb3IgKDs7KQogCXsKLQkJbG9uZwkJc2xlZXB0aW1lOwogCiAJCS8qIENsZWFy IGFueSBhbHJlYWR5LXBlbmRpbmcgd2FrZXVwcyAqLwogCQlSZXNldExhdGNoKE15TGF0Y2gp OwpAQCAtMTY1MCwyMCArMTY1MCwzNSBAQCBXYWxTbmRXYWl0Rm9yV2FsKFhMb2dSZWNQdHIg bG9jKQogCQlXYWxTbmRLZWVwYWxpdmVJZk5lY2Vzc2FyeSgpOwogCiAJCS8qCi0JCSAqIFNs ZWVwIHVudGlsIHNvbWV0aGluZyBoYXBwZW5zIG9yIHdlIHRpbWUgb3V0LiAgQWxzbyB3YWl0 IGZvciB0aGUKLQkJICogc29ja2V0IGJlY29taW5nIHdyaXRhYmxlLCBpZiB0aGVyZSdzIHN0 aWxsIHBlbmRpbmcgb3V0cHV0LgorCQkgKiBXaGVuIG5vdCBpbiByZWNvdmVyeSwgc2xlZXAg dW50aWwgc29tZXRoaW5nIGhhcHBlbnMgb3Igd2UgdGltZSBvdXQuCisJCSAqIEFsc28gd2Fp dCBmb3IgdGhlIHNvY2tldCBiZWNvbWluZyB3cml0YWJsZSwgaWYgdGhlcmUncyBzdGlsbCBw ZW5kaW5nIG91dHB1dC4KIAkJICogT3RoZXJ3aXNlIHdlIG1pZ2h0IHNpdCBvbiBzZW5kYWJs ZSBvdXRwdXQgZGF0YSB3aGlsZSB3YWl0aW5nIGZvcgogCQkgKiBuZXcgV0FMIHRvIGJlIGdl bmVyYXRlZC4gIChCdXQgaWYgd2UgaGF2ZSBub3RoaW5nIHRvIHNlbmQsIHdlIGRvbid0CiAJ CSAqIHdhbnQgdG8gd2FrZSBvbiBzb2NrZXQtd3JpdGFibGUuKQogCQkgKi8KLQkJc2xlZXB0 aW1lID0gV2FsU25kQ29tcHV0ZVNsZWVwdGltZShHZXRDdXJyZW50VGltZXN0YW1wKCkpOwor CQlpZiAoIVJlY292ZXJ5SW5Qcm9ncmVzcygpKQorCQl7CisJCQlsb25nCQlzbGVlcHRpbWU7 CisJCQlzbGVlcHRpbWUgPSBXYWxTbmRDb21wdXRlU2xlZXB0aW1lKEdldEN1cnJlbnRUaW1l c3RhbXAoKSk7CiAKLQkJd2FrZUV2ZW50cyA9IFdMX1NPQ0tFVF9SRUFEQUJMRTsKKwkJCXdh a2VFdmVudHMgPSBXTF9TT0NLRVRfUkVBREFCTEU7CiAKLQkJaWYgKHBxX2lzX3NlbmRfcGVu ZGluZygpKQotCQkJd2FrZUV2ZW50cyB8PSBXTF9TT0NLRVRfV1JJVEVBQkxFOworCQkJaWYg KHBxX2lzX3NlbmRfcGVuZGluZygpKQorCQkJCXdha2VFdmVudHMgfD0gV0xfU09DS0VUX1dS SVRFQUJMRTsKIAotCQlXYWxTbmRXYWl0KHdha2VFdmVudHMsIHNsZWVwdGltZSwgV0FJVF9F VkVOVF9XQUxfU0VOREVSX1dBSVRfV0FMKTsKKwkJCVdhbFNuZFdhaXQod2FrZUV2ZW50cywg c2xlZXB0aW1lICogMTAsIFdBSVRfRVZFTlRfV0FMX1NFTkRFUl9XQUlUX1dBTCk7CisJCX0K KwkJZWxzZQorCQkvKgorCQkgKiBXZSBhcmUgaW4gdGhlIGxvZ2ljYWwgZGVjb2Rpbmcgb24g c3RhbmRieSBjYXNlLgorCQkgKiBXZSBhcmUgd2FpdGluZyBmb3IgdGhlIHN0YXJ0dXAgcHJv Y2VzcyB0byByZXBsYXkgd2FsIHJlY29yZChzKSB1c2luZworCQkgKiBhIHRpbWVvdXQgaW4g Y2FzZSB3ZSBhcmUgcmVxdWVzdGVkIHRvIHN0b3AuCisJCSAqLworCQl7CisJCQlDb25kaXRp b25WYXJpYWJsZVByZXBhcmVUb1NsZWVwKHJlcGxheWVkQ1YpOworCQkJQ29uZGl0aW9uVmFy aWFibGVUaW1lZFNsZWVwKHJlcGxheWVkQ1YsIDEwMDAsCisJCQkJCQkJCQkJV0FJVF9FVkVO VF9XQUxfU0VOREVSX1dBSVRfUkVQTEFZKTsKKwkJfQogCX0KIAogCS8qIHJlYWN0aXZhdGUg bGF0Y2ggc28gV2FsU25kTG9vcCBrbm93cyB0byBjb250aW51ZSAqLwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvd2FpdF9ldmVudC5jIGIvc3JjL2JhY2tlbmQv dXRpbHMvYWN0aXZpdHkvd2FpdF9ldmVudC5jCmluZGV4IGIyYWJkNzVkZGIuLjNmNjA1OTgw NWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3dhaXRfZXZlbnQu YworKysgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS93YWl0X2V2ZW50LmMKQEAgLTQ1 Nyw2ICs0NTcsOSBAQCBwZ3N0YXRfZ2V0X3dhaXRfaXBjKFdhaXRFdmVudElQQyB3KQogCQlj YXNlIFdBSVRfRVZFTlRfV0FMX1JFQ0VJVkVSX1dBSVRfU1RBUlQ6CiAJCQlldmVudF9uYW1l ID0gIldhbFJlY2VpdmVyV2FpdFN0YXJ0IjsKIAkJCWJyZWFrOworCQljYXNlIFdBSVRfRVZF TlRfV0FMX1NFTkRFUl9XQUlUX1JFUExBWToKKwkJCWV2ZW50X25hbWUgPSAiV2FsUmVjZWl2 ZXJXYWl0UmVwbGF5IjsKKwkJCWJyZWFrOwogCQljYXNlIFdBSVRfRVZFTlRfWEFDVF9HUk9V UF9VUERBVEU6CiAJCQlldmVudF9uYW1lID0gIlhhY3RHcm91cFVwZGF0ZSI7CiAJCQlicmVh azsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9ncmVjb3ZlcnkuaCBiL3Ny Yy9pbmNsdWRlL2FjY2Vzcy94bG9ncmVjb3ZlcnkuaAppbmRleCBmMzM5ODQyNWQ4Li4wYWZk NTdlY2FjIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MveGxvZ3JlY292ZXJ5LmgK KysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2dyZWNvdmVyeS5oCkBAIC0xNSw2ICsxNSw3 IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19jb250cm9sLmgiCiAjaW5jbHVkZSAibGliL3N0 cmluZ2luZm8uaCIKICNpbmNsdWRlICJ1dGlscy90aW1lc3RhbXAuaCIKKyNpbmNsdWRlICJz dG9yYWdlL2NvbmRpdGlvbl92YXJpYWJsZS5oIgogCiAvKgogICogUmVjb3ZlcnkgdGFyZ2V0 IHR5cGUuCkBAIC0xNTUsNCArMTU2LDYgQEAgZXh0ZXJuIHZvaWQgUmVjb3ZlcnlSZXF1aXJl c0ludFBhcmFtZXRlcihjb25zdCBjaGFyICpwYXJhbV9uYW1lLCBpbnQgY3VyclZhbHVlLAog CiBleHRlcm4gdm9pZCB4bG9nX291dGRlc2MoU3RyaW5nSW5mbyBidWYsIFhMb2dSZWFkZXJT dGF0ZSAqcmVjb3JkKTsKIAorZXh0ZXJuIENvbmRpdGlvblZhcmlhYmxlICpnZXRSZXBsYXll ZENWKHZvaWQpOworCiAjZW5kaWYJCQkJCQkJLyogWExPR1JFQ09WRVJZX0ggKi8KZGlmZiAt LWdpdCBhL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5oIGIvc3JjL2luY2x1 ZGUvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmgKaW5kZXggODMzNmE2ZTcxOS4uNTUwZWYzMTA3 ZiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmgKKysr IGIvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vd2Fsc2VuZGVyLmgKQEAgLTEzLDYgKzEzLDcg QEAKICNkZWZpbmUgX1dBTFNFTkRFUl9ICiAKICNpbmNsdWRlIDxzaWduYWwuaD4KKyNpbmNs dWRlICJzdG9yYWdlL2NvbmRpdGlvbl92YXJpYWJsZS5oIgogCiAvKgogICogV2hhdCB0byBk byB3aXRoIGEgc25hcHNob3QgaW4gY3JlYXRlIHJlcGxpY2F0aW9uIHNsb3QgY29tbWFuZC4K ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3V0aWxzL3dhaXRfZXZlbnQuaCBiL3NyYy9pbmNs dWRlL3V0aWxzL3dhaXRfZXZlbnQuaAppbmRleCAwYjIxMDBiZTRhLi4zMGMyY2YzNWFlIDEw MDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy93YWl0X2V2ZW50LmgKKysrIGIvc3JjL2lu Y2x1ZGUvdXRpbHMvd2FpdF9ldmVudC5oCkBAIC0xMjgsNiArMTI4LDcgQEAgdHlwZWRlZiBl bnVtCiAJV0FJVF9FVkVOVF9TWU5DX1JFUCwKIAlXQUlUX0VWRU5UX1dBTF9SRUNFSVZFUl9F WElULAogCVdBSVRfRVZFTlRfV0FMX1JFQ0VJVkVSX1dBSVRfU1RBUlQsCisJV0FJVF9FVkVO VF9XQUxfU0VOREVSX1dBSVRfUkVQTEFZLAogCVdBSVRfRVZFTlRfWEFDVF9HUk9VUF9VUERB VEUKIH0gV2FpdEV2ZW50SVBDOwogCi0tIAoyLjM0LjEKCg== --------------33idPHuZjSjOk9JsByk0nzBq Content-Type: text/plain; charset=UTF-8; name="v35-0005-Doc-changes-describing-details-about-logical-dec.patch" Content-Disposition: attachment; filename*0="v35-0005-Doc-changes-describing-details-about-logical-dec.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA1MjUxODM2ZTY2Mjk0MjgzNTZmYmViNTU0MDMzMTRiMDYyYzQ1YTA1IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogV2VkLCAyMSBEZWMgMjAyMiAxNDoxMzoxMyArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjM1IDUvNl0gRG9jIGNoYW5nZXMgZGVzY3JpYmluZyBkZXRhaWxzIGFib3V0IGxvZ2lj YWwKIGRlY29kaW5nLgoKQXV0aG9yOiBBbmRyZXMgRnJldW5kIChpbiBhbiBvbGRlciB2ZXJz aW9uKSwgQW1pdCBLaGFuZGVrYXIsIEJlcnRyYW5kIERyb3V2b3QKUmV2aWV3ZWQtQnk6IEJl cnRyYW5kIERyb3V2b3QsIEFuZHJlcyBGcmV1bmQsIFJvYmVydCBIYWFzLCBGYWJyaXppbyBk ZSBSb3llcyBNZWxsbwotLS0KIGRvYy9zcmMvc2dtbC9sb2dpY2FsZGVjb2Rpbmcuc2dtbCB8 IDIxICsrKysrKysrKysrKysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDIxIGluc2VydGlv bnMoKykKIDEwMC4wJSBkb2Mvc3JjL3NnbWwvCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21s L2xvZ2ljYWxkZWNvZGluZy5zZ21sIGIvZG9jL3NyYy9zZ21sL2xvZ2ljYWxkZWNvZGluZy5z Z21sCmluZGV4IDM4ZWU2OWRjY2MuLjlhY2YxNjAzN2EgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9sb2dpY2FsZGVjb2Rpbmcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvbG9naWNhbGRl Y29kaW5nLnNnbWwKQEAgLTMxNiw2ICszMTYsMjcgQEAgcG9zdGdyZXM9IyBzZWxlY3QgKiBm cm9tIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdlcygncmVncmVzc2lvbl9zbG90JywgTlVM TCwgTlUKICAgICAgbWF5IGNvbnN1bWUgY2hhbmdlcyBmcm9tIGEgc2xvdCBhdCBhbnkgZ2l2 ZW4gdGltZS4KICAgICA8L3BhcmE+CiAKKyAgICA8cGFyYT4KKyAgICAgQSBsb2dpY2FsIHJl cGxpY2F0aW9uIHNsb3QgY2FuIGFsc28gYmUgY3JlYXRlZCBvbiBhIGhvdCBzdGFuZGJ5LiBU byBwcmV2ZW50CisgICAgIDxjb21tYW5kPlZBQ1VVTTwvY29tbWFuZD4gZnJvbSByZW1vdmlu ZyByZXF1aXJlZCByb3dzIGZyb20gdGhlIHN5c3RlbQorICAgICBjYXRhbG9ncywgPHZhcm5h bWU+aG90X3N0YW5kYnlfZmVlZGJhY2s8L3Zhcm5hbWU+IHNob3VsZCBiZSBzZXQgb24gdGhl CisgICAgIHN0YW5kYnkuIEluIHNwaXRlIG9mIHRoYXQsIGlmIGFueSByZXF1aXJlZCByb3dz IGdldCByZW1vdmVkLCB0aGUgc2xvdCBnZXRzCisgICAgIGludmFsaWRhdGVkLiBJdCdzIGhp Z2hseSByZWNvbW1lbmRlZCB0byB1c2UgYSBwaHlzaWNhbCBzbG90IGJldHdlZW4gdGhlIHBy aW1hcnkKKyAgICAgYW5kIHRoZSBzdGFuZGJ5LiBPdGhlcndpc2UsIGhvdF9zdGFuZGJ5X2Zl ZWRiYWNrIHdpbGwgd29yaywgYnV0IG9ubHkgd2hpbGUgdGhlCisgICAgIGNvbm5lY3Rpb24g aXMgYWxpdmUgKGZvciBleGFtcGxlIGEgbm9kZSByZXN0YXJ0IHdvdWxkIGJyZWFrIGl0KS4g RXhpc3RpbmcKKyAgICAgbG9naWNhbCBzbG90cyBvbiBzdGFuZGJ5IGFsc28gZ2V0IGludmFs aWRhdGVkIGlmIHdhbF9sZXZlbCBvbiBwcmltYXJ5IGlzIHJlZHVjZWQgdG8KKyAgICAgbGVz cyB0aGFuICdsb2dpY2FsJy4KKyAgICA8L3BhcmE+CisKKyAgICA8cGFyYT4KKyAgICAgRm9y IGEgbG9naWNhbCBzbG90IHRvIGJlIGNyZWF0ZWQsIGl0IGJ1aWxkcyBhIGhpc3RvcmljIHNu YXBzaG90LCBmb3Igd2hpY2gKKyAgICAgaW5mb3JtYXRpb24gb2YgYWxsIHRoZSBjdXJyZW50 bHkgcnVubmluZyB0cmFuc2FjdGlvbnMgaXMgZXNzZW50aWFsLiBPbgorICAgICBwcmltYXJ5 LCB0aGlzIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSwgYnV0IG9uIHN0YW5kYnksIHRoaXMg aW5mb3JtYXRpb24KKyAgICAgaGFzIHRvIGJlIG9idGFpbmVkIGZyb20gcHJpbWFyeS4gU28s IHNsb3QgY3JlYXRpb24gbWF5IHdhaXQgZm9yIHNvbWUKKyAgICAgYWN0aXZpdHkgdG8gaGFw cGVuIG9uIHRoZSBwcmltYXJ5LiBJZiB0aGUgcHJpbWFyeSBpcyBpZGxlLCBjcmVhdGluZyBh CisgICAgIGxvZ2ljYWwgc2xvdCBvbiBzdGFuZGJ5IG1heSB0YWtlIGEgbm90aWNlYWJsZSB0 aW1lLgorICAgIDwvcGFyYT4KKwogICAgIDxjYXV0aW9uPgogICAgICA8cGFyYT4KICAgICAg IFJlcGxpY2F0aW9uIHNsb3RzIHBlcnNpc3QgYWNyb3NzIGNyYXNoZXMgYW5kIGtub3cgbm90 aGluZyBhYm91dCB0aGUgc3RhdGUKLS0gCjIuMzQuMQoK --------------33idPHuZjSjOk9JsByk0nzBq Content-Type: text/plain; charset=UTF-8; name="v35-0004-New-TAP-test-for-logical-decoding-on-standby.patch" Content-Disposition: attachment; filename*0="v35-0004-New-TAP-test-for-logical-decoding-on-standby.patch" Content-Transfer-Encoding: base64 RnJvbSA4ODE5MzFkMzc4YWJiY2M2ZWYyMmM3MDc0MWM0MWM1MjBkMjk3ZGQ0IE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogV2VkLCAyMSBEZWMgMjAyMiAxNDoxMjoyNSArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjM1IDQvNl0gTmV3IFRBUCB0ZXN0IGZvciBsb2dpY2FsIGRlY29kaW5nIG9uIHN0YW5k YnkuCgpBdXRob3I6IENyYWlnIFJpbmdlciAoaW4gYW4gb2xkZXIgdmVyc2lvbiksIEFtaXQg S2hhbmRla2FyLCBCZXJ0cmFuZCBEcm91dm90ClJldmlld2VkLUJ5OiBCZXJ0cmFuZCBEcm91 dm90LCBBbmRyZXMgRnJldW5kLCBSb2JlcnQgSGFhcywgRmFicml6aW8gZGUgUm95ZXMgTWVs bG8KLS0tCiBzcmMvdGVzdC9wZXJsL1Bvc3RncmVTUUwvVGVzdC9DbHVzdGVyLnBtICAgICAg fCAgMzcgKysKIHNyYy90ZXN0L3JlY292ZXJ5L21lc29uLmJ1aWxkICAgICAgICAgICAgICAg ICB8ICAgMSArCiAuLi4vdC8wMzRfc3RhbmRieV9sb2dpY2FsX2RlY29kaW5nLnBsICAgICAg ICAgfCA0NzkgKysrKysrKysrKysrKysrKysrCiAzIGZpbGVzIGNoYW5nZWQsIDUxNyBpbnNl cnRpb25zKCspCiAgIDYuMCUgc3JjL3Rlc3QvcGVybC9Qb3N0Z3JlU1FML1Rlc3QvCiAgOTMu NyUgc3JjL3Rlc3QvcmVjb3ZlcnkvdC8KCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9wZXJsL1Bv c3RncmVTUUwvVGVzdC9DbHVzdGVyLnBtIGIvc3JjL3Rlc3QvcGVybC9Qb3N0Z3JlU1FML1Rl c3QvQ2x1c3Rlci5wbQppbmRleCA3NDExMTg4ZGM4Li4xNzFkYzg1Mzg4IDEwMDY0NAotLS0g YS9zcmMvdGVzdC9wZXJsL1Bvc3RncmVTUUwvVGVzdC9DbHVzdGVyLnBtCisrKyBiL3NyYy90 ZXN0L3BlcmwvUG9zdGdyZVNRTC9UZXN0L0NsdXN0ZXIucG0KQEAgLTMwMzcsNiArMzAzNyw0 MyBAQCAkU0lHe1RFUk19ID0gJFNJR3tJTlR9ID0gc3ViIHsKIAogPXBvZAogCis9aXRlbSAk bm9kZS0+Y3JlYXRlX2xvZ2ljYWxfc2xvdF9vbl9zdGFuZGJ5KHNlbGYsIG1hc3Rlciwgc2xv dF9uYW1lLCBkYm5hbWUpCisKK0NyZWF0ZSBsb2dpY2FsIHJlcGxpY2F0aW9uIHNsb3Qgb24g Z2l2ZW4gc3RhbmRieQorCis9Y3V0CisKK3N1YiBjcmVhdGVfbG9naWNhbF9zbG90X29uX3N0 YW5kYnkKK3sKKwlteSAoJHNlbGYsICRtYXN0ZXIsICRzbG90X25hbWUsICRkYm5hbWUpID0g QF87CisJbXkgKCRzdGRvdXQsICRzdGRlcnIpOworCisJbXkgJGhhbmRsZTsKKworCSRoYW5k bGUgPSBJUEM6OlJ1bjo6c3RhcnQoWydwZ19yZWN2bG9naWNhbCcsICctZCcsICRzZWxmLT5j b25uc3RyKCRkYm5hbWUpLCAnLVAnLCAndGVzdF9kZWNvZGluZycsICctUycsICRzbG90X25h bWUsICctLWNyZWF0ZS1zbG90J10sICc+JywgXCRzdGRvdXQsICcyPicsIFwkc3RkZXJyKTsK KworCSMgT25jZSBzbG90IHJlc3RhcnRfbHNuIGlzIGNyZWF0ZWQsIHRoZSBzdGFuZGJ5IGxv b2tzIGZvciB4bF9ydW5uaW5nX3hhY3RzCisJIyBXQUwgcmVjb3JkIGZyb20gdGhlIHJlc3Rh cnRfbHNuIG9ud2FyZHMuIFNvIGZpcnN0bHksIHdhaXQgdW50aWwgdGhlIHNsb3QKKwkjIHJl c3RhcnRfbHNuIGlzIGV2YWx1YXRlZC4KKworCSRzZWxmLT5wb2xsX3F1ZXJ5X3VudGlsKAor CQkncG9zdGdyZXMnLCBxcVsKKwkJU0VMRUNUIHJlc3RhcnRfbHNuIElTIE5PVCBOVUxMCisJ CUZST00gcGdfY2F0YWxvZy5wZ19yZXBsaWNhdGlvbl9zbG90cyBXSEVSRSBzbG90X25hbWUg PSAnJHNsb3RfbmFtZScKKwldKSBvciBkaWUgInRpbWVkIG91dCB3YWl0aW5nIGZvciBsb2dp Y2FsIHNsb3QgdG8gY2FsY3VsYXRlIGl0cyByZXN0YXJ0X2xzbiI7CisKKwkjIE5vdyBhcnJh bmdlIGZvciB0aGUgeGxfcnVubmluZ194YWN0cyByZWNvcmQgZm9yIHdoaWNoIHBnX3JlY3Zs b2dpY2FsCisJIyBpcyB3YWl0aW5nLgorCSRtYXN0ZXItPnNhZmVfcHNxbCgncG9zdGdyZXMn LCAnQ0hFQ0tQT0lOVCcpOworCisJJGhhbmRsZS0+ZmluaXNoKCk7CisKKwlpcygkc2VsZi0+ c2xvdCgkc2xvdF9uYW1lKS0+eydzbG90X3R5cGUnfSwgJ2xvZ2ljYWwnLCAkc2xvdF9uYW1l IC4gJyBvbiBzdGFuZGJ5IGNyZWF0ZWQnKQorCQlvciBkaWUgImNvdWxkIG5vdCBjcmVhdGUg c2xvdCIgLiAkc2xvdF9uYW1lOworfQorCis9cG9kCisKID1iYWNrCiAKID1jdXQKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlY292ZXJ5L21lc29uLmJ1aWxkIGIvc3JjL3Rlc3QvcmVjb3Zl cnkvbWVzb24uYnVpbGQKaW5kZXggYjhjM2MxMDRhZS4uODE5MTNiZGZkNiAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVjb3ZlcnkvbWVzb24uYnVpbGQKKysrIGIvc3JjL3Rlc3QvcmVjb3Zl cnkvbWVzb24uYnVpbGQKQEAgLTQwLDYgKzQwLDcgQEAgdGVzdHMgKz0gewogICAgICAgJ3Qv MDMxX3JlY292ZXJ5X2NvbmZsaWN0LnBsJywKICAgICAgICd0LzAzMl9yZWxmaWxlbm9kZV9y ZXVzZS5wbCcsCiAgICAgICAndC8wMzNfcmVwbGF5X3RzcF9kcm9wcy5wbCcsCisgICAgICAn dC8wMzRfc3RhbmRieV9sb2dpY2FsX2RlY29kaW5nLnBsJywKICAgICBdLAogICB9LAogfQpk aWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMzRfc3RhbmRieV9sb2dpY2FsX2Rl Y29kaW5nLnBsIGIvc3JjL3Rlc3QvcmVjb3ZlcnkvdC8wMzRfc3RhbmRieV9sb2dpY2FsX2Rl Y29kaW5nLnBsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjQyNTg4 NDRjOGYKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvdGVzdC9yZWNvdmVyeS90LzAzNF9zdGFu ZGJ5X2xvZ2ljYWxfZGVjb2RpbmcucGwKQEAgLTAsMCArMSw0NzkgQEAKKyMgbG9naWNhbCBk ZWNvZGluZyBvbiBzdGFuZGJ5IDogdGVzdCBsb2dpY2FsIGRlY29kaW5nLAorIyByZWNvdmVy eSBjb25mbGljdCBhbmQgc3RhbmRieSBwcm9tb3Rpb24uCisKK3VzZSBzdHJpY3Q7Cit1c2Ug d2FybmluZ3M7CisKK3VzZSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyOwordXNlIFRlc3Q6 Ok1vcmUgdGVzdHMgPT4gNDI7CisKK215ICgkc3RkaW4sICRzdGRvdXQsICRzdGRlcnIsICRy ZXQsICRoYW5kbGUsICRzbG90KTsKKworbXkgJG5vZGVfcHJpbWFyeSA9IFBvc3RncmVTUUw6 OlRlc3Q6OkNsdXN0ZXItPm5ldygncHJpbWFyeScpOworbXkgJG5vZGVfc3RhbmRieSA9IFBv c3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXItPm5ldygnc3RhbmRieScpOworCisjIE5hbWUgZm9y IHRoZSBwaHlzaWNhbCBzbG90IG9uIHByaW1hcnkKK215ICRwcmltYXJ5X3Nsb3RuYW1lID0g J3ByaW1hcnlfcGh5c2ljYWwnOworCisjIGZpbmQgJHBhdCBpbiBsb2dmaWxlIG9mICRub2Rl IGFmdGVyICRvZmYtdGggYnl0ZQorc3ViIGZpbmRfaW5fbG9nCit7CisJbXkgKCRub2RlLCAk cGF0LCAkb2ZmKSA9IEBfOworCisJJG9mZiA9IDAgdW5sZXNzIGRlZmluZWQgJG9mZjsKKwlt eSAkbG9nID0gUG9zdGdyZVNRTDo6VGVzdDo6VXRpbHM6OnNsdXJwX2ZpbGUoJG5vZGUtPmxv Z2ZpbGUpOworCXJldHVybiAwIGlmIChsZW5ndGgoJGxvZykgPD0gJG9mZik7CisKKwkkbG9n ID0gc3Vic3RyKCRsb2csICRvZmYpOworCisJcmV0dXJuICRsb2cgPX4gbS8kcGF0LzsKK30K KworIyBGZXRjaCB4bWluIGNvbHVtbnMgZnJvbSBzbG90J3MgcGdfcmVwbGljYXRpb25fc2xv dHMgcm93LCBhZnRlciB3YWl0aW5nIGZvcgorIyBnaXZlbiBib29sZWFuIGNvbmRpdGlvbiB0 byBiZSB0cnVlIHRvIGVuc3VyZSB3ZSd2ZSByZWFjaGVkIGEgcXVpZXNjZW50IHN0YXRlLgor c3ViIHdhaXRfZm9yX3htaW5zCit7CisJbXkgKCRub2RlLCAkc2xvdG5hbWUsICRjaGVja19l eHByKSA9IEBfOworCisJJG5vZGUtPnBvbGxfcXVlcnlfdW50aWwoCisJCSdwb3N0Z3Jlcycs IHFxWworCQlTRUxFQ1QgJGNoZWNrX2V4cHIKKwkJRlJPTSBwZ19jYXRhbG9nLnBnX3JlcGxp Y2F0aW9uX3Nsb3RzCisJCVdIRVJFIHNsb3RfbmFtZSA9ICckc2xvdG5hbWUnOworCV0pIG9y IGRpZSAiVGltZWQgb3V0IHdhaXRpbmcgZm9yIHNsb3QgeG1pbnMgdG8gYWR2YW5jZSI7Cit9 CisKKyMgQ3JlYXRlIHRoZSByZXF1aXJlZCBsb2dpY2FsIHNsb3RzIG9uIHN0YW5kYnkuCitz dWIgY3JlYXRlX2xvZ2ljYWxfc2xvdHMKK3sKKwkkbm9kZV9zdGFuZGJ5LT5jcmVhdGVfbG9n aWNhbF9zbG90X29uX3N0YW5kYnkoJG5vZGVfcHJpbWFyeSwgJ2luYWN0aXZlc2xvdCcsICd0 ZXN0ZGInKTsKKwkkbm9kZV9zdGFuZGJ5LT5jcmVhdGVfbG9naWNhbF9zbG90X29uX3N0YW5k YnkoJG5vZGVfcHJpbWFyeSwgJ2FjdGl2ZXNsb3QnLCAndGVzdGRiJyk7Cit9CisKKyMgQWNx dWlyZSBvbmUgb2YgdGhlIHN0YW5kYnkgbG9naWNhbCBzbG90cyBjcmVhdGVkIGJ5IGNyZWF0 ZV9sb2dpY2FsX3Nsb3RzKCkuCisjIEluIGNhc2Ugd2FpdCBpcyB0cnVlIHdlIGFyZSB3YWl0 aW5nIGZvciBhbiBhY3RpdmUgcGlkIG9uIHRoZSAnYWN0aXZlc2xvdCcgc2xvdC4KKyMgSWYg d2FpdCBpcyBub3QgdHJ1ZSBpdCBtZWFucyB3ZSBhcmUgdGVzdGluZyBhIGtub3duIGZhaWx1 cmUgc2NlbmFyaW8uCitzdWIgbWFrZV9zbG90X2FjdGl2ZQoreworCW15ICR3YWl0ID0gc2hp ZnQ7CisJbXkgJHNsb3RfdXNlcl9oYW5kbGU7CisKKwlwcmludCAic3RhcnRpbmcgcGdfcmVj dmxvZ2ljYWxcbiI7CisJJHNsb3RfdXNlcl9oYW5kbGUgPSBJUEM6OlJ1bjo6c3RhcnQoWydw Z19yZWN2bG9naWNhbCcsICctZCcsICRub2RlX3N0YW5kYnktPmNvbm5zdHIoJ3Rlc3RkYicp LCAnLVMnLCAnYWN0aXZlc2xvdCcsICctZicsICctJywgJy0tbm8tbG9vcCcsICctLXN0YXJ0 J10sICc+JywgXCRzdGRvdXQsICcyPicsIFwkc3RkZXJyKTsKKworCWlmICgkd2FpdCkKKwkj IG1ha2Ugc3VyZSBhY3RpdmVzbG90IGlzIGluIHVzZQorCXsKKwkJJG5vZGVfc3RhbmRieS0+ cG9sbF9xdWVyeV91bnRpbCgndGVzdGRiJywKKwkJCSJTRUxFQ1QgRVhJU1RTIChTRUxFQ1Qg MSBGUk9NIHBnX3JlcGxpY2F0aW9uX3Nsb3RzIFdIRVJFIHNsb3RfbmFtZSA9ICdhY3RpdmVz bG90JyBBTkQgYWN0aXZlX3BpZCBJUyBOT1QgTlVMTCkiCisJCSkgb3IgZGllICJzbG90IG5l dmVyIGJlY2FtZSBhY3RpdmUiOworCX0KKworCXJldHVybiAkc2xvdF91c2VyX2hhbmRsZTsK K30KKworIyBDaGVjayBwZ19yZWN2bG9naWNhbCBzdGRlcnIKK3N1YiBjaGVja19wZ19yZWN2 bG9naWNhbF9zdGRlcnIKK3sKKwlteSAoJHNsb3RfdXNlcl9oYW5kbGUsICRjaGVja19zdGRl cnIpID0gQF87CisJbXkgJHJldHVybjsKKworCSMgb3VyIGNsaWVudCBzaG91bGQndmUgdGVy bWluYXRlZCBpbiByZXNwb25zZSB0byB0aGUgd2Fsc2VuZGVyIGVycm9yCisJJHNsb3RfdXNl cl9oYW5kbGUtPmZpbmlzaDsKKwkkcmV0dXJuID0gJD87CisJY21wX29rKCRyZXR1cm4sICIh PSIsIDAsICJwZ19yZWN2bG9naWNhbCBleGl0ZWQgbm9uLXplcm8iKTsKKwlpZiAoJHJldHVy bikgeworCQlsaWtlKCRzdGRlcnIsIHFyLyRjaGVja19zdGRlcnIvLCAnc2xvdCBoYXMgYmVl biBpbnZhbGlkYXRlZCcpOworCX0KKworCXJldHVybiAwOworfQorCisjIENoZWNrIGlmIGFs bCB0aGUgc2xvdHMgb24gc3RhbmRieSBhcmUgZHJvcHBlZC4gVGhlc2UgaW5jbHVkZSB0aGUg J2FjdGl2ZXNsb3QnCisjIHRoYXQgd2FzIGFjcXVpcmVkIGJ5IG1ha2Vfc2xvdF9hY3RpdmUo KSwgYW5kIHRoZSBub24tYWN0aXZlICdpbmFjdGl2ZXNsb3QnLgorc3ViIGNoZWNrX3Nsb3Rz X2Ryb3BwZWQKK3sKKwlteSAoJHNsb3RfdXNlcl9oYW5kbGUpID0gQF87CisKKwlpcygkbm9k ZV9zdGFuZGJ5LT5zbG90KCdpbmFjdGl2ZXNsb3QnKS0+eydzbG90X3R5cGUnfSwgJycsICdp bmFjdGl2ZXNsb3Qgb24gc3RhbmRieSBkcm9wcGVkJyk7CisJaXMoJG5vZGVfc3RhbmRieS0+ c2xvdCgnYWN0aXZlc2xvdCcpLT57J3Nsb3RfdHlwZSd9LCAnJywgJ2FjdGl2ZXNsb3Qgb24g c3RhbmRieSBkcm9wcGVkJyk7CisKKwljaGVja19wZ19yZWN2bG9naWNhbF9zdGRlcnIoJHNs b3RfdXNlcl9oYW5kbGUsICJjb25mbGljdCB3aXRoIHJlY292ZXJ5Iik7Cit9CisKKyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIworIyBJbml0aWFsaXplIHByaW1hcnkgbm9kZQorIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjCisKKyRub2RlX3ByaW1hcnktPmluaXQoYWxsb3dzX3N0cmVh bWluZyA9PiAxLCBoYXNfYXJjaGl2aW5nID0+IDEpOworJG5vZGVfcHJpbWFyeS0+YXBwZW5k X2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsIHF7Cit3YWxfbGV2ZWwgPSAnbG9naWNhbCcKK21h eF9yZXBsaWNhdGlvbl9zbG90cyA9IDQKK21heF93YWxfc2VuZGVycyA9IDQKK2xvZ19taW5f bWVzc2FnZXMgPSAnZGVidWcyJworbG9nX2Vycm9yX3ZlcmJvc2l0eSA9IHZlcmJvc2UKK30p OworJG5vZGVfcHJpbWFyeS0+ZHVtcF9pbmZvOworJG5vZGVfcHJpbWFyeS0+c3RhcnQ7CisK KyRub2RlX3ByaW1hcnktPnBzcWwoJ3Bvc3RncmVzJywgcVtDUkVBVEUgREFUQUJBU0UgdGVz dGRiXSk7CisKKyRub2RlX3ByaW1hcnktPnNhZmVfcHNxbCgndGVzdGRiJywgcXFbU0VMRUNU ICogRlJPTSBwZ19jcmVhdGVfcGh5c2ljYWxfcmVwbGljYXRpb25fc2xvdCgnJHByaW1hcnlf c2xvdG5hbWUnKTtdKTsKK215ICRiYWNrdXBfbmFtZSA9ICdiMSc7Ciskbm9kZV9wcmltYXJ5 LT5iYWNrdXAoJGJhY2t1cF9uYW1lKTsKKworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMg SW5pdGlhbGl6ZSBzdGFuZGJ5IG5vZGUKKyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCisKKyRu b2RlX3N0YW5kYnktPmluaXRfZnJvbV9iYWNrdXAoCisJJG5vZGVfcHJpbWFyeSwgJGJhY2t1 cF9uYW1lLAorCWhhc19zdHJlYW1pbmcgPT4gMSwKKwloYXNfcmVzdG9yaW5nID0+IDEpOwor JG5vZGVfc3RhbmRieS0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZicsCisJcXFbcHJp bWFyeV9zbG90X25hbWUgPSAnJHByaW1hcnlfc2xvdG5hbWUnXSk7Ciskbm9kZV9zdGFuZGJ5 LT5zdGFydDsKKyRub2RlX3ByaW1hcnktPndhaXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRi eSwgJ3JlcGxheScsICRub2RlX3ByaW1hcnktPmxzbignZmx1c2gnKSk7CisKKworIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgVGVzdCB0 aGF0IGxvZ2ljYWwgZGVjb2Rpbmcgb24gdGhlIHN0YW5kYnkKKyMgYmVoYXZlcyBjb3JyZWN0 bHkuCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IworCitjcmVhdGVfbG9naWNhbF9zbG90cygpOworCiskbm9kZV9wcmltYXJ5LT5zYWZlX3Bz cWwoJ3Rlc3RkYicsIHFxW0NSRUFURSBUQUJMRSBkZWNvZGluZ190ZXN0KHggaW50ZWdlciwg eSB0ZXh0KTtdKTsKKyRub2RlX3ByaW1hcnktPnNhZmVfcHNxbCgndGVzdGRiJywgcXFbSU5T RVJUIElOVE8gZGVjb2RpbmdfdGVzdCh4LHkpIFNFTEVDVCBzLCBzOjp0ZXh0IEZST00gZ2Vu ZXJhdGVfc2VyaWVzKDEsMTApIHM7XSk7CisKKyRub2RlX3ByaW1hcnktPndhaXRfZm9yX2Nh dGNodXAoJG5vZGVfc3RhbmRieSwgJ3JlcGxheScsICRub2RlX3ByaW1hcnktPmxzbignZmx1 c2gnKSk7CisKK215ICRyZXN1bHQgPSAkbm9kZV9zdGFuZGJ5LT5zYWZlX3BzcWwoJ3Rlc3Rk YicsCisJcXFbU0VMRUNUIHBnX2xvZ2ljYWxfc2xvdF9nZXRfY2hhbmdlcygnYWN0aXZlc2xv dCcsIE5VTEwsIE5VTEwpO10pOworCisjIHRlc3QgaWYgYmFzaWMgZGVjb2Rpbmcgd29ya3MK K2lzKHNjYWxhcihteSBAZm9vYmFyID0gc3BsaXQgL14vbSwgJHJlc3VsdCksCisJMTQsICdE ZWNvZGluZyBwcm9kdWNlZCAxNCByb3dzJyk7CisKKyMgSW5zZXJ0IHNvbWUgcm93cyBhbmQg dmVyaWZ5IHRoYXQgd2UgZ2V0IHRoZSBzYW1lIHJlc3VsdHMgZnJvbSBwZ19yZWN2bG9naWNh bAorIyBhbmQgdGhlIFNRTCBpbnRlcmZhY2UuCiskbm9kZV9wcmltYXJ5LT5zYWZlX3BzcWwo J3Rlc3RkYicsCisJcXFbSU5TRVJUIElOVE8gZGVjb2RpbmdfdGVzdCh4LHkpIFNFTEVDVCBz LCBzOjp0ZXh0IEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsNCkgcztdCispOworCitteSAkZXhw ZWN0ZWQgPSBxe0JFR0lOCit0YWJsZSBwdWJsaWMuZGVjb2RpbmdfdGVzdDogSU5TRVJUOiB4 W2ludGVnZXJdOjEgeVt0ZXh0XTonMScKK3RhYmxlIHB1YmxpYy5kZWNvZGluZ190ZXN0OiBJ TlNFUlQ6IHhbaW50ZWdlcl06MiB5W3RleHRdOicyJwordGFibGUgcHVibGljLmRlY29kaW5n X3Rlc3Q6IElOU0VSVDogeFtpbnRlZ2VyXTozIHlbdGV4dF06JzMnCit0YWJsZSBwdWJsaWMu ZGVjb2RpbmdfdGVzdDogSU5TRVJUOiB4W2ludGVnZXJdOjQgeVt0ZXh0XTonNCcKK0NPTU1J VH07CisKKyRub2RlX3ByaW1hcnktPndhaXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRieSwg J3JlcGxheScsICRub2RlX3ByaW1hcnktPmxzbignZmx1c2gnKSk7CisKK215ICRzdGRvdXRf c3FsID0gJG5vZGVfc3RhbmRieS0+c2FmZV9wc3FsKCd0ZXN0ZGInLAorCXFxW1NFTEVDVCBk YXRhIEZST00gcGdfbG9naWNhbF9zbG90X3BlZWtfY2hhbmdlcygnYWN0aXZlc2xvdCcsIE5V TEwsIE5VTEwsICdpbmNsdWRlLXhpZHMnLCAnMCcsICdza2lwLWVtcHR5LXhhY3RzJywgJzEn KTtdCispOworCitpcygkc3Rkb3V0X3NxbCwgJGV4cGVjdGVkLCAnZ290IGV4cGVjdGVkIG91 dHB1dCBmcm9tIFNRTCBkZWNvZGluZyBzZXNzaW9uJyk7CisKK215ICRlbmRwb3MgPSAkbm9k ZV9zdGFuZGJ5LT5zYWZlX3BzcWwoJ3Rlc3RkYicsCisJIlNFTEVDVCBsc24gRlJPTSBwZ19s b2dpY2FsX3Nsb3RfcGVla19jaGFuZ2VzKCdhY3RpdmVzbG90JywgTlVMTCwgTlVMTCkgT1JE RVIgQlkgbHNuIERFU0MgTElNSVQgMTsiCispOworcHJpbnQgIndhaXRpbmcgdG8gcmVwbGF5 ICRlbmRwb3NcbiI7CisKKyMgSW5zZXJ0IHNvbWUgcm93cyBhZnRlciAkZW5kcG9zLCB3aGlj aCB3ZSB3b24ndCByZWFkLgorJG5vZGVfcHJpbWFyeS0+c2FmZV9wc3FsKCd0ZXN0ZGInLAor CXFxW0lOU0VSVCBJTlRPIGRlY29kaW5nX3Rlc3QoeCx5KSBTRUxFQ1Qgcywgczo6dGV4dCBG Uk9NIGdlbmVyYXRlX3Nlcmllcyg1LDUwKSBzO10KKyk7CisKKyRub2RlX3ByaW1hcnktPndh aXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRieSwgJ3JlcGxheScsICRub2RlX3ByaW1hcnkt PmxzbignZmx1c2gnKSk7CisKK215ICRzdGRvdXRfcmVjdiA9ICRub2RlX3N0YW5kYnktPnBn X3JlY3Zsb2dpY2FsX3VwdG8oCisgICAgJ3Rlc3RkYicsICdhY3RpdmVzbG90JywgJGVuZHBv cywgMTgwLAorICAgICdpbmNsdWRlLXhpZHMnICAgICA9PiAnMCcsCisgICAgJ3NraXAtZW1w dHkteGFjdHMnID0+ICcxJyk7CitjaG9tcCgkc3Rkb3V0X3JlY3YpOworaXMoJHN0ZG91dF9y ZWN2LCAkZXhwZWN0ZWQsCisgICAgJ2dvdCBzYW1lIGV4cGVjdGVkIG91dHB1dCBmcm9tIHBn X3JlY3Zsb2dpY2FsIGRlY29kaW5nIHNlc3Npb24nKTsKKworJG5vZGVfc3RhbmRieS0+cG9s bF9xdWVyeV91bnRpbCgndGVzdGRiJywKKwkiU0VMRUNUIEVYSVNUUyAoU0VMRUNUIDEgRlJP TSBwZ19yZXBsaWNhdGlvbl9zbG90cyBXSEVSRSBzbG90X25hbWUgPSAnYWN0aXZlc2xvdCcg QU5EIGFjdGl2ZV9waWQgSVMgTlVMTCkiCispIG9yIGRpZSAic2xvdCBuZXZlciBiZWNhbWUg aW5hY3RpdmUiOworCiskc3Rkb3V0X3JlY3YgPSAkbm9kZV9zdGFuZGJ5LT5wZ19yZWN2bG9n aWNhbF91cHRvKAorICAgICd0ZXN0ZGInLCAnYWN0aXZlc2xvdCcsICRlbmRwb3MsIDE4MCwK KyAgICAnaW5jbHVkZS14aWRzJyAgICAgPT4gJzAnLAorICAgICdza2lwLWVtcHR5LXhhY3Rz JyA9PiAnMScpOworY2hvbXAoJHN0ZG91dF9yZWN2KTsKK2lzKCRzdGRvdXRfcmVjdiwgJycs ICdwZ19yZWN2bG9naWNhbCBhY2tub3dsZWRnZWQgY2hhbmdlcycpOworCiskbm9kZV9wcmlt YXJ5LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgJ0NSRUFURSBEQVRBQkFTRSBvdGhlcmRiJyk7 CisKK2lzKCAkbm9kZV9wcmltYXJ5LT5wc3FsKAorICAgICAgICAnb3RoZXJkYicsCisgICAg ICAgICJTRUxFQ1QgbHNuIEZST00gcGdfbG9naWNhbF9zbG90X3BlZWtfY2hhbmdlcygnYWN0 aXZlc2xvdCcsIE5VTEwsIE5VTEwpIE9SREVSIEJZIGxzbiBERVNDIExJTUlUIDE7IgorICAg ICksCisgICAgMywKKyAgICAncmVwbGF5aW5nIGxvZ2ljYWwgc2xvdCBmcm9tIGFub3RoZXIg ZGF0YWJhc2UgZmFpbHMnKTsKKworIyBkcm9wIHRoZSBsb2dpY2FsIHNsb3RzCiskbm9kZV9z dGFuZGJ5LT5wc3FsKCdwb3N0Z3JlcycsIHFbU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25f c2xvdCgnaW5hY3RpdmVzbG90JyldKTsKKyRub2RlX3N0YW5kYnktPnBzcWwoJ3Bvc3RncmVz JywgcVtTRUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdhY3RpdmVzbG90JyldKTsK KworIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMK KyMgUmVjb3ZlcnkgY29uZmxpY3Q6IEludmFsaWRhdGUgY29uZmxpY3Rpbmcgc2xvdHMsIGlu Y2x1ZGluZyBpbi11c2Ugc2xvdHMKKyMgU2NlbmFyaW8gMTogaG90X3N0YW5kYnlfZmVlZGJh Y2sgb2ZmIGFuZCB2YWN1dW0gRlVMTAorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKworY3JlYXRlX2xvZ2ljYWxfc2xvdHMoKTsKKworIyBP bmUgd2F5IHRvIHJlcHJvZHVjZSByZWNvdmVyeSBjb25mbGljdCBpcyB0byBydW4gVkFDVVVN IEZVTEwgd2l0aAorIyBob3Rfc3RhbmRieV9mZWVkYmFjayB0dXJuZWQgb2ZmIG9uIHRoZSBz dGFuZGJ5LgorJG5vZGVfc3RhbmRieS0+YXBwZW5kX2NvbmYoJ3Bvc3RncmVzcWwuY29uZics cVsKK2hvdF9zdGFuZGJ5X2ZlZWRiYWNrID0gb2ZmCitdKTsKKyRub2RlX3N0YW5kYnktPnJl c3RhcnQ7CisjIGVuc3VyZSB3YWxyZWNlaXZlciBmZWVkYmFjayBvZmYgYnkgd2FpdGluZyBm b3IgZXhwZWN0ZWQgeG1pbiBhbmQKKyMgY2F0YWxvZ194bWluIG9uIHByaW1hcnkuIEJvdGgg c2hvdWxkIGJlIE5VTEwgc2luY2UgaHNfZmVlZGJhY2sgaXMgb2ZmCit3YWl0X2Zvcl94bWlu cygkbm9kZV9wcmltYXJ5LCAkcHJpbWFyeV9zbG90bmFtZSwKKwkJCSAgICJ4bWluIElTIE5V TEwgQU5EIGNhdGFsb2dfeG1pbiBJUyBOVUxMIik7CisKKyRoYW5kbGUgPSBtYWtlX3Nsb3Rf YWN0aXZlKDEpOworCisjIFRoaXMgc2hvdWxkIHRyaWdnZXIgdGhlIGNvbmZsaWN0Ciskbm9k ZV9wcmltYXJ5LT5zYWZlX3BzcWwoJ3Rlc3RkYicsICdWQUNVVU0gRlVMTCcpOworCiskbm9k ZV9wcmltYXJ5LT53YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAk bm9kZV9wcmltYXJ5LT5sc24oJ2ZsdXNoJykpOworCisjIG1lc3NhZ2Ugc2hvdWxkIGJlIGlz c3VlZAorb2soIGZpbmRfaW5fbG9nKAorICAgJG5vZGVfc3RhbmRieSwKKyAgImludmFsaWRh dGluZyBzbG90IFwiaW5hY3RpdmVzbG90XCIgYmVjYXVzZSBpdCBjb25mbGljdHMgd2l0aCBy ZWNvdmVyeSIpLAorICAnaW5hY3RpdmVzbG90IHNsb3QgaW52YWxpZGF0aW9uIGlzIGxvZ2dl ZCB3aXRoIHZhY3V1bSBGVUxMJyk7CisKK29rKCBmaW5kX2luX2xvZygKKyAgICRub2RlX3N0 YW5kYnksCisgICJpbnZhbGlkYXRpbmcgc2xvdCBcImFjdGl2ZXNsb3RcIiBiZWNhdXNlIGl0 IGNvbmZsaWN0cyB3aXRoIHJlY292ZXJ5IiksCisgICdhY3RpdmVzbG90IHNsb3QgaW52YWxp ZGF0aW9uIGlzIGxvZ2dlZCB3aXRoIHZhY3V1bSBGVUxMJyk7CisKKyMgVmVyaWZ5IHRoYXQg cGdfc3RhdF9kYXRhYmFzZV9jb25mbGljdHMuY29uZmxfYWN0aXZlX2xvZ2ljYWxzbG90IGhh cyBiZWVuIHVwZGF0ZWQKK29rKCAkbm9kZV9zdGFuZGJ5LT5wb2xsX3F1ZXJ5X3VudGlsKAor CSdwb3N0Z3JlcycsCisJInNlbGVjdCAoY29uZmxfYWN0aXZlX2xvZ2ljYWxzbG90ID0gMSkg ZnJvbSBwZ19zdGF0X2RhdGFiYXNlX2NvbmZsaWN0cyB3aGVyZSBkYXRuYW1lID0gJ3Rlc3Rk YiciLCAndCcpLAorCSdjb25mbF9hY3RpdmVfbG9naWNhbHNsb3QgdXBkYXRlZCcpIG9yIGRp ZSAiVGltZWQgb3V0IHdhaXRpbmcgY29uZmxfYWN0aXZlX2xvZ2ljYWxzbG90IHRvIGJlIHVw ZGF0ZWQiOworCiskaGFuZGxlID0gbWFrZV9zbG90X2FjdGl2ZSgwKTsKKyMgV2UgYXJlIG5v dCBhYmxlIHRvIHJlYWQgZnJvbSB0aGUgc2xvdCBhcyBpdCBoYXMgYmVlbiBpbnZhbGlkYXRl ZAorY2hlY2tfcGdfcmVjdmxvZ2ljYWxfc3RkZXJyKCRoYW5kbGUsICJjYW5ub3QgcmVhZCBm cm9tIGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdCBcImFjdGl2ZXNsb3RcIiIpOworCisjIFR1 cm4gaG90X3N0YW5kYnlfZmVlZGJhY2sgYmFjayBvbgorJG5vZGVfc3RhbmRieS0+YXBwZW5k X2NvbmYoJ3Bvc3RncmVzcWwuY29uZicscVsKK2hvdF9zdGFuZGJ5X2ZlZWRiYWNrID0gb24K K10pOworJG5vZGVfc3RhbmRieS0+cmVzdGFydDsKKworIyBlbnN1cmUgd2FscmVjZWl2ZXIg ZmVlZGJhY2sgc2VudCBieSB3YWl0aW5nIGZvciBleHBlY3RlZCB4bWluIGFuZAorIyBjYXRh bG9nX3htaW4gb24gcHJpbWFyeS4gV2l0aCBob3Rfc3RhbmRieV9mZWVkYmFjayBvbiwgeG1p biBzaG91bGQgYWR2YW5jZSwKKyMgYnV0IGNhdGFsb2dfeG1pbiBzaG91bGQgc3RpbGwgcmVt YWluIE5VTEwgc2luY2UgdGhlcmUgaXMgbm8gbG9naWNhbCBzbG90Lgord2FpdF9mb3JfeG1p bnMoJG5vZGVfcHJpbWFyeSwgJHByaW1hcnlfc2xvdG5hbWUsCisJCQkgICAieG1pbiBJUyBO T1QgTlVMTCBBTkQgY2F0YWxvZ194bWluIElTIE5VTEwiKTsKKworIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMgUmVjb3ZlcnkgY29uZmxp Y3Q6IEludmFsaWRhdGUgY29uZmxpY3Rpbmcgc2xvdHMsIGluY2x1ZGluZyBpbi11c2Ugc2xv dHMKKyMgU2NlbmFyaW8gMjogY29uZmxpY3QgZHVlIHRvIHJvdyByZW1vdmFsIHdpdGggaG90 X3N0YW5kYnlfZmVlZGJhY2sgb2ZmLgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMKKworIyBnZXQgdGhlIHBvc2l0aW9uIHRvIHNlYXJjaCBm cm9tIGluIHRoZSBzdGFuZGJ5IGxvZ2ZpbGUKK215ICRsb2dzdGFydCA9IC1zICRub2RlX3N0 YW5kYnktPmxvZ2ZpbGU7CisKKyMgZHJvcCB0aGUgbG9naWNhbCBzbG90cworJG5vZGVfc3Rh bmRieS0+cHNxbCgncG9zdGdyZXMnLCBxW1NFTEVDVCBwZ19kcm9wX3JlcGxpY2F0aW9uX3Ns b3QoJ2luYWN0aXZlc2xvdCcpXSk7Ciskbm9kZV9zdGFuZGJ5LT5wc3FsKCdwb3N0Z3Jlcycs IHFbU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCgnYWN0aXZlc2xvdCcpXSk7CisK K2NyZWF0ZV9sb2dpY2FsX3Nsb3RzKCk7CisKKyMgT25lIHdheSB0byBwcm9kdWNlIHJlY292 ZXJ5IGNvbmZsaWN0IGlzIHRvIGNyZWF0ZS9kcm9wIGEgcmVsYXRpb24gYW5kIGxhdW5jaCBh IHZhY3V1bQorIyB3aXRoIGhvdF9zdGFuZGJ5X2ZlZWRiYWNrIHR1cm5lZCBvZmYgb24gdGhl IHN0YW5kYnkuCiskbm9kZV9zdGFuZGJ5LT5hcHBlbmRfY29uZigncG9zdGdyZXNxbC5jb25m JyxxWworaG90X3N0YW5kYnlfZmVlZGJhY2sgPSBvZmYKK10pOworJG5vZGVfc3RhbmRieS0+ cmVzdGFydDsKKyMgZW5zdXJlIHdhbHJlY2VpdmVyIGZlZWRiYWNrIG9mZiBieSB3YWl0aW5n IGZvciBleHBlY3RlZCB4bWluIGFuZAorIyBjYXRhbG9nX3htaW4gb24gcHJpbWFyeS4gQm90 aCBzaG91bGQgYmUgTlVMTCBzaW5jZSBoc19mZWVkYmFjayBpcyBvZmYKK3dhaXRfZm9yX3ht aW5zKCRub2RlX3ByaW1hcnksICRwcmltYXJ5X3Nsb3RuYW1lLAorCQkJICAgInhtaW4gSVMg TlVMTCBBTkQgY2F0YWxvZ194bWluIElTIE5VTEwiKTsKKworJGhhbmRsZSA9IG1ha2Vfc2xv dF9hY3RpdmUoMSk7CisKKyMgVGhpcyBzaG91bGQgdHJpZ2dlciB0aGUgY29uZmxpY3QKKyRu b2RlX3ByaW1hcnktPnNhZmVfcHNxbCgndGVzdGRiJywgcXFbQ1JFQVRFIFRBQkxFIGNvbmZs aWN0X3Rlc3QoeCBpbnRlZ2VyLCB5IHRleHQpO10pOworJG5vZGVfcHJpbWFyeS0+c2FmZV9w c3FsKCd0ZXN0ZGInLCBxcVtEUk9QIFRBQkxFIGNvbmZsaWN0X3Rlc3Q7XSk7Ciskbm9kZV9w cmltYXJ5LT5zYWZlX3BzcWwoJ3Rlc3RkYicsICdWQUNVVU0nKTsKKworJG5vZGVfcHJpbWFy eS0+d2FpdF9mb3JfY2F0Y2h1cCgkbm9kZV9zdGFuZGJ5LCAncmVwbGF5JywgJG5vZGVfcHJp bWFyeS0+bHNuKCdmbHVzaCcpKTsKKworIyBtZXNzYWdlIHNob3VsZCBiZSBpc3N1ZWQKK29r KCBmaW5kX2luX2xvZygKKyAgICRub2RlX3N0YW5kYnksCisgICJpbnZhbGlkYXRpbmcgc2xv dCBcImluYWN0aXZlc2xvdFwiIGJlY2F1c2UgaXQgY29uZmxpY3RzIHdpdGggcmVjb3Zlcnki LCAkbG9nc3RhcnQpLAorICAnaW5hY3RpdmVzbG90IHNsb3QgaW52YWxpZGF0aW9uIGlzIGxv Z2dlZCBkdWUgdG8gcm93IHJlbW92YWwnKTsKKworb2soIGZpbmRfaW5fbG9nKAorICAgJG5v ZGVfc3RhbmRieSwKKyAgImludmFsaWRhdGluZyBzbG90IFwiYWN0aXZlc2xvdFwiIGJlY2F1 c2UgaXQgY29uZmxpY3RzIHdpdGggcmVjb3ZlcnkiLCAkbG9nc3RhcnQpLAorICAnYWN0aXZl c2xvdCBzbG90IGludmFsaWRhdGlvbiBpcyBsb2dnZWQgZHVlIHRvIHJvdyByZW1vdmFsJyk7 CisKKyMgVmVyaWZ5IHRoYXQgcGdfc3RhdF9kYXRhYmFzZV9jb25mbGljdHMuY29uZmxfYWN0 aXZlX2xvZ2ljYWxzbG90IGhhcyBiZWVuIHVwZGF0ZWQKKyMgd2Ugbm93IGV4cGVjdCAyIGNv bmZsaWN0cyByZXBvcnRlZCBhcyB0aGUgY291bnRlciBwZXJzaXN0IGFjcm9zcyByZXN0YXJ0 cworb2soICRub2RlX3N0YW5kYnktPnBvbGxfcXVlcnlfdW50aWwoCisJJ3Bvc3RncmVzJywK Kwkic2VsZWN0IChjb25mbF9hY3RpdmVfbG9naWNhbHNsb3QgPSAyKSBmcm9tIHBnX3N0YXRf ZGF0YWJhc2VfY29uZmxpY3RzIHdoZXJlIGRhdG5hbWUgPSAndGVzdGRiJyIsICd0JyksCisJ J2NvbmZsX2FjdGl2ZV9sb2dpY2Fsc2xvdCB1cGRhdGVkJykgb3IgZGllICJUaW1lZCBvdXQg d2FpdGluZyBjb25mbF9hY3RpdmVfbG9naWNhbHNsb3QgdG8gYmUgdXBkYXRlZCI7CisKKyRo YW5kbGUgPSBtYWtlX3Nsb3RfYWN0aXZlKDApOworIyBXZSBhcmUgbm90IGFibGUgdG8gcmVh ZCBmcm9tIHRoZSBzbG90IGFzIGl0IGhhcyBiZWVuIGludmFsaWRhdGVkCitjaGVja19wZ19y ZWN2bG9naWNhbF9zdGRlcnIoJGhhbmRsZSwgImNhbm5vdCByZWFkIGZyb20gbG9naWNhbCBy ZXBsaWNhdGlvbiBzbG90IFwiYWN0aXZlc2xvdFwiIik7CisKKyMgVHVybiBob3Rfc3RhbmRi eV9mZWVkYmFjayBiYWNrIG9uCiskbm9kZV9zdGFuZGJ5LT5hcHBlbmRfY29uZigncG9zdGdy ZXNxbC5jb25mJyxxWworaG90X3N0YW5kYnlfZmVlZGJhY2sgPSBvbgorXSk7Ciskbm9kZV9z dGFuZGJ5LT5yZXN0YXJ0OworCisjIGVuc3VyZSB3YWxyZWNlaXZlciBmZWVkYmFjayBzZW50 IGJ5IHdhaXRpbmcgZm9yIGV4cGVjdGVkIHhtaW4gYW5kCisjIGNhdGFsb2dfeG1pbiBvbiBw cmltYXJ5LiBXaXRoIGhvdF9zdGFuZGJ5X2ZlZWRiYWNrIG9uLCB4bWluIHNob3VsZCBhZHZh bmNlLAorIyBidXQgY2F0YWxvZ194bWluIHNob3VsZCBzdGlsbCByZW1haW4gTlVMTCBzaW5j ZSB0aGVyZSBpcyBubyBsb2dpY2FsIHNsb3QuCit3YWl0X2Zvcl94bWlucygkbm9kZV9wcmlt YXJ5LCAkcHJpbWFyeV9zbG90bmFtZSwKKwkJCSAgICJ4bWluIElTIE5PVCBOVUxMIEFORCBj YXRhbG9nX3htaW4gSVMgTlVMTCIpOworCisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIworIyBSZWNvdmVyeSBjb25mbGljdDogSW52YWxpZGF0 ZSBjb25mbGljdGluZyBzbG90cywgaW5jbHVkaW5nIGluLXVzZSBzbG90cworIyBTY2VuYXJp byAzOiBpbmNvcnJlY3Qgd2FsX2xldmVsIG9uIHByaW1hcnkuCisjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIworCisjIGdldCB0aGUgcG9zaXRp b24gdG8gc2VhcmNoIGZyb20gaW4gdGhlIHN0YW5kYnkgbG9nZmlsZQorJGxvZ3N0YXJ0ID0g LXMgJG5vZGVfc3RhbmRieS0+bG9nZmlsZTsKKworIyBkcm9wIHRoZSBsb2dpY2FsIHNsb3Rz Ciskbm9kZV9zdGFuZGJ5LT5wc3FsKCdwb3N0Z3JlcycsIHFbU0VMRUNUIHBnX2Ryb3BfcmVw bGljYXRpb25fc2xvdCgnaW5hY3RpdmVzbG90JyldKTsKKyRub2RlX3N0YW5kYnktPnBzcWwo J3Bvc3RncmVzJywgcVtTRUxFQ1QgcGdfZHJvcF9yZXBsaWNhdGlvbl9zbG90KCdhY3RpdmVz bG90JyldKTsKKworY3JlYXRlX2xvZ2ljYWxfc2xvdHMoKTsKKworJGhhbmRsZSA9IG1ha2Vf c2xvdF9hY3RpdmUoMSk7CisKKyMgTWFrZSBwcmltYXJ5IHdhbF9sZXZlbCByZXBsaWNhLiBU aGlzIHdpbGwgdHJpZ2dlciBzbG90IGNvbmZsaWN0LgorJG5vZGVfcHJpbWFyeS0+YXBwZW5k X2NvbmYoJ3Bvc3RncmVzcWwuY29uZicscVsKK3dhbF9sZXZlbCA9ICdyZXBsaWNhJworXSk7 Ciskbm9kZV9wcmltYXJ5LT5yZXN0YXJ0OworCiskbm9kZV9wcmltYXJ5LT53YWl0X2Zvcl9j YXRjaHVwKCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAkbm9kZV9wcmltYXJ5LT5sc24oJ2Zs dXNoJykpOworCisjIG1lc3NhZ2Ugc2hvdWxkIGJlIGlzc3VlZAorb2soIGZpbmRfaW5fbG9n KAorICAgJG5vZGVfc3RhbmRieSwKKyAgImludmFsaWRhdGluZyBzbG90IFwiaW5hY3RpdmVz bG90XCIgYmVjYXVzZSBpdCBjb25mbGljdHMgd2l0aCByZWNvdmVyeSIsICRsb2dzdGFydCks CisgICdpbmFjdGl2ZXNsb3Qgc2xvdCBpbnZhbGlkYXRpb24gaXMgbG9nZ2VkIGR1ZSB0byB3 YWxfbGV2ZWwnKTsKKworb2soIGZpbmRfaW5fbG9nKAorICAgJG5vZGVfc3RhbmRieSwKKyAg ImludmFsaWRhdGluZyBzbG90IFwiYWN0aXZlc2xvdFwiIGJlY2F1c2UgaXQgY29uZmxpY3Rz IHdpdGggcmVjb3ZlcnkiLCAkbG9nc3RhcnQpLAorICAnYWN0aXZlc2xvdCBzbG90IGludmFs aWRhdGlvbiBpcyBsb2dnZWQgZHVlIHRvIHdhbF9sZXZlbCcpOworCisjIFZlcmlmeSB0aGF0 IHBnX3N0YXRfZGF0YWJhc2VfY29uZmxpY3RzLmNvbmZsX2FjdGl2ZV9sb2dpY2Fsc2xvdCBo YXMgYmVlbiB1cGRhdGVkCisjIHdlIG5vdyBleHBlY3QgMyBjb25mbGljdHMgcmVwb3J0ZWQg YXMgdGhlIGNvdW50ZXIgcGVyc2lzdCBhY3Jvc3MgcmVzdGFydHMKK29rKCAkbm9kZV9zdGFu ZGJ5LT5wb2xsX3F1ZXJ5X3VudGlsKAorCSdwb3N0Z3JlcycsCisJInNlbGVjdCAoY29uZmxf YWN0aXZlX2xvZ2ljYWxzbG90ID0gMykgZnJvbSBwZ19zdGF0X2RhdGFiYXNlX2NvbmZsaWN0 cyB3aGVyZSBkYXRuYW1lID0gJ3Rlc3RkYiciLCAndCcpLAorCSdjb25mbF9hY3RpdmVfbG9n aWNhbHNsb3QgdXBkYXRlZCcpIG9yIGRpZSAiVGltZWQgb3V0IHdhaXRpbmcgY29uZmxfYWN0 aXZlX2xvZ2ljYWxzbG90IHRvIGJlIHVwZGF0ZWQiOworCiskaGFuZGxlID0gbWFrZV9zbG90 X2FjdGl2ZSgwKTsKKyMgV2UgYXJlIG5vdCBhYmxlIHRvIHJlYWQgZnJvbSB0aGUgc2xvdCBh cyBpdCByZXF1aXJlcyB3YWxfbGV2ZWwgYXQgbGVhc3QgbG9naWNhbCBvbiBtYXN0ZXIKK2No ZWNrX3BnX3JlY3Zsb2dpY2FsX3N0ZGVycigkaGFuZGxlLCAibG9naWNhbCBkZWNvZGluZyBv biBzdGFuZGJ5IHJlcXVpcmVzIHdhbF9sZXZlbCB0byBiZSBhdCBsZWFzdCBsb2dpY2FsIG9u IG1hc3RlciIpOworCisjIFJlc3RvcmUgcHJpbWFyeSB3YWxfbGV2ZWwKKyRub2RlX3ByaW1h cnktPmFwcGVuZF9jb25mKCdwb3N0Z3Jlc3FsLmNvbmYnLHFbCit3YWxfbGV2ZWwgPSAnbG9n aWNhbCcKK10pOworJG5vZGVfcHJpbWFyeS0+cmVzdGFydDsKKyRub2RlX3ByaW1hcnktPndh aXRfZm9yX2NhdGNodXAoJG5vZGVfc3RhbmRieSwgJ3JlcGxheScsICRub2RlX3ByaW1hcnkt PmxzbignZmx1c2gnKSk7CisKKyRoYW5kbGUgPSBtYWtlX3Nsb3RfYWN0aXZlKDApOworIyBh cyB0aGUgc2xvdCBoYXMgYmVlbiBpbnZhbGlkYXRlZCB3ZSBzaG91bGQgbm90IGJlIGFibGUg dG8gcmVhZAorY2hlY2tfcGdfcmVjdmxvZ2ljYWxfc3RkZXJyKCRoYW5kbGUsICJjYW5ub3Qg cmVhZCBmcm9tIGxvZ2ljYWwgcmVwbGljYXRpb24gc2xvdCBcImFjdGl2ZXNsb3RcIiIpOwor CisjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwor IyBEUk9QIERBVEFCQVNFIHNob3VsZCBkcm9wcyBpdCdzIHNsb3RzLCBpbmNsdWRpbmcgYWN0 aXZlIHNsb3RzLgorIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMKKworJG5vZGVfc3RhbmRieS0+cHNxbCgncG9zdGdyZXMnLCBxW1NFTEVDVCBw Z19kcm9wX3JlcGxpY2F0aW9uX3Nsb3QoJ2luYWN0aXZlc2xvdCcpXSk7Ciskbm9kZV9zdGFu ZGJ5LT5wc3FsKCdwb3N0Z3JlcycsIHFbU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xv dCgnYWN0aXZlc2xvdCcpXSk7CitjcmVhdGVfbG9naWNhbF9zbG90cygpOworJGhhbmRsZSA9 IG1ha2Vfc2xvdF9hY3RpdmUoMSk7CisjIENyZWF0ZSBhIHNsb3Qgb24gYSBkYXRhYmFzZSB0 aGF0IHdvdWxkIG5vdCBiZSBkcm9wcGVkLiBUaGlzIHNsb3Qgc2hvdWxkIG5vdAorIyBnZXQg ZHJvcHBlZC4KKyRub2RlX3N0YW5kYnktPmNyZWF0ZV9sb2dpY2FsX3Nsb3Rfb25fc3RhbmRi eSgkbm9kZV9wcmltYXJ5LCAnb3RoZXJzbG90JywgJ3Bvc3RncmVzJyk7CisKKyMgZHJvcGRi IG9uIHRoZSBwcmltYXJ5IHRvIHZlcmlmeSBzbG90cyBhcmUgZHJvcHBlZCBvbiBzdGFuZGJ5 Ciskbm9kZV9wcmltYXJ5LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywgcVtEUk9QIERBVEFCQVNF IHRlc3RkYl0pOworCiskbm9kZV9wcmltYXJ5LT53YWl0X2Zvcl9jYXRjaHVwKCRub2RlX3N0 YW5kYnksICdyZXBsYXknLCAkbm9kZV9wcmltYXJ5LT5sc24oJ2ZsdXNoJykpOworCitpcygk bm9kZV9zdGFuZGJ5LT5zYWZlX3BzcWwoJ3Bvc3RncmVzJywKKwlxW1NFTEVDVCBFWElTVFMo U0VMRUNUIDEgRlJPTSBwZ19kYXRhYmFzZSBXSEVSRSBkYXRuYW1lID0gJ3Rlc3RkYicpXSks ICdmJywKKwknZGF0YWJhc2UgZHJvcHBlZCBvbiBzdGFuZGJ5Jyk7CisKK2NoZWNrX3Nsb3Rz X2Ryb3BwZWQoJGhhbmRsZSk7CisKK2lzKCRub2RlX3N0YW5kYnktPnNsb3QoJ290aGVyc2xv dCcpLT57J3Nsb3RfdHlwZSd9LCAnbG9naWNhbCcsCisJJ290aGVyc2xvdCBvbiBzdGFuZGJ5 IG5vdCBkcm9wcGVkJyk7CisKKyMgQ2xlYW51cCA6IG1hbnVhbGx5IGRyb3AgdGhlIHNsb3Qg dGhhdCB3YXMgbm90IGRyb3BwZWQuCiskbm9kZV9zdGFuZGJ5LT5wc3FsKCdwb3N0Z3Jlcycs IHFbU0VMRUNUIHBnX2Ryb3BfcmVwbGljYXRpb25fc2xvdCgnb3RoZXJzbG90JyldKTsKKwor IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKyMg VGVzdCBzdGFuZGJ5IHByb21vdGlvbiBhbmQgbG9naWNhbCBkZWNvZGluZyBiZWhhdmlvcgor IyBhZnRlciB0aGUgc3RhbmRieSBnZXRzIHByb21vdGVkLgorIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKKworJG5vZGVfcHJpbWFyeS0+cHNx bCgncG9zdGdyZXMnLCBxW0NSRUFURSBEQVRBQkFTRSB0ZXN0ZGJdKTsKKyRub2RlX3ByaW1h cnktPnNhZmVfcHNxbCgndGVzdGRiJywgcXFbQ1JFQVRFIFRBQkxFIGRlY29kaW5nX3Rlc3Qo eCBpbnRlZ2VyLCB5IHRleHQpO10pOworCisjIGNyZWF0ZSB0aGUgbG9naWNhbCBzbG90cwor Y3JlYXRlX2xvZ2ljYWxfc2xvdHMoKTsKKworIyBJbnNlcnQgc29tZSByb3dzIGJlZm9yZSB0 aGUgcHJvbW90aW9uCiskbm9kZV9wcmltYXJ5LT5zYWZlX3BzcWwoJ3Rlc3RkYicsCisJcXFb SU5TRVJUIElOVE8gZGVjb2RpbmdfdGVzdCh4LHkpIFNFTEVDVCBzLCBzOjp0ZXh0IEZST00g Z2VuZXJhdGVfc2VyaWVzKDEsNCkgcztdCispOworCiskbm9kZV9wcmltYXJ5LT53YWl0X2Zv cl9jYXRjaHVwKCRub2RlX3N0YW5kYnksICdyZXBsYXknLCAkbm9kZV9wcmltYXJ5LT5sc24o J2ZsdXNoJykpOworCisjIHByb21vdGUKKyRub2RlX3N0YW5kYnktPnByb21vdGU7CisKKyMg aW5zZXJ0IHNvbWUgcm93cyBvbiBwcm9tb3RlZCBzdGFuZGJ5Ciskbm9kZV9zdGFuZGJ5LT5z YWZlX3BzcWwoJ3Rlc3RkYicsCisJcXFbSU5TRVJUIElOVE8gZGVjb2RpbmdfdGVzdCh4LHkp IFNFTEVDVCBzLCBzOjp0ZXh0IEZST00gZ2VuZXJhdGVfc2VyaWVzKDUsNykgcztdCispOwor CisKKyRleHBlY3RlZCA9IHF7QkVHSU4KK3RhYmxlIHB1YmxpYy5kZWNvZGluZ190ZXN0OiBJ TlNFUlQ6IHhbaW50ZWdlcl06MSB5W3RleHRdOicxJwordGFibGUgcHVibGljLmRlY29kaW5n X3Rlc3Q6IElOU0VSVDogeFtpbnRlZ2VyXToyIHlbdGV4dF06JzInCit0YWJsZSBwdWJsaWMu ZGVjb2RpbmdfdGVzdDogSU5TRVJUOiB4W2ludGVnZXJdOjMgeVt0ZXh0XTonMycKK3RhYmxl IHB1YmxpYy5kZWNvZGluZ190ZXN0OiBJTlNFUlQ6IHhbaW50ZWdlcl06NCB5W3RleHRdOic0 JworQ09NTUlUCitCRUdJTgordGFibGUgcHVibGljLmRlY29kaW5nX3Rlc3Q6IElOU0VSVDog eFtpbnRlZ2VyXTo1IHlbdGV4dF06JzUnCit0YWJsZSBwdWJsaWMuZGVjb2RpbmdfdGVzdDog SU5TRVJUOiB4W2ludGVnZXJdOjYgeVt0ZXh0XTonNicKK3RhYmxlIHB1YmxpYy5kZWNvZGlu Z190ZXN0OiBJTlNFUlQ6IHhbaW50ZWdlcl06NyB5W3RleHRdOic3JworQ09NTUlUfTsKKwor IyBjaGVjayB0aGF0IHdlIGFyZSBkZWNvZGluZyBwcmUgYW5kIHBvc3QgcHJvbW90aW9uIGlu c2VydGVkIHJvd3MKKyRzdGRvdXRfc3FsID0gJG5vZGVfc3RhbmRieS0+c2FmZV9wc3FsKCd0 ZXN0ZGInLAorCXFxW1NFTEVDVCBkYXRhIEZST00gcGdfbG9naWNhbF9zbG90X3BlZWtfY2hh bmdlcygnYWN0aXZlc2xvdCcsIE5VTEwsIE5VTEwsICdpbmNsdWRlLXhpZHMnLCAnMCcsICdz a2lwLWVtcHR5LXhhY3RzJywgJzEnKTtdCispOworCitpcygkc3Rkb3V0X3NxbCwgJGV4cGVj dGVkLCAnZ290IGV4cGVjdGVkIG91dHB1dCBmcm9tIFNRTCBkZWNvZGluZyBzZXNzaW9uIG9u IHByb21vdGVkIHN0YW5kYnknKTsKLS0gCjIuMzQuMQoK --------------33idPHuZjSjOk9JsByk0nzBq Content-Type: text/plain; charset=UTF-8; name="v35-0003-Allow-logical-decoding-on-standby.patch" Content-Disposition: attachment; filename="v35-0003-Allow-logical-decoding-on-standby.patch" Content-Transfer-Encoding: base64 RnJvbSBkMzQzMTRhNjliNDI3Y2NlZDUzZmFlMjViZWFhNDdlMjYxZTQ0NTBlIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogV2VkLCAyMSBEZWMgMjAyMiAxNDoxMToxOCArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjM1IDMvNl0gQWxsb3cgbG9naWNhbCBkZWNvZGluZyBvbiBzdGFuZGJ5LgoKQWxsb3cg YSBsb2dpY2FsIHNsb3QgdG8gYmUgY3JlYXRlZCBvbiBzdGFuZGJ5LiBSZXN0cmljdCBpdHMg dXNhZ2UKb3IgaXRzIGNyZWF0aW9uIGlmIHdhbF9sZXZlbCBvbiBwcmltYXJ5IGlzIGxlc3Mg dGhhbiBsb2dpY2FsLgpEdXJpbmcgc2xvdCBjcmVhdGlvbiwgaXQncyByZXN0YXJ0X2xzbiBp cyBzZXQgdG8gdGhlIGxhc3QgcmVwbGF5ZWQKTFNOLiBFZmZlY3RpdmVseSwgYSBsb2dpY2Fs IHNsb3QgY3JlYXRpb24gb24gc3RhbmRieSB3YWl0cyBmb3IgYW4KeGxfcnVubmluZ194YWN0 IHJlY29yZCB0byBhcnJpdmUgZnJvbSBwcmltYXJ5LiBDb25mbGljdGluZyBzbG90cwp3b3Vs ZCBiZSBoYW5kbGVkIGluIG5leHQgY29tbWl0cy4KCkF1dGhvcjogQW5kcmVzIEZyZXVuZCAo aW4gYW4gb2xkZXIgdmVyc2lvbiksIEFtaXQgS2hhbmRla2FyLCBCZXJ0cmFuZCBEcm91dm90 ClJldmlld2VkLUJ5OiBCZXJ0cmFuZCBEcm91dm90LCBBbmRyZXMgRnJldW5kLCBSb2JlcnQg SGFhcywgRmFicml6aW8gZGUgUm95ZXMgTWVsbG8KLS0tCiBzcmMvYmFja2VuZC9hY2Nlc3Mv dHJhbnNhbS94bG9nLmMgICAgICAgICB8IDExICsrKysKIHNyYy9iYWNrZW5kL3JlcGxpY2F0 aW9uL2xvZ2ljYWwvZGVjb2RlLmMgIHwgMjIgKysrKysrLQogc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vbG9naWNhbC9sb2dpY2FsLmMgfCAzNyArKysrKysrLS0tLS0KIHNyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL3Nsb3QuYyAgICAgICAgICAgIHwgNzMgKysrKysrKysrKysrKysrLS0t LS0tLS0KIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jICAgICAgIHwgMjcg KysrKystLS0tCiBzcmMvaW5jbHVkZS9hY2Nlc3MveGxvZy5oICAgICAgICAgICAgICAgICB8 ICAxICsKIDYgZmlsZXMgY2hhbmdlZCwgMTE4IGluc2VydGlvbnMoKyksIDUzIGRlbGV0aW9u cygtKQogICA0LjUlIHNyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtLwogIDM2LjYlIHNyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvCiAgNTcuOSUgc3JjL2JhY2tlbmQvcmVwbGlj YXRpb24vCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5j IGIvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCmluZGV4IGZjYTZlZTQ1ODQu LmY5Y2M4NDJhNmEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hs b2cuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMKQEAgLTQ0NjIs NiArNDQ2MiwxNyBAQCBMb2NhbFByb2Nlc3NDb250cm9sRmlsZShib29sIHJlc2V0KQogCVJl YWRDb250cm9sRmlsZSgpOwogfQogCisvKgorICogR2V0IHRoZSB3YWxfbGV2ZWwgZnJvbSB0 aGUgY29udHJvbCBmaWxlLiBGb3IgYSBzdGFuZGJ5LCB0aGlzIHZhbHVlIHNob3VsZCBiZQor ICogY29uc2lkZXJlZCBhcyBpdHMgYWN0aXZlIHdhbF9sZXZlbCwgYmVjYXVzZSBpdCBtYXkg YmUgZGlmZmVyZW50IGZyb20gd2hhdAorICogd2FzIG9yaWdpbmFsbHkgY29uZmlndXJlZCBv biBzdGFuZGJ5LgorICovCitXYWxMZXZlbAorR2V0QWN0aXZlV2FsTGV2ZWxPblN0YW5kYnko dm9pZCkKK3sKKwlyZXR1cm4gQ29udHJvbEZpbGUtPndhbF9sZXZlbDsKK30KKwogLyoKICAq IEluaXRpYWxpemF0aW9uIG9mIHNoYXJlZCBtZW1vcnkgZm9yIFhMT0cKICAqLwpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9kZWNvZGUuYyBiL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvZGVjb2RlLmMKaW5kZXggMmNjMGFjOWViMC4u YzIxMDcyMWFiMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNh bC9kZWNvZGUuYworKysgYi9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2RlY29k ZS5jCkBAIC0xNTIsMTEgKzE1MiwzMSBAQCB4bG9nX2RlY29kZShMb2dpY2FsRGVjb2RpbmdD b250ZXh0ICpjdHgsIFhMb2dSZWNvcmRCdWZmZXIgKmJ1ZikKIAkJCSAqIGNhbiByZXN0YXJ0 IGZyb20gdGhlcmUuCiAJCQkgKi8KIAkJCWJyZWFrOworCQljYXNlIFhMT0dfUEFSQU1FVEVS X0NIQU5HRToKKwkJeworCQkJeGxfcGFyYW1ldGVyX2NoYW5nZSAqeGxyZWMgPQorCQkJCSh4 bF9wYXJhbWV0ZXJfY2hhbmdlICopIFhMb2dSZWNHZXREYXRhKGJ1Zi0+cmVjb3JkKTsKKwor CQkJLyoKKwkJCSAqIElmIHdhbF9sZXZlbCBvbiBwcmltYXJ5IGlzIHJlZHVjZWQgdG8gbGVz cyB0aGFuIGxvZ2ljYWwsIHRoZW4gd2UKKwkJCSAqIHdhbnQgdG8gcHJldmVudCBleGlzdGlu ZyBsb2dpY2FsIHNsb3RzIGZyb20gYmVpbmcgdXNlZC4KKwkJCSAqIEV4aXN0aW5nIGxvZ2lj YWwgc2xvdHMgb24gc3RhbmRieSBnZXQgaW52YWxpZGF0ZWQgd2hlbiB0aGlzIFdBTAorCQkJ ICogcmVjb3JkIGlzIHJlcGxheWVkOyBhbmQgZnVydGhlciwgc2xvdCBjcmVhdGlvbiBmYWls cyB3aGVuIHRoZQorCQkJICogd2FsIGxldmVsIGlzIG5vdCBzdWZmaWNpZW50OyBidXQgYWxs IHRoZXNlIG9wZXJhdGlvbnMgYXJlIG5vdAorCQkJICogc3luY2hyb25pemVkLCBzbyBhIGxv Z2ljYWwgc2xvdCBtYXkgY3JlZXAgaW4gd2hpbGUgdGhlIHdhbF9sZXZlbAorCQkJICogaXMg YmVpbmcgcmVkdWNlZC4gSGVuY2UgdGhpcyBleHRyYSBjaGVjay4KKwkJCSAqLworCQkJaWYg KHhscmVjLT53YWxfbGV2ZWwgPCBXQUxfTEVWRUxfTE9HSUNBTCkKKwkJCQllcmVwb3J0KEVS Uk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9PQkpFQ1RfTk9UX0lOX1BSRVJFUVVJU0lU RV9TVEFURSksCisJCQkJCQkgZXJybXNnKCJsb2dpY2FsIGRlY29kaW5nIG9uIHN0YW5kYnkg cmVxdWlyZXMgIgorCQkJCQkJCQkid2FsX2xldmVsIHRvIGJlIGF0IGxlYXN0IGxvZ2ljYWwg b24gbWFzdGVyIikpKTsKKwkJCWJyZWFrOworCQl9CiAJCWNhc2UgWExPR19OT09QOgogCQlj YXNlIFhMT0dfTkVYVE9JRDoKIAkJY2FzZSBYTE9HX1NXSVRDSDoKIAkJY2FzZSBYTE9HX0JB Q0tVUF9FTkQ6Ci0JCWNhc2UgWExPR19QQVJBTUVURVJfQ0hBTkdFOgogCQljYXNlIFhMT0df UkVTVE9SRV9QT0lOVDoKIAkJY2FzZSBYTE9HX0ZQV19DSEFOR0U6CiAJCWNhc2UgWExPR19G UElfRk9SX0hJTlQ6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9sb2dp Y2FsL2xvZ2ljYWwuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNh bC5jCmluZGV4IDYyNWE3ZjQyNzMuLmE5NTY3ZjJkOGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbC5jCisrKyBiL3NyYy9iYWNrZW5kL3Jl cGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbC5jCkBAIC0xMTksMjMgKzExOSwyMiBAQCBDaGVj a0xvZ2ljYWxEZWNvZGluZ1JlcXVpcmVtZW50cyh2b2lkKQogCQkJCShlcnJjb2RlKEVSUkNP REVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAogCQkJCSBlcnJtc2coImxv Z2ljYWwgZGVjb2RpbmcgcmVxdWlyZXMgYSBkYXRhYmFzZSBjb25uZWN0aW9uIikpKTsKIAot CS8qIC0tLS0KLQkgKiBUT0RPOiBXZSBnb3QgdG8gY2hhbmdlIHRoYXQgc29tZWRheSBzb29u Li4uCi0JICoKLQkgKiBUaGVyZSdzIGJhc2ljYWxseSB0aHJlZSB0aGluZ3MgbWlzc2luZyB0 byBhbGxvdyB0aGlzOgotCSAqIDEpIFdlIG5lZWQgdG8gYmUgYWJsZSB0byBjb3JyZWN0bHkg YW5kIHF1aWNrbHkgaWRlbnRpZnkgdGhlIHRpbWVsaW5lIGEKLQkgKgkgIExTTiBiZWxvbmdz IHRvCi0JICogMikgV2UgbmVlZCB0byBmb3JjZSBob3Rfc3RhbmRieV9mZWVkYmFjayB0byBi ZSBlbmFibGVkIGF0IGFsbCB0aW1lcyBzbwotCSAqCSAgdGhlIHByaW1hcnkgY2Fubm90IHJl bW92ZSByb3dzIHdlIG5lZWQuCi0JICogMykgc3VwcG9ydCBkcm9wcGluZyByZXBsaWNhdGlv biBzbG90cyByZWZlcnJpbmcgdG8gYSBkYXRhYmFzZSwgaW4KLQkgKgkgIGRiYXNlX3JlZG8u IFRoZXJlIGNhbid0IGJlIGFueSBhY3RpdmUgb25lcyBkdWUgdG8gSFMgcmVjb3ZlcnkKLQkg KgkgIGNvbmZsaWN0cywgc28gdGhhdCBzaG91bGQgYmUgcmVsYXRpdmVseSBlYXN5LgotCSAq IC0tLS0KLQkgKi8KIAlpZiAoUmVjb3ZlcnlJblByb2dyZXNzKCkpCi0JCWVyZXBvcnQoRVJS T1IsCi0JCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAotCQkJ CSBlcnJtc2coImxvZ2ljYWwgZGVjb2RpbmcgY2Fubm90IGJlIHVzZWQgd2hpbGUgaW4gcmVj b3ZlcnkiKSkpOworCXsKKwkJLyoKKwkJICogVGhpcyBjaGVjayBtYXkgaGF2ZSByYWNlIGNv bmRpdGlvbnMsIGJ1dCB3aGVuZXZlcgorCQkgKiBYTE9HX1BBUkFNRVRFUl9DSEFOR0UgaW5k aWNhdGVzIHRoYXQgd2FsX2xldmVsIGhhcyBjaGFuZ2VkLCB3ZQorCQkgKiB2ZXJpZnkgdGhh dCB0aGVyZSBhcmUgbm8gZXhpc3RpbmcgbG9naWNhbCByZXBsaWNhdGlvbiBzbG90cy4gQW5k IHRvCisJCSAqIGF2b2lkIHJhY2VzIGFyb3VuZCBjcmVhdGluZyBhIG5ldyBzbG90LAorCQkg KiBDaGVja0xvZ2ljYWxEZWNvZGluZ1JlcXVpcmVtZW50cygpIGlzIGNhbGxlZCBvbmNlIGJl Zm9yZSBjcmVhdGluZworCQkgKiB0aGUgc2xvdCwgYW5kIG9uY2Ugd2hlbiBsb2dpY2FsIGRl Y29kaW5nIGlzIGluaXRpYWxseSBzdGFydGluZyB1cC4KKwkJICovCisJCWlmIChHZXRBY3Rp dmVXYWxMZXZlbE9uU3RhbmRieSgpIDwgV0FMX0xFVkVMX0xPR0lDQUwpCisJCQllcmVwb3J0 KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX09CSkVDVF9OT1RfSU5fUFJFUkVRVUlT SVRFX1NUQVRFKSwKKwkJCQkJIGVycm1zZygibG9naWNhbCBkZWNvZGluZyBvbiBzdGFuZGJ5 IHJlcXVpcmVzICIKKwkJCQkJCQkid2FsX2xldmVsIHRvIGJlIGF0IGxlYXN0IGxvZ2ljYWwg b24gbWFzdGVyIikpKTsKKwl9CiB9CiAKIC8qCkBAIC0zMzEsNiArMzMwLDEyIEBAIENyZWF0 ZUluaXREZWNvZGluZ0NvbnRleHQoY29uc3QgY2hhciAqcGx1Z2luLAogCUxvZ2ljYWxEZWNv ZGluZ0NvbnRleHQgKmN0eDsKIAlNZW1vcnlDb250ZXh0IG9sZF9jb250ZXh0OwogCisJLyoK KwkgKiBPbiBzdGFuZGJ5LCB0aGlzIGNoZWNrIGlzIGFsc28gcmVxdWlyZWQgd2hpbGUgY3Jl YXRpbmcgdGhlIHNsb3QuIENoZWNrCisJICogdGhlIGNvbW1lbnRzIGluIHRoaXMgZnVuY3Rp b24uCisJICovCisJQ2hlY2tMb2dpY2FsRGVjb2RpbmdSZXF1aXJlbWVudHMoKTsKKwogCS8q IHNob3J0ZXIgbGluZXMuLi4gKi8KIAlzbG90ID0gTXlSZXBsaWNhdGlvblNsb3Q7CiAKZGlm ZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYyBiL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL3Nsb3QuYwppbmRleCA2YTRlMmNkMTliLi5mNTU0ZGFjNmZkIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKKysrIGIvc3JjL2JhY2tl bmQvcmVwbGljYXRpb24vc2xvdC5jCkBAIC01MSw2ICs1MSw3IEBACiAjaW5jbHVkZSAic3Rv cmFnZS9wcm9jLmgiCiAjaW5jbHVkZSAic3RvcmFnZS9wcm9jYXJyYXkuaCIKICNpbmNsdWRl ICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgImFjY2Vzcy94bG9ncmVjb3ZlcnkuaCIK IAogLyoKICAqIFJlcGxpY2F0aW9uIHNsb3Qgb24tZGlzayBkYXRhIHN0cnVjdHVyZS4KQEAg LTExNzUsMzcgKzExNzYsNDYgQEAgUmVwbGljYXRpb25TbG90UmVzZXJ2ZVdhbCh2b2lkKQog CQkvKgogCQkgKiBGb3IgbG9naWNhbCBzbG90cyBsb2cgYSBzdGFuZGJ5IHNuYXBzaG90IGFu ZCBzdGFydCBsb2dpY2FsIGRlY29kaW5nCiAJCSAqIGF0IGV4YWN0bHkgdGhhdCBwb3NpdGlv bi4gVGhhdCBhbGxvd3MgdGhlIHNsb3QgdG8gc3RhcnQgdXAgbW9yZQotCQkgKiBxdWlja2x5 LgorCQkgKiBxdWlja2x5LiBCdXQgb24gYSBzdGFuZGJ5IHdlIGNhbm5vdCBkbyBXQUwgd3Jp dGVzLCBzbyBqdXN0IHVzZSB0aGUKKwkJICogcmVwbGF5IHBvaW50ZXI7IGVmZmVjdGl2ZWx5 LCBhbiBhdHRlbXB0IHRvIGNyZWF0ZSBhIGxvZ2ljYWwgc2xvdCBvbgorCQkgKiBzdGFuZGJ5 IHdpbGwgY2F1c2UgaXQgdG8gd2FpdCBmb3IgYW4geGxfcnVubmluZ194YWN0IHJlY29yZCB0 byBiZQorCQkgKiBsb2dnZWQgaW5kZXBlbmRlbnRseSBvbiB0aGUgcHJpbWFyeSwgc28gdGhh dCBhIHNuYXBzaG90IGNhbiBiZSBidWlsdAorCQkgKiB1c2luZyB0aGUgcmVjb3JkLgogCQkg KgotCQkgKiBUaGF0J3Mgbm90IG5lZWRlZCAob3IgaW5kZWVkIGhlbHBmdWwpIGZvciBwaHlz aWNhbCBzbG90cyBhcyB0aGV5J2xsCi0JCSAqIHN0YXJ0IHJlcGxheSBhdCB0aGUgbGFzdCBs b2dnZWQgY2hlY2twb2ludCBhbnl3YXkuIEluc3RlYWQgcmV0dXJuCi0JCSAqIHRoZSBsb2Nh dGlvbiBvZiB0aGUgbGFzdCByZWRvIExTTi4gV2hpbGUgdGhhdCBzbGlnaHRseSBpbmNyZWFz ZXMKLQkJICogdGhlIGNoYW5jZSB0aGF0IHdlIGhhdmUgdG8gcmV0cnksIGl0J3Mgd2hlcmUg YSBiYXNlIGJhY2t1cCBoYXMgdG8KLQkJICogc3RhcnQgcmVwbGF5IGF0LgorCQkgKiBOb25l IG9mIHRoaXMgaXMgbmVlZGVkIChvciBpbmRlZWQgaGVscGZ1bCkgZm9yIHBoeXNpY2FsIHNs b3RzIGFzCisJCSAqIHRoZXknbGwgc3RhcnQgcmVwbGF5IGF0IHRoZSBsYXN0IGxvZ2dlZCBj aGVja3BvaW50IGFueXdheS4gSW5zdGVhZAorCQkgKiByZXR1cm4gdGhlIGxvY2F0aW9uIG9m IHRoZSBsYXN0IHJlZG8gTFNOLiBXaGlsZSB0aGF0IHNsaWdodGx5CisJCSAqIGluY3JlYXNl cyB0aGUgY2hhbmNlIHRoYXQgd2UgaGF2ZSB0byByZXRyeSwgaXQncyB3aGVyZSBhIGJhc2Ug YmFja3VwCisJCSAqIGhhcyB0byBzdGFydCByZXBsYXkgYXQuCiAJCSAqLwotCQlpZiAoIVJl Y292ZXJ5SW5Qcm9ncmVzcygpICYmIFNsb3RJc0xvZ2ljYWwoc2xvdCkpCisJCWlmIChTbG90 SXNQaHlzaWNhbChzbG90KSkKKwkJCXJlc3RhcnRfbHNuID0gR2V0UmVkb1JlY1B0cigpOwor CQllbHNlIGlmIChSZWNvdmVyeUluUHJvZ3Jlc3MoKSkKIAkJewotCQkJWExvZ1JlY1B0cglm bHVzaHB0cjsKLQotCQkJLyogc3RhcnQgYXQgY3VycmVudCBpbnNlcnQgcG9zaXRpb24gKi8K LQkJCXJlc3RhcnRfbHNuID0gR2V0WExvZ0luc2VydFJlY1B0cigpOwotCQkJU3BpbkxvY2tB Y3F1aXJlKCZzbG90LT5tdXRleCk7Ci0JCQlzbG90LT5kYXRhLnJlc3RhcnRfbHNuID0gcmVz dGFydF9sc247Ci0JCQlTcGluTG9ja1JlbGVhc2UoJnNsb3QtPm11dGV4KTsKLQotCQkJLyog bWFrZSBzdXJlIHdlIGhhdmUgZW5vdWdoIGluZm9ybWF0aW9uIHRvIHN0YXJ0ICovCi0JCQlm bHVzaHB0ciA9IExvZ1N0YW5kYnlTbmFwc2hvdCgpOwotCi0JCQkvKiBhbmQgbWFrZSBzdXJl IGl0J3MgZnN5bmNlZCB0byBkaXNrICovCi0JCQlYTG9nRmx1c2goZmx1c2hwdHIpOworCQkJ cmVzdGFydF9sc24gPSBHZXRYTG9nUmVwbGF5UmVjUHRyKE5VTEwpOworCQkJLyoKKwkJCSAq IFJlcGxheSBwb2ludGVyIG1heSBwb2ludCBvbmUgcGFzdCB0aGUgZW5kIG9mIHRoZSByZWNv cmQuIElmIHRoYXQKKwkJCSAqIGlzIGEgWExPRyBwYWdlIGJvdW5kYXJ5LCBpdCB3aWxsIG5v dCBiZSBhIHZhbGlkIExTTiBmb3IgdGhlCisJCQkgKiBzdGFydCBvZiBhIHJlY29yZCwgc28g YnVtcCBpdCB1cCBwYXN0IHRoZSBwYWdlIGhlYWRlci4KKwkJCSAqLworCQkJaWYgKCFYUmVj T2ZmSXNWYWxpZChyZXN0YXJ0X2xzbikpCisJCQl7CisJCQkJaWYgKHJlc3RhcnRfbHNuICUg WExPR19CTENLU1ogIT0gMCkKKwkJCQkJZWxvZyhFUlJPUiwgImludmFsaWQgcmVwbGF5IHBv aW50ZXIiKTsKKworCQkJCS8qIEZvciB0aGUgZmlyc3QgcGFnZSBvZiBhIHNlZ21lbnQgZmls ZSwgaXQncyBhIGxvbmcgaGVhZGVyICovCisJCQkJaWYgKFhMb2dTZWdtZW50T2Zmc2V0KHJl c3RhcnRfbHNuLCB3YWxfc2VnbWVudF9zaXplKSA9PSAwKQorCQkJCQlyZXN0YXJ0X2xzbiAr PSBTaXplT2ZYTG9nTG9uZ1BIRDsKKwkJCQllbHNlCisJCQkJCXJlc3RhcnRfbHNuICs9IFNp emVPZlhMb2dTaG9ydFBIRDsKKwkJCX0KIAkJfQogCQllbHNlCi0JCXsKLQkJCXJlc3RhcnRf bHNuID0gR2V0UmVkb1JlY1B0cigpOwotCQkJU3BpbkxvY2tBY3F1aXJlKCZzbG90LT5tdXRl eCk7Ci0JCQlzbG90LT5kYXRhLnJlc3RhcnRfbHNuID0gcmVzdGFydF9sc247Ci0JCQlTcGlu TG9ja1JlbGVhc2UoJnNsb3QtPm11dGV4KTsKLQkJfQorCQkJcmVzdGFydF9sc24gPSBHZXRY TG9nSW5zZXJ0UmVjUHRyKCk7CisKKwkJU3BpbkxvY2tBY3F1aXJlKCZzbG90LT5tdXRleCk7 CisJCXNsb3QtPmRhdGEucmVzdGFydF9sc24gPSByZXN0YXJ0X2xzbjsKKwkJU3BpbkxvY2tS ZWxlYXNlKCZzbG90LT5tdXRleCk7CiAKIAkJLyogcHJldmVudCBXQUwgcmVtb3ZhbCBhcyBm YXN0IGFzIHBvc3NpYmxlICovCiAJCVJlcGxpY2F0aW9uU2xvdHNDb21wdXRlUmVxdWlyZWRM U04oKTsKQEAgLTEyMjEsNiArMTIzMSwxNyBAQCBSZXBsaWNhdGlvblNsb3RSZXNlcnZlV2Fs KHZvaWQpCiAJCWlmIChYTG9nR2V0TGFzdFJlbW92ZWRTZWdubygpIDwgc2Vnbm8pCiAJCQli cmVhazsKIAl9CisKKwlpZiAoIVJlY292ZXJ5SW5Qcm9ncmVzcygpICYmIFNsb3RJc0xvZ2lj YWwoc2xvdCkpCisJeworCQlYTG9nUmVjUHRyCWZsdXNocHRyOworCisJCS8qIG1ha2Ugc3Vy ZSB3ZSBoYXZlIGVub3VnaCBpbmZvcm1hdGlvbiB0byBzdGFydCAqLworCQlmbHVzaHB0ciA9 IExvZ1N0YW5kYnlTbmFwc2hvdCgpOworCisJCS8qIGFuZCBtYWtlIHN1cmUgaXQncyBmc3lu Y2VkIHRvIGRpc2sgKi8KKwkJWExvZ0ZsdXNoKGZsdXNocHRyKTsKKwl9CiB9CiAKIC8qCmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYyBiL3NyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCmluZGV4IDY0ZmJkNTJlMzQuLjk2NjJl MzE2YzkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5j CisrKyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCkBAIC05MDYsMTQg KzkwNiwxOCBAQCBsb2dpY2FsX3JlYWRfeGxvZ19wYWdlKFhMb2dSZWFkZXJTdGF0ZSAqc3Rh dGUsIFhMb2dSZWNQdHIgdGFyZ2V0UGFnZVB0ciwgaW50IHJlcQogCWludAkJCWNvdW50Owog CVdBTFJlYWRFcnJvciBlcnJpbmZvOwogCVhMb2dTZWdObwlzZWdubzsKLQlUaW1lTGluZUlE CWN1cnJUTEkgPSBHZXRXQUxJbnNlcnRpb25UaW1lTGluZSgpOworCVRpbWVMaW5lSUQJY3Vy clRMSTsKIAogCS8qCi0JICogU2luY2UgbG9naWNhbCBkZWNvZGluZyBpcyBvbmx5IHBlcm1p dHRlZCBvbiBhIHByaW1hcnkgc2VydmVyLCB3ZSBrbm93Ci0JICogdGhhdCB0aGUgY3VycmVu dCB0aW1lbGluZSBJRCBjYW4ndCBiZSBjaGFuZ2luZyBhbnkgbW9yZS4gSWYgd2UgZGlkIHRo aXMKLQkgKiBvbiBhIHN0YW5kYnksIHdlJ2QgaGF2ZSB0byB3b3JyeSBhYm91dCB0aGUgdmFs dWVzIHdlIGNvbXB1dGUgaGVyZQotCSAqIGJlY29taW5nIGludmFsaWQgZHVlIHRvIGEgcHJv bW90aW9uIG9yIHRpbWVsaW5lIGNoYW5nZS4KKwkgKiBTaW5jZSBsb2dpY2FsIGRlY29kaW5n IGlzIGFsc28gcGVybWl0dGVkIG9uIGEgc3RhbmRieSBzZXJ2ZXIsIHdlIG5lZWQKKwkgKiB0 byBjaGVjayBpZiB0aGUgc2VydmVyIGlzIGluIHJlY292ZXJ5IHRvIGRlY2lkZSBob3cgdG8g Z2V0IHRoZSBjdXJyZW50CisJICogdGltZWxpbmUgSUQgKHNvIHRoYXQgaXQgYWxzbyBjb3Zl ciB0aGUgcHJvbW90aW9uIG9yIHRpbWVsaW5lIGNoYW5nZSBjYXNlcykuCiAJICovCisJaWYg KCFSZWNvdmVyeUluUHJvZ3Jlc3MoKSkKKwkJY3VyclRMSSA9IEdldFdBTEluc2VydGlvblRp bWVMaW5lKCk7CisJZWxzZQorCQlHZXRYTG9nUmVwbGF5UmVjUHRyKCZjdXJyVExJKTsKKwog CVhMb2dSZWFkRGV0ZXJtaW5lVGltZWxpbmUoc3RhdGUsIHRhcmdldFBhZ2VQdHIsIHJlcUxl biwgY3VyclRMSSk7CiAJc2VuZFRpbWVMaW5lSXNIaXN0b3JpYyA9IChzdGF0ZS0+Y3VyclRM SSAhPSBjdXJyVExJKTsKIAlzZW5kVGltZUxpbmUgPSBzdGF0ZS0+Y3VyclRMSTsKQEAgLTMw NzQsMTAgKzMwNzgsMTIgQEAgWExvZ1NlbmRMb2dpY2FsKHZvaWQpCiAJICogSWYgZmlyc3Qg dGltZSB0aHJvdWdoIGluIHRoaXMgc2Vzc2lvbiwgaW5pdGlhbGl6ZSBmbHVzaFB0ci4gIE90 aGVyd2lzZSwKIAkgKiB3ZSBvbmx5IG5lZWQgdG8gdXBkYXRlIGZsdXNoUHRyIGlmIEVuZFJl Y1B0ciBpcyBwYXN0IGl0LgogCSAqLwotCWlmIChmbHVzaFB0ciA9PSBJbnZhbGlkWExvZ1Jl Y1B0cikKLQkJZmx1c2hQdHIgPSBHZXRGbHVzaFJlY1B0cihOVUxMKTsKLQllbHNlIGlmIChs b2dpY2FsX2RlY29kaW5nX2N0eC0+cmVhZGVyLT5FbmRSZWNQdHIgPj0gZmx1c2hQdHIpCi0J CWZsdXNoUHRyID0gR2V0Rmx1c2hSZWNQdHIoTlVMTCk7CisJaWYgKGZsdXNoUHRyID09IElu dmFsaWRYTG9nUmVjUHRyIHx8CisJCWxvZ2ljYWxfZGVjb2RpbmdfY3R4LT5yZWFkZXItPkVu ZFJlY1B0ciA+PSBmbHVzaFB0cikKKwl7CisJCWZsdXNoUHRyID0gKGFtX2Nhc2NhZGluZ193 YWxzZW5kZXIgPworCQkJCQlHZXRTdGFuZGJ5Rmx1c2hSZWNQdHIoTlVMTCkgOiBHZXRGbHVz aFJlY1B0cihOVUxMKSk7CisJfQogCiAJLyogSWYgRW5kUmVjUHRyIGlzIHN0aWxsIHBhc3Qg b3VyIGZsdXNoUHRyLCBpdCBtZWFucyB3ZSBjYXVnaHQgdXAuICovCiAJaWYgKGxvZ2ljYWxf ZGVjb2RpbmdfY3R4LT5yZWFkZXItPkVuZFJlY1B0ciA+PSBmbHVzaFB0cikKQEAgLTMxNjgs NyArMzE3NCw4IEBAIEdldFN0YW5kYnlGbHVzaFJlY1B0cihUaW1lTGluZUlEICp0bGkpCiAJ cmVjZWl2ZVB0ciA9IEdldFdhbFJjdkZsdXNoUmVjUHRyKE5VTEwsICZyZWNlaXZlVExJKTsK IAlyZXBsYXlQdHIgPSBHZXRYTG9nUmVwbGF5UmVjUHRyKCZyZXBsYXlUTEkpOwogCi0JKnRs aSA9IHJlcGxheVRMSTsKKwlpZiAodGxpKQorCQkqdGxpID0gcmVwbGF5VExJOwogCiAJcmVz dWx0ID0gcmVwbGF5UHRyOwogCWlmIChyZWNlaXZlVExJID09IHJlcGxheVRMSSAmJiByZWNl aXZlUHRyID4gcmVwbGF5UHRyKQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3hs b2cuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy94bG9nLmgKaW5kZXggMWZiZDQ4ZmJkYS4uMDI3 ZTE1NWU4ZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3hsb2cuaAorKysgYi9z cmMvaW5jbHVkZS9hY2Nlc3MveGxvZy5oCkBAIC0yMzAsNiArMjMwLDcgQEAgZXh0ZXJuIHZv aWQgWExPR1NobWVtSW5pdCh2b2lkKTsKIGV4dGVybiB2b2lkIEJvb3RTdHJhcFhMT0codm9p ZCk7CiBleHRlcm4gdm9pZCBJbml0aWFsaXplV2FsQ29uc2lzdGVuY3lDaGVja2luZyh2b2lk KTsKIGV4dGVybiB2b2lkIExvY2FsUHJvY2Vzc0NvbnRyb2xGaWxlKGJvb2wgcmVzZXQpOwor ZXh0ZXJuIFdhbExldmVsIEdldEFjdGl2ZVdhbExldmVsT25TdGFuZGJ5KHZvaWQpOwogZXh0 ZXJuIHZvaWQgU3RhcnR1cFhMT0codm9pZCk7CiBleHRlcm4gdm9pZCBTaHV0ZG93blhMT0co aW50IGNvZGUsIERhdHVtIGFyZyk7CiBleHRlcm4gdm9pZCBDcmVhdGVDaGVja1BvaW50KGlu dCBmbGFncyk7Ci0tIAoyLjM0LjEKCg== --------------33idPHuZjSjOk9JsByk0nzBq Content-Type: text/plain; charset=UTF-8; name="v35-0002-Handle-logical-slot-conflicts-on-standby.patch" Content-Disposition: attachment; filename="v35-0002-Handle-logical-slot-conflicts-on-standby.patch" Content-Transfer-Encoding: base64 RnJvbSA0MWY5MGFkOWRlYmNkODNjNGM2NGRhNjgwYTI3ZGE5N2JjNWJiZWUxIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogV2VkLCAyMSBEZWMgMjAyMiAxNDoxMDozNCArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjM1IDIvNl0gSGFuZGxlIGxvZ2ljYWwgc2xvdCBjb25mbGljdHMgb24gc3RhbmRieS4K CkR1cmluZyBXQUwgcmVwbGF5IG9uIHN0YW5kYnksIHdoZW4gc2xvdCBjb25mbGljdCBpcyBp ZGVudGlmaWVkLAppbnZhbGlkYXRlIHN1Y2ggc2xvdHMuIEFsc28gZG8gdGhlIHNhbWUgdGhp bmcgaWYgd2FsX2xldmVsIG9uIG1hc3RlcgppcyByZWR1Y2VkIHRvIGJlbG93IGxvZ2ljYWwg YW5kIHRoZXJlIGFyZSBleGlzdGluZyBsb2dpY2FsIHNsb3RzCm9uIHN0YW5kYnkuIEludHJv ZHVjZSBhIG5ldyBQcm9jU2lnbmFsUmVhc29uIHZhbHVlIGZvciBzbG90CmNvbmZsaWN0IHJl Y292ZXJ5LiBBcnJhbmdlIGZvciBhIG5ldyBwZ19zdGF0X2RhdGFiYXNlX2NvbmZsaWN0cyBm aWVsZDoKY29uZmxfYWN0aXZlX2xvZ2ljYWxzbG90LgoKQXV0aG9yOiBBbmRyZXMgRnJldW5k IChpbiBhbiBvbGRlciB2ZXJzaW9uKSwgQW1pdCBLaGFuZGVrYXIsIEJlcnRyYW5kIERyb3V2 b3QKUmV2aWV3ZWQtQnk6IEJlcnRyYW5kIERyb3V2b3QsIEFuZHJlcyBGcmV1bmQsIFJvYmVy dCBIYWFzLCBGYWJyaXppbyBkZSBSb3llcyBNZWxsbwotLS0KIGRvYy9zcmMvc2dtbC9tb25p dG9yaW5nLnNnbWwgICAgICAgICAgICAgICAgICB8ICAxMSArCiBzcmMvYmFja2VuZC9hY2Nl c3MvZ2lzdC9naXN0eGxvZy5jICAgICAgICAgICAgfCAgIDIgKwogc3JjL2JhY2tlbmQvYWNj ZXNzL2hhc2gvaGFzaF94bG9nLmMgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL2hlYXBhbS5jICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvYmFja2VuZC9h Y2Nlc3MvbmJ0cmVlL25idHhsb2cuYyAgICAgICAgICAgfCAgIDIgKwogc3JjL2JhY2tlbmQv YWNjZXNzL3NwZ2lzdC9zcGd4bG9nLmMgICAgICAgICAgIHwgICAxICsKIHNyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL3hsb2cuYyAgICAgICAgICAgICB8ICAxMyArKwogc3JjL2JhY2tl bmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsICAgICAgICAgIHwgICAzICstCiAuLi4vcmVw bGljYXRpb24vbG9naWNhbC9sb2dpY2FsZnVuY3MuYyAgICAgICAgfCAgIDcgKy0KIHNyYy9i YWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYyAgICAgICAgICAgICAgICB8IDIwOSArKysrKysr KysrKysrKysrKysKIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jICAgICAg ICAgICB8ICAgOCArCiBzcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jYXJyYXkuYyAgICAg ICAgICAgfCAgIDQgKwogc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY3NpZ25hbC5jICAg ICAgICAgIHwgICAzICsKIHNyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYyAgICAg ICAgICAgICB8ICAxMyArLQogc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jICAgICAgICAg ICAgICAgICAgIHwgIDIyICsrCiBzcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRf ZGF0YWJhc2UuYyAgfCAgIDQgKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1bmNz LmMgICAgICAgICAgIHwgICAzICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQg ICAgICAgICAgICAgICB8ICAgNSArCiBzcmMvaW5jbHVkZS9wZ3N0YXQuaCAgICAgICAgICAg ICAgICAgICAgICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvcmVwbGljYXRpb24vc2xvdC5o ICAgICAgICAgICAgICAgIHwgICAyICsKIHNyYy9pbmNsdWRlL3N0b3JhZ2UvcHJvY3NpZ25h bC5oICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5jbHVkZS9zdG9yYWdlL3N0YW5kYnku aCAgICAgICAgICAgICAgICAgfCAgIDIgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9y dWxlcy5vdXQgICAgICAgICAgIHwgICAzICstCiAyMyBmaWxlcyBjaGFuZ2VkLCAzMTggaW5z ZXJ0aW9ucygrKSwgNSBkZWxldGlvbnMoLSkKICAgMy45JSBkb2Mvc3JjL3NnbWwvCiAgIDUu MyUgc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0vCiAgIDMuMSUgc3JjL2JhY2tlbmQvYWNj ZXNzLwogICAzLjklIHNyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvCiAgNTkuMCUg c3JjL2JhY2tlbmQvcmVwbGljYXRpb24vCiAgIDYuNyUgc3JjL2JhY2tlbmQvc3RvcmFnZS9p cGMvCiAgIDguMCUgc3JjL2JhY2tlbmQvdGNvcC8KICAgMy40JSBzcmMvYmFja2VuZC8KICAg NS42JSBzcmMvaW5jbHVkZS8KCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvbW9uaXRvcmlu Zy5zZ21sIGIvZG9jL3NyYy9zZ21sL21vbml0b3Jpbmcuc2dtbAppbmRleCAzNjNiMTgzZTVm Li4yNzIzNTQxOGE2IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvbW9uaXRvcmluZy5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwKQEAgLTQzMTcsNiArNDMxNywx NyBAQCBTRUxFQ1QgcGlkLCB3YWl0X2V2ZW50X3R5cGUsIHdhaXRfZXZlbnQgRlJPTSBwZ19z dGF0X2FjdGl2aXR5IFdIRVJFIHdhaXRfZXZlbnQgaQogICAgICAgIGRlYWRsb2NrcwogICAg ICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8 ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD5jb25mbF9hY3RpdmVfbG9naWNhbHNs b3Q8L3N0cnVjdGZpZWxkPiA8dHlwZT5iaWdpbnQ8L3R5cGU+CisgICAgICA8L3BhcmE+Cisg ICAgICA8cGFyYT4KKyAgICAgICBOdW1iZXIgb2YgYWN0aXZlIGxvZ2ljYWwgc2xvdHMgaW4g dGhpcyBkYXRhYmFzZSB0aGF0IGhhdmUgYmVlbgorICAgICAgIGludmFsaWRhdGVkIGJlY2F1 c2UgdGhleSBjb25mbGljdCB3aXRoIHJlY292ZXJ5IChub3RlIHRoYXQgaW5hY3RpdmUgb25l cworICAgICAgIGFyZSBhbHNvIGludmFsaWRhdGVkIGJ1dCBkbyBub3QgaW5jcmVtZW50IHRo aXMgY291bnRlcikKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KICAgICA8 L3Rib2R5PgogICAgPC90Z3JvdXA+CiAgIDwvdGFibGU+CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9hY2Nlc3MvZ2lzdC9naXN0eGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL2dpc3Qv Z2lzdHhsb2cuYwppbmRleCA2MmZmMTQ5NDQ2Li5hZGI4OTYxMDFlIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0eGxvZy5jCisrKyBiL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9naXN0L2dpc3R4bG9nLmMKQEAgLTE5Nyw2ICsxOTcsNyBAQCBnaXN0UmVkb0RlbGV0 ZVJlY29yZChYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJWExvZ1JlY0dldEJsb2NrVGFn KHJlY29yZCwgMCwgJnJsb2NhdG9yLCBOVUxMLCBOVUxMKTsKIAogCQlSZXNvbHZlUmVjb3Zl cnlDb25mbGljdFdpdGhTbmFwc2hvdCh4bGRhdGEtPnNuYXBzaG90Q29uZmxpY3RIb3Jpem9u LAorCQkJCQkJCQkJCQl4bGRhdGEtPmlzQ2F0YWxvZ1JlbCwKIAkJCQkJCQkJCQkJcmxvY2F0 b3IpOwogCX0KIApAQCAtMzkwLDYgKzM5MSw3IEBAIGdpc3RSZWRvUGFnZVJldXNlKFhMb2dS ZWFkZXJTdGF0ZSAqcmVjb3JkKQogCSAqLwogCWlmIChJbkhvdFN0YW5kYnkpCiAJCVJlc29s dmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90RnVsbFhpZCh4bHJlYy0+c25hcHNob3RD b25mbGljdEhvcml6b24sCisJCQkJCQkJCQkJCQkgICB4bHJlYy0+aXNDYXRhbG9nUmVsLAog CQkJCQkJCQkJCQkJICAgeGxyZWMtPmxvY2F0b3IpOwogfQogCmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNoX3hsb2cuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9o YXNoL2hhc2hfeGxvZy5jCmluZGV4IGI2NjYwM2MyZTcuLjljOTVkODg5ODkgMTAwNjQ0Ci0t LSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hfeGxvZy5jCisrKyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9oYXNoL2hhc2hfeGxvZy5jCkBAIC0xMDAzLDYgKzEwMDMsNyBAQCBoYXNo X3hsb2dfdmFjdXVtX29uZV9wYWdlKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCiAJCVhM b2dSZWNHZXRCbG9ja1RhZyhyZWNvcmQsIDAsICZybG9jYXRvciwgTlVMTCwgTlVMTCk7CiAJ CVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KHhsZGF0YS0+c25hcHNob3RD b25mbGljdEhvcml6b24sCisJCQkJCQkJCQkJCXhsZGF0YS0+aXNDYXRhbG9nUmVsLAogCQkJ CQkJCQkJCQlybG9jYXRvcik7CiAJfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nl c3MvaGVhcC9oZWFwYW0uYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jCmlu ZGV4IDFiMzQ0ZWFjZTcuLjExMTZlYjNlM2EgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwL2hlYXBhbS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBh bS5jCkBAIC04NjkzLDYgKzg2OTMsNyBAQCBoZWFwX3hsb2dfcHJ1bmUoWExvZ1JlYWRlclN0 YXRlICpyZWNvcmQpCiAJICovCiAJaWYgKEluSG90U3RhbmRieSkKIAkJUmVzb2x2ZVJlY292 ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoeGxyZWMtPnNuYXBzaG90Q29uZmxpY3RIb3Jpem9u LAorCQkJCQkJCQkJCQl4bHJlYy0+aXNDYXRhbG9nUmVsLAogCQkJCQkJCQkJCQlybG9jYXRv cik7CiAKIAkvKgpAQCAtODg2Miw2ICs4ODYzLDcgQEAgaGVhcF94bG9nX3Zpc2libGUoWExv Z1JlYWRlclN0YXRlICpyZWNvcmQpCiAJICovCiAJaWYgKEluSG90U3RhbmRieSkKIAkJUmVz b2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoeGxyZWMtPnNuYXBzaG90Q29uZmxp Y3RIb3Jpem9uLAorCQkJCQkJCQkJCQl4bHJlYy0+ZmxhZ3MgJiBWSVNJQklMSVRZTUFQX09O X0NBVEFMT0dfQUNDRVNTSUJMRV9JTl9MT0dJQ0FMX0RFQ09ESU5HLAogCQkJCQkJCQkJCQly bG9jYXRvcik7CiAKIAkvKgpAQCAtOTExNyw2ICs5MTE5LDcgQEAgaGVhcF94bG9nX2ZyZWV6 ZV9wYWdlKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQogCiAJCVhMb2dSZWNHZXRCbG9ja1Rh ZyhyZWNvcmQsIDAsICZybG9jYXRvciwgTlVMTCwgTlVMTCk7CiAJCVJlc29sdmVSZWNvdmVy eUNvbmZsaWN0V2l0aFNuYXBzaG90KHhscmVjLT5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwK KwkJCQkJCQkJCQkJeGxyZWMtPmlzQ2F0YWxvZ1JlbCwKIAkJCQkJCQkJCQkJcmxvY2F0b3Ip OwogCX0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnR4bG9n LmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHhsb2cuYwppbmRleCAzZTMxMWE5 OGE2Li5jZmVkZTkwNmEzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVl L25idHhsb2cuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHhsb2cuYwpA QCAtNjY5LDYgKzY2OSw3IEBAIGJ0cmVlX3hsb2dfZGVsZXRlKFhMb2dSZWFkZXJTdGF0ZSAq cmVjb3JkKQogCQlYTG9nUmVjR2V0QmxvY2tUYWcocmVjb3JkLCAwLCAmcmxvY2F0b3IsIE5V TEwsIE5VTEwpOwogCiAJCVJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNuYXBzaG90KHhs cmVjLT5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwKKwkJCQkJCQkJCQkJeGxyZWMtPmlzQ2F0 YWxvZ1JlbCwKIAkJCQkJCQkJCQkJcmxvY2F0b3IpOwogCX0KIApAQCAtMTAwNyw2ICsxMDA4 LDcgQEAgYnRyZWVfeGxvZ19yZXVzZV9wYWdlKFhMb2dSZWFkZXJTdGF0ZSAqcmVjb3JkKQog CiAJaWYgKEluSG90U3RhbmRieSkKIAkJUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25h cHNob3RGdWxsWGlkKHhscmVjLT5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiwKKwkJCQkJCQkJ CQkJCSAgIHhscmVjLT5pc0NhdGFsb2dSZWwsCiAJCQkJCQkJCQkJCQkgICB4bHJlYy0+bG9j YXRvcik7CiB9CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdpc3Qvc3Bn eGxvZy5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd4bG9nLmMKaW5kZXggNDRh ZGMyMDk4Zi4uMjAxNjViYzU4OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3Nw Z2lzdC9zcGd4bG9nLmMKKysrIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd4bG9n LmMKQEAgLTg3OSw2ICs4NzksNyBAQCBzcGdSZWRvVmFjdXVtUmVkaXJlY3QoWExvZ1JlYWRl clN0YXRlICpyZWNvcmQpCiAKIAkJWExvZ1JlY0dldEJsb2NrVGFnKHJlY29yZCwgMCwgJmxv Y2F0b3IsIE5VTEwsIE5VTEwpOwogCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFw c2hvdCh4bGRhdGEtPnNuYXBzaG90Q29uZmxpY3RIb3Jpem9uLAorCQkJCQkJCQkJCQl4bGRh dGEtPmlzQ2F0YWxvZ1JlbCwKIAkJCQkJCQkJCQkJbG9jYXRvcik7CiAJfQogCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94bG9nLmMgYi9zcmMvYmFja2VuZC9h Y2Nlc3MvdHJhbnNhbS94bG9nLmMKaW5kZXggOTE0NzNiMDBkOS4uZmNhNmVlNDU4NCAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGxvZy5jCisrKyBiL3NyYy9i YWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hsb2cuYwpAQCAtNzk1OCw2ICs3OTU4LDE5IEBAIHhs b2dfcmVkbyhYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAkJLyogVXBkYXRlIG91ciBjb3B5 IG9mIHRoZSBwYXJhbWV0ZXJzIGluIHBnX2NvbnRyb2wgKi8KIAkJbWVtY3B5KCZ4bHJlYywg WExvZ1JlY0dldERhdGEocmVjb3JkKSwgc2l6ZW9mKHhsX3BhcmFtZXRlcl9jaGFuZ2UpKTsK IAorCQkvKgorCQkgKiBJbnZhbGlkYXRlIGxvZ2ljYWwgc2xvdHMgaWYgd2UgYXJlIGluIGhv dCBzdGFuZGJ5IGFuZCB0aGUgcHJpbWFyeSBkb2VzIG5vdAorCQkgKiBoYXZlIGEgV0FMIGxl dmVsIHN1ZmZpY2llbnQgZm9yIGxvZ2ljYWwgZGVjb2RpbmcuIE5vIG5lZWQgdG8gc2VhcmNo CisJCSAqIGZvciBwb3RlbnRpYWxseSBjb25mbGljdGluZyBsb2dpY2FsbHkgc2xvdHMgaWYg c3RhbmRieSBpcyBydW5uaW5nCisJCSAqIHdpdGggd2FsX2xldmVsIGxvd2VyIHRoYW4gbG9n aWNhbCwgYmVjYXVzZSBpbiB0aGF0IGNhc2UsIHdlIHdvdWxkCisJCSAqIGhhdmUgZWl0aGVy IGRpc2FsbG93ZWQgY3JlYXRpb24gb2YgbG9naWNhbCBzbG90cyBvciBpbnZhbGlkYXRlZCBl eGlzdGluZworCQkgKiBvbmVzLgorCQkgKi8KKwkJaWYgKEluUmVjb3ZlcnkgJiYgSW5Ib3RT dGFuZGJ5ICYmCisJCQl4bHJlYy53YWxfbGV2ZWwgPCBXQUxfTEVWRUxfTE9HSUNBTCAmJgor CQkJd2FsX2xldmVsID49IFdBTF9MRVZFTF9MT0dJQ0FMKQorCQkJSW52YWxpZGF0ZUNvbmZs aWN0aW5nTG9naWNhbFJlcGxpY2F0aW9uU2xvdHMoSW52YWxpZE9pZCxJbnZhbGlkVHJhbnNh Y3Rpb25JZCk7CisKIAkJTFdMb2NrQWNxdWlyZShDb250cm9sRmlsZUxvY2ssIExXX0VYQ0xV U0lWRSk7CiAJCUNvbnRyb2xGaWxlLT5NYXhDb25uZWN0aW9ucyA9IHhscmVjLk1heENvbm5l Y3Rpb25zOwogCQlDb250cm9sRmlsZS0+bWF4X3dvcmtlcl9wcm9jZXNzZXMgPSB4bHJlYy5t YXhfd29ya2VyX3Byb2Nlc3NlczsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cv c3lzdGVtX3ZpZXdzLnNxbCBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVtX3ZpZXdzLnNx bAppbmRleCAyZDgxMDRiMDkwLi4wZTBiOGVmNDE1IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5zcWwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9z eXN0ZW1fdmlld3Muc3FsCkBAIC0xMDY1LDcgKzEwNjUsOCBAQCBDUkVBVEUgVklFVyBwZ19z dGF0X2RhdGFiYXNlX2NvbmZsaWN0cyBBUwogICAgICAgICAgICAgcGdfc3RhdF9nZXRfZGJf Y29uZmxpY3RfbG9jayhELm9pZCkgQVMgY29uZmxfbG9jaywKICAgICAgICAgICAgIHBnX3N0 YXRfZ2V0X2RiX2NvbmZsaWN0X3NuYXBzaG90KEQub2lkKSBBUyBjb25mbF9zbmFwc2hvdCwK ICAgICAgICAgICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X2J1ZmZlcnBpbihELm9pZCkg QVMgY29uZmxfYnVmZmVycGluLAotICAgICAgICAgICAgcGdfc3RhdF9nZXRfZGJfY29uZmxp Y3Rfc3RhcnR1cF9kZWFkbG9jayhELm9pZCkgQVMgY29uZmxfZGVhZGxvY2sKKyAgICAgICAg ICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X3N0YXJ0dXBfZGVhZGxvY2soRC5vaWQpIEFT IGNvbmZsX2RlYWRsb2NrLAorICAgICAgICAgICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3Rf bG9naWNhbHNsb3QoRC5vaWQpIEFTIGNvbmZsX2FjdGl2ZV9sb2dpY2Fsc2xvdAogICAgIEZS T00gcGdfZGF0YWJhc2UgRDsKIAogQ1JFQVRFIFZJRVcgcGdfc3RhdF91c2VyX2Z1bmN0aW9u cyBBUwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dp Y2FsZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL2xvZ2ljYWwvbG9naWNhbGZ1 bmNzLmMKaW5kZXggNWMyMzE3ODU3MC4uODQzMmRlMjE5YiAxMDA2NDQKLS0tIGEvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vbG9naWNhbC9sb2dpY2FsZnVuY3MuYworKysgYi9zcmMvYmFj a2VuZC9yZXBsaWNhdGlvbi9sb2dpY2FsL2xvZ2ljYWxmdW5jcy5jCkBAIC0yMTYsMTEgKzIx NiwxNCBAQCBwZ19sb2dpY2FsX3Nsb3RfZ2V0X2NoYW5nZXNfZ3V0cyhGdW5jdGlvbkNhbGxJ bmZvIGZjaW5mbywgYm9vbCBjb25maXJtLCBib29sIGJpbgogCiAJCS8qCiAJCSAqIEFmdGVy IHRoZSBzYW5pdHkgY2hlY2tzIGluIENyZWF0ZURlY29kaW5nQ29udGV4dCwgbWFrZSBzdXJl IHRoZQotCQkgKiByZXN0YXJ0X2xzbiBpcyB2YWxpZC4gIEF2b2lkICJjYW5ub3QgZ2V0IGNo YW5nZXMiIHdvcmRpbmcgaW4gdGhpcworCQkgKiByZXN0YXJ0X2xzbiBpcyB2YWxpZCBvciBi b3RoIHhtaW4gYW5kIGNhdGFsb2dfeG1pbiBhcmUgdmFsaWQuCisJCSAqIEF2b2lkICJjYW5u b3QgZ2V0IGNoYW5nZXMiIHdvcmRpbmcgaW4gdGhpcwogCQkgKiBlcnJtc2cgYmVjYXVzZSB0 aGF0J2QgYmUgY29uZnVzaW5nbHkgYW1iaWd1b3VzIGFib3V0IG5vIGNoYW5nZXMKIAkJICog YmVpbmcgYXZhaWxhYmxlLgogCQkgKi8KLQkJaWYgKFhMb2dSZWNQdHJJc0ludmFsaWQoTXlS ZXBsaWNhdGlvblNsb3QtPmRhdGEucmVzdGFydF9sc24pKQorCQlpZiAoWExvZ1JlY1B0cklz SW52YWxpZChNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0YS5yZXN0YXJ0X2xzbikKKwkJCXx8ICgh VHJhbnNhY3Rpb25JZElzVmFsaWQoTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEueG1pbikKKwkJ CQkmJiAhVHJhbnNhY3Rpb25JZElzVmFsaWQoTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEuY2F0 YWxvZ194bWluKSkpCiAJCQllcmVwb3J0KEVSUk9SLAogCQkJCQkoZXJyY29kZShFUlJDT0RF X09CSkVDVF9OT1RfSU5fUFJFUkVRVUlTSVRFX1NUQVRFKSwKIAkJCQkJIGVycm1zZygiY2Fu IG5vIGxvbmdlciBnZXQgY2hhbmdlcyBmcm9tIHJlcGxpY2F0aW9uIHNsb3QgXCIlc1wiIiwK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYyBiL3NyYy9iYWNr ZW5kL3JlcGxpY2F0aW9uL3Nsb3QuYwppbmRleCA4OTlhY2ZkOTEyLi42YTRlMmNkMTliIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi9zbG90LmMKKysrIGIvc3JjL2Jh Y2tlbmQvcmVwbGljYXRpb24vc2xvdC5jCkBAIC0xNDMyLDYgKzE0MzIsMjE1IEBAIHJlc3Rh cnQ6CiAJcmV0dXJuIGludmFsaWRhdGVkOwogfQogCisvKgorICogSGVscGVyIGZvciBJbnZh bGlkYXRlQ29uZmxpY3RpbmdMb2dpY2FsUmVwbGljYXRpb25TbG90IC0tIGFjcXVpcmVzIHRo ZSBnaXZlbiBzbG90CisgKiBhbmQgbWFyayBpdCBpbnZhbGlkLCBpZiBuZWNlc3NhcnkgYW5k IHBvc3NpYmxlLgorICoKKyAqIFJldHVybnMgd2hldGhlciBSZXBsaWNhdGlvblNsb3RDb250 cm9sTG9jayB3YXMgcmVsZWFzZWQgaW4gdGhlIGludGVyaW0gKGFuZAorICogaW4gdGhhdCBj YXNlIHdlJ3JlIG5vdCBob2xkaW5nIHRoZSBsb2NrIGF0IHJldHVybiwgb3RoZXJ3aXNlIHdl IGFyZSkuCisgKgorICogVGhpcyBpcyBpbmhlcmVudGx5IHJhY3ksIGJlY2F1c2Ugd2UgcmVs ZWFzZSB0aGUgTFdMb2NrCisgKiBmb3Igc3lzY2FsbHMsIHNvIGNhbGxlciBtdXN0IHJlc3Rh cnQgaWYgd2UgcmV0dXJuIHRydWUuCisgKi8KK3N0YXRpYyBib29sCitJbnZhbGlkYXRlUG9z c2libHlDb25mbGljdGluZ0xvZ2ljYWxSZXBsaWNhdGlvblNsb3QoUmVwbGljYXRpb25TbG90 ICpzLCBUcmFuc2FjdGlvbklkIHhpZCkKK3sKKwlpbnQJCWxhc3Rfc2lnbmFsZWRfcGlkID0g MDsKKwlib29sCXJlbGVhc2VkX2xvY2sgPSBmYWxzZTsKKworCWZvciAoOzspCisJeworCQlU cmFuc2FjdGlvbklkIHNsb3RfeG1pbjsKKwkJVHJhbnNhY3Rpb25JZCBzbG90X2NhdGFsb2df eG1pbjsKKwkJTmFtZURhdGEJc2xvdG5hbWU7CisJCWludAkJCWFjdGl2ZV9waWQgPSAwOwor CisJCUFzc2VydChMV0xvY2tIZWxkQnlNZUluTW9kZShSZXBsaWNhdGlvblNsb3RDb250cm9s TG9jaywgTFdfU0hBUkVEKSk7CisKKwkJaWYgKCFzLT5pbl91c2UpCisJCXsKKwkJCWlmIChy ZWxlYXNlZF9sb2NrKQorCQkJCUxXTG9ja1JlbGVhc2UoUmVwbGljYXRpb25TbG90Q29udHJv bExvY2spOworCQkJYnJlYWs7CisJCX0KKworCQkvKgorCQkgKiBDaGVjayBpZiB0aGUgc2xv dCBuZWVkcyB0byBiZSBpbnZhbGlkYXRlZC4gSWYgaXQgbmVlZHMgdG8gYmUKKwkJICogaW52 YWxpZGF0ZWQsIGFuZCBpcyBub3QgY3VycmVudGx5IGFjcXVpcmVkLCBhY3F1aXJlIGl0IGFu ZCBtYXJrIGl0CisJCSAqIGFzIGhhdmluZyBiZWVuIGludmFsaWRhdGVkLiBXZSBkbyB0aGlz IHdpdGggdGhlIHNwaW5sb2NrIGhlbGQgdG8KKwkJICogYXZvaWQgcmFjZSBjb25kaXRpb25z IC0tIGZvciBleGFtcGxlIHRoZSB4bWluKHMpIGNvdWxkIG1vdmUgZm9yd2FyZAorCQkgKiAs IG9yIHRoZSBzbG90IGNvdWxkIGJlIGRyb3BwZWQuCisJCSAqLworCQlTcGluTG9ja0FjcXVp cmUoJnMtPm11dGV4KTsKKworCQlzbG90X3htaW4gPSBzLT5kYXRhLnhtaW47CisJCXNsb3Rf Y2F0YWxvZ194bWluID0gcy0+ZGF0YS5jYXRhbG9nX3htaW47CisKKwkJLyoKKwkJICogSWYg dGhlIHNsb3QgaXMgYWxyZWFkeSBpbnZhbGlkIG9yIGlzIG5vdCBjb25mbGljdGluZywgd2Ug ZG9uJ3QgbmVlZCB0bworCQkgKiBkbyBhbnl0aGluZy4KKwkJICovCisKKwkJLyogc2xvdCBo YXMgYmVlbiBpbnZhbGlkYXRlZCAqLworCQlpZiAoKCFUcmFuc2FjdGlvbklkSXNWYWxpZChz bG90X3htaW4pICYmICFUcmFuc2FjdGlvbklkSXNWYWxpZChzbG90X2NhdGFsb2dfeG1pbikp CisJCQl8fAorCQkvKgorCQkgKiB3ZSBhcmUgbm90IGZvcmNpbmcgZm9yIGludmFsaWRhdGlv biBiZWNhdXNlIHRoZSB4aWQgaXMgdmFsaWQKKwkJICogYW5kIHRoaXMgaXMgYSBub24gY29u ZmxpY3Rpbmcgc2xvdAorCQkgKi8KKwkJCShUcmFuc2FjdGlvbklkSXNWYWxpZCh4aWQpICYm ICEoCisJCQkJKFRyYW5zYWN0aW9uSWRJc1ZhbGlkKHNsb3RfeG1pbikgJiYgVHJhbnNhY3Rp b25JZFByZWNlZGVzT3JFcXVhbHMoc2xvdF94bWluLCB4aWQpKQorCQkJCXx8CisJCQkJKFRy YW5zYWN0aW9uSWRJc1ZhbGlkKHNsb3RfY2F0YWxvZ194bWluKSAmJiBUcmFuc2FjdGlvbklk UHJlY2VkZXNPckVxdWFscyhzbG90X2NhdGFsb2dfeG1pbiwgeGlkKSkKKwkJCQkpKQorCQkJ KQorCQl7CisJCQlTcGluTG9ja1JlbGVhc2UoJnMtPm11dGV4KTsKKwkJCWlmIChyZWxlYXNl ZF9sb2NrKQorCQkJCUxXTG9ja1JlbGVhc2UoUmVwbGljYXRpb25TbG90Q29udHJvbExvY2sp OworCQkJYnJlYWs7CisJCX0KKworCQlzbG90bmFtZSA9IHMtPmRhdGEubmFtZTsKKwkJYWN0 aXZlX3BpZCA9IHMtPmFjdGl2ZV9waWQ7CisKKwkJLyoKKwkJICogSWYgdGhlIHNsb3QgY2Fu IGJlIGFjcXVpcmVkLCBkbyBzbyBhbmQgbWFyayBpdCBpbnZhbGlkYXRlZAorCQkgKiBpbW1l ZGlhdGVseS4gIE90aGVyd2lzZSB3ZSdsbCBzaWduYWwgdGhlIG93bmluZyBwcm9jZXNzLCBi ZWxvdywgYW5kCisJCSAqIHJldHJ5LgorCQkgKi8KKwkJaWYgKGFjdGl2ZV9waWQgPT0gMCkK KwkJeworCQkJTXlSZXBsaWNhdGlvblNsb3QgPSBzOworCQkJcy0+YWN0aXZlX3BpZCA9IE15 UHJvY1BpZDsKKwkJCXMtPmRhdGEueG1pbiA9IEludmFsaWRUcmFuc2FjdGlvbklkOworCQkJ cy0+ZGF0YS5jYXRhbG9nX3htaW4gPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKKwkJfQorCisJ CVNwaW5Mb2NrUmVsZWFzZSgmcy0+bXV0ZXgpOworCisJCWlmIChhY3RpdmVfcGlkICE9IDAp CisJCXsKKwkJCS8qCisJCQkgKiBQcmVwYXJlIHRoZSBzbGVlcCBvbiB0aGUgc2xvdCdzIGNv bmRpdGlvbiB2YXJpYWJsZSBiZWZvcmUKKwkJCSAqIHJlbGVhc2luZyB0aGUgbG9jaywgdG8g Y2xvc2UgYSBwb3NzaWJsZSByYWNlIGNvbmRpdGlvbiBpZiB0aGUKKwkJCSAqIHNsb3QgaXMg cmVsZWFzZWQgYmVmb3JlIHRoZSBzbGVlcCBiZWxvdy4KKwkJCSAqLworCisJCQlDb25kaXRp b25WYXJpYWJsZVByZXBhcmVUb1NsZWVwKCZzLT5hY3RpdmVfY3YpOworCisJCQlMV0xvY2tS ZWxlYXNlKFJlcGxpY2F0aW9uU2xvdENvbnRyb2xMb2NrKTsKKwkJCXJlbGVhc2VkX2xvY2sg PSB0cnVlOworCisJCQkvKgorCQkJICogU2lnbmFsIHRvIHRlcm1pbmF0ZSB0aGUgcHJvY2Vz cyB0aGF0IG93bnMgdGhlIHNsb3QsIGlmIHdlCisJCQkgKiBoYXZlbid0IGFscmVhZHkgc2ln bmFsbGVkIGl0LiAgKEF2b2lkYW5jZSBvZiByZXBlYXRlZAorCQkJICogc2lnbmFsbGluZyBp cyB0aGUgb25seSByZWFzb24gZm9yIHRoZXJlIHRvIGJlIGEgbG9vcCBpbiB0aGlzCisJCQkg KiByb3V0aW5lOyBvdGhlcndpc2Ugd2UgY291bGQgcmVseSBvbiBjYWxsZXIncyByZXN0YXJ0 IGxvb3AuKQorCQkJICoKKwkJCSAqIFRoZXJlIGlzIHRoZSByYWNlIGNvbmRpdGlvbiB0aGF0 IG90aGVyIHByb2Nlc3MgbWF5IG93biB0aGUgc2xvdAorCQkJICogYWZ0ZXIgaXRzIGN1cnJl bnQgb3duZXIgcHJvY2VzcyBpcyB0ZXJtaW5hdGVkIGFuZCBiZWZvcmUgdGhpcworCQkJICog cHJvY2VzcyBvd25zIGl0LiBUbyBoYW5kbGUgdGhhdCwgd2Ugc2lnbmFsIG9ubHkgaWYgdGhl IFBJRCBvZgorCQkJICogdGhlIG93bmluZyBwcm9jZXNzIGhhcyBjaGFuZ2VkIGZyb20gdGhl IHByZXZpb3VzIHRpbWUuIChUaGlzCisJCQkgKiBsb2dpYyBhc3N1bWVzIHRoYXQgdGhlIHNh bWUgUElEIGlzIG5vdCByZXVzZWQgdmVyeSBxdWlja2x5LikKKwkJCSAqLworCQkJaWYgKGxh c3Rfc2lnbmFsZWRfcGlkICE9IGFjdGl2ZV9waWQpCisJCQl7CisJCQkJZXJlcG9ydChMT0cs CisJCQkJCQkoZXJybXNnKCJ0ZXJtaW5hdGluZyBwcm9jZXNzICVkIGJlY2F1c2UgcmVwbGlj YXRpb24gc2xvdCBcIiVzXCIgY29uZmxpY3RzIHdpdGggcmVjb3ZlcnkiLAorCQkJCQkJCQlh Y3RpdmVfcGlkLCBOYW1lU3RyKHNsb3RuYW1lKSkpKTsKKworCQkJCSh2b2lkKSBTZW5kUHJv Y1NpZ25hbChhY3RpdmVfcGlkLCBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX0xPR0lDQUxT TE9ULCBJbnZhbGlkQmFja2VuZElkKTsKKwkJCQlsYXN0X3NpZ25hbGVkX3BpZCA9IGFjdGl2 ZV9waWQ7CisJCQl9CisKKwkJCS8qIFdhaXQgdW50aWwgdGhlIHNsb3QgaXMgcmVsZWFzZWQu ICovCisJCQlDb25kaXRpb25WYXJpYWJsZVNsZWVwKCZzLT5hY3RpdmVfY3YsCisJCQkJCQkJ CQlXQUlUX0VWRU5UX1JFUExJQ0FUSU9OX1NMT1RfRFJPUCk7CisKKwkJCS8qCisJCQkgKiBS ZS1hY3F1aXJlIGxvY2sgYW5kIHN0YXJ0IG92ZXI7IHdlIGV4cGVjdCB0byBpbnZhbGlkYXRl IHRoZQorCQkJICogc2xvdCBuZXh0IHRpbWUgKHVubGVzcyBhbm90aGVyIHByb2Nlc3MgYWNx dWlyZXMgdGhlIHNsb3QgaW4gdGhlCisJCQkgKiBtZWFudGltZSkuCisJCQkgKi8KKwkJCUxX TG9ja0FjcXVpcmUoUmVwbGljYXRpb25TbG90Q29udHJvbExvY2ssIExXX1NIQVJFRCk7CisJ CQljb250aW51ZTsKKwkJfQorCQllbHNlCisJCXsKKwkJCS8qCisJCQkgKiBXZSBob2xkIHRo ZSBzbG90IG5vdyBhbmQgaGF2ZSBhbHJlYWR5IGludmFsaWRhdGVkIGl0OyBmbHVzaCBpdAor CQkJICogdG8gZW5zdXJlIHRoYXQgc3RhdGUgcGVyc2lzdHMuCisJCQkgKgorCQkJICogRG9u J3Qgd2FudCB0byBob2xkIFJlcGxpY2F0aW9uU2xvdENvbnRyb2xMb2NrIGFjcm9zcyBmaWxl CisJCQkgKiBzeXN0ZW0gb3BlcmF0aW9ucywgc28gcmVsZWFzZSBpdCBub3cgYnV0IGJlIHN1 cmUgdG8gdGVsbCBjYWxsZXIKKwkJCSAqIHRvIHJlc3RhcnQgZnJvbSBzY3JhdGNoLgorCQkJ ICovCisJCQlMV0xvY2tSZWxlYXNlKFJlcGxpY2F0aW9uU2xvdENvbnRyb2xMb2NrKTsKKwkJ CXJlbGVhc2VkX2xvY2sgPSB0cnVlOworCisJCQkvKiBNYWtlIHN1cmUgdGhlIGludmFsaWRh dGVkIHN0YXRlIHBlcnNpc3RzIGFjcm9zcyBzZXJ2ZXIgcmVzdGFydCAqLworCQkJUmVwbGlj YXRpb25TbG90TWFya0RpcnR5KCk7CisJCQlSZXBsaWNhdGlvblNsb3RTYXZlKCk7CisJCQlS ZXBsaWNhdGlvblNsb3RSZWxlYXNlKCk7CisJCQlwZ3N0YXRfZHJvcF9yZXBsc2xvdChzKTsK KworCQkJZXJlcG9ydChMT0csCisJCQkJCShlcnJtc2coImludmFsaWRhdGluZyBzbG90IFwi JXNcIiBiZWNhdXNlIGl0IGNvbmZsaWN0cyB3aXRoIHJlY292ZXJ5IiwgTmFtZVN0cihzbG90 bmFtZSkpKSk7CisKKwkJCS8qIGRvbmUgd2l0aCB0aGlzIHNsb3QgZm9yIG5vdyAqLworCQkJ YnJlYWs7CisJCX0KKwl9CisKKwlBc3NlcnQoIXJlbGVhc2VkX2xvY2sgPT0gTFdMb2NrSGVs ZEJ5TWVJbk1vZGUoUmVwbGljYXRpb25TbG90Q29udHJvbExvY2ssIExXX1NIQVJFRCkpOwor CisJcmV0dXJuIHJlbGVhc2VkX2xvY2s7Cit9CisKKy8qCisgKiBSZXNvbHZlIHJlY292ZXJ5 IGNvbmZsaWN0cyB3aXRoIGxvZ2ljYWwgc2xvdHMuCisgKgorICogV2hlbiB4aWQgaXMgdmFs aWQsIGl0IG1lYW5zIHRoYXQgd2UgYXJlIGFib3V0IHRvIHJlbW92ZSByb3dzIG9sZGVyIHRo YW4geGlkLgorICogVGhlcmVmb3JlIHdlIG5lZWQgdG8gaW52YWxpZGF0ZSBzbG90cyB0aGF0 IGRlcGVuZCBvbiBzZWVpbmcgdGhvc2Ugcm93cy4KKyAqIFdoZW4geGlkIGlzIGludmFsaWQs IGludmFsaWRhdGUgYWxsIGxvZ2ljYWwgc2xvdHMuIFRoaXMgaXMgcmVxdWlyZWQgd2hlbiB0 aGUKKyAqIG1hc3RlciB3YWxfbGV2ZWwgaXMgc2V0IGJhY2sgdG8gcmVwbGljYSwgc28gZXhp c3RpbmcgbG9naWNhbCBzbG90cyBuZWVkIHRvCisgKiBiZSBpbnZhbGlkYXRlZC4KKyAqLwor dm9pZAorSW52YWxpZGF0ZUNvbmZsaWN0aW5nTG9naWNhbFJlcGxpY2F0aW9uU2xvdHMoT2lk IGRib2lkLCBUcmFuc2FjdGlvbklkIHhpZCkKK3sKKworCUFzc2VydChtYXhfcmVwbGljYXRp b25fc2xvdHMgPj0gMCk7CisKKwlpZiAobWF4X3JlcGxpY2F0aW9uX3Nsb3RzID09IDApCisJ CXJldHVybjsKK3Jlc3RhcnQ6CisJTFdMb2NrQWNxdWlyZShSZXBsaWNhdGlvblNsb3RDb250 cm9sTG9jaywgTFdfU0hBUkVEKTsKKwlmb3IgKGludCBpID0gMDsgaSA8IG1heF9yZXBsaWNh dGlvbl9zbG90czsgaSsrKQorCXsKKwkJUmVwbGljYXRpb25TbG90ICpzID0gJlJlcGxpY2F0 aW9uU2xvdEN0bC0+cmVwbGljYXRpb25fc2xvdHNbaV07CisKKwkJaWYgKCFzLT5pbl91c2Up CisJCQljb250aW51ZTsKKworCQkvKiBXZSBhcmUgb25seSBkZWFsaW5nIHdpdGggKmxvZ2lj YWwqIHNsb3QgY29uZmxpY3RzLiAqLworCQlpZiAoIVNsb3RJc0xvZ2ljYWwocykpCisJCQlj b250aW51ZTsKKworCQkvKiBub3Qgb3VyIGRhdGFiYXNlIGFuZCB3ZSBkb24ndCB3YW50IGFs bCB0aGUgZGF0YWJhc2UsIHNraXAgKi8KKwkJaWYgKHMtPmRhdGEuZGF0YWJhc2UgIT0gZGJv aWQgJiYgVHJhbnNhY3Rpb25JZElzVmFsaWQoeGlkKSkKKwkJCWNvbnRpbnVlOworCisJCWlm IChJbnZhbGlkYXRlUG9zc2libHlDb25mbGljdGluZ0xvZ2ljYWxSZXBsaWNhdGlvblNsb3Qo cywgeGlkKSkKKwkJeworCQkJLyogaWYgdGhlIGxvY2sgd2FzIHJlbGVhc2VkLCB3ZSBuZWVk IHRvIHJlc3RhcnQgZnJvbSBzY3JhdGNoICovCisJCQlnb3RvIHJlc3RhcnQ7CisJCX0KKwl9 CisJTFdMb2NrUmVsZWFzZShSZXBsaWNhdGlvblNsb3RDb250cm9sTG9jayk7Cit9CisKIC8q CiAgKiBGbHVzaCBhbGwgcmVwbGljYXRpb24gc2xvdHMgdG8gZGlzay4KICAqCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9yZXBsaWNhdGlvbi93YWxzZW5kZXIuYyBiL3NyYy9iYWNrZW5k L3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCmluZGV4IGMxMWJiMzcxNmYuLjY0ZmJkNTJlMzQg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCisrKyBi L3NyYy9iYWNrZW5kL3JlcGxpY2F0aW9uL3dhbHNlbmRlci5jCkBAIC0xMjUzLDYgKzEyNTMs MTQgQEAgU3RhcnRMb2dpY2FsUmVwbGljYXRpb24oU3RhcnRSZXBsaWNhdGlvbkNtZCAqY21k KQogCiAJUmVwbGljYXRpb25TbG90QWNxdWlyZShjbWQtPnNsb3RuYW1lLCB0cnVlKTsKIAor CWlmICghVHJhbnNhY3Rpb25JZElzVmFsaWQoTXlSZXBsaWNhdGlvblNsb3QtPmRhdGEueG1p bikKKwkJICYmICFUcmFuc2FjdGlvbklkSXNWYWxpZChNeVJlcGxpY2F0aW9uU2xvdC0+ZGF0 YS5jYXRhbG9nX3htaW4pKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNP REVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLAorCQkJCSBlcnJtc2coImNh bm5vdCByZWFkIGZyb20gbG9naWNhbCByZXBsaWNhdGlvbiBzbG90IFwiJXNcIiIsCisJCQkJ CQljbWQtPnNsb3RuYW1lKSwKKwkJCQkgZXJyZGV0YWlsKCJUaGlzIHNsb3QgaGFzIGJlZW4g aW52YWxpZGF0ZWQgYmVjYXVzZSBpdCB3YXMgY29uZmxpY3Rpbmcgd2l0aCByZWNvdmVyeS4i KSkpOworCiAJaWYgKFhMb2dSZWNQdHJJc0ludmFsaWQoTXlSZXBsaWNhdGlvblNsb3QtPmRh dGEucmVzdGFydF9sc24pKQogCQllcmVwb3J0KEVSUk9SLAogCQkJCShlcnJjb2RlKEVSUkNP REVfT0JKRUNUX05PVF9JTl9QUkVSRVFVSVNJVEVfU1RBVEUpLApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvc3RvcmFnZS9pcGMvcHJvY2FycmF5LmMgYi9zcmMvYmFja2VuZC9zdG9yYWdl L2lwYy9wcm9jYXJyYXkuYwppbmRleCAwMTc2ZjMwMjcwLi5kNjhiNzUyYzkxIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jYXJyYXkuYworKysgYi9zcmMvYmFj a2VuZC9zdG9yYWdlL2lwYy9wcm9jYXJyYXkuYwpAQCAtMzQ3Nyw2ICszNDc3LDEwIEBAIFNp Z25hbFZpcnR1YWxUcmFuc2FjdGlvbihWaXJ0dWFsVHJhbnNhY3Rpb25JZCB2eGlkLCBQcm9j U2lnbmFsUmVhc29uIHNpZ21vZGUsCiAKIAkJR0VUX1ZYSURfRlJPTV9QR1BST0MocHJvY3Z4 aWQsICpwcm9jKTsKIAorCQkvKgorCQkgKiBOb3RlOiB2eGlkLmxvY2FsVHJhbnNhY3Rpb25J ZCBjYW4gYmUgaW52YWxpZCwgd2hpY2ggbWVhbnMgdGhlCisJCSAqIHJlcXVlc3QgaXMgdG8g c2lnbmFsIHRoZSBwaWQgdGhhdCBpcyBub3QgcnVubmluZyBhIHRyYW5zYWN0aW9uLgorCQkg Ki8KIAkJaWYgKHByb2N2eGlkLmJhY2tlbmRJZCA9PSB2eGlkLmJhY2tlbmRJZCAmJgogCQkJ cHJvY3Z4aWQubG9jYWxUcmFuc2FjdGlvbklkID09IHZ4aWQubG9jYWxUcmFuc2FjdGlvbklk KQogCQl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jc2lnbmFs LmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9wcm9jc2lnbmFsLmMKaW5kZXggNzc2NzY1 N2YyNy4uMWIzYmY5NDNjMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMv cHJvY3NpZ25hbC5jCisrKyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3Byb2NzaWduYWwu YwpAQCAtNjY5LDYgKzY2OSw5IEBAIHByb2NzaWduYWxfc2lndXNyMV9oYW5kbGVyKFNJR05B TF9BUkdTKQogCWlmIChDaGVja1Byb2NTaWduYWwoUFJPQ1NJR19SRUNPVkVSWV9DT05GTElD VF9TTkFQU0hPVCkpCiAJCVJlY292ZXJ5Q29uZmxpY3RJbnRlcnJ1cHQoUFJPQ1NJR19SRUNP VkVSWV9DT05GTElDVF9TTkFQU0hPVCk7CiAKKwlpZiAoQ2hlY2tQcm9jU2lnbmFsKFBST0NT SUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNMT1QpKQorCQlSZWNvdmVyeUNvbmZsaWN0 SW50ZXJydXB0KFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNMT1QpOworCiAJ aWYgKENoZWNrUHJvY1NpZ25hbChQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NUQVJUVVBf REVBRExPQ0spKQogCQlSZWNvdmVyeUNvbmZsaWN0SW50ZXJydXB0KFBST0NTSUdfUkVDT1ZF UllfQ09ORkxJQ1RfU1RBUlRVUF9ERUFETE9DSyk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3N0b3JhZ2UvaXBjL3N0YW5kYnkuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL3N0 YW5kYnkuYwppbmRleCBmNDMyMjlkZmRhLi5mNzhjZjVkZTY4IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9zdG9yYWdlL2lwYy9zdGFuZGJ5LmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFn ZS9pcGMvc3RhbmRieS5jCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAidXRpbHMvcHNf c3RhdHVzLmgiCiAjaW5jbHVkZSAidXRpbHMvdGltZW91dC5oIgogI2luY2x1ZGUgInV0aWxz L3RpbWVzdGFtcC5oIgorI2luY2x1ZGUgInJlcGxpY2F0aW9uL3Nsb3QuaCIKIAogLyogVXNl ci1zZXR0YWJsZSBHVUMgcGFyYW1ldGVycyAqLwogaW50CQkJdmFjdXVtX2RlZmVyX2NsZWFu dXBfYWdlOwpAQCAtNDc1LDYgKzQ3Niw3IEBAIFJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0 aFZpcnR1YWxYSURzKFZpcnR1YWxUcmFuc2FjdGlvbklkICp3YWl0bGlzdCwKICAqLwogdm9p ZAogUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoVHJhbnNhY3Rpb25JZCBz bmFwc2hvdENvbmZsaWN0SG9yaXpvbiwKKwkJCQkJCQkJCWJvb2wgaXNDYXRhbG9nUmVsLAog CQkJCQkJCQkJUmVsRmlsZUxvY2F0b3IgbG9jYXRvcikKIHsKIAlWaXJ0dWFsVHJhbnNhY3Rp b25JZCAqYmFja2VuZHM7CkBAIC00OTksNiArNTAxLDkgQEAgUmVzb2x2ZVJlY292ZXJ5Q29u ZmxpY3RXaXRoU25hcHNob3QoVHJhbnNhY3Rpb25JZCBzbmFwc2hvdENvbmZsaWN0SG9yaXpv biwKIAkJCQkJCQkJCQkgICBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NOQVBTSE9ULAog CQkJCQkJCQkJCSAgIFdBSVRfRVZFTlRfUkVDT1ZFUllfQ09ORkxJQ1RfU05BUFNIT1QsCiAJ CQkJCQkJCQkJICAgdHJ1ZSk7CisKKwlpZiAoaXNDYXRhbG9nUmVsKQorCQlJbnZhbGlkYXRl Q29uZmxpY3RpbmdMb2dpY2FsUmVwbGljYXRpb25TbG90cyhsb2NhdG9yLmRiT2lkLCBzbmFw c2hvdENvbmZsaWN0SG9yaXpvbik7CiB9CiAKIC8qCkBAIC01MDcsNiArNTEyLDcgQEAgUmVz b2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNob3QoVHJhbnNhY3Rpb25JZCBzbmFwc2hv dENvbmZsaWN0SG9yaXpvbiwKICAqLwogdm9pZAogUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RX aXRoU25hcHNob3RGdWxsWGlkKEZ1bGxUcmFuc2FjdGlvbklkIHNuYXBzaG90Q29uZmxpY3RI b3Jpem9uLAorCQkJCQkJCQkJCSAgIGJvb2wgaXNDYXRhbG9nUmVsLAogCQkJCQkJCQkJCSAg IFJlbEZpbGVMb2NhdG9yIGxvY2F0b3IpCiB7CiAJLyoKQEAgLTUyNSw3ICs1MzEsOSBAQCBS ZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdEZ1bGxYaWQoRnVsbFRyYW5zYWN0 aW9uSWQgc25hcHNob3RDb25mbGljdEhvcgogCQlUcmFuc2FjdGlvbklkIHRydW5jYXRlZDsK IAogCQl0cnVuY2F0ZWQgPSBYaWRGcm9tRnVsbFRyYW5zYWN0aW9uSWQoc25hcHNob3RDb25m bGljdEhvcml6b24pOwotCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFwc2hvdCh0 cnVuY2F0ZWQsIGxvY2F0b3IpOworCQlSZXNvbHZlUmVjb3ZlcnlDb25mbGljdFdpdGhTbmFw c2hvdCh0cnVuY2F0ZWQsCisJCQkJCQkJCQkJCWlzQ2F0YWxvZ1JlbCwKKwkJCQkJCQkJCQkJ bG9jYXRvcik7CiAJfQogfQogCkBAIC0xNDg2LDYgKzE0OTQsOSBAQCBnZXRfcmVjb3Zlcnlf Y29uZmxpY3RfZGVzYyhQcm9jU2lnbmFsUmVhc29uIHJlYXNvbikKIAkJY2FzZSBQUk9DU0lH X1JFQ09WRVJZX0NPTkZMSUNUX1NOQVBTSE9UOgogCQkJcmVhc29uRGVzYyA9IF8oInJlY292 ZXJ5IGNvbmZsaWN0IG9uIHNuYXBzaG90Iik7CiAJCQlicmVhazsKKwkJY2FzZSBQUk9DU0lH X1JFQ09WRVJZX0NPTkZMSUNUX0xPR0lDQUxTTE9UOgorCQkJcmVhc29uRGVzYyA9IF8oInJl Y292ZXJ5IGNvbmZsaWN0IG9uIHJlcGxpY2F0aW9uIHNsb3QiKTsKKwkJCWJyZWFrOwogCQlj YXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfU1RBUlRVUF9ERUFETE9DSzoKIAkJCXJl YXNvbkRlc2MgPSBfKCJyZWNvdmVyeSBjb25mbGljdCBvbiBidWZmZXIgZGVhZGxvY2siKTsK IAkJCWJyZWFrOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jIGIv c3JjL2JhY2tlbmQvdGNvcC9wb3N0Z3Jlcy5jCmluZGV4IDAxZDI2NGI1YWIuLjA1ZGE4M2Jm NWIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvcG9zdGdyZXMuYworKysgYi9zcmMv YmFja2VuZC90Y29wL3Bvc3RncmVzLmMKQEAgLTI0ODIsNiArMjQ4Miw5IEBAIGVycmRldGFp bF9yZWNvdmVyeV9jb25mbGljdCh2b2lkKQogCQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09O RkxJQ1RfU05BUFNIT1Q6CiAJCQllcnJkZXRhaWwoIlVzZXIgcXVlcnkgbWlnaHQgaGF2ZSBu ZWVkZWQgdG8gc2VlIHJvdyB2ZXJzaW9ucyB0aGF0IG11c3QgYmUgcmVtb3ZlZC4iKTsKIAkJ CWJyZWFrOworCQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNMT1Q6 CisJCQllcnJkZXRhaWwoIlVzZXIgd2FzIHVzaW5nIHRoZSBsb2dpY2FsIHNsb3QgdGhhdCBt dXN0IGJlIGRyb3BwZWQuIik7CisJCQlicmVhazsKIAkJY2FzZSBQUk9DU0lHX1JFQ09WRVJZ X0NPTkZMSUNUX1NUQVJUVVBfREVBRExPQ0s6CiAJCQllcnJkZXRhaWwoIlVzZXIgdHJhbnNh Y3Rpb24gY2F1c2VkIGJ1ZmZlciBkZWFkbG9jayB3aXRoIHJlY292ZXJ5LiIpOwogCQkJYnJl YWs7CkBAIC0zMDUxLDYgKzMwNTQsMjUgQEAgUmVjb3ZlcnlDb25mbGljdEludGVycnVwdChQ cm9jU2lnbmFsUmVhc29uIHJlYXNvbikKIAkJCWNhc2UgUFJPQ1NJR19SRUNPVkVSWV9DT05G TElDVF9MT0NLOgogCQkJY2FzZSBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1RBQkxFU1BB Q0U6CiAJCQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfU05BUFNIT1Q6CisJCQlj YXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNMT1Q6CisJCQkJLyoKKwkJ CQkgKiBGb3IgY29uZmxpY3RzIHRoYXQgcmVxdWlyZSBhIGxvZ2ljYWwgc2xvdCB0byBiZSBp bnZhbGlkYXRlZCwgdGhlCisJCQkJICogcmVxdWlyZW1lbnQgaXMgZm9yIHRoZSBzaWduYWwg cmVjZWl2ZXIgdG8gcmVsZWFzZSB0aGUgc2xvdCwKKwkJCQkgKiBzbyB0aGF0IGl0IGNvdWxk IGJlIGludmFsaWRhdGVkIGJ5IHRoZSBzaWduYWwgc2VuZGVyLiBTbyBmb3IKKwkJCQkgKiBu b3JtYWwgYmFja2VuZHMsIHRoZSB0cmFuc2FjdGlvbiBzaG91bGQgYmUgYWJvcnRlZCwganVz dAorCQkJCSAqIGxpa2UgZm9yIG90aGVyIHJlY292ZXJ5IGNvbmZsaWN0cy4gQnV0IGlmIGl0 J3Mgd2Fsc2VuZGVyIG9uCisJCQkJICogc3RhbmRieSwgdGhlbiBpdCBoYXMgdG8gYmUga2ls bGVkIHNvIGFzIHRvIHJlbGVhc2UgYW4KKwkJCQkgKiBhY3F1aXJlZCBsb2dpY2FsIHNsb3Qu CisJCQkJICovCisJCQkJaWYgKGFtX2Nhc2NhZGluZ193YWxzZW5kZXIgJiYKKwkJCQkJcmVh c29uID09IFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNMT1QgJiYKKwkJCQkJ TXlSZXBsaWNhdGlvblNsb3QgJiYgU2xvdElzTG9naWNhbChNeVJlcGxpY2F0aW9uU2xvdCkp CisJCQkJeworCQkJCQlSZWNvdmVyeUNvbmZsaWN0UGVuZGluZyA9IHRydWU7CisJCQkJCVF1 ZXJ5Q2FuY2VsUGVuZGluZyA9IHRydWU7CisJCQkJCUludGVycnVwdFBlbmRpbmcgPSB0cnVl OworCQkJCQlicmVhazsKKwkJCQl9CiAKIAkJCQkvKgogCQkJCSAqIElmIHdlIGFyZW4ndCBp biBhIHRyYW5zYWN0aW9uIGFueSBsb25nZXIgdGhlbiBpZ25vcmUuCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9wZ3N0YXRfZGF0YWJhc2UuYyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3RhdF9kYXRhYmFzZS5jCmluZGV4IDI5MDA4NmZjMjIu LjdhODkwOWQ4YjkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bn c3RhdF9kYXRhYmFzZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L3Bnc3Rh dF9kYXRhYmFzZS5jCkBAIC0xMDksNiArMTA5LDkgQEAgcGdzdGF0X3JlcG9ydF9yZWNvdmVy eV9jb25mbGljdChpbnQgcmVhc29uKQogCQljYXNlIFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJ Q1RfQlVGRkVSUElOOgogCQkJZGJlbnRyeS0+Y29uZmxpY3RfYnVmZmVycGluKys7CiAJCQli cmVhazsKKwkJY2FzZSBQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX0xPR0lDQUxTTE9UOgor CQkJZGJlbnRyeS0+Y29uZmxpY3RfbG9naWNhbHNsb3QrKzsKKwkJCWJyZWFrOwogCQljYXNl IFBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfU1RBUlRVUF9ERUFETE9DSzoKIAkJCWRiZW50 cnktPmNvbmZsaWN0X3N0YXJ0dXBfZGVhZGxvY2srKzsKIAkJCWJyZWFrOwpAQCAtMzg3LDYg KzM5MCw3IEBAIHBnc3RhdF9kYXRhYmFzZV9mbHVzaF9jYihQZ1N0YXRfRW50cnlSZWYgKmVu dHJ5X3JlZiwgYm9vbCBub3dhaXQpCiAJUEdTVEFUX0FDQ1VNX0RCQ09VTlQoY29uZmxpY3Rf dGFibGVzcGFjZSk7CiAJUEdTVEFUX0FDQ1VNX0RCQ09VTlQoY29uZmxpY3RfbG9jayk7CiAJ UEdTVEFUX0FDQ1VNX0RCQ09VTlQoY29uZmxpY3Rfc25hcHNob3QpOworCVBHU1RBVF9BQ0NV TV9EQkNPVU5UKGNvbmZsaWN0X2xvZ2ljYWxzbG90KTsKIAlQR1NUQVRfQUNDVU1fREJDT1VO VChjb25mbGljdF9idWZmZXJwaW4pOwogCVBHU1RBVF9BQ0NVTV9EQkNPVU5UKGNvbmZsaWN0 X3N0YXJ0dXBfZGVhZGxvY2spOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9h ZHQvcGdzdGF0ZnVuY3MuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5j CmluZGV4IDQ2Zjk4ZmQ2N2YuLjQxZWI2MjU2ZWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L3V0aWxzL2FkdC9wZ3N0YXRmdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9w Z3N0YXRmdW5jcy5jCkBAIC0xMDU1LDYgKzEwNTUsOCBAQCBQR19TVEFUX0dFVF9EQkVOVFJZ X0lOVDY0KHhhY3RfY29tbWl0KQogLyogcGdfc3RhdF9nZXRfZGJfeGFjdF9yb2xsYmFjayAq LwogUEdfU1RBVF9HRVRfREJFTlRSWV9JTlQ2NCh4YWN0X3JvbGxiYWNrKQogCisvKiBwZ19z dGF0X2dldF9kYl9jb25mbGljdF9sb2dpY2Fsc2xvdCAqLworUEdfU1RBVF9HRVRfREJFTlRS WV9JTlQ2NChjb25mbGljdF9sb2dpY2Fsc2xvdCkKIAogRGF0dW0KIHBnX3N0YXRfZ2V0X2Ri X3N0YXRfcmVzZXRfdGltZShQR19GVU5DVElPTl9BUkdTKQpAQCAtMTA4OCw2ICsxMDkwLDcg QEAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3RfYWxsKFBHX0ZVTkNUSU9OX0FSR1MpCiAJCXJl c3VsdCA9IChpbnQ2NCkgKGRiZW50cnktPmNvbmZsaWN0X3RhYmxlc3BhY2UgKwogCQkJCQkJ ICBkYmVudHJ5LT5jb25mbGljdF9sb2NrICsKIAkJCQkJCSAgZGJlbnRyeS0+Y29uZmxpY3Rf c25hcHNob3QgKworCQkJCQkJICBkYmVudHJ5LT5jb25mbGljdF9sb2dpY2Fsc2xvdCArCiAJ CQkJCQkgIGRiZW50cnktPmNvbmZsaWN0X2J1ZmZlcnBpbiArCiAJCQkJCQkgIGRiZW50cnkt PmNvbmZsaWN0X3N0YXJ0dXBfZGVhZGxvY2spOwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3Byb2MuZGF0IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRh dAppbmRleCA5OGQ5MGQ5MzM4Li4yMWRkNjVhNDgzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3Byb2MuZGF0CisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJv Yy5kYXQKQEAgLTU1NDYsNiArNTU0NiwxMSBAQAogICBwcm9uYW1lID0+ICdwZ19zdGF0X2dl dF9kYl9jb25mbGljdF9zbmFwc2hvdCcsIHByb3ZvbGF0aWxlID0+ICdzJywKICAgcHJvcGFy YWxsZWwgPT4gJ3InLCBwcm9yZXR0eXBlID0+ICdpbnQ4JywgcHJvYXJndHlwZXMgPT4gJ29p ZCcsCiAgIHByb3NyYyA9PiAncGdfc3RhdF9nZXRfZGJfY29uZmxpY3Rfc25hcHNob3QnIH0s Cit7IG9pZCA9PiAnOTkwMScsCisgIGRlc2NyID0+ICdzdGF0aXN0aWNzOiByZWNvdmVyeSBj b25mbGljdHMgaW4gZGF0YWJhc2UgY2F1c2VkIGJ5IGxvZ2ljYWwgcmVwbGljYXRpb24gc2xv dCcsCisgIHByb25hbWUgPT4gJ3BnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X2xvZ2ljYWxzbG90 JywgcHJvdm9sYXRpbGUgPT4gJ3MnLAorICBwcm9wYXJhbGxlbCA9PiAncicsIHByb3JldHR5 cGUgPT4gJ2ludDgnLCBwcm9hcmd0eXBlcyA9PiAnb2lkJywKKyAgcHJvc3JjID0+ICdwZ19z dGF0X2dldF9kYl9jb25mbGljdF9sb2dpY2Fsc2xvdCcgfSwKIHsgb2lkID0+ICczMDY4JywK ICAgZGVzY3IgPT4gJ3N0YXRpc3RpY3M6IHJlY292ZXJ5IGNvbmZsaWN0cyBpbiBkYXRhYmFz ZSBjYXVzZWQgYnkgc2hhcmVkIGJ1ZmZlciBwaW4nLAogICBwcm9uYW1lID0+ICdwZ19zdGF0 X2dldF9kYl9jb25mbGljdF9idWZmZXJwaW4nLCBwcm92b2xhdGlsZSA9PiAncycsCmRpZmYg LS1naXQgYS9zcmMvaW5jbHVkZS9wZ3N0YXQuaCBiL3NyYy9pbmNsdWRlL3Bnc3RhdC5oCmlu ZGV4IGEzZGY4ZDI3YzMuLjdmZmNlODRkMDcgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Bn c3RhdC5oCisrKyBiL3NyYy9pbmNsdWRlL3Bnc3RhdC5oCkBAIC0yOTEsNiArMjkxLDcgQEAg dHlwZWRlZiBzdHJ1Y3QgUGdTdGF0X1N0YXREQkVudHJ5CiAJUGdTdGF0X0NvdW50ZXIgY29u ZmxpY3RfdGFibGVzcGFjZTsKIAlQZ1N0YXRfQ291bnRlciBjb25mbGljdF9sb2NrOwogCVBn U3RhdF9Db3VudGVyIGNvbmZsaWN0X3NuYXBzaG90OworCVBnU3RhdF9Db3VudGVyIGNvbmZs aWN0X2xvZ2ljYWxzbG90OwogCVBnU3RhdF9Db3VudGVyIGNvbmZsaWN0X2J1ZmZlcnBpbjsK IAlQZ1N0YXRfQ291bnRlciBjb25mbGljdF9zdGFydHVwX2RlYWRsb2NrOwogCVBnU3RhdF9D b3VudGVyIHRlbXBfZmlsZXM7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9yZXBsaWNhdGlv bi9zbG90LmggYi9zcmMvaW5jbHVkZS9yZXBsaWNhdGlvbi9zbG90LmgKaW5kZXggNjVmMmM3 NDIzOS4uMGVkMWQ4YWYyOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcmVwbGljYXRpb24v c2xvdC5oCisrKyBiL3NyYy9pbmNsdWRlL3JlcGxpY2F0aW9uL3Nsb3QuaApAQCAtMjE2LDYg KzIxNiw3IEBAIGV4dGVybiBYTG9nUmVjUHRyIFJlcGxpY2F0aW9uU2xvdHNDb21wdXRlTG9n aWNhbFJlc3RhcnRMU04odm9pZCk7CiBleHRlcm4gYm9vbCBSZXBsaWNhdGlvblNsb3RzQ291 bnREQlNsb3RzKE9pZCBkYm9pZCwgaW50ICpuc2xvdHMsIGludCAqbmFjdGl2ZSk7CiBleHRl cm4gdm9pZCBSZXBsaWNhdGlvblNsb3RzRHJvcERCU2xvdHMoT2lkIGRib2lkKTsKIGV4dGVy biBib29sIEludmFsaWRhdGVPYnNvbGV0ZVJlcGxpY2F0aW9uU2xvdHMoWExvZ1NlZ05vIG9s ZGVzdFNlZ25vKTsKK2V4dGVybiB2b2lkIEludmFsaWRhdGVDb25mbGljdGluZ0xvZ2ljYWxS ZXBsaWNhdGlvblNsb3RzKE9pZCBkYm9pZCwgVHJhbnNhY3Rpb25JZCB4aWQpOwogZXh0ZXJu IFJlcGxpY2F0aW9uU2xvdCAqU2VhcmNoTmFtZWRSZXBsaWNhdGlvblNsb3QoY29uc3QgY2hh ciAqbmFtZSwgYm9vbCBuZWVkX2xvY2spOwogZXh0ZXJuIGludAlSZXBsaWNhdGlvblNsb3RJ bmRleChSZXBsaWNhdGlvblNsb3QgKnNsb3QpOwogZXh0ZXJuIGJvb2wgUmVwbGljYXRpb25T bG90TmFtZShpbnQgaW5kZXgsIE5hbWUgbmFtZSk7CkBAIC0yMjcsNSArMjI4LDYgQEAgZXh0 ZXJuIHZvaWQgQ2hlY2tQb2ludFJlcGxpY2F0aW9uU2xvdHModm9pZCk7CiAKIGV4dGVybiB2 b2lkIENoZWNrU2xvdFJlcXVpcmVtZW50cyh2b2lkKTsKIGV4dGVybiB2b2lkIENoZWNrU2xv dFBlcm1pc3Npb25zKHZvaWQpOworZXh0ZXJuIHZvaWQgUmVzb2x2ZVJlY292ZXJ5Q29uZmxp Y3RXaXRoTG9naWNhbFNsb3RzKE9pZCBkYm9pZCwgVHJhbnNhY3Rpb25JZCB4aWQsIGNoYXIg KnJlYXNvbik7CiAKICNlbmRpZgkJCQkJCQkvKiBTTE9UX0ggKi8KZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL3N0b3JhZ2UvcHJvY3NpZ25hbC5oIGIvc3JjL2luY2x1ZGUvc3RvcmFnZS9w cm9jc2lnbmFsLmgKaW5kZXggZWU2MzY5MDBmMy4uNTYwOTZiZDNlMiAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvc3RvcmFnZS9wcm9jc2lnbmFsLmgKKysrIGIvc3JjL2luY2x1ZGUvc3Rv cmFnZS9wcm9jc2lnbmFsLmgKQEAgLTQxLDYgKzQxLDcgQEAgdHlwZWRlZiBlbnVtCiAJUFJP Q1NJR19SRUNPVkVSWV9DT05GTElDVF9UQUJMRVNQQUNFLAogCVBST0NTSUdfUkVDT1ZFUllf Q09ORkxJQ1RfTE9DSywKIAlQUk9DU0lHX1JFQ09WRVJZX0NPTkZMSUNUX1NOQVBTSE9ULAor CVBST0NTSUdfUkVDT1ZFUllfQ09ORkxJQ1RfTE9HSUNBTFNMT1QsCiAJUFJPQ1NJR19SRUNP VkVSWV9DT05GTElDVF9CVUZGRVJQSU4sCiAJUFJPQ1NJR19SRUNPVkVSWV9DT05GTElDVF9T VEFSVFVQX0RFQURMT0NLLAogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9zdG9yYWdlL3N0 YW5kYnkuaCBiL3NyYy9pbmNsdWRlL3N0b3JhZ2Uvc3RhbmRieS5oCmluZGV4IGU0NmM5MzRj NTYuLjdkZjY2ZDYxMzYgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3N0b3JhZ2Uvc3RhbmRi eS5oCisrKyBiL3NyYy9pbmNsdWRlL3N0b3JhZ2Uvc3RhbmRieS5oCkBAIC0zMCw4ICszMCwx MCBAQCBleHRlcm4gdm9pZCBJbml0UmVjb3ZlcnlUcmFuc2FjdGlvbkVudmlyb25tZW50KHZv aWQpOwogZXh0ZXJuIHZvaWQgU2h1dGRvd25SZWNvdmVyeVRyYW5zYWN0aW9uRW52aXJvbm1l bnQodm9pZCk7CiAKIGV4dGVybiB2b2lkIFJlc29sdmVSZWNvdmVyeUNvbmZsaWN0V2l0aFNu YXBzaG90KFRyYW5zYWN0aW9uSWQgc25hcHNob3RDb25mbGljdEhvcml6b24sCisJCQkJCQkJ CQkJCQlib29sIGlzQ2F0YWxvZ1JlbCwKIAkJCQkJCQkJCQkJCVJlbEZpbGVMb2NhdG9yIGxv Y2F0b3IpOwogZXh0ZXJuIHZvaWQgUmVzb2x2ZVJlY292ZXJ5Q29uZmxpY3RXaXRoU25hcHNo b3RGdWxsWGlkKEZ1bGxUcmFuc2FjdGlvbklkIHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uLAor CQkJCQkJCQkJCQkJCSAgIGJvb2wgaXNDYXRhbG9nUmVsLAogCQkJCQkJCQkJCQkJCSAgIFJl bEZpbGVMb2NhdG9yIGxvY2F0b3IpOwogZXh0ZXJuIHZvaWQgUmVzb2x2ZVJlY292ZXJ5Q29u ZmxpY3RXaXRoVGFibGVzcGFjZShPaWQgdHNpZCk7CiBleHRlcm4gdm9pZCBSZXNvbHZlUmVj b3ZlcnlDb25mbGljdFdpdGhEYXRhYmFzZShPaWQgZGJpZCk7CmRpZmYgLS1naXQgYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1bGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcnVsZXMub3V0CmluZGV4IGZiOWY5MzZkNDMuLjFjYzYyYzQ0N2QgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CisrKyBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0CkBAIC0xODY4LDcgKzE4NjgsOCBAQCBwZ19z dGF0X2RhdGFiYXNlX2NvbmZsaWN0c3wgU0VMRUNUIGQub2lkIEFTIGRhdGlkLAogICAgIHBn X3N0YXRfZ2V0X2RiX2NvbmZsaWN0X2xvY2soZC5vaWQpIEFTIGNvbmZsX2xvY2ssCiAgICAg cGdfc3RhdF9nZXRfZGJfY29uZmxpY3Rfc25hcHNob3QoZC5vaWQpIEFTIGNvbmZsX3NuYXBz aG90LAogICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X2J1ZmZlcnBpbihkLm9pZCkgQVMg Y29uZmxfYnVmZmVycGluLAotICAgIHBnX3N0YXRfZ2V0X2RiX2NvbmZsaWN0X3N0YXJ0dXBf ZGVhZGxvY2soZC5vaWQpIEFTIGNvbmZsX2RlYWRsb2NrCisgICAgcGdfc3RhdF9nZXRfZGJf Y29uZmxpY3Rfc3RhcnR1cF9kZWFkbG9jayhkLm9pZCkgQVMgY29uZmxfZGVhZGxvY2ssCisg ICAgcGdfc3RhdF9nZXRfZGJfY29uZmxpY3RfbG9naWNhbHNsb3QoZC5vaWQpIEFTIGNvbmZs X2FjdGl2ZV9sb2dpY2Fsc2xvdAogICAgRlJPTSBwZ19kYXRhYmFzZSBkOwogcGdfc3RhdF9n c3NhcGl8IFNFTEVDVCBzLnBpZCwKICAgICBzLmdzc19hdXRoIEFTIGdzc19hdXRoZW50aWNh dGVkLAotLSAKMi4zNC4xCgo= --------------33idPHuZjSjOk9JsByk0nzBq Content-Type: text/plain; charset=UTF-8; name="v35-0001-Add-info-in-WAL-records-in-preparation-for-logic.patch" Content-Disposition: attachment; filename*0="v35-0001-Add-info-in-WAL-records-in-preparation-for-logic.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSAxNDFiZWU0MmNhOGQ2NTVkYTM5OWIxOWYxZDMwMWJmYjA0ZDE4NWVhIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBiZHJvdXZvdEFXUyA8YmRyb3V2b3RAYW1hem9uLmNv bT4KRGF0ZTogV2VkLCAyMSBEZWMgMjAyMiAxNDowMzoxOSArMDAwMApTdWJqZWN0OiBbUEFU Q0ggdjM1IDEvNl0gQWRkIGluZm8gaW4gV0FMIHJlY29yZHMgaW4gcHJlcGFyYXRpb24gZm9y IGxvZ2ljYWwKIHNsb3QgY29uZmxpY3QgaGFuZGxpbmcuCk1JTUUtVmVyc2lvbjogMS4wCkNv bnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOApDb250ZW50LVRyYW5zZmVy LUVuY29kaW5nOiA4Yml0CgpPdmVyYWxsIGRlc2lnbjoKCjEuIFdlIHdhbnQgdG8gZW5hYmxl IGxvZ2ljYWwgZGVjb2Rpbmcgb24gc3RhbmRieXMsIGJ1dCByZXBsYXkgb2YgV0FMCmZyb20g dGhlIHByaW1hcnkgbWlnaHQgcmVtb3ZlIGRhdGEgdGhhdCBpcyBuZWVkZWQgYnkgbG9naWNh bCBkZWNvZGluZywKY2F1c2luZyByZXBsaWNhdGlvbiBjb25mbGljdHMgbXVjaCBhcyBob3Qg c3RhbmRieSBkb2VzLgoKMi4gT3VyIGNob3NlbiBzdHJhdGVneSBmb3IgZGVhbGluZyB3aXRo IHRoaXMgdHlwZSBvZiByZXBsaWNhdGlvbiBzbG90CmlzIHRvIGludmFsaWRhdGUgbG9naWNh bCBzbG90cyBmb3Igd2hpY2ggbmVlZGVkIGRhdGEgaGFzIGJlZW4gcmVtb3ZlZC4KCjMuIFRv IGRvIHRoaXMgd2UgbmVlZCB0aGUgbGF0ZXN0UmVtb3ZlZFhpZCBmb3IgZWFjaCBjaGFuZ2Us IGp1c3QgYXMgd2UKZG8gZm9yIHBoeXNpY2FsIHJlcGxpY2F0aW9uIGNvbmZsaWN0cywgYnV0 IHdlIGFsc28gbmVlZCB0byBrbm93CndoZXRoZXIgYW55IHBhcnRpY3VsYXIgY2hhbmdlIHdh cyB0byBkYXRhIHRoYXQgbG9naWNhbCByZXBsaWNhdGlvbgptaWdodCBhY2Nlc3MuCgo0LiBX ZSBjYW4ndCByZWx5IG9uIHRoZSBzdGFuZGJ5J3MgcmVsY2FjaGUgZW50cmllcyBmb3IgdGhp cyBwdXJwb3NlIGluCmFueSB3YXksIGJlY2F1c2UgdGhlIFdBTCByZWNvcmQgdGhhdCBjYXVz ZXMgdGhlIHByb2JsZW0gbWlnaHQgYmUKcmVwbGF5ZWQgYmVmb3JlIHRoZSBzdGFuZGJ5IGV2 ZW4gcmVhY2hlcyBjb25zaXN0ZW5jeS4KCjUuIFRoZXJlZm9yZSBldmVyeSBXQUwgcmVjb3Jk IHRoYXQgcG90ZW50aWFsbHkgcmVtb3ZlcyBkYXRhIGZyb20gdGhlCmluZGV4IG9yIGhlYXAg bXVzdCBjYXJyeSBhIGZsYWcgaW5kaWNhdGluZyB3aGV0aGVyIG9yIG5vdCBpdCBpcyBvbmUK dGhhdCBtaWdodCBiZSBhY2Nlc3NlZCBkdXJpbmcgbG9naWNhbCBkZWNvZGluZy4KCldoeSBk byB3ZSBuZWVkIHRoaXMgZm9yIGxvZ2ljYWwgZGVjb2Rpbmcgb24gc3RhbmRieT8KCkZpcnN0 LCBsZXQncyBmb3JnZXQgYWJvdXQgbG9naWNhbCBkZWNvZGluZyBvbiBzdGFuZGJ5IGFuZCBy ZWNhbGwgdGhhdApvbiBhIHByaW1hcnkgZGF0YWJhc2UsIGFueSBjYXRhbG9nIHJvd3MgdGhh dCBtYXkgYmUgbmVlZGVkIGJ5IGEgbG9naWNhbApkZWNvZGluZyByZXBsaWNhdGlvbiBzbG90 IGFyZSBub3QgcmVtb3ZlZC4KClRoaXMgaXMgZG9uZSB0aGFua3MgdG8gdGhlIGNhdGFsb2df eG1pbiBhc3NvY2lhdGVkIHdpdGggdGhlIGxvZ2ljYWwKcmVwbGljYXRpb24gc2xvdC4KCkJ1 dCwgd2l0aCBsb2dpY2FsIGRlY29kaW5nIG9uIHN0YW5kYnksIGluIHRoZSBmb2xsb3dpbmcg Y2FzZXM6CgotIGhvdF9zdGFuZGJ5X2ZlZWRiYWNrIGlzIG9mZgotIGhvdF9zdGFuZGJ5X2Zl ZWRiYWNrIGlzIG9uIGJ1dCB0aGVyZSBpcyBubyBhIHBoeXNpY2FsIHNsb3QgYmV0d2Vlbgog IHRoZSBwcmltYXJ5IGFuZCB0aGUgc3RhbmRieS4gVGhlbiwgaG90X3N0YW5kYnlfZmVlZGJh Y2sgd2lsbCB3b3JrLAogIGJ1dCBvbmx5IHdoaWxlIHRoZSBjb25uZWN0aW9uIGlzIGFsaXZl IChmb3IgZXhhbXBsZSBhIG5vZGUgcmVzdGFydAogIHdvdWxkIGJyZWFrIGl0KQoKVGhlbiwg dGhlIHByaW1hcnkgbWF5IGRlbGV0ZSBzeXN0ZW0gY2F0YWxvZyByb3dzIHRoYXQgY291bGQg YmUgbmVlZGVkCmJ5IHRoZSBsb2dpY2FsIGRlY29kaW5nIG9uIHRoZSBzdGFuZGJ5IChhcyBp dCBkb2VzIG5vdCBrbm93IGFib3V0IHRoZQpjYXRhbG9nX3htaW4gb24gdGhlIHN0YW5kYnkp LgoKU28sIGl04oCZcyBtYW5kYXRvcnkgdG8gaWRlbnRpZnkgdGhvc2Ugcm93cyBhbmQgaW52 YWxpZGF0ZSB0aGUgc2xvdHMKdGhhdCBtYXkgbmVlZCB0aGVtIGlmIGFueS4gSWRlbnRpZnlp bmcgdGhvc2Ugcm93cyBpcyB0aGUgcHVycG9zZSBvZgp0aGlzIGNvbW1pdC4KCkltcGxlbWVu dGF0aW9uOgoKV2hlbiBhIFdBTCByZXBsYXkgb24gc3RhbmRieSBpbmRpY2F0ZXMgdGhhdCBh IGNhdGFsb2cgdGFibGUgdHVwbGUgaXMKdG8gYmUgZGVsZXRlZCBieSBhbiB4aWQgdGhhdCBp cyBncmVhdGVyIHRoYW4gYSBsb2dpY2FsIHNsb3QncwpjYXRhbG9nX3htaW4sIHRoZW4gdGhh dCBtZWFucyB0aGUgc2xvdCdzIGNhdGFsb2dfeG1pbiBjb25mbGljdHMgd2l0aAp0aGUgeGlk LCBhbmQgd2UgbmVlZCB0byBoYW5kbGUgdGhlIGNvbmZsaWN0LiBXaGlsZSBzdWJzZXF1ZW50 IGNvbW1pdHMKd2lsbCBkbyB0aGUgYWN0dWFsIGNvbmZsaWN0IGhhbmRsaW5nLCB0aGlzIGNv bW1pdCBhZGRzIGEgbmV3IGZpZWxkCmlzQ2F0YWxvZ1JlbCBpbiBzdWNoIFdBTCByZWNvcmRz IChhbmQgYSBuZXcgYml0IHNldCBpbiB0aGUKeGxfaGVhcF92aXNpYmxlIGZsYWdzIGZpZWxk KSwgdGhhdCBpcyB0cnVlIGZvciBjYXRhbG9nIHRhYmxlcywgc28gYXMgdG8KYXJyYW5nZSBm b3IgY29uZmxpY3QgaGFuZGxpbmcuCgpEdWUgdG8gdGhpcyBuZXcgZmllbGQgYmVpbmcgYWRk ZWQsIHhsX2hhc2hfdmFjdXVtX29uZV9wYWdlIGFuZApnaXN0eGxvZ0RlbGV0ZSBkbyBub3cg Y29udGFpbiB0aGUgb2Zmc2V0cyB0byBiZSBkZWxldGVkIGFzIGEKRkxFWElCTEVfQVJSQVlf TUVNQkVSLiBUaGlzIGlzIG5lZWRlZCB0byBlbnN1cmUgY29ycmVjdCBhbGlnbmVtZW50LgpJ dCdzIG5vdCBuZWVkZWQgb24gdGhlIG90aGVycyBzdHJ1Y3Qgd2hlcmUgaXNDYXRhbG9nUmVs IGhhcwpiZWVuIGFkZGVkLgoKQXV0aG9yOiBBbmRyZXMgRnJldW5kIChpbiBhbiBvbGRlciB2 ZXJzaW9uKSwgQW1pdCBLaGFuZGVrYXIsIEJlcnRyYW5kCkRyb3V2b3QKUmV2aWV3ZWQtQnk6 IEJlcnRyYW5kIERyb3V2b3QsIEFuZHJlcyBGcmV1bmQsIFJvYmVydCBIYWFzLCBGYWJyaXpp byBkZQpSb3llcyBNZWxsbwotLS0KIGNvbnRyaWIvdGVzdF9kZWNvZGluZy9leHBlY3RlZC9k ZGwub3V0ICB8IDY1ICsrKysrKysrKysrKysrKysrKysrKysrKysKIGNvbnRyaWIvdGVzdF9k ZWNvZGluZy9zcWwvZGRsLnNxbCAgICAgICB8IDIzICsrKysrKysrKwogZG9jL3NyYy9zZ21s L2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgIHwgMTEgKysrKysKIHNyYy9iYWNrZW5kL2Fj Y2Vzcy9jb21tb24vcmVsb3B0aW9ucy5jICB8ICAyICstCiBzcmMvYmFja2VuZC9hY2Nlc3Mv Z2lzdC9naXN0eGxvZy5jICAgICAgfCAxMSArKy0tLQogc3JjL2JhY2tlbmQvYWNjZXNzL2hh c2gvaGFzaF94bG9nLmMgICAgIHwgMTIgKystLS0KIHNyYy9iYWNrZW5kL2FjY2Vzcy9oYXNo L2hhc2hpbnNlcnQuYyAgICB8ICAxICsKIHNyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBh bS5jICAgICAgICB8ICA1ICstCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAu YyAgICAgfCAgMSArCiBzcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMg fCAgMyArLQogc3JjL2JhY2tlbmQvYWNjZXNzL25idHJlZS9uYnRwYWdlLmMgICAgIHwgIDIg Kwogc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWN1dW0uYyAgIHwgIDEgKwogc3Jj L2JhY2tlbmQvY2F0YWxvZy9pbmRleC5jICAgICAgICAgICAgIHwgMTAgKystLQogc3JjL2Jh Y2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAgICAgIHwgNTUgKysrKysrKysrKysrKysr KysrKystCiBzcmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdHhsb2cuaCAgICAgICAgICAgfCAxMSAr KystLQogc3JjL2luY2x1ZGUvYWNjZXNzL2hhc2hfeGxvZy5oICAgICAgICAgIHwgIDggKy0t CiBzcmMvaW5jbHVkZS9hY2Nlc3MvaGVhcGFtX3hsb2cuaCAgICAgICAgfCAgOCArLS0KIHNy Yy9pbmNsdWRlL2FjY2Vzcy9uYnR4bG9nLmggICAgICAgICAgICB8ICA2ICsrLQogc3JjL2lu Y2x1ZGUvYWNjZXNzL3NwZ3hsb2cuaCAgICAgICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUv YWNjZXNzL3Zpc2liaWxpdHltYXBkZWZzLmggIHwgIDkgKystLQogc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ19pbmRleC5oICAgICAgICAgIHwgIDIgKwogc3JjL2luY2x1ZGUvdXRpbHMvcmVs LmggICAgICAgICAgICAgICAgIHwgMTQgKysrKystCiAyMiBmaWxlcyBjaGFuZ2VkLCAyMTcg aW5zZXJ0aW9ucygrKSwgNDQgZGVsZXRpb25zKC0pCiAgMjUuNiUgY29udHJpYi90ZXN0X2Rl Y29kaW5nL2V4cGVjdGVkLwogIDEwLjklIGNvbnRyaWIvdGVzdF9kZWNvZGluZy9zcWwvCiAg IDQuMiUgZG9jL3NyYy9zZ21sLwogICAzLjclIHNyYy9iYWNrZW5kL2FjY2Vzcy9naXN0Lwog ICAzLjclIHNyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoLwogICA1LjMlIHNyYy9iYWNrZW5kL2Fj Y2Vzcy9oZWFwLwogIDE0LjklIHNyYy9iYWNrZW5kL2NvbW1hbmRzLwogICA1LjIlIHNyYy9i YWNrZW5kLwogIDIwLjglIHNyYy9pbmNsdWRlL2FjY2Vzcy8KICAgNC4zJSBzcmMvaW5jbHVk ZS91dGlscy8KCmRpZmYgLS1naXQgYS9jb250cmliL3Rlc3RfZGVjb2RpbmcvZXhwZWN0ZWQv ZGRsLm91dCBiL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9leHBlY3RlZC9kZGwub3V0CmluZGV4 IDlhMjhiNWRkYzUuLjQ4ZmI0NGM1NzUgMTAwNjQ0Ci0tLSBhL2NvbnRyaWIvdGVzdF9kZWNv ZGluZy9leHBlY3RlZC9kZGwub3V0CisrKyBiL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9leHBl Y3RlZC9kZGwub3V0CkBAIC00ODMsNiArNDgzLDcgQEAgQ1JFQVRFIFRBQkxFIHJlcGxpY2F0 aW9uX21ldGFkYXRhICgKICkKIFdJVEggKHVzZXJfY2F0YWxvZ190YWJsZSA9IHRydWUpCiA7 CitDUkVBVEUgSU5ERVggcmVwbGljYXRpb25fbWV0YWRhdGFfaWR4MSBvbiByZXBsaWNhdGlv bl9tZXRhZGF0YShyZWxhdGlvbik7CiBcZCsgcmVwbGljYXRpb25fbWV0YWRhdGEKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSAicHVi bGljLnJlcGxpY2F0aW9uX21ldGFkYXRhIgogICBDb2x1bW4gIHwgIFR5cGUgICB8IENvbGxh dGlvbiB8IE51bGxhYmxlIHwgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAg ICAgICAgICAgICAgIHwgU3RvcmFnZSAgfCBTdGF0cyB0YXJnZXQgfCBEZXNjcmlwdGlvbiAK QEAgLTQ5MiwxMSArNDkzLDE5IEBAIFdJVEggKHVzZXJfY2F0YWxvZ190YWJsZSA9IHRydWUp CiAgb3B0aW9ucyAgfCB0ZXh0W10gIHwgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCBleHRlbmRlZCB8 ICAgICAgICAgICAgICB8IAogSW5kZXhlczoKICAgICAicmVwbGljYXRpb25fbWV0YWRhdGFf cGtleSIgUFJJTUFSWSBLRVksIGJ0cmVlIChpZCkKKyAgICAicmVwbGljYXRpb25fbWV0YWRh dGFfaWR4MSIgYnRyZWUgKHJlbGF0aW9uKQogT3B0aW9uczogdXNlcl9jYXRhbG9nX3RhYmxl PXRydWUKIAorU0VMRUNUIGJvb2xfYW5kKGluZGlzdXNlcmNhdGFsb2cpIGZyb20gcGdfaW5k ZXggd2hlcmUgaW5kcmVsaWQgPSAncmVwbGljYXRpb25fbWV0YWRhdGEnOjpyZWdjbGFzczsK KyBib29sX2FuZCAKKy0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKIElOU0VSVCBJTlRPIHJl cGxpY2F0aW9uX21ldGFkYXRhKHJlbGF0aW9uLCBvcHRpb25zKQogVkFMVUVTICgnZm9vJywg QVJSQVlbJ2EnLCAnYiddKTsKIEFMVEVSIFRBQkxFIHJlcGxpY2F0aW9uX21ldGFkYXRhIFJF U0VUICh1c2VyX2NhdGFsb2dfdGFibGUpOworQ1JFQVRFIElOREVYIHJlcGxpY2F0aW9uX21l dGFkYXRhX2lkeDIgb24gcmVwbGljYXRpb25fbWV0YWRhdGEocmVsYXRpb24pOwogXGQrIHJl cGxpY2F0aW9uX21ldGFkYXRhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy5yZXBsaWNhdGlvbl9tZXRhZGF0YSIKICAg Q29sdW1uICB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAgICAgICAg ICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgICAgICAgICB8IFN0b3JhZ2UgIHwgU3Rh dHMgdGFyZ2V0IHwgRGVzY3JpcHRpb24gCkBAIC01MDYsMTAgKzUxNSwxOSBAQCBBTFRFUiBU QUJMRSByZXBsaWNhdGlvbl9tZXRhZGF0YSBSRVNFVCAodXNlcl9jYXRhbG9nX3RhYmxlKTsK ICBvcHRpb25zICB8IHRleHRbXSAgfCAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IGV4dGVuZGVkIHwg ICAgICAgICAgICAgIHwgCiBJbmRleGVzOgogICAgICJyZXBsaWNhdGlvbl9tZXRhZGF0YV9w a2V5IiBQUklNQVJZIEtFWSwgYnRyZWUgKGlkKQorICAgICJyZXBsaWNhdGlvbl9tZXRhZGF0 YV9pZHgxIiBidHJlZSAocmVsYXRpb24pCisgICAgInJlcGxpY2F0aW9uX21ldGFkYXRhX2lk eDIiIGJ0cmVlIChyZWxhdGlvbikKKworU0VMRUNUIGJvb2xfb3IoaW5kaXN1c2VyY2F0YWxv ZykgZnJvbSBwZ19pbmRleCB3aGVyZSBpbmRyZWxpZCA9ICdyZXBsaWNhdGlvbl9tZXRhZGF0 YSc6OnJlZ2NsYXNzOworIGJvb2xfb3IgCistLS0tLS0tLS0KKyBmCisoMSByb3cpCiAKIElO U0VSVCBJTlRPIHJlcGxpY2F0aW9uX21ldGFkYXRhKHJlbGF0aW9uLCBvcHRpb25zKQogVkFM VUVTICgnYmFyJywgQVJSQVlbJ2EnLCAnYiddKTsKIEFMVEVSIFRBQkxFIHJlcGxpY2F0aW9u X21ldGFkYXRhIFNFVCAodXNlcl9jYXRhbG9nX3RhYmxlID0gdHJ1ZSk7CitDUkVBVEUgSU5E RVggcmVwbGljYXRpb25fbWV0YWRhdGFfaWR4MyBvbiByZXBsaWNhdGlvbl9tZXRhZGF0YShy ZWxhdGlvbik7CiBcZCsgcmVwbGljYXRpb25fbWV0YWRhdGEKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSAicHVibGljLnJlcGxpY2F0 aW9uX21ldGFkYXRhIgogICBDb2x1bW4gIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8IE51bGxh YmxlIHwgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAgICAgICAgICAg IHwgU3RvcmFnZSAgfCBTdGF0cyB0YXJnZXQgfCBEZXNjcmlwdGlvbiAKQEAgLTUxOSwxNSAr NTM3LDUyIEBAIEFMVEVSIFRBQkxFIHJlcGxpY2F0aW9uX21ldGFkYXRhIFNFVCAodXNlcl9j YXRhbG9nX3RhYmxlID0gdHJ1ZSk7CiAgb3B0aW9ucyAgfCB0ZXh0W10gIHwgICAgICAgICAg IHwgICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCBleHRlbmRlZCB8ICAgICAgICAgICAgICB8IAogSW5kZXhlczoKICAgICAi cmVwbGljYXRpb25fbWV0YWRhdGFfcGtleSIgUFJJTUFSWSBLRVksIGJ0cmVlIChpZCkKKyAg ICAicmVwbGljYXRpb25fbWV0YWRhdGFfaWR4MSIgYnRyZWUgKHJlbGF0aW9uKQorICAgICJy ZXBsaWNhdGlvbl9tZXRhZGF0YV9pZHgyIiBidHJlZSAocmVsYXRpb24pCisgICAgInJlcGxp Y2F0aW9uX21ldGFkYXRhX2lkeDMiIGJ0cmVlIChyZWxhdGlvbikKIE9wdGlvbnM6IHVzZXJf Y2F0YWxvZ190YWJsZT10cnVlCiAKK1NFTEVDVCBib29sX2FuZChpbmRpc3VzZXJjYXRhbG9n KSBmcm9tIHBnX2luZGV4IHdoZXJlIGluZHJlbGlkID0gJ3JlcGxpY2F0aW9uX21ldGFkYXRh Jzo6cmVnY2xhc3M7CisgYm9vbF9hbmQgCistLS0tLS0tLS0tCisgdAorKDEgcm93KQorCiBJ TlNFUlQgSU5UTyByZXBsaWNhdGlvbl9tZXRhZGF0YShyZWxhdGlvbiwgb3B0aW9ucykKIFZB TFVFUyAoJ2JsdWInLCBOVUxMKTsKKy0tIEFsc28gY2hlY2tpbmcgdGhhdCBpbmRpc3VzZXJj YXRhbG9nIGlzIHNldCBjb3JyZWN0bHkgd2hlbiBhIHRhYmxlIGlzIGNyZWF0ZWQgd2l0aCB1 c2VyX2NhdGFsb2dfdGFibGUgPSBmYWxzZQorQ1JFQVRFIFRBQkxFIHJlcGxpY2F0aW9uX21l dGFkYXRhX2ZhbHNlICgKKyAgICBpZCBzZXJpYWwgcHJpbWFyeSBrZXksCisgICAgcmVsYXRp b24gbmFtZSBOT1QgTlVMTCwKKyAgICBvcHRpb25zIHRleHRbXQorKQorV0lUSCAodXNlcl9j YXRhbG9nX3RhYmxlID0gZmFsc2UpCis7CitDUkVBVEUgSU5ERVggcmVwbGljYXRpb25fbWV0 YWRhdGFfZmFsc2VfaWR4MSBvbiByZXBsaWNhdGlvbl9tZXRhZGF0YV9mYWxzZShyZWxhdGlv bik7CitcZCsgcmVwbGljYXRpb25fbWV0YWRhdGFfZmFsc2UKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBUYWJsZSAicHVibGljLnJlcGxpY2F0 aW9uX21ldGFkYXRhX2ZhbHNlIgorICBDb2x1bW4gIHwgIFR5cGUgICB8IENvbGxhdGlvbiB8 IE51bGxhYmxlIHwgICAgICAgICAgICAgICAgICAgICAgICBEZWZhdWx0ICAgICAgICAgICAg ICAgICAgICAgICAgIHwgU3RvcmFnZSAgfCBTdGF0cyB0YXJnZXQgfCBEZXNjcmlwdGlvbiAK Ky0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgaWQgICAgICAgfCBpbnRlZ2Vy IHwgICAgICAgICAgIHwgbm90IG51bGwgfCBuZXh0dmFsKCdyZXBsaWNhdGlvbl9tZXRhZGF0 YV9mYWxzZV9pZF9zZXEnOjpyZWdjbGFzcykgfCBwbGFpbiAgICB8ICAgICAgICAgICAgICB8 IAorIHJlbGF0aW9uIHwgbmFtZSAgICB8ICAgICAgICAgICB8IG5vdCBudWxsIHwgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcGxh aW4gICAgfCAgICAgICAgICAgICAgfCAKKyBvcHRpb25zICB8IHRleHRbXSAgfCAgICAgICAg ICAgfCAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8IGV4dGVuZGVkIHwgICAgICAgICAgICAgIHwgCitJbmRleGVz OgorICAgICJyZXBsaWNhdGlvbl9tZXRhZGF0YV9mYWxzZV9wa2V5IiBQUklNQVJZIEtFWSwg YnRyZWUgKGlkKQorICAgICJyZXBsaWNhdGlvbl9tZXRhZGF0YV9mYWxzZV9pZHgxIiBidHJl ZSAocmVsYXRpb24pCitPcHRpb25zOiB1c2VyX2NhdGFsb2dfdGFibGU9ZmFsc2UKKworU0VM RUNUIGJvb2xfb3IoaW5kaXN1c2VyY2F0YWxvZykgZnJvbSBwZ19pbmRleCB3aGVyZSBpbmRy ZWxpZCA9ICdyZXBsaWNhdGlvbl9tZXRhZGF0YV9mYWxzZSc6OnJlZ2NsYXNzOworIGJvb2xf b3IgCistLS0tLS0tLS0KKyBmCisoMSByb3cpCisKIC0tIG1ha2Ugc3VyZSByZXdyaXRlcyBk b24ndCB3b3JrCiBBTFRFUiBUQUJMRSByZXBsaWNhdGlvbl9tZXRhZGF0YSBBREQgQ09MVU1O IHJld3JpdGVtZW9ybm90IGludDsKIEFMVEVSIFRBQkxFIHJlcGxpY2F0aW9uX21ldGFkYXRh IEFMVEVSIENPTFVNTiByZXdyaXRlbWVvcm5vdCBUWVBFIHRleHQ7CiBFUlJPUjogIGNhbm5v dCByZXdyaXRlIHRhYmxlICJyZXBsaWNhdGlvbl9tZXRhZGF0YSIgdXNlZCBhcyBhIGNhdGFs b2cgdGFibGUKIEFMVEVSIFRBQkxFIHJlcGxpY2F0aW9uX21ldGFkYXRhIFNFVCAodXNlcl9j YXRhbG9nX3RhYmxlID0gZmFsc2UpOworQ1JFQVRFIElOREVYIHJlcGxpY2F0aW9uX21ldGFk YXRhX2lkeDQgb24gcmVwbGljYXRpb25fbWV0YWRhdGEocmVsYXRpb24pOwogXGQrIHJlcGxp Y2F0aW9uX21ldGFkYXRhCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgVGFibGUgInB1YmxpYy5yZXBsaWNhdGlvbl9tZXRhZGF0YSIKICAg ICAgQ29sdW1uICAgICB8ICBUeXBlICAgfCBDb2xsYXRpb24gfCBOdWxsYWJsZSB8ICAgICAg ICAgICAgICAgICAgICAgRGVmYXVsdCAgICAgICAgICAgICAgICAgICAgICB8IFN0b3JhZ2Ug IHwgU3RhdHMgdGFyZ2V0IHwgRGVzY3JpcHRpb24gCkBAIC01MzgsOCArNTkzLDE4IEBAIEFM VEVSIFRBQkxFIHJlcGxpY2F0aW9uX21ldGFkYXRhIFNFVCAodXNlcl9jYXRhbG9nX3RhYmxl ID0gZmFsc2UpOwogIHJld3JpdGVtZW9ybm90IHwgaW50ZWdlciB8ICAgICAgICAgICB8ICAg ICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgcGxhaW4gICAgfCAgICAgICAgICAgICAgfCAKIEluZGV4ZXM6CiAgICAgInJlcGxp Y2F0aW9uX21ldGFkYXRhX3BrZXkiIFBSSU1BUlkgS0VZLCBidHJlZSAoaWQpCisgICAgInJl cGxpY2F0aW9uX21ldGFkYXRhX2lkeDEiIGJ0cmVlIChyZWxhdGlvbikKKyAgICAicmVwbGlj YXRpb25fbWV0YWRhdGFfaWR4MiIgYnRyZWUgKHJlbGF0aW9uKQorICAgICJyZXBsaWNhdGlv bl9tZXRhZGF0YV9pZHgzIiBidHJlZSAocmVsYXRpb24pCisgICAgInJlcGxpY2F0aW9uX21l dGFkYXRhX2lkeDQiIGJ0cmVlIChyZWxhdGlvbikKIE9wdGlvbnM6IHVzZXJfY2F0YWxvZ190 YWJsZT1mYWxzZQogCitTRUxFQ1QgYm9vbF9vcihpbmRpc3VzZXJjYXRhbG9nKSBmcm9tIHBn X2luZGV4IHdoZXJlIGluZHJlbGlkID0gJ3JlcGxpY2F0aW9uX21ldGFkYXRhJzo6cmVnY2xh c3M7CisgYm9vbF9vciAKKy0tLS0tLS0tLQorIGYKKygxIHJvdykKKwogSU5TRVJUIElOVE8g cmVwbGljYXRpb25fbWV0YWRhdGEocmVsYXRpb24sIG9wdGlvbnMpCiBWQUxVRVMgKCd6YXBo b2QnLCBOVUxMKTsKIFNFTEVDVCBkYXRhIEZST00gcGdfbG9naWNhbF9zbG90X2dldF9jaGFu Z2VzKCdyZWdyZXNzaW9uX3Nsb3QnLCBOVUxMLCBOVUxMLCAnaW5jbHVkZS14aWRzJywgJzAn LCAnc2tpcC1lbXB0eS14YWN0cycsICcxJyk7CmRpZmYgLS1naXQgYS9jb250cmliL3Rlc3Rf ZGVjb2Rpbmcvc3FsL2RkbC5zcWwgYi9jb250cmliL3Rlc3RfZGVjb2Rpbmcvc3FsL2RkbC5z cWwKaW5kZXggNGY3NmJlZDcyYy4uNTFiYWFjNWM0ZSAxMDA2NDQKLS0tIGEvY29udHJpYi90 ZXN0X2RlY29kaW5nL3NxbC9kZGwuc3FsCisrKyBiL2NvbnRyaWIvdGVzdF9kZWNvZGluZy9z cWwvZGRsLnNxbApAQCAtMjc2LDI5ICsyNzYsNTIgQEAgQ1JFQVRFIFRBQkxFIHJlcGxpY2F0 aW9uX21ldGFkYXRhICgKICkKIFdJVEggKHVzZXJfY2F0YWxvZ190YWJsZSA9IHRydWUpCiA7 CisKK0NSRUFURSBJTkRFWCByZXBsaWNhdGlvbl9tZXRhZGF0YV9pZHgxIG9uIHJlcGxpY2F0 aW9uX21ldGFkYXRhKHJlbGF0aW9uKTsKKwogXGQrIHJlcGxpY2F0aW9uX21ldGFkYXRhCitT RUxFQ1QgYm9vbF9hbmQoaW5kaXN1c2VyY2F0YWxvZykgZnJvbSBwZ19pbmRleCB3aGVyZSBp bmRyZWxpZCA9ICdyZXBsaWNhdGlvbl9tZXRhZGF0YSc6OnJlZ2NsYXNzOwogCiBJTlNFUlQg SU5UTyByZXBsaWNhdGlvbl9tZXRhZGF0YShyZWxhdGlvbiwgb3B0aW9ucykKIFZBTFVFUyAo J2ZvbycsIEFSUkFZWydhJywgJ2InXSk7CiAKIEFMVEVSIFRBQkxFIHJlcGxpY2F0aW9uX21l dGFkYXRhIFJFU0VUICh1c2VyX2NhdGFsb2dfdGFibGUpOworQ1JFQVRFIElOREVYIHJlcGxp Y2F0aW9uX21ldGFkYXRhX2lkeDIgb24gcmVwbGljYXRpb25fbWV0YWRhdGEocmVsYXRpb24p OwogXGQrIHJlcGxpY2F0aW9uX21ldGFkYXRhCitTRUxFQ1QgYm9vbF9vcihpbmRpc3VzZXJj YXRhbG9nKSBmcm9tIHBnX2luZGV4IHdoZXJlIGluZHJlbGlkID0gJ3JlcGxpY2F0aW9uX21l dGFkYXRhJzo6cmVnY2xhc3M7CiAKIElOU0VSVCBJTlRPIHJlcGxpY2F0aW9uX21ldGFkYXRh KHJlbGF0aW9uLCBvcHRpb25zKQogVkFMVUVTICgnYmFyJywgQVJSQVlbJ2EnLCAnYiddKTsK IAogQUxURVIgVEFCTEUgcmVwbGljYXRpb25fbWV0YWRhdGEgU0VUICh1c2VyX2NhdGFsb2df dGFibGUgPSB0cnVlKTsKK0NSRUFURSBJTkRFWCByZXBsaWNhdGlvbl9tZXRhZGF0YV9pZHgz IG9uIHJlcGxpY2F0aW9uX21ldGFkYXRhKHJlbGF0aW9uKTsKIFxkKyByZXBsaWNhdGlvbl9t ZXRhZGF0YQorU0VMRUNUIGJvb2xfYW5kKGluZGlzdXNlcmNhdGFsb2cpIGZyb20gcGdfaW5k ZXggd2hlcmUgaW5kcmVsaWQgPSAncmVwbGljYXRpb25fbWV0YWRhdGEnOjpyZWdjbGFzczsK IAogSU5TRVJUIElOVE8gcmVwbGljYXRpb25fbWV0YWRhdGEocmVsYXRpb24sIG9wdGlvbnMp CiBWQUxVRVMgKCdibHViJywgTlVMTCk7CiAKKy0tIEFsc28gY2hlY2tpbmcgdGhhdCBpbmRp c3VzZXJjYXRhbG9nIGlzIHNldCBjb3JyZWN0bHkgd2hlbiBhIHRhYmxlIGlzIGNyZWF0ZWQg d2l0aCB1c2VyX2NhdGFsb2dfdGFibGUgPSBmYWxzZQorQ1JFQVRFIFRBQkxFIHJlcGxpY2F0 aW9uX21ldGFkYXRhX2ZhbHNlICgKKyAgICBpZCBzZXJpYWwgcHJpbWFyeSBrZXksCisgICAg cmVsYXRpb24gbmFtZSBOT1QgTlVMTCwKKyAgICBvcHRpb25zIHRleHRbXQorKQorV0lUSCAo dXNlcl9jYXRhbG9nX3RhYmxlID0gZmFsc2UpCis7CisKK0NSRUFURSBJTkRFWCByZXBsaWNh dGlvbl9tZXRhZGF0YV9mYWxzZV9pZHgxIG9uIHJlcGxpY2F0aW9uX21ldGFkYXRhX2ZhbHNl KHJlbGF0aW9uKTsKK1xkKyByZXBsaWNhdGlvbl9tZXRhZGF0YV9mYWxzZQorU0VMRUNUIGJv b2xfb3IoaW5kaXN1c2VyY2F0YWxvZykgZnJvbSBwZ19pbmRleCB3aGVyZSBpbmRyZWxpZCA9 ICdyZXBsaWNhdGlvbl9tZXRhZGF0YV9mYWxzZSc6OnJlZ2NsYXNzOworCiAtLSBtYWtlIHN1 cmUgcmV3cml0ZXMgZG9uJ3Qgd29yawogQUxURVIgVEFCTEUgcmVwbGljYXRpb25fbWV0YWRh dGEgQUREIENPTFVNTiByZXdyaXRlbWVvcm5vdCBpbnQ7CiBBTFRFUiBUQUJMRSByZXBsaWNh dGlvbl9tZXRhZGF0YSBBTFRFUiBDT0xVTU4gcmV3cml0ZW1lb3Jub3QgVFlQRSB0ZXh0Owog CiBBTFRFUiBUQUJMRSByZXBsaWNhdGlvbl9tZXRhZGF0YSBTRVQgKHVzZXJfY2F0YWxvZ190 YWJsZSA9IGZhbHNlKTsKK0NSRUFURSBJTkRFWCByZXBsaWNhdGlvbl9tZXRhZGF0YV9pZHg0 IG9uIHJlcGxpY2F0aW9uX21ldGFkYXRhKHJlbGF0aW9uKTsKIFxkKyByZXBsaWNhdGlvbl9t ZXRhZGF0YQorU0VMRUNUIGJvb2xfb3IoaW5kaXN1c2VyY2F0YWxvZykgZnJvbSBwZ19pbmRl eCB3aGVyZSBpbmRyZWxpZCA9ICdyZXBsaWNhdGlvbl9tZXRhZGF0YSc6OnJlZ2NsYXNzOwog CiBJTlNFUlQgSU5UTyByZXBsaWNhdGlvbl9tZXRhZGF0YShyZWxhdGlvbiwgb3B0aW9ucykK IFZBTFVFUyAoJ3phcGhvZCcsIE5VTEwpOwpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2Nh dGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAppbmRleCA5MzE2Yjgx MWFjLi40NTk1MzliNzYxIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtNDQ0Nyw2ICs0NDQ3LDE3 IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRpb24gY291bnQmZ3Q7 PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAgICA8L3BhcmE+PC9lbnRyeT4K ICAgICAgPC9yb3c+CiAKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9n X3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAg PHN0cnVjdGZpZWxkPmluZGlzdXNlcmNhdGFsb2c8L3N0cnVjdGZpZWxkPiA8dHlwZT5ib29s PC90eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgSWYgdHJ1ZSwg dGhlIGluZGV4IGlzIGxpbmtlZCB0byBhIHRhYmxlIHRoYXQgaXMgZGVjbGFyZWQgYXMgYW4g YWRkaXRpb25hbAorICAgICAgIGNhdGFsb2cgdGFibGUgZm9yIHB1cnBvc2VzIG9mIGxvZ2lj YWwgcmVwbGljYXRpb24gKG1lYW5zIGhhcyA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRldGFi bGUiPjxsaXRlcmFsPnVzZXJfY2F0YWxvZ190YWJsZTwvbGl0ZXJhbD48L2xpbms+KQorICAg ICAgIHNldCB0byB0cnVlLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93Pgor CiAgICAgIDxyb3c+CiAgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+ PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgogICAgICAgIDxzdHJ1Y3RmaWVsZD5p bmRpc3JlcGxpZGVudDwvc3RydWN0ZmllbGQ+IDx0eXBlPmJvb2w8L3R5cGU+CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvY29tbW9uL3JlbG9wdGlvbnMuYyBiL3NyYy9iYWNr ZW5kL2FjY2Vzcy9jb21tb24vcmVsb3B0aW9ucy5jCmluZGV4IDc1YjczNDQ4OTEuLjRiNDFm NWU2OGQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcmVsb3B0aW9u cy5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9jb21tb24vcmVsb3B0aW9ucy5jCkBAIC0x MjAsNyArMTIwLDcgQEAgc3RhdGljIHJlbG9wdF9ib29sIGJvb2xSZWxPcHRzW10gPQogCQkJ UkVMT1BUX0tJTkRfSEVBUCwKIAkJCUFjY2Vzc0V4Y2x1c2l2ZUxvY2sKIAkJfSwKLQkJZmFs c2UKKwkJSEVBUF9ERUZBVUxUX1VTRVJfQ0FUQUxPR19UQUJMRQogCX0sCiAJewogCQl7CmRp ZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0eGxvZy5jIGIvc3JjL2Jh Y2tlbmQvYWNjZXNzL2dpc3QvZ2lzdHhsb2cuYwppbmRleCBjYjVhZmZhM2QyLi42MmZmMTQ5 NDQ2IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9hY2Nlc3MvZ2lzdC9naXN0eGxvZy5jCisr KyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9naXN0L2dpc3R4bG9nLmMKQEAgLTE3Nyw2ICsxNzcs NyBAQCBnaXN0UmVkb0RlbGV0ZVJlY29yZChYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCkKIAln aXN0eGxvZ0RlbGV0ZSAqeGxkYXRhID0gKGdpc3R4bG9nRGVsZXRlICopIFhMb2dSZWNHZXRE YXRhKHJlY29yZCk7CiAJQnVmZmVyCQlidWZmZXI7CiAJUGFnZQkJcGFnZTsKKwlPZmZzZXRO dW1iZXIgKnRvRGVsZXRlID0geGxkYXRhLT5vZmZzZXRzOwogCiAJLyoKIAkgKiBJZiB3ZSBo YXZlIGFueSBjb25mbGljdCBwcm9jZXNzaW5nIHRvIGRvLCBpdCBtdXN0IGhhcHBlbiBiZWZv cmUgd2UKQEAgLTIwMywxNCArMjA0LDcgQEAgZ2lzdFJlZG9EZWxldGVSZWNvcmQoWExvZ1Jl YWRlclN0YXRlICpyZWNvcmQpCiAJewogCQlwYWdlID0gKFBhZ2UpIEJ1ZmZlckdldFBhZ2Uo YnVmZmVyKTsKIAotCQlpZiAoWExvZ1JlY0dldERhdGFMZW4ocmVjb3JkKSA+IFNpemVPZkdp c3R4bG9nRGVsZXRlKQotCQl7Ci0JCQlPZmZzZXROdW1iZXIgKnRvZGVsZXRlOwotCi0JCQl0 b2RlbGV0ZSA9IChPZmZzZXROdW1iZXIgKikgKChjaGFyICopIHhsZGF0YSArIFNpemVPZkdp c3R4bG9nRGVsZXRlKTsKLQotCQkJUGFnZUluZGV4TXVsdGlEZWxldGUocGFnZSwgdG9kZWxl dGUsIHhsZGF0YS0+bnRvZGVsZXRlKTsKLQkJfQorCQlQYWdlSW5kZXhNdWx0aURlbGV0ZShw YWdlLCB0b0RlbGV0ZSwgeGxkYXRhLT5udG9kZWxldGUpOwogCiAJCUdpc3RDbGVhclBhZ2VI YXNHYXJiYWdlKHBhZ2UpOwogCQlHaXN0TWFya1R1cGxlc0RlbGV0ZWQocGFnZSk7CkBAIC02 MDgsNiArNjAyLDcgQEAgZ2lzdFhMb2dQYWdlUmV1c2UoUmVsYXRpb24gcmVsLCBCbG9ja051 bWJlciBibGtubywgRnVsbFRyYW5zYWN0aW9uSWQgZGVsZXRlWGlkKQogCSAqLwogCiAJLyog WExPRyBzdHVmZiAqLworCXhscmVjX3JldXNlLmlzQ2F0YWxvZ1JlbCA9IFJlbGF0aW9uSXNB Y2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcocmVsKTsKIAl4bHJlY19yZXVzZS5sb2NhdG9y ID0gcmVsLT5yZF9sb2NhdG9yOwogCXhscmVjX3JldXNlLmJsb2NrID0gYmxrbm87CiAJeGxy ZWNfcmV1c2Uuc25hcHNob3RDb25mbGljdEhvcml6b24gPSBkZWxldGVYaWQ7CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNoX3hsb2cuYyBiL3NyYy9iYWNrZW5k L2FjY2Vzcy9oYXNoL2hhc2hfeGxvZy5jCmluZGV4IGI0NTI2OTdhMmYuLmI2NjYwM2MyZTcg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hfeGxvZy5jCisrKyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hfeGxvZy5jCkBAIC05ODAsOCArOTgwLDEw IEBAIGhhc2hfeGxvZ192YWN1dW1fb25lX3BhZ2UoWExvZ1JlYWRlclN0YXRlICpyZWNvcmQp CiAJUGFnZQkJcGFnZTsKIAlYTG9nUmVkb0FjdGlvbiBhY3Rpb247CiAJSGFzaFBhZ2VPcGFx dWUgcGFnZW9wYXF1ZTsKKwlPZmZzZXROdW1iZXIgKnRvRGVsZXRlOwogCiAJeGxkYXRhID0g KHhsX2hhc2hfdmFjdXVtX29uZV9wYWdlICopIFhMb2dSZWNHZXREYXRhKHJlY29yZCk7CisJ dG9EZWxldGUgPSB4bGRhdGEtPm9mZnNldHM7CiAKIAkvKgogCSAqIElmIHdlIGhhdmUgYW55 IGNvbmZsaWN0IHByb2Nlc3NpbmcgdG8gZG8sIGl0IG11c3QgaGFwcGVuIGJlZm9yZSB3ZQpA QCAtMTAxMCwxNSArMTAxMiw3IEBAIGhhc2hfeGxvZ192YWN1dW1fb25lX3BhZ2UoWExvZ1Jl YWRlclN0YXRlICpyZWNvcmQpCiAJewogCQlwYWdlID0gKFBhZ2UpIEJ1ZmZlckdldFBhZ2Uo YnVmZmVyKTsKIAotCQlpZiAoWExvZ1JlY0dldERhdGFMZW4ocmVjb3JkKSA+IFNpemVPZkhh c2hWYWN1dW1PbmVQYWdlKQotCQl7Ci0JCQlPZmZzZXROdW1iZXIgKnVudXNlZDsKLQotCQkJ dW51c2VkID0gKE9mZnNldE51bWJlciAqKSAoKGNoYXIgKikgeGxkYXRhICsgU2l6ZU9mSGFz aFZhY3V1bU9uZVBhZ2UpOwotCi0JCQlQYWdlSW5kZXhNdWx0aURlbGV0ZShwYWdlLCB1bnVz ZWQsIHhsZGF0YS0+bnR1cGxlcyk7Ci0JCX0KLQorCQlQYWdlSW5kZXhNdWx0aURlbGV0ZShw YWdlLCB0b0RlbGV0ZSwgeGxkYXRhLT5udHVwbGVzKTsKIAkJLyoKIAkJICogTWFyayB0aGUg cGFnZSBhcyBub3QgY29udGFpbmluZyBhbnkgTFBfREVBRCBpdGVtcy4gU2VlIGNvbW1lbnRz IGluCiAJCSAqIF9oYXNoX3ZhY3V1bV9vbmVfcGFnZSgpIGZvciBkZXRhaWxzLgpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hhc2gvaGFzaGluc2VydC5jIGIvc3JjL2JhY2tl bmQvYWNjZXNzL2hhc2gvaGFzaGluc2VydC5jCmluZGV4IDlhOTIxZTM0MWUuLjA2YzI2NTkw NjggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9oYXNoL2hhc2hpbnNlcnQuYwor KysgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGFzaC9oYXNoaW5zZXJ0LmMKQEAgLTQzMiw2ICs0 MzIsNyBAQCBfaGFzaF92YWN1dW1fb25lX3BhZ2UoUmVsYXRpb24gcmVsLCBSZWxhdGlvbiBo cmVsLCBCdWZmZXIgbWV0YWJ1ZiwgQnVmZmVyIGJ1ZikKIAkJCXhsX2hhc2hfdmFjdXVtX29u ZV9wYWdlIHhscmVjOwogCQkJWExvZ1JlY1B0cglyZWNwdHI7CiAKKwkJCXhscmVjLmlzQ2F0 YWxvZ1JlbCA9IFJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcoaHJlbCk7 CiAJCQl4bHJlYy5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiA9IHNuYXBzaG90Q29uZmxpY3RI b3Jpem9uOwogCQkJeGxyZWMubnR1cGxlcyA9IG5kZWxldGFibGU7CiAKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL2hlYXBhbS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNz L2hlYXAvaGVhcGFtLmMKaW5kZXggNDI3NTZhOWU2ZC4uMWIzNDRlYWNlNyAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvaGVhcGFtLmMKKysrIGIvc3JjL2JhY2tlbmQv YWNjZXNzL2hlYXAvaGVhcGFtLmMKQEAgLTY4MjcsNiArNjgyNyw3IEBAIGhlYXBfZnJlZXpl X2V4ZWN1dGVfcHJlcGFyZWQoUmVsYXRpb24gcmVsLCBCdWZmZXIgYnVmZmVyLAogCQlzbmFw c2hvdENvbmZsaWN0SG9yaXpvbiA9IEZyZWV6ZUxpbWl0OwogCQlUcmFuc2FjdGlvbklkUmV0 cmVhdChzbmFwc2hvdENvbmZsaWN0SG9yaXpvbik7CiAKKwkJeGxyZWMuaXNDYXRhbG9nUmVs ID0gUmVsYXRpb25Jc0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyhyZWwpOwogCQl4bHJl Yy5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiA9IHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uOwog CQl4bHJlYy5ucGxhbnMgPSBucGxhbnM7CiAKQEAgLTgyNDQsNyArODI0NSw3IEBAIGJvdHRv bXVwX3NvcnRfYW5kX3NocmluayhUTV9JbmRleERlbGV0ZU9wICpkZWxzdGF0ZSkKICAqIHVw ZGF0ZSB0aGUgaGVhcCBwYWdlJ3MgTFNOLgogICovCiBYTG9nUmVjUHRyCi1sb2dfaGVhcF92 aXNpYmxlKFJlbEZpbGVMb2NhdG9yIHJsb2NhdG9yLCBCdWZmZXIgaGVhcF9idWZmZXIsIEJ1 ZmZlciB2bV9idWZmZXIsCitsb2dfaGVhcF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVy IGhlYXBfYnVmZmVyLCBCdWZmZXIgdm1fYnVmZmVyLAogCQkJCSBUcmFuc2FjdGlvbklkIHNu YXBzaG90Q29uZmxpY3RIb3Jpem9uLCB1aW50OCB2bWZsYWdzKQogewogCXhsX2hlYXBfdmlz aWJsZSB4bHJlYzsKQEAgLTgyNTYsNiArODI1Nyw4IEBAIGxvZ19oZWFwX3Zpc2libGUoUmVs RmlsZUxvY2F0b3IgcmxvY2F0b3IsIEJ1ZmZlciBoZWFwX2J1ZmZlciwgQnVmZmVyIHZtX2J1 ZmZlciwKIAogCXhscmVjLnNuYXBzaG90Q29uZmxpY3RIb3Jpem9uID0gc25hcHNob3RDb25m bGljdEhvcml6b247CiAJeGxyZWMuZmxhZ3MgPSB2bWZsYWdzOworCWlmIChSZWxhdGlvbklz QWNjZXNzaWJsZUluTG9naWNhbERlY29kaW5nKHJlbCkpCisJCXhscmVjLmZsYWdzIHw9IFZJ U0lCSUxJVFlNQVBfT05fQ0FUQUxPR19BQ0NFU1NJQkxFX0lOX0xPR0lDQUxfREVDT0RJTkc7 CiAJWExvZ0JlZ2luSW5zZXJ0KCk7CiAJWExvZ1JlZ2lzdGVyRGF0YSgoY2hhciAqKSAmeGxy ZWMsIFNpemVPZkhlYXBWaXNpYmxlKTsKIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvYWNj ZXNzL2hlYXAvcHJ1bmVoZWFwLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhl YXAuYwppbmRleCA5MWM1ZjVlOWVmLi4xODRlNTEyM2FmIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC9wcnVuZWhlYXAuYworKysgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC9wcnVuZWhlYXAuYwpAQCAtNDE4LDYgKzQxOCw3IEBAIGhlYXBfcGFnZV9wcnVuZShS ZWxhdGlvbiByZWxhdGlvbiwgQnVmZmVyIGJ1ZmZlciwKIAkJCXhsX2hlYXBfcHJ1bmUgeGxy ZWM7CiAJCQlYTG9nUmVjUHRyCXJlY3B0cjsKIAorCQkJeGxyZWMuaXNDYXRhbG9nUmVsID0g UmVsYXRpb25Jc0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyhyZWxhdGlvbik7CiAJCQl4 bHJlYy5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiA9IHByc3RhdGUuc25hcHNob3RDb25mbGlj dEhvcml6b247CiAJCQl4bHJlYy5ucmVkaXJlY3RlZCA9IHByc3RhdGUubnJlZGlyZWN0ZWQ7 CiAJCQl4bHJlYy5uZGVhZCA9IHByc3RhdGUubmRlYWQ7CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9hY2Nlc3MvaGVhcC92aXNpYmlsaXR5bWFwLmMgYi9zcmMvYmFja2VuZC9hY2Nlc3Mv aGVhcC92aXNpYmlsaXR5bWFwLmMKaW5kZXggNGVkNzAyNzVlMi4uMGJkNzNmNGQ5ZiAxMDA2 NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL2hlYXAvdmlzaWJpbGl0eW1hcC5jCisrKyBi L3NyYy9iYWNrZW5kL2FjY2Vzcy9oZWFwL3Zpc2liaWxpdHltYXAuYwpAQCAtMjgzLDggKzI4 Myw3IEBAIHZpc2liaWxpdHltYXBfc2V0KFJlbGF0aW9uIHJlbCwgQmxvY2tOdW1iZXIgaGVh cEJsaywgQnVmZmVyIGhlYXBCdWYsCiAJCQlpZiAoWExvZ1JlY1B0cklzSW52YWxpZChyZWNw dHIpKQogCQkJewogCQkJCUFzc2VydCghSW5SZWNvdmVyeSk7Ci0JCQkJcmVjcHRyID0gbG9n X2hlYXBfdmlzaWJsZShyZWwtPnJkX2xvY2F0b3IsIGhlYXBCdWYsIHZtQnVmLAotCQkJCQkJ CQkJCSAgY3V0b2ZmX3hpZCwgZmxhZ3MpOworCQkJCXJlY3B0ciA9IGxvZ19oZWFwX3Zpc2li bGUocmVsLCBoZWFwQnVmLCB2bUJ1ZiwgY3V0b2ZmX3hpZCwgZmxhZ3MpOwogCiAJCQkJLyoK IAkJCQkgKiBJZiBkYXRhIGNoZWNrc3VtcyBhcmUgZW5hYmxlZCAob3Igd2FsX2xvZ19oaW50 cz1vbiksIHdlCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvbmJ0cmVlL25idHBh Z2UuYyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0cGFnZS5jCmluZGV4IDY1YWE0 NDg5M2MuLjQyNmE1ZGY0ZmIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRy ZWUvbmJ0cGFnZS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9uYnRyZWUvbmJ0cGFnZS5j CkBAIC04MzYsNiArODM2LDcgQEAgX2J0X2xvZ19yZXVzZV9wYWdlKFJlbGF0aW9uIHJlbCwg QmxvY2tOdW1iZXIgYmxrbm8sIEZ1bGxUcmFuc2FjdGlvbklkIHNhZmV4aWQpCiAJICovCiAK IAkvKiBYTE9HIHN0dWZmICovCisJeGxyZWNfcmV1c2UuaXNDYXRhbG9nUmVsID0gUmVsYXRp b25Jc0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyhyZWwpOwogCXhscmVjX3JldXNlLmxv Y2F0b3IgPSByZWwtPnJkX2xvY2F0b3I7CiAJeGxyZWNfcmV1c2UuYmxvY2sgPSBibGtubzsK IAl4bHJlY19yZXVzZS5zbmFwc2hvdENvbmZsaWN0SG9yaXpvbiA9IHNhZmV4aWQ7CkBAIC0x MzU4LDYgKzEzNTksNyBAQCBfYnRfZGVsaXRlbXNfZGVsZXRlKFJlbGF0aW9uIHJlbCwgQnVm ZmVyIGJ1ZiwKIAkJWExvZ1JlY1B0cglyZWNwdHI7CiAJCXhsX2J0cmVlX2RlbGV0ZSB4bHJl Y19kZWxldGU7CiAKKwkJeGxyZWNfZGVsZXRlLmlzQ2F0YWxvZ1JlbCA9IFJlbGF0aW9uSXNB Y2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2RpbmcocmVsKTsKIAkJeGxyZWNfZGVsZXRlLnNuYXBz aG90Q29uZmxpY3RIb3Jpem9uID0gc25hcHNob3RDb25mbGljdEhvcml6b247CiAJCXhscmVj X2RlbGV0ZS5uZGVsZXRlZCA9IG5kZWxldGFibGU7CiAJCXhscmVjX2RlbGV0ZS5udXBkYXRl ZCA9IG51cGRhdGFibGU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3Mvc3BnaXN0 L3NwZ3ZhY3V1bS5jIGIvc3JjL2JhY2tlbmQvYWNjZXNzL3NwZ2lzdC9zcGd2YWN1dW0uYwpp bmRleCBhZDkwYjIxM2I5Li4yZTYyZTNmYTNiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9h Y2Nlc3Mvc3BnaXN0L3NwZ3ZhY3V1bS5jCisrKyBiL3NyYy9iYWNrZW5kL2FjY2Vzcy9zcGdp c3Qvc3BndmFjdXVtLmMKQEAgLTUwMyw2ICs1MDMsNyBAQCB2YWN1dW1SZWRpcmVjdEFuZFBs YWNlaG9sZGVyKFJlbGF0aW9uIGluZGV4LCBCdWZmZXIgYnVmZmVyKQogCXNwZ3hsb2dWYWN1 dW1SZWRpcmVjdCB4bHJlYzsKIAlHbG9iYWxWaXNTdGF0ZSAqdmlzdGVzdDsKIAorCXhscmVj LmlzQ2F0YWxvZ1JlbCA9IFJlbGF0aW9uSXNBY2Nlc3NpYmxlSW5Mb2dpY2FsRGVjb2Rpbmco aW5kZXgpOwogCXhscmVjLm5Ub1BsYWNlaG9sZGVyID0gMDsKIAl4bHJlYy5zbmFwc2hvdENv bmZsaWN0SG9yaXpvbiA9IEludmFsaWRUcmFuc2FjdGlvbklkOwogCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jYXRhbG9nL2luZGV4LmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL2luZGV4 LmMKaW5kZXggNjFmMWQzOTI2YS4uZjc1NDBmNDEwMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY2F0YWxvZy9pbmRleC5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvaW5kZXguYwpA QCAtMTIzLDcgKzEyMyw4IEBAIHN0YXRpYyB2b2lkIFVwZGF0ZUluZGV4UmVsYXRpb24oT2lk IGluZGV4b2lkLCBPaWQgaGVhcG9pZCwKIAkJCQkJCQkJYm9vbCBpc2V4Y2x1c2lvbiwKIAkJ CQkJCQkJYm9vbCBpbW1lZGlhdGUsCiAJCQkJCQkJCWJvb2wgaXN2YWxpZCwKLQkJCQkJCQkJ Ym9vbCBpc3JlYWR5KTsKKwkJCQkJCQkJYm9vbCBpc3JlYWR5LAorCQkJCQkJCQlib29sIGlz X3VzZXJfY2F0YWxvZyk7CiBzdGF0aWMgdm9pZCBpbmRleF91cGRhdGVfc3RhdHMoUmVsYXRp b24gcmVsLAogCQkJCQkJCSAgIGJvb2wgaGFzaW5kZXgsCiAJCQkJCQkJICAgZG91YmxlIHJl bHR1cGxlcyk7CkBAIC01NDUsNyArNTQ2LDggQEAgVXBkYXRlSW5kZXhSZWxhdGlvbihPaWQg aW5kZXhvaWQsCiAJCQkJCWJvb2wgaXNleGNsdXNpb24sCiAJCQkJCWJvb2wgaW1tZWRpYXRl LAogCQkJCQlib29sIGlzdmFsaWQsCi0JCQkJCWJvb2wgaXNyZWFkeSkKKwkJCQkJYm9vbCBp c3JlYWR5LAorCQkJCQlib29sIGlzX3VzZXJfY2F0YWxvZykKIHsKIAlpbnQydmVjdG9yICpp bmRrZXk7CiAJb2lkdmVjdG9yICAqaW5kY29sbGF0aW9uOwpAQCAtNjIyLDYgKzYyNCw3IEBA IFVwZGF0ZUluZGV4UmVsYXRpb24oT2lkIGluZGV4b2lkLAogCXZhbHVlc1tBbnVtX3BnX2lu ZGV4X2luZGNoZWNreG1pbiAtIDFdID0gQm9vbEdldERhdHVtKGZhbHNlKTsKIAl2YWx1ZXNb QW51bV9wZ19pbmRleF9pbmRpc3JlYWR5IC0gMV0gPSBCb29sR2V0RGF0dW0oaXNyZWFkeSk7 CiAJdmFsdWVzW0FudW1fcGdfaW5kZXhfaW5kaXNsaXZlIC0gMV0gPSBCb29sR2V0RGF0dW0o dHJ1ZSk7CisJdmFsdWVzW0FudW1fcGdfaW5kZXhfaW5kaXN1c2VyY2F0YWxvZyAtIDFdID0g Qm9vbEdldERhdHVtKGlzX3VzZXJfY2F0YWxvZyk7CiAJdmFsdWVzW0FudW1fcGdfaW5kZXhf aW5kaXNyZXBsaWRlbnQgLSAxXSA9IEJvb2xHZXREYXR1bShmYWxzZSk7CiAJdmFsdWVzW0Fu dW1fcGdfaW5kZXhfaW5ka2V5IC0gMV0gPSBQb2ludGVyR2V0RGF0dW0oaW5ka2V5KTsKIAl2 YWx1ZXNbQW51bV9wZ19pbmRleF9pbmRjb2xsYXRpb24gLSAxXSA9IFBvaW50ZXJHZXREYXR1 bShpbmRjb2xsYXRpb24pOwpAQCAtMTAyMCw3ICsxMDIzLDggQEAgaW5kZXhfY3JlYXRlKFJl bGF0aW9uIGhlYXBSZWxhdGlvbiwKIAkJCQkJCWlzcHJpbWFyeSwgaXNfZXhjbHVzaW9uLAog CQkJCQkJKGNvbnN0cl9mbGFncyAmIElOREVYX0NPTlNUUl9DUkVBVEVfREVGRVJSQUJMRSkg PT0gMCwKIAkJCQkJCSFjb25jdXJyZW50ICYmICFpbnZhbGlkLAotCQkJCQkJIWNvbmN1cnJl bnQpOworCQkJCQkJIWNvbmN1cnJlbnQsCisJCQkJCQlSZWxhdGlvbklzVXNlZEFzQ2F0YWxv Z1RhYmxlKGhlYXBSZWxhdGlvbikpOwogCiAJLyoKIAkgKiBSZWdpc3RlciByZWxjYWNoZSBp bnZhbGlkYXRpb24gb24gdGhlIGluZGV4ZXMnIGhlYXAgcmVsYXRpb24sIHRvCmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy90YWJsZWNtZHMuYyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3RhYmxlY21kcy5jCmluZGV4IDU2ZGM5OTU3MTMuLmZkODIwMGU2NzAgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCisrKyBiL3NyYy9iYWNr ZW5kL2NvbW1hbmRzL3RhYmxlY21kcy5jCkBAIC0xMDMsNiArMTAzLDcgQEAKICNpbmNsdWRl ICJ1dGlscy9zeXNjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxzL3RpbWVzdGFtcC5oIgogI2lu Y2x1ZGUgInV0aWxzL3R5cGNhY2hlLmgiCisjaW5jbHVkZSAidXRpbHMvcmVsLmgiCiAKIC8q CiAgKiBPTiBDT01NSVQgYWN0aW9uIGxpc3QKQEAgLTE0MTQ4LDYgKzE0MTQ5LDEwIEBAIEFU RXhlY1NldFJlbE9wdGlvbnMoUmVsYXRpb24gcmVsLCBMaXN0ICpkZWZMaXN0LCBBbHRlclRh YmxlVHlwZSBvcGVyYXRpb24sCiAJRGF0dW0JCXJlcGxfdmFsW05hdHRzX3BnX2NsYXNzXTsK IAlib29sCQlyZXBsX251bGxbTmF0dHNfcGdfY2xhc3NdOwogCWJvb2wJCXJlcGxfcmVwbFtO YXR0c19wZ19jbGFzc107CisJTGlzdENlbGwgICAqY2VsbDsKKwlMaXN0CSAgICpyZWxfb3B0 aW9uczsKKwlib29sCQljYXRhbG9nX3RhYmxlX3ZhbCA9IEhFQVBfREVGQVVMVF9VU0VSX0NB VEFMT0dfVEFCTEU7CisJYm9vbAkJY2F0YWxvZ190YWJsZSA9IGZhbHNlOwogCXN0YXRpYyBj aGFyICp2YWxpZG5zcHNbXSA9IEhFQVBfUkVMT1BUX05BTUVTUEFDRVM7CiAKIAlpZiAoZGVm TGlzdCA9PSBOSUwgJiYgb3BlcmF0aW9uICE9IEFUX1JlcGxhY2VSZWxPcHRpb25zKQpAQCAt MTQyMTQsNyArMTQyMTksNiBAQCBBVEV4ZWNTZXRSZWxPcHRpb25zKFJlbGF0aW9uIHJlbCwg TGlzdCAqZGVmTGlzdCwgQWx0ZXJUYWJsZVR5cGUgb3BlcmF0aW9uLAogCXsKIAkJUXVlcnkJ ICAgKnZpZXdfcXVlcnkgPSBnZXRfdmlld19xdWVyeShyZWwpOwogCQlMaXN0CSAgICp2aWV3 X29wdGlvbnMgPSB1bnRyYW5zZm9ybVJlbE9wdGlvbnMobmV3T3B0aW9ucyk7Ci0JCUxpc3RD ZWxsICAgKmNlbGw7CiAJCWJvb2wJCWNoZWNrX29wdGlvbiA9IGZhbHNlOwogCiAJCWZvcmVh Y2goY2VsbCwgdmlld19vcHRpb25zKQpAQCAtMTQyNDIsNiArMTQyNDYsMjAgQEAgQVRFeGVj U2V0UmVsT3B0aW9ucyhSZWxhdGlvbiByZWwsIExpc3QgKmRlZkxpc3QsIEFsdGVyVGFibGVU eXBlIG9wZXJhdGlvbiwKIAkJfQogCX0KIAorCS8qIElmIHVzZXJfY2F0YWxvZ190YWJsZSBp cyBwYXJ0IG9mIHRoZSBuZXcgb3B0aW9ucywgcmVjb3JkIGl0cyBuZXcgdmFsdWUgKi8KKwly ZWxfb3B0aW9ucyA9IHVudHJhbnNmb3JtUmVsT3B0aW9ucyhuZXdPcHRpb25zKTsKKworCWZv cmVhY2goY2VsbCwgcmVsX29wdGlvbnMpCisJeworCQlEZWZFbGVtICAgICpkZWZlbCA9IChE ZWZFbGVtICopIGxmaXJzdChjZWxsKTsKKworCQlpZiAoc3RyY21wKGRlZmVsLT5kZWZuYW1l LCAidXNlcl9jYXRhbG9nX3RhYmxlIikgPT0gMCkKKwkJeworCQkJY2F0YWxvZ190YWJsZSA9 IHRydWU7CisJCQljYXRhbG9nX3RhYmxlX3ZhbCA9IGRlZkdldEJvb2xlYW4oZGVmZWwpOwor CQl9CisJfQorCiAJLyoKIAkgKiBBbGwgd2UgbmVlZCBkbyBoZXJlIGlzIHVwZGF0ZSB0aGUg cGdfY2xhc3Mgcm93OyB0aGUgbmV3IG9wdGlvbnMgd2lsbCBiZQogCSAqIHByb3BhZ2F0ZWQg aW50byByZWxjYWNoZXMgZHVyaW5nIHBvc3QtY29tbWl0IGNhY2hlIGludmFsLgpAQCAtMTQy NjgsNiArMTQyODYsNDEgQEAgQVRFeGVjU2V0UmVsT3B0aW9ucyhSZWxhdGlvbiByZWwsIExp c3QgKmRlZkxpc3QsIEFsdGVyVGFibGVUeXBlIG9wZXJhdGlvbiwKIAogCVJlbGVhc2VTeXND YWNoZSh0dXBsZSk7CiAKKwkvKiBVcGRhdGUgdGhlIGluZGV4ZXMgaWYgdGhlcmUgaXMgYSBu ZWVkIHRvICovCisJaWYgKGNhdGFsb2dfdGFibGUgfHwgb3BlcmF0aW9uID09IEFUX1Jlc2V0 UmVsT3B0aW9ucykKKwl7CisJCVJlbGF0aW9uCXBnX2luZGV4OworCQlIZWFwVHVwbGUJcGdf aW5kZXhfdHVwbGU7CisJCUZvcm1fcGdfaW5kZXggcGdfaW5kZXhfZm9ybTsKKwkJTGlzdENl bGwgICAqaW5kZXg7CisKKwkJcGdfaW5kZXggPSB0YWJsZV9vcGVuKEluZGV4UmVsYXRpb25J ZCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwkJZm9yZWFjaChpbmRleCwgUmVsYXRpb25HZXRJ bmRleExpc3QocmVsKSkKKwkJeworCQkJT2lkCQkJdGhpc0luZGV4T2lkID0gbGZpcnN0X29p ZChpbmRleCk7CisKKwkJCXBnX2luZGV4X3R1cGxlID0gU2VhcmNoU3lzQ2FjaGVDb3B5MShJ TkRFWFJFTElELAorCQkJCQkJCQkJCQkJIE9iamVjdElkR2V0RGF0dW0odGhpc0luZGV4T2lk KSk7CisJCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQocGdfaW5kZXhfdHVwbGUpKQorCQkJCWVs b2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBpbmRleCAldSIsIHRoaXNJbmRl eE9pZCk7CisJCQlwZ19pbmRleF9mb3JtID0gKEZvcm1fcGdfaW5kZXgpIEdFVFNUUlVDVChw Z19pbmRleF90dXBsZSk7CisKKwkJCS8qIE1vZGlmeSB0aGUgaW5kZXggb25seSBpZiB1c2Vy X2NhdGFsb2dfdGFibGUgZGlmZmVyICovCisJCQlpZiAoY2F0YWxvZ190YWJsZV92YWwgIT0g cGdfaW5kZXhfZm9ybS0+aW5kaXN1c2VyY2F0YWxvZykKKwkJCXsKKwkJCQlwZ19pbmRleF9m b3JtLT5pbmRpc3VzZXJjYXRhbG9nID0gY2F0YWxvZ190YWJsZV92YWw7CisJCQkJQ2F0YWxv Z1R1cGxlVXBkYXRlKHBnX2luZGV4LCAmcGdfaW5kZXhfdHVwbGUtPnRfc2VsZiwgcGdfaW5k ZXhfdHVwbGUpOworCQkJCUludm9rZU9iamVjdFBvc3RBbHRlckhvb2tBcmcoSW5kZXhSZWxh dGlvbklkLCB0aGlzSW5kZXhPaWQsIDAsCisJCQkJCQkJCQkJCSBJbnZhbGlkT2lkLCB0cnVl KTsKKwkJCX0KKworCQkJaGVhcF9mcmVldHVwbGUocGdfaW5kZXhfdHVwbGUpOworCQl9CisK KwkJdGFibGVfY2xvc2UocGdfaW5kZXgsIFJvd0V4Y2x1c2l2ZUxvY2spOworCX0KKwogCS8q IHJlcGVhdCB0aGUgd2hvbGUgZXhlcmNpc2UgZm9yIHRoZSB0b2FzdCB0YWJsZSwgaWYgdGhl cmUncyBvbmUgKi8KIAlpZiAoT2lkSXNWYWxpZChyZWwtPnJkX3JlbC0+cmVsdG9hc3RyZWxp ZCkpCiAJewpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL2dpc3R4bG9nLmggYi9z cmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdHhsb2cuaAppbmRleCAzM2YxYzdlMzFiLi4zYWJmMzk0 NWM3IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdHhsb2cuaAorKysgYi9z cmMvaW5jbHVkZS9hY2Nlc3MvZ2lzdHhsb2cuaApAQCAtNTEsMTMgKzUxLDEzIEBAIHR5cGVk ZWYgc3RydWN0IGdpc3R4bG9nRGVsZXRlCiB7CiAJVHJhbnNhY3Rpb25JZCBzbmFwc2hvdENv bmZsaWN0SG9yaXpvbjsKIAl1aW50MTYJCW50b2RlbGV0ZTsJCS8qIG51bWJlciBvZiBkZWxl dGVkIG9mZnNldHMgKi8KKwlib29sICAgICAgICBpc0NhdGFsb2dSZWw7CiAKLQkvKgotCSAq IEluIHBheWxvYWQgb2YgYmxrIDAgOiB0b2RlbGV0ZSBPZmZzZXROdW1iZXJzCi0JICovCisJ LyogVE9ERUxFVEUgT0ZGU0VUIE5VTUJFUlMgKi8KKwlPZmZzZXROdW1iZXIgb2Zmc2V0c1tG TEVYSUJMRV9BUlJBWV9NRU1CRVJdOwogfSBnaXN0eGxvZ0RlbGV0ZTsKIAotI2RlZmluZSBT aXplT2ZHaXN0eGxvZ0RlbGV0ZQkob2Zmc2V0b2YoZ2lzdHhsb2dEZWxldGUsIG50b2RlbGV0 ZSkgKyBzaXplb2YodWludDE2KSkKKyNkZWZpbmUgU2l6ZU9mR2lzdHhsb2dEZWxldGUgb2Zm c2V0b2YoZ2lzdHhsb2dEZWxldGUsIG9mZnNldHMpCiAKIC8qCiAgKiBCYWNrdXAgQmxrIDA6 IElmIHRoaXMgb3BlcmF0aW9uIGNvbXBsZXRlcyBhIHBhZ2Ugc3BsaXQsIGJ5IGluc2VydGlu ZyBhCkBAIC0xMDAsOSArMTAwLDEwIEBAIHR5cGVkZWYgc3RydWN0IGdpc3R4bG9nUGFnZVJl dXNlCiAJUmVsRmlsZUxvY2F0b3IgbG9jYXRvcjsKIAlCbG9ja051bWJlciBibG9jazsKIAlG dWxsVHJhbnNhY3Rpb25JZCBzbmFwc2hvdENvbmZsaWN0SG9yaXpvbjsKKwlib29sICAgICAg ICBpc0NhdGFsb2dSZWw7CiB9IGdpc3R4bG9nUGFnZVJldXNlOwogCi0jZGVmaW5lIFNpemVP Zkdpc3R4bG9nUGFnZVJldXNlCShvZmZzZXRvZihnaXN0eGxvZ1BhZ2VSZXVzZSwgc25hcHNo b3RDb25mbGljdEhvcml6b24pICsgc2l6ZW9mKEZ1bGxUcmFuc2FjdGlvbklkKSkKKyNkZWZp bmUgU2l6ZU9mR2lzdHhsb2dQYWdlUmV1c2UJKG9mZnNldG9mKGdpc3R4bG9nUGFnZVJldXNl LCBpc0NhdGFsb2dSZWwpICsgc2l6ZW9mKGJvb2wpKQogCiBleHRlcm4gdm9pZCBnaXN0X3Jl ZG8oWExvZ1JlYWRlclN0YXRlICpyZWNvcmQpOwogZXh0ZXJuIHZvaWQgZ2lzdF9kZXNjKFN0 cmluZ0luZm8gYnVmLCBYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCk7CmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9hY2Nlc3MvaGFzaF94bG9nLmggYi9zcmMvaW5jbHVkZS9hY2Nlc3MvaGFz aF94bG9nLmgKaW5kZXggNmRhZmI0YTU5OC4uOGQxNGM0ZjNjNiAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvYWNjZXNzL2hhc2hfeGxvZy5oCisrKyBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9o YXNoX3hsb2cuaApAQCAtMjUyLDEyICsyNTIsMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgeGxfaGFz aF92YWN1dW1fb25lX3BhZ2UKIHsKIAlUcmFuc2FjdGlvbklkIHNuYXBzaG90Q29uZmxpY3RI b3Jpem9uOwogCWludAkJCW50dXBsZXM7Ci0KLQkvKiBUQVJHRVQgT0ZGU0VUIE5VTUJFUlMg Rk9MTE9XIEFUIFRIRSBFTkQgKi8KKwlib29sICAgICAgICBpc0NhdGFsb2dSZWw7CisJLyog VEFSR0VUIE9GRlNFVCBOVU1CRVJTICovCisJT2Zmc2V0TnVtYmVyIG9mZnNldHNbRkxFWElC TEVfQVJSQVlfTUVNQkVSXTsKIH0geGxfaGFzaF92YWN1dW1fb25lX3BhZ2U7CiAKLSNkZWZp bmUgU2l6ZU9mSGFzaFZhY3V1bU9uZVBhZ2UgXAotCShvZmZzZXRvZih4bF9oYXNoX3ZhY3V1 bV9vbmVfcGFnZSwgbnR1cGxlcykgKyBzaXplb2YoaW50KSkKKyNkZWZpbmUgU2l6ZU9mSGFz aFZhY3V1bU9uZVBhZ2Ugb2Zmc2V0b2YoeGxfaGFzaF92YWN1dW1fb25lX3BhZ2UsIG9mZnNl dHMpCiAKIGV4dGVybiB2b2lkIGhhc2hfcmVkbyhYTG9nUmVhZGVyU3RhdGUgKnJlY29yZCk7 CiBleHRlcm4gdm9pZCBoYXNoX2Rlc2MoU3RyaW5nSW5mbyBidWYsIFhMb2dSZWFkZXJTdGF0 ZSAqcmVjb3JkKTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9oZWFwYW1feGxv Zy5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9nLmgKaW5kZXggNWM3NzI5MGVl Yy4uNjhjYWNkNTMyYSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94 bG9nLmgKKysrIGIvc3JjL2luY2x1ZGUvYWNjZXNzL2hlYXBhbV94bG9nLmgKQEAgLTI0NSwx MCArMjQ1LDExIEBAIHR5cGVkZWYgc3RydWN0IHhsX2hlYXBfcHJ1bmUKIAlUcmFuc2FjdGlv bklkIHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uOwogCXVpbnQxNgkJbnJlZGlyZWN0ZWQ7CiAJ dWludDE2CQluZGVhZDsKKwlib29sICAgICAgICBpc0NhdGFsb2dSZWw7CiAJLyogT0ZGU0VU IE5VTUJFUlMgYXJlIGluIHRoZSBibG9jayByZWZlcmVuY2UgMCAqLwogfSB4bF9oZWFwX3By dW5lOwogCi0jZGVmaW5lIFNpemVPZkhlYXBQcnVuZSAob2Zmc2V0b2YoeGxfaGVhcF9wcnVu ZSwgbmRlYWQpICsgc2l6ZW9mKHVpbnQxNikpCisjZGVmaW5lIFNpemVPZkhlYXBQcnVuZSAo b2Zmc2V0b2YoeGxfaGVhcF9wcnVuZSwgaXNDYXRhbG9nUmVsKSArIHNpemVvZihib29sKSkK IAogLyoKICAqIFRoZSB2YWN1dW0gcGFnZSByZWNvcmQgaXMgc2ltaWxhciB0byB0aGUgcHJ1 bmUgcmVjb3JkLCBidXQgY2FuIG9ubHkgbWFyawpAQCAtMzQ0LDEyICszNDUsMTMgQEAgdHlw ZWRlZiBzdHJ1Y3QgeGxfaGVhcF9mcmVlemVfcGFnZQogewogCVRyYW5zYWN0aW9uSWQgc25h cHNob3RDb25mbGljdEhvcml6b247CiAJdWludDE2CQlucGxhbnM7CisJYm9vbCAgICAgICAg aXNDYXRhbG9nUmVsOwogCiAJLyogRlJFRVpFIFBMQU5TIEZPTExPVyAqLwogCS8qIE9GRlNF VCBOVU1CRVIgQVJSQVkgRk9MTE9XUyAqLwogfSB4bF9oZWFwX2ZyZWV6ZV9wYWdlOwogCi0j ZGVmaW5lIFNpemVPZkhlYXBGcmVlemVQYWdlIChvZmZzZXRvZih4bF9oZWFwX2ZyZWV6ZV9w YWdlLCBucGxhbnMpICsgc2l6ZW9mKHVpbnQxNikpCisjZGVmaW5lIFNpemVPZkhlYXBGcmVl emVQYWdlIChvZmZzZXRvZih4bF9oZWFwX2ZyZWV6ZV9wYWdlLCBpc0NhdGFsb2dSZWwpICsg c2l6ZW9mKGJvb2wpKQogCiAvKgogICogVGhpcyBpcyB3aGF0IHdlIG5lZWQgdG8ga25vdyBh Ym91dCBzZXR0aW5nIGEgdmlzaWJpbGl0eSBtYXAgYml0CkBAIC00MDgsNyArNDEwLDcgQEAg ZXh0ZXJuIHZvaWQgaGVhcDJfZGVzYyhTdHJpbmdJbmZvIGJ1ZiwgWExvZ1JlYWRlclN0YXRl ICpyZWNvcmQpOwogZXh0ZXJuIGNvbnN0IGNoYXIgKmhlYXAyX2lkZW50aWZ5KHVpbnQ4IGlu Zm8pOwogZXh0ZXJuIHZvaWQgaGVhcF94bG9nX2xvZ2ljYWxfcmV3cml0ZShYTG9nUmVhZGVy U3RhdGUgKnIpOwogCi1leHRlcm4gWExvZ1JlY1B0ciBsb2dfaGVhcF92aXNpYmxlKFJlbEZp bGVMb2NhdG9yIHJsb2NhdG9yLCBCdWZmZXIgaGVhcF9idWZmZXIsCitleHRlcm4gWExvZ1Jl Y1B0ciBsb2dfaGVhcF92aXNpYmxlKFJlbGF0aW9uIHJlbCwgQnVmZmVyIGhlYXBfYnVmZmVy LAogCQkJCQkJCQkgICBCdWZmZXIgdm1fYnVmZmVyLAogCQkJCQkJCQkgICBUcmFuc2FjdGlv bklkIHNuYXBzaG90Q29uZmxpY3RIb3Jpem9uLAogCQkJCQkJCQkgICB1aW50OCB2bWZsYWdz KTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9uYnR4bG9nLmggYi9zcmMvaW5j bHVkZS9hY2Nlc3MvbmJ0eGxvZy5oCmluZGV4IDNiMmQ5NTljNjkuLmZiZWI5Y2ZiZTAgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2FjY2Vzcy9uYnR4bG9nLmgKKysrIGIvc3JjL2luY2x1 ZGUvYWNjZXNzL25idHhsb2cuaApAQCAtMTg4LDkgKzE4OCwxMCBAQCB0eXBlZGVmIHN0cnVj dCB4bF9idHJlZV9yZXVzZV9wYWdlCiAJUmVsRmlsZUxvY2F0b3IgbG9jYXRvcjsKIAlCbG9j a051bWJlciBibG9jazsKIAlGdWxsVHJhbnNhY3Rpb25JZCBzbmFwc2hvdENvbmZsaWN0SG9y aXpvbjsKKwlib29sICAgICAgICBpc0NhdGFsb2dSZWw7CiB9IHhsX2J0cmVlX3JldXNlX3Bh Z2U7CiAKLSNkZWZpbmUgU2l6ZU9mQnRyZWVSZXVzZVBhZ2UJKHNpemVvZih4bF9idHJlZV9y ZXVzZV9wYWdlKSkKKyNkZWZpbmUgU2l6ZU9mQnRyZWVSZXVzZVBhZ2UJKG9mZnNldG9mKHhs X2J0cmVlX3JldXNlX3BhZ2UsIGlzQ2F0YWxvZ1JlbCkgKyBzaXplb2YoYm9vbCkpCiAKIC8q CiAgKiB4bF9idHJlZV92YWN1dW0gYW5kIHhsX2J0cmVlX2RlbGV0ZSByZWNvcmRzIGRlc2Ny aWJlIGRlbGV0aW9uIG9mIGluZGV4CkBAIC0yMzUsMTMgKzIzNiwxNCBAQCB0eXBlZGVmIHN0 cnVjdCB4bF9idHJlZV9kZWxldGUKIAlUcmFuc2FjdGlvbklkIHNuYXBzaG90Q29uZmxpY3RI b3Jpem9uOwogCXVpbnQxNgkJbmRlbGV0ZWQ7CiAJdWludDE2CQludXBkYXRlZDsKKwlib29s ICAgICAgICBpc0NhdGFsb2dSZWw7CiAKIAkvKiBERUxFVEVEIFRBUkdFVCBPRkZTRVQgTlVN QkVSUyBGT0xMT1cgKi8KIAkvKiBVUERBVEVEIFRBUkdFVCBPRkZTRVQgTlVNQkVSUyBGT0xM T1cgKi8KIAkvKiBVUERBVEVEIFRVUExFUyBNRVRBREFUQSAoeGxfYnRyZWVfdXBkYXRlKSBB UlJBWSBGT0xMT1dTICovCiB9IHhsX2J0cmVlX2RlbGV0ZTsKIAotI2RlZmluZSBTaXplT2ZC dHJlZURlbGV0ZQkob2Zmc2V0b2YoeGxfYnRyZWVfZGVsZXRlLCBudXBkYXRlZCkgKyBzaXpl b2YodWludDE2KSkKKyNkZWZpbmUgU2l6ZU9mQnRyZWVEZWxldGUJKG9mZnNldG9mKHhsX2J0 cmVlX2RlbGV0ZSwgaXNDYXRhbG9nUmVsKSArIHNpemVvZihib29sKSkKIAogLyoKICAqIFRo ZSBvZmZzZXRzIHRoYXQgYXBwZWFyIGluIHhsX2J0cmVlX3VwZGF0ZSBtZXRhZGF0YSBhcmUg b2Zmc2V0cyBpbnRvIHRoZQpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvYWNjZXNzL3NwZ3hs b2cuaCBiL3NyYy9pbmNsdWRlL2FjY2Vzcy9zcGd4bG9nLmgKaW5kZXggODIzMzJjYjY5NC4u MmVjMDkzMWExMiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvYWNjZXNzL3NwZ3hsb2cuaAor KysgYi9zcmMvaW5jbHVkZS9hY2Nlc3Mvc3BneGxvZy5oCkBAIC0yNDAsNiArMjQwLDcgQEAg dHlwZWRlZiBzdHJ1Y3Qgc3BneGxvZ1ZhY3V1bVJlZGlyZWN0CiAJdWludDE2CQluVG9QbGFj ZWhvbGRlcjsgLyogbnVtYmVyIG9mIHJlZGlyZWN0cyB0byBtYWtlIHBsYWNlaG9sZGVycyAq LwogCU9mZnNldE51bWJlciBmaXJzdFBsYWNlaG9sZGVyOwkvKiBmaXJzdCBwbGFjZWhvbGRl ciB0dXBsZSB0byByZW1vdmUgKi8KIAlUcmFuc2FjdGlvbklkIHNuYXBzaG90Q29uZmxpY3RI b3Jpem9uOwkvKiBuZXdlc3QgWElEIG9mIHJlbW92ZWQgcmVkaXJlY3RzICovCisJYm9vbCAg ICAgICAgaXNDYXRhbG9nUmVsOwogCiAJLyogb2Zmc2V0cyBvZiByZWRpcmVjdCB0dXBsZXMg dG8gbWFrZSBwbGFjZWhvbGRlcnMgZm9sbG93ICovCiAJT2Zmc2V0TnVtYmVyIG9mZnNldHNb RkxFWElCTEVfQVJSQVlfTUVNQkVSXTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2FjY2Vz cy92aXNpYmlsaXR5bWFwZGVmcy5oIGIvc3JjL2luY2x1ZGUvYWNjZXNzL3Zpc2liaWxpdHlt YXBkZWZzLmgKaW5kZXggMjgwM2VmNWMwNy4uNjAwNWRmMzI3OCAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvYWNjZXNzL3Zpc2liaWxpdHltYXBkZWZzLmgKKysrIGIvc3JjL2luY2x1ZGUv YWNjZXNzL3Zpc2liaWxpdHltYXBkZWZzLmgKQEAgLTE3LDkgKzE3LDEwIEBACiAjZGVmaW5l IEJJVFNfUEVSX0hFQVBCTE9DSyAyCiAKIC8qIEZsYWdzIGZvciBiaXQgbWFwICovCi0jZGVm aW5lIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUJMHgwMQotI2RlZmluZSBWSVNJQklMSVRZ TUFQX0FMTF9GUk9aRU4JMHgwMgotI2RlZmluZSBWSVNJQklMSVRZTUFQX1ZBTElEX0JJVFMJ MHgwMwkvKiBPUiBvZiBhbGwgdmFsaWQgdmlzaWJpbGl0eW1hcAotCQkJCQkJCQkJCQkgKiBm bGFncyBiaXRzICovCisjZGVmaW5lIFZJU0lCSUxJVFlNQVBfQUxMX1ZJU0lCTEUJCQkJCQkJ CTB4MDEKKyNkZWZpbmUgVklTSUJJTElUWU1BUF9BTExfRlJPWkVOCQkJCQkJCQkweDAyCisj ZGVmaW5lIFZJU0lCSUxJVFlNQVBfVkFMSURfQklUUwkJCQkJCQkJMHgwMwkvKiBPUiBvZiBh bGwgdmFsaWQgdmlzaWJpbGl0eW1hcAorCQkJCQkJCQkJCQkJCQkJCQkJICogZmxhZ3MgYml0 cyAqLworI2RlZmluZSBWSVNJQklMSVRZTUFQX09OX0NBVEFMT0dfQUNDRVNTSUJMRV9JTl9M T0dJQ0FMX0RFQ09ESU5HCTB4MDQKIAogI2VuZGlmCQkJCQkJCS8qIFZJU0lCSUxJVFlNQVBE RUZTX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfaW5kZXguaCBi L3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfaW5kZXguaAppbmRleCBmODUzODQ2ZWUxLi5kZDE2 NDMxMzc4IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2luZGV4LmgKKysr IGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19pbmRleC5oCkBAIC00Myw2ICs0Myw4IEBAIENB VEFMT0cocGdfaW5kZXgsMjYxMCxJbmRleFJlbGF0aW9uSWQpIEJLSV9TQ0hFTUFfTUFDUk8K IAlib29sCQlpbmRjaGVja3htaW47CS8qIG11c3Qgd2Ugd2FpdCBmb3IgeG1pbiB0byBiZSBv bGQ/ICovCiAJYm9vbAkJaW5kaXNyZWFkeTsJCS8qIGlzIHRoaXMgaW5kZXggcmVhZHkgZm9y IGluc2VydHM/ICovCiAJYm9vbAkJaW5kaXNsaXZlOwkJLyogaXMgdGhpcyBpbmRleCBhbGl2 ZSBhdCBhbGw/ICovCisJYm9vbAkJaW5kaXN1c2VyY2F0YWxvZzsJLyogaXMgdGhpcyBpbmRl eCBsaW5rZWQgdG8gYSB1c2VyIGNhdGFsb2cKKwkJCQkJCQkJCSAqIHJlbGF0aW9uPyAqLwog CWJvb2wJCWluZGlzcmVwbGlkZW50OyAvKiBpcyB0aGlzIGluZGV4IHRoZSBpZGVudGl0eSBm b3IgcmVwbGljYXRpb24/ICovCiAKIAkvKiB2YXJpYWJsZS1sZW5ndGggZmllbGRzIHN0YXJ0 IGhlcmUsIGJ1dCB3ZSBhbGxvdyBkaXJlY3QgYWNjZXNzIHRvIGluZGtleSAqLwpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvcmVsLmggYi9zcmMvaW5jbHVkZS91dGlscy9yZWwu aAppbmRleCBmMzgzYTJmY2E5Li41ZDQxZWY2NTA1IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS91dGlscy9yZWwuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9yZWwuaApAQCAtMjcsNiAr MjcsNyBAQAogI2luY2x1ZGUgInN0b3JhZ2Uvc21nci5oIgogI2luY2x1ZGUgInV0aWxzL3Jl bGNhY2hlLmgiCiAjaW5jbHVkZSAidXRpbHMvcmVsdHJpZ2dlci5oIgorI2luY2x1ZGUgImNh dGFsb2cvY2F0YWxvZy5oIgogCiAKIC8qCkBAIC0zNDMsNiArMzQ0LDcgQEAgdHlwZWRlZiBz dHJ1Y3QgU3RkUmRPcHRpb25zCiAKICNkZWZpbmUgSEVBUF9NSU5fRklMTEZBQ1RPUgkJCTEw CiAjZGVmaW5lIEhFQVBfREVGQVVMVF9GSUxMRkFDVE9SCQkxMDAKKyNkZWZpbmUgSEVBUF9E RUZBVUxUX1VTRVJfQ0FUQUxPR19UQUJMRQkJZmFsc2UKIAogLyoKICAqIFJlbGF0aW9uR2V0 VG9hc3RUdXBsZVRhcmdldApAQCAtMzg1LDYgKzM4NywxNSBAQCB0eXBlZGVmIHN0cnVjdCBT dGRSZE9wdGlvbnMKIAkgIChyZWxhdGlvbiktPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5E X01BVFZJRVcpID8gXAogCSAoKFN0ZFJkT3B0aW9ucyAqKSAocmVsYXRpb24pLT5yZF9vcHRp b25zKS0+dXNlcl9jYXRhbG9nX3RhYmxlIDogZmFsc2UpCiAKKy8qCisgKiBJbmRleElzTGlu a2VkVG9Vc2VyQ2F0YWxvZ1RhYmxlCisgKgkJUmV0dXJucyB3aGV0aGVyIHRoZSByZWxhdGlv biBzaG91bGQgYmUgdHJlYXRlZCBhcyBhbiBpbmRleCBsaW5rZWQgdG8KKyAqCQlhIHVzZXIg Y2F0YWxvZyB0YWJsZSBmcm9tIHRoZSBwb3Ygb2YgbG9naWNhbCBkZWNvZGluZy4KKyAqLwor I2RlZmluZSBJbmRleElzTGlua2VkVG9Vc2VyQ2F0YWxvZ1RhYmxlKHJlbGF0aW9uKQlcCisJ KChyZWxhdGlvbiktPnJkX3JlbC0+cmVsa2luZCA9PSBSRUxLSU5EX0lOREVYICYmIFwKKwkg KHJlbGF0aW9uKS0+cmRfaW5kZXgtPmluZGlzdXNlcmNhdGFsb2cpCisKIC8qCiAgKiBSZWxh dGlvbkdldFBhcmFsbGVsV29ya2VycwogICoJCVJldHVybnMgdGhlIHJlbGF0aW9uJ3MgcGFy YWxsZWxfd29ya2VycyByZWxvcHRpb24gc2V0dGluZy4KQEAgLTY4Miw3ICs2OTMsOCBAQCBS ZWxhdGlvbkNsb3NlU21ncihSZWxhdGlvbiByZWxhdGlvbikKICNkZWZpbmUgUmVsYXRpb25J c0FjY2Vzc2libGVJbkxvZ2ljYWxEZWNvZGluZyhyZWxhdGlvbikgXAogCShYTG9nTG9naWNh bEluZm9BY3RpdmUoKSAmJiBcCiAJIFJlbGF0aW9uTmVlZHNXQUwocmVsYXRpb24pICYmIFwK LQkgKElzQ2F0YWxvZ1JlbGF0aW9uKHJlbGF0aW9uKSB8fCBSZWxhdGlvbklzVXNlZEFzQ2F0 YWxvZ1RhYmxlKHJlbGF0aW9uKSkpCisJIChJc0NhdGFsb2dSZWxhdGlvbihyZWxhdGlvbikg fHwgUmVsYXRpb25Jc1VzZWRBc0NhdGFsb2dUYWJsZShyZWxhdGlvbikgfHwgXAorCSAgSW5k ZXhJc0xpbmtlZFRvVXNlckNhdGFsb2dUYWJsZShyZWxhdGlvbikpKQogCiAvKgogICogUmVs YXRpb25Jc0xvZ2ljYWxseUxvZ2dlZAotLSAKMi4zNC4xCgo= --------------33idPHuZjSjOk9JsByk0nzBq--