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=-9.7 required=3.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, INCLUDES_PATCH,MAILING_LIST_MULTI,SIGNED_OFF_BY,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 59D74C76192 for ; Wed, 17 Jul 2019 08:08:56 +0000 (UTC) Received: from dpdk.org (dpdk.org [92.243.14.124]) by mail.kernel.org (Postfix) with ESMTP id F278C2173B for ; Wed, 17 Jul 2019 08:08:55 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org F278C2173B Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=intel.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=dev-bounces@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 2B7E0276C; Wed, 17 Jul 2019 10:08:55 +0200 (CEST) Received: from mga03.intel.com (mga03.intel.com [134.134.136.65]) by dpdk.org (Postfix) with ESMTP id BEFF0152A for ; Wed, 17 Jul 2019 10:08:53 +0200 (CEST) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga003.fm.intel.com ([10.253.24.29]) by orsmga103.jf.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 17 Jul 2019 01:08:51 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.64,273,1559545200"; d="scan'208";a="175644295" Received: from silpixa00389822.ir.intel.com (HELO silpixa00389822.ger.corp.intel.com) ([10.237.223.42]) by FMSMGA003.fm.intel.com with ESMTP; 17 Jul 2019 01:08:49 -0700 From: "A.McLoughlin" To: Ferruh Yigit , Bruce Richardson , John McNamara , Marko Kovacevic Cc: dev@dpdk.org, cian.ferriter@intel.com, "A.McLoughlin" Date: Wed, 17 Jul 2019 09:08:46 +0100 Message-Id: <20190717080846.19871-1-aideen.mcloughlin@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20190716154331.15651-1-aideen.mcloughlin@intel.com> References: <20190716154331.15651-1-aideen.mcloughlin@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Subject: [dpdk-dev] [PATCH v3] net/pcap: create null Rx function X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" UHJldmlvdXNseSBpbiB0aGUgUENBUCBQTUQgaXQgd2FzIG9ubHkgcG9zc2liZSB0byBzcGVjaWZ5 IGFuIHJ4cSB3aGljaAp1c2VzIGFuIGlmYWNlIG9yIGEgcGNhcCBmaWxlLiBUaGlzIHBhdGNoIGNy ZWF0ZXMgYSAnZHVtbXkgUngnIGZ1bmN0aW9uCndoaWNoIGlzIHVzZWQgd2hlbiBubyByeF9wY2Fw IG9yIHJ4X2lmYWNlIGlzIHBhc3NlZCBidXQgYSB0eCBxdWV1ZSBpcwpwYXNzZWQuIFRoaXMgZnVu Y3Rpb24gY2FuIGJlIHBvbGxlZCBhbmQgcmVjZWl2ZXMgbm8gcGFja2V0cy4KClNpZ25lZC1vZmYt Ynk6IEEuTWNMb3VnaGxpbiA8YWlkZWVuLm1jbG91Z2hsaW5AaW50ZWwuY29tPgotLS0KdjEgLT4g djI6CiogVGhpcyBwYXRjaCBzdXBwb3J0cyBzaW5nbGVfaWZhY2Ugb25jZSBodHRwOi8vcGF0Y2hl cy5kcGRrLm9yZy9wYXRjaC81NjUwOS8gCmlzIGFwcGxpZWQKKiBVcGRhdGVkIGRvY3VtZW50YXRp b24gdG8gZG9jdW1lbnQgcGF0Y2ggYmVoYXZpb3IKKiBTeW50YXggZml4IG9uIGxpbmVzIDE0OCB0 byAxNDkKKiBGaXhlZCB1bnBlcm1pdHRlZCBkcml2ZXIgYWJvcnRpbmcgb24gbGluZSAxNTIKdjIg LT4gdjM6CiogVXBkYXRlIHJlbGVhc2Ugbm90ZXMgdG8gcmVmbGVjdCBmdW5jdGlvbmFsaXR5Ci0t LQogZG9jL2d1aWRlcy9uaWNzL3BjYXBfcmluZy5yc3QgICAgICAgICAgfCAgOCArKysrCiBkb2Mv Z3VpZGVzL3JlbF9ub3Rlcy9yZWxlYXNlXzE5XzA4LnJzdCB8ICA2ICsrKwogZHJpdmVycy9uZXQv cGNhcC9ydGVfZXRoX3BjYXAuYyAgICAgICAgfCA2NSArKysrKysrKysrKysrKysrKysrLS0tLS0t LQogMyBmaWxlcyBjaGFuZ2VkLCA2MyBpbnNlcnRpb25zKCspLCAxNiBkZWxldGlvbnMoLSkKCmRp ZmYgLS1naXQgYS9kb2MvZ3VpZGVzL25pY3MvcGNhcF9yaW5nLnJzdCBiL2RvYy9ndWlkZXMvbmlj cy9wY2FwX3JpbmcucnN0CmluZGV4IGZiODhmYTY0ZS4uY2YyMzBhZTQwIDEwMDY0NAotLS0gYS9k b2MvZ3VpZGVzL25pY3MvcGNhcF9yaW5nLnJzdAorKysgYi9kb2MvZ3VpZGVzL25pY3MvcGNhcF9y aW5nLnJzdApAQCAtMTI2LDYgKzEyNiwxNCBAQCBSdW50aW1lIENvbmZpZyBPcHRpb25zCiAKICBJ biB0aGlzIGNhc2UsIG9uZSB0eCBkcm9wIHF1ZXVlIGlzIGNyZWF0ZWQgZm9yIGVhY2ggcnhxIG9u IHRoYXQgZGV2aWNlLgogCisgLSBSZWNlaXZlIG5vIHBhY2tldHMgb24gUngKKworIFRoZSB1c2Vy IG1heSB3YW50IHRvIHJ1biB3aXRob3V0IHJlY2VpdmluZyBhbnkgcGFja2V0cyBvbiBSeC4gVGhp cyBjYW4gYmUgZG9uZSBieSBub3QgcHJvdmlkaW5nIGEgcnhfcGNhcCBvciByeF9pZmFjZSwgZm9y IGV4YW1wbGU6OgorCisgICAtLXZkZXYgJ25ldF9wY2FwMCx0eF9wY2FwPWZpbGVfdHgucGNhcCcK KworSW4gdGhpcyBjYXNlLCBvbmUgZHVtbXkgcnggcXVldWUgaXMgY3JlYXRlZCBmb3IgZWFjaCB0 eCBxdWV1ZSBhcmd1bWVudCBwYXNzZWQKKwogRXhhbXBsZXMgb2YgVXNhZ2UKIF5eXl5eXl5eXl5e Xl5eXl5eCiAKZGlmZiAtLWdpdCBhL2RvYy9ndWlkZXMvcmVsX25vdGVzL3JlbGVhc2VfMTlfMDgu cnN0IGIvZG9jL2d1aWRlcy9yZWxfbm90ZXMvcmVsZWFzZV8xOV8wOC5yc3QKaW5kZXggNGExZmQ4 ZGQ4Li43ZmQ3M2U0YWIgMTAwNjQ0Ci0tLSBhL2RvYy9ndWlkZXMvcmVsX25vdGVzL3JlbGVhc2Vf MTlfMDgucnN0CisrKyBiL2RvYy9ndWlkZXMvcmVsX25vdGVzL3JlbGVhc2VfMTlfMDgucnN0CkBA IC0xNDEsNiArMTQxLDEyIEBAIE5ldyBGZWF0dXJlcwogICBkZXZpY2UgdG8gYmUgcmVjZWl2ZWQg cmVwZWF0ZWRseSBhdCBhIGhpZ2ggcmF0ZS4gVGhpcyBjYW4gYmUgdXNlZnVsIGZvciBxdWljawog ICBwZXJmb3JtYW5jZSB0ZXN0aW5nIG9mIERQREsgYXBwcy4KIAorKiAqKkVuYWJsZWQgUmVjZWl2 aW5nIG5vIHBhY2tldHMgb24gUnguKioKKworICBBZGRlZCBmdW5jdGlvbiB0byBhbGxvdyB1c2Vy cyB0byBydW4gd2l0aG91dCByZWNlaXZpbmcgYW55IHBhY2tldHMgb24gUnguCisgIFdoZW4gZnVu Y3Rpb24gaXMgY2FsbGVkLCBhIGR1bW15IHF1ZXVlIGlzIGNyZWF0ZWQgZm9yIGVhY2ggVHggcXVl dWUgYXJndW1lbnQKKyAgcGFzc2VkLgorCiAqICoqQWRkZWQgYSBGUEdBX0xURV9GRUMgYmJkZXYg UE1ELioqCiAKICAgQWRkZWQgdGhlIG5ldyBgYGZwZ2FfbHRlX2ZlY2BgIGJiZGV2IGRyaXZlciBm b3IgdGhlIEludGVswq4gRlBHQSBQQUMKZGlmZiAtLWdpdCBhL2RyaXZlcnMvbmV0L3BjYXAvcnRl X2V0aF9wY2FwLmMgYi9kcml2ZXJzL25ldC9wY2FwL3J0ZV9ldGhfcGNhcC5jCmluZGV4IDI2ZTg1 MTgzZS4uYzY2ZThjZDhhIDEwMDY0NAotLS0gYS9kcml2ZXJzL25ldC9wY2FwL3J0ZV9ldGhfcGNh cC5jCisrKyBiL2RyaXZlcnMvbmV0L3BjYXAvcnRlX2V0aF9wY2FwLmMKQEAgLTExMiw2ICsxMTIs OCBAQCBzdHJ1Y3QgcG1kX2RldmFyZ3NfYWxsIHsKIAlpbnQgc2luZ2xlX2lmYWNlOwogCXVuc2ln bmVkIGludCBpc190eF9wY2FwOwogCXVuc2lnbmVkIGludCBpc190eF9pZmFjZTsKKwl1bnNpZ25l ZCBpbnQgaXNfcnhfcGNhcDsKKwl1bnNpZ25lZCBpbnQgaXNfcnhfaWZhY2U7CiAJdW5zaWduZWQg aW50IGluZmluaXRlX3J4OwogfTsKIApAQCAtMjk1LDYgKzI5NywxNCBAQCBldGhfcGNhcF9yeCh2 b2lkICpxdWV1ZSwgc3RydWN0IHJ0ZV9tYnVmICoqYnVmcywgdWludDE2X3QgbmJfcGt0cykKIAly ZXR1cm4gbnVtX3J4OwogfQogCitzdGF0aWMgdWludDE2X3QKK2V0aF9udWxsX3J4KHZvaWQgKnF1 ZXVlIF9fcnRlX3VudXNlZCwKKwkJc3RydWN0IHJ0ZV9tYnVmICoqYnVmcyBfX3J0ZV91bnVzZWQs CisJCXVpbnQxNl90IG5iX3BrdHMgX19ydGVfdW51c2VkKQoreworCXJldHVybiAwOworfQorCiBz dGF0aWMgaW5saW5lIHZvaWQKIGNhbGN1bGF0ZV90aW1lc3RhbXAoc3RydWN0IHRpbWV2YWwgKnRz KSB7CiAJdWludDY0X3QgY3ljbGVzOwpAQCAtMTMxNiw4ICsxMzI2LDExIEBAIGV0aF9mcm9tX3Bj YXBzKHN0cnVjdCBydGVfdmRldl9kZXZpY2UgKnZkZXYsCiAJLyogQXNzaWduIHJ4IG9wcy4gKi8K IAlpZiAoaW5maW5pdGVfcngpCiAJCWV0aF9kZXYtPnJ4X3BrdF9idXJzdCA9IGV0aF9wY2FwX3J4 X2luZmluaXRlOwotCWVsc2UKKwllbHNlIGlmIChkZXZhcmdzX2FsbC0+aXNfcnhfcGNhcCB8fCBk ZXZhcmdzX2FsbC0+aXNfcnhfaWZhY2UgfHwKKwkJCXNpbmdsZV9pZmFjZSkKIAkJZXRoX2Rldi0+ cnhfcGt0X2J1cnN0ID0gZXRoX3BjYXBfcng7CisJZWxzZQorCQlldGhfZGV2LT5yeF9wa3RfYnVy c3QgPSBldGhfbnVsbF9yeDsKIAogCS8qIEFzc2lnbiB0eCBvcHMuICovCiAJaWYgKGRldmFyZ3Nf YWxsLT5pc190eF9wY2FwKQpAQCAtMTMzNSwxMyArMTM0OCwxMiBAQCBzdGF0aWMgaW50CiBwbWRf cGNhcF9wcm9iZShzdHJ1Y3QgcnRlX3ZkZXZfZGV2aWNlICpkZXYpCiB7CiAJY29uc3QgY2hhciAq bmFtZTsKLQl1bnNpZ25lZCBpbnQgaXNfcnhfcGNhcCA9IDA7CiAJc3RydWN0IHJ0ZV9rdmFyZ3Mg Kmt2bGlzdDsKIAlzdHJ1Y3QgcG1kX2RldmFyZ3MgcGNhcHMgPSB7MH07CiAJc3RydWN0IHBtZF9k ZXZhcmdzIGR1bXBlcnMgPSB7MH07CiAJc3RydWN0IHJ0ZV9ldGhfZGV2ICpldGhfZGV2ID0gIE5V TEw7CiAJc3RydWN0IHBtZF9pbnRlcm5hbHMgKmludGVybmFsOwotCWludCByZXQ7CisJaW50IHJl dCA9IDA7CiAKIAlzdHJ1Y3QgcG1kX2RldmFyZ3NfYWxsIGRldmFyZ3NfYWxsID0gewogCQkuc2lu Z2xlX2lmYWNlID0gMCwKQEAgLTE0MDQsMTMgKzE0MTYsMjIgQEAgcG1kX3BjYXBfcHJvYmUoc3Ry dWN0IHJ0ZV92ZGV2X2RldmljZSAqZGV2KQogCX0KIAogCS8qCi0JICogV2UgY2hlY2sgd2hldGhl ciB3ZSB3YW50IHRvIG9wZW4gYSBSWCBzdHJlYW0gZnJvbSBhIHJlYWwgTklDIG9yIGEKLQkgKiBw Y2FwIGZpbGUKKwkgKiBXZSBjaGVjayB3aGV0aGVyIHdlIHdhbnQgdG8gb3BlbiBhIFJYIHN0cmVh bSBmcm9tIGEgcmVhbCBOSUMsIGEKKwkgKiBwY2FwIGZpbGUgb3Igb3BlbiBhIGR1bW15IFJYIHN0 cmVhbQogCSAqLwotCWlzX3J4X3BjYXAgPSBydGVfa3ZhcmdzX2NvdW50KGt2bGlzdCwgRVRIX1BD QVBfUlhfUENBUF9BUkcpID8gMSA6IDA7CisJZGV2YXJnc19hbGwuaXNfcnhfcGNhcCA9CisJCXJ0 ZV9rdmFyZ3NfY291bnQoa3ZsaXN0LCBFVEhfUENBUF9SWF9QQ0FQX0FSRykgPyAxIDogMDsKKwlk ZXZhcmdzX2FsbC5pc19yeF9pZmFjZSA9CisJCXJ0ZV9rdmFyZ3NfY291bnQoa3ZsaXN0LCBFVEhf UENBUF9SWF9JRkFDRV9BUkcpID8gMSA6IDA7CiAJcGNhcHMubnVtX29mX3F1ZXVlID0gMDsKIAot CWlmIChpc19yeF9wY2FwKSB7CisJZGV2YXJnc19hbGwuaXNfdHhfcGNhcCA9CisJCXJ0ZV9rdmFy Z3NfY291bnQoa3ZsaXN0LCBFVEhfUENBUF9UWF9QQ0FQX0FSRykgPyAxIDogMDsKKwlkZXZhcmdz X2FsbC5pc190eF9pZmFjZSA9CisJCXJ0ZV9rdmFyZ3NfY291bnQoa3ZsaXN0LCBFVEhfUENBUF9U WF9JRkFDRV9BUkcpID8gMSA6IDA7CisJZHVtcGVycy5udW1fb2ZfcXVldWUgPSAwOworCisJaWYg KGRldmFyZ3NfYWxsLmlzX3J4X3BjYXApIHsKIAkJLyoKIAkJICogV2UgY2hlY2sgd2hldGhlciB3 ZSB3YW50IHRvIGluZmluaXRlbHkgcnggdGhlIHBjYXAgZmlsZS4KIAkJICovCkBAIC0xNDM2LDEx ICsxNDU3LDI5IEBAIHBtZF9wY2FwX3Byb2JlKHN0cnVjdCBydGVfdmRldl9kZXZpY2UgKmRldikK IAogCQlyZXQgPSBydGVfa3ZhcmdzX3Byb2Nlc3Moa3ZsaXN0LCBFVEhfUENBUF9SWF9QQ0FQX0FS RywKIAkJCQkmb3Blbl9yeF9wY2FwLCAmcGNhcHMpOwotCX0gZWxzZSB7CisJfSBlbHNlIGlmIChk ZXZhcmdzX2FsbC5pc19yeF9pZmFjZSkgewogCQlyZXQgPSBydGVfa3ZhcmdzX3Byb2Nlc3Moa3Zs aXN0LCBOVUxMLAogCQkJCSZyeF9pZmFjZV9hcmdzX3Byb2Nlc3MsICZwY2Fwcyk7Ci0JfQorCX0g ZWxzZSBpZiAoZGV2YXJnc19hbGwuaXNfdHhfaWZhY2UgfHwgZGV2YXJnc19hbGwuaXNfdHhfcGNh cCkgeworCQl1bnNpZ25lZCBpbnQgaTsKKworCQkvKiBDb3VudCBudW1iZXIgb2YgdHggcXVldWUg YXJncyBwYXNzZWQgYmVmb3JlIGR1bW15IHJ4IHF1ZXVlCisJCSAqIGNyZWF0aW9uIHNvIGEgZHVt bXkgcnggcXVldWUgY2FuIGJlIGNyZWF0ZWQgZm9yIGVhY2ggdHggcXVldWUKKwkJICovCisJCXVu c2lnbmVkIGludCBudW1fdHhfcXVldWVzID0KKwkJCShydGVfa3ZhcmdzX2NvdW50KGt2bGlzdCwg RVRIX1BDQVBfVFhfUENBUF9BUkcpICsKKwkJCXJ0ZV9rdmFyZ3NfY291bnQoa3ZsaXN0LCBFVEhf UENBUF9UWF9JRkFDRV9BUkcpKTsKIAorCQlQTURfTE9HKElORk8sICJDcmVhdGluZyBudWxsIHJ4 IHF1ZXVlIHNpbmNlIG5vIHJ4IHF1ZXVlcyB3ZXJlIHByb3ZpZGVkLiIpOworCisJCS8qIENyZWF0 aW5nIGEgZHVtbXkgcnggcXVldWUgZm9yIGVhY2ggdHggcXVldWUgcGFzc2VkICovCisJCWZvciAo aSA9IDA7IGkgPCBudW1fdHhfcXVldWVzOyBpKyspCisJCQlyZXQgPSBhZGRfcXVldWUoJnBjYXBz LCAiZHVtbXlfcngiLCAicnhfbnVsbCIsIE5VTEwsCisJCQkJCU5VTEwpOworCX0gZWxzZSB7CisJ CVBNRF9MT0coRVJSLCAiRXJyb3IgLSBObyByeCBvciB0eCBxdWV1ZXMgcHJvdmlkZWQiKTsKKwkJ cmV0ID0gLUVOT0VOVDsKKwl9CiAJaWYgKHJldCA8IDApCiAJCWdvdG8gZnJlZV9rdmxpc3Q7CiAK QEAgLTE0NDgsMTIgKzE0ODcsNiBAQCBwbWRfcGNhcF9wcm9iZShzdHJ1Y3QgcnRlX3ZkZXZfZGV2 aWNlICpkZXYpCiAJICogV2UgY2hlY2sgd2hldGhlciB3ZSB3YW50IHRvIG9wZW4gYSBUWCBzdHJl YW0gdG8gYSByZWFsIE5JQywKIAkgKiBhIHBjYXAgZmlsZSwgb3IgZHJvcCBwYWNrZXRzIG9uIHR4 CiAJICovCi0JZGV2YXJnc19hbGwuaXNfdHhfcGNhcCA9Ci0JCXJ0ZV9rdmFyZ3NfY291bnQoa3Zs aXN0LCBFVEhfUENBUF9UWF9QQ0FQX0FSRykgPyAxIDogMDsKLQlkZXZhcmdzX2FsbC5pc190eF9p ZmFjZSA9Ci0JCXJ0ZV9rdmFyZ3NfY291bnQoa3ZsaXN0LCBFVEhfUENBUF9UWF9JRkFDRV9BUkcp ID8gMSA6IDA7Ci0JZHVtcGVycy5udW1fb2ZfcXVldWUgPSAwOwotCiAJaWYgKGRldmFyZ3NfYWxs LmlzX3R4X3BjYXApIHsKIAkJcmV0ID0gcnRlX2t2YXJnc19wcm9jZXNzKGt2bGlzdCwgRVRIX1BD QVBfVFhfUENBUF9BUkcsCiAJCQkJJm9wZW5fdHhfcGNhcCwgJmR1bXBlcnMpOwpAQCAtMTQ2Nyw3 ICsxNTAwLDcgQEAgcG1kX3BjYXBfcHJvYmUoc3RydWN0IHJ0ZV92ZGV2X2RldmljZSAqZGV2KQog CiAJCS8qIEFkZCAxIGR1bW15IHF1ZXVlIHBlciByeHEgd2hpY2ggY291bnRzIGFuZCBkcm9wcyBw YWNrZXRzLiAqLwogCQlmb3IgKGkgPSAwOyBpIDwgcGNhcHMubnVtX29mX3F1ZXVlOyBpKyspCi0J CQlyZXQgPSBhZGRfcXVldWUoJmR1bXBlcnMsICJkdW1teSIsICJ0eF9kcm9wIiwgTlVMTCwKKwkJ CXJldCA9IGFkZF9xdWV1ZSgmZHVtcGVycywgImR1bW15X3R4IiwgInR4X2Ryb3AiLCBOVUxMLAog CQkJCQlOVUxMKTsKIAl9CiAKLS0gCjIuMTcuMQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KSW50ZWwgUmVzZWFyY2ggYW5kIERl dmVsb3BtZW50IElyZWxhbmQgTGltaXRlZApSZWdpc3RlcmVkIGluIElyZWxhbmQKUmVnaXN0ZXJl ZCBPZmZpY2U6IENvbGxpbnN0b3duIEluZHVzdHJpYWwgUGFyaywgTGVpeGxpcCwgQ291bnR5IEtp bGRhcmUKUmVnaXN0ZXJlZCBOdW1iZXI6IDMwODI2MwoKClRoaXMgZS1tYWlsIGFuZCBhbnkgYXR0 YWNobWVudHMgbWF5IGNvbnRhaW4gY29uZmlkZW50aWFsIG1hdGVyaWFsIGZvciB0aGUgc29sZQp1 c2Ugb2YgdGhlIGludGVuZGVkIHJlY2lwaWVudChzKS4gQW55IHJldmlldyBvciBkaXN0cmlidXRp b24gYnkgb3RoZXJzIGlzCnN0cmljdGx5IHByb2hpYml0ZWQuIElmIHlvdSBhcmUgbm90IHRoZSBp bnRlbmRlZCByZWNpcGllbnQsIHBsZWFzZSBjb250YWN0IHRoZQpzZW5kZXIgYW5kIGRlbGV0ZSBh bGwgY29waWVzLgo=