X-Original-To: alpine-aports@lists.alpinelinux.org Received: from mail-lf0-f65.google.com (mail-lf0-f65.google.com [209.85.215.65]) by lists.alpinelinux.org (Postfix) with ESMTP id 1F8E35C4561 for ; Fri, 30 Dec 2016 08:50:29 +0000 (GMT) Received: by mail-lf0-f65.google.com with SMTP id x140so19701326lfa.2 for ; Fri, 30 Dec 2016 00:50:29 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=sf7Uf5dsujKB1jNjfLjr/XDeIx94psWiqFTDc2/QXdY=; b=hopQiWk55+TmPyFdg9BC2jpMD9ubzOxs9nB6CKY34mg6vBsC/HmThRHOkBjSaCpSWQ 4XGsu1xHzfoXIlOLsfEuolAUJ0m4Vj6xn7SH2VteBhEeP4P6ZR+/jiAzI7ZYTPKN4HKw sjlvWybJ3LUv88jCCoUKMzp2NhkuoJvrRa72CWuHPpq66g2pYn4bKa0eyaDpN7356EVD tC8TaFmDK5uBGBIVtCPK5BW2UV3q0aJ0f77GfGMzaY2ReziBZ+lYS+7NvN2YHzH4kJ3D TM3QsTL3adF233O1x56KRgn7ipD0JDFz7XlnF4n+N4NxiO6dB7EVjTr3Y30IEfmF5fJ0 xkpw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=sf7Uf5dsujKB1jNjfLjr/XDeIx94psWiqFTDc2/QXdY=; b=CHOdbTrCSCQo5W2KsNGQMidiesUy16I90ik9ozcYplIFFcvkD6Mt5OItg0obxettjH G3dnNXnUrvAHHNkWmt/4rpg5E7BH1VT9JYuyYD5tNXtx1rK/btWJ4GWVLHkcYDCdYAez pNBlBTjFnOUDNWzSd4owihQ2tCngQiGhJsMsoakYYRXCZe4wvk9k0zB7BK7BZVHHUgYm 1DcsxDSVqc2l6EMoPwdZl+xzdfj+WwfMHvt7jpiuViPzTPlYLrKmRSU9743Hwj7jDmxS JGxR3klY6FTR4c7SWy0saOk+gZfK4ZDZDChN2RypzRjScGlYK+3b+z4cdtAy06WqtH5h zghA== X-Gm-Message-State: AIkVDXLWm050CztO0mnUQI05s67Kq7MyWPnHJMAm1Os2JwYldHlAcrVvj1J1kjl/lUu72w== X-Received: by 10.46.77.65 with SMTP id a62mr16909083ljb.61.1483087827706; Fri, 30 Dec 2016 00:50:27 -0800 (PST) Received: from v3-2.util.wtbts.net ([83.145.235.199]) by smtp.gmail.com with ESMTPSA id e6sm6342161lji.34.2016.12.30.00.50.26 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 30 Dec 2016 00:50:27 -0800 (PST) From: Sergey Lukin To: alpine-aports@lists.alpinelinux.org Cc: Sergey Lukin Subject: [alpine-aports] [PATCH v3.2] main/curl: security upgrade to 7.52.1 - fixes #6601 Date: Fri, 30 Dec 2016 08:50:19 +0000 Message-Id: <1483087819-216-1-git-send-email-sergej.lukin@gmail.com> X-Mailer: git-send-email 2.4.11 X-Mailinglist: alpine-aports Precedence: list List-Id: Alpine Development List-Unsubscribe: List-Post: List-Help: List-Subscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Q1ZFLTIwMTYtOTU5NDogdW5pdGl0aWFsaXplZCByYW5kb20NCkNWRS0yMDE2LTk1ODY6IHByaW50 ZiBmbG9hdGluZyBwb2ludCBidWZmZXIgb3ZlcmZsb3cNCkNWRS0yMDE2LTk5NTI6IFdpbiBDRSBz Y2hhbm5lbCBjZXJ0IHdpbGRjYXJkIG1hdGNoZXMgdG9vIG11Y2gNCkNWRS0yMDE2LTk5NTM6IFdp biBDRSBzY2hhbm5lbCBjZXJ0IG5hbWUgb3V0IG9mIGJ1ZmZlciByZWFkDQpDVkUtMjAxNi04NjI1 OiBJRE5BIDIwMDMgbWFrZXMgY3VybCB1c2Ugd3JvbmcgaG9zdA0KDQpodHRwczovL2N1cmwuaGF4 eC5zZS9jaGFuZ2VzLmh0bWwNCi0tLQ0KIG1haW4vY3VybC9BUEtCVUlMRCAgICAgICAgICAgIHwg IDU0ICsrKysrLS0tLS0tDQogbWFpbi9jdXJsL0NWRS0yMDE2LTU0MTkucGF0Y2ggfCAgODUgLS0t LS0tLS0tLS0tLS0tLS0NCiBtYWluL2N1cmwvQ1ZFLTIwMTYtNTQyMC5wYXRjaCB8ICAzMCAtLS0t LS0NCiBtYWluL2N1cmwvQ1ZFLTIwMTYtNTQyMS5wYXRjaCB8ICAzNSAtLS0tLS0tDQogbWFpbi9j dXJsL0NWRS0yMDE2LTcxNDEucGF0Y2ggfCAgNDIgLS0tLS0tLS0tDQogbWFpbi9jdXJsL0NWRS0y MDE2LTcxNjcucGF0Y2ggfCAgNTMgLS0tLS0tLS0tLS0NCiBtYWluL2N1cmwvQ1ZFLTIwMTYtODYx NS5wYXRjaCB8ICA3NSAtLS0tLS0tLS0tLS0tLS0NCiBtYWluL2N1cmwvQ1ZFLTIwMTYtODYxNi5w YXRjaCB8ICA2NiAtLS0tLS0tLS0tLS0tLQ0KIG1haW4vY3VybC9DVkUtMjAxNi04NjE3LnBhdGNo IHwgIDM2IC0tLS0tLS0tDQogbWFpbi9jdXJsL0NWRS0yMDE2LTg2MTgucGF0Y2ggfCAgNTAgLS0t LS0tLS0tLQ0KIG1haW4vY3VybC9DVkUtMjAxNi04NjE5LnBhdGNoIHwgIDUwIC0tLS0tLS0tLS0N CiBtYWluL2N1cmwvQ1ZFLTIwMTYtODYyMC5wYXRjaCB8IDIwNSAtLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIG1haW4vY3VybC9DVkUtMjAxNi04NjIxLnBhdGNoIHwg MTIxIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIG1haW4vY3VybC9DVkUtMjAxNi04NjIyLnBh dGNoIHwgMTI2IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiBtYWluL2N1cmwvQ1ZFLTIwMTYt ODYyMy5wYXRjaCB8IDIwNyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCiAxNSBmaWxlcyBjaGFuZ2VkLCAyNyBpbnNlcnRpb25zKCspLCAxMjA4IGRlbGV0aW9ucygt KQ0KIGRlbGV0ZSBtb2RlIDEwMDY0NCBtYWluL2N1cmwvQ1ZFLTIwMTYtNTQxOS5wYXRjaA0KIGRl bGV0ZSBtb2RlIDEwMDY0NCBtYWluL2N1cmwvQ1ZFLTIwMTYtNTQyMC5wYXRjaA0KIGRlbGV0ZSBt b2RlIDEwMDY0NCBtYWluL2N1cmwvQ1ZFLTIwMTYtNTQyMS5wYXRjaA0KIGRlbGV0ZSBtb2RlIDEw MDY0NCBtYWluL2N1cmwvQ1ZFLTIwMTYtNzE0MS5wYXRjaA0KIGRlbGV0ZSBtb2RlIDEwMDY0NCBt YWluL2N1cmwvQ1ZFLTIwMTYtNzE2Ny5wYXRjaA0KIGRlbGV0ZSBtb2RlIDEwMDY0NCBtYWluL2N1 cmwvQ1ZFLTIwMTYtODYxNS5wYXRjaA0KIGRlbGV0ZSBtb2RlIDEwMDY0NCBtYWluL2N1cmwvQ1ZF LTIwMTYtODYxNi5wYXRjaA0KIGRlbGV0ZSBtb2RlIDEwMDY0NCBtYWluL2N1cmwvQ1ZFLTIwMTYt ODYxNy5wYXRjaA0KIGRlbGV0ZSBtb2RlIDEwMDY0NCBtYWluL2N1cmwvQ1ZFLTIwMTYtODYxOC5w YXRjaA0KIGRlbGV0ZSBtb2RlIDEwMDY0NCBtYWluL2N1cmwvQ1ZFLTIwMTYtODYxOS5wYXRjaA0K IGRlbGV0ZSBtb2RlIDEwMDY0NCBtYWluL2N1cmwvQ1ZFLTIwMTYtODYyMC5wYXRjaA0KIGRlbGV0 ZSBtb2RlIDEwMDY0NCBtYWluL2N1cmwvQ1ZFLTIwMTYtODYyMS5wYXRjaA0KIGRlbGV0ZSBtb2Rl IDEwMDY0NCBtYWluL2N1cmwvQ1ZFLTIwMTYtODYyMi5wYXRjaA0KIGRlbGV0ZSBtb2RlIDEwMDY0 NCBtYWluL2N1cmwvQ1ZFLTIwMTYtODYyMy5wYXRjaA0KDQpkaWZmIC0tZ2l0IGEvbWFpbi9jdXJs L0FQS0JVSUxEIGIvbWFpbi9jdXJsL0FQS0JVSUxEDQppbmRleCBjM2QzN2RlLi40ZjhkYWE5IDEw MDY0NA0KLS0tIGEvbWFpbi9jdXJsL0FQS0JVSUxEDQorKysgYi9tYWluL2N1cmwvQVBLQlVJTEQN CkBAIC0xLDggKzEsOCBAQA0KICMgTWFpbnRhaW5lcjogTmF0YW5hZWwgQ29wYSA8bmNvcGFAYWxw aW5lbGludXgub3JnPg0KICMgQ29udHJpYnV0b3I6IFNlcmdleSBMdWtpbiA8c2VyZ2VqLmx1a2lu QGdtYWlsLmNvbT4NCiBwa2duYW1lPWN1cmwNCi1wa2d2ZXI9Ny40OS4xDQotcGtncmVsPTQNCitw a2d2ZXI9Ny41Mi4xDQorcGtncmVsPTANCiBwa2dkZXNjPSJBbiBVUkwgcmV0cml2YWwgdXRpbGl0 eSBhbmQgbGlicmFyeSINCiB1cmw9Imh0dHA6Ly9jdXJsLmhheHguc2UiDQogYXJjaD0iYWxsIg0K QEAgLTExLDM1ICsxMSwzNSBAQCBkZXBlbmRzPSJjYS1jZXJ0aWZpY2F0ZXMiDQogZGVwZW5kc19k ZXY9InpsaWItZGV2IG9wZW5zc2wtZGV2IGxpYnNzaDItZGV2Ig0KIG1ha2VkZXBlbmRzPSJncm9m ZiAkZGVwZW5kc19kZXYgcGVybCINCiBzdWJwYWNrYWdlcz0iJHBrZ25hbWUtZG9jICRwa2duYW1l LWRldiINCi1zb3VyY2U9Imh0dHA6Ly9jdXJsLmhheHguc2UvZG93bmxvYWQvY3VybC0kcGtndmVy LnRhci5iejINCi0JQ1ZFLTIwMTYtNTQxOS5wYXRjaA0KLQlDVkUtMjAxNi01NDIwLnBhdGNoDQot CUNWRS0yMDE2LTU0MjEucGF0Y2gNCi0JQ1ZFLTIwMTYtNzE0MS5wYXRjaA0KLQlDVkUtMjAxNi03 MTY3LnBhdGNoDQotCUNWRS0yMDE2LTg2MTUucGF0Y2gNCi0JQ1ZFLTIwMTYtODYxNi5wYXRjaA0K LQlDVkUtMjAxNi04NjE3LnBhdGNoDQotCUNWRS0yMDE2LTg2MTgucGF0Y2gNCi0JQ1ZFLTIwMTYt ODYxOS5wYXRjaA0KLQlDVkUtMjAxNi04NjIwLnBhdGNoDQotCUNWRS0yMDE2LTg2MjEucGF0Y2gN Ci0JQ1ZFLTIwMTYtODYyMi5wYXRjaA0KLQlDVkUtMjAxNi04NjIzLnBhdGNoDQotCUNWRS0yMDE2 LTg2MjQtZml4ZWQucGF0Y2gNCi0JIg0KK3NvdXJjZT0iaHR0cDovL2N1cmwuaGF4eC5zZS9kb3du bG9hZC9jdXJsLSRwa2d2ZXIudGFyLmJ6MiINCiANCiBfYnVpbGRkaXI9IiRzcmNkaXIvJHBrZ25h bWUtJHBrZ3ZlciINCiANCiAjIHNlY2ZpeGVzOg0KLSMgICA3LjQ5LjEtcjE6DQotIyAgIC0gQ1ZF LTIwMTYtNTQxOQ0KLSMgICAtIENWRS0yMDE2LTU0MjANCi0jICAgLSBDVkUtMjAxNi01NDIxDQot IyAgIDcuNDkuMS1yMjoNCi0jICAgLSBDVkUtMjAxNi03MTQxDQotIyAgIDcuNDkuMS1yMzoNCi0j ICAgLSBDVkUtMjAxNi03MTY3DQorIyAgNy41Mi4xLXIwOg0KKyMgICAgLSBDVkUtMjAxNi05NTk0 DQorIyAgICAtIENWRS0yMDE2LTk1ODYNCisjICAgIC0gQ1ZFLTIwMTYtOTk1Mg0KKyMgICAgLSBD VkUtMjAxNi05OTUzDQorIyAgNy40OS4xLXI0Og0KKyMgICAgLSBDVkUtMjAxNi04NjE1DQorIyAg ICAtIENWRS0yMDE2LTg2MTYNCisjICAgIC0gQ1ZFLTIwMTYtODYxNw0KKyMgICAgLSBDVkUtMjAx Ni04NjE4DQorIyAgICAtIENWRS0yMDE2LTg2MTkNCisjICAgIC0gQ1ZFLTIwMTYtODYyMA0KKyMg ICAgLSBDVkUtMjAxNi04NjIxDQorIyAgICAtIENWRS0yMDE2LTg2MjINCisjICAgIC0gQ1ZFLTIw MTYtODYyMw0KKyMgICAgLSBDVkUtMjAxNi04NjI0DQorIyAgNy40OS4xLXIzOg0KKyMgICAgLSBD VkUtMjAxNi03MTY3DQorIyAgNy40OS4xLXIyOg0KKyMgICAgLSBDVkUtMjAxNi03MTQxDQorIyAg Ny40OS4xLXIxOg0KKyMgICAgLSBDVkUtMjAxNi01NDE5DQorIyAgICAtIENWRS0yMDE2LTU0MjAN CisjICAgIC0gQ1ZFLTIwMTYtNTQyMQ0KIA0KIHByZXBhcmUoKSB7DQogCWxvY2FsIGkNCmRpZmYg LS1naXQgYS9tYWluL2N1cmwvQ1ZFLTIwMTYtNTQxOS5wYXRjaCBiL21haW4vY3VybC9DVkUtMjAx Ni01NDE5LnBhdGNoDQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDRlYjc0ZGQuLjAw MDAwMDANCi0tLSBhL21haW4vY3VybC9DVkUtMjAxNi01NDE5LnBhdGNoDQorKysgL2Rldi9udWxs DQpAQCAtMSw4NSArMCwwIEBADQotRnJvbSA0MTZhZDkwYWZjNTBkOWNiY2I1MGJhNGFiMjhmODhk MjYwNzc0ZjZkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQ0KLUZyb206IERhbmllbCBTdGVuYmVy ZyA8ZGFuaWVsQGhheHguc2U+DQotRGF0ZTogRnJpLCAxIEp1bCAyMDE2IDEzOjMyOjMxICswMjAw DQotU3ViamVjdDogW1BBVENIXSBUTFM6IHN3aXRjaCBvZmYgU1NMIHNlc3Npb24gaWQgd2hlbiBj bGllbnQgY2VydCBpcyB1c2VkDQotDQotQ1ZFLTIwMTYtNTQxOQ0KLUJ1ZzogaHR0cHM6Ly9jdXJs LmhheHguc2UvZG9jcy9hZHZfMjAxNjA4MDNBLmh0bWwNCi1SZXBvcnRlZC1ieTogQnJ1IFJvbQ0K LUNvbnRyaWJ1dGlvbnMtYnk6IEVyaWMgUmVzY29ybGEgYW5kIFJheSBTYXRpcm8NCi0tLS0NCi0g bGliL3VybC5jICAgICAgIHwgIDEgKw0KLSBsaWIvdXJsZGF0YS5oICAgfCAgMSArDQotIGxpYi92 dGxzL3Z0bHMuYyB8IDEwICsrKysrKysrKysNCi0gMyBmaWxlcyBjaGFuZ2VkLCAxMiBpbnNlcnRp b25zKCspDQotDQotZGlmZiAtLWdpdCBhL2xpYi91cmwuYyBiL2xpYi91cmwuYw0KLWluZGV4IDI1 OGEyODYuLmU1NDdlNWMgMTAwNjQ0DQotLS0tIGEvbGliL3VybC5jDQotKysrIGIvbGliL3VybC5j DQotQEAgLTYxMjEsMTAgKzYxMjEsMTEgQEAgc3RhdGljIENVUkxjb2RlIGNyZWF0ZV9jb25uKHN0 cnVjdCBDdXJsX2Vhc3kgKmRhdGEsDQotICAgZGF0YS0+c2V0LnNzbC5DUkxmaWxlID0gZGF0YS0+ c2V0LnN0cltTVFJJTkdfU1NMX0NSTEZJTEVdOw0KLSAgIGRhdGEtPnNldC5zc2wuaXNzdWVyY2Vy dCA9IGRhdGEtPnNldC5zdHJbU1RSSU5HX1NTTF9JU1NVRVJDRVJUXTsNCi0gICBkYXRhLT5zZXQu c3NsLnJhbmRvbV9maWxlID0gZGF0YS0+c2V0LnN0cltTVFJJTkdfU1NMX1JBTkRPTV9GSUxFXTsN Ci0gICBkYXRhLT5zZXQuc3NsLmVnZHNvY2tldCA9IGRhdGEtPnNldC5zdHJbU1RSSU5HX1NTTF9F R0RTT0NLRVRdOw0KLSAgIGRhdGEtPnNldC5zc2wuY2lwaGVyX2xpc3QgPSBkYXRhLT5zZXQuc3Ry W1NUUklOR19TU0xfQ0lQSEVSX0xJU1RdOw0KLSsgIGRhdGEtPnNldC5zc2wuY2xpZW50Y2VydCA9 IGRhdGEtPnNldC5zdHJbU1RSSU5HX0NFUlRdOw0KLSAjaWZkZWYgVVNFX1RMU19TUlANCi0gICBk YXRhLT5zZXQuc3NsLnVzZXJuYW1lID0gZGF0YS0+c2V0LnN0cltTVFJJTkdfVExTQVVUSF9VU0VS TkFNRV07DQotICAgZGF0YS0+c2V0LnNzbC5wYXNzd29yZCA9IGRhdGEtPnNldC5zdHJbU1RSSU5H X1RMU0FVVEhfUEFTU1dPUkRdOw0KLSAjZW5kaWYNCi0gDQotZGlmZiAtLWdpdCBhL2xpYi91cmxk YXRhLmggYi9saWIvdXJsZGF0YS5oDQotaW5kZXggNjExYzVhNy4uM2NmN2VkOSAxMDA2NDQNCi0t LS0gYS9saWIvdXJsZGF0YS5oDQotKysrIGIvbGliL3VybGRhdGEuaA0KLUBAIC0zNDksMTAgKzM0 OSwxMSBAQCBzdHJ1Y3Qgc3NsX2NvbmZpZ19kYXRhIHsNCi0gICBib29sIHZlcmlmeXN0YXR1czsg ICAgIC8qIHNldCBUUlVFIGlmIGNlcnRpZmljYXRlIHN0YXR1cyBtdXN0IGJlIGNoZWNrZWQgKi8N Ci0gICBjaGFyICpDQXBhdGg7ICAgICAgICAgIC8qIGNlcnRpZmljYXRlIGRpciAoZG9lc24ndCB3 b3JrIG9uIHdpbmRvd3MpICovDQotICAgY2hhciAqQ0FmaWxlOyAgICAgICAgICAvKiBjZXJ0aWZp Y2F0ZSB0byB2ZXJpZnkgcGVlciBhZ2FpbnN0ICovDQotICAgY29uc3QgY2hhciAqQ1JMZmlsZTsg ICAvKiBDUkwgdG8gY2hlY2sgY2VydGlmaWNhdGUgcmV2b2NhdGlvbiAqLw0KLSAgIGNvbnN0IGNo YXIgKmlzc3VlcmNlcnQ7Lyogb3B0aW9uYWwgaXNzdWVyIGNlcnRpZmljYXRlIGZpbGVuYW1lICov DQotKyAgY2hhciAqY2xpZW50Y2VydDsNCi0gICBjaGFyICpyYW5kb21fZmlsZTsgICAgIC8qIHBh dGggdG8gZmlsZSBjb250YWluaW5nICJyYW5kb20iIGRhdGEgKi8NCi0gICBjaGFyICplZ2Rzb2Nr ZXQ7ICAgICAgIC8qIHBhdGggdG8gZmlsZSBjb250YWluaW5nIHRoZSBFR0QgZGFlbW9uIHNvY2tl dCAqLw0KLSAgIGNoYXIgKmNpcGhlcl9saXN0OyAgICAgLyogbGlzdCBvZiBjaXBoZXJzIHRvIHVz ZSAqLw0KLSAgIHNpemVfdCBtYXhfc3NsX3Nlc3Npb25zOyAvKiBTU0wgc2Vzc2lvbiBpZCBjYWNo ZSBzaXplICovDQotICAgY3VybF9zc2xfY3R4X2NhbGxiYWNrIGZzc2xjdHg7IC8qIGZ1bmN0aW9u IHRvIGluaXRpYWxpemUgc3NsIGN0eCAqLw0KLWRpZmYgLS1naXQgYS9saWIvdnRscy92dGxzLmMg Yi9saWIvdnRscy92dGxzLmMNCi1pbmRleCBkM2U0MWNkLi4zM2UyMDlkIDEwMDY0NA0KLS0tLSBh L2xpYi92dGxzL3Z0bHMuYw0KLSsrKyBiL2xpYi92dGxzL3Z0bHMuYw0KLUBAIC0xNTQsMjAgKzE1 NCwzMCBAQCBDdXJsX2Nsb25lX3NzbF9jb25maWcoc3RydWN0IHNzbF9jb25maWdfZGF0YSAqc291 cmNlLA0KLSAgICAgICByZXR1cm4gRkFMU0U7DQotICAgfQ0KLSAgIGVsc2UNCi0gICAgIGRlc3Qt PnJhbmRvbV9maWxlID0gTlVMTDsNCi0gDQotKyAgaWYoc291cmNlLT5jbGllbnRjZXJ0KSB7DQot KyAgICBkZXN0LT5jbGllbnRjZXJ0ID0gc3RyZHVwKHNvdXJjZS0+Y2xpZW50Y2VydCk7DQotKyAg ICBpZighZGVzdC0+Y2xpZW50Y2VydCkNCi0rICAgICAgcmV0dXJuIEZBTFNFOw0KLSsgICAgZGVz dC0+c2Vzc2lvbmlkID0gRkFMU0U7DQotKyAgfQ0KLSsgIGVsc2UNCi0rICAgIGRlc3QtPmNsaWVu dGNlcnQgPSBOVUxMOw0KLSsNCi0gICByZXR1cm4gVFJVRTsNCi0gfQ0KLSANCi0gdm9pZCBDdXJs X2ZyZWVfc3NsX2NvbmZpZyhzdHJ1Y3Qgc3NsX2NvbmZpZ19kYXRhKiBzc2xjKQ0KLSB7DQotICAg Q3VybF9zYWZlZnJlZShzc2xjLT5DQWZpbGUpOw0KLSAgIEN1cmxfc2FmZWZyZWUoc3NsYy0+Q0Fw YXRoKTsNCi0gICBDdXJsX3NhZmVmcmVlKHNzbGMtPmNpcGhlcl9saXN0KTsNCi0gICBDdXJsX3Nh ZmVmcmVlKHNzbGMtPmVnZHNvY2tldCk7DQotICAgQ3VybF9zYWZlZnJlZShzc2xjLT5yYW5kb21f ZmlsZSk7DQotKyAgQ3VybF9zYWZlZnJlZShzc2xjLT5jbGllbnRjZXJ0KTsNCi0gfQ0KLSANCi0g DQotIC8qDQotICAqIEN1cmxfcmFuZCgpIHJldHVybnMgYSByYW5kb20gdW5zaWduZWQgaW50ZWdl ciwgMzJiaXQuDQotLS0gDQotMi44LjENCi0NCmRpZmYgLS1naXQgYS9tYWluL2N1cmwvQ1ZFLTIw MTYtNTQyMC5wYXRjaCBiL21haW4vY3VybC9DVkUtMjAxNi01NDIwLnBhdGNoDQpkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQNCmluZGV4IGU5MWI5YzcuLjAwMDAwMDANCi0tLSBhL21haW4vY3VybC9D VkUtMjAxNi01NDIwLnBhdGNoDQorKysgL2Rldi9udWxsDQpAQCAtMSwzMCArMCwwIEBADQotRnJv bSBmNjQ3NGZmM2JmYjM4YzI4YjcwYjViYTAxMDQ4ZWRjNDFmNjU0Mzc2IE1vbiBTZXAgMTcgMDA6 MDA6MDAgMjAwMQ0KLUZyb206IERhbmllbCBTdGVuYmVyZyA8ZGFuaWVsQGhheHguc2U+DQotRGF0 ZTogU3VuLCAzMSBKdWwgMjAxNiAwMDo1MTo0OCArMDIwMA0KLVN1YmplY3Q6IFtQQVRDSF0gVExT OiBvbmx5IHJldXNlIGNvbm5lY3Rpb25zIHdpdGggdGhlIHNhbWUgY2xpZW50IGNlcnQNCi0NCi1D VkUtMjAxNi01NDIwDQotQnVnOiBodHRwczovL2N1cmwuaGF4eC5zZS9kb2NzL2Fkdl8yMDE2MDgw M0IuaHRtbA0KLS0tLQ0KLSBsaWIvdnRscy92dGxzLmMgfCAxICsNCi0gMSBmaWxlIGNoYW5nZWQs IDEgaW5zZXJ0aW9uKCspDQotDQotZGlmZiAtLWdpdCBhL2xpYi92dGxzL3Z0bHMuYyBiL2xpYi92 dGxzL3Z0bHMuYw0KLWluZGV4IDMzZTIwOWQuLjM4NjM3NzcgMTAwNjQ0DQotLS0tIGEvbGliL3Z0 bHMvdnRscy5jDQotKysrIGIvbGliL3Z0bHMvdnRscy5jDQotQEAgLTk3LDEwICs5NywxMSBAQCBD dXJsX3NzbF9jb25maWdfbWF0Y2hlcyhzdHJ1Y3Qgc3NsX2NvbmZpZ19kYXRhKiBkYXRhLA0KLSAg IGlmKChkYXRhLT52ZXJzaW9uID09IG5lZWRsZS0+dmVyc2lvbikgJiYNCi0gICAgICAoZGF0YS0+ dmVyaWZ5cGVlciA9PSBuZWVkbGUtPnZlcmlmeXBlZXIpICYmDQotICAgICAgKGRhdGEtPnZlcmlm eWhvc3QgPT0gbmVlZGxlLT52ZXJpZnlob3N0KSAmJg0KLSAgICAgIHNhZmVfc3RyZXF1YWwoZGF0 YS0+Q0FwYXRoLCBuZWVkbGUtPkNBcGF0aCkgJiYNCi0gICAgICBzYWZlX3N0cmVxdWFsKGRhdGEt PkNBZmlsZSwgbmVlZGxlLT5DQWZpbGUpICYmDQotKyAgICAgc2FmZV9zdHJlcXVhbChkYXRhLT5j bGllbnRjZXJ0LCBuZWVkbGUtPmNsaWVudGNlcnQpICYmDQotICAgICAgc2FmZV9zdHJlcXVhbChk YXRhLT5yYW5kb21fZmlsZSwgbmVlZGxlLT5yYW5kb21fZmlsZSkgJiYNCi0gICAgICBzYWZlX3N0 cmVxdWFsKGRhdGEtPmVnZHNvY2tldCwgbmVlZGxlLT5lZ2Rzb2NrZXQpICYmDQotICAgICAgc2Fm ZV9zdHJlcXVhbChkYXRhLT5jaXBoZXJfbGlzdCwgbmVlZGxlLT5jaXBoZXJfbGlzdCkpDQotICAg ICByZXR1cm4gVFJVRTsNCi0gDQotLS0gDQotMi44LjENCi0NCmRpZmYgLS1naXQgYS9tYWluL2N1 cmwvQ1ZFLTIwMTYtNTQyMS5wYXRjaCBiL21haW4vY3VybC9DVkUtMjAxNi01NDIxLnBhdGNoDQpk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDRmNTk0OTUuLjAwMDAwMDANCi0tLSBhL21h aW4vY3VybC9DVkUtMjAxNi01NDIxLnBhdGNoDQorKysgL2Rldi9udWxsDQpAQCAtMSwzNSArMCww IEBADQotRnJvbSBjY2I3ZDc5YjYyYzhiMTVhNmJlNDQ2ZjljOWZkMzc2N2MwMWViNWI2IE1vbiBT ZXAgMTcgMDA6MDA6MDAgMjAwMQ0KLUZyb206IERhbmllbCBTdGVuYmVyZyA8ZGFuaWVsQGhheHgu c2U+DQotRGF0ZTogU3VuLCAzMSBKdWwgMjAxNiAwMTowOTowNCArMDIwMA0KLVN1YmplY3Q6IFtQ QVRDSF0gY3VybF9tdWx0aV9jbGVhbnVwOiBjbGVhciBjb25uZWN0aW9uIHBvaW50ZXIgZm9yIGVh c3kgaGFuZGxlcw0KLU1JTUUtVmVyc2lvbjogMS4wDQotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWlu OyBjaGFyc2V0PVVURi04DQotQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdA0KLQ0KLUNW RS0yMDE2LTU0MjENCi1CdWc6IGh0dHBzOi8vY3VybC5oYXh4LnNlL2RvY3MvYWR2XzIwMTYwODAz Qy5odG1sDQotUmVwb3J0ZWQtYnk6IE1hcmNlbG8gRWNoZXZlcnJpYSBhbmQgRmVybmFuZG8gTXXD sW96DQotLS0tDQotIGxpYi9tdWx0aS5jIHwgMiArKw0KLSAxIGZpbGUgY2hhbmdlZCwgMiBpbnNl cnRpb25zKCspDQotDQotZGlmZiAtLWdpdCBhL2xpYi9tdWx0aS5jIGIvbGliL211bHRpLmMNCi1p bmRleCA5ZWUzNTIzLi44YmI5MzY2IDEwMDY0NA0KLS0tLSBhL2xpYi9tdWx0aS5jDQotKysrIGIv bGliL211bHRpLmMNCi1AQCAtMjE1NSwxMCArMjE1NSwxMiBAQCBzdGF0aWMgdm9pZCBjbG9zZV9h bGxfY29ubmVjdGlvbnMoc3RydWN0IEN1cmxfbXVsdGkgKm11bHRpKQ0KLSAgIHdoaWxlKGNvbm4p IHsNCi0gICAgIFNJR1BJUEVfVkFSSUFCTEUocGlwZV9zdCk7DQotICAgICBjb25uLT5kYXRhID0g bXVsdGktPmNsb3N1cmVfaGFuZGxlOw0KLSANCi0gICAgIHNpZ3BpcGVfaWdub3JlKGNvbm4tPmRh dGEsICZwaXBlX3N0KTsNCi0rICAgIGNvbm4tPmRhdGEtPmVhc3lfY29ubiA9IE5VTEw7IC8qIGNs ZWFyIHRoZSBlYXN5IGhhbmRsZSdzIGNvbm5lY3Rpb24NCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHBvaW50ZXIgKi8NCi0gICAgIC8qIFRoaXMgd2lsbCByZW1vdmUgdGhl IGNvbm5lY3Rpb24gZnJvbSB0aGUgY2FjaGUgKi8NCi0gICAgICh2b2lkKUN1cmxfZGlzY29ubmVj dChjb25uLCBGQUxTRSk7DQotICAgICBzaWdwaXBlX3Jlc3RvcmUoJnBpcGVfc3QpOw0KLSANCi0g ICAgIGNvbm4gPSBDdXJsX2Nvbm5jYWNoZV9maW5kX2ZpcnN0X2Nvbm5lY3Rpb24oJm11bHRpLT5j b25uX2NhY2hlKTsNCi0tLSANCi0yLjguMQ0KLQ0KZGlmZiAtLWdpdCBhL21haW4vY3VybC9DVkUt MjAxNi03MTQxLnBhdGNoIGIvbWFpbi9jdXJsL0NWRS0yMDE2LTcxNDEucGF0Y2gNCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggZGFiMmNjNC4uMDAwMDAwMA0KLS0tIGEvbWFpbi9jdXJs L0NWRS0yMDE2LTcxNDEucGF0Y2gNCisrKyAvZGV2L251bGwNCkBAIC0xLDQyICswLDAgQEANCi1G cm9tIDc3MDBmY2JhNjRiZjU4MDZkZTI4ZjZjMWM3ZGEzYjRmMGIzODU2N2QgTW9uIFNlcCAxNyAw MDowMDowMCAyMDAxDQotRnJvbTogS2FtaWwgRHVka2EgPGtkdWRrYUByZWRoYXQuY29tPg0KLURh dGU6IE1vbiwgMjIgQXVnIDIwMTYgMTA6MjQ6MzUgKzAyMDANCi1TdWJqZWN0OiBbUEFUQ0hdIG5z czogcmVmdXNlIHByZXZpb3VzbHkgbG9hZGVkIGNlcnRpZmljYXRlIGZyb20gZmlsZQ0KLQ0KLS4u LiB3aGVuIHdlIGFyZSBub3QgYXNrZWQgdG8gdXNlIGEgY2VydGlmaWNhdGUgZnJvbSBmaWxlDQot LS0tDQotIGxpYi92dGxzL25zcy5jIHwgOCArKysrKysrLQ0KLSAxIGZpbGUgY2hhbmdlZCwgNyBp bnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQotDQotZGlmZiAtLWdpdCBhL2xpYi92dGxzL25z cy5jIGIvbGliL3Z0bHMvbnNzLmMNCi1pbmRleCAyMGM0Mjc3Li5jZmIyMjYzIDEwMDY0NA0KLS0t LSBhL2xpYi92dGxzL25zcy5jDQotKysrIGIvbGliL3Z0bHMvbnNzLmMNCi1AQCAtMTAwMiwxMCAr MTAwMiwxMCBAQCBzdGF0aWMgU0VDU3RhdHVzIFNlbGVjdENsaWVudENlcnQodm9pZCAqYXJnLCBQ UkZpbGVEZXNjICpzb2NrLA0KLSAgIHN0cnVjdCBzc2xfY29ubmVjdF9kYXRhICpjb25uc3NsID0g KHN0cnVjdCBzc2xfY29ubmVjdF9kYXRhICopYXJnOw0KLSAgIHN0cnVjdCBDdXJsX2Vhc3kgKmRh dGEgPSBjb25uc3NsLT5kYXRhOw0KLSAgIGNvbnN0IGNoYXIgKm5pY2tuYW1lID0gY29ubnNzbC0+ Y2xpZW50X25pY2tuYW1lOw0KLSsgIHN0YXRpYyBjb25zdCBjaGFyIHBlbV9zbG90bmFtZVtdID0g IlBFTSBUb2tlbiAjMSI7DQotIA0KLSAgIGlmKGNvbm5zc2wtPm9ial9jbGljZXJ0KSB7DQotICAg ICAvKiB1c2UgdGhlIGNlcnQva2V5IHByb3ZpZGVkIGJ5IFBFTSByZWFkZXIgKi8NCi0tICAgIHN0 YXRpYyBjb25zdCBjaGFyIHBlbV9zbG90bmFtZVtdID0gIlBFTSBUb2tlbiAjMSI7DQotICAgICBT RUNJdGVtIGNlcnRfZGVyID0geyAwLCBOVUxMLCAwIH07DQotICAgICB2b2lkICpwcm90b193aW4g PSBTU0xfUmV2ZWFsUGluQXJnKHNvY2spOw0KLSAgICAgc3RydWN0IENFUlRDZXJ0aWZpY2F0ZVN0 ciAqY2VydDsNCi1AQCAtMTA2Nyw2ICsxMDY3LDEyIEBAIHN0YXRpYyBTRUNTdGF0dXMgU2VsZWN0 Q2xpZW50Q2VydCh2b2lkICphcmcsIFBSRmlsZURlc2MgKnNvY2ssDQotICAgaWYoTlVMTCA9PSBu aWNrbmFtZSkNCi0gICAgIG5pY2tuYW1lID0gIlt1bmtub3duXSI7DQotIA0KLSsgIGlmKCFzdHJu Y21wKG5pY2tuYW1lLCBwZW1fc2xvdG5hbWUsIHNpemVvZihwZW1fc2xvdG5hbWUpIC0gMVUpKSB7 DQotKyAgICBmYWlsZihkYXRhLCAiTlNTOiByZWZ1c2luZyBwcmV2aW91c2x5IGxvYWRlZCBjZXJ0 aWZpY2F0ZSBmcm9tIGZpbGU6ICVzIiwNCi0rICAgICAgICAgIG5pY2tuYW1lKTsNCi0rICAgIHJl dHVybiBTRUNGYWlsdXJlOw0KLSsgIH0NCi0rDQotICAgaWYoTlVMTCA9PSAqcFJldEtleSkgew0K LSAgICAgZmFpbGYoZGF0YSwgIk5TUzogcHJpdmF0ZSBrZXkgbm90IGZvdW5kIGZvciBjZXJ0aWZp Y2F0ZTogJXMiLCBuaWNrbmFtZSk7DQotICAgICByZXR1cm4gU0VDRmFpbHVyZTsNCi0tLSANCi0y LjcuNA0KLQ0KZGlmZiAtLWdpdCBhL21haW4vY3VybC9DVkUtMjAxNi03MTY3LnBhdGNoIGIvbWFp bi9jdXJsL0NWRS0yMDE2LTcxNjcucGF0Y2gNCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NA0KaW5k ZXggM2U2ZTQ1NC4uMDAwMDAwMA0KLS0tIGEvbWFpbi9jdXJsL0NWRS0yMDE2LTcxNjcucGF0Y2gN CisrKyAvZGV2L251bGwNCkBAIC0xLDUzICswLDAgQEANCi1kaWZmIC0tZ2l0IGEvbGliL2VzY2Fw ZS5jIGIvbGliL2VzY2FwZS5jDQotaW5kZXggMmM2YTdmNi4uNWFlNGIxOCAxMDA2NDQNCi0tLS0g YS9saWIvZXNjYXBlLmMNCi0rKysgYi9saWIvZXNjYXBlLmMNCi1AQCAtNzcsMTUgKzc3LDIxIEBA IGNoYXIgKmN1cmxfdW5lc2NhcGUoY29uc3QgY2hhciAqc3RyaW5nLCBpbnQgbGVuZ3RoKQ0KLSAN Ci0gY2hhciAqY3VybF9lYXN5X2VzY2FwZShDVVJMICpoYW5kbGUsIGNvbnN0IGNoYXIgKnN0cmlu ZywgaW50IGlubGVuZ3RoKQ0KLSB7DQotLSAgc2l6ZV90IGFsbG9jID0gKGlubGVuZ3RoPyhzaXpl X3QpaW5sZW5ndGg6c3RybGVuKHN0cmluZykpKzE7DQotKyAgc2l6ZV90IGFsbG9jOw0KLSAgIGNo YXIgKm5zOw0KLSAgIGNoYXIgKnRlc3RpbmdfcHRyID0gTlVMTDsNCi0gICB1bnNpZ25lZCBjaGFy IGluOyAvKiB3ZSBuZWVkIHRvIHRyZWF0IHRoZSBjaGFyYWN0ZXJzIHVuc2lnbmVkICovDQotLSAg c2l6ZV90IG5ld2xlbiA9IGFsbG9jOw0KLSsgIHNpemVfdCBuZXdsZW47DQotICAgc2l6ZV90IHN0 cmluZGV4PTA7DQotICAgc2l6ZV90IGxlbmd0aDsNCi0gICBDVVJMY29kZSByZXN1bHQ7DQotIA0K LSsgIGlmKGlubGVuZ3RoIDwgMCkNCi0rICAgIHJldHVybiBOVUxMOw0KLSsNCi0rICBhbGxvYyA9 IChpbmxlbmd0aD8oc2l6ZV90KWlubGVuZ3RoOnN0cmxlbihzdHJpbmcpKSsxOw0KLSsgIG5ld2xl biA9IGFsbG9jOw0KLSsNCi0gICBucyA9IG1hbGxvYyhhbGxvYyk7DQotICAgaWYoIW5zKQ0KLSAg ICAgcmV0dXJuIE5VTEw7DQotQEAgLTIxMCwxNCArMjE2LDE2IEBAIGNoYXIgKmN1cmxfZWFzeV91 bmVzY2FwZShDVVJMICpoYW5kbGUsIGNvbnN0IGNoYXIgKnN0cmluZywgaW50IGxlbmd0aCwNCi0g ICAgICAgICAgICAgICAgICAgICAgICAgIGludCAqb2xlbikNCi0gew0KLSAgIGNoYXIgKnN0ciA9 IE5VTEw7DQotLSAgc2l6ZV90IGlucHV0bGVuID0gbGVuZ3RoOw0KLS0gIHNpemVfdCBvdXRwdXRs ZW47DQotLSAgQ1VSTGNvZGUgcmVzID0gQ3VybF91cmxkZWNvZGUoaGFuZGxlLCBzdHJpbmcsIGlu cHV0bGVuLCAmc3RyLCAmb3V0cHV0bGVuLA0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIEZBTFNFKTsNCi0tICBpZihyZXMpDQotLSAgICByZXR1cm4gTlVMTDsNCi0tICBpZihvbGVu KQ0KLS0gICAgKm9sZW4gPSBjdXJseF91enRvc2kob3V0cHV0bGVuKTsNCi0rICBpZihsZW5ndGgg Pj0gMCkgew0KLSsgICAgc2l6ZV90IGlucHV0bGVuID0gbGVuZ3RoOw0KLSsgICAgc2l6ZV90IG91 dHB1dGxlbjsNCi0rICAgIENVUkxjb2RlIHJlcyA9IEN1cmxfdXJsZGVjb2RlKGhhbmRsZSwgc3Ry aW5nLCBpbnB1dGxlbiwgJnN0ciwgJm91dHB1dGxlbiwNCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIEZBTFNFKTsNCi0rICAgIGlmKHJlcykNCi0rICAgICAgcmV0dXJuIE5VTEw7 DQotKyAgICBpZihvbGVuKQ0KLSsgICAgICAqb2xlbiA9IGN1cmx4X3V6dG9zaShvdXRwdXRsZW4p Ow0KLSsgIH0NCi0gICByZXR1cm4gc3RyOw0KLSB9DQotIA0KZGlmZiAtLWdpdCBhL21haW4vY3Vy bC9DVkUtMjAxNi04NjE1LnBhdGNoIGIvbWFpbi9jdXJsL0NWRS0yMDE2LTg2MTUucGF0Y2gNCmRl bGV0ZWQgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggZDFmZGEzNS4uMDAwMDAwMA0KLS0tIGEvbWFp bi9jdXJsL0NWRS0yMDE2LTg2MTUucGF0Y2gNCisrKyAvZGV2L251bGwNCkBAIC0xLDc1ICswLDAg QEANCi1Gcm9tIDE2MjBmNTUyYTI3N2VkNWIyM2E0OGI5YzI3ZGJmMDc2NjNjYWMwNjggTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxDQotRnJvbTogRGFuaWVsIFN0ZW5iZXJnIDxkYW5pZWxAaGF4eC5z ZT4NCi1EYXRlOiBUdWUsIDI3IFNlcCAyMDE2IDE3OjM2OjE5ICswMjAwDQotU3ViamVjdDogW1BB VENIXSBjb29raWU6IHJlcGxhY2UgdXNlIG9mIGZnZXRzKCkgd2l0aCBjdXN0b20gdmVyc2lvbg0K LQ0KLS4uLiB0aGF0IHdpbGwgaWdub3JlIGxpbmVzIHRoYXQgYXJlIHRvbyBsb25nIHRvIGZpdCBp biB0aGUgYnVmZmVyLg0KLQ0KLUNWRS0yMDE2LTg2MTUNCi0NCi1CdWc6IGh0dHBzOi8vY3VybC5o YXh4LnNlL2RvY3MvYWR2XzIwMTYxMTAyQS5odG1sDQotUmVwb3J0ZWQtYnk6IEN1cmU1Mw0KLS0t LQ0KLSBsaWIvY29va2llLmMgfCAzMSArKysrKysrKysrKysrKysrKysrKysrKysrKysrKystDQot IDEgZmlsZSBjaGFuZ2VkLCAzMCBpbnNlcnRpb25zKCspLCAxIGRlbGV0aW9uKC0pDQotDQotZGlm ZiAtLWdpdCBhL2xpYi9jb29raWUuYyBiL2xpYi9jb29raWUuYw0KLWluZGV4IDBmMDVkYTIuLmU1 MDk3ZDMgMTAwNjQ0DQotLS0tIGEvbGliL2Nvb2tpZS5jDQotKysrIGIvbGliL2Nvb2tpZS5jDQot QEAgLTkwMSwxMCArOTAxLDM5IEBAIEN1cmxfY29va2llX2FkZChzdHJ1Y3QgQ3VybF9lYXN5ICpk YXRhLA0KLSAgIH0NCi0gDQotICAgcmV0dXJuIGNvOw0KLSB9DQotIA0KLSsvKg0KLSsgKiBnZXRf bGluZSgpIG1ha2VzIHN1cmUgdG8gb25seSByZXR1cm4gY29tcGxldGUgd2hvbGUgbGluZXMgdGhh dCBmaXQgaW4gJ2xlbicNCi0rICogYnl0ZXMgYW5kIGVuZCB3aXRoIGEgbmV3bGluZS4NCi0rICov DQotK3N0YXRpYyBjaGFyICpnZXRfbGluZShjaGFyICpidWYsIGludCBsZW4sIEZJTEUgKmlucHV0 KQ0KLSt7DQotKyAgYm9vbCBwYXJ0aWFsID0gRkFMU0U7DQotKyAgd2hpbGUoMSkgew0KLSsgICAg Y2hhciAqYiA9IGZnZXRzKGJ1ZiwgbGVuLCBpbnB1dCk7DQotKyAgICBpZihiKSB7DQotKyAgICAg IHNpemVfdCBybGVuID0gc3RybGVuKGIpOw0KLSsgICAgICBpZihybGVuICYmIChiW3JsZW4tMV0g PT0gJ1xuJykpIHsNCi0rICAgICAgICBpZihwYXJ0aWFsKSB7DQotKyAgICAgICAgICBwYXJ0aWFs ID0gRkFMU0U7DQotKyAgICAgICAgICBjb250aW51ZTsNCi0rICAgICAgICB9DQotKyAgICAgICAg cmV0dXJuIGI7DQotKyAgICAgIH0NCi0rICAgICAgZWxzZQ0KLSsgICAgICAgIC8qIHJlYWQgYSBw YXJ0aWFsLCBkaXNjYXJkIHRoZSBuZXh0IHBpZWNlIHRoYXQgZW5kcyB3aXRoIG5ld2xpbmUgKi8N Ci0rICAgICAgICBwYXJ0aWFsID0gVFJVRTsNCi0rICAgIH0NCi0rICAgIGVsc2UNCi0rICAgICAg YnJlYWs7DQotKyAgfQ0KLSsgIHJldHVybiBOVUxMOw0KLSt9DQotKw0KLSsNCi0gLyoqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqDQotICAqDQotICAqIEN1cmxfY29va2llX2luaXQoKQ0KLSAgKg0KLSAgKiBJ bml0cyBhIGNvb2tpZSBzdHJ1Y3QgdG8gcmVhZCBkYXRhIGZyb20gYSBsb2NhbCBmaWxlLiBUaGlz IGlzIGFsd2F5cw0KLUBAIC05NTcsMTEgKzk4NiwxMSBAQCBzdHJ1Y3QgQ29va2llSW5mbyAqQ3Vy bF9jb29raWVfaW5pdChzdHJ1Y3QgQ3VybF9lYXN5ICpkYXRhLA0KLSAgICAgYm9vbCBoZWFkZXJs aW5lOw0KLSANCi0gICAgIGxpbmUgPSBtYWxsb2MoTUFYX0NPT0tJRV9MSU5FKTsNCi0gICAgIGlm KCFsaW5lKQ0KLSAgICAgICBnb3RvIGZhaWw7DQotLSAgICB3aGlsZShmZ2V0cyhsaW5lLCBNQVhf Q09PS0lFX0xJTkUsIGZwKSkgew0KLSsgICAgd2hpbGUoZ2V0X2xpbmUobGluZSwgTUFYX0NPT0tJ RV9MSU5FLCBmcCkpIHsNCi0gICAgICAgaWYoY2hlY2twcmVmaXgoIlNldC1Db29raWU6IiwgbGlu ZSkpIHsNCi0gICAgICAgICAvKiBUaGlzIGlzIGEgY29va2llIGxpbmUsIGdldCBpdCEgKi8NCi0g ICAgICAgICBsaW5lcHRyPSZsaW5lWzExXTsNCi0gICAgICAgICBoZWFkZXJsaW5lPVRSVUU7DQot ICAgICAgIH0NCi0tLSANCi0yLjkuMw0KLQ0KZGlmZiAtLWdpdCBhL21haW4vY3VybC9DVkUtMjAx Ni04NjE2LnBhdGNoIGIvbWFpbi9jdXJsL0NWRS0yMDE2LTg2MTYucGF0Y2gNCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NA0KaW5kZXggNjczMDliZi4uMDAwMDAwMA0KLS0tIGEvbWFpbi9jdXJsL0NW RS0yMDE2LTg2MTYucGF0Y2gNCisrKyAvZGV2L251bGwNCkBAIC0xLDY2ICswLDAgQEANCi1Gcm9t IGNlZjUxMGJlYjIyMmFiNTc1MGFmY2FjMmM3NGZjYmNkYzMxYWRhNjQgTW9uIFNlcCAxNyAwMDow MDowMCAyMDAxDQotRnJvbTogRGFuaWVsIFN0ZW5iZXJnIDxkYW5pZWxAaGF4eC5zZT4NCi1EYXRl OiBUdWUsIDI3IFNlcCAyMDE2IDE4OjAxOjUzICswMjAwDQotU3ViamVjdDogW1BBVENIXSBjb25u ZWN0aW9uZXhpc3RzOiB1c2UgY2FzZSBzZW5zaXRpdmUgdXNlci9wYXNzd29yZA0KLSBjb21wYXJp c29ucw0KLQ0KLUNWRS0yMDE2LTg2MTYNCi0NCi1CdWc6IGh0dHBzOi8vY3VybC5oYXh4LnNlL2Rv Y3MvYWR2XzIwMTYxMTAyQi5odG1sDQotUmVwb3J0ZWQtYnk6IEN1cmU1Mw0KLS0tLQ0KLSBsaWIv dXJsLmMgfCAxMiArKysrKystLS0tLS0NCi0gMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygr KSwgNiBkZWxldGlvbnMoLSkNCi0NCi1kaWZmIC0tZ2l0IGEvbGliL3VybC5jIGIvbGliL3VybC5j DQotaW5kZXggOTFiMmJmOC4uY2QzMzM1YyAxMDA2NDQNCi0tLS0gYS9saWIvdXJsLmMNCi0rKysg Yi9saWIvdXJsLmMNCi1AQCAtMzQwMSwxMiArMzQwMSwxMiBAQCBDb25uZWN0aW9uRXhpc3RzKHN0 cnVjdCBDdXJsX2Vhc3kgKmRhdGEsDQotICAgICAgIH0NCi0gDQotICAgICAgIGlmKCEobmVlZGxl LT5oYW5kbGVyLT5mbGFncyAmIFBST1RPUFRfQ1JFRFNQRVJSRVFVRVNUKSkgew0KLSAgICAgICAg IC8qIFRoaXMgcHJvdG9jb2wgcmVxdWlyZXMgY3JlZGVudGlhbHMgcGVyIGNvbm5lY3Rpb24sDQot ICAgICAgICAgICAgc28gdmVyaWZ5IHRoYXQgd2UncmUgdXNpbmcgdGhlIHNhbWUgbmFtZSBhbmQg cGFzc3dvcmQgYXMgd2VsbCAqLw0KLS0gICAgICAgIGlmKCFzdHJlcXVhbChuZWVkbGUtPnVzZXIs IGNoZWNrLT51c2VyKSB8fA0KLS0gICAgICAgICAgICFzdHJlcXVhbChuZWVkbGUtPnBhc3N3ZCwg Y2hlY2stPnBhc3N3ZCkpIHsNCi0rICAgICAgICBpZihzdHJjbXAobmVlZGxlLT51c2VyLCBjaGVj ay0+dXNlcikgfHwNCi0rICAgICAgICAgICBzdHJjbXAobmVlZGxlLT5wYXNzd2QsIGNoZWNrLT5w YXNzd2QpKSB7DQotICAgICAgICAgICAvKiBvbmUgb2YgdGhlbSB3YXMgZGlmZmVyZW50ICovDQot ICAgICAgICAgICBjb250aW51ZTsNCi0gICAgICAgICB9DQotICAgICAgIH0NCi0gDQotQEAgLTM0 NjIsMTIgKzM0NjIsMTIgQEAgQ29ubmVjdGlvbkV4aXN0cyhzdHJ1Y3QgQ3VybF9lYXN5ICpkYXRh LA0KLSAgICAgICAgICAgIGFscmVhZHkgYXV0aGVudGljYXRpbmcgd2l0aCB0aGUgcmlnaHQgY3Jl ZGVudGlhbHMuIElmIG5vdCwga2VlcA0KLSAgICAgICAgICAgIGxvb2tpbmcgc28gdGhhdCB3ZSBj YW4gcmV1c2UgTlRMTSBjb25uZWN0aW9ucyBpZg0KLSAgICAgICAgICAgIHBvc3NpYmxlLiAoRXNw ZWNpYWxseSB3ZSBtdXN0IG5vdCByZXVzZSB0aGUgc2FtZSBjb25uZWN0aW9uIGlmDQotICAgICAg ICAgICAgcGFydHdheSB0aHJvdWdoIGEgaGFuZHNoYWtlISkgKi8NCi0gICAgICAgICBpZih3YW50 TlRMTWh0dHApIHsNCi0tICAgICAgICAgIGlmKCFzdHJlcXVhbChuZWVkbGUtPnVzZXIsIGNoZWNr LT51c2VyKSB8fA0KLS0gICAgICAgICAgICAgIXN0cmVxdWFsKG5lZWRsZS0+cGFzc3dkLCBjaGVj ay0+cGFzc3dkKSkNCi0rICAgICAgICAgIGlmKHN0cmNtcChuZWVkbGUtPnVzZXIsIGNoZWNrLT51 c2VyKSB8fA0KLSsgICAgICAgICAgICAgc3RyY21wKG5lZWRsZS0+cGFzc3dkLCBjaGVjay0+cGFz c3dkKSkNCi0gICAgICAgICAgICAgY29udGludWU7DQotICAgICAgICAgfQ0KLSAgICAgICAgIGVs c2UgaWYoY2hlY2stPm50bG0uc3RhdGUgIT0gTlRMTVNUQVRFX05PTkUpIHsNCi0gICAgICAgICAg IC8qIENvbm5lY3Rpb24gaXMgdXNpbmcgTlRMTSBhdXRoIGJ1dCB3ZSBkb24ndCB3YW50IE5UTE0g Ki8NCi0gICAgICAgICAgIGNvbnRpbnVlOw0KLUBAIC0zNDc3LDEyICszNDc3LDEyIEBAIENvbm5l Y3Rpb25FeGlzdHMoc3RydWN0IEN1cmxfZWFzeSAqZGF0YSwNCi0gICAgICAgICBpZih3YW50UHJv eHlOVExNaHR0cCkgew0KLSAgICAgICAgICAgLyogQm90aCBjaGVjay0+cHJveHl1c2VyIGFuZCBj aGVjay0+cHJveHlwYXNzd2QgY2FuIGJlIE5VTEwgKi8NCi0gICAgICAgICAgIGlmKCFjaGVjay0+ cHJveHl1c2VyIHx8ICFjaGVjay0+cHJveHlwYXNzd2QpDQotICAgICAgICAgICAgIGNvbnRpbnVl Ow0KLSANCi0tICAgICAgICAgIGlmKCFzdHJlcXVhbChuZWVkbGUtPnByb3h5dXNlciwgY2hlY2st PnByb3h5dXNlcikgfHwNCi0tICAgICAgICAgICAgICFzdHJlcXVhbChuZWVkbGUtPnByb3h5cGFz c3dkLCBjaGVjay0+cHJveHlwYXNzd2QpKQ0KLSsgICAgICAgICAgaWYoc3RyY21wKG5lZWRsZS0+ cHJveHl1c2VyLCBjaGVjay0+cHJveHl1c2VyKSB8fA0KLSsgICAgICAgICAgICAgc3RyY21wKG5l ZWRsZS0+cHJveHlwYXNzd2QsIGNoZWNrLT5wcm94eXBhc3N3ZCkpDQotICAgICAgICAgICAgIGNv bnRpbnVlOw0KLSAgICAgICAgIH0NCi0gICAgICAgICBlbHNlIGlmKGNoZWNrLT5wcm94eW50bG0u c3RhdGUgIT0gTlRMTVNUQVRFX05PTkUpIHsNCi0gICAgICAgICAgIC8qIFByb3h5IGNvbm5lY3Rp b24gaXMgdXNpbmcgTlRMTSBhdXRoIGJ1dCB3ZSBkb24ndCB3YW50IE5UTE0gKi8NCi0gICAgICAg ICAgIGNvbnRpbnVlOw0KLS0tIA0KLTIuOS4zDQotDQpkaWZmIC0tZ2l0IGEvbWFpbi9jdXJsL0NW RS0yMDE2LTg2MTcucGF0Y2ggYi9tYWluL2N1cmwvQ1ZFLTIwMTYtODYxNy5wYXRjaA0KZGVsZXRl ZCBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCA2NmM3ZjlhLi4wMDAwMDAwDQotLS0gYS9tYWluL2N1 cmwvQ1ZFLTIwMTYtODYxNy5wYXRjaA0KKysrIC9kZXYvbnVsbA0KQEAgLTEsMzYgKzAsMCBAQA0K LUZyb20gMzU5OTM0MWRkNjExMzAzZWU5NTQ0ODM5ZDMwZjYwM2Y2MDZkMTA4MiBNb24gU2VwIDE3 IDAwOjAwOjAwIDIwMDENCi1Gcm9tOiBEYW5pZWwgU3RlbmJlcmcgPGRhbmllbEBoYXh4LnNlPg0K LURhdGU6IFdlZCwgMjggU2VwIDIwMTYgMDA6MDU6MTIgKzAyMDANCi1TdWJqZWN0OiBbUEFUQ0hd IGJhc2U2NDogY2hlY2sgZm9yIGludGVnZXIgb3ZlcmZsb3cgb24gbGFyZ2UgaW5wdXQNCi0NCi1D VkUtMjAxNi04NjE3DQotDQotQnVnOiBodHRwczovL2N1cmwuaGF4eC5zZS9kb2NzL2Fkdl8yMDE2 MTEwMkMuaHRtbA0KLVJlcG9ydGVkLWJ5OiBDdXJlNTMNCi0tLS0NCi0gbGliL2Jhc2U2NC5jIHwg NSArKysrKw0KLSAxIGZpbGUgY2hhbmdlZCwgNSBpbnNlcnRpb25zKCspDQotDQotZGlmZiAtLWdp dCBhL2xpYi9iYXNlNjQuYyBiL2xpYi9iYXNlNjQuYw0KLWluZGV4IGFkMjU0NTkuLjIwNGEyMjcg MTAwNjQ0DQotLS0tIGEvbGliL2Jhc2U2NC5jDQotKysrIGIvbGliL2Jhc2U2NC5jDQotQEAgLTE4 OCwxMCArMTg4LDE1IEBAIHN0YXRpYyBDVVJMY29kZSBiYXNlNjRfZW5jb2RlKGNvbnN0IGNoYXIg KnRhYmxlNjQsDQotICAgKm91dGxlbiA9IDA7DQotIA0KLSAgIGlmKCFpbnNpemUpDQotICAgICBp bnNpemUgPSBzdHJsZW4oaW5kYXRhKTsNCi0gDQotKyNpZiBTSVpFT0ZfU0laRV9UID09IDQNCi0r ICBpZihpbnNpemUgPiBVSU5UX01BWC80KQ0KLSsgICAgcmV0dXJuIENVUkxFX09VVF9PRl9NRU1P Ulk7DQotKyNlbmRpZg0KLSsNCi0gICBiYXNlNjRkYXRhID0gb3V0cHV0ID0gbWFsbG9jKGluc2l6 ZSAqIDQgLyAzICsgNCk7DQotICAgaWYoIW91dHB1dCkNCi0gICAgIHJldHVybiBDVVJMRV9PVVRf T0ZfTUVNT1JZOw0KLSANCi0gICAvKg0KLS0tIA0KLTIuOS4zDQotDQpkaWZmIC0tZ2l0IGEvbWFp bi9jdXJsL0NWRS0yMDE2LTg2MTgucGF0Y2ggYi9tYWluL2N1cmwvQ1ZFLTIwMTYtODYxOC5wYXRj aA0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCA2ZDRlYWFmLi4wMDAwMDAwDQotLS0g YS9tYWluL2N1cmwvQ1ZFLTIwMTYtODYxOC5wYXRjaA0KKysrIC9kZXYvbnVsbA0KQEAgLTEsNTAg KzAsMCBAQA0KLUZyb20gMzExMDZhMDczODgyNjU2YTJhNWFiNTZjNGNlMjg0N2U5YTMzNGMzYyBN b24gU2VwIDE3IDAwOjAwOjAwIDIwMDENCi1Gcm9tOiBEYW5pZWwgU3RlbmJlcmcgPGRhbmllbEBo YXh4LnNlPg0KLURhdGU6IFdlZCwgMjggU2VwIDIwMTYgMTA6MTU6MzQgKzAyMDANCi1TdWJqZWN0 OiBbUEFUQ0hdIGFwcmludGY6IGRldGVjdCB3cmFwLWFyb3VuZCB3aGVuIGdyb3dpbmcgYWxsb2Nh dGlvbg0KLQ0KLU9uIDMyYml0IHN5c3RlbXMgd2UgY291bGQgb3RoZXJ3aXNlIHdyYXAgYXJvdW5k IGFmdGVyIDJHQiBhbmQgYWxsb2NhdGUgMA0KLWJ5dGVzIGFuZCBjcmFzaC4NCi0NCi1DVkUtMjAx Ni04NjE4DQotDQotQnVnOiBodHRwczovL2N1cmwuaGF4eC5zZS9kb2NzL2Fkdl8yMDE2MTEwMkQu aHRtbA0KLVJlcG9ydGVkLWJ5OiBDdXJlNTMNCi0tLS0NCi0gbGliL21wcmludGYuYyB8IDkgKysr KysrLS0tDQotIDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDMgZGVsZXRpb25zKC0p DQotDQotZGlmZiAtLWdpdCBhL2xpYi9tcHJpbnRmLmMgYi9saWIvbXByaW50Zi5jDQotaW5kZXgg ZGJlZGVhYS4uMmM4OGFhOCAxMDA2NDQNCi0tLS0gYS9saWIvbXByaW50Zi5jDQotKysrIGIvbGli L21wcmludGYuYw0KLUBAIC0xMDM0LDIwICsxMDM0LDIzIEBAIHN0YXRpYyBpbnQgYWxsb2NfYWRk Ynl0ZXIoaW50IG91dHB1dCwgRklMRSAqZGF0YSkNCi0gICAgIH0NCi0gICAgIGluZm9wLT5hbGxv YyA9IDMyOw0KLSAgICAgaW5mb3AtPmxlbiA9MDsNCi0gICB9DQotICAgZWxzZSBpZihpbmZvcC0+ bGVuKzEgPj0gaW5mb3AtPmFsbG9jKSB7DQotLSAgICBjaGFyICpuZXdwdHI7DQotKyAgICBjaGFy ICpuZXdwdHIgPSBOVUxMOw0KLSsgICAgc2l6ZV90IG5ld3NpemUgPSBpbmZvcC0+YWxsb2MqMjsN Ci0gDQotLSAgICBuZXdwdHIgPSByZWFsbG9jKGluZm9wLT5idWZmZXIsIGluZm9wLT5hbGxvYyoy KTsNCi0rICAgIC8qIGRldGVjdCB3cmFwLWFyb3VuZCBvciBvdGhlciBvdmVyZmxvdyBwcm9ibGVt cyAqLw0KLSsgICAgaWYobmV3c2l6ZSA+IGluZm9wLT5hbGxvYykNCi0rICAgICAgbmV3cHRyID0g cmVhbGxvYyhpbmZvcC0+YnVmZmVyLCBuZXdzaXplKTsNCi0gDQotICAgICBpZighbmV3cHRyKSB7 DQotICAgICAgIGluZm9wLT5mYWlsID0gMTsNCi0gICAgICAgcmV0dXJuIC0xOyAvKiBmYWlsICov DQotICAgICB9DQotICAgICBpbmZvcC0+YnVmZmVyID0gbmV3cHRyOw0KLS0gICAgaW5mb3AtPmFs bG9jICo9IDI7DQotKyAgICBpbmZvcC0+YWxsb2MgPSBuZXdzaXplOw0KLSAgIH0NCi0gDQotICAg aW5mb3AtPmJ1ZmZlclsgaW5mb3AtPmxlbiBdID0gb3V0YzsNCi0gDQotICAgaW5mb3AtPmxlbisr Ow0KLS0tIA0KLTIuOS4zDQotDQpkaWZmIC0tZ2l0IGEvbWFpbi9jdXJsL0NWRS0yMDE2LTg2MTku cGF0Y2ggYi9tYWluL2N1cmwvQ1ZFLTIwMTYtODYxOS5wYXRjaA0KZGVsZXRlZCBmaWxlIG1vZGUg MTAwNjQ0DQppbmRleCA4NDcwYjM1Li4wMDAwMDAwDQotLS0gYS9tYWluL2N1cmwvQ1ZFLTIwMTYt ODYxOS5wYXRjaA0KKysrIC9kZXYvbnVsbA0KQEAgLTEsNTAgKzAsMCBAQA0KLUZyb20gOTEyMzlm NzA0MGIxZjAyNmQ0ZDE1NzY1ZTdlM2Y1OGU5MmU5Mzc2MSBNb24gU2VwIDE3IDAwOjAwOjAwIDIw MDENCi1Gcm9tOiBEYW5pZWwgU3RlbmJlcmcgPGRhbmllbEBoYXh4LnNlPg0KLURhdGU6IFdlZCwg MjggU2VwIDIwMTYgMTI6NTY6MDIgKzAyMDANCi1TdWJqZWN0OiBbUEFUQ0hdIGtyYjU6IGF2b2lk IHJlYWxsb2MoMCkNCi0NCi1JZiB0aGUgcmVxdWVzdGVkIHNpemUgaXMgemVybywgYmFpbCBvdXQg d2l0aCBlcnJvciBpbnN0ZWFkIG9mIGRvaW5nIGENCi1yZWFsbG9jKCkgdGhhdCB3b3VsZCBjYXVz ZSBhIGRvdWJsZS1mcmVlOiByZWFsbG9jKDApIGFjdHMgYXMgYSBmcmVlKCkNCi1hbmQgdGhlbiB0 aGVyZSdzIGEgc2Vjb25kIGZyZWUgaW4gdGhlIGNsZWFudXAgcGF0aC4NCi0NCi1DVkUtMjAxNi04 NjE5DQotDQotQnVnOiBodHRwczovL2N1cmwuaGF4eC5zZS9kb2NzL2Fkdl8yMDE2MTEwMkUuaHRt bA0KLVJlcG9ydGVkLWJ5OiBDdXJlNTMNCi0tLS0NCi0gbGliL3NlY3VyaXR5LmMgfCA5ICsrKysr Ky0tLQ0KLSAxIGZpbGUgY2hhbmdlZCwgNiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQ0K LQ0KLWRpZmYgLS1naXQgYS9saWIvc2VjdXJpdHkuYyBiL2xpYi9zZWN1cml0eS5jDQotaW5kZXgg YTI2OGQ0YS4uNGNlZjhmOCAxMDA2NDQNCi0tLS0gYS9saWIvc2VjdXJpdHkuYw0KLSsrKyBiL2xp Yi9zZWN1cml0eS5jDQotQEAgLTE5MCwxOSArMTkwLDIyIEBAIHNvY2tldF93cml0ZShzdHJ1Y3Qg Y29ubmVjdGRhdGEgKmNvbm4sIGN1cmxfc29ja2V0X3QgZmQsIGNvbnN0IHZvaWQgKnRvLA0KLSBz dGF0aWMgQ1VSTGNvZGUgcmVhZF9kYXRhKHN0cnVjdCBjb25uZWN0ZGF0YSAqY29ubiwNCi0gICAg ICAgICAgICAgICAgICAgICAgICAgICBjdXJsX3NvY2tldF90IGZkLA0KLSAgICAgICAgICAgICAg ICAgICAgICAgICAgIHN0cnVjdCBrcmI1YnVmZmVyICpidWYpDQotIHsNCi0gICBpbnQgbGVuOw0K LS0gIHZvaWQqIHRtcDsNCi0rICB2b2lkICp0bXAgPSBOVUxMOw0KLSAgIENVUkxjb2RlIHJlc3Vs dDsNCi0gDQotICAgcmVzdWx0ID0gc29ja2V0X3JlYWQoZmQsICZsZW4sIHNpemVvZihsZW4pKTsN Ci0gICBpZihyZXN1bHQpDQotICAgICByZXR1cm4gcmVzdWx0Ow0KLSANCi0tICBsZW4gPSBudG9o bChsZW4pOw0KLS0gIHRtcCA9IHJlYWxsb2MoYnVmLT5kYXRhLCBsZW4pOw0KLSsgIGlmKGxlbikg ew0KLSsgICAgLyogb25seSByZWFsbG9jIGlmIHRoZXJlIHdhcyBhIGxlbmd0aCAqLw0KLSsgICAg bGVuID0gbnRvaGwobGVuKTsNCi0rICAgIHRtcCA9IHJlYWxsb2MoYnVmLT5kYXRhLCBsZW4pOw0K LSsgIH0NCi0gICBpZih0bXAgPT0gTlVMTCkNCi0gICAgIHJldHVybiBDVVJMRV9PVVRfT0ZfTUVN T1JZOw0KLSANCi0gICBidWYtPmRhdGEgPSB0bXA7DQotICAgcmVzdWx0ID0gc29ja2V0X3JlYWQo ZmQsIGJ1Zi0+ZGF0YSwgbGVuKTsNCi0tLSANCi0yLjkuMw0KLQ0KZGlmZiAtLWdpdCBhL21haW4v Y3VybC9DVkUtMjAxNi04NjIwLnBhdGNoIGIvbWFpbi9jdXJsL0NWRS0yMDE2LTg2MjAucGF0Y2gN CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggYzhjMmNkMS4uMDAwMDAwMA0KLS0tIGEv bWFpbi9jdXJsL0NWRS0yMDE2LTg2MjAucGF0Y2gNCisrKyAvZGV2L251bGwNCkBAIC0xLDIwNSAr MCwwIEBADQotRnJvbSA1MmYzZTFkMTA5MmM4MWE0ZjU3NGM5ZmM2Y2IzODE4Yjg4NDM0YzhkIE1v biBTZXAgMTcgMDA6MDA6MDAgMjAwMQ0KLUZyb206IERhbmllbCBTdGVuYmVyZyA8ZGFuaWVsQGhh eHguc2U+DQotRGF0ZTogTW9uLCAzIE9jdCAyMDE2IDE3OjI3OjE2ICswMjAwDQotU3ViamVjdDog W1BBVENIIDEvM10gcmFuZ2U6IHByZXZlbnQgbmVnYXRpdmUgZW5kIG51bWJlciBpbiBhIGdsb2Ig cmFuZ2UNCi1NSU1FLVZlcnNpb246IDEuMA0KLUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hh cnNldD1VVEYtOA0KLUNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQNCi0NCi1DVkUtMjAx Ni04NjIwDQotDQotQnVnOiBodHRwczovL2N1cmwuaGF4eC5zZS9kb2NzL2Fkdl8yMDE2MTEwMkYu aHRtbA0KLVJlcG9ydGVkLWJ5OiBMdeG6rXQgTmd1eeG7hW4NCi0tLS0NCi0gc3JjL3Rvb2xfdXJs Z2xvYi5jIHwgNyArKysrKysrDQotIDEgZmlsZSBjaGFuZ2VkLCA3IGluc2VydGlvbnMoKykNCi0N Ci1kaWZmIC0tZ2l0IGEvc3JjL3Rvb2xfdXJsZ2xvYi5jIGIvc3JjL3Rvb2xfdXJsZ2xvYi5jDQot aW5kZXggYTM1N2I4Yi4uNjRjNzViYSAxMDA2NDQNCi0tLS0gYS9zcmMvdG9vbF91cmxnbG9iLmMN Ci0rKysgYi9zcmMvdG9vbF91cmxnbG9iLmMNCi1AQCAtMjU1LDEwICsyNTUsMTYgQEAgc3RhdGlj IENVUkxjb2RlIGdsb2JfcmFuZ2UoVVJMR2xvYiAqZ2xvYiwgY2hhciAqKnBhdHRlcm5wLA0KLSAg ICAgZWxzZSB7DQotICAgICAgIGlmKCplbmRwICE9ICctJykNCi0gICAgICAgICBlbmRwID0gTlVM TDsNCi0gICAgICAgZWxzZSB7DQotICAgICAgICAgcGF0dGVybiA9IGVuZHArMTsNCi0rICAgICAg ICB3aGlsZSgqcGF0dGVybiAmJiBJU0JMQU5LKCpwYXR0ZXJuKSkNCi0rICAgICAgICAgIHBhdHRl cm4rKzsNCi0rICAgICAgICBpZighSVNESUdJVCgqcGF0dGVybikpIHsNCi0rICAgICAgICAgIGVu ZHAgPSBOVUxMOw0KLSsgICAgICAgICAgZ290byBmYWlsOw0KLSsgICAgICAgIH0NCi0gICAgICAg ICBlcnJubyA9IDA7DQotICAgICAgICAgbWF4X24gPSBzdHJ0b3VsKHBhdHRlcm4sICZlbmRwLCAx MCk7DQotICAgICAgICAgaWYoZXJybm8gfHwgKCplbmRwID09ICc6JykpIHsNCi0gICAgICAgICAg IHBhdHRlcm4gPSBlbmRwKzE7DQotICAgICAgICAgICBlcnJubyA9IDA7DQotQEAgLTI3NSwxMCAr MjgxLDExIEBAIHN0YXRpYyBDVVJMY29kZSBnbG9iX3JhbmdlKFVSTEdsb2IgKmdsb2IsIGNoYXIg KipwYXR0ZXJucCwNCi0gICAgICAgICBlbHNlDQotICAgICAgICAgICBlbmRwID0gTlVMTDsNCi0g ICAgICAgfQ0KLSAgICAgfQ0KLSANCi0rICAgIGZhaWw6DQotICAgICAqcG9zcCArPSAocGF0dGVy biAtICpwYXR0ZXJucCk7DQotIA0KLSAgICAgaWYoIWVuZHAgfHwgKG1pbl9uID4gbWF4X24pIHx8 IChzdGVwX24gPiAobWF4X24gLSBtaW5fbikpIHx8ICFzdGVwX24pDQotICAgICAgIC8qIHRoZSBw YXR0ZXJuIGlzIG5vdCB3ZWxsLWZvcm1lZCAqLw0KLSAgICAgICByZXR1cm4gR0xPQkVSUk9SKCJi YWQgcmFuZ2UiLCAqcG9zcCwgQ1VSTEVfVVJMX01BTEZPUk1BVCk7DQotLS0gDQotMi45LjMNCi0N Ci0NCi1Gcm9tIGU5N2ViZTk3YzJiNTNkMzYxN2MxZjQwODJhMmFhYTRmMWI1OTNlZjkgTW9uIFNl cCAxNyAwMDowMDowMCAyMDAxDQotRnJvbTogRGFuaWVsIFN0ZW5iZXJnIDxkYW5pZWxAaGF4eC5z ZT4NCi1EYXRlOiBNb24sIDMgT2N0IDIwMTYgMTg6MjM6MjIgKzAyMDANCi1TdWJqZWN0OiBbUEFU Q0ggMi8zXSBnbG9iX25leHRfdXJsOiBtYWtlIHN1cmUgdG8gc3RheSB3aXRoaW4gdGhlIGdpdmVu IG91dHB1dA0KLSBidWZmZXINCi0NCi0tLS0NCi0gc3JjL3Rvb2xfdXJsZ2xvYi5jIHwgMTcgKysr KysrKysrKystLS0tLS0NCi0gMSBmaWxlIGNoYW5nZWQsIDExIGluc2VydGlvbnMoKyksIDYgZGVs ZXRpb25zKC0pDQotDQotZGlmZiAtLWdpdCBhL3NyYy90b29sX3VybGdsb2IuYyBiL3NyYy90b29s X3VybGdsb2IuYw0KLWluZGV4IDY0Yzc1YmEuLmM0NWE3OGIgMTAwNjQ0DQotLS0tIGEvc3JjL3Rv b2xfdXJsZ2xvYi5jDQotKysrIGIvc3JjL3Rvb2xfdXJsZ2xvYi5jDQotQEAgLTQyOSwxMCArNDI5 LDExIEBAIENVUkxjb2RlIGdsb2JfdXJsKFVSTEdsb2IqKiBnbG9iLCBjaGFyKiB1cmwsIHVuc2ln bmVkIGxvbmcgKnVybG51bSwNCi0gICAqZ2xvYiA9IE5VTEw7DQotIA0KLSAgIGdsb2JfYnVmZmVy ID0gbWFsbG9jKHN0cmxlbih1cmwpICsgMSk7DQotICAgaWYoIWdsb2JfYnVmZmVyKQ0KLSAgICAg cmV0dXJuIENVUkxFX09VVF9PRl9NRU1PUlk7DQotKyAgZ2xvYl9idWZmZXJbMF09MDsNCi0gDQot ICAgZ2xvYl9leHBhbmQgPSBjYWxsb2MoMSwgc2l6ZW9mKFVSTEdsb2IpKTsNCi0gICBpZighZ2xv Yl9leHBhbmQpIHsNCi0gICAgIEN1cmxfc2FmZWZyZWUoZ2xvYl9idWZmZXIpOw0KLSAgICAgcmV0 dXJuIENVUkxFX09VVF9PRl9NRU1PUlk7DQotQEAgLTU0NiwzMyArNTQ3LDM3IEBAIENVUkxjb2Rl IGdsb2JfbmV4dF91cmwoY2hhciAqKmdsb2JiZWQsIFVSTEdsb2IgKmdsb2IpDQotICAgZm9yKGkg PSAwOyBpIDwgZ2xvYi0+c2l6ZTsgKytpKSB7DQotICAgICBwYXQgPSAmZ2xvYi0+cGF0dGVybltp XTsNCi0gICAgIHN3aXRjaChwYXQtPnR5cGUpIHsNCi0gICAgIGNhc2UgVVBUU2V0Og0KLSAgICAg ICBpZihwYXQtPmNvbnRlbnQuU2V0LmVsZW1lbnRzKSB7DQotLSAgICAgICAgbGVuID0gc3RybGVu KHBhdC0+Y29udGVudC5TZXQuZWxlbWVudHNbcGF0LT5jb250ZW50LlNldC5wdHJfc10pOw0KLSAg ICAgICAgIHNucHJpbnRmKGJ1ZiwgYnVmbGVuLCAiJXMiLA0KLSAgICAgICAgICAgICAgICAgIHBh dC0+Y29udGVudC5TZXQuZWxlbWVudHNbcGF0LT5jb250ZW50LlNldC5wdHJfc10pOw0KLSsgICAg ICAgIGxlbiA9IHN0cmxlbihidWYpOw0KLSAgICAgICAgIGJ1ZiArPSBsZW47DQotICAgICAgICAg YnVmbGVuIC09IGxlbjsNCi0gICAgICAgfQ0KLSAgICAgICBicmVhazsNCi0gICAgIGNhc2UgVVBU Q2hhclJhbmdlOg0KLS0gICAgICAqYnVmKysgPSBwYXQtPmNvbnRlbnQuQ2hhclJhbmdlLnB0cl9j Ow0KLSsgICAgICBpZihidWZsZW4pIHsNCi0rICAgICAgICAqYnVmKysgPSBwYXQtPmNvbnRlbnQu Q2hhclJhbmdlLnB0cl9jOw0KLSsgICAgICAgICpidWYgPSAnXDAnOw0KLSsgICAgICAgIGJ1Zmxl bi0tOw0KLSsgICAgICB9DQotICAgICAgIGJyZWFrOw0KLSAgICAgY2FzZSBVUFROdW1SYW5nZToN Ci0tICAgICAgbGVuID0gc25wcmludGYoYnVmLCBidWZsZW4sICIlMCpsZCIsDQotLSAgICAgICAg ICAgICAgICAgICAgIHBhdC0+Y29udGVudC5OdW1SYW5nZS5wYWRsZW5ndGgsDQotLSAgICAgICAg ICAgICAgICAgICAgIHBhdC0+Y29udGVudC5OdW1SYW5nZS5wdHJfbik7DQotKyAgICAgIHNucHJp bnRmKGJ1ZiwgYnVmbGVuLCAiJTAqbGQiLA0KLSsgICAgICAgICAgICAgICBwYXQtPmNvbnRlbnQu TnVtUmFuZ2UucGFkbGVuZ3RoLA0KLSsgICAgICAgICAgICAgICBwYXQtPmNvbnRlbnQuTnVtUmFu Z2UucHRyX24pOw0KLSsgICAgICBsZW4gPSBzdHJsZW4oYnVmKTsNCi0gICAgICAgYnVmICs9IGxl bjsNCi0gICAgICAgYnVmbGVuIC09IGxlbjsNCi0gICAgICAgYnJlYWs7DQotICAgICBkZWZhdWx0 Og0KLSAgICAgICBwcmludGYoImludGVybmFsIGVycm9yOiBpbnZhbGlkIHBhdHRlcm4gdHlwZSAo JWQpXG4iLCAoaW50KXBhdC0+dHlwZSk7DQotICAgICAgIHJldHVybiBDVVJMRV9GQUlMRURfSU5J VDsNCi0gICAgIH0NCi0gICB9DQotLSAgKmJ1ZiA9ICdcMCc7DQotIA0KLSAgICpnbG9iYmVkID0g c3RyZHVwKGdsb2ItPmdsb2JfYnVmZmVyKTsNCi0gICBpZighKmdsb2JiZWQpDQotICAgICByZXR1 cm4gQ1VSTEVfT1VUX09GX01FTU9SWTsNCi0gDQotLS0gDQotMi45LjMNCi0NCi0NCi1Gcm9tIDlj ZTM3NzA1MTI5MGM4MzE3NmYyMzViNTI2Yjg3OTA0Y2FkNmIzODggTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxDQotRnJvbTogRGFuaWVsIFN0ZW5iZXJnIDxkYW5pZWxAaGF4eC5zZT4NCi1EYXRlOiBU dWUsIDQgT2N0IDIwMTYgMTc6MjU6MDkgKzAyMDANCi1TdWJqZWN0OiBbUEFUQ0ggMy8zXSByYW5n ZTogcmVqZWN0IGNoYXIgZ2xvYnMgd2l0aCBtaXNzaW5nIGVuZCBsaWtlICdbTC1dJw0KLU1JTUUt VmVyc2lvbjogMS4wDQotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04DQot Q29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogOGJpdA0KLQ0KLS4uLiB3aGljaCBwcmV2aW91c2x5 IHdvdWxkIGxlYWQgdG8gb3V0IG9mIGJvdW5kYXJ5IHJlYWRzLg0KLQ0KLVJlcG9ydGVkLWJ5OiBM deG6rXQgTmd1eeG7hW4NCi0tLS0NCi0gc3JjL3Rvb2xfdXJsZ2xvYi5jIHwgMzQgKysrKysrKysr KysrKysrKysrKy0tLS0tLS0tLS0tLS0tLQ0KLSAxIGZpbGUgY2hhbmdlZCwgMTkgaW5zZXJ0aW9u cygrKSwgMTUgZGVsZXRpb25zKC0pDQotDQotZGlmZiAtLWdpdCBhL3NyYy90b29sX3VybGdsb2Iu YyBiL3NyYy90b29sX3VybGdsb2IuYw0KLWluZGV4IGM0NWE3OGIuLjA5ZDIxYjYgMTAwNjQ0DQot LS0tIGEvc3JjL3Rvb2xfdXJsZ2xvYi5jDQotKysrIGIvc3JjL3Rvb2xfdXJsZ2xvYi5jDQotQEAg LTE4NiwzNiArMTg2LDQwIEBAIHN0YXRpYyBDVVJMY29kZSBnbG9iX3JhbmdlKFVSTEdsb2IgKmds b2IsIGNoYXIgKipwYXR0ZXJucCwNCi0gDQotICAgaWYoSVNBTFBIQSgqcGF0dGVybikpIHsNCi0g ICAgIC8qIGNoYXJhY3RlciByYW5nZSBkZXRlY3RlZCAqLw0KLSAgICAgY2hhciBtaW5fYzsNCi0g ICAgIGNoYXIgbWF4X2M7DQotKyAgICBjaGFyIGVuZF9jOw0KLSAgICAgaW50IHN0ZXA9MTsNCi0g DQotICAgICBwYXQtPnR5cGUgPSBVUFRDaGFyUmFuZ2U7DQotIA0KLS0gICAgcmMgPSBzc2NhbmYo cGF0dGVybiwgIiVjLSVjIiwgJm1pbl9jLCAmbWF4X2MpOw0KLSsgICAgcmMgPSBzc2NhbmYocGF0 dGVybiwgIiVjLSVjJWMiLCAmbWluX2MsICZtYXhfYywgJmVuZF9jKTsNCi0gDQotLSAgICBpZigo cmMgPT0gMikgJiYgKHBhdHRlcm5bM10gPT0gJzonKSkgew0KLS0gICAgICBjaGFyICplbmRwOw0K LS0gICAgICB1bnNpZ25lZCBsb25nIGxzdGVwOw0KLS0gICAgICBlcnJubyA9IDA7DQotLSAgICAg IGxzdGVwID0gc3RydG91bCgmcGF0dGVybls0XSwgJmVuZHAsIDEwKTsNCi0tICAgICAgaWYoZXJy bm8gfHwgKCplbmRwICE9ICddJykpDQotLSAgICAgICAgc3RlcCA9IC0xOw0KLS0gICAgICBlbHNl IHsNCi0tICAgICAgICBwYXR0ZXJuID0gZW5kcCsxOw0KLS0gICAgICAgIHN0ZXAgPSAoaW50KWxz dGVwOw0KLS0gICAgICAgIGlmKHN0ZXAgPiAobWF4X2MgLSBtaW5fYykpDQotKyAgICBpZihyYyA9 PSAzKSB7DQotKyAgICAgIGlmKGVuZF9jID09ICc6Jykgew0KLSsgICAgICAgIGNoYXIgKmVuZHA7 DQotKyAgICAgICAgdW5zaWduZWQgbG9uZyBsc3RlcDsNCi0rICAgICAgICBlcnJubyA9IDA7DQot KyAgICAgICAgbHN0ZXAgPSBzdHJ0b3VsKCZwYXR0ZXJuWzRdLCAmZW5kcCwgMTApOw0KLSsgICAg ICAgIGlmKGVycm5vIHx8ICgqZW5kcCAhPSAnXScpKQ0KLSAgICAgICAgICAgc3RlcCA9IC0xOw0K LSsgICAgICAgIGVsc2Ugew0KLSsgICAgICAgICAgcGF0dGVybiA9IGVuZHArMTsNCi0rICAgICAg ICAgIHN0ZXAgPSAoaW50KWxzdGVwOw0KLSsgICAgICAgICAgaWYoc3RlcCA+IChtYXhfYyAtIG1p bl9jKSkNCi0rICAgICAgICAgICAgc3RlcCA9IC0xOw0KLSsgICAgICAgIH0NCi0gICAgICAgfQ0K LSsgICAgICBlbHNlIGlmKGVuZF9jICE9ICddJykNCi0rICAgICAgICAvKiB0aGVuIHRoaXMgaXMg d3JvbmcgKi8NCi0rICAgICAgICByYyA9IDA7DQotICAgICB9DQotLSAgICBlbHNlDQotLSAgICAg IHBhdHRlcm4gKz0gNDsNCi0gDQotICAgICAqcG9zcCArPSAocGF0dGVybiAtICpwYXR0ZXJucCk7 DQotIA0KLS0gICAgaWYoKHJjICE9IDIpIHx8IChtaW5fYyA+PSBtYXhfYykgfHwgKChtYXhfYyAt IG1pbl9jKSA+ICgneicgLSAnYScpKSB8fA0KLSsgICAgaWYoKHJjICE9IDMpIHx8IChtaW5fYyA+ PSBtYXhfYykgfHwgKChtYXhfYyAtIG1pbl9jKSA+ICgneicgLSAnYScpKSB8fA0KLSAgICAgICAg KHN0ZXAgPD0gMCkgKQ0KLSAgICAgICAvKiB0aGUgcGF0dGVybiBpcyBub3Qgd2VsbC1mb3JtZWQg Ki8NCi0gICAgICAgcmV0dXJuIEdMT0JFUlJPUigiYmFkIHJhbmdlIiwgKnBvc3AsIENVUkxFX1VS TF9NQUxGT1JNQVQpOw0KLSANCi0gICAgIC8qIGlmIHRoZXJlIHdhcyBhICI6W251bV0iIHRoaW5n LCB1c2UgdGhhdCBhcyBzdGVwIG9yIGVsc2UgdXNlIDEgKi8NCi0tLSANCi0yLjkuMw0KLQ0KZGlm ZiAtLWdpdCBhL21haW4vY3VybC9DVkUtMjAxNi04NjIxLnBhdGNoIGIvbWFpbi9jdXJsL0NWRS0y MDE2LTg2MjEucGF0Y2gNCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggNjg1NWNlOS4u MDAwMDAwMA0KLS0tIGEvbWFpbi9jdXJsL0NWRS0yMDE2LTg2MjEucGF0Y2gNCisrKyAvZGV2L251 bGwNCkBAIC0xLDEyMSArMCwwIEBADQotRnJvbSA4YTZkOWRlZDVmMDJmMDI5NGFlNjNhMDA3ZTI2 MDg3MzE2YzE5OThlIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQ0KLUZyb206IERhbmllbCBTdGVu YmVyZyA8ZGFuaWVsQGhheHguc2U+DQotRGF0ZTogVHVlLCA0IE9jdCAyMDE2IDE2OjU5OjM4ICsw MjAwDQotU3ViamVjdDogW1BBVENIXSBwYXJzZWRhdGU6IGhhbmRsZSBjdXQgb2ZmIG51bWJlcnMg YmV0dGVyDQotTUlNRS1WZXJzaW9uOiAxLjANCi1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNo YXJzZXQ9VVRGLTgNCi1Db250ZW50LVRyYW5zZmVyLUVuY29kaW5nOiA4Yml0DQotDQotLi4uIGFu ZCBkb24ndCByZWFkIG91dHNpZGUgb2YgdGhlIGdpdmVuIGJ1ZmZlciENCi0NCi1DVkUtMjAxNi04 NjIxDQotDQotYnVnOiBodHRwczovL2N1cmwuaGF4eC5zZS9kb2NzL2Fkdl8yMDE2MTEwMkcuaHRt bA0KLVJlcG9ydGVkLWJ5OiBMdeG6rXQgTmd1eeG7hW4NCi0tLS0NCi0gbGliL3BhcnNlZGF0ZS5j ICAgICAgICB8IDEyICsrKysrKystLS0tLQ0KLSB0ZXN0cy9kYXRhL3Rlc3Q1MTcgICAgIHwgIDYg KysrKysrDQotIHRlc3RzL2xpYnRlc3QvbGliNTE3LmMgfCAgOCArKysrKysrLQ0KLSAzIGZpbGVz IGNoYW5nZWQsIDIwIGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pDQotDQotZGlmZiAtLWdp dCBhL2xpYi9wYXJzZWRhdGUuYyBiL2xpYi9wYXJzZWRhdGUuYw0KLWluZGV4IGRmY2Y4NTUuLjhl OTMyZjQgMTAwNjQ0DQotLS0tIGEvbGliL3BhcnNlZGF0ZS5jDQotKysrIGIvbGliL3BhcnNlZGF0 ZS5jDQotQEAgLTMsMTEgKzMsMTEgQEANCi0gICogIFByb2plY3QgICAgICAgICAgICAgICAgICAg ICBfX198IHwgfCB8ICBfIFx8IHwNCi0gICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8g X198IHwgfCB8IHxfKSB8IHwNCi0gICogICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoX198 IHxffCB8ICBfIDx8IHxfX18NCi0gICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxfX198 XF9fXy98X3wgXF9cX19fX198DQotICAqDQotLSAqIENvcHlyaWdodCAoQykgMTk5OCAtIDIwMTQs IERhbmllbCBTdGVuYmVyZywgPGRhbmllbEBoYXh4LnNlPiwgZXQgYWwuDQotKyAqIENvcHlyaWdo dCAoQykgMTk5OCAtIDIwMTYsIERhbmllbCBTdGVuYmVyZywgPGRhbmllbEBoYXh4LnNlPiwgZXQg YWwuDQotICAqDQotICAqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgYXMgZGVzY3JpYmVkIGlu IHRoZSBmaWxlIENPUFlJTkcsIHdoaWNoDQotICAqIHlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBh cyBwYXJ0IG9mIHRoaXMgZGlzdHJpYnV0aW9uLiBUaGUgdGVybXMNCi0gICogYXJlIGFsc28gYXZh aWxhYmxlIGF0IGh0dHBzOi8vY3VybC5oYXh4LnNlL2RvY3MvY29weXJpZ2h0Lmh0bWwuDQotICAq DQotQEAgLTM4NCwxOSArMzg0LDIxIEBAIHN0YXRpYyBpbnQgcGFyc2VkYXRlKGNvbnN0IGNoYXIg KmRhdGUsIHRpbWVfdCAqb3V0cHV0KQ0KLSAgICAgfQ0KLSAgICAgZWxzZSBpZihJU0RJR0lUKCpk YXRlKSkgew0KLSAgICAgICAvKiBhIGRpZ2l0ICovDQotICAgICAgIGludCB2YWw7DQotICAgICAg IGNoYXIgKmVuZDsNCi0rICAgICAgaW50IGxlbj0wOw0KLSAgICAgICBpZigoc2VjbnVtID09IC0x KSAmJg0KLS0gICAgICAgICAoMyA9PSBzc2NhbmYoZGF0ZSwgIiUwMmQ6JTAyZDolMDJkIiwgJmhv dXJudW0sICZtaW5udW0sICZzZWNudW0pKSkgew0KLSsgICAgICAgICAoMyA9PSBzc2NhbmYoZGF0 ZSwgIiUwMmQ6JTAyZDolMDJkJW4iLA0KLSsgICAgICAgICAgICAgICAgICAgICAgJmhvdXJudW0s ICZtaW5udW0sICZzZWNudW0sICZsZW4pKSkgew0KLSAgICAgICAgIC8qIHRpbWUgc3RhbXAhICov DQotLSAgICAgICAgZGF0ZSArPSA4Ow0KLSsgICAgICAgIGRhdGUgKz0gbGVuOw0KLSAgICAgICB9 DQotICAgICAgIGVsc2UgaWYoKHNlY251bSA9PSAtMSkgJiYNCi0tICAgICAgICAgICAgICAoMiA9 PSBzc2NhbmYoZGF0ZSwgIiUwMmQ6JTAyZCIsICZob3VybnVtLCAmbWlubnVtKSkpIHsNCi0rICAg ICAgICAgICAgICAoMiA9PSBzc2NhbmYoZGF0ZSwgIiUwMmQ6JTAyZCVuIiwgJmhvdXJudW0sICZt aW5udW0sICZsZW4pKSkgew0KLSAgICAgICAgIC8qIHRpbWUgc3RhbXAgd2l0aG91dCBzZWNvbmRz ICovDQotLSAgICAgICAgZGF0ZSArPSA1Ow0KLSsgICAgICAgIGRhdGUgKz0gbGVuOw0KLSAgICAg ICAgIHNlY251bSA9IDA7DQotICAgICAgIH0NCi0gICAgICAgZWxzZSB7DQotICAgICAgICAgbG9u ZyBsdmFsOw0KLSAgICAgICAgIGludCBlcnJvcjsNCi1kaWZmIC0tZ2l0IGEvdGVzdHMvZGF0YS90 ZXN0NTE3IGIvdGVzdHMvZGF0YS90ZXN0NTE3DQotaW5kZXggYzgxYTQ1ZS4uNTEzNjM0ZiAxMDA2 NDQNCi0tLS0gYS90ZXN0cy9kYXRhL3Rlc3Q1MTcNCi0rKysgYi90ZXN0cy9kYXRhL3Rlc3Q1MTcN Ci1AQCAtMTE0LDEwICsxMTQsMTYgQEAgbm90aGluZw0KLSA3OTogMjAxMTA2MzIgMTI6MzQ6NTYg PT4gLTENCi0gODA6IDIwMTEwNjIzIDU2OjM0OjU2ID0+IC0xDQotIDgxOiAyMDExMTMyMyAxMjoz NDo1NiA9PiAtMQ0KLSA4MjogMjAxMTA2MjMgMTI6MzQ6NzkgPT4gLTENCi0gODM6IFdlZCwgMzEg RGVjIDIwMDggMjM6NTk6NjAgR01UID0+IDEyMzA3NjgwMDANCi0rODQ6IDIwMTEwNjIzIDEyOjMg PT4gMTMwODgzMDU4MA0KLSs4NTogMjAxMTA2MjMgMTozID0+IDEzMDg3OTA5ODANCi0rODY6IDIw MTEwNjIzIDE6MzAgPT4gMTMwODc5MjYwMA0KLSs4NzogMjAxMTA2MjMgMTI6MTI6MyA9PiAxMzA4 ODMxMTIzDQotKzg4OiAyMDExMDYyMyAwMToxMjozID0+IDEzMDg3OTE1MjMNCi0rODk6IDIwMTEw NjIzIDAxOjk5OjMwID0+IC0xDQotIDwvc3Rkb3V0Pg0KLSANCi0gIyBUaGlzIHRlc3QgY2FzZSBw cmV2aW91c2x5IHRlc3RlZCBhbiBvdmVyZmxvdyBjYXNlICgiMjA5NCBOb3YgNiA9Pg0KLSAjIDIx NDc0ODM2NDciKSBmb3IgMzJiaXQgdGltZV90LCBidXQgc2luY2Ugc29tZSBzeXN0ZW1zIGhhdmUg NjRiaXQgdGltZV90IGFuZA0KLSAjIGhhbmRsZXMgdGhpcyAocmV0dXJuaW5nIDM5Mzk4NDAwMDAp LCBhbmQgc29tZSA2NGJpdC10aW1lX3Qgc3lzdGVtcyBkb24ndA0KLWRpZmYgLS1naXQgYS90ZXN0 cy9saWJ0ZXN0L2xpYjUxNy5jIGIvdGVzdHMvbGlidGVzdC9saWI1MTcuYw0KLWluZGV4IDJmNjhl YmQuLjIyMTYyZmYgMTAwNjQ0DQotLS0tIGEvdGVzdHMvbGlidGVzdC9saWI1MTcuYw0KLSsrKyBi L3Rlc3RzL2xpYnRlc3QvbGliNTE3LmMNCi1AQCAtMywxMSArMywxMSBAQA0KLSAgKiAgUHJvamVj dCAgICAgICAgICAgICAgICAgICAgIF9fX3wgfCB8IHwgIF8gXHwgfA0KLSAgKiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgLyBfX3wgfCB8IHwgfF8pIHwgfA0KLSAgKiAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8IChfX3wgfF98IHwgIF8gPHwgfF9fXw0KLSAgKiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXF9fX3xcX19fL3xffCBcX1xfX19fX3wNCi0gICoNCi0tICogQ29weXJp Z2h0IChDKSAxOTk4IC0gMjAxMSwgRGFuaWVsIFN0ZW5iZXJnLCA8ZGFuaWVsQGhheHguc2U+LCBl dCBhbC4NCi0rICogQ29weXJpZ2h0IChDKSAxOTk4IC0gMjAxNiwgRGFuaWVsIFN0ZW5iZXJnLCA8 ZGFuaWVsQGhheHguc2U+LCBldCBhbC4NCi0gICoNCi0gICogVGhpcyBzb2Z0d2FyZSBpcyBsaWNl bnNlZCBhcyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgQ09QWUlORywgd2hpY2gNCi0gICogeW91IHNo b3VsZCBoYXZlIHJlY2VpdmVkIGFzIHBhcnQgb2YgdGhpcyBkaXN0cmlidXRpb24uIFRoZSB0ZXJt cw0KLSAgKiBhcmUgYWxzbyBhdmFpbGFibGUgYXQgaHR0cHM6Ly9jdXJsLmhheHguc2UvZG9jcy9j b3B5cmlnaHQuaHRtbC4NCi0gICoNCi1AQCAtMTE0LDEwICsxMTQsMTYgQEAgc3RhdGljIGNvbnN0 IGNoYXIgKiBjb25zdCBkYXRlc1tdPXsNCi0gICAiMjAxMTA2MzIgMTI6MzQ6NTYiLA0KLSAgICIy MDExMDYyMyA1NjozNDo1NiIsDQotICAgIjIwMTExMzIzIDEyOjM0OjU2IiwNCi0gICAiMjAxMTA2 MjMgMTI6MzQ6NzkiLA0KLSAgICJXZWQsIDMxIERlYyAyMDA4IDIzOjU5OjYwIEdNVCIsIC8qIGxl YXAgc2Vjb25kICovDQotKyAgIjIwMTEwNjIzIDEyOjMiLA0KLSsgICIyMDExMDYyMyAxOjMiLA0K LSsgICIyMDExMDYyMyAxOjMwIiwNCi0rICAiMjAxMTA2MjMgMTI6MTI6MyIsDQotKyAgIjIwMTEw NjIzIDAxOjEyOjMiLA0KLSsgICIyMDExMDYyMyAwMTo5OTozMCIsDQotICAgTlVMTA0KLSB9Ow0K LSANCi0gaW50IHRlc3QoY2hhciAqVVJMKQ0KLSB7DQotLS0gDQotMi45LjMNCi0NCmRpZmYgLS1n aXQgYS9tYWluL2N1cmwvQ1ZFLTIwMTYtODYyMi5wYXRjaCBiL21haW4vY3VybC9DVkUtMjAxNi04 NjIyLnBhdGNoDQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IGU2ZGJhNjkuLjAwMDAw MDANCi0tLSBhL21haW4vY3VybC9DVkUtMjAxNi04NjIyLnBhdGNoDQorKysgL2Rldi9udWxsDQpA QCAtMSwxMjYgKzAsMCBAQA0KLUZyb20gNzFkYTkxNDUzODk5YmEyMGIyOGVlOTcxMjYyMGUzMjMx NDVhMGVlNSBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDENCi1Gcm9tOiBEYW5pZWwgU3RlbmJlcmcg PGRhbmllbEBoYXh4LnNlPg0KLURhdGU6IFR1ZSwgNCBPY3QgMjAxNiAxODo1Njo0NSArMDIwMA0K LVN1YmplY3Q6IFtQQVRDSF0gdW5lc2NhcGU6IGF2b2lkIGludGVnZXIgb3ZlcmZsb3cNCi0NCi1D VkUtMjAxNi04NjIyDQotDQotQnVnOiBodHRwczovL2N1cmwuaGF4eC5zZS9kb2NzL2Fkdl8yMDE2 MTEwMkguaHRtbA0KLVJlcG9ydGVkLWJ5OiBDdXJlNTMNCi0tLS0NCi0gZG9jcy9saWJjdXJsL2N1 cmxfZWFzeV91bmVzY2FwZS4zIHwgIDcgKysrKystLQ0KLSBsaWIvZGljdC5jICAgICAgICAgICAg ICAgICAgICAgICAgfCAxMCArKysrKy0tLS0tDQotIGxpYi9lc2NhcGUuYyAgICAgICAgICAgICAg ICAgICAgICB8IDEwICsrKysrKysrLS0NCi0gMyBmaWxlcyBjaGFuZ2VkLCAxOCBpbnNlcnRpb25z KCspLCA5IGRlbGV0aW9ucygtKQ0KLQ0KLWRpZmYgLS1naXQgYS9kb2NzL2xpYmN1cmwvY3VybF9l YXN5X3VuZXNjYXBlLjMgYi9kb2NzL2xpYmN1cmwvY3VybF9lYXN5X3VuZXNjYXBlLjMNCi1pbmRl eCAwNmZkNmZjLi41MGNlOTdkIDEwMDY0NA0KLS0tLSBhL2RvY3MvbGliY3VybC9jdXJsX2Vhc3lf dW5lc2NhcGUuMw0KLSsrKyBiL2RvY3MvbGliY3VybC9jdXJsX2Vhc3lfdW5lc2NhcGUuMw0KLUBA IC0zLDExICszLDExIEBADQotIC5cIiAqICBQcm9qZWN0ICAgICAgICAgICAgICAgICAgICAgX19f fCB8IHwgfCAgXyBcfCB8DQotIC5cIiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvIF9f fCB8IHwgfCB8XykgfCB8DQotIC5cIiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKF9f fCB8X3wgfCAgXyA8fCB8X19fDQotIC5cIiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc X19ffFxfX18vfF98IFxfXF9fX19ffA0KLSAuXCIgKg0KLS0uXCIgKiBDb3B5cmlnaHQgKEMpIDE5 OTggLSAyMDE1LCBEYW5pZWwgU3RlbmJlcmcsIDxkYW5pZWxAaGF4eC5zZT4sIGV0IGFsLg0KLSsu XCIgKiBDb3B5cmlnaHQgKEMpIDE5OTggLSAyMDE2LCBEYW5pZWwgU3RlbmJlcmcsIDxkYW5pZWxA aGF4eC5zZT4sIGV0IGFsLg0KLSAuXCIgKg0KLSAuXCIgKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vu c2VkIGFzIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBDT1BZSU5HLCB3aGljaA0KLSAuXCIgKiB5b3Ug c2hvdWxkIGhhdmUgcmVjZWl2ZWQgYXMgcGFydCBvZiB0aGlzIGRpc3RyaWJ1dGlvbi4gVGhlIHRl cm1zDQotIC5cIiAqIGFyZSBhbHNvIGF2YWlsYWJsZSBhdCBodHRwczovL2N1cmwuaGF4eC5zZS9k b2NzL2NvcHlyaWdodC5odG1sLg0KLSAuXCIgKg0KLUBAIC0zOCwxMSArMzgsMTQgQEAgdGhlaXIg YmluYXJ5IHZlcnNpb25zLg0KLSBJZiB0aGUgXGZCbGVuZ3RoXGZQIGFyZ3VtZW50IGlzIHNldCB0 byAwICh6ZXJvKSwgXGZJY3VybF9lYXN5X3VuZXNjYXBlKDMpXGZQDQotIHdpbGwgdXNlIHN0cmxl bigpIG9uIHRoZSBpbnB1dCBcZkl1cmxcZlAgc3RyaW5nIHRvIGZpbmQgb3V0IHRoZSBzaXplLg0K LSANCi0gSWYgXGZCb3V0bGVuZ3RoXGZQIGlzIG5vbi1OVUxMLCB0aGUgZnVuY3Rpb24gd2lsbCB3 cml0ZSB0aGUgbGVuZ3RoIG9mIHRoZQ0KLSByZXR1cm5lZCBzdHJpbmcgaW4gdGhlIGludGVnZXIg aXQgcG9pbnRzIHRvLiBUaGlzIGFsbG93cyBhbiBlc2NhcGVkIHN0cmluZw0KLS1jb250YWluaW5n ICUwMCB0byBzdGlsbCBnZXQgdXNlZCBwcm9wZXJseSBhZnRlciB1bmVzY2FwaW5nLg0KLStjb250 YWluaW5nICUwMCB0byBzdGlsbCBnZXQgdXNlZCBwcm9wZXJseSBhZnRlciB1bmVzY2FwaW5nLiBT aW5jZSB0aGlzIGlzIGENCi0rcG9pbnRlciB0byBhbiBcZklpbnRcZlAgdHlwZSwgaXQgY2FuIG9u bHkgcmV0dXJuIGEgdmFsdWUgdXAgdG8gSU5UX01BWCBzbyBubw0KLStsb25nZXIgc3RyaW5nIGNh biBiZSB1bmVzY2FwZWQgaWYgdGhlIHN0cmluZyBsZW5ndGggaXMgcmV0dXJuZWQgaW4gdGhpcw0K LStwYXJhbWV0ZXIuDQotIA0KLSBZb3UgbXVzdCBcZkljdXJsX2ZyZWUoMylcZlAgdGhlIHJldHVy bmVkIHN0cmluZyB3aGVuIHlvdSdyZSBkb25lIHdpdGggaXQuDQotIC5TSCBBVkFJTEFCSUxJVFkN Ci0gQWRkZWQgaW4gNy4xNS40IGFuZCByZXBsYWNlcyB0aGUgb2xkIFxmSWN1cmxfdW5lc2NhcGUo MylcZlAgZnVuY3Rpb24uDQotIC5TSCBSRVRVUk4gVkFMVUUNCi1kaWZmIC0tZ2l0IGEvbGliL2Rp Y3QuYyBiL2xpYi9kaWN0LmMNCi1pbmRleCBhN2I1OTY1Li40OGE0ZTBhIDEwMDY0NA0KLS0tLSBh L2xpYi9kaWN0LmMNCi0rKysgYi9saWIvZGljdC5jDQotQEAgLTMsMTEgKzMsMTEgQEANCi0gICog IFByb2plY3QgICAgICAgICAgICAgICAgICAgICBfX198IHwgfCB8ICBfIFx8IHwNCi0gICogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIC8gX198IHwgfCB8IHxfKSB8IHwNCi0gICogICAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAoX198IHxffCB8ICBfIDx8IHxfX18NCi0gICogICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFxfX198XF9fXy98X3wgXF9cX19fX198DQotICAqDQotLSAq IENvcHlyaWdodCAoQykgMTk5OCAtIDIwMTUsIERhbmllbCBTdGVuYmVyZywgPGRhbmllbEBoYXh4 LnNlPiwgZXQgYWwuDQotKyAqIENvcHlyaWdodCAoQykgMTk5OCAtIDIwMTYsIERhbmllbCBTdGVu YmVyZywgPGRhbmllbEBoYXh4LnNlPiwgZXQgYWwuDQotICAqDQotICAqIFRoaXMgc29mdHdhcmUg aXMgbGljZW5zZWQgYXMgZGVzY3JpYmVkIGluIHRoZSBmaWxlIENPUFlJTkcsIHdoaWNoDQotICAq IHlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhcyBwYXJ0IG9mIHRoaXMgZGlzdHJpYnV0aW9uLiBU aGUgdGVybXMNCi0gICogYXJlIGFsc28gYXZhaWxhYmxlIGF0IGh0dHBzOi8vY3VybC5oYXh4LnNl L2RvY3MvY29weXJpZ2h0Lmh0bWwuDQotICAqDQotQEAgLTUwLDExICs1MCwxMSBAQA0KLSANCi0g I2luY2x1ZGUgInVybGRhdGEuaCINCi0gI2luY2x1ZGUgPGN1cmwvY3VybC5oPg0KLSAjaW5jbHVk ZSAidHJhbnNmZXIuaCINCi0gI2luY2x1ZGUgInNlbmRmLmgiDQotLQ0KLSsjaW5jbHVkZSAiZXNj YXBlLmgiDQotICNpbmNsdWRlICJwcm9ncmVzcy5oIg0KLSAjaW5jbHVkZSAic3RyZXF1YWwuaCIN Ci0gI2luY2x1ZGUgImRpY3QuaCINCi0gI2luY2x1ZGUgInJhd3N0ci5oIg0KLSAjaW5jbHVkZSAi Y3VybF9tZW1vcnkuaCINCi1AQCAtOTQsMTYgKzk0LDE2IEBAIGNvbnN0IHN0cnVjdCBDdXJsX2hh bmRsZXIgQ3VybF9oYW5kbGVyX2RpY3QgPSB7DQotIHN0YXRpYyBjaGFyICp1bmVzY2FwZV93b3Jk KHN0cnVjdCBDdXJsX2Vhc3kgKmRhdGEsIGNvbnN0IGNoYXIgKmlucHV0YnVmZikNCi0gew0KLSAg IGNoYXIgKm5ld3A7DQotICAgY2hhciAqZGljdHA7DQotICAgY2hhciAqcHRyOw0KLS0gIGludCBs ZW47DQotKyAgc2l6ZV90IGxlbjsNCi0gICBjaGFyIGNoOw0KLSAgIGludCBvbGVuPTA7DQotIA0K LS0gIG5ld3AgPSBjdXJsX2Vhc3lfdW5lc2NhcGUoZGF0YSwgaW5wdXRidWZmLCAwLCAmbGVuKTsN Ci0tICBpZighbmV3cCkNCi0rICBDVVJMY29kZSByZXN1bHQgPSBDdXJsX3VybGRlY29kZShkYXRh LCBpbnB1dGJ1ZmYsIDAsICZuZXdwLCAmbGVuLCBGQUxTRSk7DQotKyAgaWYoIW5ld3AgfHwgcmVz dWx0KQ0KLSAgICAgcmV0dXJuIE5VTEw7DQotIA0KLSAgIGRpY3RwID0gbWFsbG9jKCgoc2l6ZV90 KWxlbikqMiArIDEpOyAvKiBhZGQgb25lIGZvciB0ZXJtaW5hdGluZyB6ZXJvICovDQotICAgaWYo ZGljdHApIHsNCi0gICAgIC8qIEFjY29yZGluZyB0byBSRkMyMjI5IHNlY3Rpb24gMi4yLCB0aGVz ZSBsZXR0ZXJzIG5lZWQgdG8gYmUgZXNjYXBlZCB3aXRoDQotZGlmZiAtLWdpdCBhL2xpYi9lc2Nh cGUuYyBiL2xpYi9lc2NhcGUuYw0KLWluZGV4IGU2MTI2MGQuLjY2NTcwMDcgMTAwNjQ0DQotLS0t IGEvbGliL2VzY2FwZS5jDQotKysrIGIvbGliL2VzY2FwZS5jDQotQEAgLTIyMiwxMiArMjIyLDE4 IEBAIGNoYXIgKmN1cmxfZWFzeV91bmVzY2FwZShzdHJ1Y3QgQ3VybF9lYXN5ICpkYXRhLCBjb25z dCBjaGFyICpzdHJpbmcsDQotICAgICBzaXplX3Qgb3V0cHV0bGVuOw0KLSAgICAgQ1VSTGNvZGUg cmVzID0gQ3VybF91cmxkZWNvZGUoZGF0YSwgc3RyaW5nLCBpbnB1dGxlbiwgJnN0ciwgJm91dHB1 dGxlbiwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEZBTFNFKTsNCi0gICAg IGlmKHJlcykNCi0gICAgICAgcmV0dXJuIE5VTEw7DQotLSAgICBpZihvbGVuKQ0KLS0gICAgICAq b2xlbiA9IGN1cmx4X3V6dG9zaShvdXRwdXRsZW4pOw0KLSsNCi0rICAgIGlmKG9sZW4pIHsNCi0r ICAgICAgaWYob3V0cHV0bGVuIDw9IChzaXplX3QpIElOVF9NQVgpDQotKyAgICAgICAgKm9sZW4g PSBjdXJseF91enRvc2kob3V0cHV0bGVuKTsNCi0rICAgICAgZWxzZQ0KLSsgICAgICAgIC8qIHRv byBsYXJnZSB0byByZXR1cm4gaW4gYW4gaW50LCBmYWlsISAqLw0KLSsgICAgICAgIEN1cmxfc2Fm ZWZyZWUoc3RyKTsNCi0rICAgIH0NCi0gICB9DQotICAgcmV0dXJuIHN0cjsNCi0gfQ0KLSANCi0g LyogRm9yIG9wZXJhdGluZyBzeXN0ZW1zL2Vudmlyb25tZW50cyB0aGF0IHVzZSBkaWZmZXJlbnQg bWFsbG9jL2ZyZWUNCi0tLSANCi0yLjkuMw0KLQ0KZGlmZiAtLWdpdCBhL21haW4vY3VybC9DVkUt MjAxNi04NjIzLnBhdGNoIGIvbWFpbi9jdXJsL0NWRS0yMDE2LTg2MjMucGF0Y2gNCmRlbGV0ZWQg ZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggNGViODY3OC4uMDAwMDAwMA0KLS0tIGEvbWFpbi9jdXJs L0NWRS0yMDE2LTg2MjMucGF0Y2gNCisrKyAvZGV2L251bGwNCkBAIC0xLDIwNyArMCwwIEBADQot RnJvbSBkOWQ1N2ZlMGRhNmYyNWQwNTU3MGZkNTgzNTIwZWNkMzIxZWQ5YzNmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQ0KLUZyb206IERhbmllbCBTdGVuYmVyZyA8ZGFuaWVsQGhheHguc2U+DQot RGF0ZTogVHVlLCA0IE9jdCAyMDE2IDIzOjI2OjEzICswMjAwDQotU3ViamVjdDogW1BBVENIXSBj b29raWVzOiBnZXRsaXN0KCkgbm93IGhvbGRzIGRlZXAgY29waWVzIG9mIGFsbCBjb29raWVzDQot DQotUHJldmlvdXNseSBpdCBvbmx5IGhlbGQgcmVmZXJlbmNlcyB0byB0aGVtLCB3aGljaCB3YXMg cmVja2xlc3MgYXMgdGhlDQotdGhyZWFkIGxvY2sgd2FzIHJlbGVhc2VkIHNvIHRoZSBjb29raWVz IGNvdWxkIGdldCBtb2RpZmllZCBieSBvdGhlcg0KLWhhbmRsZXMgdGhhdCBzaGFyZSB0aGUgc2Ft ZSBjb29raWUgamFyIG92ZXIgdGhlIHNoYXJlIGludGVyZmFjZS4NCi0NCi1DVkUtMjAxNi04NjIz DQotDQotQnVnOiBodHRwczovL2N1cmwuaGF4eC5zZS9kb2NzL2Fkdl8yMDE2MTEwMkkuaHRtbA0K LVJlcG9ydGVkLWJ5OiBDdXJlNTMNCi0tLS0NCi0gbGliL2Nvb2tpZS5jIHwgNjEgKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQotIGxp Yi9jb29raWUuaCB8ICA0ICsrLS0NCi0gbGliL2h0dHAuYyAgIHwgIDIgKy0NCi0gMyBmaWxlcyBj aGFuZ2VkLCA0MyBpbnNlcnRpb25zKCspLCAyNCBkZWxldGlvbnMoLSkNCi0NCi1kaWZmIC0tZ2l0 IGEvbGliL2Nvb2tpZS5jIGIvbGliL2Nvb2tpZS5jDQotaW5kZXggMGYwNWRhMi4uODYwN2NlMyAx MDA2NDQNCi0tLS0gYS9saWIvY29va2llLmMNCi0rKysgYi9saWIvY29va2llLmMNCi1AQCAtMTAy MiwxMCArMTAyMiw0NCBAQCBzdGF0aWMgaW50IGNvb2tpZV9zb3J0KGNvbnN0IHZvaWQgKnAxLCBj b25zdCB2b2lkICpwMikNCi0gDQotICAgLyogc29ycnksIGNhbid0IGJlIG1vcmUgZGV0ZXJtaW5p c3RpYyAqLw0KLSAgIHJldHVybiAwOw0KLSB9DQotIA0KLSsjZGVmaW5lIENMT05FKGZpZWxkKSAg ICAgICAgICAgICAgICAgICAgIFwNCi0rICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcDQotKyAgICBpZihzcmMtPmZpZWxkKSB7ICAgICAgICAgICAgICAgICAgICAgXA0K LSsgICAgICBkdXAtPmZpZWxkID0gc3RyZHVwKHNyYy0+ZmllbGQpOyAgIFwNCi0rICAgICAgaWYo IWR1cC0+ZmllbGQpICAgICAgICAgICAgICAgICAgICBcDQotKyAgICAgICAgZ290byBmYWlsOyAg ICAgICAgICAgICAgICAgICAgICAgXA0KLSsgICAgfSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIFwNCi0rICB9IHdoaWxlKDApDQotKw0KLStzdGF0aWMgc3RydWN0IENvb2tpZSAq ZHVwX2Nvb2tpZShzdHJ1Y3QgQ29va2llICpzcmMpDQotK3sNCi0rICBzdHJ1Y3QgQ29va2llICpk dXAgPSBjYWxsb2Moc2l6ZW9mKHN0cnVjdCBDb29raWUpLCAxKTsNCi0rICBpZihkdXApIHsNCi0r ICAgIENMT05FKGV4cGlyZXN0cik7DQotKyAgICBDTE9ORShkb21haW4pOw0KLSsgICAgQ0xPTkUo cGF0aCk7DQotKyAgICBDTE9ORShzcGF0aCk7DQotKyAgICBDTE9ORShuYW1lKTsNCi0rICAgIENM T05FKHZhbHVlKTsNCi0rICAgIENMT05FKG1heGFnZSk7DQotKyAgICBDTE9ORSh2ZXJzaW9uKTsN Ci0rICAgIGR1cC0+ZXhwaXJlcyA9IHNyYy0+ZXhwaXJlczsNCi0rICAgIGR1cC0+dGFpbG1hdGNo ID0gc3JjLT50YWlsbWF0Y2g7DQotKyAgICBkdXAtPnNlY3VyZSA9IHNyYy0+c2VjdXJlOw0KLSsg ICAgZHVwLT5saXZlY29va2llID0gc3JjLT5saXZlY29va2llOw0KLSsgICAgZHVwLT5odHRwb25s eSA9IHNyYy0+aHR0cG9ubHk7DQotKyAgfQ0KLSsgIHJldHVybiBkdXA7DQotKw0KLSsgIGZhaWw6 DQotKyAgZnJlZWNvb2tpZShkdXApOw0KLSsgIHJldHVybiBOVUxMOw0KLSt9DQotKw0KLSAvKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioNCi0gICoNCi0gICogQ3VybF9jb29raWVfZ2V0bGlzdCgpDQotICAq DQotICAqIEZvciBhIGdpdmVuIGhvc3QgYW5kIHBhdGgsIHJldHVybiBhIGxpbmtlZCBsaXN0IG9m IGNvb2tpZXMgdGhhdCB0aGUNCi1AQCAtMTA3NywxNSArMTExMSwxMiBAQCBzdHJ1Y3QgQ29va2ll ICpDdXJsX2Nvb2tpZV9nZXRsaXN0KHN0cnVjdCBDb29raWVJbmZvICpjLA0KLSAgICAgICAgIGlm KCFjby0+c3BhdGggfHwgcGF0aG1hdGNoKGNvLT5zcGF0aCwgcGF0aCkgKSB7DQotIA0KLSAgICAg ICAgICAgLyogYW5kIG5vdywgd2Uga25vdyB0aGlzIGlzIGEgbWF0Y2ggYW5kIHdlIHNob3VsZCBj cmVhdGUgYW4NCi0gICAgICAgICAgICAgIGVudHJ5IGZvciB0aGUgcmV0dXJuLWxpbmtlZC1saXN0 ICovDQotIA0KLS0gICAgICAgICAgbmV3Y28gPSBtYWxsb2Moc2l6ZW9mKHN0cnVjdCBDb29raWUp KTsNCi0rICAgICAgICAgIG5ld2NvID0gZHVwX2Nvb2tpZShjbyk7DQotICAgICAgICAgICBpZihu ZXdjbykgew0KLS0gICAgICAgICAgICAvKiBmaXJzdCwgY29weSB0aGUgd2hvbGUgc291cmNlIGNv b2tpZTogKi8NCi0tICAgICAgICAgICAgbWVtY3B5KG5ld2NvLCBjbywgc2l6ZW9mKHN0cnVjdCBD b29raWUpKTsNCi0tDQotICAgICAgICAgICAgIC8qIHRoZW4gbW9kaWZ5IG91ciBuZXh0ICovDQot ICAgICAgICAgICAgIG5ld2NvLT5uZXh0ID0gbWFpbmNvOw0KLSANCi0gICAgICAgICAgICAgLyog cG9pbnQgdGhlIG1haW4gdG8gdXMgKi8NCi0gICAgICAgICAgICAgbWFpbmNvID0gbmV3Y287DQot QEAgLTEwOTMsMTYgKzExMjQsMTEgQEAgc3RydWN0IENvb2tpZSAqQ3VybF9jb29raWVfZ2V0bGlz dChzdHJ1Y3QgQ29va2llSW5mbyAqYywNCi0gICAgICAgICAgICAgbWF0Y2hlcysrOw0KLSAgICAg ICAgICAgfQ0KLSAgICAgICAgICAgZWxzZSB7DQotICAgICAgICAgICAgIGZhaWw6DQotICAgICAg ICAgICAgIC8qIGZhaWx1cmUsIGNsZWFyIHVwIHRoZSBhbGxvY2F0ZWQgY2hhaW4gYW5kIHJldHVy biBOVUxMICovDQotLSAgICAgICAgICAgIHdoaWxlKG1haW5jbykgew0KLS0gICAgICAgICAgICAg IGNvID0gbWFpbmNvLT5uZXh0Ow0KLS0gICAgICAgICAgICAgIGZyZWUobWFpbmNvKTsNCi0tICAg ICAgICAgICAgICBtYWluY28gPSBjbzsNCi0tICAgICAgICAgICAgfQ0KLS0NCi0rICAgICAgICAg ICAgQ3VybF9jb29raWVfZnJlZWxpc3QobWFpbmNvKTsNCi0gICAgICAgICAgICAgcmV0dXJuIE5V TEw7DQotICAgICAgICAgICB9DQotICAgICAgICAgfQ0KLSAgICAgICB9DQotICAgICB9DQotQEAg LTExNTAsMTEgKzExNzYsMTEgQEAgc3RydWN0IENvb2tpZSAqQ3VybF9jb29raWVfZ2V0bGlzdChz dHJ1Y3QgQ29va2llSW5mbyAqYywNCi0gICoNCi0gICoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQotIHZv aWQgQ3VybF9jb29raWVfY2xlYXJhbGwoc3RydWN0IENvb2tpZUluZm8gKmNvb2tpZXMpDQotIHsN Ci0gICBpZihjb29raWVzKSB7DQotLSAgICBDdXJsX2Nvb2tpZV9mcmVlbGlzdChjb29raWVzLT5j b29raWVzLCBUUlVFKTsNCi0rICAgIEN1cmxfY29va2llX2ZyZWVsaXN0KGNvb2tpZXMtPmNvb2tp ZXMpOw0KLSAgICAgY29va2llcy0+Y29va2llcyA9IE5VTEw7DQotICAgICBjb29raWVzLT5udW1j b29raWVzID0gMDsNCi0gICB9DQotIH0NCi0gDQotQEAgLTExNjIsMjUgKzExODgsMTggQEAgdm9p ZCBDdXJsX2Nvb2tpZV9jbGVhcmFsbChzdHJ1Y3QgQ29va2llSW5mbyAqY29va2llcykNCi0gICoN Ci0gICogQ3VybF9jb29raWVfZnJlZWxpc3QoKQ0KLSAgKg0KLSAgKiBGcmVlIGEgbGlzdCBvZiBj b29raWVzIHByZXZpb3VzbHkgcmV0dXJuZWQgYnkgQ3VybF9jb29raWVfZ2V0bGlzdCgpOw0KLSAg Kg0KLS0gKiBUaGUgJ2Nvb2tpZXN0b28nIGFyZ3VtZW50IHRlbGxzIHRoaXMgZnVuY3Rpb24gd2hl dGhlciB0byBqdXN0IGZyZWUgdGhlDQotLSAqIGxpc3Qgb3IgYWN0dWFsbHkgYWxzbyBmcmVlIGFs bCBjb29raWVzIHdpdGhpbiB0aGUgbGlzdCBhcyB3ZWxsLg0KLS0gKg0KLSAgKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKi8NCi0gDQotLXZvaWQgQ3VybF9jb29raWVfZnJlZWxpc3Qoc3RydWN0IENvb2tpZSAq Y28sIGJvb2wgY29va2llc3RvbykNCi0rdm9pZCBDdXJsX2Nvb2tpZV9mcmVlbGlzdChzdHJ1Y3Qg Q29va2llICpjbykNCi0gew0KLSAgIHN0cnVjdCBDb29raWUgKm5leHQ7DQotICAgd2hpbGUoY28p IHsNCi0gICAgIG5leHQgPSBjby0+bmV4dDsNCi0tICAgIGlmKGNvb2tpZXN0b28pDQotLSAgICAg IGZyZWVjb29raWUoY28pOw0KLS0gICAgZWxzZQ0KLS0gICAgICBmcmVlKGNvKTsgLyogd2Ugb25s eSBmcmVlIHRoZSBzdHJ1Y3Qgc2luY2UgdGhlICJtZW1iZXJzIiBhcmUgYWxsIGp1c3QNCi0tICAg ICAgICAgICAgICAgICAgIHBvaW50ZWQgb3V0IGluIHRoZSBtYWluIGNvb2tpZSBsaXN0ISAqLw0K LSsgICAgZnJlZWNvb2tpZShjbyk7DQotICAgICBjbyA9IG5leHQ7DQotICAgfQ0KLSB9DQotIA0K LSANCi1AQCAtMTIzMSwxMSArMTI1MCwxMSBAQCB2b2lkIEN1cmxfY29va2llX2NsZWFyc2Vzcyhz dHJ1Y3QgQ29va2llSW5mbyAqY29va2llcykNCi0gICoqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQotIHZv aWQgQ3VybF9jb29raWVfY2xlYW51cChzdHJ1Y3QgQ29va2llSW5mbyAqYykNCi0gew0KLSAgIGlm KGMpIHsNCi0gICAgIGZyZWUoYy0+ZmlsZW5hbWUpOw0KLS0gICAgQ3VybF9jb29raWVfZnJlZWxp c3QoYy0+Y29va2llcywgVFJVRSk7DQotKyAgICBDdXJsX2Nvb2tpZV9mcmVlbGlzdChjLT5jb29r aWVzKTsNCi0gICAgIGZyZWUoYyk7IC8qIGZyZWUgdGhlIGJhc2Ugc3RydWN0IGFzIHdlbGwgKi8N Ci0gICB9DQotIH0NCi0gDQotIC8qIGdldF9uZXRzY2FwZV9mb3JtYXQoKQ0KLWRpZmYgLS1naXQg YS9saWIvY29va2llLmggYi9saWIvY29va2llLmgNCi1pbmRleCBjZDdjNTRhLi5hOWE0NTc4IDEw MDY0NA0KLS0tLSBhL2xpYi9jb29raWUuaA0KLSsrKyBiL2xpYi9jb29raWUuaA0KLUBAIC01LDEx ICs1LDExIEBADQotICAqICBQcm9qZWN0ICAgICAgICAgICAgICAgICAgICAgX19ffCB8IHwgfCAg XyBcfCB8DQotICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvIF9ffCB8IHwgfCB8Xykg fCB8DQotICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKF9ffCB8X3wgfCAgXyA8fCB8 X19fDQotICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcX19ffFxfX18vfF98IFxfXF9f X19ffA0KLSAgKg0KLS0gKiBDb3B5cmlnaHQgKEMpIDE5OTggLSAyMDExLCBEYW5pZWwgU3RlbmJl cmcsIDxkYW5pZWxAaGF4eC5zZT4sIGV0IGFsLg0KLSsgKiBDb3B5cmlnaHQgKEMpIDE5OTggLSAy MDE2LCBEYW5pZWwgU3RlbmJlcmcsIDxkYW5pZWxAaGF4eC5zZT4sIGV0IGFsLg0KLSAgKg0KLSAg KiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIGFzIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBDT1BZ SU5HLCB3aGljaA0KLSAgKiB5b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYXMgcGFydCBvZiB0aGlz IGRpc3RyaWJ1dGlvbi4gVGhlIHRlcm1zDQotICAqIGFyZSBhbHNvIGF2YWlsYWJsZSBhdCBodHRw czovL2N1cmwuaGF4eC5zZS9kb2NzL2NvcHlyaWdodC5odG1sLg0KLSAgKg0KLUBAIC04MCwxMSAr ODAsMTEgQEAgc3RydWN0IENvb2tpZSAqQ3VybF9jb29raWVfYWRkKHN0cnVjdCBDdXJsX2Vhc3kg KmRhdGEsDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgQ29va2llSW5m byAqLCBib29sIGhlYWRlciwgY2hhciAqbGluZXB0ciwNCi0gICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGNvbnN0IGNoYXIgKmRvbWFpbiwgY29uc3QgY2hhciAqcGF0aCk7DQotIA0KLSBz dHJ1Y3QgQ29va2llICpDdXJsX2Nvb2tpZV9nZXRsaXN0KHN0cnVjdCBDb29raWVJbmZvICosIGNv bnN0IGNoYXIgKiwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBj aGFyICosIGJvb2wpOw0KLS12b2lkIEN1cmxfY29va2llX2ZyZWVsaXN0KHN0cnVjdCBDb29raWUg KmNvb2tpZXMsIGJvb2wgY29va2llc3Rvbyk7DQotK3ZvaWQgQ3VybF9jb29raWVfZnJlZWxpc3Qo c3RydWN0IENvb2tpZSAqY29va2llcyk7DQotIHZvaWQgQ3VybF9jb29raWVfY2xlYXJhbGwoc3Ry dWN0IENvb2tpZUluZm8gKmNvb2tpZXMpOw0KLSB2b2lkIEN1cmxfY29va2llX2NsZWFyc2Vzcyhz dHJ1Y3QgQ29va2llSW5mbyAqY29va2llcyk7DQotIA0KLSAjaWYgZGVmaW5lZChDVVJMX0RJU0FC TEVfSFRUUCkgfHwgZGVmaW5lZChDVVJMX0RJU0FCTEVfQ09PS0lFUykNCi0gI2RlZmluZSBDdXJs X2Nvb2tpZV9saXN0KHgpIE5VTEwNCi1kaWZmIC0tZ2l0IGEvbGliL2h0dHAuYyBiL2xpYi9odHRw LmMNCi1pbmRleCA2NWMxNDVhLi5lNmU3ZDM3IDEwMDY0NA0KLS0tLSBhL2xpYi9odHRwLmMNCi0r KysgYi9saWIvaHR0cC5jDQotQEAgLTIzODIsMTEgKzIzODIsMTEgQEAgQ1VSTGNvZGUgQ3VybF9o dHRwKHN0cnVjdCBjb25uZWN0ZGF0YSAqY29ubiwgYm9vbCAqZG9uZSkNCi0gICAgICAgICAgICAg YnJlYWs7DQotICAgICAgICAgICBjb3VudCsrOw0KLSAgICAgICAgIH0NCi0gICAgICAgICBjbyA9 IGNvLT5uZXh0OyAvKiBuZXh0IGNvb2tpZSBwbGVhc2UgKi8NCi0gICAgICAgfQ0KLS0gICAgICBD dXJsX2Nvb2tpZV9mcmVlbGlzdChzdG9yZSwgRkFMU0UpOyAvKiBmcmVlIHRoZSBjb29raWUgbGlz dCAqLw0KLSsgICAgICBDdXJsX2Nvb2tpZV9mcmVlbGlzdChzdG9yZSk7DQotICAgICB9DQotICAg ICBpZihhZGRjb29raWVzICYmICFyZXN1bHQpIHsNCi0gICAgICAgaWYoIWNvdW50KQ0KLSAgICAg ICAgIHJlc3VsdCA9IEN1cmxfYWRkX2J1ZmZlcmYocmVxX2J1ZmZlciwgIkNvb2tpZTogIik7DQot ICAgICAgIGlmKCFyZXN1bHQpIHsNCi0tLSANCi0yLjkuMw0KLQ0KLS0gDQoyLjQuMTENCg0KDQoN Ci0tLQ0KVW5zdWJzY3JpYmU6ICBhbHBpbmUtYXBvcnRzK3Vuc3Vic2NyaWJlQGxpc3RzLmFscGlu ZWxpbnV4Lm9yZw0KSGVscDogICAgICAgICBhbHBpbmUtYXBvcnRzK2hlbHBAbGlzdHMuYWxwaW5l bGludXgub3JnDQotLS0NCg==