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.6 required=3.0 tests=DATE_IN_PAST_06_12, HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY, SPF_HELO_NONE,SPF_PASS,USER_AGENT_GIT autolearn=unavailable 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 B9230C33CAF for ; Fri, 17 Jan 2020 01:03:07 +0000 (UTC) Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (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 988072072E for ; Fri, 17 Jan 2020 01:03:07 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 988072072E Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=dri-devel-bounces@lists.freedesktop.org Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id E33BE6EF31; Fri, 17 Jan 2020 01:02:57 +0000 (UTC) Received: from mga02.intel.com (mga02.intel.com [134.134.136.20]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0FD756E4AA; Fri, 17 Jan 2020 01:02:56 +0000 (UTC) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga101.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 16 Jan 2020 17:02:55 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.70,327,1574150400"; d="scan'208";a="214307356" Received: from unknown (HELO localhost.jf.intel.com) ([10.166.29.74]) by orsmga007.jf.intel.com with ESMTP; 16 Jan 2020 17:02:55 -0800 From: Akeem G Abodunrin To: akeem.g.abodunrin@intel.com, intel-gfx@lists.freedesktop.org, dri-devel@lists.freedesktop.org, omer.aran@intel.com, pragyansri.pathi@intel.com, d.scott.phillips@intel.com, david.c.stewart@intel.com, tony.luck@intel.com, jon.bloomfield@intel.com, sudeep.dutt@intel.com, daniel.vetter@intel.com, joonas.lahtinen@linux.intel.com, jani.nikula@intel.com, chris.p.wilson@intel.com, prathap.kumar.valsan@intel.com, mika.kuoppala@intel.com, francesco.balestrieri@intel.com Subject: [RFC PATCH v3 2/2] drm/i915/gen7: Clear all EU/L3 residual contexts Date: Thu, 16 Jan 2020 09:46:55 -0800 Message-Id: <20200116174655.85926-3-akeem.g.abodunrin@intel.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20200116174655.85926-1-akeem.g.abodunrin@intel.com> References: <20200116174655.85926-1-akeem.g.abodunrin@intel.com> MIME-Version: 1.0 X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" RnJvbTogUHJhdGhhcCBLdW1hciBWYWxzYW4gPHByYXRoYXAua3VtYXIudmFsc2FuQGludGVsLmNv bT4KCioqKiogTk9URTogKioqKgpUaGlzIHNlcmllcyBpcyBpbiBhY3RpdmUgZGV2ZWxvcG1lbnQg YW5kIGlzIG5vdCBpbnRlbmRlZCB0byBiZSBtZXJnZWQgdG8KbWFpbmxpbmUgaW4gaXRzIGN1cnJl bnQgZm9ybS4gVGhlIGludGVudCBvZiB0aGUgUkZDIGlzIHNpbXBseSB0byBvdXRsaW5lCnRoZSBz dHJhdGVneSBmb3IgdGhlIG1pdGlnYXRpb24sIGFzIGEgZm9jdXMgZm9yIGFjdGl2ZSBkaXNjdXNz aW9uLCBhbmQKdG8gb3Blbmx5IHNoYXJlIHByb2dyZXNzLiBUaGVyZSBoYXMgYmVlbiBvbmx5IG1p bmltYWwgYXR0ZW50aW9uIHBhaWQgdG8KcGVyZm9ybWFuY2UgdGh1cyBmYXIsIGFzIHRoZSBmb2N1 cyBpcyBvbiByb2J1c3RuZXNzLiBJdCBpcyBub3QKYW50aWNpcGF0ZWQgdGhhdCB0aGVyZSB3aWxs IGJlIGFueSBtZWFzdXJhYmxlIHBlcmZvcm1hbmNlIGltcGFjdCBpbiB0aGUKZmluYWwgdmVyc2lv bi4KKioqKiBFTkQgTk9URSAqKioqCgpPbiBnZW43IGFuZCBnZW43LjUgZGV2aWNlcywgdGhlcmUg Y291bGQgYmUgbGVmdG92ZXIgZGF0YSByZXNpZHVhbHMgaW4KRVUvTDMgZnJvbSB0aGUgcmV0aXJp bmcgY29udGV4dC4gVGhpcyBwYXRjaCBpbnRyb2R1Y2VzIHdvcmthcm91bmQgdG8gY2xlYXIKdGhh dCByZXNpZHVhbCBjb250ZXh0cywgYnkgc3VibWl0dGluZyBhIGJhdGNoIGJ1ZmZlciB3aXRoIGRl ZGljYXRlZCBIVwpjb250ZXh0IHRvIHRoZSBHUFUgd2l0aCByaW5nIGFsbG9jYXRpb24gZm9yIGVh Y2ggY29udGV4dCBzd2l0Y2hpbmcuCgp2MjogQWRkcmVzc2VkIGNvbW1lbnRzIGFib3V0IHVudXNl ZCBjb2RlLCBjb2RlIGZvcm1hdHRpbmcsIGFuZCBpbmNsdWRlCmFkZGl0aW9uYWwgZGVidWcgY29k ZSBhcyBzdWdnZXN0ZWQgYnkgQ2hyaXMgV2lsc29uLgp2MzogRXhwYW5kIGRlYnVnIGNvZGUgZm9y IGV2ZXJ5IGJhdGNoX2FsbG9jX2l0ZW1zKCkgY2FsbC4uLgpDdXJyZW50IHBhdGNoIHNlcmllcyBz aG93cyBzaWduaWZpY2FudCBwZXJmb3JtYW5jZSBpbXByb3ZlbWVudHMsIG9uIHBhcgp3aXRoIGN1 cnJlbnQgZHJtLXRpcHMuCgpTaWduZWQtb2ZmLWJ5OiBNaWthIEt1b3BwYWxhIDxtaWthLmt1b3Bw YWxhQGxpbnV4LmludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogUHJhdGhhcCBLdW1hciBWYWxzYW4g PHByYXRoYXAua3VtYXIudmFsc2FuQGludGVsLmNvbT4KU2lnbmVkLW9mZi1ieTogQWtlZW0gRyBB Ym9kdW5yaW4gPGFrZWVtLmcuYWJvZHVucmluQGludGVsLmNvbT4KQ2M6IENocmlzIFdpbHNvbiA8 Y2hyaXMucC53aWxzb25AaW50ZWwuY29tPgpDYzogQmFsZXN0cmllcmkgRnJhbmNlc2NvIDxmcmFu Y2VzY28uYmFsZXN0cmllcmlAaW50ZWwuY29tPgpDYzogQmxvb21maWVsZCBKb24gPGpvbi5ibG9v bWZpZWxkQGludGVsLmNvbT4KQ2M6IER1dHQgU3VkZWVwIDxzdWRlZXAuZHV0dEBpbnRlbC5jb20+ Ci0tLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUgICAgICAgICAgICAgICAgIHwgICAx ICsKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2dlbjdfcmVuZGVyY2xlYXIuYyAgICB8IDUyNCAr KysrKysrKysrKysrKysrKysKIGRyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2dlbjdfcmVuZGVyY2xl YXIuaCAgICB8ICAxNSArCiBkcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9pbnRlbF9ncHVfY29tbWFu ZHMuaCAgfCAgMTcgKy0KIC4uLi9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmluZ19zdWJtaXNzaW9u LmMgICB8ICAgMyArLQogZHJpdmVycy9ncHUvZHJtL2k5MTUvaTkxNV91dGlscy5oICAgICAgICAg ICAgIHwgICA1ICsKIDYgZmlsZXMgY2hhbmdlZCwgNTYxIGluc2VydGlvbnMoKyksIDQgZGVsZXRp b25zKC0pCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvZ2VuN19y ZW5kZXJjbGVhci5jCiBjcmVhdGUgbW9kZSAxMDA2NDQgZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3Qv Z2VuN19yZW5kZXJjbGVhci5oCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFr ZWZpbGUgYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9NYWtlZmlsZQppbmRleCAzYzg4ZDdkOGM3NjQu LmY5NmJhZTY2NGEwMyAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUK KysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvTWFrZWZpbGUKQEAgLTc4LDYgKzc4LDcgQEAgZ3Qt eSArPSBcCiAJZ3QvZGVidWdmc19ndC5vIFwKIAlndC9kZWJ1Z2ZzX2d0X3BtLm8gXAogCWd0L2dl bjZfcHBndHQubyBcCisJZ3QvZ2VuN19yZW5kZXJjbGVhci5vIFwKIAlndC9nZW44X3BwZ3R0Lm8g XAogCWd0L2ludGVsX2JyZWFkY3J1bWJzLm8gXAogCWd0L2ludGVsX2NvbnRleHQubyBcCmRpZmYg LS1naXQgYS9kcml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9nZW43X3JlbmRlcmNsZWFyLmMgYi9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9ndC9nZW43X3JlbmRlcmNsZWFyLmMKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAwLi41NDI1YzIxNDliMzAKLS0tIC9kZXYvbnVsbAorKysgYi9k cml2ZXJzL2dwdS9kcm0vaTkxNS9ndC9nZW43X3JlbmRlcmNsZWFyLmMKQEAgLTAsMCArMSw1MjQg QEAKKy8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVQKKy8qCisgKiBDb3B5cmlnaHQgwqkg MjAxOSBJbnRlbCBDb3Jwb3JhdGlvbgorICovCisKKyNpbmNsdWRlICJnZW43X3JlbmRlcmNsZWFy LmgiCisjaW5jbHVkZSAiaTkxNV9kcnYuaCIKKyNpbmNsdWRlICJpOTE1X3V0aWxzLmgiCisjaW5j bHVkZSAiaW50ZWxfZ3B1X2NvbW1hbmRzLmgiCisKKyNkZWZpbmUgTUFYX1VSQl9FTlRSSUVTIDY0 CisjZGVmaW5lIFNUQVRFX1NJWkUgKDQgKiAxMDI0KQorI2RlZmluZSBHVDNfSU5MSU5FX0RBVEFf REVMQVlTIDB4MUUwMAorI2RlZmluZSBiYXRjaF9hZHZhbmNlKFksIENTKSBHRU1fQlVHX09OKChZ KS0+ZW5kICE9IChDUykpCisKKy8qIE1lZGlhIENCIEtlcm5lbCBmb3IgZ2VuNyBkZXZpY2VzICov CitzdGF0aWMgY29uc3QgdTMyIGNiN19rZXJuZWxbXVs0XSA9IHsKKwl7IDB4MDAwMDAwMDEsIDB4 MjYwMjAxMjgsIDB4MDAwMDAwMjQsIDB4MDAwMDAwMDAgfSwKKwl7IDB4MDAwMDAwNDAsIDB4MjAy ODBjMjEsIDB4MDAwMDAwMjgsIDB4MDAwMDAwMDEgfSwKKwl7IDB4MDEwMDAwMTAsIDB4MjAwMDBj MjAsIDB4MDAwMDAwMmMsIDB4MDAwMDAwMDAgfSwKKwl7IDB4MDAwMTAyMjAsIDB4MzQwMDFjMDAs IDB4MDAwMDE0MDAsIDB4MDAwMDAwMmMgfSwKKwl7IDB4MDA2MDAwMDEsIDB4MjA2MDAwNjEsIDB4 MDAwMDAwMDAsIDB4MDAwMDAwMDAgfSwKKwl7IDB4MDAwMDAwMDgsIDB4MjA2MDFjODUsIDB4MDAw MDBlMDAsIDB4MDAwMDAwMGMgfSwKKwl7IDB4MDAwMDAwMDUsIDB4MjA2MDFjYTUsIDB4MDAwMDAw NjAsIDB4MDAwMDAwMDEgfSwKKwl7IDB4MDAwMDAwMDgsIDB4MjA2NDFjODUsIDB4MDAwMDBlMDAs IDB4MDAwMDAwMGQgfSwKKwl7IDB4MDAwMDAwMDUsIDB4MjA2NDFjYTUsIDB4MDAwMDAwNjQsIDB4 MDAwMDAwMDMgfSwKKwl7IDB4MDAwMDAwNDEsIDB4MjA3NDI0YTUsIDB4MDAwMDAwNjQsIDB4MDAw MDAwMzQgfSwKKwl7IDB4MDAwMDAwNDAsIDB4MjA2MDE0YTUsIDB4MDAwMDAwNjAsIDB4MDAwMDAw NzQgfSwKKwl7IDB4MDAwMDAwMDgsIDB4MjA2ODFjODUsIDB4MDAwMDBlMDAsIDB4MDAwMDAwMDgg fSwKKwl7IDB4MDAwMDAwMDUsIDB4MjA2ODFjYTUsIDB4MDAwMDAwNjgsIDB4MDAwMDAwMGYgfSwK Kwl7IDB4MDAwMDAwNDEsIDB4MjA3MDFjYTUsIDB4MDAwMDAwNjAsIDB4MDAwMDAwMTAgfSwKKwl7 IDB4MDAwMDAwNDAsIDB4MjA2ODE0YTUsIDB4MDAwMDAwNjgsIDB4MDAwMDAwNzAgfSwKKwl7IDB4 MDA2MDAwMDEsIDB4MjBhMDAwNjEsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAgfSwKKwl7IDB4MDAw MDAwMDUsIDB4MjA2YzFjODUsIDB4MDAwMDBlMDAsIDB4MDAwMDAwMDcgfSwKKwl7IDB4MDAwMDAw NDEsIDB4MjA2YzFjYTUsIDB4MDAwMDAwNmMsIDB4MDAwMDAwMDQgfSwKKwl7IDB4MDA2MDAwMDEs IDB4MjA4MDAwMjEsIDB4MDA4ZDAwMDAsIDB4MDAwMDAwMDAgfSwKKwl7IDB4MDAwMDAwMDEsIDB4 MjA4MDAwMjEsIDB4MDAwMDAwNmMsIDB4MDAwMDAwMDAgfSwKKwl7IDB4MDAwMDAwMDEsIDB4MjA4 NDAwMjEsIDB4MDAwMDAwNjgsIDB4MDAwMDAwMDAgfSwKKwl7IDB4MDAwMDAwMDEsIDB4MjA4ODAw NjEsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDMgfSwKKwl7IDB4MDAwMDAwMDUsIDB4MjA4YzBkMjEs IDB4MDAwMDAwODYsIDB4ZmZmZmZmZmYgfSwKKwl7IDB4MDU2MDAwMzIsIDB4MjBhMDFmYTEsIDB4 MDA4ZDAwODAsIDB4MDIxOTAwMDEgfSwKKwl7IDB4MDAwMDAwNDAsIDB4MjBhMDFjYTUsIDB4MDAw MDAwYTAsIDB4MDAwMDAwMDEgfSwKKwl7IDB4MDU2MDAwMzIsIDB4MjBhMDFmYTEsIDB4MDA4ZDAw ODAsIDB4MDQwYTgwMDEgfSwKKwl7IDB4MDIwMDAwNDAsIDB4MjAyODFjMjEsIDB4MDAwMDAwMjgs IDB4ZmZmZmZmZmYgfSwKKwl7IDB4MDAwMTAyMjAsIDB4MzQwMDFjMDAsIDB4MDAwMDE0MDAsIDB4 ZmZmZmZmZmMgfSwKKwl7IDB4MDAwMDAwMDEsIDB4MjYwMjAxMjgsIDB4MDAwMDAwMjQsIDB4MDAw MDAwMDAgfSwKKwl7IDB4MDAwMDAwMDEsIDB4MjIwMDAwZTQsIDB4MDAwMDAwMDAsIDB4MDAwMDAw MDAgfSwKKwl7IDB4MDAwMDAwMDEsIDB4MjIwODAxZWMsIDB4MDAwMDAwMDAsIDB4MDA3ZjAwN2Yg fSwKKwl7IDB4MDA2MDAwMDEsIDB4MjA0MDAwMjEsIDB4MDA4ZDAwMDAsIDB4MDAwMDAwMDAgfSwK Kwl7IDB4MDA2MDAwMDEsIDB4MmZlMDAwMjEsIDB4MDA4ZDAwMDAsIDB4MDAwMDAwMDAgfSwKKwl7 IDB4MDAyMDAwMDEsIDB4MjA0MDAxMjEsIDB4MDA0NTAwMjAsIDB4MDAwMDAwMDAgfSwKKwl7IDB4 MDAwMDAwMDEsIDB4MjA0ODAwNjEsIDB4MDAwMDAwMDAsIDB4MDAwZjAwMGYgfSwKKwl7IDB4MDAw MDAwMDUsIDB4MjA0YzBkMjEsIDB4MDAwMDAwNDYsIDB4ZmZmZmZmZWYgfSwKKwl7IDB4MDA4MDAw MDEsIDB4MjA2MDAwNjEsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAgfSwKKwl7IDB4MDA4MDAwMDEs IDB4MjA4MDAwNjEsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAgfSwKKwl7IDB4MDA4MDAwMDEsIDB4 MjBhMDAwNjEsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAgfSwKKwl7IDB4MDA4MDAwMDEsIDB4MjBj MDAwNjEsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAgfSwKKwl7IDB4MDA4MDAwMDEsIDB4MjBlMDAw NjEsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAgfSwKKwl7IDB4MDA4MDAwMDEsIDB4MjEwMDAwNjEs IDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAgfSwKKwl7IDB4MDA4MDAwMDEsIDB4MjEyMDAwNjEsIDB4 MDAwMDAwMDAsIDB4MDAwMDAwMDAgfSwKKwl7IDB4MDA4MDAwMDEsIDB4MjE0MDAwNjEsIDB4MDAw MDAwMDAsIDB4MDAwMDAwMDAgfSwKKwl7IDB4MDU2MDAwMzIsIDB4MjAwMDFmYTAsIDB4MDA4ZDAw NDAsIDB4MTIwYTgwMDAgfSwKKwl7IDB4MDAwMDAwNDAsIDB4MjA0MDJkMjEsIDB4MDAwMDAwMjAs IDB4MDAxMDAwMTAgfSwKKwl7IDB4MDU2MDAwMzIsIDB4MjAwMDFmYTAsIDB4MDA4ZDAwNDAsIDB4 MTIwYTgwMDAgfSwKKwl7IDB4MDIwMDAwNDAsIDB4MjIwODNkOGMsIDB4MDAwMDAyMDgsIDB4ZmZm ZmZmZmYgfSwKKwl7IDB4MDA4MDAwMDEsIDB4YTAwMDAxMDksIDB4MDAwMDA2MDIsIDB4MDAwMDAw MDAgfSwKKwl7IDB4MDAwMDAwNDAsIDB4MjIwMDFjODQsIDB4MDAwMDAyMDAsIDB4MDAwMDAwMjAg fSwKKwl7IDB4MDAwMTAyMjAsIDB4MzQwMDFjMDAsIDB4MDAwMDE0MDAsIDB4ZmZmZmZmZjggfSwK Kwl7IDB4MDc2MDAwMzIsIDB4MjAwMDFmYTAsIDB4MDA4ZDBmZTAsIDB4ODIwMDAwMTAgfSwKKwl7 IDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAgfSwKKwl7IDB4 MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAgfSwKKwl7IDB4MDAw MDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAgfSwKKwl7IDB4MDAwMDAw MDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAgfSwKKwl7IDB4MDAwMDAwMDAs IDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAgfSwKKwl7IDB4MDAwMDAwMDAsIDB4 MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAgfSwKKwl7IDB4MDAwMDAwMDAsIDB4MDAw MDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAgfSwKKwl7IDB4MDAwMDAwMDAsIDB4MDAwMDAw MDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAgfSwKK307CisKKy8qIE1lZGlhIENCIEtlcm5lbCBm b3IgZ2VuNy41IGRldmljZXMgKi8KK3N0YXRpYyBjb25zdCB1MzIgY2I3NV9rZXJuZWxbXVs0XSA9 IHsKKwl7IDB4MDAwMDAwMDEsIDB4MjYwMjAxMjgsIDB4MDAwMDAwMjQsIDB4MDAwMDAwMDAgfSwK Kwl7IDB4MDAwMDAwNDAsIDB4MjAyODBjMjEsIDB4MDAwMDAwMjgsIDB4MDAwMDAwMDEgfSwKKwl7 IDB4MDEwMDAwMTAsIDB4MjAwMDBjMjAsIDB4MDAwMDAwMmMsIDB4MDAwMDAwMDAgfSwKKwl7IDB4 MDAwMTAyMjAsIDB4MzQwMDFjMDAsIDB4MDAwMDE0MDAsIDB4MDAwMDAxNjAgfSwKKwl7IDB4MDA2 MDAwMDEsIDB4MjA2MDAwNjEsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAgfSwKKwl7IDB4MDAwMDAw MDgsIDB4MjA2MDFjODUsIDB4MDAwMDBlMDAsIDB4MDAwMDAwMGMgfSwKKwl7IDB4MDAwMDAwMDUs IDB4MjA2MDFjYTUsIDB4MDAwMDAwNjAsIDB4MDAwMDAwMDEgfSwKKwl7IDB4MDAwMDAwMDgsIDB4 MjA2NDFjODUsIDB4MDAwMDBlMDAsIDB4MDAwMDAwMGQgfSwKKwl7IDB4MDAwMDAwMDUsIDB4MjA2 NDFjYTUsIDB4MDAwMDAwNjQsIDB4MDAwMDAwMDMgfSwKKwl7IDB4MDAwMDAwNDEsIDB4MjA3NDI0 YTUsIDB4MDAwMDAwNjQsIDB4MDAwMDAwMzQgfSwKKwl7IDB4MDAwMDAwNDAsIDB4MjA2MDE0YTUs IDB4MDAwMDAwNjAsIDB4MDAwMDAwNzQgfSwKKwl7IDB4MDAwMDAwMDgsIDB4MjA2ODFjODUsIDB4 MDAwMDBlMDAsIDB4MDAwMDAwMDggfSwKKwl7IDB4MDAwMDAwMDUsIDB4MjA2ODFjYTUsIDB4MDAw MDAwNjgsIDB4MDAwMDAwMGYgfSwKKwl7IDB4MDAwMDAwNDEsIDB4MjA3MDFjYTUsIDB4MDAwMDAw NjAsIDB4MDAwMDAwMTAgfSwKKwl7IDB4MDAwMDAwNDAsIDB4MjA2ODE0YTUsIDB4MDAwMDAwNjgs IDB4MDAwMDAwNzAgfSwKKwl7IDB4MDA2MDAwMDEsIDB4MjBhMDAwNjEsIDB4MDAwMDAwMDAsIDB4 MDAwMDAwMDAgfSwKKwl7IDB4MDAwMDAwMDUsIDB4MjA2YzFjODUsIDB4MDAwMDBlMDAsIDB4MDAw MDAwMDcgfSwKKwl7IDB4MDAwMDAwNDEsIDB4MjA2YzFjYTUsIDB4MDAwMDAwNmMsIDB4MDAwMDAw MDQgfSwKKwl7IDB4MDA2MDAwMDEsIDB4MjA4MDAwMjEsIDB4MDA4ZDAwMDAsIDB4MDAwMDAwMDAg fSwKKwl7IDB4MDAwMDAwMDEsIDB4MjA4MDAwMjEsIDB4MDAwMDAwNmMsIDB4MDAwMDAwMDAgfSwK Kwl7IDB4MDAwMDAwMDEsIDB4MjA4NDAwMjEsIDB4MDAwMDAwNjgsIDB4MDAwMDAwMDAgfSwKKwl7 IDB4MDAwMDAwMDEsIDB4MjA4ODAwNjEsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDMgfSwKKwl7IDB4 MDAwMDAwMDUsIDB4MjA4YzBkMjEsIDB4MDAwMDAwODYsIDB4ZmZmZmZmZmYgfSwKKwl7IDB4MDU2 MDAwMzIsIDB4MjBhMDFmYTEsIDB4MDA4ZDAwODAsIDB4MDIxOTAwMDEgfSwKKwl7IDB4MDAwMDAw NDAsIDB4MjBhMDFjYTUsIDB4MDAwMDAwYTAsIDB4MDAwMDAwMDEgfSwKKwl7IDB4MDU2MDAwMzIs IDB4MjBhMDFmYTEsIDB4MDA4ZDAwODAsIDB4MDQwYTgwMDEgfSwKKwl7IDB4MDIwMDAwNDAsIDB4 MjAyODFjMjEsIDB4MDAwMDAwMjgsIDB4ZmZmZmZmZmYgfSwKKwl7IDB4MDAwMTAyMjAsIDB4MzQw MDFjMDAsIDB4MDAwMDE0MDAsIDB4ZmZmZmZmZTAgfSwKKwl7IDB4MDAwMDAwMDEsIDB4MjYwMjAx MjgsIDB4MDAwMDAwMjQsIDB4MDAwMDAwMDAgfSwKKwl7IDB4MDAwMDAwMDEsIDB4MjIwMDAwZTQs IDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAgfSwKKwl7IDB4MDAwMDAwMDEsIDB4MjIwODAxZWMsIDB4 MDAwMDAwMDAsIDB4MDA3ZjAwN2YgfSwKKwl7IDB4MDA2MDAwMDEsIDB4MjA0MDAwMjEsIDB4MDA4 ZDAwMDAsIDB4MDAwMDAwMDAgfSwKKwl7IDB4MDA2MDAwMDEsIDB4MmZlMDAwMjEsIDB4MDA4ZDAw MDAsIDB4MDAwMDAwMDAgfSwKKwl7IDB4MDAyMDAwMDEsIDB4MjA0MDAxMjEsIDB4MDA0NTAwMjAs IDB4MDAwMDAwMDAgfSwKKwl7IDB4MDAwMDAwMDEsIDB4MjA0ODAwNjEsIDB4MDAwMDAwMDAsIDB4 MDAwZjAwMGYgfSwKKwl7IDB4MDAwMDAwMDUsIDB4MjA0YzBkMjEsIDB4MDAwMDAwNDYsIDB4ZmZm ZmZmZWYgfSwKKwl7IDB4MDA4MDAwMDEsIDB4MjA2MDAwNjEsIDB4MDAwMDAwMDAsIDB4MDAwMDAw MDAgfSwKKwl7IDB4MDA4MDAwMDEsIDB4MjA4MDAwNjEsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAg fSwKKwl7IDB4MDA4MDAwMDEsIDB4MjBhMDAwNjEsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAgfSwK Kwl7IDB4MDA4MDAwMDEsIDB4MjBjMDAwNjEsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAgfSwKKwl7 IDB4MDA4MDAwMDEsIDB4MjBlMDAwNjEsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAgfSwKKwl7IDB4 MDA4MDAwMDEsIDB4MjEwMDAwNjEsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAgfSwKKwl7IDB4MDA4 MDAwMDEsIDB4MjEyMDAwNjEsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAgfSwKKwl7IDB4MDA4MDAw MDEsIDB4MjE0MDAwNjEsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAgfSwKKwl7IDB4MDU2MDAwMzIs IDB4MjAwMDFmYTAsIDB4MDA4ZDAwNDAsIDB4MTIwYTgwMDAgfSwKKwl7IDB4MDAwMDAwNDAsIDB4 MjA0MDJkMjEsIDB4MDAwMDAwMjAsIDB4MDAxMDAwMTAgfSwKKwl7IDB4MDU2MDAwMzIsIDB4MjAw MDFmYTAsIDB4MDA4ZDAwNDAsIDB4MTIwYTgwMDAgfSwKKwl7IDB4MDIwMDAwNDAsIDB4MjIwODNk OGMsIDB4MDAwMDAyMDgsIDB4ZmZmZmZmZmYgfSwKKwl7IDB4MDA4MDAwMDEsIDB4YTAwMDAxMDks IDB4MDAwMDA2MDIsIDB4MDAwMDAwMDAgfSwKKwl7IDB4MDAwMDAwNDAsIDB4MjIwMDFjODQsIDB4 MDAwMDAyMDAsIDB4MDAwMDAwMjAgfSwKKwl7IDB4MDAwMTAyMjAsIDB4MzQwMDFjMDAsIDB4MDAw MDE0MDAsIDB4ZmZmZmZmYzAgfSwKKwl7IDB4MDc2MDAwMzIsIDB4MjAwMDFmYTAsIDB4MDA4ZDBm ZTAsIDB4ODIwMDAwMTAgfSwKKwl7IDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAs IDB4MDAwMDAwMDAgfSwKKwl7IDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4 MDAwMDAwMDAgfSwKKwl7IDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAw MDAwMDAgfSwKKwl7IDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAw MDAgfSwKKwl7IDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAg fSwKKwl7IDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAgfSwK Kwl7IDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAgfSwKKwl7 IDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAsIDB4MDAwMDAwMDAgfSwKK307CisK K3N0cnVjdCBjYl9rZXJuZWwgeworCWNvbnN0IHZvaWQgKmRhdGE7CisJdTMyIHNpemU7Cit9Owor CisjZGVmaW5lIENCX0tFUk5FTChuYW1lKSB7IC5kYXRhID0gKG5hbWUpLCAuc2l6ZSA9IHNpemVv ZihuYW1lKSB9CisKK3N0YXRpYyBjb25zdCBzdHJ1Y3QgY2Jfa2VybmVsIGNiX2tlcm5lbF9nZW43 ID0gQ0JfS0VSTkVMKGNiN19rZXJuZWwpOworc3RhdGljIGNvbnN0IHN0cnVjdCBjYl9rZXJuZWwg Y2Jfa2VybmVsX2hzdyA9IENCX0tFUk5FTChjYjc1X2tlcm5lbCk7CisKK3N0cnVjdCBiYXRjaF9j aHVuayB7CisJc3RydWN0IGk5MTVfdm1hICp2bWE7CisJdTMyIG9mZnNldDsKKwl1MzIgKnN0YXJ0 OworCXUzMiAqZW5kOworCXUzMiBtYXhfaXRlbXM7Cit9OworCitzdHJ1Y3QgYmF0Y2hfdmFscyB7 CisJdTMyIG1heF9wcmltaXRpdmVzOworCXUzMiBtYXhfdXJiX2VudHJpZXM7CisJdTMyIGNtZF9z aXplOworCXUzMiBzdGF0ZV9zaXplOworCXUzMiBzdGF0ZV9zdGFydDsKKwl1MzIgYmF0Y2hfc2l6 ZTsKKwl1MzIgc3VyZmFjZV9oZWlnaHQ7CisJdTMyIHN1cmZhY2Vfd2lkdGg7CisJdTMyIHNjcmF0 Y2hfc2l6ZTsKKwl1MzIgbWF4X3NpemU7Cit9OworCitzdGF0aWMgdm9pZAorYmF0Y2hfZ2V0X2Rl ZmF1bHRzKHN0cnVjdCBkcm1faTkxNV9wcml2YXRlICppOTE1LCBzdHJ1Y3QgYmF0Y2hfdmFscyAq YnYpCit7CisJaWYgKElTX0hBU1dFTEwoaTkxNSkpIHsKKwkJYnYtPm1heF9wcmltaXRpdmVzID0g MjgwOworCQlidi0+bWF4X3VyYl9lbnRyaWVzID0gTUFYX1VSQl9FTlRSSUVTOworCQlidi0+c3Vy ZmFjZV9oZWlnaHQgPSAxNiAqIDE2OworCQlidi0+c3VyZmFjZV93aWR0aCA9IDMyICogMiAqIDE2 OworCX0gZWxzZSB7CisJCWJ2LT5tYXhfcHJpbWl0aXZlcyA9IDEyODsKKwkJYnYtPm1heF91cmJf ZW50cmllcyA9IE1BWF9VUkJfRU5UUklFUyAvIDI7CisJCWJ2LT5zdXJmYWNlX2hlaWdodCA9IDE2 ICogODsKKwkJYnYtPnN1cmZhY2Vfd2lkdGggPSAzMiAqIDE2OworCX0KKwlidi0+Y21kX3NpemUg PSBidi0+bWF4X3ByaW1pdGl2ZXMgKiA0MDk2OworCWJ2LT5zdGF0ZV9zaXplID0gU1RBVEVfU0la RTsKKwlidi0+c3RhdGVfc3RhcnQgPSBidi0+Y21kX3NpemU7CisJYnYtPmJhdGNoX3NpemUgPSBi di0+Y21kX3NpemUgKyBidi0+c3RhdGVfc2l6ZTsKKwlidi0+c2NyYXRjaF9zaXplID0gYnYtPnN1 cmZhY2VfaGVpZ2h0ICogYnYtPnN1cmZhY2Vfd2lkdGg7CisJYnYtPm1heF9zaXplID0gYnYtPmJh dGNoX3NpemUgKyBidi0+c2NyYXRjaF9zaXplOworfQorCitzdGF0aWMgdm9pZCBiYXRjaF9pbml0 KHN0cnVjdCBiYXRjaF9jaHVuayAqYmMsCisJCSAgICAgICBzdHJ1Y3QgaTkxNV92bWEgKnZtYSwK KwkJICAgICAgIHUzMiAqc3RhcnQsIHUzMiBvZmZzZXQsIHUzMiBtYXhfYnl0ZXMpCit7CisJYmMt PnZtYSA9IHZtYTsKKwliYy0+b2Zmc2V0ID0gb2Zmc2V0OworCWJjLT5zdGFydCA9IHN0YXJ0ICsg YmMtPm9mZnNldCAvIHNpemVvZigqYmMtPnN0YXJ0KTsKKwliYy0+ZW5kID0gYmMtPnN0YXJ0Owor CWJjLT5tYXhfaXRlbXMgPSBtYXhfYnl0ZXMgLyBzaXplb2YoKmJjLT5zdGFydCk7Cit9CisKK3N0 YXRpYyB1MzIgYmF0Y2hfb2Zmc2V0KGNvbnN0IHN0cnVjdCBiYXRjaF9jaHVuayAqYmMsIHUzMiAq Y3MpCit7CisJcmV0dXJuIChjcyAtIGJjLT5zdGFydCkgKiBzaXplb2YoKmJjLT5zdGFydCkgKyBi Yy0+b2Zmc2V0OworfQorCitzdGF0aWMgdTMyIGJhdGNoX2FkZHIoY29uc3Qgc3RydWN0IGJhdGNo X2NodW5rICpiYykKK3sKKwlyZXR1cm4gYmMtPnZtYS0+bm9kZS5zdGFydDsKK30KKworc3RhdGlj IHZvaWQgYmF0Y2hfYWRkKHN0cnVjdCBiYXRjaF9jaHVuayAqYmMsIGNvbnN0IHUzMiBkKQorewor CUdFTV9ERUJVR19XQVJOX09OKChiYy0+ZW5kIC0gYmMtPnN0YXJ0KSA+PSBiYy0+bWF4X2l0ZW1z KTsKKwkqYmMtPmVuZCsrID0gZDsKK30KKworc3RhdGljIHUzMiAqYmF0Y2hfYWxsb2NfaXRlbXMo c3RydWN0IGJhdGNoX2NodW5rICpiYywgdTMyIGFsaWduLCB1MzIgaXRlbXMpCit7CisJdTMyICpt YXA7CisKKwlpZiAoYWxpZ24pIHsKKwkJdTMyICplbmQgPSBwdHJfYWxpZ24oYmMtPmVuZCwgYWxp Z24pOworCisJCW1lbXNldDMyKGJjLT5lbmQsIDAsIGVuZCAtIGJjLT5lbmQpOworCQliYy0+ZW5k ID0gZW5kOworCX0KKworCW1hcCA9IGJjLT5lbmQ7CisJYmMtPmVuZCArPSBpdGVtczsKKworCXJl dHVybiBtYXA7Cit9CisKK3N0YXRpYyB1MzIgKmJhdGNoX2FsbG9jX2J5dGVzKHN0cnVjdCBiYXRj aF9jaHVuayAqYmMsIHUzMiBhbGlnbiwgdTMyIGJ5dGVzKQoreworCUdFTV9CVUdfT04oIUlTX0FM SUdORUQoYnl0ZXMsIHNpemVvZigqYmMtPnN0YXJ0KSkpOworCXJldHVybiBiYXRjaF9hbGxvY19p dGVtcyhiYywgYWxpZ24sIGJ5dGVzIC8gc2l6ZW9mKCpiYy0+c3RhcnQpKTsKK30KKworc3RhdGlj IHUzMgorZ2VuN19maWxsX3N1cmZhY2Vfc3RhdGUoc3RydWN0IGJhdGNoX2NodW5rICpzdGF0ZSwK KwkJCWNvbnN0IHUzMiBkc3Rfb2Zmc2V0LAorCQkJY29uc3Qgc3RydWN0IGJhdGNoX3ZhbHMgKmJ2 KQoreworCXUzMiBzdXJmYWNlX2ggPSBidi0+c3VyZmFjZV9oZWlnaHQ7CisJdTMyIHN1cmZhY2Vf dyA9IGJ2LT5zdXJmYWNlX3dpZHRoOworCXUzMiAqY3MgPSBiYXRjaF9hbGxvY19pdGVtcyhzdGF0 ZSwgMzIsIDgpOworCXUzMiBvZmZzZXQgPSBiYXRjaF9vZmZzZXQoc3RhdGUsIGNzKTsKKworI2Rl ZmluZSBTVVJGQUNFXzJEIDEKKyNkZWZpbmUgU1VSRkFDRUZPUk1BVF9COEc4UjhBOF9VTk9STSAw eDBDMAorI2RlZmluZSBSRU5ERVJfQ0FDSEVfUkVBRF9XUklURSAxCisKKwkqY3MrKyA9IFNVUkZB Q0VfMkQgPDwgMjkgfAorCQkoU1VSRkFDRUZPUk1BVF9COEc4UjhBOF9VTk9STSA8PCAxOCkgfAor CQkoUkVOREVSX0NBQ0hFX1JFQURfV1JJVEUgPDwgOCk7CisKKwkqY3MrKyA9IGJhdGNoX2FkZHIo c3RhdGUpICsgZHN0X29mZnNldDsKKworCSpjcysrID0gKChzdXJmYWNlX2ggLyA0IC0gMSkgPDwg MTYpIHwgKHN1cmZhY2VfdyAvIDQgLSAxKTsKKwkqY3MrKyA9IHN1cmZhY2VfdzsKKwkqY3MrKyA9 IDA7CisJKmNzKysgPSAwOworCSpjcysrID0gMDsKKyNkZWZpbmUgU0hBREVSX0NIQU5ORUxTKHIs IGcsIGIsIGEpIFwKKwkoKChyKSA8PCAyNSkgfCAoKGcpIDw8IDIyKSB8ICgoYikgPDwgMTkpIHwg KChhKSA8PCAxNikpCisJKmNzKysgPSBTSEFERVJfQ0hBTk5FTFMoNCwgNSwgNiwgNyk7CisJYmF0 Y2hfYWR2YW5jZShzdGF0ZSwgY3MpOworCisJcmV0dXJuIG9mZnNldDsKK30KKworc3RhdGljIHUz MgorZ2VuN19maWxsX2JpbmRpbmdfdGFibGUoc3RydWN0IGJhdGNoX2NodW5rICpzdGF0ZSwKKwkJ CWNvbnN0IHN0cnVjdCBiYXRjaF92YWxzICpidikKK3sKKwl1MzIgKmNzID0gYmF0Y2hfYWxsb2Nf aXRlbXMoc3RhdGUsIDMyLCA4KTsKKwl1MzIgb2Zmc2V0ID0gYmF0Y2hfb2Zmc2V0KHN0YXRlLCBj cyk7CisJdTMyIHN1cmZhY2Vfc3RhcnQ7CisKKwlzdXJmYWNlX3N0YXJ0ID0gZ2VuN19maWxsX3N1 cmZhY2Vfc3RhdGUoc3RhdGUsIGJ2LT5iYXRjaF9zaXplLCBidik7CisJKmNzKysgPSBzdXJmYWNl X3N0YXJ0IC0gc3RhdGUtPm9mZnNldDsKKwkqY3MrKyA9IDA7CisJKmNzKysgPSAwOworCSpjcysr ID0gMDsKKwkqY3MrKyA9IDA7CisJKmNzKysgPSAwOworCSpjcysrID0gMDsKKwkqY3MrKyA9IDA7 CisJYmF0Y2hfYWR2YW5jZShzdGF0ZSwgY3MpOworCisJcmV0dXJuIG9mZnNldDsKK30KKworc3Rh dGljIHUzMgorZ2VuN19maWxsX2tlcm5lbF9kYXRhKHN0cnVjdCBiYXRjaF9jaHVuayAqc3RhdGUs CisJCSAgICAgIGNvbnN0IHUzMiAqZGF0YSwKKwkJICAgICAgY29uc3QgdTMyIHNpemUpCit7CisJ cmV0dXJuIGJhdGNoX29mZnNldChzdGF0ZSwKKwkJCSAgICBtZW1jcHkoYmF0Y2hfYWxsb2NfYnl0 ZXMoc3RhdGUsIDY0LCBzaXplKSwKKwkJCQkgICBkYXRhLCBzaXplKSk7Cit9CisKK3N0YXRpYyB1 MzIKK2dlbjdfZmlsbF9pbnRlcmZhY2VfZGVzY3JpcHRvcihzdHJ1Y3QgYmF0Y2hfY2h1bmsgKnN0 YXRlLAorCQkJICAgICAgIGNvbnN0IHN0cnVjdCBiYXRjaF92YWxzICpidiwKKwkJCSAgICAgICBj b25zdCBzdHJ1Y3QgY2Jfa2VybmVsICprZXJuZWwsCisJCQkgICAgICAgdW5zaWduZWQgaW50IGNv dW50KQoreworCXUzMiAqY3MgPSBiYXRjaF9hbGxvY19pdGVtcyhzdGF0ZSwgMzIsIDggKiBjb3Vu dCk7CisJdTMyIG9mZnNldCA9IGJhdGNoX29mZnNldChzdGF0ZSwgY3MpOworCisJKmNzKysgPSBn ZW43X2ZpbGxfa2VybmVsX2RhdGEoc3RhdGUsIGtlcm5lbC0+ZGF0YSwga2VybmVsLT5zaXplKTsK KwkqY3MrKyA9ICgxIDw8IDcpIHwgKDEgPDwgMTMpOworCSpjcysrID0gMDsKKwkqY3MrKyA9IChn ZW43X2ZpbGxfYmluZGluZ190YWJsZShzdGF0ZSwgYnYpIC0gc3RhdGUtPm9mZnNldCkgfCAxOwor CSpjcysrID0gMDsKKwkqY3MrKyA9IDA7CisJKmNzKysgPSAwOworCSpjcysrID0gMDsKKwkvKiAx IC0gNjNkdW1teSBpZGRzICovCisJbWVtc2V0MzIoY3MsIDB4MDAsIChjb3VudCAtIDEpICogOCk7 CisJYmF0Y2hfYWR2YW5jZShzdGF0ZSwgY3MpOworCisJcmV0dXJuIG9mZnNldDsKK30KKworc3Rh dGljIHZvaWQKK2dlbjdfZW1pdF9zdGF0ZV9iYXNlX2FkZHJlc3Moc3RydWN0IGJhdGNoX2NodW5r ICpiYXRjaCwKKwkJCSAgICAgdTMyIHN1cmZhY2Vfc3RhdGVfYmFzZSkKK3sKKwl1MzIgKmNzID0g YmF0Y2hfYWxsb2NfaXRlbXMoYmF0Y2gsIDAsIDEyKTsKKworCSpjcysrID0gU1RBVEVfQkFTRV9B RERSRVNTIHwgKDEyIC0gMik7CisJLyogZ2VuZXJhbCAqLworCSpjcysrID0gYmF0Y2hfYWRkcihi YXRjaCkgfCBCQVNFX0FERFJFU1NfTU9ESUZZOworCS8qIHN1cmZhY2UgKi8KKwkqY3MrKyA9IGJh dGNoX2FkZHIoYmF0Y2gpIHwgc3VyZmFjZV9zdGF0ZV9iYXNlIHwgQkFTRV9BRERSRVNTX01PRElG WTsKKwkvKiBkeW5hbWljICovCisJKmNzKysgPSBiYXRjaF9hZGRyKGJhdGNoKSB8IEJBU0VfQURE UkVTU19NT0RJRlk7CisJLyogaW5kaXJlY3QgKi8KKwkqY3MrKyA9IGJhdGNoX2FkZHIoYmF0Y2gp IHwgQkFTRV9BRERSRVNTX01PRElGWTsKKwkvKiBpbnN0cnVjdGlvbiAqLworCSpjcysrID0gYmF0 Y2hfYWRkcihiYXRjaCkgfCBCQVNFX0FERFJFU1NfTU9ESUZZOworCisJLyogZ2VuZXJhbC9keW5h bWljL2luZGlyZWN0L2luc3RydWN0aW9uIGFjY2VzcyBCb3VuZCAqLworCSpjcysrID0gMDsKKwkq Y3MrKyA9IEJBU0VfQUREUkVTU19NT0RJRlk7CisJKmNzKysgPSAwOworCSpjcysrID0gQkFTRV9B RERSRVNTX01PRElGWTsKKwkqY3MrKyA9IDA7CisJKmNzKysgPSAwOworCWJhdGNoX2FkdmFuY2Uo YmF0Y2gsIGNzKTsKK30KKworc3RhdGljIHZvaWQKK2dlbjdfZW1pdF92ZmVfc3RhdGUoc3RydWN0 IGJhdGNoX2NodW5rICpiYXRjaCwKKwkJICAgIGNvbnN0IHN0cnVjdCBiYXRjaF92YWxzICpidiwK KwkJICAgIHUzMiB1cmJfc2l6ZSwgdTMyIGN1cmJlX3NpemUsCisJCSAgICB1MzIgbW9kZSkKK3sK Kwl1MzIgdXJiX2VudHJpZXMgPSBidi0+bWF4X3VyYl9lbnRyaWVzOworCXUzMiB0aHJlYWRzID0g YnYtPm1heF9wcmltaXRpdmVzIC0gMTsKKwl1MzIgKmNzID0gYmF0Y2hfYWxsb2NfaXRlbXMoYmF0 Y2gsIDMyLCA4KTsKKworCSpjcysrID0gTUVESUFfVkZFX1NUQVRFIHwgKDggLSAyKTsKKworCS8q IHNjcmF0Y2ggYnVmZmVyICovCisJKmNzKysgPSAwOworCisJLyogbnVtYmVyIG9mIHRocmVhZHMg JiB1cmIgZW50cmllcyBmb3IgR1BHUFUgdnMgTWVkaWEgTW9kZSAqLworCSpjcysrID0gdGhyZWFk cyA8PCAxNiB8IHVyYl9lbnRyaWVzIDw8IDggfCBtb2RlIDw8IDI7CisKKwkqY3MrKyA9IDA7CisK KwkvKiB1cmIgZW50cnkgc2l6ZSAmIGN1cmJlIHNpemUgaW4gMjU2IGJpdHMgdW5pdCAqLworCSpj cysrID0gdXJiX3NpemUgPDwgMTYgfCBjdXJiZV9zaXplOworCisJLyogc2NvcmVib2FyZCAqLwor CSpjcysrID0gMDsKKwkqY3MrKyA9IDA7CisJKmNzKysgPSAwOworCWJhdGNoX2FkdmFuY2UoYmF0 Y2gsIGNzKTsKK30KKworc3RhdGljIHZvaWQKK2dlbjdfZW1pdF9pbnRlcmZhY2VfZGVzY3JpcHRv cl9sb2FkKHN0cnVjdCBiYXRjaF9jaHVuayAqYmF0Y2gsCisJCQkJICAgIGNvbnN0IHUzMiBpbnRl cmZhY2VfZGVzY3JpcHRvciwKKwkJCQkgICAgdW5zaWduZWQgaW50IGNvdW50KQoreworCXUzMiAq Y3MgPSBiYXRjaF9hbGxvY19pdGVtcyhiYXRjaCwgOCwgNCk7CisKKwkqY3MrKyA9IE1FRElBX0lO VEVSRkFDRV9ERVNDUklQVE9SX0xPQUQgfCAoNCAtIDIpOworCSpjcysrID0gMDsKKwkqY3MrKyA9 IGNvdW50ICogOCAqIHNpemVvZigqY3MpOworCisJLyoKKwkgKiBpbnRlcmZhY2UgZGVzY3JpcHRv ciBhZGRyZXNzIC0gaXQgaXMgcmVsYXRpdmUgdG8gdGhlIGR5bmFtaWNzIGJhc2UKKwkgKiBhZGRy ZXNzCisJICovCisJKmNzKysgPSBpbnRlcmZhY2VfZGVzY3JpcHRvcjsKKwliYXRjaF9hZHZhbmNl KGJhdGNoLCBjcyk7Cit9CisKK3N0YXRpYyB2b2lkCitnZW43X2VtaXRfbWVkaWFfb2JqZWN0KHN0 cnVjdCBiYXRjaF9jaHVuayAqYmF0Y2gsCisJCSAgICAgICB1bnNpZ25lZCBpbnQgbWVkaWFfb2Jq ZWN0X2luZGV4KQoreworCXVuc2lnbmVkIGludCB4X29mZnNldCA9IChtZWRpYV9vYmplY3RfaW5k ZXggJSAxNikgKiA2NDsKKwl1bnNpZ25lZCBpbnQgeV9vZmZzZXQgPSAobWVkaWFfb2JqZWN0X2lu ZGV4IC8gMTYpICogMTY7CisJdW5zaWduZWQgaW50IGlubGluZV9kYXRhX3NpemU7CisJdW5zaWdu ZWQgaW50IG1lZGlhX2JhdGNoX3NpemU7CisJdW5zaWduZWQgaW50IGk7CisJdTMyICpjczsKKwor CWlubGluZV9kYXRhX3NpemUgPSAxMTIgKiA4OworCW1lZGlhX2JhdGNoX3NpemUgPSBpbmxpbmVf ZGF0YV9zaXplICsgNjsKKworCWNzID0gYmF0Y2hfYWxsb2NfaXRlbXMoYmF0Y2gsIDgsIG1lZGlh X2JhdGNoX3NpemUpOworCisJKmNzKysgPSBNRURJQV9PQkpFQ1QgfCAobWVkaWFfYmF0Y2hfc2l6 ZSAtIDIpOworCisJLyogaW50ZXJmYWNlIGRlc2NyaXB0b3Igb2Zmc2V0ICovCisJKmNzKysgPSAw OworCisJLyogd2l0aG91dCBpbmRpcmVjdCBkYXRhICovCisJKmNzKysgPSAwOworCSpjcysrID0g MDsKKworCS8qIHNjb3JlYm9hcmQgKi8KKwkqY3MrKyA9IDA7CisJKmNzKysgPSAwOworCisJLyog aW5saW5lICovCisJKmNzKysgPSAoeV9vZmZzZXQgPDwgMTYpIHwgKHhfb2Zmc2V0KTsKKwkqY3Mr KyA9IDA7CisJKmNzKysgPSBHVDNfSU5MSU5FX0RBVEFfREVMQVlTOworCWZvciAoaSA9IDM7IGkg PCBpbmxpbmVfZGF0YV9zaXplOyBpKyspCisJCSpjcysrID0gMDsKKworCWJhdGNoX2FkdmFuY2Uo YmF0Y2gsIGNzKTsKK30KKworc3RhdGljIHZvaWQgZ2VuN19lbWl0X3BpcGVsaW5lX2ZsdXNoKHN0 cnVjdCBiYXRjaF9jaHVuayAqYmF0Y2gpCit7CisJdTMyICpjcyA9IGJhdGNoX2FsbG9jX2l0ZW1z KGJhdGNoLCAwLCA1KTsKKworCSpjcysrID0gR0ZYX09QX1BJUEVfQ09OVFJPTCg1KTsKKwkqY3Mr KyA9IFBJUEVfQ09OVFJPTF9TVEFURV9DQUNIRV9JTlZBTElEQVRFIHwKKwkJUElQRV9DT05UUk9M X0dMT0JBTF9HVFRfSVZCOworCSpjcysrID0gMDsKKwkqY3MrKyA9IDA7CisJKmNzKysgPSAwOwor CWJhdGNoX2FkdmFuY2UoYmF0Y2gsIGNzKTsKK30KKworc3RhdGljIHZvaWQgZW1pdF9iYXRjaChz dHJ1Y3QgaTkxNV92bWEgKiBjb25zdCB2bWEsCisJCSAgICAgICB1MzIgKnN0YXJ0LAorCQkgICAg ICAgY29uc3Qgc3RydWN0IGJhdGNoX3ZhbHMgKmJ2KQoreworCXN0cnVjdCBkcm1faTkxNV9wcml2 YXRlICppOTE1ID0gdm1hLT52bS0+aTkxNTsKKwl1bnNpZ25lZCBpbnQgZGVzY19jb3VudCA9IDY0 OworCWNvbnN0IHUzMiB1cmJfc2l6ZSA9IDExMjsKKwlzdHJ1Y3QgYmF0Y2hfY2h1bmsgY21kcywg c3RhdGU7CisJdTMyIGludGVyZmFjZV9kZXNjcmlwdG9yOworCXVuc2lnbmVkIGludCBpOworCisJ YmF0Y2hfaW5pdCgmY21kcywgdm1hLCBzdGFydCwgMCwgYnYtPmNtZF9zaXplKTsKKwliYXRjaF9p bml0KCZzdGF0ZSwgdm1hLCBzdGFydCwgYnYtPnN0YXRlX3N0YXJ0LCBidi0+c3RhdGVfc2l6ZSk7 CisKKwlpbnRlcmZhY2VfZGVzY3JpcHRvciA9CisJCWdlbjdfZmlsbF9pbnRlcmZhY2VfZGVzY3Jp cHRvcigmc3RhdGUsIGJ2LAorCQkJCQkgICAgICAgSVNfSEFTV0VMTChpOTE1KSA/CisJCQkJCSAg ICAgICAmY2Jfa2VybmVsX2hzdyA6ICZjYl9rZXJuZWxfZ2VuNywKKwkJCQkJICAgICAgIGRlc2Nf Y291bnQpOworCWdlbjdfZW1pdF9waXBlbGluZV9mbHVzaCgmY21kcyk7CisJYmF0Y2hfYWRkKCZj bWRzLCBQSVBFTElORV9TRUxFQ1QgfCBQSVBFTElORV9TRUxFQ1RfTUVESUEpOworCWJhdGNoX2Fk ZCgmY21kcywgTUlfTk9PUCk7CisJZ2VuN19lbWl0X3N0YXRlX2Jhc2VfYWRkcmVzcygmY21kcywg aW50ZXJmYWNlX2Rlc2NyaXB0b3IpOworCWdlbjdfZW1pdF9waXBlbGluZV9mbHVzaCgmY21kcyk7 CisKKwlnZW43X2VtaXRfdmZlX3N0YXRlKCZjbWRzLCBidiwgdXJiX3NpemUgLSAxLCAwLCAwKTsK KworCWdlbjdfZW1pdF9pbnRlcmZhY2VfZGVzY3JpcHRvcl9sb2FkKCZjbWRzLAorCQkJCQkgICAg aW50ZXJmYWNlX2Rlc2NyaXB0b3IsCisJCQkJCSAgICBkZXNjX2NvdW50KTsKKworCWZvciAoaSA9 IDA7IGkgPCBidi0+bWF4X3ByaW1pdGl2ZXM7IGkrKykKKwkJZ2VuN19lbWl0X21lZGlhX29iamVj dCgmY21kcywgaSk7CisKKwliYXRjaF9hZGQoJmNtZHMsIE1JX0JBVENIX0JVRkZFUl9FTkQpOwor fQorCitpbnQgZ2VuN19zZXR1cF9jbGVhcl9ncHJfYmIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq IGNvbnN0IGVuZ2luZSwKKwkJCSAgICBzdHJ1Y3QgaTkxNV92bWEgKiBjb25zdCB2bWEpCit7CisJ c3RydWN0IGJhdGNoX3ZhbHMgYnY7CisJdTMyICpiYXRjaDsKKworCWJhdGNoX2dldF9kZWZhdWx0 cyhlbmdpbmUtPmk5MTUsICZidik7CisJaWYgKCF2bWEpCisJCXJldHVybiBidi5tYXhfc2l6ZTsK KworCUdFTV9CVUdfT04odm1hLT5vYmotPmJhc2Uuc2l6ZSA8IGJ2Lm1heF9zaXplKTsKKworCWJh dGNoID0gaTkxNV9nZW1fb2JqZWN0X3Bpbl9tYXAodm1hLT5vYmosIEk5MTVfTUFQX1dDKTsKKwlp ZiAoSVNfRVJSKGJhdGNoKSkKKwkJcmV0dXJuIFBUUl9FUlIoYmF0Y2gpOworCisJZW1pdF9iYXRj aCh2bWEsIG1lbXNldChiYXRjaCwgMCwgYnYubWF4X3NpemUpLCAmYnYpOworCisJaTkxNV9nZW1f b2JqZWN0X2ZsdXNoX21hcCh2bWEtPm9iaik7CisJaTkxNV9nZW1fb2JqZWN0X3VucGluX21hcCh2 bWEtPm9iaik7CisKKwlyZXR1cm4gMDsKK30KZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9p OTE1L2d0L2dlbjdfcmVuZGVyY2xlYXIuaCBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2dlbjdf cmVuZGVyY2xlYXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAuLmJi MTAwNzQ4ZTJjNgotLS0gL2Rldi9udWxsCisrKyBiL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2dl bjdfcmVuZGVyY2xlYXIuaApAQCAtMCwwICsxLDE1IEBACisvKiBTUERYLUxpY2Vuc2UtSWRlbnRp ZmllcjogTUlUICovCisvKgorICogQ29weXJpZ2h0IMKpIDIwMTkgSW50ZWwgQ29ycG9yYXRpb24K KyAqLworCisjaWZuZGVmIF9fR0VON19SRU5ERVJDTEVBUl9IX18KKyNkZWZpbmUgX19HRU43X1JF TkRFUkNMRUFSX0hfXworCitzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzOworc3RydWN0IGk5MTVfdm1h OworCitpbnQgZ2VuN19zZXR1cF9jbGVhcl9ncHJfYmIoc3RydWN0IGludGVsX2VuZ2luZV9jcyAq IGNvbnN0IGVuZ2luZSwKKwkJCSAgICBzdHJ1Y3QgaTkxNV92bWEgKiBjb25zdCB2bWEpOworCisj ZW5kaWYgLyogX19HRU43X1JFTkRFUkNMRUFSX0hfXyAqLwpkaWZmIC0tZ2l0IGEvZHJpdmVycy9n cHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3B1X2NvbW1hbmRzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9ndC9pbnRlbF9ncHVfY29tbWFuZHMuaAppbmRleCA1MWI4NzE4NTEzYmMuLmYwNDIxNGE1NGY3 NSAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3B1X2NvbW1hbmRz LmgKKysrIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfZ3B1X2NvbW1hbmRzLmgKQEAg LTI5MiwxMCArMjkyLDIxIEBACiAjZGVmaW5lIE1JX1NUT1JFX1VSQl9NRU0gICAgICAgIE1JX0lO U1RSKDB4MkQsIDApCiAjZGVmaW5lIE1JX0NPTkRJVElPTkFMX0JBVENIX0JVRkZFUl9FTkQgTUlf SU5TVFIoMHgzNiwgMCkKIAotI2RlZmluZSBQSVBFTElORV9TRUxFQ1QgICAgICAgICAgICAgICAg KCgweDM8PDI5KXwoMHgxPDwyNyl8KDB4MTw8MjQpfCgweDQ8PDE2KSkKLSNkZWZpbmUgR0ZYX09Q XzNEU1RBVEVfVkZfU1RBVElTVElDUyAgICgoMHgzPDwyOSl8KDB4MTw8MjcpfCgweDA8PDI0KXwo MHhCPDwxNikpCi0jZGVmaW5lIE1FRElBX1ZGRV9TVEFURSAgICAgICAgICAgICAgICAoKDB4Mzw8 MjkpfCgweDI8PDI3KXwoMHgwPDwyNCl8KDB4MDw8MTYpKQorI2RlZmluZSBTVEFURV9CQVNFX0FE RFJFU1MgXAorCSgoMHgzIDw8IDI5KSB8ICgweDAgPDwgMjcpIHwgKDB4MSA8PCAyNCkgfCAoMHgx IDw8IDE2KSkKKyNkZWZpbmUgQkFTRV9BRERSRVNTX01PRElGWQkJUkVHX0JJVCgwKQorI2RlZmlu ZSBQSVBFTElORV9TRUxFQ1QgXAorCSgoMHgzIDw8IDI5KSB8ICgweDEgPDwgMjcpIHwgKDB4MSA8 PCAyNCkgfCAoMHg0IDw8IDE2KSkKKyNkZWZpbmUgUElQRUxJTkVfU0VMRUNUX01FRElBCSAgICAg ICBSRUdfQklUKDApCisjZGVmaW5lIEdGWF9PUF8zRFNUQVRFX1ZGX1NUQVRJU1RJQ1MgXAorCSgo MHgzIDw8IDI5KSB8ICgweDEgPDwgMjcpIHwgKDB4MCA8PCAyNCkgfCAoMHhCIDw8IDE2KSkKKyNk ZWZpbmUgTUVESUFfVkZFX1NUQVRFIFwKKwkoKDB4MyA8PCAyOSkgfCAoMHgyIDw8IDI3KSB8ICgw eDAgPDwgMjQpIHwgKDB4MCA8PCAxNikpCiAjZGVmaW5lICBNRURJQV9WRkVfU1RBVEVfTU1JT19B Q0NFU1NfTUFTSyAoMHgxOCkKKyNkZWZpbmUgTUVESUFfSU5URVJGQUNFX0RFU0NSSVBUT1JfTE9B RCBcCisJKCgweDMgPDwgMjkpIHwgKDB4MiA8PCAyNykgfCAoMHgwIDw8IDI0KSB8ICgweDIgPDwg MTYpKQorI2RlZmluZSBNRURJQV9PQkpFQ1QgXAorCSgoMHgzIDw8IDI5KSB8ICgweDIgPDwgMjcp IHwgKDB4MSA8PCAyNCkgfCAoMHgwIDw8IDE2KSkKICNkZWZpbmUgR1BHUFVfT0JKRUNUICAgICAg ICAgICAgICAgICAgICgoMHgzPDwyOSl8KDB4Mjw8MjcpfCgweDE8PDI0KXwoMHg0PDwxNikpCiAj ZGVmaW5lIEdQR1BVX1dBTEtFUiAgICAgICAgICAgICAgICAgICAoKDB4Mzw8MjkpfCgweDI8PDI3 KXwoMHgxPDwyNCl8KDB4NTw8MTYpKQogI2RlZmluZSBHRlhfT1BfM0RTVEFURV9EWDlfQ09OU1RB TlRGX1ZTIFwKZGlmZiAtLWdpdCBhL2RyaXZlcnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jpbmdf c3VibWlzc2lvbi5jIGIvZHJpdmVycy9ncHUvZHJtL2k5MTUvZ3QvaW50ZWxfcmluZ19zdWJtaXNz aW9uLmMKaW5kZXggNTg1MDAwMzJjOTkzLi43MzZmMDBlMDg2NDggMTAwNjQ0Ci0tLSBhL2RyaXZl cnMvZ3B1L2RybS9pOTE1L2d0L2ludGVsX3Jpbmdfc3VibWlzc2lvbi5jCisrKyBiL2RyaXZlcnMv Z3B1L2RybS9pOTE1L2d0L2ludGVsX3Jpbmdfc3VibWlzc2lvbi5jCkBAIC0zNCw2ICszNCw3IEBA CiAjaW5jbHVkZSAiZ2VtL2k5MTVfZ2VtX2NvbnRleHQuaCIKIAogI2luY2x1ZGUgImdlbjZfcHBn dHQuaCIKKyNpbmNsdWRlICJnZW43X3JlbmRlcmNsZWFyLmgiCiAjaW5jbHVkZSAiaTkxNV9kcnYu aCIKICNpbmNsdWRlICJpOTE1X3RyYWNlLmgiCiAjaW5jbHVkZSAiaW50ZWxfY29udGV4dC5oIgpA QCAtMjAwNiw3ICsyMDA3LDcgQEAgc3RhdGljIHZvaWQgc2V0dXBfdmVjcyhzdHJ1Y3QgaW50ZWxf ZW5naW5lX2NzICplbmdpbmUpCiBzdGF0aWMgaW50IGdlbjdfY3R4X3N3aXRjaF9iYl9zZXR1cChz dHJ1Y3QgaW50ZWxfZW5naW5lX2NzICogY29uc3QgZW5naW5lLAogCQkJCSAgICBzdHJ1Y3QgaTkx NV92bWEgKiBjb25zdCB2bWEpCiB7Ci0JcmV0dXJuIDA7CisJcmV0dXJuIGdlbjdfc2V0dXBfY2xl YXJfZ3ByX2JiKGVuZ2luZSwgdm1hKTsKIH0KIAogc3RhdGljIGludCBnZW43X2N0eF9zd2l0Y2hf YmJfaW5pdChzdHJ1Y3QgaW50ZWxfZW5naW5lX2NzICplbmdpbmUpCmRpZmYgLS1naXQgYS9kcml2 ZXJzL2dwdS9kcm0vaTkxNS9pOTE1X3V0aWxzLmggYi9kcml2ZXJzL2dwdS9kcm0vaTkxNS9pOTE1 X3V0aWxzLmgKaW5kZXggYjBhZGU3NmJlYzkwLi43YWM1YjM1NjU4NDUgMTAwNjQ0Ci0tLSBhL2Ry aXZlcnMvZ3B1L2RybS9pOTE1L2k5MTVfdXRpbHMuaAorKysgYi9kcml2ZXJzL2dwdS9kcm0vaTkx NS9pOTE1X3V0aWxzLmgKQEAgLTE3Miw2ICsxNzIsMTEgQEAgX19jaGVja19zdHJ1Y3Rfc2l6ZShz aXplX3QgYmFzZSwgc2l6ZV90IGFyciwgc2l6ZV90IGNvdW50LCBzaXplX3QgKnNpemUpCiAJKHR5 cGVvZihwdHIpKShfX3YgKyAxKTsJCQkJCQlcCiB9KQogCisjZGVmaW5lIHB0cl9hbGlnbihwdHIs IGFsaWduKSAoewkJCQkJXAorCXVuc2lnbmVkIGxvbmcgX192ID0gKHVuc2lnbmVkIGxvbmcpKHB0 cik7CQkJXAorCSh0eXBlb2YocHRyKSlyb3VuZF91cChfX3YsIChhbGlnbikpOwkJCQlcCit9KQor CiAjZGVmaW5lIHBhZ2VfbWFza19iaXRzKHB0cikgcHRyX21hc2tfYml0cyhwdHIsIFBBR0VfU0hJ RlQpCiAjZGVmaW5lIHBhZ2VfdW5tYXNrX2JpdHMocHRyKSBwdHJfdW5tYXNrX2JpdHMocHRyLCBQ QUdFX1NISUZUKQogI2RlZmluZSBwYWdlX3BhY2tfYml0cyhwdHIsIGJpdHMpIHB0cl9wYWNrX2Jp dHMocHRyLCBiaXRzLCBQQUdFX1NISUZUKQotLSAKMi4yMC4xCgpfX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1k ZXZlbEBsaXN0cy5mcmVlZGVza3RvcC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcv bWFpbG1hbi9saXN0aW5mby9kcmktZGV2ZWwK