From nobody Thu Mar 28 20:41:18 2024 X-Original-To: alpine-aports@lists.alpinelinux.org Received: from mail-qt0-f178.google.com (mail-qt0-f178.google.com [209.85.216.178]) by lists.alpinelinux.org (Postfix) with ESMTP id CB0225C4E10 for ; Mon, 27 Nov 2017 00:03:05 +0000 (GMT) Received: by mail-qt0-f178.google.com with SMTP id w10so25125317qtb.10 for ; Sun, 26 Nov 2017 16:03:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=9FqucAJh668WT/kLu6H2IWMgQ5CE3nm97gsCLxMn8hc=; b=Gqt2YZWfcdPh6GFC/BnrurbOBBiUIK8+hMrBtJQo1q3s7FOkY0xM7zUNpAX80JGqet gXTMH8OAl2P/unA4oTMwxM5TLaYyE7m/usWNql0Txn8vdrBF2USUmhQqrEOC44+U8ICY 6nsRNpYFH7ZYrE65K1Bbjd0BF7waSb6p1pY5E4eGG3yzRnPsv5QSna1fGwUQsTPotWRk TwDMiVcDO1lQ1eYkntovQ1yXDUTwvA/wrUpzcys/hM9fxMGJJ01LSdrqWcfE8QEtVQlK 8PRBmO5d9ascdthsv0NvKT9aam3p1zRvKIkH4hmxy/qrR2XzWIvvge/q7jqXNFVLnOCH mhjg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id:mime-version :content-transfer-encoding; bh=9FqucAJh668WT/kLu6H2IWMgQ5CE3nm97gsCLxMn8hc=; b=dEmSkfpn2EQDewBdTPGleGl20BnJhfI4GzfWwQHp5ECUo04kIXxtQ4EWB/toP04BfG gBdg30ifuDlqiHq9gD3QS6yGq2thozVp/3zqV3apMy5bjnLSF8PsP3OwootTnf5u01vV NTiqTQy2N7Wx6OeJCdKJ/eu2zWF1NlZD6ajRrs5lyloi6ZyVsJRU+Do4apTNYfefIhsI a+0vbn5YH/TTufkS6K50hhVViQbbvFoTmdsByzoww12r6Orni5MflHm48xV/B8jDoz7u dHyq9VsJKQ39+gJpnIwzriuQV5PaJ6Qezq9KOMGLUs+AbnfgyVwaX8WWtZJaPn24AHQO gZrA== X-Gm-Message-State: AJaThX4lr9gy2jcNt76eJt2TpCiCEUwdhegTPD4Sw9+gD7MzXqQ+QD60 wt5O7EZdWxA97CkNWHe7fDeLFA== X-Google-Smtp-Source: AGs4zMZ66cbTjXHcmEOIjywFKb8Fg99oMN09NJeLxfDZGiiTbU/bMWIB7xcaA2vih8lTR9avJEJ6gA== X-Received: by 10.200.53.201 with SMTP id l9mr55811161qtb.155.1511740981502; Sun, 26 Nov 2017 16:03:01 -0800 (PST) Received: from localhost.localdomain (c-71-60-35-21.hsd1.pa.comcast.net. [71.60.35.21]) by smtp.googlemail.com with ESMTPSA id h32sm10924258qtk.8.2017.11.26.16.03.00 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 26 Nov 2017 16:03:00 -0800 (PST) From: Daniel Sabogal To: alpine-aports@lists.alpinelinux.org Subject: [alpine-aports] [PATCH] main/xen: upgrade to 4.9.1 Date: Sun, 26 Nov 2017 19:05:42 -0500 Message-Id: <20171127000542.32617-1-dsabogalcc@gmail.com> X-Mailer: git-send-email 2.15.0 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 U2VjdXJpdHkgZml4ZXMgZm9yIGFsbCBhcHBsaWNhYmxlIFhTQXMgdXAgdG8gKGFuZCBpbmNsdWRp bmcpIFhTQS0yNDUNClVwc3RyZWFtIHJvbWJpb3MgbWFrZWZpbGUgbm93IGVuZm9yY2VzIG5vbi1Q SUMvUElFIG1vZGUNCi0tLQ0KIG1haW4veGVuL0FQS0JVSUxEICAgICAgICAgICAgIHwgIDYzICst LS0tLQ0KIG1haW4veGVuL3JvbWJpb3Mtbm8tcGllLnBhdGNoIHwgIDIyIC0tDQogbWFpbi94ZW4v eHNhMjI2LTEucGF0Y2ggICAgICAgfCAxNDkgLS0tLS0tLS0tLS0tLQ0KIG1haW4veGVuL3hzYTIy Ni0yLnBhdGNoICAgICAgIHwgMjgwIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIG1haW4veGVu L3hzYTIyNy5wYXRjaCAgICAgICAgIHwgIDUyIC0tLS0tDQogbWFpbi94ZW4veHNhMjI4LnBhdGNo ICAgICAgICAgfCAxOTggLS0tLS0tLS0tLS0tLS0tLS0NCiBtYWluL3hlbi94c2EyMzAucGF0Y2gg ICAgICAgICB8ICAzOCAtLS0tDQogbWFpbi94ZW4veHNhMjMxLTQuOS5wYXRjaCAgICAgfCAxMDgg LS0tLS0tLS0tDQogbWFpbi94ZW4veHNhMjMyLnBhdGNoICAgICAgICAgfCAgMjMgLS0NCiBtYWlu L3hlbi94c2EyMzMucGF0Y2ggICAgICAgICB8ICA1MiAtLS0tLQ0KIG1haW4veGVuL3hzYTIzNC00 LjkucGF0Y2ggICAgIHwgMTkyIC0tLS0tLS0tLS0tLS0tLS0NCiBtYWluL3hlbi94c2EyMzUtNC45 LnBhdGNoICAgICB8ICA0OSAtLS0tLQ0KIG1haW4veGVuL3hzYTIzNi00LjkucGF0Y2ggICAgIHwg IDY2IC0tLS0tLQ0KIG1haW4veGVuL3hzYTIzNy0xLnBhdGNoICAgICAgIHwgIDI3IC0tLQ0KIG1h aW4veGVuL3hzYTIzNy0yLnBhdGNoICAgICAgIHwgIDY2IC0tLS0tLQ0KIG1haW4veGVuL3hzYTIz Ny0zLnBhdGNoICAgICAgIHwgIDU1IC0tLS0tDQogbWFpbi94ZW4veHNhMjM3LTQucGF0Y2ggICAg ICAgfCAxMjQgLS0tLS0tLS0tLS0NCiBtYWluL3hlbi94c2EyMzctNS5wYXRjaCAgICAgICB8ICAz NyAtLS0tDQogbWFpbi94ZW4veHNhMjM4LnBhdGNoICAgICAgICAgfCAgNDUgLS0tLQ0KIG1haW4v eGVuL3hzYTIzOS5wYXRjaCAgICAgICAgIHwgIDQ2IC0tLS0NCiBtYWluL3hlbi94c2EyNDAtMS5w YXRjaCAgICAgICB8IDQ5NCAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0NCiBtYWluL3hlbi94c2EyNDAtMi5wYXRjaCAgICAgICB8ICA4MyAtLS0tLS0tDQogbWFpbi94 ZW4veHNhMjQxLTQuOS5wYXRjaCAgICAgfCAxMjAgLS0tLS0tLS0tLQ0KIG1haW4veGVuL3hzYTI0 Mi00LjkucGF0Y2ggICAgIHwgIDQzIC0tLS0NCiBtYWluL3hlbi94c2EyNDMtMS5wYXRjaCAgICAg ICB8ICA5MyAtLS0tLS0tLQ0KIG1haW4veGVuL3hzYTI0My0yLnBhdGNoICAgICAgIHwgIDU0IC0t LS0tDQogbWFpbi94ZW4veHNhMjQ0LnBhdGNoICAgICAgICAgfCAgNTkgLS0tLS0NCiBtYWluL3hl bi94c2EyNDUtMS5wYXRjaCAgICAgICB8ICA0OCAtLS0tDQogbWFpbi94ZW4veHNhMjQ1LTIucGF0 Y2ggICAgICAgfCAgNzMgLS0tLS0tLQ0KIDI5IGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9ucygr KSwgMjc1NiBkZWxldGlvbnMoLSkNCiBkZWxldGUgbW9kZSAxMDA2NDQgbWFpbi94ZW4vcm9tYmlv cy1uby1waWUucGF0Y2gNCiBkZWxldGUgbW9kZSAxMDA2NDQgbWFpbi94ZW4veHNhMjI2LTEucGF0 Y2gNCiBkZWxldGUgbW9kZSAxMDA2NDQgbWFpbi94ZW4veHNhMjI2LTIucGF0Y2gNCiBkZWxldGUg bW9kZSAxMDA2NDQgbWFpbi94ZW4veHNhMjI3LnBhdGNoDQogZGVsZXRlIG1vZGUgMTAwNjQ0IG1h aW4veGVuL3hzYTIyOC5wYXRjaA0KIGRlbGV0ZSBtb2RlIDEwMDY0NCBtYWluL3hlbi94c2EyMzAu cGF0Y2gNCiBkZWxldGUgbW9kZSAxMDA2NDQgbWFpbi94ZW4veHNhMjMxLTQuOS5wYXRjaA0KIGRl bGV0ZSBtb2RlIDEwMDY0NCBtYWluL3hlbi94c2EyMzIucGF0Y2gNCiBkZWxldGUgbW9kZSAxMDA2 NDQgbWFpbi94ZW4veHNhMjMzLnBhdGNoDQogZGVsZXRlIG1vZGUgMTAwNjQ0IG1haW4veGVuL3hz YTIzNC00LjkucGF0Y2gNCiBkZWxldGUgbW9kZSAxMDA2NDQgbWFpbi94ZW4veHNhMjM1LTQuOS5w YXRjaA0KIGRlbGV0ZSBtb2RlIDEwMDY0NCBtYWluL3hlbi94c2EyMzYtNC45LnBhdGNoDQogZGVs ZXRlIG1vZGUgMTAwNjQ0IG1haW4veGVuL3hzYTIzNy0xLnBhdGNoDQogZGVsZXRlIG1vZGUgMTAw NjQ0IG1haW4veGVuL3hzYTIzNy0yLnBhdGNoDQogZGVsZXRlIG1vZGUgMTAwNjQ0IG1haW4veGVu L3hzYTIzNy0zLnBhdGNoDQogZGVsZXRlIG1vZGUgMTAwNjQ0IG1haW4veGVuL3hzYTIzNy00LnBh dGNoDQogZGVsZXRlIG1vZGUgMTAwNjQ0IG1haW4veGVuL3hzYTIzNy01LnBhdGNoDQogZGVsZXRl IG1vZGUgMTAwNjQ0IG1haW4veGVuL3hzYTIzOC5wYXRjaA0KIGRlbGV0ZSBtb2RlIDEwMDY0NCBt YWluL3hlbi94c2EyMzkucGF0Y2gNCiBkZWxldGUgbW9kZSAxMDA2NDQgbWFpbi94ZW4veHNhMjQw LTEucGF0Y2gNCiBkZWxldGUgbW9kZSAxMDA2NDQgbWFpbi94ZW4veHNhMjQwLTIucGF0Y2gNCiBk ZWxldGUgbW9kZSAxMDA2NDQgbWFpbi94ZW4veHNhMjQxLTQuOS5wYXRjaA0KIGRlbGV0ZSBtb2Rl IDEwMDY0NCBtYWluL3hlbi94c2EyNDItNC45LnBhdGNoDQogZGVsZXRlIG1vZGUgMTAwNjQ0IG1h aW4veGVuL3hzYTI0My0xLnBhdGNoDQogZGVsZXRlIG1vZGUgMTAwNjQ0IG1haW4veGVuL3hzYTI0 My0yLnBhdGNoDQogZGVsZXRlIG1vZGUgMTAwNjQ0IG1haW4veGVuL3hzYTI0NC5wYXRjaA0KIGRl bGV0ZSBtb2RlIDEwMDY0NCBtYWluL3hlbi94c2EyNDUtMS5wYXRjaA0KIGRlbGV0ZSBtb2RlIDEw MDY0NCBtYWluL3hlbi94c2EyNDUtMi5wYXRjaA0KDQpkaWZmIC0tZ2l0IGEvbWFpbi94ZW4vQVBL QlVJTEQgYi9tYWluL3hlbi9BUEtCVUlMRA0KaW5kZXggMTlkNGZiZDc4ZS4uZTEyOGE1N2JlNCAx MDA2NDQNCi0tLSBhL21haW4veGVuL0FQS0JVSUxEDQorKysgYi9tYWluL3hlbi9BUEtCVUlMRA0K QEAgLTIsOCArMiw4IEBADQogIyBDb250cmlidXRvcjogUm9nZXIgUGF1IE1vbm5lIDxyb2dlci5w YXVAZW50ZWwudXBjLmVkdT4NCiAjIE1haW50YWluZXI6IFdpbGxpYW0gUGl0Y29jayA8bmVub2xv ZEBkZXJlZmVyZW5jZWQub3JnPg0KIHBrZ25hbWU9eGVuDQotcGtndmVyPTQuOS4wDQotcGtncmVs PTgNCitwa2d2ZXI9NC45LjENCitwa2dyZWw9MA0KIHBrZ2Rlc2M9IlhlbiBoeXBlcnZpc29yIg0K IHVybD0iaHR0cDovL3d3dy54ZW4ub3JnLyINCiBhcmNoPSJ4ODZfNjQgYXJtaGYgYWFyY2g2NCIN CkBAIC0xNDUsMzkgKzE0NSwxMCBAQCBzb3VyY2U9Imh0dHBzOi8vZG93bmxvYWRzLnhlbnByb2pl Y3Qub3JnL3JlbGVhc2UvJHBrZ25hbWUvJHBrZ3Zlci8kcGtnbmFtZS0kcGtndg0KIAlodHRwOi8v eGVuYml0cy54ZW4ub3JnL3hlbi1leHRmaWxlcy96bGliLSRfWkxJQl9WRVJTSU9OLnRhci5neg0K IAlodHRwOi8veGVuYml0cy54ZW4ub3JnL3hlbi1leHRmaWxlcy9pcHhlLWdpdC0kX0lQWEVfR0lU X1RBRy50YXIuZ3oNCiANCi0JeHNhMjI2LTEucGF0Y2gNCi0JeHNhMjI2LTIucGF0Y2gNCi0JeHNh MjI3LnBhdGNoDQotCXhzYTIyOC5wYXRjaA0KLQl4c2EyMzAucGF0Y2gNCi0JeHNhMjMxLTQuOS5w YXRjaA0KLQl4c2EyMzIucGF0Y2gNCi0JeHNhMjMzLnBhdGNoDQotCXhzYTIzNC00LjkucGF0Y2gN Ci0JeHNhMjM1LTQuOS5wYXRjaA0KLQl4c2EyMzYtNC45LnBhdGNoDQotCXhzYTIzNy0xLnBhdGNo DQotCXhzYTIzNy0yLnBhdGNoDQotCXhzYTIzNy0zLnBhdGNoDQotCXhzYTIzNy00LnBhdGNoDQot CXhzYTIzNy01LnBhdGNoDQotCXhzYTIzOC5wYXRjaA0KLQl4c2EyMzkucGF0Y2gNCi0JeHNhMjQw LTEucGF0Y2gNCi0JeHNhMjQwLTIucGF0Y2gNCi0JeHNhMjQxLTQuOS5wYXRjaA0KLQl4c2EyNDIt NC45LnBhdGNoDQotCXhzYTI0My0xLnBhdGNoDQotCXhzYTI0My0yLnBhdGNoDQotCXhzYTI0NC5w YXRjaA0KLQl4c2EyNDUtMS5wYXRjaA0KLQl4c2EyNDUtMi5wYXRjaA0KLQ0KIAlxZW11LWNvcm91 dGluZS1ndGhyZWFkLnBhdGNoDQogCXFlbXUteGVuX3BhdGhzLnBhdGNoDQogDQogCWhvdHBsdWct dmlmLXZ0cmlsbC5wYXRjaA0KLQlyb21iaW9zLW5vLXBpZS5wYXRjaA0KIA0KIAltdXNsLXN1cHBv cnQucGF0Y2gNCiAJbXVzbC1odm1sb2FkZXItZml4LXN0ZGludC5wYXRjaA0KQEAgLTQyMiw3ICsz OTMsNyBAQCBFT0YNCiANCiB9DQogDQotc2hhNTEyc3Vtcz0iOTdmODA3NWM0OWVmOWVjMGFkYmU5 NTEwNmMwY2ZmNGY5Mzc5NTc4ZmQ1Njg3Nzc2OTc1NjU0NzZjM2ZkOTQ4MzM1ZDcyZGRjYWNmOGJl NjVmZDlkYjIxOWMwYTM1ZGNkYzAwN2YzNTVmN2U1ODc0ZGQ5NTBmZDRjMGEwZjk2NmYgIHhlbi00 LjkuMC50YXIuZ3oNCitzaGE1MTJzdW1zPSI5ZDIyZjBhYTVkY2QwMWExYzEwNWQxN2MxNGJjZTU3 MGNjNTk3ZTg4NGRkYjliNGE0NmI4MGE3MmY2NDc2MjViNzZhZTUyMTNjZWRlNDIzZDA0NThjMTRl MTkwNjk4MzU5NWE5MjY5YmI2ZTZmZjJlOWU3ZTRkZWE4NDBmNDI3NCAgeGVuLTQuOS4xLnRhci5n eg0KIDJlMGIwZmQyM2U2ZjEwNzQyYTU1MTc5ODFlNTE3MWM2ZTg4YjBhOTNjODNkYTcwMWIyOTZm NWMwODYxZDcyYzE5NzgyZGFhYjU4OWE3ZWFjM2Y5MDMyMTUyYTBmYzdlZmY3ZjUzNjJkYjhmY2Nj NDg1OTU2NGE5YWE4MjMyOWNmICBnbXAtNC4zLjIudGFyLmJ6Mg0KIGMyYmM5ZmZjODU4M2FlYWU3 MWNlZTlkZGNjNDQxODk2OTc2OGQ0ZTM3NjRkNDczMDdkYTU0ZjkzOTgxYzAxMDlmYjA3ZDg0YjA2 MWIzYTM2MjhiZDAwYmE0ZDE0YTU0NzQyYmMwNDg0ODExMGViM2FlOGNhMjVkYmZiYWFiYWRiICBn cnViLTAuOTcudGFyLmd6DQogMTQ2NWI1ODI3OWFmMTY0N2Y5MDk0NTBlMzk0ZmUwMDJjYTE2NWYw ZmY0YTAyNTRiZmE5ZmUwZTY0MzE2ZjUwZmFjZGRlMjcyOWQ3OWE0ZTYzMjU2NWI0NTAwY2Y0ZDZj NzQxOTJhYzBkZDNiYzlmZTA5MTI5YmJkNjdiYTA4OWQgIGx3aXAtMS4zLjAudGFyLmd6DQpAQCAt NDMyLDM3ICs0MDMsOSBAQCBjMmJjOWZmYzg1ODNhZWFlNzFjZWU5ZGRjYzQ0MTg5Njk3NjhkNGUz NzY0ZDQ3MzA3ZGE1NGY5Mzk4MWMwMTA5ZmIwN2Q4NGIwNjFiM2EzNg0KIDQ5MjhiNWI4MmY1NzY0 NWJlOTQwODM2MjcwNmZmMmM0ZDliYWE2MzViMjFiMGQ0MWIxYzgyOTMwZThjNjBhNzU5YjFlYTRm YTc0ZDdlNmM3Y2FlMWI3NjkyZDAwNmFhNWNiNzJkZjBjM2I4OGJmMDQ5Nzc5YWEyYjU2NmY5ZDM1 ICB0cG1fZW11bGF0b3ItMC43LjQudGFyLmd6DQogMDIxYjk1OGZjZDBkMzQ2YzRiYTc2MWJjZjBj YzQwZjM1MjJkZTYxODZjZjVhMGE2ZWEzNGE3MDUwNGNlOTYyMmIxYzI2MjZmY2U0MDY3NWJjODI4 MmNmNWY1YWRlMTg0NzM2NTZhYmMzODA1MGY3MmY1ZDY0ODA1MDdhMjEwNmUgIHpsaWItMS4yLjMu dGFyLmd6DQogODJiYTY1ZTFjNjc2ZDMyYjI5YzcxZTYzOTVjOTUwNmNhYjk1MmM4ZjhiMDNmNjky ZTJiNTAxMzNiZThmMGMwMTQ2ZDBmMjJjMjIzMjYyZDgxYTRkZjU3OTk4NmZkZTVhYmM2NTA3ODY5 ZjQ5NjViZTQ4NDYyOTdlZjdiNGI4OTAgIGlweGUtZ2l0LTgyN2RkMWJmZWU2N2RhYTY4MzkzNWNl NjUzMTZmN2UwZjA1N2ZlMWMudGFyLmd6DQotNDVmZWQ0M2JiZGNmNjNmYzNkZWQwYTI2MjllMjdh NWQ1ODMwNmEyNDRkYmEyZTAwNWNmODgxNGFhNTBjZGU5NjJjNDFlNWU3MjA3NWExZDY3OGViOWMx OGFmMTdlMWNiZjA3ODg4NDIxNGZkMjlkZjBhZDU1MTk3N2M5ODgwYzIgIHhzYTIyNi0xLnBhdGNo DQotNGQxZTcyOWM1OTJlZmVmZDcwNTIzM2I0OTQ4NDk5MTgwMTYwNmIyMTIyYTY0ZmYxNGFiYmY5 OTRiYjNlNzdlYzc1YzQ5ODlkNDM3NTNjZTIwNDNjYzRmZTEzZDM0ZmIxY2VmN2VlMWFkYjI5MWZm MTY2MjViYjNiMTI1ZTU1MDggIHhzYTIyNi0yLnBhdGNoDQotN2Q2NjQ5NGU4MzNkNDZmOGEyMTNh ZjBmMmIxMDdhMTI2MTdkNWU4YjQ1YzNiMDdkYWVlMjI5Yzc1YmQ2YWFkOTgyODRiYzBlMTlmMTU3 MDZkMDQ0YjU4MjczY2M3ZjBjMTkzZWY4NTUzZmFhMjJmYWRlYWUzNDk2ODllNzYzYzggIHhzYTIy Ny5wYXRjaA0KLWQ0MDZmMTQ1MzFhZjcwNzMyNTc5MDkwOWQwOGNlMjk5YWMyZjJjYjRiODdmOWE4 ZGRiMGZiYTEwYmQ4M2JlZDg0Y2MxNjMzZTA3NjMyY2MyZjg0MWM1MGJjMWE5YWY2MjQwYzg5NTM5 YTJlNmJhNjAyOGNiMTI3ZTIxOGY4NmZjICB4c2EyMjgucGF0Y2gNCi1kZjE3NGExNjc1Zjc0Yjcz ZTc4YmMzY2IxYzlmMTY1MzYxOTlkZmQxOTIyYzBjYzU0NWE4MDdlOTJiYzI0OTQxYTgxNjg5MTgz ODI1OGUxMThmNDc3MTA5NTQ4NDg3MjUxYTdlYWNjYjJkMWRkOWI2OTk0YzhjNzZmYzViMDU4ZiAg eHNhMjMwLnBhdGNoDQotN2VmNjYzNzExMmMzZDI0YTM1NDFkNDBjYTc5YjhkNWVkOGExNTI0MDFj OGI3YmZhNGNkZTNlMmUyNjQ1NDRiYTIyZDI3YzE5OWQ1OGYyNDYxNmFmMjIyOGY1ZTQwNzVjMmFm Mjc0NGQyMWE3MGI4Y2I0ZDRiMWYxYTdmZWVkZGUgIHhzYTIzMS00LjkucGF0Y2gNCi1mYjc0MjIy NWE0ZjNkYmYyYTU3NGM0YTZlM2VmNjFhNWRhMGM5MWFhZWVkNzdhMjI0NzAyM2JkZWZjZDRlMGI2 YzA4ZjFjOWZmYjQyZWFhYzNkMzg3MzljNDAxNDQzYzNjZjdhZWJiNTA3YjFkNzc5YzQxNWI2Y2Jm ZmFiYmMxMCAgeHNhMjMyLnBhdGNoDQotYTMyMmFjNmM1YWMyZjg1OGE1OTA5NjEwODAzMmZkNDI5 NzRlYWFlZWViZDhmNDk2NjExOTE0OTY2NWYzMmJlZDI4MWUzMzNlNzQzMTM2ZTc5YWRkMmU2ZjM4 NDRkODhiNmEzZTRkNWE2ODVjMjgwODcwMmZkM2E5ZTYzOTZjZDQgIHhzYTIzMy5wYXRjaA0KLWNh ZmVlZjEzN2NkODJjZWZjM2U5NzRiNDJiOTc0YzY1NjJlODIyYzliMzU5ZWZiNjU0YWMzNzRlNjYz ZDlmYzEyM2JlMjEwZWVjMTdiMjc4ZjQwZWFiYjc3YzkzZDNiZjBmZjAzZTQ0NTYwNzE1OWFkMDcx MjgwOGE2MDlhOTA2ICB4c2EyMzQtNC45LnBhdGNoDQotOGJhYjZlNTk1NzdiNTFmMGM2YjhhNTQ3 YzlhMzdhMjU3YmQwNDYwZTcyMTk1MTJlODk5ZDI1ZjgwYTc0MDg0NzQ1ZDJhNGM1NGU1NWFkMTI1 MjY2NjNkNDBmMjE4Y2I4ZjgzM2I3MTM1MDIyMGQzNmUzNzUwZDAwMmZmNDNkMjkgIHhzYTIzNS00 LjkucGF0Y2gNCi1hOTUxYzNkMjlhNmIwNWI0MjAyMWJkNDk0MTliZWNmZjUxMTIzYTI0NTI1NjY1 OTI0MGEzYWY1NzAxYmJmNTFlN2QzYzFhNzk4MzVhN2NjOWE1ZmRmN2MxYzZhYTMzMGEzNWE1ODZj YjU2ZDY5ZDg0N2MyNTY2NDJmMGZjOGU1NSAgeHNhMjM2LTQuOS5wYXRjaA0KLWE0NDdiNGYwYTUz NzlkYTQ2YjVmMGViNWI3N2VhYjA3YzNjZmU4ZDMwM2FmNmUxMTZlMDNjN2Q4OGE5ZmM5ZWExNTQw NDMxNjU2MzFkMjkyNDhjMDc1MTZhYjhmZGZkNWRlNGRhMWNjZjBhYjczNThkOTBmYjdmOWM4N2Jm MjIxICB4c2EyMzctMS5wYXRjaA0KLTEwZjJkODRmNzgzZmI4YmFlNWEzOWM0NjNhMzJmNGFjNWQ0 ZDI2MTRhN2VlY2YxMDlkY2NjZDU0MThiOGVjNWU1MjM2OTFlNzliMzU3OGQ5YzdiMTEzZjM2OGE5 NGQzNjBhY2I5NTM0ODA4YzQ0MDg1MmE5MWMzNjM2OWY4OGZkICB4c2EyMzctMi5wYXRjaA0KLTUw NjA3ZmNhMmUwMmVlZDMyMjkyN2UwMjg4Yzc3ZTdhNmM1NDE3OTRmYTJjNzBjNzhhZGEwYzJmYTc2 MmI1YWQwZjNiNTEwOGVjYjlmMDFkODgyNmY4OWRhYjQ5MmQ1NmM1MDIyMzZjNzAyMzRlNmJhNzQx ZTk0YTM5MzU2ZWEzICB4c2EyMzctMy5wYXRjaA0KLWM4YWFiNTQ1Y2Q0MTE4ZTc0Y2JiMjAxMGYw YTg0NGU4ODYwOGQ0NGJkMzExN2U3NjUyMjE0NDVhODAwN2EwZGZhOWVlMGY0ZDVjMTBjM2NkN2Yz MDdhOGI3NzE4ZDg5NmI5MjhjNGUwNjQ0OWRjNjNmN2NmZWM3YTEwZDM1NmJiICB4c2EyMzctNC5w YXRjaA0KLWQzZGZiOTIwOGRlYjZmYzJiZTk0OWUzNGZjMWJlODRmYmVkMTI2OWJkOTliOGIzMWMx NzZkYTM0Y2M5MTZjNTA5NTVjNzc2OGI0YWFjNzVkYmU0Mzc3NjM0YWU1ZDgzOTBhMDNlMGZmNWZm YTJhZDAwYjlmYWI3ODg0NDlkZWFhICB4c2EyMzctNS5wYXRjaA0KLWIxNTRjMDkyNWJiY2VhYjQw ZThmM2I2ODllMmQxZmIzMjFiNDJjNjg1ZmRjYjZiZDI5YjA0MTFjY2Q4NTY3MzE0ODBhMmZiYjgw MjVjNjMzZjllZGYzNGNlYzkzOGU1ZDg4ODhjYzcxZTgxNTgyMTJjMDc4YmI1OTVkMDdhMjlkICB4 c2EyMzgucGF0Y2gNCi04YjA5Y2QxMmM3YWRmZWY2OWEwMmEyOTY1Y2RhMjJlZjY0OTlmZDQyYzhh ODRhMjBhNmFmMjMxZjQyMmE2ZThhMGU1OTc1MDFjMzI3NTMyZTE1ODBjMTA2N2VlNGJmMzU1Nzll M2NmOThkZWU5MzAyZWQzNGJhODdmNzRiZjZkMiAgeHNhMjM5LnBhdGNoDQotZTIwOWU2Mjk3NTdi MzQ3MWVhZTQxNTkxM2MzNGM2NjI4ODIxNzJkYWFkNjM0MDgzZWUyOTgyM2MyY2IzZjAwZTk4ODg2 MzUyMDg1YzFhZmM1ZDBmNjIyNzgxZTY1ZmFlN2I0MWViZmNiZTZmZDVlMzdjNDI4MzM3ZjVkMjUw NmMgIHhzYTI0MC0xLnBhdGNoDQotMzQ0NTE5Y2Q4M2FkMTMyNDVkZTBlMTgzYjdhZmU1NjQ1OTdi MzBkMjA3NTZlNDRmOThjMGEwMGRmNTUwMjBkN2VmODViOTJlNzE3MDFjOTc5MTg0MmE0OGNlYzkz ZTBmY2I5YmZiYTI0NDMzMTNiM2FhZmQ4ZDIxZWEzNmFiZjQgIHhzYTI0MC0yLnBhdGNoDQotNTYw ZDgwNjJiNTY4M2I2NTMzYTY3ZWViYWZkZDgxZTZhOWQyYzkxOTRjYzlmOWIxNDA0NTQ0NTAzMjM4 ZDRmMWQ5OGJjY2IxYWZhYzQ3N2Y2YTU1ZmZiYzY3Y2Y5NjI5YTQzZmQ2N2E3NDVjYTkwOTNlMmFk YzA0NzhkZDBkZGIgIHhzYTI0MS00LjkucGF0Y2gNCi04NmFhNzYzOTQ5Y2EzNmEzNjEyMGE0MGVh ZmJkZjNhOGU4YmMwNGFjZDMyZWU2YmMxZTNhZTkwYjE4OWI4NmI5YjE2NmI4MWE5ZTBhNGY4NmE3 ZWIxZmNjODcyM2FlOGJhNmJkMGY4NGZhOTczMmU3ZTRlMWNjZWE0NWQwYjdjMSAgeHNhMjQyLTQu OS5wYXRjaA0KLTlmMjY5ZTI2MmFhNjdmZjlhMzA0ZWQ2ZmM2NGVlOWM1YzlmNmZkNjA2ZDUyMGZj MjYxNGNkMTczY2RkYzk3MzVhZDQyZjkxYTk3YjkxZjFiOWM1MzY4ZDU0ZDUxNDgyMDkzN2VkZDBj ZTMwMmRjMzgzOWI0MjYzOThkYzZiNzAwICB4c2EyNDMtMS5wYXRjaA0KLThhYWYwNTk5MjU5YjFm ZjM0MTcxNjg0NDY3MDg5ZGE0YTI2YWY4ZmU2N2VlZGYyMjA2Njk1NWIzNGIyNDYwYzQ1YWJkZjBm MTlhNWE1ZTNkZDMyMzFiOTQ0Njc0YzYyYjlkMzExMmFkN2Q3NjVhZmM0YmRiY2RjZmJhZDIyNmUx ICB4c2EyNDMtMi5wYXRjaA0KLTBmZDM1ZTc0YmU2ZjA0OWYxZjM3NmFhODI5NWIxNGY1N2I5MmY1 ZTQ1ZTc0ODdlNWI0ODVjMmI4ZjZmYWEyOTUwZDBmZTdkOGE4NjM2OTJiM2RhYjhhM2E3ZWYxZDlk ZDk0YmUyYzZiNTVkMDE4MDJiMGQ4NmM4NGQyZmE5ZTI5ICB4c2EyNDQucGF0Y2gNCi1iMTkxOTc5 MzRlODY4NWZjMmFmNzNmNDA0YjVjOGNiZWQ2NmQ5MjQxZTVmZjkwMmQxYTc3ZmRjMjI3ZTAwMWEx M2I3NzVhNTNkNmUzMDNkNWYyNzQxOWY1NTkwNTYxYzg0ZWM2OTQwOTE1MmQ5NzczYTVlNjA1MGMx NmU5MmYxYiAgeHNhMjQ1LTEucGF0Y2gNCi03NTM2OTY3MzIzMmIyMTA3YjU5ZGMwMjQyZDZmYzIy NGMwMTZiOWRjYmYzMjk5ZWFiOTBhMWQ3YzM2NWQ2MTdmYmM5MWY3YjI1MDc1YjM5NGZlZTkyNzgy ZGIzN2NlODNjNDE2Mzg3ZmE1YWQ0YzRmY2Q1MWQwNzc1YThhNzU0ZiAgeHNhMjQ1LTIucGF0Y2gN CiBjM2M0NmYyMzJmMGJkOWY3NjdiMjMyYWY3ZThjZTkxMGE2MTY2YjEyNmJkNTQyN2JiOGRjMzI1 YWViMmM2MzRiOTU2ZGUzZmMyMjVjYWI1YWY3MjY0OTA3MGM4MjA1Y2M4ZTFjYWI3Njg5ZmMyNjZj MjA0ZjUyNTA4NmYxYTU2MiAgcWVtdS1jb3JvdXRpbmUtZ3RocmVhZC5wYXRjaA0KIDE5MzZhYjM5 YTE4Njc5NTdmYTY0MGViODFjNDA3MDIxNGNhNDg1NmEyNzQzYmE3ZTQ5YzBjZDAxNzkxNzA3MWE5 NjgwZDAxNWYwMDJjNTdmYTdiOTYwMGRiYWRkMjlkY2VhNTg4N2Y1MGU2YzEzMzMwNWRmMjY2OWE3 YTkzM2YzICBxZW11LXhlbl9wYXRocy5wYXRjaA0KIGYwOTVlYTM3M2YzNjM4MTQ5MWFkMzZmMDY2 MmZiNGY1MzY2NTAzMTk3MzcyMTI1NmIyMzE2NmU1OTYzMTg1ODFkYTdjYmIwMTQ2ZDBiZWIyNDQ2 NzI5YWRmZGIzMjFlMDE0NjhlMzc3NzkzZjY1NjNhNjdkNjhiOGIwZjdmZmUzICBob3RwbHVnLXZp Zi12dHJpbGwucGF0Y2gNCi01NTE0ZDc2OTdjODdmN2Q1NGQ2NDcyM2Q0NDQ0NmI5YmQ4NGY2Yzk4 NGU3NjNiZDIxZDRlZWFmNTAyYmYwYzViNzY1ZjdiMjE4MGY4Y2E0OTZiM2JhZjk3ZTdlZmQ2MDBi MWNjMWZkZDEyODRiNmVjYmZmZTk4NDYxOTBjYTA2OSAgcm9tYmlvcy1uby1waWUucGF0Y2gNCiBl NjM1Y2YyN2NhMDIyY2E1YmM4MjllMDg5YjVlOWEzY2U5ZTU2NmQ0NzAxZDA2YmMzOGEyMmUzNTZk ZTQ1YTcxYmMzM2UxNzBkNmRiMzMzZDRlZmU4Mzg5MTQ0NDE5Y2MyNzgzNGEyZWVlMGJjYWU5MTE4 ZDRjYTlhZmY2NDMwNiAgbXVzbC1zdXBwb3J0LnBhdGNoDQogNzdiMDhlOTY1NWUwOTFiMDM1MmU0 NjMwZDUyMGI1NGM2Y2E2ZDY1OWQxZDM4ZmJiNGIzYmZjOWZmM2U2NmRiNDMzYTJlMTk0ZWFkMzJi YjEwZmY5NjJjMzgyZDgwMGE2NzBlODJiN2E2MjgzNWIyMzhlMjk0YjIyODA4MjkwZWEgIG11c2wt aHZtbG9hZGVyLWZpeC1zdGRpbnQucGF0Y2gNCiA4YzNiNTdlYWI4NjQxYmNlZTNkYmRjMTkzN2Vh Nzg3NGY3N2I5NzIyYTVhMGFhM2RkYjhkZmY4Y2MwY2VkN2UxOTcwM2VmNWQ5OTg2MjFiMzgwOWJl YTdjMTZmMzM0NmNmYTQ3NjEwZWM5YWIwMTRhZDBkZTEyNjUxYzk0ZTVmZiAgc3RkaW50X2xvY2Fs LmgNCmRpZmYgLS1naXQgYS9tYWluL3hlbi9yb21iaW9zLW5vLXBpZS5wYXRjaCBiL21haW4veGVu L3JvbWJpb3Mtbm8tcGllLnBhdGNoDQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDYz ODdmNGVmNDcuLjAwMDAwMDAwMDANCi0tLSBhL21haW4veGVuL3JvbWJpb3Mtbm8tcGllLnBhdGNo DQorKysgL2Rldi9udWxsDQpAQCAtMSwyMiArMCwwIEBADQotLS0tIC4vdG9vbHMvZmlybXdhcmUv cm9tYmlvcy8zMmJpdC90Y2diaW9zL01ha2VmaWxlLm9yaWcNCi0rKysgLi90b29scy9maXJtd2Fy ZS9yb21iaW9zLzMyYml0L3RjZ2Jpb3MvTWFrZWZpbGUNCi1AQCAtMyw3ICszLDcgQEANCi0gDQot IFRBUkdFVCAgPSB0Y2diaW9zZXh0Lm8NCi0gDQotLUNGTEFHUyArPSAkKENGTEFHU194ZW5pbmNs dWRlKSAtSS4uIC1JLi4vLi4gLUkuLi8uLi8uLi8uLi9saWJhY3BpDQotK0NGTEFHUyArPSAkKENG TEFHU194ZW5pbmNsdWRlKSAtSS4uIC1JLi4vLi4gLUkuLi8uLi8uLi8uLi9saWJhY3BpIC1mbm8t cGllDQotIA0KLSAuUEhPTlk6IGFsbA0KLSBhbGw6ICQoVEFSR0VUKQ0KLS0tLSAuL3Rvb2xzL2Zp cm13YXJlL3JvbWJpb3MvMzJiaXQvTWFrZWZpbGUub3JpZw0KLSsrKyAuL3Rvb2xzL2Zpcm13YXJl L3JvbWJpb3MvMzJiaXQvTWFrZWZpbGUNCi1AQCAtMyw3ICszLDcgQEANCi0gDQotIFRBUkdFVCA9 IDMyYml0Ymlvc19mbGF0LmgNCi0gDQotLUNGTEFHUyArPSAkKENGTEFHU194ZW5pbmNsdWRlKSAt SS4uIC1JLi4vLi4vLi4vbGliYWNwaQ0KLStDRkxBR1MgKz0gJChDRkxBR1NfeGVuaW5jbHVkZSkg LUkuLiAtSS4uLy4uLy4uL2xpYmFjcGkgLWZuby1waWUNCi0gDQotIFNVQkRJUlMgPSB0Y2diaW9z DQotIA0KZGlmZiAtLWdpdCBhL21haW4veGVuL3hzYTIyNi0xLnBhdGNoIGIvbWFpbi94ZW4veHNh MjI2LTEucGF0Y2gNCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggZDYwYmJlMmRiMS4u MDAwMDAwMDAwMA0KLS0tIGEvbWFpbi94ZW4veHNhMjI2LTEucGF0Y2gNCisrKyAvZGV2L251bGwN CkBAIC0xLDE0OSArMCwwIEBADQotRnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29t Pg0KLVN1YmplY3Q6IGdudHRhYjogZG9uJ3QgdXNlIHBvc3NpYmx5IHVuYm91bmRlZCB0YWlsIGNh bGxzDQotDQotVGhlcmUgaXMgbm8gZ3VhcmFudGVlIHRoYXQgdGhlIGNvbXBpbGVyIHdvdWxkIGFj dHVhbGx5IHRyYW5zbGF0ZSB0aGVtDQotdG8gYnJhbmNoZXMgaW5zdGVhZCBvZiBjYWxscywgc28g b25seSBvbmVzIHdpdGggYSBrbm93biByZWN1cnNpb24gbGltaXQNCi1hcmUgb2theToNCi0tIF9f cmVsZWFzZV9ncmFudF9mb3JfY29weSgpIGNhbiBjYWxsIGl0c2VsZiBvbmx5IG9uY2UsIGFzDQot ICBfX2FjcXVpcmVfZ3JhbnRfZm9yX2NvcHkoKSB3b24ndCBwZXJtaXQgdXNlIG9mIG11bHRpLWxl dmVsIHRyYW5zaXRpdmUNCi0gIGdyYW50cywNCi0tIF9fYWNxdWlyZV9ncmFudF9mb3JfY29weSgp IGlzIGZpbmUgdG8gY2FsbCBpdHNlbGYgd2l0aCB0aGUgbGFzdA0KLSAgYXJndW1lbnQgZmFsc2Us IGFzIHRoYXQgcHJldmVudHMgZnVydGhlciByZWN1cnNpb24sDQotLSBfX2FjcXVpcmVfZ3JhbnRf Zm9yX2NvcHkoKSBtdXN0IG5vdCBjYWxsIGl0c2VsZiB0byByZWNvdmVyIGZyb20gYW4NCi0gIG9i c2VydmVkIGNoYW5nZSB0byB0aGUgYWN0aXZlIGVudHJ5J3MgcGluIGNvdW50DQotDQotVGhpcyBp cyBwYXJ0IG9mIENWRS0yMDE3LTEyMTM1IC8gWFNBLTIyNi4NCi0NCi1TaWduZWQtb2ZmLWJ5OiBK YW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQotDQotLS0tIGEveGVuL2NvbW1vbi9jb21w YXQvZ3JhbnRfdGFibGUuYw0KLSsrKyBiL3hlbi9jb21tb24vY29tcGF0L2dyYW50X3RhYmxlLmMN Ci1AQCAtMjU4LDkgKzI1OCw5IEBAIGludCBjb21wYXRfZ3JhbnRfdGFibGVfb3AodW5zaWduZWQg aW50IGNtZCwNCi0gICAgICAgICAgICAgICAgIHJjID0gZ250dGFiX2NvcHkoZ3Vlc3RfaGFuZGxl X2Nhc3QobmF0LnVvcCwgZ250dGFiX2NvcHlfdCksIG4pOw0KLSAgICAgICAgICAgICBpZiAoIHJj ID4gMCApDQotICAgICAgICAgICAgIHsNCi0tICAgICAgICAgICAgICAgIEFTU0VSVChyYyA8IG4p Ow0KLS0gICAgICAgICAgICAgICAgaSAtPSBuIC0gcmM7DQotLSAgICAgICAgICAgICAgICBuID0g cmM7DQotKyAgICAgICAgICAgICAgICBBU1NFUlQocmMgPD0gbik7DQotKyAgICAgICAgICAgICAg ICBpIC09IHJjOw0KLSsgICAgICAgICAgICAgICAgbiAtPSByYzsNCi0gICAgICAgICAgICAgfQ0K LSAgICAgICAgICAgICBpZiAoIHJjID49IDAgKQ0KLSAgICAgICAgICAgICB7DQotLS0tIGEveGVu L2NvbW1vbi9ncmFudF90YWJsZS5jDQotKysrIGIveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jDQot QEAgLTIxMDMsOCArMjEwMywxMCBAQCBfX3JlbGVhc2VfZ3JhbnRfZm9yX2NvcHkoDQotIA0KLSAg ICAgaWYgKCB0ZCAhPSByZCApDQotICAgICB7DQotLSAgICAgICAgLyogUmVjdXJzaXZlIGNhbGxz LCBidXQgdGhleSdyZSB0YWlsIGNhbGxzLCBzbyBpdCdzDQotLSAgICAgICAgICAgb2theS4gKi8N Ci0rICAgICAgICAvKg0KLSsgICAgICAgICAqIFJlY3Vyc2l2ZSBjYWxscywgYnV0IHRoZXkncmUg Ym91bmRlZCAoYWNxdWlyZSBwZXJtaXRzIG9ubHkgYSBzaW5nbGUNCi0rICAgICAgICAgKiBsZXZl bCBvZiB0cmFuc2l0aXZpdHkpLCBzbyBpdCdzIG9rYXkuDQotKyAgICAgICAgICovDQotICAgICAg ICAgaWYgKCByZWxlYXNlZF93cml0ZSApDQotICAgICAgICAgICAgIF9fcmVsZWFzZV9ncmFudF9m b3JfY29weSh0ZCwgdHJhbnNfZ3JlZiwgMCk7DQotICAgICAgICAgZWxzZSBpZiAoIHJlbGVhc2Vk X3JlYWQgKQ0KLUBAIC0yMjU1LDEwICsyMjU3LDExIEBAIF9fYWNxdWlyZV9ncmFudF9mb3JfY29w eSgNCi0gICAgICAgICAgICAgICAgIHJldHVybiByYzsNCi0gICAgICAgICAgICAgfQ0KLSANCi0t ICAgICAgICAgICAgLyogV2UgZHJvcHBlZCB0aGUgbG9jaywgc28gd2UgaGF2ZSB0byBjaGVjayB0 aGF0IG5vYm9keQ0KLS0gICAgICAgICAgICAgICBlbHNlIHRyaWVkIHRvIHBpbiAob3IsIGZvciB0 aGF0IG1hdHRlciwgdW5waW4pIHRoZQ0KLS0gICAgICAgICAgICAgICByZWZlcmVuY2UgaW4gKnRo aXMqIGRvbWFpbi4gIElmIHRoZXkgZGlkLCBqdXN0IGdpdmUgdXANCi0tICAgICAgICAgICAgICAg YW5kIHRyeSBhZ2Fpbi4gKi8NCi0rICAgICAgICAgICAgLyoNCi0rICAgICAgICAgICAgICogV2Ug ZHJvcHBlZCB0aGUgbG9jaywgc28gd2UgaGF2ZSB0byBjaGVjayB0aGF0IG5vYm9keSBlbHNlIHRy aWVkDQotKyAgICAgICAgICAgICAqIHRvIHBpbiAob3IsIGZvciB0aGF0IG1hdHRlciwgdW5waW4p IHRoZSByZWZlcmVuY2UgaW4gKnRoaXMqDQotKyAgICAgICAgICAgICAqIGRvbWFpbi4gIElmIHRo ZXkgZGlkLCBqdXN0IGdpdmUgdXAgYW5kIHRlbGwgdGhlIGNhbGxlciB0byByZXRyeS4NCi0rICAg ICAgICAgICAgICovDQotICAgICAgICAgICAgIGlmICggYWN0LT5waW4gIT0gb2xkX3BpbiApDQot ICAgICAgICAgICAgIHsNCi0gICAgICAgICAgICAgICAgIF9fZml4dXBfc3RhdHVzX2Zvcl9jb3B5 X3BpbihhY3QsIHN0YXR1cyk7DQotQEAgLTIyNjYsOSArMjI2OSw4IEBAIF9fYWNxdWlyZV9ncmFu dF9mb3JfY29weSgNCi0gICAgICAgICAgICAgICAgIGFjdGl2ZV9lbnRyeV9yZWxlYXNlKGFjdCk7 DQotICAgICAgICAgICAgICAgICBncmFudF9yZWFkX3VubG9jayhyZ3QpOw0KLSAgICAgICAgICAg ICAgICAgcHV0X3BhZ2UoKnBhZ2UpOw0KLS0gICAgICAgICAgICAgICAgcmV0dXJuIF9fYWNxdWly ZV9ncmFudF9mb3JfY29weShyZCwgZ3JlZiwgbGRvbSwgcmVhZG9ubHksDQotLSAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZyYW1lLCBwYWdlLCBwYWdlX29m ZiwgbGVuZ3RoLA0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBhbGxvd190cmFuc2l0aXZlKTsNCi0rICAgICAgICAgICAgICAgICpwYWdlID0gTlVMTDsN Ci0rICAgICAgICAgICAgICAgIHJldHVybiBFUkVTVEFSVDsNCi0gICAgICAgICAgICAgfQ0KLSAN Ci0gICAgICAgICAgICAgLyogVGhlIGFjdHVhbCByZW1vdGUgcmVtb3RlIGdyYW50IG1heSBvciBt YXkgbm90IGJlIGENCi1AQCAtMjU3NCw3ICsyNTc2LDcgQEAgc3RhdGljIGludCBnbnR0YWJfY29w eV9vbmUoY29uc3Qgc3RydWN0DQotICAgICB7DQotICAgICAgICAgZ250dGFiX2NvcHlfcmVsZWFz ZV9idWYoc3JjKTsNCi0gICAgICAgICByYyA9IGdudHRhYl9jb3B5X2NsYWltX2J1ZihvcCwgJm9w LT5zb3VyY2UsIHNyYywgR05UQ09QWV9zb3VyY2VfZ3JlZik7DQotLSAgICAgICAgaWYgKCByYyA8 IDAgKQ0KLSsgICAgICAgIGlmICggcmMgKQ0KLSAgICAgICAgICAgICBnb3RvIG91dDsNCi0gICAg IH0NCi0gDQotQEAgLTI1ODQsNyArMjU4Niw3IEBAIHN0YXRpYyBpbnQgZ250dGFiX2NvcHlfb25l KGNvbnN0IHN0cnVjdA0KLSAgICAgew0KLSAgICAgICAgIGdudHRhYl9jb3B5X3JlbGVhc2VfYnVm KGRlc3QpOw0KLSAgICAgICAgIHJjID0gZ250dGFiX2NvcHlfY2xhaW1fYnVmKG9wLCAmb3AtPmRl c3QsIGRlc3QsIEdOVENPUFlfZGVzdF9ncmVmKTsNCi0tICAgICAgICBpZiAoIHJjIDwgMCApDQot KyAgICAgICAgaWYgKCByYyApDQotICAgICAgICAgICAgIGdvdG8gb3V0Ow0KLSAgICAgfQ0KLSAN Ci1AQCAtMjU5Myw2ICsyNTk1LDE0IEBAIHN0YXRpYyBpbnQgZ250dGFiX2NvcHlfb25lKGNvbnN0 IHN0cnVjdA0KLSAgICAgcmV0dXJuIHJjOw0KLSB9DQotIA0KLSsvKg0KLSsgKiBnbnR0YWJfY29w eSgpLCBvdGhlciB0aGFuIHRoZSB2YXJpb3VzIG90aGVyIGhlbHBlcnMgb2YNCi0rICogZG9fZ3Jh bnRfdGFibGVfb3AoKSwgcmV0dXJucyAoYmVzaWRlcyBwb3NzaWJsZSBlcnJvciBpbmRpY2F0b3Jz KQ0KLSsgKiAiY291bnQgLSBpIiByYXRoZXIgdGhhbiAiaSIgdG8gZW5zdXJlIHRoYXQgZXZlbiBp ZiBubyBwcm9ncmVzcw0KLSsgKiB3YXMgbWFkZSBhdCBhbGwgKHBlcmhhcHMgZHVlIHRvIGdudHRh Yl9jb3B5X29uZSgpIHJldHVybmluZyBhDQotKyAqIHBvc2l0aXZlIHZhbHVlKSBhIG5vbi16ZXJv IHZhbHVlIGlzIGJlaW5nIGhhbmRlZCBiYWNrICh6ZXJvIG5lZWRzDQotKyAqIHRvIGJlIGF2b2lk ZWQsIGFzIHRoYXQgbWVhbnMgInN1Y2Nlc3MsIGFsbCBkb25lIikuDQotKyAqLw0KLSBzdGF0aWMg bG9uZyBnbnR0YWJfY29weSgNCi0gICAgIFhFTl9HVUVTVF9IQU5ETEVfUEFSQU0oZ250dGFiX2Nv cHlfdCkgdW9wLCB1bnNpZ25lZCBpbnQgY291bnQpDQotIHsNCi1AQCAtMjYwNiw3ICsyNjE2LDcg QEAgc3RhdGljIGxvbmcgZ250dGFiX2NvcHkoDQotICAgICB7DQotICAgICAgICAgaWYgKCBpICYm IGh5cGVyY2FsbF9wcmVlbXB0X2NoZWNrKCkgKQ0KLSAgICAgICAgIHsNCi0tICAgICAgICAgICAg cmMgPSBpOw0KLSsgICAgICAgICAgICByYyA9IGNvdW50IC0gaTsNCi0gICAgICAgICAgICAgYnJl YWs7DQotICAgICAgICAgfQ0KLSANCi1AQCAtMjYxNiwxMyArMjYyNiwyMCBAQCBzdGF0aWMgbG9u ZyBnbnR0YWJfY29weSgNCi0gICAgICAgICAgICAgYnJlYWs7DQotICAgICAgICAgfQ0KLSANCi0t ICAgICAgICBvcC5zdGF0dXMgPSBnbnR0YWJfY29weV9vbmUoJm9wLCAmZGVzdCwgJnNyYyk7DQot LSAgICAgICAgaWYgKCBvcC5zdGF0dXMgIT0gR05UU1Rfb2theSApDQotKyAgICAgICAgcmMgPSBn bnR0YWJfY29weV9vbmUoJm9wLCAmZGVzdCwgJnNyYyk7DQotKyAgICAgICAgaWYgKCByYyA+IDAg KQ0KLSsgICAgICAgIHsNCi0rICAgICAgICAgICAgcmMgPSBjb3VudCAtIGk7DQotKyAgICAgICAg ICAgIGJyZWFrOw0KLSsgICAgICAgIH0NCi0rICAgICAgICBpZiAoIHJjICE9IEdOVFNUX29rYXkg KQ0KLSAgICAgICAgIHsNCi0gICAgICAgICAgICAgZ250dGFiX2NvcHlfcmVsZWFzZV9idWYoJnNy Yyk7DQotICAgICAgICAgICAgIGdudHRhYl9jb3B5X3JlbGVhc2VfYnVmKCZkZXN0KTsNCi0gICAg ICAgICB9DQotIA0KLSsgICAgICAgIG9wLnN0YXR1cyA9IHJjOw0KLSsgICAgICAgIHJjID0gMDsN Ci0gICAgICAgICBpZiAoIHVubGlrZWx5KF9fY29weV9maWVsZF90b19ndWVzdCh1b3AsICZvcCwg c3RhdHVzKSkgKQ0KLSAgICAgICAgIHsNCi0gICAgICAgICAgICAgcmMgPSAtRUZBVUxUOw0KLUBA IC0zMTYwLDYgKzMxNzcsNyBAQCBkb19ncmFudF90YWJsZV9vcCgNCi0gICAgICAgICByYyA9IGdu dHRhYl9jb3B5KGNvcHksIGNvdW50KTsNCi0gICAgICAgICBpZiAoIHJjID4gMCApDQotICAgICAg ICAgew0KLSsgICAgICAgICAgICByYyA9IGNvdW50IC0gcmM7DQotICAgICAgICAgICAgIGd1ZXN0 X2hhbmRsZV9hZGRfb2Zmc2V0KGNvcHksIHJjKTsNCi0gICAgICAgICAgICAgdW9wID0gZ3Vlc3Rf aGFuZGxlX2Nhc3QoY29weSwgdm9pZCk7DQotICAgICAgICAgfQ0KZGlmZiAtLWdpdCBhL21haW4v eGVuL3hzYTIyNi0yLnBhdGNoIGIvbWFpbi94ZW4veHNhMjI2LTIucGF0Y2gNCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NA0KaW5kZXggMmNmOTNiZGQyOS4uMDAwMDAwMDAwMA0KLS0tIGEvbWFpbi94 ZW4veHNhMjI2LTIucGF0Y2gNCisrKyAvZGV2L251bGwNCkBAIC0xLDI4MCArMCwwIEBADQotRnJv bTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPg0KLVN1YmplY3Q6IGdudHRhYjogZml4 IHRyYW5zaXRpdmUgZ3JhbnQgaGFuZGxpbmcNCi0NCi1Qcm9jZXNzaW5nIG9mIHRyYW5zaXRpdmUg Z3JhbnRzIG11c3Qgbm90IHVzZSB0aGUgZmFzdCBwYXRoLCBvciBlbHNlDQotcmVmZXJlbmNlIGNv dW50aW5nIGJyZWFrcyBkdWUgdG8gdGhlIHNraXBwZWQgcmVjdXJzaXZlIGNhbGwgdG8NCi1fX2Fj cXVpcmVfZ3JhbnRfZm9yX2NvcHkoKSAoaXRzIF9fcmVsZWFzZV9ncmFudF9mb3JfY29weSgpDQot Y291bnRlcnBhcnQgb2NjdXJzIGluZGVwZW5kZW50IG9mIG9yaWdpbmFsIHBpbiBjb3VudCkuIEZ1 cnRoZXJtb3JlDQotYWZ0ZXIgcmUtYWNxdWlyaW5nIHRlbXBvcmFyaWx5IGRyb3BwZWQgbG9ja3Mg d2UgbmVlZCB0byB2ZXJpZnkgbm8gZ3JhbnQNCi1wcm9wZXJ0aWVzIGNoYW5nZWQgaWYgdGhlIG9y aWdpbmFsIHBpbiBjb3VudCB3YXMgbm9uLXplcm87IGNoZWNraW5nDQotanVzdCB0aGUgcGluIGNv dW50cyBpcyBzdWZmaWNpZW50IG9ubHkgZm9yIHdlbGwtYmVoYXZlZCBndWVzdHMuIEFzIGENCi1y ZXN1bHQsIF9fcmVsZWFzZV9ncmFudF9mb3JfY29weSgpIG5lZWRzIHRvIG1pcnJvciB0aGF0IG5l dyBiZWhhdmlvci4NCi0NCi1GdXJ0aGVybW9yZSBhIF9fcmVsZWFzZV9ncmFudF9mb3JfY29weSgp IGludm9jYXRpb24gd2FzIG1pc3Npbmcgb24gdGhlDQotcmV0cnkgcGF0aCBvZiBfX2FjcXVpcmVf Z3JhbnRfZm9yX2NvcHkoKSwgYW5kIGdudHRhYl9zZXRfdmVyc2lvbigpIGFsc28NCi1uZWVkcyB0 byBiYWlsIG91dCB1cG9uIGVuY291bnRlcmluZyBhIHRyYW5zaXRpdmUgZ3JhbnQuDQotDQotVGhp cyBpcyBwYXJ0IG9mIENWRS0yMDE3LTEyMTM1IC8gWFNBLTIyNi4NCi0NCi1SZXBvcnRlZC1ieTog QW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4NCi1TaWduZWQtb2ZmLWJ5 OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQotUmV2aWV3ZWQtYnk6IEFuZHJldyBD b29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+DQotDQotLS0tIGEveGVuL2NvbW1vbi9n cmFudF90YWJsZS5jDQotKysrIGIveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jDQotQEAgLTIwNTAs MTMgKzIwNTAsOCBAQCBfX3JlbGVhc2VfZ3JhbnRfZm9yX2NvcHkoDQotICAgICB1bnNpZ25lZCBs b25nIHJfZnJhbWU7DQotICAgICB1aW50MTZfdCAqc3RhdHVzOw0KLSAgICAgZ3JhbnRfcmVmX3Qg dHJhbnNfZ3JlZjsNCi0tICAgIGludCByZWxlYXNlZF9yZWFkOw0KLS0gICAgaW50IHJlbGVhc2Vk X3dyaXRlOw0KLSAgICAgc3RydWN0IGRvbWFpbiAqdGQ7DQotIA0KLS0gICAgcmVsZWFzZWRfcmVh ZCA9IDA7DQotLSAgICByZWxlYXNlZF93cml0ZSA9IDA7DQotLQ0KLSAgICAgZ3JhbnRfcmVhZF9s b2NrKHJndCk7DQotIA0KLSAgICAgYWN0ID0gYWN0aXZlX2VudHJ5X2FjcXVpcmUocmd0LCBncmVm KTsNCi1AQCAtMjA4NiwxNyArMjA4MSwxMSBAQCBfX3JlbGVhc2VfZ3JhbnRfZm9yX2NvcHkoDQot IA0KLSAgICAgICAgIGFjdC0+cGluIC09IEdOVFBJTl9oc3R3X2luYzsNCi0gICAgICAgICBpZiAo ICEoYWN0LT5waW4gJiAoR05UUElOX2RldndfbWFza3xHTlRQSU5faHN0d19tYXNrKSkgKQ0KLS0g ICAgICAgIHsNCi0tICAgICAgICAgICAgcmVsZWFzZWRfd3JpdGUgPSAxOw0KLSAgICAgICAgICAg ICBnbnR0YWJfY2xlYXJfZmxhZyhfR1RGX3dyaXRpbmcsIHN0YXR1cyk7DQotLSAgICAgICAgfQ0K LSAgICAgfQ0KLSANCi0gICAgIGlmICggIWFjdC0+cGluICkNCi0tICAgIHsNCi0gICAgICAgICBn bnR0YWJfY2xlYXJfZmxhZyhfR1RGX3JlYWRpbmcsIHN0YXR1cyk7DQotLSAgICAgICAgcmVsZWFz ZWRfcmVhZCA9IDE7DQotLSAgICB9DQotIA0KLSAgICAgYWN0aXZlX2VudHJ5X3JlbGVhc2UoYWN0 KTsNCi0gICAgIGdyYW50X3JlYWRfdW5sb2NrKHJndCk7DQotQEAgLTIxMDQsMTMgKzIwOTMsMTAg QEAgX19yZWxlYXNlX2dyYW50X2Zvcl9jb3B5KA0KLSAgICAgaWYgKCB0ZCAhPSByZCApDQotICAg ICB7DQotICAgICAgICAgLyoNCi0tICAgICAgICAgKiBSZWN1cnNpdmUgY2FsbHMsIGJ1dCB0aGV5 J3JlIGJvdW5kZWQgKGFjcXVpcmUgcGVybWl0cyBvbmx5IGEgc2luZ2xlDQotKyAgICAgICAgICog UmVjdXJzaXZlIGNhbGwsIGJ1dCBpdCBpcyBib3VuZGVkIChhY3F1aXJlIHBlcm1pdHMgb25seSBh IHNpbmdsZQ0KLSAgICAgICAgICAqIGxldmVsIG9mIHRyYW5zaXRpdml0eSksIHNvIGl0J3Mgb2th eS4NCi0gICAgICAgICAgKi8NCi0tICAgICAgICBpZiAoIHJlbGVhc2VkX3dyaXRlICkNCi0tICAg ICAgICAgICAgX19yZWxlYXNlX2dyYW50X2Zvcl9jb3B5KHRkLCB0cmFuc19ncmVmLCAwKTsNCi0t ICAgICAgICBlbHNlIGlmICggcmVsZWFzZWRfcmVhZCApDQotLSAgICAgICAgICAgIF9fcmVsZWFz ZV9ncmFudF9mb3JfY29weSh0ZCwgdHJhbnNfZ3JlZiwgMSk7DQotKyAgICAgICAgX19yZWxlYXNl X2dyYW50X2Zvcl9jb3B5KHRkLCB0cmFuc19ncmVmLCByZWFkb25seSk7DQotIA0KLSAgICAgICAg IHJjdV91bmxvY2tfZG9tYWluKHRkKTsNCi0gICAgIH0NCi1AQCAtMjE4NCw4ICsyMTcwLDEwOCBA QCBfX2FjcXVpcmVfZ3JhbnRfZm9yX2NvcHkoDQotICAgICAgICAgICAgICAgICAgYWN0LT5kb21p ZCwgbGRvbSwgYWN0LT5waW4pOw0KLSANCi0gICAgIG9sZF9waW4gPSBhY3QtPnBpbjsNCi0tICAg IGlmICggIWFjdC0+cGluIHx8DQotLSAgICAgICAgICghcmVhZG9ubHkgJiYgIShhY3QtPnBpbiAm IChHTlRQSU5fZGV2d19tYXNrfEdOVFBJTl9oc3R3X21hc2spKSkgKQ0KLSsgICAgaWYgKCBzaGEy ICYmIChzaGFoLT5mbGFncyAmIEdURl90eXBlX21hc2spID09IEdURl90cmFuc2l0aXZlICkNCi0r ICAgIHsNCi0rICAgICAgICBpZiAoICghb2xkX3BpbiB8fCAoIXJlYWRvbmx5ICYmDQotKyAgICAg ICAgICAgICAgICAgICAgICAgICAgICEob2xkX3BpbiAmIChHTlRQSU5fZGV2d19tYXNrfEdOVFBJ Tl9oc3R3X21hc2spKSkpICYmDQotKyAgICAgICAgICAgICAocmMgPSBfc2V0X3N0YXR1c192Mihs ZG9tLCByZWFkb25seSwgMCwgc2hhaCwgYWN0LA0KLSsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgc3RhdHVzKSkgIT0gR05UU1Rfb2theSApDQotKyAgICAgICAgICAgIGdvdG8gdW5s b2NrX291dDsNCi0rDQotKyAgICAgICAgaWYgKCAhYWxsb3dfdHJhbnNpdGl2ZSApDQotKyAgICAg ICAgICAgIFBJTl9GQUlMKHVubG9ja19vdXRfY2xlYXIsIEdOVFNUX2dlbmVyYWxfZXJyb3IsDQot KyAgICAgICAgICAgICAgICAgICAgICJ0cmFuc2l0aXZlIGdyYW50IHdoZW4gdHJhbnNpdGl2aXR5 IG5vdCBhbGxvd2VkXG4iKTsNCi0rDQotKyAgICAgICAgdHJhbnNfZG9taWQgPSBzaGEyLT50cmFu c2l0aXZlLnRyYW5zX2RvbWlkOw0KLSsgICAgICAgIHRyYW5zX2dyZWYgPSBzaGEyLT50cmFuc2l0 aXZlLmdyZWY7DQotKyAgICAgICAgYmFycmllcigpOyAvKiBTdG9wIHRoZSBjb21waWxlciBmcm9t IHJlLWxvYWRpbmcNCi0rICAgICAgICAgICAgICAgICAgICAgIHRyYW5zX2RvbWlkIGZyb20gc2hh cmVkIG1lbW9yeSAqLw0KLSsgICAgICAgIGlmICggdHJhbnNfZG9taWQgPT0gcmQtPmRvbWFpbl9p ZCApDQotKyAgICAgICAgICAgIFBJTl9GQUlMKHVubG9ja19vdXRfY2xlYXIsIEdOVFNUX2dlbmVy YWxfZXJyb3IsDQotKyAgICAgICAgICAgICAgICAgICAgICJ0cmFuc2l0aXZlIGdyYW50cyBjYW5u b3QgYmUgc2VsZi1yZWZlcmVudGlhbFxuIik7DQotKw0KLSsgICAgICAgIC8qDQotKyAgICAgICAg ICogV2UgYWxsb3cgdGhlIHRyYW5zX2RvbWlkID09IGxkb20gY2FzZSwgd2hpY2ggY29ycmVzcG9u ZHMgdG8gYQ0KLSsgICAgICAgICAqIGdyYW50IGJlaW5nIGlzc3VlZCBieSBvbmUgZG9tYWluLCBz ZW50IHRvIGFub3RoZXIgb25lLCBhbmQgdGhlbg0KLSsgICAgICAgICAqIHRyYW5zaXRpdmVseSBn cmFudGVkIGJhY2sgdG8gdGhlIG9yaWdpbmFsIGRvbWFpbi4gIEFsbG93aW5nIGl0DQotKyAgICAg ICAgICogaXMgZWFzeSwgYW5kIG1lYW5zIHRoYXQgeW91IGRvbid0IG5lZWQgdG8gZ28gb3V0IG9m IHlvdXIgd2F5IHRvDQotKyAgICAgICAgICogYXZvaWQgaXQgaW4gdGhlIGd1ZXN0Lg0KLSsgICAg ICAgICAqLw0KLSsNCi0rICAgICAgICAvKiBXZSBuZWVkIHRvIGxlYXZlIHRoZSBycmQgbG9ja2Vk IGR1cmluZyB0aGUgZ3JhbnQgY29weS4gKi8NCi0rICAgICAgICB0ZCA9IHJjdV9sb2NrX2RvbWFp bl9ieV9pZCh0cmFuc19kb21pZCk7DQotKyAgICAgICAgaWYgKCB0ZCA9PSBOVUxMICkNCi0rICAg ICAgICAgICAgUElOX0ZBSUwodW5sb2NrX291dF9jbGVhciwgR05UU1RfZ2VuZXJhbF9lcnJvciwN Ci0rICAgICAgICAgICAgICAgICAgICAgInRyYW5zaXRpdmUgZ3JhbnQgcmVmZXJlbmNlZCBiYWQg ZG9tYWluICVkXG4iLA0KLSsgICAgICAgICAgICAgICAgICAgICB0cmFuc19kb21pZCk7DQotKw0K LSsgICAgICAgIC8qDQotKyAgICAgICAgICogX19hY3F1aXJlX2dyYW50X2Zvcl9jb3B5KCkgY291 bGQgdGFrZSB0aGUgbG9jayBvbiB0aGUNCi0rICAgICAgICAgKiByZW1vdGUgdGFibGUgKGlmIHJk ID09IHRkKSwgc28gd2UgaGF2ZSB0byBkcm9wIHRoZSBsb2NrDQotKyAgICAgICAgICogaGVyZSBh bmQgcmVhY3F1aXJlLg0KLSsgICAgICAgICAqLw0KLSsgICAgICAgIGFjdGl2ZV9lbnRyeV9yZWxl YXNlKGFjdCk7DQotKyAgICAgICAgZ3JhbnRfcmVhZF91bmxvY2socmd0KTsNCi0rDQotKyAgICAg ICAgcmMgPSBfX2FjcXVpcmVfZ3JhbnRfZm9yX2NvcHkodGQsIHRyYW5zX2dyZWYsIHJkLT5kb21h aW5faWQsDQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVhZG9ubHks ICZncmFudF9mcmFtZSwgcGFnZSwNCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAmdHJhbnNfcGFnZV9vZmYsICZ0cmFuc19sZW5ndGgsIDApOw0KLSsNCi0rICAgICAgICBn cmFudF9yZWFkX2xvY2socmd0KTsNCi0rICAgICAgICBhY3QgPSBhY3RpdmVfZW50cnlfYWNxdWly ZShyZ3QsIGdyZWYpOw0KLSsNCi0rICAgICAgICBpZiAoIHJjICE9IEdOVFNUX29rYXkgKQ0KLSsg ICAgICAgIHsNCi0rICAgICAgICAgICAgX19maXh1cF9zdGF0dXNfZm9yX2NvcHlfcGluKGFjdCwg c3RhdHVzKTsNCi0rICAgICAgICAgICAgcmN1X3VubG9ja19kb21haW4odGQpOw0KLSsgICAgICAg ICAgICBhY3RpdmVfZW50cnlfcmVsZWFzZShhY3QpOw0KLSsgICAgICAgICAgICBncmFudF9yZWFk X3VubG9jayhyZ3QpOw0KLSsgICAgICAgICAgICByZXR1cm4gcmM7DQotKyAgICAgICAgfQ0KLSsN Ci0rICAgICAgICAvKg0KLSsgICAgICAgICAqIFdlIGRyb3BwZWQgdGhlIGxvY2ssIHNvIHdlIGhh dmUgdG8gY2hlY2sgdGhhdCB0aGUgZ3JhbnQgZGlkbid0DQotKyAgICAgICAgICogY2hhbmdlLCBh bmQgdGhhdCBub2JvZHkgZWxzZSB0cmllZCB0byBwaW4vdW5waW4gaXQuIElmIGFueXRoaW5nDQot KyAgICAgICAgICogY2hhbmdlZCwganVzdCBnaXZlIHVwIGFuZCB0ZWxsIHRoZSBjYWxsZXIgdG8g cmV0cnkuDQotKyAgICAgICAgICovDQotKyAgICAgICAgaWYgKCByZ3QtPmd0X3ZlcnNpb24gIT0g MiB8fA0KLSsgICAgICAgICAgICAgYWN0LT5waW4gIT0gb2xkX3BpbiB8fA0KLSsgICAgICAgICAg ICAgKG9sZF9waW4gJiYgKGFjdC0+ZG9taWQgIT0gbGRvbSB8fCBhY3QtPmZyYW1lICE9IGdyYW50 X2ZyYW1lIHx8DQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0LT5zdGFydCAhPSB0cmFu c19wYWdlX29mZiB8fA0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdC0+bGVuZ3RoICE9 IHRyYW5zX2xlbmd0aCB8fA0KLSsgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdC0+dHJhbnNf ZG9tYWluICE9IHRkIHx8DQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgYWN0LT50cmFuc19n cmVmICE9IHRyYW5zX2dyZWYgfHwNCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAhYWN0LT5p c19zdWJfcGFnZSkpICkNCi0rICAgICAgICB7DQotKyAgICAgICAgICAgIF9fcmVsZWFzZV9ncmFu dF9mb3JfY29weSh0ZCwgdHJhbnNfZ3JlZiwgcmVhZG9ubHkpOw0KLSsgICAgICAgICAgICBfX2Zp eHVwX3N0YXR1c19mb3JfY29weV9waW4oYWN0LCBzdGF0dXMpOw0KLSsgICAgICAgICAgICByY3Vf dW5sb2NrX2RvbWFpbih0ZCk7DQotKyAgICAgICAgICAgIGFjdGl2ZV9lbnRyeV9yZWxlYXNlKGFj dCk7DQotKyAgICAgICAgICAgIGdyYW50X3JlYWRfdW5sb2NrKHJndCk7DQotKyAgICAgICAgICAg IHB1dF9wYWdlKCpwYWdlKTsNCi0rICAgICAgICAgICAgKnBhZ2UgPSBOVUxMOw0KLSsgICAgICAg ICAgICByZXR1cm4gRVJFU1RBUlQ7DQotKyAgICAgICAgfQ0KLSsNCi0rICAgICAgICBpZiAoICFv bGRfcGluICkNCi0rICAgICAgICB7DQotKyAgICAgICAgICAgIGFjdC0+ZG9taWQgPSBsZG9tOw0K LSsgICAgICAgICAgICBhY3QtPnN0YXJ0ID0gdHJhbnNfcGFnZV9vZmY7DQotKyAgICAgICAgICAg IGFjdC0+bGVuZ3RoID0gdHJhbnNfbGVuZ3RoOw0KLSsgICAgICAgICAgICBhY3QtPnRyYW5zX2Rv bWFpbiA9IHRkOw0KLSsgICAgICAgICAgICBhY3QtPnRyYW5zX2dyZWYgPSB0cmFuc19ncmVmOw0K LSsgICAgICAgICAgICBhY3QtPmZyYW1lID0gZ3JhbnRfZnJhbWU7DQotKyAgICAgICAgICAgIGFj dC0+Z2ZuID0gLTF1bDsNCi0rICAgICAgICAgICAgLyoNCi0rICAgICAgICAgICAgICogVGhlIGFj dHVhbCByZW1vdGUgcmVtb3RlIGdyYW50IG1heSBvciBtYXkgbm90IGJlIGEgc3ViLXBhZ2UsDQot KyAgICAgICAgICAgICAqIGJ1dCB3ZSBhbHdheXMgdHJlYXQgaXQgYXMgb25lIGJlY2F1c2UgdGhh dCBibG9ja3MgbWFwcGluZ3Mgb2YNCi0rICAgICAgICAgICAgICogdHJhbnNpdGl2ZSBncmFudHMu DQotKyAgICAgICAgICAgICAqLw0KLSsgICAgICAgICAgICBhY3QtPmlzX3N1Yl9wYWdlID0gMTsN Ci0rICAgICAgICB9DQotKyAgICB9DQotKyAgICBlbHNlIGlmICggIW9sZF9waW4gfHwNCi0rICAg ICAgICAgICAgICAoIXJlYWRvbmx5ICYmICEob2xkX3BpbiAmIChHTlRQSU5fZGV2d19tYXNrfEdO VFBJTl9oc3R3X21hc2spKSkgKQ0KLSAgICAgew0KLSAgICAgICAgIGlmICggKHJjID0gX3NldF9z dGF0dXMocmd0LT5ndF92ZXJzaW9uLCBsZG9tLA0KLSAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgcmVhZG9ubHksIDAsIHNoYWgsIGFjdCwNCi1AQCAtMjIwNiw3OSArMjI5Miw2IEBAIF9f YWNxdWlyZV9ncmFudF9mb3JfY29weSgNCi0gICAgICAgICAgICAgdHJhbnNfcGFnZV9vZmYgPSAw Ow0KLSAgICAgICAgICAgICB0cmFuc19sZW5ndGggPSBQQUdFX1NJWkU7DQotICAgICAgICAgfQ0K LS0gICAgICAgIGVsc2UgaWYgKCAoc2hhaC0+ZmxhZ3MgJiBHVEZfdHlwZV9tYXNrKSA9PSBHVEZf dHJhbnNpdGl2ZSApDQotLSAgICAgICAgew0KLS0gICAgICAgICAgICBpZiAoICFhbGxvd190cmFu c2l0aXZlICkNCi0tICAgICAgICAgICAgICAgIFBJTl9GQUlMKHVubG9ja19vdXRfY2xlYXIsIEdO VFNUX2dlbmVyYWxfZXJyb3IsDQotLSAgICAgICAgICAgICAgICAgICAgICAgICAidHJhbnNpdGl2 ZSBncmFudCB3aGVuIHRyYW5zaXRpdml0eSBub3QgYWxsb3dlZFxuIik7DQotLQ0KLS0gICAgICAg ICAgICB0cmFuc19kb21pZCA9IHNoYTItPnRyYW5zaXRpdmUudHJhbnNfZG9taWQ7DQotLSAgICAg ICAgICAgIHRyYW5zX2dyZWYgPSBzaGEyLT50cmFuc2l0aXZlLmdyZWY7DQotLSAgICAgICAgICAg IGJhcnJpZXIoKTsgLyogU3RvcCB0aGUgY29tcGlsZXIgZnJvbSByZS1sb2FkaW5nDQotLSAgICAg ICAgICAgICAgICAgICAgICAgICAgdHJhbnNfZG9taWQgZnJvbSBzaGFyZWQgbWVtb3J5ICovDQot LSAgICAgICAgICAgIGlmICggdHJhbnNfZG9taWQgPT0gcmQtPmRvbWFpbl9pZCApDQotLSAgICAg ICAgICAgICAgICBQSU5fRkFJTCh1bmxvY2tfb3V0X2NsZWFyLCBHTlRTVF9nZW5lcmFsX2Vycm9y LA0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgInRyYW5zaXRpdmUgZ3JhbnRzIGNhbm5vdCBi ZSBzZWxmLXJlZmVyZW50aWFsXG4iKTsNCi0tDQotLSAgICAgICAgICAgIC8qIFdlIGFsbG93IHRo ZSB0cmFuc19kb21pZCA9PSBsZG9tIGNhc2UsIHdoaWNoDQotLSAgICAgICAgICAgICAgIGNvcnJl c3BvbmRzIHRvIGEgZ3JhbnQgYmVpbmcgaXNzdWVkIGJ5IG9uZSBkb21haW4sIHNlbnQNCi0tICAg ICAgICAgICAgICAgdG8gYW5vdGhlciBvbmUsIGFuZCB0aGVuIHRyYW5zaXRpdmVseSBncmFudGVk IGJhY2sgdG8NCi0tICAgICAgICAgICAgICAgdGhlIG9yaWdpbmFsIGRvbWFpbi4gIEFsbG93aW5n IGl0IGlzIGVhc3ksIGFuZCBtZWFucw0KLS0gICAgICAgICAgICAgICB0aGF0IHlvdSBkb24ndCBu ZWVkIHRvIGdvIG91dCBvZiB5b3VyIHdheSB0byBhdm9pZCBpdA0KLS0gICAgICAgICAgICAgICBp biB0aGUgZ3Vlc3QuICovDQotLQ0KLS0gICAgICAgICAgICAvKiBXZSBuZWVkIHRvIGxlYXZlIHRo ZSBycmQgbG9ja2VkIGR1cmluZyB0aGUgZ3JhbnQgY29weSAqLw0KLS0gICAgICAgICAgICB0ZCA9 IHJjdV9sb2NrX2RvbWFpbl9ieV9pZCh0cmFuc19kb21pZCk7DQotLSAgICAgICAgICAgIGlmICgg dGQgPT0gTlVMTCApDQotLSAgICAgICAgICAgICAgICBQSU5fRkFJTCh1bmxvY2tfb3V0X2NsZWFy LCBHTlRTVF9nZW5lcmFsX2Vycm9yLA0KLS0gICAgICAgICAgICAgICAgICAgICAgICAgInRyYW5z aXRpdmUgZ3JhbnQgcmVmZXJlbmNlZCBiYWQgZG9tYWluICVkXG4iLA0KLS0gICAgICAgICAgICAg ICAgICAgICAgICAgdHJhbnNfZG9taWQpOw0KLS0NCi0tICAgICAgICAgICAgLyoNCi0tICAgICAg ICAgICAgICogX19hY3F1aXJlX2dyYW50X2Zvcl9jb3B5KCkgY291bGQgdGFrZSB0aGUgbG9jayBv biB0aGUNCi0tICAgICAgICAgICAgICogcmVtb3RlIHRhYmxlIChpZiByZCA9PSB0ZCksIHNvIHdl IGhhdmUgdG8gZHJvcCB0aGUgbG9jaw0KLS0gICAgICAgICAgICAgKiBoZXJlIGFuZCByZWFjcXVp cmUNCi0tICAgICAgICAgICAgICovDQotLSAgICAgICAgICAgIGFjdGl2ZV9lbnRyeV9yZWxlYXNl KGFjdCk7DQotLSAgICAgICAgICAgIGdyYW50X3JlYWRfdW5sb2NrKHJndCk7DQotLQ0KLS0gICAg ICAgICAgICByYyA9IF9fYWNxdWlyZV9ncmFudF9mb3JfY29weSh0ZCwgdHJhbnNfZ3JlZiwgcmQt PmRvbWFpbl9pZCwNCi0tICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cmVhZG9ubHksICZncmFudF9mcmFtZSwgcGFnZSwNCi0tICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgJnRyYW5zX3BhZ2Vfb2ZmLCAmdHJhbnNfbGVuZ3RoLCAwKTsNCi0t DQotLSAgICAgICAgICAgIGdyYW50X3JlYWRfbG9jayhyZ3QpOw0KLS0gICAgICAgICAgICBhY3Qg PSBhY3RpdmVfZW50cnlfYWNxdWlyZShyZ3QsIGdyZWYpOw0KLS0NCi0tICAgICAgICAgICAgaWYg KCByYyAhPSBHTlRTVF9va2F5ICkgew0KLS0gICAgICAgICAgICAgICAgX19maXh1cF9zdGF0dXNf Zm9yX2NvcHlfcGluKGFjdCwgc3RhdHVzKTsNCi0tICAgICAgICAgICAgICAgIHJjdV91bmxvY2tf ZG9tYWluKHRkKTsNCi0tICAgICAgICAgICAgICAgIGFjdGl2ZV9lbnRyeV9yZWxlYXNlKGFjdCk7 DQotLSAgICAgICAgICAgICAgICBncmFudF9yZWFkX3VubG9jayhyZ3QpOw0KLS0gICAgICAgICAg ICAgICAgcmV0dXJuIHJjOw0KLS0gICAgICAgICAgICB9DQotLQ0KLS0gICAgICAgICAgICAvKg0K LS0gICAgICAgICAgICAgKiBXZSBkcm9wcGVkIHRoZSBsb2NrLCBzbyB3ZSBoYXZlIHRvIGNoZWNr IHRoYXQgbm9ib2R5IGVsc2UgdHJpZWQNCi0tICAgICAgICAgICAgICogdG8gcGluIChvciwgZm9y IHRoYXQgbWF0dGVyLCB1bnBpbikgdGhlIHJlZmVyZW5jZSBpbiAqdGhpcyoNCi0tICAgICAgICAg ICAgICogZG9tYWluLiAgSWYgdGhleSBkaWQsIGp1c3QgZ2l2ZSB1cCBhbmQgdGVsbCB0aGUgY2Fs bGVyIHRvIHJldHJ5Lg0KLS0gICAgICAgICAgICAgKi8NCi0tICAgICAgICAgICAgaWYgKCBhY3Qt PnBpbiAhPSBvbGRfcGluICkNCi0tICAgICAgICAgICAgew0KLS0gICAgICAgICAgICAgICAgX19m aXh1cF9zdGF0dXNfZm9yX2NvcHlfcGluKGFjdCwgc3RhdHVzKTsNCi0tICAgICAgICAgICAgICAg IHJjdV91bmxvY2tfZG9tYWluKHRkKTsNCi0tICAgICAgICAgICAgICAgIGFjdGl2ZV9lbnRyeV9y ZWxlYXNlKGFjdCk7DQotLSAgICAgICAgICAgICAgICBncmFudF9yZWFkX3VubG9jayhyZ3QpOw0K LS0gICAgICAgICAgICAgICAgcHV0X3BhZ2UoKnBhZ2UpOw0KLS0gICAgICAgICAgICAgICAgKnBh Z2UgPSBOVUxMOw0KLS0gICAgICAgICAgICAgICAgcmV0dXJuIEVSRVNUQVJUOw0KLS0gICAgICAg ICAgICB9DQotLQ0KLS0gICAgICAgICAgICAvKiBUaGUgYWN0dWFsIHJlbW90ZSByZW1vdGUgZ3Jh bnQgbWF5IG9yIG1heSBub3QgYmUgYQ0KLS0gICAgICAgICAgICAgICBzdWItcGFnZSwgYnV0IHdl IGFsd2F5cyB0cmVhdCBpdCBhcyBvbmUgYmVjYXVzZSB0aGF0DQotLSAgICAgICAgICAgICAgIGJs b2NrcyBtYXBwaW5ncyBvZiB0cmFuc2l0aXZlIGdyYW50cy4gKi8NCi0tICAgICAgICAgICAgaXNf c3ViX3BhZ2UgPSAxOw0KLS0gICAgICAgICAgICBhY3QtPmdmbiA9IC0xdWw7DQotLSAgICAgICAg fQ0KLSAgICAgICAgIGVsc2UgaWYgKCAhKHNoYTItPmhkci5mbGFncyAmIEdURl9zdWJfcGFnZSkg KQ0KLSAgICAgICAgIHsNCi0gICAgICAgICAgICAgcmMgPSBfX2dldF9wYWdlZF9mcmFtZShzaGEy LT5mdWxsX3BhZ2UuZnJhbWUsICZncmFudF9mcmFtZSwgcGFnZSwgcmVhZG9ubHksIHJkKTsNCi1A QCAtMjcxMCwxMCArMjcyMywxMyBAQCBnbnR0YWJfc2V0X3ZlcnNpb24oWEVOX0dVRVNUX0hBTkRM RV9QQVJBDQotICAgICBjYXNlIDI6DQotICAgICAgICAgZm9yICggaSA9IDA7IGkgPCBHTlRUQUJf TlJfUkVTRVJWRURfRU5UUklFUzsgaSsrICkNCi0gICAgICAgICB7DQotLSAgICAgICAgICAgIGlm ICggKChzaGFyZWRfZW50cnlfdjIoZ3QsIGkpLmhkci5mbGFncyAmIEdURl90eXBlX21hc2spID09 DQotLSAgICAgICAgICAgICAgICAgIEdURl9wZXJtaXRfYWNjZXNzKSAmJg0KLS0gICAgICAgICAg ICAgICAgIChzaGFyZWRfZW50cnlfdjIoZ3QsIGkpLmZ1bGxfcGFnZS5mcmFtZSA+PiAzMikgKQ0K LSsgICAgICAgICAgICBzd2l0Y2ggKCBzaGFyZWRfZW50cnlfdjIoZ3QsIGkpLmhkci5mbGFncyAm IEdURl90eXBlX21hc2sgKQ0KLSAgICAgICAgICAgICB7DQotKyAgICAgICAgICAgIGNhc2UgR1RG X3Blcm1pdF9hY2Nlc3M6DQotKyAgICAgICAgICAgICAgICAgaWYgKCAhKHNoYXJlZF9lbnRyeV92 MihndCwgaSkuZnVsbF9wYWdlLmZyYW1lID4+IDMyKSApDQotKyAgICAgICAgICAgICAgICAgICAg IGJyZWFrOw0KLSsgICAgICAgICAgICAgICAgIC8qIGZhbGwgdGhyb3VnaCAqLw0KLSsgICAgICAg ICAgICBjYXNlIEdURl90cmFuc2l0aXZlOg0KLSAgICAgICAgICAgICAgICAgZ2RwcmludGsoWEVO TE9HX1dBUk5JTkcsDQotICAgICAgICAgICAgICAgICAgICAgICAgICAidHJpZWQgdG8gY2hhbmdl IGdyYW50IHRhYmxlIHZlcnNpb24gdG8gMSB3aXRoIG5vbi1yZXByZXNlbnRhYmxlIGVudHJpZXNc biIpOw0KLSAgICAgICAgICAgICAgICAgcmVzID0gLUVSQU5HRTsNCmRpZmYgLS1naXQgYS9tYWlu L3hlbi94c2EyMjcucGF0Y2ggYi9tYWluL3hlbi94c2EyMjcucGF0Y2gNCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NA0KaW5kZXggODZhYTQxZTJkNC4uMDAwMDAwMDAwMA0KLS0tIGEvbWFpbi94ZW4v eHNhMjI3LnBhdGNoDQorKysgL2Rldi9udWxsDQpAQCAtMSw1MiArMCwwIEBADQotRnJvbSBmYTcy NjhiOTRmOGEwYTc3OTJlZTEyZDViOGUyM2E2MGU1MmEzYTg0IE1vbiBTZXAgMTcgMDA6MDA6MDAg MjAwMQ0KLUZyb206IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+DQot RGF0ZTogVHVlLCAyMCBKdW4gMjAxNyAxOToxODo1NCArMDEwMA0KLVN1YmplY3Q6IFtQQVRDSF0g eDg2L2dyYW50OiBEaXNhbGxvdyBtaXNhbGlnbmVkIFBURXMNCi0NCi1QYWdldGFibGUgZW50cmll cyBtdXN0IGJlIGFsaWduZWQgdG8gZnVuY3Rpb24gY29ycmVjdGx5LiAgRGlzYWxsb3cgYXR0ZW1w dHMNCi1mcm9tIHRoZSBndWVzdCB0byBoYXZlIGEgZ3JhbnQgUFRFIGNyZWF0ZWQgYXQgYSBtaXNh bGlnbmVkIGFkZHJlc3MsIHdoaWNoDQotd291bGQgcmVzdWx0IGluIGNvcnJ1cHRpb24gb2YgdGhl IEwxIHRhYmxlIHdpdGggbGFyZ2VseS1ndWVzdC1jb250cm9sbGVkDQotdmFsdWVzLg0KLQ0KLVRo aXMgaXMgWFNBLTIyNw0KLQ0KLVNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5j b29wZXIzQGNpdHJpeC5jb20+DQotUmV2aWV3ZWQtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBz dXNlLmNvbT4NCi0tLS0NCi0geGVuL2FyY2gveDg2L21tLmMgfCAxMyArKysrKysrKysrKysrDQot IDEgZmlsZSBjaGFuZ2VkLCAxMyBpbnNlcnRpb25zKCspDQotDQotZGlmZiAtLWdpdCBhL3hlbi9h cmNoL3g4Ni9tbS5jIGIveGVuL2FyY2gveDg2L21tLmMNCi1pbmRleCA5N2IzYjRiLi4wMGY1MTdh IDEwMDY0NA0KLS0tLSBhL3hlbi9hcmNoL3g4Ni9tbS5jDQotKysrIGIveGVuL2FyY2gveDg2L21t LmMNCi1AQCAtMzc2Myw2ICszNzYzLDkgQEAgc3RhdGljIGludCBjcmVhdGVfZ3JhbnRfcHRlX21h cHBpbmcoDQotICAgICBsMV9wZ2VudHJ5X3Qgb2wxZTsNCi0gICAgIHN0cnVjdCBkb21haW4gKmQg PSB2LT5kb21haW47DQotIA0KLSsgICAgaWYgKCAhSVNfQUxJR05FRChwdGVfYWRkciwgc2l6ZW9m KG5sMWUpKSApDQotKyAgICAgICAgcmV0dXJuIEdOVFNUX2dlbmVyYWxfZXJyb3I7DQotKw0KLSAg ICAgYWRqdXN0X2d1ZXN0X2wxZShubDFlLCBkKTsNCi0gDQotICAgICBnbWZuID0gcHRlX2FkZHIg Pj4gUEFHRV9TSElGVDsNCi1AQCAtMzgxOSw2ICszODIyLDE2IEBAIHN0YXRpYyBpbnQgZGVzdHJv eV9ncmFudF9wdGVfbWFwcGluZygNCi0gICAgIHN0cnVjdCBwYWdlX2luZm8gKnBhZ2U7DQotICAg ICBsMV9wZ2VudHJ5X3Qgb2wxZTsNCi0gDQotKyAgICAvKg0KLSsgICAgICogYWRkciBjb21lcyBm cm9tIFhlbidzIGFjdGl2ZV9lbnRyeSB0cmFja2luZyBzbyBpc24ndCBndWVzdCBjb250cm9sbGVk LA0KLSsgICAgICogYnV0IGl0IGhhZCBzdGlsbCBiZXR0ZXIgYmUgUFRFLWFsaWduZWQuDQotKyAg ICAgKi8NCi0rICAgIGlmICggIUlTX0FMSUdORUQoYWRkciwgc2l6ZW9mKG9sMWUpKSApDQotKyAg ICB7DQotKyAgICAgICAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7DQotKyAgICAgICAgcmV0dXJuIEdO VFNUX2dlbmVyYWxfZXJyb3I7DQotKyAgICB9DQotKw0KLSAgICAgZ21mbiA9IGFkZHIgPj4gUEFH RV9TSElGVDsNCi0gICAgIHBhZ2UgPSBnZXRfcGFnZV9mcm9tX2dmbihkLCBnbWZuLCBOVUxMLCBQ Mk1fQUxMT0MpOw0KLSANCi0tLSANCi0yLjEuNA0KLQ0KZGlmZiAtLWdpdCBhL21haW4veGVuL3hz YTIyOC5wYXRjaCBiL21haW4veGVuL3hzYTIyOC5wYXRjaA0KZGVsZXRlZCBmaWxlIG1vZGUgMTAw NjQ0DQppbmRleCA2NWFkZDNhNTg4Li4wMDAwMDAwMDAwDQotLS0gYS9tYWluL3hlbi94c2EyMjgu cGF0Y2gNCisrKyAvZGV2L251bGwNCkBAIC0xLDE5OCArMCwwIEBADQotRnJvbSA5YTUyYzc4ZWI0 ZmY3ODM2YmY3YWM5ZWNkOTE4YjI4OWNlYWQxZjNmIE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQ0K LUZyb206IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4NCi1EYXRlOiBNb24sIDMxIEp1 bCAyMDE3IDE1OjE3OjU2ICswMTAwDQotU3ViamVjdDogW1BBVENIXSBnbnR0YWI6IHNwbGl0IG1h cHRyYWNrIGxvY2sgdG8gbWFrZSBpdCBmdWxmaWxsIGl0cyBwdXJwb3NlDQotIGFnYWluDQotDQot VGhlIHdheSB0aGUgbG9jayBpcyBjdXJyZW50bHkgYmVpbmcgdXNlZCBpbiBnZXRfbWFwdHJhY2tf aGFuZGxlKCksIGl0DQotcHJvdGVjdHMgb25seSB0aGUgbWFwdHJhY2sgbGltaXQ6IFRoZSBmdW5j dGlvbiBhY3RzIG9uIGN1cnJlbnQncyBsaXN0DQotb25seSwgc28gcmFjZXMgb24gbGlzdCBhY2Nl c3NlcyBhcmUgaW1wb3NzaWJsZSBldmVuIHdpdGhvdXQgdGhlIGxvY2suDQotDQotT3RvaCBsaXN0 IGFjY2VzcyByYWNlcyBhcmUgcG9zc2libGUgYmV0d2VlbiBfX2dldF9tYXB0cmFja19oYW5kbGUo KSBhbmQNCi1wdXRfbWFwdHJhY2tfaGFuZGxlKCksIGR1ZSB0byB0aGUgaW52b2NhdGlvbiBvZiB0 aGUgZm9ybWVyIGZvciBvdGhlcg0KLXRoYW4gY3VycmVudCBmcm9tIHN0ZWFsX21hcHRyYWNrX2hh bmRsZSgpLiBJbnRyb2R1Y2UgYSBwZXItdkNQVSBsb2NrDQotZm9yIGxpc3QgYWNjZXNzZXMgdG8g YmVjb21lIHJhY2UgZnJlZSBhZ2Fpbi4gVGhpcyBsb2NrIHdpbGwgYmUNCi11bmNvbnRlbmRlZCBl eGNlcHQgd2hlbiBpdCBiZWNvbWVzIG5lY2Vzc2FyeSB0byB0YWtlIHRoZSBzdGVhbCBwYXRoLA0K LWkuZS4gaW4gdGhlIGNvbW1vbiBjYXNlIHRoZXJlIHNob3VsZCBiZSBubyBtZWFuaW5nZnVsIHBl cmZvcm1hbmNlDQotaW1wYWN0Lg0KLQ0KLVdoZW4gaW4gZ2V0X21hcHRyYWNrX2hhbmRsZSBhZGRz IGEgc3RvbGVuIGVudHJ5IHRvIGEgZnJlc2gsIGVtcHR5LA0KLWZyZWVsaXN0LCB3ZSB0aGluayB0 aGF0IHRoZXJlIGlzIHByb2JhYmx5IG5vIGNvbmN1cnJlbmN5LiAgSG93ZXZlciwNCi10aGlzIGlz IG5vdCBhIGZhc3QgcGF0aCBhbmQgYWRkaW5nIHRoZSBsb2NraW5nIHRoZXJlIG1ha2VzIHRoZSBj b2RlDQotY2xlYXJseSBjb3JyZWN0Lg0KLQ0KLUFsc28sIHdoaWxlIHdlIGFyZSBoZXJlOiB0aGUg c3RvbGVuIG1hcHRyYWNrX2VudHJ5J3MgdGFpbCBwb2ludGVyIHdhcw0KLW5vdCBwcm9wZXJseSBz ZXQuICBTZXQgaXQuDQotDQotVGhpcyBpcyBYU0EtMjI4Lg0KLQ0KLVJlcG9ydGVkLWJ5OiBJYW4g SmFja3NvbiA8aWFuLmphY2tzb25AZXUuY2l0cml4LmNvbT4NCi1TaWduZWQtb2ZmLWJ5OiBKYW4g QmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQotU2lnbmVkLW9mZi1ieTogSWFuIEphY2tzb24g PElhbi5KYWNrc29uQGV1LmNpdHJpeC5jb20+DQotLS0tDQotIGRvY3MvbWlzYy9ncmFudC10YWJs ZXMudHh0ICAgIHwgIDcgKysrKysrLQ0KLSB4ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMgICAgICB8 IDMwICsrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLQ0KLSB4ZW4vaW5jbHVkZS94ZW4vZ3Jh bnRfdGFibGUuaCB8ICAyICstDQotIHhlbi9pbmNsdWRlL3hlbi9zY2hlZC5oICAgICAgIHwgIDEg Kw0KLSA0IGZpbGVzIGNoYW5nZWQsIDMyIGluc2VydGlvbnMoKyksIDggZGVsZXRpb25zKC0pDQot DQotZGlmZiAtLWdpdCBhL2RvY3MvbWlzYy9ncmFudC10YWJsZXMudHh0IGIvZG9jcy9taXNjL2dy YW50LXRhYmxlcy50eHQNCi1pbmRleCA0MTdjZTJkLi42NGRhNWNmIDEwMDY0NA0KLS0tLSBhL2Rv Y3MvbWlzYy9ncmFudC10YWJsZXMudHh0DQotKysrIGIvZG9jcy9taXNjL2dyYW50LXRhYmxlcy50 eHQNCi1AQCAtODcsNyArODcsOCBAQCBpcyBjb21wbGV0ZS4NCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGluY29uc2lzdGVudCBncmFudCB0YWJsZSBzdGF0ZSBzdWNoIGFzIGN1cnJl bnQNCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZlcnNpb24sIHBhcnRpYWxseSBp bml0aWFsaXplZCBhY3RpdmUgdGFibGUgcGFnZXMsDQotICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBldGMuDQotLSAgZ3JhbnRfdGFibGUtPm1hcHRyYWNrX2xvY2sgOiBzcGlubG9jayB1 c2VkIHRvIHByb3RlY3QgdGhlIG1hcHRyYWNrIGZyZWUgbGlzdA0KLSsgIGdyYW50X3RhYmxlLT5t YXB0cmFja19sb2NrIDogc3BpbmxvY2sgdXNlZCB0byBwcm90ZWN0IHRoZSBtYXB0cmFjayBsaW1p dA0KLSsgIHYtPm1hcHRyYWNrX2ZyZWVsaXN0X2xvY2sgIDogc3BpbmxvY2sgdXNlZCB0byBwcm90 ZWN0IHRoZSBtYXB0cmFjayBmcmVlIGxpc3QNCi0gICBhY3RpdmVfZ3JhbnRfZW50cnktPmxvY2sg ICA6IHNwaW5sb2NrIHVzZWQgdG8gc2VyaWFsaXplIG1vZGlmaWNhdGlvbnMgdG8NCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGl2ZSBlbnRyaWVzDQotIA0KLUBAIC0xMDIsNiAr MTAzLDEwIEBAIGlzIGNvbXBsZXRlLg0KLSAgVGhlIG1hcHRyYWNrIGZyZWUgbGlzdCBpcyBwcm90 ZWN0ZWQgYnkgaXRzIG93biBzcGlubG9jay4gVGhlIG1hcHRyYWNrDQotICBsb2NrIG1heSBiZSBs b2NrZWQgd2hpbGUgaG9sZGluZyB0aGUgZ3JhbnQgdGFibGUgbG9jay4NCi0gDQotKyBUaGUgbWFw dHJhY2tfZnJlZWxpc3RfbG9jayBpcyBhbiBpbm5lcm1vc3QgbG9jay4gIEl0IG1heSBiZSBsb2Nr ZWQNCi0rIHdoaWxlIGhvbGRpbmcgb3RoZXIgbG9ja3MsIGJ1dCBubyBvdGhlciBsb2NrcyBtYXkg YmUgYWNxdWlyZWQgd2l0aGluDQotKyBpdC4NCi0rDQotICBBY3RpdmUgZW50cmllcyBhcmUgb2J0 YWluZWQgYnkgY2FsbGluZyBhY3RpdmVfZW50cnlfYWNxdWlyZShndCwgcmVmKS4NCi0gIFRoaXMg ZnVuY3Rpb24gcmV0dXJucyBhIHBvaW50ZXIgdG8gdGhlIGFjdGl2ZSBlbnRyeSBhZnRlciBsb2Nr aW5nIGl0cw0KLSAgc3BpbmxvY2suIFRoZSBjYWxsZXIgbXVzdCBob2xkIHRoZSBncmFudCB0YWJs ZSByZWFkIGxvY2sgYmVmb3JlDQotZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vZ3JhbnRfdGFibGUu YyBiL3hlbi9jb21tb24vZ3JhbnRfdGFibGUuYw0KLWluZGV4IGFlMzQ1NDcuLmVlMzNiZDggMTAw NjQ0DQotLS0tIGEveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jDQotKysrIGIveGVuL2NvbW1vbi9n cmFudF90YWJsZS5jDQotQEAgLTMwNCwxMSArMzA0LDE2IEBAIF9fZ2V0X21hcHRyYWNrX2hhbmRs ZSgNCi0gew0KLSAgICAgdW5zaWduZWQgaW50IGhlYWQsIG5leHQsIHByZXZfaGVhZDsNCi0gDQot KyAgICBzcGluX2xvY2soJnYtPm1hcHRyYWNrX2ZyZWVsaXN0X2xvY2spOw0KLSsNCi0gICAgIGRv IHsNCi0gICAgICAgICAvKiBObyBtYXB0cmFjayBwYWdlcyBhbGxvY2F0ZWQgZm9yIHRoaXMgVkNQ VSB5ZXQ/ICovDQotICAgICAgICAgaGVhZCA9IHJlYWRfYXRvbWljKCZ2LT5tYXB0cmFja19oZWFk KTsNCi0gICAgICAgICBpZiAoIHVubGlrZWx5KGhlYWQgPT0gTUFQVFJBQ0tfVEFJTCkgKQ0KLSsg ICAgICAgIHsNCi0rICAgICAgICAgICAgc3Bpbl91bmxvY2soJnYtPm1hcHRyYWNrX2ZyZWVsaXN0 X2xvY2spOw0KLSAgICAgICAgICAgICByZXR1cm4gLTE7DQotKyAgICAgICAgfQ0KLSANCi0gICAg ICAgICAvKg0KLSAgICAgICAgICAqIEFsd2F5cyBrZWVwIG9uZSBlbnRyeSBpbiB0aGUgZnJlZSBs aXN0IHRvIG1ha2UgaXQgZWFzaWVyIHRvDQotQEAgLTMxNiwxMiArMzIxLDE3IEBAIF9fZ2V0X21h cHRyYWNrX2hhbmRsZSgNCi0gICAgICAgICAgKi8NCi0gICAgICAgICBuZXh0ID0gcmVhZF9hdG9t aWMoJm1hcHRyYWNrX2VudHJ5KHQsIGhlYWQpLnJlZik7DQotICAgICAgICAgaWYgKCB1bmxpa2Vs eShuZXh0ID09IE1BUFRSQUNLX1RBSUwpICkNCi0rICAgICAgICB7DQotKyAgICAgICAgICAgIHNw aW5fdW5sb2NrKCZ2LT5tYXB0cmFja19mcmVlbGlzdF9sb2NrKTsNCi0gICAgICAgICAgICAgcmV0 dXJuIC0xOw0KLSsgICAgICAgIH0NCi0gDQotICAgICAgICAgcHJldl9oZWFkID0gaGVhZDsNCi0g ICAgICAgICBoZWFkID0gY21weGNoZygmdi0+bWFwdHJhY2tfaGVhZCwgcHJldl9oZWFkLCBuZXh0 KTsNCi0gICAgIH0gd2hpbGUgKCBoZWFkICE9IHByZXZfaGVhZCApOw0KLSANCi0rICAgIHNwaW5f dW5sb2NrKCZ2LT5tYXB0cmFja19mcmVlbGlzdF9sb2NrKTsNCi0rDQotICAgICByZXR1cm4gaGVh ZDsNCi0gfQ0KLSANCi1AQCAtMzgwLDYgKzM5MCw4IEBAIHB1dF9tYXB0cmFja19oYW5kbGUoDQot ICAgICAvKiAyLiBBZGQgZW50cnkgdG8gdGhlIHRhaWwgb2YgdGhlIGxpc3Qgb24gdGhlIG9yaWdp bmFsIFZDUFUuICovDQotICAgICB2ID0gY3VycmQtPnZjcHVbbWFwdHJhY2tfZW50cnkodCwgaGFu ZGxlKS52Y3B1XTsNCi0gDQotKyAgICBzcGluX2xvY2soJnYtPm1hcHRyYWNrX2ZyZWVsaXN0X2xv Y2spOw0KLSsNCi0gICAgIGN1cl90YWlsID0gcmVhZF9hdG9taWMoJnYtPm1hcHRyYWNrX3RhaWwp Ow0KLSAgICAgZG8gew0KLSAgICAgICAgIHByZXZfdGFpbCA9IGN1cl90YWlsOw0KLUBAIC0zODgs NiArNDAwLDggQEAgcHV0X21hcHRyYWNrX2hhbmRsZSgNCi0gDQotICAgICAvKiAzLiBVcGRhdGUg dGhlIG9sZCB0YWlsIGVudHJ5IHRvIHBvaW50IHRvIHRoZSBuZXcgZW50cnkuICovDQotICAgICB3 cml0ZV9hdG9taWMoJm1hcHRyYWNrX2VudHJ5KHQsIHByZXZfdGFpbCkucmVmLCBoYW5kbGUpOw0K LSsNCi0rICAgIHNwaW5fdW5sb2NrKCZ2LT5tYXB0cmFja19mcmVlbGlzdF9sb2NrKTsNCi0gfQ0K LSANCi0gc3RhdGljIGlubGluZSBpbnQNCi1AQCAtNDExLDEwICs0MjUsNiBAQCBnZXRfbWFwdHJh Y2tfaGFuZGxlKA0KLSAgICAgICovDQotICAgICBpZiAoIG5yX21hcHRyYWNrX2ZyYW1lcyhsZ3Qp ID49IG1heF9tYXB0cmFja19mcmFtZXMgKQ0KLSAgICAgew0KLS0gICAgICAgIC8qDQotLSAgICAg ICAgICogQ2FuIGRyb3AgdGhlIGxvY2sgc2luY2Ugbm8gb3RoZXIgVkNQVSBjYW4gYmUgYWRkaW5n IGEgbmV3DQotLSAgICAgICAgICogZnJhbWUgb25jZSB0aGV5J3ZlIHJ1biBvdXQuDQotLSAgICAg ICAgICovDQotICAgICAgICAgc3Bpbl91bmxvY2soJmxndC0+bWFwdHJhY2tfbG9jayk7DQotIA0K LSAgICAgICAgIC8qDQotQEAgLTQyNiw4ICs0MzYsMTIgQEAgZ2V0X21hcHRyYWNrX2hhbmRsZSgN Ci0gICAgICAgICAgICAgaGFuZGxlID0gc3RlYWxfbWFwdHJhY2tfaGFuZGxlKGxndCwgY3Vycik7 DQotICAgICAgICAgICAgIGlmICggaGFuZGxlID09IC0xICkNCi0gICAgICAgICAgICAgICAgIHJl dHVybiAtMTsNCi0rICAgICAgICAgICAgc3Bpbl9sb2NrKCZjdXJyLT5tYXB0cmFja19mcmVlbGlz dF9sb2NrKTsNCi0rICAgICAgICAgICAgbWFwdHJhY2tfZW50cnkobGd0LCBoYW5kbGUpLnJlZiA9 IE1BUFRSQUNLX1RBSUw7DQotICAgICAgICAgICAgIGN1cnItPm1hcHRyYWNrX3RhaWwgPSBoYW5k bGU7DQotLSAgICAgICAgICAgIHdyaXRlX2F0b21pYygmY3Vyci0+bWFwdHJhY2tfaGVhZCwgaGFu ZGxlKTsNCi0rICAgICAgICAgICAgaWYgKCBjdXJyLT5tYXB0cmFja19oZWFkID09IE1BUFRSQUNL X1RBSUwgKQ0KLSsgICAgICAgICAgICAgICAgd3JpdGVfYXRvbWljKCZjdXJyLT5tYXB0cmFja19o ZWFkLCBoYW5kbGUpOw0KLSsgICAgICAgICAgICBzcGluX3VubG9jaygmY3Vyci0+bWFwdHJhY2tf ZnJlZWxpc3RfbG9jayk7DQotICAgICAgICAgfQ0KLSAgICAgICAgIHJldHVybiBzdGVhbF9tYXB0 cmFja19oYW5kbGUobGd0LCBjdXJyKTsNCi0gICAgIH0NCi1AQCAtNDYwLDEyICs0NzQsMTUgQEAg Z2V0X21hcHRyYWNrX2hhbmRsZSgNCi0gICAgIHNtcF93bWIoKTsNCi0gICAgIGxndC0+bWFwdHJh Y2tfbGltaXQgKz0gTUFQVFJBQ0tfUEVSX1BBR0U7DQotIA0KLSsgICAgc3Bpbl91bmxvY2soJmxn dC0+bWFwdHJhY2tfbG9jayk7DQotKyAgICBzcGluX2xvY2soJmN1cnItPm1hcHRyYWNrX2ZyZWVs aXN0X2xvY2spOw0KLSsNCi0gICAgIGRvIHsNCi0gICAgICAgICBuZXdfbXRbaSAtIDFdLnJlZiA9 IHJlYWRfYXRvbWljKCZjdXJyLT5tYXB0cmFja19oZWFkKTsNCi0gICAgICAgICBoZWFkID0gY21w eGNoZygmY3Vyci0+bWFwdHJhY2tfaGVhZCwgbmV3X210W2kgLSAxXS5yZWYsIGhhbmRsZSArIDEp Ow0KLSAgICAgfSB3aGlsZSAoIGhlYWQgIT0gbmV3X210W2kgLSAxXS5yZWYgKTsNCi0gDQotLSAg ICBzcGluX3VubG9jaygmbGd0LT5tYXB0cmFja19sb2NrKTsNCi0rICAgIHNwaW5fdW5sb2NrKCZj dXJyLT5tYXB0cmFja19mcmVlbGlzdF9sb2NrKTsNCi0gDQotICAgICByZXR1cm4gaGFuZGxlOw0K LSB9DQotQEAgLTM0NzUsNiArMzQ5Miw3IEBAIGdyYW50X3RhYmxlX2Rlc3Ryb3koDQotIA0KLSB2 b2lkIGdyYW50X3RhYmxlX2luaXRfdmNwdShzdHJ1Y3QgdmNwdSAqdikNCi0gew0KLSsgICAgc3Bp bl9sb2NrX2luaXQoJnYtPm1hcHRyYWNrX2ZyZWVsaXN0X2xvY2spOw0KLSAgICAgdi0+bWFwdHJh Y2tfaGVhZCA9IE1BUFRSQUNLX1RBSUw7DQotICAgICB2LT5tYXB0cmFja190YWlsID0gTUFQVFJB Q0tfVEFJTDsNCi0gfQ0KLWRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vZ3JhbnRfdGFibGUu aCBiL3hlbi9pbmNsdWRlL3hlbi9ncmFudF90YWJsZS5oDQotaW5kZXggNGU3Nzg5OS4uMTAwZjJi MyAxMDA2NDQNCi0tLS0gYS94ZW4vaW5jbHVkZS94ZW4vZ3JhbnRfdGFibGUuaA0KLSsrKyBiL3hl bi9pbmNsdWRlL3hlbi9ncmFudF90YWJsZS5oDQotQEAgLTc4LDcgKzc4LDcgQEAgc3RydWN0IGdy YW50X3RhYmxlIHsNCi0gICAgIC8qIE1hcHBpbmcgdHJhY2tpbmcgdGFibGUgcGVyIHZjcHUuICov DQotICAgICBzdHJ1Y3QgZ3JhbnRfbWFwcGluZyAqKm1hcHRyYWNrOw0KLSAgICAgdW5zaWduZWQg aW50ICAgICAgICAgIG1hcHRyYWNrX2xpbWl0Ow0KLS0gICAgLyogTG9jayBwcm90ZWN0aW5nIHRo ZSBtYXB0cmFjayBwYWdlIGxpc3QsIGhlYWQsIGFuZCBsaW1pdCAqLw0KLSsgICAgLyogTG9jayBw cm90ZWN0aW5nIHRoZSBtYXB0cmFjayBsaW1pdCAqLw0KLSAgICAgc3BpbmxvY2tfdCAgICAgICAg ICAgIG1hcHRyYWNrX2xvY2s7DQotICAgICAvKiBUaGUgZGVmaW5lZCB2ZXJzaW9ucyBhcmUgMSBh bmQgMi4gIFNldCB0byAwIGlmIHdlIGRvbid0IGtub3cNCi0gICAgICAgIHdoYXQgdmVyc2lvbiB0 byB1c2UgeWV0LiAqLw0KLWRpZmYgLS1naXQgYS94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaCBiL3hl bi9pbmNsdWRlL3hlbi9zY2hlZC5oDQotaW5kZXggNjY3M2IyNy4uODY5MGYyOSAxMDA2NDQNCi0t LS0gYS94ZW4vaW5jbHVkZS94ZW4vc2NoZWQuaA0KLSsrKyBiL3hlbi9pbmNsdWRlL3hlbi9zY2hl ZC5oDQotQEAgLTIzMCw2ICsyMzAsNyBAQCBzdHJ1Y3QgdmNwdQ0KLSAgICAgaW50ICAgICAgICAg ICAgICBjb250cm9sbGVyX3BhdXNlX2NvdW50Ow0KLSANCi0gICAgIC8qIEdyYW50IHRhYmxlIG1h cCB0cmFja2luZy4gKi8NCi0rICAgIHNwaW5sb2NrX3QgICAgICAgbWFwdHJhY2tfZnJlZWxpc3Rf bG9jazsNCi0gICAgIHVuc2lnbmVkIGludCAgICAgbWFwdHJhY2tfaGVhZDsNCi0gICAgIHVuc2ln bmVkIGludCAgICAgbWFwdHJhY2tfdGFpbDsNCi0gDQotLS0gDQotMi4xLjQNCi0NCmRpZmYgLS1n aXQgYS9tYWluL3hlbi94c2EyMzAucGF0Y2ggYi9tYWluL3hlbi94c2EyMzAucGF0Y2gNCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggYzNiNTBjOGFhYS4uMDAwMDAwMDAwMA0KLS0tIGEv bWFpbi94ZW4veHNhMjMwLnBhdGNoDQorKysgL2Rldi9udWxsDQpAQCAtMSwzOCArMCwwIEBADQot RnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPg0KLVN1YmplY3Q6IGdudHRhYjog Y29ycmVjdCBwaW4gc3RhdHVzIGZpeHVwIGZvciBjb3B5DQotDQotUmVnYXJkbGVzcyBvZiBjb3B5 IG9wZXJhdGlvbnMgb25seSBzZXR0aW5nIEdOVFBJTl9oc3QqLCBHTlRQSU5fZGV2Kg0KLWFsc28g bmVlZCB0byBiZSB0YWtlbiBpbnRvIGFjY291bnQgd2hlbiBkZWNpZGluZyB3aGV0aGVyIHRvIGNs ZWFyDQotX0dURl97cmVhZCx3cml0fWluZy4gQXQgbGVhc3QgZm9yIGNvbnNpc3RlbmN5IHdpdGgg Y29kZSBlbHNld2hlcmUgdGhlDQotcmVhZCBwYXJ0IGJldHRlciBkb2Vzbid0IHVzZSBhbnkgbWFz ayBhdCBhbGwuDQotDQotVGhpcyBpcyBYU0EtMjMwLg0KLQ0KLVNpZ25lZC1vZmYtYnk6IEphbiBC ZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4NCi1SZXZpZXdlZC1ieTogQW5kcmV3IENvb3BlciA8 YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4NCi1kaWZmIC0tZ2l0IGEveGVuL2NvbW1vbi9ncmFu dF90YWJsZS5jIGIveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jDQotaW5kZXggYWUzNDU0Ny4uOWM5 ZDMzYyAxMDA2NDQNCi0tLS0gYS94ZW4vY29tbW9uL2dyYW50X3RhYmxlLmMNCi0rKysgYi94ZW4v Y29tbW9uL2dyYW50X3RhYmxlLmMNCi1AQCAtMjEwNywxMCArMjEwNywxMCBAQCBfX3JlbGVhc2Vf Z3JhbnRfZm9yX2NvcHkoDQotIHN0YXRpYyB2b2lkIF9fZml4dXBfc3RhdHVzX2Zvcl9jb3B5X3Bp bihjb25zdCBzdHJ1Y3QgYWN0aXZlX2dyYW50X2VudHJ5ICphY3QsDQotICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgdWludDE2X3QgKnN0YXR1cykNCi0gew0KLS0gICAgaWYgKCAh KGFjdC0+cGluICYgR05UUElOX2hzdHdfbWFzaykgKQ0KLSsgICAgaWYgKCAhKGFjdC0+cGluICYg KEdOVFBJTl9oc3R3X21hc2sgfCBHTlRQSU5fZGV2d19tYXNrKSkgKQ0KLSAgICAgICAgIGdudHRh Yl9jbGVhcl9mbGFnKF9HVEZfd3JpdGluZywgc3RhdHVzKTsNCi0gDQotLSAgICBpZiAoICEoYWN0 LT5waW4gJiBHTlRQSU5faHN0cl9tYXNrKSApDQotKyAgICBpZiAoICFhY3QtPnBpbiApDQotICAg ICAgICAgZ250dGFiX2NsZWFyX2ZsYWcoX0dURl9yZWFkaW5nLCBzdGF0dXMpOw0KLSB9DQotIA0K LUBAIC0yMzE4LDcgKzIzMTgsNyBAQCBfX2FjcXVpcmVfZ3JhbnRfZm9yX2NvcHkoDQotICANCi0g IHVubG9ja19vdXRfY2xlYXI6DQotICAgICBpZiAoICEocmVhZG9ubHkpICYmDQotLSAgICAgICAg ICEoYWN0LT5waW4gJiBHTlRQSU5faHN0d19tYXNrKSApDQotKyAgICAgICAgICEoYWN0LT5waW4g JiAoR05UUElOX2hzdHdfbWFzayB8IEdOVFBJTl9kZXZ3X21hc2spKSApDQotICAgICAgICAgZ250 dGFiX2NsZWFyX2ZsYWcoX0dURl93cml0aW5nLCBzdGF0dXMpOw0KLSANCi0gICAgIGlmICggIWFj dC0+cGluICkNCmRpZmYgLS1naXQgYS9tYWluL3hlbi94c2EyMzEtNC45LnBhdGNoIGIvbWFpbi94 ZW4veHNhMjMxLTQuOS5wYXRjaA0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAyNTEx NjVlNmJkLi4wMDAwMDAwMDAwDQotLS0gYS9tYWluL3hlbi94c2EyMzEtNC45LnBhdGNoDQorKysg L2Rldi9udWxsDQpAQCAtMSwxMDggKzAsMCBAQA0KLUZyb206IEdlb3JnZSBEdW5sYXAgPGdlb3Jn ZS5kdW5sYXBAY2l0cml4LmNvbT4NCi1TdWJqZWN0OiB4ZW4vbW06IG1ha2Ugc3VyZSBub2RlIGlz IGxlc3MgdGhhbiBNQVhfTlVNTk9ERVMNCi0NCi1UaGUgb3V0cHV0IG9mIE1FTUZfZ2V0X25vZGUo bWVtZmxhZ3MpIGNhbiBiZSBhcyBsYXJnZSBhcyBub2RlaWRfdCBjYW4NCi1ob2xkIChjdXJyZW50 bHkgMjU1KS4gIFRoaXMgaXMgdGhlbiB1c2VkIGFzIGFuIGluZGV4IHRvIGFycmF5cyBvZiBzaXpl DQotTUFYX05VTU5PREUsIHdoaWNoIGlzIDY0IG9uIHg4NiBhbmQgMSBvbiBBUk0sIGNhbiBiZSBw YXNzZWQgaW4gYnkgYW4NCi11bnRydXN0ZWQgZ3Vlc3QgKHZpYSBtZW1vcnlfZXhjaGFuZ2UgYW5k IGluY3JlYXNlX3Jlc2VydmF0aW9uKSBhbmQgaXMNCi1ub3QgY3VycmVudGx5IGJvdW5kcy1jaGVj a2VkLg0KLQ0KLUNoZWNrIHRoZSB2YWx1ZSBpbiBwYWdlX2FsbG9jLmMgYmVmb3JlIHVzaW5nIGl0 LCBhbmQgYWxzbyBjaGVjayB0aGUNCi12YWx1ZSBpbiB0aGUgaHlwZXJjYWxsIGNhbGwgc2l0ZXMg YW5kIHJldHVybiAtRUlOVkFMIGlmIGFwcHJvcHJpYXRlLg0KLURvbid0IHBlcm1pdCBkb21haW5z IG90aGVyIHRoYW4gdGhlIGhhcmR3YXJlIG9yIGNvbnRyb2wgZG9tYWluIHRvDQotYWxsb2NhdGUg bm9kZS1jb25zdHJhaW5lZCBtZW1vcnkuDQotDQotVGhpcyBpcyBYU0EtMjMxLg0KLQ0KLVJlcG9y dGVkLWJ5OiBNYXR0aGV3IERhbGV5IDxtYXR0ZEBidWdmdXp6LmNvbT4NCi1TaWduZWQtb2ZmLWJ5 OiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGNpdHJpeC5jb20+DQotU2lnbmVkLW9mZi1i eTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPg0KLVJldmlld2VkLWJ5OiBBbmRyZXcg Q29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPg0KLQ0KLS0tLSBhL3hlbi9jb21tb24v bWVtb3J5LmMNCi0rKysgYi94ZW4vY29tbW9uL21lbW9yeS5jDQotQEAgLTQxMSw2ICs0MTEsMzEg QEAgc3RhdGljIHZvaWQgZGVjcmVhc2VfcmVzZXJ2YXRpb24oc3RydWN0DQotICAgICBhLT5ucl9k b25lID0gaTsNCi0gfQ0KLSANCi0rc3RhdGljIGJvb2wgcHJvcGFnYXRlX25vZGUodW5zaWduZWQg aW50IHhtZiwgdW5zaWduZWQgaW50ICptZW1mbGFncykNCi0rew0KLSsgICAgY29uc3Qgc3RydWN0 IGRvbWFpbiAqY3VycmQgPSBjdXJyZW50LT5kb21haW47DQotKw0KLSsgICAgQlVJTERfQlVHX09O KFhFTk1FTUZfZ2V0X25vZGUoMCkgIT0gTlVNQV9OT19OT0RFKTsNCi0rICAgIEJVSUxEX0JVR19P TihNRU1GX2dldF9ub2RlKDApICE9IE5VTUFfTk9fTk9ERSk7DQotKw0KLSsgICAgaWYgKCBYRU5N RU1GX2dldF9ub2RlKHhtZikgPT0gTlVNQV9OT19OT0RFICkNCi0rICAgICAgICByZXR1cm4gdHJ1 ZTsNCi0rDQotKyAgICBpZiAoIGlzX2hhcmR3YXJlX2RvbWFpbihjdXJyZCkgfHwgaXNfY29udHJv bF9kb21haW4oY3VycmQpICkNCi0rICAgIHsNCi0rICAgICAgICBpZiAoIFhFTk1FTUZfZ2V0X25v ZGUoeG1mKSA+PSBNQVhfTlVNTk9ERVMgKQ0KLSsgICAgICAgICAgICByZXR1cm4gZmFsc2U7DQot Kw0KLSsgICAgICAgICptZW1mbGFncyB8PSBNRU1GX25vZGUoWEVOTUVNRl9nZXRfbm9kZSh4bWYp KTsNCi0rICAgICAgICBpZiAoIHhtZiAmIFhFTk1FTUZfZXhhY3Rfbm9kZV9yZXF1ZXN0ICkNCi0r ICAgICAgICAgICAgKm1lbWZsYWdzIHw9IE1FTUZfZXhhY3Rfbm9kZTsNCi0rICAgIH0NCi0rICAg IGVsc2UgaWYgKCB4bWYgJiBYRU5NRU1GX2V4YWN0X25vZGVfcmVxdWVzdCApDQotKyAgICAgICAg cmV0dXJuIGZhbHNlOw0KLSsNCi0rICAgIHJldHVybiB0cnVlOw0KLSt9DQotKw0KLSBzdGF0aWMg bG9uZyBtZW1vcnlfZXhjaGFuZ2UoWEVOX0dVRVNUX0hBTkRMRV9QQVJBTSh4ZW5fbWVtb3J5X2V4 Y2hhbmdlX3QpIGFyZykNCi0gew0KLSAgICAgc3RydWN0IHhlbl9tZW1vcnlfZXhjaGFuZ2UgZXhj aDsNCi1AQCAtNDgzLDYgKzUwOCwxMiBAQCBzdGF0aWMgbG9uZyBtZW1vcnlfZXhjaGFuZ2UoWEVO X0dVRVNUX0hBDQotICAgICAgICAgfQ0KLSAgICAgfQ0KLSANCi0rICAgIGlmICggdW5saWtlbHko IXByb3BhZ2F0ZV9ub2RlKGV4Y2gub3V0Lm1lbV9mbGFncywgJm1lbWZsYWdzKSkgKQ0KLSsgICAg ew0KLSsgICAgICAgIHJjID0gLUVJTlZBTDsNCi0rICAgICAgICBnb3RvIGZhaWxfZWFybHk7DQot KyAgICB9DQotKw0KLSAgICAgZCA9IHJjdV9sb2NrX2RvbWFpbl9ieV9hbnlfaWQoZXhjaC5pbi5k b21pZCk7DQotICAgICBpZiAoIGQgPT0gTlVMTCApDQotICAgICB7DQotQEAgLTUwMSw3ICs1MzIs NiBAQCBzdGF0aWMgbG9uZyBtZW1vcnlfZXhjaGFuZ2UoWEVOX0dVRVNUX0hBDQotICAgICAgICAg ZCwNCi0gICAgICAgICBYRU5NRU1GX2dldF9hZGRyZXNzX2JpdHMoZXhjaC5vdXQubWVtX2ZsYWdz KSA/IDoNCi0gICAgICAgICAoQklUU19QRVJfTE9ORytQQUdFX1NISUZUKSkpOw0KLS0gICAgbWVt ZmxhZ3MgfD0gTUVNRl9ub2RlKFhFTk1FTUZfZ2V0X25vZGUoZXhjaC5vdXQubWVtX2ZsYWdzKSk7 DQotIA0KLSAgICAgZm9yICggaSA9IChleGNoLm5yX2V4Y2hhbmdlZCA+PiBpbl9jaHVua19vcmRl cik7DQotICAgICAgICAgICBpIDwgKGV4Y2guaW4ubnJfZXh0ZW50cyA+PiBpbl9jaHVua19vcmRl cik7DQotQEAgLTg2NCwxMiArODk0LDggQEAgc3RhdGljIGludCBjb25zdHJ1Y3RfbWVtb3BfZnJv bV9yZXNlcnZhdA0KLSAgICAgICAgIH0NCi0gICAgICAgICByZWFkX3VubG9jaygmZC0+dm51bWFf cndsb2NrKTsNCi0gICAgIH0NCi0tICAgIGVsc2UNCi0tICAgIHsNCi0tICAgICAgICBhLT5tZW1m bGFncyB8PSBNRU1GX25vZGUoWEVOTUVNRl9nZXRfbm9kZShyLT5tZW1fZmxhZ3MpKTsNCi0tICAg ICAgICBpZiAoIHItPm1lbV9mbGFncyAmIFhFTk1FTUZfZXhhY3Rfbm9kZV9yZXF1ZXN0ICkNCi0t ICAgICAgICAgICAgYS0+bWVtZmxhZ3MgfD0gTUVNRl9leGFjdF9ub2RlOw0KLS0gICAgfQ0KLSsg ICAgZWxzZSBpZiAoIHVubGlrZWx5KCFwcm9wYWdhdGVfbm9kZShyLT5tZW1fZmxhZ3MsICZhLT5t ZW1mbGFncykpICkNCi0rICAgICAgICByZXR1cm4gLUVJTlZBTDsNCi0gDQotICAgICByZXR1cm4g MDsNCi0gfQ0KLS0tLSBhL3hlbi9jb21tb24vcGFnZV9hbGxvYy5jDQotKysrIGIveGVuL2NvbW1v bi9wYWdlX2FsbG9jLmMNCi1AQCAtNzA2LDkgKzcwNiwxMyBAQCBzdGF0aWMgc3RydWN0IHBhZ2Vf aW5mbyAqYWxsb2NfaGVhcF9wYWdlDQotICAgICAgICAgaWYgKCBub2RlID49IE1BWF9OVU1OT0RF UyApDQotICAgICAgICAgICAgIG5vZGUgPSBjcHVfdG9fbm9kZShzbXBfcHJvY2Vzc29yX2lkKCkp Ow0KLSAgICAgfQ0KLSsgICAgZWxzZSBpZiAoIHVubGlrZWx5KG5vZGUgPj0gTUFYX05VTU5PREVT KSApDQotKyAgICB7DQotKyAgICAgICAgQVNTRVJUX1VOUkVBQ0hBQkxFKCk7DQotKyAgICAgICAg cmV0dXJuIE5VTEw7DQotKyAgICB9DQotICAgICBmaXJzdF9ub2RlID0gbm9kZTsNCi0gDQotLSAg ICBBU1NFUlQobm9kZSA8IE1BWF9OVU1OT0RFUyk7DQotICAgICBBU1NFUlQoem9uZV9sbyA8PSB6 b25lX2hpKTsNCi0gICAgIEFTU0VSVCh6b25lX2hpIDwgTlJfWk9ORVMpOw0KLSANCmRpZmYgLS1n aXQgYS9tYWluL3hlbi94c2EyMzIucGF0Y2ggYi9tYWluL3hlbi94c2EyMzIucGF0Y2gNCmRlbGV0 ZWQgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggOWU1ZjM1YzdkNi4uMDAwMDAwMDAwMA0KLS0tIGEv bWFpbi94ZW4veHNhMjMyLnBhdGNoDQorKysgL2Rldi9udWxsDQpAQCAtMSwyMyArMCwwIEBADQot RnJvbTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4NCi1TdWJqZWN0 OiBncmFudF90YWJsZTogZml4IEdOVFRBQk9QX2NhY2hlX2ZsdXNoIGhhbmRsaW5nDQotDQotRG9u J3QgZmFsbCBvdmVyIGEgTlVMTCBncmFudF90YWJsZSBwb2ludGVyIHdoZW4gdGhlIG93bmVyIG9m IHRoZSBkb21haW4NCi1pcyBhIHN5c3RlbSBkb21haW4gKERPTUlEX3tYRU4sSU99IGV0YykuDQot DQotVGhpcyBpcyBYU0EtMjMyLg0KLQ0KLVJlcG9ydGVkLWJ5OiBNYXR0aGV3IERhbGV5IDxtYXR0 ZEBidWdmdXp6LmNvbT4NCi1TaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29v cGVyM0BjaXRyaXguY29tPg0KLVJldmlld2VkLWJ5OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3Vz ZS5jb20+DQotDQotLS0tIGEveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jDQotKysrIGIveGVuL2Nv bW1vbi9ncmFudF90YWJsZS5jDQotQEAgLTMwNTMsNyArMzA1Myw3IEBAIHN0YXRpYyBpbnQgY2Fj aGVfZmx1c2goZ250dGFiX2NhY2hlX2ZsdXMNCi0gDQotICAgICBwYWdlID0gbWZuX3RvX3BhZ2Uo bWZuKTsNCi0gICAgIG93bmVyID0gcGFnZV9nZXRfb3duZXJfYW5kX3JlZmVyZW5jZShwYWdlKTsN Ci0tICAgIGlmICggIW93bmVyICkNCi0rICAgIGlmICggIW93bmVyIHx8ICFvd25lci0+Z3JhbnRf dGFibGUgKQ0KLSAgICAgew0KLSAgICAgICAgIHJjdV91bmxvY2tfZG9tYWluKGQpOw0KLSAgICAg ICAgIHJldHVybiAtRVBFUk07DQpkaWZmIC0tZ2l0IGEvbWFpbi94ZW4veHNhMjMzLnBhdGNoIGIv bWFpbi94ZW4veHNhMjMzLnBhdGNoDQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDYw MTNjNTJiNDEuLjAwMDAwMDAwMDANCi0tLSBhL21haW4veGVuL3hzYTIzMy5wYXRjaA0KKysrIC9k ZXYvbnVsbA0KQEAgLTEsNTIgKzAsMCBAQA0KLUZyb206IEp1ZXJnZW4gR3Jvc3MgPGpncm9zc0Bz dXNlLmNvbT4NCi1TdWJqZWN0OiB0b29scy94ZW5zdG9yZTogZG9udCB1bmxpbmsgY29ubmVjdGlv biBvYmplY3QgdHdpY2UNCi0NCi1BIGNvbm5lY3Rpb24gb2JqZWN0IG9mIGEgZG9tYWluIHdpdGgg YXNzb2NpYXRlZCBzdHViZG9tIGhhcyB0d28NCi1wYXJlbnRzOiB0aGUgZG9tYWluIGFuZCB0aGUg c3R1YmRvbS4gV2hlbiBjbGVhbmluZyB1cCB0aGUgbGlzdCBvZg0KLWFjdGl2ZSBkb21haW5zIGlu IGRvbWFpbl9jbGVhbnVwKCkgbWFrZSBzdXJlIG5vdCB0byB1bmxpbmsgdGhlDQotY29ubmVjdGlv biB0d2ljZSBmcm9tIHRoZSBzYW1lIGRvbWFpbi4gVGhpcyBjb3VsZCBoYXBwZW4gd2hlbiB0aGUN Ci1kb21haW4gYW5kIGl0cyBzdHViZG9tIGFyZSBiZWluZyBkZXN0cm95ZWQgYXQgdGhlIHNhbWUg dGltZSBsZWFkaW5nDQotdG8gdGhlIGRvbWFpbiBsb29wIGJlaW5nIGVudGVyZWQgdHdpY2UuDQot DQotQWRkaXRpb25hbGx5IGRvbid0IHVzZSB0YWxsb2NfZnJlZSgpIGluIHRoaXMgY2FzZSBhcyBp dCB3aWxsIHJlbW92ZQ0KLWEgcmFuZG9tIHBhcmVudCBsaW5rLCBsZWFkaW5nIGV2ZW50dWFsbHkg dG8gYSBtZW1vcnkgbGVhay4gVXNlDQotdGFsbG9jX3VubGluaygpIGluc3RlYWQgc3BlY2lmeWlu ZyB0aGUgY29udGV4dCBmcm9tIHdoaWNoIHRoZQ0KLWNvbm5lY3Rpb24gb2JqZWN0IHNob3VsZCBi ZSByZW1vdmVkLg0KLQ0KLVRoaXMgaXMgWFNBLTIzMy4NCi0NCi1SZXBvcnRlZC1ieTogRXJpYyBD aGFudWRldCA8Y2hhbnVkZXRlQGFpbmZvc2VjLmNvbT4NCi1TaWduZWQtb2ZmLWJ5OiBKdWVyZ2Vu IEdyb3NzIDxqZ3Jvc3NAc3VzZS5jb20+DQotUmV2aWV3ZWQtYnk6IElhbiBKYWNrc29uIDxpYW4u amFja3NvbkBldS5jaXRyaXguY29tPg0KLQ0KLS0tLSBhL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3Jl ZF9kb21haW4uYw0KLSsrKyBiL3Rvb2xzL3hlbnN0b3JlL3hlbnN0b3JlZF9kb21haW4uYw0KLUBA IC0yMjEsMTAgKzIyMSwxMSBAQCBzdGF0aWMgaW50IGRlc3Ryb3lfZG9tYWluKHZvaWQgKl9kb21h aW4pDQotIHN0YXRpYyB2b2lkIGRvbWFpbl9jbGVhbnVwKHZvaWQpDQotIHsNCi0gCXhjX2RvbWlu Zm9fdCBkb21pbmZvOw0KLS0Jc3RydWN0IGRvbWFpbiAqZG9tYWluLCAqdG1wOw0KLSsJc3RydWN0 IGRvbWFpbiAqZG9tYWluOw0KLSAJaW50IG5vdGlmeSA9IDA7DQotIA0KLS0JbGlzdF9mb3JfZWFj aF9lbnRyeV9zYWZlKGRvbWFpbiwgdG1wLCAmZG9tYWlucywgbGlzdCkgew0KLSsgYWdhaW46DQot KwlsaXN0X2Zvcl9lYWNoX2VudHJ5KGRvbWFpbiwgJmRvbWFpbnMsIGxpc3QpIHsNCi0gCQlpZiAo eGNfZG9tYWluX2dldGluZm8oKnhjX2hhbmRsZSwgZG9tYWluLT5kb21pZCwgMSwNCi0gCQkJCSAg ICAgICZkb21pbmZvKSA9PSAxICYmDQotIAkJICAgIGRvbWluZm8uZG9taWQgPT0gZG9tYWluLT5k b21pZCkgew0KLUBAIC0yMzYsOCArMjM3LDEyIEBAIHN0YXRpYyB2b2lkIGRvbWFpbl9jbGVhbnVw KHZvaWQpDQotIAkJCWlmICghZG9taW5mby5keWluZykNCi0gCQkJCWNvbnRpbnVlOw0KLSAJCX0N Ci0tCQl0YWxsb2NfZnJlZShkb21haW4tPmNvbm4pOw0KLS0JCW5vdGlmeSA9IDA7IC8qIGRlc3Ry b3lfZG9tYWluKCkgZmlyZXMgdGhlIHdhdGNoICovDQotKwkJaWYgKGRvbWFpbi0+Y29ubikgew0K LSsJCQl0YWxsb2NfdW5saW5rKHRhbGxvY19hdXRvZnJlZV9jb250ZXh0KCksIGRvbWFpbi0+Y29u bik7DQotKwkJCWRvbWFpbi0+Y29ubiA9IE5VTEw7DQotKwkJCW5vdGlmeSA9IDA7IC8qIGRlc3Ry b3lfZG9tYWluKCkgZmlyZXMgdGhlIHdhdGNoICovDQotKwkJCWdvdG8gYWdhaW47DQotKwkJfQ0K LSAJfQ0KLSANCi0gCWlmIChub3RpZnkpDQpkaWZmIC0tZ2l0IGEvbWFpbi94ZW4veHNhMjM0LTQu OS5wYXRjaCBiL21haW4veGVuL3hzYTIzNC00LjkucGF0Y2gNCmRlbGV0ZWQgZmlsZSBtb2RlIDEw MDY0NA0KaW5kZXggOGRiZjQwMTcyMC4uMDAwMDAwMDAwMA0KLS0tIGEvbWFpbi94ZW4veHNhMjM0 LTQuOS5wYXRjaA0KKysrIC9kZXYvbnVsbA0KQEAgLTEsMTkyICswLDAgQEANCi1Gcm9tOiBKYW4g QmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQotU3ViamVjdDogZ250dGFiOiBhbHNvIHZhbGlk YXRlIFBURSBwZXJtaXNzaW9ucyB1cG9uIGRlc3Ryb3kvcmVwbGFjZQ0KLQ0KLUluIG9yZGVyIGZv ciBQVEUgaGFuZGxpbmcgdG8gbWF0Y2ggdXAgd2l0aCB0aGUgcmVmZXJlbmNlIGNvdW50aW5nIGRv bmUNCi1ieSBjb21tb24gY29kZSwgcHJlc2VuY2UgYW5kIHdyaXRhYmlsaXR5IG9mIGdyYW50IG1h cHBpbmcgUFRFcyBtdXN0DQotYWxzbyBiZSB0YWtlbiBpbnRvIGFjY291bnQ7IHZhbGlkYXRpbmcg anVzdCB0aGUgZnJhbWUgbnVtYmVyIGlzIG5vdA0KLWVub3VnaC4gVGhpcyBpcyBpbiBwYXJ0aWN1 bGFyIHJlbGV2YW50IGlmIGEgZ3Vlc3QgZmlkZGxlcyB3aXRoIGdyYW50DQotUFRFcyB2aWEgbm9u LWdyYW50IGh5cGVyY2FsbHMuDQotDQotTm90ZSB0aGF0IHRoZSBmbGFncyBiZWluZyBwYXNzZWQg dG8gcmVwbGFjZV9ncmFudF9ob3N0X21hcHBpbmcoKQ0KLWFscmVhZHkgaGFwcGVuIHRvIGJlIHRo b3NlIG9mIHRoZSBleGlzdGluZyBtYXBwaW5nLCBzbyBubyBuZXcgZnVuY3Rpb24NCi1wYXJhbWV0 ZXIgaXMgbmVlZGVkLg0KLQ0KLVRoaXMgaXMgWFNBLTIzNC4NCi0NCi1SZXBvcnRlZC1ieTogQW5k cmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4NCi1TaWduZWQtb2ZmLWJ5OiBK YW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQotUmV2aWV3ZWQtYnk6IEFuZHJldyBDb29w ZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+DQotDQotLS0tIGEveGVuL2FyY2gveDg2L21t LmMNCi0rKysgYi94ZW4vYXJjaC94ODYvbW0uYw0KLUBAIC00MDU4LDcgKzQwNTgsOCBAQCBzdGF0 aWMgaW50IGNyZWF0ZV9ncmFudF9wdGVfbWFwcGluZygNCi0gfQ0KLSANCi0gc3RhdGljIGludCBk ZXN0cm95X2dyYW50X3B0ZV9tYXBwaW5nKA0KLS0gICAgdWludDY0X3QgYWRkciwgdW5zaWduZWQg bG9uZyBmcmFtZSwgc3RydWN0IGRvbWFpbiAqZCkNCi0rICAgIHVpbnQ2NF90IGFkZHIsIHVuc2ln bmVkIGxvbmcgZnJhbWUsIHVuc2lnbmVkIGludCBncmFudF9wdGVfZmxhZ3MsDQotKyAgICBzdHJ1 Y3QgZG9tYWluICpkKQ0KLSB7DQotICAgICBpbnQgcmMgPSBHTlRTVF9va2F5Ow0KLSAgICAgdm9p ZCAqdmE7DQotQEAgLTQxMDQsMTcgKzQxMDUsMjkgQEAgc3RhdGljIGludCBkZXN0cm95X2dyYW50 X3B0ZV9tYXBwaW5nKA0KLSANCi0gICAgIG9sMWUgPSAqKGwxX3BnZW50cnlfdCAqKXZhOw0KLSAg ICAgDQotLSAgICAvKiBDaGVjayB0aGF0IHRoZSB2aXJ0dWFsIGFkZHJlc3Mgc3VwcGxpZWQgaXMg YWN0dWFsbHkgbWFwcGVkIHRvIGZyYW1lLiAqLw0KLS0gICAgaWYgKCB1bmxpa2VseShsMWVfZ2V0 X3BmbihvbDFlKSAhPSBmcmFtZSkgKQ0KLSsgICAgLyoNCi0rICAgICAqIENoZWNrIHRoYXQgdGhl IFBURSBzdXBwbGllZCBhY3R1YWxseSBtYXBzIGZyYW1lICh3aXRoIGFwcHJvcHJpYXRlDQotKyAg ICAgKiBwZXJtaXNzaW9ucykuDQotKyAgICAgKi8NCi0rICAgIGlmICggdW5saWtlbHkobDFlX2dl dF9wZm4ob2wxZSkgIT0gZnJhbWUpIHx8DQotKyAgICAgICAgIHVubGlrZWx5KChsMWVfZ2V0X2Zs YWdzKG9sMWUpIF4gZ3JhbnRfcHRlX2ZsYWdzKSAmDQotKyAgICAgICAgICAgICAgICAgIChfUEFH RV9QUkVTRU5UIHwgX1BBR0VfUlcpKSApDQotICAgICB7DQotICAgICAgICAgcGFnZV91bmxvY2so cGFnZSk7DQotLSAgICAgICAgZ2RwcmludGsoWEVOTE9HX1dBUk5JTkcsDQotLSAgICAgICAgICAg ICAgICAgIlBURSBlbnRyeSAlIlBSSXB0ZSIgZm9yIGFkZHJlc3MgJSJQUkl4NjQiIGRvZXNuJ3Qg bWF0Y2ggZnJhbWUgJWx4XG4iLA0KLS0gICAgICAgICAgICAgICAgIGwxZV9nZXRfaW50cHRlKG9s MWUpLCBhZGRyLCBmcmFtZSk7DQotKyAgICAgICAgZ2RwcmludGsoWEVOTE9HX0VSUiwNCi0rICAg ICAgICAgICAgICAgICAiUFRFICUiUFJJcHRlIiBhdCAlIlBSSXg2NCIgZG9lc24ndCBtYXRjaCBn cmFudCAoJSJQUklwdGUiKVxuIiwNCi0rICAgICAgICAgICAgICAgICBsMWVfZ2V0X2ludHB0ZShv bDFlKSwgYWRkciwNCi0rICAgICAgICAgICAgICAgICBsMWVfZ2V0X2ludHB0ZShsMWVfZnJvbV9w Zm4oZnJhbWUsIGdyYW50X3B0ZV9mbGFncykpKTsNCi0gICAgICAgICByYyA9IEdOVFNUX2dlbmVy YWxfZXJyb3I7DQotICAgICAgICAgZ290byBmYWlsZWQ7DQotICAgICB9DQotIA0KLSsgICAgaWYg KCB1bmxpa2VseSgobDFlX2dldF9mbGFncyhvbDFlKSBeIGdyYW50X3B0ZV9mbGFncykgJg0KLSsg ICAgICAgICAgICAgICAgICB+KF9QQUdFX0FWQUlMIHwgUEFHRV9DQUNIRV9BVFRSUykpICkNCi0r ICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FSTklORywNCi0rICAgICAgICAgICAgICAgICAiUFRF IGZsYWdzICV4IGF0ICUiUFJJeDY0IiBkb24ndCBtYXRjaCBncmFudCAoJXgpXG4iLA0KLSsgICAg ICAgICAgICAgICAgIGwxZV9nZXRfZmxhZ3Mob2wxZSksIGFkZHIsIGdyYW50X3B0ZV9mbGFncyk7 DQotKw0KLSAgICAgLyogRGVsZXRlIHBhZ2V0YWJsZSBlbnRyeS4gKi8NCi0gICAgIGlmICggdW5s aWtlbHkoIVVQREFURV9FTlRSWQ0KLSAgICAgICAgICAgICAgICAgICAobDEsIA0KLUBAIC00MTIz LDcgKzQxMzYsOCBAQCBzdGF0aWMgaW50IGRlc3Ryb3lfZ3JhbnRfcHRlX21hcHBpbmcoDQotICAg ICAgICAgICAgICAgICAgICAwKSkgKQ0KLSAgICAgew0KLSAgICAgICAgIHBhZ2VfdW5sb2NrKHBh Z2UpOw0KLS0gICAgICAgIGdkcHJpbnRrKFhFTkxPR19XQVJOSU5HLCAiQ2Fubm90IGRlbGV0ZSBQ VEUgZW50cnkgYXQgJXBcbiIsIHZhKTsNCi0rICAgICAgICBnZHByaW50ayhYRU5MT0dfV0FSTklO RywgIkNhbm5vdCBkZWxldGUgUFRFIGVudHJ5IGF0ICUiUFJJeDY0IlxuIiwNCi0rICAgICAgICAg ICAgICAgICBhZGRyKTsNCi0gICAgICAgICByYyA9IEdOVFNUX2dlbmVyYWxfZXJyb3I7DQotICAg ICAgICAgZ290byBmYWlsZWQ7DQotICAgICB9DQotQEAgLTQxOTEsNyArNDIwNSw4IEBAIHN0YXRp YyBpbnQgY3JlYXRlX2dyYW50X3ZhX21hcHBpbmcoDQotIH0NCi0gDQotIHN0YXRpYyBpbnQgcmVw bGFjZV9ncmFudF92YV9tYXBwaW5nKA0KLS0gICAgdW5zaWduZWQgbG9uZyBhZGRyLCB1bnNpZ25l ZCBsb25nIGZyYW1lLCBsMV9wZ2VudHJ5X3QgbmwxZSwgc3RydWN0IHZjcHUgKnYpDQotKyAgICB1 bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxvbmcgZnJhbWUsIHVuc2lnbmVkIGludCBncmFu dF9wdGVfZmxhZ3MsDQotKyAgICBsMV9wZ2VudHJ5X3QgbmwxZSwgc3RydWN0IHZjcHUgKnYpDQot IHsNCi0gICAgIGwxX3BnZW50cnlfdCAqcGwxZSwgb2wxZTsNCi0gICAgIHVuc2lnbmVkIGxvbmcg Z2wxbWZuOw0KLUBAIC00MjI3LDIwICs0MjQyLDMzIEBAIHN0YXRpYyBpbnQgcmVwbGFjZV9ncmFu dF92YV9tYXBwaW5nKA0KLSANCi0gICAgIG9sMWUgPSAqcGwxZTsNCi0gDQotLSAgICAvKiBDaGVj ayB0aGF0IHRoZSB2aXJ0dWFsIGFkZHJlc3Mgc3VwcGxpZWQgaXMgYWN0dWFsbHkgbWFwcGVkIHRv IGZyYW1lLiAqLw0KLS0gICAgaWYgKCB1bmxpa2VseShsMWVfZ2V0X3BmbihvbDFlKSAhPSBmcmFt ZSkgKQ0KLS0gICAgew0KLS0gICAgICAgIGdkcHJpbnRrKFhFTkxPR19XQVJOSU5HLA0KLS0gICAg ICAgICAgICAgICAgICJQVEUgZW50cnkgJWx4IGZvciBhZGRyZXNzICVseCBkb2Vzbid0IG1hdGNo IGZyYW1lICVseFxuIiwNCi0tICAgICAgICAgICAgICAgICBsMWVfZ2V0X3BmbihvbDFlKSwgYWRk ciwgZnJhbWUpOw0KLSsgICAgLyoNCi0rICAgICAqIENoZWNrIHRoYXQgdGhlIHZpcnR1YWwgYWRk cmVzcyBzdXBwbGllZCBpcyBhY3R1YWxseSBtYXBwZWQgdG8gZnJhbWUNCi0rICAgICAqICh3aXRo IGFwcHJvcHJpYXRlIHBlcm1pc3Npb25zKS4NCi0rICAgICAqLw0KLSsgICAgaWYgKCB1bmxpa2Vs eShsMWVfZ2V0X3BmbihvbDFlKSAhPSBmcmFtZSkgfHwNCi0rICAgICAgICAgdW5saWtlbHkoKGwx ZV9nZXRfZmxhZ3Mob2wxZSkgXiBncmFudF9wdGVfZmxhZ3MpICYNCi0rICAgICAgICAgICAgICAg ICAgKF9QQUdFX1BSRVNFTlQgfCBfUEFHRV9SVykpICkNCi0rICAgIHsNCi0rICAgICAgICBnZHBy aW50ayhYRU5MT0dfRVJSLA0KLSsgICAgICAgICAgICAgICAgICJQVEUgJSJQUklwdGUiIGZvciAl bHggZG9lc24ndCBtYXRjaCBncmFudCAoJSJQUklwdGUiKVxuIiwNCi0rICAgICAgICAgICAgICAg ICBsMWVfZ2V0X2ludHB0ZShvbDFlKSwgYWRkciwNCi0rICAgICAgICAgICAgICAgICBsMWVfZ2V0 X2ludHB0ZShsMWVfZnJvbV9wZm4oZnJhbWUsIGdyYW50X3B0ZV9mbGFncykpKTsNCi0gICAgICAg ICByYyA9IEdOVFNUX2dlbmVyYWxfZXJyb3I7DQotICAgICAgICAgZ290byB1bmxvY2tfYW5kX291 dDsNCi0gICAgIH0NCi0gDQotKyAgICBpZiAoIHVubGlrZWx5KChsMWVfZ2V0X2ZsYWdzKG9sMWUp IF4gZ3JhbnRfcHRlX2ZsYWdzKSAmDQotKyAgICAgICAgICAgICAgICAgIH4oX1BBR0VfQVZBSUwg fCBQQUdFX0NBQ0hFX0FUVFJTKSkgKQ0KLSsgICAgICAgIGdkcHJpbnRrKFhFTkxPR19XQVJOSU5H LA0KLSsgICAgICAgICAgICAgICAgICJQVEUgZmxhZ3MgJXggZm9yICUiUFJJeDY0IiBkb24ndCBt YXRjaCBncmFudCAoJXgpXG4iLA0KLSsgICAgICAgICAgICAgICAgIGwxZV9nZXRfZmxhZ3Mob2wx ZSksIGFkZHIsIGdyYW50X3B0ZV9mbGFncyk7DQotKw0KLSAgICAgLyogRGVsZXRlIHBhZ2V0YWJs ZSBlbnRyeS4gKi8NCi0gICAgIGlmICggdW5saWtlbHkoIVVQREFURV9FTlRSWShsMSwgcGwxZSwg b2wxZSwgbmwxZSwgZ2wxbWZuLCB2LCAwKSkgKQ0KLSAgICAgew0KLS0gICAgICAgIGdkcHJpbnRr KFhFTkxPR19XQVJOSU5HLCAiQ2Fubm90IGRlbGV0ZSBQVEUgZW50cnkgYXQgJXBcbiIsIHBsMWUp Ow0KLSsgICAgICAgIGdkcHJpbnRrKFhFTkxPR19XQVJOSU5HLCAiQ2Fubm90IGRlbGV0ZSBQVEUg ZW50cnkgZm9yICUiUFJJeDY0IlxuIiwNCi0rICAgICAgICAgICAgICAgICBhZGRyKTsNCi0gICAg ICAgICByYyA9IEdOVFNUX2dlbmVyYWxfZXJyb3I7DQotICAgICAgICAgZ290byB1bmxvY2tfYW5k X291dDsNCi0gICAgIH0NCi1AQCAtNDI1NCw5ICs0MjgyLDExIEBAIHN0YXRpYyBpbnQgcmVwbGFj ZV9ncmFudF92YV9tYXBwaW5nKA0KLSB9DQotIA0KLSBzdGF0aWMgaW50IGRlc3Ryb3lfZ3JhbnRf dmFfbWFwcGluZygNCi0tICAgIHVuc2lnbmVkIGxvbmcgYWRkciwgdW5zaWduZWQgbG9uZyBmcmFt ZSwgc3RydWN0IHZjcHUgKnYpDQotKyAgICB1bnNpZ25lZCBsb25nIGFkZHIsIHVuc2lnbmVkIGxv bmcgZnJhbWUsIHVuc2lnbmVkIGludCBncmFudF9wdGVfZmxhZ3MsDQotKyAgICBzdHJ1Y3QgdmNw dSAqdikNCi0gew0KLS0gICAgcmV0dXJuIHJlcGxhY2VfZ3JhbnRfdmFfbWFwcGluZyhhZGRyLCBm cmFtZSwgbDFlX2VtcHR5KCksIHYpOw0KLSsgICAgcmV0dXJuIHJlcGxhY2VfZ3JhbnRfdmFfbWFw cGluZyhhZGRyLCBmcmFtZSwgZ3JhbnRfcHRlX2ZsYWdzLA0KLSsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsMWVfZW1wdHkoKSwgdik7DQotIH0NCi0gDQotIHN0YXRpYyBpbnQg Y3JlYXRlX2dyYW50X3AybV9tYXBwaW5nKHVpbnQ2NF90IGFkZHIsIHVuc2lnbmVkIGxvbmcgZnJh bWUsDQotQEAgLTQzNTEsMjAgKzQzODEsMzkgQEAgaW50IHJlcGxhY2VfZ3JhbnRfaG9zdF9tYXBw aW5nKA0KLSAgICAgdW5zaWduZWQgbG9uZyBnbDFtZm47DQotICAgICBzdHJ1Y3QgcGFnZV9pbmZv ICpsMXBnOw0KLSAgICAgaW50IHJjOw0KLSsgICAgdW5zaWduZWQgaW50IGdyYW50X3B0ZV9mbGFn czsNCi0gICAgIA0KLSAgICAgaWYgKCBwYWdpbmdfbW9kZV9leHRlcm5hbChjdXJyZW50LT5kb21h aW4pICkNCi0gICAgICAgICByZXR1cm4gcmVwbGFjZV9ncmFudF9wMm1fbWFwcGluZyhhZGRyLCBm cmFtZSwgbmV3X2FkZHIsIGZsYWdzKTsNCi0gDQotKyAgICBncmFudF9wdGVfZmxhZ3MgPQ0KLSsg ICAgICAgIF9QQUdFX1BSRVNFTlQgfCBfUEFHRV9BQ0NFU1NFRCB8IF9QQUdFX0RJUlRZIHwgX1BB R0VfR05UVEFCIHwgX1BBR0VfTlg7DQotKw0KLSsgICAgaWYgKCBmbGFncyAmIEdOVE1BUF9hcHBs aWNhdGlvbl9tYXAgKQ0KLSsgICAgICAgIGdyYW50X3B0ZV9mbGFncyB8PSBfUEFHRV9VU0VSOw0K LSsgICAgaWYgKCAhKGZsYWdzICYgR05UTUFQX3JlYWRvbmx5KSApDQotKyAgICAgICAgZ3JhbnRf cHRlX2ZsYWdzIHw9IF9QQUdFX1JXOw0KLSsgICAgLyoNCi0rICAgICAqIE9uIHRvcCBvZiB0aGUg ZXhwbGljaXQgc2V0dGluZ3MgZG9uZSBieSBjcmVhdGVfZ3JhbnRfaG9zdF9tYXBwaW5nKCkNCi0r ICAgICAqIGFsc28gb3Blbi1jb2RlIHJlbGV2YW50IHBhcnRzIG9mIGFkanVzdF9ndWVzdF9sMWUo KS4gRG9uJ3QgbWlycm9yDQotKyAgICAgKiBhdmFpbGFibGUgYW5kIGNhY2hhYmlsaXR5IGZsYWdz LCB0aG91Z2guDQotKyAgICAgKi8NCi0rICAgIGlmICggIWlzX3B2XzMyYml0X2RvbWFpbihjdXJy LT5kb21haW4pICkNCi0rICAgICAgICBncmFudF9wdGVfZmxhZ3MgfD0gKGdyYW50X3B0ZV9mbGFn cyAmIF9QQUdFX1VTRVIpDQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgID8gX1BBR0VfR0xP QkFMDQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgIDogX1BBR0VfR1VFU1RfS0VSTkVMIHwg X1BBR0VfVVNFUjsNCi0rDQotICAgICBpZiAoIGZsYWdzICYgR05UTUFQX2NvbnRhaW5zX3B0ZSAp DQotICAgICB7DQotICAgICAgICAgaWYgKCAhbmV3X2FkZHIgKQ0KLS0gICAgICAgICAgICByZXR1 cm4gZGVzdHJveV9ncmFudF9wdGVfbWFwcGluZyhhZGRyLCBmcmFtZSwgY3Vyci0+ZG9tYWluKTsN Ci0rICAgICAgICAgICAgcmV0dXJuIGRlc3Ryb3lfZ3JhbnRfcHRlX21hcHBpbmcoYWRkciwgZnJh bWUsIGdyYW50X3B0ZV9mbGFncywNCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgY3Vyci0+ZG9tYWluKTsNCi0gICAgICAgICANCi0gICAgICAgICByZXR1cm4g R05UU1RfZ2VuZXJhbF9lcnJvcjsNCi0gICAgIH0NCi0gDQotICAgICBpZiAoICFuZXdfYWRkciAp DQotLSAgICAgICAgcmV0dXJuIGRlc3Ryb3lfZ3JhbnRfdmFfbWFwcGluZyhhZGRyLCBmcmFtZSwg Y3Vycik7DQotKyAgICAgICAgcmV0dXJuIGRlc3Ryb3lfZ3JhbnRfdmFfbWFwcGluZyhhZGRyLCBm cmFtZSwgZ3JhbnRfcHRlX2ZsYWdzLCBjdXJyKTsNCi0gDQotICAgICBwbDFlID0gZ3Vlc3RfbWFw X2wxZShuZXdfYWRkciwgJmdsMW1mbik7DQotICAgICBpZiAoICFwbDFlICkNCi1AQCAtNDQxMiw3 ICs0NDYxLDcgQEAgaW50IHJlcGxhY2VfZ3JhbnRfaG9zdF9tYXBwaW5nKA0KLSAgICAgcHV0X3Bh Z2UobDFwZyk7DQotICAgICBndWVzdF91bm1hcF9sMWUocGwxZSk7DQotIA0KLS0gICAgcmMgPSBy ZXBsYWNlX2dyYW50X3ZhX21hcHBpbmcoYWRkciwgZnJhbWUsIG9sMWUsIGN1cnIpOw0KLSsgICAg cmMgPSByZXBsYWNlX2dyYW50X3ZhX21hcHBpbmcoYWRkciwgZnJhbWUsIGdyYW50X3B0ZV9mbGFn cywgb2wxZSwgY3Vycik7DQotICAgICBpZiAoIHJjICYmICFwYWdpbmdfbW9kZV9yZWZjb3VudHMo Y3Vyci0+ZG9tYWluKSApDQotICAgICAgICAgcHV0X3BhZ2VfZnJvbV9sMWUob2wxZSwgY3Vyci0+ ZG9tYWluKTsNCi0gDQpkaWZmIC0tZ2l0IGEvbWFpbi94ZW4veHNhMjM1LTQuOS5wYXRjaCBiL21h aW4veGVuL3hzYTIzNS00LjkucGF0Y2gNCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXgg MjVkZDY1MDc1NS4uMDAwMDAwMDAwMA0KLS0tIGEvbWFpbi94ZW4veHNhMjM1LTQuOS5wYXRjaA0K KysrIC9kZXYvbnVsbA0KQEAgLTEsNDkgKzAsMCBAQA0KLUZyb206IEphbiBCZXVsaWNoIDxqYmV1 bGljaEBzdXNlLmNvbT4NCi1TdWJqZWN0OiBhcm0vbW06IHJlbGVhc2UgZ3JhbnQgbG9jayBvbiB4 ZW5tZW1fYWRkX3RvX3BoeXNtYXBfb25lKCkgZXJyb3IgcGF0aHMNCi0NCi1Db21taXQgNTUwMjFm ZjlhYiAoInhlbi9hcm06IGFkZF90b19waHlzbWFwX29uZTogQXZvaWQgdG8gbWFwIG1mbiAwIGlm DQotYW4gZXJyb3Igb2NjdXJzIikgaW50cm9kdWNlZCBlcnJvciBwYXRocyBub3QgcmVsZWFzaW5n IHRoZSBncmFudCB0YWJsZQ0KLWxvY2suIFJlcGxhY2UgdGhlbSBieSBhIHN1aXRhYmxlIGNoZWNr IGFmdGVyIHRoZSBsb2NrIHdhcyBkcm9wcGVkLg0KLQ0KLVRoaXMgaXMgWFNBLTIzNS4NCi0NCi1S ZXBvcnRlZC1ieTogV2VpIExpdSA8d2VpLmxpdTJAY2l0cml4LmNvbT4NCi1TaWduZWQtb2ZmLWJ5 OiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQotUmV2aWV3ZWQtYnk6IEp1bGllbiBH cmFsbCA8anVsaWVuLmdyYWxsQGFybS5jb20+DQotDQotLS0tIGEveGVuL2FyY2gvYXJtL21tLmMN Ci0rKysgYi94ZW4vYXJjaC9hcm0vbW0uYw0KLUBAIC0xMTY0LDcgKzExNjQsNyBAQCBpbnQgeGVu bWVtX2FkZF90b19waHlzbWFwX29uZSgNCi0gICAgICAgICAgICAgaWYgKCBpZHggPCBucl9zdGF0 dXNfZnJhbWVzKGQtPmdyYW50X3RhYmxlKSApDQotICAgICAgICAgICAgICAgICBtZm4gPSB2aXJ0 X3RvX21mbihkLT5ncmFudF90YWJsZS0+c3RhdHVzW2lkeF0pOw0KLSAgICAgICAgICAgICBlbHNl DQotLSAgICAgICAgICAgICAgICByZXR1cm4gLUVJTlZBTDsNCi0rICAgICAgICAgICAgICAgIG1m biA9IG1mbl94KElOVkFMSURfTUZOKTsNCi0gICAgICAgICB9DQotICAgICAgICAgZWxzZQ0KLSAg ICAgICAgIHsNCi1AQCAtMTE3NSwxNCArMTE3NSwyMSBAQCBpbnQgeGVubWVtX2FkZF90b19waHlz bWFwX29uZSgNCi0gICAgICAgICAgICAgaWYgKCBpZHggPCBucl9ncmFudF9mcmFtZXMoZC0+Z3Jh bnRfdGFibGUpICkNCi0gICAgICAgICAgICAgICAgIG1mbiA9IHZpcnRfdG9fbWZuKGQtPmdyYW50 X3RhYmxlLT5zaGFyZWRfcmF3W2lkeF0pOw0KLSAgICAgICAgICAgICBlbHNlDQotLSAgICAgICAg ICAgICAgICByZXR1cm4gLUVJTlZBTDsNCi0rICAgICAgICAgICAgICAgIG1mbiA9IG1mbl94KElO VkFMSURfTUZOKTsNCi0gICAgICAgICB9DQotIA0KLS0gICAgICAgIGQtPmFyY2guZ3JhbnRfdGFi bGVfZ2ZuW2lkeF0gPSBnZm47DQotKyAgICAgICAgaWYgKCBtZm4gIT0gbWZuX3goSU5WQUxJRF9N Rk4pICkNCi0rICAgICAgICB7DQotKyAgICAgICAgICAgIGQtPmFyY2guZ3JhbnRfdGFibGVfZ2Zu W2lkeF0gPSBnZm47DQotIA0KLS0gICAgICAgIHQgPSBwMm1fcmFtX3J3Ow0KLSsgICAgICAgICAg ICB0ID0gcDJtX3JhbV9ydzsNCi0rICAgICAgICB9DQotIA0KLSAgICAgICAgIGdyYW50X3dyaXRl X3VubG9jayhkLT5ncmFudF90YWJsZSk7DQotKw0KLSsgICAgICAgIGlmICggbWZuID09IG1mbl94 KElOVkFMSURfTUZOKSApDQotKyAgICAgICAgICAgIHJldHVybiAtRUlOVkFMOw0KLSsNCi0gICAg ICAgICBicmVhazsNCi0gICAgIGNhc2UgWEVOTUFQU1BBQ0Vfc2hhcmVkX2luZm86DQotICAgICAg ICAgaWYgKCBpZHggIT0gMCApDQpkaWZmIC0tZ2l0IGEvbWFpbi94ZW4veHNhMjM2LTQuOS5wYXRj aCBiL21haW4veGVuL3hzYTIzNi00LjkucGF0Y2gNCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NA0K aW5kZXggMjAzMDI1ZGJhZS4uMDAwMDAwMDAwMA0KLS0tIGEvbWFpbi94ZW4veHNhMjM2LTQuOS5w YXRjaA0KKysrIC9kZXYvbnVsbA0KQEAgLTEsNjYgKzAsMCBAQA0KLUZyb206IEphbiBCZXVsaWNo IDxqYmV1bGljaEBzdXNlLmNvbT4NCi1TdWJqZWN0OiBnbnR0YWI6IGZpeCBwaW4gY291bnQgLyBw YWdlIHJlZmVyZW5jZSByYWNlDQotDQotRHJvcHBpbmcgcGFnZSByZWZlcmVuY2VzIGJlZm9yZSBk ZWNyZW1lbnRpbmcgcGluIGNvdW50cyBpcyBhIGJhZCBpZGVhDQotaWYgYXNzdW1wdGlvbnMgYXJl IGJlaW5nIG1hZGUgdGhhdCBhIG5vbi16ZXJvIHBpbiBjb3VudCBpbXBsaWVzIGEgdmFsaWQNCi1w YWdlLiBGaXggdGhlIG9yZGVyIG9mIG9wZXJhdGlvbnMgaW4gZ250dGFiX2NvcHlfcmVsZWFzZV9i dWYoKSwgYnV0IGF0DQotdGhlIHNhbWUgdGltZSBhbHNvIHJlbW92ZSB0aGUgYXNzZXJ0aW9uIHRo YXQgd2FzIGZvdW5kIHRvIHRyaWdnZXI6DQotbWFwX2dyYW50X3JlZigpIGFsc28gaGFzIHRoZSBw b3RlbnRpYWwgb2YgY2F1c2luZyBhIHJhY2UgaGVyZSwgYW5kDQotY2hhbmdpbmcgdGhlIG9yZGVy IG9mIG9wZXJhdGlvbnMgdGhlcmUgd291bGQgbGlrZWx5IGJlIHF1aXRlIGEgYml0IG1vcmUNCi1p bnZvbHZlZC4NCi0NCi1UaGlzIGlzIFhTQS0yMzYuDQotDQotUmVwb3J0ZWQtYnk6IFBhd2VsIFdp ZWN6b3JraWV3aWN6IDx3aXBhd2VsQGFtYXpvbi5kZT4NCi1TaWduZWQtb2ZmLWJ5OiBKYW4gQmV1 bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQotUmV2aWV3ZWQtYnk6IEFuZHJldyBDb29wZXIgPGFu ZHJldy5jb29wZXIzQGNpdHJpeC5jb20+DQotDQotLS0tIGEveGVuL2NvbW1vbi9ncmFudF90YWJs ZS5jDQotKysrIGIveGVuL2NvbW1vbi9ncmFudF90YWJsZS5jDQotQEAgLTIzMzAsOSArMjMzMCwy MCBAQCBfX2FjcXVpcmVfZ3JhbnRfZm9yX2NvcHkoDQotICAgICAgICAgdGQgPSBwYWdlX2dldF9v d25lcl9hbmRfcmVmZXJlbmNlKCpwYWdlKTsNCi0gICAgICAgICAvKg0KLSAgICAgICAgICAqIGFj dC0+cGluIGJlaW5nIG5vbi16ZXJvIHNob3VsZCBndWFyYW50ZWUgdGhlIHBhZ2UgdG8gaGF2ZSBh DQotLSAgICAgICAgICogbm9uLXplcm8gcmVmY291bnQgYW5kIGhlbmNlIGEgdmFsaWQgb3duZXIu DQotKyAgICAgICAgICogbm9uLXplcm8gcmVmY291bnQgYW5kIGhlbmNlIGEgdmFsaWQgb3duZXIg KG1hdGNoaW5nIHRoZSBvbmUgb24NCi0rICAgICAgICAgKiByZWNvcmQpLCB3aXRoIG9uZSBleGNl cHRpb246IElmIHRoZSBvd25pbmcgZG9tYWluIGlzIGR5aW5nIHdlDQotKyAgICAgICAgICogaGFk IGJldHRlciBub3QgbWFrZSBpbXBsaWNhdGlvbnMgZnJvbSBwaW4gY291bnQgKG1hcF9ncmFudF9y ZWYoKQ0KLSsgICAgICAgICAqIHVwZGF0ZXMgcGluIGNvdW50cyBiZWZvcmUgb2J0YWluaW5nIHBh Z2UgcmVmZXJlbmNlcywgZm9yDQotKyAgICAgICAgICogZXhhbXBsZSkuDQotICAgICAgICAgICov DQotLSAgICAgICAgQVNTRVJUKHRkKTsNCi0rICAgICAgICBpZiAoIHRkICE9IHJkIHx8IHJkLT5p c19keWluZyApDQotKyAgICAgICAgew0KLSsgICAgICAgICAgICBpZiAoIHRkICkNCi0rICAgICAg ICAgICAgICAgIHB1dF9wYWdlKCpwYWdlKTsNCi0rICAgICAgICAgICAgKnBhZ2UgPSBOVUxMOw0K LSsgICAgICAgICAgICByYyA9IEdOVFNUX2JhZF9kb21haW47DQotKyAgICAgICAgICAgIGdvdG8g dW5sb2NrX291dF9jbGVhcjsNCi0rICAgICAgICB9DQotICAgICB9DQotIA0KLSAgICAgYWN0LT5w aW4gKz0gcmVhZG9ubHkgPyBHTlRQSU5faHN0cl9pbmMgOiBHTlRQSU5faHN0d19pbmM7DQotQEAg LTI0NTEsNiArMjQ2MiwxMSBAQCBzdGF0aWMgdm9pZCBnbnR0YWJfY29weV9yZWxlYXNlX2J1Zihz dHJ1DQotICAgICAgICAgdW5tYXBfZG9tYWluX3BhZ2UoYnVmLT52aXJ0KTsNCi0gICAgICAgICBi dWYtPnZpcnQgPSBOVUxMOw0KLSAgICAgfQ0KLSsgICAgaWYgKCBidWYtPmhhdmVfZ3JhbnQgKQ0K LSsgICAgew0KLSsgICAgICAgIF9fcmVsZWFzZV9ncmFudF9mb3JfY29weShidWYtPmRvbWFpbiwg YnVmLT5wdHIudS5yZWYsIGJ1Zi0+cmVhZF9vbmx5KTsNCi0rICAgICAgICBidWYtPmhhdmVfZ3Jh bnQgPSAwOw0KLSsgICAgfQ0KLSAgICAgaWYgKCBidWYtPmhhdmVfdHlwZSApDQotICAgICB7DQot ICAgICAgICAgcHV0X3BhZ2VfdHlwZShidWYtPnBhZ2UpOw0KLUBAIC0yNDYxLDExICsyNDc3LDYg QEAgc3RhdGljIHZvaWQgZ250dGFiX2NvcHlfcmVsZWFzZV9idWYoc3RydQ0KLSAgICAgICAgIHB1 dF9wYWdlKGJ1Zi0+cGFnZSk7DQotICAgICAgICAgYnVmLT5wYWdlID0gTlVMTDsNCi0gICAgIH0N Ci0tICAgIGlmICggYnVmLT5oYXZlX2dyYW50ICkNCi0tICAgIHsNCi0tICAgICAgICBfX3JlbGVh c2VfZ3JhbnRfZm9yX2NvcHkoYnVmLT5kb21haW4sIGJ1Zi0+cHRyLnUucmVmLCBidWYtPnJlYWRf b25seSk7DQotLSAgICAgICAgYnVmLT5oYXZlX2dyYW50ID0gMDsNCi0tICAgIH0NCi0gfQ0KLSAN Ci0gc3RhdGljIGludCBnbnR0YWJfY29weV9jbGFpbV9idWYoY29uc3Qgc3RydWN0IGdudHRhYl9j b3B5ICpvcCwNCmRpZmYgLS1naXQgYS9tYWluL3hlbi94c2EyMzctMS5wYXRjaCBiL21haW4veGVu L3hzYTIzNy0xLnBhdGNoDQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IDdjOWRmZjk2 NzIuLjAwMDAwMDAwMDANCi0tLSBhL21haW4veGVuL3hzYTIzNy0xLnBhdGNoDQorKysgL2Rldi9u dWxsDQpAQCAtMSwyNyArMCwwIEBADQotRnJvbTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2Uu Y29tPg0KLVN1YmplY3Q6IHg4NjogZG9uJ3QgYWxsb3cgTVNJIHBJUlEgbWFwcGluZyBvbiB1bm93 bmVkIGRldmljZQ0KLQ0KLU1TSSBzZXR1cCBzaG91bGQgYmUgcGVybWl0dGVkIG9ubHkgZm9yIGV4 aXN0aW5nIGRldmljZXMgb3duZWQgYnkgdGhlDQotcmVzcGVjdGl2ZSBndWVzdCAodGhlIG9wZXJh dGlvbiBtYXkgc3RpbGwgYmUgY2FycmllZCBvdXQgYnkgdGhlIGRvbWFpbg0KLWNvbnRyb2xsaW5n IHRoYXQgZ3Vlc3QpLg0KLQ0KLVRoaXMgaXMgcGFydCBvZiBYU0EtMjM3Lg0KLQ0KLVJlcG9ydGVk LWJ5OiBIVzQyIDxodzQyQGlwc3Vtai5kZT4NCi1TaWduZWQtb2ZmLWJ5OiBKYW4gQmV1bGljaCA8 amJldWxpY2hAc3VzZS5jb20+DQotUmV2aWV3ZWQtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5j b29wZXIzQGNpdHJpeC5jb20+DQotDQotLS0tIGEveGVuL2FyY2gveDg2L2lycS5jDQotKysrIGIv eGVuL2FyY2gveDg2L2lycS5jDQotQEAgLTE5NjMsNyArMTk2MywxMCBAQCBpbnQgbWFwX2RvbWFp bl9waXJxKA0KLSAgICAgICAgIGlmICggIWNwdV9oYXNfYXBpYyApDQotICAgICAgICAgICAgIGdv dG8gZG9uZTsNCi0gDQotLSAgICAgICAgcGRldiA9IHBjaV9nZXRfcGRldihtc2ktPnNlZywgbXNp LT5idXMsIG1zaS0+ZGV2Zm4pOw0KLSsgICAgICAgIHBkZXYgPSBwY2lfZ2V0X3BkZXZfYnlfZG9t YWluKGQsIG1zaS0+c2VnLCBtc2ktPmJ1cywgbXNpLT5kZXZmbik7DQotKyAgICAgICAgaWYgKCAh cGRldiApDQotKyAgICAgICAgICAgIGdvdG8gZG9uZTsNCi0rDQotICAgICAgICAgcmV0ID0gcGNp X2VuYWJsZV9tc2kobXNpLCAmbXNpX2Rlc2MpOw0KLSAgICAgICAgIGlmICggcmV0ICkNCi0gICAg ICAgICB7DQpkaWZmIC0tZ2l0IGEvbWFpbi94ZW4veHNhMjM3LTIucGF0Y2ggYi9tYWluL3hlbi94 c2EyMzctMi5wYXRjaA0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCAwYWRkNzA0NTg3 Li4wMDAwMDAwMDAwDQotLS0gYS9tYWluL3hlbi94c2EyMzctMi5wYXRjaA0KKysrIC9kZXYvbnVs bA0KQEAgLTEsNjYgKzAsMCBAQA0KLUZyb206IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNv bT4NCi1TdWJqZWN0OiB4ODY6IGVuZm9yY2UgcHJvcGVyIHByaXZpbGVnZSB3aGVuICh1biltYXBw aW5nIHBJUlEtcw0KLQ0KLShVbiltYXBwaW5nIG9mIElSUXMsIGp1c3QgbGlrZSBvdGhlciBSRVNP VVJDRV9fQUREKiAvIFJFU09VUkNFX19SRU1PVkUqDQotYWN0aW9ucyAoaW4gRkxBU0sgdGVybXMp IHNob3VsZCBiZSBYU01fRE1fUFJJViByYXRoZXIgdGhhbiBYU01fVEFSR0VULg0KLVRoaXMgaW4g dHVybiByZXF1aXJlcyBieXBhc3NpbmcgdGhlIFhTTSBjaGVjayBpbiBwaHlzZGV2X3VubWFwX3Bp cnEoKQ0KLWZvciB0aGUgSFZNIGVtdWlycSBjYXNlIGp1c3QgbGlrZSBpcyBiZWluZyBkb25lIGlu IHBoeXNkZXZfbWFwX3BpcnEoKS4NCi1UaGUgcHJpbWFyeSBnb2FsIHNlY3VyaXR5IHdpc2UsIGhv d2V2ZXIsIGlzIHRvIG5vIGxvbmdlciBhbGxvdyBIVk0NCi1ndWVzdHMsIGJ5IHNwZWNpZnlpbmcg dGhlaXIgb3duIGRvbWFpbiBJRCBpbnN0ZWFkIG9mIERPTUlEX1NFTEYsIHRvDQotZW50ZXIgY29k ZSBwYXRocyBpbnRlbmRlZCBmb3IgUFYgZ3Vlc3QgYW5kIHRoZSBjb250cm9sIGRvbWFpbnMgb2Yg SFZNDQotZ3Vlc3RzIG9ubHkuDQotDQotVGhpcyBpcyBwYXJ0IG9mIFhTQS0yMzcuDQotDQotUmVw b3J0ZWQtYnk6IEhXNDIgPGh3NDJAaXBzdW1qLmRlPg0KLVNpZ25lZC1vZmYtYnk6IEphbiBCZXVs aWNoIDxqYmV1bGljaEBzdXNlLmNvbT4NCi1SZXZpZXdlZC1ieTogR2VvcmdlIER1bmxhcCA8Z2Vv cmdlLmR1bmxhcEBjaXRyaXguY29tPg0KLQ0KLS0tLSBhL3hlbi9hcmNoL3g4Ni9waHlzZGV2LmMN Ci0rKysgYi94ZW4vYXJjaC94ODYvcGh5c2Rldi5jDQotQEAgLTExMSw3ICsxMTEsNyBAQCBpbnQg cGh5c2Rldl9tYXBfcGlycShkb21pZF90IGRvbWlkLCBpbnQNCi0gICAgIGlmICggZCA9PSBOVUxM ICkNCi0gICAgICAgICByZXR1cm4gLUVTUkNIOw0KLSANCi0tICAgIHJldCA9IHhzbV9tYXBfZG9t YWluX3BpcnEoWFNNX1RBUkdFVCwgZCk7DQotKyAgICByZXQgPSB4c21fbWFwX2RvbWFpbl9waXJx KFhTTV9ETV9QUklWLCBkKTsNCi0gICAgIGlmICggcmV0ICkNCi0gICAgICAgICBnb3RvIGZyZWVf ZG9tYWluOw0KLSANCi1AQCAtMjU2LDEzICsyNTYsMTQgQEAgaW50IHBoeXNkZXZfbWFwX3BpcnEo ZG9taWRfdCBkb21pZCwgaW50DQotIGludCBwaHlzZGV2X3VubWFwX3BpcnEoZG9taWRfdCBkb21p ZCwgaW50IHBpcnEpDQotIHsNCi0gICAgIHN0cnVjdCBkb21haW4gKmQ7DQotLSAgICBpbnQgcmV0 Ow0KLSsgICAgaW50IHJldCA9IDA7DQotIA0KLSAgICAgZCA9IHJjdV9sb2NrX2RvbWFpbl9ieV9h bnlfaWQoZG9taWQpOw0KLSAgICAgaWYgKCBkID09IE5VTEwgKQ0KLSAgICAgICAgIHJldHVybiAt RVNSQ0g7DQotIA0KLS0gICAgcmV0ID0geHNtX3VubWFwX2RvbWFpbl9waXJxKFhTTV9UQVJHRVQs IGQpOw0KLSsgICAgaWYgKCBkb21pZCAhPSBET01JRF9TRUxGIHx8ICFpc19odm1fZG9tYWluKGQp IHx8ICFoYXNfcGlycShkKSApDQotKyAgICAgICAgcmV0ID0geHNtX3VubWFwX2RvbWFpbl9waXJx KFhTTV9ETV9QUklWLCBkKTsNCi0gICAgIGlmICggcmV0ICkNCi0gICAgICAgICBnb3RvIGZyZWVf ZG9tYWluOw0KLSANCi0tLS0gYS94ZW4vaW5jbHVkZS94c20vZHVtbXkuaA0KLSsrKyBiL3hlbi9p bmNsdWRlL3hzbS9kdW1teS5oDQotQEAgLTQ1Myw3ICs0NTMsNyBAQCBzdGF0aWMgWFNNX0lOTElO RSBjaGFyICp4c21fc2hvd19pcnFfc2lkDQotIA0KLSBzdGF0aWMgWFNNX0lOTElORSBpbnQgeHNt X21hcF9kb21haW5fcGlycShYU01fREVGQVVMVF9BUkcgc3RydWN0IGRvbWFpbiAqZCkNCi0gew0K LS0gICAgWFNNX0FTU0VSVF9BQ1RJT04oWFNNX1RBUkdFVCk7DQotKyAgICBYU01fQVNTRVJUX0FD VElPTihYU01fRE1fUFJJVik7DQotICAgICByZXR1cm4geHNtX2RlZmF1bHRfYWN0aW9uKGFjdGlv biwgY3VycmVudC0+ZG9tYWluLCBkKTsNCi0gfQ0KLSANCi1AQCAtNDY1LDcgKzQ2NSw3IEBAIHN0 YXRpYyBYU01fSU5MSU5FIGludCB4c21fbWFwX2RvbWFpbl9pcnENCi0gDQotIHN0YXRpYyBYU01f SU5MSU5FIGludCB4c21fdW5tYXBfZG9tYWluX3BpcnEoWFNNX0RFRkFVTFRfQVJHIHN0cnVjdCBk b21haW4gKmQpDQotIHsNCi0tICAgIFhTTV9BU1NFUlRfQUNUSU9OKFhTTV9UQVJHRVQpOw0KLSsg ICAgWFNNX0FTU0VSVF9BQ1RJT04oWFNNX0RNX1BSSVYpOw0KLSAgICAgcmV0dXJuIHhzbV9kZWZh dWx0X2FjdGlvbihhY3Rpb24sIGN1cnJlbnQtPmRvbWFpbiwgZCk7DQotIH0NCi0gDQpkaWZmIC0t Z2l0IGEvbWFpbi94ZW4veHNhMjM3LTMucGF0Y2ggYi9tYWluL3hlbi94c2EyMzctMy5wYXRjaA0K ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCA1YzY5YzQ4MjY1Li4wMDAwMDAwMDAwDQot LS0gYS9tYWluL3hlbi94c2EyMzctMy5wYXRjaA0KKysrIC9kZXYvbnVsbA0KQEAgLTEsNTUgKzAs MCBAQA0KLUZyb206IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4NCi1TdWJqZWN0OiB4 ODYvTVNJOiBkaXNhbGxvdyByZWR1bmRhbnQgZW5hYmxpbmcNCi0NCi1BdCB0aGUgbW9tZW50LCBY ZW4gYXR0ZW1wdHMgdG8gYWxsb3cgcmVkdW5kYW50IGVuYWJsaW5nIG9mIE1TSSBieQ0KLWhhdmlu ZyBwY2lfZW5hYmxlX21zaSgpIHJldHVybiAwLCBhbmQgcG9pbnQgdG8gdGhlIGV4aXN0aW5nIE1T SQ0KLWRlc2NyaXB0b3IsIHdoZW4gdGhlIG1zaSBhbHJlYWR5IGV4aXN0cy4NCi0NCi1VbmZvcnR1 bmF0ZWx5LCBpZiBzdWJzZXF1ZW50IGVycm9ycyBhcmUgZW5jb3VudGVyZWQsIHRoZSBjbGVhbnVw DQotcGF0aHMgYXNzdW1lIHBjaV9lbmFibGVfbXNpKCkgaGFkIGRvbmUgZnVsbCBpbml0aWFsaXph dGlvbiwgYW5kDQotaGVuY2UgdW5kbyBldmVyeXRoaW5nIHRoYXQgd2FzIGFzc3VtZWQgdG8gYmUg ZG9uZSBieSB0aGF0DQotZnVuY3Rpb24gd2l0aG91dCBhbHNvIHVuZG9pbmcgb3RoZXIgc2V0dXAg dGhhdCB3b3VsZCBub3JtYWxseQ0KLW9jY3VyIG9ubHkgYWZ0ZXIgdGhhdCBmdW5jdGlvbiB3YXMg Y2FsbGVkIChpbiBtYXBfZG9tYWluX3BpcnEoKQ0KLWl0c2VsZikuDQotDQotUmF0aGVyIHRoYW4g dHJ5IHRvIG1ha2UgdGhlIHJlZHVuZGFudCBlbmFibGluZyBjYXNlIHdvcmsgcHJvcGVybHksIGp1 c3QNCi1mb3JiaWQgaXQgZW50aXJlbHkgYnkgaGF2aW5nIHBjaV9lbmFibGVfbXNpKCkgcmV0dXJu IC1FRVhJU1Qgd2hlbiBNU0kNCi1pcyBhbHJlYWR5IHNldCB1cC4NCi0NCi1UaGlzIGlzIHBhcnQg b2YgWFNBLTIzNy4NCi0NCi1SZXBvcnRlZC1ieTogSFc0MiA8aHc0MkBpcHN1bWouZGU+DQotU2ln bmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPg0KLVJldmlld2VkLWJ5 OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29tPg0KLVJldmlld2VkLWJ5 OiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGNpdHJpeC5jb20+DQotDQotLS0tIGEveGVu L2FyY2gveDg2L21zaS5jDQotKysrIGIveGVuL2FyY2gveDg2L21zaS5jDQotQEAgLTEwNTAsMTEg KzEwNTAsMTAgQEAgc3RhdGljIGludCBfX3BjaV9lbmFibGVfbXNpKHN0cnVjdCBtc2lfaQ0KLSAg ICAgb2xkX2Rlc2MgPSBmaW5kX21zaV9lbnRyeShwZGV2LCBtc2ktPmlycSwgUENJX0NBUF9JRF9N U0kpOw0KLSAgICAgaWYgKCBvbGRfZGVzYyApDQotICAgICB7DQotLSAgICAgICAgcHJpbnRrKFhF TkxPR19XQVJOSU5HICJpcnEgJWQgYWxyZWFkeSBtYXBwZWQgdG8gTVNJIG9uICUwNHg6JTAyeDol MDJ4LiV1XG4iLA0KLSsgICAgICAgIHByaW50ayhYRU5MT0dfRVJSICJpcnEgJWQgYWxyZWFkeSBt YXBwZWQgdG8gTVNJIG9uICUwNHg6JTAyeDolMDJ4LiV1XG4iLA0KLSAgICAgICAgICAgICAgICBt c2ktPmlycSwgbXNpLT5zZWcsIG1zaS0+YnVzLA0KLSAgICAgICAgICAgICAgICBQQ0lfU0xPVCht c2ktPmRldmZuKSwgUENJX0ZVTkMobXNpLT5kZXZmbikpOw0KLS0gICAgICAgICpkZXNjID0gb2xk X2Rlc2M7DQotLSAgICAgICAgcmV0dXJuIDA7DQotKyAgICAgICAgcmV0dXJuIC1FRVhJU1Q7DQot ICAgICB9DQotIA0KLSAgICAgb2xkX2Rlc2MgPSBmaW5kX21zaV9lbnRyeShwZGV2LCAtMSwgUENJ X0NBUF9JRF9NU0lYKTsNCi1AQCAtMTExOCwxMSArMTExNywxMCBAQCBzdGF0aWMgaW50IF9fcGNp X2VuYWJsZV9tc2l4KHN0cnVjdCBtc2lfDQotICAgICBvbGRfZGVzYyA9IGZpbmRfbXNpX2VudHJ5 KHBkZXYsIG1zaS0+aXJxLCBQQ0lfQ0FQX0lEX01TSVgpOw0KLSAgICAgaWYgKCBvbGRfZGVzYyAp DQotICAgICB7DQotLSAgICAgICAgcHJpbnRrKFhFTkxPR19XQVJOSU5HICJpcnEgJWQgYWxyZWFk eSBtYXBwZWQgdG8gTVNJLVggb24gJTA0eDolMDJ4OiUwMnguJXVcbiIsDQotKyAgICAgICAgcHJp bnRrKFhFTkxPR19FUlIgImlycSAlZCBhbHJlYWR5IG1hcHBlZCB0byBNU0ktWCBvbiAlMDR4OiUw Mng6JTAyeC4ldVxuIiwNCi0gICAgICAgICAgICAgICAgbXNpLT5pcnEsIG1zaS0+c2VnLCBtc2kt PmJ1cywNCi0gICAgICAgICAgICAgICAgUENJX1NMT1QobXNpLT5kZXZmbiksIFBDSV9GVU5DKG1z aS0+ZGV2Zm4pKTsNCi0tICAgICAgICAqZGVzYyA9IG9sZF9kZXNjOw0KLS0gICAgICAgIHJldHVy biAwOw0KLSsgICAgICAgIHJldHVybiAtRUVYSVNUOw0KLSAgICAgfQ0KLSANCi0gICAgIG9sZF9k ZXNjID0gZmluZF9tc2lfZW50cnkocGRldiwgLTEsIFBDSV9DQVBfSURfTVNJKTsNCmRpZmYgLS1n aXQgYS9tYWluL3hlbi94c2EyMzctNC5wYXRjaCBiL21haW4veGVuL3hzYTIzNy00LnBhdGNoDQpk ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IGExNmVjMWJiYTEuLjAwMDAwMDAwMDANCi0t LSBhL21haW4veGVuL3hzYTIzNy00LnBhdGNoDQorKysgL2Rldi9udWxsDQpAQCAtMSwxMjQgKzAs MCBAQA0KLUZyb206IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4NCi1TdWJqZWN0OiB4 ODYvSVJROiBjb25kaXRpb25hbGx5IHByZXNlcnZlIGlycSA8LT4gcGlycSBtYXBwaW5nIG9uIG1h cCBlcnJvciBwYXRocw0KLQ0KLU1hcHBpbmdzIHRoYXQgaGFkIGJlZW4gc2V0IHVwIGJlZm9yZSBz aG91bGQgbm90IGJlIHRvcm4gZG93biB3aGVuDQotaGFuZGxpbmcgdW5yZWxhdGVkIGVycm9ycy4N Ci0NCi1UaGlzIGlzIHBhcnQgb2YgWFNBLTIzNy4NCi0NCi1SZXBvcnRlZC1ieTogSFc0MiA8aHc0 MkBpcHN1bWouZGU+DQotU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2Uu Y29tPg0KLVJldmlld2VkLWJ5OiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGNpdHJpeC5j b20+DQotDQotLS0tIGEveGVuL2FyY2gveDg2L2lycS5jDQotKysrIGIveGVuL2FyY2gveDg2L2ly cS5jDQotQEAgLTEyNTEsNyArMTI1MSw4IEBAIHN0YXRpYyBpbnQgcHJlcGFyZV9kb21haW5faXJx X3BpcnEoc3RydWMNCi0gICAgICAgICByZXR1cm4gLUVOT01FTTsNCi0gICAgIH0NCi0gICAgICpw aW5mbyA9IGluZm87DQotLSAgICByZXR1cm4gMDsNCi0rDQotKyAgICByZXR1cm4gISFlcnI7DQot IH0NCi0gDQotIHN0YXRpYyB2b2lkIHNldF9kb21haW5faXJxX3BpcnEoc3RydWN0IGRvbWFpbiAq ZCwgaW50IGlycSwgc3RydWN0IHBpcnEgKnBpcnEpDQotQEAgLTEyOTQsNyArMTI5NSwxMCBAQCBp bnQgaW5pdF9kb21haW5faXJxX21hcHBpbmcoc3RydWN0IGRvbWFpDQotICAgICAgICAgICAgIGNv bnRpbnVlOw0KLSAgICAgICAgIGVyciA9IHByZXBhcmVfZG9tYWluX2lycV9waXJxKGQsIGksIGks ICZpbmZvKTsNCi0gICAgICAgICBpZiAoIGVyciApDQotKyAgICAgICAgew0KLSsgICAgICAgICAg ICBBU1NFUlQoZXJyIDwgMCk7DQotICAgICAgICAgICAgIGJyZWFrOw0KLSsgICAgICAgIH0NCi0g ICAgICAgICBzZXRfZG9tYWluX2lycV9waXJxKGQsIGksIGluZm8pOw0KLSAgICAgfQ0KLSANCi1A QCAtMTkwMiw2ICsxOTA2LDcgQEAgaW50IG1hcF9kb21haW5fcGlycSgNCi0gICAgIHN0cnVjdCBw aXJxICppbmZvOw0KLSAgICAgc3RydWN0IGlycV9kZXNjICpkZXNjOw0KLSAgICAgdW5zaWduZWQg bG9uZyBmbGFnczsNCi0rICAgIERFQ0xBUkVfQklUTUFQKHByZXBhcmVkLCBNQVhfTVNJX0lSUVMp ID0ge307DQotIA0KLSAgICAgQVNTRVJUKHNwaW5faXNfbG9ja2VkKCZkLT5ldmVudF9sb2NrKSk7 DQotIA0KLUBAIC0xOTQ1LDggKzE5NTAsMTAgQEAgaW50IG1hcF9kb21haW5fcGlycSgNCi0gICAg IH0NCi0gDQotICAgICByZXQgPSBwcmVwYXJlX2RvbWFpbl9pcnFfcGlycShkLCBpcnEsIHBpcnEs ICZpbmZvKTsNCi0tICAgIGlmICggcmV0ICkNCi0rICAgIGlmICggcmV0IDwgMCApDQotICAgICAg ICAgZ290byByZXZva2U7DQotKyAgICBpZiAoICFyZXQgKQ0KLSsgICAgICAgIF9fc2V0X2JpdCgw LCBwcmVwYXJlZCk7DQotIA0KLSAgICAgZGVzYyA9IGlycV90b19kZXNjKGlycSk7DQotIA0KLUBA IC0yMDE4LDggKzIwMjUsMTAgQEAgaW50IG1hcF9kb21haW5fcGlycSgNCi0gICAgICAgICAgICAg aXJxID0gY3JlYXRlX2lycShOVU1BX05PX05PREUpOw0KLSAgICAgICAgICAgICByZXQgPSBpcnEg Pj0gMCA/IHByZXBhcmVfZG9tYWluX2lycV9waXJxKGQsIGlycSwgcGlycSArIG5yLCAmaW5mbykN Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBpcnE7DQotLSAgICAgICAgICAgIGlmICgg cmV0ICkNCi0rICAgICAgICAgICAgaWYgKCByZXQgPCAwICkNCi0gICAgICAgICAgICAgICAgIGJy ZWFrOw0KLSsgICAgICAgICAgICBpZiAoICFyZXQgKQ0KLSsgICAgICAgICAgICAgICAgX19zZXRf Yml0KG5yLCBwcmVwYXJlZCk7DQotICAgICAgICAgICAgIG1zaV9kZXNjW25yXS5pcnEgPSBpcnE7 DQotIA0KLSAgICAgICAgICAgICBpZiAoIGlycV9wZXJtaXRfYWNjZXNzKGQsIGlycSkgIT0gMCAp DQotQEAgLTIwNTIsMTUgKzIwNjEsMTUgQEAgaW50IG1hcF9kb21haW5fcGlycSgNCi0gICAgICAg ICAgICAgICAgIGRlc2MtPm1zaV9kZXNjID0gTlVMTDsNCi0gICAgICAgICAgICAgICAgIHNwaW5f dW5sb2NrX2lycXJlc3RvcmUoJmRlc2MtPmxvY2ssIGZsYWdzKTsNCi0gICAgICAgICAgICAgfQ0K LS0gICAgICAgICAgICB3aGlsZSAoIG5yLS0gKQ0KLSsgICAgICAgICAgICB3aGlsZSAoIG5yICkN Ci0gICAgICAgICAgICAgew0KLSAgICAgICAgICAgICAgICAgaWYgKCBpcnEgPj0gMCAmJiBpcnFf ZGVueV9hY2Nlc3MoZCwgaXJxKSApDQotICAgICAgICAgICAgICAgICAgICAgcHJpbnRrKFhFTkxP R19HX0VSUg0KLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAiZG9tJWQ6IGNvdWxkIG5vdCBy ZXZva2UgYWNjZXNzIHRvIElSUSVkIChwaXJxICVkKVxuIiwNCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgZC0+ZG9tYWluX2lkLCBpcnEsIHBpcnEpOw0KLS0gICAgICAgICAgICAgICAgaWYg KCBpbmZvICkNCi0rICAgICAgICAgICAgICAgIGlmICggaW5mbyAmJiB0ZXN0X2JpdChuciwgcHJl cGFyZWQpICkNCi0gICAgICAgICAgICAgICAgICAgICBjbGVhbnVwX2RvbWFpbl9pcnFfcGlycShk LCBpcnEsIGluZm8pOw0KLS0gICAgICAgICAgICAgICAgaW5mbyA9IHBpcnFfaW5mbyhkLCBwaXJx ICsgbnIpOw0KLSsgICAgICAgICAgICAgICAgaW5mbyA9IHBpcnFfaW5mbyhkLCBwaXJxICsgLS1u cik7DQotICAgICAgICAgICAgICAgICBpcnEgPSBpbmZvLT5hcmNoLmlycTsNCi0gICAgICAgICAg ICAgfQ0KLSAgICAgICAgICAgICBtc2lfZGVzYy0+aXJxID0gLTE7DQotQEAgLTIwNzYsMTIgKzIw ODUsMTQgQEAgaW50IG1hcF9kb21haW5fcGlycSgNCi0gICAgICAgICBzcGluX2xvY2tfaXJxc2F2 ZSgmZGVzYy0+bG9jaywgZmxhZ3MpOw0KLSAgICAgICAgIHNldF9kb21haW5faXJxX3BpcnEoZCwg aXJxLCBpbmZvKTsNCi0gICAgICAgICBzcGluX3VubG9ja19pcnFyZXN0b3JlKCZkZXNjLT5sb2Nr LCBmbGFncyk7DQotKyAgICAgICAgcmV0ID0gMDsNCi0gICAgIH0NCi0gDQotIGRvbmU6DQotICAg ICBpZiAoIHJldCApDQotICAgICB7DQotLSAgICAgICAgY2xlYW51cF9kb21haW5faXJxX3BpcnEo ZCwgaXJxLCBpbmZvKTsNCi0rICAgICAgICBpZiAoIHRlc3RfYml0KDAsIHByZXBhcmVkKSApDQot KyAgICAgICAgICAgIGNsZWFudXBfZG9tYWluX2lycV9waXJxKGQsIGlycSwgaW5mbyk7DQotICBy ZXZva2U6DQotICAgICAgICAgaWYgKCBpcnFfZGVueV9hY2Nlc3MoZCwgaXJxKSApDQotICAgICAg ICAgICAgIHByaW50ayhYRU5MT0dfR19FUlINCi0tLS0gYS94ZW4vYXJjaC94ODYvcGh5c2Rldi5j DQotKysrIGIveGVuL2FyY2gveDg2L3BoeXNkZXYuYw0KLUBAIC0xODYsNyArMTg2LDcgQEAgaW50 IHBoeXNkZXZfbWFwX3BpcnEoZG9taWRfdCBkb21pZCwgaW50DQotICAgICAgICAgfQ0KLSAgICAg ICAgIGVsc2UgaWYgKCB0eXBlID09IE1BUF9QSVJRX1RZUEVfTVVMVElfTVNJICkNCi0gICAgICAg ICB7DQotLSAgICAgICAgICAgIGlmICggbXNpLT5lbnRyeV9uciA8PSAwIHx8IG1zaS0+ZW50cnlf bnIgPiAzMiApDQotKyAgICAgICAgICAgIGlmICggbXNpLT5lbnRyeV9uciA8PSAwIHx8IG1zaS0+ ZW50cnlfbnIgPiBNQVhfTVNJX0lSUVMgKQ0KLSAgICAgICAgICAgICAgICAgcmV0ID0gLUVET007 DQotICAgICAgICAgICAgIGVsc2UgaWYgKCBtc2ktPmVudHJ5X25yICE9IDEgJiYgIWlvbW11X2lu dHJlbWFwICkNCi0gICAgICAgICAgICAgICAgIHJldCA9IC1FT1BOT1RTVVBQOw0KLS0tLSBhL3hl bi9pbmNsdWRlL2FzbS14ODYvbXNpLmgNCi0rKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L21zaS5o DQotQEAgLTU2LDYgKzU2LDggQEANCi0gLyogTUFYIGZpeGVkIHBhZ2VzIHJlc2VydmVkIGZvciBt YXBwaW5nIE1TSVggdGFibGVzLiAqLw0KLSAjZGVmaW5lIEZJWF9NU0lYX01BWF9QQUdFUyAgICAg ICAgICAgICAgNTEyDQotIA0KLSsjZGVmaW5lIE1BWF9NU0lfSVJRUyAzMiAvKiBsaW1pdGVkIGJ5 IE1TSSBjYXBhYmlsaXR5IHN0cnVjdCBwcm9wZXJ0aWVzICovDQotKw0KLSBzdHJ1Y3QgbXNpX2lu Zm8gew0KLSAgICAgdTE2IHNlZzsNCi0gICAgIHU4IGJ1czsNCmRpZmYgLS1naXQgYS9tYWluL3hl bi94c2EyMzctNS5wYXRjaCBiL21haW4veGVuL3hzYTIzNy01LnBhdGNoDQpkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQNCmluZGV4IDE1NWJhMTVkMDguLjAwMDAwMDAwMDANCi0tLSBhL21haW4veGVu L3hzYTIzNy01LnBhdGNoDQorKysgL2Rldi9udWxsDQpAQCAtMSwzNyArMCwwIEBADQotRnJvbTog SmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPg0KLVN1YmplY3Q6IHg4Ni9GTEFTSzogZml4 IHVubWFwLWRvbWFpbi1JUlEgWFNNIGhvb2sNCi0NCi1UaGUgY2FsbGVyIGFuZCB0aGUgRkxBU0sg aW1wbGVtZW50YXRpb24gb2YgeHNtX3VubWFwX2RvbWFpbl9pcnEoKQ0KLWRpc2FncmVlZCBhYm91 dCB3aGF0IHRoZSAiZGF0YSIgYXJndW1lbnQgcG9pbnRzIHRvIGluIHRoZSBNU0kgY2FzZToNCi1D aGFuZ2UgYm90aCBzaWRlcyB0byBwYXNzL3Rha2UgYSBQQ0kgZGV2aWNlLg0KLQ0KLVRoaXMgaXMg cGFydCBvZiBYU0EtMjM3Lg0KLQ0KLVNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGlj aEBzdXNlLmNvbT4NCi1SZXZpZXdlZC1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNA Y2l0cml4LmNvbT4NCi0NCi0tLS0gYS94ZW4vYXJjaC94ODYvaXJxLmMNCi0rKysgYi94ZW4vYXJj aC94ODYvaXJxLmMNCi1AQCAtMjE0Myw3ICsyMTQzLDggQEAgaW50IHVubWFwX2RvbWFpbl9waXJx KHN0cnVjdCBkb21haW4gKmQsDQotICAgICAgICAgbnIgPSBtc2lfZGVzYy0+bXNpLm52ZWM7DQot ICAgICB9DQotIA0KLS0gICAgcmV0ID0geHNtX3VubWFwX2RvbWFpbl9pcnEoWFNNX0hPT0ssIGQs IGlycSwgbXNpX2Rlc2MpOw0KLSsgICAgcmV0ID0geHNtX3VubWFwX2RvbWFpbl9pcnEoWFNNX0hP T0ssIGQsIGlycSwNCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1zaV9kZXNjID8g bXNpX2Rlc2MtPmRldiA6IE5VTEwpOw0KLSAgICAgaWYgKCByZXQgKQ0KLSAgICAgICAgIGdvdG8g ZG9uZTsNCi0gDQotLS0tIGEveGVuL3hzbS9mbGFzay9ob29rcy5jDQotKysrIGIveGVuL3hzbS9m bGFzay9ob29rcy5jDQotQEAgLTkxOCw4ICs5MTgsOCBAQCBzdGF0aWMgaW50IGZsYXNrX3VubWFw X2RvbWFpbl9tc2kgKHN0cnVjDQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg dTMyICpzaWQsIHN0cnVjdCBhdmNfYXVkaXRfZGF0YSAqYWQpDQotIHsNCi0gI2lmZGVmIENPTkZJ R19IQVNfUENJDQotLSAgICBzdHJ1Y3QgbXNpX2luZm8gKm1zaSA9IGRhdGE7DQotLSAgICB1MzIg bWFjaGluZV9iZGYgPSAobXNpLT5zZWcgPDwgMTYpIHwgKG1zaS0+YnVzIDw8IDgpIHwgbXNpLT5k ZXZmbjsNCi0rICAgIGNvbnN0IHN0cnVjdCBwY2lfZGV2ICpwZGV2ID0gZGF0YTsNCi0rICAgIHUz MiBtYWNoaW5lX2JkZiA9IChwZGV2LT5zZWcgPDwgMTYpIHwgKHBkZXYtPmJ1cyA8PCA4KSB8IHBk ZXYtPmRldmZuOw0KLSANCi0gICAgIEFWQ19BVURJVF9EQVRBX0lOSVQoYWQsIERFVik7DQotICAg ICBhZC0+ZGV2aWNlID0gbWFjaGluZV9iZGY7DQpkaWZmIC0tZ2l0IGEvbWFpbi94ZW4veHNhMjM4 LnBhdGNoIGIvbWFpbi94ZW4veHNhMjM4LnBhdGNoDQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQN CmluZGV4IDBkN2Q0OGZlZjguLjAwMDAwMDAwMDANCi0tLSBhL21haW4veGVuL3hzYTIzOC5wYXRj aA0KKysrIC9kZXYvbnVsbA0KQEAgLTEsNDUgKzAsMCBAQA0KLUZyb20gY2RjMjg4NzA3NmIxOWIz OWZhYjlmYWVjNDk1MDgyNTg2ZjMxMTNkZiBNb24gU2VwIDE3IDAwOjAwOjAwIDIwMDENCi1Gcm9t OiBYZW5Qcm9qZWN0IFNlY3VyaXR5IFRlYW0gPHNlY3VyaXR5QHhlbnByb2plY3Qub3JnPg0KLURh dGU6IFR1ZSwgNSBTZXAgMjAxNyAxMzo0MTozNyArMDIwMA0KLVN1YmplY3Q6IHg4Ni9pb3JlcSBz ZXJ2ZXI6IGNvcnJlY3RseSBoYW5kbGUgYm9ndXMNCi0gWEVOX0RNT1Bfeyx1bn1tYXBfaW9fcmFu Z2VfdG9faW9yZXFfc2VydmVyIGFyZ3VtZW50cw0KLQ0KLU1pc2JlaGF2aW5nIGRldmljZSBtb2Rl bCBjYW4gcGFzcyBpbmNvcnJlY3QgWEVOX0RNT1BfbWFwLw0KLXVubWFwX2lvX3JhbmdlX3RvX2lv cmVxX3NlcnZlciBhcmd1bWVudHMsIG5hbWVseSBlbmQgPCBzdGFydCB3aGVuDQotc3BlY2lmeWlu ZyBhZGRyZXNzIHJhbmdlLiBXaGVuIHRoaXMgaGFwcGVucyB3ZSBoaXQgQVNTRVJUKHMgPD0gZSkg aW4NCi1yYW5nZXNldF9jb250YWluc19yYW5nZSgpL3Jhbmdlc2V0X292ZXJsYXBzX3JhbmdlKCkg d2l0aCBkZWJ1ZyBidWlsZHMuDQotUHJvZHVjdGlvbiBidWlsZHMgd2lsbCBub3QgdHJhcCByaWdo dCBhd2F5IGJ1dCBtYXkgbWlzYmVoYXZlIGxhdGVyDQotd2hpbGUgaGFuZGxpbmcgc3VjaCBib2d1 cyByYW5nZXMuDQotDQotVGhpcyBpcyBYU0EtMjM4Lg0KLQ0KLVNpZ25lZC1vZmYtYnk6IFZpdGFs eSBLdXpuZXRzb3YgPHZrdXpuZXRzQHJlZGhhdC5jb20+DQotUmV2aWV3ZWQtYnk6IEphbiBCZXVs aWNoIDxqYmV1bGljaEBzdXNlLmNvbT4NCi0tLS0NCi0geGVuL2FyY2gveDg2L2h2bS9pb3JlcS5j IHwgNiArKysrKysNCi0gMSBmaWxlIGNoYW5nZWQsIDYgaW5zZXJ0aW9ucygrKQ0KLQ0KLWRpZmYg LS1naXQgYS94ZW4vYXJjaC94ODYvaHZtL2lvcmVxLmMgYi94ZW4vYXJjaC94ODYvaHZtL2lvcmVx LmMNCi1pbmRleCBiMmE4YjBlOTg2Li44YzhiZjFmMGVjIDEwMDY0NA0KLS0tLSBhL3hlbi9hcmNo L3g4Ni9odm0vaW9yZXEuYw0KLSsrKyBiL3hlbi9hcmNoL3g4Ni9odm0vaW9yZXEuYw0KLUBAIC04 MjAsNiArODIwLDkgQEAgaW50IGh2bV9tYXBfaW9fcmFuZ2VfdG9faW9yZXFfc2VydmVyKHN0cnVj dCBkb21haW4gKmQsIGlvc2VydmlkX3QgaWQsDQotICAgICBzdHJ1Y3QgaHZtX2lvcmVxX3NlcnZl ciAqczsNCi0gICAgIGludCByYzsNCi0gDQotKyAgICBpZiAoIHN0YXJ0ID4gZW5kICkNCi0rICAg ICAgICByZXR1cm4gLUVJTlZBTDsNCi0rDQotICAgICBzcGluX2xvY2tfcmVjdXJzaXZlKCZkLT5h cmNoLmh2bV9kb21haW4uaW9yZXFfc2VydmVyLmxvY2spOw0KLSANCi0gICAgIHJjID0gLUVOT0VO VDsNCi1AQCAtODcyLDYgKzg3NSw5IEBAIGludCBodm1fdW5tYXBfaW9fcmFuZ2VfZnJvbV9pb3Jl cV9zZXJ2ZXIoc3RydWN0IGRvbWFpbiAqZCwgaW9zZXJ2aWRfdCBpZCwNCi0gICAgIHN0cnVjdCBo dm1faW9yZXFfc2VydmVyICpzOw0KLSAgICAgaW50IHJjOw0KLSANCi0rICAgIGlmICggc3RhcnQg PiBlbmQgKQ0KLSsgICAgICAgIHJldHVybiAtRUlOVkFMOw0KLSsNCi0gICAgIHNwaW5fbG9ja19y ZWN1cnNpdmUoJmQtPmFyY2guaHZtX2RvbWFpbi5pb3JlcV9zZXJ2ZXIubG9jayk7DQotIA0KLSAg ICAgcmMgPSAtRU5PRU5UOw0KZGlmZiAtLWdpdCBhL21haW4veGVuL3hzYTIzOS5wYXRjaCBiL21h aW4veGVuL3hzYTIzOS5wYXRjaA0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0DQppbmRleCA1ZGFl Y2I1ZTQ3Li4wMDAwMDAwMDAwDQotLS0gYS9tYWluL3hlbi94c2EyMzkucGF0Y2gNCisrKyAvZGV2 L251bGwNCkBAIC0xLDQ2ICswLDAgQEANCi1Gcm9tOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3Vz ZS5jb20+DQotU3ViamVjdDogeDg2L0hWTTogcHJlZmlsbCBwYXJ0aWFsbHkgdXNlZCB2YXJpYWJs ZSBvbiBlbXVsYXRpb24gcGF0aHMNCi0NCi1DZXJ0YWluIGhhbmRsZXJzIGlnbm9yZSB0aGUgYWNj ZXNzIHNpemUgKHZpb2FwaWNfd3JpdGUoKSBiZWluZyB0aGUNCi1leGFtcGxlIHRoaXMgd2FzIGZv dW5kIHdpdGgpLCBwZXJoYXBzIGxlYWRpbmcgdG8gc3Vic2VxdWVudCByZWFkcw0KLXNlZWluZyBk YXRhIHRoYXQgd2Fzbid0IGFjdHVhbGx5IHdyaXR0ZW4gYnkgdGhlIGd1ZXN0LiBGb3INCi1jb25z aXN0ZW5jeSBhbmQgZXh0cmEgc2FmZXR5IGFsc28gZG8gdGhpcyBvbiB0aGUgcmVhZCBwYXRoIG9m DQotaHZtX3Byb2Nlc3NfaW9faW50ZXJjZXB0KCksIGV2ZW4gaWYgdGhpcyBkb2Vzbid0IGRpcmVj dGx5IGFmZmVjdCB3aGF0DQotZ3Vlc3RzIGdldCB0byBzZWUsIGFzIHdlJ3ZlIHN1cHBvc2VkbHkg YWxyZWFkeSBkZWFsdCB3aXRoIHJlYWQgaGFuZGxlcnMNCi1sZWF2aW5nIGRhdGEgY29tcGxldGVs eSB1bml0aWFsaXplZC4NCi0NCi1UaGlzIGlzIFhTQS0yMzkuDQotDQotUmVwb3J0ZWQtYnk6IFJv Z2VyIFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPg0KLVJldmlld2VkLWJ5OiBSb2dl ciBQYXUgTW9ubsOpIDxyb2dlci5wYXVAY2l0cml4LmNvbT4NCi1TaWduZWQtb2ZmLWJ5OiBKYW4g QmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQotDQotLS0tIGEveGVuL2FyY2gveDg2L2h2bS9l bXVsYXRlLmMNCi0rKysgYi94ZW4vYXJjaC94ODYvaHZtL2VtdWxhdGUuYw0KLUBAIC0xMjksNyAr MTI5LDcgQEAgc3RhdGljIGludCBodm1lbXVsX2RvX2lvKA0KLSAgICAgICAgIC5jb3VudCA9ICpy ZXBzLA0KLSAgICAgICAgIC5kaXIgPSBkaXIsDQotICAgICAgICAgLmRmID0gZGYsDQotLSAgICAg ICAgLmRhdGEgPSBkYXRhLA0KLSsgICAgICAgIC5kYXRhID0gZGF0YV9pc19hZGRyID8gZGF0YSA6 IDAsDQotICAgICAgICAgLmRhdGFfaXNfcHRyID0gZGF0YV9pc19hZGRyLCAvKiBpb3JlcV90IGZp ZWxkIG5hbWUgaXMgbWlzbGVhZGluZyAqLw0KLSAgICAgICAgIC5zdGF0ZSA9IFNUQVRFX0lPUkVR X1JFQURZLA0KLSAgICAgfTsNCi0tLS0gYS94ZW4vYXJjaC94ODYvaHZtL2ludGVyY2VwdC5jDQot KysrIGIveGVuL2FyY2gveDg2L2h2bS9pbnRlcmNlcHQuYw0KLUBAIC0xMjcsNiArMTI3LDcgQEAg aW50IGh2bV9wcm9jZXNzX2lvX2ludGVyY2VwdChjb25zdCBzdHJ1Yw0KLSAgICAgICAgICAgICBh ZGRyID0gKHAtPnR5cGUgPT0gSU9SRVFfVFlQRV9DT1BZKSA/DQotICAgICAgICAgICAgICAgICAg ICBwLT5hZGRyICsgc3RlcCAqIGkgOg0KLSAgICAgICAgICAgICAgICAgICAgcC0+YWRkcjsNCi0r ICAgICAgICAgICAgZGF0YSA9IDA7DQotICAgICAgICAgICAgIHJjID0gb3BzLT5yZWFkKGhhbmRs ZXIsIGFkZHIsIHAtPnNpemUsICZkYXRhKTsNCi0gICAgICAgICAgICAgaWYgKCByYyAhPSBYODZF TVVMX09LQVkgKQ0KLSAgICAgICAgICAgICAgICAgYnJlYWs7DQotQEAgLTE2MSw2ICsxNjIsNyBA QCBpbnQgaHZtX3Byb2Nlc3NfaW9faW50ZXJjZXB0KGNvbnN0IHN0cnVjDQotICAgICAgICAgew0K LSAgICAgICAgICAgICBpZiAoIHAtPmRhdGFfaXNfcHRyICkNCi0gICAgICAgICAgICAgew0KLSsg ICAgICAgICAgICAgICAgZGF0YSA9IDA7DQotICAgICAgICAgICAgICAgICBzd2l0Y2ggKCBodm1f Y29weV9mcm9tX2d1ZXN0X3BoeXMoJmRhdGEsIHAtPmRhdGEgKyBzdGVwICogaSwNCi0gICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwLT5zaXplKSApDQot ICAgICAgICAgICAgICAgICB7DQpkaWZmIC0tZ2l0IGEvbWFpbi94ZW4veHNhMjQwLTEucGF0Y2gg Yi9tYWluL3hlbi94c2EyNDAtMS5wYXRjaA0KZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0DQppbmRl eCA1MTVhZDIyYjY2Li4wMDAwMDAwMDAwDQotLS0gYS9tYWluL3hlbi94c2EyNDAtMS5wYXRjaA0K KysrIC9kZXYvbnVsbA0KQEAgLTEsNDk0ICswLDAgQEANCi1Gcm9tIDg2Nzk4ODIzN2QzZTQ3MmZl MmM5OWU4MWFlNzMzZTEwMzQyMjU2NmMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxDQotRnJvbTog SmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPg0KLURhdGU6IFRodSwgMjggU2VwIDIwMTcg MTU6MTc6MjUgKzAxMDANCi1TdWJqZWN0OiBbUEFUQ0ggMS8yXSB4ODY6IGxpbWl0IGxpbmVhciBw YWdlIHRhYmxlIHVzZSB0byBhIHNpbmdsZSBsZXZlbA0KLQ0KLVRoYXQncyB0aGUgb25seSB3YXkg dGhhdCB0aGV5J3JlIG1lYW50IHRvIGJlIHVzZWQuIFdpdGhvdXQgc3VjaCBhDQotcmVzdHJpY3Rp b24gYXJiaXRyYXJpbHkgbG9uZyBjaGFpbnMgb2Ygc2FtZS1sZXZlbCBwYWdlIHRhYmxlcyBjYW4g YmUNCi1idWlsdCwgdGVhcmluZyBkb3duIG9mIHdoaWNoIG1heSB0aGVuIGNhdXNlIGFyYml0cmFy aWx5IGRlZXAgcmVjdXJzaW9uLA0KLWNhdXNpbmcgYSBzdGFjayBvdmVyZmxvdy4gVG8gZmFjaWxp dGF0ZSB0aGlzIHJlc3RyaWN0aW9uLCBhIGNvdW50ZXIgaXMNCi1iZWluZyBpbnRyb2R1Y2VkIHRv IHRyYWNrIGJvdGggdGhlIG51bWJlciBvZiBzYW1lLWxldmVsIGVudHJpZXMgaW4gYQ0KLXBhZ2Ug dGFibGUgYXMgd2VsbCBhcyB0aGUgbnVtYmVyIG9mIHVzZXMgb2YgYSBwYWdlIHRhYmxlIGluIGFu b3RoZXINCi1zYW1lLWxldmVsIG9uZSAoY291bnRpbmcgaW50byBwb3NpdGl2ZSBhbmQgbmVnYXRp dmUgZGlyZWN0aW9uDQotcmVzcGVjdGl2ZWx5LCB1dGlsaXppbmcgdGhlIGZhY3QgdGhhdCBib3Ro IGNvdW50cyBjYW4ndCBiZSBub24temVybyBhdA0KLXRoZSBzYW1lIHRpbWUpLg0KLQ0KLU5vdGUg dGhhdCB0aGUgYWRkZWQgYWNjb3VudGluZyBpbnRyb2R1Y2VzIGEgcmVzdHJpY3Rpb24gb24gdGhl IG51bWJlcg0KLW9mIHRpbWVzIGEgcGFnZSBjYW4gYmUgdXNlZCBpbiBvdGhlciBzYW1lLWxldmVs IHBhZ2UgdGFibGVzIC0gbW9yZSB0aGFuDQotMzJrIG9mIHN1Y2ggdXNlcyBhcmUgbm8gbG9uZ2Vy IHBvc3NpYmxlLg0KLQ0KLU5vdGUgYWxzbyB0aGF0IHNvbWUgcHV0X3BhZ2VfYW5kX3R5cGVbX3By ZWVtcHRpYmxlXSgpIGNhbGxzIGFyZQ0KLXJlcGxhY2VkIHdpdGggb3Blbi1jb2RlZCBlcXVpdmFs ZW50cy4gIFRoaXMgc2VlbWVkIHByZWZlcnJhYmxlIHRvDQotYWRkaW5nICJwYXJlbnRfdGFibGUi IHRvIHRoZSBtYXRyaXggb2YgZnVuY3Rpb25zLg0KLQ0KLU5vdGUgZnVydGhlciB0aGF0IGNyb3Nz LWRvbWFpbiBzYW1lLWxldmVsIHBhZ2UgdGFibGUgcmVmZXJlbmNlcyBhcmUgbm8NCi1sb25nZXIg cGVybWl0dGVkICh0aGV5IHByb2JhYmx5IG5ldmVyIHNob3VsZCBoYXZlIGJlZW4pLg0KLQ0KLVRo aXMgaXMgWFNBLTI0MC4NCi0NCi1SZXBvcnRlZC1ieTogSmFubiBIb3JuIDxqYW5uaEBnb29nbGUu Y29tPg0KLVNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4NCi1T aWduZWQtb2ZmLWJ5OiBHZW9yZ2UgRHVubGFwIDxnZW9yZ2UuZHVubGFwQGNpdHJpeC5jb20+DQot LS0tDQotIHhlbi9hcmNoL3g4Ni9kb21haW4uYyAgICAgICAgfCAgIDEgKw0KLSB4ZW4vYXJjaC94 ODYvbW0uYyAgICAgICAgICAgIHwgMTcxICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrLS0tLS0NCi0geGVuL2luY2x1ZGUvYXNtLXg4Ni9kb21haW4uaCB8ICAgMiArDQotIHhl bi9pbmNsdWRlL2FzbS14ODYvbW0uaCAgICAgfCAgMjUgKysrKystLQ0KLSA0IGZpbGVzIGNoYW5n ZWQsIDE3NSBpbnNlcnRpb25zKCspLCAyNCBkZWxldGlvbnMoLSkNCi0NCi1kaWZmIC0tZ2l0IGEv eGVuL2FyY2gveDg2L2RvbWFpbi5jIGIveGVuL2FyY2gveDg2L2RvbWFpbi5jDQotaW5kZXggZDdl Njk5MjI4Yy4uZDdlZDcyYzI0NiAxMDA2NDQNCi0tLS0gYS94ZW4vYXJjaC94ODYvZG9tYWluLmMN Ci0rKysgYi94ZW4vYXJjaC94ODYvZG9tYWluLmMNCi1AQCAtMTIyNiw2ICsxMjI2LDcgQEAgaW50 IGFyY2hfc2V0X2luZm9fZ3Vlc3QoDQotICAgICAgICAgICAgICAgICAgICAgcmMgPSAtRVJFU1RB UlQ7DQotICAgICAgICAgICAgICAgICAgICAgLyogRmFsbHRocm91Z2ggKi8NCi0gICAgICAgICAg ICAgICAgIGNhc2UgLUVSRVNUQVJUOg0KLSsgICAgICAgICAgICAgICAgICAgIHYtPmFyY2gub2xk X2d1ZXN0X3B0cGcgPSBOVUxMOw0KLSAgICAgICAgICAgICAgICAgICAgIHYtPmFyY2gub2xkX2d1 ZXN0X3RhYmxlID0NCi0gICAgICAgICAgICAgICAgICAgICAgICAgcGFnZXRhYmxlX2dldF9wYWdl KHYtPmFyY2guZ3Vlc3RfdGFibGUpOw0KLSAgICAgICAgICAgICAgICAgICAgIHYtPmFyY2guZ3Vl c3RfdGFibGUgPSBwYWdldGFibGVfbnVsbCgpOw0KLWRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYv bW0uYyBiL3hlbi9hcmNoL3g4Ni9tbS5jDQotaW5kZXggODZmNWVkYTUyZC4uMWU0NjliZDM1NCAx MDA2NDQNCi0tLS0gYS94ZW4vYXJjaC94ODYvbW0uYw0KLSsrKyBiL3hlbi9hcmNoL3g4Ni9tbS5j DQotQEAgLTc0Nyw2ICs3NDcsNjEgQEAgc3RhdGljIHZvaWQgcHV0X2RhdGFfcGFnZSgNCi0gICAg ICAgICBwdXRfcGFnZShwYWdlKTsNCi0gfQ0KLSANCi0rc3RhdGljIGJvb2wgaW5jX2xpbmVhcl9l bnRyaWVzKHN0cnVjdCBwYWdlX2luZm8gKnBnKQ0KLSt7DQotKyAgICB0eXBlb2YocGctPmxpbmVh cl9wdF9jb3VudCkgbmMgPSByZWFkX2F0b21pYygmcGctPmxpbmVhcl9wdF9jb3VudCksIG9jOw0K LSsNCi0rICAgIGRvIHsNCi0rICAgICAgICAvKg0KLSsgICAgICAgICAqIFRoZSBjaGVjayBiZWxv dyBjaGVja3MgZm9yIHRoZSAibGluZWFyIHVzZSIgY291bnQgYmVpbmcgbm9uLXplcm8NCi0rICAg ICAgICAgKiBhcyB3ZWxsIGFzIG92ZXJmbG93LiAgU2lnbmVkIGludGVnZXIgb3ZlcmZsb3cgaXMg dW5kZWZpbmVkIGJlaGF2aW9yDQotKyAgICAgICAgICogYWNjb3JkaW5nIHRvIHRoZSBDIHNwZWMu ICBIb3dldmVyLCBhcyBsb25nIGFzIGxpbmVhcl9wdF9jb3VudCBpcw0KLSsgICAgICAgICAqIHNt YWxsZXIgaW4gc2l6ZSB0aGFuICdpbnQnLCB0aGUgYXJpdGhtZXRpYyBvcGVyYXRpb24gb2YgdGhl DQotKyAgICAgICAgICogaW5jcmVtZW50IGJlbG93IHdvbid0IG92ZXJmbG93OyByYXRoZXIgdGhl IHJlc3VsdCB3aWxsIGJlIHRydW5jYXRlZA0KLSsgICAgICAgICAqIHdoZW4gc3RvcmVkLiAgRW5z dXJlIHRoYXQgdGhpcyBpcyBhbHdheXMgdHJ1ZS4NCi0rICAgICAgICAgKi8NCi0rICAgICAgICBC VUlMRF9CVUdfT04oc2l6ZW9mKG5jKSA+PSBzaXplb2YoaW50KSk7DQotKyAgICAgICAgb2MgPSBu YysrOw0KLSsgICAgICAgIGlmICggbmMgPD0gMCApDQotKyAgICAgICAgICAgIHJldHVybiBmYWxz ZTsNCi0rICAgICAgICBuYyA9IGNtcHhjaGcoJnBnLT5saW5lYXJfcHRfY291bnQsIG9jLCBuYyk7 DQotKyAgICB9IHdoaWxlICggb2MgIT0gbmMgKTsNCi0rDQotKyAgICByZXR1cm4gdHJ1ZTsNCi0r fQ0KLSsNCi0rc3RhdGljIHZvaWQgZGVjX2xpbmVhcl9lbnRyaWVzKHN0cnVjdCBwYWdlX2luZm8g KnBnKQ0KLSt7DQotKyAgICB0eXBlb2YocGctPmxpbmVhcl9wdF9jb3VudCkgb2M7DQotKw0KLSsg ICAgb2MgPSBhcmNoX2ZldGNoX2FuZF9hZGQoJnBnLT5saW5lYXJfcHRfY291bnQsIC0xKTsNCi0r ICAgIEFTU0VSVChvYyA+IDApOw0KLSt9DQotKw0KLStzdGF0aWMgYm9vbCBpbmNfbGluZWFyX3Vz ZXMoc3RydWN0IHBhZ2VfaW5mbyAqcGcpDQotK3sNCi0rICAgIHR5cGVvZihwZy0+bGluZWFyX3B0 X2NvdW50KSBuYyA9IHJlYWRfYXRvbWljKCZwZy0+bGluZWFyX3B0X2NvdW50KSwgb2M7DQotKw0K LSsgICAgZG8gew0KLSsgICAgICAgIC8qIFNlZSB0aGUgcmVzcGVjdGl2ZSBjb21tZW50IGluIGlu Y19saW5lYXJfZW50cmllcygpLiAqLw0KLSsgICAgICAgIEJVSUxEX0JVR19PTihzaXplb2YobmMp ID49IHNpemVvZihpbnQpKTsNCi0rICAgICAgICBvYyA9IG5jLS07DQotKyAgICAgICAgaWYgKCBu YyA+PSAwICkNCi0rICAgICAgICAgICAgcmV0dXJuIGZhbHNlOw0KLSsgICAgICAgIG5jID0gY21w eGNoZygmcGctPmxpbmVhcl9wdF9jb3VudCwgb2MsIG5jKTsNCi0rICAgIH0gd2hpbGUgKCBvYyAh PSBuYyApOw0KLSsNCi0rICAgIHJldHVybiB0cnVlOw0KLSt9DQotKw0KLStzdGF0aWMgdm9pZCBk ZWNfbGluZWFyX3VzZXMoc3RydWN0IHBhZ2VfaW5mbyAqcGcpDQotK3sNCi0rICAgIHR5cGVvZihw Zy0+bGluZWFyX3B0X2NvdW50KSBvYzsNCi0rDQotKyAgICBvYyA9IGFyY2hfZmV0Y2hfYW5kX2Fk ZCgmcGctPmxpbmVhcl9wdF9jb3VudCwgMSk7DQotKyAgICBBU1NFUlQob2MgPCAwKTsNCi0rfQ0K LSsNCi0gLyoNCi0gICogV2UgYWxsb3cgcm9vdCB0YWJsZXMgdG8gbWFwIGVhY2ggb3RoZXIgKGEu ay5hLiBsaW5lYXIgcGFnZSB0YWJsZXMpLiBJdA0KLSAgKiBuZWVkcyBzb21lIHNwZWNpYWwgY2Fy ZSB3aXRoIHJlZmVyZW5jZSBjb3VudHMgYW5kIGFjY2VzcyBwZXJtaXNzaW9uczoNCi1AQCAtNzc3 LDE1ICs4MzIsMzUgQEAgZ2V0XyMjbGV2ZWwjI19saW5lYXJfcGFnZXRhYmxlKCAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCi0gICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IFwNCi0gICAgIGlmICggKHBmbiA9IGxldmVsIyNlX2dldF9wZm4ocGRlKSkgIT0gcGRlX3BmbiAp ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCi0gICAgIHsgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCi0rICAg ICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwdHBnID0gbWZuX3RvX3BhZ2UocGRlX3Bmbik7ICAgICAg ICAgICAgICAgICAgICAgIFwNCi0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCi0rICAgICAgICAvKiBN YWtlIHN1cmUgdGhlIHBhZ2UgdGFibGUgYmVsb25ncyB0byB0aGUgY29ycmVjdCBkb21haW4uICov ICAgICAgIFwNCi0rICAgICAgICBpZiAoIHVubGlrZWx5KHBhZ2VfZ2V0X293bmVyKHB0cGcpICE9 IGQpICkgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCi0rICAgICAgICAgICAgcmV0dXJuIDA7 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN Ci0rICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwNCi0gICAgICAgICAvKiBNYWtlIHN1cmUgdGhlIG1hcHBl ZCBmcmFtZSBiZWxvbmdzIHRvIHRoZSBjb3JyZWN0IGRvbWFpbi4gKi8gICAgIFwNCi0gICAgICAg ICBpZiAoIHVubGlrZWx5KCFnZXRfcGFnZV9mcm9tX3BhZ2VucihwZm4sIGQpKSApICAgICAgICAg ICAgICAgICAgICAgIFwNCi0gICAgICAgICAgICAgcmV0dXJuIDA7ICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwNCi0gICAgICAgICAvKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCi0tICAgICAgICAgKiBFbnN1cmUgdGhhdCB0 aGUgbWFwcGVkIGZyYW1lIGlzIGFuIGFscmVhZHktdmFsaWRhdGVkIHBhZ2UgdGFibGUuIFwNCi0r ICAgICAgICAgKiBFbnN1cmUgdGhhdCB0aGUgbWFwcGVkIGZyYW1lIGlzIGFuIGFscmVhZHktdmFs aWRhdGVkIHBhZ2UgdGFibGUgIFwNCi0rICAgICAgICAgKiBhbmQgaXMgbm90IGl0c2VsZiBoYXZp bmcgbGluZWFyIGVudHJpZXMsIGFzIHdlbGwgYXMgdGhhdCB0aGUgICAgIFwNCi0rICAgICAgICAg KiBjb250YWluaW5nIHBhZ2UgdGFibGUgaXMgbm90IGlzZWxmIGluIHVzZSBhcyBhIGxpbmVhciBw YWdlIHRhYmxlIFwNCi0rICAgICAgICAgKiBlbHNld2hlcmUuICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCi0gICAgICAgICAgKiBJZiBzbywg YXRvbWljYWxseSBpbmNyZW1lbnQgdGhlIGNvdW50IChjaGVja2luZyBmb3Igb3ZlcmZsb3cpLiAg IFwNCi0gICAgICAgICAgKi8gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIFwNCi0gICAgICAgICBwYWdlID0gbWZuX3RvX3BhZ2Uo cGZuKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCi0rICAg ICAgICBpZiAoICFpbmNfbGluZWFyX2VudHJpZXMocHRwZykgKSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIFwNCi0rICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCi0rICAgICAgICAgICAg cHV0X3BhZ2UocGFnZSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIFwNCi0rICAgICAgICAgICAgcmV0dXJuIDA7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCi0rICAgICAgICB9ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwN Ci0rICAgICAgICBpZiAoICFpbmNfbGluZWFyX3VzZXMocGFnZSkgKSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIFwNCi0rICAgICAgICB7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCi0rICAgICAg ICAgICAgZGVjX2xpbmVhcl9lbnRyaWVzKHB0cGcpOyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIFwNCi0rICAgICAgICAgICAgcHV0X3BhZ2UocGFnZSk7ICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCi0rICAgICAgICAgICAgcmV0 dXJuIDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIFwNCi0rICAgICAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCi0gICAgICAgICB5ID0gcGFnZS0+dS5pbnVz ZS50eXBlX2luZm87ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCi0g ICAgICAgICBkbyB7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIFwNCi0gICAgICAgICAgICAgeCA9IHk7ICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwNCi1AQCAtNzkzLDYg Kzg2OCw4IEBAIGdldF8jI2xldmVsIyNfbGluZWFyX3BhZ2V0YWJsZSggICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQotICAgICAgICAgICAgICAgICAgdW5saWtl bHkoKHggJiAoUEdUX3R5cGVfbWFza3xQR1RfdmFsaWRhdGVkKSkgIT0gICAgICAgICAgICBcDQot ICAgICAgICAgICAgICAgICAgICAgICAgICAgKFBHVF8jI2xldmVsIyNfcGFnZV90YWJsZXxQR1Rf dmFsaWRhdGVkKSkgKSAgICAgICBcDQotICAgICAgICAgICAgIHsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQotKyAgICAgICAg ICAgICAgICBkZWNfbGluZWFyX3VzZXMocGFnZSk7ICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcDQotKyAgICAgICAgICAgICAgICBkZWNfbGluZWFyX2VudHJpZXMocHRwZyk7 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQotICAgICAgICAgICAgICAgICBw dXRfcGFnZShwYWdlKTsgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcDQotICAgICAgICAgICAgICAgICByZXR1cm4gMDsgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQotICAgICAgICAgICAgIH0gICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQotQEAg LTEyMjYsNiArMTMwMyw5IEBAIGdldF9wYWdlX2Zyb21fbDRlKA0KLSAgICAgICAgICAgICBsM2Vf cmVtb3ZlX2ZsYWdzKChwbDNlKSwgX1BBR0VfVVNFUnxfUEFHRV9SV3xfUEFHRV9BQ0NFU1NFRCk7 ICAgXA0KLSAgICAgfSB3aGlsZSAoIDAgKQ0KLSANCi0rc3RhdGljIGludCBfcHV0X3BhZ2VfdHlw ZShzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlLCBib29sIHByZWVtcHRpYmxlLA0KLSsgICAgICAgICAg ICAgICAgICAgICAgICAgIHN0cnVjdCBwYWdlX2luZm8gKnB0cGcpOw0KLSsNCi0gdm9pZCBwdXRf cGFnZV9mcm9tX2wxZShsMV9wZ2VudHJ5X3QgbDFlLCBzdHJ1Y3QgZG9tYWluICpsMWVfb3duZXIp DQotIHsNCi0gICAgIHVuc2lnbmVkIGxvbmcgICAgIHBmbiA9IGwxZV9nZXRfcGZuKGwxZSk7DQot QEAgLTEyOTYsMTcgKzEzNzYsMjIgQEAgc3RhdGljIGludCBwdXRfcGFnZV9mcm9tX2wyZShsMl9w Z2VudHJ5X3QgbDJlLCB1bnNpZ25lZCBsb25nIHBmbikNCi0gICAgIGlmICggbDJlX2dldF9mbGFn cyhsMmUpICYgX1BBR0VfUFNFICkNCi0gICAgICAgICBwdXRfc3VwZXJwYWdlKGwyZV9nZXRfcGZu KGwyZSkpOw0KLSAgICAgZWxzZQ0KLS0gICAgICAgIHB1dF9wYWdlX2FuZF90eXBlKGwyZV9nZXRf cGFnZShsMmUpKTsNCi0rICAgIHsNCi0rICAgICAgICBzdHJ1Y3QgcGFnZV9pbmZvICpwZyA9IGwy ZV9nZXRfcGFnZShsMmUpOw0KLSsgICAgICAgIGludCByYyA9IF9wdXRfcGFnZV90eXBlKHBnLCBm YWxzZSwgbWZuX3RvX3BhZ2UocGZuKSk7DQotKw0KLSsgICAgICAgIEFTU0VSVCghcmMpOw0KLSsg ICAgICAgIHB1dF9wYWdlKHBnKTsNCi0rICAgIH0NCi0gDQotICAgICByZXR1cm4gMDsNCi0gfQ0K LSANCi0tc3RhdGljIGludCBfX3B1dF9wYWdlX3R5cGUoc3RydWN0IHBhZ2VfaW5mbyAqLCBpbnQg cHJlZW1wdGlibGUpOw0KLS0NCi0gc3RhdGljIGludCBwdXRfcGFnZV9mcm9tX2wzZShsM19wZ2Vu dHJ5X3QgbDNlLCB1bnNpZ25lZCBsb25nIHBmbiwNCi0gICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpbnQgcGFydGlhbCwgYm9vbF90IGRlZmVyKQ0KLSB7DQotICAgICBzdHJ1Y3QgcGFnZV9p bmZvICpwZzsNCi0rICAgIGludCByYzsNCi0gDQotICAgICBpZiAoICEobDNlX2dldF9mbGFncyhs M2UpICYgX1BBR0VfUFJFU0VOVCkgfHwgKGwzZV9nZXRfcGZuKGwzZSkgPT0gcGZuKSApDQotICAg ICAgICAgcmV0dXJuIDE7DQotQEAgLTEzMjksMjEgKzE0MTQsMjggQEAgc3RhdGljIGludCBwdXRf cGFnZV9mcm9tX2wzZShsM19wZ2VudHJ5X3QgbDNlLCB1bnNpZ25lZCBsb25nIHBmbiwNCi0gICAg IGlmICggdW5saWtlbHkocGFydGlhbCA+IDApICkNCi0gICAgIHsNCi0gICAgICAgICBBU1NFUlQo IWRlZmVyKTsNCi0tICAgICAgICByZXR1cm4gX19wdXRfcGFnZV90eXBlKHBnLCAxKTsNCi0rICAg ICAgICByZXR1cm4gX3B1dF9wYWdlX3R5cGUocGcsIHRydWUsIG1mbl90b19wYWdlKHBmbikpOw0K LSAgICAgfQ0KLSANCi0gICAgIGlmICggZGVmZXIgKQ0KLSAgICAgew0KLSsgICAgICAgIGN1cnJl bnQtPmFyY2gub2xkX2d1ZXN0X3B0cGcgPSBtZm5fdG9fcGFnZShwZm4pOw0KLSAgICAgICAgIGN1 cnJlbnQtPmFyY2gub2xkX2d1ZXN0X3RhYmxlID0gcGc7DQotICAgICAgICAgcmV0dXJuIDA7DQot ICAgICB9DQotIA0KLS0gICAgcmV0dXJuIHB1dF9wYWdlX2FuZF90eXBlX3ByZWVtcHRpYmxlKHBn KTsNCi0rICAgIHJjID0gX3B1dF9wYWdlX3R5cGUocGcsIHRydWUsIG1mbl90b19wYWdlKHBmbikp Ow0KLSsgICAgaWYgKCBsaWtlbHkoIXJjKSApDQotKyAgICAgICAgcHV0X3BhZ2UocGcpOw0KLSsN Ci0rICAgIHJldHVybiByYzsNCi0gfQ0KLSANCi0gc3RhdGljIGludCBwdXRfcGFnZV9mcm9tX2w0 ZShsNF9wZ2VudHJ5X3QgbDRlLCB1bnNpZ25lZCBsb25nIHBmbiwNCi0gICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpbnQgcGFydGlhbCwgYm9vbF90IGRlZmVyKQ0KLSB7DQotKyAgICBpbnQg cmMgPSAxOw0KLSsNCi0gICAgIGlmICggKGw0ZV9nZXRfZmxhZ3MobDRlKSAmIF9QQUdFX1BSRVNF TlQpICYmIA0KLSAgICAgICAgICAobDRlX2dldF9wZm4obDRlKSAhPSBwZm4pICkNCi0gICAgIHsN Ci1AQCAtMTM1MiwxOCArMTQ0NCwyMiBAQCBzdGF0aWMgaW50IHB1dF9wYWdlX2Zyb21fbDRlKGw0 X3BnZW50cnlfdCBsNGUsIHVuc2lnbmVkIGxvbmcgcGZuLA0KLSAgICAgICAgIGlmICggdW5saWtl bHkocGFydGlhbCA+IDApICkNCi0gICAgICAgICB7DQotICAgICAgICAgICAgIEFTU0VSVCghZGVm ZXIpOw0KLS0gICAgICAgICAgICByZXR1cm4gX19wdXRfcGFnZV90eXBlKHBnLCAxKTsNCi0rICAg ICAgICAgICAgcmV0dXJuIF9wdXRfcGFnZV90eXBlKHBnLCB0cnVlLCBtZm5fdG9fcGFnZShwZm4p KTsNCi0gICAgICAgICB9DQotIA0KLSAgICAgICAgIGlmICggZGVmZXIgKQ0KLSAgICAgICAgIHsN Ci0rICAgICAgICAgICAgY3VycmVudC0+YXJjaC5vbGRfZ3Vlc3RfcHRwZyA9IG1mbl90b19wYWdl KHBmbik7DQotICAgICAgICAgICAgIGN1cnJlbnQtPmFyY2gub2xkX2d1ZXN0X3RhYmxlID0gcGc7 DQotICAgICAgICAgICAgIHJldHVybiAwOw0KLSAgICAgICAgIH0NCi0gDQotLSAgICAgICAgcmV0 dXJuIHB1dF9wYWdlX2FuZF90eXBlX3ByZWVtcHRpYmxlKHBnKTsNCi0rICAgICAgICByYyA9IF9w dXRfcGFnZV90eXBlKHBnLCB0cnVlLCBtZm5fdG9fcGFnZShwZm4pKTsNCi0rICAgICAgICBpZiAo IGxpa2VseSghcmMpICkNCi0rICAgICAgICAgICAgcHV0X3BhZ2UocGcpOw0KLSAgICAgfQ0KLS0g ICAgcmV0dXJuIDE7DQotKw0KLSsgICAgcmV0dXJuIHJjOw0KLSB9DQotIA0KLSBzdGF0aWMgaW50 IGFsbG9jX2wxX3RhYmxlKHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UpDQotQEAgLTE1NjEsNiArMTY1 Nyw3IEBAIHN0YXRpYyBpbnQgYWxsb2NfbDNfdGFibGUoc3RydWN0IHBhZ2VfaW5mbyAqcGFnZSkN Ci0gICAgICAgICB7DQotICAgICAgICAgICAgIHBhZ2UtPm5yX3ZhbGlkYXRlZF9wdGVzID0gaTsN Ci0gICAgICAgICAgICAgcGFnZS0+cGFydGlhbF9wdGUgPSAwOw0KLSsgICAgICAgICAgICBjdXJy ZW50LT5hcmNoLm9sZF9ndWVzdF9wdHBnID0gTlVMTDsNCi0gICAgICAgICAgICAgY3VycmVudC0+ YXJjaC5vbGRfZ3Vlc3RfdGFibGUgPSBwYWdlOw0KLSAgICAgICAgIH0NCi0gICAgICAgICB3aGls ZSAoIGktLSA+IDAgKQ0KLUBAIC0xNjU0LDYgKzE3NTEsNyBAQCBzdGF0aWMgaW50IGFsbG9jX2w0 X3RhYmxlKHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UpDQotICAgICAgICAgICAgICAgICB7DQotICAg ICAgICAgICAgICAgICAgICAgaWYgKCBjdXJyZW50LT5hcmNoLm9sZF9ndWVzdF90YWJsZSApDQot ICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2UtPm5yX3ZhbGlkYXRlZF9wdGVzKys7DQotKyAg ICAgICAgICAgICAgICAgICAgY3VycmVudC0+YXJjaC5vbGRfZ3Vlc3RfcHRwZyA9IE5VTEw7DQot ICAgICAgICAgICAgICAgICAgICAgY3VycmVudC0+YXJjaC5vbGRfZ3Vlc3RfdGFibGUgPSBwYWdl Ow0KLSAgICAgICAgICAgICAgICAgfQ0KLSAgICAgICAgICAgICB9DQotQEAgLTI0MDMsMTQgKzI1 MDEsMjAgQEAgaW50IGZyZWVfcGFnZV90eXBlKHN0cnVjdCBwYWdlX2luZm8gKnBhZw0KLSB9DQot IA0KLSANCi0tc3RhdGljIGludCBfX3B1dF9maW5hbF9wYWdlX3R5cGUoDQotLSAgICBzdHJ1Y3Qg cGFnZV9pbmZvICpwYWdlLCB1bnNpZ25lZCBsb25nIHR5cGUsIGludCBwcmVlbXB0aWJsZSkNCi0r c3RhdGljIGludCBfcHV0X2ZpbmFsX3BhZ2VfdHlwZShzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlLCB1 bnNpZ25lZCBsb25nIHR5cGUsDQotKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9v bCBwcmVlbXB0aWJsZSwgc3RydWN0IHBhZ2VfaW5mbyAqcHRwZykNCi0gew0KLSAgICAgaW50IHJj ID0gZnJlZV9wYWdlX3R5cGUocGFnZSwgdHlwZSwgcHJlZW1wdGlibGUpOw0KLSANCi0gICAgIC8q IE5vIG5lZWQgZm9yIGF0b21pYyB1cGRhdGUgb2YgdHlwZV9pbmZvIGhlcmU6IG5vb25lIGVsc2Ug dXBkYXRlcyBpdC4gKi8NCi0gICAgIGlmICggcmMgPT0gMCApDQotICAgICB7DQotKyAgICAgICAg aWYgKCBwdHBnICYmIFBHVF90eXBlX2VxdWFsKHR5cGUsIHB0cGctPnUuaW51c2UudHlwZV9pbmZv KSApDQotKyAgICAgICAgew0KLSsgICAgICAgICAgICBkZWNfbGluZWFyX3VzZXMocGFnZSk7DQot KyAgICAgICAgICAgIGRlY19saW5lYXJfZW50cmllcyhwdHBnKTsNCi0rICAgICAgICB9DQotKyAg ICAgICAgQVNTRVJUKCFwYWdlLT5saW5lYXJfcHRfY291bnQgfHwgcGFnZV9nZXRfb3duZXIocGFn ZSktPmlzX2R5aW5nKTsNCi0gICAgICAgICAvKg0KLSAgICAgICAgICAqIFJlY29yZCBUTEIgaW5m b3JtYXRpb24gZm9yIGZsdXNoIGxhdGVyLiBXZSBkbyBub3Qgc3RhbXAgcGFnZSB0YWJsZXMNCi0g ICAgICAgICAgKiB3aGVuIHJ1bm5pbmcgaW4gc2hhZG93IG1vZGU6DQotQEAgLTI0NDYsOCArMjU1 MCw4IEBAIHN0YXRpYyBpbnQgX19wdXRfZmluYWxfcGFnZV90eXBlKA0KLSB9DQotIA0KLSANCi0t c3RhdGljIGludCBfX3B1dF9wYWdlX3R5cGUoc3RydWN0IHBhZ2VfaW5mbyAqcGFnZSwNCi0tICAg ICAgICAgICAgICAgICAgICAgICAgICAgaW50IHByZWVtcHRpYmxlKQ0KLStzdGF0aWMgaW50IF9w dXRfcGFnZV90eXBlKHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UsIGJvb2wgcHJlZW1wdGlibGUsDQot KyAgICAgICAgICAgICAgICAgICAgICAgICAgc3RydWN0IHBhZ2VfaW5mbyAqcHRwZykNCi0gew0K LSAgICAgdW5zaWduZWQgbG9uZyBueCwgeCwgeSA9IHBhZ2UtPnUuaW51c2UudHlwZV9pbmZvOw0K LSAgICAgaW50IHJjID0gMDsNCi1AQCAtMjQ3NCwxMiArMjU3OCwyOCBAQCBzdGF0aWMgaW50IF9f cHV0X3BhZ2VfdHlwZShzdHJ1Y3QgcGFnZV9pbmZvICpwYWdlLA0KLSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgeCwgbngpKSAhPSB4KSApDQotICAgICAgICAgICAg ICAgICAgICAgY29udGludWU7DQotICAgICAgICAgICAgICAgICAvKiBXZSBjbGVhcmVkIHRoZSAn dmFsaWQgYml0JyBzbyB3ZSBkbyB0aGUgY2xlYW4gdXAuICovDQotLSAgICAgICAgICAgICAgICBy YyA9IF9fcHV0X2ZpbmFsX3BhZ2VfdHlwZShwYWdlLCB4LCBwcmVlbXB0aWJsZSk7DQotKyAgICAg ICAgICAgICAgICByYyA9IF9wdXRfZmluYWxfcGFnZV90eXBlKHBhZ2UsIHgsIHByZWVtcHRpYmxl LCBwdHBnKTsNCi0rICAgICAgICAgICAgICAgIHB0cGcgPSBOVUxMOw0KLSAgICAgICAgICAgICAg ICAgaWYgKCB4ICYgUEdUX3BhcnRpYWwgKQ0KLSAgICAgICAgICAgICAgICAgICAgIHB1dF9wYWdl KHBhZ2UpOw0KLSAgICAgICAgICAgICAgICAgYnJlYWs7DQotICAgICAgICAgICAgIH0NCi0gDQot KyAgICAgICAgICAgIGlmICggcHRwZyAmJiBQR1RfdHlwZV9lcXVhbCh4LCBwdHBnLT51LmludXNl LnR5cGVfaW5mbykgKQ0KLSsgICAgICAgICAgICB7DQotKyAgICAgICAgICAgICAgICAvKg0KLSsg ICAgICAgICAgICAgICAgICogcGFnZV9zZXRfdGxiZmx1c2hfdGltZXN0YW1wKCkgYWNjZXNzZXMg dGhlIHNhbWUgdW5pb24NCi0rICAgICAgICAgICAgICAgICAqIGxpbmVhcl9wdF9jb3VudCBsaXZl cyBpbi4gVW52YWxpZGF0ZWQgcGFnZSB0YWJsZSBwYWdlcywNCi0rICAgICAgICAgICAgICAgICAq IGhvd2V2ZXIsIHNob3VsZCBvY2N1ciBkdXJpbmcgZG9tYWluIGRlc3RydWN0aW9uIG9ubHkNCi0r ICAgICAgICAgICAgICAgICAqIGFueXdheS4gIFVwZGF0aW5nIG9mIGxpbmVhcl9wdF9jb3VudCBs dWNraWx5IGlzIG5vdA0KLSsgICAgICAgICAgICAgICAgICogbmVjZXNzYXJ5IGFueW1vcmUgZm9y IGEgZHlpbmcgZG9tYWluLg0KLSsgICAgICAgICAgICAgICAgICovDQotKyAgICAgICAgICAgICAg ICBBU1NFUlQocGFnZV9nZXRfb3duZXIocGFnZSktPmlzX2R5aW5nKTsNCi0rICAgICAgICAgICAg ICAgIEFTU0VSVChwYWdlLT5saW5lYXJfcHRfY291bnQgPCAwKTsNCi0rICAgICAgICAgICAgICAg IEFTU0VSVChwdHBnLT5saW5lYXJfcHRfY291bnQgPiAwKTsNCi0rICAgICAgICAgICAgICAgIHB0 cGcgPSBOVUxMOw0KLSsgICAgICAgICAgICB9DQotKw0KLSAgICAgICAgICAgICAvKg0KLSAgICAg ICAgICAgICAgKiBSZWNvcmQgVExCIGluZm9ybWF0aW9uIGZvciBmbHVzaCBsYXRlci4gV2UgZG8g bm90IHN0YW1wIHBhZ2UNCi0gICAgICAgICAgICAgICogdGFibGVzIHdoZW4gcnVubmluZyBpbiBz aGFkb3cgbW9kZToNCi1AQCAtMjQ5OSw2ICsyNjE5LDEzIEBAIHN0YXRpYyBpbnQgX19wdXRfcGFn ZV90eXBlKHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UsDQotICAgICAgICAgICAgIHJldHVybiAtRUlO VFI7DQotICAgICB9DQotIA0KLSsgICAgaWYgKCBwdHBnICYmIFBHVF90eXBlX2VxdWFsKHgsIHB0 cGctPnUuaW51c2UudHlwZV9pbmZvKSApDQotKyAgICB7DQotKyAgICAgICAgQVNTRVJUKCFyYyk7 DQotKyAgICAgICAgZGVjX2xpbmVhcl91c2VzKHBhZ2UpOw0KLSsgICAgICAgIGRlY19saW5lYXJf ZW50cmllcyhwdHBnKTsNCi0rICAgIH0NCi0rDQotICAgICByZXR1cm4gcmM7DQotIH0NCi0gDQot QEAgLTI2MzgsNiArMjc2NSw3IEBAIHN0YXRpYyBpbnQgX19nZXRfcGFnZV90eXBlKHN0cnVjdCBw YWdlX2luZm8gKnBhZ2UsIHVuc2lnbmVkIGxvbmcgdHlwZSwNCi0gICAgICAgICAgICAgcGFnZS0+ bnJfdmFsaWRhdGVkX3B0ZXMgPSAwOw0KLSAgICAgICAgICAgICBwYWdlLT5wYXJ0aWFsX3B0ZSA9 IDA7DQotICAgICAgICAgfQ0KLSsgICAgICAgIHBhZ2UtPmxpbmVhcl9wdF9jb3VudCA9IDA7DQot ICAgICAgICAgcmMgPSBhbGxvY19wYWdlX3R5cGUocGFnZSwgdHlwZSwgcHJlZW1wdGlibGUpOw0K LSAgICAgfQ0KLSANCi1AQCAtMjY1Miw3ICsyNzgwLDcgQEAgc3RhdGljIGludCBfX2dldF9wYWdl X3R5cGUoc3RydWN0IHBhZ2VfaW5mbyAqcGFnZSwgdW5zaWduZWQgbG9uZyB0eXBlLA0KLSANCi0g dm9pZCBwdXRfcGFnZV90eXBlKHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UpDQotIHsNCi0tICAgIGlu dCByYyA9IF9fcHV0X3BhZ2VfdHlwZShwYWdlLCAwKTsNCi0rICAgIGludCByYyA9IF9wdXRfcGFn ZV90eXBlKHBhZ2UsIGZhbHNlLCBOVUxMKTsNCi0gICAgIEFTU0VSVChyYyA9PSAwKTsNCi0gICAg ICh2b2lkKXJjOw0KLSB9DQotQEAgLTI2NjgsNyArMjc5Niw3IEBAIGludCBnZXRfcGFnZV90eXBl KHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UsIHVuc2lnbmVkIGxvbmcgdHlwZSkNCi0gDQotIGludCBw dXRfcGFnZV90eXBlX3ByZWVtcHRpYmxlKHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UpDQotIHsNCi0t ICAgIHJldHVybiBfX3B1dF9wYWdlX3R5cGUocGFnZSwgMSk7DQotKyAgICByZXR1cm4gX3B1dF9w YWdlX3R5cGUocGFnZSwgdHJ1ZSwgTlVMTCk7DQotIH0NCi0gDQotIGludCBnZXRfcGFnZV90eXBl X3ByZWVtcHRpYmxlKHN0cnVjdCBwYWdlX2luZm8gKnBhZ2UsIHVuc2lnbmVkIGxvbmcgdHlwZSkN Ci1AQCAtMjg3OCwxMSArMzAwNiwxNCBAQCBpbnQgcHV0X29sZF9ndWVzdF90YWJsZShzdHJ1Y3Qg dmNwdSAqdikNCi0gICAgIGlmICggIXYtPmFyY2gub2xkX2d1ZXN0X3RhYmxlICkNCi0gICAgICAg ICByZXR1cm4gMDsNCi0gDQotLSAgICBzd2l0Y2ggKCByYyA9IHB1dF9wYWdlX2FuZF90eXBlX3By ZWVtcHRpYmxlKHYtPmFyY2gub2xkX2d1ZXN0X3RhYmxlKSApDQotKyAgICBzd2l0Y2ggKCByYyA9 IF9wdXRfcGFnZV90eXBlKHYtPmFyY2gub2xkX2d1ZXN0X3RhYmxlLCB0cnVlLA0KLSsgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB2LT5hcmNoLm9sZF9ndWVzdF9wdHBnKSApDQotICAg ICB7DQotICAgICBjYXNlIC1FSU5UUjoNCi0gICAgIGNhc2UgLUVSRVNUQVJUOg0KLSAgICAgICAg IHJldHVybiAtRVJFU1RBUlQ7DQotKyAgICBjYXNlIDA6DQotKyAgICAgICAgcHV0X3BhZ2Uodi0+ YXJjaC5vbGRfZ3Vlc3RfdGFibGUpOw0KLSAgICAgfQ0KLSANCi0gICAgIHYtPmFyY2gub2xkX2d1 ZXN0X3RhYmxlID0gTlVMTDsNCi1AQCAtMzA0Miw2ICszMTczLDcgQEAgaW50IG5ld19ndWVzdF9j cjModW5zaWduZWQgbG9uZyBtZm4pDQotICAgICAgICAgICAgICAgICByYyA9IC1FUkVTVEFSVDsN Ci0gICAgICAgICAgICAgICAgIC8qIGZhbGx0aHJvdWdoICovDQotICAgICAgICAgICAgIGNhc2Ug LUVSRVNUQVJUOg0KLSsgICAgICAgICAgICAgICAgY3Vyci0+YXJjaC5vbGRfZ3Vlc3RfcHRwZyA9 IE5VTEw7DQotICAgICAgICAgICAgICAgICBjdXJyLT5hcmNoLm9sZF9ndWVzdF90YWJsZSA9IHBh Z2U7DQotICAgICAgICAgICAgICAgICBicmVhazsNCi0gICAgICAgICAgICAgZGVmYXVsdDoNCi1A QCAtMzMxMCw3ICszNDQyLDEwIEBAIGxvbmcgZG9fbW11ZXh0X29wKA0KLSAgICAgICAgICAgICAg ICAgICAgIGlmICggdHlwZSA9PSBQR1RfbDFfcGFnZV90YWJsZSApDQotICAgICAgICAgICAgICAg ICAgICAgICAgIHB1dF9wYWdlX2FuZF90eXBlKHBhZ2UpOw0KLSAgICAgICAgICAgICAgICAgICAg IGVsc2UNCi0rICAgICAgICAgICAgICAgICAgICB7DQotKyAgICAgICAgICAgICAgICAgICAgICAg IGN1cnItPmFyY2gub2xkX2d1ZXN0X3B0cGcgPSBOVUxMOw0KLSAgICAgICAgICAgICAgICAgICAg ICAgICBjdXJyLT5hcmNoLm9sZF9ndWVzdF90YWJsZSA9IHBhZ2U7DQotKyAgICAgICAgICAgICAg ICAgICAgfQ0KLSAgICAgICAgICAgICAgICAgfQ0KLSAgICAgICAgICAgICB9DQotIA0KLUBAIC0z MzQ2LDYgKzM0ODEsNyBAQCBsb25nIGRvX21tdWV4dF9vcCgNCi0gICAgICAgICAgICAgew0KLSAg ICAgICAgICAgICBjYXNlIC1FSU5UUjoNCi0gICAgICAgICAgICAgY2FzZSAtRVJFU1RBUlQ6DQot KyAgICAgICAgICAgICAgICBjdXJyLT5hcmNoLm9sZF9ndWVzdF9wdHBnID0gTlVMTDsNCi0gICAg ICAgICAgICAgICAgIGN1cnItPmFyY2gub2xkX2d1ZXN0X3RhYmxlID0gcGFnZTsNCi0gICAgICAg ICAgICAgICAgIHJjID0gMDsNCi0gICAgICAgICAgICAgICAgIGJyZWFrOw0KLUBAIC0zNDI1LDYg KzM1NjEsNyBAQCBsb25nIGRvX21tdWV4dF9vcCgNCi0gICAgICAgICAgICAgICAgICAgICAgICAg cmMgPSAtRVJFU1RBUlQ7DQotICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGZhbGx0aHJvdWdo ICovDQotICAgICAgICAgICAgICAgICAgICAgY2FzZSAtRVJFU1RBUlQ6DQotKyAgICAgICAgICAg ICAgICAgICAgICAgIGN1cnItPmFyY2gub2xkX2d1ZXN0X3B0cGcgPSBOVUxMOw0KLSAgICAgICAg ICAgICAgICAgICAgICAgICBjdXJyLT5hcmNoLm9sZF9ndWVzdF90YWJsZSA9IHBhZ2U7DQotICAg ICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOw0KLSAgICAgICAgICAgICAgICAgICAgIGRlZmF1 bHQ6DQotZGlmZiAtLWdpdCBhL3hlbi9pbmNsdWRlL2FzbS14ODYvZG9tYWluLmggYi94ZW4vaW5j bHVkZS9hc20teDg2L2RvbWFpbi5oDQotaW5kZXggOTI0Y2FhYzgzNC4uNWE1MTI5MThjYyAxMDA2 NDQNCi0tLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2RvbWFpbi5oDQotKysrIGIveGVuL2luY2x1 ZGUvYXNtLXg4Ni9kb21haW4uaA0KLUBAIC01MjcsNiArNTI3LDggQEAgc3RydWN0IGFyY2hfdmNw dQ0KLSAgICAgcGFnZXRhYmxlX3QgZ3Vlc3RfdGFibGVfdXNlcjsgICAgICAgLyogKE1GTikgeDg2 LzY0IHVzZXItc3BhY2UgcGFnZXRhYmxlICovDQotICAgICBwYWdldGFibGVfdCBndWVzdF90YWJs ZTsgICAgICAgICAgICAvKiAoTUZOKSBndWVzdCBub3Rpb24gb2YgY3IzICovDQotICAgICBzdHJ1 Y3QgcGFnZV9pbmZvICpvbGRfZ3Vlc3RfdGFibGU7ICAvKiBwYXJ0aWFsbHkgZGVzdHJ1Y3RlZCBw YWdldGFibGUgKi8NCi0rICAgIHN0cnVjdCBwYWdlX2luZm8gKm9sZF9ndWVzdF9wdHBnOyAgIC8q IGNvbnRhaW5pbmcgcGFnZSB0YWJsZSBvZiB0aGUgKi8NCi0rICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIC8qIGZvcm1lciwgaWYgYW55ICovDQotICAgICAvKiBndWVzdF90 YWJsZSBob2xkcyBhIHJlZiB0byB0aGUgcGFnZSwgYW5kIGFsc28gYSB0eXBlLWNvdW50IHVubGVz cw0KLSAgICAgICogc2hhZG93IHJlZmNvdW50cyBhcmUgaW4gdXNlICovDQotICAgICBwYWdldGFi bGVfdCBzaGFkb3dfdGFibGVbNF07ICAgICAgICAvKiAoTUZOKSBzaGFkb3cocykgb2YgZ3Vlc3Qg Ki8NCi1kaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLXg4Ni9tbS5oIGIveGVuL2luY2x1ZGUv YXNtLXg4Ni9tbS5oDQotaW5kZXggMTE5ZDdkZWM2Yi4uNDQ1ZGE1MGQ0NyAxMDA2NDQNCi0tLS0g YS94ZW4vaW5jbHVkZS9hc20teDg2L21tLmgNCi0rKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L21t LmgNCi1AQCAtMTI0LDExICsxMjQsMTEgQEAgc3RydWN0IHBhZ2VfaW5mbw0KLSAgICAgICAgIHUz MiB0bGJmbHVzaF90aW1lc3RhbXA7DQotIA0KLSAgICAgICAgIC8qDQotLSAgICAgICAgICogV2hl biBQR1RfcGFydGlhbCBpcyB0cnVlIHRoZW4gdGhpcyBmaWVsZCBpcyB2YWxpZCBhbmQgaW5kaWNh dGVzDQotLSAgICAgICAgICogdGhhdCBQVEVzIGluIHRoZSByYW5nZSBbMCwgQG5yX3ZhbGlkYXRl ZF9wdGVzKSBoYXZlIGJlZW4gdmFsaWRhdGVkLg0KLS0gICAgICAgICAqIEFuIGV4dHJhIHBhZ2Ug cmVmZXJlbmNlIG11c3QgYmUgYWNxdWlyZWQgKG9yIG5vdCBkcm9wcGVkKSB3aGVuZXZlcg0KLS0g ICAgICAgICAqIFBHVF9wYXJ0aWFsIGdldHMgc2V0LCBhbmQgaXQgbXVzdCBiZSBkcm9wcGVkIHdo ZW4gdGhlIGZsYWcgZ2V0cw0KLS0gICAgICAgICAqIGNsZWFyZWQuIFRoaXMgaXMgc28gdGhhdCBh IGdldCgpIGxlYXZpbmcgYSBwYWdlIGluIHBhcnRpYWxseQ0KLSsgICAgICAgICAqIFdoZW4gUEdU X3BhcnRpYWwgaXMgdHJ1ZSB0aGVuIHRoZSBmaXJzdCB0d28gZmllbGRzIGFyZSB2YWxpZCBhbmQN Ci0rICAgICAgICAgKiBpbmRpY2F0ZSB0aGF0IFBURXMgaW4gdGhlIHJhbmdlIFswLCBAbnJfdmFs aWRhdGVkX3B0ZXMpIGhhdmUgYmVlbg0KLSsgICAgICAgICAqIHZhbGlkYXRlZC4gQW4gZXh0cmEg cGFnZSByZWZlcmVuY2UgbXVzdCBiZSBhY3F1aXJlZCAob3Igbm90IGRyb3BwZWQpDQotKyAgICAg ICAgICogd2hlbmV2ZXIgUEdUX3BhcnRpYWwgZ2V0cyBzZXQsIGFuZCBpdCBtdXN0IGJlIGRyb3Bw ZWQgd2hlbiB0aGUgZmxhZw0KLSsgICAgICAgICAqIGdldHMgY2xlYXJlZC4gVGhpcyBpcyBzbyB0 aGF0IGEgZ2V0KCkgbGVhdmluZyBhIHBhZ2UgaW4gcGFydGlhbGx5DQotICAgICAgICAgICogdmFs aWRhdGVkIHN0YXRlICh3aGVyZSB0aGUgY2FsbGVyIHdvdWxkIGRyb3AgdGhlIHJlZmVyZW5jZSBh Y3F1aXJlZA0KLSAgICAgICAgICAqIGR1ZSB0byB0aGUgZ2V0dGluZyBvZiB0aGUgdHlwZSBbYXBw YXJlbnRseV0gZmFpbGluZyBbLUVSRVNUQVJUXSkNCi0gICAgICAgICAgKiB3b3VsZCBub3QgYWNj aWRlbnRhbGx5IHJlc3VsdCBpbiBhIHBhZ2UgbGVmdCB3aXRoIHplcm8gZ2VuZXJhbA0KLUBAIC0x NTIsMTAgKzE1MiwxOCBAQCBzdHJ1Y3QgcGFnZV9pbmZvDQotICAgICAgICAgICogcHV0X3BhZ2Vf ZnJvbV9sTmUoKSAoZHVlIHRvIHRoZSBhcHBhcmVudCBmYWlsdXJlKSwgYW5kIGhlbmNlIGl0DQot ICAgICAgICAgICogbXVzdCBiZSBkcm9wcGVkIHdoZW4gdGhlIHB1dCBvcGVyYXRpb24gaXMgcmVz dW1lZCAoYW5kIGNvbXBsZXRlcyksDQotICAgICAgICAgICogYnV0IGl0IG11c3Qgbm90IGJlIGFj cXVpcmVkIGlmIHBpY2tpbmcgdXAgdGhlIHBhZ2UgZm9yIHZhbGlkYXRpb24uDQotKyAgICAgICAg ICoNCi0rICAgICAgICAgKiBUaGUgM3JkIGZpZWxkLCBAbGluZWFyX3B0X2NvdW50LCBpbmRpY2F0 ZXMNCi0rICAgICAgICAgKiAtIGJ5IGEgcG9zaXRpdmUgdmFsdWUsIGhvdyBtYW55IHNhbWUtbGV2 ZWwgcGFnZSB0YWJsZSBlbnRyaWVzIGEgcGFnZQ0KLSsgICAgICAgICAqICAgdGFibGUgaGFzLA0K LSsgICAgICAgICAqIC0gYnkgYSBuZWdhdGl2ZSB2YWx1ZSwgaW4gaG93IG1hbnkgc2FtZS1sZXZl bCBwYWdlIHRhYmxlcyBhIHBhZ2UgaXMNCi0rICAgICAgICAgKiAgIGluIHVzZS4NCi0gICAgICAg ICAgKi8NCi0gICAgICAgICBzdHJ1Y3Qgew0KLS0gICAgICAgICAgICB1MTYgbnJfdmFsaWRhdGVk X3B0ZXM7DQotLSAgICAgICAgICAgIHM4IHBhcnRpYWxfcHRlOw0KLSsgICAgICAgICAgICB1MTYg bnJfdmFsaWRhdGVkX3B0ZXM6UEFHRVRBQkxFX09SREVSICsgMTsNCi0rICAgICAgICAgICAgdTE2 IDoxNiAtIFBBR0VUQUJMRV9PUkRFUiAtIDEgLSAyOw0KLSsgICAgICAgICAgICBzMTYgcGFydGlh bF9wdGU6MjsNCi0rICAgICAgICAgICAgczE2IGxpbmVhcl9wdF9jb3VudDsNCi0gICAgICAgICB9 Ow0KLSANCi0gICAgICAgICAvKg0KLUBAIC0yMDYsNiArMjE0LDkgQEAgc3RydWN0IHBhZ2VfaW5m bw0KLSAjZGVmaW5lIFBHVF9jb3VudF93aWR0aCAgIFBHX3NoaWZ0KDkpDQotICNkZWZpbmUgUEdU X2NvdW50X21hc2sgICAgKCgxVUw8PFBHVF9jb3VudF93aWR0aCktMSkNCi0gDQotKy8qIEFyZSB0 aGUgJ3R5cGUgbWFzaycgYml0cyBpZGVudGljYWw/ICovDQotKyNkZWZpbmUgUEdUX3R5cGVfZXF1 YWwoeCwgeSkgKCEoKCh4KSBeICh5KSkgJiBQR1RfdHlwZV9tYXNrKSkNCi0rDQotICAvKiBDbGVh cmVkIHdoZW4gdGhlIG93bmluZyBndWVzdCAnZnJlZXMnIHRoaXMgcGFnZS4gKi8NCi0gI2RlZmlu ZSBfUEdDX2FsbG9jYXRlZCAgICBQR19zaGlmdCgxKQ0KLSAjZGVmaW5lIFBHQ19hbGxvY2F0ZWQg ICAgIFBHX21hc2soMSwgMSkNCi0tLSANCi0yLjE0LjENCi0NCmRpZmYgLS1naXQgYS9tYWluL3hl bi94c2EyNDAtMi5wYXRjaCBiL21haW4veGVuL3hzYTI0MC0yLnBhdGNoDQpkZWxldGVkIGZpbGUg bW9kZSAxMDA2NDQNCmluZGV4IDVlMDU3YzU2NTIuLjAwMDAwMDAwMDANCi0tLSBhL21haW4veGVu L3hzYTI0MC0yLnBhdGNoDQorKysgL2Rldi9udWxsDQpAQCAtMSw4MyArMCwwIEBADQotRnJvbSBl NjE0OTc5Y2UwNTQwNDRkOWUxOTAyM2YxZWYxMGRhZTZlMzhiYWY0IE1vbiBTZXAgMTcgMDA6MDA6 MDAgMjAwMQ0KLUZyb206IEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAY2l0cml4LmNvbT4N Ci1EYXRlOiBGcmksIDIyIFNlcCAyMDE3IDExOjQ2OjU1ICswMTAwDQotU3ViamVjdDogW1BBVENI IDIvMl0geDg2L21tOiBEaXNhYmxlIFBWIGxpbmVhciBwYWdldGFibGVzIGJ5IGRlZmF1bHQNCi0N Ci1BbGxvd2luZyBwYWdldGFibGVzIHRvIHBvaW50IHRvIG90aGVyIHBhZ2V0YWJsZXMgb2YgdGhl IHNhbWUgbGV2ZWwNCi0ob2Z0ZW4gY2FsbGVkICdsaW5lYXIgcGFnZXRhYmxlcycpIGhhcyBiZWVu IGluY2x1ZGVkIGluIFhlbiBzaW5jZSBpdHMNCi1pbmNlcHRpb24uICBCdXQgaXQgaXMgbm90IHVz ZWQgYnkgdGhlIG1vc3QgY29tbW9uIFBWIGd1ZXN0cyAoTGludXgsDQotTmV0QlNELCBtaW5pb3Mp LCBhbmQgaGFzIGJlZW4gdGhlIHNvdXJjZSBvZiBhIG51bWJlciBvZiBzdWJ0bGUNCi1yZWZlcmVu Y2UtY291bnRpbmcgYnVncy4NCi0NCi1BZGQgYSBjb21tYW5kLWxpbmUgb3B0aW9uIHRvIGNvbnRy b2wgd2hldGhlciBQViBsaW5lYXIgcGFnZXRhYmxlcyBhcmUNCi1hbGxvd2VkIChkaXNhYmxlZCBi eSBkZWZhdWx0KS4NCi0NCi1SZXBvcnRlZC1ieTogSmFubiBIb3JuIDxqYW5uaEBnb29nbGUuY29t Pg0KLVNpZ25lZC1vZmYtYnk6IEdlb3JnZSBEdW5sYXAgPGdlb3JnZS5kdW5sYXBAY2l0cml4LmNv bT4NCi1SZXZpZXdlZC1ieTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNv bT4NCi0tLS0NCi1DaGFuZ2VzIHNpbmNlIHYyOg0KLS0gcy9fLy0vOyBpbiBjb21tYW5kLWxpbmUg b3B0aW9uDQotLSBBZGRlZCBfX3JlYWRfbW9zdGx5DQotLS0tDQotIGRvY3MvbWlzYy94ZW4tY29t bWFuZC1saW5lLm1hcmtkb3duIHwgMTUgKysrKysrKysrKysrKysrDQotIHhlbi9hcmNoL3g4Ni9t bS5jICAgICAgICAgICAgICAgICAgIHwgMTAgKysrKysrKysrKw0KLSAyIGZpbGVzIGNoYW5nZWQs IDI1IGluc2VydGlvbnMoKykNCi0NCi1kaWZmIC0tZ2l0IGEvZG9jcy9taXNjL3hlbi1jb21tYW5k LWxpbmUubWFya2Rvd24gYi9kb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5tYXJrZG93bg0KLWlu ZGV4IDQ0ZDk5ODUyYWEuLjQ1ZWY4NzNhYmIgMTAwNjQ0DQotLS0tIGEvZG9jcy9taXNjL3hlbi1j b21tYW5kLWxpbmUubWFya2Rvd24NCi0rKysgYi9kb2NzL21pc2MveGVuLWNvbW1hbmQtbGluZS5t YXJrZG93bg0KLUBAIC0xMzc0LDYgKzEzNzQsMjEgQEAgVGhlIGZvbGxvd2luZyByZXNvdXJjZXMg YXJlIGF2YWlsYWJsZToNCi0gICAgIENEUCwgb25lIENPUyB3aWxsIGNvcmVzcG9uZCB0d28gQ0JN cyBvdGhlciB0aGFuIG9uZSB3aXRoIENBVCwgZHVlIHRvIHRoZQ0KLSAgICAgc3VtIG9mIENCTXMg aXMgZml4ZWQsIHRoYXQgbWVhbnMgYWN0dWFsIGBjb3NfbWF4YCBpbiB1c2Ugd2lsbCBhdXRvbWF0 aWNhbGx5DQotICAgICByZWR1Y2UgdG8gaGFsZiB3aGVuIENEUCBpcyBlbmFibGVkLg0KLSsNCi0r IyMjIHB2LWxpbmVhci1wdA0KLSs+IGA9IDxib29sZWFuPmANCi0rDQotKz4gRGVmYXVsdDogYGZh bHNlYA0KLSsNCi0rQWxsb3cgUFYgZ3Vlc3RzIHRvIGhhdmUgcGFnZXRhYmxlIGVudHJpZXMgcG9p bnRpbmcgdG8gb3RoZXIgcGFnZXRhYmxlcw0KLStvZiB0aGUgc2FtZSBsZXZlbCAoaS5lLiwgYWxs b3dpbmcgTDIgUFRFcyB0byBwb2ludCB0byBvdGhlciBMMiBwYWdlcykuDQotK1RoaXMgdGVjaG5p cXVlIGlzIG9mdGVuIGNhbGxlZCAibGluZWFyIHBhZ2V0YWJsZXMiLCBhbmQgaXMgc29tZXRpbWVz DQotK3VzZWQgdG8gYWxsb3cgb3BlcmF0aW5nIHN5c3RlbXMgYSBzaW1wbGUgd2F5IHRvIGNvbnNp c3RlbnRseSBtYXAgdGhlDQotK2N1cnJlbnQgcHJvY2VzcydzIHBhZ2V0YWJsZXMgaW50byBpdHMg b3duIHZpcnR1YWwgYWRkcmVzcyBzcGFjZS4NCi0rDQotK05vbmUgb2YgdGhlIG1vc3QgY29tbW9u IFBWIG9wZXJhdGluZyBzeXN0ZW1zIChMaW51eCwgTmV0QlNELCBNaW5pT1MpDQotK3VzZSB0aGlz IHRlY2huaXF1ZSwgYnV0IHRoZXJlIG1heSBiZSBjdXN0b20gb3BlcmF0aW5nIHN5c3RlbXMgd2hp Y2gNCi0rZG8uDQotIA0KLSAjIyMgcmVib290DQotID4gYD0gdFtyaXBsZV0gfCBrW2JkXSB8IGFb Y3BpXSB8IHBbY2ldIHwgUFtvd2VyXSB8IGVbZmldIHwgbltvXSBbLCBbd11hcm0gfCBbY11vbGRd YA0KLWRpZmYgLS1naXQgYS94ZW4vYXJjaC94ODYvbW0uYyBiL3hlbi9hcmNoL3g4Ni9tbS5jDQot aW5kZXggMWU0NjliZDM1NC4uMzI5NTJhNDZiOSAxMDA2NDQNCi0tLS0gYS94ZW4vYXJjaC94ODYv bW0uYw0KLSsrKyBiL3hlbi9hcmNoL3g4Ni9tbS5jDQotQEAgLTgxNCw2ICs4MTQsOSBAQCBzdGF0 aWMgdm9pZCBkZWNfbGluZWFyX3VzZXMoc3RydWN0IHBhZ2VfaW5mbyAqcGcpDQotICAqICAgICBm cmFtZSBpZiBpdCBpcyBtYXBwZWQgYnkgYSBkaWZmZXJlbnQgcm9vdCB0YWJsZS4gVGhpcyBpcyBz dWZmaWNpZW50IGFuZA0KLSAgKiAgICAgYWxzbyBuZWNlc3NhcnkgdG8gYWxsb3cgdmFsaWRhdGlv biBvZiBhIHJvb3QgdGFibGUgbWFwcGluZyBpdHNlbGYuDQotICAqLw0KLStzdGF0aWMgYm9vbCBf X3JlYWRfbW9zdGx5IHB2X2xpbmVhcl9wdF9lbmFibGUgPSBmYWxzZTsNCi0rYm9vbGVhbl9wYXJh bSgicHYtbGluZWFyLXB0IiwgcHZfbGluZWFyX3B0X2VuYWJsZSk7DQotKw0KLSAjZGVmaW5lIGRl ZmluZV9nZXRfbGluZWFyX3BhZ2V0YWJsZShsZXZlbCkgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXA0KLSBzdGF0aWMgaW50ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXA0KLSBnZXRfIyNsZXZlbCMjX2xpbmVh cl9wYWdldGFibGUoICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg XA0KLUBAIC04MjMsNiArODI2LDEzIEBAIGdldF8jI2xldmVsIyNfbGluZWFyX3BhZ2V0YWJsZSgg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQotICAgICBzdHJ1 Y3QgcGFnZV9pbmZvICpwYWdlOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBcDQotICAgICB1bnNpZ25lZCBsb25nIHBmbjsgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQotICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBcDQotKyAgICBpZiAoICFwdl9saW5lYXJfcHRfZW5hYmxlICkgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBcDQotKyAgICB7ICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQotKyAg ICAgICAgZ2RwcmludGsoWEVOTE9HX1dBUk5JTkcsICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBcDQotKyAgICAgICAgICAgICAgICAgIkF0dGVtcHQgdG8gY3JlYXRl IGxpbmVhciBwLnQuIChmZWF0dXJlIGRpc2FibGVkKVxuIik7ICAgICBcDQotKyAgICAgICAgcmV0 dXJuIDA7ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBcDQotKyAgICB9ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQotKyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBc DQotICAgICBpZiAoIChsZXZlbCMjZV9nZXRfZmxhZ3MocGRlKSAmIF9QQUdFX1JXKSApICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBcDQotICAgICB7ICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcDQotICAgICAg ICAgZ2RwcmludGsoWEVOTE9HX1dBUk5JTkcsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBcDQotLS0gDQotMi4xNC4xDQotDQpkaWZmIC0tZ2l0IGEvbWFpbi94ZW4v eHNhMjQxLTQuOS5wYXRjaCBiL21haW4veGVuL3hzYTI0MS00LjkucGF0Y2gNCmRlbGV0ZWQgZmls ZSBtb2RlIDEwMDY0NA0KaW5kZXggNTE0ZTRjN2E0Yi4uMDAwMDAwMDAwMA0KLS0tIGEvbWFpbi94 ZW4veHNhMjQxLTQuOS5wYXRjaA0KKysrIC9kZXYvbnVsbA0KQEAgLTEsMTIwICswLDAgQEANCi1G cm9tOiBKYW4gQmV1bGljaCA8amJldWxpY2hAc3VzZS5jb20+DQotU3ViamVjdDogeDg2OiBkb24n dCBzdG9yZSBwb3NzaWJseSBzdGFsZSBUTEIgZmx1c2ggdGltZSBzdGFtcA0KLQ0KLVdoaWxlIHRo ZSB0aW1pbmcgd2luZG93IGlzIGV4dHJlbWVseSBuYXJyb3csIGl0IGlzIHRoZW9yZXRpY2FsbHkN Ci1wb3NzaWJsZSBmb3IgYW4gdXBkYXRlIHRvIHRoZSBUTEIgZmx1c2ggY2xvY2sgYW5kIGEgc3Vi c2VxdWVudCBmbHVzaA0KLUlQSSB0byBoYXBwZW4gYmV0d2VlbiB0aGUgcmVhZCBhbmQgd3JpdGUg cGFydHMgb2YgdGhlIHVwZGF0ZSBvZiB0aGUNCi1wZXItcGFnZSBzdGFtcC4gRXhjbHVkZSB0aGlz IHBvc3NpYmlsaXR5IGJ5IGRpc2FibGluZyBpbnRlcnJ1cHRzDQotYWNyb3NzIHRoZSB1cGRhdGUs IHByZXZlbnRpbmcgdGhlIElQSSB0byBiZSBzZXJ2aWNlZCBpbiB0aGUgbWlkZGxlLg0KLQ0KLVRo aXMgaXMgWFNBLTI0MS4NCi0NCi1SZXBvcnRlZC1ieTogSmFubiBIb3JuIDxqYW5uaEBnb29nbGUu Y29tPg0KLVN1Z2dlc3RlZC1ieTogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBjaXRyaXgu Y29tPg0KLVNpZ25lZC1vZmYtYnk6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4NCi1S ZXZpZXdlZC1ieTogR2VvcmdlIER1bmxhcCA8Z2VvcmdlLmR1bmxhcEBjaXRyaXguY29tPg0KLQ0K LS0tLSBhL3hlbi9hcmNoL2FybS9zbXAuYw0KLSsrKyBiL3hlbi9hcmNoL2FybS9zbXAuYw0KLUBA IC0xLDMgKzEsNCBAQA0KLSsjaW5jbHVkZSA8eGVuL21tLmg+DQotICNpbmNsdWRlIDxhc20vc3lz dGVtLmg+DQotICNpbmNsdWRlIDxhc20vc21wLmg+DQotICNpbmNsdWRlIDxhc20vY3ByZWdzLmg+ DQotLS0tIGEveGVuL2FyY2gveDg2L21tLmMNCi0rKysgYi94ZW4vYXJjaC94ODYvbW0uYw0KLUBA IC0yNTI0LDcgKzI1MjQsNyBAQCBzdGF0aWMgaW50IF9wdXRfZmluYWxfcGFnZV90eXBlKHN0cnVj dCBwDQotICAgICAgICAgICovDQotICAgICAgICAgaWYgKCAhKHNoYWRvd19tb2RlX2VuYWJsZWQo cGFnZV9nZXRfb3duZXIocGFnZSkpICYmDQotICAgICAgICAgICAgICAgIChwYWdlLT5jb3VudF9p bmZvICYgUEdDX3BhZ2VfdGFibGUpKSApDQotLSAgICAgICAgICAgIHBhZ2UtPnRsYmZsdXNoX3Rp bWVzdGFtcCA9IHRsYmZsdXNoX2N1cnJlbnRfdGltZSgpOw0KLSsgICAgICAgICAgICBwYWdlX3Nl dF90bGJmbHVzaF90aW1lc3RhbXAocGFnZSk7DQotICAgICAgICAgd21iKCk7DQotICAgICAgICAg cGFnZS0+dS5pbnVzZS50eXBlX2luZm8tLTsNCi0gICAgIH0NCi1AQCAtMjUzNCw3ICsyNTM0LDcg QEAgc3RhdGljIGludCBfcHV0X2ZpbmFsX3BhZ2VfdHlwZShzdHJ1Y3QgcA0KLSAgICAgICAgICAg ICAgICAgKFBHVF9jb3VudF9tYXNrfFBHVF92YWxpZGF0ZWR8UEdUX3BhcnRpYWwpKSA9PSAxKTsN Ci0gICAgICAgICBpZiAoICEoc2hhZG93X21vZGVfZW5hYmxlZChwYWdlX2dldF9vd25lcihwYWdl KSkgJiYNCi0gICAgICAgICAgICAgICAgKHBhZ2UtPmNvdW50X2luZm8gJiBQR0NfcGFnZV90YWJs ZSkpICkNCi0tICAgICAgICAgICAgcGFnZS0+dGxiZmx1c2hfdGltZXN0YW1wID0gdGxiZmx1c2hf Y3VycmVudF90aW1lKCk7DQotKyAgICAgICAgICAgIHBhZ2Vfc2V0X3RsYmZsdXNoX3RpbWVzdGFt cChwYWdlKTsNCi0gICAgICAgICB3bWIoKTsNCi0gICAgICAgICBwYWdlLT51LmludXNlLnR5cGVf aW5mbyB8PSBQR1RfdmFsaWRhdGVkOw0KLSAgICAgfQ0KLUBAIC0yNTg4LDcgKzI1ODgsNyBAQCBz dGF0aWMgaW50IF9wdXRfcGFnZV90eXBlKHN0cnVjdCBwYWdlX2luDQotICAgICAgICAgICAgIGlm ICggcHRwZyAmJiBQR1RfdHlwZV9lcXVhbCh4LCBwdHBnLT51LmludXNlLnR5cGVfaW5mbykgKQ0K LSAgICAgICAgICAgICB7DQotICAgICAgICAgICAgICAgICAvKg0KLS0gICAgICAgICAgICAgICAg ICogcGFnZV9zZXRfdGxiZmx1c2hfdGltZXN0YW1wKCkgYWNjZXNzZXMgdGhlIHNhbWUgdW5pb24N Ci0rICAgICAgICAgICAgICAgICAqIHNldF90bGJmbHVzaF90aW1lc3RhbXAoKSBhY2Nlc3NlcyB0 aGUgc2FtZSB1bmlvbg0KLSAgICAgICAgICAgICAgICAgICogbGluZWFyX3B0X2NvdW50IGxpdmVz IGluLiBVbnZhbGlkYXRlZCBwYWdlIHRhYmxlIHBhZ2VzLA0KLSAgICAgICAgICAgICAgICAgICog aG93ZXZlciwgc2hvdWxkIG9jY3VyIGR1cmluZyBkb21haW4gZGVzdHJ1Y3Rpb24gb25seQ0KLSAg ICAgICAgICAgICAgICAgICogYW55d2F5LiAgVXBkYXRpbmcgb2YgbGluZWFyX3B0X2NvdW50IGx1 Y2tpbHkgaXMgbm90DQotQEAgLTI2MDksNyArMjYwOSw3IEBAIHN0YXRpYyBpbnQgX3B1dF9wYWdl X3R5cGUoc3RydWN0IHBhZ2VfaW4NCi0gICAgICAgICAgICAgICovDQotICAgICAgICAgICAgIGlm ICggIShzaGFkb3dfbW9kZV9lbmFibGVkKHBhZ2VfZ2V0X293bmVyKHBhZ2UpKSAmJg0KLSAgICAg ICAgICAgICAgICAgICAgKHBhZ2UtPmNvdW50X2luZm8gJiBQR0NfcGFnZV90YWJsZSkpICkNCi0t ICAgICAgICAgICAgICAgIHBhZ2UtPnRsYmZsdXNoX3RpbWVzdGFtcCA9IHRsYmZsdXNoX2N1cnJl bnRfdGltZSgpOw0KLSsgICAgICAgICAgICAgICAgcGFnZV9zZXRfdGxiZmx1c2hfdGltZXN0YW1w KHBhZ2UpOw0KLSAgICAgICAgIH0NCi0gDQotICAgICAgICAgaWYgKCBsaWtlbHkoKHkgPSBjbXB4 Y2hnKCZwYWdlLT51LmludXNlLnR5cGVfaW5mbywgeCwgbngpKSA9PSB4KSApDQotLS0tIGEveGVu L2FyY2gveDg2L21tL3NoYWRvdy9jb21tb24uYw0KLSsrKyBiL3hlbi9hcmNoL3g4Ni9tbS9zaGFk b3cvY29tbW9uLmMNCi1AQCAtMTQ2NCw3ICsxNDY0LDcgQEAgdm9pZCBzaGFkb3dfZnJlZShzdHJ1 Y3QgZG9tYWluICpkLCBtZm5fdA0KLSAgICAgICAgICAqIFRMQnMgd2hlbiB3ZSByZXVzZSB0aGUg cGFnZS4gIEJlY2F1c2UgdGhlIGRlc3RydWN0b3JzIGxlYXZlIHRoZQ0KLSAgICAgICAgICAqIGNv bnRlbnRzIG9mIHRoZSBwYWdlcyBpbiBwbGFjZSwgd2UgY2FuIGRlbGF5IFRMQiBmbHVzaGVzIHVu dGlsDQotICAgICAgICAgICoganVzdCBiZWZvcmUgdGhlIGFsbG9jYXRvciBoYW5kcyB0aGUgcGFn ZSBvdXQgYWdhaW4uICovDQotLSAgICAgICAgc3AtPnRsYmZsdXNoX3RpbWVzdGFtcCA9IHRsYmZs dXNoX2N1cnJlbnRfdGltZSgpOw0KLSsgICAgICAgIHBhZ2Vfc2V0X3RsYmZsdXNoX3RpbWVzdGFt cChzcCk7DQotICAgICAgICAgcGVyZmNfZGVjcihzaGFkb3dfYWxsb2NfY291bnQpOw0KLSAgICAg ICAgIHBhZ2VfbGlzdF9hZGRfdGFpbChzcCwgJmQtPmFyY2gucGFnaW5nLnNoYWRvdy5mcmVlbGlz dCk7DQotICAgICAgICAgc3AgPSBuZXh0Ow0KLS0tLSBhL3hlbi9jb21tb24vcGFnZV9hbGxvYy5j DQotKysrIGIveGVuL2NvbW1vbi9wYWdlX2FsbG9jLmMNCi1AQCAtOTYwLDcgKzk2MCw3IEBAIHN0 YXRpYyB2b2lkIGZyZWVfaGVhcF9wYWdlcygNCi0gICAgICAgICAvKiBJZiBhIHBhZ2UgaGFzIG5v IG93bmVyIGl0IHdpbGwgbmVlZCBubyBzYWZldHkgVExCIGZsdXNoLiAqLw0KLSAgICAgICAgIHBn W2ldLnUuZnJlZS5uZWVkX3RsYmZsdXNoID0gKHBhZ2VfZ2V0X293bmVyKCZwZ1tpXSkgIT0gTlVM TCk7DQotICAgICAgICAgaWYgKCBwZ1tpXS51LmZyZWUubmVlZF90bGJmbHVzaCApDQotLSAgICAg ICAgICAgIHBnW2ldLnRsYmZsdXNoX3RpbWVzdGFtcCA9IHRsYmZsdXNoX2N1cnJlbnRfdGltZSgp Ow0KLSsgICAgICAgICAgICBwYWdlX3NldF90bGJmbHVzaF90aW1lc3RhbXAoJnBnW2ldKTsNCi0g DQotICAgICAgICAgLyogVGhpcyBwYWdlIGlzIG5vdCBhIGd1ZXN0IGZyYW1lIGFueSBtb3JlLiAq Lw0KLSAgICAgICAgIHBhZ2Vfc2V0X293bmVyKCZwZ1tpXSwgTlVMTCk7IC8qIHNldF9ncGZuX2Zy b21fbWZuIHNub29wcyBwZyBvd25lciAqLw0KLS0tLSBhL3hlbi9pbmNsdWRlL2FzbS1hcm0vZmx1 c2h0bGIuaA0KLSsrKyBiL3hlbi9pbmNsdWRlL2FzbS1hcm0vZmx1c2h0bGIuaA0KLUBAIC0xMiw2 ICsxMiwxMSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgdGxiZmx1c2hfZmlsdGVyKGNwdW1hDQotIA0K LSAjZGVmaW5lIHRsYmZsdXNoX2N1cnJlbnRfdGltZSgpICAgICAgICAgICAgICAgICAoMCkNCi0g DQotK3N0YXRpYyBpbmxpbmUgdm9pZCBwYWdlX3NldF90bGJmbHVzaF90aW1lc3RhbXAoc3RydWN0 IHBhZ2VfaW5mbyAqcGFnZSkNCi0rew0KLSsgICAgcGFnZS0+dGxiZmx1c2hfdGltZXN0YW1wID0g dGxiZmx1c2hfY3VycmVudF90aW1lKCk7DQotK30NCi0rDQotICNpZiBkZWZpbmVkKENPTkZJR19B Uk1fMzIpDQotICMgaW5jbHVkZSA8YXNtL2FybTMyL2ZsdXNodGxiLmg+DQotICNlbGlmIGRlZmlu ZWQoQ09ORklHX0FSTV82NCkNCi0tLS0gYS94ZW4vaW5jbHVkZS9hc20teDg2L2ZsdXNodGxiLmgN Ci0rKysgYi94ZW4vaW5jbHVkZS9hc20teDg2L2ZsdXNodGxiLmgNCi1AQCAtMjMsNiArMjMsMjAg QEAgREVDTEFSRV9QRVJfQ1BVKHUzMiwgdGxiZmx1c2hfdGltZSk7DQotIA0KLSAjZGVmaW5lIHRs YmZsdXNoX2N1cnJlbnRfdGltZSgpIHRsYmZsdXNoX2Nsb2NrDQotIA0KLStzdGF0aWMgaW5saW5l IHZvaWQgcGFnZV9zZXRfdGxiZmx1c2hfdGltZXN0YW1wKHN0cnVjdCBwYWdlX2luZm8gKnBhZ2Up DQotK3sNCi0rICAgIC8qDQotKyAgICAgKiBQcmV2ZW50IHN0b3JpbmcgYSBzdGFsZSB0aW1lIHN0 YW1wLCB3aGljaCBjb3VsZCBoYXBwZW4gaWYgYW4gdXBkYXRlDQotKyAgICAgKiB0byB0bGJmbHVz aF9jbG9jayBwbHVzIGEgc3Vic2VxdWVudCBmbHVzaCBJUEkgaGFwcGVuIGJldHdlZW4gdGhlDQot KyAgICAgKiByZWFkaW5nIG9mIHRsYmZsdXNoX2Nsb2NrIGFuZCB0aGUgd3JpdGluZyBvZiB0aGUg c3RydWN0IHBhZ2VfaW5mbw0KLSsgICAgICogZmllbGQuDQotKyAgICAgKi8NCi0rICAgIEFTU0VS VChsb2NhbF9pcnFfaXNfZW5hYmxlZCgpKTsNCi0rICAgIGxvY2FsX2lycV9kaXNhYmxlKCk7DQot KyAgICBwYWdlLT50bGJmbHVzaF90aW1lc3RhbXAgPSB0bGJmbHVzaF9jdXJyZW50X3RpbWUoKTsN Ci0rICAgIGxvY2FsX2lycV9lbmFibGUoKTsNCi0rfQ0KLSsNCi0gLyoNCi0gICogQGNwdV9zdGFt cCBpcyB0aGUgdGltZXN0YW1wIGF0IGxhc3QgVExCIGZsdXNoIGZvciB0aGUgQ1BVIHdlIGFyZSB0 ZXN0aW5nLg0KLSAgKiBAbGFzdHVzZV9zdGFtcCBpcyBhIHRpbWVzdGFtcCB0YWtlbiB3aGVuIHRo ZSBQRk4gd2UgYXJlIHRlc3Rpbmcgd2FzIGxhc3QgDQpkaWZmIC0tZ2l0IGEvbWFpbi94ZW4veHNh MjQyLTQuOS5wYXRjaCBiL21haW4veGVuL3hzYTI0Mi00LjkucGF0Y2gNCmRlbGV0ZWQgZmlsZSBt b2RlIDEwMDY0NA0KaW5kZXggOGFkZmE2MWZkNy4uMDAwMDAwMDAwMA0KLS0tIGEvbWFpbi94ZW4v eHNhMjQyLTQuOS5wYXRjaA0KKysrIC9kZXYvbnVsbA0KQEAgLTEsNDMgKzAsMCBAQA0KLUZyb206 IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4NCi1TdWJqZWN0OiB4ODY6IGRvbid0IGFs bG93IHBhZ2VfdW5sb2NrKCkgdG8gZHJvcCB0aGUgbGFzdCB0eXBlIHJlZmVyZW5jZQ0KLQ0KLU9u bHkgX3B1dF9wYWdlX3R5cGUoKSBkb2VzIHRoZSBuZWNlc3NhcnkgY2xlYW51cCwgYW5kIGhlbmNl IG5vdCBhbGwNCi1kb21haW4gcGFnZXMgY2FuIGJlIHJlbGVhc2VkIGR1cmluZyBndWVzdCBjbGVh bnVwIChsZWF2aW5nIGFyb3VuZA0KLXpvbWJpZSBkb21haW5zKSBpZiB3ZSBnZXQgdGhpcyB3cm9u Zy4NCi0NCi1UaGlzIGlzIFhTQS0yNDIuDQotDQotU2lnbmVkLW9mZi1ieTogSmFuIEJldWxpY2gg PGpiZXVsaWNoQHN1c2UuY29tPg0KLQ0KLS0tLSBhL3hlbi9hcmNoL3g4Ni9tbS5jDQotKysrIGIv eGVuL2FyY2gveDg2L21tLmMNCi1AQCAtMTkyMyw3ICsxOTIzLDExIEBAIHZvaWQgcGFnZV91bmxv Y2soc3RydWN0IHBhZ2VfaW5mbyAqcGFnZSkNCi0gDQotICAgICBkbyB7DQotICAgICAgICAgeCA9 IHk7DQotKyAgICAgICAgQVNTRVJUKCh4ICYgUEdUX2NvdW50X21hc2spICYmICh4ICYgUEdUX2xv Y2tlZCkpOw0KLSsNCi0gICAgICAgICBueCA9IHggLSAoMSB8IFBHVF9sb2NrZWQpOw0KLSsgICAg ICAgIC8qIFdlIG11c3Qgbm90IGRyb3AgdGhlIGxhc3QgcmVmZXJlbmNlIGhlcmUuICovDQotKyAg ICAgICAgQVNTRVJUKG54ICYgUEdUX2NvdW50X21hc2spOw0KLSAgICAgfSB3aGlsZSAoICh5ID0g Y21weGNoZygmcGFnZS0+dS5pbnVzZS50eXBlX2luZm8sIHgsIG54KSkgIT0geCApOw0KLSB9DQot IA0KLUBAIC0yNjExLDYgKzI2MTUsMTcgQEAgc3RhdGljIGludCBfcHV0X3BhZ2VfdHlwZShzdHJ1 Y3QgcGFnZV9pbg0KLSAgICAgICAgICAgICAgICAgICAgKHBhZ2UtPmNvdW50X2luZm8gJiBQR0Nf cGFnZV90YWJsZSkpICkNCi0gICAgICAgICAgICAgICAgIHBhZ2Vfc2V0X3RsYmZsdXNoX3RpbWVz dGFtcChwYWdlKTsNCi0gICAgICAgICB9DQotKyAgICAgICAgZWxzZSBpZiAoIHVubGlrZWx5KChu eCAmIChQR1RfbG9ja2VkIHwgUEdUX2NvdW50X21hc2spKSA9PQ0KLSsgICAgICAgICAgICAgICAg ICAgICAgICAgICAoUEdUX2xvY2tlZCB8IDEpKSApDQotKyAgICAgICAgew0KLSsgICAgICAgICAg ICAvKg0KLSsgICAgICAgICAgICAgKiBXZSBtdXN0IG5vdCBkcm9wIHRoZSBzZWNvbmQgdG8gbGFz dCByZWZlcmVuY2Ugd2hlbiB0aGUgcGFnZSBpcw0KLSsgICAgICAgICAgICAgKiBsb2NrZWQsIGFz IHBhZ2VfdW5sb2NrKCkgZG9lc24ndCBkbyBhbnkgY2xlYW51cCBvZiB0aGUgdHlwZS4NCi0rICAg ICAgICAgICAgICovDQotKyAgICAgICAgICAgIGNwdV9yZWxheCgpOw0KLSsgICAgICAgICAgICB5 ID0gcGFnZS0+dS5pbnVzZS50eXBlX2luZm87DQotKyAgICAgICAgICAgIGNvbnRpbnVlOw0KLSsg ICAgICAgIH0NCi0gDQotICAgICAgICAgaWYgKCBsaWtlbHkoKHkgPSBjbXB4Y2hnKCZwYWdlLT51 LmludXNlLnR5cGVfaW5mbywgeCwgbngpKSA9PSB4KSApDQotICAgICAgICAgICAgIGJyZWFrOw0K ZGlmZiAtLWdpdCBhL21haW4veGVuL3hzYTI0My0xLnBhdGNoIGIvbWFpbi94ZW4veHNhMjQzLTEu cGF0Y2gNCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggYWFmZjI3NzUxNC4uMDAwMDAw MDAwMA0KLS0tIGEvbWFpbi94ZW4veHNhMjQzLTEucGF0Y2gNCisrKyAvZGV2L251bGwNCkBAIC0x LDkzICswLDAgQEANCi1Gcm9tOiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXgu Y29tPg0KLVN1YmplY3Q6IHg4Ni9zaGFkb3c6IERvbid0IGNyZWF0ZSBzZWxmLWxpbmVhciBzaGFk b3cgbWFwcGluZ3MgZm9yIDQtbGV2ZWwgdHJhbnNsYXRlZCBndWVzdHMNCi0NCi1XaGVuIGluaXRp YWxseSBjcmVhdGluZyBhIG1vbml0b3IgdGFibGUgZm9yIDQtbGV2ZWwgdHJhbnNsYXRlZCBndWVz dHMsIGRvbid0DQotaW5zdGFsbCBhIHNoYWRvdy1saW5lYXIgbWFwcGluZy4gIFRoaXMgbWFwcGlu ZyBpcyBhY3R1YWxseSBzZWxmLWxpbmVhciwgYW5kDQotdHJpcHMgdXAgdGhlIHdyaXRlYWJsZSBo ZXVyaXN0aWMgbG9naWMgaW50byBmb2xsb3dpbmcgWGVuJ3MgbWFwcGluZ3MsIG5vdCB0aGUNCi1n dWVzdHMnIHNoYWRvd3MgaXQgd2FzIGV4cGVjdGluZyB0byBmb2xsb3cuDQotDQotQSBjb25zZXF1 ZW5jZSBvZiB0aGlzIGlzIHRoYXQgc2hfZ3Vlc3Nfd3JtYXAoKSBuZWVkcyB0byBjb3BlIHdpdGgg dGhlcmUgYmVpbmcNCi1ubyBzaGFkb3ctbGluZWFyIG1hcHBpbmcgcHJlc2VudCwgd2hpY2ggaW4g cHJhY3RpY2Ugb2NjdXJzIG9uY2UgZWFjaCB0aW1lIGENCi12Y3B1IHN3aXRjaGVzIHRvIDQtbGV2 ZWwgcGFnaW5nIGZyb20gYSBkaWZmZXJlbnQgcGFnaW5nIG1vZGUuDQotDQotQW4gYXBwcm9wcmlh dGUgc2hhZG93LWxpbmVhciBzbG90IHdpbGwgYmUgaW5zZXJ0ZWQgaW50byB0aGUgbW9uaXRvciB0 YWJsZQ0KLWVpdGhlciB3aGlsZSBjb25zdHJ1Y3RpbmcgbG93ZXIgbGV2ZWwgbW9uaXRvciB0YWJs ZXMsIG9yIGJ5IHNoX3VwZGF0ZV9jcjMoKS4NCi0NCi1XaGlsZSBmaXhpbmcgdGhpcywgY2xhcmlm eSB0aGUgc2FmZXR5IG9mIHRoZSBvdGhlciBtYXBwaW5ncy4gIERlc3BpdGUNCi1hcHBlYXJpbmcg dW5zYWZlLCBpdCBpcyBjb3JyZWN0IHRvIGNyZWF0ZSBhIGd1ZXN0LWxpbmVhciBtYXBwaW5nIGZv cg0KLXRyYW5zbGF0ZWQgZG9tYWluczsgdGhpcyBpcyBzZWxmLWxpbmVhciBhbmQgZG9lc24ndCBw b2ludCBpbnRvIHRoZSB0cmFuc2xhdGVkDQotZG9tYWluLiAgRHJvcCBhIGRlYWQgY2xhdXNlIGZv ciB0cmFuc2xhdGUgIT0gZXh0ZXJuYWwgZ3Vlc3RzLg0KLQ0KLVRoaXMgaXMgWFNBLTI0My4NCi0N Ci1TaWduZWQtb2ZmLWJ5OiBBbmRyZXcgQ29vcGVyIDxhbmRyZXcuY29vcGVyM0BjaXRyaXguY29t Pg0KLUFja2VkLWJ5OiBUaW0gRGVlZ2FuIDx0aW1AeGVuLm9yZz4NCi0NCi1kaWZmIC0tZ2l0IGEv eGVuL2FyY2gveDg2L21tL3NoYWRvdy9tdWx0aS5jIGIveGVuL2FyY2gveDg2L21tL3NoYWRvdy9t dWx0aS5jDQotaW5kZXggOGQ0ZjI0NC4uYTE4ZDI4NiAxMDA2NDQNCi0tLS0gYS94ZW4vYXJjaC94 ODYvbW0vc2hhZG93L211bHRpLmMNCi0rKysgYi94ZW4vYXJjaC94ODYvbW0vc2hhZG93L211bHRp LmMNCi1AQCAtMTQ4NSwyNiArMTQ4NSwzOCBAQCB2b2lkIHNoX2luc3RhbGxfeGVuX2VudHJpZXNf aW5fbDQoc3RydWN0IGRvbWFpbiAqZCwgbWZuX3QgZ2w0bWZuLCBtZm5fdCBzbDRtZm4pDQotICAg ICAgICAgc2w0ZVtzaGFkb3dfbDRfdGFibGVfb2Zmc2V0KFJPX01QVF9WSVJUX1NUQVJUKV0gPSBz aGFkb3dfbDRlX2VtcHR5KCk7DQotICAgICB9DQotIA0KLS0gICAgLyogU2hhZG93IGxpbmVhciBt YXBwaW5nIGZvciA0LWxldmVsIHNoYWRvd3MuICBOLkIuIGZvciAzLWxldmVsDQotLSAgICAgKiBz aGFkb3dzIG9uIDY0LWJpdCB4ZW4sIHRoaXMgbGluZWFyIG1hcHBpbmcgaXMgbGF0ZXIgcmVwbGFj ZWQgYnkgdGhlDQotLSAgICAgKiBtb25pdG9yIHBhZ2V0YWJsZSBzdHJ1Y3R1cmUsIHdoaWNoIGlz IGJ1aWx0IGluIG1ha2VfbW9uaXRvcl90YWJsZQ0KLS0gICAgICogYW5kIG1haW50YWluZWQgYnkg c2hfdXBkYXRlX2xpbmVhcl9lbnRyaWVzLiAqLw0KLS0gICAgc2w0ZVtzaGFkb3dfbDRfdGFibGVf b2Zmc2V0KFNIX0xJTkVBUl9QVF9WSVJUX1NUQVJUKV0gPQ0KLS0gICAgICAgIHNoYWRvd19sNGVf ZnJvbV9tZm4oc2w0bWZuLCBfX1BBR0VfSFlQRVJWSVNPUl9SVyk7DQotLQ0KLS0gICAgLyogU2Vs ZiBsaW5lYXIgbWFwcGluZy4gICovDQotLSAgICBpZiAoIHNoYWRvd19tb2RlX3RyYW5zbGF0ZShk KSAmJiAhc2hhZG93X21vZGVfZXh0ZXJuYWwoZCkgKQ0KLSsgICAgLyoNCi0rICAgICAqIExpbmVh ciBtYXBwaW5nIHNsb3RzOg0KLSsgICAgICoNCi0rICAgICAqIENhbGxpbmcgdGhpcyBmdW5jdGlv biB3aXRoIGdsNG1mbiA9PSBzbDRtZm4gaXMgdXNlZCB0byBjb25zdHJ1Y3QgYQ0KLSsgICAgICog bW9uaXRvciB0YWJsZSBmb3IgdHJhbnNsYXRlZCBkb21haW5zLiAgSW4gdGhpcyBjYXNlLCBnbDRt Zm4gZm9ybXMgdGhlDQotKyAgICAgKiBzZWxmLWxpbmVhciBtYXBwaW5nIChpLmUuIG5vdCBwb2lu dGluZyBpbnRvIHRoZSB0cmFuc2xhdGVkIGRvbWFpbiksIGFuZA0KLSsgICAgICogdGhlIHNoYWRv dy1saW5lYXIgc2xvdCBpcyBza2lwcGVkLiAgVGhlIHNoYWRvdy1saW5lYXIgc2xvdCBpcyBlaXRo ZXINCi0rICAgICAqIGZpbGxlZCB3aGVuIGNvbnN0cnVjdGluZyBsb3dlciBsZXZlbCBtb25pdG9y IHRhYmxlcywgb3IgdmlhDQotKyAgICAgKiBzaF91cGRhdGVfY3IzKCkgZm9yIDQtbGV2ZWwgZ3Vl c3RzLg0KLSsgICAgICoNCi0rICAgICAqIENhbGxpbmcgdGhpcyBmdW5jdGlvbiB3aXRoIGdsNG1m biAhPSBzbDRtZm4gaXMgdXNlZCBmb3Igbm9uLXRyYW5zbGF0ZWQNCi0rICAgICAqIGd1ZXN0cywg d2hlcmUgdGhlIHNoYWRvdy1saW5lYXIgc2xvdCBpcyBhY3R1YWxseSBzZWxmLWxpbmVhciwgYW5k IHRoZQ0KLSsgICAgICogZ3Vlc3QtbGluZWFyIHNsb3QgcG9pbnRzIGludG8gdGhlIGd1ZXN0cyB2 aWV3IG9mIGl0cyBwYWdldGFibGVzLg0KLSsgICAgICovDQotKyAgICBpZiAoIHNoYWRvd19tb2Rl X3RyYW5zbGF0ZShkKSApDQotICAgICB7DQotLSAgICAgICAgLy8gbGluZWFyIHRhYmxlcyBtYXkg bm90IGJlIHVzZWQgd2l0aCB0cmFuc2xhdGVkIFBWIGd1ZXN0cw0KLS0gICAgICAgIHNsNGVbc2hh ZG93X2w0X3RhYmxlX29mZnNldChMSU5FQVJfUFRfVklSVF9TVEFSVCldID0NCi0rICAgICAgICBB U1NFUlQobWZuX2VxKGdsNG1mbiwgc2w0bWZuKSk7DQotKw0KLSsgICAgICAgIHNsNGVbc2hhZG93 X2w0X3RhYmxlX29mZnNldChTSF9MSU5FQVJfUFRfVklSVF9TVEFSVCldID0NCi0gICAgICAgICAg ICAgc2hhZG93X2w0ZV9lbXB0eSgpOw0KLSAgICAgfQ0KLSAgICAgZWxzZQ0KLSAgICAgew0KLS0g ICAgICAgIHNsNGVbc2hhZG93X2w0X3RhYmxlX29mZnNldChMSU5FQVJfUFRfVklSVF9TVEFSVCld ID0NCi0tICAgICAgICAgICAgc2hhZG93X2w0ZV9mcm9tX21mbihnbDRtZm4sIF9fUEFHRV9IWVBF UlZJU09SX1JXKTsNCi0rICAgICAgICBBU1NFUlQoIW1mbl9lcShnbDRtZm4sIHNsNG1mbikpOw0K LSsNCi0rICAgICAgICBzbDRlW3NoYWRvd19sNF90YWJsZV9vZmZzZXQoU0hfTElORUFSX1BUX1ZJ UlRfU1RBUlQpXSA9DQotKyAgICAgICAgICAgIHNoYWRvd19sNGVfZnJvbV9tZm4oc2w0bWZuLCBf X1BBR0VfSFlQRVJWSVNPUl9SVyk7DQotICAgICB9DQotIA0KLSsgICAgc2w0ZVtzaGFkb3dfbDRf dGFibGVfb2Zmc2V0KExJTkVBUl9QVF9WSVJUX1NUQVJUKV0gPQ0KLSsgICAgICAgIHNoYWRvd19s NGVfZnJvbV9tZm4oZ2w0bWZuLCBfX1BBR0VfSFlQRVJWSVNPUl9SVyk7DQotKw0KLSAgICAgdW5t YXBfZG9tYWluX3BhZ2Uoc2w0ZSk7DQotIH0NCi0gI2VuZGlmDQotQEAgLTQ0MDUsNiArNDQxNywx MSBAQCBzdGF0aWMgaW50IHNoX2d1ZXNzX3dybWFwKHN0cnVjdCB2Y3B1ICp2LCB1bnNpZ25lZCBs b25nIHZhZGRyLCBtZm5fdCBnbWZuKQ0KLSANCi0gICAgIC8qIENhcmVmdWxseSBsb29rIGluIHRo ZSBzaGFkb3cgbGluZWFyIG1hcCBmb3IgdGhlIGwxZSB3ZSBleHBlY3QgKi8NCi0gI2lmIFNIQURP V19QQUdJTkdfTEVWRUxTID49IDQNCi0rICAgIC8qIElzIGEgc2hhZG93IGxpbmVhciBtYXAgaXMg aW5zdGFsbGVkIGluIHRoZSBmaXJzdCBwbGFjZT8gKi8NCi0rICAgIHNsNHAgID0gdi0+YXJjaC5w YWdpbmcuc2hhZG93Lmd1ZXN0X3Z0YWJsZTsNCi0rICAgIHNsNHAgKz0gc2hhZG93X2w0X3RhYmxl X29mZnNldChTSF9MSU5FQVJfUFRfVklSVF9TVEFSVCk7DQotKyAgICBpZiAoICEoc2hhZG93X2w0 ZV9nZXRfZmxhZ3MoKnNsNHApICYgX1BBR0VfUFJFU0VOVCkgKQ0KLSsgICAgICAgIHJldHVybiAw Ow0KLSAgICAgc2w0cCA9IHNoX2xpbmVhcl9sNF90YWJsZSh2KSArIHNoYWRvd19sNF9saW5lYXJf b2Zmc2V0KHZhZGRyKTsNCi0gICAgIGlmICggIShzaGFkb3dfbDRlX2dldF9mbGFncygqc2w0cCkg JiBfUEFHRV9QUkVTRU5UKSApDQotICAgICAgICAgcmV0dXJuIDA7DQpkaWZmIC0tZ2l0IGEvbWFp bi94ZW4veHNhMjQzLTIucGF0Y2ggYi9tYWluL3hlbi94c2EyNDMtMi5wYXRjaA0KZGVsZXRlZCBm aWxlIG1vZGUgMTAwNjQ0DQppbmRleCAxYWNhNWQzZGJkLi4wMDAwMDAwMDAwDQotLS0gYS9tYWlu L3hlbi94c2EyNDMtMi5wYXRjaA0KKysrIC9kZXYvbnVsbA0KQEAgLTEsNTQgKzAsMCBAQA0KLUZy b206IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+DQotU3ViamVjdDog eDg2L3NoYWRvdzogY29ycmVjdCBTSF9MSU5FQVIgbWFwcGluZyBkZXRlY3Rpb24gaW4gc2hfZ3Vl c3Nfd3JtYXAoKQ0KLQ0KLVRoZSBmaXggZm9yIFhTQS0yNDMgLyBDVkUtMjAxNy0xNTU5MiAoYy9z IGJmMmI0ZWFkY2YzNzkpIGludHJvZHVjZWQgYSBjaGFuZ2UNCi1pbiBiZWhhdmlvdXIgZm9yIHNo X2d1ZXN0X3dybWFwKCksIHdoZXJlIGl0IGhhZCB0byBjb3BlIHdpdGggbm8gc2hhZG93IGxpbmVh cg0KLW1hcHBpbmcgYmVpbmcgcHJlc2VudC4NCi0NCi1BcyB0aGUgbmFtZSBzdWdnZXN0cywgZ3Vl c3RfdnRhYmxlIGlzIGEgbWFwcGluZyBvZiB0aGUgZ3Vlc3RzIHBhZ2V0YWJsZSwgbm90DQotWGVu J3MgcGFnZXRhYmxlLCBtZWFuaW5nIHRoYXQgaXQgaXNuJ3QgdGhlIHBhZ2V0YWJsZSB3ZSBuZWVk IHRvIGNoZWNrIGZvciB0aGUNCi1zaGFkb3cgbGluZWFyIHNsb3QgaW4uDQotDQotVGhlIHByYWN0 aWNhbCB1cHNob3QgaXMgdGhhdCBhIHNoYWRvdyBIVk0gdmNwdSB3aGljaCBzd2l0Y2hlcyBpbnRv IDQtbGV2ZWwNCi1wYWdpbmcgbW9kZSwgd2l0aCBhbiBMNCBwYWdldGFibGUgdGhhdCBjb250YWlu cyBhIG1hcHBpbmcgd2hpY2ggYWxpYXNlcyBYZW4ncw0KLVNIX0xJTkVBUl9QVF9WSVJUX1NUQVJU IHdpbGwgZm9vbCB0aGUgc2FmZXR5IGNoZWNrIGZvciB3aGV0aGVyIGEgU0hBRE9XX0xJTkVBUg0K LW1hcHBpbmcgaXMgcHJlc2VudC4gIEFzIHRoZSBjaGVjayBwYXNzZXMgKHdoZW4gaXQgc2hvdWxk IGhhdmUgZmFpbGVkKSwgWGVuDQotc3Vic2VxdWVudGx5IGZhbGxzIG92ZXIgdGhlIG1pc3Npbmcg bWFwcGluZyB3aXRoIGEgcGFnZWZhdWx0IHN1Y2ggYXM6DQotDQotICAgIChYRU4pIFBhZ2V0YWJs ZSB3YWxrIGZyb20gZmZmZjgxNDBhMDUwMzg4MDoNCi0gICAgKFhFTikgIEw0WzB4MTAyXSA9IDAw MDAwMDA0NmMyMTgwNjMgZmZmZmZmZmZmZmZmZmZmZg0KLSAgICAoWEVOKSAgTDNbMHgxMDJdID0g MDAwMDAwMDQ2YzIxODA2MyBmZmZmZmZmZmZmZmZmZmZmDQotICAgIChYRU4pICBMMlsweDEwMl0g PSAwMDAwMDAwNDZjMjE4MDYzIGZmZmZmZmZmZmZmZmZmZmYNCi0gICAgKFhFTikgIEwxWzB4MTAz XSA9IDAwMDAwMDAwMDAwMDAwMDAgZmZmZmZmZmZmZmZmZmZmZg0KLQ0KLVRoaXMgaXMgcGFydCBv ZiBYU0EtMjQzLg0KLQ0KLVNpZ25lZC1vZmYtYnk6IEFuZHJldyBDb29wZXIgPGFuZHJldy5jb29w ZXIzQGNpdHJpeC5jb20+DQotUmV2aWV3ZWQtYnk6IFRpbSBEZWVnYW4gPHRpbUB4ZW4ub3JnPg0K LQ0KLS0tLSBhL3hlbi9hcmNoL3g4Ni9tbS9zaGFkb3cvbXVsdGkuYw0KLSsrKyBiL3hlbi9hcmNo L3g4Ni9tbS9zaGFkb3cvbXVsdGkuYw0KLUBAIC00MzUwLDExICs0MzUwLDE4IEBAIHN0YXRpYyBp bnQgc2hfZ3Vlc3Nfd3JtYXAoc3RydWN0IHZjcHUgKnYNCi0gDQotICAgICAvKiBDYXJlZnVsbHkg bG9vayBpbiB0aGUgc2hhZG93IGxpbmVhciBtYXAgZm9yIHRoZSBsMWUgd2UgZXhwZWN0ICovDQot ICNpZiBTSEFET1dfUEFHSU5HX0xFVkVMUyA+PSA0DQotLSAgICAvKiBJcyBhIHNoYWRvdyBsaW5l YXIgbWFwIGlzIGluc3RhbGxlZCBpbiB0aGUgZmlyc3QgcGxhY2U/ICovDQotLSAgICBzbDRwICA9 IHYtPmFyY2gucGFnaW5nLnNoYWRvdy5ndWVzdF92dGFibGU7DQotLSAgICBzbDRwICs9IHNoYWRv d19sNF90YWJsZV9vZmZzZXQoU0hfTElORUFSX1BUX1ZJUlRfU1RBUlQpOw0KLS0gICAgaWYgKCAh KHNoYWRvd19sNGVfZ2V0X2ZsYWdzKCpzbDRwKSAmIF9QQUdFX1BSRVNFTlQpICkNCi0tICAgICAg ICByZXR1cm4gMDsNCi0rICAgIC8qDQotKyAgICAgKiBOb24tZXh0ZXJuYWwgZ3Vlc3RzIChpLmUu IFBWKSBoYXZlIGEgU0hBRE9XX0xJTkVBUiBtYXBwaW5nIGZyb20gdGhlDQotKyAgICAgKiBtb21l bnQgdGhlaXIgc2hhZG93cyBhcmUgY3JlYXRlZC4gIEV4dGVybmFsIGd1ZXN0cyAoaS5lLiBIVk0p IG1heSBub3QsDQotKyAgICAgKiBidXQgYWx3YXlzIGhhdmUgYSByZWd1bGFyIGxpbmVhciBtYXBw aW5nLCB3aGljaCB3ZSBjYW4gdXNlIHRvIG9ic2VydmUNCi0rICAgICAqIHdoZXRoZXIgYSBTSEFE T1dfTElORUFSIG1hcHBpbmcgaXMgcHJlc2VudC4NCi0rICAgICAqLw0KLSsgICAgaWYgKCBwYWdp bmdfbW9kZV9leHRlcm5hbChkKSApDQotKyAgICB7DQotKyAgICAgICAgc2w0cCA9ICBfX2xpbmVh cl9sNF90YWJsZSArIGw0X2xpbmVhcl9vZmZzZXQoU0hfTElORUFSX1BUX1ZJUlRfU1RBUlQpOw0K LSsgICAgICAgIGlmICggIShzaGFkb3dfbDRlX2dldF9mbGFncygqc2w0cCkgJiBfUEFHRV9QUkVT RU5UKSApDQotKyAgICAgICAgICAgIHJldHVybiAwOw0KLSsgICAgfQ0KLSAgICAgc2w0cCA9IHNo X2xpbmVhcl9sNF90YWJsZSh2KSArIHNoYWRvd19sNF9saW5lYXJfb2Zmc2V0KHZhZGRyKTsNCi0g ICAgIGlmICggIShzaGFkb3dfbDRlX2dldF9mbGFncygqc2w0cCkgJiBfUEFHRV9QUkVTRU5UKSAp DQotICAgICAgICAgcmV0dXJuIDA7DQpkaWZmIC0tZ2l0IGEvbWFpbi94ZW4veHNhMjQ0LnBhdGNo IGIvbWFpbi94ZW4veHNhMjQ0LnBhdGNoDQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4 IGMzNWE4MGJlMzIuLjAwMDAwMDAwMDANCi0tLSBhL21haW4veGVuL3hzYTI0NC5wYXRjaA0KKysr IC9kZXYvbnVsbA0KQEAgLTEsNTkgKzAsMCBAQA0KLUZyb206IEFuZHJldyBDb29wZXIgPGFuZHJl dy5jb29wZXIzQGNpdHJpeC5jb20+DQotU3ViamVjdDogW1BBVENIXSB4ODYvY3B1OiBGaXggSVNU IGhhbmRsaW5nIGR1cmluZyBQQ1BVIGJyaW5ndXANCi0NCi1DbGVhciBJU1QgcmVmZXJlbmNlcyBp biBuZXdseSBhbGxvY2F0ZWQgSURUcy4gIE5vdGhpbmcgZ29vZCB3aWxsIGNvbWUgb2YNCi1oYXZp bmcgdGhlbSBzZXQgYmVmb3JlIHRoZSBUU1MgaXMgc3VpdGFibHkgY29uc3RydWN0ZWQgKGFsdGhv dWdoIHRoZSBjaGFuY2VzDQotb2YgdGhlIENQVSBzdXJ2aXZpbmcgc3VjaCBhbiBJU1QgaW50ZXJy dXB0L2V4Y2VwdGlvbiBpcyBleHRyZW1lbHkgc2xpbSkuDQotDQotVW5pZm9ybWx5IHNldCB0aGUg SVNUIHJlZmVyZW5jZXMgYWZ0ZXIgdGhlIFRTUyBpcyBpbiBwbGFjZS4gIFRoaXMgZml4ZXMgYW4N Ci1pc3N1ZSBvbiBBTUQgaGFyZHdhcmUsIHdoZXJlIG9ubGluaW5nIGEgUENQVSB3aGlsZSBQQ1BV MCBpcyBpbiBIVk0gY29udGV4dA0KLXdpbGwgY2F1c2UgSVNUX05PTkUgdG8gYmUgY29waWVkIGlu dG8gdGhlIG5ldyBJRFQsIG1ha2luZyB0aGF0IFBDUFUgdnVsbmVyYWJsZQ0KLXRvIHByaXZpbGVn ZSBlc2NhbGF0aW9uIGZyb20gUFYgZ3Vlc3RzIHVudGlsIGl0IHN1YnNlcXVlbnRseSBzY2hlZHVs ZXMgYW4gSFZNDQotZ3Vlc3QuDQotDQotVGhpcyBpcyBYU0EtMjQ0DQotDQotU2lnbmVkLW9mZi1i eTogQW5kcmV3IENvb3BlciA8YW5kcmV3LmNvb3BlcjNAY2l0cml4LmNvbT4NCi1SZXZpZXdlZC1i eTogSmFuIEJldWxpY2ggPGpiZXVsaWNoQHN1c2UuY29tPg0KLS0tLQ0KLSB4ZW4vYXJjaC94ODYv Y3B1L2NvbW1vbi5jIHwgNSArKysrKw0KLSB4ZW4vYXJjaC94ODYvc21wYm9vdC5jICAgIHwgMyAr KysNCi0gMiBmaWxlcyBjaGFuZ2VkLCA4IGluc2VydGlvbnMoKykNCi0NCi1kaWZmIC0tZ2l0IGEv eGVuL2FyY2gveDg2L2NwdS9jb21tb24uYyBiL3hlbi9hcmNoL3g4Ni9jcHUvY29tbW9uLmMNCi1p bmRleCA3OGY1NjY3Li42Y2YzNjI4IDEwMDY0NA0KLS0tLSBhL3hlbi9hcmNoL3g4Ni9jcHUvY29t bW9uLmMNCi0rKysgYi94ZW4vYXJjaC94ODYvY3B1L2NvbW1vbi5jDQotQEAgLTY0MCw2ICs2NDAs NyBAQCB2b2lkIF9faW5pdCBlYXJseV9jcHVfaW5pdCh2b2lkKQ0KLSAgKiAtIFNldHMgdXAgVFNT IHdpdGggc3RhY2sgcG9pbnRlcnMsIGluY2x1ZGluZyBJU1RzDQotICAqIC0gSW5zZXJ0cyBUU1Mg c2VsZWN0b3IgaW50byByZWd1bGFyIGFuZCBjb21wYXQgR0RUcw0KLSAgKiAtIExvYWRzIEdEVCwg SURULCBUUiB0aGVuIG51bGwgTERUDQotKyAqIC0gU2V0cyB1cCBJU1QgcmVmZXJlbmNlcyBpbiB0 aGUgSURUDQotICAqLw0KLSB2b2lkIGxvYWRfc3lzdGVtX3RhYmxlcyh2b2lkKQ0KLSB7DQotQEAg LTcwMiw2ICs3MDMsMTAgQEAgdm9pZCBsb2FkX3N5c3RlbV90YWJsZXModm9pZCkNCi0gCWFzbSB2 b2xhdGlsZSAoImx0ciAgJXcwIiA6IDogInJtIiAoVFNTX0VOVFJZIDw8IDMpICk7DQotIAlhc20g dm9sYXRpbGUgKCJsbGR0ICV3MCIgOiA6ICJybSIgKDApICk7DQotIA0KLSsJc2V0X2lzdCgmaWR0 X3RhYmxlc1tjcHVdW1RSQVBfZG91YmxlX2ZhdWx0XSwgIElTVF9ERik7DQotKwlzZXRfaXN0KCZp ZHRfdGFibGVzW2NwdV1bVFJBUF9ubWldLAkgICAgICBJU1RfTk1JKTsNCi0rCXNldF9pc3QoJmlk dF90YWJsZXNbY3B1XVtUUkFQX21hY2hpbmVfY2hlY2tdLCBJU1RfTUNFKTsNCi0rDQotIAkvKg0K LSAJICogQm90dG9tLW9mLXN0YWNrIG11c3QgYmUgMTYtYnl0ZSBhbGlnbmVkIQ0KLSAJICoNCi1k aWZmIC0tZ2l0IGEveGVuL2FyY2gveDg2L3NtcGJvb3QuYyBiL3hlbi9hcmNoL3g4Ni9zbXBib290 LmMNCi1pbmRleCAzY2E3MTZjLi4xNjA5YjYyIDEwMDY0NA0KLS0tLSBhL3hlbi9hcmNoL3g4Ni9z bXBib290LmMNCi0rKysgYi94ZW4vYXJjaC94ODYvc21wYm9vdC5jDQotQEAgLTcyNCw2ICs3MjQs OSBAQCBzdGF0aWMgaW50IGNwdV9zbXBib290X2FsbG9jKHVuc2lnbmVkIGludCBjcHUpDQotICAg ICBpZiAoIGlkdF90YWJsZXNbY3B1XSA9PSBOVUxMICkNCi0gICAgICAgICBnb3RvIG9vbTsNCi0g ICAgIG1lbWNweShpZHRfdGFibGVzW2NwdV0sIGlkdF90YWJsZSwgSURUX0VOVFJJRVMgKiBzaXpl b2YoaWR0X2VudHJ5X3QpKTsNCi0rICAgIHNldF9pc3QoJmlkdF90YWJsZXNbY3B1XVtUUkFQX2Rv dWJsZV9mYXVsdF0sICBJU1RfTk9ORSk7DQotKyAgICBzZXRfaXN0KCZpZHRfdGFibGVzW2NwdV1b VFJBUF9ubWldLCAgICAgICAgICAgSVNUX05PTkUpOw0KLSsgICAgc2V0X2lzdCgmaWR0X3RhYmxl c1tjcHVdW1RSQVBfbWFjaGluZV9jaGVja10sIElTVF9OT05FKTsNCi0gDQotICAgICBmb3IgKCBz dHViX3BhZ2UgPSAwLCBpID0gY3B1ICYgfihTVFVCU19QRVJfUEFHRSAtIDEpOw0KLSAgICAgICAg ICAgaSA8IG5yX2NwdV9pZHMgJiYgaSA8PSAoY3B1IHwgKFNUVUJTX1BFUl9QQUdFIC0gMSkpOyAr K2kgKQ0KZGlmZiAtLWdpdCBhL21haW4veGVuL3hzYTI0NS0xLnBhdGNoIGIvbWFpbi94ZW4veHNh MjQ1LTEucGF0Y2gNCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NA0KaW5kZXggMjA0NzY4NjkwMy4u MDAwMDAwMDAwMA0KLS0tIGEvbWFpbi94ZW4veHNhMjQ1LTEucGF0Y2gNCisrKyAvZGV2L251bGwN CkBAIC0xLDQ4ICswLDAgQEANCi1Gcm9tIGE0OGQ0N2ZlYmMxMzQwZjI3ZDZjNzE2NTQ1NjkyNjQx YTA5YjQxNGMgTW9uIFNlcCAxNyAwMDowMDowMCAyMDAxDQotRnJvbTogSnVsaWVuIEdyYWxsIDxq dWxpZW4uZ3JhbGxAYXJtLmNvbT4NCi1EYXRlOiBUaHUsIDIxIFNlcCAyMDE3IDE0OjEzOjA4ICsw MTAwDQotU3ViamVjdDogW1BBVENIIDEvMl0geGVuL3BhZ2VfYWxsb2M6IENvdmVyIG1lbW9yeSB1 bnJlc2VydmVkIGFmdGVyIGJvb3QgaW4NCi0gZmlyc3RfdmFsaWRfbWZuDQotDQotT24gQXJtLCBz b21lIHJlZ2lvbnMgKGUuZyBJbml0cmFtZnMsIERvbTAgS2VybmVsLi4uKSBhcmUgbWFya2VkIGFz DQotcmVzZXJ2ZWQgdW50aWwgdGhlIGhhcmR3YXJlIGRvbWFpbiBpcyBidWlsdCBhbmQgdGhleSBh cmUgY29waWVkIGludG8gaXRzDQotbWVtb3J5LiBUaGVyZWZvcmUsIHRoZXkgd2lsbCBub3QgYmUg YWRkZWQgaW4gdGhlIGJvb3QgYWxsb2NhdG9yIHZpYQ0KLWluaXRfYm9vdF9wYWdlcy4NCi0NCi1J bnN0ZWFkLCBpbml0X3hlbmhlYXBfcGFnZXMgd2lsbCBiZSBjYWxsZWQgb25jZSB0aGUgcmVnaW9u IGFyZSBub3QgdXNlZA0KLWFueW1vcmUuDQotDQotVXBkYXRlIGZpcnN0X3ZhbGlkX21mbiBpbiBi b3RoIGluaXRfaGVhcF9wYWdlcyBhbmQgaW5pdF9ib290X3BhZ2VzDQotKGFscmVhZHkgZXhpc3Qp IHRvIGNvdmVyIGFsbCB0aGUgY2FzZXMuDQotDQotU2lnbmVkLW9mZi1ieTogSnVsaWVuIEdyYWxs IDxqdWxpZW4uZ3JhbGxAYXJtLmNvbT4NCi1bQWRqdXN0IGNvbW1lbnQsIGFkZGVkIGxvY2tpbmcg YXJvdW5kIGZpcnN0X3ZhbGlkX21mbiB1cGRhdGVdDQotU2lnbmVkLW9mZi1ieTogQm9yaXMgT3N0 cm92c2t5IDxib3Jpcy5vc3Ryb3Zza3lAb3JhY2xlLmNvbT4NCi0tLS0NCi0geGVuL2NvbW1vbi9w YWdlX2FsbG9jLmMgfCAxMCArKysrKysrKysrDQotIDEgZmlsZSBjaGFuZ2VkLCAxMCBpbnNlcnRp b25zKCspDQotDQotZGlmZiAtLWdpdCBhL3hlbi9jb21tb24vcGFnZV9hbGxvYy5jIGIveGVuL2Nv bW1vbi9wYWdlX2FsbG9jLmMNCi1pbmRleCAwYjlmNmNjNmRmLi5mYmU1YThhZjM5IDEwMDY0NA0K LS0tLSBhL3hlbi9jb21tb24vcGFnZV9hbGxvYy5jDQotKysrIGIveGVuL2NvbW1vbi9wYWdlX2Fs bG9jLmMNCi1AQCAtMTcwMCw2ICsxNzAwLDE2IEBAIHN0YXRpYyB2b2lkIGluaXRfaGVhcF9wYWdl cygNCi0gew0KLSAgICAgdW5zaWduZWQgbG9uZyBpOw0KLSANCi0rICAgIC8qDQotKyAgICAgKiBT b21lIHBhZ2VzIG1heSBub3QgZ28gdGhyb3VnaCB0aGUgYm9vdCBhbGxvY2F0b3IgKGUuZyByZXNl cnZlZA0KLSsgICAgICogbWVtb3J5IGF0IGJvb3QgYnV0IHJlbGVhc2VkIGp1c3QgYWZ0ZXIgLS0t IGtlcm5lbCwgaW5pdHJhbWZzLA0KLSsgICAgICogZXRjLikuDQotKyAgICAgKiBVcGRhdGUgZmly c3RfdmFsaWRfbWZuIHRvIGVuc3VyZSB0aG9zZSByZWdpb25zIGFyZSBjb3ZlcmVkLg0KLSsgICAg ICovDQotKyAgICBzcGluX2xvY2soJmhlYXBfbG9jayk7DQotKyAgICBmaXJzdF92YWxpZF9tZm4g PSBtaW5fdCh1bnNpZ25lZCBsb25nLCBwYWdlX3RvX21mbihwZyksIGZpcnN0X3ZhbGlkX21mbik7 DQotKyAgICBzcGluX3VubG9jaygmaGVhcF9sb2NrKTsNCi0rDQotICAgICBmb3IgKCBpID0gMDsg aSA8IG5yX3BhZ2VzOyBpKysgKQ0KLSAgICAgew0KLSAgICAgICAgIHVuc2lnbmVkIGludCBuaWQg PSBwaHlzX3RvX25pZChwYWdlX3RvX21hZGRyKHBnK2kpKTsNCi0tLSANCi0yLjExLjANCi0NCmRp ZmYgLS1naXQgYS9tYWluL3hlbi94c2EyNDUtMi5wYXRjaCBiL21haW4veGVuL3hzYTI0NS0yLnBh dGNoDQpkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQNCmluZGV4IGNkNGQyNzA5YmUuLjAwMDAwMDAw MDANCi0tLSBhL21haW4veGVuL3hzYTI0NS0yLnBhdGNoDQorKysgL2Rldi9udWxsDQpAQCAtMSw3 MyArMCwwIEBADQotRnJvbSBjYmZjZjAzOWQwZTBiNmY0YzRjYjNkZTYxMmY3YmY3ODhhMGM0N2Nk IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQ0KLUZyb206IEp1bGllbiBHcmFsbCA8anVsaWVuLmdy YWxsQGFybS5jb20+DQotRGF0ZTogTW9uLCAxOCBTZXAgMjAxNyAxNDoyNDowOCArMDEwMA0KLVN1 YmplY3Q6IFtQQVRDSCAyLzJdIHhlbi9hcm06IENvcnJlY3RseSByZXBvcnQgdGhlIG1lbW9yeSBy ZWdpb24gaW4gdGhlIGR1bW15DQotIE5VTUEgaGVscGVycw0KLQ0KLU5VTUEgaXMgY3VycmVudGx5 IG5vdCBzdXBwb3J0ZWQgb24gQXJtLiBCZWNhdXNlIGNvbW1vbiBjb2RlIGlzDQotTlVNQS1hd2Fy ZSwgZHVtbXkgaGVscGVycyBhcmUgaW5zdGVhZCBwcm92aWRlZCB0byBleHBvc2UgYSBzaW5nbGUg bm9kZS4NCi0NCi1UaG9zZSBoZWxwZXJzIGFyZSBmb3IgaW5zdGFuY2UgdXNlZCB0byBrbm93IHRo ZSByZWdpb24gdG8gc2NydWIuDQotDQotSG93ZXZlciB0aGUgbWVtb3J5IHJlZ2lvbiBpcyBub3Qg cmVwb3J0ZWQgY29ycmVjdGx5LiBJbmRlZWQsIHRoZQ0KLWZyYW1ldGFibGUgbWF5IG5vdCBiZSBh dCB0aGUgYmVnaW5uaW5nIG9mIHRoZSBtZW1vcnkgYW5kIHRoZXJlIG1pZ2h0IGJlDQotbXVsdGlw bGUgbWVtb3J5IGJhbmtzLiBUaGlzIHdpbGwgbGVhZCB0byBub3Qgc2NydWIgc29tZSBwYXJ0IG9m IHRoZQ0KLW1lbW9yeS4NCi0NCi1UaGUgbWVtb3J5IGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCB1 c2luZzoNCi0gICAgKiBmaXJzdF92YWxpZF9tZm4gYXMgdGhlIHN0YXJ0IG9mIHRoZSBtZW1vcnkN Ci0gICAgKiBtYXhfcGFnZSAtIGZpcnN0X3ZhbGlkX21mbiBhcyB0aGUgc3Bhbm5lZCBwYWdlcw0K LQ0KLU5vdGUgdGhhdCBmaXJzdF92YWxpZF9tZm4gaXMgbm93IGJlZW4gZXhwb3J0ZWQuIFRoZSBw cm90b3R5cGUgaGFzIGJlZW4NCi1hZGRlZCBpbiBhc20tYXJtL251bWEuaCBhbmQgbm90IGluIGEg Y29tbW9uIGhlYWRlciBiZWNhdXNlIEkgd291bGQNCi1leHBlY3QgdGhlIHZhcmlhYmxlIHRvIGJl Y29tZSBzdGF0aWMgb25jZSBOVU1BIGlzIGZ1bGx5IHN1cHBvcnRlZCBvbg0KLUFybS4NCi0NCi1T aWduZWQtb2ZmLWJ5OiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPg0KLS0tLQ0K LSB4ZW4vY29tbW9uL3BhZ2VfYWxsb2MuYyAgICB8ICA2ICsrKysrLQ0KLSB4ZW4vaW5jbHVkZS9h c20tYXJtL251bWEuaCB8IDEwICsrKysrKysrLS0NCi0gMiBmaWxlcyBjaGFuZ2VkLCAxMyBpbnNl cnRpb25zKCspLCAzIGRlbGV0aW9ucygtKQ0KLQ0KLWRpZmYgLS1naXQgYS94ZW4vY29tbW9uL3Bh Z2VfYWxsb2MuYyBiL3hlbi9jb21tb24vcGFnZV9hbGxvYy5jDQotaW5kZXggZmJlNWE4YWYzOS4u NDcyYzZmZTMyOSAxMDA2NDQNCi0tLS0gYS94ZW4vY29tbW9uL3BhZ2VfYWxsb2MuYw0KLSsrKyBi L3hlbi9jb21tb24vcGFnZV9hbGxvYy5jDQotQEAgLTE5Miw3ICsxOTIsMTEgQEAgUEFHRV9MSVNU X0hFQUQocGFnZV9icm9rZW5fbGlzdCk7DQotICAqIEJPT1QtVElNRSBBTExPQ0FUT1INCi0gICov DQotIA0KLS1zdGF0aWMgdW5zaWduZWQgbG9uZyBfX2luaXRkYXRhIGZpcnN0X3ZhbGlkX21mbiA9 IH4wVUw7DQotKy8qDQotKyAqIGZpcnN0X3ZhbGlkX21mbiBpcyBleHBvcnRlZCBiZWNhdXNlIGl0 IGlzIHVzZSBpbiBBUk0gc3BlY2lmaWMgTlVNQQ0KLSsgKiBoZWxwZXJzLiBTZWUgY29tbWVudCBp biBhc20tYXJtL251bWEuaC4NCi0rICovDQotK3Vuc2lnbmVkIGxvbmcgZmlyc3RfdmFsaWRfbWZu ID0gfjBVTDsNCi0gDQotIHN0YXRpYyBzdHJ1Y3QgYm9vdG1lbV9yZWdpb24gew0KLSAgICAgdW5z aWduZWQgbG9uZyBzLCBlOyAvKiBNRk5zIEBzIHRocm91Z2ggQGUtMSBpbmNsdXNpdmUgYXJlIGZy ZWUgKi8NCi1kaWZmIC0tZ2l0IGEveGVuL2luY2x1ZGUvYXNtLWFybS9udW1hLmggYi94ZW4vaW5j bHVkZS9hc20tYXJtL251bWEuaA0KLWluZGV4IGEyYzFhMzQ3NmQuLjNlNzM4NGRhOWUgMTAwNjQ0 DQotLS0tIGEveGVuL2luY2x1ZGUvYXNtLWFybS9udW1hLmgNCi0rKysgYi94ZW4vaW5jbHVkZS9h c20tYXJtL251bWEuaA0KLUBAIC0xMiw5ICsxMiwxNSBAQCBzdGF0aWMgaW5saW5lIF9fYXR0cmli dXRlX18oKHB1cmUpKSBub2RlaWRfdCBwaHlzX3RvX25pZChwYWRkcl90IGFkZHIpDQotICAgICBy ZXR1cm4gMDsNCi0gfQ0KLSANCi0rLyoNCi0rICogVE9ETzogbWFrZSBmaXJzdF92YWxpZF9tZm4g c3RhdGljIHdoZW4gTlVNQSBpcyBzdXBwb3J0ZWQgb24gQXJtLCB0aGlzDQotKyAqIGlzIHJlcXVp cmVkIGJlY2F1c2UgdGhlIGR1bW15IGhlbHBlcnMgaXMgdXNpbmcgaXQuDQotKyAqLw0KLStleHRl cm4gdW5zaWduZWQgbG9uZyBmaXJzdF92YWxpZF9tZm47DQotKw0KLSAvKiBYWFg6IGltcGxlbWVu dCBOVU1BIHN1cHBvcnQgKi8NCi0tI2RlZmluZSBub2RlX3NwYW5uZWRfcGFnZXMobmlkKSAodG90 YWxfcGFnZXMpDQotLSNkZWZpbmUgbm9kZV9zdGFydF9wZm4obmlkKSAocGR4X3RvX3BmbihmcmFt ZXRhYmxlX2Jhc2VfcGR4KSkNCi0rI2RlZmluZSBub2RlX3NwYW5uZWRfcGFnZXMobmlkKSAobWF4 X3BhZ2UgLSBmaXJzdF92YWxpZF9tZm4pDQotKyNkZWZpbmUgbm9kZV9zdGFydF9wZm4obmlkKSAo Zmlyc3RfdmFsaWRfbWZuKQ0KLSAjZGVmaW5lIF9fbm9kZV9kaXN0YW5jZShhLCBiKSAoMjApDQot IA0KLSBzdGF0aWMgaW5saW5lIHVuc2lnbmVkIGludCBhcmNoX2dldF9kbWFfYml0c2l6ZSh2b2lk KQ0KLS0tIA0KLTIuMTEuMA0KLQ0KLS0gDQoyLjE1LjANCg0KDQoNCi0tLQ0KVW5zdWJzY3JpYmU6 ICBhbHBpbmUtYXBvcnRzK3Vuc3Vic2NyaWJlQGxpc3RzLmFscGluZWxpbnV4Lm9yZw0KSGVscDog ICAgICAgICBhbHBpbmUtYXBvcnRzK2hlbHBAbGlzdHMuYWxwaW5lbGludXgub3JnDQotLS0NCg==