Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1r2YWd-00HOPV-OR for pgsql-hackers@arkaria.postgresql.org; Mon, 13 Nov 2023 15:06:56 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1r2YWa-00G1Wx-ON for pgsql-hackers@arkaria.postgresql.org; Mon, 13 Nov 2023 15:06:52 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1r2YWa-00G1TT-8l for pgsql-hackers@lists.postgresql.org; Mon, 13 Nov 2023 15:06:52 +0000 Received: from smtp-fw-9102.amazon.com ([207.171.184.29]) by magus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1r2YWW-006EN4-N3 for pgsql-hackers@postgresql.org; Mon, 13 Nov 2023 15:06:50 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=amazon.com; i=@amazon.com; q=dns/txt; s=amazon201209; t=1699888009; x=1731424009; h=from:to:cc:date:message-id:references:in-reply-to: mime-version:subject; bh=uvXPmka8XHj9N09zO6Oijx5Eb20KFPjzzC9JDoO/zes=; b=M18tl/u//rLQ3SwWZJ1Cm7hrnUKAGjTkG4v1NXMxGQqsm9CT9Z5Qcsb5 HR9fqxKXkDq3RxBz3g5XtzdjArd2vGHjTGxx8VwNilMSvKJp+ATbGvXId poZlQ5XL0QfmQJW+S+ag63KCklSwNfyiURRQthbRqeD3qnQpyku/bgFL8 s=; X-Amazon-filename: pg_upgrade_improvements_v6.diff X-IronPort-AV: E=Sophos;i="6.03,299,1694736000"; d="diff'?scan'208";a="376018201" Subject: Re: pg_upgrade failing for 200+ million Large Objects Thread-Topic: pg_upgrade failing for 200+ million Large Objects Received: from pdx4-co-svc-p1-lb2-vlan3.amazon.com (HELO email-inbound-relay-iad-1a-m6i4x-47cc8a4c.us-east-1.amazon.com) ([10.25.36.214]) by smtp-border-fw-9102.sea19.amazon.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 13 Nov 2023 15:06:39 +0000 Received: from smtpout.prod.us-east-1.prod.farcaster.email.amazon.dev (iad7-ws-svc-p70-lb3-vlan2.iad.amazon.com [10.32.235.34]) by email-inbound-relay-iad-1a-m6i4x-47cc8a4c.us-east-1.amazon.com (Postfix) with ESMTPS id A84D11600E0; Mon, 13 Nov 2023 15:06:34 +0000 (UTC) Received: from EX19MTAEUB002.ant.amazon.com [10.0.10.100:18426] by smtpin.naws.eu-west-1.prod.farcaster.email.amazon.dev [10.0.45.210:2525] with esmtp (Farcaster) id ac3fc93c-88c6-44c4-b26e-21fa6cfe57bc; Mon, 13 Nov 2023 15:06:33 +0000 (UTC) X-Farcaster-Flow-ID: ac3fc93c-88c6-44c4-b26e-21fa6cfe57bc Received: from EX19D040EUC001.ant.amazon.com (10.252.61.226) by EX19MTAEUB002.ant.amazon.com (10.252.51.59) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.39; Mon, 13 Nov 2023 15:06:32 +0000 Received: from EX19D040EUC002.ant.amazon.com (10.252.61.192) by EX19D040EUC001.ant.amazon.com (10.252.61.226) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1118.39; Mon, 13 Nov 2023 15:06:31 +0000 Received: from EX19D040EUC002.ant.amazon.com ([fe80::f5ad:6b9e:9eb3:808f]) by EX19D040EUC002.ant.amazon.com ([fe80::f5ad:6b9e:9eb3:808f%4]) with mapi id 15.02.1118.039; Mon, 13 Nov 2023 15:06:31 +0000 From: "Kumar, Sachin" To: Tom Lane CC: Jacob Champion , Nathan Bossart , Jan Wieck , Bruce Momjian , Zhihong Yu , Andrew Dunstan , Magnus Hagander , Robins Tharakan , Peter Eisentraut , "pgsql-hackers@postgresql.org" Thread-Index: AQHZ/dSQ82fNvcIj80qBVj8+n9DrarByaniAgAAScYCABg1lgA== Date: Mon, 13 Nov 2023 15:06:31 +0000 Message-ID: References: <986904.1616525964@sss.pgh.pa.us> <6cccaa33-c263-b8a2-b064-985605d33d25@wi3ck.info> <988415.1616528159@sss.pgh.pa.us> <872315a8-99fc-da4e-463d-784cfb5a025d@wi3ck.info> <1010642.1616532950@sss.pgh.pa.us> <802b96e9-f5e1-015c-dfb9-8756974b11fc@wi3ck.info> <0263bf35-05d6-02a1-519b-b7895a918314@wi3ck.info> <20220825003227.GA1456581@nathanxps13> <663393ca-b2ff-26f0-2e2d-adc942aff4fd@timescale.com> <20220908231807.GA2242918@nathanxps13> <0643CC11-223A-4039-AC34-94E127462796@amazon.com> <1152134.1699555261@sss.pgh.pa.us> In-Reply-To: <1152134.1699555261@sss.pgh.pa.us> Accept-Language: en-US Content-Language: en-GB X-MS-Has-Attach: yes X-MS-TNEF-Correlator: x-originating-ip: [10.106.82.21] Content-Type: multipart/mixed; boundary="_002_AD153893C4264249B7167A5360B6EC07amazoncom_" MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --_002_AD153893C4264249B7167A5360B6EC07amazoncom_ Content-Type: text/plain; charset="utf-8" Content-ID: <511D52B76A16814D850E027415D3EA72@amazon.com> Content-Transfer-Encoding: base64 PiBPbiAwOS8xMS8yMDIzLCAxODo0MSwgIlRvbSBMYW5lIiA8dGdsQHNzcy5wZ2gucGEudXMgPG1h aWx0bzp0Z2xAc3NzLnBnaC5wYS51cz4+IHdyb3RlOg0KPiBVbSAuLi4geW91IGRpZG4ndCBhdHRh Y2ggdGhlIHBhdGNoPw0KDQpTb3JyeSAsIHBhdGNoIGF0dGFjaGVkDQoNClJlZ2FyZHMNClNhY2hp bg0KDQoNCg== --_002_AD153893C4264249B7167A5360B6EC07amazoncom_ Content-Type: application/octet-stream; name="pg_upgrade_improvements_v6.diff" Content-Description: pg_upgrade_improvements_v6.diff Content-Disposition: attachment; filename="pg_upgrade_improvements_v6.diff"; size=24960; creation-date="Mon, 13 Nov 2023 15:06:31 GMT"; modification-date="Mon, 13 Nov 2023 15:06:31 GMT" Content-ID: Content-Transfer-Encoding: base64 Y29tbWl0IDYyNTYzY2Y5MTAzZWUwMWNlZmNmNmI0NzdkZTYzM2E4YTZhYzUwOGUKQXV0aG9yOiBT YWNoaW4gS3VtYXIgPHNzZXRpeWFAYW1hem9uLmNvbT4KRGF0ZTogICBUdWUgU2VwIDUgMTQ6MTQ6 NDAgMjAyMyArMDEwMAoKICAgIFByb3RvIFBhdGNoCgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19k dW1wL3BhcmFsbGVsLmMgYi9zcmMvYmluL3BnX2R1bXAvcGFyYWxsZWwuYwppbmRleCA4NWU2NTE1 YWMyLi45MzI4ODMwYjJlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGFyYWxsZWwuYwor KysgYi9zcmMvYmluL3BnX2R1bXAvcGFyYWxsZWwuYwpAQCAtODU4LDYgKzg1OCwxMSBAQCBSdW5X b3JrZXIoQXJjaGl2ZUhhbmRsZSAqQUgsIFBhcmFsbGVsU2xvdCAqc2xvdCkKIAkgKi8KIAlXYWl0 Rm9yQ29tbWFuZHMoQUgsIHBpcGVmZCk7CiAKKwkvKgorCSAqIENsb3NlIGFuIGV2ZW50dWFsbHkg b3BlbiBCTE9CIGJhdGNoIHRyYW5zYWN0aW9uLgorCSAqLworCUNvbW1pdEJsb2JUcmFuc2FjdGlv bigoQXJjaGl2ZSAqKUFIKTsKKwogCS8qCiAJICogRGlzY29ubmVjdCBmcm9tIGRhdGFiYXNlIGFu ZCBjbGVhbiB1cC4KIAkgKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAu aCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaAppbmRleCA5ZWYyZjIwMTdlLi42NTUxOTc5 MWU5IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwLmgKKysrIGIvc3JjL2Jp bi9wZ19kdW1wL3BnX2JhY2t1cC5oCkBAIC0yMjMsNiArMjIzLDggQEAgdHlwZWRlZiBzdHJ1Y3Qg QXJjaGl2ZQogCWludAkJCW51bVdvcmtlcnM7CQkvKiBudW1iZXIgb2YgcGFyYWxsZWwgcHJvY2Vz c2VzICovCiAJY2hhcgkgICAqc3luY19zbmFwc2hvdF9pZDsJLyogc3luYyBzbmFwc2hvdCBpZCBm b3IgcGFyYWxsZWwgb3BlcmF0aW9uICovCiAKKwlpbnQJCQlibG9iQmF0Y2hTaXplOwkvKiAjIG9m IGJsb2JzIHRvIHJlc3RvcmUgcGVyIHRyYW5zYWN0aW9uICovCisKIAkvKiBpbmZvIG5lZWRlZCBm b3Igc3RyaW5nIGVzY2FwaW5nICovCiAJaW50CQkJZW5jb2Rpbmc7CQkvKiBsaWJwcSBjb2RlIGZv ciBjbGllbnRfZW5jb2RpbmcgKi8KIAlib29sCQlzdGRfc3RyaW5nczsJLyogc3RhbmRhcmRfY29u Zm9ybWluZ19zdHJpbmdzICovCkBAIC0yOTMsNiArMjk1LDcgQEAgZXh0ZXJuIHZvaWQgV3JpdGVE YXRhKEFyY2hpdmUgKkFIWCwgY29uc3Qgdm9pZCAqZGF0YSwgc2l6ZV90IGRMZW4pOwogZXh0ZXJu IGludAlTdGFydExPKEFyY2hpdmUgKkFIWCwgT2lkIG9pZCk7CiBleHRlcm4gaW50CUVuZExPKEFy Y2hpdmUgKkFIWCwgT2lkIG9pZCk7CiAKK2V4dGVybiB2b2lkCUNvbW1pdEJsb2JUcmFuc2FjdGlv bihBcmNoaXZlICpBSCk7CiBleHRlcm4gdm9pZCBDbG9zZUFyY2hpdmUoQXJjaGl2ZSAqQUhYKTsK IAogZXh0ZXJuIHZvaWQgU2V0QXJjaGl2ZU9wdGlvbnMoQXJjaGl2ZSAqQUgsIER1bXBPcHRpb25z ICpkb3B0LCBSZXN0b3JlT3B0aW9ucyAqcm9wdCk7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1 bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwX2FyY2hp dmVyLmMKaW5kZXggMjU2ZDFlMzVhNC4uODhkZThjNjgyOSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9w Z19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNr dXBfYXJjaGl2ZXIuYwpAQCAtNDUsNiArNDUsNyBAQAogI2RlZmluZSBURVhUX0RVTVBfSEVBREVS ICItLVxuLS0gUG9zdGdyZVNRTCBkYXRhYmFzZSBkdW1wXG4tLVxuXG4iCiAjZGVmaW5lIFRFWFRf RFVNUEFMTF9IRUFERVIgIi0tXG4tLSBQb3N0Z3JlU1FMIGRhdGFiYXNlIGNsdXN0ZXIgZHVtcFxu LS1cblxuIgogCitzdGF0aWMgaW50CQlibG9iQmF0Y2hDb3VudCA9IDA7CiAKIHN0YXRpYyBBcmNo aXZlSGFuZGxlICpfYWxsb2NBSChjb25zdCBjaGFyICpGaWxlU3BlYywgY29uc3QgQXJjaGl2ZUZv cm1hdCBmbXQsCiAJCQkJCQkJICAgY29uc3QgcGdfY29tcHJlc3Nfc3BlY2lmaWNhdGlvbiBjb21w cmVzc2lvbl9zcGVjLApAQCAtMjU4LDYgKzI1OSwyMyBAQCBDbG9zZUFyY2hpdmUoQXJjaGl2ZSAq QUhYKQogCQlwZ19mYXRhbCgiY291bGQgbm90IGNsb3NlIG91dHB1dCBmaWxlOiAlbSIpOwogfQog CisvKiBQdWJsaWMgKi8KK3ZvaWQKK0NvbW1pdEJsb2JUcmFuc2FjdGlvbihBcmNoaXZlICpBSFgp Cit7CisJQXJjaGl2ZUhhbmRsZSAqQUggPSAoQXJjaGl2ZUhhbmRsZSAqKSBBSFg7CisKKwlpZiAo YmxvYkJhdGNoQ291bnQgPiAwKQorCXsKKwkJYWhwcmludGYoQUgsICItLVxuIik7CisJCWFocHJp bnRmKEFILCAiLS0gRW5kIEJMT0IgcmVzdG9yZSBiYXRjaFxuIik7CisJCWFocHJpbnRmKEFILCAi LS1cbiIpOworCQlhaHByaW50ZihBSCwgIkNPTU1JVDtcblxuIik7CisKKwkJYmxvYkJhdGNoQ291 bnQgPSAwOworCX0KK30KKwogLyogUHVibGljICovCiB2b2lkCiBTZXRBcmNoaXZlT3B0aW9ucyhB cmNoaXZlICpBSCwgRHVtcE9wdGlvbnMgKmRvcHQsIFJlc3RvcmVPcHRpb25zICpyb3B0KQpAQCAt NzE5LDYgKzczNyw4IEBAIFJlc3RvcmVBcmNoaXZlKEFyY2hpdmUgKkFIWCkKIAkJCWFocHJpbnRm KEFILCAiQ09NTUlUO1xuXG4iKTsKIAl9CiAKKwlDb21taXRCbG9iVHJhbnNhY3Rpb24oQUhYKTsK KwogCWlmIChBSC0+cHVibGljLnZlcmJvc2UpCiAJCWR1bXBUaW1lc3RhbXAoQUgsICJDb21wbGV0 ZWQgb24iLCB0aW1lKE5VTEwpKTsKIApAQCAtMzU0Myw2ICszNTYzLDU3IEBAIF9wcmludFRvY0Vu dHJ5KEFyY2hpdmVIYW5kbGUgKkFILCBUb2NFbnRyeSAqdGUsIGJvb2wgaXNEYXRhKQogewogCVJl c3RvcmVPcHRpb25zICpyb3B0ID0gQUgtPnB1YmxpYy5yb3B0OwogCisJLyogV2UgcmVzdG9yZSBC TE9CcyBpbiBiYXRjaGVzIHRvIHJlZHVjZSBYSUQgY29uc3VtcHRpb24gKi8KKwlpZiAoc3RyY21w KHRlLT5kZXNjLCAiQkxPQiIpID09IDAgJiYgQUgtPnB1YmxpYy5ibG9iQmF0Y2hTaXplID4gMCkK Kwl7CisJCWlmIChibG9iQmF0Y2hDb3VudCA+IDApCisJCXsKKwkJCS8qIFdlIGFyZSBpbnNpZGUg YSBCTE9CIHJlc3RvcmUgdHJhbnNhY3Rpb24gKi8KKwkJCWlmIChibG9iQmF0Y2hDb3VudCA+PSBB SC0+cHVibGljLmJsb2JCYXRjaFNpemUpCisJCQl7CisJCQkJLyoKKwkJCQkgKiBXZSBkaWQgcmVh Y2ggdGhlIGJhdGNoIHNpemUgd2l0aCB0aGUgcHJldmlvdXMgQkxPQi4KKwkJCQkgKiBDb21taXQg YW5kIHN0YXJ0IGEgbmV3IGJhdGNoLgorCQkJCSAqLworCQkJCWFocHJpbnRmKEFILCAiLS1cbiIp OworCQkJCWFocHJpbnRmKEFILCAiLS0gQkxPQiBiYXRjaCBzaXplIHJlYWNoZWRcbiIpOworCQkJ CWFocHJpbnRmKEFILCAiLS1cbiIpOworCQkJCWFocHJpbnRmKEFILCAiQ09NTUlUO1xuIik7CisJ CQkJYWhwcmludGYoQUgsICJCRUdJTjtcblxuIik7CisKKwkJCQlibG9iQmF0Y2hDb3VudCA9IDE7 CisJCQl9CisJCQllbHNlCisJCQl7CisJCQkJLyogVGhpcyBvbmUgc3RpbGwgZml0cyBpbnRvIHRo ZSBjdXJyZW50IGJhdGNoICovCisJCQkJYmxvYkJhdGNoQ291bnQrKzsKKwkJCX0KKwkJfQorCQll bHNlCisJCXsKKwkJCS8qIE5vdCBpbnNpZGUgYSB0cmFuc2FjdGlvbiwgc3RhcnQgYSBuZXcgYmF0 Y2ggKi8KKwkJCWFocHJpbnRmKEFILCAiLS1cbiIpOworCQkJYWhwcmludGYoQUgsICItLSBTdGFy dCBCTE9CIHJlc3RvcmUgYmF0Y2hcbiIpOworCQkJYWhwcmludGYoQUgsICItLVxuIik7CisJCQlh aHByaW50ZihBSCwgIkJFR0lOO1xuXG4iKTsKKworCQkJYmxvYkJhdGNoQ291bnQgPSAxOworCQl9 CisJfQorCWVsc2UKKwl7CisJCS8qIE5vdCBhIEJMT0IuIElmIHdlIGhhdmUgYSBCTE9CIGJhdGNo IG9wZW4sIGNsb3NlIGl0LiAqLworCQlpZiAoYmxvYkJhdGNoQ291bnQgPiAwKQorCQl7CisJCQlh aHByaW50ZihBSCwgIi0tXG4iKTsKKwkJCWFocHJpbnRmKEFILCAiLS0gRW5kIEJMT0IgcmVzdG9y ZSBiYXRjaFxuIik7CisJCQlhaHByaW50ZihBSCwgIi0tXG4iKTsKKwkJCWFocHJpbnRmKEFILCAi Q09NTUlUO1xuXG4iKTsKKworCQkJYmxvYkJhdGNoQ291bnQgPSAwOworCQl9CisJfQorCiAJLyog U2VsZWN0IG93bmVyLCBzY2hlbWEsIHRhYmxlc3BhY2UgYW5kIGRlZmF1bHQgQU0gYXMgbmVjZXNz YXJ5ICovCiAJX2JlY29tZU93bmVyKEFILCB0ZSk7CiAJX3NlbGVjdE91dHB1dFNjaGVtYShBSCwg dGUtPm5hbWVzcGFjZSk7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jIGIv c3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCBlODYzOTEzODQ5Li4yYzZkNDk3MzJiIDEw MDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4vcGdfZHVt cC9wZ19kdW1wLmMKQEAgLTIwNSwxMSArMjA1LDIwIEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBkdW1w Q29tbWVudChBcmNoaXZlICpmb3V0LCBjb25zdCBjaGFyICp0eXBlLAogCQkJCQkJCSAgIGNvbnN0 IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKm5hbWVzcGFjZSwKIAkJCQkJCQkgICBjb25zdCBjaGFy ICpvd25lciwgQ2F0YWxvZ0lkIGNhdGFsb2dJZCwKIAkJCQkJCQkgICBpbnQgc3ViaWQsIER1bXBJ ZCBkdW1wSWQpOworc3RhdGljIGJvb2wgZHVtcENvbW1lbnRRdWVyeShBcmNoaXZlICpmb3V0LCBQ UUV4cEJ1ZmZlciBxdWVyeSwgUFFFeHBCdWZmZXIgdGFnLAorCQkJCQkJCSBjb25zdCBjaGFyICp0 eXBlLCBjb25zdCBjaGFyICpuYW1lLAorCQkJCQkJCSBjb25zdCBjaGFyICpuYW1lc3BhY2UsIGNv bnN0IGNoYXIgKm93bmVyLAorCQkJCQkJCSBDYXRhbG9nSWQgY2F0YWxvZ0lkLCBpbnQgc3ViaWQs IER1bXBJZCBkdW1wSWQsCisJCQkJCQkJIGNvbnN0IGNoYXIgKmluaXRkYl9jb21tZW50KTsKIHN0 YXRpYyBpbnQJZmluZENvbW1lbnRzKE9pZCBjbGFzc29pZCwgT2lkIG9iam9pZCwgQ29tbWVudEl0 ZW0gKippdGVtcyk7CiBzdGF0aWMgdm9pZCBjb2xsZWN0Q29tbWVudHMoQXJjaGl2ZSAqZm91dCk7 CiBzdGF0aWMgdm9pZCBkdW1wU2VjTGFiZWwoQXJjaGl2ZSAqZm91dCwgY29uc3QgY2hhciAqdHlw ZSwgY29uc3QgY2hhciAqbmFtZSwKIAkJCQkJCSBjb25zdCBjaGFyICpuYW1lc3BhY2UsIGNvbnN0 IGNoYXIgKm93bmVyLAogCQkJCQkJIENhdGFsb2dJZCBjYXRhbG9nSWQsIGludCBzdWJpZCwgRHVt cElkIGR1bXBJZCk7CitzdGF0aWMgYm9vbCBkdW1wU2VjTGFiZWxRdWVyeShBcmNoaXZlICpmb3V0 LCBQUUV4cEJ1ZmZlciBxdWVyeSwgUFFFeHBCdWZmZXIgdGFnLAorCQkJCQkJCSAgY29uc3QgY2hh ciAqdHlwZSwgY29uc3QgY2hhciAqbmFtZSwKKwkJCQkJCQkgIGNvbnN0IGNoYXIgKm5hbWVzcGFj ZSwgY29uc3QgY2hhciAqb3duZXIsCisJCQkJCQkJICBDYXRhbG9nSWQgY2F0YWxvZ0lkLCBpbnQg c3ViaWQsIER1bXBJZCBkdW1wSWQpOwogc3RhdGljIGludAlmaW5kU2VjTGFiZWxzKE9pZCBjbGFz c29pZCwgT2lkIG9iam9pZCwgU2VjTGFiZWxJdGVtICoqaXRlbXMpOwogc3RhdGljIHZvaWQgY29s bGVjdFNlY0xhYmVscyhBcmNoaXZlICpmb3V0KTsKIHN0YXRpYyB2b2lkIGR1bXBEdW1wYWJsZU9i amVjdChBcmNoaXZlICpmb3V0LCBEdW1wYWJsZU9iamVjdCAqZG9iaik7CkBAIC0yNjUsNiArMjc0 LDEyIEBAIHN0YXRpYyBEdW1wSWQgZHVtcEFDTChBcmNoaXZlICpmb3V0LCBEdW1wSWQgb2JqRHVt cElkLCBEdW1wSWQgYWx0RHVtcElkLAogCQkJCQkgIGNvbnN0IGNoYXIgKnR5cGUsIGNvbnN0IGNo YXIgKm5hbWUsIGNvbnN0IGNoYXIgKnN1Ym5hbWUsCiAJCQkJCSAgY29uc3QgY2hhciAqbnNwbmFt ZSwgY29uc3QgY2hhciAqb3duZXIsCiAJCQkJCSAgY29uc3QgRHVtcGFibGVBY2wgKmRhY2wpOwor c3RhdGljIGJvb2wgZHVtcEFDTFF1ZXJ5KEFyY2hpdmUgKmZvdXQsIFBRRXhwQnVmZmVyIHF1ZXJ5 LCBQUUV4cEJ1ZmZlciB0YWcsCisJCQkJCQkgRHVtcElkIG9iakR1bXBJZCwgRHVtcElkIGFsdER1 bXBJZCwKKwkJCQkJCSBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpuYW1lLAorCQkJCQkJ IGNvbnN0IGNoYXIgKnN1Ym5hbWUsCisJCQkJCQkgY29uc3QgY2hhciAqbnNwbmFtZSwgY29uc3Qg Y2hhciAqb3duZXIsCisJCQkJCQkgY29uc3QgRHVtcGFibGVBY2wgKmRhY2wpOwogCiBzdGF0aWMg dm9pZCBnZXREZXBlbmRlbmNpZXMoQXJjaGl2ZSAqZm91dCk7CiBzdGF0aWMgdm9pZCBCdWlsZEFy Y2hpdmVEZXBlbmRlbmNpZXMoQXJjaGl2ZSAqZm91dCk7CkBAIC0zNjQxLDEwICszNjU2LDQyIEBA IGR1bXBMTyhBcmNoaXZlICpmb3V0LCBjb25zdCBMb0luZm8gKmxvaW5mbykKIHsKIAlQUUV4cEJ1 ZmZlciBjcXVlcnkgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOwogCVBRRXhwQnVmZmVyIGRxdWVyeSA9 IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisJUFFFeHBCdWZmZXIgdGFnICAgID0gY3JlYXRlUFFFeHBC dWZmZXIoKTsKKwl0ZVNlY3Rpb24Jc2VjdGlvbiA9IFNFQ1RJT05fUFJFX0RBVEE7CiAKIAlhcHBl bmRQUUV4cEJ1ZmZlcihjcXVlcnksCiAJCQkJCSAgIlNFTEVDVCBwZ19jYXRhbG9nLmxvX2NyZWF0 ZSgnJXMnKTtcbiIsCiAJCQkJCSAgbG9pbmZvLT5kb2JqLm5hbWUpOworCS8qCisJICogSW4gYmlu YXJ5IHVwZ3JhZGUgbW9kZSB3ZSBwdXQgYWxsIHRoZSBxdWVyaWVzIHRvIHJlc3RvcmUKKwkgKiBv bmUgbGFyZ2Ugb2JqZWN0IGludG8gYSBzaW5nbGUgVE9DIGVudHJ5IGFuZCBlbWl0IGl0IGFzCisJ ICogU0VDVElPTl9EQVRBIHNvIHRoYXQgdGhleSBjYW4gYmUgcmVzdG9yZWQgaW4gcGFyYWxsZWwu CisJICovCisJaWYgKGZvdXQtPmRvcHQtPmJpbmFyeV91cGdyYWRlKQorCXsKKwkJc2VjdGlvbiA9 IFNFQ1RJT05fREFUQTsKKworCQkvKiBEdW1wIGNvbW1lbnQgaWYgYW55ICovCisJCWlmIChsb2lu Zm8tPmRvYmouZHVtcCAmIERVTVBfQ09NUE9ORU5UX0NPTU1FTlQpCisJCQlkdW1wQ29tbWVudFF1 ZXJ5KGZvdXQsIGNxdWVyeSwgdGFnLCAiTEFSR0UgT0JKRUNUIiwKKwkJCQkJCQkgbG9pbmZvLT5k b2JqLm5hbWUsIE5VTEwsIGxvaW5mby0+cm9sbmFtZSwKKwkJCQkJCQkgbG9pbmZvLT5kb2JqLmNh dElkLCAwLCBsb2luZm8tPmRvYmouZHVtcElkLCBOVUxMKTsKKworCQkvKiBEdW1wIHNlY3VyaXR5 IGxhYmVsIGlmIGFueSAqLworCQlpZiAobG9pbmZvLT5kb2JqLmR1bXAgJiBEVU1QX0NPTVBPTkVO VF9TRUNMQUJFTCkKKwkJCWR1bXBTZWNMYWJlbFF1ZXJ5KGZvdXQsIGNxdWVyeSwgdGFnLCAiTEFS R0UgT0JKRUNUIiwKKwkJCQkJCQkgIGxvaW5mby0+ZG9iai5uYW1lLAorCQkJCQkJCSAgTlVMTCwg bG9pbmZvLT5yb2xuYW1lLAorCQkJCQkJCSAgbG9pbmZvLT5kb2JqLmNhdElkLCAwLCBsb2luZm8t PmRvYmouZHVtcElkKTsKKworCQkvKiBEdW1wIEFDTCBpZiBhbnkgKi8KKwkJaWYgKGxvaW5mby0+ ZG9iai5kdW1wICYgRFVNUF9DT01QT05FTlRfQUNMKQorCQkJZHVtcEFDTFF1ZXJ5KGZvdXQsIGNx dWVyeSwgdGFnLAorCQkJCQkJIGxvaW5mby0+ZG9iai5kdW1wSWQsIEludmFsaWREdW1wSWQsICJM QVJHRSBPQkpFQ1QiLAorCQkJCQkJIGxvaW5mby0+ZG9iai5uYW1lLCBOVUxMLAorCQkJCQkJIE5V TEwsIGxvaW5mby0+cm9sbmFtZSwgJmxvaW5mby0+ZGFjbCk7CisJfQorCiAKIAlhcHBlbmRQUUV4 cEJ1ZmZlcihkcXVlcnksCiAJCQkJCSAgIlNFTEVDVCBwZ19jYXRhbG9nLmxvX3VubGluaygnJXMn KTtcbiIsCkBAIC0zNjU1LDI3ICszNzAyLDI4IEBAIGR1bXBMTyhBcmNoaXZlICpmb3V0LCBjb25z dCBMb0luZm8gKmxvaW5mbykKIAkJCQkJIEFSQ0hJVkVfT1BUUygudGFnID0gbG9pbmZvLT5kb2Jq Lm5hbWUsCiAJCQkJCQkJCSAgLm93bmVyID0gbG9pbmZvLT5yb2xuYW1lLAogCQkJCQkJCQkgIC5k ZXNjcmlwdGlvbiA9ICJCTE9CIiwKLQkJCQkJCQkJICAuc2VjdGlvbiA9IFNFQ1RJT05fUFJFX0RB VEEsCisJCQkJCQkJCSAgLnNlY3Rpb24gPSBzZWN0aW9uLAogCQkJCQkJCQkgIC5jcmVhdGVTdG10 ID0gY3F1ZXJ5LT5kYXRhLAogCQkJCQkJCQkgIC5kcm9wU3RtdCA9IGRxdWVyeS0+ZGF0YSkpOwog Ci0JLyogRHVtcCBjb21tZW50IGlmIGFueSAqLwotCWlmIChsb2luZm8tPmRvYmouZHVtcCAmIERV TVBfQ09NUE9ORU5UX0NPTU1FTlQpCi0JCWR1bXBDb21tZW50KGZvdXQsICJMQVJHRSBPQkpFQ1Qi LCBsb2luZm8tPmRvYmoubmFtZSwKLQkJCQkJTlVMTCwgbG9pbmZvLT5yb2xuYW1lLAotCQkJCQls b2luZm8tPmRvYmouY2F0SWQsIDAsIGxvaW5mby0+ZG9iai5kdW1wSWQpOwotCi0JLyogRHVtcCBz ZWN1cml0eSBsYWJlbCBpZiBhbnkgKi8KLQlpZiAobG9pbmZvLT5kb2JqLmR1bXAgJiBEVU1QX0NP TVBPTkVOVF9TRUNMQUJFTCkKLQkJZHVtcFNlY0xhYmVsKGZvdXQsICJMQVJHRSBPQkpFQ1QiLCBs b2luZm8tPmRvYmoubmFtZSwKLQkJCQkJIE5VTEwsIGxvaW5mby0+cm9sbmFtZSwKLQkJCQkJIGxv aW5mby0+ZG9iai5jYXRJZCwgMCwgbG9pbmZvLT5kb2JqLmR1bXBJZCk7Ci0KLQkvKiBEdW1wIEFD TCBpZiBhbnkgKi8KLQlpZiAobG9pbmZvLT5kb2JqLmR1bXAgJiBEVU1QX0NPTVBPTkVOVF9BQ0wp Ci0JCWR1bXBBQ0woZm91dCwgbG9pbmZvLT5kb2JqLmR1bXBJZCwgSW52YWxpZER1bXBJZCwgIkxB UkdFIE9CSkVDVCIsCi0JCQkJbG9pbmZvLT5kb2JqLm5hbWUsIE5VTEwsCi0JCQkJTlVMTCwgbG9p bmZvLT5yb2xuYW1lLCAmbG9pbmZvLT5kYWNsKTsKKwlpZiAoIWZvdXQtPmRvcHQtPmJpbmFyeV91 cGdyYWRlKQorCXsKKwkJLyogRHVtcCBjb21tZW50IGlmIGFueSAqLworCQlpZiAobG9pbmZvLT5k b2JqLmR1bXAgJiBEVU1QX0NPTVBPTkVOVF9DT01NRU5UKQorCQkJZHVtcENvbW1lbnQoZm91dCwg IkxBUkdFIE9CSkVDVCIsIGxvaW5mby0+ZG9iai5uYW1lLAorCQkJCQkJTlVMTCwgbG9pbmZvLT5y b2xuYW1lLAorCQkJCQkJbG9pbmZvLT5kb2JqLmNhdElkLCAwLCBsb2luZm8tPmRvYmouZHVtcElk KTsKKwkJLyogRHVtcCBzZWN1cml0eSBsYWJlbCBpZiBhbnkgKi8KKwkJaWYgKGxvaW5mby0+ZG9i ai5kdW1wICYgRFVNUF9DT01QT05FTlRfU0VDTEFCRUwpCisJCQlkdW1wU2VjTGFiZWwoZm91dCwg IkxBUkdFIE9CSkVDVCIsIGxvaW5mby0+ZG9iai5uYW1lLAorCQkJCQkJIE5VTEwsIGxvaW5mby0+ cm9sbmFtZSwKKwkJCQkJCSBsb2luZm8tPmRvYmouY2F0SWQsIDAsIGxvaW5mby0+ZG9iai5kdW1w SWQpOworCQkvKiBEdW1wIEFDTCBpZiBhbnkgKi8KKwkJaWYgKGxvaW5mby0+ZG9iai5kdW1wICYg RFVNUF9DT01QT05FTlRfQUNMKQorCQkJZHVtcEFDTChmb3V0LCBsb2luZm8tPmRvYmouZHVtcElk LCBJbnZhbGlkRHVtcElkLCAiTEFSR0UgT0JKRUNUIiwKKwkJCQkJbG9pbmZvLT5kb2JqLm5hbWUs IE5VTEwsCisJCQkJCU5VTEwsIGxvaW5mby0+cm9sbmFtZSwgJmxvaW5mby0+ZGFjbCk7CisJfQog CiAJZGVzdHJveVBRRXhwQnVmZmVyKGNxdWVyeSk7CiAJZGVzdHJveVBRRXhwQnVmZmVyKGRxdWVy eSk7CkBAIC05ODk5LDYgKzk5NDcsMzggQEAgZHVtcENvbW1lbnRFeHRlbmRlZChBcmNoaXZlICpm b3V0LCBjb25zdCBjaGFyICp0eXBlLAogCQkJCQljb25zdCBjaGFyICpvd25lciwgQ2F0YWxvZ0lk IGNhdGFsb2dJZCwKIAkJCQkJaW50IHN1YmlkLCBEdW1wSWQgZHVtcElkLAogCQkJCQljb25zdCBj aGFyICppbml0ZGJfY29tbWVudCkKK3sKKwlQUUV4cEJ1ZmZlciBxdWVyeSA9IGNyZWF0ZVBRRXhw QnVmZmVyKCk7CisJUFFFeHBCdWZmZXIgdGFnID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsKKworCWlm IChkdW1wQ29tbWVudFF1ZXJ5KGZvdXQsIHF1ZXJ5LCB0YWcsIHR5cGUsIG5hbWUsIG5hbWVzcGFj ZSwgb3duZXIsCisJCQkJCQkgY2F0YWxvZ0lkLCBzdWJpZCwgZHVtcElkLCBpbml0ZGJfY29tbWVu dCkpCisJeworCQkvKgorCQkgKiBXZSBtYXJrIGNvbW1lbnRzIGFzIFNFQ1RJT05fTk9ORSBiZWNh dXNlIHRoZXkgcmVhbGx5IGJlbG9uZyBpbiB0aGUKKwkJICogc2FtZSBzZWN0aW9uIGFzIHRoZWly IHBhcmVudCwgd2hldGhlciB0aGF0IGlzIHByZS1kYXRhIG9yCisJCSAqIHBvc3QtZGF0YS4KKwkJ ICovCisJCUFyY2hpdmVFbnRyeShmb3V0LCBuaWxDYXRhbG9nSWQsIGNyZWF0ZUR1bXBJZCgpLAor CQkJCQkgQVJDSElWRV9PUFRTKC50YWcgPSB0YWctPmRhdGEsCisJCQkJCQkJCSAgLm5hbWVzcGFj ZSA9IG5hbWVzcGFjZSwKKwkJCQkJCQkJICAub3duZXIgPSBvd25lciwKKwkJCQkJCQkJICAuZGVz Y3JpcHRpb24gPSAiQ09NTUVOVCIsCisJCQkJCQkJCSAgLnNlY3Rpb24gPSBTRUNUSU9OX05PTkUs CisJCQkJCQkJCSAgLmNyZWF0ZVN0bXQgPSBxdWVyeS0+ZGF0YSwKKwkJCQkJCQkJICAuZGVwcyA9 ICZkdW1wSWQsCisJCQkJCQkJCSAgLm5EZXBzID0gMSkpOworCX0KKwlkZXN0cm95UFFFeHBCdWZm ZXIocXVlcnkpOworCWRlc3Ryb3lQUUV4cEJ1ZmZlcih0YWcpOworfQorCitzdGF0aWMgYm9vbAor ZHVtcENvbW1lbnRRdWVyeShBcmNoaXZlICpmb3V0LCBQUUV4cEJ1ZmZlciBxdWVyeSwgUFFFeHBC dWZmZXIgdGFnLAorCQkJCSBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpuYW1lLAorCQkJ CSBjb25zdCBjaGFyICpuYW1lc3BhY2UsIGNvbnN0IGNoYXIgKm93bmVyLAorCQkJCSBDYXRhbG9n SWQgY2F0YWxvZ0lkLCBpbnQgc3ViaWQsIER1bXBJZCBkdW1wSWQsCisJCQkJIGNvbnN0IGNoYXIg KmluaXRkYl9jb21tZW50KQogewogCUR1bXBPcHRpb25zICpkb3B0ID0gZm91dC0+ZG9wdDsKIAlD b21tZW50SXRlbSAqY29tbWVudHM7CkBAIC05OTA2LDE5ICs5OTg2LDE5IEBAIGR1bXBDb21tZW50 RXh0ZW5kZWQoQXJjaGl2ZSAqZm91dCwgY29uc3QgY2hhciAqdHlwZSwKIAogCS8qIGRvIG5vdGhp bmcsIGlmIC0tbm8tY29tbWVudHMgaXMgc3VwcGxpZWQgKi8KIAlpZiAoZG9wdC0+bm9fY29tbWVu dHMpCi0JCXJldHVybjsKKwkJcmV0dXJuIGZhbHNlOwogCiAJLyogQ29tbWVudHMgYXJlIHNjaGVt YSBub3QgZGF0YSAuLi4gZXhjZXB0IExPIGNvbW1lbnRzIGFyZSBkYXRhICovCiAJaWYgKHN0cmNt cCh0eXBlLCAiTEFSR0UgT0JKRUNUIikgIT0gMCkKIAl7CiAJCWlmIChkb3B0LT5kYXRhT25seSkK LQkJCXJldHVybjsKKwkJCXJldHVybiBmYWxzZTsKIAl9CiAJZWxzZQogCXsKIAkJLyogV2UgZG8g ZHVtcCBMTyBjb21tZW50cyBpbiBiaW5hcnktdXBncmFkZSBtb2RlICovCiAJCWlmIChkb3B0LT5z Y2hlbWFPbmx5ICYmICFkb3B0LT5iaW5hcnlfdXBncmFkZSkKLQkJCXJldHVybjsKKwkJCXJldHVy biBmYWxzZTsKIAl9CiAKIAkvKiBTZWFyY2ggZm9yIGNvbW1lbnRzIGFzc29jaWF0ZWQgd2l0aCBj YXRhbG9nSWQsIHVzaW5nIHRhYmxlICovCkBAIC05OTU2LDkgKzEwMDM2LDYgQEAgZHVtcENvbW1l bnRFeHRlbmRlZChBcmNoaXZlICpmb3V0LCBjb25zdCBjaGFyICp0eXBlLAogCS8qIElmIGEgY29t bWVudCBleGlzdHMsIGJ1aWxkIENPTU1FTlQgT04gc3RhdGVtZW50ICovCiAJaWYgKG5jb21tZW50 cyA+IDApCiAJewotCQlQUUV4cEJ1ZmZlciBxdWVyeSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7Ci0J CVBRRXhwQnVmZmVyIHRhZyA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7Ci0KIAkJYXBwZW5kUFFFeHBC dWZmZXIocXVlcnksICJDT01NRU5UIE9OICVzICIsIHR5cGUpOwogCQlpZiAobmFtZXNwYWNlICYm ICpuYW1lc3BhY2UpCiAJCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIiVzLiIsIGZtdElkKG5h bWVzcGFjZSkpOwpAQCAtOTk2OCwyNCArMTAwNDUsMTAgQEAgZHVtcENvbW1lbnRFeHRlbmRlZChB cmNoaXZlICpmb3V0LCBjb25zdCBjaGFyICp0eXBlLAogCiAJCWFwcGVuZFBRRXhwQnVmZmVyKHRh ZywgIiVzICVzIiwgdHlwZSwgbmFtZSk7CiAKLQkJLyoKLQkJICogV2UgbWFyayBjb21tZW50cyBh cyBTRUNUSU9OX05PTkUgYmVjYXVzZSB0aGV5IHJlYWxseSBiZWxvbmcgaW4gdGhlCi0JCSAqIHNh bWUgc2VjdGlvbiBhcyB0aGVpciBwYXJlbnQsIHdoZXRoZXIgdGhhdCBpcyBwcmUtZGF0YSBvcgot CQkgKiBwb3N0LWRhdGEuCi0JCSAqLwotCQlBcmNoaXZlRW50cnkoZm91dCwgbmlsQ2F0YWxvZ0lk LCBjcmVhdGVEdW1wSWQoKSwKLQkJCQkJIEFSQ0hJVkVfT1BUUygudGFnID0gdGFnLT5kYXRhLAot CQkJCQkJCQkgIC5uYW1lc3BhY2UgPSBuYW1lc3BhY2UsCi0JCQkJCQkJCSAgLm93bmVyID0gb3du ZXIsCi0JCQkJCQkJCSAgLmRlc2NyaXB0aW9uID0gIkNPTU1FTlQiLAotCQkJCQkJCQkgIC5zZWN0 aW9uID0gU0VDVElPTl9OT05FLAotCQkJCQkJCQkgIC5jcmVhdGVTdG10ID0gcXVlcnktPmRhdGEs Ci0JCQkJCQkJCSAgLmRlcHMgPSAmZHVtcElkLAotCQkJCQkJCQkgIC5uRGVwcyA9IDEpKTsKLQot CQlkZXN0cm95UFFFeHBCdWZmZXIocXVlcnkpOwotCQlkZXN0cm95UFFFeHBCdWZmZXIodGFnKTsK KwkJcmV0dXJuIHRydWU7CiAJfQorCisJcmV0dXJuIGZhbHNlOwogfQogCiAvKgpAQCAtMTQ5Mzks MjMgKzE1MDAyLDY1IEBAIGR1bXBBQ0woQXJjaGl2ZSAqZm91dCwgRHVtcElkIG9iakR1bXBJZCwg RHVtcElkIGFsdER1bXBJZCwKIAkJY29uc3QgRHVtcGFibGVBY2wgKmRhY2wpCiB7CiAJRHVtcElk CQlhY2xEdW1wSWQgPSBJbnZhbGlkRHVtcElkOworCVBRRXhwQnVmZmVyIHF1ZXJ5ID0gY3JlYXRl UFFFeHBCdWZmZXIoKTsKKwlQUUV4cEJ1ZmZlciB0YWcgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOwor CisJaWYgKGR1bXBBQ0xRdWVyeShmb3V0LCBxdWVyeSwgdGFnLCBvYmpEdW1wSWQsIGFsdER1bXBJ ZCwKKwkJCQkJIHR5cGUsIG5hbWUsIHN1Ym5hbWUsIG5zcG5hbWUsIG93bmVyLCBkYWNsKSkKKwl7 CisJCUR1bXBJZAkJYWNsRGVwc1syXTsKKwkJaW50CQkJbkRlcHMgPSAwOworCisJCWlmIChzdWJu YW1lKQorCQkJYXBwZW5kUFFFeHBCdWZmZXIodGFnLCAiQ09MVU1OICVzLiVzIiwgbmFtZSwgc3Vi bmFtZSk7CisJCWVsc2UKKwkJCWFwcGVuZFBRRXhwQnVmZmVyKHRhZywgIiVzICVzIiwgdHlwZSwg bmFtZSk7CisKKwkJYWNsRGVwc1tuRGVwcysrXSA9IG9iakR1bXBJZDsKKwkJaWYgKGFsdER1bXBJ ZCAhPSBJbnZhbGlkRHVtcElkKQorCQkJYWNsRGVwc1tuRGVwcysrXSA9IGFsdER1bXBJZDsKKwor CQlhY2xEdW1wSWQgPSBjcmVhdGVEdW1wSWQoKTsKKworCQlBcmNoaXZlRW50cnkoZm91dCwgbmls Q2F0YWxvZ0lkLCBhY2xEdW1wSWQsCisJCQkJCSBBUkNISVZFX09QVFMoLnRhZyA9IHRhZy0+ZGF0 YSwKKwkJCQkJCQkJICAubmFtZXNwYWNlID0gbnNwbmFtZSwKKwkJCQkJCQkJICAub3duZXIgPSBv d25lciwKKwkJCQkJCQkJICAuZGVzY3JpcHRpb24gPSAiQUNMIiwKKwkJCQkJCQkJICAuc2VjdGlv biA9IFNFQ1RJT05fTk9ORSwKKwkJCQkJCQkJICAuY3JlYXRlU3RtdCA9IHF1ZXJ5LT5kYXRhLAor CQkJCQkJCQkgIC5kZXBzID0gYWNsRGVwcywKKwkJCQkJCQkJICAubkRlcHMgPSBuRGVwcykpOwor CisJfQorCisJZGVzdHJveVBRRXhwQnVmZmVyKHF1ZXJ5KTsKKwlkZXN0cm95UFFFeHBCdWZmZXIo dGFnKTsKKworCXJldHVybiBhY2xEdW1wSWQ7Cit9CisKK3N0YXRpYyBib29sCitkdW1wQUNMUXVl cnkoQXJjaGl2ZSAqZm91dCwgUFFFeHBCdWZmZXIgcXVlcnksIFBRRXhwQnVmZmVyIHRhZywKKwkJ CSBEdW1wSWQgb2JqRHVtcElkLCBEdW1wSWQgYWx0RHVtcElkLAorCQkJIGNvbnN0IGNoYXIgKnR5 cGUsIGNvbnN0IGNoYXIgKm5hbWUsIGNvbnN0IGNoYXIgKnN1Ym5hbWUsCisJCQkgY29uc3QgY2hh ciAqbnNwbmFtZSwgY29uc3QgY2hhciAqb3duZXIsCisJCQkgY29uc3QgRHVtcGFibGVBY2wgKmRh Y2wpCit7CiAJRHVtcE9wdGlvbnMgKmRvcHQgPSBmb3V0LT5kb3B0OwogCWNvbnN0IGNoYXIgKmFj bHMgPSBkYWNsLT5hY2w7CiAJY29uc3QgY2hhciAqYWNsZGVmYXVsdCA9IGRhY2wtPmFjbGRlZmF1 bHQ7CiAJY2hhcgkJcHJpdnR5cGUgPSBkYWNsLT5wcml2dHlwZTsKIAljb25zdCBjaGFyICppbml0 cHJpdnMgPSBkYWNsLT5pbml0cHJpdnM7CiAJY29uc3QgY2hhciAqYmFzZWFjbHM7Ci0JUFFFeHBC dWZmZXIgc3FsOwogCiAJLyogRG8gbm90aGluZyBpZiBBQ0wgZHVtcCBpcyBub3QgZW5hYmxlZCAq LwogCWlmIChkb3B0LT5hY2xzU2tpcCkKLQkJcmV0dXJuIEludmFsaWREdW1wSWQ7CisJCXJldHVy biBmYWxzZTsKIAogCS8qIC0tZGF0YS1vbmx5IHNraXBzIEFDTHMgKmV4Y2VwdCogbGFyZ2Ugb2Jq ZWN0IEFDTHMgKi8KIAlpZiAoZG9wdC0+ZGF0YU9ubHkgJiYgc3RyY21wKHR5cGUsICJMQVJHRSBP QkpFQ1QiKSAhPSAwKQotCQlyZXR1cm4gSW52YWxpZER1bXBJZDsKLQotCXNxbCA9IGNyZWF0ZVBR RXhwQnVmZmVyKCk7CisJCXJldHVybiBmYWxzZTsKIAogCS8qCiAJICogSW4gYmluYXJ5IHVwZ3Jh ZGUgbW9kZSwgd2UgZG9uJ3QgcnVuIGFuIGV4dGVuc2lvbidzIHNjcmlwdCBidXQgaW5zdGVhZApA QCAtMTQ5NzMsMTMgKzE1MDc4LDEzIEBAIGR1bXBBQ0woQXJjaGl2ZSAqZm91dCwgRHVtcElkIG9i akR1bXBJZCwgRHVtcElkIGFsdER1bXBJZCwKIAlpZiAoZG9wdC0+YmluYXJ5X3VwZ3JhZGUgJiYg cHJpdnR5cGUgPT0gJ2UnICYmCiAJCWluaXRwcml2cyAmJiAqaW5pdHByaXZzICE9ICdcMCcpCiAJ ewotCQlhcHBlbmRQUUV4cEJ1ZmZlclN0cihzcWwsICJTRUxFQ1QgcGdfY2F0YWxvZy5iaW5hcnlf dXBncmFkZV9zZXRfcmVjb3JkX2luaXRfcHJpdnModHJ1ZSk7XG4iKTsKKwkJYXBwZW5kUFFFeHBC dWZmZXJTdHIocXVlcnksICJTRUxFQ1QgcGdfY2F0YWxvZy5iaW5hcnlfdXBncmFkZV9zZXRfcmVj b3JkX2luaXRfcHJpdnModHJ1ZSk7XG4iKTsKIAkJaWYgKCFidWlsZEFDTENvbW1hbmRzKG5hbWUs IHN1Ym5hbWUsIG5zcG5hbWUsIHR5cGUsCiAJCQkJCQkJICBpbml0cHJpdnMsIGFjbGRlZmF1bHQs IG93bmVyLAotCQkJCQkJCSAgIiIsIGZvdXQtPnJlbW90ZVZlcnNpb24sIHNxbCkpCisJCQkJCQkJ ICAiIiwgZm91dC0+cmVtb3RlVmVyc2lvbiwgcXVlcnkpKQogCQkJcGdfZmF0YWwoImNvdWxkIG5v dCBwYXJzZSBpbml0aWFsIEFDTCBsaXN0ICglcykgb3IgZGVmYXVsdCAoJXMpIGZvciBvYmplY3Qg XCIlc1wiICglcykiLAogCQkJCQkgaW5pdHByaXZzLCBhY2xkZWZhdWx0LCBuYW1lLCB0eXBlKTsK LQkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoc3FsLCAiU0VMRUNUIHBnX2NhdGFsb2cuYmluYXJ5X3Vw Z3JhZGVfc2V0X3JlY29yZF9pbml0X3ByaXZzKGZhbHNlKTtcbiIpOworCQlhcHBlbmRQUUV4cEJ1 ZmZlclN0cihxdWVyeSwgIlNFTEVDVCBwZ19jYXRhbG9nLmJpbmFyeV91cGdyYWRlX3NldF9yZWNv cmRfaW5pdF9wcml2cyhmYWxzZSk7XG4iKTsKIAl9CiAKIAkvKgpAQCAtMTUwMDEsNDMgKzE1MTA2 LDE5IEBAIGR1bXBBQ0woQXJjaGl2ZSAqZm91dCwgRHVtcElkIG9iakR1bXBJZCwgRHVtcElkIGFs dER1bXBJZCwKIAogCWlmICghYnVpbGRBQ0xDb21tYW5kcyhuYW1lLCBzdWJuYW1lLCBuc3BuYW1l LCB0eXBlLAogCQkJCQkJICBhY2xzLCBiYXNlYWNscywgb3duZXIsCi0JCQkJCQkgICIiLCBmb3V0 LT5yZW1vdGVWZXJzaW9uLCBzcWwpKQorCQkJCQkJICAiIiwgZm91dC0+cmVtb3RlVmVyc2lvbiwg cXVlcnkpKQogCQlwZ19mYXRhbCgiY291bGQgbm90IHBhcnNlIEFDTCBsaXN0ICglcykgb3IgZGVm YXVsdCAoJXMpIGZvciBvYmplY3QgXCIlc1wiICglcykiLAogCQkJCSBhY2xzLCBiYXNlYWNscywg bmFtZSwgdHlwZSk7CiAKLQlpZiAoc3FsLT5sZW4gPiAwKQorCWlmIChxdWVyeS0+bGVuID4gMCAm JiB0YWcgIT0gTlVMTCkKIAl7Ci0JCVBRRXhwQnVmZmVyIHRhZyA9IGNyZWF0ZVBRRXhwQnVmZmVy KCk7Ci0JCUR1bXBJZAkJYWNsRGVwc1syXTsKLQkJaW50CQkJbkRlcHMgPSAwOwotCiAJCWlmIChz dWJuYW1lKQogCQkJYXBwZW5kUFFFeHBCdWZmZXIodGFnLCAiQ09MVU1OICVzLiVzIiwgbmFtZSwg c3VibmFtZSk7CiAJCWVsc2UKIAkJCWFwcGVuZFBRRXhwQnVmZmVyKHRhZywgIiVzICVzIiwgdHlw ZSwgbmFtZSk7Ci0KLQkJYWNsRGVwc1tuRGVwcysrXSA9IG9iakR1bXBJZDsKLQkJaWYgKGFsdER1 bXBJZCAhPSBJbnZhbGlkRHVtcElkKQotCQkJYWNsRGVwc1tuRGVwcysrXSA9IGFsdER1bXBJZDsK LQotCQlhY2xEdW1wSWQgPSBjcmVhdGVEdW1wSWQoKTsKLQotCQlBcmNoaXZlRW50cnkoZm91dCwg bmlsQ2F0YWxvZ0lkLCBhY2xEdW1wSWQsCi0JCQkJCSBBUkNISVZFX09QVFMoLnRhZyA9IHRhZy0+ ZGF0YSwKLQkJCQkJCQkJICAubmFtZXNwYWNlID0gbnNwbmFtZSwKLQkJCQkJCQkJICAub3duZXIg PSBvd25lciwKLQkJCQkJCQkJICAuZGVzY3JpcHRpb24gPSAiQUNMIiwKLQkJCQkJCQkJICAuc2Vj dGlvbiA9IFNFQ1RJT05fTk9ORSwKLQkJCQkJCQkJICAuY3JlYXRlU3RtdCA9IHNxbC0+ZGF0YSwK LQkJCQkJCQkJICAuZGVwcyA9IGFjbERlcHMsCi0JCQkJCQkJCSAgLm5EZXBzID0gbkRlcHMpKTsK LQotCQlkZXN0cm95UFFFeHBCdWZmZXIodGFnKTsKIAl9CiAKLQlkZXN0cm95UFFFeHBCdWZmZXIo c3FsKTsKLQotCXJldHVybiBhY2xEdW1wSWQ7CisJcmV0dXJuIHRydWU7CiB9CiAKIC8qCkBAIC0x NTA2MiwxNiArMTUxNDMsNDIgQEAgc3RhdGljIHZvaWQKIGR1bXBTZWNMYWJlbChBcmNoaXZlICpm b3V0LCBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpuYW1lLAogCQkJIGNvbnN0IGNoYXIg Km5hbWVzcGFjZSwgY29uc3QgY2hhciAqb3duZXIsCiAJCQkgQ2F0YWxvZ0lkIGNhdGFsb2dJZCwg aW50IHN1YmlkLCBEdW1wSWQgZHVtcElkKQoreworCVBRRXhwQnVmZmVyIHF1ZXJ5ID0gY3JlYXRl UFFFeHBCdWZmZXIoKTsKKwlQUUV4cEJ1ZmZlciB0YWcgPSBjcmVhdGVQUUV4cEJ1ZmZlcigpOwor CisJaWYgKGR1bXBTZWNMYWJlbFF1ZXJ5KGZvdXQsIHF1ZXJ5LCB0YWcsIHR5cGUsIG5hbWUsCisJ CQkJCQkgIG5hbWVzcGFjZSwgb3duZXIsIGNhdGFsb2dJZCwgc3ViaWQsIGR1bXBJZCkpCisJewor CQlBcmNoaXZlRW50cnkoZm91dCwgbmlsQ2F0YWxvZ0lkLCBjcmVhdGVEdW1wSWQoKSwKKwkJCQkJ IEFSQ0hJVkVfT1BUUygudGFnID0gdGFnLT5kYXRhLAorCQkJCQkJCQkgIC5uYW1lc3BhY2UgPSBu YW1lc3BhY2UsCisJCQkJCQkJCSAgLm93bmVyID0gb3duZXIsCisJCQkJCQkJCSAgLmRlc2NyaXB0 aW9uID0gIlNFQ1VSSVRZIExBQkVMIiwKKwkJCQkJCQkJICAuc2VjdGlvbiA9IFNFQ1RJT05fTk9O RSwKKwkJCQkJCQkJICAuY3JlYXRlU3RtdCA9IHF1ZXJ5LT5kYXRhLAorCQkJCQkJCQkgIC5kZXBz ID0gJmR1bXBJZCwKKwkJCQkJCQkJICAubkRlcHMgPSAxKSk7CisJfQorCisJZGVzdHJveVBRRXhw QnVmZmVyKHF1ZXJ5KTsKKwlkZXN0cm95UFFFeHBCdWZmZXIodGFnKTsKK30KKworc3RhdGljIGJv b2wKK2R1bXBTZWNMYWJlbFF1ZXJ5KEFyY2hpdmUgKmZvdXQsIFBRRXhwQnVmZmVyIHF1ZXJ5LCBQ UUV4cEJ1ZmZlciB0YWcsCisJCQkJICBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpuYW1l LAorCQkJCSAgY29uc3QgY2hhciAqbmFtZXNwYWNlLCBjb25zdCBjaGFyICpvd25lciwKKwkJCQkg IENhdGFsb2dJZCBjYXRhbG9nSWQsIGludCBzdWJpZCwgRHVtcElkIGR1bXBJZCkKIHsKIAlEdW1w T3B0aW9ucyAqZG9wdCA9IGZvdXQtPmRvcHQ7CiAJU2VjTGFiZWxJdGVtICpsYWJlbHM7CiAJaW50 CQkJbmxhYmVsczsKIAlpbnQJCQlpOwotCVBRRXhwQnVmZmVyIHF1ZXJ5OwogCiAJLyogZG8gbm90 aGluZywgaWYgLS1uby1zZWN1cml0eS1sYWJlbHMgaXMgc3VwcGxpZWQgKi8KIAlpZiAoZG9wdC0+ bm9fc2VjdXJpdHlfbGFiZWxzKQotCQlyZXR1cm47CisJCXJldHVybiBmYWxzZTsKIAogCS8qCiAJ ICogU2VjdXJpdHkgbGFiZWxzIGFyZSBzY2hlbWEgbm90IGRhdGEgLi4uIGV4Y2VwdCBsYXJnZSBv YmplY3QgbGFiZWxzIGFyZQpAQCAtMTUwODAsMjAgKzE1MTg3LDE4IEBAIGR1bXBTZWNMYWJlbChB cmNoaXZlICpmb3V0LCBjb25zdCBjaGFyICp0eXBlLCBjb25zdCBjaGFyICpuYW1lLAogCWlmIChz dHJjbXAodHlwZSwgIkxBUkdFIE9CSkVDVCIpICE9IDApCiAJewogCQlpZiAoZG9wdC0+ZGF0YU9u bHkpCi0JCQlyZXR1cm47CisJCQlyZXR1cm4gZmFsc2U7CiAJfQogCWVsc2UKIAl7CiAJCS8qIFdl IGRvIGR1bXAgbGFyZ2Ugb2JqZWN0IHNlY3VyaXR5IGxhYmVscyBpbiBiaW5hcnktdXBncmFkZSBt b2RlICovCiAJCWlmIChkb3B0LT5zY2hlbWFPbmx5ICYmICFkb3B0LT5iaW5hcnlfdXBncmFkZSkK LQkJCXJldHVybjsKKwkJCXJldHVybiBmYWxzZTsKIAl9CiAKIAkvKiBTZWFyY2ggZm9yIHNlY3Vy aXR5IGxhYmVscyBhc3NvY2lhdGVkIHdpdGggY2F0YWxvZ0lkLCB1c2luZyB0YWJsZSAqLwogCW5s YWJlbHMgPSBmaW5kU2VjTGFiZWxzKGNhdGFsb2dJZC50YWJsZW9pZCwgY2F0YWxvZ0lkLm9pZCwg JmxhYmVscyk7CiAKLQlxdWVyeSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7Ci0KIAlmb3IgKGkgPSAw OyBpIDwgbmxhYmVsczsgaSsrKQogCXsKIAkJLyoKQEAgLTE1MTE0LDIyICsxNTIxOSwxMSBAQCBk dW1wU2VjTGFiZWwoQXJjaGl2ZSAqZm91dCwgY29uc3QgY2hhciAqdHlwZSwgY29uc3QgY2hhciAq bmFtZSwKIAogCWlmIChxdWVyeS0+bGVuID4gMCkKIAl7Ci0JCVBRRXhwQnVmZmVyIHRhZyA9IGNy ZWF0ZVBRRXhwQnVmZmVyKCk7Ci0KIAkJYXBwZW5kUFFFeHBCdWZmZXIodGFnLCAiJXMgJXMiLCB0 eXBlLCBuYW1lKTsKLQkJQXJjaGl2ZUVudHJ5KGZvdXQsIG5pbENhdGFsb2dJZCwgY3JlYXRlRHVt cElkKCksCi0JCQkJCSBBUkNISVZFX09QVFMoLnRhZyA9IHRhZy0+ZGF0YSwKLQkJCQkJCQkJICAu bmFtZXNwYWNlID0gbmFtZXNwYWNlLAotCQkJCQkJCQkgIC5vd25lciA9IG93bmVyLAotCQkJCQkJ CQkgIC5kZXNjcmlwdGlvbiA9ICJTRUNVUklUWSBMQUJFTCIsCi0JCQkJCQkJCSAgLnNlY3Rpb24g PSBTRUNUSU9OX05PTkUsCi0JCQkJCQkJCSAgLmNyZWF0ZVN0bXQgPSBxdWVyeS0+ZGF0YSwKLQkJ CQkJCQkJICAuZGVwcyA9ICZkdW1wSWQsCi0JCQkJCQkJCSAgLm5EZXBzID0gMSkpOwotCQlkZXN0 cm95UFFFeHBCdWZmZXIodGFnKTsKKwkJcmV0dXJuIHRydWU7CiAJfQogCi0JZGVzdHJveVBRRXhw QnVmZmVyKHF1ZXJ5KTsKKwlyZXR1cm4gZmFsc2U7CiB9CiAKIC8qCmRpZmYgLS1naXQgYS9zcmMv YmluL3BnX2R1bXAvcGdfcmVzdG9yZS5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX3Jlc3RvcmUuYwpp bmRleCAwNDlhMTAwNjM0Li4yMTU5ZjcyZmZiIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAv cGdfcmVzdG9yZS5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19yZXN0b3JlLmMKQEAgLTYwLDYg KzYwLDcgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJaW50CQkJYzsKIAlpbnQJCQll eGl0X2NvZGU7CiAJaW50CQkJbnVtV29ya2VycyA9IDE7CisJaW50CQkJYmxvYkJhdGNoU2l6ZSA9 IDA7CiAJQXJjaGl2ZSAgICAqQUg7CiAJY2hhcgkgICAqaW5wdXRGaWxlU3BlYzsKIAlzdGF0aWMg aW50CWRpc2FibGVfdHJpZ2dlcnMgPSAwOwpAQCAtMTIzLDYgKzEyNCw3IEBAIG1haW4oaW50IGFy Z2MsIGNoYXIgKiphcmd2KQogCQl7Im5vLXB1YmxpY2F0aW9ucyIsIG5vX2FyZ3VtZW50LCAmbm9f cHVibGljYXRpb25zLCAxfSwKIAkJeyJuby1zZWN1cml0eS1sYWJlbHMiLCBub19hcmd1bWVudCwg Jm5vX3NlY3VyaXR5X2xhYmVscywgMX0sCiAJCXsibm8tc3Vic2NyaXB0aW9ucyIsIG5vX2FyZ3Vt ZW50LCAmbm9fc3Vic2NyaXB0aW9ucywgMX0sCisJCXsicmVzdG9yZS1ibG9iLWJhdGNoLXNpemUi LCByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwgNH0sCiAKIAkJe05VTEwsIDAsIE5VTEwsIDB9CiAJ fTsKQEAgLTI4Niw2ICsyODgsMTAgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCQkJ c2V0X2R1bXBfc2VjdGlvbihvcHRhcmcsICYob3B0cy0+ZHVtcFNlY3Rpb25zKSk7CiAJCQkJYnJl YWs7CiAKKwkJCWNhc2UgNDoJCQkJLyogIyBvZiBibG9icyB0byByZXN0b3JlIHBlciB0cmFuc2Fj dGlvbiAqLworCQkJCWJsb2JCYXRjaFNpemUgPSBhdG9pKG9wdGFyZyk7CisJCQkJYnJlYWs7CisK IAkJCWRlZmF1bHQ6CiAJCQkJLyogZ2V0b3B0X2xvbmcgYWxyZWFkeSBlbWl0dGVkIGEgY29tcGxh aW50ICovCiAJCQkJcGdfbG9nX2Vycm9yX2hpbnQoIlRyeSBcIiVzIC0taGVscFwiIGZvciBtb3Jl IGluZm9ybWF0aW9uLiIsIHByb2duYW1lKTsKQEAgLTQwNSw2ICs0MTEsNyBAQCBtYWluKGludCBh cmdjLCBjaGFyICoqYXJndikKIAkJU29ydFRvY0Zyb21GaWxlKEFIKTsKIAogCUFILT5udW1Xb3Jr ZXJzID0gbnVtV29ya2VyczsKKwlBSC0+YmxvYkJhdGNoU2l6ZSA9IGJsb2JCYXRjaFNpemU7CiAK IAlpZiAob3B0cy0+dG9jU3VtbWFyeSkKIAkJUHJpbnRUT0NTdW1tYXJ5KEFIKTsKQEAgLTQ3OCw2 ICs0ODUsOCBAQCB1c2FnZShjb25zdCBjaGFyICpwcm9nbmFtZSkKIAlwcmludGYoXygiICAtLXVz ZS1zZXQtc2Vzc2lvbi1hdXRob3JpemF0aW9uXG4iCiAJCQkgIiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB1c2UgU0VUIFNFU1NJT04gQVVUSE9SSVpBVElPTiBjb21tYW5kcyBpbnN0ZWFk IG9mXG4iCiAJCQkgIiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBTFRFUiBPV05FUiBj b21tYW5kcyB0byBzZXQgb3duZXJzaGlwXG4iKSk7CisJcHJpbnRmKF8oIiAgLS1yZXN0b3JlLWJs b2ItYmF0Y2gtc2l6ZT1OVU1cbiIKKwkJCSAiICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGF0dGVtcHQgdG8gcmVzdG9yZSBOVU0gbGFyZ2Ugb2JqZWN0cyBwZXIgdHJhbnNhY3Rpb25cbiIp KTsKIAogCXByaW50ZihfKCJcbkNvbm5lY3Rpb24gb3B0aW9uczpcbiIpKTsKIAlwcmludGYoXygi ICAtaCwgLS1ob3N0PUhPU1ROQU1FICAgICAgZGF0YWJhc2Ugc2VydmVyIGhvc3Qgb3Igc29ja2V0 IGRpcmVjdG9yeVxuIikpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ191cGdyYWRlL2R1bXAuYyBi L3NyYy9iaW4vcGdfdXBncmFkZS9kdW1wLmMKaW5kZXggNmM4YzgyZGNhOC4uOTQxYTgyMmE1MCAx MDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ191cGdyYWRlL2R1bXAuYworKysgYi9zcmMvYmluL3BnX3Vw Z3JhZGUvZHVtcC5jCkBAIC01Myw4ICs1MywxMSBAQCBnZW5lcmF0ZV9vbGRfZHVtcCh2b2lkKQog CiAJCXBhcmFsbGVsX2V4ZWNfcHJvZyhsb2dfZmlsZV9uYW1lLCBOVUxMLAogCQkJCQkJICAgIlwi JXMvcGdfZHVtcFwiICVzIC0tc2NoZW1hLW9ubHkgLS1xdW90ZS1hbGwtaWRlbnRpZmllcnMgIgor CQkJCQkJICAgIiVzICIKIAkJCQkJCSAgICItLWJpbmFyeS11cGdyYWRlIC0tZm9ybWF0PWN1c3Rv bSAlcyAtLWZpbGU9XCIlcy8lc1wiICVzIiwKIAkJCQkJCSAgIG5ld19jbHVzdGVyLmJpbmRpciwg Y2x1c3Rlcl9jb25uX29wdHMoJm9sZF9jbHVzdGVyKSwKKwkJCQkJCSAgIHVzZXJfb3B0cy5wZ19k dW1wX29wdHMgPworCQkJCQkJCQl1c2VyX29wdHMucGdfZHVtcF9vcHRzIDogIiIsCiAJCQkJCQkg ICBsb2dfb3B0cy52ZXJib3NlID8gIi0tdmVyYm9zZSIgOiAiIiwKIAkJCQkJCSAgIGxvZ19vcHRz LmR1bXBkaXIsCiAJCQkJCQkgICBzcWxfZmlsZV9uYW1lLCBlc2NhcGVkX2Nvbm5zdHIuZGF0YSk7 CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX3VwZ3JhZGUvb3B0aW9uLmMgYi9zcmMvYmluL3BnX3Vw Z3JhZGUvb3B0aW9uLmMKaW5kZXggYjlkOTAwZDBkYi4uNTgzZDk4OGM4MSAxMDA2NDQKLS0tIGEv c3JjL2Jpbi9wZ191cGdyYWRlL29wdGlvbi5jCisrKyBiL3NyYy9iaW4vcGdfdXBncmFkZS9vcHRp b24uYwpAQCAtNTksNiArNTksOCBAQCBwYXJzZUNvbW1hbmRMaW5lKGludCBhcmdjLCBjaGFyICph cmd2W10pCiAJCXsiY2xvbmUiLCBub19hcmd1bWVudCwgTlVMTCwgMX0sCiAJCXsiY29weSIsIG5v X2FyZ3VtZW50LCBOVUxMLCAyfSwKIAkJeyJzeW5jLW1ldGhvZCIsIHJlcXVpcmVkX2FyZ3VtZW50 LCBOVUxMLCAzfSwKKwkJeyJkdW1wLW9wdGlvbnMiLCByZXF1aXJlZF9hcmd1bWVudCwgTlVMTCwg NH0sCisJCXsicmVzdG9yZS1vcHRpb25zIiwgcmVxdWlyZWRfYXJndW1lbnQsIE5VTEwsIDV9LAog CiAJCXtOVUxMLCAwLCBOVUxMLCAwfQogCX07CkBAIC0yMDYsNiArMjA4LDMyIEBAIHBhcnNlQ29t bWFuZExpbmUoaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkKIAkJCQlpZiAoIXBhcnNlX3N5bmNfbWV0 aG9kKG9wdGFyZywgJnVudXNlZCkpCiAJCQkJCWV4aXQoMSk7CiAJCQkJdXNlcl9vcHRzLnN5bmNf bWV0aG9kID0gcGdfc3RyZHVwKG9wdGFyZyk7CisJCQljYXNlIDQ6CisJCQkJLyogYXBwZW5kIG9w dGlvbj8gKi8KKwkJCQlpZiAoIXVzZXJfb3B0cy5wZ19kdW1wX29wdHMpCisJCQkJCXVzZXJfb3B0 cy5wZ19kdW1wX29wdHMgPSBwZ19zdHJkdXAob3B0YXJnKTsKKwkJCQllbHNlCisJCQkJeworCQkJ CQljaGFyCSAgICpvbGRfb3B0cyA9IHVzZXJfb3B0cy5wZ19kdW1wX29wdHM7CisKKwkJCQkJdXNl cl9vcHRzLnBnX2R1bXBfb3B0cyA9IHBzcHJpbnRmKCIlcyAlcyIsCisJCQkJCQkJCQkJCQkJICBv bGRfb3B0cywgb3B0YXJnKTsKKwkJCQkJZnJlZShvbGRfb3B0cyk7CisJCQkJfQorCQkJCWJyZWFr OworCisJCQljYXNlIDU6CisJCQkJLyogYXBwZW5kIG9wdGlvbj8gKi8KKwkJCQlpZiAoIXVzZXJf b3B0cy5wZ19yZXN0b3JlX29wdHMpCisJCQkJCXVzZXJfb3B0cy5wZ19yZXN0b3JlX29wdHMgPSBw Z19zdHJkdXAob3B0YXJnKTsKKwkJCQllbHNlCisJCQkJeworCQkJCQljaGFyCSAgICpvbGRfb3B0 cyA9IHVzZXJfb3B0cy5wZ19yZXN0b3JlX29wdHM7CisKKwkJCQkJdXNlcl9vcHRzLnBnX3Jlc3Rv cmVfb3B0cyA9IHBzcHJpbnRmKCIlcyAlcyIsCisJCQkJCQkJCQkJCQkJCSBvbGRfb3B0cywgb3B0 YXJnKTsKKwkJCQkJZnJlZShvbGRfb3B0cyk7CisJCQkJfQogCQkJCWJyZWFrOwogCiAJCQlkZWZh dWx0OgpAQCAtMzAyLDYgKzMzMCw4IEBAIHVzYWdlKHZvaWQpCiAJcHJpbnRmKF8oIiAgLS1jbG9u ZSAgICAgICAgICAgICAgICAgICAgICAgY2xvbmUgaW5zdGVhZCBvZiBjb3B5aW5nIGZpbGVzIHRv IG5ldyBjbHVzdGVyXG4iKSk7CiAJcHJpbnRmKF8oIiAgLS1jb3B5ICAgICAgICAgICAgICAgICAg ICAgICAgY29weSBmaWxlcyB0byBuZXcgY2x1c3RlciAoZGVmYXVsdClcbiIpKTsKIAlwcmludGYo XygiICAtLXN5bmMtbWV0aG9kPU1FVEhPRCAgICAgICAgICBzZXQgbWV0aG9kIGZvciBzeW5jaW5n IGZpbGVzIHRvIGRpc2tcbiIpKTsKKwlwcmludGYoXygiICAtLWR1bXAtb3B0aW9ucz1PUFRJT05T ICAgICAgICBvcHRpb25zIHRvIHBhc3MgdG8gcGdfZHVtcFxuIikpOworCXByaW50ZihfKCIgIC0t cmVzdG9yZS1vcHRpb25zPU9QVElPTlMgICAgIG9wdGlvbnMgdG8gcGFzcyB0byBwZ19yZXN0b3Jl XG4iKSk7CiAJcHJpbnRmKF8oIiAgLT8sIC0taGVscCAgICAgICAgICAgICAgICAgICAgc2hvdyB0 aGlzIGhlbHAsIHRoZW4gZXhpdFxuIikpOwogCXByaW50ZihfKCJcbiIKIAkJCSAiQmVmb3JlIHJ1 bm5pbmcgcGdfdXBncmFkZSB5b3UgbXVzdDpcbiIKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfdXBn cmFkZS9wZ191cGdyYWRlLmMgYi9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBncmFkZS5jCmluZGV4 IDM5NjBhZjQwMzYuLjliNGYwNjkzYWIgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfdXBncmFkZS9w Z191cGdyYWRlLmMKKysrIGIvc3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuYwpAQCAtNTQ4 LDEwICs1NDgsMTMgQEAgY3JlYXRlX25ld19vYmplY3RzKHZvaWQpCiAJCQkJICB0cnVlLAogCQkJ CSAgdHJ1ZSwKIAkJCQkgICJcIiVzL3BnX3Jlc3RvcmVcIiAlcyAlcyAtLWV4aXQtb24tZXJyb3Ig LS12ZXJib3NlICIKKwkJCQkgICIlcyAiCiAJCQkJICAiLS1kYm5hbWUgcG9zdGdyZXMgXCIlcy8l c1wiIiwKIAkJCQkgIG5ld19jbHVzdGVyLmJpbmRpciwKIAkJCQkgIGNsdXN0ZXJfY29ubl9vcHRz KCZuZXdfY2x1c3RlciksCiAJCQkJICBjcmVhdGVfb3B0cywKKwkJCQkgIHVzZXJfb3B0cy5wZ19y ZXN0b3JlX29wdHMgPworCQkJCQkJdXNlcl9vcHRzLnBnX3Jlc3RvcmVfb3B0cyA6ICIiLAogCQkJ CSAgbG9nX29wdHMuZHVtcGRpciwKIAkJCQkgIHNxbF9maWxlX25hbWUpOwogCkBAIC01ODYsMTAg KzU4OSwxMyBAQCBjcmVhdGVfbmV3X29iamVjdHModm9pZCkKIAkJcGFyYWxsZWxfZXhlY19wcm9n KGxvZ19maWxlX25hbWUsCiAJCQkJCQkgICBOVUxMLAogCQkJCQkJICAgIlwiJXMvcGdfcmVzdG9y ZVwiICVzICVzIC0tZXhpdC1vbi1lcnJvciAtLXZlcmJvc2UgIgorCQkJCQkJICAgIiVzICIKIAkJ CQkJCSAgICItLWRibmFtZSB0ZW1wbGF0ZTEgXCIlcy8lc1wiIiwKIAkJCQkJCSAgIG5ld19jbHVz dGVyLmJpbmRpciwKIAkJCQkJCSAgIGNsdXN0ZXJfY29ubl9vcHRzKCZuZXdfY2x1c3RlciksCiAJ CQkJCQkgICBjcmVhdGVfb3B0cywKKwkJCQkJCSAgIHVzZXJfb3B0cy5wZ19yZXN0b3JlX29wdHMg PworCQkJCQkJCQl1c2VyX29wdHMucGdfcmVzdG9yZV9vcHRzIDogIiIsCiAJCQkJCQkgICBsb2df b3B0cy5kdW1wZGlyLAogCQkJCQkJICAgc3FsX2ZpbGVfbmFtZSk7CiAJfQpkaWZmIC0tZ2l0IGEv c3JjL2Jpbi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuaCBiL3NyYy9iaW4vcGdfdXBncmFkZS9wZ191 cGdyYWRlLmgKaW5kZXggYTcxMGYzMjVkZS4uMDIxOGZmMmYyNiAxMDA2NDQKLS0tIGEvc3JjL2Jp bi9wZ191cGdyYWRlL3BnX3VwZ3JhZGUuaAorKysgYi9zcmMvYmluL3BnX3VwZ3JhZGUvcGdfdXBn cmFkZS5oCkBAIC0zMjQsNiArMzI0LDggQEAgdHlwZWRlZiBzdHJ1Y3QKIAlpbnQJCQlqb2JzOwkJ CS8qIG51bWJlciBvZiBwcm9jZXNzZXMvdGhyZWFkcyB0byB1c2UgKi8KIAljaGFyCSAgICpzb2Nr ZXRkaXI7CQkvKiBkaXJlY3RvcnkgdG8gdXNlIGZvciBVbml4IHNvY2tldHMgKi8KIAljaGFyCSAg ICpzeW5jX21ldGhvZDsKKwljaGFyCSAgICpwZ19kdW1wX29wdHM7CS8qIG9wdGlvbnMgdG8gcGFz cyB0byBwZ19kdW1wICovCisJY2hhcgkgICAqcGdfcmVzdG9yZV9vcHRzOwkvKiBvcHRpb25zIHRv IHBhc3MgdG8gcGdfZHVtcCAqLwogfSBVc2VyT3B0czsKIAogdHlwZWRlZiBzdHJ1Y3QK --_002_AD153893C4264249B7167A5360B6EC07amazoncom_--