From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.2 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_SANE_1 autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 63E20C43603 for ; Thu, 12 Dec 2019 16:03:54 +0000 (UTC) Received: from alsa0.perex.cz (alsa0.perex.cz [77.48.224.243]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id C37BD2173E for ; Thu, 12 Dec 2019 16:03:52 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=alsa-project.org header.i=@alsa-project.org header.b="Bwo/cGnj"; dkim=fail reason="signature verification failed" (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="s67/0KDv" DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org C37BD2173E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=samsung.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=alsa-devel-bounces@alsa-project.org Received: from alsa1.perex.cz (alsa1.perex.cz [207.180.221.201]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa0.perex.cz (Postfix) with ESMTPS id 56D3C16EB; Thu, 12 Dec 2019 17:03:00 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa0.perex.cz 56D3C16EB DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=alsa-project.org; s=default; t=1576166630; bh=9gIwVA5mi8iSeNtFV4tJ07o06dFoUzKGmAgV3MbirBg=; h=From:To:Date:In-Reply-To:References:Cc:Subject:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From; b=Bwo/cGnjVXkELqbqqfyS3oakxehgtzWmwMLWpgvPy5DiMy8b7iVCdfWbeIoGsLdAb yc3TLTXWi/7icd20ZDgKLFgOww4q43intTmFmxgGii/uws8QvWv4wHg+Y+QH4DkSfd uA4tLh/Vq051zotFD8CQlIPQu6thE6CGdLeYzBXo= Received: from alsa1.perex.cz (localhost.localdomain [127.0.0.1]) by alsa1.perex.cz (Postfix) with ESMTP id C71C0F801D8; Thu, 12 Dec 2019 17:02:59 +0100 (CET) Received: by alsa1.perex.cz (Postfix, from userid 50401) id 0C575F8020C; Thu, 12 Dec 2019 17:02:58 +0100 (CET) Received: from mailout2.w1.samsung.com (mailout2.w1.samsung.com [210.118.77.12]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by alsa1.perex.cz (Postfix) with ESMTPS id 6A9EEF80139 for ; Thu, 12 Dec 2019 17:02:53 +0100 (CET) DKIM-Filter: OpenDKIM Filter v2.11.0 alsa1.perex.cz 6A9EEF80139 Authentication-Results: alsa1.perex.cz; dkim=pass (1024-bit key) header.d=samsung.com header.i=@samsung.com header.b="s67/0KDv" Received: from eucas1p2.samsung.com (unknown [182.198.249.207]) by mailout2.w1.samsung.com (KnoxPortal) with ESMTP id 20191212160252euoutp02eb897fef8f99e2574a9060b610c4d19a~fqyWF9gY41424014240euoutp02U for ; Thu, 12 Dec 2019 16:02:52 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 mailout2.w1.samsung.com 20191212160252euoutp02eb897fef8f99e2574a9060b610c4d19a~fqyWF9gY41424014240euoutp02U DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=samsung.com; s=mail20170921; t=1576166572; bh=Jsw49iRaTpPBXuO+vsHr6GtYbsvPnCOo9NrfzdTo2So=; h=Subject:From:To:Cc:Date:In-Reply-To:References:From; b=s67/0KDvvsveHvLhlBa1NMp72ZaAUnFmeBePYujhV98MN22rkhlv8f1kxHETBdrnG Z18GPi89US2CUwU8EtQzyzKdf9fkCuQZnPLQ+nbcKYSpFQJ3riY2ghnT4V/MoVEKQ3 znCckfJ4vq47ID5otlgJmms5O+6ngL1WcvnjsYN4= Received: from eusmges3new.samsung.com (unknown [203.254.199.245]) by eucas1p2.samsung.com (KnoxPortal) with ESMTP id 20191212160251eucas1p2daac5811027890218dba1c1d1f403aad~fqyVw4bMR1019710197eucas1p2h; Thu, 12 Dec 2019 16:02:51 +0000 (GMT) Received: from eucas1p2.samsung.com ( [182.198.249.207]) by eusmges3new.samsung.com (EUCPMTA) with SMTP id 9E.7F.60698.BA462FD5; Thu, 12 Dec 2019 16:02:51 +0000 (GMT) Received: from eusmtrp1.samsung.com (unknown [182.198.249.138]) by eucas1p2.samsung.com (KnoxPortal) with ESMTPA id 20191212160251eucas1p26022811d70c9d5c845b3685ddd7dd794~fqyVZX0Hl1792517925eucas1p2M; Thu, 12 Dec 2019 16:02:51 +0000 (GMT) Received: from eusmgms1.samsung.com (unknown [182.198.249.179]) by eusmtrp1.samsung.com (KnoxPortal) with ESMTP id 20191212160251eusmtrp1774dc3ba6d6b01c3c77eade8d94e26be~fqyVYpwvT0141201412eusmtrp1s; Thu, 12 Dec 2019 16:02:51 +0000 (GMT) X-AuditID: cbfec7f5-a0fff7000001ed1a-4b-5df264aba757 Received: from eusmtip1.samsung.com ( [203.254.199.221]) by eusmgms1.samsung.com (EUCPMTA) with SMTP id E8.60.08375.BA462FD5; Thu, 12 Dec 2019 16:02:51 +0000 (GMT) Received: from [106.120.51.15] (unknown [106.120.51.15]) by eusmtip1.samsung.com (KnoxPortal) with ESMTPA id 20191212160250eusmtip1863b1252924a71281703c765567bde1a~fqyUtUeFs2670226702eusmtip15; Thu, 12 Dec 2019 16:02:50 +0000 (GMT) From: Marek Szyprowski To: Tzung-Bi Shih , broonie@kernel.org Message-ID: <129540e9-a4e8-3d01-41bc-e7c9c04bbefe@samsung.com> Date: Thu, 12 Dec 2019 17:02:50 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.9.1 MIME-Version: 1.0 In-Reply-To: <8aceb9ec-aa6e-1fa4-cee9-e22084c141e8@samsung.com> Content-Language: en-US X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFtrIKsWRmVeSWpSXmKPExsWy7djP87qrUz7FGnycpW9x5eIhJoupD5+w WZw43Mhs0T6zg9Hi/PkN7BYzzu9jsjj8pp3VYs/FV+wOHB4bPjexeSzYVOqxaVUnm0ffllWM Hp83yQWwRnHZpKTmZJalFunbJXBlnO+azVgw7ydTxbQ5z9gbGPecYepi5OSQEDCROPX7JmMX IxeHkMAKRonzTbPZIJwvjBK753VCZT4zSlz4s5W9i5EDrOXQVW6I+HJGiVnrN7JDOG8ZJbYs 384IMldYIE/i4JLVbCA2m4ChRNfbLjBbRMBK4nX/XRaQBmaBG4wSR//8BGvgFbCTaH50kBnE ZhFQlZhz+ggLyDZRgViJjuUZECWCEidnPmEBsTkF7CXmPD0L9gOzgLxE89bZzBC2uMStJ/OZ QOZLCOxil7g5oZUF4lEXibn9B9khbGGJV8e3QNkyEqcn97BANDQzSjw8t5YdwulhlLjcNIMR ospa4vDxi6wgFzELaEqs36UPEXaUmH3vMzMkWPgkbrwVhDiCT2LStulQYV6JjjYhiGo1iVnH 18GtPXjhEvMERqVZSF6bheSdWUjemYWwdwEjyypG8dTS4tz01GLjvNRyveLE3OLSvHS95Pzc TYzAhHT63/GvOxj3/Uk6xCjAwajEw8sATFRCrIllxZW5hxglOJiVRHiPt72LFeJNSaysSi3K jy8qzUktPsQozcGiJM5rvOhlrJBAemJJanZqakFqEUyWiYNTqoFRZZuWFMML9vc/TDYafBI7 s2PiK46Ll5hWtBhxW75eusvpzoW1R/f8fvP77wGpabP8yjrKF/Mw7mzj/rC7c9+PKL0l3z9z hVb9PO4iX8P2Ya7MnTlpHh9nmu/Y/krivrKQ5wT1lE3JH5673mx9kfB1j0HW3bBPdfFPlP+5 N5vOY4uRjNGc7neYV4mlOCPRUIu5qDgRAPvrEMpEAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFjrCIsWRmVeSWpSXmKPExsVy+t/xu7qrUz7FGixtkLS4cvEQk8XUh0/Y LE4cbmS2aJ/ZwWhx/vwGdosZ5/cxWRx+085qsefiK3YHDo8Nn5vYPBZsKvXYtKqTzaNvyypG j8+b5AJYo/RsivJLS1IVMvKLS2yVog0tjPQMLS30jEws9QyNzWOtjEyV9O1sUlJzMstSi/Tt EvQyznfNZiyY95OpYtqcZ+wNjHvOMHUxcnBICJhIHLrK3cXIxSEksJRRomnvbuYuRk6guIzE yWkNrBC2sMSfa11sEEWvGSXeH1sGViQskCdxcMlqNhCbTcBQouttF5gtImAl8br/LgtIA7PA LUaJv5M3skJ0H2SU6D99Cmwsr4CdRPOjg2CTWARUJeacPsICYosKxEp8X/mJEaJGUOLkzCdg cU4Be4k5T88ygdjMAmYS8zY/ZIaw5SWat86GssUlbj2ZzzSBUWgWkvZZSFpmIWmZhaRlASPL KkaR1NLi3PTcYkO94sTc4tK8dL3k/NxNjMAY3Hbs5+YdjJc2Bh9iFOBgVOLhZQDGphBrYllx Ze4hRgkOZiUR3uNt72KFeFMSK6tSi/Lji0pzUosPMZoCPTeRWUo0OR+YHvJK4g1NDc0tLA3N jc2NzSyUxHk7BA7GCAmkJ5akZqemFqQWwfQxcXBKNTBm9K2+/XxaKHOCVJ7IXEenk6kH59/e fPEYy+vSZ0WKxyf4sgss4j/b4R1rUuck4LtDaMW9uoadoSL6aZ1pNheyVMNdDsw7aXLafGp3 tfKznd5PnBIbvVJknjhLqL67fSBXtT1Z8PEZQTl25ZzfRSXSuXEr0iTuML9v6LYNZzpwyyx8 sd2Xo0osxRmJhlrMRcWJAEPjTRvXAgAA X-CMS-MailID: 20191212160251eucas1p26022811d70c9d5c845b3685ddd7dd794 X-Msg-Generator: CA X-RootMTR: 20191128152110epcas3p2b205b4b55f6d8bfac42fcb8faaade93c X-EPHeader: CA CMS-TYPE: 201P X-CMS-RootMailID: 20191128152110epcas3p2b205b4b55f6d8bfac42fcb8faaade93c References: <20191128151908.180871-1-tzungbi@google.com> <8aceb9ec-aa6e-1fa4-cee9-e22084c141e8@samsung.com> Cc: alsa-devel@alsa-project.org, 'Linux Samsung SOC' , cychiang@google.com, Krzysztof Kozlowski , Sylwester Nawrocki , dgreid@google.com Subject: Re: [alsa-devel] [PATCH v2] ASoC: max98090: save and restore SHDN when changing sensitive registers X-BeenThere: alsa-devel@alsa-project.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: "Alsa-devel mailing list for ALSA developers - http://www.alsa-project.org" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: alsa-devel-bounces@alsa-project.org Sender: "Alsa-devel" SGksCgpPbiAxMi4xMi4yMDE5IDE1OjA5LCBNYXJlayBTenlwcm93c2tpIHdyb3RlOgo+IEhpLAo+ Cj4gT24gMjguMTEuMjAxOSAxNjoxOSwgVHp1bmctQmkgU2hpaCB3cm90ZToKPj4gQWNjb3JkaW5n IHRvIHRoZSBkYXRhc2hlZXQsIHRoZXJlIGFyZSBzb21lIHJlZ2lzdGVycyBjYW4gb25seSBiZSBj aGFuZ2VkCj4+IHdoZW4gU0hETiBpcyAwLsKgIENoYW5naW5nIHRoZXNlIHNldHRpbmdzIGR1cmlu ZyBTSEROID0gMSBjYW4gY29tcHJvbWlzZQo+PiBkZXZpY2Ugc3RhYmlsaXR5IGFuZCBwZXJmb3Jt YW5jZSBzcGVjaWZpY2F0aW9ucy4KPj4KPj4gU2F2ZXMgU0hETiBiZWZvcmUgd3JpdGluZyB0byB0 aGVzZSBzZW5zaXRpdmUgcmVnaXN0ZXJzIGFuZCByZXN0b3JlcyBTSEROCj4+IGFmdGVyd2FyZC4K Pj4KPj4gSGVyZSBpcyB0aGUgcmVnaXN0ZXIgbGlzdCBjb2RlYyBkcml2ZXIgb2YgbWF4OTgwOTAg d2FudHMgdG8gY2hhbmdlOgo+PiBNOTgwOTBfUkVHX1FVSUNLX1NZU1RFTV9DTE9DS8KgwqDCoMKg wqDCoMKgIDB4MDQKPj4gTTk4MDkwX1JFR19RVUlDS19TQU1QTEVfUkFURcKgwqDCoMKgwqDCoMKg IDB4MDUKPj4gTTk4MDkwX1JFR19EQUlfSU5URVJGQUNFwqDCoMKgwqDCoMKgwqAgMHgwNgo+PiBN OTgwOTBfUkVHX0RBQ19QQVRIwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAweDA3Cj4+IE05ODA5MF9S RUdfTUlDX0RJUkVDVF9UT19BREPCoMKgwqDCoMKgwqDCoCAweDA4Cj4+IE05ODA5MF9SRUdfTElO RV9UT19BREPCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDB4MDkKPj4gTTk4MDkwX1JFR19BTkFMT0df TUlDX0xPT1DCoMKgwqDCoMKgwqDCoCAweDBBCj4+IE05ODA5MF9SRUdfQU5BTE9HX0xJTkVfTE9P UMKgwqDCoMKgwqDCoMKgIDB4MEIKPj4gTTk4MDkwX1JFR19TWVNURU1fQ0xPQ0vCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIDB4MUIKPj4gTTk4MDkwX1JFR19DTE9DS19NT0RFwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAweDFDCj4+IE05ODA5MF9SRUdfQ0xPQ0tfUkFUSU9fTklfTVNCwqDCoMKgwqDCoMKg wqAgMHgxRAo+PiBNOTgwOTBfUkVHX0NMT0NLX1JBVElPX05JX0xTQsKgwqDCoMKgwqDCoMKgIDB4 MUUKPj4gTTk4MDkwX1JFR19DTE9DS19SQVRJT19NSV9NU0LCoMKgwqDCoMKgwqDCoCAweDFGCj4+ IE05ODA5MF9SRUdfQ0xPQ0tfUkFUSU9fTUlfTFNCwqDCoMKgwqDCoMKgwqAgMHgyMAo+PiBNOTgw OTBfUkVHX01BU1RFUl9NT0RFwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAweDIxCj4+IE05ODA5MF9S RUdfSU5URVJGQUNFX0ZPUk1BVMKgwqDCoMKgwqDCoMKgIDB4MjIKPj4gTTk4MDkwX1JFR19URE1f Q09OVFJPTMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMHgyMwo+PiBNOTgwOTBfUkVHX1RETV9GT1JN QVTCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDB4MjQKPj4gTTk4MDkwX1JFR19JT19DT05GSUdVUkFU SU9OwqDCoMKgwqDCoMKgwqAgMHgyNQo+PiBNOTgwOTBfUkVHX0ZJTFRFUl9DT05GSUfCoMKgwqDC oMKgwqDCoCAweDI2Cj4+IE05ODA5MF9SRUdfSU5QVVRfRU5BQkxFwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAweDNFCj4+IE05ODA5MF9SRUdfT1VUUFVUX0VOQUJMRcKgwqDCoMKgwqDCoMKgIDB4M0YK Pj4gTTk4MDkwX1JFR19CSUFTX0NPTlRST0zCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDB4NDIKPj4g TTk4MDkwX1JFR19EQUNfQ09OVFJPTMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMHg0Mwo+PiBNOTgw OTBfUkVHX0FEQ19DT05UUk9MwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAweDQ0Cj4+IE05ODA5MF9S RUdfRFJDX1RJTUlOR8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMHgzMwo+PiBNOTgwOTBfUkVHX0RS Q19DT01QUkVTU09SwqDCoMKgwqDCoMKgwqAgMHgzNAo+PiBNOTgwOTBfUkVHX0RSQ19FWFBBTkRF UsKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgMHgzNQo+PiBNOTgwOTBfUkVHX0RTUF9GSUxURVJfRU5B QkxFwqDCoMKgwqDCoMKgwqAgMHg0MQo+PiBNOTgwOTBfUkVHX0VRVUFMSVpFUl9CQVNFwqDCoMKg wqDCoMKgwqAgMHg0Ngo+PiBNOTgwOTBfUkVHX1JFQ09SRF9CSVFVQURfQkFTRcKgwqDCoMKgwqDC oMKgIDB4QUYKPj4gTTk4MDkwX1JFR19ESUdJVEFMX01JQ19FTkFCTEXCoMKgwqDCoMKgwqDCoCAw eDEzCj4+IE05ODA5MF9SRUdfRElHSVRBTF9NSUNfQ09ORklHwqDCoMKgwqDCoMKgwqAgMHgxNAo+ Pgo+PiBTaWduZWQtb2ZmLWJ5OiBUenVuZy1CaSBTaGloIDx0enVuZ2JpQGdvb2dsZS5jb20+Cj4K PiBUb2RheSBJJ3ZlIG5vdGljZWQgdGhhdCB0aGlzIHBhdGNoIGdvdCBtZXJnZWQgdG8gbGludXgt bmV4dCBhcyBjb21taXQgCj4gNjJkNWFlNGNhZmI3ZmZlZWVjNmJhMmRkMTgxNGNhZmVlZWE3ZGQ4 Zi4gU2FkbHkgaXQgYnJlYWtzIGNvZGVjIAo+IG9wZXJhdGlvbiBvbiBzb21lIFNhbXN1bmcgRXh5 bm9zIFNvQyBiYXNlZCBib2FyZHM6IE9kcm9pZCBVMywgWFUsIFhVMyAKPiBhbmQgQ2hyb21lYm9v ayBQZWFjaC1QaXQvUGkuIEkgZ2V0IHRoZSBmb2xsb3dpbmcgZXJyb3JzIGR1cmluZyBib290Ogo+ Cj4gPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Cj4gV0FSTklORzogcG9zc2libGUgY2lyY3VsYXIgbG9ja2luZyBkZXBlbmRlbmN5IGRldGVjdGVk Cj4gNS41LjAtcmMxLW5leHQtMjAxOTEyMTIgIzg2IE5vdCB0YWludGVkCj4gLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gYWxzYWN0bC8yNjUg aXMgdHJ5aW5nIHRvIGFjcXVpcmUgbG9jazoKPiBlZGE4MjBmNCAoJmNhcmQtPmRhcG1fbXV0ZXgp eysuKy59LCBhdDogbWF4OTgwOTBfc2hkbl9zYXZlKzB4MWMvMHgyOAo+Cj4gYnV0IHRhc2sgaXMg YWxyZWFkeSBob2xkaW5nIGxvY2s6Cj4gZWRhNTI0OWMgKCZjYXJkLT5jb250cm9sc19yd3NlbSl7 KysrK30sIGF0OiBzbmRfY3RsX2lvY3RsKzB4Y2MvMHhiYjgKPgo+IHdoaWNoIGxvY2sgYWxyZWFk eSBkZXBlbmRzIG9uIHRoZSBuZXcgbG9jay4KPgo+Cj4gdGhlIGV4aXN0aW5nIGRlcGVuZGVuY3kg Y2hhaW4gKGluIHJldmVyc2Ugb3JkZXIpIGlzOgo+IGR3bW1jX2V4eW5vcyAxMjIwMDAwMC5tbWM6 IFVuZXhwZWN0ZWQgaW50ZXJydXB0IGxhdGVuY3kKPgo+IC0+ICMxICgmY2FyZC0+Y29udHJvbHNf cndzZW0peysrKyt9Ogo+IMKgwqDCoMKgwqDCoCBzbmRfY3RsX2FkZF9yZXBsYWNlKzB4M2MvMHg4 NAo+IMKgwqDCoMKgwqDCoCBkYXBtX2NyZWF0ZV9vcl9zaGFyZV9rY29udHJvbCsweDI0Yy8weDJl MAo+IMKgwqDCoMKgwqDCoCBzbmRfc29jX2RhcG1fbmV3X3dpZGdldHMrMHgzMDgvMHg1OTQKPiDC oMKgwqDCoMKgwqAgc25kX3NvY19iaW5kX2NhcmQrMHg4MGMvMHhhYzgKPiDCoMKgwqDCoMKgwqAg ZGV2bV9zbmRfc29jX3JlZ2lzdGVyX2NhcmQrMHgzNC8weDZjCj4gwqDCoMKgwqDCoMKgIGFzb2Nf c2ltcGxlX3Byb2JlKzB4MjQ0LzB4NGEwCj4gwqDCoMKgwqDCoMKgIHBsYXRmb3JtX2Rydl9wcm9i ZSsweDZjLzB4YTQKPiDCoMKgwqDCoMKgwqAgcmVhbGx5X3Byb2JlKzB4MjAwLzB4NDkwCj4gwqDC oMKgwqDCoMKgIGRyaXZlcl9wcm9iZV9kZXZpY2UrMHg3OC8weDFmOAo+IMKgwqDCoMKgwqDCoCBi dXNfZm9yX2VhY2hfZHJ2KzB4NzQvMHhiOAo+IMKgwqDCoMKgwqDCoCBfX2RldmljZV9hdHRhY2gr MHhkNC8weDE2Ywo+IMKgwqDCoMKgwqDCoCBidXNfcHJvYmVfZGV2aWNlKzB4ODgvMHg5MAo+IMKg wqDCoMKgwqDCoCBkZWZlcnJlZF9wcm9iZV93b3JrX2Z1bmMrMHgzYy8weGQwCj4gwqDCoMKgwqDC oMKgIHByb2Nlc3Nfb25lX3dvcmsrMHgyMmMvMHg3YzQKPiDCoMKgwqDCoMKgwqAgd29ya2VyX3Ro cmVhZCsweDQ0LzB4NTI0Cj4gwqDCoMKgwqDCoMKgIGt0aHJlYWQrMHgxMzAvMHgxNjQKPiDCoMKg wqDCoMKgwqAgcmV0X2Zyb21fZm9yaysweDE0LzB4MjAKPiDCoMKgwqDCoMKgwqAgMHgwCj4KPiAt PiAjMCAoJmNhcmQtPmRhcG1fbXV0ZXgpeysuKy59Ogo+IMKgwqDCoMKgwqDCoCBsb2NrX2FjcXVp cmUrMHhlOC8weDI3MAo+IMKgwqDCoMKgwqDCoCBfX211dGV4X2xvY2srMHg5Yy8weGIxOAo+IMKg wqDCoMKgwqDCoCBtdXRleF9sb2NrX25lc3RlZCsweDFjLzB4MjQKPiDCoMKgwqDCoMKgwqAgbWF4 OTgwOTBfc2hkbl9zYXZlKzB4MWMvMHgyOAo+IMKgwqDCoMKgwqDCoCBtYXg5ODA5MF9wdXRfZW51 bV9kb3VibGUrMHgyMC8weDQwCj4gwqDCoMKgwqDCoMKgIHNuZF9jdGxfaW9jdGwrMHgxOTAvMHhi YjgKPiDCoMKgwqDCoMKgwqAgZG9fdmZzX2lvY3RsKzB4YjAvMHhhYjAKPiDCoMKgwqDCoMKgwqAg a3N5c19pb2N0bCsweDM0LzB4NWMKPiDCoMKgwqDCoMKgwqAgcmV0X2Zhc3Rfc3lzY2FsbCsweDAv MHgyOAo+IMKgwqDCoMKgwqDCoCAweGJlOTA5NGRjCj4KPiBvdGhlciBpbmZvIHRoYXQgbWlnaHQg aGVscCB1cyBkZWJ1ZyB0aGlzOgo+Cj4gwqBQb3NzaWJsZSB1bnNhZmUgbG9ja2luZyBzY2VuYXJp bzoKPgo+IMKgwqDCoMKgwqDCoCBDUFUwwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgQ1BVMQo+IMKgwqDCoMKgwqDCoCAtLS0twqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqAgLS0tLQo+IMKgIGxvY2soJmNhcmQtPmNvbnRyb2xzX3J3c2VtKTsKPiDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg bG9jaygmY2FyZC0+ZGFwbV9tdXRleCk7Cj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGxvY2soJmNhcmQtPmNvbnRyb2xzX3J3c2Vt KTsKPiDCoCBsb2NrKCZjYXJkLT5kYXBtX211dGV4KTsKPgo+IMKgKioqIERFQURMT0NLICoqKgo+ Cj4gMSBsb2NrIGhlbGQgYnkgYWxzYWN0bC8yNjU6Cj4gwqAjMDogZWRhNTI0OWMgKCZjYXJkLT5j b250cm9sc19yd3NlbSl7KysrK30sIGF0OiBzbmRfY3RsX2lvY3RsKzB4Y2MvMHhiYjgKPgo+IHN0 YWNrIGJhY2t0cmFjZToKPiBDUFU6IDAgUElEOiAyNjUgQ29tbTogYWxzYWN0bCBOb3QgdGFpbnRl ZCA1LjUuMC1yYzEtbmV4dC0yMDE5MTIxMiAjODYKPiBIYXJkd2FyZSBuYW1lOiBTQU1TVU5HIEVY WU5PUyAoRmxhdHRlbmVkIERldmljZSBUcmVlKQo+IFs8YzAxMTI1NzA+XSAodW53aW5kX2JhY2t0 cmFjZSkgZnJvbSBbPGMwMTBlMDVjPl0gKHNob3dfc3RhY2srMHgxMC8weDE0KQo+IFs8YzAxMGUw NWM+XSAoc2hvd19zdGFjaykgZnJvbSBbPGMwYjFmMTVjPl0gKGR1bXBfc3RhY2srMHhiNC8weGUw KQo+IFs8YzBiMWYxNWM+XSAoZHVtcF9zdGFjaykgZnJvbSBbPGMwMTg5ZWFjPl0gCj4gKGNoZWNr X25vbmNpcmN1bGFyKzB4MWVjLzB4MjA4KQo+IFs8YzAxODllYWM+XSAoY2hlY2tfbm9uY2lyY3Vs YXIpIGZyb20gWzxjMDE4YzJjOD5dIAo+IChfX2xvY2tfYWNxdWlyZSsweDEyMTAvMHgyNWVjKQo+ IFs8YzAxOGMyYzg+XSAoX19sb2NrX2FjcXVpcmUpIGZyb20gWzxjMDE4ZGZjND5dIChsb2NrX2Fj cXVpcmUrMHhlOC8weDI3MCkKPiBbPGMwMThkZmM0Pl0gKGxvY2tfYWNxdWlyZSkgZnJvbSBbPGMw YjNmYzMwPl0gKF9fbXV0ZXhfbG9jaysweDljLzB4YjE4KQo+IFs8YzBiM2ZjMzA+XSAoX19tdXRl eF9sb2NrKSBmcm9tIFs8YzBiNDA2Yzg+XSAKPiAobXV0ZXhfbG9ja19uZXN0ZWQrMHgxYy8weDI0 KQo+IFs8YzBiNDA2Yzg+XSAobXV0ZXhfbG9ja19uZXN0ZWQpIGZyb20gWzxjMDgzMzk4OD5dIAo+ IChtYXg5ODA5MF9zaGRuX3NhdmUrMHgxYy8weDI4KQo+IFs8YzA4MzM5ODg+XSAobWF4OTgwOTBf c2hkbl9zYXZlKSBmcm9tIFs8YzA4MzQ0MDQ+XSAKPiAobWF4OTgwOTBfcHV0X2VudW1fZG91Ymxl KzB4MjAvMHg0MCkKPiBbPGMwODM0NDA0Pl0gKG1heDk4MDkwX3B1dF9lbnVtX2RvdWJsZSkgZnJv bSBbPGMwODA3OTcwPl0gCj4gKHNuZF9jdGxfaW9jdGwrMHgxOTAvMHhiYjgpCj4gWzxjMDgwNzk3 MD5dIChzbmRfY3RsX2lvY3RsKSBmcm9tIFs8YzAyY2EwYmM+XSAoZG9fdmZzX2lvY3RsKzB4YjAv MHhhYjApCj4gWzxjMDJjYTBiYz5dIChkb192ZnNfaW9jdGwpIGZyb20gWzxjMDJjYWFmMD5dIChr c3lzX2lvY3RsKzB4MzQvMHg1YykKPiBbPGMwMmNhYWYwPl0gKGtzeXNfaW9jdGwpIGZyb20gWzxj MDEwMTAwMD5dIChyZXRfZmFzdF9zeXNjYWxsKzB4MC8weDI4KQo+IEV4Y2VwdGlvbiBzdGFjaygw eGVjNDcxZmE4IHRvIDB4ZWM0NzFmZjApCj4gLi4uCj4KPiA4PC0tLSBjdXQgaGVyZSAtLS0KPiBV bmFibGUgdG8gaGFuZGxlIGtlcm5lbCBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgYXQgdmlydHVh bCBhZGRyZXNzIAo+IDAwMDAwMGIwCj4gcGdkID0gKHB0cnZhbCkKPiBbMDAwMDAwYjBdICpwZ2Q9 MDAwMDAwMDAKPiBJbnRlcm5hbCBlcnJvcjogT29wczogNSBbIzFdIFBSRUVNUFQgU01QIEFSTQo+ IE1vZHVsZXMgbGlua2VkIGluOgo+IENQVTogMCBQSUQ6IDI2NSBDb21tOiBhbHNhY3RsIE5vdCB0 YWludGVkIDUuNS4wLXJjMS1uZXh0LTIwMTkxMjEyICM4Ngo+IEhhcmR3YXJlIG5hbWU6IFNBTVNV TkcgRVhZTk9TIChGbGF0dGVuZWQgRGV2aWNlIFRyZWUpCj4gUEMgaXMgYXQgX19tdXRleF9sb2Nr KzB4NTQvMHhiMTgKPiBMUiBpcyBhdCBfX19taWdodF9zbGVlcCsweDNjLzB4MmUwCj4gcGMgOiBb PGMwYjNmYmU4Pl3CoMKgwqAgbHIgOiBbPGMwMTU4NWE4Pl3CoMKgwqAgcHNyOiA2MDAwMDAxMwo+ IHNwIDogZWM0NzFlMDDCoCBpcCA6IGU4NWIyZTA1wqAgZnAgOiBlZGE4YjI4MAo+IHIxMDogZWRh NTI0NjTCoCByOSA6IGVkYTUyMDAwwqAgcjggOiBiZTkwOTYxOAo+IHI3IDogYzE5MTY2NDTCoCBy NiA6IDAwMDAwMDAwwqAgcjUgOiAwMDAwMDAwMMKgIHI0IDogMDAwMDAwODAKPiByMyA6IDAwMDAw MDAwwqAgcjIgOiAwMDQwMDAwMMKgIHIxIDogMDAwMDAzYWHCoCByMCA6IDAwMDAwMDAwCj4gRmxh Z3M6IG5aQ3bCoCBJUlFzIG9uwqAgRklRcyBvbsKgIE1vZGUgU1ZDXzMywqAgSVNBIEFSTcKgIFNl Z21lbnQgbm9uZQo+IENvbnRyb2w6IDEwYzUzODdkwqAgVGFibGU6IDZjNjJjMDZhwqAgREFDOiAw MDAwMDA1MQo+IFByb2Nlc3MgYWxzYWN0bCAocGlkOiAyNjUsIHN0YWNrIGxpbWl0ID0gMHgocHRy dmFsKSkKPiBTdGFjazogKDB4ZWM0NzFlMDAgdG8gMHhlYzQ3MjAwMCkKPiAuLi4KPiBbPGMwYjNm YmU4Pl0gKF9fbXV0ZXhfbG9jaykgZnJvbSBbPGMwYjQwNmM4Pl0gCj4gKG11dGV4X2xvY2tfbmVz dGVkKzB4MWMvMHgyNCkKPiBbPGMwYjQwNmM4Pl0gKG11dGV4X2xvY2tfbmVzdGVkKSBmcm9tIFs8 YzA4MzM5ODg+XSAKPiAobWF4OTgwOTBfc2hkbl9zYXZlKzB4MWMvMHgyOCkKPiBbPGMwODMzOTg4 Pl0gKG1heDk4MDkwX3NoZG5fc2F2ZSkgZnJvbSBbPGMwODM0MzQ0Pl0gCj4gKG1heDk4MDkwX2Rh cG1fcHV0X2VudW1fZG91YmxlKzB4MjAvMHg0MCkKPiBbPGMwODM0MzQ0Pl0gKG1heDk4MDkwX2Rh cG1fcHV0X2VudW1fZG91YmxlKSBmcm9tIFs8YzA4MDc5NzA+XSAKPiAoc25kX2N0bF9pb2N0bCsw eDE5MC8weGJiOCkKPiBbPGMwODA3OTcwPl0gKHNuZF9jdGxfaW9jdGwpIGZyb20gWzxjMDJjYTBi Yz5dIChkb192ZnNfaW9jdGwrMHhiMC8weGFiMCkKPiBbPGMwMmNhMGJjPl0gKGRvX3Zmc19pb2N0 bCkgZnJvbSBbPGMwMmNhYWYwPl0gKGtzeXNfaW9jdGwrMHgzNC8weDVjKQo+IFs8YzAyY2FhZjA+ XSAoa3N5c19pb2N0bCkgZnJvbSBbPGMwMTAxMDAwPl0gKHJldF9mYXN0X3N5c2NhbGwrMHgwLzB4 MjgpCj4gRXhjZXB0aW9uIHN0YWNrKDB4ZWM0NzFmYTggdG8gMHhlYzQ3MWZmMCkKPiAxZmEwOsKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAwMDAwMDAwMSAwMDAwMDAwMCAwMDAw MDAwMyBjMmM4NTUxMyBiZTkwOTYxOCAKPiAwMDQ3MjYyMAo+IDFmYzA6IDAwMDAwMDAxIDAwMDAw MDAwIDAwMDAwMDAyIDAwMDAwMDM2IDAwMDAwMDAyIGJlOTA5NTEwIDAwMDAwMDAzIAo+IGJlOTA5 OTZjCj4gMWZlMDogYjZmNDg3YzQgYmU5MDk0ZGMgYjZlOGQzYTAgYjZjZGE3OWMKPiBDb2RlOiBl YmQ4NjMxYiBlNTk3MzAwMCBlMzUzMDAwMCAxYTAwMDAwMiAoZTU5NDMwMzApCj4gLS0tWyBlbmQg dHJhY2UgMzc2ZDJkZTI3ODY2OTBkNyBdLS0tCj4KPiBUaGUgb25seSBzdHJhbmdlIHRoaW5nIGlz IHRoYXQgQ2hyb21lYm9vayBTbm93LCB3aGljaCBhbHNvIHVzZSB0aGlzIAo+IGNvZGVjIGJvb3Rz IGZpbmUuCj4KPj4gLS0tCj4+IFRoaXMgcGF0Y2ggaXMgYSBmb2xsb3cgdXAgZml4IGZvciB0aGUg cXVlc3Rpb246Cj4+IGh0dHBzOi8vbWFpbG1hbi5hbHNhLXByb2plY3Qub3JnL3BpcGVybWFpbC9h bHNhLWRldmVsLzIwMTktT2N0b2Jlci8xNTczNjQuaHRtbCAKPj4KPj4KPj4gQ2hhbmdlcyBmcm9t IHYxOgo+PiBodHRwczovL21haWxtYW4uYWxzYS1wcm9qZWN0Lm9yZy9waXBlcm1haWwvYWxzYS1k ZXZlbC8yMDE5LU5vdmVtYmVyLzE1ODg1NS5odG1sIAo+Pgo+PiAtIGZpeCBhIHR5cG8gaW4gY29t bWl0IG1lc3NhZ2UKPj4gLSByZWJhc2UgdG8gdGhlIGxhdGVzdCBmb3ItbmV4dCAoYSBmZXcgbGlu ZSBudW1iZXJzIGNoYW5nZWQpCj4+Cj4+IMKgIHNvdW5kL3NvYy9jb2RlY3MvbWF4OTgwOTAuYyB8 IDQzMyArKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0KPj4gwqAgc291bmQvc29j L2NvZGVjcy9tYXg5ODA5MC5oIHzCoMKgIDMgKy0KPj4gwqAgMiBmaWxlcyBjaGFuZ2VkLCAzMTIg aW5zZXJ0aW9ucygrKSwgMTI0IGRlbGV0aW9ucygtKQo+Pgo+PiBkaWZmIC0tZ2l0IGEvc291bmQv c29jL2NvZGVjcy9tYXg5ODA5MC5jIGIvc291bmQvc29jL2NvZGVjcy9tYXg5ODA5MC5jCj4+IGlu ZGV4IGU0NmI2YWRhMTNiMS4uZGEyMzgxMGY5NThlIDEwMDY0NAo+PiAtLS0gYS9zb3VuZC9zb2Mv Y29kZWNzL21heDk4MDkwLmMKPj4gKysrIGIvc291bmQvc29jL2NvZGVjcy9tYXg5ODA5MC5jCj4+ IEBAIC01LDI0ICs1LDE0OSBAQAo+PiDCoMKgICogQ29weXJpZ2h0IDIwMTEtMjAxMiBNYXhpbSBJ bnRlZ3JhdGVkIFByb2R1Y3RzCj4+IMKgwqAgKi8KPj4gwqAgKyNpbmNsdWRlIDxsaW51eC9hY3Bp Lmg+Cj4+ICsjaW5jbHVkZSA8bGludXgvY2xrLmg+Cj4+IMKgICNpbmNsdWRlIDxsaW51eC9kZWxh eS5oPgo+PiDCoCAjaW5jbHVkZSA8bGludXgvaTJjLmg+Cj4+IMKgICNpbmNsdWRlIDxsaW51eC9t b2R1bGUuaD4KPj4gKyNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgo+PiDCoCAjaW5jbHVkZSA8bGlu dXgvb2YuaD4KPj4gwqAgI2luY2x1ZGUgPGxpbnV4L3BtLmg+Cj4+IMKgICNpbmNsdWRlIDxsaW51 eC9wbV9ydW50aW1lLmg+Cj4+IMKgICNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KPj4gwqAgI2lu Y2x1ZGUgPGxpbnV4L3NsYWIuaD4KPj4gLSNpbmNsdWRlIDxsaW51eC9hY3BpLmg+Cj4+IC0jaW5j bHVkZSA8bGludXgvY2xrLmg+Cj4+IMKgICNpbmNsdWRlIDxzb3VuZC9qYWNrLmg+Cj4+ICsjaW5j bHVkZSA8c291bmQvbWF4OTgwOTAuaD4KPj4gwqAgI2luY2x1ZGUgPHNvdW5kL3BjbS5oPgo+PiDC oCAjaW5jbHVkZSA8c291bmQvcGNtX3BhcmFtcy5oPgo+PiDCoCAjaW5jbHVkZSA8c291bmQvc29j Lmg+Cj4+IMKgICNpbmNsdWRlIDxzb3VuZC90bHYuaD4KPj4gLSNpbmNsdWRlIDxzb3VuZC9tYXg5 ODA5MC5oPgo+PiDCoCAjaW5jbHVkZSAibWF4OTgwOTAuaCIKPj4gwqAgK3N0YXRpYyB2b2lkIG1h eDk4MDkwX3NoZG5fc2F2ZV9sb2NrZWQoc3RydWN0IG1heDk4MDkwX3ByaXYgKm1heDk4MDkwKQo+ PiArewo+PiArwqDCoMKgIGludCBzaGRuID0gMDsKPj4gKwo+PiArwqDCoMKgIC8qIHNhdmVkX3No ZG4sIHNhdmVkX2NvdW50LCBTSEROIGFyZSBwcm90ZWN0ZWQgYnkgCj4+IGNhcmQtPmRhcG1fbXV0 ZXggKi8KPj4gK8KgwqDCoCByZWdtYXBfcmVhZChtYXg5ODA5MC0+cmVnbWFwLCBNOTgwOTBfUkVH X0RFVklDRV9TSFVURE9XTiwgJnNoZG4pOwo+PiArwqDCoMKgIG1heDk4MDkwLT5zYXZlZF9zaGRu IHw9IHNoZG47Cj4+ICvCoMKgwqAgKyttYXg5ODA5MC0+c2F2ZWRfY291bnQ7Cj4+ICsKPj4gK8Kg wqDCoCBpZiAoc2hkbikKPj4gK8KgwqDCoMKgwqDCoMKgIHJlZ21hcF93cml0ZShtYXg5ODA5MC0+ cmVnbWFwLCBNOTgwOTBfUkVHX0RFVklDRV9TSFVURE9XTiwgCj4+IDB4MCk7Cj4+ICt9Cj4+ICsK Pj4gK3N0YXRpYyB2b2lkIG1heDk4MDkwX3NoZG5fcmVzdG9yZV9sb2NrZWQoc3RydWN0IG1heDk4 MDkwX3ByaXYgCj4+ICptYXg5ODA5MCkKPj4gK3sKPj4gK8KgwqDCoCAvKiBzYXZlZF9zaGRuLCBz YXZlZF9jb3VudCwgU0hETiBhcmUgcHJvdGVjdGVkIGJ5IAo+PiBjYXJkLT5kYXBtX211dGV4ICov Cj4+ICvCoMKgwqAgaWYgKC0tbWF4OTgwOTAtPnNhdmVkX2NvdW50ID09IDApIHsKPj4gK8KgwqDC oMKgwqDCoMKgIGlmIChtYXg5ODA5MC0+c2F2ZWRfc2hkbikgewo+PiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCByZWdtYXBfd3JpdGUobWF4OTgwOTAtPnJlZ21hcCwKPj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgTTk4MDkwX1JFR19ERVZJQ0VfU0hVVERPV04sCj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIE05ODA5MF9TSEROTl9N QVNLKTsKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqAgbWF4OTgwOTAtPnNhdmVkX3NoZG4gPSAw Owo+PiArwqDCoMKgwqDCoMKgwqAgfQo+PiArwqDCoMKgIH0KPj4gK30KPj4gKwo+PiArc3RhdGlj IHZvaWQgbWF4OTgwOTBfc2hkbl9zYXZlKHN0cnVjdCBtYXg5ODA5MF9wcml2ICptYXg5ODA5MCkK Pj4gK3sKPj4gKyBtdXRleF9sb2NrKCZtYXg5ODA5MC0+Y29tcG9uZW50LT5jYXJkLT5kYXBtX211 dGV4KTsKClRoZSBOVUxMIHBvaW50ZXIgZGVyZWZlcmVuY2UgZGVtb25zdHJhdGVkIGFib3ZlIGlz IGNhdXNlZCBieSAKbWF4OTgwOTAtPmNvbXBvbmVudC0+Y2FyZCBiZWluZyBOVUxMIGhlcmUuIEFk ZGluZyBhIHNpbXBsZSAhPSBOVUxMIGNoZWNrIApoZXJlIGFuZCBpbiB0aGUgbWF4OTgwOTBfc2hk bl9yZXN0b3JlKCkgZnVuY3Rpb24gZml4ZXMgdGhlIGJvb3QgaXNzdWUsIAphbHRob3VnaCB0aGUg ZGVwbG9jayB3YXJuaW5nIGlzIHN0aWxsIHRoZXJlLiBUaGUgcXVlc3Rpb24gaXMgdGhhdCBpcyB0 aGUgCm1heDk4MDkwLT5jb21wb25lbnQtPmNhcmQgYmVpbmcgTlVMTCBpcyBhIG5vcm1hbCBjYXNl IG9yIHNvbWV0aGluZyB0aGF0IApuZWVkcyBmdXJ0aGVyIGFuYWx5c2lzLgoKPj4gK8KgwqDCoCBt YXg5ODA5MF9zaGRuX3NhdmVfbG9ja2VkKG1heDk4MDkwKTsKPj4gK30KPj4gKwo+PiArc3RhdGlj IHZvaWQgbWF4OTgwOTBfc2hkbl9yZXN0b3JlKHN0cnVjdCBtYXg5ODA5MF9wcml2ICptYXg5ODA5 MCkKPj4gK3sKPj4gK8KgwqDCoCBtYXg5ODA5MF9zaGRuX3Jlc3RvcmVfbG9ja2VkKG1heDk4MDkw KTsKPj4gKyBtdXRleF91bmxvY2soJm1heDk4MDkwLT5jb21wb25lbnQtPmNhcmQtPmRhcG1fbXV0 ZXgpOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgaW50IG1heDk4MDkwX3B1dF92b2xzdyhzdHJ1Y3Qg c25kX2tjb250cm9sICprY29udHJvbCwKPj4gK8KgwqDCoCBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3Zh bHVlICp1Y29udHJvbCkKPj4gK3sKPj4gK8KgwqDCoCBzdHJ1Y3Qgc25kX3NvY19jb21wb25lbnQg KmNvbXBvbmVudCA9Cj4+ICvCoMKgwqDCoMKgwqDCoCBzbmRfc29jX2tjb250cm9sX2NvbXBvbmVu dChrY29udHJvbCk7Cj4+ICvCoMKgwqAgc3RydWN0IG1heDk4MDkwX3ByaXYgKm1heDk4MDkwID0K Pj4gK8KgwqDCoMKgwqDCoMKgIHNuZF9zb2NfY29tcG9uZW50X2dldF9kcnZkYXRhKGNvbXBvbmVu dCk7Cj4+ICvCoMKgwqAgaW50IHJldDsKPj4gKwo+PiArwqDCoMKgIG1heDk4MDkwX3NoZG5fc2F2 ZShtYXg5ODA5MCk7Cj4+ICvCoMKgwqAgcmV0ID0gc25kX3NvY19wdXRfdm9sc3coa2NvbnRyb2ws IHVjb250cm9sKTsKPj4gK8KgwqDCoCBtYXg5ODA5MF9zaGRuX3Jlc3RvcmUobWF4OTgwOTApOwo+ PiArCj4+ICvCoMKgwqAgcmV0dXJuIHJldDsKPj4gK30KPj4gKwo+PiArc3RhdGljIGludCBtYXg5 ODA5MF9kYXBtX3B1dF9lbnVtX2RvdWJsZShzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwK Pj4gK8KgwqDCoCBzdHJ1Y3Qgc25kX2N0bF9lbGVtX3ZhbHVlICp1Y29udHJvbCkKPj4gK3sKPj4g K8KgwqDCoCBzdHJ1Y3Qgc25kX3NvY19jb21wb25lbnQgKmNvbXBvbmVudCA9Cj4+ICvCoMKgwqDC oMKgwqDCoCBzbmRfc29jX2tjb250cm9sX2NvbXBvbmVudChrY29udHJvbCk7Cj4+ICvCoMKgwqAg c3RydWN0IG1heDk4MDkwX3ByaXYgKm1heDk4MDkwID0KPj4gK8KgwqDCoMKgwqDCoMKgIHNuZF9z b2NfY29tcG9uZW50X2dldF9kcnZkYXRhKGNvbXBvbmVudCk7Cj4+ICvCoMKgwqAgaW50IHJldDsK Pj4gKwo+PiArwqDCoMKgIG1heDk4MDkwX3NoZG5fc2F2ZShtYXg5ODA5MCk7Cj4+ICvCoMKgwqAg cmV0ID0gc25kX3NvY19kYXBtX3B1dF9lbnVtX2RvdWJsZShrY29udHJvbCwgdWNvbnRyb2wpOwo+ PiArwqDCoMKgIG1heDk4MDkwX3NoZG5fcmVzdG9yZShtYXg5ODA5MCk7Cj4+ICsKPj4gK8KgwqDC oCByZXR1cm4gcmV0Owo+PiArfQo+PiArCj4+ICtzdGF0aWMgaW50IG1heDk4MDkwX3B1dF9lbnVt X2RvdWJsZShzdHJ1Y3Qgc25kX2tjb250cm9sICprY29udHJvbCwKPj4gK8KgwqDCoCBzdHJ1Y3Qg c25kX2N0bF9lbGVtX3ZhbHVlICp1Y29udHJvbCkKPj4gK3sKPj4gK8KgwqDCoCBzdHJ1Y3Qgc25k X3NvY19jb21wb25lbnQgKmNvbXBvbmVudCA9Cj4+ICvCoMKgwqDCoMKgwqDCoCBzbmRfc29jX2tj b250cm9sX2NvbXBvbmVudChrY29udHJvbCk7Cj4+ICvCoMKgwqAgc3RydWN0IG1heDk4MDkwX3By aXYgKm1heDk4MDkwID0KPj4gK8KgwqDCoMKgwqDCoMKgIHNuZF9zb2NfY29tcG9uZW50X2dldF9k cnZkYXRhKGNvbXBvbmVudCk7Cj4+ICvCoMKgwqAgaW50IHJldDsKPj4gKwo+PiArwqDCoMKgIG1h eDk4MDkwX3NoZG5fc2F2ZShtYXg5ODA5MCk7Cj4+ICvCoMKgwqAgcmV0ID0gc25kX3NvY19wdXRf ZW51bV9kb3VibGUoa2NvbnRyb2wsIHVjb250cm9sKTsKPj4gK8KgwqDCoCBtYXg5ODA5MF9zaGRu X3Jlc3RvcmUobWF4OTgwOTApOwo+PiArCj4+ICvCoMKgwqAgcmV0dXJuIHJldDsKPj4gK30KPj4g Kwo+PiArc3RhdGljIGludCBtYXg5ODA5MF9ieXRlc19wdXQoc3RydWN0IHNuZF9rY29udHJvbCAq a2NvbnRyb2wsCj4+ICvCoMKgwqAgc3RydWN0IHNuZF9jdGxfZWxlbV92YWx1ZSAqdWNvbnRyb2wp Cj4+ICt7Cj4+ICvCoMKgwqAgc3RydWN0IHNuZF9zb2NfY29tcG9uZW50ICpjb21wb25lbnQgPQo+ PiArwqDCoMKgwqDCoMKgwqAgc25kX3NvY19rY29udHJvbF9jb21wb25lbnQoa2NvbnRyb2wpOwo+ PiArwqDCoMKgIHN0cnVjdCBtYXg5ODA5MF9wcml2ICptYXg5ODA5MCA9Cj4+ICvCoMKgwqDCoMKg wqDCoCBzbmRfc29jX2NvbXBvbmVudF9nZXRfZHJ2ZGF0YShjb21wb25lbnQpOwo+PiArwqDCoMKg IGludCByZXQ7Cj4+ICsKPj4gK8KgwqDCoCBtYXg5ODA5MF9zaGRuX3NhdmUobWF4OTgwOTApOwo+ PiArwqDCoMKgIHJldCA9IHNuZF9zb2NfYnl0ZXNfcHV0KGtjb250cm9sLCB1Y29udHJvbCk7Cj4+ ICvCoMKgwqAgbWF4OTgwOTBfc2hkbl9yZXN0b3JlKG1heDk4MDkwKTsKPj4gKwo+PiArwqDCoMKg IHJldHVybiByZXQ7Cj4+ICt9Cj4+ICsKPj4gK3N0YXRpYyBpbnQgbWF4OTgwOTBfZGFwbV9ldmVu dChzdHJ1Y3Qgc25kX3NvY19kYXBtX3dpZGdldCAqdywKPj4gK8KgwqDCoCBzdHJ1Y3Qgc25kX2tj b250cm9sICprY29udHJvbCwgaW50IGV2ZW50KQo+PiArewo+PiArwqDCoMKgIHN0cnVjdCBzbmRf c29jX2NvbXBvbmVudCAqY29tcG9uZW50ID0KPj4gK8KgwqDCoMKgwqDCoMKgIHNuZF9zb2NfZGFw bV90b19jb21wb25lbnQody0+ZGFwbSk7Cj4+ICvCoMKgwqAgc3RydWN0IG1heDk4MDkwX3ByaXYg Km1heDk4MDkwID0KPj4gK8KgwqDCoMKgwqDCoMKgIHNuZF9zb2NfY29tcG9uZW50X2dldF9kcnZk YXRhKGNvbXBvbmVudCk7Cj4+ICsKPj4gK8KgwqDCoCBzd2l0Y2ggKGV2ZW50KSB7Cj4+ICvCoMKg wqAgY2FzZSBTTkRfU09DX0RBUE1fUFJFX1BNVToKPj4gK8KgwqDCoCBjYXNlIFNORF9TT0NfREFQ TV9QUkVfUE1EOgo+PiArwqDCoMKgwqDCoMKgwqAgbWF4OTgwOTBfc2hkbl9zYXZlX2xvY2tlZCht YXg5ODA5MCk7Cj4+ICvCoMKgwqDCoMKgwqDCoCBicmVhazsKPj4gK8KgwqDCoCBjYXNlIFNORF9T T0NfREFQTV9QT1NUX1BNVToKPj4gK8KgwqDCoCBjYXNlIFNORF9TT0NfREFQTV9QT1NUX1BNRDoK Pj4gK8KgwqDCoMKgwqDCoMKgIG1heDk4MDkwX3NoZG5fcmVzdG9yZV9sb2NrZWQobWF4OTgwOTAp Owo+PiArwqDCoMKgwqDCoMKgwqAgYnJlYWs7Cj4+ICvCoMKgwqAgfQo+PiArCj4+ICvCoMKgwqAg cmV0dXJuIDA7Cj4+ICt9Cj4+ICsKPj4gwqAgLyogQWxsb3dzIGZvciBzcGFyc2VseSBwb3B1bGF0 ZWQgcmVnaXN0ZXIgbWFwcyAqLwo+PiDCoCBzdGF0aWMgY29uc3Qgc3RydWN0IHJlZ19kZWZhdWx0 IG1heDk4MDkwX3JlZ1tdID0gewo+PiDCoMKgwqDCoMKgIHsgMHgwMCwgMHgwMCB9LCAvKiAwMCBT b2Z0d2FyZSBSZXNldCAqLwo+PiBAQCAtNTA2LDEwICs2MzEsMTMgQEAgc3RhdGljIFNPQ19FTlVN X1NJTkdMRV9ERUNMKG1heDk4MDkwX2FkY2hwX2VudW0sCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgbWF4OTgwOTBfcHdyX3BlcmZfdGV4dCk7Cj4+IMKgIMKgIHN0YXRpYyBj b25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBtYXg5ODA5MF9zbmRfY29udHJvbHNbXSA9IHsK Pj4gLcKgwqDCoCBTT0NfRU5VTSgiTUlDIEJpYXMgVkNNIEJhbmRnYXAiLCBtYXg5ODA5MF92Y21i YW5kZ2FwX2VudW0pLAo+PiArwqDCoMKgIFNPQ19FTlVNX0VYVCgiTUlDIEJpYXMgVkNNIEJhbmRn YXAiLCBtYXg5ODA5MF92Y21iYW5kZ2FwX2VudW0sCj4+ICvCoMKgwqDCoMKgwqDCoCBzbmRfc29j X2dldF9lbnVtX2RvdWJsZSwgbWF4OTgwOTBfcHV0X2VudW1fZG91YmxlKSwKPj4gwqAgLcKgwqDC oCBTT0NfU0lOR0xFKCJETUlDIE1JQyBDb21wIEZpbHRlciBDb25maWciLCAKPj4gTTk4MDkwX1JF R19ESUdJVEFMX01JQ19DT05GSUcsCj4+IC3CoMKgwqDCoMKgwqDCoCBNOTgwOTBfRE1JQ19DT01Q X1NISUZULCBNOTgwOTBfRE1JQ19DT01QX05VTSAtIDEsIDApLAo+PiArwqDCoMKgIFNPQ19TSU5H TEVfRVhUKCJETUlDIE1JQyBDb21wIEZpbHRlciBDb25maWciLAo+PiArwqDCoMKgwqDCoMKgwqAg TTk4MDkwX1JFR19ESUdJVEFMX01JQ19DT05GSUcsCj4+ICvCoMKgwqDCoMKgwqDCoCBNOTgwOTBf RE1JQ19DT01QX1NISUZULCBNOTgwOTBfRE1JQ19DT01QX05VTSAtIDEsIDAsCj4+ICvCoMKgwqDC oMKgwqDCoCBzbmRfc29jX2dldF92b2xzdywgbWF4OTgwOTBfcHV0X3ZvbHN3KSwKPj4gwqAgwqDC oMKgwqDCoCBTT0NfU0lOR0xFX0VYVF9UTFYoIk1JQzEgQm9vc3QgVm9sdW1lIiwKPj4gwqDCoMKg wqDCoMKgwqDCoMKgIE05ODA5MF9SRUdfTUlDMV9JTlBVVF9MRVZFTCwgTTk4MDkwX01JQ19QQTFF Tl9TSElGVCwKPj4gQEAgLTU2NCwyNCArNjkyLDM0IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc25k X2tjb250cm9sX25ldyAKPj4gbWF4OTgwOTBfc25kX2NvbnRyb2xzW10gPSB7Cj4+IMKgwqDCoMKg wqDCoMKgwqDCoCBNOTgwOTBfQVZSX1NISUZULCBNOTgwOTBfQVZSX05VTSAtIDEsIDEsCj4+IMKg wqDCoMKgwqDCoMKgwqDCoCBtYXg5ODA5MF9hdl90bHYpLAo+PiDCoCAtwqDCoMKgIFNPQ19FTlVN KCJBREMgT3ZlcnNhbXBsaW5nIFJhdGUiLCBtYXg5ODA5MF9vc3IxMjhfZW51bSksCj4+IC3CoMKg wqAgU09DX1NJTkdMRSgiQURDIFF1YW50aXplciBEaXRoZXIiLCBNOTgwOTBfUkVHX0FEQ19DT05U Uk9MLAo+PiAtwqDCoMKgwqDCoMKgwqAgTTk4MDkwX0FEQ0RJVEhFUl9TSElGVCwgTTk4MDkwX0FE Q0RJVEhFUl9OVU0gLSAxLCAwKSwKPj4gLcKgwqDCoCBTT0NfRU5VTSgiQURDIEhpZ2ggUGVyZm9y bWFuY2UgTW9kZSIsIG1heDk4MDkwX2FkY2hwX2VudW0pLAo+PiAtCj4+IC3CoMKgwqAgU09DX1NJ TkdMRSgiREFDIE1vbm8gTW9kZSIsIE05ODA5MF9SRUdfSU9fQ09ORklHVVJBVElPTiwKPj4gLcKg wqDCoMKgwqDCoMKgIE05ODA5MF9ETU9OT19TSElGVCwgTTk4MDkwX0RNT05PX05VTSAtIDEsIDAp LAo+PiAtwqDCoMKgIFNPQ19TSU5HTEUoIlNESU4gTW9kZSIsIE05ODA5MF9SRUdfSU9fQ09ORklH VVJBVElPTiwKPj4gLcKgwqDCoMKgwqDCoMKgIE05ODA5MF9TRElFTl9TSElGVCwgTTk4MDkwX1NE SUVOX05VTSAtIDEsIDApLAo+PiAtwqDCoMKgIFNPQ19TSU5HTEUoIlNET1VUIE1vZGUiLCBNOTgw OTBfUkVHX0lPX0NPTkZJR1VSQVRJT04sCj4+IC3CoMKgwqDCoMKgwqDCoCBNOTgwOTBfU0RPRU5f U0hJRlQsIE05ODA5MF9TRE9FTl9OVU0gLSAxLCAwKSwKPj4gLcKgwqDCoCBTT0NfU0lOR0xFKCJT RE9VVCBIaS1aIE1vZGUiLCBNOTgwOTBfUkVHX0lPX0NPTkZJR1VSQVRJT04sCj4+IC3CoMKgwqDC oMKgwqDCoCBNOTgwOTBfSElaT0ZGX1NISUZULCBNOTgwOTBfSElaT0ZGX05VTSAtIDEsIDEpLAo+ PiAtwqDCoMKgIFNPQ19FTlVNKCJGaWx0ZXIgTW9kZSIsIG1heDk4MDkwX21vZGVfZW51bSksCj4+ IC3CoMKgwqAgU09DX1NJTkdMRSgiUmVjb3JkIFBhdGggREMgQmxvY2tpbmciLCBNOTgwOTBfUkVH X0ZJTFRFUl9DT05GSUcsCj4+IC3CoMKgwqDCoMKgwqDCoCBNOTgwOTBfQUhQRl9TSElGVCwgTTk4 MDkwX0FIUEZfTlVNIC0gMSwgMCksCj4+IC3CoMKgwqAgU09DX1NJTkdMRSgiUGxheWJhY2sgUGF0 aCBEQyBCbG9ja2luZyIsIE05ODA5MF9SRUdfRklMVEVSX0NPTkZJRywKPj4gLcKgwqDCoMKgwqDC oMKgIE05ODA5MF9ESFBGX1NISUZULCBNOTgwOTBfREhQRl9OVU0gLSAxLCAwKSwKPj4gK8KgwqDC oCBTT0NfRU5VTV9FWFQoIkFEQyBPdmVyc2FtcGxpbmcgUmF0ZSIsIG1heDk4MDkwX29zcjEyOF9l bnVtLAo+PiArwqDCoMKgwqDCoMKgwqAgc25kX3NvY19nZXRfZW51bV9kb3VibGUsIG1heDk4MDkw X3B1dF9lbnVtX2RvdWJsZSksCj4+ICvCoMKgwqAgU09DX1NJTkdMRV9FWFQoIkFEQyBRdWFudGl6 ZXIgRGl0aGVyIiwgTTk4MDkwX1JFR19BRENfQ09OVFJPTCwKPj4gK8KgwqDCoMKgwqDCoMKgIE05 ODA5MF9BRENESVRIRVJfU0hJRlQsIE05ODA5MF9BRENESVRIRVJfTlVNIC0gMSwgMCwKPj4gK8Kg wqDCoMKgwqDCoMKgIHNuZF9zb2NfZ2V0X3ZvbHN3LCBtYXg5ODA5MF9wdXRfdm9sc3cpLAo+PiAr wqDCoMKgIFNPQ19FTlVNX0VYVCgiQURDIEhpZ2ggUGVyZm9ybWFuY2UgTW9kZSIsIG1heDk4MDkw X2FkY2hwX2VudW0sCj4+ICvCoMKgwqDCoMKgwqDCoCBzbmRfc29jX2dldF9lbnVtX2RvdWJsZSwg bWF4OTgwOTBfcHV0X2VudW1fZG91YmxlKSwKPj4gKwo+PiArwqDCoMKgIFNPQ19TSU5HTEVfRVhU KCJEQUMgTW9ubyBNb2RlIiwgTTk4MDkwX1JFR19JT19DT05GSUdVUkFUSU9OLAo+PiArwqDCoMKg wqDCoMKgwqAgTTk4MDkwX0RNT05PX1NISUZULCBNOTgwOTBfRE1PTk9fTlVNIC0gMSwgMCwKPj4g K8KgwqDCoMKgwqDCoMKgIHNuZF9zb2NfZ2V0X3ZvbHN3LCBtYXg5ODA5MF9wdXRfdm9sc3cpLAo+ PiArwqDCoMKgIFNPQ19TSU5HTEVfRVhUKCJTRElOIE1vZGUiLCBNOTgwOTBfUkVHX0lPX0NPTkZJ R1VSQVRJT04sCj4+ICvCoMKgwqDCoMKgwqDCoCBNOTgwOTBfU0RJRU5fU0hJRlQsIE05ODA5MF9T RElFTl9OVU0gLSAxLCAwLAo+PiArwqDCoMKgwqDCoMKgwqAgc25kX3NvY19nZXRfdm9sc3csIG1h eDk4MDkwX3B1dF92b2xzdyksCj4+ICvCoMKgwqAgU09DX1NJTkdMRV9FWFQoIlNET1VUIE1vZGUi LCBNOTgwOTBfUkVHX0lPX0NPTkZJR1VSQVRJT04sCj4+ICvCoMKgwqDCoMKgwqDCoCBNOTgwOTBf U0RPRU5fU0hJRlQsIE05ODA5MF9TRE9FTl9OVU0gLSAxLCAwLAo+PiArwqDCoMKgwqDCoMKgwqAg c25kX3NvY19nZXRfdm9sc3csIG1heDk4MDkwX3B1dF92b2xzdyksCj4+ICvCoMKgwqAgU09DX1NJ TkdMRV9FWFQoIlNET1VUIEhpLVogTW9kZSIsIE05ODA5MF9SRUdfSU9fQ09ORklHVVJBVElPTiwK Pj4gK8KgwqDCoMKgwqDCoMKgIE05ODA5MF9ISVpPRkZfU0hJRlQsIE05ODA5MF9ISVpPRkZfTlVN IC0gMSwgMSwKPj4gK8KgwqDCoMKgwqDCoMKgIHNuZF9zb2NfZ2V0X3ZvbHN3LCBtYXg5ODA5MF9w dXRfdm9sc3cpLAo+PiArwqDCoMKgIFNPQ19FTlVNX0VYVCgiRmlsdGVyIE1vZGUiLCBtYXg5ODA5 MF9tb2RlX2VudW0sCj4+ICvCoMKgwqDCoMKgwqDCoCBzbmRfc29jX2dldF9lbnVtX2RvdWJsZSwg bWF4OTgwOTBfcHV0X2VudW1fZG91YmxlKSwKPj4gK8KgwqDCoCBTT0NfU0lOR0xFX0VYVCgiUmVj b3JkIFBhdGggREMgQmxvY2tpbmciLCBNOTgwOTBfUkVHX0ZJTFRFUl9DT05GSUcsCj4+ICvCoMKg wqDCoMKgwqDCoCBNOTgwOTBfQUhQRl9TSElGVCwgTTk4MDkwX0FIUEZfTlVNIC0gMSwgMCwKPj4g K8KgwqDCoMKgwqDCoMKgIHNuZF9zb2NfZ2V0X3ZvbHN3LCBtYXg5ODA5MF9wdXRfdm9sc3cpLAo+ PiArwqDCoMKgIFNPQ19TSU5HTEVfRVhUKCJQbGF5YmFjayBQYXRoIERDIEJsb2NraW5nIiwgCj4+ IE05ODA5MF9SRUdfRklMVEVSX0NPTkZJRywKPj4gK8KgwqDCoMKgwqDCoMKgIE05ODA5MF9ESFBG X1NISUZULCBNOTgwOTBfREhQRl9OVU0gLSAxLCAwLAo+PiArwqDCoMKgwqDCoMKgwqAgc25kX3Nv Y19nZXRfdm9sc3csIG1heDk4MDkwX3B1dF92b2xzdyksCj4+IMKgwqDCoMKgwqAgU09DX1NJTkdM RV9UTFYoIkRpZ2l0YWwgQlEgVm9sdW1lIiwgTTk4MDkwX1JFR19BRENfQklRVUFEX0xFVkVMLAo+ PiDCoMKgwqDCoMKgwqDCoMKgwqAgTTk4MDkwX0FWQlFfU0hJRlQsIE05ODA5MF9BVkJRX05VTSAt IDEsIDEsIG1heDk4MDkwX2R2X3RsdiksCj4+IMKgwqDCoMKgwqAgU09DX1NJTkdMRV9FWFRfVExW KCJEaWdpdGFsIFNpZGV0b25lIFZvbHVtZSIsCj4+IEBAIC01OTQsMTMgKzczMiwxNyBAQCBzdGF0 aWMgY29uc3Qgc3RydWN0IHNuZF9rY29udHJvbF9uZXcgCj4+IG1heDk4MDkwX3NuZF9jb250cm9s c1tdID0gewo+PiDCoMKgwqDCoMKgIFNPQ19TSU5HTEVfVExWKCJEaWdpdGFsIFZvbHVtZSIsIE05 ODA5MF9SRUdfREFJX1BMQVlCQUNLX0xFVkVMLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgTTk4MDkw X0RWX1NISUZULCBNOTgwOTBfRFZfTlVNIC0gMSwgMSwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIG1h eDk4MDkwX2R2X3RsdiksCj4+IC3CoMKgwqAgU05EX1NPQ19CWVRFUygiRVEgQ29lZmZpY2llbnRz IiwgTTk4MDkwX1JFR19FUVVBTElaRVJfQkFTRSwgMTA1KSwKPj4gLcKgwqDCoCBTT0NfU0lOR0xF KCJEaWdpdGFsIEVRIDMgQmFuZCBTd2l0Y2giLCAKPj4gTTk4MDkwX1JFR19EU1BfRklMVEVSX0VO QUJMRSwKPj4gLcKgwqDCoMKgwqDCoMKgIE05ODA5MF9FUTNCQU5ERU5fU0hJRlQsIE05ODA5MF9F UTNCQU5ERU5fTlVNIC0gMSwgMCksCj4+IC3CoMKgwqAgU09DX1NJTkdMRSgiRGlnaXRhbCBFUSA1 IEJhbmQgU3dpdGNoIiwgCj4+IE05ODA5MF9SRUdfRFNQX0ZJTFRFUl9FTkFCTEUsCj4+IC3CoMKg wqDCoMKgwqDCoCBNOTgwOTBfRVE1QkFOREVOX1NISUZULCBNOTgwOTBfRVE1QkFOREVOX05VTSAt IDEsIDApLAo+PiAtwqDCoMKgIFNPQ19TSU5HTEUoIkRpZ2l0YWwgRVEgNyBCYW5kIFN3aXRjaCIs IAo+PiBNOTgwOTBfUkVHX0RTUF9GSUxURVJfRU5BQkxFLAo+PiAtwqDCoMKgwqDCoMKgwqAgTTk4 MDkwX0VRN0JBTkRFTl9TSElGVCwgTTk4MDkwX0VRN0JBTkRFTl9OVU0gLSAxLCAwKSwKPj4gK8Kg wqDCoCBTTkRfU09DX0JZVEVTX0UoIkVRIENvZWZmaWNpZW50cyIsIE05ODA5MF9SRUdfRVFVQUxJ WkVSX0JBU0UsIDEwNSwKPj4gK8KgwqDCoMKgwqDCoMKgIHNuZF9zb2NfYnl0ZXNfZ2V0LCBtYXg5 ODA5MF9ieXRlc19wdXQpLAo+PiArwqDCoMKgIFNPQ19TSU5HTEVfRVhUKCJEaWdpdGFsIEVRIDMg QmFuZCBTd2l0Y2giLCAKPj4gTTk4MDkwX1JFR19EU1BfRklMVEVSX0VOQUJMRSwKPj4gK8KgwqDC oMKgwqDCoMKgIE05ODA5MF9FUTNCQU5ERU5fU0hJRlQsIE05ODA5MF9FUTNCQU5ERU5fTlVNIC0g MSwgMCwKPj4gK8KgwqDCoMKgwqDCoMKgIHNuZF9zb2NfZ2V0X3ZvbHN3LCBtYXg5ODA5MF9wdXRf dm9sc3cpLAo+PiArwqDCoMKgIFNPQ19TSU5HTEVfRVhUKCJEaWdpdGFsIEVRIDUgQmFuZCBTd2l0 Y2giLCAKPj4gTTk4MDkwX1JFR19EU1BfRklMVEVSX0VOQUJMRSwKPj4gK8KgwqDCoMKgwqDCoMKg IE05ODA5MF9FUTVCQU5ERU5fU0hJRlQsIE05ODA5MF9FUTVCQU5ERU5fTlVNIC0gMSwgMCwKPj4g K8KgwqDCoMKgwqDCoMKgIHNuZF9zb2NfZ2V0X3ZvbHN3LCBtYXg5ODA5MF9wdXRfdm9sc3cpLAo+ PiArwqDCoMKgIFNPQ19TSU5HTEVfRVhUKCJEaWdpdGFsIEVRIDcgQmFuZCBTd2l0Y2giLCAKPj4g TTk4MDkwX1JFR19EU1BfRklMVEVSX0VOQUJMRSwKPj4gK8KgwqDCoMKgwqDCoMKgIE05ODA5MF9F UTdCQU5ERU5fU0hJRlQsIE05ODA5MF9FUTdCQU5ERU5fTlVNIC0gMSwgMCwKPj4gK8KgwqDCoMKg wqDCoMKgIHNuZF9zb2NfZ2V0X3ZvbHN3LCBtYXg5ODA5MF9wdXRfdm9sc3cpLAo+PiDCoMKgwqDC oMKgIFNPQ19TSU5HTEUoIkRpZ2l0YWwgRVEgQ2xpcHBpbmcgRGV0ZWN0aW9uIiwgCj4+IE05ODA5 MF9SRUdfREFJX1BMQVlCQUNLX0xFVkVMX0VRLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgTTk4MDkw X0VRQ0xQTl9TSElGVCwgTTk4MDkwX0VRQ0xQTl9OVU0gLSAxLAo+PiDCoMKgwqDCoMKgwqDCoMKg wqAgMSksCj4+IEBAIC02MDgsMjUgKzc1MCwzNCBAQCBzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9r Y29udHJvbF9uZXcgCj4+IG1heDk4MDkwX3NuZF9jb250cm9sc1tdID0gewo+PiDCoMKgwqDCoMKg wqDCoMKgwqAgTTk4MDkwX0RWRVFfU0hJRlQsIE05ODA5MF9EVkVRX05VTSAtIDEsIDEsCj4+IMKg wqDCoMKgwqDCoMKgwqDCoCBtYXg5ODA5MF9kdl90bHYpLAo+PiDCoCAtwqDCoMKgIFNPQ19TSU5H TEUoIkFMQyBFbmFibGUiLCBNOTgwOTBfUkVHX0RSQ19USU1JTkcsCj4+IC3CoMKgwqDCoMKgwqDC oCBNOTgwOTBfRFJDRU5fU0hJRlQsIE05ODA5MF9EUkNFTl9OVU0gLSAxLCAwKSwKPj4gLcKgwqDC oCBTT0NfRU5VTSgiQUxDIEF0dGFjayBUaW1lIiwgbWF4OTgwOTBfZHJjYXRrX2VudW0pLAo+PiAt wqDCoMKgIFNPQ19FTlVNKCJBTEMgUmVsZWFzZSBUaW1lIiwgbWF4OTgwOTBfZHJjcmxzX2VudW0p LAo+PiArwqDCoMKgIFNPQ19TSU5HTEVfRVhUKCJBTEMgRW5hYmxlIiwgTTk4MDkwX1JFR19EUkNf VElNSU5HLAo+PiArwqDCoMKgwqDCoMKgwqAgTTk4MDkwX0RSQ0VOX1NISUZULCBNOTgwOTBfRFJD RU5fTlVNIC0gMSwgMCwKPj4gK8KgwqDCoMKgwqDCoMKgIHNuZF9zb2NfZ2V0X3ZvbHN3LCBtYXg5 ODA5MF9wdXRfdm9sc3cpLAo+PiArwqDCoMKgIFNPQ19FTlVNX0VYVCgiQUxDIEF0dGFjayBUaW1l IiwgbWF4OTgwOTBfZHJjYXRrX2VudW0sCj4+ICvCoMKgwqDCoMKgwqDCoCBzbmRfc29jX2dldF9l bnVtX2RvdWJsZSwgbWF4OTgwOTBfcHV0X2VudW1fZG91YmxlKSwKPj4gK8KgwqDCoCBTT0NfRU5V TV9FWFQoIkFMQyBSZWxlYXNlIFRpbWUiLCBtYXg5ODA5MF9kcmNybHNfZW51bSwKPj4gK8KgwqDC oMKgwqDCoMKgIHNuZF9zb2NfZ2V0X2VudW1fZG91YmxlLCBtYXg5ODA5MF9wdXRfZW51bV9kb3Vi bGUpLAo+PiDCoMKgwqDCoMKgIFNPQ19TSU5HTEVfVExWKCJBTEMgTWFrZSBVcCBWb2x1bWUiLCBN OTgwOTBfUkVHX0RSQ19HQUlOLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgTTk4MDkwX0RSQ0dfU0hJ RlQsIE05ODA5MF9EUkNHX05VTSAtIDEsIDAsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBtYXg5ODA5 MF9hbGNtYWtldXBfdGx2KSwKPj4gLcKgwqDCoCBTT0NfRU5VTSgiQUxDIENvbXByZXNzaW9uIFJh dGlvIiwgbWF4OTgwOTBfYWxjY21wX2VudW0pLAo+PiAtwqDCoMKgIFNPQ19FTlVNKCJBTEMgRXhw YW5zaW9uIFJhdGlvIiwgbWF4OTgwOTBfZHJjZXhwX2VudW0pLAo+PiAtwqDCoMKgIFNPQ19TSU5H TEVfVExWKCJBTEMgQ29tcHJlc3Npb24gVGhyZXNob2xkIFZvbHVtZSIsCj4+ICvCoMKgwqAgU09D X0VOVU1fRVhUKCJBTEMgQ29tcHJlc3Npb24gUmF0aW8iLCBtYXg5ODA5MF9hbGNjbXBfZW51bSwK Pj4gK8KgwqDCoMKgwqDCoMKgIHNuZF9zb2NfZ2V0X2VudW1fZG91YmxlLCBtYXg5ODA5MF9wdXRf ZW51bV9kb3VibGUpLAo+PiArwqDCoMKgIFNPQ19FTlVNX0VYVCgiQUxDIEV4cGFuc2lvbiBSYXRp byIsIG1heDk4MDkwX2RyY2V4cF9lbnVtLAo+PiArwqDCoMKgwqDCoMKgwqAgc25kX3NvY19nZXRf ZW51bV9kb3VibGUsIG1heDk4MDkwX3B1dF9lbnVtX2RvdWJsZSksCj4+ICvCoMKgwqAgU09DX1NJ TkdMRV9FWFRfVExWKCJBTEMgQ29tcHJlc3Npb24gVGhyZXNob2xkIFZvbHVtZSIsCj4+IMKgwqDC oMKgwqDCoMKgwqDCoCBNOTgwOTBfUkVHX0RSQ19DT01QUkVTU09SLCBNOTgwOTBfRFJDVEhDX1NI SUZULAo+PiAtwqDCoMKgwqDCoMKgwqAgTTk4MDkwX0RSQ1RIQ19OVU0gLSAxLCAxLCBtYXg5ODA5 MF9hbGNjb21wX3RsdiksCj4+IC3CoMKgwqAgU09DX1NJTkdMRV9UTFYoIkFMQyBFeHBhbnNpb24g VGhyZXNob2xkIFZvbHVtZSIsCj4+ICvCoMKgwqDCoMKgwqDCoCBNOTgwOTBfRFJDVEhDX05VTSAt IDEsIDEsCj4+ICvCoMKgwqDCoMKgwqDCoCBzbmRfc29jX2dldF92b2xzdywgbWF4OTgwOTBfcHV0 X3ZvbHN3LCBtYXg5ODA5MF9hbGNjb21wX3RsdiksCj4+ICvCoMKgwqAgU09DX1NJTkdMRV9FWFRf VExWKCJBTEMgRXhwYW5zaW9uIFRocmVzaG9sZCBWb2x1bWUiLAo+PiDCoMKgwqDCoMKgwqDCoMKg wqAgTTk4MDkwX1JFR19EUkNfRVhQQU5ERVIsIE05ODA5MF9EUkNUSEVfU0hJRlQsCj4+IC3CoMKg wqDCoMKgwqDCoCBNOTgwOTBfRFJDVEhFX05VTSAtIDEsIDEsIG1heDk4MDkwX2RyY2V4cF90bHYp LAo+PiArwqDCoMKgwqDCoMKgwqAgTTk4MDkwX0RSQ1RIRV9OVU0gLSAxLCAxLAo+PiArwqDCoMKg wqDCoMKgwqAgc25kX3NvY19nZXRfdm9sc3csIG1heDk4MDkwX3B1dF92b2xzdywgbWF4OTgwOTBf ZHJjZXhwX3RsdiksCj4+IMKgIC3CoMKgwqAgU09DX0VOVU0oIkRBQyBIUCBQbGF5YmFjayBQZXJm b3JtYW5jZSBNb2RlIiwKPj4gLcKgwqDCoMKgwqDCoMKgIG1heDk4MDkwX2RhY19wZXJmbW9kZV9l bnVtKSwKPj4gLcKgwqDCoCBTT0NfRU5VTSgiREFDIEhpZ2ggUGVyZm9ybWFuY2UgTW9kZSIsIG1h eDk4MDkwX2RhY2hwX2VudW0pLAo+PiArwqDCoMKgIFNPQ19FTlVNX0VYVCgiREFDIEhQIFBsYXli YWNrIFBlcmZvcm1hbmNlIE1vZGUiLAo+PiArwqDCoMKgwqDCoMKgwqAgbWF4OTgwOTBfZGFjX3Bl cmZtb2RlX2VudW0sCj4+ICvCoMKgwqDCoMKgwqDCoCBzbmRfc29jX2dldF9lbnVtX2RvdWJsZSwg bWF4OTgwOTBfcHV0X2VudW1fZG91YmxlKSwKPj4gK8KgwqDCoCBTT0NfRU5VTV9FWFQoIkRBQyBI aWdoIFBlcmZvcm1hbmNlIE1vZGUiLCBtYXg5ODA5MF9kYWNocF9lbnVtLAo+PiArwqDCoMKgwqDC oMKgwqAgc25kX3NvY19nZXRfZW51bV9kb3VibGUsIG1heDk4MDkwX3B1dF9lbnVtX2RvdWJsZSks Cj4+IMKgIMKgwqDCoMKgwqAgU09DX1NJTkdMRV9UTFYoIkhlYWRwaG9uZSBMZWZ0IE1peGVyIFZv bHVtZSIsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBNOTgwOTBfUkVHX0hQX0NPTlRST0wsIE05ODA5 MF9NSVhIUExHX1NISUZULAo+PiBAQCAtNjg0LDkgKzgzNSwxMiBAQCBzdGF0aWMgY29uc3Qgc3Ry dWN0IHNuZF9rY29udHJvbF9uZXcgCj4+IG1heDk4MDkwX3NuZF9jb250cm9sc1tdID0gewo+PiDC oMKgwqDCoMKgIFNPQ19TSU5HTEUoIlZvbHVtZSBBZGp1c3RtZW50IFNtb290aGluZyIsIAo+PiBN OTgwOTBfUkVHX0xFVkVMX0NPTlRST0wsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBNOTgwOTBfVlNF Tk5fU0hJRlQsIE05ODA5MF9WU0VOTl9OVU0gLSAxLCAxKSwKPj4gwqAgLcKgwqDCoCBTTkRfU09D X0JZVEVTKCJCaXF1YWQgQ29lZmZpY2llbnRzIiwgCj4+IE05ODA5MF9SRUdfUkVDT1JEX0JJUVVB RF9CQVNFLCAxNSksCj4+IC3CoMKgwqAgU09DX1NJTkdMRSgiQmlxdWFkIFN3aXRjaCIsIE05ODA5 MF9SRUdfRFNQX0ZJTFRFUl9FTkFCTEUsCj4+IC3CoMKgwqDCoMKgwqDCoCBNOTgwOTBfQURDQlFF Tl9TSElGVCwgTTk4MDkwX0FEQ0JRRU5fTlVNIC0gMSwgMCksCj4+ICvCoMKgwqAgU05EX1NPQ19C WVRFU19FKCJCaXF1YWQgQ29lZmZpY2llbnRzIiwKPj4gK8KgwqDCoMKgwqDCoMKgIE05ODA5MF9S RUdfUkVDT1JEX0JJUVVBRF9CQVNFLCAxNSwKPj4gK8KgwqDCoMKgwqDCoMKgIHNuZF9zb2NfYnl0 ZXNfZ2V0LCBtYXg5ODA5MF9ieXRlc19wdXQpLAo+PiArwqDCoMKgIFNPQ19TSU5HTEVfRVhUKCJC aXF1YWQgU3dpdGNoIiwgTTk4MDkwX1JFR19EU1BfRklMVEVSX0VOQUJMRSwKPj4gK8KgwqDCoMKg wqDCoMKgIE05ODA5MF9BRENCUUVOX1NISUZULCBNOTgwOTBfQURDQlFFTl9OVU0gLSAxLCAwLAo+ PiArwqDCoMKgwqDCoMKgwqAgc25kX3NvY19nZXRfdm9sc3csIG1heDk4MDkwX3B1dF92b2xzdyks Cj4+IMKgIH07Cj4+IMKgIMKgIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyBt YXg5ODA5MV9zbmRfY29udHJvbHNbXSA9IHsKPj4gQEAgLTY5NSwxMCArODQ5LDEyIEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3Qgc25kX2tjb250cm9sX25ldyAKPj4gbWF4OTgwOTFfc25kX2NvbnRyb2xz W10gPSB7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBNOTgwOTBfRE1JQzM0X1pFUk9QQURfU0hJRlQs Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBNOTgwOTBfRE1JQzM0X1pFUk9QQURfTlVNIC0gMSwgMCks Cj4+IMKgIC3CoMKgwqAgU09DX0VOVU0oIkZpbHRlciBETUlDMzQgTW9kZSIsIG1heDk4MDkwX2Zp bHRlcl9kbWljMzRtb2RlX2VudW0pLAo+PiAtwqDCoMKgIFNPQ19TSU5HTEUoIkRNSUMzNCBEQyBC bG9ja2luZyIsIE05ODA5MF9SRUdfRklMVEVSX0NPTkZJRywKPj4gK8KgwqDCoCBTT0NfRU5VTV9F WFQoIkZpbHRlciBETUlDMzQgTW9kZSIsIG1heDk4MDkwX2ZpbHRlcl9kbWljMzRtb2RlX2VudW0s Cj4+ICvCoMKgwqDCoMKgwqDCoCBzbmRfc29jX2dldF9lbnVtX2RvdWJsZSwgbWF4OTgwOTBfcHV0 X2VudW1fZG91YmxlKSwKPj4gK8KgwqDCoCBTT0NfU0lOR0xFX0VYVCgiRE1JQzM0IERDIEJsb2Nr aW5nIiwgTTk4MDkwX1JFR19GSUxURVJfQ09ORklHLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgTTk4 MDkwX0ZMVF9ETUlDMzRIUEZfU0hJRlQsCj4+IC3CoMKgwqDCoMKgwqDCoCBNOTgwOTBfRkxUX0RN SUMzNEhQRl9OVU0gLSAxLCAwKSwKPj4gK8KgwqDCoMKgwqDCoMKgIE05ODA5MF9GTFRfRE1JQzM0 SFBGX05VTSAtIDEsIDAsCj4+ICvCoMKgwqDCoMKgwqDCoCBzbmRfc29jX2dldF92b2xzdywgbWF4 OTgwOTBfcHV0X3ZvbHN3KSwKPj4gwqAgwqDCoMKgwqDCoCBTT0NfU0lOR0xFX1RMVigiRE1JQzMg Qm9vc3QgVm9sdW1lIiwgTTk4MDkwX1JFR19ETUlDM19WT0xVTUUsCj4+IMKgwqDCoMKgwqDCoMKg wqDCoCBNOTgwOTBfRE1JQ19BVjNHX1NISUZULCBNOTgwOTBfRE1JQ19BVjNHX05VTSAtIDEsIDAs Cj4+IEBAIC03MTYsOCArODcyLDkgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xf bmV3IAo+PiBtYXg5ODA5MV9zbmRfY29udHJvbHNbXSA9IHsKPj4gwqAgwqDCoMKgwqDCoCBTTkRf U09DX0JZVEVTKCJETUlDMzQgQmlxdWFkIENvZWZmaWNpZW50cyIsCj4+IMKgwqDCoMKgwqDCoMKg wqDCoCBNOTgwOTBfUkVHX0RNSUMzNF9CSVFVQURfQkFTRSwgMTUpLAo+PiAtwqDCoMKgIFNPQ19T SU5HTEUoIkRNSUMzNCBCaXF1YWQgU3dpdGNoIiwgTTk4MDkwX1JFR19EU1BfRklMVEVSX0VOQUJM RSwKPj4gLcKgwqDCoMKgwqDCoMKgIE05ODA5MF9ETUlDMzRCUUVOX1NISUZULCBNOTgwOTBfRE1J QzM0QlFFTl9OVU0gLSAxLCAwKSwKPj4gK8KgwqDCoCBTT0NfU0lOR0xFX0VYVCgiRE1JQzM0IEJp cXVhZCBTd2l0Y2giLCAKPj4gTTk4MDkwX1JFR19EU1BfRklMVEVSX0VOQUJMRSwKPj4gK8KgwqDC oMKgwqDCoMKgIE05ODA5MF9ETUlDMzRCUUVOX1NISUZULCBNOTgwOTBfRE1JQzM0QlFFTl9OVU0g LSAxLCAwLAo+PiArwqDCoMKgwqDCoMKgwqAgc25kX3NvY19nZXRfdm9sc3csIG1heDk4MDkwX3B1 dF92b2xzdyksCj4+IMKgIMKgwqDCoMKgwqAgU09DX1NJTkdMRV9UTFYoIkRNSUMzNCBCUSBQcmVB dHRlbnVhdGlvbiBWb2x1bWUiLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgTTk4MDkwX1JFR19ETUlD MzRfQlFfUFJFQVRURU4sIE05ODA5MF9BVjM0QlFfU0hJRlQsCj4+IEBAIC03NzEsMTkgKzkyOCw2 IEBAIHN0YXRpYyBpbnQgbWF4OTgwOTBfbWljaW5wdXRfZXZlbnQoc3RydWN0IAo+PiBzbmRfc29j X2RhcG1fd2lkZ2V0ICp3LAo+PiDCoMKgwqDCoMKgIHJldHVybiAwOwo+PiDCoCB9Cj4+IMKgIC1z dGF0aWMgaW50IG1heDk4MDkwX3NoZG5fZXZlbnQoc3RydWN0IHNuZF9zb2NfZGFwbV93aWRnZXQg KncsCj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzdHJ1Y3Qgc25kX2tjb250 cm9sICprY29udHJvbCwgaW50IGV2ZW50KQo+PiAtewo+PiAtwqDCoMKgIHN0cnVjdCBzbmRfc29j X2NvbXBvbmVudCAqY29tcG9uZW50ID0gCj4+IHNuZF9zb2NfZGFwbV90b19jb21wb25lbnQody0+ ZGFwbSk7Cj4+IC3CoMKgwqAgc3RydWN0IG1heDk4MDkwX3ByaXYgKm1heDk4MDkwID0gCj4+IHNu ZF9zb2NfY29tcG9uZW50X2dldF9kcnZkYXRhKGNvbXBvbmVudCk7Cj4+IC0KPj4gLcKgwqDCoCBp ZiAoZXZlbnQgJiBTTkRfU09DX0RBUE1fUE9TVF9QTVUpCj4+IC3CoMKgwqDCoMKgwqDCoCBtYXg5 ODA5MC0+c2hkbl9wZW5kaW5nID0gdHJ1ZTsKPj4gLQo+PiAtwqDCoMKgIHJldHVybiAwOwo+PiAt Cj4+IC19Cj4+IC0KPj4gwqAgc3RhdGljIGNvbnN0IGNoYXIgKm1pYzFfbXV4X3RleHRbXSA9IHsg IklOMTIiLCAiSU41NiIgfTsKPj4gwqAgwqAgc3RhdGljIFNPQ19FTlVNX1NJTkdMRV9ERUNMKG1p YzFfbXV4X2VudW0sCj4+IEBAIC04ODQsMTAgKzEwMjgsMTQgQEAgc3RhdGljIFNPQ19FTlVNX1NJ TkdMRV9ERUNMKGx0ZW5yX211eF9lbnVtLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIGx0ZW5fbXV4X3RleHQpOwo+PiDCoCDCoCBzdGF0aWMgY29uc3Qgc3RydWN0IHNuZF9r Y29udHJvbF9uZXcgbWF4OTgwOTBfbHRlbmxfbXV4ID0KPj4gLcKgwqDCoCBTT0NfREFQTV9FTlVN KCJMVEVOTCBNdXgiLCBsdGVubF9tdXhfZW51bSk7Cj4+ICvCoMKgwqAgU09DX0RBUE1fRU5VTV9F WFQoIkxURU5MIE11eCIsIGx0ZW5sX211eF9lbnVtLAo+PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgc25kX3NvY19kYXBtX2dldF9lbnVtX2RvdWJsZSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIG1heDk4MDkwX2RhcG1fcHV0X2VudW1fZG91YmxlKTsKPj4gwqAgwqAgc3RhdGlj IGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IG1heDk4MDkwX2x0ZW5yX211eCA9Cj4+IC3C oMKgwqAgU09DX0RBUE1fRU5VTSgiTFRFTlIgTXV4IiwgbHRlbnJfbXV4X2VudW0pOwo+PiArwqDC oMKgIFNPQ19EQVBNX0VOVU1fRVhUKCJMVEVOUiBNdXgiLCBsdGVucl9tdXhfZW51bSwKPj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNuZF9zb2NfZGFwbV9nZXRfZW51bV9kb3VibGUsCj4+ ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBtYXg5ODA5MF9kYXBtX3B1dF9lbnVtX2RvdWJs ZSk7Cj4+IMKgIMKgIHN0YXRpYyBjb25zdCBjaGFyICpsYmVuX211eF90ZXh0W10gPSB7ICJOb3Jt YWwiLCAiTG9vcGJhY2siIH07Cj4+IMKgIEBAIC05MDIsMTAgKzEwNTAsMTQgQEAgc3RhdGljIFNP Q19FTlVNX1NJTkdMRV9ERUNMKGxiZW5yX211eF9lbnVtLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIGxiZW5fbXV4X3RleHQpOwo+PiDCoCDCoCBzdGF0aWMgY29uc3Qgc3Ry dWN0IHNuZF9rY29udHJvbF9uZXcgbWF4OTgwOTBfbGJlbmxfbXV4ID0KPj4gLcKgwqDCoCBTT0Nf REFQTV9FTlVNKCJMQkVOTCBNdXgiLCBsYmVubF9tdXhfZW51bSk7Cj4+ICvCoMKgwqAgU09DX0RB UE1fRU5VTV9FWFQoIkxCRU5MIE11eCIsIGxiZW5sX211eF9lbnVtLAo+PiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgc25kX3NvY19kYXBtX2dldF9lbnVtX2RvdWJsZSwKPj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIG1heDk4MDkwX2RhcG1fcHV0X2VudW1fZG91YmxlKTsKPj4gwqAg wqAgc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfa2NvbnRyb2xfbmV3IG1heDk4MDkwX2xiZW5yX211 eCA9Cj4+IC3CoMKgwqAgU09DX0RBUE1fRU5VTSgiTEJFTlIgTXV4IiwgbGJlbnJfbXV4X2VudW0p Owo+PiArwqDCoMKgIFNPQ19EQVBNX0VOVU1fRVhUKCJMQkVOUiBNdXgiLCBsYmVucl9tdXhfZW51 bSwKPj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNuZF9zb2NfZGFwbV9nZXRfZW51bV9k b3VibGUsCj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBtYXg5ODA5MF9kYXBtX3B1dF9l bnVtX2RvdWJsZSk7Cj4+IMKgIMKgIHN0YXRpYyBjb25zdCBjaGFyICpzdGVubF9tdXhfdGV4dFtd ID0geyAiTm9ybWFsIiwgIlNpZGV0b25lIExlZnQiIH07Cj4+IMKgIEBAIC0xMDcyLDIxICsxMjI0 LDI1IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3NvY19kYXBtX3dpZGdldCAKPj4gbWF4OTgw OTBfZGFwbV93aWRnZXRzW10gPSB7Cj4+IMKgwqDCoMKgwqAgU05EX1NPQ19EQVBNX0lOUFVUKCJJ TjU2IiksCj4+IMKgIMKgwqDCoMKgwqAgU05EX1NPQ19EQVBNX1NVUFBMWSgiTUlDQklBUyIsIE05 ODA5MF9SRUdfSU5QVVRfRU5BQkxFLAo+PiAtwqDCoMKgwqDCoMKgwqAgTTk4MDkwX01CRU5fU0hJ RlQsIDAsIE5VTEwsIDApLAo+PiArwqDCoMKgwqDCoMKgwqAgTTk4MDkwX01CRU5fU0hJRlQsIDAs IG1heDk4MDkwX2RhcG1fZXZlbnQsCj4+ICvCoMKgwqDCoMKgwqDCoCBTTkRfU09DX0RBUE1fUFJF X1BPU1RfUE1VIHwgU05EX1NPQ19EQVBNX1BSRV9QT1NUX1BNRCksCj4+IMKgwqDCoMKgwqAgU05E X1NPQ19EQVBNX1NVUFBMWSgiU0hETiIsIE05ODA5MF9SRUdfREVWSUNFX1NIVVRET1dOLAo+PiDC oMKgwqDCoMKgwqDCoMKgwqAgTTk4MDkwX1NIRE5OX1NISUZULCAwLCBOVUxMLCAwKSwKPj4gwqDC oMKgwqDCoCBTTkRfU09DX0RBUE1fU1VQUExZKCJTRElFTiIsIE05ODA5MF9SRUdfSU9fQ09ORklH VVJBVElPTiwKPj4gLcKgwqDCoMKgwqDCoMKgIE05ODA5MF9TRElFTl9TSElGVCwgMCwgTlVMTCwg MCksCj4+ICvCoMKgwqDCoMKgwqDCoCBNOTgwOTBfU0RJRU5fU0hJRlQsIDAsIG1heDk4MDkwX2Rh cG1fZXZlbnQsCj4+ICvCoMKgwqDCoMKgwqDCoCBTTkRfU09DX0RBUE1fUFJFX1BPU1RfUE1VIHwg U05EX1NPQ19EQVBNX1BSRV9QT1NUX1BNRCksCj4+IMKgwqDCoMKgwqAgU05EX1NPQ19EQVBNX1NV UFBMWSgiU0RPRU4iLCBNOTgwOTBfUkVHX0lPX0NPTkZJR1VSQVRJT04sCj4+IC3CoMKgwqDCoMKg wqDCoCBNOTgwOTBfU0RPRU5fU0hJRlQsIDAsIE5VTEwsIDApLAo+PiArwqDCoMKgwqDCoMKgwqAg TTk4MDkwX1NET0VOX1NISUZULCAwLCBtYXg5ODA5MF9kYXBtX2V2ZW50LAo+PiArwqDCoMKgwqDC oMKgwqAgU05EX1NPQ19EQVBNX1BSRV9QT1NUX1BNVSB8IFNORF9TT0NfREFQTV9QUkVfUE9TVF9Q TUQpLAo+PiDCoMKgwqDCoMKgIFNORF9TT0NfREFQTV9TVVBQTFkoIkRNSUNMX0VOQSIsIE05ODA5 MF9SRUdfRElHSVRBTF9NSUNfRU5BQkxFLAo+PiAtwqDCoMKgwqDCoMKgwqDCoCBNOTgwOTBfRElH TUlDTF9TSElGVCwgMCwgbWF4OTgwOTBfc2hkbl9ldmVudCwKPj4gLcKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgU05EX1NPQ19EQVBNX1BPU1RfUE1VKSwKPj4gK8KgwqDCoMKgwqDCoMKgIE05ODA5MF9E SUdNSUNMX1NISUZULCAwLCBtYXg5ODA5MF9kYXBtX2V2ZW50LAo+PiArwqDCoMKgwqDCoMKgwqAg U05EX1NPQ19EQVBNX1BSRV9QT1NUX1BNVSB8IFNORF9TT0NfREFQTV9QUkVfUE9TVF9QTUQpLAo+ PiDCoMKgwqDCoMKgIFNORF9TT0NfREFQTV9TVVBQTFkoIkRNSUNSX0VOQSIsIE05ODA5MF9SRUdf RElHSVRBTF9NSUNfRU5BQkxFLAo+PiAtwqDCoMKgwqDCoMKgwqDCoCBNOTgwOTBfRElHTUlDUl9T SElGVCwgMCwgbWF4OTgwOTBfc2hkbl9ldmVudCwKPj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBTTkRfU09DX0RBUE1fUE9TVF9QTVUpLAo+PiArwqDCoMKgwqDCoMKgwqAgTTk4MDkwX0RJR01J Q1JfU0hJRlQsIDAsIG1heDk4MDkwX2RhcG1fZXZlbnQsCj4+ICvCoMKgwqDCoMKgwqDCoCBTTkRf U09DX0RBUE1fUFJFX1BPU1RfUE1VIHwgU05EX1NPQ19EQVBNX1BSRV9QT1NUX1BNRCksCj4+IMKg wqDCoMKgwqAgU05EX1NPQ19EQVBNX1NVUFBMWSgiQUhQRiIsIE05ODA5MF9SRUdfRklMVEVSX0NP TkZJRywKPj4gLcKgwqDCoMKgwqDCoMKgIE05ODA5MF9BSFBGX1NISUZULCAwLCBOVUxMLCAwKSwK Pj4gK8KgwqDCoMKgwqDCoMKgIE05ODA5MF9BSFBGX1NISUZULCAwLCBtYXg5ODA5MF9kYXBtX2V2 ZW50LAo+PiArwqDCoMKgwqDCoMKgwqAgU05EX1NPQ19EQVBNX1BSRV9QT1NUX1BNVSB8IFNORF9T T0NfREFQTV9QUkVfUE9TVF9QTUQpLAo+PiDCoCDCoCAvKgo+PiDCoMKgICogTm90ZTogU3lzY2xr IGFuZCBtaXNjIHBvd2VyIHN1cHBsaWVzIGFyZSB0YWtlbiBjYXJlIG9mIGJ5IFNIRE4KPj4gQEAg LTExMTYsMTAgKzEyNzIsMTIgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBzbmRfc29jX2RhcG1fd2lk Z2V0IAo+PiBtYXg5ODA5MF9kYXBtX3dpZGdldHNbXSA9IHsKPj4gwqDCoMKgwqDCoMKgwqDCoMKg ICZtYXg5ODA5MF9saW5lYl9taXhlcl9jb250cm9sc1swXSwKPj4gwqDCoMKgwqDCoMKgwqDCoMKg IEFSUkFZX1NJWkUobWF4OTgwOTBfbGluZWJfbWl4ZXJfY29udHJvbHMpKSwKPj4gwqAgLcKgwqDC oCBTTkRfU09DX0RBUE1fUEdBKCJMSU5FQSBJbnB1dCIsIE05ODA5MF9SRUdfSU5QVVRfRU5BQkxF LAo+PiAtwqDCoMKgwqDCoMKgwqAgTTk4MDkwX0xJTkVBRU5fU0hJRlQsIDAsIE5VTEwsIDApLAo+ PiAtwqDCoMKgIFNORF9TT0NfREFQTV9QR0EoIkxJTkVCIElucHV0IiwgTTk4MDkwX1JFR19JTlBV VF9FTkFCTEUsCj4+IC3CoMKgwqDCoMKgwqDCoCBNOTgwOTBfTElORUJFTl9TSElGVCwgMCwgTlVM TCwgMCksCj4+ICvCoMKgwqAgU05EX1NPQ19EQVBNX1BHQV9FKCJMSU5FQSBJbnB1dCIsIE05ODA5 MF9SRUdfSU5QVVRfRU5BQkxFLAo+PiArwqDCoMKgwqDCoMKgwqAgTTk4MDkwX0xJTkVBRU5fU0hJ RlQsIDAsIE5VTEwsIDAsIG1heDk4MDkwX2RhcG1fZXZlbnQsCj4+ICvCoMKgwqDCoMKgwqDCoCBT TkRfU09DX0RBUE1fUFJFX1BPU1RfUE1VIHwgU05EX1NPQ19EQVBNX1BSRV9QT1NUX1BNRCksCj4+ ICvCoMKgwqAgU05EX1NPQ19EQVBNX1BHQV9FKCJMSU5FQiBJbnB1dCIsIE05ODA5MF9SRUdfSU5Q VVRfRU5BQkxFLAo+PiArwqDCoMKgwqDCoMKgwqAgTTk4MDkwX0xJTkVCRU5fU0hJRlQsIDAsIE5V TEwsIDAsIG1heDk4MDkwX2RhcG1fZXZlbnQsCj4+ICvCoMKgwqDCoMKgwqDCoCBTTkRfU09DX0RB UE1fUFJFX1BPU1RfUE1VIHwgU05EX1NPQ19EQVBNX1BSRV9QT1NUX1BNRCksCj4+IMKgIMKgwqDC oMKgwqAgU05EX1NPQ19EQVBNX01JWEVSKCJMZWZ0IEFEQyBNaXhlciIsIFNORF9TT0NfTk9QTSwg MCwgMCwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgICZtYXg5ODA5MF9sZWZ0X2FkY19taXhlcl9jb250 cm9sc1swXSwKPj4gQEAgLTExMzAsMTEgKzEyODgsMTEgQEAgc3RhdGljIGNvbnN0IHN0cnVjdCBz bmRfc29jX2RhcG1fd2lkZ2V0IAo+PiBtYXg5ODA5MF9kYXBtX3dpZGdldHNbXSA9IHsKPj4gwqDC oMKgwqDCoMKgwqDCoMKgIEFSUkFZX1NJWkUobWF4OTgwOTBfcmlnaHRfYWRjX21peGVyX2NvbnRy b2xzKSksCj4+IMKgIMKgwqDCoMKgwqAgU05EX1NPQ19EQVBNX0FEQ19FKCJBRENMIiwgTlVMTCwg TTk4MDkwX1JFR19JTlBVVF9FTkFCTEUsCj4+IC3CoMKgwqDCoMKgwqDCoCBNOTgwOTBfQURMRU5f U0hJRlQsIDAsIG1heDk4MDkwX3NoZG5fZXZlbnQsCj4+IC3CoMKgwqDCoMKgwqDCoCBTTkRfU09D X0RBUE1fUE9TVF9QTVUpLAo+PiArwqDCoMKgwqDCoMKgwqAgTTk4MDkwX0FETEVOX1NISUZULCAw LCBtYXg5ODA5MF9kYXBtX2V2ZW50LAo+PiArwqDCoMKgwqDCoMKgwqAgU05EX1NPQ19EQVBNX1BS RV9QT1NUX1BNVSB8IFNORF9TT0NfREFQTV9QUkVfUE9TVF9QTUQpLAo+PiDCoMKgwqDCoMKgIFNO RF9TT0NfREFQTV9BRENfRSgiQURDUiIsIE5VTEwsIE05ODA5MF9SRUdfSU5QVVRfRU5BQkxFLAo+ PiAtwqDCoMKgwqDCoMKgwqAgTTk4MDkwX0FEUkVOX1NISUZULCAwLCBtYXg5ODA5MF9zaGRuX2V2 ZW50LAo+PiAtwqDCoMKgwqDCoMKgwqAgU05EX1NPQ19EQVBNX1BPU1RfUE1VKSwKPj4gK8KgwqDC oMKgwqDCoMKgIE05ODA5MF9BRFJFTl9TSElGVCwgMCwgbWF4OTgwOTBfZGFwbV9ldmVudCwKPj4g K8KgwqDCoMKgwqDCoMKgIFNORF9TT0NfREFQTV9QUkVfUE9TVF9QTVUgfCBTTkRfU09DX0RBUE1f UFJFX1BPU1RfUE1EKSwKPj4gwqAgwqDCoMKgwqDCoCBTTkRfU09DX0RBUE1fQUlGX09VVCgiQUlG T1VUTCIsICJIaUZpIENhcHR1cmUiLCAwLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgU05EX1NPQ19O T1BNLCAwLCAwKSwKPj4gQEAgLTExNjIsMTAgKzEzMjAsMTIgQEAgc3RhdGljIGNvbnN0IHN0cnVj dCBzbmRfc29jX2RhcG1fd2lkZ2V0IAo+PiBtYXg5ODA5MF9kYXBtX3dpZGdldHNbXSA9IHsKPj4g wqDCoMKgwqDCoCBTTkRfU09DX0RBUE1fQUlGX0lOKCJBSUZJTkwiLCAiSGlGaSBQbGF5YmFjayIs IDAsIFNORF9TT0NfTk9QTSwgCj4+IDAsIDApLAo+PiDCoMKgwqDCoMKgIFNORF9TT0NfREFQTV9B SUZfSU4oIkFJRklOUiIsICJIaUZpIFBsYXliYWNrIiwgMSwgU05EX1NPQ19OT1BNLCAKPj4gMCwg MCksCj4+IMKgIC3CoMKgwqAgU05EX1NPQ19EQVBNX0RBQygiREFDTCIsIE5VTEwsIE05ODA5MF9S RUdfT1VUUFVUX0VOQUJMRSwKPj4gLcKgwqDCoMKgwqDCoMKgIE05ODA5MF9EQUxFTl9TSElGVCwg MCksCj4+IC3CoMKgwqAgU05EX1NPQ19EQVBNX0RBQygiREFDUiIsIE5VTEwsIE05ODA5MF9SRUdf T1VUUFVUX0VOQUJMRSwKPj4gLcKgwqDCoMKgwqDCoMKgIE05ODA5MF9EQVJFTl9TSElGVCwgMCks Cj4+ICvCoMKgwqAgU05EX1NPQ19EQVBNX0RBQ19FKCJEQUNMIiwgTlVMTCwgTTk4MDkwX1JFR19P VVRQVVRfRU5BQkxFLAo+PiArwqDCoMKgwqDCoMKgwqAgTTk4MDkwX0RBTEVOX1NISUZULCAwLCBt YXg5ODA5MF9kYXBtX2V2ZW50LAo+PiArwqDCoMKgwqDCoMKgwqAgU05EX1NPQ19EQVBNX1BSRV9Q T1NUX1BNVSB8IFNORF9TT0NfREFQTV9QUkVfUE9TVF9QTUQpLAo+PiArwqDCoMKgIFNORF9TT0Nf REFQTV9EQUNfRSgiREFDUiIsIE5VTEwsIE05ODA5MF9SRUdfT1VUUFVUX0VOQUJMRSwKPj4gK8Kg wqDCoMKgwqDCoMKgIE05ODA5MF9EQVJFTl9TSElGVCwgMCwgbWF4OTgwOTBfZGFwbV9ldmVudCwK Pj4gK8KgwqDCoMKgwqDCoMKgIFNORF9TT0NfREFQTV9QUkVfUE9TVF9QTVUgfCBTTkRfU09DX0RB UE1fUFJFX1BPU1RfUE1EKSwKPj4gwqAgwqDCoMKgwqDCoCBTTkRfU09DX0RBUE1fTUlYRVIoIkxl ZnQgSGVhZHBob25lIE1peGVyIiwgU05EX1NPQ19OT1BNLCAwLCAwLAo+PiDCoMKgwqDCoMKgwqDC oMKgwqAgJm1heDk4MDkwX2xlZnRfaHBfbWl4ZXJfY29udHJvbHNbMF0sCj4+IEBAIC0xMjAwLDIw ICsxMzYwLDI2IEBAIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3NvY19kYXBtX3dpZGdldCAKPj4g bWF4OTgwOTBfZGFwbV93aWRnZXRzW10gPSB7Cj4+IMKgwqDCoMKgwqAgU05EX1NPQ19EQVBNX01V WCgiTUlYSFBSU0VMIE11eCIsIFNORF9TT0NfTk9QTSwgMCwgMCwKPj4gwqDCoMKgwqDCoMKgwqDC oMKgICZtYXg5ODA5MF9taXhocHJzZWxfbXV4KSwKPj4gwqAgLcKgwqDCoCBTTkRfU09DX0RBUE1f UEdBKCJIUCBMZWZ0IE91dCIsIE05ODA5MF9SRUdfT1VUUFVUX0VOQUJMRSwKPj4gLcKgwqDCoMKg wqDCoMKgIE05ODA5MF9IUExFTl9TSElGVCwgMCwgTlVMTCwgMCksCj4+IC3CoMKgwqAgU05EX1NP Q19EQVBNX1BHQSgiSFAgUmlnaHQgT3V0IiwgTTk4MDkwX1JFR19PVVRQVVRfRU5BQkxFLAo+PiAt wqDCoMKgwqDCoMKgwqAgTTk4MDkwX0hQUkVOX1NISUZULCAwLCBOVUxMLCAwKSwKPj4gLQo+PiAt wqDCoMKgIFNORF9TT0NfREFQTV9QR0EoIlNQSyBMZWZ0IE91dCIsIE05ODA5MF9SRUdfT1VUUFVU X0VOQUJMRSwKPj4gLcKgwqDCoMKgwqDCoMKgIE05ODA5MF9TUExFTl9TSElGVCwgMCwgTlVMTCwg MCksCj4+IC3CoMKgwqAgU05EX1NPQ19EQVBNX1BHQSgiU1BLIFJpZ2h0IE91dCIsIE05ODA5MF9S RUdfT1VUUFVUX0VOQUJMRSwKPj4gLcKgwqDCoMKgwqDCoMKgIE05ODA5MF9TUFJFTl9TSElGVCwg MCwgTlVMTCwgMCksCj4+IC0KPj4gLcKgwqDCoCBTTkRfU09DX0RBUE1fUEdBKCJSQ1YgTGVmdCBP dXQiLCBNOTgwOTBfUkVHX09VVFBVVF9FTkFCTEUsCj4+IC3CoMKgwqDCoMKgwqDCoCBNOTgwOTBf UkNWTEVOX1NISUZULCAwLCBOVUxMLCAwKSwKPj4gLcKgwqDCoCBTTkRfU09DX0RBUE1fUEdBKCJS Q1YgUmlnaHQgT3V0IiwgTTk4MDkwX1JFR19PVVRQVVRfRU5BQkxFLAo+PiAtwqDCoMKgwqDCoMKg wqAgTTk4MDkwX1JDVlJFTl9TSElGVCwgMCwgTlVMTCwgMCksCj4+ICvCoMKgwqAgU05EX1NPQ19E QVBNX1BHQV9FKCJIUCBMZWZ0IE91dCIsIE05ODA5MF9SRUdfT1VUUFVUX0VOQUJMRSwKPj4gK8Kg wqDCoMKgwqDCoMKgIE05ODA5MF9IUExFTl9TSElGVCwgMCwgTlVMTCwgMCwgbWF4OTgwOTBfZGFw bV9ldmVudCwKPj4gK8KgwqDCoMKgwqDCoMKgIFNORF9TT0NfREFQTV9QUkVfUE9TVF9QTVUgfCBT TkRfU09DX0RBUE1fUFJFX1BPU1RfUE1EKSwKPj4gK8KgwqDCoCBTTkRfU09DX0RBUE1fUEdBX0Uo IkhQIFJpZ2h0IE91dCIsIE05ODA5MF9SRUdfT1VUUFVUX0VOQUJMRSwKPj4gK8KgwqDCoMKgwqDC oMKgIE05ODA5MF9IUFJFTl9TSElGVCwgMCwgTlVMTCwgMCwgbWF4OTgwOTBfZGFwbV9ldmVudCwK Pj4gK8KgwqDCoMKgwqDCoMKgIFNORF9TT0NfREFQTV9QUkVfUE9TVF9QTVUgfCBTTkRfU09DX0RB UE1fUFJFX1BPU1RfUE1EKSwKPj4gKwo+PiArwqDCoMKgIFNORF9TT0NfREFQTV9QR0FfRSgiU1BL IExlZnQgT3V0IiwgTTk4MDkwX1JFR19PVVRQVVRfRU5BQkxFLAo+PiArwqDCoMKgwqDCoMKgwqAg TTk4MDkwX1NQTEVOX1NISUZULCAwLCBOVUxMLCAwLCBtYXg5ODA5MF9kYXBtX2V2ZW50LAo+PiAr wqDCoMKgwqDCoMKgwqAgU05EX1NPQ19EQVBNX1BSRV9QT1NUX1BNVSB8IFNORF9TT0NfREFQTV9Q UkVfUE9TVF9QTUQpLAo+PiArwqDCoMKgIFNORF9TT0NfREFQTV9QR0FfRSgiU1BLIFJpZ2h0IE91 dCIsIE05ODA5MF9SRUdfT1VUUFVUX0VOQUJMRSwKPj4gK8KgwqDCoMKgwqDCoMKgIE05ODA5MF9T UFJFTl9TSElGVCwgMCwgTlVMTCwgMCwgbWF4OTgwOTBfZGFwbV9ldmVudCwKPj4gK8KgwqDCoMKg wqDCoMKgIFNORF9TT0NfREFQTV9QUkVfUE9TVF9QTVUgfCBTTkRfU09DX0RBUE1fUFJFX1BPU1Rf UE1EKSwKPj4gKwo+PiArwqDCoMKgIFNORF9TT0NfREFQTV9QR0FfRSgiUkNWIExlZnQgT3V0Iiwg TTk4MDkwX1JFR19PVVRQVVRfRU5BQkxFLAo+PiArwqDCoMKgwqDCoMKgwqAgTTk4MDkwX1JDVkxF Tl9TSElGVCwgMCwgTlVMTCwgMCwgbWF4OTgwOTBfZGFwbV9ldmVudCwKPj4gK8KgwqDCoMKgwqDC oMKgIFNORF9TT0NfREFQTV9QUkVfUE9TVF9QTVUgfCBTTkRfU09DX0RBUE1fUFJFX1BPU1RfUE1E KSwKPj4gK8KgwqDCoCBTTkRfU09DX0RBUE1fUEdBX0UoIlJDViBSaWdodCBPdXQiLCBNOTgwOTBf UkVHX09VVFBVVF9FTkFCTEUsCj4+ICvCoMKgwqDCoMKgwqDCoCBNOTgwOTBfUkNWUkVOX1NISUZU LCAwLCBOVUxMLCAwLCBtYXg5ODA5MF9kYXBtX2V2ZW50LAo+PiArwqDCoMKgwqDCoMKgwqAgU05E X1NPQ19EQVBNX1BSRV9QT1NUX1BNVSB8IFNORF9TT0NfREFQTV9QUkVfUE9TVF9QTUQpLAo+PiDC oCDCoMKgwqDCoMKgIFNORF9TT0NfREFQTV9PVVRQVVQoIkhQTCIpLAo+PiDCoMKgwqDCoMKgIFNO RF9TT0NfREFQTV9PVVRQVVQoIkhQUiIpLAo+PiBAQCAtMTIyOCw5ICsxMzk0LDExIEBAIHN0YXRp YyBjb25zdCBzdHJ1Y3Qgc25kX3NvY19kYXBtX3dpZGdldCAKPj4gbWF4OTgwOTFfZGFwbV93aWRn ZXRzW10gPSB7Cj4+IMKgwqDCoMKgwqAgU05EX1NPQ19EQVBNX0lOUFVUKCJETUlDNCIpLAo+PiDC oCDCoMKgwqDCoMKgIFNORF9TT0NfREFQTV9TVVBQTFkoIkRNSUMzX0VOQSIsIE05ODA5MF9SRUdf RElHSVRBTF9NSUNfRU5BQkxFLAo+PiAtwqDCoMKgwqDCoMKgwqDCoCBNOTgwOTBfRElHTUlDM19T SElGVCwgMCwgTlVMTCwgMCksCj4+ICvCoMKgwqDCoMKgwqDCoCBNOTgwOTBfRElHTUlDM19TSElG VCwgMCwgbWF4OTgwOTBfZGFwbV9ldmVudCwKPj4gK8KgwqDCoMKgwqDCoMKgIFNORF9TT0NfREFQ TV9QUkVfUE9TVF9QTVUgfCBTTkRfU09DX0RBUE1fUFJFX1BPU1RfUE1EKSwKPj4gwqDCoMKgwqDC oCBTTkRfU09DX0RBUE1fU1VQUExZKCJETUlDNF9FTkEiLCBNOTgwOTBfUkVHX0RJR0lUQUxfTUlD X0VOQUJMRSwKPj4gLcKgwqDCoMKgwqDCoMKgwqAgTTk4MDkwX0RJR01JQzRfU0hJRlQsIDAsIE5V TEwsIDApLAo+PiArwqDCoMKgwqDCoMKgwqAgTTk4MDkwX0RJR01JQzRfU0hJRlQsIDAsIG1heDk4 MDkwX2RhcG1fZXZlbnQsCj4+ICvCoMKgwqDCoMKgwqDCoCBTTkRfU09DX0RBUE1fUFJFX1BPU1Rf UE1VIHwgU05EX1NPQ19EQVBNX1BSRV9QT1NUX1BNRCksCj4+IMKgIH07Cj4+IMKgIMKgIHN0YXRp YyBjb25zdCBzdHJ1Y3Qgc25kX3NvY19kYXBtX3JvdXRlIG1heDk4MDkwX2RhcG1fcm91dGVzW10g PSB7Cj4+IEBAIC0xNTAxLDYgKzE2NjksMTEgQEAgc3RhdGljIHZvaWQgbWF4OTgwOTBfY29uZmln dXJlX2JjbGsoc3RydWN0IAo+PiBzbmRfc29jX2NvbXBvbmVudCAqY29tcG9uZW50KQo+PiDCoMKg wqDCoMKgwqDCoMKgwqAgcmV0dXJuOwo+PiDCoMKgwqDCoMKgIH0KPj4gwqAgK8KgwqDCoCAvKgo+ PiArwqDCoMKgwqAgKiBNYXN0ZXIgbW9kZTogbm8gbmVlZCB0byBzYXZlIGFuZCByZXN0b3JlIFNI RE4gZm9yIHRoZSBmb2xsb3dpbmcKPj4gK8KgwqDCoMKgICogc2Vuc2l0aXZlIHJlZ2lzdGVycy4K Pj4gK8KgwqDCoMKgICovCj4+ICsKPj4gwqDCoMKgwqDCoCAvKiBDaGVjayBmb3Igc3VwcG9ydGVk IFBDTEsgdG8gTFJDTEsgcmF0aW9zICovCj4+IMKgwqDCoMKgwqAgZm9yIChpID0gMDsgaSA8IEFS UkFZX1NJWkUocGNsa19yYXRlcyk7IGkrKykgewo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgKChw Y2xrX3JhdGVzW2ldID09IG1heDk4MDkwLT5zeXNjbGspICYmCj4+IEBAIC0xNTg3LDEyICsxNzYw LDE0IEBAIHN0YXRpYyBpbnQgbWF4OTgwOTBfZGFpX3NldF9mbXQoc3RydWN0IAo+PiBzbmRfc29j X2RhaSAqY29kZWNfZGFpLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgc3dpdGNoIChmbXQgJiBTTkRf U09DX0RBSUZNVF9NQVNURVJfTUFTSykgewo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgY2FzZSBTTkRf U09DX0RBSUZNVF9DQlNfQ0ZTOgo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAvKiBTZXQg dG8gc2xhdmUgbW9kZSBQTEwgLSBNQVMgbW9kZSBvZmYgKi8KPj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqAgbWF4OTgwOTBfc2hkbl9zYXZlKG1heDk4MDkwKTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqAgc25kX3NvY19jb21wb25lbnRfd3JpdGUoY29tcG9uZW50LAo+PiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIE05ODA5MF9SRUdfQ0xPQ0tfUkFUSU9fTklfTVNCLCAw eDAwKTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc25kX3NvY19jb21wb25lbnRfd3Jp dGUoY29tcG9uZW50LAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIE05ODA5 MF9SRUdfQ0xPQ0tfUkFUSU9fTklfTFNCLCAweDAwKTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgc25kX3NvY19jb21wb25lbnRfdXBkYXRlX2JpdHMoY29tcG9uZW50LCAKPj4gTTk4MDkw X1JFR19DTE9DS19NT0RFLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIE05 ODA5MF9VU0VfTTFfTUFTSywgMCk7Cj4+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG1heDk4MDkw X3NoZG5fcmVzdG9yZShtYXg5ODA5MCk7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG1h eDk4MDkwLT5tYXN0ZXIgPSBmYWxzZTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYnJl YWs7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBjYXNlIFNORF9TT0NfREFJRk1UX0NCTV9DRk06Cj4+ IEBAIC0xNjE4LDcgKzE3OTMsOSBAQCBzdGF0aWMgaW50IG1heDk4MDkwX2RhaV9zZXRfZm10KHN0 cnVjdCAKPj4gc25kX3NvY19kYWkgKmNvZGVjX2RhaSwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgZGV2X2Vycihjb21wb25lbnQtPmRldiwgIkRBSSBjbG9jayBtb2RlIHVuc3VwcG9ydGVk Iik7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAtRUlOVkFMOwo+PiDCoMKg wqDCoMKgwqDCoMKgwqAgfQo+PiArwqDCoMKgwqDCoMKgwqAgbWF4OTgwOTBfc2hkbl9zYXZlKG1h eDk4MDkwKTsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHNuZF9zb2NfY29tcG9uZW50X3dyaXRlKGNv bXBvbmVudCwgTTk4MDkwX1JFR19NQVNURVJfTU9ERSwgCj4+IHJlZ3ZhbCk7Cj4+ICvCoMKgwqDC oMKgwqDCoCBtYXg5ODA5MF9zaGRuX3Jlc3RvcmUobWF4OTgwOTApOwo+PiDCoCDCoMKgwqDCoMKg wqDCoMKgwqAgcmVndmFsID0gMDsKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHN3aXRjaCAoZm10ICYg U05EX1NPQ19EQUlGTVRfRk9STUFUX01BU0spIHsKPj4gQEAgLTE2NjMsOCArMTg0MCwxMCBAQCBz dGF0aWMgaW50IG1heDk4MDkwX2RhaV9zZXRfZm10KHN0cnVjdCAKPj4gc25kX3NvY19kYWkgKmNv ZGVjX2RhaSwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIGlmIChtYXg5ODA5MC0+dGRtX3Nsb3RzID4g MSkKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmVndmFsIF49IE05ODA5MF9CQ0lfTUFT SzsKPj4gwqAgK8KgwqDCoMKgwqDCoMKgIG1heDk4MDkwX3NoZG5fc2F2ZShtYXg5ODA5MCk7Cj4+ IMKgwqDCoMKgwqDCoMKgwqDCoCBzbmRfc29jX2NvbXBvbmVudF93cml0ZShjb21wb25lbnQsCj4+ IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIE05ODA5MF9SRUdfSU5URVJGQUNFX0ZPUk1BVCwg cmVndmFsKTsKPj4gK8KgwqDCoMKgwqDCoMKgIG1heDk4MDkwX3NoZG5fcmVzdG9yZShtYXg5ODA5 MCk7Cj4+IMKgwqDCoMKgwqAgfQo+PiDCoCDCoMKgwqDCoMKgIHJldHVybiAwOwo+PiBAQCAtMTY3 Niw2ICsxODU1LDcgQEAgc3RhdGljIGludCBtYXg5ODA5MF9zZXRfdGRtX3Nsb3Qoc3RydWN0IAo+ PiBzbmRfc29jX2RhaSAqY29kZWNfZGFpLAo+PiDCoMKgwqDCoMKgIHN0cnVjdCBzbmRfc29jX2Nv bXBvbmVudCAqY29tcG9uZW50ID0gY29kZWNfZGFpLT5jb21wb25lbnQ7Cj4+IMKgwqDCoMKgwqAg c3RydWN0IG1heDk4MDkwX3ByaXYgKm1heDk4MDkwID0gCj4+IHNuZF9zb2NfY29tcG9uZW50X2dl dF9kcnZkYXRhKGNvbXBvbmVudCk7Cj4+IMKgwqDCoMKgwqAgc3RydWN0IG1heDk4MDkwX2NkYXRh ICpjZGF0YTsKPj4gKwo+PiDCoMKgwqDCoMKgIGNkYXRhID0gJm1heDk4MDkwLT5kYWlbMF07Cj4+ IMKgIMKgwqDCoMKgwqAgaWYgKHNsb3RzIDwgMCB8fCBzbG90cyA+IDQpCj4+IEBAIC0xNjg1LDYg KzE4NjUsNyBAQCBzdGF0aWMgaW50IG1heDk4MDkwX3NldF90ZG1fc2xvdChzdHJ1Y3QgCj4+IHNu ZF9zb2NfZGFpICpjb2RlY19kYWksCj4+IMKgwqDCoMKgwqAgbWF4OTgwOTAtPnRkbV93aWR0aCA9 IHNsb3Rfd2lkdGg7Cj4+IMKgIMKgwqDCoMKgwqAgaWYgKG1heDk4MDkwLT50ZG1fc2xvdHMgPiAx KSB7Cj4+ICvCoMKgwqDCoMKgwqDCoCBtYXg5ODA5MF9zaGRuX3NhdmUobWF4OTgwOTApOwo+PiDC oMKgwqDCoMKgwqDCoMKgwqAgLyogU0xPVEwgU0xPVFIgU0xPVERMWSAqLwo+PiDCoMKgwqDCoMKg wqDCoMKgwqAgc25kX3NvY19jb21wb25lbnRfd3JpdGUoY29tcG9uZW50LCBNOTgwOTBfUkVHX1RE TV9GT1JNQVQsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDAgPDwgTTk4MDkwX1RETV9T TE9UTF9TSElGVCB8Cj4+IEBAIC0xNjk1LDYgKzE4NzYsNyBAQCBzdGF0aWMgaW50IG1heDk4MDkw X3NldF90ZG1fc2xvdChzdHJ1Y3QgCj4+IHNuZF9zb2NfZGFpICpjb2RlY19kYWksCj4+IMKgwqDC oMKgwqDCoMKgwqDCoCBzbmRfc29jX2NvbXBvbmVudF91cGRhdGVfYml0cyhjb21wb25lbnQsIAo+ PiBNOTgwOTBfUkVHX1RETV9DT05UUk9MLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBN OTgwOTBfVERNX01BU0ssCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIE05ODA5MF9URE1f TUFTSyk7Cj4+ICvCoMKgwqDCoMKgwqDCoCBtYXg5ODA5MF9zaGRuX3Jlc3RvcmUobWF4OTgwOTAp Owo+PiDCoMKgwqDCoMKgIH0KPj4gwqAgwqDCoMKgwqDCoCAvKgo+PiBAQCAtMTg5NCw2ICsyMDc2 LDcgQEAgc3RhdGljIGludCBtYXg5ODA5MF9jb25maWd1cmVfZG1pYyhzdHJ1Y3QgCj4+IG1heDk4 MDkwX3ByaXYgKm1heDk4MDkwLAo+PiDCoMKgwqDCoMKgIGRtaWNfZnJlcSA9IGRtaWNfdGFibGVb cGNsa19pbmRleF0uc2V0dGluZ3NbbWljY2xrX2luZGV4XS5mcmVxOwo+PiDCoMKgwqDCoMKgIGRt aWNfY29tcCA9IGRtaWNfdGFibGVbcGNsa19pbmRleF0uc2V0dGluZ3NbbWljY2xrX2luZGV4XS5j b21wW2ldOwo+PiDCoCArwqDCoMKgIG1heDk4MDkwX3NoZG5fc2F2ZShtYXg5ODA5MCk7Cj4+IMKg wqDCoMKgwqAgcmVnbWFwX3VwZGF0ZV9iaXRzKG1heDk4MDkwLT5yZWdtYXAsIAo+PiBNOTgwOTBf UkVHX0RJR0lUQUxfTUlDX0VOQUJMRSwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgTTk4MDkwX01JQ0NMS19NQVNLLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCBtaWNjbGtfaW5kZXggPDwgTTk4MDkwX01JQ0NMS19TSElGVCk7Cj4+IEBAIC0xOTAyLDYgKzIw ODUsNyBAQCBzdGF0aWMgaW50IG1heDk4MDkwX2NvbmZpZ3VyZV9kbWljKHN0cnVjdCAKPj4gbWF4 OTgwOTBfcHJpdiAqbWF4OTgwOTAsCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IE05ODA5MF9ETUlDX0NPTVBfTUFTSyB8IE05ODA5MF9ETUlDX0ZSRVFfTUFTSywKPj4gwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZG1pY19jb21wIDw8IE05ODA5MF9ETUlDX0NPTVBf U0hJRlQgfAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBkbWljX2ZyZXEgPDwg TTk4MDkwX0RNSUNfRlJFUV9TSElGVCk7Cj4+ICvCoMKgwqAgbWF4OTgwOTBfc2hkbl9yZXN0b3Jl KG1heDk4MDkwKTsKPj4gwqAgwqDCoMKgwqDCoCByZXR1cm4gMDsKPj4gwqAgfQo+PiBAQCAtMTkz OCw4ICsyMTIyLDEwIEBAIHN0YXRpYyBpbnQgbWF4OTgwOTBfZGFpX2h3X3BhcmFtcyhzdHJ1Y3Qg Cj4+IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sCj4+IMKgIMKgwqDCoMKgwqAgc3dpdGNo IChwYXJhbXNfd2lkdGgocGFyYW1zKSkgewo+PiDCoMKgwqDCoMKgIGNhc2UgMTY6Cj4+ICvCoMKg wqDCoMKgwqDCoCBtYXg5ODA5MF9zaGRuX3NhdmUobWF4OTgwOTApOwo+PiDCoMKgwqDCoMKgwqDC oMKgwqAgc25kX3NvY19jb21wb25lbnRfdXBkYXRlX2JpdHMoY29tcG9uZW50LCAKPj4gTTk4MDkw X1JFR19JTlRFUkZBQ0VfRk9STUFULAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBNOTgw OTBfV1NfTUFTSywgMCk7Cj4+ICvCoMKgwqDCoMKgwqDCoCBtYXg5ODA5MF9zaGRuX3Jlc3RvcmUo bWF4OTgwOTApOwo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgYnJlYWs7Cj4+IMKgwqDCoMKgwqAgZGVm YXVsdDoKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiAtRUlOVkFMOwo+PiBAQCAtMTk1MCw2 ICsyMTM2LDcgQEAgc3RhdGljIGludCBtYXg5ODA5MF9kYWlfaHdfcGFyYW1zKHN0cnVjdCAKPj4g c25kX3BjbV9zdWJzdHJlYW0gKnN1YnN0cmVhbSwKPj4gwqAgwqDCoMKgwqDCoCBjZGF0YS0+cmF0 ZSA9IG1heDk4MDkwLT5scmNsazsKPj4gwqAgK8KgwqDCoCBtYXg5ODA5MF9zaGRuX3NhdmUobWF4 OTgwOTApOwo+PiDCoMKgwqDCoMKgIC8qIFVwZGF0ZSBmaWx0ZXIgbW9kZSAqLwo+PiDCoMKgwqDC oMKgIGlmIChtYXg5ODA5MC0+bHJjbGsgPCAyNDAwMCkKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIHNu ZF9zb2NfY29tcG9uZW50X3VwZGF0ZV9iaXRzKGNvbXBvbmVudCwgCj4+IE05ODA5MF9SRUdfRklM VEVSX0NPTkZJRywKPj4gQEAgLTE5NjUsNiArMjE1Miw3IEBAIHN0YXRpYyBpbnQgbWF4OTgwOTBf ZGFpX2h3X3BhcmFtcyhzdHJ1Y3QgCj4+IHNuZF9wY21fc3Vic3RyZWFtICpzdWJzdHJlYW0sCj4+ IMKgwqDCoMKgwqAgZWxzZQo+PiDCoMKgwqDCoMKgwqDCoMKgwqAgc25kX3NvY19jb21wb25lbnRf dXBkYXRlX2JpdHMoY29tcG9uZW50LCAKPj4gTTk4MDkwX1JFR19GSUxURVJfQ09ORklHLAo+PiDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBNOTgwOTBfREhGX01BU0ssIE05ODA5MF9ESEZfTUFT Syk7Cj4+ICvCoMKgwqAgbWF4OTgwOTBfc2hkbl9yZXN0b3JlKG1heDk4MDkwKTsKPj4gwqAgwqDC oMKgwqDCoCBtYXg5ODA5MF9jb25maWd1cmVfZG1pYyhtYXg5ODA5MCwgbWF4OTgwOTAtPmRtaWNf ZnJlcSwgCj4+IG1heDk4MDkwLT5wY2xrLAo+PiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIG1heDk4MDkwLT5scmNsayk7Cj4+IEBAIC0xOTk1LDYgKzIxODMsNyBAQCBzdGF0aWMg aW50IG1heDk4MDkwX2RhaV9zZXRfc3lzY2xrKHN0cnVjdCAKPj4gc25kX3NvY19kYWkgKmRhaSwK Pj4gwqDCoMKgwqDCoMKgICrCoMKgwqDCoMKgwqDCoMKgIDB4MDIgKHdoZW4gbWFzdGVyIGNsayBp cyAyME1IeiB0byA0ME1IeikuLgo+PiDCoMKgwqDCoMKgwqAgKsKgwqDCoMKgwqDCoMKgwqAgMHgw MyAod2hlbiBtYXN0ZXIgY2xrIGlzIDQwTUh6IHRvIDYwTUh6KS4uCj4+IMKgwqDCoMKgwqDCoCAq Lwo+PiArwqDCoMKgIG1heDk4MDkwX3NoZG5fc2F2ZShtYXg5ODA5MCk7Cj4+IMKgwqDCoMKgwqAg aWYgKChmcmVxID49IDEwMDAwMDAwKSAmJiAoZnJlcSA8PSAyMDAwMDAwMCkpIHsKPj4gwqDCoMKg wqDCoMKgwqDCoMKgIHNuZF9zb2NfY29tcG9uZW50X3dyaXRlKGNvbXBvbmVudCwgTTk4MDkwX1JF R19TWVNURU1fQ0xPQ0ssCj4+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIE05ODA5MF9QU0NM S19ESVYxKTsKPj4gQEAgLTIwMDksOCArMjE5OCwxMCBAQCBzdGF0aWMgaW50IG1heDk4MDkwX2Rh aV9zZXRfc3lzY2xrKHN0cnVjdCAKPj4gc25kX3NvY19kYWkgKmRhaSwKPj4gwqDCoMKgwqDCoMKg wqDCoMKgIG1heDk4MDkwLT5wY2xrID0gZnJlcSA+PiAyOwo+PiDCoMKgwqDCoMKgIH0gZWxzZSB7 Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCBkZXZfZXJyKGNvbXBvbmVudC0+ZGV2LCAiSW52YWxpZCBt YXN0ZXIgY2xvY2sgZnJlcXVlbmN5XG4iKTsKPj4gK8KgwqDCoMKgwqDCoMKgIG1heDk4MDkwX3No ZG5fcmVzdG9yZShtYXg5ODA5MCk7Cj4+IMKgwqDCoMKgwqDCoMKgwqDCoCByZXR1cm4gLUVJTlZB TDsKPj4gwqDCoMKgwqDCoCB9Cj4+ICvCoMKgwqAgbWF4OTgwOTBfc2hkbl9yZXN0b3JlKG1heDk4 MDkwKTsKPj4gwqAgwqDCoMKgwqDCoCBtYXg5ODA5MC0+c3lzY2xrID0gZnJlcTsKPj4gwqAgQEAg LTIxMjIsMTAgKzIzMTMsMTIgQEAgc3RhdGljIHZvaWQgbWF4OTgwOTBfcGxsX3dvcmsoc3RydWN0 IAo+PiBtYXg5ODA5MF9wcml2ICptYXg5ODA5MCkKPj4gwqDCoMKgwqDCoMKgICovCj4+IMKgIMKg wqDCoMKgwqAgLyogVG9nZ2xlIHNodXRkb3duIE9GRiB0aGVuIE9OICovCj4+ICvCoMKgwqAgbXV0 ZXhfbG9jaygmY29tcG9uZW50LT5jYXJkLT5kYXBtX211dGV4KTsKPj4gwqDCoMKgwqDCoCBzbmRf c29jX2NvbXBvbmVudF91cGRhdGVfYml0cyhjb21wb25lbnQsIAo+PiBNOTgwOTBfUkVHX0RFVklD RV9TSFVURE9XTiwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBNOTgwOTBf U0hETk5fTUFTSywgMCk7Cj4+IMKgwqDCoMKgwqAgc25kX3NvY19jb21wb25lbnRfdXBkYXRlX2Jp dHMoY29tcG9uZW50LCAKPj4gTTk4MDkwX1JFR19ERVZJQ0VfU0hVVERPV04sCj4+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgTTk4MDkwX1NIRE5OX01BU0ssIE05ODA5MF9TSERO Tl9NQVNLKTsKPj4gK8KgwqDCoCBtdXRleF91bmxvY2soJmNvbXBvbmVudC0+Y2FyZC0+ZGFwbV9t dXRleCk7Cj4+IMKgIMKgwqDCoMKgwqAgZm9yIChpID0gMDsgaSA8IDEwOyArK2kpIHsKPj4gwqDC oMKgwqDCoMKgwqDCoMKgIC8qIEdpdmUgUExMIHRpbWUgdG8gbG9jayAqLwo+PiBAQCAtMjQ0OCw3 ICsyNjQxLDEyIEBAIHN0YXRpYyBpbnQgbWF4OTgwOTBfcHJvYmUoc3RydWN0IAo+PiBzbmRfc29j X2NvbXBvbmVudCAqY29tcG9uZW50KQo+PiDCoMKgwqDCoMKgwqAgKi8KPj4gwqDCoMKgwqDCoCBz bmRfc29jX2NvbXBvbmVudF9yZWFkMzIoY29tcG9uZW50LCBNOTgwOTBfUkVHX0RFVklDRV9TVEFU VVMpOwo+PiDCoCAtwqDCoMKgIC8qIEhpZ2ggUGVyZm9ybWFuY2UgaXMgZGVmYXVsdCAqLwo+PiAr wqDCoMKgIC8qCj4+ICvCoMKgwqDCoCAqIFNIRE4gc2hvdWxkIGJlIDAgYXQgdGhlIHBvaW50LCBu byBuZWVkIHRvIHNhdmUvcmVzdG9yZSBmb3IgdGhlCj4+ICvCoMKgwqDCoCAqIGZvbGxvd2luZyBy ZWdpc3RlcnMuCj4+ICvCoMKgwqDCoCAqCj4+ICvCoMKgwqDCoCAqIEhpZ2ggUGVyZm9ybWFuY2Ug aXMgZGVmYXVsdAo+PiArwqDCoMKgwqAgKi8KPj4gwqDCoMKgwqDCoCBzbmRfc29jX2NvbXBvbmVu dF91cGRhdGVfYml0cyhjb21wb25lbnQsIE05ODA5MF9SRUdfREFDX0NPTlRST0wsCj4+IMKgwqDC oMKgwqDCoMKgwqDCoCBNOTgwOTBfREFDSFBfTUFTSywKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIDEg PDwgTTk4MDkwX0RBQ0hQX1NISUZUKTsKPj4gQEAgLTI0NTksNyArMjY1NywxMiBAQCBzdGF0aWMg aW50IG1heDk4MDkwX3Byb2JlKHN0cnVjdCAKPj4gc25kX3NvY19jb21wb25lbnQgKmNvbXBvbmVu dCkKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIE05ODA5MF9BRENIUF9NQVNLLAo+PiDCoMKgwqDCoMKg wqDCoMKgwqAgMSA8PCBNOTgwOTBfQURDSFBfU0hJRlQpOwo+PiDCoCAtwqDCoMKgIC8qIFR1cm4g b24gVkNNIGJhbmRnYXAgcmVmZXJlbmNlICovCj4+ICvCoMKgwqAgLyoKPj4gK8KgwqDCoMKgICog U0hETiBzaG91bGQgYmUgMCBhdCB0aGUgcG9pbnQsIG5vIG5lZWQgdG8gc2F2ZS9yZXN0b3JlIGZv ciB0aGUKPj4gK8KgwqDCoMKgICogZm9sbG93aW5nIHJlZ2lzdGVycy4KPj4gK8KgwqDCoMKgICoK Pj4gK8KgwqDCoMKgICogVHVybiBvbiBWQ00gYmFuZGdhcCByZWZlcmVuY2UKPj4gK8KgwqDCoMKg ICovCj4+IMKgwqDCoMKgwqAgc25kX3NvY19jb21wb25lbnRfd3JpdGUoY29tcG9uZW50LCBNOTgw OTBfUkVHX0JJQVNfQ09OVFJPTCwKPj4gwqDCoMKgwqDCoMKgwqDCoMKgIE05ODA5MF9WQ01fTU9E RV9NQVNLKTsKPj4gwqAgQEAgLTI0OTEsMjUgKzI2OTQsOSBAQCBzdGF0aWMgdm9pZCBtYXg5ODA5 MF9yZW1vdmUoc3RydWN0IAo+PiBzbmRfc29jX2NvbXBvbmVudCAqY29tcG9uZW50KQo+PiDCoMKg wqDCoMKgIG1heDk4MDkwLT5jb21wb25lbnQgPSBOVUxMOwo+PiDCoCB9Cj4+IMKgIC1zdGF0aWMg dm9pZCBtYXg5ODA5MF9zZXFfbm90aWZpZXIoc3RydWN0IHNuZF9zb2NfY29tcG9uZW50IAo+PiAq Y29tcG9uZW50LAo+PiAtwqDCoMKgIGVudW0gc25kX3NvY19kYXBtX3R5cGUgZXZlbnQsIGludCBz dWJzZXEpCj4+IC17Cj4+IC3CoMKgwqAgc3RydWN0IG1heDk4MDkwX3ByaXYgKm1heDk4MDkwID0g Cj4+IHNuZF9zb2NfY29tcG9uZW50X2dldF9kcnZkYXRhKGNvbXBvbmVudCk7Cj4+IC0KPj4gLcKg wqDCoCBpZiAobWF4OTgwOTAtPnNoZG5fcGVuZGluZykgewo+PiAtwqDCoMKgwqDCoMKgwqAgc25k X3NvY19jb21wb25lbnRfdXBkYXRlX2JpdHMoY29tcG9uZW50LCAKPj4gTTk4MDkwX1JFR19ERVZJ Q0VfU0hVVERPV04sCj4+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgTTk4MDkwX1NI RE5OX01BU0ssIDApOwo+PiAtwqDCoMKgwqDCoMKgwqAgbXNsZWVwKDQwKTsKPj4gLcKgwqDCoMKg wqDCoMKgIHNuZF9zb2NfY29tcG9uZW50X3VwZGF0ZV9iaXRzKGNvbXBvbmVudCwgCj4+IE05ODA5 MF9SRUdfREVWSUNFX1NIVVRET1dOLAo+PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IE05ODA5MF9TSEROTl9NQVNLLCBNOTgwOTBfU0hETk5fTUFTSyk7Cj4+IC3CoMKgwqDCoMKgwqDC oCBtYXg5ODA5MC0+c2hkbl9wZW5kaW5nID0gZmFsc2U7Cj4+IC3CoMKgwqAgfQo+PiAtfQo+PiAt Cj4+IMKgIHN0YXRpYyBjb25zdCBzdHJ1Y3Qgc25kX3NvY19jb21wb25lbnRfZHJpdmVyIAo+PiBz b2NfY29tcG9uZW50X2Rldl9tYXg5ODA5MCA9IHsKPj4gwqDCoMKgwqDCoCAucHJvYmXCoMKgwqDC oMKgwqDCoMKgwqDCoMKgID0gbWF4OTgwOTBfcHJvYmUsCj4+IMKgwqDCoMKgwqAgLnJlbW92ZcKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgPSBtYXg5ODA5MF9yZW1vdmUsCj4+IC3CoMKgwqAgLnNlcV9u b3RpZmllcsKgwqDCoMKgwqDCoMKgID0gbWF4OTgwOTBfc2VxX25vdGlmaWVyLAo+PiDCoMKgwqDC oMKgIC5zZXRfYmlhc19sZXZlbMKgwqDCoMKgwqDCoMKgID0gbWF4OTgwOTBfc2V0X2JpYXNfbGV2 ZWwsCj4+IMKgwqDCoMKgwqAgLmlkbGVfYmlhc19vbsKgwqDCoMKgwqDCoMKgID0gMSwKPj4gwqDC oMKgwqDCoCAudXNlX3BtZG93bl90aW1lwqDCoMKgID0gMSwKPj4gZGlmZiAtLWdpdCBhL3NvdW5k L3NvYy9jb2RlY3MvbWF4OTgwOTAuaCBiL3NvdW5kL3NvYy9jb2RlY3MvbWF4OTgwOTAuaAo+PiBp bmRleCBhMTk3MTE0YjBkYWQuLjBhMzE3MDhiN2RmNyAxMDA2NDQKPj4gLS0tIGEvc291bmQvc29j L2NvZGVjcy9tYXg5ODA5MC5oCj4+ICsrKyBiL3NvdW5kL3NvYy9jb2RlY3MvbWF4OTgwOTAuaAo+ PiBAQCAtMTUzOSw3ICsxNTM5LDggQEAgc3RydWN0IG1heDk4MDkwX3ByaXYgewo+PiDCoMKgwqDC oMKgIHVuc2lnbmVkIGludCBwYTJlbjsKPj4gwqDCoMKgwqDCoCB1bnNpZ25lZCBpbnQgc2lkZXRv bmU7Cj4+IMKgwqDCoMKgwqAgYm9vbCBtYXN0ZXI7Cj4+IC3CoMKgwqAgYm9vbCBzaGRuX3BlbmRp bmc7Cj4+ICvCoMKgwqAgaW50IHNhdmVkX2NvdW50Owo+PiArwqDCoMKgIGludCBzYXZlZF9zaGRu Owo+PiDCoCB9Owo+PiDCoCDCoCBpbnQgbWF4OTgwOTBfbWljX2RldGVjdChzdHJ1Y3Qgc25kX3Nv Y19jb21wb25lbnQgKmNvbXBvbmVudCwKPgo+IEJlc3QgcmVnYXJkcwoKQmVzdCByZWdhcmRzCi0t IApNYXJlayBTenlwcm93c2tpLCBQaEQKU2Ftc3VuZyBSJkQgSW5zdGl0dXRlIFBvbGFuZAoKX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KQWxzYS1kZXZlbCBt YWlsaW5nIGxpc3QKQWxzYS1kZXZlbEBhbHNhLXByb2plY3Qub3JnCmh0dHBzOi8vbWFpbG1hbi5h bHNhLXByb2plY3Qub3JnL21haWxtYW4vbGlzdGluZm8vYWxzYS1kZXZlbAo=