X-Original-To: alpine-aports@lists.alpinelinux.org Received: from mail-lf0-f66.google.com (mail-lf0-f66.google.com [209.85.215.66]) by lists.alpinelinux.org (Postfix) with ESMTP id 916D45C4543 for ; Fri, 30 Dec 2016 08:45:20 +0000 (GMT) Received: by mail-lf0-f66.google.com with SMTP id x140so19693018lfa.2 for ; Fri, 30 Dec 2016 00:45:20 -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=evpoEf2pbuazy7Of1IMEaceZQleal2bMEcVp6E4MUWw=; b=rELqcLyMN6tskGz7wEY7ogv1VC2lRdD/qsws5W3Q+GfagoHFbTjw/FTnRdZAsPIxgW 8yGlq3SZM8ORsbRKLy7U5CGanVyMpKZ/shX6pEK5FXwMl6NSkAr+t5ERs3LcqnLH12oS BWbmVpRwXsY0zI/O6suW8iVtVA+VN0aUNpXUhSZN0qRbgX5heNhkwBKYpjcSPk73xWgC h/BkORPDsYqsdEqBJf6ncfZ0mhlG27M7Jtoa7C+QZSsHGCm+pI1DC9MzqBpNyJVuPAJP fHb0vyRhy/GdMyvAxpwi6mB5KDQXJcwemN8pPz1Oma6q2tZJExV0aNXO2GrnsWxNBtDD 7T6Q== 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=evpoEf2pbuazy7Of1IMEaceZQleal2bMEcVp6E4MUWw=; b=oq0/uTpxK7eHh/YcGakc5V2XWJrgdqD7J/JaBk4mpkJDZUn+U6j7mDq2hkqBVuhzbX WxEY0DI9YedRHSWKpYw0U51uOPVbp0IL4FypOfOv13pVv9eOJKbmwVf7ACvpidBOST2k yG/7wTJfogE/z92K9XAtgK2tBcS+eIxB99JqrgL+HeUATl1WUUge3C85rQNE/pTvgJor 6JUFwUjq4xYlxDWvC0L3Lo7jdGqznEr+ASTuOSpb1B0q13n5eRSvJuD6yn7TraqWIh6M 9g2XU7XGtpR6Ry9ZB9qpJsezvZZsWQ4ABtWwoG/hX6M/63l1IShpEcOLpRYJfWcC/3fP QIHA== X-Gm-Message-State: AIkVDXIyHhGP66ErGVjO6VzUey5H4l94PPeagLjZ1Nb1yzIX79tvF/9ZoDVzRKyQP0PqLQ== X-Received: by 10.46.77.17 with SMTP id a17mr15440030ljb.50.1483087518957; Fri, 30 Dec 2016 00:45:18 -0800 (PST) Received: from v3-3.util.wtbts.net ([83.145.235.199]) by smtp.gmail.com with ESMTPSA id r21sm13229536lff.4.2016.12.30.00.45.17 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 30 Dec 2016 00:45:18 -0800 (PST) From: Sergey Lukin To: alpine-aports@lists.alpinelinux.org Cc: Sergey Lukin Subject: [alpine-aports] [PATCH v3.3] main/curl: security upgrade to 7.52.1 - fixes #6600 Date: Fri, 30 Dec 2016 08:45:12 +0000 Message-Id: <1483087512-17335-1-git-send-email-sergej.lukin@gmail.com> X-Mailer: git-send-email 2.6.6 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 eC5zZS9jaGFuZ2VzLmh0bWwNCi0tLQ0KIG1haW4vY3VybC9BUEtCVUlMRCAgICAgICAgICAgICAg ICAgIHwgMTA2ICsrKysrKy0tLS0tLS0tLS0tLQ0KIG1haW4vY3VybC9DVkUtMjAxNi01NDE5LnBh dGNoICAgICAgIHwgIDg1IC0tLS0tLS0tLS0tLS0tLQ0KIG1haW4vY3VybC9DVkUtMjAxNi01NDIw LnBhdGNoICAgICAgIHwgIDMwIC0tLS0tLQ0KIG1haW4vY3VybC9DVkUtMjAxNi01NDIxLnBhdGNo ICAgICAgIHwgIDM1IC0tLS0tLQ0KIG1haW4vY3VybC9DVkUtMjAxNi03MTQxLnBhdGNoICAgICAg IHwgIDQyIC0tLS0tLS0tDQogbWFpbi9jdXJsL0NWRS0yMDE2LTcxNjcucGF0Y2ggICAgICAgfCAg NTMgLS0tLS0tLS0tDQogbWFpbi9jdXJsL0NWRS0yMDE2LTg2MTUucGF0Y2ggICAgICAgfCAgNzUg LS0tLS0tLS0tLS0tLQ0KIG1haW4vY3VybC9DVkUtMjAxNi04NjE2LnBhdGNoICAgICAgIHwgIDY2 IC0tLS0tLS0tLS0tLQ0KIG1haW4vY3VybC9DVkUtMjAxNi04NjE3LnBhdGNoICAgICAgIHwgIDM2 IC0tLS0tLS0NCiBtYWluL2N1cmwvQ1ZFLTIwMTYtODYxOC5wYXRjaCAgICAgICB8ICA1MCAtLS0t LS0tLS0NCiBtYWluL2N1cmwvQ1ZFLTIwMTYtODYxOS5wYXRjaCAgICAgICB8ICA1MCAtLS0tLS0t LS0NCiBtYWluL2N1cmwvQ1ZFLTIwMTYtODYyMC5wYXRjaCAgICAgICB8IDIwNSAtLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIG1haW4vY3VybC9DVkUtMjAxNi04NjIxLnBhdGNo ICAgICAgIHwgMTIxIC0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIG1haW4vY3VybC9DVkUtMjAxNi04 NjIyLnBhdGNoICAgICAgIHwgMTI2IC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiBtYWluL2N1cmwv Q1ZFLTIwMTYtODYyMy5wYXRjaCAgICAgICB8IDIwNyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0NCiBtYWluL2N1cmwvQ1ZFLTIwMTYtODYyNC1maXhlZC5wYXRjaCB8ICA2MSAt LS0tLS0tLS0tLQ0KIDE2IGZpbGVzIGNoYW5nZWQsIDMxIGluc2VydGlvbnMoKyksIDEzMTcgZGVs ZXRpb25zKC0pDQogZGVsZXRlIG1vZGUgMTAwNjQ0IG1haW4vY3VybC9DVkUtMjAxNi01NDE5LnBh dGNoDQogZGVsZXRlIG1vZGUgMTAwNjQ0IG1haW4vY3VybC9DVkUtMjAxNi01NDIwLnBhdGNoDQog ZGVsZXRlIG1vZGUgMTAwNjQ0IG1haW4vY3VybC9DVkUtMjAxNi01NDIxLnBhdGNoDQogZGVsZXRl IG1vZGUgMTAwNjQ0IG1haW4vY3VybC9DVkUtMjAxNi03MTQxLnBhdGNoDQogZGVsZXRlIG1vZGUg MTAwNjQ0IG1haW4vY3VybC9DVkUtMjAxNi03MTY3LnBhdGNoDQogZGVsZXRlIG1vZGUgMTAwNjQ0 IG1haW4vY3VybC9DVkUtMjAxNi04NjE1LnBhdGNoDQogZGVsZXRlIG1vZGUgMTAwNjQ0IG1haW4v Y3VybC9DVkUtMjAxNi04NjE2LnBhdGNoDQogZGVsZXRlIG1vZGUgMTAwNjQ0IG1haW4vY3VybC9D VkUtMjAxNi04NjE3LnBhdGNoDQogZGVsZXRlIG1vZGUgMTAwNjQ0IG1haW4vY3VybC9DVkUtMjAx Ni04NjE4LnBhdGNoDQogZGVsZXRlIG1vZGUgMTAwNjQ0IG1haW4vY3VybC9DVkUtMjAxNi04NjE5 LnBhdGNoDQogZGVsZXRlIG1vZGUgMTAwNjQ0IG1haW4vY3VybC9DVkUtMjAxNi04NjIwLnBhdGNo DQogZGVsZXRlIG1vZGUgMTAwNjQ0IG1haW4vY3VybC9DVkUtMjAxNi04NjIxLnBhdGNoDQogZGVs ZXRlIG1vZGUgMTAwNjQ0IG1haW4vY3VybC9DVkUtMjAxNi04NjIyLnBhdGNoDQogZGVsZXRlIG1v ZGUgMTAwNjQ0IG1haW4vY3VybC9DVkUtMjAxNi04NjIzLnBhdGNoDQogZGVsZXRlIG1vZGUgMTAw NjQ0IG1haW4vY3VybC9DVkUtMjAxNi04NjI0LWZpeGVkLnBhdGNoDQoNCmRpZmYgLS1naXQgYS9t YWluL2N1cmwvQVBLQlVJTEQgYi9tYWluL2N1cmwvQVBLQlVJTEQNCmluZGV4IDBlNTlhODcuLmY5 OTIxOWIgMTAwNjQ0DQotLS0gYS9tYWluL2N1cmwvQVBLQlVJTEQNCisrKyBiL21haW4vY3VybC9B UEtCVUlMRA0KQEAgLTIsOCArMiw4IEBADQogIyBDb250cmlidXRvcjogU2VyZ2V5IEx1a2luIDxz ZXJnZWoubHVraW5AZ21haWwuY29tPg0KICMgTWFpbnRhaW5lcjogTmF0YW5hZWwgQ29wYSA8bmNv cGFAYWxwaW5lbGludXgub3JnPg0KIHBrZ25hbWU9Y3VybA0KLXBrZ3Zlcj03LjQ5LjENCi1wa2dy ZWw9NA0KK3BrZ3Zlcj03LjUyLjENCitwa2dyZWw9MA0KIHBrZ2Rlc2M9IkFuIFVSTCByZXRyaXZh bCB1dGlsaXR5IGFuZCBsaWJyYXJ5Ig0KIHVybD0iaHR0cDovL2N1cmwuaGF4eC5zZSINCiBhcmNo PSJhbGwiDQpAQCAtMTIsMzUgKzEyLDM2IEBAIGRlcGVuZHM9ImNhLWNlcnRpZmljYXRlcyINCiBk ZXBlbmRzX2Rldj0iemxpYi1kZXYgb3BlbnNzbC1kZXYgbGlic3NoMi1kZXYiDQogbWFrZWRlcGVu ZHM9Imdyb2ZmICRkZXBlbmRzX2RldiBwZXJsIg0KIHN1YnBhY2thZ2VzPSIkcGtnbmFtZS1kb2Mg JHBrZ25hbWUtZGV2Ig0KLXNvdXJjZT0iaHR0cDovL2N1cmwuaGF4eC5zZS9kb3dubG9hZC9jdXJs LSRwa2d2ZXIudGFyLmJ6Mg0KLQlDVkUtMjAxNi01NDE5LnBhdGNoDQotCUNWRS0yMDE2LTU0MjAu cGF0Y2gNCi0JQ1ZFLTIwMTYtNTQyMS5wYXRjaA0KLQlDVkUtMjAxNi03MTQxLnBhdGNoDQotCUNW RS0yMDE2LTcxNjcucGF0Y2gNCi0JQ1ZFLTIwMTYtODYxNS5wYXRjaA0KLQlDVkUtMjAxNi04NjE2 LnBhdGNoDQotCUNWRS0yMDE2LTg2MTcucGF0Y2gNCi0JQ1ZFLTIwMTYtODYxOC5wYXRjaA0KLQlD VkUtMjAxNi04NjE5LnBhdGNoDQotCUNWRS0yMDE2LTg2MjAucGF0Y2gNCi0JQ1ZFLTIwMTYtODYy MS5wYXRjaA0KLQlDVkUtMjAxNi04NjIyLnBhdGNoDQotCUNWRS0yMDE2LTg2MjMucGF0Y2gNCi0J Q1ZFLTIwMTYtODYyNC1maXhlZC5wYXRjaA0KLQkiDQorc291cmNlPSJodHRwOi8vY3VybC5oYXh4 LnNlL2Rvd25sb2FkL2N1cmwtJHBrZ3Zlci50YXIuYnoyIg0KIA0KIF9idWlsZGRpcj0iJHNyY2Rp ci8kcGtnbmFtZS0kcGtndmVyIg0KIA0KICMgc2VjZml4ZXM6DQotIyAgIDcuNDkuMS1yMToNCi0j ICAgLSBDVkUtMjAxNi01NDE5DQotIyAgIC0gQ1ZFLTIwMTYtNTQyMA0KLSMgICAtIENWRS0yMDE2 LTU0MjENCi0jICAgNy40OS4xLXIyOg0KLSMgICAtIENWRS0yMDE2LTcxNDENCi0jICAgNy40OS4x LXIzOg0KLSMgICAtIENWRS0yMDE2LTcxNjcNCisjICA3LjUyLjEtcjA6DQorIyAgICAtIENWRS0y MDE2LTk1OTQNCisjICAgIC0gQ1ZFLTIwMTYtOTU4Ng0KKyMgICAgLSBDVkUtMjAxNi05OTUyDQor IyAgICAtIENWRS0yMDE2LTk5NTMNCisjICA3LjQ5LjEtcjQ6DQorIyAgICAtIENWRS0yMDE2LTg2 MTUNCisjICAgIC0gQ1ZFLTIwMTYtODYxNg0KKyMgICAgLSBDVkUtMjAxNi04NjE3DQorIyAgICAt IENWRS0yMDE2LTg2MTgNCisjICAgIC0gQ1ZFLTIwMTYtODYxOQ0KKyMgICAgLSBDVkUtMjAxNi04 NjIwDQorIyAgICAtIENWRS0yMDE2LTg2MjENCisjICAgIC0gQ1ZFLTIwMTYtODYyMg0KKyMgICAg LSBDVkUtMjAxNi04NjIzDQorIyAgICAtIENWRS0yMDE2LTg2MjQNCisjICA3LjQ5LjEtcjM6DQor IyAgICAtIENWRS0yMDE2LTcxNjcNCisjICA3LjQ5LjEtcjI6DQorIyAgICAtIENWRS0yMDE2LTcx NDENCisjICA3LjQ5LjEtcjE6DQorIyAgICAtIENWRS0yMDE2LTU0MTkNCisjICAgIC0gQ1ZFLTIw MTYtNTQyMA0KKyMgICAgLSBDVkUtMjAxNi01NDIxDQorDQogDQogcHJlcGFyZSgpIHsNCiAJbG9j YWwgaQ0KQEAgLTcxLDUxICs3Miw2IEBAIHBhY2thZ2UoKSB7DQogCW1ha2UgREVTVERJUj0iJHBr Z2RpciIgaW5zdGFsbCB8fCByZXR1cm4gMQ0KIH0NCiANCi1tZDVzdW1zPSI2YmIxZjdhZjViNThi MzBlNGU2NDE0YjhjMWFiY2NhYiAgY3VybC03LjQ5LjEudGFyLmJ6Mg0KLTI5MGY2YjM3ZDk1Yzk3 MzE4NDlmYzgwNWEyZWNlNTNiICBDVkUtMjAxNi01NDE5LnBhdGNoDQotMTUwZTNjMTEwZDZlYjg1 MTg3ZTEwOWQwNDMxN2I5ZTMgIENWRS0yMDE2LTU0MjAucGF0Y2gNCi0wNTI0NjY0YmM5MjYzNzRm NmE3YjA1NzA0NjkyNGJkMiAgQ1ZFLTIwMTYtNTQyMS5wYXRjaA0KLTdlYWRhMWUzNzQ1ZTNjZmU4 ZjQwNTdkZWMyNzNkODIwICBDVkUtMjAxNi03MTQxLnBhdGNoDQotMTNkNWFkNmNlMmRiOWI1YTIz MTRkMzEyMjc1NzdmMWYgIENWRS0yMDE2LTcxNjcucGF0Y2gNCi0yMWQxYWNmOWMzYTYyMDIxNWJh MmZjYWJkYmRmM2QyNyAgQ1ZFLTIwMTYtODYxNS5wYXRjaA0KLWIwY2Y2NjAxY2Q2ODVlNWI1ZDEw YTEwYTIyZGYxYzhkICBDVkUtMjAxNi04NjE2LnBhdGNoDQotN2Y1Nzc1ZjMzYTE4NzkwZTliOGQ1 Yzc2YTIyNmJhZmUgIENWRS0yMDE2LTg2MTcucGF0Y2gNCi0xNTIzMDdiZjg4MDNjNjE2ZWQ1YzZm NmQwNmIyZWU2YSAgQ1ZFLTIwMTYtODYxOC5wYXRjaA0KLWEwODgzZTkzZDRkNGJhMzYxMWZkMGJk ZGZlNWFjOTI4ICBDVkUtMjAxNi04NjE5LnBhdGNoDQotODA3ODdiZTIzNTRhOGM2Mzg1MTY0YzY2 Yzk3ZjdmNjEgIENWRS0yMDE2LTg2MjAucGF0Y2gNCi03NjQwZTgyODJmNzFjMDZmMDA3OWMxYTE5 ZDljZmYyNSAgQ1ZFLTIwMTYtODYyMS5wYXRjaA0KLWRmYmM4ZjQzMDZkYmFhNGU2MjIwZDljN2Ri YWY2OTFiICBDVkUtMjAxNi04NjIyLnBhdGNoDQotYjdlZWRiZGJhMDY5ZjhhM2E2ZWZhYWRkY2Ux YTM4ZWQgIENWRS0yMDE2LTg2MjMucGF0Y2gNCi1lZmM5MmNjOWRmZTk0ZjcwYjgzYWJhMmVkODNk OTRiNiAgQ1ZFLTIwMTYtODYyNC1maXhlZC5wYXRjaCINCi1zaGEyNTZzdW1zPSJlYjYzY2VjNGJl ZjY5MmVhYjlkYjQ1OTAzM2Y0MDk1MzNlNmQxMGUyMDk0MmY0YjA2MGIzMjgxOWU4MTg4NWYxICBj dXJsLTcuNDkuMS50YXIuYnoyDQotZDM0OTlhYWYzMzFmY2EyMzAzNzQ5YmRmZmJlZGY1Njc3YTU1 NWEzN2FkYTE4N2MxYTczNDkyNmM3Y2I3MThlNSAgQ1ZFLTIwMTYtNTQxOS5wYXRjaA0KLTIzZTFm YmQyNzg2MGM2ZjQ2YmVjMDk0YzA2YjU2MThkYTJhYjcxYjA5MTk0NWY1ODdjMGQ3ZThkMTQzNDcy ZjcgIENWRS0yMDE2LTU0MjAucGF0Y2gNCi1iY2E3ODY2N2FjOTExMDkyMGM1Y2UzMWM4ZDgyYTc4 NGZlMzI3ZWIxODQ0NjBjMWI4N2ZhYjRkZTAwNGU2NjkyICBDVkUtMjAxNi01NDIxLnBhdGNoDQot ZjA5N2Q2ZTVjNzVlYmRhZjUzMmFlZjU5ZTMxNzkwYTY1NzgxNGJiYjdlNTAxZGZiMmViNjY4NmRk Y2E0ZjFlYiAgQ1ZFLTIwMTYtNzE0MS5wYXRjaA0KLWVlZGJkM2IxZjA0NGJiYzg4NDE0MGE3NWU0 MGJlMGY5N2VhM2QwZGY2YTdiYzc5NThkYjdjZTAxNTU2NDJmY2QgIENWRS0yMDE2LTcxNjcucGF0 Y2gNCi02NDk2YWE2NDgyZWFhZTkxODdlNmMwM2VhMDcxOTdhMDJhZTM4MmM2ODRiMGFjMDBjZjZj NTBjOTZjYjE2NTkzICBDVkUtMjAxNi04NjE1LnBhdGNoDQotMmJjMzczM2QwNmE2NDdhZmUwMTUx MzIxN2MwOTQzMTUyZmNlMWU4MjcwZjk3YzQxOGNjZDJiYTBkZGVhNGYwMSAgQ1ZFLTIwMTYtODYx Ni5wYXRjaA0KLTE4NjA2ODZkNDQ0ZjM3MTBmYzljM2I1YWFiNjZiZWRlZThiZjc3NzUxNmM5MDVi ZjczM2EzZDM0MmIzMDM0ZTAgIENWRS0yMDE2LTg2MTcucGF0Y2gNCi1mZjkxODk4YTkzNWJjOTI4 NDA3Y2FjNDI4YmIyNmNmYWMyMDczZWM4YWJhMmNiMzhjMDA1Y2ZjMmZlYzhmYmZjICBDVkUtMjAx Ni04NjE4LnBhdGNoDQotZDg5YWVmZTRlNGRjNTkxYjFlMjM0MWVlNjNiMDlkMTg2YmI4NTI2OGVl N2IzMzIyZDJjNmM2MTAwYjg5ZmM2MSAgQ1ZFLTIwMTYtODYxOS5wYXRjaA0KLWRhZTI0Mzc5MjNj NzcwODVkMzdkODhhZTVlY2VkMzg4ZWIyYzkyNGMwMmMwYzRlMGY4ZTQ0ZjhjOGYyOTExZGIgIENW RS0yMDE2LTg2MjAucGF0Y2gNCi0wNWMwMTRiMjVmMjVjZmU2ODlhMWNlNmQ4MjM4ZWY4OTA2ZjBj NmFkZmU2NDgzN2U1Yjc0NjkxZjBhNWRiMjg3ICBDVkUtMjAxNi04NjIxLnBhdGNoDQotNTE2YTNj ZWE2OTU3YzQzNTEzYTRlNTU0MjFkNzlkZGZhMjZiYmFmMmFkY2JiNDJkN2VjMjcxZWM1ODM3NzBk OSAgQ1ZFLTIwMTYtODYyMi5wYXRjaA0KLWY2Njc2NGY3YWRlMTQ2ZjhkZjUwMWQ1YTgwYmU3NzZk NzkwYjFkOGQxZTJmODc3NWQ4OTIzNDNmZTg3YWNmYzEgIENWRS0yMDE2LTg2MjMucGF0Y2gNCi1m NTNiZjJkOWQ3ZGRkYzhjNjcwZGRkNTBhYTZkY2QzMmE5ZjQ1ZmZjMTNlMTdjZDQ0ZGYzMWUxMTI3 ZDk0MmIyICBDVkUtMjAxNi04NjI0LWZpeGVkLnBhdGNoIg0KLXNoYTUxMnN1bXM9IjY2NWVmMTc4 YzI4MmMxNGY0Mjk0OTg1NDdiMzcxMWVmNzlmYWY4NWY2ZGI3ZjRlYzI0MjU5ZTJjNjI0N2Y2ZWUy MzRkZGExNThlYmMyMDdkMDNmMDhiNTE5OGM1ODQ0NDgwZTA1NGYyNGYwNTRiMmRlNmM2YTE1ZDRm MWNlNmU2ICBjdXJsLTcuNDkuMS50YXIuYnoyDQotYTU5NmU0ODliMGI1NjZkOWRjYzgyOTJjY2Vj NGQ5MGRmYmVhZTdjYjExZTI1MDg3MTIxN2ZmOTBkMWM5NTI1ZDYwMmY0MGUxMTJlYjBkNDdhMGE1 OTdlNTc2OGMxMDU0MjNkMWNiMGNiMjgyNWMzOWEzMTllYTlkNTgyMjY5ZDAgIENWRS0yMDE2LTU0 MTkucGF0Y2gNCi05NTc4ZjEzYzVkOGU1YTVkMTg0YjViMDhkZDdkNTlkZTU5NjY0NDA4NGYyZGUw NGMwMjVhZDhjZDc4ZTExZGFkY2ZmNDViZjRmYWIwMmI4OTQyZDdlZDE5OTc3ZGVjNGQyMjA4OTNm Njc1ZDY0ZWQxM2IyNzI4NGQ2M2RmYTVmMSAgQ1ZFLTIwMTYtNTQyMC5wYXRjaA0KLTJiNWU3N2Rk YTExZGJiNzdjYmZlNzYwZGE1Mzc3Yzk0YTE2NjRiMDRmMjU0YzlmYTY0MmY0OWRhMTE5ZDkzMTIz ZWY2ZWUyN2U0YzA4ZDBiYTkwOTQyNDA3OTFhYzA5MjczYzhiZTIzZmE4Y2E1OTgyZjhlZDE0ZDZi MjlhZDdlICBDVkUtMjAxNi01NDIxLnBhdGNoDQotN2VhZThiMzdmYjliYThkZmMwZDY2NThiMzcx OTE1NjA2Njg5MTRhODRhYmE0MTFjZmRhYzE1NWJkMTc0OWI5ODA1MTQxMjRjMDY1M2U4NTgyM2E4 YTBlNzcwZjQ3Y2NjMmE0MTc3ODEwYjAyY2ZjNjQxYzkwZjAwODYzOTg3OWUgIENWRS0yMDE2LTcx NDEucGF0Y2gNCi1jOTVkNTcxMWRiMDgwODRlNmE1YzIwZWNkMmM4YWE4YTQ5NDI0MGE0NjM5NDA2 OTJiMWQ5ZTNhODFjY2I4OTk4OTRjMWFjOGNhNjVlMzVkNzgzNDM1MjMwNWJmODg3MmM2ZTQ5MDdm ZjY5NWU3MjE4MjRlOGU3YzExOTBmMTg2MyAgQ1ZFLTIwMTYtNzE2Ny5wYXRjaA0KLTAzZjQ3Mzgw NWJjMzkyYzdjOGQxMzM2YWJiNjk4MTcxNTllZDI4OTIyMjBkZTgxYWZhYjM2ZjlkN2M0NzliZjZm MDFhNWM1ZjkwZDkzZTcwNzZkYzFjZDg1NWUxMWM1OTFlMzkzYmQzZjEyNWE2NzEyMjFjYWRlMTQ1 NWI2MmQxICBDVkUtMjAxNi04NjE1LnBhdGNoDQotODY1NjI5YjI5NmIwY2VjNWJiNzc0Y2Y0NmQ4 NmIzZTY5YjFjMjBmMTE3NmZlZWMzYzk0NWM1NGZhN2UxMWY5NDRiODZkZjJhNjVlNzJmZWZiOGE3 NTg1NmQ1MTQ2NDA4MThmNjQ2YTM0NmJmNjgwODFkY2Y1YTBiMjgzYzE0YWMgIENWRS0yMDE2LTg2 MTYucGF0Y2gNCi1iMDIwYzI3ZTllMjc1MjU4MGM2YWYxYTg5MDc4NWJmYzEzMDc4NjVlNzBiZDAw YTcxMzNlZTQ5NWIyN2E2YjExMmU3ZWM2NzBiODI0YzM0MmQyY2M1NmQ2ZDZhZmEwMzg3ZTk2M2Q1 OWExOGZjYzNkNzI0Zjg1ZDFmN2E5ZTk3ZCAgQ1ZFLTIwMTYtODYxNy5wYXRjaA0KLWVmN2M3NTUy MDU3ZDcwOTQyODJmYTJlYjQzMGYxNDZhMmU4NDNkYzc5YjEzZGVjYmY3YmQ3ZjQ0YzlkZGQ4YjVm YzNkMGU1YTdmNzY0MmVhZGEwNDgzNzNjMDg0N2VhNjFiZmMwZjI4NGVkNjY5ODBlYzE1ZDI0ZTYz N2ExOTViICBDVkUtMjAxNi04NjE4LnBhdGNoDQotYzQxNGRhNWZmZmY0NmY2ZWFlNzBjZGU5MGJl ZjdhNjkxYzA5MzY0ZmJiMTM0N2U0NTlhYzYzYTJhM2E1NDlmZTIzZTFlMTk0OTBmMDU1Yjk3NjYw ZWEyMzhlMmIwOGVkODc5MzgyOTQ0Nzk0NzY5YWRhOWQ4OWJhNTMyOTQ0MjggIENWRS0yMDE2LTg2 MTkucGF0Y2gNCi02OGI2MzEyZjAwNmY1ZmYzZTdmZjQyYjk2NjkzYmE1ZDQ4ODg5YTBjZWU0ODVm M2I5N2EwNWY5YjQ3YjQ2Yjk1MDI0OTBlM2ZlZGE1Mjc5MDJiMDgwZTkwNWU0NWM0ZDZiNmQxMjJm YjZjYzM3NWJjMjFiMzBkMDg2ZDg0MWU3NiAgQ1ZFLTIwMTYtODYyMC5wYXRjaA0KLTdjOTBhMWIy NjY2YWE5YWNmMDU3NDRkMzBmNDM0MmVkMGE4ZjcyOTc3ODZlN2VkNDZkMTUyNTdlMmQ4MTAyOTY2 OTgyODFiZTZhNzZmOTQ2YWQzOTM2OGE2NjMzOGNiNTMxNzY1MTAxNGQ2MDI5NmJiMjE0NTk2N2Ux Mzk2YTQ2ICBDVkUtMjAxNi04NjIxLnBhdGNoDQotODUxY2U4ODZmMmNmZmVjNTBhNDM4M2Q5YWI4 Yjc1MzIwNGFjNjRlZjdiN2JiNDdmOWRkNDkxNGRhYWYxYjZkNWQ4YWU0YmJkZGFhZjFlNDhhMzIz ZmQwZWVmZjQwYTI2NDI5OTYzOTEyOWVjNzU1ZGJhOGQwNDM4MmE1MGUwZTUgIENWRS0yMDE2LTg2 MjIucGF0Y2gNCi03ODJmMzFiOTJhNTY4MDdlMjMyYTEyMzI4YzVkZGY5Yjk1ODcxMTdlMjVmNzMw YzQ0MGY2ZmE0MGM3MjUwMWNkZDQxYjYxZjM2NzMxNGIzYjJkZTQ0YjM5NDYwNWY0YTY3NjNkYmU4 NGEzYzJmMGI1ZGJmMWNjYmM4ODJlMzk1MiAgQ1ZFLTIwMTYtODYyMy5wYXRjaA0KLWMxYjVlYmNl MTNlOWVhN2RhNjExZjVlZWU0M2JmM2NmMjgwMzRkZDBlMDA4Nzc0OTRjMDQ0NTlkZDI0ZjNiNTZl ODUwMTQ3MGJiMDZmMjEwYWZkYTg2ZTU3YzlmZmJlNjFiYzljZGViOWM4NjU5Y2I0NDE1YjdmNzE1 ZjZhYWM3ICBDVkUtMjAxNi04NjI0LWZpeGVkLnBhdGNoIg0KK21kNXN1bXM9ImRkMDE0ZGYwNmZm MWQxMmUxNzNkZTg2ODczZjlmNzdhICBjdXJsLTcuNTIuMS50YXIuYnoyIg0KK3NoYTI1NnN1bXM9 ImQxNjE4NWE3NjdjYjJjMWJhM2Q1YjkwOTZlYzU0ZTVlYzE5OGIyMTNmNDU4NjRhMzhiM2JkYTRi YmY4NzM4OWIgIGN1cmwtNy41Mi4xLnRhci5iejIiDQorc2hhNTEyc3Vtcz0iY2YzNjU2M2M3N2Qw OTZmMmM2MDg0MzU0ZWQ2ZDQ1Y2NjYTdjNTU3ODI4Y2VhYjIxMjA0ZTRlOGJlMGQ0ZjBkMjg3ODM5 YzhjZmFjOTA2MTc0Yjg2ZDUxYTFlZTgxNmMyNzY5ZmM3OGVmODhmMDM5Yzk2NDViZDJjMjc5ODJh NzUgIGN1cmwtNy41Mi4xLnRhci5iejIiDQpkaWZmIC0tZ2l0IGEvbWFpbi9jdXJsL0NWRS0yMDE2 LTU0MTkucGF0Y2ggYi9tYWluL2N1cmwvQ1ZFLTIwMTYtNTQxOS5wYXRjaA0KZGVsZXRlZCBmaWxl IG1vZGUgMTAwNjQ0DQppbmRleCA0ZWI3NGRkLi4wMDAwMDAwDQotLS0gYS9tYWluL2N1cmwvQ1ZF LTIwMTYtNTQxOS5wYXRjaA0KKysrIC9kZXYvbnVsbA0KQEAgLTEsODUgKzAsMCBAQA0KLUZyb20g NDE2YWQ5MGFmYzUwZDljYmNiNTBiYTRhYjI4Zjg4ZDI2MDc3NGY2ZCBNb24gU2VwIDE3IDAwOjAw OjAwIDIwMDENCi1Gcm9tOiBEYW5pZWwgU3RlbmJlcmcgPGRhbmllbEBoYXh4LnNlPg0KLURhdGU6 IEZyaSwgMSBKdWwgMjAxNiAxMzozMjozMSArMDIwMA0KLVN1YmplY3Q6IFtQQVRDSF0gVExTOiBz d2l0Y2ggb2ZmIFNTTCBzZXNzaW9uIGlkIHdoZW4gY2xpZW50IGNlcnQgaXMgdXNlZA0KLQ0KLUNW RS0yMDE2LTU0MTkNCi1CdWc6IGh0dHBzOi8vY3VybC5oYXh4LnNlL2RvY3MvYWR2XzIwMTYwODAz QS5odG1sDQotUmVwb3J0ZWQtYnk6IEJydSBSb20NCi1Db250cmlidXRpb25zLWJ5OiBFcmljIFJl c2NvcmxhIGFuZCBSYXkgU2F0aXJvDQotLS0tDQotIGxpYi91cmwuYyAgICAgICB8ICAxICsNCi0g bGliL3VybGRhdGEuaCAgIHwgIDEgKw0KLSBsaWIvdnRscy92dGxzLmMgfCAxMCArKysrKysrKysr DQotIDMgZmlsZXMgY2hhbmdlZCwgMTIgaW5zZXJ0aW9ucygrKQ0KLQ0KLWRpZmYgLS1naXQgYS9s aWIvdXJsLmMgYi9saWIvdXJsLmMNCi1pbmRleCAyNThhMjg2Li5lNTQ3ZTVjIDEwMDY0NA0KLS0t LSBhL2xpYi91cmwuYw0KLSsrKyBiL2xpYi91cmwuYw0KLUBAIC02MTIxLDEwICs2MTIxLDExIEBA IHN0YXRpYyBDVVJMY29kZSBjcmVhdGVfY29ubihzdHJ1Y3QgQ3VybF9lYXN5ICpkYXRhLA0KLSAg IGRhdGEtPnNldC5zc2wuQ1JMZmlsZSA9IGRhdGEtPnNldC5zdHJbU1RSSU5HX1NTTF9DUkxGSUxF XTsNCi0gICBkYXRhLT5zZXQuc3NsLmlzc3VlcmNlcnQgPSBkYXRhLT5zZXQuc3RyW1NUUklOR19T U0xfSVNTVUVSQ0VSVF07DQotICAgZGF0YS0+c2V0LnNzbC5yYW5kb21fZmlsZSA9IGRhdGEtPnNl dC5zdHJbU1RSSU5HX1NTTF9SQU5ET01fRklMRV07DQotICAgZGF0YS0+c2V0LnNzbC5lZ2Rzb2Nr ZXQgPSBkYXRhLT5zZXQuc3RyW1NUUklOR19TU0xfRUdEU09DS0VUXTsNCi0gICBkYXRhLT5zZXQu c3NsLmNpcGhlcl9saXN0ID0gZGF0YS0+c2V0LnN0cltTVFJJTkdfU1NMX0NJUEhFUl9MSVNUXTsN Ci0rICBkYXRhLT5zZXQuc3NsLmNsaWVudGNlcnQgPSBkYXRhLT5zZXQuc3RyW1NUUklOR19DRVJU XTsNCi0gI2lmZGVmIFVTRV9UTFNfU1JQDQotICAgZGF0YS0+c2V0LnNzbC51c2VybmFtZSA9IGRh dGEtPnNldC5zdHJbU1RSSU5HX1RMU0FVVEhfVVNFUk5BTUVdOw0KLSAgIGRhdGEtPnNldC5zc2wu cGFzc3dvcmQgPSBkYXRhLT5zZXQuc3RyW1NUUklOR19UTFNBVVRIX1BBU1NXT1JEXTsNCi0gI2Vu ZGlmDQotIA0KLWRpZmYgLS1naXQgYS9saWIvdXJsZGF0YS5oIGIvbGliL3VybGRhdGEuaA0KLWlu ZGV4IDYxMWM1YTcuLjNjZjdlZDkgMTAwNjQ0DQotLS0tIGEvbGliL3VybGRhdGEuaA0KLSsrKyBi L2xpYi91cmxkYXRhLmgNCi1AQCAtMzQ5LDEwICszNDksMTEgQEAgc3RydWN0IHNzbF9jb25maWdf ZGF0YSB7DQotICAgYm9vbCB2ZXJpZnlzdGF0dXM7ICAgICAvKiBzZXQgVFJVRSBpZiBjZXJ0aWZp Y2F0ZSBzdGF0dXMgbXVzdCBiZSBjaGVja2VkICovDQotICAgY2hhciAqQ0FwYXRoOyAgICAgICAg ICAvKiBjZXJ0aWZpY2F0ZSBkaXIgKGRvZXNuJ3Qgd29yayBvbiB3aW5kb3dzKSAqLw0KLSAgIGNo YXIgKkNBZmlsZTsgICAgICAgICAgLyogY2VydGlmaWNhdGUgdG8gdmVyaWZ5IHBlZXIgYWdhaW5z dCAqLw0KLSAgIGNvbnN0IGNoYXIgKkNSTGZpbGU7ICAgLyogQ1JMIHRvIGNoZWNrIGNlcnRpZmlj YXRlIHJldm9jYXRpb24gKi8NCi0gICBjb25zdCBjaGFyICppc3N1ZXJjZXJ0Oy8qIG9wdGlvbmFs IGlzc3VlciBjZXJ0aWZpY2F0ZSBmaWxlbmFtZSAqLw0KLSsgIGNoYXIgKmNsaWVudGNlcnQ7DQot ICAgY2hhciAqcmFuZG9tX2ZpbGU7ICAgICAvKiBwYXRoIHRvIGZpbGUgY29udGFpbmluZyAicmFu ZG9tIiBkYXRhICovDQotICAgY2hhciAqZWdkc29ja2V0OyAgICAgICAvKiBwYXRoIHRvIGZpbGUg Y29udGFpbmluZyB0aGUgRUdEIGRhZW1vbiBzb2NrZXQgKi8NCi0gICBjaGFyICpjaXBoZXJfbGlz dDsgICAgIC8qIGxpc3Qgb2YgY2lwaGVycyB0byB1c2UgKi8NCi0gICBzaXplX3QgbWF4X3NzbF9z ZXNzaW9uczsgLyogU1NMIHNlc3Npb24gaWQgY2FjaGUgc2l6ZSAqLw0KLSAgIGN1cmxfc3NsX2N0 eF9jYWxsYmFjayBmc3NsY3R4OyAvKiBmdW5jdGlvbiB0byBpbml0aWFsaXplIHNzbCBjdHggKi8N Ci1kaWZmIC0tZ2l0IGEvbGliL3Z0bHMvdnRscy5jIGIvbGliL3Z0bHMvdnRscy5jDQotaW5kZXgg ZDNlNDFjZC4uMzNlMjA5ZCAxMDA2NDQNCi0tLS0gYS9saWIvdnRscy92dGxzLmMNCi0rKysgYi9s aWIvdnRscy92dGxzLmMNCi1AQCAtMTU0LDIwICsxNTQsMzAgQEAgQ3VybF9jbG9uZV9zc2xfY29u ZmlnKHN0cnVjdCBzc2xfY29uZmlnX2RhdGEgKnNvdXJjZSwNCi0gICAgICAgcmV0dXJuIEZBTFNF Ow0KLSAgIH0NCi0gICBlbHNlDQotICAgICBkZXN0LT5yYW5kb21fZmlsZSA9IE5VTEw7DQotIA0K LSsgIGlmKHNvdXJjZS0+Y2xpZW50Y2VydCkgew0KLSsgICAgZGVzdC0+Y2xpZW50Y2VydCA9IHN0 cmR1cChzb3VyY2UtPmNsaWVudGNlcnQpOw0KLSsgICAgaWYoIWRlc3QtPmNsaWVudGNlcnQpDQot KyAgICAgIHJldHVybiBGQUxTRTsNCi0rICAgIGRlc3QtPnNlc3Npb25pZCA9IEZBTFNFOw0KLSsg IH0NCi0rICBlbHNlDQotKyAgICBkZXN0LT5jbGllbnRjZXJ0ID0gTlVMTDsNCi0rDQotICAgcmV0 dXJuIFRSVUU7DQotIH0NCi0gDQotIHZvaWQgQ3VybF9mcmVlX3NzbF9jb25maWcoc3RydWN0IHNz bF9jb25maWdfZGF0YSogc3NsYykNCi0gew0KLSAgIEN1cmxfc2FmZWZyZWUoc3NsYy0+Q0FmaWxl KTsNCi0gICBDdXJsX3NhZmVmcmVlKHNzbGMtPkNBcGF0aCk7DQotICAgQ3VybF9zYWZlZnJlZShz c2xjLT5jaXBoZXJfbGlzdCk7DQotICAgQ3VybF9zYWZlZnJlZShzc2xjLT5lZ2Rzb2NrZXQpOw0K LSAgIEN1cmxfc2FmZWZyZWUoc3NsYy0+cmFuZG9tX2ZpbGUpOw0KLSsgIEN1cmxfc2FmZWZyZWUo c3NsYy0+Y2xpZW50Y2VydCk7DQotIH0NCi0gDQotIA0KLSAvKg0KLSAgKiBDdXJsX3JhbmQoKSBy ZXR1cm5zIGEgcmFuZG9tIHVuc2lnbmVkIGludGVnZXIsIDMyYml0Lg0KLS0tIA0KLTIuOC4xDQot DQpkaWZmIC0tZ2l0IGEvbWFpbi9jdXJsL0NWRS0yMDE2LTU0MjAucGF0Y2ggYi9tYWluL2N1cmwv Q1ZFLTIwMTYtNTQyMC5wYXRjaA0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCBlOTFi OWM3Li4wMDAwMDAwDQotLS0gYS9tYWluL2N1cmwvQ1ZFLTIwMTYtNTQyMC5wYXRjaA0KKysrIC9k ZXYvbnVsbA0KQEAgLTEsMzAgKzAsMCBAQA0KLUZyb20gZjY0NzRmZjNiZmIzOGMyOGI3MGI1YmEw MTA0OGVkYzQxZjY1NDM3NiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDENCi1Gcm9tOiBEYW5pZWwg U3RlbmJlcmcgPGRhbmllbEBoYXh4LnNlPg0KLURhdGU6IFN1biwgMzEgSnVsIDIwMTYgMDA6NTE6 NDggKzAyMDANCi1TdWJqZWN0OiBbUEFUQ0hdIFRMUzogb25seSByZXVzZSBjb25uZWN0aW9ucyB3 aXRoIHRoZSBzYW1lIGNsaWVudCBjZXJ0DQotDQotQ1ZFLTIwMTYtNTQyMA0KLUJ1ZzogaHR0cHM6 Ly9jdXJsLmhheHguc2UvZG9jcy9hZHZfMjAxNjA4MDNCLmh0bWwNCi0tLS0NCi0gbGliL3Z0bHMv dnRscy5jIHwgMSArDQotIDEgZmlsZSBjaGFuZ2VkLCAxIGluc2VydGlvbigrKQ0KLQ0KLWRpZmYg LS1naXQgYS9saWIvdnRscy92dGxzLmMgYi9saWIvdnRscy92dGxzLmMNCi1pbmRleCAzM2UyMDlk Li4zODYzNzc3IDEwMDY0NA0KLS0tLSBhL2xpYi92dGxzL3Z0bHMuYw0KLSsrKyBiL2xpYi92dGxz L3Z0bHMuYw0KLUBAIC05NywxMCArOTcsMTEgQEAgQ3VybF9zc2xfY29uZmlnX21hdGNoZXMoc3Ry dWN0IHNzbF9jb25maWdfZGF0YSogZGF0YSwNCi0gICBpZigoZGF0YS0+dmVyc2lvbiA9PSBuZWVk bGUtPnZlcnNpb24pICYmDQotICAgICAgKGRhdGEtPnZlcmlmeXBlZXIgPT0gbmVlZGxlLT52ZXJp ZnlwZWVyKSAmJg0KLSAgICAgIChkYXRhLT52ZXJpZnlob3N0ID09IG5lZWRsZS0+dmVyaWZ5aG9z dCkgJiYNCi0gICAgICBzYWZlX3N0cmVxdWFsKGRhdGEtPkNBcGF0aCwgbmVlZGxlLT5DQXBhdGgp ICYmDQotICAgICAgc2FmZV9zdHJlcXVhbChkYXRhLT5DQWZpbGUsIG5lZWRsZS0+Q0FmaWxlKSAm Jg0KLSsgICAgIHNhZmVfc3RyZXF1YWwoZGF0YS0+Y2xpZW50Y2VydCwgbmVlZGxlLT5jbGllbnRj ZXJ0KSAmJg0KLSAgICAgIHNhZmVfc3RyZXF1YWwoZGF0YS0+cmFuZG9tX2ZpbGUsIG5lZWRsZS0+ cmFuZG9tX2ZpbGUpICYmDQotICAgICAgc2FmZV9zdHJlcXVhbChkYXRhLT5lZ2Rzb2NrZXQsIG5l ZWRsZS0+ZWdkc29ja2V0KSAmJg0KLSAgICAgIHNhZmVfc3RyZXF1YWwoZGF0YS0+Y2lwaGVyX2xp c3QsIG5lZWRsZS0+Y2lwaGVyX2xpc3QpKQ0KLSAgICAgcmV0dXJuIFRSVUU7DQotIA0KLS0tIA0K LTIuOC4xDQotDQpkaWZmIC0tZ2l0IGEvbWFpbi9jdXJsL0NWRS0yMDE2LTU0MjEucGF0Y2ggYi9t YWluL2N1cmwvQ1ZFLTIwMTYtNTQyMS5wYXRjaA0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0DQpp bmRleCA0ZjU5NDk1Li4wMDAwMDAwDQotLS0gYS9tYWluL2N1cmwvQ1ZFLTIwMTYtNTQyMS5wYXRj aA0KKysrIC9kZXYvbnVsbA0KQEAgLTEsMzUgKzAsMCBAQA0KLUZyb20gY2NiN2Q3OWI2MmM4YjE1 YTZiZTQ0NmY5YzlmZDM3NjdjMDFlYjViNiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDENCi1Gcm9t OiBEYW5pZWwgU3RlbmJlcmcgPGRhbmllbEBoYXh4LnNlPg0KLURhdGU6IFN1biwgMzEgSnVsIDIw MTYgMDE6MDk6MDQgKzAyMDANCi1TdWJqZWN0OiBbUEFUQ0hdIGN1cmxfbXVsdGlfY2xlYW51cDog Y2xlYXIgY29ubmVjdGlvbiBwb2ludGVyIGZvciBlYXN5IGhhbmRsZXMNCi1NSU1FLVZlcnNpb246 IDEuMA0KLUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOA0KLUNvbnRlbnQt VHJhbnNmZXItRW5jb2Rpbmc6IDhiaXQNCi0NCi1DVkUtMjAxNi01NDIxDQotQnVnOiBodHRwczov L2N1cmwuaGF4eC5zZS9kb2NzL2Fkdl8yMDE2MDgwM0MuaHRtbA0KLVJlcG9ydGVkLWJ5OiBNYXJj ZWxvIEVjaGV2ZXJyaWEgYW5kIEZlcm5hbmRvIE11w7Fveg0KLS0tLQ0KLSBsaWIvbXVsdGkuYyB8 IDIgKysNCi0gMSBmaWxlIGNoYW5nZWQsIDIgaW5zZXJ0aW9ucygrKQ0KLQ0KLWRpZmYgLS1naXQg YS9saWIvbXVsdGkuYyBiL2xpYi9tdWx0aS5jDQotaW5kZXggOWVlMzUyMy4uOGJiOTM2NiAxMDA2 NDQNCi0tLS0gYS9saWIvbXVsdGkuYw0KLSsrKyBiL2xpYi9tdWx0aS5jDQotQEAgLTIxNTUsMTAg KzIxNTUsMTIgQEAgc3RhdGljIHZvaWQgY2xvc2VfYWxsX2Nvbm5lY3Rpb25zKHN0cnVjdCBDdXJs X211bHRpICptdWx0aSkNCi0gICB3aGlsZShjb25uKSB7DQotICAgICBTSUdQSVBFX1ZBUklBQkxF KHBpcGVfc3QpOw0KLSAgICAgY29ubi0+ZGF0YSA9IG11bHRpLT5jbG9zdXJlX2hhbmRsZTsNCi0g DQotICAgICBzaWdwaXBlX2lnbm9yZShjb25uLT5kYXRhLCAmcGlwZV9zdCk7DQotKyAgICBjb25u LT5kYXRhLT5lYXN5X2Nvbm4gPSBOVUxMOyAvKiBjbGVhciB0aGUgZWFzeSBoYW5kbGUncyBjb25u ZWN0aW9uDQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb2ludGVyICov DQotICAgICAvKiBUaGlzIHdpbGwgcmVtb3ZlIHRoZSBjb25uZWN0aW9uIGZyb20gdGhlIGNhY2hl ICovDQotICAgICAodm9pZClDdXJsX2Rpc2Nvbm5lY3QoY29ubiwgRkFMU0UpOw0KLSAgICAgc2ln cGlwZV9yZXN0b3JlKCZwaXBlX3N0KTsNCi0gDQotICAgICBjb25uID0gQ3VybF9jb25uY2FjaGVf ZmluZF9maXJzdF9jb25uZWN0aW9uKCZtdWx0aS0+Y29ubl9jYWNoZSk7DQotLS0gDQotMi44LjEN Ci0NCmRpZmYgLS1naXQgYS9tYWluL2N1cmwvQ1ZFLTIwMTYtNzE0MS5wYXRjaCBiL21haW4vY3Vy bC9DVkUtMjAxNi03MTQxLnBhdGNoDQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IGRh YjJjYzQuLjAwMDAwMDANCi0tLSBhL21haW4vY3VybC9DVkUtMjAxNi03MTQxLnBhdGNoDQorKysg L2Rldi9udWxsDQpAQCAtMSw0MiArMCwwIEBADQotRnJvbSA3NzAwZmNiYTY0YmY1ODA2ZGUyOGY2 YzFjN2RhM2I0ZjBiMzg1NjdkIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQ0KLUZyb206IEthbWls IER1ZGthIDxrZHVka2FAcmVkaGF0LmNvbT4NCi1EYXRlOiBNb24sIDIyIEF1ZyAyMDE2IDEwOjI0 OjM1ICswMjAwDQotU3ViamVjdDogW1BBVENIXSBuc3M6IHJlZnVzZSBwcmV2aW91c2x5IGxvYWRl ZCBjZXJ0aWZpY2F0ZSBmcm9tIGZpbGUNCi0NCi0uLi4gd2hlbiB3ZSBhcmUgbm90IGFza2VkIHRv IHVzZSBhIGNlcnRpZmljYXRlIGZyb20gZmlsZQ0KLS0tLQ0KLSBsaWIvdnRscy9uc3MuYyB8IDgg KysrKysrKy0NCi0gMSBmaWxlIGNoYW5nZWQsIDcgaW5zZXJ0aW9ucygrKSwgMSBkZWxldGlvbigt KQ0KLQ0KLWRpZmYgLS1naXQgYS9saWIvdnRscy9uc3MuYyBiL2xpYi92dGxzL25zcy5jDQotaW5k ZXggMjBjNDI3Ny4uY2ZiMjI2MyAxMDA2NDQNCi0tLS0gYS9saWIvdnRscy9uc3MuYw0KLSsrKyBi L2xpYi92dGxzL25zcy5jDQotQEAgLTEwMDIsMTAgKzEwMDIsMTAgQEAgc3RhdGljIFNFQ1N0YXR1 cyBTZWxlY3RDbGllbnRDZXJ0KHZvaWQgKmFyZywgUFJGaWxlRGVzYyAqc29jaywNCi0gICBzdHJ1 Y3Qgc3NsX2Nvbm5lY3RfZGF0YSAqY29ubnNzbCA9IChzdHJ1Y3Qgc3NsX2Nvbm5lY3RfZGF0YSAq KWFyZzsNCi0gICBzdHJ1Y3QgQ3VybF9lYXN5ICpkYXRhID0gY29ubnNzbC0+ZGF0YTsNCi0gICBj b25zdCBjaGFyICpuaWNrbmFtZSA9IGNvbm5zc2wtPmNsaWVudF9uaWNrbmFtZTsNCi0rICBzdGF0 aWMgY29uc3QgY2hhciBwZW1fc2xvdG5hbWVbXSA9ICJQRU0gVG9rZW4gIzEiOw0KLSANCi0gICBp Zihjb25uc3NsLT5vYmpfY2xpY2VydCkgew0KLSAgICAgLyogdXNlIHRoZSBjZXJ0L2tleSBwcm92 aWRlZCBieSBQRU0gcmVhZGVyICovDQotLSAgICBzdGF0aWMgY29uc3QgY2hhciBwZW1fc2xvdG5h bWVbXSA9ICJQRU0gVG9rZW4gIzEiOw0KLSAgICAgU0VDSXRlbSBjZXJ0X2RlciA9IHsgMCwgTlVM TCwgMCB9Ow0KLSAgICAgdm9pZCAqcHJvdG9fd2luID0gU1NMX1JldmVhbFBpbkFyZyhzb2NrKTsN Ci0gICAgIHN0cnVjdCBDRVJUQ2VydGlmaWNhdGVTdHIgKmNlcnQ7DQotQEAgLTEwNjcsNiArMTA2 NywxMiBAQCBzdGF0aWMgU0VDU3RhdHVzIFNlbGVjdENsaWVudENlcnQodm9pZCAqYXJnLCBQUkZp bGVEZXNjICpzb2NrLA0KLSAgIGlmKE5VTEwgPT0gbmlja25hbWUpDQotICAgICBuaWNrbmFtZSA9 ICJbdW5rbm93bl0iOw0KLSANCi0rICBpZighc3RybmNtcChuaWNrbmFtZSwgcGVtX3Nsb3RuYW1l LCBzaXplb2YocGVtX3Nsb3RuYW1lKSAtIDFVKSkgew0KLSsgICAgZmFpbGYoZGF0YSwgIk5TUzog cmVmdXNpbmcgcHJldmlvdXNseSBsb2FkZWQgY2VydGlmaWNhdGUgZnJvbSBmaWxlOiAlcyIsDQot KyAgICAgICAgICBuaWNrbmFtZSk7DQotKyAgICByZXR1cm4gU0VDRmFpbHVyZTsNCi0rICB9DQot Kw0KLSAgIGlmKE5VTEwgPT0gKnBSZXRLZXkpIHsNCi0gICAgIGZhaWxmKGRhdGEsICJOU1M6IHBy aXZhdGUga2V5IG5vdCBmb3VuZCBmb3IgY2VydGlmaWNhdGU6ICVzIiwgbmlja25hbWUpOw0KLSAg ICAgcmV0dXJuIFNFQ0ZhaWx1cmU7DQotLS0gDQotMi43LjQNCi0NCmRpZmYgLS1naXQgYS9tYWlu L2N1cmwvQ1ZFLTIwMTYtNzE2Ny5wYXRjaCBiL21haW4vY3VybC9DVkUtMjAxNi03MTY3LnBhdGNo DQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDNlNmU0NTQuLjAwMDAwMDANCi0tLSBh L21haW4vY3VybC9DVkUtMjAxNi03MTY3LnBhdGNoDQorKysgL2Rldi9udWxsDQpAQCAtMSw1MyAr MCwwIEBADQotZGlmZiAtLWdpdCBhL2xpYi9lc2NhcGUuYyBiL2xpYi9lc2NhcGUuYw0KLWluZGV4 IDJjNmE3ZjYuLjVhZTRiMTggMTAwNjQ0DQotLS0tIGEvbGliL2VzY2FwZS5jDQotKysrIGIvbGli L2VzY2FwZS5jDQotQEAgLTc3LDE1ICs3NywyMSBAQCBjaGFyICpjdXJsX3VuZXNjYXBlKGNvbnN0 IGNoYXIgKnN0cmluZywgaW50IGxlbmd0aCkNCi0gDQotIGNoYXIgKmN1cmxfZWFzeV9lc2NhcGUo Q1VSTCAqaGFuZGxlLCBjb25zdCBjaGFyICpzdHJpbmcsIGludCBpbmxlbmd0aCkNCi0gew0KLS0g IHNpemVfdCBhbGxvYyA9IChpbmxlbmd0aD8oc2l6ZV90KWlubGVuZ3RoOnN0cmxlbihzdHJpbmcp KSsxOw0KLSsgIHNpemVfdCBhbGxvYzsNCi0gICBjaGFyICpuczsNCi0gICBjaGFyICp0ZXN0aW5n X3B0ciA9IE5VTEw7DQotICAgdW5zaWduZWQgY2hhciBpbjsgLyogd2UgbmVlZCB0byB0cmVhdCB0 aGUgY2hhcmFjdGVycyB1bnNpZ25lZCAqLw0KLS0gIHNpemVfdCBuZXdsZW4gPSBhbGxvYzsNCi0r ICBzaXplX3QgbmV3bGVuOw0KLSAgIHNpemVfdCBzdHJpbmRleD0wOw0KLSAgIHNpemVfdCBsZW5n dGg7DQotICAgQ1VSTGNvZGUgcmVzdWx0Ow0KLSANCi0rICBpZihpbmxlbmd0aCA8IDApDQotKyAg ICByZXR1cm4gTlVMTDsNCi0rDQotKyAgYWxsb2MgPSAoaW5sZW5ndGg/KHNpemVfdClpbmxlbmd0 aDpzdHJsZW4oc3RyaW5nKSkrMTsNCi0rICBuZXdsZW4gPSBhbGxvYzsNCi0rDQotICAgbnMgPSBt YWxsb2MoYWxsb2MpOw0KLSAgIGlmKCFucykNCi0gICAgIHJldHVybiBOVUxMOw0KLUBAIC0yMTAs MTQgKzIxNiwxNiBAQCBjaGFyICpjdXJsX2Vhc3lfdW5lc2NhcGUoQ1VSTCAqaGFuZGxlLCBjb25z dCBjaGFyICpzdHJpbmcsIGludCBsZW5ndGgsDQotICAgICAgICAgICAgICAgICAgICAgICAgICBp bnQgKm9sZW4pDQotIHsNCi0gICBjaGFyICpzdHIgPSBOVUxMOw0KLS0gIHNpemVfdCBpbnB1dGxl biA9IGxlbmd0aDsNCi0tICBzaXplX3Qgb3V0cHV0bGVuOw0KLS0gIENVUkxjb2RlIHJlcyA9IEN1 cmxfdXJsZGVjb2RlKGhhbmRsZSwgc3RyaW5nLCBpbnB1dGxlbiwgJnN0ciwgJm91dHB1dGxlbiwN Ci0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSk7DQotLSAgaWYocmVzKQ0K LS0gICAgcmV0dXJuIE5VTEw7DQotLSAgaWYob2xlbikNCi0tICAgICpvbGVuID0gY3VybHhfdXp0 b3NpKG91dHB1dGxlbik7DQotKyAgaWYobGVuZ3RoID49IDApIHsNCi0rICAgIHNpemVfdCBpbnB1 dGxlbiA9IGxlbmd0aDsNCi0rICAgIHNpemVfdCBvdXRwdXRsZW47DQotKyAgICBDVVJMY29kZSBy ZXMgPSBDdXJsX3VybGRlY29kZShoYW5kbGUsIHN0cmluZywgaW5wdXRsZW4sICZzdHIsICZvdXRw dXRsZW4sDQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBGQUxTRSk7DQotKyAg ICBpZihyZXMpDQotKyAgICAgIHJldHVybiBOVUxMOw0KLSsgICAgaWYob2xlbikNCi0rICAgICAg Km9sZW4gPSBjdXJseF91enRvc2kob3V0cHV0bGVuKTsNCi0rICB9DQotICAgcmV0dXJuIHN0cjsN Ci0gfQ0KLSANCmRpZmYgLS1naXQgYS9tYWluL2N1cmwvQ1ZFLTIwMTYtODYxNS5wYXRjaCBiL21h aW4vY3VybC9DVkUtMjAxNi04NjE1LnBhdGNoDQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQNCmlu ZGV4IGQxZmRhMzUuLjAwMDAwMDANCi0tLSBhL21haW4vY3VybC9DVkUtMjAxNi04NjE1LnBhdGNo DQorKysgL2Rldi9udWxsDQpAQCAtMSw3NSArMCwwIEBADQotRnJvbSAxNjIwZjU1MmEyNzdlZDVi MjNhNDhiOWMyN2RiZjA3NjYzY2FjMDY4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQ0KLUZyb206 IERhbmllbCBTdGVuYmVyZyA8ZGFuaWVsQGhheHguc2U+DQotRGF0ZTogVHVlLCAyNyBTZXAgMjAx NiAxNzozNjoxOSArMDIwMA0KLVN1YmplY3Q6IFtQQVRDSF0gY29va2llOiByZXBsYWNlIHVzZSBv ZiBmZ2V0cygpIHdpdGggY3VzdG9tIHZlcnNpb24NCi0NCi0uLi4gdGhhdCB3aWxsIGlnbm9yZSBs aW5lcyB0aGF0IGFyZSB0b28gbG9uZyB0byBmaXQgaW4gdGhlIGJ1ZmZlci4NCi0NCi1DVkUtMjAx Ni04NjE1DQotDQotQnVnOiBodHRwczovL2N1cmwuaGF4eC5zZS9kb2NzL2Fkdl8yMDE2MTEwMkEu aHRtbA0KLVJlcG9ydGVkLWJ5OiBDdXJlNTMNCi0tLS0NCi0gbGliL2Nvb2tpZS5jIHwgMzEgKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrLQ0KLSAxIGZpbGUgY2hhbmdlZCwgMzAgaW5zZXJ0 aW9ucygrKSwgMSBkZWxldGlvbigtKQ0KLQ0KLWRpZmYgLS1naXQgYS9saWIvY29va2llLmMgYi9s aWIvY29va2llLmMNCi1pbmRleCAwZjA1ZGEyLi5lNTA5N2QzIDEwMDY0NA0KLS0tLSBhL2xpYi9j b29raWUuYw0KLSsrKyBiL2xpYi9jb29raWUuYw0KLUBAIC05MDEsMTAgKzkwMSwzOSBAQCBDdXJs X2Nvb2tpZV9hZGQoc3RydWN0IEN1cmxfZWFzeSAqZGF0YSwNCi0gICB9DQotIA0KLSAgIHJldHVy biBjbzsNCi0gfQ0KLSANCi0rLyoNCi0rICogZ2V0X2xpbmUoKSBtYWtlcyBzdXJlIHRvIG9ubHkg cmV0dXJuIGNvbXBsZXRlIHdob2xlIGxpbmVzIHRoYXQgZml0IGluICdsZW4nDQotKyAqIGJ5dGVz IGFuZCBlbmQgd2l0aCBhIG5ld2xpbmUuDQotKyAqLw0KLStzdGF0aWMgY2hhciAqZ2V0X2xpbmUo Y2hhciAqYnVmLCBpbnQgbGVuLCBGSUxFICppbnB1dCkNCi0rew0KLSsgIGJvb2wgcGFydGlhbCA9 IEZBTFNFOw0KLSsgIHdoaWxlKDEpIHsNCi0rICAgIGNoYXIgKmIgPSBmZ2V0cyhidWYsIGxlbiwg aW5wdXQpOw0KLSsgICAgaWYoYikgew0KLSsgICAgICBzaXplX3QgcmxlbiA9IHN0cmxlbihiKTsN Ci0rICAgICAgaWYocmxlbiAmJiAoYltybGVuLTFdID09ICdcbicpKSB7DQotKyAgICAgICAgaWYo cGFydGlhbCkgew0KLSsgICAgICAgICAgcGFydGlhbCA9IEZBTFNFOw0KLSsgICAgICAgICAgY29u dGludWU7DQotKyAgICAgICAgfQ0KLSsgICAgICAgIHJldHVybiBiOw0KLSsgICAgICB9DQotKyAg ICAgIGVsc2UNCi0rICAgICAgICAvKiByZWFkIGEgcGFydGlhbCwgZGlzY2FyZCB0aGUgbmV4dCBw aWVjZSB0aGF0IGVuZHMgd2l0aCBuZXdsaW5lICovDQotKyAgICAgICAgcGFydGlhbCA9IFRSVUU7 DQotKyAgICB9DQotKyAgICBlbHNlDQotKyAgICAgIGJyZWFrOw0KLSsgIH0NCi0rICByZXR1cm4g TlVMTDsNCi0rfQ0KLSsNCi0rDQotIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKg0KLSAgKg0KLSAgKiBD dXJsX2Nvb2tpZV9pbml0KCkNCi0gICoNCi0gICogSW5pdHMgYSBjb29raWUgc3RydWN0IHRvIHJl YWQgZGF0YSBmcm9tIGEgbG9jYWwgZmlsZS4gVGhpcyBpcyBhbHdheXMNCi1AQCAtOTU3LDExICs5 ODYsMTEgQEAgc3RydWN0IENvb2tpZUluZm8gKkN1cmxfY29va2llX2luaXQoc3RydWN0IEN1cmxf ZWFzeSAqZGF0YSwNCi0gICAgIGJvb2wgaGVhZGVybGluZTsNCi0gDQotICAgICBsaW5lID0gbWFs bG9jKE1BWF9DT09LSUVfTElORSk7DQotICAgICBpZighbGluZSkNCi0gICAgICAgZ290byBmYWls Ow0KLS0gICAgd2hpbGUoZmdldHMobGluZSwgTUFYX0NPT0tJRV9MSU5FLCBmcCkpIHsNCi0rICAg IHdoaWxlKGdldF9saW5lKGxpbmUsIE1BWF9DT09LSUVfTElORSwgZnApKSB7DQotICAgICAgIGlm KGNoZWNrcHJlZml4KCJTZXQtQ29va2llOiIsIGxpbmUpKSB7DQotICAgICAgICAgLyogVGhpcyBp cyBhIGNvb2tpZSBsaW5lLCBnZXQgaXQhICovDQotICAgICAgICAgbGluZXB0cj0mbGluZVsxMV07 DQotICAgICAgICAgaGVhZGVybGluZT1UUlVFOw0KLSAgICAgICB9DQotLS0gDQotMi45LjMNCi0N CmRpZmYgLS1naXQgYS9tYWluL2N1cmwvQ1ZFLTIwMTYtODYxNi5wYXRjaCBiL21haW4vY3VybC9D VkUtMjAxNi04NjE2LnBhdGNoDQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDY3MzA5 YmYuLjAwMDAwMDANCi0tLSBhL21haW4vY3VybC9DVkUtMjAxNi04NjE2LnBhdGNoDQorKysgL2Rl di9udWxsDQpAQCAtMSw2NiArMCwwIEBADQotRnJvbSBjZWY1MTBiZWIyMjJhYjU3NTBhZmNhYzJj NzRmY2JjZGMzMWFkYTY0IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQ0KLUZyb206IERhbmllbCBT dGVuYmVyZyA8ZGFuaWVsQGhheHguc2U+DQotRGF0ZTogVHVlLCAyNyBTZXAgMjAxNiAxODowMTo1 MyArMDIwMA0KLVN1YmplY3Q6IFtQQVRDSF0gY29ubmVjdGlvbmV4aXN0czogdXNlIGNhc2Ugc2Vu c2l0aXZlIHVzZXIvcGFzc3dvcmQNCi0gY29tcGFyaXNvbnMNCi0NCi1DVkUtMjAxNi04NjE2DQot DQotQnVnOiBodHRwczovL2N1cmwuaGF4eC5zZS9kb2NzL2Fkdl8yMDE2MTEwMkIuaHRtbA0KLVJl cG9ydGVkLWJ5OiBDdXJlNTMNCi0tLS0NCi0gbGliL3VybC5jIHwgMTIgKysrKysrLS0tLS0tDQot IDEgZmlsZSBjaGFuZ2VkLCA2IGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pDQotDQotZGlm ZiAtLWdpdCBhL2xpYi91cmwuYyBiL2xpYi91cmwuYw0KLWluZGV4IDkxYjJiZjguLmNkMzMzNWMg MTAwNjQ0DQotLS0tIGEvbGliL3VybC5jDQotKysrIGIvbGliL3VybC5jDQotQEAgLTM0MDEsMTIg KzM0MDEsMTIgQEAgQ29ubmVjdGlvbkV4aXN0cyhzdHJ1Y3QgQ3VybF9lYXN5ICpkYXRhLA0KLSAg ICAgICB9DQotIA0KLSAgICAgICBpZighKG5lZWRsZS0+aGFuZGxlci0+ZmxhZ3MgJiBQUk9UT1BU X0NSRURTUEVSUkVRVUVTVCkpIHsNCi0gICAgICAgICAvKiBUaGlzIHByb3RvY29sIHJlcXVpcmVz IGNyZWRlbnRpYWxzIHBlciBjb25uZWN0aW9uLA0KLSAgICAgICAgICAgIHNvIHZlcmlmeSB0aGF0 IHdlJ3JlIHVzaW5nIHRoZSBzYW1lIG5hbWUgYW5kIHBhc3N3b3JkIGFzIHdlbGwgKi8NCi0tICAg ICAgICBpZighc3RyZXF1YWwobmVlZGxlLT51c2VyLCBjaGVjay0+dXNlcikgfHwNCi0tICAgICAg ICAgICAhc3RyZXF1YWwobmVlZGxlLT5wYXNzd2QsIGNoZWNrLT5wYXNzd2QpKSB7DQotKyAgICAg ICAgaWYoc3RyY21wKG5lZWRsZS0+dXNlciwgY2hlY2stPnVzZXIpIHx8DQotKyAgICAgICAgICAg c3RyY21wKG5lZWRsZS0+cGFzc3dkLCBjaGVjay0+cGFzc3dkKSkgew0KLSAgICAgICAgICAgLyog b25lIG9mIHRoZW0gd2FzIGRpZmZlcmVudCAqLw0KLSAgICAgICAgICAgY29udGludWU7DQotICAg ICAgICAgfQ0KLSAgICAgICB9DQotIA0KLUBAIC0zNDYyLDEyICszNDYyLDEyIEBAIENvbm5lY3Rp b25FeGlzdHMoc3RydWN0IEN1cmxfZWFzeSAqZGF0YSwNCi0gICAgICAgICAgICBhbHJlYWR5IGF1 dGhlbnRpY2F0aW5nIHdpdGggdGhlIHJpZ2h0IGNyZWRlbnRpYWxzLiBJZiBub3QsIGtlZXANCi0g ICAgICAgICAgICBsb29raW5nIHNvIHRoYXQgd2UgY2FuIHJldXNlIE5UTE0gY29ubmVjdGlvbnMg aWYNCi0gICAgICAgICAgICBwb3NzaWJsZS4gKEVzcGVjaWFsbHkgd2UgbXVzdCBub3QgcmV1c2Ug dGhlIHNhbWUgY29ubmVjdGlvbiBpZg0KLSAgICAgICAgICAgIHBhcnR3YXkgdGhyb3VnaCBhIGhh bmRzaGFrZSEpICovDQotICAgICAgICAgaWYod2FudE5UTE1odHRwKSB7DQotLSAgICAgICAgICBp Zighc3RyZXF1YWwobmVlZGxlLT51c2VyLCBjaGVjay0+dXNlcikgfHwNCi0tICAgICAgICAgICAg ICFzdHJlcXVhbChuZWVkbGUtPnBhc3N3ZCwgY2hlY2stPnBhc3N3ZCkpDQotKyAgICAgICAgICBp ZihzdHJjbXAobmVlZGxlLT51c2VyLCBjaGVjay0+dXNlcikgfHwNCi0rICAgICAgICAgICAgIHN0 cmNtcChuZWVkbGUtPnBhc3N3ZCwgY2hlY2stPnBhc3N3ZCkpDQotICAgICAgICAgICAgIGNvbnRp bnVlOw0KLSAgICAgICAgIH0NCi0gICAgICAgICBlbHNlIGlmKGNoZWNrLT5udGxtLnN0YXRlICE9 IE5UTE1TVEFURV9OT05FKSB7DQotICAgICAgICAgICAvKiBDb25uZWN0aW9uIGlzIHVzaW5nIE5U TE0gYXV0aCBidXQgd2UgZG9uJ3Qgd2FudCBOVExNICovDQotICAgICAgICAgICBjb250aW51ZTsN Ci1AQCAtMzQ3NywxMiArMzQ3NywxMiBAQCBDb25uZWN0aW9uRXhpc3RzKHN0cnVjdCBDdXJsX2Vh c3kgKmRhdGEsDQotICAgICAgICAgaWYod2FudFByb3h5TlRMTWh0dHApIHsNCi0gICAgICAgICAg IC8qIEJvdGggY2hlY2stPnByb3h5dXNlciBhbmQgY2hlY2stPnByb3h5cGFzc3dkIGNhbiBiZSBO VUxMICovDQotICAgICAgICAgICBpZighY2hlY2stPnByb3h5dXNlciB8fCAhY2hlY2stPnByb3h5 cGFzc3dkKQ0KLSAgICAgICAgICAgICBjb250aW51ZTsNCi0gDQotLSAgICAgICAgICBpZighc3Ry ZXF1YWwobmVlZGxlLT5wcm94eXVzZXIsIGNoZWNrLT5wcm94eXVzZXIpIHx8DQotLSAgICAgICAg ICAgICAhc3RyZXF1YWwobmVlZGxlLT5wcm94eXBhc3N3ZCwgY2hlY2stPnByb3h5cGFzc3dkKSkN Ci0rICAgICAgICAgIGlmKHN0cmNtcChuZWVkbGUtPnByb3h5dXNlciwgY2hlY2stPnByb3h5dXNl cikgfHwNCi0rICAgICAgICAgICAgIHN0cmNtcChuZWVkbGUtPnByb3h5cGFzc3dkLCBjaGVjay0+ cHJveHlwYXNzd2QpKQ0KLSAgICAgICAgICAgICBjb250aW51ZTsNCi0gICAgICAgICB9DQotICAg ICAgICAgZWxzZSBpZihjaGVjay0+cHJveHludGxtLnN0YXRlICE9IE5UTE1TVEFURV9OT05FKSB7 DQotICAgICAgICAgICAvKiBQcm94eSBjb25uZWN0aW9uIGlzIHVzaW5nIE5UTE0gYXV0aCBidXQg d2UgZG9uJ3Qgd2FudCBOVExNICovDQotICAgICAgICAgICBjb250aW51ZTsNCi0tLSANCi0yLjku Mw0KLQ0KZGlmZiAtLWdpdCBhL21haW4vY3VybC9DVkUtMjAxNi04NjE3LnBhdGNoIGIvbWFpbi9j dXJsL0NWRS0yMDE2LTg2MTcucGF0Y2gNCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXgg NjZjN2Y5YS4uMDAwMDAwMA0KLS0tIGEvbWFpbi9jdXJsL0NWRS0yMDE2LTg2MTcucGF0Y2gNCisr KyAvZGV2L251bGwNCkBAIC0xLDM2ICswLDAgQEANCi1Gcm9tIDM1OTkzNDFkZDYxMTMwM2VlOTU0 NDgzOWQzMGY2MDNmNjA2ZDEwODIgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxDQotRnJvbTogRGFu aWVsIFN0ZW5iZXJnIDxkYW5pZWxAaGF4eC5zZT4NCi1EYXRlOiBXZWQsIDI4IFNlcCAyMDE2IDAw OjA1OjEyICswMjAwDQotU3ViamVjdDogW1BBVENIXSBiYXNlNjQ6IGNoZWNrIGZvciBpbnRlZ2Vy IG92ZXJmbG93IG9uIGxhcmdlIGlucHV0DQotDQotQ1ZFLTIwMTYtODYxNw0KLQ0KLUJ1ZzogaHR0 cHM6Ly9jdXJsLmhheHguc2UvZG9jcy9hZHZfMjAxNjExMDJDLmh0bWwNCi1SZXBvcnRlZC1ieTog Q3VyZTUzDQotLS0tDQotIGxpYi9iYXNlNjQuYyB8IDUgKysrKysNCi0gMSBmaWxlIGNoYW5nZWQs IDUgaW5zZXJ0aW9ucygrKQ0KLQ0KLWRpZmYgLS1naXQgYS9saWIvYmFzZTY0LmMgYi9saWIvYmFz ZTY0LmMNCi1pbmRleCBhZDI1NDU5Li4yMDRhMjI3IDEwMDY0NA0KLS0tLSBhL2xpYi9iYXNlNjQu Yw0KLSsrKyBiL2xpYi9iYXNlNjQuYw0KLUBAIC0xODgsMTAgKzE4OCwxNSBAQCBzdGF0aWMgQ1VS TGNvZGUgYmFzZTY0X2VuY29kZShjb25zdCBjaGFyICp0YWJsZTY0LA0KLSAgICpvdXRsZW4gPSAw Ow0KLSANCi0gICBpZighaW5zaXplKQ0KLSAgICAgaW5zaXplID0gc3RybGVuKGluZGF0YSk7DQot IA0KLSsjaWYgU0laRU9GX1NJWkVfVCA9PSA0DQotKyAgaWYoaW5zaXplID4gVUlOVF9NQVgvNCkN Ci0rICAgIHJldHVybiBDVVJMRV9PVVRfT0ZfTUVNT1JZOw0KLSsjZW5kaWYNCi0rDQotICAgYmFz ZTY0ZGF0YSA9IG91dHB1dCA9IG1hbGxvYyhpbnNpemUgKiA0IC8gMyArIDQpOw0KLSAgIGlmKCFv dXRwdXQpDQotICAgICByZXR1cm4gQ1VSTEVfT1VUX09GX01FTU9SWTsNCi0gDQotICAgLyoNCi0t LSANCi0yLjkuMw0KLQ0KZGlmZiAtLWdpdCBhL21haW4vY3VybC9DVkUtMjAxNi04NjE4LnBhdGNo IGIvbWFpbi9jdXJsL0NWRS0yMDE2LTg2MTgucGF0Y2gNCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0 NA0KaW5kZXggNmQ0ZWFhZi4uMDAwMDAwMA0KLS0tIGEvbWFpbi9jdXJsL0NWRS0yMDE2LTg2MTgu cGF0Y2gNCisrKyAvZGV2L251bGwNCkBAIC0xLDUwICswLDAgQEANCi1Gcm9tIDMxMTA2YTA3Mzg4 MjY1NmEyYTVhYjU2YzRjZTI4NDdlOWEzMzRjM2MgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxDQot RnJvbTogRGFuaWVsIFN0ZW5iZXJnIDxkYW5pZWxAaGF4eC5zZT4NCi1EYXRlOiBXZWQsIDI4IFNl cCAyMDE2IDEwOjE1OjM0ICswMjAwDQotU3ViamVjdDogW1BBVENIXSBhcHJpbnRmOiBkZXRlY3Qg d3JhcC1hcm91bmQgd2hlbiBncm93aW5nIGFsbG9jYXRpb24NCi0NCi1PbiAzMmJpdCBzeXN0ZW1z IHdlIGNvdWxkIG90aGVyd2lzZSB3cmFwIGFyb3VuZCBhZnRlciAyR0IgYW5kIGFsbG9jYXRlIDAN Ci1ieXRlcyBhbmQgY3Jhc2guDQotDQotQ1ZFLTIwMTYtODYxOA0KLQ0KLUJ1ZzogaHR0cHM6Ly9j dXJsLmhheHguc2UvZG9jcy9hZHZfMjAxNjExMDJELmh0bWwNCi1SZXBvcnRlZC1ieTogQ3VyZTUz DQotLS0tDQotIGxpYi9tcHJpbnRmLmMgfCA5ICsrKysrKy0tLQ0KLSAxIGZpbGUgY2hhbmdlZCwg NiBpbnNlcnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQ0KLQ0KLWRpZmYgLS1naXQgYS9saWIvbXBy aW50Zi5jIGIvbGliL21wcmludGYuYw0KLWluZGV4IGRiZWRlYWEuLjJjODhhYTggMTAwNjQ0DQot LS0tIGEvbGliL21wcmludGYuYw0KLSsrKyBiL2xpYi9tcHJpbnRmLmMNCi1AQCAtMTAzNCwyMCAr MTAzNCwyMyBAQCBzdGF0aWMgaW50IGFsbG9jX2FkZGJ5dGVyKGludCBvdXRwdXQsIEZJTEUgKmRh dGEpDQotICAgICB9DQotICAgICBpbmZvcC0+YWxsb2MgPSAzMjsNCi0gICAgIGluZm9wLT5sZW4g PTA7DQotICAgfQ0KLSAgIGVsc2UgaWYoaW5mb3AtPmxlbisxID49IGluZm9wLT5hbGxvYykgew0K LS0gICAgY2hhciAqbmV3cHRyOw0KLSsgICAgY2hhciAqbmV3cHRyID0gTlVMTDsNCi0rICAgIHNp emVfdCBuZXdzaXplID0gaW5mb3AtPmFsbG9jKjI7DQotIA0KLS0gICAgbmV3cHRyID0gcmVhbGxv YyhpbmZvcC0+YnVmZmVyLCBpbmZvcC0+YWxsb2MqMik7DQotKyAgICAvKiBkZXRlY3Qgd3JhcC1h cm91bmQgb3Igb3RoZXIgb3ZlcmZsb3cgcHJvYmxlbXMgKi8NCi0rICAgIGlmKG5ld3NpemUgPiBp bmZvcC0+YWxsb2MpDQotKyAgICAgIG5ld3B0ciA9IHJlYWxsb2MoaW5mb3AtPmJ1ZmZlciwgbmV3 c2l6ZSk7DQotIA0KLSAgICAgaWYoIW5ld3B0cikgew0KLSAgICAgICBpbmZvcC0+ZmFpbCA9IDE7 DQotICAgICAgIHJldHVybiAtMTsgLyogZmFpbCAqLw0KLSAgICAgfQ0KLSAgICAgaW5mb3AtPmJ1 ZmZlciA9IG5ld3B0cjsNCi0tICAgIGluZm9wLT5hbGxvYyAqPSAyOw0KLSsgICAgaW5mb3AtPmFs bG9jID0gbmV3c2l6ZTsNCi0gICB9DQotIA0KLSAgIGluZm9wLT5idWZmZXJbIGluZm9wLT5sZW4g XSA9IG91dGM7DQotIA0KLSAgIGluZm9wLT5sZW4rKzsNCi0tLSANCi0yLjkuMw0KLQ0KZGlmZiAt LWdpdCBhL21haW4vY3VybC9DVkUtMjAxNi04NjE5LnBhdGNoIGIvbWFpbi9jdXJsL0NWRS0yMDE2 LTg2MTkucGF0Y2gNCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggODQ3MGIzNS4uMDAw MDAwMA0KLS0tIGEvbWFpbi9jdXJsL0NWRS0yMDE2LTg2MTkucGF0Y2gNCisrKyAvZGV2L251bGwN CkBAIC0xLDUwICswLDAgQEANCi1Gcm9tIDkxMjM5ZjcwNDBiMWYwMjZkNGQxNTc2NWU3ZTNmNThl OTJlOTM3NjEgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxDQotRnJvbTogRGFuaWVsIFN0ZW5iZXJn IDxkYW5pZWxAaGF4eC5zZT4NCi1EYXRlOiBXZWQsIDI4IFNlcCAyMDE2IDEyOjU2OjAyICswMjAw DQotU3ViamVjdDogW1BBVENIXSBrcmI1OiBhdm9pZCByZWFsbG9jKDApDQotDQotSWYgdGhlIHJl cXVlc3RlZCBzaXplIGlzIHplcm8sIGJhaWwgb3V0IHdpdGggZXJyb3IgaW5zdGVhZCBvZiBkb2lu ZyBhDQotcmVhbGxvYygpIHRoYXQgd291bGQgY2F1c2UgYSBkb3VibGUtZnJlZTogcmVhbGxvYygw KSBhY3RzIGFzIGEgZnJlZSgpDQotYW5kIHRoZW4gdGhlcmUncyBhIHNlY29uZCBmcmVlIGluIHRo ZSBjbGVhbnVwIHBhdGguDQotDQotQ1ZFLTIwMTYtODYxOQ0KLQ0KLUJ1ZzogaHR0cHM6Ly9jdXJs LmhheHguc2UvZG9jcy9hZHZfMjAxNjExMDJFLmh0bWwNCi1SZXBvcnRlZC1ieTogQ3VyZTUzDQot LS0tDQotIGxpYi9zZWN1cml0eS5jIHwgOSArKysrKystLS0NCi0gMSBmaWxlIGNoYW5nZWQsIDYg aW5zZXJ0aW9ucygrKSwgMyBkZWxldGlvbnMoLSkNCi0NCi1kaWZmIC0tZ2l0IGEvbGliL3NlY3Vy aXR5LmMgYi9saWIvc2VjdXJpdHkuYw0KLWluZGV4IGEyNjhkNGEuLjRjZWY4ZjggMTAwNjQ0DQot LS0tIGEvbGliL3NlY3VyaXR5LmMNCi0rKysgYi9saWIvc2VjdXJpdHkuYw0KLUBAIC0xOTAsMTkg KzE5MCwyMiBAQCBzb2NrZXRfd3JpdGUoc3RydWN0IGNvbm5lY3RkYXRhICpjb25uLCBjdXJsX3Nv Y2tldF90IGZkLCBjb25zdCB2b2lkICp0bywNCi0gc3RhdGljIENVUkxjb2RlIHJlYWRfZGF0YShz dHJ1Y3QgY29ubmVjdGRhdGEgKmNvbm4sDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgY3Vy bF9zb2NrZXRfdCBmZCwNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qga3JiNWJ1 ZmZlciAqYnVmKQ0KLSB7DQotICAgaW50IGxlbjsNCi0tICB2b2lkKiB0bXA7DQotKyAgdm9pZCAq dG1wID0gTlVMTDsNCi0gICBDVVJMY29kZSByZXN1bHQ7DQotIA0KLSAgIHJlc3VsdCA9IHNvY2tl dF9yZWFkKGZkLCAmbGVuLCBzaXplb2YobGVuKSk7DQotICAgaWYocmVzdWx0KQ0KLSAgICAgcmV0 dXJuIHJlc3VsdDsNCi0gDQotLSAgbGVuID0gbnRvaGwobGVuKTsNCi0tICB0bXAgPSByZWFsbG9j KGJ1Zi0+ZGF0YSwgbGVuKTsNCi0rICBpZihsZW4pIHsNCi0rICAgIC8qIG9ubHkgcmVhbGxvYyBp ZiB0aGVyZSB3YXMgYSBsZW5ndGggKi8NCi0rICAgIGxlbiA9IG50b2hsKGxlbik7DQotKyAgICB0 bXAgPSByZWFsbG9jKGJ1Zi0+ZGF0YSwgbGVuKTsNCi0rICB9DQotICAgaWYodG1wID09IE5VTEwp DQotICAgICByZXR1cm4gQ1VSTEVfT1VUX09GX01FTU9SWTsNCi0gDQotICAgYnVmLT5kYXRhID0g dG1wOw0KLSAgIHJlc3VsdCA9IHNvY2tldF9yZWFkKGZkLCBidWYtPmRhdGEsIGxlbik7DQotLS0g DQotMi45LjMNCi0NCmRpZmYgLS1naXQgYS9tYWluL2N1cmwvQ1ZFLTIwMTYtODYyMC5wYXRjaCBi L21haW4vY3VybC9DVkUtMjAxNi04NjIwLnBhdGNoDQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQN CmluZGV4IGM4YzJjZDEuLjAwMDAwMDANCi0tLSBhL21haW4vY3VybC9DVkUtMjAxNi04NjIwLnBh dGNoDQorKysgL2Rldi9udWxsDQpAQCAtMSwyMDUgKzAsMCBAQA0KLUZyb20gNTJmM2UxZDEwOTJj ODFhNGY1NzRjOWZjNmNiMzgxOGI4ODQzNGM4ZCBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDENCi1G cm9tOiBEYW5pZWwgU3RlbmJlcmcgPGRhbmllbEBoYXh4LnNlPg0KLURhdGU6IE1vbiwgMyBPY3Qg MjAxNiAxNzoyNzoxNiArMDIwMA0KLVN1YmplY3Q6IFtQQVRDSCAxLzNdIHJhbmdlOiBwcmV2ZW50 IG5lZ2F0aXZlIGVuZCBudW1iZXIgaW4gYSBnbG9iIHJhbmdlDQotTUlNRS1WZXJzaW9uOiAxLjAN Ci1Db250ZW50LVR5cGU6IHRleHQvcGxhaW47IGNoYXJzZXQ9VVRGLTgNCi1Db250ZW50LVRyYW5z ZmVyLUVuY29kaW5nOiA4Yml0DQotDQotQ1ZFLTIwMTYtODYyMA0KLQ0KLUJ1ZzogaHR0cHM6Ly9j dXJsLmhheHguc2UvZG9jcy9hZHZfMjAxNjExMDJGLmh0bWwNCi1SZXBvcnRlZC1ieTogTHXhuq10 IE5ndXnhu4VuDQotLS0tDQotIHNyYy90b29sX3VybGdsb2IuYyB8IDcgKysrKysrKw0KLSAxIGZp bGUgY2hhbmdlZCwgNyBpbnNlcnRpb25zKCspDQotDQotZGlmZiAtLWdpdCBhL3NyYy90b29sX3Vy bGdsb2IuYyBiL3NyYy90b29sX3VybGdsb2IuYw0KLWluZGV4IGEzNTdiOGIuLjY0Yzc1YmEgMTAw NjQ0DQotLS0tIGEvc3JjL3Rvb2xfdXJsZ2xvYi5jDQotKysrIGIvc3JjL3Rvb2xfdXJsZ2xvYi5j DQotQEAgLTI1NSwxMCArMjU1LDE2IEBAIHN0YXRpYyBDVVJMY29kZSBnbG9iX3JhbmdlKFVSTEds b2IgKmdsb2IsIGNoYXIgKipwYXR0ZXJucCwNCi0gICAgIGVsc2Ugew0KLSAgICAgICBpZigqZW5k cCAhPSAnLScpDQotICAgICAgICAgZW5kcCA9IE5VTEw7DQotICAgICAgIGVsc2Ugew0KLSAgICAg ICAgIHBhdHRlcm4gPSBlbmRwKzE7DQotKyAgICAgICAgd2hpbGUoKnBhdHRlcm4gJiYgSVNCTEFO SygqcGF0dGVybikpDQotKyAgICAgICAgICBwYXR0ZXJuKys7DQotKyAgICAgICAgaWYoIUlTRElH SVQoKnBhdHRlcm4pKSB7DQotKyAgICAgICAgICBlbmRwID0gTlVMTDsNCi0rICAgICAgICAgIGdv dG8gZmFpbDsNCi0rICAgICAgICB9DQotICAgICAgICAgZXJybm8gPSAwOw0KLSAgICAgICAgIG1h eF9uID0gc3RydG91bChwYXR0ZXJuLCAmZW5kcCwgMTApOw0KLSAgICAgICAgIGlmKGVycm5vIHx8 ICgqZW5kcCA9PSAnOicpKSB7DQotICAgICAgICAgICBwYXR0ZXJuID0gZW5kcCsxOw0KLSAgICAg ICAgICAgZXJybm8gPSAwOw0KLUBAIC0yNzUsMTAgKzI4MSwxMSBAQCBzdGF0aWMgQ1VSTGNvZGUg Z2xvYl9yYW5nZShVUkxHbG9iICpnbG9iLCBjaGFyICoqcGF0dGVybnAsDQotICAgICAgICAgZWxz ZQ0KLSAgICAgICAgICAgZW5kcCA9IE5VTEw7DQotICAgICAgIH0NCi0gICAgIH0NCi0gDQotKyAg ICBmYWlsOg0KLSAgICAgKnBvc3AgKz0gKHBhdHRlcm4gLSAqcGF0dGVybnApOw0KLSANCi0gICAg IGlmKCFlbmRwIHx8IChtaW5fbiA+IG1heF9uKSB8fCAoc3RlcF9uID4gKG1heF9uIC0gbWluX24p KSB8fCAhc3RlcF9uKQ0KLSAgICAgICAvKiB0aGUgcGF0dGVybiBpcyBub3Qgd2VsbC1mb3JtZWQg Ki8NCi0gICAgICAgcmV0dXJuIEdMT0JFUlJPUigiYmFkIHJhbmdlIiwgKnBvc3AsIENVUkxFX1VS TF9NQUxGT1JNQVQpOw0KLS0tIA0KLTIuOS4zDQotDQotDQotRnJvbSBlOTdlYmU5N2MyYjUzZDM2 MTdjMWY0MDgyYTJhYWE0ZjFiNTkzZWY5IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQ0KLUZyb206 IERhbmllbCBTdGVuYmVyZyA8ZGFuaWVsQGhheHguc2U+DQotRGF0ZTogTW9uLCAzIE9jdCAyMDE2 IDE4OjIzOjIyICswMjAwDQotU3ViamVjdDogW1BBVENIIDIvM10gZ2xvYl9uZXh0X3VybDogbWFr ZSBzdXJlIHRvIHN0YXkgd2l0aGluIHRoZSBnaXZlbiBvdXRwdXQNCi0gYnVmZmVyDQotDQotLS0t DQotIHNyYy90b29sX3VybGdsb2IuYyB8IDE3ICsrKysrKysrKysrLS0tLS0tDQotIDEgZmlsZSBj aGFuZ2VkLCAxMSBpbnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQ0KLQ0KLWRpZmYgLS1naXQg YS9zcmMvdG9vbF91cmxnbG9iLmMgYi9zcmMvdG9vbF91cmxnbG9iLmMNCi1pbmRleCA2NGM3NWJh Li5jNDVhNzhiIDEwMDY0NA0KLS0tLSBhL3NyYy90b29sX3VybGdsb2IuYw0KLSsrKyBiL3NyYy90 b29sX3VybGdsb2IuYw0KLUBAIC00MjksMTAgKzQyOSwxMSBAQCBDVVJMY29kZSBnbG9iX3VybChV UkxHbG9iKiogZ2xvYiwgY2hhciogdXJsLCB1bnNpZ25lZCBsb25nICp1cmxudW0sDQotICAgKmds b2IgPSBOVUxMOw0KLSANCi0gICBnbG9iX2J1ZmZlciA9IG1hbGxvYyhzdHJsZW4odXJsKSArIDEp Ow0KLSAgIGlmKCFnbG9iX2J1ZmZlcikNCi0gICAgIHJldHVybiBDVVJMRV9PVVRfT0ZfTUVNT1JZ Ow0KLSsgIGdsb2JfYnVmZmVyWzBdPTA7DQotIA0KLSAgIGdsb2JfZXhwYW5kID0gY2FsbG9jKDEs IHNpemVvZihVUkxHbG9iKSk7DQotICAgaWYoIWdsb2JfZXhwYW5kKSB7DQotICAgICBDdXJsX3Nh ZmVmcmVlKGdsb2JfYnVmZmVyKTsNCi0gICAgIHJldHVybiBDVVJMRV9PVVRfT0ZfTUVNT1JZOw0K LUBAIC01NDYsMzMgKzU0NywzNyBAQCBDVVJMY29kZSBnbG9iX25leHRfdXJsKGNoYXIgKipnbG9i YmVkLCBVUkxHbG9iICpnbG9iKQ0KLSAgIGZvcihpID0gMDsgaSA8IGdsb2ItPnNpemU7ICsraSkg ew0KLSAgICAgcGF0ID0gJmdsb2ItPnBhdHRlcm5baV07DQotICAgICBzd2l0Y2gocGF0LT50eXBl KSB7DQotICAgICBjYXNlIFVQVFNldDoNCi0gICAgICAgaWYocGF0LT5jb250ZW50LlNldC5lbGVt ZW50cykgew0KLS0gICAgICAgIGxlbiA9IHN0cmxlbihwYXQtPmNvbnRlbnQuU2V0LmVsZW1lbnRz W3BhdC0+Y29udGVudC5TZXQucHRyX3NdKTsNCi0gICAgICAgICBzbnByaW50ZihidWYsIGJ1Zmxl biwgIiVzIiwNCi0gICAgICAgICAgICAgICAgICBwYXQtPmNvbnRlbnQuU2V0LmVsZW1lbnRzW3Bh dC0+Y29udGVudC5TZXQucHRyX3NdKTsNCi0rICAgICAgICBsZW4gPSBzdHJsZW4oYnVmKTsNCi0g ICAgICAgICBidWYgKz0gbGVuOw0KLSAgICAgICAgIGJ1ZmxlbiAtPSBsZW47DQotICAgICAgIH0N Ci0gICAgICAgYnJlYWs7DQotICAgICBjYXNlIFVQVENoYXJSYW5nZToNCi0tICAgICAgKmJ1Zisr ID0gcGF0LT5jb250ZW50LkNoYXJSYW5nZS5wdHJfYzsNCi0rICAgICAgaWYoYnVmbGVuKSB7DQot KyAgICAgICAgKmJ1ZisrID0gcGF0LT5jb250ZW50LkNoYXJSYW5nZS5wdHJfYzsNCi0rICAgICAg ICAqYnVmID0gJ1wwJzsNCi0rICAgICAgICBidWZsZW4tLTsNCi0rICAgICAgfQ0KLSAgICAgICBi cmVhazsNCi0gICAgIGNhc2UgVVBUTnVtUmFuZ2U6DQotLSAgICAgIGxlbiA9IHNucHJpbnRmKGJ1 ZiwgYnVmbGVuLCAiJTAqbGQiLA0KLS0gICAgICAgICAgICAgICAgICAgICBwYXQtPmNvbnRlbnQu TnVtUmFuZ2UucGFkbGVuZ3RoLA0KLS0gICAgICAgICAgICAgICAgICAgICBwYXQtPmNvbnRlbnQu TnVtUmFuZ2UucHRyX24pOw0KLSsgICAgICBzbnByaW50ZihidWYsIGJ1ZmxlbiwgIiUwKmxkIiwN Ci0rICAgICAgICAgICAgICAgcGF0LT5jb250ZW50Lk51bVJhbmdlLnBhZGxlbmd0aCwNCi0rICAg ICAgICAgICAgICAgcGF0LT5jb250ZW50Lk51bVJhbmdlLnB0cl9uKTsNCi0rICAgICAgbGVuID0g c3RybGVuKGJ1Zik7DQotICAgICAgIGJ1ZiArPSBsZW47DQotICAgICAgIGJ1ZmxlbiAtPSBsZW47 DQotICAgICAgIGJyZWFrOw0KLSAgICAgZGVmYXVsdDoNCi0gICAgICAgcHJpbnRmKCJpbnRlcm5h bCBlcnJvcjogaW52YWxpZCBwYXR0ZXJuIHR5cGUgKCVkKVxuIiwgKGludClwYXQtPnR5cGUpOw0K LSAgICAgICByZXR1cm4gQ1VSTEVfRkFJTEVEX0lOSVQ7DQotICAgICB9DQotICAgfQ0KLS0gICpi dWYgPSAnXDAnOw0KLSANCi0gICAqZ2xvYmJlZCA9IHN0cmR1cChnbG9iLT5nbG9iX2J1ZmZlcik7 DQotICAgaWYoISpnbG9iYmVkKQ0KLSAgICAgcmV0dXJuIENVUkxFX09VVF9PRl9NRU1PUlk7DQot IA0KLS0tIA0KLTIuOS4zDQotDQotDQotRnJvbSA5Y2UzNzcwNTEyOTBjODMxNzZmMjM1YjUyNmI4 NzkwNGNhZDZiMzg4IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQ0KLUZyb206IERhbmllbCBTdGVu YmVyZyA8ZGFuaWVsQGhheHguc2U+DQotRGF0ZTogVHVlLCA0IE9jdCAyMDE2IDE3OjI1OjA5ICsw MjAwDQotU3ViamVjdDogW1BBVENIIDMvM10gcmFuZ2U6IHJlamVjdCBjaGFyIGdsb2JzIHdpdGgg bWlzc2luZyBlbmQgbGlrZSAnW0wtXScNCi1NSU1FLVZlcnNpb246IDEuMA0KLUNvbnRlbnQtVHlw ZTogdGV4dC9wbGFpbjsgY2hhcnNldD1VVEYtOA0KLUNvbnRlbnQtVHJhbnNmZXItRW5jb2Rpbmc6 IDhiaXQNCi0NCi0uLi4gd2hpY2ggcHJldmlvdXNseSB3b3VsZCBsZWFkIHRvIG91dCBvZiBib3Vu ZGFyeSByZWFkcy4NCi0NCi1SZXBvcnRlZC1ieTogTHXhuq10IE5ndXnhu4VuDQotLS0tDQotIHNy Yy90b29sX3VybGdsb2IuYyB8IDM0ICsrKysrKysrKysrKysrKysrKystLS0tLS0tLS0tLS0tLS0N Ci0gMSBmaWxlIGNoYW5nZWQsIDE5IGluc2VydGlvbnMoKyksIDE1IGRlbGV0aW9ucygtKQ0KLQ0K LWRpZmYgLS1naXQgYS9zcmMvdG9vbF91cmxnbG9iLmMgYi9zcmMvdG9vbF91cmxnbG9iLmMNCi1p bmRleCBjNDVhNzhiLi4wOWQyMWI2IDEwMDY0NA0KLS0tLSBhL3NyYy90b29sX3VybGdsb2IuYw0K LSsrKyBiL3NyYy90b29sX3VybGdsb2IuYw0KLUBAIC0xODYsMzYgKzE4Niw0MCBAQCBzdGF0aWMg Q1VSTGNvZGUgZ2xvYl9yYW5nZShVUkxHbG9iICpnbG9iLCBjaGFyICoqcGF0dGVybnAsDQotIA0K LSAgIGlmKElTQUxQSEEoKnBhdHRlcm4pKSB7DQotICAgICAvKiBjaGFyYWN0ZXIgcmFuZ2UgZGV0 ZWN0ZWQgKi8NCi0gICAgIGNoYXIgbWluX2M7DQotICAgICBjaGFyIG1heF9jOw0KLSsgICAgY2hh ciBlbmRfYzsNCi0gICAgIGludCBzdGVwPTE7DQotIA0KLSAgICAgcGF0LT50eXBlID0gVVBUQ2hh clJhbmdlOw0KLSANCi0tICAgIHJjID0gc3NjYW5mKHBhdHRlcm4sICIlYy0lYyIsICZtaW5fYywg Jm1heF9jKTsNCi0rICAgIHJjID0gc3NjYW5mKHBhdHRlcm4sICIlYy0lYyVjIiwgJm1pbl9jLCAm bWF4X2MsICZlbmRfYyk7DQotIA0KLS0gICAgaWYoKHJjID09IDIpICYmIChwYXR0ZXJuWzNdID09 ICc6JykpIHsNCi0tICAgICAgY2hhciAqZW5kcDsNCi0tICAgICAgdW5zaWduZWQgbG9uZyBsc3Rl cDsNCi0tICAgICAgZXJybm8gPSAwOw0KLS0gICAgICBsc3RlcCA9IHN0cnRvdWwoJnBhdHRlcm5b NF0sICZlbmRwLCAxMCk7DQotLSAgICAgIGlmKGVycm5vIHx8ICgqZW5kcCAhPSAnXScpKQ0KLS0g ICAgICAgIHN0ZXAgPSAtMTsNCi0tICAgICAgZWxzZSB7DQotLSAgICAgICAgcGF0dGVybiA9IGVu ZHArMTsNCi0tICAgICAgICBzdGVwID0gKGludClsc3RlcDsNCi0tICAgICAgICBpZihzdGVwID4g KG1heF9jIC0gbWluX2MpKQ0KLSsgICAgaWYocmMgPT0gMykgew0KLSsgICAgICBpZihlbmRfYyA9 PSAnOicpIHsNCi0rICAgICAgICBjaGFyICplbmRwOw0KLSsgICAgICAgIHVuc2lnbmVkIGxvbmcg bHN0ZXA7DQotKyAgICAgICAgZXJybm8gPSAwOw0KLSsgICAgICAgIGxzdGVwID0gc3RydG91bCgm cGF0dGVybls0XSwgJmVuZHAsIDEwKTsNCi0rICAgICAgICBpZihlcnJubyB8fCAoKmVuZHAgIT0g J10nKSkNCi0gICAgICAgICAgIHN0ZXAgPSAtMTsNCi0rICAgICAgICBlbHNlIHsNCi0rICAgICAg ICAgIHBhdHRlcm4gPSBlbmRwKzE7DQotKyAgICAgICAgICBzdGVwID0gKGludClsc3RlcDsNCi0r ICAgICAgICAgIGlmKHN0ZXAgPiAobWF4X2MgLSBtaW5fYykpDQotKyAgICAgICAgICAgIHN0ZXAg PSAtMTsNCi0rICAgICAgICB9DQotICAgICAgIH0NCi0rICAgICAgZWxzZSBpZihlbmRfYyAhPSAn XScpDQotKyAgICAgICAgLyogdGhlbiB0aGlzIGlzIHdyb25nICovDQotKyAgICAgICAgcmMgPSAw Ow0KLSAgICAgfQ0KLS0gICAgZWxzZQ0KLS0gICAgICBwYXR0ZXJuICs9IDQ7DQotIA0KLSAgICAg KnBvc3AgKz0gKHBhdHRlcm4gLSAqcGF0dGVybnApOw0KLSANCi0tICAgIGlmKChyYyAhPSAyKSB8 fCAobWluX2MgPj0gbWF4X2MpIHx8ICgobWF4X2MgLSBtaW5fYykgPiAoJ3onIC0gJ2EnKSkgfHwN Ci0rICAgIGlmKChyYyAhPSAzKSB8fCAobWluX2MgPj0gbWF4X2MpIHx8ICgobWF4X2MgLSBtaW5f YykgPiAoJ3onIC0gJ2EnKSkgfHwNCi0gICAgICAgIChzdGVwIDw9IDApICkNCi0gICAgICAgLyog dGhlIHBhdHRlcm4gaXMgbm90IHdlbGwtZm9ybWVkICovDQotICAgICAgIHJldHVybiBHTE9CRVJS T1IoImJhZCByYW5nZSIsICpwb3NwLCBDVVJMRV9VUkxfTUFMRk9STUFUKTsNCi0gDQotICAgICAv KiBpZiB0aGVyZSB3YXMgYSAiOltudW1dIiB0aGluZywgdXNlIHRoYXQgYXMgc3RlcCBvciBlbHNl IHVzZSAxICovDQotLS0gDQotMi45LjMNCi0NCmRpZmYgLS1naXQgYS9tYWluL2N1cmwvQ1ZFLTIw MTYtODYyMS5wYXRjaCBiL21haW4vY3VybC9DVkUtMjAxNi04NjIxLnBhdGNoDQpkZWxldGVkIGZp bGUgbW9kZSAxMDA2NDQNCmluZGV4IDY4NTVjZTkuLjAwMDAwMDANCi0tLSBhL21haW4vY3VybC9D VkUtMjAxNi04NjIxLnBhdGNoDQorKysgL2Rldi9udWxsDQpAQCAtMSwxMjEgKzAsMCBAQA0KLUZy b20gOGE2ZDlkZWQ1ZjAyZjAyOTRhZTYzYTAwN2UyNjA4NzMxNmMxOTk4ZSBNb24gU2VwIDE3IDAw OjAwOjAwIDIwMDENCi1Gcm9tOiBEYW5pZWwgU3RlbmJlcmcgPGRhbmllbEBoYXh4LnNlPg0KLURh dGU6IFR1ZSwgNCBPY3QgMjAxNiAxNjo1OTozOCArMDIwMA0KLVN1YmplY3Q6IFtQQVRDSF0gcGFy c2VkYXRlOiBoYW5kbGUgY3V0IG9mZiBudW1iZXJzIGJldHRlcg0KLU1JTUUtVmVyc2lvbjogMS4w DQotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04DQotQ29udGVudC1UcmFu c2Zlci1FbmNvZGluZzogOGJpdA0KLQ0KLS4uLiBhbmQgZG9uJ3QgcmVhZCBvdXRzaWRlIG9mIHRo ZSBnaXZlbiBidWZmZXIhDQotDQotQ1ZFLTIwMTYtODYyMQ0KLQ0KLWJ1ZzogaHR0cHM6Ly9jdXJs LmhheHguc2UvZG9jcy9hZHZfMjAxNjExMDJHLmh0bWwNCi1SZXBvcnRlZC1ieTogTHXhuq10IE5n dXnhu4VuDQotLS0tDQotIGxpYi9wYXJzZWRhdGUuYyAgICAgICAgfCAxMiArKysrKysrLS0tLS0N Ci0gdGVzdHMvZGF0YS90ZXN0NTE3ICAgICB8ICA2ICsrKysrKw0KLSB0ZXN0cy9saWJ0ZXN0L2xp YjUxNy5jIHwgIDggKysrKysrKy0NCi0gMyBmaWxlcyBjaGFuZ2VkLCAyMCBpbnNlcnRpb25zKCsp LCA2IGRlbGV0aW9ucygtKQ0KLQ0KLWRpZmYgLS1naXQgYS9saWIvcGFyc2VkYXRlLmMgYi9saWIv cGFyc2VkYXRlLmMNCi1pbmRleCBkZmNmODU1Li44ZTkzMmY0IDEwMDY0NA0KLS0tLSBhL2xpYi9w YXJzZWRhdGUuYw0KLSsrKyBiL2xpYi9wYXJzZWRhdGUuYw0KLUBAIC0zLDExICszLDExIEBADQot ICAqICBQcm9qZWN0ICAgICAgICAgICAgICAgICAgICAgX19ffCB8IHwgfCAgXyBcfCB8DQotICAq ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvIF9ffCB8IHwgfCB8XykgfCB8DQotICAqICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgKF9ffCB8X3wgfCAgXyA8fCB8X19fDQotICAqICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcX19ffFxfX18vfF98IFxfXF9fX19ffA0KLSAgKg0K LS0gKiBDb3B5cmlnaHQgKEMpIDE5OTggLSAyMDE0LCBEYW5pZWwgU3RlbmJlcmcsIDxkYW5pZWxA aGF4eC5zZT4sIGV0IGFsLg0KLSsgKiBDb3B5cmlnaHQgKEMpIDE5OTggLSAyMDE2LCBEYW5pZWwg U3RlbmJlcmcsIDxkYW5pZWxAaGF4eC5zZT4sIGV0IGFsLg0KLSAgKg0KLSAgKiBUaGlzIHNvZnR3 YXJlIGlzIGxpY2Vuc2VkIGFzIGRlc2NyaWJlZCBpbiB0aGUgZmlsZSBDT1BZSU5HLCB3aGljaA0K LSAgKiB5b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYXMgcGFydCBvZiB0aGlzIGRpc3RyaWJ1dGlv bi4gVGhlIHRlcm1zDQotICAqIGFyZSBhbHNvIGF2YWlsYWJsZSBhdCBodHRwczovL2N1cmwuaGF4 eC5zZS9kb2NzL2NvcHlyaWdodC5odG1sLg0KLSAgKg0KLUBAIC0zODQsMTkgKzM4NCwyMSBAQCBz dGF0aWMgaW50IHBhcnNlZGF0ZShjb25zdCBjaGFyICpkYXRlLCB0aW1lX3QgKm91dHB1dCkNCi0g ICAgIH0NCi0gICAgIGVsc2UgaWYoSVNESUdJVCgqZGF0ZSkpIHsNCi0gICAgICAgLyogYSBkaWdp dCAqLw0KLSAgICAgICBpbnQgdmFsOw0KLSAgICAgICBjaGFyICplbmQ7DQotKyAgICAgIGludCBs ZW49MDsNCi0gICAgICAgaWYoKHNlY251bSA9PSAtMSkgJiYNCi0tICAgICAgICAgKDMgPT0gc3Nj YW5mKGRhdGUsICIlMDJkOiUwMmQ6JTAyZCIsICZob3VybnVtLCAmbWlubnVtLCAmc2VjbnVtKSkp IHsNCi0rICAgICAgICAgKDMgPT0gc3NjYW5mKGRhdGUsICIlMDJkOiUwMmQ6JTAyZCVuIiwNCi0r ICAgICAgICAgICAgICAgICAgICAgICZob3VybnVtLCAmbWlubnVtLCAmc2VjbnVtLCAmbGVuKSkp IHsNCi0gICAgICAgICAvKiB0aW1lIHN0YW1wISAqLw0KLS0gICAgICAgIGRhdGUgKz0gODsNCi0r ICAgICAgICBkYXRlICs9IGxlbjsNCi0gICAgICAgfQ0KLSAgICAgICBlbHNlIGlmKChzZWNudW0g PT0gLTEpICYmDQotLSAgICAgICAgICAgICAgKDIgPT0gc3NjYW5mKGRhdGUsICIlMDJkOiUwMmQi LCAmaG91cm51bSwgJm1pbm51bSkpKSB7DQotKyAgICAgICAgICAgICAgKDIgPT0gc3NjYW5mKGRh dGUsICIlMDJkOiUwMmQlbiIsICZob3VybnVtLCAmbWlubnVtLCAmbGVuKSkpIHsNCi0gICAgICAg ICAvKiB0aW1lIHN0YW1wIHdpdGhvdXQgc2Vjb25kcyAqLw0KLS0gICAgICAgIGRhdGUgKz0gNTsN Ci0rICAgICAgICBkYXRlICs9IGxlbjsNCi0gICAgICAgICBzZWNudW0gPSAwOw0KLSAgICAgICB9 DQotICAgICAgIGVsc2Ugew0KLSAgICAgICAgIGxvbmcgbHZhbDsNCi0gICAgICAgICBpbnQgZXJy b3I7DQotZGlmZiAtLWdpdCBhL3Rlc3RzL2RhdGEvdGVzdDUxNyBiL3Rlc3RzL2RhdGEvdGVzdDUx Nw0KLWluZGV4IGM4MWE0NWUuLjUxMzYzNGYgMTAwNjQ0DQotLS0tIGEvdGVzdHMvZGF0YS90ZXN0 NTE3DQotKysrIGIvdGVzdHMvZGF0YS90ZXN0NTE3DQotQEAgLTExNCwxMCArMTE0LDE2IEBAIG5v dGhpbmcNCi0gNzk6IDIwMTEwNjMyIDEyOjM0OjU2ID0+IC0xDQotIDgwOiAyMDExMDYyMyA1Njoz NDo1NiA9PiAtMQ0KLSA4MTogMjAxMTEzMjMgMTI6MzQ6NTYgPT4gLTENCi0gODI6IDIwMTEwNjIz IDEyOjM0Ojc5ID0+IC0xDQotIDgzOiBXZWQsIDMxIERlYyAyMDA4IDIzOjU5OjYwIEdNVCA9PiAx MjMwNzY4MDAwDQotKzg0OiAyMDExMDYyMyAxMjozID0+IDEzMDg4MzA1ODANCi0rODU6IDIwMTEw NjIzIDE6MyA9PiAxMzA4NzkwOTgwDQotKzg2OiAyMDExMDYyMyAxOjMwID0+IDEzMDg3OTI2MDAN Ci0rODc6IDIwMTEwNjIzIDEyOjEyOjMgPT4gMTMwODgzMTEyMw0KLSs4ODogMjAxMTA2MjMgMDE6 MTI6MyA9PiAxMzA4NzkxNTIzDQotKzg5OiAyMDExMDYyMyAwMTo5OTozMCA9PiAtMQ0KLSA8L3N0 ZG91dD4NCi0gDQotICMgVGhpcyB0ZXN0IGNhc2UgcHJldmlvdXNseSB0ZXN0ZWQgYW4gb3ZlcmZs b3cgY2FzZSAoIjIwOTQgTm92IDYgPT4NCi0gIyAyMTQ3NDgzNjQ3IikgZm9yIDMyYml0IHRpbWVf dCwgYnV0IHNpbmNlIHNvbWUgc3lzdGVtcyBoYXZlIDY0Yml0IHRpbWVfdCBhbmQNCi0gIyBoYW5k bGVzIHRoaXMgKHJldHVybmluZyAzOTM5ODQwMDAwKSwgYW5kIHNvbWUgNjRiaXQtdGltZV90IHN5 c3RlbXMgZG9uJ3QNCi1kaWZmIC0tZ2l0IGEvdGVzdHMvbGlidGVzdC9saWI1MTcuYyBiL3Rlc3Rz L2xpYnRlc3QvbGliNTE3LmMNCi1pbmRleCAyZjY4ZWJkLi4yMjE2MmZmIDEwMDY0NA0KLS0tLSBh L3Rlc3RzL2xpYnRlc3QvbGliNTE3LmMNCi0rKysgYi90ZXN0cy9saWJ0ZXN0L2xpYjUxNy5jDQot QEAgLTMsMTEgKzMsMTEgQEANCi0gICogIFByb2plY3QgICAgICAgICAgICAgICAgICAgICBfX198 IHwgfCB8ICBfIFx8IHwNCi0gICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8gX198IHwg fCB8IHxfKSB8IHwNCi0gICogICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAoX198IHxffCB8 ICBfIDx8IHxfX18NCi0gICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFxfX198XF9fXy98 X3wgXF9cX19fX198DQotICAqDQotLSAqIENvcHlyaWdodCAoQykgMTk5OCAtIDIwMTEsIERhbmll bCBTdGVuYmVyZywgPGRhbmllbEBoYXh4LnNlPiwgZXQgYWwuDQotKyAqIENvcHlyaWdodCAoQykg MTk5OCAtIDIwMTYsIERhbmllbCBTdGVuYmVyZywgPGRhbmllbEBoYXh4LnNlPiwgZXQgYWwuDQot ICAqDQotICAqIFRoaXMgc29mdHdhcmUgaXMgbGljZW5zZWQgYXMgZGVzY3JpYmVkIGluIHRoZSBm aWxlIENPUFlJTkcsIHdoaWNoDQotICAqIHlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhcyBwYXJ0 IG9mIHRoaXMgZGlzdHJpYnV0aW9uLiBUaGUgdGVybXMNCi0gICogYXJlIGFsc28gYXZhaWxhYmxl IGF0IGh0dHBzOi8vY3VybC5oYXh4LnNlL2RvY3MvY29weXJpZ2h0Lmh0bWwuDQotICAqDQotQEAg LTExNCwxMCArMTE0LDE2IEBAIHN0YXRpYyBjb25zdCBjaGFyICogY29uc3QgZGF0ZXNbXT17DQot ICAgIjIwMTEwNjMyIDEyOjM0OjU2IiwNCi0gICAiMjAxMTA2MjMgNTY6MzQ6NTYiLA0KLSAgICIy MDExMTMyMyAxMjozNDo1NiIsDQotICAgIjIwMTEwNjIzIDEyOjM0Ojc5IiwNCi0gICAiV2VkLCAz MSBEZWMgMjAwOCAyMzo1OTo2MCBHTVQiLCAvKiBsZWFwIHNlY29uZCAqLw0KLSsgICIyMDExMDYy MyAxMjozIiwNCi0rICAiMjAxMTA2MjMgMTozIiwNCi0rICAiMjAxMTA2MjMgMTozMCIsDQotKyAg IjIwMTEwNjIzIDEyOjEyOjMiLA0KLSsgICIyMDExMDYyMyAwMToxMjozIiwNCi0rICAiMjAxMTA2 MjMgMDE6OTk6MzAiLA0KLSAgIE5VTEwNCi0gfTsNCi0gDQotIGludCB0ZXN0KGNoYXIgKlVSTCkN Ci0gew0KLS0tIA0KLTIuOS4zDQotDQpkaWZmIC0tZ2l0IGEvbWFpbi9jdXJsL0NWRS0yMDE2LTg2 MjIucGF0Y2ggYi9tYWluL2N1cmwvQ1ZFLTIwMTYtODYyMi5wYXRjaA0KZGVsZXRlZCBmaWxlIG1v ZGUgMTAwNjQ0DQppbmRleCBlNmRiYTY5Li4wMDAwMDAwDQotLS0gYS9tYWluL2N1cmwvQ1ZFLTIw MTYtODYyMi5wYXRjaA0KKysrIC9kZXYvbnVsbA0KQEAgLTEsMTI2ICswLDAgQEANCi1Gcm9tIDcx ZGE5MTQ1Mzg5OWJhMjBiMjhlZTk3MTI2MjBlMzIzMTQ1YTBlZTUgTW9uIFNlcCAxNyAwMDowMDow MCAyMDAxDQotRnJvbTogRGFuaWVsIFN0ZW5iZXJnIDxkYW5pZWxAaGF4eC5zZT4NCi1EYXRlOiBU dWUsIDQgT2N0IDIwMTYgMTg6NTY6NDUgKzAyMDANCi1TdWJqZWN0OiBbUEFUQ0hdIHVuZXNjYXBl OiBhdm9pZCBpbnRlZ2VyIG92ZXJmbG93DQotDQotQ1ZFLTIwMTYtODYyMg0KLQ0KLUJ1ZzogaHR0 cHM6Ly9jdXJsLmhheHguc2UvZG9jcy9hZHZfMjAxNjExMDJILmh0bWwNCi1SZXBvcnRlZC1ieTog Q3VyZTUzDQotLS0tDQotIGRvY3MvbGliY3VybC9jdXJsX2Vhc3lfdW5lc2NhcGUuMyB8ICA3ICsr KysrLS0NCi0gbGliL2RpY3QuYyAgICAgICAgICAgICAgICAgICAgICAgIHwgMTAgKysrKystLS0t LQ0KLSBsaWIvZXNjYXBlLmMgICAgICAgICAgICAgICAgICAgICAgfCAxMCArKysrKysrKy0tDQot IDMgZmlsZXMgY2hhbmdlZCwgMTggaW5zZXJ0aW9ucygrKSwgOSBkZWxldGlvbnMoLSkNCi0NCi1k aWZmIC0tZ2l0IGEvZG9jcy9saWJjdXJsL2N1cmxfZWFzeV91bmVzY2FwZS4zIGIvZG9jcy9saWJj dXJsL2N1cmxfZWFzeV91bmVzY2FwZS4zDQotaW5kZXggMDZmZDZmYy4uNTBjZTk3ZCAxMDA2NDQN Ci0tLS0gYS9kb2NzL2xpYmN1cmwvY3VybF9lYXN5X3VuZXNjYXBlLjMNCi0rKysgYi9kb2NzL2xp YmN1cmwvY3VybF9lYXN5X3VuZXNjYXBlLjMNCi1AQCAtMywxMSArMywxMSBAQA0KLSAuXCIgKiAg UHJvamVjdCAgICAgICAgICAgICAgICAgICAgIF9fX3wgfCB8IHwgIF8gXHwgfA0KLSAuXCIgKiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgLyBfX3wgfCB8IHwgfF8pIHwgfA0KLSAuXCIgKiAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8IChfX3wgfF98IHwgIF8gPHwgfF9fXw0KLSAuXCIg KiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXF9fX3xcX19fL3xffCBcX1xfX19fX3wNCi0g LlwiICoNCi0tLlwiICogQ29weXJpZ2h0IChDKSAxOTk4IC0gMjAxNSwgRGFuaWVsIFN0ZW5iZXJn LCA8ZGFuaWVsQGhheHguc2U+LCBldCBhbC4NCi0rLlwiICogQ29weXJpZ2h0IChDKSAxOTk4IC0g MjAxNiwgRGFuaWVsIFN0ZW5iZXJnLCA8ZGFuaWVsQGhheHguc2U+LCBldCBhbC4NCi0gLlwiICoN Ci0gLlwiICogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNlZCBhcyBkZXNjcmliZWQgaW4gdGhlIGZp bGUgQ09QWUlORywgd2hpY2gNCi0gLlwiICogeW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGFzIHBh cnQgb2YgdGhpcyBkaXN0cmlidXRpb24uIFRoZSB0ZXJtcw0KLSAuXCIgKiBhcmUgYWxzbyBhdmFp bGFibGUgYXQgaHR0cHM6Ly9jdXJsLmhheHguc2UvZG9jcy9jb3B5cmlnaHQuaHRtbC4NCi0gLlwi ICoNCi1AQCAtMzgsMTEgKzM4LDE0IEBAIHRoZWlyIGJpbmFyeSB2ZXJzaW9ucy4NCi0gSWYgdGhl IFxmQmxlbmd0aFxmUCBhcmd1bWVudCBpcyBzZXQgdG8gMCAoemVybyksIFxmSWN1cmxfZWFzeV91 bmVzY2FwZSgzKVxmUA0KLSB3aWxsIHVzZSBzdHJsZW4oKSBvbiB0aGUgaW5wdXQgXGZJdXJsXGZQ IHN0cmluZyB0byBmaW5kIG91dCB0aGUgc2l6ZS4NCi0gDQotIElmIFxmQm91dGxlbmd0aFxmUCBp cyBub24tTlVMTCwgdGhlIGZ1bmN0aW9uIHdpbGwgd3JpdGUgdGhlIGxlbmd0aCBvZiB0aGUNCi0g cmV0dXJuZWQgc3RyaW5nIGluIHRoZSBpbnRlZ2VyIGl0IHBvaW50cyB0by4gVGhpcyBhbGxvd3Mg YW4gZXNjYXBlZCBzdHJpbmcNCi0tY29udGFpbmluZyAlMDAgdG8gc3RpbGwgZ2V0IHVzZWQgcHJv cGVybHkgYWZ0ZXIgdW5lc2NhcGluZy4NCi0rY29udGFpbmluZyAlMDAgdG8gc3RpbGwgZ2V0IHVz ZWQgcHJvcGVybHkgYWZ0ZXIgdW5lc2NhcGluZy4gU2luY2UgdGhpcyBpcyBhDQotK3BvaW50ZXIg dG8gYW4gXGZJaW50XGZQIHR5cGUsIGl0IGNhbiBvbmx5IHJldHVybiBhIHZhbHVlIHVwIHRvIElO VF9NQVggc28gbm8NCi0rbG9uZ2VyIHN0cmluZyBjYW4gYmUgdW5lc2NhcGVkIGlmIHRoZSBzdHJp bmcgbGVuZ3RoIGlzIHJldHVybmVkIGluIHRoaXMNCi0rcGFyYW1ldGVyLg0KLSANCi0gWW91IG11 c3QgXGZJY3VybF9mcmVlKDMpXGZQIHRoZSByZXR1cm5lZCBzdHJpbmcgd2hlbiB5b3UncmUgZG9u ZSB3aXRoIGl0Lg0KLSAuU0ggQVZBSUxBQklMSVRZDQotIEFkZGVkIGluIDcuMTUuNCBhbmQgcmVw bGFjZXMgdGhlIG9sZCBcZkljdXJsX3VuZXNjYXBlKDMpXGZQIGZ1bmN0aW9uLg0KLSAuU0ggUkVU VVJOIFZBTFVFDQotZGlmZiAtLWdpdCBhL2xpYi9kaWN0LmMgYi9saWIvZGljdC5jDQotaW5kZXgg YTdiNTk2NS4uNDhhNGUwYSAxMDA2NDQNCi0tLS0gYS9saWIvZGljdC5jDQotKysrIGIvbGliL2Rp Y3QuYw0KLUBAIC0zLDExICszLDExIEBADQotICAqICBQcm9qZWN0ICAgICAgICAgICAgICAgICAg ICAgX19ffCB8IHwgfCAgXyBcfCB8DQotICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAv IF9ffCB8IHwgfCB8XykgfCB8DQotICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgKF9f fCB8X3wgfCAgXyA8fCB8X19fDQotICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcX19f fFxfX18vfF98IFxfXF9fX19ffA0KLSAgKg0KLS0gKiBDb3B5cmlnaHQgKEMpIDE5OTggLSAyMDE1 LCBEYW5pZWwgU3RlbmJlcmcsIDxkYW5pZWxAaGF4eC5zZT4sIGV0IGFsLg0KLSsgKiBDb3B5cmln aHQgKEMpIDE5OTggLSAyMDE2LCBEYW5pZWwgU3RlbmJlcmcsIDxkYW5pZWxAaGF4eC5zZT4sIGV0 IGFsLg0KLSAgKg0KLSAgKiBUaGlzIHNvZnR3YXJlIGlzIGxpY2Vuc2VkIGFzIGRlc2NyaWJlZCBp biB0aGUgZmlsZSBDT1BZSU5HLCB3aGljaA0KLSAgKiB5b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQg YXMgcGFydCBvZiB0aGlzIGRpc3RyaWJ1dGlvbi4gVGhlIHRlcm1zDQotICAqIGFyZSBhbHNvIGF2 YWlsYWJsZSBhdCBodHRwczovL2N1cmwuaGF4eC5zZS9kb2NzL2NvcHlyaWdodC5odG1sLg0KLSAg Kg0KLUBAIC01MCwxMSArNTAsMTEgQEANCi0gDQotICNpbmNsdWRlICJ1cmxkYXRhLmgiDQotICNp bmNsdWRlIDxjdXJsL2N1cmwuaD4NCi0gI2luY2x1ZGUgInRyYW5zZmVyLmgiDQotICNpbmNsdWRl ICJzZW5kZi5oIg0KLS0NCi0rI2luY2x1ZGUgImVzY2FwZS5oIg0KLSAjaW5jbHVkZSAicHJvZ3Jl c3MuaCINCi0gI2luY2x1ZGUgInN0cmVxdWFsLmgiDQotICNpbmNsdWRlICJkaWN0LmgiDQotICNp bmNsdWRlICJyYXdzdHIuaCINCi0gI2luY2x1ZGUgImN1cmxfbWVtb3J5LmgiDQotQEAgLTk0LDE2 ICs5NCwxNiBAQCBjb25zdCBzdHJ1Y3QgQ3VybF9oYW5kbGVyIEN1cmxfaGFuZGxlcl9kaWN0ID0g ew0KLSBzdGF0aWMgY2hhciAqdW5lc2NhcGVfd29yZChzdHJ1Y3QgQ3VybF9lYXN5ICpkYXRhLCBj b25zdCBjaGFyICppbnB1dGJ1ZmYpDQotIHsNCi0gICBjaGFyICpuZXdwOw0KLSAgIGNoYXIgKmRp Y3RwOw0KLSAgIGNoYXIgKnB0cjsNCi0tICBpbnQgbGVuOw0KLSsgIHNpemVfdCBsZW47DQotICAg Y2hhciBjaDsNCi0gICBpbnQgb2xlbj0wOw0KLSANCi0tICBuZXdwID0gY3VybF9lYXN5X3VuZXNj YXBlKGRhdGEsIGlucHV0YnVmZiwgMCwgJmxlbik7DQotLSAgaWYoIW5ld3ApDQotKyAgQ1VSTGNv ZGUgcmVzdWx0ID0gQ3VybF91cmxkZWNvZGUoZGF0YSwgaW5wdXRidWZmLCAwLCAmbmV3cCwgJmxl biwgRkFMU0UpOw0KLSsgIGlmKCFuZXdwIHx8IHJlc3VsdCkNCi0gICAgIHJldHVybiBOVUxMOw0K LSANCi0gICBkaWN0cCA9IG1hbGxvYygoKHNpemVfdClsZW4pKjIgKyAxKTsgLyogYWRkIG9uZSBm b3IgdGVybWluYXRpbmcgemVybyAqLw0KLSAgIGlmKGRpY3RwKSB7DQotICAgICAvKiBBY2NvcmRp bmcgdG8gUkZDMjIyOSBzZWN0aW9uIDIuMiwgdGhlc2UgbGV0dGVycyBuZWVkIHRvIGJlIGVzY2Fw ZWQgd2l0aA0KLWRpZmYgLS1naXQgYS9saWIvZXNjYXBlLmMgYi9saWIvZXNjYXBlLmMNCi1pbmRl eCBlNjEyNjBkLi42NjU3MDA3IDEwMDY0NA0KLS0tLSBhL2xpYi9lc2NhcGUuYw0KLSsrKyBiL2xp Yi9lc2NhcGUuYw0KLUBAIC0yMjIsMTIgKzIyMiwxOCBAQCBjaGFyICpjdXJsX2Vhc3lfdW5lc2Nh cGUoc3RydWN0IEN1cmxfZWFzeSAqZGF0YSwgY29uc3QgY2hhciAqc3RyaW5nLA0KLSAgICAgc2l6 ZV90IG91dHB1dGxlbjsNCi0gICAgIENVUkxjb2RlIHJlcyA9IEN1cmxfdXJsZGVjb2RlKGRhdGEs IHN0cmluZywgaW5wdXRsZW4sICZzdHIsICZvdXRwdXRsZW4sDQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBGQUxTRSk7DQotICAgICBpZihyZXMpDQotICAgICAgIHJldHVybiBO VUxMOw0KLS0gICAgaWYob2xlbikNCi0tICAgICAgKm9sZW4gPSBjdXJseF91enRvc2kob3V0cHV0 bGVuKTsNCi0rDQotKyAgICBpZihvbGVuKSB7DQotKyAgICAgIGlmKG91dHB1dGxlbiA8PSAoc2l6 ZV90KSBJTlRfTUFYKQ0KLSsgICAgICAgICpvbGVuID0gY3VybHhfdXp0b3NpKG91dHB1dGxlbik7 DQotKyAgICAgIGVsc2UNCi0rICAgICAgICAvKiB0b28gbGFyZ2UgdG8gcmV0dXJuIGluIGFuIGlu dCwgZmFpbCEgKi8NCi0rICAgICAgICBDdXJsX3NhZmVmcmVlKHN0cik7DQotKyAgICB9DQotICAg fQ0KLSAgIHJldHVybiBzdHI7DQotIH0NCi0gDQotIC8qIEZvciBvcGVyYXRpbmcgc3lzdGVtcy9l bnZpcm9ubWVudHMgdGhhdCB1c2UgZGlmZmVyZW50IG1hbGxvYy9mcmVlDQotLS0gDQotMi45LjMN Ci0NCmRpZmYgLS1naXQgYS9tYWluL2N1cmwvQ1ZFLTIwMTYtODYyMy5wYXRjaCBiL21haW4vY3Vy bC9DVkUtMjAxNi04NjIzLnBhdGNoDQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDRl Yjg2NzguLjAwMDAwMDANCi0tLSBhL21haW4vY3VybC9DVkUtMjAxNi04NjIzLnBhdGNoDQorKysg L2Rldi9udWxsDQpAQCAtMSwyMDcgKzAsMCBAQA0KLUZyb20gZDlkNTdmZTBkYTZmMjVkMDU1NzBm ZDU4MzUyMGVjZDMyMWVkOWMzZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDENCi1Gcm9tOiBEYW5p ZWwgU3RlbmJlcmcgPGRhbmllbEBoYXh4LnNlPg0KLURhdGU6IFR1ZSwgNCBPY3QgMjAxNiAyMzoy NjoxMyArMDIwMA0KLVN1YmplY3Q6IFtQQVRDSF0gY29va2llczogZ2V0bGlzdCgpIG5vdyBob2xk cyBkZWVwIGNvcGllcyBvZiBhbGwgY29va2llcw0KLQ0KLVByZXZpb3VzbHkgaXQgb25seSBoZWxk IHJlZmVyZW5jZXMgdG8gdGhlbSwgd2hpY2ggd2FzIHJlY2tsZXNzIGFzIHRoZQ0KLXRocmVhZCBs b2NrIHdhcyByZWxlYXNlZCBzbyB0aGUgY29va2llcyBjb3VsZCBnZXQgbW9kaWZpZWQgYnkgb3Ro ZXINCi1oYW5kbGVzIHRoYXQgc2hhcmUgdGhlIHNhbWUgY29va2llIGphciBvdmVyIHRoZSBzaGFy ZSBpbnRlcmZhY2UuDQotDQotQ1ZFLTIwMTYtODYyMw0KLQ0KLUJ1ZzogaHR0cHM6Ly9jdXJsLmhh eHguc2UvZG9jcy9hZHZfMjAxNjExMDJJLmh0bWwNCi1SZXBvcnRlZC1ieTogQ3VyZTUzDQotLS0t DQotIGxpYi9jb29raWUuYyB8IDYxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KLSBsaWIvY29va2llLmggfCAgNCArKy0tDQotIGxp Yi9odHRwLmMgICB8ICAyICstDQotIDMgZmlsZXMgY2hhbmdlZCwgNDMgaW5zZXJ0aW9ucygrKSwg MjQgZGVsZXRpb25zKC0pDQotDQotZGlmZiAtLWdpdCBhL2xpYi9jb29raWUuYyBiL2xpYi9jb29r aWUuYw0KLWluZGV4IDBmMDVkYTIuLjg2MDdjZTMgMTAwNjQ0DQotLS0tIGEvbGliL2Nvb2tpZS5j DQotKysrIGIvbGliL2Nvb2tpZS5jDQotQEAgLTEwMjIsMTAgKzEwMjIsNDQgQEAgc3RhdGljIGlu dCBjb29raWVfc29ydChjb25zdCB2b2lkICpwMSwgY29uc3Qgdm9pZCAqcDIpDQotIA0KLSAgIC8q IHNvcnJ5LCBjYW4ndCBiZSBtb3JlIGRldGVybWluaXN0aWMgKi8NCi0gICByZXR1cm4gMDsNCi0g fQ0KLSANCi0rI2RlZmluZSBDTE9ORShmaWVsZCkgICAgICAgICAgICAgICAgICAgICBcDQotKyAg ZG8geyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KLSsgICAgaWYoc3JjLT5m aWVsZCkgeyAgICAgICAgICAgICAgICAgICAgIFwNCi0rICAgICAgZHVwLT5maWVsZCA9IHN0cmR1 cChzcmMtPmZpZWxkKTsgICBcDQotKyAgICAgIGlmKCFkdXAtPmZpZWxkKSAgICAgICAgICAgICAg ICAgICAgXA0KLSsgICAgICAgIGdvdG8gZmFpbDsgICAgICAgICAgICAgICAgICAgICAgIFwNCi0r ICAgIH0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQotKyAgfSB3aGlsZSgw KQ0KLSsNCi0rc3RhdGljIHN0cnVjdCBDb29raWUgKmR1cF9jb29raWUoc3RydWN0IENvb2tpZSAq c3JjKQ0KLSt7DQotKyAgc3RydWN0IENvb2tpZSAqZHVwID0gY2FsbG9jKHNpemVvZihzdHJ1Y3Qg Q29va2llKSwgMSk7DQotKyAgaWYoZHVwKSB7DQotKyAgICBDTE9ORShleHBpcmVzdHIpOw0KLSsg ICAgQ0xPTkUoZG9tYWluKTsNCi0rICAgIENMT05FKHBhdGgpOw0KLSsgICAgQ0xPTkUoc3BhdGgp Ow0KLSsgICAgQ0xPTkUobmFtZSk7DQotKyAgICBDTE9ORSh2YWx1ZSk7DQotKyAgICBDTE9ORSht YXhhZ2UpOw0KLSsgICAgQ0xPTkUodmVyc2lvbik7DQotKyAgICBkdXAtPmV4cGlyZXMgPSBzcmMt PmV4cGlyZXM7DQotKyAgICBkdXAtPnRhaWxtYXRjaCA9IHNyYy0+dGFpbG1hdGNoOw0KLSsgICAg ZHVwLT5zZWN1cmUgPSBzcmMtPnNlY3VyZTsNCi0rICAgIGR1cC0+bGl2ZWNvb2tpZSA9IHNyYy0+ bGl2ZWNvb2tpZTsNCi0rICAgIGR1cC0+aHR0cG9ubHkgPSBzcmMtPmh0dHBvbmx5Ow0KLSsgIH0N Ci0rICByZXR1cm4gZHVwOw0KLSsNCi0rICBmYWlsOg0KLSsgIGZyZWVjb29raWUoZHVwKTsNCi0r ICByZXR1cm4gTlVMTDsNCi0rfQ0KLSsNCi0gLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqDQotICAqDQot ICAqIEN1cmxfY29va2llX2dldGxpc3QoKQ0KLSAgKg0KLSAgKiBGb3IgYSBnaXZlbiBob3N0IGFu ZCBwYXRoLCByZXR1cm4gYSBsaW5rZWQgbGlzdCBvZiBjb29raWVzIHRoYXQgdGhlDQotQEAgLTEw NzcsMTUgKzExMTEsMTIgQEAgc3RydWN0IENvb2tpZSAqQ3VybF9jb29raWVfZ2V0bGlzdChzdHJ1 Y3QgQ29va2llSW5mbyAqYywNCi0gICAgICAgICBpZighY28tPnNwYXRoIHx8IHBhdGhtYXRjaChj by0+c3BhdGgsIHBhdGgpICkgew0KLSANCi0gICAgICAgICAgIC8qIGFuZCBub3csIHdlIGtub3cg dGhpcyBpcyBhIG1hdGNoIGFuZCB3ZSBzaG91bGQgY3JlYXRlIGFuDQotICAgICAgICAgICAgICBl bnRyeSBmb3IgdGhlIHJldHVybi1saW5rZWQtbGlzdCAqLw0KLSANCi0tICAgICAgICAgIG5ld2Nv ID0gbWFsbG9jKHNpemVvZihzdHJ1Y3QgQ29va2llKSk7DQotKyAgICAgICAgICBuZXdjbyA9IGR1 cF9jb29raWUoY28pOw0KLSAgICAgICAgICAgaWYobmV3Y28pIHsNCi0tICAgICAgICAgICAgLyog Zmlyc3QsIGNvcHkgdGhlIHdob2xlIHNvdXJjZSBjb29raWU6ICovDQotLSAgICAgICAgICAgIG1l bWNweShuZXdjbywgY28sIHNpemVvZihzdHJ1Y3QgQ29va2llKSk7DQotLQ0KLSAgICAgICAgICAg ICAvKiB0aGVuIG1vZGlmeSBvdXIgbmV4dCAqLw0KLSAgICAgICAgICAgICBuZXdjby0+bmV4dCA9 IG1haW5jbzsNCi0gDQotICAgICAgICAgICAgIC8qIHBvaW50IHRoZSBtYWluIHRvIHVzICovDQot ICAgICAgICAgICAgIG1haW5jbyA9IG5ld2NvOw0KLUBAIC0xMDkzLDE2ICsxMTI0LDExIEBAIHN0 cnVjdCBDb29raWUgKkN1cmxfY29va2llX2dldGxpc3Qoc3RydWN0IENvb2tpZUluZm8gKmMsDQot ICAgICAgICAgICAgIG1hdGNoZXMrKzsNCi0gICAgICAgICAgIH0NCi0gICAgICAgICAgIGVsc2Ug ew0KLSAgICAgICAgICAgICBmYWlsOg0KLSAgICAgICAgICAgICAvKiBmYWlsdXJlLCBjbGVhciB1 cCB0aGUgYWxsb2NhdGVkIGNoYWluIGFuZCByZXR1cm4gTlVMTCAqLw0KLS0gICAgICAgICAgICB3 aGlsZShtYWluY28pIHsNCi0tICAgICAgICAgICAgICBjbyA9IG1haW5jby0+bmV4dDsNCi0tICAg ICAgICAgICAgICBmcmVlKG1haW5jbyk7DQotLSAgICAgICAgICAgICAgbWFpbmNvID0gY287DQot LSAgICAgICAgICAgIH0NCi0tDQotKyAgICAgICAgICAgIEN1cmxfY29va2llX2ZyZWVsaXN0KG1h aW5jbyk7DQotICAgICAgICAgICAgIHJldHVybiBOVUxMOw0KLSAgICAgICAgICAgfQ0KLSAgICAg ICAgIH0NCi0gICAgICAgfQ0KLSAgICAgfQ0KLUBAIC0xMTUwLDExICsxMTc2LDExIEBAIHN0cnVj dCBDb29raWUgKkN1cmxfY29va2llX2dldGxpc3Qoc3RydWN0IENvb2tpZUluZm8gKmMsDQotICAq DQotICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqLw0KLSB2b2lkIEN1cmxfY29va2llX2NsZWFyYWxsKHN0 cnVjdCBDb29raWVJbmZvICpjb29raWVzKQ0KLSB7DQotICAgaWYoY29va2llcykgew0KLS0gICAg Q3VybF9jb29raWVfZnJlZWxpc3QoY29va2llcy0+Y29va2llcywgVFJVRSk7DQotKyAgICBDdXJs X2Nvb2tpZV9mcmVlbGlzdChjb29raWVzLT5jb29raWVzKTsNCi0gICAgIGNvb2tpZXMtPmNvb2tp ZXMgPSBOVUxMOw0KLSAgICAgY29va2llcy0+bnVtY29va2llcyA9IDA7DQotICAgfQ0KLSB9DQot IA0KLUBAIC0xMTYyLDI1ICsxMTg4LDE4IEBAIHZvaWQgQ3VybF9jb29raWVfY2xlYXJhbGwoc3Ry dWN0IENvb2tpZUluZm8gKmNvb2tpZXMpDQotICAqDQotICAqIEN1cmxfY29va2llX2ZyZWVsaXN0 KCkNCi0gICoNCi0gICogRnJlZSBhIGxpc3Qgb2YgY29va2llcyBwcmV2aW91c2x5IHJldHVybmVk IGJ5IEN1cmxfY29va2llX2dldGxpc3QoKTsNCi0gICoNCi0tICogVGhlICdjb29raWVzdG9vJyBh cmd1bWVudCB0ZWxscyB0aGlzIGZ1bmN0aW9uIHdoZXRoZXIgdG8ganVzdCBmcmVlIHRoZQ0KLS0g KiBsaXN0IG9yIGFjdHVhbGx5IGFsc28gZnJlZSBhbGwgY29va2llcyB3aXRoaW4gdGhlIGxpc3Qg YXMgd2VsbC4NCi0tICoNCi0gICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovDQotIA0KLS12b2lkIEN1cmxf Y29va2llX2ZyZWVsaXN0KHN0cnVjdCBDb29raWUgKmNvLCBib29sIGNvb2tpZXN0b28pDQotK3Zv aWQgQ3VybF9jb29raWVfZnJlZWxpc3Qoc3RydWN0IENvb2tpZSAqY28pDQotIHsNCi0gICBzdHJ1 Y3QgQ29va2llICpuZXh0Ow0KLSAgIHdoaWxlKGNvKSB7DQotICAgICBuZXh0ID0gY28tPm5leHQ7 DQotLSAgICBpZihjb29raWVzdG9vKQ0KLS0gICAgICBmcmVlY29va2llKGNvKTsNCi0tICAgIGVs c2UNCi0tICAgICAgZnJlZShjbyk7IC8qIHdlIG9ubHkgZnJlZSB0aGUgc3RydWN0IHNpbmNlIHRo ZSAibWVtYmVycyIgYXJlIGFsbCBqdXN0DQotLSAgICAgICAgICAgICAgICAgICBwb2ludGVkIG91 dCBpbiB0aGUgbWFpbiBjb29raWUgbGlzdCEgKi8NCi0rICAgIGZyZWVjb29raWUoY28pOw0KLSAg ICAgY28gPSBuZXh0Ow0KLSAgIH0NCi0gfQ0KLSANCi0gDQotQEAgLTEyMzEsMTEgKzEyNTAsMTEg QEAgdm9pZCBDdXJsX2Nvb2tpZV9jbGVhcnNlc3Moc3RydWN0IENvb2tpZUluZm8gKmNvb2tpZXMp DQotICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqLw0KLSB2b2lkIEN1cmxfY29va2llX2NsZWFudXAoc3Ry dWN0IENvb2tpZUluZm8gKmMpDQotIHsNCi0gICBpZihjKSB7DQotICAgICBmcmVlKGMtPmZpbGVu YW1lKTsNCi0tICAgIEN1cmxfY29va2llX2ZyZWVsaXN0KGMtPmNvb2tpZXMsIFRSVUUpOw0KLSsg ICAgQ3VybF9jb29raWVfZnJlZWxpc3QoYy0+Y29va2llcyk7DQotICAgICBmcmVlKGMpOyAvKiBm cmVlIHRoZSBiYXNlIHN0cnVjdCBhcyB3ZWxsICovDQotICAgfQ0KLSB9DQotIA0KLSAvKiBnZXRf bmV0c2NhcGVfZm9ybWF0KCkNCi1kaWZmIC0tZ2l0IGEvbGliL2Nvb2tpZS5oIGIvbGliL2Nvb2tp ZS5oDQotaW5kZXggY2Q3YzU0YS4uYTlhNDU3OCAxMDA2NDQNCi0tLS0gYS9saWIvY29va2llLmgN Ci0rKysgYi9saWIvY29va2llLmgNCi1AQCAtNSwxMSArNSwxMSBAQA0KLSAgKiAgUHJvamVjdCAg ICAgICAgICAgICAgICAgICAgIF9fX3wgfCB8IHwgIF8gXHwgfA0KLSAgKiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLyBfX3wgfCB8IHwgfF8pIHwgfA0KLSAgKiAgICAgICAgICAgICAgICAg ICAgICAgICAgICB8IChfX3wgfF98IHwgIF8gPHwgfF9fXw0KLSAgKiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXF9fX3xcX19fL3xffCBcX1xfX19fX3wNCi0gICoNCi0tICogQ29weXJpZ2h0 IChDKSAxOTk4IC0gMjAxMSwgRGFuaWVsIFN0ZW5iZXJnLCA8ZGFuaWVsQGhheHguc2U+LCBldCBh bC4NCi0rICogQ29weXJpZ2h0IChDKSAxOTk4IC0gMjAxNiwgRGFuaWVsIFN0ZW5iZXJnLCA8ZGFu aWVsQGhheHguc2U+LCBldCBhbC4NCi0gICoNCi0gICogVGhpcyBzb2Z0d2FyZSBpcyBsaWNlbnNl ZCBhcyBkZXNjcmliZWQgaW4gdGhlIGZpbGUgQ09QWUlORywgd2hpY2gNCi0gICogeW91IHNob3Vs ZCBoYXZlIHJlY2VpdmVkIGFzIHBhcnQgb2YgdGhpcyBkaXN0cmlidXRpb24uIFRoZSB0ZXJtcw0K LSAgKiBhcmUgYWxzbyBhdmFpbGFibGUgYXQgaHR0cHM6Ly9jdXJsLmhheHguc2UvZG9jcy9jb3B5 cmlnaHQuaHRtbC4NCi0gICoNCi1AQCAtODAsMTEgKzgwLDExIEBAIHN0cnVjdCBDb29raWUgKkN1 cmxfY29va2llX2FkZChzdHJ1Y3QgQ3VybF9lYXN5ICpkYXRhLA0KLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgc3RydWN0IENvb2tpZUluZm8gKiwgYm9vbCBoZWFkZXIsIGNoYXIgKmxp bmVwdHIsDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpkb21h aW4sIGNvbnN0IGNoYXIgKnBhdGgpOw0KLSANCi0gc3RydWN0IENvb2tpZSAqQ3VybF9jb29raWVf Z2V0bGlzdChzdHJ1Y3QgQ29va2llSW5mbyAqLCBjb25zdCBjaGFyICosDQotICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hhciAqLCBib29sKTsNCi0tdm9pZCBDdXJs X2Nvb2tpZV9mcmVlbGlzdChzdHJ1Y3QgQ29va2llICpjb29raWVzLCBib29sIGNvb2tpZXN0b28p Ow0KLSt2b2lkIEN1cmxfY29va2llX2ZyZWVsaXN0KHN0cnVjdCBDb29raWUgKmNvb2tpZXMpOw0K LSB2b2lkIEN1cmxfY29va2llX2NsZWFyYWxsKHN0cnVjdCBDb29raWVJbmZvICpjb29raWVzKTsN Ci0gdm9pZCBDdXJsX2Nvb2tpZV9jbGVhcnNlc3Moc3RydWN0IENvb2tpZUluZm8gKmNvb2tpZXMp Ow0KLSANCi0gI2lmIGRlZmluZWQoQ1VSTF9ESVNBQkxFX0hUVFApIHx8IGRlZmluZWQoQ1VSTF9E SVNBQkxFX0NPT0tJRVMpDQotICNkZWZpbmUgQ3VybF9jb29raWVfbGlzdCh4KSBOVUxMDQotZGlm ZiAtLWdpdCBhL2xpYi9odHRwLmMgYi9saWIvaHR0cC5jDQotaW5kZXggNjVjMTQ1YS4uZTZlN2Qz NyAxMDA2NDQNCi0tLS0gYS9saWIvaHR0cC5jDQotKysrIGIvbGliL2h0dHAuYw0KLUBAIC0yMzgy LDExICsyMzgyLDExIEBAIENVUkxjb2RlIEN1cmxfaHR0cChzdHJ1Y3QgY29ubmVjdGRhdGEgKmNv bm4sIGJvb2wgKmRvbmUpDQotICAgICAgICAgICAgIGJyZWFrOw0KLSAgICAgICAgICAgY291bnQr KzsNCi0gICAgICAgICB9DQotICAgICAgICAgY28gPSBjby0+bmV4dDsgLyogbmV4dCBjb29raWUg cGxlYXNlICovDQotICAgICAgIH0NCi0tICAgICAgQ3VybF9jb29raWVfZnJlZWxpc3Qoc3RvcmUs IEZBTFNFKTsgLyogZnJlZSB0aGUgY29va2llIGxpc3QgKi8NCi0rICAgICAgQ3VybF9jb29raWVf ZnJlZWxpc3Qoc3RvcmUpOw0KLSAgICAgfQ0KLSAgICAgaWYoYWRkY29va2llcyAmJiAhcmVzdWx0 KSB7DQotICAgICAgIGlmKCFjb3VudCkNCi0gICAgICAgICByZXN1bHQgPSBDdXJsX2FkZF9idWZm ZXJmKHJlcV9idWZmZXIsICJDb29raWU6ICIpOw0KLSAgICAgICBpZighcmVzdWx0KSB7DQotLS0g DQotMi45LjMNCi0NCmRpZmYgLS1naXQgYS9tYWluL2N1cmwvQ1ZFLTIwMTYtODYyNC1maXhlZC5w YXRjaCBiL21haW4vY3VybC9DVkUtMjAxNi04NjI0LWZpeGVkLnBhdGNoDQpkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQNCmluZGV4IGIyODhmOWUuLjAwMDAwMDANCi0tLSBhL21haW4vY3VybC9DVkUt MjAxNi04NjI0LWZpeGVkLnBhdGNoDQorKysgL2Rldi9udWxsDQpAQCAtMSw2MSArMCwwIEBADQot RnJvbSA2NjA0ZDRkZjMwYWVjNjZkYjZmNWJkNTFlZTNjMzQxZGQ3MzI5ZmNmIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQ0KLUZyb206IERhbmllbCBTdGVuYmVyZyA8ZGFuaWVsQGhheHguc2U+DQot RGF0ZTogVHVlLCAxMSBPY3QgMjAxNiAwMDo0ODozNSArMDIwMA0KLVN1YmplY3Q6IFtQQVRDSF0g dXJscGFyc2U6IGFjY2VwdCAnIycgYXMgZW5kIG9mIGhvc3QgbmFtZQ0KLU1JTUUtVmVyc2lvbjog MS4wDQotQ29udGVudC1UeXBlOiB0ZXh0L3BsYWluOyBjaGFyc2V0PVVURi04DQotQ29udGVudC1U cmFuc2Zlci1FbmNvZGluZzogOGJpdA0KLQ0KLSdodHRwOi8vZXhhbXBsZS5jb20jQDEyNy4wLjAu MS94LnR4dCcgZXF1YWxzIGEgcmVxdWVzdCB0byBleGFtcGxlLmNvbQ0KLWZvciB0aGUgJy8nIGRv Y3VtZW50IHdpdGggdGhlIHJlc3Qgb2YgdGhlIFVSTCBiZWluZyBhIGZyYWdtZW50Lg0KLQ0KLUNW RS0yMDE2LTg2MjQNCi0NCi1CdWc6IGh0dHBzOi8vY3VybC5oYXh4LnNlL2RvY3MvYWR2XzIwMTYx MTAySi5odG1sDQotUmVwb3J0ZWQtYnk6IEZlcm5hbmRvIE11w7Fveg0KLS0tLQ0KLSBsaWIvdXJs LmMgfCAxMCArKysrKy0tLS0tDQotIDEgZmlsZSBjaGFuZ2VkLCA1IGluc2VydGlvbnMoKyksIDUg ZGVsZXRpb25zKC0pDQotDQotZGlmZiAtLWdpdCBhL2xpYi91cmwuYyBiL2xpYi91cmwuYw0KLWlu ZGV4IDkxYjJiZjguLjk4MjM2ZTIgMTAwNjQ0DQotLS0tDQotUGF0Y2ggd2FzIHNsaWdodGx5IG1v ZGlmaWVkIGJ5IFNlcmdleSBMdWtpbiA8c2VyZ2VqLmx1a2luQGdtYWlsLmNvbT4NCi1PcmlnaW5h bCBwYXRjaCAoaHR0cHM6Ly9jdXJsLmhheHguc2UvQ1ZFLTIwMTYtODYyNC5wYXRjaCkgZmFpbGVk IHRvIGFwcGx5IHRvDQotY3VybCA3LjQ5LjENCi0NCi0tLS0gYS9saWIvdXJsLmMNCi0rKysgYi9s aWIvdXJsLmMNCi1AQCAtNDE0NCw3ICs0MTQ0LDcgQEANCi0gICAgIHBhdGhbMF09MDsNCi0gDQot ICAgICBpZigyID4gc3NjYW5mKGRhdGEtPmNoYW5nZS51cmwsDQotLSAgICAgICAgICAgICAgICAg ICAiJTE1W15cbjpdOi8vJVteXG4vP10lW15cbl0iLA0KLSsgICAgICAgICAgICAgICAgICAgIiUx NVteXG46XTovLyVbXlxuLz8jXSVbXlxuXSIsDQotICAgICAgICAgICAgICAgICAgICBwcm90b2J1 ZiwNCi0gICAgICAgICAgICAgICAgICAgIGNvbm4tPmhvc3QubmFtZSwgcGF0aCkpIHsNCi0gDQot QEAgLTQxNTIsNyArNDE1Miw3IEBADQotICAgICAgICAqIFRoZSBVUkwgd2FzIGJhZGx5IGZvcm1h dHRlZCwgbGV0J3MgdHJ5IHRoZSBicm93c2VyLXN0eWxlIF93aXRob3V0Xw0KLSAgICAgICAgKiBw cm90b2NvbCBzcGVjaWZpZWQgbGlrZSAnaHR0cDovLycuDQotICAgICAgICAqLw0KLS0gICAgICBy YyA9IHNzY2FuZihkYXRhLT5jaGFuZ2UudXJsLCAiJVteXG4vP10lW15cbl0iLCBjb25uLT5ob3N0 Lm5hbWUsIHBhdGgpOw0KLSsgICAgICByYyA9IHNzY2FuZihkYXRhLT5jaGFuZ2UudXJsLCAiJVte XG4vPyNdJVteXG5dIiwgY29ubi0+aG9zdC5uYW1lLCBwYXRoKTsNCi0gICAgICAgaWYoMSA+IHJj KSB7DQotICAgICAgICAgLyoNCi0gICAgICAgICAgKiBXZSBjb3VsZG4ndCBldmVuIGdldCB0aGlz IGZvcm1hdC4NCi1AQCAtNDI0MiwxMCArNDI0MiwxMCBAQA0KLSAgIH0NCi0gDQotICAgLyogSWYg dGhlIFVSTCBpcyBtYWxmb3JtYXR0ZWQgKG1pc3NpbmcgYSAnLycgYWZ0ZXIgaG9zdG5hbWUgYmVm b3JlIHBhdGgpIHdlDQotLSAgICogaW5zZXJ0IGEgc2xhc2ggaGVyZS4gVGhlIG9ubHkgbGV0dGVy IGV4Y2VwdCAnLycgd2UgYWNjZXB0IHRvIHN0YXJ0IGEgcGF0aA0KLS0gICAqIGlzICc/Jy4NCi0r ICAgKiBpbnNlcnQgYSBzbGFzaCBoZXJlLiBUaGUgb25seSBsZXR0ZXJzIGV4Y2VwdCAnLycgdGhh dCBjYW4gc3RhcnQgYSBwYXRoIGlzDQotKyAgICogJz8nIGFuZCAnIycgLSBhcyBjb250cm9sbGVk IGJ5IHRoZSB0d28gc3NjYW5mKCkgcGF0dGVybnMgYWJvdmUuDQotICAgICovDQotLSAgaWYocGF0 aFswXSA9PSAnPycpIHsNCi0rICBpZihwYXRoWzBdICE9ICcvJykgew0KLSAgICAgLyogV2UgbmVl ZCB0aGlzIGZ1bmN0aW9uIHRvIGRlYWwgd2l0aCBvdmVybGFwcGluZyBtZW1vcnkgYXJlYXMuIFdl IGtub3cNCi0gICAgICAgIHRoYXQgdGhlIG1lbW9yeSBhcmVhICdwYXRoJyBwb2ludHMgdG8gaXMg J3VybGxlbicgYnl0ZXMgYmlnIGFuZCB0aGF0DQotICAgICAgICBpcyBiaWdnZXIgdGhhbiB0aGUg cGF0aC4gVXNlICsxIHRvIG1vdmUgdGhlIHplcm8gYnl0ZSB0b28uICovDQotDQotLSANCjIuNi42 DQoNCg0KDQotLS0NClVuc3Vic2NyaWJlOiAgYWxwaW5lLWFwb3J0cyt1bnN1YnNjcmliZUBsaXN0 cy5hbHBpbmVsaW51eC5vcmcNCkhlbHA6ICAgICAgICAgYWxwaW5lLWFwb3J0cytoZWxwQGxpc3Rz LmFscGluZWxpbnV4Lm9yZw0KLS0tDQo=