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 1tVlYV-00BGKz-2V for pgsql-hackers@arkaria.postgresql.org; Thu, 09 Jan 2025 05:58:08 +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 1tVlYT-00CpWx-DU for pgsql-hackers@arkaria.postgresql.org; Thu, 09 Jan 2025 05:58:05 +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 1tVlYS-00CpWj-CT for pgsql-hackers@lists.postgresql.org; Thu, 09 Jan 2025 05:58:04 +0000 Received: from mail-yb1-xb2e.google.com ([2607:f8b0:4864:20::b2e]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tVlYF-000g1m-17 for pgsql-hackers@lists.postgresql.org; Thu, 09 Jan 2025 05:58:03 +0000 Received: by mail-yb1-xb2e.google.com with SMTP id 3f1490d57ef6-e549be93d5eso837609276.1 for ; Wed, 08 Jan 2025 21:57:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1736402270; x=1737007070; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=CdWsG5LiTv2qrUJrVFKJWZ4d6Q92FkJO6nvN4kzm15U=; b=BvEEDwBYA5AkljgVSVNSL0DFApOgoCnbHIUBxBX86+AdAUdQOYal2hDsP/KKxrbsoi HXSlIaxhZKT60Sbw9pKujRZBl2edr4PkWQHvY+K5mFhT1/rBn903HZjEnlNjyaMcJU6e Vjydt/8IHpKkkvLoJBxVUEZxq+vhWADEe6gD300cq1jPzrMM/o+FcUbGvkOcYbx81I8q 6yDTN9+MVrMSMW8r1YDG5eTlDR4COg+2RBcNspSzLWTIFqXWwduEMYeiA2NZR+p3P374 /+eKlnaTP9LiortWsWjCWI8hTr/LZ2f53zrR3etTH/2wTVNmHaDUSACL297Zn8aT08sU Wanw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1736402270; x=1737007070; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=CdWsG5LiTv2qrUJrVFKJWZ4d6Q92FkJO6nvN4kzm15U=; b=kgj8KPP71PTYxPWhAAR4KykRIAUT2mcARi8PNIIWTbJHAFrynoimI138fpCWUrIebx cyrPTLCiYYI4/1pF+ozhHDRQP9IfjAFUHjGsT4dBYY7fTk9hc+/qrkDAgvG3sFPT683Y AYvLRoqXhAz1tYwz9T/40Vzb8HAVL4Mt71X1HtT+TKtnuLutaFk33Me38HAzhFDZmFoP EiSCZtdatWev0YdOIn6Y2tQuEkiSXPr5J7DbXo16ufM7thNYUTTfra1N2Iogy9vCfpzJ HZMsk328UgIusDBLjCl9P1BL7+8PSOUAc1vvz1QiNXD2Q3iNT9Nnhv91WOAQV+FZstbL pHiA== X-Forwarded-Encrypted: i=1; AJvYcCXXe1mBennfqK3z3owwEc8k44fxJ/fv1aTMCCUaIR3J2pjVy5U8pQFlThAwPOaMZpM7v2Wf1uvGvokphoe6@lists.postgresql.org X-Gm-Message-State: AOJu0Yw0lXgfBym4Mwfck50+d2aESDjBBOGqOTbsi4mopx3EKSJnCWm+ HI20ewVV4pY2B3dP9pMB5xccHoNg0eYw9cvSoDsmXAdr0hfB+QQohT0XmMo2K+1yoG6UctaPL9z i7VqOfJeDwlTlVvgEJzZ0RpwHyYM= X-Gm-Gg: ASbGncsm10t1W+fq0a0mDeI35y4eVsXS3F5xoniCbILXFlfKiHKYKbKTjmCtMelzebt jYou7tHMApGmcAPKdXkFl861kqbk+SulXGE4kYFmVeRv0P2MhP50YPjG7X/MTwqLlSTp8MLA= X-Google-Smtp-Source: AGHT+IEDiNxUQimMbyP31IYQI/pbv7Uv6vTrnRwm6pjSjW+f2iEYQVAHHY6SxJ7g0i9mSMwLqwvguS9+L3hHtzW9Rhs= X-Received: by 2002:a05:690c:630d:b0:6f2:8dde:b66 with SMTP id 00721157ae682-6f531246a58mr45464697b3.12.1736402269856; Wed, 08 Jan 2025 21:57:49 -0800 (PST) MIME-Version: 1.0 References: <3chredgnjcmccym2kczawfih226b4ac6co7p6z4jeofevrcosi@mrsxkx2x2c65> <20241120201313.t4wbhld4ktgielaf@erthalion.local> In-Reply-To: From: Pavel Stehule Date: Thu, 9 Jan 2025 06:57:11 +0100 X-Gm-Features: AbW1kvZkgwBjO__GEIdNS_lUQ8DGizuwKwf--dPZEUMg7XY1mrBGUoV2_WCEmgE Message-ID: Subject: Re: Re: proposal: schema variables To: jian he Cc: Dmitry Dolgov <9erthalion6@gmail.com>, Laurenz Albe , Erik Rijkers , Michael Paquier , Amit Kapila , DUVAL REMI , PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000007bfa26062b3fa8d1" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000007bfa26062b3fa8d1 Content-Type: multipart/alternative; boundary="0000000000007bfa26062b3fa8cf" --0000000000007bfa26062b3fa8cf Content-Type: text/plain; charset="UTF-8" Hi minor change - remove one unwanted whitechar Regards Pavel --0000000000007bfa26062b3fa8cf Content-Type: text/html; charset="UTF-8"
Hi

minor change - remove one unwanted whitechar

Regards

Pavel



--0000000000007bfa26062b3fa8cf-- --0000000000007bfa26062b3fa8d1 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250109-0022-pg_restore-A-variable.patch" Content-Disposition: attachment; filename="v20250109-0022-pg_restore-A-variable.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5ox16kt0 RnJvbSBjYmZhZTA1YTVmNTBiMzI3OGI5NjFiNzkxMjAxNWZjOGEzM2IzMmI1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMjEgSnVsIDIwMjQgMTc6MDQ6NDEgKzAyMDAKU3ViamVjdDogW1BBVENIIDIy LzIyXSBwZ19yZXN0b3JlIC1BLCAtLXZhcmlhYmxlCgpwb3NzaWJpbGl0eSB0byByZXN0b3JlIHNl c3Npb24gdmFyaWFibGUgc3BlY2lmaWVkIGJ5IG5hbWUKLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL3Bn X3Jlc3RvcmUuc2dtbCB8IDExICsrKysrKysrKysrCiBzcmMvYmluL3BnX2R1bXAvcGdfcmVzdG9y ZS5jICAgICB8ICA5ICsrKysrKysrLQogMiBmaWxlcyBjaGFuZ2VkLCAxOSBpbnNlcnRpb25zKCsp LCAxIGRlbGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9wZ19yZXN0b3Jl LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX3Jlc3RvcmUuc2dtbAppbmRleCBiOGIyN2UxNzE5 Li43YTNhNGVhYmUyIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL3BnX3Jlc3RvcmUuc2dt bAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL3BnX3Jlc3RvcmUuc2dtbApAQCAtMTA2LDYgKzEwNiwx NyBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwv dmFybGlzdGVudHJ5PgogCisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48b3B0aW9u Pi1BIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zZXNzaW9uX3ZhcmlhYmxlPC9yZXBs YWNlYWJsZT48L29wdGlvbj48L3Rlcm0+CisgICAgICA8dGVybT48b3B0aW9uPi0tdmFyaWFibGU9 PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnNlc3Npb25fdmFyaWFibGU8L3JlcGxhY2Vh YmxlPjwvb3B0aW9uPjwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAg ICAgICAgUmVzdG9yZSBhIG5hbWVkIHNlc3Npb24gdmFyaWFibGUgb25seS4gIE11bHRpcGxlIHNl c3Npb24gdmFyaWFibGVzIG1heQorICAgICAgICBiZSBzcGVjaWZpZWQgd2l0aCBtdWx0aXBsZSA8 b3B0aW9uPi1BPC9vcHRpb24+IHN3aXRjaGVzLgorICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlz dGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5PgorCiAgICAgIDx2YXJsaXN0ZW50cnk+CiAgICAg ICA8dGVybT48b3B0aW9uPi1jPC9vcHRpb24+PC90ZXJtPgogICAgICAgPHRlcm0+PG9wdGlvbj4t LWNsZWFuPC9vcHRpb24+PC90ZXJtPgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX3Jl c3RvcmUuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19yZXN0b3JlLmMKaW5kZXggODhhZTM5ZDkzOC4u NTIxODBjOTdkOSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX3Jlc3RvcmUuYworKysg Yi9zcmMvYmluL3BnX2R1bXAvcGdfcmVzdG9yZS5jCkBAIC0xMDYsNiArMTA2LDcgQEAgbWFpbihp bnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCXsidHJpZ2dlciIsIDEsIE5VTEwsICdUJ30sCiAJCXsi dXNlLWxpc3QiLCAxLCBOVUxMLCAnTCd9LAogCQl7InVzZXJuYW1lIiwgMSwgTlVMTCwgJ1UnfSwK KwkJeyJ2YXJpYWJsZSIsIDEsIE5VTEwsICdBJ30sCiAJCXsidmVyYm9zZSIsIDAsIE5VTEwsICd2 J30sCiAJCXsic2luZ2xlLXRyYW5zYWN0aW9uIiwgMCwgTlVMTCwgJzEnfSwKIApAQCAtMTU2LDcg KzE1Nyw3IEBAIG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KQogCQl9CiAJfQogCi0Jd2hpbGUg KChjID0gZ2V0b3B0X2xvbmcoYXJnYywgYXJndiwgImFjQ2Q6ZWY6RjpoOkk6ajpsTDpuOk46T3A6 UDpSc1M6dDpUOlU6dndXeDEiLAorCXdoaWxlICgoYyA9IGdldG9wdF9sb25nKGFyZ2MsIGFyZ3Ys ICJBOmFjQ2Q6ZWY6RjpoOkk6ajpsTDpuOk46T3A6UDpSc1M6dDpUOlU6dndXeDEiLAogCQkJCQkJ CWNtZG9wdHMsIE5VTEwpKSAhPSAtMSkKIAl7CiAJCXN3aXRjaCAoYykKQEAgLTE2NCw2ICsxNjUs MTEgQEAgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpCiAJCQljYXNlICdhJzoJCQkvKiBEdW1w IGRhdGEgb25seSAqLwogCQkJCWRhdGFfb25seSA9IHRydWU7CiAJCQkJYnJlYWs7CisJCQljYXNl ICdBJzoJCQkvKiB2QXJpYWJsZSAqLworCQkJCW9wdHMtPnNlbFR5cGVzID0gMTsKKwkJCQlvcHRz LT5zZWxWYXJpYWJsZSA9IDE7CisJCQkJc2ltcGxlX3N0cmluZ19saXN0X2FwcGVuZCgmb3B0cy0+ dmFyaWFibGVOYW1lcywgb3B0YXJnKTsKKwkJCQlicmVhazsKIAkJCWNhc2UgJ2MnOgkJCS8qIGNs ZWFuIChpLmUuLCBkcm9wKSBzY2hlbWEgcHJpb3IgdG8gY3JlYXRlICovCiAJCQkJb3B0cy0+ZHJv cFNjaGVtYSA9IDE7CiAJCQkJYnJlYWs7CkBAIC00NjgsNiArNDc0LDcgQEAgdXNhZ2UoY29uc3Qg Y2hhciAqcHJvZ25hbWUpCiAKIAlwcmludGYoXygiXG5PcHRpb25zIGNvbnRyb2xsaW5nIHRoZSBy ZXN0b3JlOlxuIikpOwogCXByaW50ZihfKCIgIC1hLCAtLWRhdGEtb25seSAgICAgICAgICAgICAg cmVzdG9yZSBvbmx5IHRoZSBkYXRhLCBubyBzY2hlbWFcbiIpKTsKKwlwcmludGYoXygiICAtQSwg LS12YXJpYWJsZT1OQU1FICAgICAgICAgIHJlc3RvcmUgbmFtZWQgc2Vzc2lvbiB2YXJpYWJsZVxu IikpOwogCXByaW50ZihfKCIgIC1jLCAtLWNsZWFuICAgICAgICAgICAgICAgICAgY2xlYW4gKGRy b3ApIGRhdGFiYXNlIG9iamVjdHMgYmVmb3JlIHJlY3JlYXRpbmdcbiIpKTsKIAlwcmludGYoXygi ICAtQywgLS1jcmVhdGUgICAgICAgICAgICAgICAgIGNyZWF0ZSB0aGUgdGFyZ2V0IGRhdGFiYXNl XG4iKSk7CiAJcHJpbnRmKF8oIiAgLWUsIC0tZXhpdC1vbi1lcnJvciAgICAgICAgICBleGl0IG9u IGVycm9yLCBkZWZhdWx0IGlzIHRvIGNvbnRpbnVlXG4iKSk7Ci0tIAoyLjQ3LjEKCg== --0000000000007bfa26062b3fa8d1 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250109-0021-transactional-variables.patch" Content-Disposition: attachment; filename="v20250109-0021-transactional-variables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5ox16lh1 RnJvbSAwZDQwNTE5YjdjNTcyYzM0YWJiMWNkY2M1NmVmZTRkNGU0NGY2YjE3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNToxMTozMyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MjEvMjJdIHRyYW5zYWN0aW9uYWwgdmFyaWFibGVzCgpUaGlzIGNvbW1pdCBpbXBsZW1lbnRzIHRy YW5zYWN0aW9uYWwgdmFyaWFibGVzLiBUaGUgY29udGVudCBvZiB0cmFuc2FjdGlvbmFsCnNlc3Np b24gdmFyaWFibGVzIGlzIHNlbnNpdGl2ZSB0byB0cmFuc2FjdGlvbnMgYW5kIHN1YnRyYW5zYWN0 aW9ucy4gQW55CnRyYW5zYWN0aW9uYWwgdmFyaWFibGUgaG9sZHMgYSBoaXN0b3J5IG9mIHZhbHVl cyBuZWNlc3NhcnkgZm9yIHJldmVydC4gVGhpcyBoaXN0b3J5CmlzIGNsZWFuZWQgKHB1cmdlZCkg d2hlbiBhKSB3ZSByZWFkIHRoZSB2YXJpYWJsZSwgYikgd2hlbiB0aGUgdHJhbnNhY3Rpb24gaXMg ZmluaXNoZWQuCgpXZSBkb24ndCB0cnkgdG8gcHVyZ2UsIHdoZW4gdGhlIGxhc3QgbW9kaWZpY2F0 aW9uIG9mIGEgdmFyaWFibGUgaXMgZnJvbQpjdXJyZW50IHN1YnRyYW5zYWN0aW9uLCBvciB3aGVu IHB1cmdlIHdhcyBwcm9jZXNzZWQgaW4gY3VycmVudCBzdWJ0cmFuc2FjdGlvbi4KClRoaXMgcGF0 Y2ggaXMgYmFzZWQgb24gbXkgd29yayBmcm9tIEZlYiAyMDIwIGFuZCBpdCBpcyByZWxhdGVkIHRv IGRpc2N1c3Npb24KYWJvdXQgZmVhdHVyZXMgcmVsYXRlZCB0byBzZXNzaW9uIHZhcmlhYmxlcy4g Tm93LCB3aGVuIHRoZSBhbGwgZmVhdHVyZXMgYXJlCnNlcGFyYXRlZCB0byBpc29sYXRlZCBwYXRj aGVzIEkgY2FuIHJldml0YWxpemUgdGhpcyBwYXRjaCwgYmVjYXVzZSBpdCBkb2Vzbid0CmluY3Jl YXNlIGNvbXBsZXhpdHkgb2YgYmFzaWMgcGF0Y2hlcy4KClVubGlrZSBvdGhlciBwYXRjaGVzLCB0 aGlzIHBhdGNoIGlzIHdpdGhvdXQgYW55IHJldmlldyBhdCB0aGlzIG1vbWVudCAoRmViIDIwMjQp LApidXQgdGhlIGZlYXR1cmUgc2hvdWxkIGJlIGZ1bGx5IGZ1bmN0aW9uYWwgZm9yIHBlb3BsZSB3 aG8gYXJlIGludGVyZXN0ZWQgYWJvdXQKdGhpcyBmZWF0dXJlIChmb3IgdGVzdGluZykuCi0tLQog ZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgIDEyICsKIGRv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgICAgICAgICB8ICAxMCArLQogc3Jj L2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jICAgICAgICAgICAgIHwgICA0ICsKIHNyYy9i YWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDMwMSArKysrKysrKysr KysrKysrKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8 ICA1MCArLS0KIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8 ICAxMCArLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwg ICAxICsKIHNyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsICAgICAgICAgICAgICB8ICAz NiArKysKIHNyYy9iaW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAg NCArLQogc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgICA1 ICsKIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaCAgICAgICAgICAgICB8ICAgMyAr CiBzcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgIDEgKwog c3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5oICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNy Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQgICAgICAgICAgICB8ICAzNiArLS0KIC4u Li9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8IDEwMCArKysrKysK IHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8ICA1OCArKysr CiAxNiBmaWxlcyBjaGFuZ2VkLCA1ODcgaW5zZXJ0aW9ucygrKSwgNDUgZGVsZXRpb25zKC0pCgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0 YWxvZ3Muc2dtbAppbmRleCA5YWIyNGRmNTI4Li40NTgyZWExNjQwIDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApA QCAtOTg1OCw2ICs5ODU4LDE4IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVy YXRpb24gY291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAgICA8L3Bh cmE+PC9lbnRyeT4KICAgICAgPC9yb3c+CiAKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeT48c3Ry dWN0ZmllbGQ+dmFyaXN0cmFuc2FjdDwvc3RydWN0ZmllbGQ+PC9lbnRyeT4KKyAgICAgIDxlbnRy eT48dHlwZT5ib29sZWFuPC90eXBlPjwvZW50cnk+CisgICAgICA8ZW50cnk+PC9lbnRyeT4KKyAg ICAgIDxlbnRyeT4KKyAgICAgICBUcnVlLCB3aGVuIHRoZSB2YXJpYWJsZSBpcyA8cXVvdGU+dHJh bnNhY3Rpb25hbDwvcXVvdGU+LiBJbiB0aGUgY2FzZQorICAgICAgIG9mIGEgdHJhbnNhY3Rpb24g cm9sbGJhY2ssIHRyYW5zYWN0aW9uYWwgdmFyaWFibGVzIGFyZSByZXNldCB0byB0aGUKKyAgICAg ICB2YWx1ZSB0aGV5IGhhZCB3aGVuIHRoZSB0cmFuc2FjdGlvbiBzdGFydGVkLiBUaGUgZGVmYXVs dCB2YWx1ZSBpcworICAgICAgIDxsaXRlcmFsPmZhbHNlPC9saXRlcmFsPi4KKyAgICAgIDwvZW50 cnk+CisgICAgIDwvcm93PgorCiAgICAgIDxyb3c+CiAgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxv Z190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgogICAgICAgIDxz dHJ1Y3RmaWVsZD52YXJlb3hhY3Rpb248L3N0cnVjdGZpZWxkPiA8dHlwZT5jaGFyPC90eXBlPgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCBiL2RvYy9z cmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKaW5kZXggM2MzZTZkNTViNi4uMWFhZGQz Njc3ZSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCkBAIC0yNiw3ICsyNiw3 IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogCiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5bm9w c2lzPgotQ1JFQVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0gXSBbIElNTVVUQUJMRSBdIFZBUklB QkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1l PC9yZXBsYWNlYWJsZT4gWyBBUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5kYXRh X3R5cGU8L3JlcGxhY2VhYmxlPiBbIENPTExBVEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0 ZXIiPmNvbGxhdGlvbjwvcmVwbGFjZWFibGU+IF0KK0NSRUFURSBbIHsgVEVNUE9SQVJZIHwgVEVN UCB9IF0gWyB7IFRSQU5TQUNUSU9OQUwgfCBUUkFOU0FDVElPTiB9IF0gWyBJTU1VVEFCTEUgXSBW QVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gWyBDT0xMQVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFy YW1ldGVyIj5jb2xsYXRpb248L3JlcGxhY2VhYmxlPiBdCiAgICAgWyBOT1QgTlVMTCBdIFsgREVG QVVMVCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGVmYXVsdF9leHByPC9yZXBsYWNl YWJsZT4gXSBbIHsgT04gQ09NTUlUIERST1AgfCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQgfSBd CiA8L3N5bm9wc2lzPgogIDwvcmVmc3lub3BzaXNkaXY+CkBAIC00Nyw2ICs0NywxNCBAQCBDUkVB VEUgWyB7IFRFTVBPUkFSWSB8IFRFTVAgfSBdIFsgSU1NVVRBQkxFIF0gVkFSSUFCTEUgWyBJRiBO T1QgRVhJU1RTIF0gPHJlcGxhYwogICAgc2FtZSBhcyByZWd1bGFyIHZhcmlhYmxlcyBpbiBwcm9j ZWR1cmFsIGxhbmd1YWdlcy4KICAgPC9wYXJhPgogCisgIDxwYXJhPgorICAgV2hlbiBhIHNjaGVt YSB2YXJpYWJsZSBpcyBjcmVhdGVkIHdpdGggYQorICAgPGNvbW1hbmQ+Q1JFQVRFIFRSQU5TQUNU SU9OQUwgVkFSSUFCTEU8L2NvbW1hbmQ+IGNvbW1hbmQsIHRoZSB2YXJpYWJsZXMKKyAgIGNvbnRl bnQgY2hhbmdlcyBhcmUgdHJhbnNhY3Rpb25hbDogaW4gY2FzZSBvZiByb2xsYmFjaywgdGhleSBh cmUgcmVzZXQgdG8KKyAgIHRoZWlyIHZhbHVlIGF0IHRoZSBiZWdpbm5pbmcgb2YgdGhlIHRyYW5z YWN0aW9uIG9yIHRoZSBsYXRlc3Qgc3VidHJhbnNhY3Rpb24uCisgICBUaGUgdmFyaWFibGUgY29u dGVudCBpcyBvbmx5IGhvbGQgaW4gbWVtb3J5LCBhbmQgdGh1cyBpcyBub3QgcGVyc2lzdGVudC4K KyAgPC9wYXJhPgorCiAgIDxwYXJhPgogICAgU2Vzc2lvbiB2YXJpYWJsZXMgYXJlIHJldHJpZXZl ZCBieSB0aGUgPGNvbW1hbmQ+U0VMRUNUPC9jb21tYW5kPgogICAgY29tbWFuZC4gIFRoZWlyIHZh bHVlIGlzIHNldCB3aXRoIHRoZSA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQuCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9j YXRhbG9nL3BnX3ZhcmlhYmxlLmMKaW5kZXggMGI2MDkzYTAwYi4uZmE0OWU3MjMzZCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5k L2NhdGFsb2cvcGdfdmFyaWFibGUuYwpAQCAtNDIsNiArNDIsNyBAQCBzdGF0aWMgT2JqZWN0QWRk cmVzcyBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAkJCQkJCQkJCSBib29s IGlmX25vdF9leGlzdHMsCiAJCQkJCQkJCQkgYm9vbCBub3RfbnVsbCwKIAkJCQkJCQkJCSBib29s IGlzX2ltbXV0YWJsZSwKKwkJCQkJCQkJCSBib29sIGlzX3RyYW5zYWN0LAogCQkJCQkJCQkJIE5v ZGUgKnZhckRlZmV4cHIsCiAJCQkJCQkJCQkgVmFyaWFibGVYYWN0RW5kQWN0aW9uIHZhclhhY3RF bmRBY3Rpb24pOwogCkBAIC01OSw2ICs2MCw3IEBAIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFy ICp2YXJOYW1lLAogCQkJCWJvb2wgaWZfbm90X2V4aXN0cywKIAkJCQlib29sIG5vdF9udWxsLAog CQkJCWJvb2wgaXNfaW1tdXRhYmxlLAorCQkJCWJvb2wgaXNfdHJhbnNhY3QsCiAJCQkJTm9kZSAq dmFyRGVmZXhwciwKIAkJCQlWYXJpYWJsZVhhY3RFbmRBY3Rpb24gdmFyWGFjdEVuZEFjdGlvbikK IHsKQEAgLTEyMyw2ICsxMjUsNyBAQCBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFt ZSwKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJjb2xsYXRpb24gLSAxXSA9IE9iamVjdElk R2V0RGF0dW0odmFyQ29sbGF0aW9uKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJub3Ru dWxsIC0gMV0gPSBCb29sR2V0RGF0dW0obm90X251bGwpOwogCXZhbHVlc1tBbnVtX3BnX3Zhcmlh YmxlX3ZhcmlzaW1tdXRhYmxlIC0gMV0gPSBCb29sR2V0RGF0dW0oaXNfaW1tdXRhYmxlKTsKKwl2 YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJpc3RyYW5zYWN0IC0gMV0gPSBCb29sR2V0RGF0dW0o aXNfdHJhbnNhY3QpOwogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcnhhY3RlbmRhY3Rpb24g LSAxXSA9IENoYXJHZXREYXR1bSh2YXJYYWN0RW5kQWN0aW9uKTsKIAogCWlmICh2YXJEZWZleHBy KQpAQCAtMjY3LDYgKzI3MCw3IEBAIENyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwg Q3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiAJCQkJCQkJICAgc3RtdC0+aWZfbm90X2V4aXN0 cywKIAkJCQkJCQkgICBzdG10LT5ub3RfbnVsbCwKIAkJCQkJCQkgICBzdG10LT5pc19pbW11dGFi bGUsCisJCQkJCQkJICAgc3RtdC0+aXNfdHJhbnNhY3QsCiAJCQkJCQkJICAgY29va2VkX2RlZmF1 bHQsCiAJCQkJCQkJICAgc3RtdC0+WGFjdEVuZEFjdGlvbik7CiAKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRz L3Nlc3Npb25fdmFyaWFibGUuYwppbmRleCAyNTU1OTc1MTk3Li5lYTYzYTQwZjZmIDEwMDY0NAot LS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKKysrIGIvc3JjL2Jh Y2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCkBAIC01NSw2ICs1NSwxOSBAQCB0eXBl ZGVmIHN0cnVjdCBTVmFyaWFibGVYQWN0RHJvcEl0ZW0KIGludAkJc2Vzc2lvbl92YXJpYWJsZXNf dXNlX2ZlbmNlX2NvbnRleHRfZ3VhcmQgPQogCQkJCQkJCQlTRVNTSU9OVkFSSUFCTEVfVVNFX0ZF TkNFX0NPTlRFWFRfR1VBUkRfTk9ORTsKIAorLyoKKyAqIFVzZWQgZm9yIHRyYW5zYWN0aW9uYWwg dmFyaWFibGVzLiBIb2xkcyBwcmV2IHZlcnNpb24uCisgKi8KK3R5cGVkZWYgc3RydWN0IFByZXZW YWx1ZQoreworCURhdHVtCQl2YWx1ZTsKKwlib29sCQlpc251bGw7CisKKwlTdWJUcmFuc2FjdGlv bklkIG1vZGlmeV9zdWJpZDsKKworCXN0cnVjdCBQcmV2VmFsdWUgKnByZXZfdmFsdWU7Cit9IFBy ZXZWYWx1ZTsKKwogLyoKICAqIFRoZSB2YWx1ZXMgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIHN0 b3JlZCBpbiB0aGUgYmFja2VuZCdzIHByaXZhdGUgbWVtb3J5CiAgKiBpbiB0aGUgZGVkaWNhdGVk IG1lbW9yeSBjb250ZXh0IFNWYXJpYWJsZU1lbW9yeUNvbnRleHQgaW4gYmluYXJ5IGZvcm1hdC4K QEAgLTc2LDYgKzg5LDI1IEBAIHR5cGVkZWYgc3RydWN0IFNWYXJpYWJsZURhdGEKIAlib29sCQlp c251bGw7CiAJRGF0dW0JCXZhbHVlOwogCisJLyoKKwkgKiBXZSBkb24ndCBuZWVkIHN0YWNrIHZl cnNpb25zIG1vZGlmaWVkIGluIHNhbWUgc3VidHJhbnNhY3Rpb24uCisJICogVXNlZCBieSB0cmFu c2FjdGlvbmFsIHZhcmlhYmxlcyBvbmx5LiBUaGUgdmFsdWUgb2YgdHJhbnNhY3Rpb25hbAorCSAq IHZhcmlhYmxlIGNhbiBiZSByZXR1cm5lZCBpbW1lZGlhdGVseSB3aGVuIG1vZGlmeV9zdWJpZCBp cyBzYW1lCisJICogbGlrZSBjdXJyZW50IHN1YmlkLgorCSAqLworCVN1YlRyYW5zYWN0aW9uSWQg bW9kaWZ5X3N1YmlkOworCisJLyoKKwkgKiBXaGVuIHRoZSBtb2RpZnlfc3ViaWQgaXMgZGlmZmVy ZW50IHRoYW4gY3VycmVudCBzdWJpZCwgdGhlbgorCSAqIHdlIG5lZWQgdG8gcmVjaGVjayB2ZXJz aW9ucyBhbmQgdGhyb3cgdmVyc2lvbnMgcmVsYXRlZCB0bworCSAqIHJldmVydGVkIHRyYW5zYWN0 aW9ucy4gV2hlbiBwdXJnZV9zdWJpZCBpcyBzYW1lIGxpa2UgY3VycmVudCBzdWJpZAorCSAqIHdl IGNhbiByZXR1cm4gdGhlIHZhbHVlIG9mIHRyYW5zYWN0aW9uIHZhcmlhYmxlIHdpdGhvdXQgdGhp cworCSAqIHJlY2hlY2suCisJICovCisJU3ViVHJhbnNhY3Rpb25JZCBwdXJnZV9zdWJpZDsKKwor CVByZXZWYWx1ZSAgKnByZXZfdmFsdWU7CisKIAlPaWQJCQl0eXBpZDsKIAlpbnQxNgkJdHlwbGVu OwogCWJvb2wJCXR5cGJ5dmFsOwpAQCAtOTQsNiArMTI2LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgU1Zh cmlhYmxlRGF0YQogCiAJYm9vbAkJbm90X251bGw7CiAJYm9vbAkJaXNfaW1tdXRhYmxlOworCWJv b2wJCWlzX3RyYW5zYWN0OwogCiAJYm9vbAkJcmVzZXRfYXRfZW94OwogCkBAIC0xMzMsNiArMTY2 LDkgQEAgc3RhdGljIGJvb2wgbmVlZHNfdmFsaWRhdGlvbiA9IGZhbHNlOwogICovCiBzdGF0aWMg Ym9vbCBoYXNfc2Vzc2lvbl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9lb3ggPSBmYWxzZTsKIAor LyogdHJ1ZSwgd2hlbiB0cmFuc2FjdGlvbmFsIHZhcmlhYmxlcyB3YXMgbW9kaWZpZWQgKi8KK3N0 YXRpYyBib29sIGhhc19tb2RpZmllZF90cmFuc2FjdGlvbmFsX3ZhcmlhYmxlcyA9IGZhbHNlOwor CiAvKgogICogVGhlIGNvbnRlbnQgb2YgZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyBpcyBub3Qg cmVtb3ZlZCBpbW1lZGlhdGVseS4gIElmCiAgKiBwb3NzaWJsZSwgd2UgZG8gdGhhdCBhdCB0aGUg ZW5kIG9mIHRoZSB0cmFuc2FjdGlvbi4gIEJ1dCB3ZSBjYW5ub3QgZG8gdGhhdApAQCAtMTQ4LDYg KzE4NCw3IEBAIHN0YXRpYyBMaXN0ICp4YWN0X2Ryb3BfaXRlbXMgPSBOSUw7CiAKIHN0YXRpYyB2 b2lkIHJlZ2lzdGVyX3Nlc3Npb25fdmFyaWFibGVfeGFjdF9kcm9wKE9pZCB2YXJpZCk7CiBzdGF0 aWMgdm9pZCB1bnJlZ2lzdGVyX3Nlc3Npb25fdmFyaWFibGVfeGFjdF9kcm9wKE9pZCB2YXJpZCk7 CitzdGF0aWMgYm9vbCBwdXJnZV9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyKTsKIAog LyoKICAqIENhbGxiYWNrIGZ1bmN0aW9uIGZvciBzZXNzaW9uIHZhcmlhYmxlIGludmFsaWRhdGlv bi4KQEAgLTMwMCw4ICszMzcsMjUgQEAgdW5yZWdpc3Rlcl9zZXNzaW9uX3ZhcmlhYmxlX3hhY3Rf ZHJvcChPaWQgdmFyaWQpCiAgKiBSZWxlYXNlIHN0b3JlZCB2YWx1ZSwgZnJlZSBtZW1vcnkKICAq Lwogc3RhdGljIHZvaWQKLWZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShTVmFyaWFibGUgc3Zh cikKK2ZyZWVfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShTVmFyaWFibGUgc3ZhciwgYm9vbCBkZWVw X2ZyZWUpCiB7CisJaWYgKGRlZXBfZnJlZSkKKwl7CisJCVByZXZWYWx1ZSAqcHJldl92YWx1ZSA9 IHN2YXItPnByZXZfdmFsdWU7CisJCVByZXZWYWx1ZSAqbmV4dF92YWx1ZTsKKworCQl3aGlsZSAo cHJldl92YWx1ZSkKKwkJeworCQkJaWYgKCFzdmFyLT50eXBieXZhbCkKKwkJCQlwZnJlZShEYXR1 bUdldFBvaW50ZXIocHJldl92YWx1ZS0+dmFsdWUpKTsKKworCQkJbmV4dF92YWx1ZSA9IHByZXZf dmFsdWUtPnByZXZfdmFsdWU7CisJCQlwZnJlZShwcmV2X3ZhbHVlKTsKKworCQkJcHJldl92YWx1 ZSA9IG5leHRfdmFsdWU7CisJCX0KKwl9CisKIAkvKiBjbGVhbiB0aGUgY3VycmVudCB2YWx1ZSAq LwogCWlmICghc3Zhci0+aXNudWxsKQogCXsKQEAgLTM5OCw3ICs0NTIsNyBAQCByZW1vdmVfaW52 YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyhib29sIGF0RU9YKQogCQkJewogCQkJCU9pZAkJCXZhcmlk ID0gc3Zhci0+dmFyaWQ7CiAKLQkJCQlmcmVlX3Nlc3Npb25fdmFyaWFibGVfdmFsdWUoc3Zhcik7 CisJCQkJZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIsIHRydWUpOwogCQkJCWhhc2hf c2VhcmNoKHNlc3Npb252YXJzLCAmdmFyaWQsIEhBU0hfUkVNT1ZFLCBOVUxMKTsKIAkJCQlzdmFy ID0gTlVMTDsKIAkJCX0KQEAgLTQzNCw2ICs0ODgsOTQgQEAgcmVtb3ZlX3Nlc3Npb25fdmFyaWFi bGVzX3dpdGhfcmVzZXRfYXRfZW94KHZvaWQpCiAJaGFzX3Nlc3Npb25fdmFyaWFibGVzX3dpdGhf cmVzZXRfYXRfZW94ID0gZmFsc2U7CiB9CiAKKy8qCisgKiByZW1vdmUgcHJldiB2YWx1ZXMgYXQg ZW94CisgKi8KK3N0YXRpYyB2b2lkCityZW1vdmVfcHJldl92YWx1ZXNfYXRfZW94KGJvb2wgaXND b21taXQpCit7CisJSEFTSF9TRVFfU1RBVFVTIHN0YXR1czsKKwlTVmFyaWFibGUJc3ZhcjsKKwor CWlmICghc2Vzc2lvbnZhcnMpCisJCXJldHVybjsKKworCS8qIGxlYXZlIHF1Y2tseSwgd2hlbiB0 aGVyZSBhcmUgbm90IHRoYXQgdmFyaWFibGVzICovCisJaWYgKCFoYXNfbW9kaWZpZWRfdHJhbnNh Y3Rpb25hbF92YXJpYWJsZXMpCisJCXJldHVybjsKKworCWhhc2hfc2VxX2luaXQoJnN0YXR1cywg c2Vzc2lvbnZhcnMpOworCXdoaWxlICgoc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VxX3NlYXJj aCgmc3RhdHVzKSkgIT0gTlVMTCkKKwl7CisJCWlmIChzdmFyLT5pc190cmFuc2FjdCAmJiBzdmFy LT5tb2RpZnlfc3ViaWQgIT0gSW52YWxpZFN1YlRyYW5zYWN0aW9uSWQpCisJCXsKKwkJCWlmIChp c0NvbW1pdCkKKwkJCXsKKwkJCQlpZiAocHVyZ2Vfc2Vzc2lvbl92YXJpYWJsZShzdmFyKSkKKwkJ CQl7CisJCQkJCVByZXZWYWx1ZSAqcHJldl92YWx1ZSA9IHN2YXItPnByZXZfdmFsdWU7CisKKwkJ CQkJd2hpbGUgKHByZXZfdmFsdWUpCisJCQkJCXsKKwkJCQkJCVByZXZWYWx1ZSAqY3VycmVudF9w diA9IHByZXZfdmFsdWU7CisKKwkJCQkJCWlmICghc3Zhci0+dHlwYnl2YWwgJiYgIWN1cnJlbnRf cHYtPmlzbnVsbCkKKwkJCQkJCQlwZnJlZShEYXR1bUdldFBvaW50ZXIoY3VycmVudF9wdi0+dmFs dWUpKTsKKworCQkJCQkJcHJldl92YWx1ZSA9IGN1cnJlbnRfcHYtPnByZXZfdmFsdWU7CisJCQkJ CQlwZnJlZShjdXJyZW50X3B2KTsKKwkJCQkJfQorCQkJCX0KKwkJCQllbHNlCisJCQkJeworCQkJ CQloYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnN2YXItPnZhcmlkLCBIQVNIX1JFTU9WRSwgTlVM TCk7CisJCQkJCXN2YXIgPSBOVUxMOworCQkJCX0KKwkJCX0KKwkJCWVsc2UKKwkJCXsKKwkJCQlQ cmV2VmFsdWUgKnByZXZfdmFsdWUgPSBzdmFyLT5wcmV2X3ZhbHVlOworCisJCQkJd2hpbGUgKHBy ZXZfdmFsdWUpCisJCQkJeworCQkJCQlQcmV2VmFsdWUgKmN1cnJlbnRfcHYgPSBwcmV2X3ZhbHVl OworCisJCQkJCWlmIChjdXJyZW50X3B2LT5tb2RpZnlfc3ViaWQgPT0gSW52YWxpZFN1YlRyYW5z YWN0aW9uSWQpCisJCQkJCQlicmVhazsKKworCQkJCQlpZiAoIXN2YXItPnR5cGJ5dmFsICYmICFj dXJyZW50X3B2LT5pc251bGwpCisJCQkJCQlwZnJlZShEYXR1bUdldFBvaW50ZXIoY3VycmVudF9w di0+dmFsdWUpKTsKKworCQkJCQlwcmV2X3ZhbHVlID0gY3VycmVudF9wdi0+cHJldl92YWx1ZTsK KwkJCQkJcGZyZWUoY3VycmVudF9wdik7CisJCQkJfQorCisJCQkJaWYgKHByZXZfdmFsdWUpCisJ CQkJeworCQkJCQlzdmFyLT52YWx1ZSA9IHByZXZfdmFsdWUtPnZhbHVlOworCQkJCQlzdmFyLT5p c251bGwgPSBwcmV2X3ZhbHVlLT5pc251bGw7CisKKwkJCQkJcGZyZWUocHJldl92YWx1ZSk7CisJ CQkJfQorCQkJCWVsc2UKKwkJCQl7CisJCQkJCWhhc2hfc2VhcmNoKHNlc3Npb252YXJzLCAmc3Zh ci0+dmFyaWQsIEhBU0hfUkVNT1ZFLCBOVUxMKTsKKwkJCQkJc3ZhciA9IE5VTEw7CisJCQkJfQor CQkJfQorCisJCQkvKiB3aGVuIHN2YXIgaXMgc3RpbGwgdmFsaWQgKG5vdCByZW1vdmVkIGZyb20g c2Vzc2lvbnZhcnMgKi8KKwkJCWlmIChzdmFyKQorCQkJeworCQkJCXN2YXItPm1vZGlmeV9zdWJp ZCA9IEludmFsaWRTdWJUcmFuc2FjdGlvbklkOworCQkJCXN2YXItPnByZXZfdmFsdWUgPSBOVUxM OworCQkJfQorCQl9CisJfQorCisJaGFzX21vZGlmaWVkX3RyYW5zYWN0aW9uYWxfdmFyaWFibGVz ID0gZmFsc2U7Cit9CisKIC8qCiAgICogUGVyZm9ybSBPTiBDT01NSVQgRFJPUCBmb3IgdGVtcG9y YXJ5IHNlc3Npb24gdmFyaWFibGVzLAogICAqIGFuZCByZW1vdmUgYWxsIGRyb3BwZWQgdmFyaWFi bGVzIGZyb20gbWVtb3J5LgpAQCAtNDgxLDYgKzYyMyw4IEBAIEF0UHJlRU9YYWN0X1Nlc3Npb25W YXJpYWJsZXMoYm9vbCBpc0NvbW1pdCkKIAkJcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJs ZXModHJ1ZSk7CiAJfQogCisJcmVtb3ZlX3ByZXZfdmFsdWVzX2F0X2VveChpc0NvbW1pdCk7CisK IAkvKgogCSAqIFdlIGhhdmUgdG8gY2xlYW4geGFjdF9kcm9wX2l0ZW1zLiBBbGwgcmVsYXRlZCB2 YXJpYWJsZXMgYXJlIGRyb3BwZWQKIAkgKiBub3csIG9yIGxvc3QgaW5zaWRlIGFib3J0ZWQgdHJh bnNhY3Rpb24uCkBAIC02MjYsNiArNzcwLDcgQEAgc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFy aWFibGUgc3ZhciwgT2lkIHZhcmlkLCBib29sIGlzX3dyaXRlKQogCiAJc3Zhci0+bm90X251bGwg PSB2YXJmb3JtLT52YXJub3RudWxsOwogCXN2YXItPmlzX2ltbXV0YWJsZSA9IHZhcmZvcm0tPnZh cmlzaW1tdXRhYmxlOworCXN2YXItPmlzX3RyYW5zYWN0ID0gdmFyZm9ybS0+dmFyaXN0cmFuc2Fj dDsKIAogCXN2YXItPmlzX2RvbWFpbiA9IChnZXRfdHlwdHlwZSh2YXJmb3JtLT52YXJ0eXBlKSA9 PSBUWVBUWVBFX0RPTUFJTik7CiAJc3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhID0gTlVMTDsKQEAg LTY1MSw2ICs3OTYsMTcgQEAgc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3Zhciwg T2lkIHZhcmlkLCBib29sIGlzX3dyaXRlKQogCXN2YXItPmlzbnVsbCA9IHRydWU7CiAJc3Zhci0+ dmFsdWUgPSAoRGF0dW0pIDA7CiAKKwlpZiAoc3Zhci0+aXNfdHJhbnNhY3QpCisJeworCQlzdmFy LT5tb2RpZnlfc3ViaWQgPSBHZXRDdXJyZW50U3ViVHJhbnNhY3Rpb25JZCgpOworCQloYXNfbW9k aWZpZWRfdHJhbnNhY3Rpb25hbF92YXJpYWJsZXMgPSB0cnVlOworCX0KKwllbHNlCisJCXN2YXIt Pm1vZGlmeV9zdWJpZCA9IEludmFsaWRTdWJUcmFuc2FjdGlvbklkOworCisJc3Zhci0+cHVyZ2Vf c3ViaWQgPSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZDsKKwlzdmFyLT5wcmV2X3ZhbHVlID0gTlVM TDsKKwogCXN2YXItPmlzX3ZhbGlkID0gdHJ1ZTsKIAogCXN2YXItPmhhc2h2YWx1ZSA9IEdldFN5 c0NhY2hlSGFzaFZhbHVlMShWQVJJQUJMRU9JRCwKQEAgLTY4NCw2ICs4NDAsNjkgQEAgc2V0dXBf c2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lkIHZhcmlkLCBib29sIGlzX3dyaXRl KQogCVJlbGVhc2VTeXNDYWNoZSh0dXApOwogfQogCisvKgorICogVHJ5IHRvIHJlbW92ZSBhbGwg cHJldmlvdXMgdmVyc2lvbnMgcmVsYXRlZCB0byByZXZlcnRlZCB0cmFuc2FjdGlvbnMuCisgKiBS ZXR1cm5zIHRydWUsIHdoZW4gdmFsaWQgdmVyc2lvbiB3YXMgZm91bmQuCisgKi8KK3N0YXRpYyBi b29sCitwdXJnZV9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyKQoreworCVN1YlRyYW5z YWN0aW9uSWQgY3VycmVudF9zdWJpZDsKKwlQcmV2VmFsdWUJICAgKnByZXZfdmFsdWU7CisJYm9v bAkJCWZvdW5kID0gdHJ1ZTsKKworCUFzc2VydChzdmFyLT5pc190cmFuc2FjdCk7CisKKwlpZiAo c3Zhci0+bW9kaWZ5X3N1YmlkID09IEludmFsaWRTdWJUcmFuc2FjdGlvbklkKQorCQlyZXR1cm4g dHJ1ZTsKKworCWN1cnJlbnRfc3ViaWQgPSBHZXRDdXJyZW50U3ViVHJhbnNhY3Rpb25JZCgpOwor CisJaWYgKHN2YXItPm1vZGlmeV9zdWJpZCA9PSBjdXJyZW50X3N1YmlkKQorCQlyZXR1cm4gdHJ1 ZTsKKworCWlmIChzdmFyLT5wdXJnZV9zdWJpZCA9PSBjdXJyZW50X3N1YmlkKQorCQlyZXR1cm4g dHJ1ZTsKKworCWlmIChTdWJUcmFuc2FjdGlvbklzQWN0aXZlKHN2YXItPm1vZGlmeV9zdWJpZCkp CisJeworCQlzdmFyLT5wdXJnZV9zdWJpZCA9IGN1cnJlbnRfc3ViaWQ7CisJCXJldHVybiB0cnVl OworCX0KKworCXByZXZfdmFsdWUgPSBzdmFyLT5wcmV2X3ZhbHVlOworCisJd2hpbGUgKHByZXZf dmFsdWUpCisJeworCQlQcmV2VmFsdWUgKmN1cnJlbnRfcHYgPSBwcmV2X3ZhbHVlOworCisJCWlm IChjdXJyZW50X3B2LT5tb2RpZnlfc3ViaWQgPT0gSW52YWxpZFN1YlRyYW5zYWN0aW9uSWQgfHwK KwkJCVN1YlRyYW5zYWN0aW9uSXNBY3RpdmUoY3VycmVudF9wdi0+bW9kaWZ5X3N1YmlkKSkKKwkJ eworCQkJc3Zhci0+dmFsdWUgPSBjdXJyZW50X3B2LT52YWx1ZTsKKwkJCXN2YXItPmlzbnVsbCA9 IGN1cnJlbnRfcHYtPmlzbnVsbDsKKwkJCXN2YXItPm1vZGlmeV9zdWJpZCA9IGN1cnJlbnRfcHYt Pm1vZGlmeV9zdWJpZDsKKworCQkJcHJldl92YWx1ZSA9IGN1cnJlbnRfcHYtPnByZXZfdmFsdWU7 CisJCQlwZnJlZShjdXJyZW50X3B2KTsKKworCQkJZm91bmQgPSB0cnVlOworCQkJYnJlYWs7CisJ CX0KKworCQlpZiAoIXN2YXItPnR5cGJ5dmFsICYmICFjdXJyZW50X3B2LT5pc251bGwpCisJCQlw ZnJlZShEYXR1bUdldFBvaW50ZXIoY3VycmVudF9wdi0+dmFsdWUpKTsKKworCQlwcmV2X3ZhbHVl ID0gY3VycmVudF9wdi0+cHJldl92YWx1ZTsKKwkJcGZyZWUoY3VycmVudF9wdik7CisJfQorCisJ c3Zhci0+cHJldl92YWx1ZSA9IHByZXZfdmFsdWU7CisJc3Zhci0+cHVyZ2Vfc3ViaWQgPSBjdXJy ZW50X3N1YmlkOworCisJcmV0dXJuIGZvdW5kOworfQorCiAvKgogICogQXNzaWduIGEgbmV3IHZh bHVlIHRvIHRoZSBzZXNzaW9uIHZhcmlhYmxlLiAgSXQgaXMgY29waWVkIHRvCiAgKiBTVmFyaWFi bGVNZW1vcnlDb250ZXh0IGlmIG5lY2Vzc2FyeS4KQEAgLTY5Niw2ICs5MTUsMTAgQEAgc2V0X3Nl c3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIERhdHVtIHZhbHVlLCBib29sIGlzbnVsbCkK IAlEYXR1bQkJbmV3dmFsOwogCVNWYXJpYWJsZURhdGEgbG9jc3ZhciwKIAkJCSAgICpfc3ZhcjsK KwlTdWJUcmFuc2FjdGlvbklkIGN1cnJlbnRfc3ViaWQgPSBHZXRDdXJyZW50U3ViVHJhbnNhY3Rp b25JZCgpOworCVN1YlRyYW5zYWN0aW9uSWQgcHJldl9wdXJnZV9zdWJpZCA9IEludmFsaWRTdWJU cmFuc2FjdGlvbklkOworCWJvb2wJCXNhdmVfcHJldl92YWx1ZTsKKwlQcmV2VmFsdWUgICpwcmV2 X3ZhbHVlOwogCiAJQXNzZXJ0KHN2YXIpOwogCUFzc2VydCghaXNudWxsIHx8IHZhbHVlID09IChE YXR1bSkgMCk7CkBAIC03MzEsNiArOTU0LDIxIEBAIHNldF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJp YWJsZSBzdmFyLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc251bGwpCiAJZWxzZQogCQlfc3ZhciA9IHN2 YXI7CiAKKwlpZiAoX3N2YXItPmlzX3RyYW5zYWN0ICYmIF9zdmFyLT5jcmVhdGVfbHNuID09IHN2 YXItPmNyZWF0ZV9sc24pCisJeworCQlBc3NlcnQoc3Zhci0+dHlwaWQgPT0gX3N2YXItPnR5cGlk KTsKKwkJQXNzZXJ0KHN2YXItPnR5cGJ5dmFsID09IF9zdmFyLT50eXBieXZhbCk7CisJCUFzc2Vy dChzdmFyLT50eXBsZW4gPT0gX3N2YXItPnR5cGxlbik7CisKKwkJc2F2ZV9wcmV2X3ZhbHVlID0g c3Zhci0+bW9kaWZ5X3N1YmlkICE9IGN1cnJlbnRfc3ViaWQ7CisJCXByZXZfdmFsdWUgPSBzdmFy LT5wcmV2X3ZhbHVlOworCX0KKwllbHNlCisJeworCQlzYXZlX3ByZXZfdmFsdWUgPSBmYWxzZTsK KwkJcHJldl92YWx1ZSA9IE5VTEw7CisJfQorCiAJaWYgKCFpc251bGwpCiAJewogCQlNZW1vcnlD b250ZXh0IG9sZGN4dCA9IE1lbW9yeUNvbnRleHRTd2l0Y2hUbyhTVmFyaWFibGVNZW1vcnlDb250 ZXh0KTsKQEAgLTc0Miw3ICs5ODAsMzcgQEAgc2V0X3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxl IHN2YXIsIERhdHVtIHZhbHVlLCBib29sIGlzbnVsbCkKIAllbHNlCiAJCW5ld3ZhbCA9IHZhbHVl OwogCi0JZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIpOworCWlmIChzYXZlX3ByZXZf dmFsdWUpCisJeworCQl2b2xhdGlsZSBQcmV2VmFsdWUgKm5ld19wcmV2X3ZhbHVlOworCisJCVBH X1RSWSgpOworCQl7CisJCQluZXdfcHJldl92YWx1ZSA9IE1lbW9yeUNvbnRleHRBbGxvYyhTVmFy aWFibGVNZW1vcnlDb250ZXh0LAorCQkJCQkJCQkJCQkJc2l6ZW9mKFByZXZWYWx1ZSkpOworCQl9 CisJCVBHX0NBVENIKCk7CisJCXsKKwkJCS8qIHJlbGVhc2UgbWVtIGZyb20gcGVyc2lzdGVudCBj b250ZW50ICovCisJCQlpZiAobmV3dmFsICE9IHZhbHVlKQorCQkJCXBmcmVlKERhdHVtR2V0UG9p bnRlcihuZXd2YWwpKTsKKwkJCVBHX1JFX1RIUk9XKCk7CisJCX0KKwkJUEdfRU5EX1RSWSgpOwor CisJCW5ld19wcmV2X3ZhbHVlLT52YWx1ZSA9IHN2YXItPnZhbHVlOworCQluZXdfcHJldl92YWx1 ZS0+aXNudWxsID0gc3Zhci0+aXNudWxsOworCQluZXdfcHJldl92YWx1ZS0+bW9kaWZ5X3N1Ymlk ID0gc3Zhci0+bW9kaWZ5X3N1YmlkOworCQluZXdfcHJldl92YWx1ZS0+cHJldl92YWx1ZSA9IHBy ZXZfdmFsdWU7CisKKwkJcHJldl92YWx1ZSA9IChQcmV2VmFsdWUgKikgbmV3X3ByZXZfdmFsdWU7 CisJCXByZXZfcHVyZ2Vfc3ViaWQgPSBzdmFyLT5wdXJnZV9zdWJpZDsKKworCQloYXNfbW9kaWZp ZWRfdHJhbnNhY3Rpb25hbF92YXJpYWJsZXMgPSB0cnVlOworCisJfQorCWVsc2UKKwkJZnJlZV9z ZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIsIHByZXZfdmFsdWUgPT0gTlVMTCk7CiAKIAllbG9n KERFQlVHMSwgInNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIChvaWQ6JXUpIGhhcyBuZXcgdmFs dWUiLAogCQkgZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFj ZShzdmFyLT52YXJpZCkpLApAQCAtNzU1LDYgKzEwMjMsOSBAQCBzZXRfc2Vzc2lvbl92YXJpYWJs ZShTVmFyaWFibGUgc3ZhciwgRGF0dW0gdmFsdWUsIGJvb2wgaXNudWxsKQogCiAJc3Zhci0+dmFs dWUgPSBuZXd2YWw7CiAJc3Zhci0+aXNudWxsID0gaXNudWxsOworCXN2YXItPm1vZGlmeV9zdWJp ZCA9IGN1cnJlbnRfc3ViaWQ7CisJc3Zhci0+cHVyZ2Vfc3ViaWQgPSBwcmV2X3B1cmdlX3N1Ymlk OworCXN2YXItPnByZXZfdmFsdWUgPSBwcmV2X3ZhbHVlOwogCiAJLyogZG9uJ3QgYWxsb3cgbW9y ZSBjaGFuZ2VzIG9mIHZhbHVlIHdoZW4gdmFyaWFibGUgaXMgSU1NVVRBQkxFICovCiAJaWYgKHN2 YXItPmlzX2ltbXV0YWJsZSkKQEAgLTg1Niw2ICsxMTI3LDggQEAgZ2V0X3Nlc3Npb25fdmFyaWFi bGUoT2lkIHZhcmlkKQogCWVsc2UKIAkJc3Zhci0+aXNfdmFsaWQgPSBmYWxzZTsKIAorcmVpbml0 OgorCiAJLyoKIAkgKiBGb3JjZSBzZXR1cCBmb3Igbm90IHlldCBpbml0aWFsaXplZCB2YXJpYWJs ZXMgb3IgdmFyaWFibGVzIHRoYXQgY2Fubm90CiAJICogYmUgdmFsaWRhdGVkLgpAQCAtODg4LDYg KzExNjEsMjggQEAgZ2V0X3Nlc3Npb25fdmFyaWFibGUoT2lkIHZhcmlkKQogCQkJIHZhcmlkKTsK IAl9CiAKKwkvKgorCSAqIFRyYW5zYWN0aW9uYWwgdmFyaWFibGVzIHNob3VsZCBiZSBwdXJnZWQg YmVmb3JlIChyZW1vdmUKKwkgKiB2ZXJzaW9ucyBjcmVhdGVkIGJ5IHBvc3NpYmx5IHJldmVydGVk IHN1YnRyYW5zYWN0aW9ucykuCisJICovCisJaWYgKHN2YXItPmlzX3RyYW5zYWN0ICYmCisJCXN2 YXItPm1vZGlmeV9zdWJpZCAhPSBHZXRDdXJyZW50U3ViVHJhbnNhY3Rpb25JZCgpICYmCisJCXN2 YXItPm1vZGlmeV9zdWJpZCAhPSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZCkKKwl7CisJCWlmICgh cHVyZ2Vfc2Vzc2lvbl92YXJpYWJsZShzdmFyKSkKKwkJeworCQkJLyogZm9yY2UgcmVpbml0ICov CisJCQlzdmFyLT5pc192YWxpZCA9IGZhbHNlOworCisJCQkvKgorCQkJICogSW4gbmV4dCBpdGVy YXRpb24gbW9kaWZ5X3N1YmlkIHNob3VsZCBiZQorCQkJICogSW52YWxpZFN1YlRyYW5zYWN0aW9u SWQgb3IgY3VycmVudCBzdWJpZCwKKwkJCSAqIHNvIHRoZXJlIGlzIG5vdCByaXNrIG9mIGluZmlu aXR5IGN5Y2xlLgorCQkJICovCisJCQlnb3RvIHJlaW5pdDsKKwkJfQorCX0KKwogCS8qIGVuc3Vy ZSB0aGUgcmV0dXJuZWQgZGF0YSBpcyBzdGlsbCBvZiB0aGUgY29ycmVjdCBkb21haW4gKi8KIAlp ZiAoc3Zhci0+aXNfZG9tYWluKQogCXsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IGJmN2NhM2Y1MWMuLmFmYjE1 MWIzYWYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtNjY3LDcgKzY2Nyw3IEBAIHN0YXRpYyBOb2RlICptYWtl UmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpx dWVyeSk7CiAJCQkJanNvbl9vYmplY3RfY29uc3RydWN0b3JfbnVsbF9jbGF1c2Vfb3B0CiAJCQkJ anNvbl9hcnJheV9jb25zdHJ1Y3Rvcl9udWxsX2NsYXVzZV9vcHQKIAotJXR5cGUgPGJvb2xlYW4+ CQlPcHROb3ROdWxsIE9wdEltbXV0YWJsZQorJXR5cGUgPGJvb2xlYW4+CQlPcHROb3ROdWxsIE9w dEltbXV0YWJsZSBPcHRUcmFuc2FjdGlvbmFsCiAKIC8qCiAgKiBOb24ta2V5d29yZCB0b2tlbiB0 eXBlcy4gIFRoZXNlIGFyZSBoYXJkLXdpcmVkIGludG8gdGhlICJmbGV4IiBsZXhlci4KQEAgLTc3 Miw3ICs3NzIsNyBAQCBzdGF0aWMgTm9kZSAqbWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAq cmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9kZSAqcXVlcnkpOwogCVNVQlNDUklQVElPTiBTVUJT VFJJTkcgU1VQUE9SVCBTWU1NRVRSSUMgU1lTSUQgU1lTVEVNX1AgU1lTVEVNX1VTRVIKIAogCVRB QkxFIFRBQkxFUyBUQUJMRVNBTVBMRSBUQUJMRVNQQUNFIFRBUkdFVCBURU1QIFRFTVBMQVRFIFRF TVBPUkFSWSBURVhUX1AgVEhFTgotCVRJRVMgVElNRSBUSU1FU1RBTVAgVE8gVFJBSUxJTkcgVFJB TlNBQ1RJT04gVFJBTlNGT1JNCisJVElFUyBUSU1FIFRJTUVTVEFNUCBUTyBUUkFJTElORyBUUkFO U0FDVElPTiBUUkFOU0FDVElPTkFMIFRSQU5TRk9STQogCVRSRUFUIFRSSUdHRVIgVFJJTSBUUlVF X1AKIAlUUlVOQ0FURSBUUlVTVEVEIFRZUEVfUCBUWVBFU19QCiAKQEAgLTUyMzksMzEgKzUyMzks MzMgQEAgY3JlYXRlX2V4dGVuc2lvbl9vcHRfaXRlbToKICAqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8K IAogQ3JlYXRlU2Vzc2lvblZhclN0bXQ6Ci0JCQlDUkVBVEUgT3B0VGVtcCBPcHRJbW11dGFibGUg VkFSSUFCTEUgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVz ZSBPcHROb3ROdWxsIE9wdFNlc3Npb25WYXJEZWZFeHByIFhhY3RFbmRBY3Rpb25PcHRpb24KKwkJ CUNSRUFURSBPcHRUZW1wIE9wdFRyYW5zYWN0aW9uYWwgT3B0SW1tdXRhYmxlIFZBUklBQkxFIHF1 YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UgT3B0Tm90TnVs bCBPcHRTZXNzaW9uVmFyRGVmRXhwciBYYWN0RW5kQWN0aW9uT3B0aW9uCiAJCQkJewogCQkJCQlD cmVhdGVTZXNzaW9uVmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNlc3Npb25WYXJTdG10KTsK LQkJCQkJJDUtPnJlbHBlcnNpc3RlbmNlID0gJDI7Ci0JCQkJCW4tPmlzX2ltbXV0YWJsZSA9ICQz OwotCQkJCQluLT52YXJpYWJsZSA9ICQ1OwotCQkJCQluLT50eXBlTmFtZSA9ICQ3OwotCQkJCQlu LT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDg7Ci0JCQkJCW4tPm5vdF9udWxsID0g JDk7Ci0JCQkJCW4tPmRlZmV4cHIgPSAkMTA7Ci0JCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkMTE7 CisJCQkJCSQ2LT5yZWxwZXJzaXN0ZW5jZSA9ICQyOworCQkJCQluLT5pc19pbW11dGFibGUgPSAk NDsKKwkJCQkJbi0+aXNfdHJhbnNhY3QgPSAkMzsKKwkJCQkJbi0+dmFyaWFibGUgPSAkNjsKKwkJ CQkJbi0+dHlwZU5hbWUgPSAkODsKKwkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNl ICopICQ5OworCQkJCQluLT5ub3RfbnVsbCA9ICQxMDsKKwkJCQkJbi0+ZGVmZXhwciA9ICQxMTsK KwkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQxMjsKIAkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IGZh bHNlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQotCQkJfCBDUkVBVEUgT3B0VGVtcCBP cHRJbW11dGFibGUgVkFSSUFCTEUgSUZfUCBOT1QgRVhJU1RTIHF1YWxpZmllZF9uYW1lIG9wdF9h cyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UgT3B0Tm90TnVsbCBPcHRTZXNzaW9uVmFyRGVm RXhwciBYYWN0RW5kQWN0aW9uT3B0aW9uCisJCQl8IENSRUFURSBPcHRUZW1wIE9wdFRyYW5zYWN0 aW9uYWwgT3B0SW1tdXRhYmxlIFZBUklBQkxFIElGX1AgTk9UIEVYSVNUUyBxdWFsaWZpZWRfbmFt ZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9wdE5vdE51bGwgT3B0U2Vzc2lv blZhckRlZkV4cHIgWGFjdEVuZEFjdGlvbk9wdGlvbgogCQkJCXsKIAkJCQkJQ3JlYXRlU2Vzc2lv blZhclN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVTZXNzaW9uVmFyU3RtdCk7Ci0JCQkJCSQ4LT5y ZWxwZXJzaXN0ZW5jZSA9ICQyOwotCQkJCQluLT5pc19pbW11dGFibGUgPSAkMzsKLQkJCQkJbi0+ dmFyaWFibGUgPSAkODsKLQkJCQkJbi0+dHlwZU5hbWUgPSAkMTA7Ci0JCQkJCW4tPmNvbGxDbGF1 c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkMTE7Ci0JCQkJCW4tPm5vdF9udWxsID0gJDEyOwotCQkJ CQluLT5kZWZleHByID0gJDEzOwotCQkJCQluLT5YYWN0RW5kQWN0aW9uID0gJDE0OworCQkJCQkk OS0+cmVscGVyc2lzdGVuY2UgPSAkMjsKKwkJCQkJbi0+aXNfaW1tdXRhYmxlID0gJDQ7CisJCQkJ CW4tPmlzX3RyYW5zYWN0ID0gJDM7CisJCQkJCW4tPnZhcmlhYmxlID0gJDk7CisJCQkJCW4tPnR5 cGVOYW1lID0gJDExOworCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDEy OworCQkJCQluLT5ub3RfbnVsbCA9ICQxMzsKKwkJCQkJbi0+ZGVmZXhwciA9ICQxNDsKKwkJCQkJ bi0+WGFjdEVuZEFjdGlvbiA9ICQxNTsKIAkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IHRydWU7CiAJ CQkJCSQkID0gKE5vZGUgKikgbjsKIAkJCQl9CkBAIC01MjkxLDYgKzUyOTMsMTIgQEAgT3B0SW1t dXRhYmxlOiBJTU1VVEFCTEUJCQkJCQkJCXsgJCQgPSB0cnVlOyB9CiAJCQl8IC8qIEVNUFRZICov CQkJCQkJCXsgJCQgPSBmYWxzZTsgfQogCQk7CiAKK09wdFRyYW5zYWN0aW9uYWw6CisJCQlUUkFO U0FDVElPTgkJCQkJCQkJeyAkJCA9IHRydWU7IH0KKwkJCXwgVFJBTlNBQ1RJT05BTAkJCQkJCQl7 ICQkID0gdHJ1ZTsgfQorCQkJfCAvKiBFTVBUWSAqLwkJCQkJCQl7ICQkID0gZmFsc2U7IH0KKwkJ OworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCiAgKiBBTFRFUiBFWFRFTlNJT04gbmFtZSBV UERBVEUgWyBUTyB2ZXJzaW9uIF0KQEAgLTE4MDk4LDYgKzE4MTA2LDcgQEAgdW5yZXNlcnZlZF9r ZXl3b3JkOgogCQkJfCBURVhUX1AKIAkJCXwgVElFUwogCQkJfCBUUkFOU0FDVElPTgorCQkJfCBU UkFOU0FDVElPTkFMCiAJCQl8IFRSQU5TRk9STQogCQkJfCBUUklHR0VSCiAJCQl8IFRSVU5DQVRF CkBAIC0xODc0Niw2ICsxODc1NSw3IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoKIAkJCXwgVElNRVNU QU1QCiAJCQl8IFRSQUlMSU5HCiAJCQl8IFRSQU5TQUNUSU9OCisJCQl8IFRSQU5TQUNUSU9OQUwK IAkJCXwgVFJBTlNGT1JNCiAJCQl8IFRSRUFUCiAJCQl8IFRSSUdHRVIKZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4 IGI0YzYxZGExODguLjQ2ZmIyOGMxYzggMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19k dW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtNTQ0Miw2ICs1NDQyLDcg QEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJaW50CQkJaV92YXJjb2xsYXRpb247CiAJ aW50CQkJaV92YXJub3RudWxsOwogCWludAkJCWlfdmFyaXNpbW11dGFibGU7CisJaW50CQkJaV92 YXJpc3RyYW5zYWN0OwogCWludAkJCWlfdmFyYWNsOwogCWludAkJCWlfYWNsZGVmYXVsdDsKIAlp bnQJCQlpLApAQCAtNTQ2Niw2ICs1NDY3LDcgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQp CiAJCQkJCSAgIiAgICAgICBFTkQgQVMgdmFyY29sbGF0aW9uLFxuIgogCQkJCQkgICIgICAgICAg di52YXJub3RudWxsLFxuIgogCQkJCQkgICIgICAgICAgdi52YXJpc2ltbXV0YWJsZSxcbiIKKwkJ CQkJICAiICAgICAgIHYudmFyaXN0cmFuc2FjdCxcbiIKIAkJCQkJICAiICAgICAgIHBnX2NhdGFs b2cucGdfZ2V0X2V4cHIodi52YXJkZWZleHByLDApIGFzIHZhcmRlZmV4cHIsXG4iCiAJCQkJCSAg IiAgICAgICB2LnZhcm93bmVyLCB2LnZhcmFjbCxcbiIKIAkJCQkJICAiICAgICAgIGFjbGRlZmF1 bHQoJ1YnLCB2LnZhcm93bmVyKSBBUyBhY2xkZWZhdWx0XG4iCkBAIC01NDg4LDYgKzU0OTAsNyBA QCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91dCkKIAlpX3ZhcmNvbGxhdGlvbiA9IFBRZm51bWJl cihyZXMsICJ2YXJjb2xsYXRpb24iKTsKIAlpX3Zhcm5vdG51bGwgPSBQUWZudW1iZXIocmVzLCAi dmFybm90bnVsbCIpOwogCWlfdmFyaXNpbW11dGFibGUgPSBQUWZudW1iZXIocmVzLCAidmFyaXNp bW11dGFibGUiKTsKKwlpX3ZhcmlzdHJhbnNhY3QgPSBQUWZudW1iZXIocmVzLCAidmFyaXN0cmFu c2FjdCIpOwogCiAJaV92YXJvd25lciA9IFBRZm51bWJlcihyZXMsICJ2YXJvd25lciIpOwogCWlf dmFyYWNsID0gUFFmbnVtYmVyKHJlcywgInZhcmFjbCIpOwpAQCAtNTUxNiw2ICs1NTE5LDcgQEAg Z2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJCXZhcmluZm9baV0udmFyY29sbGF0aW9uID0g YXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcmNvbGxhdGlvbikpOwogCQl2YXJpbmZvW2ld LnZhcm5vdG51bGwgPSAqKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3Zhcm5vdG51bGwpKSA9PSAndCc7 CiAJCXZhcmluZm9baV0udmFyaXNpbW11dGFibGUgPSAqKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3Zh cmlzaW1tdXRhYmxlKSkgPT0gJ3QnOworCQl2YXJpbmZvW2ldLnZhcmlzdHJhbnNhY3QgPSAqKFBR Z2V0dmFsdWUocmVzLCBpLCBpX3ZhcmlzdHJhbnNhY3QpKSA9PSAndCc7CiAKIAkJdmFyaW5mb1tp XS5kYWNsLmFjbCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJhY2wpKTsKIAkJ dmFyaW5mb1tpXS5kYWNsLmFjbGRlZmF1bHQgPSBwZ19zdHJkdXAoUFFnZXR2YWx1ZShyZXMsIGks IGlfYWNsZGVmYXVsdCkpOwpAQCAtNTU2Myw2ICs1NTY3LDcgQEAgZHVtcFZhcmlhYmxlKEFyY2hp dmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykKIAljb25zdCBjaGFyICp2YXJk ZWZleHByOwogCWNvbnN0IGNoYXIgKnZhcnhhY3RlbmRhY3Rpb247CiAJY29uc3QgY2hhciAqdmFy aXNpbW11dGFibGU7CisJY29uc3QgY2hhciAqdmFyaXN0cmFuc2FjdDsKIAlPaWQJCQl2YXJjb2xs YXRpb247CiAJYm9vbAkJdmFybm90bnVsbDsKIApAQCAtNTU4MCwxMiArNTU4NSwxMyBAQCBkdW1w VmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKQogCXZh cmNvbGxhdGlvbiA9IHZhcmluZm8tPnZhcmNvbGxhdGlvbjsKIAl2YXJub3RudWxsID0gdmFyaW5m by0+dmFybm90bnVsbDsKIAl2YXJpc2ltbXV0YWJsZSA9IHZhcmluZm8tPnZhcmlzaW1tdXRhYmxl ID8gIklNTVVUQUJMRSAiIDogIiI7CisJdmFyaXN0cmFuc2FjdCA9IHZhcmluZm8tPnZhcmlzdHJh bnNhY3QgPyAiVFJBTlNBQ1RJT05BTCAiIDogIiI7CiAKIAlhcHBlbmRQUUV4cEJ1ZmZlcihkZWxx LCAiRFJPUCBWQVJJQUJMRSAlcztcbiIsCiAJCQkJCSAgcXVhbHZhcm5hbWUpOwogCi0JYXBwZW5k UFFFeHBCdWZmZXIocXVlcnksICJDUkVBVEUgJXNWQVJJQUJMRSAlcyBBUyAlcyIsCi0JCQkJCSAg dmFyaXNpbW11dGFibGUsIHF1YWx2YXJuYW1lLCB2YXJ0eXBuYW1lKTsKKwlhcHBlbmRQUUV4cEJ1 ZmZlcihxdWVyeSwgIkNSRUFURSAlcyVzVkFSSUFCTEUgJXMgQVMgJXMiLAorCQkJCQkgIHZhcmlz dHJhbnNhY3QsIHZhcmlzaW1tdXRhYmxlLCBxdWFsdmFybmFtZSwgdmFydHlwbmFtZSk7CiAKIAlp ZiAoT2lkSXNWYWxpZCh2YXJjb2xsYXRpb24pKQogCXsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IDA1NjI0OTdm MzQuLmYzZTk4MjNjOGMgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysr IGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtNzI3LDYgKzcyNyw3IEBAIHR5cGVkZWYg c3RydWN0IF9WYXJpYWJsZUluZm8KIAljb25zdCBjaGFyICpyb2xuYW1lOwkJLyogbmFtZSBvZiBv d25lciwgb3IgZW1wdHkgc3RyaW5nICovCiAJYm9vbAkJdmFybm90bnVsbDsKIAlib29sCQl2YXJp c2ltbXV0YWJsZTsKKwlib29sCQl2YXJpc3RyYW5zYWN0OwogfSBWYXJpYWJsZUluZm87CiAKIC8q CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4v cGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCmluZGV4IDFiYmE2OGU2YWUuLjAzNDQwYTQyMzAgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCisrKyBiL3NyYy9iaW4v cGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCkBAIC00MDc3LDYgKzQwNzcsNDIgQEAgbXkgJXRlc3Rz ID0gKAogCQl9LAogCX0sCiAKKwknQ1JFQVRFIFRSQU5TQUNUSU9OQUwgVkFSSUFCTEUgdGVzdF92 YXJpYWJsZScgPT4geworCQlhbGxfcnVucyAgICAgPT4gMSwKKwkJY2F0Y2hfYWxsICAgID0+ICdD UkVBVEUgLi4uIGNvbW1hbmRzJywKKwkJY3JlYXRlX29yZGVyID0+IDYxLAorCQljcmVhdGVfc3Fs ICAgPT4gJ0NSRUFURSBUUkFOU0FDVElPTkFMIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTgg QVMgaW50ZWdlcicsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBUUkFOU0FDVElPTkFM IFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTggQVMgaW50ZWdlcjtcRS94bSwKKwkJbGlrZSA9 PiB7CisJCQklZnVsbF9ydW5zLAorCQkJJWR1bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJCXNlY3Rp b25fcHJlX2RhdGEgPT4gMSwKKwkJfSwKKwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVfZHVtcF90 ZXN0X3NjaGVtYSA9PiAxLAorCQkJb25seV9kdW1wX21lYXN1cmVtZW50ICAgID0+IDEsCisJCX0s CisJfSwKKworCSdDUkVBVEUgVFJBTlNBQ1RJT05BTCBJTU1VVEFCTEUgVkFSSUFCTEUgdGVzdF92 YXJpYWJsZScgPT4geworCQlhbGxfcnVucyAgICAgPT4gMSwKKwkJY2F0Y2hfYWxsICAgID0+ICdD UkVBVEUgLi4uIGNvbW1hbmRzJywKKwkJY3JlYXRlX29yZGVyID0+IDYxLAorCQljcmVhdGVfc3Fs ICAgPT4gJ0NSRUFURSBUUkFOU0FDVElPTkFMIElNTVVUQUJMRSBWQVJJQUJMRSBkdW1wX3Rlc3Qu dmFyaWFibGU5IEFTIGludGVnZXInLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFDUkVBVEUgVFJB TlNBQ1RJT05BTCBJTU1VVEFCTEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlOSBBUyBpbnRl Z2VyO1xFL3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJCQklZHVtcF90ZXN0X3Nj aGVtYV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9LAorCQl1bmxpa2UgPT4g eworCQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlvbmx5X2R1bXBfbWVhc3Vy ZW1lbnQgICAgPT4gMSwKKwkJfSwKKwl9LAorCiAJJ0NSRUFURSBWSUVXIHRlc3RfdmlldycgPT4g ewogCQljcmVhdGVfb3JkZXIgPT4gNjEsCiAJCWNyZWF0ZV9zcWwgPT4gJ0NSRUFURSBWSUVXIGR1 bXBfdGVzdC50ZXN0X3ZpZXcKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jIGIv c3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKaW5kZXggNzRlMWJjNTU3OC4uYjY4MWI1MGNlYyAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmMKQEAgLTUyNTAsNyArNTI1MCw3IEBAIGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0 dGVybiwgYm9vbCB2ZXJib3NlKQogCVBRRXhwQnVmZmVyRGF0YSBidWY7CiAJUEdyZXN1bHQgICAq cmVzOwogCXByaW50UXVlcnlPcHQgbXlvcHQgPSBwc2V0LnBvcHQ7Ci0Jc3RhdGljIGNvbnN0IGJv b2wgdHJhbnNsYXRlX2NvbHVtbnNbXSA9IHtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFs c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OworCXN0YXRpYyBj b25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFs c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz ZX07CiAKIAlpZiAocHNldC5zdmVyc2lvbiA8IDE4MDAwMCkKIAl7CkBAIC01MjczLDYgKzUyNzMs NyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAkJ CQkJICAiICBwZ19jYXRhbG9nLnBnX2dldF91c2VyYnlpZCh2LnZhcm93bmVyKSBhcyBcIiVzXCIs XG4iCiAJCQkJCSAgIiAgTk9UIHYudmFybm90bnVsbCBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAg Tk9UIHYudmFyaXNpbW11dGFibGUgYXMgXCIlc1wiLFxuIgorCQkJCQkgICIgIHYudmFyaXN0cmFu c2FjdCBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfZXhwcih2LnZh cmRlZmV4cHIsIDApIGFzIFwiJXNcIixcbiIKIAkJCQkJICAiICBDQVNFIHYudmFyeGFjdGVuZGFj dGlvblxuIgogCQkJCQkgICIgICAgV0hFTiAnZCcgVEhFTiAnT04gQ09NTUlUIERST1AnXG4iCkBA IC01Mjg1LDYgKzUyODYsNyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJv b2wgdmVyYm9zZSkKIAkJCQkJICBnZXR0ZXh0X25vb3AoIk93bmVyIiksCiAJCQkJCSAgZ2V0dGV4 dF9ub29wKCJOdWxsYWJsZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiTXV0YWJsZSIpLAorCQkJ CQkgIGdldHRleHRfbm9vcCgiVHJhbnNhY3Rpb25hbCIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgi RGVmYXVsdCIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9u IikpOwogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMgYi9zcmMv YmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXggZDY4MzhhZTNjMS4uZDM0N2IyZDI3ZSAx MDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4v cHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtMTMwNSw2ICsxMzA1LDggQEAgc3RhdGljIGNvbnN0 IHBnc3FsX3RoaW5nX3Qgd29yZHNfYWZ0ZXJfY3JlYXRlW10gPSB7CiAJCQkJCQkJCQkJCQkJCQkJ CQkJICogVEFCTEUgLi4uICovCiAJeyJURVhUIFNFQVJDSCIsIE5VTEwsIE5VTEwsIE5VTEx9LAog CXsiVFJBTlNGT1JNIiwgTlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgVEhJTkdfTk9fQUxURVJ9LAor CXsiVFJBTlNBQ1RJT05BTCIsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIFRISU5HX05PX0RST1Ag fCBUSElOR19OT19BTFRFUn0sIC8qIGZvciBDUkVBVEUgVFJBTlNBQ1RJT05BTAorCQkJCQkJCQkJ CQkJCQkJCQkJCQkqIFZBUklBQkxFIC4uLiAqLwogCXsiVFJJR0dFUiIsICJTRUxFQ1QgdGduYW1l IEZST00gcGdfY2F0YWxvZy5wZ190cmlnZ2VyIFdIRVJFIHRnbmFtZSBMSUtFICclcycgQU5EIE5P VCB0Z2lzaW50ZXJuYWwifSwKIAl7IlRZUEUiLCBOVUxMLCBOVUxMLCAmUXVlcnlfZm9yX2xpc3Rf b2ZfZGF0YXR5cGVzfSwKIAl7IlVOSVFVRSIsIE5VTEwsIE5VTEwsIE5VTEwsIE5VTEwsIFRISU5H X05PX0RST1AgfCBUSElOR19OT19BTFRFUn0sIC8qIGZvciBDUkVBVEUgVU5JUVVFCkBAIC0zOTYy LDggKzM5NjQsMTEgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJfQog LyogQ1JFQVRFIFZBUklBQkxFIC0tLSBpcyBhbGxvd2VkIGluc2lkZSBDUkVBVEUgU0NIRU1BLCBz byB1c2UgVGFpbE1hdGNoZXMgKi8KIAkvKiBDb21wbGV0ZSBDUkVBVEUgVkFSSUFCTEUgPG5hbWU+ IHdpdGggQVMgKi8KKwllbHNlIGlmIChNYXRjaGVzKCJDUkVBVEUiLCAiVFJBTlNBQ1RJT058VFJB TlNBQ1RJT05BTCIpKQorCQlDT01QTEVURV9XSVRIKCJJTU1VVEFCTEUiLCAiVkFSSUFCTEUiKTsK IAllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpIHx8 CiAJCQkgVGFpbE1hdGNoZXMoIlRFTVB8VEVNUE9SQVJZIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkp IHx8CisJCQkgVGFpbE1hdGNoZXMoIlRSQU5TQUNUSU9OfFRSQU5TQUNUSU9OQUwiLCAiVkFSSUFC TEUiLCBNYXRjaEFueSkgfHwKIAkJCSBUYWlsTWF0Y2hlcygiSU1NVVRBQkxFIiwgIlZBUklBQkxF IiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJBUyIpOwogCWVsc2UgaWYgKFRhaWxNYXRj aGVzKCJWQVJJQUJMRSIsIE1hdGNoQW55LCAiQVMiKSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfdmFyaWFibGUuaCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUu aAppbmRleCBjZjIxZTA0MjZhLi40NTRiYjI5NzA5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJs ZS5oCkBAIC02Miw2ICs2Miw5IEBAIENBVEFMT0cocGdfdmFyaWFibGUsOTIyMixWYXJpYWJsZVJl bGF0aW9uSWQpCiAJLyogZG9uJ3QgYWxsb3cgY2hhbmdlcyAqLwogCWJvb2wJCXZhcmlzaW1tdXRh YmxlIEJLSV9ERUZBVUxUKGYpOwogCisJLyogc3VwcG9ydHMgdHJhbnNhY3Rpb25zICovCisJYm9v bAkJdmFyaXN0cmFuc2FjdCBCS0lfREVGQVVMVChmKTsKKwogCS8qIGFjdGlvbiBvbiB0cmFuc2Fj dGlvbiBlbmQgKi8KIAljaGFyCQl2YXJ4YWN0ZW5kYWN0aW9uIEJLSV9ERUZBVUxUKG4pOwogCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9u b2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggOTkwY2ViYmYwOC4uYjc0NDBhMDYxYiAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVz L3BhcnNlbm9kZXMuaApAQCAtMzQ5MSw2ICszNDkxLDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQ3JlYXRl U2Vzc2lvblZhclN0bXQKIAlib29sCQlpZl9ub3RfZXhpc3RzOwkvKiBkbyBub3RoaW5nIGlmIGl0 IGFscmVhZHkgZXhpc3RzICovCiAJYm9vbAkJbm90X251bGw7CQkvKiBkaXNhbGxvdyBudWxscyAq LwogCWJvb2wJCWlzX2ltbXV0YWJsZTsJLyogZG9uJ3QgYWxsb3cgY2hhbmdlcyAqLworCWJvb2wJ CWlzX3RyYW5zYWN0OwkvKiBzdXBwb3J0cyB0cmFuc2FjdGlvbnMgKi8KIAlOb2RlCSAgICpkZWZl eHByOwkJLyogZGVmYXVsdCBleHByZXNzaW9uICovCiAJY2hhcgkJWGFjdEVuZEFjdGlvbjsJLyog b24gdHJhbnNhY3Rpb24gZW5kIGFjdGlvbiAqLwogfSBDcmVhdGVTZXNzaW9uVmFyU3RtdDsKZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCBiL3NyYy9pbmNsdWRlL3BhcnNl ci9rd2xpc3QuaAppbmRleCA2Zjg0ZmVmZDUyLi40ZjFjMGViNTM2IDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5o CkBAIC00NTUsNiArNDU1LDcgQEAgUEdfS0VZV09SRCgidGltZXN0YW1wIiwgVElNRVNUQU1QLCBD T0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidG8iLCBUTywgUkVTRVJW RURfS0VZV09SRCwgQVNfTEFCRUwpCiBQR19LRVlXT1JEKCJ0cmFpbGluZyIsIFRSQUlMSU5HLCBS RVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidHJhbnNhY3Rpb24iLCBU UkFOU0FDVElPTiwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgi dHJhbnNhY3Rpb25hbCIsIFRSQU5TQUNUSU9OQUwsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9M QUJFTCkKIFBHX0tFWVdPUkQoInRyYW5zZm9ybSIsIFRSQU5TRk9STSwgVU5SRVNFUlZFRF9LRVlX T1JELCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidHJlYXQiLCBUUkVBVCwgQ09MX05BTUVfS0VZ V09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInRyaWdnZXIiLCBUUklHR0VSLCBVTlJFU0VS VkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3BzcWwub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAppbmRl eCBlMTYzNWY2ODZjLi5kYTlmNGE3MDMwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL3BzcWwub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQK QEAgLTU5MzUsMjAgKzU5MzUsMjAgQEAgQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25l cjsKIFNFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CiBDUkVBVEUgVkFSSUFCTEUg dmFyMSBBUyB2YXJjaGFyIENPTExBVEUgIkMiOwogXGRWKyB2YXIxCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg TGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBD b2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwg RGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8IEFjY2VzcyBwcml2aWxlZ2VzIHwg RGVzY3JpcHRpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLQotIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8 IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCB0ICAgICAgICB8IHQgICAgICAgfCAgICAgICAgIHwg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8ICAgICAg IFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IE51bGxh YmxlIHwgTXV0YWJsZSB8IFRyYW5zYWN0aW9uYWwgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBl bmQgYWN0aW9uIHwgQWNjZXNzIHByaXZpbGVnZXMgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQor IHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3Nf dmFyaWFibGVfb3duZXIgfCB0ICAgICAgICB8IHQgICAgICAgfCBmICAgICAgICAgICAgIHwgICAg ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgCiAo MSByb3cpCiAKIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIFBVQkxJQzsKIENPTU1F TlQgT04gVkFSSUFCTEUgdmFyMSBJUyAnc29tZSBkZXNjcmlwdGlvbic7CiBcZFYrIHZhcjEKLSAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVt YSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIg ICAgICAgICAgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBl bmQgYWN0aW9uIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAg ICAgIHwgICBEZXNjcmlwdGlvbiAgICAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0t LS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCi0g cHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192 YXJpYWJsZV9vd25lciB8IHQgICAgICAgIHwgdCAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAg ICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFi bGVfb3duZXIrfCBzb21lIGRlc2NyaXB0aW9uCi0gICAgICAgIHwgICAgICB8ICAgICAgICAgICAg ICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgIHwg ICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCA9ci9yZWdyZXNz X3ZhcmlhYmxlX293bmVyICAgICAgICAgICAgICAgICAgICAgICAgfCAKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwg TmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAg ICAgICB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IFRyYW5zYWN0aW9uYWwgfCBEZWZhdWx0IHwgVHJh bnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMg ICAgICAgICAgICAgICAgIHwgICBEZXNjcmlwdGlvbiAgICAKKy0tLS0tLS0tKy0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFy eWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCB0ICAgICAgICB8IHQg ICAgICAgfCBmICAgICAgICAgICAgIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAg ICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IHNv bWUgZGVzY3JpcHRpb24KKyAgICAgICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAg ICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgfCAgICAgICAgIHwgICAg ICAgICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCA9ci9yZWdy ZXNzX3ZhcmlhYmxlX293bmVyICAgICAgICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAog RFJPUCBWQVJJQUJMRSB2YXIxOwpAQCAtNjQxNiw5ICs2NDE2LDkgQEAgTGlzdCBvZiBzY2hlbWFz CiAoMCByb3dzKQogCiBcZFYgIm5vLnN1Y2gudmFyaWFibGUiCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8 IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQg fCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0t LS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxh dGlvbiB8IE93bmVyIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgVHJhbnNhY3Rpb25hbCB8IERlZmF1 bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0t LS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4s IGJ1dCB3aXRoIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCkBAIC02NTkxLDkgKzY1OTEs OSBAQCBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogIm5v LnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5pbnN0YQogXGR5ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1 Y2guZXZlbnQudHJpZ2dlciIKIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0 ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCiBcZFYg Im5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwg VHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgRGVmYXVsdCB8 IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0t LS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0 aW9uIHwgT3duZXIgfCBOdWxsYWJsZSB8IE11dGFibGUgfCBUcmFuc2FjdGlvbmFsIHwgRGVmYXVs dCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2Fpbiwg YnV0IHdpdGggY3VycmVudCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9u cy4KQEAgLTY3MzAsOSArNjczMCw5IEBAIExpc3Qgb2YgdGV4dCBzZWFyY2ggdGVtcGxhdGVzCiAo MCByb3dzKQogCiBcZFYgcmVncmVzc2lvbi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlh YmxlIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZh cmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBOdWxs YWJsZSB8IE11dGFibGUgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAotLS0t LS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2No ZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IE51bGxhYmxlIHwgTXV0YWJs ZSB8IFRyYW5zYWN0aW9uYWwgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAor LS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KICgwIHJvd3MpCiAKIC0tIGFnYWluLCBidXQgd2l0aCBkb3R0ZWQgZGF0YWJhc2UgYW5kIGRv dHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0 ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDU2NWZiNWRhNmUuLjAyN2I1MDAyMjMgMTAw NjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0 CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBA IC0yNTkxLDMgKzI1OTEsMTAzIEBAIFNFTEVDVCB2YXIxOwogTEVUIHZhcjEgPSAzMDsKIEVSUk9S OiAgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIGlzIGRlY2xhcmVkIElNTVVUQUJMRQog RFJPUCBWQVJJQUJMRSB2YXIxOworLS0gdGVzdCB0cmFuc2FjdGlvbmFsIHZhcmlhYmxlcworQ1JF QVRFIFRSQU5TQUNUSU9OIFZBUklBQkxFIHR2IEFTIGludCBERUZBVUxUIDA7CitCRUdJTjsKKyAg TEVUIHR2ID0gMTAwOworICBTRUxFQ1QgdHY7CisgdHYgIAorLS0tLS0KKyAxMDAKKygxIHJvdykK KworUk9MTEJBQ0s7CitTRUxFQ1QgdHY7CisgdHYgCistLS0tCisgIDAKKygxIHJvdykKKworTEVU IHR2ID0gMTAwOworQkVHSU47CisgIExFVCB0diA9IDEwMDA7CitDT01NSVQ7CitTRUxFQ1QgdHY7 CisgIHR2ICAKKy0tLS0tLQorIDEwMDAKKygxIHJvdykKKworQkVHSU47CisgIExFVCB0diA9IDA7 CisgIFNFTEVDVCB0djsKKyB0diAKKy0tLS0KKyAgMAorKDEgcm93KQorCitST0xMQkFDSzsKK1NF TEVDVCB0djsKKyAgdHYgIAorLS0tLS0tCisgMTAwMAorKDEgcm93KQorCistLSB0ZXN0IHN1YnRy YW5zYWN0aW9ucworQkVHSU47CisgIExFVCB0diA9IDE7CitTQVZFUE9JTlQgeDE7CisgIExFVCB0 diA9IDI7CitTQVZFUE9JTlQgeDI7CisgIExFVCB0diA9IDM7CitST0xMQkFDSyBUTyB4MjsKKyAg U0VMRUNUIHR2OworIHR2IAorLS0tLQorICAyCisoMSByb3cpCisKKyAgTEVUIHR2ID0gMTA7CitS T0xMQkFDSyBUTyB4MTsKKyAgU0VMRUNUIHR2OworIHR2IAorLS0tLQorICAxCisoMSByb3cpCisK K1JPTExCQUNLOworU0VMRUNUIHR2OworICB0diAgCistLS0tLS0KKyAxMDAwCisoMSByb3cpCisK K0JFR0lOOworICBMRVQgdHYgPSAxOworU0FWRVBPSU5UIHgxOworICBMRVQgdHYgPSAyOworU0FW RVBPSU5UIHgyOworICBMRVQgdHYgPSAzOworUk9MTEJBQ0sgVE8geDI7CisgIFNFTEVDVCB0djsK KyB0diAKKy0tLS0KKyAgMgorKDEgcm93KQorCisgIExFVCB0diA9IDEwOworUk9MTEJBQ0sgVE8g eDE7CisgIFNFTEVDVCB0djsKKyB0diAKKy0tLS0KKyAgMQorKDEgcm93KQorCitDT01NSVQ7CitT RUxFQ1QgdHY7CisgdHYgCistLS0tCisgIDEKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB0djsK ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCBi L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCA4YTEyMmFl YjFlLi42MTkxMTE3ZTA4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9u X3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJs ZXMuc3FsCkBAIC0xODA4LDMgKzE4MDgsNjEgQEAgU0VMRUNUIHZhcjE7CiBMRVQgdmFyMSA9IDMw OwogCiBEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIHRlc3QgdHJhbnNhY3Rpb25hbCB2YXJpYWJs ZXMKK0NSRUFURSBUUkFOU0FDVElPTiBWQVJJQUJMRSB0diBBUyBpbnQgREVGQVVMVCAwOworCitC RUdJTjsKKyAgTEVUIHR2ID0gMTAwOworICBTRUxFQ1QgdHY7CitST0xMQkFDSzsKKworU0VMRUNU IHR2OworCitMRVQgdHYgPSAxMDA7CitCRUdJTjsKKyAgTEVUIHR2ID0gMTAwMDsKK0NPTU1JVDsK KworU0VMRUNUIHR2OworCitCRUdJTjsKKyAgTEVUIHR2ID0gMDsKKyAgU0VMRUNUIHR2OworUk9M TEJBQ0s7CisKK1NFTEVDVCB0djsKKworLS0gdGVzdCBzdWJ0cmFuc2FjdGlvbnMKKworQkVHSU47 CisgIExFVCB0diA9IDE7CitTQVZFUE9JTlQgeDE7CisgIExFVCB0diA9IDI7CitTQVZFUE9JTlQg eDI7CisgIExFVCB0diA9IDM7CitST0xMQkFDSyBUTyB4MjsKKyAgU0VMRUNUIHR2OworICBMRVQg dHYgPSAxMDsKK1JPTExCQUNLIFRPIHgxOworICBTRUxFQ1QgdHY7CitST0xMQkFDSzsKKworU0VM RUNUIHR2OworCitCRUdJTjsKKyAgTEVUIHR2ID0gMTsKK1NBVkVQT0lOVCB4MTsKKyAgTEVUIHR2 ID0gMjsKK1NBVkVQT0lOVCB4MjsKKyAgTEVUIHR2ID0gMzsKK1JPTExCQUNLIFRPIHgyOworICBT RUxFQ1QgdHY7CisgIExFVCB0diA9IDEwOworUk9MTEJBQ0sgVE8geDE7CisgIFNFTEVDVCB0djsK K0NPTU1JVDsKKworU0VMRUNUIHR2OworCitEUk9QIFZBUklBQkxFIHR2OwotLSAKMi40Ny4xCgo= --0000000000007bfa26062b3fa8d1 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250109-0019-expression-with-session-variables-can-be-inlined.patch" Content-Disposition: attachment; filename="v20250109-0019-expression-with-session-variables-can-be-inlined.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5ox16m33 RnJvbSA3ODU3OTA4MmVkZmY0MjdjMGUzYjAyZDQ3ODdlYTMzYWY4YzEzYjNmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMjA6MzU6MzggKzAxMDAKU3ViamVjdDogW1BBVENIIDE5 LzIyXSBleHByZXNzaW9uIHdpdGggc2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIGlubGluZWQKClRo ZXJlIGlzIG5vdCBhbiByZWFzb24gd2h5IHNlc3Npb24gdmFyaWFibGVzIHNob3VsZCB0byBibG9j ayBpbmxpbmluZy4KKG9mIFNRTCBmdW5jdGlvbnMpLiBJIGNhbiBpbWFnaW5lIHNvbWUgdXNlIGNh c2VzIGxpa2Ugd3JhcHBpbmcsIGFuZAppbmxpbmluZyBzaWduaWZpY2FudGx5IHJlZHVjZXMgYW4g b3ZlcmhlYWQgb2YgU1FMIGZ1bmN0aW9ucy4KLS0tCiBzcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRp bC9jbGF1c2VzLmMgICAgICAgICAgfCAzNyArKysrKysrKysrKysrKy0tLS0tCiAuLi4vcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAgNyArKy0tCiAyIGZpbGVzIGNo YW5nZWQsIDMwIGluc2VydGlvbnMoKyksIDE0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3Ny Yy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYyBiL3NyYy9iYWNrZW5kL29wdGltaXpl ci91dGlsL2NsYXVzZXMuYwppbmRleCA2YTc2NGNjZDhkLi43NmEwNzkxOTljIDEwMDY0NAotLS0g YS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKKysrIGIvc3JjL2JhY2tlbmQv b3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCkBAIC00NzQxLDggKzQ3NDEsNyBAQCBpbmxpbmVfZnVu Y3Rpb24oT2lkIGZ1bmNpZCwgT2lkIHJlc3VsdF90eXBlLCBPaWQgcmVzdWx0X2NvbGxpZCwKIAkJ cXVlcnl0cmVlLT5saW1pdE9mZnNldCB8fAogCQlxdWVyeXRyZWUtPmxpbWl0Q291bnQgfHwKIAkJ cXVlcnl0cmVlLT5zZXRPcGVyYXRpb25zIHx8Ci0JCShsaXN0X2xlbmd0aChxdWVyeXRyZWUtPnRh cmdldExpc3QpICE9IDEpIHx8Ci0JCXF1ZXJ5dHJlZS0+aGFzU2Vzc2lvblZhcmlhYmxlcykKKwkJ KGxpc3RfbGVuZ3RoKHF1ZXJ5dHJlZS0+dGFyZ2V0TGlzdCkgIT0gMSkpCiAJCWdvdG8gZmFpbDsK IAogCS8qIElmIHRoZSBmdW5jdGlvbiByZXN1bHQgaXMgY29tcG9zaXRlLCByZXNvbHZlIGl0ICov CkBAIC00OTQ2LDIxICs0OTQ1LDM5IEBAIHN1YnN0aXR1dGVfYWN0dWFsX3BhcmFtZXRlcnNfbXV0 YXRvcihOb2RlICpub2RlLAogewogCWlmIChub2RlID09IE5VTEwpCiAJCXJldHVybiBOVUxMOwor CisKKwkvKgorCSAqIFNRTCBmdW5jdGlvbnMgY2FuIGNvbnRhaW4gdHdvIGRpZmZlcmVudCBraW5k IG9mIHBhcmFtcy4gVGhlIG5vZGVzIHdpdGgKKwkgKiBwYXJhbWtpbmQgUEFSQU1fRVhURVJOIGFy ZSByZWxhdGVkIHRvIGZ1bmN0aW9uJ3MgYXJndW1lbnRzIChhbmQgc2hvdWxkCisJICogYmUgcmVw bGFjZWQgaW4gdGhpcyBzdGVwKSwgYmVjYXVzZSB0aGlzIGlzIGhvdyB3ZSBhcHBseSB0aGUgZnVu Y3Rpb24ncworCSAqIGFyZ3VtZW50cyBmb3IgYW4gZXhwcmVzc2lvbi4KKwkgKgorCSAqIFRoZSBu b2RlcyB3aXRoIHBhcmFta2luZCBQQVJBTV9WQVJJQUJMRSBhcmUgcmVsYXRlZCB0byB1c2FnZSBv ZiBzZXNzaW9uCisJICogdmFyaWFibGVzLiBUaGUgdmFsdWVzIG9mIHNlc3Npb24gdmFyaWFibGVz IGFyZSBub3QgcGFzc2VkIHRvIGV4cHJlc3Npb24KKwkgKiBieSBleHByZXNzaW9uIGFyZ3VtZW50 cywgc28gaXQgc2hvdWxkIG5vdCBiZSByZXBsYWNlZCBoZXJlIGJ5CisJICogZnVuY3Rpb24ncyBh cmd1bWVudHMuCisJICovCiAJaWYgKElzQShub2RlLCBQYXJhbSkpCiAJewogCQlQYXJhbQkgICAq cGFyYW0gPSAoUGFyYW0gKikgbm9kZTsKIAotCQlpZiAocGFyYW0tPnBhcmFta2luZCAhPSBQQVJB TV9FWFRFUk4pCisJCWlmIChwYXJhbS0+cGFyYW1raW5kICE9IFBBUkFNX0VYVEVSTiAmJgorCQkJ cGFyYW0tPnBhcmFta2luZCAhPSBQQVJBTV9WQVJJQUJMRSkKIAkJCWVsb2coRVJST1IsICJ1bmV4 cGVjdGVkIHBhcmFta2luZDogJWQiLCAoaW50KSBwYXJhbS0+cGFyYW1raW5kKTsKLQkJaWYgKHBh cmFtLT5wYXJhbWlkIDw9IDAgfHwgcGFyYW0tPnBhcmFtaWQgPiBjb250ZXh0LT5uYXJncykKLQkJ CWVsb2coRVJST1IsICJpbnZhbGlkIHBhcmFtaWQ6ICVkIiwgcGFyYW0tPnBhcmFtaWQpOwogCi0J CS8qIENvdW50IHVzYWdlIG9mIHBhcmFtZXRlciAqLwotCQljb250ZXh0LT51c2Vjb3VudHNbcGFy YW0tPnBhcmFtaWQgLSAxXSsrOworCQlpZiAocGFyYW0tPnBhcmFta2luZCA9PSBQQVJBTV9FWFRF Uk4pCisJCXsKKwkJCWlmIChwYXJhbS0+cGFyYW1pZCA8PSAwIHx8IHBhcmFtLT5wYXJhbWlkID4g Y29udGV4dC0+bmFyZ3MpCisJCQkJZWxvZyhFUlJPUiwgImludmFsaWQgcGFyYW1pZDogJWQiLCBw YXJhbS0+cGFyYW1pZCk7CiAKLQkJLyogU2VsZWN0IHRoZSBhcHByb3ByaWF0ZSBhY3R1YWwgYXJn IGFuZCByZXBsYWNlIHRoZSBQYXJhbSB3aXRoIGl0ICovCi0JCS8qIFdlIGRvbid0IG5lZWQgdG8g Y29weSBhdCB0aGlzIHRpbWUgKGl0J2xsIGdldCBkb25lIGxhdGVyKSAqLwotCQlyZXR1cm4gbGlz dF9udGgoY29udGV4dC0+YXJncywgcGFyYW0tPnBhcmFtaWQgLSAxKTsKKwkJCS8qIENvdW50IHVz YWdlIG9mIHBhcmFtZXRlciAqLworCQkJY29udGV4dC0+dXNlY291bnRzW3BhcmFtLT5wYXJhbWlk IC0gMV0rKzsKKworCQkJLyogU2VsZWN0IHRoZSBhcHByb3ByaWF0ZSBhY3R1YWwgYXJnIGFuZCBy ZXBsYWNlIHRoZSBQYXJhbSB3aXRoIGl0ICovCisJCQkvKiBXZSBkb24ndCBuZWVkIHRvIGNvcHkg YXQgdGhpcyB0aW1lIChpdCdsbCBnZXQgZG9uZSBsYXRlcikgKi8KKwkJCXJldHVybiBsaXN0X250 aChjb250ZXh0LT5hcmdzLCBwYXJhbS0+cGFyYW1pZCAtIDEpOworCQl9CiAJfQogCXJldHVybiBl eHByZXNzaW9uX3RyZWVfbXV0YXRvcihub2RlLCBzdWJzdGl0dXRlX2FjdHVhbF9wYXJhbWV0ZXJz X211dGF0b3IsIGNvbnRleHQpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nl c3Npb25fdmFyaWFibGVzLm91dAppbmRleCA3MDg2MzBhZTJhLi43NjM4ZTFhNDc3IDEwMDY0NAot LS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysg Yi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtNDgw LDcgKzQ4MCw2IEBAIFNFTEVDVCB2YXIxOwogRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Ig c2Vzc2lvbiB2YXJpYWJsZSB2YXIxCiBTRUxFQ1Qgc3FsZngoMjApOwogRVJST1I6ICBwZXJtaXNz aW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCi1DT05URVhUOiAgU1FMIGZ1bmN0 aW9uICJzcWxmeCIgc3RhdGVtZW50IDEKIFNFTEVDVCBwbHBnc3FsZngoMjApOwogRVJST1I6ICBw ZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCiBDT05URVhUOiAgUEwv cGdTUUwgZnVuY3Rpb24gcGxwZ3NxbGZ4KGludGVnZXIpIGxpbmUgMSBhdCBSRVRVUk4KQEAgLTU4 NywxMCArNTg2LDEwIEBAIFNFTEVDVCBzcWxmeDEoc3FsZngyKCdIZWxsbycpKTsKIAogLS0gaW5s aW5pbmcgaXMgYmxvY2tlZAogRVhQTEFJTiAoQ09TVFMgT0ZGLCBWRVJCT1NFKSBTRUxFQ1Qgc3Fs ZngxKHNxbGZ4MignSGVsbG8nKSk7Ci0gICAgICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAg ICAgICAgICAgICAgICAgICAgICAKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUVVF UlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCiAgUmVzdWx0Ci0gICBPdXRwdXQ6IHNxbGZ4MShzcWxmeDIoJ0hlbGxvJzo6Y2hhcmFj dGVyIHZhcnlpbmcpKQorICAgT3V0cHV0OiAoKHZhcjEgfHwgJywgJzo6dGV4dCkgfHwgKCh2YXIy IHx8ICcsICc6OnRleHQpIHx8ICdIZWxsbyc6OnRleHQpKQogKDIgcm93cykKIAogRFJPUCBGVU5D VElPTiBzcWxmeDEodmFyY2hhcik7Ci0tIAoyLjQ3LjEKCg== --0000000000007bfa26062b3fa8d1 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250109-0020-this-patch-changes-error-message-column-doesn-t-exis.patch" Content-Disposition: attachment; filename="v20250109-0020-this-patch-changes-error-message-column-doesn-t-exis.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5ox16lv2 RnJvbSA0Yjc1MDc5NWY2M2JjZTIzODBjNGIwNjNjNjg4NTBmZTZmYjEwNjE0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNToxMDozOSArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MjAvMjJdIHRoaXMgcGF0Y2ggY2hhbmdlcyBlcnJvciBtZXNzYWdlICJjb2x1bW4gZG9lc24ndCBl eGlzdCIKIHRvIG1lc3NhZ2UgImNvbHVtbiBvciB2YXJpYWJsZSBkb2Vzbid0IGV4aXN0IgoKVGhl IGVycm9yIG1lc3NhZ2Ugd2lsbCBiZSBtb3JlIGNvcnJlY3QuIFRvZGF5LCBtaXNzaW5nIFBML3Bn U1FMIHZhcmlhYmxlIGNhbiBiZSByZXBvcnRlZC4gVGhlIGNoYW5nZSBoYXMKaW1wYWN0IG9uIGxv dCBvZiByZWdyZXNzIHRlc3RzIG5vdCBkaXJlY3RseSByZWxhdGVkIHRvIHNlc3Npb24gdmFyaWFi bGVzLCBhbmQgdGhlbiBpdCBpcyBkaXN0cmlidXRlZCBhcyBzZXBhcmF0ZSBwYXRjaAotLS0KIHNy Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICAgICAgICAgICB8ICAyICstCiBzcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfcmVsYXRpb24uYyAgICAgICAgICAgfCAyNCArKysrKysrKysr Ky0tLQogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jICAgICAgICAgICAgIHwgIDgg KysrLS0KIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmggICAgICAgICAgICAgICB8ICAy ICsrCiBzcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9hcnJheS5vdXQgfCAgMiAr LQogLi4uL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfcmVjb3JkLm91dCAgIHwgIDQgKy0t CiAuLi4vc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQgfCAgMiArLQog c3JjL3BsL3RjbC9leHBlY3RlZC9wbHRjbF9xdWVyaWVzLm91dCAgICAgICAgIHwgMTIgKysrLS0t LQogLi4uL2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dCAgIHwgIDQgKy0t CiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FsdGVyX3RhYmxlLm91dCAgICAgfCAzMiArKysr KysrKystLS0tLS0tLS0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkyLm91dCAgICAg ICAgICAgfCAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9lcnJvcnMub3V0ICAgICAg ICAgIHwgIDggKystLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5vdXQgICAgICAg ICAgICB8IDEyICsrKy0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbmFtZXNwYWNlLm91 dCAgICAgICB8ICAyICstCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL251bWVyb2xvZ3kub3V0 ICAgICAgfCAgMiArLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wbHBnc3FsLm91dCAgICAg ICAgIHwgMTIgKysrLS0tLQogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCAgICAg ICAgICAgIHwgIDIgKy0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0ICAgICAg ICAgICB8ICAyICstCiAuLi4vcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQg ICAgfCAgNiArKy0tCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3RyYW5zYWN0aW9ucy5vdXQg ICAgfCAgNCArLS0KIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdW5pb24ub3V0ICAgICAgICAg ICB8ICAyICstCiAyMSBmaWxlcyBjaGFuZ2VkLCA4MyBpbnNlcnRpb25zKCspLCA2MyBkZWxldGlv bnMoLSkKCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jIGIvc3Jj L2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCAzYTkwNGU1YzI1Li4wMDQxNjZkZDUw IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCisrKyBiL3NyYy9i YWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTUyNiw3ICs1MjYsNyBAQCB0cmFuc2Zvcm1J bmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCkKICAqIHBy aW50ZWQuICBXaGVuIHdlIGFyZSBpbiBhbiBleHByZXNzaW9uIHdoZXJlIHNlc3Npb24gdmFyaWFi bGVzIGNhbm5vdCBiZQogICogdXNlZCwgd2UgcmFpc2UgdGhlIGZpcnN0IGZvcm0gb2YgZXJyb3Ig bWVzc2FnZS4KICAqLwotc3RhdGljIGJvb2wKK2Jvb2wKIGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lv bl92YXJpYWJsZXMoUGFyc2VFeHByS2luZCBwX2V4cHJfa2luZCkKIHsKIAlib29sCQlyZXN1bHQg PSBmYWxzZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5j IGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMKaW5kZXggODY1YTEyZDhiNy4u Yzg3YjQyYmFkMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9u LmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMKQEAgLTI3LDYgKzI3 LDcgQEAKICNpbmNsdWRlICJub2Rlcy9tYWtlZnVuY3MuaCIKICNpbmNsdWRlICJub2Rlcy9ub2Rl RnVuY3MuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfZW5yLmgiCisjaW5jbHVkZSAicGFyc2Vy L3BhcnNlX2V4cHIuaCIKICNpbmNsdWRlICJwYXJzZXIvcGFyc2VfcmVsYXRpb24uaCIKICNpbmNs dWRlICJwYXJzZXIvcGFyc2VfdHlwZS5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZXRyZWUuaCIK QEAgLTM3MzAsNiArMzczMSwxOSBAQCBlcnJvck1pc3NpbmdSVEUoUGFyc2VTdGF0ZSAqcHN0YXRl LCBSYW5nZVZhciAqcmVsYXRpb24pCiAJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHJl bGF0aW9uLT5sb2NhdGlvbikpKTsKIH0KIAorLyoKKyAqIHNldCBtZXNzYWdlICJjb2x1bW4gZG9l cyBub3QgZXhpc3QiIG9yICJjb2x1bW4gb3IgdmFyaWFibGUgZG9lcyBub3QgZXhpc3QiCisgKiBp biBkZXBlbmRlbmN5IGlmIGV4cHJlc3Npb24gY29udGV4dCBhbGxvd3Mgc2Vzc2lvbiB2YXJpYWJs ZXMuCisgKi8KK3N0YXRpYyBpbnQKK2NvbHVtbl9vcl92YXJpYWJsZV9kb2VzX25vdF9leGlzdHMo UGFyc2VTdGF0ZSAqcHN0YXRlLCBjb25zdCBjaGFyICpjb2xuYW1lKQoreworCWlmIChleHByX2tp bmRfYWxsb3dzX3Nlc3Npb25fdmFyaWFibGVzKHBzdGF0ZS0+cF9leHByX2tpbmQpKQorCQlyZXR1 cm4gZXJybXNnKCJjb2x1bW4gb3IgdmFyaWFibGUgXCIlc1wiIGRvZXMgbm90IGV4aXN0IiwgY29s bmFtZSk7CisJZWxzZQorCQlyZXR1cm4gZXJybXNnKCJjb2x1bW4gXCIlc1wiIGRvZXMgbm90IGV4 aXN0IiwgY29sbmFtZSk7Cit9CisKIC8qCiAgKiBHZW5lcmF0ZSBhIHN1aXRhYmxlIGVycm9yIGFi b3V0IGEgbWlzc2luZyBjb2x1bW4uCiAgKgpAQCAtMzc2NCw3ICszNzc4LDcgQEAgZXJyb3JNaXNz aW5nQ29sdW1uKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRF RklORURfQ09MVU1OKSwKIAkJCQkJIHJlbG5hbWUgPwogCQkJCQkgZXJybXNnKCJjb2x1bW4gJXMu JXMgZG9lcyBub3QgZXhpc3QiLCByZWxuYW1lLCBjb2xuYW1lKSA6Ci0JCQkJCSBlcnJtc2coImNv bHVtbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLCBjb2xuYW1lKSwKKwkJCQkJIGNvbHVtbl9vcl92 YXJpYWJsZV9kb2VzX25vdF9leGlzdHMocHN0YXRlLCBjb2xuYW1lKSwKIAkJCQkJIGVycmRldGFp bCgiVGhlcmUgYXJlIGNvbHVtbnMgbmFtZWQgXCIlc1wiLCBidXQgdGhleSBhcmUgaW4gdGFibGVz IHRoYXQgY2Fubm90IGJlIHJlZmVyZW5jZWQgZnJvbSB0aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LiIs CiAJCQkJCQkJICAgY29sbmFtZSksCiAJCQkJCSAhcmVsbmFtZSA/IGVycmhpbnQoIlRyeSB1c2lu ZyBhIHRhYmxlLXF1YWxpZmllZCBuYW1lLiIpIDogMCwKQEAgLTM3NzQsNyArMzc4OCw3IEBAIGVy cm9yTWlzc2luZ0NvbHVtbihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJKGVycmNvZGUoRVJSQ09E RV9VTkRFRklORURfQ09MVU1OKSwKIAkJCQkgcmVsbmFtZSA/CiAJCQkJIGVycm1zZygiY29sdW1u ICVzLiVzIGRvZXMgbm90IGV4aXN0IiwgcmVsbmFtZSwgY29sbmFtZSkgOgotCQkJCSBlcnJtc2co ImNvbHVtbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLCBjb2xuYW1lKSwKKwkJCQkgY29sdW1uX29y X3ZhcmlhYmxlX2RvZXNfbm90X2V4aXN0cyhwc3RhdGUsIGNvbG5hbWUpLAogCQkJCSBlcnJkZXRh aWwoIlRoZXJlIGlzIGEgY29sdW1uIG5hbWVkIFwiJXNcIiBpbiB0YWJsZSBcIiVzXCIsIGJ1dCBp dCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRoaXMgcGFydCBvZiB0aGUgcXVlcnkuIiwKIAkJ CQkJCSAgIGNvbG5hbWUsIHN0YXRlLT5yZXhhY3QxLT5lcmVmLT5hbGlhc25hbWUpLAogCQkJCSBy dGVfdmlzaWJsZV9pZl9sYXRlcmFsKHBzdGF0ZSwgc3RhdGUtPnJleGFjdDEpID8KQEAgLTM3OTIs MTQgKzM4MDYsMTQgQEAgZXJyb3JNaXNzaW5nQ29sdW1uKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJ CQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfQ09MVU1OKSwKIAkJCQkJIHJlbG5hbWUgPwog CQkJCQkgZXJybXNnKCJjb2x1bW4gJXMuJXMgZG9lcyBub3QgZXhpc3QiLCByZWxuYW1lLCBjb2xu YW1lKSA6Ci0JCQkJCSBlcnJtc2coImNvbHVtbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLCBjb2xu YW1lKSwKKwkJCQkJIGNvbHVtbl9vcl92YXJpYWJsZV9kb2VzX25vdF9leGlzdHMocHN0YXRlLCBj b2xuYW1lKSwKIAkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOwog CQkvKiBIYW5kbGUgY2FzZSB3aGVyZSB3ZSBoYXZlIGEgc2luZ2xlIGFsdGVybmF0aXZlIHNwZWxs aW5nIHRvIG9mZmVyICovCiAJCWVyZXBvcnQoRVJST1IsCiAJCQkJKGVycmNvZGUoRVJSQ09ERV9V TkRFRklORURfQ09MVU1OKSwKIAkJCQkgcmVsbmFtZSA/CiAJCQkJIGVycm1zZygiY29sdW1uICVz LiVzIGRvZXMgbm90IGV4aXN0IiwgcmVsbmFtZSwgY29sbmFtZSkgOgotCQkJCSBlcnJtc2coImNv bHVtbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLCBjb2xuYW1lKSwKKwkJCQkgY29sdW1uX29yX3Zh cmlhYmxlX2RvZXNfbm90X2V4aXN0cyhwc3RhdGUsIGNvbG5hbWUpLAogCQkJCSBlcnJoaW50KCJQ ZXJoYXBzIHlvdSBtZWFudCB0byByZWZlcmVuY2UgdGhlIGNvbHVtbiBcIiVzLiVzXCIuIiwKIAkJ CQkJCSBzdGF0ZS0+cmZpcnN0LT5lcmVmLT5hbGlhc25hbWUsCiAJCQkJCQkgc3RyVmFsKGxpc3Rf bnRoKHN0YXRlLT5yZmlyc3QtPmVyZWYtPmNvbG5hbWVzLApAQCAtMzgxMyw3ICszODI3LDcgQEAg ZXJyb3JNaXNzaW5nQ29sdW1uKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkoZXJyY29kZShFUlJD T0RFX1VOREVGSU5FRF9DT0xVTU4pLAogCQkJCSByZWxuYW1lID8KIAkJCQkgZXJybXNnKCJjb2x1 bW4gJXMuJXMgZG9lcyBub3QgZXhpc3QiLCByZWxuYW1lLCBjb2xuYW1lKSA6Ci0JCQkJIGVycm1z ZygiY29sdW1uIFwiJXNcIiBkb2VzIG5vdCBleGlzdCIsIGNvbG5hbWUpLAorCQkJCSBjb2x1bW5f b3JfdmFyaWFibGVfZG9lc19ub3RfZXhpc3RzKHBzdGF0ZSwgY29sbmFtZSksCiAJCQkJIGVycmhp bnQoIlBlcmhhcHMgeW91IG1lYW50IHRvIHJlZmVyZW5jZSB0aGUgY29sdW1uIFwiJXMuJXNcIiBv ciB0aGUgY29sdW1uIFwiJXMuJXNcIi4iLAogCQkJCQkJIHN0YXRlLT5yZmlyc3QtPmVyZWYtPmFs aWFzbmFtZSwKIAkJCQkJCSBzdHJWYWwobGlzdF9udGgoc3RhdGUtPnJmaXJzdC0+ZXJlZi0+Y29s bmFtZXMsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMgYi9z cmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKaW5kZXggMzAwZWEzNDg3OC4uMzQwMmVl ODZkZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jCisrKyBi L3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJnZXQuYwpAQCAtNzc5LDcgKzc3OSw5IEBAIHRy YW5zZm9ybUFzc2lnbm1lbnRJbmRpcmVjdGlvbihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQlpZiAo IXR5cHJlbGlkKQogCQkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCQkoZXJyY29kZShFUlJDT0RFX0RB VEFUWVBFX01JU01BVENIKSwKLQkJCQkJCSBlcnJtc2coImNhbm5vdCBhc3NpZ24gdG8gZmllbGQg XCIlc1wiIG9mIGNvbHVtbiBcIiVzXCIgYmVjYXVzZSBpdHMgdHlwZSAlcyBpcyBub3QgYSBjb21w b3NpdGUgdHlwZSIsCisJCQkJCQkgZXJybXNnKGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJp YWJsZXMocHN0YXRlLT5wX2V4cHJfa2luZCkgPworCQkJCQkJCQkgImNhbm5vdCBhc3NpZ24gdG8g ZmllbGQgXCIlc1wiIG9mIGNvbHVtbiBvciB2YXJpYWJsZSBcIiVzXCIgYmVjYXVzZSBpdHMgdHlw ZSAlcyBpcyBub3QgYSBjb21wb3NpdGUgdHlwZSIgOgorCQkJCQkJCQkgImNhbm5vdCBhc3NpZ24g dG8gZmllbGQgXCIlc1wiIG9mIGNvbHVtbiBcIiVzXCIgYmVjYXVzZSBpdHMgdHlwZSAlcyBpcyBu b3QgYSBjb21wb3NpdGUgdHlwZSIsCiAJCQkJCQkJCXN0clZhbChuKSwgdGFyZ2V0TmFtZSwKIAkJ CQkJCQkJZm9ybWF0X3R5cGVfYmUodGFyZ2V0VHlwZUlkKSksCiAJCQkJCQkgcGFyc2VyX2VycnBv c2l0aW9uKHBzdGF0ZSwgbG9jYXRpb24pKSk7CkBAIC03ODgsNyArNzkwLDkgQEAgdHJhbnNmb3Jt QXNzaWdubWVudEluZGlyZWN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCWlmIChhdHRudW0g PT0gSW52YWxpZEF0dHJOdW1iZXIpCiAJCQkJZXJlcG9ydChFUlJPUiwKIAkJCQkJCShlcnJjb2Rl KEVSUkNPREVfVU5ERUZJTkVEX0NPTFVNTiksCi0JCQkJCQkgZXJybXNnKCJjYW5ub3QgYXNzaWdu IHRvIGZpZWxkIFwiJXNcIiBvZiBjb2x1bW4gXCIlc1wiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3Vj aCBjb2x1bW4gaW4gZGF0YSB0eXBlICVzIiwKKwkJCQkJCSBlcnJtc2coZXhwcl9raW5kX2FsbG93 c19zZXNzaW9uX3ZhcmlhYmxlcyhwc3RhdGUtPnBfZXhwcl9raW5kKSA/CisJCQkJCQkJCSAiY2Fu bm90IGFzc2lnbiB0byBmaWVsZCBcIiVzXCIgb2YgY29sdW1uIG9yIHZhcmlhYmxlIFwiJXNcIiBi ZWNhdXNlIHRoZXJlIGlzIG5vIHN1Y2ggY29sdW1uIGluIGRhdGEgdHlwZSAlcyIgOgorCQkJCQkJ CQkgImNhbm5vdCBhc3NpZ24gdG8gZmllbGQgXCIlc1wiIG9mIGNvbHVtbiBcIiVzXCIgYmVjYXVz ZSB0aGVyZSBpcyBubyBzdWNoIGNvbHVtbiBpbiBkYXRhIHR5cGUgJXMiLAogCQkJCQkJCQlzdHJW YWwobiksIHRhcmdldE5hbWUsCiAJCQkJCQkJCWZvcm1hdF90eXBlX2JlKHRhcmdldFR5cGVJZCkp LAogCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOwpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaCBiL3NyYy9pbmNsdWRlL3BhcnNl ci9wYXJzZV9leHByLmgKaW5kZXggNWJkZTQzNzU4ZC4uNzFlYzIxM2Y4OCAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIv cGFyc2VfZXhwci5oCkBAIC0yNCw0ICsyNCw2IEBAIGV4dGVybiBOb2RlICp0cmFuc2Zvcm1FeHBy KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwciwgUGFyc2VFeHByS2luZCBleHByS2luCiAK IGV4dGVybiBjb25zdCBjaGFyICpQYXJzZUV4cHJLaW5kTmFtZShQYXJzZUV4cHJLaW5kIGV4cHJL aW5kKTsKIAorZXh0ZXJuIGJvb2wgZXhwcl9raW5kX2FsbG93c19zZXNzaW9uX3ZhcmlhYmxlcyhQ YXJzZUV4cHJLaW5kIHBfZXhwcl9raW5kKTsKKwogI2VuZGlmCQkJCQkJCS8qIFBBUlNFX0VYUFJf SCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfYXJy YXkub3V0IGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfYXJyYXkub3V0Cmlu ZGV4IGFkNjBlMGU4YmUuLmMxYWI5ZmQ3ZWQgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3Ny Yy9leHBlY3RlZC9wbHBnc3FsX2FycmF5Lm91dAorKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhw ZWN0ZWQvcGxwZ3NxbF9hcnJheS5vdXQKQEAgLTQxLDcgKzQxLDcgQEAgTk9USUNFOiAgYSA9IHsi KCwxMSkifSwgYVsxXS5pID0gMTEKIC0tIHBlcmhhcHMgdGhpcyBvdWdodCB0byB3b3JrLCBidXQg Zm9yIG5vdyBpdCBkb2Vzbid0OgogZG8gJCQgZGVjbGFyZSBhIGNvbXBsZXhbXTsKIGJlZ2luIGFb MToyXS5pIDo9IGFycmF5WzExLDEyXTsgcmFpc2Ugbm90aWNlICdhID0gJScsIGE7IGVuZCQkOwot RVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJpIiBvZiBjb2x1bW4gImEiIGJlY2F1c2Ug aXRzIHR5cGUgY29tcGxleFtdIGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlCitFUlJPUjogIGNhbm5v dCBhc3NpZ24gdG8gZmllbGQgImkiIG9mIGNvbHVtbiBvciB2YXJpYWJsZSAiYSIgYmVjYXVzZSBp dHMgdHlwZSBjb21wbGV4W10gaXMgbm90IGEgY29tcG9zaXRlIHR5cGUKIExJTkUgMTogYVsxOjJd LmkgOj0gYXJyYXlbMTEsMTJdCiAgICAgICAgIF4KIFFVRVJZOiAgYVsxOjJdLmkgOj0gYXJyYXlb MTEsMTJdCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9y ZWNvcmQub3V0IGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfcmVjb3JkLm91 dAppbmRleCA2OTc0YzhmNGE0Li4zOTcwYWM3MjFjIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3Nx bC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9yZWNvcmQub3V0CisrKyBiL3NyYy9wbC9wbHBnc3FsL3Ny Yy9leHBlY3RlZC9wbHBnc3FsX3JlY29yZC5vdXQKQEAgLTEzNSw3ICsxMzUsNyBAQCBFUlJPUjog IHJlY29yZCAiYyIgaGFzIG5vIGZpZWxkICJ4IgogQ09OVEVYVDogIFBML3BnU1FMIGFzc2lnbm1l bnQgImMueC5xMSA9IDEiCiBQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5l IDEgYXQgYXNzaWdubWVudAogZG8gJCQgZGVjbGFyZSBjIG5lc3RlZF9pbnQ4czsgYmVnaW4gYy5j Mi54ID0gMTsgZW5kICQkOwotRVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBj b2x1bW4gImMiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlIHR3 b19pbnQ4cworRVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1bW4gb3Ig dmFyaWFibGUgImMiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBl IHR3b19pbnQ4cwogTElORSAxOiBjLmMyLnggPSAxCiAgICAgICAgIF4KIFFVRVJZOiAgYy5jMi54 ID0gMQpAQCAtMTU3LDcgKzE1Nyw3IEBAIEVSUk9SOiAgcmVjb3JkICJjIiBoYXMgbm8gZmllbGQg IngiCiBDT05URVhUOiAgUEwvcGdTUUwgYXNzaWdubWVudCAiYi5jLngucTEgPSAxIgogUEwvcGdT UUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IGFzc2lnbm1lbnQKIGRvICQk IDw8Yj4+IGRlY2xhcmUgYyBuZXN0ZWRfaW50OHM7IGJlZ2luIGIuYy5jMi54ID0gMTsgZW5kICQk OwotRVJST1I6ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1bW4gImIiIGJlY2F1 c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlIHR3b19pbnQ4cworRVJST1I6 ICBjYW5ub3QgYXNzaWduIHRvIGZpZWxkICJ4IiBvZiBjb2x1bW4gb3IgdmFyaWFibGUgImIiIGJl Y2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlIHR3b19pbnQ4cwogTElO RSAxOiBiLmMuYzIueCA9IDEKICAgICAgICAgXgogUVVFUlk6ICBiLmMuYzIueCA9IDEKZGlmZiAt LWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFi bGUub3V0IGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJp YWJsZS5vdXQKaW5kZXggZWNhYzY0ZmNmYi4uOGJkMmIzOThiZCAxMDA2NDQKLS0tIGEvc3JjL3Bs L3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKKysrIGIv c3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQK QEAgLTIzMiw3ICsyMzIsNyBAQCBTRVQgUk9MRSBUTyBERUZBVUxUOwogU0VUIFJPTEUgVE8gcmVn cmVzc192YXJfZXhlY19yb2xlOwogLS0gc2hvdWxkIGZhaWwsIGJ1dCBub3QgY3Jhc2gKIFNFTEVD VCB2YXJfcmVhZF9mdW5jKCk7Ci1FUlJPUjogIGNvbHVtbiAicGxwZ3NxbF9zdl92YXIxIiBkb2Vz IG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgInBscGdzcWxfc3ZfdmFyMSIg ZG9lcyBub3QgZXhpc3QKIExJTkUgMTogcGxwZ3NxbF9zdl92YXIxCiAgICAgICAgIF4KIFFVRVJZ OiAgcGxwZ3NxbF9zdl92YXIxCmRpZmYgLS1naXQgYS9zcmMvcGwvdGNsL2V4cGVjdGVkL3BsdGNs X3F1ZXJpZXMub3V0IGIvc3JjL3BsL3RjbC9leHBlY3RlZC9wbHRjbF9xdWVyaWVzLm91dAppbmRl eCAzNWNjNmU2MmFhLi40OTdjZDM4MTg5IDEwMDY0NAotLS0gYS9zcmMvcGwvdGNsL2V4cGVjdGVk L3BsdGNsX3F1ZXJpZXMub3V0CisrKyBiL3NyYy9wbC90Y2wvZXhwZWN0ZWQvcGx0Y2xfcXVlcmll cy5vdXQKQEAgLTQ1MCwxMiArNDUwLDEyIEBAIENPTlRFWFQ6ICB3aGlsZSBleGVjdXRpbmcKICJf X1BMVGNsX3Byb2NfdGNsX2V2YWxfdGV4dCBzcGlfcHJlcGFyZVwgYVwgXCJiXCBce1wiIgogaW4g UEwvVGNsIGZ1bmN0aW9uIHRjbF9ldmFsKHRleHQpCiBzZWxlY3QgdGNsX2Vycm9yX2hhbmRsaW5n X3Rlc3QoJHRjbCRzcGlfcHJlcGFyZSAic2VsZWN0IG1vbyIgW10kdGNsJCk7Ci0gICAgICAgdGNs X2Vycm9yX2hhbmRsaW5nX3Rlc3QgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KLSBTUUxTVEFURTogNDI3MDMgICAgICAgICAgICAgICAgICAgICArCi0gY29u ZGl0aW9uOiB1bmRlZmluZWRfY29sdW1uICAgICAgICAgKwotIGN1cnNvcl9wb3NpdGlvbjogOCAg ICAgICAgICAgICAgICAgICsKLSBtZXNzYWdlOiBjb2x1bW4gIm1vbyIgZG9lcyBub3QgZXhpc3Qr CisgICAgICAgICAgICAgdGNsX2Vycm9yX2hhbmRsaW5nX3Rlc3QgICAgICAgICAgICAgIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTUUxTVEFU RTogNDI3MDMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICArCisgY29uZGl0aW9uOiB1 bmRlZmluZWRfY29sdW1uICAgICAgICAgICAgICAgICAgICAgKworIGN1cnNvcl9wb3NpdGlvbjog OCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICsKKyBtZXNzYWdlOiBjb2x1bW4gb3IgdmFy aWFibGUgIm1vbyIgZG9lcyBub3QgZXhpc3QrCiAgc3RhdGVtZW50OiBzZWxlY3QgbW9vCiAoMSBy b3cpCiAKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZh cmlhYmxlLm91dCBiL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxl Lm91dAppbmRleCBlOWEyNTRiY2QxLi5kODg0OGQ1NTVjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9p c29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQKKysrIGIvc3JjL3Rlc3QvaXNv bGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0CkBAIC0xMCw3ICsxMCw3IEBAIHRl c3QKIAogc3RlcCBkcm9wOiBEUk9QIFZBUklBQkxFIG15dmFyOwogc3RlcCB2YWw6IFNFTEVDVCBt eXZhcjsKLUVSUk9SOiAgY29sdW1uICJteXZhciIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29s dW1uIG9yIHZhcmlhYmxlICJteXZhciIgZG9lcyBub3QgZXhpc3QKIAogc3RhcnRpbmcgcGVybXV0 YXRpb246IGxldCB2YWwgczEgZHJvcCB2YWwgc3IxCiBzdGVwIGxldDogTEVUIG15dmFyID0gJ3Rl c3QnOwpAQCAtMjMsNyArMjMsNyBAQCB0ZXN0CiBzdGVwIHMxOiBCRUdJTjsKIHN0ZXAgZHJvcDog RFJPUCBWQVJJQUJMRSBteXZhcjsKIHN0ZXAgdmFsOiBTRUxFQ1QgbXl2YXI7Ci1FUlJPUjogIGNv bHVtbiAibXl2YXIiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAi bXl2YXIiIGRvZXMgbm90IGV4aXN0CiBzdGVwIHNyMTogUk9MTEJBQ0s7CiAKIHN0YXJ0aW5nIHBl cm11dGF0aW9uOiBsZXQgdmFsIGRiZyBkcm9wIGNyZWF0ZSBkYmcgdmFsCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2FsdGVyX3RhYmxlLm91dCBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvYWx0ZXJfdGFibGUub3V0CmluZGV4IDEyODUyYWE2MTIuLmQ2ZWI1MWUyY2Yg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYWx0ZXJfdGFibGUub3V0Cisr KyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvYWx0ZXJfdGFibGUub3V0CkBAIC0xMjk1LDE5 ICsxMjk1LDE5IEBAIHNlbGVjdCAqIGZyb20gYXRhY2MxOwogKDEgcm93KQogCiBzZWxlY3QgKiBm cm9tIGF0YWNjMSBvcmRlciBieSBhOwotRVJST1I6ICBjb2x1bW4gImEiIGRvZXMgbm90IGV4aXN0 CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiYSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTog c2VsZWN0ICogZnJvbSBhdGFjYzEgb3JkZXIgYnkgYTsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXgogc2VsZWN0ICogZnJvbSBhdGFjYzEgb3JkZXIgYnkgIi4uLi4uLi4u cGcuZHJvcHBlZC4xLi4uLi4uLi4iOwotRVJST1I6ICBjb2x1bW4gIi4uLi4uLi4ucGcuZHJvcHBl ZC4xLi4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAi Li4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2Vs ZWN0ICogZnJvbSBhdGFjYzEgb3JkZXIgYnkgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4i Li4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIHNlbGVjdCAqIGZy b20gYXRhY2MxIGdyb3VwIGJ5IGE7Ci1FUlJPUjogIGNvbHVtbiAiYSIgZG9lcyBub3QgZXhpc3QK K0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJhIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBz ZWxlY3QgKiBmcm9tIGF0YWNjMSBncm91cCBieSBhOwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBeCiBzZWxlY3QgKiBmcm9tIGF0YWNjMSBncm91cCBieSAiLi4uLi4uLi5w Zy5kcm9wcGVkLjEuLi4uLi4uLiI7Ci1FUlJPUjogIGNvbHVtbiAiLi4uLi4uLi5wZy5kcm9wcGVk LjEuLi4uLi4uLiIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICIu Li4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxl Y3QgKiBmcm9tIGF0YWNjMSBncm91cCBieSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIu Li4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogc2VsZWN0IGF0YWNj MS4qIGZyb20gYXRhY2MxOwpAQCAtMTMxNyw3ICsxMzE3LDcgQEAgc2VsZWN0IGF0YWNjMS4qIGZy b20gYXRhY2MxOwogKDEgcm93KQogCiBzZWxlY3QgYSBmcm9tIGF0YWNjMTsKLUVSUk9SOiAgY29s dW1uICJhIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImEiIGRv ZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCBhIGZyb20gYXRhY2MxOwogICAgICAgICAgICAg ICAgXgogc2VsZWN0IGF0YWNjMS5hIGZyb20gYXRhY2MxOwpAQCAtMTMzMSwxNSArMTMzMSwxNSBA QCBzZWxlY3QgYixjLGQgZnJvbSBhdGFjYzE7CiAoMSByb3cpCiAKIHNlbGVjdCBhLGIsYyxkIGZy b20gYXRhY2MxOwotRVJST1I6ICBjb2x1bW4gImEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNv bHVtbiBvciB2YXJpYWJsZSAiYSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0IGEsYixj LGQgZnJvbSBhdGFjYzE7CiAgICAgICAgICAgICAgICBeCiBzZWxlY3QgKiBmcm9tIGF0YWNjMSB3 aGVyZSBhID0gMTsKLUVSUk9SOiAgY29sdW1uICJhIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBj b2x1bW4gb3IgdmFyaWFibGUgImEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCAqIGZy b20gYXRhY2MxIHdoZXJlIGEgPSAxOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBeCiBzZWxlY3QgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGZyb20gYXRhY2MxOwot RVJST1I6ICBjb2x1bW4gIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGRvZXMgbm90IGV4 aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4u Li4uLiIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0ICIuLi4uLi4uLnBnLmRyb3BwZWQu MS4uLi4uLi4uIiBmcm9tIGF0YWNjMTsKICAgICAgICAgICAgICAgIF4KIHNlbGVjdCBhdGFjYzEu Ii4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGZyb20gYXRhY2MxOwpAQCAtMTM0NywxMSAr MTM0NywxMSBAQCBFUlJPUjogIGNvbHVtbiBhdGFjYzEuLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4u Li4uLiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgYXRhY2MxLiIuLi4uLi4uLnBnLmRy b3BwZWQuMS4uLi4uLi4uIiBmcm9tIGF0YWNjMTsKICAgICAgICAgICAgICAgIF4KIHNlbGVjdCAi Li4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIsYixjLGQgZnJvbSBhdGFjYzE7Ci1FUlJPUjog IGNvbHVtbiAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgZG9lcyBub3QgZXhpc3QKK0VS Uk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBk b2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4u Li4iLGIsYyxkIGZyb20gYXRhY2MxOwogICAgICAgICAgICAgICAgXgogc2VsZWN0ICogZnJvbSBh dGFjYzEgd2hlcmUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iID0gMTsKLUVSUk9SOiAg Y29sdW1uICIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAorRVJS T1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGRv ZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCAqIGZyb20gYXRhY2MxIHdoZXJlICIuLi4uLi4u LnBnLmRyb3BwZWQuMS4uLi4uLi4uIiA9IC4uLgogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeCiAtLSBVUERBVEVzCkBAIC0xMzYwLDcgKzEzNjAsNyBAQCBFUlJPUjogIGNvbHVt biAiYSIgb2YgcmVsYXRpb24gImF0YWNjMSIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogdXBkYXRl IGF0YWNjMSBzZXQgYSA9IDM7CiAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIHVwZGF0ZSBh dGFjYzEgc2V0IGIgPSAyIHdoZXJlIGEgPSAzOwotRVJST1I6ICBjb2x1bW4gImEiIGRvZXMgbm90 IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiYSIgZG9lcyBub3QgZXhpc3QKIExJ TkUgMTogdXBkYXRlIGF0YWNjMSBzZXQgYiA9IDIgd2hlcmUgYSA9IDM7CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF4KIHVwZGF0ZSBhdGFjYzEgc2V0ICIuLi4uLi4uLnBn LmRyb3BwZWQuMS4uLi4uLi4uIiA9IDM7CkBAIC0xMzY4LDcgKzEzNjgsNyBAQCBFUlJPUjogIGNv bHVtbiAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgb2YgcmVsYXRpb24gImF0YWNjMSIg ZG9lcyBub3QgZXhpcwogTElORSAxOiB1cGRhdGUgYXRhY2MxIHNldCAiLi4uLi4uLi5wZy5kcm9w cGVkLjEuLi4uLi4uLiIgPSAzOwogICAgICAgICAgICAgICAgICAgICAgICAgICBeCiB1cGRhdGUg YXRhY2MxIHNldCBiID0gMiB3aGVyZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4uLiIgPSAz OwotRVJST1I6ICBjb2x1bW4gIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGRvZXMgbm90 IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEu Li4uLi4uLiIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogdXBkYXRlIGF0YWNjMSBzZXQgYiA9IDIg d2hlcmUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iLi4uCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KIC0tIElOU0VSVHMKQEAgLTE0MTYsMTEgKzE0MTYsMTEg QEAgTElORSAxOiBpbnNlcnQgaW50byBhdGFjYzEgKCIuLi4uLi4uLnBnLmRyb3BwZWQuMS4uLi4u Li4uIixiLGMsZCkgdmEuLi4KICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiAtLSBERUxF VEVzCiBkZWxldGUgZnJvbSBhdGFjYzEgd2hlcmUgYSA9IDM7Ci1FUlJPUjogIGNvbHVtbiAiYSIg ZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJhIiBkb2VzIG5vdCBl eGlzdAogTElORSAxOiBkZWxldGUgZnJvbSBhdGFjYzEgd2hlcmUgYSA9IDM7CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBeCiBkZWxldGUgZnJvbSBhdGFjYzEgd2hlcmUgIi4uLi4u Li4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iID0gMzsKLUVSUk9SOiAgY29sdW1uICIuLi4uLi4uLnBn LmRyb3BwZWQuMS4uLi4uLi4uIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFy aWFibGUgIi4uLi4uLi4ucGcuZHJvcHBlZC4xLi4uLi4uLi4iIGRvZXMgbm90IGV4aXN0CiBMSU5F IDE6IGRlbGV0ZSBmcm9tIGF0YWNjMSB3aGVyZSAiLi4uLi4uLi5wZy5kcm9wcGVkLjEuLi4uLi4u LiIgPSAzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogZGVsZXRlIGZyb20g YXRhY2MxOwpAQCAtMTcwNiw3ICsxNzA2LDcgQEAgc2VsZWN0IGYxIGZyb20gYzE7CiAKIGFsdGVy IHRhYmxlIGMxIGRyb3AgY29sdW1uIGYxOwogc2VsZWN0IGYxIGZyb20gYzE7Ci1FUlJPUjogIGNv bHVtbiAiZjEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiZjEi IGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCBmMSBmcm9tIGMxOwogICAgICAgICAgICAg ICAgXgogSElOVDogIFBlcmhhcHMgeW91IG1lYW50IHRvIHJlZmVyZW5jZSB0aGUgY29sdW1uICJj MS5mMiIuCkBAIC0xNzIwLDcgKzE3MjAsNyBAQCBFUlJPUjogIGNhbm5vdCBkcm9wIGluaGVyaXRl ZCBjb2x1bW4gImYxIgogYWx0ZXIgdGFibGUgcDEgZHJvcCBjb2x1bW4gZjE7CiAtLSBjMS5mMSBp cyBkcm9wcGVkIG5vdywgc2luY2UgdGhlcmUgaXMgbm8gbG9jYWwgZGVmaW5pdGlvbiBmb3IgaXQK IHNlbGVjdCBmMSBmcm9tIGMxOwotRVJST1I6ICBjb2x1bW4gImYxIiBkb2VzIG5vdCBleGlzdAor RVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImYxIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBz ZWxlY3QgZjEgZnJvbSBjMTsKICAgICAgICAgICAgICAgIF4KIEhJTlQ6ICBQZXJoYXBzIHlvdSBt ZWFudCB0byByZWZlcmVuY2UgdGhlIGNvbHVtbiAiYzEuZjIiLgpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9jb3B5Mi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L2NvcHkyLm91dAppbmRleCA2NGVhMzNhZWFlLi42ODc0ZjVhZTBkIDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL2NvcHkyLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4 cGVjdGVkL2NvcHkyLm91dApAQCAtMTYwLDcgKzE2MCw3IEBAIExJTkUgMTogQ09QWSB4IFRPIHN0 ZG91dCBXSEVSRSBhID0gMTsKIENPUFkgeCBmcm9tIHN0ZGluIFdIRVJFIGEgPSA1MDAwNDsKIENP UFkgeCBmcm9tIHN0ZGluIFdIRVJFIGEgPiA2MDAwMzsKIENPUFkgeCBmcm9tIHN0ZGluIFdIRVJF IGYgPiA2MDAwMzsKLUVSUk9SOiAgY29sdW1uICJmIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBj b2x1bW4gb3IgdmFyaWFibGUgImYiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IENPUFkgeCBmcm9t IHN0ZGluIFdIRVJFIGYgPiA2MDAwMzsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XgogQ09QWSB4IGZyb20gc3RkaW4gV0hFUkUgYSA9IG1heCh4LmIpOwpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9lcnJvcnMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9lcnJvcnMub3V0CmluZGV4IDhjNTI3NDc0ZGEuLmU1M2FlNDUxZGYgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZXJyb3JzLm91dAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL2Vycm9ycy5vdXQKQEAgLTI3LDcgKzI3LDcgQEAgTElORSAxOiBzZWxlY3Qg KiBmcm9tIG5vbmVzdWNoOwogICAgICAgICAgICAgICAgICAgICAgIF4KIC0tIGJhZCBuYW1lIGlu IHRhcmdldCBsaXN0CiBzZWxlY3Qgbm9uZXN1Y2ggZnJvbSBwZ19kYXRhYmFzZTsKLUVSUk9SOiAg Y29sdW1uICJub25lc3VjaCIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlh YmxlICJub25lc3VjaCIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0IG5vbmVzdWNoIGZy b20gcGdfZGF0YWJhc2U7CiAgICAgICAgICAgICAgICBeCiAtLSBlbXB0eSBkaXN0aW5jdCBsaXN0 IGlzbid0IE9LCkBAIC0zNywxNyArMzcsMTcgQEAgTElORSAxOiBzZWxlY3QgZGlzdGluY3QgZnJv bSBwZ19kYXRhYmFzZTsKICAgICAgICAgICAgICAgICAgICAgICAgIF4KIC0tIGJhZCBhdHRyaWJ1 dGUgbmFtZSBvbiBsaHMgb2Ygb3BlcmF0b3IKIHNlbGVjdCAqIGZyb20gcGdfZGF0YWJhc2Ugd2hl cmUgbm9uZXN1Y2ggPSBwZ19kYXRhYmFzZS5kYXRuYW1lOwotRVJST1I6ICBjb2x1bW4gIm5vbmVz dWNoIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgIm5vbmVzdWNo IiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3QgKiBmcm9tIHBnX2RhdGFiYXNlIHdoZXJl IG5vbmVzdWNoID0gcGdfZGF0YWJhc2UuZGF0bmEuLi4KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeCiAtLSBiYWQgYXR0cmlidXRlIG5hbWUgb24gcmhzIG9mIG9wZXJh dG9yCiBzZWxlY3QgKiBmcm9tIHBnX2RhdGFiYXNlIHdoZXJlIHBnX2RhdGFiYXNlLmRhdG5hbWUg PSBub25lc3VjaDsKLUVSUk9SOiAgY29sdW1uICJub25lc3VjaCIgZG9lcyBub3QgZXhpc3QKK0VS Uk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJub25lc3VjaCIgZG9lcyBub3QgZXhpc3QKIExJTkUg MTogLi4uZWN0ICogZnJvbSBwZ19kYXRhYmFzZSB3aGVyZSBwZ19kYXRhYmFzZS5kYXRuYW1lID0g bm9uZXN1Y2g7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIF4KIC0tIGJhZCBhdHRyaWJ1dGUgbmFtZSBpbiBzZWxlY3QgZGlzdGlu Y3Qgb24KIHNlbGVjdCBkaXN0aW5jdCBvbiAoZm9vYmFyKSAqIGZyb20gcGdfZGF0YWJhc2U7Ci1F UlJPUjogIGNvbHVtbiAiZm9vYmFyIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3Ig dmFyaWFibGUgImZvb2JhciIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogc2VsZWN0IGRpc3RpbmN0 IG9uIChmb29iYXIpICogZnJvbSBwZ19kYXRhYmFzZTsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBeCiAtLSBncm91cGluZyB3aXRoIEZPUiBVUERBVEUKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL2pv aW4ub3V0CmluZGV4IDA3OWZjZjQ2ZjAuLmE2ZTcxMDVhY2MgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvam9pbi5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9qb2luLm91dApAQCAtNjM5NywxMyArNjM5NywxMyBAQCBMSU5FIDE6IHNlbGVjdCB0Mi51dW5p cXVlMSBmcm9tCiBISU5UOiAgUGVyaGFwcyB5b3UgbWVhbnQgdG8gcmVmZXJlbmNlIHRoZSBjb2x1 bW4gInQyLnVuaXF1ZTEiLgogc2VsZWN0IHV1bmlxdWUxIGZyb20KICAgdGVuazEgdDEgam9pbiB0 ZW5rMiB0MiBvbiB0MS50d28gPSB0Mi50d287IC0tIGVycm9yLCBzdWdnZXN0IGJvdGggYXQgb25j ZQotRVJST1I6ICBjb2x1bW4gInV1bmlxdWUxIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1 bW4gb3IgdmFyaWFibGUgInV1bmlxdWUxIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxlY3Qg dXVuaXF1ZTEgZnJvbQogICAgICAgICAgICAgICAgXgogSElOVDogIFBlcmhhcHMgeW91IG1lYW50 IHRvIHJlZmVyZW5jZSB0aGUgY29sdW1uICJ0MS51bmlxdWUxIiBvciB0aGUgY29sdW1uICJ0Mi51 bmlxdWUxIi4KIHNlbGVjdCBjdGlkIGZyb20KICAgdGVuazEgdDEgam9pbiB0ZW5rMiB0MiBvbiB0 MS50d28gPSB0Mi50d287IC0tIGVycm9yLCBuZWVkIHF1YWxpZmljYXRpb24KLUVSUk9SOiAgY29s dW1uICJjdGlkIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImN0 aWQiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IHNlbGVjdCBjdGlkIGZyb20KICAgICAgICAgICAg ICAgIF4KIERFVEFJTDogIFRoZXJlIGFyZSBjb2x1bW5zIG5hbWVkICJjdGlkIiwgYnV0IHRoZXkg YXJlIGluIHRhYmxlcyB0aGF0IGNhbm5vdCBiZSByZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9m IHRoZSBxdWVyeS4KQEAgLTc1MDAsNyArNzUwMCw3IEBAIGxhdGVyYWwgKHNlbGVjdCAqIGZyb20g aW50OF90YmwgdDEsCiAKIC0tIHRlc3Qgc29tZSBlcnJvciBjYXNlcyB3aGVyZSBMQVRFUkFMIHNo b3VsZCBoYXZlIGJlZW4gdXNlZCBidXQgd2Fzbid0CiBzZWxlY3QgZjEsZyBmcm9tIGludDRfdGJs IGEsIChzZWxlY3QgZjEgYXMgZykgc3M7Ci1FUlJPUjogIGNvbHVtbiAiZjEiIGRvZXMgbm90IGV4 aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAiZjEiIGRvZXMgbm90IGV4aXN0CiBMSU5F IDE6IHNlbGVjdCBmMSxnIGZyb20gaW50NF90YmwgYSwgKHNlbGVjdCBmMSBhcyBnKSBzczsKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4KIERFVEFJTDogIFRo ZXJlIGlzIGEgY29sdW1uIG5hbWVkICJmMSIgaW4gdGFibGUgImEiLCBidXQgaXQgY2Fubm90IGJl IHJlZmVyZW5jZWQgZnJvbSB0aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LgpAQCAtNzUxMiw3ICs3NTEy LDcgQEAgTElORSAxOiBzZWxlY3QgZjEsZyBmcm9tIGludDRfdGJsIGEsIChzZWxlY3QgYS5mMSBh cyBnKSBzczsKIERFVEFJTDogIFRoZXJlIGlzIGFuIGVudHJ5IGZvciB0YWJsZSAiYSIsIGJ1dCBp dCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRoaXMgcGFydCBvZiB0aGUgcXVlcnkuCiBISU5U OiAgVG8gcmVmZXJlbmNlIHRoYXQgdGFibGUsIHlvdSBtdXN0IG1hcmsgdGhpcyBzdWJxdWVyeSB3 aXRoIExBVEVSQUwuCiBzZWxlY3QgZjEsZyBmcm9tIGludDRfdGJsIGEgY3Jvc3Mgam9pbiAoc2Vs ZWN0IGYxIGFzIGcpIHNzOwotRVJST1I6ICBjb2x1bW4gImYxIiBkb2VzIG5vdCBleGlzdAorRVJS T1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImYxIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzZWxl Y3QgZjEsZyBmcm9tIGludDRfdGJsIGEgY3Jvc3Mgam9pbiAoc2VsZWN0IGYxIGFzIGcpIHNzOwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4K IERFVEFJTDogIFRoZXJlIGlzIGEgY29sdW1uIG5hbWVkICJmMSIgaW4gdGFibGUgImEiLCBidXQg aXQgY2Fubm90IGJlIHJlZmVyZW5jZWQgZnJvbSB0aGlzIHBhcnQgb2YgdGhlIHF1ZXJ5LgpAQCAt NzU0OSw3ICs3NTQ5LDcgQEAgTElORSAxOiBzZWxlY3QgMSBmcm9tIHRlbmsxIGEsIGxhdGVyYWwg KHNlbGVjdCBtYXgoYS51bmlxdWUxKSBmcm9tIGkuLi4KIGNyZWF0ZSB0ZW1wIHRhYmxlIHh4MSBh cyBzZWxlY3QgZjEgYXMgeDEsIC1mMSBhcyB4MiBmcm9tIGludDRfdGJsOwogLS0gZXJyb3IsIGNh bid0IGRvIHRoaXM6CiB1cGRhdGUgeHgxIHNldCB4MiA9IGYxIGZyb20gKHNlbGVjdCAqIGZyb20g aW50NF90Ymwgd2hlcmUgZjEgPSB4MSkgc3M7Ci1FUlJPUjogIGNvbHVtbiAieDEiIGRvZXMgbm90 IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAieDEiIGRvZXMgbm90IGV4aXN0CiBM SU5FIDE6IC4uLiBzZXQgeDIgPSBmMSBmcm9tIChzZWxlY3QgKiBmcm9tIGludDRfdGJsIHdoZXJl IGYxID0geDEpIHNzOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4KIERFVEFJTDogIFRoZXJlIGlzIGEgY29sdW1uIG5hbWVk ICJ4MSIgaW4gdGFibGUgInh4MSIsIGJ1dCBpdCBjYW5ub3QgYmUgcmVmZXJlbmNlZCBmcm9tIHRo aXMgcGFydCBvZiB0aGUgcXVlcnkuCkBAIC03NTY5LDcgKzc1NjksNyBAQCB1cGRhdGUgeHgxIHNl dCB4MiA9IGYxIGZyb20geHgxLCBsYXRlcmFsIChzZWxlY3QgKiBmcm9tIGludDRfdGJsIHdoZXJl IGYxID0geDEpCiBFUlJPUjogIHRhYmxlIG5hbWUgInh4MSIgc3BlY2lmaWVkIG1vcmUgdGhhbiBv bmNlCiAtLSBhbHNvIGVycm9yczoKIGRlbGV0ZSBmcm9tIHh4MSB1c2luZyAoc2VsZWN0ICogZnJv bSBpbnQ0X3RibCB3aGVyZSBmMSA9IHgxKSBzczsKLUVSUk9SOiAgY29sdW1uICJ4MSIgZG9lcyBu b3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJ4MSIgZG9lcyBub3QgZXhpc3QK IExJTkUgMTogLi4udGUgZnJvbSB4eDEgdXNpbmcgKHNlbGVjdCAqIGZyb20gaW50NF90Ymwgd2hl cmUgZjEgPSB4MSkgc3M7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgogREVUQUlMOiAgVGhlcmUgaXMgYSBjb2x1bW4gbmFt ZWQgIngxIiBpbiB0YWJsZSAieHgxIiwgYnV0IGl0IGNhbm5vdCBiZSByZWZlcmVuY2VkIGZyb20g dGhpcyBwYXJ0IG9mIHRoZSBxdWVyeS4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvbmFtZXNwYWNlLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbmFtZXNwYWNl Lm91dAppbmRleCBkYmJkYTcyZDM5Li5kOTg3OTNmOTJhIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL25hbWVzcGFjZS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9uYW1lc3BhY2Uub3V0CkBAIC0yMyw3ICsyMyw3IEBAIEJFR0lOOwogU0VUIHNlYXJjaF9w YXRoIHRvIHB1YmxpYywgdGVzdF9uc19zY2hlbWFfMTsKIENSRUFURSBTQ0hFTUEgdGVzdF9uc19z Y2hlbWFfMgogICAgICAgIENSRUFURSBWSUVXIGFiY192aWV3IEFTIFNFTEVDVCBjIEZST00gYWJj OwotRVJST1I6ICBjb2x1bW4gImMiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2 YXJpYWJsZSAiYyIgZG9lcyBub3QgZXhpc3QKIExJTkUgMjogICAgICAgIENSRUFURSBWSUVXIGFi Y192aWV3IEFTIFNFTEVDVCBjIEZST00gYWJjOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4KIENPTU1JVDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvbnVtZXJvbG9neS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL251 bWVyb2xvZ3kub3V0CmluZGV4IDllMjMxNjZmZWQuLjY3MjAxMmUxNDYgMTAwNjQ0Ci0tLSBhL3Ny Yy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvbnVtZXJvbG9neS5vdXQKKysrIGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9udW1lcm9sb2d5Lm91dApAQCAtMzE0LDcgKzMxNCw3IEBAIE5PVElDRTog IGkgPSAxMDAyCiBOT1RJQ0U6ICBpID0gMTAwMwogLS0gZXJyb3IgY2FzZXMKIFNFTEVDVCBfMTAw OwotRVJST1I6ICBjb2x1bW4gIl8xMDAiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBv ciB2YXJpYWJsZSAiXzEwMCIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogU0VMRUNUIF8xMDA7CiAg ICAgICAgICAgICAgICBeCiBTRUxFQ1QgMTAwXzsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvcGxwZ3NxbC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BscGdz cWwub3V0CmluZGV4IDBhNjk0NTU4MWIuLjVjNTk5YmEzMTIgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvcGxwZ3NxbC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9wbHBnc3FsLm91dApAQCAtMjU5OCw3ICsyNTk4LDcgQEAgZW5kOyAkJCBsYW5ndWFnZSBw bHBnc3FsOwogLS0gc2hvdWxkIGZhaWw6IFNRTFNUQVRFIGFuZCBTUUxFUlJNIGFyZSBvbmx5IGlu IGRlZmluZWQgRVhDRVBUSU9OCiAtLSBibG9ja3MKIHNlbGVjdCBleGNwdF90ZXN0MSgpOwotRVJS T1I6ICBjb2x1bW4gInNxbHN0YXRlIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3Ig dmFyaWFibGUgInNxbHN0YXRlIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzcWxzdGF0ZQogICAg ICAgICBeCiBRVUVSWTogIHNxbHN0YXRlCkBAIC0yNjEzLDcgKzI2MTMsNyBAQCBiZWdpbgogZW5k OyAkJCBsYW5ndWFnZSBwbHBnc3FsOwogLS0gc2hvdWxkIGZhaWwKIHNlbGVjdCBleGNwdF90ZXN0 MigpOwotRVJST1I6ICBjb2x1bW4gInNxbHN0YXRlIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBj b2x1bW4gb3IgdmFyaWFibGUgInNxbHN0YXRlIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBzcWxz dGF0ZQogICAgICAgICBeCiBRVUVSWTogIHNxbHN0YXRlCkBAIC00Njc1LDcgKzQ2NzUsNyBAQCBC RUdJTgogICAgICAgICBSQUlTRSBOT1RJQ0UgJyUsICUnLCByLnJvb21ubywgci5jb21tZW50Owog ICAgIEVORCBMT09QOwogRU5EJCQ7Ci1FUlJPUjogIGNvbHVtbiAiZm9vIiBkb2VzIG5vdCBleGlz dAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImZvbyIgZG9lcyBub3QgZXhpc3QKIExJTkUg MTogU0VMRUNUIHJ0cmltKHJvb21ubykgQVMgcm9vbW5vLCBmb28gRlJPTSBSb29tIE9SREVSIEJZ IHJvb21uLi4uCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXgogUVVF Ulk6ICBTRUxFQ1QgcnRyaW0ocm9vbW5vKSBBUyByb29tbm8sIGZvbyBGUk9NIFJvb20gT1JERVIg Qlkgcm9vbW5vCkBAIC00NzE3LDcgKzQ3MTcsNyBAQCBiZWdpbgogICByYWlzZSBub3RpY2UgJ3gg PSAlJywgeDsKIGVuZDsKICQkOwotRVJST1I6ICBjb2x1bW4gIngiIGRvZXMgbm90IGV4aXN0CitF UlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAieCIgZG9lcyBub3QgZXhpc3QKIExJTkUgMTogeCAr IDEKICAgICAgICAgXgogUVVFUlk6ICB4ICsgMQpAQCAtNDcyOSw3ICs0NzI5LDcgQEAgYmVnaW4K ICAgcmFpc2Ugbm90aWNlICd4ID0gJSwgeSA9ICUnLCB4LCB5OwogZW5kOwogJCQ7Ci1FUlJPUjog IGNvbHVtbiAieCIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJ4 IiBkb2VzIG5vdCBleGlzdAogTElORSAxOiB4ICsgMQogICAgICAgICBeCiBRVUVSWTogIHggKyAx CkBAIC01NzY5LDcgKzU3NjksNyBAQCBBTFRFUiBUQUJMRSBhbHRlcl90YWJsZV91bmRlcl90cmFu c2l0aW9uX3RhYmxlcwogICBEUk9QIGNvbHVtbiBuYW1lOwogVVBEQVRFIGFsdGVyX3RhYmxlX3Vu ZGVyX3RyYW5zaXRpb25fdGFibGVzCiAgIFNFVCBpZCA9IGlkOwotRVJST1I6ICBjb2x1bW4gIm5h bWUiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBvciB2YXJpYWJsZSAibmFtZSIgZG9l cyBub3QgZXhpc3QKIExJTkUgMTogKFNFTEVDVCBzdHJpbmdfYWdnKGlkIHx8ICc9JyB8fCBuYW1l LCAnLCcpIEZST00gZCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe CiBRVUVSWTogIChTRUxFQ1Qgc3RyaW5nX2FnZyhpZCB8fCAnPScgfHwgbmFtZSwgJywnKSBGUk9N IGQpCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAppbmRleCA3N2E3YmY0NWM4Li5lMTYzNWY2 ODZjIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CisrKyBi L3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKQEAgLTIxNCw3ICsyMTQsNyBAQCBz ZWxlY3QgJDE6OmludCBhcyBjb2wgXGJpbmQgMSBcZyBcYmluZCAyIFxnCiAtLSBlcnJvcnMKIC0t IHBhcnNlIGVycm9yCiBTRUxFQ1QgZm9vIFxiaW5kIFxnCi1FUlJPUjogIGNvbHVtbiAiZm9vIiBk b2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgImZvbyIgZG9lcyBub3Qg ZXhpc3QKIExJTkUgMTogU0VMRUNUIGZvbyAKICAgICAgICAgICAgICAgIF4KIC0tIHRjb3AgZXJy b3IKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcnVsZXMub3V0IGIvc3Jj L3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKaW5kZXggMzAxNGQwNDdmZS4uNzM3OGY5 NWIxNyAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKKysr IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9ydWxlcy5vdXQKQEAgLTExOTEsNyArMTE5MSw3 IEBAIGRyb3AgcnVsZSBydWxlc19mb29ydWxlIG9uIHJ1bGVzX2ZvbzsKIC0tIHRoaXMgc2hvdWxk IGZhaWwgYmVjYXVzZSBmMSBpcyBub3QgZXhwb3NlZCBmb3IgdW5xdWFsaWZpZWQgcmVmZXJlbmNl OgogY3JlYXRlIHJ1bGUgcnVsZXNfZm9vcnVsZSBhcyBvbiBpbnNlcnQgdG8gcnVsZXNfZm9vIHdo ZXJlIGYxIDwgMTAwCiBkbyBpbnN0ZWFkIGluc2VydCBpbnRvIHJ1bGVzX2ZvbzIgdmFsdWVzIChm MSk7Ci1FUlJPUjogIGNvbHVtbiAiZjEiIGRvZXMgbm90IGV4aXN0CitFUlJPUjogIGNvbHVtbiBv ciB2YXJpYWJsZSAiZjEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDI6IGRvIGluc3RlYWQgaW5zZXJ0 IGludG8gcnVsZXNfZm9vMiB2YWx1ZXMgKGYxKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXgogREVUQUlMOiAgVGhlcmUgYXJlIGNvbHVtbnMgbmFt ZWQgImYxIiwgYnV0IHRoZXkgYXJlIGluIHRhYmxlcyB0aGF0IGNhbm5vdCBiZSByZWZlcmVuY2Vk IGZyb20gdGhpcyBwYXJ0IG9mIHRoZSBxdWVyeS4KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggNzYzOGUxYTQ3Ny4uNTY1ZmI1ZGE2ZSAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQK QEAgLTgxMSw3ICs4MTEsNyBAQCBFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInZhcjEiIGRvZXNu J3QgZXhpc3QKIExJTkUgMTogTEVUIHZhcjEgPSBwaSgpOwogICAgICAgICAgICAgXgogU0VMRUNU IHZhcjE7Ci1FUlJPUjogIGNvbHVtbiAidmFyMSIgZG9lcyBub3QgZXhpc3QKK0VSUk9SOiAgY29s dW1uIG9yIHZhcmlhYmxlICJ2YXIxIiBkb2VzIG5vdCBleGlzdAogTElORSAxOiBTRUxFQ1QgdmFy MTsKICAgICAgICAgICAgICAgIF4KIC0tIHNob3VsZCBiZSBvawpAQCAtMTAzMCw3ICsxMDMwLDcg QEAgU0VMRUNUIHYxOwogCiAtLSBzaG91bGQgZmFpbCwgYXR0cmlidXRlIGRvZXNuJ3QgZXhpc3QK IExFVCB2MS54ID0gMTA7Ci1FUlJPUjogIGNhbm5vdCBhc3NpZ24gdG8gZmllbGQgIngiIG9mIGNv bHVtbiAidjEiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlIHQx CitFUlJPUjogIGNhbm5vdCBhc3NpZ24gdG8gZmllbGQgIngiIG9mIGNvbHVtbiBvciB2YXJpYWJs ZSAidjEiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3VjaCBjb2x1bW4gaW4gZGF0YSB0eXBlIHQxCiBM SU5FIDE6IExFVCB2MS54ID0gMTA7CiAgICAgICAgICAgICBeCiAtLSBzaG91bGQgZmFpbCwgZG9u J3QgYWxsb3cgbXVsdGkgY29sdW1uIHF1ZXJ5CkBAIC0xNzUwLDcgKzE3NTAsNyBAQCBCRUdJTjsK IERST1AgVkFSSUFCTEUgdmFyMTsKIC0tIHNob3VsZCBmYWlsCiBTRUxFQ1QgdmFyMTsKLUVSUk9S OiAgY29sdW1uICJ2YXIxIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFi bGUgInZhcjEiIGRvZXMgbm90IGV4aXN0CiBMSU5FIDE6IFNFTEVDVCB2YXIxOwogICAgICAgICAg ICAgICAgXgogUk9MTEJBQ0s7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3RyYW5zYWN0aW9ucy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3RyYW5zYWN0aW9u cy5vdXQKaW5kZXggN2Y1NzU3ZTg5Yy4uYjA1YjE2ZDk0YiAxMDA2NDQKLS0tIGEvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC90cmFuc2FjdGlvbnMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvdHJhbnNhY3Rpb25zLm91dApAQCAtMjU2LDcgKzI1Niw3IEBAIFNFTEVDVCAqIEZS T00gdHJhbnNfYmFyYmF6OwktLSBzaG91bGQgaGF2ZSAxCiBCRUdJTjsKIAlTQVZFUE9JTlQgb25l OwogCQlTRUxFQ1QgdHJhbnNfZm9vOwotRVJST1I6ICBjb2x1bW4gInRyYW5zX2ZvbyIgZG9lcyBu b3QgZXhpc3QKK0VSUk9SOiAgY29sdW1uIG9yIHZhcmlhYmxlICJ0cmFuc19mb28iIGRvZXMgbm90 IGV4aXN0CiBMSU5FIDE6IFNFTEVDVCB0cmFuc19mb287CiAgICAgICAgICAgICAgICBeCiAJUk9M TEJBQ0sgVE8gU0FWRVBPSU5UIG9uZTsKQEAgLTMwNSw3ICszMDUsNyBAQCBCRUdJTjsKIAlTQVZF UE9JTlQgb25lOwogCQlJTlNFUlQgSU5UTyBzYXZlcG9pbnRzIFZBTFVFUyAoNSk7CiAJCVNFTEVD VCB0cmFuc19mb287Ci1FUlJPUjogIGNvbHVtbiAidHJhbnNfZm9vIiBkb2VzIG5vdCBleGlzdAor RVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgInRyYW5zX2ZvbyIgZG9lcyBub3QgZXhpc3QKIExJ TkUgMTogU0VMRUNUIHRyYW5zX2ZvbzsKICAgICAgICAgICAgICAgIF4KIENPTU1JVDsKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvdW5pb24ub3V0IGIvc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC91bmlvbi5vdXQKaW5kZXggY2FhOGZlNzBhMC4uMWQzNDQ3ZTg0ZCAxMDA2 NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC91bmlvbi5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC91bmlvbi5vdXQKQEAgLTkzOSw3ICs5MzksNyBAQCBPUkRFUiBC WSBxMixxMTsKIAogLS0gVGhpcyBzaG91bGQgZmFpbCwgYmVjYXVzZSBxMiBpc24ndCBhIG5hbWUg b2YgYW4gRVhDRVBUIG91dHB1dCBjb2x1bW4KIFNFTEVDVCBxMSBGUk9NIGludDhfdGJsIEVYQ0VQ VCBTRUxFQ1QgcTIgRlJPTSBpbnQ4X3RibCBPUkRFUiBCWSBxMiBMSU1JVCAxOwotRVJST1I6ICBj b2x1bW4gInEyIiBkb2VzIG5vdCBleGlzdAorRVJST1I6ICBjb2x1bW4gb3IgdmFyaWFibGUgInEy IiBkb2VzIG5vdCBleGlzdAogTElORSAxOiAuLi4gaW50OF90YmwgRVhDRVBUIFNFTEVDVCBxMiBG Uk9NIGludDhfdGJsIE9SREVSIEJZIHEyIExJTUlUIDEuLi4KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeCiBERVRBSUw6ICBUaGVy ZSBpcyBhIGNvbHVtbiBuYW1lZCAicTIiIGluIHRhYmxlICIqU0VMRUNUKiAyIiwgYnV0IGl0IGNh bm5vdCBiZSByZWZlcmVuY2VkIGZyb20gdGhpcyBwYXJ0IG9mIHRoZSBxdWVyeS4KLS0gCjIuNDcu MQoK --0000000000007bfa26062b3fa8d1 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250109-0018-plpgsql-implementation-for-LET-statement.patch" Content-Disposition: attachment; filename="v20250109-0018-plpgsql-implementation-for-LET-statement.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5ox16me4 RnJvbSA2YmNhNGZhZjI0ZmQ0MDMzN2Q2Njg1ODc3ZjJjMGExYWM1NTg2YmM4IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFNhdCwgMjAgSmFuIDIwMjQgMDg6NTY6MTcgKzAxMDAKU3ViamVjdDogW1BBVENIIDE4 LzIyXSBwbHBnc3FsIGltcGxlbWVudGF0aW9uIGZvciBMRVQgc3RhdGVtZW50CgpQTHBnU1FMIGFs bG93cyB0byBjYWxsIGV4cHJlc3Npb24gZXhlY3V0b3IgZGlyZWN0bHkgKGZvciBzaW1wbGUgZXhw cmVzc2lvbikuClRoaXMgcG9zc2liaWxpdHkgc3Ryb25nbHkgcmVkdWNlcyBvdmVyaGVhZCByZWxh dGVkIHRvIGV4ZWN1dGlvbi4gUmVpbXBsZW1lbnRhdGlvbgpvZiBMRVQgc3RhdGVtZW50IChpbnNp ZGUgUExwZ1NRTCkgYWxsb3dzIHRvIHVzZSB0aGlzIHBvc3NpYmlsaXR5LCBhbmQgc3Ryb25nbHkK aW5jcmVhc2UgcGVyZm9ybWFuY2U6CgpDUkVBVEUgVkFSSUFCTEUgc3ZhciBpbnQ7CgpETyAkJApC RUdJTgogIEZPUiBpIElOIDEuLjEwMDAwCiAgTE9PUAogICAgTEVUIHN2YXIgPSBpOwogIEVORCBM T09QOwpFTkQ7CiQkOwoKRnJvbSAxMjBtcyB0byA4bXMgKHdpdGggYXNzZXJ0aW9ucykgKHRoaXMg aXMgYmVzdCBjYXNlLCBidXQgd2l0aG91dCBpdCwgdGhlIExFVCBzdGF0ZW1lbnQKY2FuIGJlIGJv dHRsZSBuZWNrKS4KCkFuIGFsdGVybmF0aXZlIGNhbiBiZSByZWltcGxlbWVudGF0aW9uIG9mIExF VCBzdGF0ZW1lbnQgaW5zaWRlIGV4cHJlc3Npb24KZXhlY3V0b3IsIGFuZCB0aGVuIFNRTCBMRVQg Y29tbWFuZCBjYW4gYmUgZXhlY3V0ZWQgaW4gc2ltcGxlIGV4cHJlc3Npb24KZXhlY3V0aW9uLCBi dXQgdGhpcyBpbmNyZWFzZSBhbiBjb21wbGV4aXR5IG9mIGV4ZWN1dG9yLCBidXQgc3RpbGwgdGhl CmJlbmVmaXRzIGlzIG9ubHkgaW5zaWRlIHBscGdzcWwsIHNvIGl0IGlzIGJldHRlciB0byB0aGlz IG9wdGltaXphdGlvbgppbnNpZGUgcGxwZ3NxbC4KLS0tCiBzcmMvYmFja2VuZC9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmMgICAgICAgfCAxNiArKysrKysKIHNyYy9iYWNrZW5kL2V4ZWN1dG9y L3NwaS5jICAgICAgICAgICAgICAgICAgICB8ICAzICsKIHNyYy9iYWNrZW5kL3BhcnNlci9hbmFs eXplLmMgICAgICAgICAgICAgICAgICB8IDEyICsrKysKIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFt LnkgICAgICAgICAgICAgICAgICAgICB8ICA4ICsrKwogc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNl ci5jICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lv bl92YXJpYWJsZS5oICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o ICAgICAgICAgICAgICAgIHwgIDIgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlci5oICAgICAg ICAgICAgICAgICAgIHwgIDQgKysKIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMgICAgICAg ICAgICAgICAgICB8IDU2ICsrKysrKysrKysrKysrKysrKysKIHNyYy9wbC9wbHBnc3FsL3NyYy9w bF9mdW5jcy5jICAgICAgICAgICAgICAgICB8IDI0ICsrKysrKysrCiBzcmMvcGwvcGxwZ3NxbC9z cmMvcGxfZ3JhbS55ICAgICAgICAgICAgICAgICAgfCAyOSArKysrKysrKystCiBzcmMvcGwvcGxw Z3NxbC9zcmMvcGxfcmVzZXJ2ZWRfa3dsaXN0LmggICAgICAgfCAgMSArCiBzcmMvcGwvcGxwZ3Nx bC9zcmMvcGxfdW5yZXNlcnZlZF9rd2xpc3QuaCAgICAgfCAgMSArCiBzcmMvcGwvcGxwZ3NxbC9z cmMvcGxwZ3NxbC5oICAgICAgICAgICAgICAgICAgfCAxMiArKysrCiAuLi4vcmVncmVzcy9leHBl Y3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAgNiArLQogc3JjL3Rvb2xzL3BnaW5kZW50 L3R5cGVkZWZzLmxpc3QgICAgICAgICAgICAgIHwgIDEgKwogMTYgZmlsZXMgY2hhbmdlZCwgMTcy IGluc2VydGlvbnMoKyksIDUgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQv Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lv bl92YXJpYWJsZS5jCmluZGV4IDIxMGQ1NWI5ZTQuLjI1NTU5NzUxOTcgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9j b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTk1Niw2ICs5NTYsMjIgQEAgU2V0U2Vzc2lv blZhcmlhYmxlKE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKQogCXNldF9zZXNz aW9uX3ZhcmlhYmxlKHN2YXIsIHZhbHVlLCBpc051bGwpOwogfQogCisvKgorICogV3JhcHBlciBh cm91bmQgU2V0U2Vzc2lvblZhcmlhYmxlIHdpdGggcGVybWlzc2lvbiBjaGVja3MuCisgKi8KK3Zv aWQKK1NldFNlc3Npb25WYXJpYWJsZVdpdGhTZWN1cml0eUNoZWNrKE9pZCB2YXJpZCwgRGF0dW0g dmFsdWUsIGJvb2wgaXNOdWxsKQoreworCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisKKwkvKiBpcyB0 aGUgY2FsbGVyIGFsbG93ZWQgdG8gdXBkYXRlIHRoZSBzZXNzaW9uIHZhcmlhYmxlPyAqLworCWFj bHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCBHZXRV c2VySWQoKSwgQUNMX1VQREFURSk7CisJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJ YWNsY2hlY2tfZXJyb3IoYWNscmVzdWx0LCBPQkpFQ1RfVkFSSUFCTEUsIGdldF9zZXNzaW9uX3Zh cmlhYmxlX25hbWUodmFyaWQpKTsKKworCVNldFNlc3Npb25WYXJpYWJsZSh2YXJpZCwgdmFsdWUs IGlzTnVsbCk7Cit9CisKIC8qCiAgKiBSZXR1cm5zIGEgY29weSBvZiB0aGUgdmFsdWUgc3RvcmVk IGluIGEgdmFyaWFibGUuCiAgKi8KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3Nw aS5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3BpLmMKaW5kZXggNGNlNmJjNWYyOS4uZTUyZDhj YzEzYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3BpLmMKKysrIGIvc3JjL2Jh Y2tlbmQvZXhlY3V0b3Ivc3BpLmMKQEAgLTI5OTksNiArMjk5OSw5IEBAIF9TUElfZXJyb3JfY2Fs bGJhY2sodm9pZCAqYXJnKQogCQkJY2FzZSBSQVdfUEFSU0VfUExQR1NRTF9BU1NJR04zOgogCQkJ CWVycmNvbnRleHQoIlBML3BnU1FMIGFzc2lnbm1lbnQgXCIlc1wiIiwgcXVlcnkpOwogCQkJCWJy ZWFrOworCQkJY2FzZSBSQVdfUEFSU0VfUExQR1NRTF9MRVQ6CisJCQkJZXJyY29udGV4dCgiTEVU IHN0YXRlbWVudCBcIiVzXCIiLCBxdWVyeSk7CisJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJ CWVycmNvbnRleHQoIlNRTCBzdGF0ZW1lbnQgXCIlc1wiIiwgcXVlcnkpOwogCQkJCWJyZWFrOwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyBiL3NyYy9iYWNrZW5kL3Bh cnNlci9hbmFseXplLmMKaW5kZXggYjhkZjE2ZTRmMC4uMGY5MWVjODljNyAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5h bHl6ZS5jCkBAIC0yMDEzLDYgKzIwMTMsMTggQEAgdHJhbnNmb3JtTGV0U3RtdChQYXJzZVN0YXRl ICpwc3RhdGUsIExldFN0bXQgKnN0bXQpCiAKIAlzdG10LT5xdWVyeSA9IChOb2RlICopIHF1ZXJ5 OwogCisJLyoKKwkgKiBJbnNpZGUgUEwvcGdTUUwgd2UgZG9uJ3Qgd2FudCB0byBleGVjdXRlIExF VCBzdGF0ZW1lbnQgYXMgdXRpbGl0eQorCSAqIGNvbW1hbmQsIGJlY2F1c2UgaXQgZGlzYWxsb3cg dG8gZXhlY3V0ZSBleHByZXNzaW9uIGFzIHNpbXBsZQorCSAqIGV4cHJlc3Npb24uIFNvIGZvciBQ TC9wZ1NRTCB3ZSBoYXZlIGV4dHJhIHBhdGgsIGFuZCB3ZSByZXR1cm4gU0VMRUNULgorCSAqIFRo ZW4gaXQgY2FuIGJlIGV4ZWN1dGVkIGJ5IGV4ZWNfZXZhbF9leHByLiBSZXN1bHQgaXMgZGlycmVj dGx5IGFzc2lnbmVkCisJICogdG8gdGFyZ2V0IHNlc3Npb24gdmFyaWFibGUgaW5zaWRlIFBML3Bn U1FMIExFVCBzdGF0ZW1lbnQgaGFuZGxlci4gVGhpcworCSAqIGlzIGV4dHJhIGNvZGUsIGV4dHJh IHBhdGgsIGJ1dCBwb3NzaWJpbGl0eSB0byBnZXQgZmFzdGVyIGV4ZWN1dGlvbiBpcworCSAqIHRv byBhdHRyYWN0aXZlLgorCSAqLworCWlmIChzdG10LT5wbHBnc3FsX21vZGUpCisJCXJldHVybiBx dWVyeTsKKwogCS8qIHJlcHJlc2VudCB0aGUgY29tbWFuZCBhcyBhIHV0aWxpdHkgUXVlcnkgKi8K IAlyZXN1bHQgPSBtYWtlTm9kZShRdWVyeSk7CiAJcmVzdWx0LT5jb21tYW5kVHlwZSA9IENNRF9V VElMSVRZOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNr ZW5kL3BhcnNlci9ncmFtLnkKaW5kZXggYTU5ZjY4NTBiNy4uYmY3Y2EzZjUxYyAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3Jh bS55CkBAIC04MTYsNiArODE2LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2Vs ZWN0KGNoYXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0b2tlbgkJ TU9ERV9QTFBHU1FMX0FTU0lHTjEKICV0b2tlbgkJTU9ERV9QTFBHU1FMX0FTU0lHTjIKICV0b2tl bgkJTU9ERV9QTFBHU1FMX0FTU0lHTjMKKyV0b2tlbgkJTU9ERV9QTFBHU1FMX0xFVAogCiAKIC8q IFByZWNlZGVuY2U6IGxvd2VzdCB0byBoaWdoZXN0ICovCkBAIC05NDcsNiArOTQ4LDEzIEBAIHBh cnNlX3RvcGxldmVsOgogCQkJCXBnX3l5Z2V0X2V4dHJhKHl5c2Nhbm5lciktPnBhcnNldHJlZSA9 CiAJCQkJCWxpc3RfbWFrZTEobWFrZVJhd1N0bXQoKE5vZGUgKikgbiwgQDIpKTsKIAkJCX0KKwkJ CXwgTU9ERV9QTFBHU1FMX0xFVCBMZXRTdG10CisJCQl7CisJCQkJTGV0U3RtdCAqbiA9IChMZXRT dG10ICopICQyOworCQkJCW4tPnBscGdzcWxfbW9kZSA9IHRydWU7CisJCQkJcGdfeXlnZXRfZXh0 cmEoeXlzY2FubmVyKS0+cGFyc2V0cmVlID0KKwkJCQkJbGlzdF9tYWtlMShtYWtlUmF3U3RtdCgo Tm9kZSAqKSBuLCAwKSk7CisJCQl9CiAJCTsKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BhcnNlci9wYXJzZXIuYyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZXIuYwppbmRleCAzM2Ew NDA1MDZiLi44ODcyMTJhZWZkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vy LmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlci5jCkBAIC02Miw2ICs2Miw3IEBAIHJh d19wYXJzZXIoY29uc3QgY2hhciAqc3RyLCBSYXdQYXJzZU1vZGUgbW9kZSkKIAkJCVtSQVdfUEFS U0VfUExQR1NRTF9BU1NJR04xXSA9IE1PREVfUExQR1NRTF9BU1NJR04xLAogCQkJW1JBV19QQVJT RV9QTFBHU1FMX0FTU0lHTjJdID0gTU9ERV9QTFBHU1FMX0FTU0lHTjIsCiAJCQlbUkFXX1BBUlNF X1BMUEdTUUxfQVNTSUdOM10gPSBNT0RFX1BMUEdTUUxfQVNTSUdOMywKKwkJCVtSQVdfUEFSU0Vf UExQR1NRTF9MRVRdID0gTU9ERV9QTFBHU1FMX0xFVCwKIAkJfTsKIAogCQl5eWV4dHJhLmhhdmVf bG9va2FoZWFkID0gdHJ1ZTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Np b25fdmFyaWFibGUuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApp bmRleCAzODYzMzBjNjljLi5jYzc1ZWY3ZTE2IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lv bl92YXJpYWJsZS5oCkBAIC0yOCw2ICsyOCw3IEBAIGV4dGVybiB2b2lkIEF0RU9TdWJYYWN0X1Nl c3Npb25WYXJpYWJsZXMoYm9vbCBpc0NvbW1pdCwgU3ViVHJhbnNhY3Rpb25JZCBteVN1YmlkCiAJ CQkJCQkJCQkJIFN1YlRyYW5zYWN0aW9uSWQgcGFyZW50U3ViaWQpOwogCiBleHRlcm4gdm9pZCBT ZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpOwor ZXh0ZXJuIHZvaWQgU2V0U2Vzc2lvblZhcmlhYmxlV2l0aFNlY3VyaXR5Q2hlY2soT2lkIHZhcmlk LCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpOwogZXh0ZXJuIERhdHVtIEdldFNlc3Npb25WYXJp YWJsZShPaWQgdmFyaWQsIGJvb2wgKmlzTnVsbCk7CiBleHRlcm4gRGF0dW0gR2V0U2Vzc2lvblZh cmlhYmxlV2l0aFR5cGVpZChPaWQgdmFyaWQsIGJvb2wgKmlzTnVsbCwgT2lkICp0eXBpZCk7CiAK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRl L25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCAxYTdmNDQzY2U3Li45OTBjZWJiZjA4IDEwMDY0NAot LS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9k ZXMvcGFyc2Vub2Rlcy5oCkBAIC0yMTI0LDYgKzIxMjQsOCBAQCB0eXBlZGVmIHN0cnVjdCBMZXRT dG10CiAJTm9kZVRhZwkJdHlwZTsKIAlMaXN0CSAgICp0YXJnZXQ7CQkJLyogdGFyZ2V0IHZhcmlh YmxlICovCiAJTm9kZQkgICAqcXVlcnk7CQkJLyogc291cmNlIGV4cHJlc3Npb24gKi8KKwlib29s CQlwbHBnc3FsX21vZGU7CS8qIHRydWUsIHdoZW4gY29tbWFuZCB3aWxsIGJlIGV4ZWN1dGVkCisJ CQkJCQkJCSAqIChwYXJzZWQpIGJ5IHBscGdzcWwgcnVudGltZSAqLwogCVBhcnNlTG9jCWxvY2F0 aW9uOwogfSBMZXRTdG10OwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2Vy LmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VyLmgKaW5kZXggMzUwMTk2Y2Q2NC4uYzhkNWU4 ZGJmOSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlci5oCisrKyBiL3NyYy9p bmNsdWRlL3BhcnNlci9wYXJzZXIuaApAQCAtMzMsNiArMzMsOSBAQAogICogUkFXX1BBUlNFX1BM UEdTUUxfQVNTSUdObjogcGFyc2UgYSBQTC9wZ1NRTCBhc3NpZ25tZW50IHN0YXRlbWVudCwKICAq IGFuZCByZXR1cm4gYSBvbmUtZWxlbWVudCBMaXN0IGNvbnRhaW5pbmcgYSBSYXdTdG10IG5vZGUu ICAibiIKICAqIGdpdmVzIHRoZSBudW1iZXIgb2YgZG90dGVkIG5hbWVzIGNvbXByaXNpbmcgdGhl IHRhcmdldCBDb2x1bW5SZWYuCisgKgorICogUkFXX1BBUlNFX1BMUEdTUUxfTEVUOiBwYXJzZSBh IExFVCBzdGF0ZW1lbnQsIGFuZCByZXR1cm4gYQorICogb25lLWVsZW1lbnQgTGlzdCBjb250YWlu aW5nIGEgUmF3U3RtdCBub2RlLgogICovCiB0eXBlZGVmIGVudW0KIHsKQEAgLTQyLDYgKzQ1LDcg QEAgdHlwZWRlZiBlbnVtCiAJUkFXX1BBUlNFX1BMUEdTUUxfQVNTSUdOMSwKIAlSQVdfUEFSU0Vf UExQR1NRTF9BU1NJR04yLAogCVJBV19QQVJTRV9QTFBHU1FMX0FTU0lHTjMsCisJUkFXX1BBUlNF X1BMUEdTUUxfTEVULAogfSBSYXdQYXJzZU1vZGU7CiAKIC8qIFZhbHVlcyBmb3IgdGhlIGJhY2tz bGFzaF9xdW90ZSBHVUMgKi8KZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVj LmMgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCmluZGV4IGU1YjBkYTA0ZTMuLjJiOTJm YjVlZWEgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMKKysrIGIvc3Jj L3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYwpAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgImFj Y2Vzcy90dXBjb252ZXJ0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19wcm9jLmgiCiAjaW5jbHVk ZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWNFeHByLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3Iv c3BpLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvdHN0b3JlUmVjZWl2ZXIuaCIKQEAgLTMyMyw2ICsz MjQsOCBAQCBzdGF0aWMgaW50CWV4ZWNfc3RtdF9jb21taXQoUExwZ1NRTF9leGVjc3RhdGUgKmVz dGF0ZSwKIAkJCQkJCQkgUExwZ1NRTF9zdG10X2NvbW1pdCAqc3RtdCk7CiBzdGF0aWMgaW50CWV4 ZWNfc3RtdF9yb2xsYmFjayhQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLAogCQkJCQkJCSAgIFBM cGdTUUxfc3RtdF9yb2xsYmFjayAqc3RtdCk7CitzdGF0aWMgaW50CWV4ZWNfc3RtdF9sZXQoUExw Z1NRTF9leGVjc3RhdGUgKmVzdGF0ZSwKKwkJCQkJCSAgUExwZ1NRTF9zdG10X2xldCAqbGV0KTsK IAogc3RhdGljIHZvaWQgcGxwZ3NxbF9lc3RhdGVfc2V0dXAoUExwZ1NRTF9leGVjc3RhdGUgKmVz dGF0ZSwKIAkJCQkJCQkJIFBMcGdTUUxfZnVuY3Rpb24gKmZ1bmMsCkBAIC0yMTE2LDYgKzIxMTks MTAgQEAgZXhlY19zdG10cyhQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLCBMaXN0ICpzdG10cykK IAkJCQlyYyA9IGV4ZWNfc3RtdF9yb2xsYmFjayhlc3RhdGUsIChQTHBnU1FMX3N0bXRfcm9sbGJh Y2sgKikgc3RtdCk7CiAJCQkJYnJlYWs7CiAKKwkJCWNhc2UgUExQR1NRTF9TVE1UX0xFVDoKKwkJ CQlyYyA9IGV4ZWNfc3RtdF9sZXQoZXN0YXRlLCAoUExwZ1NRTF9zdG10X2xldCAqKSBzdG10KTsK KwkJCQlicmVhazsKKwogCQkJZGVmYXVsdDoKIAkJCQkvKiBwb2ludCBlcnJfc3RtdCB0byBwYXJl bnQsIHNpbmNlIHRoaXMgb25lIHNlZW1zIGNvcnJ1cHQgKi8KIAkJCQllc3RhdGUtPmVycl9zdG10 ID0gc2F2ZV9lc3RtdDsKQEAgLTQ5OTksNiArNTAwNiw1NSBAQCBleGVjX3N0bXRfcm9sbGJhY2so UExwZ1NRTF9leGVjc3RhdGUgKmVzdGF0ZSwgUExwZ1NRTF9zdG10X3JvbGxiYWNrICpzdG10KQog CXJldHVybiBQTFBHU1FMX1JDX09LOwogfQogCisvKiAtLS0tLS0tLS0tCisgKiBleGVjX3N0bXRf bGV0CQkJRXZhbHVhdGUgYW4gZXhwcmVzc2lvbiBhbmQKKyAqCQkJCQlwdXQgdGhlIHJlc3VsdCBp bnRvIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAqIC0tLS0tLS0tLS0KKyAqLworc3RhdGljIGludAor ZXhlY19zdG10X2xldChQTHBnU1FMX2V4ZWNzdGF0ZSAqZXN0YXRlLCBQTHBnU1FMX3N0bXRfbGV0 ICpzdG10KQoreworCWJvb2wJCWlzTnVsbDsKKwlPaWQJCQl2YWx0eXBlOworCWludDMyCQl2YWx0 eXBtb2Q7CisJRGF0dW0JCXZhbHVlOworCU9pZAkJCXZhcmlkOworCisJTGlzdAkgICAqcGxhbnNv dXJjZXM7CisJQ2FjaGVkUGxhblNvdXJjZSAqcGxhbnNvdXJjZTsKKworCXZhbHVlID0gZXhlY19l dmFsX2V4cHIoZXN0YXRlLAorCQkJCQkJICAgc3RtdC0+ZXhwciwKKwkJCQkJCSAgICZpc051bGws CisJCQkJCQkgICAmdmFsdHlwZSwKKwkJCQkJCSAgICZ2YWx0eXBtb2QpOworCisJLyoKKwkgKiBP aWQgb2YgdGFyZ2V0IHNlc3Npb24gdmFyaWFibGUgaXMgc3RvcmVkIGluIFF1ZXJ5IHN0cnVjdHVy ZS4gSXQgaXMKKwkgKiBzYWZlciB0byByZWFkIHRoaXMgdmFsdWUgZGlyZWN0bHkgZnJvbSB0aGUg cGxhbiB0aGFuIHRvIGhvbGQgdGhpcyB2YWx1ZQorCSAqIGluIHRoZSBwbHBnc3FsIGNvbnRleHQs IGJlY2F1c2UgaXQncyBub3QgbmVjZXNzYXJ5IHRvIGhhbmRsZQorCSAqIGludmFsaWRhdGlvbiBv ZiB0aGUgY2FjaGVkIHZhbHVlLiBOZXh0IG9wZXJhdGlvbnMgYXJlIHJlYWQgb25seSB3aXRob3V0 CisJICogYW55IGFsbG9jYXRpb25zLCBzbyB3ZSBjYW4gZXhwZWN0IHRoYXQgcmV0cmlldmluZyB2 YXJpZCBmcm9tIFF1ZXJ5CisJICogc2hvdWxkIGJlIGZhc3QuCisJICovCisJcGxhbnNvdXJjZXMg PSBTUElfcGxhbl9nZXRfcGxhbl9zb3VyY2VzKHN0bXQtPmV4cHItPnBsYW4pOworCWlmIChsaXN0 X2xlbmd0aChwbGFuc291cmNlcykgIT0gMSkKKwkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgbGVu Z3RoIG9mIHBsYW5zb3VyY2VzIG9mIHF1ZXJ5IGZvciBMRVQgc3RhdGVtZW50Iik7CisKKwlwbGFu c291cmNlID0gKENhY2hlZFBsYW5Tb3VyY2UgKikgbGluaXRpYWwocGxhbnNvdXJjZXMpOworCWlm IChsaXN0X2xlbmd0aChwbGFuc291cmNlLT5xdWVyeV9saXN0KSAhPSAxKQorCQllbG9nKEVSUk9S LCAidW5leHBlY3RlZCBsZW5ndGggb2YgcGxhbnNvdXJjZSBvZiBxdWVyeSBmb3IgTEVUIHN0YXRl bWVudCIpOworCisJdmFyaWQgPSBsaW5pdGlhbF9ub2RlKFF1ZXJ5LCBwbGFuc291cmNlLT5xdWVy eV9saXN0KS0+cmVzdWx0VmFyaWFibGU7CisJaWYgKCFPaWRJc1ZhbGlkKHZhcmlkKSkKKwkJZWxv ZyhFUlJPUiwgIm9pZCBvZiB0YXJnZXQgc2Vzc2lvbiB2YXJpYWJsZSBpcyBub3QgdmFsaWQiKTsK KworCVNldFNlc3Npb25WYXJpYWJsZVdpdGhTZWN1cml0eUNoZWNrKHZhcmlkLCB2YWx1ZSwgaXNO dWxsKTsKKwlleGVjX2V2YWxfY2xlYW51cChlc3RhdGUpOworCisJcmV0dXJuIFBMUEdTUUxfUkNf T0s7Cit9CisKIC8qIC0tLS0tLS0tLS0KICAqIGV4ZWNfYXNzaWduX2V4cHIJCQlQdXQgYW4gZXhw cmVzc2lvbidzIHJlc3VsdCBpbnRvIGEgdmFyaWFibGUuCiAgKiAtLS0tLS0tLS0tCmRpZmYgLS1n aXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZnVuY3MuYyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9w bF9mdW5jcy5jCmluZGV4IDhjODI3ZmU1Y2MuLmY3NDhkZjA0OGMgMTAwNjQ0Ci0tLSBhL3NyYy9w bC9wbHBnc3FsL3NyYy9wbF9mdW5jcy5jCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9mdW5j cy5jCkBAIC0yODgsNiArMjg4LDggQEAgcGxwZ3NxbF9zdG10X3R5cGVuYW1lKFBMcGdTUUxfc3Rt dCAqc3RtdCkKIAkJCXJldHVybiAiQ09NTUlUIjsKIAkJY2FzZSBQTFBHU1FMX1NUTVRfUk9MTEJB Q0s6CiAJCQlyZXR1cm4gIlJPTExCQUNLIjsKKwkJY2FzZSBQTFBHU1FMX1NUTVRfTEVUOgorCQkJ cmV0dXJuICJMRVQiOwogCX0KIAogCXJldHVybiAidW5rbm93biI7CkBAIC0zNzAsNiArMzcyLDcg QEAgc3RhdGljIHZvaWQgZnJlZV9wZXJmb3JtKFBMcGdTUUxfc3RtdF9wZXJmb3JtICpzdG10KTsK IHN0YXRpYyB2b2lkIGZyZWVfY2FsbChQTHBnU1FMX3N0bXRfY2FsbCAqc3RtdCk7CiBzdGF0aWMg dm9pZCBmcmVlX2NvbW1pdChQTHBnU1FMX3N0bXRfY29tbWl0ICpzdG10KTsKIHN0YXRpYyB2b2lk IGZyZWVfcm9sbGJhY2soUExwZ1NRTF9zdG10X3JvbGxiYWNrICpzdG10KTsKK3N0YXRpYyB2b2lk IGZyZWVfbGV0KFBMcGdTUUxfc3RtdF9sZXQgKnN0bXQpOwogc3RhdGljIHZvaWQgZnJlZV9leHBy KFBMcGdTUUxfZXhwciAqZXhwcik7CiAKIApAQCAtNDU5LDYgKzQ2Miw5IEBAIGZyZWVfc3RtdChQ THBnU1FMX3N0bXQgKnN0bXQpCiAJCWNhc2UgUExQR1NRTF9TVE1UX1JPTExCQUNLOgogCQkJZnJl ZV9yb2xsYmFjaygoUExwZ1NRTF9zdG10X3JvbGxiYWNrICopIHN0bXQpOwogCQkJYnJlYWs7CisJ CWNhc2UgUExQR1NRTF9TVE1UX0xFVDoKKwkJCWZyZWVfbGV0KChQTHBnU1FMX3N0bXRfbGV0ICop IHN0bXQpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25p emVkIGNtZF90eXBlOiAlZCIsIHN0bXQtPmNtZF90eXBlKTsKIAkJCWJyZWFrOwpAQCAtNzEzLDYg KzcxOSwxMiBAQCBmcmVlX2dldGRpYWcoUExwZ1NRTF9zdG10X2dldGRpYWcgKnN0bXQpCiB7CiB9 CiAKK3N0YXRpYyB2b2lkCitmcmVlX2xldChQTHBnU1FMX3N0bXRfbGV0ICpzdG10KQoreworCWZy ZWVfZXhwcihzdG10LT5leHByKTsKK30KKwogc3RhdGljIHZvaWQKIGZyZWVfZXhwcihQTHBnU1FM X2V4cHIgKmV4cHIpCiB7CkBAIC04MTUsNiArODI3LDcgQEAgc3RhdGljIHZvaWQgZHVtcF9wZXJm b3JtKFBMcGdTUUxfc3RtdF9wZXJmb3JtICpzdG10KTsKIHN0YXRpYyB2b2lkIGR1bXBfY2FsbChQ THBnU1FMX3N0bXRfY2FsbCAqc3RtdCk7CiBzdGF0aWMgdm9pZCBkdW1wX2NvbW1pdChQTHBnU1FM X3N0bXRfY29tbWl0ICpzdG10KTsKIHN0YXRpYyB2b2lkIGR1bXBfcm9sbGJhY2soUExwZ1NRTF9z dG10X3JvbGxiYWNrICpzdG10KTsKK3N0YXRpYyB2b2lkIGR1bXBfbGV0KFBMcGdTUUxfc3RtdF9s ZXQgKnN0bXQpOwogc3RhdGljIHZvaWQgZHVtcF9leHByKFBMcGdTUUxfZXhwciAqZXhwcik7CiAK IApAQCAtOTE0LDYgKzkyNyw5IEBAIGR1bXBfc3RtdChQTHBnU1FMX3N0bXQgKnN0bXQpCiAJCWNh c2UgUExQR1NRTF9TVE1UX1JPTExCQUNLOgogCQkJZHVtcF9yb2xsYmFjaygoUExwZ1NRTF9zdG10 X3JvbGxiYWNrICopIHN0bXQpOwogCQkJYnJlYWs7CisJCWNhc2UgUExQR1NRTF9TVE1UX0xFVDoK KwkJCWR1bXBfbGV0KChQTHBnU1FMX3N0bXRfbGV0ICopIHN0bXQpOworCQkJYnJlYWs7CiAJCWRl ZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIGNtZF90eXBlOiAlZCIsIHN0bXQt PmNtZF90eXBlKTsKIAkJCWJyZWFrOwpAQCAtMTU5MCw2ICsxNjA2LDE0IEBAIGR1bXBfZ2V0ZGlh ZyhQTHBnU1FMX3N0bXRfZ2V0ZGlhZyAqc3RtdCkKIAlwcmludGYoIlxuIik7CiB9CiAKK3N0YXRp YyB2b2lkCitkdW1wX2xldChQTHBnU1FMX3N0bXRfbGV0ICpzdG10KQoreworCWR1bXBfaW5kKCk7 CisJZHVtcF9leHByKHN0bXQtPmV4cHIpOworCXByaW50ZigiXG4iKTsKK30KKwogc3RhdGljIHZv aWQKIGR1bXBfZXhwcihQTHBnU1FMX2V4cHIgKmV4cHIpCiB7CmRpZmYgLS1naXQgYS9zcmMvcGwv cGxwZ3NxbC9zcmMvcGxfZ3JhbS55IGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2dyYW0ueQppbmRl eCAwNjNlZDgxZjA1Li4zZmU3MGVjMmY2IDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMv cGxfZ3JhbS55CisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9ncmFtLnkKQEAgLTIwNSw3ICsy MDUsNyBAQCBzdGF0aWMJdm9pZAkJCWNoZWNrX3JhaXNlX3BhcmFtZXRlcnMoUExwZ1NRTF9zdG10 X3JhaXNlICpzdG10KTsKICV0eXBlIDxzdG10PglzdG10X3JldHVybiBzdG10X3JhaXNlIHN0bXRf YXNzZXJ0IHN0bXRfZXhlY3NxbAogJXR5cGUgPHN0bXQ+CXN0bXRfZHluZXhlY3V0ZSBzdG10X2Zv ciBzdG10X3BlcmZvcm0gc3RtdF9jYWxsIHN0bXRfZ2V0ZGlhZwogJXR5cGUgPHN0bXQ+CXN0bXRf b3BlbiBzdG10X2ZldGNoIHN0bXRfbW92ZSBzdG10X2Nsb3NlIHN0bXRfbnVsbAotJXR5cGUgPHN0 bXQ+CXN0bXRfY29tbWl0IHN0bXRfcm9sbGJhY2sKKyV0eXBlIDxzdG10PglzdG10X2NvbW1pdCBz dG10X3JvbGxiYWNrIHN0bXRfbGV0CiAldHlwZSA8c3RtdD4Jc3RtdF9jYXNlIHN0bXRfZm9yZWFj aF9hCiAKICV0eXBlIDxsaXN0Pglwcm9jX2V4Y2VwdGlvbnMKQEAgLTMxMiw2ICszMTIsNyBAQCBz dGF0aWMJdm9pZAkJCWNoZWNrX3JhaXNlX3BhcmFtZXRlcnMoUExwZ1NRTF9zdG10X3JhaXNlICpz dG10KTsKICV0b2tlbiA8a2V5d29yZD4JS19JTlRPCiAldG9rZW4gPGtleXdvcmQ+CUtfSVMKICV0 b2tlbiA8a2V5d29yZD4JS19MQVNUCisldG9rZW4gPGtleXdvcmQ+CUtfTEVUCiAldG9rZW4gPGtl eXdvcmQ+CUtfTE9HCiAldG9rZW4gPGtleXdvcmQ+CUtfTE9PUAogJXRva2VuIDxrZXl3b3JkPglL X01FUkdFCkBAIC04ODIsNiArODgzLDggQEAgcHJvY19zdG10CQk6IHBsX2Jsb2NrICc7JwogCQkJ CQkJeyAkJCA9ICQxOyB9CiAJCQkJfCBzdG10X3JvbGxiYWNrCiAJCQkJCQl7ICQkID0gJDE7IH0K KwkJCQl8IHN0bXRfbGV0CisJCQkJCQl7ICQkID0gJDE7IH0KIAkJCQk7CiAKIHN0bXRfcGVyZm9y bQk6IEtfUEVSRk9STQpAQCAtMTAwMCw2ICsxMDAzLDMwIEBAIHN0bXRfYXNzaWduCQk6IFRfREFU VU0KIAkJCQkJfQogCQkJCTsKIAorc3RtdF9sZXQJCTogS19MRVQKKwkJCQkJeworCQkJCQkJUExw Z1NRTF9zdG10X2xldCAqbmV3OworCQkJCQkJUmF3UGFyc2VNb2RlIHBtb2RlOworCisJCQkJCQlw bW9kZSA9IFJBV19QQVJTRV9QTFBHU1FMX0xFVDsKKworCQkJCQkJbmV3ID0gcGFsbG9jMChzaXpl b2YoUExwZ1NRTF9zdG10X2xldCkpOworCQkJCQkJbmV3LT5jbWRfdHlwZSA9IFBMUEdTUUxfU1RN VF9MRVQ7CisJCQkJCQluZXctPmxpbmVubyAgID0gcGxwZ3NxbF9sb2NhdGlvbl90b19saW5lbm8o QDEsIHl5c2Nhbm5lcik7CisJCQkJCQluZXctPnN0bXRpZCA9ICsrcGxwZ3NxbF9jdXJyX2NvbXBp bGUtPm5zdGF0ZW1lbnRzOworCisJCQkJCQkvKiBwdXNoIGJhY2sgdGhlIGhlYWQgbmFtZSB0byBp bmNsdWRlIGl0IGluIHRoZSBzdG10ICovCisJCQkJCQlwbHBnc3FsX3B1c2hfYmFja190b2tlbihL X0xFVCwgJnl5bHZhbCwgJnl5bGxvYywgeXlzY2FubmVyKTsKKwkJCQkJCW5ldy0+ZXhwciA9IHJl YWRfc3FsX2NvbnN0cnVjdCgnOycsIDAsIDAsICI7IiwKKwkJCQkJCQkJCQkJCQkgICBwbW9kZSwK KwkJCQkJCQkJCQkJCQkgICBmYWxzZSwgdHJ1ZSwKKwkJCQkJCQkJCQkJCQkgICBOVUxMLCBOVUxM LAorCQkJCQkJCQkJCQkJCSAgICZ5eWx2YWwsICZ5eWxsb2MsIHl5c2Nhbm5lcik7CisKKwkJCQkJ CSQkID0gKFBMcGdTUUxfc3RtdCAqKW5ldzsKKwkJCQkJfQorCQkJCTsKKwogc3RtdF9nZXRkaWFn CTogS19HRVQgZ2V0ZGlhZ19hcmVhX29wdCBLX0RJQUdOT1NUSUNTIGdldGRpYWdfbGlzdCAnOycK IAkJCQkJewogCQkJCQkJUExwZ1NRTF9zdG10X2dldGRpYWcgKm5ldzsKZGlmZiAtLWdpdCBhL3Ny Yy9wbC9wbHBnc3FsL3NyYy9wbF9yZXNlcnZlZF9rd2xpc3QuaCBiL3NyYy9wbC9wbHBnc3FsL3Ny Yy9wbF9yZXNlcnZlZF9rd2xpc3QuaAppbmRleCBjZTdiMGM5ZDMzLi5lMjY2YmQxY2M0IDEwMDY0 NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfcmVzZXJ2ZWRfa3dsaXN0LmgKKysrIGIvc3Jj L3BsL3BscGdzcWwvc3JjL3BsX3Jlc2VydmVkX2t3bGlzdC5oCkBAIC00MCw2ICs0MCw3IEBAIFBH X0tFWVdPUkQoImZyb20iLCBLX0ZST00pCiBQR19LRVlXT1JEKCJpZiIsIEtfSUYpCiBQR19LRVlX T1JEKCJpbiIsIEtfSU4pCiBQR19LRVlXT1JEKCJpbnRvIiwgS19JTlRPKQorUEdfS0VZV09SRCgi bGV0IiwgS19MRVQpCiBQR19LRVlXT1JEKCJsb29wIiwgS19MT09QKQogUEdfS0VZV09SRCgibm90 IiwgS19OT1QpCiBQR19LRVlXT1JEKCJudWxsIiwgS19OVUxMKQpkaWZmIC0tZ2l0IGEvc3JjL3Bs L3BscGdzcWwvc3JjL3BsX3VucmVzZXJ2ZWRfa3dsaXN0LmggYi9zcmMvcGwvcGxwZ3NxbC9zcmMv cGxfdW5yZXNlcnZlZF9rd2xpc3QuaAppbmRleCA5OGY5OWVjNDcwLi5lZDE0ZmQ4NmMzIDEwMDY0 NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfdW5yZXNlcnZlZF9rd2xpc3QuaAorKysgYi9z cmMvcGwvcGxwZ3NxbC9zcmMvcGxfdW5yZXNlcnZlZF9rd2xpc3QuaApAQCAtNjksNiArNjksNyBA QCBQR19LRVlXT1JEKCJpbmZvIiwgS19JTkZPKQogUEdfS0VZV09SRCgiaW5zZXJ0IiwgS19JTlNF UlQpCiBQR19LRVlXT1JEKCJpcyIsIEtfSVMpCiBQR19LRVlXT1JEKCJsYXN0IiwgS19MQVNUKQor UEdfS0VZV09SRCgibGV0IiwgS19MRVQpCiBQR19LRVlXT1JEKCJsb2ciLCBLX0xPRykKIFBHX0tF WVdPUkQoIm1lcmdlIiwgS19NRVJHRSkKIFBHX0tFWVdPUkQoIm1lc3NhZ2UiLCBLX01FU1NBR0Up CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxwZ3NxbC5oIGIvc3JjL3BsL3BscGdz cWwvc3JjL3BscGdzcWwuaAppbmRleCBjM2NlNDE2MWEzLi45Yjc3YWYzNzM3IDEwMDY0NAotLS0g YS9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxwZ3NxbC5oCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9w bHBnc3FsLmgKQEAgLTEyOCw2ICsxMjgsNyBAQCB0eXBlZGVmIGVudW0gUExwZ1NRTF9zdG10X3R5 cGUKIAlQTFBHU1FMX1NUTVRfQ0FMTCwKIAlQTFBHU1FMX1NUTVRfQ09NTUlULAogCVBMUEdTUUxf U1RNVF9ST0xMQkFDSywKKwlQTFBHU1FMX1NUTVRfTEVULAogfSBQTHBnU1FMX3N0bXRfdHlwZTsK IAogLyoKQEAgLTUyMCw2ICs1MjEsMTcgQEAgdHlwZWRlZiBzdHJ1Y3QgUExwZ1NRTF9zdG10X2Fz c2lnbgogCVBMcGdTUUxfZXhwciAqZXhwcjsKIH0gUExwZ1NRTF9zdG10X2Fzc2lnbjsKIAorLyoK KyAqIExldCBzdGF0ZW1lbnQKKyAqLwordHlwZWRlZiBzdHJ1Y3QgUExwZ1NRTF9zdG10X2xldAor eworCVBMcGdTUUxfc3RtdF90eXBlIGNtZF90eXBlOworCWludAkJCWxpbmVubzsKKwl1bnNpZ25l ZCBpbnQgc3RtdGlkOworCVBMcGdTUUxfZXhwciAqZXhwcjsKK30gUExwZ1NRTF9zdG10X2xldDsK KwogLyoKICAqIFBFUkZPUk0gc3RhdGVtZW50CiAgKi8KZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggZjc3ZjNiODA2Ni4uNzA4NjMwYWUy YSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxl cy5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5v dXQKQEAgLTExMjksOCArMTEyOSw3IEBAIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNl c3Npb24gdmFyaWFibGUgdmFyMQogQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9j b2RlX2Jsb2NrIGxpbmUgMSBhdCBSQUlTRQogRE8gJCQgQkVHSU4gTEVUIHZhcjEuYSA9IHZhcjEu YSArIDEwOyBFTkQgJCQ7CiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZh cmlhYmxlIHZhcjEKLUNPTlRFWFQ6ICBTUUwgc3RhdGVtZW50ICJMRVQgdmFyMS5hID0gdmFyMS5h ICsgMTAiCi1QTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQgU1FM IHN0YXRlbWVudAorQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2Nr IGxpbmUgMSBhdCBMRVQKIFNFVCBST0xFIFRPIERFRkFVTFQ7CiBHUkFOVCBTRUxFQ1QgT04gVkFS SUFCTEUgdmFyMSBUTyByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CiBTRVQgUk9MRSBUTyByZWdyZXNz X3Zhcl90ZXN0X3JvbGU7CkBAIC0xMTc0LDggKzExNzMsNyBAQCBFUlJPUjogIHBlcm1pc3Npb24g ZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKIENPTlRFWFQ6ICBQTC9wZ1NRTCBmdW5j dGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQgUkFJU0UKIERPICQkIEJFR0lOIExFVCB2 YXIxLmEgPSB2YXIxLmEgKyAxMDsgRU5EICQkOwogRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBm b3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCi1DT05URVhUOiAgU1FMIHN0YXRlbWVudCAiTEVUIHZh cjEuYSA9IHZhcjEuYSArIDEwIgotUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sg bGluZSAxIGF0IFNRTCBzdGF0ZW1lbnQKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBmdW5jdGlvbiBpbmxp bmVfY29kZV9ibG9jayBsaW5lIDEgYXQgTEVUCiBTRVQgUk9MRSBUTyBERUZBVUxUOwogRFJPUCBW QVJJQUJMRSB2YXIxOwogRFJPUCBUQUJMRSB2YXJ0ZXN0dGFiOwpkaWZmIC0tZ2l0IGEvc3JjL3Rv b2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMu bGlzdAppbmRleCA0ZGIyMGNiMjY3Li4yMmUzMDljMTQ4IDEwMDY0NAotLS0gYS9zcmMvdG9vbHMv cGdpbmRlbnQvdHlwZWRlZnMubGlzdAorKysgYi9zcmMvdG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMu bGlzdApAQCAtMTg5NCw2ICsxODk0LDcgQEAgUExwZ1NRTF9zdG10X2ZvcnEKIFBMcGdTUUxfc3Rt dF9mb3JzCiBQTHBnU1FMX3N0bXRfZ2V0ZGlhZwogUExwZ1NRTF9zdG10X2lmCitQTHBnU1FMX3N0 bXRfbGV0CiBQTHBnU1FMX3N0bXRfbG9vcAogUExwZ1NRTF9zdG10X29wZW4KIFBMcGdTUUxfc3Rt dF9wZXJmb3JtCi0tIAoyLjQ3LjEKCg== --0000000000007bfa26062b3fa8d1 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250109-0017-allow-parallel-execution-queries-with-session-variab.patch" Content-Disposition: attachment; filename="v20250109-0017-allow-parallel-execution-queries-with-session-variab.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5ox16mn5 RnJvbSAzMTAyMWE3MDhhNjc1ZWFlNDJmMGFlNGM5OTMwZmMyMGEzYjZiZTc5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowODoxNyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTcvMjJdIGFsbG93IHBhcmFsbGVsIGV4ZWN1dGlvbiBxdWVyaWVzIHdpdGggc2Vzc2lvbiB2YXJp YWJsZXMKCi0tLQogZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwgICAgICAgICAgICAgICAgICAg IHwgICA2IC0KIHNyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8 ICAyMyArKysKIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMgICAgICAgICAgICAgICB8 ICAyMCArKy0KIHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jICAgICAgICAgICB8 IDE0NyArKysrKysrKysrKysrKysrKy0KIHNyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVz ZXMuYyAgICAgICAgICB8ICAxOCArLS0KIHNyYy9iYWNrZW5kL3Rjb3AvcHF1ZXJ5LmMgICAgICAg ICAgICAgICAgICAgICB8ICAgMyArCiBzcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmggICAgICAgfCAgIDEgKwogc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhlY2Rlc2MuaCAgICAg ICAgICAgICAgIHwgICA0ICsKIHNyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oICAgICAgICAg ICAgICAgICB8ICAgMSArCiAuLi4vcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5v dXQgICAgfCAgMTIgKy0KIDEwIGZpbGVzIGNoYW5nZWQsIDIwNiBpbnNlcnRpb25zKCspLCAyOSBk ZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcGFyYWxsZWwuc2dtbCBiL2Rv Yy9zcmMvc2dtbC9wYXJhbGxlbC5zZ21sCmluZGV4IDY4M2RlZGU2YWQuLjFjZTlhYmY4NmYgMTAw NjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9wYXJhbGxlbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9w YXJhbGxlbC5zZ21sCkBAIC01MTUsMTIgKzUxNSw2IEBAIEVYUExBSU4gU0VMRUNUICogRlJPTSBw Z2JlbmNoX2FjY291bnRzIFdIRVJFIGZpbGxlciBMSUtFICcleCUnOwogICAgICAgICBQbGFuIG5v ZGVzIHRoYXQgcmVmZXJlbmNlIGEgY29ycmVsYXRlZCA8bGl0ZXJhbD5TdWJQbGFuPC9saXRlcmFs Pi4KICAgICAgIDwvcGFyYT4KICAgICA8L2xpc3RpdGVtPgotCi0gICAgPGxpc3RpdGVtPgotICAg ICAgPHBhcmE+Ci0gICAgICAgIFBsYW4gbm9kZXMgdGhhdCB1c2UgYSBzZXNzaW9uIHZhcmlhYmxl LgotICAgICAgPC9wYXJhPgotICAgIDwvbGlzdGl0ZW0+CiAgIDwvaXRlbWl6ZWRsaXN0PgogCiAg PHNlY3QyIGlkPSJwYXJhbGxlbC1sYWJlbGluZyI+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9u X3ZhcmlhYmxlLmMKaW5kZXggNGYyODRjYzNhOC4uMjEwZDU1YjllNCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwpAQCAtOTk5LDYgKzk5OSwyOSBAQCBHZXRTZXNzaW9u VmFyaWFibGUoT2lkIHZhcmlkLCBib29sICppc051bGwpCiAJcmV0dXJuIGNvcHlfc2Vzc2lvbl92 YXJpYWJsZV92YWx1ZShzdmFyLCBpc051bGwpOwogfQogCisvKgorICogUmV0dXJucyBhIGNvcHkg b2YgdGhlIHZhbHVlIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIChpbiB0aGUgY3VycmVudCBtZW1v cnkKKyAqIGNvbnRleHQpIHBsdXMgdHlwaWQgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUuIFRoZSBj YWxsZXIgaXMgcmVzcG9uc2libGUgZm9yCisgKiBwZXJtaXNzaW9uIGNoZWNrcy4KKyAqLworRGF0 dW0KK0dldFNlc3Npb25WYXJpYWJsZVdpdGhUeXBlaWQoT2lkIHZhcmlkLCBib29sICppc051bGws IE9pZCAqdHlwaWQpCit7CisJU1ZhcmlhYmxlCXN2YXI7CisKKwlzdmFyID0gZ2V0X3Nlc3Npb25f dmFyaWFibGUodmFyaWQpOworCisJKnR5cGlkID0gc3Zhci0+dHlwaWQ7CisKKwkvKgorCSAqIEFs dGhvdWdoICJzdmFyIiBpcyBmcmVzaGx5IHZhbGlkYXRlZCBpbiB0aGlzIHBvaW50LCBzdmFyLT5p c192YWxpZCBjYW4KKwkgKiBiZSBmYWxzZSwgaWYgYW4gaW52YWxpZGF0aW9uIG1lc3NhZ2Ugd2Fz IHByb2Nlc3NlZCBkdXJpbmcgdGhlIGRvbWFpbiBjaGVjay4KKwkgKiBCdXQgdGhlIHZhcmlhYmxl IGFuZCBhbGwgaXRzIGRlcGVuZGVuY2llcyBhcmUgbG9ja2VkIG5vdywgc28gd2UgZG9uJ3QgbmVl ZAorCSAqIHRvIHJlcGVhdCB0aGUgdmFsaWRhdGlvbi4KKwkgKi8KKwlyZXR1cm4gY29weV9zZXNz aW9uX3ZhcmlhYmxlX3ZhbHVlKHN2YXIsIGlzTnVsbCk7Cit9CisKIC8qCiAgKiBBc3NpZ24gdGhl IHJlc3VsdCBvZiB0aGUgZXZhbHVhdGVkIGV4cHJlc3Npb24gdG8gdGhlIHNlc3Npb24gdmFyaWFi bGUKICAqLwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYyBiL3Ny Yy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKaW5kZXggYmI0ZTdiZjA2ZS4uNjFjYmIwMTkw OCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4uYworKysgYi9zcmMv YmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCkBAIC0yMTAsNyArMjEwLDE5IEBAIHN0YW5kYXJk X0V4ZWN1dG9yU3RhcnQoUXVlcnlEZXNjICpxdWVyeURlc2MsIGludCBlZmxhZ3MpCiAJICogICAg YmUgY2hhbmdlZCBpbnNpZGUgcXVlcnkgZXhlY3V0aW9uIHRpbWUsIGFuZCB0aGVuIGEgcmVmZXJl bmNlIHRvCiAJICogICAgcHJldmlvdXNseSByZXR1cm5lZCB2YWx1ZSBjYW4gYmUgY29ycnVwdGVk KS4KIAkgKi8KLQlpZiAocXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+c2Vzc2lvblZhcmlhYmxlcykK KwlpZiAocXVlcnlEZXNjLT5udW1fc2Vzc2lvbl92YXJpYWJsZXMgPiAwKQorCXsKKwkJLyoKKwkJ ICogV2hlbiBhIHBhcmFsbGVsIHF1ZXJ5IG5lZWRzIHRvIGFjY2VzcyBxdWVyeSBwYXJhbWV0ZXJz IChpbmNsdWRpbmcKKwkJICogcmVsYXRlZCBzZXNzaW9uIHZhcmlhYmxlcyksIHRoZW4gcmVsYXRl ZCBzZXNzaW9uIHZhcmlhYmxlcyBhcmUKKwkJICogcmVzdG9yZWQgKGRlc2VyaWFsaXplZCkgaW4g cXVlcnlEZXNjIGFscmVhZHkuIFNvIGp1c3QgcHVzaCBwb2ludGVyCisJCSAqIG9mIHRoaXMgYXJy YXkgdG8gZXhlY3V0b3IncyBlc3RhdGUuCisJCSAqLworCQlBc3NlcnQoSXNQYXJhbGxlbFdvcmtl cigpKTsKKwkJZXN0YXRlLT5lc19zZXNzaW9uX3ZhcmlhYmxlcyA9IHF1ZXJ5RGVzYy0+c2Vzc2lv bl92YXJpYWJsZXM7CisJCWVzdGF0ZS0+ZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzID0gcXVlcnlE ZXNjLT5udW1fc2Vzc2lvbl92YXJpYWJsZXM7CisJfQorCWVsc2UgaWYgKHF1ZXJ5RGVzYy0+cGxh bm5lZHN0bXQtPnNlc3Npb25WYXJpYWJsZXMpCiAJewogCQlpbnQJCQluU2Vzc2lvblZhcmlhYmxl czsKIAkJaW50CQkJaSA9IDA7CkBAIC0yNDksOSArMjYxLDkgQEAgc3RhbmRhcmRfRXhlY3V0b3JT dGFydChRdWVyeURlc2MgKnF1ZXJ5RGVzYywgaW50IGVmbGFncykKIAkJCQkJCQkJICAgZ2V0X3Nl c3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCkpOwogCQkJfQogCi0JCQllc3RhdGUtPmVzX3Nlc3Np b25fdmFyaWFibGVzW2ldLnZhbHVlID0KLQkJCQlHZXRTZXNzaW9uVmFyaWFibGUodmFyaWQsCi0J CQkJCQkJCSAgICZlc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzW2ldLmlzbnVsbCk7CisJCQll c3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzW2ldLnZhbHVlID0gR2V0U2Vzc2lvblZhcmlhYmxl V2l0aFR5cGVpZCh2YXJpZCwKKwkJCQkJCQkJCQkJCSAgICZlc3RhdGUtPmVzX3Nlc3Npb25fdmFy aWFibGVzW2ldLmlzbnVsbCwKKwkJCQkJCQkJCQkJCSAgICZlc3RhdGUtPmVzX3Nlc3Npb25fdmFy aWFibGVzW2ldLnR5cGlkKTsKIAogCQkJaSsrOwogCQl9CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNQYXJh bGxlbC5jCmluZGV4IGZmNGQ5ZGQxYmIuLjgzZTAzOTFhNDQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2V4ZWN1dG9yL2V4ZWNQYXJhbGxlbC5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4 ZWNQYXJhbGxlbC5jCkBAIC0xMiw4ICsxMiw5IEBACiAgKiB3b3JrZXJzIGFuZCBlbnN1cmluZyB0 aGF0IHRoZWlyIHN0YXRlIGdlbmVyYWxseSBtYXRjaGVzIHRoYXQgb2YgdGhlCiAgKiBsZWFkZXI7 IHNlZSBzcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS9SRUFETUUucGFyYWxsZWwgZm9yIGRldGFp bHMuCiAgKiBIb3dldmVyLCB3ZSBtdXN0IHNhdmUgYW5kIHJlc3RvcmUgcmVsZXZhbnQgZXhlY3V0 b3Igc3RhdGUsIHN1Y2ggYXMKLSAqIGFueSBQYXJhbUxpc3RJbmZvIGFzc29jaWF0ZWQgd2l0aCB0 aGUgcXVlcnksIGJ1ZmZlci9XQUwgdXNhZ2UgaW5mbywgYW5kCi0gKiB0aGUgYWN0dWFsIHBsYW4g dG8gYmUgcGFzc2VkIGRvd24gdG8gdGhlIHdvcmtlci4KKyAqIGFueSBQYXJhbUxpc3RJbmZvIGFz c29jaWF0ZWQgd2l0aCB0aGUgcXVlcnksIGJ1ZmZlci9XQUwgdXNhZ2UgaW5mbywKKyAqIHNlc3Np b24gdmFyaWFibGVzIGJ1ZmZlciwgYW5kIHRoZSBhY3R1YWwgcGxhbiB0byBiZSBwYXNzZWQgZG93 biB0bworICogdGhlIHdvcmtlci4KICAqCiAgKiBJREVOVElGSUNBVElPTgogICoJICBzcmMvYmFj a2VuZC9leGVjdXRvci9leGVjUGFyYWxsZWwuYwpAQCAtNjQsNiArNjUsNyBAQAogI2RlZmluZSBQ QVJBTExFTF9LRVlfUVVFUllfVEVYVAkJVUlOVDY0Q09OU1QoMHhFMDAwMDAwMDAwMDAwMDA4KQog I2RlZmluZSBQQVJBTExFTF9LRVlfSklUX0lOU1RSVU1FTlRBVElPTiBVSU5UNjRDT05TVCgweEUw MDAwMDAwMDAwMDAwMDkpCiAjZGVmaW5lIFBBUkFMTEVMX0tFWV9XQUxfVVNBR0UJCQlVSU5UNjRD T05TVCgweEUwMDAwMDAwMDAwMDAwMEEpCisjZGVmaW5lIFBBUkFMTEVMX0tFWV9TRVNTSU9OX1ZB UklBQkxFUwlVSU5UNjRDT05TVCgweEUwMDAwMDAwMDAwMDAwMEIpCiAKICNkZWZpbmUgUEFSQUxM RUxfVFVQTEVfUVVFVUVfU0laRQkJNjU1MzYKIApAQCAtMTM4LDYgKzE0MCwxMiBAQCBzdGF0aWMg Ym9vbCBFeGVjUGFyYWxsZWxSZXRyaWV2ZUluc3RydW1lbnRhdGlvbihQbGFuU3RhdGUgKnBsYW5z dGF0ZSwKIC8qIEhlbHBlciBmdW5jdGlvbiB0aGF0IHJ1bnMgaW4gdGhlIHBhcmFsbGVsIHdvcmtl ci4gKi8KIHN0YXRpYyBEZXN0UmVjZWl2ZXIgKkV4ZWNQYXJhbGxlbEdldFJlY2VpdmVyKGRzbV9z ZWdtZW50ICpzZWcsIHNobV90b2MgKnRvYyk7CiAKKy8qIEhlbHBlciBmdW5jdGlvbnMgdGhhdCBj YW4gcGFzcyB2YWx1ZXMgb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgKi8KK3N0YXRpYyBTaXplIEVzdGlt YXRlU2Vzc2lvblZhcmlhYmxlcyhFU3RhdGUgKmVzdGF0ZSk7CitzdGF0aWMgdm9pZCBTZXJpYWxp emVTZXNzaW9uVmFyaWFibGVzKEVTdGF0ZSAqZXN0YXRlLCBjaGFyICoqc3RhcnRfYWRkcmVzcyk7 CitzdGF0aWMgU2Vzc2lvblZhcmlhYmxlVmFsdWUgKlJlc3RvcmVTZXNzaW9uVmFyaWFibGVzKGNo YXIgKipzdGFydF9hZGRyZXNzLAorCQkJCQkJCQkJCQkJCSBpbnQgKm51bV9zZXNzaW9uX3Zhcmlh Ymxlcyk7CisKIC8qCiAgKiBDcmVhdGUgYSBzZXJpYWxpemVkIHJlcHJlc2VudGF0aW9uIG9mIHRo ZSBwbGFuIHRvIGJlIHNlbnQgdG8gZWFjaCB3b3JrZXIuCiAgKi8KQEAgLTU5Niw2ICs2MDQsNyBA QCBFeGVjSW5pdFBhcmFsbGVsUGxhbihQbGFuU3RhdGUgKnBsYW5zdGF0ZSwgRVN0YXRlICplc3Rh dGUsCiAJY2hhcgkgICAqcHN0bXRfZGF0YTsKIAljaGFyCSAgICpwc3RtdF9zcGFjZTsKIAljaGFy CSAgICpwYXJhbWxpc3RpbmZvX3NwYWNlOworCWNoYXIJICAgKnNlc3Npb25fdmFyaWFibGVzX3Nw YWNlOwogCUJ1ZmZlclVzYWdlICpidWZ1c2FnZV9zcGFjZTsKIAlXYWxVc2FnZSAgICp3YWx1c2Fn ZV9zcGFjZTsKIAlTaGFyZWRFeGVjdXRvckluc3RydW1lbnRhdGlvbiAqaW5zdHJ1bWVudGF0aW9u ID0gTlVMTDsKQEAgLTYwNSw2ICs2MTQsNyBAQCBFeGVjSW5pdFBhcmFsbGVsUGxhbihQbGFuU3Rh dGUgKnBsYW5zdGF0ZSwgRVN0YXRlICplc3RhdGUsCiAJaW50CQkJaW5zdHJ1bWVudGF0aW9uX2xl biA9IDA7CiAJaW50CQkJaml0X2luc3RydW1lbnRhdGlvbl9sZW4gPSAwOwogCWludAkJCWluc3Ry dW1lbnRfb2Zmc2V0ID0gMDsKKwlpbnQJCQlzZXNzaW9uX3ZhcmlhYmxlc19sZW4gPSAwOwogCVNp emUJCWRzYV9taW5zaXplID0gZHNhX21pbmltdW1fc2l6ZSgpOwogCWNoYXIJICAgKnF1ZXJ5X3N0 cmluZzsKIAlpbnQJCQlxdWVyeV9sZW47CkBAIC02NjAsNiArNjcwLDExIEBAIEV4ZWNJbml0UGFy YWxsZWxQbGFuKFBsYW5TdGF0ZSAqcGxhbnN0YXRlLCBFU3RhdGUgKmVzdGF0ZSwKIAlzaG1fdG9j X2VzdGltYXRlX2NodW5rKCZwY3h0LT5lc3RpbWF0b3IsIHBhcmFtbGlzdGluZm9fbGVuKTsKIAlz aG1fdG9jX2VzdGltYXRlX2tleXMoJnBjeHQtPmVzdGltYXRvciwgMSk7CiAKKwkvKiBFc3RpbWF0 ZSBzcGFjZSBmb3Igc2VyaWFsaXplZCBzZXNzaW9uIHZhcmlhYmxlcy4gKi8KKwlzZXNzaW9uX3Zh cmlhYmxlc19sZW4gPSBFc3RpbWF0ZVNlc3Npb25WYXJpYWJsZXMoZXN0YXRlKTsKKwlzaG1fdG9j X2VzdGltYXRlX2NodW5rKCZwY3h0LT5lc3RpbWF0b3IsIHNlc3Npb25fdmFyaWFibGVzX2xlbik7 CisJc2htX3RvY19lc3RpbWF0ZV9rZXlzKCZwY3h0LT5lc3RpbWF0b3IsIDEpOworCiAJLyoKIAkg KiBFc3RpbWF0ZSBzcGFjZSBmb3IgQnVmZmVyVXNhZ2UuCiAJICoKQEAgLTc2MSw2ICs3NzYsMTEg QEAgRXhlY0luaXRQYXJhbGxlbFBsYW4oUGxhblN0YXRlICpwbGFuc3RhdGUsIEVTdGF0ZSAqZXN0 YXRlLAogCXNobV90b2NfaW5zZXJ0KHBjeHQtPnRvYywgUEFSQUxMRUxfS0VZX1BBUkFNTElTVElO Rk8sIHBhcmFtbGlzdGluZm9fc3BhY2UpOwogCVNlcmlhbGl6ZVBhcmFtTGlzdChlc3RhdGUtPmVz X3BhcmFtX2xpc3RfaW5mbywgJnBhcmFtbGlzdGluZm9fc3BhY2UpOwogCisJLyogU3RvcmUgc2Vy aWFsaXplZCBzZXNzaW9uIHZhcmlhYmxlcy4gKi8KKwlzZXNzaW9uX3ZhcmlhYmxlc19zcGFjZSA9 IHNobV90b2NfYWxsb2NhdGUocGN4dC0+dG9jLCBzZXNzaW9uX3ZhcmlhYmxlc19sZW4pOworCXNo bV90b2NfaW5zZXJ0KHBjeHQtPnRvYywgUEFSQUxMRUxfS0VZX1NFU1NJT05fVkFSSUFCTEVTLCBz ZXNzaW9uX3ZhcmlhYmxlc19zcGFjZSk7CisJU2VyaWFsaXplU2Vzc2lvblZhcmlhYmxlcyhlc3Rh dGUsICZzZXNzaW9uX3ZhcmlhYmxlc19zcGFjZSk7CisKIAkvKiBBbGxvY2F0ZSBzcGFjZSBmb3Ig ZWFjaCB3b3JrZXIncyBCdWZmZXJVc2FnZTsgbm8gbmVlZCB0byBpbml0aWFsaXplLiAqLwogCWJ1 ZnVzYWdlX3NwYWNlID0gc2htX3RvY19hbGxvY2F0ZShwY3h0LT50b2MsCiAJCQkJCQkJCQkgIG11 bF9zaXplKHNpemVvZihCdWZmZXJVc2FnZSksIHBjeHQtPm53b3JrZXJzKSk7CkBAIC0xNDExLDYg KzE0MzEsNyBAQCBQYXJhbGxlbFF1ZXJ5TWFpbihkc21fc2VnbWVudCAqc2VnLCBzaG1fdG9jICp0 b2MpCiAJU2hhcmVkSml0SW5zdHJ1bWVudGF0aW9uICpqaXRfaW5zdHJ1bWVudGF0aW9uOwogCWlu dAkJCWluc3RydW1lbnRfb3B0aW9ucyA9IDA7CiAJdm9pZAkgICAqYXJlYV9zcGFjZTsKKwljaGFy CSAgICpzZXNzaW9udmFyaWFibGVfc3BhY2U7CiAJZHNhX2FyZWEgICAqYXJlYTsKIAlQYXJhbGxl bFdvcmtlckNvbnRleHQgcHdjeHQ7CiAKQEAgLTE0MzYsNiArMTQ1NywxNCBAQCBQYXJhbGxlbFF1 ZXJ5TWFpbihkc21fc2VnbWVudCAqc2VnLCBzaG1fdG9jICp0b2MpCiAJYXJlYV9zcGFjZSA9IHNo bV90b2NfbG9va3VwKHRvYywgUEFSQUxMRUxfS0VZX0RTQSwgZmFsc2UpOwogCWFyZWEgPSBkc2Ff YXR0YWNoX2luX3BsYWNlKGFyZWFfc3BhY2UsIHNlZyk7CiAKKwkvKiBSZWNvbnN0cnVjdCBzZXNz aW9uIHZhcmlhYmxlcy4gKi8KKwlzZXNzaW9udmFyaWFibGVfc3BhY2UgPSBzaG1fdG9jX2xvb2t1 cCh0b2MsCisJCQkJCQkJCQkJICAgUEFSQUxMRUxfS0VZX1NFU1NJT05fVkFSSUFCTEVTLAorCQkJ CQkJCQkJCSAgIGZhbHNlKTsKKwlxdWVyeURlc2MtPnNlc3Npb25fdmFyaWFibGVzID0KKwkJUmVz dG9yZVNlc3Npb25WYXJpYWJsZXMoJnNlc3Npb252YXJpYWJsZV9zcGFjZSwKKwkJCQkJCQkJJnF1 ZXJ5RGVzYy0+bnVtX3Nlc3Npb25fdmFyaWFibGVzKTsKKwogCS8qIFN0YXJ0IHVwIHRoZSBleGVj dXRvciAqLwogCXF1ZXJ5RGVzYy0+cGxhbm5lZHN0bXQtPmppdEZsYWdzID0gZnBlcy0+aml0X2Zs YWdzOwogCUV4ZWN1dG9yU3RhcnQocXVlcnlEZXNjLCBmcGVzLT5lZmxhZ3MpOwpAQCAtMTUwMywz ICsxNTMyLDExNyBAQCBQYXJhbGxlbFF1ZXJ5TWFpbihkc21fc2VnbWVudCAqc2VnLCBzaG1fdG9j ICp0b2MpCiAJRnJlZVF1ZXJ5RGVzYyhxdWVyeURlc2MpOwogCXJlY2VpdmVyLT5yRGVzdHJveShy ZWNlaXZlcik7CiB9CisKKy8qCisgKiBFc3RpbWF0ZSB0aGUgYW1vdW50IG9mIHNwYWNlIHJlcXVp cmVkIHRvIHNlcmlhbGl6ZSBhIHNlc3Npb24gdmFyaWFibGUuCisgKi8KK3N0YXRpYyBTaXplCitF c3RpbWF0ZVNlc3Npb25WYXJpYWJsZXMoRVN0YXRlICplc3RhdGUpCit7CisJaW50CQkJaTsKKwlT aXplCQlzeiA9IHNpemVvZihpbnQpOworCisJaWYgKGVzdGF0ZS0+ZXNfc2Vzc2lvbl92YXJpYWJs ZXMgPT0gTlVMTCkKKwkJcmV0dXJuIHN6OworCisJZm9yIChpID0gMDsgaSA8IGVzdGF0ZS0+ZXNf bnVtX3Nlc3Npb25fdmFyaWFibGVzOyBpKyspCisJeworCQlTZXNzaW9uVmFyaWFibGVWYWx1ZSAq c3ZhcnZhbDsKKwkJT2lkCQkJdHlwZU9pZDsKKwkJaW50MTYJCXR5cExlbjsKKwkJYm9vbAkJdHlw QnlWYWw7CisKKwkJc3ZhcnZhbCA9ICZlc3RhdGUtPmVzX3Nlc3Npb25fdmFyaWFibGVzW2ldOwor CisJCXR5cGVPaWQgPSBzdmFydmFsLT50eXBpZDsKKworCQlzeiA9IGFkZF9zaXplKHN6LCBzaXpl b2YoT2lkKSk7IC8qIHNwYWNlIGZvciB0eXBlIE9JRCAqLworCisJCS8qIHNwYWNlIGZvciBkYXR1 bS9pc251bGwgKi8KKwkJQXNzZXJ0KE9pZElzVmFsaWQodHlwZU9pZCkpOworCQlnZXRfdHlwbGVu Ynl2YWwodHlwZU9pZCwgJnR5cExlbiwgJnR5cEJ5VmFsKTsKKworCQlzeiA9IGFkZF9zaXplKHN6 LAorCQkJCQkgIGRhdHVtRXN0aW1hdGVTcGFjZShzdmFydmFsLT52YWx1ZSwgc3ZhcnZhbC0+aXNu dWxsLCB0eXBCeVZhbCwgdHlwTGVuKSk7CisJfQorCisJcmV0dXJuIHN6OworfQorCisvKgorICog U2VyaWFsaXplIGEgc2Vzc2lvbiB2YXJpYWJsZXMgYnVmZmVyIGludG8gY2FsbGVyLXByb3ZpZGVk IHN0b3JhZ2UuCisgKgorICogV2Ugd3JpdGUgdGhlIG51bWJlciBvZiBwYXJhbWV0ZXJzIGZpcnN0 LCBhcyBhIDQtYnl0ZSBpbnRlZ2VyLCBhbmQgdGhlbgorICogd3JpdGUgZGV0YWlscyBmb3IgZWFj aCBwYXJhbWV0ZXIgaW4gdHVybi4gIFRoZSBkZXRhaWxzIGZvciBlYWNoIHBhcmFtZXRlcgorICog Y29uc2lzdCBvZiBhIDQtYnl0ZSB0eXBlIE9JRCwgYW5kIHRoZW4gdGhlIGRhdHVtIGFzIHNlcmlh bGl6ZWQgYnkKKyAqIGRhdHVtU2VyaWFsaXplKCkuICBUaGUgY2FsbGVyIGlzIHJlc3BvbnNpYmxl IGZvciBlbnN1cmluZyB0aGF0IHRoZXJlIGlzCisgKiBlbm91Z2ggc3RvcmFnZSB0byBzdG9yZSB0 aGUgbnVtYmVyIG9mIGJ5dGVzIHRoYXQgd2lsbCBiZSB3cml0dGVuOyB1c2UKKyAqIEVzdGltYXRl U2Vzc2lvblZhcmlhYmxlcyB0byBmaW5kIG91dCBob3cgbWFueSB3aWxsIGJlIG5lZWRlZC4KKyAq ICpzdGFydF9hZGRyZXNzIGlzIHVwZGF0ZWQgdG8gcG9pbnQgdG8gdGhlIGJ5dGUgaW1tZWRpYXRl bHkgZm9sbG93aW5nIHRob3NlCisgKiB3cml0dGVuLgorICoKKyAqIFJlc3RvcmVTZXNzaW9uVmFy aWFibGVzIGNhbiBiZSB1c2VkIHRvIHJlY3JlYXRlIGEgc2Vzc2lvbiB2YXJpYWJsZSBidWZmZXIK KyAqIGJhc2VkIG9uIHRoZSBzZXJpYWxpemVkIHJlcHJlc2VudGF0aW9uOworICovCitzdGF0aWMg dm9pZAorU2VyaWFsaXplU2Vzc2lvblZhcmlhYmxlcyhFU3RhdGUgKmVzdGF0ZSwgY2hhciAqKnN0 YXJ0X2FkZHJlc3MpCit7CisJaW50CQkJbnBhcmFtczsKKwlpbnQJCQlpOworCisJLyogV3JpdGUg bnVtYmVyIG9mIHBhcmFtZXRlcnMuICovCisJbnBhcmFtcyA9IGVzdGF0ZS0+ZXNfbnVtX3Nlc3Np b25fdmFyaWFibGVzOworCW1lbWNweSgqc3RhcnRfYWRkcmVzcywgJm5wYXJhbXMsIHNpemVvZihp bnQpKTsKKwkqc3RhcnRfYWRkcmVzcyArPSBzaXplb2YoaW50KTsKKworCS8qIFdyaXRlIGVhY2gg cGFyYW1ldGVyIGluIHR1cm4uICovCisJZm9yIChpID0gMDsgaSA8IG5wYXJhbXM7IGkrKykKKwl7 CisJCVNlc3Npb25WYXJpYWJsZVZhbHVlICpzdmFydmFsOworCQlPaWQJCQl0eXBlT2lkOworCQlp bnQxNgkJdHlwTGVuOworCQlib29sCQl0eXBCeVZhbDsKKworCQlzdmFydmFsID0gJmVzdGF0ZS0+ ZXNfc2Vzc2lvbl92YXJpYWJsZXNbaV07CisJCXR5cGVPaWQgPSBzdmFydmFsLT50eXBpZDsKKwor CQkvKiBXcml0ZSB0eXBlIE9JRC4gKi8KKwkJbWVtY3B5KCpzdGFydF9hZGRyZXNzLCAmdHlwZU9p ZCwgc2l6ZW9mKE9pZCkpOworCQkqc3RhcnRfYWRkcmVzcyArPSBzaXplb2YoT2lkKTsKKworCQlB c3NlcnQoT2lkSXNWYWxpZCh0eXBlT2lkKSk7CisJCWdldF90eXBsZW5ieXZhbCh0eXBlT2lkLCAm dHlwTGVuLCAmdHlwQnlWYWwpOworCisJCWRhdHVtU2VyaWFsaXplKHN2YXJ2YWwtPnZhbHVlLCBz dmFydmFsLT5pc251bGwsIHR5cEJ5VmFsLCB0eXBMZW4sCisJCQkJCSAgIHN0YXJ0X2FkZHJlc3Mp OworCX0KK30KKworc3RhdGljIFNlc3Npb25WYXJpYWJsZVZhbHVlICoKK1Jlc3RvcmVTZXNzaW9u VmFyaWFibGVzKGNoYXIgKipzdGFydF9hZGRyZXNzLCBpbnQgKm51bV9zZXNzaW9uX3ZhcmlhYmxl cykKK3sKKwlTZXNzaW9uVmFyaWFibGVWYWx1ZSAqc2Vzc2lvbl92YXJpYWJsZXM7CisJaW50CQkJ aTsKKwlpbnQJCQlucGFyYW1zOworCisJbWVtY3B5KCZucGFyYW1zLCAqc3RhcnRfYWRkcmVzcywg c2l6ZW9mKGludCkpOworCSpzdGFydF9hZGRyZXNzICs9IHNpemVvZihpbnQpOworCisJKm51bV9z ZXNzaW9uX3ZhcmlhYmxlcyA9IG5wYXJhbXM7CisJc2Vzc2lvbl92YXJpYWJsZXMgPSAoU2Vzc2lv blZhcmlhYmxlVmFsdWUgKikKKwkJcGFsbG9jKG5wYXJhbXMgKiBzaXplb2YoU2Vzc2lvblZhcmlh YmxlVmFsdWUpKTsKKworCWZvciAoaSA9IDA7IGkgPCBucGFyYW1zOyBpKyspCisJeworCQlTZXNz aW9uVmFyaWFibGVWYWx1ZSAqc3ZhcnZhbCA9ICZzZXNzaW9uX3ZhcmlhYmxlc1tpXTsKKworCQkv KiBSZWFkIHR5cGUgT0lELiAqLworCQltZW1jcHkoJnN2YXJ2YWwtPnR5cGlkLCAqc3RhcnRfYWRk cmVzcywgc2l6ZW9mKE9pZCkpOworCQkqc3RhcnRfYWRkcmVzcyArPSBzaXplb2YoT2lkKTsKKwor CQkvKiBSZWFkIGRhdHVtL2lzbnVsbC4gKi8KKwkJc3ZhcnZhbC0+dmFsdWUgPSBkYXR1bVJlc3Rv cmUoc3RhcnRfYWRkcmVzcywgJnN2YXJ2YWwtPmlzbnVsbCk7CisJfQorCisJcmV0dXJuIHNlc3Np b25fdmFyaWFibGVzOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwv Y2xhdXNlcy5jIGIvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCmluZGV4IDJi YzNiMWY1MjAuLjZhNzY0Y2NkOGQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91 dGlsL2NsYXVzZXMuYworKysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMK QEAgLTkyMywyNSArOTIzLDE5IEBAIG1heF9wYXJhbGxlbF9oYXphcmRfd2Fsa2VyKE5vZGUgKm5v ZGUsIG1heF9wYXJhbGxlbF9oYXphcmRfY29udGV4dCAqY29udGV4dCkKIAogCS8qCiAJICogV2Ug Y2FuJ3QgcGFzcyBQYXJhbXMgdG8gd29ya2VycyBhdCB0aGUgbW9tZW50IGVpdGhlciwgc28gdGhl eSBhcmUgYWxzbwotCSAqIHBhcmFsbGVsLXJlc3RyaWN0ZWQsIHVubGVzcyB0aGV5IGFyZSBQQVJB TV9FWFRFUk4gUGFyYW1zIG9yIGFyZQotCSAqIFBBUkFNX0VYRUMgUGFyYW1zIGxpc3RlZCBpbiBz YWZlX3BhcmFtX2lkcywgbWVhbmluZyB0aGV5IGNvdWxkIGJlCi0JICogZWl0aGVyIGdlbmVyYXRl ZCB3aXRoaW4gd29ya2VycyBvciBjYW4gYmUgY29tcHV0ZWQgYnkgdGhlIGxlYWRlciBhbmQKLQkg KiB0aGVuIHRoZWlyIHZhbHVlIGNhbiBiZSBwYXNzZWQgdG8gd29ya2Vycy4KKwkgKiBwYXJhbGxl bC1yZXN0cmljdGVkLCB1bmxlc3MgdGhleSBhcmUgUEFSQU1fRVhURVJOIG9yIFBBUkFNX1ZBUklB QkxFCisJICogUGFyYW1zIG9yIGFyZSBQQVJBTV9FWEVDIFBhcmFtcyBsaXN0ZWQgaW4gc2FmZV9w YXJhbV9pZHMsIG1lYW5pbmcgdGhleQorCSAqIGNvdWxkIGJlIGVpdGhlciBnZW5lcmF0ZWQgd2l0 aGluIHdvcmtlcnMgb3IgY2FuIGJlIGNvbXB1dGVkIGJ5IHRoZQorCSAqIGxlYWRlciBhbmQgdGhl biB0aGVpciB2YWx1ZSBjYW4gYmUgcGFzc2VkIHRvIHdvcmtlcnMuCiAJICovCiAJZWxzZSBpZiAo SXNBKG5vZGUsIFBhcmFtKSkKIAl7CiAJCVBhcmFtCSAgICpwYXJhbSA9IChQYXJhbSAqKSBub2Rl OwogCi0JCWlmIChwYXJhbS0+cGFyYW1raW5kID09IFBBUkFNX0VYVEVSTikKKwkJaWYgKHBhcmFt LT5wYXJhbWtpbmQgPT0gUEFSQU1fRVhURVJOIHx8CisJCQlwYXJhbS0+cGFyYW1raW5kID09IFBB UkFNX1ZBUklBQkxFKQogCQkJcmV0dXJuIGZhbHNlOwogCi0JCS8qIHdlIGRvbid0IHN1cHBvcnQg cGFzc2luZyBzZXNzaW9uIHZhcmlhYmxlcyB0byB3b3JrZXJzICovCi0JCWlmIChwYXJhbS0+cGFy YW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQotCQl7Ci0JCQlpZiAobWF4X3BhcmFsbGVsX2hhemFy ZF90ZXN0KFBST1BBUkFMTEVMX1JFU1RSSUNURUQsIGNvbnRleHQpKQotCQkJCXJldHVybiB0cnVl OwotCQl9Ci0KIAkJaWYgKHBhcmFtLT5wYXJhbWtpbmQgIT0gUEFSQU1fRVhFQyB8fAogCQkJIWxp c3RfbWVtYmVyX2ludChjb250ZXh0LT5zYWZlX3BhcmFtX2lkcywgcGFyYW0tPnBhcmFtaWQpKQog CQl7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC90Y29wL3BxdWVyeS5jIGIvc3JjL2JhY2tlbmQv dGNvcC9wcXVlcnkuYwppbmRleCA2ZjIyNDk2MzA1Li42ZjliZDdjOGIwIDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC90Y29wL3BxdWVyeS5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvcHF1ZXJ5LmMK QEAgLTg2LDYgKzg2LDkgQEAgQ3JlYXRlUXVlcnlEZXNjKFBsYW5uZWRTdG10ICpwbGFubmVkc3Rt dCwKIAlxZC0+cXVlcnlFbnYgPSBxdWVyeUVudjsKIAlxZC0+aW5zdHJ1bWVudF9vcHRpb25zID0g aW5zdHJ1bWVudF9vcHRpb25zOwkvKiBpbnN0cnVtZW50YXRpb24gd2FudGVkPyAqLwogCisJcWQt Pm51bV9zZXNzaW9uX3ZhcmlhYmxlcyA9IDA7CisJcWQtPnNlc3Npb25fdmFyaWFibGVzID0gTlVM TDsKKwogCS8qIG51bGwgdGhlc2UgZmllbGRzIHVudGlsIHNldCBieSBFeGVjdXRvclN0YXJ0ICov CiAJcWQtPnR1cERlc2MgPSBOVUxMOwogCXFkLT5lc3RhdGUgPSBOVUxMOwpkaWZmIC0tZ2l0IGEv c3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCmluZGV4IDc3NGIzOWYyZjkuLjM4NjMzMGM2OWMgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaAorKysgYi9z cmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKQEAgLTI5LDYgKzI5LDcgQEAg ZXh0ZXJuIHZvaWQgQXRFT1N1YlhhY3RfU2Vzc2lvblZhcmlhYmxlcyhib29sIGlzQ29tbWl0LCBT dWJUcmFuc2FjdGlvbklkIG15U3ViaWQKIAogZXh0ZXJuIHZvaWQgU2V0U2Vzc2lvblZhcmlhYmxl KE9pZCB2YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKTsKIGV4dGVybiBEYXR1bSBHZXRT ZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBib29sICppc051bGwpOworZXh0ZXJuIERhdHVtIEdl dFNlc3Npb25WYXJpYWJsZVdpdGhUeXBlaWQoT2lkIHZhcmlkLCBib29sICppc051bGwsIE9pZCAq dHlwaWQpOwogCiBleHRlcm4gdm9pZCBFeGVjdXRlTGV0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUs IExldFN0bXQgKnN0bXQsIFBhcmFtTGlzdEluZm8gcGFyYW1zLAogCQkJCQkJICAgUXVlcnlFbnZp cm9ubWVudCAqcXVlcnlFbnYsIFF1ZXJ5Q29tcGxldGlvbiAqcWMpOwpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvZXhlY3V0b3IvZXhlY2Rlc2MuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNk ZXNjLmgKaW5kZXggODZkYjNkYzhkMC4uNGUwZmEzZWE0MCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1 ZGUvZXhlY3V0b3IvZXhlY2Rlc2MuaAorKysgYi9zcmMvaW5jbHVkZS9leGVjdXRvci9leGVjZGVz Yy5oCkBAIC01MSw2ICs1MSwxMCBAQCB0eXBlZGVmIHN0cnVjdCBRdWVyeURlc2MKIAkvKiBUaGlz IGZpZWxkIGlzIHNldCBieSBFeGVjdXRlUGxhbiAqLwogCWJvb2wJCWFscmVhZHlfZXhlY3V0ZWQ7 CS8qIHRydWUgaWYgcHJldmlvdXNseSBleGVjdXRlZCAqLwogCisJLyogcmVmZXJlbmNlIHRvIHNl c3Npb24gdmFyaWFibGVzIGJ1ZmZlciAqLworCWludAkJCW51bV9zZXNzaW9uX3ZhcmlhYmxlczsK KwlTZXNzaW9uVmFyaWFibGVWYWx1ZSAqc2Vzc2lvbl92YXJpYWJsZXM7CisKIAkvKiBUaGlzIGlz IGFsd2F5cyBzZXQgTlVMTCBieSB0aGUgY29yZSBzeXN0ZW0sIGJ1dCBwbHVnaW5zIGNhbiBjaGFu Z2UgaXQgKi8KIAlzdHJ1Y3QgSW5zdHJ1bWVudGF0aW9uICp0b3RhbHRpbWU7CS8qIHRvdGFsIHRp bWUgc3BlbnQgaW4gRXhlY3V0b3JSdW4gKi8KIH0gUXVlcnlEZXNjOwpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvbm9kZXMvZXhlY25vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMu aAppbmRleCA4MzY0YTEwOWUzLi40MWE0NDE4MzRiIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9u b2Rlcy9leGVjbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9leGVjbm9kZXMuaApAQCAt NjIzLDYgKzYyMyw3IEBAIHR5cGVkZWYgc3RydWN0IEFzeW5jUmVxdWVzdAogICovCiB0eXBlZGVm IHN0cnVjdCBTZXNzaW9uVmFyaWFibGVWYWx1ZQogeworCU9pZAkJCXR5cGlkOwogCWJvb2wJCWlz bnVsbDsKIAlEYXR1bQkJdmFsdWU7CiB9IFNlc3Npb25WYXJpYWJsZVZhbHVlOwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRleCBiNWFiMDU4 NDBhLi5mNzdmM2I4MDY2IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nl c3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Np b25fdmFyaWFibGVzLm91dApAQCAtMTI4NCwxMiArMTI4NCwxNCBAQCBTRUxFQ1QgY291bnQoKikg RlJPTSBzdmFyX3Rlc3QgV0hFUkUgYSUxMCA9IHplcm87CiAKIC0tIHBhcmFsbGVsIGV4ZWN1dGlv biBpcyBub3Qgc3VwcG9ydGVkIHlldAogRVhQTEFJTiAoQ09TVFMgT0ZGKSBTRUxFQ1QgY291bnQo KikgRlJPTSBzdmFyX3Rlc3QgV0hFUkUgYSUxMCA9IHplcm87Ci0gICAgICAgICAgICBRVUVSWSBQ TEFOICAgICAgICAgICAgIAotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAg ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogIEFnZ3JlZ2F0ZQotICAgLT4gIFNlcSBT Y2FuIG9uIHN2YXJfdGVzdAotICAgICAgICAgRmlsdGVyOiAoKGEgJSAxMCkgPSB6ZXJvKQotKDMg cm93cykKKyAgIC0+ICBHYXRoZXIKKyAgICAgICAgIFdvcmtlcnMgUGxhbm5lZDogMgorICAgICAg ICAgLT4gIFBhcmFsbGVsIFNlcSBTY2FuIG9uIHN2YXJfdGVzdAorICAgICAgICAgICAgICAgRmls dGVyOiAoKGEgJSAxMCkgPSB6ZXJvKQorKDUgcm93cykKIAogTEVUIHplcm8gPSAoU0VMRUNUIGNv dW50KCopIEZST00gc3Zhcl90ZXN0KTsKIC0tIHJlc3VsdCBzaG91bGQgYmUgMTAwMAotLSAKMi40 Ny4xCgo= --0000000000007bfa26062b3fa8d1 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250109-0016-allow-read-an-value-of-session-variable-directly-fro.patch" Content-Disposition: attachment; filename="v20250109-0016-allow-read-an-value-of-session-variable-directly-fro.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5ox16mv6 RnJvbSA1YTUxZmE4MDI4NjNlOWIyODg2OTc0OTUwNzZlOTY1NzlhNjRiYmEwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowNzowMyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTYvMjJdIGFsbG93IHJlYWQgYW4gdmFsdWUgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBkaXJlY3RseSBm cm9tCiBleHByZXNzaW9uIGV4ZWN1dG9yCgpUaGUgZXhwcmVzc2lvbiBleGVjdXRvciBjYW4gYmUg Y2FsbGVkIGRpcmVjdGx5IChub3QgaW5zaWRlIHF1ZXJ5IGV4ZWN1dG9yKQp3aGVuIGV4cHJlc3Np b24gaXMgZXZhbHVhdGVkIGFzIHNpbXBsZSBleHByZXNzaW9uIGluIHBscGdzcWwgb3Igd2hlbiBl eHByZXNzaW9uCmlzIGFuIGFyZ3VtZW50IG9mIENBTEwgb3IgRVhFQ1VURSBzdGF0ZW1lbnRzLiBG b3IgdGhlc2UgY2FzZXMgd2UgbmVlZCB0byBhbGxvdyBkaXJlY3QKYWNjZXNzIHRvIGNvbnRlbnQg b2Ygc2Vzc2lvbiB2YXJpYWJsZXMgZnJvbSBleGVjdXRvci4gV2UgY2FuIGRvIGl0LCBiZWNhdXNl CndlIGtub3cgc28gdGhlIGV4cHJlc3Npb24gaXMgbm90IGV2YWx1YXRlZCB1bmRlciBxdWVyeSBh bmQgY2Fubm90IGJlCmV2YWx1YXRlZCBpbnNpZGUgcGFyYWxsZWwgd29ya2VyLgoKVGhpcyBwYXRj aCBlbmFibGVzIHNlc3Npb24gdmFyaWFibGVzIGZvciBzaW1wbGUgZXhwcmVzc2lvbiBldmFsdWF0 aW9uLgoKVGhpcyBwYXRjaCBlbmFibGVzIHVzYWdlIHNlc3Npb24gdmFyaWFibGVzIGluIGFyZ3Vt ZW50cyBvZiBDQUxMIHN0bXQuCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jICAg ICAgICAgICAgICAgIHwgMTAgLS0tCiBzcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jICAg ICAgICAgICAgICAgfCA4NSArKysrKysrKysrKysrKystLS0tCiBzcmMvYmFja2VuZC9leGVjdXRv ci9leGVjRXhwckludGVycC5jICAgICAgICAgfCAxNCArKysKIHNyYy9iYWNrZW5kL2ppdC9sbHZt L2xsdm1qaXRfZXhwci5jICAgICAgICAgICB8ICA2ICsrCiBzcmMvYmFja2VuZC9wYXJzZXIvYW5h bHl6ZS5jICAgICAgICAgICAgICAgICAgfCAxMCAtLS0KIHNyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4 ZWNFeHByLmggICAgICAgICAgICAgICB8IDExICsrLQogLi4uL3NyYy9leHBlY3RlZC9wbHBnc3Fs X3Nlc3Npb25fdmFyaWFibGUub3V0IHwgIDMgKy0KIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVj LmMgICAgICAgICAgICAgICAgICB8ICAzICstCiAuLi4vcmVncmVzcy9leHBlY3RlZC9zZXNzaW9u X3ZhcmlhYmxlcy5vdXQgICAgfCA0MSArKysrLS0tLS0KIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nl c3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDEyICstLQogMTAgZmlsZXMgY2hhbmdlZCwgMTI1IGlu c2VydGlvbnMoKyksIDcwIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2Nv bW1hbmRzL3ByZXBhcmUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYwppbmRleCA0 ZWEyYmZlYTRlLi43MGYwMzA5OTk5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9w cmVwYXJlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFyZS5jCkBAIC0zMzgsMTYg KzMzOCw2IEBAIEV2YWx1YXRlUGFyYW1zKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUHJlcGFyZWRTdGF0 ZW1lbnQgKnBzdG10LCBMaXN0ICpwYXJhbXMsCiAJCWkrKzsKIAl9CiAKLQkvKgotCSAqIFRoZSBh cmd1bWVudHMgb2YgRVhFQ1VURSBhcmUgZXZhbHVhdGVkIGJ5IGEgZGlyZWN0IGV4cHJlc3Npb24K LQkgKiBleGVjdXRvciBjYWxsLiAgVGhpcyBtb2RlIGRvZXNuJ3Qgc3VwcG9ydCBzZXNzaW9uIHZh cmlhYmxlcyB5ZXQuCi0JICogSXQgd2lsbCBiZSBlbmFibGVkIGxhdGVyLgotCSAqLwotCWlmIChw c3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlcykKLQkJZXJlcG9ydChFUlJPUiwKLQkJCQkoZXJy Y29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCi0JCQkJIGVycm1zZygic2Vzc2lv biB2YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVudCIpKSk7Ci0KIAkvKiBQcmVw YXJlIHRoZSBleHByZXNzaW9ucyBmb3IgZXhlY3V0aW9uICovCiAJZXhwcnN0YXRlcyA9IEV4ZWNQ cmVwYXJlRXhwckxpc3QocGFyYW1zLCBlc3RhdGUpOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9leGVjdXRvci9leGVjRXhwci5jIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwpp bmRleCAxMzM0ODQyMzk5Li5iY2I0MjVlYTMyIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVj dXRvci9leGVjRXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKQEAg LTM0LDYgKzM0LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL29iamVjdGFjY2Vzcy5oIgogI2luY2x1 ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgorI2lu Y2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9u X3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvZXhlY0V4cHIuaCIKICNpbmNsdWRlICJl eGVjdXRvci9ub2RlU3VicGxhbi5oIgpAQCAtMTAwOCwyMiArMTAwOSw3NCBAQCBFeGVjSW5pdEV4 cHJSZWMoRXhwciAqbm9kZSwgRXhwclN0YXRlICpzdGF0ZSwKIAkJCQkJCQkJZXNfbnVtX3Nlc3Np b25fdmFyaWFibGVzID0gc3RhdGUtPnBhcmVudC0+c3RhdGUtPmVzX251bV9zZXNzaW9uX3Zhcmlh YmxlczsKIAkJCQkJCQl9CiAKLQkJCQkJCQlBc3NlcnQoZXNfc2Vzc2lvbl92YXJpYWJsZXMpOwot Ci0JCQkJCQkJLyogcGFyYW1ldGVyIHNhbml0eSBjaGVja3MgKi8KLQkJCQkJCQlpZiAocGFyYW0t PnBhcmFtaWQgPj0gZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzKQotCQkJCQkJCQllbG9nKEVSUk9S LCAicGFyYW1pZCBvZiBQQVJBTV9WQVJJQUJMRSBwYXJhbSBpcyBvdXQgb2YgcmFuZ2UiKTsKLQot CQkJCQkJCXZhciA9ICZlc19zZXNzaW9uX3ZhcmlhYmxlc1twYXJhbS0+cGFyYW1pZF07Ci0KLQkJ CQkJCQkvKgotCQkJCQkJCSAqIEluIHRoaXMgY2FzZSwgcGFzcyB0aGUgdmFsdWUgbGlrZSBhCi0J CQkJCQkJICogY29uc3RhbnQuCi0JCQkJCQkJICovCi0JCQkJCQkJc2NyYXRjaC5vcGNvZGUgPSBF RU9QX0NPTlNUOwotCQkJCQkJCXNjcmF0Y2guZC5jb25zdHZhbC52YWx1ZSA9IHZhci0+dmFsdWU7 Ci0JCQkJCQkJc2NyYXRjaC5kLmNvbnN0dmFsLmlzbnVsbCA9IHZhci0+aXNudWxsOwotCQkJCQkJ CUV4cHJFdmFsUHVzaFN0ZXAoc3RhdGUsICZzY3JhdGNoKTsKKwkJCQkJCQlpZiAoZXNfc2Vzc2lv bl92YXJpYWJsZXMpCisJCQkJCQkJeworCQkJCQkJCQkvKgorCQkJCQkJCQkgKiBUaGlzIHBhdGgg aXMgdXNlZCB3aGVuIGV4cHJlc3Npb24gaXMKKwkJCQkJCQkJICogZXZhbHVhdGVkIGluc2lkZSBx dWVyeSBldmFsdWF0aW9uLiBGb3IKKwkJCQkJCQkJICogZW5zdXJpbmcgb2YgaW1tdXRhYmlsaXR5 IG9mIHNlc3Npb24gdmFyaWFibGUKKwkJCQkJCQkJICogaW5zaWRlIHF1ZXJ5IHdlIHVzZSBzcGVj aWFsIGJ1ZmZlciB3aXRoIGNvcHkKKwkJCQkJCQkJICogb2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxl cy4gVGhpcyBtZXRob2QgaGVscHMKKwkJCQkJCQkJICogd2l0aCBwYXJhbGxlbCBleGVjdXRpb24g dG9vLgorCQkJCQkJCQkgKi8KKworCQkJCQkJCQkvKiBwYXJhbWV0ZXIgc2FuaXR5IGNoZWNrcyAq LworCQkJCQkJCQlpZiAocGFyYW0tPnBhcmFtaWQgPj0gZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVz KQorCQkJCQkJCQkJZWxvZyhFUlJPUiwgInBhcmFtaWQgb2YgUEFSQU1fVkFSSUFCTEUgcGFyYW0g aXMgb3V0IG9mIHJhbmdlIik7CisKKwkJCQkJCQkJdmFyID0gJmVzX3Nlc3Npb25fdmFyaWFibGVz W3BhcmFtLT5wYXJhbWlkXTsKKworCQkJCQkJCQkvKgorCQkJCQkJCQkgKiBJbiB0aGlzIGNhc2Us IHBhc3MgdGhlIHZhbHVlIGxpa2UgYQorCQkJCQkJCQkgKiBjb25zdGFudC4KKwkJCQkJCQkJICov CisJCQkJCQkJCXNjcmF0Y2gub3Bjb2RlID0gRUVPUF9DT05TVDsKKwkJCQkJCQkJc2NyYXRjaC5k LmNvbnN0dmFsLnZhbHVlID0gdmFyLT52YWx1ZTsKKwkJCQkJCQkJc2NyYXRjaC5kLmNvbnN0dmFs LmlzbnVsbCA9IHZhci0+aXNudWxsOworCQkJCQkJCQlFeHByRXZhbFB1c2hTdGVwKHN0YXRlLCAm c2NyYXRjaCk7CisJCQkJCQkJfQorCQkJCQkJCWVsc2UKKwkJCQkJCQl7CisJCQkJCQkJCU9pZAkJ CXZhcmlkID0gcGFyYW0tPnBhcmFtdmFyaWQ7CisKKwkJCQkJCQkJQXNzZXJ0KCFJc1BhcmFsbGVs V29ya2VyKCkpOworCisJCQkJCQkJCS8qCisJCQkJCQkJCSAqIEluIHNvbWUgY2FzZXMgKHBscGdz cWwncyBzaW1wbGUgZXhwcmVzc2lvbgorCQkJCQkJCQkgKiBldmFsdWF0aW9uIG9yIGV2YWx1YXRp b24gb2YgQ0FMTCBhcmd1bWVudHMpLAorCQkJCQkJCQkgKiB0aGUgZXhwcmVzc2lvbiBleGVjdXRv ciBpcyBjYWxsZWQgZGlyZWN0bHkuCisJCQkJCQkJCSAqIFdlIGNhbiBhbGxvdyBkaXJlY3QgYWNj ZXNzIHRvIHNlc3Npb24KKwkJCQkJCQkJICogdmFyaWFibGVzIChjb3B5IG9ubHkpLCBiZWNhdXNl IHdlIGtub3csIHNvCisJCQkJCQkJCSAqIG91dHNpZGUgaXMgbm90IGFueSBxdWVyeSAoYW5kIGV4 cHJlc3Npb24KKwkJCQkJCQkJICogY2Fubm90IGJlIGV4ZWN1dGVkIHBhcmFsbGVsKS4KKwkJCQkJ CQkJICoKKwkJCQkJCQkJICogSW4gdGhpcyBjYXNlIHdlIHNob3VsZCB0byBkbyBhY2xjaGVjaywK KwkJCQkJCQkJICogYmVjYXVzZSB1c3VhbCBhY2xjaGVjayBmcm9tCisJCQkJCQkJCSAqIHN0YW5k YXJkX0V4ZWN1dG9yU3RhcnQgaXMgbm90IGV4ZWN1dGVkIGluCisJCQkJCQkJCSAqIHRoaXMgY2Fz ZS4gRm9ydHVuYXRlbHkgaXQgaXMganVzdCBvbmNlIHBlcgorCQkJCQkJCQkgKiB0cmFuc2FjdGlv bi4KKwkJCQkJCQkJICoKKwkJCQkJCQkJICogRG9uJ3QgZG8gcGVybWlzc2lvbiBjaGVjaywgd2hl biB2YXJpYWJsZSBpcworCQkJCQkJCQkgKiB1c2VkIGxpa2UgYmFzZSBub2RlIGZvciBhc3NpZ25t ZW50IGluZGlyZWN0aW9uLgorCQkJCQkJCQkgKi8KKwkJCQkJCQkJaWYgKCFwYXJhbS0+cGFyYW1i YXNlbm9kZSkKKwkJCQkJCQkJeworCQkJCQkJCQkJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKworCQkJ CQkJCQkJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrKAorCQkJCQkJCQkJCQkJCSAgVmFyaWFi bGVSZWxhdGlvbklkLCB2YXJpZCwKKwkJCQkJCQkJCQkJCQkgIEdldFVzZXJJZCgpLCBBQ0xfU0VM RUNUKTsKKworCQkJCQkJCQkJaWYgKGFjbHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJCQkJCQkJ CQlhY2xjaGVja19lcnJvcihhY2xyZXN1bHQsCisJCQkJCQkJCQkJCQkJICAgT0JKRUNUX1ZBUklB QkxFLAorCQkJCQkJCQkJCQkJCSAgIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKTsK KwkJCQkJCQkJfQorCisJCQkJCQkJCXNjcmF0Y2gub3Bjb2RlID0gRUVPUF9QQVJBTV9WQVJJQUJM RTsKKwkJCQkJCQkJc2NyYXRjaC5kLnZwYXJhbS52YXJpZCA9IHZhcmlkOworCQkJCQkJCQlFeHBy RXZhbFB1c2hTdGVwKHN0YXRlLCAmc2NyYXRjaCk7CisJCQkJCQkJfQogCQkJCQkJfQogCQkJCQkJ YnJlYWs7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBySW50ZXJw LmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwckludGVycC5jCmluZGV4IGIyYzAwYTBh MWIuLmJmZGE3NGRjZTAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHBy SW50ZXJwLmMKKysrIGIvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHJJbnRlcnAuYwpAQCAt NTksNiArNTksNyBAQAogI2luY2x1ZGUgImFjY2Vzcy9oZWFwdG9hc3QuaCIKICNpbmNsdWRlICJj YXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZXF1ZW5jZS5oIgorI2luY2x1 ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKICNpbmNsdWRlICJleGVjdXRvci9leGVj RXhwci5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL25vZGVTdWJwbGFuLmgiCiAjaW5jbHVkZSAiZnVu Y2FwaS5oIgpAQCAtNTEyLDYgKzUxMyw3IEBAIEV4ZWNJbnRlcnBFeHByKEV4cHJTdGF0ZSAqc3Rh dGUsIEV4cHJDb250ZXh0ICplY29udGV4dCwgYm9vbCAqaXNudWxsKQogCQkmJkNBU0VfRUVPUF9Q QVJBTV9FWEVDLAogCQkmJkNBU0VfRUVPUF9QQVJBTV9FWFRFUk4sCiAJCSYmQ0FTRV9FRU9QX1BB UkFNX0NBTExCQUNLLAorCQkmJkNBU0VfRUVPUF9QQVJBTV9WQVJJQUJMRSwKIAkJJiZDQVNFX0VF T1BfUEFSQU1fU0VULAogCQkmJkNBU0VfRUVPUF9DQVNFX1RFU1RWQUwsCiAJCSYmQ0FTRV9FRU9Q X01BS0VfUkVBRE9OTFksCkBAIC0xMTYxLDYgKzExNjMsMTggQEAgRXhlY0ludGVycEV4cHIoRXhw clN0YXRlICpzdGF0ZSwgRXhwckNvbnRleHQgKmVjb250ZXh0LCBib29sICppc251bGwpCiAJCQlF RU9fTkVYVCgpOwogCQl9CiAKKwkJRUVPX0NBU0UoRUVPUF9QQVJBTV9WQVJJQUJMRSkKKwkJewor CQkJLyoKKwkJCSAqIERpcmVjdCBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZSAod2l0aG91dCBi dWZmZXJpbmcpLiBCZWNhdXNlCisJCQkgKiByZXR1cm5lZCB2YWx1ZSBjYW4gYmUgdXNlZCAod2l0 aG91dCBhbiBhc3NpZ25lbWVudCkgYWZ0ZXIgdGhlCisJCQkgKiByZWZlcmVuY2VkIHNlc3Npb24g dmFyaWFibGVzIGlzIHVwZGF0ZWQsIHdlIGhhdmUgdG8gdXNlIGFuIGNvcHkKKwkJCSAqIG9mIHN0 b3JlZCB2YWx1ZSBldmVyeSB0aW1lLgorCQkJICovCisJCQkqb3AtPnJlc3ZhbHVlID0gR2V0U2Vz c2lvblZhcmlhYmxlKG9wLT5kLnZwYXJhbS52YXJpZCwgb3AtPnJlc251bGwpOworCQkJRUVPX05F WFQoKTsKKwkJfQorCiAJCUVFT19DQVNFKEVFT1BfUEFSQU1fU0VUKQogCQl7CiAJCQkvKiBvdXQg b2YgbGluZSwgdW5saWtlbHkgdG8gbWF0dGVyIHBlcmZvcm1hbmNlLXdpc2UgKi8KZGlmZiAtLWdp dCBhL3NyYy9iYWNrZW5kL2ppdC9sbHZtL2xsdm1qaXRfZXhwci5jIGIvc3JjL2JhY2tlbmQvaml0 L2xsdm0vbGx2bWppdF9leHByLmMKaW5kZXggNmM0OTE1ZTM3My4uMGI3M2M1ZjM1NCAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMKKysrIGIvc3JjL2JhY2tl bmQvaml0L2xsdm0vbGx2bWppdF9leHByLmMKQEAgLTExMzYsNiArMTEzNiwxMiBAQCBsbHZtX2Nv bXBpbGVfZXhwcihFeHByU3RhdGUgKnN0YXRlKQogCQkJCQlicmVhazsKIAkJCQl9CiAKKwkJCWNh c2UgRUVPUF9QQVJBTV9WQVJJQUJMRToKKwkJCQlidWlsZF9FdmFsWEZ1bmMoYiwgbW9kLCAiRXhl Y0V2YWxQYXJhbVZhcmlhYmxlIiwKKwkJCQkJCQkJdl9zdGF0ZSwgb3AsIHZfZWNvbnRleHQpOwor CQkJCUxMVk1CdWlsZEJyKGIsIG9wYmxvY2tzW29wbm8gKyAxXSk7CisJCQkJYnJlYWs7CisKIAkJ CWNhc2UgRUVPUF9QQVJBTV9TRVQ6CiAJCQkJYnVpbGRfRXZhbFhGdW5jKGIsIG1vZCwgIkV4ZWNF dmFsUGFyYW1TZXQiLAogCQkJCQkJCQl2X3N0YXRlLCBvcCwgdl9lY29udGV4dCk7CmRpZmYgLS1n aXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2Fu YWx5emUuYwppbmRleCBhMDM4NjBkNGI4Li5iOGRmMTZlNGYwIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9wYXJzZXIvYW5hbHl6ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMK QEAgLTM0NjksMTYgKzM0NjksNiBAQCB0cmFuc2Zvcm1DYWxsU3RtdChQYXJzZVN0YXRlICpwc3Rh dGUsIENhbGxTdG10ICpzdG10KQogCQkJCQkJCSB0cnVlLAogCQkJCQkJCSBzdG10LT5mdW5jY2Fs bC0+bG9jYXRpb24pOwogCi0JLyoKLQkgKiBUaGUgYXJndW1lbnRzIG9mIENBTEwgc3RhdGVtZW50 IGFyZSBldmFsdWF0ZWQgYnkgYSBkaXJlY3QgZXhwcmVzc2lvbgotCSAqIGV4ZWN1dG9yIGNhbGwu ICBUaGlzIHBhdGggaXMgdW5zdXBwb3J0ZWQgeWV0LCBzbyBibG9jayBpdC4gIEl0IHdpbGwgYmUK LQkgKiBlbmFibGVkIGxhdGVyLgotCSAqLwotCWlmIChwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlh YmxlcykKLQkJZXJlcG9ydChFUlJPUiwKLQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9U X1NVUFBPUlRFRCksCi0JCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgdXNl ZCBhcyBhbiBhcmd1bWVudCIpKSk7Ci0KIAlhc3NpZ25fZXhwcl9jb2xsYXRpb25zKHBzdGF0ZSwg bm9kZSk7CiAKIAlmZXhwciA9IGNhc3ROb2RlKEZ1bmNFeHByLCBub2RlKTsKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmggYi9zcmMvaW5jbHVkZS9leGVjdXRvci9l eGVjRXhwci5oCmluZGV4IDgwMTllNTQ5MGUuLmZhZGNkZTFlZDYgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2V4ZWN1dG9yL2V4ZWNFeHByLmgKKysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3IvZXhl Y0V4cHIuaApAQCAtMTU2LDEwICsxNTYsMTEgQEAgdHlwZWRlZiBlbnVtIEV4cHJFdmFsT3AKIAlF RU9QX0JPT0xURVNUX0lTX0ZBTFNFLAogCUVFT1BfQk9PTFRFU1RfSVNfTk9UX0ZBTFNFLAogCi0J LyogZXZhbHVhdGUgUEFSQU1fRVhFQy9FWFRFUk4gcGFyYW1ldGVycyAqLworCS8qIGV2YWx1YXRl IFBBUkFNX0VYRUMvRVhURVJOL1ZBUklBQkxFIHBhcmFtZXRlcnMgKi8KIAlFRU9QX1BBUkFNX0VY RUMsCiAJRUVPUF9QQVJBTV9FWFRFUk4sCiAJRUVPUF9QQVJBTV9DQUxMQkFDSywKKwlFRU9QX1BB UkFNX1ZBUklBQkxFLAogCS8qIHNldCBQQVJBTV9FWEVDIHZhbHVlICovCiAJRUVPUF9QQVJBTV9T RVQsCiAKQEAgLTQxMCw2ICs0MTEsMTIgQEAgdHlwZWRlZiBzdHJ1Y3QgRXhwckV2YWxTdGVwCiAJ CQlPaWQJCQlwYXJhbXR5cGU7CS8qIE9JRCBvZiBwYXJhbWV0ZXIncyBkYXRhdHlwZSAqLwogCQl9 CQkJY3BhcmFtOwogCisJCS8qIGZvciBFRU9QX1BBUkFNX1ZBUklBQkxFICovCisJCXN0cnVjdAor CQl7CisJCQlPaWQJCQl2YXJpZDsJCS8qIE9JRCBvZiBhc3NpZ25lZCB2YXJpYWJsZSAqLworCQl9 CQkJdnBhcmFtOworCiAJCS8qIGZvciBFRU9QX0NBU0VfVEVTVFZBTC9ET01BSU5fVEVTVFZBTCAq LwogCQlzdHJ1Y3QKIAkJewpAQCAtODMyLDYgKzgzOSw4IEBAIGV4dGVybiB2b2lkIEV4ZWNFdmFs UGFyYW1TZXQoRXhwclN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCwKIAkJCQkJCQkgRXhw ckNvbnRleHQgKmVjb250ZXh0KTsKIGV4dGVybiB2b2lkIEV4ZWNFdmFsUGFyYW1FeHRlcm4oRXhw clN0YXRlICpzdGF0ZSwgRXhwckV2YWxTdGVwICpvcCwKIAkJCQkJCQkJRXhwckNvbnRleHQgKmVj b250ZXh0KTsKK2V4dGVybiB2b2lkIEV4ZWNFdmFsUGFyYW1WYXJpYWJsZShFeHByU3RhdGUgKnN0 YXRlLCBFeHByRXZhbFN0ZXAgKm9wLAorCQkJCQkJCQkgIEV4cHJDb250ZXh0ICplY29udGV4dCk7 CiBleHRlcm4gdm9pZCBFeGVjRXZhbENvZXJjZVZpYUlPU2FmZShFeHByU3RhdGUgKnN0YXRlLCBF eHByRXZhbFN0ZXAgKm9wKTsKIGV4dGVybiB2b2lkIEV4ZWNFdmFsU1FMVmFsdWVGdW5jdGlvbihF eHByU3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wKTsKIGV4dGVybiB2b2lkIEV4ZWNFdmFs Q3VycmVudE9mRXhwcihFeHByU3RhdGUgKnN0YXRlLCBFeHByRXZhbFN0ZXAgKm9wKTsKZGlmZiAt LWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFi bGUub3V0IGIvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJp YWJsZS5vdXQKaW5kZXggYTY1MjNmN2FmZS4uZWNhYzY0ZmNmYiAxMDA2NDQKLS0tIGEvc3JjL3Bs L3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQKKysrIGIv c3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5vdXQK QEAgLTIxMSw4ICsyMTEsNyBAQCBTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CiAt LSBzaG91bGQgZmFpbAogU0VMRUNUIHZhcl9yZWFkX2Z1bmMoKTsKIEVSUk9SOiAgcGVybWlzc2lv biBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgcGxwZ3NxbF9zdl92YXIxCi1DT05URVhUOiAg UEwvcGdTUUwgZXhwcmVzc2lvbiAicGxwZ3NxbF9zdl92YXIxIgotUEwvcGdTUUwgZnVuY3Rpb24g dmFyX3JlYWRfZnVuYygpIGxpbmUgMyBhdCBSQUlTRQorQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0 aW9uIHZhcl9yZWFkX2Z1bmMoKSBsaW5lIDMgYXQgUkFJU0UKIFNFVCBST0xFIFRPIERFRkFVTFQ7 CiBTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9vd25lcl9yb2xlOwogR1JBTlQgU0VMRUNUIE9OIFZB UklBQkxFIHBscGdzcWxfc3ZfdmFyMSBUTyByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKZGlmZiAt LWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMgYi9zcmMvcGwvcGxwZ3NxbC9zcmMv cGxfZXhlYy5jCmluZGV4IDNmOTAxY2Q4ZmMuLmU1YjBkYTA0ZTMgMTAwNjQ0Ci0tLSBhL3NyYy9w bC9wbHBnc3FsL3NyYy9wbF9leGVjLmMKKysrIGIvc3JjL3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMu YwpAQCAtODA5OSw4ICs4MDk5LDcgQEAgZXhlY19pc19zaW1wbGVfcXVlcnkoUExwZ1NRTF9leHBy ICpleHByKQogCQlxdWVyeS0+c29ydENsYXVzZSB8fAogCQlxdWVyeS0+bGltaXRPZmZzZXQgfHwK IAkJcXVlcnktPmxpbWl0Q291bnQgfHwKLQkJcXVlcnktPnNldE9wZXJhdGlvbnMgfHwKLQkJcXVl cnktPmhhc1Nlc3Npb25WYXJpYWJsZXMpCisJCXF1ZXJ5LT5zZXRPcGVyYXRpb25zKQogCQlyZXR1 cm4gZmFsc2U7CiAKIAkvKgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9z ZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25f dmFyaWFibGVzLm91dAppbmRleCAwOWJiNGIyZmIyLi5iNWFiMDU4NDBhIDEwMDY0NAotLS0gYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtNDgzLDggKzQ4 Myw3IEBAIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFy MQogQ09OVEVYVDogIFNRTCBmdW5jdGlvbiAic3FsZngiIHN0YXRlbWVudCAxCiBTRUxFQ1QgcGxw Z3NxbGZ4KDIwKTsKIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFi bGUgdmFyMQotQ09OVEVYVDogIFBML3BnU1FMIGV4cHJlc3Npb24gIiQxICsgdmFyMSIKLVBML3Bn U1FMIGZ1bmN0aW9uIHBscGdzcWxmeChpbnRlZ2VyKSBsaW5lIDEgYXQgUkVUVVJOCitDT05URVhU OiAgUEwvcGdTUUwgZnVuY3Rpb24gcGxwZ3NxbGZ4KGludGVnZXIpIGxpbmUgMSBhdCBSRVRVUk4K IC0tIHNob3VsZCBiZSBvawogU0VMRUNUIHNxbGZ4X3NkKDIwKTsKICBzcWxmeF9zZCAKQEAgLTc4 MCwyNyArNzc5LDI4IEBAICQkOwogTk9USUNFOiAgcmVzdWx0IGFycmF5OiB7MSwyLDMsNCw1LDYs Nyw4LDksMTB9CiBEUk9QIFZBUklBQkxFIHZhcjE7CiBEUk9QIFZBUklBQkxFIHZhcjI7Ci0tLSBD QUxMIHN0YXRlbWVudCBpcyBub3Qgc3VwcG9ydGVkIHlldAotLS0gcmVxdWlyZXMgZGlyZWN0IGFj Y2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlIGZyb20gZXhwcmVzc2lvbiBleGVjdXRvcgorLS0gQ0FM TCBzdGF0ZW1lbnQgaXMgc3VwcG9ydGVkCiBDUkVBVEUgVkFSSUFCTEUgdiBpbnQ7CitMRVQgdiA9 IDE7CiBDUkVBVEUgUFJPQ0VEVVJFIHAoYXJnIGludCkgQVMgJCQgQkVHSU4gUkFJU0UgTk9USUNF ICclJywgYXJnOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKLS0tIHNob3VsZCBub3QgY3Jhc2gg KGJ1dCBpcyBub3Qgc3VwcG9ydGVkIHlldCkKKy0tIHNob3VsZCB0byB3b3JrCiBDQUxMIHAodik7 Ci1FUlJPUjogIHNlc3Npb24gdmFyaWFibGUgY2Fubm90IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQK K05PVElDRTogIDEKIERPICQkIEJFR0lOIENBTEwgcCh2KTsgRU5EICQkOwotRVJST1I6ICBzZXNz aW9uIHZhcmlhYmxlIGNhbm5vdCBiZSB1c2VkIGFzIGFuIGFyZ3VtZW50Ci1DT05URVhUOiAgU1FM IHN0YXRlbWVudCAiQ0FMTCBwKHYpIgotUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxv Y2sgbGluZSAxIGF0IENBTEwKK05PVElDRTogIDEKIERST1AgUFJPQ0VEVVJFIHAoaW50KTsKIERS T1AgVkFSSUFCTEUgdjsKLS0tIEVYRUNVVEUgc3RhdGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgeWV0 Ci0tLSByZXF1aXJlcyBkaXJlY3QgYWNjZXNzIHRvIHNlc3Npb24gdmFyaWFibGUgZnJvbSBleHBy ZXNzaW9uIGV4ZWN1dG9yCistLSBFWEVDVVRFIHN0YXRlbWVudAogQ1JFQVRFIFZBUklBQkxFIHYg aW50OwogTEVUIHYgPSAyMDsKIFBSRVBBUkUgcHRlc3QoaW50KSBBUyBTRUxFQ1QgJDE7Ci0tLSBz aG91bGQgZmFpbAorLS0gc2hvdWxkIGJlIG9rCiBFWEVDVVRFIHB0ZXN0KHYpOwotRVJST1I6ICBz ZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSB1c2VkIGFzIGFuIGFyZ3VtZW50CisgP2NvbHVtbj8g CistLS0tLS0tLS0tCisgICAgICAgMjAKKygxIHJvdykKKwogREVBTExPQ0FURSBwdGVzdDsKIERS T1AgVkFSSUFCTEUgdjsKIC0tIHRlc3Qgc2VhcmNoIHBhdGgKQEAgLTExMjMsMTIgKzExMjMsMTAg QEAgTEVUIHZhcjEuYSA9IChTRUxFQ1QgKiBGUk9NIChTRUxFQ1QgY291bnQoKikgRlJPTSB2YXJ0 ZXN0dGFiIFdIRVJFIHhjb2wgPSB2YXIxLmEKIEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9y IHNlc3Npb24gdmFyaWFibGUgdmFyMQogRE8gJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgdmFy MTsgRU5EICQkOwogRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJs ZSB2YXIxCi1DT05URVhUOiAgUEwvcGdTUUwgZXhwcmVzc2lvbiAidmFyMSIKLVBML3BnU1FMIGZ1 bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBSQUlTRQorQ09OVEVYVDogIFBML3Bn U1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBSQUlTRQogRE8gJCQgQkVH SU4gUkFJU0UgTk9USUNFICclJywgdmFyMS5hOyBFTkQgJCQ7CiBFUlJPUjogIHBlcm1pc3Npb24g ZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKLUNPTlRFWFQ6ICBQTC9wZ1NRTCBleHBy ZXNzaW9uICJ2YXIxLmEiCi1QTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5l IDEgYXQgUkFJU0UKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9j ayBsaW5lIDEgYXQgUkFJU0UKIERPICQkIEJFR0lOIExFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMDsg RU5EICQkOwogRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2 YXIxCiBDT05URVhUOiAgU1FMIHN0YXRlbWVudCAiTEVUIHZhcjEuYSA9IHZhcjEuYSArIDEwIgpA QCAtMTE3MCwxMiArMTE2OCwxMCBAQCBMRVQgdmFyMS5hID0gKFNFTEVDVCAqIEZST00gKFNFTEVD VCBjb3VudCgqKSBGUk9NIHZhcnRlc3R0YWIgV0hFUkUgeGNvbCA9IHZhcjEuYQogRVJST1I6ICBw ZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCiBETyAkJCBCRUdJTiBS QUlTRSBOT1RJQ0UgJyUnLCB2YXIxOyBFTkQgJCQ7CiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVk IGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKLUNPTlRFWFQ6ICBQTC9wZ1NRTCBleHByZXNzaW9u ICJ2YXIxIgotUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IFJB SVNFCitDT05URVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSAx IGF0IFJBSVNFCiBETyAkJCBCRUdJTiBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxLmE7IEVORCAkJDsK IEVSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQotQ09O VEVYVDogIFBML3BnU1FMIGV4cHJlc3Npb24gInZhcjEuYSIKLVBML3BnU1FMIGZ1bmN0aW9uIGlu bGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBSQUlTRQorQ09OVEVYVDogIFBML3BnU1FMIGZ1bmN0 aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBSQUlTRQogRE8gJCQgQkVHSU4gTEVUIHZh cjEuYSA9IHZhcjEuYSArIDEwOyBFTkQgJCQ7CiBFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZv ciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKIENPTlRFWFQ6ICBTUUwgc3RhdGVtZW50ICJMRVQgdmFy MS5hID0gdmFyMS5hICsgMTAiCkBAIC0yMDgwLDggKzIwNzYsNyBAQCAkJDsKIEVSUk9SOiAgc2Vz c2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIGlzIG5vdCB1c2VkIGluc2lkZSB2YXJpYWJsZSBm ZW5jZQogREVUQUlMOiAgVGhlcmUgaXMgYSByaXNrIG9mIHVud2FudGVkIHVzYWdlIG9mIHNlc3Np b24gdmFyaWFibGUuCiBISU5UOiAgVXNlIHZhcmlhYmxlIGZlbmNlICJWQVJJQUJMRSh2YXJuYW1l KSBmb3IgYWNjZXNzIHRvIHZhcmlhYmxlIi4KLUNPTlRFWFQ6ICBQTC9wZ1NRTCBleHByZXNzaW9u ICJ2YXIxIgotUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSA0IGF0IFJB SVNFCitDT05URVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2NvZGVfYmxvY2sgbGluZSA0 IGF0IFJBSVNFCiAtLSBzaG91bGQgYmUgb2sKIFNFTEVDVCBWQVJJQUJMRSh2YXIxKSwgVkFSSUFC TEUodmFyMSk7CiAgdmFyMSB8IHZhcjEgCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zh cmlhYmxlcy5zcWwKaW5kZXggYjgzZjJhNmJiYi4uOGExMjJhZWIxZSAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAtNTQ4LDEzICs1NDgsMTQgQEAgJCQ7 CiBEUk9QIFZBUklBQkxFIHZhcjE7CiBEUk9QIFZBUklBQkxFIHZhcjI7CiAKLS0tIENBTEwgc3Rh dGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgeWV0Ci0tLSByZXF1aXJlcyBkaXJlY3QgYWNjZXNzIHRv IHNlc3Npb24gdmFyaWFibGUgZnJvbSBleHByZXNzaW9uIGV4ZWN1dG9yCistLSBDQUxMIHN0YXRl bWVudCBpcyBzdXBwb3J0ZWQKIENSRUFURSBWQVJJQUJMRSB2IGludDsKIAorTEVUIHYgPSAxOwor CiBDUkVBVEUgUFJPQ0VEVVJFIHAoYXJnIGludCkgQVMgJCQgQkVHSU4gUkFJU0UgTk9USUNFICcl JywgYXJnOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKIAotLS0gc2hvdWxkIG5vdCBjcmFzaCAo YnV0IGlzIG5vdCBzdXBwb3J0ZWQgeWV0KQorLS0gc2hvdWxkIHRvIHdvcmsKIENBTEwgcCh2KTsK IAogRE8gJCQgQkVHSU4gQ0FMTCBwKHYpOyBFTkQgJCQ7CkBAIC01NjIsMTMgKzU2MywxMiBAQCBE TyAkJCBCRUdJTiBDQUxMIHAodik7IEVORCAkJDsKIERST1AgUFJPQ0VEVVJFIHAoaW50KTsKIERS T1AgVkFSSUFCTEUgdjsKIAotLS0gRVhFQ1VURSBzdGF0ZW1lbnQgaXMgbm90IHN1cHBvcnRlZCB5 ZXQKLS0tIHJlcXVpcmVzIGRpcmVjdCBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZSBmcm9tIGV4 cHJlc3Npb24gZXhlY3V0b3IKKy0tIEVYRUNVVEUgc3RhdGVtZW50CiBDUkVBVEUgVkFSSUFCTEUg diBpbnQ7CiBMRVQgdiA9IDIwOwogUFJFUEFSRSBwdGVzdChpbnQpIEFTIFNFTEVDVCAkMTsKIAot LS0gc2hvdWxkIGZhaWwKKy0tIHNob3VsZCBiZSBvawogRVhFQ1VURSBwdGVzdCh2KTsKIAogREVB TExPQ0FURSBwdGVzdDsKLS0gCjIuNDcuMQoK --0000000000007bfa26062b3fa8d1 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250109-0015-Implementation-of-NOT-NULL-and-IMMUTABLE-clauses.patch" Content-Disposition: attachment; filename="v20250109-0015-Implementation-of-NOT-NULL-and-IMMUTABLE-clauses.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5ox16n57 RnJvbSBhZGNlNTBmMjRhNTQyYmM1YTJlOTQ0YjExOWE3YzVmMWVlNjk1NWU5IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowNTowNiArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTUvMjJdIEltcGxlbWVudGF0aW9uIG9mIE5PVCBOVUxMIGFuZCBJTU1VVEFCTEUgY2xhdXNlcwoK QWxtb3N0IHRyaXZpYWwgcGF0Y2ggLSBwc3FsLCBwZ19kdW1wIHN1cHBvcnQKLS0tCiBkb2Mvc3Jj L3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMjAgKysrCiBkb2Mvc3Jj L3NnbWwvcGxwZ3NxbC5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIGRvYy9zcmMv c2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwgICAgICAgICB8ICAzMiArKystCiBzcmMvYmFj a2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDggKwogc3JjL2JhY2tl bmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgIDY5ICsrKysrKysrLQogc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDQxICsrKy0tCiBz cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jICAgICAgICAgICAgICAgICAgICAgfCAgMTkgKystCiBz cmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oICAgICAgICAgICAgICAgICAgICAgfCAgIDIgKwogc3Jj L2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgIDM2ICsrKysrCiBz cmMvYmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgIDYgKy0KIHNy Yy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgICAgICB8ICAxMiArLQogc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oICAgICAgICAgICAgIHwgICA2ICsKIHNyYy9p bmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0ICAgICAgICAgICAgfCAgMzYgKystLS0KIC4uLi9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8IDE0NSArKysrKysrKysr KysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8 IDEyMiArKysrKysrKysrKysrKysKIDE2IGZpbGVzIGNoYW5nZWQsIDUxOCBpbnNlcnRpb25zKCsp LCA0MSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dt bCBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCmluZGV4IGU4NjNjYjkxMGUuLjlhYjI0ZGY1 MjggMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMv c2dtbC9jYXRhbG9ncy5zZ21sCkBAIC05ODQxLDYgKzk4NDEsMjYgQEAgU0NSQU0tU0hBLTI1NiQ8 cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFj ZWFibGU+JmwKIAogICAgICA8cm93PgogICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVf ZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+dmFybm90bnVsbDwvc3RydWN0ZmllbGQ+IDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICA8 L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBUcnVlIGlmIHRoZSBzZXNzaW9uIHZhcmlhYmxl IGRvZXNuJ3QgYWxsb3cgbnVsbCB2YWx1ZXMuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGZhbHNlLgor ICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8 ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmlu aXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJpc2ltbXV0YWJsZTwvc3RydWN0ZmllbGQ+ IDx0eXBlPmJvb2xlYW48L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAg ICBUcnVlIGlmIHRoZSB2YXJpYWJsZSBpcyA8bGluayBsaW5rZW5kPSJzcWwtY3JlYXRldmFyaWFi bGUtaW1tdXRhYmxlIj5pbW11dGFibGU8L2xpbms+IChjYW5ub3QgYmUgbW9kaWZpZWQpLgorICAg ICAgIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGZhbHNlLgorICAgICAgPC9wYXJhPjwvZW50cnk+Cisg ICAgIDwvcm93PgorCisgICAgIDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJs ZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3Rm aWVsZD52YXJlb3hhY3Rpb248L3N0cnVjdGZpZWxkPiA8dHlwZT5jaGFyPC90eXBlPgogICAgICAg IDxzdHJ1Y3RmaWVsZD52YXJ4YWN0ZW5kYWN0aW9uPC9zdHJ1Y3RmaWVsZD4gPHR5cGU+Y2hhcjwv dHlwZT4KICAgICAgIDwvcGFyYT4KICAgICAgIDxwYXJhPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9z Z21sL3BscGdzcWwuc2dtbCBiL2RvYy9zcmMvc2dtbC9wbHBnc3FsLnNnbWwKaW5kZXggYmZiZmY5 YWI3NC4uZTcwNGUwNWE5OSAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvcGxwZ3NxbC5zZ21sCkBAIC02MDQ0LDcgKzYwNDQsOCBAQCAkJCBM QU5HVUFHRSBwbHBnc3FsIFNUUklDVCBJTU1VVEFCTEU7CiAgICAgIFlvdSBjYW4gY29uc2lkZXIg dHJhbnNsYXRpbmcgYW4gT3JhY2xlIHBhY2thZ2UgaW50byBhIHNjaGVtYSBpbgogICAgICA8cHJv ZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+LiAgUGFja2FnZSBmdW5jdGlvbnMgYW5k IHByb2NlZHVyZXMKICAgICAgd291bGQgdGhlbiBiZWNvbWUgZnVuY3Rpb25zIGFuZCBwcm9jZWR1 cmVzIGluIHRoYXQgc2NoZW1hLCBhbmQgcGFja2FnZQotICAgICB2YXJpYWJsZXMgY291bGQgYmUg dHJhbnNsYXRlZCB0byBzZXNzaW9uIHZhcmlhYmxlcyBpbiB0aGF0IHNjaGVtYS4KKyAgICAgdmFy aWFibGVzIGNvdWxkIGJlIHRyYW5zbGF0ZWQgdG8gc2Vzc2lvbiB2YXJpYWJsZXMgb3IgaW1tdXRh YmxlIHNlc3Npb24KKyAgICAgdmFyaWFibGVzIGluIHRoYXQgc2NoZW1hLgogICAgICAoc2VlIDx4 cmVmIGxpbmtlbmQ9ImRkbC1zZXNzaW9uLXZhcmlhYmxlcyIvPikuCiAgICAgPC9wYXJhPgogICAg PC9zZWN0Mz4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNn bWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCmluZGV4IGU0ZDg4NTFj Y2IuLjNjM2U2ZDU1YjYgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Zhcmlh YmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApAQCAt MjYsOCArMjYsOCBAQCBQb3N0Z3JlU1FMIGRvY3VtZW50YXRpb24KIAogIDxyZWZzeW5vcHNpc2Rp dj4KIDxzeW5vcHNpcz4KLUNSRUFURSBbIHsgVEVNUE9SQVJZIHwgVEVNUCB9IF0gVkFSSUFCTEUg WyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3Jl cGxhY2VhYmxlPiBbIEFTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRhdGFfdHlw ZTwvcmVwbGFjZWFibGU+IFsgQ09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXQotICAgIFsgREVGQVVMVCA8cmVwbGFjZWFibGUgY2xh c3M9InBhcmFtZXRlciI+ZGVmYXVsdF9leHByPC9yZXBsYWNlYWJsZT4gXSBbIHsgT04gQ09NTUlU IERST1AgfCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQgfSBdCitDUkVBVEUgWyB7IFRFTVBPUkFS WSB8IFRFTVAgfSBdIFsgSU1NVVRBQkxFIF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBbIEFTIF0gPHJl cGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRhdGFfdHlwZTwvcmVwbGFjZWFibGU+IFsgQ09M TEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+Y29sbGF0aW9uPC9yZXBsYWNlYWJs ZT4gXQorICAgIFsgTk9UIE5VTEwgXSBbIERFRkFVTFQgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJh bWV0ZXIiPmRlZmF1bHRfZXhwcjwvcmVwbGFjZWFibGU+IF0gWyB7IE9OIENPTU1JVCBEUk9QIHwg T04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUIH0gXQogPC9zeW5vcHNpcz4KICA8L3JlZnN5bm9wc2lz ZGl2PgogIDxyZWZzZWN0MT4KQEAgLTY1LDYgKzY1LDIyIEBAIENSRUFURSBbIHsgVEVNUE9SQVJZ IHwgVEVNUCB9IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNz PSJwCiAKICAgPHZhcmlhYmxlbGlzdD4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0 ZXZhcmlhYmxlLWltbXV0YWJsZSI+CisgICAgPHRlcm0+PGxpdGVyYWw+SU1NVVRBQkxFPC9saXRl cmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIGFzc2ln bmVkIHZhbHVlIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGNhbiBub3QgYmUgY2hhbmdlZC4KKyAg ICAgIE9ubHkgaWYgdGhlIHNlc3Npb24gdmFyaWFibGUgZG9lc24ndCBoYXZlIGEgZGVmYXVsdCB2 YWx1ZSwgYSBzaW5nbGUKKyAgICAgIGluaXRpYWxpemF0aW9uIGlzIGFsbG93ZWQgdXNpbmcgdGhl IDxjb21tYW5kPkxFVDwvY29tbWFuZD4gY29tbWFuZC4gT25jZQorICAgICAgZG9uZSwgbm8gZnVy dGhlciBjaGFuZ2UgaXMgYWxsb3dlZCB1bnRpbCBlbmQgb2YgdHJhbnNhY3Rpb24KKyAgICAgIGlm IHRoZSBzZXNzaW9uIHZhcmlhYmxlIHdhcyBjcmVhdGVkIHdpdGggY2xhdXNlIDxsaXRlcmFsPk9O IFRSQU5TQUNUSU9OCisgICAgICBFTkQgUkVTRVQ8L2xpdGVyYWw+LCBvciB1bnRpbCByZXNldCBv ZiBhbGwgc2Vzc2lvbiB2YXJpYWJsZXMgYnkKKyAgICAgIDxjb21tYW5kPkRJU0NBUkQgVkFSSUFC TEVTPC9jb21tYW5kPiwgb3IgdW50aWwgcmVzZXQgb2YgYWxsIHNlc3Npb24KKyAgICAgIG9iamVj dHMgYnkgY29tbWFuZCA8Y29tbWFuZD5ESVNDQVJEIEFMTDwvY29tbWFuZD4uCisgICAgIDwvcGFy YT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgIDx2YXJsaXN0ZW50 cnkgIGlkPSJzcWwtY3JlYXRldmFyaWFibGUtaWYtbm90LWV4aXN0cyI+CiAgICAgPHRlcm0+PGxp dGVyYWw+SUYgTk9UIEVYSVNUUzwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3RpdGVtPgpAQCAt MTA1LDYgKzEyMSwxOCBAQCBDUkVBVEUgWyB7IFRFTVBPUkFSWSB8IFRFTVAgfSBdIFZBUklBQkxF IFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icAogICAgIDwvbGlzdGl0ZW0+ CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXZh cmlhYmxlLW5vdC1udWxsIj4KKyAgICA8dGVybT48bGl0ZXJhbD5OT1QgTlVMTDwvbGl0ZXJhbD48 L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSA8bGl0ZXJhbD5O T1QgTlVMTDwvbGl0ZXJhbD4gY2xhdXNlIGZvcmJpZHMgc2V0dGluZyB0aGUgc2Vzc2lvbgorICAg ICAgdmFyaWFibGUgdG8gYSBudWxsIHZhbHVlLiBBIHNlc3Npb24gdmFyaWFibGUgY3JlYXRlZCBh cyBOT1QgTlVMTAorICAgICAgc2hvdWxkIG5vdCB0byBoYXZlIGEgZGVjbGFyZWQgZGVmYXVsdCB2 YWx1ZSwgYW5kIGlmIHRoZSB2YXJpYWJsZQorICAgICAgaGFzIG5vdCBhc3NpZ25lZCB2YWx1ZSwg dGhlbiB0aGUgcmVhZGluZyBvZiB0aGlzIHZhcmlhYmxlIGZhaWxzLgorICAgICA8L3BhcmE+Cisg ICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5IGlk PSJzcWwtY3JlYXRldmFyaWFibGUtZGVmYXVsdCI+CiAgICAgPHRlcm0+PGxpdGVyYWw+REVGQVVM VCA8cmVwbGFjZWFibGU+ZGVmYXVsdF9leHByPC9yZXBsYWNlYWJsZT48L2xpdGVyYWw+PC90ZXJt PgogICAgIDxsaXN0aXRlbT4KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFy aWFibGUuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwppbmRleCA4ZmJhNGNj NDkzLi4wYjYwOTNhMDBiIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3Zhcmlh YmxlLmMKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCkBAIC00MCw2ICs0 MCw4IEBAIHN0YXRpYyBPYmplY3RBZGRyZXNzIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2 YXJOYW1lLAogCQkJCQkJCQkJIE9pZCB2YXJPd25lciwKIAkJCQkJCQkJCSBPaWQgdmFyQ29sbGF0 aW9uLAogCQkJCQkJCQkJIGJvb2wgaWZfbm90X2V4aXN0cywKKwkJCQkJCQkJCSBib29sIG5vdF9u dWxsLAorCQkJCQkJCQkJIGJvb2wgaXNfaW1tdXRhYmxlLAogCQkJCQkJCQkJIE5vZGUgKnZhckRl ZmV4cHIsCiAJCQkJCQkJCQkgVmFyaWFibGVYYWN0RW5kQWN0aW9uIHZhclhhY3RFbmRBY3Rpb24p OwogCkBAIC01NSw2ICs1Nyw4IEBAIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1l LAogCQkJCU9pZCB2YXJPd25lciwKIAkJCQlPaWQgdmFyQ29sbGF0aW9uLAogCQkJCWJvb2wgaWZf bm90X2V4aXN0cywKKwkJCQlib29sIG5vdF9udWxsLAorCQkJCWJvb2wgaXNfaW1tdXRhYmxlLAog CQkJCU5vZGUgKnZhckRlZmV4cHIsCiAJCQkJVmFyaWFibGVYYWN0RW5kQWN0aW9uIHZhclhhY3RF bmRBY3Rpb24pCiB7CkBAIC0xMTcsNiArMTIxLDggQEAgY3JlYXRlX3ZhcmlhYmxlKGNvbnN0IGNo YXIgKnZhck5hbWUsCiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFydHlwbW9kIC0gMV0gPSBJ bnQzMkdldERhdHVtKHZhclR5cG1vZCk7CiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyb3du ZXIgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyT3duZXIpOwogCXZhbHVlc1tBbnVtX3BnX3Zh cmlhYmxlX3ZhcmNvbGxhdGlvbiAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJDb2xsYXRpb24p OworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3Zhcm5vdG51bGwgLSAxXSA9IEJvb2xHZXREYXR1 bShub3RfbnVsbCk7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFyaXNpbW11dGFibGUgLSAx XSA9IEJvb2xHZXREYXR1bShpc19pbW11dGFibGUpOwogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxl X3ZhcnhhY3RlbmRhY3Rpb24gLSAxXSA9IENoYXJHZXREYXR1bSh2YXJYYWN0RW5kQWN0aW9uKTsK IAogCWlmICh2YXJEZWZleHByKQpAQCAtMjU5LDYgKzI2NSw4IEBAIENyZWF0ZVZhcmlhYmxlKFBh cnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiAJCQkJCQkJICAg dmFyb3duZXIsCiAJCQkJCQkJICAgY29sbGF0aW9uLAogCQkJCQkJCSAgIHN0bXQtPmlmX25vdF9l eGlzdHMsCisJCQkJCQkJICAgc3RtdC0+bm90X251bGwsCisJCQkJCQkJICAgc3RtdC0+aXNfaW1t dXRhYmxlLAogCQkJCQkJCSAgIGNvb2tlZF9kZWZhdWx0LAogCQkJCQkJCSAgIHN0bXQtPlhhY3RF bmRBY3Rpb24pOwogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zh cmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKaW5kZXgg ZDI3YjNkNjM3Ni4uNGYyODRjYzNhOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFy aWFibGUuYwpAQCAtOTIsNiArOTIsOSBAQCB0eXBlZGVmIHN0cnVjdCBTVmFyaWFibGVEYXRhCiAJ dm9pZAkgICAqZG9tYWluX2NoZWNrX2V4dHJhOwogCUxvY2FsVHJhbnNhY3Rpb25JZCBkb21haW5f Y2hlY2tfZXh0cmFfbHhpZDsKIAorCWJvb2wJCW5vdF9udWxsOworCWJvb2wJCWlzX2ltbXV0YWJs ZTsKKwogCWJvb2wJCXJlc2V0X2F0X2VveDsKIAogCS8qCkBAIC0xMTAsNiArMTEzLDkgQEAgdHlw ZWRlZiBzdHJ1Y3QgU1ZhcmlhYmxlRGF0YQogCWJvb2wJCWlzX3ZhbGlkOwogCiAJdWludDMyCQlo YXNodmFsdWU7CQkvKiB1c2VkIGZvciBwYWlyaW5nIHNpbnZhbCBtZXNzYWdlICovCisKKwkvKiB0 cnVlLCB3aGVuIHRoZSB2YWx1ZSBpcyBhbHJlYWR5IHNldCwgYW5kIGNhbm5vdCBiZSBjaGFuZ2Vk IG1vcmUgKi8KKwlib29sCQlwcm90ZWN0X3ZhbHVlOwogfSBTVmFyaWFibGVEYXRhOwogCiB0eXBl ZGVmIFNWYXJpYWJsZURhdGEgKlNWYXJpYWJsZTsKQEAgLTU3MSw2ICs1NzcsMjMgQEAgZXZhbF9h c3NpZ25fZGVmZXhwcihTVmFyaWFibGUgc3ZhciwgSGVhcFR1cGxlIHR1cCkKIAogCQkJTWVtb3J5 Q29udGV4dFN3aXRjaFRvKG9sZGN4dCk7CiAJCX0KKwkJZWxzZQorCQl7CisJCQkvKgorCQkJICog UmFpc2UgYW4gZXJyb3IgaWYgdGhpcyBpcyBhIE5PVCBOVUxMIHZhcmlhYmxlIGJ1dCB0aGUgcmVz dWx0IG9mCisJCQkgKiBERUZBVUxUIGV4cHJlc3Npb24gaXMgTlVMTC4KKwkJCSAqLworCQkJaWYg KHN2YXItPm5vdF9udWxsKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29kZShFUlJD T0RFX05VTExfVkFMVUVfTk9UX0FMTE9XRUQpLAorCQkJCQkJIGVycm1zZygibnVsbCB2YWx1ZSBp cyBub3QgYWxsb3dlZCBmb3IgTk9UIE5VTEwgc2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIiLAor CQkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNl KHN2YXItPnZhcmlkKSksCisJCQkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoc3Zhci0+ dmFyaWQpKSwKKwkJCQkJCSBlcnJkZXRhaWwoIlRoZSByZXN1bHQgb2YgREVGQVVMVCBleHByZXNz aW9uIGlzIE5VTEwuIikpKTsKKwkJfQorCisJCWlmIChzdmFyLT5pc19pbW11dGFibGUpCisJCQlz dmFyLT5wcm90ZWN0X3ZhbHVlID0gdHJ1ZTsKIAogCQlGcmVlRXhlY3V0b3JTdGF0ZShlc3RhdGUp OwogCX0KQEAgLTYwMSw2ICs2MjQsOSBAQCBzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJs ZSBzdmFyLCBPaWQgdmFyaWQsIGJvb2wgaXNfd3JpdGUpCiAKIAlnZXRfdHlwbGVuYnl2YWwoc3Zh ci0+dHlwaWQsICZzdmFyLT50eXBsZW4sICZzdmFyLT50eXBieXZhbCk7CiAKKwlzdmFyLT5ub3Rf bnVsbCA9IHZhcmZvcm0tPnZhcm5vdG51bGw7CisJc3Zhci0+aXNfaW1tdXRhYmxlID0gdmFyZm9y bS0+dmFyaXNpbW11dGFibGU7CisKIAlzdmFyLT5pc19kb21haW4gPSAoZ2V0X3R5cHR5cGUodmFy Zm9ybS0+dmFydHlwZSkgPT0gVFlQVFlQRV9ET01BSU4pOwogCXN2YXItPmRvbWFpbl9jaGVja19l eHRyYSA9IE5VTEw7CiAJc3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQgPSBJbnZhbGlkTG9j YWxUcmFuc2FjdGlvbklkOwpAQCAtNjMwLDkgKzY1NiwzMSBAQCBzZXR1cF9zZXNzaW9uX3Zhcmlh YmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQsIGJvb2wgaXNfd3JpdGUpCiAJc3Zhci0+aGFz aHZhbHVlID0gR2V0U3lzQ2FjaGVIYXNoVmFsdWUxKFZBUklBQkxFT0lELAogCQkJCQkJCQkJCQlP YmplY3RJZEdldERhdHVtKHZhcmlkKSk7CiAKLQlpZiAoIWlzX3dyaXRlKQorCXN2YXItPnByb3Rl Y3RfdmFsdWUgPSBmYWxzZTsKKworCS8qCisJICogV2hlbiB0aGUgdmFyaWFibGUgaXMgbWFya2Vk IGFzIElNTVVUQUJMRSwgd2UgcHJlZmVyIHRvIGV2YWx1YXRlCisJICogcG9zc2libGUgREVGQVVM VCBiZWZvcmUgd3JpdGUgb3AuIEluIHRoaXMgY2FzZSB3ZSB3YW50IHRvIHByb3RlY3QKKwkgKiBk ZWZhdWx0IHZhbHVlIGFnYWluc3QgYW55IG92ZXJ3cml0ZS4KKwkgKi8KKwlpZiAoIWlzX3dyaXRl IHx8CisJCXN2YXItPmlzX2ltbXV0YWJsZSkKKwl7CiAJCWV2YWxfYXNzaWduX2RlZmV4cHIoc3Zh ciwgdHVwKTsKIAorCQkvKgorCQkgKiBSYWlzZSBhbiBlcnJvciBpZiB0aGlzIGlzIGEgTk9UIE5V TEwgdmFyaWFibGUgd2l0aG91dCBkZWZhdWx0CisJCSAqIGV4cHJlc3Npb24uCisJCSAqLworCQlp ZiAoc3Zhci0+aXNudWxsICYmIHN2YXItPm5vdF9udWxsKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJ CQkJKGVycmNvZGUoRVJSQ09ERV9OVUxMX1ZBTFVFX05PVF9BTExPV0VEKSwKKwkJCQkJIGVycm1z ZygibnVsbCB2YWx1ZSBpcyBub3QgYWxsb3dlZCBmb3IgTk9UIE5VTEwgc2Vzc2lvbiB2YXJpYWJs ZSBcIiVzLiVzXCIiLAorCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJp YWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQlnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1l KHZhcmlkKSksCisJCQkJCSBlcnJkZXRhaWwoIlRoZSBzZXNzaW9uIHZhcmlhYmxlIHdhcyBub3Qg aW5pdGlhbGl6ZWQgeWV0LiIpKSk7CisJfQorCiAJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CiB9CiAK QEAgLTY1Miw2ICs3MDAsMjEgQEAgc2V0X3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIs IERhdHVtIHZhbHVlLCBib29sIGlzbnVsbCkKIAlBc3NlcnQoc3Zhcik7CiAJQXNzZXJ0KCFpc251 bGwgfHwgdmFsdWUgPT0gKERhdHVtKSAwKTsKIAorCWlmIChzdmFyLT5wcm90ZWN0X3ZhbHVlKQor CQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfRVJST1JfSU5fQVNTSUdOTUVO VCksCisJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgaXMgZGVjbGFyZWQg SU1NVVRBQkxFIiwKKwkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJs ZV9uYW1lc3BhY2Uoc3Zhci0+dmFyaWQpKSwKKwkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25h bWUoc3Zhci0+dmFyaWQpKSkpOworCisJLyogZG9uJ3QgYWxsb3cgYXNzaWdubWVudCBvZiBudWxs IHRvIE5PVCBOVUxMIHZhcmlhYmxlICovCisJaWYgKGlzbnVsbCAmJiBzdmFyLT5ub3RfbnVsbCkK KwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX05VTExfVkFMVUVfTk9UX0FM TE9XRUQpLAorCQkJCSBlcnJtc2coIm51bGwgdmFsdWUgaXMgbm90IGFsbG93ZWQgZm9yIE5PVCBO VUxMIHNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIiwKKwkJCQkJCWdldF9uYW1lc3BhY2VfbmFt ZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2Uoc3Zhci0+dmFyaWQpKSwKKwkJCQkJCWdl dF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoc3Zhci0+dmFyaWQpKSkpOworCiAJLyoKIAkgKiBVc2Ug dHlwYnl2YWwsIHR5cGJ5bGVuIGZyb20gc2Vzc2lvbiB2YXJpYWJsZSBvbmx5IHdoZW4gdGhleSBh cmUKIAkgKiB0cnVzdHdvcnRoeSAodGhlIGludmFsaWRhdGlvbiBtZXNzYWdlIHdhcyBub3QgYWNj ZXB0ZWQgZm9yIHRoaXMKQEAgLTY5Miw2ICs3NTUsMTAgQEAgc2V0X3Nlc3Npb25fdmFyaWFibGUo U1ZhcmlhYmxlIHN2YXIsIERhdHVtIHZhbHVlLCBib29sIGlzbnVsbCkKIAogCXN2YXItPnZhbHVl ID0gbmV3dmFsOwogCXN2YXItPmlzbnVsbCA9IGlzbnVsbDsKKworCS8qIGRvbid0IGFsbG93IG1v cmUgY2hhbmdlcyBvZiB2YWx1ZSB3aGVuIHZhcmlhYmxlIGlzIElNTVVUQUJMRSAqLworCWlmIChz dmFyLT5pc19pbW11dGFibGUpCisJCXN2YXItPnByb3RlY3RfdmFsdWUgPSB0cnVlOwogfQogCiAv KgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3Bh cnNlci9ncmFtLnkKaW5kZXggODQxZDlmOGRmZC4uYTU5ZjY4NTBiNyAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBA IC02NjcsNiArNjY3LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNo YXIgKnJlbG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKIAkJCQlqc29uX29iamVj dF9jb25zdHJ1Y3Rvcl9udWxsX2NsYXVzZV9vcHQKIAkJCQlqc29uX2FycmF5X2NvbnN0cnVjdG9y X251bGxfY2xhdXNlX29wdAogCisldHlwZSA8Ym9vbGVhbj4JCU9wdE5vdE51bGwgT3B0SW1tdXRh YmxlCiAKIC8qCiAgKiBOb24ta2V5d29yZCB0b2tlbiB0eXBlcy4gIFRoZXNlIGFyZSBoYXJkLXdp cmVkIGludG8gdGhlICJmbGV4IiBsZXhlci4KQEAgLTUyMzAsMjcgKzUyMzEsMzEgQEAgY3JlYXRl X2V4dGVuc2lvbl9vcHRfaXRlbToKICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi8KIAogQ3JlYXRlU2Vz c2lvblZhclN0bXQ6Ci0JCQlDUkVBVEUgT3B0VGVtcCBWQVJJQUJMRSBxdWFsaWZpZWRfbmFtZSBv cHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9wdFNlc3Npb25WYXJEZWZFeHByIFhh Y3RFbmRBY3Rpb25PcHRpb24KKwkJCUNSRUFURSBPcHRUZW1wIE9wdEltbXV0YWJsZSBWQVJJQUJM RSBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIE9wdE5v dE51bGwgT3B0U2Vzc2lvblZhckRlZkV4cHIgWGFjdEVuZEFjdGlvbk9wdGlvbgogCQkJCXsKIAkJ CQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKm4gPSBtYWtlTm9kZShDcmVhdGVTZXNzaW9uVmFyU3Rt dCk7Ci0JCQkJCSQ0LT5yZWxwZXJzaXN0ZW5jZSA9ICQyOwotCQkJCQluLT52YXJpYWJsZSA9ICQ0 OwotCQkJCQluLT50eXBlTmFtZSA9ICQ2OwotCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVD bGF1c2UgKikgJDc7Ci0JCQkJCW4tPmRlZmV4cHIgPSAkODsKLQkJCQkJbi0+WGFjdEVuZEFjdGlv biA9ICQ5OworCQkJCQkkNS0+cmVscGVyc2lzdGVuY2UgPSAkMjsKKwkJCQkJbi0+aXNfaW1tdXRh YmxlID0gJDM7CisJCQkJCW4tPnZhcmlhYmxlID0gJDU7CisJCQkJCW4tPnR5cGVOYW1lID0gJDc7 CisJCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVzZSAqKSAkODsKKwkJCQkJbi0+bm90 X251bGwgPSAkOTsKKwkJCQkJbi0+ZGVmZXhwciA9ICQxMDsKKwkJCQkJbi0+WGFjdEVuZEFjdGlv biA9ICQxMTsKIAkJCQkJbi0+aWZfbm90X2V4aXN0cyA9IGZhbHNlOwogCQkJCQkkJCA9IChOb2Rl ICopIG47CiAJCQkJfQotCQkJfCBDUkVBVEUgT3B0VGVtcCBWQVJJQUJMRSBJRl9QIE5PVCBFWElT VFMgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZSBPcHRT ZXNzaW9uVmFyRGVmRXhwciBYYWN0RW5kQWN0aW9uT3B0aW9uCisJCQl8IENSRUFURSBPcHRUZW1w IE9wdEltbXV0YWJsZSBWQVJJQUJMRSBJRl9QIE5PVCBFWElTVFMgcXVhbGlmaWVkX25hbWUgb3B0 X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZSBPcHROb3ROdWxsIE9wdFNlc3Npb25WYXJE ZWZFeHByIFhhY3RFbmRBY3Rpb25PcHRpb24KIAkJCQl7CiAJCQkJCUNyZWF0ZVNlc3Npb25WYXJT dG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlU2Vzc2lvblZhclN0bXQpOwotCQkJCQkkNy0+cmVscGVy c2lzdGVuY2UgPSAkMjsKLQkJCQkJbi0+dmFyaWFibGUgPSAkNzsKLQkJCQkJbi0+dHlwZU5hbWUg PSAkOTsKLQkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQxMDsKLQkJCQkJ bi0+ZGVmZXhwciA9ICQxMTsKLQkJCQkJbi0+WGFjdEVuZEFjdGlvbiA9ICQxMjsKKwkJCQkJJDgt PnJlbHBlcnNpc3RlbmNlID0gJDI7CisJCQkJCW4tPmlzX2ltbXV0YWJsZSA9ICQzOworCQkJCQlu LT52YXJpYWJsZSA9ICQ4OworCQkJCQluLT50eXBlTmFtZSA9ICQxMDsKKwkJCQkJbi0+Y29sbENs YXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQxMTsKKwkJCQkJbi0+bm90X251bGwgPSAkMTI7CisJ CQkJCW4tPmRlZmV4cHIgPSAkMTM7CisJCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkMTQ7CiAJCQkJ CW4tPmlmX25vdF9leGlzdHMgPSB0cnVlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQpA QCAtNTI3MCw2ICs1Mjc1LDE0IEBAIFhhY3RFbmRBY3Rpb25PcHRpb246ICBPTiBDT01NSVQgRFJP UAkJCQl7ICQkID0gVkFSSUFCTEVfWEFDVEVORF9EUk9QOyB9CiAJCTsKIAogCitPcHROb3ROdWxs OiBOT1QgTlVMTF9QCQkJCQkJCQl7ICQkID0gdHJ1ZTsgfQorCQkJfCAvKiBFTVBUWSAqLwkJCQkJ CQl7ICQkID0gZmFsc2U7IH0KKwkJOworCitPcHRJbW11dGFibGU6IElNTVVUQUJMRQkJCQkJCQkJ eyAkJCA9IHRydWU7IH0KKwkJCXwgLyogRU1QVFkgKi8JCQkJCQkJeyAkJCA9IGZhbHNlOyB9CisJ CTsKKwogLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqCiAgKgogICogQUxURVIgRVhURU5TSU9OIG5hbWUg VVBEQVRFIFsgVE8gdmVyc2lvbiBdCmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVt cC5jIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwppbmRleCBhNmMzM2QyZWRlLi5iNGM2MWRh MTg4IDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCisrKyBiL3NyYy9iaW4v cGdfZHVtcC9wZ19kdW1wLmMKQEAgLTU0NDAsNiArNTQ0MCw4IEBAIGdldFZhcmlhYmxlcyhBcmNo aXZlICpmb3V0KQogCWludAkJCWlfdmFyeGFjdGVuZGFjdGlvbjsKIAlpbnQJCQlpX3Zhcm93bmVy OwogCWludAkJCWlfdmFyY29sbGF0aW9uOworCWludAkJCWlfdmFybm90bnVsbDsKKwlpbnQJCQlp X3ZhcmlzaW1tdXRhYmxlOwogCWludAkJCWlfdmFyYWNsOwogCWludAkJCWlfYWNsZGVmYXVsdDsK IAlpbnQJCQlpLApAQCAtNTQ2Miw2ICs1NDY0LDggQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZv dXQpCiAJCQkJCSAgIiAgICAgICAgICAgIFRIRU4gdi52YXJjb2xsYXRpb25cbiIKIAkJCQkJICAi ICAgICAgICAgICAgRUxTRSAwXG4iCiAJCQkJCSAgIiAgICAgICBFTkQgQVMgdmFyY29sbGF0aW9u LFxuIgorCQkJCQkgICIgICAgICAgdi52YXJub3RudWxsLFxuIgorCQkJCQkgICIgICAgICAgdi52 YXJpc2ltbXV0YWJsZSxcbiIKIAkJCQkJICAiICAgICAgIHBnX2NhdGFsb2cucGdfZ2V0X2V4cHIo di52YXJkZWZleHByLDApIGFzIHZhcmRlZmV4cHIsXG4iCiAJCQkJCSAgIiAgICAgICB2LnZhcm93 bmVyLCB2LnZhcmFjbCxcbiIKIAkJCQkJICAiICAgICAgIGFjbGRlZmF1bHQoJ1YnLCB2LnZhcm93 bmVyKSBBUyBhY2xkZWZhdWx0XG4iCkBAIC01NDgyLDYgKzU0ODYsOCBAQCBnZXRWYXJpYWJsZXMo QXJjaGl2ZSAqZm91dCkKIAlpX3ZhcmRlZmV4cHIgPSBQUWZudW1iZXIocmVzLCAidmFyZGVmZXhw ciIpOwogCWlfdmFyeGFjdGVuZGFjdGlvbiA9IFBRZm51bWJlcihyZXMsICJ2YXJ4YWN0ZW5kYWN0 aW9uIik7CiAJaV92YXJjb2xsYXRpb24gPSBQUWZudW1iZXIocmVzLCAidmFyY29sbGF0aW9uIik7 CisJaV92YXJub3RudWxsID0gUFFmbnVtYmVyKHJlcywgInZhcm5vdG51bGwiKTsKKwlpX3Zhcmlz aW1tdXRhYmxlID0gUFFmbnVtYmVyKHJlcywgInZhcmlzaW1tdXRhYmxlIik7CiAKIAlpX3Zhcm93 bmVyID0gUFFmbnVtYmVyKHJlcywgInZhcm93bmVyIik7CiAJaV92YXJhY2wgPSBQUWZudW1iZXIo cmVzLCAidmFyYWNsIik7CkBAIC01NTA4LDYgKzU1MTQsOCBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2 ZSAqZm91dCkKIAkJCXBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJ4YWN0ZW5kYWN0 aW9uKSk7CiAKIAkJdmFyaW5mb1tpXS52YXJjb2xsYXRpb24gPSBhdG9vaWQoUFFnZXR2YWx1ZShy ZXMsIGksIGlfdmFyY29sbGF0aW9uKSk7CisJCXZhcmluZm9baV0udmFybm90bnVsbCA9ICooUFFn ZXR2YWx1ZShyZXMsIGksIGlfdmFybm90bnVsbCkpID09ICd0JzsKKwkJdmFyaW5mb1tpXS52YXJp c2ltbXV0YWJsZSA9ICooUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyaXNpbW11dGFibGUpKSA9PSAn dCc7CiAKIAkJdmFyaW5mb1tpXS5kYWNsLmFjbCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywg aSwgaV92YXJhY2wpKTsKIAkJdmFyaW5mb1tpXS5kYWNsLmFjbGRlZmF1bHQgPSBwZ19zdHJkdXAo UFFnZXR2YWx1ZShyZXMsIGksIGlfYWNsZGVmYXVsdCkpOwpAQCAtNTU1NCw3ICs1NTYyLDkgQEAg ZHVtcFZhcmlhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykK IAljb25zdCBjaGFyICp2YXJ0eXBuYW1lOwogCWNvbnN0IGNoYXIgKnZhcmRlZmV4cHI7CiAJY29u c3QgY2hhciAqdmFyeGFjdGVuZGFjdGlvbjsKKwljb25zdCBjaGFyICp2YXJpc2ltbXV0YWJsZTsK IAlPaWQJCQl2YXJjb2xsYXRpb247CisJYm9vbAkJdmFybm90bnVsbDsKIAogCS8qIHNraXAgaWYg bm90IHRvIGJlIGR1bXBlZCAqLwogCWlmICghdmFyaW5mby0+ZG9iai5kdW1wIHx8ICFkb3B0LT5k dW1wU2NoZW1hKQpAQCAtNTU2OCwxMiArNTU3OCwxNCBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAq Zm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKQogCXZhcmRlZmV4cHIgPSB2YXJpbmZv LT52YXJkZWZleHByOwogCXZhcnhhY3RlbmRhY3Rpb24gPSB2YXJpbmZvLT52YXJ4YWN0ZW5kYWN0 aW9uOwogCXZhcmNvbGxhdGlvbiA9IHZhcmluZm8tPnZhcmNvbGxhdGlvbjsKKwl2YXJub3RudWxs ID0gdmFyaW5mby0+dmFybm90bnVsbDsKKwl2YXJpc2ltbXV0YWJsZSA9IHZhcmluZm8tPnZhcmlz aW1tdXRhYmxlID8gIklNTVVUQUJMRSAiIDogIiI7CiAKIAlhcHBlbmRQUUV4cEJ1ZmZlcihkZWxx LCAiRFJPUCBWQVJJQUJMRSAlcztcbiIsCiAJCQkJCSAgcXVhbHZhcm5hbWUpOwogCi0JYXBwZW5k UFFFeHBCdWZmZXIocXVlcnksICJDUkVBVEUgVkFSSUFCTEUgJXMgQVMgJXMiLAotCQkJCQkgIHF1 YWx2YXJuYW1lLCB2YXJ0eXBuYW1lKTsKKwlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIkNSRUFU RSAlc1ZBUklBQkxFICVzIEFTICVzIiwKKwkJCQkJICB2YXJpc2ltbXV0YWJsZSwgcXVhbHZhcm5h bWUsIHZhcnR5cG5hbWUpOwogCiAJaWYgKE9pZElzVmFsaWQodmFyY29sbGF0aW9uKSkKIAl7CkBA IC01NTg1LDYgKzU1OTcsOSBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFy aWFibGVJbmZvICp2YXJpbmZvKQogCQkJCQkJCSAgZm10UXVhbGlmaWVkRHVtcGFibGUoY29sbCkp OwogCX0KIAorCWlmICh2YXJub3RudWxsKQorCQlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwgIiBO T1QgTlVMTCIpOworCiAJaWYgKHZhcmRlZmV4cHIpCiAJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5 LCAiIERFRkFVTFQgJXMiLAogCQkJCQkJICB2YXJkZWZleHByKTsKZGlmZiAtLWdpdCBhL3NyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmggYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IDI2 MTM3MDBlMTkuLjA1NjI0OTdmMzQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1w LmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaApAQCAtNzI1LDYgKzcyNSw4IEBAIHR5 cGVkZWYgc3RydWN0IF9WYXJpYWJsZUluZm8KIAljaGFyCSAgICppbml0cnZhcmFjbDsKIAlPaWQJ CQl2YXJjb2xsYXRpb247CiAJY29uc3QgY2hhciAqcm9sbmFtZTsJCS8qIG5hbWUgb2Ygb3duZXIs IG9yIGVtcHR5IHN0cmluZyAqLworCWJvb2wJCXZhcm5vdG51bGw7CisJYm9vbAkJdmFyaXNpbW11 dGFibGU7CiB9IFZhcmlhYmxlSW5mbzsKIAogLyoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVt cC90LzAwMl9wZ19kdW1wLnBsIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKaW5k ZXggZmNmNjg5NjZiMC4uMWJiYTY4ZTZhZSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3Qv MDAyX3BnX2R1bXAucGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKQEAg LTQwNDEsNiArNDA0MSw0MiBAQCBteSAldGVzdHMgPSAoCiAJCX0sCiAJfSwKIAorCSdDUkVBVEUg SU1NVVRBQkxFIFZBUklBQkxFIHRlc3RfdmFyaWFibGUnID0+IHsKKwkJYWxsX3J1bnMgICAgID0+ IDEsCisJCWNhdGNoX2FsbCAgICA9PiAnQ1JFQVRFIC4uLiBjb21tYW5kcycsCisJCWNyZWF0ZV9v cmRlciA9PiA2MSwKKwkJY3JlYXRlX3NxbCAgID0+ICdDUkVBVEUgSU1NVVRBQkxFIFZBUklBQkxF IGR1bXBfdGVzdC52YXJpYWJsZTUgQVMgaW50ZWdlcicsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlc UUNSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlNSBBUyBpbnRlZ2Vy O1xFL3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJCQklZHVtcF90ZXN0X3NjaGVt YV9ydW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9LAorCQl1bmxpa2UgPT4gewor CQkJZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlvbmx5X2R1bXBfbWVhc3VyZW1l bnQgICAgPT4gMSwKKwkJfSwKKwl9LAorCisJJ0NSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgdGVz dF92YXJpYWJsZSBOT1QgTlVMTCBERUZBVUxUJyA9PiB7CisJCWFsbF9ydW5zICAgICA9PiAxLAor CQljYXRjaF9hbGwgICAgPT4gJ0NSRUFURSAuLi4gY29tbWFuZHMnLAorCQljcmVhdGVfb3JkZXIg PT4gNjEsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIElNTVVUQUJMRSBWQVJJQUJMRSBkdW1w X3Rlc3QudmFyaWFibGU3IEFTIGludGVnZXIgTk9UIE5VTEwgREVGQVVMVCAxMCcsCisJCXJlZ2V4 cCA9PiBxci9eCisJCQlcUUNSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlh YmxlNyBBUyBpbnRlZ2VyIE5PVCBOVUxMIERFRkFVTFQgMTA7XEUveG0sCisJCWxpa2UgPT4gewor CQkJJWZ1bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rfc2NoZW1hX3J1bnMsCisJCQlzZWN0aW9uX3By ZV9kYXRhID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7CisJCQlleGNsdWRlX2R1bXBfdGVzdF9z Y2hlbWEgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJlbWVudCAgICA9PiAxLAorCQl9LAorCX0s CisKIAknQ1JFQVRFIFZJRVcgdGVzdF92aWV3JyA9PiB7CiAJCWNyZWF0ZV9vcmRlciA9PiA2MSwK IAkJY3JlYXRlX3NxbCA9PiAnQ1JFQVRFIFZJRVcgZHVtcF90ZXN0LnRlc3RfdmlldwpkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpp bmRleCAyOTBkYzYyNGZlLi43NGUxYmM1NTc4IDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVz Y3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtNTI1MCw3ICs1MjUwLDcg QEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJUFFF eHBCdWZmZXJEYXRhIGJ1ZjsKIAlQR3Jlc3VsdCAgICpyZXM7CiAJcHJpbnRRdWVyeU9wdCBteW9w dCA9IHBzZXQucG9wdDsKLQlzdGF0aWMgY29uc3QgYm9vbCB0cmFuc2xhdGVfY29sdW1uc1tdID0g e2ZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2V9OworCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2Us IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2UsIGZhbHNlfTsKIAogCWlmIChwc2V0LnN2ZXJzaW9uIDwgMTgwMDAwKQogCXsKQEAgLTUy NzEsNiArNTI3MSw4IEBAIGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2 ZXJib3NlKQogCQkJCQkgICIgIChTRUxFQ1QgYy5jb2xsbmFtZSBGUk9NIHBnX2NhdGFsb2cucGdf Y29sbGF0aW9uIGMsIHBnX2NhdGFsb2cucGdfdHlwZSBidFxuIgogCQkJCQkgICIgICBXSEVSRSBj Lm9pZCA9IHYudmFyY29sbGF0aW9uIEFORCBidC5vaWQgPSB2LnZhcnR5cGUgQU5EIHYudmFyY29s bGF0aW9uIDw+IGJ0LnR5cGNvbGxhdGlvbikgYXMgXCIlc1wiLFxuIgogCQkJCQkgICIgIHBnX2Nh dGFsb2cucGdfZ2V0X3VzZXJieWlkKHYudmFyb3duZXIpIGFzIFwiJXNcIixcbiIKKwkJCQkJICAi ICBOT1Qgdi52YXJub3RudWxsIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICBOT1Qgdi52YXJpc2lt bXV0YWJsZSBhcyBcIiVzXCIsXG4iCiAJCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfZXhwcih2 LnZhcmRlZmV4cHIsIDApIGFzIFwiJXNcIixcbiIKIAkJCQkJICAiICBDQVNFIHYudmFyeGFjdGVu ZGFjdGlvblxuIgogCQkJCQkgICIgICAgV0hFTiAnZCcgVEhFTiAnT04gQ09NTUlUIERST1AnXG4i CkBAIC01MjgxLDYgKzUyODMsOCBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4s IGJvb2wgdmVyYm9zZSkKIAkJCQkJICBnZXR0ZXh0X25vb3AoIlR5cGUiKSwKIAkJCQkJICBnZXR0 ZXh0X25vb3AoIkNvbGxhdGlvbiIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiT3duZXIiKSwKKwkJ CQkJICBnZXR0ZXh0X25vb3AoIk51bGxhYmxlIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJNdXRh YmxlIiksCiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJEZWZhdWx0IiksCiAJCQkJCSAgZ2V0dGV4dF9u b29wKCJUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24iKSk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4v cHNxbC90YWItY29tcGxldGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpp bmRleCAyNDlmNjE4NzhkLi5kNjgzOGFlM2MxIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFi LWNvbXBsZXRlLmluLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC0x MjczLDYgKzEyNzMsOCBAQCBzdGF0aWMgY29uc3QgcGdzcWxfdGhpbmdfdCB3b3Jkc19hZnRlcl9j cmVhdGVbXSA9IHsKIAl7IkZPUkVJR04gVEFCTEUiLCBOVUxMLCBOVUxMLCBOVUxMfSwKIAl7IkZV TkNUSU9OIiwgTlVMTCwgTlVMTCwgUXVlcnlfZm9yX2xpc3Rfb2ZfZnVuY3Rpb25zfSwKIAl7IkdS T1VQIiwgUXVlcnlfZm9yX2xpc3Rfb2Zfcm9sZXN9LAorCXsiSU1NVVRBQkxFIFZBUklBQkxFIiwg TlVMTCwgTlVMTCwgTlVMTCwgTlVMTCwgVEhJTkdfTk9fRFJPUCB8IFRISU5HX05PX0FMVEVSfSwg LyogZm9yIENSRUFURSBJTU1VVEFCTEUKKwkJCQkJCQkJCQkJCQkJCQkJCQkJCSAqIFZBUklBQkxF IC4uLiAqLwogCXsiSU5ERVgiLCBOVUxMLCBOVUxMLCAmUXVlcnlfZm9yX2xpc3Rfb2ZfaW5kZXhl c30sCiAJeyJMQU5HVUFHRSIsIFF1ZXJ5X2Zvcl9saXN0X29mX2xhbmd1YWdlc30sCiAJeyJMQVJH RSBPQkpFQ1QiLCBOVUxMLCBOVUxMLCBOVUxMLCBOVUxMLCBUSElOR19OT19DUkVBVEUgfCBUSElO R19OT19EUk9QfSwKQEAgLTM2MDgsNyArMzYxMCw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGlu dCBwYXR0ZXJuX2lkLAogLyogQ1JFQVRFIFRBQkxFIC0tLSBpcyBhbGxvd2VkIGluc2lkZSBDUkVB VEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8KIAkvKiBDb21wbGV0ZSAiQ1JFQVRFIFRF TVAvVEVNUE9SQVJZIiB3aXRoIHRoZSBwb3NzaWJsZSB0ZW1wIG9iamVjdHMgKi8KIAllbHNlIGlm IChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlRFTVB8VEVNUE9SQVJZIikpCi0JCUNPTVBMRVRFX1dJ VEgoIlNFUVVFTkNFIiwgIlRBQkxFIiwgIlZBUklBQkxFIiwgIlZJRVciKTsKKwkJQ09NUExFVEVf V0lUSCgiSU1NVVRBQkxFIFZBUklBQkxFIiwgIlNFUVVFTkNFIiwgIlRBQkxFIiwgIlZBUklBQkxF IiwKKwkJCQkJICAiVklFVyIpOwogCS8qIENvbXBsZXRlICJDUkVBVEUgVU5MT0dHRUQiIHdpdGgg VEFCTEUgb3IgU0VRVUVOQ0UgKi8KIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlVO TE9HR0VEIikpCiAJCUNPTVBMRVRFX1dJVEgoIlRBQkxFIiwgIlNFUVVFTkNFIik7CkBAIC0zOTYw LDcgKzM5NjMsOCBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIC8qIENS RUFURSBWQVJJQUJMRSAtLS0gaXMgYWxsb3dlZCBpbnNpZGUgQ1JFQVRFIFNDSEVNQSwgc28gdXNl IFRhaWxNYXRjaGVzICovCiAJLyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxFIDxuYW1lPiB3aXRo IEFTICovCiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkNSRUFURSIsICJWQVJJQUJMRSIsIE1hdGNo QW55KSB8fAotCQkJIFRhaWxNYXRjaGVzKCJURU1QfFRFTVBPUkFSWSIsICJWQVJJQUJMRSIsIE1h dGNoQW55KSkKKwkJCSBUYWlsTWF0Y2hlcygiVEVNUHxURU1QT1JBUlkiLCAiVkFSSUFCTEUiLCBN YXRjaEFueSkgfHwKKwkJCSBUYWlsTWF0Y2hlcygiSU1NVVRBQkxFIiwgIlZBUklBQkxFIiwgTWF0 Y2hBbnkpKQogCQlDT01QTEVURV9XSVRIKCJBUyIpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJW QVJJQUJMRSIsIE1hdGNoQW55LCAiQVMiKSkKIAkJLyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxF IDxuYW1lPiB3aXRoIEFTIHR5cGVzICovCkBAIC00NjIwLDYgKzQ2MjQsMTAgQEAgbWF0Y2hfcHJl dmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkZST00i LCAiU0VSVkVSIiwgTWF0Y2hBbnksICJJTlRPIiwgTWF0Y2hBbnkpKQogCQlDT01QTEVURV9XSVRI KCJPUFRJT05TICgiKTsKIAorLyogSU1NVVRBQkxFIC0tIGNhbiBiZSBleHBlbmQgdG8gSU1NVVRB QkxFIFZBUklBQkxFICovCisJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkNSRUFURSIsICJJTU1VVEFC TEUiKSkKKwkJQ09NUExFVEVfV0lUSCgiVkFSSUFCTEUiKTsKKwogLyogSU5TRVJUIC0tLSBjYW4g YmUgaW5zaWRlIEVYUExBSU4sIFJVTEUsIGV0YyAqLwogCS8qIENvbXBsZXRlIE5PVCBNQVRDSEVE IFRIRU4gSU5TRVJUICovCiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIk5PVCIsICJNQVRDSEVEIiwg IlRIRU4iLCAiSU5TRVJUIikpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Zh cmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKaW5kZXggMDlkZDQ0 YTQ0ZS4uY2YyMWUwNDI2YSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJp YWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaApAQCAtNTYsNiAr NTYsMTIgQEAgQ0FUQUxPRyhwZ192YXJpYWJsZSw5MjIyLFZhcmlhYmxlUmVsYXRpb25JZCkKIAkv KiB0eXBtb2QgZm9yIHZhcmlhYmxlJ3MgdHlwZSAqLwogCWludDMyCQl2YXJ0eXBtb2QgQktJX0RF RkFVTFQoLTEpOwogCisJLyogZG9uJ3QgYWxsb3cgTlVMTCAqLworCWJvb2wJCXZhcm5vdG51bGwg QktJX0RFRkFVTFQoZik7CisKKwkvKiBkb24ndCBhbGxvdyBjaGFuZ2VzICovCisJYm9vbAkJdmFy aXNpbW11dGFibGUgQktJX0RFRkFVTFQoZik7CisKIAkvKiBhY3Rpb24gb24gdHJhbnNhY3Rpb24g ZW5kICovCiAJY2hhcgkJdmFyeGFjdGVuZGFjdGlvbiBCS0lfREVGQVVMVChuKTsKIApkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMv cGFyc2Vub2Rlcy5oCmluZGV4IGFjYzdkNzNmYjguLjFhN2Y0NDNjZTcgMTAwNjQ0Ci0tLSBhL3Ny Yy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJz ZW5vZGVzLmgKQEAgLTM0ODcsNiArMzQ4Nyw4IEBAIHR5cGVkZWYgc3RydWN0IENyZWF0ZVNlc3Np b25WYXJTdG10CiAJVHlwZU5hbWUgICAqdHlwZU5hbWU7CQkvKiB0aGUgdHlwZSBvZiB2YXJpYWJs ZSAqLwogCUNvbGxhdGVDbGF1c2UgKmNvbGxDbGF1c2U7CiAJYm9vbAkJaWZfbm90X2V4aXN0czsJ LyogZG8gbm90aGluZyBpZiBpdCBhbHJlYWR5IGV4aXN0cyAqLworCWJvb2wJCW5vdF9udWxsOwkJ LyogZGlzYWxsb3cgbnVsbHMgKi8KKwlib29sCQlpc19pbW11dGFibGU7CS8qIGRvbid0IGFsbG93 IGNoYW5nZXMgKi8KIAlOb2RlCSAgICpkZWZleHByOwkJLyogZGVmYXVsdCBleHByZXNzaW9uICov CiAJY2hhcgkJWGFjdEVuZEFjdGlvbjsJLyogb24gdHJhbnNhY3Rpb24gZW5kIGFjdGlvbiAqLwog fSBDcmVhdGVTZXNzaW9uVmFyU3RtdDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcHNxbC5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CmluZGV4 IGJjN2I2MGE5N2UuLjc3YTdiZjQ1YzggMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvcHNxbC5vdXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dApA QCAtNTkzNSwyMCArNTkzNSwyMCBAQCBDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVy OwogU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKIENSRUFURSBWQVJJQUJMRSB2 YXIxIEFTIHZhcmNoYXIgQ09MTEFURSAiQyI7CiBcZFYrIHZhcjEKLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFy aWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwg ICAgICAgICBPd25lciAgICAgICAgICB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rp b24gfCBBY2Nlc3MgcHJpdmlsZWdlcyB8IERlc2NyaXB0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0t LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0t LS0tLS0tLS0tLS0KLSBwdWJsaWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAg ICAgfCByZWdyZXNzX3ZhcmlhYmxlX293bmVyIHwgICAgICAgICB8ICAgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2 YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24g fCAgICAgICAgIE93bmVyICAgICAgICAgIHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgRGVmYXVsdCB8 IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8IEFjY2VzcyBwcml2aWxlZ2VzIHwgRGVzY3JpcHRp b24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQor IHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3Nf dmFyaWFibGVfb3duZXIgfCB0ICAgICAgICB8IHQgICAgICAgfCAgICAgICAgIHwgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogR1JBTlQg U0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gUFVCTElDOwogQ09NTUVOVCBPTiBWQVJJQUJMRSB2 YXIxIElTICdzb21lIGRlc2NyaXB0aW9uJzsKIFxkVisgdmFyMQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAg ICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAgIHwgRGVmYXVsdCB8IFRyYW5z YWN0aW9uYWwgZW5kIGFjdGlvbiB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAg ICAgICAgICAgICAgICB8ICAgRGVzY3JpcHRpb24gICAgCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQotIHB1YmxpYyB8IHZh cjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3du ZXIgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgcmVncmVzc192YXJpYWJs ZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVyK3wgc29tZSBkZXNjcmlwdGlvbgotICAg ICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICB8ICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgPXIvcmVn cmVzc192YXJpYWJsZV9vd25lciAgICAgICAgICAgICAgICAgICAgICAgIHwgCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1l IHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAgICAgICAg IHwgTnVsbGFibGUgfCBNdXRhYmxlIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlv biB8ICAgICAgICAgICAgICAgIEFjY2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8ICAg RGVzY3JpcHRpb24gICAgCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQorIHB1YmxpYyB8 IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVf b3duZXIgfCB0ICAgICAgICB8IHQgICAgICAgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg ICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293bmVy K3wgc29tZSBkZXNjcmlwdGlvbgorICAgICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAgICB8 ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8ICAgICAgICAg fCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgPXIvcmVncmVzc192YXJpYWJs ZV9vd25lciAgICAgICAgICAgICAgICAgICAgICAgIHwgCiAoMSByb3cpCiAKIERST1AgVkFSSUFC TEUgdmFyMTsKQEAgLTY0MTYsOSArNjQxNiw5IEBAIExpc3Qgb2Ygc2NoZW1hcwogKDAgcm93cykK IAogXGRWICJuby5zdWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBP d25lciB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCi0tLS0tLS0tLSstLS0t LS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qg b2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8 IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24g CistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLSst LS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQog CiAtLSBhZ2FpbiwgYnV0IHdpdGggZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KQEAgLTY1 OTEsOSArNjU5MSw5IEBAIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQg bmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmluc3RhCiBcZHkgIm5vLnN1Y2guc2No ZW1hIi4ibm8uc3VjaC5ldmVudC50cmlnZ2VyIgogaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRv byBtYW55IGRvdHRlZCBuYW1lcyk6ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJp Z2dlciIKIFxkViAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgotICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8 IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBh Y3Rpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUg fCBDb2xsYXRpb24gfCBPd25lciB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFu c2FjdGlvbmFsIGVuZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0t Ky0tLS0tLS0rLS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2FpbiwgYnV0IHdpdGggY3VycmVudCBkYXRhYmFz ZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KQEAgLTY3MzAsOSArNjczMCw5IEBA IExpc3Qgb2YgdGV4dCBzZWFyY2ggdGVtcGxhdGVzCiAoMCByb3dzKQogCiBcZFYgcmVncmVzc2lv bi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBD b2xsYXRpb24gfCBPd25lciB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCi0t LS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRp b24gfCBPd25lciB8IE51bGxhYmxlIHwgTXV0YWJsZSB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFs IGVuZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0r LS0tLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CiAoMCByb3dzKQogCiAtLSBhZ2FpbiwgYnV0IHdpdGggZG90dGVkIGRhdGFiYXNlIGFuZCBkb3R0 ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9l eHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVk L3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRleCBmYTk2MzA0MDAyLi4wOWJiNGIyZmIyIDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAor KysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAt MjQ1MiwzICsyNDUyLDE0OCBAQCBTRUxFQ1QgdmFyMTsKIAogRFJPUCBWQVJJQUJMRSB2YXIxOwog RFJPUCBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCk7CistLSB0ZXN0IE5PVCBOVUxMCistLSBzaG91bGQg YmUgb2sKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBOT1QgTlVMTDsKKy0tIHNob3VsZCB0 byBmYWlsCitTRUxFQ1QgdmFyMTsKK0VSUk9SOiAgbnVsbCB2YWx1ZSBpcyBub3QgYWxsb3dlZCBm b3IgTk9UIE5VTEwgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiCitERVRBSUw6ICBUaGUg c2Vzc2lvbiB2YXJpYWJsZSB3YXMgbm90IGluaXRpYWxpemVkIHlldC4KKy0tc2hvdWxkIGJlIG9r CitMRVQgdmFyMSA9IDEwOworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygx IHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworLS0gc2hvdWxkIGJlIG9rCitDUkVBVEUgVkFS SUFCTEUgdmFyMSBBUyBpbnQgTk9UIE5VTEwgREVGQVVMVCAwOworLS1zaG91bGQgYmUgb2sKK1NF TEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgICAwCisoMSByb3cpCisKKy0tIHNob3VsZCBi ZSBvaworTEVUIHZhcjEgPSAxMDsKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEw CisoMSByb3cpCisKK0RJU0NBUkQgVkFSSUFCTEVTOworLS0gc2hvdWxkIHRvIGZhaWwKK0xFVCB2 YXIxID0gTlVMTDsKK0VSUk9SOiAgbnVsbCB2YWx1ZSBpcyBub3QgYWxsb3dlZCBmb3IgTk9UIE5V TEwgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiCitEUk9QIFZBUklBQkxFIHZhcjE7Cist LSB0ZXN0IE5PVCBOVUxMCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCkK K1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgorICBSRVRVUk4gTlVMTDsKK0VORDsKKyQkIExBTkdV QUdFIHBscGdzcWw7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgTk9UIE5VTEwgREVGQVVM VCB2YXJ0ZXN0X2Z4KCk7CistLSBzaG91bGQgdG8gZmFpbAorU0VMRUNUIHZhcjE7CitFUlJPUjog IG51bGwgdmFsdWUgaXMgbm90IGFsbG93ZWQgZm9yIE5PVCBOVUxMIHNlc3Npb24gdmFyaWFibGUg InB1YmxpYy52YXIxIgorREVUQUlMOiAgVGhlIHJlc3VsdCBvZiBERUZBVUxUIGV4cHJlc3Npb24g aXMgTlVMTC4KK0RJU0NBUkQgVkFSSUFCTEVTOworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9 IDEwOworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworQ1JF QVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdmFydGVzdF9meCgpCitSRVRVUk5TIGludCBBUyAkJAor QkVHSU4KKyAgUkVUVVJOIDA7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworRElTQ0FSRCBW QVJJQUJMRVM7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0K KyAgICAwCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgRlVOQ1RJT04gdmFy dGVzdF9meCgpOworLS0gdGVzdCBJTU1VVEJMRQorQ1JFQVRFIElNTVVUQUJMRSBWQVJJQUJMRSB2 YXIxIEFTIGludDsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0t LQorICAgICAKKygxIHJvdykKKworLS0gZmlyc3Qgd3JpdGUgc2hvdWxkIG9rCistLSBzaG91bGQg YmUgb2sKK0xFVCB2YXIxID0gMTA7CistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSAyMDsKK0VS Uk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIGlzIGRlY2xhcmVkIElNTVVUQUJM RQorRElTQ0FSRCBWQVJJQUJMRVM7CistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gMTA7Cist LSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSAyMDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAi cHVibGljLnZhcjEiIGlzIGRlY2xhcmVkIElNTVVUQUJMRQorRElTQ0FSRCBWQVJJQUJMRVM7Cist LSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgICAgCisoMSBy b3cpCisKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSBOVUxMOworLS0gc2hvdWxkIGZhaWwK K0xFVCB2YXIxID0gMjA7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIiBp cyBkZWNsYXJlZCBJTU1VVEFCTEUKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBJTU1VVEFC TEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgREVGQVVMVCAxMDsKKy0tIGRvbid0IGFsbG93IGNoYW5n ZSB3aGVuIHZhcmlhYmxlIGhhcyBERUZBVUxUIHZhbHVlCistLSBzaG91bGQgdG8gZmFpbAorTEVU IHZhcjEgPSAyMDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAicHVibGljLnZhcjEiIGlzIGRl Y2xhcmVkIElNTVVUQUJMRQorRElTQ0FSRCBWQVJJQUJMRVM7CistLSBzaG91bGQgYmUgb2sKK1NF TEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKKy0tIHNob3VsZCBm YWlsCitMRVQgdmFyMSA9IDIwOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFy MSIgaXMgZGVjbGFyZWQgSU1NVVRBQkxFCitEUk9QIFZBUklBQkxFIHZhcjE7CistLSBzaG91bGQg YmUgb2sKK0NSRUFURSBJTU1VVEFCTEUgVkFSSUFCTEUgdmFyMSBBUyBJTlQgTk9UIE5VTEwgREVG QVVMVCAxMDsKKy0tIHNob3VsZCB0byBmYWlsCitMRVQgdmFyMSA9IDEwOworRVJST1I6ICBzZXNz aW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgaXMgZGVjbGFyZWQgSU1NVVRBQkxFCitMRVQgdmFy MSA9IDIwOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgaXMgZGVjbGFy ZWQgSU1NVVRBQkxFCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0t LS0KKyAgIDEwCisoMSByb3cpCisKKy0tIHNob3VsZCB0byBmYWlsCitMRVQgdmFyMSA9IDMwOwor RVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgaXMgZGVjbGFyZWQgSU1NVVRB QkxFCitEUk9QIFZBUklBQkxFIHZhcjE7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zh cmlhYmxlcy5zcWwKaW5kZXggZjY2OTViOGQ3OS4uYjgzZjJhNmJiYiAxMDA2NDQKLS0tIGEvc3Jj L3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAtMTY4NiwzICsxNjg2LDEyNSBAQCBT RUxFQ1QgdmFyMTsKIAogRFJPUCBWQVJJQUJMRSB2YXIxOwogRFJPUCBGVU5DVElPTiB2YXJ0ZXN0 X2Z4KCk7CisKKy0tIHRlc3QgTk9UIE5VTEwKKy0tIHNob3VsZCBiZSBvaworQ1JFQVRFIFZBUklB QkxFIHZhcjEgQVMgaW50IE5PVCBOVUxMOworLS0gc2hvdWxkIHRvIGZhaWwKK1NFTEVDVCB2YXIx OworCistLXNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAxMDsKK1NFTEVDVCB2YXIxOworCitEUk9Q IFZBUklBQkxFIHZhcjE7CisKKy0tIHNob3VsZCBiZSBvaworQ1JFQVRFIFZBUklBQkxFIHZhcjEg QVMgaW50IE5PVCBOVUxMIERFRkFVTFQgMDsKKworLS1zaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIx OworCistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gMTA7CitTRUxFQ1QgdmFyMTsKKworRElT Q0FSRCBWQVJJQUJMRVM7CisKKy0tIHNob3VsZCB0byBmYWlsCitMRVQgdmFyMSA9IE5VTEw7CisK K0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gdGVzdCBOT1QgTlVMTAorQ1JFQVRFIE9SIFJFUExB Q0UgRlVOQ1RJT04gdmFydGVzdF9meCgpCitSRVRVUk5TIGludCBBUyAkJAorQkVHSU4KKyAgUkVU VVJOIE5VTEw7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCitDUkVBVEUgVkFSSUFCTEUg dmFyMSBBUyBpbnQgTk9UIE5VTEwgREVGQVVMVCB2YXJ0ZXN0X2Z4KCk7CisKKy0tIHNob3VsZCB0 byBmYWlsCitTRUxFQ1QgdmFyMTsKKworRElTQ0FSRCBWQVJJQUJMRVM7CisKKy0tIHNob3VsZCBi ZSBvaworTEVUIHZhcjEgPSAxMDsKK1NFTEVDVCB2YXIxOworCitDUkVBVEUgT1IgUkVQTEFDRSBG VU5DVElPTiB2YXJ0ZXN0X2Z4KCkKK1JFVFVSTlMgaW50IEFTICQkCitCRUdJTgorICBSRVRVUk4g MDsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CisKK0RJU0NBUkQgVkFSSUFCTEVTOworCist LSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9Q IEZVTkNUSU9OIHZhcnRlc3RfZngoKTsKKworLS0gdGVzdCBJTU1VVEJMRQorQ1JFQVRFIElNTVVU QUJMRSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFy MTsKKy0tIGZpcnN0IHdyaXRlIHNob3VsZCBvaworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9 IDEwOworLS0gc2hvdWxkIGZhaWwKK0xFVCB2YXIxID0gMjA7CisKK0RJU0NBUkQgVkFSSUFCTEVT OworCistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gMTA7CistLSBzaG91bGQgZmFpbAorTEVU IHZhcjEgPSAyMDsKKworRElTQ0FSRCBWQVJJQUJMRVM7CisKKy0tIHNob3VsZCBiZSBvaworU0VM RUNUIHZhcjE7CistLSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gTlVMTDsKKy0tIHNob3VsZCBm YWlsCitMRVQgdmFyMSA9IDIwOworCitEUk9QIFZBUklBQkxFIHZhcjE7CisKK0NSRUFURSBJTU1V VEFCTEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQgREVGQVVMVCAxMDsKKworLS0gZG9uJ3QgYWxsb3cg Y2hhbmdlIHdoZW4gdmFyaWFibGUgaGFzIERFRkFVTFQgdmFsdWUKKy0tIHNob3VsZCB0byBmYWls CitMRVQgdmFyMSA9IDIwOworCitESVNDQVJEIFZBUklBQkxFUzsKKworLS0gc2hvdWxkIGJlIG9r CitTRUxFQ1QgdmFyMTsKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IDIwOworCitEUk9QIFZB UklBQkxFIHZhcjE7CisKKy0tIHNob3VsZCBiZSBvaworQ1JFQVRFIElNTVVUQUJMRSBWQVJJQUJM RSB2YXIxIEFTIElOVCBOT1QgTlVMTCBERUZBVUxUIDEwOworCistLSBzaG91bGQgdG8gZmFpbAor TEVUIHZhcjEgPSAxMDsKK0xFVCB2YXIxID0gMjA7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNU IHZhcjE7CisKKy0tIHNob3VsZCB0byBmYWlsCitMRVQgdmFyMSA9IDMwOworCitEUk9QIFZBUklB QkxFIHZhcjE7Ci0tIAoyLjQ3LjEKCg== --0000000000007bfa26062b3fa8d1 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250109-0014-Implementation-of-DEFAULT-clause-default-expressions.patch" Content-Disposition: attachment; filename="v20250109-0014-Implementation-of-DEFAULT-clause-default-expressions.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5ox16ne8 RnJvbSBlOTQ0NDE5NDYwNWI0NGJjMTNhMjkwOTk5NWM0NTE5ZjMzODhiZWFmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowMzo1MyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTQvMjJdIEltcGxlbWVudGF0aW9uIG9mIERFRkFVTFQgY2xhdXNlIC0gZGVmYXVsdCBleHByZXNz aW9ucwogZm9yIHNlc3Npb24gdmFyaWFibGVzCgpXaGVuIHRoZSBldmFsdWF0aW9uIG9mIGRlZmF1 bHQgZXhwcmVzc2lvbiBmYWlscywgd2UgcmVtb3ZlIHJlbGF0ZWQgZW50cnkgZnJvbSBzZXNzaW9u dmFycwpoYXNoIHRhYmxlLiBUaGVuIHNlc3Npb252YXJzIGNhbiBjb250YWluIG9ubHkgc3VjZXNz ZnVsbHkgaW5pdGlhbGl6ZWQgdmFsdWVzLiBUaGVuIHdlIGRvbid0Cm5lZWQgc3BlY2lhbCBmbGFn IGZvciBiYWRseSBpbml0aWFsaXplZCBzZXNzaW9uIHZhcmlhYmxlcy4KLS0tCiBkb2Mvc3JjL3Nn bWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgOCArKwogZG9jL3NyYy9zZ21s L2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwgMTYgKystLQogZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbCAgICAgICAgIHwgMjEgKysrLS0KIGRvYy9zcmMvc2dt bC9yZWYvZGlzY2FyZC5zZ21sICAgICAgICAgICAgICAgICB8ICAzICstCiBzcmMvYmFja2VuZC9j YXRhbG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAyNyArKysrKysKIHNyYy9iYWNrZW5k L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDg3ICsrKysrKysrKysrKysrKysr Ky0KIHNyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgICAgICAgICAgICAgICAgICAgICB8IDE1ICsr Ky0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYyAgICAgICAgICAgICAgICB8ICAyICsK IHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICAgICAgICAgICB8ICA0ICsKIHNy Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8IDE0ICsrKwogc3JjL2Jp bi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2Jpbi9w Z19kdW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgMzYgKysrKysrKysKIHNyYy9i aW4vcHNxbC9kZXNjcmliZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICA0ICstCiBzcmMvaW5j bHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggICAgICAgICAgICAgfCAgMyArCiBzcmMvaW5jbHVk ZS9ub2Rlcy9wYXJzZW5vZGVzLmggICAgICAgICAgICAgICAgfCAgMSArCiBzcmMvaW5jbHVkZS9w YXJzZXIvcGFyc2Vfbm9kZS5oICAgICAgICAgICAgICAgfCAgMSArCiBzcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3BzcWwub3V0ICAgICAgICAgICAgfCAzNiArKysrLS0tLQogLi4uL3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgNjMgKysrKysrKysrKysrKysKIHNy Yy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDQ4ICsrKysrKysr KysKIDIwIGZpbGVzIGNoYW5nZWQsIDM1MCBpbnNlcnRpb25zKCspLCA0MSBkZWxldGlvbnMoLSkK CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCBiL2RvYy9zcmMvc2dtbC9j YXRhbG9ncy5zZ21sCmluZGV4IDIwZmM1ZDYwY2YuLmU4NjNjYjkxMGUgMTAwNjQ0Ci0tLSBhL2Rv Yy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jYXRhbG9ncy5zZ21s CkBAIC05ODczLDYgKzk4NzMsMTQgQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0 ZXJhdGlvbiBjb3VudCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIDwv cGFyYT48L2VudHJ5PgogICAgICA8L3Jvdz4KIAorICAgICA8cm93PgorICAgICAgPGVudHJ5IHJv bGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4K KyAgICAgICA8c3RydWN0ZmllbGQ+dmFyZGVmZXhwcjwvc3RydWN0ZmllbGQ+IDx0eXBlPnBnX25v ZGVfdHJlZTwvdHlwZT4KKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFRoZSBp bnRlcm5hbCByZXByZXNlbnRhdGlvbiBvZiB0aGUgdmFyaWFibGUgZGVmYXVsdCB2YWx1ZQorICAg ICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgogICAgIDwvdGJvZHk+CiAgICA8L3Rncm91 cD4KICAgPC90YWJsZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9z cmMvc2dtbC9kZGwuc2dtbAppbmRleCAxNDMzZjAzM2Q3Li5iNjBkOTc0OTZjIDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBAIC01 MzgwLDE0ICs1MzgwLDE0IEBAIFNFTEVDVCBjdXJyZW50X3VzZXJfaWQ7CiAKICAgIDxwYXJhPgog ICAgIFRoZSB2YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgaXMgbG9jYWwgdG8gdGhlIGN1cnJl bnQgc2Vzc2lvbi4gUmV0cmlldmluZwotICAgIGEgdmFyaWFibGUncyB2YWx1ZSByZXR1cm5zIGEg PGxpdGVyYWw+TlVMTDwvbGl0ZXJhbD4sIHVubGVzcyBpdHMgdmFsdWUgaGFzCi0gICAgYmVlbiBz ZXQgdG8gc29tZXRoaW5nIGVsc2UgaW4gdGhlIGN1cnJlbnQgc2Vzc2lvbiB1c2luZyB0aGUKLSAg ICA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQuICBTZXNzaW9uIHZhcmlhYmxlcyBhcmUg bm90IHRyYW5zYWN0aW9uYWw6Ci0gICAgYW55IGNoYW5nZXMgbWFkZSB0byB0aGUgdmFsdWUgb2Yg YSBzZXNzaW9uIHZhcmlhYmxlIGluIGEgdHJhbnNhY3Rpb24gd29uJ3QKLSAgICBiZSB1bmRvbmUg aWYgdGhlIHRyYW5zYWN0aW9uIGlzIHJvbGxlZCBiYWNrIChqdXN0IGxpa2UgdmFyaWFibGVzIGlu Ci0gICAgcHJvY2VkdXJhbCBsYW5ndWFnZXMpLiAgU2Vzc2lvbiB2YXJpYWJsZXMgdGhlbXNlbHZl cyBjYW4gYmUgcGVyc2lzdGVudAotICAgIG9yIHRlbXBvcmFyeSwgYnV0IHRoZWlyIHZhbHVlcyBh cmUgbmVpdGhlciBwZXJzaXN0ZW50IG5vciBzaGFyZWQgKGxpa2UgdGhlCi0gICAgY29udGVudCBv ZiB0ZW1wb3JhcnkgdGFibGVzKS4KKyAgICBhIHZhcmlhYmxlJ3MgdmFsdWUgcmV0dXJucyBhIDxs aXRlcmFsPk5VTEw8L2xpdGVyYWw+IG9yIGEgZGVmYXVsdCB2YWx1ZSwKKyAgICB1bmxlc3MgaXRz IHZhbHVlIGhhcyAgYmVlbiBzZXQgdG8gc29tZXRoaW5nIGVsc2UgaW4gdGhlIGN1cnJlbnQgc2Vz c2lvbgorICAgIHVzaW5nIHRoZSA8Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQuICBTZXNz aW9uIHZhcmlhYmxlcyBhcmUgbm90CisgICAgdHJhbnNhY3Rpb25hbDogYW55IGNoYW5nZXMgbWFk ZSB0byB0aGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGluCisgICAgYSB0cmFuc2FjdGlv biB3b24ndCBiZSB1bmRvbmUgaWYgdGhlIHRyYW5zYWN0aW9uIGlzIHJvbGxlZCBiYWNrIChqdXN0 IGxpa2UKKyAgICB2YXJpYWJsZXMgaW4gcHJvY2VkdXJhbCBsYW5ndWFnZXMpLiAgU2Vzc2lvbiB2 YXJpYWJsZXMgdGhlbXNlbHZlcyBjYW4gYmUKKyAgICBwZXJzaXN0ZW50IG9yIHRlbXBvcmFyeSwg YnV0IHRoZWlyIHZhbHVlcyBhcmUgbmVpdGhlciBwZXJzaXN0ZW50IG5vciBzaGFyZWQKKyAgICAo bGlrZSB0aGUgY29udGVudCBvZiB0ZW1wb3JhcnkgdGFibGVzKS4KICAgIDwvcGFyYT4KIAogICAg PHBhcmE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21s IGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAppbmRleCBjODlhNjVmYjU1 Li5lNGQ4ODUxY2NiIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJs ZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKQEAgLTI3 LDcgKzI3LDcgQEAgUG9zdGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgPHJlZnN5bm9wc2lzZGl2Pgog PHN5bm9wc2lzPgogQ1JFQVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0gXSBWQVJJQUJMRSBbIElG IE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFj ZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBlPC9y ZXBsYWNlYWJsZT4gWyBDT0xMQVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2xs YXRpb248L3JlcGxhY2VhYmxlPiBdCi0gICAgWyB7IE9OIENPTU1JVCBEUk9QIHwgT04gVFJBTlNB Q1RJT04gRU5EIFJFU0VUIH0gXQorICAgIFsgREVGQVVMVCA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+ZGVmYXVsdF9leHByPC9yZXBsYWNlYWJsZT4gXSBbIHsgT04gQ09NTUlUIERST1Ag fCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQgfSBdCiA8L3N5bm9wc2lzPgogIDwvcmVmc3lub3Bz aXNkaXY+CiAgPHJlZnNlY3QxPgpAQCAtNDEsMTAgKzQxLDEwIEBAIENSRUFURSBbIHsgVEVNUE9S QVJZIHwgVEVNUCB9IF0gVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNs YXNzPSJwCiAKICAgPHBhcmE+CiAgICBUaGUgdmFsdWUgb2YgYSBzZXNzaW9uIHZhcmlhYmxlIGlz IGxvY2FsIHRvIHRoZSBjdXJyZW50IHNlc3Npb24uICBSZXRyaWV2aW5nCi0gICBhIHNlc3Npb24g dmFyaWFibGUncyB2YWx1ZSByZXR1cm5zIE5VTEwsIHVubGVzcyBpdHMgdmFsdWUgaXMgc2V0IHRv Ci0gICBzb21ldGhpbmcgZWxzZSBpbiB0aGUgY3VycmVudCBzZXNzaW9uIHdpdGggYSA8Y29tbWFu ZD5MRVQ8L2NvbW1hbmQ+IGNvbW1hbmQuCi0gICBUaGUgY29udGVudCBvZiBhIHNlc3Npb24gdmFy aWFibGUgaXMgbm90IHRyYW5zYWN0aW9uYWwuIFRoaXMgaXMgdGhlIHNhbWUgYXMKLSAgIHJlZ3Vs YXIgdmFyaWFibGVzIGluIHByb2NlZHVyYWwgbGFuZ3VhZ2VzLgorICAgYSBzZXNzaW9uIHZhcmlh YmxlJ3MgdmFsdWUgcmV0dXJucyBOVUxMIG9yIGEgZGVmYXVsdCB2YWx1ZSwgdW5sZXNzIGl0cyB2 YWx1ZQorICAgaXMgc2V0IHRvIHNvbWV0aGluZyBlbHNlIGluIHRoZSBjdXJyZW50IHNlc3Npb24g d2l0aCBhIDxjb21tYW5kPkxFVDwvY29tbWFuZD4KKyAgIGNvbW1hbmQuICBUaGUgY29udGVudCBv ZiBhIHNlc3Npb24gdmFyaWFibGUgaXMgbm90IHRyYW5zYWN0aW9uYWwuICBUaGlzIGlzIHRoZQor ICAgc2FtZSBhcyByZWd1bGFyIHZhcmlhYmxlcyBpbiBwcm9jZWR1cmFsIGxhbmd1YWdlcy4KICAg PC9wYXJhPgogCiAgIDxwYXJhPgpAQCAtMTA1LDYgKzEwNSwxNyBAQCBDUkVBVEUgWyB7IFRFTVBP UkFSWSB8IFRFTVAgfSBdIFZBUklBQkxFIFsgSUYgTk9UIEVYSVNUUyBdIDxyZXBsYWNlYWJsZSBj bGFzcz0icAogICAgIDwvbGlzdGl0ZW0+CiAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxp c3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxlLWRlZmF1bHQiPgorICAgIDx0ZXJtPjxsaXRl cmFsPkRFRkFVTFQgPHJlcGxhY2VhYmxlPmRlZmF1bHRfZXhwcjwvcmVwbGFjZWFibGU+PC9saXRl cmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhlIDxsaXRl cmFsPkRFRkFVTFQ8L2xpdGVyYWw+IGNsYXVzZSBjYW4gYmUgdXNlZCB0byBhc3NpZ24gYSBkZWZh dWx0CisgICAgICB2YWx1ZSB0byBhIHNlc3Npb24gdmFyaWFibGUuIFRoaXMgZXhwcmVzc2lvbiBp cyBldmFsdWF0ZWQgd2hlbiB0aGUgc2Vzc2lvbgorICAgICAgdmFyaWFibGUgaXMgZmlyc3QgYWNj ZXNzZWQgZm9yIHJlYWRpbmcgYW5kIGhhZCBub3QgeWV0IGJlZW4gYXNzaWduZWQgYSB2YWx1ZS4K KyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAg PHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxlLW9uLWNvbW1pdC1kcm9wIj4KICAg ICA8dGVybT48bGl0ZXJhbD5PTiBDT01NSVQgRFJPUDwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxp c3RpdGVtPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9kaXNjYXJkLnNnbWwgYi9kb2Mv c3JjL3NnbWwvcmVmL2Rpc2NhcmQuc2dtbAppbmRleCA2MWI5NjdmOWM5Li42YjBjYjk1MDM0IDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2Rpc2NhcmQuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvcmVmL2Rpc2NhcmQuc2dtbApAQCAtNzEsNyArNzEsOCBAQCBESVNDQVJEIHsgQUxMIHwgUExB TlMgfCBTRVFVRU5DRVMgfCBURU1QT1JBUlkgfCBURU1QIHwgVkFSSUFCTEVTIH0KICAgICA8bGlz dGl0ZW0+CiAgICAgIDxwYXJhPgogICAgICAgUmVzZXRzIHRoZSB2YWx1ZSBvZiBhbGwgc2Vzc2lv biB2YXJpYWJsZXMuIElmIGEgdmFyaWFibGUKLSAgICAgIGlzIGxhdGVyIHJldXNlZCwgaXQgaXMg cmUtaW5pdGlhbGl6ZWQgdG8gPGxpdGVyYWw+TlVMTDwvbGl0ZXJhbD4uCisgICAgICBpcyBsYXRl ciByZXVzZWQsIGl0IGlzIHJlLWluaXRpYWxpemVkIHRvIGVpdGhlcgorICAgICAgPGxpdGVyYWw+ TlVMTDwvbGl0ZXJhbD4gb3IgaXRzIGRlZmF1bHQgdmFsdWUuCiAgICAgIDwvcGFyYT4KICAgICA8 L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j YXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMK aW5kZXggMDBjOTBlYTZmZC4uOGZiYTRjYzQ5MyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0 YWxvZy9wZ192YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUu YwpAQCAtMjQsNiArMjQsOSBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNp bmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAibWlzY2FkbWlu LmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2NvZXJjZS5oIgorI2luY2x1ZGUgInBhcnNlci9w YXJzZV9jb2xsYXRlLmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlX2V4cHIuaCIKICNpbmNsdWRl ICJwYXJzZXIvcGFyc2VfdHlwZS5oIgogI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5j bHVkZSAidXRpbHMvbHN5c2NhY2hlLmgiCkBAIC0zNyw2ICs0MCw3IEBAIHN0YXRpYyBPYmplY3RB ZGRyZXNzIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAogCQkJCQkJCQkJIE9p ZCB2YXJPd25lciwKIAkJCQkJCQkJCSBPaWQgdmFyQ29sbGF0aW9uLAogCQkJCQkJCQkJIGJvb2wg aWZfbm90X2V4aXN0cywKKwkJCQkJCQkJCSBOb2RlICp2YXJEZWZleHByLAogCQkJCQkJCQkJIFZh cmlhYmxlWGFjdEVuZEFjdGlvbiB2YXJYYWN0RW5kQWN0aW9uKTsKIAogCkBAIC01MSw2ICs1NSw3 IEBAIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAogCQkJCU9pZCB2YXJPd25l ciwKIAkJCQlPaWQgdmFyQ29sbGF0aW9uLAogCQkJCWJvb2wgaWZfbm90X2V4aXN0cywKKwkJCQlO b2RlICp2YXJEZWZleHByLAogCQkJCVZhcmlhYmxlWGFjdEVuZEFjdGlvbiB2YXJYYWN0RW5kQWN0 aW9uKQogewogCUFjbAkJICAgKnZhcmFjbDsKQEAgLTExNCw2ICsxMTksMTEgQEAgY3JlYXRlX3Zh cmlhYmxlKGNvbnN0IGNoYXIgKnZhck5hbWUsCiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVfdmFy Y29sbGF0aW9uIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhckNvbGxhdGlvbik7CiAJdmFsdWVz W0FudW1fcGdfdmFyaWFibGVfdmFyeGFjdGVuZGFjdGlvbiAtIDFdID0gQ2hhckdldERhdHVtKHZh clhhY3RFbmRBY3Rpb24pOwogCisJaWYgKHZhckRlZmV4cHIpCisJCXZhbHVlc1tBbnVtX3BnX3Zh cmlhYmxlX3ZhcmRlZmV4cHIgLSAxXSA9IENTdHJpbmdHZXRUZXh0RGF0dW0obm9kZVRvU3RyaW5n KHZhckRlZmV4cHIpKTsKKwllbHNlCisJCW51bGxzW0FudW1fcGdfdmFyaWFibGVfdmFyZGVmZXhw ciAtIDFdID0gdHJ1ZTsKKwogCXZhcmFjbCA9IGdldF91c2VyX2RlZmF1bHRfYWNsKE9CSkVDVF9W QVJJQUJMRSwgdmFyT3duZXIsCiAJCQkJCQkJCSAgdmFyTmFtZXNwYWNlKTsKIAlpZiAodmFyYWNs ICE9IE5VTEwpCkBAIC0xNTAsNiArMTYwLDExIEBAIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFy ICp2YXJOYW1lLAogCXJlY29yZF9vYmplY3RfYWRkcmVzc19kZXBlbmRlbmNpZXMoJm15c2VsZiwg YWRkcnMsIERFUEVOREVOQ1lfTk9STUFMKTsKIAlmcmVlX29iamVjdF9hZGRyZXNzZXMoYWRkcnMp OwogCisJLyogZGVwZW5kZW5jeSBvbiBkZWZhdWx0IGV4cHIgKi8KKwlpZiAodmFyRGVmZXhwcikK KwkJcmVjb3JkRGVwZW5kZW5jeU9uRXhwcigmbXlzZWxmLCAoTm9kZSAqKSB2YXJEZWZleHByLAor CQkJCQkJCSAgIE5JTCwgREVQRU5ERU5DWV9OT1JNQUwpOworCiAJLyogZGVwZW5kZW5jeSBvbiBv d25lciAqLwogCXJlY29yZERlcGVuZGVuY3lPbk93bmVyKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFy aWQsIHZhck93bmVyKTsKIApAQCAtMTg1LDYgKzIwMCw3IEBAIENyZWF0ZVZhcmlhYmxlKFBhcnNl U3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiAJT2lkCQkJY29sbGF0 aW9uOwogCU9pZAkJCXR5cGNvbGxhdGlvbjsKIAlPYmplY3RBZGRyZXNzIHZhcmlhYmxlOworCU5v ZGUJICAgKmNvb2tlZF9kZWZhdWx0ID0gTlVMTDsKIAogCS8qIGNoZWNrIGNvbnNpc3RlbmN5IG9m IGFyZ3VtZW50cyAqLwogCWlmIChzdG10LT5YYWN0RW5kQWN0aW9uID09IFZBUklBQkxFX1hBQ1RF TkRfRFJPUApAQCAtMjI2LDYgKzI0MiwxNiBAQCBDcmVhdGVWYXJpYWJsZShQYXJzZVN0YXRlICpw c3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KQogCQkJCQkJZm9ybWF0X3R5cGVfYmUo dHlwaWQpKSwKIAkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgc3RtdC0+Y29sbENsYXVz ZS0+bG9jYXRpb24pKSk7CiAKKwlpZiAoc3RtdC0+ZGVmZXhwcikKKwl7CisJCWNvb2tlZF9kZWZh dWx0ID0gdHJhbnNmb3JtRXhwcihwc3RhdGUsIHN0bXQtPmRlZmV4cHIsCisJCQkJCQkJCQkgICBF WFBSX0tJTkRfVkFSSUFCTEVfREVGQVVMVCk7CisKKwkJY29va2VkX2RlZmF1bHQgPSBjb2VyY2Vf dG9fc3BlY2lmaWNfdHlwZShwc3RhdGUsCisJCQkJCQkJCQkJCQkgY29va2VkX2RlZmF1bHQsIHR5 cGlkLCAiREVGQVVMVCIpOworCQlhc3NpZ25fZXhwcl9jb2xsYXRpb25zKHBzdGF0ZSwgY29va2Vk X2RlZmF1bHQpOworCX0KKwogCXZhcmlhYmxlID0gY3JlYXRlX3ZhcmlhYmxlKHN0bXQtPnZhcmlh YmxlLT5yZWxuYW1lLAogCQkJCQkJCSAgIG5hbWVzcGFjZWlkLAogCQkJCQkJCSAgIHR5cGlkLApA QCAtMjMzLDYgKzI1OSw3IEBAIENyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3Jl YXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpCiAJCQkJCQkJICAgdmFyb3duZXIsCiAJCQkJCQkJICAg Y29sbGF0aW9uLAogCQkJCQkJCSAgIHN0bXQtPmlmX25vdF9leGlzdHMsCisJCQkJCQkJICAgY29v a2VkX2RlZmF1bHQsCiAJCQkJCQkJICAgc3RtdC0+WGFjdEVuZEFjdGlvbik7CiAKIAllbG9nKERF QlVHMSwgInJlY29yZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgKG9pZDolZCkgd2FzIGNy ZWF0ZWQgaW4gcGdfdmFyaWFibGUiLApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5jCmluZGV4IDQ1ZTQzMWE1NDYuLmQyN2IzZDYzNzYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTIzLDYgKzIzLDcgQEAKICNpbmNsdWRlICJleGVjdXRvci9z dmFyaWFibGVSZWNlaXZlci5oIgogI2luY2x1ZGUgImZ1bmNhcGkuaCIKICNpbmNsdWRlICJtaXNj YWRtaW4uaCIKKyNpbmNsdWRlICJvcHRpbWl6ZXIvb3B0aW1pemVyLmgiCiAjaW5jbHVkZSAicmV3 cml0ZS9yZXdyaXRlSGFuZGxlci5oIgogI2luY2x1ZGUgInN0b3JhZ2UvbG1nci5oIgogI2luY2x1 ZGUgInN0b3JhZ2UvcHJvYy5oIgpAQCAtNTE4LDExICs1MTksNjggQEAgQXRFT1N1YlhhY3RfU2Vz c2lvblZhcmlhYmxlcyhib29sIGlzQ29tbWl0LAogCX0KIH0KIAorLyoKKyAqIGV2YWx1YXRlIGFu IGV4cHJlc3Npb24KKyAqLworc3RhdGljIHZvaWQKK2V2YWxfYXNzaWduX2RlZmV4cHIoU1Zhcmlh YmxlIHN2YXIsIEhlYXBUdXBsZSB0dXApCit7CisJRGF0dW0JCWRlZmV4cHJfdmFsdWU7CisJYm9v bAkJaXNudWxsOworCisJQXNzZXJ0KHN2YXIpOworCUFzc2VydChzdmFyLT5pc192YWxpZCk7CisJ QXNzZXJ0KEhlYXBUdXBsZUlzVmFsaWQodHVwKSk7CisKKwlkZWZleHByX3ZhbHVlID0gU3lzQ2Fj aGVHZXRBdHRyKFZBUklBQkxFT0lELAorCQkJCQkJCQkJdHVwLAorCQkJCQkJCQkJQW51bV9wZ192 YXJpYWJsZV92YXJkZWZleHByLAorCQkJCQkJCQkJJmlzbnVsbCk7CisKKwlpZiAoIWlzbnVsbCkK Kwl7CisJCUVTdGF0ZQkgICAqZXN0YXRlOworCQlFeHByU3RhdGUgICpkZWZleHByczsKKwkJRXhw cgkgICAqZGVmZXhwcjsKKwkJY2hhcgkgICAqZGVmZXhwcl9zdHI7CisJCURhdHVtCQl2YWx1ZTsK KwkJTWVtb3J5Q29udGV4dCBvbGRjeHQ7CisKKwkJZXN0YXRlID0gQ3JlYXRlRXhlY3V0b3JTdGF0 ZSgpOworCisJCWRlZmV4cHJfc3RyID0gVGV4dERhdHVtR2V0Q1N0cmluZyhkZWZleHByX3ZhbHVl KTsKKwkJZGVmZXhwciA9IChFeHByICopIHN0cmluZ1RvTm9kZShkZWZleHByX3N0cik7CisKKwkJ b2xkY3h0ID0gTWVtb3J5Q29udGV4dFN3aXRjaFRvKGVzdGF0ZS0+ZXNfcXVlcnlfY3h0KTsKKwor CQlkZWZleHByID0gZXhwcmVzc2lvbl9wbGFubmVyKChFeHByICopIGRlZmV4cHIpOworCQlkZWZl eHBycyA9IEV4ZWNJbml0RXhwcihkZWZleHByLCBOVUxMKTsKKworCQl2YWx1ZSA9IEV4ZWNFdmFs RXhwclN3aXRjaENvbnRleHQoZGVmZXhwcnMsCisJCQkJCQkJCQkJICBHZXRQZXJUdXBsZUV4cHJD b250ZXh0KGVzdGF0ZSksCisJCQkJCQkJCQkJICAmaXNudWxsKTsKKworCQlNZW1vcnlDb250ZXh0 U3dpdGNoVG8ob2xkY3h0KTsKKworCQlpZiAoIWlzbnVsbCkKKwkJeworCQkJb2xkY3h0ID0gTWVt b3J5Q29udGV4dFN3aXRjaFRvKFNWYXJpYWJsZU1lbW9yeUNvbnRleHQpOworCisJCQlzdmFyLT52 YWx1ZSA9IGRhdHVtQ29weSh2YWx1ZSwgc3Zhci0+dHlwYnl2YWwsIHN2YXItPnR5cGxlbik7CisJ CQlzdmFyLT5pc251bGwgPSBmYWxzZTsKKworCQkJTWVtb3J5Q29udGV4dFN3aXRjaFRvKG9sZGN4 dCk7CisJCX0KKworCQlGcmVlRXhlY3V0b3JTdGF0ZShlc3RhdGUpOworCX0KK30KKwogLyoKICAq IEluaXRpYWxpemUgYXR0cmlidXRlcyBjYWNoZWQgaW4gInN2YXIiCiAgKi8KIHN0YXRpYyB2b2lk Ci1zZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQpCitzZXR1 cF9zZXNzaW9uX3ZhcmlhYmxlKFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQsIGJvb2wgaXNfd3Jp dGUpCiB7CiAJSGVhcFR1cGxlCXR1cDsKIAlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07CkBAIC01 NzIsNiArNjMwLDkgQEAgc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lk IHZhcmlkKQogCXN2YXItPmhhc2h2YWx1ZSA9IEdldFN5c0NhY2hlSGFzaFZhbHVlMShWQVJJQUJM RU9JRCwKIAkJCQkJCQkJCQkJT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOwogCisJaWYgKCFpc193 cml0ZSkKKwkJZXZhbF9hc3NpZ25fZGVmZXhwcihzdmFyLCB0dXApOworCiAJUmVsZWFzZVN5c0Nh Y2hlKHR1cCk7CiB9CiAKQEAgLTYwMSw3ICs2NjIsNyBAQCBzZXRfc2Vzc2lvbl92YXJpYWJsZShT VmFyaWFibGUgc3ZhciwgRGF0dW0gdmFsdWUsIGJvb2wgaXNudWxsKQogCSAqLwogCWlmICghc3Zh ci0+aXNfdmFsaWQpCiAJewotCQlzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKCZsb2NzdmFyLCBzdmFy LT52YXJpZCk7CisJCXNldHVwX3Nlc3Npb25fdmFyaWFibGUoJmxvY3N2YXIsIHN2YXItPnZhcmlk LCBmYWxzZSk7CiAJCV9zdmFyID0gJmxvY3N2YXI7CiAJfQogCWVsc2UKQEAgLTczNCw3ICs3OTUs MjUgQEAgZ2V0X3Nlc3Npb25fdmFyaWFibGUoT2lkIHZhcmlkKQogCSAqLwogCWlmICghc3Zhci0+ aXNfdmFsaWQpCiAJewotCQlzZXR1cF9zZXNzaW9uX3ZhcmlhYmxlKHN2YXIsIHZhcmlkKTsKKwkJ LyogaW4gdGhpcyBjYXNlIHdlIHdhbnQgdG8gdXNlIGRlZmV4cCBpZiBpdCBpcyBkZWZpbmVkICov CisJCVBHX1RSWSgpOworCQl7CisJCQkvKgorCQkJICogSW4gdGhpcyBjYXNlLCB0aGUgc2V0dXAg Y2FuIGV4ZWN1dGUgZGVmYXVsdCBleHByZXNzaW9uLiBXaGVuCisJCQkgKiB0aGUgZXhlY3V0aW9u IG9mIGRlZmF1bHQgZXhwcmVzc2lvbiBmYWlscywgdGhlbiB3ZSBuZWVkIHRvCisJCQkgKiByZW1v dmUgZW50cnkgZnJvbSBzZXNzaW9uIHZhcnMuCisJCQkgKi8KKwkJCXNldHVwX3Nlc3Npb25fdmFy aWFibGUoc3ZhciwgdmFyaWQsIGZhbHNlKTsKKwkJfQorCQlQR19DQVRDSCgpOworCQl7CisJCQkv KiB0aGlzIGVudHJ5IGNhbm5vdCBiZSB2YWxpZCwgcmVtb3ZlIGZyb20gc2Vzc2lvbnZhcnMgKi8K KwkJCWhhc2hfc2VhcmNoKHNlc3Npb252YXJzLCAmdmFyaWQsIEhBU0hfUkVNT1ZFLCBOVUxMKTsK KworCQkJLyogcHJvcGFnYXRlIHRoZSBlcnJvciAqLworCQkJUEdfUkVfVEhST1coKTsKKwkJfQor CQlQR19FTkRfVFJZKCk7CiAKIAkJZWxvZyhERUJVRzEsICJzZXNzaW9uIHZhcmlhYmxlIFwiJXMu JXNcIiAob2lkOiV1KSBoYXMgYXNzaWduZWQgZW50cnkgaW4gbWVtb3J5IChlbWl0dGVkIGJ5IFJF QUQpIiwKIAkJCSBnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNw YWNlKHZhcmlkKSksCkBAIC03OTgsNyArODc3LDcgQEAgU2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2 YXJpZCwgRGF0dW0gdmFsdWUsIGJvb2wgaXNOdWxsKQogCiAJaWYgKCFmb3VuZCkKIAl7Ci0JCXNl dHVwX3Nlc3Npb25fdmFyaWFibGUoc3ZhciwgdmFyaWQpOworCQlzZXR1cF9zZXNzaW9uX3Zhcmlh YmxlKHN2YXIsIHZhcmlkLCB0cnVlKTsKIAogCQllbG9nKERFQlVHMSwgInNlc3Npb24gdmFyaWFi bGUgXCIlcy4lc1wiIChvaWQ6JXUpIGhhcyBhc3NpZ25lZCBlbnRyeSBpbiBtZW1vcnkgKGVtaXR0 ZWQgYnkgV1JJVEUpIiwKIAkJCSBnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFi bGVfbmFtZXNwYWNlKHN2YXItPnZhcmlkKSksCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCA4M2NmOTFkM2VmLi44 NDFkOWY4ZGZkIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTYzNyw2ICs2MzcsNyBAQCBzdGF0aWMgTm9kZSAq bWFrZVJlY3Vyc2l2ZVZpZXdTZWxlY3QoY2hhciAqcmVsbmFtZSwgTGlzdCAqYWxpYXNlcywgTm9k ZSAqcXVlcnkpOwogJXR5cGUgPHBhcnRib3VuZHNwZWM+IFBhcnRpdGlvbkJvdW5kU3BlYwogJXR5 cGUgPGxpc3Q+CQloYXNoX3BhcnRib3VuZAogJXR5cGUgPGRlZmVsdD4JCWhhc2hfcGFydGJvdW5k X2VsZW0KKyV0eXBlIDxub2RlPgkJT3B0U2Vzc2lvblZhckRlZkV4cHIKIAogJXR5cGUgPG5vZGU+ CWpzb25fZm9ybWF0X2NsYXVzZQogCQkJCWpzb25fZm9ybWF0X2NsYXVzZV9vcHQKQEAgLTUyMjks MzAgKzUyMzAsMzYgQEAgY3JlYXRlX2V4dGVuc2lvbl9vcHRfaXRlbToKICAqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKi8KIAogQ3JlYXRlU2Vzc2lvblZhclN0bXQ6Ci0JCQlDUkVBVEUgT3B0VGVtcCBWQVJJ QUJMRSBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlIFhh Y3RFbmRBY3Rpb25PcHRpb24KKwkJCUNSRUFURSBPcHRUZW1wIFZBUklBQkxFIHF1YWxpZmllZF9u YW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UgT3B0U2Vzc2lvblZhckRlZkV4 cHIgWGFjdEVuZEFjdGlvbk9wdGlvbgogCQkJCXsKIAkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQg Km4gPSBtYWtlTm9kZShDcmVhdGVTZXNzaW9uVmFyU3RtdCk7CiAJCQkJCSQ0LT5yZWxwZXJzaXN0 ZW5jZSA9ICQyOwogCQkJCQluLT52YXJpYWJsZSA9ICQ0OwogCQkJCQluLT50eXBlTmFtZSA9ICQ2 OwogCQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDc7Ci0JCQkJCW4tPlhh Y3RFbmRBY3Rpb24gPSAkODsKKwkJCQkJbi0+ZGVmZXhwciA9ICQ4OworCQkJCQluLT5YYWN0RW5k QWN0aW9uID0gJDk7CiAJCQkJCW4tPmlmX25vdF9leGlzdHMgPSBmYWxzZTsKIAkJCQkJJCQgPSAo Tm9kZSAqKSBuOwogCQkJCX0KLQkJCXwgQ1JFQVRFIE9wdFRlbXAgVkFSSUFCTEUgSUZfUCBOT1Qg RVhJU1RTIHF1YWxpZmllZF9uYW1lIG9wdF9hcyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2Ug WGFjdEVuZEFjdGlvbk9wdGlvbgorCQkJfCBDUkVBVEUgT3B0VGVtcCBWQVJJQUJMRSBJRl9QIE5P VCBFWElTVFMgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVz ZSBPcHRTZXNzaW9uVmFyRGVmRXhwciBYYWN0RW5kQWN0aW9uT3B0aW9uCiAJCQkJewogCQkJCQlD cmVhdGVTZXNzaW9uVmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNlc3Npb25WYXJTdG10KTsK IAkJCQkJJDctPnJlbHBlcnNpc3RlbmNlID0gJDI7CiAJCQkJCW4tPnZhcmlhYmxlID0gJDc7CiAJ CQkJCW4tPnR5cGVOYW1lID0gJDk7CiAJCQkJCW4tPmNvbGxDbGF1c2UgPSAoQ29sbGF0ZUNsYXVz ZSAqKSAkMTA7Ci0JCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkMTE7CisJCQkJCW4tPmRlZmV4cHIg PSAkMTE7CisJCQkJCW4tPlhhY3RFbmRBY3Rpb24gPSAkMTI7CiAJCQkJCW4tPmlmX25vdF9leGlz dHMgPSB0cnVlOwogCQkJCQkkJCA9IChOb2RlICopIG47CiAJCQkJfQogCQk7CiAKK09wdFNlc3Np b25WYXJEZWZFeHByOiBERUZBVUxUIGJfZXhwcgkJCQkJeyAkJCA9ICQyOyB9CisJCQl8IC8qIEVN UFRZICovCQkJCQkJCXsgJCQgPSBOVUxMOyB9CisJCTsKKwogLyoKICAqIFRlbXBvcmFyeSBzZXNz aW9uIHZhcmlhYmxlcyBjYW4gYmUgZHJvcHBlZCBvbiBzdWNjZXNzZnVsCiAgKiB0cmFuc2FjdGlv biBlbmQgbGlrZSB0YWJsZXMuCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf YWdnLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfYWdnLmMKaW5kZXggNDczN2IwNGQxNy4u NTRiNzY1YzhlYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCisr KyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYwpAQCAtNDg4LDYgKzQ4OCw3IEBAIGNo ZWNrX2FnZ2xldmVsc19hbmRfY29uc3RyYWludHMoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpl eHByKQogCQkJYnJlYWs7CiAJCWNhc2UgRVhQUl9LSU5EX0NPTFVNTl9ERUZBVUxUOgogCQljYXNl IEVYUFJfS0lORF9GVU5DVElPTl9ERUZBVUxUOgorCQljYXNlIEVYUFJfS0lORF9WQVJJQUJMRV9E RUZBVUxUOgogCiAJCQlpZiAoaXNBZ2cpCiAJCQkJZXJyID0gXygiYWdncmVnYXRlIGZ1bmN0aW9u cyBhcmUgbm90IGFsbG93ZWQgaW4gREVGQVVMVCBleHByZXNzaW9ucyIpOwpAQCAtOTM3LDYgKzkz OCw3IEBAIHRyYW5zZm9ybVdpbmRvd0Z1bmNDYWxsKFBhcnNlU3RhdGUgKnBzdGF0ZSwgV2luZG93 RnVuYyAqd2Z1bmMsCiAJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJTkRfQ09MVU1OX0RFRkFVTFQ6 CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CisJCWNhc2UgRVhQUl9LSU5EX1ZB UklBQkxFX0RFRkFVTFQ6CiAJCQllcnIgPSBfKCJ3aW5kb3cgZnVuY3Rpb25zIGFyZSBub3QgYWxs b3dlZCBpbiBERUZBVUxUIGV4cHJlc3Npb25zIik7CiAJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJ TkRfSU5ERVhfRVhQUkVTU0lPTjoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJz ZV9leHByLmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCmluZGV4IDFmNTUwY2Qw NGQuLjNhOTA0ZTVjMjUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHBy LmMKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAtNTg4LDYgKzU4OCw3 IEBAIGV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJpYWJsZXMoUGFyc2VFeHByS2luZCBwX2V4 cHJfa2luZCkKIAkJY2FzZSBFWFBSX0tJTkRfSk9JTl9VU0lORzoKIAkJY2FzZSBFWFBSX0tJTkRf Q1lDTEVfTUFSSzoKIAkJY2FzZSBFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVDoKKwkJY2FzZSBFWFBS X0tJTkRfVkFSSUFCTEVfREVGQVVMVDoKIAkJCXJlc3VsdCA9IGZhbHNlOwogCQkJYnJlYWs7CiAJ fQpAQCAtNjczLDYgKzY3NCw3IEBAIHRyYW5zZm9ybUNvbHVtblJlZihQYXJzZVN0YXRlICpwc3Rh dGUsIENvbHVtblJlZiAqY3JlZikKIAkJY2FzZSBFWFBSX0tJTkRfQ1lDTEVfTUFSSzoKIAkJY2Fz ZSBFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVDoKIAkJY2FzZSBFWFBSX0tJTkRfTEVUX1RBUkdFVDoK KwkJY2FzZSBFWFBSX0tJTkRfVkFSSUFCTEVfREVGQVVMVDoKIAkJCS8qIG9rYXkgKi8KIAkJCWJy ZWFrOwogCkBAIC0yMTQ2LDYgKzIxNDgsNyBAQCB0cmFuc2Zvcm1TdWJMaW5rKFBhcnNlU3RhdGUg KnBzdGF0ZSwgU3ViTGluayAqc3VibGluaykKIAkJCWJyZWFrOwogCQljYXNlIEVYUFJfS0lORF9D T0xVTU5fREVGQVVMVDoKIAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVDoKKwkJY2Fz ZSBFWFBSX0tJTkRfVkFSSUFCTEVfREVGQVVMVDoKIAkJCWVyciA9IF8oImNhbm5vdCB1c2Ugc3Vi cXVlcnkgaW4gREVGQVVMVCBleHByZXNzaW9uIik7CiAJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJ TkRfSU5ERVhfRVhQUkVTU0lPTjoKQEAgLTM0OTgsNiArMzUwMSw3IEBAIFBhcnNlRXhwcktpbmRO YW1lKFBhcnNlRXhwcktpbmQgZXhwcktpbmQpCiAJCQlyZXR1cm4gIkNIRUNLIjsKIAkJY2FzZSBF WFBSX0tJTkRfQ09MVU1OX0RFRkFVTFQ6CiAJCWNhc2UgRVhQUl9LSU5EX0ZVTkNUSU9OX0RFRkFV TFQ6CisJCWNhc2UgRVhQUl9LSU5EX1ZBUklBQkxFX0RFRkFVTFQ6CiAJCQlyZXR1cm4gIkRFRkFV TFQiOwogCQljYXNlIEVYUFJfS0lORF9JTkRFWF9FWFBSRVNTSU9OOgogCQkJcmV0dXJuICJpbmRl eCBleHByZXNzaW9uIjsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5j LmMgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZnVuYy5jCmluZGV4IGRjMjVmNmRjZDAuLmQ5 ZjE1YzI2MTggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9mdW5jLmMKKysr IGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYwpAQCAtMjYyMCw2ICsyNjIwLDcgQEAg Y2hlY2tfc3JmX2NhbGxfcGxhY2VtZW50KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqbGFzdF9z cmYsIGludCBsb2NhdGlvbikKIAkJCWJyZWFrOwogCQljYXNlIEVYUFJfS0lORF9DT0xVTU5fREVG QVVMVDoKIAkJY2FzZSBFWFBSX0tJTkRfRlVOQ1RJT05fREVGQVVMVDoKKwkJY2FzZSBFWFBSX0tJ TkRfVkFSSUFCTEVfREVGQVVMVDoKIAkJCWVyciA9IF8oInNldC1yZXR1cm5pbmcgZnVuY3Rpb25z IGFyZSBub3QgYWxsb3dlZCBpbiBERUZBVUxUIGV4cHJlc3Npb25zIik7CiAJCQlicmVhazsKIAkJ Y2FzZSBFWFBSX0tJTkRfSU5ERVhfRVhQUkVTU0lPTjoKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdf ZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IGYyZjM3Nzlj NjcuLmE2YzMzZDJlZGUgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysr IGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYwpAQCAtNTQzNiw2ICs1NDM2LDcgQEAgZ2V0VmFy aWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJaW50CQkJaV92YXJuYW1lc3BhY2U7CiAJaW50CQkJaV92 YXJ0eXBlOwogCWludAkJCWlfdmFydHlwbmFtZTsKKwlpbnQJCQlpX3ZhcmRlZmV4cHI7CiAJaW50 CQkJaV92YXJ4YWN0ZW5kYWN0aW9uOwogCWludAkJCWlfdmFyb3duZXI7CiAJaW50CQkJaV92YXJj b2xsYXRpb247CkBAIC01NDYxLDYgKzU0NjIsNyBAQCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91 dCkKIAkJCQkJICAiICAgICAgICAgICAgVEhFTiB2LnZhcmNvbGxhdGlvblxuIgogCQkJCQkgICIg ICAgICAgICAgICBFTFNFIDBcbiIKIAkJCQkJICAiICAgICAgIEVORCBBUyB2YXJjb2xsYXRpb24s XG4iCisJCQkJCSAgIiAgICAgICBwZ19jYXRhbG9nLnBnX2dldF9leHByKHYudmFyZGVmZXhwciww KSBhcyB2YXJkZWZleHByLFxuIgogCQkJCQkgICIgICAgICAgdi52YXJvd25lciwgdi52YXJhY2ws XG4iCiAJCQkJCSAgIiAgICAgICBhY2xkZWZhdWx0KCdWJywgdi52YXJvd25lcikgQVMgYWNsZGVm YXVsdFxuIgogCQkJCQkgICJGUk9NIHBnX2NhdGFsb2cucGdfdmFyaWFibGUgdlxuIgpAQCAtNTQ3 Nyw2ICs1NDc5LDcgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJaV92YXJuYW1lc3Bh Y2UgPSBQUWZudW1iZXIocmVzLCAidmFybmFtZXNwYWNlIik7CiAJaV92YXJ0eXBlID0gUFFmbnVt YmVyKHJlcywgInZhcnR5cGUiKTsKIAlpX3ZhcnR5cG5hbWUgPSBQUWZudW1iZXIocmVzLCAidmFy dHlwbmFtZSIpOworCWlfdmFyZGVmZXhwciA9IFBRZm51bWJlcihyZXMsICJ2YXJkZWZleHByIik7 CiAJaV92YXJ4YWN0ZW5kYWN0aW9uID0gUFFmbnVtYmVyKHJlcywgInZhcnhhY3RlbmRhY3Rpb24i KTsKIAlpX3ZhcmNvbGxhdGlvbiA9IFBRZm51bWJlcihyZXMsICJ2YXJjb2xsYXRpb24iKTsKIApA QCAtNTUxMiw2ICs1NTE1LDExIEBAIGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCQl2YXJp bmZvW2ldLmRhY2wuaW5pdHByaXZzID0gTlVMTDsKIAkJdmFyaW5mb1tpXS5yb2xuYW1lID0gZ2V0 Um9sZU5hbWUoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyb3duZXIpKTsKIAorCQlpZiAoUFFnZXRp c251bGwocmVzLCBpLCBpX3ZhcmRlZmV4cHIpKQorCQkJdmFyaW5mb1tpXS52YXJkZWZleHByID0g TlVMTDsKKwkJZWxzZQorCQkJdmFyaW5mb1tpXS52YXJkZWZleHByID0gcGdfc3RyZHVwKFBRZ2V0 dmFsdWUocmVzLCBpLCBpX3ZhcmRlZmV4cHIpKTsKKwogCQkvKiBkbyBub3QgdHJ5IHRvIGR1bXAg QUNMIGlmIG5vIEFDTCBleGlzdHMgKi8KIAkJaWYgKCFQUWdldGlzbnVsbChyZXMsIGksIGlfdmFy YWNsKSkKIAkJCXZhcmluZm9baV0uZG9iai5jb21wb25lbnRzIHw9IERVTVBfQ09NUE9ORU5UX0FD TDsKQEAgLTU1NDQsNiArNTU1Miw3IEBAIGR1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0LCBjb25z dCBWYXJpYWJsZUluZm8gKnZhcmluZm8pCiAJUFFFeHBCdWZmZXIgcXVlcnk7CiAJY2hhcgkgICAq cXVhbHZhcm5hbWU7CiAJY29uc3QgY2hhciAqdmFydHlwbmFtZTsKKwljb25zdCBjaGFyICp2YXJk ZWZleHByOwogCWNvbnN0IGNoYXIgKnZhcnhhY3RlbmRhY3Rpb247CiAJT2lkCQkJdmFyY29sbGF0 aW9uOwogCkBAIC01NTU2LDYgKzU1NjUsNyBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwg Y29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKQogCiAJcXVhbHZhcm5hbWUgPSBwZ19zdHJkdXAo Zm10UXVhbGlmaWVkRHVtcGFibGUodmFyaW5mbykpOwogCXZhcnR5cG5hbWUgPSB2YXJpbmZvLT52 YXJ0eXBuYW1lOworCXZhcmRlZmV4cHIgPSB2YXJpbmZvLT52YXJkZWZleHByOwogCXZhcnhhY3Rl bmRhY3Rpb24gPSB2YXJpbmZvLT52YXJ4YWN0ZW5kYWN0aW9uOwogCXZhcmNvbGxhdGlvbiA9IHZh cmluZm8tPnZhcmNvbGxhdGlvbjsKIApAQCAtNTU3NSw2ICs1NTg1LDEwIEBAIGR1bXBWYXJpYWJs ZShBcmNoaXZlICpmb3V0LCBjb25zdCBWYXJpYWJsZUluZm8gKnZhcmluZm8pCiAJCQkJCQkJICBm bXRRdWFsaWZpZWREdW1wYWJsZShjb2xsKSk7CiAJfQogCisJaWYgKHZhcmRlZmV4cHIpCisJCWFw cGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiIERFRkFVTFQgJXMiLAorCQkJCQkJICB2YXJkZWZleHBy KTsKKwogCWlmIChzdHJjbXAodmFyeGFjdGVuZGFjdGlvbiwgInIiKSA9PSAwKQogCQlhcHBlbmRQ UUV4cEJ1ZmZlcihxdWVyeSwgIiBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQiKTsKIApkaWZmIC0t Z2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1w LmgKaW5kZXggYTlhYzcwZDc2MS4uMjYxMzcwMGUxOSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXAuaAorKysgYi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCkBAIC03MTcsNiAr NzE3LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgX1ZhcmlhYmxlSW5mbwogCUR1bXBhYmxlQWNsIGRhY2w7 CiAJT2lkCQkJdmFydHlwZTsKIAljaGFyCSAgICp2YXJ0eXBuYW1lOworCWNoYXIJICAgKnZhcmRl ZmV4cHI7CiAJY2hhcgkgICAqdmFyeGFjdGVuZGFjdGlvbjsKIAljaGFyCSAgICp2YXJhY2w7CiAJ Y2hhcgkgICAqcnZhcmFjbDsKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9wZ19k dW1wLnBsIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKaW5kZXggN2IwY2MyYzVk OS4uZmNmNjg5NjZiMCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAu cGwKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3QvMDAyX3BnX2R1bXAucGwKQEAgLTQwMDUsNiArNDAw NSw0MiBAQCBteSAldGVzdHMgPSAoCiAJCX0sCiAJfSwKIAorCSdDUkVBVEUgVkFSSUFCTEUgdGVz dF92YXJpYWJsZSBERUZBVUxUJyA9PiB7CisJCWFsbF9ydW5zICAgICA9PiAxLAorCQljYXRjaF9h bGwgICAgPT4gJ0NSRUFURSAuLi4gY29tbWFuZHMnLAorCQljcmVhdGVfb3JkZXIgPT4gNjEsCisJ CWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTMgQVMg aW50ZWdlciBERUZBVUxUIDEwOycsCisJCXJlZ2V4cCA9PiBxci9eCisJCQlcUUNSRUFURSBWQVJJ QUJMRSBkdW1wX3Rlc3QudmFyaWFibGUzIEFTIGludGVnZXIgREVGQVVMVCAxMDtcRS94bSwKKwkJ bGlrZSA9PiB7CisJCQklZnVsbF9ydW5zLAorCQkJJWR1bXBfdGVzdF9zY2hlbWFfcnVucywKKwkJ CXNlY3Rpb25fcHJlX2RhdGEgPT4gMSwKKwkJfSwKKwkJdW5saWtlID0+IHsKKwkJCWV4Y2x1ZGVf ZHVtcF90ZXN0X3NjaGVtYSA9PiAxLAorCQkJb25seV9kdW1wX21lYXN1cmVtZW50ICAgID0+IDEs CisJCX0sCisJfSwKKworCSdDUkVBVEUgVkFSSUFCTEUgdGVzdF92YXJpYWJsZSBERUZBVUxUIE9O IFRSQU5TQUNUSU9OIEVORCBSRVNFVCcgPT4geworCQlhbGxfcnVucyAgICAgPT4gMSwKKwkJY2F0 Y2hfYWxsICAgID0+ICdDUkVBVEUgLi4uIGNvbW1hbmRzJywKKwkJY3JlYXRlX29yZGVyID0+IDYx LAorCQljcmVhdGVfc3FsICAgPT4gJ0NSRUFURSBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGU0 IEFTIGludGVnZXIgREVGQVVMVCAxMCBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQnLAorCQlyZWdl eHAgPT4gcXIvXgorCQkJXFFDUkVBVEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlNCBBUyBp bnRlZ2VyIERFRkFVTFQgMTAgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUO1xFL3htLAorCQlsaWtl ID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJCQklZHVtcF90ZXN0X3NjaGVtYV9ydW5zLAorCQkJc2Vj dGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9LAorCQl1bmxpa2UgPT4geworCQkJZXhjbHVkZV9kdW1w X3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlvbmx5X2R1bXBfbWVhc3VyZW1lbnQgICAgPT4gMSwKKwkJ fSwKKwl9LAorCiAJJ0NSRUFURSBWSUVXIHRlc3RfdmlldycgPT4gewogCQljcmVhdGVfb3JkZXIg PT4gNjEsCiAJCWNyZWF0ZV9zcWwgPT4gJ0NSRUFURSBWSUVXIGR1bXBfdGVzdC50ZXN0X3ZpZXcK ZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jIGIvc3JjL2Jpbi9wc3FsL2Rlc2Ny aWJlLmMKaW5kZXggM2Y3NDM2NzZjYS4uMjkwZGM2MjRmZSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9w c3FsL2Rlc2NyaWJlLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMKQEAgLTUyNTAsNyAr NTI1MCw3IEBAIGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2ZXJib3Nl KQogCVBRRXhwQnVmZmVyRGF0YSBidWY7CiAJUEdyZXN1bHQgICAqcmVzOwogCXByaW50UXVlcnlP cHQgbXlvcHQgPSBwc2V0LnBvcHQ7Ci0Jc3RhdGljIGNvbnN0IGJvb2wgdHJhbnNsYXRlX2NvbHVt bnNbXSA9IHtmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwg ZmFsc2V9OworCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2Us IGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZX07 CiAKIAlpZiAocHNldC5zdmVyc2lvbiA8IDE4MDAwMCkKIAl7CkBAIC01MjcxLDYgKzUyNzEsNyBA QCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAkJCQkJ ICAiICAoU0VMRUNUIGMuY29sbG5hbWUgRlJPTSBwZ19jYXRhbG9nLnBnX2NvbGxhdGlvbiBjLCBw Z19jYXRhbG9nLnBnX3R5cGUgYnRcbiIKIAkJCQkJICAiICAgV0hFUkUgYy5vaWQgPSB2LnZhcmNv bGxhdGlvbiBBTkQgYnQub2lkID0gdi52YXJ0eXBlIEFORCB2LnZhcmNvbGxhdGlvbiA8PiBidC50 eXBjb2xsYXRpb24pIGFzIFwiJXNcIixcbiIKIAkJCQkJICAiICBwZ19jYXRhbG9nLnBnX2dldF91 c2VyYnlpZCh2LnZhcm93bmVyKSBhcyBcIiVzXCIsXG4iCisJCQkJCSAgIiAgcGdfY2F0YWxvZy5w Z19nZXRfZXhwcih2LnZhcmRlZmV4cHIsIDApIGFzIFwiJXNcIixcbiIKIAkJCQkJICAiICBDQVNF IHYudmFyeGFjdGVuZGFjdGlvblxuIgogCQkJCQkgICIgICAgV0hFTiAnZCcgVEhFTiAnT04gQ09N TUlUIERST1AnXG4iCiAJCQkJCSAgIiAgICBXSEVOICdyJyBUSEVOICdPTiBUUkFOU0FDVElPTiBF TkQgUkVTRVQnXG4iCkBAIC01MjgwLDYgKzUyODEsNyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNo YXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKIAkJCQkJICBnZXR0ZXh0X25vb3AoIlR5cGUiKSwK IAkJCQkJICBnZXR0ZXh0X25vb3AoIkNvbGxhdGlvbiIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgi T3duZXIiKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIkRlZmF1bHQiKSwKIAkJCQkJICBnZXR0ZXh0 X25vb3AoIlRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiIpKTsKIAogCWlmICh2ZXJib3NlKQpkaWZm IC0tZ2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ192YXJpYWJsZS5oCmluZGV4IDAwOGYyZWU3YzEuLjA5ZGQ0NGE0NGUgMTAwNjQ0 Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAorKysgYi9zcmMvaW5jbHVk ZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKQEAgLTY4LDYgKzY4LDkgQEAgQ0FUQUxPRyhwZ192YXJp YWJsZSw5MjIyLFZhcmlhYmxlUmVsYXRpb25JZCkKIAkvKiBhY2Nlc3MgcGVybWlzc2lvbnMgKi8K IAlhY2xpdGVtCQl2YXJhY2xbMV0gQktJX0RFRkFVTFQoX251bGxfKTsKIAorCS8qIGxpc3Qgb2Yg ZXhwcmVzc2lvbiB0cmVlcyBmb3IgdmFyaWFibGUgZGVmYXVsdCAoTlVMTCBpZiBub25lKSAqLwor CXBnX25vZGVfdHJlZSB2YXJkZWZleHByIEJLSV9ERUZBVUxUKF9udWxsXyk7CisKICNlbmRpZgog fSBGb3JtRGF0YV9wZ192YXJpYWJsZTsKIApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMv cGFyc2Vub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IGVjNGEx NmFlYTIuLmFjYzdkNzNmYjggMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9k ZXMuaAorKysgYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTM0ODcsNiArMzQ4 Nyw3IEBAIHR5cGVkZWYgc3RydWN0IENyZWF0ZVNlc3Npb25WYXJTdG10CiAJVHlwZU5hbWUgICAq dHlwZU5hbWU7CQkvKiB0aGUgdHlwZSBvZiB2YXJpYWJsZSAqLwogCUNvbGxhdGVDbGF1c2UgKmNv bGxDbGF1c2U7CiAJYm9vbAkJaWZfbm90X2V4aXN0czsJLyogZG8gbm90aGluZyBpZiBpdCBhbHJl YWR5IGV4aXN0cyAqLworCU5vZGUJICAgKmRlZmV4cHI7CQkvKiBkZWZhdWx0IGV4cHJlc3Npb24g Ki8KIAljaGFyCQlYYWN0RW5kQWN0aW9uOwkvKiBvbiB0cmFuc2FjdGlvbiBlbmQgYWN0aW9uICov CiB9IENyZWF0ZVNlc3Npb25WYXJTdG10OwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9wYXJz ZXIvcGFyc2Vfbm9kZS5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX25vZGUuaAppbmRleCA4 YjU1Zjg0MGQxLi4zNmY5OWM4OGVlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFy c2Vfbm9kZS5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKQEAgLTg0LDYg Kzg0LDcgQEAgdHlwZWRlZiBlbnVtIFBhcnNlRXhwcktpbmQKIAlFWFBSX0tJTkRfQ1lDTEVfTUFS SywJCS8qIGN5Y2xlIG1hcmsgdmFsdWUgKi8KIAlFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVCwJLyog UEwvcGdTUUwgYXNzaWdubWVudCB0YXJnZXQgKi8KIAlFWFBSX0tJTkRfTEVUX1RBUkdFVCwJCS8q IExFVCB0YXJnZXQgKi8KKwlFWFBSX0tJTkRfVkFSSUFCTEVfREVGQVVMVCwgLyogZGVmYXVsdCB2 YWx1ZSBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAqLwogfSBQYXJzZUV4cHJLaW5kOwogCiAKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3BzcWwub3V0CmluZGV4IDYxMDc3YTUyYjEuLmJjN2I2MGE5N2UgMTAwNjQ0 Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKKysrIGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9wc3FsLm91dApAQCAtNTkzNSwyMCArNTkzNSwyMCBAQCBDUkVBVEUg Uk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwogU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJs ZV9vd25lcjsKIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcmNoYXIgQ09MTEFURSAiQyI7CiBc ZFYrIHZhcjEKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBl ICAgICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBUcmFuc2FjdGlv bmFsIGVuZCBhY3Rpb24gfCBBY2Nlc3MgcHJpdmlsZWdlcyB8IERlc2NyaXB0aW9uIAotLS0tLS0t LS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0r LS0tLS0tLS0tLS0tLQotIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAg ICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgICAgICAgICAgICAgICAgICB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEg fCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAg ICAgICAgIHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8IEFjY2VzcyBwcml2 aWxlZ2VzIHwgRGVzY3JpcHRpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLQorIHB1 YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFy aWFibGVfb3duZXIgfCAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgfCAKICgxIHJvdykKIAogR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEg VE8gUFVCTElDOwogQ09NTUVOVCBPTiBWQVJJQUJMRSB2YXIxIElTICdzb21lIGRlc2NyaXB0aW9u JzsKIFxkVisgdmFyMQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2No ZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25l ciAgICAgICAgICB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8ICAgICAgICAgICAgICAgIEFj Y2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8ICAgRGVzY3JpcHRpb24gICAgCi0tLS0t LS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCi0gcHVi bGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJp YWJsZV9vd25lciB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVf b3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IHNvbWUgZGVzY3JpcHRpb24KLSAgICAg ICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgPXIvcmVncmVzc192YXJpYWJs ZV9vd25lciAgICAgICAgICAgICAgICAgICAgICAgIHwgCisgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAgICAgICB8 IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCBEZWZhdWx0IHwgVHJhbnNhY3Rp b25hbCBlbmQgYWN0aW9uIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAg ICAgICAgICAgIHwgICBEZXNjcmlwdGlvbiAgICAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0r LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgcHVibGljIHwgdmFyMSB8 IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25lciB8 ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCByZWdyZXNzX3ZhcmlhYmxlX293 bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCBzb21lIGRlc2NyaXB0aW9uCisgICAgICAg IHwgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAgICAgICAgICAg ICAgICAgICB8ICAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgfCA9ci9yZWdyZXNz X3ZhcmlhYmxlX293bmVyICAgICAgICAgICAgICAgICAgICAgICAgfCAKICgxIHJvdykKIAogRFJP UCBWQVJJQUJMRSB2YXIxOwpAQCAtNjQxNiw5ICs2NDE2LDkgQEAgTGlzdCBvZiBzY2hlbWFzCiAo MCByb3dzKQogCiBcZFYgIm5vLnN1Y2gudmFyaWFibGUiCi0gICAgICAgICAgICAgICAgICAgICAg ICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24g fCBPd25lciB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKLS0tLS0tLS0tKy0tLS0tLSstLS0t LS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFt ZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciB8IERlZmF1bHQgfCBUcmFuc2FjdGlvbmFsIGVu ZCBhY3Rpb24gCistLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0t LS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiAoMCByb3dzKQogCiAtLSBhZ2Fpbiwg YnV0IHdpdGggZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KQEAgLTY1OTEsOSArNjU5MSw5 IEBAIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8u c3VjaC5zY2hlbWEiLiJuby5zdWNoLmluc3RhCiBcZHkgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3Vj aC5ldmVudC50cmlnZ2VyIgogaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRvdHRl ZCBuYW1lcyk6ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKIFxkViAi bm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgICAgICAgICAg ICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9u IHwgT3duZXIgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0t LS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5h bWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBEZWZhdWx0IHwgVHJhbnNhY3Rpb25hbCBl bmQgYWN0aW9uIAorLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0t LS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykKIAogLS0gYWdhaW4s IGJ1dCB3aXRoIGN1cnJlbnQgZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlv bnMuCkBAIC02NzMwLDkgKzY3MzAsOSBAQCBMaXN0IG9mIHRleHQgc2VhcmNoIHRlbXBsYXRlcwog KDAgcm93cykKIAogXGRWIHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJp YWJsZSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKLSBTY2hl bWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIHwgVHJhbnNhY3Rpb25hbCBlbmQg YWN0aW9uIAotLS0tLS0tLS0rLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlz dCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVy IHwgRGVmYXVsdCB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSst LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0KICgwIHJvd3MpCiAKIC0tIGFnYWluLCBidXQgd2l0aCBkb3R0ZWQgZGF0YWJhc2UgYW5k IGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDQ5NjdkZWM4MWEuLmZhOTYzMDQwMDIg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMu b3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0 CkBAIC0yMzg5LDMgKzIzODksNjYgQEAgU0VMRUNUIHZhcjEgSVMgTlVMTDsKICgxIHJvdykKIAog RFJPUCBWQVJJQUJMRSB2YXIxOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdmFydGVzdF9m eCgpCitSRVRVUk5TIGludCBBUyAkJAorQkVHSU4KKyAgUkFJU0UgTk9USUNFICd2YXJ0ZXN0X2Z4 IGV4ZWN1dGVkJzsKKyAgUkVUVVJOIDA7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworQ1JF QVRFIFZBUklBQkxFIHZhcjEgQVMgaW50IERFRkFVTFQgdmFydGVzdF9meCgpOworLS0gdmFydGVz dF9meCBzaG91bGQgYmUgcHJvdGVjdGVkIGJ5IGRlcCwgc2hvdWxkIGZhaWwKK0RST1AgRlVOQ1RJ T04gdmFydGVzdF9meCgpOworRVJST1I6ICBjYW5ub3QgZHJvcCBmdW5jdGlvbiB2YXJ0ZXN0X2Z4 KCkgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAgc2Vzc2lvbiB2 YXJpYWJsZSB2YXIxIGRlcGVuZHMgb24gZnVuY3Rpb24gdmFydGVzdF9meCgpCitISU5UOiAgVXNl IERST1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgorLS0g c2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKK05PVElDRTogIHZhcnRlc3RfZnggZXhlY3V0ZWQK KyB2YXIxIAorLS0tLS0tCisgICAgMAorKDEgcm93KQorCistLSB0aGUgZGVmZXhwciBzaG91bGQg YmUgZXZhbHVhdGVkIG9ubHkgb25jZQorU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAg IDAKKygxIHJvdykKKworRElTQ0FSRCBWQVJJQUJMRVM7CistLSBpbiB0aGlzIGNhc2UsIHRoZSBk ZWZleHByIHNob3VsZCBub3QgYmUgZXZhbHVhdGVkCitMRVQgdmFyMSA9IDEwMDsKK1NFTEVDVCB2 YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cpCisKK0RJU0NBUkQgVkFSSUFCTEVT OworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdmFydGVzdF9meCgpCitSRVRVUk5TIGludCBB UyAkJAorQkVHSU4KKyAgUkFJU0UgRVhDRVBUSU9OICd2YXJ0ZXN0X2Z4IGlzIGV4ZWN1dGluZyc7 CisgIFJFVFVSTiAwOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKy0tIHNob3VsZCB0byBm YWlsLCBidXQgbm90IHRvIGNyYXNoCitTRUxFQ1QgdmFyMTsKK0VSUk9SOiAgdmFydGVzdF9meCBp cyBleGVjdXRpbmcKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBmdW5jdGlvbiB2YXJ0ZXN0X2Z4KCkgbGlu ZSAzIGF0IFJBSVNFCistLSBhZ2FpbgorU0VMRUNUIHZhcjE7CitFUlJPUjogIHZhcnRlc3RfZngg aXMgZXhlY3V0aW5nCitDT05URVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gdmFydGVzdF9meCgpIGxp bmUgMyBhdCBSQUlTRQorLS0gYnV0IHdlIGNhbiB3cml0ZQorTEVUIHZhcjEgPSAxMDA7CitTRUxF Q1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEgcm93KQorCitEUk9QIFZBUklBQkxF IHZhcjE7CitEUk9QIEZVTkNUSU9OIHZhcnRlc3RfZngoKTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCAyNDE3NTFhMjVhLi5mNjY5NWI4ZDc5IDEwMDY0 NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIv c3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0xNjM4LDMgKzE2 MzgsNTEgQEAgUk9MTEJBQ0s7CiBTRUxFQ1QgdmFyMSBJUyBOVUxMOwogCiBEUk9QIFZBUklBQkxF IHZhcjE7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHZhcnRlc3RfZngoKQorUkVUVVJO UyBpbnQgQVMgJCQKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAndmFydGVzdF9meCBleGVjdXRlZCc7 CisgIFJFVFVSTiAwOworRU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworQ1JFQVRFIFZBUklB QkxFIHZhcjEgQVMgaW50IERFRkFVTFQgdmFydGVzdF9meCgpOworCistLSB2YXJ0ZXN0X2Z4IHNo b3VsZCBiZSBwcm90ZWN0ZWQgYnkgZGVwLCBzaG91bGQgZmFpbAorRFJPUCBGVU5DVElPTiB2YXJ0 ZXN0X2Z4KCk7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisKKy0tIHRoZSBkZWZl eHByIHNob3VsZCBiZSBldmFsdWF0ZWQgb25seSBvbmNlCitTRUxFQ1QgdmFyMTsKKworRElTQ0FS RCBWQVJJQUJMRVM7CisKKy0tIGluIHRoaXMgY2FzZSwgdGhlIGRlZmV4cHIgc2hvdWxkIG5vdCBi ZSBldmFsdWF0ZWQKK0xFVCB2YXIxID0gMTAwOworU0VMRUNUIHZhcjE7CisKK0RJU0NBUkQgVkFS SUFCTEVTOworCitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB2YXJ0ZXN0X2Z4KCkKK1JFVFVS TlMgaW50IEFTICQkCitCRUdJTgorICBSQUlTRSBFWENFUFRJT04gJ3ZhcnRlc3RfZnggaXMgZXhl Y3V0aW5nJzsKKyAgUkVUVVJOIDA7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCistLSBz aG91bGQgdG8gZmFpbCwgYnV0IG5vdCB0byBjcmFzaAorU0VMRUNUIHZhcjE7CisKKy0tIGFnYWlu CitTRUxFQ1QgdmFyMTsKKworLS0gYnV0IHdlIGNhbiB3cml0ZQorTEVUIHZhcjEgPSAxMDA7CitT RUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBGVU5DVElPTiB2YXJ0ZXN0 X2Z4KCk7Ci0tIAoyLjQ3LjEKCg== --0000000000007bfa26062b3fa8d1 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250109-0013-Implementation-ON-TRANSACTION-END-RESET-clause.patch" Content-Disposition: attachment; filename="v20250109-0013-Implementation-ON-TRANSACTION-END-RESET-clause.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5ox16np9 RnJvbSA1YWQwMWFiZmIzOGE3Y2M1ZDQ5YjIwZGUwN2VkZGI4YTgwZWE5NWJlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowMjoxMyArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTMvMjJdIEltcGxlbWVudGF0aW9uIE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCBjbGF1c2UKClRo aXMgaXMgc2ltcGxlIHBhdGNoIC0ganVzdCBhZGQgc3BlY2lhbCBmbGFnIHRvIHNlc3Npb24gdmFy aWFibGUgbWVtb3J5IGVudHJ5LgpUaGUgZW50cmllcyB3aXRoIGFjdGl2ZSB0aGlzIGZsYWcgYXJl IHJlbW92ZWQgZnJvbSBzZXNzaW9udmFycyBoYXNoIHRhYmxlCmF0IHRyYW5zYWN0aW9uIGVuZC4g VGhlICJUUkFOU0FDVElPTiBFTkQiIGlzIHN5bm9ueW1zIGZvciAiQ09NTUlUIFJPTExCQUNLIgpi dXQgdGhlICJUUkFOU0FDVElPTiBFTkQiIGlzIG1vcmUgaWxsdXN0cmF0aXZlIGFuZCBsZXNzIGNv bmZ1c2luZyB0aGVuICJDT01NSVQgUk9MTEJBQ0siLgotLS0KIGRvYy9zcmMvc2dtbC9jYXRhbG9n cy5zZ21sICAgICAgICAgICAgICAgICAgICB8ICAzICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0 ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAxMyArKysrLQogc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgNTEgKysrKysrKysrKysrKysrKysrKwogc3JjL2Jh Y2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuYyAgICAgICAgICAgICAgICAgICAgIHwgMTEgKysrKwogc3JjL2Jpbi9w Z19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2Jpbi9wZ19k dW1wL3QvMDAyX3BnX2R1bXAucGwgICAgICAgICAgICAgIHwgMTggKysrKysrKwogc3JjL2Jpbi9w c3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgIDEgKwogc3JjL2luY2x1ZGUv Y2F0YWxvZy9wZ192YXJpYWJsZS5oICAgICAgICAgICAgIHwgIDEgKwogLi4uL2lzb2xhdGlvbi9l eHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dCAgIHwgIDQgKy0KIC4uLi9pc29sYXRpb24vc3Bl Y3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjICAgICB8ICA0ICstCiAuLi4vcmVncmVzcy9leHBlY3Rl ZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCAzNCArKysrKysrKysrKysrCiBzcmMvdGVzdC9y ZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAyMCArKysrKysrKwogMTMgZmls ZXMgY2hhbmdlZCwgMTU4IGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dt bAppbmRleCBmNjUxYWQ5MGIxLi4yMGZjNWQ2MGNmIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwv Y2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtOTg0NSw3 ICs5ODQ1LDggQEAgU0NSQU0tU0hBLTI1NiQ8cmVwbGFjZWFibGU+Jmx0O2l0ZXJhdGlvbiBjb3Vu dCZndDs8L3JlcGxhY2VhYmxlPjo8cmVwbGFjZWFibGU+JmwKICAgICAgIDwvcGFyYT4KICAgICAg IDxwYXJhPgogICAgICAgIEFjdGlvbiBwZXJmb3JtZWQgYXQgZW5kIG9mIHRyYW5zYWN0aW9uOgot ICAgICAgIDxsaXRlcmFsPm48L2xpdGVyYWw+ID0gbm8gYWN0aW9uLCA8bGl0ZXJhbD5kPC9saXRl cmFsPiA9IGRyb3AgdGhlIHZhcmlhYmxlLgorICAgICAgIDxsaXRlcmFsPm48L2xpdGVyYWw+ID0g bm8gYWN0aW9uLCA8bGl0ZXJhbD5kPC9saXRlcmFsPiA9IGRyb3AgdGhlIHZhcmlhYmxlLAorICAg ICAgIDxsaXRlcmFsPnI8L2xpdGVyYWw+ID0gcmVzZXQgdGhlIHZhcmlhYmxlIHRvIGl0cyBkZWZh dWx0IHZhbHVlLgogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21s L3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAppbmRleCBhODhlMDE3NWJlLi5jODlhNjVmYjU1IDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKQEAgLTI3LDcgKzI3LDcgQEAgUG9z dGdyZVNRTCBkb2N1bWVudGF0aW9uCiAgPHJlZnN5bm9wc2lzZGl2PgogPHN5bm9wc2lzPgogQ1JF QVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0gXSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gWyBD T0xMQVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5jb2xsYXRpb248L3JlcGxhY2Vh YmxlPiBdCi0gICAgWyBPTiBDT01NSVQgRFJPUCBdCisgICAgWyB7IE9OIENPTU1JVCBEUk9QIHwg T04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUIH0gXQogPC9zeW5vcHNpcz4KICA8L3JlZnN5bm9wc2lz ZGl2PgogIDxyZWZzZWN0MT4KQEAgLTExNyw2ICsxMTcsMTcgQEAgQ1JFQVRFIFsgeyBURU1QT1JB UlkgfCBURU1QIH0gXSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xh c3M9InAKICAgICA8L2xpc3RpdGVtPgogICAgPC92YXJsaXN0ZW50cnk+CiAKKyAgIDx2YXJsaXN0 ZW50cnkgaWQ9InNxbC1jcmVhdGV2YXJpYWJsZS1vbi10cmFuc2FjdGlvbi1lbmQtcmVzZXQiPgor ICAgIDx0ZXJtPjxsaXRlcmFsPk9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVDwvbGl0ZXJhbD48L3Rl cm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSA8bGl0ZXJhbD5PTiBU UkFOU0FDVElPTiBFTkQgUkVTRVQ8L2xpdGVyYWw+IGNsYXVzZSBjYXVzZXMgdGhlIHNlc3Npb24K KyAgICAgIHZhcmlhYmxlIHRvIGJlIHJlc2V0IHRvIGl0cyBkZWZhdWx0IHZhbHVlIHdoZW4gdGhl IHRyYW5zYWN0aW9uIGlzIGNvbW1pdHRlZAorICAgICAgb3Igcm9sbGVkIGJhY2suCisgICAgIDwv cGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKICAgPC92YXJpYWJs ZWxpc3Q+CiAgPC9yZWZzZWN0MT4KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5jCmluZGV4IGE2YmJlY2Y0ZTIuLjQ1ZTQzMWE1NDYgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTkxLDYgKzkxLDggQEAgdHlwZWRlZiBzdHJ1Y3QgU1Zhcmlh YmxlRGF0YQogCXZvaWQJICAgKmRvbWFpbl9jaGVja19leHRyYTsKIAlMb2NhbFRyYW5zYWN0aW9u SWQgZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQ7CiAKKwlib29sCQlyZXNldF9hdF9lb3g7CisKIAkv KgogCSAqIFRvcCBsZXZlbCBsb2NhbCB0cmFuc2FjdGlvbiBpZCBvZiB0aGUgbGFzdCB0cmFuc2Fj dGlvbiB0aGF0IGRyb3BwZWQgdGhlCiAJICogdmFyaWFibGUsIGlmIGFueS4gIFdlIG5lZWQgdGhp cyBpbmZvcm1hdGlvbiB0byBhdm9pZCBmcmVlaW5nIG1lbW9yeSBmb3IKQEAgLTExOCw2ICsxMjAs MTIgQEAgc3RhdGljIE1lbW9yeUNvbnRleHQgU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCA9IE5VTEw7 CiAvKiBiZWNvbWVzIHRydWUgd2hlbiB3ZSByZWNlaXZlIGEgc2ludmFsIG1lc3NhZ2UgKi8KIHN0 YXRpYyBib29sIG5lZWRzX3ZhbGlkYXRpb24gPSBmYWxzZTsKIAorLyoKKyAqIHRydWUsIHdoZW4g c29tZSB1c2VkIHNlc3Npb24gdmFyaWFibGUgaGFzIE9OIENPTU1JVCBEUk9QCisgKiBvciBPTiBU UkFOU0FDVElPTiBFTkQgUkVTRVQgY2xhdXNlcworICovCitzdGF0aWMgYm9vbCBoYXNfc2Vzc2lv bl92YXJpYWJsZXNfd2l0aF9yZXNldF9hdF9lb3ggPSBmYWxzZTsKKwogLyoKICAqIFRoZSBjb250 ZW50IG9mIGRyb3BwZWQgc2Vzc2lvbiB2YXJpYWJsZXMgaXMgbm90IHJlbW92ZWQgaW1tZWRpYXRl bHkuICBJZgogICogcG9zc2libGUsIHdlIGRvIHRoYXQgYXQgdGhlIGVuZCBvZiB0aGUgdHJhbnNh Y3Rpb24uICBCdXQgd2UgY2Fubm90IGRvIHRoYXQKQEAgLTM5Myw2ICs0MDEsMzIgQEAgcmVtb3Zl X2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMoYm9vbCBhdEVPWCkKIAl9CiB9CiAKKy8qCisgKiBy ZW1vdmUgZW50cmllcyBtYXJrZWQgYXMgInJlc2V0X2F0X2VveCIKKyAqLworc3RhdGljIHZvaWQK K3JlbW92ZV9zZXNzaW9uX3ZhcmlhYmxlc193aXRoX3Jlc2V0X2F0X2VveCh2b2lkKQoreworCUhB U0hfU0VRX1NUQVRVUyBzdGF0dXM7CisJU1ZhcmlhYmxlCXN2YXI7CisKKwlpZiAoIXNlc3Npb252 YXJzKQorCQlyZXR1cm47CisKKwkvKiBsZWF2ZSBxdWNrbHksIHdoZW4gdGhlcmUgYXJlIG5vdCB0 aGF0IHZhcmlhYmxlcyAqLworCWlmICghaGFzX3Nlc3Npb25fdmFyaWFibGVzX3dpdGhfcmVzZXRf YXRfZW94KQorCQlyZXR1cm47CisKKwloYXNoX3NlcV9pbml0KCZzdGF0dXMsIHNlc3Npb252YXJz KTsKKwl3aGlsZSAoKHN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlcV9zZWFyY2goJnN0YXR1cykp ICE9IE5VTEwpCisJeworCQlpZiAoc3Zhci0+cmVzZXRfYXRfZW94KQorCQkJaGFzaF9zZWFyY2go c2Vzc2lvbnZhcnMsICZzdmFyLT52YXJpZCwgSEFTSF9SRU1PVkUsIE5VTEwpOworCX0KKworCWhh c19zZXNzaW9uX3ZhcmlhYmxlc193aXRoX3Jlc2V0X2F0X2VveCA9IGZhbHNlOworfQorCiAvKgog ICAqIFBlcmZvcm0gT04gQ09NTUlUIERST1AgZm9yIHRlbXBvcmFyeSBzZXNzaW9uIHZhcmlhYmxl cywKICAgKiBhbmQgcmVtb3ZlIGFsbCBkcm9wcGVkIHZhcmlhYmxlcyBmcm9tIG1lbW9yeS4KQEAg LTQwMCw2ICs0MzQsOCBAQCByZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyhib29sIGF0 RU9YKQogdm9pZAogQXRQcmVFT1hhY3RfU2Vzc2lvblZhcmlhYmxlcyhib29sIGlzQ29tbWl0KQog eworCXJlbW92ZV9zZXNzaW9uX3ZhcmlhYmxlc193aXRoX3Jlc2V0X2F0X2VveCgpOworCiAJaWYg KGlzQ29tbWl0KQogCXsKIAkJaWYgKHhhY3RfZHJvcF9pdGVtcykKQEAgLTUxMSw2ICs1NDcsMjEg QEAgc2V0dXBfc2Vzc2lvbl92YXJpYWJsZShTVmFyaWFibGUgc3ZhciwgT2lkIHZhcmlkKQogCXN2 YXItPmRvbWFpbl9jaGVja19leHRyYSA9IE5VTEw7CiAJc3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJh X2x4aWQgPSBJbnZhbGlkTG9jYWxUcmFuc2FjdGlvbklkOwogCisJLyoKKwkgKiBXZSBkb24ndCBu ZWVkIHRvIGV4cGxpY2l0bHkgcmVzZXQgdmFyaWFibGVzIG1hcmtlZCBPTiBDT01NSVQgRFJPUC4g SXQKKwkgKiBjYW4gYmUgZG9uZSBieSBzaW52YWwgbWVzc2FnZSBwcm9jZXNzaW5nLiBCdXQgdGhp cyBwcm9jZXNzaW5nIGNhbiBiZQorCSAqIHBvc3Rwb25lZCBkdWUgYWJvcnRlZCB0cmFuc2FjdGlv bi4gT24gc2Vjb25kIGhhbmQgdGhlcmUgaXMgbm90IGEKKwkgKiByZWFzb24sIHdoeSBkb24ndCBk byBpdCBhdCB0cmFuc2FjdGlvbiBlbmQgaW1tZWRpYXRlbHkuCisJICovCisJaWYgKHZhcmZvcm0t PnZhcnhhY3RlbmRhY3Rpb24gPT0gVkFSSUFCTEVfWEFDVEVORF9SRVNFVCB8fAorCQl2YXJmb3Jt LT52YXJ4YWN0ZW5kYWN0aW9uID09IFZBUklBQkxFX1hBQ1RFTkRfRFJPUCkKKwl7CisJCXN2YXIt PnJlc2V0X2F0X2VveCA9IHRydWU7CisJCWhhc19zZXNzaW9uX3ZhcmlhYmxlc193aXRoX3Jlc2V0 X2F0X2VveCA9IHRydWU7CisJfQorCWVsc2UKKwkJc3Zhci0+cmVzZXRfYXRfZW94ID0gZmFsc2U7 CisKIAlzdmFyLT5kcm9wX2x4aWQgPSBJbnZhbGlkVHJhbnNhY3Rpb25JZDsKIAogCXN2YXItPmlz bnVsbCA9IHRydWU7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCA3YzA4OTU0OWI0Li44M2NmOTFkM2VmIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkKQEAgLTUyNTgsNiArNTI1OCw3IEBAIENyZWF0ZVNlc3Npb25WYXJTdG10OgogICog dHJhbnNhY3Rpb24gZW5kIGxpa2UgdGFibGVzLgogICovCiBYYWN0RW5kQWN0aW9uT3B0aW9uOiAg T04gQ09NTUlUIERST1AJCQkJeyAkJCA9IFZBUklBQkxFX1hBQ1RFTkRfRFJPUDsgfQorCQkJfCBP TiBUUkFOU0FDVElPTiBFTkRfUCBSRVNFVAkJCXsgJCQgPSBWQVJJQUJMRV9YQUNURU5EX1JFU0VU OyB9CiAJCQl8IC8qRU1QVFkqLwkJCQkJCQkJeyAkJCA9IFZBUklBQkxFX1hBQ1RFTkRfTk9PUDsg fQogCQk7CiAKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgYi9zcmMvYmlu L3BnX2R1bXAvcGdfZHVtcC5jCmluZGV4IDllMzJjNDc4NDEuLmYyZjM3NzljNjcgMTAwNjQ0Ci0t LSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1 bXAuYwpAQCAtNTQzNiw2ICs1NDM2LDcgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAJ aW50CQkJaV92YXJuYW1lc3BhY2U7CiAJaW50CQkJaV92YXJ0eXBlOwogCWludAkJCWlfdmFydHlw bmFtZTsKKwlpbnQJCQlpX3ZhcnhhY3RlbmRhY3Rpb247CiAJaW50CQkJaV92YXJvd25lcjsKIAlp bnQJCQlpX3ZhcmNvbGxhdGlvbjsKIAlpbnQJCQlpX3ZhcmFjbDsKQEAgLTU0NTMsNiArNTQ1NCw3 IEBAIGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCS8qIGdldCB0aGUgdmFyaWFibGVzIGlu IGN1cnJlbnQgZGF0YWJhc2UgKi8KIAlhcHBlbmRQUUV4cEJ1ZmZlcihxdWVyeSwKIAkJCQkJICAi U0VMRUNUIHYudGFibGVvaWQsIHYub2lkLCB2LnZhcm5hbWUsXG4iCisJCQkJCSAgIiAgICAgICB2 LnZhcnhhY3RlbmRhY3Rpb24sXG4iCiAJCQkJCSAgIiAgICAgICB2LnZhcm5hbWVzcGFjZSwgdi52 YXJ0eXBlLFxuIgogCQkJCQkgICIgICAgICAgcGdfY2F0YWxvZy5mb3JtYXRfdHlwZSh2LnZhcnR5 cGUsIHYudmFydHlwbW9kKSBhcyB2YXJ0eXBuYW1lLFxuIgogCQkJCQkgICIgICAgICAgQ0FTRSBX SEVOIHYudmFyY29sbGF0aW9uIDw+IHQudHlwY29sbGF0aW9uICIKQEAgLTU0NzUsNiArNTQ3Nyw3 IEBAIGdldFZhcmlhYmxlcyhBcmNoaXZlICpmb3V0KQogCWlfdmFybmFtZXNwYWNlID0gUFFmbnVt YmVyKHJlcywgInZhcm5hbWVzcGFjZSIpOwogCWlfdmFydHlwZSA9IFBRZm51bWJlcihyZXMsICJ2 YXJ0eXBlIik7CiAJaV92YXJ0eXBuYW1lID0gUFFmbnVtYmVyKHJlcywgInZhcnR5cG5hbWUiKTsK KwlpX3ZhcnhhY3RlbmRhY3Rpb24gPSBQUWZudW1iZXIocmVzLCAidmFyeGFjdGVuZGFjdGlvbiIp OwogCWlfdmFyY29sbGF0aW9uID0gUFFmbnVtYmVyKHJlcywgInZhcmNvbGxhdGlvbiIpOwogCiAJ aV92YXJvd25lciA9IFBRZm51bWJlcihyZXMsICJ2YXJvd25lciIpOwpAQCAtNTQ5OCw2ICs1NTAx LDkgQEAgZ2V0VmFyaWFibGVzKEFyY2hpdmUgKmZvdXQpCiAKIAkJdmFyaW5mb1tpXS52YXJ0eXBl ID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcnR5cGUpKTsKIAkJdmFyaW5mb1tpXS52 YXJ0eXBuYW1lID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX3ZhcnR5cG5hbWUpKTsK KwkJdmFyaW5mb1tpXS52YXJ4YWN0ZW5kYWN0aW9uID0KKwkJCXBnX3N0cmR1cChQUWdldHZhbHVl KHJlcywgaSwgaV92YXJ4YWN0ZW5kYWN0aW9uKSk7CisKIAkJdmFyaW5mb1tpXS52YXJjb2xsYXRp b24gPSBhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyY29sbGF0aW9uKSk7CiAKIAkJdmFy aW5mb1tpXS5kYWNsLmFjbCA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJhY2wp KTsKQEAgLTU1MzgsNiArNTU0NCw3IEBAIGR1bXBWYXJpYWJsZShBcmNoaXZlICpmb3V0LCBjb25z dCBWYXJpYWJsZUluZm8gKnZhcmluZm8pCiAJUFFFeHBCdWZmZXIgcXVlcnk7CiAJY2hhcgkgICAq cXVhbHZhcm5hbWU7CiAJY29uc3QgY2hhciAqdmFydHlwbmFtZTsKKwljb25zdCBjaGFyICp2YXJ4 YWN0ZW5kYWN0aW9uOwogCU9pZAkJCXZhcmNvbGxhdGlvbjsKIAogCS8qIHNraXAgaWYgbm90IHRv IGJlIGR1bXBlZCAqLwpAQCAtNTU0OSw2ICs1NTU2LDcgQEAgZHVtcFZhcmlhYmxlKEFyY2hpdmUg KmZvdXQsIGNvbnN0IFZhcmlhYmxlSW5mbyAqdmFyaW5mbykKIAogCXF1YWx2YXJuYW1lID0gcGdf c3RyZHVwKGZtdFF1YWxpZmllZER1bXBhYmxlKHZhcmluZm8pKTsKIAl2YXJ0eXBuYW1lID0gdmFy aW5mby0+dmFydHlwbmFtZTsKKwl2YXJ4YWN0ZW5kYWN0aW9uID0gdmFyaW5mby0+dmFyeGFjdGVu ZGFjdGlvbjsKIAl2YXJjb2xsYXRpb24gPSB2YXJpbmZvLT52YXJjb2xsYXRpb247CiAKIAlhcHBl bmRQUUV4cEJ1ZmZlcihkZWxxLCAiRFJPUCBWQVJJQUJMRSAlcztcbiIsCkBAIC01NTY3LDYgKzU1 NzUsOSBAQCBkdW1wVmFyaWFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2 YXJpbmZvKQogCQkJCQkJCSAgZm10UXVhbGlmaWVkRHVtcGFibGUoY29sbCkpOwogCX0KIAorCWlm IChzdHJjbXAodmFyeGFjdGVuZGFjdGlvbiwgInIiKSA9PSAwKQorCQlhcHBlbmRQUUV4cEJ1ZmZl cihxdWVyeSwgIiBPTiBUUkFOU0FDVElPTiBFTkQgUkVTRVQiKTsKKwogCWFwcGVuZFBRRXhwQnVm ZmVyKHF1ZXJ5LCAiO1xuIik7CiAKIAlpZiAodmFyaW5mby0+ZG9iai5kdW1wICYgRFVNUF9DT01Q T05FTlRfREVGSU5JVElPTikKZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgg Yi9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCmluZGV4IDhhNjJiNWI0MTIuLmE5YWM3MGQ3NjEg MTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmgKKysrIGIvc3JjL2Jpbi9wZ19k dW1wL3BnX2R1bXAuaApAQCAtNzE3LDYgKzcxNyw3IEBAIHR5cGVkZWYgc3RydWN0IF9WYXJpYWJs ZUluZm8KIAlEdW1wYWJsZUFjbCBkYWNsOwogCU9pZAkJCXZhcnR5cGU7CiAJY2hhcgkgICAqdmFy dHlwbmFtZTsKKwljaGFyCSAgICp2YXJ4YWN0ZW5kYWN0aW9uOwogCWNoYXIJICAgKnZhcmFjbDsK IAljaGFyCSAgICpydmFyYWNsOwogCWNoYXIJICAgKmluaXR2YXJhY2w7CmRpZmYgLS1naXQgYS9z cmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9w Z19kdW1wLnBsCmluZGV4IDY0MjNlN2I5ZDIuLjdiMGNjMmM1ZDkgMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAwMl9w Z19kdW1wLnBsCkBAIC0zOTg3LDYgKzM5ODcsMjQgQEAgbXkgJXRlc3RzID0gKAogCQl9LAogCX0s CiAKKwknQ1JFQVRFIFZBUklBQkxFIHRlc3RfdmFyaWFibGUgT04gVFJBTlNBQ1RJT04gRU5EIFJF U0VUJyA9PiB7CisJCWFsbF9ydW5zICAgICA9PiAxLAorCQljYXRjaF9hbGwgICAgPT4gJ0NSRUFU RSAuLi4gY29tbWFuZHMnLAorCQljcmVhdGVfb3JkZXIgPT4gNjEsCisJCWNyZWF0ZV9zcWwgICA9 PiAnQ1JFQVRFIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTIgQVMgaW50ZWdlciBPTiBUUkFO U0FDVElPTiBFTkQgUkVTRVQ7JywKKwkJcmVnZXhwID0+IHFyL14KKwkJCVxRQ1JFQVRFIFZBUklB QkxFIGR1bXBfdGVzdC52YXJpYWJsZTIgQVMgaW50ZWdlciBPTiBUUkFOU0FDVElPTiBFTkQgUkVT RVQ7XEUveG0sCisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rfc2No ZW1hX3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRhID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7 CisJCQlleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFzdXJl bWVudCAgICA9PiAxLAorCQl9LAorCX0sCisKIAknQ1JFQVRFIFZJRVcgdGVzdF92aWV3JyA9PiB7 CiAJCWNyZWF0ZV9vcmRlciA9PiA2MSwKIAkJY3JlYXRlX3NxbCA9PiAnQ1JFQVRFIFZJRVcgZHVt cF90ZXN0LnRlc3RfdmlldwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9z cmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRleCBkNmQzMGU3M2VlLi4zZjc0MzY3NmNhIDEwMDY0 NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVzY3Jp YmUuYwpAQCAtNTI3Myw2ICs1MjczLDcgQEAgbGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0 ZXJuLCBib29sIHZlcmJvc2UpCiAJCQkJCSAgIiAgcGdfY2F0YWxvZy5wZ19nZXRfdXNlcmJ5aWQo di52YXJvd25lcikgYXMgXCIlc1wiLFxuIgogCQkJCQkgICIgIENBU0Ugdi52YXJ4YWN0ZW5kYWN0 aW9uXG4iCiAJCQkJCSAgIiAgICBXSEVOICdkJyBUSEVOICdPTiBDT01NSVQgRFJPUCdcbiIKKwkJ CQkJICAiICAgIFdIRU4gJ3InIFRIRU4gJ09OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCdcbiIKIAkJ CQkJICAiICBFTkQgYXMgXCIlc1wiXG4iLAogCQkJCQkgIGdldHRleHRfbm9vcCgiU2NoZW1hIiks CiAJCQkJCSAgZ2V0dGV4dF9ub29wKCJOYW1lIiksCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgK aW5kZXggMGZjNjcyYmMyYi4uMDA4ZjJlZTdjMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ192YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUu aApAQCAtNzUsNiArNzUsNyBAQCB0eXBlZGVmIGVudW0gVmFyaWFibGVYYWN0RW5kQWN0aW9uCiB7 CiAJVkFSSUFCTEVfWEFDVEVORF9OT09QID0gJ24nLAkvKiBOT09QICovCiAJVkFSSUFCTEVfWEFD VEVORF9EUk9QID0gJ2QnLAkvKiBPTiBDT01NSVQgRFJPUCAqLworCVZBUklBQkxFX1hBQ1RFTkRf UkVTRVQgPSAncicsCS8qIE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVCAqLwogfQkJCVZhcmlhYmxl WGFjdEVuZEFjdGlvbjsKIAogLyogLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvaXNvbGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0IGIvc3JjL3Rlc3QvaXNv bGF0aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0CmluZGV4IGE2MDk3OTdkYzUuLmU5 YTI1NGJjZDEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9u LXZhcmlhYmxlLm91dAorKysgYi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0ZWQvc2Vzc2lvbi12 YXJpYWJsZS5vdXQKQEAgLTg2LDExICs4NiwxMiBAQCBteXZhcgogCiBzdGVwIHNyMTogUk9MTEJB Q0s7CiAKLXN0YXJ0aW5nIHBlcm11dGF0aW9uOiBjcmVhdGUzIGxldDMgczMgb19jX2QgY3JlYXRl NCBsZXQ0IGRyb3A0IGRyb3AzIGludmFsMyBkaXNjYXJkIHNjMyBzdGF0ZQorc3RhcnRpbmcgcGVy bXV0YXRpb246IGNyZWF0ZTMgbGV0MyBzMyBvX2NfZCBvX2VveF9yIGNyZWF0ZTQgbGV0NCBkcm9w NCBkcm9wMyBpbnZhbDMgZGlzY2FyZCBzYzMgY2xlYW4gc3RhdGUKIHN0ZXAgY3JlYXRlMzogQ1JF QVRFIFZBUklBQkxFIG15dmFyMyBBUyB0ZXh0Owogc3RlcCBsZXQzOiBMRVQgbXl2YXIzID0gJ3Rl c3QnOwogc3RlcCBzMzogQkVHSU47CiBzdGVwIG9fY19kOiBDUkVBVEUgVEVNUCBWQVJJQUJMRSBt eXZhcl9vX2NfZCBBUyB0ZXh0IE9OIENPTU1JVCBEUk9QOworc3RlcCBvX2VveF9yOiBDUkVBVEUg VkFSSUFCTEUgbXl2YXJfb19lb3hfciBBUyB0ZXh0IE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVDsg TEVUIG15dmFyX29fZW94X3IgPSAndGVzdCc7CiBzdGVwIGNyZWF0ZTQ6IENSRUFURSBWQVJJQUJM RSBteXZhcjQgQVMgdGV4dDsKIHN0ZXAgbGV0NDogTEVUIG15dmFyNCA9ICd0ZXN0JzsKIHN0ZXAg ZHJvcDQ6IERST1AgVkFSSUFCTEUgbXl2YXI0OwpAQCAtMTAzLDYgKzEwNCw3IEBAIHQKIAogc3Rl cCBkaXNjYXJkOiBESVNDQVJEIFZBUklBQkxFUzsKIHN0ZXAgc2MzOiBDT01NSVQ7CitzdGVwIGNs ZWFuOiBEUk9QIFZBUklBQkxFIG15dmFyX29fZW94X3I7CiBzdGVwIHN0YXRlOiBTRUxFQ1QgdmFy bmFtZSBGUk9NIHBnX3ZhcmlhYmxlOwogdmFybmFtZQogLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3Jj L3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3Nlc3Npb24tdmFyaWFibGUuc3BlYyBiL3NyYy90ZXN0L2lz b2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKaW5kZXggNDVlNjVkNDA4NS4uNWQw ODljOGE0ZSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3Nlc3Npb24tdmFy aWFibGUuc3BlYworKysgYi9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJs ZS5zcGVjCkBAIC0yNSwxMiArMjUsMTQgQEAgc2Vzc2lvbiBzMwogc3RlcCBzMwkJCXsgQkVHSU47 IH0KIHN0ZXAgbGV0MwkJeyBMRVQgbXl2YXIzID0gJ3Rlc3QnOyB9CiBzdGVwIG9fY19kCQl7IENS RUFURSBURU1QIFZBUklBQkxFIG15dmFyX29fY19kIEFTIHRleHQgT04gQ09NTUlUIERST1A7IH0K K3N0ZXAgb19lb3hfcgl7IENSRUFURSBWQVJJQUJMRSBteXZhcl9vX2VveF9yIEFTIHRleHQgT04g VFJBTlNBQ1RJT04gRU5EIFJFU0VUOyBMRVQgbXl2YXJfb19lb3hfciA9ICd0ZXN0JzsgfQogc3Rl cCBjcmVhdGU0CXsgQ1JFQVRFIFZBUklBQkxFIG15dmFyNCBBUyB0ZXh0OyB9CiBzdGVwIGxldDQJ CXsgTEVUIG15dmFyNCA9ICd0ZXN0JzsgfQogc3RlcCBkcm9wNAkJeyBEUk9QIFZBUklBQkxFIG15 dmFyNDsgfQogc3RlcCBpbnZhbDMJCXsgU0VMRUNUIENPVU5UKCopID49IDAgRlJPTSBwZ19mb3Jl aWduX3RhYmxlOyB9CiBzdGVwIGRpc2NhcmQJeyBESVNDQVJEIFZBUklBQkxFUzsgfQogc3RlcCBz YzMJCXsgQ09NTUlUOyB9CitzdGVwIGNsZWFuCQl7IERST1AgVkFSSUFCTEUgbXl2YXJfb19lb3hf cjsgfQogc3RlcCBzdGF0ZQkJeyBTRUxFQ1QgdmFybmFtZSBGUk9NIHBnX3ZhcmlhYmxlOyB9CiAK IHNlc3Npb24gczQKQEAgLTQ4LDQgKzUwLDQgQEAgcGVybXV0YXRpb24gbGV0IHZhbCBkYmcgZHJv cCBjcmVhdGUgZGJnIHZhbAogIyBjYWxsaW5nIHRoZSBkYmcgc3RlcCBhZnRlciB0aGUgY29uY3Vy cmVudCBkcm9wCiBwZXJtdXRhdGlvbiBsZXQgdmFsIHMxIGRiZyBkcm9wIGNyZWF0ZSBkYmcgdmFs IHNyMQogIyB0ZXN0IGZvciBESVNDQVJEIEFMTCB3aGVuIGFsbCBpbnRlcm5hbCBxdWV1ZXMgaGF2 ZSBhY3Rpb25zIHJlZ2lzdGVyZWQKLXBlcm11dGF0aW9uIGNyZWF0ZTMgbGV0MyBzMyBvX2NfZCBj cmVhdGU0IGxldDQgZHJvcDQgZHJvcDMgaW52YWwzIGRpc2NhcmQgc2MzIHN0YXRlCitwZXJtdXRh dGlvbiBjcmVhdGUzIGxldDMgczMgb19jX2Qgb19lb3hfciBjcmVhdGU0IGxldDQgZHJvcDQgZHJv cDMgaW52YWwzIGRpc2NhcmQgc2MzIGNsZWFuIHN0YXRlCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDE0ZGI5MWY5MGEuLjQ5NjdkZWM4 MWEgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJs ZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMu b3V0CkBAIC0yMzU1LDMgKzIzNTUsMzcgQEAgU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lv bl92YXJpYWJsZXMoKTsKICAgICAgMAogKDEgcm93KQogCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBB UyBpbnQgT04gVFJBTlNBQ1RJT04gRU5EIFJFU0VUOworQkVHSU47CisgIExFVCB2YXIxID0gMTAw OworICBTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEwMAorKDEgcm93KQorCitDT01N SVQ7CistLSBzaG91bGQgYmUgTlVMTDsKK1NFTEVDVCB2YXIxIElTIE5VTEw7CisgP2NvbHVtbj8g CistLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitCRUdJTjsKKyAgTEVUIHZhcjEgPSAxMDA7Cisg IFNFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cpCisKK1JPTExCQUNL OworLS0gc2hvdWxkIGJlIE5VTEwKK1NFTEVDVCB2YXIxIElTIE5VTEw7CisgP2NvbHVtbj8gCist LS0tLS0tLS0tCisgdAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CmRpZmYgLS1naXQg YS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9zcmMvdGVzdC9y ZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggNjhkY2I3MWYxNy4uMjQxNzUx YTI1YSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMu c3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApAQCAt MTYxOCwzICsxNjE4LDIzIEBAIENPTU1JVDsKIFNFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Zhcmlh YmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CiAtLSBzaG91bGQgYmUgemVybwogU0VMRUNUIGNv dW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKworQ1JFQVRFIFZBUklBQkxFIHZh cjEgQVMgaW50IE9OIFRSQU5TQUNUSU9OIEVORCBSRVNFVDsKKworQkVHSU47CisgIExFVCB2YXIx ID0gMTAwOworICBTRUxFQ1QgdmFyMTsKK0NPTU1JVDsKKworLS0gc2hvdWxkIGJlIE5VTEw7CitT RUxFQ1QgdmFyMSBJUyBOVUxMOworCitCRUdJTjsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIFNFTEVD VCB2YXIxOworUk9MTEJBQ0s7CisKKy0tIHNob3VsZCBiZSBOVUxMCitTRUxFQ1QgdmFyMSBJUyBO VUxMOworCitEUk9QIFZBUklBQkxFIHZhcjE7Ci0tIAoyLjQ3LjEKCg== --0000000000007bfa26062b3fa8d1 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250109-0012-implementation-of-temporary-session-variables.patch" Content-Disposition: attachment; filename="v20250109-0012-implementation-of-temporary-session-variables.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5ox16nz10 RnJvbSA3NzAzNDBhMGJiYjEyNTEyMTRmOTQ2Mjk0YTk3Mjg3M2U3ZTc3YzFhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNTowMDoyOCArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MTIvMjJdIGltcGxlbWVudGF0aW9uIG9mIHRlbXBvcmFyeSBzZXNzaW9uIHZhcmlhYmxlcwoKVGhl IHRlbXBvcmFyeSB2YXJpYWJsZXMgYXJlIGNyZWF0ZWQgaW5zaWRlIHRlbXAgc2NoZW1hIGFuZCB0 aGV5IGFyZSBkcm9wcGVkIGJ5IGRyb3BwaW5nCnRoaXMgc2NoZW1hLiBGb3IgY29uc2lzdGVuY3kg d2l0aCB0ZW1wIHRhYmxlcywgdGhlIENSRUFURSBURU1QIFZBUklBQkxFIGNvbW1hbmQgc3VwcG9y dHMKT04gQ09NTUlUIERST1AgY2xhdXNlLiBUaGUgdGVtcG9yYXJ5IHZhcmlhYmxlcyB3aXRoIHRo aXMgY2xhdXNlIGFyZSBjb2xsZWN0ZWQgaW4geGFjdF9kcm9wX2l0ZW1zCmxpc3QuIFRoaXMgbGlz dCBzaG91bGQgYmUgY2FyZWZ1bGx5IG1haW50YWluZWQgYW5kIGNhbiBjb250YWluIG9ubHkgdmFs aWQgZW50cmllcyAobm90CnlldCBkcm9wcGVkKS4gRnJvbSB0aGlzIHJlYXNvbnMgbm93IHRoZSBz dWJjb21taXQgYW5kIHN1YmFib3J0aW5nIGhhdmUgdG8gYmUgaGFuZGxlZC4KLS0tCiBkb2Mvc3Jj L3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgMTAgKwogZG9jL3NyYy9z Z21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA2ICstCiBkb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAgMTUgKy0KIHNyYy9iYWNrZW5k L2FjY2Vzcy90cmFuc2FtL3hhY3QuYyAgICAgICAgICAgICB8ICAgOSArCiBzcmMvYmFja2VuZC9j YXRhbG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgMjcgKystCiBzcmMvYmFja2VuZC9j b21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMgICAgICAgfCAyMTggKysrKysrKysrKysrKysrKyst CiBzcmMvYmFja2VuZC9jb21tYW5kcy92aWV3LmMgICAgICAgICAgICAgICAgICAgfCAgIDIgKy0K IHNyYy9iYWNrZW5kL3BhcnNlci9hbmFseXplLmMgICAgICAgICAgICAgICAgICB8ICAgNCArLQog c3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgIDMwICsrLQog c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMgICAgICAgICAgIHwgIDIyICstCiBz cmMvYmluL3BzcWwvZGVzY3JpYmUuYyAgICAgICAgICAgICAgICAgICAgICAgfCAgMTAgKy0KIHNy Yy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYyAgICAgICAgICAgICAgICB8ICAgNSArLQogc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oICAgICAgICAgICAgIHwgICA5ICsKIHNyYy9p bmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAgNiArLQogc3JjL2lu Y2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNs dWRlL25vZGVzL3ByaW1ub2Rlcy5oICAgICAgICAgICAgICAgICB8ICAgNCArLQogc3JjL2luY2x1 ZGUvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmggICAgICAgICAgIHwgICAyICstCiAuLi4vaXNvbGF0 aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0ICAgfCAgIDMgKy0KIC4uLi9pc29sYXRp b24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVjICAgICB8ICAgMyArLQogc3JjL3Rlc3QvcmVn cmVzcy9leHBlY3RlZC9wc3FsLm91dCAgICAgICAgICAgIHwgIDM2ICstLQogLi4uL3JlZ3Jlc3Mv ZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgMTIwICsrKysrKysrKysKIHNyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8ICA2NiArKysrKysKIHNy Yy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgICAgICAgICB8ICAgMSArCiAyMyBm aWxlcyBjaGFuZ2VkLCA1NDQgaW5zZXJ0aW9ucygrKSwgNjUgZGVsZXRpb25zKC0pCgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Mu c2dtbAppbmRleCA2N2U2NDU5MjUwLi5mNjUxYWQ5MGIxIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtOTgz OSw2ICs5ODM5LDE2IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRpb24g Y291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAgICA8L3BhcmE+PC9l bnRyeT4KICAgICAgPC9yb3c+CiAKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRh bG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAg PHN0cnVjdGZpZWxkPnZhcnhhY3RlbmRhY3Rpb248L3N0cnVjdGZpZWxkPiA8dHlwZT5jaGFyPC90 eXBlPgorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgQWN0aW9uIHBlcmZvcm1l ZCBhdCBlbmQgb2YgdHJhbnNhY3Rpb246CisgICAgICAgPGxpdGVyYWw+bjwvbGl0ZXJhbD4gPSBu byBhY3Rpb24sIDxsaXRlcmFsPmQ8L2xpdGVyYWw+ID0gZHJvcCB0aGUgdmFyaWFibGUuCisgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKICAgICAgPHJvdz4KICAgICAgIDxlbnRy eSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CiAgICAgICAgPHN0cnVjdGZpZWxkPnZhcmNvbGxhdGlvbjwvc3RydWN0ZmllbGQ+IDx0eXBl Pm9pZDwvdHlwZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9zcmMv c2dtbC9kZGwuc2dtbAppbmRleCA1YzU4MWVlMTQzLi4xNDMzZjAzM2Q3IDEwMDY0NAotLS0gYS9k b2Mvc3JjL3NnbWwvZGRsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBAIC01Mzg1 LDkgKzUzODUsOSBAQCBTRUxFQ1QgY3VycmVudF91c2VyX2lkOwogICAgIDxjb21tYW5kPkxFVDwv Y29tbWFuZD4gY29tbWFuZC4gIFNlc3Npb24gdmFyaWFibGVzIGFyZSBub3QgdHJhbnNhY3Rpb25h bDoKICAgICBhbnkgY2hhbmdlcyBtYWRlIHRvIHRoZSB2YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFi bGUgaW4gYSB0cmFuc2FjdGlvbiB3b24ndAogICAgIGJlIHVuZG9uZSBpZiB0aGUgdHJhbnNhY3Rp b24gaXMgcm9sbGVkIGJhY2sgKGp1c3QgbGlrZSB2YXJpYWJsZXMgaW4KLSAgICBwcm9jZWR1cmFs IGxhbmd1YWdlcykuICBTZXNzaW9uIHZhcmlhYmxlcyB0aGVtc2VsdmVzIGFyZSBwZXJzaXN0ZW50 LCBidXQKLSAgICB0aGVpciB2YWx1ZXMgYXJlIG5laXRoZXIgcGVyc2lzdGVudCBub3Igc2hhcmVk IChsaWtlIHRoZSBjb250ZW50IG9mCi0gICAgdGVtcG9yYXJ5IHRhYmxlcykuCisgICAgcHJvY2Vk dXJhbCBsYW5ndWFnZXMpLiAgU2Vzc2lvbiB2YXJpYWJsZXMgdGhlbXNlbHZlcyBjYW4gYmUgcGVy c2lzdGVudAorICAgIG9yIHRlbXBvcmFyeSwgYnV0IHRoZWlyIHZhbHVlcyBhcmUgbmVpdGhlciBw ZXJzaXN0ZW50IG5vciBzaGFyZWQgKGxpa2UgdGhlCisgICAgY29udGVudCBvZiB0ZW1wb3Jhcnkg dGFibGVzKS4KICAgIDwvcGFyYT4KIAogICAgPHBhcmE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFy aWFibGUuc2dtbAppbmRleCBjZDlmZjYzOTc1Li5hODhlMDE3NWJlIDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYv Y3JlYXRlX3ZhcmlhYmxlLnNnbWwKQEAgLTI2LDcgKzI2LDggQEAgUG9zdGdyZVNRTCBkb2N1bWVu dGF0aW9uCiAKICA8cmVmc3lub3BzaXNkaXY+CiA8c3lub3BzaXM+Ci1DUkVBVEUgVkFSSUFCTEUg WyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3Jl cGxhY2VhYmxlPiBbIEFTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPmRhdGFfdHlw ZTwvcmVwbGFjZWFibGU+IFsgQ09MTEFURSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ Y29sbGF0aW9uPC9yZXBsYWNlYWJsZT4gXQorQ1JFQVRFIFsgeyBURU1QT1JBUlkgfCBURU1QIH0g XSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gWyBDT0xMQVRFIDxyZXBsYWNlYWJsZSBjbGFzcz0i cGFyYW1ldGVyIj5jb2xsYXRpb248L3JlcGxhY2VhYmxlPiBdCisgICAgWyBPTiBDT01NSVQgRFJP UCBdCiA8L3N5bm9wc2lzPgogIDwvcmVmc3lub3BzaXNkaXY+CiAgPHJlZnNlY3QxPgpAQCAtMTA0 LDYgKzEwNSwxOCBAQCBDUkVBVEUgVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RTIF0gPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYgogICAgIDwvbGlzdGl0ZW0+CiAg ICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXZhcmlh YmxlLW9uLWNvbW1pdC1kcm9wIj4KKyAgICA8dGVybT48bGl0ZXJhbD5PTiBDT01NSVQgRFJPUDwv bGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSA8 bGl0ZXJhbD5PTiBDT01NSVQgRFJPUDwvbGl0ZXJhbD4gY2xhdXNlIHNwZWNpZmllcyB0aGUgYmVo YXZpb3VyIG9mIGEKKyAgICAgIHRlbXBvcmFyeSBzZXNzaW9uIHZhcmlhYmxlIGF0IHRyYW5zYWN0 aW9uIGNvbW1pdC4gV2l0aCB0aGlzIGNsYXVzZSwgdGhlCisgICAgICBzZXNzaW9uIHZhcmlhYmxl IGlzIGRyb3BwZWQgYXQgY29tbWl0IHRpbWUuIFRoZSBjbGF1c2UgaXMgb25seSBhbGxvd2VkCisg ICAgICBmb3IgdGVtcG9yYXJ5IHZhcmlhYmxlcy4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0 ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwogICA8L3ZhcmlhYmxlbGlzdD4KICA8L3JlZnNlY3Qx PgogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94YWN0LmMgYi9zcmMv YmFja2VuZC9hY2Nlc3MvdHJhbnNhbS94YWN0LmMKaW5kZXggZDMzMWFiOTBkNy4uNjE2ODQxNWY4 YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvYWNjZXNzL3RyYW5zYW0veGFjdC5jCisrKyBiL3Ny Yy9iYWNrZW5kL2FjY2Vzcy90cmFuc2FtL3hhY3QuYwpAQCAtMzYsNiArMzYsNyBAQAogI2luY2x1 ZGUgImNhdGFsb2cvcGdfZW51bS5oIgogI2luY2x1ZGUgImNhdGFsb2cvc3RvcmFnZS5oIgogI2lu Y2x1ZGUgImNvbW1hbmRzL2FzeW5jLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RhYmxlY21kcy5oIgogI2luY2x1ZGUgImNvbW1h bmRzL3RyaWdnZXIuaCIKICNpbmNsdWRlICJjb21tb24vcGdfcHJuZy5oIgpAQCAtMjMxNiw2ICsy MzE3LDkgQEAgQ29tbWl0VHJhbnNhY3Rpb24odm9pZCkKIAkgKi8KIAlzbWdyRG9QZW5kaW5nU3lu Y3ModHJ1ZSwgaXNfcGFyYWxsZWxfd29ya2VyKTsKIAorCS8qIHJlbW92ZSB2YWx1ZXMgb2YgZHJv cHBlZCBzZXNzaW9uIHZhcmlhYmxlcyBmcm9tIG1lbW9yeSAqLworCUF0UHJlRU9YYWN0X1Nlc3Np b25WYXJpYWJsZXModHJ1ZSk7CisKIAkvKiBjbG9zZSBsYXJnZSBvYmplY3RzIGJlZm9yZSBsb3dl ci1sZXZlbCBjbGVhbnVwICovCiAJQXRFT1hhY3RfTGFyZ2VPYmplY3QodHJ1ZSk7CiAKQEAgLTI5 MTIsNiArMjkxNiw3IEBAIEFib3J0VHJhbnNhY3Rpb24odm9pZCkKIAlBdEFib3J0X1BvcnRhbHMo KTsKIAlzbWdyRG9QZW5kaW5nU3luY3MoZmFsc2UsIGlzX3BhcmFsbGVsX3dvcmtlcik7CiAJQXRF T1hhY3RfTGFyZ2VPYmplY3QoZmFsc2UpOworCUF0UHJlRU9YYWN0X1Nlc3Npb25WYXJpYWJsZXMo ZmFsc2UpOwogCUF0QWJvcnRfTm90aWZ5KCk7CiAJQXRFT1hhY3RfUmVsYXRpb25NYXAoZmFsc2Us IGlzX3BhcmFsbGVsX3dvcmtlcik7CiAJQXRBYm9ydF9Ud29waGFzZSgpOwpAQCAtNTE3Nyw2ICs1 MTgyLDggQEAgQ29tbWl0U3ViVHJhbnNhY3Rpb24odm9pZCkKIAlBdEVPU3ViWGFjdF9TUEkodHJ1 ZSwgcy0+c3ViVHJhbnNhY3Rpb25JZCk7CiAJQXRFT1N1YlhhY3Rfb25fY29tbWl0X2FjdGlvbnMo dHJ1ZSwgcy0+c3ViVHJhbnNhY3Rpb25JZCwKIAkJCQkJCQkJICBzLT5wYXJlbnQtPnN1YlRyYW5z YWN0aW9uSWQpOworCUF0RU9TdWJYYWN0X1Nlc3Npb25WYXJpYWJsZXModHJ1ZSwgcy0+c3ViVHJh bnNhY3Rpb25JZCwKKwkJCQkJCQkJIHMtPnBhcmVudC0+c3ViVHJhbnNhY3Rpb25JZCk7CiAJQXRF T1N1YlhhY3RfTmFtZXNwYWNlKHRydWUsIHMtPnN1YlRyYW5zYWN0aW9uSWQsCiAJCQkJCQkgIHMt PnBhcmVudC0+c3ViVHJhbnNhY3Rpb25JZCk7CiAJQXRFT1N1YlhhY3RfRmlsZXModHJ1ZSwgcy0+ c3ViVHJhbnNhY3Rpb25JZCwKQEAgLTUzNDIsNiArNTM0OSw4IEBAIEFib3J0U3ViVHJhbnNhY3Rp b24odm9pZCkKIAkJQXRFT1N1YlhhY3RfU1BJKGZhbHNlLCBzLT5zdWJUcmFuc2FjdGlvbklkKTsK IAkJQXRFT1N1YlhhY3Rfb25fY29tbWl0X2FjdGlvbnMoZmFsc2UsIHMtPnN1YlRyYW5zYWN0aW9u SWQsCiAJCQkJCQkJCQkgIHMtPnBhcmVudC0+c3ViVHJhbnNhY3Rpb25JZCk7CisJCUF0RU9TdWJY YWN0X1Nlc3Npb25WYXJpYWJsZXMoZmFsc2UsIHMtPnN1YlRyYW5zYWN0aW9uSWQsCisJCQkJCQkJ CQkgcy0+cGFyZW50LT5zdWJUcmFuc2FjdGlvbklkKTsKIAkJQXRFT1N1YlhhY3RfTmFtZXNwYWNl KGZhbHNlLCBzLT5zdWJUcmFuc2FjdGlvbklkLAogCQkJCQkJCSAgcy0+cGFyZW50LT5zdWJUcmFu c2FjdGlvbklkKTsKIAkJQXRFT1N1YlhhY3RfRmlsZXMoZmFsc2UsIHMtPnN1YlRyYW5zYWN0aW9u SWQsCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMv YmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKaW5kZXggZDY3MmQyYTljYi4uMDBjOTBlYTZm ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCisrKyBiL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwpAQCAtMzYsNyArMzYsOCBAQCBzdGF0aWMg T2JqZWN0QWRkcmVzcyBjcmVhdGVfdmFyaWFibGUoY29uc3QgY2hhciAqdmFyTmFtZSwKIAkJCQkJ CQkJCSBpbnQzMiB2YXJUeXBtb2QsCiAJCQkJCQkJCQkgT2lkIHZhck93bmVyLAogCQkJCQkJCQkJ IE9pZCB2YXJDb2xsYXRpb24sCi0JCQkJCQkJCQkgYm9vbCBpZl9ub3RfZXhpc3RzKTsKKwkJCQkJ CQkJCSBib29sIGlmX25vdF9leGlzdHMsCisJCQkJCQkJCQkgVmFyaWFibGVYYWN0RW5kQWN0aW9u IHZhclhhY3RFbmRBY3Rpb24pOwogCiAKIC8qCkBAIC00OSw3ICs1MCw4IEBAIGNyZWF0ZV92YXJp YWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAogCQkJCWludDMyIHZhclR5cG1vZCwKIAkJCQlPaWQg dmFyT3duZXIsCiAJCQkJT2lkIHZhckNvbGxhdGlvbiwKLQkJCQlib29sIGlmX25vdF9leGlzdHMp CisJCQkJYm9vbCBpZl9ub3RfZXhpc3RzLAorCQkJCVZhcmlhYmxlWGFjdEVuZEFjdGlvbiB2YXJY YWN0RW5kQWN0aW9uKQogewogCUFjbAkJICAgKnZhcmFjbDsKIAlOYW1lRGF0YQl2YXJuYW1lOwpA QCAtMTEwLDYgKzExMiw3IEBAIGNyZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAog CXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcnR5cG1vZCAtIDFdID0gSW50MzJHZXREYXR1bSh2 YXJUeXBtb2QpOwogCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3Zhcm93bmVyIC0gMV0gPSBPYmpl Y3RJZEdldERhdHVtKHZhck93bmVyKTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJjb2xs YXRpb24gLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyQ29sbGF0aW9uKTsKKwl2YWx1ZXNbQW51 bV9wZ192YXJpYWJsZV92YXJ4YWN0ZW5kYWN0aW9uIC0gMV0gPSBDaGFyR2V0RGF0dW0odmFyWGFj dEVuZEFjdGlvbik7CiAKIAl2YXJhY2wgPSBnZXRfdXNlcl9kZWZhdWx0X2FjbChPQkpFQ1RfVkFS SUFCTEUsIHZhck93bmVyLAogCQkJCQkJCQkgIHZhck5hbWVzcGFjZSk7CkBAIC0xODMsNiArMTg2 LDEzIEBAIENyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZh clN0bXQgKnN0bXQpCiAJT2lkCQkJdHlwY29sbGF0aW9uOwogCU9iamVjdEFkZHJlc3MgdmFyaWFi bGU7CiAKKwkvKiBjaGVjayBjb25zaXN0ZW5jeSBvZiBhcmd1bWVudHMgKi8KKwlpZiAoc3RtdC0+ WGFjdEVuZEFjdGlvbiA9PSBWQVJJQUJMRV9YQUNURU5EX0RST1AKKwkJJiYgc3RtdC0+dmFyaWFi bGUtPnJlbHBlcnNpc3RlbmNlICE9IFJFTFBFUlNJU1RFTkNFX1RFTVApCisJCWVyZXBvcnQoRVJS T1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9JTlZBTElEX09CSkVDVF9ERUZJTklUSU9OKSwKKwkJ CQkgZXJybXNnKCJPTiBDT01NSVQgRFJPUCBjYW4gb25seSBiZSB1c2VkIG9uIHRlbXBvcmFyeSB2 YXJpYWJsZXMiKSkpOworCiAJbmFtZXNwYWNlaWQgPQogCQlSYW5nZVZhckdldEFuZENoZWNrQ3Jl YXRpb25OYW1lc3BhY2Uoc3RtdC0+dmFyaWFibGUsIE5vTG9jaywgTlVMTCk7CiAKQEAgLTIyMiwx MSArMjMyLDE3IEBAIENyZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vz c2lvblZhclN0bXQgKnN0bXQpCiAJCQkJCQkJICAgdHlwbW9kLAogCQkJCQkJCSAgIHZhcm93bmVy LAogCQkJCQkJCSAgIGNvbGxhdGlvbiwKLQkJCQkJCQkgICBzdG10LT5pZl9ub3RfZXhpc3RzKTsK KwkJCQkJCQkgICBzdG10LT5pZl9ub3RfZXhpc3RzLAorCQkJCQkJCSAgIHN0bXQtPlhhY3RFbmRB Y3Rpb24pOwogCiAJZWxvZyhERUJVRzEsICJyZWNvcmQgZm9yIHNlc3Npb24gdmFyaWFibGUgXCIl c1wiIChvaWQ6JWQpIHdhcyBjcmVhdGVkIGluIHBnX3ZhcmlhYmxlIiwKIAkJIHN0bXQtPnZhcmlh YmxlLT5yZWxuYW1lLCB2YXJpYWJsZS5vYmplY3RJZCk7CiAKKwkvKiB3ZSB3YW50IFNlc3Npb25W YXJpYWJsZUNyZWF0ZVBvc3Rwcm9jZXNzIHRvIHNlZSB0aGUgY2F0YWxvZyBjaGFuZ2VzLiAqLwor CUNvbW1hbmRDb3VudGVySW5jcmVtZW50KCk7CisKKwlTZXNzaW9uVmFyaWFibGVDcmVhdGVQb3N0 cHJvY2Vzcyh2YXJpYWJsZS5vYmplY3RJZCwgc3RtdC0+WGFjdEVuZEFjdGlvbik7CisKIAlyZXR1 cm4gdmFyaWFibGU7CiB9CiAKQEAgLTIzOSw2ICsyNTUsNyBAQCBEcm9wVmFyaWFibGVCeUlkKE9p ZCB2YXJpZCkKIHsKIAlSZWxhdGlvbglyZWw7CiAJSGVhcFR1cGxlCXR1cDsKKwljaGFyCQlYYWN0 RW5kQWN0aW9uOwogCiAJcmVsID0gdGFibGVfb3BlbihWYXJpYWJsZVJlbGF0aW9uSWQsIFJvd0V4 Y2x1c2l2ZUxvY2spOwogCkBAIC0yNDcsNiArMjY0LDggQEAgRHJvcFZhcmlhYmxlQnlJZChPaWQg dmFyaWQpCiAJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCiAJCWVsb2coRVJST1IsICJjYWNo ZSBsb29rdXAgZmFpbGVkIGZvciB2YXJpYWJsZSAldSIsIHZhcmlkKTsKIAorCVhhY3RFbmRBY3Rp b24gPSAoKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApKS0+dmFyeGFjdGVuZGFjdGlv bjsKKwogCUNhdGFsb2dUdXBsZURlbGV0ZShyZWwsICZ0dXAtPnRfc2VsZik7CiAKIAlSZWxlYXNl U3lzQ2FjaGUodHVwKTsKQEAgLTI1NCw1ICsyNzMsNSBAQCBEcm9wVmFyaWFibGVCeUlkKE9pZCB2 YXJpZCkKIAl0YWJsZV9jbG9zZShyZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOwogCiAJLyogZG8gdGhl IG5lY2Vzc2FyeSBjbGVhbnVwIGluIGxvY2FsIG1lbW9yeSwgaWYgbmVlZGVkICovCi0JU2Vzc2lv blZhcmlhYmxlRHJvcFBvc3Rwcm9jZXNzKHZhcmlkKTsKKwlTZXNzaW9uVmFyaWFibGVEcm9wUG9z dHByb2Nlc3ModmFyaWQsIFhhY3RFbmRBY3Rpb24pOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vz c2lvbl92YXJpYWJsZS5jCmluZGV4IDdjMTU5ODYwYjQuLmE2YmJlY2Y0ZTIgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2Vu ZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTE2LDYgKzE2LDggQEAKIAogI2luY2x1 ZGUgImFjY2Vzcy94YWN0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgorI2lu Y2x1ZGUgImNhdGFsb2cvZGVwZW5kZW5jeS5oIgorI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNl LmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgImV4 ZWN1dG9yL3NwaS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgiCkBA IC0zMiw2ICszNCwxOSBAQAogI2luY2x1ZGUgInV0aWxzL3NuYXBtZ3IuaCIKICNpbmNsdWRlICJ1 dGlscy9zeXNjYWNoZS5oIgogCit0eXBlZGVmIHN0cnVjdCBTVmFyaWFibGVYQWN0RHJvcEl0ZW0K K3sKKwlPaWQJCQl2YXJpZDsJCQkvKiB2YXJpZCBvZiBzZXNzaW9uIHZhcmlhYmxlICovCisKKwkv KgorCSAqIGNyZWF0aW5nX3N1YmlkIGlzIHRoZSBJRCBvZiB0aGUgY3JlYXRpbmcgc3VieGFjdC4g SWYgdGhlIGFjdGlvbiB3YXMKKwkgKiB1bnJlZ2lzdGVyZWQgZHVyaW5nIHRoZSBjdXJyZW50IHRy YW5zYWN0aW9uLCBkZWxldGluZ19zdWJpZCBpcyB0aGUgSUQKKwkgKiBvZiB0aGUgZGVsZXRpbmcg c3VieGFjdCwgb3RoZXJ3aXNlIEludmFsaWRTdWJUcmFuc2FjdGlvbklkLgorCSAqLworCVN1YlRy YW5zYWN0aW9uSWQgY3JlYXRpbmdfc3ViaWQ7CisJU3ViVHJhbnNhY3Rpb25JZCBkZWxldGluZ19z dWJpZDsKK30gU1ZhcmlhYmxlWEFjdERyb3BJdGVtOworCiAvKgogICogVGhlIHNlc3Npb24gdmFy aWFibGVzIHVzZSBmZW5jZSBjb250ZXh0IGFsbG93IHRvIHNwZWNpZnkKICAqIHRoZSBjb250ZXh0 cyB3aGVyZSB1c2luZyBzZXNzaW9uIHZhcmlhYmxlIGZlbmNlcyBhcmUgcmVxdWlyZWQuCkBAIC0x MDQsMTMgKzExOSwyMSBAQCBzdGF0aWMgTWVtb3J5Q29udGV4dCBTVmFyaWFibGVNZW1vcnlDb250 ZXh0ID0gTlVMTDsKIHN0YXRpYyBib29sIG5lZWRzX3ZhbGlkYXRpb24gPSBmYWxzZTsKIAogLyoK LSAqIFRoZSBjb250ZW50IG9mIGRyb3BwZWQgc2Vzc2lvbiB2YXJpYWJsZXMgaXMgbm90IHJlbW92 ZWQgaW1tZWRpYXRlbHkuICBXZSBkbwotICogdGhhdCBpbiB0aGUgbmV4dCB0cmFuc2FjdGlvbiB0 aGF0IHJlYWRzIG9yIHdyaXRlcyBhIHNlc3Npb24gdmFyaWFibGUuCi0gKiAidmFsaWRhdGVkX2x4 aWQiIHN0b3JlcyB0aGUgdHJhbnNhY3Rpb24gdGhhdCBwZXJmb3JtZWQgc2FpZCB2YWxpZGF0aW9u LCBzbwotICogdGhhdCB3ZSBjYW4gYXZvaWQgcmVwZWF0aW5nIHRoZSBlZmZvcnQuCisgKiBUaGUg Y29udGVudCBvZiBkcm9wcGVkIHNlc3Npb24gdmFyaWFibGVzIGlzIG5vdCByZW1vdmVkIGltbWVk aWF0ZWx5LiAgSWYKKyAqIHBvc3NpYmxlLCB3ZSBkbyB0aGF0IGF0IHRoZSBlbmQgb2YgdGhlIHRy YW5zYWN0aW9uLiAgQnV0IHdlIGNhbm5vdCBkbyB0aGF0CisgKiBpZiB0aGUgdHJhbnNhY3Rpb24g YWJvcnRlZCwgYmVjYXVzZSB3ZSBsb3N0IGFjY2VzcyB0byB0aGUgc3lzdGVtIGNhdGFsb2cuCisg KiBJbiB0aGF0IGNhc2UsIHdlIGNsZWFuIHVwIGluIHRoZSBuZXh0IHRyYW5zYWN0aW9uIHRoYXQg cmVhZHMgb3Igd3JpdGVzIGEKKyAqIHNlc3Npb24gdmFyaWFibGUuICAidmFsaWRhdGVkX2x4aWQi IHN0b3JlcyB0aGUgdHJhbnNhY3Rpb24gdGhhdCBwZXJmb3JtZWQKKyAqIHNhaWQgdmFsaWRhdGlv biwgc28gdGhhdCB3ZSBjYW4gYXZvaWQgcmVwZWF0aW5nIHRoZSBlZmZvcnQuCiAgKi8KIHN0YXRp YyBMb2NhbFRyYW5zYWN0aW9uSWQgdmFsaWRhdGVkX2x4aWQgPSBJbnZhbGlkTG9jYWxUcmFuc2Fj dGlvbklkOwogCisvKiBsaXN0IGhvbGRzIGZpZWxkcyBvZiBTVmFyaWFibGVYQWN0RHJvcEl0ZW0g dHlwZSAqLworc3RhdGljIExpc3QgKnhhY3RfZHJvcF9pdGVtcyA9IE5JTDsKKworc3RhdGljIHZv aWQgcmVnaXN0ZXJfc2Vzc2lvbl92YXJpYWJsZV94YWN0X2Ryb3AoT2lkIHZhcmlkKTsKK3N0YXRp YyB2b2lkIHVucmVnaXN0ZXJfc2Vzc2lvbl92YXJpYWJsZV94YWN0X2Ryb3AoT2lkIHZhcmlkKTsK KwogLyoKICAqIENhbGxiYWNrIGZ1bmN0aW9uIGZvciBzZXNzaW9uIHZhcmlhYmxlIGludmFsaWRh dGlvbi4KICAqLwpAQCAtMTQ3LDE2ICsxNzAsNDUgQEAgcGdfdmFyaWFibGVfY2FjaGVfY2FsbGJh Y2soRGF0dW0gYXJnLCBpbnQgY2FjaGVpZCwgdWludDMyIGhhc2h2YWx1ZSkKIAl9CiB9CiAKKy8q CisgKiBEbyB0aGUgbmVjZXNzYXJ5IHdvcmsgdG8gc2V0dXAgbG9jYWwgbWVtb3J5IG1hbmFnZW1l bnQgb2YgYSBuZXcKKyAqIHZhcmlhYmxlLgorICoKKyAqIENhbGxlciBzaG91bGQgYWxyZWFkeSBo YXZlIGNyZWF0ZWQgdGhlIG5lY2Vzc2FyeSBlbnRyeSBpbiBjYXRhbG9nCisgKiBhbmQgbWFkZSB0 aGVtIHZpc2libGUuCisgKi8KK3ZvaWQKK1Nlc3Npb25WYXJpYWJsZUNyZWF0ZVBvc3Rwcm9jZXNz KE9pZCB2YXJpZCwgY2hhciBYYWN0RW5kQWN0aW9uKQoreworCS8qCisJICogRm9yIHRlbXBvcmFy eSB2YXJpYWJsZXMsIHdlIG5lZWQgdG8gY3JlYXRlIGEgbmV3IGVuZCBvZiB4YWN0IGFjdGlvbiB0 bworCSAqIGVuc3VyZSBkZWxldGlvbiBmcm9tIGNhdGFsb2cuCisJICovCisJaWYgKFhhY3RFbmRB Y3Rpb24gPT0gVkFSSUFCTEVfWEFDVEVORF9EUk9QKQorCXsKKwkJQXNzZXJ0KGlzVGVtcE5hbWVz cGFjZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSk7CisKKwkJcmVnaXN0 ZXJfc2Vzc2lvbl92YXJpYWJsZV94YWN0X2Ryb3AodmFyaWQpOworCX0KK30KKwogLyoKICAqIEhh bmRsZSB0aGUgbG9jYWwgbWVtb3J5IGNsZWFudXAgZm9yIGEgRFJPUCBWQVJJQUJMRSBjb21tYW5k LgogICoKICAqIENhbGxlciBzaG91bGQgdGFrZSBjYXJlIG9mIHJlbW92aW5nIHRoZSBwZ192YXJp YWJsZSBlbnRyeSBmaXJzdC4KICAqLwogdm9pZAotU2Vzc2lvblZhcmlhYmxlRHJvcFBvc3Rwcm9j ZXNzKE9pZCB2YXJpZCkKK1Nlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJvY2VzcyhPaWQgdmFyaWQs IGNoYXIgWGFjdEVuZEFjdGlvbikKIHsKIAlBc3NlcnQoTG9jYWxUcmFuc2FjdGlvbklkSXNWYWxp ZChNeVByb2MtPnZ4aWQubHhpZCkpOwogCisJaWYgKFhhY3RFbmRBY3Rpb24gPT0gVkFSSUFCTEVf WEFDVEVORF9EUk9QKQorCXsKKwkJQXNzZXJ0KGlzVGVtcE5hbWVzcGFjZShnZXRfc2Vzc2lvbl92 YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSk7CisKKwkJdW5yZWdpc3Rlcl9zZXNzaW9uX3Zhcmlh YmxlX3hhY3RfZHJvcCh2YXJpZCk7CisJfQorCiAJaWYgKHNlc3Npb252YXJzKQogCXsKIAkJYm9v bAkJZm91bmQ7CkBAIC0xNzgsNiArMjMwLDU3IEBAIFNlc3Npb25WYXJpYWJsZURyb3BQb3N0cHJv Y2VzcyhPaWQgdmFyaWQpCiAJfQogfQogCisvKgorICogUmVnaXN0cmF0aW9uIG9mIGFjdGlvbnMg dG8gYmUgZXhlY3V0ZWQgb24gc2Vzc2lvbiB2YXJpYWJsZXMgYXQgdHJhbnNhY3Rpb24KKyAqIGVu ZCB0aW1lLiBXZSB3YW50IHRvIGRyb3AgdGVtcG9yYXJ5IHNlc3Npb24gdmFyaWFibGVzIHdpdGgg Y2xhdXNlIE9OIENPTU1JVAorICogRFJPUC4KKyAqLworCisvKgorICogUmVnaXN0ZXIgYSBzZXNz aW9uIHZhcmlhYmxlIHhhY3QgYWN0aW9uLgorICovCitzdGF0aWMgdm9pZAorcmVnaXN0ZXJfc2Vz c2lvbl92YXJpYWJsZV94YWN0X2Ryb3AoT2lkIHZhcmlkKQoreworCVNWYXJpYWJsZVhBY3REcm9w SXRlbSAqeGFjdF9haTsKKwlNZW1vcnlDb250ZXh0IG9sZGN4dDsKKworCW9sZGN4dCA9IE1lbW9y eUNvbnRleHRTd2l0Y2hUbyhDYWNoZU1lbW9yeUNvbnRleHQpOworCisJeGFjdF9haSA9IChTVmFy aWFibGVYQWN0RHJvcEl0ZW0gKikKKwkJcGFsbG9jKHNpemVvZihTVmFyaWFibGVYQWN0RHJvcEl0 ZW0pKTsKKworCXhhY3RfYWktPnZhcmlkID0gdmFyaWQ7CisKKwl4YWN0X2FpLT5jcmVhdGluZ19z dWJpZCA9IEdldEN1cnJlbnRTdWJUcmFuc2FjdGlvbklkKCk7CisJeGFjdF9haS0+ZGVsZXRpbmdf c3ViaWQgPSBJbnZhbGlkU3ViVHJhbnNhY3Rpb25JZDsKKworCXhhY3RfZHJvcF9pdGVtcyA9IGxj b25zKHhhY3RfYWksIHhhY3RfZHJvcF9pdGVtcyk7CisKKwlNZW1vcnlDb250ZXh0U3dpdGNoVG8o b2xkY3h0KTsKK30KKworLyoKKyAqIFVucmVnaXN0ZXIgYW4gaWQgb2YgYSBnaXZlbiBzZXNzaW9u IHZhcmlhYmxlIGZyb20gZHJvcCBsaXN0LiBJbiB0aGlzCisgKiBtb21lbnQsIHRoZSBhY3Rpb24g aXMganVzdCBtYXJrZWQgYXMgZGVsZXRlZCBieSBzZXR0aW5nIGRlbGV0aW5nX3N1YmlkLiBUaGUK KyAqIGNhbGxpbmcgZXZlbiBtaWdodCBiZSByb2xsYmFja2VkLCBpbiB3aGljaCBjYXNlIHdlIHNo b3VsZCBub3QgbG9zZSB0aGlzCisgKiBhY3Rpb24uCisgKi8KK3N0YXRpYyB2b2lkCit1bnJlZ2lz dGVyX3Nlc3Npb25fdmFyaWFibGVfeGFjdF9kcm9wKE9pZCB2YXJpZCkKK3sKKwlMaXN0Q2VsbCAg ICpsOworCisJZm9yZWFjaChsLCB4YWN0X2Ryb3BfaXRlbXMpCisJeworCQlTVmFyaWFibGVYQWN0 RHJvcEl0ZW0gKnhhY3RfYWkgPQorCQkJKFNWYXJpYWJsZVhBY3REcm9wSXRlbSAqKSBsZmlyc3Qo bCk7CisKKwkJaWYgKHhhY3RfYWktPnZhcmlkID09IHZhcmlkKQorCQkJeGFjdF9haS0+ZGVsZXRp bmdfc3ViaWQgPSBHZXRDdXJyZW50U3ViVHJhbnNhY3Rpb25JZCgpOworCX0KK30KKwogLyoKICAq IFJlbGVhc2Ugc3RvcmVkIHZhbHVlLCBmcmVlIG1lbW9yeQogICovCkBAIC0yMzAsOSArMzMzLDEx IEBAIGlzX3Nlc3Npb25fdmFyaWFibGVfdmFsaWQoU1ZhcmlhYmxlIHN2YXIpCiAvKgogICogQ2hl Y2sgYWxsIHBvdGVudGlhbGx5IGludmFsaWQgc2Vzc2lvbiB2YXJpYWJsZSBkYXRhIGluIGxvY2Fs IG1lbW9yeSBhbmQgZnJlZQogICogdGhlIG1lbW9yeSBmb3IgYWxsIGludmFsaWQgb25lcy4gIFRo aXMgZnVuY3Rpb24gaXMgY2FsbGVkIGJlZm9yZSBhbnkgcmVhZCBvcgotICogd3JpdGUgb2YgYSBz ZXNzaW9uIHZhcmlhYmxlLiAgRnJlZWluZyBvZiBhIHZhcmlhYmxlJ3MgbWVtb3J5IGlzIHBvc3Rw b25lZCBpZgotICogdGhlIHZhcmlhYmxlIGhhcyBiZWVuIGRyb3BwZWQgYnkgdGhlIGN1cnJlbnQg dHJhbnNhY3Rpb24sIHNpbmNlIHRoYXQKLSAqIG9wZXJhdGlvbiBjb3VsZCBzdGlsbCBiZSByb2xs ZWQgYmFjay4KKyAqIHdyaXRlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBvciB3aGVuIHRoZSB0cmFu c2FjdGlvbiBlbmRzLiAgQXQgdGhlIGVuZCBvZiBhCisgKiB0cmFuc2FjdGlvbiAoYXRFT1ggaXMg dHJ1ZSkgd2UgY2FuIGRpc2NhcmQgYWxsIGludmFsaWQgdmFyaWFibGVzLiAgSW5zaWRlIGEKKyAq IHRyYW5zYWN0aW9uIChhdEVPWCBpcyBmYWxzZSkgd2UgcG9zdHBvbmUgZnJlZWluZyBhIHZhcmlh YmxlJ3MgbWVtb3J5IGlmIHRoZQorICogdmFyaWFibGUgaGFzIGJlZW4gZHJvcHBlZCBieSB0aGUg Y3VycmVudCB0cmFuc2FjdGlvbiwgc2luY2UgdGhhdCBvcGVyYXRpb24KKyAqIGNvdWxkIHN0aWxs IGJlIHJvbGxlZCBiYWNrLgogICoKICAqIEl0IGlzIHBvc3NpYmxlIHRoYXQgd2UgcmVjZWl2ZSBh IGNhY2hlIGludmFsaWRhdGlvbiBtZXNzYWdlIHdoaWxlCiAgKiByZW1vdmVfaW52YWxpZF9zZXNz aW9uX3ZhcmlhYmxlcygpIGlzIGV4ZWN1dGluZywgc28gd2UgY2Fubm90IGd1YXJhbnRlZSB0aGF0 CkBAIC0yNDAsNyArMzQ1LDcgQEAgaXNfc2Vzc2lvbl92YXJpYWJsZV92YWxpZChTVmFyaWFibGUg c3ZhcikKICAqIGRvbmUuICBIb3dldmVyLCB3ZSBjYW4gZ3VhcmFudGVlIHRoYXQgYWxsIGVudHJp ZXMgZ2V0IGNoZWNrZWQgb25jZS4KICAqLwogc3RhdGljIHZvaWQKLXJlbW92ZV9pbnZhbGlkX3Nl c3Npb25fdmFyaWFibGVzKHZvaWQpCityZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyhi b29sIGF0RU9YKQogewogCUhBU0hfU0VRX1NUQVRVUyBzdGF0dXM7CiAJU1ZhcmlhYmxlCXN2YXI7 CkBAIC0yNjcsNyArMzcyLDcgQEAgcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXModm9p ZCkKIAl7CiAJCWlmICghc3Zhci0+aXNfdmFsaWQpCiAJCXsKLQkJCWlmIChzdmFyLT5kcm9wX2x4 aWQgPT0gTXlQcm9jLT52eGlkLmx4aWQpCisJCQlpZiAoIWF0RU9YICYmIHN2YXItPmRyb3BfbHhp ZCA9PSBNeVByb2MtPnZ4aWQubHhpZCkKIAkJCXsKIAkJCQkvKiB0cnkgYWdhaW4gaW4gdGhlIG5l eHQgdHJhbnNhY3Rpb24gKi8KIAkJCQluZWVkc192YWxpZGF0aW9uID0gdHJ1ZTsKQEAgLTI4OCw2 ICszOTMsOTUgQEAgcmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXModm9pZCkKIAl9CiB9 CiAKKy8qCisgICogUGVyZm9ybSBPTiBDT01NSVQgRFJPUCBmb3IgdGVtcG9yYXJ5IHNlc3Npb24g dmFyaWFibGVzLAorICAqIGFuZCByZW1vdmUgYWxsIGRyb3BwZWQgdmFyaWFibGVzIGZyb20gbWVt b3J5LgorICovCit2b2lkCitBdFByZUVPWGFjdF9TZXNzaW9uVmFyaWFibGVzKGJvb2wgaXNDb21t aXQpCit7CisJaWYgKGlzQ29tbWl0KQorCXsKKwkJaWYgKHhhY3RfZHJvcF9pdGVtcykKKwkJewor CQkJTGlzdENlbGwgICAqbDsKKworCQkJZm9yZWFjaChsLCB4YWN0X2Ryb3BfaXRlbXMpCisJCQl7 CisJCQkJU1ZhcmlhYmxlWEFjdERyb3BJdGVtICp4YWN0X2FpID0KKwkJCQkJKFNWYXJpYWJsZVhB Y3REcm9wSXRlbSAqKSBsZmlyc3QobCk7CisKKwkJCQkvKiBpdGVyYXRlIG9ubHkgb3ZlciBlbnRy aWVzIHRoYXQgYXJlIHN0aWxsIHBlbmRpbmcgKi8KKwkJCQlpZiAoeGFjdF9haS0+ZGVsZXRpbmdf c3ViaWQgPT0gSW52YWxpZFN1YlRyYW5zYWN0aW9uSWQpCisJCQkJeworCQkJCQlPYmplY3RBZGRy ZXNzIG9iamVjdDsKKworCQkJCQlvYmplY3QuY2xhc3NJZCA9IFZhcmlhYmxlUmVsYXRpb25JZDsK KwkJCQkJb2JqZWN0Lm9iamVjdElkID0geGFjdF9haS0+dmFyaWQ7CisJCQkJCW9iamVjdC5vYmpl Y3RTdWJJZCA9IDA7CisKKwkJCQkJLyoKKwkJCQkJICogU2luY2UgdGhpcyBpcyBhbiBhdXRvbWF0 aWMgZHJvcCwgcmF0aGVyIHRoYW4gb25lCisJCQkJCSAqIGRpcmVjdGx5IGluaXRpYXRlZCBieSB0 aGUgdXNlciwgd2UgcGFzcyB0aGUKKwkJCQkJICogUEVSRk9STV9ERUxFVElPTl9JTlRFUk5BTCBm bGFnLgorCQkJCQkgKi8KKwkJCQkJZWxvZyhERUJVRzEsICJzZXNzaW9uIHZhcmlhYmxlIChvaWQ6 JXUpIHdpbGwgYmUgZGVsZXRlZCAoZm9yY2VkIGJ5IE9OIENPTU1JVCBEUk9QIGNsYXVzZSkiLAor CQkJCQkJIHhhY3RfYWktPnZhcmlkKTsKKworCQkJCQlwZXJmb3JtRGVsZXRpb24oJm9iamVjdCwg RFJPUF9DQVNDQURFLAorCQkJCQkJCQkJUEVSRk9STV9ERUxFVElPTl9JTlRFUk5BTCB8CisJCQkJ CQkJCQlQRVJGT1JNX0RFTEVUSU9OX1FVSUVUTFkpOworCQkJCX0KKwkJCX0KKwkJfQorCisJCXJl bW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKHRydWUpOworCX0KKworCS8qCisJICogV2Ug aGF2ZSB0byBjbGVhbiB4YWN0X2Ryb3BfaXRlbXMuIEFsbCByZWxhdGVkIHZhcmlhYmxlcyBhcmUg ZHJvcHBlZAorCSAqIG5vdywgb3IgbG9zdCBpbnNpZGUgYWJvcnRlZCB0cmFuc2FjdGlvbi4KKwkg Ki8KKwlsaXN0X2ZyZWVfZGVlcCh4YWN0X2Ryb3BfaXRlbXMpOworCXhhY3RfZHJvcF9pdGVtcyA9 IE5VTEw7Cit9CisKKy8qCisgKiBQb3N0LXN1YmNvbW1pdCBvciBwb3N0LXN1YmFib3J0IGNsZWFu dXAgb2YgeGFjdCBkcm9wIGxpc3QuCisgKgorICogRHVyaW5nIHN1YmFib3J0LCB3ZSBjYW4gaW1t ZWRpYXRlbHkgcmVtb3ZlIGVudHJpZXMgY3JlYXRlZCBkdXJpbmcgdGhpcworICogc3VidHJhbnNh Y3Rpb24uIER1cmluZyBzdWJjb21taXQsIGp1c3QgdHJhbnNmZXIgZW50cmllcyBtYXJrZWQgZHVy aW5nCisgKiB0aGlzIHN1YnRyYW5zYWN0aW9uIGFzIGJlaW5nIHRoZSBwYXJlbnQncyByZXNwb25z aWJpbGl0eS4KKyAqLwordm9pZAorQXRFT1N1YlhhY3RfU2Vzc2lvblZhcmlhYmxlcyhib29sIGlz Q29tbWl0LAorCQkJCQkJCSBTdWJUcmFuc2FjdGlvbklkIG15U3ViaWQsCisJCQkJCQkJIFN1YlRy YW5zYWN0aW9uSWQgcGFyZW50U3ViaWQpCit7CisJTGlzdENlbGwgICAqY3VyX2l0ZW07CisKKwlm b3JlYWNoKGN1cl9pdGVtLCB4YWN0X2Ryb3BfaXRlbXMpCisJeworCQlTVmFyaWFibGVYQWN0RHJv cEl0ZW0gKnhhY3RfYWkgPQorCQkJKFNWYXJpYWJsZVhBY3REcm9wSXRlbSAqKSBsZmlyc3QoY3Vy X2l0ZW0pOworCisJCWlmICghaXNDb21taXQgJiYgeGFjdF9haS0+Y3JlYXRpbmdfc3ViaWQgPT0g bXlTdWJpZCkKKwkJeworCQkJLyogY3VyX2l0ZW0gbXVzdCBiZSByZW1vdmVkICovCisJCQl4YWN0 X2Ryb3BfaXRlbXMgPSBmb3JlYWNoX2RlbGV0ZV9jdXJyZW50KHhhY3RfZHJvcF9pdGVtcywgY3Vy X2l0ZW0pOworCQkJcGZyZWUoeGFjdF9haSk7CisJCX0KKwkJZWxzZQorCQl7CisJCQkvKiBjdXJf aXRlbSBtdXN0IGJlIHByZXNlcnZlZCAqLworCQkJaWYgKHhhY3RfYWktPmNyZWF0aW5nX3N1Ymlk ID09IG15U3ViaWQpCisJCQkJeGFjdF9haS0+Y3JlYXRpbmdfc3ViaWQgPSBwYXJlbnRTdWJpZDsK KwkJCWlmICh4YWN0X2FpLT5kZWxldGluZ19zdWJpZCA9PSBteVN1YmlkKQorCQkJCXhhY3RfYWkt PmRlbGV0aW5nX3N1YmlkID0gaXNDb21taXQgPyBwYXJlbnRTdWJpZCA6IEludmFsaWRTdWJUcmFu c2FjdGlvbklkOworCQl9CisJfQorfQorCiAvKgogICogSW5pdGlhbGl6ZSBhdHRyaWJ1dGVzIGNh Y2hlZCBpbiAic3ZhciIKICAqLwpAQCAtNDQ2LDcgKzY0MCw3IEBAIGdldF9zZXNzaW9uX3Zhcmlh YmxlKE9pZCB2YXJpZCkKIAkJdmFsaWRhdGVkX2x4aWQgIT0gTXlQcm9jLT52eGlkLmx4aWQpCiAJ ewogCQkvKiBmcmVlIHRoZSBtZW1vcnkgZnJvbSBkcm9wcGVkIHNlc3Npb24gdmFyaWFibGVzICov Ci0JCXJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKCk7CisJCXJlbW92ZV9pbnZhbGlk X3Nlc3Npb25fdmFyaWFibGVzKGZhbHNlKTsKIAogCQkvKiBkb24ndCByZXBlYXQgdGhlIGFib3Zl IHN0ZXAgaW4gdGhlIHNhbWUgdHJhbnNhY3Rpb24gKi8KIAkJdmFsaWRhdGVkX2x4aWQgPSBNeVBy b2MtPnZ4aWQubHhpZDsKQEAgLTU0Miw3ICs3MzYsNyBAQCBTZXRTZXNzaW9uVmFyaWFibGUoT2lk IHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpCiAJCXZhbGlkYXRlZF9seGlkICE9IE15 UHJvYy0+dnhpZC5seGlkKQogCXsKIAkJLyogZnJlZSB0aGUgbWVtb3J5IGZyb20gZHJvcHBlZCBz ZXNzaW9uIHZhcmlhYmxlcyAqLwotCQlyZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcygp OworCQlyZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyhmYWxzZSk7CiAKIAkJLyogZG9u J3QgcmVwZWF0IHRoZSBhYm92ZSBzdGVwIGluIHRoZSBzYW1lIHRyYW5zYWN0aW9uICovCiAJCXZh bGlkYXRlZF9seGlkID0gTXlQcm9jLT52eGlkLmx4aWQ7CmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jb21tYW5kcy92aWV3LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy92aWV3LmMKaW5kZXggNmYw MzAxNTU1ZS4uNmJlZjlhMjYxMiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdmll dy5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ZpZXcuYwpAQCAtNDg0LDcgKzQ4NCw3IEBA IERlZmluZVZpZXcoVmlld1N0bXQgKnN0bXQsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nLAogCSAq LwogCXZpZXcgPSBjb3B5T2JqZWN0KHN0bXQtPnZpZXcpOwkvKiBkb24ndCBjb3JydXB0IG9yaWdp bmFsIGNvbW1hbmQgKi8KIAlpZiAodmlldy0+cmVscGVyc2lzdGVuY2UgPT0gUkVMUEVSU0lTVEVO Q0VfUEVSTUFORU5UCi0JCSYmIGlzUXVlcnlVc2luZ1RlbXBSZWxhdGlvbih2aWV3UGFyc2UpKQor CQkmJiBpc1F1ZXJ5VXNpbmdUZW1wT2JqZWN0KHZpZXdQYXJzZSkpCiAJewogCQl2aWV3LT5yZWxw ZXJzaXN0ZW5jZSA9IFJFTFBFUlNJU1RFTkNFX1RFTVA7CiAJCWVyZXBvcnQoTk9USUNFLApkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9hbmFseXplLmMKaW5kZXggM2U5ODE0YWQ5Zi4uYTAzODYwZDRiOCAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcGFyc2VyL2FuYWx5emUuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6 ZS5jCkBAIC0zMzg5LDEwICszMzg5LDEwIEBAIHRyYW5zZm9ybUNyZWF0ZVRhYmxlQXNTdG10KFBh cnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlVGFibGVBc1N0bXQgKnN0bXQpCiAJCSAqIGNyZWF0aW9u IHF1ZXJ5LiBJdCB3b3VsZCBiZSBoYXJkIHRvIHJlZnJlc2ggZGF0YSBvciBpbmNyZW1lbnRhbGx5 CiAJCSAqIG1haW50YWluIGl0IGlmIGEgc291cmNlIGRpc2FwcGVhcmVkLgogCQkgKi8KLQkJaWYg KGlzUXVlcnlVc2luZ1RlbXBSZWxhdGlvbihxdWVyeSkpCisJCWlmIChpc1F1ZXJ5VXNpbmdUZW1w T2JqZWN0KHF1ZXJ5KSkKIAkJCWVyZXBvcnQoRVJST1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVf RkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKLQkJCQkJIGVycm1zZygibWF0ZXJpYWxpemVkIHZpZXdz IG11c3Qgbm90IHVzZSB0ZW1wb3JhcnkgdGFibGVzIG9yIHZpZXdzIikpKTsKKwkJCQkJIGVycm1z ZygibWF0ZXJpYWxpemVkIHZpZXdzIG11c3Qgbm90IHVzZSB0ZW1wb3JhcnkgdGFibGVzLCB2aWV3 cyBvciBzZXNzaW9uIHZhcmlhYmxlcyIpKSk7CiAKIAkJLyoKIAkJICogQSBtYXRlcmlhbGl6ZWQg dmlldyB3b3VsZCBlaXRoZXIgbmVlZCB0byBzYXZlIHBhcmFtZXRlcnMgZm9yIHVzZSBpbgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkKaW5kZXggNmJiYWQxNTRjYi4uN2MwODk1NDliNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC00NjUs NiArNDY1LDcgQEAgc3RhdGljIE5vZGUgKm1ha2VSZWN1cnNpdmVWaWV3U2VsZWN0KGNoYXIgKnJl bG5hbWUsIExpc3QgKmFsaWFzZXMsIE5vZGUgKnF1ZXJ5KTsKICV0eXBlIDxpdmFsPgkgT3B0VGVt cAogJXR5cGUgPGl2YWw+CSBPcHROb0xvZwogJXR5cGUgPG9uY29tbWl0PiBPbkNvbW1pdE9wdGlv bgorJXR5cGUgPGl2YWw+CSBYYWN0RW5kQWN0aW9uT3B0aW9uCiAKICV0eXBlIDxpdmFsPglmb3Jf bG9ja2luZ19zdHJlbmd0aAogJXR5cGUgPG5vZGU+CWZvcl9sb2NraW5nX2l0ZW0KQEAgLTUyMjgs MjYgKzUyMjksMzkgQEAgY3JlYXRlX2V4dGVuc2lvbl9vcHRfaXRlbToKICAqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKi8KIAogQ3JlYXRlU2Vzc2lvblZhclN0bXQ6Ci0JCQlDUkVBVEUgVkFSSUFCTEUgcXVh bGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xsYXRlX2NsYXVzZQorCQkJQ1JFQVRF IE9wdFRlbXAgVkFSSUFCTEUgcXVhbGlmaWVkX25hbWUgb3B0X2FzIFR5cGVuYW1lIG9wdF9jb2xs YXRlX2NsYXVzZSBYYWN0RW5kQWN0aW9uT3B0aW9uCiAJCQkJewogCQkJCQlDcmVhdGVTZXNzaW9u VmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNlc3Npb25WYXJTdG10KTsKLQkJCQkJbi0+dmFy aWFibGUgPSAkMzsKLQkJCQkJbi0+dHlwZU5hbWUgPSAkNTsKLQkJCQkJbi0+Y29sbENsYXVzZSA9 IChDb2xsYXRlQ2xhdXNlICopICQ2OworCQkJCQkkNC0+cmVscGVyc2lzdGVuY2UgPSAkMjsKKwkJ CQkJbi0+dmFyaWFibGUgPSAkNDsKKwkJCQkJbi0+dHlwZU5hbWUgPSAkNjsKKwkJCQkJbi0+Y29s bENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQ3OworCQkJCQluLT5YYWN0RW5kQWN0aW9uID0g JDg7CiAJCQkJCW4tPmlmX25vdF9leGlzdHMgPSBmYWxzZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBu OwogCQkJCX0KLQkJCXwgQ1JFQVRFIFZBUklBQkxFIElGX1AgTk9UIEVYSVNUUyBxdWFsaWZpZWRf bmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNlCisJCQl8IENSRUFURSBPcHRU ZW1wIFZBUklBQkxFIElGX1AgTk9UIEVYSVNUUyBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5h bWUgb3B0X2NvbGxhdGVfY2xhdXNlIFhhY3RFbmRBY3Rpb25PcHRpb24KIAkJCQl7CiAJCQkJCUNy ZWF0ZVNlc3Npb25WYXJTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlU2Vzc2lvblZhclN0bXQpOwot CQkJCQluLT52YXJpYWJsZSA9ICQ2OwotCQkJCQluLT50eXBlTmFtZSA9ICQ4OwotCQkJCQluLT5j b2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDk7CisJCQkJCSQ3LT5yZWxwZXJzaXN0ZW5j ZSA9ICQyOworCQkJCQluLT52YXJpYWJsZSA9ICQ3OworCQkJCQluLT50eXBlTmFtZSA9ICQ5Owor CQkJCQluLT5jb2xsQ2xhdXNlID0gKENvbGxhdGVDbGF1c2UgKikgJDEwOworCQkJCQluLT5YYWN0 RW5kQWN0aW9uID0gJDExOwogCQkJCQluLT5pZl9ub3RfZXhpc3RzID0gdHJ1ZTsKIAkJCQkJJCQg PSAoTm9kZSAqKSBuOwogCQkJCX0KIAkJOwogCisvKgorICogVGVtcG9yYXJ5IHNlc3Npb24gdmFy aWFibGVzIGNhbiBiZSBkcm9wcGVkIG9uIHN1Y2Nlc3NmdWwKKyAqIHRyYW5zYWN0aW9uIGVuZCBs aWtlIHRhYmxlcy4KKyAqLworWGFjdEVuZEFjdGlvbk9wdGlvbjogIE9OIENPTU1JVCBEUk9QCQkJ CXsgJCQgPSBWQVJJQUJMRV9YQUNURU5EX0RST1A7IH0KKwkJCXwgLypFTVBUWSovCQkJCQkJCQl7 ICQkID0gVkFSSUFCTEVfWEFDVEVORF9OT09QOyB9CisJCTsKKworCiAvKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioKICAqCiAgKiBBTFRFUiBFWFRFTlNJT04gbmFtZSBVUERBVEUgWyBUTyB2ZXJzaW9uIF0K ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9yZWxhdGlvbi5jIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMKaW5kZXggOTJhMDRlMzVkZi4uODY1YTEyZDhi NyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMKKysrIGIv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3JlbGF0aW9uLmMKQEAgLTEwMSw3ICsxMDEsNyBAQCBz dGF0aWMgdm9pZCBleHBhbmRUdXBsZURlc2MoVHVwbGVEZXNjIHR1cGRlc2MsIEFsaWFzICplcmVm LAogc3RhdGljIGludAlzcGVjaWFsQXR0TnVtKGNvbnN0IGNoYXIgKmF0dG5hbWUpOwogc3RhdGlj IGJvb2wgcnRlX3Zpc2libGVfaWZfbGF0ZXJhbChQYXJzZVN0YXRlICpwc3RhdGUsIFJhbmdlVGJs RW50cnkgKnJ0ZSk7CiBzdGF0aWMgYm9vbCBydGVfdmlzaWJsZV9pZl9xdWFsaWZpZWQoUGFyc2VT dGF0ZSAqcHN0YXRlLCBSYW5nZVRibEVudHJ5ICpydGUpOwotc3RhdGljIGJvb2wgaXNRdWVyeVVz aW5nVGVtcFJlbGF0aW9uX3dhbGtlcihOb2RlICpub2RlLCB2b2lkICpjb250ZXh0KTsKK3N0YXRp YyBib29sIGlzUXVlcnlVc2luZ1RlbXBPYmplY3Rfd2Fsa2VyKE5vZGUgKm5vZGUsIHZvaWQgKmNv bnRleHQpOwogCiAKIC8qCkBAIC0zODk2LDEzICszODk2LDEzIEBAIHJ0ZV92aXNpYmxlX2lmX3F1 YWxpZmllZChQYXJzZVN0YXRlICpwc3RhdGUsIFJhbmdlVGJsRW50cnkgKnJ0ZSkKICAqIHRoZSBx dWVyeSBpcyBhIHRlbXBvcmFyeSByZWxhdGlvbiAodGFibGUsIHZpZXcsIG9yIG1hdGVyaWFsaXpl ZCB2aWV3KS4KICAqLwogYm9vbAotaXNRdWVyeVVzaW5nVGVtcFJlbGF0aW9uKFF1ZXJ5ICpxdWVy eSkKK2lzUXVlcnlVc2luZ1RlbXBPYmplY3QoUXVlcnkgKnF1ZXJ5KQogewotCXJldHVybiBpc1F1 ZXJ5VXNpbmdUZW1wUmVsYXRpb25fd2Fsa2VyKChOb2RlICopIHF1ZXJ5LCBOVUxMKTsKKwlyZXR1 cm4gaXNRdWVyeVVzaW5nVGVtcE9iamVjdF93YWxrZXIoKE5vZGUgKikgcXVlcnksIE5VTEwpOwog fQogCiBzdGF0aWMgYm9vbAotaXNRdWVyeVVzaW5nVGVtcFJlbGF0aW9uX3dhbGtlcihOb2RlICpu b2RlLCB2b2lkICpjb250ZXh0KQoraXNRdWVyeVVzaW5nVGVtcE9iamVjdF93YWxrZXIoTm9kZSAq bm9kZSwgdm9pZCAqY29udGV4dCkKIHsKIAlpZiAobm9kZSA9PSBOVUxMKQogCQlyZXR1cm4gZmFs c2U7CkBAIC0zOTI4LDEzICszOTI4LDIzIEBAIGlzUXVlcnlVc2luZ1RlbXBSZWxhdGlvbl93YWxr ZXIoTm9kZSAqbm9kZSwgdm9pZCAqY29udGV4dCkKIAkJfQogCiAJCXJldHVybiBxdWVyeV90cmVl X3dhbGtlcihxdWVyeSwKLQkJCQkJCQkJIGlzUXVlcnlVc2luZ1RlbXBSZWxhdGlvbl93YWxrZXIs CisJCQkJCQkJCSBpc1F1ZXJ5VXNpbmdUZW1wT2JqZWN0X3dhbGtlciwKIAkJCQkJCQkJIGNvbnRl eHQsCiAJCQkJCQkJCSBRVFdfSUdOT1JFX0pPSU5BTElBU0VTKTsKIAl9CisJZWxzZSBpZiAoSXNB KG5vZGUsIFBhcmFtKSkKKwl7CisJCVBhcmFtCSAgICpwID0gKFBhcmFtICopIG5vZGU7CisKKwkJ aWYgKHAtPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkKKwkJeworCQkJaWYgKGlzQW55VGVt cE5hbWVzcGFjZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UocC0+cGFyYW12YXJpZCkp KQorCQkJCXJldHVybiB0cnVlOworCQl9CisJfQogCiAJcmV0dXJuIGV4cHJlc3Npb25fdHJlZV93 YWxrZXIobm9kZSwKLQkJCQkJCQkJICBpc1F1ZXJ5VXNpbmdUZW1wUmVsYXRpb25fd2Fsa2VyLAor CQkJCQkJCQkgIGlzUXVlcnlVc2luZ1RlbXBPYmplY3Rfd2Fsa2VyLAogCQkJCQkJCQkgIGNvbnRl eHQpOwogfQogCmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYyBiL3NyYy9iaW4v cHNxbC9kZXNjcmliZS5jCmluZGV4IDU1NDZiZjkxZTIuLmQ2ZDMwZTczZWUgMTAwNjQ0Ci0tLSBh L3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5jCkBA IC01MjUwLDcgKzUyNTAsNyBAQCBsaXN0VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJv b2wgdmVyYm9zZSkKIAlQUUV4cEJ1ZmZlckRhdGEgYnVmOwogCVBHcmVzdWx0ICAgKnJlczsKIAlw cmludFF1ZXJ5T3B0IG15b3B0ID0gcHNldC5wb3B0OwotCXN0YXRpYyBjb25zdCBib29sIHRyYW5z bGF0ZV9jb2x1bW5zW10gPSB7ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxz ZSwgZmFsc2V9OworCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFs c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlfTsKIAog CWlmIChwc2V0LnN2ZXJzaW9uIDwgMTgwMDAwKQogCXsKQEAgLTUyNzAsMTIgKzUyNzAsMTYgQEAg bGlzdFZhcmlhYmxlcyhjb25zdCBjaGFyICpwYXR0ZXJuLCBib29sIHZlcmJvc2UpCiAJCQkJCSAg IiAgcGdfY2F0YWxvZy5mb3JtYXRfdHlwZSh2LnZhcnR5cGUsIHYudmFydHlwbW9kKSBhcyBcIiVz XCIsXG4iCiAJCQkJCSAgIiAgKFNFTEVDVCBjLmNvbGxuYW1lIEZST00gcGdfY2F0YWxvZy5wZ19j b2xsYXRpb24gYywgcGdfY2F0YWxvZy5wZ190eXBlIGJ0XG4iCiAJCQkJCSAgIiAgIFdIRVJFIGMu b2lkID0gdi52YXJjb2xsYXRpb24gQU5EIGJ0Lm9pZCA9IHYudmFydHlwZSBBTkQgdi52YXJjb2xs YXRpb24gPD4gYnQudHlwY29sbGF0aW9uKSBhcyBcIiVzXCIsXG4iCi0JCQkJCSAgIiAgcGdfY2F0 YWxvZy5wZ19nZXRfdXNlcmJ5aWQodi52YXJvd25lcikgYXMgXCIlc1wiXG4iLAorCQkJCQkgICIg IHBnX2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKHYudmFyb3duZXIpIGFzIFwiJXNcIixcbiIKKwkJ CQkJICAiICBDQVNFIHYudmFyeGFjdGVuZGFjdGlvblxuIgorCQkJCQkgICIgICAgV0hFTiAnZCcg VEhFTiAnT04gQ09NTUlUIERST1AnXG4iCisJCQkJCSAgIiAgRU5EIGFzIFwiJXNcIlxuIiwKIAkJ CQkJICBnZXR0ZXh0X25vb3AoIlNjaGVtYSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiTmFtZSIp LAogCQkJCQkgIGdldHRleHRfbm9vcCgiVHlwZSIpLAogCQkJCQkgIGdldHRleHRfbm9vcCgiQ29s bGF0aW9uIiksCi0JCQkJCSAgZ2V0dGV4dF9ub29wKCJPd25lciIpKTsKKwkJCQkJICBnZXR0ZXh0 X25vb3AoIk93bmVyIiksCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJUcmFuc2FjdGlvbmFsIGVuZCBh Y3Rpb24iKSk7CiAKIAlpZiAodmVyYm9zZSkKIAl7CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwv dGFiLWNvbXBsZXRlLmluLmMgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKaW5kZXgg ZTNjODMwNTI3ZS4uMjQ5ZjYxODc4ZCAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21w bGV0ZS5pbi5jCisrKyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwpAQCAtMzYwOCw3 ICszNjA4LDcgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAvKiBDUkVB VEUgVEFCTEUgLS0tIGlzIGFsbG93ZWQgaW5zaWRlIENSRUFURSBTQ0hFTUEsIHNvIHVzZSBUYWls TWF0Y2hlcyAqLwogCS8qIENvbXBsZXRlICJDUkVBVEUgVEVNUC9URU1QT1JBUlkiIHdpdGggdGhl IHBvc3NpYmxlIHRlbXAgb2JqZWN0cyAqLwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJDUkVBVEUi LCAiVEVNUHxURU1QT1JBUlkiKSkKLQkJQ09NUExFVEVfV0lUSCgiU0VRVUVOQ0UiLCAiVEFCTEUi LCAiVklFVyIpOworCQlDT01QTEVURV9XSVRIKCJTRVFVRU5DRSIsICJUQUJMRSIsICJWQVJJQUJM RSIsICJWSUVXIik7CiAJLyogQ29tcGxldGUgIkNSRUFURSBVTkxPR0dFRCIgd2l0aCBUQUJMRSBv ciBTRVFVRU5DRSAqLwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJDUkVBVEUiLCAiVU5MT0dHRUQi KSkKIAkJQ09NUExFVEVfV0lUSCgiVEFCTEUiLCAiU0VRVUVOQ0UiKTsKQEAgLTM5NTksNyArMzk1 OSw4IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCX0KIC8qIENSRUFU RSBWQVJJQUJMRSAtLS0gaXMgYWxsb3dlZCBpbnNpZGUgQ1JFQVRFIFNDSEVNQSwgc28gdXNlIFRh aWxNYXRjaGVzICovCiAJLyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxFIDxuYW1lPiB3aXRoIEFT ICovCi0JZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkNSRUFURSIsICJWQVJJQUJMRSIsIE1hdGNoQW55 KSkKKwllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkp IHx8CisJCQkgVGFpbE1hdGNoZXMoIlRFTVB8VEVNUE9SQVJZIiwgIlZBUklBQkxFIiwgTWF0Y2hB bnkpKQogCQlDT01QTEVURV9XSVRIKCJBUyIpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJWQVJJ QUJMRSIsIE1hdGNoQW55LCAiQVMiKSkKIAkJLyogQ29tcGxldGUgQ1JFQVRFIFZBUklBQkxFIDxu YW1lPiB3aXRoIEFTIHR5cGVzICovCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmgKaW5kZXggNWI0 NWJlNWFmYS4uMGZjNjcyYmMyYiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192 YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaApAQCAtNTYs NiArNTYsOSBAQCBDQVRBTE9HKHBnX3ZhcmlhYmxlLDkyMjIsVmFyaWFibGVSZWxhdGlvbklkKQog CS8qIHR5cG1vZCBmb3IgdmFyaWFibGUncyB0eXBlICovCiAJaW50MzIJCXZhcnR5cG1vZCBCS0lf REVGQVVMVCgtMSk7CiAKKwkvKiBhY3Rpb24gb24gdHJhbnNhY3Rpb24gZW5kICovCisJY2hhcgkJ dmFyeGFjdGVuZGFjdGlvbiBCS0lfREVGQVVMVChuKTsKKwogCS8qIHZhcmlhYmxlIGNvbGxhdGlv biAqLwogCU9pZAkJCXZhcmNvbGxhdGlvbiBCS0lfREVGQVVMVCgwKSBCS0lfTE9PS1VQX09QVChw Z19jb2xsYXRpb24pOwogCkBAIC02OCw2ICs3MSwxMiBAQCBDQVRBTE9HKHBnX3ZhcmlhYmxlLDky MjIsVmFyaWFibGVSZWxhdGlvbklkKQogI2VuZGlmCiB9IEZvcm1EYXRhX3BnX3ZhcmlhYmxlOwog Cit0eXBlZGVmIGVudW0gVmFyaWFibGVYYWN0RW5kQWN0aW9uCit7CisJVkFSSUFCTEVfWEFDVEVO RF9OT09QID0gJ24nLAkvKiBOT09QICovCisJVkFSSUFCTEVfWEFDVEVORF9EUk9QID0gJ2QnLAkv KiBPTiBDT01NSVQgRFJPUCAqLworfQkJCVZhcmlhYmxlWGFjdEVuZEFjdGlvbjsKKwogLyogLS0t LS0tLS0tLS0tLS0tLQogICoJCUZvcm1fcGdfdmFyaWFibGUgY29ycmVzcG9uZHMgdG8gYSBwb2lu dGVyIHRvIGEgdHVwbGUgd2l0aAogICoJCXRoZSBmb3JtYXQgb2YgdGhlIHBnX3ZhcmlhYmxlIHJl bGF0aW9uLgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCmluZGV4IGU1OGE1 YTAxMTAuLjc3NGIzOWYyZjkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Np b25fdmFyaWFibGUuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmgKQEAgLTIxLDcgKzIxLDExIEBACiAjaW5jbHVkZSAidGNvcC9jbWR0YWcuaCIKICNpbmNsdWRl ICJ1dGlscy9xdWVyeWVudmlyb25tZW50LmgiCiAKLWV4dGVybiB2b2lkIFNlc3Npb25WYXJpYWJs ZURyb3BQb3N0cHJvY2VzcyhPaWQgdmFyaWQpOworZXh0ZXJuIHZvaWQgU2Vzc2lvblZhcmlhYmxl Q3JlYXRlUG9zdHByb2Nlc3MoT2lkIHZhcmlkLCBjaGFyIFhhY3RFbmRBY3Rpb24pOworZXh0ZXJu IHZvaWQgU2Vzc2lvblZhcmlhYmxlRHJvcFBvc3Rwcm9jZXNzKE9pZCB2YXJpZCwgY2hhciBYYWN0 RW5kQWN0aW9uKTsKK2V4dGVybiB2b2lkIEF0UHJlRU9YYWN0X1Nlc3Npb25WYXJpYWJsZXMoYm9v bCBpc0NvbW1pdCk7CitleHRlcm4gdm9pZCBBdEVPU3ViWGFjdF9TZXNzaW9uVmFyaWFibGVzKGJv b2wgaXNDb21taXQsIFN1YlRyYW5zYWN0aW9uSWQgbXlTdWJpZCwKKwkJCQkJCQkJCQkgU3ViVHJh bnNhY3Rpb25JZCBwYXJlbnRTdWJpZCk7CiAKIGV4dGVybiB2b2lkIFNldFNlc3Npb25WYXJpYWJs ZShPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCk7CiBleHRlcm4gRGF0dW0gR2V0 U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgYm9vbCAqaXNOdWxsKTsKZGlmZiAtLWdpdCBhL3Ny Yy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9k ZXMuaAppbmRleCBmODhlZGMwZDQxLi5lYzRhMTZhZWEyIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVk ZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o CkBAIC0zNDg3LDYgKzM0ODcsNyBAQCB0eXBlZGVmIHN0cnVjdCBDcmVhdGVTZXNzaW9uVmFyU3Rt dAogCVR5cGVOYW1lICAgKnR5cGVOYW1lOwkJLyogdGhlIHR5cGUgb2YgdmFyaWFibGUgKi8KIAlD b2xsYXRlQ2xhdXNlICpjb2xsQ2xhdXNlOwogCWJvb2wJCWlmX25vdF9leGlzdHM7CS8qIGRvIG5v dGhpbmcgaWYgaXQgYWxyZWFkeSBleGlzdHMgKi8KKwljaGFyCQlYYWN0RW5kQWN0aW9uOwkvKiBv biB0cmFuc2FjdGlvbiBlbmQgYWN0aW9uICovCiB9IENyZWF0ZVNlc3Npb25WYXJTdG10OwogCiAK ZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oIGIvc3JjL2luY2x1ZGUv bm9kZXMvcHJpbW5vZGVzLmgKaW5kZXggOTQ2NmIzMTE3MS4uMzJiN2E0MzNhMiAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMv cHJpbW5vZGVzLmgKQEAgLTUxLDcgKzUxLDkgQEAgdHlwZWRlZiBzdHJ1Y3QgQWxpYXMKIAlMaXN0 CSAgICpjb2xuYW1lczsJCS8qIG9wdGlvbmFsIGxpc3Qgb2YgY29sdW1uIGFsaWFzZXMgKi8KIH0g QWxpYXM7CiAKLS8qIFdoYXQgdG8gZG8gYXQgY29tbWl0IHRpbWUgZm9yIHRlbXBvcmFyeSByZWxh dGlvbnMgKi8KKy8qCisgKiBXaGF0IHRvIGRvIGF0IGNvbW1pdCB0aW1lIGZvciB0ZW1wb3Jhcnkg cmVsYXRpb25zIG9yIHNlc3Npb24gdmFyaWFibGVzLgorICovCiB0eXBlZGVmIGVudW0gT25Db21t aXRBY3Rpb24KIHsKIAlPTkNPTU1JVF9OT09QLAkJCQkvKiBObyBPTiBDT01NSVQgY2xhdXNlIChk byBub3RoaW5nKSAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX3JlbGF0 aW9uLmggYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfcmVsYXRpb24uaAppbmRleCBkZjZmZDU1 NTBkLi5iZTBkMGFiZmZlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfcmVs YXRpb24uaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfcmVsYXRpb24uaApAQCAtMTI2 LDYgKzEyNiw2IEBAIGV4dGVybiBpbnQJYXR0bmFtZUF0dE51bShSZWxhdGlvbiByZCwgY29uc3Qg Y2hhciAqYXR0bmFtZSwgYm9vbCBzeXNDb2xPSyk7CiBleHRlcm4gY29uc3QgTmFtZURhdGEgKmF0 dG51bUF0dE5hbWUoUmVsYXRpb24gcmQsIGludCBhdHRpZCk7CiBleHRlcm4gT2lkCWF0dG51bVR5 cGVJZChSZWxhdGlvbiByZCwgaW50IGF0dGlkKTsKIGV4dGVybiBPaWQJYXR0bnVtQ29sbGF0aW9u SWQoUmVsYXRpb24gcmQsIGludCBhdHRpZCk7Ci1leHRlcm4gYm9vbCBpc1F1ZXJ5VXNpbmdUZW1w UmVsYXRpb24oUXVlcnkgKnF1ZXJ5KTsKK2V4dGVybiBib29sIGlzUXVlcnlVc2luZ1RlbXBPYmpl Y3QoUXVlcnkgKnF1ZXJ5KTsKIAogI2VuZGlmCQkJCQkJCS8qIFBBUlNFX1JFTEFUSU9OX0ggKi8K ZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxl Lm91dCBiL3NyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dApp bmRleCAwYTU1NzlkYzdjLi5hNjA5Nzk3ZGM1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9pc29sYXRp b24vZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9u L2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0CkBAIC04NiwxMCArODYsMTEgQEAgbXl2YXIK IAogc3RlcCBzcjE6IFJPTExCQUNLOwogCi1zdGFydGluZyBwZXJtdXRhdGlvbjogY3JlYXRlMyBs ZXQzIHMzIGNyZWF0ZTQgbGV0NCBkcm9wNCBkcm9wMyBpbnZhbDMgZGlzY2FyZCBzYzMgc3RhdGUK K3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBjcmVhdGUzIGxldDMgczMgb19jX2QgY3JlYXRlNCBsZXQ0 IGRyb3A0IGRyb3AzIGludmFsMyBkaXNjYXJkIHNjMyBzdGF0ZQogc3RlcCBjcmVhdGUzOiBDUkVB VEUgVkFSSUFCTEUgbXl2YXIzIEFTIHRleHQ7CiBzdGVwIGxldDM6IExFVCBteXZhcjMgPSAndGVz dCc7CiBzdGVwIHMzOiBCRUdJTjsKK3N0ZXAgb19jX2Q6IENSRUFURSBURU1QIFZBUklBQkxFIG15 dmFyX29fY19kIEFTIHRleHQgT04gQ09NTUlUIERST1A7CiBzdGVwIGNyZWF0ZTQ6IENSRUFURSBW QVJJQUJMRSBteXZhcjQgQVMgdGV4dDsKIHN0ZXAgbGV0NDogTEVUIG15dmFyNCA9ICd0ZXN0JzsK IHN0ZXAgZHJvcDQ6IERST1AgVkFSSUFCTEUgbXl2YXI0OwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3Qv aXNvbGF0aW9uL3NwZWNzL3Nlc3Npb24tdmFyaWFibGUuc3BlYyBiL3NyYy90ZXN0L2lzb2xhdGlv bi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKaW5kZXggYzg2NGZlZTQwMC4uNDVlNjVkNDA4 NSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvaXNvbGF0aW9uL3NwZWNzL3Nlc3Npb24tdmFyaWFibGUu c3BlYworKysgYi9zcmMvdGVzdC9pc29sYXRpb24vc3BlY3Mvc2Vzc2lvbi12YXJpYWJsZS5zcGVj CkBAIC0yNCw2ICsyNCw3IEBAIHN0ZXAgY3JlYXRlCQl7IENSRUFURSBWQVJJQUJMRSBteXZhciBB UyB0ZXh0OyB9CiBzZXNzaW9uIHMzCiBzdGVwIHMzCQkJeyBCRUdJTjsgfQogc3RlcCBsZXQzCQl7 IExFVCBteXZhcjMgPSAndGVzdCc7IH0KK3N0ZXAgb19jX2QJCXsgQ1JFQVRFIFRFTVAgVkFSSUFC TEUgbXl2YXJfb19jX2QgQVMgdGV4dCBPTiBDT01NSVQgRFJPUDsgfQogc3RlcCBjcmVhdGU0CXsg Q1JFQVRFIFZBUklBQkxFIG15dmFyNCBBUyB0ZXh0OyB9CiBzdGVwIGxldDQJCXsgTEVUIG15dmFy NCA9ICd0ZXN0JzsgfQogc3RlcCBkcm9wNAkJeyBEUk9QIFZBUklBQkxFIG15dmFyNDsgfQpAQCAt NDcsNCArNDgsNCBAQCBwZXJtdXRhdGlvbiBsZXQgdmFsIGRiZyBkcm9wIGNyZWF0ZSBkYmcgdmFs CiAjIGNhbGxpbmcgdGhlIGRiZyBzdGVwIGFmdGVyIHRoZSBjb25jdXJyZW50IGRyb3AKIHBlcm11 dGF0aW9uIGxldCB2YWwgczEgZGJnIGRyb3AgY3JlYXRlIGRiZyB2YWwgc3IxCiAjIHRlc3QgZm9y IERJU0NBUkQgQUxMIHdoZW4gYWxsIGludGVybmFsIHF1ZXVlcyBoYXZlIGFjdGlvbnMgcmVnaXN0 ZXJlZAotcGVybXV0YXRpb24gY3JlYXRlMyBsZXQzIHMzIGNyZWF0ZTQgbGV0NCBkcm9wNCBkcm9w MyBpbnZhbDMgZGlzY2FyZCBzYzMgc3RhdGUKK3Blcm11dGF0aW9uIGNyZWF0ZTMgbGV0MyBzMyBv X2NfZCBjcmVhdGU0IGxldDQgZHJvcDQgZHJvcDMgaW52YWwzIGRpc2NhcmQgc2MzIHN0YXRlCmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0IGIvc3JjL3Rlc3Qv cmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAppbmRleCA4OGUyMTE5NDcxLi42MTA3N2E1MmIxIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3BzcWwub3V0CisrKyBiL3NyYy90 ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvcHNxbC5vdXQKQEAgLTU5MzUsMjAgKzU5MzUsMjAgQEAgQ1JF QVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKIFNFVCBST0xFIFRPIHJlZ3Jlc3NfdmFy aWFibGVfb3duZXI7CiBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyIENPTExBVEUgIkMi OwogXGRWKyB2YXIxCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwg Q29sbGF0aW9uIHwgICAgICAgICBPd25lciAgICAgICAgICB8IEFjY2VzcyBwcml2aWxlZ2VzIHwg RGVzY3JpcHRpb24gCi0tLS0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tCi0gcHVibGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwg cmVncmVzc192YXJpYWJsZV9vd25lciB8ICAgICAgICAgICAgICAgICAgIHwgCisgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2 YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24g fCAgICAgICAgIE93bmVyICAgICAgICAgIHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIHwgQWNj ZXNzIHByaXZpbGVnZXMgfCBEZXNjcmlwdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0KKyBwdWJs aWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3Zhcmlh YmxlX293bmVyIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAg fCAKICgxIHJvdykKIAogR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gUFVCTElDOwog Q09NTUVOVCBPTiBWQVJJQUJMRSB2YXIxIElTICdzb21lIGRlc2NyaXB0aW9uJzsKIFxkVisgdmFy MQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCAgICAgICBUeXBlICAg ICAgICB8IENvbGxhdGlvbiB8ICAgICAgICAgT3duZXIgICAgICAgICAgfCAgICAgICAgICAgICAg ICBBY2Nlc3MgcHJpdmlsZWdlcyAgICAgICAgICAgICAgICAgfCAgIERlc2NyaXB0aW9uICAgIAot LS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLQotIHB1YmxpYyB8IHZhcjEgfCBjaGFyYWN0ZXIg dmFyeWluZyB8IEMgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVfb3duZXIgfCByZWdyZXNzX3Zh cmlhYmxlX293bmVyPXJ3L3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIrfCBzb21lIGRlc2NyaXB0aW9u Ci0gICAgICAgIHwgICAgICB8ICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgIHwgICAgICAg ICAgICAgICAgICAgICAgICB8ID1yL3JlZ3Jlc3NfdmFyaWFibGVfb3duZXIgICAgICAgICAgICAg ICAgICAgICAgICB8IAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2No ZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBPd25l ciAgICAgICAgICB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiB8ICAgICAgICAgICAgICAgIEFj Y2VzcyBwcml2aWxlZ2VzICAgICAgICAgICAgICAgICB8ICAgRGVzY3JpcHRpb24gICAgCistLS0t LS0tLSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tCisgcHVi bGljIHwgdmFyMSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJp YWJsZV9vd25lciB8ICAgICAgICAgICAgICAgICAgICAgICAgICB8IHJlZ3Jlc3NfdmFyaWFibGVf b3duZXI9cncvcmVncmVzc192YXJpYWJsZV9vd25lcit8IHNvbWUgZGVzY3JpcHRpb24KKyAgICAg ICAgfCAgICAgIHwgICAgICAgICAgICAgICAgICAgfCAgICAgICAgICAgfCAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgIHwgPXIvcmVncmVzc192YXJpYWJs ZV9vd25lciAgICAgICAgICAgICAgICAgICAgICAgIHwgCiAoMSByb3cpCiAKIERST1AgVkFSSUFC TEUgdmFyMTsKQEAgLTY0MTYsOSArNjQxNiw5IEBAIExpc3Qgb2Ygc2NoZW1hcwogKDAgcm93cykK IAogXGRWICJuby5zdWNoLnZhcmlhYmxlIgotICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMK LSBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8IENvbGxhdGlvbiB8IE93bmVyIAotLS0tLS0tLS0rLS0t LS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tCisgICAgICAgICAgICAgICAgICAgICAgICAg IExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBP d25lciB8IFRyYW5zYWN0aW9uYWwgZW5kIGFjdGlvbiAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0r LS0tLS0tLS0tLS0rLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogKDAgcm93cykK IAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCkBAIC02 NTkxLDkgKzY1OTEsOSBAQCBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVk IG5hbWVzKTogIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5pbnN0YQogXGR5ICJuby5zdWNoLnNj aGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKIGltcHJvcGVyIHF1YWxpZmllZCBuYW1lICh0 b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV2ZW50LnRy aWdnZXIiCiBcZFYgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKLSAgICAgICAg ICAgIExpc3Qgb2YgdmFyaWFibGVzCi0gU2NoZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24g fCBPd25lciAKLS0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLQorICAg ICAgICAgICAgICAgICAgICAgICAgICBMaXN0IG9mIHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUg fCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgfCBUcmFuc2FjdGlvbmFsIGVuZCBhY3Rpb24gCist LS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KICgwIHJvd3MpCiAKIC0tIGFnYWluLCBidXQgd2l0aCBjdXJyZW50IGRhdGFi YXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgpAQCAtNjczMCw5ICs2NzMwLDkg QEAgTGlzdCBvZiB0ZXh0IHNlYXJjaCB0ZW1wbGF0ZXMKICgwIHJvd3MpCiAKIFxkViByZWdyZXNz aW9uLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCi0gICAgICAgICAgICBMaXN0 IG9mIHZhcmlhYmxlcwotIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIg Ci0tLS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0KKyAgICAgICAgICAg ICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEgfCBOYW1lIHwgVHlwZSB8 IENvbGxhdGlvbiB8IE93bmVyIHwgVHJhbnNhY3Rpb25hbCBlbmQgYWN0aW9uIAorLS0tLS0tLS0r LS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tCiAoMCByb3dzKQogCiAtLSBhZ2FpbiwgYnV0IHdpdGggZG90dGVkIGRhdGFiYXNlIGFuZCBk b3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAppbmRleCAxMWYyMDQyNmQzLi4xNGRiOTFmOTBhIDEw MDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91 dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApA QCAtMjIzNSwzICsyMjM1LDEyMyBAQCBTRUxFQ1QgdmFyMTsKIAogREVBTExPQ0FURSBwMTsKIERS T1AgVkFSSUFCTEUgdmFyMTsKKy0tIHRlbXBvcmFyeSB2YXJpYWJsZXMKK0NSRUFURSBURU1QIFZB UklBQkxFIHZhcjEgQVMgaW50OworLS0gdGhpcyB2aWV3IHNob3VsZCBiZSB0ZW1wb3JhcnkKK0NS RUFURSBWSUVXIHZhcl90ZXN0X3ZpZXcgQVMgU0VMRUNUIHZhcjE7CitOT1RJQ0U6ICB2aWV3ICJ2 YXJfdGVzdF92aWV3IiB3aWxsIGJlIGEgdGVtcG9yYXJ5IHZpZXcKK0RST1AgVkFSSUFCTEUgdmFy MSBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byB2aWV3IHZhcl90ZXN0X3ZpZXcK K0JFR0lOOworICBDUkVBVEUgVEVNUCBWQVJJQUJMRSB2YXIxIEFTIGludCBPTiBDT01NSVQgRFJP UDsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIFNFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAg MTAwCisoMSByb3cpCisKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQo KikgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOworIGNvdW50IAorLS0t LS0tLQorICAgICAwCisoMSByb3cpCisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQo KikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworIGNvdW50IAorLS0tLS0tLQorICAgICAw CisoMSByb3cpCisKK0JFR0lOOworICBDUkVBVEUgVEVNUCBWQVJJQUJMRSB2YXIxIEFTIGludCBP TiBDT01NSVQgRFJPUDsKKyAgTEVUIHZhcjEgPSAxMDA7CisgIFNFTEVDVCB2YXIxOworIHZhcjEg CistLS0tLS0KKyAgMTAwCisoMSByb3cpCisKK1JPTExCQUNLOworLS0gc2hvdWxkIGJlIHplcm8K K1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7 CisgY291bnQgCistLS0tLS0tCisgICAgIDAKKygxIHJvdykKKworLS0gc2hvdWxkIGJlIHplcm8K K1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCist LS0tLS0tCisgICAgIDAKKygxIHJvdykKKworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklBQkxF IHZhcjEgQVMgaW50IE9OIENPTU1JVCBEUk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgRFJPUCBW QVJJQUJMRSB2YXIxOworQ09NTUlUOworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgq KSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CisgY291bnQgCistLS0t LS0tCisgICAgIDAKKygxIHJvdykKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgq KSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgY291bnQgCistLS0tLS0tCisgICAgIDAK KygxIHJvdykKKworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50IE9O IENPTU1JVCBEUk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOwor Uk9MTEJBQ0s7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfdmFy aWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAor KDEgcm93KQorCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vz c2lvbl92YXJpYWJsZXMoKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCitC RUdJTjsKKyAgQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQgT04gQ09NTUlUIERST1A7 CisgIExFVCB2YXIxID0gMTAwOworICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUgdmFy MTsKKyAgUk9MTEJBQ0sgVE8gczE7CisgIFNFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAg MTAwCisoMSByb3cpCisKK0NPTU1JVDsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQo KikgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOworIGNvdW50IAorLS0t LS0tLQorICAgICAwCisoMSByb3cpCisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQo KikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworIGNvdW50IAorLS0tLS0tLQorICAgICAw CisoMSByb3cpCisKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFy aWFibGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbApp bmRleCBiODQxZDU5ZmQ4Li42OGRjYjcxZjE3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNz L3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vz c2lvbl92YXJpYWJsZXMuc3FsCkBAIC0xMzEyLDYgKzEzMTIsNyBAQCBCRUdJTjsKICAgRFJPUCBW QVJJQUJMRSB2YXIxOwogICBTRUxFQ1QgdmFyMjsKIFJPTExCQUNLOworCiAtLSBzaG91bGQgYmUg b2sKIFNFTEVDVCB2YXIxOwogCkBAIC0xNTUyLDMgKzE1NTMsNjggQEAgU0VMRUNUIHZhcjE7CiAK IERFQUxMT0NBVEUgcDE7CiBEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIHRlbXBvcmFyeSB2YXJp YWJsZXMKK0NSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50OworLS0gdGhpcyB2aWV3IHNo b3VsZCBiZSB0ZW1wb3JhcnkKK0NSRUFURSBWSUVXIHZhcl90ZXN0X3ZpZXcgQVMgU0VMRUNUIHZh cjE7CisKK0RST1AgVkFSSUFCTEUgdmFyMSBDQVNDQURFOworCitCRUdJTjsKKyAgQ1JFQVRFIFRF TVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQgT04gQ09NTUlUIERST1A7CisgIExFVCB2YXIxID0gMTAw OworICBTRUxFQ1QgdmFyMTsKK0NPTU1JVDsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBj b3VudCgqKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CistLSBzaG91 bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsK KworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklBQkxFIHZhcjEgQVMgaW50IE9OIENPTU1JVCBE Uk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgU0VMRUNUIHZhcjE7CitST0xMQkFDSzsKKworLS0g c2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZh cm5hbWUgPSAndmFyMSc7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00g cGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklBQkxF IHZhcjEgQVMgaW50IE9OIENPTU1JVCBEUk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgRFJPUCBW QVJJQUJMRSB2YXIxOworQ09NTUlUOworCistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50 KCopIEZST00gcGdfdmFyaWFibGUgV0hFUkUgdmFybmFtZSA9ICd2YXIxJzsKKy0tIHNob3VsZCBi ZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworCitC RUdJTjsKKyAgQ1JFQVRFIFRFTVAgVkFSSUFCTEUgdmFyMSBBUyBpbnQgT04gQ09NTUlUIERST1A7 CisgIExFVCB2YXIxID0gMTAwOworICBEUk9QIFZBUklBQkxFIHZhcjE7CitST0xMQkFDSzsKKwor LS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJF IHZhcm5hbWUgPSAndmFyMSc7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZS T00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKworQkVHSU47CisgIENSRUFURSBURU1QIFZBUklB QkxFIHZhcjEgQVMgaW50IE9OIENPTU1JVCBEUk9QOworICBMRVQgdmFyMSA9IDEwMDsKKyAgU0FW RVBPSU5UIHMxOworICBEUk9QIFZBUklBQkxFIHZhcjE7CisgIFJPTExCQUNLIFRPIHMxOworICBT RUxFQ1QgdmFyMTsKK0NPTU1JVDsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgq KSBGUk9NIHBnX3ZhcmlhYmxlIFdIRVJFIHZhcm5hbWUgPSAndmFyMSc7CistLSBzaG91bGQgYmUg emVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKZGlmZiAt LWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5k ZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggNzIzNjBhMTdmYi4uNGRiMjBjYjI2NyAxMDA2NDQKLS0t IGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5k ZW50L3R5cGVkZWZzLmxpc3QKQEAgLTI4MDcsNiArMjgwNyw3IEBAIFN1cHBvcnRSZXF1ZXN0V0Z1 bmNNb25vdG9uaWMKIFNWYXJpYWJsZQogU1ZhcmlhYmxlRGF0YQogU1ZhcmlhYmxlU3RhdGUKK1NW YXJpYWJsZVhBY3REcm9wSXRlbQogU3luCiBTeW5jT3BzCiBTeW5jUmVwQ29uZmlnRGF0YQotLSAK Mi40Ny4xCgo= --0000000000007bfa26062b3fa8d1 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250109-0011-PREPARE-LET-support.patch" Content-Disposition: attachment; filename="v20250109-0011-PREPARE-LET-support.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5ox16oc11 RnJvbSA2ZTE1MDIzNWE2MTg0NDEwNTNjNmE0MGFmNDU5ODkzZmNhN2NlMmQ3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMDk6NDQ6NTggKzAxMDAKU3ViamVjdDogW1BBVENIIDEx LzIyXSBQUkVQQVJFIExFVCBzdXBwb3J0CgpJbiBjdXJyZW50IGNvZGUgYmFzZSBpdCByZXF1aXJl cyBqdXN0IHNtYWxsIGNoYW5nZXMgaW4gcGFyc2VyLiBJdCBpcyBuaWNlCnRvIGhhdmUgdG8gaGF2 ZSBwb3NzaWJpbGl0eSB0byB1c2UgcHJlcGFyZWQgTEVUIHN0YXRlbWVudHMgbWFpbmx5IGR1ZSBy ZWR1Y3Rpb24Kb2Ygc2VjdXJpdHkgcmlza3MgKFNRTCBpbmplY3Rpb24pLCBhbmQgaW1wbGVtZW50 YXRpb24gaXMgYWxtb3N0IGNoZWFwLgoKRXhwbGljaXQgcHJlcGFyaW5nIGlzIG5vdCBuZWNlc3Np dHkgZm9yIHN1cHBvcnQgb2YgTEVUIHN0YXRlbWVudHMgaW4gUEwsIGJlY2F1c2UKUEwgdXNlcyBT UEkgZm9yIHF1ZXJ5IGV4ZWN1dGlvbiwgYnV0IGl0IGlzIG5pY2UgdG8gaGF2ZSB0aGlzIHBvc3Np YmlsaXR5IChjb21wbGV0ZW5lZXMsIC4uLikKLS0tCiBkb2Mvc3JjL3NnbWwvcmVmL3ByZXBhcmUu c2dtbCAgICAgICAgICAgICAgICAgfCAgNCArLQogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAg ICAgICAgICAgICAgICAgICAgIHwgIDMgKy0KIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jdGUu YyAgICAgICAgICAgICAgICB8ICA3ICsrCiBzcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMg ICAgICAgICAgICAgICAgfCAgNCArLQogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJp YWJsZXMub3V0ICAgIHwgODEgKysrKysrKysrKysrKysrKysrLQogc3JjL3Rlc3QvcmVncmVzcy9z cWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsICAgIHwgNTcgKysrKysrKysrKysrKwogNiBmaWxlcyBj aGFuZ2VkLCAxNDkgaW5zZXJ0aW9ucygrKSwgNyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL3ByZXBhcmUuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvcHJlcGFyZS5z Z21sCmluZGV4IDhlZTk0MzlmNjEuLjQ1ZDcyYjFkNTIgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9yZWYvcHJlcGFyZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvcHJlcGFyZS5zZ21sCkBA IC0xMTYsOCArMTE2LDggQEAgUFJFUEFSRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ bmFtZTwvcmVwbGFjZWFibGU+IFsgKCA8cmVwbGFjZWFibGUgY2xhc3MKICAgICA8bGlzdGl0ZW0+ CiAgICAgIDxwYXJhPgogICAgICAgQW55IDxjb21tYW5kPlNFTEVDVDwvY29tbWFuZD4sIDxjb21t YW5kPklOU0VSVDwvY29tbWFuZD4sIDxjb21tYW5kPlVQREFURTwvY29tbWFuZD4sCi0gICAgICA8 Y29tbWFuZD5ERUxFVEU8L2NvbW1hbmQ+LCA8Y29tbWFuZD5NRVJHRTwvY29tbWFuZD4sIG9yIDxj b21tYW5kPlZBTFVFUzwvY29tbWFuZD4KLSAgICAgIHN0YXRlbWVudC4KKyAgICAgIDxjb21tYW5k PkRFTEVURTwvY29tbWFuZD4sIDxjb21tYW5kPk1FUkdFPC9jb21tYW5kPiwgPGNvbW1hbmQ+VkFM VUVTPC9jb21tYW5kPiwKKyAgICAgIG9yIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gc3RhdGVtZW50 LgogICAgICA8L3BhcmE+CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlzdGVudHJ5PgpkaWZm IC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSBiL3NyYy9iYWNrZW5kL3BhcnNlci9n cmFtLnkKaW5kZXggM2JlOWEyZGQyZC4uNmJiYWQxNTRjYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvcGFyc2VyL2dyYW0ueQorKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CkBAIC0xMjE2 MCw3ICsxMjE2MCw4IEBAIFByZXBhcmFibGVTdG10OgogCQkJfCBJbnNlcnRTdG10CiAJCQl8IFVw ZGF0ZVN0bXQKIAkJCXwgRGVsZXRlU3RtdAotCQkJfCBNZXJnZVN0bXQJCQkJCQkvKiBieSBkZWZh dWx0IGFsbCBhcmUgJCQ9JDEgKi8KKwkJCXwgTWVyZ2VTdG10CisJCQl8IExldFN0bXQJCQkJCQkv KiBieSBkZWZhdWx0IGFsbCBhcmUgJCQ9JDEgKi8KIAkJOwogCiAvKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9jdGUuYyBiL3NyYy9iYWNr ZW5kL3BhcnNlci9wYXJzZV9jdGUuYwppbmRleCA3OTY3MzYyMWM5Li5jNjI3NjFlNGVhIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfY3RlLmMKKysrIGIvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX2N0ZS5jCkBAIC0xMjYsNiArMTI2LDEzIEBAIHRyYW5zZm9ybVdpdGhDbGF1 c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBXaXRoQ2xhdXNlICp3aXRoQ2xhdXNlKQogCQlDb21tb25U YWJsZUV4cHIgKmN0ZSA9IChDb21tb25UYWJsZUV4cHIgKikgbGZpcnN0KGxjKTsKIAkJTGlzdENl bGwgICAqcmVzdDsKIAorCQkvKiBMRVQgaXMgYWxsb3dlZCBieSBwYXJzZXIsIGJ1dCBub3Qgc3Vw cG9ydGVkLiBSZWplY3QgZm9yIG5vdyAqLworCQlpZiAoSXNBKGN0ZS0+Y3RlcXVlcnksIExldFN0 bXQpKQorCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9U X1NVUFBPUlRFRCksCisJCQkJCWVycm1zZygiTEVUIG5vdCBzdXBwb3J0ZWQgaW4gV0lUSCBxdWVy eSIpLAorCQkJCQlwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBjdGUtPmxvY2F0aW9uKSk7CisK IAkJZm9yX2VhY2hfY2VsbChyZXN0LCB3aXRoQ2xhdXNlLT5jdGVzLCBsbmV4dCh3aXRoQ2xhdXNl LT5jdGVzLCBsYykpCiAJCXsKIAkJCUNvbW1vblRhYmxlRXhwciAqY3RlMiA9IChDb21tb25UYWJs ZUV4cHIgKikgbGZpcnN0KHJlc3QpOwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21w bGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IGQ3OGNlZjM2 YWQuLmUzYzgzMDUyN2UgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4u YworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAgLTQ2NjAsOSArNDY2MCw5 IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCWVsc2UgaWYgKFRhaWxN YXRjaGVzKCJWQUxVRVMiKSAmJiAhVGFpbE1hdGNoZXMoIkRFRkFVTFQiLCAiVkFMVUVTIikpCiAJ CUNPTVBMRVRFX1dJVEgoIigiKTsKIAotLyogTEVUICovCisvKiBMRVQsIEVYUExBSU4gTEVULCBQ UkVQQVJFIExFVCAqLwogCS8qIElmIHByZXYuIHdvcmQgaXMgTEVUIHN1Z2dlc3QgYSBsaXN0IG9m IHZhcmlhYmxlcyAqLwotCWVsc2UgaWYgKE1hdGNoZXMoIkxFVCIpKQorCWVsc2UgaWYgKFRhaWxN YXRjaGVzKCJMRVQiKSkKIAkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlkoUXVlcnlfZm9yX2xp c3Rfb2ZfdmFyaWFibGVzKTsKIAkvKiBDb21wbGV0ZSBMRVQgPHZhcmlhYmxlPiB3aXRoICI9IiAq LwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzKCJMRVQiLCBNYXRjaEFueSkpCmRpZmYgLS1naXQgYS9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDc3YTY2NTY0ZWMu LjExZjIwNDI2ZDMgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lv bl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92 YXJpYWJsZXMub3V0CkBAIC05NDAsOSArOTQwLDkgQEAgRFJPUCBWQVJJQUJMRSB2YXIxLCB2YXIy OwogLS0gdGhlIExFVCBzdGF0ZW1lbnQgc2hvdWxkIGJlIGRpc2FsbG93ZWQgaW4gQ1RFCiBDUkVB VEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CiBXSVRIIHggQVMgKExFVCB2YXIxID0gMTAwKSBTRUxF Q1QgKiBGUk9NIHg7Ci1FUlJPUjogIHN5bnRheCBlcnJvciBhdCBvciBuZWFyICJMRVQiCitFUlJP UjogIExFVCBub3Qgc3VwcG9ydGVkIGluIFdJVEggcXVlcnkKIExJTkUgMTogV0lUSCB4IEFTIChM RVQgdmFyMSA9IDEwMCkgU0VMRUNUICogRlJPTSB4OwotICAgICAgICAgICAgICAgICAgIF4KKyAg ICAgICAgICAgICBeCiAtLSBzaG91bGQgYmUgb2sKIExFVCB2YXIxID0gZ2VuZXJhdGVfc2VyaWVz KDEsIDEpOwogLS0gc2hvdWxkIGZhaWwKQEAgLTIxNTYsNSArMjE1Niw4MiBAQCBTRUxFQ1QgdmFy MTsKICAgIDEwCiAoMSByb3cpCiAKK1NFVCBwbGFuX2NhY2hlX21vZGUgVE8gZm9yY2VfZ2VuZXJp Y19wbGFuOworUFJFUEFSRSBwMSBBUyBMRVQgdmFyMSA9IChTRUxFQ1QgY291bnQoKikgRlJPTSB2 YXJfdGFiX3Rlc3RfdGFibGUpOworTEVUIHZhcjEgPSBOVUxMOworRVhQTEFJTiAoQ09TVFMgT0ZG KSBFWEVDVVRFIHAxOworICAgICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAg ICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNF VCBTRVNTSU9OIFZBUklBQkxFCisgUmVzdWx0CisgICBJbml0UGxhbiAxCisgICAgIC0+ICBBZ2dy ZWdhdGUKKyAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9uIHZhcl90YWJfdGVzdF90YWJsZQorKDUg cm93cykKKworLS0gc2hvdWxkIGJlIE5VTEwKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0K KyAgICAgCisoMSByb3cpCisKK0VYUExBSU4gKENPU1RTIE9GRiwgVElNSU5HIE9GRiwgQU5BTFla RSwgU1VNTUFSWSBPRkYsIEJVRkZFUlMgT0ZGKSBFWEVDVVRFIHAxOworICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgUVVFUlkgUExBTiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgU0VUIFNFU1NJT04gVkFSSUFCTEUKKyBSZXN1bHQgKGFjdHVhbCBy b3dzPTEgbG9vcHM9MSkKKyAgIEluaXRQbGFuIDEKKyAgICAgLT4gIEFnZ3JlZ2F0ZSAoYWN0dWFs IHJvd3M9MSBsb29wcz0xKQorICAgICAgICAgICAtPiAgU2VxIFNjYW4gb24gdmFyX3RhYl90ZXN0 X3RhYmxlIChhY3R1YWwgcm93cz0xMCBsb29wcz0xKQorKDUgcm93cykKKworLS0gc2hvdWxkIGJl IDEwCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCitTRVQg cGxhbl9jYWNoZV9tb2RlIFRPIERFRkFVTFQ7CitERUFMTE9DQVRFIHAxOwogRFJPUCBWQVJJQUJM RSB2YXIxOwogRFJPUCBUQUJMRSB2YXJfdGFiX3Rlc3RfdGFibGU7CitDUkVBVEUgVkFSSUFCTEUg dmFyMSBudW1lcmljOworU0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBmb3JjZV9nZW5lcmljX3BsYW47 CitQUkVQQVJFIHAxKG51bWVyaWMpIEFTIExFVCB2YXIxID0gJDE7CitQUkVQQVJFIHAyIEFTIFNF TEVDVCB2YXIxOworRVhFQ1VURSBwMShwaSgpICsgMTAwKTsKK0VYRUNVVEUgcDI7CisgICAgICB2 YXIxICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0KKyAxMDMuMTQxNTkyNjUzNTkKKygxIHJvdykK KworLS0gcHJlcGFyZWQgcGxhbiBjYWNoZSBpbnZhbGlkYXRpb24gdGVzdAorRFJPUCBWQVJJQUJM RSB2YXIxOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgbnVtZXJpYzsKKy0tIHNob3VsZCBiZSBOVUxM CitFWEVDVVRFIHAyOworIHZhcjEgCistLS0tLS0KKyAgICAgCisoMSByb3cpCisKK0RFQUxMT0NB VEUgcDE7CitERUFMTE9DQVRFIHAyOworRFJPUCBWQVJJQUJMRSB2YXIxOworU0VUIHBsYW5fY2Fj aGVfbW9kZSBUTyBmb3JjZV9nZW5lcmljX3BsYW47CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBudW1l cmljW107CitQUkVQQVJFIHAxKGludCwgbnVtZXJpYykgQVMgTEVUIHZhcjFbJDFdID0gJDI7CitM RVQgdmFyMSA9ICd7fSc6Om51bWVyaWNbXTsKK0VYRUNVVEUgcDEoMSwgMTAuMik7CitFWEVDVVRF IHAxKDIsIDEwLjMpOworU0VMRUNUIHZhcjE7CisgICAgdmFyMSAgICAgCistLS0tLS0tLS0tLS0t CisgezEwLjIsMTAuM30KKygxIHJvdykKKworREVBTExPQ0FURSBwMTsKK0RST1AgVkFSSUFCTEUg dmFyMTsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVz LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCAy NmVjOGQ4OTIxLi5iODQxZDU5ZmQ4IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9z ZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92 YXJpYWJsZXMuc3FsCkBAIC0xNDkzLDUgKzE0OTMsNjIgQEAgRVhQTEFJTiAoQ09TVFMgT0ZGLCBU SU1JTkcgT0ZGLCBBTkFMWVpFLCBTVU1NQVJZIE9GRiwgQlVGRkVSUyBPRkYpIExFVCB2YXIxID0g KFMKIC0tIHNob3VsZCBiZSAxMAogU0VMRUNUIHZhcjE7CiAKK1NFVCBwbGFuX2NhY2hlX21vZGUg VE8gZm9yY2VfZ2VuZXJpY19wbGFuOworCitQUkVQQVJFIHAxIEFTIExFVCB2YXIxID0gKFNFTEVD VCBjb3VudCgqKSBGUk9NIHZhcl90YWJfdGVzdF90YWJsZSk7CisKK0xFVCB2YXIxID0gTlVMTDsK KworRVhQTEFJTiAoQ09TVFMgT0ZGKSBFWEVDVVRFIHAxOworCistLSBzaG91bGQgYmUgTlVMTAor U0VMRUNUIHZhcjE7CisKK0VYUExBSU4gKENPU1RTIE9GRiwgVElNSU5HIE9GRiwgQU5BTFlaRSwg U1VNTUFSWSBPRkYsIEJVRkZFUlMgT0ZGKSBFWEVDVVRFIHAxOworCistLSBzaG91bGQgYmUgMTAK K1NFTEVDVCB2YXIxOworCitTRVQgcGxhbl9jYWNoZV9tb2RlIFRPIERFRkFVTFQ7CisKK0RFQUxM T0NBVEUgcDE7CisKIERST1AgVkFSSUFCTEUgdmFyMTsKIERST1AgVEFCTEUgdmFyX3RhYl90ZXN0 X3RhYmxlOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBudW1lcmljOworCitTRVQgcGxhbl9jYWNo ZV9tb2RlIFRPIGZvcmNlX2dlbmVyaWNfcGxhbjsKKworUFJFUEFSRSBwMShudW1lcmljKSBBUyBM RVQgdmFyMSA9ICQxOworUFJFUEFSRSBwMiBBUyBTRUxFQ1QgdmFyMTsKKworRVhFQ1VURSBwMShw aSgpICsgMTAwKTsKK0VYRUNVVEUgcDI7CisKKy0tIHByZXBhcmVkIHBsYW4gY2FjaGUgaW52YWxp ZGF0aW9uIHRlc3QKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIG51 bWVyaWM7CisKKy0tIHNob3VsZCBiZSBOVUxMCitFWEVDVVRFIHAyOworCitERUFMTE9DQVRFIHAx OworREVBTExPQ0FURSBwMjsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCitTRVQgcGxhbl9jYWNo ZV9tb2RlIFRPIGZvcmNlX2dlbmVyaWNfcGxhbjsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgbnVt ZXJpY1tdOworCitQUkVQQVJFIHAxKGludCwgbnVtZXJpYykgQVMgTEVUIHZhcjFbJDFdID0gJDI7 CisKK0xFVCB2YXIxID0gJ3t9Jzo6bnVtZXJpY1tdOworRVhFQ1VURSBwMSgxLCAxMC4yKTsKK0VY RUNVVEUgcDEoMiwgMTAuMyk7CisKK1NFTEVDVCB2YXIxOworCitERUFMTE9DQVRFIHAxOworRFJP UCBWQVJJQUJMRSB2YXIxOwotLSAKMi40Ny4xCgo= --0000000000007bfa26062b3fa8d1 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250109-0010-EXPLAIN-LET-support.patch" Content-Disposition: attachment; filename="v20250109-0010-EXPLAIN-LET-support.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5ox16om12 RnJvbSA1ZDI0ODc2YTZjM2JhNzI4ODc0Y2ZlYWNlYjcwY2M1ZTI2NTZkNDRiIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFR1ZSwgMjEgTWF5IDIwMjQgMTg6Mjg6MDcgKzAyMDAKU3ViamVjdDogW1BBVENIIDEw LzIyXSBFWFBMQUlOIExFVCBzdXBwb3J0CgpFbmhhbmNpbmcgRXhwbGFpbk9uZVBsYW4gaXMgbmVj ZXNzYXJ5IHRvIGJlIEVYUExBSU4gQU5BTFlaRSBMRVQgZnVsbHkgd29ya2FibGUuCkluIHRoaXMg Y2FzZSB3ZSB3YW50IHRvIGJlIHJlc3VsdCBvZiBxdWVyeSBvciBleHByZXNzaW9uIHdyaXR0ZW4g dG8gdGFyZ2V0IHZhcmlhYmxlLgotLS0KIGRvYy9zcmMvc2dtbC9yZWYvZXhwbGFpbi5zZ21sICAg ICAgICAgICAgICAgICB8ICAzICstCiBzcmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMgICAg ICAgICAgICAgICAgfCAzMSArKysrKysrKysrKystLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJl cGFyZS5jICAgICAgICAgICAgICAgIHwgIDUgKystCiBzcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55 ICAgICAgICAgICAgICAgICAgICAgfCAgMyArLQogc3JjL2luY2x1ZGUvY29tbWFuZHMvZXhwbGFp bi5oICAgICAgICAgICAgICAgIHwgIDMgKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25f dmFyaWFibGVzLm91dCAgICB8IDQwICsrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDIxICsrKysrKysrKysKIDcgZmlsZXMg Y2hhbmdlZCwgOTcgaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9k b2Mvc3JjL3NnbWwvcmVmL2V4cGxhaW4uc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZXhwbGFpbi5z Z21sCmluZGV4IDYzNjFhMTRlNjUuLjQyOTI2MTViNDQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dt bC9yZWYvZXhwbGFpbi5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZXhwbGFpbi5zZ21sCkBA IC05OCw3ICs5OCw4IEBAIEVYUExBSU4gWyAoIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5vcHRpb248L3JlcGxhY2VhYmxlPiBbLCAuLi5dICkgXSA8cmVwCiAgICAgPGNvbW1hbmQ+SU5T RVJUPC9jb21tYW5kPiwgPGNvbW1hbmQ+VVBEQVRFPC9jb21tYW5kPiwKICAgICA8Y29tbWFuZD5E RUxFVEU8L2NvbW1hbmQ+LCA8Y29tbWFuZD5NRVJHRTwvY29tbWFuZD4sCiAgICAgPGNvbW1hbmQ+ Q1JFQVRFIFRBQkxFIEFTPC9jb21tYW5kPiwKLSAgICBvciA8Y29tbWFuZD5FWEVDVVRFPC9jb21t YW5kPiBzdGF0ZW1lbnQKKyAgICA8Y29tbWFuZD5FWEVDVVRFPC9jb21tYW5kPiwKKyAgICBvciA8 Y29tbWFuZD5MRVQ8L2NvbW1hbmQ+IHN0YXRlbWVudAogICAgIHdpdGhvdXQgbGV0dGluZyB0aGUg Y29tbWFuZCBhZmZlY3QgeW91ciBkYXRhLCB1c2UgdGhpcyBhcHByb2FjaDoKIDxwcm9ncmFtbGlz dGluZz4KIEJFR0lOOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5j IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXhwbGFpbi5jCmluZGV4IGMyNGU2NmY4MmUuLmE2MDhm ODFlZjQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4cGxhaW4uYworKysgYi9z cmMvYmFja2VuZC9jb21tYW5kcy9leHBsYWluLmMKQEAgLTE4LDYgKzE4LDcgQEAKICNpbmNsdWRl ICJjb21tYW5kcy9jcmVhdGVhcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgogI2lu Y2x1ZGUgImNvbW1hbmRzL3ByZXBhcmUuaCIKKyNpbmNsdWRlICJleGVjdXRvci9zdmFyaWFibGVS ZWNlaXZlci5oIgogI2luY2x1ZGUgImZvcmVpZ24vZmR3YXBpLmgiCiAjaW5jbHVkZSAiaml0L2pp dC5oIgogI2luY2x1ZGUgImxpYnBxL3BxZm9ybWF0LmgiCkBAIC01MTksOCArNTIwLDkgQEAgc3Rh bmRhcmRfRXhwbGFpbk9uZVF1ZXJ5KFF1ZXJ5ICpxdWVyeSwgaW50IGN1cnNvck9wdGlvbnMsCiAJ fQogCiAJLyogcnVuIGl0IChpZiBuZWVkZWQpIGFuZCBwcm9kdWNlIG91dHB1dCAqLwotCUV4cGxh aW5PbmVQbGFuKHBsYW4sIGludG8sIGVzLCBxdWVyeVN0cmluZywgcGFyYW1zLCBxdWVyeUVudiwK LQkJCQkgICAmcGxhbmR1cmF0aW9uLCAoZXMtPmJ1ZmZlcnMgPyAmYnVmdXNhZ2UgOiBOVUxMKSwK KwlFeHBsYWluT25lUGxhbihwbGFuLCBpbnRvLCBxdWVyeS0+cmVzdWx0VmFyaWFibGUsIGVzLCBx dWVyeVN0cmluZywKKwkJCQkgICBwYXJhbXMsIHF1ZXJ5RW52LCAmcGxhbmR1cmF0aW9uLAorCQkJ CSAgIChlcy0+YnVmZmVycyA/ICZidWZ1c2FnZSA6IE5VTEwpLAogCQkJCSAgIGVzLT5tZW1vcnkg PyAmbWVtX2NvdW50ZXJzIDogTlVMTCk7CiB9CiAKQEAgLTYxOCw2ICs2MjAsMjUgQEAgRXhwbGFp bk9uZVV0aWxpdHkoTm9kZSAqdXRpbGl0eVN0bXQsIEludG9DbGF1c2UgKmludG8sIEV4cGxhaW5T dGF0ZSAqZXMsCiAJCWVsc2UKIAkJCUV4cGxhaW5EdW1teUdyb3VwKCJOb3RpZnkiLCBOVUxMLCBl cyk7CiAJfQorCWVsc2UgaWYgKElzQSh1dGlsaXR5U3RtdCwgTGV0U3RtdCkpCisJeworCQlMZXRT dG10ICAgICpsZXRzdG10ID0gKExldFN0bXQgKikgdXRpbGl0eVN0bXQ7CisJCUxpc3QJICAgKnJl d3JpdHRlbjsKKwkJUXVlcnkJICAgKnF1ZXJ5OworCisJCWlmIChlcy0+Zm9ybWF0ID09IEVYUExB SU5fRk9STUFUX1RFWFQpCisJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKGVzLT5zdHIsICJTRVQg U0VTU0lPTiBWQVJJQUJMRVxuIik7CisJCWVsc2UKKwkJCUV4cGxhaW5EdW1teUdyb3VwKCJTZXQg U2Vzc2lvbiBWYXJpYWJsZSIsIE5VTEwsIGVzKTsKKworCQlyZXdyaXR0ZW4gPSBRdWVyeVJld3Jp dGUoY2FzdE5vZGUoUXVlcnksIGNvcHlPYmplY3QobGV0c3RtdC0+cXVlcnkpKSk7CisKKwkJQXNz ZXJ0KGxpc3RfbGVuZ3RoKHJld3JpdHRlbikgPT0gMSk7CisJCXF1ZXJ5ID0gbGluaXRpYWxfbm9k ZShRdWVyeSwgcmV3cml0dGVuKTsKKwkJRXhwbGFpbk9uZVF1ZXJ5KHF1ZXJ5LAorCQkJCQkJQ1VS U09SX09QVF9QQVJBTExFTF9PSywgTlVMTCwgZXMsCisJCQkJCQlwc3RhdGUsIHBhcmFtcyk7CisJ fQogCWVsc2UKIAl7CiAJCWlmIChlcy0+Zm9ybWF0ID09IEVYUExBSU5fRk9STUFUX1RFWFQpCkBA IC02NDEsOCArNjYyLDggQEAgRXhwbGFpbk9uZVV0aWxpdHkoTm9kZSAqdXRpbGl0eVN0bXQsIElu dG9DbGF1c2UgKmludG8sIEV4cGxhaW5TdGF0ZSAqZXMsCiAgKiB0byBjYWxsIGl0LgogICovCiB2 b2lkCi1FeHBsYWluT25lUGxhbihQbGFubmVkU3RtdCAqcGxhbm5lZHN0bXQsIEludG9DbGF1c2Ug KmludG8sIEV4cGxhaW5TdGF0ZSAqZXMsCi0JCQkgICBjb25zdCBjaGFyICpxdWVyeVN0cmluZywg UGFyYW1MaXN0SW5mbyBwYXJhbXMsCitFeHBsYWluT25lUGxhbihQbGFubmVkU3RtdCAqcGxhbm5l ZHN0bXQsIEludG9DbGF1c2UgKmludG8sIE9pZCB0YXJnZXR2YXIsCisJCQkgICBFeHBsYWluU3Rh dGUgKmVzLCBjb25zdCBjaGFyICpxdWVyeVN0cmluZywgUGFyYW1MaXN0SW5mbyBwYXJhbXMsCiAJ CQkgICBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVudiwgY29uc3QgaW5zdHJfdGltZSAqcGxhbmR1 cmF0aW9uLAogCQkJICAgY29uc3QgQnVmZmVyVXNhZ2UgKmJ1ZnVzYWdlLAogCQkJICAgY29uc3Qg TWVtb3J5Q29udGV4dENvdW50ZXJzICptZW1fY291bnRlcnMpCkBAIC02OTEsNiArNzEyLDggQEAg RXhwbGFpbk9uZVBsYW4oUGxhbm5lZFN0bXQgKnBsYW5uZWRzdG10LCBJbnRvQ2xhdXNlICppbnRv LCBFeHBsYWluU3RhdGUgKmVzLAogCSAqLwogCWlmIChpbnRvKQogCQlkZXN0ID0gQ3JlYXRlSW50 b1JlbERlc3RSZWNlaXZlcihpbnRvKTsKKwllbHNlIGlmIChPaWRJc1ZhbGlkKHRhcmdldHZhcikp CisJCWRlc3QgPSBDcmVhdGVWYXJpYWJsZURlc3RSZWNlaXZlcih0YXJnZXR2YXIpOwogCWVsc2Ug aWYgKGVzLT5zZXJpYWxpemUgIT0gRVhQTEFJTl9TRVJJQUxJWkVfTk9ORSkKIAkJZGVzdCA9IENy ZWF0ZUV4cGxhaW5TZXJpYWxpemVEZXN0UmVjZWl2ZXIoZXMpOwogCWVsc2UKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3By ZXBhcmUuYwppbmRleCA5MDJiMDIyZjljLi40ZWEyYmZlYTRlIDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC9jb21tYW5kcy9wcmVwYXJlLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvcHJlcGFy ZS5jCkBAIC02NjQsOCArNjY0LDkgQEAgRXhwbGFpbkV4ZWN1dGVRdWVyeShFeGVjdXRlU3RtdCAq ZXhlY3N0bXQsIEludG9DbGF1c2UgKmludG8sIEV4cGxhaW5TdGF0ZSAqZXMsCiAJCVBsYW5uZWRT dG10ICpwc3RtdCA9IGxmaXJzdF9ub2RlKFBsYW5uZWRTdG10LCBwKTsKIAogCQlpZiAocHN0bXQt PmNvbW1hbmRUeXBlICE9IENNRF9VVElMSVRZKQotCQkJRXhwbGFpbk9uZVBsYW4ocHN0bXQsIGlu dG8sIGVzLCBxdWVyeV9zdHJpbmcsIHBhcmFtTEksIHBzdGF0ZS0+cF9xdWVyeUVudiwKLQkJCQkJ CSAgICZwbGFuZHVyYXRpb24sIChlcy0+YnVmZmVycyA/ICZidWZ1c2FnZSA6IE5VTEwpLAorCQkJ RXhwbGFpbk9uZVBsYW4ocHN0bXQsIGludG8sIEludmFsaWRPaWQsIGVzLCBxdWVyeV9zdHJpbmcs IHBhcmFtTEksCisJCQkJCQkgICBwc3RhdGUtPnBfcXVlcnlFbnYsICZwbGFuZHVyYXRpb24sCisJ CQkJCQkgICAoZXMtPmJ1ZmZlcnMgPyAmYnVmdXNhZ2UgOiBOVUxMKSwKIAkJCQkJCSAgIGVzLT5t ZW1vcnkgPyAmbWVtX2NvdW50ZXJzIDogTlVMTCk7CiAJCWVsc2UKIAkJCUV4cGxhaW5PbmVVdGls aXR5KHBzdG10LT51dGlsaXR5U3RtdCwgaW50bywgZXMsIHBzdGF0ZSwgcGFyYW1MSSk7CmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dy YW0ueQppbmRleCA2NzRlOGFmMjU2Li4zYmU5YTJkZDJkIDEwMDY0NAotLS0gYS9zcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKQEAgLTEyMTI5 LDcgKzEyMTI5LDggQEAgRXhwbGFpbmFibGVTdG10OgogCQkJfCBDcmVhdGVBc1N0bXQKIAkJCXwg Q3JlYXRlTWF0Vmlld1N0bXQKIAkJCXwgUmVmcmVzaE1hdFZpZXdTdG10Ci0JCQl8IEV4ZWN1dGVT dG10CQkJCQkvKiBieSBkZWZhdWx0IGFsbCBhcmUgJCQ9JDEgKi8KKwkJCXwgRXhlY3V0ZVN0bXQK KwkJCXwgTGV0U3RtdAkJCQkJCS8qIGJ5IGRlZmF1bHQgYWxsIGFyZSAkJD0kMSAqLwogCQk7CiAK IC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKgpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMv ZXhwbGFpbi5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvZXhwbGFpbi5oCmluZGV4IGVhNzQxOTk1 MWYuLmRlMjFmZTk3ZDAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NvbW1hbmRzL2V4cGxhaW4u aAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9leHBsYWluLmgKQEAgLTEwMyw3ICsxMDMsOCBA QCBleHRlcm4gdm9pZCBFeHBsYWluT25lVXRpbGl0eShOb2RlICp1dGlsaXR5U3RtdCwgSW50b0Ns YXVzZSAqaW50bywKIAkJCQkJCQkgIEV4cGxhaW5TdGF0ZSAqZXMsIFBhcnNlU3RhdGUgKnBzdGF0 ZSwKIAkJCQkJCQkgIFBhcmFtTGlzdEluZm8gcGFyYW1zKTsKIAotZXh0ZXJuIHZvaWQgRXhwbGFp bk9uZVBsYW4oUGxhbm5lZFN0bXQgKnBsYW5uZWRzdG10LCBJbnRvQ2xhdXNlICppbnRvLAorZXh0 ZXJuIHZvaWQgRXhwbGFpbk9uZVBsYW4oUGxhbm5lZFN0bXQgKnBsYW5uZWRzdG10LAorCQkJCQkJ ICAgSW50b0NsYXVzZSAqaW50bywgT2lkIHRhcmdldHZhciwKIAkJCQkJCSAgIEV4cGxhaW5TdGF0 ZSAqZXMsIGNvbnN0IGNoYXIgKnF1ZXJ5U3RyaW5nLAogCQkJCQkJICAgUGFyYW1MaXN0SW5mbyBw YXJhbXMsIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52LAogCQkJCQkJICAgY29uc3QgaW5zdHJf dGltZSAqcGxhbmR1cmF0aW9uLApkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Np b25fdmFyaWFibGVzLm91dAppbmRleCA5MGVlYzI3YTQzLi43N2E2NjU2NGVjIDEwMDY0NAotLS0g YS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9z cmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMjExOCwz ICsyMTE4LDQzIEBAIE5PVElDRTogIDIwIHQKIFNFVCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVu Y2VfY29udGV4dF9ndWFyZCBUTyBERUZBVUxUOwogRFJPUCBWQVJJQUJMRSB2YXIxOwogRFJPUCBU QUJMRSB2YXJ0ZXN0X3RhYjE7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBiaWdpbnQ7CitDUkVBVEUg VEFCTEUgdmFyX3RhYl90ZXN0X3RhYmxlKGEgaW50KTsKK0lOU0VSVCBJTlRPIHZhcl90YWJfdGVz dF90YWJsZSBTRUxFQ1QgKiBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKTsKK1ZBQ1VVTSBBTkFM WVpFIHZhcl90YWJfdGVzdF90YWJsZTsKK0VYUExBSU4gKENPU1RTIE9GRikgTEVUIHZhcjEgPSAo U0VMRUNUIGNvdW50KCopIEZST00gdmFyX3RhYl90ZXN0X3RhYmxlKTsKKyAgICAgICAgICAgICAg ICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBTRVQgU0VTU0lPTiBWQVJJQUJMRQorIFJlc3VsdAor ICAgSW5pdFBsYW4gMQorICAgICAtPiAgQWdncmVnYXRlCisgICAgICAgICAgIC0+ICBTZXEgU2Nh biBvbiB2YXJfdGFiX3Rlc3RfdGFibGUKKyg1IHJvd3MpCisKKy0tIHNob3VsZCBiZSBOVUxMCitT RUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAgIAorKDEgcm93KQorCitFWFBMQUlOIChD T1NUUyBPRkYsIFRJTUlORyBPRkYsIEFOQUxZWkUsIFNVTU1BUlkgT0ZGLCBCVUZGRVJTIE9GRikg TEVUIHZhcjEgPSAoU0VMRUNUIGNvdW50KCopIEZST00gdmFyX3RhYl90ZXN0X3RhYmxlKTsKKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIFNFVCBTRVNTSU9OIFZBUklBQkxFCisgUmVz dWx0IChhY3R1YWwgcm93cz0xIGxvb3BzPTEpCisgICBJbml0UGxhbiAxCisgICAgIC0+ICBBZ2dy ZWdhdGUgKGFjdHVhbCByb3dzPTEgbG9vcHM9MSkKKyAgICAgICAgICAgLT4gIFNlcSBTY2FuIG9u IHZhcl90YWJfdGVzdF90YWJsZSAoYWN0dWFsIHJvd3M9MTAgbG9vcHM9MSkKKyg1IHJvd3MpCisK Ky0tIHNob3VsZCBiZSAxMAorU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygx IHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJMRSB2YXJfdGFiX3Rlc3RfdGFi bGU7CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5z cWwgYi9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggMzMw YjBlNThmOC4uMjZlYzhkODkyMSAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vz c2lvbl92YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFy aWFibGVzLnNxbApAQCAtMTQ3NCwzICsxNDc0LDI0IEBAIFNFVCBzZXNzaW9uX3ZhcmlhYmxlc191 c2VfZmVuY2VfY29udGV4dF9ndWFyZCBUTyBERUZBVUxUOwogCiBEUk9QIFZBUklBQkxFIHZhcjE7 CiBEUk9QIFRBQkxFIHZhcnRlc3RfdGFiMTsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgYmlnaW50 OworCitDUkVBVEUgVEFCTEUgdmFyX3RhYl90ZXN0X3RhYmxlKGEgaW50KTsKKworSU5TRVJUIElO VE8gdmFyX3RhYl90ZXN0X3RhYmxlIFNFTEVDVCAqIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTAp OworCitWQUNVVU0gQU5BTFlaRSB2YXJfdGFiX3Rlc3RfdGFibGU7CisKK0VYUExBSU4gKENPU1RT IE9GRikgTEVUIHZhcjEgPSAoU0VMRUNUIGNvdW50KCopIEZST00gdmFyX3RhYl90ZXN0X3RhYmxl KTsKKworLS0gc2hvdWxkIGJlIE5VTEwKK1NFTEVDVCB2YXIxOworCitFWFBMQUlOIChDT1NUUyBP RkYsIFRJTUlORyBPRkYsIEFOQUxZWkUsIFNVTU1BUlkgT0ZGLCBCVUZGRVJTIE9GRikgTEVUIHZh cjEgPSAoU0VMRUNUIGNvdW50KCopIEZST00gdmFyX3RhYl90ZXN0X3RhYmxlKTsKKworLS0gc2hv dWxkIGJlIDEwCitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJM RSB2YXJfdGFiX3Rlc3RfdGFibGU7Ci0tIAoyLjQ3LjEKCg== --0000000000007bfa26062b3fa8d1 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250109-0009-dynamic-check-of-usage-of-session-variable-fences.patch" Content-Disposition: attachment; filename="v20250109-0009-dynamic-check-of-usage-of-session-variable-fences.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5ox16ov13 RnJvbSBmNmFjNDkyNzY3OTg4NzIzZDIyYzg3NTY4M2I0NzJlMTM1YTE0N2FmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTMgRGVjIDIwMjQgMDY6Mjg6NDUgKzAxMDAKU3ViamVjdDogW1BBVENIIDA5 LzIyXSBkeW5hbWljIGNoZWNrIG9mIHVzYWdlIG9mIHNlc3Npb24gdmFyaWFibGUgZmVuY2VzCgpU aGlzIHBhdGNoIGFsbG93cyB0byBzcGVjaWZ5IGR5bmFtaWMgY29udGV4dCB3aGVyZSBmZW5jaW5n Cm9mIHNlc3Npb24gdmFyaWFibGVzIGlzIHJlcXVpcmVkLiBQb3NzaWJsZSBjb250ZXh0cyBhcmUK bm9uZSwgbm9zcGkgb3IgYWxsLiBXaXRoIHRoaXMgY2hlY2sgaXMgcG9zc2libGUgdG8gZm9yY2UK dmFyaWFibGUgZmVuY2luZyBvdXRzaWRlIHN0b3JlZCBwcm9jZWR1cmVzLgotLS0KIGRvYy9zcmMv c2dtbC9jb25maWcuc2dtbCAgICAgICAgICAgICAgICAgICAgICB8IDU2ICsrKysrKysrKysrKwog ZG9jL3NyYy9zZ21sL2RkbC5zZ21sICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMgKy0KIHNy Yy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDMzICsrKysrKysK IHNyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMgICAgICAgICAgICAgICB8ICA0ICsKIHNy Yy9iYWNrZW5kL2V4ZWN1dG9yL3NwaS5jICAgICAgICAgICAgICAgICAgICB8ICA4ICsrCiBzcmMv YmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyAgICAgICAgICAgfCAxOSArKysrCiBzcmMv YmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUgfCAgMSArCiBzcmMvaW5j bHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggICAgICAgfCAxNiArKysrCiBzcmMvaW5j bHVkZS9leGVjdXRvci9zcGkuaCAgICAgICAgICAgICAgICAgICAgfCAgMSArCiAuLi4vcmVncmVz cy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQgICAgfCA5MCArKysrKysrKysrKysrKysr KysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCA3MyAr KysrKysrKysrKysrKysKIDExIGZpbGVzIGNoYW5nZWQsIDMwMyBpbnNlcnRpb25zKCspLCAxIGRl bGV0aW9uKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sIGIvZG9jL3Ny Yy9zZ21sL2NvbmZpZy5zZ21sCmluZGV4IDViOTlmN2ZjNDUuLjFjYWMxY2MyZTYgMTAwNjQ0Ci0t LSBhL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNn bWwKQEAgLTEwODY3LDYgKzEwODY3LDYyIEBAIERFVEFJTDogIFNlc3Npb24gdmFyaWFibGVzIGNh biBiZSBzaGFkb3dlZCBieSBjb2x1bW5zLCByb3V0aW5lJ3MgdmFyaWFibGVzIGFuZCByCiAgICAg ICA8L2xpc3RpdGVtPgogICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAgICA8dmFybGlzdGVudHJ5 IGlkPSJndWMtc2Vzc2lvbi12YXJpYWJsZXMtdXNlLWZlbmNlLWNvbnRleHQtZ3VhcmQiIHhyZWZs YWJlbD0ic2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRfZ3VhcmQiPgorICAgICAg PHRlcm0+PHZhcm5hbWU+c2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRfZ3VhcmQ8 L3Zhcm5hbWU+ICg8dHlwZT5ib29sZWFuPC90eXBlPikKKyAgICAgIDxpbmRleHRlcm0+CisgICAg ICAgPHByaW1hcnk+PHZhcm5hbWU+c2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRf Z3VhcmQ8L3Zhcm5hbWU+IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVyPC9wcmltYXJ5PgorICAgICAg PC9pbmRleHRlcm0+CisgICAgICA8L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICA8cGFy YT4KKyAgICAgICBXaGVuIG9uLCBhbiBlcnJvciBpcyByYWlzZWQgd2hlbiBhIHNlc3Npb24gdmFy aWFibGUgaWRlbnRpZmllciBpcyB1c2VkCisgICAgICAgaW5zaWRlIGEgcXVlcnkgd2l0aG91dCB2 YXJpYWJsZSBmZW5jZSBpbiBjaG9vc2VkIGNvbnRleHQuIFRoZSBkZWZhdWx0CisgICAgICAgaXMg PGxpdGVyYWw+bm9uZTwvbGl0ZXJhbD4uIFRoZSBlcnJvciBpcyByYWlzZWQgb25seSB3aGVuIHZh cmlhYmxlIGlzCisgICAgICAgdXNlZCBpbiBwbGFjZXMsIHdoZXJlIGFuIGNvbGxpc2lvbnMgd2l0 aCBjb2x1bW4gbmFtZXMgaXMgcG9zc2libGUgKGFuZAorICAgICAgIHdoZW4gdmFyaWFibGUgZmVu Y2VzIGFyZSBwb3NzaWJsZSkuIFRoZSBhbGxvd2VkIHZhbHVlcyBvZgorICAgICAgIDx2YXJuYW1l PnNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV9jb250ZXh0X2d1YXJkPC92YXJuYW1lPiBhcmUK KyAgICAgICA8bGl0ZXJhbD5ub25lPC9saXRlcmFsPiAoYWxsb3cgdXNpbmcgc2Vzc2lvbiB2YXJp YWJsZXMgd2l0aG91dAorICAgICAgIHZhcmlhYmxlJ3MgZmVuY2VzIGFsd2F5cyksIDxsaXRlcmFs PmFsbDwvbGl0ZXJhbD4gKHJlcXVpcmVzIHZhcmlhYmxlCisgICAgICAgZmVuY2luZyBldmVyeXdo ZXJlKSwgYW5kIDxsaXRlcmFsPm5vc3BpPC9saXRlcmFsPiAocmVxdWlyZXMgdmFyaWFibGUKKyAg ICAgICBmZW5jaW5nIG91dHNpZGUgU1BJIGNvbnRleHRzIChvdXRzaWRlIHN0b3JlZCBwcm9jZWR1 cmVzKS4KKzxwcm9ncmFtbGlzdGluZz4KK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vf Y29udGV4dF9ndWFyZCBUTyAnbm9zcGknOworQ1JFQVRFIFZBUklBQkxFIGEgaW50OworCitMRVQg YSA9IDEwOworRE8gJCQKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAnYSA9ICUnLCBhOworRU5EOwor JCQ7CisKK1NFTEVDVCBhOworU0VMRUNUIFZBUklBQkxFKHMpOworPC9wcm9ncmFtbGlzdGluZz4K KworPHNjcmVlbj4KK05PVElDRTogIGEgPSAxMAorCitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUg InB1YmxpYy5hIiBpcyBub3QgdXNlZCBpbnNpZGUgdmFyaWFibGUgZmVuY2UKK0RFVEFJTDogIFRo ZXJlIGlzIGEgcmlzayBvZiB1bndhbnRlZCB1c2FnZSBvZiBzZXNzaW9uIHZhcmlhYmxlLgorSElO VDogIFVzZSB2YXJpYWJsZSBmZW5jZSAiVkFSSUFCTEUodmFybmFtZSkgZm9yIGFjY2VzcyB0byB2 YXJpYWJsZSIuCisKK1NFTEVDVCB2YXJpYWJsZShhKTsKKyBhICAKKy0tLS0KKyAxMAorKDEgcm93 KQorPC9zY3JlZW4+CisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAgIFdo ZW4geW91IGFmcmFpZCBhYm91dCB1bndhbnRlZCB1c2FnZSBvZiBzZXNzaW9uIHZhcmlhYmxlcywg c2V0CisgICAgICAgIHRoaXMgZmVhdHVyZSB0byA8bGl0ZXJhbD5hbGw8L2xpdGVyYWw+IG9yIG1p bmltYWx5IHRvCisgICAgICAgIDxsaXRlcmFsPm5vc3BpPC9saXRlcmFsPi4KKyAgICAgICA8L3Bh cmE+CisgICAgICA8L2xpc3RpdGVtPgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKwogICAgICA8dmFy bGlzdGVudHJ5IGlkPSJndWMtc2Vzc2lvbi12YXJpYWJsZXMtdXNlLWZlbmNlLXdhcm5pbmctZ3Vh cmQiIHhyZWZsYWJlbD0ic2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5pbmdfZ3VhcmQi PgogICAgICAgPHRlcm0+PHZhcm5hbWU+c2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5p bmdfZ3VhcmQ8L3Zhcm5hbWU+ICg8dHlwZT5ib29sZWFuPC90eXBlPikKICAgICAgIDxpbmRleHRl cm0+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZGRs LnNnbWwKaW5kZXggYTU2NjQ2MDRlNi4uNWM1ODFlZTE0MyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL2RkbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApAQCAtNTQ0Miw3ICs1NDQy LDggQEAgU0VMRUNUIFZBUklBQkxFKGN1cnJlbnRfdXNlcl9pZCk7CiAgICBXaGVuIHRoZXJlIGlz IGEgcmlzayBvZiBwb3NzaWJsZSBjb2xsaXNpb25zIGJldHdlZW4gdmFyaWFibGUgaWRlbnRpZmll cnMKICAgIGFuZCBjb2x1bW4gbmFtZXMsIHRoZW4gdXNpbmcgdmFyaWFibGUgZmVuY2Ugc3ludGF4 IGNhbiBiZSByZWNvbW1lbmRlZC4KICAgIFVzYWdlIHNlc3Npb24gdmFyaWFibGUgd2l0aG91dCB2 YXJpYWJsZSBmZW5jZSBjYW4gYmUgZGV0ZWN0ZWQgYnkKLSAgIHdhcm5pbmcgPHhyZWYgbGlua2Vu ZD0iZ3VjLXNlc3Npb24tdmFyaWFibGVzLXVzZS1mZW5jZS13YXJuaW5nLWd1YXJkIi8+LgorICAg d2FybmluZyA8eHJlZiBsaW5rZW5kPSJndWMtc2Vzc2lvbi12YXJpYWJsZXMtdXNlLWZlbmNlLXdh cm5pbmctZ3VhcmQiLz4KKyAgIG9yIGJ5IGNoZWNrIDx4cmVmIGxpbmtlbmQ9Imd1Yy1zZXNzaW9u LXZhcmlhYmxlcy11c2UtZmVuY2UtY29udGV4dC1ndWFyZCIvPi4KICAgPC9wYXJhPgogICA8L3Nl Y3QxPgogCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxl LmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKaW5kZXggNGEyOWVk NmUwYy4uN2MxNTk4NjBiNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lv bl92YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUu YwpAQCAtMTcsNiArMTcsNyBAQAogI2luY2x1ZGUgImFjY2Vzcy94YWN0LmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFi bGUuaCIKKyNpbmNsdWRlICJleGVjdXRvci9zcGkuaCIKICNpbmNsdWRlICJleGVjdXRvci9zdmFy aWFibGVSZWNlaXZlci5oIgogI2luY2x1ZGUgImZ1bmNhcGkuaCIKICNpbmNsdWRlICJtaXNjYWRt aW4uaCIKQEAgLTMxLDYgKzMyLDEzIEBACiAjaW5jbHVkZSAidXRpbHMvc25hcG1nci5oIgogI2lu Y2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCiAKKy8qCisgKiBUaGUgc2Vzc2lvbiB2YXJpYWJsZXMg dXNlIGZlbmNlIGNvbnRleHQgYWxsb3cgdG8gc3BlY2lmeQorICogdGhlIGNvbnRleHRzIHdoZXJl IHVzaW5nIHNlc3Npb24gdmFyaWFibGUgZmVuY2VzIGFyZSByZXF1aXJlZC4KKyAqLworaW50CQlz ZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2VfY29udGV4dF9ndWFyZCA9CisJCQkJCQkJCVNFU1NJ T05WQVJJQUJMRV9VU0VfRkVOQ0VfQ09OVEVYVF9HVUFSRF9OT05FOworCiAvKgogICogVGhlIHZh bHVlcyBvZiBzZXNzaW9uIHZhcmlhYmxlcyBhcmUgc3RvcmVkIGluIHRoZSBiYWNrZW5kJ3MgcHJp dmF0ZSBtZW1vcnkKICAqIGluIHRoZSBkZWRpY2F0ZWQgbWVtb3J5IGNvbnRleHQgU1ZhcmlhYmxl TWVtb3J5Q29udGV4dCBpbiBiaW5hcnkgZm9ybWF0LgpAQCAtNzkwLDMgKzc5OCwyOCBAQCBSZXNl dFNlc3Npb25WYXJpYWJsZXModm9pZCkKIAlpZiAoU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCAhPSBO VUxMKQogCQlNZW1vcnlDb250ZXh0UmVzZXQoU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCk7CiB9CisK Ky8qCisgKiBSYWlzZSBlcnJvciB3aGVuIHVuZmVuY2VkIHZhcmlhYmxlIGlzIHVzZWQgaW4gd3Jv bmcgY29udGV4dC4KKyAqIFRoaXMgY2hlY2sgYWxsb3dzIHRvIGZvcmNlIHNlc3Npb24gdmFyaWFi bGUgZmVuY2luZyBvdXRzaWRlCisgKiBzdG9yZWQgcHJvY2VkdXJlcyBlbnZpcm9ubWVudC4KKyAq Lwordm9pZAorU2Vzc2lvblZhcmlhYmxlc1VzZUZlbmNlQ29udGV4dENoZWNrKE9pZCB2YXJpZCwg Ym9vbCBpc19mZW5jZWQpCit7CisJaWYgKGlzX2ZlbmNlZCkKKwkJcmV0dXJuOworCisJaWYgKCgo c2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRfZ3VhcmQgPT0KKwkJCVNFU1NJT05W QVJJQUJMRV9VU0VfRkVOQ0VfQ09OVEVYVF9HVUFSRF9BTEwpICYmICFpc19mZW5jZWQpIHx8CisJ CSgoc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRfZ3VhcmQgPT0KKwkJCVNFU1NJ T05WQVJJQUJMRV9VU0VfRkVOQ0VfQ09OVEVYVF9HVUFSRF9OT1NQSSkgJiYKKwkJCQkhU1BJX2lu c2lkZV9zcGlfY29udGV4dCgpKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJD T0RFX0lOVkFMSURfQ09MVU1OX1JFRkVSRU5DRSksCisJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJp YWJsZSBcIiVzLiVzXCIgaXMgbm90IHVzZWQgaW5zaWRlIHZhcmlhYmxlIGZlbmNlIiwKKwkJCQkg Z2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkp LAorCQkJCSBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSksCisJCQkJIGVycmRldGFp bCgiVGhlcmUgaXMgYSByaXNrIG9mIHVud2FudGVkIHVzYWdlIG9mIHNlc3Npb24gdmFyaWFibGUu IiksCisJCQkJIGVycmhpbnQoIlVzZSB2YXJpYWJsZSBmZW5jZSBcIlZBUklBQkxFKHZhcm5hbWUp IGZvciBhY2Nlc3MgdG8gdmFyaWFibGVcIi4iKSkpOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tl bmQvZXhlY3V0b3IvZXhlY0V4cHIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMK aW5kZXggNzU0MWI1YWFjNy4uMTMzNDg0MjM5OSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhl Y3V0b3IvZXhlY0V4cHIuYworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jCkBA IC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9vYmplY3RhY2Nlc3MuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNp bmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3Iv ZXhlY0V4cHIuaCIKICNpbmNsdWRlICJleGVjdXRvci9ub2RlU3VicGxhbi5oIgogI2luY2x1ZGUg ImZ1bmNhcGkuaCIKQEAgLTk5OCw2ICs5OTksOSBAQCBFeGVjSW5pdEV4cHJSZWMoRXhwciAqbm9k ZSwgRXhwclN0YXRlICpzdGF0ZSwKIAkJCQkJCQlTZXNzaW9uVmFyaWFibGVWYWx1ZSAqZXNfc2Vz c2lvbl92YXJpYWJsZXMgPSBOVUxMOwogCQkJCQkJCVNlc3Npb25WYXJpYWJsZVZhbHVlICp2YXI7 CiAKKwkJCQkJCQlTZXNzaW9uVmFyaWFibGVzVXNlRmVuY2VDb250ZXh0Q2hlY2socGFyYW0tPnBh cmFtdmFyaWQsCisJCQkJCQkJCQkJCQkJCQkJIHBhcmFtLT5wYXJhbXZhcmZlbmNlZCk7CisKIAkJ CQkJCQlpZiAoc3RhdGUtPnBhcmVudCAmJiBzdGF0ZS0+cGFyZW50LT5zdGF0ZSkKIAkJCQkJCQl7 CiAJCQkJCQkJCWVzX3Nlc3Npb25fdmFyaWFibGVzID0gc3RhdGUtPnBhcmVudC0+c3RhdGUtPmVz X3Nlc3Npb25fdmFyaWFibGVzOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3Bp LmMgYi9zcmMvYmFja2VuZC9leGVjdXRvci9zcGkuYwppbmRleCBlY2IyZTRjY2FhLi40Y2U2YmM1 ZjI5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9leGVjdXRvci9zcGkuYworKysgYi9zcmMvYmFj a2VuZC9leGVjdXRvci9zcGkuYwpAQCAtNTkwLDYgKzU5MCwxNCBAQCBTUElfaW5zaWRlX25vbmF0 b21pY19jb250ZXh0KHZvaWQpCiAJcmV0dXJuIHRydWU7CiB9CiAKKy8qCisgKiBBcmUgd2UgZXhl Y3V0ZWQgaW5zaWRlIGEgU1BJPworICovCitib29sCitTUElfaW5zaWRlX3NwaV9jb250ZXh0KHZv aWQpCit7CisJcmV0dXJuIChfU1BJX2N1cnJlbnQgIT0gTlVMTCk7Cit9CiAKIC8qIFBhcnNlLCBw bGFuLCBhbmQgZXhlY3V0ZSBhIHF1ZXJ5IHN0cmluZyAqLwogaW50CmRpZmYgLS1naXQgYS9zcmMv YmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2Mv Z3VjX3RhYmxlcy5jCmluZGV4IGUwNDQ0YTdiNTEuLjI0Njc0ODAwYWMgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxz L21pc2MvZ3VjX3RhYmxlcy5jCkBAIC00MCw2ICs0MCw3IEBACiAjaW5jbHVkZSAiY2F0YWxvZy9z dG9yYWdlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvYXN5bmMuaCIKICNpbmNsdWRlICJjb21tYW5k cy9ldmVudF90cmlnZ2VyLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5o IgogI2luY2x1ZGUgImNvbW1hbmRzL3RhYmxlc3BhY2UuaCIKICNpbmNsdWRlICJjb21tYW5kcy90 cmlnZ2VyLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdXNlci5oIgpAQCAtNDIzLDYgKzQyNCwxMyBA QCBzdGF0aWMgY29uc3Qgc3RydWN0IGNvbmZpZ19lbnVtX2VudHJ5IGRlYnVnX2xvZ2ljYWxfcmVw bGljYXRpb25fc3RyZWFtaW5nX29wdGlvbgogCXtOVUxMLCAwLCBmYWxzZX0KIH07CiAKK3N0YXRp YyBjb25zdCBzdHJ1Y3QgY29uZmlnX2VudW1fZW50cnkgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2Zl bmNlX2NvbnRleHRfZ3VhcmRfb3B0aW9uc1tdID0geworCXsibm9uZSIsIFNFU1NJT05WQVJJQUJM RV9VU0VfRkVOQ0VfQ09OVEVYVF9HVUFSRF9OT05FLCBmYWxzZX0sCisJeyJhbGwiLCBTRVNTSU9O VkFSSUFCTEVfVVNFX0ZFTkNFX0NPTlRFWFRfR1VBUkRfQUxMLCBmYWxzZX0sCisJeyJub3NwaSIs IFNFU1NJT05WQVJJQUJMRV9VU0VfRkVOQ0VfQ09OVEVYVF9HVUFSRF9OT1NQSSwgZmFsc2V9LAor CXtOVUxMLCAwLCBmYWxzZX0KK307CisKIFN0YXRpY0Fzc2VydERlY2wobGVuZ3Rob2Yoc3NsX3By b3RvY29sX3ZlcnNpb25zX2luZm8pID09IChQR19UTFMxXzNfVkVSU0lPTiArIDIpLAogCQkJCSAi YXJyYXkgbGVuZ3RoIG1pc21hdGNoIik7CiAKQEAgLTUyNTMsNiArNTI2MSwxNyBAQCBzdHJ1Y3Qg Y29uZmlnX2VudW0gQ29uZmlndXJlTmFtZXNFbnVtW10gPQogCQlOVUxMLCBOVUxMLCBOVUxMCiAJ fSwKIAorCXsKKwkJeyJzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2VfY29udGV4dF9ndWFyZCIs IFBHQ19VU0VSU0VULCBDTElFTlRfQ09OTl9TVEFURU1FTlQsCisJCQlnZXR0ZXh0X25vb3AoIkNo b29zZXMgdGhlIGNvbnRleHQgd2hlcmUgc2Vzc2lvbiB2YXJpYWJsZXMgc2hvdWxkIGJlIHVzZWQg aW5zaWRlIGZlbmNlLiIpLAorCQkJTlVMTAorCQl9LAorCQkmc2Vzc2lvbl92YXJpYWJsZXNfdXNl X2ZlbmNlX2NvbnRleHRfZ3VhcmQsCisJCVNFU1NJT05WQVJJQUJMRV9VU0VfRkVOQ0VfQ09OVEVY VF9HVUFSRF9OT05FLCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2VfY29udGV4dF9ndWFyZF9v cHRpb25zLAorCQlOVUxMLCBOVUxMLCBOVUxMCisJfSwKKworCiAJLyogRW5kLW9mLWxpc3QgbWFy a2VyICovCiAJewogCQl7TlVMTCwgMCwgMCwgTlVMTCwgTlVMTH0sIE5VTEwsIDAsIE5VTEwsIE5V TEwsIE5VTEwsIE5VTEwKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdy ZXNxbC5jb25mLnNhbXBsZSBiL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25m LnNhbXBsZQppbmRleCAxNWQ2YjMxMmUxLi5iNmI2OGZiYWQ0IDEwMDY0NAotLS0gYS9zcmMvYmFj a2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUKKysrIGIvc3JjL2JhY2tlbmQv dXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCkBAIC03MTksNiArNzE5LDcgQEAgYXV0 b3ZhY3V1bV93b3JrZXJfc2xvdHMgPSAxNgkjIGF1dG92YWN1dW0gd29ya2VyIHNsb3RzIHRvIGFs bG9jYXRlCiAjc2Vzc2lvbl9yZXBsaWNhdGlvbl9yb2xlID0gJ29yaWdpbicKICNzZXNzaW9uX3Zh cmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyA9IG9mZgogI3Nlc3Npb25fdmFyaWFibGVzX3VzZV9m ZW5jZV93YXJuaW5nX2d1YXJkID0gb2ZmCisjc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2Nv bnRleHRfZ3VhcmQgPSAnbm9uZScKICNzdGF0ZW1lbnRfdGltZW91dCA9IDAJCQkJIyBpbiBtaWxs aXNlY29uZHMsIDAgaXMgZGlzYWJsZWQKICN0cmFuc2FjdGlvbl90aW1lb3V0ID0gMAkJCSMgaW4g bWlsbGlzZWNvbmRzLCAwIGlzIGRpc2FibGVkCiAjbG9ja190aW1lb3V0ID0gMAkJCQkjIGluIG1p bGxpc2Vjb25kcywgMCBpcyBkaXNhYmxlZApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvY29tbWFu ZHMvc2Vzc2lvbl92YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5oCmluZGV4IGQzY2M3OWI1NjAuLmU1OGE1YTAxMTAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNs dWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaAorKysgYi9zcmMvaW5jbHVkZS9jb21tYW5k cy9zZXNzaW9uX3ZhcmlhYmxlLmgKQEAgLTMwLDUgKzMwLDIxIEBAIGV4dGVybiB2b2lkIEV4ZWN1 dGVMZXRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGV0U3RtdCAqc3RtdCwgUGFyYW1MaXN0SW5m byBwYXJhCiAJCQkJCQkgICBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVudiwgUXVlcnlDb21wbGV0 aW9uICpxYyk7CiAKIGV4dGVybiB2b2lkIFJlc2V0U2Vzc2lvblZhcmlhYmxlcyh2b2lkKTsKK2V4 dGVybiB2b2lkIFNlc3Npb25WYXJpYWJsZXNVc2VGZW5jZUNvbnRleHRDaGVjayhPaWQgdmFyaWQs IGJvb2wgaXNfZmVuY2VkKTsKKworLyoKKyAqIFNwZWNpZnkgdGhlIGR5bmFtaWMgY29udGV4dCB3 aGVyZSB2YXJpYWJsZSBmZW5jZSBpcyByZXF1aXJlZAorICovCit0eXBlZGVmIGVudW0gU2Vzc2lv blZhcmlhYmxlc1VzZUZlbmNlQ29udGV4dEd1YXJkCit7CisJLyogRGlzYWJsZSBmZW5jZSB1c2Fn ZSBjb250ZXh0IGd1YXJkICovCisJU0VTU0lPTlZBUklBQkxFX1VTRV9GRU5DRV9DT05URVhUX0dV QVJEX05PTkUsCisJLyogRW5hYmxlIGZlbmNlIHVzYWdlIGNvbnRleHQgZ3VhcmQgZXZlcnl3aGVy ZSAqLworCVNFU1NJT05WQVJJQUJMRV9VU0VfRkVOQ0VfQ09OVEVYVF9HVUFSRF9BTEwsCisJLyog RW5hYmxlIGZlbmNlIHVzYWdlIGNvbnRleHQgZ3VhcmQgd2hlbiBTUEkgaXMgbm90IHVzZWQgKi8K KwlTRVNTSU9OVkFSSUFCTEVfVVNFX0ZFTkNFX0NPTlRFWFRfR1VBUkRfTk9TUEksCit9IFNlc3Np b25WYXJpYWJsZXNVc2VGZW5jZUNvbnRleHRHdWFyZDsKKworZXh0ZXJuIFBHRExMSU1QT1JUIGlu dCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2VfY29udGV4dF9ndWFyZDsKIAogI2VuZGlmCmRp ZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9leGVjdXRvci9zcGkuaCBiL3NyYy9pbmNsdWRlL2V4ZWN1 dG9yL3NwaS5oCmluZGV4IGQwNjRkMWE5YjcuLjQ2OTBhOTVmMzkgMTAwNjQ0Ci0tLSBhL3NyYy9p bmNsdWRlL2V4ZWN1dG9yL3NwaS5oCisrKyBiL3NyYy9pbmNsdWRlL2V4ZWN1dG9yL3NwaS5oCkBA IC0yMDMsNSArMjAzLDYgQEAgZXh0ZXJuIHZvaWQgU1BJX3JvbGxiYWNrX2FuZF9jaGFpbih2b2lk KTsKIGV4dGVybiB2b2lkIEF0RU9YYWN0X1NQSShib29sIGlzQ29tbWl0KTsKIGV4dGVybiB2b2lk IEF0RU9TdWJYYWN0X1NQSShib29sIGlzQ29tbWl0LCBTdWJUcmFuc2FjdGlvbklkIG15U3ViaWQp OwogZXh0ZXJuIGJvb2wgU1BJX2luc2lkZV9ub25hdG9taWNfY29udGV4dCh2b2lkKTsKK2V4dGVy biBib29sIFNQSV9pbnNpZGVfc3BpX2NvbnRleHQodm9pZCk7CiAKICNlbmRpZgkJCQkJCQkvKiBT UElfSCAqLwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zh cmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVz Lm91dAppbmRleCA5YWMwOGExNGUwLi45MGVlYzI3YTQzIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMjAyOCwzICsyMDI4LDkzIEBA IERST1AgU0NIRU1BIHRlc3R2YXI7CiBTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dh cm5pbmcgVE8gREVGQVVMVDsKIFNFVCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vfd2Fybmlu Z19ndWFyZCBUTyBERUZBVUxUOwogU0VUIHNlYXJjaF9wYXRoIFRPIERFRkFVTFQ7CistLSB0ZXN0 IHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV9jb250ZXh0X2d1YXJkCitDUkVBVEUgVkFSSUFC TEUgdmFyMSBBUyBpbnQ7CitDUkVBVEUgVEFCTEUgdmFydGVzdF90YWIxKGEgaW50KTsKK0xFVCB2 YXIxID0gMjA7CitJTlNFUlQgSU5UTyB2YXJ0ZXN0X3RhYjEgVkFMVUVTKDIwKTsKK1NFVCBzZXNz aW9uX3ZhcmlhYmxlc191c2VfZmVuY2VfY29udGV4dF9ndWFyZCBUTyAnbm9uZSc7CistLSBzaG91 bGQgYmUgb2sKK1NFTEVDVCB2YXIxLCBWQVJJQUJMRSh2YXIxKTsKKyB2YXIxIHwgdmFyMSAKKy0t LS0tLSstLS0tLS0KKyAgIDIwIHwgICAyMAorKDEgcm93KQorCitETyAkJAorREVDTEFSRSB0IGlu dDsKK0JFR0lOCisgIFNFTEVDVCBhIEZST00gdmFydGVzdF90YWIxIFdIRVJFIGEgPSB2YXIxIElO VE8gdDsKKyAgUkFJU0UgTk9USUNFICclICUnLCB2YXIxLCB2YXIxID0gdDsKKyAgU0VMRUNUIGEg RlJPTSB2YXJ0ZXN0X3RhYjEgV0hFUkUgYSA9IFZBUklBQkxFKHZhcjEpIElOVE8gdDsKKyAgUkFJ U0UgTk9USUNFICclICUnLCBWQVJJQUJMRSh2YXIxKSwgVkFSSUFCTEUodmFyMSkgPSB0OworRU5E OworJCQ7CitOT1RJQ0U6ICAyMCB0CitOT1RJQ0U6ICAyMCB0CitTRVQgc2Vzc2lvbl92YXJpYWJs ZXNfdXNlX2ZlbmNlX2NvbnRleHRfZ3VhcmQgVE8gJ2FsbCc7CistLSBzaG91bGQgZmFpbAorU0VM RUNUIHZhcjEsIFZBUklBQkxFKHZhcjEpOworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlICJwdWJs aWMudmFyMSIgaXMgbm90IHVzZWQgaW5zaWRlIHZhcmlhYmxlIGZlbmNlCitERVRBSUw6ICBUaGVy ZSBpcyBhIHJpc2sgb2YgdW53YW50ZWQgdXNhZ2Ugb2Ygc2Vzc2lvbiB2YXJpYWJsZS4KK0hJTlQ6 ICBVc2UgdmFyaWFibGUgZmVuY2UgIlZBUklBQkxFKHZhcm5hbWUpIGZvciBhY2Nlc3MgdG8gdmFy aWFibGUiLgorLS0gc2hvdWxkIGZhaWwKK0RPICQkCitERUNMQVJFIHQgaW50OworQkVHSU4KKyAg U0VMRUNUIGEgRlJPTSB2YXJ0ZXN0X3RhYjEgV0hFUkUgYSA9IHZhcjEgSU5UTyB0OworRU5EOwor JCQ7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIiBpcyBub3QgdXNlZCBp bnNpZGUgdmFyaWFibGUgZmVuY2UKK0RFVEFJTDogIFRoZXJlIGlzIGEgcmlzayBvZiB1bndhbnRl ZCB1c2FnZSBvZiBzZXNzaW9uIHZhcmlhYmxlLgorSElOVDogIFVzZSB2YXJpYWJsZSBmZW5jZSAi VkFSSUFCTEUodmFybmFtZSkgZm9yIGFjY2VzcyB0byB2YXJpYWJsZSIuCitDT05URVhUOiAgU1FM IHN0YXRlbWVudCAiU0VMRUNUIGEgRlJPTSB2YXJ0ZXN0X3RhYjEgV0hFUkUgYSA9IHZhcjEiCitQ TC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDQgYXQgU1FMIHN0YXRlbWVu dAorLS0gc2hvdWxkIGZhaWwKK0RPICQkCitERUNMQVJFIHQgaW50IERFRkFVTFQgMjA7CitCRUdJ TgorICBSQUlTRSBOT1RJQ0UgJyUgJScsIHZhcjEsIHZhcjEgPSB0OworRU5EOworJCQ7CitFUlJP UjogIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIiBpcyBub3QgdXNlZCBpbnNpZGUgdmFy aWFibGUgZmVuY2UKK0RFVEFJTDogIFRoZXJlIGlzIGEgcmlzayBvZiB1bndhbnRlZCB1c2FnZSBv ZiBzZXNzaW9uIHZhcmlhYmxlLgorSElOVDogIFVzZSB2YXJpYWJsZSBmZW5jZSAiVkFSSUFCTEUo dmFybmFtZSkgZm9yIGFjY2VzcyB0byB2YXJpYWJsZSIuCitDT05URVhUOiAgUEwvcGdTUUwgZXhw cmVzc2lvbiAidmFyMSIKK1BML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUg NCBhdCBSQUlTRQorLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgVkFSSUFCTEUodmFyMSksIFZBUklB QkxFKHZhcjEpOworIHZhcjEgfCB2YXIxIAorLS0tLS0tKy0tLS0tLQorICAgMjAgfCAgIDIwCiso MSByb3cpCisKK0RPICQkCitERUNMQVJFIHQgaW50OworQkVHSU4KKyAgU0VMRUNUIGEgRlJPTSB2 YXJ0ZXN0X3RhYjEgV0hFUkUgYSA9IFZBUklBQkxFKHZhcjEpIElOVE8gdDsKKyAgUkFJU0UgTk9U SUNFICclICUnLCBWQVJJQUJMRSh2YXIxKSwgVkFSSUFCTEUodmFyMSkgPSB0OworRU5EOworJCQ7 CitOT1RJQ0U6ICAyMCB0CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRf Z3VhcmQgVE8gJ25vc3BpJzsKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgdmFyMSwgVkFSSUFCTEUo dmFyMSk7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIiBpcyBub3QgdXNl ZCBpbnNpZGUgdmFyaWFibGUgZmVuY2UKK0RFVEFJTDogIFRoZXJlIGlzIGEgcmlzayBvZiB1bndh bnRlZCB1c2FnZSBvZiBzZXNzaW9uIHZhcmlhYmxlLgorSElOVDogIFVzZSB2YXJpYWJsZSBmZW5j ZSAiVkFSSUFCTEUodmFybmFtZSkgZm9yIGFjY2VzcyB0byB2YXJpYWJsZSIuCistLSBzaG91bGQg YmUgb2sKK0RPICQkCitERUNMQVJFIHQgaW50OworQkVHSU4KKyAgU0VMRUNUIGEgRlJPTSB2YXJ0 ZXN0X3RhYjEgV0hFUkUgYSA9IHZhcjEgSU5UTyB0OworICBSQUlTRSBOT1RJQ0UgJyUgJScsIHZh cjEsIHZhcjEgPSB0OworICBTRUxFQ1QgYSBGUk9NIHZhcnRlc3RfdGFiMSBXSEVSRSBhID0gVkFS SUFCTEUodmFyMSkgSU5UTyB0OworICBSQUlTRSBOT1RJQ0UgJyUgJScsIFZBUklBQkxFKHZhcjEp LCBWQVJJQUJMRSh2YXIxKSA9IHQ7CitFTkQ7CiskJDsKK05PVElDRTogIDIwIHQKK05PVElDRTog IDIwIHQKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2VfY29udGV4dF9ndWFyZCBUTyBE RUZBVUxUOworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJMRSB2YXJ0ZXN0X3RhYjE7CmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgYi9z cmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKaW5kZXggYzU0MjAxODNk OS4uMzMwYjBlNThmOCAxMDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92 YXJpYWJsZXMuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVz LnNxbApAQCAtMTQwMSwzICsxNDAxLDc2IEBAIERST1AgU0NIRU1BIHRlc3R2YXI7CiBTRVQgc2Vz c2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gREVGQVVMVDsKIFNFVCBzZXNzaW9u X3ZhcmlhYmxlc191c2VfZmVuY2Vfd2FybmluZ19ndWFyZCBUTyBERUZBVUxUOwogU0VUIHNlYXJj aF9wYXRoIFRPIERFRkFVTFQ7CisKKy0tIHRlc3Qgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNl X2NvbnRleHRfZ3VhcmQKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0NSRUFURSBUQUJM RSB2YXJ0ZXN0X3RhYjEoYSBpbnQpOworCitMRVQgdmFyMSA9IDIwOworSU5TRVJUIElOVE8gdmFy dGVzdF90YWIxIFZBTFVFUygyMCk7CisKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vf Y29udGV4dF9ndWFyZCBUTyAnbm9uZSc7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjEs IFZBUklBQkxFKHZhcjEpOworRE8gJCQKK0RFQ0xBUkUgdCBpbnQ7CitCRUdJTgorICBTRUxFQ1Qg YSBGUk9NIHZhcnRlc3RfdGFiMSBXSEVSRSBhID0gdmFyMSBJTlRPIHQ7CisgIFJBSVNFIE5PVElD RSAnJSAlJywgdmFyMSwgdmFyMSA9IHQ7CisgIFNFTEVDVCBhIEZST00gdmFydGVzdF90YWIxIFdI RVJFIGEgPSBWQVJJQUJMRSh2YXIxKSBJTlRPIHQ7CisgIFJBSVNFIE5PVElDRSAnJSAlJywgVkFS SUFCTEUodmFyMSksIFZBUklBQkxFKHZhcjEpID0gdDsKK0VORDsKKyQkOworCitTRVQgc2Vzc2lv bl92YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRfZ3VhcmQgVE8gJ2FsbCc7CisKKy0tIHNob3Vs ZCBmYWlsCitTRUxFQ1QgdmFyMSwgVkFSSUFCTEUodmFyMSk7CisKKy0tIHNob3VsZCBmYWlsCitE TyAkJAorREVDTEFSRSB0IGludDsKK0JFR0lOCisgIFNFTEVDVCBhIEZST00gdmFydGVzdF90YWIx IFdIRVJFIGEgPSB2YXIxIElOVE8gdDsKK0VORDsKKyQkOworCistLSBzaG91bGQgZmFpbAorRE8g JCQKK0RFQ0xBUkUgdCBpbnQgREVGQVVMVCAyMDsKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAnJSAl JywgdmFyMSwgdmFyMSA9IHQ7CitFTkQ7CiskJDsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1Qg VkFSSUFCTEUodmFyMSksIFZBUklBQkxFKHZhcjEpOworRE8gJCQKK0RFQ0xBUkUgdCBpbnQ7CitC RUdJTgorICBTRUxFQ1QgYSBGUk9NIHZhcnRlc3RfdGFiMSBXSEVSRSBhID0gVkFSSUFCTEUodmFy MSkgSU5UTyB0OworICBSQUlTRSBOT1RJQ0UgJyUgJScsIFZBUklBQkxFKHZhcjEpLCBWQVJJQUJM RSh2YXIxKSA9IHQ7CitFTkQ7CiskJDsKKworU0VUIHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5j ZV9jb250ZXh0X2d1YXJkIFRPICdub3NwaSc7CisKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgdmFy MSwgVkFSSUFCTEUodmFyMSk7CisKKy0tIHNob3VsZCBiZSBvaworRE8gJCQKK0RFQ0xBUkUgdCBp bnQ7CitCRUdJTgorICBTRUxFQ1QgYSBGUk9NIHZhcnRlc3RfdGFiMSBXSEVSRSBhID0gdmFyMSBJ TlRPIHQ7CisgIFJBSVNFIE5PVElDRSAnJSAlJywgdmFyMSwgdmFyMSA9IHQ7CisgIFNFTEVDVCBh IEZST00gdmFydGVzdF90YWIxIFdIRVJFIGEgPSBWQVJJQUJMRSh2YXIxKSBJTlRPIHQ7CisgIFJB SVNFIE5PVElDRSAnJSAlJywgVkFSSUFCTEUodmFyMSksIFZBUklBQkxFKHZhcjEpID0gdDsKK0VO RDsKKyQkOworCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX2NvbnRleHRfZ3VhcmQg VE8gREVGQVVMVDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUQUJMRSB2YXJ0ZXN0X3Rh YjE7Ci0tIAoyLjQ3LjEKCg== --0000000000007bfa26062b3fa8d1 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250109-0008-variable-fence-syntax-support-and-variable-fence-usa.patch" Content-Disposition: attachment; filename="v20250109-0008-variable-fence-syntax-support-and-variable-fence-usa.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5ox16p814 RnJvbSA2ZThiNjUzN2Q3ZDgyNGYyMDViZDdmOWY3YjU4NzFiYjg0YzMyZTFjIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFR1ZSwgMTkgTm92IDIwMjQgMDg6MTQ6NTMgKzAxMDAKU3ViamVjdDogW1BBVENIIDA4 LzIyXSB2YXJpYWJsZSBmZW5jZSBzeW50YXggc3VwcG9ydCBhbmQgdmFyaWFibGUgZmVuY2UgdXNh Z2UKIGd1YXJkIHN1cHBvcnQKCnRoaXMgcGF0Y2ggaW50cm9kdWNlcyBhIGNvbmNlcHQgb2YgdmFy aWFibGUgZmVuY2UgLSBzeW50YXggZm9yIHZhcmlhYmxlCnJlZmVyZW5jZSBgVkFSSUFCTEUodmFy bmFtZSlgIHRoYXQgaXMgbm90IGluIGNvbGxpc2lvbiB3aXRoIGNvbHVtbiByZWZlcmVuY2UuCldo ZW4gdmFyaWFibGUgZmVuY2UgdXNhZ2UgZ3VhcmQgd2FybmluZyBpcyBhY3RpdmUsIHRoZW4gdXNh Z2UgdmFyaWFibGUKd2l0aG91dCB2YXJpYWJsZSBmZW5jZSBpbiB0aGUgY2FzZSwgd2hlcmUgdGhl cmUgY2FuIGJlIGNvbHVtbiByZWZlcmVuY2VzLAp0aGUgdGhlIHdhcm5pbmcgaXMgcmFpc2VkLgoK aW5pdGlhbCBpbXBsZW1lbnRhdGlvbiBvZiB2YXJpYWJsZSBmZW5jZQotLS0KIGRvYy9zcmMvc2dt bC9jb25maWcuc2dtbCAgICAgICAgICAgICAgICAgICAgICB8IDY1ICsrKysrKysrKysrKysrKysK IGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8IDE1ICsrKysK IHNyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jICAgICAgICAgICAgICAgICB8ICA2ICsrCiBz cmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAyOCArKysrKyst CiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jICAgICAgICAgICAgICAgfCA3NCArKysr KysrKysrKysrKysrKystCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMgICAgICAg ICAgICAgfCAgNyArKwogc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jICAgICAgICAg ICAgIHwgMTIgKystCiBzcmMvYmFja2VuZC91dGlscy9taXNjL2d1Y190YWJsZXMuYyAgICAgICAg ICAgfCAgOSArKysKIHNyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBs ZSB8ICAxICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8 IDEwICsrKwogc3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmggICAgICAgICAgICAgICAgIHwg IDIgKwogc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4cHIuaCAgICAgICAgICAgICAgIHwgIDEg KwogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0ICAgIHwgNTkgKysr KysrKysrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwg ICAgfCA0MSArKysrKysrKysrCiAxNCBmaWxlcyBjaGFuZ2VkLCAzMjMgaW5zZXJ0aW9ucygrKSwg NyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwgYi9k b2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKaW5kZXggMTAxMjI0YmNjMC4uNWI5OWY3ZmM0NSAxMDA2 NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9jb25m aWcuc2dtbApAQCAtMTA4NjcsNiArMTA4NjcsNzEgQEAgREVUQUlMOiAgU2Vzc2lvbiB2YXJpYWJs ZXMgY2FuIGJlIHNoYWRvd2VkIGJ5IGNvbHVtbnMsIHJvdXRpbmUncyB2YXJpYWJsZXMgYW5kIHIK ICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgogCisgICAgIDx2YXJsaXN0 ZW50cnkgaWQ9Imd1Yy1zZXNzaW9uLXZhcmlhYmxlcy11c2UtZmVuY2Utd2FybmluZy1ndWFyZCIg eHJlZmxhYmVsPSJzZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vfd2FybmluZ19ndWFyZCI+Cisg ICAgICA8dGVybT48dmFybmFtZT5zZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vfd2FybmluZ19n dWFyZDwvdmFybmFtZT4gKDx0eXBlPmJvb2xlYW48L3R5cGU+KQorICAgICAgPGluZGV4dGVybT4K KyAgICAgICA8cHJpbWFyeT48dmFybmFtZT5zZXNzaW9uX3ZhcmlhYmxlc191c2VfZmVuY2Vfd2Fy bmluZ19ndWFyZDwvdmFybmFtZT4gY29uZmlndXJhdGlvbiBwYXJhbWV0ZXI8L3ByaW1hcnk+Cisg ICAgICA8L2luZGV4dGVybT4KKyAgICAgIDwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAg IDxwYXJhPgorICAgICAgIFdoZW4gb24sIGEgd2FybmluZyBpcyByYWlzZWQgd2hlbiBhIHNlc3Np b24gdmFyaWFibGUgaWRlbnRpZmllciBpcyB1c2VkCisgICAgICAgaW5zaWRlIGEgcXVlcnkgd2l0 aG91dCB2YXJpYWJsZSBmZW5jZS4gVGhlIGRlZmF1bHQgaXMgPGxpdGVyYWw+b2ZmPC9saXRlcmFs Pi4KKyAgICAgICBUaGUgd2FybmluZyBpcyByYWlzZWQgb25seSB3aGVuIHZhcmlhYmxlIGlzIHVz ZWQgaW4gcGxhY2VzLCB3aGVyZSBhbgorICAgICAgIGNvbGxpc2lvbnMgd2l0aCBjb2x1bW4gbmFt ZXMgaXMgcG9zc2libGUuCis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgVEFCTEUgZm9vKGEgaW50 KTsKK0lOU0VSVCBJTlRPIGZvbyBWQUxVRVMoMTApOworQ1JFQVRFIFZBUklBQkxFIGIgaW50Owor TEVUIGIgPSAxMDA7CitTRUxFQ1QgYSwgYiBGUk9NIGZvbzsKKzwvcHJvZ3JhbWxpc3Rpbmc+CisK KzxzY3JlZW4+CisgYSAgfCAgYiAgCistLS0tKy0tLS0tCisgMTAgfCAxMDAKKygxIHJvdykKKzwv c2NyZWVuPgorCis8cHJvZ3JhbWxpc3Rpbmc+CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2Zl bmNlX3dhcm5pbmdfZ3VhcmQgVE8gb247CitTRUxFQ1QgYSwgYiBGUk9NIGZvbzsKKzwvcHJvZ3Jh bWxpc3Rpbmc+CisKKzxzY3JlZW4+CitXQVJOSU5HOiAgc2Vzc2lvbiB2YXJpYWJsZSAiYiIgaXMg bm90IHVzZWQgaW5zaWRlIHZhcmlhYmxlIGZlbmNlCitMSU5FIDE6IFNFTEVDVCBhLCBiIEZST00g Zm9vOworICAgICAgICAgICAgICAgICAgXgorREVUQUlMOiAgVGhlIGNvbGxpc2lvbiBvZiBzZXNz aW9uIHZhcmlhYmxlJyBuYW1lcyBhbmQgY29sdW1uIG5hbWVzIGlzIHBvc3NpYmxlLgorIGEgIHwg IGIgIAorLS0tLSstLS0tLQorIDEwIHwgMTAwCisoMSByb3cpCis8L3NjcmVlbj4KKworPHByb2dy YW1saXN0aW5nPgorU0VMRUNUIGEsIFZBUklBQkxFKGIpIEZST00gZm9vOworPC9wcm9ncmFtbGlz dGluZz4KKworPHNjcmVlbj4KKyBhICB8ICBiICAKKy0tLS0rLS0tLS0KKyAxMCB8IDEwMAorKDEg cm93KQorPC9zY3JlZW4+CisgICAgICAgPC9wYXJhPgorCisgICAgICAgPHBhcmE+CisgICAgICAg IFRoaXMgZmVhdHVyZSBjYW4gc2lnbmlmaWNhbnRseSBpbmNyZWFzZSBsb2cgc2l6ZSwgc28gaXQn cyBkaXNhYmxlZCBieQorICAgICAgICBkZWZhdWx0LiBVbmxlc3MgYW5vdGhlciBjb2xsaXNpb24g cmVzb2x1dGlvbiB0ZWNobmlxdWUgaXMgdXNlZAorICAgICAgICAoZGVkaWNhdGVkIHNjaGVtYSBv ciB1c2luZyBwcmVmaXhlcyBsaWtlIDxsaXRlcmFsPl88L2xpdGVyYWw+KSwKKyAgICAgICAgdGhl IHVzZSBvZiB2YXJpYWJsZSBmZW5jZSBzeW50YXggaXMgc3Ryb25nbHkgcmVjb21tZW5kZWQsIGFu ZCB0aGlzCisgICAgICAgIHdhcm5pbmcgc2hvdWxkIGJlIGVuYWJsZWQuCisgICAgICAgPC9wYXJh PgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgPHZhcmxp c3RlbnRyeSBpZD0iZ3VjLXN0YW5kYXJkLWNvbmZvcm1pbmctc3RyaW5ncyIgeHJlZmxhYmVsPSJz dGFuZGFyZF9jb25mb3JtaW5nX3N0cmluZ3MiPgogICAgICAgPHRlcm0+PHZhcm5hbWU+c3RhbmRh cmRfY29uZm9ybWluZ19zdHJpbmdzPC92YXJuYW1lPiAoPHR5cGU+Ym9vbGVhbjwvdHlwZT4pCiAg ICAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PnN0cmluZ3M8L3ByaW1hcnk+PHNlY29uZGFyeT5zdGFu ZGFyZCBjb25mb3JtaW5nPC9zZWNvbmRhcnk+PC9pbmRleHRlcm0+CmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKaW5kZXggMWRlZTBhYzI4 ZC4uYTU2NjQ2MDRlNiAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9kZGwuc2dtbApAQCAtNTQyOSw2ICs1NDI5LDIxIEBAIFNFTEVDVCBuYW1lIEZS T00gZm9vOwogICAgIDxsaXRlcmFsPnNjaGVtYS52YXJpYWJsZTwvbGl0ZXJhbD4uIEl0IGlzIHN0 cm9uZ2x5IHJlY29tbWVuZGVkIHRvIHJlbmFtZQogICAgIHNoYWRvd2VkIHZhcmlhYmxlcyBvciB1 c2UgcXVhbGlmaWVkIG5hbWVzIGFsd2F5cy4KICAgIDwvcGFyYT4KKworICAgPHBhcmE+PGZpcnN0 dGVybT5WYXJpYWJsZSBmZW5jZTwvZmlyc3R0ZXJtPiBpcyBzcGVjaWFsIHN5bnRheCBmb3Igc2Vz c2lvbgorICAgIHZhcmlhYmxlIGlkZW50aWZpZXIuIE9ubHkgbmFtZSBvciBxdWFsaWZpZWQgbmFt ZSBjYW4gYmUgdXNlZCBpbnNpZGUgdGhlCisgICAgdmFyaWFibGUgZmVuY2UsIGFuZCB0aGlzIG5h bWUgaXMgdXNlZCBhcyBvbmx5IHNlc3Npb24gdmFyaWFibGUgaWRlbnRpZmllci4KKzxwcm9ncmFt bGlzdGluZz4KK1NFTEVDVCBWQVJJQUJMRShjdXJyZW50X3VzZXJfaWQpOworPC9wcm9ncmFtbGlz dGluZz4KKyAgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFdoZW4gdGhlcmUgaXMgYSByaXNrIG9m IHBvc3NpYmxlIGNvbGxpc2lvbnMgYmV0d2VlbiB2YXJpYWJsZSBpZGVudGlmaWVycworICAgYW5k IGNvbHVtbiBuYW1lcywgdGhlbiB1c2luZyB2YXJpYWJsZSBmZW5jZSBzeW50YXggY2FuIGJlIHJl Y29tbWVuZGVkLgorICAgVXNhZ2Ugc2Vzc2lvbiB2YXJpYWJsZSB3aXRob3V0IHZhcmlhYmxlIGZl bmNlIGNhbiBiZSBkZXRlY3RlZCBieQorICAgd2FybmluZyA8eHJlZiBsaW5rZW5kPSJndWMtc2Vz c2lvbi12YXJpYWJsZXMtdXNlLWZlbmNlLXdhcm5pbmctZ3VhcmQiLz4uCisgIDwvcGFyYT4KICAg PC9zZWN0MT4KIAogIDxzZWN0MSBpZD0iZGRsLW90aGVycyI+CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9ub2Rlcy9ub2RlRnVuY3MuYyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCmlu ZGV4IDU2YThmZTVkNzQuLjM3YjkxZTUwNzkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL25vZGVz L25vZGVGdW5jcy5jCisrKyBiL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5jcy5jCkBAIC0xNjYy LDYgKzE2NjIsOSBAQCBleHByTG9jYXRpb24oY29uc3QgTm9kZSAqZXhwcikKIAkJY2FzZSBUX1Bh cmFtUmVmOgogCQkJbG9jID0gKChjb25zdCBQYXJhbVJlZiAqKSBleHByKS0+bG9jYXRpb247CiAJ CQlicmVhazsKKwkJY2FzZSBUX1ZhcmlhYmxlRmVuY2U6CisJCQlsb2MgPSAoKGNvbnN0IFZhcmlh YmxlRmVuY2UgKikgZXhwciktPmxvY2F0aW9uOworCQkJYnJlYWs7CiAJCWNhc2UgVF9BX0NvbnN0 OgogCQkJbG9jID0gKChjb25zdCBBX0NvbnN0ICopIGV4cHIpLT5sb2NhdGlvbjsKIAkJCWJyZWFr OwpAQCAtNDY4MSw2ICs0Njg0LDkgQEAgcmF3X2V4cHJlc3Npb25fdHJlZV93YWxrZXJfaW1wbChO b2RlICpub2RlLAogCQkJCQlyZXR1cm4gdHJ1ZTsKIAkJCX0KIAkJCWJyZWFrOworCQljYXNlIFRf VmFyaWFibGVGZW5jZToKKwkJCS8qIHdlIGFzc3VtZSB0aGUgZmllbGRzIGNvbnRhaW4gbm90aGlu ZyBpbnRlcmVzdGluZyAqLworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAi dW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQiLAogCQkJCSAoaW50KSBub2RlVGFnKG5vZGUpKTsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJz ZXIvZ3JhbS55CmluZGV4IDdlNzE1OGFjMDkuLjY3NGU4YWYyNTYgMTAwNjQ0Ci0tLSBhL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAt NTE3LDcgKzUxNyw3IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFy ICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAldHlwZSA8bm9kZT4JZGVm X2FyZyBjb2x1bW5FbGVtIHdoZXJlX2NsYXVzZSB3aGVyZV9vcl9jdXJyZW50X2NsYXVzZQogCQkJ CWFfZXhwciBiX2V4cHIgY19leHByIEFleHByQ29uc3QgaW5kaXJlY3Rpb25fZWwgb3B0X3NsaWNl X2JvdW5kCiAJCQkJY29sdW1ucmVmIGluX2V4cHIgaGF2aW5nX2NsYXVzZSBmdW5jX3RhYmxlIHht bHRhYmxlIGFycmF5X2V4cHIKLQkJCQlPcHRXaGVyZUNsYXVzZSBvcGVyYXRvcl9kZWZfYXJnCisJ CQkJT3B0V2hlcmVDbGF1c2Ugb3BlcmF0b3JfZGVmX2FyZyB2YXJpYWJsZV9mZW5jZQogJXR5cGUg PGxpc3Q+CW9wdF9jb2x1bW5fYW5kX3BlcmlvZF9saXN0CiAldHlwZSA8bGlzdD4Jcm93c2Zyb21f aXRlbSByb3dzZnJvbV9saXN0IG9wdF9jb2xfZGVmX2xpc3QKICV0eXBlIDxib29sZWFuPiBvcHRf b3JkaW5hbGl0eSBvcHRfd2l0aG91dF9vdmVybGFwcwpAQCAtODc0LDcgKzg3NCw3IEBAIHN0YXRp YyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlh c2VzLCBOb2RlICpxdWVyeSk7CiAgKi8KICVub25hc3NvYwlVTkJPVU5ERUQgTkVTVEVEIC8qIGlk ZWFsbHkgd291bGQgaGF2ZSBzYW1lIHByZWNlZGVuY2UgYXMgSURFTlQgKi8KICVub25hc3NvYwlJ REVOVCBQQVJUSVRJT04gUkFOR0UgUk9XUyBHUk9VUFMgUFJFQ0VESU5HIEZPTExPV0lORyBDVUJF IFJPTExVUAotCQkJU0VUIEtFWVMgT0JKRUNUX1AgU0NBTEFSIFZBTFVFX1AgV0lUSCBXSVRIT1VU IFBBVEgKKwkJCVNFVCBLRVlTIE9CSkVDVF9QIFNDQUxBUiBWQUxVRV9QIFdJVEggV0lUSE9VVCBQ QVRIIFZBUklBQkxFCiAlbGVmdAkJT3AgT1BFUkFUT1IJCS8qIG11bHRpLWNoYXJhY3RlciBvcHMg YW5kIHVzZXItZGVmaW5lZCBvcGVyYXRvcnMgKi8KICVsZWZ0CQknKycgJy0nCiAlbGVmdAkJJyon ICcvJyAnJScKQEAgLTE1NTkzLDYgKzE1NTkzLDE5IEBAIGNfZXhwcjoJCWNvbHVtbnJlZgkJCQkJ CQkJeyAkJCA9ICQxOyB9CiAJCQkJCWVsc2UKIAkJCQkJCSQkID0gJDI7CiAJCQkJfQorCQkJfCB2 YXJpYWJsZV9mZW5jZSBvcHRfaW5kaXJlY3Rpb24KKwkJCQl7CisJCQkJCWlmICgkMikKKwkJCQkJ eworCQkJCQkJQV9JbmRpcmVjdGlvbiAqbiA9IG1ha2VOb2RlKEFfSW5kaXJlY3Rpb24pOworCisJ CQkJCQluLT5hcmcgPSAoTm9kZSAqKSAkMTsKKwkJCQkJCW4tPmluZGlyZWN0aW9uID0gY2hlY2tf aW5kaXJlY3Rpb24oJDIsIHl5c2Nhbm5lcik7CisJCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJ CX0KKwkJCQkJZWxzZQorCQkJCQkJJCQgPSAkMTsKKwkJCQl9CiAJCQl8IGNhc2VfZXhwcgogCQkJ CXsgJCQgPSAkMTsgfQogCQkJfCBmdW5jX2V4cHIKQEAgLTE2OTc5LDYgKzE2OTkyLDE3IEBAIGNh c2VfYXJnOglhX2V4cHIJCQkJCQkJCQl7ICQkID0gJDE7IH0KIAkJCXwgLypFTVBUWSovCQkJCQkJ CQl7ICQkID0gTlVMTDsgfQogCQk7CiAKK3ZhcmlhYmxlX2ZlbmNlOgorCQkJVkFSSUFCTEUgJygn IGFueV9uYW1lICcpJworCQkJCXsKKwkJCQkJVmFyaWFibGVGZW5jZSAqdmYgPSBtYWtlTm9kZShW YXJpYWJsZUZlbmNlKTsKKworCQkJCQl2Zi0+dmFybmFtZSA9ICQzOworCQkJCQl2Zi0+bG9jYXRp b24gPSBAMzsKKwkJCQkJJCQgPSAoTm9kZSAqKSB2ZjsKKwkJCQl9CisJCTsKKwogY29sdW1ucmVm OglDb2xJZAogCQkJCXsKIAkJCQkJJCQgPSBtYWtlQ29sdW1uUmVmKCQxLCBOSUwsIEAxLCB5eXNj YW5uZXIpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYyBiL3Ny Yy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKaW5kZXggYjNjNTFhZjhjZi4uMWY1NTBjZDA0 ZCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYworKysgYi9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfZXhwci5jCkBAIC00Niw2ICs0Niw3IEBACiAvKiBHVUMgcGFy YW1ldGVycyAqLwogYm9vbAkJVHJhbnNmb3JtX251bGxfZXF1YWxzID0gZmFsc2U7CiBib29sCQlz ZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyA9IGZhbHNlOworYm9vbAkJc2Vzc2lv bl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5pbmdfZ3VhcmQgPSBmYWxzZTsKIAogCiBzdGF0aWMg Tm9kZSAqdHJhbnNmb3JtRXhwclJlY3Vyc2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHBy KTsKQEAgLTgxLDYgKzgyLDcgQEAgc3RhdGljIE5vZGUgKnRyYW5zZm9ybVdob2xlUm93UmVmKFBh cnNlU3RhdGUgKnBzdGF0ZSwKIHN0YXRpYyBOb2RlICp0cmFuc2Zvcm1JbmRpcmVjdGlvbihQYXJz ZVN0YXRlICpwc3RhdGUsIEFfSW5kaXJlY3Rpb24gKmluZCk7CiBzdGF0aWMgTm9kZSAqdHJhbnNm b3JtVHlwZUNhc3QoUGFyc2VTdGF0ZSAqcHN0YXRlLCBUeXBlQ2FzdCAqdGMpOwogc3RhdGljIE5v ZGUgKnRyYW5zZm9ybUNvbGxhdGVDbGF1c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2xsYXRlQ2xh dXNlICpjKTsKK3N0YXRpYyBOb2RlICp0cmFuc2Zvcm1WYXJpYWJsZUZlbmNlKFBhcnNlU3RhdGUg KnBzdGF0ZSwgVmFyaWFibGVGZW5jZSAqdmYpOwogc3RhdGljIE5vZGUgKnRyYW5zZm9ybUpzb25P YmplY3RDb25zdHJ1Y3RvcihQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJCQkJCQkJCUpzb25PYmpl Y3RDb25zdHJ1Y3RvciAqY3Rvcik7CiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtSnNvbkFycmF5Q29u c3RydWN0b3IoUGFyc2VTdGF0ZSAqcHN0YXRlLApAQCAtMTEyLDcgKzExNCw3IEBAIHN0YXRpYyBO b2RlICptYWtlX251bGx0ZXN0X2Zyb21fZGlzdGluY3QoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJ CQkJCQkJCSBBX0V4cHIgKmRpc3RpbmN0YSwgTm9kZSAqYXJnKTsKIHN0YXRpYyBOb2RlICptYWtl UGFyYW1TZXNzaW9uVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJCQkJICBPaWQg dmFyaWQsIE9pZCB0eXBpZCwgaW50MzIgdHlwbW9kLCBPaWQgY29sbGlkLAotCQkJCQkJCQkJICBj aGFyICphdHRybmFtZSwgaW50IGxvY2F0aW9uKTsKKwkJCQkJCQkJCSAgY2hhciAqYXR0cm5hbWUs IGJvb2wgZmVuY2VkLCBpbnQgbG9jYXRpb24pOwogCiAKIC8qCkBAIC0zNzcsNiArMzc5LDEwIEBA IHRyYW5zZm9ybUV4cHJSZWN1cnNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTm9kZSAqZXhwcikKIAkJ CXJlc3VsdCA9IHRyYW5zZm9ybUpzb25GdW5jRXhwcihwc3RhdGUsIChKc29uRnVuY0V4cHIgKikg ZXhwcik7CiAJCQlicmVhazsKIAorCQljYXNlIFRfVmFyaWFibGVGZW5jZToKKwkJCXJlc3VsdCA9 IHRyYW5zZm9ybVZhcmlhYmxlRmVuY2UocHN0YXRlLCAoVmFyaWFibGVGZW5jZSAqKSBleHByKTsK KwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQkvKiBzaG91bGQgbm90IHJlYWNoIGhlcmUgKi8K IAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsIChpbnQpIG5vZGVU YWcoZXhwcikpOwpAQCAtMTAyOCw3ICsxMDM0LDIwIEBAIHRyYW5zZm9ybUNvbHVtblJlZihQYXJz ZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIAogCQkJCW5vZGUgPSBtYWtlUGFyYW1T ZXNzaW9uVmFyaWFibGUocHN0YXRlLAogCQkJCQkJCQkJCQkJdmFyaWQsIHR5cGlkLCB0eXBtb2Qs IGNvbGxpZCwKLQkJCQkJCQkJCQkJCWF0dHJuYW1lLCBjcmVmLT5sb2NhdGlvbik7CisJCQkJCQkJ CQkJCQlhdHRybmFtZSwgZmFsc2UsIGNyZWYtPmxvY2F0aW9uKTsKKworCQkJCS8qCisJCQkJICog VGhlIHZhcmlhYmxlIGlzIG5vdCBpbnNpZGUgdmFyaWFibGUncyBmZW5jZSwgc28gcmFpc2Ugd2Fy bmluZworCQkJCSAqIHdoZW4gdmFyaWFibGUgZmVuY2UgZ3VhcmQgaXMgYWN0aXZlIGFuZCB0aGUg cXVlcnkgaGFzIEZST00KKwkJCQkgKiBjbGF1c2UuCisJCQkJICovCisJCQkJaWYgKHNlc3Npb25f dmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5nX2d1YXJkICYmIHBzdGF0ZS0+cF9ydGFibGUpCisJ CQkJCWVyZXBvcnQoV0FSTklORywKKwkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0FNQklHVU9VU19D T0xVTU4pLAorCQkJCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGlzIG5vdCB1 c2VkIGluc2lkZSB2YXJpYWJsZSBmZW5jZSIsCisJCQkJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKGNy ZWYtPmZpZWxkcykpLAorCQkJCQkJCSBlcnJkZXRhaWwoIlRoZSBjb2xsaXNpb24gb2Ygc2Vzc2lv biB2YXJpYWJsZScgbmFtZXMgYW5kIGNvbHVtbiBuYW1lcyBpcyBwb3NzaWJsZS4iKSwKKwkJCQkJ CQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgY3JlZi0+bG9jYXRpb24pKSk7CiAJCQl9CiAJ CX0KIAl9CkBAIC0xMDcxLDcgKzEwOTAsNyBAQCB0cmFuc2Zvcm1Db2x1bW5SZWYoUGFyc2VTdGF0 ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiBzdGF0aWMgTm9kZSAqCiBtYWtlUGFyYW1TZXNz aW9uVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCQkJIE9pZCB2YXJpZCwgT2lkIHR5 cGlkLCBpbnQzMiB0eXBtb2QsIE9pZCBjb2xsaWQsCi0JCQkJCQkgY2hhciAqYXR0cm5hbWUsIGlu dCBsb2NhdGlvbikKKwkJCQkJCSBjaGFyICphdHRybmFtZSwgYm9vbCBmZW5jZWQsIGludCBsb2Nh dGlvbikKIHsKIAlQYXJhbQkgICAqcGFyYW07CiAKQEAgLTEwNzksNiArMTA5OCw3IEBAIG1ha2VQ YXJhbVNlc3Npb25WYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsCiAKIAlwYXJhbS0+cGFyYW1r aW5kID0gUEFSQU1fVkFSSUFCTEU7CiAJcGFyYW0tPnBhcmFtdmFyaWQgPSB2YXJpZDsKKwlwYXJh bS0+cGFyYW12YXJmZW5jZWQgPSBmZW5jZWQ7CiAJcGFyYW0tPnBhcmFtdHlwZSA9IHR5cGlkOwog CXBhcmFtLT5wYXJhbXR5cG1vZCA9IHR5cG1vZDsKIAlwYXJhbS0+cGFyYW1jb2xsaWQgPSBjb2xs aWQ7CkBAIC0xMTU3LDYgKzExNzcsNTQgQEAgdHJhbnNmb3JtUGFyYW1SZWYoUGFyc2VTdGF0ZSAq cHN0YXRlLCBQYXJhbVJlZiAqcHJlZikKIAlyZXR1cm4gcmVzdWx0OwogfQogCitzdGF0aWMgTm9k ZSAqCit0cmFuc2Zvcm1WYXJpYWJsZUZlbmNlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgVmFyaWFibGVG ZW5jZSAqdmYpCit7CisJTm9kZQkgICAqcmVzdWx0OworCU9pZAkJCXZhcmlkID0gSW52YWxpZE9p ZDsKKwljaGFyCSAgICphdHRybmFtZSA9IE5VTEw7CisJYm9vbAkJbm90X3VuaXF1ZTsKKworCS8q IFZhcmlhYmxlRmVuY2UgY2FuIGJlIHVzZWQgb25seSBpbiBjb250ZXh0IHdoZW4gdmFyaWFibGVz IGFyZSBzdXBwb3J0ZWQgKi8KKwlpZiAoIWV4cHJfa2luZF9hbGxvd3Nfc2Vzc2lvbl92YXJpYWJs ZXMocHN0YXRlLT5wX2V4cHJfa2luZCkpCisJCWVyZXBvcnQoRVJST1IsCisJCQkoZXJyY29kZShF UlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlh YmxlIHJlZmVyZW5jZSBpcyBub3Qgc3VwcG9ydGVkIGhlcmUiKSwKKwkJCSBwYXJzZXJfZXJycG9z aXRpb24ocHN0YXRlLCB2Zi0+bG9jYXRpb24pKSk7CisKKwkvKiB0YWtlcyBhbiBBY2Nlc3NTaGFy ZUxvY2sgb24gdGhlIHNlc3Npb24gdmFyaWFibGUgKi8KKwl2YXJpZCA9IElkZW50aWZ5VmFyaWFi bGUodmYtPnZhcm5hbWUsICZhdHRybmFtZSwgJm5vdF91bmlxdWUsIGZhbHNlKTsKKworCWlmIChu b3RfdW5pcXVlKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfQU1CSUdV T1VTX1BBUkFNRVRFUiksCisJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSByZWZlcmVuY2Ug XCIlc1wiIGlzIGFtYmlndW91cyIsCisJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKHZmLT52YXJuYW1l KSksCisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHZmLT5sb2NhdGlvbikpKTsKKwor CWlmIChPaWRJc1ZhbGlkKHZhcmlkKSkKKwl7CisJCU9pZAkJCXR5cGlkOworCQlpbnQzMgkJdHlw bW9kOworCQlPaWQJCQljb2xsaWQ7CisKKwkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfdHlwZV90eXBt b2RfY29sbGlkKHZhcmlkLCAmdHlwaWQsICZ0eXBtb2QsCisJCQkJCQkJCQkJCQkmY29sbGlkKTsK KworCQlyZXN1bHQgPSBtYWtlUGFyYW1TZXNzaW9uVmFyaWFibGUocHN0YXRlLAorCQkJCQkJCQkJ CXZhcmlkLCB0eXBpZCwgdHlwbW9kLCBjb2xsaWQsCisJCQkJCQkJCQkJYXR0cm5hbWUsIHRydWUs IHZmLT5sb2NhdGlvbik7CisJfQorCWVsc2UKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29k ZShFUlJDT0RFX1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFi bGUgXCIlc1wiIGRvZXNuJ3QgZXhpc3QiLAorCQkJCQkJTmFtZUxpc3RUb1N0cmluZyh2Zi0+dmFy bmFtZSkpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCB2Zi0+bG9jYXRpb24pKSk7 CisKKwlyZXR1cm4gcmVzdWx0OworfQorCiAvKiBUZXN0IHdoZXRoZXIgYW4gYV9leHByIGlzIGEg cGxhaW4gTlVMTCBjb25zdGFudCBvciBub3QgKi8KIHN0YXRpYyBib29sCiBleHBySXNOdWxsQ29u c3RhbnQoTm9kZSAqYXJnKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3Rh cmdldC5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3RhcmdldC5jCmluZGV4IDkzOTE1MDMx YmUuLjMwMGVhMzQ4NzggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV90YXJn ZXQuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdGFyZ2V0LmMKQEAgLTIwMzQsNiAr MjAzNCwxMyBAQCBGaWd1cmVDb2xuYW1lSW50ZXJuYWwoTm9kZSAqbm9kZSwgY2hhciAqKm5hbWUp CiAJCQkJCQkgKGludCkgKChKc29uRnVuY0V4cHIgKikgbm9kZSktPm9wKTsKIAkJCX0KIAkJCWJy ZWFrOworCQljYXNlIFRfVmFyaWFibGVGZW5jZToKKwkJCXsKKwkJCQkvKiByZXR1cm4gbGFzdCBm aWVsZCBuYW1lICovCisJCQkJKm5hbWUgPSBzdHJWYWwobGxhc3QoKChWYXJpYWJsZUZlbmNlICop IG5vZGUpLT52YXJuYW1lKSk7CisJCQkJcmV0dXJuIDI7CisJCQl9CisJCQlicmVhazsKIAkJZGVm YXVsdDoKIAkJCWJyZWFrOwogCX0KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9y dWxldXRpbHMuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwppbmRleCA4ZDNk M2M5Yzc1Li5lYmI0MWUzYjVlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVs ZXV0aWxzLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCkBAIC04NjMw LDggKzg2MzAsMTYgQEAgZ2V0X3BhcmFtZXRlcihQYXJhbSAqcGFyYW0sIGRlcGFyc2VfY29udGV4 dCAqY29udGV4dCkKIAkvKiB0cmFuc2xhdGUgcGFyYW12YXJpZCB0byBzZXNzaW9uIHZhcmlhYmxl IG5hbWUgKi8KIAlpZiAocGFyYW0tPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkKIAl7Ci0J CWFwcGVuZFN0cmluZ0luZm8oY29udGV4dC0+YnVmLCAiJXMiLAotCQkJCQkJIGdlbmVyYXRlX3Nl c3Npb25fdmFyaWFibGVfbmFtZShwYXJhbS0+cGFyYW12YXJpZCkpOworCQlpZiAocGFyYW0tPnBh cmFtdmFyZmVuY2VkKQorCQl7CisJCQlhcHBlbmRTdHJpbmdJbmZvKGNvbnRleHQtPmJ1ZiwgIlZB UklBQkxFKCVzKSIsCisJCQkJCQkJIGdlbmVyYXRlX3Nlc3Npb25fdmFyaWFibGVfbmFtZShwYXJh bS0+cGFyYW12YXJpZCkpOworCQl9CisJCWVsc2UKKwkJeworCQkJYXBwZW5kU3RyaW5nSW5mbyhj b250ZXh0LT5idWYsICIlcyIsCisJCQkJCQkJIGdlbmVyYXRlX3Nlc3Npb25fdmFyaWFibGVfbmFt ZShwYXJhbS0+cGFyYW12YXJpZCkpOworCQl9CiAJCXJldHVybjsKIAl9CiAKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jIGIvc3JjL2JhY2tlbmQvdXRpbHMv bWlzYy9ndWNfdGFibGVzLmMKaW5kZXggNjQ3ZmExZjY0Yy4uZTA0NDRhN2I1MSAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKKysrIGIvc3JjL2JhY2tlbmQv dXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKQEAgLTE2MTQsNiArMTYxNCwxNSBAQCBzdHJ1Y3QgY29u ZmlnX2Jvb2wgQ29uZmlndXJlTmFtZXNCb29sW10gPQogCQlmYWxzZSwKIAkJTlVMTCwgTlVMTCwg TlVMTAogCX0sCisJeworCQl7InNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5nX2d1 YXJkIiwgUEdDX1VTRVJTRVQsIENMSUVOVF9DT05OX1NUQVRFTUVOVCwKKwkJCWdldHRleHRfbm9v cCgiUmFpc2UgYSB3YXJuaW5nIHdoZW4gdmFyaWFibGUgaXMgbm90IHVzZWQgaW5zaWRlIHZhcmlh YmxlIGZlbmNlLiIpLAorCQkJTlVMTAorCQl9LAorCQkmc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2Zl bmNlX3dhcm5pbmdfZ3VhcmQsCisJCWZhbHNlLAorCQlOVUxMLCBOVUxMLCBOVUxMCisJfSwKIAl7 CiAJCXsiZGVmYXVsdF90cmFuc2FjdGlvbl9yZWFkX29ubHkiLCBQR0NfVVNFUlNFVCwgQ0xJRU5U X0NPTk5fU1RBVEVNRU5ULAogCQkJZ2V0dGV4dF9ub29wKCJTZXRzIHRoZSBkZWZhdWx0IHJlYWQt b25seSBzdGF0dXMgb2YgbmV3IHRyYW5zYWN0aW9ucy4iKSwKZGlmZiAtLWdpdCBhL3NyYy9iYWNr ZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZSBiL3NyYy9iYWNrZW5kL3V0aWxz L21pc2MvcG9zdGdyZXNxbC5jb25mLnNhbXBsZQppbmRleCAyNGNkNmEyY2Y1Li4xNWQ2YjMxMmUx IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1w bGUKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCkBA IC03MTgsNiArNzE4LDcgQEAgYXV0b3ZhY3V1bV93b3JrZXJfc2xvdHMgPSAxNgkjIGF1dG92YWN1 dW0gd29ya2VyIHNsb3RzIHRvIGFsbG9jYXRlCiAjZGVmYXVsdF90cmFuc2FjdGlvbl9kZWZlcnJh YmxlID0gb2ZmCiAjc2Vzc2lvbl9yZXBsaWNhdGlvbl9yb2xlID0gJ29yaWdpbicKICNzZXNzaW9u X3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyA9IG9mZgorI3Nlc3Npb25fdmFyaWFibGVzX3Vz ZV9mZW5jZV93YXJuaW5nX2d1YXJkID0gb2ZmCiAjc3RhdGVtZW50X3RpbWVvdXQgPSAwCQkJCSMg aW4gbWlsbGlzZWNvbmRzLCAwIGlzIGRpc2FibGVkCiAjdHJhbnNhY3Rpb25fdGltZW91dCA9IDAJ CQkjIGluIG1pbGxpc2Vjb25kcywgMCBpcyBkaXNhYmxlZAogI2xvY2tfdGltZW91dCA9IDAJCQkJ IyBpbiBtaWxsaXNlY29uZHMsIDAgaXMgZGlzYWJsZWQKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L25vZGVzL3BhcnNlbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRl eCA5MzI0MWJkNTViLi5mODhlZGMwZDQxIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9w YXJzZW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0zMTIs NiArMzEyLDE2IEBAIHR5cGVkZWYgc3RydWN0IFBhcmFtUmVmCiAJUGFyc2VMb2MJbG9jYXRpb247 CQkvKiB0b2tlbiBsb2NhdGlvbiwgb3IgLTEgaWYgdW5rbm93biAqLwogfSBQYXJhbVJlZjsKIAor LyoKKyAqIFZhcmlhYmxlRmVuY2UgLSBlbnN1cmUgc28gZmllbGRzIHdpbGwgYmUgaW50ZXJwcmV0 dGVkIGFzIGEgdmFyaWFibGUKKyAqLwordHlwZWRlZiBzdHJ1Y3QgVmFyaWFibGVGZW5jZQorewor CU5vZGVUYWcJCXR5cGU7CisJTGlzdAkgICAqdmFybmFtZTsJCS8qIHZhcmlhYmxlIG5hbWUgKFN0 cmluZyBub2RlcykgKi8KKwlQYXJzZUxvYwlsb2NhdGlvbjsJCS8qIHRva2VuIGxvY2F0aW9uLCBv ciAtMSBpZiB1bmtub3duICovCit9IFZhcmlhYmxlRmVuY2U7CisKIC8qCiAgKiBBX0V4cHIgLSBp bmZpeCwgcHJlZml4LCBhbmQgcG9zdGZpeCBleHByZXNzaW9ucwogICovCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9ub2Rlcy9wcmltbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rl cy5oCmluZGV4IGMxMWQxOTVmMTguLjk0NjZiMzExNzEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L25vZGVzL3ByaW1ub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oCkBA IC0zOTQsNiArMzk0LDggQEAgdHlwZWRlZiBzdHJ1Y3QgUGFyYW0KIAkgKiBwYXJhbSBpcyB1c2Vk IGp1c3QgZm9yIGV4ZWN1dGlvbiBvZiBVUERBVEUgb3BlcmF0aW9uLgogCSAqLwogCWJvb2wJCXBh cmFtYmFzZW5vZGU7CisJLyogdHJ1ZSB3aGVuIHZhcmlhYmxlIGlzIHVzZWQgaW5zaWRlIGFuIGZl bmNlICovCisJYm9vbAkJcGFyYW12YXJmZW5jZWQ7CiAJLyogdG9rZW4gbG9jYXRpb24sIG9yIC0x IGlmIHVua25vd24gKi8KIAlQYXJzZUxvYwlsb2NhdGlvbjsKIH0gUGFyYW07CmRpZmYgLS1naXQg YS9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oIGIvc3JjL2luY2x1ZGUvcGFyc2VyL3Bh cnNlX2V4cHIuaAppbmRleCBkMjIwOTA3MDE4Li41YmRlNDM3NThkIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oCisrKyBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJz ZV9leHByLmgKQEAgLTE4LDYgKzE4LDcgQEAKIC8qIEdVQyBwYXJhbWV0ZXJzICovCiBleHRlcm4g UEdETExJTVBPUlQgYm9vbCBUcmFuc2Zvcm1fbnVsbF9lcXVhbHM7CiBleHRlcm4gUEdETExJTVBP UlQgYm9vbCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZzsKK2V4dGVybiBQR0RM TElNUE9SVCBib29sIHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5nX2d1YXJkOwog CiBleHRlcm4gTm9kZSAqdHJhbnNmb3JtRXhwcihQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4 cHIsIFBhcnNlRXhwcktpbmQgZXhwcktpbmQpOwogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhw ZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CmluZGV4IDdjMzUwYWQ1ZWYuLjlhYzA4YTE0ZTAg MTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMu b3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0 CkBAIC0xOTY5LDMgKzE5NjksNjIgQEAgU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93 YXJuaW5nIFRPIG9mZjsKIERST1AgVEFCTEUgcHVibGljLnh4dGFiOwogRFJPUCBTQ0hFTUEgeHh0 YWIgQ0FTQ0FERTsKIE5PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8gc2Vzc2lvbiB2YXJpYWJsZSB4 eHRhYi5hdmFyCistLSB0ZXN0IHNlc3Npb25fdmFyaWFibGVzX3VzZV9mZW5jZV93YXJuaW5nX2d1 YXJkCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb247CitTRVQg c2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5pbmdfZ3VhcmQgVE8gb247CitDUkVBVEUg U0NIRU1BIHRlc3R2YXI7CitTRVQgc2VhcmNoX3BhdGggVE8gJ3Rlc3R2YXInOworQ1JFQVRFIFZB UklBQkxFIGEgQVMgaW50OworTEVUIGEgPSAxMDsKK0NSRUFURSBUQUJMRSB0ZXN0X3RhYmxlKGEg aW50LCBiIGludCk7CitJTlNFUlQgSU5UTyB0ZXN0X3RhYmxlIFZBTFVFUygyMCwgMjApOworLS0g bm8gd2FybmluZworU0VMRUNUIGE7CisgYSAgCistLS0tCisgMTAKKygxIHJvdykKKworLS0gd2Fy bmluZyB2YXJpYWJsZSBpcyBzaGFkb3dlZAorU0VMRUNUIGEsIGIgRlJPTSB0ZXN0X3RhYmxlOwor V0FSTklORzogIHNlc3Npb24gdmFyaWFibGUgImEiIGlzIHNoYWRvd2VkCitMSU5FIDE6IFNFTEVD VCBhLCBiIEZST00gdGVzdF90YWJsZTsKKyAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIFNlc3Np b24gdmFyaWFibGVzIGNhbiBiZSBzaGFkb3dlZCBieSBjb2x1bW5zLCByb3V0aW5lJ3MgdmFyaWFi bGVzIGFuZCByb3V0aW5lJ3MgYXJndW1lbnRzIHdpdGggdGhlIHNhbWUgbmFtZS4KKyBhICB8IGIg IAorLS0tLSstLS0tCisgMjAgfCAyMAorKDEgcm93KQorCistLSBubyB3YXJuaW5nCitTRUxFQ1Qg dmFyaWFibGUoYSkgRlJPTSB0ZXN0X3RhYmxlOworIGEgIAorLS0tLQorIDEwCisoMSByb3cpCisK K0FMVEVSIFRBQkxFIHRlc3RfdGFibGUgRFJPUCBDT0xVTU4gYTsKKy0tIHdhcm5pbmcgLSB2YXJp YWJsZSBmZW5jZSBpcyBub3QgdXNlZAorU0VMRUNUIGEsIGIgRlJPTSB0ZXN0X3RhYmxlOworV0FS TklORzogIHNlc3Npb24gdmFyaWFibGUgImEiIGlzIG5vdCB1c2VkIGluc2lkZSB2YXJpYWJsZSBm ZW5jZQorTElORSAxOiBTRUxFQ1QgYSwgYiBGUk9NIHRlc3RfdGFibGU7CisgICAgICAgICAgICAg ICBeCitERVRBSUw6ICBUaGUgY29sbGlzaW9uIG9mIHNlc3Npb24gdmFyaWFibGUnIG5hbWVzIGFu ZCBjb2x1bW4gbmFtZXMgaXMgcG9zc2libGUuCisgYSAgfCBiICAKKy0tLS0rLS0tLQorIDEwIHwg MjAKKygxIHJvdykKKworLS0gbm8gd2FybmluZworU0VMRUNUIHZhcmlhYmxlKGEpLCBiIEZST00g dGVzdF90YWJsZTsKKyBhICB8IGIgIAorLS0tLSstLS0tCisgMTAgfCAyMAorKDEgcm93KQorCitE Uk9QIFZBUklBQkxFIGE7CitEUk9QIFRBQkxFIHRlc3RfdGFibGU7CitEUk9QIFNDSEVNQSB0ZXN0 dmFyOworU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIERFRkFVTFQ7 CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5pbmdfZ3VhcmQgVE8gREVGQVVM VDsKK1NFVCBzZWFyY2hfcGF0aCBUTyBERUZBVUxUOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVn cmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vz c2lvbl92YXJpYWJsZXMuc3FsCmluZGV4IDY4YmU0MTViZjIuLmM1NDIwMTgzZDkgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAorKysgYi9zcmMv dGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKQEAgLTEzNjAsMyArMTM2MCw0 NCBAQCBTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb2ZmOwogCiBE Uk9QIFRBQkxFIHB1YmxpYy54eHRhYjsKIERST1AgU0NIRU1BIHh4dGFiIENBU0NBREU7CisKKy0t IHRlc3Qgc2Vzc2lvbl92YXJpYWJsZXNfdXNlX2ZlbmNlX3dhcm5pbmdfZ3VhcmQKK1NFVCBzZXNz aW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvbjsKK1NFVCBzZXNzaW9uX3Zhcmlh Ymxlc191c2VfZmVuY2Vfd2FybmluZ19ndWFyZCBUTyBvbjsKKworQ1JFQVRFIFNDSEVNQSB0ZXN0 dmFyOworCitTRVQgc2VhcmNoX3BhdGggVE8gJ3Rlc3R2YXInOworCitDUkVBVEUgVkFSSUFCTEUg YSBBUyBpbnQ7CitMRVQgYSA9IDEwOworCitDUkVBVEUgVEFCTEUgdGVzdF90YWJsZShhIGludCwg YiBpbnQpOworCitJTlNFUlQgSU5UTyB0ZXN0X3RhYmxlIFZBTFVFUygyMCwgMjApOworCistLSBu byB3YXJuaW5nCitTRUxFQ1QgYTsKKworLS0gd2FybmluZyB2YXJpYWJsZSBpcyBzaGFkb3dlZAor U0VMRUNUIGEsIGIgRlJPTSB0ZXN0X3RhYmxlOworCistLSBubyB3YXJuaW5nCitTRUxFQ1QgdmFy aWFibGUoYSkgRlJPTSB0ZXN0X3RhYmxlOworCitBTFRFUiBUQUJMRSB0ZXN0X3RhYmxlIERST1Ag Q09MVU1OIGE7CisKKy0tIHdhcm5pbmcgLSB2YXJpYWJsZSBmZW5jZSBpcyBub3QgdXNlZAorU0VM RUNUIGEsIGIgRlJPTSB0ZXN0X3RhYmxlOworCistLSBubyB3YXJuaW5nCitTRUxFQ1QgdmFyaWFi bGUoYSksIGIgRlJPTSB0ZXN0X3RhYmxlOworCitEUk9QIFZBUklBQkxFIGE7CitEUk9QIFRBQkxF IHRlc3RfdGFibGU7CisKK0RST1AgU0NIRU1BIHRlc3R2YXI7CisKK1NFVCBzZXNzaW9uX3Zhcmlh Ymxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBERUZBVUxUOworU0VUIHNlc3Npb25fdmFyaWFibGVz X3VzZV9mZW5jZV93YXJuaW5nX2d1YXJkIFRPIERFRkFVTFQ7CitTRVQgc2VhcmNoX3BhdGggVE8g REVGQVVMVDsKLS0gCjIuNDcuMQoK --0000000000007bfa26062b3fa8d1 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250109-0007-GUC-session_variables_ambiguity_warning.patch" Content-Disposition: attachment; filename="v20250109-0007-GUC-session_variables_ambiguity_warning.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5ox16pk15 RnJvbSAyYzBkNDUzN2RmOGMwZTIzNTQ4ZTFjMmFmMDVmZGJjYmQ3YzFlODcyIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFR1ZSwgMjEgTWF5IDIwMjQgMTc6NTU6MjQgKzAyMDAKU3ViamVjdDogW1BBVENIIDA3 LzIyXSBHVUMgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcKCkluc2lkZSBhbiBx dWVyeSB0aGUgc2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkLiBUaGlzIGJlaGF2aW91 ciBpcyBieSBkZXNpZ24sCmJlY2F1c2UgdGhpcyBlbnN1cmluZyBzbyBuZXcgdmFyaWFibGVzIGRv ZXNuJ3QgYnJlYWsgZXhpc3RpbmcgcXVlcmllcy4gQnV0IHRoaXMKYmVoYXZpb3VyIGNhbiBiZSBj b25mdXNpbmcsIGJlY2F1c2Ugc2hhZG93aW5nIGlzIHF1aWV0LgoKV2hlbiBuZXcgR1VDIHNlc3Np b25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIGlzIG9uLCB0aGVuIHRoZSB3YXJuaW5nCmlz IGRpc3BsYXllZCwgd2hlbiBzb21lIHNlc3Npb24gdmFyaWFibGUgY2FuIGJlIHVzZWQsIGJ1dCBp dCBpcyBub3QgdXNlZApkdWUgc2hhZG93aW5nLiBUaGlzIGZlYXR1cmUgc2hvdWxkIHRvIGhlbHAg d2l0aCBpbnZlc3RpZ2F0aW9uIG9mIHVuZXhwZWN0ZWQKYmVoYXZpb3VyLgoKTm90ZTogUExwZ1NR TCBoYXMgYW4gb3B0aW9uIHRoYXQgY29udHJvbHMgcHJpb3JpdHkgb2YgaWRlbnRpZmllcidzIHNw YWNlcwooU1FMIG9yIFBMcGdTUUwpLiBEZWZhdWx0IGJlaGF2aW91ciBkb2Vzbid0IGFsbG93cyBj b2xsaXNpb25zLiBJIGJlbGlldmUKdGhpcyBkZWZhdWx0IGlzIHRoZSBiZXN0LiBJIGNhbm5vdCB0 byBpbXBsZW1lbnQgc2ltaWxhciB2ZXJ5IHN0cmljdApiZWhhdmlvdXIgdG8gc2Vzc2lvbiB2YXJp YWJsZXMsIGJlY2F1c2Ugb25lIHVuaGFwcHkgbmFtZWQgc2Vzc2lvbiB2YXJpYWJsZQpjYW4gYnJl YWtzIGFuIGFwcGxpY2F0aW9ucy4gVGhlIHByb2JsZW1zIHJlbGF0ZWQgdG8gYmFkbHkgbmFtZWQg UExwZ1NRTCdzCnZhcmlibGUgaXMgbGltaXR0ZWQganVzdCB0byBvbmx5IG9uZSByb3V0aW5lLgot LS0KIGRvYy9zcmMvc2dtbC9jb25maWcuc2dtbCAgICAgICAgICAgICAgICAgICAgICB8IDYwICsr KysrKysrKysrKysrKysrKysKIGRvYy9zcmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAg ICAgICAgICB8IDExICsrKysKIHNyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgICAgICAg ICAgICAgICB8IDQ5ICsrKysrKysrKysrKystLQogc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNf dGFibGVzLmMgICAgICAgICAgIHwgIDkgKysrCiBzcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3Rn cmVzcWwuY29uZi5zYW1wbGUgfCAgMSArCiBzcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5o ICAgICAgICAgICAgICAgfCAgMSArCiAuLi4vc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92 YXJpYWJsZS5vdXQgfCAzMyArKysrKysrKysrCiAuLi4vc3JjL3NxbC9wbHBnc3FsX3Nlc3Npb25f dmFyaWFibGUuc3FsICAgICAgfCAyOSArKysrKysrKysKIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nl c3Npb25fdmFyaWFibGVzLm91dCAgICB8IDI2ICsrKysrKysrCiBzcmMvdGVzdC9yZWdyZXNzL3Nx bC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwgICAgfCAyNiArKysrKysrKwogMTAgZmlsZXMgY2hhbmdl ZCwgMjQxIGluc2VydGlvbnMoKyksIDQgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZG9jL3Ny Yy9zZ21sL2NvbmZpZy5zZ21sIGIvZG9jL3NyYy9zZ21sL2NvbmZpZy5zZ21sCmluZGV4IDg2ODNm MGJkZjUuLjEwMTIyNGJjYzAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9jb25maWcuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvY29uZmlnLnNnbWwKQEAgLTEwODA3LDYgKzEwODA3LDY2IEBAIGR5 bmFtaWNfbGlicmFyeV9wYXRoID0gJ0M6XHRvb2xzXHBvc3RncmVzcWw7SDpcbXlfcHJvamVjdFxs aWI7JGxpYmRpcicKICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgIDwvdmFybGlzdGVudHJ5PgogCisg ICAgIDx2YXJsaXN0ZW50cnkgaWQ9Imd1Yy1zZXNzaW9uLXZhcmlhYmxlcy1hbWJpZ3VpdHktd2Fy bmluZyIgeHJlZmxhYmVsPSJzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyI+Cisg ICAgICA8dGVybT48dmFybmFtZT5zZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZzwv dmFybmFtZT4gKDx0eXBlPmJvb2xlYW48L3R5cGU+KQorICAgICAgPGluZGV4dGVybT4KKyAgICAg ICA8cHJpbWFyeT48dmFybmFtZT5zZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZzwv dmFybmFtZT4gY29uZmlndXJhdGlvbiBwYXJhbWV0ZXI8L3ByaW1hcnk+CisgICAgICA8L2luZGV4 dGVybT4KKyAgICAgIDwvdGVybT4KKyAgICAgIDxsaXN0aXRlbT4KKyAgICAgICA8cGFyYT4KKyAg ICAgICAgV2hlbiBvbiwgYSB3YXJuaW5nIGlzIHJhaXNlZCB3aGVuIGFueSBpZGVudGlmaWVyIGlu IGEgcXVlcnkgY291bGQgYmUKKyAgICAgICAgdXNlZCBhcyBib3RoIGEgY29sdW1uIGlkZW50aWZp ZXIsIHJvdXRpbmUgdmFyaWFibGUgb3IgYSBzZXNzaW9uCisgICAgICAgIHZhcmlhYmxlIGlkZW50 aWZpZXIuIFRoZSBkZWZhdWx0IGlzIDxsaXRlcmFsPm9mZjwvbGl0ZXJhbD4uCisgICAgICAgPC9w YXJhPgorICAgICAgIDxwYXJhPgorICAgICAgICBTZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgc2hh ZG93ZWQgYnkgY29sdW1uIHJlZmVyZW5jZXMgaW4gYSBxdWVyeSwgdGhpcworICAgICAgICBpcyBh biBleHBlY3RlZCBiZWhhdmlvci4gIFByZXZpb3VzbHkgd29ya2luZyBxdWVyaWVzIHNob3VsZG4n dCBlcnJvciBvdXQKKyAgICAgICAgYnkgY3JlYXRpbmcgYW55IHNlc3Npb24gdmFyaWFibGUsIHNv IHNlc3Npb24gdmFyaWFibGVzIGFyZSBhbHdheXMgc2hhZG93ZWQKKyAgICAgICAgaWYgYW4gaWRl bnRpZmllciBpcyBhbWJpZ3VvdXMuICBWYXJpYWJsZXMgc2hvdWxkIGJlIHJlZmVyZW5jZWQgdXNp bmcKKyAgICAgICAgYW51bmFtYmlndW91cyBpZGVudGlmaWVyIHdpdGhvdXQgYW55IHBvc3NpYmls aXR5IGZvciBhIGNvbGxpc2lvbiB3aXRoCisgICAgICAgIGlkZW50aWZpZXIgb2Ygb3RoZXIgZGF0 YWJhc2Ugb2JqZWN0cyAoY29sdW1uIG5hbWVzIG9yIHJlY29yZCBmaWVsZHMgbmFtZXMpLgorICAg ICAgICBUaGUgd2FybmluZyBtZXNzYWdlcyBlbWl0dGVkIHdoZW4gZW5hYmxpbmcgPHZhcm5hbWU+ c2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmc8L3Zhcm5hbWU+CisgICAgICAgIGNh biBoZWxwIGZpbmRpbmcgc3VjaCBpZGVudGlmaWVyIGNvbGxpc2lvbi4KKzxwcm9ncmFtbGlzdGlu Zz4KK0NSRUFURSBUQUJMRSBmb28oYSBpbnQpOworSU5TRVJUIElOVE8gZm9vIFZBTFVFUygxMCk7 CitDUkVBVEUgVkFSSUFCTEUgYSBpbnQ7CitMRVQgYSA9IDEwMDsKK1NFTEVDVCBhIEZST00gZm9v OworPC9wcm9ncmFtbGlzdGluZz4KKworPHNjcmVlbj4KKyBhCistLS0tCisgMTAKKygxIHJvdykK Kzwvc2NyZWVuPgorCis8cHJvZ3JhbWxpc3Rpbmc+CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1i aWd1aXR5X3dhcm5pbmcgVE8gb247CitTRUxFQ1QgYSBGUk9NIGZvbzsKKzwvcHJvZ3JhbWxpc3Rp bmc+CisKKzxzY3JlZW4+CitXQVJOSU5HOiAgc2Vzc2lvbiB2YXJpYWJsZSAiYSIgaXMgc2hhZG93 ZWQKK0xJTkUgMTogU0VMRUNUIGEgRlJPTSBmb287CisgICAgICAgICAgICAgICBeCitERVRBSUw6 ICBTZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgc2hhZG93ZWQgYnkgY29sdW1ucywgcm91dGluZSdz IHZhcmlhYmxlcyBhbmQgcm91dGluZSdzIGFyZ3VtZW50cyB3aXRoIHRoZSBzYW1lIG5hbWUuCisg YQorLS0tLQorIDEwCisoMSByb3cpCis8L3NjcmVlbj4KKyAgICAgICA8L3BhcmE+CisgICAgICAg PHBhcmE+CisgICAgICAgIFRoaXMgZmVhdHVyZSBjYW4gc2lnbmlmaWNhbnRseSBpbmNyZWFzZSBs b2cgc2l6ZSwgc28gaXQncyBkaXNhYmxlZCBieQorICAgICAgICBkZWZhdWx0LiAgRm9yIHRlc3Rp bmcgb3IgZGV2ZWxvcG1lbnQgZW52aXJvbm1lbnRzIGl0J3MgcmVjb21tZW5kZWQgdG8KKyAgICAg ICAgZW5hYmxlIGl0IGlmIHlvdSB1c2Ugc2Vzc2lvbiB2YXJpYWJsZXMuCisgICAgICAgPC9wYXJh PgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKICAgICAgPHZhcmxp c3RlbnRyeSBpZD0iZ3VjLXN0YW5kYXJkLWNvbmZvcm1pbmctc3RyaW5ncyIgeHJlZmxhYmVsPSJz dGFuZGFyZF9jb25mb3JtaW5nX3N0cmluZ3MiPgogICAgICAgPHRlcm0+PHZhcm5hbWU+c3RhbmRh cmRfY29uZm9ybWluZ19zdHJpbmdzPC92YXJuYW1lPiAoPHR5cGU+Ym9vbGVhbjwvdHlwZT4pCiAg ICAgICA8aW5kZXh0ZXJtPjxwcmltYXJ5PnN0cmluZ3M8L3ByaW1hcnk+PHNlY29uZGFyeT5zdGFu ZGFyZCBjb25mb3JtaW5nPC9zZWNvbmRhcnk+PC9pbmRleHRlcm0+CmRpZmYgLS1naXQgYS9kb2Mv c3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKaW5kZXggMzdkMmZhMDFj Yi4uMWRlZTBhYzI4ZCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCisrKyBiL2Rv Yy9zcmMvc2dtbC9kZGwuc2dtbApAQCAtNTQxOCw2ICs1NDE4LDE3IEBAIFNFTEVDVCBuYW1lIEZS T00gZm9vOwogIEFsaWNlCiA8L3Byb2dyYW1saXN0aW5nPgogICAgPC9wYXJhPgorCisgICA8cGFy YT4KKyAgICBXaGVuIGEgcXVlcnkgY29udGFpbnMgaWRlbnRpZmllcnMgb3IgcXVhbGlmaWVkIGlk ZW50aWZpZXJzIHRoYXQgY291bGQgYmUKKyAgICB1c2VkIGFzIGJvdGggYSBzZXNzaW9uIHZhcmlh YmxlIGlkZW50aWZpZXJzIGFuZCBhcyBjb2x1bW4gaWRlbnRpZmllciwKKyAgICB0aGVuIHRoZSBj b2x1bW4gaWRlbnRpZmllciBpcyBwcmVmZXJyZWQgZXZlcnkgdGltZS4gIFdhcm5pbmdzIGNhbiBi ZQorICAgIGVtaXR0ZWQgd2hlbiB0aGlzIHNpdHVhdGlvbiBoYXBwZW5zIGJ5IGVuYWJsaW5nIGNv bmZpZ3VyYXRpb24gcGFyYW1ldGVyIDx4cmVmCisgICAgbGlua2VuZD0iZ3VjLXNlc3Npb24tdmFy aWFibGVzLWFtYmlndWl0eS13YXJuaW5nIi8+LiBVc2VyIGNhbiBleHBsaWNpdGx5CisgICAgcXVh bGlmeSB0aGUgc291cmNlIG9iamVjdCBieSBzeW50YXggPGxpdGVyYWw+dGFibGUuY29sdW1uPC9s aXRlcmFsPiBvcgorICAgIDxsaXRlcmFsPnNjaGVtYS52YXJpYWJsZTwvbGl0ZXJhbD4uIEl0IGlz IHN0cm9uZ2x5IHJlY29tbWVuZGVkIHRvIHJlbmFtZQorICAgIHNoYWRvd2VkIHZhcmlhYmxlcyBv ciB1c2UgcXVhbGlmaWVkIG5hbWVzIGFsd2F5cy4KKyAgIDwvcGFyYT4KICAgPC9zZWN0MT4KIAog IDxzZWN0MSBpZD0iZGRsLW90aGVycyI+CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfZXhwci5jIGIvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2V4cHIuYwppbmRleCAxZWQw NzUxMmMwLi5iM2M1MWFmOGNmIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvcGFyc2Vf ZXhwci5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKQEAgLTQ1LDYgKzQ1 LDcgQEAKIAogLyogR1VDIHBhcmFtZXRlcnMgKi8KIGJvb2wJCVRyYW5zZm9ybV9udWxsX2VxdWFs cyA9IGZhbHNlOworYm9vbAkJc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgPSBm YWxzZTsKIAogCiBzdGF0aWMgTm9kZSAqdHJhbnNmb3JtRXhwclJlY3Vyc2UoUGFyc2VTdGF0ZSAq cHN0YXRlLCBOb2RlICpleHByKTsKQEAgLTk2MCwxMSArOTYxLDUxIEBAIHRyYW5zZm9ybUNvbHVt blJlZihQYXJzZVN0YXRlICpwc3RhdGUsIENvbHVtblJlZiAqY3JlZikKIAkJICoKIAkJICogU0VM RUNUIGZvby5hLCBmb28uYiwgZm9vLmMgRlJPTSBmb287CiAJCSAqCi0JCSAqIEhvd2V2ZXIsIHRo YXQgaXMgdmVyeSBjb25mdXNpbmcsIHNvIHdlIGRpc2FsbG93IGl0LiAgV2UgZG9uJ3QgdHJ5IHRv Ci0JCSAqIGlkZW50aWZ5IGEgdmFyaWFibGUgaWYgd2Uga25vdyB0aGF0IGl0IHdvdWxkIGJlIHNo YWRvd2VkLgotCQkgKiAtLS0tLQorCQkgKiBIb3dldmVyLCB0aGF0IGlzIHZlcnkgY29uZnVzaW5n LCBzbyB3ZSBkaXNhbGxvdyBpdC4KKwkJICoKKwkJICogV2hlbiBzZXNzaW9uX3ZhcmlhYmxlc19h bWJpZ3VpdHlfd2FybmluZyBpcyByZXF1ZXN0ZWQsIHRoZW4gd2UKKwkJICogbmVlZCB0byBpZGVu dGlmeSBhIHZhcmlhYmxlIGFsdGhvdWdoIHdlIGtub3csIHNvIHRoaXMgdmFyaWFibGUKKwkJICog d291bGQgYmUgc2hhZG93ZWQuCiAJCSAqLwotCQlpZiAoIW5vZGUgJiYgIShyZWxuYW1lICYmIGNy ZXJyID09IENSRVJSX05PX0NPTFVNTikpCisJCWlmIChub2RlIHx8IChyZWxuYW1lICYmIGNyZXJy ID09IENSRVJSX05PX0NPTFVNTikpCisJCXsKKwkJCS8qCisJCQkgKiBJbiB0aGlzIHBhdGggd2Ug anVzdCB0cnkgKGlmIGl0IGlzIHdhbnRlZCkgZGV0ZWN0IGlmIHNlc3Npb24KKwkJCSAqIHZhcmlh YmxlIGlzIHNoYWRvd2VkLgorCQkJICovCisJCQlpZiAoc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1 aXR5X3dhcm5pbmcpCisJCQl7CisJCQkJLyoKKwkJCQkgKiBUaGUgQWNjZXNzU2hhcmVMb2NrIGlz IGNyZWF0ZWQgb24gcmVsYXRlZCBzZXNzaW9uIHZhcmlhYmxlLgorCQkJCSAqIFRoZSBsb2NrIHdp bGwgYmUga2VwdCBmb3IgdGhlIHdob2xlIHRyYW5zYWN0aW9uLgorCQkJCSAqLworCQkJCXZhcmlk ID0gSWRlbnRpZnlWYXJpYWJsZShjcmVmLT5maWVsZHMsICZhdHRybmFtZSwgJm5vdF91bmlxdWUs IHRydWUpOworCisJCQkJaWYgKE9pZElzVmFsaWQodmFyaWQpKQorCQkJCXsKKwkJCQkJLyogdGhp cyBwYXRoIHdpbGwgZW5kaW5nIGJ5IFdBUk5JTkcuIFVubG9jayB2YXJpYWJsZSBmaXJzdCAqLwor CQkJCQlVbmxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLCAwLCBB Y2Nlc3NTaGFyZUxvY2spOworCisJCQkJCWlmIChub2RlKQorCQkJCQkJZXJlcG9ydChXQVJOSU5H LAorCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0FNQklHVU9VU19DT0xVTU4pLAorCQkJCQkJCQkg ZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiBpcyBzaGFkb3dlZCIsCisJCQkJCQkJCQkJ TmFtZUxpc3RUb1N0cmluZyhjcmVmLT5maWVsZHMpKSwKKwkJCQkJCQkJIGVycmRldGFpbCgiU2Vz c2lvbiB2YXJpYWJsZXMgY2FuIGJlIHNoYWRvd2VkIGJ5IGNvbHVtbnMsIHJvdXRpbmUncyB2YXJp YWJsZXMgYW5kIHJvdXRpbmUncyBhcmd1bWVudHMgd2l0aCB0aGUgc2FtZSBuYW1lLiIpLAorCQkJ CQkJCQkgcGFyc2VyX2VycnBvc2l0aW9uKHBzdGF0ZSwgY3JlZi0+bG9jYXRpb24pKSk7CisJCQkJ CWVsc2UKKwkJCQkJCS8qIHNlc3Npb24gdmFyaWFibGUgaXMgc2hhZG93ZWQgYnkgUlRFICovCisJ CQkJCQllcmVwb3J0KFdBUk5JTkcsCisJCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfQU1CSUdVT1VT X0NPTFVNTiksCisJCQkJCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlcy4lc1wiIGlz IHNoYWRvd2VkIiwKKwkJCQkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFy aWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVf bmFtZSh2YXJpZCkpLAorCQkJCQkJCQkgZXJyZGV0YWlsKCJTZXNzaW9uIHZhcmlhYmxlcyBjYW4g YmUgc2hhZG93ZWQgYnkgdGFibGVzIG9yIHRhYmxlJ3MgYWxpYXNlcyB3aXRoIHRoZSBzYW1lIG5h bWUuIiksCisJCQkJCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBjcmVmLT5sb2NhdGlv bikpKTsKKwkJCQl9CisJCQl9CisJCX0KKwkJZWxzZQogCQl7CiAJCQkvKiB0YWtlcyBhbiBBY2Nl c3NTaGFyZUxvY2sgb24gdGhlIHNlc3Npb24gdmFyaWFibGUgKi8KIAkJCXZhcmlkID0gSWRlbnRp ZnlWYXJpYWJsZShjcmVmLT5maWVsZHMsICZhdHRybmFtZSwgJm5vdF91bmlxdWUsIGZhbHNlKTsK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvZ3VjX3RhYmxlcy5jIGIvc3JjL2Jh Y2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKaW5kZXggYzlkOGNkNzk2YS4uNjQ3ZmExZjY0 YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKKysrIGIv c3JjL2JhY2tlbmQvdXRpbHMvbWlzYy9ndWNfdGFibGVzLmMKQEAgLTE2MDUsNiArMTYwNSwxNSBA QCBzdHJ1Y3QgY29uZmlnX2Jvb2wgQ29uZmlndXJlTmFtZXNCb29sW10gPQogCQlmYWxzZSwKIAkJ TlVMTCwgTlVMTCwgTlVMTAogCX0sCisJeworCQl7InNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0 eV93YXJuaW5nIiwgUEdDX1VTRVJTRVQsIENMSUVOVF9DT05OX1NUQVRFTUVOVCwKKwkJCWdldHRl eHRfbm9vcCgiUmFpc2UgYSB3YXJuaW5nIHdoZW4gcmVmZXJlbmNlIHRvIGEgc2Vzc2lvbiB2YXJp YWJsZSBpcyBhbWJpZ3VvdXMuIiksCisJCQlOVUxMCisJCX0sCisJCSZzZXNzaW9uX3ZhcmlhYmxl c19hbWJpZ3VpdHlfd2FybmluZywKKwkJZmFsc2UsCisJCU5VTEwsIE5VTEwsIE5VTEwKKwl9LAog CXsKIAkJeyJkZWZhdWx0X3RyYW5zYWN0aW9uX3JlYWRfb25seSIsIFBHQ19VU0VSU0VULCBDTElF TlRfQ09OTl9TVEFURU1FTlQsCiAJCQlnZXR0ZXh0X25vb3AoIlNldHMgdGhlIGRlZmF1bHQgcmVh ZC1vbmx5IHN0YXR1cyBvZiBuZXcgdHJhbnNhY3Rpb25zLiIpLApkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvdXRpbHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlIGIvc3JjL2JhY2tlbmQvdXRp bHMvbWlzYy9wb3N0Z3Jlc3FsLmNvbmYuc2FtcGxlCmluZGV4IGIyYmM0MzM4M2QuLjI0Y2Q2YTJj ZjUgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL21pc2MvcG9zdGdyZXNxbC5jb25mLnNh bXBsZQorKysgYi9zcmMvYmFja2VuZC91dGlscy9taXNjL3Bvc3RncmVzcWwuY29uZi5zYW1wbGUK QEAgLTcxNyw2ICs3MTcsNyBAQCBhdXRvdmFjdXVtX3dvcmtlcl9zbG90cyA9IDE2CSMgYXV0b3Zh Y3V1bSB3b3JrZXIgc2xvdHMgdG8gYWxsb2NhdGUKICNkZWZhdWx0X3RyYW5zYWN0aW9uX3JlYWRf b25seSA9IG9mZgogI2RlZmF1bHRfdHJhbnNhY3Rpb25fZGVmZXJyYWJsZSA9IG9mZgogI3Nlc3Np b25fcmVwbGljYXRpb25fcm9sZSA9ICdvcmlnaW4nCisjc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1 aXR5X3dhcm5pbmcgPSBvZmYKICNzdGF0ZW1lbnRfdGltZW91dCA9IDAJCQkJIyBpbiBtaWxsaXNl Y29uZHMsIDAgaXMgZGlzYWJsZWQKICN0cmFuc2FjdGlvbl90aW1lb3V0ID0gMAkJCSMgaW4gbWls bGlzZWNvbmRzLCAwIGlzIGRpc2FibGVkCiAjbG9ja190aW1lb3V0ID0gMAkJCQkjIGluIG1pbGxp c2Vjb25kcywgMCBpcyBkaXNhYmxlZApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvcGFyc2VyL3Bh cnNlX2V4cHIuaCBiL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9leHByLmgKaW5kZXggZWZiYWZm OGU3MS4uZDIyMDkwNzAxOCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvcGFyc2VyL3BhcnNlX2V4 cHIuaAorKysgYi9zcmMvaW5jbHVkZS9wYXJzZXIvcGFyc2VfZXhwci5oCkBAIC0xNyw2ICsxNyw3 IEBACiAKIC8qIEdVQyBwYXJhbWV0ZXJzICovCiBleHRlcm4gUEdETExJTVBPUlQgYm9vbCBUcmFu c2Zvcm1fbnVsbF9lcXVhbHM7CitleHRlcm4gUEdETExJTVBPUlQgYm9vbCBzZXNzaW9uX3Zhcmlh Ymxlc19hbWJpZ3VpdHlfd2FybmluZzsKIAogZXh0ZXJuIE5vZGUgKnRyYW5zZm9ybUV4cHIoUGFy c2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpleHByLCBQYXJzZUV4cHJLaW5kIGV4cHJLaW5kKTsKIApk aWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lvbl92 YXJpYWJsZS5vdXQgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9u X3ZhcmlhYmxlLm91dAppbmRleCBhYjc3OTkwMDU5Li5hNjUyM2Y3YWZlIDEwMDY0NAotLS0gYS9z cmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dAor KysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxl Lm91dApAQCAtMzU0LDYgKzM1NCwzOSBAQCAkJDsKIE5PVElDRTogIHNlc3Npb24gdmFyaWFibGUg aXMgMTAwCiBOT1RJQ0U6ICBwbHBnc3FsIHZhcmlhYmxlIGlzIDEwMDAKIE5PVElDRTogIHZhcmlh YmxlIGlzIDEwMDAKKy0tIGFnYWludCB3aXRoIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93 YXJuaW5nKG9uKQorU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9u OworRE8gJCQKKzw8bXlibG9jaz4+CitERUNMQVJFIHBscGdzcWxfc3ZfdmFyMSBpbnQ7CitCRUdJ TgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gMTAwOworCisgIC0tIHNob3VsZCBiZSBvayB3aXRo b3V0IHdhcm5pbmcKKyAgcGxwZ3NxbF9zdl92YXIxIDo9IDEwMDA7CisKKyAgLS0gc2hvdWxkIGJl IG9rIHdpdGhvdXQgd2FybmluZworICAtLSBwcmludCAxMDA7CisgIFJBSVNFIE5PVElDRSAnc2Vz c2lvbiB2YXJpYWJsZSBpcyAlJywgcHVibGljLnBscGdzcWxfc3ZfdmFyMTsKKworICAtLSBzaG91 bGQgYmUgb2sgd2l0aG91dCB3YXJuaW5nCisgIC0tIHByaW50IDEwMDAKKyAgUkFJU0UgTk9USUNF ICdwbHBnc3FsIHZhcmlhYmxlIGlzICUnLCBteWJsb2NrLnBscGdzcWxfc3ZfdmFyMTsKKworICAt LSBzaG91bGQgdG8gcHJpbnQgcGxwZ3NxbCB2YXJpYWJsZSB3aXRoIHdhcm5pbmcKKyAgLS0gcHJp bnQgMTAwMAorICBSQUlTRSBOT1RJQ0UgJ3ZhcmlhYmxlIGlzICUnLCBwbHBnc3FsX3N2X3ZhcjE7 CitFTkQ7CiskJDsKK05PVElDRTogIHNlc3Npb24gdmFyaWFibGUgaXMgMTAwCitOT1RJQ0U6ICBw bHBnc3FsIHZhcmlhYmxlIGlzIDEwMDAKK1dBUk5JTkc6ICBzZXNzaW9uIHZhcmlhYmxlICJwbHBn c3FsX3N2X3ZhcjEiIGlzIHNoYWRvd2VkCitMSU5FIDE6IHBscGdzcWxfc3ZfdmFyMQorICAgICAg ICBeCitERVRBSUw6ICBTZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgc2hhZG93ZWQgYnkgY29sdW1u cywgcm91dGluZSdzIHZhcmlhYmxlcyBhbmQgcm91dGluZSdzIGFyZ3VtZW50cyB3aXRoIHRoZSBz YW1lIG5hbWUuCitRVUVSWTogIHBscGdzcWxfc3ZfdmFyMQorTk9USUNFOiAgdmFyaWFibGUgaXMg MTAwMAorU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9mZjsKIERS T1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxOwogLS0gdGhlIHZhbHVlIHNob3VsZCBub3QgYmUg Y29ycnVwdGVkCiBDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92IHRleHQ7CmRpZmYgLS1naXQg YS9zcmMvcGwvcGxwZ3NxbC9zcmMvc3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwgYi9z cmMvcGwvcGxwZ3NxbC9zcmMvc3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwKaW5kZXgg YTNjYzI2NGNmMy4uOWI4ZTkwZTgxZiAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwvc3JjL3Nx bC9wbHBnc3FsX3Nlc3Npb25fdmFyaWFibGUuc3FsCisrKyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9z cWwvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLnNxbApAQCAtMjYwLDYgKzI2MCwzNSBAQCBCRUdJ TgogRU5EOwogJCQ7CiAKKy0tIGFnYWludCB3aXRoIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0 eV93YXJuaW5nKG9uKQorCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcg VE8gb247CisKK0RPICQkCis8PG15YmxvY2s+PgorREVDTEFSRSBwbHBnc3FsX3N2X3ZhcjEgaW50 OworQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMSA9IDEwMDsKKworICAtLSBzaG91bGQgYmUg b2sgd2l0aG91dCB3YXJuaW5nCisgIHBscGdzcWxfc3ZfdmFyMSA6PSAxMDAwOworCisgIC0tIHNo b3VsZCBiZSBvayB3aXRob3V0IHdhcm5pbmcKKyAgLS0gcHJpbnQgMTAwOworICBSQUlTRSBOT1RJ Q0UgJ3Nlc3Npb24gdmFyaWFibGUgaXMgJScsIHB1YmxpYy5wbHBnc3FsX3N2X3ZhcjE7CisKKyAg LS0gc2hvdWxkIGJlIG9rIHdpdGhvdXQgd2FybmluZworICAtLSBwcmludCAxMDAwCisgIFJBSVNF IE5PVElDRSAncGxwZ3NxbCB2YXJpYWJsZSBpcyAlJywgbXlibG9jay5wbHBnc3FsX3N2X3ZhcjE7 CisKKyAgLS0gc2hvdWxkIHRvIHByaW50IHBscGdzcWwgdmFyaWFibGUgd2l0aCB3YXJuaW5nCisg IC0tIHByaW50IDEwMDAKKyAgUkFJU0UgTk9USUNFICd2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9z dl92YXIxOworRU5EOworJCQ7CisKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19hbWJpZ3VpdHlfd2Fy bmluZyBUTyBvZmY7CisKIERST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxOwogCiAtLSB0aGUg dmFsdWUgc2hvdWxkIG5vdCBiZSBjb3JydXB0ZWQKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0IGIvc3JjL3Rlc3QvcmVncmVzcy9leHBl Y3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQKaW5kZXggMjc4M2NhYTg0NC4uN2MzNTBhZDVlZiAx MDA2NDQKLS0tIGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5v dXQKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3ZhcmlhYmxlcy5vdXQK QEAgLTE1MjQsNiArMTUyNCw5IEBAIENSRUFURSBUQUJMRSB2YXJ0ZXN0X2ZvbyhhIGludCwgYiBp bnQpOwogSU5TRVJUIElOVE8gdmFydGVzdF9mb28gVkFMVUVTKDEwLDIwKSwgKDMwLDQwKTsKIENS RUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcnRlc3RfZm9vOwogTEVUIHZhcjEgPSAoMTAwLDIwMCk7 CistLSBubyB2YXJpYWJsZSBpcyBzaGFkb3dlZCBoZXJlCistLSBubyB3YXJuaW5nIGV4cGVjdGVk CitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb247CiAtLSBzaG91 bGQgdG8gZmFpbAogU0VMRUNUIHZhcjEuKiBGUk9NIHZhcnRlc3RfZm9vOwogRVJST1I6ICBtaXNz aW5nIEZST00tY2xhdXNlIGVudHJ5IGZvciB0YWJsZSAidmFyMSIKQEAgLTE1NDksNiArMTU1Miw3 IEBAIFNFTEVDVCBjb3VudCh2YXIxLiopIEZST00gdmFydGVzdF9mb28gdmFyMTsKICAgICAgMgog KDEgcm93KQogCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb2Zm OwogU0VUIFNFQVJDSF9QQVRIIFRPIERFRkFVTFQ7CiBEUk9QIFNDSEVNQSB2YXJ0ZXN0IENBU0NB REU7CiBOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIDIgb3RoZXIgb2JqZWN0cwpAQCAtMTk0Mywz ICsxOTQ3LDI1IEBAIFNFTEVDVCB2YXIxOwogKDEgcm93KQogCiBEUk9QIFZBUklBQkxFIHZhcjEs IHZhcjI7CistLSB0ZXN0IHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nCitDUkVB VEUgU0NIRU1BIHh4dGFiOworQ1JFQVRFIFZBUklBQkxFIHh4dGFiLmF2YXIgaW50OworQ1JFQVRF IFRBQkxFIHB1YmxpYy54eHRhYihhdmFyIGludCk7CitJTlNFUlQgSU5UTyBwdWJsaWMueHh0YWIg VkFMVUVTKDEpOworTEVUIHh4dGFiLmF2YXIgPSAyMDsKK1NFVCBzZXNzaW9uX3ZhcmlhYmxlc19h bWJpZ3VpdHlfd2FybmluZyBUTyBvbjsKKy0tLSBzaG91bGQgdG8gcmFpc2Ugd2FybmluZywgc2hv dyAxCitTRUxFQ1QgeHh0YWIuYXZhciBGUk9NIHB1YmxpYy54eHRhYjsKK1dBUk5JTkc6ICBzZXNz aW9uIHZhcmlhYmxlICJ4eHRhYi5hdmFyIiBpcyBzaGFkb3dlZAorTElORSAxOiBTRUxFQ1QgeHh0 YWIuYXZhciBGUk9NIHB1YmxpYy54eHRhYjsKKyAgICAgICAgICAgICAgIF4KK0RFVEFJTDogIFNl c3Npb24gdmFyaWFibGVzIGNhbiBiZSBzaGFkb3dlZCBieSBjb2x1bW5zLCByb3V0aW5lJ3MgdmFy aWFibGVzIGFuZCByb3V0aW5lJ3MgYXJndW1lbnRzIHdpdGggdGhlIHNhbWUgbmFtZS4KKyBhdmFy IAorLS0tLS0tCisgICAgMQorKDEgcm93KQorCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1 aXR5X3dhcm5pbmcgVE8gb2ZmOworRFJPUCBUQUJMRSBwdWJsaWMueHh0YWI7CitEUk9QIFNDSEVN QSB4eHRhYiBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byBzZXNzaW9uIHZhcmlh YmxlIHh4dGFiLmF2YXIKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25f dmFyaWFibGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNx bAppbmRleCBhNjI0YWI4YjY3Li42OGJlNDE1YmYyIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv c2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0xMDc5LDYgKzEwNzksMTAgQEAgSU5TRVJUIElOVE8g dmFydGVzdF9mb28gVkFMVUVTKDEwLDIwKSwgKDMwLDQwKTsKIENSRUFURSBWQVJJQUJMRSB2YXIx IEFTIHZhcnRlc3RfZm9vOwogTEVUIHZhcjEgPSAoMTAwLDIwMCk7CiAKKy0tIG5vIHZhcmlhYmxl IGlzIHNoYWRvd2VkIGhlcmUKKy0tIG5vIHdhcm5pbmcgZXhwZWN0ZWQKK1NFVCBzZXNzaW9uX3Zh cmlhYmxlc19hbWJpZ3VpdHlfd2FybmluZyBUTyBvbjsKKwogLS0gc2hvdWxkIHRvIGZhaWwKIFNF TEVDVCB2YXIxLiogRlJPTSB2YXJ0ZXN0X2ZvbzsKIApAQCAtMTA5MSw2ICsxMDk1LDggQEAgU0VM RUNUIGNvdW50KHZhcjEuKikgRlJPTSB2YXJ0ZXN0X2ZvbzsKIC0tIHNob3VsZCBiZSBvawogU0VM RUNUIGNvdW50KHZhcjEuKikgRlJPTSB2YXJ0ZXN0X2ZvbyB2YXIxOwogCitTRVQgc2Vzc2lvbl92 YXJpYWJsZXNfYW1iaWd1aXR5X3dhcm5pbmcgVE8gb2ZmOworCiBTRVQgU0VBUkNIX1BBVEggVE8g REVGQVVMVDsKIERST1AgU0NIRU1BIHZhcnRlc3QgQ0FTQ0FERTsKIApAQCAtMTMzNCwzICsxMzQw LDIzIEBAIEJFR0lOOyBEUk9QIFZBUklBQkxFIHZhcjE7IFJPTExCQUNLOwogU0VMRUNUIHZhcjE7 CiAKIERST1AgVkFSSUFCTEUgdmFyMSwgdmFyMjsKKworLS0gdGVzdCBzZXNzaW9uX3ZhcmlhYmxl c19hbWJpZ3VpdHlfd2FybmluZworQ1JFQVRFIFNDSEVNQSB4eHRhYjsKKworQ1JFQVRFIFZBUklB QkxFIHh4dGFiLmF2YXIgaW50OworCitDUkVBVEUgVEFCTEUgcHVibGljLnh4dGFiKGF2YXIgaW50 KTsKKworSU5TRVJUIElOVE8gcHVibGljLnh4dGFiIFZBTFVFUygxKTsKKworTEVUIHh4dGFiLmF2 YXIgPSAyMDsKKworU0VUIHNlc3Npb25fdmFyaWFibGVzX2FtYmlndWl0eV93YXJuaW5nIFRPIG9u OworLS0tIHNob3VsZCB0byByYWlzZSB3YXJuaW5nLCBzaG93IDEKK1NFTEVDVCB4eHRhYi5hdmFy IEZST00gcHVibGljLnh4dGFiOworCitTRVQgc2Vzc2lvbl92YXJpYWJsZXNfYW1iaWd1aXR5X3dh cm5pbmcgVE8gb2ZmOworCitEUk9QIFRBQkxFIHB1YmxpYy54eHRhYjsKK0RST1AgU0NIRU1BIHh4 dGFiIENBU0NBREU7Ci0tIAoyLjQ3LjEKCg== --0000000000007bfa26062b3fa8d1 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250109-0006-plpgsql-tests.patch" Content-Disposition: attachment; filename="v20250109-0006-plpgsql-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5ox16pv16 RnJvbSA0M2EwNmRkMTFhNGM4MGY3ZDNjYjUwYjYwOTZmMTQ4Mjc1ZTcwNzY2IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAxNDowNjowNiArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MDYvMjJdIHBscGdzcWwgdGVzdHMKCi0tLQogc3JjL3BsL3BscGdzcWwvc3JjL01ha2VmaWxlICAg ICAgICAgICAgICAgICAgIHwgICAzICstCiAuLi4vc3JjL2V4cGVjdGVkL3BscGdzcWxfc2Vzc2lv bl92YXJpYWJsZS5vdXQgfCAzODIgKysrKysrKysrKysrKysrKysrCiBzcmMvcGwvcGxwZ3NxbC9z cmMvbWVzb24uYnVpbGQgICAgICAgICAgICAgICAgfCAgIDEgKwogLi4uL3NyYy9zcWwvcGxwZ3Nx bF9zZXNzaW9uX3ZhcmlhYmxlLnNxbCAgICAgIHwgMjg5ICsrKysrKysrKysrKysKIDQgZmlsZXMg Y2hhbmdlZCwgNjc0IGluc2VydGlvbnMoKyksIDEgZGVsZXRpb24oLSkKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxl Lm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy9wbC9wbHBnc3FsL3NyYy9zcWwvcGxwZ3NxbF9z ZXNzaW9uX3ZhcmlhYmxlLnNxbAoKZGlmZiAtLWdpdCBhL3NyYy9wbC9wbHBnc3FsL3NyYy9NYWtl ZmlsZSBiL3NyYy9wbC9wbHBnc3FsL3NyYy9NYWtlZmlsZQppbmRleCA2M2NiOTZmYWUzLi5iYmNh ZTI3ZDQyIDEwMDY0NAotLS0gYS9zcmMvcGwvcGxwZ3NxbC9zcmMvTWFrZWZpbGUKKysrIGIvc3Jj L3BsL3BscGdzcWwvc3JjL01ha2VmaWxlCkBAIC0zNSw3ICszNSw4IEBAIFJFR1JFU1NfT1BUUyA9 IC0tZGJuYW1lPSQoUExfVEVTVERCKQogUkVHUkVTUyA9IHBscGdzcWxfYXJyYXkgcGxwZ3NxbF9j YWNoZSBwbHBnc3FsX2NhbGwgcGxwZ3NxbF9jb250cm9sIFwKIAlwbHBnc3FsX2NvcHkgcGxwZ3Nx bF9kb21haW4gcGxwZ3NxbF9taXNjIFwKIAlwbHBnc3FsX3JlY29yZCBwbHBnc3FsX3NpbXBsZSBw bHBnc3FsX3RyYW5zYWN0aW9uIFwKLQlwbHBnc3FsX3RyYXAgcGxwZ3NxbF90cmlnZ2VyIHBscGdz cWxfdmFycHJvcHMKKwlwbHBnc3FsX3RyYXAgcGxwZ3NxbF90cmlnZ2VyIHBscGdzcWxfdmFycHJv cHMgXAorCXBscGdzcWxfc2Vzc2lvbl92YXJpYWJsZQogCiAjIHdoZXJlIHRvIGZpbmQgZ2VuX2tl eXdvcmRsaXN0LnBsIGFuZCBzdWJzaWRpYXJ5IGZpbGVzCiBUT09MU0RJUiA9ICQodG9wX3NyY2Rp cikvc3JjL3Rvb2xzCmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMvZXhwZWN0ZWQvcGxw Z3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dCBiL3NyYy9wbC9wbHBnc3FsL3NyYy9leHBlY3RlZC9w bHBnc3FsX3Nlc3Npb25fdmFyaWFibGUub3V0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAuLmFiNzc5OTAwNTkKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvcGwvcGxwZ3NxbC9z cmMvZXhwZWN0ZWQvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLm91dApAQCAtMCwwICsxLDM4MiBA QAorLS0gdGVzdCBvZiBzZXNzaW9uIHZhcmlhYmxlcworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxf c3ZfdmFyIEFTIG51bWVyaWM7CitMRVQgcGxwZ3NxbF9zdl92YXIgPSBwaSgpOworLS0gcGFzc2lu ZyBwYXJhbWV0ZXJzIHRvIERPIGJsb2NrCitETyAkJAorQkVHSU4KKyAgUkFJU0UgTk9USUNFICd2 YWx1ZSBvZiBzZXNzaW9uIHZhcmlhYmxlIGlzICUnLCBwbHBnc3FsX3N2X3ZhcjsKK0VORDsKKyQk OworTk9USUNFOiAgdmFsdWUgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBpcyAzLjE0MTU5MjY1MzU4OTc5 CistLSBwYXNzaW5nIG91dHB1dCBmcm9tIERPIGJsb2NrOworRE8gJCQKK0JFR0lOCisgIExFVCBw bHBnc3FsX3N2X3ZhciA9IDIgKiBwaSgpOworRU5ECiskJDsKK1NFTEVDVCBwbHBnc3FsX3N2X3Zh ciBBUyAicGlfbXVsdGlwbHlfMiI7CisgIHBpX211bHRpcGx5XzIgICAKKy0tLS0tLS0tLS0tLS0t LS0tLQorIDYuMjgzMTg1MzA3MTc5NTkKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSBwbHBnc3Fs X3N2X3ZhcjsKKy0tIHRlc3QgYWNjZXNzIGZyb20gUEwvcGdTUUwKK0NSRUFURSBWQVJJQUJMRSBw bHBnc3FsX3N2X3ZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMiBB UyBudW1lcmljOworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMyBBUyB2YXJjaGFyOwor Q1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gd3JpdGVyX2Z1bmMoKQorUkVUVVJOUyB2b2lkIEFT ICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gMTA7CisgIExFVCBwbHBnc3FsX3N2 X3ZhcjIgPSBwaSgpOworICAtLSB2ZXJ5IGxvbmcgdmFsdWUKKyAgTEVUIHBscGdzcWxfc3ZfdmFy MyA9IGZvcm1hdCgnKCVzKScsIHJlcGVhdCgnKicsIDEwMDAwKSk7CitFTkQ7CiskJCBMQU5HVUFH RSBwbHBnc3FsOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdXBkYXRlcl9mdW5jKCkKK1JF VFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMSA9IHBscGdzcWxf c3ZfdmFyMSArIDEwMDsKKyAgTEVUIHBscGdzcWxfc3ZfdmFyMiA9IHBscGdzcWxfc3ZfdmFyMiAr IDEwMDAwMDAwMDAwMDsKKyAgLS0gdmVyeSBsb25nIHZhbHVlCisgIExFVCBwbHBnc3FsX3N2X3Zh cjMgPSBwbHBnc3FsX3N2X3ZhcjMgfHwgZm9ybWF0KCcoJXMpJywgcmVwZWF0KCcqJywgMTAwMDAp KTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElP TiByZWFkZXJfZnVuYygpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0JFR0lOCisgIFJBSVNFIE5PVElD RSAndmFyMSA9ICUnLCBwbHBnc3FsX3N2X3ZhcjE7CisgIFJBSVNFIE5PVElDRSAndmFyMiA9ICUn LCBwbHBnc3FsX3N2X3ZhcjI7CisgIFJBSVNFIE5PVElDRSAnbGVuZ3RoIG9mIHZhcjMgPSAlJywg bGVuZ3RoKHBscGdzcWxfc3ZfdmFyMyk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworLS0g ZXhlY3V0ZSBpbiBhIHRyYW5zYWN0aW9uCitCRUdJTjsKK1NFTEVDVCB3cml0ZXJfZnVuYygpOwor IHdyaXRlcl9mdW5jIAorLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgcmVhZGVy X2Z1bmMoKTsKK05PVElDRTogIHZhcjEgPSAxMAorTk9USUNFOiAgdmFyMiA9IDMuMTQxNTkyNjUz NTg5NzkKK05PVElDRTogIGxlbmd0aCBvZiB2YXIzID0gMTAwMDIKKyByZWFkZXJfZnVuYyAKKy0t LS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHVwZGF0ZXJfZnVuYygpOworIHVwZGF0 ZXJfZnVuYyAKKy0tLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCByZWFkZXJfZnVu YygpOworTk9USUNFOiAgdmFyMSA9IDExMAorTk9USUNFOiAgdmFyMiA9IDEwMDAwMDAwMDAwMy4x NDE1OTI2NTM1ODk3OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAyMDAwNAorIHJlYWRlcl9m dW5jIAorLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitFTkQ7CistLSBleGVjdXRlIG91dHNp ZGUgb2YgYSB0cmFuc2FjdGlvbgorU0VMRUNUIHdyaXRlcl9mdW5jKCk7Cisgd3JpdGVyX2Z1bmMg CistLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK1NFTEVDVCByZWFkZXJfZnVuYygpOworTk9U SUNFOiAgdmFyMSA9IDEwCitOT1RJQ0U6ICB2YXIyID0gMy4xNDE1OTI2NTM1ODk3OQorTk9USUNF OiAgbGVuZ3RoIG9mIHZhcjMgPSAxMDAwMgorIHJlYWRlcl9mdW5jIAorLS0tLS0tLS0tLS0tLQor IAorKDEgcm93KQorCitTRUxFQ1QgdXBkYXRlcl9mdW5jKCk7CisgdXBkYXRlcl9mdW5jIAorLS0t LS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHJlYWRlcl9mdW5jKCk7CitOT1RJQ0U6 ICB2YXIxID0gMTEwCitOT1RJQ0U6ICB2YXIyID0gMTAwMDAwMDAwMDAzLjE0MTU5MjY1MzU4OTc5 CitOT1RJQ0U6ICBsZW5ndGggb2YgdmFyMyA9IDIwMDA0CisgcmVhZGVyX2Z1bmMgCistLS0tLS0t LS0tLS0tCisgCisoMSByb3cpCisKKy0tIGV4ZWN1dGUgaW5zaWRlIGEgUEwvcGdTUUwgYmxvY2sK K0RPICQkCitCRUdJTgorICBQRVJGT1JNIHdyaXRlcl9mdW5jKCk7CisgIFBFUkZPUk0gcmVhZGVy X2Z1bmMoKTsKKyAgUEVSRk9STSB1cGRhdGVyX2Z1bmMoKTsKKyAgUEVSRk9STSByZWFkZXJfZnVu YygpOworRU5EOworJCQ7CitOT1RJQ0U6ICB2YXIxID0gMTAKK05PVElDRTogIHZhcjIgPSAzLjE0 MTU5MjY1MzU4OTc5CitOT1RJQ0U6ICBsZW5ndGggb2YgdmFyMyA9IDEwMDAyCitOT1RJQ0U6ICB2 YXIxID0gMTEwCitOT1RJQ0U6ICB2YXIyID0gMTAwMDAwMDAwMDAzLjE0MTU5MjY1MzU4OTc5CitO T1RJQ0U6ICBsZW5ndGggb2YgdmFyMyA9IDIwMDA0CistLSBwbGFuIGNhY2hlcyBzaG91bGQgYmUg Y29ycmVjdGx5IGludmFsaWRhdGVkCitEUk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSwgcGxw Z3NxbF9zdl92YXIyLCBwbHBnc3FsX3N2X3ZhcjM7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9z dl92YXIxIEFTIGludDsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjIgQVMgbnVtZXJp YzsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjMgQVMgdmFyY2hhcjsKKy0tIHNob3Vs ZCB3b3JrIGFnYWluCitETyAkJAorQkVHSU4KKyAgUEVSRk9STSB3cml0ZXJfZnVuYygpOworICBQ RVJGT1JNIHJlYWRlcl9mdW5jKCk7CisgIFBFUkZPUk0gdXBkYXRlcl9mdW5jKCk7CisgIFBFUkZP Uk0gcmVhZGVyX2Z1bmMoKTsKK0VORDsKKyQkOworTk9USUNFOiAgdmFyMSA9IDEwCitOT1RJQ0U6 ICB2YXIyID0gMy4xNDE1OTI2NTM1ODk3OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAxMDAw MgorTk9USUNFOiAgdmFyMSA9IDExMAorTk9USUNFOiAgdmFyMiA9IDEwMDAwMDAwMDAwMy4xNDE1 OTI2NTM1ODk3OQorTk9USUNFOiAgbGVuZ3RoIG9mIHZhcjMgPSAyMDAwNAorRFJPUCBWQVJJQUJM RSBwbHBnc3FsX3N2X3ZhcjEsIHBscGdzcWxfc3ZfdmFyMiwgcGxwZ3NxbF9zdl92YXIzOworRFJP UCBGVU5DVElPTiB3cml0ZXJfZnVuYzsKK0RST1AgRlVOQ1RJT04gcmVhZGVyX2Z1bmM7CitEUk9Q IEZVTkNUSU9OIHVwZGF0ZXJfZnVuYzsKKy0tIGFub3RoZXIgY2hlY2sgb2YgY29ycmVjdCBwbGFu IGNhY2hlIGludmFsaWRhdGlvbgorQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBp bnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIyIEFTIGludFtdOworQ1JFQVRFIE9S IFJFUExBQ0UgRlVOQ1RJT04gdGVzdF9mdW5jKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorREVDTEFS RSB2IGludFtdIERFRkFVTFQgJ3t9JzsKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAx OworICB2W3BscGdzcWxfc3ZfdmFyMV0gPSAxMDA7CisgIFJBSVNFIE5PVElDRSAnJScsIHY7Cisg IExFVCBwbHBnc3FsX3N2X3ZhcjIgPSB2OworICBMRVQgcGxwZ3NxbF9zdl92YXIyW3BscGdzcWxf c3ZfdmFyMV0gPSAtMTsKKyAgUkFJU0UgTk9USUNFICclJywgcGxwZ3NxbF9zdl92YXIyOworRU5E OworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK1NFTEVDVCB0ZXN0X2Z1bmMoKTsKK05PVElDRTogIHsx MDB9CitOT1RJQ0U6ICB7LTF9CisgdGVzdF9mdW5jIAorLS0tLS0tLS0tLS0KKyAKKygxIHJvdykK KworRFJPUCBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEsIHBscGdzcWxfc3ZfdmFyMjsKK0NSRUFU RSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHBscGdz cWxfc3ZfdmFyMiBBUyBpbnRbXTsKK1NFTEVDVCB0ZXN0X2Z1bmMoKTsKK05PVElDRTogIHsxMDB9 CitOT1RJQ0U6ICB7LTF9CisgdGVzdF9mdW5jIAorLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKwor RFJPUCBGVU5DVElPTiB0ZXN0X2Z1bmMoKTsKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIx LCBwbHBnc3FsX3N2X3ZhcjI7CistLSBjaGVjayBzZWN1cmUgYWNjZXNzCitDUkVBVEUgUk9MRSBy ZWdyZXNzX3Zhcl9vd25lcl9yb2xlOworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJfcmVhZGVyX3Jv bGU7CitDUkVBVEUgUk9MRSByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CitHUkFOVCBBTEwgT04gU0NI RU1BIHB1YmxpYyBUTyByZWdyZXNzX3Zhcl9vd25lcl9yb2xlLCByZWdyZXNzX3Zhcl9yZWFkZXJf cm9sZSwgcmVncmVzc192YXJfZXhlY19yb2xlOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfb3du ZXJfcm9sZTsKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgQVMgaW50OworTEVUIHBs cGdzcWxfc3ZfdmFyMSA9IDEwOworU0VUIFJPTEUgVE8gREVGQVVMVDsKK1NFVCBST0xFIFRPIHJl Z3Jlc3NfdmFyX3JlYWRlcl9yb2xlOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gdmFyX3Jl YWRfZnVuYygpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAnJScs IHBscGdzcWxfc3ZfdmFyMTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWwgU0VDVVJJVFkgREVG SU5FUjsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl9leGVj X3JvbGU7CistLSBzaG91bGQgZmFpbAorU0VMRUNUIHZhcl9yZWFkX2Z1bmMoKTsKK0VSUk9SOiAg cGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgcGxwZ3NxbF9zdl92YXIxCitD T05URVhUOiAgUEwvcGdTUUwgZXhwcmVzc2lvbiAicGxwZ3NxbF9zdl92YXIxIgorUEwvcGdTUUwg ZnVuY3Rpb24gdmFyX3JlYWRfZnVuYygpIGxpbmUgMyBhdCBSQUlTRQorU0VUIFJPTEUgVE8gREVG QVVMVDsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX293bmVyX3JvbGU7CitHUkFOVCBTRUxFQ1Qg T04gVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxIFRPIHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xlOwor U0VUIFJPTEUgVE8gREVGQVVMVDsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsK Ky0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcl9yZWFkX2Z1bmMoKTsKK05PVElDRTogIDEwCisg dmFyX3JlYWRfZnVuYyAKKy0tLS0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRVQgUk9MRSBU TyBERUZBVUxUOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfb3duZXJfcm9sZTsKK0RST1AgVkFS SUFCTEUgcGxwZ3NxbF9zdl92YXIxOworU0VUIFJPTEUgVE8gREVGQVVMVDsKK1NFVCBST0xFIFRP IHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKy0tIHNob3VsZCBmYWlsLCBidXQgbm90IGNyYXNoCitT RUxFQ1QgdmFyX3JlYWRfZnVuYygpOworRVJST1I6ICBjb2x1bW4gInBscGdzcWxfc3ZfdmFyMSIg ZG9lcyBub3QgZXhpc3QKK0xJTkUgMTogcGxwZ3NxbF9zdl92YXIxCisgICAgICAgIF4KK1FVRVJZ OiAgcGxwZ3NxbF9zdl92YXIxCitDT05URVhUOiAgUEwvcGdTUUwgZnVuY3Rpb24gdmFyX3JlYWRf ZnVuYygpIGxpbmUgMyBhdCBSQUlTRQorU0VUIFJPTEUgVE8gREVGQVVMVDsKK0RST1AgRlVOQ1RJ T04gdmFyX3JlYWRfZnVuYzsKK1JFVk9LRSBBTEwgT04gU0NIRU1BIHB1YmxpYyBGUk9NIHJlZ3Jl c3NfdmFyX293bmVyX3JvbGUsIHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xlLCByZWdyZXNzX3Zhcl9l eGVjX3JvbGU7CitEUk9QIFJPTEUgcmVncmVzc192YXJfb3duZXJfcm9sZTsKK0RST1AgUk9MRSBy ZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl9leGVjX3JvbGU7 CistLSByZXR1cm5zIHVwZGF0ZWQgdmFsdWUKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3Zh cjEgQVMgaW50OworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gaW5jX3Zhcl9pbnQoaW50KQor UkVUVVJOUyBpbnQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSBDT0FMRVND RShwbHBnc3FsX3N2X3ZhcjEgKyAkMSwgJDEpOworICBSRVRVUk4gcGxwZ3NxbF9zdl92YXIxOwor RU5EOworJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK1NFTEVDVCBpbmNfdmFyX2ludCgxKTsKKyBpbmNf dmFyX2ludCAKKy0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMQorKDEgcm93KQorCitTRUxFQ1Qg aW5jX3Zhcl9pbnQoMSk7CisgaW5jX3Zhcl9pbnQgCistLS0tLS0tLS0tLS0tCisgICAgICAgICAg IDIKKygxIHJvdykKKworU0VMRUNUIGluY192YXJfaW50KDEpOworIGluY192YXJfaW50IAorLS0t LS0tLS0tLS0tLQorICAgICAgICAgICAzCisoMSByb3cpCisKK1NFTEVDVCBpbmNfdmFyX2ludCgx KSBGUk9NIGdlbmVyYXRlX3NlcmllcygxLDEwKTsKKyBpbmNfdmFyX2ludCAKKy0tLS0tLS0tLS0t LS0KKyAgICAgICAgICAgNAorICAgICAgICAgICA1CisgICAgICAgICAgIDYKKyAgICAgICAgICAg NworICAgICAgICAgICA4CisgICAgICAgICAgIDkKKyAgICAgICAgICAxMAorICAgICAgICAgIDEx CisgICAgICAgICAgMTIKKyAgICAgICAgICAxMworKDEwIHJvd3MpCisKK0NSRUFURSBWQVJJQUJM RSBwbHBnc3FsX3N2X3ZhcjIgQVMgbnVtZXJpYzsKK0xFVCBwbHBnc3FsX3N2X3ZhcjIgPSAwLjA7 CitDUkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBpbmNfdmFyX251bShudW1lcmljKQorUkVUVVJO UyBpbnQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjIgPSBDT0FMRVNDRShwbHBn c3FsX3N2X3ZhcjIgKyAkMSwgJDEpOworICBSRVRVUk4gcGxwZ3NxbF9zdl92YXIyOworRU5EOwor JCQgTEFOR1VBR0UgcGxwZ3NxbDsKK1NFTEVDVCBpbmNfdmFyX251bSgxLjApOworIGluY192YXJf bnVtIAorLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAxCisoMSByb3cpCisKK1NFTEVDVCBpbmNf dmFyX251bSgxLjApOworIGluY192YXJfbnVtIAorLS0tLS0tLS0tLS0tLQorICAgICAgICAgICAy CisoMSByb3cpCisKK1NFTEVDVCBpbmNfdmFyX251bSgxLjApOworIGluY192YXJfbnVtIAorLS0t LS0tLS0tLS0tLQorICAgICAgICAgICAzCisoMSByb3cpCisKK1NFTEVDVCBpbmNfdmFyX251bSgx LjApIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApOworIGluY192YXJfbnVtIAorLS0tLS0tLS0t LS0tLQorICAgICAgICAgICA0CisgICAgICAgICAgIDUKKyAgICAgICAgICAgNgorICAgICAgICAg ICA3CisgICAgICAgICAgIDgKKyAgICAgICAgICAgOQorICAgICAgICAgIDEwCisgICAgICAgICAg MTEKKyAgICAgICAgICAxMgorICAgICAgICAgIDEzCisoMTAgcm93cykKKworRFJPUCBWQVJJQUJM RSBwbHBnc3FsX3N2X3ZhcjEsIHBscGdzcWxfc3ZfdmFyMjsKK0RST1AgRlVOQ1RJT04gaW5jX3Zh cl9pbnQ7CitEUk9QIEZVTkNUSU9OIGluY192YXJfbnVtOworLS0gcGxwZ3NxbCB2YXJpYWJsZXMg YXJlIHByZWZlcnJlZCBhZ2FpbnN0IHNlc3Npb24gdmFyaWFibGVzCitDUkVBVEUgVkFSSUFCTEUg cGxwZ3NxbF9zdl92YXIxIEFTIGludDsKK0RPICQkCis8PG15YmxvY2s+PgorREVDTEFSRSBwbHBn c3FsX3N2X3ZhcjEgaW50OworQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMSA9IDEwMDsKKwor ICBwbHBnc3FsX3N2X3ZhcjEgOj0gMTAwMDsKKworICAtLSBwcmludCAxMDA7CisgIFJBSVNFIE5P VElDRSAnc2Vzc2lvbiB2YXJpYWJsZSBpcyAlJywgcHVibGljLnBscGdzcWxfc3ZfdmFyMTsKKwor ICAtLSBwcmludCAxMDAwCisgIFJBSVNFIE5PVElDRSAncGxwZ3NxbCB2YXJpYWJsZSBpcyAlJywg bXlibG9jay5wbHBnc3FsX3N2X3ZhcjE7CisKKyAgLS0gcHJpbnQgMTAwMAorICBSQUlTRSBOT1RJ Q0UgJ3ZhcmlhYmxlIGlzICUnLCBwbHBnc3FsX3N2X3ZhcjE7CitFTkQ7CiskJDsKK05PVElDRTog IHNlc3Npb24gdmFyaWFibGUgaXMgMTAwCitOT1RJQ0U6ICBwbHBnc3FsIHZhcmlhYmxlIGlzIDEw MDAKK05PVElDRTogIHZhcmlhYmxlIGlzIDEwMDAKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92 YXIxOworLS0gdGhlIHZhbHVlIHNob3VsZCBub3QgYmUgY29ycnVwdGVkCitDUkVBVEUgVkFSSUFC TEUgcGxwZ3NxbF9zdl92IHRleHQ7CitMRVQgcGxwZ3NxbF9zdl92ID0gJ2FiYyc7CitDUkVBVEUg RlVOQ1RJT04gZmZ1bmMoKQorUkVUVVJOUyB0ZXh0IEFTICQkCitCRUdJTgorICBSRVRVUk4gZ2Z1 bmMocGxwZ3NxbF9zdl92KTsKK0VORAorJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBGVU5D VElPTiBnZnVuYyh0IHRleHQpCitSRVRVUk5TIHRleHQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBn c3FsX3N2X3YgPSAnQk9PTSEnOworICBSRVRVUk4gdDsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdz cWw7CitzZWxlY3QgZmZ1bmMoKTsKKyBmZnVuYyAKKy0tLS0tLS0KKyBhYmMKKygxIHJvdykKKwor RFJPUCBGVU5DVElPTiBmZnVuYygpOworRFJPUCBGVU5DVElPTiBnZnVuYyh0ZXh0KTsKK0RST1Ag VkFSSUFCTEUgcGxwZ3NxbF9zdl92OwpkaWZmIC0tZ2l0IGEvc3JjL3BsL3BscGdzcWwvc3JjL21l c29uLmJ1aWxkIGIvc3JjL3BsL3BscGdzcWwvc3JjL21lc29uLmJ1aWxkCmluZGV4IDMzYzQ5YWMy NWQuLjFkMDFkMWMyNjIgMTAwNjQ0Ci0tLSBhL3NyYy9wbC9wbHBnc3FsL3NyYy9tZXNvbi5idWls ZAorKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvbWVzb24uYnVpbGQKQEAgLTg4LDYgKzg4LDcgQEAg dGVzdHMgKz0gewogICAgICAgJ3BscGdzcWxfdHJhcCcsCiAgICAgICAncGxwZ3NxbF90cmlnZ2Vy JywKICAgICAgICdwbHBnc3FsX3ZhcnByb3BzJywKKyAgICAgICdwbHBnc3FsX3Nlc3Npb25fdmFy aWFibGUnLAogICAgIF0sCiAgIH0sCiB9CmRpZmYgLS1naXQgYS9zcmMvcGwvcGxwZ3NxbC9zcmMv c3FsL3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvc3Fs L3BscGdzcWxfc2Vzc2lvbl92YXJpYWJsZS5zcWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg MDAwMDAwMDAwMC4uYTNjYzI2NGNmMwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9wbC9wbHBnc3Fs L3NyYy9zcWwvcGxwZ3NxbF9zZXNzaW9uX3ZhcmlhYmxlLnNxbApAQCAtMCwwICsxLDI4OSBAQAor LS0gdGVzdCBvZiBzZXNzaW9uIHZhcmlhYmxlcworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3Zf dmFyIEFTIG51bWVyaWM7CisKK0xFVCBwbHBnc3FsX3N2X3ZhciA9IHBpKCk7CisKKy0tIHBhc3Np bmcgcGFyYW1ldGVycyB0byBETyBibG9jaworRE8gJCQKK0JFR0lOCisgIFJBSVNFIE5PVElDRSAn dmFsdWUgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBpcyAlJywgcGxwZ3NxbF9zdl92YXI7CitFTkQ7Cisk JDsKKworLS0gcGFzc2luZyBvdXRwdXQgZnJvbSBETyBibG9jazsKK0RPICQkCitCRUdJTgorICBM RVQgcGxwZ3NxbF9zdl92YXIgPSAyICogcGkoKTsKK0VORAorJCQ7CisKK1NFTEVDVCBwbHBnc3Fs X3N2X3ZhciBBUyAicGlfbXVsdGlwbHlfMiI7CisKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92 YXI7CisKKy0tIHRlc3QgYWNjZXNzIGZyb20gUEwvcGdTUUwKK0NSRUFURSBWQVJJQUJMRSBwbHBn c3FsX3N2X3ZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMiBBUyBu dW1lcmljOworQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMyBBUyB2YXJjaGFyOworCitD UkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB3cml0ZXJfZnVuYygpCitSRVRVUk5TIHZvaWQgQVMg JCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSAxMDsKKyAgTEVUIHBscGdzcWxfc3Zf dmFyMiA9IHBpKCk7CisgIC0tIHZlcnkgbG9uZyB2YWx1ZQorICBMRVQgcGxwZ3NxbF9zdl92YXIz ID0gZm9ybWF0KCcoJXMpJywgcmVwZWF0KCcqJywgMTAwMDApKTsKK0VORDsKKyQkIExBTkdVQUdF IHBscGdzcWw7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHVwZGF0ZXJfZnVuYygpCitS RVRVUk5TIHZvaWQgQVMgJCQKK0JFR0lOCisgIExFVCBwbHBnc3FsX3N2X3ZhcjEgPSBwbHBnc3Fs X3N2X3ZhcjEgKyAxMDA7CisgIExFVCBwbHBnc3FsX3N2X3ZhcjIgPSBwbHBnc3FsX3N2X3ZhcjIg KyAxMDAwMDAwMDAwMDA7CisgIC0tIHZlcnkgbG9uZyB2YWx1ZQorICBMRVQgcGxwZ3NxbF9zdl92 YXIzID0gcGxwZ3NxbF9zdl92YXIzIHx8IGZvcm1hdCgnKCVzKScsIHJlcGVhdCgnKicsIDEwMDAw KSk7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCisKK0NSRUFURSBPUiBSRVBMQUNFIEZV TkNUSU9OIHJlYWRlcl9mdW5jKCkKK1JFVFVSTlMgdm9pZCBBUyAkJAorQkVHSU4KKyAgUkFJU0Ug Tk9USUNFICd2YXIxID0gJScsIHBscGdzcWxfc3ZfdmFyMTsKKyAgUkFJU0UgTk9USUNFICd2YXIy ID0gJScsIHBscGdzcWxfc3ZfdmFyMjsKKyAgUkFJU0UgTk9USUNFICdsZW5ndGggb2YgdmFyMyA9 ICUnLCBsZW5ndGgocGxwZ3NxbF9zdl92YXIzKTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWw7 CisKKy0tIGV4ZWN1dGUgaW4gYSB0cmFuc2FjdGlvbgorQkVHSU47CitTRUxFQ1Qgd3JpdGVyX2Z1 bmMoKTsKK1NFTEVDVCByZWFkZXJfZnVuYygpOworU0VMRUNUIHVwZGF0ZXJfZnVuYygpOworU0VM RUNUIHJlYWRlcl9mdW5jKCk7CitFTkQ7CisKKy0tIGV4ZWN1dGUgb3V0c2lkZSBvZiBhIHRyYW5z YWN0aW9uCitTRUxFQ1Qgd3JpdGVyX2Z1bmMoKTsKK1NFTEVDVCByZWFkZXJfZnVuYygpOworU0VM RUNUIHVwZGF0ZXJfZnVuYygpOworU0VMRUNUIHJlYWRlcl9mdW5jKCk7CisKKy0tIGV4ZWN1dGUg aW5zaWRlIGEgUEwvcGdTUUwgYmxvY2sKK0RPICQkCitCRUdJTgorICBQRVJGT1JNIHdyaXRlcl9m dW5jKCk7CisgIFBFUkZPUk0gcmVhZGVyX2Z1bmMoKTsKKyAgUEVSRk9STSB1cGRhdGVyX2Z1bmMo KTsKKyAgUEVSRk9STSByZWFkZXJfZnVuYygpOworRU5EOworJCQ7CisKKy0tIHBsYW4gY2FjaGVz IHNob3VsZCBiZSBjb3JyZWN0bHkgaW52YWxpZGF0ZWQKK0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9z dl92YXIxLCBwbHBnc3FsX3N2X3ZhcjIsIHBscGdzcWxfc3ZfdmFyMzsKKworQ1JFQVRFIFZBUklB QkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92 YXIyIEFTIG51bWVyaWM7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIzIEFTIHZhcmNo YXI7CisKKy0tIHNob3VsZCB3b3JrIGFnYWluCitETyAkJAorQkVHSU4KKyAgUEVSRk9STSB3cml0 ZXJfZnVuYygpOworICBQRVJGT1JNIHJlYWRlcl9mdW5jKCk7CisgIFBFUkZPUk0gdXBkYXRlcl9m dW5jKCk7CisgIFBFUkZPUk0gcmVhZGVyX2Z1bmMoKTsKK0VORDsKKyQkOworCitEUk9QIFZBUklB QkxFIHBscGdzcWxfc3ZfdmFyMSwgcGxwZ3NxbF9zdl92YXIyLCBwbHBnc3FsX3N2X3ZhcjM7CisK K0RST1AgRlVOQ1RJT04gd3JpdGVyX2Z1bmM7CitEUk9QIEZVTkNUSU9OIHJlYWRlcl9mdW5jOwor RFJPUCBGVU5DVElPTiB1cGRhdGVyX2Z1bmM7CisKKy0tIGFub3RoZXIgY2hlY2sgb2YgY29ycmVj dCBwbGFuIGNhY2hlIGludmFsaWRhdGlvbgorQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFy MSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIyIEFTIGludFtdOworCitD UkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiB0ZXN0X2Z1bmMoKQorUkVUVVJOUyB2b2lkIEFTICQk CitERUNMQVJFIHYgaW50W10gREVGQVVMVCAne30nOworQkVHSU4KKyAgTEVUIHBscGdzcWxfc3Zf dmFyMSA9IDE7CisgIHZbcGxwZ3NxbF9zdl92YXIxXSA9IDEwMDsKKyAgUkFJU0UgTk9USUNFICcl JywgdjsKKyAgTEVUIHBscGdzcWxfc3ZfdmFyMiA9IHY7CisgIExFVCBwbHBnc3FsX3N2X3ZhcjJb cGxwZ3NxbF9zdl92YXIxXSA9IC0xOworICBSQUlTRSBOT1RJQ0UgJyUnLCBwbHBnc3FsX3N2X3Zh cjI7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCitTRUxFQ1QgdGVzdF9mdW5jKCk7CisK K0RST1AgVkFSSUFCTEUgcGxwZ3NxbF9zdl92YXIxLCBwbHBnc3FsX3N2X3ZhcjI7CisKK0NSRUFU RSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHBscGdz cWxfc3ZfdmFyMiBBUyBpbnRbXTsKKworU0VMRUNUIHRlc3RfZnVuYygpOworCitEUk9QIEZVTkNU SU9OIHRlc3RfZnVuYygpOworCitEUk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSwgcGxwZ3Nx bF9zdl92YXIyOworCistLSBjaGVjayBzZWN1cmUgYWNjZXNzCitDUkVBVEUgUk9MRSByZWdyZXNz X3Zhcl9vd25lcl9yb2xlOworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJfcmVhZGVyX3JvbGU7CitD UkVBVEUgUk9MRSByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CisKK0dSQU5UIEFMTCBPTiBTQ0hFTUEg cHVibGljIFRPIHJlZ3Jlc3NfdmFyX293bmVyX3JvbGUsIHJlZ3Jlc3NfdmFyX3JlYWRlcl9yb2xl LCByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CisKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX293bmVy X3JvbGU7CisKK0NSRUFURSBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgQVMgaW50OworTEVUIHBs cGdzcWxfc3ZfdmFyMSA9IDEwOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBU TyByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZTsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04g dmFyX3JlYWRfZnVuYygpCitSRVRVUk5TIHZvaWQgQVMgJCQKK0JFR0lOCisgIFJBSVNFIE5PVElD RSAnJScsIHBscGdzcWxfc3ZfdmFyMTsKK0VORDsKKyQkIExBTkdVQUdFIHBscGdzcWwgU0VDVVJJ VFkgREVGSU5FUjsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKworU0VUIFJPTEUgVE8gcmVncmVz c192YXJfZXhlY19yb2xlOworCistLSBzaG91bGQgZmFpbAorU0VMRUNUIHZhcl9yZWFkX2Z1bmMo KTsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfb3du ZXJfcm9sZTsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBwbHBnc3FsX3N2X3ZhcjEgVE8gcmVn cmVzc192YXJfcmVhZGVyX3JvbGU7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKK1NFVCBST0xF IFRPIHJlZ3Jlc3NfdmFyX2V4ZWNfcm9sZTsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFy X3JlYWRfZnVuYygpOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworCitTRVQgUk9MRSBUTyByZWdy ZXNzX3Zhcl9vd25lcl9yb2xlOworCitEUk9QIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMTsKKwor U0VUIFJPTEUgVE8gREVGQVVMVDsKKworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfZXhlY19yb2xl OworCistLSBzaG91bGQgZmFpbCwgYnV0IG5vdCBjcmFzaAorU0VMRUNUIHZhcl9yZWFkX2Z1bmMo KTsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKworRFJPUCBGVU5DVElPTiB2YXJfcmVhZF9mdW5j OworCitSRVZPS0UgQUxMIE9OIFNDSEVNQSBwdWJsaWMgRlJPTSByZWdyZXNzX3Zhcl9vd25lcl9y b2xlLCByZWdyZXNzX3Zhcl9yZWFkZXJfcm9sZSwgcmVncmVzc192YXJfZXhlY19yb2xlOworCitE Uk9QIFJPTEUgcmVncmVzc192YXJfb3duZXJfcm9sZTsKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl9y ZWFkZXJfcm9sZTsKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl9leGVjX3JvbGU7CisKKy0tIHJldHVy bnMgdXBkYXRlZCB2YWx1ZQorQ1JFQVRFIFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMSBBUyBpbnQ7 CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGluY192YXJfaW50KGludCkKK1JFVFVSTlMg aW50IEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gQ09BTEVTQ0UocGxwZ3Nx bF9zdl92YXIxICsgJDEsICQxKTsKKyAgUkVUVVJOIHBscGdzcWxfc3ZfdmFyMTsKK0VORDsKKyQk IExBTkdVQUdFIHBscGdzcWw7CisKK1NFTEVDVCBpbmNfdmFyX2ludCgxKTsKK1NFTEVDVCBpbmNf dmFyX2ludCgxKTsKK1NFTEVDVCBpbmNfdmFyX2ludCgxKTsKKworU0VMRUNUIGluY192YXJfaW50 KDEpIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApOworCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3Nx bF9zdl92YXIyIEFTIG51bWVyaWM7CisKK0xFVCBwbHBnc3FsX3N2X3ZhcjIgPSAwLjA7CisKK0NS RUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIGluY192YXJfbnVtKG51bWVyaWMpCitSRVRVUk5TIGlu dCBBUyAkJAorQkVHSU4KKyAgTEVUIHBscGdzcWxfc3ZfdmFyMiA9IENPQUxFU0NFKHBscGdzcWxf c3ZfdmFyMiArICQxLCAkMSk7CisgIFJFVFVSTiBwbHBnc3FsX3N2X3ZhcjI7CitFTkQ7CiskJCBM QU5HVUFHRSBwbHBnc3FsOworCitTRUxFQ1QgaW5jX3Zhcl9udW0oMS4wKTsKK1NFTEVDVCBpbmNf dmFyX251bSgxLjApOworU0VMRUNUIGluY192YXJfbnVtKDEuMCk7CisKK1NFTEVDVCBpbmNfdmFy X251bSgxLjApIEZST00gZ2VuZXJhdGVfc2VyaWVzKDEsMTApOworCitEUk9QIFZBUklBQkxFIHBs cGdzcWxfc3ZfdmFyMSwgcGxwZ3NxbF9zdl92YXIyOworCitEUk9QIEZVTkNUSU9OIGluY192YXJf aW50OworRFJPUCBGVU5DVElPTiBpbmNfdmFyX251bTsKKworLS0gcGxwZ3NxbCB2YXJpYWJsZXMg YXJlIHByZWZlcnJlZCBhZ2FpbnN0IHNlc3Npb24gdmFyaWFibGVzCitDUkVBVEUgVkFSSUFCTEUg cGxwZ3NxbF9zdl92YXIxIEFTIGludDsKKworRE8gJCQKKzw8bXlibG9jaz4+CitERUNMQVJFIHBs cGdzcWxfc3ZfdmFyMSBpbnQ7CitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92YXIxID0gMTAwOwor CisgIHBscGdzcWxfc3ZfdmFyMSA6PSAxMDAwOworCisgIC0tIHByaW50IDEwMDsKKyAgUkFJU0Ug Tk9USUNFICdzZXNzaW9uIHZhcmlhYmxlIGlzICUnLCBwdWJsaWMucGxwZ3NxbF9zdl92YXIxOwor CisgIC0tIHByaW50IDEwMDAKKyAgUkFJU0UgTk9USUNFICdwbHBnc3FsIHZhcmlhYmxlIGlzICUn LCBteWJsb2NrLnBscGdzcWxfc3ZfdmFyMTsKKworICAtLSBwcmludCAxMDAwCisgIFJBSVNFIE5P VElDRSAndmFyaWFibGUgaXMgJScsIHBscGdzcWxfc3ZfdmFyMTsKK0VORDsKKyQkOworCitEUk9Q IFZBUklBQkxFIHBscGdzcWxfc3ZfdmFyMTsKKworLS0gdGhlIHZhbHVlIHNob3VsZCBub3QgYmUg Y29ycnVwdGVkCitDUkVBVEUgVkFSSUFCTEUgcGxwZ3NxbF9zdl92IHRleHQ7CitMRVQgcGxwZ3Nx bF9zdl92ID0gJ2FiYyc7CisKK0NSRUFURSBGVU5DVElPTiBmZnVuYygpCitSRVRVUk5TIHRleHQg QVMgJCQKK0JFR0lOCisgIFJFVFVSTiBnZnVuYyhwbHBnc3FsX3N2X3YpOworRU5ECiskJCBMQU5H VUFHRSBwbHBnc3FsOworCitDUkVBVEUgRlVOQ1RJT04gZ2Z1bmModCB0ZXh0KQorUkVUVVJOUyB0 ZXh0IEFTICQkCitCRUdJTgorICBMRVQgcGxwZ3NxbF9zdl92ID0gJ0JPT00hJzsKKyAgUkVUVVJO IHQ7CitFTkQ7CiskJCBMQU5HVUFHRSBwbHBnc3FsOworCitzZWxlY3QgZmZ1bmMoKTsKKworRFJP UCBGVU5DVElPTiBmZnVuYygpOworRFJPUCBGVU5DVElPTiBnZnVuYyh0ZXh0KTsKKworRFJPUCBW QVJJQUJMRSBwbHBnc3FsX3N2X3Y7Ci0tIAoyLjQ3LjEKCg== --0000000000007bfa26062b3fa8d1 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250109-0004-DISCARD-VARIABLES.patch" Content-Disposition: attachment; filename="v20250109-0004-DISCARD-VARIABLES.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5ox16qk18 RnJvbSBmZDg4NTQ2ZjBkNjI2ZWNiZDkzZmY3N2JkY2E4ODJkNDc5ZWQwOGY1IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFN1biwgMjggSmFuIDIwMjQgMjA6NTQ6MjAgKzAxMDAKU3ViamVjdDogW1BBVENIIDA0 LzIyXSBESVNDQVJEIFZBUklBQkxFUwoKSW1wbGVtZW50YXRpb24gb2YgRElTQ0FSRCBWQVJJQUJM RVMgY29tbWFuZHMgYnkgcmVtb3ZpbmcgaGFzaCB0YWJsZSB3aXRoIHNlc3Npb24gdmFyaWFibGVz CmFuZCByZXNldHRpbmcgcmVsYXRlZCBtZW1vcnkgY29udGV4dC4KLS0tCiBkb2Mvc3JjL3NnbWwv cmVmL2Rpc2NhcmQuc2dtbCAgICAgICAgICAgICAgICAgfCAxMyArKystCiBzcmMvYmFja2VuZC9j b21tYW5kcy9kaXNjYXJkLmMgICAgICAgICAgICAgICAgfCAgNiArKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgMjggKysrKysrKystCiBzcmMvYmFja2Vu ZC9wYXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgNiArKwogc3JjL2JhY2tlbmQv dGNvcC91dGlsaXR5LmMgICAgICAgICAgICAgICAgICAgIHwgIDMgKwogc3JjL2Jpbi9wc3FsL3Rh Yi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgIDIgKy0KIHNyYy9pbmNsdWRlL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAyICsKIHNyYy9pbmNsdWRlL25vZGVzL3Bh cnNlbm9kZXMuaCAgICAgICAgICAgICAgICB8ICAxICsKIHNyYy9pbmNsdWRlL3Rjb3AvY21kdGFn bGlzdC5oICAgICAgICAgICAgICAgICB8ICAxICsKIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Np b25fdmFyaWFibGVzLm91dCAgICB8IDYzICsrKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3Jl Z3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDM2ICsrKysrKysrKysrCiAxMSBm aWxlcyBjaGFuZ2VkLCAxNTggaW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2Rpc2NhcmQuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvZGlz Y2FyZC5zZ21sCmluZGV4IGJmNDRjNTIzY2EuLjYxYjk2N2Y5YzkgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9yZWYvZGlzY2FyZC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZGlzY2FyZC5z Z21sCkBAIC0yMSw3ICsyMSw3IEBAIFBvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgogCiAgPHJlZnN5 bm9wc2lzZGl2PgogPHN5bm9wc2lzPgotRElTQ0FSRCB7IEFMTCB8IFBMQU5TIHwgU0VRVUVOQ0VT IHwgVEVNUE9SQVJZIHwgVEVNUCB9CitESVNDQVJEIHsgQUxMIHwgUExBTlMgfCBTRVFVRU5DRVMg fCBURU1QT1JBUlkgfCBURU1QIHwgVkFSSUFCTEVTIH0KIDwvc3lub3BzaXM+CiAgPC9yZWZzeW5v cHNpc2Rpdj4KIApAQCAtNjYsNiArNjYsMTYgQEAgRElTQ0FSRCB7IEFMTCB8IFBMQU5TIHwgU0VR VUVOQ0VTIHwgVEVNUE9SQVJZIHwgVEVNUCB9CiAgICAgPC9saXN0aXRlbT4KICAgIDwvdmFybGlz dGVudHJ5PgogCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPlZBUklBQkxF UzwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFJl c2V0cyB0aGUgdmFsdWUgb2YgYWxsIHNlc3Npb24gdmFyaWFibGVzLiBJZiBhIHZhcmlhYmxlCisg ICAgICBpcyBsYXRlciByZXVzZWQsIGl0IGlzIHJlLWluaXRpYWxpemVkIHRvIDxsaXRlcmFsPk5V TEw8L2xpdGVyYWw+LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlz dGVudHJ5PgorCiAgICA8dmFybGlzdGVudHJ5PgogICAgIDx0ZXJtPjxsaXRlcmFsPlRFTVBPUkFS WTwvbGl0ZXJhbD4gb3IgPGxpdGVyYWw+VEVNUDwvbGl0ZXJhbD48L3Rlcm0+CiAgICAgPGxpc3Rp dGVtPgpAQCAtOTMsNiArMTAzLDcgQEAgU0VMRUNUIHBnX2Fkdmlzb3J5X3VubG9ja19hbGwoKTsK IERJU0NBUkQgUExBTlM7CiBESVNDQVJEIFRFTVA7CiBESVNDQVJEIFNFUVVFTkNFUzsKK0RJU0NB UkQgVkFSSUFCTEVTOwogPC9wcm9ncmFtbGlzdGluZz48L3BhcmE+CiAgICAgPC9saXN0aXRlbT4K ICAgIDwvdmFybGlzdGVudHJ5PgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGlz Y2FyZC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZGlzY2FyZC5jCmluZGV4IDgxMzM5YTc1YTUu LjU5MDRhNmM0OTEgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Rpc2NhcmQuYwor KysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kaXNjYXJkLmMKQEAgLTE4LDYgKzE4LDcgQEAKICNp bmNsdWRlICJjb21tYW5kcy9hc3luYy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2Rpc2NhcmQuaCIK ICNpbmNsdWRlICJjb21tYW5kcy9wcmVwYXJlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lv bl92YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3NlcXVlbmNlLmgiCiAjaW5jbHVkZSAi dXRpbHMvZ3VjLmgiCiAjaW5jbHVkZSAidXRpbHMvcG9ydGFsLmgiCkBAIC00OCw2ICs0OSwxMCBA QCBEaXNjYXJkQ29tbWFuZChEaXNjYXJkU3RtdCAqc3RtdCwgYm9vbCBpc1RvcExldmVsKQogCQkJ UmVzZXRUZW1wVGFibGVOYW1lc3BhY2UoKTsKIAkJCWJyZWFrOwogCisJCWNhc2UgRElTQ0FSRF9W QVJJQUJMRVM6CisJCQlSZXNldFNlc3Npb25WYXJpYWJsZXMoKTsKKwkJCWJyZWFrOworCiAJCWRl ZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIERJU0NBUkQgdGFyZ2V0OiAlZCIs IHN0bXQtPnRhcmdldCk7CiAJfQpAQCAtNzUsNCArODAsNSBAQCBEaXNjYXJkQWxsKGJvb2wgaXNU b3BMZXZlbCkKIAlSZXNldFBsYW5DYWNoZSgpOwogCVJlc2V0VGVtcFRhYmxlTmFtZXNwYWNlKCk7 CiAJUmVzZXRTZXF1ZW5jZUNhY2hlcygpOworCVJlc2V0U2Vzc2lvblZhcmlhYmxlcygpOwogfQpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3Jj L2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCmluZGV4IDgyNTVmMzYwZDIuLmE2 MjFjYmUzMzIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFi bGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTk0 LDcgKzk0LDEzIEBAIHBnX3ZhcmlhYmxlX2NhY2hlX2NhbGxiYWNrKERhdHVtIGFyZywgaW50IGNh Y2hlaWQsIHVpbnQzMiBoYXNodmFsdWUpCiAKIAllbG9nKERFQlVHMSwgInBnX3ZhcmlhYmxlX2Nh Y2hlX2NhbGxiYWNrICV1ICV1IiwgY2FjaGVpZCwgaGFzaHZhbHVlKTsKIAotCUFzc2VydChzZXNz aW9udmFycyk7CisJLyoKKwkgKiBUaGVyZSBpcyBubyBndWFyYW50ZWUgb2Ygc2Vzc2lvbiB2YXJp YWJsZXMgYmVpbmcgaW5pdGlhbGl6ZWQsIGV2ZW4gd2hlbgorCSAqIHJlY2VpdmluZyBhbiBpbnZh bGlkYXRpb24gY2FsbGJhY2ssIGFzIERJU0NBUkQgWyBBTEwgfCBWQVJJQUJMRVMgXQorCSAqIGRl c3Ryb3lzIHRoZSBoYXNoIHRhYmxlIGVudGlyZWx5LgorCSAqLworCWlmICghc2Vzc2lvbnZhcnMp CisJCXJldHVybjsKIAogCS8qCiAJICogSWYgdGhlIGhhc2h2YWx1ZSBpcyBub3Qgc3BlY2lmaWVk LCB3ZSBoYXZlIHRvIHJlY2hlY2sgYWxsIGN1cnJlbnRseQpAQCAtNjE5LDMgKzYyNSwyMyBAQCBw Z19zZXNzaW9uX3ZhcmlhYmxlcyhQR19GVU5DVElPTl9BUkdTKQogCiAJcmV0dXJuIChEYXR1bSkg MDsKIH0KKworLyoKKyAqIEZhc3QgZHJvcCBvZiB0aGUgY29tcGxldGUgY29udGVudCBvZiB0aGUg c2Vzc2lvbiB2YXJpYWJsZXMgaGFzaCB0YWJsZSwgYW5kCisgKiBjbGVhbnVwIG9mIGFueSBsaXN0 IHRoYXQgd291bGRuJ3QgYmUgcmVsZXZhbnQgYW55bW9yZS4KKyAqIFRoaXMgaXMgdXNlZCBieSB0 aGUgRElTQ0FSRCBWQVJJQUJMRVMgKGFuZCBESVNDQVJEIEFMTCkgY29tbWFuZC4KKyAqLwordm9p ZAorUmVzZXRTZXNzaW9uVmFyaWFibGVzKHZvaWQpCit7CisJLyogZGVzdHJveSBoYXNoIHRhYmxl IGFuZCByZXNldCByZWxhdGVkIG1lbW9yeSBjb250ZXh0ICovCisJaWYgKHNlc3Npb252YXJzKQor CXsKKwkJaGFzaF9kZXN0cm95KHNlc3Npb252YXJzKTsKKwkJc2Vzc2lvbnZhcnMgPSBOVUxMOwor CX0KKworCS8qIHJlbGVhc2UgbWVtb3J5IGFsbG9jYXRlZCBieSBzZXNzaW9uIHZhcmlhYmxlcyAq LworCWlmIChTVmFyaWFibGVNZW1vcnlDb250ZXh0ICE9IE5VTEwpCisJCU1lbW9yeUNvbnRleHRS ZXNldChTVmFyaWFibGVNZW1vcnlDb250ZXh0KTsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IGE0MTUwZjg5 OWIuLjdlNzE1OGFjMDkgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFtLnkKKysr IGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMjA3Niw3ICsyMDc2LDEzIEBAIERpc2Nh cmRTdG10OgogCQkJCQluLT50YXJnZXQgPSBESVNDQVJEX1NFUVVFTkNFUzsKIAkJCQkJJCQgPSAo Tm9kZSAqKSBuOwogCQkJCX0KKwkJCXwgRElTQ0FSRCBWQVJJQUJMRVMKKwkJCQl7CisJCQkJCURp c2NhcmRTdG10ICpuID0gbWFrZU5vZGUoRGlzY2FyZFN0bXQpOwogCisJCQkJCW4tPnRhcmdldCA9 IERJU0NBUkRfVkFSSUFCTEVTOworCQkJCQkkJCA9IChOb2RlICopIG47CisJCQkJfQogCQk7CiAK IApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgYi9zcmMvYmFja2VuZC90 Y29wL3V0aWxpdHkuYwppbmRleCA3YTUwOGEzNjQ0Li42ZTRkMjMxMGY1IDEwMDY0NAotLS0gYS9z cmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHku YwpAQCAtMjk2Miw2ICsyOTYyLDkgQEAgQ3JlYXRlQ29tbWFuZFRhZyhOb2RlICpwYXJzZXRyZWUp CiAJCQkJY2FzZSBESVNDQVJEX1NFUVVFTkNFUzoKIAkJCQkJdGFnID0gQ01EVEFHX0RJU0NBUkRf U0VRVUVOQ0VTOwogCQkJCQlicmVhazsKKwkJCQljYXNlIERJU0NBUkRfVkFSSUFCTEVTOgorCQkJ CQl0YWcgPSBDTURUQUdfRElTQ0FSRF9WQVJJQUJMRVM7CisJCQkJCWJyZWFrOwogCQkJCWRlZmF1 bHQ6CiAJCQkJCXRhZyA9IENNRFRBR19VTktOT1dOOwogCQkJfQpkaWZmIC0tZ2l0IGEvc3JjL2Jp bi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5j CmluZGV4IGFjYmY1MWVmMmUuLmQ3OGNlZjM2YWQgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC90 YWItY29tcGxldGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwvdGFiLWNvbXBsZXRlLmluLmMKQEAg LTQxMTMsNyArNDExMyw3IEBAIG1hdGNoX3ByZXZpb3VzX3dvcmRzKGludCBwYXR0ZXJuX2lkLAog CiAvKiBESVNDQVJEICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiRElTQ0FSRCIpKQotCQlDT01QTEVU RV9XSVRIKCJBTEwiLCAiUExBTlMiLCAiU0VRVUVOQ0VTIiwgIlRFTVAiKTsKKwkJQ09NUExFVEVf V0lUSCgiQUxMIiwgIlBMQU5TIiwgIlNFUVVFTkNFUyIsICJURU1QIiwgIlZBUklBQkxFUyIpOwog CiAvKiBETyAqLwogCWVsc2UgaWYgKE1hdGNoZXMoIkRPIikpCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmgKaW5kZXggMjM5MWI5YWQ0NC4uYThjYTQzYzg3YSAxMDA2NDQKLS0t IGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCisrKyBiL3NyYy9pbmNs dWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApAQCAtMjcsNCArMjcsNiBAQCBleHRlcm4g RGF0dW0gR2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgYm9vbCAqaXNOdWxsKTsKIGV4dGVy biB2b2lkIEV4ZWN1dGVMZXRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGV0U3RtdCAqc3RtdCwg UGFyYW1MaXN0SW5mbyBwYXJhbXMsCiAJCQkJCQkgICBRdWVyeUVudmlyb25tZW50ICpxdWVyeUVu diwgUXVlcnlDb21wbGV0aW9uICpxYyk7CiAKK2V4dGVybiB2b2lkIFJlc2V0U2Vzc2lvblZhcmlh Ymxlcyh2b2lkKTsKKwogI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJz ZW5vZGVzLmggYi9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKaW5kZXggYjQxN2I1NmMy YS4uOTMyNDFiZDU1YiAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5o CisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaApAQCAtMzk4OCw2ICszOTg4LDcg QEAgdHlwZWRlZiBlbnVtIERpc2NhcmRNb2RlCiAJRElTQ0FSRF9QTEFOUywKIAlESVNDQVJEX1NF UVVFTkNFUywKIAlESVNDQVJEX1RFTVAsCisJRElTQ0FSRF9WQVJJQUJMRVMsCiB9IERpc2NhcmRN b2RlOwogCiB0eXBlZGVmIHN0cnVjdCBEaXNjYXJkU3RtdApkaWZmIC0tZ2l0IGEvc3JjL2luY2x1 ZGUvdGNvcC9jbWR0YWdsaXN0LmggYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaAppbmRl eCAyMjA4MmMzMDAwLi5iZWYwYWMyNTMzIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS90Y29wL2Nt ZHRhZ2xpc3QuaAorKysgYi9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xpc3QuaApAQCAtMTM1LDYg KzEzNSw3IEBAIFBHX0NNRFRBRyhDTURUQUdfRElTQ0FSRF9BTEwsICJESVNDQVJEIEFMTCIsIGZh bHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RJU0NBUkRfUExBTlMsICJESVND QVJEIFBMQU5TIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRElTQ0FS RF9TRVFVRU5DRVMsICJESVNDQVJEIFNFUVVFTkNFUyIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQ R19DTURUQUcoQ01EVEFHX0RJU0NBUkRfVEVNUCwgIkRJU0NBUkQgVEVNUCIsIGZhbHNlLCBmYWxz ZSwgZmFsc2UpCitQR19DTURUQUcoQ01EVEFHX0RJU0NBUkRfVkFSSUFCTEVTLCAiRElTQ0FSRCBW QVJJQUJMRVMiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19ETywgIkRP IiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRFJPUF9BQ0NFU1NfTUVU SE9ELCAiRFJPUCBBQ0NFU1MgTUVUSE9EIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFH KENNRFRBR19EUk9QX0FHR1JFR0FURSwgIkRST1AgQUdHUkVHQVRFIiwgdHJ1ZSwgZmFsc2UsIGZh bHNlKQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zhcmlh Ymxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91 dAppbmRleCBmMjI0NjcxODZlLi43OWFjNDA3NjhmIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNz L2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMTY2MywzICsxNjYzLDY2IEBAIERS T1AgVkFSSUFCTEUgOiJEQk5BTUUiLjoiREJOQU1FIi5iOwogRFJPUCBWQVJJQUJMRSA6IkRCTkFN RSIuOiJEQk5BTUUiLjoiREJOQU1FIjsKIERST1AgU0NIRU1BIDoiREJOQU1FIjsKIFJFU0VUIHNl YXJjaF9wYXRoOworLS0gbWVtb3J5IGNsZWFuaW5nIGJ5IERJU0NBUkQgY29tbWFuZAorQ1JFQVRF IFZBUklBQkxFIHZhcjEgQVMgdmFyY2hhcjsKK0xFVCB2YXIxID0gJ0hlbGxvJzsKK1NFTEVDVCB2 YXIxOworIHZhcjEgIAorLS0tLS0tLQorIEhlbGxvCisoMSByb3cpCisKK0RJU0NBUkQgQUxMOwor U0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorIAorKDEgcm93KQorCitMRVQgdmFyMSA9ICdB SE9KJzsKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyBBSE9KCisoMSByb3cpCisKK0RJ U0NBUkQgVkFSSUFCTEVTOworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorIAorKDEgcm93 KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CistLSBpbml0aWFsIHRlc3Qgb2YgZGVidWcgcGdfc2Vz c2lvbl92YXJpYWJsZXMgZnVuY3Rpb24KKy0tIHNob3VsZCBiZSB6ZXJvIG5vdworRElTQ0FSRCBW QVJJQUJMRVM7CitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOwor IGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKK0NSRUFURSBWQVJJQUJMRSB2YXIx IEFTIHZhcmNoYXI7CistLSBzaG91bGQgYmUgemVybyBzdGlsbAorU0VMRUNUIGNvdW50KCopIEZS T00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEg cm93KQorCitMRVQgdmFyMSA9ICdBSE9KJzsKK1NFTEVDVCBuYW1lLCB0eXBuYW1lLCBjYW5fc2Vs ZWN0LCBjYW5fdXBkYXRlIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKyBuYW1lIHwgICAg ICB0eXBuYW1lICAgICAgfCBjYW5fc2VsZWN0IHwgY2FuX3VwZGF0ZSAKKy0tLS0tLSstLS0tLS0t LS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0KKyB2YXIxIHwgY2hhcmFjdGVy IHZhcnlpbmcgfCB0ICAgICAgICAgIHwgdAorKDEgcm93KQorCitESVNDQVJEIFZBUklBQkxFUzsK Ky0tIHNob3VsZCBiZSB6ZXJvIGFnYWluCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9u X3ZhcmlhYmxlcygpOworIGNvdW50IAorLS0tLS0tLQorICAgICAwCisoMSByb3cpCisKZGlmZiAt LWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCBiL3NyYy90 ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCBlNzIzNjBkNTI1Li4y OTU0NzU5YWFlIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9zZXNzaW9uX3Zhcmlh Ymxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3Fs CkBAIC0xMTc4LDMgKzExNzgsMzkgQEAgRFJPUCBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUi LjoiREJOQU1FIjsKIERST1AgU0NIRU1BIDoiREJOQU1FIjsKIAogUkVTRVQgc2VhcmNoX3BhdGg7 CisKKy0tIG1lbW9yeSBjbGVhbmluZyBieSBESVNDQVJEIGNvbW1hbmQKK0NSRUFURSBWQVJJQUJM RSB2YXIxIEFTIHZhcmNoYXI7CitMRVQgdmFyMSA9ICdIZWxsbyc7CitTRUxFQ1QgdmFyMTsKKwor RElTQ0FSRCBBTEw7CitTRUxFQ1QgdmFyMTsKKworTEVUIHZhcjEgPSAnQUhPSic7CitTRUxFQ1Qg dmFyMTsKKworRElTQ0FSRCBWQVJJQUJMRVM7CitTRUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJM RSB2YXIxOworCistLSBpbml0aWFsIHRlc3Qgb2YgZGVidWcgcGdfc2Vzc2lvbl92YXJpYWJsZXMg ZnVuY3Rpb24KKy0tIHNob3VsZCBiZSB6ZXJvIG5vdworRElTQ0FSRCBWQVJJQUJMRVM7CisKK1NF TEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisKK0NSRUFURSBWQVJJ QUJMRSB2YXIxIEFTIHZhcmNoYXI7CisKKy0tIHNob3VsZCBiZSB6ZXJvIHN0aWxsCitTRUxFQ1Qg Y291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworCitMRVQgdmFyMSA9ICdBSE9K JzsKKworU0VMRUNUIG5hbWUsIHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBw Z19zZXNzaW9uX3ZhcmlhYmxlcygpOworCitESVNDQVJEIFZBUklBQkxFUzsKKworLS0gc2hvdWxk IGJlIHplcm8gYWdhaW4KK1NFTEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVz KCk7Ci0tIAoyLjQ3LjEKCg== --0000000000007bfa26062b3fa8d1 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250109-0005-memory-cleaning-after-DROP-VARIABLE.patch" Content-Disposition: attachment; filename="v20250109-0005-memory-cleaning-after-DROP-VARIABLE.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5ox16q817 RnJvbSA1MjllNjE5ZmY4OThjNWY3OTExYjAxYjkwYzdjZWMzZTk1OGE2ODBhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBMYXVyZW56IEFsYmUgPGxhdXJlbnouYWxiZUBjeWJlcnRlYy5h dD4KRGF0ZTogV2VkLCAxMyBOb3YgMjAyNCAwOTozMToyOCArMDEwMApTdWJqZWN0OiBbUEFUQ0gg MDUvMjJdIG1lbW9yeSBjbGVhbmluZyBhZnRlciBEUk9QIFZBUklBQkxFCgpBY2NlcHRpbmcgYSBz aW52YWwgbWVzc2FnZSBpbnZhbGlkYXRlcyBlbnRyaWVzIGluIHRoZSAic2Vzc2lvbnZhcnMiIGhh c2ggdGFibGUuClRoZXNlIGVudHJpZXMgYXJlIHZhbGlkYXRlZCBiZWZvcmUgYW55IHJlYWQgb3Ig d3JpdGUgb3BlcmF0aW9ucyBvbiBzZXNzaW9uIHZhcmlhYmxlcy4KV2hlbiB0aGUgZW50cnkgY2Fu bm90IGJlIHZhbGlkYXRlZCwgaXQgaXMgcmVtb3ZlZC4gIFJlbW92YWwgd2lsbCBiZSBkZWxheWVk IHdoZW4KdGhlIHZhcmlhYmxlIHdhcyBkcm9wcGVkIGJ5IHRoZSBjdXJyZW50IHRyYW5zYWN0aW9u LCB3aGljaCBjb3VsZCBzdGlsbCBiZSByb2xsZWQgYmFjay4KLS0tCiBzcmMvYmFja2VuZC9jYXRh bG9nL3BnX3ZhcmlhYmxlLmMgICAgICAgICAgICAgfCAgIDcgKy0KIHNyYy9iYWNrZW5kL2NvbW1h bmRzL3Nlc3Npb25fdmFyaWFibGUuYyAgICAgICB8IDE1MyArKysrKysrKysrKy0KIHNyYy9pbmNs dWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAgMiArCiAuLi4vaXNvbGF0 aW9uL2V4cGVjdGVkL3Nlc3Npb24tdmFyaWFibGUub3V0ICAgfCAxMTAgKysrKysrKysrCiBzcmMv dGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlICAgICAgICAgfCAgIDEgKwogLi4uL2lz b2xhdGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMgICAgIHwgIDUwICsrKysKIC4uLi9y ZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dCAgICB8IDIxNyArKysrKysrKysr KysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8 IDEyMCArKysrKysrKysrCiA4IGZpbGVzIGNoYW5nZWQsIDY1NSBpbnNlcnRpb25zKCspLCA1IGRl bGV0aW9ucygtKQogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2lzb2xhdGlvbi9leHBlY3Rl ZC9zZXNzaW9uLXZhcmlhYmxlLm91dAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNyYy90ZXN0L2lzb2xh dGlvbi9zcGVjcy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKCmRpZmYgLS1naXQgYS9zcmMvYmFja2Vu ZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxl LmMKaW5kZXggYmI0NDVlOTQzNC4uZDY3MmQyYTljYiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv Y2F0YWxvZy9wZ192YXJpYWJsZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFi bGUuYwpAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uLmgi CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19uYW1lc3BhY2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3Bn X3ZhcmlhYmxlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2lu Y2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV90eXBlLmgiCiAjaW5j bHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKQEAgLTIzMCw3ICsyMzEsOCBAQCBDcmVhdGVWYXJpYWJs ZShQYXJzZVN0YXRlICpwc3RhdGUsIENyZWF0ZVNlc3Npb25WYXJTdG10ICpzdG10KQogfQogCiAv KgotICogRHJvcCB2YXJpYWJsZSBieSBPSUQKKyAqIERyb3AgdmFyaWFibGUgYnkgT0lELCBhbmQg cmVnaXN0ZXIgdGhlIG5lZWRlZCBzZXNzaW9uIHZhcmlhYmxlCisgKiBjbGVhbnVwLgogICovCiB2 b2lkCiBEcm9wVmFyaWFibGVCeUlkKE9pZCB2YXJpZCkKQEAgLTI1MCw0ICsyNTIsNyBAQCBEcm9w VmFyaWFibGVCeUlkKE9pZCB2YXJpZCkKIAlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKIAogCXRhYmxl X2Nsb3NlKHJlbCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwkvKiBkbyB0aGUgbmVjZXNzYXJ5IGNs ZWFudXAgaW4gbG9jYWwgbWVtb3J5LCBpZiBuZWVkZWQgKi8KKwlTZXNzaW9uVmFyaWFibGVEcm9w UG9zdHByb2Nlc3ModmFyaWQpOwogfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJs ZS5jCmluZGV4IGE2MjFjYmUzMzIuLjRhMjllZDZlMGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9z ZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTE0LDYgKzE0LDcgQEAKICAqLwogI2luY2x1ZGUgInBvc3Rn cmVzLmgiCiAKKyNpbmNsdWRlICJhY2Nlc3MveGFjdC5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdf dmFyaWFibGUuaCIKICNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5j bHVkZSAiZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCIKQEAgLTY3LDYgKzY4LDE0IEBAIHR5 cGVkZWYgc3RydWN0IFNWYXJpYWJsZURhdGEKIAl2b2lkCSAgICpkb21haW5fY2hlY2tfZXh0cmE7 CiAJTG9jYWxUcmFuc2FjdGlvbklkIGRvbWFpbl9jaGVja19leHRyYV9seGlkOwogCisJLyoKKwkg KiBUb3AgbGV2ZWwgbG9jYWwgdHJhbnNhY3Rpb24gaWQgb2YgdGhlIGxhc3QgdHJhbnNhY3Rpb24g dGhhdCBkcm9wcGVkIHRoZQorCSAqIHZhcmlhYmxlLCBpZiBhbnkuICBXZSBuZWVkIHRoaXMgaW5m b3JtYXRpb24gdG8gYXZvaWQgZnJlZWluZyBtZW1vcnkgZm9yCisJICogdmFyaWFibGVzIGRyb3Bw ZWQgYnkgdGhlIGxvY2FsIGJhY2tlbmQsIGluIGNhc2UgdGhlIG9wZXJhdGlvbiBpcyByb2xsZWQK KwkgKiBiYWNrLgorCSAqLworCUxvY2FsVHJhbnNhY3Rpb25JZCBkcm9wX2x4aWQ7CisKIAkvKgog CSAqIFN0b3JlZCB2YWx1ZSBhbmQgdHlwZSBkZXNjcmlwdGlvbiBjYW4gYmUgb3V0ZGF0ZWQgd2hl biB3ZSByZWNlaXZlIGEKIAkgKiBzaW52YWwgbWVzc2FnZS4gIFdlIHRoZW4gaGF2ZSB0byBjaGVj ayBpZiB0aGUgc3RvcmVkIGRhdGEgYXJlIHN0aWxsCkBAIC04Myw2ICs5MiwxNyBAQCBzdGF0aWMg SFRBQiAqc2Vzc2lvbnZhcnMgPSBOVUxMOwkvKiBoYXNoIHRhYmxlIGZvciBzZXNzaW9uIHZhcmlh YmxlcyAqLwogCiBzdGF0aWMgTWVtb3J5Q29udGV4dCBTVmFyaWFibGVNZW1vcnlDb250ZXh0ID0g TlVMTDsKIAorLyogYmVjb21lcyB0cnVlIHdoZW4gd2UgcmVjZWl2ZSBhIHNpbnZhbCBtZXNzYWdl ICovCitzdGF0aWMgYm9vbCBuZWVkc192YWxpZGF0aW9uID0gZmFsc2U7CisKKy8qCisgKiBUaGUg Y29udGVudCBvZiBkcm9wcGVkIHNlc3Npb24gdmFyaWFibGVzIGlzIG5vdCByZW1vdmVkIGltbWVk aWF0ZWx5LiAgV2UgZG8KKyAqIHRoYXQgaW4gdGhlIG5leHQgdHJhbnNhY3Rpb24gdGhhdCByZWFk cyBvciB3cml0ZXMgYSBzZXNzaW9uIHZhcmlhYmxlLgorICogInZhbGlkYXRlZF9seGlkIiBzdG9y ZXMgdGhlIHRyYW5zYWN0aW9uIHRoYXQgcGVyZm9ybWVkIHNhaWQgdmFsaWRhdGlvbiwgc28KKyAq IHRoYXQgd2UgY2FuIGF2b2lkIHJlcGVhdGluZyB0aGUgZWZmb3J0LgorICovCitzdGF0aWMgTG9j YWxUcmFuc2FjdGlvbklkIHZhbGlkYXRlZF9seGlkID0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25J ZDsKKwogLyoKICAqIENhbGxiYWNrIGZ1bmN0aW9uIGZvciBzZXNzaW9uIHZhcmlhYmxlIGludmFs aWRhdGlvbi4KICAqLwpAQCAtMTE0LDYgKzEzNCwzOCBAQCBwZ192YXJpYWJsZV9jYWNoZV9jYWxs YmFjayhEYXR1bSBhcmcsIGludCBjYWNoZWlkLCB1aW50MzIgaGFzaHZhbHVlKQogCQlpZiAoaGFz aHZhbHVlID09IDAgfHwgc3Zhci0+aGFzaHZhbHVlID09IGhhc2h2YWx1ZSkKIAkJewogCQkJc3Zh ci0+aXNfdmFsaWQgPSBmYWxzZTsKKwkJCW5lZWRzX3ZhbGlkYXRpb24gPSB0cnVlOworCQl9CisJ fQorfQorCisvKgorICogSGFuZGxlIHRoZSBsb2NhbCBtZW1vcnkgY2xlYW51cCBmb3IgYSBEUk9Q IFZBUklBQkxFIGNvbW1hbmQuCisgKgorICogQ2FsbGVyIHNob3VsZCB0YWtlIGNhcmUgb2YgcmVt b3ZpbmcgdGhlIHBnX3ZhcmlhYmxlIGVudHJ5IGZpcnN0LgorICovCit2b2lkCitTZXNzaW9uVmFy aWFibGVEcm9wUG9zdHByb2Nlc3MoT2lkIHZhcmlkKQoreworCUFzc2VydChMb2NhbFRyYW5zYWN0 aW9uSWRJc1ZhbGlkKE15UHJvYy0+dnhpZC5seGlkKSk7CisKKwlpZiAoc2Vzc2lvbnZhcnMpCisJ eworCQlib29sCQlmb3VuZDsKKwkJU1ZhcmlhYmxlCXN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3Nl YXJjaChzZXNzaW9udmFycywgJnZhcmlkLAorCQkJCQkJCQkJCQkJICAgSEFTSF9GSU5ELCAmZm91 bmQpOworCisJCWlmIChmb3VuZCkKKwkJeworCQkJLyoKKwkJCSAqIFNhdmUgdGhlIGN1cnJlbnQg dG9wIGxldmVsIGxvY2FsIHRyYW5zYWN0aW9uIGlkIHRvIG1ha2Ugc3VyZSB3ZQorCQkJICogd29u J3QgYXV0b21hdGljYWxseSByZW1vdmUgdGhlIGxvY2FsIHZhcmlhYmxlIHN0b3JhZ2UgaW4KKwkJ CSAqIHZhbGlkYXRlX2FsbF9zZXNzaW9uX3ZhcmlhYmxlcygpIHdoZW4gdGhlIGludmFsaWRhdGlv biBtZXNzYWdlCisJCQkgKiBmcm9tIERST1AgVkFSSUFCTEUgYXJyaXZlcy4gIEFmdGVyIGFsbCwg dGhlIHRyYW5zYWN0aW9uIGNvdWxkCisJCQkgKiBzdGlsbCBiZSByb2xsZWQgYmFjay4KKwkJCSAq LworCQkJc3Zhci0+aXNfdmFsaWQgPSBmYWxzZTsKKwkJCXN2YXItPmRyb3BfbHhpZCA9IE15UHJv Yy0+dnhpZC5seGlkOwogCQl9CiAJfQogfQpAQCAtMTY3LDYgKzIxOSw2NyBAQCBpc19zZXNzaW9u X3ZhcmlhYmxlX3ZhbGlkKFNWYXJpYWJsZSBzdmFyKQogCXJldHVybiByZXN1bHQ7CiB9CiAKKy8q CisgKiBDaGVjayBhbGwgcG90ZW50aWFsbHkgaW52YWxpZCBzZXNzaW9uIHZhcmlhYmxlIGRhdGEg aW4gbG9jYWwgbWVtb3J5IGFuZCBmcmVlCisgKiB0aGUgbWVtb3J5IGZvciBhbGwgaW52YWxpZCBv bmVzLiAgVGhpcyBmdW5jdGlvbiBpcyBjYWxsZWQgYmVmb3JlIGFueSByZWFkIG9yCisgKiB3cml0 ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUuICBGcmVlaW5nIG9mIGEgdmFyaWFibGUncyBtZW1vcnkg aXMgcG9zdHBvbmVkIGlmCisgKiB0aGUgdmFyaWFibGUgaGFzIGJlZW4gZHJvcHBlZCBieSB0aGUg Y3VycmVudCB0cmFuc2FjdGlvbiwgc2luY2UgdGhhdAorICogb3BlcmF0aW9uIGNvdWxkIHN0aWxs IGJlIHJvbGxlZCBiYWNrLgorICoKKyAqIEl0IGlzIHBvc3NpYmxlIHRoYXQgd2UgcmVjZWl2ZSBh IGNhY2hlIGludmFsaWRhdGlvbiBtZXNzYWdlIHdoaWxlCisgKiByZW1vdmVfaW52YWxpZF9zZXNz aW9uX3ZhcmlhYmxlcygpIGlzIGV4ZWN1dGluZywgc28gd2UgY2Fubm90IGd1YXJhbnRlZSB0aGF0 CisgKiBhbGwgZW50cmllcyBpbiAic2Vzc2lvbnZhcnMiIHdpbGwgYmUgc2V0IHRvICJpc192YWxp ZCIgYWZ0ZXIgdGhlIGZ1bmN0aW9uIGlzCisgKiBkb25lLiAgSG93ZXZlciwgd2UgY2FuIGd1YXJh bnRlZSB0aGF0IGFsbCBlbnRyaWVzIGdldCBjaGVja2VkIG9uY2UuCisgKi8KK3N0YXRpYyB2b2lk CityZW1vdmVfaW52YWxpZF9zZXNzaW9uX3ZhcmlhYmxlcyh2b2lkKQoreworCUhBU0hfU0VRX1NU QVRVUyBzdGF0dXM7CisJU1ZhcmlhYmxlCXN2YXI7CisKKwkvKgorCSAqIFRoZSB2YWxpZGF0aW9u IHJlcXVpcmVzIHN5c3RlbSBjYXRhbG9nIGFjY2Vzcywgc28gdGhlIHNlc3Npb24gc3RhdGUKKwkg KiBzaG91bGQgYmUgImluIHRyYW5zYWN0aW9uIi4KKwkgKi8KKwlBc3NlcnQoSXNUcmFuc2FjdGlv blN0YXRlKCkpOworCisJaWYgKCFuZWVkc192YWxpZGF0aW9uIHx8ICFzZXNzaW9udmFycykKKwkJ cmV0dXJuOworCisJLyoKKwkgKiBSZXNldCB0aGUgZmxhZyBiZWZvcmUgd2Ugc3RhcnQgdGhlIHZh bGlkYXRpb24uICBJdCBjYW4gYmUgc2V0IGFnYWluCisJICogYnkgY29uY3VycmVudGx5IGluY29t aW5nIHNpbnZhbCBtZXNzYWdlcy4KKwkgKi8KKwluZWVkc192YWxpZGF0aW9uID0gZmFsc2U7CisK KwllbG9nKERFQlVHMSwgImVmZmVjdGl2ZSBjYWxsIG9mIHZhbGlkYXRlX2FsbF9zZXNzaW9uX3Zh cmlhYmxlcygpIik7CisKKwloYXNoX3NlcV9pbml0KCZzdGF0dXMsIHNlc3Npb252YXJzKTsKKwl3 aGlsZSAoKHN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlcV9zZWFyY2goJnN0YXR1cykpICE9IE5V TEwpCisJeworCQlpZiAoIXN2YXItPmlzX3ZhbGlkKQorCQl7CisJCQlpZiAoc3Zhci0+ZHJvcF9s eGlkID09IE15UHJvYy0+dnhpZC5seGlkKQorCQkJeworCQkJCS8qIHRyeSBhZ2FpbiBpbiB0aGUg bmV4dCB0cmFuc2FjdGlvbiAqLworCQkJCW5lZWRzX3ZhbGlkYXRpb24gPSB0cnVlOworCQkJCWNv bnRpbnVlOworCQkJfQorCisJCQlpZiAoIWlzX3Nlc3Npb25fdmFyaWFibGVfdmFsaWQoc3Zhcikp CisJCQl7CisJCQkJT2lkCQkJdmFyaWQgPSBzdmFyLT52YXJpZDsKKworCQkJCWZyZWVfc2Vzc2lv bl92YXJpYWJsZV92YWx1ZShzdmFyKTsKKwkJCQloYXNoX3NlYXJjaChzZXNzaW9udmFycywgJnZh cmlkLCBIQVNIX1JFTU9WRSwgTlVMTCk7CisJCQkJc3ZhciA9IE5VTEw7CisJCQl9CisJCQllbHNl CisJCQkJc3Zhci0+aXNfdmFsaWQgPSB0cnVlOworCQl9CisJfQorfQorCiAvKgogICogSW5pdGlh bGl6ZSBhdHRyaWJ1dGVzIGNhY2hlZCBpbiAic3ZhciIKICAqLwpAQCAtMTk2LDYgKzMwOSw4IEBA IHNldHVwX3Nlc3Npb25fdmFyaWFibGUoU1ZhcmlhYmxlIHN2YXIsIE9pZCB2YXJpZCkKIAlzdmFy LT5kb21haW5fY2hlY2tfZXh0cmEgPSBOVUxMOwogCXN2YXItPmRvbWFpbl9jaGVja19leHRyYV9s eGlkID0gSW52YWxpZExvY2FsVHJhbnNhY3Rpb25JZDsKIAorCXN2YXItPmRyb3BfbHhpZCA9IElu dmFsaWRUcmFuc2FjdGlvbklkOworCiAJc3Zhci0+aXNudWxsID0gdHJ1ZTsKIAlzdmFyLT52YWx1 ZSA9IChEYXR1bSkgMDsKIApAQCAtMzE5LDIyICs0MzQsNDIgQEAgZ2V0X3Nlc3Npb25fdmFyaWFi bGUoT2lkIHZhcmlkKQogCWlmICghc2Vzc2lvbnZhcnMpCiAJCWNyZWF0ZV9zZXNzaW9udmFyc19o YXNodGFibGVzKCk7CiAKKwlpZiAodmFsaWRhdGVkX2x4aWQgPT0gSW52YWxpZExvY2FsVHJhbnNh Y3Rpb25JZCB8fAorCQl2YWxpZGF0ZWRfbHhpZCAhPSBNeVByb2MtPnZ4aWQubHhpZCkKKwl7CisJ CS8qIGZyZWUgdGhlIG1lbW9yeSBmcm9tIGRyb3BwZWQgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKwkJ cmVtb3ZlX2ludmFsaWRfc2Vzc2lvbl92YXJpYWJsZXMoKTsKKworCQkvKiBkb24ndCByZXBlYXQg dGhlIGFib3ZlIHN0ZXAgaW4gdGhlIHNhbWUgdHJhbnNhY3Rpb24gKi8KKwkJdmFsaWRhdGVkX2x4 aWQgPSBNeVByb2MtPnZ4aWQubHhpZDsKKwl9CisKIAlzdmFyID0gKFNWYXJpYWJsZSkgaGFzaF9z ZWFyY2goc2Vzc2lvbnZhcnMsICZ2YXJpZCwKIAkJCQkJCQkJICAgSEFTSF9FTlRFUiwgJmZvdW5k KTsKIAogCWlmIChmb3VuZCkKIAl7CisJCS8qCisJCSAqIFRoZSBzZXNzaW9uIHZhcmlhYmxlIGNv dWxkIGhhdmUgYmVlbiBkcm9wcGVkIGJ5IGEgRFJPUCBWQVJJQUJMRQorCQkgKiBzdGF0ZW1lbnQg aW4gYSBzdWJ0cmFuc2FjdGlvbiB0aGF0IHdhcyBsYXRlciByb2xsZWQgYmFjaywgd2hpY2gKKwkJ ICogbWVhbnMgdGhhdCB3ZSBtYXkgaGF2ZSB0byB3b3JrIHdpdGggdGhlIGRhdGEgb2YgYSB2YXJp YWJsZSBtYXJrZWQKKwkJICogYXMgaW52YWxpZC4KKwkJICovCiAJCWlmICghc3Zhci0+aXNfdmFs aWQpCiAJCXsKIAkJCS8qCi0JCQkgKiBJZiB0aGVyZSB3YXMgYW4gaW52YWxpZGF0aW9uIG1lc3Nh Z2UsIHRoZSB2YXJpYWJsZSBtaWdodCBzdGlsbCBiZQotCQkJICogdmFsaWQsIGJ1dCB3ZSBoYXZl IHRvIGNoZWNrIHdpdGggdGhlIHN5c3RlbSBjYXRhbG9nLgorCQkJICogV2UgaGF2ZSB0byBjaGVj ayB0aGUgc3lzdGVtIGNhdGFsb2cgdG8gc2VlIGlmIHRoZSB2YXJpYWJsZSBpcworCQkJICogc3Rp bGwgdmFsaWQsIGV2ZW4gaWYgYW4gaW52YWxpZGF0aW9uIG1lc3NhZ2Ugc2V0IGl0IHRvIGludmFs aWQuCisJCQkgKgorCQkJICogVGhlIHZhcmlhYmxlIG11c3QgYmUgdmFsaWRhdGVkIGJlZm9yZSBp dCBpcyBhY2Nlc3NlZC4gIFRoZSBvaWQKKwkJCSAqIHNob3VsZCBiZSB2YWxpZCwgYmVjYXVzZSB0 aGUgcmVsYXRlZCBzZXNzaW9uIHZhcmlhYmxlIGlzIGFscmVhZHkKKwkJCSAqIGxvY2tlZCwgYW5k IHJlbW92ZV9pbnZhbGlkX3Nlc3Npb25fdmFyaWFibGVzKCkgd291bGQgcmVtb3ZlCisJCQkgKiB2 YXJpYWJsZXMgZHJvcHBlZCBieSBvdGhlciB0cmFuc2FjdGlvbnMuCiAJCQkgKi8KIAkJCWlmIChp c19zZXNzaW9uX3ZhcmlhYmxlX3ZhbGlkKHN2YXIpKQogCQkJCXN2YXItPmlzX3ZhbGlkID0gdHJ1 ZTsKIAkJCWVsc2UKLQkJCQkvKiBpZiB0aGUgdmFsdWUgY2Fubm90IGJlIHZhbGlkYXRlZCwgd2Ug aGF2ZSB0byBkaXNjYXJkIGl0ICovCi0JCQkJZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKHN2 YXIpOworCQkJCWVsb2coRVJST1IsICJ1bmV4cGVjdGVkIHN0YXRlIG9mIHNlc3Npb24gdmFyaWFi bGUgJXUiLCB2YXJpZCk7CiAJCX0KIAl9CiAJZWxzZQpAQCAtMzk1LDYgKzUzMCwxNiBAQCBTZXRT ZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpCiAJaWYg KCFzZXNzaW9udmFycykKIAkJY3JlYXRlX3Nlc3Npb252YXJzX2hhc2h0YWJsZXMoKTsKIAorCWlm ICh2YWxpZGF0ZWRfbHhpZCA9PSBJbnZhbGlkTG9jYWxUcmFuc2FjdGlvbklkIHx8CisJCXZhbGlk YXRlZF9seGlkICE9IE15UHJvYy0+dnhpZC5seGlkKQorCXsKKwkJLyogZnJlZSB0aGUgbWVtb3J5 IGZyb20gZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyAqLworCQlyZW1vdmVfaW52YWxpZF9zZXNz aW9uX3ZhcmlhYmxlcygpOworCisJCS8qIGRvbid0IHJlcGVhdCB0aGUgYWJvdmUgc3RlcCBpbiB0 aGUgc2FtZSB0cmFuc2FjdGlvbiAqLworCQl2YWxpZGF0ZWRfbHhpZCA9IE15UHJvYy0+dnhpZC5s eGlkOworCX0KKwogCXN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlYXJjaChzZXNzaW9udmFycywg JnZhcmlkLAogCQkJCQkJCQkgICBIQVNIX0VOVEVSLCAmZm91bmQpOwogCmRpZmYgLS1naXQgYS9z cmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKaW5kZXggYThjYTQzYzg3YS4uZDNjYzc5YjU2MCAxMDA2 NDQKLS0tIGEvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oCisrKyBiL3Ny Yy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaApAQCAtMjEsNiArMjEsOCBAQAog I2luY2x1ZGUgInRjb3AvY21kdGFnLmgiCiAjaW5jbHVkZSAidXRpbHMvcXVlcnllbnZpcm9ubWVu dC5oIgogCitleHRlcm4gdm9pZCBTZXNzaW9uVmFyaWFibGVEcm9wUG9zdHByb2Nlc3MoT2lkIHZh cmlkKTsKKwogZXh0ZXJuIHZvaWQgU2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgRGF0dW0g dmFsdWUsIGJvb2wgaXNOdWxsKTsKIGV4dGVybiBEYXR1bSBHZXRTZXNzaW9uVmFyaWFibGUoT2lk IHZhcmlkLCBib29sICppc051bGwpOwogCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9pc29sYXRpb24v ZXhwZWN0ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQgYi9zcmMvdGVzdC9pc29sYXRpb24vZXhwZWN0 ZWQvc2Vzc2lvbi12YXJpYWJsZS5vdXQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw MDAwMC4uMGE1NTc5ZGM3YwotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9l eHBlY3RlZC9zZXNzaW9uLXZhcmlhYmxlLm91dApAQCAtMCwwICsxLDExMCBAQAorUGFyc2VkIHRl c3Qgc3BlYyB3aXRoIDQgc2Vzc2lvbnMKKworc3RhcnRpbmcgcGVybXV0YXRpb246IGxldCB2YWwg ZHJvcCB2YWwKK3N0ZXAgbGV0OiBMRVQgbXl2YXIgPSAndGVzdCc7CitzdGVwIHZhbDogU0VMRUNU IG15dmFyOworbXl2YXIKKy0tLS0tCit0ZXN0IAorKDEgcm93KQorCitzdGVwIGRyb3A6IERST1Ag VkFSSUFCTEUgbXl2YXI7CitzdGVwIHZhbDogU0VMRUNUIG15dmFyOworRVJST1I6ICBjb2x1bW4g Im15dmFyIiBkb2VzIG5vdCBleGlzdAorCitzdGFydGluZyBwZXJtdXRhdGlvbjogbGV0IHZhbCBz MSBkcm9wIHZhbCBzcjEKK3N0ZXAgbGV0OiBMRVQgbXl2YXIgPSAndGVzdCc7CitzdGVwIHZhbDog U0VMRUNUIG15dmFyOworbXl2YXIKKy0tLS0tCit0ZXN0IAorKDEgcm93KQorCitzdGVwIHMxOiBC RUdJTjsKK3N0ZXAgZHJvcDogRFJPUCBWQVJJQUJMRSBteXZhcjsKK3N0ZXAgdmFsOiBTRUxFQ1Qg bXl2YXI7CitFUlJPUjogIGNvbHVtbiAibXl2YXIiIGRvZXMgbm90IGV4aXN0CitzdGVwIHNyMTog Uk9MTEJBQ0s7CisKK3N0YXJ0aW5nIHBlcm11dGF0aW9uOiBsZXQgdmFsIGRiZyBkcm9wIGNyZWF0 ZSBkYmcgdmFsCitzdGVwIGxldDogTEVUIG15dmFyID0gJ3Rlc3QnOworc3RlcCB2YWw6IFNFTEVD VCBteXZhcjsKK215dmFyCistLS0tLQordGVzdCAKKygxIHJvdykKKworc3RlcCBkYmc6IFNFTEVD VCBzY2hlbWEsIG5hbWUsIHJlbW92ZWQgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworc2No ZW1hfG5hbWUgfHJlbW92ZWQKKy0tLS0tLSstLS0tLSstLS0tLS0tCitwdWJsaWN8bXl2YXJ8ZiAg ICAgIAorKDEgcm93KQorCitzdGVwIGRyb3A6IERST1AgVkFSSUFCTEUgbXl2YXI7CitzdGVwIGNy ZWF0ZTogQ1JFQVRFIFZBUklBQkxFIG15dmFyIEFTIHRleHQ7CitzdGVwIGRiZzogU0VMRUNUIHNj aGVtYSwgbmFtZSwgcmVtb3ZlZCBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CitzY2hlbWF8 bmFtZXxyZW1vdmVkCistLS0tLS0rLS0tLSstLS0tLS0tCisgICAgICB8ICAgIHx0ICAgICAgCiso MSByb3cpCisKK3N0ZXAgdmFsOiBTRUxFQ1QgbXl2YXI7CitteXZhcgorLS0tLS0KKyAgICAgCiso MSByb3cpCisKKworc3RhcnRpbmcgcGVybXV0YXRpb246IGxldCB2YWwgczEgZGJnIGRyb3AgY3Jl YXRlIGRiZyB2YWwgc3IxCitzdGVwIGxldDogTEVUIG15dmFyID0gJ3Rlc3QnOworc3RlcCB2YWw6 IFNFTEVDVCBteXZhcjsKK215dmFyCistLS0tLQordGVzdCAKKygxIHJvdykKKworc3RlcCBzMTog QkVHSU47CitzdGVwIGRiZzogU0VMRUNUIHNjaGVtYSwgbmFtZSwgcmVtb3ZlZCBGUk9NIHBnX3Nl c3Npb25fdmFyaWFibGVzKCk7CitzY2hlbWF8bmFtZSB8cmVtb3ZlZAorLS0tLS0tKy0tLS0tKy0t LS0tLS0KK3B1YmxpY3xteXZhcnxmICAgICAgCisoMSByb3cpCisKK3N0ZXAgZHJvcDogRFJPUCBW QVJJQUJMRSBteXZhcjsKK3N0ZXAgY3JlYXRlOiBDUkVBVEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4 dDsKK3N0ZXAgZGJnOiBTRUxFQ1Qgc2NoZW1hLCBuYW1lLCByZW1vdmVkIEZST00gcGdfc2Vzc2lv bl92YXJpYWJsZXMoKTsKK3NjaGVtYXxuYW1lIHxyZW1vdmVkCistLS0tLS0rLS0tLS0rLS0tLS0t LQorcHVibGljfG15dmFyfGYgICAgICAKKygxIHJvdykKKworc3RlcCB2YWw6IFNFTEVDVCBteXZh cjsKK215dmFyCistLS0tLQorICAgICAKKygxIHJvdykKKworc3RlcCBzcjE6IFJPTExCQUNLOwor CitzdGFydGluZyBwZXJtdXRhdGlvbjogY3JlYXRlMyBsZXQzIHMzIGNyZWF0ZTQgbGV0NCBkcm9w NCBkcm9wMyBpbnZhbDMgZGlzY2FyZCBzYzMgc3RhdGUKK3N0ZXAgY3JlYXRlMzogQ1JFQVRFIFZB UklBQkxFIG15dmFyMyBBUyB0ZXh0Oworc3RlcCBsZXQzOiBMRVQgbXl2YXIzID0gJ3Rlc3QnOwor c3RlcCBzMzogQkVHSU47CitzdGVwIGNyZWF0ZTQ6IENSRUFURSBWQVJJQUJMRSBteXZhcjQgQVMg dGV4dDsKK3N0ZXAgbGV0NDogTEVUIG15dmFyNCA9ICd0ZXN0JzsKK3N0ZXAgZHJvcDQ6IERST1Ag VkFSSUFCTEUgbXl2YXI0Oworc3RlcCBkcm9wMzogRFJPUCBWQVJJQUJMRSBteXZhcjM7CitzdGVw IGludmFsMzogU0VMRUNUIENPVU5UKCopID49IDAgRlJPTSBwZ19mb3JlaWduX3RhYmxlOworP2Nv bHVtbj8KKy0tLS0tLS0tCit0ICAgICAgIAorKDEgcm93KQorCitzdGVwIGRpc2NhcmQ6IERJU0NB UkQgVkFSSUFCTEVTOworc3RlcCBzYzM6IENPTU1JVDsKK3N0ZXAgc3RhdGU6IFNFTEVDVCB2YXJu YW1lIEZST00gcGdfdmFyaWFibGU7Cit2YXJuYW1lCistLS0tLS0tCitteXZhciAgCisoMSByb3cp CisKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1bGUgYi9z cmMvdGVzdC9pc29sYXRpb24vaXNvbGF0aW9uX3NjaGVkdWxlCmluZGV4IDE0MzEwOWFhNGQuLjc0 NTM2ODVkMDQgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L2lzb2xhdGlvbi9pc29sYXRpb25fc2NoZWR1 bGUKKysrIGIvc3JjL3Rlc3QvaXNvbGF0aW9uL2lzb2xhdGlvbl9zY2hlZHVsZQpAQCAtMTE1LDMg KzExNSw0IEBAIHRlc3Q6IHNlcmlhbGl6YWJsZS1wYXJhbGxlbC0yCiB0ZXN0OiBzZXJpYWxpemFi bGUtcGFyYWxsZWwtMwogdGVzdDogbWF0dmlldy13cml0ZS1za2V3CiB0ZXN0OiBsb2NrLW5vd2Fp dAordGVzdDogc2Vzc2lvbi12YXJpYWJsZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvaXNvbGF0aW9u L3NwZWNzL3Nlc3Npb24tdmFyaWFibGUuc3BlYyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVjcy9z ZXNzaW9uLXZhcmlhYmxlLnNwZWMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw MC4uYzg2NGZlZTQwMAotLS0gL2Rldi9udWxsCisrKyBiL3NyYy90ZXN0L2lzb2xhdGlvbi9zcGVj cy9zZXNzaW9uLXZhcmlhYmxlLnNwZWMKQEAgLTAsMCArMSw1MCBAQAorIyBUZXN0IHNlc3Npb24g dmFyaWFibGVzIG1lbW9yeSBjbGVhbnVwIGZvciBzaW52YWwKKworc2V0dXAKK3sKKyAgICBDUkVB VEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4dDsKK30KKwordGVhcmRvd24KK3sKKyAgICBEUk9QIFZB UklBQkxFIElGIEVYSVNUUyBteXZhcjsKK30KKworc2Vzc2lvbiBzMQorc3RlcCBzMQkJeyBCRUdJ TjsgfQorc3RlcCBsZXQJeyBMRVQgbXl2YXIgPSAndGVzdCc7IH0KK3N0ZXAgdmFsCXsgU0VMRUNU IG15dmFyOyB9CitzdGVwIGRiZwl7IFNFTEVDVCBzY2hlbWEsIG5hbWUsIHJlbW92ZWQgRlJPTSBw Z19zZXNzaW9uX3ZhcmlhYmxlcygpOyB9CitzdGVwIHNyMQl7IFJPTExCQUNLOyB9CisKK3Nlc3Np b24gczIKK3N0ZXAgZHJvcAkJeyBEUk9QIFZBUklBQkxFIG15dmFyOyB9CitzdGVwIGNyZWF0ZQkJ eyBDUkVBVEUgVkFSSUFCTEUgbXl2YXIgQVMgdGV4dDsgfQorCitzZXNzaW9uIHMzCitzdGVwIHMz CQkJeyBCRUdJTjsgfQorc3RlcCBsZXQzCQl7IExFVCBteXZhcjMgPSAndGVzdCc7IH0KK3N0ZXAg Y3JlYXRlNAl7IENSRUFURSBWQVJJQUJMRSBteXZhcjQgQVMgdGV4dDsgfQorc3RlcCBsZXQ0CQl7 IExFVCBteXZhcjQgPSAndGVzdCc7IH0KK3N0ZXAgZHJvcDQJCXsgRFJPUCBWQVJJQUJMRSBteXZh cjQ7IH0KK3N0ZXAgaW52YWwzCQl7IFNFTEVDVCBDT1VOVCgqKSA+PSAwIEZST00gcGdfZm9yZWln bl90YWJsZTsgfQorc3RlcCBkaXNjYXJkCXsgRElTQ0FSRCBWQVJJQUJMRVM7IH0KK3N0ZXAgc2Mz CQl7IENPTU1JVDsgfQorc3RlcCBzdGF0ZQkJeyBTRUxFQ1QgdmFybmFtZSBGUk9NIHBnX3Zhcmlh YmxlOyB9CisKK3Nlc3Npb24gczQKK3N0ZXAgY3JlYXRlMwl7IENSRUFURSBWQVJJQUJMRSBteXZh cjMgQVMgdGV4dDsgfQorc3RlcCBkcm9wMwkJeyBEUk9QIFZBUklBQkxFIG15dmFyMzsgfQorCisj IENvbmN1cnJlbnQgZHJvcCBvZiBhIGtub3duIHZhcmlhYmxlIHNob3VsZCBsZWFkIHRvIGFuIGVy cm9yCitwZXJtdXRhdGlvbiBsZXQgdmFsIGRyb3AgdmFsCisjIFNhbWUsIGJ1dCB3aXRoIGFuIGV4 cGxpY2l0IHRyYW5zYWN0aW9uCitwZXJtdXRhdGlvbiBsZXQgdmFsIHMxIGRyb3AgdmFsIHNyMQor IyBDb25jdXJyZW50IGRyb3AvY3JlYXRlIG9mIGEga25vd24gdmFyaWFibGUgc2hvdWxkIGxlYWQg dG8gZW1wdHkgdmFyaWFibGUKK3Blcm11dGF0aW9uIGxldCB2YWwgZGJnIGRyb3AgY3JlYXRlIGRi ZyB2YWwKKyMgQ29uY3VycmVudCBkcm9wL2NyZWF0ZSBvZiBhIGtub3duIHZhcmlhYmxlIHNob3Vs ZCBsZWFkIHRvIGVtcHR5IHZhcmlhYmxlCisjIFdlIG5lZWQgYSB0cmFuc2FjdGlvbiB0byBtYWtl IHN1cmUgdGhhdCB3ZSB3b24ndCBhY2NlcHQgaW52YWxpZGF0aW9uIHdoZW4KKyMgY2FsbGluZyB0 aGUgZGJnIHN0ZXAgYWZ0ZXIgdGhlIGNvbmN1cnJlbnQgZHJvcAorcGVybXV0YXRpb24gbGV0IHZh bCBzMSBkYmcgZHJvcCBjcmVhdGUgZGJnIHZhbCBzcjEKKyMgdGVzdCBmb3IgRElTQ0FSRCBBTEwg d2hlbiBhbGwgaW50ZXJuYWwgcXVldWVzIGhhdmUgYWN0aW9ucyByZWdpc3RlcmVkCitwZXJtdXRh dGlvbiBjcmVhdGUzIGxldDMgczMgY3JlYXRlNCBsZXQ0IGRyb3A0IGRyb3AzIGludmFsMyBkaXNj YXJkIHNjMyBzdGF0ZQpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNz aW9uX3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFy aWFibGVzLm91dAppbmRleCA3OWFjNDA3NjhmLi4yNzgzY2FhODQ0IDEwMDY0NAotLS0gYS9zcmMv dGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dAorKysgYi9zcmMvdGVz dC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFibGVzLm91dApAQCAtMTcyNiwzICsxNzI2 LDIyMCBAQCBTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOwogICAg ICAwCiAoMSByb3cpCiAKKy0tIGRyb3BwZWQgdmFyaWFibGVzIHNob3VsZCBiZSByZW1vdmVkIGZy b20gbWVtb3J5IGJlZm9yZSB0aGUgbmV4dCB1c2FnZQorLS0gb2YgYW55IHNlc3Npb24gdmFyaWFi bGUgaW4gdGhlIG5leHQgdHJhbnNhY3Rpb24KK0xFVCB2YXIxID0gJ0Fob2onOworU0VMRUNUIG5h bWUsIHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRhdGUgRlJPTSBwZ19zZXNzaW9uX3Zhcmlh YmxlcygpOworIG5hbWUgfCAgICAgIHR5cG5hbWUgICAgICB8IGNhbl9zZWxlY3QgfCBjYW5fdXBk YXRlIAorLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0t LQorIHZhcjEgfCBjaGFyYWN0ZXIgdmFyeWluZyB8IHQgICAgICAgICAgfCB0CisoMSByb3cpCisK K0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikg RlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpIFdIRVJFIE5PVCByZW1vdmVkOworIGNvdW50IAor LS0tLS0tLQorICAgICAwCisoMSByb3cpCisKKy0tIHRoZSBjb250ZW50IG9mIHRoZSB2YWx1ZSBz aG91bGQgYmUgcHJlc2VydmVkIHdoZW4gYSB2YXJpYWJsZSBpcyBkcm9wcGVkCistLSBieSBhbiBh Ym9ydGVkIHRyYW5zYWN0aW9uCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyOworTEVU IHZhcjEgPSAnQWhvaic7CitCRUdJTjsKK0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tIHNob3VsZCBm YWlsCitTRUxFQ1QgdmFyMTsKK0VSUk9SOiAgY29sdW1uICJ2YXIxIiBkb2VzIG5vdCBleGlzdAor TElORSAxOiBTRUxFQ1QgdmFyMTsKKyAgICAgICAgICAgICAgIF4KK1JPTExCQUNLOworLS0gc2hv dWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgQWhvagorKDEgcm93KQor CistLSBhbm90aGVyIHRlc3QKK0JFR0lOOworRFJPUCBWQVJJQUJMRSB2YXIxOworQ1JFQVRFIFZB UklBQkxFIHZhcjEgQVMgaW50OworTEVUIHZhcjEgPSAxMDA7CistLSBzaG91bGQgYmUgb2ssIHJl c3VsdCAxMDAKK1NFTEVDVCB2YXIxOworIHZhcjEgCistLS0tLS0KKyAgMTAwCisoMSByb3cpCisK K1JPTExCQUNLOworLS0gc2hvdWxkIGJlIG9rLCByZXN1bHQgJ0Fob2onCitTRUxFQ1QgdmFyMTsK KyB2YXIxIAorLS0tLS0tCisgQWhvagorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7Cist LSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJs ZXMoKSBXSEVSRSBOT1QgcmVtb3ZlZDsKKyBjb3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93 KQorCitCRUdJTjsKKyAgQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworICBMRVQgdmFyMSA9 IDEwMDsKKyAgU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAKKygxIHJvdykKKwor ICBTRUxFQ1QgbmFtZSwgdHlwbmFtZSwgY2FuX3NlbGVjdCwgY2FuX3VwZGF0ZSBGUk9NIHBnX3Nl c3Npb25fdmFyaWFibGVzKCk7CisgbmFtZSB8IHR5cG5hbWUgfCBjYW5fc2VsZWN0IHwgY2FuX3Vw ZGF0ZSAKKy0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLQorIHZhcjEg fCBpbnRlZ2VyIHwgdCAgICAgICAgICB8IHQKKygxIHJvdykKKworICBEUk9QIFZBUklBQkxFIHZh cjE7CitDT01NSVQ7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNvdW50KCopIEZST00gcGdf c2Vzc2lvbl92YXJpYWJsZXMoKSBXSEVSRSBOT1QgcmVtb3ZlZDsKKyBjb3VudCAKKy0tLS0tLS0K KyAgICAgMAorKDEgcm93KQorCitCRUdJTjsKKyAgQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50 OworICBMRVQgdmFyMSA9IDEwMDsKKyAgU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAx MDAKKygxIHJvdykKKworICBTRUxFQ1QgbmFtZSwgdHlwbmFtZSwgY2FuX3NlbGVjdCwgY2FuX3Vw ZGF0ZSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgbmFtZSB8IHR5cG5hbWUgfCBjYW5f c2VsZWN0IHwgY2FuX3VwZGF0ZSAKKy0tLS0tLSstLS0tLS0tLS0rLS0tLS0tLS0tLS0tKy0tLS0t LS0tLS0tLQorIHZhcjEgfCBpbnRlZ2VyIHwgdCAgICAgICAgICB8IHQKKygxIHJvdykKKworICBE Uk9QIFZBUklBQkxFIHZhcjE7CitDT01NSVQ7CistLSBzaG91bGQgYmUgemVybworU0VMRUNUIGNv dW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKSBXSEVSRSBOT1QgcmVtb3ZlZDsKKyBj b3VudCAKKy0tLS0tLS0KKyAgICAgMAorKDEgcm93KQorCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBB UyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyBpbnQ7CitMRVQgdmFyMSA9IDEwOworTEVU IHZhcjIgPSAwOworQkVHSU47CisgIFNBVkVQT0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSB2YXIx OworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFi bGUKKyAgU0VMRUNUIHZhcjI7CisgdmFyMiAKKy0tLS0tLQorICAgIDAKKygxIHJvdykKKworICBS T0xMQkFDSyBUTyBzMTsKKyAgU0FWRVBPSU5UIHMyOworICBEUk9QIFZBUklBQkxFIHZhcjE7Cisg IFNFTEVDVCB2YXIyOworIHZhcjIgCistLS0tLS0KKyAgICAwCisoMSByb3cpCisKKyAgUk9MTEJB Q0sgVE8gczI7CitDT01NSVQ7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxOworIHZhcjEg CistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKK0JFR0lOOworICBTQVZFUE9JTlQgczE7CisgIERS T1AgVkFSSUFCTEUgdmFyMTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhl ciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworIHZhcjIgCistLS0tLS0KKyAgICAw CisoMSByb3cpCisKKyAgUk9MTEJBQ0sgVE8gczE7CisgIFNBVkVQT0lOVCBzMjsKKyAgRFJPUCBW QVJJQUJMRSB2YXIxOworICBTRUxFQ1QgdmFyMjsKKyB2YXIyIAorLS0tLS0tCisgICAgMAorKDEg cm93KQorCitST0xMQkFDSzsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisgdmFyMSAK Ky0tLS0tLQorICAgMTAKKygxIHJvdykKKworQkVHSU47CisgIFNBVkVQT0lOVCBzMTsKKyAgRFJP UCBWQVJJQUJMRSB2YXIxOworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVy IHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIHZhcjI7CisgdmFyMiAKKy0tLS0tLQorICAgIDAK KygxIHJvdykKKworICBTQVZFUE9JTlQgczI7CisgIC0tIGZvcmNlIGNsZWFuaW5nIGJ5IHRvdWNo aW5nIGFub3RoZXIgc2Vzc2lvbiB2YXJpYWJsZQorICBTRUxFQ1QgdmFyMjsKKyB2YXIyIAorLS0t LS0tCisgICAgMAorKDEgcm93KQorCisgIFJPTExCQUNLIFRPIHMxOworICAtLSBmb3JjZSBjbGVh bmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIHZhcjI7 CisgdmFyMiAKKy0tLS0tLQorICAgIDAKKygxIHJvdykKKworQ09NTUlUOworLS0gc2hvdWxkIGJl IG9rCitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgICAxMAorKDEgcm93KQorCistLSBy ZXBlYXRlZCBhYm9ydGVkIHRyYW5zYWN0aW9uCitCRUdJTjsgRFJPUCBWQVJJQUJMRSB2YXIxOyBS T0xMQkFDSzsKK0JFR0lOOyBEUk9QIFZBUklBQkxFIHZhcjE7IFJPTExCQUNLOworQkVHSU47IERS T1AgVkFSSUFCTEUgdmFyMTsgUk9MTEJBQ0s7CistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIx OworIHZhcjEgCistLS0tLS0KKyAgIDEwCisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMSwg dmFyMjsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVz LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbAppbmRleCAy OTU0NzU5YWFlLi5hNjI0YWI4YjY3IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9z ZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92 YXJpYWJsZXMuc3FsCkBAIC0xMjE0LDMgKzEyMTQsMTIzIEBAIERJU0NBUkQgVkFSSUFCTEVTOwog CiAtLSBzaG91bGQgYmUgemVybyBhZ2FpbgogU0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lv bl92YXJpYWJsZXMoKTsKKworLS0gZHJvcHBlZCB2YXJpYWJsZXMgc2hvdWxkIGJlIHJlbW92ZWQg ZnJvbSBtZW1vcnkgYmVmb3JlIHRoZSBuZXh0IHVzYWdlCistLSBvZiBhbnkgc2Vzc2lvbiB2YXJp YWJsZSBpbiB0aGUgbmV4dCB0cmFuc2FjdGlvbgorCitMRVQgdmFyMSA9ICdBaG9qJzsKK1NFTEVD VCBuYW1lLCB0eXBuYW1lLCBjYW5fc2VsZWN0LCBjYW5fdXBkYXRlIEZST00gcGdfc2Vzc2lvbl92 YXJpYWJsZXMoKTsKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NF TEVDVCBjb3VudCgqKSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCkgV0hFUkUgTk9UIHJlbW92 ZWQ7CisKKy0tIHRoZSBjb250ZW50IG9mIHRoZSB2YWx1ZSBzaG91bGQgYmUgcHJlc2VydmVkIHdo ZW4gYSB2YXJpYWJsZSBpcyBkcm9wcGVkCistLSBieSBhbiBhYm9ydGVkIHRyYW5zYWN0aW9uCitD UkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyOworTEVUIHZhcjEgPSAnQWhvaic7CitCRUdJ TjsKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2YXIxOwor CitST0xMQkFDSzsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKworLS0gYW5vdGhl ciB0ZXN0CitCRUdJTjsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0NSRUFURSBWQVJJQUJMRSB2YXIx IEFTIGludDsKK0xFVCB2YXIxID0gMTAwOworLS0gc2hvdWxkIGJlIG9rLCByZXN1bHQgMTAwCitT RUxFQ1QgdmFyMTsKK1JPTExCQUNLOworLS0gc2hvdWxkIGJlIG9rLCByZXN1bHQgJ0Fob2onCitT RUxFQ1QgdmFyMTsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCistLSBzaG91bGQgYmUgemVybwor U0VMRUNUIGNvdW50KCopIEZST00gcGdfc2Vzc2lvbl92YXJpYWJsZXMoKSBXSEVSRSBOT1QgcmVt b3ZlZDsKKworQkVHSU47CisgIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKyAgTEVUIHZh cjEgPSAxMDA7CisgIFNFTEVDVCB2YXIxOworICBTRUxFQ1QgbmFtZSwgdHlwbmFtZSwgY2FuX3Nl bGVjdCwgY2FuX3VwZGF0ZSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCk7CisgIERST1AgVkFS SUFCTEUgdmFyMTsKK0NPTU1JVDsKKworLS0gc2hvdWxkIGJlIHplcm8KK1NFTEVDVCBjb3VudCgq KSBGUk9NIHBnX3Nlc3Npb25fdmFyaWFibGVzKCkgV0hFUkUgTk9UIHJlbW92ZWQ7CisKK0JFR0lO OworICBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CisgIExFVCB2YXIxID0gMTAwOworICBT RUxFQ1QgdmFyMTsKKyAgU0VMRUNUIG5hbWUsIHR5cG5hbWUsIGNhbl9zZWxlY3QsIGNhbl91cGRh dGUgRlJPTSBwZ19zZXNzaW9uX3ZhcmlhYmxlcygpOworICBEUk9QIFZBUklBQkxFIHZhcjE7CitD T01NSVQ7CisKKy0tIHNob3VsZCBiZSB6ZXJvCitTRUxFQ1QgY291bnQoKikgRlJPTSBwZ19zZXNz aW9uX3ZhcmlhYmxlcygpIFdIRVJFIE5PVCByZW1vdmVkOworCitDUkVBVEUgVkFSSUFCTEUgdmFy MSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyBpbnQ7CitMRVQgdmFyMSA9IDEwOwor TEVUIHZhcjIgPSAwOworQkVHSU47CisgIFNBVkVQT0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSB2 YXIxOworICAtLSBmb3JjZSBjbGVhbmluZyBieSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFy aWFibGUKKyAgU0VMRUNUIHZhcjI7CisgIFJPTExCQUNLIFRPIHMxOworICBTQVZFUE9JTlQgczI7 CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgU0VMRUNUIHZhcjI7CisgIFJPTExCQUNLIFRPIHMy OworQ09NTUlUOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKKworQkVHSU47CisgIFNB VkVQT0lOVCBzMTsKKyAgRFJPUCBWQVJJQUJMRSB2YXIxOworICAtLSBmb3JjZSBjbGVhbmluZyBi eSB0b3VjaGluZyBhbm90aGVyIHNlc3Npb24gdmFyaWFibGUKKyAgU0VMRUNUIHZhcjI7CisgIFJP TExCQUNLIFRPIHMxOworICBTQVZFUE9JTlQgczI7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAg U0VMRUNUIHZhcjI7CitST0xMQkFDSzsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHZhcjE7CisK K0JFR0lOOworICBTQVZFUE9JTlQgczE7CisgIERST1AgVkFSSUFCTEUgdmFyMTsKKyAgLS0gZm9y Y2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVD VCB2YXIyOworCisgIFNBVkVQT0lOVCBzMjsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hp bmcgYW5vdGhlciBzZXNzaW9uIHZhcmlhYmxlCisgIFNFTEVDVCB2YXIyOworICBST0xMQkFDSyBU TyBzMTsKKyAgLS0gZm9yY2UgY2xlYW5pbmcgYnkgdG91Y2hpbmcgYW5vdGhlciBzZXNzaW9uIHZh cmlhYmxlCisgIFNFTEVDVCB2YXIyOworQ09NTUlUOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1Qg dmFyMTsKKworLS0gcmVwZWF0ZWQgYWJvcnRlZCB0cmFuc2FjdGlvbgorQkVHSU47IERST1AgVkFS SUFCTEUgdmFyMTsgUk9MTEJBQ0s7CitCRUdJTjsgRFJPUCBWQVJJQUJMRSB2YXIxOyBST0xMQkFD SzsKK0JFR0lOOyBEUk9QIFZBUklBQkxFIHZhcjE7IFJPTExCQUNLOworCistLSBzaG91bGQgYmUg b2sKK1NFTEVDVCB2YXIxOworCitEUk9QIFZBUklBQkxFIHZhcjEsIHZhcjI7Ci0tIAoyLjQ3LjEK Cg== --0000000000007bfa26062b3fa8d1 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250109-0003-function-pg_session_variables-for-cleaning-tests.patch" Content-Disposition: attachment; filename="v20250109-0003-function-pg_session_variables-for-cleaning-tests.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5ox16qt19 RnJvbSA3NzJmMjEyYzhlMDVlOTY0Y2RhYzcxMDVlNWNkMmNkZjlkNWViNGJhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMjA6MDE6NTYgKzAxMDAKU3ViamVjdDogW1BBVENIIDAz LzIyXSBmdW5jdGlvbiBwZ19zZXNzaW9uX3ZhcmlhYmxlcyBmb3IgY2xlYW5pbmcgdGVzdHMKClRo aXMgaXMgYSBmdW5jdGlvbiBkZXNpZ25lZCBmb3IgdGVzdGluZyBhbmQgZGVidWdnaW5nLiAgSXQg cmV0dXJucyB0aGUKY29udGVudCBvZiBzZXNzaW9udmFycyBhcy1pcywgYW5kIGNhbiB0aGVyZWZv cmUgZGlzcGxheSBlbnRyaWVzIGFib3V0CnNlc3Npb24gdmFyaWFibGVzIHRoYXQgd2VyZSBkcm9w cGVkIGJ1dCBmb3Igd2hpY2ggdGhpcyBiYWNrZW5kIGRpZG4ndApwcm9jZXNzIHRoZSBzaGFyZWQg aW52YWxpZGF0aW9ucyB5ZXQuCi0tLQogc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIHwgOTIgKysrKysrKysrKysrKysrKysrKysrKysrKwogc3JjL2luY2x1ZGUvY2F0YWxv Zy9wZ19wcm9jLmRhdCAgICAgICAgIHwgIDggKysrCiAyIGZpbGVzIGNoYW5nZWQsIDEwMCBpbnNl cnRpb25zKCspCgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJp YWJsZS5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCmluZGV4IDI0 NTZhMzQ1MmIuLjgyNTVmMzYwZDIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Nl c3Npb25fdmFyaWFibGUuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9zZXNzaW9uX3Zhcmlh YmxlLmMKQEAgLTUyNywzICs1MjcsOTUgQEAgRXhlY3V0ZUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0 YXRlLAogCiAJUG9wQWN0aXZlU25hcHNob3QoKTsKIH0KKworLyoKKyAqIHBnX3Nlc3Npb25fdmFy aWFibGVzIC0gZGVzaWduZWQgZm9yIHRlc3RpbmcKKyAqCisgKiBUaGlzIGlzIGEgZnVuY3Rpb24g ZGVzaWduZWQgZm9yIHRlc3RpbmcgYW5kIGRlYnVnZ2luZy4gIEl0IHJldHVybnMgdGhlCisgKiBj b250ZW50IG9mIHNlc3Npb24gdmFyaWFibGVzIGFzLWlzLCBhbmQgY2FuIHRoZXJlZm9yZSBkaXNw bGF5IGRhdGEgYWJvdXQKKyAqIHNlc3Npb24gdmFyaWFibGVzIHRoYXQgd2VyZSBkcm9wcGVkLCBi dXQgZm9yIHdoaWNoIHRoaXMgYmFja2VuZCBkaWRuJ3QKKyAqIHByb2Nlc3MgdGhlIHNoYXJlZCBp bnZhbGlkYXRpb25zIHlldC4KKyAqLworRGF0dW0KK3BnX3Nlc3Npb25fdmFyaWFibGVzKFBHX0ZV TkNUSU9OX0FSR1MpCit7CisjZGVmaW5lIE5VTV9QR19TRVNTSU9OX1ZBUklBQkxFU19BVFRTIDgK KworCUluaXRNYXRlcmlhbGl6ZWRTUkYoZmNpbmZvLCAwKTsKKworCWlmIChzZXNzaW9udmFycykK Kwl7CisJCVJldHVyblNldEluZm8gKnJzaW5mbyA9IChSZXR1cm5TZXRJbmZvICopIGZjaW5mby0+ cmVzdWx0aW5mbzsKKwkJSEFTSF9TRVFfU1RBVFVTIHN0YXR1czsKKwkJU1ZhcmlhYmxlCXN2YXI7 CisKKwkJaGFzaF9zZXFfaW5pdCgmc3RhdHVzLCBzZXNzaW9udmFycyk7CisKKwkJd2hpbGUgKChz dmFyID0gKFNWYXJpYWJsZSkgaGFzaF9zZXFfc2VhcmNoKCZzdGF0dXMpKSAhPSBOVUxMKQorCQl7 CisJCQlEYXR1bQkJdmFsdWVzW05VTV9QR19TRVNTSU9OX1ZBUklBQkxFU19BVFRTXTsKKwkJCWJv b2wJCW51bGxzW05VTV9QR19TRVNTSU9OX1ZBUklBQkxFU19BVFRTXTsKKwkJCUhlYXBUdXBsZQl0 cDsKKwkJCWJvb2wJCXZhcl9pc192YWxpZCA9IGZhbHNlOworCisJCQltZW1zZXQodmFsdWVzLCAw LCBzaXplb2YodmFsdWVzKSk7CisJCQltZW1zZXQobnVsbHMsIDAsIHNpemVvZihudWxscykpOwor CisJCQl2YWx1ZXNbMF0gPSBPYmplY3RJZEdldERhdHVtKHN2YXItPnZhcmlkKTsKKwkJCXZhbHVl c1szXSA9IE9iamVjdElkR2V0RGF0dW0oc3Zhci0+dHlwaWQpOworCisJCQkvKgorCQkJICogSXQg aXMgcG9zc2libGUgdGhhdCB0aGUgdmFyaWFibGUgaGFzIGJlZW4gZHJvcHBlZCBmcm9tIHRoZQor CQkJICogY2F0YWxvZywgYnV0IG5vdCB5ZXQgcHVyZ2VkIGZyb20gdGhlIGhhc2ggdGFibGUuCisJ CQkgKi8KKwkJCXRwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERh dHVtKHN2YXItPnZhcmlkKSk7CisKKwkJCWlmIChIZWFwVHVwbGVJc1ZhbGlkKHRwKSkKKwkJCXsK KwkJCQlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RS VUNUKHRwKTsKKworCQkJCS8qCisJCQkJICogSXQgaXMgYWxzbyBwb3NzaWJsZSB0aGF0IGEgdmFy aWFibGUgaGFzIGJlZW4gZHJvcHBlZCBhbmQKKwkJCQkgKiBzb21lb25lIGNyZWF0ZWQgYSBuZXcg dmFyaWFibGUgd2l0aCB0aGUgc2FtZSBvYmplY3QgSUQuICBVc2UKKwkJCQkgKiB0aGUgY2F0YWxv ZyBpbmZvcm1hdGlvbiBvbmx5IGlmIHRoYXQgaXMgbm90IHRoZSBjYXNlLgorCQkJCSAqLworCQkJ CWlmIChzdmFyLT5jcmVhdGVfbHNuID09IHZhcmZvcm0tPnZhcmNyZWF0ZV9sc24pCisJCQkJewor CQkJCQl2YWx1ZXNbMV0gPSBDU3RyaW5nR2V0VGV4dERhdHVtKAorCQkJCQkJCQkJCQkJCWdldF9u YW1lc3BhY2VfbmFtZSh2YXJmb3JtLT52YXJuYW1lc3BhY2UpKTsKKworCQkJCQl2YWx1ZXNbMl0g PSBDU3RyaW5nR2V0VGV4dERhdHVtKE5hbWVTdHIodmFyZm9ybS0+dmFybmFtZSkpOworCQkJCQl2 YWx1ZXNbNF0gPSBDU3RyaW5nR2V0VGV4dERhdHVtKGZvcm1hdF90eXBlX2JlKHN2YXItPnR5cGlk KSk7CisJCQkJCXZhbHVlc1s1XSA9IEJvb2xHZXREYXR1bShmYWxzZSk7CisKKwkJCQkJdmFsdWVz WzZdID0gQm9vbEdldERhdHVtKAorCQkJCQkJCQkJCQkgb2JqZWN0X2FjbGNoZWNrKFZhcmlhYmxl UmVsYXRpb25JZCwgc3Zhci0+dmFyaWQsCisJCQkJCQkJCQkJCQkJCQkgR2V0VXNlcklkKCksIEFD TF9TRUxFQ1QpID09IEFDTENIRUNLX09LKTsKKworCQkJCQl2YWx1ZXNbN10gPSBCb29sR2V0RGF0 dW0oCisJCQkJCQkJCQkJCSBvYmplY3RfYWNsY2hlY2soVmFyaWFibGVSZWxhdGlvbklkLCBzdmFy LT52YXJpZCwKKwkJCQkJCQkJCQkJCQkJCSBHZXRVc2VySWQoKSwgQUNMX1VQREFURSkgPT0gQUNM Q0hFQ0tfT0spOworCisJCQkJCXZhcl9pc192YWxpZCA9IHRydWU7CisJCQkJfQorCisJCQkJUmVs ZWFzZVN5c0NhY2hlKHRwKTsKKwkJCX0KKworCQkJLyogaWYgdGhlcmUgaXMgbm8gbWF0Y2hpbmcg Y2F0YWxvZyBlbnRyeSwgcmV0dXJuIG51bGwgdmFsdWVzICovCisJCQlpZiAoIXZhcl9pc192YWxp ZCkKKwkJCXsKKwkJCQludWxsc1sxXSA9IHRydWU7CisJCQkJbnVsbHNbMl0gPSB0cnVlOworCQkJ CW51bGxzWzRdID0gdHJ1ZTsKKwkJCQl2YWx1ZXNbNV0gPSBCb29sR2V0RGF0dW0odHJ1ZSk7CisJ CQkJbnVsbHNbNl0gPSB0cnVlOworCQkJCW51bGxzWzddID0gdHJ1ZTsKKwkJCX0KKworCQkJdHVw bGVzdG9yZV9wdXR2YWx1ZXMocnNpbmZvLT5zZXRSZXN1bHQsIHJzaW5mby0+c2V0RGVzYywgdmFs dWVzLCBudWxscyk7CisJCX0KKwl9CisKKwlyZXR1cm4gKERhdHVtKSAwOworfQpkaWZmIC0tZ2l0 IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdCBiL3NyYy9pbmNsdWRlL2NhdGFsb2cv cGdfcHJvYy5kYXQKaW5kZXggNzBmNDFmMThlMi4uYjNhZTRkNmFhZCAxMDA2NDQKLS0tIGEvc3Jj L2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdAorKysgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3Bn X3Byb2MuZGF0CkBAIC0xMjQ1Miw0ICsxMjQ1MiwxMiBAQAogICBwcm9hcmd0eXBlcyA9PiAnaW50 MicsCiAgIHByb3NyYyA9PiAnZ2lzdF9zdHJhdG51bV9pZGVudGl0eScgfSwKIAorIyBTZXNzaW9u IHZhcmlhYmxlcyBzdXBwb3J0Cit7IG9pZCA9PiAnODQ4OCcsIGRlc2NyID0+ICdsaXN0IG9mIHVz ZWQgc2Vzc2lvbiB2YXJpYWJsZXMnLAorICBwcm9uYW1lID0+ICdwZ19zZXNzaW9uX3ZhcmlhYmxl cycsIHByb3Jvd3MgPT4gJzEwMDAnLCBwcm9yZXRzZXQgPT4gJ3QnLAorICBwcm92b2xhdGlsZSA9 PiAncycsIHByb3BhcmFsbGVsID0+ICdyJywgcHJvcmV0dHlwZSA9PiAncmVjb3JkJywKKyAgcHJv YXJndHlwZXMgPT4gJycsIHByb2FsbGFyZ3R5cGVzID0+ICd7b2lkLHRleHQsdGV4dCxvaWQsdGV4 dCxib29sLGJvb2wsYm9vbH0nLAorICBwcm9hcmdtb2RlcyA9PiAne28sbyxvLG8sbyxvLG8sb30n LAorICBwcm9hcmduYW1lcyA9PiAne3ZhcmlkLHNjaGVtYSxuYW1lLHR5cGlkLHR5cG5hbWUscmVt b3ZlZCxjYW5fc2VsZWN0LGNhbl91cGRhdGV9JywKKyAgcHJvc3JjID0+ICdwZ19zZXNzaW9uX3Zh cmlhYmxlcycgfSwKIF0KLS0gCjIuNDcuMQoK --0000000000007bfa26062b3fa8d1 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250109-0002-Storage-for-session-variables-and-SQL-interface.patch" Content-Disposition: attachment; filename="v20250109-0002-Storage-for-session-variables-and-SQL-interface.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5ox16r420 RnJvbSBlZGVjMjg3MmE3ZDQwY2RiNjE2N2ZjY2JmNGNhOWJhNGU5YjdiZTIzIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IFRodSwgNiBKdWwgMjAyMyAwODoyOToyMSArMDIwMApTdWJqZWN0OiBbUEFUQ0ggMDIv MjJdIFN0b3JhZ2UgZm9yIHNlc3Npb24gdmFyaWFibGVzIGFuZCBTUUwgaW50ZXJmYWNlCgpTZXNz aW9uIHZhcmlhYmxlcyBhcmUgc3RvcmVkIGluIHNlc3Npb24gbWVtb3J5IGluIGEgZGVkaWNhdGVk IGhhc2ggdGFibGUuClRoZXkgYXJlIHNldCBieSB0aGUgTEVUIGNvbW1hbmQgYW5kIHJlYWQgYnkg dGhlIFNFTEVDVCBjb21tYW5kLgpUaGUgYWNjZXNzIHJpZ2h0cyBzaG91bGQgYmUgY2hlY2tlZC4K ClRoZSBpZGVudGlmaWVycyBvZiBzZXNzaW9uIHZhcmlhYmxlcyBzaG91bGQgYWx3YXlzIGJlIHNo YWRvd2VkIGJ5IHBvc3NpYmxlCmNvbHVtbiBpZGVudGlmaWVyczogd2UgZG9uJ3Qgd2FudCB0byBi cmVhayBhbiBhcHBsaWNhdGlvbiBieSBjcmVhdGluZyBzb21lCmJhZGx5IG5hbWVkIHNlc3Npb24g dmFyaWFibGUuCgpUaGUgbGltaXRzIG9mIHRoaXMgcGF0Y2ggKHNvbHZlZCBieSBvdGhlciBwYXRj aGVzKToKCi0gc2Vzc2lvbiB2YXJpYWJsZXMgYmxvY2sgcGFyYWxsZWwgZXhlY3V0aW9uCi0gc2Vz c2lvbiB2YXJpYWJsZXMgYmxvY2tzIHNpbXBsZSBleHByZXNzaW9uIGV2YWx1YXRpb24gKGluIHBs cGdzcWwpCi0gU1FMIGZ1bmN0aW9ucyB3aXRoIHNlc3Npb24gdmFyaWFibGVzIGFyZSBub3QgaW5s aW5lZAotIENBTEwgc3RhdGVtZW50IGlzIG5vdCBzdXBwb3J0ZWQgKHVzYWdlIG9mIGRpcmVjdCBh Y2Nlc3MgdG8gZXhwcmVzcyBleGVjdXRvcikKLSBFWEVDVVRFIHN0YXRlbWVudCBpcyBub3Qgc3Vw cG9ydGVkICh1c2FnZSBvZiBkaXJlY3QgYWNjZXNzIHRvIGV4cHJlc3MgZXhlY3V0b3IpCi0gbWVt b3J5IHVzZWQgYnkgZHJvcHBlZCBzZXNzaW9uIHZhcmlhYmxlcyBpcyBub3QgcmVsZWFzZWQKCklt cGxlbWVudGF0aW9ucyBvZiBFWFBMQUlOIExFVCBhbmQgUFJFUEFSRSBMRVQgc3RhdGVtZW50cwph cmUgaW4gc2VwYXJhdGUgcGF0Y2hlcyAoZm9yIGJldHRlciByZWFkYWJpbGl0eSkKLS0tCiBkb2Mv c3JjL3NnbWwvY2F0YWxvZ3Muc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgIDEzICsKIGRvYy9z cmMvc2dtbC9kZGwuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgNjEgKwogZG9jL3Ny Yy9zZ21sL2Z1bmMuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNCArLQogZG9jL3Ny Yy9zZ21sL2dsb3NzYXJ5LnNnbWwgICAgICAgICAgICAgICAgICAgIHwgICAgNSArLQogZG9jL3Ny Yy9zZ21sL3BhcmFsbGVsLnNnbWwgICAgICAgICAgICAgICAgICAgIHwgICAgNiArCiBkb2Mvc3Jj L3NnbWwvcGxwZ3NxbC5zZ21sICAgICAgICAgICAgICAgICAgICAgfCAgIDE0ICsKIGRvYy9zcmMv c2dtbC9yZWYvYWxsZmlsZXMuc2dtbCAgICAgICAgICAgICAgICB8ICAgIDEgKwogZG9jL3NyYy9z Z21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21sICAgICAgICAgIHwgICAgMSArCiBkb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAgICA1ICstCiBkb2Mvc3JjL3Nn bWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbCAgICAgICAgICAgfCAgICAxICsKIGRvYy9zcmMvc2dt bC9yZWYvbGV0LnNnbWwgICAgICAgICAgICAgICAgICAgICB8ICAgOTYgKysKIGRvYy9zcmMvc2dt bC9yZWZlcmVuY2Uuc2dtbCAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tlbmQv Y2F0YWxvZy9kZXBlbmRlbmN5LmMgICAgICAgICAgICAgIHwgICAgNSArCiBzcmMvYmFja2VuZC9j YXRhbG9nL25hbWVzcGFjZS5jICAgICAgICAgICAgICAgfCAgMjg5ICsrKysKIHNyYy9iYWNrZW5k L2NhdGFsb2cvcGdfdmFyaWFibGUuYyAgICAgICAgICAgICB8ICAgIDIgKwogc3JjL2JhY2tlbmQv Y29tbWFuZHMvTWFrZWZpbGUgICAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvYmFja2VuZC9j b21tYW5kcy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5kL2Nv bW1hbmRzL3ByZXBhcmUuYyAgICAgICAgICAgICAgICB8ICAgMTAgKwogc3JjL2JhY2tlbmQvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jICAgICAgIHwgIDUyOSArKysrKysrCiBzcmMvYmFja2Vu ZC9leGVjdXRvci9NYWtlZmlsZSAgICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5k L2V4ZWN1dG9yL2V4ZWNFeHByLmMgICAgICAgICAgICAgICB8ICAgMzIgKwogc3JjL2JhY2tlbmQv ZXhlY3V0b3IvZXhlY01haW4uYyAgICAgICAgICAgICAgIHwgICA2NiArCiBzcmMvYmFja2VuZC9l eGVjdXRvci9tZXNvbi5idWlsZCAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9iYWNrZW5kL2V4 ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmMgICAgICB8ICAxNzIgKysrCiBzcmMvYmFja2VuZC9u b2Rlcy9ub2RlRnVuY3MuYyAgICAgICAgICAgICAgICAgfCAgIDEwICsKIHNyYy9iYWNrZW5kL29w dGltaXplci9wbGFuL3BsYW5uZXIuYyAgICAgICAgICB8ICAgMzYgKwogc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3BsYW4vc2V0cmVmcy5jICAgICAgICAgIHwgIDE1NiArKy0KIHNyYy9iYWNrZW5kL29w dGltaXplci9wcmVwL3ByZXBqb2ludHJlZS5jICAgICB8ICAgIDMgKwogc3JjL2JhY2tlbmQvb3B0 aW1pemVyL3V0aWwvY2xhdXNlcy5jICAgICAgICAgIHwgICAzMyArLQogc3JjL2JhY2tlbmQvcGFy c2VyL2FuYWx5emUuYyAgICAgICAgICAgICAgICAgIHwgIDI3MiArKystCiBzcmMvYmFja2VuZC9w YXJzZXIvZ3JhbS55ICAgICAgICAgICAgICAgICAgICAgfCAgIDM5ICstCiBzcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfYWdnLmMgICAgICAgICAgICAgICAgfCAgICA5ICsKIHNyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9leHByLmMgICAgICAgICAgICAgICB8ICAyMjMgKystCiBzcmMvYmFja2VuZC9w YXJzZXIvcGFyc2VfZnVuYy5jICAgICAgICAgICAgICAgfCAgICAyICsKIHNyYy9iYWNrZW5kL3Bh cnNlci9wYXJzZV9tZXJnZS5jICAgICAgICAgICAgICB8ICAgIDEgKwogc3JjL2JhY2tlbmQvdGNv cC9kZXN0LmMgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNyArCiBzcmMvYmFja2VuZC90Y29w L3V0aWxpdHkuYyAgICAgICAgICAgICAgICAgICAgfCAgIDE2ICsKIHNyYy9iYWNrZW5kL3V0aWxz L2FkdC9ydWxldXRpbHMuYyAgICAgICAgICAgICB8ICAgNDYgKwogc3JjL2JhY2tlbmQvdXRpbHMv Y2FjaGUvcGxhbmNhY2hlLmMgICAgICAgICAgIHwgICA0MSArLQogc3JjL2JhY2tlbmQvdXRpbHMv Zm1nci9mbWdyLmMgICAgICAgICAgICAgICAgIHwgICAxMCArLQogc3JjL2Jpbi9wc3FsL3RhYi1j b21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgICAxMiArLQogc3JjL2luY2x1ZGUvY2F0YWxv Zy9uYW1lc3BhY2UuaCAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvaW5jbHVkZS9jYXRhbG9n L3BnX3ZhcmlhYmxlLmggICAgICAgICAgICAgfCAgICA5ICsKIHNyYy9pbmNsdWRlL2NvbW1hbmRz L3Nlc3Npb25fdmFyaWFibGUuaCAgICAgICB8ICAgMzAgKwogc3JjL2luY2x1ZGUvZXhlY3V0b3Iv c3ZhcmlhYmxlUmVjZWl2ZXIuaCAgICAgIHwgICAyMiArCiBzcmMvaW5jbHVkZS9ub2Rlcy9leGVj bm9kZXMuaCAgICAgICAgICAgICAgICAgfCAgIDE0ICsKIHNyYy9pbmNsdWRlL25vZGVzL3BhcnNl bm9kZXMuaCAgICAgICAgICAgICAgICB8ICAgMTcgKwogc3JjL2luY2x1ZGUvbm9kZXMvcGF0aG5v ZGVzLmggICAgICAgICAgICAgICAgIHwgICAxNCArCiBzcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9k ZXMuaCAgICAgICAgICAgICAgICAgfCAgICA5ICsKIHNyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rl cy5oICAgICAgICAgICAgICAgICB8ICAgMTQgKwogc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BsYW5t YWluLmggICAgICAgICAgICAgIHwgICAgMiArCiBzcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0Lmgg ICAgICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2Rl LmggICAgICAgICAgICAgICB8ICAgIDMgKwogc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0Lmgg ICAgICAgICAgICAgICAgIHwgICAgMSArCiBzcmMvaW5jbHVkZS90Y29wL2Rlc3QuaCAgICAgICAg ICAgICAgICAgICAgICAgfCAgICAxICsKIHNyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMgICAg ICAgICAgICAgICAgICB8ICAgIDMgKy0KIC4uLi9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFy aWFibGVzLm91dCAgICB8IDEyMzIgKysrKysrKysrKysrKysrKysKIHNyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8ICA4ODMgKysrKysrKysrKysrCiBzcmMvdG9v bHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCAgICAgICAgICAgICAgfCAgICA1ICsKIDU5IGZpbGVz IGNoYW5nZWQsIDQ0NjcgaW5zZXJ0aW9ucygrKSwgMjcgZGVsZXRpb25zKC0pCiBjcmVhdGUgbW9k ZSAxMDA2NDQgZG9jL3NyYy9zZ21sL3JlZi9sZXQuc2dtbAogY3JlYXRlIG1vZGUgMTAwNjQ0IHNy Yy9iYWNrZW5kL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuYwogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyYy9iYWNrZW5kL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmMKIGNyZWF0ZSBtb2RlIDEw MDY0NCBzcmMvaW5jbHVkZS9jb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBzcmMvaW5jbHVkZS9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oCgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Mu c2dtbAppbmRleCA2YmJjNmM3ZTI4Li42N2U2NDU5MjUwIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApAQCAtOTc4 NCw2ICs5Nzg0LDE5IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVyYXRpb24g Y291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgICAgICA8L3BhcmE+PC9l bnRyeT4KICAgICAgPC9yb3c+CiAKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRh bG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAg PHN0cnVjdGZpZWxkPnZhcmNyZWF0ZV9sc248L3N0cnVjdGZpZWxkPiA8dHlwZT5wZ19sc248L3R5 cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICBMU04gb2YgdGhlIHRyYW5z YWN0aW9uIHdoZXJlIHRoZSB2YXJpYWJsZSB3YXMgY3JlYXRlZC4KKyAgICAgICA8c3RydWN0Zmll bGQ+dmFyY3JlYXRlX2xzbjwvc3RydWN0ZmllbGQ+IGFuZAorICAgICAgIDxzdHJ1Y3RmaWVsZD5v aWQ8L3N0cnVjdGZpZWxkPiB0b2dldGhlciBmb3JtIHRoZSBhbGwtdGltZSB1bmlxdWUKKyAgICAg ICBpZGVudGlmaWVyICg8c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4gYWxvbmUgaXMgbm90 IGVub3VnaCwgc2luY2UKKyAgICAgICBvYmplY3QgaWRlbnRpZmllcnMgY2FuIGdldCByZXVzZWQp LgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCiAgICAgIDxyb3c+CiAgICAg ICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29sdW1uX2Rl ZmluaXRpb24iPgogICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJuYW1lPC9zdHJ1Y3RmaWVsZD4gPHR5 cGU+bmFtZTwvdHlwZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9kZGwuc2dtbCBiL2RvYy9z cmMvc2dtbC9kZGwuc2dtbAppbmRleCA0Zjc5YzY3NmMzLi4zN2QyZmEwMWNiIDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2RkbC5zZ21sCkBAIC01 MzU3LDYgKzUzNTcsNjcgQEAgRVhQTEFJTiBTRUxFQ1QgY291bnQoKikgRlJPTSBtZWFzdXJlbWVu dCBXSEVSRSBsb2dkYXRlICZndDs9IERBVEUgJzIwMDgtMDEtMDEnOwogICAgIFRoZSBzZXNzaW9u IHZhcmlhYmxlIGhvbGRzIHZhbHVlIGluIHNlc3Npb24gbWVtb3J5LiAgVGhpcyB2YWx1ZSBpcyBw cml2YXRlCiAgICAgdG8gZWFjaCBzZXNzaW9uIGFuZCBpcyByZWxlYXNlZCB3aGVuIHRoZSBzZXNz aW9uIGVuZHMuCiAgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIFRoZSB2YWx1ZSBvZiBhIHNl c3Npb24gdmFyaWFibGUgaXMgc2V0IHdpdGggdGhlIFNRTCBzdGF0ZW1lbnQKKyAgICA8Y29tbWFu ZD5MRVQ8L2NvbW1hbmQ+LiAgVGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBjYW4gYmUg cmV0cmlldmVkCisgICAgd2l0aCB0aGUgU1FMIHN0YXRlbWVudCA8Y29tbWFuZD5TRUxFQ1Q8L2Nv bW1hbmQ+LgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgZGF0ZTsK K0xFVCB2YXIxID0gY3VycmVudF9kYXRlOworU0VMRUNUIHZhcjE7Cis8L3Byb2dyYW1saXN0aW5n PgorCisgICAgb3IKKworPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFZBUklBQkxFIHB1YmxpYy5j dXJyZW50X3VzZXJfaWQgQVMgaW50ZWdlcjsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSBwdWJs aWMuY3VycmVudF91c2VyX2lkIFRPIFBVQkxJQzsKK0xFVCBjdXJyZW50X3VzZXJfaWQgPSAoU0VM RUNUIGlkIEZST00gdXNlcnMgV0hFUkUgdXNlbmFtZSA9IHNlc3Npb25fdXNlcik7CitTRUxFQ1Qg Y3VycmVudF91c2VyX2lkOworPC9wcm9ncmFtbGlzdGluZz4KKyAgIDwvcGFyYT4KKworICAgPHBh cmE+CisgICAgVGhlIHZhbHVlIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBpcyBsb2NhbCB0byB0aGUg Y3VycmVudCBzZXNzaW9uLiBSZXRyaWV2aW5nCisgICAgYSB2YXJpYWJsZSdzIHZhbHVlIHJldHVy bnMgYSA8bGl0ZXJhbD5OVUxMPC9saXRlcmFsPiwgdW5sZXNzIGl0cyB2YWx1ZSBoYXMKKyAgICBi ZWVuIHNldCB0byBzb21ldGhpbmcgZWxzZSBpbiB0aGUgY3VycmVudCBzZXNzaW9uIHVzaW5nIHRo ZQorICAgIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gY29tbWFuZC4gIFNlc3Npb24gdmFyaWFibGVz IGFyZSBub3QgdHJhbnNhY3Rpb25hbDoKKyAgICBhbnkgY2hhbmdlcyBtYWRlIHRvIHRoZSB2YWx1 ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgaW4gYSB0cmFuc2FjdGlvbiB3b24ndAorICAgIGJlIHVu ZG9uZSBpZiB0aGUgdHJhbnNhY3Rpb24gaXMgcm9sbGVkIGJhY2sgKGp1c3QgbGlrZSB2YXJpYWJs ZXMgaW4KKyAgICBwcm9jZWR1cmFsIGxhbmd1YWdlcykuICBTZXNzaW9uIHZhcmlhYmxlcyB0aGVt c2VsdmVzIGFyZSBwZXJzaXN0ZW50LCBidXQKKyAgICB0aGVpciB2YWx1ZXMgYXJlIG5laXRoZXIg cGVyc2lzdGVudCBub3Igc2hhcmVkIChsaWtlIHRoZSBjb250ZW50IG9mCisgICAgdGVtcG9yYXJ5 IHRhYmxlcykuCisgICA8L3BhcmE+CisKKyAgIDxwYXJhPgorICAgIEluc2lkZSBhIHF1ZXJ5IG9y IGFuIGV4cHJlc3Npb24sIGEgc2Vzc2lvbiB2YXJpYWJsZSBjYW4gYmUKKyAgICA8cXVvdGU+c2hh ZG93ZWQ8L3F1b3RlPiBieSBhIGNvbHVtbiB3aXRoIHRoZSBzYW1lIG5hbWUuICBTaW1pbGFybHks IHRoZQorICAgIG5hbWUgb2YgYSBmdW5jdGlvbiBvciBwcm9jZWR1cmUgYXJndW1lbnQgb3IgYSBQ TC9wZ1NRTCB2YXJpYWJsZSAoc2VlCisgICAgPHhyZWYgbGlua2VuZD0icGxwZ3NxbC1kZWNsYXJh dGlvbnMiLz4pIGNhbiBzaGFkb3cgYSBzZXNzaW9uIHZhcmlhYmxlCisgICAgaW4gdGhlIHJvdXRp bmUncyBib2R5LiAgU3VjaCBjb2xsaXNpb25zIG9mIGlkZW50aWZpZXJzIGNhbiBiZSByZXNvbHZl ZAorICAgIGJ5IHVzaW5nIHF1YWxpZmllZCBpZGVudGlmaWVyczogU2Vzc2lvbiB2YXJpYWJsZXMg Y2FuIGJlIHF1YWxpZmllZCB3aXRoCisgICAgdGhlIHNjaGVtYSBuYW1lLCBjb2x1bW5zIGNhbiB1 c2UgdGFibGUgYWxpYXNlcywgcm91dGluZSB2YXJpYWJsZXMgY2FuIHVzZQorICAgIGJsb2NrIGxh YmVscywgYW5kIHJvdXRpbmUgYXJndW1lbnRzIGNhbiB1c2UgdGhlIHJvdXRpbmUgbmFtZS4KKzxw cm9ncmFtbGlzdGluZz4KK0NSRUFURSBWQVJJQUJMRSBuYW1lIEFTIHRleHQ7CitMRVQgbmFtZSA9 ICdKb2huJzsKKworQ1JFQVRFIFRBQkxFIGZvbyhuYW1lIHRleHQpOworSU5TRVJUIElOVE8gZm9v IFZBTFVFUygnQWxpY2UnKTsKKworLS0gdmFyaWFibGUgbmFtZSBpcyBzaGFkb3dlZAorU0VMRUNU IG5hbWUgRlJPTSBmb287IAorPC9wcm9ncmFtbGlzdGluZz4KKworICAgd2hpY2ggcmV0dXJuczoK KworPHByb2dyYW1saXN0aW5nPgorIG5hbWUgIAorLS0tLS0tLQorIEFsaWNlCis8L3Byb2dyYW1s aXN0aW5nPgorICAgPC9wYXJhPgogICA8L3NlY3QxPgogCiAgPHNlY3QxIGlkPSJkZGwtb3RoZXJz Ij4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZnVu Yy5zZ21sCmluZGV4IDNmNWQ4Yzk3N2QuLjljYTJkN2M0OWMgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9mdW5jLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbApAQCAtMjU1NDQsOCAr MjU1NDQsOCBAQCBTRUxFQ1QgaGFzX2Z1bmN0aW9uX3ByaXZpbGVnZSgnam9ldXNlcicsICdteWZ1 bmMoaW50LCB0ZXh0KScsICdleGVjdXRlJyk7CiAgICAgICAgICd0JyBmb3IgPGxpdGVyYWw+VEFC TEVTUEFDRTwvbGl0ZXJhbD4sCiAgICAgICAgICdGJyBmb3IgPGxpdGVyYWw+Rk9SRUlHTiBEQVRB IFdSQVBQRVI8L2xpdGVyYWw+LAogICAgICAgICAnUycgZm9yIDxsaXRlcmFsPkZPUkVJR04gU0VS VkVSPC9saXRlcmFsPiwKLSAgICAgICAgb3IKLSAgICAgICAgJ1QnIGZvciA8bGl0ZXJhbD5UWVBF PC9saXRlcmFsPiBvciA8bGl0ZXJhbD5ET01BSU48L2xpdGVyYWw+LgorICAgICAgICAnVCcgZm9y IDxsaXRlcmFsPlRZUEU8L2xpdGVyYWw+IG9yIDxsaXRlcmFsPkRPTUFJTjwvbGl0ZXJhbD4gb3IK KyAgICAgICAgJ1YnIGZvciA8bGl0ZXJhbD5TRVNTSU9OIFZBUklBQkxFPC9saXRlcmFsPi4KICAg ICAgICA8L3BhcmE+PC9lbnRyeT4KICAgICAgIDwvcm93PgogCmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvZ2xvc3Nhcnkuc2dtbCBiL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sCmluZGV4IGQw Y2I1Mzc2M2EuLjdiYzNmYzNiYjAgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5z Z21sCisrKyBiL2RvYy9zcmMvc2dtbC9nbG9zc2FyeS5zZ21sCkBAIC0xNjcwLDggKzE2NzAsOSBA QAogICAgIDxwYXJhPgogICAgICBBIHBlcnNpc3RlbnQgZGF0YWJhc2Ugb2JqZWN0IHRoYXQgaG9s ZHMgYSB2YWx1ZSBpbiBzZXNzaW9uIG1lbW9yeS4gIFRoaXMKICAgICAgdmFsdWUgaXMgcHJpdmF0 ZSB0byBlYWNoIHNlc3Npb24gYW5kIGlzIHJlbGVhc2VkIHdoZW4gdGhlIHNlc3Npb24gZW5kcy4K LSAgICAgUmVhZCBvciB3cml0ZSBhY2Nlc3MgdG8gc2Vzc2lvbiB2YXJpYWJsZXMgaXMgY29udHJv bGxlZCBieSBwcml2aWxlZ2VzLAotICAgICBzaW1pbGFyIHRvIG90aGVyIGRhdGFiYXNlIG9iamVj dHMuCisgICAgIFRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGlzIG51 bGwuICBSZWFkIG9yIHdyaXRlIGFjY2VzcworICAgICB0byBzZXNzaW9uIHZhcmlhYmxlcyBpcyBj b250cm9sbGVkIGJ5IHByaXZpbGVnZXMsIHNpbWlsYXIgdG8gb3RoZXIgZGF0YWJhc2UKKyAgICAg b2JqZWN0cy4KICAgICA8L3BhcmE+CiAgICAgPHBhcmE+CiAgICAgIEZvciBtb3JlIGluZm9ybWF0 aW9uLCBzZWUgPHhyZWYgbGlua2VuZD0iZGRsLXNlc3Npb24tdmFyaWFibGVzIi8+LgpkaWZmIC0t Z2l0IGEvZG9jL3NyYy9zZ21sL3BhcmFsbGVsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcGFyYWxsZWwu c2dtbAppbmRleCAxY2U5YWJmODZmLi42ODNkZWRlNmFkIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3Nn bWwvcGFyYWxsZWwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcGFyYWxsZWwuc2dtbApAQCAtNTE1 LDYgKzUxNSwxMiBAQCBFWFBMQUlOIFNFTEVDVCAqIEZST00gcGdiZW5jaF9hY2NvdW50cyBXSEVS RSBmaWxsZXIgTElLRSAnJXglJzsKICAgICAgICAgUGxhbiBub2RlcyB0aGF0IHJlZmVyZW5jZSBh IGNvcnJlbGF0ZWQgPGxpdGVyYWw+U3ViUGxhbjwvbGl0ZXJhbD4uCiAgICAgICA8L3BhcmE+CiAg ICAgPC9saXN0aXRlbT4KKworICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgICBQ bGFuIG5vZGVzIHRoYXQgdXNlIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgIDwvcGFyYT4KKyAg ICA8L2xpc3RpdGVtPgogICA8L2l0ZW1pemVkbGlzdD4KIAogIDxzZWN0MiBpZD0icGFyYWxsZWwt bGFiZWxpbmciPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbCBiL2RvYy9z cmMvc2dtbC9wbHBnc3FsLnNnbWwKaW5kZXggNzhlNDk4MzEzOS4uYmZiZmY5YWI3NCAxMDA2NDQK LS0tIGEvZG9jL3NyYy9zZ21sL3BscGdzcWwuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcGxwZ3Nx bC5zZ21sCkBAIC02MDM0LDYgKzYwMzQsMjAgQEAgJCQgTEFOR1VBR0UgcGxwZ3NxbCBTVFJJQ1Qg SU1NVVRBQkxFOwogPC9wcm9ncmFtbGlzdGluZz4KICAgICA8L3BhcmE+CiAgICA8L3NlY3QzPgor CisgICA8c2VjdDMgaWQ9InBscGdzcWwtcG9ydGluZy1wYWNrYWdlLXZhcmlhYmxlcyI+CisgICAg PHRpdGxlPjxjb21tYW5kPlBhY2thZ2VzIGFuZCBwYWNrYWdlIHZhcmlhYmxlczwvY29tbWFuZD48 L3RpdGxlPgorCisgICAgPHBhcmE+CisgICAgIFRoZSA8YXBwbGljYXRpb24+UEwvcGdTUUw8L2Fw cGxpY2F0aW9uPiBsYW5ndWFnZSBoYXMgbm8gcGFja2FnZXMsIGFuZAorICAgICB0aGVyZWZvcmUg bm8gcGFja2FnZSB2YXJpYWJsZXMgb3IgcGFja2FnZSBjb25zdGFudHMuCisgICAgIFlvdSBjYW4g Y29uc2lkZXIgdHJhbnNsYXRpbmcgYW4gT3JhY2xlIHBhY2thZ2UgaW50byBhIHNjaGVtYSBpbgor ICAgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+LiAgUGFja2FnZSBmdW5j dGlvbnMgYW5kIHByb2NlZHVyZXMKKyAgICAgd291bGQgdGhlbiBiZWNvbWUgZnVuY3Rpb25zIGFu ZCBwcm9jZWR1cmVzIGluIHRoYXQgc2NoZW1hLCBhbmQgcGFja2FnZQorICAgICB2YXJpYWJsZXMg Y291bGQgYmUgdHJhbnNsYXRlZCB0byBzZXNzaW9uIHZhcmlhYmxlcyBpbiB0aGF0IHNjaGVtYS4K KyAgICAgKHNlZSA8eHJlZiBsaW5rZW5kPSJkZGwtc2Vzc2lvbi12YXJpYWJsZXMiLz4pLgorICAg IDwvcGFyYT4KKyAgIDwvc2VjdDM+CiAgIDwvc2VjdDI+CiAKICAgPHNlY3QyIGlkPSJwbHBnc3Fs LXBvcnRpbmctYXBwZW5kaXgiPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxl cy5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sCmluZGV4IDJmNjdkZTNlMjEu LmNjM2JkNWFiNTQgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZpbGVzLnNnbWwKQEAgLTE1OCw2ICsxNTgsNyBAQCBD b21wbGV0ZSBsaXN0IG9mIHVzYWJsZSBzZ21sIHNvdXJjZSBmaWxlcyBpbiB0aGlzIGRpcmVjdG9y eS4KIDwhRU5USVRZIGdyYW50ICAgICAgICAgICAgICBTWVNURU0gImdyYW50LnNnbWwiPgogPCFF TlRJVFkgaW1wb3J0Rm9yZWlnblNjaGVtYSBTWVNURU0gImltcG9ydF9mb3JlaWduX3NjaGVtYS5z Z21sIj4KIDwhRU5USVRZIGluc2VydCAgICAgICAgICAgICBTWVNURU0gImluc2VydC5zZ21sIj4K KzwhRU5USVRZIGxldCAgICAgICAgICAgICAgICBTWVNURU0gImxldC5zZ21sIj4KIDwhRU5USVRZ IGxpc3RlbiAgICAgICAgICAgICBTWVNURU0gImxpc3Rlbi5zZ21sIj4KIDwhRU5USVRZIGxvYWQg ICAgICAgICAgICAgICBTWVNURU0gImxvYWQuc2dtbCI+CiA8IUVOVElUWSBsb2NrICAgICAgICAg ICAgICAgU1lTVEVNICJsb2NrLnNnbWwiPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9h bHRlcl92YXJpYWJsZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRlcl92YXJpYWJsZS5zZ21s CmluZGV4IDk2ZDI1ODY0MjMuLjIyMWE2OTk0NjkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9y ZWYvYWx0ZXJfdmFyaWFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX3Zhcmlh YmxlLnNnbWwKQEAgLTE3Myw2ICsxNzMsNyBAQCBBTFRFUiBWQVJJQUJMRSBib28gU0VUIFNDSEVN QSBwcml2YXRlOwogICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgogICAgPG1lbWJlcj48eHJl ZiBsaW5rZW5kPSJzcWwtY3JlYXRldmFyaWFibGUiLz48L21lbWJlcj4KICAgIDxtZW1iZXI+PHhy ZWYgbGlua2VuZD0ic3FsLWRyb3B2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJl ZiBsaW5rZW5kPSJzcWwtbGV0Ii8+PC9tZW1iZXI+CiAgIDwvc2ltcGxlbGlzdD4KICA8L3JlZnNl Y3QxPgogPC9yZWZlbnRyeT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3Zh cmlhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sCmluZGV4 IDZlOTg4ZjJlNDcuLmNkOWZmNjM5NzUgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvY3Jl YXRlX3ZhcmlhYmxlLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUu c2dtbApAQCAtMTIwLDkgKzEyMCwxMSBAQCBDUkVBVEUgVkFSSUFCTEUgWyBJRiBOT1QgRVhJU1RT IF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYgogICA8dGl0 bGU+RXhhbXBsZXM8L3RpdGxlPgogCiAgIDxwYXJhPgotICAgQ3JlYXRlIGFuIGRhdGUgc2Vzc2lv biB2YXJpYWJsZSA8bGl0ZXJhbD52YXIxPC9saXRlcmFsPjoKKyAgIENyZWF0ZSBhIHNlc3Npb24g dmFyaWFibGUgPGxpdGVyYWw+dmFyMTwvbGl0ZXJhbD4gb2YgZGF0YSB0eXBlIGRhdGU6CiA8cHJv Z3JhbWxpc3Rpbmc+CiBDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBkYXRlOworTEVUIHZhcjEgPSBj dXJyZW50X2RhdGU7CitTRUxFQ1QgdmFyMTsKIDwvcHJvZ3JhbWxpc3Rpbmc+CiAgIDwvcGFyYT4K IApAQCAtMTQzLDYgKzE0NSw3IEBAIENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGRhdGU7CiAgIDxz aW1wbGVsaXN0IHR5cGU9ImlubGluZSI+CiAgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1h bHRlcnZhcmlhYmxlIi8+PC9tZW1iZXI+CiAgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1k cm9wdmFyaWFibGUiLz48L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWxl dCIvPjwvbWVtYmVyPgogICA8L3NpbXBsZWxpc3Q+CiAgPC9yZWZzZWN0MT4KIApkaWZmIC0tZ2l0 IGEvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVm L2Ryb3BfdmFyaWFibGUuc2dtbAppbmRleCA1YmRiMzU2MGYwLi42Nzk4OGI1ZmNkIDEwMDY0NAot LS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbApAQCAtMTExLDYgKzExMSw3IEBAIERST1AgVkFSSUFC TEUgdmFyMTsKICAgPHNpbXBsZWxpc3QgdHlwZT0iaW5saW5lIj4KICAgIDxtZW1iZXI+PHhyZWYg bGlua2VuZD0ic3FsLWFsdGVydmFyaWFibGUiLz48L21lbWJlcj4KICAgIDxtZW1iZXI+PHhyZWYg bGlua2VuZD0ic3FsLWNyZWF0ZXZhcmlhYmxlIi8+PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVm IGxpbmtlbmQ9InNxbC1sZXQiLz48L21lbWJlcj4KICAgPC9zaW1wbGVsaXN0PgogIDwvcmVmc2Vj dDE+CiAKZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWYvbGV0LnNnbWwgYi9kb2Mvc3JjL3Nn bWwvcmVmL2xldC5zZ21sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjAw ZjliZWE5MWYKLS0tIC9kZXYvbnVsbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmL2xldC5zZ21sCkBA IC0wLDAgKzEsOTYgQEAKKzwhLS0KK2RvYy9zcmMvc2dtbC9yZWYvbGV0LnNnbWwKK1Bvc3RncmVT UUwgZG9jdW1lbnRhdGlvbgorLS0+CisKKzxyZWZlbnRyeSBpZD0ic3FsLWxldCI+CisgPGluZGV4 dGVybSB6b25lPSJzcWwtbGV0Ij4KKyAgPHByaW1hcnk+TEVUPC9wcmltYXJ5PgorIDwvaW5kZXh0 ZXJtPgorCisgPGluZGV4dGVybT4KKyAgPHByaW1hcnk+c2Vzc2lvbiB2YXJpYWJsZTwvcHJpbWFy eT4KKyAgPHNlY29uZGFyeT5jaGFuZ2luZzwvc2Vjb25kYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisg PHJlZm1ldGE+CisgIDxyZWZlbnRyeXRpdGxlPkxFVDwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZv bG51bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1l bnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5h bWU+TEVUPC9yZWZuYW1lPgorICA8cmVmcHVycG9zZT5jaGFuZ2UgYSBzZXNzaW9uIHZhcmlhYmxl J3MgdmFsdWU8L3JlZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9wc2lzZGl2 PgorPHN5bm9wc2lzPgorTEVUIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zZXNzaW9u X3ZhcmlhYmxlPC9yZXBsYWNlYWJsZT4gPSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ c3FsX2V4cHJlc3Npb248L3JlcGxhY2VhYmxlPgorPC9zeW5vcHNpcz4KKyA8L3JlZnN5bm9wc2lz ZGl2PgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RGVzY3JpcHRpb248L3RpdGxlPgorCisgIDxw YXJhPgorICAgVGhlIDxjb21tYW5kPkxFVDwvY29tbWFuZD4gY29tbWFuZCBhc3NpZ25zIGEgdmFs dWUgdG8gdGhlIHNwZWNpZmllZCBzZXNzaW9uCisgICB2YXJpYWJsZS4KKyAgPC9wYXJhPgorCisg PC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgor CisgIDx2YXJpYWJsZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNl YWJsZSBjbGFzcz0icGFyYW1ldGVyIj5zZXNzaW9uX3ZhcmlhYmxlPC9yZXBsYWNlYWJsZT48L3Rl cm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuYW1lIG9mIHRoZSBz ZXNzaW9uIHZhcmlhYmxlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFy bGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5zcWxfZXhwcmVzc2lvbjwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAg IDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBBbiBhcmJpdHJhcnkgU1FMIGV4cHJlc3Np b24uICBUaGUgcmVzdWx0IG11c3QgYmUgb2YgYSBkYXRhIHR5cGUgdGhhdCBjYW4KKyAgICAgIGJl IGNhc3QgdG8gdGhlIHR5cGUgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUgaW4gYW4gYXNzaWdubWVu dC4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKwor ICA8L3ZhcmlhYmxlbGlzdD4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+ RXhhbXBsZXM8L3RpdGxlPgorPHByb2dyYW1saXN0aW5nPgorQ1JFQVRFIFZBUklBQkxFIG15dmFy IEFTIGludGVnZXI7CitMRVQgbXl2YXIgPSAxMDsKK0xFVCBteXZhciA9IChTRUxFQ1Qgc3VtKHZh bCkgRlJPTSB0YWIpOworPC9wcm9ncmFtbGlzdGluZz4KKyA8L3JlZnNlY3QxPgorCisgPHJlZnNl Y3QxPgorICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUg PGNvbW1hbmQ+TEVUPC9jb21tYW5kPiBpcyBhIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9k dWN0bmFtZT4KKyAgIGV4dGVuc2lvbi4KKyAgPC9wYXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVm c2VjdDE+CisgIDx0aXRsZT5TZWUgQWxzbzwvdGl0bGU+CisKKyAgPHNpbXBsZWxpc3QgdHlwZT0i aW5saW5lIj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWFsdGVydmFyaWFibGUiLz48 L21lbWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWNyZWF0ZXZhcmlhYmxlIi8+ PC9tZW1iZXI+CisgICA8bWVtYmVyPjx4cmVmIGxpbmtlbmQ9InNxbC1kcm9wdmFyaWFibGUiLz48 L21lbWJlcj4KKyAgPC9zaW1wbGVsaXN0PgorIDwvcmVmc2VjdDE+Cis8L3JlZmVudHJ5PgpkaWZm IC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZmVy ZW5jZS5zZ21sCmluZGV4IDI1NTc4ZjM5NDYuLjEzZTRhZGM1ZGYgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9yZWZlcmVuY2Uuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwK QEAgLTE4Niw2ICsxODYsNyBAQAogICAgJmdyYW50OwogICAgJmltcG9ydEZvcmVpZ25TY2hlbWE7 CiAgICAmaW5zZXJ0OworICAgJmxldDsKICAgICZsaXN0ZW47CiAgICAmbG9hZDsKICAgICZsb2Nr OwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9kZXBlbmRlbmN5LmMgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYwppbmRleCA5ZTBmNjQ4Yjc0Li45MGM5ZThiYjI1IDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYworKysgYi9zcmMvYmFj a2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYwpAQCAtMTg2NCw2ICsxODY0LDExIEBAIGZpbmRfZXhw cl9yZWZlcmVuY2VzX3dhbGtlcihOb2RlICpub2RlLAogCXsKIAkJUGFyYW0JICAgKnBhcmFtID0g KFBhcmFtICopIG5vZGU7CiAKKwkJLyogYSB2YXJpYWJsZSBwYXJhbWV0ZXIgZGVwZW5kcyBvbiB0 aGUgc2Vzc2lvbiB2YXJpYWJsZSAqLworCQlpZiAocGFyYW0tPnBhcmFta2luZCA9PSBQQVJBTV9W QVJJQUJMRSkKKwkJCWFkZF9vYmplY3RfYWRkcmVzcyhWYXJpYWJsZVJlbGF0aW9uSWQsIHBhcmFt LT5wYXJhbXZhcmlkLCAwLAorCQkJCQkJCSAgIGNvbnRleHQtPmFkZHJzKTsKKwogCQkvKiBBIHBh cmFtZXRlciBtdXN0IGRlcGVuZCBvbiB0aGUgcGFyYW1ldGVyJ3MgZGF0YXR5cGUgKi8KIAkJYWRk X29iamVjdF9hZGRyZXNzKFR5cGVSZWxhdGlvbklkLCBwYXJhbS0+cGFyYW10eXBlLCAwLAogCQkJ CQkJICAgY29udGV4dC0+YWRkcnMpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9u YW1lc3BhY2UuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKaW5kZXggNDMwN2Nh ZDE1Yy4uYmVhZmVlMmEzNCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3Bh Y2UuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCkBAIC0zNDk3LDYgKzM0 OTcsMjk1IEBAIE5hbWVzRnJvbUxpc3QoTGlzdCAqbmFtZXMpCiAJcmV0dXJuIHJlc3VsdDsKIH0K IAorLyogLS0tLS0KKyAqIElkZW50aWZ5VmFyaWFibGUgLSB0cnkgdG8gZmluZCBhIHZhcmlhYmxl IGZyb20gYSBsaXN0IG9mIGlkZW50aWZpZXJzCisgKgorICogUmV0dXJucyB0aGUgT0lEIG9mIHRo ZSB2YXJpYWJsZSBmb3VuZCwgb3IgSW52YWxpZE9pZC4KKyAqCisgKiAibmFtZXMiIGlzIGEgbGlz dCBvZiB1cCB0byBmb3VyIGlkZW50aWZpZXJzOyBwb3NzaWJsZSBtZWFuaW5ncyBhcmU6CisgKiAt IHZhcmlhYmxlICAoc2VhcmNoZWQgb24gdGhlIHNlYXJjaF9wYXRoKQorICogLSBzY2hlbWEudmFy aWFibGUKKyAqIC0gdmFyaWFibGUuYXR0cmlidXRlICAoc2VhcmNoZWQgb24gdGhlIHNlYXJjaF9w YXRoKQorICogLSBzY2hlbWEudmFyaWFibGUuYXR0cmlidXRlCisgKiAtIGRhdGFiYXNlLnNjaGVt YS52YXJpYWJsZQorICogLSBkYXRhYmFzZS5zY2hlbWEudmFyaWFibGUuYXR0cmlidXRlCisgKgor ICogSWYgdGhlcmUgaXMgbW9yZSB0aGFuIG9uZSB3YXkgdG8gaWRlbnRpZnkgYSB2YXJpYWJsZSwg Im5vdF91bmlxdWUiIHdpbGwgYmUKKyAqIHNldCB0byB0cnVlLgorICoKKyAqIFVubGVzcyAibm9l cnJvciIgaXMgdHJ1ZSwgYW4gZXJyb3IgaXMgcmFpc2VkIGlmIHRoZXJlIGFyZSBtb3JlIHRoYW4g Zm91cgorICogIGlkZW50aWZpZXJzIGluIHRoZSBsaXN0LCBvciBpZiB0aGUgbmFtZWQgZGF0YWJh c2UgaXMgbm90IHRoZSBjdXJyZW50IG9uZS4KKyAqIFRoaXMgaXMgdXNlZnVsIGlmIHdlIHdhbnQg dG8gaWRlbnRpZnkgYSBzaGFkb3dlZCB2YXJpYWJsZS4KKyAqCisgKiBJZiBhbiBhdHRyaWJ1dGUg aXMgaWRlbnRpZmllZCwgaXQgaXMgc3RvcmVkIGluICJhdHRybmFtZSIsIG90aGVyd2lzZSB0aGUK KyAqIHBhcmFtZXRlciBpcyBzZXQgdG8gTlVMTC4KKyAqCisgKiBUaGUgaWRlbnRpZmllZCBzZXNz aW9uIHZhcmlhYmxlIHdpbGwgYmUgbG9ja2VkIHdpdGggYW4gQWNjZXNzU2hhcmVMb2NrLgorICog LS0tLS0KKyAqLworT2lkCitJZGVudGlmeVZhcmlhYmxlKExpc3QgKm5hbWVzLCBjaGFyICoqYXR0 cm5hbWUsIGJvb2wgKm5vdF91bmlxdWUsIGJvb2wgbm9lcnJvcikKK3sKKwlPaWQJCQl2YXJpZCA9 IEludmFsaWRPaWQ7CisJT2lkCQkJb2xkX3ZhcmlkID0gSW52YWxpZE9pZDsKKwl1aW50NjQJCWlu dmFsX2NvdW50OworCWJvb2wJCXJldHJ5ID0gZmFsc2U7CisKKwkvKgorCSAqIERETCBvcGVyYXRp b25zIGNhbiBjaGFuZ2UgdGhlIHJlc3VsdHMgb2YgYSBuYW1lIGxvb2t1cC4gIFNpbmNlIGFsbCBz dWNoCisJICogb3BlcmF0aW9ucyB3aWxsIGdlbmVyYXRlIGludmFsaWRhdGlvbiBtZXNzYWdlcywg d2Uga2VlcCB0cmFjayBvZgorCSAqIHdoZXRoZXIgYW55IHN1Y2ggbWVzc2FnZXMgc2hvdyB1cCB3 aGlsZSB3ZSdyZSBwZXJmb3JtaW5nIHRoZSBvcGVyYXRpb24sCisJICogYW5kIHJldHJ5IHVudGls IGVpdGhlciAoMSkgbm8gbW9yZSBpbnZhbGlkYXRpb24gbWVzc2FnZXMgc2hvdyB1cCBvciAoMikK KwkgKiB0aGUgYW5zd2VyIGRvZXNuJ3QgY2hhbmdlLgorCSAqLworCWZvciAoOzspCisJeworCQlO b2RlCSAgICpmaWVsZDEgPSBOVUxMOworCQlOb2RlCSAgICpmaWVsZDIgPSBOVUxMOworCQlOb2Rl CSAgICpmaWVsZDMgPSBOVUxMOworCQlOb2RlCSAgICpmaWVsZDQgPSBOVUxMOworCQljaGFyCSAg ICphID0gTlVMTDsKKwkJY2hhcgkgICAqYiA9IE5VTEw7CisJCWNoYXIJICAgKmMgPSBOVUxMOwor CQljaGFyCSAgICpkID0gTlVMTDsKKwkJT2lkCQkJdmFyb2lkX3dpdGhvdXRfYXR0ciA9IEludmFs aWRPaWQ7CisJCU9pZAkJCXZhcm9pZF93aXRoX2F0dHIgPSBJbnZhbGlkT2lkOworCisJCSpub3Rf dW5pcXVlID0gZmFsc2U7CisJCSphdHRybmFtZSA9IE5VTEw7CisJCXZhcmlkID0gSW52YWxpZE9p ZDsKKworCQlpbnZhbF9jb3VudCA9IFNoYXJlZEludmFsaWRNZXNzYWdlQ291bnRlcjsKKworCQlz d2l0Y2ggKGxpc3RfbGVuZ3RoKG5hbWVzKSkKKwkJeworCQkJY2FzZSAxOgorCQkJCWZpZWxkMSA9 IGxpbml0aWFsKG5hbWVzKTsKKworCQkJCUFzc2VydChJc0EoZmllbGQxLCBTdHJpbmcpKTsKKwor CQkJCXZhcmlkID0gTG9va3VwVmFyaWFibGUoTlVMTCwgc3RyVmFsKGZpZWxkMSksIHRydWUpOwor CQkJCWJyZWFrOworCisJCQljYXNlIDI6CisJCQkJZmllbGQxID0gbGluaXRpYWwobmFtZXMpOwor CQkJCWZpZWxkMiA9IGxzZWNvbmQobmFtZXMpOworCisJCQkJQXNzZXJ0KElzQShmaWVsZDEsIFN0 cmluZykpOworCQkJCWEgPSBzdHJWYWwoZmllbGQxKTsKKworCQkJCWlmIChJc0EoZmllbGQyLCBT dHJpbmcpKQorCQkJCXsKKwkJCQkJLyogd2hlbiBib3RoIGZpZWxkcyBhcmUgb2Ygc3RyaW5nIHR5 cGUgKi8KKwkJCQkJYiA9IHN0clZhbChmaWVsZDIpOworCisJCQkJCS8qCisJCQkJCSAqIGEuYiBj YW4gbWVhbiAic2NoZW1hIi4idmFyaWFibGUiIG9yCisJCQkJCSAqICJ2YXJpYWJsZSIuImF0dHJp YnV0ZSIuICBDaGVjayBib3RoIHZhcmlhbnRzLCBhbmQKKwkJCQkJICogcmV0dXJucyBJbnZhbGlk T2lkIHdpdGggbm90X3VuaXF1ZSBmbGFnLCB3aGVuIGJvdGgKKwkJCQkJICogaW50ZXJwcmV0YXRp b25zIGFyZSBwb3NzaWJsZS4KKwkJCQkJICovCisJCQkJCXZhcm9pZF93aXRob3V0X2F0dHIgPSBM b29rdXBWYXJpYWJsZShhLCBiLCB0cnVlKTsKKwkJCQkJdmFyb2lkX3dpdGhfYXR0ciA9IExvb2t1 cFZhcmlhYmxlKE5VTEwsIGEsIHRydWUpOworCQkJCX0KKwkJCQllbHNlCisJCQkJeworCQkJCQkv KiB0aGUgbGFzdCBmaWVsZCBvZiBsaXN0IGNhbiBiZSBzdGFyIHRvbyAqLworCQkJCQlBc3NlcnQo SXNBKGZpZWxkMiwgQV9TdGFyKSk7CisKKwkJCQkJLyoKKwkJCQkJICogVGhlIHN5bnRheCBpZGVu dC4qIGlzIHVzZWQgb25seSBieSByZWxhdGlvbiBhbGlhc2VzLAorCQkJCQkgKiBhbmQgdGhlbiB0 aGlzIGlkZW50aWZpZXIgY2Fubm90IGJlIGEgcmVmZXJlbmNlIHRvCisJCQkJCSAqIHNlc3Npb24g dmFyaWFibGUuCisJCQkJCSAqLworCQkJCQlyZXR1cm4gSW52YWxpZE9pZDsKKwkJCQl9CisKKwkJ CQlpZiAoT2lkSXNWYWxpZCh2YXJvaWRfd2l0aG91dF9hdHRyKSAmJiBPaWRJc1ZhbGlkKHZhcm9p ZF93aXRoX2F0dHIpKQorCQkJCXsKKwkJCQkJKm5vdF91bmlxdWUgPSB0cnVlOworCQkJCQl2YXJp ZCA9IHZhcm9pZF93aXRob3V0X2F0dHI7CisJCQkJfQorCQkJCWVsc2UgaWYgKE9pZElzVmFsaWQo dmFyb2lkX3dpdGhvdXRfYXR0cikpCisJCQkJeworCQkJCQl2YXJpZCA9IHZhcm9pZF93aXRob3V0 X2F0dHI7CisJCQkJfQorCQkJCWVsc2UgaWYgKE9pZElzVmFsaWQodmFyb2lkX3dpdGhfYXR0cikp CisJCQkJeworCQkJCQkqYXR0cm5hbWUgPSBiOworCQkJCQl2YXJpZCA9IHZhcm9pZF93aXRoX2F0 dHI7CisJCQkJfQorCQkJCWJyZWFrOworCisJCQljYXNlIDM6CisJCQkJeworCQkJCQlib29sCQlm aWVsZDFfaXNfY2F0YWxvZyA9IGZhbHNlOworCisJCQkJCWZpZWxkMSA9IGxpbml0aWFsKG5hbWVz KTsKKwkJCQkJZmllbGQyID0gbHNlY29uZChuYW1lcyk7CisJCQkJCWZpZWxkMyA9IGx0aGlyZChu YW1lcyk7CisKKwkJCQkJQXNzZXJ0KElzQShmaWVsZDEsIFN0cmluZykpOworCQkJCQlBc3NlcnQo SXNBKGZpZWxkMiwgU3RyaW5nKSk7CisKKwkJCQkJYSA9IHN0clZhbChmaWVsZDEpOworCQkJCQli ID0gc3RyVmFsKGZpZWxkMik7CisKKwkJCQkJaWYgKElzQShmaWVsZDMsIFN0cmluZykpCisJCQkJ CXsKKwkJCQkJCWMgPSBzdHJWYWwoZmllbGQzKTsKKworCQkJCQkJLyoKKwkJCQkJCSAqIGEuYi5j IGNhbiBtZWFuIGNhdGFsb2cuc2NoZW1hLnZhcmlhYmxlIG9yCisJCQkJCQkgKiBzY2hlbWEudmFy aWFibGUuYXR0cmlidXRlLgorCQkJCQkJICoKKwkJCQkJCSAqIENoZWNrIGJvdGggdmFyaWFudHMs IGFuZCBzZXQgbm90X3VuaXF1ZSBmbGFnLCB3aGVuCisJCQkJCQkgKiBib3RoIGludGVycHJldGF0 aW9ucyBhcmUgcG9zc2libGUuCisJCQkJCQkgKgorCQkJCQkJICogV2hlbiB0aGlyZCBub2RlIGlz IHN0YXIsIG9ubHkgcG9zc2libGUKKwkJCQkJCSAqIGludGVycHJldGF0aW9uIGlzIHNjaGVtYS52 YXJpYWJsZS4qLCBidXQgdGhpcworCQkJCQkJICogcGF0dGVybiBpcyBub3Qgc3VwcG9ydGVkIG5v dy4KKwkJCQkJCSAqLworCQkJCQkJdmFyb2lkX3dpdGhfYXR0ciA9IExvb2t1cFZhcmlhYmxlKGEs IGIsIHRydWUpOworCisJCQkJCQkvKgorCQkJCQkJICogY2hlY2sgcGF0dGVybiBjYXRhbG9nLnNj aGVtYS52YXJpYWJsZSBvbmx5IHdoZW4KKwkJCQkJCSAqIHRoZXJlIGlzIHBvc3NpYmlsaXR5IHRv IHN1Y2Nlc3MuCisJCQkJCQkgKi8KKwkJCQkJCWlmIChzdHJjbXAoYSwgZ2V0X2RhdGFiYXNlX25h bWUoTXlEYXRhYmFzZUlkKSkgPT0gMCkKKwkJCQkJCXsKKwkJCQkJCQlmaWVsZDFfaXNfY2F0YWxv ZyA9IHRydWU7CisJCQkJCQkJdmFyb2lkX3dpdGhvdXRfYXR0ciA9IExvb2t1cFZhcmlhYmxlKGIs IGMsIHRydWUpOworCQkJCQkJfQorCQkJCQl9CisJCQkJCWVsc2UKKwkJCQkJeworCQkJCQkJQXNz ZXJ0KElzQShmaWVsZDMsIEFfU3RhcikpOworCQkJCQkJcmV0dXJuIEludmFsaWRPaWQ7CisJCQkJ CX0KKworCQkJCQlpZiAoT2lkSXNWYWxpZCh2YXJvaWRfd2l0aG91dF9hdHRyKSAmJiBPaWRJc1Zh bGlkKHZhcm9pZF93aXRoX2F0dHIpKQorCQkJCQl7CisJCQkJCQkqbm90X3VuaXF1ZSA9IHRydWU7 CisJCQkJCQl2YXJpZCA9IHZhcm9pZF93aXRob3V0X2F0dHI7CisJCQkJCX0KKwkJCQkJZWxzZSBp ZiAoT2lkSXNWYWxpZCh2YXJvaWRfd2l0aG91dF9hdHRyKSkKKwkJCQkJeworCQkJCQkJdmFyaWQg PSB2YXJvaWRfd2l0aG91dF9hdHRyOworCQkJCQl9CisJCQkJCWVsc2UgaWYgKE9pZElzVmFsaWQo dmFyb2lkX3dpdGhfYXR0cikpCisJCQkJCXsKKwkJCQkJCSphdHRybmFtZSA9IGM7CisJCQkJCQl2 YXJpZCA9IHZhcm9pZF93aXRoX2F0dHI7CisJCQkJCX0KKworCQkJCQkvKgorCQkJCQkgKiBXaGVu IHdlIGRpZG4ndCBmaW5kIHZhcmlhYmxlLCB3ZSBjYW4gKHdoZW4gaXQgaXMKKwkJCQkJICogYWxs b3dlZCkgcmFpc2UgY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlIGVycm9yLgorCQkJCQkgKi8KKwkJ CQkJaWYgKCFPaWRJc1ZhbGlkKHZhcmlkKSAmJiAhbm9lcnJvciAmJiAhZmllbGQxX2lzX2NhdGFs b2cpCisJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRV UkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkJCSBlcnJtc2coImNyb3NzLWRhdGFiYXNlIHJlZmVy ZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogJXMiLAorCQkJCQkJCQkJCU5hbWVMaXN0VG9TdHJp bmcobmFtZXMpKSkpOworCQkJCX0KKwkJCQlicmVhazsKKworCQkJY2FzZSA0OgorCQkJCXsKKwkJ CQkJZmllbGQxID0gbGluaXRpYWwobmFtZXMpOworCQkJCQlmaWVsZDIgPSBsc2Vjb25kKG5hbWVz KTsKKwkJCQkJZmllbGQzID0gbHRoaXJkKG5hbWVzKTsKKwkJCQkJZmllbGQ0ID0gbGZvdXJ0aChu YW1lcyk7CisKKwkJCQkJQXNzZXJ0KElzQShmaWVsZDEsIFN0cmluZykpOworCQkJCQlBc3NlcnQo SXNBKGZpZWxkMiwgU3RyaW5nKSk7CisJCQkJCUFzc2VydChJc0EoZmllbGQzLCBTdHJpbmcpKTsK KworCQkJCQlhID0gc3RyVmFsKGZpZWxkMSk7CisJCQkJCWIgPSBzdHJWYWwoZmllbGQyKTsKKwkJ CQkJYyA9IHN0clZhbChmaWVsZDMpOworCisJCQkJCS8qCisJCQkJCSAqIEluIHRoaXMgY2FzZSwg ImEiIGlzIHVzZWQgYXMgY2F0YWxvZyBuYW1lIC0gY2hlY2sgaXQuCisJCQkJCSAqLworCQkJCQlp ZiAoc3RyY21wKGEsIGdldF9kYXRhYmFzZV9uYW1lKE15RGF0YWJhc2VJZCkpICE9IDApCisJCQkJ CXsKKwkJCQkJCWlmICghbm9lcnJvcikKKwkJCQkJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkJCQkJ KGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCQkJCQkJIGVycm1z ZygiY3Jvc3MtZGF0YWJhc2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAlcyIsCisJ CQkJCQkJCQkJCU5hbWVMaXN0VG9TdHJpbmcobmFtZXMpKSkpOworCQkJCQl9CisKKwkJCQkJaWYg KElzQShmaWVsZDQsIFN0cmluZykpCisJCQkJCXsKKwkJCQkJCWQgPSBzdHJWYWwoZmllbGQ0KTsK KwkJCQkJfQorCQkJCQllbHNlCisJCQkJCXsKKwkJCQkJCUFzc2VydChJc0EoZmllbGQ0LCBBX1N0 YXIpKTsKKwkJCQkJCXJldHVybiBJbnZhbGlkT2lkOworCQkJCQl9CisKKwkJCQkJKmF0dHJuYW1l ID0gZDsKKwkJCQkJdmFyaWQgPSBMb29rdXBWYXJpYWJsZShiLCBjLCB0cnVlKTsKKwkJCQl9CisJ CQkJYnJlYWs7CisKKwkJCWRlZmF1bHQ6CisJCQkJaWYgKCFub2Vycm9yKQorCQkJCQllcmVwb3J0 KEVSUk9SLAorCQkJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwKKwkJCQkJCQkg ZXJybXNnKCJpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTog JXMiLAorCQkJCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhuYW1lcykpKSk7CisJCQkJcmV0dXJuIElu dmFsaWRPaWQ7CisJCX0KKworCQkvKgorCQkgKiBJZiwgdXBvbiByZXRyeSwgd2UgZ2V0IGJhY2sg dGhlIHNhbWUgT0lEIHdlIGRpZCBsYXN0IHRpbWUsIHRoZW4gdGhlCisJCSAqIGludmFsaWRhdGlv biBtZXNzYWdlcyB3ZSBwcm9jZXNzZWQgZGlkIG5vdCBjaGFuZ2UgdGhlIGZpbmFsIGFuc3dlci4K KwkJICogU28gd2UncmUgZG9uZS4KKwkJICoKKwkJICogSWYgd2UgZ290IGEgZGlmZmVyZW50IE9J RCwgd2UndmUgbG9ja2VkIHRoZSB2YXJpYWJsZSB0aGF0IHVzZWQgdG8KKwkJICogaGF2ZSB0aGlz IG5hbWUgcmF0aGVyIHRoYW4gdGhlIG9uZSB0aGF0IGRvZXMgbm93LiAgU28gcmVsZWFzZSB0aGUK KwkJICogbG9jay4KKwkJICovCisJCWlmIChyZXRyeSkKKwkJeworCQkJaWYgKG9sZF92YXJpZCA9 PSB2YXJpZCkKKwkJCQlicmVhazsKKworCQkJaWYgKE9pZElzVmFsaWQob2xkX3ZhcmlkKSkKKwkJ CQlVbmxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIG9sZF92YXJpZCwgMCwg QWNjZXNzU2hhcmVMb2NrKTsKKwkJfQorCisJCS8qCisJCSAqIExvY2sgdGhlIHZhcmlhYmxlLiAg VGhpcyB3aWxsIGFsc28gYWNjZXB0IGFueSBwZW5kaW5nIGludmFsaWRhdGlvbgorCQkgKiBtZXNz YWdlcy4gIElmIHdlIGdvdCBiYWNrIEludmFsaWRPaWQsIGluZGljYXRpbmcgbm90IGZvdW5kLCB0 aGVuCisJCSAqIHRoZXJlJ3Mgbm90aGluZyB0byBsb2NrLCBidXQgd2UgYWNjZXB0IGludmFsaWRh dGlvbiBtZXNzYWdlcworCQkgKiBhbnl3YXksIHRvIGZsdXNoIGFueSBuZWdhdGl2ZSBjYXRjYWNo ZSBlbnRyaWVzIHRoYXQgbWF5IGJlCisJCSAqIGxpbmdlcmluZy4KKwkJICovCisJCWlmICghT2lk SXNWYWxpZCh2YXJpZCkpCisJCQlBY2NlcHRJbnZhbGlkYXRpb25NZXNzYWdlcygpOworCQllbHNl CisJCQlMb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwgMCwgQWNj ZXNzU2hhcmVMb2NrKTsKKworCQkvKgorCQkgKiBJZiBubyBpbnZhbGlkYXRpb24gbWVzc2FnZSB3 ZXJlIHByb2Nlc3NlZCwgd2UncmUgZG9uZSEKKwkJICovCisJCWlmIChpbnZhbF9jb3VudCA9PSBT aGFyZWRJbnZhbGlkTWVzc2FnZUNvdW50ZXIpCisJCQlicmVhazsKKworCQlyZXRyeSA9IHRydWU7 CisJCW9sZF92YXJpZCA9IHZhcmlkOworCQl2YXJpZCA9IEludmFsaWRPaWQ7CisJfQorCisJcmV0 dXJuIHZhcmlkOworfQorCiAvKgogICogRGVjb25zdHJ1Y3RRdWFsaWZpZWROYW1lCiAgKgkJR2l2 ZW4gYSBwb3NzaWJseS1xdWFsaWZpZWQgbmFtZSBleHByZXNzZWQgYXMgYSBsaXN0IG9mIFN0cmlu ZyBub2RlcywKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyBi L3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwppbmRleCAyOWQ5NjdhMmQ1Li5iYjQ0 NWU5NDM0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3ZhcmlhYmxlLmMKKysr IGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJsZS5jCkBAIC0yNiw2ICsyNiw3IEBACiAj aW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKICNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5o IgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL3BnX2xzbi5o IgogI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCiAKIHN0YXRpYyBPYmplY3RBZGRyZXNzIGNy ZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLApAQCAtMTAxLDYgKzEwMiw3IEBAIGNy ZWF0ZV92YXJpYWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAogCXZhcmlkID0gR2V0TmV3T2lkV2l0 aEluZGV4KHJlbCwgVmFyaWFibGVPaWRJbmRleElkLCBBbnVtX3BnX3ZhcmlhYmxlX29pZCk7CiAK IAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV9vaWQgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFy aWQpOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcmNyZWF0ZV9sc24gLSAxXSA9IExTTkdl dERhdHVtKEdldFhMb2dJbnNlcnRSZWNQdHIoKSk7CiAJdmFsdWVzW0FudW1fcGdfdmFyaWFibGVf dmFybmFtZSAtIDFdID0gTmFtZUdldERhdHVtKCZ2YXJuYW1lKTsKIAl2YWx1ZXNbQW51bV9wZ192 YXJpYWJsZV92YXJuYW1lc3BhY2UgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyTmFtZXNwYWNl KTsKIAl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ0eXBlIC0gMV0gPSBPYmplY3RJZEdldERh dHVtKHZhclR5cGUpOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvTWFrZWZpbGUg Yi9zcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZQppbmRleCA0OGY3MzQ4ZjkxLi4xY2ZhZWNh NTFlIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZQorKysgYi9zcmMv YmFja2VuZC9jb21tYW5kcy9NYWtlZmlsZQpAQCAtNTAsNiArNTAsNyBAQCBPQkpTID0gXAogCXNj aGVtYWNtZHMubyBcCiAJc2VjbGFiZWwubyBcCiAJc2VxdWVuY2UubyBcCisJc2Vzc2lvbl92YXJp YWJsZS5vIFwKIAlzdGF0c2NtZHMubyBcCiAJc3Vic2NyaXB0aW9uY21kcy5vIFwKIAl0YWJsZWNt ZHMubyBcCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9jb21tYW5kcy9tZXNvbi5idWlsZCBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkCmluZGV4IGVmMGQ0MDdhMzguLmNlMTYxOWUz MDggMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkCisrKyBiL3Ny Yy9iYWNrZW5kL2NvbW1hbmRzL21lc29uLmJ1aWxkCkBAIC0zOCw2ICszOCw3IEBAIGJhY2tlbmRf c291cmNlcyArPSBmaWxlcygKICAgJ3NjaGVtYWNtZHMuYycsCiAgICdzZWNsYWJlbC5jJywKICAg J3NlcXVlbmNlLmMnLAorICAnc2Vzc2lvbl92YXJpYWJsZS5jJywKICAgJ3N0YXRzY21kcy5jJywK ICAgJ3N1YnNjcmlwdGlvbmNtZHMuYycsCiAgICd0YWJsZWNtZHMuYycsCmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jb21tYW5kcy9wcmVwYXJlLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9wcmVw YXJlLmMKaW5kZXggODk4OWMwYzg4Mi4uOTAyYjAyMmY5YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvcHJlcGFyZS5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3ByZXBhcmUu YwpAQCAtMzM4LDYgKzMzOCwxNiBAQCBFdmFsdWF0ZVBhcmFtcyhQYXJzZVN0YXRlICpwc3RhdGUs IFByZXBhcmVkU3RhdGVtZW50ICpwc3RtdCwgTGlzdCAqcGFyYW1zLAogCQlpKys7CiAJfQogCisJ LyoKKwkgKiBUaGUgYXJndW1lbnRzIG9mIEVYRUNVVEUgYXJlIGV2YWx1YXRlZCBieSBhIGRpcmVj dCBleHByZXNzaW9uCisJICogZXhlY3V0b3IgY2FsbC4gIFRoaXMgbW9kZSBkb2Vzbid0IHN1cHBv cnQgc2Vzc2lvbiB2YXJpYWJsZXMgeWV0LgorCSAqIEl0IHdpbGwgYmUgZW5hYmxlZCBsYXRlci4K KwkgKi8KKwlpZiAocHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXMpCisJCWVyZXBvcnQoRVJS T1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJCSBl cnJtc2coInNlc3Npb24gdmFyaWFibGUgY2Fubm90IGJlIHVzZWQgYXMgYW4gYXJndW1lbnQiKSkp OworCiAJLyogUHJlcGFyZSB0aGUgZXhwcmVzc2lvbnMgZm9yIGV4ZWN1dGlvbiAqLwogCWV4cHJz dGF0ZXMgPSBFeGVjUHJlcGFyZUV4cHJMaXN0KHBhcmFtcywgZXN0YXRlKTsKIApkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jIGIvc3JjL2JhY2tlbmQv Y29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw MDAwMDAwMDAuLjI0NTZhMzQ1MmIKLS0tIC9kZXYvbnVsbAorKysgYi9zcmMvYmFja2VuZC9jb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmMKQEAgLTAsMCArMSw1MjkgQEAKKy8qLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICoKKyAqIHNlc3Npb25fdmFyaWFibGUuYworICoJICBzZXNzaW9uIHZhcmlhYmxlIGNy ZWF0aW9uL21hbmlwdWxhdGlvbiBjb21tYW5kcworICoKKyAqIFBvcnRpb25zIENvcHlyaWdodCAo YykgMTk5Ni0yMDI1LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBHcm91cAorICogUG9y dGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2ZXJzaXR5IG9mIENh bGlmb3JuaWEKKyAqCisgKgorICogSURFTlRJRklDQVRJT04KKyAqCSAgc3JjL2JhY2tlbmQvY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5jCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKyNp bmNsdWRlICJwb3N0Z3Jlcy5oIgorCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgor I2luY2x1ZGUgImNvbW1hbmRzL3Nlc3Npb25fdmFyaWFibGUuaCIKKyNpbmNsdWRlICJleGVjdXRv ci9zdmFyaWFibGVSZWNlaXZlci5oIgorI2luY2x1ZGUgImZ1bmNhcGkuaCIKKyNpbmNsdWRlICJt aXNjYWRtaW4uaCIKKyNpbmNsdWRlICJyZXdyaXRlL3Jld3JpdGVIYW5kbGVyLmgiCisjaW5jbHVk ZSAic3RvcmFnZS9sbWdyLmgiCisjaW5jbHVkZSAic3RvcmFnZS9wcm9jLmgiCisjaW5jbHVkZSAi dGNvcC90Y29wcHJvdC5oIgorI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCisjaW5jbHVkZSAi dXRpbHMvZGF0dW0uaCIKKyNpbmNsdWRlICJ1dGlscy9pbnZhbC5oIgorI2luY2x1ZGUgInV0aWxz L2xzeXNjYWNoZS5oIgorI2luY2x1ZGUgInV0aWxzL3NuYXBtZ3IuaCIKKyNpbmNsdWRlICJ1dGls cy9zeXNjYWNoZS5oIgorCisvKgorICogVGhlIHZhbHVlcyBvZiBzZXNzaW9uIHZhcmlhYmxlcyBh cmUgc3RvcmVkIGluIHRoZSBiYWNrZW5kJ3MgcHJpdmF0ZSBtZW1vcnkKKyAqIGluIHRoZSBkZWRp Y2F0ZWQgbWVtb3J5IGNvbnRleHQgU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCBpbiBiaW5hcnkgZm9y bWF0LgorICogVGhleSBhcmUgc3RvcmVkIGluIHRoZSAic2Vzc2lvbnZhcnMiIGhhc2ggdGFibGUs IHdob3NlIGtleSBpcyB0aGUgT0lEIG9mIHRoZQorICogdmFyaWFibGUuICBIb3dldmVyLCB0aGUg T0lEIGlzIG5vdCBnb29kIGVub3VnaCB0byBpZGVudGlmeSBhIHNlc3Npb24KKyAqIHZhcmlhYmxl OiBjb25jdXJyZW50IHNlc3Npb25zIGNvdWxkIGRyb3AgdGhlIHNlc3Npb24gdmFyaWFibGUgYW5k IGNyZWF0ZSBhCisgKiBuZXcgb25lLCB3aGljaCBjb3VsZCBiZSBhc3NpZ25lZCB0aGUgc2FtZSBP SUQuICBUbyBlbnN1cmUgdGhhdCB0aGUgdmFsdWVzCisgKiBzdG9yZWQgaW4gbWVtb3J5IGFuZCB0 aGUgY2F0YWxvZyBkZWZpbml0aW9uIG1hdGNoLCB3ZSBhbHNvIGtlZXAgdHJhY2sgb2YKKyAqIHRo ZSAiY3JlYXRlX2xzbiIuICBCZWZvcmUgYW55IGFjY2VzcyB0byB0aGUgdmFyaWFibGUgdmFsdWVz LCB3ZSBuZWVkIHRvCisgKiBjaGVjayBpZiB0aGUgTFNOIHN0b3JlZCBpbiBtZW1vcnkgbWF0Y2hl cyB0aGUgTFNOIGluIHRoZSBjYXRhbG9nLiAgSWYgdGhlcmUKKyAqIGlzIGEgbWlzbWF0Y2ggYmV0 d2VlbiB0aGUgTFNOcywgb3IgaWYgdGhlIE9JRCBpcyBub3QgcHJlc2VudCBpbiBwZ192YXJpYWJs ZQorICogYXQgYWxsLCB0aGUgdmFsdWUgc3RvcmVkIGluIG1lbW9yeSBpcyByZWxlYXNlZC4KKyAq LwordHlwZWRlZiBzdHJ1Y3QgU1ZhcmlhYmxlRGF0YQoreworCU9pZAkJCXZhcmlkOwkJCS8qIHBn X3ZhcmlhYmxlIE9JRCBvZiB0aGUgdmFyaWFibGUgKGhhc2gga2V5KSAqLworCVhMb2dSZWNQdHIJ Y3JlYXRlX2xzbjsKKworCWJvb2wJCWlzbnVsbDsKKwlEYXR1bQkJdmFsdWU7CisKKwlPaWQJCQl0 eXBpZDsKKwlpbnQxNgkJdHlwbGVuOworCWJvb2wJCXR5cGJ5dmFsOworCisJYm9vbAkJaXNfZG9t YWluOworCisJLyoKKwkgKiBkb21haW5fY2hlY2tfZXh0cmEgaG9sZHMgY2FjaGVkIGRvbWFpbiBt ZXRhZGF0YS4gIFRoaXMgImV4dHJhIiBpcworCSAqIHVzdWFsbHkgc3RvcmVkIGluIGZuX21jeHQu ICBXZSBkbyBub3QgaGF2ZSBhY2Nlc3MgdG8gdGhhdCBtZW1vcnkgY29udGV4dAorCSAqIGZvciBz ZXNzaW9uIHZhcmlhYmxlcywgYnV0IHdlIGNhbiB1c2UgVG9wVHJhbnNhY3Rpb25Db250ZXh0IGlu c3RlYWQuCisJICogQSBmcmVzaCB2YWx1ZSBpcyBmb3JjZWQgd2hlbiB3ZSBkZXRlY3Qgd2UgYXJl IGluIGEgZGlmZmVyZW50IHRyYW5zYWN0aW9uCisJICogKHRoZSBsb2NhbCB0cmFuc2FjdGlvbiBJ RCBkaWZmZXJzIGZyb20gZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQpLgorCSAqLworCXZvaWQJICAg KmRvbWFpbl9jaGVja19leHRyYTsKKwlMb2NhbFRyYW5zYWN0aW9uSWQgZG9tYWluX2NoZWNrX2V4 dHJhX2x4aWQ7CisKKwkvKgorCSAqIFN0b3JlZCB2YWx1ZSBhbmQgdHlwZSBkZXNjcmlwdGlvbiBj YW4gYmUgb3V0ZGF0ZWQgd2hlbiB3ZSByZWNlaXZlIGEKKwkgKiBzaW52YWwgbWVzc2FnZS4gIFdl IHRoZW4gaGF2ZSB0byBjaGVjayBpZiB0aGUgc3RvcmVkIGRhdGEgYXJlIHN0aWxsCisJICogdHJ1 c3R3b3J0aHkuCisJICovCisJYm9vbAkJaXNfdmFsaWQ7CisKKwl1aW50MzIJCWhhc2h2YWx1ZTsJ CS8qIHVzZWQgZm9yIHBhaXJpbmcgc2ludmFsIG1lc3NhZ2UgKi8KK30gU1ZhcmlhYmxlRGF0YTsK KwordHlwZWRlZiBTVmFyaWFibGVEYXRhICpTVmFyaWFibGU7CisKK3N0YXRpYyBIVEFCICpzZXNz aW9udmFycyA9IE5VTEw7CS8qIGhhc2ggdGFibGUgZm9yIHNlc3Npb24gdmFyaWFibGVzICovCisK K3N0YXRpYyBNZW1vcnlDb250ZXh0IFNWYXJpYWJsZU1lbW9yeUNvbnRleHQgPSBOVUxMOworCisv KgorICogQ2FsbGJhY2sgZnVuY3Rpb24gZm9yIHNlc3Npb24gdmFyaWFibGUgaW52YWxpZGF0aW9u LgorICovCitzdGF0aWMgdm9pZAorcGdfdmFyaWFibGVfY2FjaGVfY2FsbGJhY2soRGF0dW0gYXJn LCBpbnQgY2FjaGVpZCwgdWludDMyIGhhc2h2YWx1ZSkKK3sKKwlIQVNIX1NFUV9TVEFUVVMgc3Rh dHVzOworCVNWYXJpYWJsZQlzdmFyOworCisJZWxvZyhERUJVRzEsICJwZ192YXJpYWJsZV9jYWNo ZV9jYWxsYmFjayAldSAldSIsIGNhY2hlaWQsIGhhc2h2YWx1ZSk7CisKKwlBc3NlcnQoc2Vzc2lv bnZhcnMpOworCisJLyoKKwkgKiBJZiB0aGUgaGFzaHZhbHVlIGlzIG5vdCBzcGVjaWZpZWQsIHdl IGhhdmUgdG8gcmVjaGVjayBhbGwgY3VycmVudGx5CisJICogdXNlZCBzZXNzaW9uIHZhcmlhYmxl cy4gIFNpbmNlIHdlIGNhbid0IHRlbGwgdGhlIGV4YWN0IHNlc3Npb24gdmFyaWFibGUKKwkgKiBm cm9tIGl0cyBoYXNodmFsdWUsIHdlIGhhdmUgdG8gaXRlcmF0ZSBvdmVyIGFsbCBpdGVtcyBpbiB0 aGUgaGFzaCBidWNrZXQuCisJICovCisJaGFzaF9zZXFfaW5pdCgmc3RhdHVzLCBzZXNzaW9udmFy cyk7CisKKwl3aGlsZSAoKHN2YXIgPSAoU1ZhcmlhYmxlKSBoYXNoX3NlcV9zZWFyY2goJnN0YXR1 cykpICE9IE5VTEwpCisJeworCQlpZiAoaGFzaHZhbHVlID09IDAgfHwgc3Zhci0+aGFzaHZhbHVl ID09IGhhc2h2YWx1ZSkKKwkJeworCQkJc3Zhci0+aXNfdmFsaWQgPSBmYWxzZTsKKwkJfQorCX0K K30KKworLyoKKyAqIFJlbGVhc2Ugc3RvcmVkIHZhbHVlLCBmcmVlIG1lbW9yeQorICovCitzdGF0 aWMgdm9pZAorZnJlZV9zZXNzaW9uX3ZhcmlhYmxlX3ZhbHVlKFNWYXJpYWJsZSBzdmFyKQorewor CS8qIGNsZWFuIHRoZSBjdXJyZW50IHZhbHVlICovCisJaWYgKCFzdmFyLT5pc251bGwpCisJewor CQlpZiAoIXN2YXItPnR5cGJ5dmFsKQorCQkJcGZyZWUoRGF0dW1HZXRQb2ludGVyKHN2YXItPnZh bHVlKSk7CisKKwkJc3Zhci0+aXNudWxsID0gdHJ1ZTsKKwl9CisKKwlzdmFyLT52YWx1ZSA9IChE YXR1bSkgMDsKK30KKworLyoKKyAqIFJldHVybnMgdHJ1ZSB3aGVuIHRoZSBlbnRyeSBpbiBwZ192 YXJpYWJsZSBpcyBjb25zaXN0ZW50IHdpdGggdGhlIGdpdmVuCisgKiBzZXNzaW9uIHZhcmlhYmxl LgorICovCitzdGF0aWMgYm9vbAoraXNfc2Vzc2lvbl92YXJpYWJsZV92YWxpZChTVmFyaWFibGUg c3ZhcikKK3sKKwlIZWFwVHVwbGUJdHA7CisJYm9vbAkJcmVzdWx0ID0gZmFsc2U7CisKKwlBc3Nl cnQoT2lkSXNWYWxpZChzdmFyLT52YXJpZCkpOworCisJdHAgPSBTZWFyY2hTeXNDYWNoZTEoVkFS SUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0oc3Zhci0+dmFyaWQpKTsKKworCWlmIChIZWFwVHVw bGVJc1ZhbGlkKHRwKSkKKwl7CisJCS8qCisJCSAqIFRoZSBPSUQgYWxvbmUgaXMgbm90IGVub3Vn aCBhcyBhbiB1bmlxdWUgaWRlbnRpZmllciwgYmVjYXVzZSBPSUQKKwkJICogdmFsdWVzIGdldCBy ZWN5Y2xlZCwgYW5kIGEgbmV3IHNlc3Npb24gdmFyaWFibGUgY291bGQgaGF2ZSBnb3QKKwkJICog dGhlIHNhbWUgT0lELiAgV2UgZG8gYSBzZWNvbmQgY2hlY2sgYWdhaW5zdCB0aGUgNjQtYml0IExT TiB3aGVuCisJCSAqIHRoZSB2YXJpYWJsZSB3YXMgY3JlYXRlZC4KKwkJICovCisJCWlmIChzdmFy LT5jcmVhdGVfbHNuID09ICgoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHRwKSktPnZhcmNy ZWF0ZV9sc24pCisJCQlyZXN1bHQgPSB0cnVlOworCisJCVJlbGVhc2VTeXNDYWNoZSh0cCk7CisJ fQorCisJcmV0dXJuIHJlc3VsdDsKK30KKworLyoKKyAqIEluaXRpYWxpemUgYXR0cmlidXRlcyBj YWNoZWQgaW4gInN2YXIiCisgKi8KK3N0YXRpYyB2b2lkCitzZXR1cF9zZXNzaW9uX3ZhcmlhYmxl KFNWYXJpYWJsZSBzdmFyLCBPaWQgdmFyaWQpCit7CisJSGVhcFR1cGxlCXR1cDsKKwlGb3JtX3Bn X3ZhcmlhYmxlIHZhcmZvcm07CisKKwlBc3NlcnQoT2lkSXNWYWxpZCh2YXJpZCkpOworCisJdHVw ID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7 CisKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJZWxvZyhFUlJPUiwgImNhY2hlIGxv b2t1cCBmYWlsZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgJXUiLCB2YXJpZCk7CisKKwl2YXJmb3Jt ID0gKEZvcm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh0dXApOworCisJc3Zhci0+dmFyaWQgPSB2 YXJpZDsKKwlzdmFyLT5jcmVhdGVfbHNuID0gdmFyZm9ybS0+dmFyY3JlYXRlX2xzbjsKKworCXN2 YXItPnR5cGlkID0gdmFyZm9ybS0+dmFydHlwZTsKKworCWdldF90eXBsZW5ieXZhbChzdmFyLT50 eXBpZCwgJnN2YXItPnR5cGxlbiwgJnN2YXItPnR5cGJ5dmFsKTsKKworCXN2YXItPmlzX2RvbWFp biA9IChnZXRfdHlwdHlwZSh2YXJmb3JtLT52YXJ0eXBlKSA9PSBUWVBUWVBFX0RPTUFJTik7CisJ c3Zhci0+ZG9tYWluX2NoZWNrX2V4dHJhID0gTlVMTDsKKwlzdmFyLT5kb21haW5fY2hlY2tfZXh0 cmFfbHhpZCA9IEludmFsaWRMb2NhbFRyYW5zYWN0aW9uSWQ7CisKKwlzdmFyLT5pc251bGwgPSB0 cnVlOworCXN2YXItPnZhbHVlID0gKERhdHVtKSAwOworCisJc3Zhci0+aXNfdmFsaWQgPSB0cnVl OworCisJc3Zhci0+aGFzaHZhbHVlID0gR2V0U3lzQ2FjaGVIYXNoVmFsdWUxKFZBUklBQkxFT0lE LAorCQkJCQkJCQkJCQlPYmplY3RJZEdldERhdHVtKHZhcmlkKSk7CisKKwlSZWxlYXNlU3lzQ2Fj aGUodHVwKTsKK30KKworLyoKKyAqIEFzc2lnbiBhIG5ldyB2YWx1ZSB0byB0aGUgc2Vzc2lvbiB2 YXJpYWJsZS4gIEl0IGlzIGNvcGllZCB0bworICogU1ZhcmlhYmxlTWVtb3J5Q29udGV4dCBpZiBu ZWNlc3NhcnkuCisgKgorICogSWYgYW55IGVycm9yIGhhcHBlbnMsIHRoZSBleGlzdGluZyB2YWx1 ZSB3b24ndCBiZSBtb2RpZmllZC4KKyAqLworc3RhdGljIHZvaWQKK3NldF9zZXNzaW9uX3Zhcmlh YmxlKFNWYXJpYWJsZSBzdmFyLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc251bGwpCit7CisJRGF0dW0J CW5ld3ZhbDsKKwlTVmFyaWFibGVEYXRhIGxvY3N2YXIsCisJCQkgICAqX3N2YXI7CisKKwlBc3Nl cnQoc3Zhcik7CisJQXNzZXJ0KCFpc251bGwgfHwgdmFsdWUgPT0gKERhdHVtKSAwKTsKKworCS8q CisJICogVXNlIHR5cGJ5dmFsLCB0eXBieWxlbiBmcm9tIHNlc3Npb24gdmFyaWFibGUgb25seSB3 aGVuIHRoZXkgYXJlCisJICogdHJ1c3R3b3J0aHkgKHRoZSBpbnZhbGlkYXRpb24gbWVzc2FnZSB3 YXMgbm90IGFjY2VwdGVkIGZvciB0aGlzCisJICogdmFyaWFibGUpLiAgSWYgdGhlIHZhcmlhYmxl IG1pZ2h0IGJlIGludmFsaWQsIGZvcmNlIHNldHVwLgorCSAqCisJICogRG8gbm90IG92ZXJ3cml0 ZSB0aGUgcGFzc2VkIHNlc3Npb24gdmFyaWFibGUgdW50aWwgd2UgY2FuIGJlIGNlcnRhaW4KKwkg KiB0aGF0IG5vIGVycm9yIGNhbiBiZSB0aHJvd24uCisJICovCisJaWYgKCFzdmFyLT5pc192YWxp ZCkKKwl7CisJCXNldHVwX3Nlc3Npb25fdmFyaWFibGUoJmxvY3N2YXIsIHN2YXItPnZhcmlkKTsK KwkJX3N2YXIgPSAmbG9jc3ZhcjsKKwl9CisJZWxzZQorCQlfc3ZhciA9IHN2YXI7CisKKwlpZiAo IWlzbnVsbCkKKwl7CisJCU1lbW9yeUNvbnRleHQgb2xkY3h0ID0gTWVtb3J5Q29udGV4dFN3aXRj aFRvKFNWYXJpYWJsZU1lbW9yeUNvbnRleHQpOworCisJCW5ld3ZhbCA9IGRhdHVtQ29weSh2YWx1 ZSwgX3N2YXItPnR5cGJ5dmFsLCBfc3Zhci0+dHlwbGVuKTsKKworCQlNZW1vcnlDb250ZXh0U3dp dGNoVG8ob2xkY3h0KTsKKwl9CisJZWxzZQorCQluZXd2YWwgPSB2YWx1ZTsKKworCWZyZWVfc2Vz c2lvbl92YXJpYWJsZV92YWx1ZShzdmFyKTsKKworCWVsb2coREVCVUcxLCAic2Vzc2lvbiB2YXJp YWJsZSBcIiVzLiVzXCIgKG9pZDoldSkgaGFzIG5ldyB2YWx1ZSIsCisJCSBnZXRfbmFtZXNwYWNl X25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHN2YXItPnZhcmlkKSksCisJCSBn ZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHN2YXItPnZhcmlkKSwKKwkJIHN2YXItPnZhcmlkKTsK KworCS8qIG5vIG1vcmUgZXJyb3IgZXhwZWN0ZWQsIHNvIHdlIGNhbiBvdmVyd3JpdGUgdGhlIG9s ZCB2YXJpYWJsZSBub3cgKi8KKwlpZiAoc3ZhciAhPSBfc3ZhcikKKwkJbWVtY3B5KHN2YXIsIF9z dmFyLCBzaXplb2YoU1ZhcmlhYmxlRGF0YSkpOworCisJc3Zhci0+dmFsdWUgPSBuZXd2YWw7CisJ c3Zhci0+aXNudWxsID0gaXNudWxsOworfQorCisvKgorICogQ3JlYXRlIHRoZSBoYXNoIHRhYmxl IGZvciBzdG9yaW5nIHNlc3Npb24gdmFyaWFibGVzLgorICovCitzdGF0aWMgdm9pZAorY3JlYXRl X3Nlc3Npb252YXJzX2hhc2h0YWJsZXModm9pZCkKK3sKKwlIQVNIQ1RMCQl2YXJzX2N0bDsKKwor CUFzc2VydCghc2Vzc2lvbnZhcnMpOworCisJaWYgKCFTVmFyaWFibGVNZW1vcnlDb250ZXh0KQor CXsKKwkJLyogcmVhZCBzaW52YWwgbWVzc2FnZXMgKi8KKwkJQ2FjaGVSZWdpc3RlclN5c2NhY2hl Q2FsbGJhY2soVkFSSUFCTEVPSUQsCisJCQkJCQkJCQkgIHBnX3ZhcmlhYmxlX2NhY2hlX2NhbGxi YWNrLAorCQkJCQkJCQkJICAoRGF0dW0pIDApOworCisJCS8qIHdlIG5lZWQgb3VyIG93biBsb25n LWxpdmVkIG1lbW9yeSBjb250ZXh0ICovCisJCVNWYXJpYWJsZU1lbW9yeUNvbnRleHQgPQorCQkJ QWxsb2NTZXRDb250ZXh0Q3JlYXRlKFRvcE1lbW9yeUNvbnRleHQsCisJCQkJCQkJCSAgInNlc3Np b24gdmFyaWFibGVzIiwKKwkJCQkJCQkJICBBTExPQ1NFVF9TVEFSVF9TTUFMTF9TSVpFUyk7CisJ fQorCisJbWVtc2V0KCZ2YXJzX2N0bCwgMCwgc2l6ZW9mKHZhcnNfY3RsKSk7CisJdmFyc19jdGwu a2V5c2l6ZSA9IHNpemVvZihPaWQpOworCXZhcnNfY3RsLmVudHJ5c2l6ZSA9IHNpemVvZihTVmFy aWFibGVEYXRhKTsKKwl2YXJzX2N0bC5oY3h0ID0gU1ZhcmlhYmxlTWVtb3J5Q29udGV4dDsKKwor CXNlc3Npb252YXJzID0gaGFzaF9jcmVhdGUoIlNlc3Npb24gdmFyaWFibGVzIiwgNjQsICZ2YXJz X2N0bCwKKwkJCQkJCQkgIEhBU0hfRUxFTSB8IEhBU0hfQkxPQlMgfCBIQVNIX0NPTlRFWFQpOwor fQorCisvKgorICogU2VhcmNoIGEgc2Vzc2lvbiB2YXJpYWJsZSBpbiB0aGUgaGFzaCB0YWJsZSBn aXZlbiBpdHMgT0lELiAgSWYgaXQKKyAqIGRvZXNuJ3QgZXhpc3QsIHRoZW4gaW5zZXJ0IGl0IHRo ZXJlLgorICoKKyAqIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUgZm9yIGRvaW5nIHBlcm1pc3Np b24gY2hlY2tzLgorICoKKyAqIEFzIGEgc2lkZSBlZmZlY3QsIHRoaXMgZnVuY3Rpb24gYWNxdWly ZXMgYSBBY2Nlc3NTaGFyZUxvY2sgb24gdGhlCisgKiBzZXNzaW9uIHZhcmlhYmxlIHVudGlsIHRo ZSBlbmQgb2YgdGhlIHRyYW5zYWN0aW9uLgorICovCitzdGF0aWMgU1ZhcmlhYmxlCitnZXRfc2Vz c2lvbl92YXJpYWJsZShPaWQgdmFyaWQpCit7CisJU1ZhcmlhYmxlCXN2YXI7CisJYm9vbAkJZm91 bmQ7CisKKwkvKiBwcm90ZWN0IHRoZSB1c2VkIHNlc3Npb24gdmFyaWFibGUgYWdhaW5zdCBEUk9Q ICovCisJTG9ja0RhdGFiYXNlT2JqZWN0KFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIDAsIEFj Y2Vzc1NoYXJlTG9jayk7CisKKwlpZiAoIXNlc3Npb252YXJzKQorCQljcmVhdGVfc2Vzc2lvbnZh cnNfaGFzaHRhYmxlcygpOworCisJc3ZhciA9IChTVmFyaWFibGUpIGhhc2hfc2VhcmNoKHNlc3Np b252YXJzLCAmdmFyaWQsCisJCQkJCQkJCSAgIEhBU0hfRU5URVIsICZmb3VuZCk7CisKKwlpZiAo Zm91bmQpCisJeworCQlpZiAoIXN2YXItPmlzX3ZhbGlkKQorCQl7CisJCQkvKgorCQkJICogSWYg dGhlcmUgd2FzIGFuIGludmFsaWRhdGlvbiBtZXNzYWdlLCB0aGUgdmFyaWFibGUgbWlnaHQgc3Rp bGwgYmUKKwkJCSAqIHZhbGlkLCBidXQgd2UgaGF2ZSB0byBjaGVjayB3aXRoIHRoZSBzeXN0ZW0g Y2F0YWxvZy4KKwkJCSAqLworCQkJaWYgKGlzX3Nlc3Npb25fdmFyaWFibGVfdmFsaWQoc3Zhcikp CisJCQkJc3Zhci0+aXNfdmFsaWQgPSB0cnVlOworCQkJZWxzZQorCQkJCS8qIGlmIHRoZSB2YWx1 ZSBjYW5ub3QgYmUgdmFsaWRhdGVkLCB3ZSBoYXZlIHRvIGRpc2NhcmQgaXQgKi8KKwkJCQlmcmVl X3Nlc3Npb25fdmFyaWFibGVfdmFsdWUoc3Zhcik7CisJCX0KKwl9CisJZWxzZQorCQlzdmFyLT5p c192YWxpZCA9IGZhbHNlOworCisJLyoKKwkgKiBGb3JjZSBzZXR1cCBmb3Igbm90IHlldCBpbml0 aWFsaXplZCB2YXJpYWJsZXMgb3IgdmFyaWFibGVzIHRoYXQgY2Fubm90CisJICogYmUgdmFsaWRh dGVkLgorCSAqLworCWlmICghc3Zhci0+aXNfdmFsaWQpCisJeworCQlzZXR1cF9zZXNzaW9uX3Zh cmlhYmxlKHN2YXIsIHZhcmlkKTsKKworCQllbG9nKERFQlVHMSwgInNlc3Npb24gdmFyaWFibGUg XCIlcy4lc1wiIChvaWQ6JXUpIGhhcyBhc3NpZ25lZCBlbnRyeSBpbiBtZW1vcnkgKGVtaXR0ZWQg YnkgUkVBRCkiLAorCQkJIGdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9u YW1lc3BhY2UodmFyaWQpKSwKKwkJCSBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSwK KwkJCSB2YXJpZCk7CisJfQorCisJLyogZW5zdXJlIHRoZSByZXR1cm5lZCBkYXRhIGlzIHN0aWxs IG9mIHRoZSBjb3JyZWN0IGRvbWFpbiAqLworCWlmIChzdmFyLT5pc19kb21haW4pCisJeworCQkv KgorCQkgKiBTdG9yZSAiZXh0cmEiIGZvciBkb21haW5fY2hlY2soKSBpbiBUb3BUcmFuc2FjdGlv bkNvbnRleHQuICBXaGVuIHdlCisJCSAqIGFyZSBpbiBhIG5ldyB0cmFuc2FjdGlvbiwgZG9tYWlu X2NoZWNrX2V4dHJhIGNhY2hlIGlzIG5vdCB2YWxpZCBhbnkKKwkJICogbW9yZS4KKwkJICovCisJ CWlmIChzdmFyLT5kb21haW5fY2hlY2tfZXh0cmFfbHhpZCAhPSBNeVByb2MtPnZ4aWQubHhpZCkK KwkJCXN2YXItPmRvbWFpbl9jaGVja19leHRyYSA9IE5VTEw7CisKKwkJZG9tYWluX2NoZWNrKHN2 YXItPnZhbHVlLCBzdmFyLT5pc251bGwsCisJCQkJCSBzdmFyLT50eXBpZCwgJnN2YXItPmRvbWFp bl9jaGVja19leHRyYSwKKwkJCQkJIFRvcFRyYW5zYWN0aW9uQ29udGV4dCk7CisKKwkJc3Zhci0+ ZG9tYWluX2NoZWNrX2V4dHJhX2x4aWQgPSBNeVByb2MtPnZ4aWQubHhpZDsKKwl9CisKKwlyZXR1 cm4gc3ZhcjsKK30KKworLyoKKyAqIFN0b3JlIHRoZSBnaXZlbiB2YWx1ZSBpbiBhIHNlc3Npb24g dmFyaWFibGUgaW4gdGhlIGNhY2hlLgorICoKKyAqIFRoZSBjYWxsZXIgaXMgcmVzcG9uc2libGUg Zm9yIGRvaW5nIHBlcm1pc3Npb24gY2hlY2tzLgorICoKKyAqIEFzIGEgc2lkZSBlZmZlY3QsIHRo aXMgZnVuY3Rpb24gYWNxdWlyZXMgYSBBY2Nlc3NTaGFyZUxvY2sgb24gdGhlIHNlc3Npb24KKyAq IHZhcmlhYmxlIHVudGlsIHRoZSBlbmQgb2YgdGhlIHRyYW5zYWN0aW9uLgorICovCit2b2lkCitT ZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBEYXR1bSB2YWx1ZSwgYm9vbCBpc051bGwpCit7 CisJU1ZhcmlhYmxlCXN2YXI7CisJYm9vbAkJZm91bmQ7CisKKwkvKiBwcm90ZWN0IHVzZWQgc2Vz c2lvbiB2YXJpYWJsZSBhZ2FpbnN0IERST1AgKi8KKwlMb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFi bGVSZWxhdGlvbklkLCB2YXJpZCwgMCwgQWNjZXNzU2hhcmVMb2NrKTsKKworCWlmICghc2Vzc2lv bnZhcnMpCisJCWNyZWF0ZV9zZXNzaW9udmFyc19oYXNodGFibGVzKCk7CisKKwlzdmFyID0gKFNW YXJpYWJsZSkgaGFzaF9zZWFyY2goc2Vzc2lvbnZhcnMsICZ2YXJpZCwKKwkJCQkJCQkJICAgSEFT SF9FTlRFUiwgJmZvdW5kKTsKKworCWlmICghZm91bmQpCisJeworCQlzZXR1cF9zZXNzaW9uX3Zh cmlhYmxlKHN2YXIsIHZhcmlkKTsKKworCQllbG9nKERFQlVHMSwgInNlc3Npb24gdmFyaWFibGUg XCIlcy4lc1wiIChvaWQ6JXUpIGhhcyBhc3NpZ25lZCBlbnRyeSBpbiBtZW1vcnkgKGVtaXR0ZWQg YnkgV1JJVEUpIiwKKwkJCSBnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFibGVf bmFtZXNwYWNlKHN2YXItPnZhcmlkKSksCisJCQkgZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZShz dmFyLT52YXJpZCksCisJCQkgdmFyaWQpOworCX0KKworCS8qIGlmIHRoaXMgZmFpbHMsIGl0IHdv bid0IGNoYW5nZSB0aGUgc3RvcmVkIHZhbHVlICovCisJc2V0X3Nlc3Npb25fdmFyaWFibGUoc3Zh ciwgdmFsdWUsIGlzTnVsbCk7Cit9CisKKy8qCisgKiBSZXR1cm5zIGEgY29weSBvZiB0aGUgdmFs dWUgc3RvcmVkIGluIGEgdmFyaWFibGUuCisgKi8KK3N0YXRpYyBpbmxpbmUgRGF0dW0KK2NvcHlf c2Vzc2lvbl92YXJpYWJsZV92YWx1ZShTVmFyaWFibGUgc3ZhciwgYm9vbCAqaXNOdWxsKQorewor CURhdHVtCQl2YWx1ZTsKKworCS8qIGZvcmNlIGNvcHkgb2Ygbm9uIE5VTEwgdmFsdWUgKi8KKwlp ZiAoIXN2YXItPmlzbnVsbCkKKwl7CisJCXZhbHVlID0gZGF0dW1Db3B5KHN2YXItPnZhbHVlLCBz dmFyLT50eXBieXZhbCwgc3Zhci0+dHlwbGVuKTsKKwkJKmlzTnVsbCA9IGZhbHNlOworCX0KKwll bHNlCisJeworCQl2YWx1ZSA9IChEYXR1bSkgMDsKKwkJKmlzTnVsbCA9IHRydWU7CisJfQorCisJ cmV0dXJuIHZhbHVlOworfQorCisvKgorICogUmV0dXJucyBhIGNvcHkgb2YgdGhlIHZhbHVlIG9m IHRoZSBzZXNzaW9uIHZhcmlhYmxlIChpbiB0aGUgY3VycmVudCBtZW1vcnkKKyAqIGNvbnRleHQp LiAgVGhlIGNhbGxlciBpcyByZXNwb25zaWJsZSBmb3IgcGVybWlzc2lvbiBjaGVja3MuCisgKi8K K0RhdHVtCitHZXRTZXNzaW9uVmFyaWFibGUoT2lkIHZhcmlkLCBib29sICppc051bGwpCit7CisJ U1ZhcmlhYmxlCXN2YXI7CisKKwlzdmFyID0gZ2V0X3Nlc3Npb25fdmFyaWFibGUodmFyaWQpOwor CisJLyoKKwkgKiBBbHRob3VnaCAic3ZhciIgaXMgZnJlc2hseSB2YWxpZGF0ZWQgaW4gdGhpcyBw b2ludCwgc3Zhci0+aXNfdmFsaWQgY2FuCisJICogYmUgZmFsc2UsIGlmIGFuIGludmFsaWRhdGlv biBtZXNzYWdlIHdhcyBwcm9jZXNzZWQgZHVyaW5nIHRoZSBkb21haW4gY2hlY2suCisJICogQnV0 IHRoZSB2YXJpYWJsZSBhbmQgYWxsIGl0cyBkZXBlbmRlbmNpZXMgYXJlIGxvY2tlZCBub3csIHNv IHdlIGRvbid0IG5lZWQKKwkgKiB0byByZXBlYXQgdGhlIHZhbGlkYXRpb24uCisJICovCisJcmV0 dXJuIGNvcHlfc2Vzc2lvbl92YXJpYWJsZV92YWx1ZShzdmFyLCBpc051bGwpOworfQorCisvKgor ICogQXNzaWduIHRoZSByZXN1bHQgb2YgdGhlIGV2YWx1YXRlZCBleHByZXNzaW9uIHRvIHRoZSBz ZXNzaW9uIHZhcmlhYmxlCisgKi8KK3ZvaWQKK0V4ZWN1dGVMZXRTdG10KFBhcnNlU3RhdGUgKnBz dGF0ZSwKKwkJCSAgIExldFN0bXQgKnN0bXQsCisJCQkgICBQYXJhbUxpc3RJbmZvIHBhcmFtcywK KwkJCSAgIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5RW52LAorCQkJICAgUXVlcnlDb21wbGV0aW9u ICpxYykKK3sKKwlRdWVyeQkgICAqcXVlcnkgPSBjYXN0Tm9kZShRdWVyeSwgc3RtdC0+cXVlcnkp OworCUxpc3QJICAgKnJld3JpdHRlbjsKKwlEZXN0UmVjZWl2ZXIgKmRlc3Q7CisJQWNsUmVzdWx0 CWFjbHJlc3VsdDsKKwlQbGFubmVkU3RtdCAqcGxhbjsKKwlRdWVyeURlc2MgICpxdWVyeURlc2M7 CisJT2lkCQkJdmFyaWQgPSBxdWVyeS0+cmVzdWx0VmFyaWFibGU7CisKKwlBc3NlcnQoT2lkSXNW YWxpZCh2YXJpZCkpOworCisJLyogZG8gd2UgaGF2ZSBwZXJtaXNzaW9uIHRvIHdyaXRlIHRvIHRo ZSBzZXNzaW9uIHZhcmlhYmxlPyAqLworCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhWYXJp YWJsZVJlbGF0aW9uSWQsIHZhcmlkLCBHZXRVc2VySWQoKSwgQUNMX1VQREFURSk7CisJaWYgKGFj bHJlc3VsdCAhPSBBQ0xDSEVDS19PSykKKwkJYWNsY2hlY2tfZXJyb3IoYWNscmVzdWx0LCBPQkpF Q1RfVkFSSUFCTEUsIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKTsKKworCS8qIGNy ZWF0ZSBhIGRlc3QgcmVjZWl2ZXIgZm9yIExFVCAqLworCWRlc3QgPSBDcmVhdGVWYXJpYWJsZURl c3RSZWNlaXZlcih2YXJpZCk7CisKKwkvKiBydW4gdGhlIHF1ZXJ5IHJld3JpdGVyICovCisJcXVl cnkgPSBjb3B5T2JqZWN0KHF1ZXJ5KTsKKworCXJld3JpdHRlbiA9IFF1ZXJ5UmV3cml0ZShxdWVy eSk7CisKKwlBc3NlcnQobGlzdF9sZW5ndGgocmV3cml0dGVuKSA9PSAxKTsKKworCXF1ZXJ5ID0g bGluaXRpYWxfbm9kZShRdWVyeSwgcmV3cml0dGVuKTsKKwlBc3NlcnQocXVlcnktPmNvbW1hbmRU eXBlID09IENNRF9TRUxFQ1QpOworCisJLyogcGxhbiB0aGUgcXVlcnkgKi8KKwlwbGFuID0gcGdf cGxhbl9xdWVyeShxdWVyeSwgcHN0YXRlLT5wX3NvdXJjZXRleHQsCisJCQkJCQkgQ1VSU09SX09Q VF9QQVJBTExFTF9PSywgcGFyYW1zKTsKKworCS8qCisJICogVXNlIGEgc25hcHNob3Qgd2l0aCBh biB1cGRhdGVkIGNvbW1hbmQgSUQgdG8gZW5zdXJlIHRoaXMgcXVlcnkgc2VlcyB0aGUKKwkgKiBy ZXN1bHRzIG9mIGFueSBwcmV2aW91c2x5IGV4ZWN1dGVkIHF1ZXJpZXMuICAoVGhpcyBjb3VsZCBv bmx5IG1hdHRlciBpZgorCSAqIHRoZSBwbGFubmVyIGV4ZWN1dGVkIGFuIGFsbGVnZWRseS1zdGFi bGUgZnVuY3Rpb24gdGhhdCBjaGFuZ2VkIHRoZQorCSAqIGRhdGFiYXNlIGNvbnRlbnRzLCBidXQg bGV0J3MgZG8gaXQgYW55d2F5IHRvIGJlIHBhcmFsbGVsIHRvIHRoZSBFWFBMQUlOCisJICogY29k ZSBwYXRoLikKKwkgKi8KKwlQdXNoQ29waWVkU25hcHNob3QoR2V0QWN0aXZlU25hcHNob3QoKSk7 CisJVXBkYXRlQWN0aXZlU25hcHNob3RDb21tYW5kSWQoKTsKKworCS8qIGNyZWF0ZSBhIFF1ZXJ5 RGVzYywgcmVkaXJlY3Rpbmcgb3V0cHV0IHRvIG91ciB0dXBsZSByZWNlaXZlciAqLworCXF1ZXJ5 RGVzYyA9IENyZWF0ZVF1ZXJ5RGVzYyhwbGFuLCBwc3RhdGUtPnBfc291cmNldGV4dCwKKwkJCQkJ CQkJR2V0QWN0aXZlU25hcHNob3QoKSwgSW52YWxpZFNuYXBzaG90LAorCQkJCQkJCQlkZXN0LCBw YXJhbXMsIHF1ZXJ5RW52LCAwKTsKKworCS8qIGNhbGwgRXhlY3V0b3JTdGFydCB0byBwcmVwYXJl IHRoZSBwbGFuIGZvciBleGVjdXRpb24gKi8KKwlFeGVjdXRvclN0YXJ0KHF1ZXJ5RGVzYywgMCk7 CisKKwkvKgorCSAqIFJ1biB0aGUgcGxhbiB0byBjb21wbGV0aW9uLiAgVGhlIHJlc3VsdCBzaG91 bGQgYmUgb25seSBvbmUgcm93LiAgVG8KKwkgKiBjaGVjayBpZiB0aGVyZSBhcmUgdG9vIG1hbnkg cmVzdWx0IHJvd3MsIHdlIHRyeSB0byBmZXRjaCB0d28uCisJICovCisJRXhlY3V0b3JSdW4ocXVl cnlEZXNjLCBGb3J3YXJkU2NhbkRpcmVjdGlvbiwgMkwpOworCisJLyogc2F2ZSB0aGUgcm93Y291 bnQgaWYgd2UncmUgZ2l2ZW4gYSBRdWVyeUNvbXBsZXRpb24gdG8gZmlsbCAqLworCWlmIChxYykK KwkJU2V0UXVlcnlDb21wbGV0aW9uKHFjLCBDTURUQUdfTEVULCBxdWVyeURlc2MtPmVzdGF0ZS0+ ZXNfcHJvY2Vzc2VkKTsKKworCS8qIGFuZCBjbGVhbiB1cCAqLworCUV4ZWN1dG9yRmluaXNoKHF1 ZXJ5RGVzYyk7CisJRXhlY3V0b3JFbmQocXVlcnlEZXNjKTsKKworCUZyZWVRdWVyeURlc2MocXVl cnlEZXNjKTsKKworCVBvcEFjdGl2ZVNuYXBzaG90KCk7Cit9CmRpZmYgLS1naXQgYS9zcmMvYmFj a2VuZC9leGVjdXRvci9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL01ha2VmaWxlCmlu ZGV4IDExMTE4ZDBjZTAuLjcxMjQ4YTM0ZjIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2V4ZWN1 dG9yL01ha2VmaWxlCisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL01ha2VmaWxlCkBAIC03Niw2 ICs3Niw3IEBAIE9CSlMgPSBcCiAJbm9kZVdpbmRvd0FnZy5vIFwKIAlub2RlV29ya3RhYmxlc2Nh bi5vIFwKIAlzcGkubyBcCisJc3ZhcmlhYmxlUmVjZWl2ZXIubyBcCiAJdHF1ZXVlLm8gXAogCXRz dG9yZVJlY2VpdmVyLm8KIApkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4 cHIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNFeHByLmMKaW5kZXggODk1MTRmN2E0Zi4u NzU0MWI1YWFjNyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY0V4cHIuYwor KysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjRXhwci5jCkBAIC05OTEsNiArOTkxLDM4IEBA IEV4ZWNJbml0RXhwclJlYyhFeHByICpub2RlLCBFeHByU3RhdGUgKnN0YXRlLAogCQkJCQkJc2Ny YXRjaC5kLnBhcmFtLnBhcmFtdHlwZSA9IHBhcmFtLT5wYXJhbXR5cGU7CiAJCQkJCQlFeHByRXZh bFB1c2hTdGVwKHN0YXRlLCAmc2NyYXRjaCk7CiAJCQkJCQlicmVhazsKKworCQkJCQljYXNlIFBB UkFNX1ZBUklBQkxFOgorCQkJCQkJeworCQkJCQkJCWludAkJCWVzX251bV9zZXNzaW9uX3Zhcmlh YmxlcyA9IDA7CisJCQkJCQkJU2Vzc2lvblZhcmlhYmxlVmFsdWUgKmVzX3Nlc3Npb25fdmFyaWFi bGVzID0gTlVMTDsKKwkJCQkJCQlTZXNzaW9uVmFyaWFibGVWYWx1ZSAqdmFyOworCisJCQkJCQkJ aWYgKHN0YXRlLT5wYXJlbnQgJiYgc3RhdGUtPnBhcmVudC0+c3RhdGUpCisJCQkJCQkJeworCQkJ CQkJCQllc19zZXNzaW9uX3ZhcmlhYmxlcyA9IHN0YXRlLT5wYXJlbnQtPnN0YXRlLT5lc19zZXNz aW9uX3ZhcmlhYmxlczsKKwkJCQkJCQkJZXNfbnVtX3Nlc3Npb25fdmFyaWFibGVzID0gc3RhdGUt PnBhcmVudC0+c3RhdGUtPmVzX251bV9zZXNzaW9uX3ZhcmlhYmxlczsKKwkJCQkJCQl9CisKKwkJ CQkJCQlBc3NlcnQoZXNfc2Vzc2lvbl92YXJpYWJsZXMpOworCisJCQkJCQkJLyogcGFyYW1ldGVy IHNhbml0eSBjaGVja3MgKi8KKwkJCQkJCQlpZiAocGFyYW0tPnBhcmFtaWQgPj0gZXNfbnVtX3Nl c3Npb25fdmFyaWFibGVzKQorCQkJCQkJCQllbG9nKEVSUk9SLCAicGFyYW1pZCBvZiBQQVJBTV9W QVJJQUJMRSBwYXJhbSBpcyBvdXQgb2YgcmFuZ2UiKTsKKworCQkJCQkJCXZhciA9ICZlc19zZXNz aW9uX3ZhcmlhYmxlc1twYXJhbS0+cGFyYW1pZF07CisKKwkJCQkJCQkvKgorCQkJCQkJCSAqIElu IHRoaXMgY2FzZSwgcGFzcyB0aGUgdmFsdWUgbGlrZSBhCisJCQkJCQkJICogY29uc3RhbnQuCisJ CQkJCQkJICovCisJCQkJCQkJc2NyYXRjaC5vcGNvZGUgPSBFRU9QX0NPTlNUOworCQkJCQkJCXNj cmF0Y2guZC5jb25zdHZhbC52YWx1ZSA9IHZhci0+dmFsdWU7CisJCQkJCQkJc2NyYXRjaC5kLmNv bnN0dmFsLmlzbnVsbCA9IHZhci0+aXNudWxsOworCQkJCQkJCUV4cHJFdmFsUHVzaFN0ZXAoc3Rh dGUsICZzY3JhdGNoKTsKKwkJCQkJCX0KKwkJCQkJCWJyZWFrOworCiAJCQkJCWNhc2UgUEFSQU1f RVhURVJOOgogCiAJCQkJCQkvKgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhl Y01haW4uYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL2V4ZWNNYWluLmMKaW5kZXggYTA2Mjk1YjZi YS4uYmI0ZTdiZjA2ZSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvZXhlY3V0b3IvZXhlY01haW4u YworKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9leGVjTWFpbi5jCkBAIC00Myw3ICs0Myw5IEBA CiAjaW5jbHVkZSAiYWNjZXNzL3hhY3QuaCIKICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGFydGl0aW9uLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192 YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL21hdHZpZXcuaCIKKyNpbmNsdWRlICJjb21t YW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdHJpZ2dlci5oIgog I2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWN1dG9yLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3Ivbm9kZVN1 YnBsYW4uaCIKQEAgLTE5Myw2ICsxOTUsNzAgQEAgc3RhbmRhcmRfRXhlY3V0b3JTdGFydChRdWVy eURlc2MgKnF1ZXJ5RGVzYywgaW50IGVmbGFncykKIAlBc3NlcnQocXVlcnlEZXNjLT5zb3VyY2VU ZXh0ICE9IE5VTEwpOwogCWVzdGF0ZS0+ZXNfc291cmNlVGV4dCA9IHF1ZXJ5RGVzYy0+c291cmNl VGV4dDsKIAorCS8qCisJICogVGhlIGV4ZWN1dG9yIGRvZXNuJ3Qgd29yayB3aXRoIHNlc3Npb24g dmFyaWFibGVzIGRpcmVjdGx5LiBWYWx1ZXMgb2YKKwkgKiByZWxhdGVkIHNlc3Npb24gdmFyaWFi bGVzIGFyZSBjb3BpZWQgdG8gYSBkZWRpY2F0ZWQgYXJyYXksIGFuZCB0aGlzIGFycmF5CisJICog aXMgcGFzc2VkIHRvIHRoZSBleGVjdXRvci4gVGhpcyBhcnJheSBpcyBzdGFibGUgInNuYXBzaG90 IiBvZiB2YWx1ZXMgb2YKKwkgKiB1c2VkIHNlc3Npb24gdmFyaWFibGVzLiBUaGVyZSBhcmUgdGhy ZWUgYmVuZWZpdHMgb2YgdGhpcyBzdHJhdGVneToKKwkgKgorCSAqIC0gY29uc2lzdGVuY3kgd2l0 aCBleHRlcm5hbCBwYXJhbWV0ZXJzIGFuZCBwbHBnc3FsIHZhcmlhYmxlcywKKwkgKgorCSAqIC0g c2Vzc2lvbiB2YXJpYWJsZXMgY2FuIGJlIHBhcmFsbGVsIHNhZmUsCisJICoKKwkgKiAtIHdlIGRv bid0IG5lZWQgbWFrZSBmcmVzaCBjb3B5IGZvciBhbnkgcmVhZCBvZiBzZXNzaW9uIHZhcmlhYmxl CisJICogICAgKHRoaXMgaXMgbmVjZXNzYXJ5IGJlY2F1c2UgdGhlIGludGVybmFsbHkgdGhlIHNl c3Npb24gdmFyaWFibGUgY2FuCisJICogICAgYmUgY2hhbmdlZCBpbnNpZGUgcXVlcnkgZXhlY3V0 aW9uIHRpbWUsIGFuZCB0aGVuIGEgcmVmZXJlbmNlIHRvCisJICogICAgcHJldmlvdXNseSByZXR1 cm5lZCB2YWx1ZSBjYW4gYmUgY29ycnVwdGVkKS4KKwkgKi8KKwlpZiAocXVlcnlEZXNjLT5wbGFu bmVkc3RtdC0+c2Vzc2lvblZhcmlhYmxlcykKKwl7CisJCWludAkJCW5TZXNzaW9uVmFyaWFibGVz OworCQlpbnQJCQlpID0gMDsKKworCQkvKgorCQkgKiBJbiB0aGlzIGNhc2UsIHRoZSBxdWVyeSB1 c2VzIHNlc3Npb24gdmFyaWFibGVzLCBidXQgd2UgaGF2ZSB0bworCQkgKiBwcmVwYXJlIHRoZSBh cnJheSB3aXRoIHBhc3NlZCB2YWx1ZXMgKG9mIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMpCisJCSAq IGZpcnN0LgorCQkgKi8KKwkJQXNzZXJ0KCFJc1BhcmFsbGVsV29ya2VyKCkpOworCQluU2Vzc2lv blZhcmlhYmxlcyA9IGxpc3RfbGVuZ3RoKHF1ZXJ5RGVzYy0+cGxhbm5lZHN0bXQtPnNlc3Npb25W YXJpYWJsZXMpOworCisJCS8qIGNyZWF0ZSB0aGUgYXJyYXkgdXNlZCBmb3IgcGFzc2luZyB2YWx1 ZXMgb2YgdXNlZCBzZXNzaW9uIHZhcmlhYmxlcyAqLworCQllc3RhdGUtPmVzX3Nlc3Npb25fdmFy aWFibGVzID0gKFNlc3Npb25WYXJpYWJsZVZhbHVlICopCisJCQlwYWxsb2MoblNlc3Npb25WYXJp YWJsZXMgKiBzaXplb2YoU2Vzc2lvblZhcmlhYmxlVmFsdWUpKTsKKworCQkvKiBmaWxsIHRoZSBh cnJheSAqLworCQlmb3JlYWNoX29pZCh2YXJpZCwgcXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+c2Vz c2lvblZhcmlhYmxlcykKKwkJeworCQkJLyoKKwkJCSAqIFBlcm1pc3Npb24gY2hlY2sgc2hvdWxk IGJlIGV4ZWN1dGVkIG9uIGFsbCBleHBsaWNpdGx5IHVzZWQKKwkJCSAqIHZhcmlhYmxlcyBpbiB0 aGUgcXVlcnkuIEZvciBpbXBsaWNpdGx5IHVzZWQgdmFyaWFibGUKKwkJCSAqIChsaWtlIGJhc2Ug bm9kZSBvZiBhc3NpZ25tZW50IGluZGlyZWN0KSB3ZSBjYW5ub3QgZG8gcGVybWlzc2lvbgorCQkJ ICogY2hlY2ssIGJlY2F1c2Ugd2UgbmVlZCByZWFkIHRoZSB2YWx1ZSAoYW5kIHVzZXIgY2FuIGhh dmUKKwkJCSAqIG9ubHkgVVBEQVRFIHZhcmlhYmxlKS4gSW4gdGhpcyBjYXNlIHRoZSBwZXJtaXNz aW9uIGNoZWNrCisJCQkgKiBpcyBleGVjdXRlZCBpbiB3cml0ZSB0aW1lLgorCQkJICovCisJCQlp ZiAodmFyaWQgIT0gcXVlcnlEZXNjLT5wbGFubmVkc3RtdC0+ZXhjbFNlbGVjdFBlcm1DaGVja1Zh cmlkKQorCQkJeworCQkJCUFjbFJlc3VsdAlhY2xyZXN1bHQ7CisKKwkJCQlhY2xyZXN1bHQgPSBv YmplY3RfYWNsY2hlY2soVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwKKwkJCQkJCQkJCQkJR2V0 VXNlcklkKCksIEFDTF9TRUxFQ1QpOworCQkJCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0sp CisJCQkJCWFjbGNoZWNrX2Vycm9yKGFjbHJlc3VsdCwgT0JKRUNUX1ZBUklBQkxFLAorCQkJCQkJ CQkgICBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlkKSk7CisJCQl9CisKKwkJCWVzdGF0 ZS0+ZXNfc2Vzc2lvbl92YXJpYWJsZXNbaV0udmFsdWUgPQorCQkJCUdldFNlc3Npb25WYXJpYWJs ZSh2YXJpZCwKKwkJCQkJCQkJICAgJmVzdGF0ZS0+ZXNfc2Vzc2lvbl92YXJpYWJsZXNbaV0uaXNu dWxsKTsKKworCQkJaSsrOworCQl9CisKKwkJZXN0YXRlLT5lc19udW1fc2Vzc2lvbl92YXJpYWJs ZXMgPSBuU2Vzc2lvblZhcmlhYmxlczsKKwl9CisKIAkvKgogCSAqIEZpbGwgaW4gdGhlIHF1ZXJ5 IGVudmlyb25tZW50LCBpZiBhbnksIGZyb20gcXVlcnlEZXNjLgogCSAqLwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvZXhlY3V0b3IvbWVzb24uYnVpbGQgYi9zcmMvYmFja2VuZC9leGVjdXRvci9t ZXNvbi5idWlsZAppbmRleCAyY2VhNDFmODc3Li40OTEwOTJmY2M0IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9leGVjdXRvci9tZXNvbi5idWlsZAorKysgYi9zcmMvYmFja2VuZC9leGVjdXRvci9t ZXNvbi5idWlsZApAQCAtNjQsNiArNjQsNyBAQCBiYWNrZW5kX3NvdXJjZXMgKz0gZmlsZXMoCiAg ICdub2RlV2luZG93QWdnLmMnLAogICAnbm9kZVdvcmt0YWJsZXNjYW4uYycsCiAgICdzcGkuYycs CisgICdzdmFyaWFibGVSZWNlaXZlci5jJywKICAgJ3RxdWV1ZS5jJywKICAgJ3RzdG9yZVJlY2Vp dmVyLmMnLAogKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvZXhlY3V0b3Ivc3ZhcmlhYmxlUmVj ZWl2ZXIuYyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmMKbmV3IGZp bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uYzYxNjNmYjM2ZgotLS0gL2Rldi9udWxs CisrKyBiL3NyYy9iYWNrZW5kL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmMKQEAgLTAsMCAr MSwxNzIgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHN2YXJpYWJsZVJlY2VpdmVyLmMK KyAqCSAgQW4gaW1wbGVtZW50YXRpb24gb2YgRGVzdFJlY2VpdmVyIHRoYXQgc3RvcmVzIHRoZSBy ZXN1bHQgdmFsdWUgaW4KKyAqCSAgYSBzZXNzaW9uIHZhcmlhYmxlLgorICoKKyAqIFBvcnRpb25z IENvcHlyaWdodCAoYykgMTk5Ni0yMDI0LCBQb3N0Z3JlU1FMIEdsb2JhbCBEZXZlbG9wbWVudCBH cm91cAorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk0LCBSZWdlbnRzIG9mIHRoZSBVbml2 ZXJzaXR5IG9mIENhbGlmb3JuaWEKKyAqCisgKiBJREVOVElGSUNBVElPTgorICoJICBzcmMvYmFj a2VuZC9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5jCisgKgorICotLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CisgKi8KKworI2luY2x1ZGUgInBvc3RncmVzLmgiCisjaW5jbHVkZSAibWlzY2FkbWluLmgiCisK KyNpbmNsdWRlICJhY2Nlc3MvZGV0b2FzdC5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFi bGUuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zZXNzaW9uX3ZhcmlhYmxlLmgiCisjaW5jbHVkZSAi ZXhlY3V0b3Ivc3ZhcmlhYmxlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJzdG9yYWdlL2xvY2suaCIK KyNpbmNsdWRlICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5o IgorI2luY2x1ZGUgInV0aWxzL3N5c2NhY2hlLmgiCisKKy8qCisgKiBUaGlzIERlc3RSZWNlaXZl ciBpcyB1c2VkIGJ5IHRoZSBMRVQgY29tbWFuZCBmb3Igc3RvcmluZyB0aGUgcmVzdWx0IHRvIGEK KyAqIHNlc3Npb24gdmFyaWFibGUuICBUaGUgcmVzdWx0IGhhcyB0byBoYXZlIG9ubHkgb25lIHR1 cGxlIHdpdGggb25seSBvbmUKKyAqIG5vbi1kZWxldGVkIGF0dHJpYnV0ZS4gIFRoZSByb3cgY291 bnRlciAoZmllbGQgInJvd3MiKSBpcyBpbmNyZW1lbnRlZAorICogYWZ0ZXIgcmVjZWl2aW5nIGEg cm93LCBhbmQgYW4gZXJyb3IgaXMgcmFpc2VkIHdoZW4gdGhlcmUgYXJlIG5vIHJvd3Mgb3IKKyAq IHRoZXJlIGFyZSBtb3JlIHRoYW4gb25lIHJlY2VpdmVkIHJvd3MuICBBIHJlY2VpdmVkIHR1cGxl IGNhbm5vdCB0byBoYXZlCisgKiBkZWxldGVkIGF0dHJpYnV0ZXMuICBUaGUgdmFsdWUgaXMgZGV0 b2FzdGVkIGJlZm9yZSBzdG9yaW5nIGl0IGluIHRoZQorICogc2Vzc2lvbiB2YXJpYWJsZS4KKyAq LwordHlwZWRlZiBzdHJ1Y3QKK3sKKwlEZXN0UmVjZWl2ZXIgcHViOworCU9pZAkJCXZhcmlkOwor CWJvb2wJCW5lZWRfZGV0b2FzdDsJCS8qIGRvIHdlIG5lZWQgdG8gZGV0b2FzdCB0aGUgYXR0cmli dXRlPyAqLworCWludAkJCXJvd3M7CQkJCS8qIHJvdyBjb3VudGVyICovCit9IFNWYXJpYWJsZVN0 YXRlOworCisvKgorICogUHJlcGFyZSB0byByZWNlaXZlIHR1cGxlcyBmcm9tIGV4ZWN1dG9yLgor ICovCitzdGF0aWMgdm9pZAorc3ZhcmlhYmxlU3RhcnR1cFJlY2VpdmVyKERlc3RSZWNlaXZlciAq c2VsZiwgaW50IG9wZXJhdGlvbiwgVHVwbGVEZXNjIHR5cGVpbmZvKQoreworCVNWYXJpYWJsZVN0 YXRlICpteVN0YXRlID0gKFNWYXJpYWJsZVN0YXRlICopIHNlbGY7CisJTE9DS1RBRwkJbG9ja3Rh ZyBQR19VU0VEX0ZPUl9BU1NFUlRTX09OTFk7CisJRm9ybV9wZ19hdHRyaWJ1dGUgYXR0cjsKKwlP aWQJCQl0eXBpZCBQR19VU0VEX0ZPUl9BU1NFUlRTX09OTFk7CisJT2lkCQkJY29sbGlkIFBHX1VT RURfRk9SX0FTU0VSVFNfT05MWTsKKwlpbnQzMgkJdHlwbW9kIFBHX1VTRURfRk9SX0FTU0VSVFNf T05MWTsKKworCUFzc2VydChteVN0YXRlLT5wdWIubXlkZXN0ID09IERlc3RWYXJpYWJsZSk7CisJ QXNzZXJ0KE9pZElzVmFsaWQobXlTdGF0ZS0+dmFyaWQpKTsKKwlBc3NlcnQoU2VhcmNoU3lzQ2Fj aGVFeGlzdHMxKFZBUklBQkxFT0lELCBteVN0YXRlLT52YXJpZCkpOworCUFzc2VydCh0eXBlaW5m by0+bmF0dHMgPT0gMSk7CisKKyNpZmRlZiBVU0VfQVNTRVJUX0NIRUNLSU5HCisKKwlTRVRfTE9D S1RBR19PQkpFQ1QobG9ja3RhZywKKwkJCQkJICAgTXlEYXRhYmFzZUlkLAorCQkJCQkgICBWYXJp YWJsZVJlbGF0aW9uSWQsCisJCQkJCSAgIG15U3RhdGUtPnZhcmlkLAorCQkJCQkgICAwKTsKKwor CUFzc2VydChMb2NrSGVsZEJ5TWUoJmxvY2t0YWcsIEFjY2Vzc1NoYXJlTG9jaywgZmFsc2UpKTsK KworI2VuZGlmCisKKwlhdHRyID0gVHVwbGVEZXNjQXR0cih0eXBlaW5mbywgMCk7CisKKwlBc3Nl cnQoIWF0dHItPmF0dGlzZHJvcHBlZCk7CisKKyNpZmRlZiBVU0VfQVNTRVJUX0NIRUNLSU5HCisK KwlnZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBlX3R5cG1vZF9jb2xsaWQobXlTdGF0ZS0+dmFyaWQs CisJCQkJCQkJCQkJCSZ0eXBpZCwKKwkJCQkJCQkJCQkJJnR5cG1vZCwKKwkJCQkJCQkJCQkJJmNv bGxpZCk7CisKKwlBc3NlcnQoYXR0ci0+YXR0dHlwaWQgPT0gdHlwaWQpOworCUFzc2VydChhdHRy LT5hdHR0eXBtb2QgPCAwIHx8IGF0dHItPmF0dHR5cG1vZCA9PSB0eXBtb2QpOworCisjZW5kaWYK KworCW15U3RhdGUtPm5lZWRfZGV0b2FzdCA9IGF0dHItPmF0dGxlbiA9PSAtMTsKKwlteVN0YXRl LT5yb3dzID0gMDsKK30KKworLyoKKyAqIFJlY2VpdmUgYSB0dXBsZSBmcm9tIHRoZSBleGVjdXRv ciBhbmQgc3RvcmUgaXQgaW4gdGhlIHNlc3Npb24gdmFyaWFibGUuCisgKi8KK3N0YXRpYyBib29s CitzdmFyaWFibGVSZWNlaXZlU2xvdChUdXBsZVRhYmxlU2xvdCAqc2xvdCwgRGVzdFJlY2VpdmVy ICpzZWxmKQoreworCVNWYXJpYWJsZVN0YXRlICpteVN0YXRlID0gKFNWYXJpYWJsZVN0YXRlICop IHNlbGY7CisJRGF0dW0JCXZhbHVlOworCWJvb2wJCWlzbnVsbDsKKwlib29sCQlmcmVldmFsID0g ZmFsc2U7CisKKwkvKiBtYWtlIHN1cmUgdGhlIHR1cGxlIGlzIGZ1bGx5IGRlY29uc3RydWN0ZWQg Ki8KKwlzbG90X2dldGFsbGF0dHJzKHNsb3QpOworCisJdmFsdWUgPSBzbG90LT50dHNfdmFsdWVz WzBdOworCWlzbnVsbCA9IHNsb3QtPnR0c19pc251bGxbMF07CisKKwlpZiAobXlTdGF0ZS0+bmVl ZF9kZXRvYXN0ICYmICFpc251bGwgJiYgVkFSQVRUX0lTX0VYVEVSTkFMKERhdHVtR2V0UG9pbnRl cih2YWx1ZSkpKQorCXsKKwkJdmFsdWUgPSBQb2ludGVyR2V0RGF0dW0oZGV0b2FzdF9leHRlcm5h bF9hdHRyKChzdHJ1Y3QgdmFybGVuYSAqKQorCQkJCQkJCQkJCQkJCSAgRGF0dW1HZXRQb2ludGVy KHZhbHVlKSkpOworCQlmcmVldmFsID0gdHJ1ZTsKKwl9CisKKwlteVN0YXRlLT5yb3dzICs9IDE7 CisKKwlpZiAobXlTdGF0ZS0+cm93cyA+IDEpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNv ZGUoRVJSQ09ERV9UT09fTUFOWV9ST1dTKSwKKwkJCQkgZXJybXNnKCJleHByZXNzaW9uIHJldHVy bmVkIG1vcmUgdGhhbiBvbmUgcm93IikpKTsKKworCVNldFNlc3Npb25WYXJpYWJsZShteVN0YXRl LT52YXJpZCwgdmFsdWUsIGlzbnVsbCk7CisKKwlpZiAoZnJlZXZhbCkKKwkJcGZyZWUoRGF0dW1H ZXRQb2ludGVyKHZhbHVlKSk7CisKKwlyZXR1cm4gdHJ1ZTsKK30KKworLyoKKyAqIENsZWFuIHVw IGF0IGVuZCBvZiB0aGUgZXhlY3V0b3IgcnVuCisgKi8KK3N0YXRpYyB2b2lkCitzdmFyaWFibGVT aHV0ZG93blJlY2VpdmVyKERlc3RSZWNlaXZlciAqc2VsZikKK3sKKwlpZiAoKChTVmFyaWFibGVT dGF0ZSAqKSBzZWxmKS0+cm93cyA9PSAwKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2Rl KEVSUkNPREVfTk9fREFUQV9GT1VORCksCisJCQkJIGVycm1zZygiZXhwcmVzc2lvbiByZXR1cm5l ZCBubyByb3dzIikpKTsKK30KKworLyoKKyAqIERlc3Ryb3kgdGhlIHJlY2VpdmVyIHdoZW4gd2Ug YXJlIGRvbmUgd2l0aCBpdAorICovCitzdGF0aWMgdm9pZAorc3ZhcmlhYmxlRGVzdHJveVJlY2Vp dmVyKERlc3RSZWNlaXZlciAqc2VsZikKK3sKKwlwZnJlZShzZWxmKTsKK30KKworLyoKKyAqIElu aXRpYWxseSBjcmVhdGUgYSBEZXN0UmVjZWl2ZXIgb2JqZWN0LgorICovCitEZXN0UmVjZWl2ZXIg KgorQ3JlYXRlVmFyaWFibGVEZXN0UmVjZWl2ZXIoT2lkIHZhcmlkKQoreworCVNWYXJpYWJsZVN0 YXRlICpzZWxmID0gKFNWYXJpYWJsZVN0YXRlICopIHBhbGxvYzAoc2l6ZW9mKFNWYXJpYWJsZVN0 YXRlKSk7CisKKwlzZWxmLT5wdWIucmVjZWl2ZVNsb3QgPSBzdmFyaWFibGVSZWNlaXZlU2xvdDsK KwlzZWxmLT5wdWIuclN0YXJ0dXAgPSBzdmFyaWFibGVTdGFydHVwUmVjZWl2ZXI7CisJc2VsZi0+ cHViLnJTaHV0ZG93biA9IHN2YXJpYWJsZVNodXRkb3duUmVjZWl2ZXI7CisJc2VsZi0+cHViLnJE ZXN0cm95ID0gc3ZhcmlhYmxlRGVzdHJveVJlY2VpdmVyOworCXNlbGYtPnB1Yi5teWRlc3QgPSBE ZXN0VmFyaWFibGU7CisKKwlzZWxmLT52YXJpZCA9IHZhcmlkOworCisJcmV0dXJuIChEZXN0UmVj ZWl2ZXIgKikgc2VsZjsKK30KZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL25vZGVzL25vZGVGdW5j cy5jIGIvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKaW5kZXggZGY3NzkxMzdjOS4uNTZh OGZlNWQ3NCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKKysrIGIv c3JjL2JhY2tlbmQvbm9kZXMvbm9kZUZ1bmNzLmMKQEAgLTQzNDEsNiArNDM0MSwxNiBAQCByYXdf ZXhwcmVzc2lvbl90cmVlX3dhbGtlcl9pbXBsKE5vZGUgKm5vZGUsCiAJCQkJCXJldHVybiB0cnVl OwogCQkJfQogCQkJYnJlYWs7CisJCWNhc2UgVF9MZXRTdG10OgorCQkJeworCQkJCUxldFN0bXQg ICAgKnN0bXQgPSAoTGV0U3RtdCAqKSBub2RlOworCisJCQkJaWYgKFdBTEsoc3RtdC0+dGFyZ2V0 KSkKKwkJCQkJcmV0dXJuIHRydWU7CisJCQkJaWYgKFdBTEsoc3RtdC0+cXVlcnkpKQorCQkJCQly ZXR1cm4gdHJ1ZTsKKwkJCX0KKwkJCWJyZWFrOwogCQljYXNlIFRfUExBc3NpZ25TdG10OgogCQkJ ewogCQkJCVBMQXNzaWduU3RtdCAqc3RtdCA9IChQTEFzc2lnblN0bXQgKikgbm9kZTsKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3BsYW5uZXIuYyBiL3NyYy9iYWNrZW5k L29wdGltaXplci9wbGFuL3BsYW5uZXIuYwppbmRleCBlOTJlMTA4YjZiLi4wOWRhMjNhOTVlIDEw MDY0NAotLS0gYS9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9wbGFubmVyLmMKKysrIGIvc3Jj L2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vcGxhbm5lci5jCkBAIC0zMzMsNiArMzMzLDIxIEBAIHN0 YW5kYXJkX3BsYW5uZXIoUXVlcnkgKnBhcnNlLCBjb25zdCBjaGFyICpxdWVyeV9zdHJpbmcsIGlu dCBjdXJzb3JPcHRpb25zLAogCWdsb2ItPmxhc3RQbGFuTm9kZUlkID0gMDsKIAlnbG9iLT50cmFu c2llbnRQbGFuID0gZmFsc2U7CiAJZ2xvYi0+ZGVwZW5kc09uUm9sZSA9IGZhbHNlOworCWdsb2It PnNlc3Npb25WYXJpYWJsZXMgPSBOSUw7CisKKwkvKgorCSAqIFRoZSAoc2Vzc2lvbikgcmVzdWx0 IHZhcmlhYmxlIHNob3VsZCBiZSBzdG9yZWQgdG8gZ2xvYmFsLCBiZWNhdXNlCisJICogaXQgaXMg bm90IHNldCBpbiBzdWJxdWVyeS4gIFdoZW4gdGhpcyB2YXJpYWJsZSBpcyB1c2VkIG90aGVyIHRo YW4KKwkgKiBpbiBiYXNlIG5vZGUgb2YgYXNzaWdubWVudCBpbmRpcmVjdGlvbiwgd2UgbmVlZCB0 byBjaGVjayB0aGUgYWNjZXNzCisJICogcmlnaHRzIChhbmQgdGhlbiB3ZSBuZWVkIHRvIGRldGVj dCB0aGlzIHNpdHVhdGlvbikuIFRoZSB2YXJpYWJsZSB1c2VkCisJICogbGlrZSBiYXNlIG5vZGUg Y2Fubm90IGJlIGRpZmZlcmVudCB0aGFuIHRhcmdldCAocmVzdWx0KSB2YXJpYWJsZS4KKwkgKiBC ZWNhdXNlIHdlIGtub3cgdGhlIHJlc3VsdCB2YXJpYWJsZSBiZWZvcmUgcGxhbm5lciBpbnZvY2F0 aW9uLCB3ZQorCSAqIGNhbiBzaW1wbHkgc2VhcmNoIG9mIHVzYWdlIGp1c3QgdGhpcyB2YXJpYWJs ZSwgYW5kIHdlIGRvbid0IG5lZWQgdG8KKwkgKiB0byB3YWl0IHVudGlsIHRoZSBlbmQgb2YgcGxh bm5pbmcgd2hlbiB3ZSBrbm93IGJhc2Vub2RlU2Vzc2lvblZhcmlkLgorCSAqLworCWdsb2ItPnJl c3VsdFZhcmlhYmxlID0gcGFyc2UtPnJlc3VsdFZhcmlhYmxlOworCWdsb2ItPmJhc2Vub2RlU2Vz c2lvblZhcmlkID0gSW52YWxpZE9pZDsKKwlnbG9iLT5iYXNlbm9kZVNlc3Npb25WYXJTZWxlY3RD aGVjayA9IGZhbHNlOwogCiAJLyoKIAkgKiBBc3Nlc3Mgd2hldGhlciBpdCdzIGZlYXNpYmxlIHRv IHVzZSBwYXJhbGxlbCBtb2RlIGZvciB0aGlzIHF1ZXJ5LiBXZQpAQCAtNTY3LDYgKzU4MiwyMCBA QCBzdGFuZGFyZF9wbGFubmVyKFF1ZXJ5ICpwYXJzZSwgY29uc3QgY2hhciAqcXVlcnlfc3RyaW5n LCBpbnQgY3Vyc29yT3B0aW9ucywKIAlyZXN1bHQtPnBhcmFtRXhlY1R5cGVzID0gZ2xvYi0+cGFy YW1FeGVjVHlwZXM7CiAJLyogdXRpbGl0eVN0bXQgc2hvdWxkIGJlIG51bGwsIGJ1dCB3ZSBtaWdo dCBhcyB3ZWxsIGNvcHkgaXQgKi8KIAlyZXN1bHQtPnV0aWxpdHlTdG10ID0gcGFyc2UtPnV0aWxp dHlTdG10OworCisJcmVzdWx0LT5zZXNzaW9uVmFyaWFibGVzID0gZ2xvYi0+c2Vzc2lvblZhcmlh YmxlczsKKworCS8qCisJICogVGhlIHNlc3Npb24gdmFyaWFibGUgdXNlZCAoYW5kIG9ubHkgdXNl ZCkgbGlrZSBiYXNlIG5vZGUKKwkgKiBmb3IgYXNzaWduZW1udCBpbmRpcmVjdGlvbiBzaG91bGQg YmUgZXhjbHVkZWQgZnJvbSBwZXJtaXNzaW9uCisJICogY2hlY2suCisJICovCisJaWYgKE9pZElz VmFsaWQoZ2xvYi0+YmFzZW5vZGVTZXNzaW9uVmFyaWQpICYmCisJCSghZ2xvYi0+YmFzZW5vZGVT ZXNzaW9uVmFyU2VsZWN0Q2hlY2spKQorCQlyZXN1bHQtPmV4Y2xTZWxlY3RQZXJtQ2hlY2tWYXJp ZCA9IGdsb2ItPmJhc2Vub2RlU2Vzc2lvblZhcmlkOworCWVsc2UKKwkJcmVzdWx0LT5leGNsU2Vs ZWN0UGVybUNoZWNrVmFyaWQgPSBJbnZhbGlkT2lkOworCiAJcmVzdWx0LT5zdG10X2xvY2F0aW9u ID0gcGFyc2UtPnN0bXRfbG9jYXRpb247CiAJcmVzdWx0LT5zdG10X2xlbiA9IHBhcnNlLT5zdG10 X2xlbjsKIApAQCAtNzM3LDYgKzc2NiwxMyBAQCBzdWJxdWVyeV9wbGFubmVyKFBsYW5uZXJHbG9i YWwgKmdsb2IsIFF1ZXJ5ICpwYXJzZSwgUGxhbm5lckluZm8gKnBhcmVudF9yb290LAogCSAqLwog CXB1bGxfdXBfc3VicXVlcmllcyhyb290KTsKIAorCS8qCisJICogQ2hlY2sgaWYgc29tZSBzdWJx dWVyeSB1c2VzIGEgc2Vzc2lvbiB2YXJpYWJsZS4gIFRoZSBmbGFnCisJICogaGFzU2Vzc2lvblZh cmlhYmxlcyBzaG91bGQgYmUgdHJ1ZSBpZiB0aGUgcXVlcnkgb3Igc29tZSBzdWJxdWVyeSB1c2Vz IGEKKwkgKiBzZXNzaW9uIHZhcmlhYmxlLgorCSAqLworCXB1bGxfdXBfaGFzX3Nlc3Npb25fdmFy aWFibGVzKHJvb3QpOworCiAJLyoKIAkgKiBJZiB0aGlzIGlzIGEgc2ltcGxlIFVOSU9OIEFMTCBx dWVyeSwgZmxhdHRlbiBpdCBpbnRvIGFuIGFwcGVuZHJlbC4gV2UKIAkgKiBkbyB0aGlzIG5vdyBi ZWNhdXNlIGl0IHJlcXVpcmVzIGFwcGx5aW5nIHB1bGxfdXBfc3VicXVlcmllcyB0byB0aGUgbGVh ZgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vc2V0cmVmcy5jIGIvc3Jj L2JhY2tlbmQvb3B0aW1pemVyL3BsYW4vc2V0cmVmcy5jCmluZGV4IDgxMzYzNTg5MTIuLmFiZTM1 MzBmNDcgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci9wbGFuL3NldHJlZnMuYwor KysgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcGxhbi9zZXRyZWZzLmMKQEAgLTIxMCw2ICsyMTAs OSBAQCBzdGF0aWMgTGlzdCAqc2V0X3JldHVybmluZ19jbGF1c2VfcmVmZXJlbmNlcyhQbGFubmVy SW5mbyAqcm9vdCwKIHN0YXRpYyBMaXN0ICpzZXRfd2luZG93YWdnX3J1bmNvbmRpdGlvbl9yZWZl cmVuY2VzKFBsYW5uZXJJbmZvICpyb290LAogCQkJCQkJCQkJCQkJICAgTGlzdCAqcnVuY29uZGl0 aW9uLAogCQkJCQkJCQkJCQkJICAgUGxhbiAqcGxhbik7CitzdGF0aWMgYm9vbCBwdWxsX3VwX2hh c19zZXNzaW9uX3ZhcmlhYmxlc193YWxrZXIoTm9kZSAqbm9kZSwKKwkJCQkJCQkJCQkJCSBQbGFu bmVySW5mbyAqcm9vdCk7CitzdGF0aWMgdm9pZCByZWNvcmRfcGxhbl92YXJpYWJsZV9kZXBlbmRl bmN5KFBsYW5uZXJJbmZvICpyb290LCBPaWQgdmFyaWQpOwogCiAKIC8qKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKgpAQCAtMTMwOSw2ICsxMzEyLDUwIEBAIHNldF9wbGFuX3JlZnMoUGxhbm5lckluZm8gKnJv b3QsIFBsYW4gKnBsYW4sIGludCBydG9mZnNldCkKIAlyZXR1cm4gcGxhbjsKIH0KIAorLyoKKyAq IFNlYXJjaCB1c2FnZSBvZiBzZXNzaW9uIHZhcmlhYmxlcyBpbiBzdWJxdWVyaWVzCisgKi8KK3Zv aWQKK3B1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzKFBsYW5uZXJJbmZvICpyb290KQorewor CVF1ZXJ5CSAgICpxdWVyeSA9IHJvb3QtPnBhcnNlOworCisJaWYgKHF1ZXJ5LT5oYXNTZXNzaW9u VmFyaWFibGVzKQorCXsKKwkJcm9vdC0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHRydWU7CisJfQor CWVsc2UKKwl7CisJCSh2b2lkKSBxdWVyeV90cmVlX3dhbGtlcihxdWVyeSwKKwkJCQkJCQkJIHB1 bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFibGVzX3dhbGtlciwKKwkJCQkJCQkJICh2b2lkICopIHJv b3QsIDApOworCX0KK30KKworc3RhdGljIGJvb2wKK3B1bGxfdXBfaGFzX3Nlc3Npb25fdmFyaWFi bGVzX3dhbGtlcihOb2RlICpub2RlLCBQbGFubmVySW5mbyAqcm9vdCkKK3sKKwlpZiAobm9kZSA9 PSBOVUxMKQorCQlyZXR1cm4gZmFsc2U7CisJaWYgKElzQShub2RlLCBRdWVyeSkpCisJeworCQlR dWVyeQkgICAqcXVlcnkgPSAoUXVlcnkgKikgbm9kZTsKKworCQlpZiAocXVlcnktPmhhc1Nlc3Np b25WYXJpYWJsZXMpCisJCXsKKwkJCXJvb3QtPmhhc1Nlc3Npb25WYXJpYWJsZXMgPSB0cnVlOwor CQkJcmV0dXJuIGZhbHNlOworCQl9CisKKwkJLyogcmVjdXJzZSBpbnRvIHN1YnNlbGVjdHMgKi8K KwkJcmV0dXJuIHF1ZXJ5X3RyZWVfd2Fsa2VyKChRdWVyeSAqKSBub2RlLAorCQkJCQkJCQkgcHVs bF91cF9oYXNfc2Vzc2lvbl92YXJpYWJsZXNfd2Fsa2VyLAorCQkJCQkJCQkgKHZvaWQgKikgcm9v dCwgMCk7CisJfQorCXJldHVybiBleHByZXNzaW9uX3RyZWVfd2Fsa2VyKG5vZGUsIHB1bGxfdXBf aGFzX3Nlc3Npb25fdmFyaWFibGVzX3dhbGtlciwKKwkJCQkJCQkJICAodm9pZCAqKSByb290KTsK K30KKwogLyoKICAqIHNldF9pbmRleG9ubHlzY2FuX3JlZmVyZW5jZXMKICAqCQlEbyBzZXRfcGxh bl9yZWZlcmVuY2VzIHByb2Nlc3Npbmcgb24gYW4gSW5kZXhPbmx5U2NhbgpAQCAtMTk1Nyw4ICsy MDA0LDkgQEAgY29weVZhcihWYXIgKnZhcikKICAqIFRoaXMgaXMgY29kZSB0aGF0IGlzIGNvbW1v biB0byBhbGwgdmFyaWFudHMgb2YgZXhwcmVzc2lvbi1maXhpbmcuCiAgKiBXZSBtdXN0IGxvb2sg dXAgb3BlcmF0b3Igb3Bjb2RlIGluZm8gZm9yIE9wRXhwciBhbmQgcmVsYXRlZCBub2RlcywKICAq IGFkZCBPSURzIGZyb20gcmVnY2xhc3MgQ29uc3Qgbm9kZXMgaW50byByb290LT5nbG9iLT5yZWxh dGlvbk9pZHMsIGFuZAotICogYWRkIFBsYW5JbnZhbEl0ZW1zIGZvciB1c2VyLWRlZmluZWQgZnVu Y3Rpb25zIGludG8gcm9vdC0+Z2xvYi0+aW52YWxJdGVtcy4KLSAqIFdlIGFsc28gZmlsbCBpbiBj b2x1bW4gaW5kZXggbGlzdHMgZm9yIEdST1VQSU5HKCkgZXhwcmVzc2lvbnMuCisgKiBhZGQgUGxh bkludmFsSXRlbXMgZm9yIHVzZXItZGVmaW5lZCBmdW5jdGlvbnMgYW5kIHNlc3Npb24gdmFyaWFi bGVzIGludG8KKyAqIHJvb3QtPmdsb2ItPmludmFsSXRlbXMuICBXZSBhbHNvIGZpbGwgaW4gY29s dW1uIGluZGV4IGxpc3RzIGZvciBHUk9VUElORygpCisgKiBleHByZXNzaW9ucy4KICAqCiAgKiBX ZSBhc3N1bWUgaXQncyBva2F5IHRvIHVwZGF0ZSBvcGNvZGUgaW5mbyBpbi1wbGFjZS4gIFNvIHRo aXMgY291bGQgcG9zc2libHkKICAqIHNjcmliYmxlIG9uIHRoZSBwbGFubmVyJ3MgaW5wdXQgZGF0 YSBzdHJ1Y3R1cmVzLCBidXQgaXQncyBPSy4KQEAgLTIwNDgsNiArMjA5NiwxMyBAQCBmaXhfZXhw cl9jb21tb24oUGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKm5vZGUpCiAJCQkJZy0+Y29scyA9IGNv bHM7CiAJCX0KIAl9CisJZWxzZSBpZiAoSXNBKG5vZGUsIFBhcmFtKSkKKwl7CisJCVBhcmFtCSAg ICpwID0gKFBhcmFtICopIG5vZGU7CisKKwkJaWYgKHAtPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJ QUJMRSkKKwkJCXJlY29yZF9wbGFuX3ZhcmlhYmxlX2RlcGVuZGVuY3kocm9vdCwgcC0+cGFyYW12 YXJpZCk7CisJfQogfQogCiAvKgpAQCAtMjA1Nyw2ICsyMTEyLDEwIEBAIGZpeF9leHByX2NvbW1v bihQbGFubmVySW5mbyAqcm9vdCwgTm9kZSAqbm9kZSkKICAqIElmIGl0J3MgYSBQQVJBTV9NVUxU SUVYUFIsIHJlcGxhY2UgaXQgd2l0aCB0aGUgYXBwcm9wcmlhdGUgUGFyYW0gZnJvbQogICogcm9v dC0+bXVsdGlleHByX3BhcmFtczsgb3RoZXJ3aXNlIG5vIGNoYW5nZSBpcyBuZWVkZWQuCiAgKiBK dXN0IGZvciBwYXJhbm9pYSdzIHNha2UsIHdlIG1ha2UgYSBjb3B5IG9mIHRoZSBub2RlIGluIGVp dGhlciBjYXNlLgorICoKKyAqIElmIGl0J3MgYSBQQVJBTV9WQVJJQUJMRSwgdGhlbiB3ZSBjb2xs ZWN0IHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMgaW4KKyAqIHRoZSBsaXN0IHJvb3QtPmdsb2ItPnNl c3Npb25WYXJpYWJsZS4gIEFsc28sIGFzc2lnbiB0aGUgcGFyYW1ldGVyJ3MKKyAqICJwYXJhbWlk IiB0byB0aGUgcGFyYW1ldGVyJ3MgcG9zaXRpb24gaW4gdGhhdCBsaXN0LgogICovCiBzdGF0aWMg Tm9kZSAqCiBmaXhfcGFyYW1fbm9kZShQbGFubmVySW5mbyAqcm9vdCwgUGFyYW0gKnApCkBAIC0y MDc1LDYgKzIxMzQsNjIgQEAgZml4X3BhcmFtX25vZGUoUGxhbm5lckluZm8gKnJvb3QsIFBhcmFt ICpwKQogCQkJZWxvZyhFUlJPUiwgInVuZXhwZWN0ZWQgUEFSQU1fTVVMVElFWFBSIElEOiAlZCIs IHAtPnBhcmFtaWQpOwogCQlyZXR1cm4gY29weU9iamVjdChsaXN0X250aChwYXJhbXMsIGNvbG5v IC0gMSkpOwogCX0KKworCWlmIChwLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCisJewor CQlpbnQJCQluID0gMDsKKwkJYm9vbAkJZm91bmQgPSBmYWxzZTsKKworCQkvKiB3ZSB3aWxsIG1v ZGlmeSBvYmplY3QgKi8KKwkJcCA9IChQYXJhbSAqKSBjb3B5T2JqZWN0KHApOworCisJCS8qCisJ CSAqIE5vdywgd2UgY2FuIGFjdHVhbGl6ZSBsaXN0IG9mIHNlc3Npb24gdmFyaWFibGVzLCBhbmQg d2UgY2FuCisJCSAqIGNvbXBsZXRlIHBhcmFtaWQgcGFyYW1ldGVyLgorCQkgKi8KKwkJZm9yZWFj aF9vaWQodmFyaWQsIHJvb3QtPmdsb2ItPnNlc3Npb25WYXJpYWJsZXMpCisJCXsKKwkJCWlmICh2 YXJpZCA9PSBwLT5wYXJhbXZhcmlkKQorCQkJeworCQkJCXAtPnBhcmFtaWQgPSBuOworCQkJCWZv dW5kID0gdHJ1ZTsKKwkJCQlicmVhazsKKwkJCX0KKwkJCW4gKz0gMTsKKwkJfQorCisJCWlmICgh Zm91bmQpCisJCXsKKwkJCXJvb3QtPmdsb2ItPnNlc3Npb25WYXJpYWJsZXMgPSBsYXBwZW5kX29p ZChyb290LT5nbG9iLT5zZXNzaW9uVmFyaWFibGVzLAorCQkJCQkJCQkJCQkJCSAgIHAtPnBhcmFt dmFyaWQpOworCQkJcC0+cGFyYW1pZCA9IG47CisJCX0KKworCQkvKgorCQkgKiBXZSBkbyBTRUxF Q1QgcGVybWlzc2lvbiBjaGVjayBvZiBhbGwgdmFyaWFibGVzIHVzZWQgYnkKKwkJICogdGhlIHF1 ZXJ5IGV4Y2x1ZGluZyB0aGUgdmFyaWFibGUgdGhhdCBpcyB1c2VkIG9ubHkgYXMgYmFzZSBub2Rl CisJCSAqIG9mIGFzc2lnbm1lbnQgaW5kaXJlY3Rpb24uIFRoZSB2YXJpYWJsZSBpZCBhc3NpZ25l ZCB0byB0aGlzIHBhcmFtCisJCSAqIHNob3VsZCBiZSBzYW1lIGxpa2UgcmVzdWx0VmFyaWFibGUg aWQsIGFuZCB0aGlzIHBhcmFtIHNob3VsZCBiZQorCQkgKiB1c2VkIG9ubHkgb25jZSBpbiBxdWVy eS4gV2hlbiB0aGUgdmFyaWFibGUgaXMgcmVmZXJlbmNlZCBieSBhbnkKKwkJICogb3RoZXIgcGFy YW0sIHdlIHNob3VsZCB0byBkbyBTRUxFQ1QgcGVybWlzc2lvbiBjaGVjayBmb3IgdGhpcyB2YXJp YWJsZQorCQkgKiB0b28uCisJCSAqLworCQlpZiAocC0+cGFyYW1iYXNlbm9kZSkKKwkJeworCQkJ QXNzZXJ0KCFPaWRJc1ZhbGlkKHJvb3QtPmdsb2ItPmJhc2Vub2RlU2Vzc2lvblZhcmlkKSk7CisJ CQlBc3NlcnQocm9vdC0+Z2xvYi0+cmVzdWx0VmFyaWFibGUgPT0gcC0+cGFyYW12YXJpZCk7CisK KwkJCXJvb3QtPmdsb2ItPmJhc2Vub2RlU2Vzc2lvblZhcmlkID0gcC0+cGFyYW12YXJpZDsKKwkJ fQorCQllbHNlCisJCXsKKwkJCWlmIChwLT5wYXJhbXZhcmlkID09IHJvb3QtPmdsb2ItPnJlc3Vs dFZhcmlhYmxlKQorCQkJCXJvb3QtPmdsb2ItPmJhc2Vub2RlU2Vzc2lvblZhclNlbGVjdENoZWNr ID0gdHJ1ZTsKKwkJfQorCisJCXJldHVybiAoTm9kZSAqKSBwOworCX0KKwogCXJldHVybiAoTm9k ZSAqKSBjb3B5T2JqZWN0KHApOwogfQogCkBAIC0yMTM2LDcgKzIyNTEsMTAgQEAgZml4X2FsdGVy bmF0aXZlX3N1YnBsYW4oUGxhbm5lckluZm8gKnJvb3QsIEFsdGVybmF0aXZlU3ViUGxhbiAqYXNw bGFuLAogICogcmVwbGFjaW5nIEFnZ3JlZiBub2RlcyB0aGF0IHNob3VsZCBiZSByZXBsYWNlZCBi eSBpbml0cGxhbiBvdXRwdXQgUGFyYW1zLAogICogY2hvb3NpbmcgdGhlIGJlc3QgaW1wbGVtZW50 YXRpb24gZm9yIEFsdGVybmF0aXZlU3ViUGxhbnMsCiAgKiBsb29raW5nIHVwIG9wZXJhdG9yIG9w Y29kZSBpbmZvIGZvciBPcEV4cHIgYW5kIHJlbGF0ZWQgbm9kZXMsCi0gKiBhbmQgYWRkaW5nIE9J RHMgZnJvbSByZWdjbGFzcyBDb25zdCBub2RlcyBpbnRvIHJvb3QtPmdsb2ItPnJlbGF0aW9uT2lk cy4KKyAqIGFkZGluZyBPSURzIGZyb20gcmVnY2xhc3MgQ29uc3Qgbm9kZXMgaW50byByb290LT5n bG9iLT5yZWxhdGlvbk9pZHMsCisgKiBhc3NpZ25pbmcgcGFyYW12YXJpZCB0byBQQVJBTV9WQVJJ QUJMRSBwYXJhbXMsIGFuZCBjb2xsZWN0aW5nIHRoZQorICogT0lEcyBvZiBzZXNzaW9uIHZhcmlh YmxlcyBpbiB0aGUgcm9vdC0+Z2xvYi0+c2Vzc2lvblZhcmlhYmxlcyBsaXN0CisgKiAocGFyYW12 YXJpZCBpcyB0aGUgcG9zaXRpb24gb2YgdGhlIHNlc3Npb24gdmFyaWFibGUgaW4gdGhpcyBsaXN0 KS4KICAqCiAgKiAnbm9kZSc6IHRoZSBleHByZXNzaW9uIHRvIGJlIG1vZGlmaWVkCiAgKiAncnRv ZmZzZXQnOiBob3cgbXVjaCB0byBpbmNyZW1lbnQgdmFybm9zIGJ5CkBAIC0yMTU4LDcgKzIyNzYs OCBAQCBmaXhfc2Nhbl9leHByKFBsYW5uZXJJbmZvICpyb290LCBOb2RlICpub2RlLCBpbnQgcnRv ZmZzZXQsIGRvdWJsZSBudW1fZXhlYykKIAkJcm9vdC0+bXVsdGlleHByX3BhcmFtcyAhPSBOSUwg fHwKIAkJcm9vdC0+Z2xvYi0+bGFzdFBISWQgIT0gMCB8fAogCQlyb290LT5taW5tYXhfYWdncyAh PSBOSUwgfHwKLQkJcm9vdC0+aGFzQWx0ZXJuYXRpdmVTdWJQbGFucykKKwkJcm9vdC0+aGFzQWx0 ZXJuYXRpdmVTdWJQbGFucyB8fAorCQlyb290LT5oYXNTZXNzaW9uVmFyaWFibGVzKQogCXsKIAkJ cmV0dXJuIGZpeF9zY2FuX2V4cHJfbXV0YXRvcihub2RlLCAmY29udGV4dCk7CiAJfQpAQCAtMzUz Niw2ICszNjU1LDI1IEBAIHJlY29yZF9wbGFuX3R5cGVfZGVwZW5kZW5jeShQbGFubmVySW5mbyAq cm9vdCwgT2lkIHR5cGlkKQogCX0KIH0KIAorLyoKKyAqIFJlY29yZCBkZXBlbmRlbmN5IG9uIGEg c2Vzc2lvbiB2YXJpYWJsZS4gIFRoZSB2YXJpYWJsZSBjYW4gYmUgdXNlZCBhcyBhCisgKiBzZXNz aW9uIHZhcmlhYmxlIGluIGFuIGV4cHJlc3Npb24gbGlzdCwgb3IgYXMgdGhlIHRhcmdldCBvZiBh IExFVCBzdGF0ZW1lbnQuCisgKi8KK3N0YXRpYyB2b2lkCityZWNvcmRfcGxhbl92YXJpYWJsZV9k ZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpyb290LCBPaWQgdmFyaWQpCit7CisJUGxhbkludmFsSXRl bSAqaW52YWxfaXRlbSA9IG1ha2VOb2RlKFBsYW5JbnZhbEl0ZW0pOworCisJLyogcGFyYW1pZCBp cyBzdGlsbCBzZXNzaW9uIHZhcmlhYmxlIGlkICovCisJaW52YWxfaXRlbS0+Y2FjaGVJZCA9IFZB UklBQkxFT0lEOworCWludmFsX2l0ZW0tPmhhc2hWYWx1ZSA9IEdldFN5c0NhY2hlSGFzaFZhbHVl MShWQVJJQUJMRU9JRCwKKwkJCQkJCQkJCQkJCSAgT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOwor CisJLyogYXBwZW5kIHRoaXMgdmFyaWFibGUgdG8gZ2xvYmFsLCByZWdpc3RlciBkZXBlbmRlbmN5 ICovCisJcm9vdC0+Z2xvYi0+aW52YWxJdGVtcyA9IGxhcHBlbmQocm9vdC0+Z2xvYi0+aW52YWxJ dGVtcywKKwkJCQkJCQkJCSBpbnZhbF9pdGVtKTsKK30KKwogLyoKICAqIGV4dHJhY3RfcXVlcnlf ZGVwZW5kZW5jaWVzCiAgKgkJR2l2ZW4gYSByZXdyaXR0ZW4sIGJ1dCBub3QgeWV0IHBsYW5uZWQs IHF1ZXJ5IG9yIHF1ZXJpZXMKQEAgLTM2MjEsOSArMzc1OSw5IEBAIGV4dHJhY3RfcXVlcnlfZGVw ZW5kZW5jaWVzX3dhbGtlcihOb2RlICpub2RlLCBQbGFubmVySW5mbyAqY29udGV4dCkKIAkJCX0K IAogCQkJLyoKLQkJCSAqIElnbm9yZSBvdGhlciB1dGlsaXR5IHN0YXRlbWVudHMsIGV4Y2VwdCB0 aG9zZSAoc3VjaCBhcyBFWFBMQUlOKQotCQkJICogdGhhdCBjb250YWluIGEgcGFyc2VkLWJ1dC1u b3QtcGxhbm5lZCBxdWVyeS4gIEZvciB0aG9zZSwgd2UKLQkJCSAqIGp1c3QgbmVlZCB0byB0cmFu c2ZlciBvdXIgYXR0ZW50aW9uIHRvIHRoZSBjb250YWluZWQgcXVlcnkuCisJCQkgKiBJZ25vcmUg b3RoZXIgdXRpbGl0eSBzdGF0ZW1lbnRzLCBleGNlcHQgdGhvc2UgKHN1Y2ggYXMgRVhQTEFJTgor CQkJICogb3IgTEVUKSB0aGF0IGNvbnRhaW4gYSBwYXJzZWQtYnV0LW5vdC1wbGFubmVkIHF1ZXJ5 LiAgRm9yIHRob3NlLAorCQkJICogd2UganVzdCBuZWVkIHRvIHRyYW5zZmVyIG91ciBhdHRlbnRp b24gdG8gdGhlIGNvbnRhaW5lZCBxdWVyeS4KIAkJCSAqLwogCQkJcXVlcnkgPSBVdGlsaXR5Q29u dGFpbnNRdWVyeShxdWVyeS0+dXRpbGl0eVN0bXQpOwogCQkJaWYgKHF1ZXJ5ID09IE5VTEwpCkBA IC0zNjQ2LDYgKzM3ODQsMTAgQEAgZXh0cmFjdF9xdWVyeV9kZXBlbmRlbmNpZXNfd2Fsa2VyKE5v ZGUgKm5vZGUsIFBsYW5uZXJJbmZvICpjb250ZXh0KQogCQkJCQlsYXBwZW5kX29pZChjb250ZXh0 LT5nbG9iLT5yZWxhdGlvbk9pZHMsIHJ0ZS0+cmVsaWQpOwogCQl9CiAKKwkJLyogcmVjb3JkIGRl cGVuZGVuY3kgb24gdGhlIHRhcmdldCB2YXJpYWJsZSBvZiBhIExFVCBjb21tYW5kICovCisJCWlm IChPaWRJc1ZhbGlkKHF1ZXJ5LT5yZXN1bHRWYXJpYWJsZSkpCisJCQlyZWNvcmRfcGxhbl92YXJp YWJsZV9kZXBlbmRlbmN5KGNvbnRleHQsIHF1ZXJ5LT5yZXN1bHRWYXJpYWJsZSk7CisKIAkJLyog QW5kIHJlY3Vyc2UgaW50byB0aGUgcXVlcnkncyBzdWJleHByZXNzaW9ucyAqLwogCQlyZXR1cm4g cXVlcnlfdHJlZV93YWxrZXIocXVlcnksIGV4dHJhY3RfcXVlcnlfZGVwZW5kZW5jaWVzX3dhbGtl ciwKIAkJCQkJCQkJIGNvbnRleHQsIDApOwpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1p emVyL3ByZXAvcHJlcGpvaW50cmVlLmMgYi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVw am9pbnRyZWUuYwppbmRleCA4Mjc3NWEzZGQ1Li5hNzkxNzlmYzM1IDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9vcHRpbWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUuYworKysgYi9zcmMvYmFja2VuZC9v cHRpbWl6ZXIvcHJlcC9wcmVwam9pbnRyZWUuYwpAQCAtMTQzMiw2ICsxNDMyLDkgQEAgcHVsbF91 cF9zaW1wbGVfc3VicXVlcnkoUGxhbm5lckluZm8gKnJvb3QsIE5vZGUgKmp0bm9kZSwgUmFuZ2VU YmxFbnRyeSAqcnRlLAogCS8qIElmIHN1YnF1ZXJ5IGhhZCBhbnkgUkxTIGNvbmRpdGlvbnMsIG5v dyBtYWluIHF1ZXJ5IGRvZXMgdG9vICovCiAJcGFyc2UtPmhhc1Jvd1NlY3VyaXR5IHw9IHN1YnF1 ZXJ5LT5oYXNSb3dTZWN1cml0eTsKIAorCS8qIGlmIHRoZSBzdWJxdWVyeSBoYWQgc2Vzc2lvbiB2 YXJpYWJsZXMsIHRoZSBtYWluIHF1ZXJ5IGRvZXMgdG9vICovCisJcGFyc2UtPmhhc1Nlc3Npb25W YXJpYWJsZXMgfD0gc3VicXVlcnktPmhhc1Nlc3Npb25WYXJpYWJsZXM7CisKIAkvKgogCSAqIHN1 YnF1ZXJ5IHdvbid0IGJlIHB1bGxlZCB1cCBpZiBpdCBoYXNBZ2dzLCBoYXNXaW5kb3dGdW5jcywg b3IKIAkgKiBoYXNUYXJnZXRTUkZzLCBzbyBubyB3b3JrIG5lZWRlZCBvbiB0aG9zZSBmbGFncwpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jIGIvc3JjL2Jh Y2tlbmQvb3B0aW1pemVyL3V0aWwvY2xhdXNlcy5jCmluZGV4IGRlMWYzNDBjYmUuLjJiYzNiMWY1 MjAgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL29wdGltaXplci91dGlsL2NsYXVzZXMuYworKysg Yi9zcmMvYmFja2VuZC9vcHRpbWl6ZXIvdXRpbC9jbGF1c2VzLmMKQEAgLTI0LDYgKzI0LDcgQEAK ICNpbmNsdWRlICJjYXRhbG9nL3BnX29wZXJhdG9yLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19w cm9jLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY29tbWFuZHMv c2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgImV4ZWN1dG9yL2V4ZWN1dG9yLmgiCiAjaW5j bHVkZSAiZXhlY3V0b3IvZnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiZnVuY2FwaS5oIgpAQCAtOTM0 LDYgKzkzNSwxMyBAQCBtYXhfcGFyYWxsZWxfaGF6YXJkX3dhbGtlcihOb2RlICpub2RlLCBtYXhf cGFyYWxsZWxfaGF6YXJkX2NvbnRleHQgKmNvbnRleHQpCiAJCWlmIChwYXJhbS0+cGFyYW1raW5k ID09IFBBUkFNX0VYVEVSTikKIAkJCXJldHVybiBmYWxzZTsKIAorCQkvKiB3ZSBkb24ndCBzdXBw b3J0IHBhc3Npbmcgc2Vzc2lvbiB2YXJpYWJsZXMgdG8gd29ya2VycyAqLworCQlpZiAocGFyYW0t PnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkKKwkJeworCQkJaWYgKG1heF9wYXJhbGxlbF9o YXphcmRfdGVzdChQUk9QQVJBTExFTF9SRVNUUklDVEVELCBjb250ZXh0KSkKKwkJCQlyZXR1cm4g dHJ1ZTsKKwkJfQorCiAJCWlmIChwYXJhbS0+cGFyYW1raW5kICE9IFBBUkFNX0VYRUMgfHwKIAkJ CSFsaXN0X21lbWJlcl9pbnQoY29udGV4dC0+c2FmZV9wYXJhbV9pZHMsIHBhcmFtLT5wYXJhbWlk KSkKIAkJewpAQCAtMjM4OCw2ICsyMzk2LDcgQEAgY29udmVydF9zYW9wX3RvX2hhc2hlZF9zYW9w X3dhbGtlcihOb2RlICpub2RlLCB2b2lkICpjb250ZXh0KQogICoJICB2YWx1ZSBvZiB0aGUgUGFy YW0uCiAgKiAyLiBGb2xkIHN0YWJsZSwgYXMgd2VsbCBhcyBpbW11dGFibGUsIGZ1bmN0aW9ucyB0 byBjb25zdGFudHMuCiAgKiAzLiBSZWR1Y2UgUGxhY2VIb2xkZXJWYXIgbm9kZXMgdG8gdGhlaXIg Y29udGFpbmVkIGV4cHJlc3Npb25zLgorICogNC4gQ3VycmVudCB2YWx1ZSBvZiBzZXNzaW9uIHZh cmlhYmxlIGNhbiBiZSB1c2VkIGZvciBlc3RpbWF0aW9uIHRvby4KICAqLS0tLS0tLS0tLS0tLS0t LS0tLS0KICAqLwogTm9kZSAqCkBAIC0yNTE0LDYgKzI1MjMsMjcgQEAgZXZhbF9jb25zdF9leHBy ZXNzaW9uc19tdXRhdG9yKE5vZGUgKm5vZGUsCiAJCQkJCQl9CiAJCQkJCX0KIAkJCQl9CisJCQkJ ZWxzZSBpZiAocGFyYW0tPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSAmJgorCQkJCQkJIGNv bnRleHQtPmVzdGltYXRlKQorCQkJCXsKKwkJCQkJaW50MTYJCXR5cExlbjsKKwkJCQkJYm9vbAkJ dHlwQnlWYWw7CisJCQkJCURhdHVtCQlwdmFsOworCQkJCQlib29sCQlpc251bGw7CisKKwkJCQkJ Z2V0X3R5cGxlbmJ5dmFsKHBhcmFtLT5wYXJhbXR5cGUsCisJCQkJCQkJCQkmdHlwTGVuLCAmdHlw QnlWYWwpOworCisJCQkJCXB2YWwgPSBHZXRTZXNzaW9uVmFyaWFibGUocGFyYW0tPnBhcmFtdmFy aWQsICZpc251bGwpOworCisJCQkJCXJldHVybiAoTm9kZSAqKSBtYWtlQ29uc3QocGFyYW0tPnBh cmFtdHlwZSwKKwkJCQkJCQkJCQkJICBwYXJhbS0+cGFyYW10eXBtb2QsCisJCQkJCQkJCQkJCSAg cGFyYW0tPnBhcmFtY29sbGlkLAorCQkJCQkJCQkJCQkgIChpbnQpIHR5cExlbiwKKwkJCQkJCQkJ CQkJICBwdmFsLAorCQkJCQkJCQkJCQkgIGlzbnVsbCwKKwkJCQkJCQkJCQkJICB0eXBCeVZhbCk7 CisJCQkJfQogCiAJCQkJLyoKIAkJCQkgKiBOb3QgcmVwbGFjZWFibGUsIHNvIGp1c3QgY29weSB0 aGUgUGFyYW0gKG5vIG5lZWQgdG8KQEAgLTQ3MTcsNyArNDc0Nyw4IEBAIGlubGluZV9mdW5jdGlv bihPaWQgZnVuY2lkLCBPaWQgcmVzdWx0X3R5cGUsIE9pZCByZXN1bHRfY29sbGlkLAogCQlxdWVy eXRyZWUtPmxpbWl0T2Zmc2V0IHx8CiAJCXF1ZXJ5dHJlZS0+bGltaXRDb3VudCB8fAogCQlxdWVy eXRyZWUtPnNldE9wZXJhdGlvbnMgfHwKLQkJbGlzdF9sZW5ndGgocXVlcnl0cmVlLT50YXJnZXRM aXN0KSAhPSAxKQorCQkobGlzdF9sZW5ndGgocXVlcnl0cmVlLT50YXJnZXRMaXN0KSAhPSAxKSB8 fAorCQlxdWVyeXRyZWUtPmhhc1Nlc3Npb25WYXJpYWJsZXMpCiAJCWdvdG8gZmFpbDsKIAogCS8q IElmIHRoZSBmdW5jdGlvbiByZXN1bHQgaXMgY29tcG9zaXRlLCByZXNvbHZlIGl0ICovCmRpZmYg LS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jIGIvc3JjL2JhY2tlbmQvcGFyc2Vy L2FuYWx5emUuYwppbmRleCA1NjFjZjRkNmE3Li4zZTk4MTRhZDlmIDEwMDY0NAotLS0gYS9zcmMv YmFja2VuZC9wYXJzZXIvYW5hbHl6ZS5jCisrKyBiL3NyYy9iYWNrZW5kL3BhcnNlci9hbmFseXpl LmMKQEAgLTI1LDkgKzI1LDEyIEBACiAjaW5jbHVkZSAicG9zdGdyZXMuaCIKIAogI2luY2x1ZGUg ImFjY2Vzcy9zeXNhdHRyLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKICNpbmNs dWRlICJjYXRhbG9nL3BnX3Byb2MuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNp bmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVt LmgiCisjaW5jbHVkZSAiY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgIm1p c2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgogI2luY2x1ZGUgIm5vZGVz L25vZGVGdW5jcy5oIgpAQCAtNTEsNiArNTQsNyBAQAogI2luY2x1ZGUgInV0aWxzL2JhY2tlbmRf c3RhdHVzLmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRpbnMuaCIKICNpbmNsdWRlICJ1dGlscy9n dWMuaCIKKyNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNpbmNsdWRlICJ1dGlscy9yZWwu aCIKICNpbmNsdWRlICJ1dGlscy9zeXNjYWNoZS5oIgogCkBAIC04Myw2ICs4Nyw4IEBAIHN0YXRp YyBRdWVyeSAqdHJhbnNmb3JtQ3JlYXRlVGFibGVBc1N0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLAog CQkJCQkJCQkJCSBDcmVhdGVUYWJsZUFzU3RtdCAqc3RtdCk7CiBzdGF0aWMgUXVlcnkgKnRyYW5z Zm9ybUNhbGxTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwKIAkJCQkJCQkJQ2FsbFN0bXQgKnN0bXQp Oworc3RhdGljIFF1ZXJ5ICp0cmFuc2Zvcm1MZXRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwKKwkJ CQkJCQkgICBMZXRTdG10ICpzdG10KTsKIHN0YXRpYyB2b2lkIHRyYW5zZm9ybUxvY2tpbmdDbGF1 c2UoUGFyc2VTdGF0ZSAqcHN0YXRlLCBRdWVyeSAqcXJ5LAogCQkJCQkJCQkgICBMb2NraW5nQ2xh dXNlICpsYywgYm9vbCBwdXNoZWREb3duKTsKICNpZmRlZiBERUJVR19OT0RFX1RFU1RTX0VOQUJM RUQKQEAgLTQxNCw2ICs0MjAsNyBAQCB0cmFuc2Zvcm1TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwg Tm9kZSAqcGFyc2VUcmVlKQogCQkJY2FzZSBUX1VwZGF0ZVN0bXQ6CiAJCQljYXNlIFRfRGVsZXRl U3RtdDoKIAkJCWNhc2UgVF9NZXJnZVN0bXQ6CisJCQljYXNlIFRfTGV0U3RtdDoKIAkJCQkodm9p ZCkgdGVzdF9yYXdfZXhwcmVzc2lvbl9jb3ZlcmFnZShwYXJzZVRyZWUsIE5VTEwpOwogCQkJCWJy ZWFrOwogCQkJZGVmYXVsdDoKQEAgLTQ5Myw2ICs1MDAsMTEgQEAgdHJhbnNmb3JtU3RtdChQYXJz ZVN0YXRlICpwc3RhdGUsIE5vZGUgKnBhcnNlVHJlZSkKIAkJCQkJCQkJCSAgIChDYWxsU3RtdCAq KSBwYXJzZVRyZWUpOwogCQkJYnJlYWs7CiAKKwkJY2FzZSBUX0xldFN0bXQ6CisJCQlyZXN1bHQg PSB0cmFuc2Zvcm1MZXRTdG10KHBzdGF0ZSwKKwkJCQkJCQkJCSAgKExldFN0bXQgKikgcGFyc2VU cmVlKTsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAKIAkJCS8qCkBAIC01NDUsNiArNTU3LDcg QEAgc3RtdF9yZXF1aXJlc19wYXJzZV9hbmFseXNpcyhSYXdTdG10ICpwYXJzZVRyZWUpCiAJCWNh c2UgVF9TZWxlY3RTdG10OgogCQljYXNlIFRfUmV0dXJuU3RtdDoKIAkJY2FzZSBUX1BMQXNzaWdu U3RtdDoKKwkJY2FzZSBUX0xldFN0bXQ6CiAJCQlyZXN1bHQgPSB0cnVlOwogCQkJYnJlYWs7CiAK QEAgLTY1Myw2ICs2NjYsNyBAQCB0cmFuc2Zvcm1EZWxldGVTdG10KFBhcnNlU3RhdGUgKnBzdGF0 ZSwgRGVsZXRlU3RtdCAqc3RtdCkKIAlxcnktPmhhc1dpbmRvd0Z1bmNzID0gcHN0YXRlLT5wX2hh c1dpbmRvd0Z1bmNzOwogCXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRT UkZzOwogCXFyeS0+aGFzQWdncyA9IHBzdGF0ZS0+cF9oYXNBZ2dzOworCXFyeS0+aGFzU2Vzc2lv blZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJYXNzaWduX3F1 ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCkBAIC0xMDc5LDYgKzEwOTMsNyBAQCB0cmFu c2Zvcm1JbnNlcnRTdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgSW5zZXJ0U3RtdCAqc3RtdCkKIAog CXFyeS0+aGFzVGFyZ2V0U1JGcyA9IHBzdGF0ZS0+cF9oYXNUYXJnZXRTUkZzOwogCXFyeS0+aGFz U3ViTGlua3MgPSBwc3RhdGUtPnBfaGFzU3ViTGlua3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFi bGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlhc3NpZ25fcXVlcnlfY29s bGF0aW9ucyhwc3RhdGUsIHFyeSk7CiAKQEAgLTE1NDQsNiArMTU1OSw3IEBAIHRyYW5zZm9ybVNl bGVjdFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTZWxlY3RTdG10ICpzdG10KQogCXFyeS0+aGFz V2luZG93RnVuY3MgPSBwc3RhdGUtPnBfaGFzV2luZG93RnVuY3M7CiAJcXJ5LT5oYXNUYXJnZXRT UkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5oYXNBZ2dzID0gcHN0YXRlLT5w X2hhc0FnZ3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5wX2hhc1Nlc3Np b25WYXJpYWJsZXM7CiAKIAlmb3JlYWNoKGwsIHN0bXQtPmxvY2tpbmdDbGF1c2UpCiAJewpAQCAt MTc3MCwxMiArMTc4NiwyNDEgQEAgdHJhbnNmb3JtVmFsdWVzQ2xhdXNlKFBhcnNlU3RhdGUgKnBz dGF0ZSwgU2VsZWN0U3RtdCAqc3RtdCkKIAlxcnktPmpvaW50cmVlID0gbWFrZUZyb21FeHByKHBz dGF0ZS0+cF9qb2lubGlzdCwgTlVMTCk7CiAKIAlxcnktPmhhc1N1YkxpbmtzID0gcHN0YXRlLT5w X2hhc1N1YkxpbmtzOworCXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNT ZXNzaW9uVmFyaWFibGVzOwogCiAJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBxcnkp OwogCiAJcmV0dXJuIHFyeTsKIH0KIAorLyoKKyAqIHRyYW5zZm9ybUxldFN0bXQgLQorICoJICB0 cmFuc2Zvcm0gYW4gTGV0IFN0YXRlbWVudAorICovCitzdGF0aWMgUXVlcnkgKgordHJhbnNmb3Jt TGV0U3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIExldFN0bXQgKnN0bXQpCit7CisJUXVlcnkJICAg KnF1ZXJ5OworCVF1ZXJ5CSAgICpyZXN1bHQ7CisJTGlzdAkgICAqZXhwckxpc3QgPSBOSUw7CisJ TGlzdAkgICAqZXhwckxpc3RDb2VyID0gTklMOworCUxpc3RDZWxsICAgKmxjOworCUxpc3RDZWxs ICAgKmluZGlyZWN0aW9uX2hlYWQgPSBOVUxMOworCVF1ZXJ5CSAgICpzZWxlY3RRdWVyeTsKKwlP aWQJCQl2YXJpZDsKKwljaGFyCSAgICphdHRybmFtZSA9IE5VTEw7CisJYm9vbAkJbm90X3VuaXF1 ZTsKKwlib29sCQlpc19yb3d0eXBlOworCU9pZAkJCXR5cGlkOworCWludDMyCQl0eXBtb2Q7CisJ T2lkCQkJY29sbGlkOworCUxpc3QJICAgKm5hbWVzID0gTlVMTDsKKwlpbnQJCQlpbmRpcmVjdGlv bl9zdGFydDsKKwlpbnQJCQlpID0gMDsKKworCS8qIHRoZXJlIGNhbid0IGJlIGFueSBvdXRlciBX SVRIIHRvIHdvcnJ5IGFib3V0ICovCisJQXNzZXJ0KHBzdGF0ZS0+cF9jdGVuYW1lc3BhY2UgPT0g TklMKTsKKworCW5hbWVzID0gTmFtZXNGcm9tTGlzdChzdG10LT50YXJnZXQpOworCisJLyogbG9j a3MgdGhlIHZhcmlhYmxlIHdpdGggYW4gQWNjZXNzU2hhcmVMb2NrICovCisJdmFyaWQgPSBJZGVu dGlmeVZhcmlhYmxlKG5hbWVzLCAmYXR0cm5hbWUsICZub3RfdW5pcXVlLCBmYWxzZSk7CisJaWYg KG5vdF91bmlxdWUpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVycmNvZGUoRVJSQ09ERV9BTUJJ R1VPVVNfUEFSQU1FVEVSKSwKKwkJCQkgZXJybXNnKCJ0YXJnZXQgXCIlc1wiIG9mIExFVCBjb21t YW5kIGlzIGFtYmlndW91cyIsCisJCQkJCQlOYW1lTGlzdFRvU3RyaW5nKG5hbWVzKSksCisJCQkJ IHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHN0bXQtPmxvY2F0aW9uKSkpOworCisJaWYgKCFP aWRJc1ZhbGlkKHZhcmlkKSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RF X1VOREVGSU5FRF9PQkpFQ1QpLAorCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIlc1wi IGRvZXNuJ3QgZXhpc3QiLAorCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhuYW1lcykpLAorCQkJCSBw YXJzZXJfZXJycG9zaXRpb24ocHN0YXRlLCBzdG10LT5sb2NhdGlvbikpKTsKKworCS8qCisJICog Q2FsY3VsYXRlIHN0YXJ0IG9mIHBvc3NpYmxlIHBvc2l0aW9uIG9mIGFuIGluZGlyZWN0aW9uIGlu IGxpc3QsIGFuZAorCSAqIHdoZW4gaXQgaXMgaW5zaWRlIHRoZSBsaXN0LCBzdG9yZSBwb2ludGVy IG9uIGZpcnN0IG5vZGUgb2YgaW5kaXJlY3Rpb24uCisJICovCisJaW5kaXJlY3Rpb25fc3RhcnQg PSBsaXN0X2xlbmd0aChuYW1lcykgLSAoYXR0cm5hbWUgPyAxIDogMCk7CisJaWYgKGxpc3RfbGVu Z3RoKHN0bXQtPnRhcmdldCkgPiBpbmRpcmVjdGlvbl9zdGFydCkKKwkJaW5kaXJlY3Rpb25faGVh ZCA9IGxpc3RfbnRoX2NlbGwoc3RtdC0+dGFyZ2V0LCBpbmRpcmVjdGlvbl9zdGFydCk7CisKKwln ZXRfc2Vzc2lvbl92YXJpYWJsZV90eXBlX3R5cG1vZF9jb2xsaWQodmFyaWQsICZ0eXBpZCwgJnR5 cG1vZCwgJmNvbGxpZCk7CisKKwlpc19yb3d0eXBlID0gdHlwZV9pc19yb3d0eXBlKHR5cGlkKTsK KworCWlmIChhdHRybmFtZSAmJiAhaXNfcm93dHlwZSkKKwkJZXJlcG9ydChFUlJPUiwKKwkJCQko ZXJyY29kZShFUlJDT0RFX0RBVEFUWVBFX01JU01BVENIKSwKKwkJCQkgZXJybXNnKCJjYW5ub3Qg YXNzaWduIHRvIGZpZWxkIFwiJXNcIiBvZiBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiBiZWNh dXNlIGl0cyB0eXBlICVzIGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlIiwKKwkJCQkJCWF0dHJuYW1l LAorCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFj ZSh2YXJpZCkpLAorCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJpZCksCisJCQkJ CQlmb3JtYXRfdHlwZV9iZSh0eXBpZCkpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRl LCBzdG10LT5sb2NhdGlvbikpKTsKKworCXBzdGF0ZS0+cF9leHByX2tpbmQgPSBFWFBSX0tJTkRf TEVUX1RBUkdFVDsKKworCS8qIHdlIG5lZWQgdG8gcG9zdHBvbmUgY29udmVyc2lvbiBvZiAidW5r bm93biIgdG8gdGV4dCAqLworCXBzdGF0ZS0+cF9yZXNvbHZlX3Vua25vd25zID0gZmFsc2U7CisK KwlzZWxlY3RRdWVyeSA9IHRyYW5zZm9ybVN0bXQocHN0YXRlLCBzdG10LT5xdWVyeSk7CisKKwkv KiB0aGUgZ3JhbW1hciBzaG91bGQgaGF2ZSBwcm9kdWNlZCBhIFNFTEVDVCAqLworCUFzc2VydChJ c0Eoc2VsZWN0UXVlcnksIFF1ZXJ5KSAmJiBzZWxlY3RRdWVyeS0+Y29tbWFuZFR5cGUgPT0gQ01E X1NFTEVDVCk7CisKKwkvKgorCSAqIEdlbmVyYXRlIGFuIGV4cHJlc3Npb24gbGlzdCBmb3IgdGhl IExFVCB0aGF0IHNlbGVjdHMgYWxsIHRoZSBub24tcmVzanVuaworCSAqIGNvbHVtbnMgZnJvbSB0 aGUgc3VicXVlcnkuCisJICovCisJZXhwckxpc3QgPSBOSUw7CisJZm9yZWFjaF9ub2RlKFRhcmdl dEVudHJ5LCB0bGUsIHNlbGVjdFF1ZXJ5LT50YXJnZXRMaXN0KQorCXsKKwkJaWYgKHRsZS0+cmVz anVuaykKKwkJCWNvbnRpbnVlOworCisJCWV4cHJMaXN0ID0gbGFwcGVuZChleHByTGlzdCwgdGxl LT5leHByKTsKKwl9CisKKwkvKiBkb24ndCBhbGxvdyBtdWx0aWNvbHVtbiByZXN1bHQgKi8KKwlp ZiAobGlzdF9sZW5ndGgoZXhwckxpc3QpICE9IDEpCisJCWVyZXBvcnQoRVJST1IsCisJCQkJKGVy cmNvZGUoRVJSQ09ERV9TWU5UQVhfRVJST1IpLAorCQkJCSBlcnJtc2dfcGx1cmFsKCJhc3NpZ25t ZW50IGV4cHJlc3Npb24gcmV0dXJuZWQgJWQgY29sdW1uIiwKKwkJCQkJCQkgICAiYXNzaWdubWVu dCBleHByZXNzaW9uIHJldHVybmVkICVkIGNvbHVtbnMiLAorCQkJCQkJCSAgIGxpc3RfbGVuZ3Ro KGV4cHJMaXN0KSwKKwkJCQkJCQkgICBsaXN0X2xlbmd0aChleHByTGlzdCkpLAorCQkJCSBwYXJz ZXJfZXJycG9zaXRpb24ocHN0YXRlLAorCQkJCQkJCQkJZXhwckxvY2F0aW9uKChOb2RlICopIGV4 cHJMaXN0KSkpKTsKKworCWV4cHJMaXN0Q29lciA9IE5JTDsKKworCWZvcmVhY2gobGMsIGV4cHJM aXN0KQorCXsKKwkJRXhwcgkgICAqZXhwciA9IChFeHByICopIGxmaXJzdChsYyk7CisJCUV4cHIJ ICAgKmNvZXJjZWRfZXhwcjsKKwkJT2lkCQkJZXhwcnR5cGlkOworCisJCS8qIG5vdyB3ZSBjYW4g cmVhZCB0aGUgdHlwZSBvZiB0aGUgZXhwcmVzc2lvbiAqLworCQlleHBydHlwaWQgPSBleHByVHlw ZSgoTm9kZSAqKSBleHByKTsKKworCQlpZiAoaW5kaXJlY3Rpb25faGVhZCkKKwkJeworCQkJYm9v bAkJdGFyZ2V0SXNBcnJheTsKKwkJCWNoYXIJICAgKnRhcmdldE5hbWU7CisJCQlQYXJhbQkgICAq cGFyYW07CisKKwkJCXRhcmdldE5hbWUgPSBnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcmlk KTsKKwkJCXRhcmdldElzQXJyYXkgPSBPaWRJc1ZhbGlkKGdldF9lbGVtZW50X3R5cGUodHlwaWQp KTsKKworCQkJcHN0YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXMgPSB0cnVlOworCisJCQlwYXJh bSA9IG1ha2VOb2RlKFBhcmFtKTsKKwkJCXBhcmFtLT5wYXJhbWtpbmQgPSBQQVJBTV9WQVJJQUJM RTsKKwkJCXBhcmFtLT5wYXJhbXZhcmlkID0gdmFyaWQ7CisJCQlwYXJhbS0+cGFyYW10eXBlID0g dHlwaWQ7CisJCQlwYXJhbS0+cGFyYW10eXBtb2QgPSB0eXBtb2Q7CisKKwkJCS8qCisJCQkgKiBU aGUgcGFyYW1ldGVyIHVzZWQgYXMgYmFzZW5vZGUgaGFzIHRvIGhhdmUgc3BlY2lhbAorCQkJICog bWFyaywgYmVjYXVzZSByZXF1aXJlcyBzcGVjaWFsIGFjY2VzcyB3aGVuIHdlIGRvCisJCQkgKiBT RUxFQ1QgYWNjZXNzIGNoZWNrLgorCQkJICovCisJCQlwYXJhbS0+cGFyYW1iYXNlbm9kZSA9IHRy dWU7CisKKwkJCWNvZXJjZWRfZXhwciA9IChFeHByICopCisJCQkJdHJhbnNmb3JtQXNzaWdubWVu dEluZGlyZWN0aW9uKHBzdGF0ZSwKKwkJCQkJCQkJCQkJICAgKE5vZGUgKikgcGFyYW0sCisJCQkJ CQkJCQkJCSAgIHRhcmdldE5hbWUsCisJCQkJCQkJCQkJCSAgIHRhcmdldElzQXJyYXksCisJCQkJ CQkJCQkJCSAgIHR5cGlkLAorCQkJCQkJCQkJCQkgICB0eXBtb2QsCisJCQkJCQkJCQkJCSAgIElu dmFsaWRPaWQsCisJCQkJCQkJCQkJCSAgIHN0bXQtPnRhcmdldCwKKwkJCQkJCQkJCQkJICAgaW5k aXJlY3Rpb25faGVhZCwKKwkJCQkJCQkJCQkJICAgKE5vZGUgKikgZXhwciwKKwkJCQkJCQkJCQkJ ICAgQ09FUkNJT05fQVNTSUdOTUVOVCwKKwkJCQkJCQkJCQkJICAgc3RtdC0+bG9jYXRpb24pOwor CQl9CisJCWVsc2UKKwkJCWNvZXJjZWRfZXhwciA9IChFeHByICopCisJCQkJY29lcmNlX3RvX3Rh cmdldF90eXBlKHBzdGF0ZSwKKwkJCQkJCQkJCSAgKE5vZGUgKikgZXhwciwKKwkJCQkJCQkJCSAg ZXhwcnR5cGlkLAorCQkJCQkJCQkJICB0eXBpZCwgdHlwbW9kLAorCQkJCQkJCQkJICBDT0VSQ0lP Tl9BU1NJR05NRU5ULAorCQkJCQkJCQkJICBDT0VSQ0VfSU1QTElDSVRfQ0FTVCwKKwkJCQkJCQkJ CSAgc3RtdC0+bG9jYXRpb24pOworCisJCWlmIChjb2VyY2VkX2V4cHIgPT0gTlVMTCkKKwkJCWVy ZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfREFUQVRZUEVfTUlTTUFUQ0gpLAor CQkJCQkgZXJybXNnKCJ2YXJpYWJsZSBcIiVzLiVzXCIgaXMgb2YgdHlwZSAlcywgYnV0IGV4cHJl c3Npb24gaXMgb2YgdHlwZSAlcyIsCisJCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1lKGdldF9zZXNz aW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJCWdldF9zZXNzaW9uX3Zhcmlh YmxlX25hbWUodmFyaWQpLAorCQkJCQkJCWZvcm1hdF90eXBlX2JlKHR5cGlkKSwKKwkJCQkJCQlm b3JtYXRfdHlwZV9iZShleHBydHlwaWQpKSwKKwkJCQkJIGVycmhpbnQoIllvdSB3aWxsIG5lZWQg dG8gcmV3cml0ZSBvciBjYXN0IHRoZSBleHByZXNzaW9uLiIpLAorCQkJCQkgcGFyc2VyX2VycnBv c2l0aW9uKHBzdGF0ZSwgZXhwckxvY2F0aW9uKChOb2RlICopIGV4cHIpKSkpOworCisJCWV4cHJM aXN0Q29lciA9IGxhcHBlbmQoZXhwckxpc3RDb2VyLCBjb2VyY2VkX2V4cHIpOworCX0KKworCS8q IGdlbmVyYXRlIHF1ZXJ5J3MgdGFyZ2V0IGxpc3QgdXNpbmcgdGhlIGNvbXB1dGVkIGxpc3Qgb2Yg ZXhwcmVzc2lvbnMgKi8KKwlxdWVyeSA9IG1ha2VOb2RlKFF1ZXJ5KTsKKwlxdWVyeS0+Y29tbWFu ZFR5cGUgPSBDTURfU0VMRUNUOworCisJZm9yZWFjaChsYywgZXhwckxpc3RDb2VyKQorCXsKKwkJ RXhwcgkgICAqZXhwciA9IChFeHByICopIGxmaXJzdChsYyk7CisJCVRhcmdldEVudHJ5ICp0bGU7 CisKKwkJdGxlID0gbWFrZVRhcmdldEVudHJ5KGV4cHIsCisJCQkJCQkJICBpICsgMSwKKwkJCQkJ CQkgIEZpZ3VyZUNvbG5hbWUoKE5vZGUgKikgZXhwciksCisJCQkJCQkJICBmYWxzZSk7CisJCXF1 ZXJ5LT50YXJnZXRMaXN0ID0gbGFwcGVuZChxdWVyeS0+dGFyZ2V0TGlzdCwgdGxlKTsKKwl9CisK KwkvKiBkb25lIGJ1aWxkaW5nIHRoZSByYW5nZSB0YWJsZSBhbmQgam9pbnRyZWUgKi8KKwlxdWVy eS0+cnRhYmxlID0gcHN0YXRlLT5wX3J0YWJsZTsKKwlxdWVyeS0+am9pbnRyZWUgPSBtYWtlRnJv bUV4cHIocHN0YXRlLT5wX2pvaW5saXN0LCBOVUxMKTsKKworCXF1ZXJ5LT5oYXNUYXJnZXRTUkZz ID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CisJcXVlcnktPmhhc1N1YkxpbmtzID0gcHN0YXRl LT5wX2hhc1N1YkxpbmtzOworCXF1ZXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0YXRlLT5w X2hhc1Nlc3Npb25WYXJpYWJsZXM7CisKKwkvKiB0aGlzIGlzIHRvcC1sZXZlbCBxdWVyeSAqLwor CXF1ZXJ5LT5jYW5TZXRUYWcgPSB0cnVlOworCisJLyoKKwkgKiBTYXZlIHRhcmdldCBzZXNzaW9u IHZhcmlhYmxlIElELiBJdCBpcyB1c2VkIGxhdGVyIGZvcgorCSAqIGFjcXVpcmluZyBhbiBBY2Nl c3NTaGFyZUxvY2sgb24gdGFyZ2V0IHZhcmlhYmxlLCBzZXR0aW5nCisJICogcGxhbiBkZXBlbmRl bmN5IGFuZCBmaW5hbGx5IGZvciBjcmVhdGluZyBWYXJpYWJsZURlc3RSZWNlaXZlci4KKwkgKi8K KwlxdWVyeS0+cmVzdWx0VmFyaWFibGUgPSB2YXJpZDsKKworCWFzc2lnbl9xdWVyeV9jb2xsYXRp b25zKHBzdGF0ZSwgcXVlcnkpOworCisJLyoKKwkgKiBUaGUgcXVlcnkgaXMgZXhlY3V0ZWQgYXMg dXRpbGl0eSBjb21tYW5kIGJ5IG5lc3RlZCBleGVjdXRvciBjYWxsLgorCSAqIEFzc2lnbmVkIHF1 ZXJ5SWQgaXMgcmVxdWlyZWQgaW4gdGhpcyBjYXNlLgorCSAqLworCWlmIChJc1F1ZXJ5SWRFbmFi bGVkKCkpCisJCUp1bWJsZVF1ZXJ5KHF1ZXJ5KTsKKworCXN0bXQtPnF1ZXJ5ID0gKE5vZGUgKikg cXVlcnk7CisKKwkvKiByZXByZXNlbnQgdGhlIGNvbW1hbmQgYXMgYSB1dGlsaXR5IFF1ZXJ5ICov CisJcmVzdWx0ID0gbWFrZU5vZGUoUXVlcnkpOworCXJlc3VsdC0+Y29tbWFuZFR5cGUgPSBDTURf VVRJTElUWTsKKwlyZXN1bHQtPnV0aWxpdHlTdG10ID0gKE5vZGUgKikgc3RtdDsKKworCXJldHVy biByZXN1bHQ7Cit9CisKIC8qCiAgKiB0cmFuc2Zvcm1TZXRPcGVyYXRpb25TdG10IC0KICAqCSAg dHJhbnNmb3JtcyBhIHNldC1vcGVyYXRpb25zIHRyZWUKQEAgLTIwMjEsNiArMjI2Niw3IEBAIHRy YW5zZm9ybVNldE9wZXJhdGlvblN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBTZWxlY3RTdG10ICpz dG10KQogCXFyeS0+aGFzV2luZG93RnVuY3MgPSBwc3RhdGUtPnBfaGFzV2luZG93RnVuY3M7CiAJ cXJ5LT5oYXNUYXJnZXRTUkZzID0gcHN0YXRlLT5wX2hhc1RhcmdldFNSRnM7CiAJcXJ5LT5oYXNB Z2dzID0gcHN0YXRlLT5wX2hhc0FnZ3M7CisJcXJ5LT5oYXNTZXNzaW9uVmFyaWFibGVzID0gcHN0 YXRlLT5wX2hhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAlmb3JlYWNoKGwsIGxvY2tpbmdDbGF1c2Up CiAJewpAQCAtMjQ5Niw2ICsyNzQyLDcgQEAgdHJhbnNmb3JtUmV0dXJuU3RtdChQYXJzZVN0YXRl ICpwc3RhdGUsIFJldHVyblN0bXQgKnN0bXQpCiAJcXJ5LT5oYXNXaW5kb3dGdW5jcyA9IHBzdGF0 ZS0+cF9oYXNXaW5kb3dGdW5jczsKIAlxcnktPmhhc1RhcmdldFNSRnMgPSBwc3RhdGUtPnBfaGFz VGFyZ2V0U1JGczsKIAlxcnktPmhhc0FnZ3MgPSBwc3RhdGUtPnBfaGFzQWdnczsKKwlxcnktPmhh c1Nlc3Npb25WYXJpYWJsZXMgPSBwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlczsKIAogCWFz c2lnbl9xdWVyeV9jb2xsYXRpb25zKHBzdGF0ZSwgcXJ5KTsKIApAQCAtMjU2Myw2ICsyODEwLDcg QEAgdHJhbnNmb3JtVXBkYXRlU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIFVwZGF0ZVN0bXQgKnN0 bXQpCiAKIAlxcnktPmhhc1RhcmdldFNSRnMgPSBwc3RhdGUtPnBfaGFzVGFyZ2V0U1JGczsKIAlx cnktPmhhc1N1YkxpbmtzID0gcHN0YXRlLT5wX2hhc1N1YkxpbmtzOworCXFyeS0+aGFzU2Vzc2lv blZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOwogCiAJYXNzaWduX3F1 ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCkBAIC0yNzUwLDkgKzI5OTgsMTUgQEAgdHJh bnNmb3JtUExBc3NpZ25TdG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUExBc3NpZ25TdG10ICpzdG10 KQogCS8qCiAJICogVHJhbnNmb3JtIHRoZSB0YXJnZXQgcmVmZXJlbmNlLiAgVHlwaWNhbGx5IHdl IHdpbGwgZ2V0IGJhY2sgYSBQYXJhbQogCSAqIG5vZGUsIGJ1dCB0aGVyZSdzIG5vIHJlYXNvbiB0 byBiZSB0b28gcGlja3kgYWJvdXQgaXRzIHR5cGUuCisJICoKKwkgKiBTZXNzaW9uIHZhcmlhYmxl cyBzaG91bGQgbm90IGJlIHVzZWQgYXMgdGFyZ2V0IG9mIGEgUEwvcGdTUUwgYXNzaWduCisJICog c3RhdGVtZW50LiAgU28gd2Ugc2hvdWxkIHVzZSBhIGRlZGljYXRlZCBleHByZXNzaW9uIGtpbmQg YW5kIGRpc2FsbG93CisJICogc2Vzc2lvbiB2YXJpYWJsZXMgdGhlcmUuICBUaGUgZGVkaWNhdGVk IGNvbnRleHQgYWxsb3dzIHRvIGVsaW1pbmF0ZQorCSAqIHVuZGVzaXJhYmxlIHdhcm5pbmdzIGFi b3V0IHRoZSBwb3NzaWJpbGl0eSBvZiBhIHRhcmdldCBQTC9wZ1NRTCB2YXJpYWJsZQorCSAqIHNo YWRvd2luZyBhIHNlc3Npb24gdmFyaWFibGUuCiAJICovCiAJdGFyZ2V0ID0gdHJhbnNmb3JtRXhw cihwc3RhdGUsIChOb2RlICopIGNyZWYsCi0JCQkJCQkgICBFWFBSX0tJTkRfVVBEQVRFX1RBUkdF VCk7CisJCQkJCQkgICBFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVCk7CiAJdGFyZ2V0dHlwZSA9IGV4 cHJUeXBlKHRhcmdldCk7CiAJdGFyZ2V0dHlwbW9kID0gZXhwclR5cG1vZCh0YXJnZXQpOwogCXRh cmdldGNvbGxhdGlvbiA9IGV4cHJDb2xsYXRpb24odGFyZ2V0KTsKQEAgLTI3OTQsNiArMzA0OCwx MCBAQCB0cmFuc2Zvcm1QTEFzc2lnblN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBQTEFzc2lnblN0 bXQgKnN0bXQpCiAJICovCiAJdHlwZV9pZCA9IGV4cHJUeXBlKChOb2RlICopIHRsZS0+ZXhwcik7 CiAKKwkvKgorCSAqIEZvciBpbmRpcmVjdGlvbiBwcm9jZXNzaW5nIGFuZCBhZGRpdGlvbmFsIGNh c3RzIHdlIGNhbiB1c2UgZXhwcl9raW5kCisJICogRVhQUl9LSU5EX1VQREFURV9UQVJHRVQuCisJ ICovCiAJcHN0YXRlLT5wX2V4cHJfa2luZCA9IEVYUFJfS0lORF9VUERBVEVfVEFSR0VUOwogCiAJ aWYgKGluZGlyZWN0aW9uKQpAQCAtMjkzNiw2ICszMTk0LDggQEAgdHJhbnNmb3JtUExBc3NpZ25T dG10KFBhcnNlU3RhdGUgKnBzdGF0ZSwgUExBc3NpZ25TdG10ICpzdG10KQogCQkJCQkJCSAgIChM b2NraW5nQ2xhdXNlICopIGxmaXJzdChsKSwgZmFsc2UpOwogCX0KIAorCXFyeS0+aGFzU2Vzc2lv blZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVzOworCiAJYXNzaWduX3F1 ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCiAJLyogdGhpcyBtdXN0IGJlIGRvbmUgYWZ0 ZXIgY29sbGF0aW9ucywgZm9yIHJlbGlhYmxlIGNvbXBhcmlzb24gb2YgZXhwcnMgKi8KQEAgLTMy MDksNiArMzQ2OSwxNiBAQCB0cmFuc2Zvcm1DYWxsU3RtdChQYXJzZVN0YXRlICpwc3RhdGUsIENh bGxTdG10ICpzdG10KQogCQkJCQkJCSB0cnVlLAogCQkJCQkJCSBzdG10LT5mdW5jY2FsbC0+bG9j YXRpb24pOwogCisJLyoKKwkgKiBUaGUgYXJndW1lbnRzIG9mIENBTEwgc3RhdGVtZW50IGFyZSBl dmFsdWF0ZWQgYnkgYSBkaXJlY3QgZXhwcmVzc2lvbgorCSAqIGV4ZWN1dG9yIGNhbGwuICBUaGlz IHBhdGggaXMgdW5zdXBwb3J0ZWQgeWV0LCBzbyBibG9jayBpdC4gIEl0IHdpbGwgYmUKKwkgKiBl bmFibGVkIGxhdGVyLgorCSAqLworCWlmIChwc3RhdGUtPnBfaGFzU2Vzc2lvblZhcmlhYmxlcykK KwkJZXJlcG9ydChFUlJPUiwKKwkJCQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBP UlRFRCksCisJCQkJIGVycm1zZygic2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3QgYmUgdXNlZCBhcyBh biBhcmd1bWVudCIpKSk7CisKIAlhc3NpZ25fZXhwcl9jb2xsYXRpb25zKHBzdGF0ZSwgbm9kZSk7 CiAKIAlmZXhwciA9IGNhc3ROb2RlKEZ1bmNFeHByLCBub2RlKTsKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3BhcnNlci9ncmFtLnkgYi9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CmluZGV4IDc5 NjE0N2E1NDEuLmE0MTUwZjg5OWIgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9ncmFt LnkKKysrIGIvc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueQpAQCAtMjkzLDcgKzI5Myw3IEBAIHN0 YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICph bGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJCURyb3BUcmFuc2Zvcm1TdG10CiAJCURyb3BVc2VyTWFw cGluZ1N0bXQgRXhwbGFpblN0bXQgRmV0Y2hTdG10CiAJCUdyYW50U3RtdCBHcmFudFJvbGVTdG10 IEltcG9ydEZvcmVpZ25TY2hlbWFTdG10IEluZGV4U3RtdCBJbnNlcnRTdG10Ci0JCUxpc3RlblN0 bXQgTG9hZFN0bXQgTG9ja1N0bXQgTWVyZ2VTdG10IE5vdGlmeVN0bXQgRXhwbGFpbmFibGVTdG10 IFByZXBhcmFibGVTdG10CisJCUxldFN0bXQgTGlzdGVuU3RtdCBMb2FkU3RtdCBMb2NrU3RtdCBN ZXJnZVN0bXQgTm90aWZ5U3RtdCBFeHBsYWluYWJsZVN0bXQgUHJlcGFyYWJsZVN0bXQKIAkJQ3Jl YXRlRnVuY3Rpb25TdG10IEFsdGVyRnVuY3Rpb25TdG10IFJlaW5kZXhTdG10IFJlbW92ZUFnZ3JT dG10CiAJCVJlbW92ZUZ1bmNTdG10IFJlbW92ZU9wZXJTdG10IFJlbmFtZVN0bXQgUmV0dXJuU3Rt dCBSZXZva2VTdG10IFJldm9rZVJvbGVTdG10CiAJCVJ1bGVBY3Rpb25TdG10IFJ1bGVBY3Rpb25T dG10T3JFbXB0eSBSdWxlU3RtdApAQCAtNzM0LDcgKzczNCw3IEBAIHN0YXRpYyBOb2RlICptYWtl UmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpx dWVyeSk7CiAJS0VFUCBLRVkgS0VZUwogCiAJTEFCRUwgTEFOR1VBR0UgTEFSR0VfUCBMQVNUX1Ag TEFURVJBTF9QCi0JTEVBRElORyBMRUFLUFJPT0YgTEVBU1QgTEVGVCBMRVZFTCBMSUtFIExJTUlU IExJU1RFTiBMT0FEIExPQ0FMCisJTEVBRElORyBMRUFLUFJPT0YgTEVBU1QgTEVGVCBMRVQgTEVW RUwgTElLRSBMSU1JVCBMSVNURU4gTE9BRCBMT0NBTAogCUxPQ0FMVElNRSBMT0NBTFRJTUVTVEFN UCBMT0NBVElPTiBMT0NLX1AgTE9DS0VEIExPR0dFRAogCiAJTUFQUElORyBNQVRDSCBNQVRDSEVE IE1BVEVSSUFMSVpFRCBNQVhWQUxVRSBNRVJHRSBNRVJHRV9BQ1RJT04gTUVUSE9ECkBAIC0xMDgx LDYgKzEwODEsNyBAQCBzdG10OgogCQkJfCBJbXBvcnRGb3JlaWduU2NoZW1hU3RtdAogCQkJfCBJ bmRleFN0bXQKIAkJCXwgSW5zZXJ0U3RtdAorCQkJfCBMZXRTdG10CiAJCQl8IExpc3RlblN0bXQK IAkJCXwgUmVmcmVzaE1hdFZpZXdTdG10CiAJCQl8IExvYWRTdG10CkBAIC0xMjc3MCw2ICsxMjc3 MSwzOCBAQCBvcHRfaG9sZDogLyogRU1QVFkgKi8JCQkJCQl7ICQkID0gMDsgfQogCQkJfCBXSVRI T1VUIEhPTEQJCQkJCXsgJCQgPSAwOyB9CiAJCTsKIAorLyoqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCisg KgorICoJCVFVRVJZOgorICoJCQkJTEVUIFNUQVRFTUVOVAorICoKKyAqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKi8KK0xldFN0bXQ6CUxFVCBDb2xJZCBvcHRfaW5kaXJlY3Rpb24gJz0nIGFfZXhwcgorCQkJ CXsKKwkJCQkJTGV0U3RtdAkgICAqbiA9IG1ha2VOb2RlKExldFN0bXQpOworCQkJCQlTZWxlY3RT dG10ICpzZWxlY3Q7CisJCQkJCVJlc1RhcmdldCAgKnJlczsKKworCQkJCQluLT50YXJnZXQgPSBs Y29ucyhtYWtlU3RyaW5nKCQyKSwKKwkJCQkJCQkJCSAgY2hlY2tfaW5kaXJlY3Rpb24oJDMsIHl5 c2Nhbm5lcikpOworCisJCQkJCXNlbGVjdCA9IG1ha2VOb2RlKFNlbGVjdFN0bXQpOworCQkJCQly ZXMgPSBtYWtlTm9kZShSZXNUYXJnZXQpOworCisJCQkJCS8qIGNyZWF0ZSB0YXJnZXQgbGlzdCBm b3IgaW1wbGljaXQgcXVlcnkgKi8KKwkJCQkJcmVzLT5uYW1lID0gTlVMTDsKKwkJCQkJcmVzLT5p bmRpcmVjdGlvbiA9IE5JTDsKKwkJCQkJcmVzLT52YWwgPSAoTm9kZSAqKSAkNTsKKwkJCQkJcmVz LT5sb2NhdGlvbiA9IEA1OworCisJCQkJCXNlbGVjdC0+dGFyZ2V0TGlzdCA9IGxpc3RfbWFrZTEo cmVzKTsKKwkJCQkJbi0+cXVlcnkgPSAoTm9kZSAqKSBzZWxlY3Q7CisKKwkJCQkJbi0+bG9jYXRp b24gPSBAMjsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJOworCiAvKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioKICAqCiAgKgkJUVVFUlk6CkBAIC0xNzg0MCw2ICsxNzg3Myw3IEBAIHVucmVz ZXJ2ZWRfa2V5d29yZDoKIAkJCXwgTEFSR0VfUAogCQkJfCBMQVNUX1AKIAkJCXwgTEVBS1BST09G CisJCQl8IExFVAogCQkJfCBMRVZFTAogCQkJfCBMSVNURU4KIAkJCXwgTE9BRApAQCAtMTg0NTEs NiArMTg0ODUsNyBAQCBiYXJlX2xhYmVsX2tleXdvcmQ6CiAJCQl8IExFQUtQUk9PRgogCQkJfCBM RUFTVAogCQkJfCBMRUZUCisJCQl8IExFVAogCQkJfCBMRVZFTAogCQkJfCBMSUtFCiAJCQl8IExJ U1RFTgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jIGIvc3JjL2Jh Y2tlbmQvcGFyc2VyL3BhcnNlX2FnZy5jCmluZGV4IDllNTY3ZjNjYzQuLjQ3MzdiMDRkMTcgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9hZ2cuYworKysgYi9zcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfYWdnLmMKQEAgLTU4MCw2ICs1ODAsMTEgQEAgY2hlY2tfYWdnbGV2ZWxz X2FuZF9jb25zdHJhaW50cyhQYXJzZVN0YXRlICpwc3RhdGUsIE5vZGUgKmV4cHIpCiAJCQllcnJr aW5kID0gdHJ1ZTsKIAkJCWJyZWFrOwogCisJCWNhc2UgRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQ6 CisJCWNhc2UgRVhQUl9LSU5EX0xFVF9UQVJHRVQ6CisJCQllcnJraW5kID0gdHJ1ZTsKKwkJCWJy ZWFrOworCiAJCQkvKgogCQkJICogVGhlcmUgaXMgaW50ZW50aW9uYWxseSBubyBkZWZhdWx0OiBj YXNlIGhlcmUsIHNvIHRoYXQgdGhlCiAJCQkgKiBjb21waWxlciB3aWxsIHdhcm4gaWYgd2UgYWRk IGEgbmV3IFBhcnNlRXhwcktpbmQgd2l0aG91dApAQCAtOTcwLDYgKzk3NSwxMCBAQCB0cmFuc2Zv cm1XaW5kb3dGdW5jQ2FsbChQYXJzZVN0YXRlICpwc3RhdGUsIFdpbmRvd0Z1bmMgKndmdW5jLAog CQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJLOgogCQkJZXJya2luZCA9IHRydWU7CiAJCQlicmVh azsKKwkJY2FzZSBFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVDoKKwkJY2FzZSBFWFBSX0tJTkRfTEVU X1RBUkdFVDoKKwkJCWVycmtpbmQgPSB0cnVlOworCQkJYnJlYWs7CiAKIAkJCS8qCiAJCQkgKiBU aGVyZSBpcyBpbnRlbnRpb25hbGx5IG5vIGRlZmF1bHQ6IGNhc2UgaGVyZSwgc28gdGhhdCB0aGUK ZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMgYi9zcmMvYmFja2Vu ZC9wYXJzZXIvcGFyc2VfZXhwci5jCmluZGV4IGQxZjY0ZjhmMGEuLjFlZDA3NTEyYzAgMTAwNjQ0 Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9leHByLmMKKysrIGIvc3JjL2JhY2tlbmQv cGFyc2VyL3BhcnNlX2V4cHIuYwpAQCAtMTcsNiArMTcsNyBAQAogCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ19hZ2dyZWdhdGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRl ICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGJjb21tYW5kcy5o IgogI2luY2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgpA QCAtMzMsMTEgKzM0LDEzIEBACiAjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3JlbGF0aW9uLmgiCiAj aW5jbHVkZSAicGFyc2VyL3BhcnNlX3RhcmdldC5oIgogI2luY2x1ZGUgInBhcnNlci9wYXJzZV90 eXBlLmgiCisjaW5jbHVkZSAic3RvcmFnZS9sbWdyLmgiCiAjaW5jbHVkZSAidXRpbHMvYnVpbHRp bnMuaCIKICNpbmNsdWRlICJ1dGlscy9kYXRlLmgiCiAjaW5jbHVkZSAidXRpbHMvZm1ncm9pZHMu aCIKICNpbmNsdWRlICJ1dGlscy9sc3lzY2FjaGUuaCIKICNpbmNsdWRlICJ1dGlscy90aW1lc3Rh bXAuaCIKKyNpbmNsdWRlICJ1dGlscy90eXBjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxzL3htbC5o IgogCiAvKiBHVUMgcGFyYW1ldGVycyAqLwpAQCAtMTA2LDYgKzEwOSw5IEBAIHN0YXRpYyBFeHBy ICptYWtlX2Rpc3RpbmN0X29wKFBhcnNlU3RhdGUgKnBzdGF0ZSwgTGlzdCAqb3BuYW1lLAogCQkJ CQkJCSAgTm9kZSAqbHRyZWUsIE5vZGUgKnJ0cmVlLCBpbnQgbG9jYXRpb24pOwogc3RhdGljIE5v ZGUgKm1ha2VfbnVsbHRlc3RfZnJvbV9kaXN0aW5jdChQYXJzZVN0YXRlICpwc3RhdGUsCiAJCQkJ CQkJCQkJIEFfRXhwciAqZGlzdGluY3RhLCBOb2RlICphcmcpOworc3RhdGljIE5vZGUgKm1ha2VQ YXJhbVNlc3Npb25WYXJpYWJsZShQYXJzZVN0YXRlICpwc3RhdGUsCisJCQkJCQkJCQkgIE9pZCB2 YXJpZCwgT2lkIHR5cGlkLCBpbnQzMiB0eXBtb2QsIE9pZCBjb2xsaWQsCisJCQkJCQkJCQkgIGNo YXIgKmF0dHJuYW1lLCBpbnQgbG9jYXRpb24pOwogCiAKIC8qCkBAIC00OTksNiArNTA1LDg5IEBA IHRyYW5zZm9ybUluZGlyZWN0aW9uKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQV9JbmRpcmVjdGlvbiAq aW5kKQogCXJldHVybiByZXN1bHQ7CiB9CiAKKy8qCisgKiBSZXR1cm5zIHRydWUgaWYgdGhlIGdp dmVuIGV4cHJlc3Npb24ga2luZCBpcyB2YWxpZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZXMuCisgKiBT ZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgdXNlZCBldmVyeXdoZXJlIHdoZXJlIGV4dGVybmFsIHBh cmFtZXRlcnMgY2FuIGJlCisgKiB1c2VkLiAgU2Vzc2lvbiB2YXJpYWJsZXMgYXJlIG5vdCBhbGxv d2VkIGluIERETCBjb21tYW5kcyBvciBpbiBjb25zdHJhaW50cy4KKyAqCisgKiBBbiBpZGVudGlm aWVyIGNhbiBiZSBwYXJzZWQgYXMgYSBzZXNzaW9uIHZhcmlhYmxlIG9ubHkgZm9yIGV4cHJlc3Np b24ga2luZHMKKyAqIHdoZXJlIHNlc3Npb24gdmFyaWFibGVzIGFyZSBhbGxvd2VkLiAgVGhpcyBp cyB0aGUgcHJpbWFyeSB1c2FnZSBvZiB0aGlzCisgKiBmdW5jdGlvbi4KKyAqCisgKiBUaGUgc2Vj b25kIHVzYWdlIG9mIHRoaXMgZnVuY3Rpb24gaXMgdG8gZGVjaWRlIHdoZXRoZXIgYSAiY29sdW1u IGRvZXMgbm90CisgKiBleGlzdCIgb3IgYSAiY29sdW1uIG9yIHZhcmlhYmxlIGRvZXMgbm90IGV4 aXN0IiBlcnJvciBtZXNzYWdlIHNob3VsZCBiZQorICogcHJpbnRlZC4gIFdoZW4gd2UgYXJlIGlu IGFuIGV4cHJlc3Npb24gd2hlcmUgc2Vzc2lvbiB2YXJpYWJsZXMgY2Fubm90IGJlCisgKiB1c2Vk LCB3ZSByYWlzZSB0aGUgZmlyc3QgZm9ybSBvZiBlcnJvciBtZXNzYWdlLgorICovCitzdGF0aWMg Ym9vbAorZXhwcl9raW5kX2FsbG93c19zZXNzaW9uX3ZhcmlhYmxlcyhQYXJzZUV4cHJLaW5kIHBf ZXhwcl9raW5kKQoreworCWJvb2wJCXJlc3VsdCA9IGZhbHNlOworCisJc3dpdGNoIChwX2V4cHJf a2luZCkKKwl7CisJCWNhc2UgRVhQUl9LSU5EX05PTkU6CisJCQlBc3NlcnQoZmFsc2UpOwkJLyog Y2FuJ3QgaGFwcGVuICovCisJCQlyZXR1cm4gZmFsc2U7CisKKwkJLyogc2Vzc2lvbiB2YXJpYWJs ZXMgYWxsb3dlZCAqLworCQljYXNlIEVYUFJfS0lORF9PVEhFUjoKKwkJY2FzZSBFWFBSX0tJTkRf Sk9JTl9PTjoKKwkJY2FzZSBFWFBSX0tJTkRfRlJPTV9TVUJTRUxFQ1Q6CisJCWNhc2UgRVhQUl9L SU5EX0ZST01fRlVOQ1RJT046CisJCWNhc2UgRVhQUl9LSU5EX1dIRVJFOgorCQljYXNlIEVYUFJf S0lORF9IQVZJTkc6CisJCWNhc2UgRVhQUl9LSU5EX0ZJTFRFUjoKKwkJY2FzZSBFWFBSX0tJTkRf V0lORE9XX1BBUlRJVElPTjoKKwkJY2FzZSBFWFBSX0tJTkRfV0lORE9XX09SREVSOgorCQljYXNl IEVYUFJfS0lORF9XSU5ET1dfRlJBTUVfUkFOR0U6CisJCWNhc2UgRVhQUl9LSU5EX1dJTkRPV19G UkFNRV9ST1dTOgorCQljYXNlIEVYUFJfS0lORF9XSU5ET1dfRlJBTUVfR1JPVVBTOgorCQljYXNl IEVYUFJfS0lORF9TRUxFQ1RfVEFSR0VUOgorCQljYXNlIEVYUFJfS0lORF9JTlNFUlRfVEFSR0VU OgorCQljYXNlIEVYUFJfS0lORF9VUERBVEVfU09VUkNFOgorCQljYXNlIEVYUFJfS0lORF9VUERB VEVfVEFSR0VUOgorCQljYXNlIEVYUFJfS0lORF9NRVJHRV9XSEVOOgorCQljYXNlIEVYUFJfS0lO RF9NRVJHRV9SRVRVUk5JTkc6CisJCWNhc2UgRVhQUl9LSU5EX0dST1VQX0JZOgorCQljYXNlIEVY UFJfS0lORF9PUkRFUl9CWToKKwkJY2FzZSBFWFBSX0tJTkRfRElTVElOQ1RfT046CisJCWNhc2Ug RVhQUl9LSU5EX0xJTUlUOgorCQljYXNlIEVYUFJfS0lORF9PRkZTRVQ6CisJCWNhc2UgRVhQUl9L SU5EX1JFVFVSTklORzoKKwkJY2FzZSBFWFBSX0tJTkRfVkFMVUVTOgorCQljYXNlIEVYUFJfS0lO RF9WQUxVRVNfU0lOR0xFOgorCQljYXNlIEVYUFJfS0lORF9BTFRFUl9DT0xfVFJBTlNGT1JNOgor CQljYXNlIEVYUFJfS0lORF9FWEVDVVRFX1BBUkFNRVRFUjoKKwkJY2FzZSBFWFBSX0tJTkRfUE9M SUNZOgorCQljYXNlIEVYUFJfS0lORF9DQUxMX0FSR1VNRU5UOgorCQljYXNlIEVYUFJfS0lORF9D T1BZX1dIRVJFOgorCQljYXNlIEVYUFJfS0lORF9MRVRfVEFSR0VUOgorCQkJcmVzdWx0ID0gdHJ1 ZTsKKwkJCWJyZWFrOworCisJCS8qIHNlc3Npb24gdmFyaWFibGVzIG5vdCBhbGxvd2VkICovCisJ CWNhc2UgRVhQUl9LSU5EX0NIRUNLX0NPTlNUUkFJTlQ6CisJCWNhc2UgRVhQUl9LSU5EX0RPTUFJ Tl9DSEVDSzoKKwkJY2FzZSBFWFBSX0tJTkRfQ09MVU1OX0RFRkFVTFQ6CisJCWNhc2UgRVhQUl9L SU5EX0ZVTkNUSU9OX0RFRkFVTFQ6CisJCWNhc2UgRVhQUl9LSU5EX0lOREVYX0VYUFJFU1NJT046 CisJCWNhc2UgRVhQUl9LSU5EX0lOREVYX1BSRURJQ0FURToKKwkJY2FzZSBFWFBSX0tJTkRfU1RB VFNfRVhQUkVTU0lPTjoKKwkJY2FzZSBFWFBSX0tJTkRfVFJJR0dFUl9XSEVOOgorCQljYXNlIEVY UFJfS0lORF9QQVJUSVRJT05fQk9VTkQ6CisJCWNhc2UgRVhQUl9LSU5EX1BBUlRJVElPTl9FWFBS RVNTSU9OOgorCQljYXNlIEVYUFJfS0lORF9HRU5FUkFURURfQ09MVU1OOgorCQljYXNlIEVYUFJf S0lORF9KT0lOX1VTSU5HOgorCQljYXNlIEVYUFJfS0lORF9DWUNMRV9NQVJLOgorCQljYXNlIEVY UFJfS0lORF9BU1NJR05fVEFSR0VUOgorCQkJcmVzdWx0ID0gZmFsc2U7CisJCQlicmVhazsKKwl9 CisKKwlyZXR1cm4gcmVzdWx0OworfQorCiAvKgogICogVHJhbnNmb3JtIGEgQ29sdW1uUmVmLgog ICoKQEAgLTU3NSw2ICs2NjQsOCBAQCB0cmFuc2Zvcm1Db2x1bW5SZWYoUGFyc2VTdGF0ZSAqcHN0 YXRlLCBDb2x1bW5SZWYgKmNyZWYpCiAJCWNhc2UgRVhQUl9LSU5EX0NPUFlfV0hFUkU6CiAJCWNh c2UgRVhQUl9LSU5EX0dFTkVSQVRFRF9DT0xVTU46CiAJCWNhc2UgRVhQUl9LSU5EX0NZQ0xFX01B Uks6CisJCWNhc2UgRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQ6CisJCWNhc2UgRVhQUl9LSU5EX0xF VF9UQVJHRVQ6CiAJCQkvKiBva2F5ICovCiAJCQlicmVhazsKIApAQCAtODQ3LDggKzkzOCw2MSBA QCB0cmFuc2Zvcm1Db2x1bW5SZWYoUGFyc2VTdGF0ZSAqcHN0YXRlLCBDb2x1bW5SZWYgKmNyZWYp CiAJfQogCiAJLyoKLQkgKiBUaHJvdyBlcnJvciBpZiBubyB0cmFuc2xhdGlvbiBmb3VuZC4KKwkg KiBUaGVyZSBhcmUgY29udGV4dHMgd2hlcmUgc2Vzc2lvbiB2YXJpYWJsZXMgYXJlIG5vdCBhbGxv d2VkLiAgV2UgZG9uJ3QKKwkgKiBuZWVkIHRvIGlkZW50aWZ5IHNlc3Npb24gdmFyaWFibGVzIGlu IHN1Y2ggYSBjb250ZXh0LCBidXQgaWRlbnRpZnlpbmcKKwkgKiB0aGVtIGFsbG93cyB1cyB0byBy YWlzZSBtZWFuaW5nZnVsIGVycm9yIG1lc3NhZ2VzIGxpa2UgInlvdSBjYW5ub3QgdXNlCisJICog c2Vzc2lvbiB2YXJpYWJsZXMgaGVyZSIuCiAJICovCisJaWYgKGV4cHJfa2luZF9hbGxvd3Nfc2Vz c2lvbl92YXJpYWJsZXMocHN0YXRlLT5wX2V4cHJfa2luZCkpCisJeworCQlPaWQJCQl2YXJpZCA9 IEludmFsaWRPaWQ7CisJCWNoYXIJICAgKmF0dHJuYW1lID0gTlVMTDsKKwkJYm9vbAkJbm90X3Vu aXF1ZTsKKworCQkvKiAtLS0tLQorCQkgKiBTZXNzaW9uIHZhcmlhYmxlcyBhcmUgc2hhZG93ZWQg YnkgY29sdW1ucywgcm91dGluZSB2YXJpYWJsZXMgb3IKKwkJICogcm91dGluZSBhcmd1bWVudHMu ICBXZSBjZXJ0YWlubHkgZG9uJ3Qgd2FudCB0byB1c2UgYSBzZXNzaW9uIHZhcmlhYmxlCisJCSAq IHdoZW4gaXQgaXMgZXhhY3RseSBzaGFkb3dlZCwgYnV0IGEgUlRFIGxpa2UgdGhpcyBpcyBjb25j ZWl2YWJsZToKKwkJICoKKwkJICogQ1JFQVRFIFRZUEUgdCBBUyAoYyBpbnQpOworCQkgKiBDUkVB VEUgVkFSSUFCTEUgZm9vIEFTIHQ7CisJCSAqIENSRUFURSBUQUJMRSBmb28oYSBpbnQsIGIgaW50 KTsKKwkJICoKKwkJICogU0VMRUNUIGZvby5hLCBmb28uYiwgZm9vLmMgRlJPTSBmb287CisJCSAq CisJCSAqIEhvd2V2ZXIsIHRoYXQgaXMgdmVyeSBjb25mdXNpbmcsIHNvIHdlIGRpc2FsbG93IGl0 LiAgV2UgZG9uJ3QgdHJ5IHRvCisJCSAqIGlkZW50aWZ5IGEgdmFyaWFibGUgaWYgd2Uga25vdyB0 aGF0IGl0IHdvdWxkIGJlIHNoYWRvd2VkLgorCQkgKiAtLS0tLQorCQkgKi8KKwkJaWYgKCFub2Rl ICYmICEocmVsbmFtZSAmJiBjcmVyciA9PSBDUkVSUl9OT19DT0xVTU4pKQorCQl7CisJCQkvKiB0 YWtlcyBhbiBBY2Nlc3NTaGFyZUxvY2sgb24gdGhlIHNlc3Npb24gdmFyaWFibGUgKi8KKwkJCXZh cmlkID0gSWRlbnRpZnlWYXJpYWJsZShjcmVmLT5maWVsZHMsICZhdHRybmFtZSwgJm5vdF91bmlx dWUsIGZhbHNlKTsKKworCQkJaWYgKE9pZElzVmFsaWQodmFyaWQpKQorCQkJeworCQkJCU9pZAkJ CXR5cGlkOworCQkJCWludDMyCQl0eXBtb2Q7CisJCQkJT2lkCQkJY29sbGlkOworCisJCQkJaWYg KG5vdF91bmlxdWUpCisJCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkJKGVycmNvZGUoRVJSQ09E RV9BTUJJR1VPVVNfUEFSQU1FVEVSKSwKKwkJCQkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxl IHJlZmVyZW5jZSBcIiVzXCIgaXMgYW1iaWd1b3VzIiwKKwkJCQkJCQkJCU5hbWVMaXN0VG9TdHJp bmcoY3JlZi0+ZmllbGRzKSksCisJCQkJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGNy ZWYtPmxvY2F0aW9uKSkpOworCisJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfdHlwZV90eXBtb2Rf Y29sbGlkKHZhcmlkLCAmdHlwaWQsICZ0eXBtb2QsCisJCQkJCQkJCQkJCQkJCSZjb2xsaWQpOwor CisJCQkJbm9kZSA9IG1ha2VQYXJhbVNlc3Npb25WYXJpYWJsZShwc3RhdGUsCisJCQkJCQkJCQkJ CQl2YXJpZCwgdHlwaWQsIHR5cG1vZCwgY29sbGlkLAorCQkJCQkJCQkJCQkJYXR0cm5hbWUsIGNy ZWYtPmxvY2F0aW9uKTsKKwkJCX0KKwkJfQorCX0KKworCS8qIHRocm93IGFuIGVycm9yIGlmIG5v IHRyYW5zbGF0aW9uIHdhcyBmb3VuZCAqLwogCWlmIChub2RlID09IE5VTEwpCiAJewogCQlzd2l0 Y2ggKGNyZXJyKQpAQCAtODgwLDYgKzEwMjQsNzUgQEAgdHJhbnNmb3JtQ29sdW1uUmVmKFBhcnNl U3RhdGUgKnBzdGF0ZSwgQ29sdW1uUmVmICpjcmVmKQogCXJldHVybiBub2RlOwogfQogCisvKgor ICogR2VuZXJhdGUgcGFyYW0gdmFyaWFibGUgZm9yIHJlZmVyZW5jZSB0byBzZXNzaW9uIHZhcmlh YmxlCisgKi8KK3N0YXRpYyBOb2RlICoKK21ha2VQYXJhbVNlc3Npb25WYXJpYWJsZShQYXJzZVN0 YXRlICpwc3RhdGUsCisJCQkJCQkgT2lkIHZhcmlkLCBPaWQgdHlwaWQsIGludDMyIHR5cG1vZCwg T2lkIGNvbGxpZCwKKwkJCQkJCSBjaGFyICphdHRybmFtZSwgaW50IGxvY2F0aW9uKQoreworCVBh cmFtCSAgICpwYXJhbTsKKworCXBhcmFtID0gbWFrZU5vZGUoUGFyYW0pOworCisJcGFyYW0tPnBh cmFta2luZCA9IFBBUkFNX1ZBUklBQkxFOworCXBhcmFtLT5wYXJhbXZhcmlkID0gdmFyaWQ7CisJ cGFyYW0tPnBhcmFtdHlwZSA9IHR5cGlkOworCXBhcmFtLT5wYXJhbXR5cG1vZCA9IHR5cG1vZDsK KwlwYXJhbS0+cGFyYW1jb2xsaWQgPSBjb2xsaWQ7CisKKwlwc3RhdGUtPnBfaGFzU2Vzc2lvblZh cmlhYmxlcyA9IHRydWU7CisKKwlpZiAoYXR0cm5hbWUgIT0gTlVMTCkKKwl7CisJCVR1cGxlRGVz Ywl0dXBkZXNjOworCQlpbnQJCQlpOworCisJCXR1cGRlc2MgPSBsb29rdXBfcm93dHlwZV90dXBk ZXNjX25vZXJyb3IodHlwaWQsIHR5cG1vZCwgdHJ1ZSk7CisJCWlmICghdHVwZGVzYykKKwkJCWVy ZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfV1JPTkdfT0JKRUNUX1RZUEUpLAor CQkJCQkgZXJybXNnKCJ2YXJpYWJsZSBcIiVzLiVzXCIgaXMgb2YgdHlwZSBcIiVzXCIsIHdoaWNo IGlzIG5vdCBhIGNvbXBvc2l0ZSB0eXBlIiwKKwkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0 X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJZ2V0X3Nlc3Npb25f dmFyaWFibGVfbmFtZSh2YXJpZCksCisJCQkJCQkJZm9ybWF0X3R5cGVfYmUodHlwaWQpKSwKKwkJ CQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIGxvY2F0aW9uKSkpOworCisJCWZvciAoaSA9 IDA7IGkgPCB0dXBkZXNjLT5uYXR0czsgaSsrKQorCQl7CisJCQlGb3JtX3BnX2F0dHJpYnV0ZSBh dHQgPSBUdXBsZURlc2NBdHRyKHR1cGRlc2MsIGkpOworCisJCQlpZiAoc3RyY21wKGF0dHJuYW1l LCBOYW1lU3RyKGF0dC0+YXR0bmFtZSkpID09IDAgJiYKKwkJCQkhYXR0LT5hdHRpc2Ryb3BwZWQp CisJCQl7CisJCQkJLyogc3VjY2Vzcywgc28gZ2VuZXJhdGUgYSBGaWVsZFNlbGVjdCBleHByZXNz aW9uICovCisJCQkJRmllbGRTZWxlY3QgKmZzZWxlY3QgPSBtYWtlTm9kZShGaWVsZFNlbGVjdCk7 CisKKwkJCQlmc2VsZWN0LT5hcmcgPSAoRXhwciAqKSBwYXJhbTsKKwkJCQlmc2VsZWN0LT5maWVs ZG51bSA9IGkgKyAxOworCQkJCWZzZWxlY3QtPnJlc3VsdHR5cGUgPSBhdHQtPmF0dHR5cGlkOwor CQkJCWZzZWxlY3QtPnJlc3VsdHR5cG1vZCA9IGF0dC0+YXR0dHlwbW9kOworCQkJCS8qIHNhdmUg YXR0cmlidXRlJ3MgY29sbGF0aW9uIGZvciBwYXJzZV9jb2xsYXRlLmMgKi8KKwkJCQlmc2VsZWN0 LT5yZXN1bHRjb2xsaWQgPSBhdHQtPmF0dGNvbGxhdGlvbjsKKworCQkJCVJlbGVhc2VUdXBsZURl c2ModHVwZGVzYyk7CisJCQkJcmV0dXJuIChOb2RlICopIGZzZWxlY3Q7CisJCQl9CisJCX0KKwor CQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfVU5ERUZJTkVEX0NPTFVNTiks CisJCQkJIGVycm1zZygiY291bGQgbm90IGlkZW50aWZ5IGNvbHVtbiBcIiVzXCIgaW4gdmFyaWFi bGUgXCIlcy4lc1wiIiwKKwkJCQkJCWF0dHJuYW1lLAorCQkJCQkJZ2V0X25hbWVzcGFjZV9uYW1l KGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZSh2YXJpZCkpLAorCQkJCQkJZ2V0X3Nlc3Np b25fdmFyaWFibGVfbmFtZSh2YXJpZCkpLAorCQkJCSBwYXJzZXJfZXJycG9zaXRpb24ocHN0YXRl LCBsb2NhdGlvbikpKTsKKwl9CisKKwlyZXR1cm4gKE5vZGUgKikgcGFyYW07Cit9CisKIHN0YXRp YyBOb2RlICoKIHRyYW5zZm9ybVBhcmFtUmVmKFBhcnNlU3RhdGUgKnBzdGF0ZSwgUGFyYW1SZWYg KnByZWYpCiB7CkBAIC0xODE1LDYgKzIwMjgsNyBAQCB0cmFuc2Zvcm1TdWJMaW5rKFBhcnNlU3Rh dGUgKnBzdGF0ZSwgU3ViTGluayAqc3VibGluaykKIAkJY2FzZSBFWFBSX0tJTkRfVkFMVUVTOgog CQljYXNlIEVYUFJfS0lORF9WQUxVRVNfU0lOR0xFOgogCQljYXNlIEVYUFJfS0lORF9DWUNMRV9N QVJLOgorCQljYXNlIEVYUFJfS0lORF9MRVRfVEFSR0VUOgogCQkJLyogb2theSAqLwogCQkJYnJl YWs7CiAJCWNhc2UgRVhQUl9LSU5EX0NIRUNLX0NPTlNUUkFJTlQ6CkBAIC0xODU4LDYgKzIwNzIs OSBAQCB0cmFuc2Zvcm1TdWJMaW5rKFBhcnNlU3RhdGUgKnBzdGF0ZSwgU3ViTGluayAqc3VibGlu aykKIAkJY2FzZSBFWFBSX0tJTkRfR0VORVJBVEVEX0NPTFVNTjoKIAkJCWVyciA9IF8oImNhbm5v dCB1c2Ugc3VicXVlcnkgaW4gY29sdW1uIGdlbmVyYXRpb24gZXhwcmVzc2lvbiIpOwogCQkJYnJl YWs7CisJCWNhc2UgRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQ6CisJCQllcnIgPSBfKCJjYW5ub3Qg dXNlIHN1YnF1ZXJ5IGFzIHRhcmdldCBvZiBhc3NpZ24gc3RhdGVtZW50Iik7CisJCQlicmVhazsK IAogCQkJLyoKIAkJCSAqIFRoZXJlIGlzIGludGVudGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBo ZXJlLCBzbyB0aGF0IHRoZQpAQCAtMzE5Nyw2ICszNDE0LDEwIEBAIFBhcnNlRXhwcktpbmROYW1l KFBhcnNlRXhwcktpbmQgZXhwcktpbmQpCiAJCQlyZXR1cm4gIkdFTkVSQVRFRCBBUyI7CiAJCWNh c2UgRVhQUl9LSU5EX0NZQ0xFX01BUks6CiAJCQlyZXR1cm4gIkNZQ0xFIjsKKwkJY2FzZSBFWFBS X0tJTkRfQVNTSUdOX1RBUkdFVDoKKwkJCXJldHVybiAiQVNTSUdOIjsKKwkJY2FzZSBFWFBSX0tJ TkRfTEVUX1RBUkdFVDoKKwkJCXJldHVybiAiTEVUIjsKIAogCQkJLyoKIAkJCSAqIFRoZXJlIGlz IGludGVudGlvbmFsbHkgbm8gZGVmYXVsdDogY2FzZSBoZXJlLCBzbyB0aGF0IHRoZQpkaWZmIC0t Z2l0IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9wYXJzZV9mdW5jLmMKaW5kZXggNTgzYmJiZjIzMi4uZGMyNWY2ZGNkMCAxMDA2NDQKLS0tIGEv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX2Z1bmMuYworKysgYi9zcmMvYmFja2VuZC9wYXJzZXIv cGFyc2VfZnVuYy5jCkBAIC0yNjU2LDYgKzI2NTYsOCBAQCBjaGVja19zcmZfY2FsbF9wbGFjZW1l bnQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBOb2RlICpsYXN0X3NyZiwgaW50IGxvY2F0aW9uKQogCQkJ ZXJyID0gXygic2V0LXJldHVybmluZyBmdW5jdGlvbnMgYXJlIG5vdCBhbGxvd2VkIGluIGNvbHVt biBnZW5lcmF0aW9uIGV4cHJlc3Npb25zIik7CiAJCQlicmVhazsKIAkJY2FzZSBFWFBSX0tJTkRf Q1lDTEVfTUFSSzoKKwkJY2FzZSBFWFBSX0tJTkRfQVNTSUdOX1RBUkdFVDoKKwkJY2FzZSBFWFBS X0tJTkRfTEVUX1RBUkdFVDoKIAkJCWVycmtpbmQgPSB0cnVlOwogCQkJYnJlYWs7CiAKZGlmZiAt LWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV9tZXJnZS5jIGIvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX21lcmdlLmMKaW5kZXggZjkyYmVmOTlkNS4uYWNkZjVjZDEwOCAxMDA2NDQKLS0t IGEvc3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX21lcmdlLmMKKysrIGIvc3JjL2JhY2tlbmQvcGFy c2VyL3BhcnNlX21lcmdlLmMKQEAgLTQwNSw2ICs0MDUsNyBAQCB0cmFuc2Zvcm1NZXJnZVN0bXQo UGFyc2VTdGF0ZSAqcHN0YXRlLCBNZXJnZVN0bXQgKnN0bXQpCiAKIAlxcnktPmhhc1RhcmdldFNS RnMgPSBmYWxzZTsKIAlxcnktPmhhc1N1YkxpbmtzID0gcHN0YXRlLT5wX2hhc1N1YkxpbmtzOwor CXFyeS0+aGFzU2Vzc2lvblZhcmlhYmxlcyA9IHBzdGF0ZS0+cF9oYXNTZXNzaW9uVmFyaWFibGVz OwogCiAJYXNzaWduX3F1ZXJ5X2NvbGxhdGlvbnMocHN0YXRlLCBxcnkpOwogCmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC90Y29wL2Rlc3QuYyBiL3NyYy9iYWNrZW5kL3Rjb3AvZGVzdC5jCmluZGV4 IGI0NGY5MDcyMjguLjQ0NmM3MTk1M2IgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3Rjb3AvZGVz dC5jCisrKyBiL3NyYy9iYWNrZW5kL3Rjb3AvZGVzdC5jCkBAIC0zOCw2ICszOCw3IEBACiAjaW5j bHVkZSAiZXhlY3V0b3IvZnVuY3Rpb25zLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3IvdHF1ZXVlLmgi CiAjaW5jbHVkZSAiZXhlY3V0b3IvdHN0b3JlUmVjZWl2ZXIuaCIKKyNpbmNsdWRlICJleGVjdXRv ci9zdmFyaWFibGVSZWNlaXZlci5oIgogI2luY2x1ZGUgImxpYnBxL2xpYnBxLmgiCiAjaW5jbHVk ZSAibGlicHEvcHFmb3JtYXQuaCIKIApAQCAtMTU1LDYgKzE1Niw5IEBAIENyZWF0ZURlc3RSZWNl aXZlcihDb21tYW5kRGVzdCBkZXN0KQogCiAJCWNhc2UgRGVzdEV4cGxhaW5TZXJpYWxpemU6CiAJ CQlyZXR1cm4gQ3JlYXRlRXhwbGFpblNlcmlhbGl6ZURlc3RSZWNlaXZlcihOVUxMKTsKKworCQlj YXNlIERlc3RWYXJpYWJsZToKKwkJCXJldHVybiBDcmVhdGVWYXJpYWJsZURlc3RSZWNlaXZlcihJ bnZhbGlkT2lkKTsKIAl9CiAKIAkvKiBzaG91bGQgbmV2ZXIgZ2V0IGhlcmUgKi8KQEAgLTE5MSw2 ICsxOTUsNyBAQCBFbmRDb21tYW5kKGNvbnN0IFF1ZXJ5Q29tcGxldGlvbiAqcWMsIENvbW1hbmRE ZXN0IGRlc3QsIGJvb2wgZm9yY2VfdW5kZWNvcmF0ZWRfbwogCQljYXNlIERlc3RUcmFuc2llbnRS ZWw6CiAJCWNhc2UgRGVzdFR1cGxlUXVldWU6CiAJCWNhc2UgRGVzdEV4cGxhaW5TZXJpYWxpemU6 CisJCWNhc2UgRGVzdFZhcmlhYmxlOgogCQkJYnJlYWs7CiAJfQogfQpAQCAtMjM3LDYgKzI0Miw3 IEBAIE51bGxDb21tYW5kKENvbW1hbmREZXN0IGRlc3QpCiAJCWNhc2UgRGVzdFRyYW5zaWVudFJl bDoKIAkJY2FzZSBEZXN0VHVwbGVRdWV1ZToKIAkJY2FzZSBEZXN0RXhwbGFpblNlcmlhbGl6ZToK KwkJY2FzZSBEZXN0VmFyaWFibGU6CiAJCQlicmVhazsKIAl9CiB9CkBAIC0yODEsNiArMjg3LDcg QEAgUmVhZHlGb3JRdWVyeShDb21tYW5kRGVzdCBkZXN0KQogCQljYXNlIERlc3RUcmFuc2llbnRS ZWw6CiAJCWNhc2UgRGVzdFR1cGxlUXVldWU6CiAJCWNhc2UgRGVzdEV4cGxhaW5TZXJpYWxpemU6 CisJCWNhc2UgRGVzdFZhcmlhYmxlOgogCQkJYnJlYWs7CiAJfQogfQpkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwppbmRl eCA5OWE1MTg3N2QzLi43YTUwOGEzNjQ0IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC90Y29wL3V0 aWxpdHkuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwpAQCAtNDksNiArNDksNyBA QAogI2luY2x1ZGUgImNvbW1hbmRzL3NjaGVtYWNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy9z ZWNsYWJlbC5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3NlcXVlbmNlLmgiCisjaW5jbHVkZSAiY29t bWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3N1YnNjcmlwdGlv bmNtZHMuaCIKICNpbmNsdWRlICJjb21tYW5kcy90YWJsZWNtZHMuaCIKICNpbmNsdWRlICJjb21t YW5kcy90YWJsZXNwYWNlLmgiCkBAIC0yMzUsNiArMjM2LDcgQEAgQ2xhc3NpZnlVdGlsaXR5Q29t bWFuZEFzUmVhZE9ubHkoTm9kZSAqcGFyc2V0cmVlKQogCiAJCWNhc2UgVF9DYWxsU3RtdDoKIAkJ Y2FzZSBUX0RvU3RtdDoKKwkJY2FzZSBUX0xldFN0bXQ6CiAJCQl7CiAJCQkJLyoKIAkJCQkgKiBD b21tYW5kcyBpbnNpZGUgdGhlIERPIGJsb2NrIG9yIHRoZSBjYWxsZWQgcHJvY2VkdXJlIG1pZ2h0 CkBAIC0xMDY3LDYgKzEwNjksMTEgQEAgc3RhbmRhcmRfUHJvY2Vzc1V0aWxpdHkoUGxhbm5lZFN0 bXQgKnBzdG10LAogCQkJCWJyZWFrOwogCQkJfQogCisJCWNhc2UgVF9MZXRTdG10OgorCQkJRXhl Y3V0ZUxldFN0bXQocHN0YXRlLCAoTGV0U3RtdCAqKSBwYXJzZXRyZWUsIHBhcmFtcywKKwkJCQkJ CSAgIHF1ZXJ5RW52LCBxYyk7CisJCQlicmVhazsKKwogCQlkZWZhdWx0OgogCQkJLyogQWxsIG90 aGVyIHN0YXRlbWVudCB0eXBlcyBoYXZlIGV2ZW50IHRyaWdnZXIgc3VwcG9ydCAqLwogCQkJUHJv Y2Vzc1V0aWxpdHlTbG93KHBzdGF0ZSwgcHN0bXQsIHF1ZXJ5U3RyaW5nLApAQCAtMjIwNiw2ICsy MjEzLDEwIEBAIFV0aWxpdHlDb250YWluc1F1ZXJ5KE5vZGUgKnBhcnNldHJlZSkKIAkJCQlyZXR1 cm4gVXRpbGl0eUNvbnRhaW5zUXVlcnkocXJ5LT51dGlsaXR5U3RtdCk7CiAJCQlyZXR1cm4gcXJ5 OwogCisJCWNhc2UgVF9MZXRTdG10OgorCQkJcXJ5ID0gY2FzdE5vZGUoUXVlcnksICgoTGV0U3Rt dCAqKSBwYXJzZXRyZWUpLT5xdWVyeSk7CisJCQlyZXR1cm4gcXJ5OworCiAJCWRlZmF1bHQ6CiAJ CQlyZXR1cm4gTlVMTDsKIAl9CkBAIC0yNDA0LDYgKzI0MTUsMTAgQEAgQ3JlYXRlQ29tbWFuZFRh ZyhOb2RlICpwYXJzZXRyZWUpCiAJCQl0YWcgPSBDTURUQUdfU0VMRUNUOwogCQkJYnJlYWs7CiAK KwkJY2FzZSBUX0xldFN0bXQ6CisJCQl0YWcgPSBDTURUQUdfTEVUOworCQkJYnJlYWs7CisKIAkJ CS8qIHV0aWxpdHkgc3RhdGVtZW50cyAtLS0gc2FtZSB3aGV0aGVyIHJhdyBvciBjb29rZWQgKi8K IAkJY2FzZSBUX1RyYW5zYWN0aW9uU3RtdDoKIAkJCXsKQEAgLTMyODksNiArMzMwNCw3IEBAIEdl dENvbW1hbmRMb2dMZXZlbChOb2RlICpwYXJzZXRyZWUpCiAJCQlicmVhazsKIAogCQljYXNlIFRf UExBc3NpZ25TdG10OgorCQljYXNlIFRfTGV0U3RtdDoKIAkJCWxldiA9IExPR1NUTVRfQUxMOwog CQkJYnJlYWs7CiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMu YyBiL3NyYy9iYWNrZW5kL3V0aWxzL2FkdC9ydWxldXRpbHMuYwppbmRleCAyMDg5YjUyZDU3Li44 ZDNkM2M5Yzc1IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGlscy9hZHQvcnVsZXV0aWxzLmMK KysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L3J1bGV1dGlscy5jCkBAIC0zNyw2ICszNyw3IEBA CiAjaW5jbHVkZSAiY2F0YWxvZy9wZ19zdGF0aXN0aWNfZXh0LmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ190cmlnZ2VyLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAi Y2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJlbS5oIgogI2lu Y2x1ZGUgImNvbW1hbmRzL3RhYmxlc3BhY2UuaCIKICNpbmNsdWRlICJjb21tb24va2V5d29yZHMu aCIKQEAgLTUyOCw2ICs1MjksNyBAQCBzdGF0aWMgY2hhciAqZ2VuZXJhdGVfZnVuY3Rpb25fbmFt ZShPaWQgZnVuY2lkLCBpbnQgbmFyZ3MsCiBzdGF0aWMgY2hhciAqZ2VuZXJhdGVfb3BlcmF0b3Jf bmFtZShPaWQgb3BlcmlkLCBPaWQgYXJnMSwgT2lkIGFyZzIpOwogc3RhdGljIHZvaWQgYWRkX2Nh c3RfdG8oU3RyaW5nSW5mbyBidWYsIE9pZCB0eXBpZCk7CiBzdGF0aWMgY2hhciAqZ2VuZXJhdGVf cXVhbGlmaWVkX3R5cGVfbmFtZShPaWQgdHlwaWQpOworc3RhdGljIGNoYXIgKmdlbmVyYXRlX3Nl c3Npb25fdmFyaWFibGVfbmFtZShPaWQgdmFyaWQpOwogc3RhdGljIHRleHQgKnN0cmluZ190b190 ZXh0KGNoYXIgKnN0cik7CiBzdGF0aWMgY2hhciAqZmxhdHRlbl9yZWxvcHRpb25zKE9pZCByZWxp ZCk7CiBzdGF0aWMgdm9pZCBnZXRfcmVsb3B0aW9ucyhTdHJpbmdJbmZvIGJ1ZiwgRGF0dW0gcmVs b3B0aW9ucyk7CkBAIC04NjI1LDYgKzg2MjcsMTQgQEAgZ2V0X3BhcmFtZXRlcihQYXJhbSAqcGFy YW0sIGRlcGFyc2VfY29udGV4dCAqY29udGV4dCkKIAkJcmV0dXJuOwogCX0KIAorCS8qIHRyYW5z bGF0ZSBwYXJhbXZhcmlkIHRvIHNlc3Npb24gdmFyaWFibGUgbmFtZSAqLworCWlmIChwYXJhbS0+ cGFyYW1raW5kID09IFBBUkFNX1ZBUklBQkxFKQorCXsKKwkJYXBwZW5kU3RyaW5nSW5mbyhjb250 ZXh0LT5idWYsICIlcyIsCisJCQkJCQkgZ2VuZXJhdGVfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHBh cmFtLT5wYXJhbXZhcmlkKSk7CisJCXJldHVybjsKKwl9CisKIAkvKgogCSAqIEFsdGVybmF0aXZl bHksIG1heWJlIGl0J3MgYSBzdWJwbGFuIG91dHB1dCwgd2hpY2ggd2UgcHJpbnQgYXMgYQogCSAq IHJlZmVyZW5jZSB0byB0aGUgc3VicGxhbi4gIChXZSBjb3VsZCBkcmlsbCBkb3duIGludG8gdGhl IHN1YnBsYW4gYW5kCkBAIC0xMzQwNyw2ICsxMzQxNyw0MiBAQCBnZW5lcmF0ZV9jb2xsYXRpb25f bmFtZShPaWQgY29sbGlkKQogCXJldHVybiByZXN1bHQ7CiB9CiAKKy8qCisgKiBnZW5lcmF0ZV9z ZXNzaW9uX3ZhcmlhYmxlX25hbWUKKyAqCQlDb21wdXRlIHRoZSBuYW1lIHRvIGRpc3BsYXkgZm9y IGEgc2Vzc2lvbiB2YXJpYWJsZSBzcGVjaWZpZWQgYnkgT0lECisgKgorICogVGhlIHJlc3VsdCBp bmNsdWRlcyBhbGwgbmVjZXNzYXJ5IHF1b3RpbmcgYW5kIHNjaGVtYS1wcmVmaXhpbmcuCisgKi8K K3N0YXRpYyBjaGFyICoKK2dlbmVyYXRlX3Nlc3Npb25fdmFyaWFibGVfbmFtZShPaWQgdmFyaWQp Cit7CisJSGVhcFR1cGxlCXR1cDsKKwlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07CisJY2hhcgkg ICAqdmFybmFtZTsKKwljaGFyCSAgICpuc3BuYW1lOworCWNoYXIJICAgKnJlc3VsdDsKKworCXR1 cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkp OworCisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCWVsb2coRVJST1IsICJjYWNoZSBs b29rdXAgZmFpbGVkIGZvciB2YXJpYWJsZSAldSIsIHZhcmlkKTsKKworCXZhcmZvcm0gPSAoRm9y bV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHR1cCk7CisKKwl2YXJuYW1lID0gTmFtZVN0cih2YXJm b3JtLT52YXJuYW1lKTsKKworCWlmICghVmFyaWFibGVJc1Zpc2libGUodmFyaWQpKQorCQluc3Bu YW1lID0gZ2V0X25hbWVzcGFjZV9uYW1lX29yX3RlbXAodmFyZm9ybS0+dmFybmFtZXNwYWNlKTsK KwllbHNlCisJCW5zcG5hbWUgPSBOVUxMOworCisJcmVzdWx0ID0gcXVvdGVfcXVhbGlmaWVkX2lk ZW50aWZpZXIobnNwbmFtZSwgdmFybmFtZSk7CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKwor CXJldHVybiByZXN1bHQ7Cit9CisKIC8qCiAgKiBHaXZlbiBhIEMgc3RyaW5nLCBwcm9kdWNlIGEg VEVYVCBkYXR1bS4KICAqCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9jYWNoZS9wbGFu Y2FjaGUuYyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jCmluZGV4IDU1ZGI4 ZjUzNzAuLjYzMmM0MzhhN2IgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3Bs YW5jYWNoZS5jCisrKyBiL3NyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL3BsYW5jYWNoZS5jCkBAIC01 OCw2ICs1OCw3IEBACiAKICNpbmNsdWRlICJhY2Nlc3MvdHJhbnNhbS5oIgogI2luY2x1ZGUgImNh dGFsb2cvbmFtZXNwYWNlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2lu Y2x1ZGUgImV4ZWN1dG9yL2V4ZWN1dG9yLmgiCiAjaW5jbHVkZSAibWlzY2FkbWluLmgiCiAjaW5j bHVkZSAibm9kZXMvbm9kZUZ1bmNzLmgiCkBAIC0xNjIsNiArMTYzLDcgQEAgSW5pdFBsYW5DYWNo ZSh2b2lkKQogCUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxiYWNrKEFNT1BPUElELCBQbGFuQ2Fj aGVTeXNDYWxsYmFjaywgKERhdHVtKSAwKTsKIAlDYWNoZVJlZ2lzdGVyU3lzY2FjaGVDYWxsYmFj ayhGT1JFSUdOU0VSVkVST0lELCBQbGFuQ2FjaGVTeXNDYWxsYmFjaywgKERhdHVtKSAwKTsKIAlD YWNoZVJlZ2lzdGVyU3lzY2FjaGVDYWxsYmFjayhGT1JFSUdOREFUQVdSQVBQRVJPSUQsIFBsYW5D YWNoZVN5c0NhbGxiYWNrLCAoRGF0dW0pIDApOworCUNhY2hlUmVnaXN0ZXJTeXNjYWNoZUNhbGxi YWNrKFZBUklBQkxFT0lELCBQbGFuQ2FjaGVPYmplY3RDYWxsYmFjaywgKERhdHVtKSAwKTsKIH0K IAogLyoKQEAgLTE5MDMsMTcgKzE5MDUsMzIgQEAgU2NhblF1ZXJ5Rm9yTG9ja3MoUXVlcnkgKnBh cnNldHJlZSwgYm9vbCBhY3F1aXJlKQogCiAJLyoKIAkgKiBSZWN1cnNlIGludG8gc3VibGluayBz dWJxdWVyaWVzLCB0b28uICBCdXQgd2UgYWxyZWFkeSBkaWQgdGhlIG9uZXMgaW4KLQkgKiB0aGUg cnRhYmxlIGFuZCBjdGVMaXN0LgorCSAqIHRoZSBydGFibGUgYW5kIGN0ZUxpc3QuICBXZSBuZWVk IHRvIGZvcmNlIGEgcmVjdXJzaXZlIGNhbGwgZm9yIHNlc3Npb24KKwkgKiB2YXJpYWJsZXMgdG9v LCB0byBmaW5kIGFuZCBsb2NrIHZhcmlhYmxlcyB1c2VkIGluIHRoZSBxdWVyeSAoc2VlCisJICog U2NhblF1ZXJ5V2Fsa2VyKS4KIAkgKi8KLQlpZiAocGFyc2V0cmVlLT5oYXNTdWJMaW5rcykKKwlp ZiAocGFyc2V0cmVlLT5oYXNTdWJMaW5rcyB8fAorCQlwYXJzZXRyZWUtPmhhc1Nlc3Npb25WYXJp YWJsZXMpCiAJewogCQlxdWVyeV90cmVlX3dhbGtlcihwYXJzZXRyZWUsIFNjYW5RdWVyeVdhbGtl ciwgJmFjcXVpcmUsCiAJCQkJCQkgIFFUV19JR05PUkVfUkNfU1VCUVVFUklFUyk7CiAJfQorCisJ LyogcHJvY2VzcyBzZXNzaW9uIHZhcmlhYmxlcyAqLworCWlmIChPaWRJc1ZhbGlkKHBhcnNldHJl ZS0+cmVzdWx0VmFyaWFibGUpKQorCXsKKwkJaWYgKGFjcXVpcmUpCisJCQlMb2NrRGF0YWJhc2VP YmplY3QoVmFyaWFibGVSZWxhdGlvbklkLCBwYXJzZXRyZWUtPnJlc3VsdFZhcmlhYmxlLAorCQkJ CQkJCSAgIDAsIEFjY2Vzc1NoYXJlTG9jayk7CisJCWVsc2UKKwkJCVVubG9ja0RhdGFiYXNlT2Jq ZWN0KFZhcmlhYmxlUmVsYXRpb25JZCwgcGFyc2V0cmVlLT5yZXN1bHRWYXJpYWJsZSwKKwkJCQkJ CQkJIDAsIEFjY2Vzc1NoYXJlTG9jayk7CisJfQogfQogCiAvKgotICogV2Fsa2VyIHRvIGZpbmQg c3VibGluayBzdWJxdWVyaWVzIGZvciBTY2FuUXVlcnlGb3JMb2NrcworICogV2Fsa2VyIHRvIGZp bmQgc3VibGluayBzdWJxdWVyaWVzIG9yIHJlZmVyZW5jZWQgc2Vzc2lvbiB2YXJpYWJsZXMKKyAq IGZvciBTY2FuUXVlcnlGb3JMb2NrcwogICovCiBzdGF0aWMgYm9vbAogU2NhblF1ZXJ5V2Fsa2Vy KE5vZGUgKm5vZGUsIGJvb2wgKmFjcXVpcmUpCkBAIC0xOTI4LDYgKzE5NDUsMjAgQEAgU2NhblF1 ZXJ5V2Fsa2VyKE5vZGUgKm5vZGUsIGJvb2wgKmFjcXVpcmUpCiAJCVNjYW5RdWVyeUZvckxvY2tz KGNhc3ROb2RlKFF1ZXJ5LCBzdWItPnN1YnNlbGVjdCksICphY3F1aXJlKTsKIAkJLyogRmFsbCB0 aHJvdWdoIHRvIHByb2Nlc3MgbGVmdGhhbmQgYXJncyBvZiBTdWJMaW5rICovCiAJfQorCWVsc2Ug aWYgKElzQShub2RlLCBQYXJhbSkpCisJeworCQlQYXJhbQkgICAqcCA9IChQYXJhbSAqKSBub2Rl OworCisJCWlmIChwLT5wYXJhbWtpbmQgPT0gUEFSQU1fVkFSSUFCTEUpCisJCXsKKwkJCWlmIChh Y3F1aXJlKQorCQkJCUxvY2tEYXRhYmFzZU9iamVjdChWYXJpYWJsZVJlbGF0aW9uSWQsIHAtPnBh cmFtdmFyaWQsCisJCQkJCQkJCSAgIDAsIEFjY2Vzc1NoYXJlTG9jayk7CisJCQllbHNlCisJCQkJ VW5sb2NrRGF0YWJhc2VPYmplY3QoVmFyaWFibGVSZWxhdGlvbklkLCBwLT5wYXJhbXZhcmlkLAor CQkJCQkJCQkJIDAsIEFjY2Vzc1NoYXJlTG9jayk7CisJCX0KKwl9CiAKIAkvKgogCSAqIERvIE5P VCByZWN1cnNlIGludG8gUXVlcnkgbm9kZXMsIGJlY2F1c2UgU2NhblF1ZXJ5Rm9yTG9ja3MgYWxy ZWFkeQpAQCAtMjA1OCw3ICsyMDg5LDkgQEAgUGxhbkNhY2hlUmVsQ2FsbGJhY2soRGF0dW0gYXJn LCBPaWQgcmVsaWQpCiAKIC8qCiAgKiBQbGFuQ2FjaGVPYmplY3RDYWxsYmFjawotICoJCVN5c2Nh Y2hlIGludmFsIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBQUk9DT0lEIGFuZCBUWVBFT0lEIGNhY2hl cworICoJCVN5c2NhY2hlIGludmFsIGNhbGxiYWNrIGZ1bmN0aW9uIGZvciBUWVBFT0lELCBQUk9D T0lELCBOQU1FU1BBQ0VPSUQsCisgKgkJT1BFUk9JRCwgQU1PUE9QSUQsIEZPUkVJR05TRVJWRVJP SUQsIEZPUkVJR05EQVRBV1JBUFBFUk9JRCBhbmQKKyAqCQlWQVJJQUJMRU9JRCBjYWNoZXMuCiAg KgogICogSW52YWxpZGF0ZSBhbGwgcGxhbnMgbWVudGlvbmluZyB0aGUgb2JqZWN0IHdpdGggdGhl IHNwZWNpZmllZCBoYXNoIHZhbHVlLAogICogb3IgYWxsIHBsYW5zIG1lbnRpb25pbmcgYW55IG1l bWJlciBvZiB0aGlzIGNhY2hlIGlmIGhhc2h2YWx1ZSA9PSAwLgpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvdXRpbHMvZm1nci9mbWdyLmMgYi9zcmMvYmFja2VuZC91dGlscy9mbWdyL2ZtZ3IuYwpp bmRleCBhYTg5YWU4ZmUxLi4yNzY5MTA5Nzg5IDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC91dGls cy9mbWdyL2ZtZ3IuYworKysgYi9zcmMvYmFja2VuZC91dGlscy9mbWdyL2ZtZ3IuYwpAQCAtMjAy Niw5ICsyMDI2LDEzIEBAIGdldF9jYWxsX2V4cHJfYXJnX3N0YWJsZShOb2RlICpleHByLCBpbnQg YXJnbnVtKQogCSAqLwogCWlmIChJc0EoYXJnLCBDb25zdCkpCiAJCXJldHVybiB0cnVlOwotCWlm IChJc0EoYXJnLCBQYXJhbSkgJiYKLQkJKChQYXJhbSAqKSBhcmcpLT5wYXJhbWtpbmQgPT0gUEFS QU1fRVhURVJOKQotCQlyZXR1cm4gdHJ1ZTsKKwlpZiAoSXNBKGFyZywgUGFyYW0pKQorCXsKKwkJ UGFyYW0JICAgKnAgPSAoUGFyYW0gKikgYXJnOworCisJCWlmIChwLT5wYXJhbWtpbmQgPT0gUEFS QU1fRVhURVJOIHx8IHAtPnBhcmFta2luZCA9PSBQQVJBTV9WQVJJQUJMRSkKKwkJCXJldHVybiB0 cnVlOworCX0KIAogCXJldHVybiBmYWxzZTsKIH0KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC90 YWItY29tcGxldGUuaW4uYyBiL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYwppbmRleCA2 ZWViZmM2YTVmLi5hY2JmNTFlZjJlIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvdGFiLWNvbXBs ZXRlLmluLmMKKysrIGIvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jCkBAIC0xMjE0LDgg KzEyMTQsOCBAQCBzdGF0aWMgY29uc3QgY2hhciAqY29uc3Qgc3FsX2NvbW1hbmRzW10gPSB7CiAJ IkFCT1JUIiwgIkFMVEVSIiwgIkFOQUxZWkUiLCAiQkVHSU4iLCAiQ0FMTCIsICJDSEVDS1BPSU5U IiwgIkNMT1NFIiwgIkNMVVNURVIiLAogCSJDT01NRU5UIiwgIkNPTU1JVCIsICJDT1BZIiwgIkNS RUFURSIsICJERUFMTE9DQVRFIiwgIkRFQ0xBUkUiLAogCSJERUxFVEUgRlJPTSIsICJESVNDQVJE IiwgIkRPIiwgIkRST1AiLCAiRU5EIiwgIkVYRUNVVEUiLCAiRVhQTEFJTiIsCi0JIkZFVENIIiwg IkdSQU5UIiwgIklNUE9SVCBGT1JFSUdOIFNDSEVNQSIsICJJTlNFUlQgSU5UTyIsICJMSVNURU4i LCAiTE9BRCIsICJMT0NLIiwKLQkiTUVSR0UgSU5UTyIsICJNT1ZFIiwgIk5PVElGWSIsICJQUkVQ QVJFIiwKKwkiRkVUQ0giLCAiR1JBTlQiLCAiSU1QT1JUIEZPUkVJR04gU0NIRU1BIiwgIklOU0VS VCBJTlRPIiwgIkxFVCIsCisJIkxJU1RFTiIsICJMT0FEIiwgIkxPQ0siLCAiTUVSR0UgSU5UTyIs ICJNT1ZFIiwgIk5PVElGWSIsICJQUkVQQVJFIiwKIAkiUkVBU1NJR04iLCAiUkVGUkVTSCBNQVRF UklBTElaRUQgVklFVyIsICJSRUlOREVYIiwgIlJFTEVBU0UiLAogCSJSRVNFVCIsICJSRVZPS0Ui LCAiUk9MTEJBQ0siLAogCSJTQVZFUE9JTlQiLCAiU0VDVVJJVFkgTEFCRUwiLCAiU0VMRUNUIiwg IlNFVCIsICJTSE9XIiwgIlNUQVJUIiwKQEAgLTQ2NjAsNiArNDY2MCwxNCBAQCBtYXRjaF9wcmV2 aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAllbHNlIGlmIChUYWlsTWF0Y2hlcygiVkFMVUVT IikgJiYgIVRhaWxNYXRjaGVzKCJERUZBVUxUIiwgIlZBTFVFUyIpKQogCQlDT01QTEVURV9XSVRI KCIoIik7CiAKKy8qIExFVCAqLworCS8qIElmIHByZXYuIHdvcmQgaXMgTEVUIHN1Z2dlc3QgYSBs aXN0IG9mIHZhcmlhYmxlcyAqLworCWVsc2UgaWYgKE1hdGNoZXMoIkxFVCIpKQorCQlDT01QTEVU RV9XSVRIX1NDSEVNQV9RVUVSWShRdWVyeV9mb3JfbGlzdF9vZl92YXJpYWJsZXMpOworCS8qIENv bXBsZXRlIExFVCA8dmFyaWFibGU+IHdpdGggIj0iICovCisJZWxzZSBpZiAoVGFpbE1hdGNoZXMo IkxFVCIsIE1hdGNoQW55KSkKKwkJQ09NUExFVEVfV0lUSCgiPSIpOworCiAvKiBMT0NLICovCiAJ LyogQ29tcGxldGUgTE9DSyBbVEFCTEVdIFtPTkxZXSB3aXRoIGEgbGlzdCBvZiB0YWJsZXMgKi8K IAllbHNlIGlmIChNYXRjaGVzKCJMT0NLIikpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRh bG9nL25hbWVzcGFjZS5oIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaAppbmRleCBi ZGFjMGMxM2JlLi41MDYwYjhjOTQ5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL25h bWVzcGFjZS5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvbmFtZXNwYWNlLmgKQEAgLTE3NCw2 ICsxNzQsNyBAQCBleHRlcm4gYm9vbCBTZWFyY2hQYXRoTWF0Y2hlc0N1cnJlbnRFbnZpcm9ubWVu dChTZWFyY2hQYXRoTWF0Y2hlciAqcGF0aCk7CiBleHRlcm4gTGlzdCAqTmFtZXNGcm9tTGlzdChM aXN0ICpuYW1lcyk7CiBleHRlcm4gT2lkCUxvb2t1cFZhcmlhYmxlKGNvbnN0IGNoYXIgKm5zcG5h bWUsIGNvbnN0IGNoYXIgKnZhcm5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4gT2lkCUxv b2t1cFZhcmlhYmxlRnJvbU5hbWVMaXN0KExpc3QgKm5hbWVzLCBib29sIG1pc3Npbmdfb2spOwor ZXh0ZXJuIE9pZAlJZGVudGlmeVZhcmlhYmxlKExpc3QgKm5hbWVzLCBjaGFyICoqYXR0cm5hbWUs IGJvb2wgKm5vdF91bmlxdWUsIGJvb2wgbm9lcnJvcik7CiAKIGV4dGVybiBPaWQJZ2V0X2NvbGxh dGlvbl9vaWQoTGlzdCAqY29sbG5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4gT2lkCWdl dF9jb252ZXJzaW9uX29pZChMaXN0ICpjb25uYW1lLCBib29sIG1pc3Npbmdfb2spOwpkaWZmIC0t Z2l0IGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ192YXJpYWJsZS5oIGIvc3JjL2luY2x1ZGUvY2F0 YWxvZy9wZ192YXJpYWJsZS5oCmluZGV4IDNkM2M2ZWIyNGIuLjViNDViZTVhZmEgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAorKysgYi9zcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3ZhcmlhYmxlLmgKQEAgLTE4LDYgKzE4LDcgQEAKICNpZm5kZWYgUEdfVkFSSUFC TEVfSAogI2RlZmluZSBQR19WQVJJQUJMRV9ICiAKKyNpbmNsdWRlICJhY2Nlc3MveGxvZ2RlZnMu aCIKICNpbmNsdWRlICJjYXRhbG9nL2dlbmJraS5oIgogI2luY2x1ZGUgImNhdGFsb2cvb2JqZWN0 YWRkcmVzcy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGVfZC5oIgpAQCAtMzUsNiAr MzYsMTQgQEAgQ0FUQUxPRyhwZ192YXJpYWJsZSw5MjIyLFZhcmlhYmxlUmVsYXRpb25JZCkKIAkv KiBPSUQgb2YgZW50cnkgaW4gcGdfdHlwZSBmb3IgdmFyaWFibGUncyB0eXBlICovCiAJT2lkCQkJ dmFydHlwZSBCS0lfTE9PS1VQKHBnX3R5cGUpOwogCisJLyoKKwkgKiBVc2VkIGZvciBpZGVudGl0 eSBjaGVjayBbb2lkLCBjcmVhdGVfbHNuXS4KKwkgKgorCSAqIFRoaXMgY29sdW1uIG9mIHRoZSA4 LWJ5dGUgWGxvZ1JlY1B0ciB0eXBlIHNob3VsZCBiZSBhdCBhbiBhZGRyZXNzIHRoYXQKKwkgKiBp cyBkaXZpc2libGUgYnkgOCwgYnV0IGJlZm9yZSBhbnkgY29sdW1uIG9mIHR5cGUgTmFtZURhdGEu CisJICovCisJWExvZ1JlY1B0cgl2YXJjcmVhdGVfbHNuOworCiAJLyogdmFyaWFibGUgbmFtZSAq LwogCU5hbWVEYXRhCXZhcm5hbWU7CiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NvbW1hbmRz L3Nlc3Npb25fdmFyaWFibGUuaCBiL3NyYy9pbmNsdWRlL2NvbW1hbmRzL3Nlc3Npb25fdmFyaWFi bGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4yMzkxYjlhZDQ0Ci0t LSAvZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUvY29tbWFuZHMvc2Vzc2lvbl92YXJpYWJsZS5o CkBAIC0wLDAgKzEsMzAgQEAKKy8qLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICoKKyAqIHNlc3Npb252YXJp YWJsZS5oCisgKgkgIHByb3RvdHlwZXMgZm9yIHNlc3Npb252YXJpYWJsZS5jLgorICoKKyAqCisg KiBQb3J0aW9ucyBDb3B5cmlnaHQgKGMpIDE5OTYtMjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2 ZWxvcG1lbnQgR3JvdXAKKyAqIFBvcnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBv ZiB0aGUgVW5pdmVyc2l0eSBvZiBDYWxpZm9ybmlhCisgKgorICogc3JjL2luY2x1ZGUvY29tbWFu ZHMvc2Vzc2lvbl92YXJpYWJsZS5oCisgKgorICotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKi8KKworI2lm bmRlZiBTRVNTSU9OVkFSSUFCTEVfSAorI2RlZmluZSBTRVNTSU9OVkFSSUFCTEVfSAorCisjaW5j bHVkZSAibm9kZXMvcGFyYW1zLmgiCisjaW5jbHVkZSAibm9kZXMvcGFyc2Vub2Rlcy5oIgorI2lu Y2x1ZGUgInBhcnNlci9wYXJzZV9ub2RlLmgiCisjaW5jbHVkZSAidGNvcC9jbWR0YWcuaCIKKyNp bmNsdWRlICJ1dGlscy9xdWVyeWVudmlyb25tZW50LmgiCisKK2V4dGVybiB2b2lkIFNldFNlc3Np b25WYXJpYWJsZShPaWQgdmFyaWQsIERhdHVtIHZhbHVlLCBib29sIGlzTnVsbCk7CitleHRlcm4g RGF0dW0gR2V0U2Vzc2lvblZhcmlhYmxlKE9pZCB2YXJpZCwgYm9vbCAqaXNOdWxsKTsKKworZXh0 ZXJuIHZvaWQgRXhlY3V0ZUxldFN0bXQoUGFyc2VTdGF0ZSAqcHN0YXRlLCBMZXRTdG10ICpzdG10 LCBQYXJhbUxpc3RJbmZvIHBhcmFtcywKKwkJCQkJCSAgIFF1ZXJ5RW52aXJvbm1lbnQgKnF1ZXJ5 RW52LCBRdWVyeUNvbXBsZXRpb24gKnFjKTsKKworI2VuZGlmCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9leGVjdXRvci9zdmFyaWFibGVSZWNlaXZlci5oIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3Iv c3ZhcmlhYmxlUmVjZWl2ZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw Li5kYjQ0ZDhiOTRjCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL2luY2x1ZGUvZXhlY3V0b3Ivc3Zh cmlhYmxlUmVjZWl2ZXIuaApAQCAtMCwwICsxLDIyIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAq CisgKiBzdmFyaWFibGVSZWNlaXZlci5oCisgKgkgIHByb3RvdHlwZXMgZm9yIHN2YXJpYWJsZVJl Y2VpdmVyLmMKKyAqCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAxOTk2LTIwMjQsIFBv c3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQg KGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZvcm5pYQorICoKKyAq IHNyYy9pbmNsdWRlL2V4ZWN1dG9yL3N2YXJpYWJsZVJlY2VpdmVyLmgKKyAqCisgKi0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyAqLworCisjaWZuZGVmIFNWQVJJQUJMRV9SRUNFSVZFUl9ICisjZGVmaW5lIFNW QVJJQUJMRV9SRUNFSVZFUl9ICisKKyNpbmNsdWRlICJ0Y29wL2Rlc3QuaCIKKworZXh0ZXJuIERl c3RSZWNlaXZlciAqQ3JlYXRlVmFyaWFibGVEZXN0UmVjZWl2ZXIoT2lkIHZhcmlkKTsKKworI2Vu ZGlmCQkJCQkJCS8qIFNWQVJJQUJMRV9SRUNFSVZFUl9IICovCmRpZmYgLS1naXQgYS9zcmMvaW5j bHVkZS9ub2Rlcy9leGVjbm9kZXMuaCBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCmlu ZGV4IGIzZjdhYTI5OWYuLjgzNjRhMTA5ZTMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVz L2V4ZWNub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVzL2V4ZWNub2Rlcy5oCkBAIC02MTcs NiArNjE3LDE2IEBAIHR5cGVkZWYgc3RydWN0IEFzeW5jUmVxdWVzdAogCQkJCQkJCQkgKiB0dXBs ZXMpICovCiB9IEFzeW5jUmVxdWVzdDsKIAorLyogLS0tLS0tLS0tLS0tLS0tLQorICogU2Vzc2lv blZhcmlhYmxlVmFsdWUKKyAqIC0tLS0tLS0tLS0tLS0tLS0KKyAqLwordHlwZWRlZiBzdHJ1Y3Qg U2Vzc2lvblZhcmlhYmxlVmFsdWUKK3sKKwlib29sCQlpc251bGw7CisJRGF0dW0JCXZhbHVlOwor fSBTZXNzaW9uVmFyaWFibGVWYWx1ZTsKKwogLyogLS0tLS0tLS0tLS0tLS0tLQogICoJICBFU3Rh dGUgaW5mb3JtYXRpb24KICAqCkBAIC02NjksNiArNjc5LDEwIEBAIHR5cGVkZWYgc3RydWN0IEVT dGF0ZQogCVBhcmFtTGlzdEluZm8gZXNfcGFyYW1fbGlzdF9pbmZvOwkvKiB2YWx1ZXMgb2YgZXh0 ZXJuYWwgcGFyYW1zICovCiAJUGFyYW1FeGVjRGF0YSAqZXNfcGFyYW1fZXhlY192YWxzOwkvKiB2 YWx1ZXMgb2YgaW50ZXJuYWwgcGFyYW1zICovCiAKKwkvKiBTZXNzaW9uIHZhcmlhYmxlcyBpbmZv OiAqLworCWludAkJCWVzX251bV9zZXNzaW9uX3ZhcmlhYmxlczsJCS8qIG51bWJlciBvZiB1c2Vk IHZhcmlhYmxlcyAqLworCVNlc3Npb25WYXJpYWJsZVZhbHVlICplc19zZXNzaW9uX3ZhcmlhYmxl czsJLyogYXJyYXkgb2YgY29waWVzIG9mIHZhbHVlcyAqLworCiAJUXVlcnlFbnZpcm9ubWVudCAq ZXNfcXVlcnlFbnY7CS8qIHF1ZXJ5IGVudmlyb25tZW50ICovCiAKIAkvKiBPdGhlciB3b3JraW5n IHN0YXRlOiAqLwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oIGIv c3JjL2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCmluZGV4IDY2YWVjNDY1NDkuLmI0MTdiNTZj MmEgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAorKysgYi9zcmMv aW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKQEAgLTE0Miw2ICsxNDIsOSBAQCB0eXBlZGVmIHN0 cnVjdCBRdWVyeQogCSAqLwogCWludAkJCXJlc3VsdFJlbGF0aW9uIHBnX25vZGVfYXR0cihxdWVy eV9qdW1ibGVfaWdub3JlKTsKIAorCS8qIHRhcmdldCB2YXJpYWJsZSBvZiBMRVQgc3RhdGVtZW50 ICovCisJT2lkCQkJcmVzdWx0VmFyaWFibGU7CisKIAkvKiBoYXMgYWdncmVnYXRlcyBpbiB0bGlz dCBvciBoYXZpbmdRdWFsICovCiAJYm9vbAkJaGFzQWdncyBwZ19ub2RlX2F0dHIocXVlcnlfanVt YmxlX2lnbm9yZSk7CiAJLyogaGFzIHdpbmRvdyBmdW5jdGlvbnMgaW4gdGxpc3QgKi8KQEAgLTE2 Miw2ICsxNjUsOCBAQCB0eXBlZGVmIHN0cnVjdCBRdWVyeQogCWJvb2wJCWhhc1Jvd1NlY3VyaXR5 IHBnX25vZGVfYXR0cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKIAkvKiBwYXJzZXIgaGFzIGFkZGVk IGFuIFJURV9HUk9VUCBSVEUgKi8KIAlib29sCQloYXNHcm91cFJURSBwZ19ub2RlX2F0dHIocXVl cnlfanVtYmxlX2lnbm9yZSk7CisJLyogdXNlcyBzZXNzaW9uIHZhcmlhYmxlcyAqLworCWJvb2wJ CWhhc1Nlc3Npb25WYXJpYWJsZXMgcGdfbm9kZV9hdHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwog CS8qIGlzIGEgUkVUVVJOIHN0YXRlbWVudCAqLwogCWJvb2wJCWlzUmV0dXJuIHBnX25vZGVfYXR0 cihxdWVyeV9qdW1ibGVfaWdub3JlKTsKIApAQCAtMjEwMCw2ICsyMTA1LDE4IEBAIHR5cGVkZWYg c3RydWN0IE1lcmdlU3RtdAogCVBhcnNlTG9jCXN0bXRfbGVuOwkJLyogbGVuZ3RoIGluIGJ5dGVz OyAwIG1lYW5zICJyZXN0IG9mIHN0cmluZyIgKi8KIH0gTWVyZ2VTdG10OwogCisvKiAtLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgKgkJTGV0IFN0YXRlbWVudAorICogLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorICovCit0eXBlZGVmIHN0cnVjdCBMZXRTdG10Cit7CisJTm9kZVRhZwkJdHlwZTsKKwlM aXN0CSAgICp0YXJnZXQ7CQkJLyogdGFyZ2V0IHZhcmlhYmxlICovCisJTm9kZQkgICAqcXVlcnk7 CQkJLyogc291cmNlIGV4cHJlc3Npb24gKi8KKwlQYXJzZUxvYwlsb2NhdGlvbjsKK30gTGV0U3Rt dDsKKwogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoJCVNlbGVjdCBTdGF0ZW1lbnQKICAq CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXRobm9kZXMuaCBiL3NyYy9pbmNsdWRl L25vZGVzL3BhdGhub2Rlcy5oCmluZGV4IDU0ZWUxNzY5N2UuLjY2NjlkMDRkYWQgMTAwNjQ0Ci0t LSBhL3NyYy9pbmNsdWRlL25vZGVzL3BhdGhub2Rlcy5oCisrKyBiL3NyYy9pbmNsdWRlL25vZGVz L3BhdGhub2Rlcy5oCkBAIC0xNjMsNiArMTYzLDE4IEBAIHR5cGVkZWYgc3RydWN0IFBsYW5uZXJH bG9iYWwKIAogCS8qIHBhcnRpdGlvbiBkZXNjcmlwdG9ycyAqLwogCVBhcnRpdGlvbkRpcmVjdG9y eSBwYXJ0aXRpb25fZGlyZWN0b3J5IHBnX25vZGVfYXR0cihyZWFkX3dyaXRlX2lnbm9yZSk7CisK KwkvKiBsaXN0IG9mIHVzZWQgc2Vzc2lvbiB2YXJpYWJsZXMgKi8KKwlMaXN0CSAgICpzZXNzaW9u VmFyaWFibGVzOworCisJLyogT2lkIG9mIHNlc3Npb24gdmFyaWFibGUgdXNlZCBsaWtlIHRhcmdl dCBvZiBMRVQgY29tbWFuZCAqLworCU9pZAkJCXJlc3VsdFZhcmlhYmxlOworCisJLyogb2lkIG9m IHNlc3Npb24gdmFyaWFibGUgdXNlZCBsaWtlIGJhc2Ugbm9kZSBmb3IgYXNzaWdubWVudCBpbmRp cmVjdGlvbiAqLworCU9pZAkJCWJhc2Vub2RlU2Vzc2lvblZhcmlkOworCisJLyogdHJ1ZSwgaWYg d2UgZG8gU0VMRUNUIHBlcm1pc3Npb24gY2hlY2sgb24gYmFzZW5vZGVTZXNzaW9uVmFyaWQgKi8K Kwlib29sCQliYXNlbm9kZVNlc3Npb25WYXJTZWxlY3RDaGVjazsKIH0gUGxhbm5lckdsb2JhbDsK IAogLyogbWFjcm8gZm9yIGZldGNoaW5nIHRoZSBQbGFuIGFzc29jaWF0ZWQgd2l0aCBhIFN1YlBs YW4gbm9kZSAqLwpAQCAtNTA4LDYgKzUyMCw4IEBAIHN0cnVjdCBQbGFubmVySW5mbwogCWJvb2wJ CXBsYWNlaG9sZGVyc0Zyb3plbjsKIAkvKiB0cnVlIGlmIHBsYW5uaW5nIGEgcmVjdXJzaXZlIFdJ VEggaXRlbSAqLwogCWJvb2wJCWhhc1JlY3Vyc2lvbjsKKwkvKiB0cnVlIGlmIHNlc3Npb24gdmFy aWFibGVzIHdlcmUgdXNlZCAqLworCWJvb2wJCWhhc1Nlc3Npb25WYXJpYWJsZXM7CiAKIAkvKgog CSAqIFRoZSByYW5nZXRhYmxlIGluZGV4IGZvciB0aGUgUlRFX0dST1VQIFJURSwgb3IgMCBpZiB0 aGVyZSBpcyBubwpkaWZmIC0tZ2l0IGEvc3JjL2luY2x1ZGUvbm9kZXMvcGxhbm5vZGVzLmggYi9z cmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaAppbmRleCBlZjllYTdlZTk4Li5hNDI0NTkzYTQ2 IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wbGFubm9kZXMuaAorKysgYi9zcmMvaW5j bHVkZS9ub2Rlcy9wbGFubm9kZXMuaApAQCAtOTQsNiArOTQsMTUgQEAgdHlwZWRlZiBzdHJ1Y3Qg UGxhbm5lZFN0bXQKIAogCU5vZGUJICAgKnV0aWxpdHlTdG10OwkvKiBub24tbnVsbCBpZiB0aGlz IGlzIHV0aWxpdHkgc3RtdCAqLwogCisJTGlzdAkgICAqc2Vzc2lvblZhcmlhYmxlczsJLyogT0lE cyBmb3IgUEFSQU1fVkFSSUFCTEUgUGFyYW1zICovCisKKwkvKgorCSAqIFRoZSBvaWQgb2Ygc2Vz c2lvbiB2YXJpYWJsZSBleGVjbHVkZWQgZnJvbSBwZXJtaXNzaW9uIGNoZWNrLgorCSAqIFRoaXMg c2Vzc2lvbiB2YXJpYWJsZSBpcyB1c2VkIGFzIGJhc2Ugbm9kZSBvZiBhc3NpZ25tZW50IGluZGly ZWN0aW9uCisJICogKGFuZCBpdCBpcyB1c2VkIG9ubHkgdGhlcmUpLgorCSAqLworCWludAkJCWV4 Y2xTZWxlY3RQZXJtQ2hlY2tWYXJpZDsKKwogCS8qIHN0YXRlbWVudCBsb2NhdGlvbiBpbiBzb3Vy Y2Ugc3RyaW5nIChjb3BpZWQgZnJvbSBRdWVyeSkgKi8KIAlQYXJzZUxvYwlzdG10X2xvY2F0aW9u OwkvKiBzdGFydCBsb2NhdGlvbiwgb3IgLTEgaWYgdW5rbm93biAqLwogCVBhcnNlTG9jCXN0bXRf bGVuOwkJLyogbGVuZ3RoIGluIGJ5dGVzOyAwIG1lYW5zICJyZXN0IG9mIHN0cmluZyIgKi8KZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3ByaW1ub2Rlcy5oIGIvc3JjL2luY2x1ZGUvbm9k ZXMvcHJpbW5vZGVzLmgKaW5kZXggOWMyOTU3ZWI1NC4uYzExZDE5NWYxOCAxMDA2NDQKLS0tIGEv c3JjL2luY2x1ZGUvbm9kZXMvcHJpbW5vZGVzLmgKKysrIGIvc3JjL2luY2x1ZGUvbm9kZXMvcHJp bW5vZGVzLmgKQEAgLTM2MSw2ICszNjEsOSBAQCB0eXBlZGVmIHN0cnVjdCBDb25zdAogICoJCQkJ b2YgdGhlIGBwYXJhbWlkJyBmaWVsZCBjb250YWluIHRoZSBTdWJMaW5rJ3Mgc3ViTGlua0lkLCBh bmQKICAqCQkJCXRoZSBsb3ctb3JkZXIgMTYgYml0cyBjb250YWluIHRoZSBjb2x1bW4gbnVtYmVy LiAgKFRoaXMgdHlwZQogICoJCQkJb2YgUGFyYW0gaXMgYWxzbyBjb252ZXJ0ZWQgdG8gUEFSQU1f RVhFQyBkdXJpbmcgcGxhbm5pbmcuKQorICoKKyAqCQlQQVJBTV9WQVJJQUJMRTogIFRoZSBwYXJh bWV0ZXIgaXMgYSByZWZlcmVuY2UgdG8gYSBzZXNzaW9uIHZhcmlhYmxlCisgKgkJCQkocGFyYW12 YXJpZCBob2xkcyB0aGUgdmFyaWFibGUncyBPSUQpLgogICovCiB0eXBlZGVmIGVudW0gUGFyYW1L aW5kCiB7CkBAIC0zNjgsNiArMzcxLDcgQEAgdHlwZWRlZiBlbnVtIFBhcmFtS2luZAogCVBBUkFN X0VYRUMsCiAJUEFSQU1fU1VCTElOSywKIAlQQVJBTV9NVUxUSUVYUFIsCisJUEFSQU1fVkFSSUFC TEUsCiB9IFBhcmFtS2luZDsKIAogdHlwZWRlZiBzdHJ1Y3QgUGFyYW0KQEAgLTM4MCw2ICszODQs MTYgQEAgdHlwZWRlZiBzdHJ1Y3QgUGFyYW0KIAlpbnQzMgkJcGFyYW10eXBtb2QgcGdfbm9kZV9h dHRyKHF1ZXJ5X2p1bWJsZV9pZ25vcmUpOwogCS8qIE9JRCBvZiBjb2xsYXRpb24sIG9yIEludmFs aWRPaWQgaWYgbm9uZSAqLwogCU9pZAkJCXBhcmFtY29sbGlkIHBnX25vZGVfYXR0cihxdWVyeV9q dW1ibGVfaWdub3JlKTsKKwkvKiBPSUQgb2Ygc2Vzc2lvbiB2YXJpYWJsZSBpZiBpdCBpcyB1c2Vk ICovCisJT2lkCQkJcGFyYW12YXJpZCBwZ19ub2RlX2F0dHIocXVlcnlfanVtYmxlX2lnbm9yZSk7 CisKKwkvKgorCSAqIHRydWUgaWYgcGFyYW0gaXMgdXNlZCBhcyBiYXNlIG5vZGUgb2YgYXNzaWdu bWVudCBpbmRpcmVjdGlvbgorCSAqICh3aGVuIHRhcmdldCBvZiBMRVQgc3RhdGVtZW50IGlzIGFu IGFycmF5IGZpZWxkIG9yIGFuIHJlY29yZCBmaWVsZCkuCisJICogRm9yIHRoaXMgcGFyYW0gd2Ug ZG8gbm90IGNoZWNrIFNFTEVDVCBhY2Nlc3MgcmlnaHQsIGJlY2F1c2UgdGhpcworCSAqIHBhcmFt IGlzIHVzZWQganVzdCBmb3IgZXhlY3V0aW9uIG9mIFVQREFURSBvcGVyYXRpb24uCisJICovCisJ Ym9vbAkJcGFyYW1iYXNlbm9kZTsKIAkvKiB0b2tlbiBsb2NhdGlvbiwgb3IgLTEgaWYgdW5rbm93 biAqLwogCVBhcnNlTG9jCWxvY2F0aW9uOwogfSBQYXJhbTsKZGlmZiAtLWdpdCBhL3NyYy9pbmNs dWRlL29wdGltaXplci9wbGFubWFpbi5oIGIvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BsYW5tYWlu LmgKaW5kZXggZmVlMzM3OGJiZS4uZTg1NTEzMjBkMSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUv b3B0aW1pemVyL3BsYW5tYWluLmgKKysrIGIvc3JjL2luY2x1ZGUvb3B0aW1pemVyL3BsYW5tYWlu LmgKQEAgLTEyNSw0ICsxMjUsNiBAQCBleHRlcm4gdm9pZCByZWNvcmRfcGxhbl9mdW5jdGlvbl9k ZXBlbmRlbmN5KFBsYW5uZXJJbmZvICpyb290LCBPaWQgZnVuY2lkKTsKIGV4dGVybiB2b2lkIHJl Y29yZF9wbGFuX3R5cGVfZGVwZW5kZW5jeShQbGFubmVySW5mbyAqcm9vdCwgT2lkIHR5cGlkKTsK IGV4dGVybiBib29sIGV4dHJhY3RfcXVlcnlfZGVwZW5kZW5jaWVzX3dhbGtlcihOb2RlICpub2Rl LCBQbGFubmVySW5mbyAqY29udGV4dCk7CiAKK2V4dGVybiB2b2lkIHB1bGxfdXBfaGFzX3Nlc3Np b25fdmFyaWFibGVzKFBsYW5uZXJJbmZvICpyb290KTsKKwogI2VuZGlmCQkJCQkJCS8qIFBMQU5N QUlOX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCBiL3NyYy9p bmNsdWRlL3BhcnNlci9rd2xpc3QuaAppbmRleCBjMjVhZGU2OGYxLi42Zjg0ZmVmZDUyIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFy c2VyL2t3bGlzdC5oCkBAIC0yNTYsNiArMjU2LDcgQEAgUEdfS0VZV09SRCgibGVhZGluZyIsIExF QURJTkcsIFJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJsZWFrcHJv b2YiLCBMRUFLUFJPT0YsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdP UkQoImxlYXN0IiwgTEVBU1QsIENPTF9OQU1FX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlX T1JEKCJsZWZ0IiwgTEVGVCwgVFlQRV9GVU5DX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKK1BH X0tFWVdPUkQoImxldCIsIExFVCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQogUEdf S0VZV09SRCgibGV2ZWwiLCBMRVZFTCwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQog UEdfS0VZV09SRCgibGlrZSIsIExJS0UsIFRZUEVfRlVOQ19OQU1FX0tFWVdPUkQsIEJBUkVfTEFC RUwpCiBQR19LRVlXT1JEKCJsaW1pdCIsIExJTUlULCBSRVNFUlZFRF9LRVlXT1JELCBBU19MQUJF TCkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmggYi9zcmMvaW5j bHVkZS9wYXJzZXIvcGFyc2Vfbm9kZS5oCmluZGV4IDBkZTQ0ZDE2NmYuLjhiNTVmODQwZDEgMTAw NjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3BhcnNlci9wYXJzZV9ub2RlLmgKKysrIGIvc3JjL2luY2x1 ZGUvcGFyc2VyL3BhcnNlX25vZGUuaApAQCAtODIsNiArODIsOCBAQCB0eXBlZGVmIGVudW0gUGFy c2VFeHByS2luZAogCUVYUFJfS0lORF9DT1BZX1dIRVJFLAkJLyogV0hFUkUgY29uZGl0aW9uIGlu IENPUFkgRlJPTSAqLwogCUVYUFJfS0lORF9HRU5FUkFURURfQ09MVU1OLCAvKiBnZW5lcmF0aW9u IGV4cHJlc3Npb24gZm9yIGEgY29sdW1uICovCiAJRVhQUl9LSU5EX0NZQ0xFX01BUkssCQkvKiBj eWNsZSBtYXJrIHZhbHVlICovCisJRVhQUl9LSU5EX0FTU0lHTl9UQVJHRVQsCS8qIFBML3BnU1FM IGFzc2lnbm1lbnQgdGFyZ2V0ICovCisJRVhQUl9LSU5EX0xFVF9UQVJHRVQsCQkvKiBMRVQgdGFy Z2V0ICovCiB9IFBhcnNlRXhwcktpbmQ7CiAKIApAQCAtMjQ0LDYgKzI0Niw3IEBAIHN0cnVjdCBQ YXJzZVN0YXRlCiAJYm9vbAkJcF9oYXNUYXJnZXRTUkZzOwogCWJvb2wJCXBfaGFzU3ViTGlua3M7 CiAJYm9vbAkJcF9oYXNNb2RpZnlpbmdDVEU7CisJYm9vbAkJcF9oYXNTZXNzaW9uVmFyaWFibGVz OwogCiAJTm9kZQkgICAqcF9sYXN0X3NyZjsJCS8qIG1vc3QgcmVjZW50IHNldC1yZXR1cm5pbmcg ZnVuYy9vcCBmb3VuZCAqLwogCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS90Y29wL2NtZHRhZ2xp c3QuaCBiL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCmluZGV4IGVhODY5NTRkZGUuLjIy MDgyYzMwMDAgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCisrKyBi L3NyYy9pbmNsdWRlL3Rjb3AvY21kdGFnbGlzdC5oCkBAIC0xODYsNiArMTg2LDcgQEAgUEdfQ01E VEFHKENNRFRBR19HUkFOVCwgIkdSQU5UIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFH KENNRFRBR19HUkFOVF9ST0xFLCAiR1JBTlQgUk9MRSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQ R19DTURUQUcoQ01EVEFHX0lNUE9SVF9GT1JFSUdOX1NDSEVNQSwgIklNUE9SVCBGT1JFSUdOIFND SEVNQSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfSU5TRVJULCAiSU5T RVJUIiwgZmFsc2UsIGZhbHNlLCB0cnVlKQorUEdfQ01EVEFHKENNRFRBR19MRVQsICJMRVQiLCBm YWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19MSVNURU4sICJMSVNURU4iLCBm YWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19MT0FELCAiTE9BRCIsIGZhbHNl LCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0xPQ0tfVEFCTEUsICJMT0NLIFRBQkxF IiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Rjb3AvZGVz dC5oIGIvc3JjL2luY2x1ZGUvdGNvcC9kZXN0LmgKaW5kZXggMDBjMDkyZTNkNy4uNmNlM2VhMGU2 MSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdGNvcC9kZXN0LmgKKysrIGIvc3JjL2luY2x1ZGUv dGNvcC9kZXN0LmgKQEAgLTk3LDYgKzk3LDcgQEAgdHlwZWRlZiBlbnVtCiAJRGVzdFRyYW5zaWVu dFJlbCwJCQkvKiByZXN1bHRzIHNlbnQgdG8gdHJhbnNpZW50IHJlbGF0aW9uICovCiAJRGVzdFR1 cGxlUXVldWUsCQkJCS8qIHJlc3VsdHMgc2VudCB0byB0dXBsZSBxdWV1ZSAqLwogCURlc3RFeHBs YWluU2VyaWFsaXplLAkJLyogcmVzdWx0cyBhcmUgc2VyaWFsaXplZCBhbmQgZGlzY2FyZGVkICov CisJRGVzdFZhcmlhYmxlLAkJCQkvKiByZXN1bHRzIHNlbnQgdG8gc2Vzc2lvbiB2YXJpYWJsZSAq LwogfSBDb21tYW5kRGVzdDsKIAogLyogLS0tLS0tLS0tLS0tLS0tLQpkaWZmIC0tZ2l0IGEvc3Jj L3BsL3BscGdzcWwvc3JjL3BsX2V4ZWMuYyBiL3NyYy9wbC9wbHBnc3FsL3NyYy9wbF9leGVjLmMK aW5kZXggZTViMGRhMDRlMy4uM2Y5MDFjZDhmYyAxMDA2NDQKLS0tIGEvc3JjL3BsL3BscGdzcWwv c3JjL3BsX2V4ZWMuYworKysgYi9zcmMvcGwvcGxwZ3NxbC9zcmMvcGxfZXhlYy5jCkBAIC04MDk5 LDcgKzgwOTksOCBAQCBleGVjX2lzX3NpbXBsZV9xdWVyeShQTHBnU1FMX2V4cHIgKmV4cHIpCiAJ CXF1ZXJ5LT5zb3J0Q2xhdXNlIHx8CiAJCXF1ZXJ5LT5saW1pdE9mZnNldCB8fAogCQlxdWVyeS0+ bGltaXRDb3VudCB8fAotCQlxdWVyeS0+c2V0T3BlcmF0aW9ucykKKwkJcXVlcnktPnNldE9wZXJh dGlvbnMgfHwKKwkJcXVlcnktPmhhc1Nlc3Npb25WYXJpYWJsZXMpCiAJCXJldHVybiBmYWxzZTsK IAogCS8qCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFy aWFibGVzLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMu b3V0CmluZGV4IGMzNjY2MGNlNmQuLmYyMjQ2NzE4NmUgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3Jl Z3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CisrKyBiL3NyYy90ZXN0L3JlZ3Jl c3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CkBAIC00MzEsMyArNDMxLDEyMzUgQEAg RFJPUCBWQVJJQUJMRSBwdWJsaWMudmFyMTsKIERST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3Ix OwogRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjI7CiBEUk9QIFJPTEUgcmVncmVzc192YXJp YWJsZV9vd25lcjsKKy0tIGNoZWNrIGFjY2VzcyByaWdodHMKK0NSRUFURSBST0xFIHJlZ3Jlc3Nf bm9vd25lcjsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0NSRUFURSBPUiBSRVBMQUNF IEZVTkNUSU9OIHNxbGZ4KGludCkKK1JFVFVSTlMgaW50IEFTICQkIFNFTEVDVCAkMSArIHZhcjEg JCQgTEFOR1VBR0Ugc3FsOworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3FsZnhfc2QoaW50 KQorUkVUVVJOUyBpbnQgQVMgJCQgU0VMRUNUICQxICsgdmFyMSAkJCBMQU5HVUFHRSBzcWwgU0VD VVJJVFkgREVGSU5FUjsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHBscGdzcWxmeChpbnQp CitSRVRVUk5TIGludCBBUyAkJCBCRUdJTiBSRVRVUk4gJDEgKyB2YXIxOyBFTkQgJCQgTEFOR1VB R0UgcGxwZ3NxbDsKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHBscGdzcWxmeF9zZChpbnQp CitSRVRVUk5TIGludCBBUyAkJCBCRUdJTiBSRVRVUk4gJDEgKyB2YXIxOyBFTkQgJCQgTEFOR1VB R0UgcGxwZ3NxbCBTRUNVUklUWSBERUZJTkVSOworTEVUIHZhcjEgPSAxMDsKKy0tIHNob3VsZCBi ZSBvaworU0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworU0VM RUNUIHNxbGZ4KDIwKTsKKyBzcWxmeCAKKy0tLS0tLS0KKyAgICAzMAorKDEgcm93KQorCitTRUxF Q1Qgc3FsZnhfc2QoMjApOworIHNxbGZ4X3NkIAorLS0tLS0tLS0tLQorICAgICAgIDMwCisoMSBy b3cpCisKK1NFTEVDVCBwbHBnc3FsZngoMjApOworIHBscGdzcWxmeCAKKy0tLS0tLS0tLS0tCisg ICAgICAgIDMwCisoMSByb3cpCisKK1NFTEVDVCBwbHBnc3FsZnhfc2QoMjApOworIHBscGdzcWxm eF9zZCAKKy0tLS0tLS0tLS0tLS0tCisgICAgICAgICAgIDMwCisoMSByb3cpCisKKy0tIHNob3Vs ZCBmYWlsCitTRVQgUk9MRSBUTyByZWdyZXNzX25vb3duZXI7CitTRUxFQ1QgdmFyMTsKK0VSUk9S OiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQorU0VMRUNUIHNx bGZ4KDIwKTsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUg dmFyMQorQ09OVEVYVDogIFNRTCBmdW5jdGlvbiAic3FsZngiIHN0YXRlbWVudCAxCitTRUxFQ1Qg cGxwZ3NxbGZ4KDIwKTsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFy aWFibGUgdmFyMQorQ09OVEVYVDogIFBML3BnU1FMIGV4cHJlc3Npb24gIiQxICsgdmFyMSIKK1BM L3BnU1FMIGZ1bmN0aW9uIHBscGdzcWxmeChpbnRlZ2VyKSBsaW5lIDEgYXQgUkVUVVJOCistLSBz aG91bGQgYmUgb2sKK1NFTEVDVCBzcWxmeF9zZCgyMCk7Cisgc3FsZnhfc2QgCistLS0tLS0tLS0t CisgICAgICAgMzAKKygxIHJvdykKKworU0VMRUNUIHBscGdzcWxmeF9zZCgyMCk7CisgcGxwZ3Nx bGZ4X3NkIAorLS0tLS0tLS0tLS0tLS0KKyAgICAgICAgICAgMzAKKygxIHJvdykKKworU0VUIFJP TEUgVE8gREVGQVVMVDsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIHJlZ3Jlc3Nf bm9vd25lcjsKKy0tIHNob3VsZCBiZSBvaworU0VUIFJPTEUgVE8gcmVncmVzc19ub293bmVyOwor U0VMRUNUIHZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAgMTAKKygxIHJvdykKKworU0VMRUNUIHNx bGZ4KDIwKTsKKyBzcWxmeCAKKy0tLS0tLS0KKyAgICAzMAorKDEgcm93KQorCitTRUxFQ1QgcGxw Z3NxbGZ4KDIwKTsKKyBwbHBnc3FsZnggCistLS0tLS0tLS0tLQorICAgICAgICAzMAorKDEgcm93 KQorCitTRVQgUk9MRSBUTyBERUZBVUxUOworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBGVU5D VElPTiBzcWxmeChpbnQpOworRFJPUCBGVU5DVElPTiBwbHBnc3FsZngoaW50KTsKK0RST1AgRlVO Q1RJT04gc3FsZnhfc2QoaW50KTsKK0RST1AgRlVOQ1RJT04gcGxwZ3NxbGZ4X3NkKGludCk7CitE Uk9QIFJPTEUgcmVncmVzc19ub293bmVyOworLS0gdXNlIHZhcmlhYmxlcyBpbnNpZGUgdmlld3MK K0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIG51bWVyaWM7CistLSB1c2UgdmFyaWFibGVzIGluIHZp ZXdzCitDUkVBVEUgVklFVyB0ZXN0X3ZpZXcgQVMgU0VMRUNUIENPQUxFU0NFKHZhcjEgKyB2LCAw KSBBUyByZXN1bHQgRlJPTSBnZW5lcmF0ZV9zZXJpZXMoMSwyKSBnKHYpOworU0VMRUNUICogRlJP TSB0ZXN0X3ZpZXc7CisgcmVzdWx0IAorLS0tLS0tLS0KKyAgICAgIDAKKyAgICAgIDAKKygyIHJv d3MpCisKK0xFVCB2YXIxID0gMy4xNDsKK1NFTEVDVCAqIEZST00gdGVzdF92aWV3OworIHJlc3Vs dCAKKy0tLS0tLS0tCisgICA0LjE0CisgICA1LjE0CisoMiByb3dzKQorCistLSBzdGFydCBhIG5l dyBzZXNzaW9uCitcYworU0VMRUNUICogRlJPTSB0ZXN0X3ZpZXc7CisgcmVzdWx0IAorLS0tLS0t LS0KKyAgICAgIDAKKyAgICAgIDAKKygyIHJvd3MpCisKK0xFVCB2YXIxID0gMy4xNDsKK1NFTEVD VCAqIEZST00gdGVzdF92aWV3OworIHJlc3VsdCAKKy0tLS0tLS0tCisgICA0LjE0CisgICA1LjE0 CisoMiByb3dzKQorCistLSBzaG91bGQgZmFpbCwgZGVwZW5kZW5jeQorRFJPUCBWQVJJQUJMRSB2 YXIxOworRVJST1I6ICBjYW5ub3QgZHJvcCBzZXNzaW9uIHZhcmlhYmxlIHZhcjEgYmVjYXVzZSBv dGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAgdmlldyB0ZXN0X3ZpZXcgZGVwZW5k cyBvbiBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKK0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0 byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0cyB0b28uCistLSBzaG91bGQgYmUgb2sKK0RST1Ag VkFSSUFCTEUgdmFyMSBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byB2aWV3IHRl c3RfdmlldworQ1JFQVRFIFZBUklBQkxFIHZhcjEgdGV4dDsKK0NSRUFURSBWQVJJQUJMRSB2YXIy IHRleHQ7CistLSB1c2UgdmFyaWFibGVzIGluIFNRTCBmdW5jdGlvbnMKK0NSRUFURSBPUiBSRVBM QUNFIEZVTkNUSU9OIHNxbGZ4MSh2YXJjaGFyKQorUkVUVVJOUyB2YXJjaGFyIEFTICQkIFNFTEVD VCB2YXIxIHx8ICcsICcgfHwgJDEgJCQgTEFOR1VBR0Ugc3FsOworQ1JFQVRFIE9SIFJFUExBQ0Ug RlVOQ1RJT04gc3FsZngyKCB2YXJjaGFyKQorUkVUVVJOUyB2YXJjaGFyIEFTICQkIFNFTEVDVCB2 YXIyIHx8ICcsICcgfHwgJDEgJCQgTEFOR1VBR0Ugc3FsOworTEVUIHZhcjEgPSAnc3RyMSc7CitM RVQgdmFyMiA9ICdzdHIyJzsKK1NFTEVDVCBzcWxmeDEoc3FsZngyKCdIZWxsbycpKTsKKyAgICAg IHNxbGZ4MSAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0KKyBzdHIxLCBzdHIyLCBIZWxsbwor KDEgcm93KQorCistLSBpbmxpbmluZyBpcyBibG9ja2VkCitFWFBMQUlOIChDT1NUUyBPRkYsIFZF UkJPU0UpIFNFTEVDVCBzcWxmeDEoc3FsZngyKCdIZWxsbycpKTsKKyAgICAgICAgICAgICAgICAg ICAgICBRVUVSWSBQTEFOICAgICAgICAgICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgUmVzdWx0CisgICBPdXRwdXQ6 IHNxbGZ4MShzcWxmeDIoJ0hlbGxvJzo6Y2hhcmFjdGVyIHZhcnlpbmcpKQorKDIgcm93cykKKwor RFJPUCBGVU5DVElPTiBzcWxmeDEodmFyY2hhcik7CitEUk9QIEZVTkNUSU9OIHNxbGZ4Mih2YXJj aGFyKTsKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVkFSSUFCTEUgdmFyMjsKKy0tIGFjY2Vz cyBmcm9tIGNhY2hlZCBwbGFucyBzaG91bGQgd29yaworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMg bnVtZXJpYzsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIG51bWVyaWM7CitDUkVBVEUgT1IgUkVQ TEFDRSBGVU5DVElPTiBwbHBnc3FsZngoKQorUkVUVVJOUyBudW1lcmljIEFTICQkIEJFR0lOIFJF VFVSTiB2YXIxOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK0NSRUFURSBPUiBSRVBMQUNFIEZV TkNUSU9OIHBscGdzcWxmeDIobnVtZXJpYykKK1JFVFVSTlMgdm9pZCBBUyAkJCBCRUdJTiBMRVQg dmFyMiA9ICQxOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKK1NFVCBwbGFuX2NhY2hlX21vZGUg VE8gZm9yY2VfZ2VuZXJpY19wbGFuOworTEVUIHZhcjEgPSAzLjE0OworU0VMRUNUIHBscGdzcWxm eCgpOworIHBscGdzcWxmeCAKKy0tLS0tLS0tLS0tCisgICAgICAzLjE0CisoMSByb3cpCisKK0xF VCB2YXIxID0gMy4xNCAqIDI7CitTRUxFQ1QgcGxwZ3NxbGZ4KCk7CisgcGxwZ3NxbGZ4IAorLS0t LS0tLS0tLS0KKyAgICAgIDYuMjgKKygxIHJvdykKKworU0VMRUNUIHBscGdzcWxmeDIoMTAuMCk7 CisgcGxwZ3NxbGZ4MiAKKy0tLS0tLS0tLS0tLQorIAorKDEgcm93KQorCitTRUxFQ1QgdmFyMjsK KyB2YXIyIAorLS0tLS0tCisgMTAuMAorKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CitE Uk9QIFZBUklBQkxFIHZhcjI7CistLSBkZXBlbmRlbmN5IChwbGFuIGludmFsaWRhdGlvbikgc2hv dWxkIHdvcmsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIG51bWVyaWM7CitDUkVBVEUgVkFSSUFC TEUgdmFyMiBBUyBudW1lcmljOworTEVUIHZhcjEgPSAzLjE0ICogMzsKK1NFTEVDVCBwbHBnc3Fs ZngoKTsKKyBwbHBnc3FsZnggCistLS0tLS0tLS0tLQorICAgICAgOS40MgorKDEgcm93KQorCitM RVQgdmFyMSA9IDMuMTQgKiA0OworU0VMRUNUIHBscGdzcWxmeCgpOworIHBscGdzcWxmeCAKKy0t LS0tLS0tLS0tCisgICAgIDEyLjU2CisoMSByb3cpCisKK1NFTEVDVCBwbHBnc3FsZngyKDEwLjAp OworIHBscGdzcWxmeDIgCistLS0tLS0tLS0tLS0KKyAKKygxIHJvdykKKworU0VMRUNUIHZhcjI7 CisgdmFyMiAKKy0tLS0tLQorIDEwLjAKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOwor RFJPUCBWQVJJQUJMRSB2YXIyOworRFJPUCBGVU5DVElPTiBwbHBnc3FsZngoKTsKK0RST1AgRlVO Q1RJT04gcGxwZ3NxbGZ4MigpOworRVJST1I6ICBmdW5jdGlvbiBwbHBnc3FsZngyKCkgZG9lcyBu b3QgZXhpc3QKKy0tIGRlcGVuZGVuY3kgb24gY29sdW1uIHR5cGUKK0NSRUFURSBWQVJJQUJMRSB2 YXIxIEFTIGludDsKK0NSRUFURSBUQUJMRSB0ZXN0dmFyKGEgaW50LCBiIGludCwgYyBpbnQpOwor SU5TRVJUIElOVE8gdGVzdHZhciBWQUxVRVMoMTAsMjAsMzApOworQUxURVIgVEFCTEUgdGVzdHZh ciBEUk9QIENPTFVNTiBhOworQUxURVIgVEFCTEUgdGVzdHZhciBEUk9QIENPTFVNTiBiOworQ1JF QVRFIEZVTkNUSU9OIHBscGdzcWxmeDMoKQorUkVUVVJOUyB2b2lkIEFTICQkCitCRUdJTgorICBM RVQgdmFyMSA9IChTRUxFQ1QgKiBGUk9NIHRlc3R2YXIpOworICBSQUlTRSBOT1RJQ0UgJyUnLCB2 YXIxOworRU5ECiskJCBMQU5HVUFHRSBwbHBnc3FsOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1Qg cGxwZ3NxbGZ4MygpOworTk9USUNFOiAgMzAKKyBwbHBnc3FsZngzIAorLS0tLS0tLS0tLS0tCisg CisoMSByb3cpCisKK0FMVEVSIFRBQkxFIHRlc3R2YXIgQUxURVIgQ09MVU1OIGMgVFlQRSBudW1l cmljOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgcGxwZ3NxbGZ4MygpOworTk9USUNFOiAgMzAK KyBwbHBnc3FsZngzIAorLS0tLS0tLS0tLS0tCisgCisoMSByb3cpCisKK0RST1AgRlVOQ1RJT04g cGxwZ3NxbGZ4MygpOworRFJPUCBUQUJMRSB0ZXN0dmFyOworRFJPUCBWQVJJQUJMRSB2YXIxOwor U0VUIHBsYW5fY2FjaGVfbW9kZSBUTyBERUZBVUxUOworLS0gcmVwZWF0ZWQgZXhlY3V0aW9uIHNo b3VsZCBub3QgY3Jhc2gKK0NSRUFURSBWQVJJQUJMRSB2YXIxIGludDsKK0NSRUFURSBUQUJMRSB0 ZXN0dmFyKGEgaW50KTsKK0lOU0VSVCBJTlRPIHRlc3R2YXIgVkFMVUVTKDEpOworRE8gJCQKK0JF R0lOCisgIExFVCB2YXIxID0gMDsKKyAgRk9SIGkgSU4gMS4uMTAKKyAgTE9PUAorICAgIExFVCB2 YXIxID0gKFNFTEVDVCBhIEZST00gdGVzdHZhcik7CisgIEVORCBMT09QOworICBSQUlTRSBOT1RJ Q0UgJyUnLCB2YXIxOworRU5EOworJCQ7CitOT1RJQ0U6ICAxCitETyAkJAorQkVHSU4KKyAgTEVU IHZhcjEgPSAwOworICBGT1IgaSBJTiAxLi4xMAorICBMT09QCisgICAgTEVUIHZhcjEgPSAoU0VM RUNUIGEgKyB2YXIxIEZST00gdGVzdHZhcik7CisgIEVORCBMT09QOworICBSQUlTRSBOT1RJQ0Ug JyUnLCB2YXIxOworRU5EOworJCQ7CitOT1RJQ0U6ICAxMAorRE8gJCQKK0JFR0lOCisgIExFVCB2 YXIxID0gMDsKKyAgRk9SIGkgSU4gMS4uMTAKKyAgTE9PUAorICAgIExFVCB2YXIxID0gKFNFTEVD VCBhIEZST00gdGVzdHZhcikgKyB2YXIxOworICBFTkQgTE9PUDsKKyAgUkFJU0UgTk9USUNFICcl JywgdmFyMTsKK0VORDsKKyQkOworTk9USUNFOiAgMTAKK0RPICQkCitCRUdJTgorICBMRVQgdmFy MSA9IDA7CisgIEZPUiBpIElOIDEuLjEwCisgIExPT1AKKyAgICBMRVQgdmFyMSA9IGk7CisgIEVO RCBMT09QOworICBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxOworRU5EOworJCQ7CitOT1RJQ0U6ICAx MAorRE8gJCQKK0JFR0lOCisgIExFVCB2YXIxID0gMDsKKyAgRk9SIGkgSU4gMS4uMTAKKyAgTE9P UAorICAgIExFVCB2YXIxID0gaSArIHZhcjE7CisgIEVORCBMT09QOworICBSQUlTRSBOT1RJQ0Ug JyUnLCB2YXIxOworRU5EOworJCQ7CitOT1RJQ0U6ICA1NQorRFJPUCBWQVJJQUJMRSB2YXIxOwor RFJPUCBUQUJMRSB0ZXN0dmFyOworLS0gdXNhZ2UgTEVUIHN0YXRlbWVudCBpbiBwbHBnc3FsIHNo b3VsZCB3b3JrCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgdmFy MiBudW1lcmljW107CitETyAkJAorQkVHSU4KKyAgTEVUIHZhcjIgPSAne30nOjppbnRbXTsKKyAg Rk9SIGkgSU4gMS4uMTAKKyAgTE9PUAorICAgIExFVCB2YXIxID0gaTsKKyAgICBMRVQgdmFyMlt2 YXIxXSA9IGk7CisgIEVORCBMT09QOworICBSQUlTRSBOT1RJQ0UgJ3Jlc3VsdCBhcnJheTogJScs IHZhcjI7CitFTkQ7CiskJDsKK05PVElDRTogIHJlc3VsdCBhcnJheTogezEsMiwzLDQsNSw2LDcs OCw5LDEwfQorRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBWQVJJQUJMRSB2YXIyOworLS0gQ0FM TCBzdGF0ZW1lbnQgaXMgbm90IHN1cHBvcnRlZCB5ZXQKKy0tIHJlcXVpcmVzIGRpcmVjdCBhY2Nl c3MgdG8gc2Vzc2lvbiB2YXJpYWJsZSBmcm9tIGV4cHJlc3Npb24gZXhlY3V0b3IKK0NSRUFURSBW QVJJQUJMRSB2IGludDsKK0NSRUFURSBQUk9DRURVUkUgcChhcmcgaW50KSBBUyAkJCBCRUdJTiBS QUlTRSBOT1RJQ0UgJyUnLCBhcmc7IEVORCAkJCBMQU5HVUFHRSBwbHBnc3FsOworLS0gc2hvdWxk IG5vdCBjcmFzaCAoYnV0IGlzIG5vdCBzdXBwb3J0ZWQgeWV0KQorQ0FMTCBwKHYpOworRVJST1I6 ICBzZXNzaW9uIHZhcmlhYmxlIGNhbm5vdCBiZSB1c2VkIGFzIGFuIGFyZ3VtZW50CitETyAkJCBC RUdJTiBDQUxMIHAodik7IEVORCAkJDsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSBjYW5ub3Qg YmUgdXNlZCBhcyBhbiBhcmd1bWVudAorQ09OVEVYVDogIFNRTCBzdGF0ZW1lbnQgIkNBTEwgcCh2 KSIKK1BML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBDQUxMCitE Uk9QIFBST0NFRFVSRSBwKGludCk7CitEUk9QIFZBUklBQkxFIHY7CistLSBFWEVDVVRFIHN0YXRl bWVudCBpcyBub3Qgc3VwcG9ydGVkIHlldAorLS0gcmVxdWlyZXMgZGlyZWN0IGFjY2VzcyB0byBz ZXNzaW9uIHZhcmlhYmxlIGZyb20gZXhwcmVzc2lvbiBleGVjdXRvcgorQ1JFQVRFIFZBUklBQkxF IHYgaW50OworTEVUIHYgPSAyMDsKK1BSRVBBUkUgcHRlc3QoaW50KSBBUyBTRUxFQ1QgJDE7Cist LSBzaG91bGQgZmFpbAorRVhFQ1VURSBwdGVzdCh2KTsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJs ZSBjYW5ub3QgYmUgdXNlZCBhcyBhbiBhcmd1bWVudAorREVBTExPQ0FURSBwdGVzdDsKK0RST1Ag VkFSSUFCTEUgdjsKKy0tIHRlc3Qgc2VhcmNoIHBhdGgKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3Q7 CitDUkVBVEUgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBBUyBudW1lcmljOworLS0gc2hvdWxkIGZh aWwKK0xFVCB2YXIxID0gcGkoKTsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSAidmFyMSIgZG9l c24ndCBleGlzdAorTElORSAxOiBMRVQgdmFyMSA9IHBpKCk7CisgICAgICAgICAgICBeCitTRUxF Q1QgdmFyMTsKK0VSUk9SOiAgY29sdW1uICJ2YXIxIiBkb2VzIG5vdCBleGlzdAorTElORSAxOiBT RUxFQ1QgdmFyMTsKKyAgICAgICAgICAgICAgIF4KKy0tIHNob3VsZCBiZSBvaworTEVUIHN2YXJ0 ZXN0LnZhcjEgPSBwaSgpOworU0VMRUNUIHN2YXJ0ZXN0LnZhcjE7CisgICAgICAgdmFyMSAgICAg ICAKKy0tLS0tLS0tLS0tLS0tLS0tLQorIDMuMTQxNTkyNjUzNTg5NzkKKygxIHJvdykKKworU0VU IHNlYXJjaF9wYXRoIFRPIHN2YXJ0ZXN0OworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IHBp KCkgKyAxMDsKK1NFTEVDVCB2YXIxOworICAgICAgIHZhcjEgICAgICAgCistLS0tLS0tLS0tLS0t LS0tLS0KKyAxMy4xNDE1OTI2NTM1ODk4CisoMSByb3cpCisKK1JFU0VUIHNlYXJjaF9wYXRoOwor RFJPUCBTQ0hFTUEgc3ZhcnRlc3QgQ0FTQ0FERTsKK05PVElDRTogIGRyb3AgY2FzY2FkZXMgdG8g c2Vzc2lvbiB2YXJpYWJsZSBzdmFydGVzdC52YXIxCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0 ZXh0OworLS0gdmFyaWFibGVzIGNhbiBiZSB1cGRhdGVkIHVuZGVyIFJPIHRyYW5zYWN0aW9uCitC RUdJTjsKK1NFVCBUUkFOU0FDVElPTiBSRUFEIE9OTFk7CitMRVQgdmFyMSA9ICdoZWxsbyc7CitD T01NSVQ7CitTRUxFQ1QgdmFyMTsKKyB2YXIxICAKKy0tLS0tLS0KKyBoZWxsbworKDEgcm93KQor CitEUk9QIFZBUklBQkxFIHZhcjE7CistLSB0ZXN0IG9mIGRvbWFpbnMKK0NSRUFURSBET01BSU4g aW50X2RvbWFpbiBBUyBpbnQgTk9UIE5VTEwgQ0hFQ0sgKFZBTFVFID4gMTAwKTsKK0NSRUFURSBW QVJJQUJMRSB2YXIxIEFTIGludF9kb21haW47CistLSBzaG91bGQgZmFpbAorU0VMRUNUIHZhcjE7 CitFUlJPUjogIGRvbWFpbiBpbnRfZG9tYWluIGRvZXMgbm90IGFsbG93IG51bGwgdmFsdWVzCist LSBzaG91bGQgYmUgb2sKK0xFVCB2YXIxID0gMTAwMDsKK1NFTEVDVCB2YXIxOworIHZhcjEgCist LS0tLS0KKyAxMDAwCisoMSByb3cpCisKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IDEwOwor RVJST1I6ICB2YWx1ZSBmb3IgZG9tYWluIGludF9kb21haW4gdmlvbGF0ZXMgY2hlY2sgY29uc3Ry YWludCAiaW50X2RvbWFpbl9jaGVjayIKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IE5VTEw7 CitFUlJPUjogIGRvbWFpbiBpbnRfZG9tYWluIGRvZXMgbm90IGFsbG93IG51bGwgdmFsdWVzCist LSBub3RlIC0gZG9tYWluIGRlZmF1bHRzIGFyZSBub3Qgc3VwcG9ydGVkIHlldCAobGlrZSBQTHBn U1FMKQorRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBET01BSU4gaW50X2RvbWFpbjsKKy0tIHRo ZSBleHByZXNzaW9uIHNob3VsZCByZW1haW4gInVua25vd24iCitDUkVBVEUgVkFSSUFCTEUgdmFy MSBBUyBpbnQ0bXVsdGlyYW5nZVtdOworLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9IE5VTEw7 CitMRVQgdmFyMSA9ICd7IntbMiw4KSxbMTEsMTQpfSIsIntbNSw4KSxbMTIsMTQpfSJ9JzsKK0xF VCB2YXIxWzJdID0gJ3tbNSw4KSxbMTIsMTAwKX0nOworU0VMRUNUIHZhcjE7CisgICAgICAgICAg ICAgICAgICB2YXIxICAgICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgeyJ7WzIsOCksWzExLDE0KX0iLCJ7WzUsOCksWzEyLDEwMCl9In0K KygxIHJvdykKKworLS1JdCBzaG91bGQgd29yayBpbiBwbHBnc3FsIHRvbworRE8gJCQKK0JFR0lO CisgIExFVCB2YXIxID0gTlVMTDsKKyAgTEVUIHZhcjEgPSAneyJ7WzIsOCksWzExLDE0KX0iLCJ7 WzUsOCksWzEyLDE0KX0ifSc7CisgIExFVCB2YXIxWzJdID0gJ3tbNSw4KSxbMTIsMTAwKX0nOwor CisgIFJBSVNFIE5PVElDRSAnJScsIHZhcjE7CitFTkQ7CiskJDsKK05PVElDRTogIHsie1syLDgp LFsxMSwxNCl9Iiwie1s1LDgpLFsxMiwxMDApfSJ9CitEUk9QIFZBUklBQkxFIHZhcjE7CitDUkVB VEUgU0NIRU1BIHN2YXJ0ZXN0IENSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludCBDUkVBVEUgVEFC TEUgZm9vKGEgaW50KTsKK0xFVCBzdmFydGVzdC52YXIxID0gMTAwOworU0VMRUNUIHN2YXJ0ZXN0 LnZhcjE7CisgdmFyMSAKKy0tLS0tLQorICAxMDAKKygxIHJvdykKKworU0VUIHNlYXJjaF9wYXRo IHRvIHB1YmxpYywgc3ZhcnRlc3Q7CitTRUxFQ1QgdmFyMTsKKyB2YXIxIAorLS0tLS0tCisgIDEw MAorKDEgcm93KQorCitEUk9QIFNDSEVNQSBzdmFydGVzdCBDQVNDQURFOworTk9USUNFOiAgZHJv cCBjYXNjYWRlcyB0byAyIG90aGVyIG9iamVjdHMKK0RFVEFJTDogIGRyb3AgY2FzY2FkZXMgdG8g dGFibGUgZm9vCitkcm9wIGNhc2NhZGVzIHRvIHNlc3Npb24gdmFyaWFibGUgdmFyMQorQ1JFQVRF IFZBUklBQkxFIHZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgQVMgaW50W107CitM RVQgdmFyMSA9IDI7CitMRVQgdmFyMiA9ICd7fSc6OmludFtdOworTEVUIHZhcjJbdmFyMV0gPSAw OworU0VMRUNUIHZhcjI7CisgICB2YXIyICAgIAorLS0tLS0tLS0tLS0KKyBbMjoyXT17MH0KKygx IHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxLCB2YXIyOworQ1JFQVRFIFZBUklBQkxFIHZhcjEg QVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgQVMgaW50W107CitMRVQgdmFyMSA9IDI7CitM RVQgdmFyMiA9ICd7fSc6OmludFtdOworU0VMRUNUIHZhcjI7CisgdmFyMiAKKy0tLS0tLQorIHt9 CisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMSwgdmFyMjsKKy0tIHRoZSBMRVQgc3RhdGVt ZW50IHNob3VsZCBiZSBkaXNhbGxvd2VkIGluIENURQorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMg aW50OworV0lUSCB4IEFTIChMRVQgdmFyMSA9IDEwMCkgU0VMRUNUICogRlJPTSB4OworRVJST1I6 ICBzeW50YXggZXJyb3IgYXQgb3IgbmVhciAiTEVUIgorTElORSAxOiBXSVRIIHggQVMgKExFVCB2 YXIxID0gMTAwKSBTRUxFQ1QgKiBGUk9NIHg7CisgICAgICAgICAgICAgICAgICAgXgorLS0gc2hv dWxkIGJlIG9rCitMRVQgdmFyMSA9IGdlbmVyYXRlX3NlcmllcygxLCAxKTsKKy0tIHNob3VsZCBm YWlsCitMRVQgdmFyMSA9IGdlbmVyYXRlX3NlcmllcygxLCAyKTsKK0VSUk9SOiAgZXhwcmVzc2lv biByZXR1cm5lZCBtb3JlIHRoYW4gb25lIHJvdworTEVUIHZhcjEgPSBnZW5lcmF0ZV9zZXJpZXMo MSwgMCk7CitFUlJPUjogIGV4cHJlc3Npb24gcmV0dXJuZWQgbm8gcm93cworRFJPUCBWQVJJQUJM RSB2YXIxOworLS0gY29tcG9zaXRlIHZhcmlhYmxlcworQ1JFQVRFIFRZUEUgc3ZfeHl6IEFTICh4 IGludCwgeSBpbnQsIHogbnVtZXJpYygxMCwyKSk7CitDUkVBVEUgVkFSSUFCTEUgdjEgQVMgc3Zf eHl6OworQ1JFQVRFIFZBUklBQkxFIHYyIEFTIHN2X3h5ejsKK0xFVCB2MSA9ICgxLCAyLCAzLjE0 KTsKK0xFVCB2MiA9ICgxMCwgMjAsIDMuMTQgKiAxMCk7CistLSBzaG91bGQgd29yayB0b28gLSB0 aGVyZSBhcmUgcHJlcGFyZWQgY2FzdHMKK0xFVCB2MSA9ICgxLCAyLCAzKTsKK1NFTEVDVCB2MTsK KyAgICAgdjEgICAgIAorLS0tLS0tLS0tLS0tCisgKDEsMiwzLjAwKQorKDEgcm93KQorCitTRUxF Q1QgdjI7CisgICAgICB2MiAgICAgICAKKy0tLS0tLS0tLS0tLS0tLQorICgxMCwyMCwzMS40MCkK KygxIHJvdykKKworU0VMRUNUICh2MSkuKjsKKyB4IHwgeSB8ICB6ICAgCistLS0rLS0tKy0tLS0t LQorIDEgfCAyIHwgMy4wMAorKDEgcm93KQorCitTRUxFQ1QgKHYyKS4qOworIHggIHwgeSAgfCAg IHogICAKKy0tLS0rLS0tLSstLS0tLS0tCisgMTAgfCAyMCB8IDMxLjQwCisoMSByb3cpCisKK1NF TEVDVCB2MS54ICsgdjEuejsKKyA/Y29sdW1uPyAKKy0tLS0tLS0tLS0KKyAgICAgNC4wMAorKDEg cm93KQorCitTRUxFQ1QgdjIueCArIHYyLno7CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgICAg NDEuNDAKKygxIHJvdykKKworLS0gYWNjZXNzIHRvIGNvbXBvc2l0ZSBmaWVsZHMgc2hvdWxkIGJl IHNhZmUgdG9vCitDUkVBVEUgUk9MRSByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CitTRVQgUk9MRSBU TyByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CistLSBzaG91bGQgZmFpbAorU0VMRUNUIHYyLng7CitF UlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHYyCitTRVQgUk9M RSBUTyBERUZBVUxUOworRFJPUCBWQVJJQUJMRSB2MTsKK0RST1AgVkFSSUFCTEUgdjI7CitEUk9Q IFRZUEUgc3ZfeHl6OworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKKy0tIHNob3Vs ZCBmYWlsLCB3cm9uZyBpZGVudGlmaWVyCitMRVQgbm9kYi5ub3NjaGVtYS5ub3Zhci5ub2ZpZWxk Lm5vc3ViZmllbGQgPSAxMDsKK0VSUk9SOiAgaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBt YW55IGRvdHRlZCBuYW1lcyk6IG5vZGIubm9zY2hlbWEubm92YXIubm9maWVsZC5ub3N1YmZpZWxk CitMRVQgbm9kYi5ub3NjaGVtYS5ub3Zhci5ub2ZpZWxkID0gMTA7CitFUlJPUjogIGNyb3NzLWRh dGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogbm9kYi5ub3NjaGVtYS5ub3Zh ci5ub2ZpZWxkCitMRVQgbm9kYi5ub3NjaGVtYS5ub3ZhciA9IDEwOworRVJST1I6ICBjcm9zcy1k YXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6IG5vZGIubm9zY2hlbWEubm92 YXIKK0NSRUFURSBUWVBFIHQxIEFTIChhIGludCwgYiBudW1lcmljLCBjIHRleHQpOworQ1JFQVRF IFZBUklBQkxFIHYxIEFTIHQxOworTEVUIHYxID0gKDEsIHBpKCksICdoZWxsbycpOworU0VMRUNU IHYxOworICAgICAgICAgICAgIHYxICAgICAgICAgICAgIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorICgxLDMuMTQxNTkyNjUzNTg5NzksaGVsbG8pCisoMSByb3cpCisKK0xFVCB2MS5i ID0gMTAuMjIyMjsKK1NFTEVDVCB2MTsKKyAgICAgICAgdjEgICAgICAgICAKKy0tLS0tLS0tLS0t LS0tLS0tLS0KKyAoMSwxMC4yMjIyLGhlbGxvKQorKDEgcm93KQorCistLSBzaG91bGQgZmFpbCwg YXR0cmlidXRlIGRvZXNuJ3QgZXhpc3QKK0xFVCB2MS54ID0gMTA7CitFUlJPUjogIGNhbm5vdCBh c3NpZ24gdG8gZmllbGQgIngiIG9mIGNvbHVtbiAidjEiIGJlY2F1c2UgdGhlcmUgaXMgbm8gc3Vj aCBjb2x1bW4gaW4gZGF0YSB0eXBlIHQxCitMSU5FIDE6IExFVCB2MS54ID0gMTA7CisgICAgICAg ICAgICBeCistLSBzaG91bGQgZmFpbCwgZG9uJ3QgYWxsb3cgbXVsdGkgY29sdW1uIHF1ZXJ5CitM RVQgdjEgPSAoTlVMTDo6dDEpLio7CitFUlJPUjogIGFzc2lnbm1lbnQgZXhwcmVzc2lvbiByZXR1 cm5lZCAzIGNvbHVtbnMKK0xJTkUgMTogTEVUIHYxID0gKE5VTEw6OnQxKS4qOworICAgICAgICAg ICAgICAgICAgXgorLS0gYWxsb3cgRFJPUCBvciBBREQgQVRUUklCVVRFIG9uIGNvbXBvc2l0ZSB0 eXBlcworLS0gc2hvdWxkIGJlIG9rCitBTFRFUiBUWVBFIHQxIERST1AgQVRUUklCVVRFIGM7CitT RUxFQ1QgdjE7CisgICAgIHYxICAgICAgCistLS0tLS0tLS0tLS0tCisgKDEsMTAuMjIyMikKKygx IHJvdykKKworLS0gc2hvdWxkIGJlIG9rCitBTFRFUiBUWVBFIHQxIEFERCBBVFRSSUJVVEUgYyBp bnQ7CitTRUxFQ1QgdjE7CisgICAgICB2MSAgICAgIAorLS0tLS0tLS0tLS0tLS0KKyAoMSwxMC4y MjIyLCkKKygxIHJvdykKKworTEVUIHYxID0gKDEwLCAxMC4zLCAyMCk7CitTRUxFQ1QgdjE7Cisg ICAgICB2MSAgICAgIAorLS0tLS0tLS0tLS0tLS0KKyAoMTAsMTAuMywyMCkKKygxIHJvdykKKwor LS0gc2hvdWxkIGJlIG9rCitBTFRFUiBUWVBFIHQxIERST1AgQVRUUklCVVRFIGI7CitTRUxFQ1Qg djE7CisgICB2MSAgICAKKy0tLS0tLS0tLQorICgxMCwyMCkKKygxIHJvdykKKworLS0gc2hvdWxk IGZhaWwsIGRpc2FsbG93IGRhdGEgdHlwZSBjaGFuZ2UKK0FMVEVSIFRZUEUgdDEgQUxURVIgQVRU UklCVVRFIGMgVFlQRSBpbnQ7CitFUlJPUjogIGNhbm5vdCBhbHRlciB0eXBlICJ0MSIgYmVjYXVz ZSBzZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudjEiIHVzZXMgaXQKK0RST1AgVkFSSUFCTEUgdjE7 CitEUk9QIFRZUEUgdDE7CistLSB0aGUgdGFibGUgdHlwZSBjYW4gYmUgdXNlZCBhcyBjb21wb3Np dGUgdHlwZSB0b28KK0NSRUFURSBUQUJMRSBzdmFyX3Rlc3QoYSBpbnQsIGIgbnVtZXJpYywgYyBk YXRlKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHN2YXJfdGVzdDsKK0xFVCB2YXIxID0gKDEw LCBwaSgpLCAnMjAyMy0wNS0yNicpOworU0VMRUNUIHZhcjE7CisgICAgICAgICAgICAgICB2YXIx ICAgICAgICAgICAgICAgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKDEw LDMuMTQxNTkyNjUzNTg5NzksMDUtMjYtMjAyMykKKygxIHJvdykKKworLS0gc2hvdWxkIGZhaWwg ZHVlIGRlcGVuZGVuY3kKK0FMVEVSIFRBQkxFIHN2YXJfdGVzdCBBTFRFUiBDT0xVTU4gYSBUWVBF IHRleHQ7CitFUlJPUjogIGNhbm5vdCBhbHRlciB0YWJsZSAic3Zhcl90ZXN0IiBiZWNhdXNlIHNl c3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIxIiB1c2VzIGl0CistLSBzaG91bGQgZmFpbAorRFJP UCBUQUJMRSBzdmFyX3Rlc3Q7CitFUlJPUjogIGNhbm5vdCBkcm9wIHRhYmxlIHN2YXJfdGVzdCBi ZWNhdXNlIG90aGVyIG9iamVjdHMgZGVwZW5kIG9uIGl0CitERVRBSUw6ICBzZXNzaW9uIHZhcmlh YmxlIHZhcjEgZGVwZW5kcyBvbiB0eXBlIHN2YXJfdGVzdAorSElOVDogIFVzZSBEUk9QIC4uLiBD QVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KK0RST1AgVkFSSUFCTEUg dmFyMTsKK0RST1AgVEFCTEUgc3Zhcl90ZXN0OworQ1JFQVRFIFRZUEUgdmFydGVzdF90MSBBUyAo YSBpbnQsIGIgaW50KTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcnRlc3RfdDE7CitDUkVB VEUgVEFCTEUgdmFydGVzdHRhYiAoeGNvbCBpbnQpOworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJf dGVzdF9yb2xlOworR1JBTlQgVVBEQVRFIE9OIFZBUklBQkxFIHZhcjEgVE8gcmVncmVzc192YXJf dGVzdF9yb2xlOworR1JBTlQgU0VMRUNUIE9OIFRBQkxFIHZhcnRlc3R0YWIgVE8gcmVncmVzc192 YXJfdGVzdF9yb2xlOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJfdGVzdF9yb2xlOworLS0gc2hv dWxkIGJlIG9rCitMRVQgdmFyMSA9ICgxMCwgMjApOworTEVUIHZhcjEuYSA9IDMwOworRE8gJCQK K0JFR0lOCisgIExFVCB2YXIxID0gKDEwMCwgMTAwKTsKKyAgTEVUIHZhcjEuYSA9IDEwMDA7CitF TkQ7CiskJDsKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgdmFyMS5hOworRVJST1I6ICBwZXJtaXNz aW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitTRUxFQ1QgdmFyMTsKK0VSUk9S OiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQorTEVUIHZhcjEu YSA9IHZhcjEuYSArIDEwOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2 YXJpYWJsZSB2YXIxCitMRVQgdmFyMS5hID0gKFNFTEVDVCAqIEZST00gKFNFTEVDVCBjb3VudCgq KSBGUk9NIHZhcnRlc3R0YWIgV0hFUkUgeGNvbCA9IHZhcjEuYSArIDEwKSk7CitFUlJPUjogIHBl cm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKK0RPICQkIEJFR0lOIFJB SVNFIE5PVElDRSAnJScsIHZhcjE7IEVORCAkJDsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQg Zm9yIHNlc3Npb24gdmFyaWFibGUgdmFyMQorQ09OVEVYVDogIFBML3BnU1FMIGV4cHJlc3Npb24g InZhcjEiCitQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQgUkFJ U0UKK0RPICQkIEJFR0lOIFJBSVNFIE5PVElDRSAnJScsIHZhcjEuYTsgRU5EICQkOworRVJST1I6 ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitDT05URVhUOiAg UEwvcGdTUUwgZXhwcmVzc2lvbiAidmFyMS5hIgorUEwvcGdTUUwgZnVuY3Rpb24gaW5saW5lX2Nv ZGVfYmxvY2sgbGluZSAxIGF0IFJBSVNFCitETyAkJCBCRUdJTiBMRVQgdmFyMS5hID0gdmFyMS5h ICsgMTA7IEVORCAkJDsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Npb24gdmFy aWFibGUgdmFyMQorQ09OVEVYVDogIFNRTCBzdGF0ZW1lbnQgIkxFVCB2YXIxLmEgPSB2YXIxLmEg KyAxMCIKK1BML3BnU1FMIGZ1bmN0aW9uIGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBTUUwg c3RhdGVtZW50CitTRVQgUk9MRSBUTyBERUZBVUxUOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxF IHZhcjEgVE8gcmVncmVzc192YXJfdGVzdF9yb2xlOworU0VUIFJPTEUgVE8gcmVncmVzc192YXJf dGVzdF9yb2xlOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMS5hOworICBhICAgCistLS0t LS0KKyAxMDAwCisoMSByb3cpCisKK1NFTEVDVCB2YXIxOworICAgIHZhcjEgICAgCistLS0tLS0t LS0tLS0KKyAoMTAwMCwxMDApCisoMSByb3cpCisKK0xFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMDsK K0xFVCB2YXIxLmEgPSAoU0VMRUNUICogRlJPTSAoU0VMRUNUIGNvdW50KCopIEZST00gdmFydGVz dHRhYiBXSEVSRSB4Y29sID0gdmFyMS5hICsgMTApKTsKK0RPICQkIEJFR0lOIFJBSVNFIE5PVElD RSAnJScsIHZhcjE7IEVORCAkJDsKK05PVElDRTogICgwLDEwMCkKK0RPICQkIEJFR0lOIFJBSVNF IE5PVElDRSAnJScsIHZhcjEuYTsgRU5EICQkOworTk9USUNFOiAgMAorRE8gJCQgQkVHSU4gTEVU IHZhcjEuYSA9IHZhcjEuYSArIDEwOyBFTkQgJCQ7CitTRVQgUk9MRSBUTyBERUZBVUxUOworUkVW T0tFIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIEZST00gcmVncmVzc192YXJfdGVzdF9yb2xlOwor U0VUIFJPTEUgVE8gcmVncmVzc192YXJfdGVzdF9yb2xlOworLS0gc2hvdWxkIGZhaWwgYWdhaW4K K1NFTEVDVCB2YXIxLmE7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZh cmlhYmxlIHZhcjEKK1NFTEVDVCB2YXIxOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Ig c2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitMRVQgdmFyMS5hID0gdmFyMS5hICsgMTA7CitFUlJPUjog IHBlcm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlIHZhcjEKK0xFVCB2YXIxLmEg PSAoU0VMRUNUICogRlJPTSAoU0VMRUNUIGNvdW50KCopIEZST00gdmFydGVzdHRhYiBXSEVSRSB4 Y29sID0gdmFyMS5hICsgMTApKTsKK0VSUk9SOiAgcGVybWlzc2lvbiBkZW5pZWQgZm9yIHNlc3Np b24gdmFyaWFibGUgdmFyMQorRE8gJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgdmFyMTsgRU5E ICQkOworRVJST1I6ICBwZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIx CitDT05URVhUOiAgUEwvcGdTUUwgZXhwcmVzc2lvbiAidmFyMSIKK1BML3BnU1FMIGZ1bmN0aW9u IGlubGluZV9jb2RlX2Jsb2NrIGxpbmUgMSBhdCBSQUlTRQorRE8gJCQgQkVHSU4gUkFJU0UgTk9U SUNFICclJywgdmFyMS5hOyBFTkQgJCQ7CitFUlJPUjogIHBlcm1pc3Npb24gZGVuaWVkIGZvciBz ZXNzaW9uIHZhcmlhYmxlIHZhcjEKK0NPTlRFWFQ6ICBQTC9wZ1NRTCBleHByZXNzaW9uICJ2YXIx LmEiCitQTC9wZ1NRTCBmdW5jdGlvbiBpbmxpbmVfY29kZV9ibG9jayBsaW5lIDEgYXQgUkFJU0UK K0RPICQkIEJFR0lOIExFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMDsgRU5EICQkOworRVJST1I6ICBw ZXJtaXNzaW9uIGRlbmllZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSB2YXIxCitDT05URVhUOiAgU1FM IHN0YXRlbWVudCAiTEVUIHZhcjEuYSA9IHZhcjEuYSArIDEwIgorUEwvcGdTUUwgZnVuY3Rpb24g aW5saW5lX2NvZGVfYmxvY2sgbGluZSAxIGF0IFNRTCBzdGF0ZW1lbnQKK1NFVCBST0xFIFRPIERF RkFVTFQ7CitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRBQkxFIHZhcnRlc3R0YWI7CitEUk9Q IFJPTEUgcmVncmVzc192YXJfdGVzdF9yb2xlOworRFJPUCBUWVBFIHZhcnRlc3RfdDE7CitDUkVB VEUgVFlQRSB2YXJ0ZXN0X3QxIEFTIChhIGludCwgYiBpbnQpOworQ1JFQVRFIFZBUklBQkxFIHZh cjEgQVMgdGV4dDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIHZhcnRlc3RfdDE7CistLSBzaG91 bGQgZmFpbAorU0VMRUNUIHZhcjEuYTsKK0VSUk9SOiAgdmFyaWFibGUgInB1YmxpYy52YXIxIiBp cyBvZiB0eXBlICJ0ZXh0Iiwgd2hpY2ggaXMgbm90IGEgY29tcG9zaXRlIHR5cGUKK0xJTkUgMTog U0VMRUNUIHZhcjEuYTsKKyAgICAgICAgICAgICAgIF4KK1NFTEVDVCB2YXIyLmM7CitFUlJPUjog IGNvdWxkIG5vdCBpZGVudGlmeSBjb2x1bW4gImMiIGluIHZhcmlhYmxlICJwdWJsaWMudmFyMiIK K0xJTkUgMTogU0VMRUNUIHZhcjIuYzsKKyAgICAgICAgICAgICAgIF4KK0RST1AgVkFSSUFCTEUg dmFyMTsKK0RST1AgVkFSSUFCTEUgdmFyMjsKK0RST1AgVFlQRSB2YXJ0ZXN0X3QxOworQ1JFQVRF IFZBUklBQkxFIHZhcjEgQVMgaW50OworTEVUIHZhcjEgPSAxOworTEVUIHZhcjEgPSAnMSc7CitM RVQgdmFyMSA9IDEwLjE7CistLSBzaG91bGQgZmFpbAorTEVUIHZhcjEgPSAnMSc6Ompzb25iOwor RVJST1I6ICB2YXJpYWJsZSAicHVibGljLnZhcjEiIGlzIG9mIHR5cGUgaW50ZWdlciwgYnV0IGV4 cHJlc3Npb24gaXMgb2YgdHlwZSBqc29uYgorTElORSAxOiBMRVQgdmFyMSA9ICcxJzo6anNvbmI7 CisgICAgICAgICAgICAgICAgICAgXgorSElOVDogIFlvdSB3aWxsIG5lZWQgdG8gcmV3cml0ZSBv ciBjYXN0IHRoZSBleHByZXNzaW9uLgorLS0gc2hvdWxkIGJlIG9rCitMRVQgdmFyMSA9ICcxJzo6 anNvbmI6OmludDsKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMS54ID0gMTA7CitFUlJPUjogIGNh bm5vdCBhc3NpZ24gdG8gZmllbGQgIngiIG9mIHNlc3Npb24gdmFyaWFibGUgInB1YmxpYy52YXIx IiBiZWNhdXNlIGl0cyB0eXBlIGludGVnZXIgaXMgbm90IGEgY29tcG9zaXRlIHR5cGUKK0xJTkUg MTogTEVUIHZhcjEueCA9IDEwOworICAgICAgICAgICAgXgorRFJPUCBWQVJJQUJMRSB2YXIxOwor Q1JFQVRFIFNDSEVNQSB2YXJ0ZXN0OworQ1JFQVRFIFRZUEUgdmFydGVzdHR5cGUgQVMgKHZhcnRl c3QgaW50KTsKK0NSRUFURSBWQVJJQUJMRSB2YXJ0ZXN0LnZhcnRlc3QgQVMgdmFydGVzdHR5cGU7 CitTRVQgU0VBUkNIX1BBVEggVE8gdmFydGVzdDsKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFydGVz dC52YXJ0ZXN0ID0gMTsKK0VSUk9SOiAgdGFyZ2V0ICJ2YXJ0ZXN0LnZhcnRlc3QiIG9mIExFVCBj b21tYW5kIGlzIGFtYmlndW91cworTElORSAxOiBMRVQgdmFydGVzdC52YXJ0ZXN0ID0gMTsKKyAg ICAgICAgICAgIF4KK0RST1AgVkFSSUFCTEUgdmFydGVzdC52YXJ0ZXN0OworRFJPUCBUWVBFIHZh cnRlc3R0eXBlOworRVJST1I6ICB0eXBlICJ2YXJ0ZXN0dHlwZSIgZG9lcyBub3QgZXhpc3QKK0RS T1AgU0NIRU1BIHZhcnRlc3Q7CitTRVQgU0VBUkNIX1BBVEggVE8gREVGQVVMVDsKKy0tIGFycmF5 cyBhcmUgc3VwcG9ydGVkCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBudW1lcmljW107CitMRVQg dmFyMSA9IEFSUkFZWzEuMSwyLjFdOworTEVUIHZhcjFbMV0gPSAxMC4xOworU0VMRUNUIHZhcjE7 CisgICAgdmFyMSAgICAKKy0tLS0tLS0tLS0tLQorIHsxMC4xLDIuMX0KKygxIHJvdykKKworLS0g TEVUIHRhcmdldCBkb2Vzbid0IGFsbG93IHNyZiwgc2hvdWxkIGZhaWwKK0xFVCB2YXIxW2dlbmVy YXRlX3NlcmllcygxLDMpXSA9IDEwMDsKK0VSUk9SOiAgc2V0LXJldHVybmluZyBmdW5jdGlvbnMg YXJlIG5vdCBhbGxvd2VkIGluIExFVAorTElORSAxOiBMRVQgdmFyMVtnZW5lcmF0ZV9zZXJpZXMo MSwzKV0gPSAxMDA7CisgICAgICAgICAgICAgICAgIF4KK0RST1AgVkFSSUFCTEUgdmFyMTsKKy0t IGFycmF5cyBpbnNpZGUgY29tcG9zaXRlCitDUkVBVEUgVFlQRSB0MSBBUyAoYSBudW1lcmljLCBi IG51bWVyaWNbXSk7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0MTsKK0xFVCB2YXIxID0gKDEw LjEsIEFSUkFZWzAuMCwgMC4wXSk7CitMRVQgdmFyMS5hID0gMTAuMjsKK1NFTEVDVCB2YXIxOwor ICAgICAgICB2YXIxICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tCisgKDEwLjIsInswLjAs MC4wfSIpCisoMSByb3cpCisKK0xFVCB2YXIxLmJbMV0gPSAxMC4zOworU0VMRUNUIHZhcjE7Cisg ICAgICAgIHZhcjEgICAgICAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICgxMC4yLCJ7MTAu MywwLjB9IikKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBUWVBFIHQxOwor LS0gRW5jb3VyYWdlIHVzZSBvZiBwYXJhbGxlbCBwbGFucworU0VUIHBhcmFsbGVsX3NldHVwX2Nv c3QgPSAwOworU0VUIHBhcmFsbGVsX3R1cGxlX2Nvc3QgPSAwOworU0VUIG1pbl9wYXJhbGxlbF90 YWJsZV9zY2FuX3NpemUgPSAwOworU0VUIG1heF9wYXJhbGxlbF93b3JrZXJzX3Blcl9nYXRoZXIg PSAyOworLS0gdGVzdCBvbiBxdWVyeSB3aXRoIHdvcmtlcnMKK0NSRUFURSBUQUJMRSBzdmFyX3Rl c3QoYSBpbnQpOworSU5TRVJUIElOVE8gc3Zhcl90ZXN0IFNFTEVDVCAqIEZST00gZ2VuZXJhdGVf c2VyaWVzKDEsMTAwMCk7CitBTkFMWVpFIHN2YXJfdGVzdDsKK0NSRUFURSBWQVJJQUJMRSB6ZXJv IGludDsKK0xFVCB6ZXJvID0gMDsKKy0tIHJlc3VsdCBzaG91bGQgYmUgMTAwCitTRUxFQ1QgY291 bnQoKikgRlJPTSBzdmFyX3Rlc3QgV0hFUkUgYSUxMCA9IHplcm87CisgY291bnQgCistLS0tLS0t CisgICAxMDAKKygxIHJvdykKKworLS0gcGFyYWxsZWwgZXhlY3V0aW9uIGlzIG5vdCBzdXBwb3J0 ZWQgeWV0CitFWFBMQUlOIChDT1NUUyBPRkYpIFNFTEVDVCBjb3VudCgqKSBGUk9NIHN2YXJfdGVz dCBXSEVSRSBhJTEwID0gemVybzsKKyAgICAgICAgICAgIFFVRVJZIFBMQU4gICAgICAgICAgICAg CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIEFnZ3JlZ2F0ZQorICAgLT4g IFNlcSBTY2FuIG9uIHN2YXJfdGVzdAorICAgICAgICAgRmlsdGVyOiAoKGEgJSAxMCkgPSB6ZXJv KQorKDMgcm93cykKKworTEVUIHplcm8gPSAoU0VMRUNUIGNvdW50KCopIEZST00gc3Zhcl90ZXN0 KTsKKy0tIHJlc3VsdCBzaG91bGQgYmUgMTAwMAorU0VMRUNUIHplcm87CisgemVybyAKKy0tLS0t LQorIDEwMDAKKygxIHJvdykKKworRFJPUCBWQVJJQUJMRSB6ZXJvOworRFJPUCBUQUJMRSBzdmFy X3Rlc3Q7CitSRVNFVCBwYXJhbGxlbF9zZXR1cF9jb3N0OworUkVTRVQgcGFyYWxsZWxfdHVwbGVf Y29zdDsKK1JFU0VUIG1pbl9wYXJhbGxlbF90YWJsZV9zY2FuX3NpemU7CitSRVNFVCBtYXhfcGFy YWxsZWxfd29ya2Vyc19wZXJfZ2F0aGVyOworLS0gdGhlIHJlc3VsdCBvZiB2aWV3IHNob3VsZCBi ZSBzYW1lIGluIHBhcmFsbGVsIG1vZGUgdG9vCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7 CitMRVQgdmFyMSA9IDEwOworQ1JFQVRFIFZJRVcgdmFyMXZpZXcgQVMgU0VMRUNUIENPQUxFU0NF KHZhcjEsIDApIEFTIHJlc3VsdDsKK1NFTEVDVCAqIEZST00gdmFyMXZpZXc7CisgcmVzdWx0IAor LS0tLS0tLS0KKyAgICAgMTAKKygxIHJvdykKKworU0VUIGRlYnVnX3BhcmFsbGVsX3F1ZXJ5IFRP IG9uOworU0VMRUNUICogRlJPTSB2YXIxdmlldzsKKyByZXN1bHQgCistLS0tLS0tLQorICAgICAx MAorKDEgcm93KQorCitTRVQgZGVidWdfcGFyYWxsZWxfcXVlcnkgVE8gb2ZmOworRFJPUCBWSUVX IHZhcjF2aWV3OworRFJPUCBWQVJJQUJMRSB2YXIxOworQ1JFQVRFIFZBUklBQkxFIHZhcmlkIGlu dDsKK0NSRUFURSBUQUJMRSBzdmFyX3Rlc3QoaWQgaW50LCB2IGludCk7CitMRVQgdmFyaWQgPSAx OworSU5TRVJUIElOVE8gc3Zhcl90ZXN0IFZBTFVFUyh2YXJpZCwgMTAwKTsKK1NFTEVDVCAqIEZS T00gc3Zhcl90ZXN0OworIGlkIHwgIHYgIAorLS0tLSstLS0tLQorICAxIHwgMTAwCisoMSByb3cp CisKK1VQREFURSBzdmFyX3Rlc3QgU0VUIHYgPSAyMDAgV0hFUkUgaWQgPSB2YXJpZDsKK1NFTEVD VCAqIEZST00gc3Zhcl90ZXN0OworIGlkIHwgIHYgIAorLS0tLSstLS0tLQorICAxIHwgMjAwCiso MSByb3cpCisKK0RFTEVURSBGUk9NIHN2YXJfdGVzdCBXSEVSRSBpZCA9IHZhcmlkOworU0VMRUNU ICogRlJPTSBzdmFyX3Rlc3Q7CisgaWQgfCB2IAorLS0tLSstLS0KKygwIHJvd3MpCisKK0RST1Ag VEFCTEUgc3Zhcl90ZXN0OworRFJPUCBWQVJJQUJMRSB2YXJpZDsKKy0tIHZpc2liaWxpdHkgY2hl Y2sKKy0tIHZhcmlhYmxlcyBzaG91bGQgYmUgc2hhZG93ZWQgYWx3YXlzCitDUkVBVEUgVkFSSUFC TEUgdmFyMSBBUyB0ZXh0OworU0VMRUNUIHZhcjEucmVsbmFtZSBGUk9NIHBnX2NsYXNzIHZhcjEg V0hFUkUgdmFyMS5yZWxuYW1lID0gJ3BnX2NsYXNzJzsKKyByZWxuYW1lICAKKy0tLS0tLS0tLS0K KyBwZ19jbGFzcworKDEgcm93KQorCitEUk9QIFZBUklBQkxFIHZhcjE7CitDUkVBVEUgVEFCTEUg eHh0YWIoYXZhciBpbnQpOworSU5TRVJUIElOVE8geHh0YWIgVkFMVUVTKDMzMyk7CitDUkVBVEUg VFlQRSB4eHR5cGUgQVMgKGF2YXIgaW50KTsKK0NSRUFURSBWQVJJQUJMRSB4eHRhYiBBUyB4eHR5 cGU7CitJTlNFUlQgSU5UTyB4eHRhYiBWQUxVRVMoMTApOworLS0gaXQgaXMgYW1iaWd1b3VzLCBi dXQgY29sdW1ucyBhcmUgcHJlZmVycmVkCitTRUxFQ1QgeHh0YWIuYXZhciBGUk9NIHh4dGFiOwor IGF2YXIgCistLS0tLS0KKyAgMzMzCisgICAxMAorKDIgcm93cykKKworLS0gc2hvdWxkIGJlIG9r CitTRUxFQ1QgYXZhciBGUk9NIHh4dGFiOworIGF2YXIgCistLS0tLS0KKyAgMzMzCisgICAxMAor KDIgcm93cykKKworQ1JFQVRFIFZBUklBQkxFIHB1YmxpYy5hdmFyIEFTIGludDsKKy0tIHNob3Vs ZCBiZSBvaywgc2VlIHRoZSB0YWJsZQorU0VMRUNUIGF2YXIgRlJPTSB4eHRhYjsKKyBhdmFyIAor LS0tLS0tCisgIDMzMworICAgMTAKKygyIHJvd3MpCisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNU IHB1YmxpYy5hdmFyIEZST00geHh0YWI7CisgYXZhciAKKy0tLS0tLQorICAgICAKKyAgICAgCiso MiByb3dzKQorCitEUk9QIFZBUklBQkxFIHh4dGFiOworU0VMRUNUIHh4dGFiLmF2YXIgRlJPTSB4 eHRhYjsKKyBhdmFyIAorLS0tLS0tCisgIDMzMworICAgMTAKKygyIHJvd3MpCisKK0RST1AgVkFS SUFCTEUgcHVibGljLmF2YXI7CitEUk9QIFRZUEUgeHh0eXBlOworRFJPUCBUQUJMRSB4eHRhYjsK Ky0tIFRoZSB2YXJpYWJsZSBjYW4gYmUgc2hhZG93ZWQgYnkgdGFibGUgb3IgYnkgYWxpYXMKK0NS RUFURSBUWVBFIHB1YmxpYy5zdmFyX3R5cGUgQVMgKGEgaW50LCBiIGludCwgYyBpbnQpOworQ1JF QVRFIFZBUklBQkxFIHB1YmxpYy5zdmFyIEFTIHB1YmxpYy5zdmFyX3R5cGU7CitDUkVBVEUgVEFC TEUgcHVibGljLnN2YXIoYSBpbnQsIGIgaW50KTsKK0lOU0VSVCBJTlRPIHB1YmxpYy5zdmFyIFZB TFVFUygxMCwgMjApOworTEVUIHB1YmxpYy5zdmFyID0gKDEwMCwgMjAwLCAzMDApOworLS0gc2hv dWxkIGJlIG9rCistLSBzaG93IHRhYmxlCitTRUxFQ1QgKiBGUk9NIHB1YmxpYy5zdmFyOworIGEg IHwgYiAgCistLS0tKy0tLS0KKyAxMCB8IDIwCisoMSByb3cpCisKK1NFTEVDVCBzdmFyLmEgRlJP TSBwdWJsaWMuc3ZhcjsKKyBhICAKKy0tLS0KKyAxMAorKDEgcm93KQorCitTRUxFQ1Qgc3Zhci4q IEZST00gcHVibGljLnN2YXI7CisgYSAgfCBiICAKKy0tLS0rLS0tLQorIDEwIHwgMjAKKygxIHJv dykKKworLS0gc2hvdyB2YXJpYWJsZQorU0VMRUNUIHB1YmxpYy5zdmFyOworICAgICBzdmFyICAg ICAgCistLS0tLS0tLS0tLS0tLS0KKyAoMTAwLDIwMCwzMDApCisoMSByb3cpCisKK1NFTEVDVCBw dWJsaWMuc3Zhci5jOworICBjICAKKy0tLS0tCisgMzAwCisoMSByb3cpCisKK1NFTEVDVCAocHVi bGljLnN2YXIpLio7CisgIGEgIHwgIGIgIHwgIGMgIAorLS0tLS0rLS0tLS0rLS0tLS0KKyAxMDAg fCAyMDAgfCAzMDAKKygxIHJvdykKKworLS0gdGhlIHZhcmlhYmxlIGlzIHNoYWRvd2VkLCByYWlz ZSBlcnJvcgorU0VMRUNUIHB1YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMuc3ZhcjsKK0VSUk9SOiAg Y29sdW1uIHN2YXIuYyBkb2VzIG5vdCBleGlzdAorTElORSAxOiBTRUxFQ1QgcHVibGljLnN2YXIu YyBGUk9NIHB1YmxpYy5zdmFyOworICAgICAgICAgICAgICAgXgorLS0gY2FuIGJlIGZpeGVkIGJ5 IGFsaWFzCitTRUxFQ1QgcHVibGljLnN2YXIuYyBGUk9NIHB1YmxpYy5zdmFyIHg7CisgIGMgIAor LS0tLS0KKyAzMDAKKygxIHJvdykKKworU0VMRUNUIHN2YXIuYSBGUk9NIHB1YmxpYy5zdmFyOwor IGEgIAorLS0tLQorIDEwCisoMSByb3cpCisKK1NFTEVDVCBzdmFyLiogRlJPTSBwdWJsaWMuc3Zh cjsKKyBhICB8IGIgIAorLS0tLSstLS0tCisgMTAgfCAyMAorKDEgcm93KQorCistLSBzaG93IHZh cmlhYmxlCitTRUxFQ1QgcHVibGljLnN2YXI7CisgICAgIHN2YXIgICAgICAKKy0tLS0tLS0tLS0t LS0tLQorICgxMDAsMjAwLDMwMCkKKygxIHJvdykKKworU0VMRUNUIHB1YmxpYy5zdmFyLmM7Cisg IGMgIAorLS0tLS0KKyAzMDAKKygxIHJvdykKKworU0VMRUNUIChwdWJsaWMuc3ZhcikuKjsKKyAg YSAgfCAgYiAgfCAgYyAgCistLS0tLSstLS0tLSstLS0tLQorIDEwMCB8IDIwMCB8IDMwMAorKDEg cm93KQorCistLSB0aGUgdmFyaWFibGUgaXMgc2hhZG93ZWQsIHJhaXNlIGVycm9yCitTRUxFQ1Qg cHVibGljLnN2YXIuYyBGUk9NIHB1YmxpYy5zdmFyOworRVJST1I6ICBjb2x1bW4gc3Zhci5jIGRv ZXMgbm90IGV4aXN0CitMSU5FIDE6IFNFTEVDVCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2 YXI7CisgICAgICAgICAgICAgICBeCistLSBjYW4gYmUgZml4ZWQgYnkgYWxpYXMKK1NFTEVDVCBw dWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2YXIgeDsKKyAgYyAgCistLS0tLQorIDMwMAorKDEg cm93KQorCitEUk9QIFZBUklBQkxFIHB1YmxpYy5zdmFyOworRFJPUCBUQUJMRSBwdWJsaWMuc3Zh cjsKK0RST1AgVFlQRSBwdWJsaWMuc3Zhcl90eXBlOworLS0gVGhlIHNlcXVlbmNlIGlkZW50Liog Y2Fubm90IGJlIHVzZWQgYnkgcmVmZXJlbmNlIHRvIHNlc3Npb24gdmFyaWFibGUsCistLSBhbmQg aW4gdGhpcyBjYXNlLCB0aGVyZSBpcyBub3QgY29sbGlzaW9uCitDUkVBVEUgU0NIRU1BIHZhcnRl c3Q7CitTRVQgU0VBUkNIX1BBVEggVE8gdmFydGVzdDsKK0NSRUFURSBUQUJMRSB2YXJ0ZXN0X2Zv byhhIGludCwgYiBpbnQpOworSU5TRVJUIElOVE8gdmFydGVzdF9mb28gVkFMVUVTKDEwLDIwKSwg KDMwLDQwKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIHZhcnRlc3RfZm9vOworTEVUIHZhcjEg PSAoMTAwLDIwMCk7CistLSBzaG91bGQgdG8gZmFpbAorU0VMRUNUIHZhcjEuKiBGUk9NIHZhcnRl c3RfZm9vOworRVJST1I6ICBtaXNzaW5nIEZST00tY2xhdXNlIGVudHJ5IGZvciB0YWJsZSAidmFy MSIKK0xJTkUgMTogU0VMRUNUIHZhcjEuKiBGUk9NIHZhcnRlc3RfZm9vOworICAgICAgICAgICAg ICAgXgorLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMS4qIEZST00gdmFydGVzdF9mb28gdmFy MTsKKyBhICB8IGIgIAorLS0tLSstLS0tCisgMTAgfCAyMAorIDMwIHwgNDAKKygyIHJvd3MpCisK Ky0tIHNob3VsZCB0byBmYWlsCitTRUxFQ1QgY291bnQodmFyMS4qKSBGUk9NIHZhcnRlc3RfZm9v OworRVJST1I6ICBtaXNzaW5nIEZST00tY2xhdXNlIGVudHJ5IGZvciB0YWJsZSAidmFyMSIKK0xJ TkUgMTogU0VMRUNUIGNvdW50KHZhcjEuKikgRlJPTSB2YXJ0ZXN0X2ZvbzsKKyAgICAgICAgICAg ICAgICAgICAgIF4KKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIGNvdW50KHZhcjEuKikgRlJPTSB2 YXJ0ZXN0X2ZvbyB2YXIxOworIGNvdW50IAorLS0tLS0tLQorICAgICAyCisoMSByb3cpCisKK1NF VCBTRUFSQ0hfUEFUSCBUTyBERUZBVUxUOworRFJPUCBTQ0hFTUEgdmFydGVzdCBDQVNDQURFOwor Tk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0byAyIG90aGVyIG9iamVjdHMKK0RFVEFJTDogIGRyb3Ag Y2FzY2FkZXMgdG8gdGFibGUgdmFydGVzdC52YXJ0ZXN0X2ZvbworZHJvcCBjYXNjYWRlcyB0byBz ZXNzaW9uIHZhcmlhYmxlIHZhcnRlc3QudmFyMQorQ1JFQVRFIFRZUEUgYWIgQVMgKGEgaW50ZWdl ciwgYiBpbnRlZ2VyKTsKK0NSRUFURSBWQVJJQUJMRSB2X2FiIEFTIGFiOworQ1JFQVRFIFRBQkxF IHZfYWIgKGEgaW50ZWdlciwgYiBpbnRlZ2VyKTsKK0lOU0VSVCBJTlRPIHZfYWIgVkFMVUVTKDEw LDIwKTsKKy0tIHdlIHNob3VsZCBzZWUgdGFibGUKK1NFTEVDVCB2X2FiLmEgRlJPTSB2X2FiOwor IGEgIAorLS0tLQorIDEwCisoMSByb3cpCisKK0NSRUFURSBTQ0hFTUEgdl9hYjsKK0NSRUFURSBW QVJJQUJMRSB2X2FiLmEgQVMgaW50ZWdlcjsKKy0tIHdlIHNob3VsZCBzZWUgdGFibGUKK1NFTEVD VCB2X2FiLmEgRlJPTSB2X2FiOworIGEgIAorLS0tLQorIDEwCisoMSByb3cpCisKK0RST1AgVkFS SUFCTEUgdl9hYjsKK0RST1AgVEFCTEUgdl9hYjsKK0RST1AgVFlQRSBhYjsKK0RST1AgVkFSSUFC TEUgdl9hYi5hOworRFJPUCBTQ0hFTUEgdl9hYjsKK0NSRUFURSBUWVBFIHRfYW1fdHlwZSBBUyAo YiBpbnQpOworQ1JFQVRFIFNDSEVNQSB4eHhfYW07CitTRVQgc2VhcmNoX3BhdGggVE8gcHVibGlj OworQ1JFQVRFIFZBUklBQkxFIHh4eF9hbSBBUyB0X2FtX3R5cGU7CitMRVQgeHh4X2FtID0gUk9X KDEwKTsKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHh4eF9hbTsKKyB4eHhfYW0gCistLS0tLS0t LQorICgxMCkKKygxIHJvdykKKworQ1JFQVRFIFZBUklBQkxFIHh4eF9hbS5iIEFTIGludDsKK0xF VCA6IkRCTkFNRSIueHh4X2FtLmIgPSAyMDsKKy0tIHNob3VsZCBiZSBzdGlsbCBvaworU0VMRUNU IHh4eF9hbTsKKyB4eHhfYW0gCistLS0tLS0tLQorICgxMCkKKygxIHJvdykKKworLS0gc2hvdWxk IGZhaWwsIHRoZSByZWZlcmVuY2Ugc2hvdWxkIGJlIGFtYmlndW91cworU0VMRUNUIHh4eF9hbS5i OworRVJST1I6ICBzZXNzaW9uIHZhcmlhYmxlIHJlZmVyZW5jZSAieHh4X2FtLmIiIGlzIGFtYmln dW91cworTElORSAxOiBTRUxFQ1QgeHh4X2FtLmI7CisgICAgICAgICAgICAgICBeCistLSBlbmhh bmNlZCByZWZlcmVuY2VzIHNob3VsZCBiZSBvaworU0VMRUNUIHB1YmxpYy54eHhfYW0uYjsKKyBi ICAKKy0tLS0KKyAxMAorKDEgcm93KQorCitTRUxFQ1QgOiJEQk5BTUUiLnh4eF9hbS5iOworIGIg IAorLS0tLQorIDIwCisoMSByb3cpCisKK0NSRUFURSBUQUJMRSB4eHhfYW0oYiAgaW50KTsKK0lO U0VSVCBJTlRPIHh4eF9hbSBWQUxVRVMoMTApOworLS0gd2Ugc2hvdWxkIHNlZSB0YWJsZQorU0VM RUNUIHh4eF9hbS5iIEZST00geHh4X2FtOworIGIgIAorLS0tLQorIDEwCisoMSByb3cpCisKK1NF TEVDVCB4LmIgRlJPTSB4eHhfYW0geDsKKyBiICAKKy0tLS0KKyAxMAorKDEgcm93KQorCitEUk9Q IFRBQkxFIHh4eF9hbTsKK0RST1AgVkFSSUFCTEUgcHVibGljLnh4eF9hbTsKK0RST1AgVkFSSUFC TEUgeHh4X2FtLmI7CitEUk9QIFNDSEVNQSB4eHhfYW07CitDUkVBVEUgU0NIRU1BIDoiREJOQU1F IjsKK0NSRUFURSBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLjoiREJOQU1FIiBBUyB0X2Ft X3R5cGU7CitDUkVBVEUgVkFSSUFCTEUgOiJEQk5BTUUiLjoiREJOQU1FIi5iIEFTIGludDsKK1NF VCBzZWFyY2hfcGF0aCBUTyA6IkRCTkFNRSI7CistLSBzaG91bGQgYmUgYW1iaWd1b3VzCitTRUxF Q1QgOiJEQk5BTUUiLmI7CitFUlJPUjogIHNlc3Npb24gdmFyaWFibGUgcmVmZXJlbmNlICJyZWdy ZXNzaW9uLmIiIGlzIGFtYmlndW91cworTElORSAxOiBTRUxFQ1QgInJlZ3Jlc3Npb24iLmI7Cisg ICAgICAgICAgICAgICBeCistLSBzaG91bGQgYmUgYW1iaWd1b3VzIHRvbworU0VMRUNUIDoiREJO QU1FIi46IkRCTkFNRSIuYjsKK0VSUk9SOiAgc2Vzc2lvbiB2YXJpYWJsZSByZWZlcmVuY2UgInJl Z3Jlc3Npb24ucmVncmVzc2lvbi5iIiBpcyBhbWJpZ3VvdXMKK0xJTkUgMTogU0VMRUNUICJyZWdy ZXNzaW9uIi4icmVncmVzc2lvbiIuYjsKKyAgICAgICAgICAgICAgIF4KK0NSRUFURSBUQUJMRSA6 IkRCTkFNRSIoYiBpbnQpOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgOiJEQk5BTUUiLmIgRlJP TSA6IkRCTkFNRSI7CisgYiAKKy0tLQorKDAgcm93cykKKworRFJPUCBUQUJMRSA6IkRCTkFNRSI7 CitEUk9QIFZBUklBQkxFIDoiREJOQU1FIi46IkRCTkFNRSIuYjsKK0RST1AgVkFSSUFCTEUgOiJE Qk5BTUUiLjoiREJOQU1FIi46IkRCTkFNRSI7CitEUk9QIFNDSEVNQSA6IkRCTkFNRSI7CitSRVNF VCBzZWFyY2hfcGF0aDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25f dmFyaWFibGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25fdmFyaWFibGVzLnNx bAppbmRleCBlZWIwZjk0Y2EzLi5lNzIzNjBkNTI1IDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdy ZXNzL3NxbC9zZXNzaW9uX3ZhcmlhYmxlcy5zcWwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwv c2Vzc2lvbl92YXJpYWJsZXMuc3FsCkBAIC0yOTUsMyArMjk1LDg4NiBAQCBEUk9QIFJPTEUgcmVn cmVzc192YXJpYWJsZV9yMTsKIERST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3IyOwogCiBEUk9Q IFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKKworLS0gY2hlY2sgYWNjZXNzIHJpZ2h0cwor Q1JFQVRFIFJPTEUgcmVncmVzc19ub293bmVyOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBp bnQ7CisKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHNxbGZ4KGludCkKK1JFVFVSTlMgaW50 IEFTICQkIFNFTEVDVCAkMSArIHZhcjEgJCQgTEFOR1VBR0Ugc3FsOworCitDUkVBVEUgT1IgUkVQ TEFDRSBGVU5DVElPTiBzcWxmeF9zZChpbnQpCitSRVRVUk5TIGludCBBUyAkJCBTRUxFQ1QgJDEg KyB2YXIxICQkIExBTkdVQUdFIHNxbCBTRUNVUklUWSBERUZJTkVSOworCitDUkVBVEUgT1IgUkVQ TEFDRSBGVU5DVElPTiBwbHBnc3FsZngoaW50KQorUkVUVVJOUyBpbnQgQVMgJCQgQkVHSU4gUkVU VVJOICQxICsgdmFyMTsgRU5EICQkIExBTkdVQUdFIHBscGdzcWw7CisKK0NSRUFURSBPUiBSRVBM QUNFIEZVTkNUSU9OIHBscGdzcWxmeF9zZChpbnQpCitSRVRVUk5TIGludCBBUyAkJCBCRUdJTiBS RVRVUk4gJDEgKyB2YXIxOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbCBTRUNVUklUWSBERUZJTkVS OworCitMRVQgdmFyMSA9IDEwOworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMTsKK1NFTEVD VCBzcWxmeCgyMCk7CitTRUxFQ1Qgc3FsZnhfc2QoMjApOworU0VMRUNUIHBscGdzcWxmeCgyMCk7 CitTRUxFQ1QgcGxwZ3NxbGZ4X3NkKDIwKTsKKworLS0gc2hvdWxkIGZhaWwKK1NFVCBST0xFIFRP IHJlZ3Jlc3Nfbm9vd25lcjsKKworU0VMRUNUIHZhcjE7CitTRUxFQ1Qgc3FsZngoMjApOworU0VM RUNUIHBscGdzcWxmeCgyMCk7CisKKy0tIHNob3VsZCBiZSBvaworU0VMRUNUIHNxbGZ4X3NkKDIw KTsKK1NFTEVDVCBwbHBnc3FsZnhfc2QoMjApOworCitTRVQgUk9MRSBUTyBERUZBVUxUOworR1JB TlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gcmVncmVzc19ub293bmVyOworCistLSBzaG91 bGQgYmUgb2sKK1NFVCBST0xFIFRPIHJlZ3Jlc3Nfbm9vd25lcjsKKworU0VMRUNUIHZhcjE7CitT RUxFQ1Qgc3FsZngoMjApOworU0VMRUNUIHBscGdzcWxmeCgyMCk7CisKK1NFVCBST0xFIFRPIERF RkFVTFQ7CitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIEZVTkNUSU9OIHNxbGZ4KGludCk7CitE Uk9QIEZVTkNUSU9OIHBscGdzcWxmeChpbnQpOworRFJPUCBGVU5DVElPTiBzcWxmeF9zZChpbnQp OworRFJPUCBGVU5DVElPTiBwbHBnc3FsZnhfc2QoaW50KTsKKworRFJPUCBST0xFIHJlZ3Jlc3Nf bm9vd25lcjsKKworLS0gdXNlIHZhcmlhYmxlcyBpbnNpZGUgdmlld3MKK0NSRUFURSBWQVJJQUJM RSB2YXIxIEFTIG51bWVyaWM7CisKKy0tIHVzZSB2YXJpYWJsZXMgaW4gdmlld3MKK0NSRUFURSBW SUVXIHRlc3RfdmlldyBBUyBTRUxFQ1QgQ09BTEVTQ0UodmFyMSArIHYsIDApIEFTIHJlc3VsdCBG Uk9NIGdlbmVyYXRlX3NlcmllcygxLDIpIGcodik7CitTRUxFQ1QgKiBGUk9NIHRlc3RfdmlldzsK K0xFVCB2YXIxID0gMy4xNDsKK1NFTEVDVCAqIEZST00gdGVzdF92aWV3OworCistLSBzdGFydCBh IG5ldyBzZXNzaW9uCitcYworCitTRUxFQ1QgKiBGUk9NIHRlc3RfdmlldzsKK0xFVCB2YXIxID0g My4xNDsKK1NFTEVDVCAqIEZST00gdGVzdF92aWV3OworCistLSBzaG91bGQgZmFpbCwgZGVwZW5k ZW5jeQorRFJPUCBWQVJJQUJMRSB2YXIxOworCistLSBzaG91bGQgYmUgb2sKK0RST1AgVkFSSUFC TEUgdmFyMSBDQVNDQURFOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSB0ZXh0OworQ1JFQVRFIFZB UklBQkxFIHZhcjIgdGV4dDsKKworLS0gdXNlIHZhcmlhYmxlcyBpbiBTUUwgZnVuY3Rpb25zCitD UkVBVEUgT1IgUkVQTEFDRSBGVU5DVElPTiBzcWxmeDEodmFyY2hhcikKK1JFVFVSTlMgdmFyY2hh ciBBUyAkJCBTRUxFQ1QgdmFyMSB8fCAnLCAnIHx8ICQxICQkIExBTkdVQUdFIHNxbDsKKworQ1JF QVRFIE9SIFJFUExBQ0UgRlVOQ1RJT04gc3FsZngyKCB2YXJjaGFyKQorUkVUVVJOUyB2YXJjaGFy IEFTICQkIFNFTEVDVCB2YXIyIHx8ICcsICcgfHwgJDEgJCQgTEFOR1VBR0Ugc3FsOworCitMRVQg dmFyMSA9ICdzdHIxJzsKK0xFVCB2YXIyID0gJ3N0cjInOworCitTRUxFQ1Qgc3FsZngxKHNxbGZ4 MignSGVsbG8nKSk7CisKKy0tIGlubGluaW5nIGlzIGJsb2NrZWQKK0VYUExBSU4gKENPU1RTIE9G RiwgVkVSQk9TRSkgU0VMRUNUIHNxbGZ4MShzcWxmeDIoJ0hlbGxvJykpOworCitEUk9QIEZVTkNU SU9OIHNxbGZ4MSh2YXJjaGFyKTsKK0RST1AgRlVOQ1RJT04gc3FsZngyKHZhcmNoYXIpOworRFJP UCBWQVJJQUJMRSB2YXIxOworRFJPUCBWQVJJQUJMRSB2YXIyOworCistLSBhY2Nlc3MgZnJvbSBj YWNoZWQgcGxhbnMgc2hvdWxkIHdvcmsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIG51bWVyaWM7 CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyBudW1lcmljOworCitDUkVBVEUgT1IgUkVQTEFDRSBG VU5DVElPTiBwbHBnc3FsZngoKQorUkVUVVJOUyBudW1lcmljIEFTICQkIEJFR0lOIFJFVFVSTiB2 YXIxOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKworQ1JFQVRFIE9SIFJFUExBQ0UgRlVOQ1RJ T04gcGxwZ3NxbGZ4MihudW1lcmljKQorUkVUVVJOUyB2b2lkIEFTICQkIEJFR0lOIExFVCB2YXIy ID0gJDE7IEVORCAkJCBMQU5HVUFHRSBwbHBnc3FsOworCitTRVQgcGxhbl9jYWNoZV9tb2RlIFRP IGZvcmNlX2dlbmVyaWNfcGxhbjsKKworTEVUIHZhcjEgPSAzLjE0OworU0VMRUNUIHBscGdzcWxm eCgpOworTEVUIHZhcjEgPSAzLjE0ICogMjsKK1NFTEVDVCBwbHBnc3FsZngoKTsKKworU0VMRUNU IHBscGdzcWxmeDIoMTAuMCk7CitTRUxFQ1QgdmFyMjsKKworRFJPUCBWQVJJQUJMRSB2YXIxOwor RFJPUCBWQVJJQUJMRSB2YXIyOworCistLSBkZXBlbmRlbmN5IChwbGFuIGludmFsaWRhdGlvbikg c2hvdWxkIHdvcmsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIG51bWVyaWM7CitDUkVBVEUgVkFS SUFCTEUgdmFyMiBBUyBudW1lcmljOworCitMRVQgdmFyMSA9IDMuMTQgKiAzOworU0VMRUNUIHBs cGdzcWxmeCgpOworTEVUIHZhcjEgPSAzLjE0ICogNDsKK1NFTEVDVCBwbHBnc3FsZngoKTsKKwor U0VMRUNUIHBscGdzcWxmeDIoMTAuMCk7CitTRUxFQ1QgdmFyMjsKKworRFJPUCBWQVJJQUJMRSB2 YXIxOworRFJPUCBWQVJJQUJMRSB2YXIyOworRFJPUCBGVU5DVElPTiBwbHBnc3FsZngoKTsKK0RS T1AgRlVOQ1RJT04gcGxwZ3NxbGZ4MigpOworCistLSBkZXBlbmRlbmN5IG9uIGNvbHVtbiB0eXBl CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitDUkVBVEUgVEFCTEUgdGVzdHZhcihhIGlu dCwgYiBpbnQsIGMgaW50KTsKK0lOU0VSVCBJTlRPIHRlc3R2YXIgVkFMVUVTKDEwLDIwLDMwKTsK KworQUxURVIgVEFCTEUgdGVzdHZhciBEUk9QIENPTFVNTiBhOworQUxURVIgVEFCTEUgdGVzdHZh ciBEUk9QIENPTFVNTiBiOworCitDUkVBVEUgRlVOQ1RJT04gcGxwZ3NxbGZ4MygpCitSRVRVUk5T IHZvaWQgQVMgJCQKK0JFR0lOCisgIExFVCB2YXIxID0gKFNFTEVDVCAqIEZST00gdGVzdHZhcik7 CisgIFJBSVNFIE5PVElDRSAnJScsIHZhcjE7CitFTkQKKyQkIExBTkdVQUdFIHBscGdzcWw7CisK Ky0tIHNob3VsZCBiZSBvaworU0VMRUNUIHBscGdzcWxmeDMoKTsKKworQUxURVIgVEFCTEUgdGVz dHZhciBBTFRFUiBDT0xVTU4gYyBUWVBFIG51bWVyaWM7CisKKy0tIHNob3VsZCBiZSBvaworU0VM RUNUIHBscGdzcWxmeDMoKTsKKworRFJPUCBGVU5DVElPTiBwbHBnc3FsZngzKCk7CitEUk9QIFRB QkxFIHRlc3R2YXI7CitEUk9QIFZBUklBQkxFIHZhcjE7CisKK1NFVCBwbGFuX2NhY2hlX21vZGUg VE8gREVGQVVMVDsKKworLS0gcmVwZWF0ZWQgZXhlY3V0aW9uIHNob3VsZCBub3QgY3Jhc2gKK0NS RUFURSBWQVJJQUJMRSB2YXIxIGludDsKK0NSRUFURSBUQUJMRSB0ZXN0dmFyKGEgaW50KTsKK0lO U0VSVCBJTlRPIHRlc3R2YXIgVkFMVUVTKDEpOworCitETyAkJAorQkVHSU4KKyAgTEVUIHZhcjEg PSAwOworICBGT1IgaSBJTiAxLi4xMAorICBMT09QCisgICAgTEVUIHZhcjEgPSAoU0VMRUNUIGEg RlJPTSB0ZXN0dmFyKTsKKyAgRU5EIExPT1A7CisgIFJBSVNFIE5PVElDRSAnJScsIHZhcjE7CitF TkQ7CiskJDsKKworRE8gJCQKK0JFR0lOCisgIExFVCB2YXIxID0gMDsKKyAgRk9SIGkgSU4gMS4u MTAKKyAgTE9PUAorICAgIExFVCB2YXIxID0gKFNFTEVDVCBhICsgdmFyMSBGUk9NIHRlc3R2YXIp OworICBFTkQgTE9PUDsKKyAgUkFJU0UgTk9USUNFICclJywgdmFyMTsKK0VORDsKKyQkOworCitE TyAkJAorQkVHSU4KKyAgTEVUIHZhcjEgPSAwOworICBGT1IgaSBJTiAxLi4xMAorICBMT09QCisg ICAgTEVUIHZhcjEgPSAoU0VMRUNUIGEgRlJPTSB0ZXN0dmFyKSArIHZhcjE7CisgIEVORCBMT09Q OworICBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxOworRU5EOworJCQ7CisKK0RPICQkCitCRUdJTgor ICBMRVQgdmFyMSA9IDA7CisgIEZPUiBpIElOIDEuLjEwCisgIExPT1AKKyAgICBMRVQgdmFyMSA9 IGk7CisgIEVORCBMT09QOworICBSQUlTRSBOT1RJQ0UgJyUnLCB2YXIxOworRU5EOworJCQ7CisK K0RPICQkCitCRUdJTgorICBMRVQgdmFyMSA9IDA7CisgIEZPUiBpIElOIDEuLjEwCisgIExPT1AK KyAgICBMRVQgdmFyMSA9IGkgKyB2YXIxOworICBFTkQgTE9PUDsKKyAgUkFJU0UgTk9USUNFICcl JywgdmFyMTsKK0VORDsKKyQkOworCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRBQkxFIHRl c3R2YXI7CisKKy0tIHVzYWdlIExFVCBzdGF0ZW1lbnQgaW4gcGxwZ3NxbCBzaG91bGQgd29yawor Q1JFQVRFIFZBUklBQkxFIHZhcjEgaW50OworQ1JFQVRFIFZBUklBQkxFIHZhcjIgbnVtZXJpY1td OworCitETyAkJAorQkVHSU4KKyAgTEVUIHZhcjIgPSAne30nOjppbnRbXTsKKyAgRk9SIGkgSU4g MS4uMTAKKyAgTE9PUAorICAgIExFVCB2YXIxID0gaTsKKyAgICBMRVQgdmFyMlt2YXIxXSA9IGk7 CisgIEVORCBMT09QOworICBSQUlTRSBOT1RJQ0UgJ3Jlc3VsdCBhcnJheTogJScsIHZhcjI7CitF TkQ7CiskJDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBWQVJJQUJMRSB2YXIyOworCist LSBDQUxMIHN0YXRlbWVudCBpcyBub3Qgc3VwcG9ydGVkIHlldAorLS0gcmVxdWlyZXMgZGlyZWN0 IGFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlIGZyb20gZXhwcmVzc2lvbiBleGVjdXRvcgorQ1JF QVRFIFZBUklBQkxFIHYgaW50OworCitDUkVBVEUgUFJPQ0VEVVJFIHAoYXJnIGludCkgQVMgJCQg QkVHSU4gUkFJU0UgTk9USUNFICclJywgYXJnOyBFTkQgJCQgTEFOR1VBR0UgcGxwZ3NxbDsKKwor LS0gc2hvdWxkIG5vdCBjcmFzaCAoYnV0IGlzIG5vdCBzdXBwb3J0ZWQgeWV0KQorQ0FMTCBwKHYp OworCitETyAkJCBCRUdJTiBDQUxMIHAodik7IEVORCAkJDsKKworRFJPUCBQUk9DRURVUkUgcChp bnQpOworRFJPUCBWQVJJQUJMRSB2OworCistLSBFWEVDVVRFIHN0YXRlbWVudCBpcyBub3Qgc3Vw cG9ydGVkIHlldAorLS0gcmVxdWlyZXMgZGlyZWN0IGFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxl IGZyb20gZXhwcmVzc2lvbiBleGVjdXRvcgorQ1JFQVRFIFZBUklBQkxFIHYgaW50OworTEVUIHYg PSAyMDsKK1BSRVBBUkUgcHRlc3QoaW50KSBBUyBTRUxFQ1QgJDE7CisKKy0tIHNob3VsZCBmYWls CitFWEVDVVRFIHB0ZXN0KHYpOworCitERUFMTE9DQVRFIHB0ZXN0OworRFJPUCBWQVJJQUJMRSB2 OworCistLSB0ZXN0IHNlYXJjaCBwYXRoCitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0OworQ1JFQVRF IFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgQVMgbnVtZXJpYzsKKworLS0gc2hvdWxkIGZhaWwKK0xF VCB2YXIxID0gcGkoKTsKK1NFTEVDVCB2YXIxOworCistLSBzaG91bGQgYmUgb2sKK0xFVCBzdmFy dGVzdC52YXIxID0gcGkoKTsKK1NFTEVDVCBzdmFydGVzdC52YXIxOworCitTRVQgc2VhcmNoX3Bh dGggVE8gc3ZhcnRlc3Q7CisKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSBwaSgpICsgMTA7 CitTRUxFQ1QgdmFyMTsKKworUkVTRVQgc2VhcmNoX3BhdGg7CitEUk9QIFNDSEVNQSBzdmFydGVz dCBDQVNDQURFOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB0ZXh0OworCistLSB2YXJpYWJs ZXMgY2FuIGJlIHVwZGF0ZWQgdW5kZXIgUk8gdHJhbnNhY3Rpb24KK0JFR0lOOworU0VUIFRSQU5T QUNUSU9OIFJFQUQgT05MWTsKK0xFVCB2YXIxID0gJ2hlbGxvJzsKK0NPTU1JVDsKKworU0VMRUNU IHZhcjE7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworLS0gdGVzdCBvZiBkb21haW5zCitDUkVB VEUgRE9NQUlOIGludF9kb21haW4gQVMgaW50IE5PVCBOVUxMIENIRUNLIChWQUxVRSA+IDEwMCk7 CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnRfZG9tYWluOworCistLSBzaG91bGQgZmFpbAor U0VMRUNUIHZhcjE7CisKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAxMDAwOworU0VMRUNU IHZhcjE7CisKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IDEwOworCistLSBzaG91bGQgZmFp bAorTEVUIHZhcjEgPSBOVUxMOworCistLSBub3RlIC0gZG9tYWluIGRlZmF1bHRzIGFyZSBub3Qg c3VwcG9ydGVkIHlldCAobGlrZSBQTHBnU1FMKQorCitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9Q IERPTUFJTiBpbnRfZG9tYWluOworCistLSB0aGUgZXhwcmVzc2lvbiBzaG91bGQgcmVtYWluICJ1 bmtub3duIgorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50NG11bHRpcmFuZ2VbXTsKKy0tIHNo b3VsZCBiZSBvaworTEVUIHZhcjEgPSBOVUxMOworTEVUIHZhcjEgPSAneyJ7WzIsOCksWzExLDE0 KX0iLCJ7WzUsOCksWzEyLDE0KX0ifSc7CitMRVQgdmFyMVsyXSA9ICd7WzUsOCksWzEyLDEwMCl9 JzsKK1NFTEVDVCB2YXIxOworCistLUl0IHNob3VsZCB3b3JrIGluIHBscGdzcWwgdG9vCitETyAk JAorQkVHSU4KKyAgTEVUIHZhcjEgPSBOVUxMOworICBMRVQgdmFyMSA9ICd7IntbMiw4KSxbMTEs MTQpfSIsIntbNSw4KSxbMTIsMTQpfSJ9JzsKKyAgTEVUIHZhcjFbMl0gPSAne1s1LDgpLFsxMiwx MDApfSc7CisKKyAgUkFJU0UgTk9USUNFICclJywgdmFyMTsKK0VORDsKKyQkOworCitEUk9QIFZB UklBQkxFIHZhcjE7CisKK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3QgQ1JFQVRFIFZBUklBQkxFIHZh cjEgQVMgaW50IENSRUFURSBUQUJMRSBmb28oYSBpbnQpOworTEVUIHN2YXJ0ZXN0LnZhcjEgPSAx MDA7CitTRUxFQ1Qgc3ZhcnRlc3QudmFyMTsKKworU0VUIHNlYXJjaF9wYXRoIHRvIHB1YmxpYywg c3ZhcnRlc3Q7CisKK1NFTEVDVCB2YXIxOworCitEUk9QIFNDSEVNQSBzdmFydGVzdCBDQVNDQURF OworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgdmFyMiBB UyBpbnRbXTsKKworTEVUIHZhcjEgPSAyOworTEVUIHZhcjIgPSAne30nOjppbnRbXTsKKworTEVU IHZhcjJbdmFyMV0gPSAwOworCitTRUxFQ1QgdmFyMjsKKworRFJPUCBWQVJJQUJMRSB2YXIxLCB2 YXIyOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitDUkVBVEUgVkFSSUFCTEUgdmFy MiBBUyBpbnRbXTsKKworTEVUIHZhcjEgPSAyOworTEVUIHZhcjIgPSAne30nOjppbnRbXTsKKwor U0VMRUNUIHZhcjI7CisKK0RST1AgVkFSSUFCTEUgdmFyMSwgdmFyMjsKKworLS0gdGhlIExFVCBz dGF0ZW1lbnQgc2hvdWxkIGJlIGRpc2FsbG93ZWQgaW4gQ1RFCitDUkVBVEUgVkFSSUFCTEUgdmFy MSBBUyBpbnQ7CitXSVRIIHggQVMgKExFVCB2YXIxID0gMTAwKSBTRUxFQ1QgKiBGUk9NIHg7CisK Ky0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSBnZW5lcmF0ZV9zZXJpZXMoMSwgMSk7CisKKy0t IHNob3VsZCBmYWlsCitMRVQgdmFyMSA9IGdlbmVyYXRlX3NlcmllcygxLCAyKTsKK0xFVCB2YXIx ID0gZ2VuZXJhdGVfc2VyaWVzKDEsIDApOworCitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIGNv bXBvc2l0ZSB2YXJpYWJsZXMKK0NSRUFURSBUWVBFIHN2X3h5eiBBUyAoeCBpbnQsIHkgaW50LCB6 IG51bWVyaWMoMTAsMikpOworCitDUkVBVEUgVkFSSUFCTEUgdjEgQVMgc3ZfeHl6OworQ1JFQVRF IFZBUklBQkxFIHYyIEFTIHN2X3h5ejsKKworTEVUIHYxID0gKDEsIDIsIDMuMTQpOworTEVUIHYy ID0gKDEwLCAyMCwgMy4xNCAqIDEwKTsKKworLS0gc2hvdWxkIHdvcmsgdG9vIC0gdGhlcmUgYXJl IHByZXBhcmVkIGNhc3RzCitMRVQgdjEgPSAoMSwgMiwgMyk7CisKK1NFTEVDVCB2MTsKK1NFTEVD VCB2MjsKK1NFTEVDVCAodjEpLio7CitTRUxFQ1QgKHYyKS4qOworCitTRUxFQ1QgdjEueCArIHYx Lno7CitTRUxFQ1QgdjIueCArIHYyLno7CisKKy0tIGFjY2VzcyB0byBjb21wb3NpdGUgZmllbGRz IHNob3VsZCBiZSBzYWZlIHRvbworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJfdGVzdF9yb2xlOwor CitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CisKKy0tIHNob3VsZCBmYWlsCitT RUxFQ1QgdjIueDsKKworU0VUIFJPTEUgVE8gREVGQVVMVDsKKworRFJPUCBWQVJJQUJMRSB2MTsK K0RST1AgVkFSSUFCTEUgdjI7CitEUk9QIFRZUEUgc3ZfeHl6OworRFJPUCBST0xFIHJlZ3Jlc3Nf dmFyX3Rlc3Rfcm9sZTsKKworLS0gc2hvdWxkIGZhaWwsIHdyb25nIGlkZW50aWZpZXIKK0xFVCBu b2RiLm5vc2NoZW1hLm5vdmFyLm5vZmllbGQubm9zdWJmaWVsZCA9IDEwOworTEVUIG5vZGIubm9z Y2hlbWEubm92YXIubm9maWVsZCA9IDEwOworTEVUIG5vZGIubm9zY2hlbWEubm92YXIgPSAxMDsK KworQ1JFQVRFIFRZUEUgdDEgQVMgKGEgaW50LCBiIG51bWVyaWMsIGMgdGV4dCk7CisKK0NSRUFU RSBWQVJJQUJMRSB2MSBBUyB0MTsKK0xFVCB2MSA9ICgxLCBwaSgpLCAnaGVsbG8nKTsKK1NFTEVD VCB2MTsKK0xFVCB2MS5iID0gMTAuMjIyMjsKK1NFTEVDVCB2MTsKKworLS0gc2hvdWxkIGZhaWws IGF0dHJpYnV0ZSBkb2Vzbid0IGV4aXN0CitMRVQgdjEueCA9IDEwOworCistLSBzaG91bGQgZmFp bCwgZG9uJ3QgYWxsb3cgbXVsdGkgY29sdW1uIHF1ZXJ5CitMRVQgdjEgPSAoTlVMTDo6dDEpLio7 CisKKy0tIGFsbG93IERST1Agb3IgQUREIEFUVFJJQlVURSBvbiBjb21wb3NpdGUgdHlwZXMKKy0t IHNob3VsZCBiZSBvaworQUxURVIgVFlQRSB0MSBEUk9QIEFUVFJJQlVURSBjOworU0VMRUNUIHYx OworCistLSBzaG91bGQgYmUgb2sKK0FMVEVSIFRZUEUgdDEgQUREIEFUVFJJQlVURSBjIGludDsK K1NFTEVDVCB2MTsKKworTEVUIHYxID0gKDEwLCAxMC4zLCAyMCk7CitTRUxFQ1QgdjE7CisKKy0t IHNob3VsZCBiZSBvaworQUxURVIgVFlQRSB0MSBEUk9QIEFUVFJJQlVURSBiOworU0VMRUNUIHYx OworCistLSBzaG91bGQgZmFpbCwgZGlzYWxsb3cgZGF0YSB0eXBlIGNoYW5nZQorQUxURVIgVFlQ RSB0MSBBTFRFUiBBVFRSSUJVVEUgYyBUWVBFIGludDsKKworRFJPUCBWQVJJQUJMRSB2MTsKK0RS T1AgVFlQRSB0MTsKKworLS0gdGhlIHRhYmxlIHR5cGUgY2FuIGJlIHVzZWQgYXMgY29tcG9zaXRl IHR5cGUgdG9vCitDUkVBVEUgVEFCTEUgc3Zhcl90ZXN0KGEgaW50LCBiIG51bWVyaWMsIGMgZGF0 ZSk7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBzdmFyX3Rlc3Q7CisKK0xFVCB2YXIxID0gKDEw LCBwaSgpLCAnMjAyMy0wNS0yNicpOworU0VMRUNUIHZhcjE7CisKKy0tIHNob3VsZCBmYWlsIGR1 ZSBkZXBlbmRlbmN5CitBTFRFUiBUQUJMRSBzdmFyX3Rlc3QgQUxURVIgQ09MVU1OIGEgVFlQRSB0 ZXh0OworCistLSBzaG91bGQgZmFpbAorRFJPUCBUQUJMRSBzdmFyX3Rlc3Q7CisKK0RST1AgVkFS SUFCTEUgdmFyMTsKK0RST1AgVEFCTEUgc3Zhcl90ZXN0OworCitDUkVBVEUgVFlQRSB2YXJ0ZXN0 X3QxIEFTIChhIGludCwgYiBpbnQpOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFydGVzdF90 MTsKK0NSRUFURSBUQUJMRSB2YXJ0ZXN0dGFiICh4Y29sIGludCk7CisKK0NSRUFURSBST0xFIHJl Z3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKKworR1JBTlQgVVBEQVRFIE9OIFZBUklBQkxFIHZhcjEgVE8g cmVncmVzc192YXJfdGVzdF9yb2xlOworR1JBTlQgU0VMRUNUIE9OIFRBQkxFIHZhcnRlc3R0YWIg VE8gcmVncmVzc192YXJfdGVzdF9yb2xlOworCitTRVQgUk9MRSBUTyByZWdyZXNzX3Zhcl90ZXN0 X3JvbGU7CisKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAoMTAsIDIwKTsKK0xFVCB2YXIx LmEgPSAzMDsKKworRE8gJCQKK0JFR0lOCisgIExFVCB2YXIxID0gKDEwMCwgMTAwKTsKKyAgTEVU IHZhcjEuYSA9IDEwMDA7CitFTkQ7CiskJDsKKworLS0gc2hvdWxkIGZhaWwKK1NFTEVDVCB2YXIx LmE7CitTRUxFQ1QgdmFyMTsKK0xFVCB2YXIxLmEgPSB2YXIxLmEgKyAxMDsKK0xFVCB2YXIxLmEg PSAoU0VMRUNUICogRlJPTSAoU0VMRUNUIGNvdW50KCopIEZST00gdmFydGVzdHRhYiBXSEVSRSB4 Y29sID0gdmFyMS5hICsgMTApKTsKKworRE8gJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgdmFy MTsgRU5EICQkOworRE8gJCQgQkVHSU4gUkFJU0UgTk9USUNFICclJywgdmFyMS5hOyBFTkQgJCQ7 CitETyAkJCBCRUdJTiBMRVQgdmFyMS5hID0gdmFyMS5hICsgMTA7IEVORCAkJDsKKworU0VUIFJP TEUgVE8gREVGQVVMVDsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRSB2YXIxIFRPIHJlZ3Jlc3Nf dmFyX3Rlc3Rfcm9sZTsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyX3Rlc3Rfcm9sZTsKKworLS0g c2hvdWxkIGJlIG9rCitTRUxFQ1QgdmFyMS5hOworU0VMRUNUIHZhcjE7CitMRVQgdmFyMS5hID0g dmFyMS5hICsgMTA7CitMRVQgdmFyMS5hID0gKFNFTEVDVCAqIEZST00gKFNFTEVDVCBjb3VudCgq KSBGUk9NIHZhcnRlc3R0YWIgV0hFUkUgeGNvbCA9IHZhcjEuYSArIDEwKSk7CisKK0RPICQkIEJF R0lOIFJBSVNFIE5PVElDRSAnJScsIHZhcjE7IEVORCAkJDsKK0RPICQkIEJFR0lOIFJBSVNFIE5P VElDRSAnJScsIHZhcjEuYTsgRU5EICQkOworRE8gJCQgQkVHSU4gTEVUIHZhcjEuYSA9IHZhcjEu YSArIDEwOyBFTkQgJCQ7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitSRVZPS0UgU0VMRUNUIE9O IFZBUklBQkxFIHZhcjEgRlJPTSByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CitTRVQgUk9MRSBUTyBy ZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CisKKy0tIHNob3VsZCBmYWlsIGFnYWluCitTRUxFQ1QgdmFy MS5hOworU0VMRUNUIHZhcjE7CitMRVQgdmFyMS5hID0gdmFyMS5hICsgMTA7CitMRVQgdmFyMS5h ID0gKFNFTEVDVCAqIEZST00gKFNFTEVDVCBjb3VudCgqKSBGUk9NIHZhcnRlc3R0YWIgV0hFUkUg eGNvbCA9IHZhcjEuYSArIDEwKSk7CisKK0RPICQkIEJFR0lOIFJBSVNFIE5PVElDRSAnJScsIHZh cjE7IEVORCAkJDsKK0RPICQkIEJFR0lOIFJBSVNFIE5PVElDRSAnJScsIHZhcjEuYTsgRU5EICQk OworRE8gJCQgQkVHSU4gTEVUIHZhcjEuYSA9IHZhcjEuYSArIDEwOyBFTkQgJCQ7CisKK1NFVCBS T0xFIFRPIERFRkFVTFQ7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVEFCTEUgdmFydGVz dHRhYjsKK0RST1AgUk9MRSByZWdyZXNzX3Zhcl90ZXN0X3JvbGU7CitEUk9QIFRZUEUgdmFydGVz dF90MTsKKworQ1JFQVRFIFRZUEUgdmFydGVzdF90MSBBUyAoYSBpbnQsIGIgaW50KTsKKworQ1JF QVRFIFZBUklBQkxFIHZhcjEgQVMgdGV4dDsKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIHZhcnRl c3RfdDE7CisKKy0tIHNob3VsZCBmYWlsCitTRUxFQ1QgdmFyMS5hOworU0VMRUNUIHZhcjIuYzsK KworRFJPUCBWQVJJQUJMRSB2YXIxOworRFJPUCBWQVJJQUJMRSB2YXIyOworRFJPUCBUWVBFIHZh cnRlc3RfdDE7CisKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKworTEVUIHZhcjEgPSAx OworTEVUIHZhcjEgPSAnMSc7CitMRVQgdmFyMSA9IDEwLjE7CisKKy0tIHNob3VsZCBmYWlsCitM RVQgdmFyMSA9ICcxJzo6anNvbmI7CisKKy0tIHNob3VsZCBiZSBvaworTEVUIHZhcjEgPSAnMSc6 Ompzb25iOjppbnQ7CisKKy0tIHNob3VsZCBmYWlsCitMRVQgdmFyMS54ID0gMTA7CisKK0RST1Ag VkFSSUFCTEUgdmFyMTsKKworQ1JFQVRFIFNDSEVNQSB2YXJ0ZXN0OworQ1JFQVRFIFRZUEUgdmFy dGVzdHR5cGUgQVMgKHZhcnRlc3QgaW50KTsKK0NSRUFURSBWQVJJQUJMRSB2YXJ0ZXN0LnZhcnRl c3QgQVMgdmFydGVzdHR5cGU7CitTRVQgU0VBUkNIX1BBVEggVE8gdmFydGVzdDsKKworLS0gc2hv dWxkIGZhaWwKK0xFVCB2YXJ0ZXN0LnZhcnRlc3QgPSAxOworCitEUk9QIFZBUklBQkxFIHZhcnRl c3QudmFydGVzdDsKK0RST1AgVFlQRSB2YXJ0ZXN0dHlwZTsKK0RST1AgU0NIRU1BIHZhcnRlc3Q7 CitTRVQgU0VBUkNIX1BBVEggVE8gREVGQVVMVDsKKworLS0gYXJyYXlzIGFyZSBzdXBwb3J0ZWQK K0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIG51bWVyaWNbXTsKK0xFVCB2YXIxID0gQVJSQVlbMS4x LDIuMV07CitMRVQgdmFyMVsxXSA9IDEwLjE7CitTRUxFQ1QgdmFyMTsKKworLS0gTEVUIHRhcmdl dCBkb2Vzbid0IGFsbG93IHNyZiwgc2hvdWxkIGZhaWwKK0xFVCB2YXIxW2dlbmVyYXRlX3Nlcmll cygxLDMpXSA9IDEwMDsKKworRFJPUCBWQVJJQUJMRSB2YXIxOworCistLSBhcnJheXMgaW5zaWRl IGNvbXBvc2l0ZQorQ1JFQVRFIFRZUEUgdDEgQVMgKGEgbnVtZXJpYywgYiBudW1lcmljW10pOwor Q1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdDE7CitMRVQgdmFyMSA9ICgxMC4xLCBBUlJBWVswLjAs IDAuMF0pOworTEVUIHZhcjEuYSA9IDEwLjI7CitTRUxFQ1QgdmFyMTsKK0xFVCB2YXIxLmJbMV0g PSAxMC4zOworU0VMRUNUIHZhcjE7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVFlQRSB0 MTsKKworLS0gRW5jb3VyYWdlIHVzZSBvZiBwYXJhbGxlbCBwbGFucworU0VUIHBhcmFsbGVsX3Nl dHVwX2Nvc3QgPSAwOworU0VUIHBhcmFsbGVsX3R1cGxlX2Nvc3QgPSAwOworU0VUIG1pbl9wYXJh bGxlbF90YWJsZV9zY2FuX3NpemUgPSAwOworU0VUIG1heF9wYXJhbGxlbF93b3JrZXJzX3Blcl9n YXRoZXIgPSAyOworCistLSB0ZXN0IG9uIHF1ZXJ5IHdpdGggd29ya2VycworQ1JFQVRFIFRBQkxF IHN2YXJfdGVzdChhIGludCk7CitJTlNFUlQgSU5UTyBzdmFyX3Rlc3QgU0VMRUNUICogRlJPTSBn ZW5lcmF0ZV9zZXJpZXMoMSwxMDAwKTsKK0FOQUxZWkUgc3Zhcl90ZXN0OworQ1JFQVRFIFZBUklB QkxFIHplcm8gaW50OworTEVUIHplcm8gPSAwOworCistLSByZXN1bHQgc2hvdWxkIGJlIDEwMAor U0VMRUNUIGNvdW50KCopIEZST00gc3Zhcl90ZXN0IFdIRVJFIGElMTAgPSB6ZXJvOworCistLSBw YXJhbGxlbCBleGVjdXRpb24gaXMgbm90IHN1cHBvcnRlZCB5ZXQKK0VYUExBSU4gKENPU1RTIE9G RikgU0VMRUNUIGNvdW50KCopIEZST00gc3Zhcl90ZXN0IFdIRVJFIGElMTAgPSB6ZXJvOworCitM RVQgemVybyA9IChTRUxFQ1QgY291bnQoKikgRlJPTSBzdmFyX3Rlc3QpOworCistLSByZXN1bHQg c2hvdWxkIGJlIDEwMDAKK1NFTEVDVCB6ZXJvOworCitEUk9QIFZBUklBQkxFIHplcm87CitEUk9Q IFRBQkxFIHN2YXJfdGVzdDsKKworUkVTRVQgcGFyYWxsZWxfc2V0dXBfY29zdDsKK1JFU0VUIHBh cmFsbGVsX3R1cGxlX2Nvc3Q7CitSRVNFVCBtaW5fcGFyYWxsZWxfdGFibGVfc2Nhbl9zaXplOwor UkVTRVQgbWF4X3BhcmFsbGVsX3dvcmtlcnNfcGVyX2dhdGhlcjsKKworLS0gdGhlIHJlc3VsdCBv ZiB2aWV3IHNob3VsZCBiZSBzYW1lIGluIHBhcmFsbGVsIG1vZGUgdG9vCitDUkVBVEUgVkFSSUFC TEUgdmFyMSBBUyBpbnQ7CitMRVQgdmFyMSA9IDEwOworCitDUkVBVEUgVklFVyB2YXIxdmlldyBB UyBTRUxFQ1QgQ09BTEVTQ0UodmFyMSwgMCkgQVMgcmVzdWx0OworCitTRUxFQ1QgKiBGUk9NIHZh cjF2aWV3OworCitTRVQgZGVidWdfcGFyYWxsZWxfcXVlcnkgVE8gb247CisKK1NFTEVDVCAqIEZS T00gdmFyMXZpZXc7CisKK1NFVCBkZWJ1Z19wYXJhbGxlbF9xdWVyeSBUTyBvZmY7CisKK0RST1Ag VklFVyB2YXIxdmlldzsKK0RST1AgVkFSSUFCTEUgdmFyMTsKKworQ1JFQVRFIFZBUklBQkxFIHZh cmlkIGludDsKK0NSRUFURSBUQUJMRSBzdmFyX3Rlc3QoaWQgaW50LCB2IGludCk7CisKK0xFVCB2 YXJpZCA9IDE7CitJTlNFUlQgSU5UTyBzdmFyX3Rlc3QgVkFMVUVTKHZhcmlkLCAxMDApOworU0VM RUNUICogRlJPTSBzdmFyX3Rlc3Q7CitVUERBVEUgc3Zhcl90ZXN0IFNFVCB2ID0gMjAwIFdIRVJF IGlkID0gdmFyaWQ7CitTRUxFQ1QgKiBGUk9NIHN2YXJfdGVzdDsKK0RFTEVURSBGUk9NIHN2YXJf dGVzdCBXSEVSRSBpZCA9IHZhcmlkOworU0VMRUNUICogRlJPTSBzdmFyX3Rlc3Q7CisKK0RST1Ag VEFCTEUgc3Zhcl90ZXN0OworRFJPUCBWQVJJQUJMRSB2YXJpZDsKKworLS0gdmlzaWJpbGl0eSBj aGVjaworLS0gdmFyaWFibGVzIHNob3VsZCBiZSBzaGFkb3dlZCBhbHdheXMKK0NSRUFURSBWQVJJ QUJMRSB2YXIxIEFTIHRleHQ7CitTRUxFQ1QgdmFyMS5yZWxuYW1lIEZST00gcGdfY2xhc3MgdmFy MSBXSEVSRSB2YXIxLnJlbG5hbWUgPSAncGdfY2xhc3MnOworCitEUk9QIFZBUklBQkxFIHZhcjE7 CisKK0NSRUFURSBUQUJMRSB4eHRhYihhdmFyIGludCk7CisKK0lOU0VSVCBJTlRPIHh4dGFiIFZB TFVFUygzMzMpOworCitDUkVBVEUgVFlQRSB4eHR5cGUgQVMgKGF2YXIgaW50KTsKKworQ1JFQVRF IFZBUklBQkxFIHh4dGFiIEFTIHh4dHlwZTsKKworSU5TRVJUIElOVE8geHh0YWIgVkFMVUVTKDEw KTsKKworLS0gaXQgaXMgYW1iaWd1b3VzLCBidXQgY29sdW1ucyBhcmUgcHJlZmVycmVkCitTRUxF Q1QgeHh0YWIuYXZhciBGUk9NIHh4dGFiOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCBhdmFy IEZST00geHh0YWI7CisKK0NSRUFURSBWQVJJQUJMRSBwdWJsaWMuYXZhciBBUyBpbnQ7CisKKy0t IHNob3VsZCBiZSBvaywgc2VlIHRoZSB0YWJsZQorU0VMRUNUIGF2YXIgRlJPTSB4eHRhYjsKKwor LS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgcHVibGljLmF2YXIgRlJPTSB4eHRhYjsKKworRFJPUCBW QVJJQUJMRSB4eHRhYjsKKworU0VMRUNUIHh4dGFiLmF2YXIgRlJPTSB4eHRhYjsKKworRFJPUCBW QVJJQUJMRSBwdWJsaWMuYXZhcjsKKworRFJPUCBUWVBFIHh4dHlwZTsKKworRFJPUCBUQUJMRSB4 eHRhYjsKKworLS0gVGhlIHZhcmlhYmxlIGNhbiBiZSBzaGFkb3dlZCBieSB0YWJsZSBvciBieSBh bGlhcworQ1JFQVRFIFRZUEUgcHVibGljLnN2YXJfdHlwZSBBUyAoYSBpbnQsIGIgaW50LCBjIGlu dCk7CitDUkVBVEUgVkFSSUFCTEUgcHVibGljLnN2YXIgQVMgcHVibGljLnN2YXJfdHlwZTsKKwor Q1JFQVRFIFRBQkxFIHB1YmxpYy5zdmFyKGEgaW50LCBiIGludCk7CisKK0lOU0VSVCBJTlRPIHB1 YmxpYy5zdmFyIFZBTFVFUygxMCwgMjApOworCitMRVQgcHVibGljLnN2YXIgPSAoMTAwLCAyMDAs IDMwMCk7CisKKy0tIHNob3VsZCBiZSBvaworLS0gc2hvdyB0YWJsZQorU0VMRUNUICogRlJPTSBw dWJsaWMuc3ZhcjsKK1NFTEVDVCBzdmFyLmEgRlJPTSBwdWJsaWMuc3ZhcjsKK1NFTEVDVCBzdmFy LiogRlJPTSBwdWJsaWMuc3ZhcjsKKworLS0gc2hvdyB2YXJpYWJsZQorU0VMRUNUIHB1YmxpYy5z dmFyOworU0VMRUNUIHB1YmxpYy5zdmFyLmM7CitTRUxFQ1QgKHB1YmxpYy5zdmFyKS4qOworCist LSB0aGUgdmFyaWFibGUgaXMgc2hhZG93ZWQsIHJhaXNlIGVycm9yCitTRUxFQ1QgcHVibGljLnN2 YXIuYyBGUk9NIHB1YmxpYy5zdmFyOworCistLSBjYW4gYmUgZml4ZWQgYnkgYWxpYXMKK1NFTEVD VCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2YXIgeDsKKworU0VMRUNUIHN2YXIuYSBGUk9N IHB1YmxpYy5zdmFyOworU0VMRUNUIHN2YXIuKiBGUk9NIHB1YmxpYy5zdmFyOworCistLSBzaG93 IHZhcmlhYmxlCitTRUxFQ1QgcHVibGljLnN2YXI7CitTRUxFQ1QgcHVibGljLnN2YXIuYzsKK1NF TEVDVCAocHVibGljLnN2YXIpLio7CisKKy0tIHRoZSB2YXJpYWJsZSBpcyBzaGFkb3dlZCwgcmFp c2UgZXJyb3IKK1NFTEVDVCBwdWJsaWMuc3Zhci5jIEZST00gcHVibGljLnN2YXI7CisKKy0tIGNh biBiZSBmaXhlZCBieSBhbGlhcworU0VMRUNUIHB1YmxpYy5zdmFyLmMgRlJPTSBwdWJsaWMuc3Zh ciB4OworCitEUk9QIFZBUklBQkxFIHB1YmxpYy5zdmFyOworRFJPUCBUQUJMRSBwdWJsaWMuc3Zh cjsKK0RST1AgVFlQRSBwdWJsaWMuc3Zhcl90eXBlOworCistLSBUaGUgc2VxdWVuY2UgaWRlbnQu KiBjYW5ub3QgYmUgdXNlZCBieSByZWZlcmVuY2UgdG8gc2Vzc2lvbiB2YXJpYWJsZSwKKy0tIGFu ZCBpbiB0aGlzIGNhc2UsIHRoZXJlIGlzIG5vdCBjb2xsaXNpb24KK0NSRUFURSBTQ0hFTUEgdmFy dGVzdDsKK1NFVCBTRUFSQ0hfUEFUSCBUTyB2YXJ0ZXN0OworQ1JFQVRFIFRBQkxFIHZhcnRlc3Rf Zm9vKGEgaW50LCBiIGludCk7CitJTlNFUlQgSU5UTyB2YXJ0ZXN0X2ZvbyBWQUxVRVMoMTAsMjAp LCAoMzAsNDApOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJ0ZXN0X2ZvbzsKK0xFVCB2 YXIxID0gKDEwMCwyMDApOworCistLSBzaG91bGQgdG8gZmFpbAorU0VMRUNUIHZhcjEuKiBGUk9N IHZhcnRlc3RfZm9vOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB2YXIxLiogRlJPTSB2YXJ0 ZXN0X2ZvbyB2YXIxOworCistLSBzaG91bGQgdG8gZmFpbAorU0VMRUNUIGNvdW50KHZhcjEuKikg RlJPTSB2YXJ0ZXN0X2ZvbzsKKworLS0gc2hvdWxkIGJlIG9rCitTRUxFQ1QgY291bnQodmFyMS4q KSBGUk9NIHZhcnRlc3RfZm9vIHZhcjE7CisKK1NFVCBTRUFSQ0hfUEFUSCBUTyBERUZBVUxUOwor RFJPUCBTQ0hFTUEgdmFydGVzdCBDQVNDQURFOworCitDUkVBVEUgVFlQRSBhYiBBUyAoYSBpbnRl Z2VyLCBiIGludGVnZXIpOworCitDUkVBVEUgVkFSSUFCTEUgdl9hYiBBUyBhYjsKKworQ1JFQVRF IFRBQkxFIHZfYWIgKGEgaW50ZWdlciwgYiBpbnRlZ2VyKTsKK0lOU0VSVCBJTlRPIHZfYWIgVkFM VUVTKDEwLDIwKTsKKworLS0gd2Ugc2hvdWxkIHNlZSB0YWJsZQorU0VMRUNUIHZfYWIuYSBGUk9N IHZfYWI7CisKK0NSRUFURSBTQ0hFTUEgdl9hYjsKKworQ1JFQVRFIFZBUklBQkxFIHZfYWIuYSBB UyBpbnRlZ2VyOworCistLSB3ZSBzaG91bGQgc2VlIHRhYmxlCitTRUxFQ1Qgdl9hYi5hIEZST00g dl9hYjsKKworRFJPUCBWQVJJQUJMRSB2X2FiOworRFJPUCBUQUJMRSB2X2FiOworRFJPUCBUWVBF IGFiOworRFJPUCBWQVJJQUJMRSB2X2FiLmE7CitEUk9QIFNDSEVNQSB2X2FiOworCitDUkVBVEUg VFlQRSB0X2FtX3R5cGUgQVMgKGIgaW50KTsKK0NSRUFURSBTQ0hFTUEgeHh4X2FtOworCitTRVQg c2VhcmNoX3BhdGggVE8gcHVibGljOworCitDUkVBVEUgVkFSSUFCTEUgeHh4X2FtIEFTIHRfYW1f dHlwZTsKK0xFVCB4eHhfYW0gPSBST1coMTApOworCistLSBzaG91bGQgYmUgb2sKK1NFTEVDVCB4 eHhfYW07CisKK0NSRUFURSBWQVJJQUJMRSB4eHhfYW0uYiBBUyBpbnQ7CitMRVQgOiJEQk5BTUUi Lnh4eF9hbS5iID0gMjA7CisKKy0tIHNob3VsZCBiZSBzdGlsbCBvaworU0VMRUNUIHh4eF9hbTsK KworLS0gc2hvdWxkIGZhaWwsIHRoZSByZWZlcmVuY2Ugc2hvdWxkIGJlIGFtYmlndW91cworU0VM RUNUIHh4eF9hbS5iOworCistLSBlbmhhbmNlZCByZWZlcmVuY2VzIHNob3VsZCBiZSBvaworU0VM RUNUIHB1YmxpYy54eHhfYW0uYjsKK1NFTEVDVCA6IkRCTkFNRSIueHh4X2FtLmI7CisKK0NSRUFU RSBUQUJMRSB4eHhfYW0oYiAgaW50KTsKK0lOU0VSVCBJTlRPIHh4eF9hbSBWQUxVRVMoMTApOwor CistLSB3ZSBzaG91bGQgc2VlIHRhYmxlCitTRUxFQ1QgeHh4X2FtLmIgRlJPTSB4eHhfYW07CitT RUxFQ1QgeC5iIEZST00geHh4X2FtIHg7CisKK0RST1AgVEFCTEUgeHh4X2FtOworRFJPUCBWQVJJ QUJMRSBwdWJsaWMueHh4X2FtOworRFJPUCBWQVJJQUJMRSB4eHhfYW0uYjsKK0RST1AgU0NIRU1B IHh4eF9hbTsKKworQ1JFQVRFIFNDSEVNQSA6IkRCTkFNRSI7CisKK0NSRUFURSBWQVJJQUJMRSA6 IkRCTkFNRSIuOiJEQk5BTUUiLjoiREJOQU1FIiBBUyB0X2FtX3R5cGU7CitDUkVBVEUgVkFSSUFC TEUgOiJEQk5BTUUiLjoiREJOQU1FIi5iIEFTIGludDsKKworU0VUIHNlYXJjaF9wYXRoIFRPIDoi REJOQU1FIjsKKworLS0gc2hvdWxkIGJlIGFtYmlndW91cworU0VMRUNUIDoiREJOQU1FIi5iOwor CistLSBzaG91bGQgYmUgYW1iaWd1b3VzIHRvbworU0VMRUNUIDoiREJOQU1FIi46IkRCTkFNRSIu YjsKKworQ1JFQVRFIFRBQkxFIDoiREJOQU1FIihiIGludCk7CisKKy0tIHNob3VsZCBiZSBvawor U0VMRUNUIDoiREJOQU1FIi5iIEZST00gOiJEQk5BTUUiOworCitEUk9QIFRBQkxFIDoiREJOQU1F IjsKKworRFJPUCBWQVJJQUJMRSA6IkRCTkFNRSIuOiJEQk5BTUUiLmI7CitEUk9QIFZBUklBQkxF IDoiREJOQU1FIi46IkRCTkFNRSIuOiJEQk5BTUUiOworRFJPUCBTQ0hFTUEgOiJEQk5BTUUiOwor CitSRVNFVCBzZWFyY2hfcGF0aDsKZGlmZiAtLWdpdCBhL3NyYy90b29scy9wZ2luZGVudC90eXBl ZGVmcy5saXN0IGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKaW5kZXggMzJkYjJj NjMwZS4uNzIzNjBhMTdmYiAxMDA2NDQKLS0tIGEvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZz Lmxpc3QKKysrIGIvc3JjL3Rvb2xzL3BnaW5kZW50L3R5cGVkZWZzLmxpc3QKQEAgLTE1MDEsNiAr MTUwMSw3IEBAIExhcmdlT2JqZWN0RGVzYwogTGF0Y2gKIExhdW5jaGVyTGFzdFN0YXJ0VGltZXNF bnRyeQogTGVycEZ1bmMKK0xldFN0bXQKIExleERlc2NyCiBMZXhlbWVFbnRyeQogTGV4ZW1lSGFz aEtleQpAQCAtMjYxMCw2ICsyNjExLDcgQEAgU2VyaWFsaXplZFRyYW5zYWN0aW9uU3RhdGUKIFNl c3Npb24KIFNlc3Npb25CYWNrdXBTdGF0ZQogU2Vzc2lvbkVuZFR5cGUKK1Nlc3Npb25WYXJpYWJs ZVZhbHVlCiBTZXRDb25zdHJhaW50U3RhdGUKIFNldENvbnN0cmFpbnRTdGF0ZURhdGEKIFNldENv bnN0cmFpbnRUcmlnZ2VyRGF0YQpAQCAtMjgwMiw2ICsyODA0LDkgQEAgU3VwcG9ydFJlcXVlc3RS b3dzCiBTdXBwb3J0UmVxdWVzdFNlbGVjdGl2aXR5CiBTdXBwb3J0UmVxdWVzdFNpbXBsaWZ5CiBT dXBwb3J0UmVxdWVzdFdGdW5jTW9ub3RvbmljCitTVmFyaWFibGUKK1NWYXJpYWJsZURhdGEKK1NW YXJpYWJsZVN0YXRlCiBTeW4KIFN5bmNPcHMKIFN5bmNSZXBDb25maWdEYXRhCi0tIAoyLjQ3LjEK Cg== --0000000000007bfa26062b3fa8d1 Content-Type: text/x-patch; charset="US-ASCII"; name="v20250109-0001-Enhancing-catalog-for-support-session-variables-and-.patch" Content-Disposition: attachment; filename="v20250109-0001-Enhancing-catalog-for-support-session-variables-and-.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m5ox16re21 RnJvbSBmOWNkNmQ3Nzk3MTc0OTdjNTZkODliZTg0NDNkZjVkYjQzNjlhMjA0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiAib2tib2JAZ2l0aHViLmNvbSIgPG9rYm9iQGdpdGh1Yi5jb20+ CkRhdGU6IEZyaSwgMTkgSmFuIDIwMjQgMTU6NDE6NTUgKzAxMDAKU3ViamVjdDogW1BBVENIIDAx LzIyXSBFbmhhbmNpbmcgY2F0YWxvZyBmb3Igc3VwcG9ydCBzZXNzaW9uIHZhcmlhYmxlcyBhbmQK IHJlbGF0ZWQgc3VwcG9ydAoKVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIG5ldyBzeXN0ZW0gY2F0YWxv ZyB0YWJsZSBwZ192YXJpYWJsZS4gVGhpcyB0YWJsZSBob2xkcyBtZXRhZGF0YSBhYm91dApzZXNz aW9uIHZhcmlhYmxlcyBjcmVhdGVkIGJ5IGNvbW1hbmQgQ1JFQVRFIFZBUklBQkxFLCBhbmQgZHJv cHBlZCBieSBjb21tYW5kIERST1AgVkFSSUFCTEUuCkJvdGggY29tbWFuZHMgYXJlIGltcGxlbWVu dGVkIGJ5IHRoaXMgcGF0Y2guIFBvc3NpYmlsaXR5IHRvIGNoYW5nZSBvd25lciwgc2NoZW1hIG9y IHJlbmFtZS4KCkFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgY29udHJvbGxlZCBi eSBTRUxFQ1Qgb3IgVVBEQVRFIHJpZ2h0cy4gQm90aCByaWdodHMgYXJlCmludHJvZHVjZWQgYnkg dGhpcyBwYXRjaCB0b28uCgpUaGlzIHBhdGNoIGVuaGFuY2luZyBwZ19kdW1wIGFuZCBwc3FsIHRv IHN1cHBvcnQgc2Vzc2lvbiB2YXJpYWJsZXMuIFRoZSBjaGFuZ2VzIGFyZSByZWxhdGVkCnRvIHN5 c3RlbSBjYXRhbG9nLgoKVGhpcyBwYXRjaCBpcyBub3Qgc2hvcnQsIGJ1dCB0aGUgY29kZSBpcyBz aW1wbGUuCi0tLQogZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgICAgICAgICAgICAgICAgICAg IHwgMTIzICsrKystCiBkb2Mvc3JjL3NnbWwvZGRsLnNnbWwgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgNDAgKy0KIGRvYy9zcmMvc2dtbC9mdW5jLnNnbWwgICAgICAgICAgICAgICAgICAgICAg ICB8ICAzMiArKwogZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwgICAgICAgICAgICAgICAgICAg IHwgIDE1ICsKIGRvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbCAgICAgICAgICAgICAgICB8 ICAgMyArCiAuLi4vc2dtbC9yZWYvYWx0ZXJfZGVmYXVsdF9wcml2aWxlZ2VzLnNnbWwgICAgfCAg MjcgKy0KIGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbCAgICAgICAgICB8IDE3 OCArKysrKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbCAgICAgICAgICAgICAgICAg fCAgIDEgKwogZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfc2NoZW1hLnNnbWwgICAgICAgICAgIHwg IDEyICstCiBkb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21sICAgICAgICAgfCAx NDkgKysrKysrCiBkb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbCAgICAgICAgICAg fCAxMTcgKysrKysKIGRvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbCAgICAgICAgICAgICAgICAg ICB8ICAyMCArLQogZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sICAgICAgICAgICAgICAg IHwgIDEzICsKIGRvYy9zcmMvc2dtbC9yZWYvcmV2b2tlLnNnbWwgICAgICAgICAgICAgICAgICB8 ICAgOCArCiBkb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwgICAgICAgICAgICAgICAgICAgfCAg IDMgKwogc3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZSAgICAgICAgICAgICAgICAgIHwgICAx ICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgICAgICAgICAgICAgICAgICB8ICA3NyAr KysrCiBzcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyAgICAgICAgICAgICAgfCAgIDYg Kwogc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZCAgICAgICAgICAgICAgIHwgICAxICsK IHNyYy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMgICAgICAgICAgICAgICB8IDIyMSArKysr KysrKysKIHNyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jICAgICAgICAgICB8IDEy MSArKysrLQogc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zaGRlcGVuZC5jICAgICAgICAgICAgIHwg ICAyICsKIHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyAgICAgICAgICAgICB8IDI1 MSArKysrKysrKysrCiBzcmMvYmFja2VuZC9jb21tYW5kcy9hbHRlci5jICAgICAgICAgICAgICAg ICAgfCAgIDkgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYyAgICAgICAgICAgICAg IHwgICA0ICsKIHNyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdnZXIuYyAgICAgICAgICB8 ICAgNCArCiBzcmMvYmFja2VuZC9jb21tYW5kcy9zZWNsYWJlbC5jICAgICAgICAgICAgICAgfCAg IDEgKwogc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMgICAgICAgICAgICAgIHwgIDQx ICsrCiBzcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jICAgICAgICAgICAgICAgfCAgMTUg Kwogc3JjL2JhY2tlbmQvcGFyc2VyL2dyYW0ueSAgICAgICAgICAgICAgICAgICAgIHwgMTA1ICsr KystCiBzcmMvYmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jICAgICAgICAgICAgfCAgMTIg Kwogc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgICAgICAgICAgICAgICAgICAgIHwgIDIwICsK IHNyYy9iYWNrZW5kL3V0aWxzL2FkdC9hY2wuYyAgICAgICAgICAgICAgICAgICB8IDIyMSArKysr KysrKysKIHNyYy9iYWNrZW5kL3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jICAgICAgICAgICB8IDEx MyArKysrKwogc3JjL2Jpbi9wZ19kdW1wL2NvbW1vbi5jICAgICAgICAgICAgICAgICAgICAgIHwg ICAzICsKIHNyYy9iaW4vcGdfZHVtcC9kdW1wdXRpbHMuYyAgICAgICAgICAgICAgICAgICB8ICAg NiArCiBzcmMvYmluL3BnX2R1bXAvcGdfYmFja3VwLmggICAgICAgICAgICAgICAgICAgfCAgIDIg Kwogc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cF9hcmNoaXZlci5jICAgICAgICAgIHwgICA5ICsK IHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMgICAgICAgICAgICAgICAgICAgICB8IDE5NSArKysr KysrLQogc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaCAgICAgICAgICAgICAgICAgICAgIHwgIDE5 ICsKIHNyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYyAgICAgICAgICAgICAgICB8ICAgNiAr CiBzcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCAgICAgICAgICAgICAgfCAgNjQgKysr CiBzcmMvYmluL3BzcWwvY29tbWFuZC5jICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDMgKwog c3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgICAgICAgICAgICAgICAgICAgICAgIHwgMTAwICsrKy0K IHNyYy9iaW4vcHNxbC9kZXNjcmliZS5oICAgICAgICAgICAgICAgICAgICAgICB8ICAgMyArCiBz cmMvYmluL3BzcWwvaGVscC5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDEgKwogc3Jj L2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jICAgICAgICAgICAgICAgIHwgIDQzICstCiBzcmMv aW5jbHVkZS9jYXRhbG9nL01ha2VmaWxlICAgICAgICAgICAgICAgICAgfCAgIDMgKy0KIHNyYy9p bmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQgICAgICAgICAgICAgICB8ICAgMSArCiBzcmMvaW5j bHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oICAgICAgICAgICAgICAgfCAgIDYgKwogc3JjL2luY2x1 ZGUvY2F0YWxvZy9wZ19kZWZhdWx0X2FjbC5oICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHJvYy5kYXQgICAgICAgICAgICAgICB8ICAyMyArCiBzcmMvaW5jbHVkZS9j YXRhbG9nL3BnX3ZhcmlhYmxlLmggICAgICAgICAgICAgfCAgODEgKysrKwogc3JjL2luY2x1ZGUv bm9kZXMvcGFyc2Vub2Rlcy5oICAgICAgICAgICAgICAgIHwgIDE2ICsKIHNyYy9pbmNsdWRlL3Bh cnNlci9rd2xpc3QuaCAgICAgICAgICAgICAgICAgICB8ICAgMiArCiBzcmMvaW5jbHVkZS90Y29w L2NtZHRhZ2xpc3QuaCAgICAgICAgICAgICAgICAgfCAgIDMgKwogc3JjL2luY2x1ZGUvdXRpbHMv YWNsLmggICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKIHNyYy9pbmNsdWRlL3V0aWxzL2xz eXNjYWNoZS5oICAgICAgICAgICAgICAgICB8ICAgOSArCiBzcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2RlcGVuZGVuY3kub3V0ICAgICAgfCAgMTcgKwogc3JjL3Rlc3QvcmVncmVzcy9leHBlY3Rl ZC9vaWRqb2lucy5vdXQgICAgICAgIHwgICA0ICsKIHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cHNxbC5vdXQgICAgICAgICAgICB8ICA1MCArKwogLi4uL3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lv bl92YXJpYWJsZXMub3V0ICAgIHwgNDMzICsrKysrKysrKysrKysrKysrKwogc3JjL3Rlc3QvcmVn cmVzcy9wYXJhbGxlbF9zY2hlZHVsZSAgICAgICAgICAgIHwgICAyICstCiBzcmMvdGVzdC9yZWdy ZXNzL3NxbC9kZXBlbmRlbmN5LnNxbCAgICAgICAgICAgfCAgMTQgKwogc3JjL3Rlc3QvcmVncmVz cy9zcWwvcHNxbC5zcWwgICAgICAgICAgICAgICAgIHwgIDIxICsKIHNyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCAgICB8IDI5NyArKysrKysrKysrKysKIHNyYy90b29s cy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgICAgICAgICB8ICAgNCArCiA2NyBmaWxlcyBj aGFuZ2VkLCAzMzcxIGluc2VydGlvbnMoKyksIDM3IGRlbGV0aW9ucygtKQogY3JlYXRlIG1vZGUg MTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbAogY3JlYXRlIG1vZGUg MTAwNjQ0IGRvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3ZhcmlhYmxlLnNnbWwKIGNyZWF0ZSBtb2Rl IDEwMDY0NCBkb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbAogY3JlYXRlIG1vZGUg MTAwNjQ0IHNyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYwogY3JlYXRlIG1vZGUgMTAw NjQ0IHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAogY3JlYXRlIG1vZGUgMTAwNjQ0 IHNyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvc2Vzc2lvbl92YXJpYWJsZXMub3V0CiBjcmVhdGUg bW9kZSAxMDA2NDQgc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92YXJpYWJsZXMuc3FsCgpk aWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2NhdGFsb2dzLnNnbWwgYi9kb2Mvc3JjL3NnbWwvY2F0 YWxvZ3Muc2dtbAppbmRleCBjYzZjZjliZWYwLi42YmJjNmM3ZTI4IDEwMDY0NAotLS0gYS9kb2Mv c3JjL3NnbWwvY2F0YWxvZ3Muc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwvY2F0YWxvZ3Muc2dtbApA QCAtMzY5LDYgKzM2OSwxMSBAQAogICAgICAgPGVudHJ5PjxsaW5rIGxpbmtlbmQ9ImNhdGFsb2ct cGctdXNlci1tYXBwaW5nIj48c3RydWN0bmFtZT5wZ191c2VyX21hcHBpbmc8L3N0cnVjdG5hbWU+ PC9saW5rPjwvZW50cnk+CiAgICAgICA8ZW50cnk+bWFwcGluZ3Mgb2YgdXNlcnMgdG8gZm9yZWln biBzZXJ2ZXJzPC9lbnRyeT4KICAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRy eT48bGluayBsaW5rZW5kPSJjYXRhbG9nLXBnLXZhcmlhYmxlIj48c3RydWN0bmFtZT5wZ192YXJp YWJsZTwvc3RydWN0bmFtZT48L2xpbms+PC9lbnRyeT4KKyAgICAgIDxlbnRyeT5zZXNzaW9uIHZh cmlhYmxlczwvZW50cnk+CisgICAgIDwvcm93PgogICAgIDwvdGJvZHk+CiAgICA8L3Rncm91cD4K ICAgPC90YWJsZT4KQEAgLTMzMjgsNyArMzMzMyw4IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2Vh YmxlPiZsdDtpdGVyYXRpb24gY291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZs CiAgICAgICAgPGxpdGVyYWw+UzwvbGl0ZXJhbD4gPSBzZXF1ZW5jZSwKICAgICAgICA8bGl0ZXJh bD5mPC9saXRlcmFsPiA9IGZ1bmN0aW9uLAogICAgICAgIDxsaXRlcmFsPlQ8L2xpdGVyYWw+ID0g dHlwZSwKLSAgICAgICA8bGl0ZXJhbD5uPC9saXRlcmFsPiA9IHNjaGVtYQorICAgICAgIDxsaXRl cmFsPm48L2xpdGVyYWw+ID0gc2NoZW1hLAorICAgICAgIDxsaXRlcmFsPlY8L2xpdGVyYWw+ID0g c2Vzc2lvbiB2YXJpYWJsZQogICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgIDwvcm93PgogCkBA IC05NzMyLDQgKzk3MzgsMTE5IEBAIFNDUkFNLVNIQS0yNTYkPHJlcGxhY2VhYmxlPiZsdDtpdGVy YXRpb24gY291bnQmZ3Q7PC9yZXBsYWNlYWJsZT46PHJlcGxhY2VhYmxlPiZsCiAgIDwvdGFibGU+ CiAgPC9zZWN0MT4KIAorIDxzZWN0MSBpZD0iY2F0YWxvZy1wZy12YXJpYWJsZSI+CisgIDx0aXRs ZT48c3RydWN0bmFtZT5wZ192YXJpYWJsZTwvc3RydWN0bmFtZT48L3RpdGxlPgorCisgIDxpbmRl eHRlcm0gem9uZT0iY2F0YWxvZy1wZy12YXJpYWJsZSI+CisgICA8cHJpbWFyeT5wZ192YXJpYWJs ZTwvcHJpbWFyeT4KKyAgPC9pbmRleHRlcm0+CisKKyAgPHBhcmE+CisgICBUaGUgY2F0YWxvZyA8 c3RydWN0bmFtZT5wZ192YXJpYWJsZTwvc3RydWN0bmFtZT4gc3RvcmVzIGluZm9ybWF0aW9uIGFi b3V0CisgICBzZXNzaW9uIHZhcmlhYmxlcy4KKyAgPC9wYXJhPgorCisgIDx0YWJsZT4KKyAgIDx0 aXRsZT48c3RydWN0bmFtZT5wZ192YXJpYWJsZTwvc3RydWN0bmFtZT4gQ29sdW1uczwvdGl0bGU+ CisgICA8dGdyb3VwIGNvbHM9IjEiPgorICAgIDx0aGVhZD4KKyAgICAgPHJvdz4KKyAgICAgIDxl bnRyeSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5p dGlvbiI+CisgICAgICAgQ29sdW1uIFR5cGUKKyAgICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgor ICAgICAgIERlc2NyaXB0aW9uCisgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+Cisg ICAgPC90aGVhZD4KKworICAgIDx0Ym9keT4KKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xl PSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+Cisg ICAgICAgPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAg ICAgIDwvcGFyYT4KKyAgICAgIDxwYXJhPgorICAgICAgIFJvdyBpZGVudGlmaWVyCisgICAgICA8 L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSBy b2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+ CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcnR5cGU8L3N0cnVjdGZpZWxkPiA8dHlwZT5vaWQ8L3R5 cGU+CisgICAgICAgKHJlZmVyZW5jZXMgPGxpbmsgbGlua2VuZD0iY2F0YWxvZy1wZy10eXBlIj48 c3RydWN0bmFtZT5wZ190eXBlPC9zdHJ1Y3RuYW1lPjwvbGluaz4uPHN0cnVjdGZpZWxkPm9pZDwv c3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBhcmE+CisgICAgICAgVGhlIE9J RCBvZiB0aGUgdmFyaWFibGUncyBkYXRhIHR5cGUKKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAg ICA8L3Jvdz4KKworICAgICA8cm93PgorICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVf ZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVtbl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0Zmll bGQ+dmFybmFtZTwvc3RydWN0ZmllbGQ+IDx0eXBlPm5hbWU8L3R5cGU+CisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICBOYW1lIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlCisgICAg ICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRy eSByb2xlPSJjYXRhbG9nX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlv biI+CisgICAgICAgPHN0cnVjdGZpZWxkPnZhcm5hbWVzcGFjZTwvc3RydWN0ZmllbGQ+IDx0eXBl Pm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJjYXRhbG9nLXBn LW5hbWVzcGFjZSI+PHN0cnVjdG5hbWU+cGdfbmFtZXNwYWNlPC9zdHJ1Y3RuYW1lPjwvbGluaz4u PHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAgPHBh cmE+CisgICAgICAgVGhlIE9JRCBvZiB0aGUgbmFtZXNwYWNlIHRoYXQgY29udGFpbnMgdGhpcyB2 YXJpYWJsZQorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAgIDxyb3c+ CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9sZT0iY29s dW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJvd25lcjwvc3RydWN0Zmll bGQ+IDx0eXBlPm9pZDwvdHlwZT4KKyAgICAgICAocmVmZXJlbmNlcyA8bGluayBsaW5rZW5kPSJj YXRhbG9nLXBnLWF1dGhpZCI+PHN0cnVjdG5hbWU+cGdfYXV0aGlkPC9zdHJ1Y3RuYW1lPjwvbGlu az4uPHN0cnVjdGZpZWxkPm9pZDwvc3RydWN0ZmllbGQ+KQorICAgICAgPC9wYXJhPgorICAgICAg PHBhcmE+CisgICAgICAgT3duZXIgb2YgdGhlIHZhcmlhYmxlCisgICAgICA8L3BhcmE+PC9lbnRy eT4KKyAgICAgPC9yb3c+CisKKyAgICAgPHJvdz4KKyAgICAgIDxlbnRyeSByb2xlPSJjYXRhbG9n X3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJjb2x1bW5fZGVmaW5pdGlvbiI+CisgICAgICAgPHN0 cnVjdGZpZWxkPnZhcnR5cG1vZDwvc3RydWN0ZmllbGQ+IDx0eXBlPmludDQ8L3R5cGU+CisgICAg ICA8L3BhcmE+CisgICAgICA8cGFyYT4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFydHlwbW9kPC9z dHJ1Y3RmaWVsZD4gcmVjb3JkcyB0eXBlLXNwZWNpZmljIGRhdGEKKyAgICAgICBzdXBwbGllZCBh dCB2YXJpYWJsZSBjcmVhdGlvbiB0aW1lIChmb3IgZXhhbXBsZSwgdGhlIG1heGltdW0KKyAgICAg ICBsZW5ndGggb2YgYSA8dHlwZT52YXJjaGFyPC90eXBlPiBjb2x1bW4pLiAgSXQgaXMgcGFzc2Vk IHRvCisgICAgICAgdHlwZS1zcGVjaWZpYyBpbnB1dCBmdW5jdGlvbnMgYW5kIGxlbmd0aCBjb2Vy Y2lvbiBmdW5jdGlvbnMuCisgICAgICAgVGhlIHZhbHVlIHdpbGwgZ2VuZXJhbGx5IGJlIC0xIGZv ciB0eXBlcyB0aGF0IGRvIG5vdCBuZWVkIDxzdHJ1Y3RmaWVsZD52YXJ0eXBtb2Q8L3N0cnVjdGZp ZWxkPi4KKyAgICAgIDwvcGFyYT48L2VudHJ5PgorICAgICA8L3Jvdz4KKworICAgICA8cm93Pgor ICAgICAgPGVudHJ5IHJvbGU9ImNhdGFsb2dfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImNvbHVt bl9kZWZpbml0aW9uIj4KKyAgICAgICA8c3RydWN0ZmllbGQ+dmFyY29sbGF0aW9uPC9zdHJ1Y3Rm aWVsZD4gPHR5cGU+b2lkPC90eXBlPgorICAgICAgIChyZWZlcmVuY2VzIDxsaW5rIGxpbmtlbmQ9 ImNhdGFsb2ctcGctY29sbGF0aW9uIj48c3RydWN0bmFtZT5wZ19jb2xsYXRpb248L3N0cnVjdG5h bWU+PC9saW5rPi48c3RydWN0ZmllbGQ+b2lkPC9zdHJ1Y3RmaWVsZD4pCisgICAgICA8L3BhcmE+ CisgICAgICA8cGFyYT4KKyAgICAgICBUaGUgZGVmaW5lZCBjb2xsYXRpb24gb2YgdGhlIHZhcmlh YmxlLCBvciB6ZXJvIGlmIHRoZSB2YXJpYWJsZSBpcworICAgICAgIG5vdCBvZiBhIGNvbGxhdGFi bGUgZGF0YSB0eXBlLgorICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisgICAg IDxyb3c+CisgICAgICA8ZW50cnkgcm9sZT0iY2F0YWxvZ190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iY29sdW1uX2RlZmluaXRpb24iPgorICAgICAgIDxzdHJ1Y3RmaWVsZD52YXJhY2w8L3N0cnVj dGZpZWxkPiA8dHlwZT5hY2xpdGVtW108L3R5cGU+CisgICAgICA8L3BhcmE+CisgICAgICA8cGFy YT4KKyAgICAgICBBY2Nlc3MgcHJpdmlsZWdlczsgc2VlCisgICAgICAgPHhyZWYgbGlua2VuZD0i c3FsLWdyYW50Ii8+IGFuZAorICAgICAgIDx4cmVmIGxpbmtlbmQ9InNxbC1yZXZva2UiLz4KKyAg ICAgICBmb3IgZGV0YWlscworICAgICAgPC9wYXJhPjwvZW50cnk+CisgICAgIDwvcm93PgorCisg ICAgPC90Ym9keT4KKyAgIDwvdGdyb3VwPgorICA8L3RhYmxlPgorIDwvc2VjdDE+CiA8L2NoYXB0 ZXI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvZGRsLnNnbWwgYi9kb2Mvc3JjL3NnbWwvZGRs LnNnbWwKaW5kZXggZGVhMDRkNjRkYi4uNGY3OWM2NzZjMyAxMDA2NDQKLS0tIGEvZG9jL3NyYy9z Z21sL2RkbC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9kZGwuc2dtbApAQCAtMTk5Myw2ICsxOTkz LDcgQEAgUkVWT0tFIEFMTCBPTiBhY2NvdW50cyBGUk9NIFBVQkxJQzsKICAgICAgICBGb3Igc2Vx dWVuY2VzLCB0aGlzIHByaXZpbGVnZSBhbHNvIGFsbG93cyB1c2Ugb2YgdGhlCiAgICAgICAgPGZ1 bmN0aW9uPmN1cnJ2YWw8L2Z1bmN0aW9uPiBmdW5jdGlvbi4KICAgICAgICBGb3IgbGFyZ2Ugb2Jq ZWN0cywgdGhpcyBwcml2aWxlZ2UgYWxsb3dzIHRoZSBvYmplY3QgdG8gYmUgcmVhZC4KKyAgICAg ICBGb3Igc2Vzc2lvbiB2YXJpYWJsZXMsIHRoaXMgIHByaXZpbGVnZSBhbGxvd3MgdGhlIG9iamVj dCB0byBiZSByZWFkLgogICAgICAgPC9wYXJhPgogICAgICA8L2xpc3RpdGVtPgogICAgIDwvdmFy bGlzdGVudHJ5PgpAQCAtMjAyOCw2ICsyMDI5LDggQEAgUkVWT0tFIEFMTCBPTiBhY2NvdW50cyBG Uk9NIFBVQkxJQzsKICAgICAgICA8ZnVuY3Rpb24+c2V0dmFsPC9mdW5jdGlvbj4gZnVuY3Rpb25z LgogICAgICAgIEZvciBsYXJnZSBvYmplY3RzLCB0aGlzIHByaXZpbGVnZSBhbGxvd3Mgd3JpdGlu ZyBvciB0cnVuY2F0aW5nIHRoZQogICAgICAgIG9iamVjdC4KKyAgICAgICBGb3Igc2Vzc2lvbiB2 YXJpYWJsZXMsIHRoaXMgcHJpdmlsZWdlIGFsbG93cyB0byBzZXQgYSB2YWx1ZSB0byB0aGUKKyAg ICAgICBvYmplY3QuCiAgICAgICA8L3BhcmE+CiAgICAgIDwvbGlzdGl0ZW0+CiAgICAgPC92YXJs aXN0ZW50cnk+CkBAIC0yMjcxLDcgKzIyNzQsOCBAQCBSRVZPS0UgQUxMIE9OIGFjY291bnRzIEZS T00gUFVCTElDOwogICAgICAgIDxsaXRlcmFsPkxBUkdFIE9CSkVDVDwvbGl0ZXJhbD4sCiAgICAg ICAgPGxpdGVyYWw+U0VRVUVOQ0U8L2xpdGVyYWw+LAogICAgICAgIDxsaXRlcmFsPlRBQkxFPC9s aXRlcmFsPiAoYW5kIHRhYmxlLWxpa2Ugb2JqZWN0cyksCi0gICAgICAgdGFibGUgY29sdW1uCisg ICAgICAgdGFibGUgY29sdW1uLAorICAgICAgIDxsaXRlcmFsPlNFU1NJT04gVkFSSUFCTEU8L2xp dGVyYWw+CiAgICAgICA8L2VudHJ5PgogICAgICA8L3Jvdz4KICAgICAgPHJvdz4KQEAgLTIyODYs NyArMjI5MCw4IEBAIFJFVk9LRSBBTEwgT04gYWNjb3VudHMgRlJPTSBQVUJMSUM7CiAgICAgICAg PGxpdGVyYWw+TEFSR0UgT0JKRUNUPC9saXRlcmFsPiwKICAgICAgICA8bGl0ZXJhbD5TRVFVRU5D RTwvbGl0ZXJhbD4sCiAgICAgICAgPGxpdGVyYWw+VEFCTEU8L2xpdGVyYWw+LAotICAgICAgIHRh YmxlIGNvbHVtbgorICAgICAgIHRhYmxlIGNvbHVtbiwKKyAgICAgICA8bGl0ZXJhbD5TRVNTSU9O IFZBUklBQkxFPC9saXRlcmFsPgogICAgICAgPC9lbnRyeT4KICAgICAgPC9yb3c+CiAgICAgIDxy b3c+CkBAIC0yNDczLDYgKzI0NzgsMTIgQEAgUkVWT0tFIEFMTCBPTiBhY2NvdW50cyBGUk9NIFBV QkxJQzsKICAgICAgIDxlbnRyeT48bGl0ZXJhbD5VPC9saXRlcmFsPjwvZW50cnk+CiAgICAgICA8 ZW50cnk+PGxpdGVyYWw+XGRUKzwvbGl0ZXJhbD48L2VudHJ5PgogICAgICA8L3Jvdz4KKyAgICAg PHJvdz4KKyAgICAgIDxlbnRyeT48bGl0ZXJhbD5TRVNTSU9OIFZBUklBQkxFPC9saXRlcmFsPjwv ZW50cnk+CisgICAgICA8ZW50cnk+PGxpdGVyYWw+cnc8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAg IDxlbnRyeT48bGl0ZXJhbD5ub25lPC9saXRlcmFsPjwvZW50cnk+CisgICAgICA8ZW50cnk+PGxp dGVyYWw+XGRWKzwvbGl0ZXJhbD48L2VudHJ5PgorICAgICA8L3Jvdz4KICAgICA8L3Rib2R5Pgog ICAgPC90Z3JvdXA+CiAgIDwvdGFibGU+CkBAIC01MzIzLDYgKzUzMzQsMzEgQEAgRVhQTEFJTiBT RUxFQ1QgY291bnQoKikgRlJPTSBtZWFzdXJlbWVudCBXSEVSRSBsb2dkYXRlICZndDs9IERBVEUg JzIwMDgtMDEtMDEnOwogICAgPC9wYXJhPgogIDwvc2VjdDE+CiAKKyAgPHNlY3QxIGlkPSJkZGwt c2Vzc2lvbi12YXJpYWJsZXMiPgorICAgPHRpdGxlPlNlc3Npb24gVmFyaWFibGVzPC90aXRsZT4K KworICAgPGluZGV4dGVybSB6b25lPSJkZGwtc2Vzc2lvbi12YXJpYWJsZXMiPgorICAgIDxwcmlt YXJ5PlNlc3Npb24gdmFyaWFibGVzPC9wcmltYXJ5PgorICAgPC9pbmRleHRlcm0+CisKKyAgIDxp bmRleHRlcm0+CisgICAgPHByaW1hcnk+c2Vzc2lvbiB2YXJpYWJsZTwvcHJpbWFyeT4KKyAgIDwv aW5kZXh0ZXJtPgorCisgICA8cGFyYT4KKyAgICBTZXNzaW9uIHZhcmlhYmxlcyBhcmUgZGF0YWJh c2Ugb2JqZWN0cyB0aGF0IGNhbiBob2xkIGEgdmFsdWUuCisgICAgU2Vzc2lvbiB2YXJpYWJsZXMs IGxpa2UgcmVsYXRpb25zLCBleGlzdCB3aXRoaW4gYSBzY2hlbWEgYW5kIHRoZWlyIGFjY2Vzcwor ICAgIGlzIGNvbnRyb2xsZWQgdmlhIDxjb21tYW5kPkdSQU5UPC9jb21tYW5kPiBhbmQgPGNvbW1h bmQ+UkVWT0tFPC9jb21tYW5kPgorICAgIGNvbW1hbmRzLiAgQSBzZXNzaW9uIHZhcmlhYmxlIGNh biBiZSBjcmVhdGVkIGJ5IHRoZSA8Y29tbWFuZD5DUkVBVEUKKyAgICBWQVJJQUJMRTwvY29tbWFu ZD4gY29tbWFuZC4KKyAgIDwvcGFyYT4KKworICAgPHBhcmE+CisgICAgVGhlIHNlc3Npb24gdmFy aWFibGUgaG9sZHMgdmFsdWUgaW4gc2Vzc2lvbiBtZW1vcnkuICBUaGlzIHZhbHVlIGlzIHByaXZh dGUKKyAgICB0byBlYWNoIHNlc3Npb24gYW5kIGlzIHJlbGVhc2VkIHdoZW4gdGhlIHNlc3Npb24g ZW5kcy4KKyAgIDwvcGFyYT4KKyAgPC9zZWN0MT4KKwogIDxzZWN0MSBpZD0iZGRsLW90aGVycyI+ CiAgIDx0aXRsZT5PdGhlciBEYXRhYmFzZSBPYmplY3RzPC90aXRsZT4KIApkaWZmIC0tZ2l0IGEv ZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbCBiL2RvYy9zcmMvc2dtbC9mdW5jLnNnbWwKaW5kZXggNDcz NzBlNTgxYS4uM2Y1ZDhjOTc3ZCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL2Z1bmMuc2dtbAor KysgYi9kb2Mvc3JjL3NnbWwvZnVuYy5zZ21sCkBAIC0yNTI4Niw2ICsyNTI4NiwyNSBAQCBTRUxF Q1QgaGFzX2Z1bmN0aW9uX3ByaXZpbGVnZSgnam9ldXNlcicsICdteWZ1bmMoaW50LCB0ZXh0KScs ICdleGVjdXRlJyk7CiAgICAgICAgPC9wYXJhPjwvZW50cnk+CiAgICAgICA8L3Jvdz4KIAorICAg ICAgPHJvdz4KKyAgICAgICA8ZW50cnkgcm9sZT0iZnVuY190YWJsZV9lbnRyeSI+PHBhcmEgcm9s ZT0iZnVuY19zaWduYXR1cmUiPgorICAgICAgICA8aW5kZXh0ZXJtPgorICAgICAgICAgPHByaW1h cnk+aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlPC9wcmltYXJ5PgorICAgICAgICA8L2lu ZGV4dGVybT4KKyAgICAgICAgPGZ1bmN0aW9uPmhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZTwvZnVuY3Rpb24+ICgKKyAgICAgICAgICA8b3B0aW9uYWw+IDxwYXJhbWV0ZXI+dXNlcjwvcGFy YW1ldGVyPiA8dHlwZT5uYW1lPC90eXBlPiBvciA8dHlwZT5vaWQ8L3R5cGU+LCA8L29wdGlvbmFs PgorICAgICAgICAgIDxwYXJhbWV0ZXI+c2Vzc2lvbl92YXJpYWJsZTwvcGFyYW1ldGVyPiA8dHlw ZT50ZXh0PC90eXBlPiBvciA8dHlwZT5vaWQ8L3R5cGU+LAorICAgICAgICAgIDxwYXJhbWV0ZXI+ cHJpdmlsZWdlPC9wYXJhbWV0ZXI+IDx0eXBlPnRleHQ8L3R5cGU+ICkKKyAgICAgICAgPHJldHVy bnZhbHVlPmJvb2xlYW48L3JldHVybnZhbHVlPgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFy YT4KKyAgICAgICAgRG9lcyB1c2VyIGhhdmUgcHJpdmlsZWdlIGZvciBzZXNzaW9uIHZhcmlhYmxl PworICAgICAgICBBbGxvd2FibGUgcHJpdmlsZWdlIHR5cGVzIGFyZQorICAgICAgICA8bGl0ZXJh bD5TRUxFQ1Q8L2xpdGVyYWw+LCBhbmQKKyAgICAgICAgPGxpdGVyYWw+VVBEQVRFPC9saXRlcmFs Pi4KKyAgICAgICA8L3BhcmE+PC9lbnRyeT4KKyAgICAgIDwvcm93PgorCiAgICAgICA8cm93Pgog ICAgICAgIDxlbnRyeSByb2xlPSJmdW5jX3RhYmxlX2VudHJ5Ij48cGFyYSByb2xlPSJmdW5jX3Np Z25hdHVyZSI+CiAgICAgICAgIDxpbmRleHRlcm0+CkBAIC0yNTc5NCw2ICsyNTgxMywxOSBAQCBT RUxFQ1QgcmVsbmFtZSBGUk9NIHBnX2NsYXNzIFdIRVJFIHBnX3RhYmxlX2lzX3Zpc2libGUob2lk KTsKICAgICAgICAgSXMgdHlwZSAob3IgZG9tYWluKSB2aXNpYmxlIGluIHNlYXJjaCBwYXRoPwog ICAgICAgIDwvcGFyYT48L2VudHJ5PgogICAgICAgPC9yb3c+CisKKyAgICAgIDxyb3c+CisgICAg ICAgPGVudHJ5IHJvbGU9ImZ1bmNfdGFibGVfZW50cnkiPjxwYXJhIHJvbGU9ImZ1bmNfc2lnbmF0 dXJlIj4KKyAgICAgICAgPGluZGV4dGVybT4KKyAgICAgICAgIDxwcmltYXJ5PnBnX3ZhcmlhYmxl X2lzX3Zpc2libGU8L3ByaW1hcnk+CisgICAgICAgIDwvaW5kZXh0ZXJtPgorICAgICAgICA8ZnVu Y3Rpb24+cGdfdmFyaWFibGVfaXNfdmlzaWJsZTwvZnVuY3Rpb24+ICggPHBhcmFtZXRlcj52YXJp YWJsZTwvcGFyYW1ldGVyPiA8dHlwZT5vaWQ8L3R5cGU+ICkKKyAgICAgICAgPHJldHVybnZhbHVl PmJvb2xlYW48L3JldHVybnZhbHVlPgorICAgICAgIDwvcGFyYT4KKyAgICAgICA8cGFyYT4KKyAg ICAgICAgSXMgc2Vzc2lvbiB2YXJpYWJsZSB2aXNpYmxlIGluIHNlYXJjaCBwYXRoPworICAgICAg IDwvcGFyYT48L2VudHJ5PgorICAgICAgPC9yb3c+CiAgICAgIDwvdGJvZHk+CiAgICAgPC90Z3Jv dXA+CiAgICA8L3RhYmxlPgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL2dsb3NzYXJ5LnNnbWwg Yi9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbAppbmRleCBmNTRmMjVjMWM2Li5kMGNiNTM3NjNh IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvZ2xvc3Nhcnkuc2dtbAorKysgYi9kb2Mvc3JjL3Nn bWwvZ2xvc3Nhcnkuc2dtbApAQCAtMTY2NCw2ICsxNjY0LDIxIEBACiAgICA8L2dsb3NzZGVmPgog ICA8L2dsb3NzZW50cnk+CiAKKyAgPGdsb3NzZW50cnkgaWQ9Imdsb3NzYXJ5LXNlc3Npb24tdmFy aWFibGUiPgorICAgPGdsb3NzdGVybT5TZXNzaW9uIHZhcmlhYmxlPC9nbG9zc3Rlcm0+CisgICA8 Z2xvc3NkZWY+CisgICAgPHBhcmE+CisgICAgIEEgcGVyc2lzdGVudCBkYXRhYmFzZSBvYmplY3Qg dGhhdCBob2xkcyBhIHZhbHVlIGluIHNlc3Npb24gbWVtb3J5LiAgVGhpcworICAgICB2YWx1ZSBp cyBwcml2YXRlIHRvIGVhY2ggc2Vzc2lvbiBhbmQgaXMgcmVsZWFzZWQgd2hlbiB0aGUgc2Vzc2lv biBlbmRzLgorICAgICBSZWFkIG9yIHdyaXRlIGFjY2VzcyB0byBzZXNzaW9uIHZhcmlhYmxlcyBp cyBjb250cm9sbGVkIGJ5IHByaXZpbGVnZXMsCisgICAgIHNpbWlsYXIgdG8gb3RoZXIgZGF0YWJh c2Ugb2JqZWN0cy4KKyAgICA8L3BhcmE+CisgICAgPHBhcmE+CisgICAgIEZvciBtb3JlIGluZm9y bWF0aW9uLCBzZWUgPHhyZWYgbGlua2VuZD0iZGRsLXNlc3Npb24tdmFyaWFibGVzIi8+LgorICAg IDwvcGFyYT4KKyAgIDwvZ2xvc3NkZWY+CisgIDwvZ2xvc3NlbnRyeT4KKwogICA8Z2xvc3NlbnRy eSBpZD0iZ2xvc3Nhcnktc2hhcmVkLW1lbW9yeSI+CiAgICA8Z2xvc3N0ZXJtPlNoYXJlZCBtZW1v cnk8L2dsb3NzdGVybT4KICAgIDxnbG9zc2RlZj4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9y ZWYvYWxsZmlsZXMuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvYWxsZmlsZXMuc2dtbAppbmRleCBm NWJlNjM4ODY3Li4yZjY3ZGUzZTIxIDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsbGZp bGVzLnNnbWwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbGxmaWxlcy5zZ21sCkBAIC00Nyw2ICs0 Nyw3IEBAIENvbXBsZXRlIGxpc3Qgb2YgdXNhYmxlIHNnbWwgc291cmNlIGZpbGVzIGluIHRoaXMg ZGlyZWN0b3J5LgogPCFFTlRJVFkgYWx0ZXJUeXBlICAgICAgICAgIFNZU1RFTSAiYWx0ZXJfdHlw ZS5zZ21sIj4KIDwhRU5USVRZIGFsdGVyVXNlciAgICAgICAgICBTWVNURU0gImFsdGVyX3VzZXIu c2dtbCI+CiA8IUVOVElUWSBhbHRlclVzZXJNYXBwaW5nICAgU1lTVEVNICJhbHRlcl91c2VyX21h cHBpbmcuc2dtbCI+Cis8IUVOVElUWSBhbHRlclZhcmlhYmxlICAgICAgU1lTVEVNICJhbHRlcl92 YXJpYWJsZS5zZ21sIj4KIDwhRU5USVRZIGFsdGVyVmlldyAgICAgICAgICBTWVNURU0gImFsdGVy X3ZpZXcuc2dtbCI+CiA8IUVOVElUWSBhbmFseXplICAgICAgICAgICAgU1lTVEVNICJhbmFseXpl LnNnbWwiPgogPCFFTlRJVFkgYmVnaW4gICAgICAgICAgICAgIFNZU1RFTSAiYmVnaW4uc2dtbCI+ CkBAIC05OSw2ICsxMDAsNyBAQCBDb21wbGV0ZSBsaXN0IG9mIHVzYWJsZSBzZ21sIHNvdXJjZSBm aWxlcyBpbiB0aGlzIGRpcmVjdG9yeS4KIDwhRU5USVRZIGNyZWF0ZVR5cGUgICAgICAgICBTWVNU RU0gImNyZWF0ZV90eXBlLnNnbWwiPgogPCFFTlRJVFkgY3JlYXRlVXNlciAgICAgICAgIFNZU1RF TSAiY3JlYXRlX3VzZXIuc2dtbCI+CiA8IUVOVElUWSBjcmVhdGVVc2VyTWFwcGluZyAgU1lTVEVN ICJjcmVhdGVfdXNlcl9tYXBwaW5nLnNnbWwiPgorPCFFTlRJVFkgY3JlYXRlVmFyaWFibGUgICAg IFNZU1RFTSAiY3JlYXRlX3ZhcmlhYmxlLnNnbWwiPgogPCFFTlRJVFkgY3JlYXRlVmlldyAgICAg ICAgIFNZU1RFTSAiY3JlYXRlX3ZpZXcuc2dtbCI+CiA8IUVOVElUWSBkZWFsbG9jYXRlICAgICAg ICAgU1lTVEVNICJkZWFsbG9jYXRlLnNnbWwiPgogPCFFTlRJVFkgZGVjbGFyZSAgICAgICAgICAg IFNZU1RFTSAiZGVjbGFyZS5zZ21sIj4KQEAgLTE0Nyw2ICsxNDksNyBAQCBDb21wbGV0ZSBsaXN0 IG9mIHVzYWJsZSBzZ21sIHNvdXJjZSBmaWxlcyBpbiB0aGlzIGRpcmVjdG9yeS4KIDwhRU5USVRZ IGRyb3BUeXBlICAgICAgICAgICBTWVNURU0gImRyb3BfdHlwZS5zZ21sIj4KIDwhRU5USVRZIGRy b3BVc2VyICAgICAgICAgICBTWVNURU0gImRyb3BfdXNlci5zZ21sIj4KIDwhRU5USVRZIGRyb3BV c2VyTWFwcGluZyAgICBTWVNURU0gImRyb3BfdXNlcl9tYXBwaW5nLnNnbWwiPgorPCFFTlRJVFkg ZHJvcFZhcmlhYmxlICAgICAgIFNZU1RFTSAiZHJvcF92YXJpYWJsZS5zZ21sIj4KIDwhRU5USVRZ IGRyb3BWaWV3ICAgICAgICAgICBTWVNURU0gImRyb3Bfdmlldy5zZ21sIj4KIDwhRU5USVRZIGVu ZCAgICAgICAgICAgICAgICBTWVNURU0gImVuZC5zZ21sIj4KIDwhRU5USVRZIGV4ZWN1dGUgICAg ICAgICAgICBTWVNURU0gImV4ZWN1dGUuc2dtbCI+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwv cmVmL2FsdGVyX2RlZmF1bHRfcHJpdmlsZWdlcy5zZ21sIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRl cl9kZWZhdWx0X3ByaXZpbGVnZXMuc2dtbAppbmRleCA4OWFhY2VjNGZhLi5hNTg1MmQzMjU2IDEw MDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmL2FsdGVyX2RlZmF1bHRfcHJpdmlsZWdlcy5zZ21s CisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfZGVmYXVsdF9wcml2aWxlZ2VzLnNnbWwKQEAg LTUxLDYgKzUxLDExIEBAIEdSQU5UIHsgeyBVU0FHRSB8IENSRUFURSB9CiAgICAgT04gU0NIRU1B UwogICAgIFRPIHsgWyBHUk9VUCBdIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xl X25hbWU8L3JlcGxhY2VhYmxlPiB8IFBVQkxJQyB9IFssIC4uLl0gWyBXSVRIIEdSQU5UIE9QVElP TiBdCiAKK0dSQU5UIHsgeyBTRUxFQ1QgfCBVUERBVEUgfQorICAgIFssIC4uLl0gfCBBTEwgWyBQ UklWSUxFR0VTIF0gfQorICAgIE9OIFZBUklBQkxFUworICAgIFRPIHsgWyBHUk9VUCBdIDxyZXBs YWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX25hbWU8L3JlcGxhY2VhYmxlPiB8IFBVQkxJ QyB9IFssIC4uLl0gWyBXSVRIIEdSQU5UIE9QVElPTiBdCisKIFJFVk9LRSBbIEdSQU5UIE9QVElP TiBGT1IgXQogICAgIHsgeyBTRUxFQ1QgfCBJTlNFUlQgfCBVUERBVEUgfCBERUxFVEUgfCBUUlVO Q0FURSB8IFJFRkVSRU5DRVMgfCBUUklHR0VSIHwgTUFJTlRBSU4gfQogICAgIFssIC4uLl0gfCBB TEwgWyBQUklWSUxFR0VTIF0gfQpAQCAtODMsNiArODgsMTIgQEAgUkVWT0tFIFsgR1JBTlQgT1BU SU9OIEZPUiBdCiAgICAgT04gU0NIRU1BUwogICAgIEZST00geyBbIEdST1VQIF0gPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+IHwgUFVCTElDIH0g WywgLi4uXQogICAgIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KKworUkVWT0tFIFsgR1JBTlQgT1BU SU9OIEZPUiBdCisgICAgeyB7IFNFTEVDVCB8IFVQREFURSB9IFssIC4uLl0gfCBBTEwgWyBQUklW SUxFR0VTIF0gfQorICAgIE9OIFZBUklBQkxFUworICAgIEZST00geyBbIEdST1VQIF0gPHJlcGxh Y2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+IHwgUFVCTElD IH0gWywgLi4uXQorICAgIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KIDwvc3lub3BzaXM+CiAgPC9y ZWZzeW5vcHNpc2Rpdj4KIApAQCAtMTE3LDE0ICsxMjgsMTQgQEAgUkVWT0tFIFsgR1JBTlQgT1BU SU9OIEZPUiBdCiAgIDxwYXJhPgogICAgQ3VycmVudGx5LAogICAgb25seSB0aGUgcHJpdmlsZWdl cyBmb3Igc2NoZW1hcywgdGFibGVzIChpbmNsdWRpbmcgdmlld3MgYW5kIGZvcmVpZ24KLSAgIHRh YmxlcyksIHNlcXVlbmNlcywgZnVuY3Rpb25zLCBhbmQgdHlwZXMgKGluY2x1ZGluZyBkb21haW5z KSBjYW4gYmUKLSAgIGFsdGVyZWQuICBGb3IgdGhpcyBjb21tYW5kLCBmdW5jdGlvbnMgaW5jbHVk ZSBhZ2dyZWdhdGVzIGFuZCBwcm9jZWR1cmVzLgotICAgVGhlIHdvcmRzIDxsaXRlcmFsPkZVTkNU SU9OUzwvbGl0ZXJhbD4gYW5kIDxsaXRlcmFsPlJPVVRJTkVTPC9saXRlcmFsPiBhcmUKLSAgIGVx dWl2YWxlbnQgaW4gdGhpcyBjb21tYW5kLiAgKDxsaXRlcmFsPlJPVVRJTkVTPC9saXRlcmFsPiBp cyBwcmVmZXJyZWQKLSAgIGdvaW5nIGZvcndhcmQgYXMgdGhlIHN0YW5kYXJkIHRlcm0gZm9yIGZ1 bmN0aW9ucyBhbmQgcHJvY2VkdXJlcyB0YWtlbgotICAgdG9nZXRoZXIuICBJbiBlYXJsaWVyIFBv c3RncmVTUUwgcmVsZWFzZXMsIG9ubHkgdGhlCi0gICB3b3JkIDxsaXRlcmFsPkZVTkNUSU9OUzwv bGl0ZXJhbD4gd2FzIGFsbG93ZWQuICBJdCBpcyBub3QgcG9zc2libGUgdG8gc2V0Ci0gICBkZWZh dWx0IHByaXZpbGVnZXMgZm9yIGZ1bmN0aW9ucyBhbmQgcHJvY2VkdXJlcyBzZXBhcmF0ZWx5LikK KyAgIHRhYmxlcyksIHNlcXVlbmNlcywgZnVuY3Rpb25zLCB0eXBlcyAoaW5jbHVkaW5nIGRvbWFp bnMpLCBhbmQgc2Vzc2lvbgorICAgdmFyaWFibGVzIGNhbiBiZSBhbHRlcmVkLiAgRm9yIHRoaXMg Y29tbWFuZCwgZnVuY3Rpb25zIGluY2x1ZGUgYWdncmVnYXRlcworICAgYW5kIHByb2NlZHVyZXMu ICBUaGUgd29yZHMgPGxpdGVyYWw+RlVOQ1RJT05TPC9saXRlcmFsPiBhbmQKKyAgIDxsaXRlcmFs PlJPVVRJTkVTPC9saXRlcmFsPiBhcmUgZXF1aXZhbGVudCBpbiB0aGlzIGNvbW1hbmQuCisgICAo PGxpdGVyYWw+Uk9VVElORVM8L2xpdGVyYWw+IGlzIHByZWZlcnJlZCBnb2luZyBmb3J3YXJkIGFz IHRoZSBzdGFuZGFyZAorICAgdGVybSBmb3IgZnVuY3Rpb25zIGFuZCBwcm9jZWR1cmVzIHRha2Vu IHRvZ2V0aGVyLiAgSW4gZWFybGllciBQb3N0Z3JlU1FMCisgICByZWxlYXNlcywgb25seSB0aGUg d29yZCA8bGl0ZXJhbD5GVU5DVElPTlM8L2xpdGVyYWw+IHdhcyBhbGxvd2VkLiAgSXQgaXMgbm90 CisgICBwb3NzaWJsZSB0byBzZXQgZGVmYXVsdCBwcml2aWxlZ2VzIGZvciBmdW5jdGlvbnMgYW5k IHByb2NlZHVyZXMgc2VwYXJhdGVseS4pCiAgIDwvcGFyYT4KIAogICA8cGFyYT4KZGlmZiAtLWdp dCBhL2RvYy9zcmMvc2dtbC9yZWYvYWx0ZXJfdmFyaWFibGUuc2dtbCBiL2RvYy9zcmMvc2dtbC9y ZWYvYWx0ZXJfdmFyaWFibGUuc2dtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw MDAwLi45NmQyNTg2NDIzCi0tLSAvZGV2L251bGwKKysrIGIvZG9jL3NyYy9zZ21sL3JlZi9hbHRl cl92YXJpYWJsZS5zZ21sCkBAIC0wLDAgKzEsMTc4IEBACis8IS0tCitkb2Mvc3JjL3NnbWwvcmVm L2FsdGVyX3ZhcmlhYmxlLnNnbWwKK1Bvc3RncmVTUUwgZG9jdW1lbnRhdGlvbgorLS0+CisKKzxy ZWZlbnRyeSBpZD0ic3FsLWFsdGVydmFyaWFibGUiPgorIDxpbmRleHRlcm0gem9uZT0ic3FsLWFs dGVydmFyaWFibGUiPgorICA8cHJpbWFyeT5BTFRFUiBWQVJJQUJMRTwvcHJpbWFyeT4KKyA8L2lu ZGV4dGVybT4KKworIDxpbmRleHRlcm0+CisgIDxwcmltYXJ5PnNlc3Npb24gdmFyaWFibGU8L3By aW1hcnk+CisgIDxzZWNvbmRhcnk+YWx0ZXJpbmc8L3NlY29uZGFyeT4KKyA8L2luZGV4dGVybT4K KworIDxyZWZtZXRhPgorICA8cmVmZW50cnl0aXRsZT5BTFRFUiBWQVJJQUJMRTwvcmVmZW50cnl0 aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZtaXNjaW5mbz5TUUwgLSBM YW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1ldGE+CisKKyA8cmVmbmFt ZWRpdj4KKyAgPHJlZm5hbWU+QUxURVIgVkFSSUFCTEU8L3JlZm5hbWU+CisgIDxyZWZwdXJwb3Nl PgorICAgY2hhbmdlIHRoZSBkZWZpbml0aW9uIG9mIGEgc2Vzc2lvbiB2YXJpYWJsZQorICA8L3Jl ZnB1cnBvc2U+CisgPC9yZWZuYW1lZGl2PgorCisgPHJlZnN5bm9wc2lzZGl2PgorPHN5bm9wc2lz PgorQUxURVIgVkFSSUFCTEUgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3Jl cGxhY2VhYmxlPiBPV05FUiBUTyB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdf b3duZXI8L3JlcGxhY2VhYmxlPiB8IENVUlJFTlRfUk9MRSB8IENVUlJFTlRfVVNFUiB8IFNFU1NJ T05fVVNFUiB9CitBTFRFUiBWQVJJQUJMRSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ bmFtZTwvcmVwbGFjZWFibGU+IFJFTkFNRSBUTyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+bmV3X25hbWU8L3JlcGxhY2VhYmxlPgorQUxURVIgVkFSSUFCTEUgPHJlcGxhY2VhYmxlIGNs YXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3JlcGxhY2VhYmxlPiBTRVQgU0NIRU1BIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5uZXdfc2NoZW1hPC9yZXBsYWNlYWJsZT4KKzwvc3lub3BzaXM+ CisgPC9yZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9u PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5BTFRFUiBWQVJJQUJMRTwvY29t bWFuZD4gY29tbWFuZCBjaGFuZ2VzIHRoZSBkZWZpbml0aW9uIG9mIGFuCisgICBleGlzdGluZyBz ZXNzaW9uIHZhcmlhYmxlLiBUaGVyZSBhcmUgc2V2ZXJhbCBzdWJmb3JtczoKKworICA8dmFyaWFi bGVsaXN0PgorICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5PV05FUjwvbGl0 ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoaXMgZm9y bSBjaGFuZ2VzIHRoZSBvd25lciBvZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgPC9wYXJh PgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRy eT4KKyAgICA8dGVybT48bGl0ZXJhbD5SRU5BTUU8L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0 aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBUaGlzIGZvcm0gY2hhbmdlcyB0aGUgbmFtZSBvZiB0 aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8 L3Zhcmxpc3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeT4KKyAgICA8dGVybT48bGl0ZXJhbD5T RVQgU0NIRU1BPC9saXRlcmFsPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgor ICAgICAgVGhpcyBmb3JtIG1vdmVzIHRoZSBzZXNzaW9uIHZhcmlhYmxlIGludG8gYW5vdGhlciBz Y2hlbWEuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+ CisKKyAgPC92YXJpYWJsZWxpc3Q+CisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIE9ubHkgdGhl IG93bmVyIG9yIGEgc3VwZXJ1c2VyIGlzIGFsbG93ZWQgdG8gYWx0ZXIgYSBzZXNzaW9uIHZhcmlh YmxlLgorICAgSW4gb3JkZXIgdG8gbW92ZSBhIHNlc3Npb24gdmFyaWFibGUgZnJvbSBvbmUgc2No ZW1hIHRvIGFub3RoZXIsIHRoZSB1c2VyCisgICBtdXN0IGFsc28gaGF2ZSB0aGUgPGxpdGVyYWw+ Q1JFQVRFPC9saXRlcmFsPiBwcml2aWxlZ2Ugb24gdGhlIG5ldyBzY2hlbWEgKG9yCisgICBiZSBh IHN1cGVydXNlcikuCisKKyAgIEluIG9yZGVyIHRvIG1vdmUgdGhlIHNlc3Npb24gdmFyaWFibGUg b3duZXJzaGlwIGZyb20gb25lIHJvbGUgdG8gYW5vdGhlciwKKyAgIHRoZSB1c2VyIG11c3QgYWxz byBiZSBhIGRpcmVjdCBvciBpbmRpcmVjdCBtZW1iZXIgb2YgdGhlIG5ldworICAgb3duaW5nIHJv bGUsIGFuZCB0aGF0IHJvbGUgbXVzdCBoYXZlIHRoZSA8bGl0ZXJhbD5DUkVBVEU8L2xpdGVyYWw+ IHByaXZpbGVnZQorICAgb24gdGhlIHNlc3Npb24gdmFyaWFibGUncyBzY2hlbWEgKG9yIGJlIGEg c3VwZXJ1c2VyKS4gVGhlc2UgcmVzdHJpY3Rpb25zCisgICBlbmZvcmNlIHRoYXQgYWx0ZXJpbmcg dGhlIG93bmVyIGRvZXNuJ3QgZG8gYW55dGhpbmcgeW91IGNvdWxkbid0IGRvIGJ5CisgICBkcm9w cGluZyBhbmQgcmVjcmVhdGluZyB0aGUgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgPC9wYXJhPgorIDwv cmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5QYXJhbWV0ZXJzPC90aXRsZT4KKwor ICAgPHBhcmE+CisgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgPHZhcmxpc3RlbnRyeT4KKyAgICAg IDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNlYWJsZT48 L3Rlcm0+CisgICAgICA8bGlzdGl0ZW0+CisgICAgICAgPHBhcmE+CisgICAgICAgIFRoZSBuYW1l IChwb3NzaWJseSBzY2hlbWEtcXVhbGlmaWVkKSBvZiB0aGUgZXhpc3Rpbmcgc2Vzc2lvbiB2YXJp YWJsZQorICAgICAgICB0byBhbHRlci4KKyAgICAgICA8L3BhcmE+CisgICAgICA8L2xpc3RpdGVt PgorICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICA8dmFybGlzdGVudHJ5PgorICAgICAgPHRl cm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5ld19vd25lcjwvcmVwbGFjZWFibGU+ PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgdXNl ciBuYW1lIG9mIHRoZSBuZXcgb3duZXIgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUuCisgICAgICAg PC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJsaXN0ZW50cnk+CisKKyAgICAg PHZhcmxpc3RlbnRyeT4KKyAgICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVy Ij5uZXdfbmFtZTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgICAgPGxpc3RpdGVtPgorICAgICAg IDxwYXJhPgorICAgICAgICBUaGUgbmV3IG5hbWUgZm9yIHRoZSBzZXNzaW9uIHZhcmlhYmxlLgor ICAgICAgIDwvcGFyYT4KKyAgICAgIDwvbGlzdGl0ZW0+CisgICAgIDwvdmFybGlzdGVudHJ5Pgor CisgICAgIDx2YXJsaXN0ZW50cnk+CisgICAgICA8dGVybT48cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+bmV3X3NjaGVtYTwvcmVwbGFjZWFibGU+PC90ZXJtPgorICAgICAgPGxpc3RpdGVt PgorICAgICAgIDxwYXJhPgorICAgICAgICBUaGUgbmV3IHNjaGVtYSBmb3IgdGhlIHNlc3Npb24g dmFyaWFibGUuCisgICAgICAgPC9wYXJhPgorICAgICAgPC9saXN0aXRlbT4KKyAgICAgPC92YXJs aXN0ZW50cnk+CisgICAgPC92YXJpYWJsZWxpc3Q+CisgICA8L3BhcmE+CisgIDwvcmVmc2VjdDE+ CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+CisKKyAgPHBhcmE+Cisg ICBUbyByZW5hbWUgYSBzZXNzaW9uIHZhcmlhYmxlOgorPHByb2dyYW1saXN0aW5nPgorQUxURVIg VkFSSUFCTEUgZm9vIFJFTkFNRSBUTyBib287Cis8L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+ CisKKyAgPHBhcmE+CisgICBUbyBjaGFuZ2UgdGhlIG93bmVyIG9mIHRoZSBzZXNzaW9uIHZhcmlh YmxlIDxsaXRlcmFsPmJvbzwvbGl0ZXJhbD4gdG8KKyAgIDxsaXRlcmFsPmpvZTwvbGl0ZXJhbD46 Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBWQVJJQUJMRSBib28gT1dORVIgVE8gam9lOworPC9w cm9ncmFtbGlzdGluZz4KKyAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVG8gY2hhbmdlIHRoZSBz Y2hlbWEgb2YgdGhlIHNlc3Npb24gdmFyaWFibGUgPGxpdGVyYWw+Ym9vPC9saXRlcmFsPiB0bwor ICAgPGxpdGVyYWw+cHJpdmF0ZTwvbGl0ZXJhbD46Cis8cHJvZ3JhbWxpc3Rpbmc+CitBTFRFUiBW QVJJQUJMRSBib28gU0VUIFNDSEVNQSBwcml2YXRlOworPC9wcm9ncmFtbGlzdGluZz4KKyAgPC9w YXJhPgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5 PC90aXRsZT4KKworICA8cGFyYT4KKyAgIFNlc3Npb24gdmFyaWFibGVzIGFuZCB0aGlzIGNvbW1h bmQgaW4gcGFydGljdWxhciBhcmUgYSBQb3N0Z3JlU1FMIGV4dGVuc2lvbi4KKyAgPC9wYXJhPgor IDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDEgaWQ9InNxbC1hbHRlcnZhcmlhYmxlLXNlZS1hbHNv Ij4KKyAgPHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxp bmUiPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRldmFyaWFibGUiLz48L21l bWJlcj4KKyAgIDxtZW1iZXI+PHhyZWYgbGlua2VuZD0ic3FsLWRyb3B2YXJpYWJsZSIvPjwvbWVt YmVyPgorICA8L3NpbXBsZWxpc3Q+CisgPC9yZWZzZWN0MT4KKzwvcmVmZW50cnk+CmRpZmYgLS1n aXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NvbW1lbnQuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY29t bWVudC5zZ21sCmluZGV4IDViNDNjNTZiMTMuLjIxY2Q4MDgxOGYgMTAwNjQ0Ci0tLSBhL2RvYy9z cmMvc2dtbC9yZWYvY29tbWVudC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY29tbWVudC5z Z21sCkBAIC02NSw2ICs2NSw3IEBAIENPTU1FTlQgT04KICAgVFJBTlNGT1JNIEZPUiA8cmVwbGFj ZWFibGU+dHlwZV9uYW1lPC9yZXBsYWNlYWJsZT4gTEFOR1VBR0UgPHJlcGxhY2VhYmxlPmxhbmdf bmFtZTwvcmVwbGFjZWFibGU+IHwKICAgVFJJR0dFUiA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFt ZXRlciI+dHJpZ2dlcl9uYW1lPC9yZXBsYWNlYWJsZT4gT04gPHJlcGxhY2VhYmxlIGNsYXNzPSJw YXJhbWV0ZXIiPnRhYmxlX25hbWU8L3JlcGxhY2VhYmxlPiB8CiAgIFRZUEUgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9yZXBsYWNlYWJsZT4gfAorICBWQVJJQUJM RSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+b2JqZWN0X25hbWU8L3JlcGxhY2VhYmxl PiB8CiAgIFZJRVcgPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm9iamVjdF9uYW1lPC9y ZXBsYWNlYWJsZT4KIH0gSVMgeyA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+c3RyaW5n X2xpdGVyYWw8L3JlcGxhY2VhYmxlPiB8IE5VTEwgfQogCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvcmVmL2NyZWF0ZV9zY2hlbWEuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRlX3NjaGVt YS5zZ21sCmluZGV4IGVkNjkyOThjY2MuLmQyYmIyNjUyMDkgMTAwNjQ0Ci0tLSBhL2RvYy9zcmMv c2dtbC9yZWYvY3JlYXRlX3NjaGVtYS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvY3JlYXRl X3NjaGVtYS5zZ21sCkBAIC0xMDMsOSArMTAzLDEwIEBAIENSRUFURSBTQ0hFTUEgSUYgTk9UIEVY SVNUUyBBVVRIT1JJWkFUSU9OIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3Nw CiAgICAgICAgIHNjaGVtYS4gQ3VycmVudGx5LCBvbmx5IDxjb21tYW5kPkNSRUFURQogICAgICAg ICBUQUJMRTwvY29tbWFuZD4sIDxjb21tYW5kPkNSRUFURSBWSUVXPC9jb21tYW5kPiwgPGNvbW1h bmQ+Q1JFQVRFCiAgICAgICAgIElOREVYPC9jb21tYW5kPiwgPGNvbW1hbmQ+Q1JFQVRFIFNFUVVF TkNFPC9jb21tYW5kPiwgPGNvbW1hbmQ+Q1JFQVRFCi0gICAgICAgIFRSSUdHRVI8L2NvbW1hbmQ+ IGFuZCA8Y29tbWFuZD5HUkFOVDwvY29tbWFuZD4gYXJlIGFjY2VwdGVkIGFzIGNsYXVzZXMKLSAg ICAgICAgd2l0aGluIDxjb21tYW5kPkNSRUFURSBTQ0hFTUE8L2NvbW1hbmQ+LiBPdGhlciBraW5k cyBvZiBvYmplY3RzIG1heQotICAgICAgICBiZSBjcmVhdGVkIGluIHNlcGFyYXRlIGNvbW1hbmRz IGFmdGVyIHRoZSBzY2hlbWEgaXMgY3JlYXRlZC4KKyAgICAgICAgVFJJR0dFUjwvY29tbWFuZD4s IDxjb21tYW5kPkdSQU5UPC9jb21tYW5kPiBhbmQgPGNvbW1hbmQ+Q1JFQVRFCisgICAgICAgIFZB UklBQkxFPC9jb21tYW5kPiBhcmUgYWNjZXB0ZWQgYXMgY2xhdXNlcyB3aXRoaW4gPGNvbW1hbmQ+ Q1JFQVRFCisgICAgICAgIFNDSEVNQTwvY29tbWFuZD4uIE90aGVyIGtpbmRzIG9mIG9iamVjdHMg bWF5IGJlIGNyZWF0ZWQgaW4gc2VwYXJhdGUKKyAgICAgICAgY29tbWFuZHMgYWZ0ZXIgdGhlIHNj aGVtYSBpcyBjcmVhdGVkLgogICAgICAgIDwvcGFyYT4KICAgICAgIDwvbGlzdGl0ZW0+CiAgICAg IDwvdmFybGlzdGVudHJ5PgpAQCAtMjE0LDYgKzIxNSwxMSBAQCBDUkVBVEUgVklFVyBob2xseXdv b2Qud2lubmVycyBBUwogICAgVGhlIDxsaXRlcmFsPklGIE5PVCBFWElTVFM8L2xpdGVyYWw+IG9w dGlvbiBpcyBhCiAgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwvcHJvZHVjdG5hbWU+IGV4dGVu c2lvbi4KICAgPC9wYXJhPgorCisgIDxwYXJhPgorICAgVGhlIDxjb21tYW5kPkNSRUFURSBWQVJJ QUJMRTwvY29tbWFuZD4gY29tbWFuZCBpcyBhCisgICA8cHJvZHVjdG5hbWU+UG9zdGdyZVNRTDwv cHJvZHVjdG5hbWU+IGV4dGVuc2lvbi4KKyAgPC9wYXJhPgogIDwvcmVmc2VjdDE+CiAKICA8cmVm c2VjdDE+CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL2NyZWF0ZV92YXJpYWJsZS5zZ21s IGIvZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApuZXcgZmlsZSBtb2RlIDEw MDY0NAppbmRleCAwMDAwMDAwMDAwLi42ZTk4OGYyZTQ3Ci0tLSAvZGV2L251bGwKKysrIGIvZG9j L3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbApAQCAtMCwwICsxLDE0OSBAQAorPCEt LQorZG9jL3NyYy9zZ21sL3JlZi9jcmVhdGVfdmFyaWFibGUuc2dtbAorUG9zdGdyZVNRTCBkb2N1 bWVudGF0aW9uCistLT4KKworPHJlZmVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUiPgorIDxp bmRleHRlcm0gem9uZT0ic3FsLWNyZWF0ZXZhcmlhYmxlIj4KKyAgPHByaW1hcnk+Q1JFQVRFIFZB UklBQkxFPC9wcmltYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPGluZGV4dGVybT4KKyAgPHByaW1h cnk+c2Vzc2lvbiB2YXJpYWJsZTwvcHJpbWFyeT4KKyAgPHNlY29uZGFyeT5kZWZpbmluZzwvc2Vj b25kYXJ5PgorIDwvaW5kZXh0ZXJtPgorCisgPHJlZm1ldGE+CisgIDxyZWZlbnRyeXRpdGxlPkNS RUFURSBWQVJJQUJMRTwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+ CisgIDxyZWZtaXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4K KyA8L3JlZm1ldGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+Q1JFQVRFIFZBUklBQkxF PC9yZWZuYW1lPgorICA8cmVmcHVycG9zZT5kZWZpbmUgYSBzZXNzaW9uIHZhcmlhYmxlPC9yZWZw dXJwb3NlPgorIDwvcmVmbmFtZWRpdj4KKworIDxyZWZzeW5vcHNpc2Rpdj4KKzxzeW5vcHNpcz4K K0NSRUFURSBWQVJJQUJMRSBbIElGIE5PVCBFWElTVFMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+bmFtZTwvcmVwbGFjZWFibGU+IFsgQVMgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBh cmFtZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT4gWyBDT0xMQVRFIDxyZXBsYWNlYWJsZSBj bGFzcz0icGFyYW1ldGVyIj5jb2xsYXRpb248L3JlcGxhY2VhYmxlPiBdCis8L3N5bm9wc2lzPgor IDwvcmVmc3lub3BzaXNkaXY+CisgPHJlZnNlY3QxPgorICA8dGl0bGU+RGVzY3JpcHRpb248L3Rp dGxlPgorCisgIDxwYXJhPgorICAgVGhlIDxjb21tYW5kPkNSRUFURSBWQVJJQUJMRTwvY29tbWFu ZD4gY29tbWFuZCBjcmVhdGVzIGEgc2Vzc2lvbiB2YXJpYWJsZS4KKyAgIFNlc3Npb24gdmFyaWFi bGVzLCBsaWtlIHJlbGF0aW9ucywgZXhpc3Qgd2l0aGluIGEgc2NoZW1hIGFuZCB0aGVpciBhY2Nl c3MgaXMKKyAgIGNvbnRyb2xsZWQgdmlhIHRoZSBjb21tYW5kcyA8Y29tbWFuZD5HUkFOVDwvY29t bWFuZD4gYW5kIDxjb21tYW5kPlJFVk9LRTwvY29tbWFuZD4uCisgIDwvcGFyYT4KKworICA8cGFy YT4KKyAgIFRoZSB2YWx1ZSBvZiBhIHNlc3Npb24gdmFyaWFibGUgaXMgbG9jYWwgdG8gdGhlIGN1 cnJlbnQgc2Vzc2lvbi4gIFJldHJpZXZpbmcKKyAgIGEgc2Vzc2lvbiB2YXJpYWJsZSdzIHZhbHVl IHJldHVybnMgTlVMTCwgdW5sZXNzIGl0cyB2YWx1ZSBpcyBzZXQgdG8KKyAgIHNvbWV0aGluZyBl bHNlIGluIHRoZSBjdXJyZW50IHNlc3Npb24gd2l0aCBhIDxjb21tYW5kPkxFVDwvY29tbWFuZD4g Y29tbWFuZC4KKyAgIFRoZSBjb250ZW50IG9mIGEgc2Vzc2lvbiB2YXJpYWJsZSBpcyBub3QgdHJh bnNhY3Rpb25hbC4gVGhpcyBpcyB0aGUgc2FtZSBhcworICAgcmVndWxhciB2YXJpYWJsZXMgaW4g cHJvY2VkdXJhbCBsYW5ndWFnZXMuCisgIDwvcGFyYT4KKworICA8cGFyYT4KKyAgIFNlc3Npb24g dmFyaWFibGVzIGFyZSByZXRyaWV2ZWQgYnkgdGhlIDxjb21tYW5kPlNFTEVDVDwvY29tbWFuZD4K KyAgIGNvbW1hbmQuICBUaGVpciB2YWx1ZSBpcyBzZXQgd2l0aCB0aGUgPGNvbW1hbmQ+TEVUPC9j b21tYW5kPiBjb21tYW5kLgorICA8L3BhcmE+CisKKyAgPG5vdGU+CisgICA8cGFyYT4KKyAgICBT ZXNzaW9uIHZhcmlhYmxlcyBjYW4gYmUgPHF1b3RlPnNoYWRvd2VkPC9xdW90ZT4gYnkgb3RoZXIg aWRlbnRpZmllcnMuCisgICAgRm9yIGRldGFpbHMsIHNlZSA8eHJlZiBsaW5rZW5kPSJkZGwtc2Vz c2lvbi12YXJpYWJsZXMiLz4uCisgICA8L3BhcmE+CisgIDwvbm90ZT4KKyA8L3JlZnNlY3QxPgor CisgPHJlZnNlY3QxPgorICA8dGl0bGU+UGFyYW1ldGVyczwvdGl0bGU+CisKKyAgPHZhcmlhYmxl bGlzdD4KKworICAgPHZhcmxpc3RlbnRyeSAgaWQ9InNxbC1jcmVhdGV2YXJpYWJsZS1pZi1ub3Qt ZXhpc3RzIj4KKyAgICA8dGVybT48bGl0ZXJhbD5JRiBOT1QgRVhJU1RTPC9saXRlcmFsPjwvdGVy bT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgRG8gbm90IHRocm93IGFuIGVy cm9yIGlmIHRoZSBuYW1lIGFscmVhZHkgZXhpc3RzLiBBIG5vdGljZSBpcyBpc3N1ZWQgaW4KKyAg ICAgIHRoaXMgY2FzZS4KKyAgICAgPC9wYXJhPgorICAgIDwvbGlzdGl0ZW0+CisgICA8L3Zhcmxp c3RlbnRyeT4KKworICAgPHZhcmxpc3RlbnRyeSBpZD0ic3FsLWNyZWF0ZXZhcmlhYmxlLW5hbWUi PgorICAgIDx0ZXJtPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5uYW1lPC9yZXBsYWNl YWJsZT48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuYW1l LCBvcHRpb25hbGx5IHNjaGVtYS1xdWFsaWZpZWQsIG9mIHRoZSBzZXNzaW9uIHZhcmlhYmxlLgor ICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8 dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtZGF0YV90eXBlIj4KKyAgICA8dGVy bT48cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+ZGF0YV90eXBlPC9yZXBsYWNlYWJsZT48 L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAgICAgIFRoZSBuYW1lLCBvcHRp b25hbGx5IHNjaGVtYS1xdWFsaWZpZWQsIG9mIHRoZSBkYXRhIHR5cGUgb2YgdGhlIHNlc3Npb24K KyAgICAgIHZhcmlhYmxlLgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFy bGlzdGVudHJ5PgorCisgICA8dmFybGlzdGVudHJ5IGlkPSJzcWwtY3JlYXRldmFyaWFibGUtY29s bGF0ZSI+CisgICAgPHRlcm0+PGxpdGVyYWw+Q09MTEFURSA8cmVwbGFjZWFibGU+Y29sbGF0aW9u PC9yZXBsYWNlYWJsZT48L2xpdGVyYWw+PC90ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBh cmE+CisgICAgICBUaGUgPGxpdGVyYWw+Q09MTEFURTwvbGl0ZXJhbD4gY2xhdXNlIGFzc2lnbnMg YSBjb2xsYXRpb24gdG8gdGhlIHNlc3Npb24KKyAgICAgIHZhcmlhYmxlICh3aGljaCBtdXN0IGJl IG9mIGEgY29sbGF0YWJsZSBkYXRhIHR5cGUpLiAgSWYgbm90IHNwZWNpZmllZCwKKyAgICAgIHRo ZSBkYXRhIHR5cGUncyBkZWZhdWx0IGNvbGxhdGlvbiBpcyB1c2VkLgorICAgICA8L3BhcmE+Cisg ICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgIDwvdmFyaWFibGVsaXN0Pgor IDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Ob3RlczwvdGl0bGU+CisKKyAg PHBhcmE+CisgICBVc2UgdGhlIDxjb21tYW5kPkRST1AgVkFSSUFCTEU8L2NvbW1hbmQ+IGNvbW1h bmQgdG8gcmVtb3ZlIGEgc2Vzc2lvbgorICAgdmFyaWFibGUuCisgIDwvcGFyYT4KKyA8L3JlZnNl Y3QxPgorCisgPHJlZnNlY3QxPgorICA8dGl0bGU+RXhhbXBsZXM8L3RpdGxlPgorCisgIDxwYXJh PgorICAgQ3JlYXRlIGFuIGRhdGUgc2Vzc2lvbiB2YXJpYWJsZSA8bGl0ZXJhbD52YXIxPC9saXRl cmFsPjoKKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGRhdGU7Cis8 L3Byb2dyYW1saXN0aW5nPgorICA8L3BhcmE+CisKKyA8L3JlZnNlY3QxPgorCisgPHJlZnNlY3Qx PgorICA8dGl0bGU+Q29tcGF0aWJpbGl0eTwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUaGUgPGNv bW1hbmQ+Q1JFQVRFIFZBUklBQkxFPC9jb21tYW5kPiBjb21tYW5kIGlzIGEKKyAgIDxwcm9kdWN0 bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gZXh0ZW5zaW9uLgorICA8L3BhcmE+CisgPC9y ZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlNlZSBBbHNvPC90aXRsZT4KKworICA8 c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwt YWx0ZXJ2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJlcj48eHJlZiBsaW5rZW5kPSJzcWwt ZHJvcHZhcmlhYmxlIi8+PC9tZW1iZXI+CisgIDwvc2ltcGxlbGlzdD4KKyA8L3JlZnNlY3QxPgor Cis8L3JlZmVudHJ5PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxl LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2Ryb3BfdmFyaWFibGUuc2dtbApuZXcgZmlsZSBtb2Rl IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi41YmRiMzU2MGYwCi0tLSAvZGV2L251bGwKKysrIGIv ZG9jL3NyYy9zZ21sL3JlZi9kcm9wX3ZhcmlhYmxlLnNnbWwKQEAgLTAsMCArMSwxMTcgQEAKKzwh LS0KK2RvYy9zcmMvc2dtbC9yZWYvZHJvcF92YXJpYWJsZS5zZ21sCitQb3N0Z3JlU1FMIGRvY3Vt ZW50YXRpb24KKy0tPgorCis8cmVmZW50cnkgaWQ9InNxbC1kcm9wdmFyaWFibGUiPgorIDxpbmRl eHRlcm0gem9uZT0ic3FsLWRyb3B2YXJpYWJsZSI+CisgIDxwcmltYXJ5PkRST1AgVkFSSUFCTEU8 L3ByaW1hcnk+CisgPC9pbmRleHRlcm0+CisKKyA8aW5kZXh0ZXJtPgorICA8cHJpbWFyeT5zZXNz aW9uIHZhcmlhYmxlPC9wcmltYXJ5PgorICA8c2Vjb25kYXJ5PnJlbW92aW5nPC9zZWNvbmRhcnk+ CisgPC9pbmRleHRlcm0+CisKKyA8cmVmbWV0YT4KKyAgPHJlZmVudHJ5dGl0bGU+RFJPUCBWQVJJ QUJMRTwvcmVmZW50cnl0aXRsZT4KKyAgPG1hbnZvbG51bT43PC9tYW52b2xudW0+CisgIDxyZWZt aXNjaW5mbz5TUUwgLSBMYW5ndWFnZSBTdGF0ZW1lbnRzPC9yZWZtaXNjaW5mbz4KKyA8L3JlZm1l dGE+CisKKyA8cmVmbmFtZWRpdj4KKyAgPHJlZm5hbWU+RFJPUCBWQVJJQUJMRTwvcmVmbmFtZT4K KyAgPHJlZnB1cnBvc2U+cmVtb3ZlIGEgc2Vzc2lvbiB2YXJpYWJsZTwvcmVmcHVycG9zZT4KKyA8 L3JlZm5hbWVkaXY+CisKKyA8cmVmc3lub3BzaXNkaXY+Cis8c3lub3BzaXM+CitEUk9QIFZBUklB QkxFIFsgSUYgRVhJU1RTIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3Jl cGxhY2VhYmxlPiBbLCAuLi5dIFsgQ0FTQ0FERSB8IFJFU1RSSUNUIF0KKzwvc3lub3BzaXM+Cisg PC9yZWZzeW5vcHNpc2Rpdj4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPkRlc2NyaXB0aW9uPC90 aXRsZT4KKworICA8cGFyYT4KKyAgIDxjb21tYW5kPkRST1AgVkFSSUFCTEU8L2NvbW1hbmQ+IHJl bW92ZXMgYSBzZXNzaW9uIHZhcmlhYmxlLgorICAgQSBzZXNzaW9uIHZhcmlhYmxlIGNhbiBvbmx5 IGJlIHJlbW92ZWQgYnkgaXRzIG93bmVyIG9yIGEgc3VwZXJ1c2VyLgorICA8L3BhcmE+CisgPC9y ZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlBhcmFtZXRlcnM8L3RpdGxlPgorCisg IDx2YXJpYWJsZWxpc3Q+CisgICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPklG IEVYSVNUUzwvbGl0ZXJhbD48L3Rlcm0+CisgICAgPGxpc3RpdGVtPgorICAgICA8cGFyYT4KKyAg ICAgIERvIG5vdCB0aHJvdyBhbiBlcnJvciBpZiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSBkb2VzIG5v dCBleGlzdC4gQSBub3RpY2UgaXMKKyAgICAgIGlzc3VlZCBpbiB0aGlzIGNhc2UuCisgICAgIDwv cGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJsaXN0ZW50cnk+CisKKyAgIDx2YXJsaXN0 ZW50cnk+CisgICAgPHRlcm0+PHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPm5hbWU8L3Jl cGxhY2VhYmxlPjwvdGVybT4KKyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgVGhl IG5hbWUsIG9wdGlvbmFsbHkgc2NoZW1hLXF1YWxpZmllZCwgb2YgYSBzZXNzaW9uIHZhcmlhYmxl LgorICAgICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisg ICA8dmFybGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPkNBU0NBREU8L2xpdGVyYWw+PC90 ZXJtPgorICAgIDxsaXN0aXRlbT4KKyAgICAgPHBhcmE+CisgICAgICBBdXRvbWF0aWNhbGx5IGRy b3Agb2JqZWN0cyB0aGF0IGRlcGVuZCBvbiB0aGUgc2Vzc2lvbiB2YXJpYWJsZSAoc3VjaCBhcwor ICAgICAgdmlld3MpLCBhbmQgaW4gdHVybiBhbGwgb2JqZWN0cyB0aGF0IGRlcGVuZCBvbiB0aG9z ZSBvYmplY3RzCisgICAgICAoc2VlIDx4cmVmIGxpbmtlbmQ9ImRkbC1kZXBlbmQiLz4pLgorICAg ICA8L3BhcmE+CisgICAgPC9saXN0aXRlbT4KKyAgIDwvdmFybGlzdGVudHJ5PgorCisgICA8dmFy bGlzdGVudHJ5PgorICAgIDx0ZXJtPjxsaXRlcmFsPlJFU1RSSUNUPC9saXRlcmFsPjwvdGVybT4K KyAgICA8bGlzdGl0ZW0+CisgICAgIDxwYXJhPgorICAgICAgUmVmdXNlIHRvIGRyb3AgdGhlIHNl c3Npb24gdmFyaWFibGUgaWYgYW55IG9iamVjdHMgZGVwZW5kIG9uIGl0LiAgVGhpcyBpcworICAg ICAgdGhlIGRlZmF1bHQuCisgICAgIDwvcGFyYT4KKyAgICA8L2xpc3RpdGVtPgorICAgPC92YXJs aXN0ZW50cnk+CisgIDwvdmFyaWFibGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+ CisgIDx0aXRsZT5FeGFtcGxlczwvdGl0bGU+CisKKyAgPHBhcmE+CisgICBUbyByZW1vdmUgdGhl IHNlc3Npb24gdmFyaWFibGUgPGxpdGVyYWw+dmFyMTwvbGl0ZXJhbD46CisKKzxwcm9ncmFtbGlz dGluZz4KK0RST1AgVkFSSUFCTEUgdmFyMTsKKzwvcHJvZ3JhbWxpc3Rpbmc+PC9wYXJhPgorIDwv cmVmc2VjdDE+CisKKyA8cmVmc2VjdDE+CisgIDx0aXRsZT5Db21wYXRpYmlsaXR5PC90aXRsZT4K KworICA8cGFyYT4KKyAgIFRoZSA8Y29tbWFuZD5EUk9QIFZBUklBQkxFPC9jb21tYW5kPiBjb21t YW5kIGlzIGEKKyAgIDxwcm9kdWN0bmFtZT5Qb3N0Z3JlU1FMPC9wcm9kdWN0bmFtZT4gZXh0ZW5z aW9uLgorICA8L3BhcmE+CisgPC9yZWZzZWN0MT4KKworIDxyZWZzZWN0MT4KKyAgPHRpdGxlPlNl ZSBBbHNvPC90aXRsZT4KKworICA8c2ltcGxlbGlzdCB0eXBlPSJpbmxpbmUiPgorICAgPG1lbWJl cj48eHJlZiBsaW5rZW5kPSJzcWwtYWx0ZXJ2YXJpYWJsZSIvPjwvbWVtYmVyPgorICAgPG1lbWJl cj48eHJlZiBsaW5rZW5kPSJzcWwtY3JlYXRldmFyaWFibGUiLz48L21lbWJlcj4KKyAgPC9zaW1w bGVsaXN0PgorIDwvcmVmc2VjdDE+CisKKzwvcmVmZW50cnk+CmRpZmYgLS1naXQgYS9kb2Mvc3Jj L3NnbWwvcmVmL2dyYW50LnNnbWwgYi9kb2Mvc3JjL3NnbWwvcmVmL2dyYW50LnNnbWwKaW5kZXgg OTk5ZjY1N2Q1Yy4uYzExODYwZmEyMCAxMDA2NDQKLS0tIGEvZG9jL3NyYy9zZ21sL3JlZi9ncmFu dC5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvZ3JhbnQuc2dtbApAQCAtMTAxLDYgKzEwMSwx MiBAQCBHUkFOVCA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9uYW1lPC9yZXBs YWNlYWJsZT4gWywgLi4uXSBUTyA8cmVwbGFjZQogICAgIFsgV0lUSCB7IEFETUlOIHwgSU5IRVJJ VCB8IFNFVCB9IHsgT1BUSU9OIHwgVFJVRSB8IEZBTFNFIH0gXQogICAgIFsgR1JBTlRFRCBCWSA8 cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9yZXBsYWNl YWJsZT4gXQogCitHUkFOVCB7IFNFTEVDVCB8IFVQREFURSB8IEFMTCBbIFBSSVZJTEVHRVMgXSB9 CisgICAgT04geyBWQVJJQUJMRSA8cmVwbGFjZWFibGU+dmFyaWFibGVfbmFtZTwvcmVwbGFjZWFi bGU+IFssIC4uLl0KKyAgICAgICB8IEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1BIDxyZXBsYWNlYWJs ZSBjbGFzcz0icGFyYW1ldGVyIj5zY2hlbWFfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gfQor ICAgIFRPIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248 L3JlcGxhY2VhYmxlPiBbLCAuLi5dIFsgV0lUSCBHUkFOVCBPUFRJT04gXQorICAgIFsgR1JBTlRF RCBCWSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRlciI+cm9sZV9zcGVjaWZpY2F0aW9uPC9y ZXBsYWNlYWJsZT4gXQorCiA8cGhyYXNlPndoZXJlIDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1l dGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3JlcGxhY2VhYmxlPiBjYW4gYmU6PC9waHJhc2U+CiAK ICAgICBbIEdST1VQIF0gPHJlcGxhY2VhYmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwv cmVwbGFjZWFibGU+CkBAIC0xMTksOCArMTI1LDggQEAgR1JBTlQgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnJvbGVfbmFtZTwvcmVwbGFjZWFibGU+IFssIC4uLl0gVE8gPHJlcGxhY2UK ICAgIHRoYXQgZ3JhbnRzIHByaXZpbGVnZXMgb24gYSBkYXRhYmFzZSBvYmplY3QgKHRhYmxlLCBj b2x1bW4sIHZpZXcsCiAgICBmb3JlaWduIHRhYmxlLCBzZXF1ZW5jZSwgZGF0YWJhc2UsIGZvcmVp Z24tZGF0YSB3cmFwcGVyLCBmb3JlaWduIHNlcnZlciwKICAgIGZ1bmN0aW9uLCBwcm9jZWR1cmUs IHByb2NlZHVyYWwgbGFuZ3VhZ2UsIGxhcmdlIG9iamVjdCwgY29uZmlndXJhdGlvbgotICAgcGFy YW1ldGVyLCBzY2hlbWEsIHRhYmxlc3BhY2UsIG9yIHR5cGUpLCBhbmQgb25lIHRoYXQgZ3JhbnRz Ci0gICBtZW1iZXJzaGlwIGluIGEgcm9sZS4gIFRoZXNlIHZhcmlhbnRzIGFyZSBzaW1pbGFyIGlu IG1hbnkgd2F5cywgYnV0CisgICBwYXJhbWV0ZXIsIHNjaGVtYSwgc2Vzc2lvbiB2YXJpYWJsZSwg dGFibGVzcGFjZSwgb3IgdHlwZSksIGFuZCBvbmUgdGhhdAorICAgZ3JhbnRzIG1lbWJlcnNoaXAg aW4gYSByb2xlLiAgVGhlc2UgdmFyaWFudHMgYXJlIHNpbWlsYXIgaW4gbWFueSB3YXlzLCBidXQK ICAgIHRoZXkgYXJlIGRpZmZlcmVudCBlbm91Z2ggdG8gYmUgZGVzY3JpYmVkIHNlcGFyYXRlbHku CiAgIDwvcGFyYT4KIApAQCAtMjM2LDkgKzI0Miw5IEBAIEdSQU5UIDxyZXBsYWNlYWJsZSBjbGFz cz0icGFyYW1ldGVyIj5yb2xlX25hbWU8L3JlcGxhY2VhYmxlPiBbLCAuLi5dIFRPIDxyZXBsYWNl CiAgIDxwYXJhPgogICAgVGhlcmUgaXMgYWxzbyBhbiBvcHRpb24gdG8gZ3JhbnQgcHJpdmlsZWdl cyBvbiBhbGwgb2JqZWN0cyBvZiB0aGUgc2FtZQogICAgdHlwZSB3aXRoaW4gb25lIG9yIG1vcmUg c2NoZW1hcy4gIFRoaXMgZnVuY3Rpb25hbGl0eSBpcyBjdXJyZW50bHkgc3VwcG9ydGVkCi0gICBv bmx5IGZvciB0YWJsZXMsIHNlcXVlbmNlcywgZnVuY3Rpb25zLCBhbmQgcHJvY2VkdXJlcy4gIDxs aXRlcmFsPkFMTAotICAgVEFCTEVTPC9saXRlcmFsPiBhbHNvIGFmZmVjdHMgdmlld3MgYW5kIGZv cmVpZ24gdGFibGVzLCBqdXN0IGxpa2UgdGhlCi0gICBzcGVjaWZpYy1vYmplY3QgPGNvbW1hbmQ+ R1JBTlQ8L2NvbW1hbmQ+IGNvbW1hbmQuICA8bGl0ZXJhbD5BTEwKKyAgIG9ubHkgZm9yIHRhYmxl cywgc2VxdWVuY2VzLCBmdW5jdGlvbnMsIHByb2NlZHVyZXMgYW5kIHZhcmlhYmxlcy4KKyAgIDxs aXRlcmFsPkFMTCBUQUJMRVM8L2xpdGVyYWw+IGFsc28gYWZmZWN0cyB2aWV3cyBhbmQgZm9yZWln biB0YWJsZXMsIGp1c3QKKyAgIGxpa2UgdGhlIHNwZWNpZmljLW9iamVjdCA8Y29tbWFuZD5HUkFO VDwvY29tbWFuZD4gY29tbWFuZC4gIDxsaXRlcmFsPkFMTAogICAgRlVOQ1RJT05TPC9saXRlcmFs PiBhbHNvIGFmZmVjdHMgYWdncmVnYXRlIGFuZCB3aW5kb3cgZnVuY3Rpb25zLCBidXQgbm90CiAg ICBwcm9jZWR1cmVzLCBhZ2FpbiBqdXN0IGxpa2UgdGhlIHNwZWNpZmljLW9iamVjdCA8Y29tbWFu ZD5HUkFOVDwvY29tbWFuZD4KICAgIGNvbW1hbmQuICBVc2UgPGxpdGVyYWw+QUxMIFJPVVRJTkVT PC9saXRlcmFsPiB0byBpbmNsdWRlIHByb2NlZHVyZXMuCkBAIC01MTgsOCArNTI0LDggQEAgR1JB TlQgYWRtaW5zIFRPIGpvZTsKICAgIDwvcGFyYT4KIAogICAgPHBhcmE+Ci0gICAgUHJpdmlsZWdl cyBvbiBkYXRhYmFzZXMsIHRhYmxlc3BhY2VzLCBzY2hlbWFzLCBsYW5ndWFnZXMsIGFuZAotICAg IGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyBhcmUKKyAgICBQcml2aWxlZ2VzIG9uIGRhdGFiYXNl cywgdGFibGVzcGFjZXMsIHNjaGVtYXMsIGxhbmd1YWdlcywgc2Vzc2lvbiB2YXJpYWJsZXMKKyAg ICBhbmQgY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzIGFyZQogICAgIDxwcm9kdWN0bmFtZT5Qb3N0 Z3JlU1FMPC9wcm9kdWN0bmFtZT4gZXh0ZW5zaW9ucy4KICAgIDwvcGFyYT4KICA8L3JlZnNlY3Qx PgpkaWZmIC0tZ2l0IGEvZG9jL3NyYy9zZ21sL3JlZi9wc3FsLXJlZi5zZ21sIGIvZG9jL3NyYy9z Z21sL3JlZi9wc3FsLXJlZi5zZ21sCmluZGV4IDcyZjMzNDdlNTMuLmFjMjY1ZGIzNWUgMTAwNjQ0 Ci0tLSBhL2RvYy9zcmMvc2dtbC9yZWYvcHNxbC1yZWYuc2dtbAorKysgYi9kb2Mvc3JjL3NnbWwv cmVmL3BzcWwtcmVmLnNnbWwKQEAgLTIwMzQsNiArMjAzNCwxOSBAQCBTRUxFQ1QgJDEgXHBhcnNl IHN0bXQxCiAgICAgICAgIDwvbGlzdGl0ZW0+CiAgICAgICA8L3Zhcmxpc3RlbnRyeT4KIAorICAg ICAgPHZhcmxpc3RlbnRyeSBpZD0iYXBwLXBzcWwtbWV0YS1jb21tYW5kLWR2Ij4KKyAgICAgICAg PHRlcm0+PGxpdGVyYWw+XGRWWytdIFsgPGxpbmsgbGlua2VuZD0iYXBwLXBzcWwtcGF0dGVybnMi PjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9yZXBsYWNlYWJsZT48L2xp bms+IF08L2xpdGVyYWw+PC90ZXJtPgorICAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJh PgorICAgICAgICBMaXN0cyBzZXNzaW9uIHZhcmlhYmxlcy4KKyAgICAgICAgSWYgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnBhdHRlcm48L3JlcGxhY2VhYmxlPiBpcworICAgICAgICBz cGVjaWZpZWQsIG9ubHkgc2Vzc2lvbiB2YXJpYWJsZXMgd2hvc2UgbmFtZXMgbWF0Y2ggdGhlIHBh dHRlcm4gYXJlIGxpc3RlZC4KKyAgICAgICAgSWYgdGhlIGZvcm0gPGxpdGVyYWw+XGRWKzwvbGl0 ZXJhbD4gaXMgdXNlZCwgYWRkaXRpb25hbCBpbmZvcm1hdGlvbgorICAgICAgICBhYm91dCBlYWNo IHZhcmlhYmxlIGlzIHNob3duLCBsaWtlICBhY2Nlc3MgcHJpdmlsZWdlcyBhbmQgZGVzY3JpcHRp b24uCisgICAgICAgIDwvcGFyYT4KKyAgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlz dGVudHJ5PgorCiAgICAgICA8dmFybGlzdGVudHJ5IGlkPSJhcHAtcHNxbC1tZXRhLWNvbW1hbmQt ZHUiPgogICAgICAgICA8dGVybT48bGl0ZXJhbD5cZHVbUytdIFsgPGxpbmsgbGlua2VuZD0iYXBw LXBzcWwtcGF0dGVybnMiPjxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5wYXR0ZXJuPC9y ZXBsYWNlYWJsZT48L2xpbms+IF08L2xpdGVyYWw+PC90ZXJtPgogICAgICAgICA8bGlzdGl0ZW0+ CmRpZmYgLS1naXQgYS9kb2Mvc3JjL3NnbWwvcmVmL3Jldm9rZS5zZ21sIGIvZG9jL3NyYy9zZ21s L3JlZi9yZXZva2Uuc2dtbAppbmRleCA4ZGY0OTIyODFhLi43NjBmZGRiN2MyIDEwMDY0NAotLS0g YS9kb2Mvc3JjL3NnbWwvcmVmL3Jldm9rZS5zZ21sCisrKyBiL2RvYy9zcmMvc2dtbC9yZWYvcmV2 b2tlLnNnbWwKQEAgLTEzMCw2ICsxMzAsMTQgQEAgUkVWT0tFIFsgeyBBRE1JTiB8IElOSEVSSVQg fCBTRVQgfSBPUFRJT04gRk9SIF0KICAgICBbIEdSQU5URUQgQlkgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+IF0KICAgICBbIENB U0NBREUgfCBSRVNUUklDVCBdCiAKK1JFVk9LRSBbIEdSQU5UIE9QVElPTiBGT1IgXQorICAgIHsg eyBTRUxFQ1QgfCBVUERBVEUgfSBbLCAuLi5dIHwgQUxMIFsgUFJJVklMRUdFUyBdIH0KKyAgICBP TiB7IFZBUklBQkxFIDxyZXBsYWNlYWJsZT52YXJpYWJsZV9uYW1lPC9yZXBsYWNlYWJsZT4gWywg Li4uXQorICAgICAgIHwgQUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEgPHJlcGxhY2VhYmxlIGNsYXNz PSJwYXJhbWV0ZXIiPnNjaGVtYV9uYW1lPC9yZXBsYWNlYWJsZT4gWywgLi4uXSB9CisgICAgRlJP TSB7IDxyZXBsYWNlYWJsZSBjbGFzcz0icGFyYW1ldGVyIj5yb2xlX3NwZWNpZmljYXRpb248L3Jl cGxhY2VhYmxlPiB8IFBVQkxJQyB9IFssIC4uLl0KKyAgICBbIEdSQU5URUQgQlkgPHJlcGxhY2Vh YmxlIGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+IF0K KyAgICBbIENBU0NBREUgfCBSRVNUUklDVCBdCisKIDxwaHJhc2U+d2hlcmUgPHJlcGxhY2VhYmxl IGNsYXNzPSJwYXJhbWV0ZXIiPnJvbGVfc3BlY2lmaWNhdGlvbjwvcmVwbGFjZWFibGU+IGNhbiBi ZTo8L3BocmFzZT4KIAogICAgIFsgR1JPVVAgXSA8cmVwbGFjZWFibGUgY2xhc3M9InBhcmFtZXRl ciI+cm9sZV9uYW1lPC9yZXBsYWNlYWJsZT4KZGlmZiAtLWdpdCBhL2RvYy9zcmMvc2dtbC9yZWZl cmVuY2Uuc2dtbCBiL2RvYy9zcmMvc2dtbC9yZWZlcmVuY2Uuc2dtbAppbmRleCBmZjg1YWNlODNm Li4yNTU3OGYzOTQ2IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvcmVmZXJlbmNlLnNnbWwKKysr IGIvZG9jL3NyYy9zZ21sL3JlZmVyZW5jZS5zZ21sCkBAIC03NSw2ICs3NSw3IEBACiAgICAmYWx0 ZXJUeXBlOwogICAgJmFsdGVyVXNlcjsKICAgICZhbHRlclVzZXJNYXBwaW5nOworICAgJmFsdGVy VmFyaWFibGU7CiAgICAmYWx0ZXJWaWV3OwogICAgJmFuYWx5emU7CiAgICAmYmVnaW47CkBAIC0x MjcsNiArMTI4LDcgQEAKICAgICZjcmVhdGVUeXBlOwogICAgJmNyZWF0ZVVzZXI7CiAgICAmY3Jl YXRlVXNlck1hcHBpbmc7CisgICAmY3JlYXRlVmFyaWFibGU7CiAgICAmY3JlYXRlVmlldzsKICAg ICZkZWFsbG9jYXRlOwogICAgJmRlY2xhcmU7CkBAIC0xNzUsNiArMTc3LDcgQEAKICAgICZkcm9w VHlwZTsKICAgICZkcm9wVXNlcjsKICAgICZkcm9wVXNlck1hcHBpbmc7CisgICAmZHJvcFZhcmlh YmxlOwogICAgJmRyb3BWaWV3OwogICAgJmVuZDsKICAgICZleGVjdXRlOwpkaWZmIC0tZ2l0IGEv c3JjL2JhY2tlbmQvY2F0YWxvZy9NYWtlZmlsZSBiL3NyYy9iYWNrZW5kL2NhdGFsb2cvTWFrZWZp bGUKaW5kZXggYzA5MDA5NGVkMC4uMmMyMGQ2MGRiMSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQv Y2F0YWxvZy9NYWtlZmlsZQorKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL01ha2VmaWxlCkBAIC00 NSw2ICs0NSw3IEBAIE9CSlMgPSBcCiAJcGdfc2hkZXBlbmQubyBcCiAJcGdfc3Vic2NyaXB0aW9u Lm8gXAogCXBnX3R5cGUubyBcCisJcGdfdmFyaWFibGUubyBcCiAJc3RvcmFnZS5vIFwKIAl0b2Fz dGluZy5vCiAKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMgYi9zcmMv YmFja2VuZC9jYXRhbG9nL2FjbGNoay5jCmluZGV4IGIxOTYyOTRmYjIuLjMzYmEwYjdmZjIgMTAw NjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NhdGFsb2cvYWNsY2hrLmMKKysrIGIvc3JjL2JhY2tlbmQv Y2F0YWxvZy9hY2xjaGsuYwpAQCAtNjQsNiArNjQsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdf cHJvYy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdGFibGVzcGFjZS5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNs dWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgi CiAjaW5jbHVkZSAiY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5oIgpAQCAtMjkxLDYgKzI5Miw5IEBA IHJlc3RyaWN0X2FuZF9jaGVja19ncmFudChib29sIGlzX2dyYW50LCBBY2xNb2RlIGF2YWlsX2dv cHRpb25zLCBib29sIGFsbF9wcml2cywKIAkJY2FzZSBPQkpFQ1RfUEFSQU1FVEVSX0FDTDoKIAkJ CXdob2xlX21hc2sgPSBBQ0xfQUxMX1JJR0hUU19QQVJBTUVURVJfQUNMOwogCQkJYnJlYWs7CisJ CWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJd2hvbGVfbWFzayA9IEFDTF9BTExfUklHSFRTX1ZB UklBQkxFOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25p emVkIG9iamVjdCB0eXBlOiAlZCIsIG9ianR5cGUpOwogCQkJLyogbm90IHJlYWNoZWQsIGJ1dCBr ZWVwIGNvbXBpbGVyIHF1aWV0ICovCkBAIC01MzUsNiArNTM5LDEwIEBAIEV4ZWN1dGVHcmFudFN0 bXQoR3JhbnRTdG10ICpzdG10KQogCQkJYWxsX3ByaXZpbGVnZXMgPSBBQ0xfQUxMX1JJR0hUU19Q QVJBTUVURVJfQUNMOwogCQkJZXJyb3Jtc2cgPSBnZXR0ZXh0X25vb3AoImludmFsaWQgcHJpdmls ZWdlIHR5cGUgJXMgZm9yIHBhcmFtZXRlciIpOwogCQkJYnJlYWs7CisJCWNhc2UgT0JKRUNUX1ZB UklBQkxFOgorCQkJYWxsX3ByaXZpbGVnZXMgPSBBQ0xfQUxMX1JJR0hUU19WQVJJQUJMRTsKKwkJ CWVycm9ybXNnID0gZ2V0dGV4dF9ub29wKCJpbnZhbGlkIHByaXZpbGVnZSB0eXBlICVzIGZvciBz ZXNzaW9uIHZhcmlhYmxlIik7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1Is ICJ1bnJlY29nbml6ZWQgR3JhbnRTdG10Lm9ianR5cGU6ICVkIiwKIAkJCQkgKGludCkgc3RtdC0+ b2JqdHlwZSk7CkBAIC02NDAsNiArNjQ4LDkgQEAgRXhlY0dyYW50U3RtdF9vaWRzKEludGVybmFs R3JhbnQgKmlzdG10KQogCQljYXNlIE9CSkVDVF9QQVJBTUVURVJfQUNMOgogCQkJRXhlY0dyYW50 X1BhcmFtZXRlcihpc3RtdCk7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJ CQlFeGVjR3JhbnRfY29tbW9uKGlzdG10LCBWYXJpYWJsZVJlbGF0aW9uSWQsIEFDTF9BTExfUklH SFRTX1ZBUklBQkxFLCBOVUxMKTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhFUlJP UiwgInVucmVjb2duaXplZCBHcmFudFN0bXQub2JqdHlwZTogJWQiLAogCQkJCSAoaW50KSBpc3Rt dC0+b2JqdHlwZSk7CkBAIC03NjAsNiArNzcxLDE4IEBAIG9iamVjdE5hbWVzVG9PaWRzKE9iamVj dFR5cGUgb2JqdHlwZSwgTGlzdCAqb2JqbmFtZXMsIGJvb2wgaXNfZ3JhbnQpCiAJCQkJCW9iamVj dHMgPSBsYXBwZW5kX29pZChvYmplY3RzLCBwYXJhbWV0ZXJJZCk7CiAJCQl9CiAJCQlicmVhazsK KworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCWZvcmVhY2hfbm9kZShSYW5nZVZhciwgdmFy dmFyLCBvYmpuYW1lcykKKwkJCXsKKwkJCQlPaWQJCQlyZWxPaWQ7CisKKwkJCQlyZWxPaWQgPSBM b29rdXBWYXJpYWJsZSh2YXJ2YXItPnNjaGVtYW5hbWUsCisJCQkJCQkJCQkJdmFydmFyLT5yZWxu YW1lLAorCQkJCQkJCQkJCWZhbHNlKTsKKwkJCQlvYmplY3RzID0gbGFwcGVuZF9vaWQob2JqZWN0 cywgcmVsT2lkKTsKKwkJCX0KKwkJCWJyZWFrOwogCX0KIAogCXJldHVybiBvYmplY3RzOwpAQCAt ODQ2LDYgKzg2OSwzMiBAQCBvYmplY3RzSW5TY2hlbWFUb09pZHMoT2JqZWN0VHlwZSBvYmp0eXBl LCBMaXN0ICpuc3BuYW1lcykKIAkJCQkJdGFibGVfY2xvc2UocmVsLCBBY2Nlc3NTaGFyZUxvY2sp OwogCQkJCX0KIAkJCQlicmVhazsKKwkJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJCXsKKwkJ CQkJU2NhbktleURhdGEga2V5OworCQkJCQlSZWxhdGlvbglyZWw7CisJCQkJCVRhYmxlU2NhbkRl c2Mgc2NhbjsKKwkJCQkJSGVhcFR1cGxlCXR1cGxlOworCisJCQkJCVNjYW5LZXlJbml0KCZrZXks CisJCQkJCQkJCUFudW1fcGdfdmFyaWFibGVfdmFybmFtZXNwYWNlLAorCQkJCQkJCQlCVEVxdWFs U3RyYXRlZ3lOdW1iZXIsIEZfT0lERVEsCisJCQkJCQkJCU9iamVjdElkR2V0RGF0dW0obmFtZXNw YWNlSWQpKTsKKworCQkJCQlyZWwgPSB0YWJsZV9vcGVuKFZhcmlhYmxlUmVsYXRpb25JZCwgQWNj ZXNzU2hhcmVMb2NrKTsKKwkJCQkJc2NhbiA9IHRhYmxlX2JlZ2luc2Nhbl9jYXRhbG9nKHJlbCwg MSwgJmtleSk7CisKKwkJCQkJd2hpbGUgKCh0dXBsZSA9IGhlYXBfZ2V0bmV4dChzY2FuLCBGb3J3 YXJkU2NhbkRpcmVjdGlvbikpICE9IE5VTEwpCisJCQkJCXsKKwkJCQkJCU9pZAkJCW9pZCA9ICgo Rm9ybV9wZ19wcm9jKSBHRVRTVFJVQ1QodHVwbGUpKS0+b2lkOworCisJCQkJCQlvYmplY3RzID0g bGFwcGVuZF9vaWQob2JqZWN0cywgb2lkKTsKKwkJCQkJfQorCisJCQkJCXRhYmxlX2VuZHNjYW4o c2Nhbik7CisJCQkJCXRhYmxlX2Nsb3NlKHJlbCwgQWNjZXNzU2hhcmVMb2NrKTsKKwkJCQl9CisJ CQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCS8qIHNob3VsZCBub3QgaGFwcGVuICovCiAJCQkJ ZWxvZyhFUlJPUiwgInVucmVjb2duaXplZCBHcmFudFN0bXQub2JqdHlwZTogJWQiLApAQCAtMTAw NSw2ICsxMDU0LDEwIEBAIEV4ZWNBbHRlckRlZmF1bHRQcml2aWxlZ2VzU3RtdChQYXJzZVN0YXRl ICpwc3RhdGUsIEFsdGVyRGVmYXVsdFByaXZpbGVnZXNTdG10ICpzCiAJCQlhbGxfcHJpdmlsZWdl cyA9IEFDTF9BTExfUklHSFRTX1NDSEVNQTsKIAkJCWVycm9ybXNnID0gZ2V0dGV4dF9ub29wKCJp bnZhbGlkIHByaXZpbGVnZSB0eXBlICVzIGZvciBzY2hlbWEiKTsKIAkJCWJyZWFrOworCQljYXNl IE9CSkVDVF9WQVJJQUJMRToKKwkJCWFsbF9wcml2aWxlZ2VzID0gQUNMX0FMTF9SSUdIVFNfVkFS SUFCTEU7CisJCQllcnJvcm1zZyA9IGdldHRleHRfbm9vcCgiaW52YWxpZCBwcml2aWxlZ2UgdHlw ZSAlcyBmb3Igc2Vzc2lvbiB2YXJpYWJsZSIpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQll bG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIEdyYW50U3RtdC5vYmp0eXBlOiAlZCIsCiAJCQkJIChp bnQpIGFjdGlvbi0+b2JqdHlwZSk7CkBAIC0xMTk2LDYgKzEyNDksMTIgQEAgU2V0RGVmYXVsdEFD TChJbnRlcm5hbERlZmF1bHRBQ0wgKmlhY2xzKQogCQkJCXRoaXNfcHJpdmlsZWdlcyA9IEFDTF9B TExfUklHSFRTX1NDSEVNQTsKIAkJCWJyZWFrOwogCisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgor CQkJb2JqdHlwZSA9IERFRkFDTE9CSl9WQVJJQUJMRTsKKwkJCWlmIChpYWNscy0+YWxsX3ByaXZz ICYmIHRoaXNfcHJpdmlsZWdlcyA9PSBBQ0xfTk9fUklHSFRTKQorCQkJCXRoaXNfcHJpdmlsZWdl cyA9IEFDTF9BTExfUklHSFRTX1ZBUklBQkxFOworCQkJYnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJ CWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgb2JqZWN0IHR5cGU6ICVkIiwKIAkJCQkgKGludCkg aWFjbHMtPm9ianR5cGUpOwpAQCAtMTQzOSw2ICsxNDk4LDkgQEAgUmVtb3ZlUm9sZUZyb21PYmpl Y3RBQ0woT2lkIHJvbGVpZCwgT2lkIGNsYXNzaWQsIE9pZCBvYmppZCkKIAkJCWNhc2UgREVGQUNM T0JKX05BTUVTUEFDRToKIAkJCQlpYWNscy5vYmp0eXBlID0gT0JKRUNUX1NDSEVNQTsKIAkJCQli cmVhazsKKwkJCWNhc2UgREVGQUNMT0JKX1ZBUklBQkxFOgorCQkJCWlhY2xzLm9ianR5cGUgPSBP QkpFQ1RfVkFSSUFCTEU7CisJCQkJYnJlYWs7CiAJCQlkZWZhdWx0OgogCQkJCS8qIFNob3VsZG4n dCBnZXQgaGVyZSAqLwogCQkJCWVsb2coRVJST1IsICJ1bmV4cGVjdGVkIGRlZmF1bHQgQUNMIHR5 cGU6ICVkIiwKQEAgLTE0OTksNiArMTU2MSw5IEBAIFJlbW92ZVJvbGVGcm9tT2JqZWN0QUNMKE9p ZCByb2xlaWQsIE9pZCBjbGFzc2lkLCBPaWQgb2JqaWQpCiAJCQljYXNlIFBhcmFtZXRlckFjbFJl bGF0aW9uSWQ6CiAJCQkJaXN0bXQub2JqdHlwZSA9IE9CSkVDVF9QQVJBTUVURVJfQUNMOwogCQkJ CWJyZWFrOworCQkJY2FzZSBWYXJpYWJsZVJlbGF0aW9uSWQ6CisJCQkJaXN0bXQub2JqdHlwZSA9 IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQlicmVhazsKIAkJCWRlZmF1bHQ6CiAJCQkJZWxvZyhFUlJP UiwgInVuZXhwZWN0ZWQgb2JqZWN0IGNsYXNzICV1IiwgY2xhc3NpZCk7CiAJCQkJYnJlYWs7CkBA IC0yNzMyLDYgKzI3OTcsOSBAQCBhY2xjaGVja19lcnJvcihBY2xSZXN1bHQgYWNsZXJyLCBPYmpl Y3RUeXBlIG9ianR5cGUsCiAJCQkJCWNhc2UgT0JKRUNUX1RZUEU6CiAJCQkJCQltc2cgPSBnZXR0 ZXh0X25vb3AoInBlcm1pc3Npb24gZGVuaWVkIGZvciB0eXBlICVzIik7CiAJCQkJCQlicmVhazsK KwkJCQkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQkJCQltc2cgPSBnZXR0ZXh0X25vb3AoInBl cm1pc3Npb24gZGVuaWVkIGZvciBzZXNzaW9uIHZhcmlhYmxlICVzIik7CisJCQkJCQlicmVhazsK IAkJCQkJY2FzZSBPQkpFQ1RfVklFVzoKIAkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgicGVybWlz c2lvbiBkZW5pZWQgZm9yIHZpZXcgJXMiKTsKIAkJCQkJCWJyZWFrOwpAQCAtMjg0Myw2ICsyOTEx LDkgQEAgYWNsY2hlY2tfZXJyb3IoQWNsUmVzdWx0IGFjbGVyciwgT2JqZWN0VHlwZSBvYmp0eXBl LAogCQkJCQljYXNlIE9CSkVDVF9UWVBFOgogCQkJCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJtdXN0 IGJlIG93bmVyIG9mIHR5cGUgJXMiKTsKIAkJCQkJCWJyZWFrOworCQkJCQljYXNlIE9CSkVDVF9W QVJJQUJMRToKKwkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgibXVzdCBiZSBvd25lciBvZiBzZXNz aW9uIHZhcmlhYmxlICVzIik7CisJCQkJCQlicmVhazsKIAkJCQkJY2FzZSBPQkpFQ1RfVklFVzoK IAkJCQkJCW1zZyA9IGdldHRleHRfbm9vcCgibXVzdCBiZSBvd25lciBvZiB2aWV3ICVzIik7CiAJ CQkJCQlicmVhazsKQEAgLTI5OTEsNiArMzA2Miw4IEBAIHBnX2FjbG1hc2soT2JqZWN0VHlwZSBv Ymp0eXBlLCBPaWQgb2JqZWN0X29pZCwgQXR0ck51bWJlciBhdHRudW0sIE9pZCByb2xlaWQsCiAJ CQlyZXR1cm4gQUNMX05PX1JJR0hUUzsKIAkJY2FzZSBPQkpFQ1RfVFlQRToKIAkJCXJldHVybiBv YmplY3RfYWNsbWFzayhUeXBlUmVsYXRpb25JZCwgb2JqZWN0X29pZCwgcm9sZWlkLCBtYXNrLCBo b3cpOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCXJldHVybiBvYmplY3RfYWNsbWFzayhW YXJpYWJsZVJlbGF0aW9uSWQsIG9iamVjdF9vaWQsIHJvbGVpZCwgbWFzaywgaG93KTsKIAkJZGVm YXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgb2JqZWN0IHR5cGU6ICVkIiwKIAkJ CQkgKGludCkgb2JqdHlwZSk7CkBAIC00MjU4LDYgKzQzMzEsMTAgQEAgZ2V0X3VzZXJfZGVmYXVs dF9hY2woT2JqZWN0VHlwZSBvYmp0eXBlLCBPaWQgb3duZXJJZCwgT2lkIG5zcF9vaWQpCiAJCQlk ZWZhY2xvYmp0eXBlID0gREVGQUNMT0JKX05BTUVTUEFDRTsKIAkJCWJyZWFrOwogCisJCWNhc2Ug T0JKRUNUX1ZBUklBQkxFOgorCQkJZGVmYWNsb2JqdHlwZSA9IERFRkFDTE9CSl9WQVJJQUJMRTsK KwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQlyZXR1cm4gTlVMTDsKIAl9CmRpZmYgLS1naXQg YS9zcmMvYmFja2VuZC9jYXRhbG9nL2RlcGVuZGVuY3kuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv ZGVwZW5kZW5jeS5jCmluZGV4IDE4MzE2YTM5NjguLjllMGY2NDhiNzQgMTAwNjQ0Ci0tLSBhL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvZGVwZW5kZW5jeS5jCisrKyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv ZGVwZW5kZW5jeS5jCkBAIC02NSwxMiArNjUsMTQgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Rz X3RlbXBsYXRlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ191c2VyX21hcHBpbmcuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgi CiAjaW5jbHVkZSAiY29tbWFuZHMvY29tbWVudC5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RlZnJl bS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2V2ZW50X3RyaWdnZXIuaCIKICNpbmNsdWRlICJjb21t YW5kcy9leHRlbnNpb24uaCIKICNpbmNsdWRlICJjb21tYW5kcy9wb2xpY3kuaCIKICNpbmNsdWRl ICJjb21tYW5kcy9wdWJsaWNhdGlvbmNtZHMuaCIKKyNpbmNsdWRlICJjb21tYW5kcy9zY2hlbWFj bWRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvc2VjbGFiZWwuaCIKICNpbmNsdWRlICJjb21tYW5k cy9zZXF1ZW5jZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL3RyaWdnZXIuaCIKQEAgLTE0NDQsNiAr MTQ0NiwxMCBAQCBkb0RlbGV0aW9uKGNvbnN0IE9iamVjdEFkZHJlc3MgKm9iamVjdCwgaW50IGZs YWdzKQogCQkJUmVtb3ZlUHVibGljYXRpb25CeUlkKG9iamVjdC0+b2JqZWN0SWQpOwogCQkJYnJl YWs7CiAKKwkJY2FzZSBWYXJpYWJsZVJlbGF0aW9uSWQ6CisJCQlEcm9wVmFyaWFibGVCeUlkKG9i amVjdC0+b2JqZWN0SWQpOworCQkJYnJlYWs7CisKIAkJY2FzZSBDYXN0UmVsYXRpb25JZDoKIAkJ Y2FzZSBDb2xsYXRpb25SZWxhdGlvbklkOgogCQljYXNlIENvbnZlcnNpb25SZWxhdGlvbklkOgpk aWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZCBiL3NyYy9iYWNrZW5k L2NhdGFsb2cvbWVzb24uYnVpbGQKaW5kZXggMTk1OGVhOTIzOC4uZWQ0NGM4NzdmYyAxMDA2NDQK LS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9tZXNvbi5idWlsZAorKysgYi9zcmMvYmFja2VuZC9j YXRhbG9nL21lc29uLmJ1aWxkCkBAIC0zMiw2ICszMiw3IEBAIGJhY2tlbmRfc291cmNlcyArPSBm aWxlcygKICAgJ3BnX3NoZGVwZW5kLmMnLAogICAncGdfc3Vic2NyaXB0aW9uLmMnLAogICAncGdf dHlwZS5jJywKKyAgJ3BnX3ZhcmlhYmxlLmMnLAogICAnc3RvcmFnZS5jJywKICAgJ3RvYXN0aW5n LmMnLAogKQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYyBiL3Ny Yy9iYWNrZW5kL2NhdGFsb2cvbmFtZXNwYWNlLmMKaW5kZXggZDk3ZDYzMmE3ZS4uNDMwN2NhZDE1 YyAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY2F0YWxvZy9uYW1lc3BhY2UuYworKysgYi9zcmMv YmFja2VuZC9jYXRhbG9nL25hbWVzcGFjZS5jCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ190c19wYXJzZXIuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RzX3RlbXBsYXRl LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192 YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMuaCIKICNpbmNsdWRlICJj b21tb24vaGFzaGZuX3Vuc3RhYmxlLmgiCiAjaW5jbHVkZSAiZnVuY2FwaS5oIgpAQCAtMjI1LDYg KzIyNiw3IEBAIHN0YXRpYyBib29sIFRTUGFyc2VySXNWaXNpYmxlRXh0KE9pZCBwcnNJZCwgYm9v bCAqaXNfbWlzc2luZyk7CiBzdGF0aWMgYm9vbCBUU0RpY3Rpb25hcnlJc1Zpc2libGVFeHQoT2lk IGRpY3RJZCwgYm9vbCAqaXNfbWlzc2luZyk7CiBzdGF0aWMgYm9vbCBUU1RlbXBsYXRlSXNWaXNp YmxlRXh0KE9pZCB0bXBsSWQsIGJvb2wgKmlzX21pc3NpbmcpOwogc3RhdGljIGJvb2wgVFNDb25m aWdJc1Zpc2libGVFeHQoT2lkIGNmZ2lkLCBib29sICppc19taXNzaW5nKTsKK3N0YXRpYyBib29s IFZhcmlhYmxlSXNWaXNpYmxlRXh0KE9pZCB2YXJpZCwgYm9vbCAqaXNfbWlzc2luZyk7CiBzdGF0 aWMgdm9pZCByZWNvbXB1dGVOYW1lc3BhY2VQYXRoKHZvaWQpOwogc3RhdGljIHZvaWQgQWNjZXNz VGVtcFRhYmxlTmFtZXNwYWNlKGJvb2wgZm9yY2UpOwogc3RhdGljIHZvaWQgSW5pdFRlbXBUYWJs ZU5hbWVzcGFjZSh2b2lkKTsKQEAgLTk4Niw2ICs5ODgsODQgQEAgUmVsYXRpb25Jc1Zpc2libGVF eHQoT2lkIHJlbGlkLCBib29sICppc19taXNzaW5nKQogCXJldHVybiB2aXNpYmxlOwogfQogCisv KgorICogVmFyaWFibGVJc1Zpc2libGUKKyAqCQlEZXRlcm1pbmUgd2hldGhlciBhIHZhcmlhYmxl IChpZGVudGlmaWVkIGJ5IE9JRCkgaXMgdmlzaWJsZSBpbiB0aGUKKyAqCQljdXJyZW50IHNlYXJj aCBwYXRoLiBWaXNpYmxlIG1lYW5zICJ3b3VsZCBiZSBmb3VuZCBieSBzZWFyY2hpbmcKKyAqCQlm b3IgdGhlIHVucXVhbGlmaWVkIHZhcmlhYmxlIG5hbWUiLgorICovCitib29sCitWYXJpYWJsZUlz VmlzaWJsZShPaWQgdmFyaWQpCit7CisJcmV0dXJuIFZhcmlhYmxlSXNWaXNpYmxlRXh0KHZhcmlk LCBOVUxMKTsKK30KKworLyoKKyAqIFZhcmlhYmxlSXNWaXNpYmxlRXh0CisgKgkJQXMgYWJvdmUs IGJ1dCBpZiB0aGUgdmFyaWFibGUgaXNuJ3QgZm91bmQgYW5kIGlzX21pc3NpbmcgaXMgbm90IE5V TEwsCisgKgkJdGhlbiBzZXQgKmlzX21pc3NpbmcgPSB0cnVlIGFuZCByZXR1cm4gZmFsc2UsIGlu c3RlYWQgb2YgdGhyb3dpbmcKKyAqCQlhbiBlcnJvci4gKENhbGxlciBtdXN0IGluaXRpYWxpemUg KmlzX21pc3NpbmcgPSBmYWxzZS4pCisgKi8KK3N0YXRpYyBib29sCitWYXJpYWJsZUlzVmlzaWJs ZUV4dChPaWQgdmFyaWQsIGJvb2wgKmlzX21pc3NpbmcpCit7CisJSGVhcFR1cGxlCXZhcnR1cDsK KwlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07CisJT2lkCQkJdmFybmFtZXNwYWNlOworCWJvb2wJ CXZpc2libGU7CisKKwl2YXJ0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVj dElkR2V0RGF0dW0odmFyaWQpKTsKKwlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodmFydHVwKSkKKwl7 CisJCWlmIChpc19taXNzaW5nICE9IE5VTEwpCisJCXsKKwkJCSppc19taXNzaW5nID0gdHJ1ZTsK KwkJCXJldHVybiBmYWxzZTsKKwkJfQorCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFp bGVkIGZvciBzZXNzaW9uIHZhcmlhYmxlICV1IiwgdmFyaWQpOworCX0KKwl2YXJmb3JtID0gKEZv cm1fcGdfdmFyaWFibGUpIEdFVFNUUlVDVCh2YXJ0dXApOworCisJcmVjb21wdXRlTmFtZXNwYWNl UGF0aCgpOworCisJLyoKKwkgKiBRdWljayBjaGVjazogaWYgaXQgYWluJ3QgaW4gdGhlIHBhdGgg YXQgYWxsLCBpdCBhaW4ndCB2aXNpYmxlLiBXZQorCSAqIGRvbid0IGV4cGVjdCB1c2FnZSBvZiBz ZXNzaW9uIHZhcmlhYmxlcyBpbiB0aGUgc3lzdGVtIG5hbWVzcGFjZS4KKwkgKi8KKwl2YXJuYW1l c3BhY2UgPSB2YXJmb3JtLT52YXJuYW1lc3BhY2U7CisJaWYgKCFsaXN0X21lbWJlcl9vaWQoYWN0 aXZlU2VhcmNoUGF0aCwgdmFybmFtZXNwYWNlKSkKKwkJdmlzaWJsZSA9IGZhbHNlOworCWVsc2UK Kwl7CisJCS8qCisJCSAqIElmIGl0IGlzIGluIHRoZSBwYXRoLCBpdCBtaWdodCBzdGlsbCBub3Qg YmUgdmlzaWJsZTsgaXQgY291bGQgYmUKKwkJICogaGlkZGVuIGJ5IGFub3RoZXIgdmFyaWFibGUg b2YgdGhlIHNhbWUgbmFtZSBlYXJsaWVyIGluIHRoZSBwYXRoLiBTbworCQkgKiB3ZSBtdXN0IGRv IGEgc2xvdyBjaGVjayBmb3IgY29uZmxpY3RpbmcgcmVsYXRpb25zLgorCQkgKi8KKwkJY2hhcgkg ICAqdmFybmFtZSA9IE5hbWVTdHIodmFyZm9ybS0+dmFybmFtZSk7CisKKwkJdmlzaWJsZSA9IGZh bHNlOworCQlmb3JlYWNoX29pZChuYW1lc3BhY2VJZCwgYWN0aXZlU2VhcmNoUGF0aCkKKwkJewor CQkJaWYgKG5hbWVzcGFjZUlkID09IHZhcm5hbWVzcGFjZSkKKwkJCXsKKwkJCQkvKiBmb3VuZCBp dCBmaXJzdCBpbiBwYXRoICovCisJCQkJdmlzaWJsZSA9IHRydWU7CisJCQkJYnJlYWs7CisJCQl9 CisJCQlpZiAoT2lkSXNWYWxpZChnZXRfdmFybmFtZV92YXJpZCh2YXJuYW1lLCBuYW1lc3BhY2VJ ZCkpKQorCQkJeworCQkJCS8qIGZvdW5kIHNvbWV0aGluZyBlbHNlIGZpcnN0IGluIHBhdGggKi8K KwkJCQlicmVhazsKKwkJCX0KKwkJfQorCX0KKworCVJlbGVhc2VTeXNDYWNoZSh2YXJ0dXApOwor CisJcmV0dXJuIHZpc2libGU7Cit9CiAKIC8qCiAgKiBUeXBlbmFtZUdldFR5cGlkCkBAIC0zMjg5 LDYgKzMzNjksMTMzIEBAIFRTQ29uZmlnSXNWaXNpYmxlRXh0KE9pZCBjZmdpZCwgYm9vbCAqaXNf bWlzc2luZykKIAlyZXR1cm4gdmlzaWJsZTsKIH0KIAorLyoKKyAqIFJldHVybnMgb2lkIG9mIHNl c3Npb24gdmFyaWFibGUgc3BlY2lmaWVkIGJ5IHBvc3NpYmx5IHF1YWxpZmllZCBpZGVudGlmaWVy LgorICoKKyAqIElmIG5vdCBmb3VuZCwgcmV0dXJucyBJbnZhbGlkT2lkIGlmIG1pc3Npbmdfb2ss IGVsc2UgdGhyb3dzIGVycm9yLgorICovCitPaWQKK0xvb2t1cFZhcmlhYmxlKGNvbnN0IGNoYXIg Km5zcG5hbWUsCisJCQkgICBjb25zdCBjaGFyICp2YXJuYW1lLAorCQkJICAgYm9vbCBtaXNzaW5n X29rKQoreworCU9pZAkJCXZhcm9pZCA9IEludmFsaWRPaWQ7CisKKwlpZiAobnNwbmFtZSkKKwl7 CisJCU9pZCBuYW1lc3BhY2VJZCA9IExvb2t1cEV4cGxpY2l0TmFtZXNwYWNlKG5zcG5hbWUsIG1p c3Npbmdfb2spOworCisJCS8qIGlmIG5zcG5hbWUgaXMgYSBrbm93biBuYW1lc3BhY2UsIHRoZSB2 YXJpYWJsZSBtdXN0IGJlIHRoZXJlICovCisJCWlmIChPaWRJc1ZhbGlkKG5hbWVzcGFjZUlkKSkK KwkJeworCQkJdmFyb2lkID0gR2V0U3lzQ2FjaGVPaWQyKFZBUklBQkxFTkFNRU5TUCwgQW51bV9w Z192YXJpYWJsZV9vaWQsCisJCQkJCQkJCQkgUG9pbnRlckdldERhdHVtKHZhcm5hbWUpLAorCQkJ CQkJCQkJIE9iamVjdElkR2V0RGF0dW0obmFtZXNwYWNlSWQpKTsKKwkJfQorCX0KKwllbHNlCisJ eworCQkvKiBpdGVyYXRlIG92ZXIgdGhlIHNjaGVtYXMgb24gdGhlIHNlYXJjaF9wYXRoICovCisJ CXJlY29tcHV0ZU5hbWVzcGFjZVBhdGgoKTsKKworCQlmb3JlYWNoX29pZChuYW1lc3BhY2VJZCwg YWN0aXZlU2VhcmNoUGF0aCkKKwkJeworCQkJdmFyb2lkID0gR2V0U3lzQ2FjaGVPaWQyKFZBUklB QkxFTkFNRU5TUCwgQW51bV9wZ192YXJpYWJsZV9vaWQsCisJCQkJCQkJCQkgUG9pbnRlckdldERh dHVtKHZhcm5hbWUpLAorCQkJCQkJCQkJIE9iamVjdElkR2V0RGF0dW0obmFtZXNwYWNlSWQpKTsK KworCQkJaWYgKE9pZElzVmFsaWQodmFyb2lkKSkKKwkJCQlicmVhazsKKwkJfQorCX0KKworCWlm ICghT2lkSXNWYWxpZCh2YXJvaWQpICYmICFtaXNzaW5nX29rKQorCXsKKwkJaWYgKG5zcG5hbWUp CisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RFX1VOREVGSU5FRF9PQkpF Q1QpLAorCQkJCQkgZXJybXNnKCJzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiBkb2VzIG5vdCBl eGlzdCIsCisJCQkJCQkJbnNwbmFtZSwgdmFybmFtZSkpKTsKKwkJZWxzZQorCQkJZXJlcG9ydChF UlJPUiwKKwkJCQkJKGVycmNvZGUoRVJSQ09ERV9VTkRFRklORURfT0JKRUNUKSwKKwkJCQkJIGVy cm1zZygic2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgZG9lcyBub3QgZXhpc3QiLAorCQkJCQkJCXZh cm5hbWUpKSk7CisJfQorCisJcmV0dXJuIHZhcm9pZDsKK30KKworLyoKKyAqIFJldHVybnMgb2lk IG9mIHNlc3Npb24gdmFyaWFibGUgc3BlY2lmaWVkIGJ5IHBvc3NpYmx5IHF1YWxpZmllZCBpZGVu dGlmaWVyCisgKgorICogSWYgbm90IGZvdW5kLCByZXR1cm5zIEludmFsaWRPaWQgaWYgbWlzc2lu Z19vaywgZWxzZSB0aHJvd3MgZXJyb3IuCisgKi8KK09pZAorTG9va3VwVmFyaWFibGVGcm9tTmFt ZUxpc3QoTGlzdCAqbmFtZXMsCisJCQkJCQkgICBib29sIG1pc3Npbmdfb2spCit7CisJY2hhcgkg ICAqY2F0bmFtZSA9IE5VTEw7CisJY2hhcgkgICAqbnNwbmFtZSA9IE5VTEw7CisJY2hhcgkgICAq dmFybmFtZSA9IE5VTEw7CisKKwlzd2l0Y2ggKGxpc3RfbGVuZ3RoKG5hbWVzKSkKKwl7CisJCWNh c2UgMToKKwkJCXZhcm5hbWUgPSBzdHJWYWwobGluaXRpYWwobmFtZXMpKTsKKwkJCWJyZWFrOwor CQljYXNlIDI6CisJCQluc3BuYW1lID0gc3RyVmFsKGxpbml0aWFsKG5hbWVzKSk7CisJCQl2YXJu YW1lID0gc3RyVmFsKGxzZWNvbmQobmFtZXMpKTsKKwkJCWJyZWFrOworCQljYXNlIDM6CisJCQlj YXRuYW1lID0gc3RyVmFsKGxpbml0aWFsKG5hbWVzKSk7CisJCQluc3BuYW1lID0gc3RyVmFsKGxz ZWNvbmQobmFtZXMpKTsKKwkJCXZhcm5hbWUgPSBzdHJWYWwobHRoaXJkKG5hbWVzKSk7CisKKwkJ CS8qIGNoZWNrIGNhdGFsb2cgbmFtZSAqLworCQkJaWYgKHN0cmNtcChjYXRuYW1lLCBnZXRfZGF0 YWJhc2VfbmFtZShNeURhdGFiYXNlSWQpKSAhPSAwKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJ CQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkgZXJybXNn KCJjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6ICVzIiwKKwkJ CQkJCQkJTmFtZUxpc3RUb1N0cmluZyhuYW1lcykpKSk7CisJCQlicmVhazsKKwkJZGVmYXVsdDoK KwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNPREVfU1lOVEFYX0VSUk9SKSwK KwkJCQkJIGVycm1zZygiaW1wcm9wZXIgc2Vzc2lvbiB2YXJpYWJsZSBuYW1lICh0b28gbWFueSBk b3R0ZWQgbmFtZXMpOiAlcyIsCisJCQkJCQkJTmFtZUxpc3RUb1N0cmluZyhuYW1lcykpKSk7CisJ CQlicmVhazsKKwl9CisKKwlyZXR1cm4gTG9va3VwVmFyaWFibGUobnNwbmFtZSwgdmFybmFtZSwg bWlzc2luZ19vayk7Cit9CisKKy8qCisgKiBUaGUgaW5wdXQgbGlzdCBjb250YWlucyBuYW1lcyB3 aXRoIGluZGlyZWN0aW9uIGV4cHJlc3Npb25zIHVzZWQgYXMgdGhlIGxlZnQKKyAqIHBhcnQgb2Yg TEVUIHN0YXRlbWVudC4gVGhlIGZvbGxvd2luZyByb3V0aW5lIHJldHVybnMgYSBuZXcgbGlzdCB3 aXRoIG9ubHkKKyAqIGluaXRpYWwgc3RyaW5ncyAobmFtZXMpIC0gd2l0aG91dCBpbmRpcmVjdGlv biBleHByZXNzaW9ucy4KKyAqLworTGlzdCAqCitOYW1lc0Zyb21MaXN0KExpc3QgKm5hbWVzKQor eworCUxpc3RDZWxsICAgKmw7CisJTGlzdAkgICAqcmVzdWx0ID0gTklMOworCisJZm9yZWFjaChs LCBuYW1lcykKKwl7CisJCU5vZGUJICAgKm4gPSBsZmlyc3QobCk7CisKKwkJaWYgKElzQShuLCBT dHJpbmcpKQorCQl7CisJCQlyZXN1bHQgPSBsYXBwZW5kKHJlc3VsdCwgbik7CisJCX0KKwkJZWxz ZQorCQkJYnJlYWs7CisJfQorCisJcmV0dXJuIHJlc3VsdDsKK30KIAogLyoKICAqIERlY29uc3Ry dWN0UXVhbGlmaWVkTmFtZQpAQCAtNTA4NSwzICs1MjkyLDE3IEBAIHBnX2lzX290aGVyX3RlbXBf c2NoZW1hKFBHX0ZVTkNUSU9OX0FSR1MpCiAKIAlQR19SRVRVUk5fQk9PTChpc090aGVyVGVtcE5h bWVzcGFjZShvaWQpKTsKIH0KKworRGF0dW0KK3BnX3ZhcmlhYmxlX2lzX3Zpc2libGUoUEdfRlVO Q1RJT05fQVJHUykKK3sKKwlPaWQJCQlvaWQgPSBQR19HRVRBUkdfT0lEKDApOworCWJvb2wJCXJl c3VsdDsKKwlib29sCQlpc19taXNzaW5nID0gZmFsc2U7CisKKwlyZXN1bHQgPSBWYXJpYWJsZUlz VmlzaWJsZUV4dChvaWQsICZpc19taXNzaW5nKTsKKworCWlmIChpc19taXNzaW5nKQorCQlQR19S RVRVUk5fTlVMTCgpOworCVBHX1JFVFVSTl9CT09MKHJlc3VsdCk7Cit9CmRpZmYgLS1naXQgYS9z cmMvYmFja2VuZC9jYXRhbG9nL29iamVjdGFkZHJlc3MuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv b2JqZWN0YWRkcmVzcy5jCmluZGV4IGQ4ZWI4ZDNkZWEuLjRhNDY0ZGZlYTcgMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvb2JqZWN0YWRkcmVzcy5jCisrKyBiL3NyYy9iYWNrZW5kL2Nh dGFsb2cvb2JqZWN0YWRkcmVzcy5jCkBAIC02Miw2ICs2Miw3IEBACiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ190c190ZW1wbGF0ZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHlwZS5oIgogI2luY2x1 ZGUgImNhdGFsb2cvcGdfdXNlcl9tYXBwaW5nLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJp YWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMuaCIKICNpbmNsdWRlICJjb21t YW5kcy9kZWZyZW0uaCIKICNpbmNsdWRlICJjb21tYW5kcy9ldmVudF90cmlnZ2VyLmgiCkBAIC02 MzYsNiArNjM3LDIwIEBAIHN0YXRpYyBjb25zdCBPYmplY3RQcm9wZXJ0eVR5cGUgT2JqZWN0UHJv cGVydHlbXSA9CiAJCU9CSkVDVF9VU0VSX01BUFBJTkcsCiAJCWZhbHNlCiAJfSwKKwl7CisJCSJz ZXNzaW9uIHZhcmlhYmxlIiwKKwkJVmFyaWFibGVSZWxhdGlvbklkLAorCQlWYXJpYWJsZU9pZElu ZGV4SWQsCisJCVZBUklBQkxFT0lELAorCQlWQVJJQUJMRU5BTUVOU1AsCisJCUFudW1fcGdfdmFy aWFibGVfb2lkLAorCQlBbnVtX3BnX3ZhcmlhYmxlX3Zhcm5hbWUsCisJCUFudW1fcGdfdmFyaWFi bGVfdmFybmFtZXNwYWNlLAorCQlBbnVtX3BnX3ZhcmlhYmxlX3Zhcm93bmVyLAorCQlBbnVtX3Bn X3ZhcmlhYmxlX3ZhcmFjbCwKKwkJT0JKRUNUX1ZBUklBQkxFLAorCQl0cnVlCisJfQogfTsKIAog LyoKQEAgLTgzMSw2ICs4NDYsOSBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IG9iamVjdF90eXBlX21h cAogCX0sCiAJewogCQkic3RhdGlzdGljcyBvYmplY3QiLCBPQkpFQ1RfU1RBVElTVElDX0VYVAor CX0sCisJeworCQkic2Vzc2lvbiB2YXJpYWJsZSIsIE9CSkVDVF9WQVJJQUJMRQogCX0KIH07CiAK QEAgLTg1Niw2ICs4NzQsNyBAQCBzdGF0aWMgT2JqZWN0QWRkcmVzcyBnZXRfb2JqZWN0X2FkZHJl c3NfYXR0cmRlZihPYmplY3RUeXBlIG9ianR5cGUsCiAJCQkJCQkJCQkJCQlib29sIG1pc3Npbmdf b2spOwogc3RhdGljIE9iamVjdEFkZHJlc3MgZ2V0X29iamVjdF9hZGRyZXNzX3R5cGUoT2JqZWN0 VHlwZSBvYmp0eXBlLAogCQkJCQkJCQkJCQkgVHlwZU5hbWUgKnR5cGVuYW1lLCBib29sIG1pc3Np bmdfb2spOworc3RhdGljIE9iamVjdEFkZHJlc3MgZ2V0X29iamVjdF9hZGRyZXNzX3ZhcmlhYmxl KExpc3QgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29rKTsKIHN0YXRpYyBPYmplY3RBZGRyZXNzIGdl dF9vYmplY3RfYWRkcmVzc19vcGNmKE9iamVjdFR5cGUgb2JqdHlwZSwgTGlzdCAqb2JqZWN0LAog CQkJCQkJCQkJCQkgYm9vbCBtaXNzaW5nX29rKTsKIHN0YXRpYyBPYmplY3RBZGRyZXNzIGdldF9v YmplY3RfYWRkcmVzc19vcGZfbWVtYmVyKE9iamVjdFR5cGUgb2JqdHlwZSwKQEAgLTExMjcsNiAr MTE0Niw5IEBAIGdldF9vYmplY3RfYWRkcmVzcyhPYmplY3RUeXBlIG9ianR5cGUsIE5vZGUgKm9i amVjdCwKIAkJCQkJCQkJCQkJCQkJCSBtaXNzaW5nX29rKTsKIAkJCQlhZGRyZXNzLm9iamVjdFN1 YklkID0gMDsKIAkJCQlicmVhazsKKwkJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJCWFkZHJl c3MgPSBnZXRfb2JqZWN0X2FkZHJlc3NfdmFyaWFibGUoY2FzdE5vZGUoTGlzdCwgb2JqZWN0KSwg bWlzc2luZ19vayk7CisJCQkJYnJlYWs7CiAJCQkJLyogbm8gZGVmYXVsdCwgdG8gbGV0IGNvbXBp bGVyIHdhcm4gYWJvdXQgbWlzc2luZyBjYXNlICovCiAJCX0KIApAQCAtMjAwNSwxNiArMjAyNywy MCBAQCBnZXRfb2JqZWN0X2FkZHJlc3NfZGVmYWNsKExpc3QgKm9iamVjdCwgYm9vbCBtaXNzaW5n X29rKQogCQljYXNlIERFRkFDTE9CSl9OQU1FU1BBQ0U6CiAJCQlvYmp0eXBlX3N0ciA9ICJzY2hl bWFzIjsKIAkJCWJyZWFrOworCQljYXNlIERFRkFDTE9CSl9WQVJJQUJMRToKKwkJCW9ianR5cGVf c3RyID0gInZhcmlhYmxlcyI7CisJCQlicmVhazsKIAkJZGVmYXVsdDoKIAkJCWVyZXBvcnQoRVJS T1IsCiAJCQkJCShlcnJjb2RlKEVSUkNPREVfSU5WQUxJRF9QQVJBTUVURVJfVkFMVUUpLAogCQkJ CQkgZXJybXNnKCJ1bnJlY29nbml6ZWQgZGVmYXVsdCBBQ0wgb2JqZWN0IHR5cGUgXCIlY1wiIiwg b2JqdHlwZSksCi0JCQkJCSBlcnJoaW50KCJWYWxpZCBvYmplY3QgdHlwZXMgYXJlIFwiJWNcIiwg XCIlY1wiLCBcIiVjXCIsIFwiJWNcIiwgXCIlY1wiLiIsCisJCQkJCSBlcnJoaW50KCJWYWxpZCBv YmplY3QgdHlwZXMgYXJlIFwiJWNcIiwgXCIlY1wiLCBcIiVjXCIsIFwiJWNcIiwgXCIlY1wiLCBc IiVjXCIuIiwKIAkJCQkJCQkgREVGQUNMT0JKX1JFTEFUSU9OLAogCQkJCQkJCSBERUZBQ0xPQkpf U0VRVUVOQ0UsCiAJCQkJCQkJIERFRkFDTE9CSl9GVU5DVElPTiwKIAkJCQkJCQkgREVGQUNMT0JK X1RZUEUsCi0JCQkJCQkJIERFRkFDTE9CSl9OQU1FU1BBQ0UpKSk7CisJCQkJCQkJIERFRkFDTE9C Sl9OQU1FU1BBQ0UsCisJCQkJCQkJIERFRkFDTE9CSl9WQVJJQUJMRSkpKTsKIAl9CiAKIAkvKgpA QCAtMjA5OCw2ICsyMTI0LDI0IEBAIHRleHRhcnJheV90b19zdHJ2YWx1ZWxpc3QoQXJyYXlUeXBl ICphcnIpCiAJcmV0dXJuIGxpc3Q7CiB9CiAKKy8qCisgKiBGaW5kIHRoZSBPYmplY3RBZGRyZXNz IGZvciBhIHNlc3Npb24gdmFyaWFibGUKKyAqLworc3RhdGljIE9iamVjdEFkZHJlc3MKK2dldF9v YmplY3RfYWRkcmVzc192YXJpYWJsZShMaXN0ICpvYmplY3QsIGJvb2wgbWlzc2luZ19vaykKK3sK KwlPYmplY3RBZGRyZXNzIGFkZHJlc3M7CisJY2hhcgkgICAqbnNwbmFtZSA9IE5VTEw7CisJY2hh cgkgICAqdmFybmFtZSA9IE5VTEw7CisKKwlPYmplY3RBZGRyZXNzU2V0KGFkZHJlc3MsIFZhcmlh YmxlUmVsYXRpb25JZCwgSW52YWxpZE9pZCk7CisKKwlEZWNvbnN0cnVjdFF1YWxpZmllZE5hbWUo b2JqZWN0LCAmbnNwbmFtZSwgJnZhcm5hbWUpOworCWFkZHJlc3Mub2JqZWN0SWQgPSBMb29rdXBW YXJpYWJsZShuc3BuYW1lLCB2YXJuYW1lLCBtaXNzaW5nX29rKTsKKworCXJldHVybiBhZGRyZXNz OworfQorCiAvKgogICogU1FMLWNhbGxhYmxlIHZlcnNpb24gb2YgZ2V0X29iamVjdF9hZGRyZXNz CiAgKi8KQEAgLTIyOTIsNiArMjMzNiw3IEBAIHBnX2dldF9vYmplY3RfYWRkcmVzcyhQR19GVU5D VElPTl9BUkdTKQogCQljYXNlIE9CSkVDVF9UQUJDT05TVFJBSU5UOgogCQljYXNlIE9CSkVDVF9P UENMQVNTOgogCQljYXNlIE9CSkVDVF9PUEZBTUlMWToKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6 CiAJCQlvYmpub2RlID0gKE5vZGUgKikgbmFtZTsKIAkJCWJyZWFrOwogCQljYXNlIE9CSkVDVF9B Q0NFU1NfTUVUSE9EOgpAQCAtMjQ2Myw2ICsyNTA4LDcgQEAgY2hlY2tfb2JqZWN0X293bmVyc2hp cChPaWQgcm9sZWlkLCBPYmplY3RUeXBlIG9ianR5cGUsIE9iamVjdEFkZHJlc3MgYWRkcmVzcywK IAkJY2FzZSBPQkpFQ1RfU1RBVElTVElDX0VYVDoKIAkJY2FzZSBPQkpFQ1RfVFNESUNUSU9OQVJZ OgogCQljYXNlIE9CSkVDVF9UU0NPTkZJR1VSQVRJT046CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxF OgogCQkJaWYgKCFvYmplY3Rfb3duZXJjaGVjayhhZGRyZXNzLmNsYXNzSWQsIGFkZHJlc3Mub2Jq ZWN0SWQsIHJvbGVpZCkpCiAJCQkJYWNsY2hlY2tfZXJyb3IoQUNMQ0hFQ0tfTk9UX09XTkVSLCBv Ymp0eXBlLAogCQkJCQkJCSAgIE5hbWVMaXN0VG9TdHJpbmcoY2FzdE5vZGUoTGlzdCwgb2JqZWN0 KSkpOwpAQCAtMzQ5Miw2ICszNTM4LDMyIEBAIGdldE9iamVjdERlc2NyaXB0aW9uKGNvbnN0IE9i amVjdEFkZHJlc3MgKm9iamVjdCwgYm9vbCBtaXNzaW5nX29rKQogCQkJCWJyZWFrOwogCQkJfQog CisJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJeworCQkJCWNoYXIJICAgKm5zcG5hbWU7 CisJCQkJSGVhcFR1cGxlCXR1cDsKKwkJCQlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07CisKKwkJ CQl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0ob2Jq ZWN0LT5vYmplY3RJZCkpOworCQkJCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0dXApKQorCQkJCQll bG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Igc2Vzc2lvbiB2YXJpYWJsZSAldSIs CisJCQkJCQkgb2JqZWN0LT5vYmplY3RJZCk7CisKKwkJCQl2YXJmb3JtID0gKEZvcm1fcGdfdmFy aWFibGUpIEdFVFNUUlVDVCh0dXApOworCisJCQkJaWYgKFZhcmlhYmxlSXNWaXNpYmxlKG9iamVj dC0+b2JqZWN0SWQpKQorCQkJCQluc3BuYW1lID0gTlVMTDsKKwkJCQllbHNlCisJCQkJCW5zcG5h bWUgPSBnZXRfbmFtZXNwYWNlX25hbWUodmFyZm9ybS0+dmFybmFtZXNwYWNlKTsKKworCQkJCWFw cGVuZFN0cmluZ0luZm8oJmJ1ZmZlciwgXygic2Vzc2lvbiB2YXJpYWJsZSAlcyIpLAorCQkJCQkJ CQkgcXVvdGVfcXVhbGlmaWVkX2lkZW50aWZpZXIobnNwbmFtZSwKKwkJCQkJCQkJCQkJCQkJCU5h bWVTdHIodmFyZm9ybS0+dmFybmFtZSkpKTsKKworCQkJCVJlbGVhc2VTeXNDYWNoZSh0dXApOwor CQkJCWJyZWFrOworCQkJfQorCiAJCWNhc2UgVFNQYXJzZXJSZWxhdGlvbklkOgogCQkJewogCQkJ CUhlYXBUdXBsZQl0dXA7CkBAIC0zODQ0LDYgKzM5MTYsMTYgQEAgZ2V0T2JqZWN0RGVzY3JpcHRp b24oY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0LCBib29sIG1pc3Npbmdfb2spCiAJCQkJCQkJ CQkJIF8oImRlZmF1bHQgcHJpdmlsZWdlcyBvbiBuZXcgc2NoZW1hcyBiZWxvbmdpbmcgdG8gcm9s ZSAlcyIpLAogCQkJCQkJCQkJCSByb2xlbmFtZSk7CiAJCQkJCQlicmVhazsKKwkJCQkJY2FzZSBE RUZBQ0xPQkpfVkFSSUFCTEU6CisJCQkJCQlpZiAobnNwbmFtZSkKKwkJCQkJCQlhcHBlbmRTdHJp bmdJbmZvKCZidWZmZXIsCisJCQkJCQkJCQkJCSBfKCJkZWZhdWx0IHByaXZpbGVnZXMgb24gbmV3 IHNlc3Npb24gdmFyaWFibGVzIGJlbG9uZ2luZyB0byByb2xlICVzIGluIHNjaGVtYSAlcyIpLAor CQkJCQkJCQkJCQkgcm9sZW5hbWUsIG5zcG5hbWUpOworCQkJCQkJZWxzZQorCQkJCQkJCWFwcGVu ZFN0cmluZ0luZm8oJmJ1ZmZlciwKKwkJCQkJCQkJCQkJIF8oImRlZmF1bHQgcHJpdmlsZWdlcyBv biBuZXcgc2Vzc2lvbiB2YXJpYWJsZXMgYmVsb25naW5nIHRvIHJvbGUgJXMiKSwKKwkJCQkJCQkJ CQkJIHJvbGVuYW1lKTsKKwkJCQkJCWJyZWFrOwogCQkJCQlkZWZhdWx0OgogCQkJCQkJLyogc2hv dWxkbid0IGdldCBoZXJlICovCiAJCQkJCQlpZiAobnNwbmFtZSkKQEAgLTQ2NjAsNiArNDc0Miwx MCBAQCBnZXRPYmplY3RUeXBlRGVzY3JpcHRpb24oY29uc3QgT2JqZWN0QWRkcmVzcyAqb2JqZWN0 LCBib29sIG1pc3Npbmdfb2spCiAJCQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsICJ0 cmFuc2Zvcm0iKTsKIAkJCWJyZWFrOwogCisJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklkOgorCQkJ YXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLCAic2Vzc2lvbiB2YXJpYWJsZSIpOworCQkJ YnJlYWs7CisKIAkJZGVmYXVsdDoKIAkJCWVsb2coRVJST1IsICJ1bnN1cHBvcnRlZCBvYmplY3Qg Y2xhc3M6ICV1Iiwgb2JqZWN0LT5jbGFzc0lkKTsKIAl9CkBAIC01NzY2LDYgKzU4NTIsMTAgQEAg Z2V0T2JqZWN0SWRlbnRpdHlQYXJ0cyhjb25zdCBPYmplY3RBZGRyZXNzICpvYmplY3QsCiAJCQkJ CQlhcHBlbmRTdHJpbmdJbmZvU3RyaW5nKCZidWZmZXIsCiAJCQkJCQkJCQkJCSAgICIgb24gc2No ZW1hcyIpOwogCQkJCQkJYnJlYWs7CisJCQkJCWNhc2UgREVGQUNMT0JKX1ZBUklBQkxFOgorCQkJ CQkJYXBwZW5kU3RyaW5nSW5mb1N0cmluZygmYnVmZmVyLAorCQkJCQkJCQkJCQkgICAiIG9uIHNl c3Npb24gdmFyaWFibGVzIik7CisJCQkJCQlicmVhazsKIAkJCQl9CiAKIAkJCQlpZiAob2JqbmFt ZSkKQEAgLTYwMDYsNiArNjA5NiwzMyBAQCBnZXRPYmplY3RJZGVudGl0eVBhcnRzKGNvbnN0IE9i amVjdEFkZHJlc3MgKm9iamVjdCwKIAkJCX0KIAkJCWJyZWFrOwogCisJCWNhc2UgVmFyaWFibGVS ZWxhdGlvbklkOgorCQkJeworCQkJCWNoYXIJICAgKnNjaGVtYTsKKwkJCQljaGFyCSAgICp2YXJu YW1lOworCQkJCUhlYXBUdXBsZQl0dXA7CisJCQkJRm9ybV9wZ192YXJpYWJsZSB2YXJmb3JtOwor CisJCQkJdHVwID0gU2VhcmNoU3lzQ2FjaGUxKFZBUklBQkxFT0lELCBPYmplY3RJZEdldERhdHVt KG9iamVjdC0+b2JqZWN0SWQpKTsKKwkJCQlpZiAoIUhlYXBUdXBsZUlzVmFsaWQodHVwKSkKKwkJ CQkJZWxvZyhFUlJPUiwgImNhY2hlIGxvb2t1cCBmYWlsZWQgZm9yIHNlc3Npb24gdmFyaWFibGUg JXUiLAorCQkJCQkJIG9iamVjdC0+b2JqZWN0SWQpOworCisJCQkJdmFyZm9ybSA9IChGb3JtX3Bn X3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKTsKKworCQkJCXNjaGVtYSA9IGdldF9uYW1lc3BhY2Vf bmFtZV9vcl90ZW1wKHZhcmZvcm0tPnZhcm5hbWVzcGFjZSk7CisJCQkJdmFybmFtZSA9IE5hbWVT dHIodmFyZm9ybS0+dmFybmFtZSk7CisKKwkJCQlhcHBlbmRTdHJpbmdJbmZvKCZidWZmZXIsICIl cyIsCisJCQkJCQkJCSBxdW90ZV9xdWFsaWZpZWRfaWRlbnRpZmllcihzY2hlbWEsIHZhcm5hbWUp KTsKKworCQkJCWlmIChvYmpuYW1lKQorCQkJCQkqb2JqbmFtZSA9IGxpc3RfbWFrZTIoc2NoZW1h LCBwc3RyZHVwKHZhcm5hbWUpKTsKKworCQkJCVJlbGVhc2VTeXNDYWNoZSh0dXApOworCQkJCWJy ZWFrOworCQkJfQorCiAJCWRlZmF1bHQ6CiAJCQllbG9nKEVSUk9SLCAidW5zdXBwb3J0ZWQgb2Jq ZWN0IGNsYXNzOiAldSIsIG9iamVjdC0+Y2xhc3NJZCk7CiAJfQpkaWZmIC0tZ2l0IGEvc3JjL2Jh Y2tlbmQvY2F0YWxvZy9wZ19zaGRlcGVuZC5jIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ19zaGRl cGVuZC5jCmluZGV4IDUzNjE5MTI4NGUuLmM2ZmQxZmEwNzQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNr ZW5kL2NhdGFsb2cvcGdfc2hkZXBlbmQuYworKysgYi9zcmMvYmFja2VuZC9jYXRhbG9nL3BnX3No ZGVwZW5kLmMKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RzX2RpY3Qu aCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3Vz ZXJfbWFwcGluZy5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNpbmNsdWRl ICJjb21tYW5kcy9hbHRlci5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMuaCIKICNp bmNsdWRlICJjb21tYW5kcy9kZWZyZW0uaCIKQEAgLTE3MTQsNiArMTcxNSw3IEBAIHNoZGVwUmVh c3NpZ25Pd25lZF9Pd25lcihGb3JtX3BnX3NoZGVwZW5kIHNkZXBGb3JtLCBPaWQgbmV3cm9sZSkK IAkJY2FzZSBEYXRhYmFzZVJlbGF0aW9uSWQ6CiAJCWNhc2UgVFNDb25maWdSZWxhdGlvbklkOgog CQljYXNlIFRTRGljdGlvbmFyeVJlbGF0aW9uSWQ6CisJCWNhc2UgVmFyaWFibGVSZWxhdGlvbklk OgogCQkJQWx0ZXJPYmplY3RPd25lcl9pbnRlcm5hbChzZGVwRm9ybS0+Y2xhc3NpZCwKIAkJCQkJ CQkJCSAgc2RlcEZvcm0tPm9iamlkLAogCQkJCQkJCQkJICBuZXdyb2xlKTsKZGlmZiAtLWdpdCBh L3NyYy9iYWNrZW5kL2NhdGFsb2cvcGdfdmFyaWFibGUuYyBiL3NyYy9iYWNrZW5kL2NhdGFsb2cv cGdfdmFyaWFibGUuYwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4yOWQ5 NjdhMmQ1Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL2JhY2tlbmQvY2F0YWxvZy9wZ192YXJpYWJs ZS5jCkBAIC0wLDAgKzEsMjUxIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBwZ192YXJp YWJsZS5jCisgKgkJc2Vzc2lvbiB2YXJpYWJsZXMKKyAqCisgKiBQb3J0aW9ucyBDb3B5cmlnaHQg KGMpIDE5OTYtMjAyNSwgUG9zdGdyZVNRTCBHbG9iYWwgRGV2ZWxvcG1lbnQgR3JvdXAKKyAqIFBv cnRpb25zIENvcHlyaWdodCAoYykgMTk5NCwgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBD YWxpZm9ybmlhCisgKgorICogSURFTlRJRklDQVRJT04KKyAqCQlzcmMvYmFja2VuZC9jYXRhbG9n L3BnX3ZhcmlhYmxlLmMKKyAqCisgKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLworCisjaW5jbHVkZSAi cG9zdGdyZXMuaCIKKworI2luY2x1ZGUgImFjY2Vzcy9oZWFwYW0uaCIKKyNpbmNsdWRlICJjYXRh bG9nL2RlcGVuZGVuY3kuaCIKKyNpbmNsdWRlICJjYXRhbG9nL2luZGV4aW5nLmgiCisjaW5jbHVk ZSAiY2F0YWxvZy9uYW1lc3BhY2UuaCIKKyNpbmNsdWRlICJjYXRhbG9nL29iamVjdGFjY2Vzcy5o IgorI2luY2x1ZGUgImNhdGFsb2cvcGdfY29sbGF0aW9uLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9w Z19uYW1lc3BhY2UuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCisjaW5jbHVk ZSAibWlzY2FkbWluLmgiCisjaW5jbHVkZSAicGFyc2VyL3BhcnNlX3R5cGUuaCIKKyNpbmNsdWRl ICJ1dGlscy9idWlsdGlucy5oIgorI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgorI2luY2x1 ZGUgInV0aWxzL3N5c2NhY2hlLmgiCisKK3N0YXRpYyBPYmplY3RBZGRyZXNzIGNyZWF0ZV92YXJp YWJsZShjb25zdCBjaGFyICp2YXJOYW1lLAorCQkJCQkJCQkJIE9pZCB2YXJOYW1lc3BhY2UsCisJ CQkJCQkJCQkgT2lkIHZhclR5cGUsCisJCQkJCQkJCQkgaW50MzIgdmFyVHlwbW9kLAorCQkJCQkJ CQkJIE9pZCB2YXJPd25lciwKKwkJCQkJCQkJCSBPaWQgdmFyQ29sbGF0aW9uLAorCQkJCQkJCQkJ IGJvb2wgaWZfbm90X2V4aXN0cyk7CisKKworLyoKKyAqIENyZWF0ZXMgZW50cnkgaW4gcGdfdmFy aWFibGUgdGFibGUKKyAqLworc3RhdGljIE9iamVjdEFkZHJlc3MKK2NyZWF0ZV92YXJpYWJsZShj b25zdCBjaGFyICp2YXJOYW1lLAorCQkJCU9pZCB2YXJOYW1lc3BhY2UsCisJCQkJT2lkIHZhclR5 cGUsCisJCQkJaW50MzIgdmFyVHlwbW9kLAorCQkJCU9pZCB2YXJPd25lciwKKwkJCQlPaWQgdmFy Q29sbGF0aW9uLAorCQkJCWJvb2wgaWZfbm90X2V4aXN0cykKK3sKKwlBY2wJCSAgICp2YXJhY2w7 CisJTmFtZURhdGEJdmFybmFtZTsKKwlib29sCQludWxsc1tOYXR0c19wZ192YXJpYWJsZV07CisJ RGF0dW0JCXZhbHVlc1tOYXR0c19wZ192YXJpYWJsZV07CisJUmVsYXRpb24JcmVsOworCUhlYXBU dXBsZQl0dXA7CisJVHVwbGVEZXNjCXR1cGRlc2M7CisJT2JqZWN0QWRkcmVzcyBteXNlbGYsCisJ CQkJcmVmZXJlbmNlZDsKKwlPYmplY3RBZGRyZXNzZXMgKmFkZHJzOworCU9pZAkJCXZhcmlkOwor CisJQXNzZXJ0KHZhck5hbWUpOworCUFzc2VydChPaWRJc1ZhbGlkKHZhck5hbWVzcGFjZSkpOwor CUFzc2VydChPaWRJc1ZhbGlkKHZhclR5cGUpKTsKKwlBc3NlcnQoT2lkSXNWYWxpZCh2YXJPd25l cikpOworCisJcmVsID0gdGFibGVfb3BlbihWYXJpYWJsZVJlbGF0aW9uSWQsIFJvd0V4Y2x1c2l2 ZUxvY2spOworCisJLyoKKwkgKiBDaGVjayBmb3IgZHVwbGljYXRlcy4gTm90ZSB0aGF0IHRoaXMg ZG9lcyBub3QgcmVhbGx5IHByZXZlbnQKKwkgKiBkdXBsaWNhdGVzLCBpdCdzIGhlcmUganVzdCB0 byBwcm92aWRlIG5pY2VyIGVycm9yIG1lc3NhZ2UgaW4gY29tbW9uCisJICogY2FzZS4gVGhlIHJl YWwgcHJvdGVjdGlvbiBpcyB0aGUgdW5pcXVlIGtleSBvbiB0aGUgY2F0YWxvZy4KKwkgKi8KKwlp ZiAoU2VhcmNoU3lzQ2FjaGVFeGlzdHMyKFZBUklBQkxFTkFNRU5TUCwKKwkJCQkJCQkgIFBvaW50 ZXJHZXREYXR1bSh2YXJOYW1lKSwKKwkJCQkJCQkgIE9iamVjdElkR2V0RGF0dW0odmFyTmFtZXNw YWNlKSkpCisJeworCQlpZiAoaWZfbm90X2V4aXN0cykKKwkJCWVyZXBvcnQoTk9USUNFLAorCQkJ CQkoZXJyY29kZShFUlJDT0RFX0RVUExJQ0FURV9PQkpFQ1QpLAorCQkJCQkgZXJybXNnKCJzZXNz aW9uIHZhcmlhYmxlIFwiJXNcIiBhbHJlYWR5IGV4aXN0cywgc2tpcHBpbmciLAorCQkJCQkJCXZh ck5hbWUpKSk7CisJCWVsc2UKKwkJCWVyZXBvcnQoRVJST1IsCisJCQkJCShlcnJjb2RlKEVSUkNP REVfRFVQTElDQVRFX09CSkVDVCksCisJCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgXCIl c1wiIGFscmVhZHkgZXhpc3RzIiwKKwkJCQkJCQl2YXJOYW1lKSkpOworCisJCXRhYmxlX2Nsb3Nl KHJlbCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwkJcmV0dXJuIEludmFsaWRPYmplY3RBZGRyZXNz OworCX0KKworCW1lbXNldCh2YWx1ZXMsIDAsIHNpemVvZih2YWx1ZXMpKTsKKwltZW1zZXQobnVs bHMsIGZhbHNlLCBzaXplb2YobnVsbHMpKTsKKworCW5hbWVzdHJjcHkoJnZhcm5hbWUsIHZhck5h bWUpOworCisJdmFyaWQgPSBHZXROZXdPaWRXaXRoSW5kZXgocmVsLCBWYXJpYWJsZU9pZEluZGV4 SWQsIEFudW1fcGdfdmFyaWFibGVfb2lkKTsKKworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX29p ZCAtIDFdID0gT2JqZWN0SWRHZXREYXR1bSh2YXJpZCk7CisJdmFsdWVzW0FudW1fcGdfdmFyaWFi bGVfdmFybmFtZSAtIDFdID0gTmFtZUdldERhdHVtKCZ2YXJuYW1lKTsKKwl2YWx1ZXNbQW51bV9w Z192YXJpYWJsZV92YXJuYW1lc3BhY2UgLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyTmFtZXNw YWNlKTsKKwl2YWx1ZXNbQW51bV9wZ192YXJpYWJsZV92YXJ0eXBlIC0gMV0gPSBPYmplY3RJZEdl dERhdHVtKHZhclR5cGUpOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcnR5cG1vZCAtIDFd ID0gSW50MzJHZXREYXR1bSh2YXJUeXBtb2QpOworCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3Zh cm93bmVyIC0gMV0gPSBPYmplY3RJZEdldERhdHVtKHZhck93bmVyKTsKKwl2YWx1ZXNbQW51bV9w Z192YXJpYWJsZV92YXJjb2xsYXRpb24gLSAxXSA9IE9iamVjdElkR2V0RGF0dW0odmFyQ29sbGF0 aW9uKTsKKworCXZhcmFjbCA9IGdldF91c2VyX2RlZmF1bHRfYWNsKE9CSkVDVF9WQVJJQUJMRSwg dmFyT3duZXIsCisJCQkJCQkJCSAgdmFyTmFtZXNwYWNlKTsKKwlpZiAodmFyYWNsICE9IE5VTEwp CisJCXZhbHVlc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcmFjbCAtIDFdID0gUG9pbnRlckdldERhdHVt KHZhcmFjbCk7CisJZWxzZQorCQludWxsc1tBbnVtX3BnX3ZhcmlhYmxlX3ZhcmFjbCAtIDFdID0g dHJ1ZTsKKworCXR1cGRlc2MgPSBSZWxhdGlvbkdldERlc2NyKHJlbCk7CisKKwl0dXAgPSBoZWFw X2Zvcm1fdHVwbGUodHVwZGVzYywgdmFsdWVzLCBudWxscyk7CisJQ2F0YWxvZ1R1cGxlSW5zZXJ0 KHJlbCwgdHVwKTsKKwlBc3NlcnQoT2lkSXNWYWxpZCh2YXJpZCkpOworCisJYWRkcnMgPSBuZXdf b2JqZWN0X2FkZHJlc3NlcygpOworCisJT2JqZWN0QWRkcmVzc1NldChteXNlbGYsIFZhcmlhYmxl UmVsYXRpb25JZCwgdmFyaWQpOworCisJLyogZGVwZW5kZW5jeSBvbiBuYW1lc3BhY2UgKi8KKwlP YmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQsIE5hbWVzcGFjZVJlbGF0aW9uSWQsIHZhck5hbWVz cGFjZSk7CisJYWRkX2V4YWN0X29iamVjdF9hZGRyZXNzKCZyZWZlcmVuY2VkLCBhZGRycyk7CisK KwkvKiBkZXBlbmRlbmN5IG9uIHVzZWQgdHlwZSAqLworCU9iamVjdEFkZHJlc3NTZXQocmVmZXJl bmNlZCwgVHlwZVJlbGF0aW9uSWQsIHZhclR5cGUpOworCWFkZF9leGFjdF9vYmplY3RfYWRkcmVz cygmcmVmZXJlbmNlZCwgYWRkcnMpOworCisJLyogZGVwZW5kZW5jeSBvbiBjb2xsYXRpb24gKi8K KwlpZiAoT2lkSXNWYWxpZCh2YXJDb2xsYXRpb24pICYmCisJCXZhckNvbGxhdGlvbiAhPSBERUZB VUxUX0NPTExBVElPTl9PSUQpCisJeworCQlPYmplY3RBZGRyZXNzU2V0KHJlZmVyZW5jZWQsIENv bGxhdGlvblJlbGF0aW9uSWQsIHZhckNvbGxhdGlvbik7CisJCWFkZF9leGFjdF9vYmplY3RfYWRk cmVzcygmcmVmZXJlbmNlZCwgYWRkcnMpOworCX0KKworCXJlY29yZF9vYmplY3RfYWRkcmVzc19k ZXBlbmRlbmNpZXMoJm15c2VsZiwgYWRkcnMsIERFUEVOREVOQ1lfTk9STUFMKTsKKwlmcmVlX29i amVjdF9hZGRyZXNzZXMoYWRkcnMpOworCisJLyogZGVwZW5kZW5jeSBvbiBvd25lciAqLworCXJl Y29yZERlcGVuZGVuY3lPbk93bmVyKFZhcmlhYmxlUmVsYXRpb25JZCwgdmFyaWQsIHZhck93bmVy KTsKKworCS8qIGRlcGVuZGVuY2llcyBvbiByb2xlcyBtZW50aW9uZWQgaW4gZGVmYXVsdCBBQ0wg Ki8KKwlyZWNvcmREZXBlbmRlbmN5T25OZXdBY2woVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwg MCwgdmFyT3duZXIsIHZhcmFjbCk7CisKKwkvKiBkZXBlbmRlbmN5IG9uIGV4dGVuc2lvbiAqLwor CXJlY29yZERlcGVuZGVuY3lPbkN1cnJlbnRFeHRlbnNpb24oJm15c2VsZiwgZmFsc2UpOworCisJ aGVhcF9mcmVldHVwbGUodHVwKTsKKworCS8qIHBvc3QgY3JlYXRpb24gaG9vayBmb3IgbmV3IGZ1 bmN0aW9uICovCisJSW52b2tlT2JqZWN0UG9zdENyZWF0ZUhvb2soVmFyaWFibGVSZWxhdGlvbklk LCB2YXJpZCwgMCk7CisKKwl0YWJsZV9jbG9zZShyZWwsIFJvd0V4Y2x1c2l2ZUxvY2spOworCisJ cmV0dXJuIG15c2VsZjsKK30KKworLyoKKyAqIENyZWF0ZXMgYSBuZXcgdmFyaWFibGUKKyAqCisg KiBVc2VkIGJ5IENSRUFURSBWQVJJQUJMRSBjb21tYW5kCisgKi8KK09iamVjdEFkZHJlc3MKK0Ny ZWF0ZVZhcmlhYmxlKFBhcnNlU3RhdGUgKnBzdGF0ZSwgQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0 bXQpCit7CisJT2lkCQkJbmFtZXNwYWNlaWQ7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlPaWQJ CQl0eXBpZDsKKwlpbnQzMgkJdHlwbW9kOworCU9pZAkJCXZhcm93bmVyID0gR2V0VXNlcklkKCk7 CisJT2lkCQkJY29sbGF0aW9uOworCU9pZAkJCXR5cGNvbGxhdGlvbjsKKwlPYmplY3RBZGRyZXNz IHZhcmlhYmxlOworCisJbmFtZXNwYWNlaWQgPQorCQlSYW5nZVZhckdldEFuZENoZWNrQ3JlYXRp b25OYW1lc3BhY2Uoc3RtdC0+dmFyaWFibGUsIE5vTG9jaywgTlVMTCk7CisKKwl0eXBlbmFtZVR5 cGVJZEFuZE1vZChwc3RhdGUsIHN0bXQtPnR5cGVOYW1lLCAmdHlwaWQsICZ0eXBtb2QpOworCisJ LyogZGlzYWxsb3cgcHNldWRvdHlwZXMgKi8KKwlpZiAoZ2V0X3R5cHR5cGUodHlwaWQpID09IFRZ UFRZUEVfUFNFVURPKQorCQllcmVwb3J0KEVSUk9SLAorCQkJCShlcnJjb2RlKEVSUkNPREVfV1JP TkdfT0JKRUNUX1RZUEUpLAorCQkJCSBlcnJtc2coInNlc3Npb24gdmFyaWFibGUgY2Fubm90IGJl IHBzZXVkby10eXBlICVzIiwKKwkJCQkJCWZvcm1hdF90eXBlX2JlKHR5cGlkKSkpKTsKKworCWFj bHJlc3VsdCA9IG9iamVjdF9hY2xjaGVjayhUeXBlUmVsYXRpb25JZCwgdHlwaWQsIEdldFVzZXJJ ZCgpLCBBQ0xfVVNBR0UpOworCWlmIChhY2xyZXN1bHQgIT0gQUNMQ0hFQ0tfT0spCisJCWFjbGNo ZWNrX2Vycm9yX3R5cGUoYWNscmVzdWx0LCB0eXBpZCk7CisKKwl0eXBjb2xsYXRpb24gPSBnZXRf dHlwY29sbGF0aW9uKHR5cGlkKTsKKworCWlmIChzdG10LT5jb2xsQ2xhdXNlKQorCQljb2xsYXRp b24gPSBMb29rdXBDb2xsYXRpb24ocHN0YXRlLAorCQkJCQkJCQkJc3RtdC0+Y29sbENsYXVzZS0+ Y29sbG5hbWUsCisJCQkJCQkJCQlzdG10LT5jb2xsQ2xhdXNlLT5sb2NhdGlvbik7CisJZWxzZQor CQljb2xsYXRpb24gPSB0eXBjb2xsYXRpb247CisKKwkvKiBjb21wbGFpbiBpZiBDT0xMQVRFIGlz IGFwcGxpZWQgdG8gYW4gdW5jb2xsYXRhYmxlIHR5cGUgKi8KKwlpZiAoT2lkSXNWYWxpZChjb2xs YXRpb24pICYmICFPaWRJc1ZhbGlkKHR5cGNvbGxhdGlvbikpCisJCWVyZXBvcnQoRVJST1IsCisJ CQkJKGVycmNvZGUoRVJSQ09ERV9EQVRBVFlQRV9NSVNNQVRDSCksCisJCQkJIGVycm1zZygiY29s bGF0aW9ucyBhcmUgbm90IHN1cHBvcnRlZCBieSB0eXBlICVzIiwKKwkJCQkJCWZvcm1hdF90eXBl X2JlKHR5cGlkKSksCisJCQkJIHBhcnNlcl9lcnJwb3NpdGlvbihwc3RhdGUsIHN0bXQtPmNvbGxD bGF1c2UtPmxvY2F0aW9uKSkpOworCisJdmFyaWFibGUgPSBjcmVhdGVfdmFyaWFibGUoc3RtdC0+ dmFyaWFibGUtPnJlbG5hbWUsCisJCQkJCQkJICAgbmFtZXNwYWNlaWQsCisJCQkJCQkJICAgdHlw aWQsCisJCQkJCQkJICAgdHlwbW9kLAorCQkJCQkJCSAgIHZhcm93bmVyLAorCQkJCQkJCSAgIGNv bGxhdGlvbiwKKwkJCQkJCQkgICBzdG10LT5pZl9ub3RfZXhpc3RzKTsKKworCWVsb2coREVCVUcx LCAicmVjb3JkIGZvciBzZXNzaW9uIHZhcmlhYmxlIFwiJXNcIiAob2lkOiVkKSB3YXMgY3JlYXRl ZCBpbiBwZ192YXJpYWJsZSIsCisJCSBzdG10LT52YXJpYWJsZS0+cmVsbmFtZSwgdmFyaWFibGUu b2JqZWN0SWQpOworCisJcmV0dXJuIHZhcmlhYmxlOworfQorCisvKgorICogRHJvcCB2YXJpYWJs ZSBieSBPSUQKKyAqLwordm9pZAorRHJvcFZhcmlhYmxlQnlJZChPaWQgdmFyaWQpCit7CisJUmVs YXRpb24JcmVsOworCUhlYXBUdXBsZQl0dXA7CisKKwlyZWwgPSB0YWJsZV9vcGVuKFZhcmlhYmxl UmVsYXRpb25JZCwgUm93RXhjbHVzaXZlTG9jayk7CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEo VkFSSUFCTEVPSUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCWlmICghSGVhcFR1cGxl SXNWYWxpZCh0dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3IgdmFy aWFibGUgJXUiLCB2YXJpZCk7CisKKwlDYXRhbG9nVHVwbGVEZWxldGUocmVsLCAmdHVwLT50X3Nl bGYpOworCisJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisKKwl0YWJsZV9jbG9zZShyZWwsIFJvd0V4 Y2x1c2l2ZUxvY2spOworfQpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIu YyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2FsdGVyLmMKaW5kZXggNzhjMWQ0ZTFiOC4uNjcxNTNj ZDhiOSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvYWx0ZXIuYworKysgYi9zcmMv YmFja2VuZC9jb21tYW5kcy9hbHRlci5jCkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiY2F0 YWxvZy9wZ190c19kaWN0LmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9wZ190c19wYXJzZXIuaCIKICNp bmNsdWRlICJjYXRhbG9nL3BnX3RzX3RlbXBsYXRlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192 YXJpYWJsZS5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2FsdGVyLmgiCiAjaW5jbHVkZSAiY29tbWFu ZHMvY29sbGF0aW9uY21kcy5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2RiY29tbWFuZHMuaCIKQEAg LTE0MCw2ICsxNDEsMTAgQEAgcmVwb3J0X25hbWVzcGFjZV9jb25mbGljdChPaWQgY2xhc3NJZCwg Y29uc3QgY2hhciAqbmFtZSwgT2lkIG5zcE9pZCkKIAkJCUFzc2VydChPaWRJc1ZhbGlkKG5zcE9p ZCkpOwogCQkJbXNnZm10ID0gZ2V0dGV4dF9ub29wKCJ0ZXh0IHNlYXJjaCBjb25maWd1cmF0aW9u IFwiJXNcIiBhbHJlYWR5IGV4aXN0cyBpbiBzY2hlbWEgXCIlc1wiIik7CiAJCQlicmVhazsKKwkJ Y2FzZSBWYXJpYWJsZVJlbGF0aW9uSWQ6CisJCQlBc3NlcnQoT2lkSXNWYWxpZChuc3BPaWQpKTsK KwkJCW1zZ2ZtdCA9IGdldHRleHRfbm9vcCgic2Vzc2lvbiB2YXJpYWJsZSBcIiVzXCIgYWxyZWFk eSBleGlzdHMgaW4gc2NoZW1hIFwiJXNcIiIpOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQll bG9nKEVSUk9SLCAidW5zdXBwb3J0ZWQgb2JqZWN0IGNsYXNzOiAldSIsIGNsYXNzSWQpOwogCQkJ YnJlYWs7CkBAIC00MTksNiArNDI0LDcgQEAgRXhlY1JlbmFtZVN0bXQoUmVuYW1lU3RtdCAqc3Rt dCkKIAkJY2FzZSBPQkpFQ1RfVFNURU1QTEFURToKIAkJY2FzZSBPQkpFQ1RfUFVCTElDQVRJT046 CiAJCWNhc2UgT0JKRUNUX1NVQlNDUklQVElPTjoKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CiAJ CQl7CiAJCQkJT2JqZWN0QWRkcmVzcyBhZGRyZXNzOwogCQkJCVJlbGF0aW9uCWNhdGFsb2c7CkBA IC01NTksNiArNTY1LDcgQEAgRXhlY0FsdGVyT2JqZWN0U2NoZW1hU3RtdChBbHRlck9iamVjdFNj aGVtYVN0bXQgKnN0bXQsCiAJCWNhc2UgT0JKRUNUX1RTRElDVElPTkFSWToKIAkJY2FzZSBPQkpF Q1RfVFNQQVJTRVI6CiAJCWNhc2UgT0JKRUNUX1RTVEVNUExBVEU6CisJCWNhc2UgT0JKRUNUX1ZB UklBQkxFOgogCQkJewogCQkJCVJlbGF0aW9uCWNhdGFsb2c7CiAJCQkJT2lkCQkJY2xhc3NJZDsK QEAgLTY0MSw2ICs2NDgsNyBAQCBBbHRlck9iamVjdE5hbWVzcGFjZV9vaWQoT2lkIGNsYXNzSWQs IE9pZCBvYmppZCwgT2lkIG5zcE9pZCwKIAkJY2FzZSBUU0RpY3Rpb25hcnlSZWxhdGlvbklkOgog CQljYXNlIFRTVGVtcGxhdGVSZWxhdGlvbklkOgogCQljYXNlIFRTQ29uZmlnUmVsYXRpb25JZDoK KwkJY2FzZSBWYXJpYWJsZVJlbGF0aW9uSWQ6CiAJCQl7CiAJCQkJUmVsYXRpb24JY2F0YWxvZzsK IApAQCAtODcxLDYgKzg3OSw3IEBAIEV4ZWNBbHRlck93bmVyU3RtdChBbHRlck93bmVyU3RtdCAq c3RtdCkKIAkJY2FzZSBPQkpFQ1RfVEFCTEVTUEFDRToKIAkJY2FzZSBPQkpFQ1RfVFNESUNUSU9O QVJZOgogCQljYXNlIE9CSkVDVF9UU0NPTkZJR1VSQVRJT046CisJCWNhc2UgT0JKRUNUX1ZBUklB QkxFOgogCQkJewogCQkJCU9iamVjdEFkZHJlc3MgYWRkcmVzczsKIApkaWZmIC0tZ2l0IGEvc3Jj L2JhY2tlbmQvY29tbWFuZHMvZHJvcGNtZHMuYyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2Ryb3Bj bWRzLmMKaW5kZXggY2ViOWEyMjliNi4uZWJiNTg1ZGM0YSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvY29tbWFuZHMvZHJvcGNtZHMuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9kcm9wY21k cy5jCkBAIC00NzYsNiArNDc2LDEwIEBAIGRvZXNfbm90X2V4aXN0X3NraXBwaW5nKE9iamVjdFR5 cGUgb2JqdHlwZSwgTm9kZSAqb2JqZWN0KQogCQkJbXNnID0gZ2V0dGV4dF9ub29wKCJwdWJsaWNh dGlvbiBcIiVzXCIgZG9lcyBub3QgZXhpc3QsIHNraXBwaW5nIik7CiAJCQluYW1lID0gc3RyVmFs KG9iamVjdCk7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6CisJCQltc2cgPSBn ZXR0ZXh0X25vb3AoInNlc3Npb24gdmFyaWFibGUgXCIlc1wiIGRvZXMgbm90IGV4aXN0LCBza2lw cGluZyIpOworCQkJbmFtZSA9IE5hbWVMaXN0VG9TdHJpbmcoY2FzdE5vZGUoTGlzdCwgb2JqZWN0 KSk7CisJCQlicmVhazsKIAogCQljYXNlIE9CSkVDVF9DT0xVTU46CiAJCWNhc2UgT0JKRUNUX0RB VEFCQVNFOgpkaWZmIC0tZ2l0IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5j IGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXZlbnRfdHJpZ2dlci5jCmluZGV4IGVkYzJjOTg4ZTIu LjE4MzljMWY4MmMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V2ZW50X3RyaWdn ZXIuYworKysgYi9zcmMvYmFja2VuZC9jb21tYW5kcy9ldmVudF90cmlnZ2VyLmMKQEAgLTIxNDks NiArMjE0OSw4IEBAIHN0cmluZ2lmeV9ncmFudF9vYmp0eXBlKE9iamVjdFR5cGUgb2JqdHlwZSkK IAkJCXJldHVybiAiVEFCTEVTUEFDRSI7CiAJCWNhc2UgT0JKRUNUX1RZUEU6CiAJCQlyZXR1cm4g IlRZUEUiOworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCXJldHVybiAiVkFSSUFCTEUiOwog CQkJLyogdGhlc2UgY3VycmVudGx5IGFyZW4ndCB1c2VkICovCiAJCWNhc2UgT0JKRUNUX0FDQ0VT U19NRVRIT0Q6CiAJCWNhc2UgT0JKRUNUX0FHR1JFR0FURToKQEAgLTIyMzIsNiArMjIzNCw4IEBA IHN0cmluZ2lmeV9hZGVmcHJpdnNfb2JqdHlwZShPYmplY3RUeXBlIG9ianR5cGUpCiAJCQlyZXR1 cm4gIlRBQkxFU1BBQ0VTIjsKIAkJY2FzZSBPQkpFQ1RfVFlQRToKIAkJCXJldHVybiAiVFlQRVMi OworCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKKwkJCXJldHVybiAiVkFSSUFCTEVTIjsKIAkJCS8q IHRoZXNlIGN1cnJlbnRseSBhcmVuJ3QgdXNlZCAqLwogCQljYXNlIE9CSkVDVF9BQ0NFU1NfTUVU SE9EOgogCQljYXNlIE9CSkVDVF9BR0dSRUdBVEU6CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9j b21tYW5kcy9zZWNsYWJlbC5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvc2VjbGFiZWwuYwppbmRl eCBjZWU1ZDdiYmI5Li41N2I0ZTY3MTljIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC9jb21tYW5k cy9zZWNsYWJlbC5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3NlY2xhYmVsLmMKQEAgLTky LDYgKzkyLDcgQEAgU2VjTGFiZWxTdXBwb3J0c09iamVjdFR5cGUoT2JqZWN0VHlwZSBvYmp0eXBl KQogCQljYXNlIE9CSkVDVF9UU1BBUlNFUjoKIAkJY2FzZSBPQkpFQ1RfVFNURU1QTEFURToKIAkJ Y2FzZSBPQkpFQ1RfVVNFUl9NQVBQSU5HOgorCQljYXNlIE9CSkVDVF9WQVJJQUJMRToKIAkJCXJl dHVybiBmYWxzZTsKIAogCQkJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL2NvbW1hbmRzL3Rh YmxlY21kcy5jIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKaW5kZXggNDE4MWMx MTBlYi4uMDA1ZTA3OWE2ZiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVj bWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdGFibGVjbWRzLmMKQEAgLTUyLDYgKzUy LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RhYmxlc3BhY2UuaCIKICNpbmNsdWRlICJjYXRh bG9nL3BnX3RyaWdnZXIuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRl ICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY2F0YWxvZy9zdG9yYWdlLmgiCiAj aW5jbHVkZSAiY2F0YWxvZy9zdG9yYWdlX3hsb2cuaCIKICNpbmNsdWRlICJjYXRhbG9nL3RvYXN0 aW5nLmgiCkBAIC02NzczLDYgKzY3NzQsNyBAQCBBVFR5cGVkVGFibGVSZWN1cnNpb24oTGlzdCAq KndxdWV1ZSwgUmVsYXRpb24gcmVsLCBBbHRlclRhYmxlQ21kICpjbWQsCiAgKiAocG9zc2libHkg bmVzdGVkIHNldmVyYWwgbGV2ZWxzIGRlZXAgaW4gY29tcG9zaXRlIHR5cGVzLCBhcnJheXMsIGV0 YyEpLgogICogRXZlbnR1YWxseSwgd2UnZCBsaWtlIHRvIHByb3BhZ2F0ZSB0aGUgY2hlY2sgb3Ig cmV3cml0ZSBvcGVyYXRpb24KICAqIGludG8gc3VjaCB0YWJsZXMsIGJ1dCBmb3Igbm93LCBqdXN0 IGVycm9yIG91dCBpZiB3ZSBmaW5kIGFueS4KKyAqIEFsc28sIGNoZWNrIGlmICJ0eXBlT2lkIiBp cyB1c2VkIGFzIHR5cGUgb2Ygc29tZSBzZXNzaW9uIHZhcmlhYmxlLgogICoKICAqIENhbGxlciBz aG91bGQgcHJvdmlkZSBlaXRoZXIgdGhlIGFzc29jaWF0ZWQgcmVsYXRpb24gb2YgYSByb3d0eXBl LAogICogb3IgYSB0eXBlIG5hbWUgKG5vdCBib3RoKSBmb3IgdXNlIGluIHRoZSBlcnJvciBtZXNz YWdlLCBpZiBhbnkuCkBAIC02ODM2LDYgKzY4MzgsNDUgQEAgZmluZF9jb21wb3NpdGVfdHlwZV9k ZXBlbmRlbmNpZXMoT2lkIHR5cGVPaWQsIFJlbGF0aW9uIG9yaWdSZWxhdGlvbiwKIAkJCWNvbnRp bnVlOwogCQl9CiAKKwkJLyogY2hlY2sgaWYgdGhlIHR5cGUgaXMgdXNlZCBhcyB0eXBlIG9mIHNv bWUgc2Vzc2lvbiB2YXJpYWJsZSAqLworCQlpZiAocGdfZGVwZW5kLT5jbGFzc2lkID09IFZhcmlh YmxlUmVsYXRpb25JZCkKKwkJeworCQkJT2lkCQkJdmFyaWQgPSBwZ19kZXBlbmQtPm9iamlkOwor CisJCQlpZiAob3JpZ1R5cGVOYW1lKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJCQkoZXJyY29k ZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkgZXJybXNnKCJjYW5ub3Qg YWx0ZXIgdHlwZSBcIiVzXCIgYmVjYXVzZSBzZXNzaW9uIHZhcmlhYmxlIFwiJXMuJXNcIiB1c2Vz IGl0IiwKKwkJCQkJCQkJb3JpZ1R5cGVOYW1lLAorCQkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUo Z2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJCWdldF9zZXNz aW9uX3ZhcmlhYmxlX25hbWUodmFyaWQpKSkpOworCQkJZWxzZSBpZiAob3JpZ1JlbGF0aW9uLT5y ZF9yZWwtPnJlbGtpbmQgPT0gUkVMS0lORF9DT01QT1NJVEVfVFlQRSkKKwkJCQllcmVwb3J0KEVS Uk9SLAorCQkJCQkJKGVycmNvZGUoRVJSQ09ERV9GRUFUVVJFX05PVF9TVVBQT1JURUQpLAorCQkJ CQkJIGVycm1zZygiY2Fubm90IGFsdGVyIHR5cGUgXCIlc1wiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJp YWJsZSBcIiVzLiVzXCIgdXNlcyBpdCIsCisJCQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1l KG9yaWdSZWxhdGlvbiksCisJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92 YXJpYWJsZV9uYW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVf bmFtZSh2YXJpZCkpKSk7CisJCQllbHNlIGlmIChvcmlnUmVsYXRpb24tPnJkX3JlbC0+cmVsa2lu ZCA9PSBSRUxLSU5EX0ZPUkVJR05fVEFCTEUpCisJCQkJZXJlcG9ydChFUlJPUiwKKwkJCQkJCShl cnJjb2RlKEVSUkNPREVfRkVBVFVSRV9OT1RfU1VQUE9SVEVEKSwKKwkJCQkJCSBlcnJtc2coImNh bm5vdCBhbHRlciBmb3JlaWduIHRhYmxlIFwiJXNcIiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUg XCIlcy4lc1wiIHVzZXMgaXQiLAorCQkJCQkJCQlSZWxhdGlvbkdldFJlbGF0aW9uTmFtZShvcmln UmVsYXRpb24pLAorCQkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nlc3Npb25fdmFyaWFi bGVfbmFtZXNwYWNlKHZhcmlkKSksCisJCQkJCQkJCWdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUo dmFyaWQpKSkpOworCQkJZWxzZSBpZiAob3JpZ1JlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQgPT0g UkVMS0lORF9SRUxBVElPTiB8fAorCQkJCQkgb3JpZ1JlbGF0aW9uLT5yZF9yZWwtPnJlbGtpbmQg PT0gUkVMS0lORF9NQVRWSUVXIHx8CisJCQkJCSBvcmlnUmVsYXRpb24tPnJkX3JlbC0+cmVsa2lu ZCA9PSBSRUxLSU5EX1BBUlRJVElPTkVEX1RBQkxFKQorCQkJCWVyZXBvcnQoRVJST1IsCisJCQkJ CQkoZXJyY29kZShFUlJDT0RFX0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCQkgZXJybXNn KCJjYW5ub3QgYWx0ZXIgdGFibGUgXCIlc1wiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSBcIiVz LiVzXCIgdXNlcyBpdCIsCisJCQkJCQkJCVJlbGF0aW9uR2V0UmVsYXRpb25OYW1lKG9yaWdSZWxh dGlvbiksCisJCQkJCQkJCWdldF9uYW1lc3BhY2VfbmFtZShnZXRfc2Vzc2lvbl92YXJpYWJsZV9u YW1lc3BhY2UodmFyaWQpKSwKKwkJCQkJCQkJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJp ZCkpKSk7CisKKwkJCWNvbnRpbnVlOworCQl9CisKIAkJLyogRWxzZSwgaWdub3JlIGRlcGVuZGVl cyB0aGF0IGFyZW4ndCByZWxhdGlvbnMgKi8KIAkJaWYgKHBnX2RlcGVuZC0+Y2xhc3NpZCAhPSBS ZWxhdGlvblJlbGF0aW9uSWQpCiAJCQljb250aW51ZTsKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L2NvbW1hbmRzL3R5cGVjbWRzLmMgYi9zcmMvYmFja2VuZC9jb21tYW5kcy90eXBlY21kcy5jCmlu ZGV4IDZiMWQyMzgzNTEuLjNlMWZkZTRjZGQgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL2NvbW1h bmRzL3R5cGVjbWRzLmMKKysrIGIvc3JjL2JhY2tlbmQvY29tbWFuZHMvdHlwZWNtZHMuYwpAQCAt NTMsNiArNTMsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvcGdfcHJvYy5oIgogI2luY2x1ZGUgImNh dGFsb2cvcGdfcmFuZ2UuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3R5cGUuaCIKKyNpbmNsdWRl ICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvZGVmcmVtLmgiCiAj aW5jbHVkZSAiY29tbWFuZHMvdGFibGVjbWRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdHlwZWNt ZHMuaCIKQEAgLTM0MDQsNiArMzQwNSwyMCBAQCBnZXRfcmVsc193aXRoX2RvbWFpbihPaWQgZG9t YWluT2lkLCBMT0NLTU9ERSBsb2NrbW9kZSkKIAkJCX0KIAkJCWNvbnRpbnVlOwogCQl9CisJCWVs c2UgaWYgKHBnX2RlcGVuZC0+Y2xhc3NpZCA9PSBWYXJpYWJsZVJlbGF0aW9uSWQpCisJCXsKKwkJ CS8qCisJCQkgKiBXZSBjYW5ub3QgdG8gdmFsaWRhdGUgY29uc3RyYWludCBpbnNpZGUgc2Vzc2lv biB2YXJpYWJsZXMKKwkJCSAqIGZyb20gb3RoZXIgc2Vzc2lvbnMsIHNvIGJldHRlciB0byBmYWls IGlmIHRoZXJlIGFyZSBhbnkKKwkJCSAqIHNlc3Npb24gdmFyaWFibGUsIHRoYXQgdXNlIHRoaXMg ZG9tYWluLgorCQkJICovCisJCQllcmVwb3J0KEVSUk9SLAorCQkJCQkoZXJyY29kZShFUlJDT0RF X0ZFQVRVUkVfTk9UX1NVUFBPUlRFRCksCisJCQkJCSBlcnJtc2coImNhbm5vdCBhbHRlciBkb21h aW4gXCIlc1wiIGJlY2F1c2Ugc2Vzc2lvbiB2YXJpYWJsZSBcIiVzLiVzXCIgdXNlcyBpdCIsCisJ CQkJCQkJCWRvbWFpblR5cGVOYW1lLAorCQkJCQkJCQlnZXRfbmFtZXNwYWNlX25hbWUoZ2V0X3Nl c3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKHBnX2RlcGVuZC0+b2JqaWQpKSwKKwkJCQkJCQkJZ2V0 X3Nlc3Npb25fdmFyaWFibGVfbmFtZShwZ19kZXBlbmQtPm9iamlkKSkpKTsKKwkJfQogCiAJCS8q IEVsc2UsIGlnbm9yZSBkZXBlbmRlZXMgdGhhdCBhcmVuJ3QgdXNlciBjb2x1bW5zIG9mIHJlbGF0 aW9ucyAqLwogCQkvKiAod2UgYXNzdW1lIHN5c3RlbSBjb2x1bW5zIGFyZSBuZXZlciBvZiBkb21h aW4gdHlwZXMpICovCmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55IGIvc3Jj L2JhY2tlbmQvcGFyc2VyL2dyYW0ueQppbmRleCBiNGMxZTJjNjlkLi43OTYxNDdhNTQxIDEwMDY0 NAotLS0gYS9zcmMvYmFja2VuZC9wYXJzZXIvZ3JhbS55CisrKyBiL3NyYy9iYWNrZW5kL3BhcnNl ci9ncmFtLnkKQEAgLTUyLDYgKzUyLDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL25hbWVzcGFjZS5o IgogI2luY2x1ZGUgImNhdGFsb2cvcGdfYW0uaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX3RyaWdn ZXIuaCIKKyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlLmgiCiAjaW5jbHVkZSAiY29tbWFu ZHMvZGVmcmVtLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvdHJpZ2dlci5oIgogI2luY2x1ZGUgImdy YW1wYXJzZS5oIgpAQCAtMjgxLDggKzI4Miw4IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZl Vmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBMaXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJ CUNvbnN0cmFpbnRzU2V0U3RtdCBDb3B5U3RtdCBDcmVhdGVBc1N0bXQgQ3JlYXRlQ2FzdFN0bXQK IAkJQ3JlYXRlRG9tYWluU3RtdCBDcmVhdGVFeHRlbnNpb25TdG10IENyZWF0ZUdyb3VwU3RtdCBD cmVhdGVPcENsYXNzU3RtdAogCQlDcmVhdGVPcEZhbWlseVN0bXQgQWx0ZXJPcEZhbWlseVN0bXQg Q3JlYXRlUExhbmdTdG10Ci0JCUNyZWF0ZVNjaGVtYVN0bXQgQ3JlYXRlU2VxU3RtdCBDcmVhdGVT dG10IENyZWF0ZVN0YXRzU3RtdCBDcmVhdGVUYWJsZVNwYWNlU3RtdAotCQlDcmVhdGVGZHdTdG10 IENyZWF0ZUZvcmVpZ25TZXJ2ZXJTdG10IENyZWF0ZUZvcmVpZ25UYWJsZVN0bXQKKwkJQ3JlYXRl U2NoZW1hU3RtdCBDcmVhdGVTZXFTdG10IENyZWF0ZVNlc3Npb25WYXJTdG10IENyZWF0ZVN0bXQg Q3JlYXRlU3RhdHNTdG10CisJCUNyZWF0ZVRhYmxlU3BhY2VTdG10IENyZWF0ZUZkd1N0bXQgQ3Jl YXRlRm9yZWlnblNlcnZlclN0bXQgQ3JlYXRlRm9yZWlnblRhYmxlU3RtdAogCQlDcmVhdGVBc3Nl cnRpb25TdG10IENyZWF0ZVRyYW5zZm9ybVN0bXQgQ3JlYXRlVHJpZ1N0bXQgQ3JlYXRlRXZlbnRU cmlnU3RtdAogCQlDcmVhdGVVc2VyU3RtdCBDcmVhdGVVc2VyTWFwcGluZ1N0bXQgQ3JlYXRlUm9s ZVN0bXQgQ3JlYXRlUG9saWN5U3RtdAogCQlDcmVhdGVkYlN0bXQgRGVjbGFyZUN1cnNvclN0bXQg RGVmaW5lU3RtdCBEZWxldGVTdG10IERpc2NhcmRTdG10IERvU3RtdApAQCAtNzc1LDggKzc3Niw4 IEBAIHN0YXRpYyBOb2RlICptYWtlUmVjdXJzaXZlVmlld1NlbGVjdChjaGFyICpyZWxuYW1lLCBM aXN0ICphbGlhc2VzLCBOb2RlICpxdWVyeSk7CiAJVUVTQ0FQRSBVTkJPVU5ERUQgVU5DT05ESVRJ T05BTCBVTkNPTU1JVFRFRCBVTkVOQ1JZUFRFRCBVTklPTiBVTklRVUUgVU5LTk9XTgogCVVOTElT VEVOIFVOTE9HR0VEIFVOVElMIFVQREFURSBVU0VSIFVTSU5HCiAKLQlWQUNVVU0gVkFMSUQgVkFM SURBVEUgVkFMSURBVE9SIFZBTFVFX1AgVkFMVUVTIFZBUkNIQVIgVkFSSUFESUMgVkFSWUlORwot CVZFUkJPU0UgVkVSU0lPTl9QIFZJRVcgVklFV1MgVk9MQVRJTEUKKwlWQUNVVU0gVkFMSUQgVkFM SURBVEUgVkFMSURBVE9SIFZBTFVFX1AgVkFMVUVTIFZBUkNIQVIgVkFSSUFCTEUgVkFSSUFCTEVT CisJVkFSSUFESUMgVkFSWUlORyBWRVJCT1NFIFZFUlNJT05fUCBWSUVXIFZJRVdTIFZPTEFUSUxF CiAKIAlXSEVOIFdIRVJFIFdISVRFU1BBQ0VfUCBXSU5ET1cgV0lUSCBXSVRISU4gV0lUSE9VVCBX T1JLIFdSQVBQRVIgV1JJVEUKIApAQCAtMTA0Miw2ICsxMDQzLDcgQEAgc3RtdDoKIAkJCXwgQ3Jl YXRlUG9saWN5U3RtdAogCQkJfCBDcmVhdGVQTGFuZ1N0bXQKIAkJCXwgQ3JlYXRlU2NoZW1hU3Rt dAorCQkJfCBDcmVhdGVTZXNzaW9uVmFyU3RtdAogCQkJfCBDcmVhdGVTZXFTdG10CiAJCQl8IENy ZWF0ZVN0bXQKIAkJCXwgQ3JlYXRlU3Vic2NyaXB0aW9uU3RtdApAQCAtMTU4NCw2ICsxNTg2LDcg QEAgc2NoZW1hX3N0bXQ6CiAJCQl8IENyZWF0ZVRyaWdTdG10CiAJCQl8IEdyYW50U3RtdAogCQkJ fCBWaWV3U3RtdAorCQkJfCBDcmVhdGVTZXNzaW9uVmFyU3RtdAogCQk7CiAKIApAQCAtNTIxMCw2 ICs1MjEzLDM0IEBAIGNyZWF0ZV9leHRlbnNpb25fb3B0X2l0ZW06CiAJCQkJfQogCQk7CiAKKy8q KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKgorICoKKyAqCQlRVUVSWSA6CisgKgkJCQlDUkVBVEUgVkFSSUFC TEUgdmFybmFtZSBbQVNdIHR5cGUKKyAqCisgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovCisKK0NyZWF0 ZVNlc3Npb25WYXJTdG10OgorCQkJQ1JFQVRFIFZBUklBQkxFIHF1YWxpZmllZF9uYW1lIG9wdF9h cyBUeXBlbmFtZSBvcHRfY29sbGF0ZV9jbGF1c2UKKwkJCQl7CisJCQkJCUNyZWF0ZVNlc3Npb25W YXJTdG10ICpuID0gbWFrZU5vZGUoQ3JlYXRlU2Vzc2lvblZhclN0bXQpOworCQkJCQluLT52YXJp YWJsZSA9ICQzOworCQkJCQluLT50eXBlTmFtZSA9ICQ1OworCQkJCQluLT5jb2xsQ2xhdXNlID0g KENvbGxhdGVDbGF1c2UgKikgJDY7CisJCQkJCW4tPmlmX25vdF9leGlzdHMgPSBmYWxzZTsKKwkJ CQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJCXwgQ1JFQVRFIFZBUklBQkxFIElGX1AgTk9U IEVYSVNUUyBxdWFsaWZpZWRfbmFtZSBvcHRfYXMgVHlwZW5hbWUgb3B0X2NvbGxhdGVfY2xhdXNl CisJCQkJeworCQkJCQlDcmVhdGVTZXNzaW9uVmFyU3RtdCAqbiA9IG1ha2VOb2RlKENyZWF0ZVNl c3Npb25WYXJTdG10KTsKKwkJCQkJbi0+dmFyaWFibGUgPSAkNjsKKwkJCQkJbi0+dHlwZU5hbWUg PSAkODsKKwkJCQkJbi0+Y29sbENsYXVzZSA9IChDb2xsYXRlQ2xhdXNlICopICQ5OworCQkJCQlu LT5pZl9ub3RfZXhpc3RzID0gdHJ1ZTsKKwkJCQkJJCQgPSAoTm9kZSAqKSBuOworCQkJCX0KKwkJ OworCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioKICAqCiAgKiBBTFRFUiBFWFRFTlNJT04gbmFtZSBV UERBVEUgWyBUTyB2ZXJzaW9uIF0KQEAgLTY5OTgsNiArNzAyOSw3IEBAIG9iamVjdF90eXBlX2Fu eV9uYW1lOgogCQkJfCBURVhUX1AgU0VBUkNIIERJQ1RJT05BUlkJCQkJeyAkJCA9IE9CSkVDVF9U U0RJQ1RJT05BUlk7IH0KIAkJCXwgVEVYVF9QIFNFQVJDSCBURU1QTEFURQkJCQl7ICQkID0gT0JK RUNUX1RTVEVNUExBVEU7IH0KIAkJCXwgVEVYVF9QIFNFQVJDSCBDT05GSUdVUkFUSU9OCQkJeyAk JCA9IE9CSkVDVF9UU0NPTkZJR1VSQVRJT047IH0KKwkJCXwgVkFSSUFCTEUJCQkJCQkJCXsgJCQg PSBPQkpFQ1RfVkFSSUFCTEU7IH0KIAkJOwogCiAvKgpAQCAtNzg3NCw2ICs3OTA2LDE0IEBAIHBy aXZpbGVnZV90YXJnZXQ6CiAJCQkJCW4tPm9ianMgPSAkMjsKIAkJCQkJJCQgPSBuOwogCQkJCX0K KwkJCXwgVkFSSUFCTEUgcXVhbGlmaWVkX25hbWVfbGlzdAorCQkJCXsKKwkJCQkJUHJpdlRhcmdl dCAqbiA9IChQcml2VGFyZ2V0ICopIHBhbGxvYyhzaXplb2YoUHJpdlRhcmdldCkpOworCQkJCQlu LT50YXJndHlwZSA9IEFDTF9UQVJHRVRfT0JKRUNUOworCQkJCQluLT5vYmp0eXBlID0gT0JKRUNU X1ZBUklBQkxFOworCQkJCQluLT5vYmpzID0gJDI7CisJCQkJCSQkID0gbjsKKwkJCQl9CiAJCQl8 IEFMTCBUQUJMRVMgSU5fUCBTQ0hFTUEgbmFtZV9saXN0CiAJCQkJewogCQkJCQlQcml2VGFyZ2V0 ICpuID0gKFByaXZUYXJnZXQgKikgcGFsbG9jKHNpemVvZihQcml2VGFyZ2V0KSk7CkBAIC03OTE5 LDYgKzc5NTksMTQgQEAgcHJpdmlsZWdlX3RhcmdldDoKIAkJCQkJbi0+b2JqcyA9ICQ1OwogCQkJ CQkkJCA9IG47CiAJCQkJfQorCQkJfCBBTEwgVkFSSUFCTEVTIElOX1AgU0NIRU1BIG5hbWVfbGlz dAorCQkJCXsKKwkJCQkJUHJpdlRhcmdldCAqbiA9IChQcml2VGFyZ2V0ICopIHBhbGxvYyhzaXpl b2YoUHJpdlRhcmdldCkpOworCQkJCQluLT50YXJndHlwZSA9IEFDTF9UQVJHRVRfQUxMX0lOX1ND SEVNQTsKKwkJCQkJbi0+b2JqdHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQkJbi0+b2JqcyA9 ICQ1OworCQkJCQkkJCA9IG47CisJCQkJfQogCQk7CiAKIApAQCAtODExNiw2ICs4MTY0LDcgQEAg ZGVmYWNsX3ByaXZpbGVnZV90YXJnZXQ6CiAJCQl8IFNFUVVFTkNFUwkJeyAkJCA9IE9CSkVDVF9T RVFVRU5DRTsgfQogCQkJfCBUWVBFU19QCQl7ICQkID0gT0JKRUNUX1RZUEU7IH0KIAkJCXwgU0NI RU1BUwkJeyAkJCA9IE9CSkVDVF9TQ0hFTUE7IH0KKwkJCXwgVkFSSUFCTEVTCQl7ICQkID0gT0JK RUNUX1ZBUklBQkxFOyB9CiAJCTsKIAogCkBAIC05OTA0LDYgKzk5NTMsMjQgQEAgUmVuYW1lU3Rt dDogQUxURVIgQUdHUkVHQVRFIGFnZ3JlZ2F0ZV93aXRoX2FyZ3R5cGVzIFJFTkFNRSBUTyBuYW1l CiAJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKIAkJCQkJJCQgPSAoTm9kZSAqKSBuOwogCQkJ CX0KKwkJCXwgQUxURVIgVkFSSUFCTEUgYW55X25hbWUgUkVOQU1FIFRPIG5hbWUKKwkJCQl7CisJ CQkJCVJlbmFtZVN0bXQgKm4gPSBtYWtlTm9kZShSZW5hbWVTdG10KTsKKwkJCQkJbi0+cmVuYW1l VHlwZSA9IE9CSkVDVF9WQVJJQUJMRTsKKwkJCQkJbi0+b2JqZWN0ID0gKE5vZGUgKikgJDM7CisJ CQkJCW4tPm5ld25hbWUgPSAkNjsKKwkJCQkJbi0+bWlzc2luZ19vayA9IGZhbHNlOworCQkJCQkk JCA9IChOb2RlICopbjsKKwkJCQl9CisJCQl8IEFMVEVSIFZBUklBQkxFIElGX1AgRVhJU1RTIGFu eV9uYW1lIFJFTkFNRSBUTyBuYW1lCisJCQkJeworCQkJCQlSZW5hbWVTdG10ICpuID0gbWFrZU5v ZGUoUmVuYW1lU3RtdCk7CisJCQkJCW4tPnJlbmFtZVR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7CisJ CQkJCW4tPm9iamVjdCA9IChOb2RlICopICQ1OworCQkJCQluLT5uZXduYW1lID0gJDg7CisJCQkJ CW4tPm1pc3Npbmdfb2sgPSB0cnVlOworCQkJCQkkJCA9IChOb2RlICopbjsKKwkJCQl9CiAJCTsK IAogb3B0X2NvbHVtbjogQ09MVU1OCkBAIC0xMDI2NSw2ICsxMDMzMiwyNCBAQCBBbHRlck9iamVj dFNjaGVtYVN0bXQ6CiAJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKIAkJCQkJJCQgPSAoTm9k ZSAqKSBuOwogCQkJCX0KKwkJCXwgQUxURVIgVkFSSUFCTEUgYW55X25hbWUgU0VUIFNDSEVNQSBu YW1lCisJCQkJeworCQkJCQlBbHRlck9iamVjdFNjaGVtYVN0bXQgKm4gPSBtYWtlTm9kZShBbHRl ck9iamVjdFNjaGVtYVN0bXQpOworCQkJCQluLT5vYmplY3RUeXBlID0gT0JKRUNUX1ZBUklBQkxF OworCQkJCQluLT5vYmplY3QgPSAoTm9kZSAqKSAkMzsKKwkJCQkJbi0+bmV3c2NoZW1hID0gJDY7 CisJCQkJCW4tPm1pc3Npbmdfb2sgPSBmYWxzZTsKKwkJCQkJJCQgPSAoTm9kZSAqKW47CisJCQkJ fQorCQkJfCBBTFRFUiBWQVJJQUJMRSBJRl9QIEVYSVNUUyBhbnlfbmFtZSBTRVQgU0NIRU1BIG5h bWUKKwkJCQl7CisJCQkJCUFsdGVyT2JqZWN0U2NoZW1hU3RtdCAqbiA9IG1ha2VOb2RlKEFsdGVy T2JqZWN0U2NoZW1hU3RtdCk7CisJCQkJCW4tPm9iamVjdFR5cGUgPSBPQkpFQ1RfVkFSSUFCTEU7 CisJCQkJCW4tPm9iamVjdCA9IChOb2RlICopICQ1OworCQkJCQluLT5uZXdzY2hlbWEgPSAkODsK KwkJCQkJbi0+bWlzc2luZ19vayA9IHRydWU7CisJCQkJCSQkID0gKE5vZGUgKiluOworCQkJCX0K IAkJOwogCiAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioKQEAgLTEwNTQ2LDYgKzEwNjMxLDE0IEBAIEFs dGVyT3duZXJTdG10OiBBTFRFUiBBR0dSRUdBVEUgYWdncmVnYXRlX3dpdGhfYXJndHlwZXMgT1dO RVIgVE8gUm9sZVNwZWMKIAkJCQkJbi0+bmV3b3duZXIgPSAkNjsKIAkJCQkJJCQgPSAoTm9kZSAq KSBuOwogCQkJCX0KKwkJCXwgQUxURVIgVkFSSUFCTEUgYW55X25hbWUgT1dORVIgVE8gUm9sZVNw ZWMKKwkJCQl7CisJCQkJCUFsdGVyT3duZXJTdG10ICpuID0gbWFrZU5vZGUoQWx0ZXJPd25lclN0 bXQpOworCQkJCQluLT5vYmplY3RUeXBlID0gT0JKRUNUX1ZBUklBQkxFOworCQkJCQluLT5vYmpl Y3QgPSAoTm9kZSAqKSAkMzsKKwkJCQkJbi0+bmV3b3duZXIgPSAkNjsKKwkJCQkJJCQgPSAoTm9k ZSAqKW47CisJCQkJfQogCQk7CiAKIApAQCAtMTc5MTcsNiArMTgwMTAsOCBAQCB1bnJlc2VydmVk X2tleXdvcmQ6CiAJCQl8IFZBTElEQVRFCiAJCQl8IFZBTElEQVRPUgogCQkJfCBWQUxVRV9QCisJ CQl8IFZBUklBQkxFCisJCQl8IFZBUklBQkxFUwogCQkJfCBWQVJZSU5HCiAJCQl8IFZFUlNJT05f UAogCQkJfCBWSUVXCkBAIC0xODU3MCw2ICsxODY2NSw4IEBAIGJhcmVfbGFiZWxfa2V5d29yZDoK IAkJCXwgVkFMVUVfUAogCQkJfCBWQUxVRVMKIAkJCXwgVkFSQ0hBUgorCQkJfCBWQVJJQUJMRQor CQkJfCBWQVJJQUJMRVMKIAkJCXwgVkFSSUFESUMKIAkJCXwgVkVSQk9TRQogCQkJfCBWRVJTSU9O X1AKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMgYi9zcmMv YmFja2VuZC9wYXJzZXIvcGFyc2VfdXRpbGNtZC5jCmluZGV4IGQyZDgyYzljNTkuLjk4MTAyNmRk OGMgMTAwNjQ0Ci0tLSBhL3NyYy9iYWNrZW5kL3BhcnNlci9wYXJzZV91dGlsY21kLmMKKysrIGIv c3JjL2JhY2tlbmQvcGFyc2VyL3BhcnNlX3V0aWxjbWQuYwpAQCAtMTA1LDYgKzEwNSw3IEBAIHR5 cGVkZWYgc3RydWN0CiAJTGlzdAkgICAqaW5kZXhlczsJCS8qIENSRUFURSBJTkRFWCBpdGVtcyAq LwogCUxpc3QJICAgKnRyaWdnZXJzOwkJLyogQ1JFQVRFIFRSSUdHRVIgaXRlbXMgKi8KIAlMaXN0 CSAgICpncmFudHM7CQkJLyogR1JBTlQgaXRlbXMgKi8KKwlMaXN0CSAgICp2YXJpYWJsZXM7CQkv KiBDUkVBVEUgVkFSSUFCTEUgaXRlbXMgKi8KIH0gQ3JlYXRlU2NoZW1hU3RtdENvbnRleHQ7CiAK IApAQCAtNDAzOSw2ICs0MDQwLDcgQEAgdHJhbnNmb3JtQ3JlYXRlU2NoZW1hU3RtdEVsZW1lbnRz KExpc3QgKnNjaGVtYUVsdHMsIGNvbnN0IGNoYXIgKnNjaGVtYU5hbWUpCiAJY3h0LmluZGV4ZXMg PSBOSUw7CiAJY3h0LnRyaWdnZXJzID0gTklMOwogCWN4dC5ncmFudHMgPSBOSUw7CisJY3h0LnZh cmlhYmxlcyA9IE5JTDsKIAogCS8qCiAJICogUnVuIHRocm91Z2ggZWFjaCBzY2hlbWEgZWxlbWVu dCBpbiB0aGUgc2NoZW1hIGVsZW1lbnQgbGlzdC4gU2VwYXJhdGUKQEAgLTQxMDcsNiArNDEwOSwx NSBAQCB0cmFuc2Zvcm1DcmVhdGVTY2hlbWFTdG10RWxlbWVudHMoTGlzdCAqc2NoZW1hRWx0cywg Y29uc3QgY2hhciAqc2NoZW1hTmFtZSkKIAkJCQljeHQuZ3JhbnRzID0gbGFwcGVuZChjeHQuZ3Jh bnRzLCBlbGVtZW50KTsKIAkJCQlicmVhazsKIAorCQkJY2FzZSBUX0NyZWF0ZVNlc3Npb25WYXJT dG10OgorCQkJCXsKKwkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKmVscCA9IChDcmVhdGVTZXNz aW9uVmFyU3RtdCAqKSBlbGVtZW50OworCisJCQkJCXNldFNjaGVtYU5hbWUoY3h0LnNjaGVtYW5h bWUsICZlbHAtPnZhcmlhYmxlLT5zY2hlbWFuYW1lKTsKKwkJCQkJY3h0LnZhcmlhYmxlcyA9IGxh cHBlbmQoY3h0LnZhcmlhYmxlcywgZWxlbWVudCk7CisJCQkJfQorCQkJCWJyZWFrOworCiAJCQlk ZWZhdWx0OgogCQkJCWVsb2coRVJST1IsICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsCiAJ CQkJCSAoaW50KSBub2RlVGFnKGVsZW1lbnQpKTsKQEAgLTQxMjAsNiArNDEzMSw3IEBAIHRyYW5z Zm9ybUNyZWF0ZVNjaGVtYVN0bXRFbGVtZW50cyhMaXN0ICpzY2hlbWFFbHRzLCBjb25zdCBjaGFy ICpzY2hlbWFOYW1lKQogCXJlc3VsdCA9IGxpc3RfY29uY2F0KHJlc3VsdCwgY3h0LmluZGV4ZXMp OwogCXJlc3VsdCA9IGxpc3RfY29uY2F0KHJlc3VsdCwgY3h0LnRyaWdnZXJzKTsKIAlyZXN1bHQg PSBsaXN0X2NvbmNhdChyZXN1bHQsIGN4dC5ncmFudHMpOworCXJlc3VsdCA9IGxpc3RfY29uY2F0 KHJlc3VsdCwgY3h0LnZhcmlhYmxlcyk7CiAKIAlyZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvdGNvcC91dGlsaXR5LmMgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHku YwppbmRleCAyNWZlM2Q1ODAxLi45OWE1MTg3N2QzIDEwMDY0NAotLS0gYS9zcmMvYmFja2VuZC90 Y29wL3V0aWxpdHkuYworKysgYi9zcmMvYmFja2VuZC90Y29wL3V0aWxpdHkuYwpAQCAtMjMsNiAr MjMsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cvbmFtZXNwYWNlLmgiCiAjaW5jbHVkZSAiY2F0YWxv Zy9wZ19hdXRoaWQuaCIKICNpbmNsdWRlICJjYXRhbG9nL3BnX2luaGVyaXRzLmgiCisjaW5jbHVk ZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2luY2x1ZGUgImNhdGFsb2cvdG9hc3RpbmcuaCIK ICNpbmNsdWRlICJjb21tYW5kcy9hbHRlci5oIgogI2luY2x1ZGUgImNvbW1hbmRzL2FzeW5jLmgi CkBAIC0xODIsNiArMTgzLDcgQEAgQ2xhc3NpZnlVdGlsaXR5Q29tbWFuZEFzUmVhZE9ubHkoTm9k ZSAqcGFyc2V0cmVlKQogCQljYXNlIFRfQ3JlYXRlUmFuZ2VTdG10OgogCQljYXNlIFRfQ3JlYXRl Um9sZVN0bXQ6CiAJCWNhc2UgVF9DcmVhdGVTY2hlbWFTdG10OgorCQljYXNlIFRfQ3JlYXRlU2Vz c2lvblZhclN0bXQ6CiAJCWNhc2UgVF9DcmVhdGVTZXFTdG10OgogCQljYXNlIFRfQ3JlYXRlU3Rh dHNTdG10OgogCQljYXNlIFRfQ3JlYXRlU3RtdDoKQEAgLTEzODksNiArMTM5MSwxMCBAQCBQcm9j ZXNzVXRpbGl0eVNsb3coUGFyc2VTdGF0ZSAqcHN0YXRlLAogCQkJCX0KIAkJCQlicmVhazsKIAor CQkJY2FzZSBUX0NyZWF0ZVNlc3Npb25WYXJTdG10OgorCQkJCWFkZHJlc3MgPSBDcmVhdGVWYXJp YWJsZShwc3RhdGUsIChDcmVhdGVTZXNzaW9uVmFyU3RtdCAqKSBwYXJzZXRyZWUpOworCQkJCWJy ZWFrOworCiAJCQkJLyoKIAkJCQkgKiAqKioqKioqKioqKioqIG9iamVjdCBjcmVhdGlvbiAvIGRl c3RydWN0aW9uICoqKioqKioqKioqKioqCiAJCQkJICovCkBAIC0yMzQxLDYgKzIzNDcsOSBAQCBB bHRlck9iamVjdFR5cGVDb21tYW5kVGFnKE9iamVjdFR5cGUgb2JqdHlwZSkKIAkJY2FzZSBPQkpF Q1RfU1RBVElTVElDX0VYVDoKIAkJCXRhZyA9IENNRFRBR19BTFRFUl9TVEFUSVNUSUNTOwogCQkJ YnJlYWs7CisJCWNhc2UgT0JKRUNUX1ZBUklBQkxFOgorCQkJdGFnID0gQ01EVEFHX0FMVEVSX1ZB UklBQkxFOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQl0YWcgPSBDTURUQUdfVU5LTk9XTjsK IAkJCWJyZWFrOwpAQCAtMjY0OSw2ICsyNjU4LDkgQEAgQ3JlYXRlQ29tbWFuZFRhZyhOb2RlICpw YXJzZXRyZWUpCiAJCQkJY2FzZSBPQkpFQ1RfU1RBVElTVElDX0VYVDoKIAkJCQkJdGFnID0gQ01E VEFHX0RST1BfU1RBVElTVElDUzsKIAkJCQkJYnJlYWs7CisJCQkJY2FzZSBPQkpFQ1RfVkFSSUFC TEU6CisJCQkJCXRhZyA9IENNRFRBR19EUk9QX1ZBUklBQkxFOworCQkJCQlicmVhazsKIAkJCQlk ZWZhdWx0OgogCQkJCQl0YWcgPSBDTURUQUdfVU5LTk9XTjsKIAkJCX0KQEAgLTMyMjUsNiArMzIz NywxMCBAQCBDcmVhdGVDb21tYW5kVGFnKE5vZGUgKnBhcnNldHJlZSkKIAkJCX0KIAkJCWJyZWFr OwogCisJCWNhc2UgVF9DcmVhdGVTZXNzaW9uVmFyU3RtdDoKKwkJCXRhZyA9IENNRFRBR19DUkVB VEVfVkFSSUFCTEU7CisJCQlicmVhazsKKwogCQlkZWZhdWx0OgogCQkJZWxvZyhXQVJOSU5HLCAi dW5yZWNvZ25pemVkIG5vZGUgdHlwZTogJWQiLAogCQkJCSAoaW50KSBub2RlVGFnKHBhcnNldHJl ZSkpOwpAQCAtMzc1OSw2ICszNzc1LDEwIEBAIEdldENvbW1hbmRMb2dMZXZlbChOb2RlICpwYXJz ZXRyZWUpCiAJCQl9CiAJCQlicmVhazsKIAorCQljYXNlIFRfQ3JlYXRlU2Vzc2lvblZhclN0bXQ6 CisJCQlsZXYgPSBMT0dTVE1UX0RETDsKKwkJCWJyZWFrOworCiAJCWRlZmF1bHQ6CiAJCQllbG9n KFdBUk5JTkcsICJ1bnJlY29nbml6ZWQgbm9kZSB0eXBlOiAlZCIsCiAJCQkJIChpbnQpIG5vZGVU YWcocGFyc2V0cmVlKSk7CmRpZmYgLS1naXQgYS9zcmMvYmFja2VuZC91dGlscy9hZHQvYWNsLmMg Yi9zcmMvYmFja2VuZC91dGlscy9hZHQvYWNsLmMKaW5kZXggNmE3NjU1MGE1ZS4uMzc3ZGUwYjdj NiAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvdXRpbHMvYWR0L2FjbC5jCisrKyBiL3NyYy9iYWNr ZW5kL3V0aWxzL2FkdC9hY2wuYwpAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgImNhdGFsb2cv cGdfcHJvYy5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdGFibGVzcGFjZS5oIgogI2luY2x1ZGUg ImNhdGFsb2cvcGdfdHlwZS5oIgorI2luY2x1ZGUgImNhdGFsb2cvcGdfdmFyaWFibGUuaCIKICNp bmNsdWRlICJjb21tYW5kcy9kYmNvbW1hbmRzLmgiCiAjaW5jbHVkZSAiY29tbWFuZHMvcHJvY2xh bmcuaCIKICNpbmNsdWRlICJjb21tYW5kcy90YWJsZXNwYWNlLmgiCkBAIC0xMjksNiArMTMwLDgg QEAgc3RhdGljIEFjbE1vZGUgY29udmVydF90eXBlX3ByaXZfc3RyaW5nKHRleHQgKnByaXZfdHlw ZV90ZXh0KTsKIHN0YXRpYyBBY2xNb2RlIGNvbnZlcnRfcGFyYW1ldGVyX3ByaXZfc3RyaW5nKHRl eHQgKnByaXZfdGV4dCk7CiBzdGF0aWMgQWNsTW9kZSBjb252ZXJ0X2xhcmdlb2JqZWN0X3ByaXZf c3RyaW5nKHRleHQgKnByaXZfdGV4dCk7CiBzdGF0aWMgQWNsTW9kZSBjb252ZXJ0X3JvbGVfcHJp dl9zdHJpbmcodGV4dCAqcHJpdl90eXBlX3RleHQpOworc3RhdGljIE9pZAljb252ZXJ0X3Nlc3Np b25fdmFyaWFibGVfbmFtZSh0ZXh0ICp2YXJuYW1lKTsKK3N0YXRpYyBBY2xNb2RlIGNvbnZlcnRf c2Vzc2lvbl92YXJpYWJsZV9wcml2X3N0cmluZyh0ZXh0ICpwcml2X3R5cGVfdGV4dCk7CiBzdGF0 aWMgQWNsUmVzdWx0IHBnX3JvbGVfYWNsY2hlY2soT2lkIHJvbGVfb2lkLCBPaWQgcm9sZWlkLCBB Y2xNb2RlIG1vZGUpOwogCiBzdGF0aWMgdm9pZCBSb2xlTWVtYmVyc2hpcENhY2hlQ2FsbGJhY2so RGF0dW0gYXJnLCBpbnQgY2FjaGVpZCwgdWludDMyIGhhc2h2YWx1ZSk7CkBAIC04NTEsNiArODU0 LDEwIEBAIGFjbGRlZmF1bHQoT2JqZWN0VHlwZSBvYmp0eXBlLCBPaWQgb3duZXJJZCkKIAkJCXdv cmxkX2RlZmF1bHQgPSBBQ0xfTk9fUklHSFRTOwogCQkJb3duZXJfZGVmYXVsdCA9IEFDTF9BTExf UklHSFRTX1BBUkFNRVRFUl9BQ0w7CiAJCQlicmVhazsKKwkJY2FzZSBPQkpFQ1RfVkFSSUFCTEU6 CisJCQl3b3JsZF9kZWZhdWx0ID0gQUNMX05PX1JJR0hUUzsKKwkJCW93bmVyX2RlZmF1bHQgPSBB Q0xfQUxMX1JJR0hUU19WQVJJQUJMRTsKKwkJCWJyZWFrOwogCQlkZWZhdWx0OgogCQkJZWxvZyhF UlJPUiwgInVucmVjb2duaXplZCBvYmplY3QgdHlwZTogJWQiLCAoaW50KSBvYmp0eXBlKTsKIAkJ CXdvcmxkX2RlZmF1bHQgPSBBQ0xfTk9fUklHSFRTOwkvKiBrZWVwIGNvbXBpbGVyIHF1aWV0ICov CkBAIC05NDgsNiArOTU1LDkgQEAgYWNsZGVmYXVsdF9zcWwoUEdfRlVOQ1RJT05fQVJHUykKIAkJ Y2FzZSAnVCc6CiAJCQlvYmp0eXBlID0gT0JKRUNUX1RZUEU7CiAJCQlicmVhazsKKwkJY2FzZSAn Vic6CisJCQlvYmp0eXBlID0gT0JKRUNUX1ZBUklBQkxFOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6 CiAJCQllbG9nKEVSUk9SLCAidW5yZWNvZ25pemVkIG9iamVjdCB0eXBlIGFiYnJldmlhdGlvbjog JWMiLCBvYmp0eXBlYyk7CiAJfQpAQCAtNTAxNiw2ICs1MDI2LDIxNyBAQCBwZ19yb2xlX2FjbGNo ZWNrKE9pZCByb2xlX29pZCwgT2lkIHJvbGVpZCwgQWNsTW9kZSBtb2RlKQogCXJldHVybiBBQ0xD SEVDS19OT19QUklWOwogfQogCisvKgorICogaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdl IHZhcmlhbnRzCisgKgkJVGhlc2UgYXJlIGFsbCBuYW1lZCAiaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlIiBhdCB0aGUgU1FMIGxldmVsLgorICoJCVRoZXkgdGFrZSB2YXJpb3VzIGNvbWJp bmF0aW9ucyBvZiB2YXJpYWJsZSBuYW1lLCB2YXJpYWJsZSBPSUQsCisgKgkJdXNlciBuYW1lLCB1 c2VyIE9JRCwgb3IgaW1wbGljaXQgdXNlciA9IGN1cnJlbnRfdXNlci4KKyAqCisgKgkJVGhlIHJl c3VsdCBpcyBhIGJvb2xlYW4gdmFsdWU6IHRydWUgaWYgdXNlciBoYXMgdGhlIGluZGljYXRlZAor ICoJCXByaXZpbGVnZSwgZmFsc2UgaWYgbm90LCBvciBOVUxMIGlmIHNlc3Npb24gdmFyaWFibGUg ZG9lc24ndAorICoJCWV4aXN0cy4KKyAqLworCisvKgorICogaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlX25hbWVfbmFtZQorICoJCUNoZWNrIHVzZXIgcHJpdmlsZWdlcyBvbiBhIHNlc3Np b24gdmFyaWFibGUgZ2l2ZW4KKyAqCQluYW1lIHVzZXJuYW1lLCB0ZXh0IHNlc3Npb24gdmFyaWFi bGUgbmFtZSwgYW5kIHRleHQgcHJpdiBuYW1lLgorICovCitEYXR1bQoraGFzX3Nlc3Npb25fdmFy aWFibGVfcHJpdmlsZWdlX25hbWVfbmFtZShQR19GVU5DVElPTl9BUkdTKQoreworCU5hbWUJCXJv bGVuYW1lID0gUEdfR0VUQVJHX05BTUUoMCk7CisJdGV4dAkgICAqdmFybmFtZSA9IFBHX0dFVEFS R19URVhUX1BQKDEpOworCXRleHQJICAgKnByaXZfdHlwZV90ZXh0ID0gUEdfR0VUQVJHX1RFWFRf UFAoMik7CisJT2lkCQkJcm9sZWlkOworCU9pZAkJCXZhcmlkOworCUFjbE1vZGUJCW1vZGU7CisJ QWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlib29sCQlpc19taXNzaW5nID0gZmFsc2U7CisKKwlyb2xl aWQgPSBnZXRfcm9sZV9vaWRfb3JfcHVibGljKE5hbWVTdHIoKnJvbGVuYW1lKSk7CisJbW9kZSA9 IGNvbnZlcnRfc2Vzc2lvbl92YXJpYWJsZV9wcml2X3N0cmluZyhwcml2X3R5cGVfdGV4dCk7CisJ dmFyaWQgPSBjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh2YXJuYW1lKTsKKworCWFjbHJl c3VsdCA9IG9iamVjdF9hY2xjaGVja19leHQoVmFyaWFibGVSZWxhdGlvbklkLCB2YXJpZCwKKwkJ CQkJCQkJCXJvbGVpZCwgbW9kZSwKKwkJCQkJCQkJCSZpc19taXNzaW5nKTsKKworCWlmIChpc19t aXNzaW5nKQorCQlQR19SRVRVUk5fTlVMTCgpOworCisJUEdfUkVUVVJOX0JPT0woYWNscmVzdWx0 ID09IEFDTENIRUNLX09LKTsKK30KKworLyoKKyAqIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZp bGVnZV9uYW1lCisgKgkJQ2hlY2sgdXNlciBwcml2aWxlZ2VzIG9uIGEgc2Vzc2lvbiB2YXJpYWJs ZSBnaXZlbgorICoJCXRleHQgc2Vzc2lvbiB2YXJpYWJsZSBhbmQgdGV4dCBwcml2IG5hbWUuCisg KgkJY3VycmVudF91c2VyIGlzIGFzc3VtZWQKKyAqLworRGF0dW0KK2hhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZV9uYW1lKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJdGV4dAkgICAqdmFybmFt ZSA9IFBHX0dFVEFSR19URVhUX1BQKDApOworCXRleHQJICAgKnByaXZfdHlwZV90ZXh0ID0gUEdf R0VUQVJHX1RFWFRfUFAoMSk7CisJT2lkCQkJcm9sZWlkOworCU9pZAkJCXZhcmlkOworCUFjbE1v ZGUJCW1vZGU7CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlib29sCQlpc19taXNzaW5nID0gZmFs c2U7CisKKwlyb2xlaWQgPSBHZXRVc2VySWQoKTsKKwltb2RlID0gY29udmVydF9zZXNzaW9uX3Zh cmlhYmxlX3ByaXZfc3RyaW5nKHByaXZfdHlwZV90ZXh0KTsKKwl2YXJpZCA9IGNvbnZlcnRfc2Vz c2lvbl92YXJpYWJsZV9uYW1lKHZhcm5hbWUpOworCisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNo ZWNrX2V4dChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLAorCQkJCQkJCQkJcm9sZWlkLCBtb2Rl LAorCQkJCQkJCQkJJmlzX21pc3NpbmcpOworCisJUEdfUkVUVVJOX0JPT0woYWNscmVzdWx0ID09 IEFDTENIRUNLX09LKTsKK30KKworLyoKKyAqIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZV9uYW1lX2lkCisgKgkJQ2hlY2sgdXNlciBwcml2aWxlZ2VzIG9uIGEgc2Vzc2lvbiB2YXJpYWJs ZSBnaXZlbgorICoJCW5hbWUgdXNlbmFtZSwgc2Vzc2lvbiB2YXJpYWJsZSBvaWQsIGFuZCB0ZXh0 IHByaXYgbmFtZS4KKyAqLworRGF0dW0KK2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9u YW1lX2lkKFBHX0ZVTkNUSU9OX0FSR1MpCit7CisJTmFtZQkJdXNlcm5hbWUgPSBQR19HRVRBUkdf TkFNRSgwKTsKKwlPaWQJCQl2YXJpZCA9IFBHX0dFVEFSR19PSUQoMSk7CisJdGV4dAkgICAqcHJp dl90eXBlX3RleHQgPSBQR19HRVRBUkdfVEVYVF9QUCgyKTsKKwlPaWQJCQlyb2xlaWQ7CisJQWNs TW9kZQkJbW9kZTsKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCWJvb2wJCWlzX21pc3NpbmcgPSBm YWxzZTsKKworCXJvbGVpZCA9IGdldF9yb2xlX29pZF9vcl9wdWJsaWMoTmFtZVN0cigqdXNlcm5h bWUpKTsKKwltb2RlID0gY29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX3ByaXZfc3RyaW5nKHByaXZf dHlwZV90ZXh0KTsKKworCWFjbHJlc3VsdCA9IG9iamVjdF9hY2xjaGVja19leHQoVmFyaWFibGVS ZWxhdGlvbklkLCB2YXJpZCwKKwkJCQkJCQkJCXJvbGVpZCwgbW9kZSwKKwkJCQkJCQkJCSZpc19t aXNzaW5nKTsKKworCWlmIChpc19taXNzaW5nKQorCQlQR19SRVRVUk5fTlVMTCgpOworCisJUEdf UkVUVVJOX0JPT0woYWNscmVzdWx0ID09IEFDTENIRUNLX09LKTsKK30KKworLyoKKyAqIGhhc19z ZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9pZAorICoJCUNoZWNrIHVzZXIgcHJpdmlsZWdlcyBv biBhIHNlc3Npb24gdmFyaWFibGUgZ2l2ZW4KKyAqCQlzZXNzaW9uIHZhcmlhYmxlIG9pZCwgYW5k IHRleHQgcHJpdiBuYW1lLgorICoJCWN1cnJlbnRfdXNlciBpcyBhc3N1bWVkCisgKi8KK0RhdHVt CitoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfaWQoUEdfRlVOQ1RJT05fQVJHUykKK3sK KwlPaWQJCQl2YXJpZCA9IFBHX0dFVEFSR19PSUQoMCk7CisJdGV4dAkgICAqcHJpdl90eXBlX3Rl eHQgPSBQR19HRVRBUkdfVEVYVF9QUCgxKTsKKwlPaWQJCQlyb2xlaWQ7CisJQWNsTW9kZQkJbW9k ZTsKKwlBY2xSZXN1bHQJYWNscmVzdWx0OworCWJvb2wJCWlzX21pc3NpbmcgPSBmYWxzZTsKKwor CXJvbGVpZCA9IEdldFVzZXJJZCgpOworCW1vZGUgPSBjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVf cHJpdl9zdHJpbmcocHJpdl90eXBlX3RleHQpOworCisJYWNscmVzdWx0ID0gb2JqZWN0X2FjbGNo ZWNrX2V4dChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLAorCQkJCQkJCQkJcm9sZWlkLCBtb2Rl LAorCQkJCQkJCQkJJmlzX21pc3NpbmcpOworCisJaWYgKGlzX21pc3NpbmcpCisJCVBHX1JFVFVS Tl9OVUxMKCk7CisKKwlQR19SRVRVUk5fQk9PTChhY2xyZXN1bHQgPT0gQUNMQ0hFQ0tfT0spOwor fQorCisvKgorICogaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX2lkX25hbWUKKyAqCQlD aGVjayB1c2VyIHByaXZpbGVnZXMgb24gYSBzZXNzaW9uIHZhcmlhYmxlIGdpdmVuCisgKgkJcm9s ZWlkLCB0ZXh0IHNlc3Npb24gdmFyaWFibGUgbmFtZSwgYW5kIHRleHQgcHJpdiBuYW1lLgorICov CitEYXR1bQoraGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX2lkX25hbWUoUEdfRlVOQ1RJ T05fQVJHUykKK3sKKwlPaWQJCQlyb2xlaWQgPSBQR19HRVRBUkdfT0lEKDApOworCXRleHQJICAg KnZhcm5hbWUgPSBQR19HRVRBUkdfVEVYVF9QUCgxKTsKKwl0ZXh0CSAgICpwcml2X3R5cGVfdGV4 dCA9IFBHX0dFVEFSR19URVhUX1BQKDIpOworCU9pZAkJCXZhcmlkOworCUFjbE1vZGUJCW1vZGU7 CisJQWNsUmVzdWx0CWFjbHJlc3VsdDsKKwlib29sCQlpc19taXNzaW5nID0gZmFsc2U7CisKKwlt b2RlID0gY29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX3ByaXZfc3RyaW5nKHByaXZfdHlwZV90ZXh0 KTsKKwl2YXJpZCA9IGNvbnZlcnRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lKHZhcm5hbWUpOworCisJ YWNscmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrX2V4dChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlk LAorCQkJCQkJCQkJcm9sZWlkLCBtb2RlLAorCQkJCQkJCQkJJmlzX21pc3NpbmcpOworCisJaWYg KGlzX21pc3NpbmcpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwlQR19SRVRVUk5fQk9PTChhY2xy ZXN1bHQgPT0gQUNMQ0hFQ0tfT0spOworfQorCisvKgorICogaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlX2lkX2lkCisgKgkJQ2hlY2sgdXNlciBwcml2aWxlZ2VzIG9uIGEgc2Vzc2lvbiB2 YXJpYWJsZSBnaXZlbgorICoJCXJvbGVpZCwgc2Vzc2lvbiB2YXJpYWJsZSBvaWQsIGFuZCB0ZXh0 IHByaXYgbmFtZS4KKyAqLworRGF0dW0KK2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZV9p ZF9pZChQR19GVU5DVElPTl9BUkdTKQoreworCU9pZAkJCXJvbGVpZCA9IFBHX0dFVEFSR19PSUQo MCk7CisJT2lkCQkJdmFyaWQgPSBQR19HRVRBUkdfT0lEKDEpOworCXRleHQJICAgKnByaXZfdHlw ZV90ZXh0ID0gUEdfR0VUQVJHX1RFWFRfUFAoMik7CisJQWNsTW9kZQkJbW9kZTsKKwlBY2xSZXN1 bHQJYWNscmVzdWx0OworCWJvb2wJCWlzX21pc3NpbmcgPSBmYWxzZTsKKworCW1vZGUgPSBjb252 ZXJ0X3Nlc3Npb25fdmFyaWFibGVfcHJpdl9zdHJpbmcocHJpdl90eXBlX3RleHQpOworCisJYWNs cmVzdWx0ID0gb2JqZWN0X2FjbGNoZWNrX2V4dChWYXJpYWJsZVJlbGF0aW9uSWQsIHZhcmlkLAor CQkJCQkJCQkJcm9sZWlkLCBtb2RlLAorCQkJCQkJCQkJJmlzX21pc3NpbmcpOworCisJaWYgKGlz X21pc3NpbmcpCisJCVBHX1JFVFVSTl9OVUxMKCk7CisKKwlQR19SRVRVUk5fQk9PTChhY2xyZXN1 bHQgPT0gQUNMQ0hFQ0tfT0spOworfQorCisvKgorICogR2l2ZW4gYSBzZXNzaW9uIHZhcmlhYmxl IG5hbWUgZXhwcmVzc2VkIGFzIGEgc3RyaW5nLCBsb29rIGl0IHVwIGFuZCByZXR1cm4KKyAqIE9p ZAorICovCitzdGF0aWMgT2lkCitjb252ZXJ0X3Nlc3Npb25fdmFyaWFibGVfbmFtZSh0ZXh0ICp2 YXJuYW1lKQoreworCXJldHVybiBMb29rdXBWYXJpYWJsZUZyb21OYW1lTGlzdCh0ZXh0VG9RdWFs aWZpZWROYW1lTGlzdCh2YXJuYW1lKSwgdHJ1ZSk7Cit9CisKKy8qCisgKiBjb252ZXJ0X3Zhcmlh YmxlX3ByaXZfc3RyaW5nCisgKgkJQ29udmVydCB0ZXh0IHN0cmluZyB0byBBY2xNb2RlIHZhbHVl LgorICovCitzdGF0aWMgQWNsTW9kZQorY29udmVydF9zZXNzaW9uX3ZhcmlhYmxlX3ByaXZfc3Ry aW5nKHRleHQgKnByaXZfdHlwZV90ZXh0KQoreworCXN0YXRpYyBjb25zdCBwcml2X21hcCBzZXNz aW9uX3ZhcmlhYmxlX3ByaXZfbWFwW10gPSB7CisJCXsiU0VMRUNUIiwgQUNMX1NFTEVDVH0sCisJ CXsiU0VMRUNUIFdJVEggR1JBTlQgT1BUSU9OIiwgQUNMX0dSQU5UX09QVElPTl9GT1IoQUNMX1NF TEVDVCl9LAorCQl7IlVQREFURSIsIEFDTF9VUERBVEV9LAorCQl7IlVQREFURSBXSVRIIEdSQU5U IE9QVElPTiIsIEFDTF9HUkFOVF9PUFRJT05fRk9SKEFDTF9VUERBVEUpfSwKKwkJe05VTEwsIDB9 CisJfTsKKworCXJldHVybiBjb252ZXJ0X2FueV9wcml2X3N0cmluZyhwcml2X3R5cGVfdGV4dCwg c2Vzc2lvbl92YXJpYWJsZV9wcml2X21hcCk7Cit9CiAKIC8qCiAgKiBpbml0aWFsaXphdGlvbiBm dW5jdGlvbiAoY2FsbGVkIGJ5IEluaXRQb3N0Z3JlcykKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5k L3V0aWxzL2NhY2hlL2xzeXNjYWNoZS5jIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUvbHN5c2Nh Y2hlLmMKaW5kZXggOGNkYjU1ODI1My4uNGY1YzQ3MmUxYSAxMDA2NDQKLS0tIGEvc3JjL2JhY2tl bmQvdXRpbHMvY2FjaGUvbHN5c2NhY2hlLmMKKysrIGIvc3JjL2JhY2tlbmQvdXRpbHMvY2FjaGUv bHN5c2NhY2hlLmMKQEAgLTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJjYXRhbG9nL3BnX3N1YnNj cmlwdGlvbi5oIgogI2luY2x1ZGUgImNhdGFsb2cvcGdfdHJhbnNmb3JtLmgiCiAjaW5jbHVkZSAi Y2F0YWxvZy9wZ190eXBlLmgiCisjaW5jbHVkZSAiY2F0YWxvZy9wZ192YXJpYWJsZS5oIgogI2lu Y2x1ZGUgIm1pc2NhZG1pbi5oIgogI2luY2x1ZGUgIm5vZGVzL21ha2VmdW5jcy5oIgogI2luY2x1 ZGUgInV0aWxzL2FycmF5LmgiCkBAIC0zNzE0LDMgKzM3MTUsMTE1IEBAIGdldF9zdWJzY3JpcHRp b25fbmFtZShPaWQgc3ViaWQsIGJvb2wgbWlzc2luZ19vaykKIAogCXJldHVybiBzdWJuYW1lOwog fQorCisvKgkJCQktLS0tLS0tLS0tIFBHX1ZBUklBQkxFIENBQ0hFIC0tLS0tLS0tLS0JCQkJICov CisKKy8qCisgKiBnZXRfdmFybmFtZV92YXJpZAorICoJCUdpdmVuIG5hbWUgYW5kIG5hbWVzcGFj ZSBvZiB2YXJpYWJsZSwgbG9vayB1cCB0aGUgT0lELgorICovCitPaWQKK2dldF92YXJuYW1lX3Zh cmlkKGNvbnN0IGNoYXIgKnZhcm5hbWUsIE9pZCB2YXJuYW1lc3BhY2UpCit7CisJcmV0dXJuIEdl dFN5c0NhY2hlT2lkMihWQVJJQUJMRU5BTUVOU1AsIEFudW1fcGdfdmFyaWFibGVfb2lkLAorCQkJ CQkJICAgUG9pbnRlckdldERhdHVtKHZhcm5hbWUpLAorCQkJCQkJICAgT2JqZWN0SWRHZXREYXR1 bSh2YXJuYW1lc3BhY2UpKTsKK30KKworLyoKKyAqIGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUK KyAqCQlSZXR1cm5zIGEgcGFsbG9jJ2QgY29weSBvZiB0aGUgbmFtZSBvZiBhIGdpdmVuIHNlc3Np b24gdmFyaWFibGUuCisgKi8KK2NoYXIgKgorZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZShPaWQg dmFyaWQpCit7CisJSGVhcFR1cGxlCXR1cDsKKwlGb3JtX3BnX3ZhcmlhYmxlIHZhcmZvcm07CisJ Y2hhcgkgICAqdmFybmFtZTsKKworCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwg T2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOworCisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkp CisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciBzZXNzaW9uIHZhcmlhYmxl ICV1IiwgdmFyaWQpOworCisJdmFyZm9ybSA9IChGb3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1Qo dHVwKTsKKworCXZhcm5hbWUgPSBwc3RyZHVwKE5hbWVTdHIodmFyZm9ybS0+dmFybmFtZSkpOwor CisJUmVsZWFzZVN5c0NhY2hlKHR1cCk7CisKKwlyZXR1cm4gdmFybmFtZTsKK30KKworLyoKKyAq IGdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWVzcGFjZQorICoJCVJldHVybnMgdGhlIHBnX25hbWVz cGFjZSBPSUQgYXNzb2NpYXRlZCB3aXRoIGEgZ2l2ZW4gc2Vzc2lvbiB2YXJpYWJsZS4KKyAqLwor T2lkCitnZXRfc2Vzc2lvbl92YXJpYWJsZV9uYW1lc3BhY2UoT2lkIHZhcmlkKQoreworCUhlYXBU dXBsZQl0dXA7CisJRm9ybV9wZ192YXJpYWJsZSB2YXJmb3JtOworCU9pZAkJCXZhcm5hbWVzcGFj ZTsKKworCXR1cCA9IFNlYXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1 bSh2YXJpZCkpOworCisJaWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCWVsb2coRVJST1Is ICJjYWNoZSBsb29rdXAgZmFpbGVkIGZvciB2YXJpYWJsZSAldSIsIHZhcmlkKTsKKworCXZhcmZv cm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RSVUNUKHR1cCk7CisKKwl2YXJuYW1lc3BhY2Ug PSB2YXJmb3JtLT52YXJuYW1lc3BhY2U7CisKKwlSZWxlYXNlU3lzQ2FjaGUodHVwKTsKKworCXJl dHVybiB2YXJuYW1lc3BhY2U7Cit9CisKKy8qCisgKiBSZXR1cm5zIHRoZSB0eXBlIG9mIHRoZSBn aXZlbiBzZXNzaW9uIHZhcmlhYmxlLgorICovCitPaWQKK2dldF9zZXNzaW9uX3ZhcmlhYmxlX3R5 cGUoT2lkIHZhcmlkKQoreworCUhlYXBUdXBsZQl0dXA7CisJRm9ybV9wZ192YXJpYWJsZSB2YXJm b3JtOworCU9pZAkJCXZhcnR5cGU7CisKKwl0dXAgPSBTZWFyY2hTeXNDYWNoZTEoVkFSSUFCTEVP SUQsIE9iamVjdElkR2V0RGF0dW0odmFyaWQpKTsKKworCWlmICghSGVhcFR1cGxlSXNWYWxpZCh0 dXApKQorCQllbG9nKEVSUk9SLCAiY2FjaGUgbG9va3VwIGZhaWxlZCBmb3Igc2Vzc2lvbiB2YXJp YWJsZSAldSIsIHZhcmlkKTsKKworCXZhcmZvcm0gPSAoRm9ybV9wZ192YXJpYWJsZSkgR0VUU1RS VUNUKHR1cCk7CisKKwl2YXJ0eXBlID0gdmFyZm9ybS0+dmFydHlwZTsKKworCVJlbGVhc2VTeXND YWNoZSh0dXApOworCisJcmV0dXJuIHZhcnR5cGU7Cit9CisKKy8qCisgKiBSZXR1cm5zIHRoZSB0 eXBlLCB0eXBtb2QgYW5kIGNvbGxpZCBvZiB0aGUgZ2l2ZW4gc2Vzc2lvbiB2YXJpYWJsZS4KKyAq Lwordm9pZAorZ2V0X3Nlc3Npb25fdmFyaWFibGVfdHlwZV90eXBtb2RfY29sbGlkKE9pZCB2YXJp ZCwgT2lkICp0eXBpZCwgaW50MzIgKnR5cG1vZCwKKwkJCQkJCQkJCQlPaWQgKmNvbGxpZCkKK3sK KwlIZWFwVHVwbGUJdHVwOworCUZvcm1fcGdfdmFyaWFibGUgdmFyZm9ybTsKKworCXR1cCA9IFNl YXJjaFN5c0NhY2hlMShWQVJJQUJMRU9JRCwgT2JqZWN0SWRHZXREYXR1bSh2YXJpZCkpOworCisJ aWYgKCFIZWFwVHVwbGVJc1ZhbGlkKHR1cCkpCisJCWVsb2coRVJST1IsICJjYWNoZSBsb29rdXAg ZmFpbGVkIGZvciBzZXNzaW9uIHZhcmlhYmxlICV1IiwgdmFyaWQpOworCisJdmFyZm9ybSA9IChG b3JtX3BnX3ZhcmlhYmxlKSBHRVRTVFJVQ1QodHVwKTsKKworCSp0eXBpZCA9IHZhcmZvcm0tPnZh cnR5cGU7CisJKnR5cG1vZCA9IHZhcmZvcm0tPnZhcnR5cG1vZDsKKwkqY29sbGlkID0gdmFyZm9y bS0+dmFyY29sbGF0aW9uOworCisJUmVsZWFzZVN5c0NhY2hlKHR1cCk7Cit9CmRpZmYgLS1naXQg YS9zcmMvYmluL3BnX2R1bXAvY29tbW9uLmMgYi9zcmMvYmluL3BnX2R1bXAvY29tbW9uLmMKaW5k ZXggNTZiNmMzNjhhYy4uYmE2YjE5ZGM5YSAxMDA2NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL2Nv bW1vbi5jCisrKyBiL3NyYy9iaW4vcGdfZHVtcC9jb21tb24uYwpAQCAtMjQ2LDYgKzI0Niw5IEBA IGdldFNjaGVtYURhdGEoQXJjaGl2ZSAqZm91dCwgaW50ICpudW1UYWJsZXNQdHIpCiAJcGdfbG9n X2luZm8oInJlYWRpbmcgc3Vic2NyaXB0aW9uIG1lbWJlcnNoaXAgb2YgdGFibGVzIik7CiAJZ2V0 U3Vic2NyaXB0aW9uVGFibGVzKGZvdXQpOwogCisJcGdfbG9nX2luZm8oInJlYWRpbmcgdmFyaWFi bGVzIik7CisJZ2V0VmFyaWFibGVzKGZvdXQpOworCiAJZnJlZShpbmhpbmZvKTsJCQkJLyogbm90 IG5lZWRlZCBhbnkgbG9uZ2VyICovCiAKIAkqbnVtVGFibGVzUHRyID0gbnVtVGFibGVzOwpkaWZm IC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL2R1bXB1dGlscy5jIGIvc3JjL2Jpbi9wZ19kdW1wL2R1 bXB1dGlscy5jCmluZGV4IDVhZTc3Zjc2MzYuLjUxNjFlZTc4MGUgMTAwNjQ0Ci0tLSBhL3NyYy9i aW4vcGdfZHVtcC9kdW1wdXRpbHMuYworKysgYi9zcmMvYmluL3BnX2R1bXAvZHVtcHV0aWxzLmMK QEAgLTUxMSw2ICs1MTEsMTIgQEAgZG8geyBcCiAJCUNPTlZFUlRfUFJJVigncicsICJTRUxFQ1Qi KTsKIAkJQ09OVkVSVF9QUklWKCd3JywgIlVQREFURSIpOwogCX0KKwllbHNlIGlmIChzdHJjbXAo dHlwZSwgIlZBUklBQkxFIikgPT0gMCB8fAorCQkJIHN0cmNtcCh0eXBlLCAiVkFSSUFCTEVTIikg PT0gMCkKKwl7CisJCUNPTlZFUlRfUFJJVigncicsICJTRUxFQ1QiKTsKKwkJQ09OVkVSVF9QUklW KCd3JywgIlVQREFURSIpOworCX0KIAllbHNlCiAJCWFib3J0KCk7CiAKZGlmZiAtLWdpdCBhL3Ny Yy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaCBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXAuaApp bmRleCBmMGYxOWJiMGIyLi40NGVlZDAzYTJmIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAv cGdfYmFja3VwLmgKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1cC5oCkBAIC0xMzIsMTIg KzEzMiwxNCBAQCB0eXBlZGVmIHN0cnVjdCBfcmVzdG9yZU9wdGlvbnMKIAlpbnQJCQlzZWxGdW5j dGlvbjsKIAlpbnQJCQlzZWxUcmlnZ2VyOwogCWludAkJCXNlbFRhYmxlOworCWludAkJCXNlbFZh cmlhYmxlOwogCVNpbXBsZVN0cmluZ0xpc3QgaW5kZXhOYW1lczsKIAlTaW1wbGVTdHJpbmdMaXN0 IGZ1bmN0aW9uTmFtZXM7CiAJU2ltcGxlU3RyaW5nTGlzdCBzY2hlbWFOYW1lczsKIAlTaW1wbGVT dHJpbmdMaXN0IHNjaGVtYUV4Y2x1ZGVOYW1lczsKIAlTaW1wbGVTdHJpbmdMaXN0IHRyaWdnZXJO YW1lczsKIAlTaW1wbGVTdHJpbmdMaXN0IHRhYmxlTmFtZXM7CisJU2ltcGxlU3RyaW5nTGlzdCB2 YXJpYWJsZU5hbWVzOwogCiAJaW50CQkJdXNlREI7CiAJQ29ublBhcmFtcwljcGFyYW1zOwkJLyog cGFyYW1ldGVycyB0byB1c2UgaWYgdXNlREIgKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcGdfZHVt cC9wZ19iYWNrdXBfYXJjaGl2ZXIuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19iYWNrdXBfYXJjaGl2 ZXIuYwppbmRleCA3MDdhM2ZjODQ0Li5hZmFiZTVmZTQ5IDEwMDY0NAotLS0gYS9zcmMvYmluL3Bn X2R1bXAvcGdfYmFja3VwX2FyY2hpdmVyLmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2JhY2t1 cF9hcmNoaXZlci5jCkBAIC0zMTAyLDYgKzMxMDIsMTQgQEAgX3RvY0VudHJ5UmVxdWlyZWQoVG9j RW50cnkgKnRlLCB0ZVNlY3Rpb24gY3VyU2VjdGlvbiwgQXJjaGl2ZUhhbmRsZSAqQUgpCiAJCQkJ CSFzaW1wbGVfc3RyaW5nX2xpc3RfbWVtYmVyKCZyb3B0LT50cmlnZ2VyTmFtZXMsIHRlLT50YWcp KQogCQkJCQlyZXR1cm4gMDsKIAkJCX0KKwkJCWVsc2UgaWYgKHN0cmNtcCh0ZS0+ZGVzYywgIlZB UklBQkxFIikgPT0gMCkKKwkJCXsKKwkJCQlpZiAoIXJvcHQtPnNlbFZhcmlhYmxlKQorCQkJCQly ZXR1cm4gMDsKKwkJCQlpZiAocm9wdC0+dmFyaWFibGVOYW1lcy5oZWFkICE9IE5VTEwgJiYKKwkJ CQkJIXNpbXBsZV9zdHJpbmdfbGlzdF9tZW1iZXIoJnJvcHQtPnZhcmlhYmxlTmFtZXMsIHRlLT50 YWcpKQorCQkJCQlyZXR1cm4gMDsKKwkJCX0KIAkJCWVsc2UKIAkJCQlyZXR1cm4gMDsKIAkJfQpA QCAtMzY1MSw2ICszNjU5LDcgQEAgX2dldE9iamVjdERlc2NyaXB0aW9uKFBRRXhwQnVmZmVyIGJ1 ZiwgY29uc3QgVG9jRW50cnkgKnRlKQogCQlzdHJjbXAodHlwZSwgIlRFWFQgU0VBUkNIIERJQ1RJ T05BUlkiKSA9PSAwIHx8CiAJCXN0cmNtcCh0eXBlLCAiVEVYVCBTRUFSQ0ggQ09ORklHVVJBVElP TiIpID09IDAgfHwKIAkJc3RyY21wKHR5cGUsICJUWVBFIikgPT0gMCB8fAorCQlzdHJjbXAodHlw ZSwgIlZBUklBQkxFIikgPT0gMCB8fAogCQlzdHJjbXAodHlwZSwgIlZJRVciKSA9PSAwIHx8CiAJ Lyogbm9uLXNjaGVtYS1zcGVjaWZpZWQgb2JqZWN0cyAqLwogCQlzdHJjbXAodHlwZSwgIkRBVEFC QVNFIikgPT0gMCB8fApkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYyBiL3Ny Yy9iaW4vcGdfZHVtcC9wZ19kdW1wLmMKaW5kZXggOGY3M2E1ZGY5NS4uOWUzMmM0Nzg0MSAxMDA2 NDQKLS0tIGEvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuYworKysgYi9zcmMvYmluL3BnX2R1bXAv cGdfZHVtcC5jCkBAIC0zNjMsNiArMzYzLDcgQEAgc3RhdGljIHZvaWQgZHVtcFB1YmxpY2F0aW9u KEFyY2hpdmUgKmZvdXQsIGNvbnN0IFB1YmxpY2F0aW9uSW5mbyAqcHViaW5mbyk7CiBzdGF0aWMg dm9pZCBkdW1wUHVibGljYXRpb25UYWJsZShBcmNoaXZlICpmb3V0LCBjb25zdCBQdWJsaWNhdGlv blJlbEluZm8gKnB1YnJpbmZvKTsKIHN0YXRpYyB2b2lkIGR1bXBTdWJzY3JpcHRpb24oQXJjaGl2 ZSAqZm91dCwgY29uc3QgU3Vic2NyaXB0aW9uSW5mbyAqc3ViaW5mbyk7CiBzdGF0aWMgdm9pZCBk dW1wU3Vic2NyaXB0aW9uVGFibGUoQXJjaGl2ZSAqZm91dCwgY29uc3QgU3ViUmVsSW5mbyAqc3Vi cmluZm8pOworc3RhdGljIHZvaWQgZHVtcFZhcmlhYmxlKEFyY2hpdmUgKmZvdXQsIGNvbnN0IFZh cmlhYmxlSW5mbyAqdmFyaW5mbyk7CiBzdGF0aWMgdm9pZCBkdW1wRGF0YWJhc2UoQXJjaGl2ZSAq Zm91dCk7CiBzdGF0aWMgdm9pZCBkdW1wRGF0YWJhc2VDb25maWcoQXJjaGl2ZSAqQUgsIFBRRXhw QnVmZmVyIG91dGJ1ZiwKIAkJCQkJCQkgICBjb25zdCBjaGFyICpkYm5hbWUsIE9pZCBkYm9pZCk7 CkBAIC01NDE5LDYgKzU0MjAsMTkwIEBAIGdldF9uZXh0X3Bvc3NpYmxlX2ZyZWVfcGdfdHlwZV9v aWQoQXJjaGl2ZSAqZm91dCwgUFFFeHBCdWZmZXIgdXBncmFkZV9xdWVyeSkKIAlyZXR1cm4gbmV4 dF9wb3NzaWJsZV9mcmVlX29pZDsKIH0KIAorLyoKKyAqIGdldFZhcmlhYmxlcworICoJICBnZXQg aW5mb3JtYXRpb24gYWJvdXQgdmFyaWFibGVzCisgKi8KK3ZvaWQKK2dldFZhcmlhYmxlcyhBcmNo aXZlICpmb3V0KQoreworCVBRRXhwQnVmZmVyIHF1ZXJ5OworCVBHcmVzdWx0ICAgKnJlczsKKwlW YXJpYWJsZUluZm8gKnZhcmluZm87CisJaW50CQkJaV90YWJsZW9pZDsKKwlpbnQJCQlpX29pZDsK KwlpbnQJCQlpX3Zhcm5hbWU7CisJaW50CQkJaV92YXJuYW1lc3BhY2U7CisJaW50CQkJaV92YXJ0 eXBlOworCWludAkJCWlfdmFydHlwbmFtZTsKKwlpbnQJCQlpX3Zhcm93bmVyOworCWludAkJCWlf dmFyY29sbGF0aW9uOworCWludAkJCWlfdmFyYWNsOworCWludAkJCWlfYWNsZGVmYXVsdDsKKwlp bnQJCQlpLAorCQkJCW50dXBzOworCisJaWYgKGZvdXQtPnJlbW90ZVZlcnNpb24gPCAxODAwMDAp CisJCXJldHVybjsKKworCXF1ZXJ5ID0gY3JlYXRlUFFFeHBCdWZmZXIoKTsKKworCXJlc2V0UFFF eHBCdWZmZXIocXVlcnkpOworCisJLyogZ2V0IHRoZSB2YXJpYWJsZXMgaW4gY3VycmVudCBkYXRh YmFzZSAqLworCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LAorCQkJCQkgICJTRUxFQ1Qgdi50YWJs ZW9pZCwgdi5vaWQsIHYudmFybmFtZSxcbiIKKwkJCQkJICAiICAgICAgIHYudmFybmFtZXNwYWNl LCB2LnZhcnR5cGUsXG4iCisJCQkJCSAgIiAgICAgICBwZ19jYXRhbG9nLmZvcm1hdF90eXBlKHYu dmFydHlwZSwgdi52YXJ0eXBtb2QpIGFzIHZhcnR5cG5hbWUsXG4iCisJCQkJCSAgIiAgICAgICBD QVNFIFdIRU4gdi52YXJjb2xsYXRpb24gPD4gdC50eXBjb2xsYXRpb24gIgorCQkJCQkgICIgICAg ICAgICAgICBUSEVOIHYudmFyY29sbGF0aW9uXG4iCisJCQkJCSAgIiAgICAgICAgICAgIEVMU0Ug MFxuIgorCQkJCQkgICIgICAgICAgRU5EIEFTIHZhcmNvbGxhdGlvbixcbiIKKwkJCQkJICAiICAg ICAgIHYudmFyb3duZXIsIHYudmFyYWNsLFxuIgorCQkJCQkgICIgICAgICAgYWNsZGVmYXVsdCgn VicsIHYudmFyb3duZXIpIEFTIGFjbGRlZmF1bHRcbiIKKwkJCQkJICAiRlJPTSBwZ19jYXRhbG9n LnBnX3ZhcmlhYmxlIHZcbiIKKwkJCQkJICAiSk9JTiBwZ19jYXRhbG9nLnBnX3R5cGUgdCAiCisJ CQkJCSAgIk9OICh2LnZhcnR5cGUgPSB0Lm9pZCkiKTsKKworCXJlcyA9IEV4ZWN1dGVTcWxRdWVy eShmb3V0LCBxdWVyeS0+ZGF0YSwgUEdSRVNfVFVQTEVTX09LKTsKKworCW50dXBzID0gUFFudHVw bGVzKHJlcyk7CisKKwlpX3RhYmxlb2lkID0gUFFmbnVtYmVyKHJlcywgInRhYmxlb2lkIik7CisJ aV9vaWQgPSBQUWZudW1iZXIocmVzLCAib2lkIik7CisJaV92YXJuYW1lID0gUFFmbnVtYmVyKHJl cywgInZhcm5hbWUiKTsKKwlpX3Zhcm5hbWVzcGFjZSA9IFBRZm51bWJlcihyZXMsICJ2YXJuYW1l c3BhY2UiKTsKKwlpX3ZhcnR5cGUgPSBQUWZudW1iZXIocmVzLCAidmFydHlwZSIpOworCWlfdmFy dHlwbmFtZSA9IFBRZm51bWJlcihyZXMsICJ2YXJ0eXBuYW1lIik7CisJaV92YXJjb2xsYXRpb24g PSBQUWZudW1iZXIocmVzLCAidmFyY29sbGF0aW9uIik7CisKKwlpX3Zhcm93bmVyID0gUFFmbnVt YmVyKHJlcywgInZhcm93bmVyIik7CisJaV92YXJhY2wgPSBQUWZudW1iZXIocmVzLCAidmFyYWNs Iik7CisJaV9hY2xkZWZhdWx0ID0gUFFmbnVtYmVyKHJlcywgImFjbGRlZmF1bHQiKTsKKworCXZh cmluZm8gPSBwZ19tYWxsb2MobnR1cHMgKiBzaXplb2YoVmFyaWFibGVJbmZvKSk7CisKKwlmb3Ig KGkgPSAwOyBpIDwgbnR1cHM7IGkrKykKKwl7CisJCVR5cGVJbmZvICAgKnZ0eXBlOworCisJCXZh cmluZm9baV0uZG9iai5vYmpUeXBlID0gRE9fVkFSSUFCTEU7CisJCXZhcmluZm9baV0uZG9iai5j YXRJZC50YWJsZW9pZCA9CisJCQlhdG9vaWQoUFFnZXR2YWx1ZShyZXMsIGksIGlfdGFibGVvaWQp KTsKKwkJdmFyaW5mb1tpXS5kb2JqLmNhdElkLm9pZCA9IGF0b29pZChQUWdldHZhbHVlKHJlcywg aSwgaV9vaWQpKTsKKwkJQXNzaWduRHVtcElkKCZ2YXJpbmZvW2ldLmRvYmopOworCQl2YXJpbmZv W2ldLmRvYmoubmFtZSA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJuYW1lKSk7 CisJCXZhcmluZm9baV0uZG9iai5uYW1lc3BhY2UgPQorCQkJZmluZE5hbWVzcGFjZShhdG9vaWQo UFFnZXR2YWx1ZShyZXMsIGksIGlfdmFybmFtZXNwYWNlKSkpOworCisJCXZhcmluZm9baV0udmFy dHlwZSA9IGF0b29pZChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJ0eXBlKSk7CisJCXZhcmluZm9b aV0udmFydHlwbmFtZSA9IHBnX3N0cmR1cChQUWdldHZhbHVlKHJlcywgaSwgaV92YXJ0eXBuYW1l KSk7CisJCXZhcmluZm9baV0udmFyY29sbGF0aW9uID0gYXRvb2lkKFBRZ2V0dmFsdWUocmVzLCBp LCBpX3ZhcmNvbGxhdGlvbikpOworCisJCXZhcmluZm9baV0uZGFjbC5hY2wgPSBwZ19zdHJkdXAo UFFnZXR2YWx1ZShyZXMsIGksIGlfdmFyYWNsKSk7CisJCXZhcmluZm9baV0uZGFjbC5hY2xkZWZh dWx0ID0gcGdfc3RyZHVwKFBRZ2V0dmFsdWUocmVzLCBpLCBpX2FjbGRlZmF1bHQpKTsKKwkJdmFy aW5mb1tpXS5kYWNsLnByaXZ0eXBlID0gMDsKKwkJdmFyaW5mb1tpXS5kYWNsLmluaXRwcml2cyA9 IE5VTEw7CisJCXZhcmluZm9baV0ucm9sbmFtZSA9IGdldFJvbGVOYW1lKFBRZ2V0dmFsdWUocmVz LCBpLCBpX3Zhcm93bmVyKSk7CisKKwkJLyogZG8gbm90IHRyeSB0byBkdW1wIEFDTCBpZiBubyBB Q0wgZXhpc3RzICovCisJCWlmICghUFFnZXRpc251bGwocmVzLCBpLCBpX3ZhcmFjbCkpCisJCQl2 YXJpbmZvW2ldLmRvYmouY29tcG9uZW50cyB8PSBEVU1QX0NPTVBPTkVOVF9BQ0w7CisKKwkJaWYg KHN0cmxlbih2YXJpbmZvW2ldLnJvbG5hbWUpID09IDApCisJCQlwZ19sb2dfd2FybmluZygib3du ZXIgb2YgdmFyaWFibGUgXCIlc1wiIGFwcGVhcnMgdG8gYmUgaW52YWxpZCIsCisJCQkJCQkgICB2 YXJpbmZvW2ldLmRvYmoubmFtZSk7CisKKwkJLyogZGVjaWRlIHdoZXRoZXIgd2Ugd2FudCB0byBk dW1wIGl0ICovCisJCXNlbGVjdER1bXBhYmxlT2JqZWN0KCYodmFyaW5mb1tpXS5kb2JqKSwgZm91 dCk7CisKKwkJdnR5cGUgPSBmaW5kVHlwZUJ5T2lkKHZhcmluZm9baV0udmFydHlwZSk7CisJCWFk ZE9iamVjdERlcGVuZGVuY3koJnZhcmluZm9baV0uZG9iaiwgdnR5cGUtPmRvYmouZHVtcElkKTsK Kwl9CisJUFFjbGVhcihyZXMpOworCisJZGVzdHJveVBRRXhwQnVmZmVyKHF1ZXJ5KTsKK30KKwor LyoKKyAqIGR1bXBWYXJpYWJsZQorICoJICBkdW1wIHRoZSBkZWZpbml0aW9uIG9mIHRoZSBnaXZl biBzZXNzaW9uIHZhcmlhYmxlCisgKi8KK3N0YXRpYyB2b2lkCitkdW1wVmFyaWFibGUoQXJjaGl2 ZSAqZm91dCwgY29uc3QgVmFyaWFibGVJbmZvICp2YXJpbmZvKQoreworCUR1bXBPcHRpb25zICpk b3B0ID0gZm91dC0+ZG9wdDsKKworCVBRRXhwQnVmZmVyIGRlbHE7CisJUFFFeHBCdWZmZXIgcXVl cnk7CisJY2hhcgkgICAqcXVhbHZhcm5hbWU7CisJY29uc3QgY2hhciAqdmFydHlwbmFtZTsKKwlP aWQJCQl2YXJjb2xsYXRpb247CisKKwkvKiBza2lwIGlmIG5vdCB0byBiZSBkdW1wZWQgKi8KKwlp ZiAoIXZhcmluZm8tPmRvYmouZHVtcCB8fCAhZG9wdC0+ZHVtcFNjaGVtYSkKKwkJcmV0dXJuOwor CisJZGVscSA9IGNyZWF0ZVBRRXhwQnVmZmVyKCk7CisJcXVlcnkgPSBjcmVhdGVQUUV4cEJ1ZmZl cigpOworCisJcXVhbHZhcm5hbWUgPSBwZ19zdHJkdXAoZm10UXVhbGlmaWVkRHVtcGFibGUodmFy aW5mbykpOworCXZhcnR5cG5hbWUgPSB2YXJpbmZvLT52YXJ0eXBuYW1lOworCXZhcmNvbGxhdGlv biA9IHZhcmluZm8tPnZhcmNvbGxhdGlvbjsKKworCWFwcGVuZFBRRXhwQnVmZmVyKGRlbHEsICJE Uk9QIFZBUklBQkxFICVzO1xuIiwKKwkJCQkJICBxdWFsdmFybmFtZSk7CisKKwlhcHBlbmRQUUV4 cEJ1ZmZlcihxdWVyeSwgIkNSRUFURSBWQVJJQUJMRSAlcyBBUyAlcyIsCisJCQkJCSAgcXVhbHZh cm5hbWUsIHZhcnR5cG5hbWUpOworCisJaWYgKE9pZElzVmFsaWQodmFyY29sbGF0aW9uKSkKKwl7 CisJCUNvbGxJbmZvICAgKmNvbGw7CisKKwkJY29sbCA9IGZpbmRDb2xsYXRpb25CeU9pZCh2YXJj b2xsYXRpb24pOworCQlpZiAoY29sbCkKKwkJCWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiIENP TExBVEUgJXMiLAorCQkJCQkJCSAgZm10UXVhbGlmaWVkRHVtcGFibGUoY29sbCkpOworCX0KKwor CWFwcGVuZFBRRXhwQnVmZmVyKHF1ZXJ5LCAiO1xuIik7CisKKwlpZiAodmFyaW5mby0+ZG9iai5k dW1wICYgRFVNUF9DT01QT05FTlRfREVGSU5JVElPTikKKwkJQXJjaGl2ZUVudHJ5KGZvdXQsIHZh cmluZm8tPmRvYmouY2F0SWQsIHZhcmluZm8tPmRvYmouZHVtcElkLAorCQkJCQkgQVJDSElWRV9P UFRTKC50YWcgPSB2YXJpbmZvLT5kb2JqLm5hbWUsCisJCQkJCQkJCSAgLm5hbWVzcGFjZSA9IHZh cmluZm8tPmRvYmoubmFtZXNwYWNlLT5kb2JqLm5hbWUsCisJCQkJCQkJCSAgLm93bmVyID0gdmFy aW5mby0+cm9sbmFtZSwKKwkJCQkJCQkJICAuZGVzY3JpcHRpb24gPSAiVkFSSUFCTEUiLAorCQkJ CQkJCQkgIC5zZWN0aW9uID0gU0VDVElPTl9QUkVfREFUQSwKKwkJCQkJCQkJICAuY3JlYXRlU3Rt dCA9IHF1ZXJ5LT5kYXRhLAorCQkJCQkJCQkgIC5kcm9wU3RtdCA9IGRlbHEtPmRhdGEpKTsKKwor CS8qIGR1bXAgY29tbWVudCBpZiBhbnkgKi8KKwlpZiAodmFyaW5mby0+ZG9iai5kdW1wICYgRFVN UF9DT01QT05FTlRfQ09NTUVOVCkKKwkJZHVtcENvbW1lbnQoZm91dCwgIlZBUklBQkxFIiwgcXVh bHZhcm5hbWUsCisJCQkJCU5VTEwsIHZhcmluZm8tPnJvbG5hbWUsCisJCQkJCXZhcmluZm8tPmRv YmouY2F0SWQsIDAsIHZhcmluZm8tPmRvYmouZHVtcElkKTsKKworCS8qIGR1bXAgQUNMIGlmIGFu eSAqLworCWlmICh2YXJpbmZvLT5kb2JqLmR1bXAgJiBEVU1QX0NPTVBPTkVOVF9BQ0wpCisJewor CQljaGFyCSAgICpxdmFybmFtZSA9IHBnX3N0cmR1cChmbXRJZCh2YXJpbmZvLT5kb2JqLm5hbWUp KTsKKworCQlkdW1wQUNMKGZvdXQsIHZhcmluZm8tPmRvYmouZHVtcElkLCBJbnZhbGlkRHVtcElk LCAiVkFSSUFCTEUiLAorCQkJCXF2YXJuYW1lLCBOVUxMLAorCQkJCXZhcmluZm8tPmRvYmoubmFt ZXNwYWNlLT5kb2JqLm5hbWUsIE5VTEwsIHZhcmluZm8tPnJvbG5hbWUsCisJCQkJJnZhcmluZm8t PmRhY2wpOworCisJCWZyZWUocXZhcm5hbWUpOworCX0KKworCWRlc3Ryb3lQUUV4cEJ1ZmZlcihk ZWxxKTsKKwlkZXN0cm95UFFFeHBCdWZmZXIocXVlcnkpOworCisJZnJlZShxdWFsdmFybmFtZSk7 Cit9CisKIHN0YXRpYyB2b2lkCiBiaW5hcnlfdXBncmFkZV9zZXRfdHlwZV9vaWRzX2J5X3R5cGVf b2lkKEFyY2hpdmUgKmZvdXQsCiAJCQkJCQkJCQkJIFBRRXhwQnVmZmVyIHVwZ3JhZGVfYnVmZmVy LApAQCAtMTAxNDUsNyArMTAzMzAsOCBAQCBnZXRBZGRpdGlvbmFsQUNMcyhBcmNoaXZlICpmb3V0 KQogCQkJCQlkb2JqLT5vYmpUeXBlID09IERPX1RBQkxFIHx8CiAJCQkJCWRvYmotPm9ialR5cGUg PT0gRE9fUFJPQ0xBTkcgfHwKIAkJCQkJZG9iai0+b2JqVHlwZSA9PSBET19GRFcgfHwKLQkJCQkJ ZG9iai0+b2JqVHlwZSA9PSBET19GT1JFSUdOX1NFUlZFUikKKwkJCQkJZG9iai0+b2JqVHlwZSA9 PSBET19GT1JFSUdOX1NFUlZFUiB8fAorCQkJCQlkb2JqLT5vYmpUeXBlID09IERPX1ZBUklBQkxF KQogCQkJCXsKIAkJCQkJRHVtcGFibGVPYmplY3RXaXRoQWNsICpkYW9iaiA9IChEdW1wYWJsZU9i amVjdFdpdGhBY2wgKikgZG9iajsKIApAQCAtMTA3NDQsNiArMTA5MzAsOSBAQCBkdW1wRHVtcGFi bGVPYmplY3QoQXJjaGl2ZSAqZm91dCwgRHVtcGFibGVPYmplY3QgKmRvYmopCiAJCWNhc2UgRE9f U1VCU0NSSVBUSU9OX1JFTDoKIAkJCWR1bXBTdWJzY3JpcHRpb25UYWJsZShmb3V0LCAoY29uc3Qg U3ViUmVsSW5mbyAqKSBkb2JqKTsKIAkJCWJyZWFrOworCQljYXNlIERPX1ZBUklBQkxFOgorCQkJ ZHVtcFZhcmlhYmxlKGZvdXQsIChWYXJpYWJsZUluZm8gKikgZG9iaik7CisJCQlicmVhazsKIAkJ Y2FzZSBET19QUkVfREFUQV9CT1VOREFSWToKIAkJY2FzZSBET19QT1NUX0RBVEFfQk9VTkRBUlk6 CiAJCQkvKiBuZXZlciBkdW1wZWQsIG5vdGhpbmcgdG8gZG8gKi8KQEAgLTE1MTk1LDYgKzE1Mzg0 LDkgQEAgZHVtcERlZmF1bHRBQ0woQXJjaGl2ZSAqZm91dCwgY29uc3QgRGVmYXVsdEFDTEluZm8g KmRhY2xpbmZvKQogCQljYXNlIERFRkFDTE9CSl9OQU1FU1BBQ0U6CiAJCQl0eXBlID0gIlNDSEVN QVMiOwogCQkJYnJlYWs7CisJCWNhc2UgREVGQUNMT0JKX1ZBUklBQkxFOgorCQkJdHlwZSA9ICJW QVJJQUJMRVMiOworCQkJYnJlYWs7CiAJCWRlZmF1bHQ6CiAJCQkvKiBzaG91bGRuJ3QgZ2V0IGhl cmUgKi8KIAkJCXBnX2ZhdGFsKCJ1bnJlY29nbml6ZWQgb2JqZWN0IHR5cGUgaW4gZGVmYXVsdCBw cml2aWxlZ2VzOiAlZCIsCkBAIC0xODkxNCw2ICsxOTEwNiw3IEBAIGFkZEJvdW5kYXJ5RGVwZW5k ZW5jaWVzKER1bXBhYmxlT2JqZWN0ICoqZG9ianMsIGludCBudW1PYmpzLAogCQkJY2FzZSBET19D T05WRVJTSU9OOgogCQkJY2FzZSBET19UQUJMRToKIAkJCWNhc2UgRE9fVEFCTEVfQVRUQUNIOgor CQkJY2FzZSBET19WQVJJQUJMRToKIAkJCWNhc2UgRE9fQVRUUkRFRjoKIAkJCWNhc2UgRE9fUFJP Q0xBTkc6CiAJCQljYXNlIERPX0NBU1Q6CmRpZmYgLS1naXQgYS9zcmMvYmluL3BnX2R1bXAvcGdf ZHVtcC5oIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXAuaAppbmRleCBmNjJiNTY0ZWQxLi44YTYy YjViNDEyIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAvcGdfZHVtcC5oCisrKyBiL3NyYy9i aW4vcGdfZHVtcC9wZ19kdW1wLmgKQEAgLTUyLDYgKzUyLDcgQEAgdHlwZWRlZiBlbnVtCiAJRE9f VEFCTEUsCiAJRE9fVEFCTEVfQVRUQUNILAogCURPX0FUVFJERUYsCisJRE9fVkFSSUFCTEUsCiAJ RE9fSU5ERVgsCiAJRE9fSU5ERVhfQVRUQUNILAogCURPX1NUQVRTRVhULApAQCAtNzA3LDYgKzcw OCwyMyBAQCB0eXBlZGVmIHN0cnVjdCBfU3ViUmVsSW5mbwogCWNoYXIJICAgKnNyc3VibHNuOwog fSBTdWJSZWxJbmZvOwogCisvKgorICogVGhlIFZhcmlhYmxlSW5mbyBzdHJ1Y3QgaXMgdXNlZCB0 byByZXByZXNlbnQgc2Vzc2lvbiB2YXJpYWJsZXMKKyAqLwordHlwZWRlZiBzdHJ1Y3QgX1Zhcmlh YmxlSW5mbworeworCUR1bXBhYmxlT2JqZWN0IGRvYmo7CisJRHVtcGFibGVBY2wgZGFjbDsKKwlP aWQJCQl2YXJ0eXBlOworCWNoYXIJICAgKnZhcnR5cG5hbWU7CisJY2hhcgkgICAqdmFyYWNsOwor CWNoYXIJICAgKnJ2YXJhY2w7CisJY2hhcgkgICAqaW5pdHZhcmFjbDsKKwljaGFyCSAgICppbml0 cnZhcmFjbDsKKwlPaWQJCQl2YXJjb2xsYXRpb247CisJY29uc3QgY2hhciAqcm9sbmFtZTsJCS8q IG5hbWUgb2Ygb3duZXIsIG9yIGVtcHR5IHN0cmluZyAqLworfSBWYXJpYWJsZUluZm87CisKIC8q CiAgKgljb21tb24gdXRpbGl0eSBmdW5jdGlvbnMKICAqLwpAQCAtNzkwLDUgKzgwOCw2IEBAIGV4 dGVybiB2b2lkIGdldFB1YmxpY2F0aW9uVGFibGVzKEFyY2hpdmUgKmZvdXQsIFRhYmxlSW5mbyB0 YmxpbmZvW10sCiAJCQkJCQkJCSBpbnQgbnVtVGFibGVzKTsKIGV4dGVybiB2b2lkIGdldFN1YnNj cmlwdGlvbnMoQXJjaGl2ZSAqZm91dCk7CiBleHRlcm4gdm9pZCBnZXRTdWJzY3JpcHRpb25UYWJs ZXMoQXJjaGl2ZSAqZm91dCk7CitleHRlcm4gdm9pZCBnZXRWYXJpYWJsZXMoQXJjaGl2ZSAqZm91 dCk7CiAKICNlbmRpZgkJCQkJCQkvKiBQR19EVU1QX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4v cGdfZHVtcC9wZ19kdW1wX3NvcnQuYyBiL3NyYy9iaW4vcGdfZHVtcC9wZ19kdW1wX3NvcnQuYwpp bmRleCBkYzlhMjg5MjRiLi44NDI5NzNmMTEyIDEwMDY0NAotLS0gYS9zcmMvYmluL3BnX2R1bXAv cGdfZHVtcF9zb3J0LmMKKysrIGIvc3JjL2Jpbi9wZ19kdW1wL3BnX2R1bXBfc29ydC5jCkBAIC03 Nyw2ICs3Nyw3IEBAIGVudW0gZGJPYmplY3RUeXBlUHJpb3JpdGllcwogCVBSSU9fRFVNTVlfVFlQ RSwKIAlQUklPX0FUVFJERUYsCiAJUFJJT19MQVJHRV9PQkpFQ1QsCisJUFJJT19WQVJJQUJMRSwK IAlQUklPX1BSRV9EQVRBX0JPVU5EQVJZLAkJLyogYm91bmRhcnkhICovCiAJUFJJT19UQUJMRV9E QVRBLAogCVBSSU9fU0VRVUVOQ0VfU0VULApAQCAtMTE4LDYgKzExOSw3IEBAIHN0YXRpYyBjb25z dCBpbnQgZGJPYmplY3RUeXBlUHJpb3JpdHlbXSA9CiAJW0RPX1RBQkxFXSA9IFBSSU9fVEFCTEUs CiAJW0RPX1RBQkxFX0FUVEFDSF0gPSBQUklPX1RBQkxFX0FUVEFDSCwKIAlbRE9fQVRUUkRFRl0g PSBQUklPX0FUVFJERUYsCisJW0RPX1ZBUklBQkxFXSA9IFBSSU9fVkFSSUFCTEUsCiAJW0RPX0lO REVYXSA9IFBSSU9fSU5ERVgsCiAJW0RPX0lOREVYX0FUVEFDSF0gPSBQUklPX0lOREVYX0FUVEFD SCwKIAlbRE9fU1RBVFNFWFRdID0gUFJJT19TVEFUU0VYVCwKQEAgLTE1MDAsNiArMTUwMiwxMCBA QCBkZXNjcmliZUR1bXBhYmxlT2JqZWN0KER1bXBhYmxlT2JqZWN0ICpvYmosIGNoYXIgKmJ1Ziwg aW50IGJ1ZnNpemUpCiAJCQkJCSAiUE9TVC1EQVRBIEJPVU5EQVJZICAoSUQgJWQpIiwKIAkJCQkJ IG9iai0+ZHVtcElkKTsKIAkJCXJldHVybjsKKwkJY2FzZSBET19WQVJJQUJMRToKKwkJCXNucHJp bnRmKGJ1ZiwgYnVmc2l6ZSwKKwkJCQkJICJWQVJJQUJMRSAlcyAgKElEICVkIE9JRCAldSkiLAor CQkJCQkgb2JqLT5uYW1lLCBvYmotPmR1bXBJZCwgb2JqLT5jYXRJZC5vaWQpOwogCX0KIAkvKiBz aG91bGRuJ3QgZ2V0IGhlcmUgKi8KIAlzbnByaW50ZihidWYsIGJ1ZnNpemUsCmRpZmYgLS1naXQg YS9zcmMvYmluL3BnX2R1bXAvdC8wMDJfcGdfZHVtcC5wbCBiL3NyYy9iaW4vcGdfZHVtcC90LzAw Ml9wZ19kdW1wLnBsCmluZGV4IGJmNjVkNDRiOTQuLjY0MjNlN2I5ZDIgMTAwNjQ0Ci0tLSBhL3Ny Yy9iaW4vcGdfZHVtcC90LzAwMl9wZ19kdW1wLnBsCisrKyBiL3NyYy9iaW4vcGdfZHVtcC90LzAw Ml9wZ19kdW1wLnBsCkBAIC03ODksNiArNzg5LDE2IEBAIG15ICV0ZXN0cyA9ICgKIAkJdW5saWtl ID0+IHsgbm9fcHJpdnMgPT4gMSwgfSwKIAkgIH0sCiAKKwknQUxURVIgREVGQVVMVCBQUklWSUxF R0VTIEZPUiBST0xFIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGUgR1JBTlQgU0VMRUNUIE9OIFZBUklB QkxFUyBUTyBQVUJMSUMnCisJICA9PiB7CisJCWNyZWF0ZV9vcmRlciA9PiA1NiwKKwkJY3JlYXRl X3NxbCAgID0+ICdBTFRFUiBERUZBVUxUIFBSSVZJTEVHRVMgRk9SIFJPTEUgcmVncmVzc19kdW1w X3Rlc3Rfcm9sZSBHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEVTIFRPIFBVQkxJQzsnLAorCQlyZWdl eHAgPT4gcXIvXgorCQkJXFFBTFRFUiBERUZBVUxUIFBSSVZJTEVHRVMgRk9SIFJPTEUgcmVncmVz c19kdW1wX3Rlc3Rfcm9sZSBHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEVTIFRPIFBVQkxJQztcRS94 bSwKKwkJbGlrZSA9PiB7ICVmdWxsX3J1bnMsIHNlY3Rpb25fcG9zdF9kYXRhID0+IDEsIH0sCisJ CXVubGlrZSA9PiB7IG5vX3ByaXZzID0+IDEsIH0sCisJICB9LAorCiAJJ0FMVEVSIFJPTEUgcmVn cmVzc19kdW1wX3Rlc3Rfcm9sZScgPT4gewogCQlyZWdleHAgPT4gcXIvXgogCQkJXFFBTFRFUiBS T0xFIHJlZ3Jlc3NfZHVtcF90ZXN0X3JvbGUgV0lUSCBcRQpAQCAtMTY3NCw2ICsxNjg0LDIzIEBA IG15ICV0ZXN0cyA9ICgKIAkJfSwKIAl9LAogCisJJ0NPTU1FTlQgT04gVkFSSUFCTEUgZHVtcF90 ZXN0LnZhcmlhYmxlMScgPT4geworCQljcmVhdGVfb3JkZXIgPT4gNzEsCisJCWNyZWF0ZV9zcWwg ICA9PiAnQ09NTUVOVCBPTiBWQVJJQUJMRSBkdW1wX3Rlc3QudmFyaWFibGUxCisJCQkJCSAgIElT IFwnY29tbWVudCBvbiB2YXJpYWJsZVwnOycsCisJCXJlZ2V4cCA9PgorCQkgIHFyL15cUUNPTU1F TlQgT04gVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMSBJUyAnY29tbWVudCBvbiB2YXJpYWJs ZSc7XEUvbSwKKwkJbGlrZSA9PiB7CisJCQklZnVsbF9ydW5zLAorCQkJJWR1bXBfdGVzdF9zY2hl bWFfcnVucywKKwkJCXNlY3Rpb25fcHJlX2RhdGEgICAgID0+IDEsCisJCX0sCisJCXVubGlrZSA9 PiB7CisJCQlleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwKKwkJCW9ubHlfZHVtcF9tZWFz dXJlbWVudCAgICA9PiAxLAorCQl9LAorCX0sCisKIAknQ09QWSB0ZXN0X3RhYmxlJyA9PiB7CiAJ CWNyZWF0ZV9vcmRlciA9PiA0LAogCQljcmVhdGVfc3FsID0+ICdJTlNFUlQgSU5UTyBkdW1wX3Rl c3QudGVzdF90YWJsZSAoY29sMSkgJwpAQCAtMzk0Miw2ICszOTY5LDI0IEBAIG15ICV0ZXN0cyA9 ICgKIAkJfSwKIAl9LAogCisJJ0NSRUFURSBWQVJJQUJMRSB0ZXN0X3ZhcmlhYmxlJyA9PiB7CisJ CWFsbF9ydW5zICAgICA9PiAxLAorCQljYXRjaF9hbGwgICAgPT4gJ0NSRUFURSAuLi4gY29tbWFu ZHMnLAorCQljcmVhdGVfb3JkZXIgPT4gNjEsCisJCWNyZWF0ZV9zcWwgICA9PiAnQ1JFQVRFIFZB UklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTEgQVMgaW50ZWdlcjsnLAorCQlyZWdleHAgPT4gcXIv XgorCQkJXFFDUkVBVEUgVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMSBBUyBpbnRlZ2VyO1xF L3htLAorCQlsaWtlID0+IHsKKwkJCSVmdWxsX3J1bnMsCisJCQklZHVtcF90ZXN0X3NjaGVtYV9y dW5zLAorCQkJc2VjdGlvbl9wcmVfZGF0YSA9PiAxLAorCQl9LAorCQl1bmxpa2UgPT4geworCQkJ ZXhjbHVkZV9kdW1wX3Rlc3Rfc2NoZW1hID0+IDEsCisJCQlvbmx5X2R1bXBfbWVhc3VyZW1lbnQg ICAgPT4gMSwKKwkJfSwKKwl9LAorCiAJJ0NSRUFURSBWSUVXIHRlc3RfdmlldycgPT4gewogCQlj cmVhdGVfb3JkZXIgPT4gNjEsCiAJCWNyZWF0ZV9zcWwgPT4gJ0NSRUFURSBWSUVXIGR1bXBfdGVz dC50ZXN0X3ZpZXcKQEAgLTQ0MDQsNiArNDQ0OSwyNSBAQCBteSAldGVzdHMgPSAoCiAJCWxpa2Ug PT4ge30sCiAJfSwKIAorCSdHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlh YmxlMScgPT4geworCQljcmVhdGVfb3JkZXIgPT4gNzMsCisJCWNyZWF0ZV9zcWwgPT4KKwkJICAn R1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIGR1bXBfdGVzdC52YXJpYWJsZTEgVE8gcmVncmVzc19k dW1wX3Rlc3Rfcm9sZTsnLAorCQlyZWdleHAgPT4gcXIvXgorCQkJXFFHUkFOVCBTRUxFQ1QgT04g VkFSSUFCTEUgZHVtcF90ZXN0LnZhcmlhYmxlMSBUTyByZWdyZXNzX2R1bXBfdGVzdF9yb2xlO1xF CisJCQkveG0sCisJCWxpa2UgPT4geworCQkJJWZ1bGxfcnVucywKKwkJCSVkdW1wX3Rlc3Rfc2No ZW1hX3J1bnMsCisJCQlzZWN0aW9uX3ByZV9kYXRhID0+IDEsCisJCX0sCisJCXVubGlrZSA9PiB7 CisJCQlleGNsdWRlX2R1bXBfdGVzdF9zY2hlbWEgPT4gMSwKKwkJCW5vX3ByaXZzICAgICAgICAg ICAgICAgICA9PiAxLAorCQkJb25seV9kdW1wX21lYXN1cmVtZW50ICAgID0+IDEsCisJCX0sCisJ fSwKKwogCSdSRUZSRVNIIE1BVEVSSUFMSVpFRCBWSUVXIG1hdHZpZXcnID0+IHsKIAkJcmVnZXhw ID0+IHFyL15cUVJFRlJFU0ggTUFURVJJQUxJWkVEIFZJRVcgZHVtcF90ZXN0Lm1hdHZpZXc7XEUv bSwKIAkJbGlrZSA9PgpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYyBiL3NyYy9i aW4vcHNxbC9jb21tYW5kLmMKaW5kZXggNWRkNGMyZDI2OC4uM2VlMTkwODk1OSAxMDA2NDQKLS0t IGEvc3JjL2Jpbi9wc3FsL2NvbW1hbmQuYworKysgYi9zcmMvYmluL3BzcWwvY29tbWFuZC5jCkBA IC0xMDc3LDYgKzEwNzcsOSBAQCBleGVjX2NvbW1hbmRfZChQc3FsU2NhblN0YXRlIHNjYW5fc3Rh dGUsIGJvb2wgYWN0aXZlX2JyYW5jaCwgY29uc3QgY2hhciAqY21kKQogCQkJCQkJYnJlYWs7CiAJ CQkJfQogCQkJCWJyZWFrOworCQkJY2FzZSAnVic6CQkJLyogVmFyaWFibGVzICovCisJCQkJc3Vj Y2VzcyA9IGxpc3RWYXJpYWJsZXMocGF0dGVybiwgc2hvd192ZXJib3NlKTsKKwkJCQlicmVhazsK IAkJCWNhc2UgJ3gnOgkJCS8qIEV4dGVuc2lvbnMgKi8KIAkJCQlpZiAoc2hvd192ZXJib3NlKQog CQkJCQlzdWNjZXNzID0gbGlzdEV4dGVuc2lvbkNvbnRlbnRzKHBhdHRlcm4pOwpkaWZmIC0tZ2l0 IGEvc3JjL2Jpbi9wc3FsL2Rlc2NyaWJlLmMgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwppbmRl eCBkNTU0M2ZkNjJiLi41NTQ2YmY5MWUyIDEwMDY0NAotLS0gYS9zcmMvYmluL3BzcWwvZGVzY3Jp YmUuYworKysgYi9zcmMvYmluL3BzcWwvZGVzY3JpYmUuYwpAQCAtMTIwNiw3ICsxMjA2LDcgQEAg bGlzdERlZmF1bHRBQ0xzKGNvbnN0IGNoYXIgKnBhdHRlcm4pCiAJcHJpbnRmUFFFeHBCdWZmZXIo JmJ1ZiwKIAkJCQkJICAiU0VMRUNUIHBnX2NhdGFsb2cucGdfZ2V0X3VzZXJieWlkKGQuZGVmYWNs cm9sZSkgQVMgXCIlc1wiLFxuIgogCQkJCQkgICIgIG4ubnNwbmFtZSBBUyBcIiVzXCIsXG4iCi0J CQkJCSAgIiAgQ0FTRSBkLmRlZmFjbG9ianR5cGUgV0hFTiAnJWMnIFRIRU4gJyVzJyBXSEVOICcl YycgVEhFTiAnJXMnIFdIRU4gJyVjJyBUSEVOICclcycgV0hFTiAnJWMnIFRIRU4gJyVzJyBXSEVO ICclYycgVEhFTiAnJXMnIEVORCBBUyBcIiVzXCIsXG4iCisJCQkJCSAgIiAgQ0FTRSBkLmRlZmFj bG9ianR5cGUgV0hFTiAnJWMnIFRIRU4gJyVzJyBXSEVOICclYycgVEhFTiAnJXMnIFdIRU4gJyVj JyBUSEVOICclcycgV0hFTiAnJWMnIFRIRU4gJyVzJyBXSEVOICclYycgVEhFTiAnJXMnIFdIRU4g JyVjJyBUSEVOICclcycgRU5EIEFTIFwiJXNcIixcbiIKIAkJCQkJICAiICAiLAogCQkJCQkgIGdl dHRleHRfbm9vcCgiT3duZXIiKSwKIAkJCQkJICBnZXR0ZXh0X25vb3AoIlNjaGVtYSIpLApAQCAt MTIyMCw2ICsxMjIwLDggQEAgbGlzdERlZmF1bHRBQ0xzKGNvbnN0IGNoYXIgKnBhdHRlcm4pCiAJ CQkJCSAgZ2V0dGV4dF9ub29wKCJ0eXBlIiksCiAJCQkJCSAgREVGQUNMT0JKX05BTUVTUEFDRSwK IAkJCQkJICBnZXR0ZXh0X25vb3AoInNjaGVtYSIpLAorCQkJCQkgIERFRkFDTE9CSl9WQVJJQUJM RSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoInNlc3Npb24gdmFyaWFibGUiKSwKIAkJCQkJICBnZXR0 ZXh0X25vb3AoIlR5cGUiKSk7CiAKIAlwcmludEFDTENvbHVtbigmYnVmLCAiZC5kZWZhY2xhY2wi KTsKQEAgLTUyMzcsNiArNTIzOSwxMDIgQEAgZXJyb3JfcmV0dXJuOgogCXJldHVybiBmYWxzZTsK IH0KIAorLyoKKyAqIFxkVgorICoKKyAqIGxpc3RWYXJpYWJsZXMoKQorICovCitib29sCitsaXN0 VmFyaWFibGVzKGNvbnN0IGNoYXIgKnBhdHRlcm4sIGJvb2wgdmVyYm9zZSkKK3sKKwlQUUV4cEJ1 ZmZlckRhdGEgYnVmOworCVBHcmVzdWx0ICAgKnJlczsKKwlwcmludFF1ZXJ5T3B0IG15b3B0ID0g cHNldC5wb3B0OworCXN0YXRpYyBjb25zdCBib29sIHRyYW5zbGF0ZV9jb2x1bW5zW10gPSB7ZmFs c2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2V9OworCisJaWYgKHBz ZXQuc3ZlcnNpb24gPCAxODAwMDApCisJeworCQljaGFyCQlzdmVyYnVmWzMyXTsKKworCQlwZ19s b2dfZXJyb3IoIlRoZSBzZXJ2ZXIgKHZlcnNpb24gJXMpIGRvZXMgbm90IHN1cHBvcnQgc2Vzc2lv biB2YXJpYWJsZXMuIiwKKwkJCQkJIGZvcm1hdFBHVmVyc2lvbk51bWJlcihwc2V0LnN2ZXJzaW9u LCBmYWxzZSwKKwkJCQkJCQkJCQkgICBzdmVyYnVmLCBzaXplb2Yoc3ZlcmJ1ZikpKTsKKwkJcmV0 dXJuIHRydWU7CisJfQorCisJaW5pdFBRRXhwQnVmZmVyKCZidWYpOworCisJcHJpbnRmUFFFeHBC dWZmZXIoJmJ1ZiwKKwkJCQkJICAiU0VMRUNUIG4ubnNwbmFtZSBhcyBcIiVzXCIsXG4iCisJCQkJ CSAgIiAgdi52YXJuYW1lIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICBwZ19jYXRhbG9nLmZvcm1h dF90eXBlKHYudmFydHlwZSwgdi52YXJ0eXBtb2QpIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICAo U0VMRUNUIGMuY29sbG5hbWUgRlJPTSBwZ19jYXRhbG9nLnBnX2NvbGxhdGlvbiBjLCBwZ19jYXRh bG9nLnBnX3R5cGUgYnRcbiIKKwkJCQkJICAiICAgV0hFUkUgYy5vaWQgPSB2LnZhcmNvbGxhdGlv biBBTkQgYnQub2lkID0gdi52YXJ0eXBlIEFORCB2LnZhcmNvbGxhdGlvbiA8PiBidC50eXBjb2xs YXRpb24pIGFzIFwiJXNcIixcbiIKKwkJCQkJICAiICBwZ19jYXRhbG9nLnBnX2dldF91c2VyYnlp ZCh2LnZhcm93bmVyKSBhcyBcIiVzXCJcbiIsCisJCQkJCSAgZ2V0dGV4dF9ub29wKCJTY2hlbWEi KSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIk5hbWUiKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIlR5 cGUiKSwKKwkJCQkJICBnZXR0ZXh0X25vb3AoIkNvbGxhdGlvbiIpLAorCQkJCQkgIGdldHRleHRf bm9vcCgiT3duZXIiKSk7CisKKwlpZiAodmVyYm9zZSkKKwl7CisJCWFwcGVuZFBRRXhwQnVmZmVy U3RyKCZidWYsICIsXG4gICIpOworCQlwcmludEFDTENvbHVtbigmYnVmLCAidi52YXJhY2wiKTsK KwkJYXBwZW5kUFFFeHBCdWZmZXIoJmJ1ZiwKKwkJCQkJCSAgIixcbiAgcGdfY2F0YWxvZy5vYmpf ZGVzY3JpcHRpb24odi5vaWQsICdwZ192YXJpYWJsZScpIEFTIFwiJXNcIiIsCisJCQkJCQkgIGdl dHRleHRfbm9vcCgiRGVzY3JpcHRpb24iKSk7CisJfQorCisJYXBwZW5kUFFFeHBCdWZmZXJTdHIo JmJ1ZiwKKwkJCQkJCSAiXG5GUk9NIHBnX2NhdGFsb2cucGdfdmFyaWFibGUgdiIKKwkJCQkJCSAi XG4gICAgIExFRlQgSk9JTiBwZ19jYXRhbG9nLnBnX25hbWVzcGFjZSBuIE9OIG4ub2lkID0gdi52 YXJuYW1lc3BhY2UiKTsKKworCWFwcGVuZFBRRXhwQnVmZmVyU3RyKCZidWYsICJcbldIRVJFIHRy dWVcbiIpOworCWlmICghcGF0dGVybikKKwkJYXBwZW5kUFFFeHBCdWZmZXJTdHIoJmJ1ZiwgIiAg ICAgIEFORCBuLm5zcG5hbWUgPD4gJ3BnX2NhdGFsb2cnXG4iCisJCQkJCQkJICIgICAgICBBTkQg bi5uc3BuYW1lIDw+ICdpbmZvcm1hdGlvbl9zY2hlbWEnXG4iKTsKKworCWlmICghdmFsaWRhdGVT UUxOYW1lUGF0dGVybigmYnVmLCBwYXR0ZXJuLCB0cnVlLCBmYWxzZSwKKwkJCQkJCQkJIm4ubnNw bmFtZSIsICJ2LnZhcm5hbWUiLCBOVUxMLAorCQkJCQkJCQkicGdfY2F0YWxvZy5wZ192YXJpYWJs ZV9pc192aXNpYmxlKHYub2lkKSIsCisJCQkJCQkJCU5VTEwsIDMpKQorCQlyZXR1cm4gZmFsc2U7 CisKKwlhcHBlbmRQUUV4cEJ1ZmZlclN0cigmYnVmLCAiT1JERVIgQlkgMSwyOyIpOworCisJcmVz ID0gUFNRTGV4ZWMoYnVmLmRhdGEpOworCXRlcm1QUUV4cEJ1ZmZlcigmYnVmKTsKKwlpZiAoIXJl cykKKwkJcmV0dXJuIGZhbHNlOworCisJLyoKKwkgKiBNb3N0IGZ1bmN0aW9ucyBpbiB0aGlzIGZp bGUgYXJlIGNvbnRlbnQgdG8gcHJpbnQgYW4gZW1wdHkgdGFibGUgd2hlbgorCSAqIHRoZXJlIGFy ZSBubyBtYXRjaGluZyBvYmplY3RzLiAgV2UgaW50ZW50aW9uYWxseSBkZXZpYXRlIGZyb20gdGhh dAorCSAqIGhlcmUsIGJ1dCBvbmx5IGluICFxdWlldCBtb2RlLCBmb3IgaGlzdG9yaWNhbCByZWFz b25zLgorCSAqLworCWlmIChQUW50dXBsZXMocmVzKSA9PSAwICYmICFwc2V0LnF1aWV0KQorCXsK KwkJaWYgKHBhdHRlcm4pCisJCQlwZ19sb2dfZXJyb3IoIkRpZCBub3QgZmluZCBhbnkgc2Vzc2lv biB2YXJpYWJsZSBuYW1lZCBcIiVzXCIuIiwKKwkJCQkJCSBwYXR0ZXJuKTsKKwkJZWxzZQorCQkJ cGdfbG9nX2Vycm9yKCJEaWQgbm90IGZpbmQgYW55IHNlc3Npb24gdmFyaWFibGVzLiIpOworCX0K KwllbHNlCisJeworCQlteW9wdC5udWxsUHJpbnQgPSBOVUxMOworCQlteW9wdC50aXRsZSA9IF8o Ikxpc3Qgb2YgdmFyaWFibGVzIik7CisJCW15b3B0LnRyYW5zbGF0ZV9oZWFkZXIgPSB0cnVlOwor CQlteW9wdC50cmFuc2xhdGVfY29sdW1ucyA9IHRyYW5zbGF0ZV9jb2x1bW5zOworCQlteW9wdC5u X3RyYW5zbGF0ZV9jb2x1bW5zID0gbGVuZ3Rob2YodHJhbnNsYXRlX2NvbHVtbnMpOworCisJCXBy aW50UXVlcnkocmVzLCAmbXlvcHQsIHBzZXQucXVlcnlGb3V0LCBmYWxzZSwgcHNldC5sb2dmaWxl KTsKKwl9CisKKwlQUWNsZWFyKHJlcyk7CisJcmV0dXJuIHRydWU7Cit9CiAKIC8qCiAgKiBcZEZw CmRpZmYgLS1naXQgYS9zcmMvYmluL3BzcWwvZGVzY3JpYmUuaCBiL3NyYy9iaW4vcHNxbC9kZXNj cmliZS5oCmluZGV4IDE4ZWNhYTYwOTQuLjU1Y2VkNGFhYjcgMTAwNjQ0Ci0tLSBhL3NyYy9iaW4v cHNxbC9kZXNjcmliZS5oCisrKyBiL3NyYy9iaW4vcHNxbC9kZXNjcmliZS5oCkBAIC0xNDksNCAr MTQ5LDcgQEAgZXh0ZXJuIGJvb2wgbGlzdE9wRmFtaWx5RnVuY3Rpb25zKGNvbnN0IGNoYXIgKmFj Y2Vzc19tZXRob2RfcGF0dGVybiwKIC8qIFxkbCBvciBcbG9fbGlzdCAqLwogZXh0ZXJuIGJvb2wg bGlzdExhcmdlT2JqZWN0cyhib29sIHZlcmJvc2UpOwogCisvKiBcZFYgKi8KK2V4dGVybiBib29s IGxpc3RWYXJpYWJsZXMoY29uc3QgY2hhciAqcGF0dGVybiwgYm9vbCB2YXJib3NlKTsKKwogI2Vu ZGlmCQkJCQkJCS8qIERFU0NSSUJFX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9iaW4vcHNxbC9oZWxw LmMgYi9zcmMvYmluL3BzcWwvaGVscC5jCmluZGV4IGZkYTgzNDY1ZWYuLjJhZGJlN2VkZWQgMTAw NjQ0Ci0tLSBhL3NyYy9iaW4vcHNxbC9oZWxwLmMKKysrIGIvc3JjL2Jpbi9wc3FsL2hlbHAuYwpA QCAtMjY2LDYgKzI2Niw3IEBAIHNsYXNoVXNhZ2UodW5zaWduZWQgc2hvcnQgaW50IHBhZ2VyKQog CUhFTFAwKCIgIFxcZFRbUytdIFtQQVRURVJOXSAgICAgIGxpc3QgZGF0YSB0eXBlc1xuIik7CiAJ SEVMUDAoIiAgXFxkdVtTK10gW1BBVFRFUk5dICAgICAgbGlzdCByb2xlc1xuIik7CiAJSEVMUDAo IiAgXFxkdltTK10gW1BBVFRFUk5dICAgICAgbGlzdCB2aWV3c1xuIik7CisJSEVMUDAoIiAgXFxk ViAgICAgW1BBVFRFUk5dICAgICAgbGlzdCBzZXNzaW9uIHZhcmlhYmxlc1xuIik7CiAJSEVMUDAo IiAgXFxkeFsrXSAgW1BBVFRFUk5dICAgICAgbGlzdCBleHRlbnNpb25zXG4iKTsKIAlIRUxQMCgi ICBcXGRYICAgICBbUEFUVEVSTl0gICAgICBsaXN0IGV4dGVuZGVkIHN0YXRpc3RpY3NcbiIpOwog CUhFTFAwKCIgIFxcZHlbK10gIFtQQVRURVJOXSAgICAgIGxpc3QgZXZlbnQgdHJpZ2dlcnNcbiIp OwpkaWZmIC0tZ2l0IGEvc3JjL2Jpbi9wc3FsL3RhYi1jb21wbGV0ZS5pbi5jIGIvc3JjL2Jpbi9w c3FsL3RhYi1jb21wbGV0ZS5pbi5jCmluZGV4IDgxY2JmMTBhYTIuLjZlZWJmYzZhNWYgMTAwNjQ0 Ci0tLSBhL3NyYy9iaW4vcHNxbC90YWItY29tcGxldGUuaW4uYworKysgYi9zcmMvYmluL3BzcWwv dGFiLWNvbXBsZXRlLmluLmMKQEAgLTk3MCw2ICs5NzAsMTMgQEAgc3RhdGljIGNvbnN0IFNjaGVt YVF1ZXJ5IFF1ZXJ5X2Zvcl90cmlnZ2VyX29mX3RhYmxlID0gewogCS5yZWZuYW1lc3BhY2UgPSAi YzEucmVsbmFtZXNwYWNlIiwKIH07CiAKK3N0YXRpYyBjb25zdCBTY2hlbWFRdWVyeSBRdWVyeV9m b3JfbGlzdF9vZl92YXJpYWJsZXMgPSB7CisJLm1pbl9zZXJ2ZXJfdmVyc2lvbiA9IDE4MDAwMCwK KwkuY2F0bmFtZSA9ICJwZ19jYXRhbG9nLnBnX3ZhcmlhYmxlIHYiLAorCS52aXNjb25kaXRpb24g PSAicGdfY2F0YWxvZy5wZ192YXJpYWJsZV9pc192aXNpYmxlKHYub2lkKSIsCisJLm5hbWVzcGFj ZSA9ICJ2LnZhcm5hbWVzcGFjZSIsCisJLnJlc3VsdCA9ICJ2LnZhcm5hbWUiLAorfTsKIAogLyoK ICAqIFF1ZXJpZXMgdG8gZ2V0IGxpc3RzIG9mIG5hbWVzIG9mIHZhcmlvdXMga2luZHMgb2YgdGhp bmdzLCBwb3NzaWJseQpAQCAtMTMwNCw2ICsxMzExLDcgQEAgc3RhdGljIGNvbnN0IHBnc3FsX3Ro aW5nX3Qgd29yZHNfYWZ0ZXJfY3JlYXRlW10gPSB7CiAJCQkJCQkJCQkJCQkJCQkJCQkJICogVEFC TEUgLi4uICovCiAJeyJVU0VSIiwgUXVlcnlfZm9yX2xpc3Rfb2Zfcm9sZXMsIE5VTEwsIE5VTEws IEtleXdvcmRzX2Zvcl91c2VyX3RoaW5nfSwKIAl7IlVTRVIgTUFQUElORyBGT1IiLCBOVUxMLCBO VUxMLCBOVUxMfSwKKwl7IlZBUklBQkxFIiwgTlVMTCwgTlVMTCwgJlF1ZXJ5X2Zvcl9saXN0X29m X3ZhcmlhYmxlc30sCiAJeyJWSUVXIiwgTlVMTCwgTlVMTCwgJlF1ZXJ5X2Zvcl9saXN0X29mX3Zp ZXdzfSwKIAl7TlVMTH0JCQkJCQkvKiBlbmQgb2YgbGlzdCAqLwogfTsKQEAgLTE4NjUsNyArMTg3 Myw3IEBAIHBzcWxfY29tcGxldGlvbihjb25zdCBjaGFyICp0ZXh0LCBpbnQgc3RhcnQsIGludCBl bmQpCiAJCSJcXGRGIiwgIlxcZEZkIiwgIlxcZEZwIiwgIlxcZEZ0IiwgIlxcZGciLCAiXFxkaSIs ICJcXGRsIiwgIlxcZEwiLAogCQkiXFxkbSIsICJcXGRuIiwgIlxcZG8iLCAiXFxkTyIsICJcXGRw IiwgIlxcZFAiLCAiXFxkUGkiLCAiXFxkUHQiLAogCQkiXFxkcmRzIiwgIlxcZHJnIiwgIlxcZFJz IiwgIlxcZFJwIiwgIlxcZHMiLAotCQkiXFxkdCIsICJcXGRUIiwgIlxcZHYiLCAiXFxkdSIsICJc XGR4IiwgIlxcZFgiLCAiXFxkeSIsCisJCSJcXGR0IiwgIlxcZFQiLCAiXFxkdiIsICJcXGR1Iiwg IlxcZHgiLCAiXFxkWCIsICJcXGR5IiwgIlxcZFYiLAogCQkiXFxlY2hvIiwgIlxcZWRpdCIsICJc XGVmIiwgIlxcZWxpZiIsICJcXGVsc2UiLCAiXFxlbmNvZGluZyIsCiAJCSJcXGVuZGlmIiwgIlxc ZXJydmVyYm9zZSIsICJcXGV2IiwKIAkJIlxcZiIsCkBAIC0yNTU2LDYgKzI1NjQsOSBAQCBtYXRj aF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVybl9pZCwKIAkJCQkJCQkJCQkgICJBTEwiKTsKIAll bHNlIGlmIChNYXRjaGVzKCJBTFRFUiIsICJTWVNURU0iLCAiU0VUIiwgTWF0Y2hBbnkpKQogCQlD T01QTEVURV9XSVRIKCJUTyIpOworCS8qIEFMVEVSIFZBUklBQkxFIDxuYW1lPiAqLworCWVsc2Ug aWYgKE1hdGNoZXMoIkFMVEVSIiwgIlZBUklBQkxFIiwgTWF0Y2hBbnkpKQorCQlDT01QTEVURV9X SVRIKCJPV05FUiBUTyIsICJSRU5BTUUgVE8iLCAiU0VUIFNDSEVNQSIpOwogCS8qIEFMVEVSIFZJ RVcgPG5hbWU+ICovCiAJZWxzZSBpZiAoTWF0Y2hlcygiQUxURVIiLCAiVklFVyIsIE1hdGNoQW55 KSkKIAkJQ09NUExFVEVfV0lUSCgiQUxURVIgQ09MVU1OIiwgIk9XTkVSIFRPIiwgIlJFTkFNRSIs ICJSRVNFVCIsICJTRVQiKTsKQEAgLTMxMzYsNyArMzE0Nyw3IEBAIG1hdGNoX3ByZXZpb3VzX3dv cmRzKGludCBwYXR0ZXJuX2lkLAogCQkJCQkgICJST1VUSU5FIiwgIlJVTEUiLCAiU0NIRU1BIiwg IlNFUVVFTkNFIiwgIlNFUlZFUiIsCiAJCQkJCSAgIlNUQVRJU1RJQ1MiLCAiU1VCU0NSSVBUSU9O IiwgIlRBQkxFIiwKIAkJCQkJICAiVEFCTEVTUEFDRSIsICJURVhUIFNFQVJDSCIsICJUUkFOU0ZP Uk0gRk9SIiwKLQkJCQkJICAiVFJJR0dFUiIsICJUWVBFIiwgIlZJRVciKTsKKwkJCQkJICAiVFJJ R0dFUiIsICJUWVBFIiwgIlZBUklBQkxFIiwgIlZJRVciKTsKIAllbHNlIGlmIChNYXRjaGVzKCJD T01NRU5UIiwgIk9OIiwgIkFDQ0VTUyIsICJNRVRIT0QiKSkKIAkJQ09NUExFVEVfV0lUSF9RVUVS WShRdWVyeV9mb3JfbGlzdF9vZl9hY2Nlc3NfbWV0aG9kcyk7CiAJZWxzZSBpZiAoTWF0Y2hlcygi Q09NTUVOVCIsICJPTiIsICJDT05TVFJBSU5UIikpCkBAIC0zOTQ2LDYgKzM5NTcsMTMgQEAgbWF0 Y2hfcHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJCWVsc2UgaWYgKFRhaWxNYXRjaGVz KCI9IiwgTWF0Y2hBbnlFeGNlcHQoIiopIikpKQogCQkJQ09NUExFVEVfV0lUSCgiLCIsICIpIik7 CiAJfQorLyogQ1JFQVRFIFZBUklBQkxFIC0tLSBpcyBhbGxvd2VkIGluc2lkZSBDUkVBVEUgU0NI RU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8KKwkvKiBDb21wbGV0ZSBDUkVBVEUgVkFSSUFCTEUg PG5hbWU+IHdpdGggQVMgKi8KKwllbHNlIGlmIChUYWlsTWF0Y2hlcygiQ1JFQVRFIiwgIlZBUklB QkxFIiwgTWF0Y2hBbnkpKQorCQlDT01QTEVURV9XSVRIKCJBUyIpOworCWVsc2UgaWYgKFRhaWxN YXRjaGVzKCJWQVJJQUJMRSIsIE1hdGNoQW55LCAiQVMiKSkKKwkJLyogQ29tcGxldGUgQ1JFQVRF IFZBUklBQkxFIDxuYW1lPiB3aXRoIEFTIHR5cGVzICovCisJCUNPTVBMRVRFX1dJVEhfU0NIRU1B X1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX2RhdGF0eXBlcyk7CiAKIC8qIENSRUFURSBWSUVXIC0t LSBpcyBhbGxvd2VkIGluc2lkZSBDUkVBVEUgU0NIRU1BLCBzbyB1c2UgVGFpbE1hdGNoZXMgKi8K IAkvKiBDb21wbGV0ZSBDUkVBVEUgWyBPUiBSRVBMQUNFIF0gVklFVyA8bmFtZT4gd2l0aCBBUyBv ciBXSVRIICovCkBAIC00MjIzLDYgKzQyNDEsMTIgQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50 IHBhdHRlcm5faWQsCiAJZWxzZSBpZiAoTWF0Y2hlcygiRFJPUCIsICJUUkFOU0ZPUk0iLCAiRk9S IiwgTWF0Y2hBbnksICJMQU5HVUFHRSIsIE1hdGNoQW55KSkKIAkJQ09NUExFVEVfV0lUSCgiQ0FT Q0FERSIsICJSRVNUUklDVCIpOwogCisJLyogRFJPUCBWQVJJQUJMRSAqLworCWVsc2UgaWYgKE1h dGNoZXMoIkRST1AiLCAiVkFSSUFCTEUiKSkKKwkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlko UXVlcnlfZm9yX2xpc3Rfb2ZfdmFyaWFibGVzKTsKKwllbHNlIGlmIChNYXRjaGVzKCJEUk9QIiwg IlZBUklBQkxFIiwgTWF0Y2hBbnkpKQorCQlDT01QTEVURV9XSVRIKCJDQVNDQURFIiwgIlJFU1RS SUNUIik7CisKIC8qIEVYRUNVVEUgKi8KIAllbHNlIGlmIChNYXRjaGVzKCJFWEVDVVRFIikpCiAJ CUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfcHJlcGFyZWRfc3RhdGVtZW50 cyk7CkBAIC00NDI0LDcgKzQ0NDgsNyBAQCBtYXRjaF9wcmV2aW91c193b3JkcyhpbnQgcGF0dGVy bl9pZCwKIAkJICogb2JqZWN0cyBzdXBwb3J0ZWQuCiAJCSAqLwogCQlpZiAoSGVhZE1hdGNoZXMo IkFMVEVSIiwgIkRFRkFVTFQiLCAiUFJJVklMRUdFUyIpKQotCQkJQ09NUExFVEVfV0lUSCgiVEFC TEVTIiwgIlNFUVVFTkNFUyIsICJGVU5DVElPTlMiLCAiUFJPQ0VEVVJFUyIsICJST1VUSU5FUyIs ICJUWVBFUyIsICJTQ0hFTUFTIik7CisJCQlDT01QTEVURV9XSVRIKCJUQUJMRVMiLCAiU0VRVUVO Q0VTIiwgIkZVTkNUSU9OUyIsICJQUk9DRURVUkVTIiwgIlJPVVRJTkVTIiwgIlRZUEVTIiwgIlND SEVNQVMiLCAiVkFSSUFCTEVTIik7CiAJCWVsc2UKIAkJCUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FV RVJZX1BMVVMoUXVlcnlfZm9yX2xpc3Rfb2ZfZ3JhbnRhYmxlcywKIAkJCQkJCQkJCQkJIkFMTCBG VU5DVElPTlMgSU4gU0NIRU1BIiwKQEAgLTQ0MzIsNiArNDQ1Niw3IEBAIG1hdGNoX3ByZXZpb3Vz X3dvcmRzKGludCBwYXR0ZXJuX2lkLAogCQkJCQkJCQkJCQkiQUxMIFJPVVRJTkVTIElOIFNDSEVN QSIsCiAJCQkJCQkJCQkJCSJBTEwgU0VRVUVOQ0VTIElOIFNDSEVNQSIsCiAJCQkJCQkJCQkJCSJB TEwgVEFCTEVTIElOIFNDSEVNQSIsCisJCQkJCQkJCQkJCSJBTEwgVkFSSUFCTEVTIElOIFNDSEVN QSIsCiAJCQkJCQkJCQkJCSJEQVRBQkFTRSIsCiAJCQkJCQkJCQkJCSJET01BSU4iLAogCQkJCQkJ CQkJCQkiRk9SRUlHTiBEQVRBIFdSQVBQRVIiLApAQCAtNDQ0Niw3ICs0NDcxLDggQEAgbWF0Y2hf cHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJCQkJCQkJCQkJCSJTRVFVRU5DRSIsCiAJ CQkJCQkJCQkJCSJUQUJMRSIsCiAJCQkJCQkJCQkJCSJUQUJMRVNQQUNFIiwKLQkJCQkJCQkJCQkJ IlRZUEUiKTsKKwkJCQkJCQkJCQkJIlRZUEUiLAorCQkJCQkJCQkJCQkiVkFSSUFCTEUiKTsKIAl9 CiAJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkdSQU5UfFJFVk9LRSIsIE1hdGNoQW55LCAiT04iLCAi QUxMIikgfHwKIAkJCSBUYWlsTWF0Y2hlcygiUkVWT0tFIiwgIkdSQU5UIiwgIk9QVElPTiIsICJG T1IiLCBNYXRjaEFueSwgIk9OIiwgIkFMTCIpKQpAQCAtNDQ1NCw3ICs0NDgwLDggQEAgbWF0Y2hf cHJldmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJCQkJCSAgIlBST0NFRFVSRVMgSU4gU0NI RU1BIiwKIAkJCQkJICAiUk9VVElORVMgSU4gU0NIRU1BIiwKIAkJCQkJICAiU0VRVUVOQ0VTIElO IFNDSEVNQSIsCi0JCQkJCSAgIlRBQkxFUyBJTiBTQ0hFTUEiKTsKKwkJCQkJICAiVEFCTEVTIElO IFNDSEVNQSIsCisJCQkJCSAgIlZBUklBQkxFUyBJTiBTQ0hFTUEiKTsKIAllbHNlIGlmIChUYWls TWF0Y2hlcygiR1JBTlR8UkVWT0tFIiwgTWF0Y2hBbnksICJPTiIsICJGT1JFSUdOIikgfHwKIAkJ CSBUYWlsTWF0Y2hlcygiUkVWT0tFIiwgIkdSQU5UIiwgIk9QVElPTiIsICJGT1IiLCBNYXRjaEFu eSwgIk9OIiwgIkZPUkVJR04iKSkKIAkJQ09NUExFVEVfV0lUSCgiREFUQSBXUkFQUEVSIiwgIlNF UlZFUiIpOwpAQCAtNDQ5MCw2ICs0NTE3LDggQEAgbWF0Y2hfcHJldmlvdXNfd29yZHMoaW50IHBh dHRlcm5faWQsCiAJCQlDT01QTEVURV9XSVRIX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3RhYmxl c3BhY2VzKTsKIAkJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIlRZUEUiKSkKIAkJCUNPTVBMRVRFX1dJ VEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX2RhdGF0eXBlcyk7CisJCWVsc2UgaWYg KFRhaWxNYXRjaGVzKCJWQVJJQUJMRSIpKQorCQkJQ09NUExFVEVfV0lUSF9TQ0hFTUFfUVVFUlko UXVlcnlfZm9yX2xpc3Rfb2ZfdmFyaWFibGVzKTsKIAkJZWxzZSBpZiAoVGFpbE1hdGNoZXMoIkdS QU5UIiwgTWF0Y2hBbnksIE1hdGNoQW55LCBNYXRjaEFueSkpCiAJCQlDT01QTEVURV9XSVRIKCJU TyIpOwogCQllbHNlCkBAIC00NzkyLDcgKzQ4MjEsNyBAQCBtYXRjaF9wcmV2aW91c193b3Jkcyhp bnQgcGF0dGVybl9pZCwKIAogLyogUFJFUEFSRSB4eCBBUyAqLwogCWVsc2UgaWYgKE1hdGNoZXMo IlBSRVBBUkUiLCBNYXRjaEFueSwgIkFTIikpCi0JCUNPTVBMRVRFX1dJVEgoIlNFTEVDVCIsICJV UERBVEUiLCAiSU5TRVJUIElOVE8iLCAiREVMRVRFIEZST00iKTsKKwkJQ09NUExFVEVfV0lUSCgi U0VMRUNUIiwgIlVQREFURSIsICJJTlNFUlQgSU5UTyIsICJERUxFVEUgRlJPTSIsICJMRVQiKTsK IAogLyoKICAqIFBSRVBBUkUgVFJBTlNBQ1RJT04gaXMgbWlzc2luZyBvbiBwdXJwb3NlLiBJdCdz IGludGVuZGVkIGZvciB0cmFuc2FjdGlvbgpAQCAtNTI3NCw2ICs1MzAzLDggQEAgbWF0Y2hfcHJl dmlvdXNfd29yZHMoaW50IHBhdHRlcm5faWQsCiAJCUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlf Zm9yX2xpc3Rfb2Zfcm9sZXMpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVzQ1MoIlxcZHYqIikpCiAJ CUNPTVBMRVRFX1dJVEhfU0NIRU1BX1FVRVJZKFF1ZXJ5X2Zvcl9saXN0X29mX3ZpZXdzKTsKKwll bHNlIGlmIChUYWlsTWF0Y2hlc0NTKCJcXGRWKiIpKQorCQlDT01QTEVURV9XSVRIX1NDSEVNQV9R VUVSWShRdWVyeV9mb3JfbGlzdF9vZl92YXJpYWJsZXMpOwogCWVsc2UgaWYgKFRhaWxNYXRjaGVz Q1MoIlxcZHgqIikpCiAJCUNPTVBMRVRFX1dJVEhfUVVFUlkoUXVlcnlfZm9yX2xpc3Rfb2ZfZXh0 ZW5zaW9ucyk7CiAJZWxzZSBpZiAoVGFpbE1hdGNoZXNDUygiXFxkWCoiKSkKZGlmZiAtLWdpdCBh L3NyYy9pbmNsdWRlL2NhdGFsb2cvTWFrZWZpbGUgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL01ha2Vm aWxlCmluZGV4IDJiYmM3ODA1ZmUuLmY5ODc2MGRlNjMgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvTWFrZWZpbGUKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9NYWtlZmlsZQpAQCAt ODEsNyArODEsOCBAQCBDQVRBTE9HX0hFQURFUlMgOj0gXAogCXBnX3B1YmxpY2F0aW9uX25hbWVz cGFjZS5oIFwKIAlwZ19wdWJsaWNhdGlvbl9yZWwuaCBcCiAJcGdfc3Vic2NyaXB0aW9uLmggXAot CXBnX3N1YnNjcmlwdGlvbl9yZWwuaAorCXBnX3N1YnNjcmlwdGlvbl9yZWwuaCBcCisJcGdfdmFy aWFibGUuaAogCiBHRU5FUkFURURfSEVBREVSUyA6PSAkKENBVEFMT0dfSEVBREVSUzolLmg9JV9k LmgpCiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQgYi9zcmMv aW5jbHVkZS9jYXRhbG9nL21lc29uLmJ1aWxkCmluZGV4IGVjMWNmNDY3ZjYuLjgxMzk4ZWZhN2Mg MTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFsb2cvbWVzb24uYnVpbGQKKysrIGIvc3JjL2lu Y2x1ZGUvY2F0YWxvZy9tZXNvbi5idWlsZApAQCAtNjksNiArNjksNyBAQCBjYXRhbG9nX2hlYWRl cnMgPSBbCiAgICdwZ19wdWJsaWNhdGlvbl9yZWwuaCcsCiAgICdwZ19zdWJzY3JpcHRpb24uaCcs CiAgICdwZ19zdWJzY3JpcHRpb25fcmVsLmgnLAorICAncGdfdmFyaWFibGUuaCcsCiBdCiAKICMg VGhlIC5kYXQgZmlsZXMgd2UgbmVlZCBjYW4ganVzdCBiZSBsaXN0ZWQgYWxwaGFiZXRpY2FsbHku CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oIGIvc3JjL2luY2x1 ZGUvY2F0YWxvZy9uYW1lc3BhY2UuaAppbmRleCA4YzdjY2M2OWEzLi5iZGFjMGMxM2JlIDEwMDY0 NAotLS0gYS9zcmMvaW5jbHVkZS9jYXRhbG9nL25hbWVzcGFjZS5oCisrKyBiL3NyYy9pbmNsdWRl L2NhdGFsb2cvbmFtZXNwYWNlLmgKQEAgLTk3LDYgKzk3LDggQEAgZXh0ZXJuIE9pZAlUeXBlbmFt ZUdldFR5cGlkKGNvbnN0IGNoYXIgKnR5cG5hbWUpOwogZXh0ZXJuIE9pZAlUeXBlbmFtZUdldFR5 cGlkRXh0ZW5kZWQoY29uc3QgY2hhciAqdHlwbmFtZSwgYm9vbCB0ZW1wX29rKTsKIGV4dGVybiBi b29sIFR5cGVJc1Zpc2libGUoT2lkIHR5cGlkKTsKIAorZXh0ZXJuIGJvb2wgVmFyaWFibGVJc1Zp c2libGUoT2lkIHZhcmlkKTsKKwogZXh0ZXJuIEZ1bmNDYW5kaWRhdGVMaXN0IEZ1bmNuYW1lR2V0 Q2FuZGlkYXRlcyhMaXN0ICpuYW1lcywKIAkJCQkJCQkJCQkJICAgaW50IG5hcmdzLCBMaXN0ICph cmduYW1lcywKIAkJCQkJCQkJCQkJICAgYm9vbCBleHBhbmRfdmFyaWFkaWMsCkBAIC0xNjksNiAr MTcxLDEwIEBAIGV4dGVybiBTZWFyY2hQYXRoTWF0Y2hlciAqR2V0U2VhcmNoUGF0aE1hdGNoZXIo TWVtb3J5Q29udGV4dCBjb250ZXh0KTsKIGV4dGVybiBTZWFyY2hQYXRoTWF0Y2hlciAqQ29weVNl YXJjaFBhdGhNYXRjaGVyKFNlYXJjaFBhdGhNYXRjaGVyICpwYXRoKTsKIGV4dGVybiBib29sIFNl YXJjaFBhdGhNYXRjaGVzQ3VycmVudEVudmlyb25tZW50KFNlYXJjaFBhdGhNYXRjaGVyICpwYXRo KTsKIAorZXh0ZXJuIExpc3QgKk5hbWVzRnJvbUxpc3QoTGlzdCAqbmFtZXMpOworZXh0ZXJuIE9p ZAlMb29rdXBWYXJpYWJsZShjb25zdCBjaGFyICpuc3BuYW1lLCBjb25zdCBjaGFyICp2YXJuYW1l LCBib29sIG1pc3Npbmdfb2spOworZXh0ZXJuIE9pZAlMb29rdXBWYXJpYWJsZUZyb21OYW1lTGlz dChMaXN0ICpuYW1lcywgYm9vbCBtaXNzaW5nX29rKTsKKwogZXh0ZXJuIE9pZAlnZXRfY29sbGF0 aW9uX29pZChMaXN0ICpjb2xsbmFtZSwgYm9vbCBtaXNzaW5nX29rKTsKIGV4dGVybiBPaWQJZ2V0 X2NvbnZlcnNpb25fb2lkKExpc3QgKmNvbm5hbWUsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4g T2lkCUZpbmREZWZhdWx0Q29udmVyc2lvblByb2MoaW50MzIgZm9yX2VuY29kaW5nLCBpbnQzMiB0 b19lbmNvZGluZyk7CmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2RlZmF1bHRf YWNsLmggYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX2RlZmF1bHRfYWNsLmgKaW5kZXggNmVkZjMz NzI1My4uZmYyODkxYzA5OCAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19kZWZh dWx0X2FjbC5oCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfZGVmYXVsdF9hY2wuaApAQCAt NjgsNiArNjgsNyBAQCBNQUtFX1NZU0NBQ0hFKERFRkFDTFJPTEVOU1BPQkosIHBnX2RlZmF1bHRf YWNsX3JvbGVfbnNwX29ial9pbmRleCwgOCk7CiAjZGVmaW5lIERFRkFDTE9CSl9GVU5DVElPTgkJ J2YnIC8qIGZ1bmN0aW9uICovCiAjZGVmaW5lIERFRkFDTE9CSl9UWVBFCQkJJ1QnIC8qIHR5cGUg Ki8KICNkZWZpbmUgREVGQUNMT0JKX05BTUVTUEFDRQkJJ24nIC8qIG5hbWVzcGFjZSAqLworI2Rl ZmluZSBERUZBQ0xPQkpfVkFSSUFCTEUJCSdWJyAvKiB2YXJpYWJsZSAqLwogCiAjZW5kaWYJCQkJ CQkJLyogRVhQT1NFX1RPX0NMSUVOVF9DT0RFICovCiAKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRl L2NhdGFsb2cvcGdfcHJvYy5kYXQgYi9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3Byb2MuZGF0Cmlu ZGV4IGIzN2U4YTZmODguLjcwZjQxZjE4ZTIgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL2NhdGFs b2cvcGdfcHJvYy5kYXQKKysrIGIvc3JjL2luY2x1ZGUvY2F0YWxvZy9wZ19wcm9jLmRhdApAQCAt NTM5NSw2ICs1Mzk1LDI2IEBACiAgIHByb3JldHR5cGUgPT4gJ2Jvb2wnLCBwcm9hcmd0eXBlcyA9 PiAnb2lkIG9pZCB0ZXh0JywKICAgcHJvc3JjID0+ICdoYXNfbGFyZ2VvYmplY3RfcHJpdmlsZWdl X2lkX2lkJyB9LAogCit7IG9pZCA9PiAnOTYxMycsIGRlc2NyID0+ICd1c2VyIHByaXZpbGVnZSBv biBzZXNzaW9uIHZhcmlhYmxlIGJ5IHVzZXJuYW1lLCBzZXEgbmFtZScsCisgIHByb25hbWUgPT4g J2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZScsIHByb3ZvbGF0aWxlID0+ICdzJywgcHJv cmV0dHlwZSA9PiAnYm9vbCcsCisgIHByb2FyZ3R5cGVzID0+ICduYW1lIHRleHQgdGV4dCcsCisg IHByb3NyYyA9PiAnaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX25hbWVfbmFtZScgfSwK K3sgb2lkID0+ICc5NjE0JywgZGVzY3IgPT4gJ3VzZXIgcHJpdmlsZWdlIG9uIHNlc3Npb24gdmFy aWFibGUgYnkgdXNlcm5hbWUsIHNlcSBvaWQnLAorICBwcm9uYW1lID0+ICdoYXNfc2Vzc2lvbl92 YXJpYWJsZV9wcml2aWxlZ2UnLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ2Jv b2wnLAorICBwcm9hcmd0eXBlcyA9PiAnbmFtZSBvaWQgdGV4dCcsIHByb3NyYyA9PiAnaGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlX25hbWVfaWQnIH0sCit7IG9pZCA9PiAnOTYxNScsIGRl c2NyID0+ICd1c2VyIHByaXZpbGVnZSBvbiBzZXNzaW9uIHZhcmlhYmxlIGJ5IHVzZXIgb2lkLCBz ZXEgbmFtZScsCisgIHByb25hbWUgPT4gJ2hhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZScs IHByb3ZvbGF0aWxlID0+ICdzJywgcHJvcmV0dHlwZSA9PiAnYm9vbCcsCisgIHByb2FyZ3R5cGVz ID0+ICdvaWQgdGV4dCB0ZXh0JywgcHJvc3JjID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2 aWxlZ2VfaWRfbmFtZScgfSwKK3sgb2lkID0+ICc5NjE2JywgZGVzY3IgPT4gJ3VzZXIgcHJpdmls ZWdlIG9uIHNlc3Npb24gdmFyaWFibGUgYnkgdXNlciBvaWQsIHNlcSBvaWQnLAorICBwcm9uYW1l ID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UnLCBwcm92b2xhdGlsZSA9PiAncycs IHByb3JldHR5cGUgPT4gJ2Jvb2wnLAorICBwcm9hcmd0eXBlcyA9PiAnb2lkIG9pZCB0ZXh0Jywg cHJvc3JjID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfaWRfaWQnIH0sCit7IG9p ZCA9PiAnOTYxNycsIGRlc2NyID0+ICdjdXJyZW50IHVzZXIgcHJpdmlsZWdlIG9uIHNlc3Npb24g dmFyaWFibGUgYnkgc2VxIG5hbWUnLAorICBwcm9uYW1lID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UnLCBwcm92b2xhdGlsZSA9PiAncycsIHByb3JldHR5cGUgPT4gJ2Jvb2wnLAor ICBwcm9hcmd0eXBlcyA9PiAndGV4dCB0ZXh0JywgcHJvc3JjID0+ICdoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2VfbmFtZScgfSwKK3sgb2lkID0+ICc5NjE4JywgZGVzY3IgPT4gJ2N1cnJl bnQgdXNlciBwcml2aWxlZ2Ugb24gc2Vzc2lvbiB2YXJpYWJsZSBieSBzZXEgb2lkJywKKyAgcHJv bmFtZSA9PiAnaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlJywgcHJvdm9sYXRpbGUgPT4g J3MnLCBwcm9yZXR0eXBlID0+ICdib29sJywKKyAgcHJvYXJndHlwZXMgPT4gJ29pZCB0ZXh0Jywg cHJvc3JjID0+ICdoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2VfaWQnIH0sCisKIHsgb2lk ID0+ICczMzU1JywgZGVzY3IgPT4gJ0kvTycsCiAgIHByb25hbWUgPT4gJ3BnX25kaXN0aW5jdF9p bicsIHByb3JldHR5cGUgPT4gJ3BnX25kaXN0aW5jdCcsCiAgIHByb2FyZ3R5cGVzID0+ICdjc3Ry aW5nJywgcHJvc3JjID0+ICdwZ19uZGlzdGluY3RfaW4nIH0sCkBAIC02NTc5LDYgKzY1OTksOSBA QAogICBwcm9uYW1lID0+ICdwZ19jb2xsYXRpb25faXNfdmlzaWJsZScsIHByb2Nvc3QgPT4gJzEw JywgcHJvdm9sYXRpbGUgPT4gJ3MnLAogICBwcm9yZXR0eXBlID0+ICdib29sJywgcHJvYXJndHlw ZXMgPT4gJ29pZCcsCiAgIHByb3NyYyA9PiAncGdfY29sbGF0aW9uX2lzX3Zpc2libGUnIH0sCit7 IG9pZCA9PiAnOTIyMScsIGRlc2NyID0+ICdpcyBzZXNzaW9uIHZhcmlhYmxlIHZpc2libGUgaW4g c2VhcmNoIHBhdGg/JywKKyAgcHJvbmFtZSA9PiAncGdfdmFyaWFibGVfaXNfdmlzaWJsZScsIHBy b2Nvc3QgPT4gJzEwJywgcHJvdm9sYXRpbGUgPT4gJ3MnLAorICBwcm9yZXR0eXBlID0+ICdib29s JywgcHJvYXJndHlwZXMgPT4gJ29pZCcsIHByb3NyYyA9PiAncGdfdmFyaWFibGVfaXNfdmlzaWJs ZScgfSwKIAogeyBvaWQgPT4gJzI4NTQnLCBkZXNjciA9PiAnZ2V0IE9JRCBvZiBjdXJyZW50IHNl c3Npb25cJ3MgdGVtcCBzY2hlbWEsIGlmIGFueScsCiAgIHByb25hbWUgPT4gJ3BnX215X3RlbXBf c2NoZW1hJywgcHJvdm9sYXRpbGUgPT4gJ3MnLCBwcm9wYXJhbGxlbCA9PiAncicsCmRpZmYgLS1n aXQgYS9zcmMvaW5jbHVkZS9jYXRhbG9nL3BnX3ZhcmlhYmxlLmggYi9zcmMvaW5jbHVkZS9jYXRh bG9nL3BnX3ZhcmlhYmxlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4u M2QzYzZlYjI0YgotLS0gL2Rldi9udWxsCisrKyBiL3NyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFy aWFibGUuaApAQCAtMCwwICsxLDgxIEBACisvKi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqCisgKiBwZ192 YXJpYWJsZS5oCisgKgkgIGRlZmluaXRpb24gb2Ygc2Vzc2lvbiB2YXJpYWJsZXMgc3lzdGVtIGNh dGFsb2cgKHBnX3ZhcmlhYmxlcykKKyAqCisgKgorICogUG9ydGlvbnMgQ29weXJpZ2h0IChjKSAx OTk2LTIwMjUsIFBvc3RncmVTUUwgR2xvYmFsIERldmVsb3BtZW50IEdyb3VwCisgKiBQb3J0aW9u cyBDb3B5cmlnaHQgKGMpIDE5OTQsIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2FsaWZv cm5pYQorICoKKyAqIHNyYy9pbmNsdWRlL2NhdGFsb2cvcGdfdmFyaWFibGUuaAorICoKKyAqIE5P VEVTCisgKgkgIFRoZSBDYXRhbG9nLnBtIG1vZHVsZSByZWFkcyB0aGlzIGZpbGUgYW5kIGRlcml2 ZXMgc2NoZW1hCisgKgkgIGluZm9ybWF0aW9uLgorICoKKyAqLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorICov CisjaWZuZGVmIFBHX1ZBUklBQkxFX0gKKyNkZWZpbmUgUEdfVkFSSUFCTEVfSAorCisjaW5jbHVk ZSAiY2F0YWxvZy9nZW5ia2kuaCIKKyNpbmNsdWRlICJjYXRhbG9nL29iamVjdGFkZHJlc3MuaCIK KyNpbmNsdWRlICJjYXRhbG9nL3BnX3ZhcmlhYmxlX2QuaCIKKyNpbmNsdWRlICJ1dGlscy9hY2wu aCIKKworLyogLS0tLS0tLS0tLS0tLS0tLQorICoJCXBnX3ZhcmlhYmxlIGRlZmluaXRpb24uICBj cHAgdHVybnMgdGhpcyBpbnRvCisgKgkJdHlwZWRlZiBzdHJ1Y3QgRm9ybURhdGFfcGdfdmFyaWFi bGUKKyAqIC0tLS0tLS0tLS0tLS0tLS0KKyAqLworQ0FUQUxPRyhwZ192YXJpYWJsZSw5MjIyLFZh cmlhYmxlUmVsYXRpb25JZCkKK3sKKwlPaWQJCQlvaWQ7CQkJLyogb2lkICovCisKKwkvKiBPSUQg b2YgZW50cnkgaW4gcGdfdHlwZSBmb3IgdmFyaWFibGUncyB0eXBlICovCisJT2lkCQkJdmFydHlw ZSBCS0lfTE9PS1VQKHBnX3R5cGUpOworCisJLyogdmFyaWFibGUgbmFtZSAqLworCU5hbWVEYXRh CXZhcm5hbWU7CisKKwkvKiBPSUQgb2YgbmFtZXNwYWNlIGNvbnRhaW5pbmcgdmFyaWFibGUgY2xh c3MgKi8KKwlPaWQJCQl2YXJuYW1lc3BhY2UgQktJX0xPT0tVUChwZ19uYW1lc3BhY2UpOworCisJ LyogdmFyaWFibGUgb3duZXIgKi8KKwlPaWQJCQl2YXJvd25lciBCS0lfTE9PS1VQKHBnX2F1dGhp ZCk7CisKKwkvKiB0eXBtb2QgZm9yIHZhcmlhYmxlJ3MgdHlwZSAqLworCWludDMyCQl2YXJ0eXBt b2QgQktJX0RFRkFVTFQoLTEpOworCisJLyogdmFyaWFibGUgY29sbGF0aW9uICovCisJT2lkCQkJ dmFyY29sbGF0aW9uIEJLSV9ERUZBVUxUKDApIEJLSV9MT09LVVBfT1BUKHBnX2NvbGxhdGlvbik7 CisKKworI2lmZGVmIENBVEFMT0dfVkFSTEVOCQkJLyogdmFyaWFibGUtbGVuZ3RoIGZpZWxkcyBz dGFydCBoZXJlICovCisKKwkvKiBhY2Nlc3MgcGVybWlzc2lvbnMgKi8KKwlhY2xpdGVtCQl2YXJh Y2xbMV0gQktJX0RFRkFVTFQoX251bGxfKTsKKworI2VuZGlmCit9IEZvcm1EYXRhX3BnX3Zhcmlh YmxlOworCisvKiAtLS0tLS0tLS0tLS0tLS0tCisgKgkJRm9ybV9wZ192YXJpYWJsZSBjb3JyZXNw b25kcyB0byBhIHBvaW50ZXIgdG8gYSB0dXBsZSB3aXRoCisgKgkJdGhlIGZvcm1hdCBvZiB0aGUg cGdfdmFyaWFibGUgcmVsYXRpb24uCisgKiAtLS0tLS0tLS0tLS0tLS0tCisgKi8KK3R5cGVkZWYg Rm9ybURhdGFfcGdfdmFyaWFibGUgKkZvcm1fcGdfdmFyaWFibGU7CisKK0RFQ0xBUkVfVE9BU1Qo cGdfdmFyaWFibGUsIDkyMjMsIDkyMjQpOworCitERUNMQVJFX1VOSVFVRV9JTkRFWF9QS0VZKHBn X3ZhcmlhYmxlX29pZF9pbmRleCwgOTIyNSwgVmFyaWFibGVPaWRJbmRleElkLCBwZ192YXJpYWJs ZSwgYnRyZWUob2lkIG9pZF9vcHMpKTsKK0RFQ0xBUkVfVU5JUVVFX0lOREVYKHBnX3ZhcmlhYmxl X3Zhcm5hbWVfbnNwX2luZGV4LCA5MjI2LCBWYXJpYWJsZU5hbWVOc3BJbmRleElkLCBwZ192YXJp YWJsZSwgYnRyZWUodmFybmFtZSBuYW1lX29wcywgdmFybmFtZXNwYWNlIG9pZF9vcHMpKTsKKwor ZXh0ZXJuIE9iamVjdEFkZHJlc3MgQ3JlYXRlVmFyaWFibGUoUGFyc2VTdGF0ZSAqcHN0YXRlLAor CQkJCQkJCQkJQ3JlYXRlU2Vzc2lvblZhclN0bXQgKnN0bXQpOworZXh0ZXJuIHZvaWQgRHJvcFZh cmlhYmxlQnlJZChPaWQgdmFyaWQpOworCitNQUtFX1NZU0NBQ0hFKFZBUklBQkxFTkFNRU5TUCwg cGdfdmFyaWFibGVfdmFybmFtZV9uc3BfaW5kZXgsIDgpOworTUFLRV9TWVNDQUNIRShWQVJJQUJM RU9JRCwgcGdfdmFyaWFibGVfb2lkX2luZGV4LCA4KTsKKworI2VuZGlmCQkJCQkJCS8qIFBHX1ZB UklBQkxFX0ggKi8KZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaCBi L3NyYy9pbmNsdWRlL25vZGVzL3BhcnNlbm9kZXMuaAppbmRleCAzOGQ2YWQ3ZGNiLi42NmFlYzQ2 NTQ5IDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS9ub2Rlcy9wYXJzZW5vZGVzLmgKKysrIGIvc3Jj L2luY2x1ZGUvbm9kZXMvcGFyc2Vub2Rlcy5oCkBAIC0yMzE2LDYgKzIzMTYsNyBAQCB0eXBlZGVm IGVudW0gT2JqZWN0VHlwZQogCU9CSkVDVF9UU1RFTVBMQVRFLAogCU9CSkVDVF9UWVBFLAogCU9C SkVDVF9VU0VSX01BUFBJTkcsCisJT0JKRUNUX1ZBUklBQkxFLAogCU9CSkVDVF9WSUVXLAogfSBP YmplY3RUeXBlOwogCkBAIC0zNDQ3LDYgKzM0NDgsMjEgQEAgdHlwZWRlZiBzdHJ1Y3QgQWx0ZXJT dGF0c1N0bXQKIAlib29sCQltaXNzaW5nX29rOwkJLyogc2tpcCBlcnJvciBpZiBzdGF0aXN0aWNz IG9iamVjdCBpcyBtaXNzaW5nICovCiB9IEFsdGVyU3RhdHNTdG10OwogCisKKy8qIC0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KKyAqCQl7Q3JlYXRlfEFsdGVyfSBWQVJJQUJMRSBTdGF0ZW1lbnQKKyAq IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyAqLwordHlwZWRlZiBzdHJ1Y3QgQ3JlYXRlU2Vzc2lv blZhclN0bXQKK3sKKwlOb2RlVGFnCQl0eXBlOworCVJhbmdlVmFyICAgKnZhcmlhYmxlOwkJLyog dGhlIHZhcmlhYmxlIHRvIGNyZWF0ZSAqLworCVR5cGVOYW1lICAgKnR5cGVOYW1lOwkJLyogdGhl IHR5cGUgb2YgdmFyaWFibGUgKi8KKwlDb2xsYXRlQ2xhdXNlICpjb2xsQ2xhdXNlOworCWJvb2wJ CWlmX25vdF9leGlzdHM7CS8qIGRvIG5vdGhpbmcgaWYgaXQgYWxyZWFkeSBleGlzdHMgKi8KK30g Q3JlYXRlU2Vzc2lvblZhclN0bXQ7CisKKwogLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogICoJ CUNyZWF0ZSBGdW5jdGlvbiBTdGF0ZW1lbnQKICAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KZGlm ZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3BhcnNlci9rd2xpc3QuaCBiL3NyYy9pbmNsdWRlL3BhcnNl ci9rd2xpc3QuaAppbmRleCAyNGMyMmE4Njk0Li5jMjVhZGU2OGYxIDEwMDY0NAotLS0gYS9zcmMv aW5jbHVkZS9wYXJzZXIva3dsaXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvcGFyc2VyL2t3bGlzdC5o CkBAIC00ODQsNiArNDg0LDggQEAgUEdfS0VZV09SRCgidmFsaWRhdG9yIiwgVkFMSURBVE9SLCBV TlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVfTEFCRUwpCiBQR19LRVlXT1JEKCJ2YWx1ZSIsIFZBTFVF X1AsIFVOUkVTRVJWRURfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInZhbHVlcyIs IFZBTFVFUywgQ09MX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKIFBHX0tFWVdPUkQoInZhcmNo YXIiLCBWQVJDSEFSLCBDT0xfTkFNRV9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdfS0VZV09SRCgi dmFyaWFibGUiLCBWQVJJQUJMRSwgVU5SRVNFUlZFRF9LRVlXT1JELCBCQVJFX0xBQkVMKQorUEdf S0VZV09SRCgidmFyaWFibGVzIiwgVkFSSUFCTEVTLCBVTlJFU0VSVkVEX0tFWVdPUkQsIEJBUkVf TEFCRUwpCiBQR19LRVlXT1JEKCJ2YXJpYWRpYyIsIFZBUklBRElDLCBSRVNFUlZFRF9LRVlXT1JE LCBCQVJFX0xBQkVMKQogUEdfS0VZV09SRCgidmFyeWluZyIsIFZBUllJTkcsIFVOUkVTRVJWRURf S0VZV09SRCwgQVNfTEFCRUwpCiBQR19LRVlXT1JEKCJ2ZXJib3NlIiwgVkVSQk9TRSwgVFlQRV9G VU5DX05BTUVfS0VZV09SRCwgQkFSRV9MQUJFTCkKZGlmZiAtLWdpdCBhL3NyYy9pbmNsdWRlL3Rj b3AvY21kdGFnbGlzdC5oIGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKaW5kZXggZDI1 MGE3MTRkNS4uZWE4Njk1NGRkZSAxMDA2NDQKLS0tIGEvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWds aXN0LmgKKysrIGIvc3JjL2luY2x1ZGUvdGNvcC9jbWR0YWdsaXN0LmgKQEAgLTY4LDYgKzY4LDcg QEAgUEdfQ01EVEFHKENNRFRBR19BTFRFUl9UUkFOU0ZPUk0sICJBTFRFUiBUUkFOU0ZPUk0iLCB0 cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FMVEVSX1RSSUdHRVIsICJBTFRF UiBUUklHR0VSIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTFRFUl9U WVBFLCAiQUxURVIgVFlQRSIsIHRydWUsIHRydWUsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19B TFRFUl9VU0VSX01BUFBJTkcsICJBTFRFUiBVU0VSIE1BUFBJTkciLCB0cnVlLCBmYWxzZSwgZmFs c2UpCitQR19DTURUQUcoQ01EVEFHX0FMVEVSX1ZBUklBQkxFLCAiQUxURVIgVkFSSUFCTEUiLCB0 cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0FMVEVSX1ZJRVcsICJBTFRFUiBW SUVXIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19BTkFMWVpFLCAiQU5B TFlaRSIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0JFR0lOLCAiQkVH SU4iLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQpAQCAtMTIzLDYgKzEyNCw3IEBAIFBHX0NNRFRBRyhD TURUQUdfQ1JFQVRFX1RSQU5TRk9STSwgIkNSRUFURSBUUkFOU0ZPUk0iLCB0cnVlLCBmYWxzZSwg ZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9UUklHR0VSLCAiQ1JFQVRFIFRSSUdHRVIi LCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9UWVBFLCAiQ1JF QVRFIFRZUEUiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9V U0VSX01BUFBJTkcsICJDUkVBVEUgVVNFUiBNQVBQSU5HIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQor UEdfQ01EVEFHKENNRFRBR19DUkVBVEVfVkFSSUFCTEUsICJDUkVBVEUgVkFSSUFCTEUiLCB0cnVl LCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0NSRUFURV9WSUVXLCAiQ1JFQVRFIFZJ RVciLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RFQUxMT0NBVEUsICJE RUFMTE9DQVRFIiwgZmFsc2UsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfREVBTExP Q0FURV9BTEwsICJERUFMTE9DQVRFIEFMTCIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCkBAIC0xNzUs NiArMTc3LDcgQEAgUEdfQ01EVEFHKENNRFRBR19EUk9QX1RSQU5TRk9STSwgIkRST1AgVFJBTlNG T1JNIiwgdHJ1ZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19EUk9QX1RSSUdHRVIs ICJEUk9QIFRSSUdHRVIiLCB0cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RS T1BfVFlQRSwgIkRST1AgVFlQRSIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURU QUdfRFJPUF9VU0VSX01BUFBJTkcsICJEUk9QIFVTRVIgTUFQUElORyIsIHRydWUsIGZhbHNlLCBm YWxzZSkKK1BHX0NNRFRBRyhDTURUQUdfRFJPUF9WQVJJQUJMRSwgIkRST1AgVkFSSUFCTEUiLCB0 cnVlLCBmYWxzZSwgZmFsc2UpCiBQR19DTURUQUcoQ01EVEFHX0RST1BfVklFVywgIkRST1AgVklF VyIsIHRydWUsIGZhbHNlLCBmYWxzZSkKIFBHX0NNRFRBRyhDTURUQUdfRVhFQ1VURSwgIkVYRUNV VEUiLCBmYWxzZSwgZmFsc2UsIGZhbHNlKQogUEdfQ01EVEFHKENNRFRBR19FWFBMQUlOLCAiRVhQ TEFJTiIsIGZhbHNlLCBmYWxzZSwgZmFsc2UpCmRpZmYgLS1naXQgYS9zcmMvaW5jbHVkZS91dGls cy9hY2wuaCBiL3NyYy9pbmNsdWRlL3V0aWxzL2FjbC5oCmluZGV4IDAxYWU1YjcxOWYuLjVlMWE4 YTgyZTkgMTAwNjQ0Ci0tLSBhL3NyYy9pbmNsdWRlL3V0aWxzL2FjbC5oCisrKyBiL3NyYy9pbmNs dWRlL3V0aWxzL2FjbC5oCkBAIC0xNjksNiArMTY5LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQXJyYXlU eXBlIEFjbDsKICNkZWZpbmUgQUNMX0FMTF9SSUdIVFNfU0NIRU1BCQkoQUNMX1VTQUdFfEFDTF9D UkVBVEUpCiAjZGVmaW5lIEFDTF9BTExfUklHSFRTX1RBQkxFU1BBQ0UJKEFDTF9DUkVBVEUpCiAj ZGVmaW5lIEFDTF9BTExfUklHSFRTX1RZUEUJCQkoQUNMX1VTQUdFKQorI2RlZmluZSBBQ0xfQUxM X1JJR0hUU19WQVJJQUJMRQkJKEFDTF9TRUxFQ1R8QUNMX1VQREFURSkKIAogLyogb3BlcmF0aW9u IGNvZGVzIGZvciBwZ18qX2FjbG1hc2sgKi8KIHR5cGVkZWYgZW51bQpkaWZmIC0tZ2l0IGEvc3Jj L2luY2x1ZGUvdXRpbHMvbHN5c2NhY2hlLmggYi9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUu aAppbmRleCBiMjNkZWI5NjYyLi41M2M0ZDU4ODZlIDEwMDY0NAotLS0gYS9zcmMvaW5jbHVkZS91 dGlscy9sc3lzY2FjaGUuaAorKysgYi9zcmMvaW5jbHVkZS91dGlscy9sc3lzY2FjaGUuaApAQCAt MTM0LDYgKzEzNCw3IEBAIGV4dGVybiBjaGFyIGdldF9mdW5jX3Byb2tpbmQoT2lkIGZ1bmNpZCk7 CiBleHRlcm4gYm9vbCBnZXRfZnVuY19sZWFrcHJvb2YoT2lkIGZ1bmNpZCk7CiBleHRlcm4gUmVn UHJvY2VkdXJlIGdldF9mdW5jX3N1cHBvcnQoT2lkIGZ1bmNpZCk7CiBleHRlcm4gT2lkCWdldF9y ZWxuYW1lX3JlbGlkKGNvbnN0IGNoYXIgKnJlbG5hbWUsIE9pZCByZWxuYW1lc3BhY2UpOworZXh0 ZXJuIE9pZAlnZXRfdmFybmFtZV92YXJpZChjb25zdCBjaGFyICp2YXJuYW1lLCBPaWQgdmFybmFt ZXNwYWNlKTsKIGV4dGVybiBjaGFyICpnZXRfcmVsX25hbWUoT2lkIHJlbGlkKTsKIGV4dGVybiBP aWQJZ2V0X3JlbF9uYW1lc3BhY2UoT2lkIHJlbGlkKTsKIGV4dGVybiBPaWQJZ2V0X3JlbF90eXBl X2lkKE9pZCByZWxpZCk7CkBAIC0yMDYsNiArMjA3LDE0IEBAIGV4dGVybiBjaGFyICpnZXRfcHVi bGljYXRpb25fbmFtZShPaWQgcHViaWQsIGJvb2wgbWlzc2luZ19vayk7CiBleHRlcm4gT2lkCWdl dF9zdWJzY3JpcHRpb25fb2lkKGNvbnN0IGNoYXIgKnN1Ym5hbWUsIGJvb2wgbWlzc2luZ19vayk7 CiBleHRlcm4gY2hhciAqZ2V0X3N1YnNjcmlwdGlvbl9uYW1lKE9pZCBzdWJpZCwgYm9vbCBtaXNz aW5nX29rKTsKIAorZXh0ZXJuIGNoYXIgKmdldF9zZXNzaW9uX3ZhcmlhYmxlX25hbWUoT2lkIHZh cmlkKTsKK2V4dGVybiBPaWQJZ2V0X3Nlc3Npb25fdmFyaWFibGVfbmFtZXNwYWNlKE9pZCB2YXJp ZCk7CitleHRlcm4gT2lkCWdldF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGUoT2lkIHZhcmlkKTsKK2V4 dGVybiB2b2lkIGdldF9zZXNzaW9uX3ZhcmlhYmxlX3R5cGVfdHlwbW9kX2NvbGxpZChPaWQgdmFy aWQsCisJCQkJCQkJCQkJCQkJT2lkICp0eXBpZCwKKwkJCQkJCQkJCQkJCQlpbnQzMiAqdHlwbW9k LAorCQkJCQkJCQkJCQkJCU9pZCAqY29sbGlkKTsKKwogI2RlZmluZSB0eXBlX2lzX2FycmF5KHR5 cGlkKSAgKGdldF9lbGVtZW50X3R5cGUodHlwaWQpICE9IEludmFsaWRPaWQpCiAvKiB0eXBlX2lz X2FycmF5X2RvbWFpbiBhY2NlcHRzIGJvdGggcGxhaW4gYXJyYXlzIGFuZCBkb21haW5zIG92ZXIg YXJyYXlzICovCiAjZGVmaW5lIHR5cGVfaXNfYXJyYXlfZG9tYWluKHR5cGlkKSAgKGdldF9iYXNl X2VsZW1lbnRfdHlwZSh0eXBpZCkgIT0gSW52YWxpZE9pZCkKZGlmZiAtLWdpdCBhL3NyYy90ZXN0 L3JlZ3Jlc3MvZXhwZWN0ZWQvZGVwZW5kZW5jeS5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL2RlcGVuZGVuY3kub3V0CmluZGV4IDc0ZDlmZjI5OTguLmMzMzZmNjdhNTkgMTAwNjQ0Ci0t LSBhL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQvZGVwZW5kZW5jeS5vdXQKKysrIGIvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9kZXBlbmRlbmN5Lm91dApAQCAtMTUxLDMgKzE1MSwyMCBAQCBv d25lciBvZiB0eXBlIGRlcHRlc3RfdAogRFJPUCBPV05FRCBCWSByZWdyZXNzX2RlcF91c2VyMiwg cmVncmVzc19kZXBfdXNlcjA7CiBEUk9QIFVTRVIgcmVncmVzc19kZXBfdXNlcjI7CiBEUk9QIFVT RVIgcmVncmVzc19kZXBfdXNlcjA7CistLSBkZXBlbmRlbmN5IG9uIHR5cGUKK0NSRUFURSBET01B SU4gdmFyZG9tYWluIEFTIGludDsKK0NSRUFURSBUWVBFIHZhcnR5cGUgQVMgKGEgaW50LCBiIGlu dCwgYyB2YXJkb21haW4pOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdmFydHlwZTsKKy0tIHNo b3VsZCBmYWlsCitEUk9QIERPTUFJTiB2YXJkb21haW47CitFUlJPUjogIGNhbm5vdCBkcm9wIHR5 cGUgdmFyZG9tYWluIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQgb24gaXQKK0RFVEFJTDog IGNvbHVtbiBjIG9mIGNvbXBvc2l0ZSB0eXBlIHZhcnR5cGUgZGVwZW5kcyBvbiB0eXBlIHZhcmRv bWFpbgorSElOVDogIFVzZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBv YmplY3RzIHRvby4KK0RST1AgVFlQRSB2YXJ0eXBlOworRVJST1I6ICBjYW5ub3QgZHJvcCB0eXBl IHZhcnR5cGUgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVUQUlMOiAgc2Vz c2lvbiB2YXJpYWJsZSB2YXIxIGRlcGVuZHMgb24gdHlwZSB2YXJ0eXBlCitISU5UOiAgVXNlIERS T1AgLi4uIENBU0NBREUgdG8gZHJvcCB0aGUgZGVwZW5kZW50IG9iamVjdHMgdG9vLgorLS0gY2xl YW4gdXAKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVFlQRSB2YXJ0eXBlOworRFJPUCBET01B SU4gdmFyZG9tYWluOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9vaWRq b2lucy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5zLm91dAppbmRleCAy MTVlYjg5OWJlLi5kOTk1MzMyMTQwIDEwMDY0NAotLS0gYS9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL29pZGpvaW5zLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL29pZGpvaW5z Lm91dApAQCAtMjY2LDMgKzI2Niw3IEBAIE5PVElDRTogIGNoZWNraW5nIHBnX3N1YnNjcmlwdGlv biB7c3ViZGJpZH0gPT4gcGdfZGF0YWJhc2Uge29pZH0KIE5PVElDRTogIGNoZWNraW5nIHBnX3N1 YnNjcmlwdGlvbiB7c3Vib3duZXJ9ID0+IHBnX2F1dGhpZCB7b2lkfQogTk9USUNFOiAgY2hlY2tp bmcgcGdfc3Vic2NyaXB0aW9uX3JlbCB7c3JzdWJpZH0gPT4gcGdfc3Vic2NyaXB0aW9uIHtvaWR9 CiBOT1RJQ0U6ICBjaGVja2luZyBwZ19zdWJzY3JpcHRpb25fcmVsIHtzcnJlbGlkfSA9PiBwZ19j bGFzcyB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfdmFyaWFibGUge3ZhcnR5cGV9ID0+IHBn X3R5cGUge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX3ZhcmlhYmxlIHt2YXJuYW1lc3BhY2V9 ID0+IHBnX25hbWVzcGFjZSB7b2lkfQorTk9USUNFOiAgY2hlY2tpbmcgcGdfdmFyaWFibGUge3Zh cm93bmVyfSA9PiBwZ19hdXRoaWQge29pZH0KK05PVElDRTogIGNoZWNraW5nIHBnX3ZhcmlhYmxl IHt2YXJjb2xsYXRpb259ID0+IHBnX2NvbGxhdGlvbiB7b2lkfQpkaWZmIC0tZ2l0IGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dCBiL3NyYy90ZXN0L3JlZ3Jlc3MvZXhwZWN0ZWQv cHNxbC5vdXQKaW5kZXggMzZkYzMxYzE2Yy4uODhlMjExOTQ3MSAxMDA2NDQKLS0tIGEvc3JjL3Rl c3QvcmVncmVzcy9leHBlY3RlZC9wc3FsLm91dAorKysgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVj dGVkL3BzcWwub3V0CkBAIC01OTMwLDYgKzU5MzAsMzAgQEAgQ09NTUlUOwogIyBmaW5hbCBPTl9F UlJPUl9ST0xMQkFDSzogb2ZmCiBEUk9QIFRBQkxFIGJsYTsKIERST1AgRlVOQ1RJT04gcHNxbF9l cnJvcjsKKy0tIHNlc3Npb24gdmFyaWFibGUgdGVzdAorQ1JFQVRFIFJPTEUgcmVncmVzc192YXJp YWJsZV9vd25lcjsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitDUkVBVEUg VkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyIENPTExBVEUgIkMiOworXGRWKyB2YXIxCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisg U2NoZW1hIHwgTmFtZSB8ICAgICAgIFR5cGUgICAgICAgIHwgQ29sbGF0aW9uIHwgICAgICAgICBP d25lciAgICAgICAgICB8IEFjY2VzcyBwcml2aWxlZ2VzIHwgRGVzY3JpcHRpb24gCistLS0tLS0t LSstLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tCisgcHVibGljIHwgdmFy MSB8IGNoYXJhY3RlciB2YXJ5aW5nIHwgQyAgICAgICAgIHwgcmVncmVzc192YXJpYWJsZV9vd25l ciB8ICAgICAgICAgICAgICAgICAgIHwgCisoMSByb3cpCisKK0dSQU5UIFNFTEVDVCBPTiBWQVJJ QUJMRSB2YXIxIFRPIFBVQkxJQzsKK0NPTU1FTlQgT04gVkFSSUFCTEUgdmFyMSBJUyAnc29tZSBk ZXNjcmlwdGlvbic7CitcZFYrIHZhcjEKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTGlzdCBvZiB2YXJpYWJsZXMKKyBTY2hlbWEg fCBOYW1lIHwgICAgICAgVHlwZSAgICAgICAgfCBDb2xsYXRpb24gfCAgICAgICAgIE93bmVyICAg ICAgICAgIHwgICAgICAgICAgICAgICAgQWNjZXNzIHByaXZpbGVnZXMgICAgICAgICAgICAgICAg IHwgICBEZXNjcmlwdGlvbiAgICAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t Ky0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0KKyBwdWJs aWMgfCB2YXIxIHwgY2hhcmFjdGVyIHZhcnlpbmcgfCBDICAgICAgICAgfCByZWdyZXNzX3Zhcmlh YmxlX293bmVyIHwgcmVncmVzc192YXJpYWJsZV9vd25lcj1ydy9yZWdyZXNzX3ZhcmlhYmxlX293 bmVyK3wgc29tZSBkZXNjcmlwdGlvbgorICAgICAgICB8ICAgICAgfCAgICAgICAgICAgICAgICAg ICB8ICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgfCA9ci9yZWdyZXNzX3Zhcmlh YmxlX293bmVyICAgICAgICAgICAgICAgICAgICAgICAgfCAKKygxIHJvdykKKworRFJPUCBWQVJJ QUJMRSB2YXIxOworU0VUIFJPTEUgVE8gREVGQVVMVDsKK0RST1AgUk9MRSByZWdyZXNzX3Zhcmlh YmxlX293bmVyOwogLS0gY2hlY2sgZGVzY3JpYmluZyBpbnZhbGlkIG11bHRpcGFydCBuYW1lcwog XGRBIHJlZ3Jlc3Npb24uaGVhcAogaW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRvbyBtYW55IGRv dHRlZCBuYW1lcyk6IHJlZ3Jlc3Npb24uaGVhcApAQCAtNjE1MSw2ICs2MTc1LDEyIEBAIGNyb3Nz LWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogbm9uZXN1Y2gucHVibGlj LmZ1bmNfZGVwc19zdGF0CiBpbXByb3BlciBxdWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVk IG5hbWVzKTogcmVncmVzc2lvbi5teWV2dAogXGR5IG5vbmVzdWNoLm15ZXZ0CiBpbXByb3BlciBx dWFsaWZpZWQgbmFtZSAodG9vIG1hbnkgZG90dGVkIG5hbWVzKTogbm9uZXN1Y2gubXlldnQKK1xk ViBob3N0LnJlZ3Jlc3Npb24ucHVibGljLnZhcgoraW1wcm9wZXIgcXVhbGlmaWVkIG5hbWUgKHRv byBtYW55IGRvdHRlZCBuYW1lcyk6IGhvc3QucmVncmVzc2lvbi5wdWJsaWMudmFyCitcZFYgcmVn cmVzc2lvbnxteWRiLnB1YmxpYy52YXIKK2Nyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5v dCBpbXBsZW1lbnRlZDogcmVncmVzc2lvbnxteWRiLnB1YmxpYy52YXIKK1xkViBub25lc3VjaC5w dWJsaWMudmFyCitjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1wbGVtZW50ZWQ6 IG5vbmVzdWNoLnB1YmxpYy52YXIKIC0tIGNoZWNrIHRoYXQgZG90cyB3aXRoaW4gcXVvdGVkIG5h bWUgc2VnbWVudHMgYXJlIG5vdCBjb3VudGVkCiBcZEEgIm5vLnN1Y2guYWNjZXNzLm1ldGhvZCIK IExpc3Qgb2YgYWNjZXNzIG1ldGhvZHMKQEAgLTYzODUsNiArNjQxNSwxMiBAQCBMaXN0IG9mIHNj aGVtYXMKIC0tLS0tLSstLS0tLS0tKy0tLS0tLS0rLS0tLS0tLS0tKy0tLS0tLS0tLS0rLS0tLS0t CiAoMCByb3dzKQogCitcZFYgIm5vLnN1Y2gudmFyaWFibGUiCisgICAgICAgICAgICBMaXN0IG9m IHZhcmlhYmxlcworIFNjaGVtYSB8IE5hbWUgfCBUeXBlIHwgQ29sbGF0aW9uIHwgT3duZXIgCist LS0tLS0tLSstLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tKy0tLS0tLS0KKygwIHJvd3MpCisKIC0t IGFnYWluLCBidXQgd2l0aCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgogXGRBICJuby5z dWNoLnNjaGVtYSIuIm5vLnN1Y2guYWNjZXNzLm1ldGhvZCIKIGltcHJvcGVyIHF1YWxpZmllZCBu YW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmFj Y2Vzcy5tZXRob2QiCkBAIC02NTU0LDYgKzY1OTAsMTIgQEAgaW1wcm9wZXIgcXVhbGlmaWVkIG5h bWUgKHRvbyBtYW55IGRvdHRlZCBuYW1lcyk6ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guaW5z dGEKIAogXGR5ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXZlbnQudHJpZ2dlciIKIGltcHJv cGVyIHF1YWxpZmllZCBuYW1lICh0b28gbWFueSBkb3R0ZWQgbmFtZXMpOiAibm8uc3VjaC5zY2hl bWEiLiJuby5zdWNoLmV2ZW50LnRyaWdnZXIiCitcZFYgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3Vj aC52YXJpYWJsZSIKKyAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2NoZW1hIHwgTmFt ZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciAKKy0tLS0tLS0tKy0tLS0tLSstLS0tLS0rLS0t LS0tLS0tLS0rLS0tLS0tLQorKDAgcm93cykKKwogLS0gYWdhaW4sIGJ1dCB3aXRoIGN1cnJlbnQg ZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCiBcZHQgcmVncmVzc2lv bi4ibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLnRhYmxlLnJlbGF0aW9uIgogICAgICAgTGlzdCBv ZiByZWxhdGlvbnMKQEAgLTY2ODcsNiArNjcyOSwxMiBAQCBMaXN0IG9mIHRleHQgc2VhcmNoIHRl bXBsYXRlcwogLS0tLS0tLS0rLS0tLS0tKy0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLSstLS0tLS0t LS0tLS0tLSstLS0tLQogKDAgcm93cykKIAorXGRWIHJlZ3Jlc3Npb24uIm5vLnN1Y2guc2NoZW1h Ii4ibm8uc3VjaC52YXJpYWJsZSIKKyAgICAgICAgICAgIExpc3Qgb2YgdmFyaWFibGVzCisgU2No ZW1hIHwgTmFtZSB8IFR5cGUgfCBDb2xsYXRpb24gfCBPd25lciAKKy0tLS0tLS0tKy0tLS0tLSst LS0tLS0rLS0tLS0tLS0tLS0rLS0tLS0tLQorKDAgcm93cykKKwogLS0gYWdhaW4sIGJ1dCB3aXRo IGRvdHRlZCBkYXRhYmFzZSBhbmQgZG90dGVkIHNjaGVtYSBxdWFsaWZpY2F0aW9ucy4KIFxkdCAi bm8uc3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC50YWJsZS5yZWxhdGlv biIKIGNyb3NzLWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogIm5vLnN1 Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudGFibGUucmVsYXRpb24iCkBA IC02NzM0LDYgKzY3ODIsOCBAQCBjcm9zcy1kYXRhYmFzZSByZWZlcmVuY2VzIGFyZSBub3QgaW1w bGVtZW50ZWQ6ICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbQogY3Jvc3MtZGF0YWJh c2UgcmVmZXJlbmNlcyBhcmUgbm90IGltcGxlbWVudGVkOiAibm8uc3VjaC5kYXRhYmFzZSIuIm5v LnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5kYXRhLnR5cGUiCiBcZFggIm5vLnN1Y2guZGF0YWJhc2Ui LiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXh0ZW5kZWQuc3RhdGlzdGljcyIKIGNyb3NzLWRh dGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogIm5vLnN1Y2guZGF0YWJhc2Ui LiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guZXh0ZW5kZWQuc3RhdGlzdGljcyIKK1xkViAibm8u c3VjaC5kYXRhYmFzZSIuIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC52YXJpYWJsZSIKK2Nyb3Nz LWRhdGFiYXNlIHJlZmVyZW5jZXMgYXJlIG5vdCBpbXBsZW1lbnRlZDogIm5vLnN1Y2guZGF0YWJh c2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCiAtLSBjaGVjayBcZHJnIGFu ZCBcZHUKIENSRUFURSBST0xFIHJlZ3Jlc3NfZHVfcm9sZTA7CiBDUkVBVEUgUk9MRSByZWdyZXNz X2R1X3JvbGUxOwpkaWZmIC0tZ2l0IGEvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9u X3ZhcmlhYmxlcy5vdXQgYi9zcmMvdGVzdC9yZWdyZXNzL2V4cGVjdGVkL3Nlc3Npb25fdmFyaWFi bGVzLm91dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5jMzY2NjBjZTZk Ci0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9leHBlY3RlZC9zZXNzaW9uX3Zh cmlhYmxlcy5vdXQKQEAgLTAsMCArMSw0MzMgQEAKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFi bGVfb3duZXI7CitTRVQgbG9nX3N0YXRlbWVudCBUTyBkZGw7CistLSBzaG91bGQgYmUgb2sKK0NS RUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKKy0tIHNob3VsZCBmYWlsLCBwc2V1ZG90eXBlcyBh cmUgbm90IGFsbG93ZWQKK0NSRUFURSBWQVJJQUJMRSB2YXIyIEFTIGFueWVsZW1lbnQ7CitFUlJP UjogIHNlc3Npb24gdmFyaWFibGUgY2Fubm90IGJlIHBzZXVkby10eXBlIGFueWVsZW1lbnQKKy0t IHNob3VsZCBiZSBvaywgZG8gbm90aGluZworRFJPUCBWQVJJQUJMRSBJRiBFWElTVFMgdmFyMjsK K05PVElDRTogIHNlc3Npb24gdmFyaWFibGUgInZhcjIiIGRvZXMgbm90IGV4aXN0LCBza2lwcGlu ZworLS0gZG8gbm90aGluZworQ1JFQVRFIFZBUklBQkxFIElGIE5PVCBFWElTVFMgdmFyMSBBUyBp bnQ7CitOT1RJQ0U6ICBzZXNzaW9uIHZhcmlhYmxlICJ2YXIxIiBhbHJlYWR5IGV4aXN0cywgc2tp cHBpbmcKKy0tIHNob3VsZCBmYWlsCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitFUlJP UjogIHNlc3Npb24gdmFyaWFibGUgInZhcjEiIGFscmVhZHkgZXhpc3RzCistLSBzaG91bGQgYmUg b2sKK0RST1AgVkFSSUFCTEUgSUYgRVhJU1RTIHZhcjE7CistLSB0aGUgdmFyaWFibGUgY2FuIHVz ZSBjb21wb3NpdGUgdHlwZXMKK0NSRUFURSBUQUJMRSB0MSAoYSBpbnQsIGIgaW50KTsKK0NSRUFU RSBWQVJJQUJMRSB2YXIxIEFTIHQxOworLS0gc2hvdWxkIGZhaWwKK0RST1AgVEFCTEUgdDE7CitF UlJPUjogIGNhbm5vdCBkcm9wIHRhYmxlIHQxIGJlY2F1c2Ugb3RoZXIgb2JqZWN0cyBkZXBlbmQg b24gaXQKK0RFVEFJTDogIHNlc3Npb24gdmFyaWFibGUgdmFyMSBkZXBlbmRzIG9uIHR5cGUgdDEK K0hJTlQ6ICBVc2UgRFJPUCAuLi4gQ0FTQ0FERSB0byBkcm9wIHRoZSBkZXBlbmRlbnQgb2JqZWN0 cyB0b28uCistLSBzaG91bGQgYmUgb2sKK0FMVEVSIFRBQkxFIHQxIEFERCBDT0xVTU4gYyBpbnQ7 CistLSBzaG91bGQgZmFpbAorQUxURVIgVEFCTEUgdDEgQUxURVIgQ09MVU1OIGIgVFlQRSBudW1l cmljOworRVJST1I6ICBjYW5ub3QgYWx0ZXIgdGFibGUgInQxIiBiZWNhdXNlIHNlc3Npb24gdmFy aWFibGUgInB1YmxpYy52YXIxIiB1c2VzIGl0CitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRB QkxFIHQxOworQ1JFQVRFIFRZUEUgdDEgQVMgKGEgaW50LCBiIGludCk7CitDUkVBVEUgVkFSSUFC TEUgdmFyMSBBUyB0MTsKKy0tIHNob3VsZCBmYWlsCitEUk9QIFRZUEUgdDE7CitFUlJPUjogIGNh bm5vdCBkcm9wIHR5cGUgdDEgYmVjYXVzZSBvdGhlciBvYmplY3RzIGRlcGVuZCBvbiBpdAorREVU QUlMOiAgc2Vzc2lvbiB2YXJpYWJsZSB2YXIxIGRlcGVuZHMgb24gdHlwZSB0MQorSElOVDogIFVz ZSBEUk9QIC4uLiBDQVNDQURFIHRvIGRyb3AgdGhlIGRlcGVuZGVudCBvYmplY3RzIHRvby4KKy0t IHNob3VsZCBiZSBvaworQUxURVIgVFlQRSB0MSBBREQgQVRUUklCVVRFIGMgaW50OworLS0gc2hv dWxkIGZhaWwKK0FMVEVSIFRZUEUgdDEgQUxURVIgQVRUUklCVVRFIGIgIFRZUEUgbnVtZXJpYzsK K0VSUk9SOiAgY2Fubm90IGFsdGVyIHR5cGUgInQxIiBiZWNhdXNlIHNlc3Npb24gdmFyaWFibGUg InB1YmxpYy52YXIxIiB1c2VzIGl0CitEUk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRZUEUgdDE7 CitTRVQgbG9nX3N0YXRlbWVudCBUTyBkZWZhdWx0OworQ1JFQVRFIERPTUFJTiB0ZXN0dmFyX2Rv bWFpbiBBUyBpbnQ7CitDUkVBVEUgVFlQRSB0ZXN0dmFyX3R5cGUgQVMgKGEgdGVzdHZhcl9kb21h aW4pOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdGVzdHZhcl9kb21haW47CistLSBzaG91bGQg ZmFpbAorQUxURVIgRE9NQUlOIHRlc3R2YXJfZG9tYWluIEFERCBDSEVDSyh2YWx1ZSA8PiAxMDAp OworRVJST1I6ICBjYW5ub3QgYWx0ZXIgZG9tYWluICJ0ZXN0dmFyX2RvbWFpbiIgYmVjYXVzZSBz ZXNzaW9uIHZhcmlhYmxlICJwdWJsaWMudmFyMSIgdXNlcyBpdAorRFJPUCBWQVJJQUJMRSB2YXIx OworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdGVzdHZhcl90eXBlOworLS0gc2hvdWxkIGZhaWwK K0FMVEVSIERPTUFJTiB0ZXN0dmFyX2RvbWFpbiBBREQgQ0hFQ0sodmFsdWUgPD4gMTAwKTsKK0VS Uk9SOiAgY2Fubm90IGFsdGVyIHR5cGUgInRlc3R2YXJfZG9tYWluIiBiZWNhdXNlIHNlc3Npb24g dmFyaWFibGUgInB1YmxpYy52YXIxIiB1c2VzIGl0CitEUk9QIFZBUklBQkxFIHZhcjE7CistLSBz aG91bGQgYmUgb2sKK0FMVEVSIERPTUFJTiB0ZXN0dmFyX2RvbWFpbiBBREQgQ0hFQ0sodmFsdWUg PD4gMTAwKTsKK0RST1AgVFlQRSB0ZXN0dmFyX3R5cGU7CitEUk9QIFRZUEUgdGVzdHZhcl9kb21h aW47CistLSBjaGVjayBldmVudCB0cmlnZ2VyIHN1cHBvcnQKK0NSRUFURSBPUiBSRVBMQUNFIEZV TkNUSU9OIHN2YXJfZXZlbnRfdHJpZ2dlcl9yZXBvcnRfZHJvcHBlZCgpCitSRVRVUk5TIGV2ZW50 X3RyaWdnZXIKK0FTICQkCitERUNMQVJFIHIgcmVjb3JkOworQkVHSU4KKyAgRk9SIHIgSU4gU0VM RUNUICogZnJvbSBwZ19ldmVudF90cmlnZ2VyX2Ryb3BwZWRfb2JqZWN0cygpCisgIExPT1AKKyAg ICBDT05USU5VRSBXSEVOIE5PVCByLm5vcm1hbCBBTkQgTk9UIHIub3JpZ2luYWw7CisKKyAgICBS QUlTRSBOT1RJQ0UKKyAgICAgICAnTk9STUFMOiBvcmlnPSUgbm9ybWFsPSUgaXN0ZW1wPSUgdHlw ZT0lIGlkZW50aXR5PSUgbmFtZT0lIGFyZ3M9JScsCisgICAgICAgci5vcmlnaW5hbCwgci5ub3Jt YWwsIHIuaXNfdGVtcG9yYXJ5LCByLm9iamVjdF90eXBlLAorICAgICAgIHIub2JqZWN0X2lkZW50 aXR5LCByLmFkZHJlc3NfbmFtZXMsIHIuYWRkcmVzc19hcmdzOworICBFTkQgTE9PUDsKK0VORDsK KyQkIExBTkdVQUdFIHBscGdzcWw7CitDUkVBVEUgRVZFTlQgVFJJR0dFUiBzdmFyX3JlZ3Jlc3Nf ZXZlbnRfdHJpZ2dlcl9yZXBvcnRfZHJvcHBlZCBPTiBzcWxfZHJvcAorICBXSEVOIFRBRyBJTiAo J0RST1AgVkFSSUFCTEUnKQorICBFWEVDVVRFIFBST0NFRFVSRSBzdmFyX2V2ZW50X3RyaWdnZXJf cmVwb3J0X2Ryb3BwZWQoKTsKK0NSRUFURSBWQVJJQUJMRSB2YXIxIEFTIGludDsKK0RST1AgVkFS SUFCTEUgdmFyMTsKK05PVElDRTogIE5PUk1BTDogb3JpZz10IG5vcm1hbD1mIGlzdGVtcD1mIHR5 cGU9c2Vzc2lvbiB2YXJpYWJsZSBpZGVudGl0eT1wdWJsaWMudmFyMSBuYW1lPXtwdWJsaWMsdmFy MX0gYXJncz17fQorRFJPUCBFVkVOVCBUUklHR0VSIHN2YXJfcmVncmVzc19ldmVudF90cmlnZ2Vy X3JlcG9ydF9kcm9wcGVkOworLS0gY2hlY2sgY29tbWVudCBvbiB2YXJpYWJsZQorQ1JFQVRFIFZB UklBQkxFIHZhcjEgQVMgaW50OworQ09NTUVOVCBPTiBWQVJJQUJMRSB2YXIxIElTICdzb21lIHZh cmlhYmxlIGNvbW1lbnQnOworU0VMRUNUIHBnX2NhdGFsb2cub2JqX2Rlc2NyaXB0aW9uKG9pZCwg J3BnX3ZhcmlhYmxlJykgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOwor ICAgIG9ial9kZXNjcmlwdGlvbiAgICAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgc29tZSB2 YXJpYWJsZSBjb21tZW50CisoMSByb3cpCisKK0RST1AgVkFSSUFCTEUgdmFyMTsKKy0tIGNoZWNr IHRoZSBvYmplY3QgYWRkcmVzcyBvZiBhbGwgc2Vzc2lvbiB2YXJpYWJsZXMKK0NSRUFURSBTQ0hF TUEgdmFydGVzdDE7CitDUkVBVEUgU0NIRU1BIHZhcnRlc3QyOworQ1JFQVRFIFZBUklBQkxFIHZh cnRlc3QxLnN2YXJ0ZXN0X3ZhcjEgQVMgaW50OworQ1JFQVRFIFZBUklBQkxFIHZhcnRlc3QyLnN2 YXJ0ZXN0X3ZhcjEgQVMgaW50OworU0VMRUNUCisgIGUudmFybmFtZSwKKyAgcGdfZGVzY3JpYmVf b2JqZWN0KCdwZ192YXJpYWJsZSc6OnJlZ2NsYXNzLCBlLm9pZCwgMCkgYXMgZGVzY3IsCisgIGIu dHlwZSwgYi5vYmplY3RfbmFtZXMsIGIub2JqZWN0X2FyZ3MsCisgIHBnX2lkZW50aWZ5X29iamVj dChhLmNsYXNzaWQsIGEub2JqaWQsIGEub2Jqc3ViaWQpIGFzIGlkZW50CitGUk9NIHBnX3Zhcmlh YmxlIGFzIGUsCisgIExBVEVSQUwgcGdfaWRlbnRpZnlfb2JqZWN0X2FzX2FkZHJlc3MoJ3BnX3Zh cmlhYmxlJzo6cmVnY2xhc3MsIGUub2lkLCAwKSBhcyBiLAorICBMQVRFUkFMIHBnX2dldF9vYmpl Y3RfYWRkcmVzcyhiLnR5cGUsIGIub2JqZWN0X25hbWVzLCBiLm9iamVjdF9hcmdzKSBhcyBhCitX SEVSRSBlLnZhcm5hbWUgTElLRSAnc3ZhcnRlc3RfdmFyJSc7CisgICAgdmFybmFtZSAgICB8ICAg ICAgICAgICAgICAgICAgZGVzY3IgICAgICAgICAgICAgICAgICB8ICAgICAgIHR5cGUgICAgICAg fCAgICAgICBvYmplY3RfbmFtZXMgICAgICAgfCBvYmplY3RfYXJncyB8ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlkZW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKKy0t LS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSst LS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0t LSstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIHN2YXJ0ZXN0X3ZhcjEgfCBzZXNzaW9uIHZhcmlhYmxlIHZhcnRlc3Qx LnN2YXJ0ZXN0X3ZhcjEgfCBzZXNzaW9uIHZhcmlhYmxlIHwge3ZhcnRlc3QxLHN2YXJ0ZXN0X3Zh cjF9IHwge30gICAgICAgICAgfCAoInNlc3Npb24gdmFyaWFibGUiLHZhcnRlc3QxLHN2YXJ0ZXN0 X3ZhcjEsdmFydGVzdDEuc3ZhcnRlc3RfdmFyMSkKKyBzdmFydGVzdF92YXIxIHwgc2Vzc2lvbiB2 YXJpYWJsZSB2YXJ0ZXN0Mi5zdmFydGVzdF92YXIxIHwgc2Vzc2lvbiB2YXJpYWJsZSB8IHt2YXJ0 ZXN0MixzdmFydGVzdF92YXIxfSB8IHt9ICAgICAgICAgIHwgKCJzZXNzaW9uIHZhcmlhYmxlIix2 YXJ0ZXN0MixzdmFydGVzdF92YXIxLHZhcnRlc3QyLnN2YXJ0ZXN0X3ZhcjEpCisoMiByb3dzKQor CitEUk9QIFNDSEVNQSB2YXJ0ZXN0MSBDQVNDQURFOworTk9USUNFOiAgZHJvcCBjYXNjYWRlcyB0 byBzZXNzaW9uIHZhcmlhYmxlIHZhcnRlc3QxLnN2YXJ0ZXN0X3ZhcjEKK0RST1AgU0NIRU1BIHZh cnRlc3QyIENBU0NBREU7CitOT1RJQ0U6ICBkcm9wIGNhc2NhZGVzIHRvIHNlc3Npb24gdmFyaWFi bGUgdmFydGVzdDIuc3ZhcnRlc3RfdmFyMQorLS0gY2hlY2sgYWNjZXNzIHJpZ2h0cyBhbmQgc3Vw cG9ydGVkIEFMVEVSCitDUkVBVEUgU0NIRU1BIHN2YXJ0ZXN0OworR1JBTlQgQUxMIE9OIFNDSEVN QSBzdmFydGVzdCBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQ1JFQVRFIFZBUklBQkxFIHN2 YXJ0ZXN0LnZhcjEgQVMgaW50OworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9yZWFkZXI7 CitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBUTyByZWdyZXNzX3Zhcmlh YmxlX3JlYWRlcjsKK1JFVk9LRSBBTEwgT04gVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBGUk9NIHJl Z3Jlc3NfdmFyaWFibGVfcmVhZGVyOworQUxURVIgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBPV05F UiBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQUxURVIgVkFSSUFCTEUgc3ZhcnRlc3QudmFy MSBSRU5BTUUgVE8gdmFyeHg7CitBTFRFUiBWQVJJQUJMRSBzdmFydGVzdC52YXJ4eCBTRVQgU0NI RU1BIHB1YmxpYzsKK0RST1AgVkFSSUFCTEUgcHVibGljLnZhcnh4OworQUxURVIgREVGQVVMVCBQ UklWSUxFR0VTCisgICBGT1IgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyCisgICBJTiBTQ0hF TUEgc3ZhcnRlc3QKKyAgIEdSQU5UIFNFTEVDVCBPTiBWQVJJQUJMRVMgVE8gcmVncmVzc192YXJp YWJsZV9yZWFkZXI7CistLSBjcmVhdGluZyB2YXJpYWJsZSB3aXRoIGRlZmF1bHQgcHJpdmlsZWdl cworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK0NSRUFURSBWQVJJQUJMRSBz dmFydGVzdC52YXIxIEFTIGludDsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CistLSBzaG91bGQgYmUg b2suIHNpbmNlIEFMVEVSIERFRkFVTFQgUFJJVklMRUdFUworLS0gYWxsb3cgcmVncmVzc192YXJp YWJsZV9yZWFkZXIgdG8gaGF2ZSBTRUxFQ1QgcHJpdmlsZWRnZQorU0VMRUNUIGhhc19zZXNzaW9u X3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yZWFkZXInLCAnc3ZhcnRlc3Qu dmFyMScsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAK Ky0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitEUk9QIFZB UklBQkxFIHN2YXJ0ZXN0LnZhcjE7CitEUk9QIFNDSEVNQSBzdmFydGVzdDsKK0RST1AgUk9MRSBy ZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcjsKKy0tCistLSBiZWdpbiBvZiBjaGVjayBHUkFOVCBXSVRI IEdSQU5UIE9QVElPTiBhbmQgUkVWT0tFIEdSQU5URUQgQlkKKy0tCitDUkVBVEUgUk9MRSByZWdy ZXNzX3ZhcmlhYmxlX3IxOworQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9yMjsKK1NFVCBS T0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBp bnQ7ICAgICAgLS12YXIxIHdpbGwgb3duZWQgYnkgcmVncmVzc192YXJpYWJsZV9vd25lcgorR1JB TlQgU0VMRUNUIE9OIFZBUklBQkxFIHZhcjEgVE8gcmVncmVzc192YXJpYWJsZV9yMSBXSVRIIEdS QU5UIE9QVElPTjsKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjE7CitHUkFOVCBTRUxF Q1QgT04gVkFSSUFCTEUgdmFyMSBUTyByZWdyZXNzX3ZhcmlhYmxlX3IyIFdJVEggR1JBTlQgT1BU SU9OOworU0VUIFJPTEUgVE8gREVGQVVMVDsKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAncHVibGljLnZhcjEnLCAnU0VMRUNUJyk7 IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMicsICdwdWJsaWMudmFyMScsICdTRUxF Q1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitSRVZPS0UgQUxMIFBSSVZJTEVH RVMgT04gVkFSSUFCTEUgdmFyMSBGUk9NIHJlZ3Jlc3NfdmFyaWFibGVfcjEgQ0FTQ0FERTsKK1NF TEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEn LCAncHVibGljLnZhcjEnLCAnU0VMRUNUJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykK KworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJs ZV9yMicsICdwdWJsaWMudmFyMScsICdTRUxFQ1QnKTsgLS0gZgorIGhhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEg cm93KQorCitTRVQgUk9MRSBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworR1JBTlQgU0VMRUNU IE9OIFZBUklBQkxFIHZhcjEgVE8gcmVncmVzc192YXJpYWJsZV9yMjsKK1NFTEVDVCBoYXNfc2Vz c2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAncHVibGljLnZh cjEnLCAnU0VMRUNUJyk7IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VMRUNUIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMicsICdwdWJs aWMudmFyMScsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitSRVZP S0UgQUxMIE9OIFZBUklBQkxFIHZhcjEgRlJPTSByZWdyZXNzX3ZhcmlhYmxlX3IyIEdSQU5URUQg QlkgcmVncmVzc192YXJpYWJsZV9vd25lcjsKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAncHVibGljLnZhcjEnLCAnU0VMRUNUJyk7 IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMicsICdwdWJsaWMudmFyMScsICdTRUxF Q1QnKTsgLS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25f dmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX293bmVyJywgJ3B1YmxpYy52YXIx JywgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFVCBST0xFIFRP IERFRkFVTFQ7CitEUk9QIFZBUklBQkxFIHZhcjE7CistLQorLS0gZW5kIG9mIGNoZWNrIEdSQU5U IFdJVEggR1JBTlQgT1BUSU9OIGFuZCBSRVZPS0UgR1JBTlRFRCBCWQorLS0KKy0tCistLSBiZWdp biBvZiB0ZXN0OiBHUkFOVHxSRVZPS0UgU0VMRUNUfFVQREFURSBPTiBBTEwgVkFSSUFCTEVTIElO IFNDSEVNQQorLS0KK0NSRUFURSBTQ0hFTUEgc3ZhcnRlc3Q7CitHUkFOVCBBTEwgT04gU0NIRU1B IHN2YXJ0ZXN0IFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitTRVQgUk9MRSBUTyByZWdyZXNz X3ZhcmlhYmxlX293bmVyOworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgQVMgaW50Owor Q1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjIgQVMgaW50OworR1JBTlQgU0VMRUNUIE9OIEFM TCBWQVJJQUJMRVMgSU4gU0NIRU1BIHN2YXJ0ZXN0IFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjE7CitT RUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3Ix JywgJ3N2YXJ0ZXN0LnZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJv dykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJp YWJsZV9yMScsICdzdmFydGVzdC52YXIyJywgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25f dmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0 CisoMSByb3cpCisKK1JFVk9LRSBTRUxFQ1QgT04gQUxMIFZBUklBQkxFUyBJTiBTQ0hFTUEgc3Zh cnRlc3QgRlJPTSByZWdyZXNzX3ZhcmlhYmxlX3IxOworU0VMRUNUIGhhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMScsICdzdmFydGVzdC52YXIxJywgJ1NF TEVDVCcpOyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lv bl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAnc3ZhcnRlc3QudmFy MicsICdTRUxFQ1QnKTsgLS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQorCitTRVQgUk9MRSBU TyBERUZBVUxUOworRFJPUCBWQVJJQUJMRSBzdmFydGVzdC52YXIxOworRFJPUCBWQVJJQUJMRSBz dmFydGVzdC52YXIyOworRFJPUCBTQ0hFTUEgc3ZhcnRlc3Q7CistLQorLS0gZW5kIG9mIHRlc3Q6 IEdSQU5UfFJFVk9LRSBTRUxFQ1R8VVBEQVRFIE9OIEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1BCist LQorLS0KKy0tIGZ1bmN0aW9uIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSBoYXZlIHZh cmlvdXMga2luZCBvZiBzaWduYXR1cmUuCistLSB0aGUgZm9sbG93aW5nIGFyZSBleHRlbnNpdmUg dGVzdCBmb3IgaXQuCistLQorU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK0NS RUFURSBWQVJJQUJMRSBwdWJsaWMudmFyMSBBUyBpbnQ7CitTRVQgc2VhcmNoX3BhdGggVE8gcHVi bGljOworR1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHB1YmxpYy52YXIxIFRPIHJlZ3Jlc3NfdmFy aWFibGVfcjE7CitHUkFOVCBTRUxFQ1QsIFVQREFURSBPTiBWQVJJQUJMRSBwdWJsaWMudmFyMSBU TyByZWdyZXNzX3ZhcmlhYmxlX3IyOworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZp bGVnZSgncmVncmVzc192YXJpYWJsZV9yMScsICdwdWJsaWMudmFyMScsICdTRUxFQ1QnKTsKKyBo YXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZp bGVnZSgncmVncmVzc192YXJpYWJsZV9yMScsICdwdWJsaWMubm90ZXhpc3RzJywgJ1NFTEVDVCcp IElTIE5VTEw7CisgP2NvbHVtbj8gCistLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRVQgUk9M RSBUTyByZWdyZXNzX3ZhcmlhYmxlX3IxOworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMScsICd2YXIxJywgJ1NFTEVDVCcpOyAtLSB0Cisg aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2 aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAndmFyMScsICdVUERBVEUnKTsgLS0gZgorIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCisgZgorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmls ZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJywgJ3ZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNf c2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLQorIHQKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZSgncmVncmVzc192YXJpYWJsZV9yMicsICd2YXIxJywgJ1VQREFURScpOyAtLSB0CisgaGFzX3Nl c3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2Uo J3ZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2Ug CistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VMRUNU IGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgndmFyMScsICdVUERBVEUnKTsgLS0gZgor IGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgZgorKDEgcm93KQorCitTRUxFQ1Qgb2lkIEFTIHZhcmlkCisgIEZST00gcGdf dmFyaWFibGUKKyAgV0hFUkUgdmFybmFtZSA9ICd2YXIxJyBBTkQgdmFybmFtZXNwYWNlID0gJ3B1 YmxpYyc6OnJlZ25hbWVzcGFjZSBcZ3NldAorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZSgndmFyMScsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQor CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCd2YXIxJywgJ1VQREFURScp OyAtLSBmCisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0KKyBmCisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCA6dmFyaWQsICdTRUxFQ1QnKTsg LS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFi bGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgOnZhcmlkLCAnVVBEQVRFJyk7IC0t IGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMicsIDp2YXJpZCwgJ1NFTEVDVCcpOyAtLSB0 CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9w cml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInLCA6dmFyaWQsICdVUERBVEUnKTsgLS0gdAor IGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCisgdAorKDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJp dmlsZWdlKDp2YXJpZCwgJ1NFTEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJp dmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisK K1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoOnZhcmlkLCAnVVBEQVRFJyk7 IC0tIGYKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQorIGYKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMSc6OnJlZ3JvbGUsICd2YXIxJywgJ1NF TEVDVCcpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lv bl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnOjpyZWdyb2xlLCAndmFy MScsICdVUERBVEUnKTsgLS0gZgorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgZgorKDEgcm93KQorCitTRUxFQ1QgaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJzo6cmVncm9s ZSwgJ3ZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKKyBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxl Z2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQorIHQKKygxIHJvdykKKworU0VM RUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMic6 OnJlZ3JvbGUsICd2YXIxJywgJ1VQREFURScpOyAtLSB0CisgaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKyB0CisoMSByb3cp CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFi bGVfcjEnOjpyZWdyb2xlLCA6dmFyaWQsICdTRUxFQ1QnKTsgLS0gdAorIGhhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCisgdAor KDEgcm93KQorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNz X3ZhcmlhYmxlX3IxJzo6cmVncm9sZSwgOnZhcmlkLCAnVVBEQVRFJyk7IC0tIGYKKyBoYXNfc2Vz c2lvbl92YXJpYWJsZV9wcml2aWxlZ2UgCistLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LQorIGYKKygxIHJvdykKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgn cmVncmVzc192YXJpYWJsZV9yMic6OnJlZ3JvbGUsIDp2YXJpZCwgJ1NFTEVDVCcpOyAtLSB0Cisg aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlIAorLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0KKyB0CisoMSByb3cpCisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2 aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjInOjpyZWdyb2xlLCA6dmFyaWQsICdVUERBVEUnKTsg LS0gdAorIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSAKKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCisgdAorKDEgcm93KQorCistLQorLS0gZW5kIG9mIGZ1bmN0aW9uIGhh c19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSB0ZXN0cy4KKy0tCitTRVQgUk9MRSBUTyBERUZB VUxUOworU0VUIHNlYXJjaF9wYXRoIFRPIERFRkFVTFQ7CitEUk9QIFZBUklBQkxFIHB1YmxpYy52 YXIxOworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjE7CitEUk9QIFJPTEUgcmVncmVzc192 YXJpYWJsZV9yMjsKK0RST1AgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOwpkaWZmIC0tZ2l0 IGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZSBiL3NyYy90ZXN0L3JlZ3Jlc3Mv cGFyYWxsZWxfc2NoZWR1bGUKaW5kZXggMWVkZDllNDVlYi4uN2Y0Zjc0ZWVlYSAxMDA2NDQKLS0t IGEvc3JjL3Rlc3QvcmVncmVzcy9wYXJhbGxlbF9zY2hlZHVsZQorKysgYi9zcmMvdGVzdC9yZWdy ZXNzL3BhcmFsbGVsX3NjaGVkdWxlCkBAIC0xMTEsNyArMTExLDcgQEAgdGVzdDoganNvbiBqc29u YiBqc29uX2VuY29kaW5nIGpzb25wYXRoIGpzb25wYXRoX2VuY29kaW5nIGpzb25iX2pzb25wYXRo IHNxbGpzb24KICMgTkI6IHRlbXAuc3FsIGRvZXMgYSByZWNvbm5lY3Qgd2hpY2ggdHJhbnNpZW50 bHkgdXNlcyAyIGNvbm5lY3Rpb25zLAogIyBzbyBrZWVwIHRoaXMgcGFyYWxsZWwgZ3JvdXAgdG8g YXQgbW9zdCAxOSB0ZXN0cwogIyAtLS0tLS0tLS0tCi10ZXN0OiBwbGFuY2FjaGUgbGltaXQgcGxw Z3NxbCBjb3B5MiB0ZW1wIGRvbWFpbiByYW5nZWZ1bmNzIHByZXBhcmUgY29udmVyc2lvbiB0cnVu Y2F0ZSBhbHRlcl90YWJsZSBzZXF1ZW5jZSBwb2x5bW9ycGhpc20gcm93dHlwZXMgcmV0dXJuaW5n IGxhcmdlb2JqZWN0IHdpdGggeG1sCit0ZXN0OiBwbGFuY2FjaGUgbGltaXQgcGxwZ3NxbCBjb3B5 MiB0ZW1wIGRvbWFpbiByYW5nZWZ1bmNzIHByZXBhcmUgY29udmVyc2lvbiB0cnVuY2F0ZSBhbHRl cl90YWJsZSBzZXF1ZW5jZSBwb2x5bW9ycGhpc20gcm93dHlwZXMgcmV0dXJuaW5nIGxhcmdlb2Jq ZWN0IHdpdGggeG1sIHNlc3Npb25fdmFyaWFibGVzCiAKICMgLS0tLS0tLS0tLQogIyBBbm90aGVy IGdyb3VwIG9mIHBhcmFsbGVsIHRlc3RzCmRpZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3Nx bC9kZXBlbmRlbmN5LnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RlcGVuZGVuY3kuc3FsCmlu ZGV4IDhkNzRlZDcxMjIuLjZjMThiN2Y4NDAgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL2RlcGVuZGVuY3kuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL2RlcGVuZGVuY3ku c3FsCkBAIC0xMTQsMyArMTE0LDE3IEBAIERST1AgVVNFUiByZWdyZXNzX2RlcF91c2VyMjsKIERS T1AgT1dORUQgQlkgcmVncmVzc19kZXBfdXNlcjIsIHJlZ3Jlc3NfZGVwX3VzZXIwOwogRFJPUCBV U0VSIHJlZ3Jlc3NfZGVwX3VzZXIyOwogRFJPUCBVU0VSIHJlZ3Jlc3NfZGVwX3VzZXIwOworCist LSBkZXBlbmRlbmN5IG9uIHR5cGUKK0NSRUFURSBET01BSU4gdmFyZG9tYWluIEFTIGludDsKK0NS RUFURSBUWVBFIHZhcnR5cGUgQVMgKGEgaW50LCBiIGludCwgYyB2YXJkb21haW4pOworQ1JFQVRF IFZBUklBQkxFIHZhcjEgQVMgdmFydHlwZTsKKworLS0gc2hvdWxkIGZhaWwKK0RST1AgRE9NQUlO IHZhcmRvbWFpbjsKK0RST1AgVFlQRSB2YXJ0eXBlOworCistLSBjbGVhbiB1cAorRFJPUCBWQVJJ QUJMRSB2YXIxOworRFJPUCBUWVBFIHZhcnR5cGU7CitEUk9QIERPTUFJTiB2YXJkb21haW47CmRp ZmYgLS1naXQgYS9zcmMvdGVzdC9yZWdyZXNzL3NxbC9wc3FsLnNxbCBiL3NyYy90ZXN0L3JlZ3Jl c3Mvc3FsL3BzcWwuc3FsCmluZGV4IGM1MDIxZmMwYjEuLjY2NmVkZGI2MzIgMTAwNjQ0Ci0tLSBh L3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3BzcWwuc3FsCisrKyBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3Fs L3BzcWwuc3FsCkBAIC0xNjMxLDYgKzE2MzEsMTkgQEAgQ09NTUlUOwogRFJPUCBUQUJMRSBibGE7 CiBEUk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7CiAKKy0tIHNlc3Npb24gdmFyaWFibGUgdGVzdAor Q1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKK1NFVCBST0xFIFRPIHJlZ3Jlc3Nf dmFyaWFibGVfb3duZXI7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyB2YXJjaGFyIENPTExBVEUg IkMiOworXGRWKyB2YXIxCitHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBUTyBQVUJMSUM7 CitDT01NRU5UIE9OIFZBUklBQkxFIHZhcjEgSVMgJ3NvbWUgZGVzY3JpcHRpb24nOworXGRWKyB2 YXIxCitEUk9QIFZBUklBQkxFIHZhcjE7CisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitEUk9QIFJP TEUgcmVncmVzc192YXJpYWJsZV9vd25lcjsKKwogLS0gY2hlY2sgZGVzY3JpYmluZyBpbnZhbGlk IG11bHRpcGFydCBuYW1lcwogXGRBIHJlZ3Jlc3Npb24uaGVhcAogXGRBIG5vbmVzdWNoLmhlYXAK QEAgLTE3NDIsNiArMTc1NSw5IEBAIERST1AgRlVOQ1RJT04gcHNxbF9lcnJvcjsKIFxkWCBub25l c3VjaC5wdWJsaWMuZnVuY19kZXBzX3N0YXQKIFxkeSByZWdyZXNzaW9uLm15ZXZ0CiBcZHkgbm9u ZXN1Y2gubXlldnQKK1xkViBob3N0LnJlZ3Jlc3Npb24ucHVibGljLnZhcgorXGRWIHJlZ3Jlc3Np b258bXlkYi5wdWJsaWMudmFyCitcZFYgbm9uZXN1Y2gucHVibGljLnZhcgogCiAtLSBjaGVjayB0 aGF0IGRvdHMgd2l0aGluIHF1b3RlZCBuYW1lIHNlZ21lbnRzIGFyZSBub3QgY291bnRlZAogXGRB ICJuby5zdWNoLmFjY2Vzcy5tZXRob2QiCkBAIC0xNzgzLDYgKzE3OTksOCBAQCBEUk9QIEZVTkNU SU9OIHBzcWxfZXJyb3I7CiBcZHggIm5vLnN1Y2guaW5zdGFsbGVkLmV4dGVuc2lvbiIKIFxkWCAi bm8uc3VjaC5leHRlbmRlZC5zdGF0aXN0aWNzIgogXGR5ICJuby5zdWNoLmV2ZW50LnRyaWdnZXIi CitcZFYgIm5vLnN1Y2gudmFyaWFibGUiCisKIAogLS0gYWdhaW4sIGJ1dCB3aXRoIGRvdHRlZCBz Y2hlbWEgcXVhbGlmaWNhdGlvbnMuCiBcZEEgIm5vLnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5hY2Nl c3MubWV0aG9kIgpAQCAtMTgyMyw2ICsxODQxLDcgQEAgRFJPUCBGVU5DVElPTiBwc3FsX2Vycm9y OwogXGR4ICJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2guaW5zdGFsbGVkLmV4dGVuc2lvbiIKIFxk WCAibm8uc3VjaC5zY2hlbWEiLiJuby5zdWNoLmV4dGVuZGVkLnN0YXRpc3RpY3MiCiBcZHkgIm5v LnN1Y2guc2NoZW1hIi4ibm8uc3VjaC5ldmVudC50cmlnZ2VyIgorXGRWICJuby5zdWNoLnNjaGVt YSIuIm5vLnN1Y2gudmFyaWFibGUiCiAKIC0tIGFnYWluLCBidXQgd2l0aCBjdXJyZW50IGRhdGFi YXNlIGFuZCBkb3R0ZWQgc2NoZW1hIHF1YWxpZmljYXRpb25zLgogXGR0IHJlZ3Jlc3Npb24uIm5v LnN1Y2guc2NoZW1hIi4ibm8uc3VjaC50YWJsZS5yZWxhdGlvbiIKQEAgLTE4NDcsNiArMTg2Niw3 IEBAIERST1AgRlVOQ1RJT04gcHNxbF9lcnJvcjsKIFxkUCByZWdyZXNzaW9uLiJuby5zdWNoLnNj aGVtYSIuIm5vLnN1Y2gucGFydGl0aW9uZWQucmVsYXRpb24iCiBcZFQgcmVncmVzc2lvbi4ibm8u c3VjaC5zY2hlbWEiLiJuby5zdWNoLmRhdGEudHlwZSIKIFxkWCByZWdyZXNzaW9uLiJuby5zdWNo LnNjaGVtYSIuIm5vLnN1Y2guZXh0ZW5kZWQuc3RhdGlzdGljcyIKK1xkViByZWdyZXNzaW9uLiJu by5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCiAKIC0tIGFnYWluLCBidXQgd2l0aCBk b3R0ZWQgZGF0YWJhc2UgYW5kIGRvdHRlZCBzY2hlbWEgcXVhbGlmaWNhdGlvbnMuCiBcZHQgIm5v LnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gudGFibGUucmVsYXRpb24i CkBAIC0xODcyLDYgKzE4OTIsNyBAQCBEUk9QIEZVTkNUSU9OIHBzcWxfZXJyb3I7CiBcZFAgIm5v LnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gucGFydGl0aW9uZWQucmVs YXRpb24iCiBcZFQgIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNoLnNjaGVtYSIuIm5vLnN1Y2gu ZGF0YS50eXBlIgogXGRYICJuby5zdWNoLmRhdGFiYXNlIi4ibm8uc3VjaC5zY2hlbWEiLiJuby5z dWNoLmV4dGVuZGVkLnN0YXRpc3RpY3MiCitcZFYgIm5vLnN1Y2guZGF0YWJhc2UiLiJuby5zdWNo LnNjaGVtYSIuIm5vLnN1Y2gudmFyaWFibGUiCiAKIC0tIGNoZWNrIFxkcmcgYW5kIFxkdQogQ1JF QVRFIFJPTEUgcmVncmVzc19kdV9yb2xlMDsKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L3JlZ3Jlc3Mv c3FsL3Nlc3Npb25fdmFyaWFibGVzLnNxbCBiL3NyYy90ZXN0L3JlZ3Jlc3Mvc3FsL3Nlc3Npb25f dmFyaWFibGVzLnNxbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi5lZWIw Zjk0Y2EzCi0tLSAvZGV2L251bGwKKysrIGIvc3JjL3Rlc3QvcmVncmVzcy9zcWwvc2Vzc2lvbl92 YXJpYWJsZXMuc3FsCkBAIC0wLDAgKzEsMjk3IEBACitDUkVBVEUgUk9MRSByZWdyZXNzX3Zhcmlh YmxlX293bmVyOworCitTRVQgbG9nX3N0YXRlbWVudCBUTyBkZGw7CisKKy0tIHNob3VsZCBiZSBv aworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50OworCistLSBzaG91bGQgZmFpbCwgcHNldWRv dHlwZXMgYXJlIG5vdCBhbGxvd2VkCitDUkVBVEUgVkFSSUFCTEUgdmFyMiBBUyBhbnllbGVtZW50 OworCistLSBzaG91bGQgYmUgb2ssIGRvIG5vdGhpbmcKK0RST1AgVkFSSUFCTEUgSUYgRVhJU1RT IHZhcjI7CisKKy0tIGRvIG5vdGhpbmcKK0NSRUFURSBWQVJJQUJMRSBJRiBOT1QgRVhJU1RTIHZh cjEgQVMgaW50OworCistLSBzaG91bGQgZmFpbAorQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgaW50 OworCistLSBzaG91bGQgYmUgb2sKK0RST1AgVkFSSUFCTEUgSUYgRVhJU1RTIHZhcjE7CisKKy0t IHRoZSB2YXJpYWJsZSBjYW4gdXNlIGNvbXBvc2l0ZSB0eXBlcworQ1JFQVRFIFRBQkxFIHQxIChh IGludCwgYiBpbnQpOworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdDE7CisKKy0tIHNob3VsZCBm YWlsCitEUk9QIFRBQkxFIHQxOworCistLSBzaG91bGQgYmUgb2sKK0FMVEVSIFRBQkxFIHQxIEFE RCBDT0xVTU4gYyBpbnQ7CisKKy0tIHNob3VsZCBmYWlsCitBTFRFUiBUQUJMRSB0MSBBTFRFUiBD T0xVTU4gYiBUWVBFIG51bWVyaWM7CisKK0RST1AgVkFSSUFCTEUgdmFyMTsKK0RST1AgVEFCTEUg dDE7CisKK0NSRUFURSBUWVBFIHQxIEFTIChhIGludCwgYiBpbnQpOworQ1JFQVRFIFZBUklBQkxF IHZhcjEgQVMgdDE7CisKKy0tIHNob3VsZCBmYWlsCitEUk9QIFRZUEUgdDE7CisKKy0tIHNob3Vs ZCBiZSBvaworQUxURVIgVFlQRSB0MSBBREQgQVRUUklCVVRFIGMgaW50OworCistLSBzaG91bGQg ZmFpbAorQUxURVIgVFlQRSB0MSBBTFRFUiBBVFRSSUJVVEUgYiAgVFlQRSBudW1lcmljOworCitE Uk9QIFZBUklBQkxFIHZhcjE7CitEUk9QIFRZUEUgdDE7CisKK1NFVCBsb2dfc3RhdGVtZW50IFRP IGRlZmF1bHQ7CisKK0NSRUFURSBET01BSU4gdGVzdHZhcl9kb21haW4gQVMgaW50OworQ1JFQVRF IFRZUEUgdGVzdHZhcl90eXBlIEFTIChhIHRlc3R2YXJfZG9tYWluKTsKKworQ1JFQVRFIFZBUklB QkxFIHZhcjEgQVMgdGVzdHZhcl9kb21haW47CisKKy0tIHNob3VsZCBmYWlsCitBTFRFUiBET01B SU4gdGVzdHZhcl9kb21haW4gQUREIENIRUNLKHZhbHVlIDw+IDEwMCk7CisKK0RST1AgVkFSSUFC TEUgdmFyMTsKKworQ1JFQVRFIFZBUklBQkxFIHZhcjEgQVMgdGVzdHZhcl90eXBlOworCistLSBz aG91bGQgZmFpbAorQUxURVIgRE9NQUlOIHRlc3R2YXJfZG9tYWluIEFERCBDSEVDSyh2YWx1ZSA8 PiAxMDApOworCitEUk9QIFZBUklBQkxFIHZhcjE7CisKKy0tIHNob3VsZCBiZSBvaworQUxURVIg RE9NQUlOIHRlc3R2YXJfZG9tYWluIEFERCBDSEVDSyh2YWx1ZSA8PiAxMDApOworCitEUk9QIFRZ UEUgdGVzdHZhcl90eXBlOworRFJPUCBUWVBFIHRlc3R2YXJfZG9tYWluOworCistLSBjaGVjayBl dmVudCB0cmlnZ2VyIHN1cHBvcnQKK0NSRUFURSBPUiBSRVBMQUNFIEZVTkNUSU9OIHN2YXJfZXZl bnRfdHJpZ2dlcl9yZXBvcnRfZHJvcHBlZCgpCitSRVRVUk5TIGV2ZW50X3RyaWdnZXIKK0FTICQk CitERUNMQVJFIHIgcmVjb3JkOworQkVHSU4KKyAgRk9SIHIgSU4gU0VMRUNUICogZnJvbSBwZ19l dmVudF90cmlnZ2VyX2Ryb3BwZWRfb2JqZWN0cygpCisgIExPT1AKKyAgICBDT05USU5VRSBXSEVO IE5PVCByLm5vcm1hbCBBTkQgTk9UIHIub3JpZ2luYWw7CisKKyAgICBSQUlTRSBOT1RJQ0UKKyAg ICAgICAnTk9STUFMOiBvcmlnPSUgbm9ybWFsPSUgaXN0ZW1wPSUgdHlwZT0lIGlkZW50aXR5PSUg bmFtZT0lIGFyZ3M9JScsCisgICAgICAgci5vcmlnaW5hbCwgci5ub3JtYWwsIHIuaXNfdGVtcG9y YXJ5LCByLm9iamVjdF90eXBlLAorICAgICAgIHIub2JqZWN0X2lkZW50aXR5LCByLmFkZHJlc3Nf bmFtZXMsIHIuYWRkcmVzc19hcmdzOworICBFTkQgTE9PUDsKK0VORDsKKyQkIExBTkdVQUdFIHBs cGdzcWw7CisKK0NSRUFURSBFVkVOVCBUUklHR0VSIHN2YXJfcmVncmVzc19ldmVudF90cmlnZ2Vy X3JlcG9ydF9kcm9wcGVkIE9OIHNxbF9kcm9wCisgIFdIRU4gVEFHIElOICgnRFJPUCBWQVJJQUJM RScpCisgIEVYRUNVVEUgUFJPQ0VEVVJFIHN2YXJfZXZlbnRfdHJpZ2dlcl9yZXBvcnRfZHJvcHBl ZCgpOworCitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7CitEUk9QIFZBUklBQkxFIHZhcjE7 CisKK0RST1AgRVZFTlQgVFJJR0dFUiBzdmFyX3JlZ3Jlc3NfZXZlbnRfdHJpZ2dlcl9yZXBvcnRf ZHJvcHBlZDsKKworLS0gY2hlY2sgY29tbWVudCBvbiB2YXJpYWJsZQorQ1JFQVRFIFZBUklBQkxF IHZhcjEgQVMgaW50OworQ09NTUVOVCBPTiBWQVJJQUJMRSB2YXIxIElTICdzb21lIHZhcmlhYmxl IGNvbW1lbnQnOworU0VMRUNUIHBnX2NhdGFsb2cub2JqX2Rlc2NyaXB0aW9uKG9pZCwgJ3BnX3Zh cmlhYmxlJykgRlJPTSBwZ192YXJpYWJsZSBXSEVSRSB2YXJuYW1lID0gJ3ZhcjEnOworCitEUk9Q IFZBUklBQkxFIHZhcjE7CisKKy0tIGNoZWNrIHRoZSBvYmplY3QgYWRkcmVzcyBvZiBhbGwgc2Vz c2lvbiB2YXJpYWJsZXMKK0NSRUFURSBTQ0hFTUEgdmFydGVzdDE7CitDUkVBVEUgU0NIRU1BIHZh cnRlc3QyOworQ1JFQVRFIFZBUklBQkxFIHZhcnRlc3QxLnN2YXJ0ZXN0X3ZhcjEgQVMgaW50Owor Q1JFQVRFIFZBUklBQkxFIHZhcnRlc3QyLnN2YXJ0ZXN0X3ZhcjEgQVMgaW50OworCitTRUxFQ1QK KyAgZS52YXJuYW1lLAorICBwZ19kZXNjcmliZV9vYmplY3QoJ3BnX3ZhcmlhYmxlJzo6cmVnY2xh c3MsIGUub2lkLCAwKSBhcyBkZXNjciwKKyAgYi50eXBlLCBiLm9iamVjdF9uYW1lcywgYi5vYmpl Y3RfYXJncywKKyAgcGdfaWRlbnRpZnlfb2JqZWN0KGEuY2xhc3NpZCwgYS5vYmppZCwgYS5vYmpz dWJpZCkgYXMgaWRlbnQKK0ZST00gcGdfdmFyaWFibGUgYXMgZSwKKyAgTEFURVJBTCBwZ19pZGVu dGlmeV9vYmplY3RfYXNfYWRkcmVzcygncGdfdmFyaWFibGUnOjpyZWdjbGFzcywgZS5vaWQsIDAp IGFzIGIsCisgIExBVEVSQUwgcGdfZ2V0X29iamVjdF9hZGRyZXNzKGIudHlwZSwgYi5vYmplY3Rf bmFtZXMsIGIub2JqZWN0X2FyZ3MpIGFzIGEKK1dIRVJFIGUudmFybmFtZSBMSUtFICdzdmFydGVz dF92YXIlJzsKKworRFJPUCBTQ0hFTUEgdmFydGVzdDEgQ0FTQ0FERTsKK0RST1AgU0NIRU1BIHZh cnRlc3QyIENBU0NBREU7CisKKy0tIGNoZWNrIGFjY2VzcyByaWdodHMgYW5kIHN1cHBvcnRlZCBB TFRFUgorQ1JFQVRFIFNDSEVNQSBzdmFydGVzdDsKK0dSQU5UIEFMTCBPTiBTQ0hFTUEgc3ZhcnRl c3QgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKKworQ1JFQVRFIFZBUklBQkxFIHN2YXJ0ZXN0 LnZhcjEgQVMgaW50OworCitDUkVBVEUgUk9MRSByZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcjsKKwor R1JBTlQgU0VMRUNUIE9OIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgVE8gcmVncmVzc192YXJpYWJs ZV9yZWFkZXI7CitSRVZPS0UgQUxMIE9OIFZBUklBQkxFIHN2YXJ0ZXN0LnZhcjEgRlJPTSByZWdy ZXNzX3ZhcmlhYmxlX3JlYWRlcjsKKworQUxURVIgVkFSSUFCTEUgc3ZhcnRlc3QudmFyMSBPV05F UiBUTyByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworQUxURVIgVkFSSUFCTEUgc3ZhcnRlc3QudmFy MSBSRU5BTUUgVE8gdmFyeHg7CitBTFRFUiBWQVJJQUJMRSBzdmFydGVzdC52YXJ4eCBTRVQgU0NI RU1BIHB1YmxpYzsKKworRFJPUCBWQVJJQUJMRSBwdWJsaWMudmFyeHg7CisKK0FMVEVSIERFRkFV TFQgUFJJVklMRUdFUworICAgRk9SIFJPTEUgcmVncmVzc192YXJpYWJsZV9vd25lcgorICAgSU4g U0NIRU1BIHN2YXJ0ZXN0CisgICBHUkFOVCBTRUxFQ1QgT04gVkFSSUFCTEVTIFRPIHJlZ3Jlc3Nf dmFyaWFibGVfcmVhZGVyOworCistLSBjcmVhdGluZyB2YXJpYWJsZSB3aXRoIGRlZmF1bHQgcHJp dmlsZWdlcworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK0NSRUFURSBWQVJJ QUJMRSBzdmFydGVzdC52YXIxIEFTIGludDsKK1NFVCBST0xFIFRPIERFRkFVTFQ7CisKKy0tIHNo b3VsZCBiZSBvay4gc2luY2UgQUxURVIgREVGQVVMVCBQUklWSUxFR0VTCistLSBhbGxvdyByZWdy ZXNzX3ZhcmlhYmxlX3JlYWRlciB0byBoYXZlIFNFTEVDVCBwcml2aWxlZGdlCitTRUxFQ1QgaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3JlYWRlcicsICdz dmFydGVzdC52YXIxJywgJ1NFTEVDVCcpOyAtLSB0CisKK0RST1AgVkFSSUFCTEUgc3ZhcnRlc3Qu dmFyMTsKK0RST1AgU0NIRU1BIHN2YXJ0ZXN0OworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVf cmVhZGVyOworCistLQorLS0gYmVnaW4gb2YgY2hlY2sgR1JBTlQgV0lUSCBHUkFOVCBPUFRJT04g YW5kIFJFVk9LRSBHUkFOVEVEIEJZCistLQorQ1JFQVRFIFJPTEUgcmVncmVzc192YXJpYWJsZV9y MTsKK0NSRUFURSBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjI7CisKK1NFVCBST0xFIFRPIHJlZ3Jl c3NfdmFyaWFibGVfb3duZXI7CitDUkVBVEUgVkFSSUFCTEUgdmFyMSBBUyBpbnQ7ICAgICAgLS12 YXIxIHdpbGwgb3duZWQgYnkgcmVncmVzc192YXJpYWJsZV9vd25lcgorCitHUkFOVCBTRUxFQ1Qg T04gVkFSSUFCTEUgdmFyMSBUTyByZWdyZXNzX3ZhcmlhYmxlX3IxIFdJVEggR1JBTlQgT1BUSU9O OworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9yMTsKK0dSQU5UIFNFTEVDVCBPTiBWQVJJ QUJMRSB2YXIxIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjIgV0lUSCBHUkFOVCBPUFRJT047CitTRVQg Uk9MRSBUTyBERUZBVUxUOworCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdl KCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3B1YmxpYy52YXIxJywgJ1NFTEVDVCcpOyAtLSB0CitT RUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3Iy JywgJ3B1YmxpYy52YXIxJywgJ1NFTEVDVCcpOyAtLSB0CisKK1JFVk9LRSBBTEwgUFJJVklMRUdF UyBPTiBWQVJJQUJMRSB2YXIxIEZST00gcmVncmVzc192YXJpYWJsZV9yMSBDQVNDQURFOworCitT RUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3Ix JywgJ3B1YmxpYy52YXIxJywgJ1NFTEVDVCcpOyAtLSBmCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFy aWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJywgJ3B1YmxpYy52YXIxJywgJ1NF TEVDVCcpOyAtLSBmCisKK1NFVCBST0xFIFRPIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CitHUkFO VCBTRUxFQ1QgT04gVkFSSUFCTEUgdmFyMSBUTyByZWdyZXNzX3ZhcmlhYmxlX3IyOworCitTRUxF Q1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywg J3B1YmxpYy52YXIxJywgJ1NFTEVDVCcpOyAtLSBmCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFi bGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJywgJ3B1YmxpYy52YXIxJywgJ1NFTEVD VCcpOyAtLSB0CisKK1JFVk9LRSBBTEwgT04gVkFSSUFCTEUgdmFyMSBGUk9NIHJlZ3Jlc3NfdmFy aWFibGVfcjIgR1JBTlRFRCBCWSByZWdyZXNzX3ZhcmlhYmxlX293bmVyOworCitTRUxFQ1QgaGFz X3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3B1Ymxp Yy52YXIxJywgJ1NFTEVDVCcpOyAtLSBmCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJp dmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJywgJ3B1YmxpYy52YXIxJywgJ1NFTEVDVCcpOyAt LSBmCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zhcmlh YmxlX293bmVyJywgJ3B1YmxpYy52YXIxJywgJ1NFTEVDVCcpOyAtLSB0CitTRVQgUk9MRSBUTyBE RUZBVUxUOworCitEUk9QIFZBUklBQkxFIHZhcjE7CistLQorLS0gZW5kIG9mIGNoZWNrIEdSQU5U IFdJVEggR1JBTlQgT1BUSU9OIGFuZCBSRVZPS0UgR1JBTlRFRCBCWQorLS0KKworLS0KKy0tIGJl Z2luIG9mIHRlc3Q6IEdSQU5UfFJFVk9LRSBTRUxFQ1R8VVBEQVRFIE9OIEFMTCBWQVJJQUJMRVMg SU4gU0NIRU1BCistLQorQ1JFQVRFIFNDSEVNQSBzdmFydGVzdDsKK0dSQU5UIEFMTCBPTiBTQ0hF TUEgc3ZhcnRlc3QgVE8gcmVncmVzc192YXJpYWJsZV9vd25lcjsKK1NFVCBST0xFIFRPIHJlZ3Jl c3NfdmFyaWFibGVfb3duZXI7CisKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdC52YXIxIEFTIGlu dDsKK0NSRUFURSBWQVJJQUJMRSBzdmFydGVzdC52YXIyIEFTIGludDsKKworR1JBTlQgU0VMRUNU IE9OIEFMTCBWQVJJQUJMRVMgSU4gU0NIRU1BIHN2YXJ0ZXN0IFRPIHJlZ3Jlc3NfdmFyaWFibGVf cjE7CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFy aWFibGVfcjEnLCAnc3ZhcnRlc3QudmFyMScsICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhhc19z ZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMScsICdzdmFydGVz dC52YXIyJywgJ1NFTEVDVCcpOyAtLSB0CisKK1JFVk9LRSBTRUxFQ1QgT04gQUxMIFZBUklBQkxF UyBJTiBTQ0hFTUEgc3ZhcnRlc3QgRlJPTSByZWdyZXNzX3ZhcmlhYmxlX3IxOworCitTRUxFQ1Qg aGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3N2 YXJ0ZXN0LnZhcjEnLCAnU0VMRUNUJyk7IC0tIGYKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJs ZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnLCAnc3ZhcnRlc3QudmFyMicsICdTRUxF Q1QnKTsgLS0gZgorCitTRVQgUk9MRSBUTyBERUZBVUxUOworRFJPUCBWQVJJQUJMRSBzdmFydGVz dC52YXIxOworRFJPUCBWQVJJQUJMRSBzdmFydGVzdC52YXIyOworRFJPUCBTQ0hFTUEgc3ZhcnRl c3Q7CistLQorLS0gZW5kIG9mIHRlc3Q6IEdSQU5UfFJFVk9LRSBTRUxFQ1R8VVBEQVRFIE9OIEFM TCBWQVJJQUJMRVMgSU4gU0NIRU1BCistLQorCistLQorLS0gZnVuY3Rpb24gaGFzX3Nlc3Npb25f dmFyaWFibGVfcHJpdmlsZWdlIGhhdmUgdmFyaW91cyBraW5kIG9mIHNpZ25hdHVyZS4KKy0tIHRo ZSBmb2xsb3dpbmcgYXJlIGV4dGVuc2l2ZSB0ZXN0IGZvciBpdC4KKy0tCitTRVQgUk9MRSBUTyBy ZWdyZXNzX3ZhcmlhYmxlX293bmVyOworCitDUkVBVEUgVkFSSUFCTEUgcHVibGljLnZhcjEgQVMg aW50OworCitTRVQgc2VhcmNoX3BhdGggVE8gcHVibGljOworCitHUkFOVCBTRUxFQ1QgT04gVkFS SUFCTEUgcHVibGljLnZhcjEgVE8gcmVncmVzc192YXJpYWJsZV9yMTsKK0dSQU5UIFNFTEVDVCwg VVBEQVRFIE9OIFZBUklBQkxFIHB1YmxpYy52YXIxIFRPIHJlZ3Jlc3NfdmFyaWFibGVfcjI7CisK K1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVf cjEnLCAncHVibGljLnZhcjEnLCAnU0VMRUNUJyk7CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFi bGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3B1YmxpYy5ub3RleGlzdHMnLCAn U0VMRUNUJykgSVMgTlVMTDsKKworU0VUIFJPTEUgVE8gcmVncmVzc192YXJpYWJsZV9yMTsKKwor U0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9y MScsICd2YXIxJywgJ1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVf cHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgJ3ZhcjEnLCAnVVBEQVRFJyk7IC0tIGYK K1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVf cjInLCAndmFyMScsICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxl X3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMicsICd2YXIxJywgJ1VQREFURScpOyAtLSB0 CisKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3ZhcjEnLCAnU0VMRUNU Jyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3ZhcjEnLCAn VVBEQVRFJyk7IC0tIGYKKworU0VMRUNUIG9pZCBBUyB2YXJpZAorICBGUk9NIHBnX3ZhcmlhYmxl CisgIFdIRVJFIHZhcm5hbWUgPSAndmFyMScgQU5EIHZhcm5hbWVzcGFjZSA9ICdwdWJsaWMnOjpy ZWduYW1lc3BhY2UgXGdzZXQKKworU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVn ZSgndmFyMScsICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3By aXZpbGVnZSgndmFyMScsICdVUERBVEUnKTsgLS0gZgorCitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFy aWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJywgOnZhcmlkLCAnU0VMRUNUJyk7 IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFy aWFibGVfcjEnLCA6dmFyaWQsICdVUERBVEUnKTsgLS0gZgorU0VMRUNUIGhhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMicsIDp2YXJpZCwgJ1NFTEVDVCcp OyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3Zh cmlhYmxlX3IyJywgOnZhcmlkLCAnVVBEQVRFJyk7IC0tIHQKKworU0VMRUNUIGhhc19zZXNzaW9u X3ZhcmlhYmxlX3ByaXZpbGVnZSg6dmFyaWQsICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhhc19z ZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSg6dmFyaWQsICdVUERBVEUnKTsgLS0gZgorCitTRUxF Q1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IxJzo6 cmVncm9sZSwgJ3ZhcjEnLCAnU0VMRUNUJyk7IC0tIHQKK1NFTEVDVCBoYXNfc2Vzc2lvbl92YXJp YWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjEnOjpyZWdyb2xlLCAndmFyMScsICdV UERBVEUnKTsgLS0gZgorU0VMRUNUIGhhc19zZXNzaW9uX3ZhcmlhYmxlX3ByaXZpbGVnZSgncmVn cmVzc192YXJpYWJsZV9yMic6OnJlZ3JvbGUsICd2YXIxJywgJ1NFTEVDVCcpOyAtLSB0CitTRUxF Q1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdyZWdyZXNzX3ZhcmlhYmxlX3IyJzo6 cmVncm9sZSwgJ3ZhcjEnLCAnVVBEQVRFJyk7IC0tIHQKKworU0VMRUNUIGhhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMSc6OnJlZ3JvbGUsIDp2YXJpZCwg J1NFTEVDVCcpOyAtLSB0CitTRUxFQ1QgaGFzX3Nlc3Npb25fdmFyaWFibGVfcHJpdmlsZWdlKCdy ZWdyZXNzX3ZhcmlhYmxlX3IxJzo6cmVncm9sZSwgOnZhcmlkLCAnVVBEQVRFJyk7IC0tIGYKK1NF TEVDVCBoYXNfc2Vzc2lvbl92YXJpYWJsZV9wcml2aWxlZ2UoJ3JlZ3Jlc3NfdmFyaWFibGVfcjIn OjpyZWdyb2xlLCA6dmFyaWQsICdTRUxFQ1QnKTsgLS0gdAorU0VMRUNUIGhhc19zZXNzaW9uX3Zh cmlhYmxlX3ByaXZpbGVnZSgncmVncmVzc192YXJpYWJsZV9yMic6OnJlZ3JvbGUsIDp2YXJpZCwg J1VQREFURScpOyAtLSB0CistLQorLS0gZW5kIG9mIGZ1bmN0aW9uIGhhc19zZXNzaW9uX3Zhcmlh YmxlX3ByaXZpbGVnZSB0ZXN0cy4KKy0tCisKK1NFVCBST0xFIFRPIERFRkFVTFQ7CitTRVQgc2Vh cmNoX3BhdGggVE8gREVGQVVMVDsKKworRFJPUCBWQVJJQUJMRSBwdWJsaWMudmFyMTsKKworRFJP UCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfcjE7CitEUk9QIFJPTEUgcmVncmVzc192YXJpYWJsZV9y MjsKKworRFJPUCBST0xFIHJlZ3Jlc3NfdmFyaWFibGVfb3duZXI7CmRpZmYgLS1naXQgYS9zcmMv dG9vbHMvcGdpbmRlbnQvdHlwZWRlZnMubGlzdCBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVm cy5saXN0CmluZGV4IDlmODNlY2YxODEuLjMyZGIyYzYzMGUgMTAwNjQ0Ci0tLSBhL3NyYy90b29s cy9wZ2luZGVudC90eXBlZGVmcy5saXN0CisrKyBiL3NyYy90b29scy9wZ2luZGVudC90eXBlZGVm cy5saXN0CkBAIC01MzcsNiArNTM3LDcgQEAgQ3JlYXRlUm9sZVN0bXQKIENyZWF0ZVNjaGVtYVN0 bXQKIENyZWF0ZVNjaGVtYVN0bXRDb250ZXh0CiBDcmVhdGVTZXFTdG10CitDcmVhdGVTZXNzaW9u VmFyU3RtdAogQ3JlYXRlU3RhdHNTdG10CiBDcmVhdGVTdG10CiBDcmVhdGVTdG10Q29udGV4dApA QCAtODc3LDYgKzg3OCw3IEBAIEZvcm1EYXRhX3BnX3RzX3BhcnNlcgogRm9ybURhdGFfcGdfdHNf dGVtcGxhdGUKIEZvcm1EYXRhX3BnX3R5cGUKIEZvcm1EYXRhX3BnX3VzZXJfbWFwcGluZworRm9y bURhdGFfcGdfdmFyaWFibGUKIEZvcm1FeHRyYURhdGFfcGdfYXR0cmlidXRlCiBGb3JtX3BnX2Fn Z3JlZ2F0ZQogRm9ybV9wZ19hbQpAQCAtOTM2LDYgKzkzOCw3IEBAIEZvcm1fcGdfdHNfcGFyc2Vy CiBGb3JtX3BnX3RzX3RlbXBsYXRlCiBGb3JtX3BnX3R5cGUKIEZvcm1fcGdfdXNlcl9tYXBwaW5n CitGb3JtX3BnX3ZhcmlhYmxlCiBGb3JtYXROb2RlCiBGcmVlQmxvY2tOdW1iZXJBcnJheQogRnJl ZUxpc3REYXRhCkBAIC0zMDg5LDYgKzMwOTIsNyBAQCBWYXJTdHJpbmcKIFZhclN0cmluZ1NvcnRT dXBwb3J0CiBWYXJpYWJsZQogVmFyaWFibGVBc3NpZ25Ib29rCitWYXJpYWJsZUluZm8KIFZhcmlh YmxlU2V0S2luZAogVmFyaWFibGVTZXRTdG10CiBWYXJpYWJsZVNob3dTdG10Ci0tIAoyLjQ3LjEK Cg== --0000000000007bfa26062b3fa8d1--