From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 36D06A0C41 for ; Wed, 6 Oct 2021 11:45:01 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id ED4804141F; Wed, 6 Oct 2021 11:45:00 +0200 (CEST) Received: from mail-pf1-f226.google.com (mail-pf1-f226.google.com [209.85.210.226]) by mails.dpdk.org (Postfix) with ESMTP id 687614141A for ; Wed, 6 Oct 2021 11:44:59 +0200 (CEST) Received: by mail-pf1-f226.google.com with SMTP id 187so1854596pfc.10 for ; Wed, 06 Oct 2021 02:44:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=iol.unh.edu; s=unh-iol; h=mime-version:subject:from:to:cc:message-id:date; bh=TkXEo1YCjxZDG1r97dS3u7im0NSeRQr8JQn/5eLjIPQ=; b=E9xsGrNE0yuovu7n2H7HSKRsDogeA9CmIqQcSuIAjkCRFGeeNpQrCVShPzlgns1h3D EekGMQXUia6dwhm8uDdaanYIZnDRCRu1KOPKmjpQdJt+8oJx0mxpUNeTC6708zPV06TG ioAvwXREGyqsYQkgbQU7nVQkCMFOEZ1x+/Vhg= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:subject:from:to:cc:message-id:date; bh=TkXEo1YCjxZDG1r97dS3u7im0NSeRQr8JQn/5eLjIPQ=; b=MmKRZsKM9GzqnaytfLBxij3vmDAQR6EC5CWl9BEgchRLNPwHwslrrcvIXbDtQWviLe UU/JoRM2tJ0R6nq8Go/yNZN6kf5kqeAPNyrE5tbRE6avZWrwKGsR52Uzw+G5kpG6CoZb IwDpsI3PKwYwqxT5cst54wCUzQLmcOuqye7Pxt/+1e4n+LrZm0X567FWt+AANKskDPaw +0YxWi3aqKiKWzldxQwGZBPmdp6YHeuUgKgi7KhyqXlPy99bM4sG6A2jOy31gqzoAgKe BX5PSqimPLHRrjt5reaAM8gUylaY7uqM/7ebnmrWTNXdfzEi8sC9vpbZjNP9IHIeLXp5 lrXA== X-Gm-Message-State: AOAM530PTeIt3wdF5awFKwKZTJByHZ+WcN29esrWn4KSqQeRGKSgLdtp aKdgq/7S++BUB19ZkGWRHNGSqZlThBPPjXLfHbBf1EY/akDhQA== X-Google-Smtp-Source: ABdhPJyUyui6PQYcwcU0nId80QGIuBgNEtDBm+P+WaetSF3cRbpV8TfhEYP1XENsgVJWDAekRlXyOuk89sQv X-Received: by 2002:a63:cd48:: with SMTP id a8mr20036685pgj.180.1633513498594; Wed, 06 Oct 2021 02:44:58 -0700 (PDT) Received: from postal.iol.unh.edu (postal.iol.unh.edu. [132.177.123.84]) by smtp-relay.gmail.com with ESMTPS id 4sm1201607pjb.6.2021.10.06.02.44.58 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Wed, 06 Oct 2021 02:44:58 -0700 (PDT) X-Relaying-Domain: iol.unh.edu Received: from noxus.dpdklab.iol.unh.edu (targon.iol.unh.edu [132.177.125.242]) by postal.iol.unh.edu (Postfix) with ESMTP id AE47E605247D; Wed, 6 Oct 2021 05:44:57 -0400 (EDT) Received: from noxus.dpdklab.iol.unh.edu (localhost [IPv6:::1]) by noxus.dpdklab.iol.unh.edu (Postfix) with ESMTP id A9B6D6D535; Wed, 6 Oct 2021 05:44:57 -0400 (EDT) Content-Type: multipart/mixed; boundary="===============8472681935904903646==" MIME-Version: 1.0 From: dpdklab@iol.unh.edu To: test-report@dpdk.org Cc: dpdk-test-reports@iol.unh.edu Message-Id: <20211006094457.A9B6D6D535@noxus.dpdklab.iol.unh.edu> Date: Wed, 6 Oct 2021 05:44:57 -0400 (EDT) Subject: [dpdk-test-report] |WARNING| pw99589 [PATCH] common/cpt: rework pending queue X-BeenThere: test-report@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: automatic DPDK test reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: test-report-bounces@dpdk.org Sender: "test-report" --===============8472681935904903646== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGVzdC1MYWJlbDogaW9sLXRlc3RpbmcKVGVzdC1TdGF0dXM6IFdBUk5JTkcKaHR0cDovL2RwZGsu b3JnL3BhdGNoLzk5NTg5CgpfYXBwbHkgcGF0Y2ggZmFpbHVyZV8KClN1Ym1pdHRlcjogQW5vb2Ig Sm9zZXBoIDxhbm9vYmpAbWFydmVsbC5jb20+CkRhdGU6IEZyaWRheSwgU2VwdGVtYmVyIDI0IDIw MjEgMTE6MjA6MzYgCkFwcGxpZWQgb246IENvbW1pdElEOjI3MDAzMjYwODUwMzNmZDEzMzM5YThk ZTMxZjU4YTk1ZDFlZTljM2YKQXBwbHkgcGF0Y2ggc2V0IDk5NTg5IGZhaWxlZDoKCkNoZWNraW5n IHBhdGNoIGRvYy9ndWlkZXMvY3J5cHRvZGV2cy9vY3Rlb250eC5yc3QuLi4KZXJyb3I6IHdoaWxl IHNlYXJjaGluZyBmb3I6CgogICAgICAgIC4vZHBkay10ZXN0CiAgICAgICAgUlRFPj5jcnlwdG9k ZXZfb2N0ZW9udHhfYXN5bV9hdXRvdGVzdAoKTGltaXRhdGlvbnMKLS0tLS0tLS0tLS0KCk11bHRp cGxlIGxjb3JlcyBtYXkgbm90IG9wZXJhdGUgb24gdGhlIHNhbWUgY3J5cHRvIHF1ZXVlIHBhaXIu IFRoZSBsY29yZSB0aGF0CmVucXVldWVzIHRvIGEgcXVldWUgcGFpciBpcyB0aGUgb25lIHRoYXQg bXVzdCBkZXF1ZXVlIGZyb20gaXQuCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkb2MvZ3VpZGVzL2Ny eXB0b2RldnMvb2N0ZW9udHgucnN0OjEzNQpDaGVja2luZyBwYXRjaCBkb2MvZ3VpZGVzL2NyeXB0 b2RldnMvb2N0ZW9udHgyLnJzdC4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKKiBBRVMt MTI4LzE5Mi8yNTYtR0NNCiogQUVTLTEyOC8xOTIvMjU2LUNCQy1TSEExLUhNQUMKKiBBRVMtMTI4 LzE5Mi8yNTYtQ0JDLVNIQTI1Ni0xMjgtSE1BQwoKTGltaXRhdGlvbnMKLS0tLS0tLS0tLS0KCk11 bHRpcGxlIGxjb3JlcyBtYXkgbm90IG9wZXJhdGUgb24gdGhlIHNhbWUgY3J5cHRvIHF1ZXVlIHBh aXIuIFRoZSBsY29yZSB0aGF0CmVucXVldWVzIHRvIGEgcXVldWUgcGFpciBpcyB0aGUgb25lIHRo YXQgbXVzdCBkZXF1ZXVlIGZyb20gaXQuCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkb2MvZ3VpZGVz L2NyeXB0b2RldnMvb2N0ZW9udHgyLnJzdDoxODYKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9jb21t b24vY3B0L2NwdF9jb21tb24uaC4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKI2lmbmRl ZiBfQ1BUX0NPTU1PTl9IXwojZGVmaW5lIF9DUFRfQ09NTU9OX0hfCgojaW5jbHVkZSA8cnRlX21l bXBvb2wuaD4KCi8qCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL2NvbW1vbi9jcHQvY3B0 X2NvbW1vbi5oOjUKZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CiAqCiAqLwpzdHJ1Y3QgcGVu ZGluZ19xdWV1ZSB7CgkvKiogUGVuZGluZyByZXF1ZXN0cyBjb3VudCAqLwoJdWludDY0X3QgcGVu ZGluZ19jb3VudDsKCS8qKiBBcnJheSBvZiBwZW5kaW5nIHJlcXVlc3RzICovCgl1aW50cHRyX3Qg KnJlcV9xdWV1ZTsKCS8qKiBUYWlsIG9mIHF1ZXVlIHRvIGJlIHVzZWQgZm9yIGVucXVldWUgKi8K CXVpbnQxNl90IGVucV90YWlsOwoJLyoqIEhlYWQgb2YgcXVldWUgdG8gYmUgdXNlZCBmb3IgZGVx dWV1ZSAqLwoJdWludDE2X3QgZGVxX2hlYWQ7Cn07CgpzdHJ1Y3QgY3B0X3JlcXVlc3RfaW5mbyB7 CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL2NvbW1vbi9jcHQvY3B0X2NvbW1vbi5oOjMy CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJdWludDhfdCBleHRyYV90aW1lOwp9IF9fcnRl X2FsaWduZWQoOCk7CgojZW5kaWYgLyogX0NQVF9DT01NT05fSF8gKi8KCmVycm9yOiBwYXRjaCBm YWlsZWQ6IGRyaXZlcnMvY29tbW9uL2NwdC9jcHRfY29tbW9uLmg6NjEKQ2hlY2tpbmcgcGF0Y2gg ZHJpdmVycy9jcnlwdG8vb2N0ZW9udHgvb3R4X2NyeXB0b2Rldl9od19hY2Nlc3MuYy4uLgplcnJv cjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCW1lbXNldCgmY3B0dmYtPnBxdWV1ZSwgMCwgc2l6ZW9m KGNwdHZmLT5wcXVldWUpKTsKCgkvKiBDaHVua3MgYXJlIG9mIGZpeGVkIHNpemUgYnVmZmVycyAq LwoJY2h1bmtzID0gREVGQVVMVF9DTURfUUNIVU5LUzsKCWNodW5rX2xlbiA9IERFRkFVTFRfQ01E X1FDSFVOS19TSVpFOwoKCXFsZW4gPSBjaHVua3MgKiBjaHVua19sZW47CgkvKiBDaHVuayBzaXpl IGluY2x1ZGVzIDggYnl0ZXMgb2YgbmV4dCBjaHVuayBwdHIgKi8KCWNodW5rX3NpemUgPSBjaHVu a19sZW4gKiBDUFRfSU5TVF9TSVpFICsgQ1BUX05FWFRfQ0hVTktfUFRSX1NJWkU7CgoKZXJyb3I6 IHBhdGNoIGZhaWxlZDogZHJpdmVycy9jcnlwdG8vb2N0ZW9udHgvb3R4X2NyeXB0b2Rldl9od19h Y2Nlc3MuYzo1MjcKZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglsZW4gPSBjaHVua3MgKiBS VEVfQUxJR04oc2l6ZW9mKHN0cnVjdCBjb21tYW5kX2NodW5rKSwgOCk7CgoJLyogRm9yIHBlbmRp bmcgcXVldWUgKi8KCWxlbiArPSBxbGVuICogc2l6ZW9mKHVpbnRwdHJfdCk7CgoJLyogU28gdGhh dCBpbnN0cnVjdGlvbiBxdWV1ZXMgc3RhcnQgYXMgcGcgc2l6ZSBhbGlnbmVkICovCglsZW4gPSBS VEVfQUxJR04obGVuLCBwZ19zeik7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL2NyeXB0 by9vY3Rlb250eC9vdHhfY3J5cHRvZGV2X2h3X2FjY2Vzcy5jOjUzOAplcnJvcjogd2hpbGUgc2Vh cmNoaW5nIGZvcjoKCX0KCgkvKiBQZW5kaW5nIHF1ZXVlIHNldHVwICovCgljcHR2Zi0+cHF1ZXVl LnJlcV9xdWV1ZSA9ICh1aW50cHRyX3QgKiltZW07CgljcHR2Zi0+cHF1ZXVlLmVucV90YWlsID0g MDsKCWNwdHZmLT5wcXVldWUuZGVxX2hlYWQgPSAwOwoJY3B0dmYtPnBxdWV1ZS5wZW5kaW5nX2Nv dW50ID0gMDsKCgltZW0gKz0gIHFsZW4gKiBzaXplb2YodWludHB0cl90KTsKCWxlbiAtPSAgcWxl biAqIHNpemVvZih1aW50cHRyX3QpOwoJZG1hX2FkZHIgKz0gcWxlbiAqIHNpemVvZih1aW50cHRy X3QpOwoKCS8qIEFsaWdubWVudCB3YXN0YWdlICovCgl1c2VkX2xlbiA9IGFsbG9jX2xlbiAtIGxl bjsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvY3J5cHRvL29jdGVvbnR4L290eF9jcnlw dG9kZXZfaHdfYWNjZXNzLmM6NTczCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvY3J5cHRvL29jdGVv bnR4L290eF9jcnlwdG9kZXZfaHdfYWNjZXNzLmguLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBm b3I6CiNkZWZpbmUgQ1BUX0lOVFJfUE9MTF9JTlRFUlZBTF9NUwkoNTApCgovKiBEZWZhdWx0IGNv bW1hbmQgcXVldWUgbGVuZ3RoICovCiNkZWZpbmUgREVGQVVMVF9DTURfUUNIVU5LUwkJMgojZGVm aW5lIERFRkFVTFRfQ01EX1FDSFVOS19TSVpFCQkxMDIzCiNkZWZpbmUgREVGQVVMVF9DTURfUUxF TiBcCgkJKERFRkFVTFRfQ01EX1FDSFVOS19TSVpFICogREVGQVVMVF9DTURfUUNIVU5LUykKCiNk ZWZpbmUgQ1BUX0NTUl9SRUdfQkFTRShjcHQpCQkoKGNwdCktPnJlZ19iYXNlKQoKCmVycm9yOiBw YXRjaCBmYWlsZWQ6IGRyaXZlcnMvY3J5cHRvL29jdGVvbnR4L290eF9jcnlwdG9kZXZfaHdfYWNj ZXNzLmg6MjMKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9jcnlwdG8vb2N0ZW9udHgvb3R4X2NyeXB0 b2Rldl9vcHMuYy4uLgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCnN0YXRpYyBfX3J0ZV9h bHdheXNfaW5saW5lIHZvaWQgKiBfX3J0ZV9ob3QKb3R4X2NwdF9yZXF1ZXN0X2VucXVldWUoc3Ry dWN0IGNwdF9pbnN0YW5jZSAqaW5zdGFuY2UsCgkJCXN0cnVjdCBwZW5kaW5nX3F1ZXVlICpwcXVl dWUsCgkJCXZvaWQgKnJlcSwgdWludDY0X3QgY3B0X2luc3RfdzcpCnsKCXN0cnVjdCBjcHRfcmVx dWVzdF9pbmZvICp1c2VyX3JlcSA9IChzdHJ1Y3QgY3B0X3JlcXVlc3RfaW5mbyAqKXJlcTsKCglp ZiAodW5saWtlbHkocHF1ZXVlLT5wZW5kaW5nX2NvdW50ID49IERFRkFVTFRfQ01EX1FMRU4pKSB7 CgkJcnRlX2Vycm5vID0gRUFHQUlOOwoJCXJldHVybiBOVUxMOwoJfQoKCWZpbGxfY3B0X2luc3Qo aW5zdGFuY2UsIHJlcSwgY3B0X2luc3RfdzcpOwoKCUNQVF9MT0dfRFBfREVCVUcoInJlcTogJXAg b3A6ICVwICIsIHJlcSwgdXNlcl9yZXEtPm9wKTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZl cnMvY3J5cHRvL29jdGVvbnR4L290eF9jcnlwdG9kZXZfb3BzLmM6NDMxCmVycm9yOiB3aGlsZSBz ZWFyY2hpbmcgZm9yOgoKc3RhdGljIF9fcnRlX2Fsd2F5c19pbmxpbmUgdm9pZCAqIF9fcnRlX2hv dApvdHhfY3B0X2VucV9zaW5nbGVfYXN5bShzdHJ1Y3QgY3B0X2luc3RhbmNlICppbnN0YW5jZSwK CQkJc3RydWN0IHJ0ZV9jcnlwdG9fb3AgKm9wLAoJCQlzdHJ1Y3QgcGVuZGluZ19xdWV1ZSAqcHF1 ZXVlKQp7CglzdHJ1Y3QgY3B0X3FwX21ldGFfaW5mbyAqbWluZm8gPSAmaW5zdGFuY2UtPm1ldGFf aW5mbzsKCXN0cnVjdCBydGVfY3J5cHRvX2FzeW1fb3AgKmFzeW1fb3AgPSBvcC0+YXN5bTsKCmVy cm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvY3J5cHRvL29jdGVvbnR4L290eF9jcnlwdG9kZXZf b3BzLmM6NDYwCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCWdvdG8gcmVxX2ZhaWw7Cgl9 CgoJcmVxID0gb3R4X2NwdF9yZXF1ZXN0X2VucXVldWUoaW5zdGFuY2UsIHBxdWV1ZSwgcGFyYW1z LnJlcSwKCQkJCSAgICAgIHNlc3MtPmNwdF9pbnN0X3c3KTsKCWlmICh1bmxpa2VseShyZXEgPT0g TlVMTCkpIHsKCQlDUFRfTE9HX0RQX0VSUigiQ291bGQgbm90IGVucXVldWUgY3J5cHRvIHJlcSIp OwoJCWdvdG8gcmVxX2ZhaWw7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL2NyeXB0by9v Y3Rlb250eC9vdHhfY3J5cHRvZGV2X29wcy5jOjUyNQplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZv cjoKCnN0YXRpYyBfX3J0ZV9hbHdheXNfaW5saW5lIHZvaWQgKiBfX3J0ZV9ob3QKb3R4X2NwdF9l bnFfc2luZ2xlX3N5bShzdHJ1Y3QgY3B0X2luc3RhbmNlICppbnN0YW5jZSwKCQkgICAgICAgc3Ry dWN0IHJ0ZV9jcnlwdG9fb3AgKm9wLAoJCSAgICAgICBzdHJ1Y3QgcGVuZGluZ19xdWV1ZSAqcHF1 ZXVlKQp7CglzdHJ1Y3QgY3B0X3Nlc3NfbWlzYyAqc2VzczsKCXN0cnVjdCBydGVfY3J5cHRvX3N5 bV9vcCAqc3ltX29wID0gb3AtPnN5bTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvY3J5 cHRvL29jdGVvbnR4L290eF9jcnlwdG9kZXZfb3BzLmM6NTQyCmVycm9yOiB3aGlsZSBzZWFyY2hp bmcgZm9yOgoJfQoKCS8qIEVucXVldWUgcHJlcGFyZWQgaW5zdHJ1Y3Rpb24gdG8gaC93ICovCgly ZXEgPSBvdHhfY3B0X3JlcXVlc3RfZW5xdWV1ZShpbnN0YW5jZSwgcHF1ZXVlLCBwcmVwX3JlcSwK CQkJCSAgICAgIHNlc3MtPmNwdF9pbnN0X3c3KTsKCWlmICh1bmxpa2VseShyZXEgPT0gTlVMTCkp CgkJLyogQnVmZmVyIGFsbG9jYXRlZCBmb3IgcmVxdWVzdCBwcmVwYXJhdGlvbiBuZWVkIHRvIGJl IGZyZWVkICovCgkJZnJlZV9vcF9tZXRhKG1kYXRhLCBpbnN0YW5jZS0+bWV0YV9pbmZvLnBvb2wp OwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9jcnlwdG8vb2N0ZW9udHgvb3R4X2NyeXB0 b2Rldl9vcHMuYzo1NzMKZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgpzdGF0aWMgX19ydGVf YWx3YXlzX2lubGluZSB2b2lkICogX19ydGVfaG90Cm90eF9jcHRfZW5xX3NpbmdsZV9zeW1fc2Vz c2xlc3Moc3RydWN0IGNwdF9pbnN0YW5jZSAqaW5zdGFuY2UsCgkJCQlzdHJ1Y3QgcnRlX2NyeXB0 b19vcCAqb3AsCgkJCQlzdHJ1Y3QgcGVuZGluZ19xdWV1ZSAqcGVuZF9xKQp7Cgljb25zdCBpbnQg ZHJpdmVyX2lkID0gb3R4X2NyeXB0b2Rldl9kcml2ZXJfaWQ7CglzdHJ1Y3QgcnRlX2NyeXB0b19z eW1fb3AgKnN5bV9vcCA9IG9wLT5zeW07CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL2Ny eXB0by9vY3Rlb250eC9vdHhfY3J5cHRvZGV2X29wcy5jOjU4NAplcnJvcjogd2hpbGUgc2VhcmNo aW5nIGZvcjoKCglzeW1fb3AtPnNlc3Npb24gPSBzZXNzOwoKCXJlcSA9IG90eF9jcHRfZW5xX3Np bmdsZV9zeW0oaW5zdGFuY2UsIG9wLCBwZW5kX3EpOwoKCWlmICh1bmxpa2VseShyZXEgPT0gTlVM TCkpCgkJZ290byBwcml2X3B1dDsKCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL2NyeXB0 by9vY3Rlb250eC9vdHhfY3J5cHRvZGV2X29wcy5jOjYwNwplcnJvcjogd2hpbGUgc2VhcmNoaW5n IGZvcjoKc3RhdGljIF9fcnRlX2Fsd2F5c19pbmxpbmUgdm9pZCAqX19ydGVfaG90Cm90eF9jcHRf ZW5xX3NpbmdsZShzdHJ1Y3QgY3B0X2luc3RhbmNlICppbnN0LAoJCSAgIHN0cnVjdCBydGVfY3J5 cHRvX29wICpvcCwKCQkgICBzdHJ1Y3QgcGVuZGluZ19xdWV1ZSAqcHF1ZXVlLAoJCSAgIGNvbnN0 IHVpbnQ4X3Qgb3BfdHlwZSkKewoJLyogQ2hlY2sgZm9yIHRoZSB0eXBlICovCgoJaWYgKG9wX3R5 cGUgPT0gT1BfVFlQRV9TWU0pIHsKCQlpZiAob3AtPnNlc3NfdHlwZSA9PSBSVEVfQ1JZUFRPX09Q X1dJVEhfU0VTU0lPTikKCQkJcmV0dXJuIG90eF9jcHRfZW5xX3NpbmdsZV9zeW0oaW5zdCwgb3As IHBxdWV1ZSk7CgkJZWxzZQoJCQlyZXR1cm4gb3R4X2NwdF9lbnFfc2luZ2xlX3N5bV9zZXNzbGVz cyhpbnN0LCBvcCwKCQkJCQkJCSAgICAgICBwcXVldWUpOwoJfQoKCWlmIChvcF90eXBlID09IE9Q X1RZUEVfQVNZTSkgewoJCWlmIChvcC0+c2Vzc190eXBlID09IFJURV9DUllQVE9fT1BfV0lUSF9T RVNTSU9OKQoJCQlyZXR1cm4gb3R4X2NwdF9lbnFfc2luZ2xlX2FzeW0oaW5zdCwgb3AsIHBxdWV1 ZSk7Cgl9CgoJLyogU2hvdWxkIG5vdCByZWFjaCBoZXJlICovCgplcnJvcjogcGF0Y2ggZmFpbGVk OiBkcml2ZXJzL2NyeXB0by9vY3Rlb250eC9vdHhfY3J5cHRvZGV2X29wcy5jOjYyNwplcnJvcjog d2hpbGUgc2VhcmNoaW5nIGZvcjoKCQkgICAgY29uc3QgdWludDhfdCBvcF90eXBlKQp7CglzdHJ1 Y3QgY3B0X2luc3RhbmNlICppbnN0YW5jZSA9IChzdHJ1Y3QgY3B0X2luc3RhbmNlICopcXB0cjsK CXVpbnQxNl90IGNvdW50OwoJdm9pZCAqcmVxOwoJc3RydWN0IGNwdF92ZiAqY3B0dmYgPSAoc3Ry dWN0IGNwdF92ZiAqKWluc3RhbmNlOwoJc3RydWN0IHBlbmRpbmdfcXVldWUgKnBxdWV1ZSA9ICZj cHR2Zi0+cHF1ZXVlOwoKCWNvdW50ID0gREVGQVVMVF9DTURfUUxFTiAtIHBxdWV1ZS0+cGVuZGlu Z19jb3VudDsKCWlmIChuYl9vcHMgPiBjb3VudCkKCQluYl9vcHMgPSBjb3VudDsKCgljb3VudCA9 IDA7Cgl3aGlsZSAobGlrZWx5KGNvdW50IDwgbmJfb3BzKSkgewoKCQkvKiBFbnF1ZXVlIHNpbmds ZSBvcCAqLwoJCXJlcSA9IG90eF9jcHRfZW5xX3NpbmdsZShpbnN0YW5jZSwgb3BzW2NvdW50XSwg cHF1ZXVlLCBvcF90eXBlKTsKCgkJaWYgKHVubGlrZWx5KHJlcSA9PSBOVUxMKSkKCQkJYnJlYWs7 CgoJCXBxdWV1ZS0+cmVxX3F1ZXVlW3BxdWV1ZS0+ZW5xX3RhaWxdID0gKHVpbnRwdHJfdClyZXE7 CgkJTU9EX0lOQyhwcXVldWUtPmVucV90YWlsLCBERUZBVUxUX0NNRF9RTEVOKTsKCQlwcXVldWUt PnBlbmRpbmdfY291bnQgKz0gMTsKCQljb3VudCsrOwoJfQoJb3R4X2NwdF9yaW5nX2RiZWxsKGlu c3RhbmNlLCBjb3VudCk7CglyZXR1cm4gY291bnQ7Cn0KCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBk cml2ZXJzL2NyeXB0by9vY3Rlb250eC9vdHhfY3J5cHRvZGV2X29wcy5jOjY1NQplcnJvcjogd2hp bGUgc2VhcmNoaW5nIGZvcjoKCglvcF90eXBlID0gb3AtPnR5cGUgPT0gUlRFX0NSWVBUT19PUF9U WVBFX1NZTU1FVFJJQyA/IE9QX1RZUEVfU1lNIDoKCQkJCQkJCSAgICAgT1BfVFlQRV9BU1lNOwoJ cmVxID0gb3R4X2NwdF9lbnFfc2luZ2xlKGluc3RhbmNlLCBvcCwKCQkJCSAmKChzdHJ1Y3QgY3B0 X3ZmICopaW5zdGFuY2UpLT5wcXVldWUsIG9wX3R5cGUpOwoJaWYgKHVubGlrZWx5KHJlcSA9PSBO VUxMKSkKCQlyZXR1cm4gMDsKCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL2NyeXB0by9v Y3Rlb250eC9vdHhfY3J5cHRvZGV2X29wcy5jOjc1NgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZv cjoKCWludCBuYl9jb21wbGV0ZWQ7CglzdHJ1Y3QgcGVuZGluZ19xdWV1ZSAqcHF1ZXVlID0gJmNw dHZmLT5wcXVldWU7CgoJcGNvdW50ID0gcHF1ZXVlLT5wZW5kaW5nX2NvdW50OwoJY291bnQgPSAo bmJfb3BzID4gcGNvdW50KSA/IHBjb3VudCA6IG5iX29wczsKCglmb3IgKGkgPSAwOyBpIDwgY291 bnQ7IGkrKykgewoJCXVzZXJfcmVxID0gKHN0cnVjdCBjcHRfcmVxdWVzdF9pbmZvICopCgkJCQlw cXVldWUtPnJlcV9xdWV1ZVtwcXVldWUtPmRlcV9oZWFkXTsKCgkJaWYgKGxpa2VseSgoaSsxKSA8 IGNvdW50KSkgewoJCQlydGVfcHJlZmV0Y2hfbm9uX3RlbXBvcmFsKAoJCQkJKHZvaWQgKilwcXVl dWUtPnJlcV9xdWV1ZVtpKzFdKTsKCQl9CgoJCXJldCA9IGNoZWNrX25iX2NvbW1hbmRfaWQodXNl cl9yZXEsIGluc3RhbmNlKTsKCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL2NyeXB0by9v Y3Rlb250eC9vdHhfY3J5cHRvZGV2X29wcy5jOjk3MQplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZv cjoKCQlDUFRfTE9HX0RQX0RFQlVHKCJSZXF1ZXN0ICVwIE9wICVwIGNvbXBsZXRlZCB3aXRoIGNv ZGUgJWQiLAoJCQkJIHVzZXJfcmVxLCB1c2VyX3JlcS0+b3AsIHJldCk7CgoJCU1PRF9JTkMocHF1 ZXVlLT5kZXFfaGVhZCwgREVGQVVMVF9DTURfUUxFTik7CgkJcHF1ZXVlLT5wZW5kaW5nX2NvdW50 IC09IDE7Cgl9CgoJbmJfY29tcGxldGVkID0gaTsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZl cnMvY3J5cHRvL29jdGVvbnR4L290eF9jcnlwdG9kZXZfb3BzLmM6OTk3CkNoZWNraW5nIHBhdGNo IGRyaXZlcnMvY3J5cHRvL29jdGVvbnR4Mi9vdHgyX2NyeXB0b2Rldl9od19hY2Nlc3MuaC4uLgpl cnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKI2luY2x1ZGUgIm90eDJfZGV2LmgiCiNpbmNsdWRl ICJvdHgyX2NyeXB0b2Rldl9xcC5oIgoKLyogQ1BUIGluc3RydWN0aW9uIHF1ZXVlIGxlbmd0aCAq LwojZGVmaW5lIE9UWDJfQ1BUX0lRX0xFTgkJCTgyMDAKCiNkZWZpbmUgT1RYMl9DUFRfREVGQVVM VF9DTURfUUxFTglPVFgyX0NQVF9JUV9MRU4KCi8qIE1hc2sgd2hpY2ggc2VsZWN0cyBhbGwgZW5n aW5lIGdyb3VwcyAqLwojZGVmaW5lIE9UWDJfQ1BUX0VOR19HUlBTX01BU0sJCTB4RkYKCmVycm9y OiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvY3J5cHRvL29jdGVvbnR4Mi9vdHgyX2NyeXB0b2Rldl9o d19hY2Nlc3MuaDoxNwpDaGVja2luZyBwYXRjaCBkcml2ZXJzL2NyeXB0by9vY3Rlb250eDIvb3R4 Ml9jcnlwdG9kZXZfb3BzLmMuLi4KZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CnsKCWNoYXIg bWVtcG9vbF9uYW1lW1JURV9NRU1QT09MX05BTUVTSVpFXTsKCXN0cnVjdCBjcHRfcXBfbWV0YV9p bmZvICptZXRhX2luZm87CglpbnQgcmV0LCBtYXhfbWxlbiwgbWJfcG9vbF9zejsKCXN0cnVjdCBy dGVfbWVtcG9vbCAqcG9vbDsKCWludCBhc3ltX21sZW4gPSAwOwoKZXJyb3I6IHBhdGNoIGZhaWxl ZDogZHJpdmVycy9jcnlwdG8vb2N0ZW9udHgyL290eDJfY3J5cHRvZGV2X29wcy5jOjQ5CmVycm9y OiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJc25wcmludGYobWVtcG9vbF9uYW1lLCBSVEVfTUVNUE9P TF9OQU1FU0laRSwgIm90eDJfY3B0X21iXyV1OiV1IiwKCQkgZGV2LT5kYXRhLT5kZXZfaWQsIHFw X2lkKTsKCgltYl9wb29sX3N6ID0gUlRFX01BWChuYl9lbGVtZW50cywgKE1FVEFCVUZfUE9PTF9D QUNIRV9TSVpFICogcnRlX2xjb3JlX2NvdW50KCkpKTsKCglwb29sID0gcnRlX21lbXBvb2xfY3Jl YXRlX2VtcHR5KG1lbXBvb2xfbmFtZSwgbWJfcG9vbF9zeiwgbWF4X21sZW4sCgkJCQkJTUVUQUJV Rl9QT09MX0NBQ0hFX1NJWkUsIDAsCgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL2NyeXB0 by9vY3Rlb250eDIvb3R4Ml9jcnlwdG9kZXZfb3BzLmM6ODcKZXJyb3I6IHdoaWxlIHNlYXJjaGlu ZyBmb3I6CgkJcmV0dXJuIE5VTEw7Cgl9CgoJaXFfbGVuID0gT1RYMl9DUFRfSVFfTEVOOwoKCS8q CgkgKiBRdWV1ZSBzaXplIG11c3QgYmUgYSBtdWx0aXBsZSBvZiA0MCBhbmQgZWZmZWN0aXZlIHF1 ZXVlIHNpemUgdG8KCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvY3J5cHRvL29jdGVvbnR4 Mi9vdHgyX2NyeXB0b2Rldl9vcHMuYzoxODcKZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6Cglz aXplX2RpdjQwID0gKGlxX2xlbiArIDQwIC0gMSkgLyA0MCArIDE7CgoJLyogRm9yIHBlbmRpbmcg cXVldWUgKi8KCWxlbiA9IGlxX2xlbiAqIHNpemVvZih1aW50cHRyX3QpOwoKCS8qIFNwYWNlIGZv ciBpbnN0cnVjdGlvbiBncm91cCBtZW1vcnkgKi8KCWxlbiArPSBzaXplX2RpdjQwICogMTY7Cgpl cnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL2NyeXB0by9vY3Rlb250eDIvb3R4Ml9jcnlwdG9k ZXZfb3BzLmM6MTk2CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJbGVuID0gUlRFX0FMSUdO KGxlbiwgcGdfc3opOwoKCS8qIEZvciBpbnN0cnVjdGlvbiBxdWV1ZXMgKi8KCWxlbiArPSBPVFgy X0NQVF9JUV9MRU4gKiBzaXplb2YodW5pb24gY3B0X2luc3Rfcyk7CgoJLyogV2FzdGFnZSBhZnRl ciBpbnN0cnVjdGlvbiBxdWV1ZXMgKi8KCWxlbiA9IFJURV9BTElHTihsZW4sIHBnX3N6KTsKCmVy cm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvY3J5cHRvL29jdGVvbnR4Mi9vdHgyX2NyeXB0b2Rl dl9vcHMuYzoyMDUKZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6Cgl9CgoJLyogSW5pdGlhbGl6 ZSBwZW5kaW5nIHF1ZXVlICovCglxcC0+cGVuZF9xLnJlcV9xdWV1ZSA9ICh1aW50cHRyX3QgKil2 YTsKCXFwLT5wZW5kX3EuZW5xX3RhaWwgPSAwOwoJcXAtPnBlbmRfcS5kZXFfaGVhZCA9IDA7Cglx cC0+cGVuZF9xLnBlbmRpbmdfY291bnQgPSAwOwoKCXVzZWRfbGVuID0gaXFfbGVuICogc2l6ZW9m KHVpbnRwdHJfdCk7Cgl1c2VkX2xlbiArPSBzaXplX2RpdjQwICogMTY7Cgl1c2VkX2xlbiA9IFJU RV9BTElHTih1c2VkX2xlbiwgcGdfc3opOwoJaW92YSArPSB1c2VkX2xlbjsKCmVycm9yOiBwYXRj aCBmYWlsZWQ6IGRyaXZlcnMvY3J5cHRvL29jdGVvbnR4Mi9vdHgyX2NyeXB0b2Rldl9vcHMuYzoy MzMKZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJICAgICBzdHJ1Y3QgcGVuZGluZ19xdWV1 ZSAqcGVuZF9xLAoJCSAgICAgc3RydWN0IGNwdF9yZXF1ZXN0X2luZm8gKnJlcSwKCQkgICAgIHN0 cnVjdCBydGVfY3J5cHRvX29wICpvcCwKCQkgICAgIHVpbnQ2NF90IGNwdF9pbnN0X3c3KQp7Cgl2 b2lkICpsbXRsaW5lID0gcXAtPmxtdGxpbmU7Cgl1bmlvbiBjcHRfaW5zdF9zIGluc3Q7CgplcnJv cjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL2NyeXB0by9vY3Rlb250eDIvb3R4Ml9jcnlwdG9kZXZf b3BzLmM6NTE0CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJaWYgKHFwLT5jYV9lbmFibGUp CgkJcmV0dXJuIG90eDJfY2FfZW5xdWV1ZV9yZXEocXAsIHJlcSwgbG10bGluZSwgb3AsIGNwdF9p bnN0X3c3KTsKCglpZiAodW5saWtlbHkocGVuZF9xLT5wZW5kaW5nX2NvdW50ID49IE9UWDJfQ1BU X0RFRkFVTFRfQ01EX1FMRU4pKQoJCXJldHVybiAtRUFHQUlOOwoKCWluc3QudVswXSA9IDA7Cglp bnN0LnM5eC5yZXNfYWRkciA9IHJlcS0+Y29tcF9iYWRkcjsKCWluc3QudVsyXSA9IDA7CgplcnJv cjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL2NyeXB0by9vY3Rlb250eDIvb3R4Ml9jcnlwdG9kZXZf b3BzLmM6NTIzCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJCWxtdF9zdGF0dXMgPSBvdHgy X2xtdF9zdWJtaXQocXAtPmxmX25xX3JlZyk7Cgl9IHdoaWxlIChsbXRfc3RhdHVzID09IDApOwoK CXBlbmRfcS0+cmVxX3F1ZXVlW3BlbmRfcS0+ZW5xX3RhaWxdID0gKHVpbnRwdHJfdClyZXE7CgoJ LyogV2Ugd2lsbCB1c2Ugc29mdCBxdWV1ZSBsZW5ndGggaGVyZSB0byBsaW1pdCByZXF1ZXN0cyAq LwoJTU9EX0lOQyhwZW5kX3EtPmVucV90YWlsLCBPVFgyX0NQVF9ERUZBVUxUX0NNRF9RTEVOKTsK CXBlbmRfcS0+cGVuZGluZ19jb3VudCArPSAxOwoKCXJldHVybiAwOwp9CgplcnJvcjogcGF0Y2gg ZmFpbGVkOiBkcml2ZXJzL2NyeXB0by9vY3Rlb250eDIvb3R4Ml9jcnlwdG9kZXZfb3BzLmM6NTUz CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgpzdGF0aWMgX19ydGVfYWx3YXlzX2lubGluZSBp bnQzMl90IF9fcnRlX2hvdApvdHgyX2NwdF9lbnF1ZXVlX2FzeW0oc3RydWN0IG90eDJfY3B0X3Fw ICpxcCwKCQkgICAgICBzdHJ1Y3QgcnRlX2NyeXB0b19vcCAqb3AsCgkJICAgICAgc3RydWN0IHBl bmRpbmdfcXVldWUgKnBlbmRfcSkKewoJc3RydWN0IGNwdF9xcF9tZXRhX2luZm8gKm1pbmZvID0g JnFwLT5tZXRhX2luZm87CglzdHJ1Y3QgcnRlX2NyeXB0b19hc3ltX29wICphc3ltX29wID0gb3At PmFzeW07CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL2NyeXB0by9vY3Rlb250eDIvb3R4 Ml9jcnlwdG9kZXZfb3BzLmM6NTY1CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJfQoKCXJl dCA9IG90eDJfY3B0X2VucXVldWVfcmVxKHFwLCBwZW5kX3EsIHBhcmFtcy5yZXEsIG9wLAoJCQkJ ICAgc2Vzcy0+Y3B0X2luc3RfdzcpOwoKCWlmICh1bmxpa2VseShyZXQpKSB7CgkJQ1BUX0xPR19E UF9FUlIoIkNvdWxkIG5vdCBlbnF1ZXVlIGNyeXB0byByZXEiKTsKCQlnb3RvIHJlcV9mYWlsOwoK ZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9jcnlwdG8vb2N0ZW9udHgyL290eDJfY3J5cHRv ZGV2X29wcy5jOjYyNgplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCnN0YXRpYyBfX3J0ZV9h bHdheXNfaW5saW5lIGludCBfX3J0ZV9ob3QKb3R4Ml9jcHRfZW5xdWV1ZV9zeW0oc3RydWN0IG90 eDJfY3B0X3FwICpxcCwgc3RydWN0IHJ0ZV9jcnlwdG9fb3AgKm9wLAoJCSAgICAgc3RydWN0IHBl bmRpbmdfcXVldWUgKnBlbmRfcSkKewoJc3RydWN0IHJ0ZV9jcnlwdG9fc3ltX29wICpzeW1fb3Ag PSBvcC0+c3ltOwoJc3RydWN0IGNwdF9yZXF1ZXN0X2luZm8gKnJlcTsKCmVycm9yOiBwYXRjaCBm YWlsZWQ6IGRyaXZlcnMvY3J5cHRvL29jdGVvbnR4Mi9vdHgyX2NyeXB0b2Rldl9vcHMuYzo2NDMK ZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CgkJcmV0dXJuIHJldDsKCX0KCglyZXQgPSBvdHgy X2NwdF9lbnF1ZXVlX3JlcShxcCwgcGVuZF9xLCByZXEsIG9wLCBzZXNzLT5jcHRfaW5zdF93Nyk7 CgoJaWYgKHVubGlrZWx5KHJldCkpIHsKCQkvKiBGcmVlIGJ1ZmZlciBhbGxvY2F0ZWQgYnkgZmls bCBwYXJhbXMgcm91dGluZXMgKi8KCQlmcmVlX29wX21ldGEobWRhdGEsIHFwLT5tZXRhX2luZm8u cG9vbCk7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL2NyeXB0by9vY3Rlb250eDIvb3R4 Ml9jcnlwdG9kZXZfb3BzLmM6NjcwCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoKc3RhdGlj IF9fcnRlX2Fsd2F5c19pbmxpbmUgaW50IF9fcnRlX2hvdApvdHgyX2NwdF9lbnF1ZXVlX3NlYyhz dHJ1Y3Qgb3R4Ml9jcHRfcXAgKnFwLCBzdHJ1Y3QgcnRlX2NyeXB0b19vcCAqb3AsCgkJICAgICBz dHJ1Y3QgcGVuZGluZ19xdWV1ZSAqcGVuZF9xKQp7Cgl1aW50MzJfdCB3aW5zeiwgZXNuX2xvdyA9 IDAsIGVzbl9oaSA9IDAsIHNlcWwgPSAwLCBzZXFoID0gMDsKCXN0cnVjdCBydGVfbWJ1ZiAqbV9z cmMgPSBvcC0+c3ltLT5tX3NyYzsKCmVycm9yOiBwYXRjaCBmYWlsZWQ6IGRyaXZlcnMvY3J5cHRv L29jdGVvbnR4Mi9vdHgyX2NyeXB0b2Rldl9vcHMuYzo2ODIKZXJyb3I6IHdoaWxlIHNlYXJjaGlu ZyBmb3I6CgkJcmV0dXJuIHJldDsKCX0KCglyZXQgPSBvdHgyX2NwdF9lbnF1ZXVlX3JlcShxcCwg cGVuZF9xLCByZXEsIG9wLCBzZXNzLT5jcHRfaW5zdF93Nyk7CgoJaWYgKHdpbnN6ICYmIGVzbikg ewoJCXNlcV9pbl9zYSA9ICgodWludDY0X3QpZXNuX2hpIDw8IDMyKSB8IGVzbl9sb3c7CgplcnJv cjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL2NyeXB0by9vY3Rlb250eDIvb3R4Ml9jcnlwdG9kZXZf b3BzLmM6NzM5CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoKc3RhdGljIF9fcnRlX2Fsd2F5 c19pbmxpbmUgaW50IF9fcnRlX2hvdApvdHgyX2NwdF9lbnF1ZXVlX3N5bV9zZXNzbGVzcyhzdHJ1 Y3Qgb3R4Ml9jcHRfcXAgKnFwLCBzdHJ1Y3QgcnRlX2NyeXB0b19vcCAqb3AsCgkJCSAgICAgIHN0 cnVjdCBwZW5kaW5nX3F1ZXVlICpwZW5kX3EpCnsKCWNvbnN0IGludCBkcml2ZXJfaWQgPSBvdHgy X2NyeXB0b2Rldl9kcml2ZXJfaWQ7CglzdHJ1Y3QgcnRlX2NyeXB0b19zeW1fb3AgKnN5bV9vcCA9 IG9wLT5zeW07CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL2NyeXB0by9vY3Rlb250eDIv b3R4Ml9jcnlwdG9kZXZfb3BzLmM6NzU0CmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoKCXN5 bV9vcC0+c2Vzc2lvbiA9IHNlc3M7CgoJcmV0ID0gb3R4Ml9jcHRfZW5xdWV1ZV9zeW0ocXAsIG9w LCBwZW5kX3EpOwoKCWlmICh1bmxpa2VseShyZXQpKQoJCWdvdG8gcHJpdl9wdXQ7CgplcnJvcjog cGF0Y2ggZmFpbGVkOiBkcml2ZXJzL2NyeXB0by9vY3Rlb250eDIvb3R4Ml9jcnlwdG9kZXZfb3Bz LmM6NzczCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoKCXBlbmRfcSA9ICZxcC0+cGVuZF9x OwoKCW5iX2FsbG93ZWQgPSBPVFgyX0NQVF9ERUZBVUxUX0NNRF9RTEVOIC0gcGVuZF9xLT5wZW5k aW5nX2NvdW50OwoJaWYgKG5iX29wcyA+IG5iX2FsbG93ZWQpCgkJbmJfb3BzID0gbmJfYWxsb3dl ZDsKCglmb3IgKGNvdW50ID0gMDsgY291bnQgPCBuYl9vcHM7IGNvdW50KyspIHsKCQlvcCA9IG9w c1tjb3VudF07CgkJaWYgKG9wLT50eXBlID09IFJURV9DUllQVE9fT1BfVFlQRV9TWU1NRVRSSUMp IHsKCQkJaWYgKG9wLT5zZXNzX3R5cGUgPT0gUlRFX0NSWVBUT19PUF9TRUNVUklUWV9TRVNTSU9O KQoJCQkJcmV0ID0gb3R4Ml9jcHRfZW5xdWV1ZV9zZWMocXAsIG9wLCBwZW5kX3EpOwoJCQllbHNl IGlmIChvcC0+c2Vzc190eXBlID09IFJURV9DUllQVE9fT1BfV0lUSF9TRVNTSU9OKQoJCQkJcmV0 ID0gb3R4Ml9jcHRfZW5xdWV1ZV9zeW0ocXAsIG9wLCBwZW5kX3EpOwoJCQllbHNlCgkJCQlyZXQg PSBvdHgyX2NwdF9lbnF1ZXVlX3N5bV9zZXNzbGVzcyhxcCwgb3AsCgkJCQkJCQkJICAgIHBlbmRf cSk7CgkJfSBlbHNlIGlmIChvcC0+dHlwZSA9PSBSVEVfQ1JZUFRPX09QX1RZUEVfQVNZTU1FVFJJ QykgewoJCQlpZiAob3AtPnNlc3NfdHlwZSA9PSBSVEVfQ1JZUFRPX09QX1dJVEhfU0VTU0lPTikK CQkJCXJldCA9IG90eDJfY3B0X2VucXVldWVfYXN5bShxcCwgb3AsIHBlbmRfcSk7CgkJCWVsc2UK CQkJCWJyZWFrOwoJCX0gZWxzZQoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9jcnlwdG8v b2N0ZW9udHgyL290eDJfY3J5cHRvZGV2X29wcy5jOjc5OAplcnJvcjogd2hpbGUgc2VhcmNoaW5n IGZvcjoKCQkJYnJlYWs7Cgl9CgoJcmV0dXJuIGNvdW50Owp9CgoKZXJyb3I6IHBhdGNoIGZhaWxl ZDogZHJpdmVycy9jcnlwdG8vb2N0ZW9udHgyL290eDJfY3J5cHRvZGV2X29wcy5jOjgyNAplcnJv cjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCglwZW5kX3EgPSAmcXAtPnBlbmRfcTsKCgluYl9wZW5k aW5nID0gcGVuZF9xLT5wZW5kaW5nX2NvdW50OwoKCWlmIChuYl9vcHMgPiBuYl9wZW5kaW5nKQoJ CW5iX29wcyA9IG5iX3BlbmRpbmc7CgoJZm9yIChpID0gMDsgaSA8IG5iX29wczsgaSsrKSB7CgkJ cmVxID0gKHN0cnVjdCBjcHRfcmVxdWVzdF9pbmZvICopCgkJCQlwZW5kX3EtPnJlcV9xdWV1ZVtw ZW5kX3EtPmRlcV9oZWFkXTsKCgkJY2NbaV0gPSBvdHgyX2NwdF9jb21wY29kZV9nZXQocmVxKTsK CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL2NyeXB0by9vY3Rlb250eDIvb3R4Ml9jcnlw dG9kZXZfb3BzLmM6MTA1OQplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCgkJb3BzW2ldID0g cmVxLT5vcDsKCgkJTU9EX0lOQyhwZW5kX3EtPmRlcV9oZWFkLCBPVFgyX0NQVF9ERUZBVUxUX0NN RF9RTEVOKTsKCQlwZW5kX3EtPnBlbmRpbmdfY291bnQgLT0gMTsKCX0KCgluYl9jb21wbGV0ZWQg PSBpOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9jcnlwdG8vb2N0ZW9udHgyL290eDJf Y3J5cHRvZGV2X29wcy5jOjEwNzUKQXBwbHlpbmcgcGF0Y2ggZG9jL2d1aWRlcy9jcnlwdG9kZXZz L29jdGVvbnR4LnJzdCB3aXRoIDEgcmVqZWN0Li4uClJlamVjdGVkIGh1bmsgIzEuCkFwcGx5aW5n IHBhdGNoIGRvYy9ndWlkZXMvY3J5cHRvZGV2cy9vY3Rlb250eDIucnN0IHdpdGggMSByZWplY3Qu Li4KUmVqZWN0ZWQgaHVuayAjMS4KQXBwbHlpbmcgcGF0Y2ggZHJpdmVycy9jb21tb24vY3B0L2Nw dF9jb21tb24uaCB3aXRoIDMgcmVqZWN0cy4uLgpSZWplY3RlZCBodW5rICMxLgpSZWplY3RlZCBo dW5rICMyLgpSZWplY3RlZCBodW5rICMzLgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL2NyeXB0by9v Y3Rlb250eC9vdHhfY3J5cHRvZGV2X2h3X2FjY2Vzcy5jIHdpdGggMyByZWplY3RzLi4uClJlamVj dGVkIGh1bmsgIzEuClJlamVjdGVkIGh1bmsgIzIuClJlamVjdGVkIGh1bmsgIzMuCkFwcGx5aW5n IHBhdGNoIGRyaXZlcnMvY3J5cHRvL29jdGVvbnR4L290eF9jcnlwdG9kZXZfaHdfYWNjZXNzLmgg d2l0aCAxIHJlamVjdC4uLgpSZWplY3RlZCBodW5rICMxLgpBcHBseWluZyBwYXRjaCBkcml2ZXJz L2NyeXB0by9vY3Rlb250eC9vdHhfY3J5cHRvZGV2X29wcy5jIHdpdGggMTIgcmVqZWN0cy4uLgpS ZWplY3RlZCBodW5rICMxLgpSZWplY3RlZCBodW5rICMyLgpSZWplY3RlZCBodW5rICMzLgpSZWpl Y3RlZCBodW5rICM0LgpSZWplY3RlZCBodW5rICM1LgpSZWplY3RlZCBodW5rICM2LgpSZWplY3Rl ZCBodW5rICM3LgpSZWplY3RlZCBodW5rICM4LgpSZWplY3RlZCBodW5rICM5LgpSZWplY3RlZCBo dW5rICMxMC4KUmVqZWN0ZWQgaHVuayAjMTEuClJlamVjdGVkIGh1bmsgIzEyLgpBcHBseWluZyBw YXRjaCBkcml2ZXJzL2NyeXB0by9vY3Rlb250eDIvb3R4Ml9jcnlwdG9kZXZfaHdfYWNjZXNzLmgg d2l0aCAxIHJlamVjdC4uLgpSZWplY3RlZCBodW5rICMxLgpBcHBseWluZyBwYXRjaCBkcml2ZXJz L2NyeXB0by9vY3Rlb250eDIvb3R4Ml9jcnlwdG9kZXZfb3BzLmMgd2l0aCAyMSByZWplY3RzLi4u ClJlamVjdGVkIGh1bmsgIzEuClJlamVjdGVkIGh1bmsgIzIuClJlamVjdGVkIGh1bmsgIzMuClJl amVjdGVkIGh1bmsgIzQuClJlamVjdGVkIGh1bmsgIzUuClJlamVjdGVkIGh1bmsgIzYuClJlamVj dGVkIGh1bmsgIzcuClJlamVjdGVkIGh1bmsgIzguClJlamVjdGVkIGh1bmsgIzkuClJlamVjdGVk IGh1bmsgIzEwLgpSZWplY3RlZCBodW5rICMxMS4KUmVqZWN0ZWQgaHVuayAjMTIuClJlamVjdGVk IGh1bmsgIzEzLgpSZWplY3RlZCBodW5rICMxNC4KUmVqZWN0ZWQgaHVuayAjMTUuClJlamVjdGVk IGh1bmsgIzE2LgpSZWplY3RlZCBodW5rICMxNy4KUmVqZWN0ZWQgaHVuayAjMTguClJlamVjdGVk IGh1bmsgIzE5LgpSZWplY3RlZCBodW5rICMyMC4KUmVqZWN0ZWQgaHVuayAjMjEuCmRpZmYgYS9k b2MvZ3VpZGVzL2NyeXB0b2RldnMvb2N0ZW9udHgucnN0IGIvZG9jL2d1aWRlcy9jcnlwdG9kZXZz L29jdGVvbnR4LnJzdAkocmVqZWN0ZWQgaHVua3MpCkBAIC0xMzUsOSArMTM1LDMgQEAgYXBwbGlj YXRpb246CiAKICAgICAgICAgLi9kcGRrLXRlc3QKICAgICAgICAgUlRFPj5jcnlwdG9kZXZfb2N0 ZW9udHhfYXN5bV9hdXRvdGVzdAotCi1MaW1pdGF0aW9ucwotLS0tLS0tLS0tLS0KLQotTXVsdGlw bGUgbGNvcmVzIG1heSBub3Qgb3BlcmF0ZSBvbiB0aGUgc2FtZSBjcnlwdG8gcXVldWUgcGFpci4g VGhlIGxjb3JlIHRoYXQKLWVucXVldWVzIHRvIGEgcXVldWUgcGFpciBpcyB0aGUgb25lIHRoYXQg bXVzdCBkZXF1ZXVlIGZyb20gaXQuCmRpZmYgYS9kb2MvZ3VpZGVzL2NyeXB0b2RldnMvb2N0ZW9u dHgyLnJzdCBiL2RvYy9ndWlkZXMvY3J5cHRvZGV2cy9vY3Rlb250eDIucnN0CShyZWplY3RlZCBo dW5rcykKQEAgLTE4Niw5ICsxODYsMyBAQCBGZWF0dXJlcyBzdXBwb3J0ZWQKICogQUVTLTEyOC8x OTIvMjU2LUdDTQogKiBBRVMtMTI4LzE5Mi8yNTYtQ0JDLVNIQTEtSE1BQwogKiBBRVMtMTI4LzE5 Mi8yNTYtQ0JDLVNIQTI1Ni0xMjgtSE1BQwotCi1MaW1pdGF0aW9ucwotLS0tLS0tLS0tLS0KLQot TXVsdGlwbGUgbGNvcmVzIG1heSBub3Qgb3BlcmF0ZSBvbiB0aGUgc2FtZSBjcnlwdG8gcXVldWUg cGFpci4gVGhlIGxjb3JlIHRoYXQKLWVucXVldWVzIHRvIGEgcXVldWUgcGFpciBpcyB0aGUgb25l IHRoYXQgbXVzdCBkZXF1ZXVlIGZyb20gaXQuCmRpZmYgYS9kcml2ZXJzL2NvbW1vbi9jcHQvY3B0 X2NvbW1vbi5oIGIvZHJpdmVycy9jb21tb24vY3B0L2NwdF9jb21tb24uaAkocmVqZWN0ZWQgaHVu a3MpCkBAIC01LDYgKzUsNyBAQAogI2lmbmRlZiBfQ1BUX0NPTU1PTl9IXwogI2RlZmluZSBfQ1BU X0NPTU1PTl9IXwogCisjaW5jbHVkZSA8cnRlX3ByZWZldGNoLmg+CiAjaW5jbHVkZSA8cnRlX21l bXBvb2wuaD4KIAogLyoKQEAgLTMyLDE0ICszMywxMiBAQCBzdHJ1Y3QgY3B0X3FwX21ldGFfaW5m byB7CiAgKgogICovCiBzdHJ1Y3QgcGVuZGluZ19xdWV1ZSB7Ci0JLyoqIFBlbmRpbmcgcmVxdWVz dHMgY291bnQgKi8KLQl1aW50NjRfdCBwZW5kaW5nX2NvdW50OwogCS8qKiBBcnJheSBvZiBwZW5k aW5nIHJlcXVlc3RzICovCi0JdWludHB0cl90ICpyZXFfcXVldWU7CisJdm9pZCAqKnJpZF9xdWV1 ZTsKIAkvKiogVGFpbCBvZiBxdWV1ZSB0byBiZSB1c2VkIGZvciBlbnF1ZXVlICovCi0JdWludDE2 X3QgZW5xX3RhaWw7CisJdW5zaWduZWQgaW50IHRhaWw7CiAJLyoqIEhlYWQgb2YgcXVldWUgdG8g YmUgdXNlZCBmb3IgZGVxdWV1ZSAqLwotCXVpbnQxNl90IGRlcV9oZWFkOworCXVuc2lnbmVkIGlu dCBoZWFkOwogfTsKIAogc3RydWN0IGNwdF9yZXF1ZXN0X2luZm8gewpAQCAtNjEsNCArNjAsNjgg QEAgc3RydWN0IGNwdF9yZXF1ZXN0X2luZm8gewogCXVpbnQ4X3QgZXh0cmFfdGltZTsKIH0gX19y dGVfYWxpZ25lZCg4KTsKIAorc3RhdGljIF9fcnRlX2Fsd2F5c19pbmxpbmUgdm9pZAorcGVuZGlu Z19xdWV1ZV9wdXNoKHN0cnVjdCBwZW5kaW5nX3F1ZXVlICpxLCB2b2lkICpyaWQsIHVuc2lnbmVk IGludCBvZmYsCisJCQljb25zdCBpbnQgcXNpemUpCit7CisJLyogTk9URTogbm8gZnJlZSBzcGFj ZSBjaGVjaywgYnV0IGl0IGlzIGV4cGVjdGVkIHRoYXQgb25lIGlzIG1hZGUgKi8KKwlxLT5yaWRf cXVldWVbKHEtPnRhaWwgKyBvZmYpICYgKHFzaXplIC0gMSldID0gcmlkOworfQorCitzdGF0aWMg X19ydGVfYWx3YXlzX2lubGluZSB2b2lkCitwZW5kaW5nX3F1ZXVlX2NvbW1pdChzdHJ1Y3QgcGVu ZGluZ19xdWV1ZSAqcSwgdW5zaWduZWQgaW50IGNudCwKKwkJCWNvbnN0IHVuc2lnbmVkIGludCBx c2l6ZSkKK3sKKwkvKiBFbnN1cmUgb3JkZXJpbmcgYmV0d2VlbiBzZXR0aW5nIHRoZSBlbnRyeSBh bmQgdXBkYXRpbmcgdGhlIHRhaWwgKi8KKwlydGVfYXRvbWljX3RocmVhZF9mZW5jZShfX0FUT01J Q19SRUxFQVNFKTsKKworCXEtPnRhaWwgPSAocS0+dGFpbCArIGNudCkgJiAocXNpemUgLSAxKTsK K30KKworc3RhdGljIF9fcnRlX2Fsd2F5c19pbmxpbmUgdm9pZAorcGVuZGluZ19xdWV1ZV9wb3Ao c3RydWN0IHBlbmRpbmdfcXVldWUgKnEsIGNvbnN0IGludCBxc2l6ZSkKK3sKKwkvKiBOT1RFOiBu byBlbXB0eSBjaGVjaywgYnV0IGl0IGlzIGV4cGVjdGVkIHRoYXQgb25lIGlzIG1hZGUgcHJpb3Ig Ki8KKworCXEtPmhlYWQgPSAocS0+aGVhZCArIDEpICYgKHFzaXplIC0gMSk7Cit9CisKK3N0YXRp YyBfX3J0ZV9hbHdheXNfaW5saW5lIHZvaWQKK3BlbmRpbmdfcXVldWVfcGVlayhzdHJ1Y3QgcGVu ZGluZ19xdWV1ZSAqcSwgdm9pZCAqKnJpZCwgY29uc3QgaW50IHFzaXplLAorCQkJaW50IHByZWZl dGNoX25leHQpCit7CisJdm9pZCAqbmV4dF9yaWQ7CisJLyogTk9URTogbm8gZW1wdHkgY2hlY2ss IGJ1dCBpdCBpcyBleHBlY3RlZCB0aGF0IG9uZSBpcyBtYWRlICovCisKKwkqcmlkID0gcS0+cmlk X3F1ZXVlW3EtPmhlYWRdOworCisJaWYgKGxpa2VseShwcmVmZXRjaF9uZXh0KSkgeworCQluZXh0 X3JpZCA9IHEtPnJpZF9xdWV1ZVsocS0+aGVhZCArIDEpICYgKHFzaXplIC0gMSldOworCQlydGVf cHJlZmV0Y2hfbm9uX3RlbXBvcmFsKCh2b2lkICopbmV4dF9yaWQpOworCX0KK30KKworc3RhdGlj IF9fcnRlX2Fsd2F5c19pbmxpbmUgdW5zaWduZWQgaW50CitwZW5kaW5nX3F1ZXVlX2xldmVsKHN0 cnVjdCBwZW5kaW5nX3F1ZXVlICpxLCBjb25zdCBpbnQgcXNpemUpCit7CisJcmV0dXJuIChxLT50 YWlsIC0gcS0+aGVhZCkgJiAocXNpemUgLSAxKTsKK30KKworc3RhdGljIF9fcnRlX2Fsd2F5c19p bmxpbmUgdW5zaWduZWQgaW50CitwZW5kaW5nX3F1ZXVlX2ZyZWVfc2xvdHMoc3RydWN0IHBlbmRp bmdfcXVldWUgKnEsIGNvbnN0IGludCBxc2l6ZSwKKwkJY29uc3QgaW50IHJlc2VydmVkX3Nsb3Rz KQoreworCWludCBmcmVlX3Nsb3RzOworCisJZnJlZV9zbG90cyA9IHFzaXplIC0gcGVuZGluZ19x dWV1ZV9sZXZlbChxLCBxc2l6ZSk7CisKKwkvKiBVc2Ugb25seSB1c2UgcXNpemUgLSAxICovCisJ ZnJlZV9zbG90cyAtPSAxICsgcmVzZXJ2ZWRfc2xvdHM7CisKKwlpZiAodW5saWtlbHkoZnJlZV9z bG90cyA8IDApKQorCQlyZXR1cm4gMDsKKworCXJldHVybiBmcmVlX3Nsb3RzOworfQorCiAjZW5k aWYgLyogX0NQVF9DT01NT05fSF8gKi8KZGlmZiBhL2RyaXZlcnMvY3J5cHRvL29jdGVvbnR4L290 eF9jcnlwdG9kZXZfaHdfYWNjZXNzLmMgYi9kcml2ZXJzL2NyeXB0by9vY3Rlb250eC9vdHhfY3J5 cHRvZGV2X2h3X2FjY2Vzcy5jCShyZWplY3RlZCBodW5rcykKQEAgLTUyNywxMCArNTI3LDEwIEBA IG90eF9jcHRfZ2V0X3Jlc291cmNlKGNvbnN0IHN0cnVjdCBydGVfY3J5cHRvZGV2ICpkZXYsIHVp bnQ4X3QgZ3JvdXAsCiAJbWVtc2V0KCZjcHR2Zi0+cHF1ZXVlLCAwLCBzaXplb2YoY3B0dmYtPnBx dWV1ZSkpOwogCiAJLyogQ2h1bmtzIGFyZSBvZiBmaXhlZCBzaXplIGJ1ZmZlcnMgKi8KKworCXFs ZW4gPSBERUZBVUxUX0NNRF9RTEVOOwogCWNodW5rcyA9IERFRkFVTFRfQ01EX1FDSFVOS1M7CiAJ Y2h1bmtfbGVuID0gREVGQVVMVF9DTURfUUNIVU5LX1NJWkU7Ci0KLQlxbGVuID0gY2h1bmtzICog Y2h1bmtfbGVuOwogCS8qIENodW5rIHNpemUgaW5jbHVkZXMgOCBieXRlcyBvZiBuZXh0IGNodW5r IHB0ciAqLwogCWNodW5rX3NpemUgPSBjaHVua19sZW4gKiBDUFRfSU5TVF9TSVpFICsgQ1BUX05F WFRfQ0hVTktfUFRSX1NJWkU7CiAKQEAgLTUzOCw3ICs1MzgsNyBAQCBvdHhfY3B0X2dldF9yZXNv dXJjZShjb25zdCBzdHJ1Y3QgcnRlX2NyeXB0b2RldiAqZGV2LCB1aW50OF90IGdyb3VwLAogCWxl biA9IGNodW5rcyAqIFJURV9BTElHTihzaXplb2Yoc3RydWN0IGNvbW1hbmRfY2h1bmspLCA4KTsK IAogCS8qIEZvciBwZW5kaW5nIHF1ZXVlICovCi0JbGVuICs9IHFsZW4gKiBzaXplb2YodWludHB0 cl90KTsKKwlsZW4gKz0gcWxlbiAqIFJURV9BTElHTihzaXplb2YoY3B0dmYtPnBxdWV1ZS5yaWRf cXVldWVbMF0pLCA4KTsKIAogCS8qIFNvIHRoYXQgaW5zdHJ1Y3Rpb24gcXVldWVzIHN0YXJ0IGFz IHBnIHNpemUgYWxpZ25lZCAqLwogCWxlbiA9IFJURV9BTElHTihsZW4sIHBnX3N6KTsKQEAgLTU3 MywxNCArNTczLDExIEBAIG90eF9jcHRfZ2V0X3Jlc291cmNlKGNvbnN0IHN0cnVjdCBydGVfY3J5 cHRvZGV2ICpkZXYsIHVpbnQ4X3QgZ3JvdXAsCiAJfQogCiAJLyogUGVuZGluZyBxdWV1ZSBzZXR1 cCAqLwotCWNwdHZmLT5wcXVldWUucmVxX3F1ZXVlID0gKHVpbnRwdHJfdCAqKW1lbTsKLQljcHR2 Zi0+cHF1ZXVlLmVucV90YWlsID0gMDsKLQljcHR2Zi0+cHF1ZXVlLmRlcV9oZWFkID0gMDsKLQlj cHR2Zi0+cHF1ZXVlLnBlbmRpbmdfY291bnQgPSAwOwotCi0JbWVtICs9ICBxbGVuICogc2l6ZW9m KHVpbnRwdHJfdCk7Ci0JbGVuIC09ICBxbGVuICogc2l6ZW9mKHVpbnRwdHJfdCk7Ci0JZG1hX2Fk ZHIgKz0gcWxlbiAqIHNpemVvZih1aW50cHRyX3QpOworCWNwdHZmLT5wcXVldWUucmlkX3F1ZXVl ID0gKHZvaWQgKiopbWVtOworCisJbWVtICs9ICBxbGVuICogUlRFX0FMSUdOKHNpemVvZihjcHR2 Zi0+cHF1ZXVlLnJpZF9xdWV1ZVswXSksIDgpOworCWxlbiAtPSAgcWxlbiAqIFJURV9BTElHTihz aXplb2YoY3B0dmYtPnBxdWV1ZS5yaWRfcXVldWVbMF0pLCA4KTsKKwlkbWFfYWRkciArPSBxbGVu ICogUlRFX0FMSUdOKHNpemVvZihjcHR2Zi0+cHF1ZXVlLnJpZF9xdWV1ZVswXSksIDgpOwogCiAJ LyogQWxpZ25tZW50IHdhc3RhZ2UgKi8KIAl1c2VkX2xlbiA9IGFsbG9jX2xlbiAtIGxlbjsKZGlm ZiBhL2RyaXZlcnMvY3J5cHRvL29jdGVvbnR4L290eF9jcnlwdG9kZXZfaHdfYWNjZXNzLmggYi9k cml2ZXJzL2NyeXB0by9vY3Rlb250eC9vdHhfY3J5cHRvZGV2X2h3X2FjY2Vzcy5oCShyZWplY3Rl ZCBodW5rcykKQEAgLTIzLDEwICsyMywxNiBAQAogI2RlZmluZSBDUFRfSU5UUl9QT0xMX0lOVEVS VkFMX01TCSg1MCkKIAogLyogRGVmYXVsdCBjb21tYW5kIHF1ZXVlIGxlbmd0aCAqLwotI2RlZmlu ZSBERUZBVUxUX0NNRF9RQ0hVTktTCQkyCi0jZGVmaW5lIERFRkFVTFRfQ01EX1FDSFVOS19TSVpF CQkxMDIzCi0jZGVmaW5lIERFRkFVTFRfQ01EX1FMRU4gXAotCQkoREVGQVVMVF9DTURfUUNIVU5L X1NJWkUgKiBERUZBVUxUX0NNRF9RQ0hVTktTKQorI2RlZmluZSBERUZBVUxUX0NNRF9RTEVOCTIw NDgKKyNkZWZpbmUgREVGQVVMVF9DTURfUUNIVU5LUwkyCisKKy8qIEluc3RydWN0aW9uIG1lbW9y eSBiZW5lZml0cyBmcm9tIGJlaW5nIDEwMjMsIHNvIGludHJvZHVjZQorICogcmVzZXJ2ZWQgZW50 cmllcyBzbyB3ZSBjYW4ndCBvdmVycnVuIHRoZSBpbnN0cnVjdGlvbiBxdWV1ZQorICovCisjZGVm aW5lIERFRkFVTFRfQ01EX1FSU1ZEX1NMT1RTIERFRkFVTFRfQ01EX1FDSFVOS1MKKyNkZWZpbmUg REVGQVVMVF9DTURfUUNIVU5LX1NJWkUgXAorCQkoKERFRkFVTFRfQ01EX1FMRU4gLSBERUZBVUxU X0NNRF9RUlNWRF9TTE9UUykgLyBcCisJCURFRkFVTFRfQ01EX1FDSFVOS1MpCiAKICNkZWZpbmUg Q1BUX0NTUl9SRUdfQkFTRShjcHQpCQkoKGNwdCktPnJlZ19iYXNlKQogCmRpZmYgYS9kcml2ZXJz L2NyeXB0by9vY3Rlb250eC9vdHhfY3J5cHRvZGV2X29wcy5jIGIvZHJpdmVycy9jcnlwdG8vb2N0 ZW9udHgvb3R4X2NyeXB0b2Rldl9vcHMuYwkocmVqZWN0ZWQgaHVua3MpCkBAIC00MzEsMTYgKzQz MSwxMCBAQCBvdHhfY3B0X2FzeW1fc2Vzc2lvbl9jbGVhcihzdHJ1Y3QgcnRlX2NyeXB0b2RldiAq ZGV2LAogCiBzdGF0aWMgX19ydGVfYWx3YXlzX2lubGluZSB2b2lkICogX19ydGVfaG90CiBvdHhf Y3B0X3JlcXVlc3RfZW5xdWV1ZShzdHJ1Y3QgY3B0X2luc3RhbmNlICppbnN0YW5jZSwKLQkJCXN0 cnVjdCBwZW5kaW5nX3F1ZXVlICpwcXVldWUsCiAJCQl2b2lkICpyZXEsIHVpbnQ2NF90IGNwdF9p bnN0X3c3KQogewogCXN0cnVjdCBjcHRfcmVxdWVzdF9pbmZvICp1c2VyX3JlcSA9IChzdHJ1Y3Qg Y3B0X3JlcXVlc3RfaW5mbyAqKXJlcTsKIAotCWlmICh1bmxpa2VseShwcXVldWUtPnBlbmRpbmdf Y291bnQgPj0gREVGQVVMVF9DTURfUUxFTikpIHsKLQkJcnRlX2Vycm5vID0gRUFHQUlOOwotCQly ZXR1cm4gTlVMTDsKLQl9Ci0KIAlmaWxsX2NwdF9pbnN0KGluc3RhbmNlLCByZXEsIGNwdF9pbnN0 X3c3KTsKIAogCUNQVF9MT0dfRFBfREVCVUcoInJlcTogJXAgb3A6ICVwICIsIHJlcSwgdXNlcl9y ZXEtPm9wKTsKQEAgLTQ2MCw4ICs0NTQsNyBAQCBvdHhfY3B0X3JlcXVlc3RfZW5xdWV1ZShzdHJ1 Y3QgY3B0X2luc3RhbmNlICppbnN0YW5jZSwKIAogc3RhdGljIF9fcnRlX2Fsd2F5c19pbmxpbmUg dm9pZCAqIF9fcnRlX2hvdAogb3R4X2NwdF9lbnFfc2luZ2xlX2FzeW0oc3RydWN0IGNwdF9pbnN0 YW5jZSAqaW5zdGFuY2UsCi0JCQlzdHJ1Y3QgcnRlX2NyeXB0b19vcCAqb3AsCi0JCQlzdHJ1Y3Qg cGVuZGluZ19xdWV1ZSAqcHF1ZXVlKQorCQkJc3RydWN0IHJ0ZV9jcnlwdG9fb3AgKm9wKQogewog CXN0cnVjdCBjcHRfcXBfbWV0YV9pbmZvICptaW5mbyA9ICZpbnN0YW5jZS0+bWV0YV9pbmZvOwog CXN0cnVjdCBydGVfY3J5cHRvX2FzeW1fb3AgKmFzeW1fb3AgPSBvcC0+YXN5bTsKQEAgLTUyNSw4 ICs1MTgsNyBAQCBvdHhfY3B0X2VucV9zaW5nbGVfYXN5bShzdHJ1Y3QgY3B0X2luc3RhbmNlICpp bnN0YW5jZSwKIAkJZ290byByZXFfZmFpbDsKIAl9CiAKLQlyZXEgPSBvdHhfY3B0X3JlcXVlc3Rf ZW5xdWV1ZShpbnN0YW5jZSwgcHF1ZXVlLCBwYXJhbXMucmVxLAotCQkJCSAgICAgIHNlc3MtPmNw dF9pbnN0X3c3KTsKKwlyZXEgPSBvdHhfY3B0X3JlcXVlc3RfZW5xdWV1ZShpbnN0YW5jZSwgcGFy YW1zLnJlcSwgc2Vzcy0+Y3B0X2luc3RfdzcpOwogCWlmICh1bmxpa2VseShyZXEgPT0gTlVMTCkp IHsKIAkJQ1BUX0xPR19EUF9FUlIoIkNvdWxkIG5vdCBlbnF1ZXVlIGNyeXB0byByZXEiKTsKIAkJ Z290byByZXFfZmFpbDsKQEAgLTU0Miw4ICs1MzQsNyBAQCBvdHhfY3B0X2VucV9zaW5nbGVfYXN5 bShzdHJ1Y3QgY3B0X2luc3RhbmNlICppbnN0YW5jZSwKIAogc3RhdGljIF9fcnRlX2Fsd2F5c19p bmxpbmUgdm9pZCAqIF9fcnRlX2hvdAogb3R4X2NwdF9lbnFfc2luZ2xlX3N5bShzdHJ1Y3QgY3B0 X2luc3RhbmNlICppbnN0YW5jZSwKLQkJICAgICAgIHN0cnVjdCBydGVfY3J5cHRvX29wICpvcCwK LQkJICAgICAgIHN0cnVjdCBwZW5kaW5nX3F1ZXVlICpwcXVldWUpCisJCSAgICAgICBzdHJ1Y3Qg cnRlX2NyeXB0b19vcCAqb3ApCiB7CiAJc3RydWN0IGNwdF9zZXNzX21pc2MgKnNlc3M7CiAJc3Ry dWN0IHJ0ZV9jcnlwdG9fc3ltX29wICpzeW1fb3AgPSBvcC0+c3ltOwpAQCAtNTczLDggKzU2NCw3 IEBAIG90eF9jcHRfZW5xX3NpbmdsZV9zeW0oc3RydWN0IGNwdF9pbnN0YW5jZSAqaW5zdGFuY2Us CiAJfQogCiAJLyogRW5xdWV1ZSBwcmVwYXJlZCBpbnN0cnVjdGlvbiB0byBoL3cgKi8KLQlyZXEg PSBvdHhfY3B0X3JlcXVlc3RfZW5xdWV1ZShpbnN0YW5jZSwgcHF1ZXVlLCBwcmVwX3JlcSwKLQkJ CQkgICAgICBzZXNzLT5jcHRfaW5zdF93Nyk7CisJcmVxID0gb3R4X2NwdF9yZXF1ZXN0X2VucXVl dWUoaW5zdGFuY2UsIHByZXBfcmVxLCBzZXNzLT5jcHRfaW5zdF93Nyk7CiAJaWYgKHVubGlrZWx5 KHJlcSA9PSBOVUxMKSkKIAkJLyogQnVmZmVyIGFsbG9jYXRlZCBmb3IgcmVxdWVzdCBwcmVwYXJh dGlvbiBuZWVkIHRvIGJlIGZyZWVkICovCiAJCWZyZWVfb3BfbWV0YShtZGF0YSwgaW5zdGFuY2Ut Pm1ldGFfaW5mby5wb29sKTsKQEAgLTU4NCw4ICs1NzQsNyBAQCBvdHhfY3B0X2VucV9zaW5nbGVf c3ltKHN0cnVjdCBjcHRfaW5zdGFuY2UgKmluc3RhbmNlLAogCiBzdGF0aWMgX19ydGVfYWx3YXlz X2lubGluZSB2b2lkICogX19ydGVfaG90CiBvdHhfY3B0X2VucV9zaW5nbGVfc3ltX3Nlc3NsZXNz KHN0cnVjdCBjcHRfaW5zdGFuY2UgKmluc3RhbmNlLAotCQkJCXN0cnVjdCBydGVfY3J5cHRvX29w ICpvcCwKLQkJCQlzdHJ1Y3QgcGVuZGluZ19xdWV1ZSAqcGVuZF9xKQorCQkJCXN0cnVjdCBydGVf Y3J5cHRvX29wICpvcCkKIHsKIAljb25zdCBpbnQgZHJpdmVyX2lkID0gb3R4X2NyeXB0b2Rldl9k cml2ZXJfaWQ7CiAJc3RydWN0IHJ0ZV9jcnlwdG9fc3ltX29wICpzeW1fb3AgPSBvcC0+c3ltOwpA QCAtNjA3LDggKzU5Niw4IEBAIG90eF9jcHRfZW5xX3NpbmdsZV9zeW1fc2Vzc2xlc3Moc3RydWN0 IGNwdF9pbnN0YW5jZSAqaW5zdGFuY2UsCiAKIAlzeW1fb3AtPnNlc3Npb24gPSBzZXNzOwogCi0J cmVxID0gb3R4X2NwdF9lbnFfc2luZ2xlX3N5bShpbnN0YW5jZSwgb3AsIHBlbmRfcSk7Ci0KKwkv KiBFbnF1ZXVlIG9wIHdpdGggdGhlIHRtcCBzZXNzaW9uIHNldCAqLworCXJlcSA9IG90eF9jcHRf ZW5xX3NpbmdsZV9zeW0oaW5zdGFuY2UsIG9wKTsKIAlpZiAodW5saWtlbHkocmVxID09IE5VTEwp KQogCQlnb3RvIHByaXZfcHV0OwogCkBAIC02MjcsMjIgKzYxNiwyMCBAQCBvdHhfY3B0X2VucV9z aW5nbGVfc3ltX3Nlc3NsZXNzKHN0cnVjdCBjcHRfaW5zdGFuY2UgKmluc3RhbmNlLAogc3RhdGlj IF9fcnRlX2Fsd2F5c19pbmxpbmUgdm9pZCAqX19ydGVfaG90CiBvdHhfY3B0X2VucV9zaW5nbGUo c3RydWN0IGNwdF9pbnN0YW5jZSAqaW5zdCwKIAkJICAgc3RydWN0IHJ0ZV9jcnlwdG9fb3AgKm9w LAotCQkgICBzdHJ1Y3QgcGVuZGluZ19xdWV1ZSAqcHF1ZXVlLAogCQkgICBjb25zdCB1aW50OF90 IG9wX3R5cGUpCiB7CiAJLyogQ2hlY2sgZm9yIHRoZSB0eXBlICovCiAKIAlpZiAob3BfdHlwZSA9 PSBPUF9UWVBFX1NZTSkgewogCQlpZiAob3AtPnNlc3NfdHlwZSA9PSBSVEVfQ1JZUFRPX09QX1dJ VEhfU0VTU0lPTikKLQkJCXJldHVybiBvdHhfY3B0X2VucV9zaW5nbGVfc3ltKGluc3QsIG9wLCBw cXVldWUpOworCQkJcmV0dXJuIG90eF9jcHRfZW5xX3NpbmdsZV9zeW0oaW5zdCwgb3ApOwogCQll bHNlCi0JCQlyZXR1cm4gb3R4X2NwdF9lbnFfc2luZ2xlX3N5bV9zZXNzbGVzcyhpbnN0LCBvcCwK LQkJCQkJCQkgICAgICAgcHF1ZXVlKTsKKwkJCXJldHVybiBvdHhfY3B0X2VucV9zaW5nbGVfc3lt X3Nlc3NsZXNzKGluc3QsIG9wKTsKIAl9CiAKIAlpZiAob3BfdHlwZSA9PSBPUF9UWVBFX0FTWU0p IHsKIAkJaWYgKG9wLT5zZXNzX3R5cGUgPT0gUlRFX0NSWVBUT19PUF9XSVRIX1NFU1NJT04pCi0J CQlyZXR1cm4gb3R4X2NwdF9lbnFfc2luZ2xlX2FzeW0oaW5zdCwgb3AsIHBxdWV1ZSk7CisJCQly ZXR1cm4gb3R4X2NwdF9lbnFfc2luZ2xlX2FzeW0oaW5zdCwgb3ApOwogCX0KIAogCS8qIFNob3Vs ZCBub3QgcmVhY2ggaGVyZSAqLwpAQCAtNjU1LDMwICs2NDIsMzMgQEAgb3R4X2NwdF9wa3RfZW5x dWV1ZSh2b2lkICpxcHRyLCBzdHJ1Y3QgcnRlX2NyeXB0b19vcCAqKm9wcywgdWludDE2X3QgbmJf b3BzLAogCQkgICAgY29uc3QgdWludDhfdCBvcF90eXBlKQogewogCXN0cnVjdCBjcHRfaW5zdGFu Y2UgKmluc3RhbmNlID0gKHN0cnVjdCBjcHRfaW5zdGFuY2UgKilxcHRyOwotCXVpbnQxNl90IGNv dW50OworCXVpbnQxNl90IGNvdW50LCBmcmVlX3Nsb3RzOwogCXZvaWQgKnJlcTsKIAlzdHJ1Y3Qg Y3B0X3ZmICpjcHR2ZiA9IChzdHJ1Y3QgY3B0X3ZmICopaW5zdGFuY2U7CiAJc3RydWN0IHBlbmRp bmdfcXVldWUgKnBxdWV1ZSA9ICZjcHR2Zi0+cHF1ZXVlOwogCi0JY291bnQgPSBERUZBVUxUX0NN RF9RTEVOIC0gcHF1ZXVlLT5wZW5kaW5nX2NvdW50OwotCWlmIChuYl9vcHMgPiBjb3VudCkKLQkJ bmJfb3BzID0gY291bnQ7CisJZnJlZV9zbG90cyA9IHBlbmRpbmdfcXVldWVfZnJlZV9zbG90cyhw cXVldWUsIERFRkFVTFRfQ01EX1FMRU4sCisJCQkJREVGQVVMVF9DTURfUVJTVkRfU0xPVFMpOwor CWlmIChuYl9vcHMgPiBmcmVlX3Nsb3RzKQorCQluYl9vcHMgPSBmcmVlX3Nsb3RzOwogCiAJY291 bnQgPSAwOwogCXdoaWxlIChsaWtlbHkoY291bnQgPCBuYl9vcHMpKSB7CiAKIAkJLyogRW5xdWV1 ZSBzaW5nbGUgb3AgKi8KLQkJcmVxID0gb3R4X2NwdF9lbnFfc2luZ2xlKGluc3RhbmNlLCBvcHNb Y291bnRdLCBwcXVldWUsIG9wX3R5cGUpOworCQlyZXEgPSBvdHhfY3B0X2VucV9zaW5nbGUoaW5z dGFuY2UsIG9wc1tjb3VudF0sIG9wX3R5cGUpOwogCiAJCWlmICh1bmxpa2VseShyZXEgPT0gTlVM TCkpCiAJCQlicmVhazsKIAotCQlwcXVldWUtPnJlcV9xdWV1ZVtwcXVldWUtPmVucV90YWlsXSA9 ICh1aW50cHRyX3QpcmVxOwotCQlNT0RfSU5DKHBxdWV1ZS0+ZW5xX3RhaWwsIERFRkFVTFRfQ01E X1FMRU4pOwotCQlwcXVldWUtPnBlbmRpbmdfY291bnQgKz0gMTsKKwkJcGVuZGluZ19xdWV1ZV9w dXNoKHBxdWV1ZSwgcmVxLCBjb3VudCwgREVGQVVMVF9DTURfUUxFTik7CiAJCWNvdW50Kys7CiAJ fQotCW90eF9jcHRfcmluZ19kYmVsbChpbnN0YW5jZSwgY291bnQpOworCisJaWYgKGxpa2VseShj b3VudCkpIHsKKwkJcGVuZGluZ19xdWV1ZV9jb21taXQocHF1ZXVlLCBjb3VudCwgREVGQVVMVF9D TURfUUxFTik7CisJCW90eF9jcHRfcmluZ19kYmVsbChpbnN0YW5jZSwgY291bnQpOworCX0KIAly ZXR1cm4gY291bnQ7CiB9CiAKQEAgLTc1Niw4ICs3NDYsNyBAQCBvdHhfY3J5cHRvX2FkYXB0ZXJf ZW5xdWV1ZSh2b2lkICpwb3J0LCBzdHJ1Y3QgcnRlX2NyeXB0b19vcCAqb3ApCiAKIAlvcF90eXBl ID0gb3AtPnR5cGUgPT0gUlRFX0NSWVBUT19PUF9UWVBFX1NZTU1FVFJJQyA/IE9QX1RZUEVfU1lN IDoKIAkJCQkJCQkgICAgIE9QX1RZUEVfQVNZTTsKLQlyZXEgPSBvdHhfY3B0X2VucV9zaW5nbGUo aW5zdGFuY2UsIG9wLAotCQkJCSAmKChzdHJ1Y3QgY3B0X3ZmICopaW5zdGFuY2UpLT5wcXVldWUs IG9wX3R5cGUpOworCXJlcSA9IG90eF9jcHRfZW5xX3NpbmdsZShpbnN0YW5jZSwgb3AsIG9wX3R5 cGUpOwogCWlmICh1bmxpa2VseShyZXEgPT0gTlVMTCkpCiAJCXJldHVybiAwOwogCkBAIC05NzEs MTcgKzk2MCwxNiBAQCBvdHhfY3B0X3BrdF9kZXF1ZXVlKHZvaWQgKnFwdHIsIHN0cnVjdCBydGVf Y3J5cHRvX29wICoqb3BzLCB1aW50MTZfdCBuYl9vcHMsCiAJaW50IG5iX2NvbXBsZXRlZDsKIAlz dHJ1Y3QgcGVuZGluZ19xdWV1ZSAqcHF1ZXVlID0gJmNwdHZmLT5wcXVldWU7CiAKLQlwY291bnQg PSBwcXVldWUtPnBlbmRpbmdfY291bnQ7CisJcGNvdW50ID0gcGVuZGluZ19xdWV1ZV9sZXZlbChw cXVldWUsIERFRkFVTFRfQ01EX1FMRU4pOworCisJLyogRW5zdXJlIHBjb3VudCBpc24ndCByZWFk IGJlZm9yZSBkYXRhIGxhbmRzICovCisJcnRlX2F0b21pY190aHJlYWRfZmVuY2UoX19BVE9NSUNf QUNRVUlSRSk7CisKIAljb3VudCA9IChuYl9vcHMgPiBwY291bnQpID8gcGNvdW50IDogbmJfb3Bz OwogCiAJZm9yIChpID0gMDsgaSA8IGNvdW50OyBpKyspIHsKLQkJdXNlcl9yZXEgPSAoc3RydWN0 IGNwdF9yZXF1ZXN0X2luZm8gKikKLQkJCQlwcXVldWUtPnJlcV9xdWV1ZVtwcXVldWUtPmRlcV9o ZWFkXTsKLQotCQlpZiAobGlrZWx5KChpKzEpIDwgY291bnQpKSB7Ci0JCQlydGVfcHJlZmV0Y2hf bm9uX3RlbXBvcmFsKAotCQkJCSh2b2lkICopcHF1ZXVlLT5yZXFfcXVldWVbaSsxXSk7Ci0JCX0K KwkJcGVuZGluZ19xdWV1ZV9wZWVrKHBxdWV1ZSwgKHZvaWQgKiopICZ1c2VyX3JlcSwKKwkJCURF RkFVTFRfQ01EX1FMRU4sIGkgKyAxIDwgY291bnQpOwogCiAJCXJldCA9IGNoZWNrX25iX2NvbW1h bmRfaWQodXNlcl9yZXEsIGluc3RhbmNlKTsKIApAQCAtOTk3LDggKzk4NSw3IEBAIG90eF9jcHRf cGt0X2RlcXVldWUodm9pZCAqcXB0ciwgc3RydWN0IHJ0ZV9jcnlwdG9fb3AgKipvcHMsIHVpbnQx Nl90IG5iX29wcywKIAkJQ1BUX0xPR19EUF9ERUJVRygiUmVxdWVzdCAlcCBPcCAlcCBjb21wbGV0 ZWQgd2l0aCBjb2RlICVkIiwKIAkJCQkgdXNlcl9yZXEsIHVzZXJfcmVxLT5vcCwgcmV0KTsKIAot CQlNT0RfSU5DKHBxdWV1ZS0+ZGVxX2hlYWQsIERFRkFVTFRfQ01EX1FMRU4pOwotCQlwcXVldWUt PnBlbmRpbmdfY291bnQgLT0gMTsKKwkJcGVuZGluZ19xdWV1ZV9wb3AocHF1ZXVlLCBERUZBVUxU X0NNRF9RTEVOKTsKIAl9CiAKIAluYl9jb21wbGV0ZWQgPSBpOwpkaWZmIGEvZHJpdmVycy9jcnlw dG8vb2N0ZW9udHgyL290eDJfY3J5cHRvZGV2X2h3X2FjY2Vzcy5oIGIvZHJpdmVycy9jcnlwdG8v b2N0ZW9udHgyL290eDJfY3J5cHRvZGV2X2h3X2FjY2Vzcy5oCShyZWplY3RlZCBodW5rcykKQEAg LTE3LDEwICsxNywxMCBAQAogI2luY2x1ZGUgIm90eDJfZGV2LmgiCiAjaW5jbHVkZSAib3R4Ml9j cnlwdG9kZXZfcXAuaCIKIAotLyogQ1BUIGluc3RydWN0aW9uIHF1ZXVlIGxlbmd0aCAqLwotI2Rl ZmluZSBPVFgyX0NQVF9JUV9MRU4JCQk4MjAwCi0KLSNkZWZpbmUgT1RYMl9DUFRfREVGQVVMVF9D TURfUUxFTglPVFgyX0NQVF9JUV9MRU4KKy8qIENQVCBpbnN0cnVjdGlvbiBxdWV1ZSBsZW5ndGgu CisgKiBVc2UgcXVldWUgc2l6ZSBhcyBwb3dlciBvZiAyIGZvciBhaWRpbmcgaW4gcGVuZGluZyBx dWV1ZSBjYWxjdWxhdGlvbnMuCisgKi8KKyNkZWZpbmUgT1RYMl9DUFRfREVGQVVMVF9DTURfUUxF Tgk4MTkyCiAKIC8qIE1hc2sgd2hpY2ggc2VsZWN0cyBhbGwgZW5naW5lIGdyb3VwcyAqLwogI2Rl ZmluZSBPVFgyX0NQVF9FTkdfR1JQU19NQVNLCQkweEZGCmRpZmYgYS9kcml2ZXJzL2NyeXB0by9v Y3Rlb250eDIvb3R4Ml9jcnlwdG9kZXZfb3BzLmMgYi9kcml2ZXJzL2NyeXB0by9vY3Rlb250eDIv b3R4Ml9jcnlwdG9kZXZfb3BzLmMJKHJlamVjdGVkIGh1bmtzKQpAQCAtNDksNiArNDksNyBAQCBv dHgyX2NwdF9tZXRhYnVmX21lbXBvb2xfY3JlYXRlKGNvbnN0IHN0cnVjdCBydGVfY3J5cHRvZGV2 ICpkZXYsCiB7CiAJY2hhciBtZW1wb29sX25hbWVbUlRFX01FTVBPT0xfTkFNRVNJWkVdOwogCXN0 cnVjdCBjcHRfcXBfbWV0YV9pbmZvICptZXRhX2luZm87CisJaW50IGxjb3JlX2NudCA9IHJ0ZV9s Y29yZV9jb3VudCgpOwogCWludCByZXQsIG1heF9tbGVuLCBtYl9wb29sX3N6OwogCXN0cnVjdCBy dGVfbWVtcG9vbCAqcG9vbDsKIAlpbnQgYXN5bV9tbGVuID0gMDsKQEAgLTg3LDcgKzg4LDEzIEBA IG90eDJfY3B0X21ldGFidWZfbWVtcG9vbF9jcmVhdGUoY29uc3Qgc3RydWN0IHJ0ZV9jcnlwdG9k ZXYgKmRldiwKIAlzbnByaW50ZihtZW1wb29sX25hbWUsIFJURV9NRU1QT09MX05BTUVTSVpFLCAi b3R4Ml9jcHRfbWJfJXU6JXUiLAogCQkgZGV2LT5kYXRhLT5kZXZfaWQsIHFwX2lkKTsKIAotCW1i X3Bvb2xfc3ogPSBSVEVfTUFYKG5iX2VsZW1lbnRzLCAoTUVUQUJVRl9QT09MX0NBQ0hFX1NJWkUg KiBydGVfbGNvcmVfY291bnQoKSkpOworCW1iX3Bvb2xfc3ogPSBuYl9lbGVtZW50czsKKworCS8q IEZvciBwb2xsIG1vZGUsIGNvcmUgdGhhdCBlbnF1ZXVlcyBhbmQgY29yZSB0aGF0IGRlcXVldWVz IGNhbiBiZQorCSAqIGRpZmZlcmVudC4gRm9yIGV2ZW50IG1vZGUsIGFsbCBjb3JlcyBhcmUgYWxs b3dlZCB0byB1c2Ugc2FtZSBjcnlwdG8KKwkgKiBxdWV1ZSBwYWlyLgorCSAqLworCW1iX3Bvb2xf c3ogKz0gKFJURV9NQVgoMiwgbGNvcmVfY250KSAqIE1FVEFCVUZfUE9PTF9DQUNIRV9TSVpFKTsK IAogCXBvb2wgPSBydGVfbWVtcG9vbF9jcmVhdGVfZW1wdHkobWVtcG9vbF9uYW1lLCBtYl9wb29s X3N6LCBtYXhfbWxlbiwKIAkJCQkJTUVUQUJVRl9QT09MX0NBQ0hFX1NJWkUsIDAsCkBAIC0xODcs NyArMTk0LDEzIEBAIG90eDJfY3B0X3FwX2NyZWF0ZShjb25zdCBzdHJ1Y3QgcnRlX2NyeXB0b2Rl diAqZGV2LCB1aW50MTZfdCBxcF9pZCwKIAkJcmV0dXJuIE5VTEw7CiAJfQogCi0JaXFfbGVuID0g T1RYMl9DUFRfSVFfTEVOOworCS8qCisJICogUGVuZGluZyBxdWV1ZSB1cGRhdGVzIG1ha2UgYXNz dW1wdGlvbiB0aGF0IHF1ZXVlIHNpemUgaXMgYSBwb3dlcgorCSAqIG9mIDIuCisJICovCisJUlRF X0JVSUxEX0JVR19PTighUlRFX0lTX1BPV0VSX09GXzIoT1RYMl9DUFRfREVGQVVMVF9DTURfUUxF TikpOworCisJaXFfbGVuID0gT1RYMl9DUFRfREVGQVVMVF9DTURfUUxFTjsKIAogCS8qCiAJICog UXVldWUgc2l6ZSBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgNDAgYW5kIGVmZmVjdGl2ZSBxdWV1ZSBz aXplIHRvCkBAIC0xOTYsNyArMjA5LDcgQEAgb3R4Ml9jcHRfcXBfY3JlYXRlKGNvbnN0IHN0cnVj dCBydGVfY3J5cHRvZGV2ICpkZXYsIHVpbnQxNl90IHFwX2lkLAogCXNpemVfZGl2NDAgPSAoaXFf bGVuICsgNDAgLSAxKSAvIDQwICsgMTsKIAogCS8qIEZvciBwZW5kaW5nIHF1ZXVlICovCi0JbGVu ID0gaXFfbGVuICogc2l6ZW9mKHVpbnRwdHJfdCk7CisJbGVuID0gaXFfbGVuICogUlRFX0FMSUdO KHNpemVvZihxcC0+cGVuZF9xLnJpZF9xdWV1ZVswXSksIDgpOwogCiAJLyogU3BhY2UgZm9yIGlu c3RydWN0aW9uIGdyb3VwIG1lbW9yeSAqLwogCWxlbiArPSBzaXplX2RpdjQwICogMTY7CkBAIC0y MDUsNyArMjE4LDcgQEAgb3R4Ml9jcHRfcXBfY3JlYXRlKGNvbnN0IHN0cnVjdCBydGVfY3J5cHRv ZGV2ICpkZXYsIHVpbnQxNl90IHFwX2lkLAogCWxlbiA9IFJURV9BTElHTihsZW4sIHBnX3N6KTsK IAogCS8qIEZvciBpbnN0cnVjdGlvbiBxdWV1ZXMgKi8KLQlsZW4gKz0gT1RYMl9DUFRfSVFfTEVO ICogc2l6ZW9mKHVuaW9uIGNwdF9pbnN0X3MpOworCWxlbiArPSBPVFgyX0NQVF9ERUZBVUxUX0NN RF9RTEVOICogc2l6ZW9mKHVuaW9uIGNwdF9pbnN0X3MpOwogCiAJLyogV2FzdGFnZSBhZnRlciBp bnN0cnVjdGlvbiBxdWV1ZXMgKi8KIAlsZW4gPSBSVEVfQUxJR04obGVuLCBwZ19zeik7CkBAIC0y MzMsMTIgKzI0NiwxMSBAQCBvdHgyX2NwdF9xcF9jcmVhdGUoY29uc3Qgc3RydWN0IHJ0ZV9jcnlw dG9kZXYgKmRldiwgdWludDE2X3QgcXBfaWQsCiAJfQogCiAJLyogSW5pdGlhbGl6ZSBwZW5kaW5n IHF1ZXVlICovCi0JcXAtPnBlbmRfcS5yZXFfcXVldWUgPSAodWludHB0cl90ICopdmE7Ci0JcXAt PnBlbmRfcS5lbnFfdGFpbCA9IDA7Ci0JcXAtPnBlbmRfcS5kZXFfaGVhZCA9IDA7Ci0JcXAtPnBl bmRfcS5wZW5kaW5nX2NvdW50ID0gMDsKKwlxcC0+cGVuZF9xLnJpZF9xdWV1ZSA9ICh2b2lkICoq KXZhOworCXFwLT5wZW5kX3EudGFpbCA9IDA7CisJcXAtPnBlbmRfcS5oZWFkID0gMDsKIAotCXVz ZWRfbGVuID0gaXFfbGVuICogc2l6ZW9mKHVpbnRwdHJfdCk7CisJdXNlZF9sZW4gPSBpcV9sZW4g KiBSVEVfQUxJR04oc2l6ZW9mKHFwLT5wZW5kX3EucmlkX3F1ZXVlWzBdKSwgOCk7CiAJdXNlZF9s ZW4gKz0gc2l6ZV9kaXY0MCAqIDE2OwogCXVzZWRfbGVuID0gUlRFX0FMSUdOKHVzZWRfbGVuLCBw Z19zeik7CiAJaW92YSArPSB1c2VkX2xlbjsKQEAgLTUxNCw3ICs1MjYsOCBAQCBvdHgyX2NwdF9l bnF1ZXVlX3JlcShjb25zdCBzdHJ1Y3Qgb3R4Ml9jcHRfcXAgKnFwLAogCQkgICAgIHN0cnVjdCBw ZW5kaW5nX3F1ZXVlICpwZW5kX3EsCiAJCSAgICAgc3RydWN0IGNwdF9yZXF1ZXN0X2luZm8gKnJl cSwKIAkJICAgICBzdHJ1Y3QgcnRlX2NyeXB0b19vcCAqb3AsCi0JCSAgICAgdWludDY0X3QgY3B0 X2luc3RfdzcpCisJCSAgICAgdWludDY0X3QgY3B0X2luc3RfdzcsCisJCSAgICAgdW5zaWduZWQg aW50IGJ1cnN0X2luZGV4KQogewogCXZvaWQgKmxtdGxpbmUgPSBxcC0+bG10bGluZTsKIAl1bmlv biBjcHRfaW5zdF9zIGluc3Q7CkBAIC01MjMsOSArNTM2LDYgQEAgb3R4Ml9jcHRfZW5xdWV1ZV9y ZXEoY29uc3Qgc3RydWN0IG90eDJfY3B0X3FwICpxcCwKIAlpZiAocXAtPmNhX2VuYWJsZSkKIAkJ cmV0dXJuIG90eDJfY2FfZW5xdWV1ZV9yZXEocXAsIHJlcSwgbG10bGluZSwgb3AsIGNwdF9pbnN0 X3c3KTsKIAotCWlmICh1bmxpa2VseShwZW5kX3EtPnBlbmRpbmdfY291bnQgPj0gT1RYMl9DUFRf REVGQVVMVF9DTURfUUxFTikpCi0JCXJldHVybiAtRUFHQUlOOwotCiAJaW5zdC51WzBdID0gMDsK IAlpbnN0LnM5eC5yZXNfYWRkciA9IHJlcS0+Y29tcF9iYWRkcjsKIAlpbnN0LnVbMl0gPSAwOwpA QCAtNTUzLDExICs1NjMsNyBAQCBvdHgyX2NwdF9lbnF1ZXVlX3JlcShjb25zdCBzdHJ1Y3Qgb3R4 Ml9jcHRfcXAgKnFwLAogCQlsbXRfc3RhdHVzID0gb3R4Ml9sbXRfc3VibWl0KHFwLT5sZl9ucV9y ZWcpOwogCX0gd2hpbGUgKGxtdF9zdGF0dXMgPT0gMCk7CiAKLQlwZW5kX3EtPnJlcV9xdWV1ZVtw ZW5kX3EtPmVucV90YWlsXSA9ICh1aW50cHRyX3QpcmVxOwotCi0JLyogV2Ugd2lsbCB1c2Ugc29m dCBxdWV1ZSBsZW5ndGggaGVyZSB0byBsaW1pdCByZXF1ZXN0cyAqLwotCU1PRF9JTkMocGVuZF9x LT5lbnFfdGFpbCwgT1RYMl9DUFRfREVGQVVMVF9DTURfUUxFTik7Ci0JcGVuZF9xLT5wZW5kaW5n X2NvdW50ICs9IDE7CisJcGVuZGluZ19xdWV1ZV9wdXNoKHBlbmRfcSwgcmVxLCBidXJzdF9pbmRl eCwgT1RYMl9DUFRfREVGQVVMVF9DTURfUUxFTik7CiAKIAlyZXR1cm4gMDsKIH0KQEAgLTU2NSw3 ICs1NzEsOCBAQCBvdHgyX2NwdF9lbnF1ZXVlX3JlcShjb25zdCBzdHJ1Y3Qgb3R4Ml9jcHRfcXAg KnFwLAogc3RhdGljIF9fcnRlX2Fsd2F5c19pbmxpbmUgaW50MzJfdCBfX3J0ZV9ob3QKIG90eDJf Y3B0X2VucXVldWVfYXN5bShzdHJ1Y3Qgb3R4Ml9jcHRfcXAgKnFwLAogCQkgICAgICBzdHJ1Y3Qg cnRlX2NyeXB0b19vcCAqb3AsCi0JCSAgICAgIHN0cnVjdCBwZW5kaW5nX3F1ZXVlICpwZW5kX3Ep CisJCSAgICAgIHN0cnVjdCBwZW5kaW5nX3F1ZXVlICpwZW5kX3EsCisJCSAgICAgIHVuc2lnbmVk IGludCBidXJzdF9pbmRleCkKIHsKIAlzdHJ1Y3QgY3B0X3FwX21ldGFfaW5mbyAqbWluZm8gPSAm cXAtPm1ldGFfaW5mbzsKIAlzdHJ1Y3QgcnRlX2NyeXB0b19hc3ltX29wICphc3ltX29wID0gb3At PmFzeW07CkBAIC02MjYsOCArNjMzLDcgQEAgb3R4Ml9jcHRfZW5xdWV1ZV9hc3ltKHN0cnVjdCBv dHgyX2NwdF9xcCAqcXAsCiAJfQogCiAJcmV0ID0gb3R4Ml9jcHRfZW5xdWV1ZV9yZXEocXAsIHBl bmRfcSwgcGFyYW1zLnJlcSwgb3AsCi0JCQkJICAgc2Vzcy0+Y3B0X2luc3RfdzcpOwotCisJCQkJ ICAgc2Vzcy0+Y3B0X2luc3RfdzcsIGJ1cnN0X2luZGV4KTsKIAlpZiAodW5saWtlbHkocmV0KSkg ewogCQlDUFRfTE9HX0RQX0VSUigiQ291bGQgbm90IGVucXVldWUgY3J5cHRvIHJlcSIpOwogCQln b3RvIHJlcV9mYWlsOwpAQCAtNjQzLDcgKzY0OSw3IEBAIG90eDJfY3B0X2VucXVldWVfYXN5bShz dHJ1Y3Qgb3R4Ml9jcHRfcXAgKnFwLAogCiBzdGF0aWMgX19ydGVfYWx3YXlzX2lubGluZSBpbnQg X19ydGVfaG90CiBvdHgyX2NwdF9lbnF1ZXVlX3N5bShzdHJ1Y3Qgb3R4Ml9jcHRfcXAgKnFwLCBz dHJ1Y3QgcnRlX2NyeXB0b19vcCAqb3AsCi0JCSAgICAgc3RydWN0IHBlbmRpbmdfcXVldWUgKnBl bmRfcSkKKwkJICAgICBzdHJ1Y3QgcGVuZGluZ19xdWV1ZSAqcGVuZF9xLCB1bnNpZ25lZCBpbnQg YnVyc3RfaW5kZXgpCiB7CiAJc3RydWN0IHJ0ZV9jcnlwdG9fc3ltX29wICpzeW1fb3AgPSBvcC0+ c3ltOwogCXN0cnVjdCBjcHRfcmVxdWVzdF9pbmZvICpyZXE7CkBAIC02NzAsOCArNjc2LDggQEAg b3R4Ml9jcHRfZW5xdWV1ZV9zeW0oc3RydWN0IG90eDJfY3B0X3FwICpxcCwgc3RydWN0IHJ0ZV9j cnlwdG9fb3AgKm9wLAogCQlyZXR1cm4gcmV0OwogCX0KIAotCXJldCA9IG90eDJfY3B0X2VucXVl dWVfcmVxKHFwLCBwZW5kX3EsIHJlcSwgb3AsIHNlc3MtPmNwdF9pbnN0X3c3KTsKLQorCXJldCA9 IG90eDJfY3B0X2VucXVldWVfcmVxKHFwLCBwZW5kX3EsIHJlcSwgb3AsIHNlc3MtPmNwdF9pbnN0 X3c3LAorCQkJCSAgICBidXJzdF9pbmRleCk7CiAJaWYgKHVubGlrZWx5KHJldCkpIHsKIAkJLyog RnJlZSBidWZmZXIgYWxsb2NhdGVkIGJ5IGZpbGwgcGFyYW1zIHJvdXRpbmVzICovCiAJCWZyZWVf b3BfbWV0YShtZGF0YSwgcXAtPm1ldGFfaW5mby5wb29sKTsKQEAgLTY4Miw3ICs2ODgsOCBAQCBv dHgyX2NwdF9lbnF1ZXVlX3N5bShzdHJ1Y3Qgb3R4Ml9jcHRfcXAgKnFwLCBzdHJ1Y3QgcnRlX2Ny eXB0b19vcCAqb3AsCiAKIHN0YXRpYyBfX3J0ZV9hbHdheXNfaW5saW5lIGludCBfX3J0ZV9ob3QK IG90eDJfY3B0X2VucXVldWVfc2VjKHN0cnVjdCBvdHgyX2NwdF9xcCAqcXAsIHN0cnVjdCBydGVf Y3J5cHRvX29wICpvcCwKLQkJICAgICBzdHJ1Y3QgcGVuZGluZ19xdWV1ZSAqcGVuZF9xKQorCQkg ICAgIHN0cnVjdCBwZW5kaW5nX3F1ZXVlICpwZW5kX3EsCisJCSAgICAgY29uc3QgdW5zaWduZWQg aW50IGJ1cnN0X2luZGV4KQogewogCXVpbnQzMl90IHdpbnN6LCBlc25fbG93ID0gMCwgZXNuX2hp ID0gMCwgc2VxbCA9IDAsIHNlcWggPSAwOwogCXN0cnVjdCBydGVfbWJ1ZiAqbV9zcmMgPSBvcC0+ c3ltLT5tX3NyYzsKQEAgLTczOSw3ICs3NDYsOCBAQCBvdHgyX2NwdF9lbnF1ZXVlX3NlYyhzdHJ1 Y3Qgb3R4Ml9jcHRfcXAgKnFwLCBzdHJ1Y3QgcnRlX2NyeXB0b19vcCAqb3AsCiAJCXJldHVybiBy ZXQ7CiAJfQogCi0JcmV0ID0gb3R4Ml9jcHRfZW5xdWV1ZV9yZXEocXAsIHBlbmRfcSwgcmVxLCBv cCwgc2Vzcy0+Y3B0X2luc3RfdzcpOworCXJldCA9IG90eDJfY3B0X2VucXVldWVfcmVxKHFwLCBw ZW5kX3EsIHJlcSwgb3AsIHNlc3MtPmNwdF9pbnN0X3c3LAorCQkJCSAgICBidXJzdF9pbmRleCk7 CiAKIAlpZiAod2luc3ogJiYgZXNuKSB7CiAJCXNlcV9pbl9zYSA9ICgodWludDY0X3QpZXNuX2hp IDw8IDMyKSB8IGVzbl9sb3c7CkBAIC03NTQsNyArNzYyLDggQEAgb3R4Ml9jcHRfZW5xdWV1ZV9z ZWMoc3RydWN0IG90eDJfY3B0X3FwICpxcCwgc3RydWN0IHJ0ZV9jcnlwdG9fb3AgKm9wLAogCiBz dGF0aWMgX19ydGVfYWx3YXlzX2lubGluZSBpbnQgX19ydGVfaG90CiBvdHgyX2NwdF9lbnF1ZXVl X3N5bV9zZXNzbGVzcyhzdHJ1Y3Qgb3R4Ml9jcHRfcXAgKnFwLCBzdHJ1Y3QgcnRlX2NyeXB0b19v cCAqb3AsCi0JCQkgICAgICBzdHJ1Y3QgcGVuZGluZ19xdWV1ZSAqcGVuZF9xKQorCQkJICAgICAg c3RydWN0IHBlbmRpbmdfcXVldWUgKnBlbmRfcSwKKwkJCSAgICAgIHVuc2lnbmVkIGludCBidXJz dF9pbmRleCkKIHsKIAljb25zdCBpbnQgZHJpdmVyX2lkID0gb3R4Ml9jcnlwdG9kZXZfZHJpdmVy X2lkOwogCXN0cnVjdCBydGVfY3J5cHRvX3N5bV9vcCAqc3ltX29wID0gb3AtPnN5bTsKQEAgLTc3 Myw3ICs3ODIsNyBAQCBvdHgyX2NwdF9lbnF1ZXVlX3N5bV9zZXNzbGVzcyhzdHJ1Y3Qgb3R4Ml9j cHRfcXAgKnFwLCBzdHJ1Y3QgcnRlX2NyeXB0b19vcCAqb3AsCiAKIAlzeW1fb3AtPnNlc3Npb24g PSBzZXNzOwogCi0JcmV0ID0gb3R4Ml9jcHRfZW5xdWV1ZV9zeW0ocXAsIG9wLCBwZW5kX3EpOwor CXJldCA9IG90eDJfY3B0X2VucXVldWVfc3ltKHFwLCBvcCwgcGVuZF9xLCBidXJzdF9pbmRleCk7 CiAKIAlpZiAodW5saWtlbHkocmV0KSkKIAkJZ290byBwcml2X3B1dDsKQEAgLTc5OCwyMyArODA3 LDI2IEBAIG90eDJfY3B0X2VucXVldWVfYnVyc3Qodm9pZCAqcXB0ciwgc3RydWN0IHJ0ZV9jcnlw dG9fb3AgKipvcHMsIHVpbnQxNl90IG5iX29wcykKIAogCXBlbmRfcSA9ICZxcC0+cGVuZF9xOwog Ci0JbmJfYWxsb3dlZCA9IE9UWDJfQ1BUX0RFRkFVTFRfQ01EX1FMRU4gLSBwZW5kX3EtPnBlbmRp bmdfY291bnQ7Ci0JaWYgKG5iX29wcyA+IG5iX2FsbG93ZWQpCi0JCW5iX29wcyA9IG5iX2FsbG93 ZWQ7CisJbmJfYWxsb3dlZCA9IHBlbmRpbmdfcXVldWVfZnJlZV9zbG90cyhwZW5kX3EsCisJCQkJ T1RYMl9DUFRfREVGQVVMVF9DTURfUUxFTiwgMCk7CisJbmJfb3BzID0gUlRFX01JTihuYl9vcHMs IG5iX2FsbG93ZWQpOwogCiAJZm9yIChjb3VudCA9IDA7IGNvdW50IDwgbmJfb3BzOyBjb3VudCsr KSB7CiAJCW9wID0gb3BzW2NvdW50XTsKIAkJaWYgKG9wLT50eXBlID09IFJURV9DUllQVE9fT1Bf VFlQRV9TWU1NRVRSSUMpIHsKIAkJCWlmIChvcC0+c2Vzc190eXBlID09IFJURV9DUllQVE9fT1Bf U0VDVVJJVFlfU0VTU0lPTikKLQkJCQlyZXQgPSBvdHgyX2NwdF9lbnF1ZXVlX3NlYyhxcCwgb3As IHBlbmRfcSk7CisJCQkJcmV0ID0gb3R4Ml9jcHRfZW5xdWV1ZV9zZWMocXAsIG9wLCBwZW5kX3Es CisJCQkJCQkJICAgY291bnQpOwogCQkJZWxzZSBpZiAob3AtPnNlc3NfdHlwZSA9PSBSVEVfQ1JZ UFRPX09QX1dJVEhfU0VTU0lPTikKLQkJCQlyZXQgPSBvdHgyX2NwdF9lbnF1ZXVlX3N5bShxcCwg b3AsIHBlbmRfcSk7CisJCQkJcmV0ID0gb3R4Ml9jcHRfZW5xdWV1ZV9zeW0ocXAsIG9wLCBwZW5k X3EsCisJCQkJCQkJICAgY291bnQpOwogCQkJZWxzZQogCQkJCXJldCA9IG90eDJfY3B0X2VucXVl dWVfc3ltX3Nlc3NsZXNzKHFwLCBvcCwKLQkJCQkJCQkJICAgIHBlbmRfcSk7CisJCQkJCQlwZW5k X3EsIGNvdW50KTsKIAkJfSBlbHNlIGlmIChvcC0+dHlwZSA9PSBSVEVfQ1JZUFRPX09QX1RZUEVf QVNZTU1FVFJJQykgewogCQkJaWYgKG9wLT5zZXNzX3R5cGUgPT0gUlRFX0NSWVBUT19PUF9XSVRI X1NFU1NJT04pCi0JCQkJcmV0ID0gb3R4Ml9jcHRfZW5xdWV1ZV9hc3ltKHFwLCBvcCwgcGVuZF9x KTsKKwkJCQlyZXQgPSBvdHgyX2NwdF9lbnF1ZXVlX2FzeW0ocXAsIG9wLCBwZW5kX3EsCisJCQkJ CQkJCWNvdW50KTsKIAkJCWVsc2UKIAkJCQlicmVhazsKIAkJfSBlbHNlCkBAIC04MjQsNiArODM2 LDkgQEAgb3R4Ml9jcHRfZW5xdWV1ZV9idXJzdCh2b2lkICpxcHRyLCBzdHJ1Y3QgcnRlX2NyeXB0 b19vcCAqKm9wcywgdWludDE2X3QgbmJfb3BzKQogCQkJYnJlYWs7CiAJfQogCisJaWYgKHVubGlr ZWx5KCFxcC0+Y2FfZW5hYmxlKSkKKwkJcGVuZGluZ19xdWV1ZV9jb21taXQocGVuZF9xLCBjb3Vu dCwgT1RYMl9DUFRfREVGQVVMVF9DTURfUUxFTik7CisKIAlyZXR1cm4gY291bnQ7CiB9CiAKQEAg LTEwNTksMTQgKzEwNzQsMTYgQEAgb3R4Ml9jcHRfZGVxdWV1ZV9idXJzdCh2b2lkICpxcHRyLCBz dHJ1Y3QgcnRlX2NyeXB0b19vcCAqKm9wcywgdWludDE2X3QgbmJfb3BzKQogCiAJcGVuZF9xID0g JnFwLT5wZW5kX3E7CiAKLQluYl9wZW5kaW5nID0gcGVuZF9xLT5wZW5kaW5nX2NvdW50OworCW5i X3BlbmRpbmcgPSBwZW5kaW5nX3F1ZXVlX2xldmVsKHBlbmRfcSwgT1RYMl9DUFRfREVGQVVMVF9D TURfUUxFTik7CisKKwkvKiBFbnN1cmUgcGNvdW50IGlzbid0IHJlYWQgYmVmb3JlIGRhdGEgbGFu ZHMgKi8KKwlydGVfYXRvbWljX3RocmVhZF9mZW5jZShfX0FUT01JQ19BQ1FVSVJFKTsKIAotCWlm IChuYl9vcHMgPiBuYl9wZW5kaW5nKQotCQluYl9vcHMgPSBuYl9wZW5kaW5nOworCW5iX29wcyA9 IFJURV9NSU4obmJfb3BzLCBuYl9wZW5kaW5nKTsKIAogCWZvciAoaSA9IDA7IGkgPCBuYl9vcHM7 IGkrKykgewotCQlyZXEgPSAoc3RydWN0IGNwdF9yZXF1ZXN0X2luZm8gKikKLQkJCQlwZW5kX3Et PnJlcV9xdWV1ZVtwZW5kX3EtPmRlcV9oZWFkXTsKKwkJcGVuZGluZ19xdWV1ZV9wZWVrKHBlbmRf cSwgKHZvaWQgKiopJnJlcSwKKwkJCU9UWDJfQ1BUX0RFRkFVTFRfQ01EX1FMRU4sIDApOwogCiAJ CWNjW2ldID0gb3R4Ml9jcHRfY29tcGNvZGVfZ2V0KHJlcSk7CiAKQEAgLTEwNzUsOCArMTA5Miw3 IEBAIG90eDJfY3B0X2RlcXVldWVfYnVyc3Qodm9pZCAqcXB0ciwgc3RydWN0IHJ0ZV9jcnlwdG9f b3AgKipvcHMsIHVpbnQxNl90IG5iX29wcykKIAogCQlvcHNbaV0gPSByZXEtPm9wOwogCi0JCU1P RF9JTkMocGVuZF9xLT5kZXFfaGVhZCwgT1RYMl9DUFRfREVGQVVMVF9DTURfUUxFTik7Ci0JCXBl bmRfcS0+cGVuZGluZ19jb3VudCAtPSAxOworCQlwZW5kaW5nX3F1ZXVlX3BvcChwZW5kX3EsIE9U WDJfQ1BUX0RFRkFVTFRfQ01EX1FMRU4pOwogCX0KIAogCW5iX2NvbXBsZXRlZCA9IGk7CgpodHRw czovL2xhYi5kcGRrLm9yZy9yZXN1bHRzL2Rhc2hib2FyZC9wYXRjaHNldHMvMTg5NDUvCgpVTkgt SU9MIERQREsgQ29tbXVuaXR5IExhYgo= --===============8472681935904903646==--