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 1oqcXY-00006x-5n for pgsql-hackers@arkaria.postgresql.org; Thu, 03 Nov 2022 15:54:00 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1oqcXX-0004pc-0U for pgsql-hackers@arkaria.postgresql.org; Thu, 03 Nov 2022 15:53:59 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1oqcXW-0004pM-7z for pgsql-hackers@lists.postgresql.org; Thu, 03 Nov 2022 15:53:58 +0000 Received: from mail-qv1-xf32.google.com ([2607:f8b0:4864:20::f32]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1oqcXR-0007pS-5m for pgsql-hackers@lists.postgresql.org; Thu, 03 Nov 2022 15:53:57 +0000 Received: by mail-qv1-xf32.google.com with SMTP id x15so1418076qvp.1 for ; Thu, 03 Nov 2022 08:53:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=crunchydata.com; s=google; h=user-agent:mime-version:date:organization:references:in-reply-to:cc :to:reply-to:from:subject:message-id:from:to:cc:subject:date :message-id:reply-to; bh=zc25TwU1oebegVcQb0m6/QUPr5ESHQ65w7HwhGQ+Uh8=; b=SSLQBhxap6YIBeZOrFRiKAy4ipOACWbanT8RWk5weHKJYWLW2USL/cqToqU2bxNYfv 449Xl4Ri7GUBV0yuEoMaY7Yn0q77TXiedervspJrVzK1AGePBWcCBMU8JjnHxhDmrEre wb2umLxZz+UpZJsaMvHaBhIuTqG/w+cuCfmdlsYtGAMxKOxx/rmBHXXsbt1hLCERtMa8 hgSppx9yhnxxptmRWBBhaEEu3Ff8MSC81CZCCsM+kawjIrUm/SiNsdFIa3VCMv44yMiV 5x3vdXj5bD0mYoXMw2oapkvZbCLMWV4we4lHP7J0Bazzi64szqYclm4pVTY3eUGD55Et CdtA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=user-agent:mime-version:date:organization:references:in-reply-to:cc :to:reply-to:from:subject:message-id:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=zc25TwU1oebegVcQb0m6/QUPr5ESHQ65w7HwhGQ+Uh8=; b=YlR8gV1E6FQhcqbItoTZfatPKT92lABradI9y9Igw3ei2X9DFOEI1wi5YkqJTMSpny KieYwfFA6V2uKh2N0foT+/uYkt14ALlfIXqgNx4G14jH2AR2Yva1bINs1zt04izO5Wmv kNSzd7vdYPM/3X+f690Dlt1rpFYULxxjCGTHa7OOBla71/FGZubqWAdEgvBrv2Qv/wIa 7+QqG8o9qvQuHdMxfIhvqHkvpZiNdNO/J28Z61iSjMDj2P9Vn4d+8ykSfPtkFoc9UV8v +9LrlXoUnYxKoR1uMIGjVfX3kfewLjH39DyvktseLLnv2woIDKHRa1fR1Cj7Xut1cFSz IZQQ== X-Gm-Message-State: ACrzQf1WWBG+i/cbRlRsyeCDip4h+3M9efNP8fUigU/G2gdKLErV51UK 6NF+/6BpnGc9xucWX3mJtc1Z3A== X-Google-Smtp-Source: AMsMyM7XDUn1/wUmfADyitn5WORSYWg5tiF9DVh9nm8enhPt2RxjWfedc+ESf5tUFELX6mWLVSeSDw== X-Received: by 2002:a05:6214:c8b:b0:4bc:182:e614 with SMTP id r11-20020a0562140c8b00b004bc0182e614mr18753525qvr.97.1667490832008; Thu, 03 Nov 2022 08:53:52 -0700 (PDT) Received: from raker.lan (cpe-24-163-67-44.nc.res.rr.com. [24.163.67.44]) by smtp.gmail.com with ESMTPSA id f22-20020ac84996000000b0039953dcc480sm710282qtq.88.2022.11.03.08.53.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 03 Nov 2022 08:53:51 -0700 (PDT) Message-ID: Subject: Re: Add the ability to limit the amount of memory that can be allocated to backends. From: Reid Thompson Reply-To: reid.thompson@crunchydata.com To: Arne Roland , "pgsql-hackers@lists.postgresql.org" Cc: reid.thompson@crunchydata.com, Justin Pryzby , Ibrar Ahmed In-Reply-To: References: ,<9e7969b9f6cbd2494705c7a5a21e7de0171727bb.camel@crunchydata.com> Organization: Crunchy Data Content-Type: multipart/mixed; boundary="=-3Mcu7T4hj18yxgSwHRmk" Date: Thu, 03 Nov 2022 11:48:50 -0400 MIME-Version: 1.0 User-Agent: Evolution 3.45.1 Compiled: 2022-06-07 10:22:05 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-3Mcu7T4hj18yxgSwHRmk Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Tue, 2022-10-25 at 11:49 -0400, Reid Thompson wrote: > Hi Arne, >=20 > On Mon, 2022-10-24 at 15:27 +0000, Arne Roland wrote: > > Hello Reid, > >=20 > > could you rebase the patch again? It doesn't apply=C2=A0currently > > (http://cfbot.cputube.org/patch_40_3867.log). Thanks! >=20 > rebased patches attached. Rebased to current. Add a couple changes per conversation with D Christensen (include units in field name, group field with backend_xid and backend_xmin fields in pg_stat_activity view, rather than between query_id and query) --=20 Reid Thompson Senior Software Engineer Crunchy Data, Inc. reid.thompson@crunchydata.com www.crunchydata.com --=-3Mcu7T4hj18yxgSwHRmk Content-Disposition: attachment; filename*0=0002-Add-the-ability-to-limit-the-amount-of-memory-that-c.pat; filename*1=ch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0002-Add-the-ability-to-limit-the-amount-of-memory-that-c.patch"; charset="UTF-8" RnJvbSA5Y2YzNWM3OWJlMTA3ZmVlZGI2M2Y2ZjY3NGFjOWQyMzQ3ZDE4NzVlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSZWlkIFRob21wc29uIDxqcmVpZHRob21wc29uQG5jLnJyLmNv bT4KRGF0ZTogU2F0LCA0IEp1biAyMDIyIDIyOjIzOjU5IC0wNDAwClN1YmplY3Q6IFtQQVRDSCAy LzJdIEFkZCB0aGUgYWJpbGl0eSB0byBsaW1pdCB0aGUgYW1vdW50IG9mIG1lbW9yeSB0aGF0IGNh biBiZQogYWxsb2NhdGVkIHRvIGJhY2tlbmRzLgoKVGhpcyBidWlsZHMgb24gdGhlIHdvcmsgdGhh dCBhZGRzIGJhY2tlbmQgbWVtb3J5IGFsbG9jYXRlZCB0byBwZ19zdGF0X2FjdGl2aXR5LgoKQWRk IEdVQyB2YXJpYWJsZSBtYXhfdG90YWxfYmFja2VuZF9tZW1vcnkuCgpTcGVjaWZpZXMgYSBsaW1p dCB0byB0aGUgYW1vdW50IG9mIG1lbW9yeSAoaW4gTUIpIHRoYXQgbWF5IGJlIGFsbG9jYXRlZCB0 bwpiYWNrZW5kcyBpbiB0b3RhbCAoaS5lLiB0aGlzIGlzIG5vdCBhIHBlciB1c2VyIG9yIHBlciBi YWNrZW5kIGxpbWl0KS4gSWYgdW5zZXQsCm9yIHNldCB0byAwIGl0IGlzIGRpc2FibGVkLiBJdCBp cyBpbnRlbmRlZCBhcyBhIHJlc291cmNlIHRvIGhlbHAgYXZvaWQgdGhlIE9PTQpraWxsZXIgb24g TElOVVggYW5kIG1hbmFnZSByZXNvdXJjZXMgaW4gZ2VuZXJhbC4gQSBiYWNrZW5kIHJlcXVlc3Qg dGhhdCB3b3VsZApwdXNoIHRoZSB0b3RhbCBvdmVyIHRoZSBsaW1pdCB3aWxsIGJlIGRlbmllZCB3 aXRoIGFuIG91dCBvZiBtZW1vcnkgZXJyb3IgY2F1c2luZwp0aGF0IGJhY2tlbmQncyBjdXJyZW50 IHF1ZXJ5L3RyYW5zYWN0aW9uIHRvIGZhaWwuIER1ZSB0byB0aGUgZHluYW1pYyBuYXR1cmUgb2YK bWVtb3J5IGFsbG9jYXRpb25zLCB0aGlzIGxpbWl0IGlzIG5vdCBleGFjdC4gSWYgd2l0aGluIDEu NU1CIG9mIHRoZSBsaW1pdCBhbmQKdHdvIGJhY2tlbmRzIHJlcXVlc3QgMU1CIGVhY2ggYXQgdGhl IHNhbWUgdGltZSBib3RoIG1heSBiZSBhbGxvY2F0ZWQsIGFuZCBleGNlZWQKdGhlIGxpbWl0LiBG dXJ0aGVyIHJlcXVlc3RzIHdpbGwgbm90IGJlIGFsbG9jYXRlZCB1bnRpbCBkcm9wcGluZyBiZWxv dyB0aGUKbGltaXQuIEtlZXAgdGhpcyBpbiBtaW5kIHdoZW4gc2V0dGluZyB0aGlzIHZhbHVlLiBU aGlzIGxpbWl0IGRvZXMgbm90IGFmZmVjdAphdXhpbGlhcnkgYmFja2VuZCBwcm9jZXNzZXMuIEJh Y2tlbmQgbWVtb3J5IGFsbG9jYXRpb25zIGFyZSBkaXNwbGF5ZWQgaW4gdGhlCnBnX3N0YXRfYWN0 aXZpdHkgdmlldy4KLS0tCiBkb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgICAgICAgICAgICAgICAg ICAgICAgfCAgMjYgKysrKwogc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvZHNtX2ltcGwuYyAgICAg ICAgICAgIHwgIDEyICsrCiBzcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9iYWNrZW5kX3N0YXR1 cy5jICAgfCAxMTEgKysrKysrKysrKysrKysrKystCiBzcmMvYmFja2VuZC91dGlscy9taXNjL2d1 Y190YWJsZXMuYyAgICAgICAgICAgfCAgMTEgKysKIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9z dGdyZXNxbC5jb25mLnNhbXBsZSB8ICAgMyArCiBzcmMvYmFja2VuZC91dGlscy9tbWdyL2FzZXQu YyAgICAgICAgICAgICAgICAgfCAgMTcgKysrCiBzcmMvYmFja2VuZC91dGlscy9tbWdyL2dlbmVy YXRpb24uYyAgICAgICAgICAgfCAgIDkgKysKIHNyYy9iYWNrZW5kL3V0aWxzL21tZ3Ivc2xhYi5j ICAgICAgICAgICAgICAgICB8ICAgOCArKwogc3JjL2luY2x1ZGUvdXRpbHMvYmFja2VuZF9zdGF0 dXMuaCAgICAgICAgICAgIHwgICAyICsKIDkgZmlsZXMgY2hhbmdlZCwgMTk4IGluc2VydGlvbnMo KyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwg Yi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKaW5kZXggNTU5ZWI4OThhOS4uNTc2Mjk5OWZhNSAx MDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9j b25maWcuc2dtbApAQCAtMjA3OSw2ICsyMDc5LDMyIEBAIGluY2x1ZGVfZGlyICdjb25mLmQnCiAg ICAgICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgICA8dmFybGlzdGVu dHJ5IGlkPSJndWMtbWF4LXRvdGFsLWJhY2tlbmQtbWVtb3J5IiB4cmVmbGFiZWw9Im1heF90b3Rh bF9iYWNrZW5kX21lbW9yeSI+CisgICAgICA8dGVybT48dmFybmFtZT5tYXhfdG90YWxfYmFja2Vu ZF9tZW1vcnk8L3Zhcm5hbWU+ICg8dHlwZT5pbnRlZ2VyPC90eXBlPikKKyAgICAgIDxpbmRleHRl cm0+CisgICAgICAgPHByaW1hcnk+PHZhcm5hbWU+bWF4X3RvdGFsX2JhY2tlbmRfbWVtb3J5PC92 YXJuYW1lPiBjb25maWd1cmF0aW9uIHBhcmFtZXRlcjwvcHJpbWFyeT4KKyAgICAgIDwvaW5kZXh0 ZXJtPgorICAgICAgPC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAg ICAgICBTcGVjaWZpZXMgYSBsaW1pdCB0byB0aGUgYW1vdW50IG9mIG1lbW9yeSAoTUIpIHRoYXQg bWF5IGJlIGFsbG9jYXRlZCB0bworICAgICAgICBiYWNrZW5kcyBpbiB0b3RhbCAoaS5lLiB0aGlz IGlzIG5vdCBhIHBlciB1c2VyIG9yIHBlciBiYWNrZW5kIGxpbWl0KS4KKyAgICAgICAgSWYgdW5z ZXQsIG9yIHNldCB0byAwIGl0IGlzIGRpc2FibGVkLiAgQSBiYWNrZW5kIHJlcXVlc3QgdGhhdCB3 b3VsZAorICAgICAgICBwdXNoIHRoZSB0b3RhbCBvdmVyIHRoZSBsaW1pdCB3aWxsIGJlIGRlbmll ZCB3aXRoIGFuIG91dCBvZiBtZW1vcnkKKyAgICAgICAgZXJyb3IgY2F1c2luZyB0aGF0IGJhY2tl bmQncyBjdXJyZW50IHF1ZXJ5L3RyYW5zYWN0aW9uIHRvIGZhaWwuIER1ZSB0bworICAgICAgICB0 aGUgZHluYW1pYyBuYXR1cmUgb2YgbWVtb3J5IGFsbG9jYXRpb25zLCB0aGlzIGxpbWl0IGlzIG5v dCBleGFjdC4gSWYKKyAgICAgICAgd2l0aGluIDEuNU1CIG9mIHRoZSBsaW1pdCBhbmQgdHdvIGJh Y2tlbmRzIHJlcXVlc3QgMU1CIGVhY2ggYXQgdGhlIHNhbWUKKyAgICAgICAgdGltZSBib3RoIG1h eSBiZSBhbGxvY2F0ZWQsIGFuZCBleGNlZWQgdGhlIGxpbWl0LiBGdXJ0aGVyIHJlcXVlc3RzIHdp bGwKKyAgICAgICAgbm90IGJlIGFsbG9jYXRlZCB1bnRpbCBkcm9wcGluZyBiZWxvdyB0aGUgbGlt aXQuIEtlZXAgdGhpcyBpbiBtaW5kIHdoZW4KKyAgICAgICAgc2V0dGluZyB0aGlzIHZhbHVlLiBU aGlzIGxpbWl0IGRvZXMgbm90IGFmZmVjdCBhdXhpbGlhcnkgYmFja2VuZAorICAgICAgICBwcm9j ZXNzZXMgPHhyZWYgbGlua2VuZD0iZ2xvc3NhcnktYXV4aWxpYXJ5LXByb2MiLz4gLiBCYWNrZW5k IG1lbW9yeQorICAgICAgICBhbGxvY2F0aW9ucyAoPHZhcm5hbWU+YmFja2VuZF9hbGxvY2F0ZWRf Ynl0ZXM8L3Zhcm5hbWU+KSBhcmUgZGlzcGxheWVkIGluCisgICAgICAgIHRoZSA8bGluayBsaW5r ZW5kPSJtb25pdG9yaW5nLXBnLXN0YXQtYWN0aXZpdHktdmlldyI+PHN0cnVjdG5hbWU+cGdfc3Rh dF9hY3Rpdml0eTwvc3RydWN0bmFtZT48L2xpbms+CisgICAgICAgIHZpZXcuCisgICAgICAgPC9w YXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgPC92 YXJpYWJsZWxpc3Q+CiAgICAgIDwvc2VjdDI+CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0 b3JhZ2UvaXBjL2RzbV9pbXBsLmMgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9kc21faW1wbC5j CmluZGV4IGVhZTAzMTU5YzMuLmFhZjc0ZTk0ODYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3N0 b3JhZ2UvaXBjL2RzbV9pbXBsLmMKKysrIGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9pcGMvZHNtX2lt cGwuYwpAQCAtMjU0LDYgKzI1NCwxMCBAQCBkc21faW1wbF9wb3NpeChkc21fb3Agb3AsIGRzbV9o YW5kbGUgaGFuZGxlLCBTaXplIHJlcXVlc3Rfc2l6ZSwKIAkJcmV0dXJuIHRydWU7CiAJfQogCisJ LyogRG8gbm90IGV4Y2VlZCBtYXhpbXVtIGFsbG93ZWQgbWVtb3J5IGFsbG9jYXRpb24gKi8KKwlp ZiAob3AgPT0gRFNNX09QX0NSRUFURSAmJiBleGNlZWRzX21heF90b3RhbF9ia2VuZF9tZW0ocmVx dWVzdF9zaXplKSkKKwkJcmV0dXJuIGZhbHNlOworCiAJLyoKIAkgKiBDcmVhdGUgbmV3IHNlZ21l bnQgb3Igb3BlbiBhbiBleGlzdGluZyBvbmUgZm9yIGF0dGFjaC4KIAkgKgpAQCAtNTI1LDYgKzUy OSwxMCBAQCBkc21faW1wbF9zeXN2KGRzbV9vcCBvcCwgZHNtX2hhbmRsZSBoYW5kbGUsIFNpemUg cmVxdWVzdF9zaXplLAogCQlpbnQJCQlmbGFncyA9IElQQ1Byb3RlY3Rpb247CiAJCXNpemVfdAkJ c2Vnc2l6ZTsKIAorCQkvKiBEbyBub3QgZXhjZWVkIG1heGltdW0gYWxsb3dlZCBtZW1vcnkgYWxs b2NhdGlvbiAqLworCQlpZiAob3AgPT0gRFNNX09QX0NSRUFURSAmJiBleGNlZWRzX21heF90b3Rh bF9ia2VuZF9tZW0ocmVxdWVzdF9zaXplKSkKKwkJCXJldHVybiBmYWxzZTsKKwogCQkvKgogCQkg KiBBbGxvY2F0ZSB0aGUgbWVtb3J5IEJFRk9SRSBhY3F1aXJpbmcgdGhlIHJlc291cmNlLCBzbyB0 aGF0IHdlIGRvbid0CiAJCSAqIGxlYWsgdGhlIHJlc291cmNlIGlmIG1lbW9yeSBhbGxvY2F0aW9u IGZhaWxzLgpAQCAtNzE5LDYgKzcyNywxMCBAQCBkc21faW1wbF93aW5kb3dzKGRzbV9vcCBvcCwg ZHNtX2hhbmRsZSBoYW5kbGUsIFNpemUgcmVxdWVzdF9zaXplLAogCQlyZXR1cm4gdHJ1ZTsKIAl9 CiAKKwkvKiBEbyBub3QgZXhjZWVkIG1heGltdW0gYWxsb3dlZCBtZW1vcnkgYWxsb2NhdGlvbiAq LworCWlmIChvcCA9PSBEU01fT1BfQ1JFQVRFICYmIGV4Y2VlZHNfbWF4X3RvdGFsX2JrZW5kX21l bShyZXF1ZXN0X3NpemUpKQorCQlyZXR1cm4gZmFsc2U7CisKIAkvKiBDcmVhdGUgbmV3IHNlZ21l bnQgb3Igb3BlbiBhbiBleGlzdGluZyBvbmUgZm9yIGF0dGFjaC4gKi8KIAlpZiAob3AgPT0gRFNN X09QX0NSRUFURSkKIAl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9i YWNrZW5kX3N0YXR1cy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvYmFja2VuZF9zdGF0 dXMuYwppbmRleCAzMGE4OWU4OTlhLi41NTAwZWQ0ZjM3IDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC91dGlscy9hY3Rpdml0eS9iYWNrZW5kX3N0YXR1cy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L2FjdGl2aXR5L2JhY2tlbmRfc3RhdHVzLmMKQEAgLTQ1LDYgKzQ1LDkgQEAKIGJvb2wJCXBnc3Rh dF90cmFja19hY3Rpdml0aWVzID0gZmFsc2U7CiBpbnQJCQlwZ3N0YXRfdHJhY2tfYWN0aXZpdHlf cXVlcnlfc2l6ZSA9IDEwMjQ7CiAKKy8qIE1heCBiYWNrZW5kIG1lbW9yeSBhbGxvY2F0aW9uIGFs bG93ZWQgKE1CKS4gMCA9IGRpc2FibGVkICovCitpbnQJCQltYXhfdG90YWxfYmtlbmRfbWVtID0g MDsKKwogCiAvKiBleHBvc2VkIHNvIHRoYXQgYmFja2VuZF9wcm9ncmVzcy5jIGNhbiBhY2Nlc3Mg aXQgKi8KIFBnQmFja2VuZFN0YXR1cyAqTXlCRUVudHJ5ID0gTlVMTDsKQEAgLTEyNzgsNyArMTI4 MSw3IEBAIHBnc3RhdF9yZXBvcnRfYmFja2VuZF9hbGxvY2F0ZWRfYnl0ZXNfZGVjcmVhc2UodWlu dDY0IGRlYWxsb2NhdGlvbikKIAkgKi8KIAlpZiAoZGVhbGxvY2F0aW9uID4gYmVlbnRyeS0+YmFj a2VuZF9hbGxvY2F0ZWRfYnl0ZXMpCiAJewotCQllcmVwb3J0KExPRywgZXJybXNnKCJkZWNyZWFz ZSByZWR1Y2VzIHJlcG9ydGVkIGJhY2tlbmQgbWVtb3J5IGFsbG9jYXRlZCBiZWxvdyB6ZXJvOyBz ZXR0aW5nIHJlcG9ydGVkIHRvIDAiKSk7CisJCWVyZXBvcnQoTE9HLCBlcnJtc2coImRlYWxsb2Nh dGlvbiB3b3VsZCBkZWNyZWFzZSBiYWNrZW5kIG1lbW9yeSBiZWxvdyB6ZXJvOyBzZXR0aW5nIHJl cG9ydGVkIHRvIDAiKSk7CiAKIAkJLyoKIAkJICogT3ZlcndyaXRlIGRlYWxsb2NhdGlvbiB3aXRo IGN1cnJlbnQgYmFja2VuZF9hbGxvY2F0ZWRfYnl0ZXMgc28gd2UKQEAgLTEyOTYsMyArMTI5OSwx MDkgQEAgcGdzdGF0X3JlcG9ydF9iYWNrZW5kX2FsbG9jYXRlZF9ieXRlc19kZWNyZWFzZSh1aW50 NjQgZGVhbGxvY2F0aW9uKQogCWJlZW50cnktPmJhY2tlbmRfYWxsb2NhdGVkX2J5dGVzIC09IGRl YWxsb2NhdGlvbjsKIAlQR1NUQVRfRU5EX1dSSVRFX0FDVElWSVRZKGJlZW50cnkpOwogfQorCisv KiAtLS0tLS0tLS0tCisgKiBwZ3N0YXRfZ2V0X2FsbF9iYWNrZW5kX21lbW9yeV9hbGxvY2F0ZWQo KSAtCisgKgorICoJUmV0dXJuIGEgdWludDY0IHJlcHJlc2VudGluZyB0aGUgY3VycmVudCBzaGFy ZWQgbWVtb3J5IGFsbG9jYXRlZCB0byBhbGwKKyAqCWJhY2tlbmRzLiAgVGhpcyBsb29rcyBkaXJl Y3RseSBhdCB0aGUgQmFja2VuZFN0YXR1c0FycmF5LCBhbmQgc28gd2lsbAorICoJcHJvdmlkZSBj dXJyZW50IGluZm9ybWF0aW9uIHJlZ2FyZGxlc3Mgb2YgdGhlIGFnZSBvZiBvdXIgdHJhbnNhY3Rp b24ncworICoJc25hcHNob3Qgb2YgdGhlIHN0YXR1cyBhcnJheS4KKyAqCUluIHRoZSBmdXR1cmUg d2Ugd2lsbCBsaWtlbHkgdXRpbGl6ZSBhZGRpdGlvbmFsIHZhbHVlcyAtIHBlcmhhcHMgbGltaXQK KyAqCWJhY2tlbmQgYWxsb2NhdGlvbiBieSB1c2VyL3JvbGUsIGV0Yy4KKyAqIC0tLS0tLS0tLS0K KyAqLwordWludDY0CitwZ3N0YXRfZ2V0X2FsbF9iYWNrZW5kX21lbW9yeV9hbGxvY2F0ZWQodm9p ZCkKK3sKKwlQZ0JhY2tlbmRTdGF0dXMgKmJlZW50cnk7CisJaW50CQkJaTsKKwl1aW50NjQJCWFs bF9iYWNrZW5kX21lbW9yeV9hbGxvY2F0ZWQgPSAwOworCisJYmVlbnRyeSA9IEJhY2tlbmRTdGF0 dXNBcnJheTsKKworCS8qCisJICogV2UgcHJvYmFibHkgc2hvdWxkbid0IGdldCBoZXJlIGJlZm9y ZSBzaGFyZWQgbWVtb3J5IGhhcyBiZWVuIHNldCB1cCwKKwkgKiBidXQgYmUgc2FmZS4KKwkgKi8K KwlpZiAoYmVlbnRyeSA9PSBOVUxMIHx8IEJhY2tlbmRBY3Rpdml0eUJ1ZmZlciA9PSBOVUxMKQor CQlyZXR1cm4gMDsKKworCS8qCisJICogV2UgaW5jbHVkZSBBVVggcHJvY3MgaW4gYWxsIGJhY2tl bmQgbWVtb3J5IGNhbGN1bGF0aW9uCisJICovCisJZm9yIChpID0gMTsgaSA8PSBOdW1CYWNrZW5k U3RhdFNsb3RzOyBpKyspCisJeworCQkvKgorCQkgKiBXZSB1c2UgYSB2b2xhdGlsZSBwb2ludGVy IGhlcmUgdG8gZW5zdXJlIHRoZSBjb21waWxlciBkb2Vzbid0IHRyeQorCQkgKiB0byBnZXQgY3V0 ZS4KKwkJICovCisJCXZvbGF0aWxlIFBnQmFja2VuZFN0YXR1cyAqdmJlZW50cnkgPSBiZWVudHJ5 OworCQlib29sCQlmb3VuZDsKKwkJdWludDY0CQliYWNrZW5kX2FsbG9jYXRlZF9ieXRlcyA9IDA7 CisKKwkJZm9yICg7OykKKwkJeworCQkJaW50CQkJYmVmb3JlX2NoYW5nZWNvdW50OworCQkJaW50 CQkJYWZ0ZXJfY2hhbmdlY291bnQ7CisKKwkJCXBnc3RhdF9iZWdpbl9yZWFkX2FjdGl2aXR5KHZi ZWVudHJ5LCBiZWZvcmVfY2hhbmdlY291bnQpOworCisJCQkvKgorCQkJICogSWdub3JlIGludmFs aWQgZW50cmllcywgd2hpY2ggbWF5IGNvbnRhaW4gaW52YWxpZCBkYXRhLgorCQkJICogU2VlIHBn c3RhdF9iZXNodXRkb3duX2hvb2soKQorCQkJICovCisJCQlpZiAodmJlZW50cnktPnN0X3Byb2Nw aWQgPiAwKQorCQkJCWJhY2tlbmRfYWxsb2NhdGVkX2J5dGVzID0gdmJlZW50cnktPmJhY2tlbmRf YWxsb2NhdGVkX2J5dGVzOworCisJCQlwZ3N0YXRfZW5kX3JlYWRfYWN0aXZpdHkodmJlZW50cnks IGFmdGVyX2NoYW5nZWNvdW50KTsKKworCQkJaWYgKChmb3VuZCA9IHBnc3RhdF9yZWFkX2FjdGl2 aXR5X2NvbXBsZXRlKGJlZm9yZV9jaGFuZ2Vjb3VudCwKKwkJCQkJCQkJCQkJCQkgICBhZnRlcl9j aGFuZ2Vjb3VudCkpKQorCQkJCWJyZWFrOworCisJCQkvKiBNYWtlIHN1cmUgd2UgY2FuIGJyZWFr IG91dCBvZiBsb29wIGlmIHN0dWNrLi4uICovCisJCQlDSEVDS19GT1JfSU5URVJSVVBUUygpOwor CQl9CisKKwkJaWYgKGZvdW5kKQorCQkJYWxsX2JhY2tlbmRfbWVtb3J5X2FsbG9jYXRlZCArPSBi YWNrZW5kX2FsbG9jYXRlZF9ieXRlczsKKworCQliZWVudHJ5Kys7CisJfQorCisJcmV0dXJuIGFs bF9iYWNrZW5kX21lbW9yeV9hbGxvY2F0ZWQ7Cit9CisKKy8qCisgKiBEZXRlcm1pbmUgaWYgYWxs b2NhdGlvbiByZXF1ZXN0IHdpbGwgZXhjZWVkIG1heCBiYWNrZW5kIG1lbW9yeSBhbGxvd2VkLgor ICogRG8gbm90IGFwcGx5IHRvIGF1eGlsaWFyeSBwcm9jZXNzZXMuCisgKi8KK2Jvb2wKK2V4Y2Vl ZHNfbWF4X3RvdGFsX2JrZW5kX21lbSh1aW50NjQgYWxsb2NhdGlvbl9yZXF1ZXN0KQoreworCWJv b2wJCXJlc3VsdCA9IGZhbHNlOworCisJLyogRXhjbHVkZSBhdXhpbGlhcnkgcHJvY2Vzc2VzIGZy b20gdGhlIGNoZWNrICovCisJaWYgKE15QXV4UHJvY1R5cGUgIT0gTm90QW5BdXhQcm9jZXNzKQor CQlyZXR1cm4gcmVzdWx0OworCisJLyogQ29udmVydCBtYXhfdG90YWxfYmtlbmRfbWVtIHRvIGJ5 dGVzIGZvciBjb21wYXJpc29uICovCisJaWYgKG1heF90b3RhbF9ia2VuZF9tZW0gJiYKKwkJcGdz dGF0X2dldF9hbGxfYmFja2VuZF9tZW1vcnlfYWxsb2NhdGVkKCkgKworCQlhbGxvY2F0aW9uX3Jl cXVlc3QgPiAodWludDY0KSBtYXhfdG90YWxfYmtlbmRfbWVtICogMTAyNCAqIDEwMjQpCisJewor CQkvKgorCQkgKiBFeHBsaWNpdGx5IGlkZW50aWZ5IHRoZSBPT00gYmVpbmcgYSByZXN1bHQgb2Yg dGhpcyBjb25maWd1cmF0aW9uCisJCSAqIHBhcmFtZXRlciB2cyBhIHN5c3RlbSBmYWlsdXJlIHRv IGFsbG9jYXRlIE9PTS4KKwkJICovCisJCWVyZXBvcnQoV0FSTklORywKKwkJCQllcnJtc2coImFs bG9jYXRpb24gd291bGQgZXhjZWVkIG1heF90b3RhbF9iYWNrZW5kX21lbW9yeSBsaW1pdCAoJWxs dSA+ICVsbHUpIiwKKwkJCQkJICAgKHVuc2lnbmVkIGxvbmcgbG9uZykgcGdzdGF0X2dldF9hbGxf YmFja2VuZF9tZW1vcnlfYWxsb2NhdGVkKCkgKworCQkJCQkgICBhbGxvY2F0aW9uX3JlcXVlc3Qs ICh1bnNpZ25lZCBsb25nIGxvbmcpIG1heF90b3RhbF9ia2VuZF9tZW0gKiAxMDI0ICogMTAyNCkp OworCisJCXJlc3VsdCA9IHRydWU7CisJfQorCisJcmV0dXJuIHJlc3VsdDsKK30KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jIGIvc3JjL2JhY2tlbmQvdXRp bHMvbWlzYy9ndWNfdGFibGVzLmMKaW5kZXggODM2YjQ5NDg0YS4uMGUwOTc2Njk0OSAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKKysrIGIvc3JjL2JhY2tl bmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKQEAgLTM0MDMsNiArMzQwMywxNyBAQCBzdHJ1Y3Qg Y29uZmlnX2ludCBDb25maWd1cmVOYW1lc0ludFtdID0KIAkJTlVMTCwgTlVMTCwgTlVMTAogCX0s CiAKKwl7CisJCXsibWF4X3RvdGFsX2JhY2tlbmRfbWVtb3J5IiwgUEdDX1NVX0JBQ0tFTkQsIFJF U09VUkNFU19NRU0sCisJCQlnZXR0ZXh0X25vb3AoIlJlc3RyaWN0IHRvdGFsIGJhY2tlbmQgbWVt b3J5IGFsbG9jYXRpb25zIHRvIHRoaXMgbWF4LiIpLAorCQkJZ2V0dGV4dF9ub29wKCIwIHR1cm5z IHRoaXMgZmVhdHVyZSBvZmYuIiksCisJCQlHVUNfVU5JVF9NQgorCQl9LAorCQkmbWF4X3RvdGFs X2JrZW5kX21lbSwKKwkJMCwgMCwgSU5UX01BWCwKKwkJTlVMTCwgTlVMTCwgTlVMTAorCX0sCisK IAkvKiBFbmQtb2YtbGlzdCBtYXJrZXIgKi8KIAl7CiAJCXtOVUxMLCAwLCAwLCBOVUxMLCBOVUxM fSwgTlVMTCwgMCwgMCwgMCwgTlVMTCwgTlVMTCwgTlVMTApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIGIvc3JjL2JhY2tlbmQvdXRpbHMv bWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCmluZGV4IDg2OGQyMWMzNTEuLjFjZTBkZWU2ZDAg MTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBs ZQorKysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKQEAg LTE1NSw2ICsxNTUsOSBAQAogCQkJCQkjICAgbW1hcAogCQkJCQkjIChjaGFuZ2UgcmVxdWlyZXMg cmVzdGFydCkKICNtaW5fZHluYW1pY19zaGFyZWRfbWVtb3J5ID0gME1CCSMgKGNoYW5nZSByZXF1 aXJlcyByZXN0YXJ0KQorI21heF90b3RhbF9iYWNrZW5kX21lbW9yeSA9IDBNQgkJIyBSZXN0cmlj dCB0b3RhbCBiYWNrZW5kIG1lbW9yeSBhbGxvY2F0aW9ucworCQkJCQkJCQkJIyB0byB0aGlzIG1h eCAoaW4gTUIpLiAwIHR1cm5zIHRoaXMgZmVhdHVyZQorCQkJCQkJCQkJIyBvZmYuCiAKICMgLSBE aXNrIC0KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbW1nci9hc2V0LmMgYi9zcmMv YmFja2VuZC91dGlscy9tbWdyL2FzZXQuYwppbmRleCA4MWU2MmU0OTgxLi5jYzg2NWE4OWUwIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9tbWdyL2FzZXQuYworKysgYi9zcmMvYmFja2Vu ZC91dGlscy9tbWdyL2FzZXQuYwpAQCAtNDQwLDYgKzQ0MCwxMCBAQCBBbGxvY1NldENvbnRleHRD cmVhdGVJbnRlcm5hbChNZW1vcnlDb250ZXh0IHBhcmVudCwKIAllbHNlCiAJCWZpcnN0QmxvY2tT aXplID0gTWF4KGZpcnN0QmxvY2tTaXplLCBpbml0QmxvY2tTaXplKTsKIAorCS8qIERvIG5vdCBl eGNlZWQgbWF4aW11bSBhbGxvd2VkIG1lbW9yeSBhbGxvY2F0aW9uICovCisJaWYgKGV4Y2VlZHNf bWF4X3RvdGFsX2JrZW5kX21lbShmaXJzdEJsb2NrU2l6ZSkpCisJCXJldHVybiBOVUxMOworCiAJ LyoKIAkgKiBBbGxvY2F0ZSB0aGUgaW5pdGlhbCBibG9jay4gIFVubGlrZSBvdGhlciBhc2V0LmMg YmxvY2tzLCBpdCBzdGFydHMgd2l0aAogCSAqIHRoZSBjb250ZXh0IGhlYWRlciBhbmQgaXRzIGJs b2NrIGhlYWRlciBmb2xsb3dzIHRoYXQuCkBAIC03NDIsNiArNzQ2LDExIEBAIEFsbG9jU2V0QWxs b2MoTWVtb3J5Q29udGV4dCBjb250ZXh0LCBTaXplIHNpemUpCiAjZW5kaWYKIAogCQlibGtzaXpl ID0gY2h1bmtfc2l6ZSArIEFMTE9DX0JMT0NLSERSU1ogKyBBTExPQ19DSFVOS0hEUlNaOworCisJ CS8qIERvIG5vdCBleGNlZWQgbWF4aW11bSBhbGxvd2VkIG1lbW9yeSBhbGxvY2F0aW9uICovCisJ CWlmIChleGNlZWRzX21heF90b3RhbF9ia2VuZF9tZW0oYmxrc2l6ZSkpCisJCQlyZXR1cm4gTlVM TDsKKwogCQlibG9jayA9IChBbGxvY0Jsb2NrKSBtYWxsb2MoYmxrc2l6ZSk7CiAJCWlmIChibG9j ayA9PSBOVUxMKQogCQkJcmV0dXJuIE5VTEw7CkBAIC05MzksNiArOTQ4LDEwIEBAIEFsbG9jU2V0 QWxsb2MoTWVtb3J5Q29udGV4dCBjb250ZXh0LCBTaXplIHNpemUpCiAJCXdoaWxlIChibGtzaXpl IDwgcmVxdWlyZWRfc2l6ZSkKIAkJCWJsa3NpemUgPDw9IDE7CiAKKwkJLyogRG8gbm90IGV4Y2Vl ZCBtYXhpbXVtIGFsbG93ZWQgbWVtb3J5IGFsbG9jYXRpb24gKi8KKwkJaWYgKGV4Y2VlZHNfbWF4 X3RvdGFsX2JrZW5kX21lbShibGtzaXplKSkKKwkJCXJldHVybiBOVUxMOworCiAJCS8qIFRyeSB0 byBhbGxvY2F0ZSBpdCAqLwogCQlibG9jayA9IChBbGxvY0Jsb2NrKSBtYWxsb2MoYmxrc2l6ZSk7 CiAKQEAgLTExNzksNiArMTE5MiwxMCBAQCBBbGxvY1NldFJlYWxsb2Modm9pZCAqcG9pbnRlciwg U2l6ZSBzaXplKQogCQlibGtzaXplID0gY2hrc2l6ZSArIEFMTE9DX0JMT0NLSERSU1ogKyBBTExP Q19DSFVOS0hEUlNaOwogCQlvbGRibGtzaXplID0gYmxvY2stPmVuZHB0ciAtICgoY2hhciAqKSBi bG9jayk7CiAKKwkJLyogRG8gbm90IGV4Y2VlZCBtYXhpbXVtIGFsbG93ZWQgbWVtb3J5IGFsbG9j YXRpb24gKi8KKwkJaWYgKGJsa3NpemUgPiBvbGRibGtzaXplICYmIGV4Y2VlZHNfbWF4X3RvdGFs X2JrZW5kX21lbShibGtzaXplIC0gb2xkYmxrc2l6ZSkpCisJCQlyZXR1cm4gTlVMTDsKKwogCQli bG9jayA9IChBbGxvY0Jsb2NrKSByZWFsbG9jKGJsb2NrLCBibGtzaXplKTsKIAkJaWYgKGJsb2Nr ID09IE5VTEwpCiAJCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21tZ3IvZ2VuZXJh dGlvbi5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvbW1nci9nZW5lcmF0aW9uLmMKaW5kZXggZGYzMDA3 ZWRmYi4uNDk1NjY1ZDNiMCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbW1nci9nZW5l cmF0aW9uLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbW1nci9nZW5lcmF0aW9uLmMKQEAgLTIw MSw2ICsyMDEsOSBAQCBHZW5lcmF0aW9uQ29udGV4dENyZWF0ZShNZW1vcnlDb250ZXh0IHBhcmVu dCwKIAllbHNlCiAJCWFsbG9jU2l6ZSA9IE1heChhbGxvY1NpemUsIGluaXRCbG9ja1NpemUpOwog CisJaWYgKGV4Y2VlZHNfbWF4X3RvdGFsX2JrZW5kX21lbShhbGxvY1NpemUpKQorCQlyZXR1cm4g TlVMTDsKKwogCS8qCiAJICogQWxsb2NhdGUgdGhlIGluaXRpYWwgYmxvY2suICBVbmxpa2Ugb3Ro ZXIgZ2VuZXJhdGlvbi5jIGJsb2NrcywgaXQKIAkgKiBzdGFydHMgd2l0aCB0aGUgY29udGV4dCBo ZWFkZXIgYW5kIGl0cyBibG9jayBoZWFkZXIgZm9sbG93cyB0aGF0LgpAQCAtMzgwLDYgKzM4Myw5 IEBAIEdlbmVyYXRpb25BbGxvYyhNZW1vcnlDb250ZXh0IGNvbnRleHQsIFNpemUgc2l6ZSkKIAl7 CiAJCVNpemUJCWJsa3NpemUgPSByZXF1aXJlZF9zaXplICsgR2VuZXJhdGlvbl9CTE9DS0hEUlNa OwogCisJCWlmIChleGNlZWRzX21heF90b3RhbF9ia2VuZF9tZW0oYmxrc2l6ZSkpCisJCQlyZXR1 cm4gTlVMTDsKKwogCQlibG9jayA9IChHZW5lcmF0aW9uQmxvY2sgKikgbWFsbG9jKGJsa3NpemUp OwogCQlpZiAoYmxvY2sgPT0gTlVMTCkKIAkJCXJldHVybiBOVUxMOwpAQCAtNDgzLDYgKzQ4OSw5 IEBAIEdlbmVyYXRpb25BbGxvYyhNZW1vcnlDb250ZXh0IGNvbnRleHQsIFNpemUgc2l6ZSkKIAkJ CWlmIChibGtzaXplIDwgcmVxdWlyZWRfc2l6ZSkKIAkJCQlibGtzaXplID0gcGdfbmV4dHBvd2Vy Ml9zaXplX3QocmVxdWlyZWRfc2l6ZSk7CiAKKwkJCWlmIChleGNlZWRzX21heF90b3RhbF9ia2Vu ZF9tZW0oYmxrc2l6ZSkpCisJCQkJcmV0dXJuIE5VTEw7CisKIAkJCWJsb2NrID0gKEdlbmVyYXRp b25CbG9jayAqKSBtYWxsb2MoYmxrc2l6ZSk7CiAKIAkJCWlmIChibG9jayA9PSBOVUxMKQpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbW1nci9zbGFiLmMgYi9zcmMvYmFja2VuZC91dGls cy9tbWdyL3NsYWIuYwppbmRleCA1MzJjMDM4OTczLi41Yjk4MTc2NjU0IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC91dGlscy9tbWdyL3NsYWIuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9tbWdy L3NsYWIuYwpAQCAtMTk3LDYgKzE5NywxMCBAQCBTbGFiQ29udGV4dENyZWF0ZShNZW1vcnlDb250 ZXh0IHBhcmVudCwKIAloZWFkZXJTaXplICs9IGNodW5rc1BlckJsb2NrICogc2l6ZW9mKGJvb2wp OwogI2VuZGlmCiAKKwkvKiBEbyBub3QgZXhjZWVkIG1heGltdW0gYWxsb3dlZCBtZW1vcnkgYWxs b2NhdGlvbiAqLworCWlmIChleGNlZWRzX21heF90b3RhbF9ia2VuZF9tZW0oaGVhZGVyU2l6ZSkp CisJCXJldHVybiBOVUxMOworCiAJc2xhYiA9IChTbGFiQ29udGV4dCAqKSBtYWxsb2MoaGVhZGVy U2l6ZSk7CiAJaWYgKHNsYWIgPT0gTlVMTCkKIAl7CkBAIC0zNTEsNiArMzU1LDEwIEBAIFNsYWJB bGxvYyhNZW1vcnlDb250ZXh0IGNvbnRleHQsIFNpemUgc2l6ZSkKIAkgKi8KIAlpZiAoc2xhYi0+ bWluRnJlZUNodW5rcyA9PSAwKQogCXsKKwkJLyogRG8gbm90IGV4Y2VlZCBtYXhpbXVtIGFsbG93 ZWQgbWVtb3J5IGFsbG9jYXRpb24gKi8KKwkJaWYgKGV4Y2VlZHNfbWF4X3RvdGFsX2JrZW5kX21l bShzbGFiLT5ibG9ja1NpemUpKQorCQkJcmV0dXJuIE5VTEw7CisKIAkJYmxvY2sgPSAoU2xhYkJs b2NrICopIG1hbGxvYyhzbGFiLT5ibG9ja1NpemUpOwogCiAJCWlmIChibG9jayA9PSBOVUxMKQpk aWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvdXRpbHMvYmFja2VuZF9zdGF0dXMuaCBiL3NyYy9pbmNs dWRlL3V0aWxzL2JhY2tlbmRfc3RhdHVzLmgKaW5kZXggNzVkODdlODMwOC4uYzhiZWIxMTZiOCAx MDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdXRpbHMvYmFja2VuZF9zdGF0dXMuaAorKysgYi9zcmMv aW5jbHVkZS91dGlscy9iYWNrZW5kX3N0YXR1cy5oCkBAIC0yNzgsNiArMjc4LDcgQEAgdHlwZWRl ZiBzdHJ1Y3QgTG9jYWxQZ0JhY2tlbmRTdGF0dXMKICAqLwogZXh0ZXJuIFBHRExMSU1QT1JUIGJv b2wgcGdzdGF0X3RyYWNrX2FjdGl2aXRpZXM7CiBleHRlcm4gUEdETExJTVBPUlQgaW50IHBnc3Rh dF90cmFja19hY3Rpdml0eV9xdWVyeV9zaXplOworZXh0ZXJuIFBHRExMSU1QT1JUIGludCBtYXhf dG90YWxfYmtlbmRfbWVtOwogCiAKIC8qIC0tLS0tLS0tLS0KQEAgLTMyOSw2ICszMzAsNyBAQCBl eHRlcm4gaW50CXBnc3RhdF9mZXRjaF9zdGF0X251bWJhY2tlbmRzKHZvaWQpOwogZXh0ZXJuIFBn QmFja2VuZFN0YXR1cyAqcGdzdGF0X2ZldGNoX3N0YXRfYmVlbnRyeShCYWNrZW5kSWQgYmVpZCk7 CiBleHRlcm4gTG9jYWxQZ0JhY2tlbmRTdGF0dXMgKnBnc3RhdF9mZXRjaF9zdGF0X2xvY2FsX2Jl ZW50cnkoaW50IGJlaWQpOwogZXh0ZXJuIGNoYXIgKnBnc3RhdF9jbGlwX2FjdGl2aXR5KGNvbnN0 IGNoYXIgKnJhd19hY3Rpdml0eSk7CitleHRlcm4gYm9vbCBleGNlZWRzX21heF90b3RhbF9ia2Vu ZF9tZW0odWludDY0IGFsbG9jYXRpb25fcmVxdWVzdCk7CiAKIAogI2VuZGlmCQkJCQkJCS8qIEJB Q0tFTkRfU1RBVFVTX0ggKi8KLS0gCjIuMjUuMQoK --=-3Mcu7T4hj18yxgSwHRmk Content-Disposition: attachment; filename*0=0001-Add-tracking-of-backend-memory-allocated-to-pg_stat_.pat; filename*1=ch Content-Transfer-Encoding: base64 Content-Type: text/x-patch; name="0001-Add-tracking-of-backend-memory-allocated-to-pg_stat_.patch"; charset="UTF-8" RnJvbSA4ZjcyOWM1OWMzYWExYTAyZDAwODc5NTE1OWE3NDhlMTU5MmE5OTE2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBSZWlkIFRob21wc29uIDxqcmVpZHRob21wc29uQG5jLnJyLmNv bT4KRGF0ZTogVGh1LCAxMSBBdWcgMjAyMiAxMjowMToyNSAtMDQwMApTdWJqZWN0OiBbUEFUQ0gg MS8yXSBBZGQgdHJhY2tpbmcgb2YgYmFja2VuZCBtZW1vcnkgYWxsb2NhdGVkIHRvCiBwZ19zdGF0 X2FjdGl2aXR5CgpUaGlzIG5ldyBmaWVsZCBkaXNwbGF5cyB0aGUgY3VycmVudCBieXRlcyBvZiBt ZW1vcnkgYWxsb2NhdGVkIHRvIHRoZQpiYWNrZW5kIHByb2Nlc3MuIEl0IGlzIHVwZGF0ZWQgYXMg bWVtb3J5IGZvciB0aGUgcHJvY2VzcyBpcwptYWxsb2MnZC9mcmVlJ2QuIE1lbW9yeSBhbGxvY2F0 ZWQgdG8gaXRlbXMgb24gdGhlIGZyZWVsaXN0IGlzIGluY2x1ZGVkIGluCnRoZSBkaXNwbGF5ZWQg dmFsdWUuICBEeW5hbWljIHNoYXJlZCBtZW1vcnkgYWxsb2NhdGlvbnMgYXJlIGluY2x1ZGVkCm9u bHkgaW4gdGhlIHZhbHVlIGRpc3BsYXllZCBmb3IgdGhlIGJhY2tlbmQgdGhhdCBjcmVhdGVkIHRo ZW0sIHRoZXkgYXJlCm5vdCBpbmNsdWRlZCBpbiB0aGUgdmFsdWUgZm9yIGJhY2tlbmRzIHRoYXQg YXJlIGF0dGFjaGVkIHRvIHRoZW0gdG8KYXZvaWQgZG91YmxlIGNvdW50aW5nLiBPbiBvY2Nhc2lv biwgb3JwaGFuZWQgbWVtb3J5IHNlZ21lbnRzIG1heSBiZQpjbGVhbmVkIHVwIG9uIHBvc3RtYXN0 ZXIgc3RhcnR1cC4gVGhpcyBtYXkgcmVzdWx0IGluIGRlY3JlYXNpbmcgdGhlIHN1bQp3aXRob3V0 IGEgcHJpb3IgaW5jcmVtZW50LiBXZSBsaW1pdCB0aGUgZmxvb3Igb2YgYmFja2VuZF9tZW1fYWxs b2NhdGVkCnRvIHplcm8uIFVwZGF0ZWQgcGdfc3RhdF9hY3Rpdml0eSBkb2N1bWVudGF0aW9uIGZv ciB0aGUgbmV3IGNvbHVtbi4KLS0tCiBkb2Mvc3JjL3NnbWwvbW9uaXRvcmluZy5zZ21sICAgICAg ICAgICAgICAgIHwgIDEyICsrKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9zeXN0ZW1fdmlld3Muc3Fs ICAgICAgICB8ICAgMSArCiBzcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9kc21faW1wbC5jICAgICAg ICAgIHwgIDgxICsrKysrKysrKysrKysrKwogc3JjL2JhY2tlbmQvdXRpbHMvYWN0aXZpdHkvYmFj a2VuZF9zdGF0dXMuYyB8IDEwNSArKysrKysrKysrKysrKysrKysrKwogc3JjL2JhY2tlbmQvdXRp bHMvYWR0L3Bnc3RhdGZ1bmNzLmMgICAgICAgICB8ICAgNCArLQogc3JjL2JhY2tlbmQvdXRpbHMv bW1nci9hc2V0LmMgICAgICAgICAgICAgICB8ICAxOCArKysrCiBzcmMvYmFja2VuZC91dGlscy9t bWdyL2dlbmVyYXRpb24uYyAgICAgICAgIHwgIDE1ICsrKwogc3JjL2JhY2tlbmQvdXRpbHMvbW1n ci9zbGFiLmMgICAgICAgICAgICAgICB8ICAyMSArKysrCiBzcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3Byb2MuZGF0ICAgICAgICAgICAgIHwgICA2ICstCiBzcmMvaW5jbHVkZS91dGlscy9iYWNrZW5k X3N0YXR1cy5oICAgICAgICAgIHwgICA3ICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3J1 bGVzLm91dCAgICAgICAgIHwgICA5ICstCiAxMSBmaWxlcyBjaGFuZ2VkLCAyNzAgaW5zZXJ0aW9u cygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvbW9uaXRvcmlu Zy5zZ21sIGIvZG9jL3NyYy9zZ21sL21vbml0b3Jpbmcuc2dtbAppbmRleCBlNWQ2MjJkNTE0Li45 NzI4MDViODVhIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvbW9uaXRvcmluZy5zZ21sCisrKyBi L2RvYy9zcmMvc2dtbC9tb25pdG9yaW5nLnNnbWwKQEAgLTk0Nyw2ICs5NDcsMTggQEAgcG9zdGdy ZXMgICAyNzA5MyAgMC4wICAwLjAgIDMwMDk2ICAyNzUyID8gICAgICAgIFNzICAgMTE6MzQgICAw OjAwIHBvc3RncmVzOiBzZXIKICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgPC9yb3c+CiAKKyAg ICA8cm93PgorICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgPHN0cnVjdGZpZWxkPmJhY2tlbmRfYWxsb2Nh dGVkX2J5dGVzPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+YmlnaW50PC90eXBlPgorICAgICA8L3BhcmE+ CisgICAgIDxwYXJhPgorICAgICAgVGhlIGJ5dGUgY291bnQgb2YgbWVtb3J5IGFsbG9jYXRlZCB0 byB0aGlzIGJhY2tlbmQuIER5bmFtaWMgc2hhcmVkIG1lbW9yeQorICAgICAgYWxsb2NhdGlvbnMg YXJlIGluY2x1ZGVkIG9ubHkgaW4gdGhlIHZhbHVlIGRpc3BsYXllZCBmb3IgdGhlIGJhY2tlbmQg dGhhdAorICAgICAgY3JlYXRlZCB0aGVtLCB0aGV5IGFyZSBub3QgaW5jbHVkZWQgaW4gdGhlIHZh bHVlIGZvciBiYWNrZW5kcyB0aGF0IGFyZQorICAgICAgYXR0YWNoZWQgdG8gdGhlbSB0byBhdm9p ZCBkb3VibGUgY291bnRpbmcuCisgICAgIDwvcGFyYT48L2VudHJ5PgorICAgIDwvcm93PgorCiAg ICAgIDxyb3c+CiAgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEg cm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgogICAgICAgIDxzdHJ1Y3RmaWVsZD5xdWVyeTwvc3Ry dWN0ZmllbGQ+IDx0eXBlPnRleHQ8L3R5cGU+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRh bG9nL3N5c3RlbV92aWV3cy5zcWwgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3N5c3RlbV92aWV3cy5z cWwKaW5kZXggMmQ4MTA0YjA5MC4uODRkNDYyYWE5NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv Y2F0YWxvZy9zeXN0ZW1fdmlld3Muc3FsCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvc3lzdGVt X3ZpZXdzLnNxbApAQCAtODY0LDYgKzg2NCw3IEBAIENSRUFURSBWSUVXIHBnX3N0YXRfYWN0aXZp dHkgQVMKICAgICAgICAgICAgIFMuc3RhdGUsCiAgICAgICAgICAgICBTLmJhY2tlbmRfeGlkLAog ICAgICAgICAgICAgcy5iYWNrZW5kX3htaW4sCisgICAgICAgICAgICBTLmJhY2tlbmRfYWxsb2Nh dGVkX2J5dGVzLAogICAgICAgICAgICAgUy5xdWVyeV9pZCwKICAgICAgICAgICAgIFMucXVlcnks CiAgICAgICAgICAgICBTLmJhY2tlbmRfdHlwZQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvc3Rv cmFnZS9pcGMvZHNtX2ltcGwuYyBiL3NyYy9iYWNrZW5kL3N0b3JhZ2UvaXBjL2RzbV9pbXBsLmMK aW5kZXggNmRkZDQ2YTRlNy4uZWFlMDMxNTljMyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3Rv cmFnZS9pcGMvZHNtX2ltcGwuYworKysgYi9zcmMvYmFja2VuZC9zdG9yYWdlL2lwYy9kc21faW1w bC5jCkBAIC02Niw2ICs2Niw3IEBACiAjaW5jbHVkZSAicG9zdG1hc3Rlci9wb3N0bWFzdGVyLmgi CiAjaW5jbHVkZSAic3RvcmFnZS9kc21faW1wbC5oIgogI2luY2x1ZGUgInN0b3JhZ2UvZmQuaCIK KyNpbmNsdWRlICJ1dGlscy9iYWNrZW5kX3N0YXR1cy5oIgogI2luY2x1ZGUgInV0aWxzL2d1Yy5o IgogI2luY2x1ZGUgInV0aWxzL21lbXV0aWxzLmgiCiAKQEAgLTIzMiw2ICsyMzMsMTQgQEAgZHNt X2ltcGxfcG9zaXgoZHNtX29wIG9wLCBkc21faGFuZGxlIGhhbmRsZSwgU2l6ZSByZXF1ZXN0X3Np emUsCiAJCQkJCQkJbmFtZSkpKTsKIAkJCXJldHVybiBmYWxzZTsKIAkJfQorCisJCS8qCisJCSAq IERldGFjaCBhbmQgZGVzdHJveSBwYXNzIHRocm91Z2ggaGVyZSwgb25seSBkZWNyZWFzZSB0aGUg bWVtb3J5CisJCSAqIHNob3duIGFsbG9jYXRlZCBpbiBwZ19zdGF0X2FjdGl2aXR5IHdoZW4gdGhl IGNyZWF0b3IgZGVzdHJveXMgdGhlCisJCSAqIGFsbG9jYXRpb24uCisJCSAqLworCQlpZiAob3Ag PT0gRFNNX09QX0RFU1RST1kpCisJCQlwZ3N0YXRfcmVwb3J0X2JhY2tlbmRfYWxsb2NhdGVkX2J5 dGVzX2RlY3JlYXNlKCptYXBwZWRfc2l6ZSk7CiAJCSptYXBwZWRfYWRkcmVzcyA9IE5VTEw7CiAJ CSptYXBwZWRfc2l6ZSA9IDA7CiAJCWlmIChvcCA9PSBEU01fT1BfREVTVFJPWSAmJiBzaG1fdW5s aW5rKG5hbWUpICE9IDApCkBAIC0zMzIsNiArMzQxLDM2IEBAIGRzbV9pbXBsX3Bvc2l4KGRzbV9v cCBvcCwgZHNtX2hhbmRsZSBoYW5kbGUsIFNpemUgcmVxdWVzdF9zaXplLAogCQkJCQkJbmFtZSkp KTsKIAkJcmV0dXJuIGZhbHNlOwogCX0KKworCS8qCisJICogQXR0YWNoIGFuZCBjcmVhdGUgcGFz cyB0aHJvdWdoIGhlcmUsIG9ubHkgdXBkYXRlIGJhY2tlbmQgbWVtb3J5CisJICogYWxsb2NhdGVk IGluIHBnX3N0YXRfYWN0aXZpdHkgZm9yIHRoZSBjcmVhdG9yIHByb2Nlc3MuCisJICovCisJaWYg KG9wID09IERTTV9PUF9DUkVBVEUpCisJeworCQkvKgorCQkgKiBQb3NpeCBjcmVhdGlvbiBjYWxs cyBkc21faW1wbF9wb3NpeF9yZXNpemUgaW1wbHlpbmcgdGhhdCByZXNpemluZworCQkgKiBvY2N1 cnMgb3IgbWF5IGJlIGFkZGVkIGluIHRoZSBmdXR1cmUuIEFzIGltcGxlbWVudGVkCisJCSAqIGRz bV9pbXBsX3Bvc2l4X3Jlc2l6ZSB1dGlsaXplcyBmYWxsb2NhdGUgb3IgdHJ1bmNhdGUsIHBhc3Np bmcgdGhlCisJCSAqIHdob2xlIG5ldyBzaXplIGFzIGlucHV0LCBncm93aW5nIHRoZSBhbGxvY2F0 aW9uIGFzIG5lZWRlZCAob25seQorCQkgKiB0cnVuY2F0ZSBzdXBwb3J0cyBzaHJpbmtpbmcpLiBX ZSB1cGRhdGUgYnkgcmVwbGFjaW5nIHRoZSBvbGQKKwkJICogYWxsb2NhdGlvbiB3aXRoIHRoZSBu ZXcuCisJCSAqLworI2lmIGRlZmluZWQoSEFWRV9QT1NJWF9GQUxMT0NBVEUpICYmIGRlZmluZWQo X19saW51eF9fKQorCQkvKgorCQkgKiBwb3NpeF9mYWxsb2NhdGUgZG9lcyBub3Qgc2hyaW5rIGFs bG9jYXRpb25zLCBhZGp1c3Qgb25seSBvbgorCQkgKiBhbGxvY2F0aW9uIGluY3JlYXNlLgorCQkg Ki8KKwkJaWYgKHJlcXVlc3Rfc2l6ZSA+ICptYXBwZWRfc2l6ZSkKKwkJeworCQkJcGdzdGF0X3Jl cG9ydF9iYWNrZW5kX2FsbG9jYXRlZF9ieXRlc19kZWNyZWFzZSgqbWFwcGVkX3NpemUpOworCQkJ cGdzdGF0X3JlcG9ydF9iYWNrZW5kX2FsbG9jYXRlZF9ieXRlc19pbmNyZWFzZShyZXF1ZXN0X3Np emUpOworCQl9CisjZWxzZQorCQlwZ3N0YXRfcmVwb3J0X2JhY2tlbmRfYWxsb2NhdGVkX2J5dGVz X2RlY3JlYXNlKCptYXBwZWRfc2l6ZSk7CisJCXBnc3RhdF9yZXBvcnRfYmFja2VuZF9hbGxvY2F0 ZWRfYnl0ZXNfaW5jcmVhc2UocmVxdWVzdF9zaXplKTsKKyNlbmRpZgorCX0KIAkqbWFwcGVkX2Fk ZHJlc3MgPSBhZGRyZXNzOwogCSptYXBwZWRfc2l6ZSA9IHJlcXVlc3Rfc2l6ZTsKIAljbG9zZShm ZCk7CkBAIC01MzcsNiArNTc2LDE0IEBAIGRzbV9pbXBsX3N5c3YoZHNtX29wIG9wLCBkc21faGFu ZGxlIGhhbmRsZSwgU2l6ZSByZXF1ZXN0X3NpemUsCiAJCQkJCQkJbmFtZSkpKTsKIAkJCXJldHVy biBmYWxzZTsKIAkJfQorCisJCS8qCisJCSAqIERldGFjaCBhbmQgZGVzdHJveSBwYXNzIHRocm91 Z2ggaGVyZSwgb25seSBkZWNyZWFzZSB0aGUgbWVtb3J5CisJCSAqIHNob3duIGFsbG9jYXRlZCBp biBwZ19zdGF0X2FjdGl2aXR5IHdoZW4gdGhlIGNyZWF0b3IgZGVzdHJveXMgdGhlCisJCSAqIGFs bG9jYXRpb24uCisJCSAqLworCQlpZiAob3AgPT0gRFNNX09QX0RFU1RST1kpCisJCQlwZ3N0YXRf cmVwb3J0X2JhY2tlbmRfYWxsb2NhdGVkX2J5dGVzX2RlY3JlYXNlKCptYXBwZWRfc2l6ZSk7CiAJ CSptYXBwZWRfYWRkcmVzcyA9IE5VTEw7CiAJCSptYXBwZWRfc2l6ZSA9IDA7CiAJCWlmIChvcCA9 PSBEU01fT1BfREVTVFJPWSAmJiBzaG1jdGwoaWRlbnQsIElQQ19STUlELCBOVUxMKSA8IDApCkBA IC01ODQsNiArNjMxLDEzIEBAIGRzbV9pbXBsX3N5c3YoZHNtX29wIG9wLCBkc21faGFuZGxlIGhh bmRsZSwgU2l6ZSByZXF1ZXN0X3NpemUsCiAJCQkJCQluYW1lKSkpOwogCQlyZXR1cm4gZmFsc2U7 CiAJfQorCisJLyoKKwkgKiBBdHRhY2ggYW5kIGNyZWF0ZSBwYXNzIHRocm91Z2ggaGVyZSwgb25s eSB1cGRhdGUgYmFja2VuZCBtZW1vcnkKKwkgKiBhbGxvY2F0ZWQgaW4gcGdfc3RhdF9hY3Rpdml0 eSBmb3IgdGhlIGNyZWF0b3IgcHJvY2Vzcy4KKwkgKi8KKwlpZiAob3AgPT0gRFNNX09QX0NSRUFU RSkKKwkJcGdzdGF0X3JlcG9ydF9iYWNrZW5kX2FsbG9jYXRlZF9ieXRlc19pbmNyZWFzZShyZXF1 ZXN0X3NpemUpOwogCSptYXBwZWRfYWRkcmVzcyA9IGFkZHJlc3M7CiAJKm1hcHBlZF9zaXplID0g cmVxdWVzdF9zaXplOwogCkBAIC02NTIsNiArNzA2LDEzIEBAIGRzbV9pbXBsX3dpbmRvd3MoZHNt X29wIG9wLCBkc21faGFuZGxlIGhhbmRsZSwgU2l6ZSByZXF1ZXN0X3NpemUsCiAJCQlyZXR1cm4g ZmFsc2U7CiAJCX0KIAorCQkvKgorCQkgKiBEZXRhY2ggYW5kIGRlc3Ryb3kgcGFzcyB0aHJvdWdo IGhlcmUsIG9ubHkgZGVjcmVhc2UgdGhlIG1lbW9yeQorCQkgKiBzaG93biBhbGxvY2F0ZWQgaW4g cGdfc3RhdF9hY3Rpdml0eSB3aGVuIHRoZSBjcmVhdG9yIGRlc3Ryb3lzIHRoZQorCQkgKiBhbGxv Y2F0aW9uLgorCQkgKi8KKwkJaWYgKG9wID09IERTTV9PUF9ERVNUUk9ZKQorCQkJcGdzdGF0X3Jl cG9ydF9iYWNrZW5kX2FsbG9jYXRlZF9ieXRlc19kZWNyZWFzZSgqbWFwcGVkX3NpemUpOwogCQkq aW1wbF9wcml2YXRlID0gTlVMTDsKIAkJKm1hcHBlZF9hZGRyZXNzID0gTlVMTDsKIAkJKm1hcHBl ZF9zaXplID0gMDsKQEAgLTc2OCw2ICs4MjksMTIgQEAgZHNtX2ltcGxfd2luZG93cyhkc21fb3Ag b3AsIGRzbV9oYW5kbGUgaGFuZGxlLCBTaXplIHJlcXVlc3Rfc2l6ZSwKIAkJcmV0dXJuIGZhbHNl OwogCX0KIAorCS8qCisJICogQXR0YWNoIGFuZCBjcmVhdGUgcGFzcyB0aHJvdWdoIGhlcmUsIG9u bHkgdXBkYXRlIGJhY2tlbmQgbWVtb3J5CisJICogYWxsb2NhdGVkIGluIHBnX3N0YXRfYWN0aXZp dHkgZm9yIHRoZSBjcmVhdG9yIHByb2Nlc3MuCisJICovCisJaWYgKG9wID09IERTTV9PUF9DUkVB VEUpCisJCXBnc3RhdF9yZXBvcnRfYmFja2VuZF9hbGxvY2F0ZWRfYnl0ZXNfaW5jcmVhc2UoaW5m by5SZWdpb25TaXplKTsKIAkqbWFwcGVkX2FkZHJlc3MgPSBhZGRyZXNzOwogCSptYXBwZWRfc2l6 ZSA9IGluZm8uUmVnaW9uU2l6ZTsKIAkqaW1wbF9wcml2YXRlID0gaG1hcDsKQEAgLTgxMiw2ICs4 NzksMTMgQEAgZHNtX2ltcGxfbW1hcChkc21fb3Agb3AsIGRzbV9oYW5kbGUgaGFuZGxlLCBTaXpl IHJlcXVlc3Rfc2l6ZSwKIAkJCQkJCQluYW1lKSkpOwogCQkJcmV0dXJuIGZhbHNlOwogCQl9CisK KwkJLyoKKwkJICogRGV0YWNoIGFuZCBkZXN0cm95IHBhc3MgdGhyb3VnaCBoZXJlLCBvbmx5IGRl Y3JlYXNlIHRoZSBtZW1vcnkKKwkJICogc2hvd24gYWxsb2NhdGVkIGluIHBnX3N0YXRfYWN0aXZp dHkgd2hlbiB0aGUgY3JlYXRvciBkZXN0cm95cyB0aGUKKwkJICogYWxsb2NhdGlvbi4KKwkJICov CisJCXBnc3RhdF9yZXBvcnRfYmFja2VuZF9hbGxvY2F0ZWRfYnl0ZXNfZGVjcmVhc2UoKm1hcHBl ZF9zaXplKTsKIAkJKm1hcHBlZF9hZGRyZXNzID0gTlVMTDsKIAkJKm1hcHBlZF9zaXplID0gMDsK IAkJaWYgKG9wID09IERTTV9PUF9ERVNUUk9ZICYmIHVubGluayhuYW1lKSAhPSAwKQpAQCAtOTMz LDYgKzEwMDcsMTMgQEAgZHNtX2ltcGxfbW1hcChkc21fb3Agb3AsIGRzbV9oYW5kbGUgaGFuZGxl LCBTaXplIHJlcXVlc3Rfc2l6ZSwKIAkJCQkJCW5hbWUpKSk7CiAJCXJldHVybiBmYWxzZTsKIAl9 CisKKwkvKgorCSAqIEF0dGFjaCBhbmQgY3JlYXRlIHBhc3MgdGhyb3VnaCBoZXJlLCBvbmx5IHVw ZGF0ZSBiYWNrZW5kIG1lbW9yeQorCSAqIGFsbG9jYXRlZCBpbiBwZ19zdGF0X2FjdGl2aXR5IGZv ciB0aGUgY3JlYXRvciBwcm9jZXNzLgorCSAqLworCWlmIChvcCA9PSBEU01fT1BfQ1JFQVRFKQor CQlwZ3N0YXRfcmVwb3J0X2JhY2tlbmRfYWxsb2NhdGVkX2J5dGVzX2luY3JlYXNlKHJlcXVlc3Rf c2l6ZSk7CiAJKm1hcHBlZF9hZGRyZXNzID0gYWRkcmVzczsKIAkqbWFwcGVkX3NpemUgPSByZXF1 ZXN0X3NpemU7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FjdGl2aXR5L2JhY2tl bmRfc3RhdHVzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hY3Rpdml0eS9iYWNrZW5kX3N0YXR1cy5j CmluZGV4IDExNDZhNmMzM2MuLjMwYTg5ZTg5OWEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0 aWxzL2FjdGl2aXR5L2JhY2tlbmRfc3RhdHVzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWN0 aXZpdHkvYmFja2VuZF9zdGF0dXMuYwpAQCAtNDksNiArNDksOCBAQCBpbnQJCQlwZ3N0YXRfdHJh Y2tfYWN0aXZpdHlfcXVlcnlfc2l6ZSA9IDEwMjQ7CiAvKiBleHBvc2VkIHNvIHRoYXQgYmFja2Vu ZF9wcm9ncmVzcy5jIGNhbiBhY2Nlc3MgaXQgKi8KIFBnQmFja2VuZFN0YXR1cyAqTXlCRUVudHJ5 ID0gTlVMTDsKIAorLyogTWVtb3J5IGFsbG9jYXRlZCB0byB0aGlzIGJhY2tlbmQgcHJpb3IgdG8g cGdzdGF0cyBpbml0aWFsaXphdGlvbiAqLwordWludDY0CQliYWNrZW5kX2FsbG9jYXRlZF9ieXRl cyA9IDA7CiAKIHN0YXRpYyBQZ0JhY2tlbmRTdGF0dXMgKkJhY2tlbmRTdGF0dXNBcnJheSA9IE5V TEw7CiBzdGF0aWMgY2hhciAqQmFja2VuZEFwcG5hbWVCdWZmZXIgPSBOVUxMOwpAQCAtNDAwLDYg KzQwMiwxMyBAQCBwZ3N0YXRfYmVzdGFydCh2b2lkKQogCWxiZWVudHJ5LnN0X3Byb2dyZXNzX2Nv bW1hbmRfdGFyZ2V0ID0gSW52YWxpZE9pZDsKIAlsYmVlbnRyeS5zdF9xdWVyeV9pZCA9IFVJTlQ2 NENPTlNUKDApOwogCisJLyoKKwkgKiBNb3ZlIHN1bSBvZiBtZW1vcnkgYWxsb2NhdGVkIHByaW9y IHRvIHBnc3RhdHMgaW5pdGlhbGl6YXRpb24gdG8gcGdzdGF0cworCSAqIGFuZCB6ZXJvIHRoZSBs b2NhbCB2YXJpYWJsZS4KKwkgKi8KKwlsYmVlbnRyeS5iYWNrZW5kX2FsbG9jYXRlZF9ieXRlcyA9 IGJhY2tlbmRfYWxsb2NhdGVkX2J5dGVzOworCWJhY2tlbmRfYWxsb2NhdGVkX2J5dGVzID0gMDsK KwogCS8qCiAJICogd2UgZG9uJ3QgemVybyBzdF9wcm9ncmVzc19wYXJhbSBoZXJlIHRvIHNhdmUg Y3ljbGVzOyBub2JvZHkgc2hvdWxkCiAJICogZXhhbWluZSBpdCB1bnRpbCBzdF9wcm9ncmVzc19j b21tYW5kIGhhcyBiZWVuIHNldCB0byBzb21ldGhpbmcgb3RoZXIKQEAgLTExOTEsMyArMTIwMCw5 OSBAQCBwZ3N0YXRfY2xpcF9hY3Rpdml0eShjb25zdCBjaGFyICpyYXdfYWN0aXZpdHkpCiAKIAly ZXR1cm4gYWN0aXZpdHk7CiB9CisKKy8qIC0tLS0tLS0tCisgKiBwZ3N0YXRfcmVwb3J0X2JhY2tl bmRfYWxsb2NhdGVkX2J5dGVzX2luY3JlYXNlKCkgLQorICoKKyAqIENhbGxlZCB0byByZXBvcnQg aW5jcmVhc2UgaW4gbWVtb3J5IGFsbG9jYXRlZCBmb3IgdGhpcyBiYWNrZW5kCisgKiAtLS0tLS0t LQorICovCit2b2lkCitwZ3N0YXRfcmVwb3J0X2JhY2tlbmRfYWxsb2NhdGVkX2J5dGVzX2luY3Jl YXNlKHVpbnQ2NCBhbGxvY2F0aW9uKQoreworCXZvbGF0aWxlIFBnQmFja2VuZFN0YXR1cyAqYmVl bnRyeSA9IE15QkVFbnRyeTsKKworCWlmICghYmVlbnRyeSB8fCAhcGdzdGF0X3RyYWNrX2FjdGl2 aXRpZXMpCisJeworCQkvKgorCQkgKiBBY2NvdW50IGZvciBtZW1vcnkgYmVmb3JlIHBnc3RhdHMg aXMgaW5pdGlhbGl6ZWQuIFRoaXMgd2lsbCBiZQorCQkgKiBtaWdyYXRlZCB0byBwZ3N0YXRzIG9u IGluaXRpYWxpemF0aW9uLgorCQkgKi8KKwkJYmFja2VuZF9hbGxvY2F0ZWRfYnl0ZXMgKz0gYWxs b2NhdGlvbjsKKworCQlyZXR1cm47CisJfQorCisJLyoKKwkgKiBVcGRhdGUgbXkgc3RhdHVzIGVu dHJ5LCBmb2xsb3dpbmcgdGhlIHByb3RvY29sIG9mIGJ1bXBpbmcKKwkgKiBzdF9jaGFuZ2Vjb3Vu dCBiZWZvcmUgYW5kIGFmdGVyLiAgV2UgdXNlIGEgdm9sYXRpbGUgcG9pbnRlciBoZXJlIHRvCisJ ICogZW5zdXJlIHRoZSBjb21waWxlciBkb2Vzbid0IHRyeSB0byBnZXQgY3V0ZS4KKwkgKi8KKwlQ R1NUQVRfQkVHSU5fV1JJVEVfQUNUSVZJVFkoYmVlbnRyeSk7CisJYmVlbnRyeS0+YmFja2VuZF9h bGxvY2F0ZWRfYnl0ZXMgKz0gYWxsb2NhdGlvbjsKKwlQR1NUQVRfRU5EX1dSSVRFX0FDVElWSVRZ KGJlZW50cnkpOworfQorCisvKiAtLS0tLS0tLQorICogcGdzdGF0X3JlcG9ydF9iYWNrZW5kX2Fs bG9jYXRlZF9ieXRlc19kZWNyZWFzZSgpIC0KKyAqCisgKiBDYWxsZWQgdG8gcmVwb3J0IGRlY3Jl YXNlIGluIG1lbW9yeSBhbGxvY2F0ZWQgZm9yIHRoaXMgYmFja2VuZAorICogLS0tLS0tLS0KKyAq Lwordm9pZAorcGdzdGF0X3JlcG9ydF9iYWNrZW5kX2FsbG9jYXRlZF9ieXRlc19kZWNyZWFzZSh1 aW50NjQgZGVhbGxvY2F0aW9uKQoreworCXZvbGF0aWxlIFBnQmFja2VuZFN0YXR1cyAqYmVlbnRy eSA9IE15QkVFbnRyeTsKKworCS8qCisJICogQ2FzZXMgbWF5IG9jY3VyIHdoZXJlIHNoYXJlZCBt ZW1vcnkgZnJvbSBhIHByZXZpb3VzIHBvc3RtYXN0ZXIKKwkgKiBpbnZvY2F0aW9uIHN0aWxsIGV4 aXN0LiBUaGVzZSBhcmUgY2xlYW5lZCB1cCBhdCBzdGFydHVwIGJ5CisJICogZHNtX2NsZWFudXBf dXNpbmdfY29udHJvbF9zZWdtZW50LiBMaW1pdCBkZWNyZWFzaW5nIG1lbW9yeSBhbGxvY2F0ZWQg dG8KKwkgKiB6ZXJvIGluIGNhc2Ugbm8gY29ycmVzcG9uZGluZyBwcmlvciBpbmNyZWFzZSBleGlz dHMgb3IgZGVjcmVhc2UgaGFzCisJICogYWxyZWFkeSBiZWVuIGFjY291bnRlZCBmb3IuCisJICov CisKKwlpZiAoIWJlZW50cnkgfHwgIXBnc3RhdF90cmFja19hY3Rpdml0aWVzKQorCXsKKwkJLyoK KwkJICogQWNjb3VudCBmb3IgbWVtb3J5IGJlZm9yZSBwZ3N0YXRzIGlzIGluaXRpYWxpemVkLiBU aGlzIHdpbGwgYmUKKwkJICogbWlncmF0ZWQgdG8gcGdzdGF0cyBvbiBpbml0aWFsaXphdGlvbi4g RG8gbm90IGFsbG93CisJCSAqIGJhY2tlbmRfYWxsb2NhdGVkX2J5dGVzIHRvIGdvIGJlbG93IHpl cm8uIElmIHBnc3RhdHMgaGFzIG5vdCBiZWVuCisJCSAqIGluaXRpYWxpemVkLCB3ZSBhcmUgaW4g c3RhcnR1cCBhbmQgd2Ugc2V0IGJhY2tlbmRfYWxsb2NhdGVkX2J5dGVzCisJCSAqIHRvIHplcm8g aW4gY2FzZXMgd2hlcmUgaXQgd291bGQgZ28gbmVnYXRpdmUgYW5kIHNraXAgZ2VuZXJhdGluZyBh bgorCQkgKiBlcmVwb3J0LgorCQkgKi8KKwkJaWYgKGRlYWxsb2NhdGlvbiA+IGJhY2tlbmRfYWxs b2NhdGVkX2J5dGVzKQorCQkJYmFja2VuZF9hbGxvY2F0ZWRfYnl0ZXMgPSAwOworCQllbHNlCisJ CQliYWNrZW5kX2FsbG9jYXRlZF9ieXRlcyAtPSBkZWFsbG9jYXRpb247CisKKwkJcmV0dXJuOwor CX0KKworCS8qCisJICogRG8gbm90IGFsbG93IGJhY2tlbmRfYWxsb2NhdGVkX2J5dGVzIHRvIGdv IGJlbG93IHplcm8uIGVyZXBvcnQgaWYgd2UKKwkgKiB3b3VsZCBoYXZlLiBUaGVyZSdzIG5vIG5l ZWQgZm9yIGEgbG9jayBhcm91bmQgdGhlIHJlYWQgaGVyZSBhcyBpdCdzCisJICogYmVpbmcgcmVm ZXJlbmNlZCBmcm9tIHRoZSBzYW1lIGJhY2tlbmQgd2hpY2ggbWVhbnMgdGhhdCB0aGVyZSBzaG91 bGRuJ3QKKwkgKiBiZSBjb25jdXJyZW50IHdyaXRlcy4gV2Ugd2FudCB0byBnZW5lcmF0ZSBhbiBl cmVwb3J0IGluIHRoZXNlIGNhc2VzLgorCSAqLworCWlmIChkZWFsbG9jYXRpb24gPiBiZWVudHJ5 LT5iYWNrZW5kX2FsbG9jYXRlZF9ieXRlcykKKwl7CisJCWVyZXBvcnQoTE9HLCBlcnJtc2coImRl Y3JlYXNlIHJlZHVjZXMgcmVwb3J0ZWQgYmFja2VuZCBtZW1vcnkgYWxsb2NhdGVkIGJlbG93IHpl cm87IHNldHRpbmcgcmVwb3J0ZWQgdG8gMCIpKTsKKworCQkvKgorCQkgKiBPdmVyd3JpdGUgZGVh bGxvY2F0aW9uIHdpdGggY3VycmVudCBiYWNrZW5kX2FsbG9jYXRlZF9ieXRlcyBzbyB3ZQorCQkg KiBlbmQgdXAgYXQgemVyby4KKwkJICovCisJCWRlYWxsb2NhdGlvbiA9IGJlZW50cnktPmJhY2tl bmRfYWxsb2NhdGVkX2J5dGVzOworCX0KKworCS8qCisJICogVXBkYXRlIG15IHN0YXR1cyBlbnRy eSwgZm9sbG93aW5nIHRoZSBwcm90b2NvbCBvZiBidW1waW5nCisJICogc3RfY2hhbmdlY291bnQg YmVmb3JlIGFuZCBhZnRlci4gIFdlIHVzZSBhIHZvbGF0aWxlIHBvaW50ZXIgaGVyZSB0bworCSAq IGVuc3VyZSB0aGUgY29tcGlsZXIgZG9lc24ndCB0cnkgdG8gZ2V0IGN1dGUuCisJICovCisJUEdT VEFUX0JFR0lOX1dSSVRFX0FDVElWSVRZKGJlZW50cnkpOworCWJlZW50cnktPmJhY2tlbmRfYWxs b2NhdGVkX2J5dGVzIC09IGRlYWxsb2NhdGlvbjsKKwlQR1NUQVRfRU5EX1dSSVRFX0FDVElWSVRZ KGJlZW50cnkpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3Bnc3RhdGZ1 bmNzLmMgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYwppbmRleCA5NmJmZmMw ZjJhLi5iNmQxMzVhZDJmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0 ZnVuY3MuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9hZHQvcGdzdGF0ZnVuY3MuYwpAQCAtNTUz LDcgKzU1Myw3IEBAIHBnX3N0YXRfZ2V0X3Byb2dyZXNzX2luZm8oUEdfRlVOQ1RJT05fQVJHUykK IERhdHVtCiBwZ19zdGF0X2dldF9hY3Rpdml0eShQR19GVU5DVElPTl9BUkdTKQogewotI2RlZmlu ZSBQR19TVEFUX0dFVF9BQ1RJVklUWV9DT0xTCTMwCisjZGVmaW5lIFBHX1NUQVRfR0VUX0FDVElW SVRZX0NPTFMJMzEKIAlpbnQJCQludW1fYmFja2VuZHMgPSBwZ3N0YXRfZmV0Y2hfc3RhdF9udW1i YWNrZW5kcygpOwogCWludAkJCWN1cnJfYmFja2VuZDsKIAlpbnQJCQlwaWQgPSBQR19BUkdJU05V TEwoMCkgPyAtMSA6IFBHX0dFVEFSR19JTlQzMigwKTsKQEAgLTYwOSw2ICs2MDksOCBAQCBwZ19z dGF0X2dldF9hY3Rpdml0eShQR19GVU5DVElPTl9BUkdTKQogCQllbHNlCiAJCQludWxsc1sxNl0g PSB0cnVlOwogCisJCXZhbHVlc1szMF0gPSBVSW50NjRHZXREYXR1bShiZWVudHJ5LT5iYWNrZW5k X2FsbG9jYXRlZF9ieXRlcyk7CisKIAkJLyogVmFsdWVzIG9ubHkgYXZhaWxhYmxlIHRvIHJvbGUg bWVtYmVyIG9yIHBnX3JlYWRfYWxsX3N0YXRzICovCiAJCWlmIChIQVNfUEdTVEFUX1BFUk1JU1NJ T05TKGJlZW50cnktPnN0X3VzZXJpZCkpCiAJCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0 aWxzL21tZ3IvYXNldC5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvbW1nci9hc2V0LmMKaW5kZXggYjZh OGJiY2Q1OS4uODFlNjJlNDk4MSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbW1nci9h c2V0LmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbW1nci9hc2V0LmMKQEAgLTQ3LDYgKzQ3LDcg QEAKICNpbmNsdWRlICJwb3N0Z3Jlcy5oIgogCiAjaW5jbHVkZSAicG9ydC9wZ19iaXR1dGlscy5o IgorI2luY2x1ZGUgInV0aWxzL2JhY2tlbmRfc3RhdHVzLmgiCiAjaW5jbHVkZSAidXRpbHMvbWVt ZGVidWcuaCIKICNpbmNsdWRlICJ1dGlscy9tZW11dGlscy5oIgogI2luY2x1ZGUgInV0aWxzL21l bXV0aWxzX21lbW9yeWNodW5rLmgiCkBAIC01MjEsNiArNTIyLDcgQEAgQWxsb2NTZXRDb250ZXh0 Q3JlYXRlSW50ZXJuYWwoTWVtb3J5Q29udGV4dCBwYXJlbnQsCiAJCQkJCQluYW1lKTsKIAogCSgo TWVtb3J5Q29udGV4dCkgc2V0KS0+bWVtX2FsbG9jYXRlZCA9IGZpcnN0QmxvY2tTaXplOworCXBn c3RhdF9yZXBvcnRfYmFja2VuZF9hbGxvY2F0ZWRfYnl0ZXNfaW5jcmVhc2UoZmlyc3RCbG9ja1Np emUpOwogCiAJcmV0dXJuIChNZW1vcnlDb250ZXh0KSBzZXQ7CiB9CkBAIC01NDMsNiArNTQ1LDcg QEAgQWxsb2NTZXRSZXNldChNZW1vcnlDb250ZXh0IGNvbnRleHQpCiAJQWxsb2NTZXQJc2V0ID0g KEFsbG9jU2V0KSBjb250ZXh0OwogCUFsbG9jQmxvY2sJYmxvY2s7CiAJU2l6ZQkJa2VlcGVyc2l6 ZSBQR19VU0VEX0ZPUl9BU1NFUlRTX09OTFk7CisJdWludDY0CQlkZWFsbG9jYXRpb24gPSAwOwog CiAJQXNzZXJ0KEFsbG9jU2V0SXNWYWxpZChzZXQpKTsKIApAQCAtNTg1LDYgKzU4OCw3IEBAIEFs bG9jU2V0UmVzZXQoTWVtb3J5Q29udGV4dCBjb250ZXh0KQogCQl7CiAJCQkvKiBOb3JtYWwgY2Fz ZSwgcmVsZWFzZSB0aGUgYmxvY2sgKi8KIAkJCWNvbnRleHQtPm1lbV9hbGxvY2F0ZWQgLT0gYmxv Y2stPmVuZHB0ciAtICgoY2hhciAqKSBibG9jayk7CisJCQlkZWFsbG9jYXRpb24gKz0gYmxvY2st PmVuZHB0ciAtICgoY2hhciAqKSBibG9jayk7CiAKICNpZmRlZiBDTE9CQkVSX0ZSRUVEX01FTU9S WQogCQkJd2lwZV9tZW0oYmxvY2ssIGJsb2NrLT5mcmVlcHRyIC0gKChjaGFyICopIGJsb2NrKSk7 CkBAIC01OTUsNiArNTk5LDcgQEAgQWxsb2NTZXRSZXNldChNZW1vcnlDb250ZXh0IGNvbnRleHQp CiAJfQogCiAJQXNzZXJ0KGNvbnRleHQtPm1lbV9hbGxvY2F0ZWQgPT0ga2VlcGVyc2l6ZSk7CisJ cGdzdGF0X3JlcG9ydF9iYWNrZW5kX2FsbG9jYXRlZF9ieXRlc19kZWNyZWFzZShkZWFsbG9jYXRp b24pOwogCiAJLyogUmVzZXQgYmxvY2sgc2l6ZSBhbGxvY2F0aW9uIHNlcXVlbmNlLCB0b28gKi8K IAlzZXQtPm5leHRCbG9ja1NpemUgPSBzZXQtPmluaXRCbG9ja1NpemU7CkBAIC02MTMsNiArNjE4 LDcgQEAgQWxsb2NTZXREZWxldGUoTWVtb3J5Q29udGV4dCBjb250ZXh0KQogCUFsbG9jU2V0CXNl dCA9IChBbGxvY1NldCkgY29udGV4dDsKIAlBbGxvY0Jsb2NrCWJsb2NrID0gc2V0LT5ibG9ja3M7 CiAJU2l6ZQkJa2VlcGVyc2l6ZSBQR19VU0VEX0ZPUl9BU1NFUlRTX09OTFk7CisJdWludDY0CQlk ZWFsbG9jYXRpb24gPSAwOwogCiAJQXNzZXJ0KEFsbG9jU2V0SXNWYWxpZChzZXQpKTsKIApAQCAt NjUxLDExICs2NTcsMTMgQEAgQWxsb2NTZXREZWxldGUoTWVtb3J5Q29udGV4dCBjb250ZXh0KQog CiAJCQkJZnJlZWxpc3QtPmZpcnN0X2ZyZWUgPSAoQWxsb2NTZXRDb250ZXh0ICopIG9sZHNldC0+ aGVhZGVyLm5leHRjaGlsZDsKIAkJCQlmcmVlbGlzdC0+bnVtX2ZyZWUtLTsKKwkJCQlkZWFsbG9j YXRpb24gKz0gb2xkc2V0LT5oZWFkZXIubWVtX2FsbG9jYXRlZDsKIAogCQkJCS8qIEFsbCB0aGF0 IHJlbWFpbnMgaXMgdG8gZnJlZSB0aGUgaGVhZGVyL2luaXRpYWwgYmxvY2sgKi8KIAkJCQlmcmVl KG9sZHNldCk7CiAJCQl9CiAJCQlBc3NlcnQoZnJlZWxpc3QtPm51bV9mcmVlID09IDApOworCQkJ cGdzdGF0X3JlcG9ydF9iYWNrZW5kX2FsbG9jYXRlZF9ieXRlc19kZWNyZWFzZShkZWFsbG9jYXRp b24pOwogCQl9CiAKIAkJLyogTm93IGFkZCB0aGUganVzdC1kZWxldGVkIGNvbnRleHQgdG8gdGhl IGZyZWVsaXN0LiAqLwpAQCAtNjcyLDcgKzY4MCwxMCBAQCBBbGxvY1NldERlbGV0ZShNZW1vcnlD b250ZXh0IGNvbnRleHQpCiAJCUFsbG9jQmxvY2sJbmV4dCA9IGJsb2NrLT5uZXh0OwogCiAJCWlm IChibG9jayAhPSBzZXQtPmtlZXBlcikKKwkJewogCQkJY29udGV4dC0+bWVtX2FsbG9jYXRlZCAt PSBibG9jay0+ZW5kcHRyIC0gKChjaGFyICopIGJsb2NrKTsKKwkJCWRlYWxsb2NhdGlvbiArPSBi bG9jay0+ZW5kcHRyIC0gKChjaGFyICopIGJsb2NrKTsKKwkJfQogCiAjaWZkZWYgQ0xPQkJFUl9G UkVFRF9NRU1PUlkKIAkJd2lwZV9tZW0oYmxvY2ssIGJsb2NrLT5mcmVlcHRyIC0gKChjaGFyICop IGJsb2NrKSk7CkBAIC02ODUsNiArNjk2LDggQEAgQWxsb2NTZXREZWxldGUoTWVtb3J5Q29udGV4 dCBjb250ZXh0KQogCX0KIAogCUFzc2VydChjb250ZXh0LT5tZW1fYWxsb2NhdGVkID09IGtlZXBl cnNpemUpOworCXBnc3RhdF9yZXBvcnRfYmFja2VuZF9hbGxvY2F0ZWRfYnl0ZXNfZGVjcmVhc2Uo ZGVhbGxvY2F0aW9uICsKKwkJCQkJCQkJCQkJCSAgIGNvbnRleHQtPm1lbV9hbGxvY2F0ZWQpOwog CiAJLyogRmluYWxseSwgZnJlZSB0aGUgY29udGV4dCBoZWFkZXIsIGluY2x1ZGluZyB0aGUga2Vl cGVyIGJsb2NrICovCiAJZnJlZShzZXQpOwpAQCAtNzM0LDYgKzc0Nyw3IEBAIEFsbG9jU2V0QWxs b2MoTWVtb3J5Q29udGV4dCBjb250ZXh0LCBTaXplIHNpemUpCiAJCQlyZXR1cm4gTlVMTDsKIAog CQljb250ZXh0LT5tZW1fYWxsb2NhdGVkICs9IGJsa3NpemU7CisJCXBnc3RhdF9yZXBvcnRfYmFj a2VuZF9hbGxvY2F0ZWRfYnl0ZXNfaW5jcmVhc2UoYmxrc2l6ZSk7CiAKIAkJYmxvY2stPmFzZXQg PSBzZXQ7CiAJCWJsb2NrLT5mcmVlcHRyID0gYmxvY2stPmVuZHB0ciA9ICgoY2hhciAqKSBibG9j aykgKyBibGtzaXplOwpAQCAtOTQ0LDYgKzk1OCw3IEBAIEFsbG9jU2V0QWxsb2MoTWVtb3J5Q29u dGV4dCBjb250ZXh0LCBTaXplIHNpemUpCiAJCQlyZXR1cm4gTlVMTDsKIAogCQljb250ZXh0LT5t ZW1fYWxsb2NhdGVkICs9IGJsa3NpemU7CisJCXBnc3RhdF9yZXBvcnRfYmFja2VuZF9hbGxvY2F0 ZWRfYnl0ZXNfaW5jcmVhc2UoYmxrc2l6ZSk7CiAKIAkJYmxvY2stPmFzZXQgPSBzZXQ7CiAJCWJs b2NrLT5mcmVlcHRyID0gKChjaGFyICopIGJsb2NrKSArIEFMTE9DX0JMT0NLSERSU1o7CkBAIC0x MDQzLDYgKzEwNTgsNyBAQCBBbGxvY1NldEZyZWUodm9pZCAqcG9pbnRlcikKIAkJCWJsb2NrLT5u ZXh0LT5wcmV2ID0gYmxvY2stPnByZXY7CiAKIAkJc2V0LT5oZWFkZXIubWVtX2FsbG9jYXRlZCAt PSBibG9jay0+ZW5kcHRyIC0gKChjaGFyICopIGJsb2NrKTsKKwkJcGdzdGF0X3JlcG9ydF9iYWNr ZW5kX2FsbG9jYXRlZF9ieXRlc19kZWNyZWFzZShibG9jay0+ZW5kcHRyIC0gKChjaGFyICopIGJs b2NrKSk7CiAKICNpZmRlZiBDTE9CQkVSX0ZSRUVEX01FTU9SWQogCQl3aXBlX21lbShibG9jaywg YmxvY2stPmZyZWVwdHIgLSAoKGNoYXIgKikgYmxvY2spKTsKQEAgLTExNzMsNyArMTE4OSw5IEBA IEFsbG9jU2V0UmVhbGxvYyh2b2lkICpwb2ludGVyLCBTaXplIHNpemUpCiAKIAkJLyogdXBkYXRl ZCBzZXBhcmF0ZWx5LCBub3QgdG8gdW5kZXJmbG93IHdoZW4gKG9sZGJsa3NpemUgPiBibGtzaXpl KSAqLwogCQlzZXQtPmhlYWRlci5tZW1fYWxsb2NhdGVkIC09IG9sZGJsa3NpemU7CisJCXBnc3Rh dF9yZXBvcnRfYmFja2VuZF9hbGxvY2F0ZWRfYnl0ZXNfZGVjcmVhc2Uob2xkYmxrc2l6ZSk7CiAJ CXNldC0+aGVhZGVyLm1lbV9hbGxvY2F0ZWQgKz0gYmxrc2l6ZTsKKwkJcGdzdGF0X3JlcG9ydF9i YWNrZW5kX2FsbG9jYXRlZF9ieXRlc19pbmNyZWFzZShibGtzaXplKTsKIAogCQlibG9jay0+ZnJl ZXB0ciA9IGJsb2NrLT5lbmRwdHIgPSAoKGNoYXIgKikgYmxvY2spICsgYmxrc2l6ZTsKIApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvdXRpbHMvbW1nci9nZW5lcmF0aW9uLmMgYi9zcmMvYmFja2Vu ZC91dGlscy9tbWdyL2dlbmVyYXRpb24uYwppbmRleCBiNDMyYTkyYmUzLi5kZjMwMDdlZGZiIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9tbWdyL2dlbmVyYXRpb24uYworKysgYi9zcmMv YmFja2VuZC91dGlscy9tbWdyL2dlbmVyYXRpb24uYwpAQCAtMzcsNiArMzcsNyBAQAogCiAjaW5j bHVkZSAibGliL2lsaXN0LmgiCiAjaW5jbHVkZSAicG9ydC9wZ19iaXR1dGlscy5oIgorI2luY2x1 ZGUgInV0aWxzL2JhY2tlbmRfc3RhdHVzLmgiCiAjaW5jbHVkZSAidXRpbHMvbWVtZGVidWcuaCIK ICNpbmNsdWRlICJ1dGlscy9tZW11dGlscy5oIgogI2luY2x1ZGUgInV0aWxzL21lbXV0aWxzX21l bW9yeWNodW5rLmgiCkBAIC0yNjcsNiArMjY4LDcgQEAgR2VuZXJhdGlvbkNvbnRleHRDcmVhdGUo TWVtb3J5Q29udGV4dCBwYXJlbnQsCiAJCQkJCQluYW1lKTsKIAogCSgoTWVtb3J5Q29udGV4dCkg c2V0KS0+bWVtX2FsbG9jYXRlZCA9IGZpcnN0QmxvY2tTaXplOworCXBnc3RhdF9yZXBvcnRfYmFj a2VuZF9hbGxvY2F0ZWRfYnl0ZXNfaW5jcmVhc2UoZmlyc3RCbG9ja1NpemUpOwogCiAJcmV0dXJu IChNZW1vcnlDb250ZXh0KSBzZXQ7CiB9CkBAIC0yODMsNiArMjg1LDcgQEAgR2VuZXJhdGlvblJl c2V0KE1lbW9yeUNvbnRleHQgY29udGV4dCkKIHsKIAlHZW5lcmF0aW9uQ29udGV4dCAqc2V0ID0g KEdlbmVyYXRpb25Db250ZXh0ICopIGNvbnRleHQ7CiAJZGxpc3RfbXV0YWJsZV9pdGVyIG1pdGVy OworCXVpbnQ2NAkJZGVhbGxvY2F0aW9uID0gMDsKIAogCUFzc2VydChHZW5lcmF0aW9uSXNWYWxp ZChzZXQpKTsKIApAQCAtMzA1LDkgKzMwOCwxNCBAQCBHZW5lcmF0aW9uUmVzZXQoTWVtb3J5Q29u dGV4dCBjb250ZXh0KQogCQlpZiAoYmxvY2sgPT0gc2V0LT5rZWVwZXIpCiAJCQlHZW5lcmF0aW9u QmxvY2tNYXJrRW1wdHkoYmxvY2spOwogCQllbHNlCisJCXsKKwkJCWRlYWxsb2NhdGlvbiArPSBi bG9jay0+Ymxrc2l6ZTsKIAkJCUdlbmVyYXRpb25CbG9ja0ZyZWUoc2V0LCBibG9jayk7CisJCX0K IAl9CiAKKwlwZ3N0YXRfcmVwb3J0X2JhY2tlbmRfYWxsb2NhdGVkX2J5dGVzX2RlY3JlYXNlKGRl YWxsb2NhdGlvbik7CisKIAkvKiBzZXQgaXQgc28gbmV3IGFsbG9jYXRpb25zIHRvIG1ha2UgdXNl IG9mIHRoZSBrZWVwZXIgYmxvY2sgKi8KIAlzZXQtPmJsb2NrID0gc2V0LT5rZWVwZXI7CiAKQEAg LTMyOCw2ICszMzYsOSBAQCBHZW5lcmF0aW9uRGVsZXRlKE1lbW9yeUNvbnRleHQgY29udGV4dCkK IHsKIAkvKiBSZXNldCB0byByZWxlYXNlIGFsbCByZWxlYXNhYmxlIEdlbmVyYXRpb25CbG9ja3Mg Ki8KIAlHZW5lcmF0aW9uUmVzZXQoY29udGV4dCk7CisKKwlwZ3N0YXRfcmVwb3J0X2JhY2tlbmRf YWxsb2NhdGVkX2J5dGVzX2RlY3JlYXNlKGNvbnRleHQtPm1lbV9hbGxvY2F0ZWQpOworCiAJLyog QW5kIGZyZWUgdGhlIGNvbnRleHQgaGVhZGVyIGFuZCBrZWVwZXIgYmxvY2sgKi8KIAlmcmVlKGNv bnRleHQpOwogfQpAQCAtMzc0LDYgKzM4NSw3IEBAIEdlbmVyYXRpb25BbGxvYyhNZW1vcnlDb250 ZXh0IGNvbnRleHQsIFNpemUgc2l6ZSkKIAkJCXJldHVybiBOVUxMOwogCiAJCWNvbnRleHQtPm1l bV9hbGxvY2F0ZWQgKz0gYmxrc2l6ZTsKKwkJcGdzdGF0X3JlcG9ydF9iYWNrZW5kX2FsbG9jYXRl ZF9ieXRlc19pbmNyZWFzZShibGtzaXplKTsKIAogCQkvKiBibG9jayB3aXRoIGEgc2luZ2xlICh1 c2VkKSBjaHVuayAqLwogCQlibG9jay0+Y29udGV4dCA9IHNldDsKQEAgLTQ3Nyw2ICs0ODksNyBA QCBHZW5lcmF0aW9uQWxsb2MoTWVtb3J5Q29udGV4dCBjb250ZXh0LCBTaXplIHNpemUpCiAJCQkJ cmV0dXJuIE5VTEw7CiAKIAkJCWNvbnRleHQtPm1lbV9hbGxvY2F0ZWQgKz0gYmxrc2l6ZTsKKwkJ CXBnc3RhdF9yZXBvcnRfYmFja2VuZF9hbGxvY2F0ZWRfYnl0ZXNfaW5jcmVhc2UoYmxrc2l6ZSk7 CiAKIAkJCS8qIGluaXRpYWxpemUgdGhlIG5ldyBibG9jayAqLwogCQkJR2VuZXJhdGlvbkJsb2Nr SW5pdChzZXQsIGJsb2NrLCBibGtzaXplKTsKQEAgLTcyNiw2ICs3MzksOCBAQCBHZW5lcmF0aW9u RnJlZSh2b2lkICpwb2ludGVyKQogCWRsaXN0X2RlbGV0ZSgmYmxvY2stPm5vZGUpOwogCiAJc2V0 LT5oZWFkZXIubWVtX2FsbG9jYXRlZCAtPSBibG9jay0+Ymxrc2l6ZTsKKwlwZ3N0YXRfcmVwb3J0 X2JhY2tlbmRfYWxsb2NhdGVkX2J5dGVzX2RlY3JlYXNlKGJsb2NrLT5ibGtzaXplKTsKKwogCWZy ZWUoYmxvY2spOwogfQogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9tbWdyL3NsYWIu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL21tZ3Ivc2xhYi5jCmluZGV4IDZkZjA4MzliNmEuLjUzMmMw Mzg5NzMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21tZ3Ivc2xhYi5jCisrKyBiL3Ny Yy9iYWNrZW5kL3V0aWxzL21tZ3Ivc2xhYi5jCkBAIC01Myw2ICs1Myw3IEBACiAjaW5jbHVkZSAi cG9zdGdyZXMuaCIKIAogI2luY2x1ZGUgImxpYi9pbGlzdC5oIgorI2luY2x1ZGUgInV0aWxzL2Jh Y2tlbmRfc3RhdHVzLmgiCiAjaW5jbHVkZSAidXRpbHMvbWVtZGVidWcuaCIKICNpbmNsdWRlICJ1 dGlscy9tZW11dGlscy5oIgogI2luY2x1ZGUgInV0aWxzL21lbXV0aWxzX21lbW9yeWNodW5rLmgi CkBAIC0yMzgsNiArMjM5LDEyIEBAIFNsYWJDb250ZXh0Q3JlYXRlKE1lbW9yeUNvbnRleHQgcGFy ZW50LAogCQkJCQkJcGFyZW50LAogCQkJCQkJbmFtZSk7CiAKKwkvKgorCSAqIElmIFNsYWJDb250 ZXh0Q3JlYXRlIGlzIHVwZGF0ZWQgdG8gYWRkIGhlYWRlclNpemUgdG8KKwkgKiBjb250ZXh0LT5t ZW1fYWxsb2NhdGVkLCB0aGVuIHVwZGF0ZSBoZXJlIGFuZCBTbGFiRGVsZXRlIGFwcHJvcHJpYXRl bHkKKwkgKi8KKwlwZ3N0YXRfcmVwb3J0X2JhY2tlbmRfYWxsb2NhdGVkX2J5dGVzX2luY3JlYXNl KGhlYWRlclNpemUpOworCiAJcmV0dXJuIChNZW1vcnlDb250ZXh0KSBzbGFiOwogfQogCkBAIC0y NTMsNiArMjYwLDcgQEAgU2xhYlJlc2V0KE1lbW9yeUNvbnRleHQgY29udGV4dCkKIHsKIAlTbGFi Q29udGV4dCAqc2xhYiA9IChTbGFiQ29udGV4dCAqKSBjb250ZXh0OwogCWludAkJCWk7CisJdWlu dDY0CQlkZWFsbG9jYXRpb24gPSAwOwogCiAJQXNzZXJ0KFNsYWJJc1ZhbGlkKHNsYWIpKTsKIApA QCAtMjc4LDkgKzI4NiwxMSBAQCBTbGFiUmVzZXQoTWVtb3J5Q29udGV4dCBjb250ZXh0KQogCQkJ ZnJlZShibG9jayk7CiAJCQlzbGFiLT5uYmxvY2tzLS07CiAJCQljb250ZXh0LT5tZW1fYWxsb2Nh dGVkIC09IHNsYWItPmJsb2NrU2l6ZTsKKwkJCWRlYWxsb2NhdGlvbiArPSBzbGFiLT5ibG9ja1Np emU7CiAJCX0KIAl9CiAKKwlwZ3N0YXRfcmVwb3J0X2JhY2tlbmRfYWxsb2NhdGVkX2J5dGVzX2Rl Y3JlYXNlKGRlYWxsb2NhdGlvbik7CiAJc2xhYi0+bWluRnJlZUNodW5rcyA9IDA7CiAKIAlBc3Nl cnQoc2xhYi0+bmJsb2NrcyA9PSAwKTsKQEAgLTI5NCw4ICszMDQsMTcgQEAgU2xhYlJlc2V0KE1l bW9yeUNvbnRleHQgY29udGV4dCkKIHZvaWQKIFNsYWJEZWxldGUoTWVtb3J5Q29udGV4dCBjb250 ZXh0KQogeworCS8qCisJICogVW50aWwgaGVhZGVyIGFsbG9jYXRpb24gaXMgaW5jbHVkZWQgaW4g Y29udGV4dC0+bWVtX2FsbG9jYXRlZCwgY2FzdCB0bworCSAqIHNsYWIgYW5kIGRlY3JlbWVudCB0 aGUgaGVhZGVyU2l6ZQorCSAqLworCVNsYWJDb250ZXh0ICpzbGFiID0gY2FzdE5vZGUoU2xhYkNv bnRleHQsIGNvbnRleHQpOworCiAJLyogUmVzZXQgdG8gcmVsZWFzZSBhbGwgdGhlIFNsYWJCbG9j a3MgKi8KIAlTbGFiUmVzZXQoY29udGV4dCk7CisKKwlwZ3N0YXRfcmVwb3J0X2JhY2tlbmRfYWxs b2NhdGVkX2J5dGVzX2RlY3JlYXNlKHNsYWItPmhlYWRlclNpemUpOworCiAJLyogQW5kIGZyZWUg dGhlIGNvbnRleHQgaGVhZGVyICovCiAJZnJlZShjb250ZXh0KTsKIH0KQEAgLTM2NCw2ICszODMs NyBAQCBTbGFiQWxsb2MoTWVtb3J5Q29udGV4dCBjb250ZXh0LCBTaXplIHNpemUpCiAJCXNsYWIt Pm1pbkZyZWVDaHVua3MgPSBzbGFiLT5jaHVua3NQZXJCbG9jazsKIAkJc2xhYi0+bmJsb2NrcyAr PSAxOwogCQljb250ZXh0LT5tZW1fYWxsb2NhdGVkICs9IHNsYWItPmJsb2NrU2l6ZTsKKwkJcGdz dGF0X3JlcG9ydF9iYWNrZW5kX2FsbG9jYXRlZF9ieXRlc19pbmNyZWFzZShzbGFiLT5ibG9ja1Np emUpOwogCX0KIAogCS8qIGdyYWIgdGhlIGJsb2NrIGZyb20gdGhlIGZyZWVsaXN0IChldmVuIHRo ZSBuZXcgYmxvY2sgaXMgdGhlcmUpICovCkBAIC01MzcsNiArNTU3LDcgQEAgU2xhYkZyZWUodm9p ZCAqcG9pbnRlcikKIAkJZnJlZShibG9jayk7CiAJCXNsYWItPm5ibG9ja3MtLTsKIAkJc2xhYi0+ aGVhZGVyLm1lbV9hbGxvY2F0ZWQgLT0gc2xhYi0+YmxvY2tTaXplOworCQlwZ3N0YXRfcmVwb3J0 X2JhY2tlbmRfYWxsb2NhdGVkX2J5dGVzX2RlY3JlYXNlKHNsYWItPmJsb2NrU2l6ZSk7CiAJfQog CWVsc2UKIAkJZGxpc3RfcHVzaF9oZWFkKCZzbGFiLT5mcmVlbGlzdFtibG9jay0+bmZyZWVdLCAm YmxvY2stPm5vZGUpOwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRh dCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfcHJvYy5kYXQKaW5kZXggMjBmNWFhNTZlYS4uMWMz N2Y3ZGI1ZCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAorKysg Yi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0CkBAIC01MzQ3LDkgKzUzNDcsOSBAQAog ICBwcm9uYW1lID0+ICdwZ19zdGF0X2dldF9hY3Rpdml0eScsIHByb3Jvd3MgPT4gJzEwMCcsIHBy b2lzc3RyaWN0ID0+ICdmJywKICAgcHJvcmV0c2V0ID0+ICd0JywgcHJvdm9sYXRpbGUgPT4gJ3Mn LCBwcm9wYXJhbGxlbCA9PiAncicsCiAgIHByb3JldHR5cGUgPT4gJ3JlY29yZCcsIHByb2FyZ3R5 cGVzID0+ICdpbnQ0JywKLSAgcHJvYWxsYXJndHlwZXMgPT4gJ3tpbnQ0LG9pZCxpbnQ0LG9pZCx0 ZXh0LHRleHQsdGV4dCx0ZXh0LHRleHQsdGltZXN0YW1wdHosdGltZXN0YW1wdHosdGltZXN0YW1w dHosdGltZXN0YW1wdHosaW5ldCx0ZXh0LGludDQseGlkLHhpZCx0ZXh0LGJvb2wsdGV4dCx0ZXh0 LGludDQsdGV4dCxudW1lcmljLHRleHQsYm9vbCx0ZXh0LGJvb2wsaW50NCxpbnQ4fScsCi0gIHBy b2FyZ21vZGVzID0+ICd7aSxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8s byxvLG8sbyxvLG8sbyxvLG8sb30nLAotICBwcm9hcmduYW1lcyA9PiAne3BpZCxkYXRpZCxwaWQs dXNlc3lzaWQsYXBwbGljYXRpb25fbmFtZSxzdGF0ZSxxdWVyeSx3YWl0X2V2ZW50X3R5cGUsd2Fp dF9ldmVudCx4YWN0X3N0YXJ0LHF1ZXJ5X3N0YXJ0LGJhY2tlbmRfc3RhcnQsc3RhdGVfY2hhbmdl LGNsaWVudF9hZGRyLGNsaWVudF9ob3N0bmFtZSxjbGllbnRfcG9ydCxiYWNrZW5kX3hpZCxiYWNr ZW5kX3htaW4sYmFja2VuZF90eXBlLHNzbCxzc2x2ZXJzaW9uLHNzbGNpcGhlcixzc2xiaXRzLHNz bF9jbGllbnRfZG4sc3NsX2NsaWVudF9zZXJpYWwsc3NsX2lzc3Vlcl9kbixnc3NfYXV0aCxnc3Nf cHJpbmMsZ3NzX2VuYyxsZWFkZXJfcGlkLHF1ZXJ5X2lkfScsCisgIHByb2FsbGFyZ3R5cGVzID0+ ICd7aW50NCxvaWQsaW50NCxvaWQsdGV4dCx0ZXh0LHRleHQsdGV4dCx0ZXh0LHRpbWVzdGFtcHR6 LHRpbWVzdGFtcHR6LHRpbWVzdGFtcHR6LHRpbWVzdGFtcHR6LGluZXQsdGV4dCxpbnQ0LHhpZCx4 aWQsdGV4dCxib29sLHRleHQsdGV4dCxpbnQ0LHRleHQsbnVtZXJpYyx0ZXh0LGJvb2wsdGV4dCxi b29sLGludDQsaW50OCxpbnQ4fScsCisgIHByb2FyZ21vZGVzID0+ICd7aSxvLG8sbyxvLG8sbyxv LG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvLG8sbyxvfScsCisgIHBy b2FyZ25hbWVzID0+ICd7cGlkLGRhdGlkLHBpZCx1c2VzeXNpZCxhcHBsaWNhdGlvbl9uYW1lLHN0 YXRlLHF1ZXJ5LHdhaXRfZXZlbnRfdHlwZSx3YWl0X2V2ZW50LHhhY3Rfc3RhcnQscXVlcnlfc3Rh cnQsYmFja2VuZF9zdGFydCxzdGF0ZV9jaGFuZ2UsY2xpZW50X2FkZHIsY2xpZW50X2hvc3RuYW1l LGNsaWVudF9wb3J0LGJhY2tlbmRfeGlkLGJhY2tlbmRfeG1pbixiYWNrZW5kX3R5cGUsc3NsLHNz bHZlcnNpb24sc3NsY2lwaGVyLHNzbGJpdHMsc3NsX2NsaWVudF9kbixzc2xfY2xpZW50X3Nlcmlh bCxzc2xfaXNzdWVyX2RuLGdzc19hdXRoLGdzc19wcmluYyxnc3NfZW5jLGxlYWRlcl9waWQscXVl cnlfaWQsYmFja2VuZF9hbGxvY2F0ZWRfYnl0ZXN9JywKICAgcHJvc3JjID0+ICdwZ19zdGF0X2dl dF9hY3Rpdml0eScgfSwKIHsgb2lkID0+ICczMzE4JywKICAgZGVzY3IgPT4gJ3N0YXRpc3RpY3M6 IGluZm9ybWF0aW9uIGFib3V0IHByb2dyZXNzIG9mIGJhY2tlbmRzIHJ1bm5pbmcgbWFpbnRlbmFu Y2UgY29tbWFuZCcsCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGlscy9iYWNrZW5kX3N0YXR1 cy5oIGIvc3JjL2luY2x1ZGUvdXRpbHMvYmFja2VuZF9zdGF0dXMuaAppbmRleCBiNTgyYjQ2ZTlm Li43NWQ4N2U4MzA4IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91dGlscy9iYWNrZW5kX3N0YXR1 cy5oCisrKyBiL3NyYy9pbmNsdWRlL3V0aWxzL2JhY2tlbmRfc3RhdHVzLmgKQEAgLTE2OSw2ICsx NjksOSBAQCB0eXBlZGVmIHN0cnVjdCBQZ0JhY2tlbmRTdGF0dXMKIAogCS8qIHF1ZXJ5IGlkZW50 aWZpZXIsIG9wdGlvbmFsbHkgY29tcHV0ZWQgdXNpbmcgcG9zdF9wYXJzZV9hbmFseXplX2hvb2sg Ki8KIAl1aW50NjQJCXN0X3F1ZXJ5X2lkOworCisJLyogQ3VycmVudCBtZW1vcnkgYWxsb2NhdGVk IHRvIHRoaXMgYmFja2VuZCAqLworCXVpbnQ2NAkJYmFja2VuZF9hbGxvY2F0ZWRfYnl0ZXM7CiB9 IFBnQmFja2VuZFN0YXR1czsKIAogCkBAIC0zMTMsNyArMzE2LDkgQEAgZXh0ZXJuIGNvbnN0IGNo YXIgKnBnc3RhdF9nZXRfYmFja2VuZF9jdXJyZW50X2FjdGl2aXR5KGludCBwaWQsIGJvb2wgY2hl Y2tVc2VyKTsKIGV4dGVybiBjb25zdCBjaGFyICpwZ3N0YXRfZ2V0X2NyYXNoZWRfYmFja2VuZF9h Y3Rpdml0eShpbnQgcGlkLCBjaGFyICpidWZmZXIsCiAJCQkJCQkJCQkJCQkJICAgaW50IGJ1Zmxl bik7CiBleHRlcm4gdWludDY0IHBnc3RhdF9nZXRfbXlfcXVlcnlfaWQodm9pZCk7Ci0KK2V4dGVy biB2b2lkIHBnc3RhdF9yZXBvcnRfYmFja2VuZF9hbGxvY2F0ZWRfYnl0ZXNfaW5jcmVhc2UodWlu dDY0IGFsbG9jYXRpb24pOworZXh0ZXJuIHZvaWQgcGdzdGF0X3JlcG9ydF9iYWNrZW5kX2FsbG9j YXRlZF9ieXRlc19kZWNyZWFzZSh1aW50NjQgZGVhbGxvY2F0aW9uKTsKK2V4dGVybiB1aW50NjQg cGdzdGF0X2dldF9hbGxfYmFja2VuZF9tZW1vcnlfYWxsb2NhdGVkKHZvaWQpOwogCiAvKiAtLS0t LS0tLS0tCiAgKiBTdXBwb3J0IGZ1bmN0aW9ucyBmb3IgdGhlIFNRTC1jYWxsYWJsZSBmdW5jdGlv bnMgdG8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0IGIv c3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKaW5kZXggNjI0ZDBlNWFhZS4uYmE5 ZjQ5NDgwNiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQK KysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKQEAgLTE3NTMsMTAgKzE3 NTMsMTEgQEAgcGdfc3RhdF9hY3Rpdml0eXwgU0VMRUNUIHMuZGF0aWQsCiAgICAgcy5zdGF0ZSwK ICAgICBzLmJhY2tlbmRfeGlkLAogICAgIHMuYmFja2VuZF94bWluLAorICAgIHMuYmFja2VuZF9h bGxvY2F0ZWRfYnl0ZXMsCiAgICAgcy5xdWVyeV9pZCwKICAgICBzLnF1ZXJ5LAogICAgIHMuYmFj a2VuZF90eXBlCi0gICBGUk9NICgocGdfc3RhdF9nZXRfYWN0aXZpdHkoTlVMTDo6aW50ZWdlcikg cyhkYXRpZCwgcGlkLCB1c2VzeXNpZCwgYXBwbGljYXRpb25fbmFtZSwgc3RhdGUsIHF1ZXJ5LCB3 YWl0X2V2ZW50X3R5cGUsIHdhaXRfZXZlbnQsIHhhY3Rfc3RhcnQsIHF1ZXJ5X3N0YXJ0LCBiYWNr ZW5kX3N0YXJ0LCBzdGF0ZV9jaGFuZ2UsIGNsaWVudF9hZGRyLCBjbGllbnRfaG9zdG5hbWUsIGNs aWVudF9wb3J0LCBiYWNrZW5kX3hpZCwgYmFja2VuZF94bWluLCBiYWNrZW5kX3R5cGUsIHNzbCwg c3NsdmVyc2lvbiwgc3NsY2lwaGVyLCBzc2xiaXRzLCBzc2xfY2xpZW50X2RuLCBzc2xfY2xpZW50 X3NlcmlhbCwgc3NsX2lzc3Vlcl9kbiwgZ3NzX2F1dGgsIGdzc19wcmluYywgZ3NzX2VuYywgbGVh ZGVyX3BpZCwgcXVlcnlfaWQpCisgICBGUk9NICgocGdfc3RhdF9nZXRfYWN0aXZpdHkoTlVMTDo6 aW50ZWdlcikgcyhkYXRpZCwgcGlkLCB1c2VzeXNpZCwgYXBwbGljYXRpb25fbmFtZSwgc3RhdGUs IHF1ZXJ5LCB3YWl0X2V2ZW50X3R5cGUsIHdhaXRfZXZlbnQsIHhhY3Rfc3RhcnQsIHF1ZXJ5X3N0 YXJ0LCBiYWNrZW5kX3N0YXJ0LCBzdGF0ZV9jaGFuZ2UsIGNsaWVudF9hZGRyLCBjbGllbnRfaG9z dG5hbWUsIGNsaWVudF9wb3J0LCBiYWNrZW5kX3hpZCwgYmFja2VuZF94bWluLCBiYWNrZW5kX3R5 cGUsIHNzbCwgc3NsdmVyc2lvbiwgc3NsY2lwaGVyLCBzc2xiaXRzLCBzc2xfY2xpZW50X2RuLCBz c2xfY2xpZW50X3NlcmlhbCwgc3NsX2lzc3Vlcl9kbiwgZ3NzX2F1dGgsIGdzc19wcmluYywgZ3Nz X2VuYywgbGVhZGVyX3BpZCwgcXVlcnlfaWQsIGJhY2tlbmRfYWxsb2NhdGVkX2J5dGVzKQogICAg ICBMRUZUIEpPSU4gcGdfZGF0YWJhc2UgZCBPTiAoKHMuZGF0aWQgPSBkLm9pZCkpKQogICAgICBM RUZUIEpPSU4gcGdfYXV0aGlkIHUgT04gKChzLnVzZXN5c2lkID0gdS5vaWQpKSk7CiBwZ19zdGF0 X2FsbF9pbmRleGVzfCBTRUxFQ1QgYy5vaWQgQVMgcmVsaWQsCkBAIC0xODcxLDcgKzE4NzIsNyBA QCBwZ19zdGF0X2dzc2FwaXwgU0VMRUNUIHMucGlkLAogICAgIHMuZ3NzX2F1dGggQVMgZ3NzX2F1 dGhlbnRpY2F0ZWQsCiAgICAgcy5nc3NfcHJpbmMgQVMgcHJpbmNpcGFsLAogICAgIHMuZ3NzX2Vu YyBBUyBlbmNyeXB0ZWQKLSAgIEZST00gcGdfc3RhdF9nZXRfYWN0aXZpdHkoTlVMTDo6aW50ZWdl cikgcyhkYXRpZCwgcGlkLCB1c2VzeXNpZCwgYXBwbGljYXRpb25fbmFtZSwgc3RhdGUsIHF1ZXJ5 LCB3YWl0X2V2ZW50X3R5cGUsIHdhaXRfZXZlbnQsIHhhY3Rfc3RhcnQsIHF1ZXJ5X3N0YXJ0LCBi YWNrZW5kX3N0YXJ0LCBzdGF0ZV9jaGFuZ2UsIGNsaWVudF9hZGRyLCBjbGllbnRfaG9zdG5hbWUs IGNsaWVudF9wb3J0LCBiYWNrZW5kX3hpZCwgYmFja2VuZF94bWluLCBiYWNrZW5kX3R5cGUsIHNz bCwgc3NsdmVyc2lvbiwgc3NsY2lwaGVyLCBzc2xiaXRzLCBzc2xfY2xpZW50X2RuLCBzc2xfY2xp ZW50X3NlcmlhbCwgc3NsX2lzc3Vlcl9kbiwgZ3NzX2F1dGgsIGdzc19wcmluYywgZ3NzX2VuYywg bGVhZGVyX3BpZCwgcXVlcnlfaWQpCisgICBGUk9NIHBnX3N0YXRfZ2V0X2FjdGl2aXR5KE5VTEw6 OmludGVnZXIpIHMoZGF0aWQsIHBpZCwgdXNlc3lzaWQsIGFwcGxpY2F0aW9uX25hbWUsIHN0YXRl LCBxdWVyeSwgd2FpdF9ldmVudF90eXBlLCB3YWl0X2V2ZW50LCB4YWN0X3N0YXJ0LCBxdWVyeV9z dGFydCwgYmFja2VuZF9zdGFydCwgc3RhdGVfY2hhbmdlLCBjbGllbnRfYWRkciwgY2xpZW50X2hv c3RuYW1lLCBjbGllbnRfcG9ydCwgYmFja2VuZF94aWQsIGJhY2tlbmRfeG1pbiwgYmFja2VuZF90 eXBlLCBzc2wsIHNzbHZlcnNpb24sIHNzbGNpcGhlciwgc3NsYml0cywgc3NsX2NsaWVudF9kbiwg c3NsX2NsaWVudF9zZXJpYWwsIHNzbF9pc3N1ZXJfZG4sIGdzc19hdXRoLCBnc3NfcHJpbmMsIGdz c19lbmMsIGxlYWRlcl9waWQsIHF1ZXJ5X2lkLCBiYWNrZW5kX2FsbG9jYXRlZF9ieXRlcykKICAg V0hFUkUgKHMuY2xpZW50X3BvcnQgSVMgTk9UIE5VTEwpOwogcGdfc3RhdF9wcm9ncmVzc19hbmFs eXplfCBTRUxFQ1Qgcy5waWQsCiAgICAgcy5kYXRpZCwKQEAgLTIwNTIsNyArMjA1Myw3IEBAIHBn X3N0YXRfcmVwbGljYXRpb258IFNFTEVDVCBzLnBpZCwKICAgICB3LnN5bmNfcHJpb3JpdHksCiAg ICAgdy5zeW5jX3N0YXRlLAogICAgIHcucmVwbHlfdGltZQotICAgRlJPTSAoKHBnX3N0YXRfZ2V0 X2FjdGl2aXR5KE5VTEw6OmludGVnZXIpIHMoZGF0aWQsIHBpZCwgdXNlc3lzaWQsIGFwcGxpY2F0 aW9uX25hbWUsIHN0YXRlLCBxdWVyeSwgd2FpdF9ldmVudF90eXBlLCB3YWl0X2V2ZW50LCB4YWN0 X3N0YXJ0LCBxdWVyeV9zdGFydCwgYmFja2VuZF9zdGFydCwgc3RhdGVfY2hhbmdlLCBjbGllbnRf YWRkciwgY2xpZW50X2hvc3RuYW1lLCBjbGllbnRfcG9ydCwgYmFja2VuZF94aWQsIGJhY2tlbmRf eG1pbiwgYmFja2VuZF90eXBlLCBzc2wsIHNzbHZlcnNpb24sIHNzbGNpcGhlciwgc3NsYml0cywg c3NsX2NsaWVudF9kbiwgc3NsX2NsaWVudF9zZXJpYWwsIHNzbF9pc3N1ZXJfZG4sIGdzc19hdXRo LCBnc3NfcHJpbmMsIGdzc19lbmMsIGxlYWRlcl9waWQsIHF1ZXJ5X2lkKQorICAgRlJPTSAoKHBn X3N0YXRfZ2V0X2FjdGl2aXR5KE5VTEw6OmludGVnZXIpIHMoZGF0aWQsIHBpZCwgdXNlc3lzaWQs IGFwcGxpY2F0aW9uX25hbWUsIHN0YXRlLCBxdWVyeSwgd2FpdF9ldmVudF90eXBlLCB3YWl0X2V2 ZW50LCB4YWN0X3N0YXJ0LCBxdWVyeV9zdGFydCwgYmFja2VuZF9zdGFydCwgc3RhdGVfY2hhbmdl LCBjbGllbnRfYWRkciwgY2xpZW50X2hvc3RuYW1lLCBjbGllbnRfcG9ydCwgYmFja2VuZF94aWQs IGJhY2tlbmRfeG1pbiwgYmFja2VuZF90eXBlLCBzc2wsIHNzbHZlcnNpb24sIHNzbGNpcGhlciwg c3NsYml0cywgc3NsX2NsaWVudF9kbiwgc3NsX2NsaWVudF9zZXJpYWwsIHNzbF9pc3N1ZXJfZG4s IGdzc19hdXRoLCBnc3NfcHJpbmMsIGdzc19lbmMsIGxlYWRlcl9waWQsIHF1ZXJ5X2lkLCBiYWNr ZW5kX2FsbG9jYXRlZF9ieXRlcykKICAgICAgSk9JTiBwZ19zdGF0X2dldF93YWxfc2VuZGVycygp IHcocGlkLCBzdGF0ZSwgc2VudF9sc24sIHdyaXRlX2xzbiwgZmx1c2hfbHNuLCByZXBsYXlfbHNu LCB3cml0ZV9sYWcsIGZsdXNoX2xhZywgcmVwbGF5X2xhZywgc3luY19wcmlvcml0eSwgc3luY19z dGF0ZSwgcmVwbHlfdGltZSkgT04gKChzLnBpZCA9IHcucGlkKSkpCiAgICAgIExFRlQgSk9JTiBw Z19hdXRoaWQgdSBPTiAoKHMudXNlc3lzaWQgPSB1Lm9pZCkpKTsKIHBnX3N0YXRfcmVwbGljYXRp b25fc2xvdHN8IFNFTEVDVCBzLnNsb3RfbmFtZSwKQEAgLTIwODYsNyArMjA4Nyw3IEBAIHBnX3N0 YXRfc3NsfCBTRUxFQ1Qgcy5waWQsCiAgICAgcy5zc2xfY2xpZW50X2RuIEFTIGNsaWVudF9kbiwK ICAgICBzLnNzbF9jbGllbnRfc2VyaWFsIEFTIGNsaWVudF9zZXJpYWwsCiAgICAgcy5zc2xfaXNz dWVyX2RuIEFTIGlzc3Vlcl9kbgotICAgRlJPTSBwZ19zdGF0X2dldF9hY3Rpdml0eShOVUxMOjpp bnRlZ2VyKSBzKGRhdGlkLCBwaWQsIHVzZXN5c2lkLCBhcHBsaWNhdGlvbl9uYW1lLCBzdGF0ZSwg cXVlcnksIHdhaXRfZXZlbnRfdHlwZSwgd2FpdF9ldmVudCwgeGFjdF9zdGFydCwgcXVlcnlfc3Rh cnQsIGJhY2tlbmRfc3RhcnQsIHN0YXRlX2NoYW5nZSwgY2xpZW50X2FkZHIsIGNsaWVudF9ob3N0 bmFtZSwgY2xpZW50X3BvcnQsIGJhY2tlbmRfeGlkLCBiYWNrZW5kX3htaW4sIGJhY2tlbmRfdHlw ZSwgc3NsLCBzc2x2ZXJzaW9uLCBzc2xjaXBoZXIsIHNzbGJpdHMsIHNzbF9jbGllbnRfZG4sIHNz bF9jbGllbnRfc2VyaWFsLCBzc2xfaXNzdWVyX2RuLCBnc3NfYXV0aCwgZ3NzX3ByaW5jLCBnc3Nf ZW5jLCBsZWFkZXJfcGlkLCBxdWVyeV9pZCkKKyAgIEZST00gcGdfc3RhdF9nZXRfYWN0aXZpdHko TlVMTDo6aW50ZWdlcikgcyhkYXRpZCwgcGlkLCB1c2VzeXNpZCwgYXBwbGljYXRpb25fbmFtZSwg c3RhdGUsIHF1ZXJ5LCB3YWl0X2V2ZW50X3R5cGUsIHdhaXRfZXZlbnQsIHhhY3Rfc3RhcnQsIHF1 ZXJ5X3N0YXJ0LCBiYWNrZW5kX3N0YXJ0LCBzdGF0ZV9jaGFuZ2UsIGNsaWVudF9hZGRyLCBjbGll bnRfaG9zdG5hbWUsIGNsaWVudF9wb3J0LCBiYWNrZW5kX3hpZCwgYmFja2VuZF94bWluLCBiYWNr ZW5kX3R5cGUsIHNzbCwgc3NsdmVyc2lvbiwgc3NsY2lwaGVyLCBzc2xiaXRzLCBzc2xfY2xpZW50 X2RuLCBzc2xfY2xpZW50X3NlcmlhbCwgc3NsX2lzc3Vlcl9kbiwgZ3NzX2F1dGgsIGdzc19wcmlu YywgZ3NzX2VuYywgbGVhZGVyX3BpZCwgcXVlcnlfaWQsIGJhY2tlbmRfYWxsb2NhdGVkX2J5dGVz KQogICBXSEVSRSAocy5jbGllbnRfcG9ydCBJUyBOT1QgTlVMTCk7CiBwZ19zdGF0X3N1YnNjcmlw dGlvbnwgU0VMRUNUIHN1Lm9pZCBBUyBzdWJpZCwKICAgICBzdS5zdWJuYW1lLAotLSAKMi4yNS4x Cgo= --=-3Mcu7T4hj18yxgSwHRmk--