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 70156A0C5B for ; Fri, 5 Nov 2021 04:09:13 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6079840689; Fri, 5 Nov 2021 04:09:13 +0100 (CET) Received: from mail-pj1-f97.google.com (mail-pj1-f97.google.com [209.85.216.97]) by mails.dpdk.org (Postfix) with ESMTP id D634540151 for ; Fri, 5 Nov 2021 04:09:11 +0100 (CET) Received: by mail-pj1-f97.google.com with SMTP id np3so2181281pjb.4 for ; Thu, 04 Nov 2021 20:09:11 -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=BH4/V2nDlZ83NaYP5Jj8aq9mlKeE/DZMCZ75CVCoVRU=; b=hdBZb89XlZ2nRx9hSoRHLJUr9TiaJZgrqrDSV6zQV95UuYgbSGYlIzW4i0/vJ1sO23 +CUlYAzgqnKCFSe+eHvVWKHSRNMAP0P78XPPbieWjqIZU6XRXTCh4DbHpvfo74Lihi/L R9aNXYGCn3Px86hB5YH+bBEsOTKYF1/99TfzQ= 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=BH4/V2nDlZ83NaYP5Jj8aq9mlKeE/DZMCZ75CVCoVRU=; b=bAbUv4Jn7yxML7bEGJwDED3RKRp0F9TvFX9/HPT+Br1H7ao6PqNwEFAF/MKqK6JTLA IqVS/HrABo2L9i/mZqKPo7lONw1wvtSjHln9N+tDo2V4yRT7F0f7mBk6KGTCouSm6n/p 2Ig91KVt3eKVw5s/m4YCX9FnKN5LbUqL2O/Yd6fSbXr/6jUaMj9ZvQkxq+zwnP4qvhV1 oWRVQ+5yCbUMfSyPOnJSS5PzZmN25N2cWv1nffzwkJ7n+XKD9/IVLRkc+crI6YU9iaKZ UbL77o4f6YMpp5aqItOQabCxXBxtWK/GlLBN1ftmtjTDJS1cUG+/I6RMaeSi90lPoHoc AONQ== X-Gm-Message-State: AOAM533NnLjYMkbX//9e4v6mcQFpAZcnJcMjVKmMp6FDRBpDJmoidnnQ N0JR4I1XE1rkqIASdX5UGSJcTvBrrrzwPcACazcdgPJR8q/RAu7FF3EY/KYZxbFQIg== X-Google-Smtp-Source: ABdhPJx04wbImUmya/lz/Y0j8CHo/BwHSBUU39nKubquBnoKY6ZXD7SrlXqscptUxn+jMpngYf5lw7nhv1dA X-Received: by 2002:a17:902:bf43:b0:142:41bb:a6f with SMTP id u3-20020a170902bf4300b0014241bb0a6fmr3590788pls.22.1636081751038; Thu, 04 Nov 2021 20:09:11 -0700 (PDT) Received: from postal.iol.unh.edu (postal.iol.unh.edu. [2606:4100:3880:1234::84]) by smtp-relay.gmail.com with ESMTPS id hk6sm1003328pjb.14.2021.11.04.20.09.10 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Thu, 04 Nov 2021 20:09:11 -0700 (PDT) X-Relaying-Domain: iol.unh.edu Received: from dpdk-ubuntu.dpdklab.iol.unh.edu (targon.iol.unh.edu [132.177.125.242]) by postal.iol.unh.edu (Postfix) with ESMTP id 2A23D605247D; Thu, 4 Nov 2021 23:09:10 -0400 (EDT) Received: from dpdk-ubuntu.dpdklab.iol.unh.edu (localhost [IPv6:::1]) by dpdk-ubuntu.dpdklab.iol.unh.edu (Postfix) with ESMTP id 1393560711; Fri, 5 Nov 2021 03:09:10 +0000 (UTC) Content-Type: multipart/mixed; boundary="===============2386537145284690348==" MIME-Version: 1.0 From: dpdklab@iol.unh.edu To: test-report@dpdk.org Cc: dpdk-test-reports@iol.unh.edu Message-Id: <20211105030910.1393560711@dpdk-ubuntu.dpdklab.iol.unh.edu> Date: Fri, 5 Nov 2021 03:09:10 +0000 (UTC) Subject: [dpdk-test-report] |WARNING| pw103826-103836 [PATCH] [v2, 9/9] net/hns3: remove PF/VF duplicate code 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" --===============2386537145284690348== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGVzdC1MYWJlbDogaW9sLXRlc3RpbmcKVGVzdC1TdGF0dXM6IFdBUk5JTkcKaHR0cDovL2RwZGsu b3JnL3BhdGNoLzEwMzgyNgoKX2FwcGx5IHBhdGNoIGZhaWx1cmVfCgpTdWJtaXR0ZXI6IE1pbiBI dSAoQ29ubm9yKSA8aHVtaW4yOUBodWF3ZWkuY29tPgpEYXRlOiBGcmlkYXksIE5vdmVtYmVyIDA1 IDIwMjEgMDI6NDY6NTcgCkFwcGxpZWQgb246IENvbW1pdElEOjY1ZDliN2M2NjRjYzhjYzA5MGNl ZDFjMzI2MGQ4MDNmMzA2YTJiYmEKQXBwbHkgcGF0Y2ggc2V0IDEwMzgyNi0xMDM4MzYgZmFpbGVk OgoKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaG5zMy9obnMzX2NtZC5jLi4uCkNoZWNraW5n IHBhdGNoIGRyaXZlcnMvbmV0L2huczMvaG5zM19jb21tb24uYy4uLgouZ2l0L3JlYmFzZS1hcHBs eS9wYXRjaDo0NjE6IG5ldyBibGFuayBsaW5lIGF0IEVPRi4KKwpDaGVja2luZyBwYXRjaCBkcml2 ZXJzL25ldC9obnMzL2huczNfY29tbW9uLmguLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQv aG5zMy9obnMzX2V0aGRldi5jLi4uCmVycm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJcmV0dXJu IHJldDsKfQoKc3RhdGljIGJvb2wKaG5zM19maW5kX2R1cGxpY2F0ZV9tY19hZGRyKHN0cnVjdCBo bnMzX2h3ICpodywgc3RydWN0IHJ0ZV9ldGhlcl9hZGRyICptY19hZGRyKQp7CgljaGFyIG1hY19z dHJbUlRFX0VUSEVSX0FERFJfRk1UX1NJWkVdOwoJc3RydWN0IHJ0ZV9ldGhlcl9hZGRyICphZGRy OwoJaW50IGk7CgoJZm9yIChpID0gMDsgaSA8IGh3LT5tY19hZGRyc19udW07IGkrKykgewoJCWFk ZHIgPSAmaHctPm1jX2FkZHJzW2ldOwoJCS8qIENoZWNrIGlmIHRoZXJlIGFyZSBkdXBsaWNhdGUg YWRkcmVzc2VzIGluIG1jX2FkZHJzW10gKi8KCQlpZiAocnRlX2lzX3NhbWVfZXRoZXJfYWRkcihh ZGRyLCBtY19hZGRyKSkgewoJCQlobnMzX2V0aGVyX2Zvcm1hdF9hZGRyKG1hY19zdHIsIFJURV9F VEhFUl9BRERSX0ZNVF9TSVpFLAoJCQkJCSAgICAgICBhZGRyKTsKCQkJaG5zM19lcnIoaHcsICJm YWlsZWQgdG8gYWRkIG1jIG1hYyBhZGRyLCBzYW1lIGFkZHJzIgoJCQkJICIoJXMpIGlzIGFkZGVk IGJ5IHRoZSBzZXRfbWNfbWFjX2FkZHJfbGlzdCAiCgkJCQkgIkFQSSIsIG1hY19zdHIpOwoJCQly ZXR1cm4gdHJ1ZTsKCQl9Cgl9CgoJcmV0dXJuIGZhbHNlOwp9CgppbnQKaG5zM19hZGRfbWFjX2Fk ZHIoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsIHN0cnVjdCBydGVfZXRoZXJfYWRkciAqbWFjX2Fk ZHIsCgkJICBfX3J0ZV91bnVzZWQgdWludDMyX3QgaWR4LCBfX3J0ZV91bnVzZWQgdWludDMyX3Qg cG9vbCkKewoJc3RydWN0IGhuczNfaHcgKmh3ID0gSE5TM19ERVZfUFJJVkFURV9UT19IVyhkZXYt PmRhdGEtPmRldl9wcml2YXRlKTsKCWNoYXIgbWFjX3N0cltSVEVfRVRIRVJfQUREUl9GTVRfU0la RV07CglpbnQgcmV0OwoKCXJ0ZV9zcGlubG9ja19sb2NrKCZody0+bG9jayk7CgoJLyoKCSAqIElu IGhuczMgbmV0d29yayBlbmdpbmUgYWRkaW5nIFVDIGFuZCBNQyBtYWMgYWRkcmVzcyB3aXRoIGRp ZmZlcmVudAoJICogY29tbWFuZHMgd2l0aCBmaXJtd2FyZS4gV2UgbmVlZCB0byBkZXRlcm1pbmUg d2hldGhlciB0aGUgaW5wdXQKCSAqIGFkZHJlc3MgaXMgYSBVQyBvciBhIE1DIGFkZHJlc3MgdG8g Y2FsbCBkaWZmZXJlbnQgY29tbWFuZHMuCgkgKiBCeSB0aGUgd2F5LCBpdCBpcyByZWNvbW1lbmRl ZCBjYWxsaW5nIHRoZSBBUEkgZnVuY3Rpb24gbmFtZWQKCSAqIHJ0ZV9ldGhfZGV2X3NldF9tY19h ZGRyX2xpc3QgdG8gc2V0IHRoZSBNQyBtYWMgYWRkcmVzcywgYmVjYXVzZQoJICogdXNpbmcgdGhl IHJ0ZV9ldGhfZGV2X21hY19hZGRyX2FkZCBBUEkgZnVuY3Rpb24gdG8gc2V0IE1DIG1hYyBhZGRy ZXNzCgkgKiBtYXkgYWZmZWN0IHRoZSBzcGVjaWZpY2F0aW9ucyBvZiBVQyBtYWMgYWRkcmVzc2Vz LgoJICovCglpZiAocnRlX2lzX211bHRpY2FzdF9ldGhlcl9hZGRyKG1hY19hZGRyKSkgewoJCWlm IChobnMzX2ZpbmRfZHVwbGljYXRlX21jX2FkZHIoaHcsIG1hY19hZGRyKSkgewoJCQlydGVfc3Bp bmxvY2tfdW5sb2NrKCZody0+bG9jayk7CgkJCXJldHVybiAtRUlOVkFMOwoJCX0KCQlyZXQgPSBo dy0+b3BzLmFkZF9tY19tYWNfYWRkcihodywgbWFjX2FkZHIpOwoJfSBlbHNlIHsKCQlyZXQgPSBo dy0+b3BzLmFkZF91Y19tYWNfYWRkcihodywgbWFjX2FkZHIpOwoJfQoJcnRlX3NwaW5sb2NrX3Vu bG9jaygmaHctPmxvY2spOwoJaWYgKHJldCkgewoJCWhuczNfZXRoZXJfZm9ybWF0X2FkZHIobWFj X3N0ciwgUlRFX0VUSEVSX0FERFJfRk1UX1NJWkUsCgkJCQkgICAgICBtYWNfYWRkcik7CgkJaG5z M19lcnIoaHcsICJmYWlsZWQgdG8gYWRkIG1hYyBhZGRyKCVzKSwgcmV0ID0gJWQiLCBtYWNfc3Ry LAoJCQkgcmV0KTsKCX0KCglyZXR1cm4gcmV0Owp9CgpzdGF0aWMgaW50CmhuczNfcmVtb3ZlX3Vj X21hY19hZGRyKHN0cnVjdCBobnMzX2h3ICpodywgc3RydWN0IHJ0ZV9ldGhlcl9hZGRyICptYWNf YWRkcikKewoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJpdmVycy9uZXQvaG5zMy9obnMzX2V0aGRl di5jOjE2MDkKZXJyb3I6IHdoaWxlIHNlYXJjaGluZyBmb3I6CglyZXR1cm4gcmV0Owp9Cgp2b2lk CmhuczNfcmVtb3ZlX21hY19hZGRyKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCB1aW50MzJfdCBp ZHgpCnsKCXN0cnVjdCBobnMzX2h3ICpodyA9IEhOUzNfREVWX1BSSVZBVEVfVE9fSFcoZGV2LT5k YXRhLT5kZXZfcHJpdmF0ZSk7CgkvKiBpbmRleCB3aWxsIGJlIGNoZWNrZWQgYnkgdXBwZXIgbGV2 ZWwgcnRlIGludGVyZmFjZSAqLwoJc3RydWN0IHJ0ZV9ldGhlcl9hZGRyICptYWNfYWRkciA9ICZk ZXYtPmRhdGEtPm1hY19hZGRyc1tpZHhdOwoJY2hhciBtYWNfc3RyW1JURV9FVEhFUl9BRERSX0ZN VF9TSVpFXTsKCWludCByZXQ7CgoJcnRlX3NwaW5sb2NrX2xvY2soJmh3LT5sb2NrKTsKCglpZiAo cnRlX2lzX211bHRpY2FzdF9ldGhlcl9hZGRyKG1hY19hZGRyKSkKCQlyZXQgPSBody0+b3BzLmRl bF9tY19tYWNfYWRkcihodywgbWFjX2FkZHIpOwoJZWxzZQoJCXJldCA9IGh3LT5vcHMuZGVsX3Vj X21hY19hZGRyKGh3LCBtYWNfYWRkcik7CglydGVfc3BpbmxvY2tfdW5sb2NrKCZody0+bG9jayk7 CglpZiAocmV0KSB7CgkJaG5zM19ldGhlcl9mb3JtYXRfYWRkcihtYWNfc3RyLCBSVEVfRVRIRVJf QUREUl9GTVRfU0laRSwKCQkJCSAgICAgIG1hY19hZGRyKTsKCQlobnMzX2VycihodywgImZhaWxl ZCB0byByZW1vdmUgbWFjIGFkZHIoJXMpLCByZXQgPSAlZCIsIG1hY19zdHIsCgkJCSByZXQpOwoJ fQp9CgpzdGF0aWMgaW50CmhuczNfc2V0X2RlZmF1bHRfbWFjX2FkZHIoc3RydWN0IHJ0ZV9ldGhf ZGV2ICpkZXYsCgkJCSAgc3RydWN0IHJ0ZV9ldGhlcl9hZGRyICptYWNfYWRkcikKCmVycm9yOiBw YXRjaCBmYWlsZWQ6IGRyaXZlcnMvbmV0L2huczMvaG5zM19ldGhkZXYuYzoxNjk5CmVycm9yOiB3 aGlsZSBzZWFyY2hpbmcgZm9yOgoJcmV0dXJuIHJldDsKfQoKaW50CmhuczNfY29uZmlndXJlX2Fs bF9tYWNfYWRkcihzdHJ1Y3QgaG5zM19hZGFwdGVyICpobnMsIGJvb2wgZGVsKQp7CgljaGFyIG1h Y19zdHJbUlRFX0VUSEVSX0FERFJfRk1UX1NJWkVdOwoJc3RydWN0IGhuczNfaHcgKmh3ID0gJmhu cy0+aHc7CglzdHJ1Y3QgaG5zM19od19vcHMgKm9wcyA9ICZody0+b3BzOwoJc3RydWN0IHJ0ZV9l dGhlcl9hZGRyICphZGRyOwoJdWludDE2X3QgbWFjX2FkZHJzX2NhcGE7CglpbnQgcmV0ID0gMDsK CWludCBpOwoKCW1hY19hZGRyc19jYXBhID0KCQlobnMtPmlzX3ZmID8gSE5TM19WRl9VQ19NQUNB RERSX05VTSA6IEhOUzNfVUNfTUFDQUREUl9OVU07Cglmb3IgKGkgPSAwOyBpIDwgbWFjX2FkZHJz X2NhcGE7IGkrKykgewoJCWFkZHIgPSAmaHctPmRhdGEtPm1hY19hZGRyc1tpXTsKCQlpZiAocnRl X2lzX3plcm9fZXRoZXJfYWRkcihhZGRyKSkKCQkJY29udGludWU7CgkJaWYgKHJ0ZV9pc19tdWx0 aWNhc3RfZXRoZXJfYWRkcihhZGRyKSkKCQkJcmV0ID0gZGVsID8gb3BzLT5kZWxfbWNfbWFjX2Fk ZHIoaHcsIGFkZHIpIDoKCQkJICAgICAgb3BzLT5hZGRfbWNfbWFjX2FkZHIoaHcsIGFkZHIpOwoJ CWVsc2UKCQkJcmV0ID0gZGVsID8gb3BzLT5kZWxfdWNfbWFjX2FkZHIoaHcsIGFkZHIpIDoKCQkJ ICAgICAgb3BzLT5hZGRfdWNfbWFjX2FkZHIoaHcsIGFkZHIpOwoKCQlpZiAocmV0KSB7CgkJCWhu czNfZXRoZXJfZm9ybWF0X2FkZHIobWFjX3N0ciwgUlRFX0VUSEVSX0FERFJfRk1UX1NJWkUsCgkJ CQkJICAgICAgIGFkZHIpOwoJCQlobnMzX2VycihodywgImZhaWxlZCB0byAlcyBtYWMgYWRkcigl cykgaW5kZXg6JWQgcmV0ID0gJWQuIiwKCQkJCSBkZWwgPyAicmVtb3ZlIiA6ICJyZXN0b3JlIiwg bWFjX3N0ciwgaSwgcmV0KTsKCQl9Cgl9CgoJcmV0dXJuIHJldDsKfQoKc3RhdGljIHZvaWQKaG5z M191cGRhdGVfZGVzY192ZmlkKHN0cnVjdCBobnMzX2NtZF9kZXNjICpkZXNjLCB1aW50OF90IHZm aWQsIGJvb2wgY2xyKQp7CgplcnJvcjogcGF0Y2ggZmFpbGVkOiBkcml2ZXJzL25ldC9obnMzL2hu czNfZXRoZGV2LmM6MTc4NwplcnJvcjogd2hpbGUgc2VhcmNoaW5nIGZvcjoKCXJldHVybiByZXQ7 Cn0KCnN0YXRpYyBpbnQKaG5zM19zZXRfbWNfYWRkcl9jaGtfcGFyYW0oc3RydWN0IGhuczNfaHcg Kmh3LAoJCQkgICBzdHJ1Y3QgcnRlX2V0aGVyX2FkZHIgKm1jX2FkZHJfc2V0LAoJCQkgICB1aW50 MzJfdCBuYl9tY19hZGRyKQp7CglzdHJ1Y3QgaG5zM19hZGFwdGVyICpobnMgPSBITlMzX0RFVl9I V19UT19BREFQVEVSKGh3KTsKCWNoYXIgbWFjX3N0cltSVEVfRVRIRVJfQUREUl9GTVRfU0laRV07 CglzdHJ1Y3QgcnRlX2V0aGVyX2FkZHIgKmFkZHI7Cgl1aW50MTZfdCBtYWNfYWRkcnNfY2FwYTsK CXVpbnQzMl90IGk7Cgl1aW50MzJfdCBqOwoKCWlmIChuYl9tY19hZGRyID4gSE5TM19NQ19NQUNB RERSX05VTSkgewoJCWhuczNfZXJyKGh3LCAiZmFpbGVkIHRvIHNldCBtYyBtYWMgYWRkciwgbmJf bWNfYWRkcigldSkgIgoJCQkgImludmFsaWQuIHZhbGlkIHJhbmdlOiAwfiVkIiwKCQkJIG5iX21j X2FkZHIsIEhOUzNfTUNfTUFDQUREUl9OVU0pOwoJCXJldHVybiAtRUlOVkFMOwoJfQoKCS8qIENo ZWNrIGlmIGlucHV0IG1hYyBhZGRyZXNzZXMgYXJlIHZhbGlkICovCglmb3IgKGkgPSAwOyBpIDwg bmJfbWNfYWRkcjsgaSsrKSB7CgkJYWRkciA9ICZtY19hZGRyX3NldFtpXTsKCQlpZiAoIXJ0ZV9p c19tdWx0aWNhc3RfZXRoZXJfYWRkcihhZGRyKSkgewoJCQlobnMzX2V0aGVyX2Zvcm1hdF9hZGRy KG1hY19zdHIsIFJURV9FVEhFUl9BRERSX0ZNVF9TSVpFLAoJCQkJCSAgICAgIGFkZHIpOwoJCQlo bnMzX2VycihodywKCQkJCSAiZmFpbGVkIHRvIHNldCBtYyBtYWMgYWRkciwgYWRkciglcykgaW52 YWxpZC4iLAoJCQkJIG1hY19zdHIpOwoJCQlyZXR1cm4gLUVJTlZBTDsKCQl9CgoJCS8qIENoZWNr IGlmIHRoZXJlIGFyZSBkdXBsaWNhdGUgYWRkcmVzc2VzICovCgkJZm9yIChqID0gaSArIDE7IGog PCBuYl9tY19hZGRyOyBqKyspIHsKCQkJaWYgKHJ0ZV9pc19zYW1lX2V0aGVyX2FkZHIoYWRkciwg Jm1jX2FkZHJfc2V0W2pdKSkgewoJCQkJaG5zM19ldGhlcl9mb3JtYXRfYWRkcihtYWNfc3RyLAoJ CQkJCQkgICAgICBSVEVfRVRIRVJfQUREUl9GTVRfU0laRSwKCQkJCQkJICAgICAgYWRkcik7CgkJ CQlobnMzX2VycihodywgImZhaWxlZCB0byBzZXQgbWMgbWFjIGFkZHIsICIKCQkJCQkgImFkZHJz IGludmFsaWQuIHR3byBzYW1lIGFkZHJzKCVzKS4iLAoJCQkJCSBtYWNfc3RyKTsKCQkJCXJldHVy biAtRUlOVkFMOwoJCQl9CgkJfQoKCQkvKgoJCSAqIENoZWNrIGlmIHRoZXJlIGFyZSBkdXBsaWNh dGUgYWRkcmVzc2VzIGJldHdlZW4gbWFjX2FkZHJzCgkJICogYW5kIG1jX2FkZHJfc2V0CgkJICov CgkJbWFjX2FkZHJzX2NhcGEgPSBobnMtPmlzX3ZmID8gSE5TM19WRl9VQ19NQUNBRERSX05VTSA6 CgkJCQkJICAgICAgSE5TM19VQ19NQUNBRERSX05VTTsKCQlmb3IgKGogPSAwOyBqIDwgbWFjX2Fk ZHJzX2NhcGE7IGorKykgewoJCQlpZiAocnRlX2lzX3NhbWVfZXRoZXJfYWRkcihhZGRyLAoJCQkJ CQkgICAmaHctPmRhdGEtPm1hY19hZGRyc1tqXSkpIHsKCQkJCWhuczNfZXRoZXJfZm9ybWF0X2Fk ZHIobWFjX3N0ciwKCQkJCQkJICAgICAgIFJURV9FVEhFUl9BRERSX0ZNVF9TSVpFLAoJCQkJCQkg ICAgICAgYWRkcik7CgkJCQlobnMzX2VycihodywgImZhaWxlZCB0byBzZXQgbWMgbWFjIGFkZHIs ICIKCQkJCQkgImFkZHJzIGludmFsaWQuIGFkZHJzKCVzKSBoYXMgYWxyZWFkeSAiCgkJCQkJICJj b25maWd1cmVkIGluIG1hY19hZGRyIGFkZCBBUEkiLAoJCQkJCSBtYWNfc3RyKTsKCQkJCXJldHVy biAtRUlOVkFMOwoJCQl9CgkJfQoJfQoKCXJldHVybiAwOwp9CgppbnQKaG5zM19zZXRfbWNfbWFj X2FkZHJfbGlzdChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwKCQkJICBzdHJ1Y3QgcnRlX2V0aGVy X2FkZHIgKm1jX2FkZHJfc2V0LAoJCQkgIHVpbnQzMl90IG5iX21jX2FkZHIpCnsKCXN0cnVjdCBo bnMzX2h3ICpodyA9IEhOUzNfREVWX1BSSVZBVEVfVE9fSFcoZGV2LT5kYXRhLT5kZXZfcHJpdmF0 ZSk7CglzdHJ1Y3QgcnRlX2V0aGVyX2FkZHIgKmFkZHI7CglpbnQgY3VyX2FkZHJfbnVtOwoJaW50 IHNldF9hZGRyX251bTsKCWludCBudW07CglpbnQgcmV0OwoJaW50IGk7CgoJLyogQ2hlY2sgaWYg aW5wdXQgcGFyYW1ldGVycyBhcmUgdmFsaWQgKi8KCXJldCA9IGhuczNfc2V0X21jX2FkZHJfY2hr X3BhcmFtKGh3LCBtY19hZGRyX3NldCwgbmJfbWNfYWRkcik7CglpZiAocmV0KQoJCXJldHVybiBy ZXQ7CgoJcnRlX3NwaW5sb2NrX2xvY2soJmh3LT5sb2NrKTsKCWN1cl9hZGRyX251bSA9IGh3LT5t Y19hZGRyc19udW07Cglmb3IgKGkgPSAwOyBpIDwgY3VyX2FkZHJfbnVtOyBpKyspIHsKCQludW0g PSBjdXJfYWRkcl9udW0gLSBpIC0gMTsKCQlhZGRyID0gJmh3LT5tY19hZGRyc1tudW1dOwoJCXJl dCA9IGh3LT5vcHMuZGVsX21jX21hY19hZGRyKGh3LCBhZGRyKTsKCQlpZiAocmV0KSB7CgkJCXJ0 ZV9zcGlubG9ja191bmxvY2soJmh3LT5sb2NrKTsKCQkJcmV0dXJuIHJldDsKCQl9CgoJCWh3LT5t Y19hZGRyc19udW0tLTsKCX0KCglzZXRfYWRkcl9udW0gPSAoaW50KW5iX21jX2FkZHI7Cglmb3Ig KGkgPSAwOyBpIDwgc2V0X2FkZHJfbnVtOyBpKyspIHsKCQlhZGRyID0gJm1jX2FkZHJfc2V0W2ld OwoJCXJldCA9IGh3LT5vcHMuYWRkX21jX21hY19hZGRyKGh3LCBhZGRyKTsKCQlpZiAocmV0KSB7 CgkJCXJ0ZV9zcGlubG9ja191bmxvY2soJmh3LT5sb2NrKTsKCQkJcmV0dXJuIHJldDsKCQl9CgoJ CXJ0ZV9ldGhlcl9hZGRyX2NvcHkoYWRkciwgJmh3LT5tY19hZGRyc1tody0+bWNfYWRkcnNfbnVt XSk7CgkJaHctPm1jX2FkZHJzX251bSsrOwoJfQoJcnRlX3NwaW5sb2NrX3VubG9jaygmaHctPmxv Y2spOwoKCXJldHVybiAwOwp9CgppbnQKaG5zM19jb25maWd1cmVfYWxsX21jX21hY19hZGRyKHN0 cnVjdCBobnMzX2FkYXB0ZXIgKmhucywgYm9vbCBkZWwpCnsKCWNoYXIgbWFjX3N0cltSVEVfRVRI RVJfQUREUl9GTVRfU0laRV07CglzdHJ1Y3QgaG5zM19odyAqaHcgPSAmaG5zLT5odzsKCXN0cnVj dCBydGVfZXRoZXJfYWRkciAqYWRkcjsKCWludCByZXQgPSAwOwoJaW50IGk7CgoJZm9yIChpID0g MDsgaSA8IGh3LT5tY19hZGRyc19udW07IGkrKykgewoJCWFkZHIgPSAmaHctPm1jX2FkZHJzW2ld OwoJCWlmICghcnRlX2lzX211bHRpY2FzdF9ldGhlcl9hZGRyKGFkZHIpKQoJCQljb250aW51ZTsK CQlpZiAoZGVsKQoJCQlyZXQgPSBody0+b3BzLmRlbF9tY19tYWNfYWRkcihodywgYWRkcik7CgkJ ZWxzZQoJCQlyZXQgPSBody0+b3BzLmFkZF9tY19tYWNfYWRkcihodywgYWRkcik7CgkJaWYgKHJl dCkgewoJCQlobnMzX2V0aGVyX2Zvcm1hdF9hZGRyKG1hY19zdHIsIFJURV9FVEhFUl9BRERSX0ZN VF9TSVpFLAoJCQkJCSAgICAgIGFkZHIpOwoJCQlobnMzX2RiZyhodywgImZhaWxlZCB0byAlcyBt YyBtYWMgYWRkcjogJXMgcmV0ID0gJWQiLAoJCQkJIGRlbCA/ICJSZW1vdmUiIDogIlJlc3RvcmUi LCBtYWNfc3RyLCByZXQpOwoJCX0KCX0KCXJldHVybiByZXQ7Cn0KCnN0YXRpYyBpbnQKaG5zM19j aGVja19tcV9tb2RlKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KQp7CgplcnJvcjogcGF0Y2ggZmFp bGVkOiBkcml2ZXJzL25ldC9obnMzL2huczNfZXRoZGV2LmM6MTk0NwpIdW5rICM3IHN1Y2NlZWRl ZCBhdCA3MjA5IChvZmZzZXQgMzcxIGxpbmVzKS4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQv aG5zMy9obnMzX2V0aGRldi5oLi4uCkh1bmsgIzIgc3VjY2VlZGVkIGF0IDg1NSAob2Zmc2V0IC0x MyBsaW5lcykuCkh1bmsgIzMgc3VjY2VlZGVkIGF0IDk4OSAob2Zmc2V0IC0xMyBsaW5lcykuCmVy cm9yOiB3aGlsZSBzZWFyY2hpbmcgZm9yOgoJcmV0dXJuIF9fYXRvbWljX2ZldGNoX2FuZChhZGRy LCB+bWFzaywgX19BVE9NSUNfUkVMQVhFRCkgJiBtYXNrOwp9CgppbnQgaG5zM19idWZmZXJfYWxs b2Moc3RydWN0IGhuczNfaHcgKmh3KTsKaW50IGhuczNfZGV2X2Zsb3dfb3BzX2dldChzdHJ1Y3Qg cnRlX2V0aF9kZXYgKmRldiwKCQkJICBjb25zdCBzdHJ1Y3QgcnRlX2Zsb3dfb3BzICoqb3BzKTsK Ym9vbCBobnMzX2lzX3Jlc2V0X3BlbmRpbmcoc3RydWN0IGhuczNfYWRhcHRlciAqaG5zKTsKYm9v bCBobnMzdmZfaXNfcmVzZXRfcGVuZGluZyhzdHJ1Y3QgaG5zM19hZGFwdGVyICpobnMpOwp2b2lk IGhuczNfdXBkYXRlX2xpbmtzdGF0dXNfYW5kX2V2ZW50KHN0cnVjdCBobnMzX2h3ICpodywgYm9v bCBxdWVyeSk7CnZvaWQgaG5zM19ldGhlcl9mb3JtYXRfYWRkcihjaGFyICpidWYsIHVpbnQxNl90 IHNpemUsCgkJCWNvbnN0IHN0cnVjdCBydGVfZXRoZXJfYWRkciAqZXRoZXJfYWRkcik7CmludCBo bnMzX2Rldl9pbmZvc19nZXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2LAoJCSAgICAgICBz dHJ1Y3QgcnRlX2V0aF9kZXZfaW5mbyAqaW5mbyk7CnZvaWQgaG5zM3ZmX3VwZGF0ZV9saW5rX3N0 YXR1cyhzdHJ1Y3QgaG5zM19odyAqaHcsIHVpbnQ4X3QgbGlua19zdGF0dXMsCgkJCSAgdWludDMy X3QgbGlua19zcGVlZCwgdWludDhfdCBsaW5rX2R1cGxleCk7CnZvaWQgaG5zM19wYXJzZV9kZXZh cmdzKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KTsKdm9pZCBobnMzdmZfdXBkYXRlX3B1c2hfbHNj X2NhcChzdHJ1Y3QgaG5zM19odyAqaHcsIGJvb2wgc3VwcG9ydGVkKTsKaW50IGhuczNfY29uZmln dXJlX2FsbF9tY19tYWNfYWRkcihzdHJ1Y3QgaG5zM19hZGFwdGVyICpobnMsIGJvb2wgZGVsKTsK aW50IGhuczNfY29uZmlndXJlX2FsbF9tYWNfYWRkcihzdHJ1Y3QgaG5zM19hZGFwdGVyICpobnMs IGJvb2wgZGVsKTsKaW50IGhuczNfYWRkX21hY19hZGRyKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2 LCBzdHJ1Y3QgcnRlX2V0aGVyX2FkZHIgKm1hY19hZGRyLAoJCV9fcnRlX3VudXNlZCB1aW50MzJf dCBpZHgsIF9fcnRlX3VudXNlZCB1aW50MzJfdCBwb29sKTsKdm9pZCBobnMzX3JlbW92ZV9tYWNf YWRkcihzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDMyX3QgaWR4KTsKaW50IGhuczNfc2V0 X21jX21hY19hZGRyX2xpc3Qoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsCgkJCXN0cnVjdCBydGVf ZXRoZXJfYWRkciAqbWNfYWRkcl9zZXQsCgkJCQkJCQl1aW50MzJfdCBuYl9tY19hZGRyKTsKaW50 IGhuczNfcmVzdG9yZV9wdHAoc3RydWN0IGhuczNfYWRhcHRlciAqaG5zKTsKaW50IGhuczNfbWJ1 Zl9keW5fcnhfdGltZXN0YW1wX3JlZ2lzdGVyKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LAoJCQkJ ICAgIHN0cnVjdCBydGVfZXRoX2NvbmYgKmNvbmYpOwoKZXJyb3I6IHBhdGNoIGZhaWxlZDogZHJp dmVycy9uZXQvaG5zMy9obnMzX2V0aGRldi5oOjEwNDcKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9u ZXQvaG5zMy9obnMzX2V0aGRldl92Zi5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2hu czMvaG5zM19pbnRyLmMuLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaG5zMy9obnMzX21i eC5jLi4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2huczMvaG5zM19yeHR4LmMuLi4KQ2hl Y2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaG5zMy9tZXNvbi5idWlsZC4uLgpBcHBsaWVkIHBhdGNo IGRyaXZlcnMvbmV0L2huczMvaG5zM19jbWQuYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZl cnMvbmV0L2huczMvaG5zM19jb21tb24uYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRyaXZlcnMv bmV0L2huczMvaG5zM19jb21tb24uaCBjbGVhbmx5LgpBcHBseWluZyBwYXRjaCBkcml2ZXJzL25l dC9obnMzL2huczNfZXRoZGV2LmMgd2l0aCA0IHJlamVjdHMuLi4KSHVuayAjMSBhcHBsaWVkIGNs ZWFubHkuCkh1bmsgIzIgYXBwbGllZCBjbGVhbmx5LgpSZWplY3RlZCBodW5rICMzLgpSZWplY3Rl ZCBodW5rICM0LgpSZWplY3RlZCBodW5rICM1LgpSZWplY3RlZCBodW5rICM2LgpIdW5rICM3IGFw cGxpZWQgY2xlYW5seS4KQXBwbHlpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaG5zMy9obnMzX2V0aGRl di5oIHdpdGggMSByZWplY3QuLi4KSHVuayAjMSBhcHBsaWVkIGNsZWFubHkuCkh1bmsgIzIgYXBw bGllZCBjbGVhbmx5LgpIdW5rICMzIGFwcGxpZWQgY2xlYW5seS4KUmVqZWN0ZWQgaHVuayAjNC4K QXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9obnMzL2huczNfZXRoZGV2X3ZmLmMgY2xlYW5seS4K QXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9obnMzL2huczNfaW50ci5jIGNsZWFubHkuCkFwcGxp ZWQgcGF0Y2ggZHJpdmVycy9uZXQvaG5zMy9obnMzX21ieC5jIGNsZWFubHkuCkFwcGxpZWQgcGF0 Y2ggZHJpdmVycy9uZXQvaG5zMy9obnMzX3J4dHguYyBjbGVhbmx5LgpBcHBsaWVkIHBhdGNoIGRy aXZlcnMvbmV0L2huczMvbWVzb24uYnVpbGQgY2xlYW5seS4KZGlmZiBhL2RyaXZlcnMvbmV0L2hu czMvaG5zM19ldGhkZXYuYyBiL2RyaXZlcnMvbmV0L2huczMvaG5zM19ldGhkZXYuYwkocmVqZWN0 ZWQgaHVua3MpCkBAIC0xNjA5LDY4ICsxNjAxLDYgQEAgaG5zM19hZGRfdWNfbWFjX2FkZHIoc3Ry dWN0IGhuczNfaHcgKmh3LCBzdHJ1Y3QgcnRlX2V0aGVyX2FkZHIgKm1hY19hZGRyKQogCXJldHVy biByZXQ7CiB9CiAKLXN0YXRpYyBib29sCi1obnMzX2ZpbmRfZHVwbGljYXRlX21jX2FkZHIoc3Ry dWN0IGhuczNfaHcgKmh3LCBzdHJ1Y3QgcnRlX2V0aGVyX2FkZHIgKm1jX2FkZHIpCi17Ci0JY2hh ciBtYWNfc3RyW1JURV9FVEhFUl9BRERSX0ZNVF9TSVpFXTsKLQlzdHJ1Y3QgcnRlX2V0aGVyX2Fk ZHIgKmFkZHI7Ci0JaW50IGk7Ci0KLQlmb3IgKGkgPSAwOyBpIDwgaHctPm1jX2FkZHJzX251bTsg aSsrKSB7Ci0JCWFkZHIgPSAmaHctPm1jX2FkZHJzW2ldOwotCQkvKiBDaGVjayBpZiB0aGVyZSBh cmUgZHVwbGljYXRlIGFkZHJlc3NlcyBpbiBtY19hZGRyc1tdICovCi0JCWlmIChydGVfaXNfc2Ft ZV9ldGhlcl9hZGRyKGFkZHIsIG1jX2FkZHIpKSB7Ci0JCQlobnMzX2V0aGVyX2Zvcm1hdF9hZGRy KG1hY19zdHIsIFJURV9FVEhFUl9BRERSX0ZNVF9TSVpFLAotCQkJCQkgICAgICAgYWRkcik7Ci0J CQlobnMzX2VycihodywgImZhaWxlZCB0byBhZGQgbWMgbWFjIGFkZHIsIHNhbWUgYWRkcnMiCi0J CQkJICIoJXMpIGlzIGFkZGVkIGJ5IHRoZSBzZXRfbWNfbWFjX2FkZHJfbGlzdCAiCi0JCQkJICJB UEkiLCBtYWNfc3RyKTsKLQkJCXJldHVybiB0cnVlOwotCQl9Ci0JfQotCi0JcmV0dXJuIGZhbHNl OwotfQotCi1pbnQKLWhuczNfYWRkX21hY19hZGRyKHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LCBz dHJ1Y3QgcnRlX2V0aGVyX2FkZHIgKm1hY19hZGRyLAotCQkgIF9fcnRlX3VudXNlZCB1aW50MzJf dCBpZHgsIF9fcnRlX3VudXNlZCB1aW50MzJfdCBwb29sKQotewotCXN0cnVjdCBobnMzX2h3ICpo dyA9IEhOUzNfREVWX1BSSVZBVEVfVE9fSFcoZGV2LT5kYXRhLT5kZXZfcHJpdmF0ZSk7Ci0JY2hh ciBtYWNfc3RyW1JURV9FVEhFUl9BRERSX0ZNVF9TSVpFXTsKLQlpbnQgcmV0OwotCi0JcnRlX3Nw aW5sb2NrX2xvY2soJmh3LT5sb2NrKTsKLQotCS8qCi0JICogSW4gaG5zMyBuZXR3b3JrIGVuZ2lu ZSBhZGRpbmcgVUMgYW5kIE1DIG1hYyBhZGRyZXNzIHdpdGggZGlmZmVyZW50Ci0JICogY29tbWFu ZHMgd2l0aCBmaXJtd2FyZS4gV2UgbmVlZCB0byBkZXRlcm1pbmUgd2hldGhlciB0aGUgaW5wdXQK LQkgKiBhZGRyZXNzIGlzIGEgVUMgb3IgYSBNQyBhZGRyZXNzIHRvIGNhbGwgZGlmZmVyZW50IGNv bW1hbmRzLgotCSAqIEJ5IHRoZSB3YXksIGl0IGlzIHJlY29tbWVuZGVkIGNhbGxpbmcgdGhlIEFQ SSBmdW5jdGlvbiBuYW1lZAotCSAqIHJ0ZV9ldGhfZGV2X3NldF9tY19hZGRyX2xpc3QgdG8gc2V0 IHRoZSBNQyBtYWMgYWRkcmVzcywgYmVjYXVzZQotCSAqIHVzaW5nIHRoZSBydGVfZXRoX2Rldl9t YWNfYWRkcl9hZGQgQVBJIGZ1bmN0aW9uIHRvIHNldCBNQyBtYWMgYWRkcmVzcwotCSAqIG1heSBh ZmZlY3QgdGhlIHNwZWNpZmljYXRpb25zIG9mIFVDIG1hYyBhZGRyZXNzZXMuCi0JICovCi0JaWYg KHJ0ZV9pc19tdWx0aWNhc3RfZXRoZXJfYWRkcihtYWNfYWRkcikpIHsKLQkJaWYgKGhuczNfZmlu ZF9kdXBsaWNhdGVfbWNfYWRkcihodywgbWFjX2FkZHIpKSB7Ci0JCQlydGVfc3BpbmxvY2tfdW5s b2NrKCZody0+bG9jayk7Ci0JCQlyZXR1cm4gLUVJTlZBTDsKLQkJfQotCQlyZXQgPSBody0+b3Bz LmFkZF9tY19tYWNfYWRkcihodywgbWFjX2FkZHIpOwotCX0gZWxzZSB7Ci0JCXJldCA9IGh3LT5v cHMuYWRkX3VjX21hY19hZGRyKGh3LCBtYWNfYWRkcik7Ci0JfQotCXJ0ZV9zcGlubG9ja191bmxv Y2soJmh3LT5sb2NrKTsKLQlpZiAocmV0KSB7Ci0JCWhuczNfZXRoZXJfZm9ybWF0X2FkZHIobWFj X3N0ciwgUlRFX0VUSEVSX0FERFJfRk1UX1NJWkUsCi0JCQkJICAgICAgbWFjX2FkZHIpOwotCQlo bnMzX2VycihodywgImZhaWxlZCB0byBhZGQgbWFjIGFkZHIoJXMpLCByZXQgPSAlZCIsIG1hY19z dHIsCi0JCQkgcmV0KTsKLQl9Ci0KLQlyZXR1cm4gcmV0OwotfQotCiBzdGF0aWMgaW50CiBobnMz X3JlbW92ZV91Y19tYWNfYWRkcihzdHJ1Y3QgaG5zM19odyAqaHcsIHN0cnVjdCBydGVfZXRoZXJf YWRkciAqbWFjX2FkZHIpCiB7CkBAIC0xNjk5LDMwICsxNjI5LDYgQEAgaG5zM19yZW1vdmVfdWNf bWFjX2FkZHIoc3RydWN0IGhuczNfaHcgKmh3LCBzdHJ1Y3QgcnRlX2V0aGVyX2FkZHIgKm1hY19h ZGRyKQogCXJldHVybiByZXQ7CiB9CiAKLXZvaWQKLWhuczNfcmVtb3ZlX21hY19hZGRyKHN0cnVj dCBydGVfZXRoX2RldiAqZGV2LCB1aW50MzJfdCBpZHgpCi17Ci0Jc3RydWN0IGhuczNfaHcgKmh3 ID0gSE5TM19ERVZfUFJJVkFURV9UT19IVyhkZXYtPmRhdGEtPmRldl9wcml2YXRlKTsKLQkvKiBp bmRleCB3aWxsIGJlIGNoZWNrZWQgYnkgdXBwZXIgbGV2ZWwgcnRlIGludGVyZmFjZSAqLwotCXN0 cnVjdCBydGVfZXRoZXJfYWRkciAqbWFjX2FkZHIgPSAmZGV2LT5kYXRhLT5tYWNfYWRkcnNbaWR4 XTsKLQljaGFyIG1hY19zdHJbUlRFX0VUSEVSX0FERFJfRk1UX1NJWkVdOwotCWludCByZXQ7Ci0K LQlydGVfc3BpbmxvY2tfbG9jaygmaHctPmxvY2spOwotCi0JaWYgKHJ0ZV9pc19tdWx0aWNhc3Rf ZXRoZXJfYWRkcihtYWNfYWRkcikpCi0JCXJldCA9IGh3LT5vcHMuZGVsX21jX21hY19hZGRyKGh3 LCBtYWNfYWRkcik7Ci0JZWxzZQotCQlyZXQgPSBody0+b3BzLmRlbF91Y19tYWNfYWRkcihodywg bWFjX2FkZHIpOwotCXJ0ZV9zcGlubG9ja191bmxvY2soJmh3LT5sb2NrKTsKLQlpZiAocmV0KSB7 Ci0JCWhuczNfZXRoZXJfZm9ybWF0X2FkZHIobWFjX3N0ciwgUlRFX0VUSEVSX0FERFJfRk1UX1NJ WkUsCi0JCQkJICAgICAgbWFjX2FkZHIpOwotCQlobnMzX2VycihodywgImZhaWxlZCB0byByZW1v dmUgbWFjIGFkZHIoJXMpLCByZXQgPSAlZCIsIG1hY19zdHIsCi0JCQkgcmV0KTsKLQl9Ci19Ci0K IHN0YXRpYyBpbnQKIGhuczNfc2V0X2RlZmF1bHRfbWFjX2FkZHIoc3RydWN0IHJ0ZV9ldGhfZGV2 ICpkZXYsCiAJCQkgIHN0cnVjdCBydGVfZXRoZXJfYWRkciAqbWFjX2FkZHIpCkBAIC0xNzg3LDQx ICsxNjkzLDYgQEAgaG5zM19zZXRfZGVmYXVsdF9tYWNfYWRkcihzdHJ1Y3QgcnRlX2V0aF9kZXYg KmRldiwKIAlyZXR1cm4gcmV0OwogfQogCi1pbnQKLWhuczNfY29uZmlndXJlX2FsbF9tYWNfYWRk cihzdHJ1Y3QgaG5zM19hZGFwdGVyICpobnMsIGJvb2wgZGVsKQotewotCWNoYXIgbWFjX3N0cltS VEVfRVRIRVJfQUREUl9GTVRfU0laRV07Ci0Jc3RydWN0IGhuczNfaHcgKmh3ID0gJmhucy0+aHc7 Ci0Jc3RydWN0IGhuczNfaHdfb3BzICpvcHMgPSAmaHctPm9wczsKLQlzdHJ1Y3QgcnRlX2V0aGVy X2FkZHIgKmFkZHI7Ci0JdWludDE2X3QgbWFjX2FkZHJzX2NhcGE7Ci0JaW50IHJldCA9IDA7Ci0J aW50IGk7Ci0KLQltYWNfYWRkcnNfY2FwYSA9Ci0JCWhucy0+aXNfdmYgPyBITlMzX1ZGX1VDX01B Q0FERFJfTlVNIDogSE5TM19VQ19NQUNBRERSX05VTTsKLQlmb3IgKGkgPSAwOyBpIDwgbWFjX2Fk ZHJzX2NhcGE7IGkrKykgewotCQlhZGRyID0gJmh3LT5kYXRhLT5tYWNfYWRkcnNbaV07Ci0JCWlm IChydGVfaXNfemVyb19ldGhlcl9hZGRyKGFkZHIpKQotCQkJY29udGludWU7Ci0JCWlmIChydGVf aXNfbXVsdGljYXN0X2V0aGVyX2FkZHIoYWRkcikpCi0JCQlyZXQgPSBkZWwgPyBvcHMtPmRlbF9t Y19tYWNfYWRkcihodywgYWRkcikgOgotCQkJICAgICAgb3BzLT5hZGRfbWNfbWFjX2FkZHIoaHcs IGFkZHIpOwotCQllbHNlCi0JCQlyZXQgPSBkZWwgPyBvcHMtPmRlbF91Y19tYWNfYWRkcihodywg YWRkcikgOgotCQkJICAgICAgb3BzLT5hZGRfdWNfbWFjX2FkZHIoaHcsIGFkZHIpOwotCi0JCWlm IChyZXQpIHsKLQkJCWhuczNfZXRoZXJfZm9ybWF0X2FkZHIobWFjX3N0ciwgUlRFX0VUSEVSX0FE RFJfRk1UX1NJWkUsCi0JCQkJCSAgICAgICBhZGRyKTsKLQkJCWhuczNfZXJyKGh3LCAiZmFpbGVk IHRvICVzIG1hYyBhZGRyKCVzKSBpbmRleDolZCByZXQgPSAlZC4iLAotCQkJCSBkZWwgPyAicmVt b3ZlIiA6ICJyZXN0b3JlIiwgbWFjX3N0ciwgaSwgcmV0KTsKLQkJfQotCX0KLQotCXJldHVybiBy ZXQ7Ci19Ci0KIHN0YXRpYyB2b2lkCiBobnMzX3VwZGF0ZV9kZXNjX3ZmaWQoc3RydWN0IGhuczNf Y21kX2Rlc2MgKmRlc2MsIHVpbnQ4X3QgdmZpZCwgYm9vbCBjbHIpCiB7CkBAIC0xOTQ3LDE1MCAr MTgxOCw2IEBAIGhuczNfcmVtb3ZlX21jX21hY19hZGRyKHN0cnVjdCBobnMzX2h3ICpodywgc3Ry dWN0IHJ0ZV9ldGhlcl9hZGRyICptYWNfYWRkcikKIAlyZXR1cm4gcmV0OwogfQogCi1zdGF0aWMg aW50Ci1obnMzX3NldF9tY19hZGRyX2Noa19wYXJhbShzdHJ1Y3QgaG5zM19odyAqaHcsCi0JCQkg ICBzdHJ1Y3QgcnRlX2V0aGVyX2FkZHIgKm1jX2FkZHJfc2V0LAotCQkJICAgdWludDMyX3QgbmJf bWNfYWRkcikKLXsKLQlzdHJ1Y3QgaG5zM19hZGFwdGVyICpobnMgPSBITlMzX0RFVl9IV19UT19B REFQVEVSKGh3KTsKLQljaGFyIG1hY19zdHJbUlRFX0VUSEVSX0FERFJfRk1UX1NJWkVdOwotCXN0 cnVjdCBydGVfZXRoZXJfYWRkciAqYWRkcjsKLQl1aW50MTZfdCBtYWNfYWRkcnNfY2FwYTsKLQl1 aW50MzJfdCBpOwotCXVpbnQzMl90IGo7Ci0KLQlpZiAobmJfbWNfYWRkciA+IEhOUzNfTUNfTUFD QUREUl9OVU0pIHsKLQkJaG5zM19lcnIoaHcsICJmYWlsZWQgdG8gc2V0IG1jIG1hYyBhZGRyLCBu Yl9tY19hZGRyKCV1KSAiCi0JCQkgImludmFsaWQuIHZhbGlkIHJhbmdlOiAwfiVkIiwKLQkJCSBu Yl9tY19hZGRyLCBITlMzX01DX01BQ0FERFJfTlVNKTsKLQkJcmV0dXJuIC1FSU5WQUw7Ci0JfQot Ci0JLyogQ2hlY2sgaWYgaW5wdXQgbWFjIGFkZHJlc3NlcyBhcmUgdmFsaWQgKi8KLQlmb3IgKGkg PSAwOyBpIDwgbmJfbWNfYWRkcjsgaSsrKSB7Ci0JCWFkZHIgPSAmbWNfYWRkcl9zZXRbaV07Ci0J CWlmICghcnRlX2lzX211bHRpY2FzdF9ldGhlcl9hZGRyKGFkZHIpKSB7Ci0JCQlobnMzX2V0aGVy X2Zvcm1hdF9hZGRyKG1hY19zdHIsIFJURV9FVEhFUl9BRERSX0ZNVF9TSVpFLAotCQkJCQkgICAg ICBhZGRyKTsKLQkJCWhuczNfZXJyKGh3LAotCQkJCSAiZmFpbGVkIHRvIHNldCBtYyBtYWMgYWRk ciwgYWRkciglcykgaW52YWxpZC4iLAotCQkJCSBtYWNfc3RyKTsKLQkJCXJldHVybiAtRUlOVkFM OwotCQl9Ci0KLQkJLyogQ2hlY2sgaWYgdGhlcmUgYXJlIGR1cGxpY2F0ZSBhZGRyZXNzZXMgKi8K LQkJZm9yIChqID0gaSArIDE7IGogPCBuYl9tY19hZGRyOyBqKyspIHsKLQkJCWlmIChydGVfaXNf c2FtZV9ldGhlcl9hZGRyKGFkZHIsICZtY19hZGRyX3NldFtqXSkpIHsKLQkJCQlobnMzX2V0aGVy X2Zvcm1hdF9hZGRyKG1hY19zdHIsCi0JCQkJCQkgICAgICBSVEVfRVRIRVJfQUREUl9GTVRfU0la RSwKLQkJCQkJCSAgICAgIGFkZHIpOwotCQkJCWhuczNfZXJyKGh3LCAiZmFpbGVkIHRvIHNldCBt YyBtYWMgYWRkciwgIgotCQkJCQkgImFkZHJzIGludmFsaWQuIHR3byBzYW1lIGFkZHJzKCVzKS4i LAotCQkJCQkgbWFjX3N0cik7Ci0JCQkJcmV0dXJuIC1FSU5WQUw7Ci0JCQl9Ci0JCX0KLQotCQkv KgotCQkgKiBDaGVjayBpZiB0aGVyZSBhcmUgZHVwbGljYXRlIGFkZHJlc3NlcyBiZXR3ZWVuIG1h Y19hZGRycwotCQkgKiBhbmQgbWNfYWRkcl9zZXQKLQkJICovCi0JCW1hY19hZGRyc19jYXBhID0g aG5zLT5pc192ZiA/IEhOUzNfVkZfVUNfTUFDQUREUl9OVU0gOgotCQkJCQkgICAgICBITlMzX1VD X01BQ0FERFJfTlVNOwotCQlmb3IgKGogPSAwOyBqIDwgbWFjX2FkZHJzX2NhcGE7IGorKykgewot CQkJaWYgKHJ0ZV9pc19zYW1lX2V0aGVyX2FkZHIoYWRkciwKLQkJCQkJCSAgICZody0+ZGF0YS0+ bWFjX2FkZHJzW2pdKSkgewotCQkJCWhuczNfZXRoZXJfZm9ybWF0X2FkZHIobWFjX3N0ciwKLQkJ CQkJCSAgICAgICBSVEVfRVRIRVJfQUREUl9GTVRfU0laRSwKLQkJCQkJCSAgICAgICBhZGRyKTsK LQkJCQlobnMzX2VycihodywgImZhaWxlZCB0byBzZXQgbWMgbWFjIGFkZHIsICIKLQkJCQkJICJh ZGRycyBpbnZhbGlkLiBhZGRycyglcykgaGFzIGFscmVhZHkgIgotCQkJCQkgImNvbmZpZ3VyZWQg aW4gbWFjX2FkZHIgYWRkIEFQSSIsCi0JCQkJCSBtYWNfc3RyKTsKLQkJCQlyZXR1cm4gLUVJTlZB TDsKLQkJCX0KLQkJfQotCX0KLQotCXJldHVybiAwOwotfQotCi1pbnQKLWhuczNfc2V0X21jX21h Y19hZGRyX2xpc3Qoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYsCi0JCQkgIHN0cnVjdCBydGVfZXRo ZXJfYWRkciAqbWNfYWRkcl9zZXQsCi0JCQkgIHVpbnQzMl90IG5iX21jX2FkZHIpCi17Ci0Jc3Ry dWN0IGhuczNfaHcgKmh3ID0gSE5TM19ERVZfUFJJVkFURV9UT19IVyhkZXYtPmRhdGEtPmRldl9w cml2YXRlKTsKLQlzdHJ1Y3QgcnRlX2V0aGVyX2FkZHIgKmFkZHI7Ci0JaW50IGN1cl9hZGRyX251 bTsKLQlpbnQgc2V0X2FkZHJfbnVtOwotCWludCBudW07Ci0JaW50IHJldDsKLQlpbnQgaTsKLQot CS8qIENoZWNrIGlmIGlucHV0IHBhcmFtZXRlcnMgYXJlIHZhbGlkICovCi0JcmV0ID0gaG5zM19z ZXRfbWNfYWRkcl9jaGtfcGFyYW0oaHcsIG1jX2FkZHJfc2V0LCBuYl9tY19hZGRyKTsKLQlpZiAo cmV0KQotCQlyZXR1cm4gcmV0OwotCi0JcnRlX3NwaW5sb2NrX2xvY2soJmh3LT5sb2NrKTsKLQlj dXJfYWRkcl9udW0gPSBody0+bWNfYWRkcnNfbnVtOwotCWZvciAoaSA9IDA7IGkgPCBjdXJfYWRk cl9udW07IGkrKykgewotCQludW0gPSBjdXJfYWRkcl9udW0gLSBpIC0gMTsKLQkJYWRkciA9ICZo dy0+bWNfYWRkcnNbbnVtXTsKLQkJcmV0ID0gaHctPm9wcy5kZWxfbWNfbWFjX2FkZHIoaHcsIGFk ZHIpOwotCQlpZiAocmV0KSB7Ci0JCQlydGVfc3BpbmxvY2tfdW5sb2NrKCZody0+bG9jayk7Ci0J CQlyZXR1cm4gcmV0OwotCQl9Ci0KLQkJaHctPm1jX2FkZHJzX251bS0tOwotCX0KLQotCXNldF9h ZGRyX251bSA9IChpbnQpbmJfbWNfYWRkcjsKLQlmb3IgKGkgPSAwOyBpIDwgc2V0X2FkZHJfbnVt OyBpKyspIHsKLQkJYWRkciA9ICZtY19hZGRyX3NldFtpXTsKLQkJcmV0ID0gaHctPm9wcy5hZGRf bWNfbWFjX2FkZHIoaHcsIGFkZHIpOwotCQlpZiAocmV0KSB7Ci0JCQlydGVfc3BpbmxvY2tfdW5s b2NrKCZody0+bG9jayk7Ci0JCQlyZXR1cm4gcmV0OwotCQl9Ci0KLQkJcnRlX2V0aGVyX2FkZHJf Y29weShhZGRyLCAmaHctPm1jX2FkZHJzW2h3LT5tY19hZGRyc19udW1dKTsKLQkJaHctPm1jX2Fk ZHJzX251bSsrOwotCX0KLQlydGVfc3BpbmxvY2tfdW5sb2NrKCZody0+bG9jayk7Ci0KLQlyZXR1 cm4gMDsKLX0KLQotaW50Ci1obnMzX2NvbmZpZ3VyZV9hbGxfbWNfbWFjX2FkZHIoc3RydWN0IGhu czNfYWRhcHRlciAqaG5zLCBib29sIGRlbCkKLXsKLQljaGFyIG1hY19zdHJbUlRFX0VUSEVSX0FE RFJfRk1UX1NJWkVdOwotCXN0cnVjdCBobnMzX2h3ICpodyA9ICZobnMtPmh3OwotCXN0cnVjdCBy dGVfZXRoZXJfYWRkciAqYWRkcjsKLQlpbnQgcmV0ID0gMDsKLQlpbnQgaTsKLQotCWZvciAoaSA9 IDA7IGkgPCBody0+bWNfYWRkcnNfbnVtOyBpKyspIHsKLQkJYWRkciA9ICZody0+bWNfYWRkcnNb aV07Ci0JCWlmICghcnRlX2lzX211bHRpY2FzdF9ldGhlcl9hZGRyKGFkZHIpKQotCQkJY29udGlu dWU7Ci0JCWlmIChkZWwpCi0JCQlyZXQgPSBody0+b3BzLmRlbF9tY19tYWNfYWRkcihodywgYWRk cik7Ci0JCWVsc2UKLQkJCXJldCA9IGh3LT5vcHMuYWRkX21jX21hY19hZGRyKGh3LCBhZGRyKTsK LQkJaWYgKHJldCkgewotCQkJaG5zM19ldGhlcl9mb3JtYXRfYWRkcihtYWNfc3RyLCBSVEVfRVRI RVJfQUREUl9GTVRfU0laRSwKLQkJCQkJICAgICAgYWRkcik7Ci0JCQlobnMzX2RiZyhodywgImZh aWxlZCB0byAlcyBtYyBtYWMgYWRkcjogJXMgcmV0ID0gJWQiLAotCQkJCSBkZWwgPyAiUmVtb3Zl IiA6ICJSZXN0b3JlIiwgbWFjX3N0ciwgcmV0KTsKLQkJfQotCX0KLQlyZXR1cm4gcmV0OwotfQot CiBzdGF0aWMgaW50CiBobnMzX2NoZWNrX21xX21vZGUoc3RydWN0IHJ0ZV9ldGhfZGV2ICpkZXYp CiB7CmRpZmYgYS9kcml2ZXJzL25ldC9obnMzL2huczNfZXRoZGV2LmggYi9kcml2ZXJzL25ldC9o bnMzL2huczNfZXRoZGV2LmgJKHJlamVjdGVkIGh1bmtzKQpAQCAtMTA0NywyOCArMTAzMSwyMCBA QCBobnMzX3Rlc3RfYW5kX2NsZWFyX2JpdCh1bnNpZ25lZCBpbnQgbnIsIHZvbGF0aWxlIHVpbnQ2 NF90ICphZGRyKQogCXJldHVybiBfX2F0b21pY19mZXRjaF9hbmQoYWRkciwgfm1hc2ssIF9fQVRP TUlDX1JFTEFYRUQpICYgbWFzazsKIH0KIAordWludDMyX3QgaG5zM19nZXRfc3BlZWRfY2FwYShz dHJ1Y3QgaG5zM19odyAqaHcpOworCiBpbnQgaG5zM19idWZmZXJfYWxsb2Moc3RydWN0IGhuczNf aHcgKmh3KTsKIGludCBobnMzX2Rldl9mbG93X29wc19nZXQoc3RydWN0IHJ0ZV9ldGhfZGV2ICpk ZXYsCiAJCQkgIGNvbnN0IHN0cnVjdCBydGVfZmxvd19vcHMgKipvcHMpOwogYm9vbCBobnMzX2lz X3Jlc2V0X3BlbmRpbmcoc3RydWN0IGhuczNfYWRhcHRlciAqaG5zKTsKIGJvb2wgaG5zM3ZmX2lz X3Jlc2V0X3BlbmRpbmcoc3RydWN0IGhuczNfYWRhcHRlciAqaG5zKTsKIHZvaWQgaG5zM191cGRh dGVfbGlua3N0YXR1c19hbmRfZXZlbnQoc3RydWN0IGhuczNfaHcgKmh3LCBib29sIHF1ZXJ5KTsK LXZvaWQgaG5zM19ldGhlcl9mb3JtYXRfYWRkcihjaGFyICpidWYsIHVpbnQxNl90IHNpemUsCi0J CQljb25zdCBzdHJ1Y3QgcnRlX2V0aGVyX2FkZHIgKmV0aGVyX2FkZHIpOwogaW50IGhuczNfZGV2 X2luZm9zX2dldChzdHJ1Y3QgcnRlX2V0aF9kZXYgKmV0aF9kZXYsCiAJCSAgICAgICBzdHJ1Y3Qg cnRlX2V0aF9kZXZfaW5mbyAqaW5mbyk7CiB2b2lkIGhuczN2Zl91cGRhdGVfbGlua19zdGF0dXMo c3RydWN0IGhuczNfaHcgKmh3LCB1aW50OF90IGxpbmtfc3RhdHVzLAogCQkJICB1aW50MzJfdCBs aW5rX3NwZWVkLCB1aW50OF90IGxpbmtfZHVwbGV4KTsKLXZvaWQgaG5zM19wYXJzZV9kZXZhcmdz KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2KTsKIHZvaWQgaG5zM3ZmX3VwZGF0ZV9wdXNoX2xzY19j YXAoc3RydWN0IGhuczNfaHcgKmh3LCBib29sIHN1cHBvcnRlZCk7Ci1pbnQgaG5zM19jb25maWd1 cmVfYWxsX21jX21hY19hZGRyKHN0cnVjdCBobnMzX2FkYXB0ZXIgKmhucywgYm9vbCBkZWwpOwot aW50IGhuczNfY29uZmlndXJlX2FsbF9tYWNfYWRkcihzdHJ1Y3QgaG5zM19hZGFwdGVyICpobnMs IGJvb2wgZGVsKTsKLWludCBobnMzX2FkZF9tYWNfYWRkcihzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRl diwgc3RydWN0IHJ0ZV9ldGhlcl9hZGRyICptYWNfYWRkciwKLQkJX19ydGVfdW51c2VkIHVpbnQz Ml90IGlkeCwgX19ydGVfdW51c2VkIHVpbnQzMl90IHBvb2wpOwotdm9pZCBobnMzX3JlbW92ZV9t YWNfYWRkcihzdHJ1Y3QgcnRlX2V0aF9kZXYgKmRldiwgdWludDMyX3QgaWR4KTsKLWludCBobnMz X3NldF9tY19tYWNfYWRkcl9saXN0KHN0cnVjdCBydGVfZXRoX2RldiAqZGV2LAotCQkJc3RydWN0 IHJ0ZV9ldGhlcl9hZGRyICptY19hZGRyX3NldCwKLQkJCQkJCQl1aW50MzJfdCBuYl9tY19hZGRy KTsKKwogaW50IGhuczNfcmVzdG9yZV9wdHAoc3RydWN0IGhuczNfYWRhcHRlciAqaG5zKTsKIGlu dCBobnMzX21idWZfZHluX3J4X3RpbWVzdGFtcF9yZWdpc3RlcihzdHJ1Y3QgcnRlX2V0aF9kZXYg KmRldiwKIAkJCQkgICAgc3RydWN0IHJ0ZV9ldGhfY29uZiAqY29uZik7CkNoZWNraW5nIHBhdGNo IGRyaXZlcnMvbmV0L2huczMvaG5zM19ldGhkZXYuYy4uLgplcnJvcjogZHJpdmVycy9uZXQvaG5z My9obnMzX2V0aGRldi5jOiBkb2VzIG5vdCBtYXRjaCBpbmRleApDaGVja2luZyBwYXRjaCBkcml2 ZXJzL25ldC9obnMzL2huczNfZXRoZGV2LmguLi4KZXJyb3I6IGRyaXZlcnMvbmV0L2huczMvaG5z M19ldGhkZXYuaDogZG9lcyBub3QgbWF0Y2ggaW5kZXgKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9u ZXQvaG5zMy9obnMzX2V0aGRldl92Zi5jLi4uCmVycm9yOiBkcml2ZXJzL25ldC9obnMzL2huczNf ZXRoZGV2X3ZmLmM6IGRvZXMgbm90IG1hdGNoIGluZGV4CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMv bmV0L2huczMvaG5zM19mZGlyLmguLi4KQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaG5zMy9o bnMzX2Zsb3cuYy4uLgpDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9obnMzL2huczNfZmxvdy5o Li4uCkFwcGxpZWQgcGF0Y2ggZHJpdmVycy9uZXQvaG5zMy9obnMzX2ZkaXIuaCBjbGVhbmx5LgpB cHBsaWVkIHBhdGNoIGRyaXZlcnMvbmV0L2huczMvaG5zM19mbG93LmMgY2xlYW5seS4KQXBwbGll ZCBwYXRjaCBkcml2ZXJzL25ldC9obnMzL2huczNfZmxvdy5oIGNsZWFubHkuCkNoZWNraW5nIHBh dGNoIGRyaXZlcnMvbmV0L2huczMvaG5zM19jb21tb24uYy4uLgplcnJvcjogZHJpdmVycy9uZXQv aG5zMy9obnMzX2NvbW1vbi5jOiBkb2VzIG5vdCBleGlzdCBpbiBpbmRleApDaGVja2luZyBwYXRj aCBkcml2ZXJzL25ldC9obnMzL2huczNfY29tbW9uLmguLi4KZXJyb3I6IGRyaXZlcnMvbmV0L2hu czMvaG5zM19jb21tb24uaDogZG9lcyBub3QgZXhpc3QgaW4gaW5kZXgKQ2hlY2tpbmcgcGF0Y2gg ZHJpdmVycy9uZXQvaG5zMy9obnMzX2NvbW1vbi5jLi4uCmVycm9yOiBkcml2ZXJzL25ldC9obnMz L2huczNfY29tbW9uLmM6IGRvZXMgbm90IGV4aXN0IGluIGluZGV4CkNoZWNraW5nIHBhdGNoIGRy aXZlcnMvbmV0L2huczMudGFyLmd6Li4uCkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2huczMv aG5zM19jb21tb24uYy4uLgplcnJvcjogZHJpdmVycy9uZXQvaG5zMy9obnMzX2NvbW1vbi5jOiBk b2VzIG5vdCBleGlzdCBpbiBpbmRleApDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9obnMzL2hu czNfY29tbW9uLmguLi4KZXJyb3I6IGRyaXZlcnMvbmV0L2huczMvaG5zM19jb21tb24uaDogZG9l cyBub3QgZXhpc3QgaW4gaW5kZXgKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaG5zMy9obnMz X2V0aGRldi5jLi4uCmVycm9yOiBkcml2ZXJzL25ldC9obnMzL2huczNfZXRoZGV2LmM6IGRvZXMg bm90IG1hdGNoIGluZGV4CkNoZWNraW5nIHBhdGNoIGRyaXZlcnMvbmV0L2huczMvaG5zM19ldGhk ZXYuaC4uLgplcnJvcjogZHJpdmVycy9uZXQvaG5zMy9obnMzX2V0aGRldi5oOiBkb2VzIG5vdCBt YXRjaCBpbmRleApDaGVja2luZyBwYXRjaCBkcml2ZXJzL25ldC9obnMzL2huczNfZXRoZGV2X3Zm LmMuLi4KZXJyb3I6IGRyaXZlcnMvbmV0L2huczMvaG5zM19ldGhkZXZfdmYuYzogZG9lcyBub3Qg bWF0Y2ggaW5kZXgKQ2hlY2tpbmcgcGF0Y2ggZHJpdmVycy9uZXQvaG5zMy9obnMzX3RtLmMuLi4K QXBwbGllZCBwYXRjaCBkcml2ZXJzL25ldC9obnMzLnRhci5neiBjbGVhbmx5LgpBcHBsaWVkIHBh dGNoIGRyaXZlcnMvbmV0L2huczMvaG5zM190bS5jIGNsZWFubHkuCgpodHRwczovL2xhYi5kcGRr Lm9yZy9yZXN1bHRzL2Rhc2hib2FyZC9wYXRjaHNldHMvMjAwMjAvCgpVTkgtSU9MIERQREsgQ29t bXVuaXR5IExhYgo= --===============2386537145284690348==--