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=-16.5 required=3.0 tests=BAYES_00,DKIM_INVALID, DKIM_SIGNED,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER,INCLUDES_PATCH, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS,URIBL_BLOCKED,USER_AGENT_GIT 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 DEBB2C433E6 for ; Fri, 5 Feb 2021 08:06:36 +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 85D6664F3F for ; Fri, 5 Feb 2021 08:06:36 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 85D6664F3F Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=linaro.org 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 5D2BF6F408; Fri, 5 Feb 2021 08:06:34 +0000 (UTC) Received: from mail-pg1-x534.google.com (mail-pg1-x534.google.com [IPv6:2607:f8b0:4864:20::534]) by gabe.freedesktop.org (Postfix) with ESMTPS id 0E4E36F409 for ; Fri, 5 Feb 2021 08:06:33 +0000 (UTC) Received: by mail-pg1-x534.google.com with SMTP id o63so3995404pgo.6 for ; Fri, 05 Feb 2021 00:06:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=p+kRePWB5W5trhue+IG8eMT/JEK8NosX0hZykvGBiDc=; b=lX9KDrFOyf4mmKHoTR9pFnv7VxYUXhGbaO7HhCnhN0vp0Wy7JNRAq2lhCPA0I0plyl oG2LLiKjbJzE8kwWpuR0LD/wsJPKlxioHcbeZk/j9agRSkccHUUgkfBFWoruy4XouWIK otHDtW/6Qq5P9KYmk+aHJ59x0iWTOwqNaBHfRDvHYkDxqhPs1s92ReMvamLYlL3U07z5 CzV95v/X2y7uvQpRf4t0lAiy1oqgNnnS1smzYz8JK8zLp5fEJypZXPnbNDW+hX+aMqKj ENzM+umRBm2zpBwkBXKxAi3fRhCxqCaA32t6AU/bvQ+XXN+5nJQspxeaSWtBb3ZFOXLc g0qg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=p+kRePWB5W5trhue+IG8eMT/JEK8NosX0hZykvGBiDc=; b=CuItnFfhVXLOUWMdNISBR51r3xoRyBTv1WapjfjibOSXDaanTetiE15WPm/NiZGoi0 UHdKwpedZiLma/A4VHBoHgXLoZJLqb36sZSz1HJ8m92wpCdDappBQ0iLXhG4w8EdyPrn OzX1Pri3W69cQqnVZR+xigivTqpBi2gPIyFNOSL8wa33VPpWQsqv5tqAAYlL7QP/NnMx NRBChBdggsXNeBkHwvnHgygZd3n3oaREUy8oD/USxz+eJ7IHcdLMAsIYqQG1qeR2HKWm CFeq6faXBtl6vDqThOAA2WI6iBu9EWh5ElyLq+0Nw9giINp9Y3AKZYR22ffrSB7ZGxGW lukQ== X-Gm-Message-State: AOAM531c7sXkzq6fMyNjMjXX8zcvFFtL8jnWIHhhgcu7GTQD8zvxx0GM BB310ccCIYQ0QsOQumF+JwqgxQ== X-Google-Smtp-Source: ABdhPJz6EdUhticEW2ZVaijZbkearTjvVyxpZU18tPWPNOV5zZTvDaAg2fub0hYD8CmJA7ggEkdcxA== X-Received: by 2002:aa7:9981:0:b029:1d4:2f7b:e0d with SMTP id k1-20020aa799810000b02901d42f7b0e0dmr3344895pfh.10.1612512392648; Fri, 05 Feb 2021 00:06:32 -0800 (PST) Received: from localhost.localdomain ([2601:1c2:680:1319:692:26ff:feda:3a81]) by smtp.gmail.com with ESMTPSA id 32sm9520070pgq.80.2021.02.05.00.06.31 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 05 Feb 2021 00:06:31 -0800 (PST) From: John Stultz To: lkml Subject: [RFC][PATCH v6 4/7] drm: ttm_pool: Rework ttm_pool to use drm_page_pool Date: Fri, 5 Feb 2021 08:06:18 +0000 Message-Id: <20210205080621.3102035-5-john.stultz@linaro.org> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210205080621.3102035-1-john.stultz@linaro.org> References: <20210205080621.3102035-1-john.stultz@linaro.org> 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: , Cc: dri-devel@lists.freedesktop.org, Sandeep Patil , Ezequiel Garcia , Robin Murphy , James Jones , Liam Mark , Laura Abbott , Chris Goldsworthy , Hridya Valsaraju , =?UTF-8?q?=C3=98rjan=20Eide?= , linux-media@vger.kernel.org, Suren Baghdasaryan , Christian Koenig , Daniel Mentz Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" VGhpcyBwYXRjaCByZXdvcmtzIHRoZSB0dG1fcG9vbCBsb2dpYyB0byB1dGlsaXplIHRoZSByZWNl bnRseQphZGRlZCBkcm1fcGFnZV9wb29sIGNvZGUuCgpCYXNpY2FsbHkgYWxsIHRoZSB0dG1fcG9v bF90eXBlIHN0cnVjdHVyZXMgYXJlIHJlcGxhY2VkIHdpdGgKZHJtX3BhZ2VfcG9vbCBwb2ludGVy cywgYW5kIHNpbmNlIHRoZSBkcm1fcGFnZV9wb29sIGxvZ2ljIGhhcwppdHMgb3duIHNocmlua2Vy LCB3ZSBjYW4gcmVtb3ZlIGFsbCBvZiB0aGUgdHRtX3Bvb2wgc2hyaW5rZXIKbG9naWMuCgpOT1RF OiBUaGVyZSBpcyBvbmUgbWlzbWF0Y2ggaW4gdGhlIGludGVyZmFjZXMgSSdtIG5vdCB0b3RhbGx5 CmhhcHB5IHdpdGguIFRoZSB0dG1fcG9vbCB0cmFja3MgYWxsIG9mIGl0cyBwb29sZWQgcGFnZXMg YWNyb3NzCmEgbnVtYmVyIG9mIGRpZmZlcmVudCBwb29scywgYW5kIHRyaWVzIHRvIGtlZXAgdGhp cyBzaXplIHVuZGVyCnRoZSBzcGVjaWZpZWQgcGFnZV9wb29sX3NpemUgdmFsdWUuIFdpdGggdGhl IGRybV9wYWdlX3Bvb2wsCnRoZXJlIG1heSBvdGhlciB1c2VycywgaG93ZXZlciB0aGVyZSBpcyBz dGlsbCBvbmUgZ2xvYmFsCnNocmlua2VyIGxpc3Qgb2YgcG9vbHMuIFNvIHdlIGNhbid0IGVhc2ls eSByZWR1Y2UgdGhlIHR0bQpwb29sIHVuZGVyIHRoZSB0dG0gc3BlY2lmaWVkIHNpemUgd2l0aG91 dCBwb3RlbnRpYWxseSBkb2luZwphIGxvdCBvZiBzaHJpbmtpbmcgdG8gb3RoZXIgbm9uLXR0bSBw b29scy4gU28gZWl0aGVyIHdlIGNhbjoKICAxKSBUcnkgdG8gc3BsaXQgaXQgc28gZWFjaCB1c2Vy IG9mIGRybV9wYWdlX3Bvb2xzIG1hbmFnZXMgaXRzCiAgICAgb3duIHBvb2wgc2hyaW5raW5nLgog IDIpIFB1c2ggdGhlIG1heCB2YWx1ZSBpbnRvIHRoZSBkcm1fcGFnZV9wb29sLCBhbmQgaGF2ZSBp dAogICAgIG1hbmFnZSBzaHJpbmtpbmcgdG8gZml0IHVuZGVyIHRoYXQgZ2xvYmFsIG1heC4gVGhl biBzaGFyZQogICAgIHRob3NlIHNpemUvbWF4IHZhbHVlcyBvdXQgc28gdGhlIHR0bV9wb29sIGRl YnVnIG91dHB1dAogICAgIGNhbiBoYXZlIG1vcmUgY29udGV4dC4KCkkndmUgdGFrZW4gdGhlIHNl Y29uZCBwYXRoIGluIHRoaXMgcGF0Y2ggc2V0LCBidXQgd2FudGVkIHRvIGNhbGwKaXQgb3V0IHNv IGZvbGtzIGNvdWxkIGxvb2sgY2xvc2VseS4KClRob3VnaHRzIHdvdWxkIGJlIGdyZWF0bHkgYXBw cmVjaWF0ZWQgaGVyZSEKCkNjOiBEYW5pZWwgVmV0dGVyIDxkYW5pZWxAZmZ3bGwuY2g+CkNjOiBD aHJpc3RpYW4gS29lbmlnIDxjaHJpc3RpYW4ua29lbmlnQGFtZC5jb20+CkNjOiBTdW1pdCBTZW13 YWwgPHN1bWl0LnNlbXdhbEBsaW5hcm8ub3JnPgpDYzogTGlhbSBNYXJrIDxsbWFya0Bjb2RlYXVy b3JhLm9yZz4KQ2M6IENocmlzIEdvbGRzd29ydGh5IDxjZ29sZHN3b0Bjb2RlYXVyb3JhLm9yZz4K Q2M6IExhdXJhIEFiYm90dCA8bGFiYm90dEBrZXJuZWwub3JnPgpDYzogQnJpYW4gU3RhcmtleSA8 QnJpYW4uU3RhcmtleUBhcm0uY29tPgpDYzogSHJpZHlhIFZhbHNhcmFqdSA8aHJpZHlhQGdvb2ds ZS5jb20+CkNjOiBTdXJlbiBCYWdoZGFzYXJ5YW4gPHN1cmVuYkBnb29nbGUuY29tPgpDYzogU2Fu ZGVlcCBQYXRpbCA8c3NwYXRpbEBnb29nbGUuY29tPgpDYzogRGFuaWVsIE1lbnR6IDxkYW5pZWxt ZW50ekBnb29nbGUuY29tPgpDYzogw5hyamFuIEVpZGUgPG9yamFuLmVpZGVAYXJtLmNvbT4KQ2M6 IFJvYmluIE11cnBoeSA8cm9iaW4ubXVycGh5QGFybS5jb20+CkNjOiBFemVxdWllbCBHYXJjaWEg PGV6ZXF1aWVsQGNvbGxhYm9yYS5jb20+CkNjOiBTaW1vbiBTZXIgPGNvbnRhY3RAZW1lcnNpb24u ZnI+CkNjOiBKYW1lcyBKb25lcyA8amFqb25lc0BudmlkaWEuY29tPgpDYzogbGludXgtbWVkaWFA dmdlci5rZXJuZWwub3JnCkNjOiBkcmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnClNpZ25l ZC1vZmYtYnk6IEpvaG4gU3R1bHR6IDxqb2huLnN0dWx0ekBsaW5hcm8ub3JnPgotLS0KIGRyaXZl cnMvZ3B1L2RybS9LY29uZmlnICAgICAgICB8ICAgMSArCiBkcml2ZXJzL2dwdS9kcm0vdHRtL3R0 bV9wb29sLmMgfCAxOTkgKysrKysrKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCiBpbmNsdWRl L2RybS90dG0vdHRtX3Bvb2wuaCAgICAgfCAgMjMgKy0tLQogMyBmaWxlcyBjaGFuZ2VkLCA0MSBp bnNlcnRpb25zKCspLCAxODIgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvZHJpdmVycy9ncHUv ZHJtL0tjb25maWcgYi9kcml2ZXJzL2dwdS9kcm0vS2NvbmZpZwppbmRleCBkMTZiZjM0MGVkMmUu LmQ0MjdhYmVmYWJmYiAxMDA2NDQKLS0tIGEvZHJpdmVycy9ncHUvZHJtL0tjb25maWcKKysrIGIv ZHJpdmVycy9ncHUvZHJtL0tjb25maWcKQEAgLTE4MSw2ICsxODEsNyBAQCBjb25maWcgRFJNX1BB R0VfUE9PTAogY29uZmlnIERSTV9UVE0KIAl0cmlzdGF0ZQogCWRlcGVuZHMgb24gRFJNICYmIE1N VQorCXNlbGVjdCBEUk1fUEFHRV9QT09MCiAJaGVscAogCSAgR1BVIG1lbW9yeSBtYW5hZ2VtZW50 IHN1YnN5c3RlbSBmb3IgZGV2aWNlcyB3aXRoIG11bHRpcGxlCiAJICBHUFUgbWVtb3J5IHR5cGVz LiBXaWxsIGJlIGVuYWJsZWQgYXV0b21hdGljYWxseSBpZiBhIGRldmljZSBkcml2ZXIKZGlmZiAt LWdpdCBhL2RyaXZlcnMvZ3B1L2RybS90dG0vdHRtX3Bvb2wuYyBiL2RyaXZlcnMvZ3B1L2RybS90 dG0vdHRtX3Bvb2wuYwppbmRleCBlY2EzNjY3OGY5NjcuLmRiYmFmNTVjYTVkZiAxMDA2NDQKLS0t IGEvZHJpdmVycy9ncHUvZHJtL3R0bS90dG1fcG9vbC5jCisrKyBiL2RyaXZlcnMvZ3B1L2RybS90 dG0vdHRtX3Bvb2wuYwpAQCAtMzcsNiArMzcsNyBAQAogI2lmZGVmIENPTkZJR19YODYKICNpbmNs dWRlIDxhc20vc2V0X21lbW9yeS5oPgogI2VuZGlmCisjaW5jbHVkZSA8ZHJtL3BhZ2VfcG9vbC5o PgogI2luY2x1ZGUgPGRybS90dG0vdHRtX3Bvb2wuaD4KICNpbmNsdWRlIDxkcm0vdHRtL3R0bV9i b19kcml2ZXIuaD4KICNpbmNsdWRlIDxkcm0vdHRtL3R0bV90dC5oPgpAQCAtNjMsMTUgKzY0LDEz IEBAIG1vZHVsZV9wYXJhbShwYWdlX3Bvb2xfc2l6ZSwgdWxvbmcsIDA2NDQpOwogCiBzdGF0aWMg YXRvbWljX2xvbmdfdCBhbGxvY2F0ZWRfcGFnZXM7CiAKLXN0YXRpYyBzdHJ1Y3QgdHRtX3Bvb2xf dHlwZSBnbG9iYWxfd3JpdGVfY29tYmluZWRbTUFYX09SREVSXTsKLXN0YXRpYyBzdHJ1Y3QgdHRt X3Bvb2xfdHlwZSBnbG9iYWxfdW5jYWNoZWRbTUFYX09SREVSXTsKK3N0YXRpYyBzdHJ1Y3QgZHJt X3BhZ2VfcG9vbCAqZ2xvYmFsX3dyaXRlX2NvbWJpbmVkW01BWF9PUkRFUl07CitzdGF0aWMgc3Ry dWN0IGRybV9wYWdlX3Bvb2wgKmdsb2JhbF91bmNhY2hlZFtNQVhfT1JERVJdOwogCi1zdGF0aWMg c3RydWN0IHR0bV9wb29sX3R5cGUgZ2xvYmFsX2RtYTMyX3dyaXRlX2NvbWJpbmVkW01BWF9PUkRF Ul07Ci1zdGF0aWMgc3RydWN0IHR0bV9wb29sX3R5cGUgZ2xvYmFsX2RtYTMyX3VuY2FjaGVkW01B WF9PUkRFUl07CitzdGF0aWMgc3RydWN0IGRybV9wYWdlX3Bvb2wgKmdsb2JhbF9kbWEzMl93cml0 ZV9jb21iaW5lZFtNQVhfT1JERVJdOworc3RhdGljIHN0cnVjdCBkcm1fcGFnZV9wb29sICpnbG9i YWxfZG1hMzJfdW5jYWNoZWRbTUFYX09SREVSXTsKIAogc3RhdGljIHN0cnVjdCBtdXRleCBzaHJp bmtlcl9sb2NrOwotc3RhdGljIHN0cnVjdCBsaXN0X2hlYWQgc2hyaW5rZXJfbGlzdDsKLXN0YXRp YyBzdHJ1Y3Qgc2hyaW5rZXIgbW1fc2hyaW5rZXI7CiAKIC8qIEFsbG9jYXRlIHBhZ2VzIG9mIHNp emUgMSA8PCBvcmRlciB3aXRoIHRoZSBnaXZlbiBnZnBfZmxhZ3MgKi8KIHN0YXRpYyBzdHJ1Y3Qg cGFnZSAqdHRtX3Bvb2xfYWxsb2NfcGFnZShzdHJ1Y3QgdHRtX3Bvb2wgKnBvb2wsIGdmcF90IGdm cF9mbGFncywKQEAgLTIyMyw3OSArMjIyLDI2IEBAIHN0YXRpYyB2b2lkIHR0bV9wb29sX3VubWFw KHN0cnVjdCB0dG1fcG9vbCAqcG9vbCwgZG1hX2FkZHJfdCBkbWFfYWRkciwKIAkJICAgICAgIERN QV9CSURJUkVDVElPTkFMKTsKIH0KIAotLyogR2l2ZSBwYWdlcyBpbnRvIGEgc3BlY2lmaWMgcG9v bF90eXBlICovCi1zdGF0aWMgdm9pZCB0dG1fcG9vbF90eXBlX2dpdmUoc3RydWN0IHR0bV9wb29s X3R5cGUgKnB0LCBzdHJ1Y3QgcGFnZSAqcCkKLXsKLQlzcGluX2xvY2soJnB0LT5sb2NrKTsKLQls aXN0X2FkZCgmcC0+bHJ1LCAmcHQtPnBhZ2VzKTsKLQlzcGluX3VubG9jaygmcHQtPmxvY2spOwot CWF0b21pY19sb25nX2FkZCgxIDw8IHB0LT5vcmRlciwgJmFsbG9jYXRlZF9wYWdlcyk7Ci19Ci0K LS8qIFRha2UgcGFnZXMgZnJvbSBhIHNwZWNpZmljIHBvb2xfdHlwZSwgcmV0dXJuIE5VTEwgd2hl biBub3RoaW5nIGF2YWlsYWJsZSAqLwotc3RhdGljIHN0cnVjdCBwYWdlICp0dG1fcG9vbF90eXBl X3Rha2Uoc3RydWN0IHR0bV9wb29sX3R5cGUgKnB0KQotewotCXN0cnVjdCBwYWdlICpwOwotCi0J c3Bpbl9sb2NrKCZwdC0+bG9jayk7Ci0JcCA9IGxpc3RfZmlyc3RfZW50cnlfb3JfbnVsbCgmcHQt PnBhZ2VzLCB0eXBlb2YoKnApLCBscnUpOwotCWlmIChwKSB7Ci0JCWF0b21pY19sb25nX3N1Yigx IDw8IHB0LT5vcmRlciwgJmFsbG9jYXRlZF9wYWdlcyk7Ci0JCWxpc3RfZGVsKCZwLT5scnUpOwot CX0KLQlzcGluX3VubG9jaygmcHQtPmxvY2spOwotCi0JcmV0dXJuIHA7Ci19Ci0KLS8qIEluaXRp YWxpemUgYW5kIGFkZCBhIHBvb2wgdHlwZSB0byB0aGUgZ2xvYmFsIHNocmlua2VyIGxpc3QgKi8K LXN0YXRpYyB2b2lkIHR0bV9wb29sX3R5cGVfaW5pdChzdHJ1Y3QgdHRtX3Bvb2xfdHlwZSAqcHQs IHN0cnVjdCB0dG1fcG9vbCAqcG9vbCwKLQkJCSAgICAgICBlbnVtIHR0bV9jYWNoaW5nIGNhY2hp bmcsIHVuc2lnbmVkIGludCBvcmRlcikKLXsKLQlwdC0+cG9vbCA9IHBvb2w7Ci0JcHQtPmNhY2hp bmcgPSBjYWNoaW5nOwotCXB0LT5vcmRlciA9IG9yZGVyOwotCXNwaW5fbG9ja19pbml0KCZwdC0+ bG9jayk7Ci0JSU5JVF9MSVNUX0hFQUQoJnB0LT5wYWdlcyk7Ci0KLQltdXRleF9sb2NrKCZzaHJp bmtlcl9sb2NrKTsKLQlsaXN0X2FkZF90YWlsKCZwdC0+c2hyaW5rZXJfbGlzdCwgJnNocmlua2Vy X2xpc3QpOwotCW11dGV4X3VubG9jaygmc2hyaW5rZXJfbG9jayk7Ci19Ci0KLS8qIFJlbW92ZSBh IHBvb2xfdHlwZSBmcm9tIHRoZSBnbG9iYWwgc2hyaW5rZXIgbGlzdCBhbmQgZnJlZSBhbGwgcGFn ZXMgKi8KLXN0YXRpYyB2b2lkIHR0bV9wb29sX3R5cGVfZmluaShzdHJ1Y3QgdHRtX3Bvb2xfdHlw ZSAqcHQpCi17Ci0Jc3RydWN0IHBhZ2UgKnAsICp0bXA7Ci0KLQltdXRleF9sb2NrKCZzaHJpbmtl cl9sb2NrKTsKLQlsaXN0X2RlbCgmcHQtPnNocmlua2VyX2xpc3QpOwotCW11dGV4X3VubG9jaygm c2hyaW5rZXJfbG9jayk7Ci0KLQlsaXN0X2Zvcl9lYWNoX2VudHJ5X3NhZmUocCwgdG1wLCAmcHQt PnBhZ2VzLCBscnUpCi0JCXR0bV9wb29sX2ZyZWVfcGFnZShwLCBwdC0+b3JkZXIpOwotfQotCiAv KiBSZXR1cm4gdGhlIHBvb2xfdHlwZSB0byB1c2UgZm9yIHRoZSBnaXZlbiBjYWNoaW5nIGFuZCBv cmRlciAqLwotc3RhdGljIHN0cnVjdCB0dG1fcG9vbF90eXBlICp0dG1fcG9vbF9zZWxlY3RfdHlw ZShzdHJ1Y3QgdHRtX3Bvb2wgKnBvb2wsCitzdGF0aWMgc3RydWN0IGRybV9wYWdlX3Bvb2wgKnR0 bV9wb29sX3NlbGVjdF90eXBlKHN0cnVjdCB0dG1fcG9vbCAqcG9vbCwKIAkJCQkJCSAgZW51bSB0 dG1fY2FjaGluZyBjYWNoaW5nLAogCQkJCQkJICB1bnNpZ25lZCBpbnQgb3JkZXIpCiB7CiAJaWYg KHBvb2wtPnVzZV9kbWFfYWxsb2MpCi0JCXJldHVybiAmcG9vbC0+Y2FjaGluZ1tjYWNoaW5nXS5v cmRlcnNbb3JkZXJdOworCQlyZXR1cm4gcG9vbC0+Y2FjaGluZ1tjYWNoaW5nXS5vcmRlcnNbb3Jk ZXJdOwogCiAjaWZkZWYgQ09ORklHX1g4NgogCXN3aXRjaCAoY2FjaGluZykgewogCWNhc2UgdHRt X3dyaXRlX2NvbWJpbmVkOgogCQlpZiAocG9vbC0+dXNlX2RtYTMyKQotCQkJcmV0dXJuICZnbG9i YWxfZG1hMzJfd3JpdGVfY29tYmluZWRbb3JkZXJdOworCQkJcmV0dXJuIGdsb2JhbF9kbWEzMl93 cml0ZV9jb21iaW5lZFtvcmRlcl07CiAKLQkJcmV0dXJuICZnbG9iYWxfd3JpdGVfY29tYmluZWRb b3JkZXJdOworCQlyZXR1cm4gZ2xvYmFsX3dyaXRlX2NvbWJpbmVkW29yZGVyXTsKIAljYXNlIHR0 bV91bmNhY2hlZDoKIAkJaWYgKHBvb2wtPnVzZV9kbWEzMikKLQkJCXJldHVybiAmZ2xvYmFsX2Rt YTMyX3VuY2FjaGVkW29yZGVyXTsKKwkJCXJldHVybiBnbG9iYWxfZG1hMzJfdW5jYWNoZWRbb3Jk ZXJdOwogCi0JCXJldHVybiAmZ2xvYmFsX3VuY2FjaGVkW29yZGVyXTsKKwkJcmV0dXJuIGdsb2Jh bF91bmNhY2hlZFtvcmRlcl07CiAJZGVmYXVsdDoKIAkJYnJlYWs7CiAJfQpAQCAtMzA0LDMwICsy NTAsNiBAQCBzdGF0aWMgc3RydWN0IHR0bV9wb29sX3R5cGUgKnR0bV9wb29sX3NlbGVjdF90eXBl KHN0cnVjdCB0dG1fcG9vbCAqcG9vbCwKIAlyZXR1cm4gTlVMTDsKIH0KIAotLyogRnJlZSBwYWdl cyB1c2luZyB0aGUgZ2xvYmFsIHNocmlua2VyIGxpc3QgKi8KLXN0YXRpYyB1bnNpZ25lZCBpbnQg dHRtX3Bvb2xfc2hyaW5rKHZvaWQpCi17Ci0Jc3RydWN0IHR0bV9wb29sX3R5cGUgKnB0OwotCXVu c2lnbmVkIGludCBudW1fZnJlZWQ7Ci0Jc3RydWN0IHBhZ2UgKnA7Ci0KLQltdXRleF9sb2NrKCZz aHJpbmtlcl9sb2NrKTsKLQlwdCA9IGxpc3RfZmlyc3RfZW50cnkoJnNocmlua2VyX2xpc3QsIHR5 cGVvZigqcHQpLCBzaHJpbmtlcl9saXN0KTsKLQotCXAgPSB0dG1fcG9vbF90eXBlX3Rha2UocHQp OwotCWlmIChwKSB7Ci0JCXR0bV9wb29sX2ZyZWVfcGFnZShwLCBwdC0+b3JkZXIpOwotCQludW1f ZnJlZWQgPSAxIDw8IHB0LT5vcmRlcjsKLQl9IGVsc2UgewotCQludW1fZnJlZWQgPSAwOwotCX0K LQotCWxpc3RfbW92ZV90YWlsKCZwdC0+c2hyaW5rZXJfbGlzdCwgJnNocmlua2VyX2xpc3QpOwot CW11dGV4X3VubG9jaygmc2hyaW5rZXJfbG9jayk7Ci0KLQlyZXR1cm4gbnVtX2ZyZWVkOwotfQot CiAvKiBSZXR1cm4gdGhlIGFsbG9jYXRpb24gb3JkZXIgYmFzZWQgZm9yIGEgcGFnZSAqLwogc3Rh dGljIHVuc2lnbmVkIGludCB0dG1fcG9vbF9wYWdlX29yZGVyKHN0cnVjdCB0dG1fcG9vbCAqcG9v bCwgc3RydWN0IHBhZ2UgKnApCiB7CkBAIC0zNzcsMTAgKzI5OSwxMCBAQCBpbnQgdHRtX3Bvb2xf YWxsb2Moc3RydWN0IHR0bV9wb29sICpwb29sLCBzdHJ1Y3QgdHRtX3R0ICp0dCwKIAlmb3IgKG9y ZGVyID0gbWluKE1BWF9PUkRFUiAtIDFVTCwgX19mbHMobnVtX3BhZ2VzKSk7IG51bV9wYWdlczsK IAkgICAgIG9yZGVyID0gbWluX3QodW5zaWduZWQgaW50LCBvcmRlciwgX19mbHMobnVtX3BhZ2Vz KSkpIHsKIAkJYm9vbCBhcHBseV9jYWNoaW5nID0gZmFsc2U7Ci0JCXN0cnVjdCB0dG1fcG9vbF90 eXBlICpwdDsKKwkJc3RydWN0IGRybV9wYWdlX3Bvb2wgKnB0OwogCiAJCXB0ID0gdHRtX3Bvb2xf c2VsZWN0X3R5cGUocG9vbCwgdHQtPmNhY2hpbmcsIG9yZGVyKTsKLQkJcCA9IHB0ID8gdHRtX3Bv b2xfdHlwZV90YWtlKHB0KSA6IE5VTEw7CisJCXAgPSBwdCA/IGRybV9wYWdlX3Bvb2xfZmV0Y2go cHQpIDogTlVMTDsKIAkJaWYgKHApIHsKIAkJCWFwcGx5X2NhY2hpbmcgPSB0cnVlOwogCQl9IGVs c2UgewpAQCAtNDYyLDcgKzM4NCw3IEBAIHZvaWQgdHRtX3Bvb2xfZnJlZShzdHJ1Y3QgdHRtX3Bv b2wgKnBvb2wsIHN0cnVjdCB0dG1fdHQgKnR0KQogCWZvciAoaSA9IDA7IGkgPCB0dC0+bnVtX3Bh Z2VzOyApIHsKIAkJc3RydWN0IHBhZ2UgKnAgPSB0dC0+cGFnZXNbaV07CiAJCXVuc2lnbmVkIGlu dCBvcmRlciwgbnVtX3BhZ2VzOwotCQlzdHJ1Y3QgdHRtX3Bvb2xfdHlwZSAqcHQ7CisJCXN0cnVj dCBkcm1fcGFnZV9wb29sICpwdDsKIAogCQlvcmRlciA9IHR0bV9wb29sX3BhZ2Vfb3JkZXIocG9v bCwgcCk7CiAJCW51bV9wYWdlcyA9IDFVTEwgPDwgb3JkZXI7CkBAIC00NzMsMTUgKzM5NSwxMiBA QCB2b2lkIHR0bV9wb29sX2ZyZWUoc3RydWN0IHR0bV9wb29sICpwb29sLCBzdHJ1Y3QgdHRtX3R0 ICp0dCkKIAogCQlwdCA9IHR0bV9wb29sX3NlbGVjdF90eXBlKHBvb2wsIHR0LT5jYWNoaW5nLCBv cmRlcik7CiAJCWlmIChwdCkKLQkJCXR0bV9wb29sX3R5cGVfZ2l2ZShwdCwgdHQtPnBhZ2VzW2ld KTsKKwkJCWRybV9wYWdlX3Bvb2xfYWRkKHB0LCB0dC0+cGFnZXNbaV0pOwogCQllbHNlCiAJCQl0 dG1fcG9vbF9mcmVlX3BhZ2UodHQtPnBhZ2VzW2ldLCBvcmRlcik7CiAKIAkJaSArPSBudW1fcGFn ZXM7CiAJfQotCi0Jd2hpbGUgKGF0b21pY19sb25nX3JlYWQoJmFsbG9jYXRlZF9wYWdlcykgPiBw YWdlX3Bvb2xfc2l6ZSkKLQkJdHRtX3Bvb2xfc2hyaW5rKCk7CiB9CiBFWFBPUlRfU1lNQk9MKHR0 bV9wb29sX2ZyZWUpOwogCkBAIC01MDgsOCArNDI3LDggQEAgdm9pZCB0dG1fcG9vbF9pbml0KHN0 cnVjdCB0dG1fcG9vbCAqcG9vbCwgc3RydWN0IGRldmljZSAqZGV2LAogCiAJZm9yIChpID0gMDsg aSA8IFRUTV9OVU1fQ0FDSElOR19UWVBFUzsgKytpKQogCQlmb3IgKGogPSAwOyBqIDwgTUFYX09S REVSOyArK2opCi0JCQl0dG1fcG9vbF90eXBlX2luaXQoJnBvb2wtPmNhY2hpbmdbaV0ub3JkZXJz W2pdLAotCQkJCQkgICBwb29sLCBpLCBqKTsKKwkJCXBvb2wtPmNhY2hpbmdbaV0ub3JkZXJzW2pd ID0gZHJtX3BhZ2VfcG9vbF9jcmVhdGUoaiwKKwkJCQkJCQl0dG1fcG9vbF9mcmVlX3BhZ2UpOwog fQogCiAvKioKQEAgLTUyNiwzMyArNDQ1LDE4IEBAIHZvaWQgdHRtX3Bvb2xfZmluaShzdHJ1Y3Qg dHRtX3Bvb2wgKnBvb2wpCiAKIAlmb3IgKGkgPSAwOyBpIDwgVFRNX05VTV9DQUNISU5HX1RZUEVT OyArK2kpCiAJCWZvciAoaiA9IDA7IGogPCBNQVhfT1JERVI7ICsraikKLQkJCXR0bV9wb29sX3R5 cGVfZmluaSgmcG9vbC0+Y2FjaGluZ1tpXS5vcmRlcnNbal0pOworCQkJZHJtX3BhZ2VfcG9vbF9k ZXN0cm95KHBvb2wtPmNhY2hpbmdbaV0ub3JkZXJzW2pdKTsKIH0KIAogI2lmZGVmIENPTkZJR19E RUJVR19GUwotLyogQ291bnQgdGhlIG51bWJlciBvZiBwYWdlcyBhdmFpbGFibGUgaW4gYSBwb29s X3R5cGUgKi8KLXN0YXRpYyB1bnNpZ25lZCBpbnQgdHRtX3Bvb2xfdHlwZV9jb3VudChzdHJ1Y3Qg dHRtX3Bvb2xfdHlwZSAqcHQpCi17Ci0JdW5zaWduZWQgaW50IGNvdW50ID0gMDsKLQlzdHJ1Y3Qg cGFnZSAqcDsKLQotCXNwaW5fbG9jaygmcHQtPmxvY2spOwotCS8qIE9ubHkgdXNlZCBmb3IgZGVi dWdmcywgdGhlIG92ZXJoZWFkIGRvZXNuJ3QgbWF0dGVyICovCi0JbGlzdF9mb3JfZWFjaF9lbnRy eShwLCAmcHQtPnBhZ2VzLCBscnUpCi0JCSsrY291bnQ7Ci0Jc3Bpbl91bmxvY2soJnB0LT5sb2Nr KTsKLQotCXJldHVybiBjb3VudDsKLX0KLQogLyogRHVtcCBpbmZvcm1hdGlvbiBhYm91dCB0aGUg ZGlmZmVyZW50IHBvb2wgdHlwZXMgKi8KLXN0YXRpYyB2b2lkIHR0bV9wb29sX2RlYnVnZnNfb3Jk ZXJzKHN0cnVjdCB0dG1fcG9vbF90eXBlICpwdCwKK3N0YXRpYyB2b2lkIHR0bV9wb29sX2RlYnVn ZnNfb3JkZXJzKHN0cnVjdCBkcm1fcGFnZV9wb29sICoqcHQsCiAJCQkJICAgIHN0cnVjdCBzZXFf ZmlsZSAqbSkKIHsKIAl1bnNpZ25lZCBpbnQgaTsKIAogCWZvciAoaSA9IDA7IGkgPCBNQVhfT1JE RVI7ICsraSkKLQkJc2VxX3ByaW50ZihtLCAiICU4dSIsIHR0bV9wb29sX3R5cGVfY291bnQoJnB0 W2ldKSk7CisJCXNlcV9wcmludGYobSwgIiAlOHUiLCBkcm1fcGFnZV9wb29sX2dldF9zaXplKHB0 W2ldKSk7CiAJc2VxX3B1dHMobSwgIlxuIik7CiB9CiAKQEAgLTYwMiw3ICs1MDYsMTAgQEAgaW50 IHR0bV9wb29sX2RlYnVnZnMoc3RydWN0IHR0bV9wb29sICpwb29sLCBzdHJ1Y3Qgc2VxX2ZpbGUg Km0pCiAJfQogCiAJc2VxX3ByaW50ZihtLCAiXG50b3RhbFx0OiAlOGx1IG9mICU4bHVcbiIsCi0J CSAgIGF0b21pY19sb25nX3JlYWQoJmFsbG9jYXRlZF9wYWdlcyksIHBhZ2VfcG9vbF9zaXplKTsK KwkJICAgYXRvbWljX2xvbmdfcmVhZCgmYWxsb2NhdGVkX3BhZ2VzKSwKKwkJICAgZHJtX3BhZ2Vf cG9vbF9nZXRfbWF4KCkpOworCXNlcV9wcmludGYobSwgIiglOGx1IGluIG5vbi10dG0gcG9vbHMp XG4iLCBkcm1fcGFnZV9wb29sX2dldF90b3RhbCgpIC0KKwkJCQkJYXRvbWljX2xvbmdfcmVhZCgm YWxsb2NhdGVkX3BhZ2VzKSk7CiAKIAltdXRleF91bmxvY2soJnNocmlua2VyX2xvY2spOwogCkBA IC02MTIsMjggKzUxOSw2IEBAIEVYUE9SVF9TWU1CT0wodHRtX3Bvb2xfZGVidWdmcyk7CiAKICNl bmRpZgogCi0vKiBBcyBsb25nIGFzIHBhZ2VzIGFyZSBhdmFpbGFibGUgbWFrZSBzdXJlIHRvIHJl bGVhc2UgYXQgbGVhc3Qgb25lICovCi1zdGF0aWMgdW5zaWduZWQgbG9uZyB0dG1fcG9vbF9zaHJp bmtlcl9zY2FuKHN0cnVjdCBzaHJpbmtlciAqc2hyaW5rLAotCQkJCQkgICAgc3RydWN0IHNocmlu a19jb250cm9sICpzYykKLXsKLQl1bnNpZ25lZCBsb25nIG51bV9mcmVlZCA9IDA7Ci0KLQlkbwot CQludW1fZnJlZWQgKz0gdHRtX3Bvb2xfc2hyaW5rKCk7Ci0Jd2hpbGUgKCFudW1fZnJlZWQgJiYg YXRvbWljX2xvbmdfcmVhZCgmYWxsb2NhdGVkX3BhZ2VzKSk7Ci0KLQlyZXR1cm4gbnVtX2ZyZWVk OwotfQotCi0vKiBSZXR1cm4gdGhlIG51bWJlciBvZiBwYWdlcyBhdmFpbGFibGUgb3IgU0hSSU5L X0VNUFRZIGlmIHdlIGhhdmUgbm9uZSAqLwotc3RhdGljIHVuc2lnbmVkIGxvbmcgdHRtX3Bvb2xf c2hyaW5rZXJfY291bnQoc3RydWN0IHNocmlua2VyICpzaHJpbmssCi0JCQkJCSAgICAgc3RydWN0 IHNocmlua19jb250cm9sICpzYykKLXsKLQl1bnNpZ25lZCBsb25nIG51bV9wYWdlcyA9IGF0b21p Y19sb25nX3JlYWQoJmFsbG9jYXRlZF9wYWdlcyk7Ci0KLQlyZXR1cm4gbnVtX3BhZ2VzID8gbnVt X3BhZ2VzIDogU0hSSU5LX0VNUFRZOwotfQotCiAvKioKICAqIHR0bV9wb29sX21ncl9pbml0IC0g SW5pdGlhbGl6ZSBnbG9iYWxzCiAgKgpAQCAtNjQ4LDI0ICs1MzMsMjEgQEAgaW50IHR0bV9wb29s X21ncl9pbml0KHVuc2lnbmVkIGxvbmcgbnVtX3BhZ2VzKQogCWlmICghcGFnZV9wb29sX3NpemUp CiAJCXBhZ2VfcG9vbF9zaXplID0gbnVtX3BhZ2VzOwogCisJZHJtX3BhZ2VfcG9vbF9zZXRfbWF4 KHBhZ2VfcG9vbF9zaXplKTsKKwogCW11dGV4X2luaXQoJnNocmlua2VyX2xvY2spOwotCUlOSVRf TElTVF9IRUFEKCZzaHJpbmtlcl9saXN0KTsKIAogCWZvciAoaSA9IDA7IGkgPCBNQVhfT1JERVI7 ICsraSkgewotCQl0dG1fcG9vbF90eXBlX2luaXQoJmdsb2JhbF93cml0ZV9jb21iaW5lZFtpXSwg TlVMTCwKLQkJCQkgICB0dG1fd3JpdGVfY29tYmluZWQsIGkpOwotCQl0dG1fcG9vbF90eXBlX2lu aXQoJmdsb2JhbF91bmNhY2hlZFtpXSwgTlVMTCwgdHRtX3VuY2FjaGVkLCBpKTsKLQotCQl0dG1f cG9vbF90eXBlX2luaXQoJmdsb2JhbF9kbWEzMl93cml0ZV9jb21iaW5lZFtpXSwgTlVMTCwKLQkJ CQkgICB0dG1fd3JpdGVfY29tYmluZWQsIGkpOwotCQl0dG1fcG9vbF90eXBlX2luaXQoJmdsb2Jh bF9kbWEzMl91bmNhY2hlZFtpXSwgTlVMTCwKLQkJCQkgICB0dG1fdW5jYWNoZWQsIGkpOworCQln bG9iYWxfd3JpdGVfY29tYmluZWRbaV0gPSBkcm1fcGFnZV9wb29sX2NyZWF0ZShpLAorCQkJCQkJ CXR0bV9wb29sX2ZyZWVfcGFnZSk7CisJCWdsb2JhbF91bmNhY2hlZFtpXSA9IGRybV9wYWdlX3Bv b2xfY3JlYXRlKGksCisJCQkJCQkJdHRtX3Bvb2xfZnJlZV9wYWdlKTsKKwkJZ2xvYmFsX2RtYTMy X3dyaXRlX2NvbWJpbmVkW2ldID0gZHJtX3BhZ2VfcG9vbF9jcmVhdGUoaSwKKwkJCQkJCQl0dG1f cG9vbF9mcmVlX3BhZ2UpOworCQlnbG9iYWxfZG1hMzJfdW5jYWNoZWRbaV0gPSBkcm1fcGFnZV9w b29sX2NyZWF0ZShpLAorCQkJCQkJCXR0bV9wb29sX2ZyZWVfcGFnZSk7CiAJfQotCi0JbW1fc2hy aW5rZXIuY291bnRfb2JqZWN0cyA9IHR0bV9wb29sX3Nocmlua2VyX2NvdW50OwotCW1tX3Nocmlu a2VyLnNjYW5fb2JqZWN0cyA9IHR0bV9wb29sX3Nocmlua2VyX3NjYW47Ci0JbW1fc2hyaW5rZXIu c2Vla3MgPSAxOwotCXJldHVybiByZWdpc3Rlcl9zaHJpbmtlcigmbW1fc2hyaW5rZXIpOworCXJl dHVybiAwOwogfQogCiAvKioKQEAgLTY3OCwxMyArNTYwLDEwIEBAIHZvaWQgdHRtX3Bvb2xfbWdy X2Zpbmkodm9pZCkKIAl1bnNpZ25lZCBpbnQgaTsKIAogCWZvciAoaSA9IDA7IGkgPCBNQVhfT1JE RVI7ICsraSkgewotCQl0dG1fcG9vbF90eXBlX2ZpbmkoJmdsb2JhbF93cml0ZV9jb21iaW5lZFtp XSk7Ci0JCXR0bV9wb29sX3R5cGVfZmluaSgmZ2xvYmFsX3VuY2FjaGVkW2ldKTsKKwkJZHJtX3Bh Z2VfcG9vbF9kZXN0cm95KGdsb2JhbF93cml0ZV9jb21iaW5lZFtpXSk7CisJCWRybV9wYWdlX3Bv b2xfZGVzdHJveShnbG9iYWxfdW5jYWNoZWRbaV0pOwogCi0JCXR0bV9wb29sX3R5cGVfZmluaSgm Z2xvYmFsX2RtYTMyX3dyaXRlX2NvbWJpbmVkW2ldKTsKLQkJdHRtX3Bvb2xfdHlwZV9maW5pKCZn bG9iYWxfZG1hMzJfdW5jYWNoZWRbaV0pOworCQlkcm1fcGFnZV9wb29sX2Rlc3Ryb3koZ2xvYmFs X2RtYTMyX3dyaXRlX2NvbWJpbmVkW2ldKTsKKwkJZHJtX3BhZ2VfcG9vbF9kZXN0cm95KGdsb2Jh bF9kbWEzMl91bmNhY2hlZFtpXSk7CiAJfQotCi0JdW5yZWdpc3Rlcl9zaHJpbmtlcigmbW1fc2hy aW5rZXIpOwotCVdBUk5fT04oIWxpc3RfZW1wdHkoJnNocmlua2VyX2xpc3QpKTsKIH0KZGlmZiAt LWdpdCBhL2luY2x1ZGUvZHJtL3R0bS90dG1fcG9vbC5oIGIvaW5jbHVkZS9kcm0vdHRtL3R0bV9w b29sLmgKaW5kZXggNDMyMTcyOGJkZDExLi40NjBhYjIzMmZkMjIgMTAwNjQ0Ci0tLSBhL2luY2x1 ZGUvZHJtL3R0bS90dG1fcG9vbC5oCisrKyBiL2luY2x1ZGUvZHJtL3R0bS90dG1fcG9vbC5oCkBA IC0zNiwyNyArMzYsNiBAQCBzdHJ1Y3QgdHRtX3R0Owogc3RydWN0IHR0bV9wb29sOwogc3RydWN0 IHR0bV9vcGVyYXRpb25fY3R4OwogCi0vKioKLSAqIHR0bV9wb29sX3R5cGUgLSBQb29sIGZvciBh IGNlcnRhaW4gbWVtb3J5IHR5cGUKLSAqCi0gKiBAcG9vbDogdGhlIHBvb2wgd2UgYmVsb25nIHRv LCBtaWdodCBiZSBOVUxMIGZvciB0aGUgZ2xvYmFsIG9uZXMKLSAqIEBvcmRlcjogdGhlIGFsbG9j YXRpb24gb3JkZXIgb3VyIHBhZ2VzIGhhdmUKLSAqIEBjYWNoaW5nOiB0aGUgY2FjaGluZyB0eXBl IG91ciBwYWdlcyBoYXZlCi0gKiBAc2hyaW5rZXJfbGlzdDogb3VyIHBsYWNlIG9uIHRoZSBnbG9i YWwgc2hyaW5rZXIgbGlzdAotICogQGxvY2s6IHByb3RlY3Rpb24gb2YgdGhlIHBhZ2UgbGlzdAot ICogQHBhZ2VzOiB0aGUgbGlzdCBvZiBwYWdlcyBpbiB0aGUgcG9vbAotICovCi1zdHJ1Y3QgdHRt X3Bvb2xfdHlwZSB7Ci0Jc3RydWN0IHR0bV9wb29sICpwb29sOwotCXVuc2lnbmVkIGludCBvcmRl cjsKLQllbnVtIHR0bV9jYWNoaW5nIGNhY2hpbmc7Ci0KLQlzdHJ1Y3QgbGlzdF9oZWFkIHNocmlu a2VyX2xpc3Q7Ci0KLQlzcGlubG9ja190IGxvY2s7Ci0Jc3RydWN0IGxpc3RfaGVhZCBwYWdlczsK LX07Ci0KIC8qKgogICogdHRtX3Bvb2wgLSBQb29sIGZvciBhbGwgY2FjaGluZyBhbmQgb3JkZXJz CiAgKgpAQCAtNzEsNyArNTAsNyBAQCBzdHJ1Y3QgdHRtX3Bvb2wgewogCWJvb2wgdXNlX2RtYTMy OwogCiAJc3RydWN0IHsKLQkJc3RydWN0IHR0bV9wb29sX3R5cGUgb3JkZXJzW01BWF9PUkRFUl07 CisJCXN0cnVjdCBkcm1fcGFnZV9wb29sICpvcmRlcnNbTUFYX09SREVSXTsKIAl9IGNhY2hpbmdb VFRNX05VTV9DQUNISU5HX1RZUEVTXTsKIH07CiAKLS0gCjIuMjUuMQoKX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApk cmktZGV2ZWxAbGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Au b3JnL21haWxtYW4vbGlzdGluZm8vZHJpLWRldmVsCg==