From owner-freebsd-virtualization@FreeBSD.ORG Mon Mar 5 11:07:22 2012 Return-Path: Delivered-To: freebsd-virtualization@FreeBSD.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 524401065679 for ; Mon, 5 Mar 2012 11:07:22 +0000 (UTC) (envelope-from owner-bugmaster@FreeBSD.org) Received: from freefall.freebsd.org (freefall.freebsd.org [IPv6:2001:4f8:fff6::28]) by mx1.freebsd.org (Postfix) with ESMTP id 3FFC88FC12 for ; Mon, 5 Mar 2012 11:07:22 +0000 (UTC) Received: from freefall.freebsd.org (localhost [127.0.0.1]) by freefall.freebsd.org (8.14.5/8.14.5) with ESMTP id q25B7MPv035075 for ; Mon, 5 Mar 2012 11:07:22 GMT (envelope-from owner-bugmaster@FreeBSD.org) Received: (from gnats@localhost) by freefall.freebsd.org (8.14.5/8.14.5/Submit) id q25B7L2b035073 for freebsd-virtualization@FreeBSD.org; Mon, 5 Mar 2012 11:07:21 GMT (envelope-from owner-bugmaster@FreeBSD.org) Date: Mon, 5 Mar 2012 11:07:21 GMT Message-Id: <201203051107.q25B7L2b035073@freefall.freebsd.org> X-Authentication-Warning: freefall.freebsd.org: gnats set sender to owner-bugmaster@FreeBSD.org using -f From: FreeBSD bugmaster To: freebsd-virtualization@FreeBSD.org Cc: Subject: Current problem reports assigned to freebsd-virtualization@FreeBSD.org X-BeenThere: freebsd-virtualization@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion of various virtualization techniques FreeBSD supports." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Mar 2012 11:07:22 -0000 Note: to view an individual PR, use: http://www.freebsd.org/cgi/query-pr.cgi?pr=(number). The following is a listing of current problems submitted by FreeBSD users. These represent problem reports covering all versions including experimental development code and obsolete releases. S Tracker Resp. Description -------------------------------------------------------------------------------- o kern/165252 virtualization[vimage] [pf] [panic] kernel panics with VIMAGE and PF o kern/161094 virtualization[vimage] [pf] [panic] kernel panic with pf + VIMAGE wh o kern/160541 virtualization[vimage][pf][patch] panic: userret: Returning on td 0x o kern/160496 virtualization[vimage] [pf] [patch] kernel panic with pf + VIMAGE o kern/158686 virtualization[vimage] [tap] [patch] Add VIMAGE support to if_tap a kern/152047 virtualization[vimage] [panic] TUN\TAP under jail with vimage crashe o kern/148155 virtualization[vimage] [pf] Kernel panic with PF/IPFilter + VIMAGE k a kern/147950 virtualization[vimage] [carp] VIMAGE + CARP = kernel crash s kern/143808 virtualization[pf] pf does not work inside jail a kern/141696 virtualization[rum] [vimage] [panic] rum(4)+ vimage = kernel panic 10 problems total. From owner-freebsd-virtualization@FreeBSD.ORG Mon Mar 5 21:44:20 2012 Return-Path: Delivered-To: freebsd-virtualization@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 32BFA106566C for ; Mon, 5 Mar 2012 21:44:20 +0000 (UTC) (envelope-from monthadar@gmail.com) Received: from mail-yw0-f54.google.com (mail-yw0-f54.google.com [209.85.213.54]) by mx1.freebsd.org (Postfix) with ESMTP id B8C4F8FC13 for ; Mon, 5 Mar 2012 21:44:19 +0000 (UTC) Received: by yhgm50 with SMTP id m50so2199000yhg.13 for ; Mon, 05 Mar 2012 13:44:19 -0800 (PST) Received-SPF: pass (google.com: domain of monthadar@gmail.com designates 10.50.181.195 as permitted sender) client-ip=10.50.181.195; Authentication-Results: mr.google.com; spf=pass (google.com: domain of monthadar@gmail.com designates 10.50.181.195 as permitted sender) smtp.mail=monthadar@gmail.com; dkim=pass header.i=monthadar@gmail.com Received: from mr.google.com ([10.50.181.195]) by 10.50.181.195 with SMTP id dy3mr8239294igc.57.1330983858934 (num_hops = 1); Mon, 05 Mar 2012 13:44:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=tV6QU70m9ErwJbQ6xNc4YadiX6fqg09+auvF5jYwS+Y=; b=ikc3uXCgfXWndiEmzy7vaFdg0trYa4+63kGtJRmT99oguJeLvKEbW9zpa3iubU5S/n a5FO4RWA/Qo1my1nJDmk1/burK5TBvUkwUk7RUd0+p8+n+gmgohUqO+AF1a6vCNK01zJ CarL4ZTReZM1RozQW/1gNw46DnA+liz5jpUrVl2NVN3aSGXeHDgMHpeV+CKKegyfY3Vp jBI8o5o4mO2zWyGWKBLlK3V5zGdTuQG4byt6JNx3rlFZrrezPvh3t8BSNufPzP80aPOZ cp1Xxrq3emwQ6DeVii+eNvsnDsPbRp2OgaCr2xVtDWbv8NZo9kpS4AlBItUle8VRruZp fZ0g== MIME-Version: 1.0 Received: by 10.50.181.195 with SMTP id dy3mr6771510igc.57.1330982086259; Mon, 05 Mar 2012 13:14:46 -0800 (PST) Received: by 10.50.236.67 with HTTP; Mon, 5 Mar 2012 13:14:45 -0800 (PST) Date: Mon, 5 Mar 2012 22:14:45 +0100 Message-ID: From: Monthadar Al Jaberi To: FreeBSD virtualization mailing list , Adrian Chadd Content-Type: multipart/mixed; boundary=14dae93409357435de04ba856a28 Cc: Subject: VIMAGE + kldload wlan + kldload wtap panic X-BeenThere: freebsd-virtualization@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion of various virtualization techniques FreeBSD supports." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Mar 2012 21:44:20 -0000 --14dae93409357435de04ba856a28 Content-Type: text/plain; charset=ISO-8859-1 Hi, I am a very happy VIMAGE user. But lately I have been having problems using it, and its too complicated for me to dig in so I hope you can help me (and help Adrian too). I am using FreeBSD Current with a kernel config without wlan module and wireless devices attach kernel config. uname -a shows: FreeBSD acke 10.0-CURRENT FreeBSD 10.0-CURRENT #2: Mon Mar 5 20:02:38 CET 2012 root@acke:/usr/obj/usr/src/sys/VNET_without_wlan amd64 I run the following commands: cd /usr/sys/module/wlan make load cd /usr/sys/modules/wtap make load then: /usr/src/ools/tools/wtap/wtap/wtap c 0 ifconfig wlan create wlandev wtap0 wlanmode mesh wlandebug -i wlan0 hwmp+mesh+output+input+inact ifconfig wlan0 meshid mymesh ifconfig wlan0 inet 192.168.2.1 and freebsd panics with: Mon Mar 5 21:17:46 CET 2012 Mar 5 21:59:23 acke login: ROOT LOGIN (root) ON ttyv0 Using visibility wtap plugin... Loaded wtap wireless simulator wtap0: ieee80211_radiotap_attach: no tx channel, radiotap 0x0wtap0: ieee80211_radiotap_attach: no rx channel, radiotap 0x0wlan0: Ethernet address: 00:98:9a:98:96:97 wlan0: ieee80211_start: ignore queue, in SCAN state wlan0: [00:98:9a:98:96:97] ieee80211_alloc_node: inact_reload 2 Kernel page fault with the following non-sleepable locks held: exclusive sleep mutex wtap0_com_lock (wtap0_com_lock) r = 0 (0xffffff8002395018) locked @ /usr/src/sys/modules/wlan/../../net80211/ieee80211_proto.c:1937 KDB: stack backtrace: db_trace_self_wrapper() at db_trace_self_wrapper+0x2a kdb_backtrace() at kdb_backtrace+0x37 _witness_debugger() at _witness_debugger+0x2c witness_warn() at witness_warn+0x2c4 trap() at trap+0x2fe calltrap() at calltrap+0x8 --- trap 0xc, rip = 0xffffffff80885d0c, rsp = 0xffffff80003e9a00, rbp = 0xffffff80003e9a20 --- rt_dispatch() at rt_dispatch+0x2c rt_ieee80211msg() at rt_ieee80211msg+0x7f scan_task() at scan_task+0x4cd taskqueue_run_locked() at taskqueue_run_locked+0x93 taskqueue_thread_loop() at taskqueue_thread_loop+0x3e fork_exit() at fork_exit+0x135 fork_trampoline() at fork_trampoline+0xe --- trap 0, rip = 0, rsp = 0xffffff80003e9cf0, rbp = 0 --- Fatal trap 12: page fault while in kernel mode cpuid = 0; apic id = 00 fault virtual address = 0x28 fault code = supervisor read data, page not present instruction pointer = 0x20:0xffffffff80885d0c stack pointer = 0x28:0xffffff80003e9a00 frame pointer = 0x28:0xffffff80003e9a20 code segment = base 0x0, limit 0xfffff, type 0x1b = DPL 0, pres 1, long 1, def32 0, gran 1 processor eflags = interrupt enabled, resume, IOPL = 0 current process = 0 (wtap0 net80211 task) I am attaching dump file too. The weird thing is that I don't get this panic if I include wlan in kernel config while everything else is the same. Thank you for any help! -- Monthadar Al Jaberi --14dae93409357435de04ba856a28 Content-Type: application/octet-stream; name=VNET_without_wlan Content-Disposition: attachment; filename=VNET_without_wlan Content-Transfer-Encoding: base64 X-Attachment-Id: f_gzg00uc60 IwojIEdFTkVSSUMgLS0gR2VuZXJpYyBrZXJuZWwgY29uZmlndXJhdGlvbiBmaWxlIGZvciBGcmVl QlNEL2FtZDY0CiMKIyBGb3IgbW9yZSBpbmZvcm1hdGlvbiBvbiB0aGlzIGZpbGUsIHBsZWFzZSBy ZWFkIHRoZSBjb25maWcoNSkgbWFudWFsIHBhZ2UsCiMgYW5kL29yIHRoZSBoYW5kYm9vayBzZWN0 aW9uIG9uIEtlcm5lbCBDb25maWd1cmF0aW9uIEZpbGVzOgojCiMgICAgaHR0cDovL3d3dy5GcmVl QlNELm9yZy9kb2MvZW5fVVMuSVNPODg1OS0xL2Jvb2tzL2hhbmRib29rL2tlcm5lbGNvbmZpZy1j b25maWcuaHRtbAojCiMgVGhlIGhhbmRib29rIGlzIGFsc28gYXZhaWxhYmxlIGxvY2FsbHkgaW4g L3Vzci9zaGFyZS9kb2MvaGFuZGJvb2sKIyBpZiB5b3UndmUgaW5zdGFsbGVkIHRoZSBkb2MgZGlz dHJpYnV0aW9uLCBvdGhlcndpc2UgYWx3YXlzIHNlZSB0aGUKIyBGcmVlQlNEIFdvcmxkIFdpZGUg V2ViIHNlcnZlciAoaHR0cDovL3d3dy5GcmVlQlNELm9yZy8pIGZvciB0aGUKIyBsYXRlc3QgaW5m b3JtYXRpb24uCiMKIyBBbiBleGhhdXN0aXZlIGxpc3Qgb2Ygb3B0aW9ucyBhbmQgbW9yZSBkZXRh aWxlZCBleHBsYW5hdGlvbnMgb2YgdGhlCiMgZGV2aWNlIGxpbmVzIGlzIGFsc28gcHJlc2VudCBp biB0aGUgLi4vLi4vY29uZi9OT1RFUyBhbmQgTk9URVMgZmlsZXMuCiMgSWYgeW91IGFyZSBpbiBk b3VidCBhcyB0byB0aGUgcHVycG9zZSBvciBuZWNlc3NpdHkgb2YgYSBsaW5lLCBjaGVjayBmaXJz dAojIGluIE5PVEVTLgojCiMgJEZyZWVCU0QkCgpjcHUJCUhBTU1FUgppZGVudAkJR0VORVJJQwoK bWFrZW9wdGlvbnMJREVCVUc9LWcJCSMgQnVpbGQga2VybmVsIHdpdGggZ2RiKDEpIGRlYnVnIHN5 bWJvbHMKCm9wdGlvbnMgCVNDSEVEX1VMRQkJIyBVTEUgc2NoZWR1bGVyCm9wdGlvbnMgCVBSRUVN UFRJT04JCSMgRW5hYmxlIGtlcm5lbCB0aHJlYWQgcHJlZW1wdGlvbgpvcHRpb25zIAlJTkVUCQkJ IyBJbnRlck5FVHdvcmtpbmcKb3B0aW9ucyAJSU5FVDYJCQkjIElQdjYgY29tbXVuaWNhdGlvbnMg cHJvdG9jb2xzCm9wdGlvbnMgCVNDVFAJCQkjIFN0cmVhbSBDb250cm9sIFRyYW5zbWlzc2lvbiBQ cm90b2NvbApvcHRpb25zIAlGRlMJCQkjIEJlcmtlbGV5IEZhc3QgRmlsZXN5c3RlbQpvcHRpb25z IAlTT0ZUVVBEQVRFUwkJIyBFbmFibGUgRkZTIHNvZnQgdXBkYXRlcyBzdXBwb3J0Cm9wdGlvbnMg CVVGU19BQ0wJCQkjIFN1cHBvcnQgZm9yIGFjY2VzcyBjb250cm9sIGxpc3RzCm9wdGlvbnMgCVVG U19ESVJIQVNICQkjIEltcHJvdmUgcGVyZm9ybWFuY2Ugb24gYmlnIGRpcmVjdG9yaWVzCm9wdGlv bnMgCVVGU19HSk9VUk5BTAkJIyBFbmFibGUgZ2pvdXJuYWwtYmFzZWQgVUZTIGpvdXJuYWxpbmcK b3B0aW9ucyAJTURfUk9PVAkJCSMgTUQgaXMgYSBwb3RlbnRpYWwgcm9vdCBkZXZpY2UKb3B0aW9u cyAJTkZTQ0wJCQkjIE5ldyBOZXR3b3JrIEZpbGVzeXN0ZW0gQ2xpZW50Cm9wdGlvbnMgCU5GU0QJ CQkjIE5ldyBOZXR3b3JrIEZpbGVzeXN0ZW0gU2VydmVyCm9wdGlvbnMgCU5GU0xPQ0tECQkjIE5l dHdvcmsgTG9jayBNYW5hZ2VyCm9wdGlvbnMgCU5GU19ST09UCQkjIE5GUyB1c2FibGUgYXMgLywg cmVxdWlyZXMgTkZTQ0wKb3B0aW9ucyAJTVNET1NGUwkJCSMgTVNET1MgRmlsZXN5c3RlbQpvcHRp b25zIAlDRDk2NjAJCQkjIElTTyA5NjYwIEZpbGVzeXN0ZW0Kb3B0aW9ucyAJUFJPQ0ZTCQkJIyBQ cm9jZXNzIGZpbGVzeXN0ZW0gKHJlcXVpcmVzIFBTRVVET0ZTKQpvcHRpb25zIAlQU0VVRE9GUwkJ IyBQc2V1ZG8tZmlsZXN5c3RlbSBmcmFtZXdvcmsKb3B0aW9ucyAJR0VPTV9QQVJUX0dQVAkJIyBH VUlEIFBhcnRpdGlvbiBUYWJsZXMuCm9wdGlvbnMgCUdFT01fTEFCRUwJCSMgUHJvdmlkZXMgbGFi ZWxpemF0aW9uCm9wdGlvbnMgCUNPTVBBVF9GUkVFQlNEMzIJIyBDb21wYXRpYmxlIHdpdGggaTM4 NiBiaW5hcmllcwpvcHRpb25zIAlDT01QQVRfRlJFRUJTRDQJCSMgQ29tcGF0aWJsZSB3aXRoIEZy ZWVCU0Q0Cm9wdGlvbnMgCUNPTVBBVF9GUkVFQlNENQkJIyBDb21wYXRpYmxlIHdpdGggRnJlZUJT RDUKb3B0aW9ucyAJQ09NUEFUX0ZSRUVCU0Q2CQkjIENvbXBhdGlibGUgd2l0aCBGcmVlQlNENgpv cHRpb25zIAlDT01QQVRfRlJFRUJTRDcJCSMgQ29tcGF0aWJsZSB3aXRoIEZyZWVCU0Q3Cm9wdGlv bnMgCVNDU0lfREVMQVk9NTAwMAkJIyBEZWxheSAoaW4gbXMpIGJlZm9yZSBwcm9iaW5nIFNDU0kK b3B0aW9ucyAJS1RSQUNFCQkJIyBrdHJhY2UoMSkgc3VwcG9ydApvcHRpb25zIAlTVEFDSwkJCSMg c3RhY2soOSkgc3VwcG9ydApvcHRpb25zIAlTWVNWU0hNCQkJIyBTWVNWLXN0eWxlIHNoYXJlZCBt ZW1vcnkKb3B0aW9ucyAJU1lTVk1TRwkJCSMgU1lTVi1zdHlsZSBtZXNzYWdlIHF1ZXVlcwpvcHRp b25zIAlTWVNWU0VNCQkJIyBTWVNWLXN0eWxlIHNlbWFwaG9yZXMKb3B0aW9ucyAJX0tQT1NJWF9Q UklPUklUWV9TQ0hFRFVMSU5HICMgUE9TSVggUDEwMDNfMUIgcmVhbC10aW1lIGV4dGVuc2lvbnMK b3B0aW9ucyAJUFJJTlRGX0JVRlJfU0laRT0xMjgJIyBQcmV2ZW50IHByaW50ZiBvdXRwdXQgYmVp bmcgaW50ZXJzcGVyc2VkLgpvcHRpb25zIAlLQkRfSU5TVEFMTF9DREVWCSMgaW5zdGFsbCBhIENE RVYgZW50cnkgaW4gL2RldgpvcHRpb25zIAlIV1BNQ19IT09LUwkJIyBOZWNlc3Nhcnkga2VybmVs IGhvb2tzIGZvciBod3BtYyg0KQpvcHRpb25zIAlBVURJVAkJCSMgU2VjdXJpdHkgZXZlbnQgYXVk aXRpbmcKb3B0aW9ucyAJQ0FQQUJJTElUWV9NT0RFCQkjIENhcHNpY3VtIGNhcGFiaWxpdHkgbW9k ZQpvcHRpb25zIAlDQVBBQklMSVRJRVMJCSMgQ2Fwc2ljdW0gY2FwYWJpbGl0aWVzCm9wdGlvbnMg CU1BQwkJCSMgVHJ1c3RlZEJTRCBNQUMgRnJhbWV3b3JrCiNvcHRpb25zIAlLRFRSQUNFX0ZSQU1F CQkjIEVuc3VyZSBmcmFtZXMgYXJlIGNvbXBpbGVkIGluCiNvcHRpb25zIAlLRFRSQUNFX0hPT0tT CQkjIEtlcm5lbCBEVHJhY2UgaG9va3MKb3B0aW9ucyAJSU5DTFVERV9DT05GSUdfRklMRSAgICAg IyBJbmNsdWRlIHRoaXMgZmlsZSBpbiBrZXJuZWwKb3B0aW9ucwkJVklNQUdFCQkJIyBFbmFibGUg Vk5FVApvcHRpb25zCQlERVZDVExfQVRUQUNIX0VOQUJMRUQJIyBSYXkncyBkZXZjdGwgYXR0YWNo IHRvb2wKCiMgRGVidWdnaW5nIHN1cHBvcnQuICBBbHdheXMgbmVlZCB0aGlzOgpvcHRpb25zIAlL REIJCQkjIEVuYWJsZSBrZXJuZWwgZGVidWdnZXIgc3VwcG9ydC4KIyBGb3IgbWluaW11bSBkZWJ1 Z2dlciBzdXBwb3J0IChzdGFibGUgYnJhbmNoKSB1c2U6CiNvcHRpb25zIAlLREJfVFJBQ0UJCSMg UHJpbnQgYSBzdGFjayB0cmFjZSBmb3IgYSBwYW5pYy4KIyBGb3IgZnVsbCBkZWJ1Z2dlciBzdXBw b3J0IHVzZSB0aGlzIGluc3RlYWQ6Cm9wdGlvbnMgCUREQgkJCSMgU3VwcG9ydCBEREIuCm9wdGlv bnMgCUdEQgkJCSMgU3VwcG9ydCByZW1vdGUgR0RCLgpvcHRpb25zIAlERUFETEtSRVMJCSMgRW5h YmxlIHRoZSBkZWFkbG9jayByZXNvbHZlcgpvcHRpb25zIAlJTlZBUklBTlRTCQkjIEVuYWJsZSBj YWxscyBvZiBleHRyYSBzYW5pdHkgY2hlY2tpbmcKb3B0aW9ucyAJSU5WQVJJQU5UX1NVUFBPUlQJ IyBFeHRyYSBzYW5pdHkgY2hlY2tzIG9mIGludGVybmFsIHN0cnVjdHVyZXMsIHJlcXVpcmVkIGJ5 IElOVkFSSUFOVFMKb3B0aW9ucyAJV0lUTkVTUwkJCSMgRW5hYmxlIGNoZWNrcyB0byBkZXRlY3Qg ZGVhZGxvY2tzIGFuZCBjeWNsZXMKb3B0aW9ucyAJV0lUTkVTU19TS0lQU1BJTgkjIERvbid0IHJ1 biB3aXRuZXNzIG9uIHNwaW5sb2NrcyBmb3Igc3BlZWQKb3B0aW9ucyAJTUFMTE9DX0RFQlVHX01B WFpPTkVTPTgJIyBTZXBhcmF0ZSBtYWxsb2MoOSkgem9uZXMKCiMgTWFrZSBhbiBTTVAtY2FwYWJs ZSBrZXJuZWwgYnkgZGVmYXVsdApvcHRpb25zIAlTTVAJCQkjIFN5bW1ldHJpYyBNdWx0aVByb2Nl c3NvciBLZXJuZWwKCiMgQ1BVIGZyZXF1ZW5jeSBjb250cm9sCmRldmljZQkJY3B1ZnJlcQoKIyBC dXMgc3VwcG9ydC4KZGV2aWNlCQlhY3BpCmRldmljZQkJcGNpCgojIEZsb3BweSBkcml2ZXMKZGV2 aWNlCQlmZGMKCiMgQVRBIGNvbnRyb2xsZXJzCmRldmljZQkJYWhjaQkJIyBBSENJLWNvbXBhdGli bGUgU0FUQSBjb250cm9sbGVycwpkZXZpY2UJCWF0YQkJIyBMZWdhY3kgQVRBL1NBVEEgY29udHJv bGxlcnMKb3B0aW9ucyAJQVRBX0NBTQkJIyBIYW5kbGUgbGVnYWN5IGNvbnRyb2xsZXJzIHdpdGgg Q0FNCm9wdGlvbnMgCUFUQV9TVEFUSUNfSUQJIyBTdGF0aWMgZGV2aWNlIG51bWJlcmluZwpkZXZp Y2UJCW12cwkJIyBNYXJ2ZWxsIDg4U1g1MFhYLzg4U1g2MFhYLzg4U1g3MFhYL1NvQyBTQVRBCmRl dmljZQkJc2lpcwkJIyBTaWxpY29uSW1hZ2UgU2lJMzEyNC9TaUkzMTMyL1NpSTM1MzEgU0FUQQoK IyBTQ1NJIENvbnRyb2xsZXJzCmRldmljZQkJYWhjCQkjIEFIQTI5NDAgYW5kIG9uYm9hcmQgQUlD N3h4eCBkZXZpY2VzCm9wdGlvbnMgCUFIQ19SRUdfUFJFVFRZX1BSSU5UCSMgUHJpbnQgcmVnaXN0 ZXIgYml0ZmllbGRzIGluIGRlYnVnCgkJCQkJIyBvdXRwdXQuICBBZGRzIH4xMjhrIHRvIGRyaXZl ci4KZGV2aWNlCQlhaGQJCSMgQUhBMzkzMjAvMjkzMjAgYW5kIG9uYm9hcmQgQUlDNzl4eCBkZXZp Y2VzCm9wdGlvbnMgCUFIRF9SRUdfUFJFVFRZX1BSSU5UCSMgUHJpbnQgcmVnaXN0ZXIgYml0Zmll bGRzIGluIGRlYnVnCgkJCQkJIyBvdXRwdXQuICBBZGRzIH4yMTVrIHRvIGRyaXZlci4KZGV2aWNl CQllc3AJCSMgQU1EIEFtNTNDOTc0IChUZWtyYW0gREMtMzkwKFQpKQpkZXZpY2UJCWhwdGlvcAkJ IyBIaWdocG9pbnQgUm9ja2V0UmFpZCAzeHh4IHNlcmllcwpkZXZpY2UJCWlzcAkJIyBRbG9naWMg ZmFtaWx5CiNkZXZpY2UJCWlzcGZ3CQkjIEZpcm13YXJlIGZvciBRTG9naWMgSEJBcy0gbm9ybWFs bHkgYSBtb2R1bGUKZGV2aWNlCQltcHQJCSMgTFNJLUxvZ2ljIE1QVC1GdXNpb24KZGV2aWNlCQlt cHMJCSMgTFNJLUxvZ2ljIE1QVC1GdXNpb24gMgojZGV2aWNlCQluY3IJCSMgTkNSL1N5bWJpb3Mg TG9naWMKZGV2aWNlCQlzeW0JCSMgTkNSL1N5bWJpb3MgTG9naWMgKG5ld2VyIGNoaXBzZXRzICsg dGhvc2Ugb2YgYG5jcicpCmRldmljZQkJdHJtCQkjIFRla3JhbSBEQzM5NVUvVVcvRiBEQzMxNVUg YWRhcHRlcnMKCmRldmljZQkJYWR2CQkjIEFkdmFuc3lzIFNDU0kgYWRhcHRlcnMKZGV2aWNlCQlh ZHcJCSMgQWR2YW5zeXMgd2lkZSBTQ1NJIGFkYXB0ZXJzCmRldmljZQkJYWljCQkjIEFkYXB0ZWMg MTVbMDEyXXggU0NTSSBhZGFwdGVycywgQUlDLTZbMjNdNjAuCmRldmljZQkJYnQJCSMgQnVzbG9n aWMvTXlsZXggTXVsdGlNYXN0ZXIgU0NTSSBhZGFwdGVycwpkZXZpY2UJCWlzY2kJCSMgSW50ZWwg QzYwMCBTQVMgY29udHJvbGxlcgoKIyBBVEEvU0NTSSBwZXJpcGhlcmFscwpkZXZpY2UJCXNjYnVz CQkjIFNDU0kgYnVzIChyZXF1aXJlZCBmb3IgQVRBL1NDU0kpCmRldmljZQkJY2gJCSMgU0NTSSBt ZWRpYSBjaGFuZ2VycwpkZXZpY2UJCWRhCQkjIERpcmVjdCBBY2Nlc3MgKGRpc2tzKQpkZXZpY2UJ CXNhCQkjIFNlcXVlbnRpYWwgQWNjZXNzICh0YXBlIGV0YykKZGV2aWNlCQljZAkJIyBDRApkZXZp Y2UJCXBhc3MJCSMgUGFzc3Rocm91Z2ggZGV2aWNlIChkaXJlY3QgQVRBL1NDU0kgYWNjZXNzKQpk ZXZpY2UJCXNlcwkJIyBFbmNsb3N1cmUgU2VydmljZXMgKFNFUyBhbmQgU0FGLVRFKQpkZXZpY2UJ CWN0bAkJIyBDQU0gVGFyZ2V0IExheWVyCgojIFJBSUQgY29udHJvbGxlcnMgaW50ZXJmYWNlZCB0 byB0aGUgU0NTSSBzdWJzeXN0ZW0KZGV2aWNlCQlhbXIJCSMgQU1JIE1lZ2FSQUlECmRldmljZQkJ YXJjbXNyCQkjIEFyZWNhIFNBVEEgSUkgUkFJRAojWFhYIGl0IGlzIG5vdCA2NC1iaXQgY2xlYW4s IC1zY290dGwKI2RldmljZQkJYXNyCQkjIERQVCBTbWFydFJBSUQgViwgVkkgYW5kIEFkYXB0ZWMg U0NTSSBSQUlECmRldmljZQkJY2lzcwkJIyBDb21wYXEgU21hcnQgUkFJRCA1KgpkZXZpY2UJCWRw dAkJIyBEUFQgU21hcnRjYWNoZSBJSUksIElWIC0gU2VlIE5PVEVTIGZvciBvcHRpb25zCmRldmlj ZQkJaHB0bXYJCSMgSGlnaHBvaW50IFJvY2tldFJBSUQgMTgyeApkZXZpY2UJCWhwdHJyCQkjIEhp Z2hwb2ludCBSb2NrZXRSQUlEIDE3eHgsIDIyeHgsIDIzeHgsIDI1eHgKZGV2aWNlCQlpaXIJCSMg SW50ZWwgSW50ZWdyYXRlZCBSQUlECmRldmljZQkJaXBzCQkjIElCTSAoQWRhcHRlYykgU2VydmVS QUlECmRldmljZQkJbWx5CQkjIE15bGV4IEFjY2VsZVJBSUQvZVh0cmVtZVJBSUQKZGV2aWNlCQl0 d2EJCSMgM3dhcmUgOTAwMCBzZXJpZXMgUEFUQS9TQVRBIFJBSUQKCiMgUkFJRCBjb250cm9sbGVy cwpkZXZpY2UJCWFhYwkJIyBBZGFwdGVjIEZTQSBSQUlECmRldmljZQkJYWFjcAkJIyBTQ1NJIHBh c3N0aHJvdWdoIGZvciBhYWMgKHJlcXVpcmVzIENBTSkKZGV2aWNlCQlpZGEJCSMgQ29tcGFxIFNt YXJ0IFJBSUQKZGV2aWNlCQltZmkJCSMgTFNJIE1lZ2FSQUlEIFNBUwpkZXZpY2UJCW1seAkJIyBN eWxleCBEQUM5NjAgZmFtaWx5CiNYWFggcG9pbnRlci9pbnQgd2FybmluZ3MKI2RldmljZQkJcHN0 CQkjIFByb21pc2UgU3VwZXJ0cmFrIFNYNjAwMApkZXZpY2UJCXR3ZQkJIyAzd2FyZSBBVEEgUkFJ RApkZXZpY2UJCXR3cwkJIyBMU0kgM3dhcmUgOTc1MCBTQVRBK1NBUyA2R2IvcyBSQUlEIGNvbnRy b2xsZXIKCiMgYXRrYmRjMCBjb250cm9scyBib3RoIHRoZSBrZXlib2FyZCBhbmQgdGhlIFBTLzIg bW91c2UKZGV2aWNlCQlhdGtiZGMJCSMgQVQga2V5Ym9hcmQgY29udHJvbGxlcgpkZXZpY2UJCWF0 a2JkCQkjIEFUIGtleWJvYXJkCmRldmljZQkJcHNtCQkjIFBTLzIgbW91c2UKCmRldmljZQkJa2Jk bXV4CQkjIGtleWJvYXJkIG11bHRpcGxleGVyCgpkZXZpY2UJCXZnYQkJIyBWR0EgdmlkZW8gY2Fy ZCBkcml2ZXIKCmRldmljZQkJc3BsYXNoCQkjIFNwbGFzaCBzY3JlZW4gYW5kIHNjcmVlbiBzYXZl ciBzdXBwb3J0CgojIHN5c2NvbnMgaXMgdGhlIGRlZmF1bHQgY29uc29sZSBkcml2ZXIsIHJlc2Vt YmxpbmcgYW4gU0NPIGNvbnNvbGUKZGV2aWNlCQlzYwpvcHRpb25zIAlTQ19QSVhFTF9NT0RFCSMg YWRkIHN1cHBvcnQgZm9yIHRoZSByYXN0ZXIgdGV4dCBtb2RlCgpkZXZpY2UJCWFncAkJIyBzdXBw b3J0IHNldmVyYWwgQUdQIGNoaXBzZXRzCgojIFBDQ0FSRCAoUENNQ0lBKSBzdXBwb3J0CiMgUENN Q0lBIGFuZCBjYXJkYnVzIGJyaWRnZSBzdXBwb3J0CmRldmljZQkJY2JiCQkjIGNhcmRidXMgKHll bnRhKSBicmlkZ2UKZGV2aWNlCQlwY2NhcmQJCSMgUEMgQ2FyZCAoMTYtYml0KSBidXMKZGV2aWNl CQljYXJkYnVzCQkjIENhcmRCdXMgKDMyLWJpdCkgYnVzCgojIFNlcmlhbCAoQ09NKSBwb3J0cwpk ZXZpY2UJCXVhcnQJCSMgR2VuZXJpYyBVQVJUIGRyaXZlcgoKIyBQYXJhbGxlbCBwb3J0CmRldmlj ZQkJcHBjCmRldmljZQkJcHBidXMJCSMgUGFyYWxsZWwgcG9ydCBidXMgKHJlcXVpcmVkKQpkZXZp Y2UJCWxwdAkJIyBQcmludGVyCmRldmljZQkJcGxpcAkJIyBUQ1AvSVAgb3ZlciBwYXJhbGxlbApk ZXZpY2UJCXBwaQkJIyBQYXJhbGxlbCBwb3J0IGludGVyZmFjZSBkZXZpY2UKI2RldmljZQkJdnBv CQkjIFJlcXVpcmVzIHNjYnVzIGFuZCBkYQoKZGV2aWNlCQlwdWMJCSMgTXVsdGkgSS9PIGNhcmRz IGFuZCBtdWx0aS1jaGFubmVsIFVBUlRzCgojIFBDSSBFdGhlcm5ldCBOSUNzLgpkZXZpY2UJCWJ4 ZQkJIyBCcm9hZGNvbSBCQ001NzcxMC9CQ001NzcxMS9CQ001NzcxMUUgMTBHYiBFdGhlcm5ldApk ZXZpY2UJCWRlCQkjIERFQy9JbnRlbCBEQzIxeDR4IChgYFR1bGlwJycpCmRldmljZQkJZW0JCSMg SW50ZWwgUFJPLzEwMDAgR2lnYWJpdCBFdGhlcm5ldCBGYW1pbHkKZGV2aWNlCQlpZ2IJCSMgSW50 ZWwgUFJPLzEwMDAgUENJRSBTZXJ2ZXIgR2lnYWJpdCBGYW1pbHkKZGV2aWNlCQlpeGdiZQkJIyBJ bnRlbCBQUk8vMTBHYkUgUENJRSBFdGhlcm5ldCBGYW1pbHkKZGV2aWNlCQlsZQkJIyBBTUQgQW03 OTAwIExBTkNFIGFuZCBBbTc5Qzl4eCBQQ25ldApkZXZpY2UJCXRpCQkjIEFsdGVvbiBOZXR3b3Jr cyBUaWdvbiBJL0lJIGdpZ2FiaXQgRXRoZXJuZXQKZGV2aWNlCQl0eHAJCSMgM0NvbSAzY1I5OTAg KGBgVHlwaG9vbicnKQpkZXZpY2UJCXZ4CQkjIDNDb20gM2M1OTAsIDNjNTk1IChgYFZvcnRleCcn KQoKIyBQQ0kgRXRoZXJuZXQgTklDcyB0aGF0IHVzZSB0aGUgY29tbW9uIE1JSSBidXMgY29udHJv bGxlciBjb2RlLgojIE5PVEU6IEJlIHN1cmUgdG8ga2VlcCB0aGUgJ2RldmljZSBtaWlidXMnIGxp bmUgaW4gb3JkZXIgdG8gdXNlIHRoZXNlIE5JQ3MhCmRldmljZQkJbWlpYnVzCQkjIE1JSSBidXMg c3VwcG9ydApkZXZpY2UJCWFlCQkjIEF0dGFuc2ljL0F0aGVyb3MgTDIgRmFzdEV0aGVybmV0CmRl dmljZQkJYWdlCQkjIEF0dGFuc2ljL0F0aGVyb3MgTDEgR2lnYWJpdCBFdGhlcm5ldApkZXZpY2UJ CWFsYwkJIyBBdGhlcm9zIEFSODEzMS9BUjgxMzIgRXRoZXJuZXQKZGV2aWNlCQlhbGUJCSMgQXRo ZXJvcyBBUjgxMjEvQVI4MTEzL0FSODExNCBFdGhlcm5ldApkZXZpY2UJCWJjZQkJIyBCcm9hZGNv bSBCQ001NzA2L0JDTTU3MDggR2lnYWJpdCBFdGhlcm5ldApkZXZpY2UJCWJmZQkJIyBCcm9hZGNv bSBCQ000NDB4IDEwLzEwMCBFdGhlcm5ldApkZXZpY2UJCWJnZQkJIyBCcm9hZGNvbSBCQ001NzB4 eCBHaWdhYml0IEV0aGVybmV0CmRldmljZQkJZGMJCSMgREVDL0ludGVsIDIxMTQzIGFuZCB2YXJp b3VzIHdvcmthbGlrZXMKZGV2aWNlCQlldAkJIyBBZ2VyZSBFVDEzMTAgMTAvMTAwL0dpZ2FiaXQg RXRoZXJuZXQKZGV2aWNlCQlmeHAJCSMgSW50ZWwgRXRoZXJFeHByZXNzIFBSTy8xMDBCICg4MjU1 NywgODI1NTgpCmRldmljZQkJam1lCQkjIEpNaWNyb24gSk1DMjUwIEdpZ2FiaXQvSk1DMjYwIEZh c3QgRXRoZXJuZXQKZGV2aWNlCQlsZ2UJCSMgTGV2ZWwgMSBMWFQxMDAxIGdpZ2FiaXQgRXRoZXJu ZXQKZGV2aWNlCQltc2sJCSMgTWFydmVsbC9TeXNLb25uZWN0IFl1a29uIElJIEdpZ2FiaXQgRXRo ZXJuZXQKZGV2aWNlCQluZmUJCSMgblZpZGlhIG5Gb3JjZSBNQ1Agb24tYm9hcmQgRXRoZXJuZXQK ZGV2aWNlCQluZ2UJCSMgTmF0U2VtaSBEUDgzODIwIGdpZ2FiaXQgRXRoZXJuZXQKI2RldmljZQkJ bnZlCQkjIG5WaWRpYSBuRm9yY2UgTUNQIG9uLWJvYXJkIEV0aGVybmV0IE5ldHdvcmtpbmcKZGV2 aWNlCQlwY24JCSMgQU1EIEFtNzlDOTd4IFBDSSAxMC8xMDAgKHByZWNlZGVuY2Ugb3ZlciAnbGUn KQpkZXZpY2UJCXJlCQkjIFJlYWxUZWsgODEzOUMrLzgxNjkvODE2OVMvODExMFMKZGV2aWNlCQly bAkJIyBSZWFsVGVrIDgxMjkvODEzOQpkZXZpY2UJCXNmCQkjIEFkYXB0ZWMgQUlDLTY5MTUgKGBg U3RhcmZpcmUnJykKZGV2aWNlCQlzZ2UJCSMgU2lsaWNvbiBJbnRlZ3JhdGVkIFN5c3RlbXMgU2lT MTkwLzE5MQpkZXZpY2UJCXNpcwkJIyBTaWxpY29uIEludGVncmF0ZWQgU3lzdGVtcyBTaVMgOTAw L1NpUyA3MDE2CmRldmljZQkJc2sJCSMgU3lzS29ubmVjdCBTSy05ODR4ICYgU0stOTgyeCBnaWdh Yml0IEV0aGVybmV0CmRldmljZQkJc3RlCQkjIFN1bmRhbmNlIFNUMjAxIChELUxpbmsgREZFLTU1 MFRYKQpkZXZpY2UJCXN0Z2UJCSMgU3VuZGFuY2UvVGFtYXJhY2sgVEM5MDIxIGdpZ2FiaXQgRXRo ZXJuZXQKZGV2aWNlCQl0bAkJIyBUZXhhcyBJbnN0cnVtZW50cyBUaHVuZGVyTEFOCmRldmljZQkJ dHgJCSMgU01DIEV0aGVyUG93ZXIgSUkgKDgzYzE3MCBgYEVQSUMnJykKZGV2aWNlCQl2Z2UJCSMg VklBIFZUNjEyeCBnaWdhYml0IEV0aGVybmV0CmRldmljZQkJdnIJCSMgVklBIFJoaW5lLCBSaGlu ZSBJSQpkZXZpY2UJCXdiCQkjIFdpbmJvbmQgVzg5Qzg0MEYKZGV2aWNlCQl4bAkJIyAzQ29tIDNj OTB4IChgYEJvb21lcmFuZycnLCBgYEN5Y2xvbmUnJykKCiMgSVNBIEV0aGVybmV0IE5JQ3MuICBw Y2NhcmQgTklDcyBpbmNsdWRlZC4KZGV2aWNlCQljcwkJIyBDcnlzdGFsIFNlbWljb25kdWN0b3Ig Q1M4OXgwIE5JQwojICdkZXZpY2UgZWQnIHJlcXVpcmVzICdkZXZpY2UgbWlpYnVzJwpkZXZpY2UJ CWVkCQkjIE5FWzEyXTAwMCwgU01DIFVsdHJhLCAzYzUwMywgRFM4MzkwIGNhcmRzCmRldmljZQkJ ZXgJCSMgSW50ZWwgRXRoZXJFeHByZXNzIFByby8xMCBhbmQgUHJvLzEwKwpkZXZpY2UJCWVwCQkj IEV0aGVybGluayBJSUkgYmFzZWQgY2FyZHMKZGV2aWNlCQlmZQkJIyBGdWppdHN1IE1CODY5Nngg YmFzZWQgY2FyZHMKZGV2aWNlCQlzbgkJIyBTTUMncyA5MDAwIHNlcmllcyBvZiBFdGhlcm5ldCBj aGlwcwpkZXZpY2UJCXhlCQkjIFhpcmNvbSBwY2NhcmQgRXRoZXJuZXQKCiMgV2lyZWxlc3MgTklD IGNhcmRzCiNkZXZpY2UJCXdsYW4JCSMgODAyLjExIHN1cHBvcnQKI29wdGlvbnMgCUlFRUU4MDIx MV9ERUJVRwkjIGVuYWJsZSBkZWJ1ZyBtc2dzCiNvcHRpb25zIAlJRUVFODAyMTFfQU1QRFVfQUdF ICMgYWdlIGZyYW1lcyBpbiBBTVBEVSByZW9yZGVyIHEncwojb3B0aW9ucyAJSUVFRTgwMjExX1NV UFBPUlRfTUVTSAkjIGVuYWJsZSA4MDIuMTFzIGRyYWZ0IHN1cHBvcnQKI2RldmljZQkJd2xhbl93 ZXAJIyA4MDIuMTEgV0VQIHN1cHBvcnQKI2RldmljZQkJd2xhbl9jY21wCSMgODAyLjExIENDTVAg c3VwcG9ydAojZGV2aWNlCQl3bGFuX3RraXAJIyA4MDIuMTEgVEtJUCBzdXBwb3J0CiNkZXZpY2UJ CXdsYW5fYW1ycgkjIEFNUlIgdHJhbnNtaXQgcmF0ZSBjb250cm9sIGFsZ29yaXRobQojZGV2aWNl CQlhbgkJIyBBaXJvbmV0IDQ1MDAvNDgwMCA4MDIuMTEgd2lyZWxlc3MgTklDcy4KI2RldmljZQkJ YXRoCQkjIEF0aGVyb3MgTklDJ3MKI2RldmljZQkJYXRoX3BjaQkJIyBBdGhlcm9zIHBjaS9jYXJk YnVzIGdsdWUKI2RldmljZQkJYXRoX2hhbAkJIyBwY2kvY2FyZGJ1cyBjaGlwIHN1cHBvcnQKI29w dGlvbnMgCUFIX1NVUFBPUlRfQVI1NDE2CSMgZW5hYmxlIEFSNTQxNiB0eC9yeCBkZXNjcmlwdG9y cwojZGV2aWNlCQlhdGhfcmF0ZV9zYW1wbGUJIyBTYW1wbGVSYXRlIHR4IHJhdGUgY29udHJvbCBm b3IgYXRoCiNkZXZpY2UJCWJ3aQkJIyBCcm9hZGNvbSBCQ000MzB4L0JDTTQzMXggd2lyZWxlc3Mg TklDcy4KI2RldmljZQkJYnduCQkjIEJyb2FkY29tIEJDTTQzeHggd2lyZWxlc3MgTklDcy4KI2Rl dmljZQkJaXB3CQkjIEludGVsIDIxMDAgd2lyZWxlc3MgTklDcy4KI2RldmljZQkJaXdpCQkjIElu dGVsIDIyMDBCRy8yMjI1QkcvMjkxNUFCRyB3aXJlbGVzcyBOSUNzLgojZGV2aWNlCQlpd24JCSMg SW50ZWwgNDk2NS8xMDAwLzUwMDAvNjAwMCB3aXJlbGVzcyBOSUNzLgojZGV2aWNlCQltYWxvCQkj IE1hcnZlbGwgTGliZXJ0YXMgd2lyZWxlc3MgTklDcy4KI2RldmljZQkJbXdsCQkjIE1hcnZlbGwg ODhXODM2MyA4MDIuMTFuIHdpcmVsZXNzIE5JQ3MuCiNkZXZpY2UJCXJhbAkJIyBSYWxpbmsgVGVj aG5vbG9neSBSVDI1MDAgd2lyZWxlc3MgTklDcy4KI2RldmljZQkJd2kJCSMgV2F2ZUxBTi9JbnRl cnNpbC9TeW1ib2wgODAyLjExIHdpcmVsZXNzIE5JQ3MuCiNkZXZpY2UJCXdwaQkJIyBJbnRlbCAz OTQ1QUJHIHdpcmVsZXNzIE5JQ3MuCgojIFBzZXVkbyBkZXZpY2VzLgpkZXZpY2UJCWxvb3AJCSMg TmV0d29yayBsb29wYmFjawpkZXZpY2UJCXJhbmRvbQkJIyBFbnRyb3B5IGRldmljZQpkZXZpY2UJ CWV0aGVyCQkjIEV0aGVybmV0IHN1cHBvcnQKZGV2aWNlCQl2bGFuCQkjIDgwMi4xUSBWTEFOIHN1 cHBvcnQKZGV2aWNlCQl0dW4JCSMgUGFja2V0IHR1bm5lbC4KZGV2aWNlCQlwdHkJCSMgQlNELXN0 eWxlIGNvbXBhdGliaWxpdHkgcHNldWRvIHR0eXMKZGV2aWNlCQltZAkJIyBNZW1vcnkgImRpc2tz IgpkZXZpY2UJCWdpZgkJIyBJUHY2IGFuZCBJUHY0IHR1bm5lbGluZwpkZXZpY2UJCWZhaXRoCQkj IElQdjYtdG8tSVB2NCByZWxheWluZyAodHJhbnNsYXRpb24pCmRldmljZQkJZmlybXdhcmUJIyBm aXJtd2FyZSBhc3Npc3QgbW9kdWxlCgojIFRoZSBgYnBmJyBkZXZpY2UgZW5hYmxlcyB0aGUgQmVy a2VsZXkgUGFja2V0IEZpbHRlci4KIyBCZSBhd2FyZSBvZiB0aGUgYWRtaW5pc3RyYXRpdmUgY29u c2VxdWVuY2VzIG9mIGVuYWJsaW5nIHRoaXMhCiMgTm90ZSB0aGF0ICdicGYnIGlzIHJlcXVpcmVk IGZvciBESENQLgpkZXZpY2UJCWJwZgkJIyBCZXJrZWxleSBwYWNrZXQgZmlsdGVyCgojIFVTQiBz dXBwb3J0Cm9wdGlvbnMgCVVTQl9ERUJVRwkjIGVuYWJsZSBkZWJ1ZyBtc2dzCmRldmljZQkJdWhj aQkJIyBVSENJIFBDSS0+VVNCIGludGVyZmFjZQpkZXZpY2UJCW9oY2kJCSMgT0hDSSBQQ0ktPlVT QiBpbnRlcmZhY2UKZGV2aWNlCQllaGNpCQkjIEVIQ0kgUENJLT5VU0IgaW50ZXJmYWNlIChVU0Ig Mi4wKQpkZXZpY2UJCXhoY2kJCSMgWEhDSSBQQ0ktPlVTQiBpbnRlcmZhY2UgKFVTQiAzLjApCmRl dmljZQkJdXNiCQkjIFVTQiBCdXMgKHJlcXVpcmVkKQojZGV2aWNlCQl1ZGJwCQkjIFVTQiBEb3Vi bGUgQnVsayBQaXBlIGRldmljZXMgKG5lZWRzIG5ldGdyYXBoKQpkZXZpY2UJCXVoaWQJCSMgIkh1 bWFuIEludGVyZmFjZSBEZXZpY2VzIgpkZXZpY2UJCXVrYmQJCSMgS2V5Ym9hcmQKZGV2aWNlCQl1 bHB0CQkjIFByaW50ZXIKZGV2aWNlCQl1bWFzcwkJIyBEaXNrcy9NYXNzIHN0b3JhZ2UgLSBSZXF1 aXJlcyBzY2J1cyBhbmQgZGEKZGV2aWNlCQl1bXMJCSMgTW91c2UKZGV2aWNlCQl1cmlvCQkjIERp YW1vbmQgUmlvIDUwMCBNUDMgcGxheWVyCiMgVVNCIFNlcmlhbCBkZXZpY2VzCmRldmljZQkJdTNn CQkjIFVTQi1iYXNlZCAzRyBtb2RlbXMgKE9wdGlvbiwgSHVhd2VpLCBTaWVycmEpCmRldmljZQkJ dWFyawkJIyBUZWNobm9sb2dpZXMgQVJLMzExNiBiYXNlZCBzZXJpYWwgYWRhcHRlcnMKZGV2aWNl CQl1YnNhCQkjIEJlbGtpbiBGNVUxMDMgYW5kIGNvbXBhdGlibGUgc2VyaWFsIGFkYXB0ZXJzCmRl dmljZQkJdWZ0ZGkJCSMgRm9yIEZUREkgdXNiIHNlcmlhbCBhZGFwdGVycwpkZXZpY2UJCXVpcGFx CQkjIFNvbWUgV2luQ0UgYmFzZWQgZGV2aWNlcwpkZXZpY2UJCXVwbGNvbQkJIyBQcm9saWZpYyBQ TC0yMzAzIHNlcmlhbCBhZGFwdGVycwpkZXZpY2UJCXVzbGNvbQkJIyBTSSBMYWJzIENQMjEwMS9D UDIxMDIgc2VyaWFsIGFkYXB0ZXJzCmRldmljZQkJdXZpc29yCQkjIFZpc29yIGFuZCBQYWxtIGRl dmljZXMKZGV2aWNlCQl1dnNjb20JCSMgVVNCIHNlcmlhbCBzdXBwb3J0IGZvciBEREkgcG9ja2V0 J3MgUEhTCiMgVVNCIEV0aGVybmV0LCByZXF1aXJlcyBtaWlidXMKZGV2aWNlCQlhdWUJCSMgQURN dGVrIFVTQiBFdGhlcm5ldApkZXZpY2UJCWF4ZQkJIyBBU0lYIEVsZWN0cm9uaWNzIFVTQiBFdGhl cm5ldApkZXZpY2UJCWNkY2UJCSMgR2VuZXJpYyBVU0Igb3ZlciBFdGhlcm5ldApkZXZpY2UJCWN1 ZQkJIyBDQVRDIFVTQiBFdGhlcm5ldApkZXZpY2UJCWt1ZQkJIyBLYXdhc2FraSBMU0kgVVNCIEV0 aGVybmV0CmRldmljZQkJcnVlCQkjIFJlYWxUZWsgUlRMODE1MCBVU0IgRXRoZXJuZXQKZGV2aWNl CQl1ZGF2CQkjIERhdmljb20gRE05NjAxRSBVU0IKIyBVU0IgV2lyZWxlc3MKI2RldmljZQkJcnVt CQkjIFJhbGluayBUZWNobm9sb2d5IFJUMjUwMVVTQiB3aXJlbGVzcyBOSUNzCiNkZXZpY2UJCXJ1 bgkJIyBSYWxpbmsgVGVjaG5vbG9neSBSVDI3MDAvUlQyODAwL1JUMzAwMCBOSUNzLgojZGV2aWNl CQl1YXRoCQkjIEF0aGVyb3MgQVI1NTIzIHdpcmVsZXNzIE5JQ3MKI2RldmljZQkJdXBndAkJIyBD b25leGFudC9JbnRlcnNpbCBQcmlzbUdUIHdpcmVsZXNzIE5JQ3MuCiNkZXZpY2UJCXVyYWwJCSMg UmFsaW5rIFRlY2hub2xvZ3kgUlQyNTAwVVNCIHdpcmVsZXNzIE5JQ3MKI2RldmljZQkJdXJ0dwkJ IyBSZWFsdGVrIFJUTDgxODdCL0wgd2lyZWxlc3MgTklDcwojZGV2aWNlCQl6eWQJCSMgWnlEQVMg emQxMjExL3pkMTIxMWIgd2lyZWxlc3MgTklDcwoKIyBGaXJlV2lyZSBzdXBwb3J0CmRldmljZQkJ ZmlyZXdpcmUJIyBGaXJlV2lyZSBidXMgY29kZQojIHNicCg0KSB3b3JrcyBmb3Igc29tZSBzeXN0 ZW1zIGJ1dCBjYXVzZXMgYm9vdCBmYWlsdXJlIG9uIG90aGVycwojZGV2aWNlCQlzYnAJCSMgU0NT SSBvdmVyIEZpcmVXaXJlIChSZXF1aXJlcyBzY2J1cyBhbmQgZGEpCmRldmljZQkJZndlCQkjIEV0 aGVybmV0IG92ZXIgRmlyZVdpcmUgKG5vbi1zdGFuZGFyZCEpCmRldmljZQkJZndpcAkJIyBJUCBv dmVyIEZpcmVXaXJlIChSRkMgMjczNCwzMTQ2KQpkZXZpY2UJCWRjb25zCQkjIER1bWIgY29uc29s ZSBkcml2ZXIKZGV2aWNlCQlkY29uc19jcm9tCSMgQ29uZmlndXJhdGlvbiBST00gZm9yIGRjb25z CgojIFNvdW5kIHN1cHBvcnQKZGV2aWNlCQlzb3VuZAkJIyBHZW5lcmljIHNvdW5kIGRyaXZlciAo cmVxdWlyZWQpCmRldmljZQkJc25kX2VzMTM3eAkjIEVuc29uaXEgQXVkaW9QQ0kgRVMxMzd4CmRl dmljZQkJc25kX2hkYQkJIyBJbnRlbCBIaWdoIERlZmluaXRpb24gQXVkaW8KZGV2aWNlCQlzbmRf aWNoCQkjIEludGVsLCBOVmlkaWEgYW5kIG90aGVyIElDSCBBQyc5NyBBdWRpbwpkZXZpY2UJCXNu ZF91YXVkaW8JIyBVU0IgQXVkaW8KZGV2aWNlCQlzbmRfdmlhODIzMwkjIFZJQSBWVDgyMzN4IEF1 ZGlvCgojIE1NQy9TRApkZXZpY2UJCW1tYwkJIyBNTUMvU0QgYnVzCmRldmljZQkJbW1jc2QJCSMg TU1DL1NEIG1lbW9yeSBjYXJkCmRldmljZQkJc2RoY2kJCSMgR2VuZXJpYyBQQ0kgU0QgSG9zdCBD b250cm9sbGVyCg== --14dae93409357435de04ba856a28 Content-Type: application/octet-stream; name="core.txt.3" Content-Disposition: attachment; filename="core.txt.3" Content-Transfer-Encoding: base64 X-Attachment-Id: f_gzg07r151 YWNrZSBkdW1wZWQgY29yZSAtIHNlZSAvdmFyL2NyYXNoL3ZtY29yZS4zCgpNb24gTWFyICA1IDIy OjAxOjAzIENFVCAyMDEyCgpGcmVlQlNEIGFja2UgMTAuMC1DVVJSRU5UIEZyZWVCU0QgMTAuMC1D VVJSRU5UICMyOiBNb24gTWFyICA1IDIwOjAyOjM4IENFVCAyMDEyICAgICByb290QGFja2U6L3Vz ci9vYmovdXNyL3NyYy9zeXMvVk5FVF93aXRob3V0X3dsYW4gIGFtZDY0CgpwYW5pYzogCgpHTlUg Z2RiIDYuMS4xIFtGcmVlQlNEXQpDb3B5cmlnaHQgMjAwNCBGcmVlIFNvZnR3YXJlIEZvdW5kYXRp b24sIEluYy4KR0RCIGlzIGZyZWUgc29mdHdhcmUsIGNvdmVyZWQgYnkgdGhlIEdOVSBHZW5lcmFs IFB1YmxpYyBMaWNlbnNlLCBhbmQgeW91IGFyZQp3ZWxjb21lIHRvIGNoYW5nZSBpdCBhbmQvb3Ig ZGlzdHJpYnV0ZSBjb3BpZXMgb2YgaXQgdW5kZXIgY2VydGFpbiBjb25kaXRpb25zLgpUeXBlICJz aG93IGNvcHlpbmciIHRvIHNlZSB0aGUgY29uZGl0aW9ucy4KVGhlcmUgaXMgYWJzb2x1dGVseSBu byB3YXJyYW50eSBmb3IgR0RCLiAgVHlwZSAic2hvdyB3YXJyYW50eSIgZm9yIGRldGFpbHMuClRo aXMgR0RCIHdhcyBjb25maWd1cmVkIGFzICJhbWQ2NC1tYXJjZWwtZnJlZWJzZCIuLi4KClVucmVh ZCBwb3J0aW9uIG9mIHRoZSBrZXJuZWwgbWVzc2FnZSBidWZmZXI6CndsYW4wOiBbMDA6OTg6OWE6 OTg6OTY6OTddIGllZWU4MDIxMV9hbGxvY19ub2RlOiBpbmFjdF9yZWxvYWQgMgpLZXJuZWwgcGFn ZSBmYXVsdCB3aXRoIHRoZSBmb2xsb3dpbmcgbm9uLXNsZWVwYWJsZSBsb2NrcyBoZWxkOgpleGNs dXNpdmUgc2xlZXAgbXV0ZXggd3RhcDBfY29tX2xvY2sgKHd0YXAwX2NvbV9sb2NrKSByID0gMCAo MHhmZmZmZmY4MDAyMzk1MDE4KSBsb2NrZWQgQCAvdXNyL3NyYy9zeXMvbW9kdWxlcy93bGFuLy4u Ly4uL25ldDgwMjExL2llZWU4MDIxMV9wcm90by5jOjE5MzcKS0RCOiBzdGFjayBiYWNrdHJhY2U6 CmRiX3RyYWNlX3NlbGZfd3JhcHBlcigpIGF0IGRiX3RyYWNlX3NlbGZfd3JhcHBlcisweDJhCmtk Yl9iYWNrdHJhY2UoKSBhdCBrZGJfYmFja3RyYWNlKzB4MzcKX3dpdG5lc3NfZGVidWdnZXIoKSBh dCBfd2l0bmVzc19kZWJ1Z2dlcisweDJjCndpdG5lc3Nfd2FybigpIGF0IHdpdG5lc3Nfd2Fybisw eDJjNAp0cmFwKCkgYXQgdHJhcCsweDJmZQpjYWxsdHJhcCgpIGF0IGNhbGx0cmFwKzB4OAotLS0g dHJhcCAweGMsIHJpcCA9IDB4ZmZmZmZmZmY4MDg4NWQwYywgcnNwID0gMHhmZmZmZmY4MDAwM2U5 YTAwLCByYnAgPSAweGZmZmZmZjgwMDAzZTlhMjAgLS0tCnJ0X2Rpc3BhdGNoKCkgYXQgcnRfZGlz cGF0Y2grMHgyYwpydF9pZWVlODAyMTFtc2coKSBhdCBydF9pZWVlODAyMTFtc2crMHg3ZgpzY2Fu X3Rhc2soKSBhdCBzY2FuX3Rhc2srMHg0Y2QKdGFza3F1ZXVlX3J1bl9sb2NrZWQoKSBhdCB0YXNr cXVldWVfcnVuX2xvY2tlZCsweDkzCnRhc2txdWV1ZV90aHJlYWRfbG9vcCgpIGF0IHRhc2txdWV1 ZV90aHJlYWRfbG9vcCsweDNlCmZvcmtfZXhpdCgpIGF0IGZvcmtfZXhpdCsweDEzNQpmb3JrX3Ry YW1wb2xpbmUoKSBhdCBmb3JrX3RyYW1wb2xpbmUrMHhlCi0tLSB0cmFwIDAsIHJpcCA9IDAsIHJz cCA9IDB4ZmZmZmZmODAwMDNlOWNmMCwgcmJwID0gMCAtLS0KCgpGYXRhbCB0cmFwIDEyOiBwYWdl IGZhdWx0IHdoaWxlIGluIGtlcm5lbCBtb2RlCmNwdWlkID0gMDsgYXBpYyBpZCA9IDAwCmZhdWx0 IHZpcnR1YWwgYWRkcmVzcwk9IDB4MjgKZmF1bHQgY29kZQkJPSBzdXBlcnZpc29yIHJlYWQgZGF0 YSwgcGFnZSBub3QgcHJlc2VudAppbnN0cnVjdGlvbiBwb2ludGVyCT0gMHgyMDoweGZmZmZmZmZm ODA4ODVkMGMKc3RhY2sgcG9pbnRlcgkgICAgICAgID0gMHgyODoweGZmZmZmZjgwMDAzZTlhMDAK ZnJhbWUgcG9pbnRlcgkgICAgICAgID0gMHgyODoweGZmZmZmZjgwMDAzZTlhMjAKY29kZSBzZWdt ZW50CQk9IGJhc2UgMHgwLCBsaW1pdCAweGZmZmZmLCB0eXBlIDB4MWIKCQkJPSBEUEwgMCwgcHJl cyAxLCBsb25nIDEsIGRlZjMyIDAsIGdyYW4gMQpwcm9jZXNzb3IgZWZsYWdzCT0gaW50ZXJydXB0 IGVuYWJsZWQsIHJlc3VtZSwgSU9QTCA9IDAKY3VycmVudCBwcm9jZXNzCQk9IDAgKHd0YXAwIG5l dDgwMjExIHRhc2spCgpSZWFkaW5nIHN5bWJvbHMgZnJvbSAvdXNyL3NyYy9zeXMvbW9kdWxlcy93 bGFuL3dsYW4ua28uLi5kb25lLgpMb2FkZWQgc3ltYm9scyBmb3IgL3Vzci9zcmMvc3lzL21vZHVs ZXMvd2xhbi93bGFuLmtvClJlYWRpbmcgc3ltYm9scyBmcm9tIC91c3Ivc3JjL3N5cy9tb2R1bGVz L3d0YXAvd3RhcC5rby4uLmRvbmUuCkxvYWRlZCBzeW1ib2xzIGZvciAvdXNyL3NyYy9zeXMvbW9k dWxlcy93dGFwL3d0YXAua28KIzAgIGRvYWR1bXAgKHRleHRkdW1wPTApIGF0IC91c3Ivc3JjL3N5 cy9rZXJuL2tlcm5fc2h1dGRvd24uYzoyNjgKMjY4CQlpZiAodGV4dGR1bXAgJiYgdGV4dGR1bXBf cGVuZGluZykgewooa2dkYikgIzAgIGRvYWR1bXAgKHRleHRkdW1wPTApIGF0IC91c3Ivc3JjL3N5 cy9rZXJuL2tlcm5fc2h1dGRvd24uYzoyNjgKIzEgIDB4ZmZmZmZmZmY4MDMxNzBhMCBpbiBkYl9k dW1wIChkdW1teT1WYXJpYWJsZSAiZHVtbXkiIGlzIG5vdCBhdmFpbGFibGUuCikKICAgIGF0IC91 c3Ivc3JjL3N5cy9kZGIvZGJfY29tbWFuZC5jOjUzOAojMiAgMHhmZmZmZmZmZjgwMzE2NjkxIGlu IGRiX2NvbW1hbmQgKGxhc3RfY21kcD0weGZmZmZmZmZmODEwNDhjMjAsIGNtZF90YWJsZT1WYXJp YWJsZSAiY21kX3RhYmxlIiBpcyBub3QgYXZhaWxhYmxlLgoKKSBhdCAvdXNyL3NyYy9zeXMvZGRi L2RiX2NvbW1hbmQuYzo0NDkKIzMgIDB4ZmZmZmZmZmY4MDMxNjhlMCBpbiBkYl9jb21tYW5kX2xv b3AgKCkKICAgIGF0IC91c3Ivc3JjL3N5cy9kZGIvZGJfY29tbWFuZC5jOjUwMgojNCAgMHhmZmZm ZmZmZjgwMzE4YTI5IGluIGRiX3RyYXAgKHR5cGU9VmFyaWFibGUgInR5cGUiIGlzIG5vdCBhdmFp bGFibGUuCikgYXQgL3Vzci9zcmMvc3lzL2RkYi9kYl9tYWluLmM6MjI5CiM1ICAweGZmZmZmZmZm ODA3ZTg3YTEgaW4ga2RiX3RyYXAgKHR5cGU9MTIsIGNvZGU9MCwgdGY9MHhmZmZmZmY4MDAwM2U5 OTUwKQogICAgYXQgL3Vzci9zcmMvc3lzL2tlcm4vc3Vicl9rZGIuYzo2MjkKIzYgIDB4ZmZmZmZm ZmY4MGE3YzAxZCBpbiB0cmFwX2ZhdGFsIChmcmFtZT0weGZmZmZmZjgwMDAzZTk5NTAsIGV2YT1W YXJpYWJsZSAiZXZhIiBpcyBub3QgYXZhaWxhYmxlLgopCiAgICBhdCAvdXNyL3NyYy9zeXMvYW1k NjQvYW1kNjQvdHJhcC5jOjgxNAojNyAgMHhmZmZmZmZmZjgwYTdjNmM1IGluIHRyYXAgKGZyYW1l PTB4ZmZmZmZmODAwMDNlOTk1MCkKICAgIGF0IC91c3Ivc3JjL3N5cy9hbWQ2NC9hbWQ2NC90cmFw LmM6MzIyCiM4ICAweGZmZmZmZmZmODBhNjVkOWYgaW4gY2FsbHRyYXAgKCkKICAgIGF0IC91c3Iv c3JjL3N5cy9hbWQ2NC9hbWQ2NC9leGNlcHRpb24uUzoyMjgKIzkgIDB4ZmZmZmZmZmY4MDg4NWQw YyBpbiBydF9kaXNwYXRjaCAobT0weGZmZmZmZTAwMDUxNjAzMDAsIHNhZj0wICdcMCcpCiAgICBh dCAvdXNyL3NyYy9zeXMvbmV0L3J0c29jay5jOjE0OTQKIzEwIDB4ZmZmZmZmZmY4MDg4NmIxZiBp biBydF9pZWVlODAyMTFtc2cgKGlmcD1WYXJpYWJsZSAiaWZwIiBpcyBub3QgYXZhaWxhYmxlLgop CiAgICBhdCAvdXNyL3NyYy9zeXMvbmV0L3J0c29jay5jOjE0NTQKIzExIDB4ZmZmZmZmZmY4MTYz MTY3ZCBpbiBzY2FuX3Rhc2sgKCkgZnJvbSAvdXNyL3NyYy9zeXMvbW9kdWxlcy93bGFuL3dsYW4u a28KIzEyIDB4MDAwMDAwMDAwMDAwMDI0NiBpbiA/PyAoKQojMTMgMHhmZmZmZmY4MDAwM2U5YjAw IGluID8/ICgpCiMxNCAweGZmZmZmZmZmODEyMThiYjAgaW4gd19sb2NrbGlzdGRhdGEgKCkKIzE1 IDB4ZmZmZmZlMDAwNTYzZDhhMCBpbiA/PyAoKQojMTYgMHhmZmZmZmY4MDAyMzk1MDE4IGluID8/ ICgpCiMxNyAweGZmZmZmZTAwMDU0ZjQwYjAgaW4gPz8gKCkKIzE4IDB4MDAwMDAwMDAwMDAwMDEz MiBpbiA/PyAoKQojMTkgMHhmZmZmZmZmZjgwYzlmNTQ4IGluIF9fZnVuY19fLjc4NDIgKCkKIzIw IDB4ZmZmZmZlMDAwNTVlMjAwMCBpbiA/PyAoKQojMjEgMHhmZmZmZmY4MDAyMzk1MjU0IGluID8/ ICgpCiMyMiAweDAwMDAwMDAwODAwM2UyN2QgaW4gPz8gKCkKIzIzIDB4ZmZmZmZlMDAwNTRmNDBi MCBpbiA/PyAoKQojMjQgMHhmZmZmZmUwMDA1NjNkODgwIGluID8/ICgpCiMyNSAweGZmZmZmZTAw MDU0ZjQwODAgaW4gPz8gKCkKIzI2IDB4MDAwMDAwMDAwMDAwMDAwMSBpbiA/PyAoKQojMjcgMHhm ZmZmZmUwMDA1NGY0MGIwIGluID8/ICgpCiMyOCAweGZmZmZmZjgwMDAzZTliNzAgaW4gPz8gKCkK IzI5IDB4ZmZmZmZmODAwMDNlOWJjMCBpbiA/PyAoKQojMzAgMHhmZmZmZmZmZjgwN2Y2NTAzIGlu IHRhc2txdWV1ZV9ydW5fbG9ja2VkIChxdWV1ZT0weGZmZmZmZTAwMDU0ZjQwODApCiAgICBhdCAv dXNyL3NyYy9zeXMva2Vybi9zdWJyX3Rhc2txdWV1ZS5jOjMwOApQcmV2aW91cyBmcmFtZSBpbm5l ciB0byB0aGlzIGZyYW1lIChjb3JydXB0IHN0YWNrPykKKGtnZGIpIAoKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CnBzIC1heGwKClVJRCAgUElEIFBQSUQgQ1BVIFBSSSBOSSAgIFZTWiBSU1MgTVdDSEFOICAgU1RB VCBUVCAgICAgIFRJTUUgQ09NTUFORAogIDAgICAgMCAgICAwICAgMCAtOTIgIDAgICAgIDAgICAw IC0gICAgICAgIFJMcyAgIC0gICAwOjAwLjEzIFtrZXJuZWxdCiAgMCAgICAxICAgIDAgICAwICAy MCAgMCAgNjI3NiAgIDAgd2FpdCAgICAgRExzICAgLSAgIDA6MDAuMDEgW2luaXRdCiAgMCAgICAy ICAgIDAgICAwIC0xNiAgMCAgICAgMCAgIDAgY3RsX3dvcmsgREwgICAgLSAgIDA6MDAuMDAgW2N0 bF90aHJkXQogIDAgICAgMyAgICAwICAgMCAtMTYgIDAgICAgIDAgICAwIHdhaXRpbmdfIERMICAg IC0gICAwOjAwLjAwIFtzY3RwX2l0ZXJhdG9yXQogIDAgICAgNCAgICAwICAgMCAtMTYgIDAgICAg IDAgICAwIGNjYl9zY2FuIERMICAgIC0gICAwOjAwLjAwIFt4cHRfdGhyZF0KICAwICAgIDUgICAg MCAgIDAgLTE2ICAwICAgICAwICAgMCBwc2xlZXAgICBETCAgICAtICAgMDowMC4wMCBbcGFnZWRh ZW1vbl0KICAwICAgIDYgICAgMCAgIDAgLTE2ICAwICAgICAwICAgMCBwc2xlZXAgICBETCAgICAt ICAgMDowMC4wMCBbdm1kYWVtb25dCiAgMCAgICA3ICAgIDAgICAwIDE1NSAgMCAgICAgMCAgIDAg cGd6ZXJvICAgREwgICAgLSAgIDA6MDAuMDAgW3BhZ2V6ZXJvXQogIDAgICAgOCAgICAwICAgMCAt MTYgIDAgICAgIDAgICAwIHBzbGVlcCAgIERMICAgIC0gICAwOjAwLjAxIFtidWZkYWVtb25dCiAg MCAgICA5ICAgIDAgICAwIC0xNiAgMCAgICAgMCAgIDAgdmxydXd0ICAgREwgICAgLSAgIDA6MDAu MDEgW3ZubHJ1XQogIDAgICAxMCAgICAwICAgMCAtMTYgIDAgICAgIDAgICAwIGF1ZGl0X3dvIERM ICAgIC0gICAwOjAwLjAwIFthdWRpdF0KICAwICAgMTEgICAgMCAgIDAgMTU1ICAwICAgICAwICAg MCAtICAgICAgICBSTCAgICAtICA0MjoxMy41NyBbaWRsZV0KICAwICAgMTIgICAgMCAgIDAgLTg0 ICAwICAgICAwICAgMCAtICAgICAgICBXTCAgICAtICAgMDowMy43MSBbaW50cl0KICAwICAgMTMg ICAgMCAgIDAgIC04ICAwICAgICAwICAgMCAtICAgICAgICBETCAgICAtICAgMDowMC4yNiBbZ2Vv bV0KICAwICAgMTQgICAgMCAgIDAgLTE2ICAwICAgICAwICAgMCAtICAgICAgICBETCAgICAtICAg MDowMC4wOCBbeWFycm93XQogIDAgICAxNSAgICAwICAgMCAtNjggIDAgICAgIDAgICAwIC0gICAg ICAgIERMICAgIC0gICAwOjAwLjA4IFt1c2JdCiAgMCAgIDE2ICAgIDAgICAwICAxNiAgMCAgICAg MCAgIDAgc3luY2VyICAgREwgICAgLSAgIDA6MDAuMDQgW3N5bmNlcl0KICAwICAgMTcgICAgMCAg IDAgLTE2ICAwICAgICAwICAgMCBzZGZsdXNoICBETCAgICAtICAgMDowMC4wMiBbc29mdGRlcGZs dXNoXQogIDAgIDEzNCAgICAxICAgMCAgNTIgIDAgMTAxMzIgICAwIHBhdXNlICAgIERzICAgIC0g ICAwOjAwLjAwIFthZGprZXJudHpdCiAgMCAgNTE5ICAgIDEgICAwICA1MiAgMCAxMjI2NCAgIDAg c2VsZWN0ICAgRHMgICAgLSAgIDA6MDAuMDAgW2RoY2xpZW50XQogNjUgIDU1NyAgICAxICAgMCAg MjAgIDAgMTIyNjQgICAwIHNlbGVjdCAgIERzICAgIC0gICAwOjAwLjAwIFtkaGNsaWVudF0KICAw ICA1NzcgICAgMSAgIDAgIDIwICAwIDEyMjY0ICAgMCBzZWxlY3QgICBEcyAgICAtICAgMDowMC4w MCBbZGhjbGllbnRdCiA2NSAgNTg4ICAgIDEgICAwICAyMCAgMCAxMjI2NCAgIDAgc2VsZWN0ICAg RHMgICAgLSAgIDA6MDAuMDAgW2RoY2xpZW50XQogIDAgIDYwNCAgICAxICAgMCAgMjAgIDAgMTAz NzIgICAwIHdhaXQgICAgIERzICAgIC0gICAwOjAwLjAwIFtkZXZkXQogIDAgIDcwNyAgICAxICAg MCAgMjAgIDAgMTIyNjQgICAwIHNlbGVjdCAgIERzICAgIC0gICAwOjAwLjAyIFtzeXNsb2dkXQog IDAgIDgwNCAgICAxICAgMCAgMjAgIDAgMjI0MDggICAwIHNlbGVjdCAgIERzICAgIC0gICAwOjAw LjI3IFtudHBkXQogIDAgIDgxOCAgICAxICAgMCAgNTIgIDAgNDY5NjAgICAwIHNlbGVjdCAgIERz ICAgIC0gICAwOjAwLjAwIFtzc2hkXQogIDAgIDgyMSAgICAxICAgMCAgMjAgIDAgMjA0NjAgICAw IHNlbGVjdCAgIERzICAgIC0gICAwOjAwLjA2IFtzZW5kbWFpbF0KIDI1ICA4MjQgICAgMSAgIDAg IDIwICAwIDIwNDYwICAgMCBwYXVzZSAgICBEcyAgICAtICAgMDowMC4wMCBbc2VuZG1haWxdCiAg MCAgODI4ICAgIDEgICAwICA1MiAgMCAxNDM0NCAgIDAgbmFuc2xwICAgRHMgICAgLSAgIDA6MDAu MDIgW2Nyb25dCiAgMCAgODY0ICAgIDEgICAwICAyMCAgMCA0MTM4NCAgIDAgd2FpdCAgICAgRHMg ICAgLSAgIDA6MDAuMDIgW2xvZ2luXQogIDAgIDg2NSAgICAxICAgMCAgNTIgIDAgMTIyNjQgICAw IHR0eWluICAgIERzKyAgIC0gICAwOjAwLjAwIFtnZXR0eV0KICAwICA4NjYgICAgMSAgIDAgIDUy ICAwIDEyMjY0ICAgMCB0dHlpbiAgICBEcysgICAtICAgMDowMC4wMCBbZ2V0dHldCiAgMCAgODY3 ICAgIDEgICAwICA1MiAgMCAxMjI2NCAgIDAgdHR5aW4gICAgRHMrICAgLSAgIDA6MDAuMDAgW2dl dHR5XQogIDAgIDg2OCAgICAxICAgMCAgNTIgIDAgMTIyNjQgICAwIHR0eWluICAgIERzKyAgIC0g ICAwOjAwLjAwIFtnZXR0eV0KICAwICA4NjkgICAgMSAgIDAgIDUyICAwIDEyMjY0ICAgMCB0dHlp biAgICBEcysgICAtICAgMDowMC4wMCBbZ2V0dHldCiAgMCAgODcwICAgIDEgICAwICA1MiAgMCAx MjI2NCAgIDAgdHR5aW4gICAgRHMrICAgLSAgIDA6MDAuMDAgW2dldHR5XQogIDAgIDg3MSAgICAx ICAgMCAgNTIgIDAgMTIyNjQgICAwIHR0eWluICAgIERzKyAgIC0gICAwOjAwLjAwIFtnZXR0eV0K ICAwICA5NDIgIDg2NCAgIDAgIDI2ICAwIDE0NjgwICAgMCB0dHlpbiAgICBEKyAgICAtICAgMDow MC4wNSBbY3NoXQogIDAgIDk0NSAgICAwICAgMCAtMTYgIDAgICAgIDAgICAwIC0gICAgICAgIERM ICAgIC0gICAwOjAwLjAwIFtuZXduZnMgMF0KICAwICA5NjggIDYwNCAgIDAgIDUyICAwIDE0NzA4 ICAgMCB3YWl0ICAgICBEICAgICAtICAgMDowMC4wMSBbc2hdCiAgMCAgOTc5ICA5NjggICAwICA1 MiAgMCAxNDcwOCAgIDAgd2FpdCAgICAgRCAgICAgLSAgIDA6MDAuMDIgW3NoXQogIDAgMTA3NiAg OTc5ICAgMCAgNzIgIDAgMTQ3MDggICAwIC0gICAgICAgIFIgICAgIC0gICAwOjAwLjAwIFtzaF0K Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQp2bXN0YXQgLXMKCiAgIDMxMDkxOSBjcHUgY29udGV4dCBzd2l0Y2hl cwogICAgIDI4NzAgZGV2aWNlIGludGVycnVwdHMKICAgMTI0MTgyIHNvZnR3YXJlIGludGVycnVw dHMKICAgIDk5ODg2IHRyYXBzCiAgIDEwNjk3NiBzeXN0ZW0gY2FsbHMKICAgICAgIDE4IGtlcm5l bCB0aHJlYWRzIGNyZWF0ZWQKICAgICAgODIyICBmb3JrKCkgY2FsbHMKICAgICAgMjM3IHZmb3Jr KCkgY2FsbHMKICAgICAgICAwIHJmb3JrKCkgY2FsbHMKICAgICAgICAwIHN3YXAgcGFnZXIgcGFn ZWlucwogICAgICAgIDAgc3dhcCBwYWdlciBwYWdlcyBwYWdlZCBpbgogICAgICAgIDAgc3dhcCBw YWdlciBwYWdlb3V0cwogICAgICAgIDAgc3dhcCBwYWdlciBwYWdlcyBwYWdlZCBvdXQKICAgICAg Mjg0IHZub2RlIHBhZ2VyIHBhZ2VpbnMKICAgICAyMDUxIHZub2RlIHBhZ2VyIHBhZ2VzIHBhZ2Vk IGluCiAgICAgICAgMCB2bm9kZSBwYWdlciBwYWdlb3V0cwogICAgICAgIDAgdm5vZGUgcGFnZXIg cGFnZXMgcGFnZWQgb3V0CiAgICAgICAgMCBwYWdlIGRhZW1vbiB3YWtldXBzCiAgICAgICAgMCBw YWdlcyBleGFtaW5lZCBieSB0aGUgcGFnZSBkYWVtb24KICAgICAgMTUxIHBhZ2VzIHJlYWN0aXZh dGVkCiAgICAzMzIyMCBjb3B5LW9uLXdyaXRlIGZhdWx0cwogICAgICAgNTUgY29weS1vbi13cml0 ZSBvcHRpbWl6ZWQgZmF1bHRzCiAgICAzNDI4NCB6ZXJvIGZpbGwgcGFnZXMgemVyb2VkCiAgICAg ICAgMCB6ZXJvIGZpbGwgcGFnZXMgcHJlemVyb2VkCiAgICAgICAgMCBpbnRyYW5zaXQgYmxvY2tp bmcgcGFnZSBmYXVsdHMKICAgIDg5OTE3IHRvdGFsIFZNIGZhdWx0cyB0YWtlbgogICAgICAgIDAg cGFnZXMgYWZmZWN0ZWQgYnkga2VybmVsIHRocmVhZCBjcmVhdGlvbgogICA0MTcyNTkgcGFnZXMg YWZmZWN0ZWQgYnkgIGZvcmsoKQogICAxMjEyNTQgcGFnZXMgYWZmZWN0ZWQgYnkgdmZvcmsoKQog ICAgICAgIDAgcGFnZXMgYWZmZWN0ZWQgYnkgcmZvcmsoKQogICAgICAgIDAgcGFnZXMgY2FjaGVk CiAgICA5MDQxMSBwYWdlcyBmcmVlZAogICAgICAgIDAgcGFnZXMgZnJlZWQgYnkgZGFlbW9uCiAg ICAgICAgMCBwYWdlcyBmcmVlZCBieSBleGl0aW5nIHByb2Nlc3NlcwogICAgIDM3NjcgcGFnZXMg YWN0aXZlCiAgICAgMjcyMSBwYWdlcyBpbmFjdGl2ZQogICAgICAgMTAgcGFnZXMgaW4gVk0gY2Fj aGUKICAgIDE3OTg1IHBhZ2VzIHdpcmVkIGRvd24KICAgMjI0Nzc5IHBhZ2VzIGZyZWUKICAgICA0 MDk2IGJ5dGVzIHBlciBwYWdlCiAgICAyMTMzOCB0b3RhbCBuYW1lIGxvb2t1cHMKICAgICAgICAg IGNhY2hlIGhpdHMgKDg0JSBwb3MgKyA3JSBuZWcpIHN5c3RlbSAwJSBwZXItZGlyZWN0b3J5CiAg ICAgICAgICBkZWxldGlvbnMgMCUsIGZhbHNlaGl0cyAwJSwgdG9vbG9uZyAwJQoKLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tCnZtc3RhdCAtbQoKICAgICAgICAgVHlwZSBJblVzZSBNZW1Vc2UgSGlnaFVzZSBSZXF1 ZXN0cyAgU2l6ZShzKQogICAgICAgY3RsbWVtICA1MDYyIDEwMTEzSyAgICAgICAtICAgICA1MDYy ICAxMjgsMjA0OAogICAgICAgY3RsYmxrICAgMjAwICAxNjAwSyAgICAgICAtICAgICAgMjAwICAK ICAgICAgIGlzYWRldiAgICAgOCAgICAgMUsgICAgICAgLSAgICAgICAgOCAgMTI4CiAgICAgIHJh bWRpc2sgICAgIDEgIDQwOTZLICAgICAgIC0gICAgICAgIDEgIAogICAgICBhY3BpZGV2ICAgIDI0 ICAgICAySyAgICAgICAtICAgICAgIDI0ICA2NAogICAgICAgZmVlZGVyICAgIDEyICAgICAxSyAg ICAgICAtICAgICAgIDE0ICAzMiwxMjgKICAgICAgICAgY2RldiAgICAgOSAgICAgM0sgICAgICAg LSAgICAgICAgOSAgMjU2CiAgICAgIGN0bHBvb2wgICA1MzIgICAxNDJLICAgICAgIC0gICAgICA1 MzIgIDMyLDUxMgogICAgICAgIHNpZ2lvICAgICAxICAgICAxSyAgICAgICAtICAgICAgICAxICA2 NAogICAgIGZpbGVkZXNjICAgIDQ0ICAgIDIzSyAgICAgICAtICAgICAxMDc5ICA1MTIsMTAyNAog ICAgICAgICBrZW52ICAgIDY1ICAgIDExSyAgICAgICAtICAgICAgIDczICAxNiwzMiw2NCwxMjgK ICAgICAgIGtxdWV1ZSAgICAgMCAgICAgMEsgICAgICAgLSAgICAgICA0OCAgMjU2LDIwNDgKICAg ICBwY2lfbGluayAgICAgOCAgICAgMUsgICAgICAgLSAgICAgICAgOCAgMTYsMTI4CiAgICBwcm9j LWFyZ3MgICAgMjUgICAgIDJLICAgICAgIC0gICAgICA5NDYgIDE2LDMyLDY0LDEyOCwyNTYKICAg ICAgICBoaG9vayAgICAgMiAgICAgMUsgICAgICAgLSAgICAgICAgMiAgMTI4CiAgICAgIGl0aHJl YWQgICAgNjEgICAgMTFLICAgICAgIC0gICAgICAgNjEgIDMyLDEyOCwyNTYKICAgICAgIGtiZG11 eCAgICAgNiAgICAxOEsgICAgICAgLSAgICAgICAgNiAgMTYsNTEyLDEwMjQsMjA0OAogICAgICAg S1RSQUNFICAgMTAwICAgIDEzSyAgICAgICAtICAgICAgMTAwICAxMjgKICAgICAgICBtaXhlciAg ICAgMSAgICAgNEsgICAgICAgLSAgICAgICAgMSAgNDA5NgogICAgICAgbGlua2VyICAgMTY4ICAg MjUzSyAgICAgICAtICAgICAgMTg0ICAxNiwzMiw2NCwxMjgsMjU2LDUxMiwxMDI0LDIwNDgsNDA5 NgogICAgICAgIGxvY2tmICAgIDIzICAgICAzSyAgICAgICAtICAgICAgIDQzICA2NCwxMjgKICAg bG9naW5jbGFzcyAgICAgMiAgICAgMUsgICAgICAgLSAgICAgICAxNyAgNjQKICAgICAgICAgIExF RCAgICAgNCAgICAgMUsgICAgICAgLSAgICAgICAgNCAgMTYsMTI4CiAgICAgICBpcDZuZHAgICAg IDkgICAgIDFLICAgICAgIC0gICAgICAgIDkgIDY0LDEyOAogICAgICAgICB0ZW1wICAgIDIyICAg ICAxSyAgICAgICAtICAgICAyNzM0ICAxNiwzMiw2NCwxMjgsMjU2LDEwMjQsMjA0OCw0MDk2CiAg ICAgICBkZXZidWYgICA0MjMgMjA5NDdLICAgICAgIC0gICAgICA0MzYgIDE2LDMyLDY0LDEyOCwy NTYsNTEyLDEwMjQsMjA0OCw0MDk2CiAgICAgICBtb2R1bGUgICA0MzMgICAgNTVLICAgICAgIC0g ICAgICA0MzMgIDEyOAogICAgIG10eF9wb29sICAgICAyICAgIDE2SyAgICAgICAtICAgICAgICAy ICAKICAgIENBTSBxdWV1ZSAgICAxNiAgICAgMUsgICAgICAgLSAgICAgICA2MSAgMTYsMzIKICAg ICAgc3VicHJvYyAgICA5NiAgIDE5OUsgICAgICAgLSAgICAgMTEzMSAgNTEyLDQwOTYKICAgICAg ICAgcHJvYyAgICAgMiAgICAxNksgICAgICAgLSAgICAgICAgMiAgCiAgICAgIHNlc3Npb24gICAg MjEgICAgIDNLICAgICAgIC0gICAgICAgMzcgIDEyOAogICAgICAgICBwZ3JwICAgIDIyICAgICAz SyAgICAgICAtICAgICAgIDQxICAxMjgKICAgICAgICAgY3JlZCAgICAzOCAgICAgNksgICAgICAg LSAgICAgMzcwMiAgNjQsMjU2CiAgICAgIHVpZGluZm8gICAgIDQgICAgIDNLICAgICAgIC0gICAg ICAgMTggIDEyOCwyMDQ4CiAgICAgICBwbGltaXQgICAgMTMgICAgIDRLICAgICAgIC0gICAgICAz NDYgIDI1NgogICAgICBDQU0gU0lNICAgICA0ICAgICAxSyAgICAgICAtICAgICAgICA0ICAyNTYK ICAgIHN5c2N0bHRtcCAgICAgMCAgICAgMEsgICAgICAgLSAgICAgIDIzMSAgMTYsMzIsNjQsMTI4 LDQwOTYKICAgIHN5c2N0bG9pZCAgMjIwMyAgIDExMEsgICAgICAgLSAgICAgMjIzOSAgMTYsMzIs NjQsMTI4CiAgICAgICBzeXNjdGwgICAgIDAgICAgIDBLICAgICAgIC0gICAgICAyNDMgIDE2LDMy LDY0CiAgICAgIHRpZGhhc2ggICAgIDEgICAgMTZLICAgICAgIC0gICAgICAgIDEgIAogICAgICAg ICB1bXR4ICAgMTc0ICAgIDIySyAgICAgICAtICAgICAgMTc0ICAxMjgKICAgICBwMTAwMy4xYiAg ICAgMSAgICAgMUsgICAgICAgLSAgICAgICAgMSAgMTYKICAgICAgICAgU1dBUCAgICAgMiAgIDI3 N0sgICAgICAgLSAgICAgICAgMiAgNjQKICAgICAgIGJ1cy1zYyAgICAzMSAgICA1NksgICAgICAg LSAgICAgMTI1NCAgMTYsMzIsMTI4LDI1Niw1MTIsMTAyNCwyMDQ4LDQwOTYKICAgICAgICAgIGJ1 cyAgIDg5NSAgICA3NEsgICAgICAgLSAgICAgMjc1MiAgMTYsMzIsNjQsMTI4LDI1NiwxMDI0CiAg ICAgIGRldnN0YXQgICAgIDYgICAgMTNLICAgICAgIC0gICAgICAgIDYgIDMyLDQwOTYKIGV2ZW50 aGFuZGxlciAgICA4NiAgICAgN0sgICAgICAgLSAgICAgICA4NiAgNjQsMTI4CiAgICAgICAgIGtv YmogICAzMDggIDEyMzJLICAgICAgIC0gICAgICAzOTMgIDQwOTYKICAgICAgUGVyLWNwdSAgICAg MSAgICAgMUsgICAgICAgLSAgICAgICAgMSAgMzIKICAgICAgICAgcm1hbiAgICA5NiAgICAxMksg ICAgICAgLSAgICAgIDQ2MiAgMzIsMTI4CiAgICAgICAgIHNidWYgICAgIDAgICAgIDBLICAgICAg IC0gICAgICA1ODggIDE2LDMyLDY0LDEyOCwyNTYsNTEyLDEwMjQsMjA0OCw0MDk2CiAgZGRiX2Nh cHR1cmUgICAgIDEgICAgNDhLICAgICAgIC0gICAgICAgIDEgIAogICAgICAgIHN0YWNrICAgICAw ICAgICAwSyAgICAgICAtICAgICAgICAyICAyNTYKICAgIHRhc2txdWV1ZSAgICAyNSAgICAgMksg ICAgICAgLSAgICAgICAyNSAgMTYsMzIsMTI4CiAgICAgICBVbml0bm8gICAgMTggICAgIDJLICAg ICAgIC0gICAgICAyNTQgIDMyLDY0CiAgICAgYWNwaWludHIgICAgIDEgICAgIDFLICAgICAgIC0g ICAgICAgIDEgIDY0CiAgICAgICBhY3BpY2EgIDIwNzcgICAyMzNLICAgICAgIC0gICAgMjQ0Njgg IDE2LDMyLDY0LDEyOCwyNTYsMTAyNCw0MDk2CiAgICAgIFdpdG5lc3MgICAgIDEgICAxMjhLICAg ICAgIC0gICAgICAgIDEgIAogICAgICAgICAgaW92ICAgICAwICAgICAwSyAgICAgICAtICAgICAg NTY0ICAxNiwzMiw2NCwxMjgsMjU2LDUxMgogICAgICAgc2VsZWN0ICAgIDEyICAgICAySyAgICAg ICAtICAgICAgIDEyICAxMjgKICAgICBpb2N0bG9wcyAgICAgMCAgICAgMEsgICAgICAgLSAgICAg IDcwMCAgMTYsMzIsNjQsMTI4LDI1Niw1MTIsMTAyNAogICAgICAgICAgbXNnICAgICA0ICAgIDMw SyAgICAgICAtICAgICAgICA0ICAyMDQ4LDQwOTYKICAgICAgICAgIHNlbSAgICAgNCAgIDEwNksg ICAgICAgLSAgICAgICAgNCAgMjA0OCw0MDk2CiAgICAgICAgICBzaG0gICAgIDEgICAgMjBLICAg ICAgIC0gICAgICAgIDEgIAogICAgICAgICAgdHR5ICAgIDE5ICAgIDE5SyAgICAgICAtICAgICAg IDIxICAxMDI0LDIwNDgKICAgICBtYnVmX3RhZyAgICAgMCAgICAgMEsgICAgICAgLSAgICAgICA1 MiAgMzIKICAgICAgICBzaG1mZCAgICAgMSAgICAgOEsgICAgICAgLSAgICAgICAgMSAgCiAgICAg YWNwaXRhc2sgICAgIDEgICAgIDJLICAgICAgIC0gICAgICAgIDEgIDIwNDgKICAgICAgICAgIHBj YiAgICAyMSAgIDE1N0sgICAgICAgLSAgICAgIDEwMCAgMTYsMzIsMTI4LDEwMjQsMjA0OCw0MDk2 CiAgICAgICBzb25hbWUgICAgIDUgICAgIDFLICAgICAgIC0gICAgICA4NzYgIDE2LDMyLDEyOAog ICAgICAgYmlvYnVmICAgICA3ICAgICA3SyAgICAgICAtICAgICAgICA3ICAxMDI0CiAgICAgdmZz Y2FjaGUgICAgIDEgIDEwMjRLICAgICAgIC0gICAgICAgIDEgIAogICAgIHZmc19oYXNoICAgICAx ICAgNTEySyAgICAgICAtICAgICAgICAxICAKICAgICAgIHZub2RlcyAgICAgMiAgICAgMUsgICAg ICAgLSAgICAgICAgMiAgMjU2CiAgICAgICBVU0JkZXYgICAgIDQgICAgIDJLICAgICAgIC0gICAg ICAgIDQgIDY0LDEyOCwxMDI0CiAgdm5vZGVtYXJrZXIgICAgIDAgICAgIDBLICAgICAgIC0gICAg ICA0MjAgIDUxMgogICAgICAgIG1vdW50ICAgIDcwICAgICAzSyAgICAgICAtICAgICAgMTQwICAx NiwzMiw2NCwxMjgsMjU2CiAgICAgICAgICBCUEYgICAgMTYgICAgMTlLICAgICAgIC0gICAgICAg MTYgIDEyOCw1MTIsNDA5NgogIGV0aGVyX211bHRpICAgIDUxICAgICAzSyAgICAgICAtICAgICAg IDkwICAxNiwzMiw2NAogICAgICAgaWZhZGRyICAgIDkzICAgIDE4SyAgICAgICAtICAgICAgIDk1 ICAzMiw2NCwxMjgsMjU2LDUxMiw0MDk2CiAgICAgICAgaWZuZXQgICAgIDcgICAgMTNLICAgICAg IC0gICAgICAgIDcgIDEyOCwyMDQ4CiAgICAgICAgICBVU0IgICAgIDcgICAgIDNLICAgICAgIC0g ICAgICAgIDcgIDE2LDMyLDEyOCwyMDQ4CiAgICAgICBhcnBjb20gICAgIDMgICAgIDFLICAgICAg IC0gICAgICAgIDMgIDE2CiAgICAgIGxsdGFibGUgICAgMjEgICAgIDlLICAgICAgIC0gICAgICAg MjMgIDI1Niw1MTIKICAgQ0FNIHBlcmlwaCAgICAgNiAgICAgMksgICAgICAgLSAgICAgICAyMiAg MTYsMzIsNjQsMTI4LDI1NgogICAgICBDQU0gWFBUICAgIDQzICAgIDIwSyAgICAgICAtICAgICAg MTEzICAzMiw2NCwxMjgsMTAyNCwyMDQ4CiAgICAgIGFjcGlzZW0gICAgMTYgICAgIDJLICAgICAg IC0gICAgICAgMTYgIDEyOAogICAgIHJvdXRldGJsICAgIDQyICAgICA2SyAgICAgICAtICAgICAg MjI2ICAzMiw2NCwxMjgsMjU2LDUxMgp2bmV0X2RhdGFfZnJlZSAgICAgMSAgICAgMUsgICAgICAg LSAgICAgICAgMSAgMzIKICAgIHZuZXRfZGF0YSAgICAgMSAgICAyOEsgICAgICAgLSAgICAgICAg MSAgCiAgICAgICAgIHZuZXQgICAgIDEgICAgIDFLICAgICAgIC0gICAgICAgIDEgIDY0CiAgICAg ICAgIGlnbXAgICAgIDYgICAgIDJLICAgICAgIC0gICAgICAgIDYgIDI1NgogICAgIGluX211bHRp ICAgICA0ICAgICAxSyAgICAgICAtICAgICAgICA2ICAyNTYKICAgIHNjdHBfaXRlciAgICAgMCAg ICAgMEsgICAgICAgLSAgICAgICAgNSAgMjU2CiAgICAgc2N0cF9pZm4gICAgIDQgICAgIDFLICAg ICAgIC0gICAgICAgIDQgIDEyOAogICAgIHNjdHBfaWZhICAgICA3ICAgICAxSyAgICAgICAtICAg ICAgICA3ICAxMjgKICAgICBzY3RwX3ZyZiAgICAgMSAgICAgMUsgICAgICAgLSAgICAgICAgMSAg NjQKICAgIHNjdHBfYV9pdCAgICAgMCAgICAgMEsgICAgICAgLSAgICAgICAgNSAgMTYKICAgIGhv c3RjYWNoZSAgICAgMSAgICAyOEsgICAgICAgLSAgICAgICAgMSAgCiAgICAgc3luY2FjaGUgICAg IDEgICAgOTZLICAgICAgIC0gICAgICAgIDEgIAogICAgICBlbnRyb3B5ICAxMDI0ICAgIDY0SyAg ICAgICAtICAgICAxMDI0ICA2NAogICAgaW42X211bHRpICAgIDIwICAgICAzSyAgICAgICAtICAg ICAgIDIwICAzMiwyNTYKICAgICAgICAgIG1sZCAgICAgNiAgICAgMUsgICAgICAgLSAgICAgICAg NiAgMTI4CiAgICAgICAgICBycGMgICAgMTYgICAgIDZLICAgICAgIC0gICAgICA2MTkgIDMyLDY0 LDEyOCwyNTYsNTEyLDEwMjQKYXVkaXRfZXZjbGFzcyAgIDE3OSAgICAgNksgICAgICAgLSAgICAg IDIxOCAgMzIKICAgICAgamJsb2NrcyAgICAgMiAgICAgMUsgICAgICAgLSAgICAgICAgMiAgMTI4 LDI1NgogICAgIHNhdmVkaW5vICAgICAwICAgICAwSyAgICAgICAtICAgICAgIDE4ICAyNTYKICAg ICAgICBzYmRlcCAgICAgMCAgICAgMEsgICAgICAgLSAgICAgICAyMyAgNjQKICAgICAganNlZ2Rl cCAgICAxNyAgICAgMksgICAgICAgLSAgICAgIDE5NiAgNjQKICAgICAgICAganNlZyAgICAgMSAg ICAgMUsgICAgICAgLSAgICAgICAxMiAgMTI4CiAgICBqZnJlZWZyYWcgICAgIDAgICAgIDBLICAg ICAgIC0gICAgICAgIDEgIDEyOAogICAgICBqbmV3YmxrICAgICAwICAgICAwSyAgICAgICAtICAg ICAgIDM1ICAxMjgKICAgICAganJlbXJlZiAgICAgMCAgICAgMEsgICAgICAgLSAgICAgICA3NyAg MTI4CiAgICAgIGphZGRyZWYgICAgIDAgICAgIDBLICAgICAgIC0gICAgICAgODMgIDEyOAogICAg IGZyZWV3b3JrICAgICAyICAgICAxSyAgICAgICAtICAgICAgIDMxICAzMiwxMjgKICAgIG5ld2Rp cmJsayAgICAgMCAgICAgMEsgICAgICAgLSAgICAgICAgNiAgNjQKICAgICAgIGRpcnJlbSAgICAg OCAgICAgMUsgICAgICAgLSAgICAgICA2NSAgMTI4CiAgICAgICAgbWtkaXIgICAgIDAgICAgIDBL ICAgICAgIC0gICAgICAgMTIgIDEyOAogICAgICAgZGlyYWRkICAgICA4ICAgICAxSyAgICAgICAt ICAgICAgIDcxICAxMjgKICAgICBmcmVlZmlsZSAgICAgMCAgICAgMEsgICAgICAgLSAgICAgICAy NyAgNjQKICAgICBmcmVlYmxrcyAgICAgMSAgICAgMUsgICAgICAgLSAgICAgICAyOCAgMTI4CiAg ICAgZnJlZWZyYWcgICAgIDAgICAgIDBLICAgICAgIC0gICAgICAgIDEgIDEyOAogICAgICAgbmV3 YmxrICAgICAyICAgIDY1SyAgICAgICAtICAgICAgIDM2ICAyNTYKICAgIGJtc2FmZW1hcCAgICAg MiAgICAgOUsgICAgICAgLSAgICAgICAyMiAgMjU2CiAgICAgaW5vZGVkZXAgICAgMTAgICA1MTdL ICAgICAgIC0gICAgICAxMTUgIDUxMgogICAgICBwYWdlZGVwICAgICAyICAgIDY1SyAgICAgICAt ICAgICAgIDE4ICAyNTYKICB1ZnNfZGlyaGFzaCAgICAzMCAgICAgNksgICAgICAgLSAgICAgICAz MCAgMTYsMzIsNjQsNTEyCiAgICB1ZnNfbW91bnQgICAgIDMgICAgMTNLICAgICAgIC0gICAgICAg IDMgIDUxMiw0MDk2CiAgICB2bV9wZ2RhdGEgICAgIDIgICAxMjlLICAgICAgIC0gICAgICAgIDIg IDEyOAogICAgICAgREVWRlMxICAgIDgzICAgIDQySyAgICAgICAtICAgICAgIDg4ICA1MTIKICAg ICAgIERFVkZTMyAgIDEwMyAgICAyNksgICAgICAgLSAgICAgIDExNSAgMjU2CiAgICAgICAgREVW RlMgICAgMTUgICAgIDFLICAgICAgIC0gICAgICAgMTYgIDE2LDEyOAogICAgICAgREVWRlNQICAg ICAyICAgICAxSyAgICAgICAtICAgICAgICAyICA2NApORlNDTCBkaXJvZmZkaXJvZmYgICAgIDEg ICAgIDFLICAgICAgIC0gICAgICAgIDEgIDUxMgogICAgIGF0a2JkZGV2ICAgICAyICAgICAxSyAg ICAgICAtICAgICAgICAyICA2NAogICAgICAgTkZTIGZoICAgMTM4ICAgICA5SyAgICAgICAtICAg ICAgNTk1ICAzMiw2NAogICAgICAgYXBtZGV2ICAgICAxICAgICAxSyAgICAgICAtICAgICAgICAx ICAxMjgKICAgIG5ld25mc21udCAgICAgMiAgICAgMksgICAgICAgLSAgICAgICAgMiAgMTAyNAog ICAgcGZzX25vZGVzICAgIDIxICAgICA2SyAgICAgICAtICAgICAgIDIxICAyNTYKICAgICAgYXRh X3BjaSAgICAgMSAgICAgMUsgICAgICAgLSAgICAgICAgMSAgNjQKICAgICAgICAgR0VPTSAgICA1 MiAgICAxMUsgICAgICAgLSAgICAgIDM3MCAgMTYsMzIsNjQsMTI4LDI1Niw1MTIsMTAyNCwyMDQ4 CiAgICAgIHNjc2lfY2QgICAgIDAgICAgIDBLICAgICAgIC0gICAgICAgIDQgIDE2CiAgICAgIGlv X2FwaWMgICAgIDEgICAgIDJLICAgICAgIC0gICAgICAgIDEgIDIwNDgKQ0FNIGRldiBxdWV1ZSAg ICAgNCAgICAgMUsgICAgICAgLSAgICAgICAgNCAgMTI4CiAgICAgbmV4dXNkZXYgICAgIDMgICAg IDFLICAgICAgIC0gICAgICAgIDMgIDE2CiAgICAgICAgIGFjOTcgICAgIDIgICAgIDFLICAgICAg IC0gICAgICAgIDIgIDE2LDUxMgogICAgIDgwMjExdmFwICAgICAzICAgICA1SyAgICAgICAtICAg ICAgICAzICAxMjgsMjU2LDQwOTYKICAgICA4MDIxMWNvbSAgICAgMSAgICAgOEsgICAgICAgLSAg ICAgICAgMSAgCiAgICA4MDIxMW5vZGUgICAgIDIgICAgMTNLICAgICAgIC0gICAgICAgIDMgIDEw MjQKICAgIDgwMjExc2NhbiAgICAgMiAgICAgNksgICAgICAgLSAgICAgICAgMiAgMjA0OCw0MDk2 CiAgd3RhcCBwbHVnaW4gICAgIDEgICAgMTJLICAgICAgIC0gICAgICAgIDEgIAogICAgICAgICB3 dGFwICAgICA0ICAgICAySyAgICAgICAtICAgICAgICA0ICA2NCwxMjgsMjU2LDEwMjQKCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQp2bXN0YXQgLXoKCklURU0gICAgICAgICAgICAgICAgICAgU0laRSAgTElNSVQg ICAgIFVTRUQgICAgIEZSRUUgICAgICBSRVEgRkFJTCBTTEVFUAoKVU1BIEtlZ3M6ICAgICAgICAg ICAgICAgMjA4LCAgICAgIDAsICAgICAxNDksICAgICAgIDQsICAgICAxNDksICAgMCwgICAwClVN QSBab25lczogICAgICAgICAgICAgIDUxMiwgICAgICAwLCAgICAgMTQ5LCAgICAgICA1LCAgICAg MTQ5LCAgIDAsICAgMApVTUEgU2xhYnM6ICAgICAgICAgICAgICA1NjgsICAgICAgMCwgICAgMzYx MiwgICAgICAgNywgICAgNDEwNywgICAwLCAgIDAKVU1BIFJDbnRTbGFiczogICAgICAgICAgNTY4 LCAgICAgIDAsICAgICAzMjMsICAgICAgIDYsICAgICAzMjMsICAgMCwgICAwClVNQSBIYXNoOiAg ICAgICAgICAgICAgIDI1NiwgICAgICAwLCAgICAgICAzLCAgICAgIDEyLCAgICAgICAzLCAgIDAs ICAgMAoxNiBCdWNrZXQ6ICAgICAgICAgICAgICAxNTIsICAgICAgMCwgICAgICA5NCwgICAgICAg NiwgICAgICA5NCwgICAwLCAgIDAKMzIgQnVja2V0OiAgICAgICAgICAgICAgMjgwLCAgICAgIDAs ICAgICAgNDMsICAgICAgMTMsICAgICAgNDMsICAgMCwgICAwCjY0IEJ1Y2tldDogICAgICAgICAg ICAgIDUzNiwgICAgICAwLCAgICAgIDM0LCAgICAgICAxLCAgICAgIDM0LCAgNjUsICAgMAoxMjgg QnVja2V0OiAgICAgICAgICAgIDEwNDgsICAgICAgMCwgICAgICA0OCwgICAgICAgMCwgICAgICA0 OCwgNTcwLCAgIDAKVk0gT0JKRUNUOiAgICAgICAgICAgICAgMjMyLCAgICAgIDAsICAgICA5NDUs ICAgICAgNjMsICAgMTIxNDAsICAgMCwgICAwCk1BUDogICAgICAgICAgICAgICAgICAgIDIzMiwg ICAgICAwLCAgICAgICA3LCAgICAgIDI1LCAgICAgICA3LCAgIDAsICAgMApLTUFQIEVOVFJZOiAg ICAgICAgICAgICAxMjAsICA1NTgzMSwgICAgICAyNiwgICAgIDEyOSwgICAgMTY3MiwgICAwLCAg IDAKTUFQIEVOVFJZOiAgICAgICAgICAgICAgMTIwLCAgICAgIDAsICAgICA1NjUsICAgICAxMTcs ICAgMjcwMTAsICAgMCwgICAwCmZha2VwZzogICAgICAgICAgICAgICAgIDEyMCwgICAgICAwLCAg ICAgICAwLCAgICAgICAwLCAgICAgICAwLCAgIDAsICAgMAptdF96b25lOiAgICAgICAgICAgICAg IDQxMTIsICAgICAgMCwgICAgIDMxNywgICAgICAxMCwgICAgIDMxNywgICAwLCAgIDAKMTY6ICAg ICAgICAgICAgICAgICAgICAgIDE2LCAgICAgIDAsICAgICAgMTEsICAgICAxNTcsICAgICAgMTIs ICAgMCwgICAwCjE2OiAgICAgICAgICAgICAgICAgICAgICAxNiwgICAgICAwLCAgICAgODA2LCAg ICAgMjAyLCAgICAxMTgzLCAgIDAsICAgMAoxNjogICAgICAgICAgICAgICAgICAgICAgMTYsICAg ICAgMCwgICAgICAgNCwgICAgIDE2NCwgICAgIDE5OSwgICAwLCAgIDAKMTY6ICAgICAgICAgICAg ICAgICAgICAgIDE2LCAgICAgIDAsICAgICAgMzgsICAgICAxMzAsICAgIDg5NTEsICAgMCwgICAw CjE2OiAgICAgICAgICAgICAgICAgICAgICAxNiwgICAgICAwLCAgICAgIDQwLCAgICAgMTI4LCAg ICAgIDc4LCAgIDAsICAgMAoxNjogICAgICAgICAgICAgICAgICAgICAgMTYsICAgICAgMCwgICAg IDIyOCwgICAgIDEwOCwgICAgMTI4NywgICAwLCAgIDAKMTY6ICAgICAgICAgICAgICAgICAgICAg IDE2LCAgICAgIDAsICAgICAgIDAsICAgICAgIDAsICAgICAgIDAsICAgMCwgICAwCjE2OiAgICAg ICAgICAgICAgICAgICAgICAxNiwgICAgICAwLCAgICAgICAzLCAgICAgMTY1LCAgICAxMTE3LCAg IDAsICAgMAozMjogICAgICAgICAgICAgICAgICAgICAgMzIsICAgICAgMCwgICAgIDI5OSwgICAg IDEwNSwgICAgIDMzMiwgICAwLCAgIDAKMzI6ICAgICAgICAgICAgICAgICAgICAgIDMyLCAgICAg IDAsICAgIDEwMDUsICAgICAxMDYsICAgIDExOTksICAgMCwgICAwCjMyOiAgICAgICAgICAgICAg ICAgICAgICAzMiwgICAgICAwLCAgICAgIDIzLCAgICAgMTc5LCAgICAgMjUwLCAgIDAsICAgMAoz MjogICAgICAgICAgICAgICAgICAgICAgMzIsICAgICAgMCwgICAgICAzMywgICAgIDE2OSwgICAg MTQ5MiwgICAwLCAgIDAKMzI6ICAgICAgICAgICAgICAgICAgICAgIDMyLCAgICAgIDAsICAgICAg IDMsICAgICAxOTksICAgICAgIDUsICAgMCwgICAwCjMyOiAgICAgICAgICAgICAgICAgICAgICAz MiwgICAgICAwLCAgICAgMTMwLCAgICAgMjc0LCAgICAgNjY3LCAgIDAsICAgMAozMjogICAgICAg ICAgICAgICAgICAgICAgMzIsICAgICAgMCwgICAgICA2MywgICAgIDEzOSwgICAgIDMyMywgICAw LCAgIDAKMzI6ICAgICAgICAgICAgICAgICAgICAgIDMyLCAgICAgIDAsICAgICAgMTIsICAgICAx OTAsICAgICAxOTAsICAgMCwgICAwCjY0OiAgICAgICAgICAgICAgICAgICAgICA2NCwgICAgICAw LCAgICAgIDEyLCAgICAgMTAwLCAgICAgIDQyLCAgIDAsICAgMAo2NDogICAgICAgICAgICAgICAg ICAgICAgNjQsICAgICAgMCwgICAgIDI3NiwgICAgICA2MCwgICAgIDMzNywgICAwLCAgIDAKNjQ6 ICAgICAgICAgICAgICAgICAgICAgIDY0LCAgICAgIDAsICAgIDEwNTcsICAgICAxMTksICAgIDM4 OTgsICAgMCwgICAwCjY0OiAgICAgICAgICAgICAgICAgICAgICA2NCwgICAgICAwLCAgICAgNDgx LCAgICAgNTI3LCAgIDEwODc2LCAgIDAsICAgMAo2NDogICAgICAgICAgICAgICAgICAgICAgNjQs ICAgICAgMCwgICAgICAyOCwgICAgICA4NCwgICAgICA1MiwgICAwLCAgIDAKNjQ6ICAgICAgICAg ICAgICAgICAgICAgIDY0LCAgICAgIDAsICAgICA1NDUsICAgICAgNzEsICAgIDExODIsICAgMCwg ICAwCjY0OiAgICAgICAgICAgICAgICAgICAgICA2NCwgICAgICAwLCAgICAgMjM5LCAgICAgIDk3 LCAgICAgNjc3LCAgIDAsICAgMAo2NDogICAgICAgICAgICAgICAgICAgICAgNjQsICAgICAgMCwg ICAgICAyOCwgICAgIDE0MCwgICAgIDU1NiwgICAwLCAgIDAKMTI4OiAgICAgICAgICAgICAgICAg ICAgMTI4LCAgICAgIDAsICAgICAgMjgsICAgICAgMzAsICAgICAgMzYsICAgMCwgICAwCjEyODog ICAgICAgICAgICAgICAgICAgIDEyOCwgICAgICAwLCAgICAgNTkyLCAgICAgIDQ2LCAgICAgNzQ1 LCAgIDAsICAgMAoxMjg6ICAgICAgICAgICAgICAgICAgICAxMjgsICAgICAgMCwgICAgICAyMiwg ICAgICA5NCwgICAgIDE5MCwgICAwLCAgIDAKMTI4OiAgICAgICAgICAgICAgICAgICAgMTI4LCAg ICAgIDAsICAgIDE2MTYsICAgICAgNjYsICAgIDI2NTQsICAgMCwgICAwCjEyODogICAgICAgICAg ICAgICAgICAgIDEyOCwgICAgICAwLCAgICAgMTE0LCAgICAgIDYwLCAgICAgMTk4LCAgIDAsICAg MAoxMjg6ICAgICAgICAgICAgICAgICAgICAxMjgsICAgICAgMCwgICAgIDYzOCwgICAgICAyOSwg ICAgMTI3MiwgICAwLCAgIDAKMTI4OiAgICAgICAgICAgICAgICAgICAgMTI4LCAgICAgIDAsICAg ICAgNDMsICAgICAgNDQsICAgICAgNTksICAgMCwgICAwCjEyODogICAgICAgICAgICAgICAgICAg IDEyOCwgICAgICAwLCAgICAgNDc2LCAgICAgIDQ2LCAgICAgODU3LCAgIDAsICAgMAoyNTY6ICAg ICAgICAgICAgICAgICAgICAyNTYsICAgICAgMCwgICAgICAxMiwgICAgICAxOCwgICAgICAxNywg ICAwLCAgIDAKMjU2OiAgICAgICAgICAgICAgICAgICAgMjU2LCAgICAgIDAsICAgICAgMTIsICAg ICAgMzMsICAgICAgNTYsICAgMCwgICAwCjI1NjogICAgICAgICAgICAgICAgICAgIDI1NiwgICAg ICAwLCAgICAgIDQ5LCAgICAgIDI2LCAgICAxODk2LCAgIDAsICAgMAoyNTY6ICAgICAgICAgICAg ICAgICAgICAyNTYsICAgICAgMCwgICAgICAgMiwgICAgICAyOCwgICAgICAxNywgICAwLCAgIDAK MjU2OiAgICAgICAgICAgICAgICAgICAgMjU2LCAgICAgIDAsICAgICAgMjYsICAgICAgMTksICAg ICAzNjQsICAgMCwgICAwCjI1NjogICAgICAgICAgICAgICAgICAgIDI1NiwgICAgICAwLCAgICAg MTk0LCAgICAgIDQ2LCAgICAgNDU3LCAgIDAsICAgMAoyNTY6ICAgICAgICAgICAgICAgICAgICAy NTYsICAgICAgMCwgICAgICA0MSwgICAgICAxOSwgICAgICA0MywgICAwLCAgIDAKMjU2OiAgICAg ICAgICAgICAgICAgICAgMjU2LCAgICAgIDAsICAgICAgIDcsICAgICAgMjMsICAgICAyMjQsICAg MCwgICAwCjUxMjogICAgICAgICAgICAgICAgICAgIDUxMiwgICAgICAwLCAgICAgMzM1LCAgICAg IDI5LCAgICAgOTM2LCAgIDAsICAgMAo1MTI6ICAgICAgICAgICAgICAgICAgICA1MTIsICAgICAg MCwgICAgICA2MiwgICAgICAxNSwgICAgMTA5NywgICAwLCAgIDAKNTEyOiAgICAgICAgICAgICAg ICAgICAgNTEyLCAgICAgIDAsICAgICAgIDEsICAgICAgMTMsICAgICA0MzMsICAgMCwgICAwCjUx MjogICAgICAgICAgICAgICAgICAgIDUxMiwgICAgICAwLCAgICAgICAxLCAgICAgIDEzLCAgICAg ICAxLCAgIDAsICAgMAo1MTI6ICAgICAgICAgICAgICAgICAgICA1MTIsICAgICAgMCwgICAgICAg MCwgICAgICAgMCwgICAgICAgMCwgICAwLCAgIDAKNTEyOiAgICAgICAgICAgICAgICAgICAgNTEy LCAgICAgIDAsICAgICAxMTYsICAgICAgMTAsICAgICA1ODAsICAgMCwgICAwCjUxMjogICAgICAg ICAgICAgICAgICAgIDUxMiwgICAgICAwLCAgICAgIDMwLCAgICAgIDMzLCAgICAgMTM3LCAgIDAs ICAgMAo1MTI6ICAgICAgICAgICAgICAgICAgICA1MTIsICAgICAgMCwgICAgICAgNCwgICAgICAx MCwgICAgIDEzMCwgICAwLCAgIDAKMTAyNDogICAgICAgICAgICAgICAgICAxMDI0LCAgICAgIDAs ICAgICAgIDMsICAgICAgIDUsICAgICAgMTksICAgMCwgICAwCjEwMjQ6ICAgICAgICAgICAgICAg ICAgMTAyNCwgICAgICAwLCAgICAgIDExLCAgICAgICAxLCAgICAgIDExLCAgIDAsICAgMAoxMDI0 OiAgICAgICAgICAgICAgICAgIDEwMjQsICAgICAgMCwgICAgICAgMSwgICAgICAgNywgICAgICAg OSwgICAwLCAgIDAKMTAyNDogICAgICAgICAgICAgICAgICAxMDI0LCAgICAgIDAsICAgICAgIDUs ICAgICAgIDcsICAgICA3MTAsICAgMCwgICAwCjEwMjQ6ICAgICAgICAgICAgICAgICAgMTAyNCwg ICAgICAwLCAgICAgIDIwLCAgICAgICA4LCAgICAgIDIwLCAgIDAsICAgMAoxMDI0OiAgICAgICAg ICAgICAgICAgIDEwMjQsICAgICAgMCwgICAgICAxNSwgICAgICA1MywgICAgIDgyNiwgICAwLCAg IDAKMTAyNDogICAgICAgICAgICAgICAgICAxMDI0LCAgICAgIDAsICAgICAgIDAsICAgICAgIDAs ICAgICAgIDAsICAgMCwgICAwCjEwMjQ6ICAgICAgICAgICAgICAgICAgMTAyNCwgICAgICAwLCAg ICAgICAwLCAgICAgICA4LCAgICAgICA4LCAgIDAsICAgMAoyMDQ4OiAgICAgICAgICAgICAgICAg IDIwNDgsICAgICAgMCwgICAgICAxMCwgICAgICAgOCwgICAgICAyOCwgICAwLCAgIDAKMjA0ODog ICAgICAgICAgICAgICAgICAyMDQ4LCAgICAgIDAsICAgICAgIDQsICAgICAgIDQsICAgICAgMjgs ICAgMCwgICAwCjIwNDg6ICAgICAgICAgICAgICAgICAgMjA0OCwgICAgICAwLCAgICAgICAyLCAg ICAgICAyLCAgICAgICA4LCAgIDAsICAgMAoyMDQ4OiAgICAgICAgICAgICAgICAgIDIwNDgsICAg ICAgMCwgICAgICAgNCwgICAgICAgNCwgICAgICAgNCwgICAwLCAgIDAKMjA0ODogICAgICAgICAg ICAgICAgICAyMDQ4LCAgICAgIDAsICAgIDUwNjIsICAgICAgMTYsICAgIDUwNjQsICAgMCwgICAw CjIwNDg6ICAgICAgICAgICAgICAgICAgMjA0OCwgICAgICAwLCAgICAgICA3LCAgICAgICA1LCAg ICAgIDc1LCAgIDAsICAgMAoyMDQ4OiAgICAgICAgICAgICAgICAgIDIwNDgsICAgICAgMCwgICAg ICAgMCwgICAgICAgMCwgICAgICAgMCwgICAwLCAgIDAKMjA0ODogICAgICAgICAgICAgICAgICAy MDQ4LCAgICAgIDAsICAgICAgIDAsICAgICAgIDAsICAgICAgIDAsICAgMCwgICAwCjQwOTY6ICAg ICAgICAgICAgICAgICAgNDA5NiwgICAgICAwLCAgICAgIDQ5LCAgICAgICA1LCAgICAxMDg0LCAg IDAsICAgMAo0MDk2OiAgICAgICAgICAgICAgICAgIDQwOTYsICAgICAgMCwgICAgICAgMSwgICAg ICAgMSwgICAgICAgMywgICAwLCAgIDAKNDA5NjogICAgICAgICAgICAgICAgICA0MDk2LCAgICAg IDAsICAgICAgIDEsICAgICAgIDEsICAgICAgIDcsICAgMCwgICAwCjQwOTY6ICAgICAgICAgICAg ICAgICAgNDA5NiwgICAgICAwLCAgICAgICA3LCAgICAgICAyLCAgICAgICA3LCAgIDAsICAgMAo0 MDk2OiAgICAgICAgICAgICAgICAgIDQwOTYsICAgICAgMCwgICAgICAgMCwgICAgICAgMCwgICAg ICAgMCwgICAwLCAgIDAKNDA5NjogICAgICAgICAgICAgICAgICA0MDk2LCAgICAgIDAsICAgICAg MjQsICAgICAgIDMsICAgIDE3MzcsICAgMCwgICAwCjQwOTY6ICAgICAgICAgICAgICAgICAgNDA5 NiwgICAgICAwLCAgICAgICAyLCAgICAgICAwLCAgICAgICAyLCAgIDAsICAgMAo0MDk2OiAgICAg ICAgICAgICAgICAgIDQwOTYsICAgICAgMCwgICAgIDMwOCwgICAgICAgMywgICAgIDM5MywgICAw LCAgIDAKRmlsZXM6ICAgICAgICAgICAgICAgICAgIDgwLCAgICAgIDAsICAgICAgNzQsICAgICAg NjEsICAgIDQ4MDgsICAgMCwgICAwClRVUk5TVElMRTogICAgICAgICAgICAgIDEzNiwgICAgICAw LCAgICAgIDg4LCAgICAgIDEyLCAgICAgIDg4LCAgIDAsICAgMAp1bXR4IHBpOiAgICAgICAgICAg ICAgICAgOTYsICAgICAgMCwgICAgICAgMCwgICAgICAgMCwgICAgICAgMCwgICAwLCAgIDAKTUFD IGxhYmVsczogICAgICAgICAgICAgIDQwLCAgICAgIDAsICAgICAgIDAsICAgICAgIDAsICAgICAg IDAsICAgMCwgICAwClBST0M6ICAgICAgICAgICAgICAgICAgMTE4NCwgICAgICAwLCAgICAgIDQy LCAgICAgICA5LCAgICAxMDc3LCAgIDAsICAgMApUSFJFQUQ6ICAgICAgICAgICAgICAgIDExMTIs ICAgICAgMCwgICAgICA4MCwgICAgICAgNywgICAgICA4MCwgICAwLCAgIDAKU0xFRVBRVUVVRTog ICAgICAgICAgICAgIDg4LCAgICAgIDAsICAgICAgODgsICAgICAgMjgsICAgICAgODgsICAgMCwg ICAwClZNU1BBQ0U6ICAgICAgICAgICAgICAgIDM5MiwgICAgICAwLCAgICAgIDI1LCAgICAgIDE1 LCAgICAxMDYxLCAgIDAsICAgMApjcHVzZXQ6ICAgICAgICAgICAgICAgICAgNzIsICAgICAgMCwg ICAgICA1MCwgICAgICA1MCwgICAgICA1MCwgICAwLCAgIDAKYXVkaXRfcmVjb3JkOiAgICAgICAg ICAgOTYwLCAgICAgIDAsICAgICAgIDAsICAgICAgIDAsICAgICAgIDAsICAgMCwgICAwCm1idWZf cGFja2V0OiAgICAgICAgICAgIDI1NiwgICAgICAwLCAgICAgNTEyLCAgICAgMTQwLCAgICAxNzMx LCAgIDAsICAgMAptYnVmOiAgICAgICAgICAgICAgICAgICAyNTYsICAgICAgMCwgICAgICAgNSwg ICAgIDEzNSwgICAgNDc5NSwgICAwLCAgIDAKbWJ1Zl9jbHVzdGVyOiAgICAgICAgICAyMDQ4LCAg MjU2MDAsICAgICA2NDAsICAgICAgIDYsICAgICA2NDAsICAgMCwgICAwCm1idWZfanVtYm9fcGFn ZTogICAgICAgNDA5NiwgIDEyODAwLCAgICAgICAwLCAgICAgICAwLCAgICAgICAwLCAgIDAsICAg MAptYnVmX2p1bWJvXzlrOiAgICAgICAgIDkyMTYsICAxOTIwMCwgICAgICAgMCwgICAgICAgMCwg ICAgICAgMCwgICAwLCAgIDAKbWJ1Zl9qdW1ib18xNms6ICAgICAgIDE2Mzg0LCAgMTI4MDAsICAg ICAgIDAsICAgICAgIDAsICAgICAgIDAsICAgMCwgICAwCm1idWZfZXh0X3JlZmNudDogICAgICAg ICAgNCwgICAgICAwLCAgICAgICAwLCAgICAgICAwLCAgICAgICAwLCAgIDAsICAgMAp0dHlpbnE6 ICAgICAgICAgICAgICAgICAxNjAsICAgICAgMCwgICAgIDEyMCwgICAgICAyNCwgICAgIDI1NSwg ICAwLCAgIDAKdHR5b3V0cTogICAgICAgICAgICAgICAgMjU2LCAgICAgIDAsICAgICAgNjQsICAg ICAgMTEsICAgICAxMzYsICAgMCwgICAwCmdfYmlvOiAgICAgICAgICAgICAgICAgIDIzMiwgICAg ICAwLCAgICAgICAwLCAgICAgMTQ0LCAgICA0MDg3LCAgIDAsICAgMAphdGFfcmVxdWVzdDogICAg ICAgICAgICAzMjgsICAgICAgMCwgICAgICAgMSwgICAgICAyMywgICAgMjM5NCwgICAwLCAgIDAK YXRhX2NvbXBvc2l0ZTogICAgICAgICAgMzM2LCAgICAgIDAsICAgICAgIDAsICAgICAgIDAsICAg ICAgIDAsICAgMCwgICAwClZOT0RFOiAgICAgICAgICAgICAgICAgIDQ3MiwgICAgICAwLCAgICAg NjU3LCAgICAgICA3LCAgICAgNjg2LCAgIDAsICAgMApWTk9ERVBPTEw6ICAgICAgICAgICAgICAx MTIsICAgICAgMCwgICAgICAgMCwgICAgICAgMCwgICAgICAgMCwgICAwLCAgIDAKUyBWRlMgQ2Fj aGU6ICAgICAgICAgICAgMTA4LCAgICAgIDAsICAgICA1MTUsICAgICAgMTMsICAgIDEyNjYsICAg MCwgICAwClNUUyBWRlMgQ2FjaGU6ICAgICAgICAgIDEzMiwgICAgICAwLCAgICAgMTM0LCAgICAg IDYyLCAgICAgNDQ5LCAgIDAsICAgMApMIFZGUyBDYWNoZTogICAgICAgICAgICAzNTIsICAgICAg MCwgICAgICAgMCwgICAgICAgMCwgICAgICAgMCwgICAwLCAgIDAKTkFNRUk6ICAgICAgICAgICAg ICAgICAxMDI0LCAgICAgIDAsICAgICAgIDAsICAgICAgMTIsICAgIDkzNzksICAgMCwgICAwCk5D TE5PREU6ICAgICAgICAgICAgICAgIDUyMCwgICAgICAwLCAgICAgMTM4LCAgICAgICAyLCAgICAg MTM4LCAgIDAsICAgMApESVJIQVNIOiAgICAgICAgICAgICAgIDEwMjQsICAgICAgMCwgICAgICAz MCwgICAgICAgNiwgICAgICAzMCwgICAwLCAgIDAKY2FwYWJpbGl0eTogICAgICAgICAgICAgIDI0 LCAgICAgIDAsICAgICAgIDAsICAgICAgIDAsICAgICAgIDAsICAgMCwgICAwCnBpcGU6ICAgICAg ICAgICAgICAgICAgIDcyOCwgICAgICAwLCAgICAgICAyLCAgICAgIDEzLCAgICAgNjA2LCAgIDAs ICAgMApNb3VudHBvaW50czogICAgICAgICAgICA3NjgsICAgICAgMCwgICAgICAgNCwgICAgICAg NiwgICAgICAgNCwgICAwLCAgIDAKa3NpZ2luZm86ICAgICAgICAgICAgICAgMTEyLCAgICAgIDAs ICAgICAgNDEsICAgIDEwMTUsICAgICAxMjgsICAgMCwgICAwCml0aW1lcjogICAgICAgICAgICAg ICAgIDM0NCwgICAgICAwLCAgICAgICAxLCAgICAgIDIxLCAgICAgICAxLCAgIDAsICAgMApLTk9U RTogICAgICAgICAgICAgICAgICAxMjgsICAgICAgMCwgICAgICAgMCwgICAgICA1OCwgICAgICA0 OCwgICAwLCAgIDAKc29ja2V0OiAgICAgICAgICAgICAgICAgNjgwLCAgMjU2MDIsICAgICAgMjYs ICAgICAgMTAsICAgICAzMTIsICAgMCwgICAwCmlwcTogICAgICAgICAgICAgICAgICAgICA1Niwg ICAgODE5LCAgICAgICAwLCAgICAgICAwLCAgICAgICAwLCAgIDAsICAgMAp1ZHBfaW5wY2I6ICAg ICAgICAgICAgICAzOTIsICAyNTYwMCwgICAgICAgOSwgICAgICAyMSwgICAgIDIwOSwgICAwLCAg IDAKdWRwY2I6ICAgICAgICAgICAgICAgICAgIDE2LCAgMjU3MDQsICAgICAgIDksICAgICAxNTks ICAgICAyMDksICAgMCwgICAwCnRjcF9pbnBjYjogICAgICAgICAgICAgIDM5MiwgIDI1NjAwLCAg ICAgICA1LCAgICAgIDE1LCAgICAgIDE4LCAgIDAsICAgMAp0Y3BjYjogICAgICAgICAgICAgICAg ICA5NzYsICAyNTYwMCwgICAgICAgNSwgICAgICAgMywgICAgICAxOCwgICAwLCAgIDAKdGNwdHc6 ICAgICAgICAgICAgICAgICAgIDcyLCAgIDUxNTAsICAgICAgIDAsICAgICAxMDAsICAgICAgIDQs ICAgMCwgICAwCnN5bmNhY2hlOiAgICAgICAgICAgICAgIDE1MiwgIDE1Mzc1LCAgICAgICAwLCAg ICAgICAwLCAgICAgICAwLCAgIDAsICAgMApob3N0Y2FjaGU6ICAgICAgICAgICAgICAxMzYsICAx NTM3MiwgICAgICAgMSwgICAgICA1NSwgICAgICAgMSwgICAwLCAgIDAKdGNwcmVhc3M6ICAgICAg ICAgICAgICAgIDQwLCAgIDE2ODAsICAgICAgIDAsICAgICAgIDAsICAgICAgIDAsICAgMCwgICAw CnNhY2tob2xlOiAgICAgICAgICAgICAgICAzMiwgICAgICAwLCAgICAgICAwLCAgICAgICAwLCAg ICAgICAwLCAgIDAsICAgMApzY3RwX2VwOiAgICAgICAgICAgICAgIDEzNjgsICAyNTYwMCwgICAg ICAgMCwgICAgICAgMCwgICAgICAgMCwgICAwLCAgIDAKc2N0cF9hc29jOiAgICAgICAgICAgICAy Mjg4LCAgNDAwMDAsICAgICAgIDAsICAgICAgIDAsICAgICAgIDAsICAgMCwgICAwCnNjdHBfbGFk ZHI6ICAgICAgICAgICAgICA0OCwgIDgwMDY0LCAgICAgICAwLCAgICAgMTQ0LCAgICAgICA2LCAg IDAsICAgMApzY3RwX3JhZGRyOiAgICAgICAgICAgICA3MDQsICA4MDAwMCwgICAgICAgMCwgICAg ICAgMCwgICAgICAgMCwgICAwLCAgIDAKc2N0cF9jaHVuazogICAgICAgICAgICAgMTM2LCA0MDAw MDgsICAgICAgIDAsICAgICAgIDAsICAgICAgIDAsICAgMCwgICAwCnNjdHBfcmVhZHE6ICAgICAg ICAgICAgIDEwNCwgNDAwMDMyLCAgICAgICAwLCAgICAgICAwLCAgICAgICAwLCAgIDAsICAgMApz Y3RwX3N0cmVhbV9tc2dfb3V0OiAgICAxMTIsIDQwMDAyNiwgICAgICAgMCwgICAgICAgMCwgICAg ICAgMCwgICAwLCAgIDAKc2N0cF9hc2NvbmY6ICAgICAgICAgICAgIDQwLCA0MDAwMDgsICAgICAg IDAsICAgICAgIDAsICAgICAgIDAsICAgMCwgICAwCnNjdHBfYXNjb25mX2FjazogICAgICAgICA0 OCwgNDAwMDMyLCAgICAgICAwLCAgICAgICAwLCAgICAgICAwLCAgIDAsICAgMApyaXBjYjogICAg ICAgICAgICAgICAgICAzOTIsICAyNTYwMCwgICAgICAgMiwgICAgICAxOCwgICAgICAgMiwgICAw LCAgIDAKdW5wY2I6ICAgICAgICAgICAgICAgICAgMjQwLCAgMjU2MDAsICAgICAgIDcsICAgICAg MjUsICAgICAgNzAsICAgMCwgICAwCnJ0ZW50cnk6ICAgICAgICAgICAgICAgIDIwMCwgICAgICAw LCAgICAgIDIxLCAgICAgIDM2LCAgICAgIDIzLCAgIDAsICAgMApzZWxmZDogICAgICAgICAgICAg ICAgICAgNTYsICAgICAgMCwgICAgICAzMywgICAgICA5MywgICAyNDYxMywgICAwLCAgIDAKU1dB UE1FVEE6ICAgICAgICAgICAgICAgMjg4LCAxMTY1MTksICAgICAgIDAsICAgICAgIDAsICAgICAg IDAsICAgMCwgICAwCkZGUyBpbm9kZTogICAgICAgICAgICAgIDE2OCwgICAgICAwLCAgICAgNDkw LCAgICAgIDE2LCAgICAgNTE3LCAgIDAsICAgMApGRlMxIGRpbm9kZTogICAgICAgICAgICAxMjgs ICAgICAgMCwgICAgICAgMCwgICAgICAgMCwgICAgICAgMCwgICAwLCAgIDAKRkZTMiBkaW5vZGU6 ICAgICAgICAgICAgMjU2LCAgICAgIDAsICAgICA0OTAsICAgICAgIDUsICAgICA1MTcsICAgMCwg ICAwCgoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tCnZtc3RhdCAtaQoKaW50ZXJydXB0ICAgICAgICAgICAgICAg ICAgICAgICAgICB0b3RhbCAgICAgICByYXRlCmlycTE6IGF0a2JkMCAgICAgICAgICAgICAgICAg ICAgICAgICAyODEgICAgICAgICAxMgppcnExNDogYXRhMCAgICAgICAgICAgICAgICAgICAgICAg ICAxMzUwICAgICAgICAgNTgKaXJxMTU6IGF0YTEgICAgICAgICAgICAgICAgICAgICAgICAgICAx NyAgICAgICAgICAwCmlycTE2OiBlbTEgICAgICAgICAgICAgICAgICAgICAgICAgICA4MjAgICAg ICAgICAzNQppcnExOTogZW0wICAgICAgICAgICAgICAgICAgICAgICAgICAgNDAyICAgICAgICAg MTcKY3B1MDp0aW1lciAgICAgICAgICAgICAgICAgICAgICAgIDEyNjExOSAgICAgICA1NDgzClRv dGFsICAgICAgICAgICAgICAgICAgICAgICAgICAgICAxMjg5ODkgICAgICAgNTYwOAoKLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tCnBzdGF0IC1UCgogNzQvMTIzMjggZmlsZXMKME0vMjA0N00gc3dhcCBzcGFjZQoK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCnBzdGF0IC1zCgpEZXZpY2UgICAgICAgICAgNTEyLWJsb2NrcyAgICAg VXNlZCAgICBBdmFpbCBDYXBhY2l0eQovZGV2L2FkYTBwMyAgICAgICAgNDE5Mzk3NiAgICAgICAg MCAgNDE5Mzk3NiAgICAgMCUKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQppb3N0YXQKCmlvc3RhdDoga3ZtX3Jl YWQoX3RrX25pbik6IGludmFsaWQgYWRkcmVzcyAoMHgwKQppb3N0YXQ6IGRpc2FibGluZyBUVFkg c3RhdGlzdGljcwogICAgICAgICAgICBhZGEwICAgICAgICAgICAgICBjZDAgICAgICAgICAgICBw YXNzMCAgICAgICAgICAgICBjcHUKICBLQi90IHRwcyAgTUIvcyAgIEtCL3QgdHBzICBNQi9zICAg S0IvdCB0cHMgIE1CL3MgIHVzIG5pIHN5IGluIGlkCiAyMC4xOSAgNTggIDEuMTUgICAwLjAwICAg MCAgMC4wMCAgIDAuMDAgICAwICAwLjAwICAgMCAgMCAgMCAgMSA5OQoKLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t CmlwY3MgLWEKCk1lc3NhZ2UgUXVldWVzOgpUICAgICAgICAgICBJRCAgICAgICAgICBLRVkgTU9E RSAgICAgICAgT1dORVIgICAgR1JPVVAgICAgQ1JFQVRPUiAgQ0dST1VQICAgICAgICAgICAgICAg ICBDQllURVMgICAgICAgICAgICAgICAgIFFOVU0gICAgICAgICAgICAgICBRQllURVMgICAgICAg IExTUElEICAgICAgICBMUlBJRCBTVElNRSAgICBSVElNRSAgICBDVElNRSAgIAoKU2hhcmVkIE1l bW9yeToKVCAgICAgICAgICAgSUQgICAgICAgICAgS0VZIE1PREUgICAgICAgIE9XTkVSICAgIEdS T1VQICAgIENSRUFUT1IgIENHUk9VUCAgICAgICAgIE5BVFRDSCAgICAgICAgU0VHU1ogICAgICAg ICBDUElEICAgICAgICAgTFBJRCBBVElNRSAgICBEVElNRSAgICBDVElNRSAgIAoKU2VtYXBob3Jl czoKVCAgICAgICAgICAgSUQgICAgICAgICAgS0VZIE1PREUgICAgICAgIE9XTkVSICAgIEdST1VQ ICAgIENSRUFUT1IgIENHUk9VUCAgICAgICAgICBOU0VNUyBPVElNRSAgICBDVElNRSAgIAoKCi0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQppcGNzIC1UCgptc2dpbmZvOgoJbXNnbWF4OiAgICAgICAgMTYzODQJKG1h eCBjaGFyYWN0ZXJzIGluIGEgbWVzc2FnZSkKCW1zZ21uaTogICAgICAgICAgIDQwCSgjIG9mIG1l c3NhZ2UgcXVldWVzKQoJbXNnbW5iOiAgICAgICAgIDIwNDgJKG1heCBjaGFyYWN0ZXJzIGluIGEg bWVzc2FnZSBxdWV1ZSkKCW1zZ3RxbDogICAgICAgICAgIDQwCShtYXggIyBvZiBtZXNzYWdlcyBp biBzeXN0ZW0pCgltc2dzc3o6ICAgICAgICAgICAgOAkoc2l6ZSBvZiBhIG1lc3NhZ2Ugc2VnbWVu dCkKCW1zZ3NlZzogICAgICAgICAyMDQ4CSgjIG9mIG1lc3NhZ2Ugc2VnbWVudHMgaW4gc3lzdGVt KQoKc2htaW5mbzoKCXNobW1heDogICAgNTM2ODcwOTEyCShtYXggc2hhcmVkIG1lbW9yeSBzZWdt ZW50IHNpemUpCglzaG1taW46ICAgICAgICAgICAgMQkobWluIHNoYXJlZCBtZW1vcnkgc2VnbWVu dCBzaXplKQoJc2htbW5pOiAgICAgICAgICAxOTIJKG1heCBudW1iZXIgb2Ygc2hhcmVkIG1lbW9y eSBpZGVudGlmaWVycykKCXNobXNlZzogICAgICAgICAgMTI4CShtYXggc2hhcmVkIG1lbW9yeSBz ZWdtZW50cyBwZXIgcHJvY2VzcykKCXNobWFsbDogICAgICAgMTMxMDcyCShtYXggYW1vdW50IG9m IHNoYXJlZCBtZW1vcnkgaW4gcGFnZXMpCgpzZW1pbmZvOgoJc2VtbW5pOiAgICAgICAgICAgNTAJ KCMgb2Ygc2VtYXBob3JlIGlkZW50aWZpZXJzKQoJc2VtbW5zOiAgICAgICAgICAzNDAJKCMgb2Yg c2VtYXBob3JlcyBpbiBzeXN0ZW0pCglzZW1tbnU6ICAgICAgICAgIDE1MAkoIyBvZiB1bmRvIHN0 cnVjdHVyZXMgaW4gc3lzdGVtKQoJc2VtbXNsOiAgICAgICAgICAzNDAJKG1heCAjIG9mIHNlbWFw aG9yZXMgcGVyIGlkKQoJc2Vtb3BtOiAgICAgICAgICAxMDAJKG1heCAjIG9mIG9wZXJhdGlvbnMg cGVyIHNlbW9wIGNhbGwpCglzZW11bWU6ICAgICAgICAgICA1MAkobWF4ICMgb2YgdW5kbyBlbnRy aWVzIHBlciBwcm9jZXNzKQoJc2VtdXN6OiAgICAgICAgICA2MzIJKHNpemUgaW4gYnl0ZXMgb2Yg dW5kbyBzdHJ1Y3R1cmUpCglzZW12bXg6ICAgICAgICAzMjc2Nwkoc2VtYXBob3JlIG1heGltdW0g dmFsdWUpCglzZW1hZW06ICAgICAgICAxNjM4NAkoYWRqdXN0IG9uIGV4aXQgbWF4IHZhbHVlKQoK Ci0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLQpuZnNzdGF0CgpDbGllbnQgSW5mbzoKUnBjIENvdW50czoKICBHZXRh dHRyICAgU2V0YXR0ciAgICBMb29rdXAgIFJlYWRsaW5rICAgICAgUmVhZCAgICAgV3JpdGUgICAg Q3JlYXRlICAgIFJlbW92ZQogICAgICAgIDcgICAgICAgICAwICAgICAgICAgOCAgICAgICAgIDAg ICAgICAgICA3ICAgICAgICAgMCAgICAgICAgIDAgICAgICAgICAwCiAgIFJlbmFtZSAgICAgIExp bmsgICBTeW1saW5rICAgICBNa2RpciAgICAgUm1kaXIgICBSZWFkZGlyICBSZGlyUGx1cyAgICBB Y2Nlc3MKICAgICAgICAwICAgICAgICAgMCAgICAgICAgIDAgICAgICAgICAwICAgICAgICAgMCAg ICAgICAgIDAgICAgICAgICAwICAgICAgICAgOQogICAgTWtub2QgICAgRnNzdGF0ICAgIEZzaW5m byAgUGF0aENvbmYgICAgQ29tbWl0CiAgICAgICAgMCAgICAgICAgIDIgICAgICAgICAyICAgICAg ICAgMCAgICAgICAgIDAKUnBjIEluZm86CiBUaW1lZE91dCAgIEludmFsaWQgWCBSZXBsaWVzICAg UmV0cmllcyAgUmVxdWVzdHMKICAgICAgICAwICAgICAgICAgMCAgICAgICAgIDAgICAgICAgICAw ICAgICAgICAzNQpDYWNoZSBJbmZvOgpBdHRyIEhpdHMgICAgTWlzc2VzIExrdXAgSGl0cyAgICBN aXNzZXMgQmlvUiBIaXRzICAgIE1pc3NlcyBCaW9XIEhpdHMgICAgTWlzc2VzCiAgICAgICA4NyAg ICAgICAgIDMgICAgICAgIDM3ICAgICAgICAgOCAgICAgICAgMTkgICAgICAgICA3ICAgICAgICAg MCAgICAgICAgIDAKQmlvUkxIaXRzICAgIE1pc3NlcyBCaW9EIEhpdHMgICAgTWlzc2VzIERpckUg SGl0cyAgICBNaXNzZXMgQWNjcyBIaXRzICAgIE1pc3NlcwogICAgICAgIDAgICAgICAgICAwICAg ICAgICAgMCAgICAgICAgIDAgICAgICAgICAwICAgICAgICAgMCAgICAgICAgNDEgICAgICAgICA5 CgpTZXJ2ZXIgSW5mbzoKICBHZXRhdHRyICAgU2V0YXR0ciAgICBMb29rdXAgIFJlYWRsaW5rICAg ICAgUmVhZCAgICAgV3JpdGUgICAgQ3JlYXRlICAgIFJlbW92ZQogICAgICAgIDAgICAgICAgICAw ICAgICAgICAgMCAgICAgICAgIDAgICAgICAgICAwICAgICAgICAgMCAgICAgICAgIDAgICAgICAg ICAwCiAgIFJlbmFtZSAgICAgIExpbmsgICBTeW1saW5rICAgICBNa2RpciAgICAgUm1kaXIgICBS ZWFkZGlyICBSZGlyUGx1cyAgICBBY2Nlc3MKICAgICAgICAwICAgICAgICAgMCAgICAgICAgIDAg ICAgICAgICAwICAgICAgICAgMCAgICAgICAgIDAgICAgICAgICAwICAgICAgICAgMAogICAgTWtu b2QgICAgRnNzdGF0ICAgIEZzaW5mbyAgUGF0aENvbmYgICAgQ29tbWl0CiAgICAgICAgMCAgICAg ICAgIDAgICAgICAgICAwICAgICAgICAgMCAgICAgICAgIDAKU2VydmVyIFJldC1GYWlsZWQKICAg ICAgICAgICAgICAgIDAKU2VydmVyIEZhdWx0cwogICAgICAgICAgICAwClNlcnZlciBDYWNoZSBT dGF0czoKICAgSW5wcm9nICAgICAgSWRlbSAgTm9uLWlkZW0gICAgTWlzc2VzCiAgICAgICAgMCAg ICAgICAgIDAgICAgICAgICAwICAgICAgICAgMApTZXJ2ZXIgV3JpdGUgR2F0aGVyaW5nOgogV3Jp dGVPcHMgIFdyaXRlUlBDICAgT3BzYXZlZAogICAgICAgIDAgICAgICAgICAwICAgICAgICAgMAoK LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCm5ldHN0YXQgLXMKCnRjcDoKCTg0MSBwYWNrZXRzIHNlbnQKCQk2MDEg ZGF0YSBwYWNrZXRzICg3Mjk2NCBieXRlcykKCQkwIGRhdGEgcGFja2V0cyAoMCBieXRlcykgcmV0 cmFuc21pdHRlZAoJCTAgZGF0YSBwYWNrZXRzIHVubmVjZXNzYXJpbHkgcmV0cmFuc21pdHRlZAoJ CTAgcmVzZW5kcyBpbml0aWF0ZWQgYnkgTVRVIGRpc2NvdmVyeQoJCTIyNiBhY2stb25seSBwYWNr ZXRzICgyMSBkZWxheWVkKQoJCTAgVVJHIG9ubHkgcGFja2V0cwoJCTAgd2luZG93IHByb2JlIHBh Y2tldHMKCQkwIHdpbmRvdyB1cGRhdGUgcGFja2V0cwoJCTE0IGNvbnRyb2wgcGFja2V0cwoJOTk0 IHBhY2tldHMgcmVjZWl2ZWQKCQk2MTMgYWNrcyAoZm9yIDcyOTY4IGJ5dGVzKQoJCTIgZHVwbGlj YXRlIGFja3MKCQkwIGFja3MgZm9yIHVuc2VudCBkYXRhCgkJOTc2IHBhY2tldHMgKDY3NDI3MiBi eXRlcykgcmVjZWl2ZWQgaW4tc2VxdWVuY2UKCQkwIGNvbXBsZXRlbHkgZHVwbGljYXRlIHBhY2tl dHMgKDAgYnl0ZXMpCgkJMCBvbGQgZHVwbGljYXRlIHBhY2tldHMKCQkwIHBhY2tldHMgd2l0aCBz b21lIGR1cC4gZGF0YSAoMCBieXRlcyBkdXBlZCkKCQkwIG91dC1vZi1vcmRlciBwYWNrZXRzICgw IGJ5dGVzKQoJCTAgcGFja2V0cyAoMCBieXRlcykgb2YgZGF0YSBhZnRlciB3aW5kb3cKCQkwIHdp bmRvdyBwcm9iZXMKCQkwIHdpbmRvdyB1cGRhdGUgcGFja2V0cwoJCTAgcGFja2V0cyByZWNlaXZl ZCBhZnRlciBjbG9zZQoJCTAgZGlzY2FyZGVkIGZvciBiYWQgY2hlY2tzdW1zCgkJMCBkaXNjYXJk ZWQgZm9yIGJhZCBoZWFkZXIgb2Zmc2V0IGZpZWxkcwoJCTAgZGlzY2FyZGVkIGJlY2F1c2UgcGFj a2V0IHRvbyBzaG9ydAoJCTAgZGlzY2FyZGVkIGR1ZSB0byBtZW1vcnkgcHJvYmxlbXMKCTggY29u bmVjdGlvbiByZXF1ZXN0cwoJMCBjb25uZWN0aW9uIGFjY2VwdHMKCTAgYmFkIGNvbm5lY3Rpb24g YXR0ZW1wdHMKCTAgbGlzdGVuIHF1ZXVlIG92ZXJmbG93cwoJMCBpZ25vcmVkIFJTVHMgaW4gdGhl IHdpbmRvd3MKCTggY29ubmVjdGlvbnMgZXN0YWJsaXNoZWQgKGluY2x1ZGluZyBhY2NlcHRzKQoJ MTMgY29ubmVjdGlvbnMgY2xvc2VkIChpbmNsdWRpbmcgMCBkcm9wcykKCQkyIGNvbm5lY3Rpb25z IHVwZGF0ZWQgY2FjaGVkIFJUVCBvbiBjbG9zZQoJCTIgY29ubmVjdGlvbnMgdXBkYXRlZCBjYWNo ZWQgUlRUIHZhcmlhbmNlIG9uIGNsb3NlCgkJMCBjb25uZWN0aW9ucyB1cGRhdGVkIGNhY2hlZCBz c3RocmVzaCBvbiBjbG9zZQoJMCBlbWJyeW9uaWMgY29ubmVjdGlvbnMgZHJvcHBlZAoJNjEzIHNl Z21lbnRzIHVwZGF0ZWQgcnR0IChvZiA2MTUgYXR0ZW1wdHMpCgkwIHJldHJhbnNtaXQgdGltZW91 dHMKCQkwIGNvbm5lY3Rpb25zIGRyb3BwZWQgYnkgcmV4bWl0IHRpbWVvdXQKCTAgcGVyc2lzdCB0 aW1lb3V0cwoJCTAgY29ubmVjdGlvbnMgZHJvcHBlZCBieSBwZXJzaXN0IHRpbWVvdXQKCTAgQ29u bmVjdGlvbnMgKGZpbl93YWl0XzIpIGRyb3BwZWQgYmVjYXVzZSBvZiB0aW1lb3V0CgkwIGtlZXBh bGl2ZSB0aW1lb3V0cwoJCTAga2VlcGFsaXZlIHByb2JlcyBzZW50CgkJMCBjb25uZWN0aW9ucyBk cm9wcGVkIGJ5IGtlZXBhbGl2ZQoJOCBjb3JyZWN0IEFDSyBoZWFkZXIgcHJlZGljdGlvbnMKCTM3 NyBjb3JyZWN0IGRhdGEgcGFja2V0IGhlYWRlciBwcmVkaWN0aW9ucwoJMCBzeW5jYWNoZSBlbnRy aWVzIGFkZGVkCgkJMCByZXRyYW5zbWl0dGVkCgkJMCBkdXBzeW4KCQkwIGRyb3BwZWQKCQkwIGNv bXBsZXRlZAoJCTAgYnVja2V0IG92ZXJmbG93CgkJMCBjYWNoZSBvdmVyZmxvdwoJCTAgcmVzZXQK CQkwIHN0YWxlCgkJMCBhYm9ydGVkCgkJMCBiYWRhY2sKCQkwIHVucmVhY2gKCQkwIHpvbmUgZmFp bHVyZXMKCTAgY29va2llcyBzZW50CgkwIGNvb2tpZXMgcmVjZWl2ZWQKCTEgaG9zdGNhY2hlIGVu dHJpZSBhZGRlZAoJCTAgYnVja2V0IG92ZXJmbG93CgkwIFNBQ0sgcmVjb3ZlcnkgZXBpc29kZXMK CTAgc2VnbWVudCByZXhtaXRzIGluIFNBQ0sgcmVjb3ZlcnkgZXBpc29kZXMKCTAgYnl0ZSByZXht aXRzIGluIFNBQ0sgcmVjb3ZlcnkgZXBpc29kZXMKCTAgU0FDSyBvcHRpb25zIChTQUNLIGJsb2Nr cykgcmVjZWl2ZWQKCTAgU0FDSyBvcHRpb25zIChTQUNLIGJsb2Nrcykgc2VudAoJMCBTQUNLIHNj b3JlYm9hcmQgb3ZlcmZsb3cKCTAgcGFja2V0cyB3aXRoIEVDTiBDRSBiaXQgc2V0CgkwIHBhY2tl dHMgd2l0aCBFQ04gRUNUKDApIGJpdCBzZXQKCTAgcGFja2V0cyB3aXRoIEVDTiBFQ1QoMSkgYml0 IHNldAoJMCBzdWNjZXNzZnVsIEVDTiBoYW5kc2hha2VzCgkwIHRpbWVzIEVDTiByZWR1Y2VkIHRo ZSBjb25nZXN0aW9uIHdpbmRvdwp1ZHA6CgkyMDMgZGF0YWdyYW1zIHJlY2VpdmVkCgkwIHdpdGgg aW5jb21wbGV0ZSBoZWFkZXIKCTAgd2l0aCBiYWQgZGF0YSBsZW5ndGggZmllbGQKCTAgd2l0aCBi YWQgY2hlY2tzdW0KCTAgd2l0aCBubyBjaGVja3N1bQoJMCBkcm9wcGVkIGR1ZSB0byBubyBzb2Nr ZXQKCTIgYnJvYWRjYXN0L211bHRpY2FzdCBkYXRhZ3JhbXMgdW5kZWxpdmVyZWQKCTAgZHJvcHBl ZCBkdWUgdG8gZnVsbCBzb2NrZXQgYnVmZmVycwoJMCBub3QgZm9yIGhhc2hlZCBwY2IKCTIwMSBk ZWxpdmVyZWQKCTIwMSBkYXRhZ3JhbXMgb3V0cHV0CgkwIHRpbWVzIG11bHRpY2FzdCBzb3VyY2Ug ZmlsdGVyIG1hdGNoZWQKaXA6CgkxMTk4IHRvdGFsIHBhY2tldHMgcmVjZWl2ZWQKCTAgYmFkIGhl YWRlciBjaGVja3N1bXMKCTAgd2l0aCBzaXplIHNtYWxsZXIgdGhhbiBtaW5pbXVtCgkwIHdpdGgg ZGF0YSBzaXplIDwgZGF0YSBsZW5ndGgKCTAgd2l0aCBpcCBsZW5ndGggPiBtYXggaXAgcGFja2V0 IHNpemUKCTAgd2l0aCBoZWFkZXIgbGVuZ3RoIDwgZGF0YSBzaXplCgkwIHdpdGggZGF0YSBsZW5n dGggPCBoZWFkZXIgbGVuZ3RoCgkwIHdpdGggYmFkIG9wdGlvbnMKCTAgd2l0aCBpbmNvcnJlY3Qg dmVyc2lvbiBudW1iZXIKCTAgZnJhZ21lbnRzIHJlY2VpdmVkCgkwIGZyYWdtZW50cyBkcm9wcGVk IChkdXAgb3Igb3V0IG9mIHNwYWNlKQoJMCBmcmFnbWVudHMgZHJvcHBlZCBhZnRlciB0aW1lb3V0 CgkwIHBhY2tldHMgcmVhc3NlbWJsZWQgb2sKCTExOTcgcGFja2V0cyBmb3IgdGhpcyBob3N0Cgkw IHBhY2tldHMgZm9yIHVua25vd24vdW5zdXBwb3J0ZWQgcHJvdG9jb2wKCTAgcGFja2V0cyBmb3J3 YXJkZWQgKDAgcGFja2V0cyBmYXN0IGZvcndhcmRlZCkKCTEgcGFja2V0IG5vdCBmb3J3YXJkYWJs ZQoJMCBwYWNrZXRzIHJlY2VpdmVkIGZvciB1bmtub3duIG11bHRpY2FzdCBncm91cAoJMCByZWRp cmVjdHMgc2VudAoJMTA0MiBwYWNrZXRzIHNlbnQgZnJvbSB0aGlzIGhvc3QKCTEgcGFja2V0IHNl bnQgd2l0aCBmYWJyaWNhdGVkIGlwIGhlYWRlcgoJMCBvdXRwdXQgcGFja2V0cyBkcm9wcGVkIGR1 ZSB0byBubyBidWZzLCBldGMuCgkwIG91dHB1dCBwYWNrZXRzIGRpc2NhcmRlZCBkdWUgdG8gbm8g cm91dGUKCTAgb3V0cHV0IGRhdGFncmFtcyBmcmFnbWVudGVkCgkwIGZyYWdtZW50cyBjcmVhdGVk CgkwIGRhdGFncmFtcyB0aGF0IGNhbid0IGJlIGZyYWdtZW50ZWQKCTAgdHVubmVsaW5nIHBhY2tl dHMgdGhhdCBjYW4ndCBmaW5kIGdpZgoJMCBkYXRhZ3JhbXMgd2l0aCBiYWQgYWRkcmVzcyBpbiBo ZWFkZXIKaWNtcDoKCTAgY2FsbHMgdG8gaWNtcF9lcnJvcgoJMCBlcnJvcnMgbm90IGdlbmVyYXRl ZCBpbiByZXNwb25zZSB0byBhbiBpY21wIG1lc3NhZ2UKCTAgbWVzc2FnZXMgd2l0aCBiYWQgY29k ZSBmaWVsZHMKCTAgbWVzc2FnZXMgbGVzcyB0aGFuIHRoZSBtaW5pbXVtIGxlbmd0aAoJMCBtZXNz YWdlcyB3aXRoIGJhZCBjaGVja3N1bQoJMCBtZXNzYWdlcyB3aXRoIGJhZCBsZW5ndGgKCTAgbXVs dGljYXN0IGVjaG8gcmVxdWVzdHMgaWdub3JlZAoJMCBtdWx0aWNhc3QgdGltZXN0YW1wIHJlcXVl c3RzIGlnbm9yZWQKCTAgbWVzc2FnZSByZXNwb25zZXMgZ2VuZXJhdGVkCgkwIGludmFsaWQgcmV0 dXJuIGFkZHJlc3NlcwoJMCBubyByZXR1cm4gcm91dGVzCmlnbXA6CgkwIG1lc3NhZ2VzIHJlY2Vp dmVkCgkwIG1lc3NhZ2VzIHJlY2VpdmVkIHdpdGggdG9vIGZldyBieXRlcwoJMCBtZXNzYWdlcyBy ZWNlaXZlZCB3aXRoIHdyb25nIFRUTAoJMCBtZXNzYWdlcyByZWNlaXZlZCB3aXRoIGJhZCBjaGVj a3N1bQoJMCBWMS9WMiBtZW1iZXJzaGlwIHF1ZXJpZXMgcmVjZWl2ZWQKCTAgVjMgbWVtYmVyc2hp cCBxdWVyaWVzIHJlY2VpdmVkCgkwIG1lbWJlcnNoaXAgcXVlcmllcyByZWNlaXZlZCB3aXRoIGlu dmFsaWQgZmllbGQocykKCTAgZ2VuZXJhbCBxdWVyaWVzIHJlY2VpdmVkCgkwIGdyb3VwIHF1ZXJp ZXMgcmVjZWl2ZWQKCTAgZ3JvdXAtc291cmNlIHF1ZXJpZXMgcmVjZWl2ZWQKCTAgZ3JvdXAtc291 cmNlIHF1ZXJpZXMgZHJvcHBlZAoJMCBtZW1iZXJzaGlwIHJlcG9ydHMgcmVjZWl2ZWQKCTAgbWVt YmVyc2hpcCByZXBvcnRzIHJlY2VpdmVkIHdpdGggaW52YWxpZCBmaWVsZChzKQoJMCBtZW1iZXJz aGlwIHJlcG9ydHMgcmVjZWl2ZWQgZm9yIGdyb3VwcyB0byB3aGljaCB3ZSBiZWxvbmcKCTAgVjMg cmVwb3J0cyByZWNlaXZlZCB3aXRob3V0IFJvdXRlciBBbGVydAoJMCBtZW1iZXJzaGlwIHJlcG9y dHMgc2VudAphcnA6Cgk5IEFSUCByZXF1ZXN0cyBzZW50CgkxIEFSUCByZXBseSBzZW50CgkxIEFS UCByZXF1ZXN0IHJlY2VpdmVkCgk2IEFSUCByZXBsaWVzIHJlY2VpdmVkCgk3IEFSUCBwYWNrZXRz IHJlY2VpdmVkCgkwIHRvdGFsIHBhY2tldHMgZHJvcHBlZCBkdWUgdG8gbm8gQVJQIGVudHJ5Cgky IEFSUCBlbnRyeXMgdGltZWQgb3V0CgkwIER1cGxpY2F0ZSBJUHMgc2VlbgppcDY6CgkwIHRvdGFs IHBhY2tldHMgcmVjZWl2ZWQKCTAgd2l0aCBzaXplIHNtYWxsZXIgdGhhbiBtaW5pbXVtCgkwIHdp dGggZGF0YSBzaXplIDwgZGF0YSBsZW5ndGgKCTAgd2l0aCBiYWQgb3B0aW9ucwoJMCB3aXRoIGlu Y29ycmVjdCB2ZXJzaW9uIG51bWJlcgoJMCBmcmFnbWVudHMgcmVjZWl2ZWQKCTAgZnJhZ21lbnRz IGRyb3BwZWQgKGR1cCBvciBvdXQgb2Ygc3BhY2UpCgkwIGZyYWdtZW50cyBkcm9wcGVkIGFmdGVy IHRpbWVvdXQKCTAgZnJhZ21lbnRzIHRoYXQgZXhjZWVkZWQgbGltaXQKCTAgcGFja2V0cyByZWFz c2VtYmxlZCBvawoJMCBwYWNrZXRzIGZvciB0aGlzIGhvc3QKCTAgcGFja2V0cyBmb3J3YXJkZWQK CTAgcGFja2V0cyBub3QgZm9yd2FyZGFibGUKCTAgcmVkaXJlY3RzIHNlbnQKCTAgcGFja2V0cyBz ZW50IGZyb20gdGhpcyBob3N0CgkwIHBhY2tldHMgc2VudCB3aXRoIGZhYnJpY2F0ZWQgaXAgaGVh ZGVyCgkwIG91dHB1dCBwYWNrZXRzIGRyb3BwZWQgZHVlIHRvIG5vIGJ1ZnMsIGV0Yy4KCTMgb3V0 cHV0IHBhY2tldHMgZGlzY2FyZGVkIGR1ZSB0byBubyByb3V0ZQoJMCBvdXRwdXQgZGF0YWdyYW1z IGZyYWdtZW50ZWQKCTAgZnJhZ21lbnRzIGNyZWF0ZWQKCTAgZGF0YWdyYW1zIHRoYXQgY2FuJ3Qg YmUgZnJhZ21lbnRlZAoJMCBwYWNrZXRzIHRoYXQgdmlvbGF0ZWQgc2NvcGUgcnVsZXMKCTAgbXVs dGljYXN0IHBhY2tldHMgd2hpY2ggd2UgZG9uJ3Qgam9pbgoJTWJ1ZiBzdGF0aXN0aWNzOgoJCTAg b25lIG1idWYKCQkwIG9uZSBleHQgbWJ1ZgoJCTAgdHdvIG9yIG1vcmUgZXh0IG1idWYKCTAgcGFj a2V0cyB3aG9zZSBoZWFkZXJzIGFyZSBub3QgY29udGlndW91cwoJMCB0dW5uZWxpbmcgcGFja2V0 cyB0aGF0IGNhbid0IGZpbmQgZ2lmCgkwIHBhY2tldHMgZGlzY2FyZGVkIGJlY2F1c2Ugb2YgdG9v IG1hbnkgaGVhZGVycwoJMCBmYWlsdXJlcyBvZiBzb3VyY2UgYWRkcmVzcyBzZWxlY3Rpb24KCVNv dXJjZSBhZGRyZXNzZXMgc2VsZWN0aW9uIHJ1bGUgYXBwbGllZDoKaWNtcDY6CgkwIGNhbGxzIHRv IGljbXA2X2Vycm9yCgkwIGVycm9ycyBub3QgZ2VuZXJhdGVkIGluIHJlc3BvbnNlIHRvIGFuIGlj bXA2IG1lc3NhZ2UKCTAgZXJyb3JzIG5vdCBnZW5lcmF0ZWQgYmVjYXVzZSBvZiByYXRlIGxpbWl0 YXRpb24KCTAgbWVzc2FnZXMgd2l0aCBiYWQgY29kZSBmaWVsZHMKCTAgbWVzc2FnZXMgPCBtaW5p bXVtIGxlbmd0aAoJMCBiYWQgY2hlY2tzdW1zCgkwIG1lc3NhZ2VzIHdpdGggYmFkIGxlbmd0aAoJ SGlzdG9ncmFtIG9mIGVycm9yIG1lc3NhZ2VzIHRvIGJlIGdlbmVyYXRlZDoKCQkwIG5vIHJvdXRl CgkJMCBhZG1pbmlzdHJhdGl2ZWx5IHByb2hpYml0ZWQKCQkwIGJleW9uZCBzY29wZQoJCTAgYWRk cmVzcyB1bnJlYWNoYWJsZQoJCTAgcG9ydCB1bnJlYWNoYWJsZQoJCTAgcGFja2V0IHRvbyBiaWcK CQkwIHRpbWUgZXhjZWVkIHRyYW5zaXQKCQkwIHRpbWUgZXhjZWVkIHJlYXNzZW1ibHkKCQkwIGVy cm9uZW91cyBoZWFkZXIgZmllbGQKCQkwIHVucmVjb2duaXplZCBuZXh0IGhlYWRlcgoJCTAgdW5y ZWNvZ25pemVkIG9wdGlvbgoJCTAgcmVkaXJlY3QKCQkwIHVua25vd24KCTAgbWVzc2FnZSByZXNw b25zZXMgZ2VuZXJhdGVkCgkwIG1lc3NhZ2VzIHdpdGggdG9vIG1hbnkgTkQgb3B0aW9ucwoJMCBt ZXNzYWdlcyB3aXRoIGJhZCBORCBvcHRpb25zCgkwIGJhZCBuZWlnaGJvciBzb2xpY2l0YXRpb24g bWVzc2FnZXMKCTAgYmFkIG5laWdoYm9yIGFkdmVydGlzZW1lbnQgbWVzc2FnZXMKCTAgYmFkIHJv dXRlciBzb2xpY2l0YXRpb24gbWVzc2FnZXMKCTAgYmFkIHJvdXRlciBhZHZlcnRpc2VtZW50IG1l c3NhZ2VzCgkwIGJhZCByZWRpcmVjdCBtZXNzYWdlcwoJMCBwYXRoIE1UVSBjaGFuZ2VzCnJpcDY6 CgkwIG1lc3NhZ2VzIHJlY2VpdmVkCgkwIGNoZWNrc3VtIGNhbGN1bGF0aW9ucyBvbiBpbmJvdW5k CgkwIG1lc3NhZ2VzIHdpdGggYmFkIGNoZWNrc3VtCgkwIG1lc3NhZ2VzIGRyb3BwZWQgZHVlIHRv IG5vIHNvY2tldAoJMCBtdWx0aWNhc3QgbWVzc2FnZXMgZHJvcHBlZCBkdWUgdG8gbm8gc29ja2V0 CgkwIG1lc3NhZ2VzIGRyb3BwZWQgZHVlIHRvIGZ1bGwgc29ja2V0IGJ1ZmZlcnMKCTAgZGVsaXZl cmVkCgkwIGRhdGFncmFtcyBvdXRwdXQKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpuZXRzdGF0IC1tCgo1MTcv Mjc1Lzc5MiBtYnVmcyBpbiB1c2UgKGN1cnJlbnQvY2FjaGUvdG90YWwpCjUwMC8xNDYvNjQ2LzI1 NjAwIG1idWYgY2x1c3RlcnMgaW4gdXNlIChjdXJyZW50L2NhY2hlL3RvdGFsL21heCkKNTEyLzE0 MCBtYnVmK2NsdXN0ZXJzIG91dCBvZiBwYWNrZXQgc2Vjb25kYXJ5IHpvbmUgaW4gdXNlIChjdXJy ZW50L2NhY2hlKQowLzAvMC8xMjgwMCA0ayAocGFnZSBzaXplKSBqdW1ibyBjbHVzdGVycyBpbiB1 c2UgKGN1cnJlbnQvY2FjaGUvdG90YWwvbWF4KQowLzAvMC8xOTIwMCA5ayBqdW1ibyBjbHVzdGVy cyBpbiB1c2UgKGN1cnJlbnQvY2FjaGUvdG90YWwvbWF4KQowLzAvMC8xMjgwMCAxNmsganVtYm8g Y2x1c3RlcnMgaW4gdXNlIChjdXJyZW50L2NhY2hlL3RvdGFsL21heCkKMTEyOUsvMzYwSy8xNDkw SyBieXRlcyBhbGxvY2F0ZWQgdG8gbmV0d29yayAoY3VycmVudC9jYWNoZS90b3RhbCkKMC8wLzAg cmVxdWVzdHMgZm9yIG1idWZzIGRlbmllZCAobWJ1ZnMvY2x1c3RlcnMvbWJ1ZitjbHVzdGVycykK MC8wLzAgcmVxdWVzdHMgZm9yIGp1bWJvIGNsdXN0ZXJzIGRlbmllZCAoNGsvOWsvMTZrKQowIHJl cXVlc3RzIGZvciBzZmJ1ZnMgZGVuaWVkCjAgcmVxdWVzdHMgZm9yIHNmYnVmcyBkZWxheWVkCjAg cmVxdWVzdHMgZm9yIEkvTyBpbml0aWF0ZWQgYnkgc2VuZGZpbGUKMCBjYWxscyB0byBwcm90b2Nv bCBkcmFpbiByb3V0aW5lcwoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCm5ldHN0YXQgLWlkCgpOYW1lICAgIE10 dSBOZXR3b3JrICAgICAgIEFkZHJlc3MgICAgICAgICAgICAgIElwa3RzIEllcnJzIElkcm9wICAg IE9wa3RzIE9lcnJzICBDb2xsIERyb3AKZW0wICAgIDE1MDAgPExpbmsjMT4gICAgICAwODowMDoy Nzo2OToxZjplMSAgICAgIDIwMSAgICAgMCAgICAgMCAgICAgIDIwMiAgICAgMCAgICAgMCAgICAw IAplbTAgICAgMTUwMCAxMC4wLjIuMCAgICAgIDEwLjAuMi4xNSAgICAgICAgICAgICAgMTk3ICAg ICAtICAgICAtICAgICAgMTk3ICAgICAtICAgICAtICAgIC0gCnVzYnVzICAgICAwIDxMaW5rIzI+ ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDAgICAgIDAgICAgIDAgICAgICAgIDAgICAg IDAgICAgIDAgICAgMCAKZW0xICAgIDE1MDAgPExpbmsjMz4gICAgICAwODowMDoyNzo3NDoyNzpj ZCAgICAgMTAwNCAgICAgMCAgICAgMCAgICAgIDg1MiAgICAgMCAgICAgMCAgICAwIAplbTEgICAg MTUwMCAxOTIuMTY4LjU2LjAgIDE5Mi4xNjguNTYuMTAxICAgICAgICAgOTk4ICAgICAtICAgICAt ICAgICAgODQ2ICAgICAtICAgICAtICAgIC0gCmxvMCAgIDE2Mzg0IDxMaW5rIzQ+ICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDAgICAgIDAgICAgIDAgICAgICAgIDAgICAgIDAgICAgIDAg ICAgMCAKbG8wICAgMTYzODQgbG9jYWxob3N0ICAgICA6OjEgICAgICAgICAgICAgICAgICAgICAg MCAgICAgLSAgICAgLSAgICAgICAgMCAgICAgLSAgICAgLSAgICAtIApsbzAgICAxNjM4NCBmZTgw OjoxJWxvMCAgIGZlODA6OjEgICAgICAgICAgICAgICAgICAwICAgICAtICAgICAtICAgICAgICAw ICAgICAtICAgICAtICAgIC0gCmxvMCAgIDE2Mzg0IHlvdXItbmV0ICAgICAgbG9jYWxob3N0ICAg ICAgICAgICAgICAgIDAgICAgIC0gICAgIC0gICAgICAgIDAgICAgIC0gICAgIC0gICAgLSAKd3Rh cDAgIDIyOTAgPExpbmsjNT4gICAgICAwMDo5ODo5YTo5ODo5Njo5NyAgICAgICAgMCAgICAgMCAg ICAgMCAgICAgICAgMCAgICAgMCAgICAgMCAgICAwIAp3bGFuMCAgMTUwMCA8TGluayM2PiAgICAg IDAwOjk4OjlhOjk4Ojk2Ojk3ICAgICAgICAwICAgICAwICAgICAwICAgICAgICAwICAgICAwICAg ICAwICAgIDAgCndsYW4wICAxNTAwIDE5Mi4xNjguMi4wICAgMTkyLjE2OC4yLjEgICAgICAgICAg ICAgIDAgICAgIC0gICAgIC0gICAgICAgIDAgICAgIC0gICAgIC0gICAgLSAKd2xhbjAgIDE1MDAg ZmU4MDo6Mjk4OjlhZiBmZTgwOjoyOTg6OWFmZjpmZSAgICAgICAgMCAgICAgLSAgICAgLSAgICAg ICAgMCAgICAgLSAgICAgLSAgICAtIAoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCm5ldHN0YXQgLWFucgoKUm91 dGluZyB0YWJsZXMKCkludGVybmV0OgpEZXN0aW5hdGlvbiAgICAgICAgR2F0ZXdheSAgICAgICAg ICAgIEZsYWdzICAgIFJlZnMgICAgICBVc2UgIE5ldGlmIEV4cGlyZQpkZWZhdWx0ICAgICAgICAg ICAgMTAuMC4yLjIgICAgICAgICAgIFVHUyAgICAgICAgIDAgICAgICAxOTcgICAgZW0wCjEwLjAu Mi4wLzI0ICAgICAgICBsaW5rIzEgICAgICAgICAgICAgVSAgICAgICAgICAgMCAgICAgICAgMCAg ICBlbTAKMTAuMC4yLjE1ICAgICAgICAgIGxpbmsjMSAgICAgICAgICAgICBVSFMgICAgICAgICAw ICAgICAgICAwICAgIGxvMAoxMjcuMC4wLjEgICAgICAgICAgbGluayM0ICAgICAgICAgICAgIFVI ICAgICAgICAgIDAgICAgICAgIDAgICAgbG8wCjE5Mi4xNjguMi4wLzI0ICAgICBsaW5rIzYgICAg ICAgICAgICAgVSAgICAgICAgICAgMCAgICAgICAgMCAgd2xhbjAKMTkyLjE2OC4yLjEgICAgICAg IGxpbmsjNiAgICAgICAgICAgICBVSFMgICAgICAgICAwICAgICAgICAwICAgIGxvMAoxOTIuMTY4 LjU2LjAvMjQgICAgbGluayMzICAgICAgICAgICAgIFUgICAgICAgICAgIDAgICAgICA4NDYgICAg ZW0xCjE5Mi4xNjguNTYuMTAxICAgICBsaW5rIzMgICAgICAgICAgICAgVUhTICAgICAgICAgMCAg ICAgICAgMCAgICBsbzAKCkludGVybmV0NjoKRGVzdGluYXRpb24gICAgICAgICAgICAgICAgICAg ICAgIEdhdGV3YXkgICAgICAgICAgICAgICAgICAgICAgIEZsYWdzICAgICAgTmV0aWYgRXhwaXJl Cjo6Lzk2ICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6OjEgICAgICAgICAgICAgICAgICAg ICAgICAgICBVR1JTICAgICAgICBsbzAKOjoxICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxpbmsjNCAgICAgICAgICAgICAgICAgICAgICAgIFVIICAgICAgICAgIGxvMAo6OmZmZmY6MC4w LjAuMC85NiAgICAgICAgICAgICAgICAgOjoxICAgICAgICAgICAgICAgICAgICAgICAgICAgVUdS UyAgICAgICAgbG8wCmZlODA6Oi8xMCAgICAgICAgICAgICAgICAgICAgICAgICA6OjEgICAgICAg ICAgICAgICAgICAgICAgICAgICBVR1JTICAgICAgICBsbzAKZmU4MDo6JWxvMC82NCAgICAgICAg ICAgICAgICAgICAgIGxpbmsjNCAgICAgICAgICAgICAgICAgICAgICAgIFUgICAgICAgICAgIGxv MApmZTgwOjoxJWxvMCAgICAgICAgICAgICAgICAgICAgICAgbGluayM0ICAgICAgICAgICAgICAg ICAgICAgICAgVUhTICAgICAgICAgbG8wCmZlODA6OiU2LzY0ICAgICAgICAgICAgICAgICAgICAg ICBsaW5rIzYgICAgICAgICAgICAgICAgICAgICAgICBVICAgICAgICAgd2xhbjAKZmU4MDo6Mjk4 OjlhZmY6ZmU5ODo5Njk3JTYgICAgICAgIGxpbmsjNiAgICAgICAgICAgICAgICAgICAgICAgIFVI UyAgICAgICAgIGxvMApmZjAxOjolbG8wLzMyICAgICAgICAgICAgICAgICAgICAgOjoxICAgICAg ICAgICAgICAgICAgICAgICAgICAgVSAgICAgICAgICAgbG8wCmZmMDE6OiU2LzMyICAgICAgICAg ICAgICAgICAgICAgICBmZTgwOjoyOTg6OWFmZjpmZTk4Ojk2OTclNiAgICBVICAgICAgICAgd2xh bjAKZmYwMjo6LzE2ICAgICAgICAgICAgICAgICAgICAgICAgIDo6MSAgICAgICAgICAgICAgICAg ICAgICAgICAgIFVHUlMgICAgICAgIGxvMApmZjAyOjolbG8wLzMyICAgICAgICAgICAgICAgICAg ICAgOjoxICAgICAgICAgICAgICAgICAgICAgICAgICAgVSAgICAgICAgICAgbG8wCmZmMDI6OiU2 LzMyICAgICAgICAgICAgICAgICAgICAgICBmZTgwOjoyOTg6OWFmZjpmZTk4Ojk2OTclNiAgICBV ICAgICAgICAgd2xhbjAKCi0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpuZXRzdGF0IC1hbkEKCkFjdGl2ZSBJbnRl cm5ldCBjb25uZWN0aW9ucyAoaW5jbHVkaW5nIHNlcnZlcnMpClRjcGNiICAgICAgICAgICAgUHJv dG8gUmVjdi1RIFNlbmQtUSBMb2NhbCBBZGRyZXNzICAgICAgRm9yZWlnbiBBZGRyZXNzICAgIChz dGF0ZSkKZmZmZmZlMDAwNTQ2NTNkMCB0Y3A0ICAgICAgIDAgICAgICAwIDE5Mi4xNjguNTYuMTAx Ljk5NyAxOTIuMTY4LjU2LjEuMjA0OSAgRVNUQUJMSVNIRUQKZmZmZmZlMDAwNTQ2NWI3MCB0Y3A0 ICAgICAgIDAgICAgICAwIDE5Mi4xNjguNTYuMTAxLjYxNyAxOTIuMTY4LjU2LjEuMjA0OSAgRVNU QUJMSVNIRUQKZmZmZmZlMDAwNTQ2NjAwMCB0Y3A0ICAgICAgIDAgICAgICAwIDEyNy4wLjAuMS4y NSAgICAgICAqLiogICAgICAgICAgICAgICAgTElTVEVOCmZmZmZmZTAwMDU0NjU3YTAgdGNwNCAg ICAgICAwICAgICAgMCAqLjIyICAgICAgICAgICAgICAgKi4qICAgICAgICAgICAgICAgIExJU1RF TgpmZmZmZmUwMDA1NDY1MDAwIHRjcDYgICAgICAgMCAgICAgIDAgKi4yMiAgICAgICAgICAgICAg ICouKiAgICAgICAgICAgICAgICBMSVNURU4KZmZmZmZlMDAwNTJiM2RjOCB1ZHA0ICAgICAgIDAg ICAgICAwIDEyNy4wLjAuMS4xMjMgICAgICAqLiogICAgICAgICAgICAgICAgCmZmZmZmZTAwMDUy ZDQwMDAgdWRwNiAgICAgICAwICAgICAgMCBmZTgwOjQ6OjEuMTIzICAgICAgKi4qICAgICAgICAg ICAgICAgIApmZmZmZmUwMDA1MmIzYzQwIHVkcDYgICAgICAgMCAgICAgIDAgOjoxLjEyMyAgICAg ICAgICAgICouKiAgICAgICAgICAgICAgICAKZmZmZmZlMDAwNTJiMzdhOCB1ZHA0ICAgICAgIDAg ICAgICAwIDE5Mi4xNjguNTYuMTAxLjEyMyAqLiogICAgICAgICAgICAgICAgCmZmZmZmZTAwMDUy YjM0OTggdWRwNCAgICAgICAwICAgICAgMCAxMC4wLjIuMTUuMTIzICAgICAgKi4qICAgICAgICAg ICAgICAgIApmZmZmZmUwMDA1MmIzNjIwIHVkcDYgICAgICAgMCAgICAgIDAgKi4xMjMgICAgICAg ICAgICAgICouKiAgICAgICAgICAgICAgICAKZmZmZmZlMDAwNTJiMzAwMCB1ZHA0ICAgICAgIDAg ICAgICAwICouMTIzICAgICAgICAgICAgICAqLiogICAgICAgICAgICAgICAgCmZmZmZmZTAwMDUy YjMxODggdWRwNCAgICAgICAwICAgICAgMCAqLjUxNCAgICAgICAgICAgICAgKi4qICAgICAgICAg ICAgICAgIApmZmZmZmUwMDA1MmIzMzEwIHVkcDYgICAgICAgMCAgICAgIDAgKi41MTQgICAgICAg ICAgICAgICouKiAgICAgICAgICAgICAgICAKQWN0aXZlIFVOSVggZG9tYWluIHNvY2tldHMKQWRk cmVzcyAgVHlwZSAgIFJlY3YtUSBTZW5kLVEgICAgSW5vZGUgICAgIENvbm4gICAgIFJlZnMgIE5l eHRyZWYgQWRkcgpmZmZmZmUwMDA1MzhhYzMwIHN0cmVhbSAgICAgIDAgICAgICAwIGZmZmZmZTAw MDUyYzAwMDAgICAgICAgIDAgICAgICAgIDAgICAgICAgIDAgL3Zhci9ydW4vZGV2ZC5waXBlCmZm ZmZmZTAwMDUzOGFhNTAgZGdyYW0gICAgICAgMCAgICAgIDAgICAgICAgIDAgZmZmZmZlMDAwNTM4 YTc4MCAgICAgICAgMCBmZmZmZmUwMDA1MzhhM2MwCmZmZmZmZTAwMDUzOGEyZDAgZGdyYW0gICAg ICAgMCAgICAgIDAgICAgICAgIDAgZmZmZmZlMDAwNTM4YTg3MCAgICAgICAgMCAgICAgICAgMApm ZmZmZmUwMDA1MzhhM2MwIGRncmFtICAgICAgIDAgICAgICAwICAgICAgICAwIGZmZmZmZTAwMDUz OGE3ODAgICAgICAgIDAgZmZmZmZlMDAwNTM4YTY5MApmZmZmZmUwMDA1MzhhNjkwIGRncmFtICAg ICAgIDAgICAgICAwICAgICAgICAwIGZmZmZmZTAwMDUzOGE3ODAgICAgICAgIDAgICAgICAgIDAK ZmZmZmZlMDAwNTM4YTc4MCBkZ3JhbSAgICAgICAwICAgICAgMCBmZmZmZmUwMDA1NDYyMDAwICAg ICAgICAwIGZmZmZmZTAwMDUzOGFhNTAgICAgICAgIDAgL3Zhci9ydW4vbG9ncHJpdgpmZmZmZmUw MDA1MzhhODcwIGRncmFtICAgICAgIDAgICAgICAwIGZmZmZmZTAwMDU0NjIxZDggICAgICAgIDAg ZmZmZmZlMDAwNTM4YTJkMCAgICAgICAgMCAvdmFyL3J1bi9sb2cKCi0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQpu ZXRzdGF0IC1hTAoKQ3VycmVudCBsaXN0ZW4gcXVldWUgc2l6ZXMgKHFsZW4vaW5jcWxlbi9tYXhx bGVuKQpQcm90byBMaXN0ZW4gICAgICAgICBMb2NhbCBBZGRyZXNzICAgICAgICAgCnRjcDQgIDAv MC8xMCAgICAgICAgIGxvY2FsaG9zdC5zbXRwICAgICAgICAgCnRjcDQgIDAvMC8xMjggICAgICAg ICouc3NoICAgICAgICAgICAgICAgICAgCnRjcDYgIDAvMC8xMjggICAgICAgICouc3NoICAgICAg ICAgICAgICAgICAgCnVuaXggIDAvMC80ICAgICAgICAgIC92YXIvcnVuL2RldmQucGlwZQoKLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tCmZzdGF0CgpVU0VSICAgICBDTUQgICAgICAgICAgUElEICAgRkQgTU9VTlQg ICAgICBJTlVNIE1PREUgICAgICAgICBTWnxEViBSL1cKcm9vdCAgICAgc2ggICAgICAgICAgMTA3 NiByb290IC8gICAgICAgICAgICAgMiBkcnd4ci14ci14ICAgIDEwMjQgIHIKcm9vdCAgICAgc2gg ICAgICAgICAgMTA3NiAgIHdkIC8gICAgICAgICAgICAgMiBkcnd4ci14ci14ICAgIDEwMjQgIHIK cm9vdCAgICAgc2ggICAgICAgICAgMTA3NiB0ZXh0IC8gICAgICAgIDE4MTc0NjQgLXIteHIteHIt eCAgMTQwODU2ICByCnJvb3QgICAgIHNoICAgICAgICAgIDEwNzYgICAgMCAvZGV2ICAgICAgICAg MTkgY3J3LXJ3LXJ3LSAgICBudWxsIHJ3CnJvb3QgICAgIHNoICAgICAgICAgIDEwNzYgICAgMSAv ZGV2ICAgICAgICAgMTkgY3J3LXJ3LXJ3LSAgICBudWxsIHJ3CnJvb3QgICAgIHNoICAgICAgICAg IDEwNzYgICAgMiAvZGV2ICAgICAgICAgMTkgY3J3LXJ3LXJ3LSAgICBudWxsIHJ3CnJvb3QgICAg IHNoICAgICAgICAgIDEwNzYgICAxMCAvICAgICAgICAxNDczMTIgLXIteHIteHIteCAgICAyMjU1 ICByCnJvb3QgICAgIHNoICAgICAgICAgICA5Nzkgcm9vdCAvICAgICAgICAgICAgIDIgZHJ3eHIt eHIteCAgICAxMDI0ICByCnJvb3QgICAgIHNoICAgICAgICAgICA5NzkgICB3ZCAvICAgICAgICAg ICAgIDIgZHJ3eHIteHIteCAgICAxMDI0ICByCnJvb3QgICAgIHNoICAgICAgICAgICA5NzkgdGV4 dCAvICAgICAgICAxODE3NDY0IC1yLXhyLXhyLXggIDE0MDg1NiAgcgpyb290ICAgICBzaCAgICAg ICAgICAgOTc5ICAgIDAgL2RldiAgICAgICAgIDE5IGNydy1ydy1ydy0gICAgbnVsbCBydwpyb290 ICAgICBzaCAgICAgICAgICAgOTc5ICAgIDEgL2RldiAgICAgICAgIDE5IGNydy1ydy1ydy0gICAg bnVsbCBydwpyb290ICAgICBzaCAgICAgICAgICAgOTc5ICAgIDIgL2RldiAgICAgICAgIDE5IGNy dy1ydy1ydy0gICAgbnVsbCBydwpyb290ICAgICBzaCAgICAgICAgICAgOTc5ICAgMTAgLyAgICAg ICAgMTQ3Mzc4IC1yLXhyLXhyLXggICAgNDA0OSAgcgpyb290ICAgICBzaCAgICAgICAgICAgOTY4 IHJvb3QgLyAgICAgICAgICAgICAyIGRyd3hyLXhyLXggICAgMTAyNCAgcgpyb290ICAgICBzaCAg ICAgICAgICAgOTY4ICAgd2QgLyAgICAgICAgICAgICAyIGRyd3hyLXhyLXggICAgMTAyNCAgcgpy b290ICAgICBzaCAgICAgICAgICAgOTY4IHRleHQgLyAgICAgICAgMTgxNzQ2NCAtci14ci14ci14 ICAxNDA4NTYgIHIKcm9vdCAgICAgc2ggICAgICAgICAgIDk2OCAgICAwIC9kZXYgICAgICAgICAx OSBjcnctcnctcnctICAgIG51bGwgcncKcm9vdCAgICAgc2ggICAgICAgICAgIDk2OCAgICAxIC9k ZXYgICAgICAgICAxOSBjcnctcnctcnctICAgIG51bGwgcncKcm9vdCAgICAgc2ggICAgICAgICAg IDk2OCAgICAyIC9kZXYgICAgICAgICAxOSBjcnctcnctcnctICAgIG51bGwgcncKcm9vdCAgICAg c2ggICAgICAgICAgIDk2OCAgIDEwIC8gICAgICAgIDE0NzIyOCAtcnd4ci14ci14ICAgIDIzMDQg IHIKcm9vdCAgICAgbmV3bmZzIDAgICAgIDk0NSByb290IC8gICAgICAgICAgICAgMiBkcnd4ci14 ci14ICAgIDEwMjQgIHIKcm9vdCAgICAgbmV3bmZzIDAgICAgIDk0NSAgIHdkIC8gICAgICAgICAg ICAgMiBkcnd4ci14ci14ICAgIDEwMjQgIHIKcm9vdCAgICAgY3NoICAgICAgICAgIDk0MiByb290 IC8gICAgICAgICAgICAgMiBkcnd4ci14ci14ICAgIDEwMjQgIHIKcm9vdCAgICAgY3NoICAgICAg ICAgIDk0MiAgIHdkIC0gICAgICAgICAtICAgPyhuZXduZnMpICAgIC0Kcm9vdCAgICAgY3NoICAg ICAgICAgIDk0MiB0ZXh0IC8gICAgICAgIDE4MTc0MzEgLXIteHIteHIteCAgMzc3MzUyICByCnJv b3QgICAgIGNzaCAgICAgICAgICA5NDIgY3R0eSAvZGV2ICAgICAgICAgNDcgY3J3LS0tLS0tLSAg IHR0eXYwIHJ3CnJvb3QgICAgIGNzaCAgICAgICAgICA5NDIgICAxNSAvZGV2ICAgICAgICAgNDcg Y3J3LS0tLS0tLSAgIHR0eXYwIHJ3CnJvb3QgICAgIGNzaCAgICAgICAgICA5NDIgICAxNiAvZGV2 ICAgICAgICAgNDcgY3J3LS0tLS0tLSAgIHR0eXYwIHJ3CnJvb3QgICAgIGNzaCAgICAgICAgICA5 NDIgICAxNyAvZGV2ICAgICAgICAgNDcgY3J3LS0tLS0tLSAgIHR0eXYwIHJ3CnJvb3QgICAgIGNz aCAgICAgICAgICA5NDIgICAxOCAvZGV2ICAgICAgICAgNDcgY3J3LS0tLS0tLSAgIHR0eXYwIHJ3 CnJvb3QgICAgIGNzaCAgICAgICAgICA5NDIgICAxOSAvZGV2ICAgICAgICAgNDcgY3J3LS0tLS0t LSAgIHR0eXYwIHJ3CnJvb3QgICAgIGdldHR5ICAgICAgICA4NzEgcm9vdCAvICAgICAgICAgICAg IDIgZHJ3eHIteHIteCAgICAxMDI0ICByCnJvb3QgICAgIGdldHR5ICAgICAgICA4NzEgICB3ZCAv ICAgICAgICAgICAgIDIgZHJ3eHIteHIteCAgICAxMDI0ICByCnJvb3QgICAgIGdldHR5ICAgICAg ICA4NzEgdGV4dCAvICAgICAgICAxMTAyNDg4IC1yLXhyLXhyLXggICAyNzMwNCAgcgpyb290ICAg ICBnZXR0eSAgICAgICAgODcxIGN0dHkgL2RldiAgICAgICAgIDU0IGNydy0tLS0tLS0gICB0dHl2 NyBydwpyb290ICAgICBnZXR0eSAgICAgICAgODcxICAgIDAgL2RldiAgICAgICAgIDU0IGNydy0t LS0tLS0gICB0dHl2NyBydwpyb290ICAgICBnZXR0eSAgICAgICAgODcxICAgIDEgL2RldiAgICAg ICAgIDU0IGNydy0tLS0tLS0gICB0dHl2NyBydwpyb290ICAgICBnZXR0eSAgICAgICAgODcxICAg IDIgL2RldiAgICAgICAgIDU0IGNydy0tLS0tLS0gICB0dHl2NyBydwpyb290ICAgICBnZXR0eSAg ICAgICAgODcwIHJvb3QgLyAgICAgICAgICAgICAyIGRyd3hyLXhyLXggICAgMTAyNCAgcgpyb290 ICAgICBnZXR0eSAgICAgICAgODcwICAgd2QgLyAgICAgICAgICAgICAyIGRyd3hyLXhyLXggICAg MTAyNCAgcgpyb290ICAgICBnZXR0eSAgICAgICAgODcwIHRleHQgLyAgICAgICAgMTEwMjQ4OCAt ci14ci14ci14ICAgMjczMDQgIHIKcm9vdCAgICAgZ2V0dHkgICAgICAgIDg3MCBjdHR5IC9kZXYg ICAgICAgICA1MyBjcnctLS0tLS0tICAgdHR5djYgcncKcm9vdCAgICAgZ2V0dHkgICAgICAgIDg3 MCAgICAwIC9kZXYgICAgICAgICA1MyBjcnctLS0tLS0tICAgdHR5djYgcncKcm9vdCAgICAgZ2V0 dHkgICAgICAgIDg3MCAgICAxIC9kZXYgICAgICAgICA1MyBjcnctLS0tLS0tICAgdHR5djYgcncK cm9vdCAgICAgZ2V0dHkgICAgICAgIDg3MCAgICAyIC9kZXYgICAgICAgICA1MyBjcnctLS0tLS0t ICAgdHR5djYgcncKcm9vdCAgICAgZ2V0dHkgICAgICAgIDg2OSByb290IC8gICAgICAgICAgICAg MiBkcnd4ci14ci14ICAgIDEwMjQgIHIKcm9vdCAgICAgZ2V0dHkgICAgICAgIDg2OSAgIHdkIC8g ICAgICAgICAgICAgMiBkcnd4ci14ci14ICAgIDEwMjQgIHIKcm9vdCAgICAgZ2V0dHkgICAgICAg IDg2OSB0ZXh0IC8gICAgICAgIDExMDI0ODggLXIteHIteHIteCAgIDI3MzA0ICByCnJvb3QgICAg IGdldHR5ICAgICAgICA4NjkgY3R0eSAvZGV2ICAgICAgICAgNTIgY3J3LS0tLS0tLSAgIHR0eXY1 IHJ3CnJvb3QgICAgIGdldHR5ICAgICAgICA4NjkgICAgMCAvZGV2ICAgICAgICAgNTIgY3J3LS0t LS0tLSAgIHR0eXY1IHJ3CnJvb3QgICAgIGdldHR5ICAgICAgICA4NjkgICAgMSAvZGV2ICAgICAg ICAgNTIgY3J3LS0tLS0tLSAgIHR0eXY1IHJ3CnJvb3QgICAgIGdldHR5ICAgICAgICA4NjkgICAg MiAvZGV2ICAgICAgICAgNTIgY3J3LS0tLS0tLSAgIHR0eXY1IHJ3CnJvb3QgICAgIGdldHR5ICAg ICAgICA4Njggcm9vdCAvICAgICAgICAgICAgIDIgZHJ3eHIteHIteCAgICAxMDI0ICByCnJvb3Qg ICAgIGdldHR5ICAgICAgICA4NjggICB3ZCAvICAgICAgICAgICAgIDIgZHJ3eHIteHIteCAgICAx MDI0ICByCnJvb3QgICAgIGdldHR5ICAgICAgICA4NjggdGV4dCAvICAgICAgICAxMTAyNDg4IC1y LXhyLXhyLXggICAyNzMwNCAgcgpyb290ICAgICBnZXR0eSAgICAgICAgODY4IGN0dHkgL2RldiAg ICAgICAgIDUxIGNydy0tLS0tLS0gICB0dHl2NCBydwpyb290ICAgICBnZXR0eSAgICAgICAgODY4 ICAgIDAgL2RldiAgICAgICAgIDUxIGNydy0tLS0tLS0gICB0dHl2NCBydwpyb290ICAgICBnZXR0 eSAgICAgICAgODY4ICAgIDEgL2RldiAgICAgICAgIDUxIGNydy0tLS0tLS0gICB0dHl2NCBydwpy b290ICAgICBnZXR0eSAgICAgICAgODY4ICAgIDIgL2RldiAgICAgICAgIDUxIGNydy0tLS0tLS0g ICB0dHl2NCBydwpyb290ICAgICBnZXR0eSAgICAgICAgODY3IHJvb3QgLyAgICAgICAgICAgICAy IGRyd3hyLXhyLXggICAgMTAyNCAgcgpyb290ICAgICBnZXR0eSAgICAgICAgODY3ICAgd2QgLyAg ICAgICAgICAgICAyIGRyd3hyLXhyLXggICAgMTAyNCAgcgpyb290ICAgICBnZXR0eSAgICAgICAg ODY3IHRleHQgLyAgICAgICAgMTEwMjQ4OCAtci14ci14ci14ICAgMjczMDQgIHIKcm9vdCAgICAg Z2V0dHkgICAgICAgIDg2NyBjdHR5IC9kZXYgICAgICAgICA1MCBjcnctLS0tLS0tICAgdHR5djMg cncKcm9vdCAgICAgZ2V0dHkgICAgICAgIDg2NyAgICAwIC9kZXYgICAgICAgICA1MCBjcnctLS0t LS0tICAgdHR5djMgcncKcm9vdCAgICAgZ2V0dHkgICAgICAgIDg2NyAgICAxIC9kZXYgICAgICAg ICA1MCBjcnctLS0tLS0tICAgdHR5djMgcncKcm9vdCAgICAgZ2V0dHkgICAgICAgIDg2NyAgICAy IC9kZXYgICAgICAgICA1MCBjcnctLS0tLS0tICAgdHR5djMgcncKcm9vdCAgICAgZ2V0dHkgICAg ICAgIDg2NiByb290IC8gICAgICAgICAgICAgMiBkcnd4ci14ci14ICAgIDEwMjQgIHIKcm9vdCAg ICAgZ2V0dHkgICAgICAgIDg2NiAgIHdkIC8gICAgICAgICAgICAgMiBkcnd4ci14ci14ICAgIDEw MjQgIHIKcm9vdCAgICAgZ2V0dHkgICAgICAgIDg2NiB0ZXh0IC8gICAgICAgIDExMDI0ODggLXIt eHIteHIteCAgIDI3MzA0ICByCnJvb3QgICAgIGdldHR5ICAgICAgICA4NjYgY3R0eSAvZGV2ICAg ICAgICAgNDkgY3J3LS0tLS0tLSAgIHR0eXYyIHJ3CnJvb3QgICAgIGdldHR5ICAgICAgICA4NjYg ICAgMCAvZGV2ICAgICAgICAgNDkgY3J3LS0tLS0tLSAgIHR0eXYyIHJ3CnJvb3QgICAgIGdldHR5 ICAgICAgICA4NjYgICAgMSAvZGV2ICAgICAgICAgNDkgY3J3LS0tLS0tLSAgIHR0eXYyIHJ3CnJv b3QgICAgIGdldHR5ICAgICAgICA4NjYgICAgMiAvZGV2ICAgICAgICAgNDkgY3J3LS0tLS0tLSAg IHR0eXYyIHJ3CnJvb3QgICAgIGdldHR5ICAgICAgICA4NjUgcm9vdCAvICAgICAgICAgICAgIDIg ZHJ3eHIteHIteCAgICAxMDI0ICByCnJvb3QgICAgIGdldHR5ICAgICAgICA4NjUgICB3ZCAvICAg ICAgICAgICAgIDIgZHJ3eHIteHIteCAgICAxMDI0ICByCnJvb3QgICAgIGdldHR5ICAgICAgICA4 NjUgdGV4dCAvICAgICAgICAxMTAyNDg4IC1yLXhyLXhyLXggICAyNzMwNCAgcgpyb290ICAgICBn ZXR0eSAgICAgICAgODY1IGN0dHkgL2RldiAgICAgICAgIDQ4IGNydy0tLS0tLS0gICB0dHl2MSBy dwpyb290ICAgICBnZXR0eSAgICAgICAgODY1ICAgIDAgL2RldiAgICAgICAgIDQ4IGNydy0tLS0t LS0gICB0dHl2MSBydwpyb290ICAgICBnZXR0eSAgICAgICAgODY1ICAgIDEgL2RldiAgICAgICAg IDQ4IGNydy0tLS0tLS0gICB0dHl2MSBydwpyb290ICAgICBnZXR0eSAgICAgICAgODY1ICAgIDIg L2RldiAgICAgICAgIDQ4IGNydy0tLS0tLS0gICB0dHl2MSBydwpyb290ICAgICBsb2dpbiAgICAg ICAgODY0IHJvb3QgLyAgICAgICAgICAgICAyIGRyd3hyLXhyLXggICAgMTAyNCAgcgpyb290ICAg ICBsb2dpbiAgICAgICAgODY0ICAgd2QgLyAgICAgICAgNzU3NzYwIGRyd3hyLXhyLXggICAgIDUx MiAgcgpyb290ICAgICBsb2dpbiAgICAgICAgODY0IHRleHQgLyAgICAgICAgMTA5MTgyMSAtci1z ci14ci14ICAgMjQ1ODQgIHIKcm9vdCAgICAgbG9naW4gICAgICAgIDg2NCBjdHR5IC9kZXYgICAg ICAgICA0NyBjcnctLS0tLS0tICAgdHR5djAgcncKcm9vdCAgICAgbG9naW4gICAgICAgIDg2NCAg ICAwIC9kZXYgICAgICAgICA0NyBjcnctLS0tLS0tICAgdHR5djAgcncKcm9vdCAgICAgbG9naW4g ICAgICAgIDg2NCAgICAxIC9kZXYgICAgICAgICA0NyBjcnctLS0tLS0tICAgdHR5djAgcncKcm9v dCAgICAgbG9naW4gICAgICAgIDg2NCAgICAyIC9kZXYgICAgICAgICA0NyBjcnctLS0tLS0tICAg dHR5djAgcncKcm9vdCAgICAgbG9naW4gICAgICAgIDg2NCAgICAzKiBsb2NhbCBkZ3JhbSBmZmZm ZmUwMDA1MzhhYTUwIDwtPiBmZmZmZmUwMDA1MzhhNzgwCnJvb3QgICAgIGNyb24gICAgICAgICA4 Mjggcm9vdCAvICAgICAgICAgICAgIDIgZHJ3eHIteHIteCAgICAxMDI0ICByCnJvb3QgICAgIGNy b24gICAgICAgICA4MjggICB3ZCAvICAgICAgICAyODQxNjcgZHJ3eHIteC0tLSAgICAgNTEyICBy CnJvb3QgICAgIGNyb24gICAgICAgICA4MjggdGV4dCAvICAgICAgICAxMDkyMTc3IC1yLXhyLXhy LXggICA0MTA5NiAgcgpyb290ICAgICBjcm9uICAgICAgICAgODI4ICAgIDAgL2RldiAgICAgICAg IDE5IGNydy1ydy1ydy0gICAgbnVsbCBydwpyb290ICAgICBjcm9uICAgICAgICAgODI4ICAgIDEg L2RldiAgICAgICAgIDE5IGNydy1ydy1ydy0gICAgbnVsbCBydwpyb290ICAgICBjcm9uICAgICAg ICAgODI4ICAgIDIgL2RldiAgICAgICAgIDE5IGNydy1ydy1ydy0gICAgbnVsbCBydwpyb290ICAg ICBjcm9uICAgICAgICAgODI4ICAgIDMgLyAgICAgICAgMjg0MjQ4IC1ydy0tLS0tLS0gICAgICAg MyAgdwpzbW1zcCAgICBzZW5kbWFpbCAgICAgODI0IHJvb3QgLyAgICAgICAgICAgICAyIGRyd3hy LXhyLXggICAgMTAyNCAgcgpzbW1zcCAgICBzZW5kbWFpbCAgICAgODI0ICAgd2QgLyAgICAgICAg Mjg0MTkwIGRyd3hyd3gtLS0gICAgIDUxMiAgcgpzbW1zcCAgICBzZW5kbWFpbCAgICAgODI0IHRl eHQgLyAgICAgICAgMTA5Mzg4OCAtci14ci1zci14ICA3MTA3MjAgIHIKc21tc3AgICAgc2VuZG1h aWwgICAgIDgyNCAgICAwIC9kZXYgICAgICAgICAxOSBjcnctcnctcnctICAgIG51bGwgIHIKc21t c3AgICAgc2VuZG1haWwgICAgIDgyNCAgICAxIC9kZXYgICAgICAgICAxOSBjcnctcnctcnctICAg IG51bGwgIHcKc21tc3AgICAgc2VuZG1haWwgICAgIDgyNCAgICAyIC9kZXYgICAgICAgICAxOSBj cnctcnctcnctICAgIG51bGwgIHcKc21tc3AgICAgc2VuZG1haWwgICAgIDgyNCAgICAzKiBsb2Nh bCBkZ3JhbSBmZmZmZmUwMDA1MzhhMmQwIDwtPiBmZmZmZmUwMDA1MzhhODcwCnNtbXNwICAgIHNl bmRtYWlsICAgICA4MjQgICAgNCAvICAgICAgICAyODQyMDYgLXJ3LS0tLS0tLSAgICAgIDQ5ICB3 CnJvb3QgICAgIHNlbmRtYWlsICAgICA4MjEgcm9vdCAvICAgICAgICAgICAgIDIgZHJ3eHIteHIt eCAgICAxMDI0ICByCnJvb3QgICAgIHNlbmRtYWlsICAgICA4MjEgICB3ZCAvICAgICAgICAyODQx ODcgZHJ3eHIteHIteCAgICAgNTEyICByCnJvb3QgICAgIHNlbmRtYWlsICAgICA4MjEgdGV4dCAv ICAgICAgICAxMDkzODg4IC1yLXhyLXNyLXggIDcxMDcyMCAgcgpyb290ICAgICBzZW5kbWFpbCAg ICAgODIxICAgIDAgL2RldiAgICAgICAgIDE5IGNydy1ydy1ydy0gICAgbnVsbCAgcgpyb290ICAg ICBzZW5kbWFpbCAgICAgODIxICAgIDEgL2RldiAgICAgICAgIDE5IGNydy1ydy1ydy0gICAgbnVs bCAgdwpyb290ICAgICBzZW5kbWFpbCAgICAgODIxICAgIDIgL2RldiAgICAgICAgIDE5IGNydy1y dy1ydy0gICAgbnVsbCAgdwpyb290ICAgICBzZW5kbWFpbCAgICAgODIxICAgIDMqIGludGVybmV0 IHN0cmVhbSB0Y3AgZmZmZmZlMDAwNTQ2NjAwMApyb290ICAgICBzZW5kbWFpbCAgICAgODIxICAg IDQqIGxvY2FsIGRncmFtIGZmZmZmZTAwMDUzOGEzYzAgPC0+IGZmZmZmZTAwMDUzOGE3ODAKcm9v dCAgICAgc2VuZG1haWwgICAgIDgyMSAgICA1IC8gICAgICAgIDI4NTYwOSAtcnctLS0tLS0tICAg ICAgNzggIHcKcm9vdCAgICAgc3NoZCAgICAgICAgIDgxOCByb290IC8gICAgICAgICAgICAgMiBk cnd4ci14ci14ICAgIDEwMjQgIHIKcm9vdCAgICAgc3NoZCAgICAgICAgIDgxOCAgIHdkIC8gICAg ICAgICAgICAgMiBkcnd4ci14ci14ICAgIDEwMjQgIHIKcm9vdCAgICAgc3NoZCAgICAgICAgIDgx OCB0ZXh0IC8gICAgICAgIDEwODkzMjEgLXIteHIteHIteCAgMjczMTIwICByCnJvb3QgICAgIHNz aGQgICAgICAgICA4MTggICAgMCAvZGV2ICAgICAgICAgMTkgY3J3LXJ3LXJ3LSAgICBudWxsIHJ3 CnJvb3QgICAgIHNzaGQgICAgICAgICA4MTggICAgMSAvZGV2ICAgICAgICAgMTkgY3J3LXJ3LXJ3 LSAgICBudWxsIHJ3CnJvb3QgICAgIHNzaGQgICAgICAgICA4MTggICAgMiAvZGV2ICAgICAgICAg MTkgY3J3LXJ3LXJ3LSAgICBudWxsIHJ3CnJvb3QgICAgIHNzaGQgICAgICAgICA4MTggICAgMyog aW50ZXJuZXQ2IHN0cmVhbSB0Y3AgZmZmZmZlMDAwNTQ2NTAwMApyb290ICAgICBzc2hkICAgICAg ICAgODE4ICAgIDQqIGludGVybmV0IHN0cmVhbSB0Y3AgZmZmZmZlMDAwNTQ2NTdhMApyb290ICAg ICBudHBkICAgICAgICAgODA0IHJvb3QgLyAgICAgICAgICAgICAyIGRyd3hyLXhyLXggICAgMTAy NCAgcgpyb290ICAgICBudHBkICAgICAgICAgODA0ICAgd2QgLyAgICAgICAgICAgICAyIGRyd3hy LXhyLXggICAgMTAyNCAgcgpyb290ICAgICBudHBkICAgICAgICAgODA0IHRleHQgLyAgICAgICAg MTA5MjYzNyAtci14ci14ci14ICAzOTEyMDAgIHIKcm9vdCAgICAgbnRwZCAgICAgICAgIDgwNCAg ICAwIC9kZXYgICAgICAgICAxOSBjcnctcnctcnctICAgIG51bGwgcncKcm9vdCAgICAgbnRwZCAg ICAgICAgIDgwNCAgICAxIC9kZXYgICAgICAgICAxOSBjcnctcnctcnctICAgIG51bGwgcncKcm9v dCAgICAgbnRwZCAgICAgICAgIDgwNCAgICAyIC9kZXYgICAgICAgICAxOSBjcnctcnctcnctICAg IG51bGwgcncKcm9vdCAgICAgbnRwZCAgICAgICAgIDgwNCAgICAzKiBsb2NhbCBkZ3JhbSBmZmZm ZmUwMDA1MzhhNjkwIDwtPiBmZmZmZmUwMDA1MzhhNzgwCnJvb3QgICAgIG50cGQgICAgICAgICA4 MDQgICAyMCogaW50ZXJuZXQgZGdyYW0gdWRwIGZmZmZmZTAwMDUyYjMwMDAKcm9vdCAgICAgbnRw ZCAgICAgICAgIDgwNCAgIDIxKiBpbnRlcm5ldDYgZGdyYW0gdWRwIGZmZmZmZTAwMDUyYjM2MjAK cm9vdCAgICAgbnRwZCAgICAgICAgIDgwNCAgIDIyKiBpbnRlcm5ldCBkZ3JhbSB1ZHAgZmZmZmZl MDAwNTJiMzQ5OApyb290ICAgICBudHBkICAgICAgICAgODA0ICAgMjMqIGludGVybmV0IGRncmFt IHVkcCBmZmZmZmUwMDA1MmIzN2E4CnJvb3QgICAgIG50cGQgICAgICAgICA4MDQgICAyNCogaW50 ZXJuZXQ2IGRncmFtIHVkcCBmZmZmZmUwMDA1MmIzYzQwCnJvb3QgICAgIG50cGQgICAgICAgICA4 MDQgICAyNSogaW50ZXJuZXQ2IGRncmFtIHVkcCBmZmZmZmUwMDA1MmQ0MDAwCnJvb3QgICAgIG50 cGQgICAgICAgICA4MDQgICAyNiogaW50ZXJuZXQgZGdyYW0gdWRwIGZmZmZmZTAwMDUyYjNkYzgK cm9vdCAgICAgbnRwZCAgICAgICAgIDgwNCAgIDI3KiByb3V0ZSByYXcgMCBmZmZmZmUwMDA1NTBh YWEwCnJvb3QgICAgIHN5c2xvZ2QgICAgICA3MDcgcm9vdCAvICAgICAgICAgICAgIDIgZHJ3eHIt eHIteCAgICAxMDI0ICByCnJvb3QgICAgIHN5c2xvZ2QgICAgICA3MDcgICB3ZCAvICAgICAgICAg ICAgIDIgZHJ3eHIteHIteCAgICAxMDI0ICByCnJvb3QgICAgIHN5c2xvZ2QgICAgICA3MDcgdGV4 dCAvICAgICAgICAxMDkzOTA3IC1yLXhyLXhyLXggICAzOTc2OCAgcgpyb290ICAgICBzeXNsb2dk ICAgICAgNzA3ICAgIDAgL2RldiAgICAgICAgIDE5IGNydy1ydy1ydy0gICAgbnVsbCBydwpyb290 ICAgICBzeXNsb2dkICAgICAgNzA3ICAgIDEgL2RldiAgICAgICAgIDE5IGNydy1ydy1ydy0gICAg bnVsbCBydwpyb290ICAgICBzeXNsb2dkICAgICAgNzA3ICAgIDIgL2RldiAgICAgICAgIDE5IGNy dy1ydy1ydy0gICAgbnVsbCBydwpyb290ICAgICBzeXNsb2dkICAgICAgNzA3ICAgIDMgLyAgICAg ICAgMjg0NTAxIC1ydy0tLS0tLS0gICAgICAgMyAgdwpyb290ICAgICBzeXNsb2dkICAgICAgNzA3 ICAgIDQqIGxvY2FsIGRncmFtIGZmZmZmZTAwMDUzOGE4NzAKcm9vdCAgICAgc3lzbG9nZCAgICAg IDcwNyAgICA1KiBsb2NhbCBkZ3JhbSBmZmZmZmUwMDA1MzhhNzgwCnJvb3QgICAgIHN5c2xvZ2Qg ICAgICA3MDcgICAgNiogaW50ZXJuZXQ2IGRncmFtIHVkcCBmZmZmZmUwMDA1MmIzMzEwCnJvb3Qg ICAgIHN5c2xvZ2QgICAgICA3MDcgICAgNyogaW50ZXJuZXQgZGdyYW0gdWRwIGZmZmZmZTAwMDUy YjMxODgKcm9vdCAgICAgc3lzbG9nZCAgICAgIDcwNyAgICA4IC9kZXYgICAgICAgICAzNSBjcnct LS0tLS0tICAgIGtsb2cgIHIKcm9vdCAgICAgc3lzbG9nZCAgICAgIDcwNyAgIDEwIC0gICAgICAg ICAtICAgICAgICAgYmFkICAgIC0Kcm9vdCAgICAgc3lzbG9nZCAgICAgIDcwNyAgIDExIC8gICAg ICAgIDI4NDIyOSAtcnctci0tci0tICAgIDc4NjQgIHcKcm9vdCAgICAgc3lzbG9nZCAgICAgIDcw NyAgIDEyIC8gICAgICAgIDI4NDIzMSAtcnctLS0tLS0tICAgICAgNTkgIHcKcm9vdCAgICAgc3lz bG9nZCAgICAgIDcwNyAgIDEzIC8gICAgICAgIDI4NDIyNCAtcnctLS0tLS0tICAgMTYxNzggIHcK cm9vdCAgICAgc3lzbG9nZCAgICAgIDcwNyAgIDE0IC8gICAgICAgIDI4NDI0NyAtcnctci0tLS0t ICAgIDk5NzkgIHcKcm9vdCAgICAgc3lzbG9nZCAgICAgIDcwNyAgIDE1IC8gICAgICAgIDI4NDIy NyAtcnctci0tci0tICAgICAgNTkgIHcKcm9vdCAgICAgc3lzbG9nZCAgICAgIDcwNyAgIDE2IC8g ICAgICAgIDI4NDIzMiAtcnctLS0tLS0tICAgICAgNTkgIHcKcm9vdCAgICAgc3lzbG9nZCAgICAg IDcwNyAgIDE3IC8gICAgICAgIDI4NDIyNSAtcnctLS0tLS0tICAgNDU3NTcgIHcKcm9vdCAgICAg c3lzbG9nZCAgICAgIDcwNyAgIDE4IC8gICAgICAgIDI4NDIyNiAtcnctLS0tLS0tICAgICAgNTkg IHcKcm9vdCAgICAgc3lzbG9nZCAgICAgIDcwNyAgIDE5IC8gICAgICAgIDI4NDIzMCAtcnctci0t LS0tICAgICAgNTkgIHcKcm9vdCAgICAgZGV2ZCAgICAgICAgIDYwNCByb290IC8gICAgICAgICAg ICAgMiBkcnd4ci14ci14ICAgIDEwMjQgIHIKcm9vdCAgICAgZGV2ZCAgICAgICAgIDYwNCAgIHdk IC8gICAgICAgICAgICAgMiBkcnd4ci14ci14ICAgIDEwMjQgIHIKcm9vdCAgICAgZGV2ZCAgICAg ICAgIDYwNCB0ZXh0IC8gICAgICAgIDQyNjM0NyAtci14ci14ci14ICA0NjAxNjAgIHIKcm9vdCAg ICAgZGV2ZCAgICAgICAgIDYwNCAgICAwIC9kZXYgICAgICAgICAxOSBjcnctcnctcnctICAgIG51 bGwgcncKcm9vdCAgICAgZGV2ZCAgICAgICAgIDYwNCAgICAxIC9kZXYgICAgICAgICAxOSBjcnct cnctcnctICAgIG51bGwgcncKcm9vdCAgICAgZGV2ZCAgICAgICAgIDYwNCAgICAyIC9kZXYgICAg ICAgICAxOSBjcnctcnctcnctICAgIG51bGwgcncKcm9vdCAgICAgZGV2ZCAgICAgICAgIDYwNCAg ICAzIC9kZXYgICAgICAgICAgNCBjcnctLS0tLS0tICBkZXZjdGwgIHIKcm9vdCAgICAgZGV2ZCAg ICAgICAgIDYwNCAgICA0KiBsb2NhbCBzdHJlYW0gZmZmZmZlMDAwNTM4YWMzMApyb290ICAgICBk ZXZkICAgICAgICAgNjA0ICAgIDUgLyAgICAgICAgMjg0NDU0IC1ydy0tLS0tLS0gICAgICAgMyAg dwpfZGhjcCAgICBkaGNsaWVudCAgICAgNTg4IHJvb3QgLyAgICAgICAgMjg0MTY5IGRyLXhyLXhy LXggICAgIDUxMiAgcgpfZGhjcCAgICBkaGNsaWVudCAgICAgNTg4ICAgd2QgLyAgICAgICAgMjg0 MTY5IGRyLXhyLXhyLXggICAgIDUxMiAgcgpfZGhjcCAgICBkaGNsaWVudCAgICAgNTg4IGphaWwg LyAgICAgICAgMjg0MTY5IGRyLXhyLXhyLXggICAgIDUxMiAgcgpfZGhjcCAgICBkaGNsaWVudCAg ICAgNTg4IHRleHQgLyAgICAgICAgNDI2MzU1IC1yLXhyLXhyLXggICA5MTc2OCAgcgpfZGhjcCAg ICBkaGNsaWVudCAgICAgNTg4ICAgIDAgL2RldiAgICAgICAgIDE5IGNydy1ydy1ydy0gICAgbnVs bCBydwpfZGhjcCAgICBkaGNsaWVudCAgICAgNTg4ICAgIDEgL2RldiAgICAgICAgIDE5IGNydy1y dy1ydy0gICAgbnVsbCBydwpfZGhjcCAgICBkaGNsaWVudCAgICAgNTg4ICAgIDIgL2RldiAgICAg ICAgIDE5IGNydy1ydy1ydy0gICAgbnVsbCBydwpfZGhjcCAgICBkaGNsaWVudCAgICAgNTg4ICAg IDMgLyAgICAgICAgMjg0NDQ4IC1ydy0tLS0tLS0gICAgICAgMyAgdwpfZGhjcCAgICBkaGNsaWVu dCAgICAgNTg4ICAgIDUqIHJvdXRlIHJhdyAwIGZmZmZmZTAwMDUyYTkwMDAKX2RoY3AgICAgZGhj bGllbnQgICAgIDU4OCAgICA2KiBwaXBlIGZmZmZmZTAwMDUyMTUxNTggPC0+IGZmZmZmZTAwMDUy MTUwMDAgICAgICAwIHJ3Cl9kaGNwICAgIGRoY2xpZW50ICAgICA1ODggICAgNyAvICAgICAgICAy ODQyMzcgLS0tLS0tLS0tLSAgICAgODg1ICB3Cl9kaGNwICAgIGRoY2xpZW50ICAgICA1ODggICAg OCAvZGV2ICAgICAgICAgMTEgY3J3LS0tLS0tLSAgICAgYnBmIHJ3Cl9kaGNwICAgIGRoY2xpZW50 ICAgICA1ODggICAgOSogaW50ZXJuZXQgcmF3IGlwIGZmZmZmZTAwMDU0OWRkYzgKcm9vdCAgICAg ZGhjbGllbnQgICAgIDU3NyByb290IC8gICAgICAgICAgICAgMiBkcnd4ci14ci14ICAgIDEwMjQg IHIKcm9vdCAgICAgZGhjbGllbnQgICAgIDU3NyAgIHdkIC8gICAgICAgICAgICAgMiBkcnd4ci14 ci14ICAgIDEwMjQgIHIKcm9vdCAgICAgZGhjbGllbnQgICAgIDU3NyB0ZXh0IC8gICAgICAgIDQy NjM1NSAtci14ci14ci14ICAgOTE3NjggIHIKcm9vdCAgICAgZGhjbGllbnQgICAgIDU3NyAgICAw IC9kZXYgICAgICAgICAxOSBjcnctcnctcnctICAgIG51bGwgcncKcm9vdCAgICAgZGhjbGllbnQg ICAgIDU3NyAgICAxIC9kZXYgICAgICAgICAxOSBjcnctcnctcnctICAgIG51bGwgcncKcm9vdCAg ICAgZGhjbGllbnQgICAgIDU3NyAgICAyIC9kZXYgICAgICAgICAxOSBjcnctcnctcnctICAgIG51 bGwgcncKcm9vdCAgICAgZGhjbGllbnQgICAgIDU3NyAgICAzIC8gICAgICAgIDI4NDQ0OCAtcnct LS0tLS0tICAgICAgIDMgIHcKcm9vdCAgICAgZGhjbGllbnQgICAgIDU3NyAgICA1KiBwaXBlIGZm ZmZmZTAwMDUyMTUwMDAgPC0+IGZmZmZmZTAwMDUyMTUxNTggICAgICAwIHJ3Cl9kaGNwICAgIGRo Y2xpZW50ICAgICA1NTcgcm9vdCAvICAgICAgICAyODQxNjkgZHIteHIteHIteCAgICAgNTEyICBy Cl9kaGNwICAgIGRoY2xpZW50ICAgICA1NTcgICB3ZCAvICAgICAgICAyODQxNjkgZHIteHIteHIt eCAgICAgNTEyICByCl9kaGNwICAgIGRoY2xpZW50ICAgICA1NTcgamFpbCAvICAgICAgICAyODQx NjkgZHIteHIteHIteCAgICAgNTEyICByCl9kaGNwICAgIGRoY2xpZW50ICAgICA1NTcgdGV4dCAv ICAgICAgICA0MjYzNTUgLXIteHIteHIteCAgIDkxNzY4ICByCl9kaGNwICAgIGRoY2xpZW50ICAg ICA1NTcgICAgMCAvZGV2ICAgICAgICAgMTkgY3J3LXJ3LXJ3LSAgICBudWxsIHJ3Cl9kaGNwICAg IGRoY2xpZW50ICAgICA1NTcgICAgMSAvZGV2ICAgICAgICAgMTkgY3J3LXJ3LXJ3LSAgICBudWxs IHJ3Cl9kaGNwICAgIGRoY2xpZW50ICAgICA1NTcgICAgMiAvZGV2ICAgICAgICAgMTkgY3J3LXJ3 LXJ3LSAgICBudWxsIHJ3Cl9kaGNwICAgIGRoY2xpZW50ICAgICA1NTcgICAgMyAvICAgICAgICAy ODQ0NDcgLXJ3LS0tLS0tLSAgICAgICAzICB3Cl9kaGNwICAgIGRoY2xpZW50ICAgICA1NTcgICAg NSogcm91dGUgcmF3IDAgZmZmZmZlMDAwNTJiMjAwMApfZGhjcCAgICBkaGNsaWVudCAgICAgNTU3 ICAgIDYqIHBpcGUgZmZmZmZlMDAwNTIxYzQzMCA8LT4gZmZmZmZlMDAwNTIxYzJkOCAgICAgIDAg cncKX2RoY3AgICAgZGhjbGllbnQgICAgIDU1NyAgICA3IC8gICAgICAgIDI4NDIxOCAtLS0tLS0t LS0tICAgICA5MTQgIHcKX2RoY3AgICAgZGhjbGllbnQgICAgIDU1NyAgICA4IC9kZXYgICAgICAg ICAxMSBjcnctLS0tLS0tICAgICBicGYgcncKX2RoY3AgICAgZGhjbGllbnQgICAgIDU1NyAgICA5 KiBpbnRlcm5ldCByYXcgaXAgZmZmZmZlMDAwNTQ5NDAwMApyb290ICAgICBkaGNsaWVudCAgICAg NTE5IHJvb3QgLyAgICAgICAgICAgICAyIGRyd3hyLXhyLXggICAgMTAyNCAgcgpyb290ICAgICBk aGNsaWVudCAgICAgNTE5ICAgd2QgLyAgICAgICAgICAgICAyIGRyd3hyLXhyLXggICAgMTAyNCAg cgpyb290ICAgICBkaGNsaWVudCAgICAgNTE5IHRleHQgLyAgICAgICAgNDI2MzU1IC1yLXhyLXhy LXggICA5MTc2OCAgcgpyb290ICAgICBkaGNsaWVudCAgICAgNTE5ICAgIDAgL2RldiAgICAgICAg IDE5IGNydy1ydy1ydy0gICAgbnVsbCBydwpyb290ICAgICBkaGNsaWVudCAgICAgNTE5ICAgIDEg L2RldiAgICAgICAgIDE5IGNydy1ydy1ydy0gICAgbnVsbCBydwpyb290ICAgICBkaGNsaWVudCAg ICAgNTE5ICAgIDIgL2RldiAgICAgICAgIDE5IGNydy1ydy1ydy0gICAgbnVsbCBydwpyb290ICAg ICBkaGNsaWVudCAgICAgNTE5ICAgIDMgLyAgICAgICAgMjg0NDQ3IC1ydy0tLS0tLS0gICAgICAg MyAgdwpyb290ICAgICBkaGNsaWVudCAgICAgNTE5ICAgIDUqIHBpcGUgZmZmZmZlMDAwNTIxYzJk OCA8LT4gZmZmZmZlMDAwNTIxYzQzMCAgICAgIDAgcncKcm9vdCAgICAgYWRqa2VybnR6ICAgIDEz NCByb290IC8gICAgICAgICAgICAgMiBkcnd4ci14ci14ICAgIDEwMjQgIHIKcm9vdCAgICAgYWRq a2VybnR6ICAgIDEzNCAgIHdkIC8gICAgICAgICAgICAgMiBkcnd4ci14ci14ICAgIDEwMjQgIHIK cm9vdCAgICAgYWRqa2VybnR6ICAgIDEzNCB0ZXh0IC8gICAgICAgIDQyNjI0MiAtci14ci14ci14 ICAgIDg4OTYgIHIKcm9vdCAgICAgYWRqa2VybnR6ICAgIDEzNCAgICAwIC9kZXYgICAgICAgICAx OSBjcnctcnctcnctICAgIG51bGwgcncKcm9vdCAgICAgYWRqa2VybnR6ICAgIDEzNCAgICAxIC9k ZXYgICAgICAgICAxOSBjcnctcnctcnctICAgIG51bGwgcncKcm9vdCAgICAgYWRqa2VybnR6ICAg IDEzNCAgICAyIC9kZXYgICAgICAgICAxOSBjcnctcnctcnctICAgIG51bGwgcncKcm9vdCAgICAg aW5pdCAgICAgICAgICAgMSByb290IC8gICAgICAgICAgICAgMiBkcnd4ci14ci14ICAgIDEwMjQg IHIKcm9vdCAgICAgaW5pdCAgICAgICAgICAgMSAgIHdkIC8gICAgICAgICAgICAgMiBkcnd4ci14 ci14ICAgIDEwMjQgIHIKcm9vdCAgICAgaW5pdCAgICAgICAgICAgMSB0ZXh0IC8gICAgICAgIDQy NjM4MSAtci14ci14ci14ICA3ODA4ODAgIHIKcm9vdCAgICAga2VybmVsICAgICAgICAgMCByb290 IC8gICAgICAgICAgICAgMiBkcnd4ci14ci14ICAgIDEwMjQgIHIKcm9vdCAgICAga2VybmVsICAg ICAgICAgMCAgIHdkIC8gICAgICAgICAgICAgMiBkcnd4ci14ci14ICAgIDEwMjQgIHIKCi0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQpkbWVzZwoKQ29weXJpZ2h0IChjKSAxOTkyLTIwMTIgVGhlIEZyZWVCU0QgUHJv amVjdC4KQ29weXJpZ2h0IChjKSAxOTc5LCAxOTgwLCAxOTgzLCAxOTg2LCAxOTg4LCAxOTg5LCAx OTkxLCAxOTkyLCAxOTkzLCAxOTk0CglUaGUgUmVnZW50cyBvZiB0aGUgVW5pdmVyc2l0eSBvZiBD YWxpZm9ybmlhLiBBbGwgcmlnaHRzIHJlc2VydmVkLgpGcmVlQlNEIGlzIGEgcmVnaXN0ZXJlZCB0 cmFkZW1hcmsgb2YgVGhlIEZyZWVCU0QgRm91bmRhdGlvbi4KRnJlZUJTRCAxMC4wLUNVUlJFTlQg IzI6IE1vbiBNYXIgIDUgMjA6MDI6MzggQ0VUIDIwMTIKICAgIHJvb3RAYWNrZTovdXNyL29iai91 c3Ivc3JjL3N5cy9WTkVUX3dpdGhvdXRfd2xhbiBhbWQ2NApXQVJOSU5HOiBXSVRORVNTIG9wdGlv biBlbmFibGVkLCBleHBlY3QgcmVkdWNlZCBwZXJmb3JtYW5jZS4KQ1BVOiBBTUQgUGhlbm9tKHRt KSA5OTUwIFF1YWQtQ29yZSBQcm9jZXNzb3IgKDI1OTUuMjUtTUh6IEs4LWNsYXNzIENQVSkKICBP cmlnaW4gPSAiQXV0aGVudGljQU1EIiAgSWQgPSAweDEwMGYyMyAgRmFtaWx5ID0gMTAgIE1vZGVs ID0gMiAgU3RlcHBpbmcgPSAzCiAgRmVhdHVyZXM9MHg3ODNmYmZmPEZQVSxWTUUsREUsUFNFLFRT QyxNU1IsUEFFLE1DRSxDWDgsQVBJQyxTRVAsTVRSUixQR0UsTUNBLENNT1YsUEFULFBTRTM2LE1N WCxGWFNSLFNTRSxTU0UyPgogIEZlYXR1cmVzMj0weDk8U1NFMyxNT04+CiAgQU1EIEZlYXR1cmVz PTB4ZWExMDA4MDA8U1lTQ0FMTCxOWCxGRlhTUixSRFRTQ1AsTE0sM0ROb3chKywzRE5vdyE+CiAg QU1EIEZlYXR1cmVzMj0weDExPExBSEYsQ1I4PgpyZWFsIG1lbW9yeSAgPSAxMDczNjc2Mjg4ICgx MDIzIE1CKQphdmFpbCBtZW1vcnkgPSAxMDA5ODg5MjgwICg5NjMgTUIpCkV2ZW50IHRpbWVyICJM QVBJQyIgcXVhbGl0eSA0MDAKQUNQSSBBUElDIFRhYmxlOiA8VkJPWCAgIFZCT1hBUElDPgpXQVJO SU5HOiBWSU1BR0UgKHZpcnR1YWxpemVkIG5ldHdvcmsgc3RhY2spIGlzIGEgaGlnaGx5IGV4cGVy aW1lbnRhbCBmZWF0dXJlLgppb2FwaWMwOiBDaGFuZ2luZyBBUElDIElEIHRvIDEKaW9hcGljMCA8 VmVyc2lvbiAxLjE+IGlycXMgMC0yMyBvbiBtb3RoZXJib2FyZAprYmQxIGF0IGtiZG11eDAKY3Rs OiBDQU0gVGFyZ2V0IExheWVyIGxvYWRlZAphY3BpMDogPFZCT1ggVkJPWFhTRFQ+IG9uIG1vdGhl cmJvYXJkCmFjcGkwOiBQb3dlciBCdXR0b24gKGZpeGVkKQphY3BpMDogU2xlZXAgQnV0dG9uIChm aXhlZCkKY3B1MDogPEFDUEkgQ1BVPiBvbiBhY3BpMAphdHRpbWVyMDogPEFUIHRpbWVyPiBwb3J0 IDB4NDAtMHg0MywweDUwLTB4NTMgb24gYWNwaTAKVGltZWNvdW50ZXIgImk4MjU0IiBmcmVxdWVu Y3kgMTE5MzE4MiBIeiBxdWFsaXR5IDAKRXZlbnQgdGltZXIgImk4MjU0IiBmcmVxdWVuY3kgMTE5 MzE4MiBIeiBxdWFsaXR5IDEwMApUaW1lY291bnRlciAiQUNQSS1mYXN0IiBmcmVxdWVuY3kgMzU3 OTU0NSBIeiBxdWFsaXR5IDkwMAphY3BpX3RpbWVyMDogPDMyLWJpdCB0aW1lciBhdCAzLjU3OTU0 NU1Iej4gcG9ydCAweDQwMDgtMHg0MDBiIG9uIGFjcGkwCnBjaWIwOiA8QUNQSSBIb3N0LVBDSSBi cmlkZ2U+IHBvcnQgMHhjZjgtMHhjZmYgb24gYWNwaTAKcGNpMDogPEFDUEkgUENJIGJ1cz4gb24g cGNpYjAKaXNhYjA6IDxQQ0ktSVNBIGJyaWRnZT4gYXQgZGV2aWNlIDEuMCBvbiBwY2kwCmlzYTA6 IDxJU0EgYnVzPiBvbiBpc2FiMAphdGFwY2kwOiA8SW50ZWwgUElJWDQgVURNQTMzIGNvbnRyb2xs ZXI+IHBvcnQgMHgxZjAtMHgxZjcsMHgzZjYsMHgxNzAtMHgxNzcsMHgzNzYsMHhkMDAwLTB4ZDAw ZiBhdCBkZXZpY2UgMS4xIG9uIHBjaTAKYXRhMDogPEFUQSBjaGFubmVsPiBhdCBjaGFubmVsIDAg b24gYXRhcGNpMAphdGExOiA8QVRBIGNoYW5uZWw+IGF0IGNoYW5uZWwgMSBvbiBhdGFwY2kwCnZn YXBjaTA6IDxWR0EtY29tcGF0aWJsZSBkaXNwbGF5PiBtZW0gMHhlMDAwMDAwMC0weGUxZmZmZmZm IGlycSAxOCBhdCBkZXZpY2UgMi4wIG9uIHBjaTAKZW0wOiA8SW50ZWwoUikgUFJPLzEwMDAgTGVn YWN5IE5ldHdvcmsgQ29ubmVjdGlvbiAxLjAuND4gcG9ydCAweGQwMTAtMHhkMDE3IG1lbSAweGYw MDAwMDAwLTB4ZjAwMWZmZmYgaXJxIDE5IGF0IGRldmljZSAzLjAgb24gcGNpMAplbTA6IEV0aGVy bmV0IGFkZHJlc3M6IDA4OjAwOjI3OjY5OjFmOmUxCnBjaTA6IDxiYXNlIHBlcmlwaGVyYWw+IGF0 IGRldmljZSA0LjAgKG5vIGRyaXZlciBhdHRhY2hlZCkKcGNtMDogPEludGVsIElDSCAoODI4MDFB QSk+IHBvcnQgMHhkMTAwLTB4ZDFmZiwweGQyMDAtMHhkMjNmIGlycSAyMSBhdCBkZXZpY2UgNS4w IG9uIHBjaTAKcGNtMDogPFNpZ21hVGVsIFNUQUM5NzAwLzgzLzg0IEFDOTcgQ29kZWM+Cm9oY2kw OiA8T0hDSSAoZ2VuZXJpYykgVVNCIGNvbnRyb2xsZXI+IG1lbSAweGYwODA0MDAwLTB4ZjA4MDRm ZmYgaXJxIDIyIGF0IGRldmljZSA2LjAgb24gcGNpMAp1c2J1czAgb24gb2hjaTAKcGNpMDogPGJy aWRnZT4gYXQgZGV2aWNlIDcuMCAobm8gZHJpdmVyIGF0dGFjaGVkKQplbTE6IDxJbnRlbChSKSBQ Uk8vMTAwMCBMZWdhY3kgTmV0d29yayBDb25uZWN0aW9uIDEuMC40PiBwb3J0IDB4ZDI0MC0weGQy NDcgbWVtIDB4ZjA4MjAwMDAtMHhmMDgzZmZmZiBpcnEgMTYgYXQgZGV2aWNlIDguMCBvbiBwY2kw CmVtMTogRXRoZXJuZXQgYWRkcmVzczogMDg6MDA6Mjc6NzQ6Mjc6Y2QKYWNwaV9hY2FkMDogPEFD IEFkYXB0ZXI+IG9uIGFjcGkwCmF0a2JkYzA6IDxLZXlib2FyZCBjb250cm9sbGVyIChpODA0Mik+ IHBvcnQgMHg2MCwweDY0IGlycSAxIG9uIGFjcGkwCmF0a2JkMDogPEFUIEtleWJvYXJkPiBpcnEg MSBvbiBhdGtiZGMwCmtiZDAgYXQgYXRrYmQwCmF0a2JkMDogW0dJQU5ULUxPQ0tFRF0KcHNtMDog PFBTLzIgTW91c2U+IGlycSAxMiBvbiBhdGtiZGMwCnBzbTA6IFtHSUFOVC1MT0NLRURdCnBzbTA6 IG1vZGVsIEludGVsbGlNb3VzZSBFeHBsb3JlciwgZGV2aWNlIElEIDQKb3JtMDogPElTQSBPcHRp b24gUk9Ncz4gYXQgaW9tZW0gMHhjMDAwMC0weGM4ZmZmLDB4ZTIwMDAtMHhlNmZmZiBvbiBpc2Ew CnNjMDogPFN5c3RlbSBjb25zb2xlPiBhdCBmbGFncyAweDEwMCBvbiBpc2EwCnNjMDogVkdBIDwx NiB2aXJ0dWFsIGNvbnNvbGVzLCBmbGFncz0weDMwMD4KdmdhMDogPEdlbmVyaWMgSVNBIFZHQT4g YXQgcG9ydCAweDNjMC0weDNkZiBpb21lbSAweGEwMDAwLTB4YmZmZmYgb24gaXNhMAphdHJ0YzA6 IDxBVCByZWFsdGltZSBjbG9jaz4gYXQgcG9ydCAweDcwIGlycSA4IG9uIGlzYTAKRXZlbnQgdGlt ZXIgIlJUQyIgZnJlcXVlbmN5IDMyNzY4IEh6IHF1YWxpdHkgMApwcGMwOiBjYW5ub3QgcmVzZXJ2 ZSBJL08gcG9ydCByYW5nZQpUaW1lY291bnRlcnMgdGljayBldmVyeSAxMC4wMDAgbXNlYwpwY20w OiBtZWFzdXJlZCBhYzk3IGxpbmsgcmF0ZSBhdCAzMDU4NSBIegp1c2J1czA6IDEyTWJwcyBGdWxs IFNwZWVkIFVTQiB2MS4wCnVnZW4wLjE6IDxBcHBsZT4gYXQgdXNidXMwCnVodWIwOiA8QXBwbGUg T0hDSSByb290IEhVQiwgY2xhc3MgOS8wLCByZXYgMS4wMC8xLjAwLCBhZGRyIDE+IG9uIHVzYnVz MAp1aHViMDogOCBwb3J0cyB3aXRoIDggcmVtb3ZhYmxlLCBzZWxmIHBvd2VyZWQKY2QwIGF0IGF0 YTEgYnVzIDAgc2NidXMxIHRhcmdldCAwIGx1biAwCmNkMDogPFZCT1ggQ0QtUk9NIDEuMD4gUmVt b3ZhYmxlIENELVJPTSBTQ1NJLTAgZGV2aWNlIApjZDA6IDMzLjMwME1CL3MgdHJhbnNmZXJzIChV RE1BMiwgQVRBUEkgMTJieXRlcywgUElPIDY1NTM0Ynl0ZXMpCmNkMDogQXR0ZW1wdCB0byBxdWVy eSBkZXZpY2Ugc2l6ZSBmYWlsZWQ6IE5PVCBSRUFEWSwgTWVkaXVtIG5vdCBwcmVzZW50CmFkYTAg YXQgYXRhMCBidXMgMCBzY2J1czAgdGFyZ2V0IDAgbHVuIDAKYWRhMDogPFZCT1ggSEFSRERJU0sg MS4wPiBBVEEtNiBkZXZpY2UKYWRhMDogMzMuMzAwTUIvcyB0cmFuc2ZlcnMgKFVETUEyLCBQSU8g NjU1MzZieXRlcykKYWRhMDogNDA5NjBNQiAoODM4ODYwODAgNTEyIGJ5dGUgc2VjdG9yczogMTZI IDYzUy9UIDE2MzgzQykKYWRhMDogUHJldmlvdXNseSB3YXMga25vd24gYXMgYWQwClRpbWVjb3Vu dGVyICJUU0MiIGZyZXF1ZW5jeSAyNTk1MjUwMzM2IEh6IHF1YWxpdHkgODAwCldBUk5JTkc6IFdJ VE5FU1Mgb3B0aW9uIGVuYWJsZWQsIGV4cGVjdCByZWR1Y2VkIHBlcmZvcm1hbmNlLgpUcnlpbmcg dG8gbW91bnQgcm9vdCBmcm9tIHVmczovZGV2L2FkYTBwMiBbcnddLi4uClNldHRpbmcgaG9zdHV1 aWQ6IGE5YjRjOTgwLTU5NWYtNDA0NC1iY2ExLWVmNzkzOWI3YTYxMS4KU2V0dGluZyBob3N0aWQ6 IDB4MGFlNzE5ODkuCkVudHJvcHkgaGFydmVzdGluZzogaW50ZXJydXB0cyBldGhlcm5ldCBwb2lu dF90b19wb2ludCBraWNrc3RhcnQuClN0YXJ0aW5nIGZpbGUgc3lzdGVtIGNoZWNrczoKL2Rldi9h ZGEwcDI6IEZJTEUgU1lTVEVNIENMRUFOOyBTS0lQUElORyBDSEVDS1MKL2Rldi9hZGEwcDI6IGNs ZWFuLCA3OTYzODUxIGZyZWUgKDQ4MzUgZnJhZ3MsIDk5NDg3NyBibG9ja3MsIDAuMCUgZnJhZ21l bnRhdGlvbikKTW91bnRpbmcgbG9jYWwgZmlsZSBzeXN0ZW1zOi4KU2V0dGluZyBob3N0bmFtZTog YWNrZS4KU3RhcnRpbmcgTmV0d29yazogbG8wIGVtMCBlbTEuCmxvMDogZmxhZ3M9ODA0OTxVUCxM T09QQkFDSyxSVU5OSU5HLE1VTFRJQ0FTVD4gbWV0cmljIDAgbXR1IDE2Mzg0CglvcHRpb25zPTM8 UlhDU1VNLFRYQ1NVTT4KCWluZXQ2IDo6MSBwcmVmaXhsZW4gMTI4IAoJaW5ldDYgZmU4MDo6MSVs bzAgcHJlZml4bGVuIDY0IHNjb3BlaWQgMHg0IAoJaW5ldCAxMjcuMC4wLjEgbmV0bWFzayAweGZm MDAwMDAwIAoJbmQ2IG9wdGlvbnM9MjE8UEVSRk9STU5VRCxBVVRPX0xJTktMT0NBTD4KZW0wOiBm bGFncz04ODQzPFVQLEJST0FEQ0FTVCxSVU5OSU5HLFNJTVBMRVgsTVVMVElDQVNUPiBtZXRyaWMg MCBtdHUgMTUwMAoJb3B0aW9ucz05YjxSWENTVU0sVFhDU1VNLFZMQU5fTVRVLFZMQU5fSFdUQUdH SU5HLFZMQU5fSFdDU1VNPgoJZXRoZXIgMDg6MDA6Mjc6Njk6MWY6ZTEKCW5kNiBvcHRpb25zPTI5 PFBFUkZPUk1OVUQsSUZESVNBQkxFRCxBVVRPX0xJTktMT0NBTD4KCW1lZGlhOiBFdGhlcm5ldCBh dXRvc2VsZWN0ICgxMDAwYmFzZVQgPGZ1bGwtZHVwbGV4PikKCXN0YXR1czogYWN0aXZlCmVtMTog ZmxhZ3M9ODg0MzxVUCxCUk9BRENBU1QsUlVOTklORyxTSU1QTEVYLE1VTFRJQ0FTVD4gbWV0cmlj IDAgbXR1IDE1MDAKCW9wdGlvbnM9OWI8UlhDU1VNLFRYQ1NVTSxWTEFOX01UVSxWTEFOX0hXVEFH R0lORyxWTEFOX0hXQ1NVTT4KCWV0aGVyIDA4OjAwOjI3Ojc0OjI3OmNkCgluZDYgb3B0aW9ucz0y OTxQRVJGT1JNTlVELElGRElTQUJMRUQsQVVUT19MSU5LTE9DQUw+CgltZWRpYTogRXRoZXJuZXQg YXV0b3NlbGVjdCAoMTAwMGJhc2VUIDxmdWxsLWR1cGxleD4pCglzdGF0dXM6IGFjdGl2ZQpTdGFy dGluZyBkZXZkLgpTdGFydGluZyBkaGNsaWVudC4KREhDUFJFUVVFU1Qgb24gZW0wIHRvIDI1NS4y NTUuMjU1LjI1NSBwb3J0IDY3CkRIQ1BBQ0sgZnJvbSAxMC4wLjIuMgpib3VuZCB0byAxMC4wLjIu MTUgLS0gcmVuZXdhbCBpbiA0MzIwMCBzZWNvbmRzLgpTdGFydGluZyBkaGNsaWVudC4KREhDUFJF UVVFU1Qgb24gZW0xIHRvIDI1NS4yNTUuMjU1LjI1NSBwb3J0IDY3CkRIQ1BBQ0sgZnJvbSAxOTIu MTY4LjU2LjEwMApib3VuZCB0byAxOTIuMTY4LjU2LjEwMSAtLSByZW5ld2FsIGluIDE4MDAgc2Vj b25kcy4KYWRkIG5ldCA6OmZmZmY6MC4wLjAuMDogZ2F0ZXdheSA6OjEKYWRkIG5ldCA6OjAuMC4w LjA6IGdhdGV3YXkgOjoxCmFkZCBuZXQgZmU4MDo6OiBnYXRld2F5IDo6MQphZGQgbmV0IGZmMDI6 OjogZ2F0ZXdheSA6OjEKTW91bnRpbmcgTkZTIGZpbGUgc3lzdGVtczouCkNyZWF0aW5nIGFuZC9v ciB0cmltbWluZyBsb2cgZmlsZXMuClN0YXJ0aW5nIHN5c2xvZ2QuCk5vIGNvcmUgZHVtcHMgZm91 bmQuCkVMRiBsZGNvbmZpZyBwYXRoOiAvbGliIC91c3IvbGliIC91c3IvbGliL2NvbXBhdCAvdXNy L2xvY2FsL2xpYgozMi1iaXQgY29tcGF0aWJpbGl0eSBsZGNvbmZpZyBwYXRoOiAvdXNyL2xpYjMy Ck5GUyBhY2Nlc3MgY2FjaGUgdGltZT02MApDbGVhcmluZyAvdG1wIChYIHJlbGF0ZWQpLgpVcGRh dGluZyBtb3RkOi4KU3RhcnRpbmcgbnRwZC4KQ29uZmlndXJpbmcgc3lzY29uczoga2V5bWFwIGJs YW5rdGltZS4KU3RhcnRpbmcgc3NoZC4KU3RhcnRpbmcgY3Jvbi4KU3RhcnRpbmcgYmFja2dyb3Vu ZCBmaWxlIHN5c3RlbSBjaGVja3MgaW4gNjAgc2Vjb25kcy4KCk1vbiBNYXIgIDUgMjE6MTc6NDYg Q0VUIDIwMTIKTWFyICA1IDIxOjU5OjIzIGFja2UgbG9naW46IFJPT1QgTE9HSU4gKHJvb3QpIE9O IHR0eXYwClVzaW5nIHZpc2liaWxpdHkgd3RhcCBwbHVnaW4uLi4KTG9hZGVkIHd0YXAgd2lyZWxl c3Mgc2ltdWxhdG9yCnd0YXAwOiBpZWVlODAyMTFfcmFkaW90YXBfYXR0YWNoOiBubyB0eCBjaGFu bmVsLCByYWRpb3RhcCAweDB3dGFwMDogaWVlZTgwMjExX3JhZGlvdGFwX2F0dGFjaDogbm8gcngg Y2hhbm5lbCwgcmFkaW90YXAgMHgwd2xhbjA6IEV0aGVybmV0IGFkZHJlc3M6IDAwOjk4OjlhOjk4 Ojk2Ojk3CndsYW4wOiBpZWVlODAyMTFfc3RhcnQ6IGlnbm9yZSBxdWV1ZSwgaW4gU0NBTiBzdGF0 ZQp3bGFuMDogWzAwOjk4OjlhOjk4Ojk2Ojk3XSBpZWVlODAyMTFfYWxsb2Nfbm9kZTogaW5hY3Rf cmVsb2FkIDIKS2VybmVsIHBhZ2UgZmF1bHQgd2l0aCB0aGUgZm9sbG93aW5nIG5vbi1zbGVlcGFi bGUgbG9ja3MgaGVsZDoKZXhjbHVzaXZlIHNsZWVwIG11dGV4IHd0YXAwX2NvbV9sb2NrICh3dGFw MF9jb21fbG9jaykgciA9IDAgKDB4ZmZmZmZmODAwMjM5NTAxOCkgbG9ja2VkIEAgL3Vzci9zcmMv c3lzL21vZHVsZXMvd2xhbi8uLi8uLi9uZXQ4MDIxMS9pZWVlODAyMTFfcHJvdG8uYzoxOTM3CktE Qjogc3RhY2sgYmFja3RyYWNlOgpkYl90cmFjZV9zZWxmX3dyYXBwZXIoKSBhdCBkYl90cmFjZV9z ZWxmX3dyYXBwZXIrMHgyYQprZGJfYmFja3RyYWNlKCkgYXQga2RiX2JhY2t0cmFjZSsweDM3Cl93 aXRuZXNzX2RlYnVnZ2VyKCkgYXQgX3dpdG5lc3NfZGVidWdnZXIrMHgyYwp3aXRuZXNzX3dhcm4o KSBhdCB3aXRuZXNzX3dhcm4rMHgyYzQKdHJhcCgpIGF0IHRyYXArMHgyZmUKY2FsbHRyYXAoKSBh dCBjYWxsdHJhcCsweDgKLS0tIHRyYXAgMHhjLCByaXAgPSAweGZmZmZmZmZmODA4ODVkMGMsIHJz cCA9IDB4ZmZmZmZmODAwMDNlOWEwMCwgcmJwID0gMHhmZmZmZmY4MDAwM2U5YTIwIC0tLQpydF9k aXNwYXRjaCgpIGF0IHJ0X2Rpc3BhdGNoKzB4MmMKcnRfaWVlZTgwMjExbXNnKCkgYXQgcnRfaWVl ZTgwMjExbXNnKzB4N2YKc2Nhbl90YXNrKCkgYXQgc2Nhbl90YXNrKzB4NGNkCnRhc2txdWV1ZV9y dW5fbG9ja2VkKCkgYXQgdGFza3F1ZXVlX3J1bl9sb2NrZWQrMHg5Mwp0YXNrcXVldWVfdGhyZWFk X2xvb3AoKSBhdCB0YXNrcXVldWVfdGhyZWFkX2xvb3ArMHgzZQpmb3JrX2V4aXQoKSBhdCBmb3Jr X2V4aXQrMHgxMzUKZm9ya190cmFtcG9saW5lKCkgYXQgZm9ya190cmFtcG9saW5lKzB4ZQotLS0g dHJhcCAwLCByaXAgPSAwLCByc3AgPSAweGZmZmZmZjgwMDAzZTljZjAsIHJicCA9IDAgLS0tCgoK RmF0YWwgdHJhcCAxMjogcGFnZSBmYXVsdCB3aGlsZSBpbiBrZXJuZWwgbW9kZQpjcHVpZCA9IDA7 IGFwaWMgaWQgPSAwMApmYXVsdCB2aXJ0dWFsIGFkZHJlc3MJPSAweDI4CmZhdWx0IGNvZGUJCT0g c3VwZXJ2aXNvciByZWFkIGRhdGEsIHBhZ2Ugbm90IHByZXNlbnQKaW5zdHJ1Y3Rpb24gcG9pbnRl cgk9IDB4MjA6MHhmZmZmZmZmZjgwODg1ZDBjCnN0YWNrIHBvaW50ZXIJICAgICAgICA9IDB4Mjg6 MHhmZmZmZmY4MDAwM2U5YTAwCmZyYW1lIHBvaW50ZXIJICAgICAgICA9IDB4Mjg6MHhmZmZmZmY4 MDAwM2U5YTIwCmNvZGUgc2VnbWVudAkJPSBiYXNlIDB4MCwgbGltaXQgMHhmZmZmZiwgdHlwZSAw eDFiCgkJCT0gRFBMIDAsIHByZXMgMSwgbG9uZyAxLCBkZWYzMiAwLCBncmFuIDEKcHJvY2Vzc29y IGVmbGFncwk9IGludGVycnVwdCBlbmFibGVkLCByZXN1bWUsIElPUEwgPSAwCmN1cnJlbnQgcHJv Y2VzcwkJPSAwICh3dGFwMCBuZXQ4MDIxMSB0YXNrKQoKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCmtlcm5lbCBj b25maWcKCm9wdGlvbnMJQ09ORklHX0FVVE9HRU5FUkFURUQKaWRlbnQJR0VORVJJQwptYWNoaW5l CWFtZDY0CmNwdQlIQU1NRVIKbWFrZW9wdGlvbnMJREVCVUc9LWcKb3B0aW9ucwlVU0JfREVCVUcK b3B0aW9ucwlTQ19QSVhFTF9NT0RFCm9wdGlvbnMJQUhEX1JFR19QUkVUVFlfUFJJTlQKb3B0aW9u cwlBSENfUkVHX1BSRVRUWV9QUklOVApvcHRpb25zCUFUQV9TVEFUSUNfSUQKb3B0aW9ucwlBVEFf Q0FNCm9wdGlvbnMJU01QCm9wdGlvbnMJTUFMTE9DX0RFQlVHX01BWFpPTkVTPTgKb3B0aW9ucwlX SVRORVNTX1NLSVBTUElOCm9wdGlvbnMJV0lUTkVTUwpvcHRpb25zCUlOVkFSSUFOVF9TVVBQT1JU Cm9wdGlvbnMJSU5WQVJJQU5UUwpvcHRpb25zCURFQURMS1JFUwpvcHRpb25zCUdEQgpvcHRpb25z CUREQgpvcHRpb25zCUtEQgpvcHRpb25zCURFVkNUTF9BVFRBQ0hfRU5BQkxFRApvcHRpb25zCVZJ TUFHRQpvcHRpb25zCUlOQ0xVREVfQ09ORklHX0ZJTEUKb3B0aW9ucwlNQUMKb3B0aW9ucwlDQVBB QklMSVRJRVMKb3B0aW9ucwlDQVBBQklMSVRZX01PREUKb3B0aW9ucwlBVURJVApvcHRpb25zCUhX UE1DX0hPT0tTCm9wdGlvbnMJS0JEX0lOU1RBTExfQ0RFVgpvcHRpb25zCVBSSU5URl9CVUZSX1NJ WkU9MTI4Cm9wdGlvbnMJX0tQT1NJWF9QUklPUklUWV9TQ0hFRFVMSU5HCm9wdGlvbnMJU1lTVlNF TQpvcHRpb25zCVNZU1ZNU0cKb3B0aW9ucwlTWVNWU0hNCm9wdGlvbnMJU1RBQ0sKb3B0aW9ucwlL VFJBQ0UKb3B0aW9ucwlTQ1NJX0RFTEFZPTUwMDAKb3B0aW9ucwlDT01QQVRfRlJFRUJTRDcKb3B0 aW9ucwlDT01QQVRfRlJFRUJTRDYKb3B0aW9ucwlDT01QQVRfRlJFRUJTRDUKb3B0aW9ucwlDT01Q QVRfRlJFRUJTRDQKb3B0aW9ucwlDT01QQVRfRlJFRUJTRDMyCm9wdGlvbnMJR0VPTV9MQUJFTApv cHRpb25zCUdFT01fUEFSVF9HUFQKb3B0aW9ucwlQU0VVRE9GUwpvcHRpb25zCVBST0NGUwpvcHRp b25zCUNEOTY2MApvcHRpb25zCU1TRE9TRlMKb3B0aW9ucwlORlNfUk9PVApvcHRpb25zCU5GU0xP Q0tECm9wdGlvbnMJTkZTRApvcHRpb25zCU5GU0NMCm9wdGlvbnMJTURfUk9PVApvcHRpb25zCVVG U19HSk9VUk5BTApvcHRpb25zCVVGU19ESVJIQVNICm9wdGlvbnMJVUZTX0FDTApvcHRpb25zCVNP RlRVUERBVEVTCm9wdGlvbnMJRkZTCm9wdGlvbnMJU0NUUApvcHRpb25zCUlORVQ2Cm9wdGlvbnMJ SU5FVApvcHRpb25zCVBSRUVNUFRJT04Kb3B0aW9ucwlTQ0hFRF9VTEUKb3B0aW9ucwlWRlNfQUxM T1dfTk9OTVBTQUZFCm9wdGlvbnMJTkVXX1BDSUIKb3B0aW9ucwlHRU9NX1BBUlRfTUJSCm9wdGlv bnMJR0VPTV9QQVJUX0VCUl9DT01QQVQKb3B0aW9ucwlHRU9NX1BBUlRfRUJSCm9wdGlvbnMJR0VP TV9QQVJUX0JTRApkZXZpY2UJaXNhCmRldmljZQltZW0KZGV2aWNlCWlvCmRldmljZQl1YXJ0X25z ODI1MApkZXZpY2UJY3B1ZnJlcQpkZXZpY2UJYWNwaQpkZXZpY2UJcGNpCmRldmljZQlmZGMKZGV2 aWNlCWFoY2kKZGV2aWNlCWF0YQpkZXZpY2UJbXZzCmRldmljZQlzaWlzCmRldmljZQlhaGMKZGV2 aWNlCWFoZApkZXZpY2UJZXNwCmRldmljZQlocHRpb3AKZGV2aWNlCWlzcApkZXZpY2UJbXB0CmRl dmljZQltcHMKZGV2aWNlCXN5bQpkZXZpY2UJdHJtCmRldmljZQlhZHYKZGV2aWNlCWFkdwpkZXZp Y2UJYWljCmRldmljZQlidApkZXZpY2UJaXNjaQpkZXZpY2UJc2NidXMKZGV2aWNlCWNoCmRldmlj ZQlkYQpkZXZpY2UJc2EKZGV2aWNlCWNkCmRldmljZQlwYXNzCmRldmljZQlzZXMKZGV2aWNlCWN0 bApkZXZpY2UJYW1yCmRldmljZQlhcmNtc3IKZGV2aWNlCWNpc3MKZGV2aWNlCWRwdApkZXZpY2UJ aHB0bXYKZGV2aWNlCWhwdHJyCmRldmljZQlpaXIKZGV2aWNlCWlwcwpkZXZpY2UJbWx5CmRldmlj ZQl0d2EKZGV2aWNlCWFhYwpkZXZpY2UJYWFjcApkZXZpY2UJaWRhCmRldmljZQltZmkKZGV2aWNl CW1seApkZXZpY2UJdHdlCmRldmljZQl0d3MKZGV2aWNlCWF0a2JkYwpkZXZpY2UJYXRrYmQKZGV2 aWNlCXBzbQpkZXZpY2UJa2JkbXV4CmRldmljZQl2Z2EKZGV2aWNlCXNwbGFzaApkZXZpY2UJc2MK ZGV2aWNlCWFncApkZXZpY2UJY2JiCmRldmljZQlwY2NhcmQKZGV2aWNlCWNhcmRidXMKZGV2aWNl CXVhcnQKZGV2aWNlCXBwYwpkZXZpY2UJcHBidXMKZGV2aWNlCWxwdApkZXZpY2UJcGxpcApkZXZp Y2UJcHBpCmRldmljZQlwdWMKZGV2aWNlCWJ4ZQpkZXZpY2UJZGUKZGV2aWNlCWVtCmRldmljZQlp Z2IKZGV2aWNlCWl4Z2JlCmRldmljZQlsZQpkZXZpY2UJdGkKZGV2aWNlCXR4cApkZXZpY2UJdngK ZGV2aWNlCW1paWJ1cwpkZXZpY2UJYWUKZGV2aWNlCWFnZQpkZXZpY2UJYWxjCmRldmljZQlhbGUK ZGV2aWNlCWJjZQpkZXZpY2UJYmZlCmRldmljZQliZ2UKZGV2aWNlCWRjCmRldmljZQlldApkZXZp Y2UJZnhwCmRldmljZQlqbWUKZGV2aWNlCWxnZQpkZXZpY2UJbXNrCmRldmljZQluZmUKZGV2aWNl CW5nZQpkZXZpY2UJcGNuCmRldmljZQlyZQpkZXZpY2UJcmwKZGV2aWNlCXNmCmRldmljZQlzZ2UK ZGV2aWNlCXNpcwpkZXZpY2UJc2sKZGV2aWNlCXN0ZQpkZXZpY2UJc3RnZQpkZXZpY2UJdGwKZGV2 aWNlCXR4CmRldmljZQl2Z2UKZGV2aWNlCXZyCmRldmljZQl3YgpkZXZpY2UJeGwKZGV2aWNlCWNz CmRldmljZQllZApkZXZpY2UJZXgKZGV2aWNlCWVwCmRldmljZQlmZQpkZXZpY2UJc24KZGV2aWNl CXhlCmRldmljZQlsb29wCmRldmljZQlyYW5kb20KZGV2aWNlCWV0aGVyCmRldmljZQl2bGFuCmRl dmljZQl0dW4KZGV2aWNlCXB0eQpkZXZpY2UJbWQKZGV2aWNlCWdpZgpkZXZpY2UJZmFpdGgKZGV2 aWNlCWZpcm13YXJlCmRldmljZQlicGYKZGV2aWNlCXVoY2kKZGV2aWNlCW9oY2kKZGV2aWNlCWVo Y2kKZGV2aWNlCXhoY2kKZGV2aWNlCXVzYgpkZXZpY2UJdWhpZApkZXZpY2UJdWtiZApkZXZpY2UJ dWxwdApkZXZpY2UJdW1hc3MKZGV2aWNlCXVtcwpkZXZpY2UJdXJpbwpkZXZpY2UJdTNnCmRldmlj ZQl1YXJrCmRldmljZQl1YnNhCmRldmljZQl1ZnRkaQpkZXZpY2UJdWlwYXEKZGV2aWNlCXVwbGNv bQpkZXZpY2UJdXNsY29tCmRldmljZQl1dmlzb3IKZGV2aWNlCXV2c2NvbQpkZXZpY2UJYXVlCmRl dmljZQlheGUKZGV2aWNlCWNkY2UKZGV2aWNlCWN1ZQpkZXZpY2UJa3VlCmRldmljZQlydWUKZGV2 aWNlCXVkYXYKZGV2aWNlCWZpcmV3aXJlCmRldmljZQlmd2UKZGV2aWNlCWZ3aXAKZGV2aWNlCWRj b25zCmRldmljZQlkY29uc19jcm9tCmRldmljZQlzb3VuZApkZXZpY2UJc25kX2VzMTM3eApkZXZp Y2UJc25kX2hkYQpkZXZpY2UJc25kX2ljaApkZXZpY2UJc25kX3VhdWRpbwpkZXZpY2UJc25kX3Zp YTgyMzMKZGV2aWNlCW1tYwpkZXZpY2UJbW1jc2QKZGV2aWNlCXNkaGNpCgotLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0KZGRiIGNhcHR1cmUgYnVmZmVyCgoK --14dae93409357435de04ba856a28-- From owner-freebsd-virtualization@FreeBSD.ORG Tue Mar 6 00:05:16 2012 Return-Path: Delivered-To: freebsd-virtualization@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 3C4BD106566C for ; Tue, 6 Mar 2012 00:05:16 +0000 (UTC) (envelope-from zec@fer.hr) Received: from munja.zvne.fer.hr (munja.zvne.fer.hr [161.53.66.248]) by mx1.freebsd.org (Postfix) with ESMTP id B5E1C8FC15 for ; Tue, 6 Mar 2012 00:05:15 +0000 (UTC) Received: from sluga.fer.hr ([161.53.66.244]) by munja.zvne.fer.hr with Microsoft SMTPSVC(6.0.3790.4675); Tue, 6 Mar 2012 00:53:04 +0100 Received: from localhost ([161.53.19.8]) by sluga.fer.hr with Microsoft SMTPSVC(6.0.3790.4675); Tue, 6 Mar 2012 00:53:03 +0100 From: Marko Zec To: freebsd-virtualization@freebsd.org Date: Tue, 6 Mar 2012 00:52:28 +0100 User-Agent: KMail/1.9.10 References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <201203060052.28603.zec@fer.hr> X-OriginalArrivalTime: 05 Mar 2012 23:53:04.0148 (UTC) FILETIME=[1AF74540:01CCFB2B] Cc: Adrian Chadd Subject: Re: VIMAGE + kldload wlan + kldload wtap panic X-BeenThere: freebsd-virtualization@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion of various virtualization techniques FreeBSD supports." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Mar 2012 00:05:16 -0000 On Monday 05 March 2012 22:14:45 Monthadar Al Jaberi wrote: > Hi, > > I am a very happy VIMAGE user. But lately I have been having problems > using it, and its too complicated for me to dig in so I hope you can > help me (and help Adrian too). > > I am using FreeBSD Current with a kernel config without wlan module > and wireless devices attach kernel config. > > uname -a shows: > FreeBSD acke 10.0-CURRENT FreeBSD 10.0-CURRENT #2: Mon Mar 5 20:02:38 > CET 2012 root@acke:/usr/obj/usr/src/sys/VNET_without_wlan amd64 > > I run the following commands: > cd /usr/sys/module/wlan > make load > cd /usr/sys/modules/wtap > make load > > then: > /usr/src/ools/tools/wtap/wtap/wtap c 0 > ifconfig wlan create wlandev wtap0 wlanmode mesh > wlandebug -i wlan0 hwmp+mesh+output+input+inact > ifconfig wlan0 meshid mymesh > ifconfig wlan0 inet 192.168.2.1 > > and freebsd panics with: > Mon Mar 5 21:17:46 CET 2012 > Mar 5 21:59:23 acke login: ROOT LOGIN (root) ON ttyv0 > Using visibility wtap plugin... > Loaded wtap wireless simulator > wtap0: ieee80211_radiotap_attach: no tx channel, radiotap 0x0wtap0: > ieee80211_radiotap_attach: no rx channel, radiotap 0x0wlan0: Ethernet > address: 00:98:9a:98:96:97 > wlan0: ieee80211_start: ignore queue, in SCAN state > wlan0: [00:98:9a:98:96:97] ieee80211_alloc_node: inact_reload 2 > Kernel page fault with the following non-sleepable locks held: > exclusive sleep mutex wtap0_com_lock (wtap0_com_lock) r = 0 > (0xffffff8002395018) locked @ > /usr/src/sys/modules/wlan/../../net80211/ieee80211_proto.c:1937 > KDB: stack backtrace: > db_trace_self_wrapper() at db_trace_self_wrapper+0x2a > kdb_backtrace() at kdb_backtrace+0x37 > _witness_debugger() at _witness_debugger+0x2c > witness_warn() at witness_warn+0x2c4 > trap() at trap+0x2fe > calltrap() at calltrap+0x8 > --- trap 0xc, rip = 0xffffffff80885d0c, rsp = 0xffffff80003e9a00, rbp > = 0xffffff80003e9a20 --- > rt_dispatch() at rt_dispatch+0x2c > rt_ieee80211msg() at rt_ieee80211msg+0x7f > scan_task() at scan_task+0x4cd > taskqueue_run_locked() at taskqueue_run_locked+0x93 > taskqueue_thread_loop() at taskqueue_thread_loop+0x3e It may be that scan_task() calls further down into the network stack without setting curvnet first. Marko > fork_exit() at fork_exit+0x135 > fork_trampoline() at fork_trampoline+0xe > --- trap 0, rip = 0, rsp = 0xffffff80003e9cf0, rbp = 0 --- > > > Fatal trap 12: page fault while in kernel mode > cpuid = 0; apic id = 00 > fault virtual address = 0x28 > fault code = supervisor read data, page not present > instruction pointer = 0x20:0xffffffff80885d0c > stack pointer = 0x28:0xffffff80003e9a00 > frame pointer = 0x28:0xffffff80003e9a20 > code segment = base 0x0, limit 0xfffff, type 0x1b > = DPL 0, pres 1, long 1, def32 0, gran 1 > processor eflags = interrupt enabled, resume, IOPL = 0 > current process = 0 (wtap0 net80211 task) > > I am attaching dump file too. > > The weird thing is that I don't get this panic if I include wlan in > kernel config while everything else is the same. > > Thank you for any help! From owner-freebsd-virtualization@FreeBSD.ORG Tue Mar 6 09:53:18 2012 Return-Path: Delivered-To: freebsd-virtualization@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id D9355106566C for ; Tue, 6 Mar 2012 09:53:18 +0000 (UTC) (envelope-from monthadar@gmail.com) Received: from mail-iy0-f182.google.com (mail-iy0-f182.google.com [209.85.210.182]) by mx1.freebsd.org (Postfix) with ESMTP id 9521E8FC17 for ; Tue, 6 Mar 2012 09:53:18 +0000 (UTC) Received: by iahk25 with SMTP id k25so9291572iah.13 for ; Tue, 06 Mar 2012 01:53:18 -0800 (PST) Received-SPF: pass (google.com: domain of monthadar@gmail.com designates 10.50.158.131 as permitted sender) client-ip=10.50.158.131; Authentication-Results: mr.google.com; spf=pass (google.com: domain of monthadar@gmail.com designates 10.50.158.131 as permitted sender) smtp.mail=monthadar@gmail.com; dkim=pass header.i=monthadar@gmail.com Received: from mr.google.com ([10.50.158.131]) by 10.50.158.131 with SMTP id wu3mr9840790igb.49.1331027598184 (num_hops = 1); Tue, 06 Mar 2012 01:53:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=GMUJhAh0p7PGVP+x/daxjA6yqK81T9NMcII9Ty4GUEs=; b=zmIY4l8DAz8Jpw+aAHAh+EywGtWLuTk0qW5hq8OgpT9vm8LnIfRpDuUYjKC10HRWR0 Vunktpnj3d6Czz5KgF3c12E/LbTgIwRn0Gq8TEhvqod5ZZqRBe0Sc5bu7QOyzlF/FU8p D+i+fkcX+SXw6YrliHyLp4sNZY/Zth2ck/SVKeV7igu08ZiNbeQm+wxQFSPr8ugsY/Mk Hn6X2q6Pz1MAnMlrsNGY+uvQ3+yIsvi8yONc7Q6K+lWwBM7/KGKfYdRiNJV+AIUdSSFZ jrhxQMxi7/xzUKMz+EWhLaBMKL+k3Yw3k3FJXfu4PWZOE+I4T7Rc5tVORoYZVcGGJLhi T2+w== MIME-Version: 1.0 Received: by 10.50.158.131 with SMTP id wu3mr8158026igb.49.1331027598137; Tue, 06 Mar 2012 01:53:18 -0800 (PST) Received: by 10.50.236.67 with HTTP; Tue, 6 Mar 2012 01:53:18 -0800 (PST) In-Reply-To: <201203060052.28603.zec@fer.hr> References: <201203060052.28603.zec@fer.hr> Date: Tue, 6 Mar 2012 10:53:18 +0100 Message-ID: From: Monthadar Al Jaberi To: Marko Zec Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: Adrian Chadd , freebsd-virtualization@freebsd.org Subject: Re: VIMAGE + kldload wlan + kldload wtap panic X-BeenThere: freebsd-virtualization@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion of various virtualization techniques FreeBSD supports." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Mar 2012 09:53:18 -0000 On Tue, Mar 6, 2012 at 12:52 AM, Marko Zec wrote: > On Monday 05 March 2012 22:14:45 Monthadar Al Jaberi wrote: >> Hi, >> >> I am a very happy VIMAGE user. But lately I have been having problems >> using it, and its too complicated for me to dig in so I hope you can >> help me (and help Adrian too). >> >> I am using FreeBSD Current with a kernel config without wlan module >> and wireless devices =A0attach kernel config. >> >> uname -a shows: >> FreeBSD acke 10.0-CURRENT FreeBSD 10.0-CURRENT #2: Mon Mar =A05 20:02:38 >> CET 2012 =A0 =A0 root@acke:/usr/obj/usr/src/sys/VNET_without_wlan =A0amd= 64 >> >> I run the following commands: >> cd /usr/sys/module/wlan >> make load >> cd /usr/sys/modules/wtap >> make load >> >> then: >> /usr/src/ools/tools/wtap/wtap/wtap c 0 >> ifconfig wlan create wlandev wtap0 wlanmode mesh >> wlandebug -i wlan0 hwmp+mesh+output+input+inact >> ifconfig wlan0 meshid mymesh >> ifconfig wlan0 inet 192.168.2.1 >> >> and freebsd panics with: >> Mon Mar =A05 21:17:46 CET 2012 >> Mar =A05 21:59:23 acke login: ROOT LOGIN (root) ON ttyv0 >> Using visibility wtap plugin... >> Loaded wtap wireless simulator >> wtap0: ieee80211_radiotap_attach: no tx channel, radiotap 0x0wtap0: >> ieee80211_radiotap_attach: no rx channel, radiotap 0x0wlan0: Ethernet >> address: 00:98:9a:98:96:97 >> wlan0: ieee80211_start: ignore queue, in SCAN state >> wlan0: [00:98:9a:98:96:97] ieee80211_alloc_node: inact_reload 2 >> Kernel page fault with the following non-sleepable locks held: >> exclusive sleep mutex wtap0_com_lock (wtap0_com_lock) r =3D 0 >> (0xffffff8002395018) locked @ >> /usr/src/sys/modules/wlan/../../net80211/ieee80211_proto.c:1937 >> KDB: stack backtrace: >> db_trace_self_wrapper() at db_trace_self_wrapper+0x2a >> kdb_backtrace() at kdb_backtrace+0x37 >> _witness_debugger() at _witness_debugger+0x2c >> witness_warn() at witness_warn+0x2c4 >> trap() at trap+0x2fe >> calltrap() at calltrap+0x8 >> --- trap 0xc, rip =3D 0xffffffff80885d0c, rsp =3D 0xffffff80003e9a00, rb= p >> =3D 0xffffff80003e9a20 --- >> rt_dispatch() at rt_dispatch+0x2c >> rt_ieee80211msg() at rt_ieee80211msg+0x7f >> scan_task() at scan_task+0x4cd >> taskqueue_run_locked() at taskqueue_run_locked+0x93 >> taskqueue_thread_loop() at taskqueue_thread_loop+0x3e > > It may be that scan_task() calls further down into the network stack with= out > setting curvnet first. I added CURVNET_SET(TD_TO_VNET(curthread))/CURVNET_RESTORE() in scan_task but it didnt help > > Marko > > >> fork_exit() at fork_exit+0x135 >> fork_trampoline() at fork_trampoline+0xe >> --- trap 0, rip =3D 0, rsp =3D 0xffffff80003e9cf0, rbp =3D 0 --- >> >> >> Fatal trap 12: page fault while in kernel mode >> cpuid =3D 0; apic id =3D 00 >> fault virtual address =3D 0x28 >> fault code =A0 =A0 =A0 =A0 =A0 =A0=3D supervisor read data, page not pre= sent >> instruction pointer =A0 =3D 0x20:0xffffffff80885d0c >> stack pointer =A0 =A0 =A0 =A0 =3D 0x28:0xffffff80003e9a00 >> frame pointer =A0 =A0 =A0 =A0 =3D 0x28:0xffffff80003e9a20 >> code segment =A0 =A0 =A0 =A0 =A0=3D base 0x0, limit 0xfffff, type 0x1b >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =3D DPL 0, pres 1, long 1, d= ef32 0, gran 1 >> processor eflags =A0 =A0 =A0=3D interrupt enabled, resume, IOPL =3D 0 >> current process =A0 =A0 =A0 =A0 =A0 =A0 =A0 =3D 0 (wtap0 net80211 task) >> >> I am attaching dump file too. >> >> The weird thing is that I don't get this panic if I include wlan in >> kernel config while everything else is the same. >> >> Thank you for any help! > > --=20 Monthadar Al Jaberi From owner-freebsd-virtualization@FreeBSD.ORG Tue Mar 6 15:33:32 2012 Return-Path: Delivered-To: freebsd-virtualization@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 68EC5106564A for ; Tue, 6 Mar 2012 15:33:32 +0000 (UTC) (envelope-from zec@fer.hr) Received: from munja.zvne.fer.hr (munja.zvne.fer.hr [161.53.66.248]) by mx1.freebsd.org (Postfix) with ESMTP id E5E428FC15 for ; Tue, 6 Mar 2012 15:33:30 +0000 (UTC) Received: from sluga.fer.hr ([161.53.66.244]) by munja.zvne.fer.hr with Microsoft SMTPSVC(6.0.3790.4675); Tue, 6 Mar 2012 16:33:28 +0100 Received: from localhost ([161.53.19.8]) by sluga.fer.hr with Microsoft SMTPSVC(6.0.3790.4675); Tue, 6 Mar 2012 16:33:28 +0100 From: Marko Zec To: freebsd-virtualization@freebsd.org Date: Tue, 6 Mar 2012 16:33:03 +0100 User-Agent: KMail/1.9.10 References: <201203060052.28603.zec@fer.hr> In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Message-Id: <201203061633.03446.zec@fer.hr> X-OriginalArrivalTime: 06 Mar 2012 15:33:28.0890 (UTC) FILETIME=[7ABBA1A0:01CCFBAE] Cc: Adrian Chadd Subject: Re: VIMAGE + kldload wlan + kldload wtap panic X-BeenThere: freebsd-virtualization@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion of various virtualization techniques FreeBSD supports." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Mar 2012 15:33:32 -0000 On Tuesday 06 March 2012 10:53:18 Monthadar Al Jaberi wrote: > On Tue, Mar 6, 2012 at 12:52 AM, Marko Zec wrote: > > On Monday 05 March 2012 22:14:45 Monthadar Al Jaberi wrote: > >> Hi, > >> > >> I am a very happy VIMAGE user. But lately I have been having problems > >> using it, and its too complicated for me to dig in so I hope you can > >> help me (and help Adrian too). > >> > >> I am using FreeBSD Current with a kernel config without wlan module > >> and wireless devices =A0attach kernel config. > >> > >> uname -a shows: > >> FreeBSD acke 10.0-CURRENT FreeBSD 10.0-CURRENT #2: Mon Mar =A05 20:02:= 38 > >> CET 2012 =A0 =A0 root@acke:/usr/obj/usr/src/sys/VNET_without_wlan =A0a= md64 > >> > >> I run the following commands: > >> cd /usr/sys/module/wlan > >> make load > >> cd /usr/sys/modules/wtap > >> make load > >> > >> then: > >> /usr/src/ools/tools/wtap/wtap/wtap c 0 > >> ifconfig wlan create wlandev wtap0 wlanmode mesh > >> wlandebug -i wlan0 hwmp+mesh+output+input+inact > >> ifconfig wlan0 meshid mymesh > >> ifconfig wlan0 inet 192.168.2.1 > >> > >> and freebsd panics with: > >> Mon Mar =A05 21:17:46 CET 2012 > >> Mar =A05 21:59:23 acke login: ROOT LOGIN (root) ON ttyv0 > >> Using visibility wtap plugin... > >> Loaded wtap wireless simulator > >> wtap0: ieee80211_radiotap_attach: no tx channel, radiotap 0x0wtap0: > >> ieee80211_radiotap_attach: no rx channel, radiotap 0x0wlan0: Ethernet > >> address: 00:98:9a:98:96:97 > >> wlan0: ieee80211_start: ignore queue, in SCAN state > >> wlan0: [00:98:9a:98:96:97] ieee80211_alloc_node: inact_reload 2 > >> Kernel page fault with the following non-sleepable locks held: > >> exclusive sleep mutex wtap0_com_lock (wtap0_com_lock) r =3D 0 > >> (0xffffff8002395018) locked @ > >> /usr/src/sys/modules/wlan/../../net80211/ieee80211_proto.c:1937 > >> KDB: stack backtrace: > >> db_trace_self_wrapper() at db_trace_self_wrapper+0x2a > >> kdb_backtrace() at kdb_backtrace+0x37 > >> _witness_debugger() at _witness_debugger+0x2c > >> witness_warn() at witness_warn+0x2c4 > >> trap() at trap+0x2fe > >> calltrap() at calltrap+0x8 > >> --- trap 0xc, rip =3D 0xffffffff80885d0c, rsp =3D 0xffffff80003e9a00, = rbp > >> =3D 0xffffff80003e9a20 --- > >> rt_dispatch() at rt_dispatch+0x2c > >> rt_ieee80211msg() at rt_ieee80211msg+0x7f > >> scan_task() at scan_task+0x4cd > >> taskqueue_run_locked() at taskqueue_run_locked+0x93 > >> taskqueue_thread_loop() at taskqueue_thread_loop+0x3e > > > > It may be that scan_task() calls further down into the network stack > > without setting curvnet first. > > I added CURVNET_SET(TD_TO_VNET(curthread))/CURVNET_RESTORE() in > scan_task but it didnt help scan_task() is called from a taskqueue trampoline which doesn't have a vali= d=20 TD_TO_VNET(curthread) context, so what you attempted to do can't work. You= =20 need to set curvnet context to the one to which the network interface (or a= =20 packet) you're working with belongs to. Perhaps you could use (struct ieee80211_scan_state *) ss->ss_vap->iv_ifp->if_curvnet in scan_task() to set curvnet, but having no clue on how the 80211 code wor= ks,=20 I might be wrong... And maybe you could consider rebuilding your kernel with options VNET_DEBUG= =20 turned on - that should more verbosely point to the problem at hand, while= =20 not introducing too big a performance penalty at runtime. Good luck, Marko From owner-freebsd-virtualization@FreeBSD.ORG Tue Mar 6 18:32:38 2012 Return-Path: Delivered-To: freebsd-virtualization@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 572BB106564A for ; Tue, 6 Mar 2012 18:32:38 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-we0-f182.google.com (mail-we0-f182.google.com [74.125.82.182]) by mx1.freebsd.org (Postfix) with ESMTP id D3A868FC13 for ; Tue, 6 Mar 2012 18:32:37 +0000 (UTC) Received: by werl4 with SMTP id l4so4312062wer.13 for ; Tue, 06 Mar 2012 10:32:36 -0800 (PST) Received-SPF: pass (google.com: domain of adrian.chadd@gmail.com designates 10.216.138.135 as permitted sender) client-ip=10.216.138.135; Authentication-Results: mr.google.com; spf=pass (google.com: domain of adrian.chadd@gmail.com designates 10.216.138.135 as permitted sender) smtp.mail=adrian.chadd@gmail.com; dkim=pass header.i=adrian.chadd@gmail.com Received: from mr.google.com ([10.216.138.135]) by 10.216.138.135 with SMTP id a7mr4477703wej.19.1331058756929 (num_hops = 1); Tue, 06 Mar 2012 10:32:36 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=HWnGeawC1kkHCnknS6/Q8NP1Vm1WijPUN+W3MtggbLM=; b=xZ1HiSo/7wSSzt3UkK5sUpNDgBkd8EvpX9PesBiLa8e897qooklGcfpH2z4iubHthz GFPpuJpc3SMWqGdr4/mWD/ZL5tjPuEHHWArp9f3Tp4RLZ/c+bGMtZTBbVLttMzCHUacV Nw8fPFsFZt9soAgo3c1lmcpcf6jIye8aTSj7yAaBItjTBP3A3EHuT4A4baOLXRs+zWOQ brXQf23yH2YwBVG98tyCZLJVw3ww5MQs32V2CMt5NWMZ2r9ABNZcXy61+m5MZXTWY3bY 4A5DZ9q6wKtnd0JDCO3wpvEqTdXcIjNNPECoPdiLiKWl08nF0j7DXKz3UgMeETsZ5nFE ykOA== MIME-Version: 1.0 Received: by 10.216.138.135 with SMTP id a7mr3499645wej.19.1331056871246; Tue, 06 Mar 2012 10:01:11 -0800 (PST) Received: by 10.216.198.81 with HTTP; Tue, 6 Mar 2012 10:01:11 -0800 (PST) In-Reply-To: <201203061633.03446.zec@fer.hr> References: <201203060052.28603.zec@fer.hr> <201203061633.03446.zec@fer.hr> Date: Tue, 6 Mar 2012 10:01:11 -0800 Message-ID: From: Adrian Chadd To: Marko Zec Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Mailman-Approved-At: Tue, 06 Mar 2012 18:51:56 +0000 Cc: freebsd-virtualization@freebsd.org Subject: Re: VIMAGE + kldload wlan + kldload wtap panic X-BeenThere: freebsd-virtualization@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion of various virtualization techniques FreeBSD supports." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Mar 2012 18:32:38 -0000 Hi, What do we need to do to get VNET working in net80211 and the network drive= rs? Adrian On 6 March 2012 07:33, Marko Zec wrote: > On Tuesday 06 March 2012 10:53:18 Monthadar Al Jaberi wrote: >> On Tue, Mar 6, 2012 at 12:52 AM, Marko Zec wrote: >> > On Monday 05 March 2012 22:14:45 Monthadar Al Jaberi wrote: >> >> Hi, >> >> >> >> I am a very happy VIMAGE user. But lately I have been having problems >> >> using it, and its too complicated for me to dig in so I hope you can >> >> help me (and help Adrian too). >> >> >> >> I am using FreeBSD Current with a kernel config without wlan module >> >> and wireless devices =A0attach kernel config. >> >> >> >> uname -a shows: >> >> FreeBSD acke 10.0-CURRENT FreeBSD 10.0-CURRENT #2: Mon Mar =A05 20:02= :38 >> >> CET 2012 =A0 =A0 root@acke:/usr/obj/usr/src/sys/VNET_without_wlan =A0= amd64 >> >> >> >> I run the following commands: >> >> cd /usr/sys/module/wlan >> >> make load >> >> cd /usr/sys/modules/wtap >> >> make load >> >> >> >> then: >> >> /usr/src/ools/tools/wtap/wtap/wtap c 0 >> >> ifconfig wlan create wlandev wtap0 wlanmode mesh >> >> wlandebug -i wlan0 hwmp+mesh+output+input+inact >> >> ifconfig wlan0 meshid mymesh >> >> ifconfig wlan0 inet 192.168.2.1 >> >> >> >> and freebsd panics with: >> >> Mon Mar =A05 21:17:46 CET 2012 >> >> Mar =A05 21:59:23 acke login: ROOT LOGIN (root) ON ttyv0 >> >> Using visibility wtap plugin... >> >> Loaded wtap wireless simulator >> >> wtap0: ieee80211_radiotap_attach: no tx channel, radiotap 0x0wtap0: >> >> ieee80211_radiotap_attach: no rx channel, radiotap 0x0wlan0: Ethernet >> >> address: 00:98:9a:98:96:97 >> >> wlan0: ieee80211_start: ignore queue, in SCAN state >> >> wlan0: [00:98:9a:98:96:97] ieee80211_alloc_node: inact_reload 2 >> >> Kernel page fault with the following non-sleepable locks held: >> >> exclusive sleep mutex wtap0_com_lock (wtap0_com_lock) r =3D 0 >> >> (0xffffff8002395018) locked @ >> >> /usr/src/sys/modules/wlan/../../net80211/ieee80211_proto.c:1937 >> >> KDB: stack backtrace: >> >> db_trace_self_wrapper() at db_trace_self_wrapper+0x2a >> >> kdb_backtrace() at kdb_backtrace+0x37 >> >> _witness_debugger() at _witness_debugger+0x2c >> >> witness_warn() at witness_warn+0x2c4 >> >> trap() at trap+0x2fe >> >> calltrap() at calltrap+0x8 >> >> --- trap 0xc, rip =3D 0xffffffff80885d0c, rsp =3D 0xffffff80003e9a00,= rbp >> >> =3D 0xffffff80003e9a20 --- >> >> rt_dispatch() at rt_dispatch+0x2c >> >> rt_ieee80211msg() at rt_ieee80211msg+0x7f >> >> scan_task() at scan_task+0x4cd >> >> taskqueue_run_locked() at taskqueue_run_locked+0x93 >> >> taskqueue_thread_loop() at taskqueue_thread_loop+0x3e >> > >> > It may be that scan_task() calls further down into the network stack >> > without setting curvnet first. >> >> I added CURVNET_SET(TD_TO_VNET(curthread))/CURVNET_RESTORE() in >> scan_task but it didnt help > > scan_task() is called from a taskqueue trampoline which doesn't have a va= lid > TD_TO_VNET(curthread) context, so what you attempted to do can't work. = =A0You > need to set curvnet context to the one to which the network interface (or= a > packet) you're working with belongs to. =A0Perhaps you could use > > (struct ieee80211_scan_state *) ss->ss_vap->iv_ifp->if_curvnet > > in scan_task() to set curvnet, but having no clue on how the 80211 code w= orks, > I might be wrong... > > And maybe you could consider rebuilding your kernel with options VNET_DEB= UG > turned on - that should more verbosely point to the problem at hand, whil= e > not introducing too big a performance penalty at runtime. > > Good luck, > > Marko From owner-freebsd-virtualization@FreeBSD.ORG Tue Mar 6 19:49:39 2012 Return-Path: Delivered-To: freebsd-virtualization@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id C8266106566B for ; Tue, 6 Mar 2012 19:49:39 +0000 (UTC) (envelope-from monthadar@gmail.com) Received: from mail-yw0-f54.google.com (mail-yw0-f54.google.com [209.85.213.54]) by mx1.freebsd.org (Postfix) with ESMTP id 7C3E58FC08 for ; Tue, 6 Mar 2012 19:49:39 +0000 (UTC) Received: by yhgm50 with SMTP id m50so2838923yhg.13 for ; Tue, 06 Mar 2012 11:49:38 -0800 (PST) Received-SPF: pass (google.com: domain of monthadar@gmail.com designates 10.50.219.170 as permitted sender) client-ip=10.50.219.170; Authentication-Results: mr.google.com; spf=pass (google.com: domain of monthadar@gmail.com designates 10.50.219.170 as permitted sender) smtp.mail=monthadar@gmail.com; dkim=pass header.i=monthadar@gmail.com Received: from mr.google.com ([10.50.219.170]) by 10.50.219.170 with SMTP id pp10mr11638428igc.49.1331063378763 (num_hops = 1); Tue, 06 Mar 2012 11:49:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=BF8nILAwke1jR0gDbr+PtkD7IY9Db5yQcua9vTVGbek=; b=N1V5SnqeweAuRVdtcElG8+CBjUWXVK+UMrFwDlhUxVlsXZ8k7PPseRlv0AKd0d5QXv u79O0DTSsgPmOkLIBXffKhmw8ftzxiVhMQMHyHYWih/o4YnqFOAuwT/ydCR18jzUVoWY N1gKJ4YTc1iU3KBTO9vjSDGupHa0vVyEVIX5RM3GMuqr7ZRJG6L5bxveDG73pqE2C6XK t16x+pvW7TYTI3ctqZErfxBRDW63B5OfbycA0n0EEoqv8JDrNG5D5m6xHyYrjiPCJS+v Zt8an95P1YgcS4rrvxrEHSG05Z+90l8lfUnOqiMw5L/dwpY1e0tc6XMnUSF3f92zk0sj tmXQ== MIME-Version: 1.0 Received: by 10.50.219.170 with SMTP id pp10mr9699251igc.49.1331063378667; Tue, 06 Mar 2012 11:49:38 -0800 (PST) Received: by 10.50.236.67 with HTTP; Tue, 6 Mar 2012 11:49:38 -0800 (PST) In-Reply-To: References: <201203060052.28603.zec@fer.hr> <201203061633.03446.zec@fer.hr> Date: Tue, 6 Mar 2012 20:49:38 +0100 Message-ID: From: Monthadar Al Jaberi To: Adrian Chadd Content-Type: text/plain; charset=ISO-8859-1 Cc: Marko Zec , freebsd-virtualization@freebsd.org Subject: Re: VIMAGE + kldload wlan + kldload wtap panic X-BeenThere: freebsd-virtualization@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion of various virtualization techniques FreeBSD supports." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Mar 2012 19:49:39 -0000 I added VNET_DEBUG and noticed this warning (original scan_task code): CURVNET_SET() recursion in sosend() line 1350, prev in kern_kldload() 0xfffffe0002202c40 -> 0xfffffe0002202c40 KDB: stack backtrace: db_trace_self_wrapper() at db_trace_self_wrapper+0x2a kdb_backtrace() at kdb_backtrace+0x37 sosend() at sosend+0xbd clnt_vc_call() at clnt_vc_call+0x3e6 clnt_reconnect_call() at clnt_reconnect_call+0xf5 newnfs_request() at newnfs_request+0x9fb nfscl_request() at nfscl_request+0x72 nfsrpc_lookup() at nfsrpc_lookup+0x1be nfs_lookup() at nfs_lookup+0x297 VOP_LOOKUP_APV() at VOP_LOOKUP_APV+0x95 lookup() at lookup+0x3b8 namei() at namei+0x484 vn_open_cred() at vn_open_cred+0x1e2 link_elf_load_file() at link_elf_load_file+0xb3 linker_load_module() at linker_load_module+0x794 kern_kldload() at kern_kldload+0x145 sys_kldload() at sys_kldload+0x84 amd64_syscall() at amd64_syscall+0x39e Xfast_syscall() at Xfast_syscall+0xf7 On Tue, Mar 6, 2012 at 7:01 PM, Adrian Chadd wrote: > Hi, > > What do we need to do to get VNET working in net80211 and the network drivers? > > > Adrian > > On 6 March 2012 07:33, Marko Zec wrote: >> On Tuesday 06 March 2012 10:53:18 Monthadar Al Jaberi wrote: >>> On Tue, Mar 6, 2012 at 12:52 AM, Marko Zec wrote: >>> > On Monday 05 March 2012 22:14:45 Monthadar Al Jaberi wrote: >>> >> Hi, >>> >> >>> >> I am a very happy VIMAGE user. But lately I have been having problems >>> >> using it, and its too complicated for me to dig in so I hope you can >>> >> help me (and help Adrian too). >>> >> >>> >> I am using FreeBSD Current with a kernel config without wlan module >>> >> and wireless devices attach kernel config. >>> >> >>> >> uname -a shows: >>> >> FreeBSD acke 10.0-CURRENT FreeBSD 10.0-CURRENT #2: Mon Mar 5 20:02:38 >>> >> CET 2012 root@acke:/usr/obj/usr/src/sys/VNET_without_wlan amd64 >>> >> >>> >> I run the following commands: >>> >> cd /usr/sys/module/wlan >>> >> make load >>> >> cd /usr/sys/modules/wtap >>> >> make load >>> >> >>> >> then: >>> >> /usr/src/ools/tools/wtap/wtap/wtap c 0 >>> >> ifconfig wlan create wlandev wtap0 wlanmode mesh >>> >> wlandebug -i wlan0 hwmp+mesh+output+input+inact >>> >> ifconfig wlan0 meshid mymesh >>> >> ifconfig wlan0 inet 192.168.2.1 >>> >> >>> >> and freebsd panics with: >>> >> Mon Mar 5 21:17:46 CET 2012 >>> >> Mar 5 21:59:23 acke login: ROOT LOGIN (root) ON ttyv0 >>> >> Using visibility wtap plugin... >>> >> Loaded wtap wireless simulator >>> >> wtap0: ieee80211_radiotap_attach: no tx channel, radiotap 0x0wtap0: >>> >> ieee80211_radiotap_attach: no rx channel, radiotap 0x0wlan0: Ethernet >>> >> address: 00:98:9a:98:96:97 >>> >> wlan0: ieee80211_start: ignore queue, in SCAN state >>> >> wlan0: [00:98:9a:98:96:97] ieee80211_alloc_node: inact_reload 2 >>> >> Kernel page fault with the following non-sleepable locks held: >>> >> exclusive sleep mutex wtap0_com_lock (wtap0_com_lock) r = 0 >>> >> (0xffffff8002395018) locked @ >>> >> /usr/src/sys/modules/wlan/../../net80211/ieee80211_proto.c:1937 >>> >> KDB: stack backtrace: >>> >> db_trace_self_wrapper() at db_trace_self_wrapper+0x2a >>> >> kdb_backtrace() at kdb_backtrace+0x37 >>> >> _witness_debugger() at _witness_debugger+0x2c >>> >> witness_warn() at witness_warn+0x2c4 >>> >> trap() at trap+0x2fe >>> >> calltrap() at calltrap+0x8 >>> >> --- trap 0xc, rip = 0xffffffff80885d0c, rsp = 0xffffff80003e9a00, rbp >>> >> = 0xffffff80003e9a20 --- >>> >> rt_dispatch() at rt_dispatch+0x2c >>> >> rt_ieee80211msg() at rt_ieee80211msg+0x7f >>> >> scan_task() at scan_task+0x4cd >>> >> taskqueue_run_locked() at taskqueue_run_locked+0x93 >>> >> taskqueue_thread_loop() at taskqueue_thread_loop+0x3e >>> > >>> > It may be that scan_task() calls further down into the network stack >>> > without setting curvnet first. >>> >>> I added CURVNET_SET(TD_TO_VNET(curthread))/CURVNET_RESTORE() in >>> scan_task but it didnt help >> >> scan_task() is called from a taskqueue trampoline which doesn't have a valid >> TD_TO_VNET(curthread) context, so what you attempted to do can't work. You >> need to set curvnet context to the one to which the network interface (or a >> packet) you're working with belongs to. Perhaps you could use >> >> (struct ieee80211_scan_state *) ss->ss_vap->iv_ifp->if_curvnet >> >> in scan_task() to set curvnet, but having no clue on how the 80211 code works, >> I might be wrong... >> >> And maybe you could consider rebuilding your kernel with options VNET_DEBUG >> turned on - that should more verbosely point to the problem at hand, while >> not introducing too big a performance penalty at runtime. >> >> Good luck, >> >> Marko -- Monthadar Al Jaberi From owner-freebsd-virtualization@FreeBSD.ORG Tue Mar 6 19:53:04 2012 Return-Path: Delivered-To: freebsd-virtualization@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8E81E1065672 for ; Tue, 6 Mar 2012 19:53:04 +0000 (UTC) (envelope-from zec@fer.hr) Received: from munja.zvne.fer.hr (munja.zvne.fer.hr [161.53.66.248]) by mx1.freebsd.org (Postfix) with ESMTP id 1D34E8FC1E for ; Tue, 6 Mar 2012 19:53:03 +0000 (UTC) Received: from sluga.fer.hr ([161.53.66.244]) by munja.zvne.fer.hr with Microsoft SMTPSVC(6.0.3790.4675); Tue, 6 Mar 2012 20:53:01 +0100 Received: from localhost ([161.53.19.8]) by sluga.fer.hr with Microsoft SMTPSVC(6.0.3790.4675); Tue, 6 Mar 2012 20:53:01 +0100 From: Marko Zec To: freebsd-virtualization@freebsd.org Date: Tue, 6 Mar 2012 20:52:39 +0100 User-Agent: KMail/1.9.10 References: <201203061633.03446.zec@fer.hr> In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Message-Id: <201203062052.39902.zec@fer.hr> X-OriginalArrivalTime: 06 Mar 2012 19:53:01.0847 (UTC) FILETIME=[BCF04A70:01CCFBD2] Cc: Adrian Chadd Subject: Re: VIMAGE + kldload wlan + kldload wtap panic X-BeenThere: freebsd-virtualization@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion of various virtualization techniques FreeBSD supports." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Mar 2012 19:53:04 -0000 On Tuesday 06 March 2012 19:01:11 Adrian Chadd wrote: > Hi, > > What do we need to do to get VNET working in net80211 and the network > drivers? In principle one shouldn't have to touch anything in the network drivers. In order for networking code to properly resolve virtualized state, curvnet= =20 (which is a synonim for curthread->td_vnet) must be set to a proper context= =20 when calling into networking code, and restored to previous value on=20 returned. CURVNET_SET() and CURVNET_RESTORE() are macros which should be=20 used to do this. As far as I know there are three ways for a function call to end up in the= =20 networking code: A) system calls (socket related, or syctls); B) servicing= =20 inbound packets; and C) timers / periodic tasks. Cases A) and B) should be mostly covered in generic socket handlers and in= =20 netisr dispatchers, except sysctls which need to access any state you may=20 have decided to virtualize - those should converted to use SYSCTL_VNET_*=20 macros. Cases which fall into category C) are the ones which probably require most= =20 attention and in certain cases may require certain amount of code=20 restructuring. Handlers which are dispatched via timers are not bound to a= ny=20 of the network stack instances, so in those you have to follow one of the t= wo=20 possible strategies: 1) iterate over all existing VNETs and do your timer-driven stuff once in e= ach=20 of those - in that case take a look at how VNET_LIST_RLOCK(),=20 VNET_ITERATOR_DECL() and VNET_FOREACH() family of macros are used elsewhere= ,=20 or 2) if the timer-driven event is bound to an object which is associated with= an=20 ifnet interface, you should explicitly set the curvnet context to match the= =20 one the ifnet is associated with, using CURVNET_SET(ifp->if_vnet), as I=20 pointed out earlier in this thread. Buiding a VNET_DEBUG kernel may help you a bit to find out the critical spo= ts=20 when things go wrong, but don't expect miracles... I think both Julian and Bjoern have already written pretty nice and extensi= ve=20 documents covering those topics, but I would't know the current status or=20 whereabouts of those... Hope this helps, Marko > Adrian > > On 6 March 2012 07:33, Marko Zec wrote: > > On Tuesday 06 March 2012 10:53:18 Monthadar Al Jaberi wrote: > >> On Tue, Mar 6, 2012 at 12:52 AM, Marko Zec wrote: > >> > On Monday 05 March 2012 22:14:45 Monthadar Al Jaberi wrote: > >> >> Hi, > >> >> > >> >> I am a very happy VIMAGE user. But lately I have been having proble= ms > >> >> using it, and its too complicated for me to dig in so I hope you can > >> >> help me (and help Adrian too). > >> >> > >> >> I am using FreeBSD Current with a kernel config without wlan module > >> >> and wireless devices =A0attach kernel config. > >> >> > >> >> uname -a shows: > >> >> FreeBSD acke 10.0-CURRENT FreeBSD 10.0-CURRENT #2: Mon Mar =A05 > >> >> 20:02:38 CET 2012 =A0 =A0 > >> >> root@acke:/usr/obj/usr/src/sys/VNET_without_wlan =A0amd64 > >> >> > >> >> I run the following commands: > >> >> cd /usr/sys/module/wlan > >> >> make load > >> >> cd /usr/sys/modules/wtap > >> >> make load > >> >> > >> >> then: > >> >> /usr/src/ools/tools/wtap/wtap/wtap c 0 > >> >> ifconfig wlan create wlandev wtap0 wlanmode mesh > >> >> wlandebug -i wlan0 hwmp+mesh+output+input+inact > >> >> ifconfig wlan0 meshid mymesh > >> >> ifconfig wlan0 inet 192.168.2.1 > >> >> > >> >> and freebsd panics with: > >> >> Mon Mar =A05 21:17:46 CET 2012 > >> >> Mar =A05 21:59:23 acke login: ROOT LOGIN (root) ON ttyv0 > >> >> Using visibility wtap plugin... > >> >> Loaded wtap wireless simulator > >> >> wtap0: ieee80211_radiotap_attach: no tx channel, radiotap 0x0wtap0: > >> >> ieee80211_radiotap_attach: no rx channel, radiotap 0x0wlan0: Ethern= et > >> >> address: 00:98:9a:98:96:97 > >> >> wlan0: ieee80211_start: ignore queue, in SCAN state > >> >> wlan0: [00:98:9a:98:96:97] ieee80211_alloc_node: inact_reload 2 > >> >> Kernel page fault with the following non-sleepable locks held: > >> >> exclusive sleep mutex wtap0_com_lock (wtap0_com_lock) r =3D 0 > >> >> (0xffffff8002395018) locked @ > >> >> /usr/src/sys/modules/wlan/../../net80211/ieee80211_proto.c:1937 > >> >> KDB: stack backtrace: > >> >> db_trace_self_wrapper() at db_trace_self_wrapper+0x2a > >> >> kdb_backtrace() at kdb_backtrace+0x37 > >> >> _witness_debugger() at _witness_debugger+0x2c > >> >> witness_warn() at witness_warn+0x2c4 > >> >> trap() at trap+0x2fe > >> >> calltrap() at calltrap+0x8 > >> >> --- trap 0xc, rip =3D 0xffffffff80885d0c, rsp =3D 0xffffff80003e9a0= 0, rbp > >> >> =3D 0xffffff80003e9a20 --- > >> >> rt_dispatch() at rt_dispatch+0x2c > >> >> rt_ieee80211msg() at rt_ieee80211msg+0x7f > >> >> scan_task() at scan_task+0x4cd > >> >> taskqueue_run_locked() at taskqueue_run_locked+0x93 > >> >> taskqueue_thread_loop() at taskqueue_thread_loop+0x3e > >> > > >> > It may be that scan_task() calls further down into the network stack > >> > without setting curvnet first. > >> > >> I added CURVNET_SET(TD_TO_VNET(curthread))/CURVNET_RESTORE() in > >> scan_task but it didnt help > > > > scan_task() is called from a taskqueue trampoline which doesn't have a > > valid TD_TO_VNET(curthread) context, so what you attempted to do can't > > work. =A0You need to set curvnet context to the one to which the network > > interface (or a packet) you're working with belongs to. =A0Perhaps you > > could use > > > > (struct ieee80211_scan_state *) ss->ss_vap->iv_ifp->if_curvnet > > > > in scan_task() to set curvnet, but having no clue on how the 80211 code > > works, I might be wrong... > > > > And maybe you could consider rebuilding your kernel with options > > VNET_DEBUG turned on - that should more verbosely point to the problem = at > > hand, while not introducing too big a performance penalty at runtime. > > > > Good luck, > > > > Marko > > _______________________________________________ > freebsd-virtualization@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-virtualization > To unsubscribe, send any mail to > "freebsd-virtualization-unsubscribe@freebsd.org" From owner-freebsd-virtualization@FreeBSD.ORG Tue Mar 6 19:59:55 2012 Return-Path: Delivered-To: freebsd-virtualization@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 38F7B1065678 for ; Tue, 6 Mar 2012 19:59:55 +0000 (UTC) (envelope-from zec@fer.hr) Received: from munja.zvne.fer.hr (munja.zvne.fer.hr [161.53.66.248]) by mx1.freebsd.org (Postfix) with ESMTP id B51B88FC16 for ; Tue, 6 Mar 2012 19:59:54 +0000 (UTC) Received: from sluga.fer.hr ([161.53.66.244]) by munja.zvne.fer.hr with Microsoft SMTPSVC(6.0.3790.4675); Tue, 6 Mar 2012 20:59:53 +0100 Received: from localhost ([161.53.19.8]) by sluga.fer.hr with Microsoft SMTPSVC(6.0.3790.4675); Tue, 6 Mar 2012 20:59:53 +0100 From: Marko Zec To: Monthadar Al Jaberi Date: Tue, 6 Mar 2012 20:59:31 +0100 User-Agent: KMail/1.9.10 References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <201203062059.31736.zec@fer.hr> X-OriginalArrivalTime: 06 Mar 2012 19:59:53.0272 (UTC) FILETIME=[B22AC380:01CCFBD3] Cc: Adrian Chadd , freebsd-virtualization@freebsd.org Subject: Re: VIMAGE + kldload wlan + kldload wtap panic X-BeenThere: freebsd-virtualization@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion of various virtualization techniques FreeBSD supports." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Mar 2012 19:59:55 -0000 On Tuesday 06 March 2012 20:49:38 Monthadar Al Jaberi wrote: > I added VNET_DEBUG and noticed this warning (original scan_task code): > > CURVNET_SET() recursion in sosend() line 1350, prev in kern_kldload() > 0xfffffe0002202c40 -> 0xfffffe0002202c40 > KDB: stack backtrace: > db_trace_self_wrapper() at db_trace_self_wrapper+0x2a > kdb_backtrace() at kdb_backtrace+0x37 > sosend() at sosend+0xbd > clnt_vc_call() at clnt_vc_call+0x3e6 > clnt_reconnect_call() at clnt_reconnect_call+0xf5 > newnfs_request() at newnfs_request+0x9fb > nfscl_request() at nfscl_request+0x72 > nfsrpc_lookup() at nfsrpc_lookup+0x1be > nfs_lookup() at nfs_lookup+0x297 > VOP_LOOKUP_APV() at VOP_LOOKUP_APV+0x95 > lookup() at lookup+0x3b8 > namei() at namei+0x484 > vn_open_cred() at vn_open_cred+0x1e2 > link_elf_load_file() at link_elf_load_file+0xb3 > linker_load_module() at linker_load_module+0x794 > kern_kldload() at kern_kldload+0x145 > sys_kldload() at sys_kldload+0x84 > amd64_syscall() at amd64_syscall+0x39e > Xfast_syscall() at Xfast_syscall+0xf7 You can safely ignore those. Recursing on curvnet is harmless, but in certain cases can't be avoided. When injecting new CURVNET_SET() / CURVNET_RESTORE() points in the existing code, those warnings are here to help us becoming aware that we are setting curvnet in a function which was invoked with an already valid curvnet context. Marko From owner-freebsd-virtualization@FreeBSD.ORG Tue Mar 6 20:13:01 2012 Return-Path: Delivered-To: freebsd-virtualization@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 46AA81065677 for ; Tue, 6 Mar 2012 20:13:01 +0000 (UTC) (envelope-from monthadar@gmail.com) Received: from mail-iy0-f182.google.com (mail-iy0-f182.google.com [209.85.210.182]) by mx1.freebsd.org (Postfix) with ESMTP id 043F98FC17 for ; Tue, 6 Mar 2012 20:13:00 +0000 (UTC) Received: by iahk25 with SMTP id k25so10208595iah.13 for ; Tue, 06 Mar 2012 12:13:00 -0800 (PST) Received-SPF: pass (google.com: domain of monthadar@gmail.com designates 10.50.181.199 as permitted sender) client-ip=10.50.181.199; Authentication-Results: mr.google.com; spf=pass (google.com: domain of monthadar@gmail.com designates 10.50.181.199 as permitted sender) smtp.mail=monthadar@gmail.com; dkim=pass header.i=monthadar@gmail.com Received: from mr.google.com ([10.50.181.199]) by 10.50.181.199 with SMTP id dy7mr11502266igc.57.1331064780533 (num_hops = 1); Tue, 06 Mar 2012 12:13:00 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=eN46EOKHrPstX4UWebTxaiiBWHOY4wFV80VJbmxmYc4=; b=y9BVJKJMkvd8UZYRdLfBYbdbUpqScfUU+zXDLFniIf+j0cQaPFGtN7HsYzSiqyZYTd mErv2MCnbaQlyY8fE0H+52dUds1/zt47cstxAJfnUk0iW8qpIFXQi/gp2w19sj/ZvvPd iy3kAYvwqUN1/IhYkWONUVwe6C/zdRzwC4tjq4j+9ZcKgHPXN/JAbQGhbVLJbansM6Iw vmrbnl1jFNbvV4hFxKqLlEU0uReqT5VMQJxv6A63m4wuTBJz1kOShj+y7iGuuWuY2+H3 XL/kzWR0lw3htcLUvxy6MaJGeTw+tI5hNwHq3ki5P1xBiozI3AUR5H1lpuq3CMyJgAap wFVQ== MIME-Version: 1.0 Received: by 10.50.181.199 with SMTP id dy7mr9586364igc.57.1331064780426; Tue, 06 Mar 2012 12:13:00 -0800 (PST) Received: by 10.50.236.67 with HTTP; Tue, 6 Mar 2012 12:13:00 -0800 (PST) In-Reply-To: References: <201203062059.31736.zec@fer.hr> Date: Tue, 6 Mar 2012 21:13:00 +0100 Message-ID: From: Monthadar Al Jaberi To: Adrian Chadd Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: Marko Zec , freebsd-virtualization@freebsd.org Subject: Re: VIMAGE + kldload wlan + kldload wtap panic X-BeenThere: freebsd-virtualization@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion of various virtualization techniques FreeBSD supports." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Mar 2012 20:13:01 -0000 I am confused so whats the difference between having wlan in kernel config or not? Cuase that seems the reason why we panic... linker problems? On Tue, Mar 6, 2012 at 9:06 PM, Adrian Chadd wrote= : > Hi, > > The trouble here is that net80211 has quite a few other contexts that > things are called from: > > * driver taskqueue; > * net80211 taskqueue; > * driver callouts; > * net80211 callouts; > * ioctls via net80211. > > That's in parallel with frame tx/rx and device ioctls. > > I don't personally have the time to go through net80211 and driver(s) > at the moment to figure out what's going on. Since ath(4) does a bunch > of frame processing in taskqueue context (and I'm trying to eliminate > frame processing in _callout_ context, ew..) things can potentially > get a bit hairy. > > > Adrian > > > On 6 March 2012 11:59, Marko Zec wrote: >> On Tuesday 06 March 2012 20:49:38 Monthadar Al Jaberi wrote: >>> I added VNET_DEBUG and noticed this warning (original scan_task code): >>> >>> CURVNET_SET() recursion in sosend() line 1350, prev in kern_kldload() >>> =A0 =A0 0xfffffe0002202c40 -> 0xfffffe0002202c40 >>> KDB: stack backtrace: >>> db_trace_self_wrapper() at db_trace_self_wrapper+0x2a >>> kdb_backtrace() at kdb_backtrace+0x37 >>> sosend() at sosend+0xbd >>> clnt_vc_call() at clnt_vc_call+0x3e6 >>> clnt_reconnect_call() at clnt_reconnect_call+0xf5 >>> newnfs_request() at newnfs_request+0x9fb >>> nfscl_request() at nfscl_request+0x72 >>> nfsrpc_lookup() at nfsrpc_lookup+0x1be >>> nfs_lookup() at nfs_lookup+0x297 >>> VOP_LOOKUP_APV() at VOP_LOOKUP_APV+0x95 >>> lookup() at lookup+0x3b8 >>> namei() at namei+0x484 >>> vn_open_cred() at vn_open_cred+0x1e2 >>> link_elf_load_file() at link_elf_load_file+0xb3 >>> linker_load_module() at linker_load_module+0x794 >>> kern_kldload() at kern_kldload+0x145 >>> sys_kldload() at sys_kldload+0x84 >>> amd64_syscall() at amd64_syscall+0x39e >>> Xfast_syscall() at Xfast_syscall+0xf7 >> >> You can safely ignore those. =A0Recursing on curvnet is harmless, but in= certain >> cases can't be avoided. >> >> When injecting new CURVNET_SET() / CURVNET_RESTORE() points in the exist= ing >> code, those warnings are here to help us becoming aware that we are sett= ing >> curvnet in a function which was invoked with an already valid curvnet >> context. >> >> Marko --=20 Monthadar Al Jaberi From owner-freebsd-virtualization@FreeBSD.ORG Tue Mar 6 20:22:38 2012 Return-Path: Delivered-To: freebsd-virtualization@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6986E106566B for ; Tue, 6 Mar 2012 20:22:38 +0000 (UTC) (envelope-from zec@fer.hr) Received: from munja.zvne.fer.hr (munja.zvne.fer.hr [161.53.66.248]) by mx1.freebsd.org (Postfix) with ESMTP id EF1A88FC13 for ; Tue, 6 Mar 2012 20:22:37 +0000 (UTC) Received: from sluga.fer.hr ([161.53.66.244]) by munja.zvne.fer.hr with Microsoft SMTPSVC(6.0.3790.4675); Tue, 6 Mar 2012 21:22:36 +0100 Received: from localhost ([161.53.19.8]) by sluga.fer.hr with Microsoft SMTPSVC(6.0.3790.4675); Tue, 6 Mar 2012 21:22:36 +0100 From: Marko Zec To: freebsd-virtualization@freebsd.org Date: Tue, 6 Mar 2012 21:22:15 +0100 User-Agent: KMail/1.9.10 References: In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Message-Id: <201203062122.15426.zec@fer.hr> X-OriginalArrivalTime: 06 Mar 2012 20:22:36.0550 (UTC) FILETIME=[DEBE7A60:01CCFBD6] Cc: Adrian Chadd Subject: Re: VIMAGE + kldload wlan + kldload wtap panic X-BeenThere: freebsd-virtualization@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion of various virtualization techniques FreeBSD supports." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Mar 2012 20:22:38 -0000 On Tuesday 06 March 2012 21:13:00 Monthadar Al Jaberi wrote: > I am confused so whats the difference between having wlan in kernel > config or not? Cuase that seems the reason why we panic... linker > problems? Its not impossible. Have you tried to do CURVNET_SET(ss->ss_vap->iv_ifp->if_vnet) on entry to=20 scan_task() as I suggested earlier in this thread? Cheers, Marko > On Tue, Mar 6, 2012 at 9:06 PM, Adrian Chadd wro= te: > > Hi, > > > > The trouble here is that net80211 has quite a few other contexts that > > things are called from: > > > > * driver taskqueue; > > * net80211 taskqueue; > > * driver callouts; > > * net80211 callouts; > > * ioctls via net80211. > > > > That's in parallel with frame tx/rx and device ioctls. > > > > I don't personally have the time to go through net80211 and driver(s) > > at the moment to figure out what's going on. Since ath(4) does a bunch > > of frame processing in taskqueue context (and I'm trying to eliminate > > frame processing in _callout_ context, ew..) things can potentially > > get a bit hairy. > > > > > > Adrian > > > > On 6 March 2012 11:59, Marko Zec wrote: > >> On Tuesday 06 March 2012 20:49:38 Monthadar Al Jaberi wrote: > >>> I added VNET_DEBUG and noticed this warning (original scan_task code): > >>> > >>> CURVNET_SET() recursion in sosend() line 1350, prev in kern_kldload() > >>> =A0 =A0 0xfffffe0002202c40 -> 0xfffffe0002202c40 > >>> KDB: stack backtrace: > >>> db_trace_self_wrapper() at db_trace_self_wrapper+0x2a > >>> kdb_backtrace() at kdb_backtrace+0x37 > >>> sosend() at sosend+0xbd > >>> clnt_vc_call() at clnt_vc_call+0x3e6 > >>> clnt_reconnect_call() at clnt_reconnect_call+0xf5 > >>> newnfs_request() at newnfs_request+0x9fb > >>> nfscl_request() at nfscl_request+0x72 > >>> nfsrpc_lookup() at nfsrpc_lookup+0x1be > >>> nfs_lookup() at nfs_lookup+0x297 > >>> VOP_LOOKUP_APV() at VOP_LOOKUP_APV+0x95 > >>> lookup() at lookup+0x3b8 > >>> namei() at namei+0x484 > >>> vn_open_cred() at vn_open_cred+0x1e2 > >>> link_elf_load_file() at link_elf_load_file+0xb3 > >>> linker_load_module() at linker_load_module+0x794 > >>> kern_kldload() at kern_kldload+0x145 > >>> sys_kldload() at sys_kldload+0x84 > >>> amd64_syscall() at amd64_syscall+0x39e > >>> Xfast_syscall() at Xfast_syscall+0xf7 > >> > >> You can safely ignore those. =A0Recursing on curvnet is harmless, but = in > >> certain cases can't be avoided. > >> > >> When injecting new CURVNET_SET() / CURVNET_RESTORE() points in the > >> existing code, those warnings are here to help us becoming aware that = we > >> are setting curvnet in a function which was invoked with an already > >> valid curvnet context. > >> > >> Marko From owner-freebsd-virtualization@FreeBSD.ORG Tue Mar 6 20:29:33 2012 Return-Path: Delivered-To: freebsd-virtualization@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 64515106566C for ; Tue, 6 Mar 2012 20:29:33 +0000 (UTC) (envelope-from monthadar@gmail.com) Received: from mail-iy0-f182.google.com (mail-iy0-f182.google.com [209.85.210.182]) by mx1.freebsd.org (Postfix) with ESMTP id 237748FC14 for ; Tue, 6 Mar 2012 20:29:32 +0000 (UTC) Received: by iahk25 with SMTP id k25so10230168iah.13 for ; Tue, 06 Mar 2012 12:29:32 -0800 (PST) Received-SPF: pass (google.com: domain of monthadar@gmail.com designates 10.50.219.170 as permitted sender) client-ip=10.50.219.170; Authentication-Results: mr.google.com; spf=pass (google.com: domain of monthadar@gmail.com designates 10.50.219.170 as permitted sender) smtp.mail=monthadar@gmail.com; dkim=pass header.i=monthadar@gmail.com Received: from mr.google.com ([10.50.219.170]) by 10.50.219.170 with SMTP id pp10mr11762201igc.49.1331065772679 (num_hops = 1); Tue, 06 Mar 2012 12:29:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=T5vs4ItrziEhhjlHADyFdlwmKN47xJPhfQeqXhTeROk=; b=Mwd1FS6GoOMBvMbWWloH4zBJ3oDAbYi7huRv7/p4IcLaEBYtiWit2lFT8noFJebDCH iRvTCxNDVMsb0rnsg6tgKnCqmFTKbN7eJjdUQ0J6ooAyqLnkkyurkzL8vWLq4Q008XOn FbqO98+TkTa2Nq5FX0kfYKG8YMPpNja3Nm9ZNUTPH5STSdmZ0n8jT2WMCSkx4yBwkwSb hle27A0ji2OT3oTyv0/4jJTCIXZ/GXr20w/GG5JvRzNdLA4jBVIfoGe+Ir+kvYvvA5pj 7iJ3GGVPurKHVe44Dip9fJpvb/ozfVE4jThg3Y7CRbHevCRPX8G0E2i8cSuGXwJvdeQP 9kPA== MIME-Version: 1.0 Received: by 10.50.219.170 with SMTP id pp10mr9797648igc.49.1331065772558; Tue, 06 Mar 2012 12:29:32 -0800 (PST) Received: by 10.50.236.67 with HTTP; Tue, 6 Mar 2012 12:29:32 -0800 (PST) In-Reply-To: <201203062122.15426.zec@fer.hr> References: <201203062122.15426.zec@fer.hr> Date: Tue, 6 Mar 2012 21:29:32 +0100 Message-ID: From: Monthadar Al Jaberi To: Marko Zec Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Cc: Adrian Chadd , freebsd-virtualization@freebsd.org Subject: Re: VIMAGE + kldload wlan + kldload wtap panic X-BeenThere: freebsd-virtualization@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion of various virtualization techniques FreeBSD supports." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Mar 2012 20:29:33 -0000 On Tue, Mar 6, 2012 at 9:22 PM, Marko Zec wrote: > On Tuesday 06 March 2012 21:13:00 Monthadar Al Jaberi wrote: >> I am confused so whats the difference between having wlan in kernel >> config or not? Cuase that seems the reason why we panic... linker >> problems? > > Its not impossible. > > Have you tried to do CURVNET_SET(ss->ss_vap->iv_ifp->if_vnet) on entry to > scan_task() as I suggested earlier in this thread? this is the code I added: diff --git a/sys/net80211/ieee80211_scan.c b/sys/net80211/ieee80211_scan.c index 5c1e3d9..bd20653 100644 --- a/sys/net80211/ieee80211_scan.c +++ b/sys/net80211/ieee80211_scan.c @@ -850,6 +850,7 @@ scan_task(void *arg, int pending) int scandone =3D 0; IEEE80211_LOCK(ic); + CURVNET_SET((struct ieee80211_scan_state *) ss->ss_vap->iv_ifp->if_curvnet); if (vap =3D=3D NULL || (ic->ic_flags & IEEE80211_F_SCAN) =3D=3D 0 |= | (SCAN_PRIVATE(ss)->ss_iflags & ISCAN_ABORT)) { /* Cancelled before we started */ @@ -1004,6 +1005,7 @@ scan_task(void *arg, int pending) ss->ss_ops->scan_restart(ss, vap); /* XXX? */ ieee80211_runtask(ic, &SCAN_PRIVATE(ss)->ss_scan_task); IEEE80211_UNLOCK(ic); + CURVNET_RESTORE(); return; } @@ -1043,6 +1045,7 @@ done: SCAN_PRIVATE(ss)->ss_iflags &=3D ~(ISCAN_CANCEL|ISCAN_ABORT); ss->ss_flags &=3D ~(IEEE80211_SCAN_ONCE | IEEE80211_SCAN_PICK1ST); IEEE80211_UNLOCK(ic); + CURVNET_RESTORE(); #undef ISCAN_REP } same panic... > > Cheers, > > Marko > > >> On Tue, Mar 6, 2012 at 9:06 PM, Adrian Chadd wr= ote: >> > Hi, >> > >> > The trouble here is that net80211 has quite a few other contexts that >> > things are called from: >> > >> > * driver taskqueue; >> > * net80211 taskqueue; >> > * driver callouts; >> > * net80211 callouts; >> > * ioctls via net80211. >> > >> > That's in parallel with frame tx/rx and device ioctls. >> > >> > I don't personally have the time to go through net80211 and driver(s) >> > at the moment to figure out what's going on. Since ath(4) does a bunch >> > of frame processing in taskqueue context (and I'm trying to eliminate >> > frame processing in _callout_ context, ew..) things can potentially >> > get a bit hairy. >> > >> > >> > Adrian >> > >> > On 6 March 2012 11:59, Marko Zec wrote: >> >> On Tuesday 06 March 2012 20:49:38 Monthadar Al Jaberi wrote: >> >>> I added VNET_DEBUG and noticed this warning (original scan_task code= ): >> >>> >> >>> CURVNET_SET() recursion in sosend() line 1350, prev in kern_kldload(= ) >> >>> =A0 =A0 0xfffffe0002202c40 -> 0xfffffe0002202c40 >> >>> KDB: stack backtrace: >> >>> db_trace_self_wrapper() at db_trace_self_wrapper+0x2a >> >>> kdb_backtrace() at kdb_backtrace+0x37 >> >>> sosend() at sosend+0xbd >> >>> clnt_vc_call() at clnt_vc_call+0x3e6 >> >>> clnt_reconnect_call() at clnt_reconnect_call+0xf5 >> >>> newnfs_request() at newnfs_request+0x9fb >> >>> nfscl_request() at nfscl_request+0x72 >> >>> nfsrpc_lookup() at nfsrpc_lookup+0x1be >> >>> nfs_lookup() at nfs_lookup+0x297 >> >>> VOP_LOOKUP_APV() at VOP_LOOKUP_APV+0x95 >> >>> lookup() at lookup+0x3b8 >> >>> namei() at namei+0x484 >> >>> vn_open_cred() at vn_open_cred+0x1e2 >> >>> link_elf_load_file() at link_elf_load_file+0xb3 >> >>> linker_load_module() at linker_load_module+0x794 >> >>> kern_kldload() at kern_kldload+0x145 >> >>> sys_kldload() at sys_kldload+0x84 >> >>> amd64_syscall() at amd64_syscall+0x39e >> >>> Xfast_syscall() at Xfast_syscall+0xf7 >> >> >> >> You can safely ignore those. =A0Recursing on curvnet is harmless, but= in >> >> certain cases can't be avoided. >> >> >> >> When injecting new CURVNET_SET() / CURVNET_RESTORE() points in the >> >> existing code, those warnings are here to help us becoming aware that= we >> >> are setting curvnet in a function which was invoked with an already >> >> valid curvnet context. >> >> >> >> Marko > > --=20 Monthadar Al Jaberi From owner-freebsd-virtualization@FreeBSD.ORG Tue Mar 6 20:51:34 2012 Return-Path: Delivered-To: freebsd-virtualization@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 1CD11106566C for ; Tue, 6 Mar 2012 20:51:34 +0000 (UTC) (envelope-from zec@fer.hr) Received: from munja.zvne.fer.hr (munja.zvne.fer.hr [161.53.66.248]) by mx1.freebsd.org (Postfix) with ESMTP id 9EF4E8FC1A for ; Tue, 6 Mar 2012 20:51:32 +0000 (UTC) Received: from sluga.fer.hr ([161.53.66.244]) by munja.zvne.fer.hr with Microsoft SMTPSVC(6.0.3790.4675); Tue, 6 Mar 2012 21:51:32 +0100 Received: from localhost ([161.53.19.8]) by sluga.fer.hr with Microsoft SMTPSVC(6.0.3790.4675); Tue, 6 Mar 2012 21:51:31 +0100 From: Marko Zec To: freebsd-virtualization@freebsd.org Date: Tue, 6 Mar 2012 21:51:10 +0100 User-Agent: KMail/1.9.10 References: <201203062122.15426.zec@fer.hr> In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Message-Id: <201203062151.10569.zec@fer.hr> X-OriginalArrivalTime: 06 Mar 2012 20:51:32.0004 (UTC) FILETIME=[E927BE40:01CCFBDA] Cc: Adrian Chadd Subject: Re: VIMAGE + kldload wlan + kldload wtap panic X-BeenThere: freebsd-virtualization@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion of various virtualization techniques FreeBSD supports." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Mar 2012 20:51:34 -0000 On Tuesday 06 March 2012 21:29:32 Monthadar Al Jaberi wrote: > On Tue, Mar 6, 2012 at 9:22 PM, Marko Zec wrote: > > On Tuesday 06 March 2012 21:13:00 Monthadar Al Jaberi wrote: > >> I am confused so whats the difference between having wlan in kernel > >> config or not? Cuase that seems the reason why we panic... linker > >> problems? > > > > Its not impossible. > > > > Have you tried to do CURVNET_SET(ss->ss_vap->iv_ifp->if_vnet) on entry = to > > scan_task() as I suggested earlier in this thread? > > this is the code I added: > diff --git a/sys/net80211/ieee80211_scan.c b/sys/net80211/ieee80211_scan.c > index 5c1e3d9..bd20653 100644 > --- a/sys/net80211/ieee80211_scan.c > +++ b/sys/net80211/ieee80211_scan.c > @@ -850,6 +850,7 @@ scan_task(void *arg, int pending) > int scandone =3D 0; > > IEEE80211_LOCK(ic); > + CURVNET_SET((struct ieee80211_scan_state *) > ss->ss_vap->iv_ifp->if_curvnet); The explicit cast is redundant here, I only used it earlier to clarify the= =20 type of variable ss... Anyhow, by looking again at the backtrace you posted at the begining of thi= s=20 thread, it's apparent that the code calls into rt_dispatch() and fails at=20 line 1494: #ifdef VIMAGE if (V_loif) m->m_pkthdr.rcvif =3D V_loif; ... because curvnet is not set, or is pointing somewhere where it shouldn't. Can you post the output of show pcpu and show vnets from ddb> prompt when y= ou=20 get the panic? Have you actually booted a freshly built kernel? I pretty sure it's=20 impossible for CURVNET_SET() to succeed with a NULL or an incorrect vnet=20 pointer as an argument when the kernel is buitl with VNET_DEBUG, so I don't= =20 see how it may be possible for a patched scan_task() to call into=20 rt_dispatch() with wrong curvnet. Cheers, Marko > if (vap =3D=3D NULL || (ic->ic_flags & IEEE80211_F_SCAN) =3D=3D 0= || > (SCAN_PRIVATE(ss)->ss_iflags & ISCAN_ABORT)) { > /* Cancelled before we started */ > @@ -1004,6 +1005,7 @@ scan_task(void *arg, int pending) > ss->ss_ops->scan_restart(ss, vap); /* XXX? */ > ieee80211_runtask(ic, &SCAN_PRIVATE(ss)->ss_scan_task); > IEEE80211_UNLOCK(ic); > + CURVNET_RESTORE(); > return; > } > > @@ -1043,6 +1045,7 @@ done: > SCAN_PRIVATE(ss)->ss_iflags &=3D ~(ISCAN_CANCEL|ISCAN_ABORT); > ss->ss_flags &=3D ~(IEEE80211_SCAN_ONCE | IEEE80211_SCAN_PICK1ST); > IEEE80211_UNLOCK(ic); > + CURVNET_RESTORE(); > #undef ISCAN_REP > } > > same panic... > > > Cheers, > > > > Marko > > > >> On Tue, Mar 6, 2012 at 9:06 PM, Adrian Chadd = =20 wrote: > >> > Hi, > >> > > >> > The trouble here is that net80211 has quite a few other contexts that > >> > things are called from: > >> > > >> > * driver taskqueue; > >> > * net80211 taskqueue; > >> > * driver callouts; > >> > * net80211 callouts; > >> > * ioctls via net80211. > >> > > >> > That's in parallel with frame tx/rx and device ioctls. > >> > > >> > I don't personally have the time to go through net80211 and driver(s) > >> > at the moment to figure out what's going on. Since ath(4) does a bun= ch > >> > of frame processing in taskqueue context (and I'm trying to eliminate > >> > frame processing in _callout_ context, ew..) things can potentially > >> > get a bit hairy. > >> > > >> > > >> > Adrian > >> > > >> > On 6 March 2012 11:59, Marko Zec wrote: > >> >> On Tuesday 06 March 2012 20:49:38 Monthadar Al Jaberi wrote: > >> >>> I added VNET_DEBUG and noticed this warning (original scan_task > >> >>> code): > >> >>> > >> >>> CURVNET_SET() recursion in sosend() line 1350, prev in > >> >>> kern_kldload() 0xfffffe0002202c40 -> 0xfffffe0002202c40 > >> >>> KDB: stack backtrace: > >> >>> db_trace_self_wrapper() at db_trace_self_wrapper+0x2a > >> >>> kdb_backtrace() at kdb_backtrace+0x37 > >> >>> sosend() at sosend+0xbd > >> >>> clnt_vc_call() at clnt_vc_call+0x3e6 > >> >>> clnt_reconnect_call() at clnt_reconnect_call+0xf5 > >> >>> newnfs_request() at newnfs_request+0x9fb > >> >>> nfscl_request() at nfscl_request+0x72 > >> >>> nfsrpc_lookup() at nfsrpc_lookup+0x1be > >> >>> nfs_lookup() at nfs_lookup+0x297 > >> >>> VOP_LOOKUP_APV() at VOP_LOOKUP_APV+0x95 > >> >>> lookup() at lookup+0x3b8 > >> >>> namei() at namei+0x484 > >> >>> vn_open_cred() at vn_open_cred+0x1e2 > >> >>> link_elf_load_file() at link_elf_load_file+0xb3 > >> >>> linker_load_module() at linker_load_module+0x794 > >> >>> kern_kldload() at kern_kldload+0x145 > >> >>> sys_kldload() at sys_kldload+0x84 > >> >>> amd64_syscall() at amd64_syscall+0x39e > >> >>> Xfast_syscall() at Xfast_syscall+0xf7 > >> >> > >> >> You can safely ignore those. =A0Recursing on curvnet is harmless, b= ut > >> >> in certain cases can't be avoided. > >> >> > >> >> When injecting new CURVNET_SET() / CURVNET_RESTORE() points in the > >> >> existing code, those warnings are here to help us becoming aware th= at > >> >> we are setting curvnet in a function which was invoked with an > >> >> already valid curvnet context. > >> >> > >> >> Marko From owner-freebsd-virtualization@FreeBSD.ORG Tue Mar 6 20:57:46 2012 Return-Path: Delivered-To: freebsd-virtualization@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 5744A106566C for ; Tue, 6 Mar 2012 20:57:46 +0000 (UTC) (envelope-from zec@fer.hr) Received: from munja.zvne.fer.hr (munja.zvne.fer.hr [161.53.66.248]) by mx1.freebsd.org (Postfix) with ESMTP id DA1A28FC0C for ; Tue, 6 Mar 2012 20:57:45 +0000 (UTC) Received: from sluga.fer.hr ([161.53.66.244]) by munja.zvne.fer.hr with Microsoft SMTPSVC(6.0.3790.4675); Tue, 6 Mar 2012 21:57:43 +0100 Received: from localhost ([161.53.19.8]) by sluga.fer.hr with Microsoft SMTPSVC(6.0.3790.4675); Tue, 6 Mar 2012 21:57:43 +0100 From: Marko Zec To: freebsd-virtualization@freebsd.org Date: Tue, 6 Mar 2012 21:57:22 +0100 User-Agent: KMail/1.9.10 References: <201203062122.15426.zec@fer.hr> In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Message-Id: <201203062157.22390.zec@fer.hr> X-OriginalArrivalTime: 06 Mar 2012 20:57:43.0798 (UTC) FILETIME=[C6C30160:01CCFBDB] Cc: Adrian Chadd Subject: Re: VIMAGE + kldload wlan + kldload wtap panic X-BeenThere: freebsd-virtualization@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion of various virtualization techniques FreeBSD supports." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Mar 2012 20:57:46 -0000 On Tuesday 06 March 2012 21:29:32 Monthadar Al Jaberi wrote: > On Tue, Mar 6, 2012 at 9:22 PM, Marko Zec wrote: > > On Tuesday 06 March 2012 21:13:00 Monthadar Al Jaberi wrote: > >> I am confused so whats the difference between having wlan in kernel > >> config or not? Cuase that seems the reason why we panic... linker > >> problems? > > > > Its not impossible. > > > > Have you tried to do CURVNET_SET(ss->ss_vap->iv_ifp->if_vnet) on entry = to ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > scan_task() as I suggested earlier in this thread? > > this is the code I added: > diff --git a/sys/net80211/ieee80211_scan.c b/sys/net80211/ieee80211_scan.c > index 5c1e3d9..bd20653 100644 > --- a/sys/net80211/ieee80211_scan.c > +++ b/sys/net80211/ieee80211_scan.c > @@ -850,6 +850,7 @@ scan_task(void *arg, int pending) > int scandone =3D 0; > > IEEE80211_LOCK(ic); > + CURVNET_SET((struct ieee80211_scan_state *) > ss->ss_vap->iv_ifp->if_curvnet); ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ You couldn't have ever compiled this, so you must be booting an old kernel.= =20 Pls. make sure you have actually rebuilt and rebooted a new kernel, an let = us=20 know the outcome. Thanks Marko > if (vap =3D=3D NULL || (ic->ic_flags & IEEE80211_F_SCAN) =3D=3D 0= || > (SCAN_PRIVATE(ss)->ss_iflags & ISCAN_ABORT)) { > /* Cancelled before we started */ > @@ -1004,6 +1005,7 @@ scan_task(void *arg, int pending) > ss->ss_ops->scan_restart(ss, vap); /* XXX? */ > ieee80211_runtask(ic, &SCAN_PRIVATE(ss)->ss_scan_task); > IEEE80211_UNLOCK(ic); > + CURVNET_RESTORE(); > return; > } > > @@ -1043,6 +1045,7 @@ done: > SCAN_PRIVATE(ss)->ss_iflags &=3D ~(ISCAN_CANCEL|ISCAN_ABORT); > ss->ss_flags &=3D ~(IEEE80211_SCAN_ONCE | IEEE80211_SCAN_PICK1ST); > IEEE80211_UNLOCK(ic); > + CURVNET_RESTORE(); > #undef ISCAN_REP > } > > same panic... > > > Cheers, > > > > Marko > > > >> On Tue, Mar 6, 2012 at 9:06 PM, Adrian Chadd = =20 wrote: > >> > Hi, > >> > > >> > The trouble here is that net80211 has quite a few other contexts that > >> > things are called from: > >> > > >> > * driver taskqueue; > >> > * net80211 taskqueue; > >> > * driver callouts; > >> > * net80211 callouts; > >> > * ioctls via net80211. > >> > > >> > That's in parallel with frame tx/rx and device ioctls. > >> > > >> > I don't personally have the time to go through net80211 and driver(s) > >> > at the moment to figure out what's going on. Since ath(4) does a bun= ch > >> > of frame processing in taskqueue context (and I'm trying to eliminate > >> > frame processing in _callout_ context, ew..) things can potentially > >> > get a bit hairy. > >> > > >> > > >> > Adrian > >> > > >> > On 6 March 2012 11:59, Marko Zec wrote: > >> >> On Tuesday 06 March 2012 20:49:38 Monthadar Al Jaberi wrote: > >> >>> I added VNET_DEBUG and noticed this warning (original scan_task > >> >>> code): > >> >>> > >> >>> CURVNET_SET() recursion in sosend() line 1350, prev in > >> >>> kern_kldload() 0xfffffe0002202c40 -> 0xfffffe0002202c40 > >> >>> KDB: stack backtrace: > >> >>> db_trace_self_wrapper() at db_trace_self_wrapper+0x2a > >> >>> kdb_backtrace() at kdb_backtrace+0x37 > >> >>> sosend() at sosend+0xbd > >> >>> clnt_vc_call() at clnt_vc_call+0x3e6 > >> >>> clnt_reconnect_call() at clnt_reconnect_call+0xf5 > >> >>> newnfs_request() at newnfs_request+0x9fb > >> >>> nfscl_request() at nfscl_request+0x72 > >> >>> nfsrpc_lookup() at nfsrpc_lookup+0x1be > >> >>> nfs_lookup() at nfs_lookup+0x297 > >> >>> VOP_LOOKUP_APV() at VOP_LOOKUP_APV+0x95 > >> >>> lookup() at lookup+0x3b8 > >> >>> namei() at namei+0x484 > >> >>> vn_open_cred() at vn_open_cred+0x1e2 > >> >>> link_elf_load_file() at link_elf_load_file+0xb3 > >> >>> linker_load_module() at linker_load_module+0x794 > >> >>> kern_kldload() at kern_kldload+0x145 > >> >>> sys_kldload() at sys_kldload+0x84 > >> >>> amd64_syscall() at amd64_syscall+0x39e > >> >>> Xfast_syscall() at Xfast_syscall+0xf7 > >> >> > >> >> You can safely ignore those. =A0Recursing on curvnet is harmless, b= ut > >> >> in certain cases can't be avoided. > >> >> > >> >> When injecting new CURVNET_SET() / CURVNET_RESTORE() points in the > >> >> existing code, those warnings are here to help us becoming aware th= at > >> >> we are setting curvnet in a function which was invoked with an > >> >> already valid curvnet context. > >> >> > >> >> Marko From owner-freebsd-virtualization@FreeBSD.ORG Tue Mar 6 21:30:27 2012 Return-Path: Delivered-To: freebsd-virtualization@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 8FBA31065673 for ; Tue, 6 Mar 2012 21:30:27 +0000 (UTC) (envelope-from monthadar@gmail.com) Received: from mail-iy0-f182.google.com (mail-iy0-f182.google.com [209.85.210.182]) by mx1.freebsd.org (Postfix) with ESMTP id 4982A8FC22 for ; Tue, 6 Mar 2012 21:30:27 +0000 (UTC) Received: by iahk25 with SMTP id k25so10312617iah.13 for ; Tue, 06 Mar 2012 13:30:26 -0800 (PST) Received-SPF: pass (google.com: domain of monthadar@gmail.com designates 10.43.48.65 as permitted sender) client-ip=10.43.48.65; Authentication-Results: mr.google.com; spf=pass (google.com: domain of monthadar@gmail.com designates 10.43.48.65 as permitted sender) smtp.mail=monthadar@gmail.com; dkim=pass header.i=monthadar@gmail.com Received: from mr.google.com ([10.43.48.65]) by 10.43.48.65 with SMTP id uv1mr17215631icb.57.1331069426858 (num_hops = 1); Tue, 06 Mar 2012 13:30:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=zJSWgSffipBXpvb0R131x8aa5p8tKjv/KxC6J9bCtB4=; b=lAXLQYq/HeyKRtus/IdpilwpyPttfpE74lpUBSvXTVY5MAhISp7anBy69yS0Imp7+s I2vWvhGtpi5uEIJJ9JfQKvpMtVmKR+W6wgXur18IytpIozLsO8/azbxkKWQEO8Qsu2bh ySL4aiubW5cYLkq4NQuwyFx2WUiq1naejOQ5T1WEs+IOaHVETOU4MV5UmxNb+U6nBXhY nyiTHhHBCNmiRDXttLbtjyDxAaKHy9kX31UDrW3NOULIlG7OMvJa7S3HEzD3RtmmmFrK lifK94x6EL25deBjwWJ/BdDPWOkOmAB1yhfPVSfgY+InsKUgvyjXa2TFinLm6CgN5eYy Sj8Q== MIME-Version: 1.0 Received: by 10.43.48.65 with SMTP id uv1mr14221998icb.57.1331069426237; Tue, 06 Mar 2012 13:30:26 -0800 (PST) Received: by 10.50.236.67 with HTTP; Tue, 6 Mar 2012 13:30:26 -0800 (PST) In-Reply-To: <201203062157.22390.zec@fer.hr> References: <201203062122.15426.zec@fer.hr> <201203062157.22390.zec@fer.hr> Date: Tue, 6 Mar 2012 22:30:26 +0100 Message-ID: From: Monthadar Al Jaberi To: Marko Zec Content-Type: multipart/mixed; boundary=bcaec529a06152812404ba99c000 X-Content-Filtered-By: Mailman/MimeDel 2.1.5 Cc: Adrian Chadd , freebsd-virtualization@freebsd.org Subject: Re: VIMAGE + kldload wlan + kldload wtap panic X-BeenThere: freebsd-virtualization@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion of various virtualization techniques FreeBSD supports." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Mar 2012 21:30:27 -0000 --bcaec529a06152812404ba99c000 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On Tue, Mar 6, 2012 at 9:57 PM, Marko Zec wrote: > On Tuesday 06 March 2012 21:29:32 Monthadar Al Jaberi wrote: >> On Tue, Mar 6, 2012 at 9:22 PM, Marko Zec wrote: >> > On Tuesday 06 March 2012 21:13:00 Monthadar Al Jaberi wrote: >> >> I am confused so whats the difference between having wlan in kernel >> >> config or not? Cuase that seems the reason why we panic... linker >> >> problems? >> > >> > Its not impossible. >> > >> > Have you tried to do CURVNET_SET(ss->ss_vap->iv_ifp->if_vnet) on entry= to > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 ^^^^^^^^^^^^^^^^^^^^^^^^^= ^^^^^^^^^^^^^^^ >> > scan_task() as I suggested earlier in this thread? >> >> this is the code I added: >> diff --git a/sys/net80211/ieee80211_scan.c b/sys/net80211/ieee80211_scan= .c >> index 5c1e3d9..bd20653 100644 >> --- a/sys/net80211/ieee80211_scan.c >> +++ b/sys/net80211/ieee80211_scan.c >> @@ -850,6 +850,7 @@ scan_task(void *arg, int pending) >> =A0 =A0 =A0 =A0 int scandone =3D 0; >> >> =A0 =A0 =A0 =A0 IEEE80211_LOCK(ic); >> + =A0 =A0 =A0CURVNET_SET((struct ieee80211_scan_state *) >> ss->ss_vap->iv_ifp->if_curvnet); > =A0^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > You couldn't have ever compiled this, so you must be booting an old kerne= l. Whats wrong with this line, I am running new kernel remember I compile wlan afterward and kldload it it seems to compile fine if I type wrong names inside CURVNET_SET hmm... I cant copy/paste db output from VBox butI am attaching two pictures. > > Pls. make sure you have actually rebuilt and rebooted a new kernel, an le= t us > know the outcome. > > Thanks > > Marko > > >> =A0 =A0 =A0 =A0 if (vap =3D=3D NULL || (ic->ic_flags & IEEE80211_F_SCAN)= =3D=3D 0 || >> =A0 =A0 =A0 =A0 =A0 =A0 (SCAN_PRIVATE(ss)->ss_iflags & ISCAN_ABORT)) { >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 /* Cancelled before we started */ >> @@ -1004,6 +1005,7 @@ scan_task(void *arg, int pending) >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 ss->ss_ops->scan_restart(ss, vap); =A0 = =A0 =A0/* XXX? */ >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 ieee80211_runtask(ic, &SCAN_PRIVATE(ss)-= >ss_scan_task); >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 IEEE80211_UNLOCK(ic); >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 CURVNET_RESTORE(); >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 return; >> =A0 =A0 =A0 =A0 } >> >> @@ -1043,6 +1045,7 @@ done: >> =A0 =A0 =A0 =A0 SCAN_PRIVATE(ss)->ss_iflags &=3D ~(ISCAN_CANCEL|ISCAN_AB= ORT); >> =A0 =A0 =A0 =A0 ss->ss_flags &=3D ~(IEEE80211_SCAN_ONCE | IEEE80211_SCAN= _PICK1ST); >> =A0 =A0 =A0 =A0 IEEE80211_UNLOCK(ic); >> + =A0 =A0 =A0 CURVNET_RESTORE(); >> =A0#undef ISCAN_REP >> =A0} >> >> same panic... >> >> > Cheers, >> > >> > Marko >> > >> >> On Tue, Mar 6, 2012 at 9:06 PM, Adrian Chadd > wrote: >> >> > Hi, >> >> > >> >> > The trouble here is that net80211 has quite a few other contexts th= at >> >> > things are called from: >> >> > >> >> > * driver taskqueue; >> >> > * net80211 taskqueue; >> >> > * driver callouts; >> >> > * net80211 callouts; >> >> > * ioctls via net80211. >> >> > >> >> > That's in parallel with frame tx/rx and device ioctls. >> >> > >> >> > I don't personally have the time to go through net80211 and driver(= s) >> >> > at the moment to figure out what's going on. Since ath(4) does a bu= nch >> >> > of frame processing in taskqueue context (and I'm trying to elimina= te >> >> > frame processing in _callout_ context, ew..) things can potentially >> >> > get a bit hairy. >> >> > >> >> > >> >> > Adrian >> >> > >> >> > On 6 March 2012 11:59, Marko Zec wrote: >> >> >> On Tuesday 06 March 2012 20:49:38 Monthadar Al Jaberi wrote: >> >> >>> I added VNET_DEBUG and noticed this warning (original scan_task >> >> >>> code): >> >> >>> >> >> >>> CURVNET_SET() recursion in sosend() line 1350, prev in >> >> >>> kern_kldload() 0xfffffe0002202c40 -> 0xfffffe0002202c40 >> >> >>> KDB: stack backtrace: >> >> >>> db_trace_self_wrapper() at db_trace_self_wrapper+0x2a >> >> >>> kdb_backtrace() at kdb_backtrace+0x37 >> >> >>> sosend() at sosend+0xbd >> >> >>> clnt_vc_call() at clnt_vc_call+0x3e6 >> >> >>> clnt_reconnect_call() at clnt_reconnect_call+0xf5 >> >> >>> newnfs_request() at newnfs_request+0x9fb >> >> >>> nfscl_request() at nfscl_request+0x72 >> >> >>> nfsrpc_lookup() at nfsrpc_lookup+0x1be >> >> >>> nfs_lookup() at nfs_lookup+0x297 >> >> >>> VOP_LOOKUP_APV() at VOP_LOOKUP_APV+0x95 >> >> >>> lookup() at lookup+0x3b8 >> >> >>> namei() at namei+0x484 >> >> >>> vn_open_cred() at vn_open_cred+0x1e2 >> >> >>> link_elf_load_file() at link_elf_load_file+0xb3 >> >> >>> linker_load_module() at linker_load_module+0x794 >> >> >>> kern_kldload() at kern_kldload+0x145 >> >> >>> sys_kldload() at sys_kldload+0x84 >> >> >>> amd64_syscall() at amd64_syscall+0x39e >> >> >>> Xfast_syscall() at Xfast_syscall+0xf7 >> >> >> >> >> >> You can safely ignore those. =A0Recursing on curvnet is harmless, = but >> >> >> in certain cases can't be avoided. >> >> >> >> >> >> When injecting new CURVNET_SET() / CURVNET_RESTORE() points in the >> >> >> existing code, those warnings are here to help us becoming aware t= hat >> >> >> we are setting curvnet in a function which was invoked with an >> >> >> already valid curvnet context. >> >> >> >> >> >> Marko > > --=20 Monthadar Al Jaberi --bcaec529a06152812404ba99c000-- From owner-freebsd-virtualization@FreeBSD.ORG Tue Mar 6 21:46:05 2012 Return-Path: Delivered-To: freebsd-virtualization@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 6B848106566C for ; Tue, 6 Mar 2012 21:46:05 +0000 (UTC) (envelope-from zec@fer.hr) Received: from munja.zvne.fer.hr (munja.zvne.fer.hr [161.53.66.248]) by mx1.freebsd.org (Postfix) with ESMTP id E89198FC1F for ; Tue, 6 Mar 2012 21:46:04 +0000 (UTC) Received: from sluga.fer.hr ([161.53.66.244]) by munja.zvne.fer.hr with Microsoft SMTPSVC(6.0.3790.4675); Tue, 6 Mar 2012 22:46:03 +0100 Received: from localhost ([161.53.19.8]) by sluga.fer.hr with Microsoft SMTPSVC(6.0.3790.4675); Tue, 6 Mar 2012 22:46:03 +0100 From: Marko Zec To: freebsd-virtualization@freebsd.org Date: Tue, 6 Mar 2012 22:45:40 +0100 User-Agent: KMail/1.9.10 References: <201203062157.22390.zec@fer.hr> In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Message-Id: <201203062245.41155.zec@fer.hr> X-OriginalArrivalTime: 06 Mar 2012 21:46:03.0453 (UTC) FILETIME=[87173ED0:01CCFBE2] Cc: Adrian Chadd Subject: Re: VIMAGE + kldload wlan + kldload wtap panic X-BeenThere: freebsd-virtualization@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion of various virtualization techniques FreeBSD supports." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Mar 2012 21:46:05 -0000 On Tuesday 06 March 2012 22:30:26 Monthadar Al Jaberi wrote: > On Tue, Mar 6, 2012 at 9:57 PM, Marko Zec wrote: > > On Tuesday 06 March 2012 21:29:32 Monthadar Al Jaberi wrote: > >> On Tue, Mar 6, 2012 at 9:22 PM, Marko Zec wrote: > >> > On Tuesday 06 March 2012 21:13:00 Monthadar Al Jaberi wrote: > >> >> I am confused so whats the difference between having wlan in kernel > >> >> config or not? Cuase that seems the reason why we panic... linker > >> >> problems? > >> > > >> > Its not impossible. > >> > > >> > Have you tried to do CURVNET_SET(ss->ss_vap->iv_ifp->if_vnet) on ent= ry > >> > to > > > > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 ^^^^^^^^^^^^^^^^^^^^^^^= ^^^^^^^^^^^^^^^^^ > > > >> > scan_task() as I suggested earlier in this thread? > >> > >> this is the code I added: > >> diff --git a/sys/net80211/ieee80211_scan.c > >> b/sys/net80211/ieee80211_scan.c index 5c1e3d9..bd20653 100644 > >> --- a/sys/net80211/ieee80211_scan.c > >> +++ b/sys/net80211/ieee80211_scan.c > >> @@ -850,6 +850,7 @@ scan_task(void *arg, int pending) > >> =A0 =A0 =A0 =A0 int scandone =3D 0; > >> > >> =A0 =A0 =A0 =A0 IEEE80211_LOCK(ic); > >> + =A0 =A0 =A0CURVNET_SET((struct ieee80211_scan_state *) > >> ss->ss_vap->iv_ifp->if_curvnet); > > > > =A0^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > > > You couldn't have ever compiled this, so you must be booting an old > > kernel. > > Whats wrong with this line, I am running new kernel remember I compile > wlan afterward and kldload it struct ifnet doesn't have a field named if_curvnet, but it does contain a=20 field named if_vnet. > it seems to compile fine if I type wrong names inside CURVNET_SET hmm... No it does not compile. Marko > I cant copy/paste db output from VBox butI am attaching two pictures. > > > Pls. make sure you have actually rebuilt and rebooted a new kernel, an > > let us know the outcome. > > > > Thanks > > > > Marko > > > >> =A0 =A0 =A0 =A0 if (vap =3D=3D NULL || (ic->ic_flags & IEEE80211_F_SCA= N) =3D=3D 0 || > >> =A0 =A0 =A0 =A0 =A0 =A0 (SCAN_PRIVATE(ss)->ss_iflags & ISCAN_ABORT)) { > >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 /* Cancelled before we started */ > >> @@ -1004,6 +1005,7 @@ scan_task(void *arg, int pending) > >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 ss->ss_ops->scan_restart(ss, vap); =A0= =A0 =A0/* XXX? */ > >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 ieee80211_runtask(ic, &SCAN_PRIVATE(ss= )->ss_scan_task); > >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 IEEE80211_UNLOCK(ic); > >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 CURVNET_RESTORE(); > >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 return; > >> =A0 =A0 =A0 =A0 } > >> > >> @@ -1043,6 +1045,7 @@ done: > >> =A0 =A0 =A0 =A0 SCAN_PRIVATE(ss)->ss_iflags &=3D ~(ISCAN_CANCEL|ISCAN_= ABORT); > >> =A0 =A0 =A0 =A0 ss->ss_flags &=3D ~(IEEE80211_SCAN_ONCE | IEEE80211_SC= AN_PICK1ST); > >> =A0 =A0 =A0 =A0 IEEE80211_UNLOCK(ic); > >> + =A0 =A0 =A0 CURVNET_RESTORE(); > >> =A0#undef ISCAN_REP > >> =A0} > >> > >> same panic... > >> > >> > Cheers, > >> > > >> > Marko > >> > > >> >> On Tue, Mar 6, 2012 at 9:06 PM, Adrian Chadd > > > > wrote: > >> >> > Hi, > >> >> > > >> >> > The trouble here is that net80211 has quite a few other contexts > >> >> > that things are called from: > >> >> > > >> >> > * driver taskqueue; > >> >> > * net80211 taskqueue; > >> >> > * driver callouts; > >> >> > * net80211 callouts; > >> >> > * ioctls via net80211. > >> >> > > >> >> > That's in parallel with frame tx/rx and device ioctls. > >> >> > > >> >> > I don't personally have the time to go through net80211 and > >> >> > driver(s) at the moment to figure out what's going on. Since ath(= 4) > >> >> > does a bunch of frame processing in taskqueue context (and I'm > >> >> > trying to eliminate frame processing in _callout_ context, ew..) > >> >> > things can potentially get a bit hairy. > >> >> > > >> >> > > >> >> > Adrian > >> >> > > >> >> > On 6 March 2012 11:59, Marko Zec wrote: > >> >> >> On Tuesday 06 March 2012 20:49:38 Monthadar Al Jaberi wrote: > >> >> >>> I added VNET_DEBUG and noticed this warning (original scan_task > >> >> >>> code): > >> >> >>> > >> >> >>> CURVNET_SET() recursion in sosend() line 1350, prev in > >> >> >>> kern_kldload() 0xfffffe0002202c40 -> 0xfffffe0002202c40 > >> >> >>> KDB: stack backtrace: > >> >> >>> db_trace_self_wrapper() at db_trace_self_wrapper+0x2a > >> >> >>> kdb_backtrace() at kdb_backtrace+0x37 > >> >> >>> sosend() at sosend+0xbd > >> >> >>> clnt_vc_call() at clnt_vc_call+0x3e6 > >> >> >>> clnt_reconnect_call() at clnt_reconnect_call+0xf5 > >> >> >>> newnfs_request() at newnfs_request+0x9fb > >> >> >>> nfscl_request() at nfscl_request+0x72 > >> >> >>> nfsrpc_lookup() at nfsrpc_lookup+0x1be > >> >> >>> nfs_lookup() at nfs_lookup+0x297 > >> >> >>> VOP_LOOKUP_APV() at VOP_LOOKUP_APV+0x95 > >> >> >>> lookup() at lookup+0x3b8 > >> >> >>> namei() at namei+0x484 > >> >> >>> vn_open_cred() at vn_open_cred+0x1e2 > >> >> >>> link_elf_load_file() at link_elf_load_file+0xb3 > >> >> >>> linker_load_module() at linker_load_module+0x794 > >> >> >>> kern_kldload() at kern_kldload+0x145 > >> >> >>> sys_kldload() at sys_kldload+0x84 > >> >> >>> amd64_syscall() at amd64_syscall+0x39e > >> >> >>> Xfast_syscall() at Xfast_syscall+0xf7 > >> >> >> > >> >> >> You can safely ignore those. =A0Recursing on curvnet is harmless, > >> >> >> but in certain cases can't be avoided. > >> >> >> > >> >> >> When injecting new CURVNET_SET() / CURVNET_RESTORE() points in t= he > >> >> >> existing code, those warnings are here to help us becoming aware > >> >> >> that we are setting curvnet in a function which was invoked with > >> >> >> an already valid curvnet context. > >> >> >> > >> >> >> Marko From owner-freebsd-virtualization@FreeBSD.ORG Tue Mar 6 21:50:46 2012 Return-Path: Delivered-To: freebsd-virtualization@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 7DD851065670 for ; Tue, 6 Mar 2012 21:50:46 +0000 (UTC) (envelope-from zec@fer.hr) Received: from munja.zvne.fer.hr (munja.zvne.fer.hr [161.53.66.248]) by mx1.freebsd.org (Postfix) with ESMTP id 073AC8FC22 for ; Tue, 6 Mar 2012 21:50:44 +0000 (UTC) Received: from sluga.fer.hr ([161.53.66.244]) by munja.zvne.fer.hr with Microsoft SMTPSVC(6.0.3790.4675); Tue, 6 Mar 2012 22:50:44 +0100 Received: from localhost ([161.53.19.8]) by sluga.fer.hr with Microsoft SMTPSVC(6.0.3790.4675); Tue, 6 Mar 2012 22:50:43 +0100 From: Marko Zec To: freebsd-virtualization@freebsd.org Date: Tue, 6 Mar 2012 22:50:21 +0100 User-Agent: KMail/1.9.10 References: <201203062245.41155.zec@fer.hr> In-Reply-To: <201203062245.41155.zec@fer.hr> MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Disposition: inline Message-Id: <201203062250.21702.zec@fer.hr> X-OriginalArrivalTime: 06 Mar 2012 21:50:43.0920 (UTC) FILETIME=[2E431D00:01CCFBE3] Cc: Adrian Chadd Subject: Re: VIMAGE + kldload wlan + kldload wtap panic X-BeenThere: freebsd-virtualization@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion of various virtualization techniques FreeBSD supports." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Mar 2012 21:50:46 -0000 On Tuesday 06 March 2012 22:45:40 Marko Zec wrote: > On Tuesday 06 March 2012 22:30:26 Monthadar Al Jaberi wrote: > > On Tue, Mar 6, 2012 at 9:57 PM, Marko Zec wrote: > > > On Tuesday 06 March 2012 21:29:32 Monthadar Al Jaberi wrote: > > >> On Tue, Mar 6, 2012 at 9:22 PM, Marko Zec wrote: > > >> > On Tuesday 06 March 2012 21:13:00 Monthadar Al Jaberi wrote: > > >> >> I am confused so whats the difference between having wlan in kern= el > > >> >> config or not? Cuase that seems the reason why we panic... linker > > >> >> problems? > > >> > > > >> > Its not impossible. > > >> > > > >> > Have you tried to do CURVNET_SET(ss->ss_vap->iv_ifp->if_vnet) on > > >> > entry to > > > > > > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 ^^^^^^^^^^^^^^^^^^^^^= ^^^^^^^^^^^^^^^^^^^ > > > > > >> > scan_task() as I suggested earlier in this thread? > > >> > > >> this is the code I added: > > >> diff --git a/sys/net80211/ieee80211_scan.c > > >> b/sys/net80211/ieee80211_scan.c index 5c1e3d9..bd20653 100644 > > >> --- a/sys/net80211/ieee80211_scan.c > > >> +++ b/sys/net80211/ieee80211_scan.c > > >> @@ -850,6 +850,7 @@ scan_task(void *arg, int pending) > > >> =A0 =A0 =A0 =A0 int scandone =3D 0; > > >> > > >> =A0 =A0 =A0 =A0 IEEE80211_LOCK(ic); > > >> + =A0 =A0 =A0CURVNET_SET((struct ieee80211_scan_state *) > > >> ss->ss_vap->iv_ifp->if_curvnet); > > > > > > =A0^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ > > > > > > You couldn't have ever compiled this, so you must be booting an old > > > kernel. > > > > Whats wrong with this line, I am running new kernel remember I compile > > wlan afterward and kldload it > > struct ifnet doesn't have a field named if_curvnet, but it does contain a > field named if_vnet. > > > it seems to compile fine if I type wrong names inside CURVNET_SET hmm... > > No it does not compile. Ohh now I see it where the problem most probably is - you've compiled your= =20 kernel with options VIMAGE, but not your modules!!! Check your config / build environment to make sure BOTH kernel AND modules = are=20 configured and built the same way... Cheers, Marko > > > I cant copy/paste db output from VBox butI am attaching two pictures. > > > > > Pls. make sure you have actually rebuilt and rebooted a new kernel, an > > > let us know the outcome. > > > > > > Thanks > > > > > > Marko > > > > > >> =A0 =A0 =A0 =A0 if (vap =3D=3D NULL || (ic->ic_flags & IEEE80211_F_S= CAN) =3D=3D 0 || > > >> =A0 =A0 =A0 =A0 =A0 =A0 (SCAN_PRIVATE(ss)->ss_iflags & ISCAN_ABORT))= { > > >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 /* Cancelled before we started */ > > >> @@ -1004,6 +1005,7 @@ scan_task(void *arg, int pending) > > >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 ss->ss_ops->scan_restart(ss, vap); = =A0 =A0 =A0/* XXX? */ > > >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 ieee80211_runtask(ic, > > >> &SCAN_PRIVATE(ss)->ss_scan_task); IEEE80211_UNLOCK(ic); > > >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 CURVNET_RESTORE(); > > >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 return; > > >> =A0 =A0 =A0 =A0 } > > >> > > >> @@ -1043,6 +1045,7 @@ done: > > >> =A0 =A0 =A0 =A0 SCAN_PRIVATE(ss)->ss_iflags &=3D ~(ISCAN_CANCEL|ISCA= N_ABORT); > > >> =A0 =A0 =A0 =A0 ss->ss_flags &=3D ~(IEEE80211_SCAN_ONCE | > > >> IEEE80211_SCAN_PICK1ST); IEEE80211_UNLOCK(ic); > > >> + =A0 =A0 =A0 CURVNET_RESTORE(); > > >> =A0#undef ISCAN_REP > > >> =A0} > > >> > > >> same panic... > > >> > > >> > Cheers, > > >> > > > >> > Marko > > >> > > > >> >> On Tue, Mar 6, 2012 at 9:06 PM, Adrian Chadd > > >> >> > > > > > > wrote: > > >> >> > Hi, > > >> >> > > > >> >> > The trouble here is that net80211 has quite a few other contexts > > >> >> > that things are called from: > > >> >> > > > >> >> > * driver taskqueue; > > >> >> > * net80211 taskqueue; > > >> >> > * driver callouts; > > >> >> > * net80211 callouts; > > >> >> > * ioctls via net80211. > > >> >> > > > >> >> > That's in parallel with frame tx/rx and device ioctls. > > >> >> > > > >> >> > I don't personally have the time to go through net80211 and > > >> >> > driver(s) at the moment to figure out what's going on. Since > > >> >> > ath(4) does a bunch of frame processing in taskqueue context (a= nd > > >> >> > I'm trying to eliminate frame processing in _callout_ context, > > >> >> > ew..) things can potentially get a bit hairy. > > >> >> > > > >> >> > > > >> >> > Adrian > > >> >> > > > >> >> > On 6 March 2012 11:59, Marko Zec wrote: > > >> >> >> On Tuesday 06 March 2012 20:49:38 Monthadar Al Jaberi wrote: > > >> >> >>> I added VNET_DEBUG and noticed this warning (original scan_ta= sk > > >> >> >>> code): > > >> >> >>> > > >> >> >>> CURVNET_SET() recursion in sosend() line 1350, prev in > > >> >> >>> kern_kldload() 0xfffffe0002202c40 -> 0xfffffe0002202c40 > > >> >> >>> KDB: stack backtrace: > > >> >> >>> db_trace_self_wrapper() at db_trace_self_wrapper+0x2a > > >> >> >>> kdb_backtrace() at kdb_backtrace+0x37 > > >> >> >>> sosend() at sosend+0xbd > > >> >> >>> clnt_vc_call() at clnt_vc_call+0x3e6 > > >> >> >>> clnt_reconnect_call() at clnt_reconnect_call+0xf5 > > >> >> >>> newnfs_request() at newnfs_request+0x9fb > > >> >> >>> nfscl_request() at nfscl_request+0x72 > > >> >> >>> nfsrpc_lookup() at nfsrpc_lookup+0x1be > > >> >> >>> nfs_lookup() at nfs_lookup+0x297 > > >> >> >>> VOP_LOOKUP_APV() at VOP_LOOKUP_APV+0x95 > > >> >> >>> lookup() at lookup+0x3b8 > > >> >> >>> namei() at namei+0x484 > > >> >> >>> vn_open_cred() at vn_open_cred+0x1e2 > > >> >> >>> link_elf_load_file() at link_elf_load_file+0xb3 > > >> >> >>> linker_load_module() at linker_load_module+0x794 > > >> >> >>> kern_kldload() at kern_kldload+0x145 > > >> >> >>> sys_kldload() at sys_kldload+0x84 > > >> >> >>> amd64_syscall() at amd64_syscall+0x39e > > >> >> >>> Xfast_syscall() at Xfast_syscall+0xf7 > > >> >> >> > > >> >> >> You can safely ignore those. =A0Recursing on curvnet is harmle= ss, > > >> >> >> but in certain cases can't be avoided. > > >> >> >> > > >> >> >> When injecting new CURVNET_SET() / CURVNET_RESTORE() points in > > >> >> >> the existing code, those warnings are here to help us becoming > > >> >> >> aware that we are setting curvnet in a function which was > > >> >> >> invoked with an already valid curvnet context. > > >> >> >> > > >> >> >> Marko From owner-freebsd-virtualization@FreeBSD.ORG Tue Mar 6 21:52:03 2012 Return-Path: Delivered-To: freebsd-virtualization@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id A9CFF1065673 for ; Tue, 6 Mar 2012 21:52:03 +0000 (UTC) (envelope-from zec@fer.hr) Received: from munja.zvne.fer.hr (munja.zvne.fer.hr [161.53.66.248]) by mx1.freebsd.org (Postfix) with ESMTP id 32A7A8FC0C for ; Tue, 6 Mar 2012 21:52:02 +0000 (UTC) Received: from sluga.fer.hr ([161.53.66.244]) by munja.zvne.fer.hr with Microsoft SMTPSVC(6.0.3790.4675); Tue, 6 Mar 2012 22:52:02 +0100 Received: from localhost ([161.53.19.8]) by sluga.fer.hr with Microsoft SMTPSVC(6.0.3790.4675); Tue, 6 Mar 2012 22:52:01 +0100 From: Marko Zec To: Adrian Chadd Date: Tue, 6 Mar 2012 22:51:39 +0100 User-Agent: KMail/1.9.10 References: <201203062245.41155.zec@fer.hr> In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <201203062251.39786.zec@fer.hr> X-OriginalArrivalTime: 06 Mar 2012 21:52:01.0935 (UTC) FILETIME=[5CC341F0:01CCFBE3] Cc: freebsd-virtualization@freebsd.org Subject: Re: VIMAGE + kldload wlan + kldload wtap panic X-BeenThere: freebsd-virtualization@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion of various virtualization techniques FreeBSD supports." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Mar 2012 21:52:03 -0000 On Tuesday 06 March 2012 22:49:56 Adrian Chadd wrote: > Wait a sec. Is it possible that the macro is a no-op when we're > building modules w/ VNET? Yes that's it, the VNET stuff resolves (mostly) to whitespace when options VIMAGE is not on! Marko From owner-freebsd-virtualization@FreeBSD.ORG Tue Mar 6 21:53:26 2012 Return-Path: Delivered-To: freebsd-virtualization@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 9677D106564A for ; Tue, 6 Mar 2012 21:53:26 +0000 (UTC) (envelope-from monthadar@gmail.com) Received: from mail-iy0-f182.google.com (mail-iy0-f182.google.com [209.85.210.182]) by mx1.freebsd.org (Postfix) with ESMTP id 547688FC17 for ; Tue, 6 Mar 2012 21:53:26 +0000 (UTC) Received: by iahk25 with SMTP id k25so10342305iah.13 for ; Tue, 06 Mar 2012 13:53:25 -0800 (PST) Received-SPF: pass (google.com: domain of monthadar@gmail.com designates 10.50.158.131 as permitted sender) client-ip=10.50.158.131; Authentication-Results: mr.google.com; spf=pass (google.com: domain of monthadar@gmail.com designates 10.50.158.131 as permitted sender) smtp.mail=monthadar@gmail.com; dkim=pass header.i=monthadar@gmail.com Received: from mr.google.com ([10.50.158.131]) by 10.50.158.131 with SMTP id wu3mr11984913igb.49.1331070805874 (num_hops = 1); Tue, 06 Mar 2012 13:53:25 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=5B6LxG5YkrCa3KhW4OgdwknUCtpcbzw/6B1CtVG9tAM=; b=Y52IVGkSuD17ApB9CWPqRRH4PZpiUwIdPdo1+bqZjgKrL2XKw9QLrnIkJTx8SAouBa T988DYXGvo8Q3UGLPA1sScZ/RymKADZiOiwk1K1YNs8DYzcZpTtd58SgC9FlSfrA7Cxb eR3EmaO7ffgoL/5l926DtcpNgCmp9K0FB9VxA6120nv6GnQGpqKy6B4jrCajx2WiKaCA ndkL/+KiN+zdJzzDfh0OGu6aOuaEsN7DKEevqPNvm+FM2x4kTNJlDbdXH/4TyZf3Tvr2 Y+dWWTtWRVd1P4JKAlOZk56Ixfp5xzgmbWopr6PWQ/TFfIgZjITjOU9VJifCrhZgSAQa q22g== MIME-Version: 1.0 Received: by 10.50.158.131 with SMTP id wu3mr9994098igb.49.1331070805786; Tue, 06 Mar 2012 13:53:25 -0800 (PST) Received: by 10.50.236.67 with HTTP; Tue, 6 Mar 2012 13:53:25 -0800 (PST) In-Reply-To: References: <201203062245.41155.zec@fer.hr> <201203062251.39786.zec@fer.hr> Date: Tue, 6 Mar 2012 22:53:25 +0100 Message-ID: From: Monthadar Al Jaberi To: Adrian Chadd Content-Type: text/plain; charset=ISO-8859-1 Cc: Marko Zec , freebsd-virtualization@freebsd.org Subject: Re: VIMAGE + kldload wlan + kldload wtap panic X-BeenThere: freebsd-virtualization@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion of various virtualization techniques FreeBSD supports." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Mar 2012 21:53:26 -0000 something like .if defined(KERNBUILDDIR) MKDEP= -include ${KERNBUILDDIR}/opt_global.h .else CFLAGS+= -include opt_global.h MKDEP= -include opt_global.h opt_global.h: echo "#define VIMAGE 1" > ${.TARGET} .endif ? On Tue, Mar 6, 2012 at 10:52 PM, Adrian Chadd wrote: > On 6 March 2012 13:51, Marko Zec wrote: >> On Tuesday 06 March 2012 22:49:56 Adrian Chadd wrote: >>> Wait a sec. Is it possible that the macro is a no-op when we're >>> building modules w/ VNET? >> >> Yes that's it, the VNET stuff resolves (mostly) to whitespace when options >> VIMAGE is not on! > > So the question is - how the heck are the modules supposed to pull in > the VNET config? > > is there a missing opt_.h somewhere? > > > Adrian -- Monthadar Al Jaberi From owner-freebsd-virtualization@FreeBSD.ORG Tue Mar 6 21:56:05 2012 Return-Path: Delivered-To: freebsd-virtualization@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id B16E2106566B for ; Tue, 6 Mar 2012 21:56:05 +0000 (UTC) (envelope-from zec@fer.hr) Received: from munja.zvne.fer.hr (munja.zvne.fer.hr [161.53.66.248]) by mx1.freebsd.org (Postfix) with ESMTP id 3E8928FC08 for ; Tue, 6 Mar 2012 21:56:04 +0000 (UTC) Received: from sluga.fer.hr ([161.53.66.244]) by munja.zvne.fer.hr with Microsoft SMTPSVC(6.0.3790.4675); Tue, 6 Mar 2012 22:56:03 +0100 Received: from localhost ([161.53.19.8]) by sluga.fer.hr with Microsoft SMTPSVC(6.0.3790.4675); Tue, 6 Mar 2012 22:56:03 +0100 From: Marko Zec To: Adrian Chadd Date: Tue, 6 Mar 2012 22:55:41 +0100 User-Agent: KMail/1.9.10 References: <201203062251.39786.zec@fer.hr> In-Reply-To: MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit Content-Disposition: inline Message-Id: <201203062255.41480.zec@fer.hr> X-OriginalArrivalTime: 06 Mar 2012 21:56:03.0785 (UTC) FILETIME=[ECEAA390:01CCFBE3] Cc: freebsd-virtualization@freebsd.org Subject: Re: VIMAGE + kldload wlan + kldload wtap panic X-BeenThere: freebsd-virtualization@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion of various virtualization techniques FreeBSD supports." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Mar 2012 21:56:05 -0000 On Tuesday 06 March 2012 22:52:43 Adrian Chadd wrote: > On 6 March 2012 13:51, Marko Zec wrote: > > On Tuesday 06 March 2012 22:49:56 Adrian Chadd wrote: > >> Wait a sec. Is it possible that the macro is a no-op when we're > >> building modules w/ VNET? > > > > Yes that's it, the VNET stuff resolves (mostly) to whitespace when > > options VIMAGE is not on! > > So the question is - how the heck are the modules supposed to pull in > the VNET config? > > is there a missing opt_.h somewhere? > No, you don't need any extra explicit #includes, but you should see this in opt_global.h if you've really configured the kernel with options VIMAGE: #define VIMAGE 1 Marko From owner-freebsd-virtualization@FreeBSD.ORG Tue Mar 6 20:06:42 2012 Return-Path: Delivered-To: freebsd-virtualization@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 005B0106566C for ; Tue, 6 Mar 2012 20:06:41 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-we0-f182.google.com (mail-we0-f182.google.com [74.125.82.182]) by mx1.freebsd.org (Postfix) with ESMTP id 89E8F8FC15 for ; Tue, 6 Mar 2012 20:06:41 +0000 (UTC) Received: by werl4 with SMTP id l4so4384584wer.13 for ; Tue, 06 Mar 2012 12:06:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=aq8a/gyT5PrEFhaI9RhNAfYmy0lMjCysjZuH84NERTI=; b=Hta4DU0qBwTr+4HognDeK2M5C86zVWLNI8y3D+0o5u5GQKnZNJ0Hwh+CvHxn7XtSgE ghkMofmqt+luR604XQ470W+j9+HUE47w5hrObtGUoaIMAnFXcI+UeLdhMud84MLwRXBo HtSCvaRqHqcE8xFFgWBc763+u6qqUtF5IqLjGtO3qnrTAU2GgBo9ZJB2i3+NDU++n7zH tzd4zAyntRAOJeCP67R3LG+xHrk6TDQSRwwtSxkBoRbnH6pm+4MuHCvIn4uh6YIwVAZp x9vhitMX1vxFN7yuuc1LVtzUJ+x8GFDet5RW7R6WbN2dng8YnX2boYfXX9BB6++9dgZT REKw== MIME-Version: 1.0 Received: by 10.180.78.6 with SMTP id x6mr21092598wiw.18.1331064400529; Tue, 06 Mar 2012 12:06:40 -0800 (PST) Received: by 10.216.198.81 with HTTP; Tue, 6 Mar 2012 12:06:40 -0800 (PST) In-Reply-To: <201203062059.31736.zec@fer.hr> References: <201203062059.31736.zec@fer.hr> Date: Tue, 6 Mar 2012 12:06:40 -0800 Message-ID: From: Adrian Chadd To: Marko Zec Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Mailman-Approved-At: Tue, 06 Mar 2012 23:09:55 +0000 Cc: freebsd-virtualization@freebsd.org Subject: Re: VIMAGE + kldload wlan + kldload wtap panic X-BeenThere: freebsd-virtualization@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion of various virtualization techniques FreeBSD supports." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Mar 2012 20:06:42 -0000 Hi, The trouble here is that net80211 has quite a few other contexts that things are called from: * driver taskqueue; * net80211 taskqueue; * driver callouts; * net80211 callouts; * ioctls via net80211. That's in parallel with frame tx/rx and device ioctls. I don't personally have the time to go through net80211 and driver(s) at the moment to figure out what's going on. Since ath(4) does a bunch of frame processing in taskqueue context (and I'm trying to eliminate frame processing in _callout_ context, ew..) things can potentially get a bit hairy. Adrian On 6 March 2012 11:59, Marko Zec wrote: > On Tuesday 06 March 2012 20:49:38 Monthadar Al Jaberi wrote: >> I added VNET_DEBUG and noticed this warning (original scan_task code): >> >> CURVNET_SET() recursion in sosend() line 1350, prev in kern_kldload() >> =A0 =A0 0xfffffe0002202c40 -> 0xfffffe0002202c40 >> KDB: stack backtrace: >> db_trace_self_wrapper() at db_trace_self_wrapper+0x2a >> kdb_backtrace() at kdb_backtrace+0x37 >> sosend() at sosend+0xbd >> clnt_vc_call() at clnt_vc_call+0x3e6 >> clnt_reconnect_call() at clnt_reconnect_call+0xf5 >> newnfs_request() at newnfs_request+0x9fb >> nfscl_request() at nfscl_request+0x72 >> nfsrpc_lookup() at nfsrpc_lookup+0x1be >> nfs_lookup() at nfs_lookup+0x297 >> VOP_LOOKUP_APV() at VOP_LOOKUP_APV+0x95 >> lookup() at lookup+0x3b8 >> namei() at namei+0x484 >> vn_open_cred() at vn_open_cred+0x1e2 >> link_elf_load_file() at link_elf_load_file+0xb3 >> linker_load_module() at linker_load_module+0x794 >> kern_kldload() at kern_kldload+0x145 >> sys_kldload() at sys_kldload+0x84 >> amd64_syscall() at amd64_syscall+0x39e >> Xfast_syscall() at Xfast_syscall+0xf7 > > You can safely ignore those. =A0Recursing on curvnet is harmless, but in = certain > cases can't be avoided. > > When injecting new CURVNET_SET() / CURVNET_RESTORE() points in the existi= ng > code, those warnings are here to help us becoming aware that we are setti= ng > curvnet in a function which was invoked with an already valid curvnet > context. > > Marko From owner-freebsd-virtualization@FreeBSD.ORG Tue Mar 6 20:16:35 2012 Return-Path: Delivered-To: freebsd-virtualization@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 8007F1065675 for ; Tue, 6 Mar 2012 20:16:35 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-we0-f182.google.com (mail-we0-f182.google.com [74.125.82.182]) by mx1.freebsd.org (Postfix) with ESMTP id 00F3A8FC13 for ; Tue, 6 Mar 2012 20:16:34 +0000 (UTC) Received: by werl4 with SMTP id l4so4391676wer.13 for ; Tue, 06 Mar 2012 12:16:33 -0800 (PST) Received-SPF: pass (google.com: domain of adrian.chadd@gmail.com designates 10.216.131.2 as permitted sender) client-ip=10.216.131.2; Authentication-Results: mr.google.com; spf=pass (google.com: domain of adrian.chadd@gmail.com designates 10.216.131.2 as permitted sender) smtp.mail=adrian.chadd@gmail.com; dkim=pass header.i=adrian.chadd@gmail.com Received: from mr.google.com ([10.216.131.2]) by 10.216.131.2 with SMTP id l2mr7111127wei.3.1331064993901 (num_hops = 1); Tue, 06 Mar 2012 12:16:33 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=C4ffdHrms+1xBkoDwrhP5iZs09AgBa69YtLKNCbZZxQ=; b=YQrPKluiVWIb64tkMiqjMcVZbGPAryWVOhfPlKqggUYYzH+oIBVzH7IpWKfn7riQ1a hdD+tIFV4P0GE/34f9sY7i64VsApyZHoRf898e1/JCRJwfpAY7is1VymJCSLRcBNGBN6 7Laf0X1Q9FkR0HPxWfr/G8IJ+0h+7a9xWPsxNMDa+Ko5HAMJkQ9EtKgw7VnH2tyY1kgM A49o9Gd+y0g4yZGMbLsf3MmSCoqsrU8h0hZEDkwtZJ/AY4Rf72kfH/bOj5AUkMQSUvIu O2WhGYZtpOUx3t0VZ/u7/CNnkf1mPRY22ZkGbAs0z1DgVi6vIjVBIPj/Eq77g+p5gIlq 0WoQ== MIME-Version: 1.0 Received: by 10.216.131.2 with SMTP id l2mr5667804wei.3.1331064993842; Tue, 06 Mar 2012 12:16:33 -0800 (PST) Received: by 10.216.198.81 with HTTP; Tue, 6 Mar 2012 12:16:33 -0800 (PST) In-Reply-To: References: <201203062059.31736.zec@fer.hr> Date: Tue, 6 Mar 2012 12:16:33 -0800 Message-ID: From: Adrian Chadd To: Monthadar Al Jaberi Content-Type: text/plain; charset=ISO-8859-1 X-Mailman-Approved-At: Tue, 06 Mar 2012 23:09:55 +0000 Cc: Marko Zec , freebsd-virtualization@freebsd.org Subject: Re: VIMAGE + kldload wlan + kldload wtap panic X-BeenThere: freebsd-virtualization@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion of various virtualization techniques FreeBSD supports." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Mar 2012 20:16:35 -0000 On 6 March 2012 12:13, Monthadar Al Jaberi wrote: > I am confused so whats the difference between having wlan in kernel > config or not? Cuase that seems the reason why we panic... linker > problems? Yeah. That _is_ a bit weird. adrian From owner-freebsd-virtualization@FreeBSD.ORG Tue Mar 6 21:49:57 2012 Return-Path: Delivered-To: freebsd-virtualization@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 9EA851065670 for ; Tue, 6 Mar 2012 21:49:57 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-ww0-f50.google.com (mail-ww0-f50.google.com [74.125.82.50]) by mx1.freebsd.org (Postfix) with ESMTP id 354AD8FC0C for ; Tue, 6 Mar 2012 21:49:56 +0000 (UTC) Received: by wgbds12 with SMTP id ds12so4806342wgb.31 for ; Tue, 06 Mar 2012 13:49:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=gMI5RrBtsmgCCpkpYA0kAIWm1oDYMQt41WDAhRZD24A=; b=Kp4dkvqE+Tqb8W2v5xr4/EeI/yEzXghTBNfZ91Ua4MY/f/wkgW6d89JhPlVEmWbMl0 oDBN8+/mfNklbq02+dZjp8fXMW5zxqn2ApGe+Bw6zdMTvAf6U0bTURjSUIw/uDIkXBWc Kq6atWFQpFWMsFbCiBkwv74sSWvQVwrDJOaAoWiwG/c2oJW7ziBP+TR9fsiqScNX+YXw H1D8jL9GV54jUEEMxxhxu+vO55j+hSoy6bimf0Yqaeb3nAlTmRBrJy6tQPDbTuqbf3YA Qe0TZDF58kSAU7VI0r+IPRzrhvcZXFjPMVdNDnWykvZ4K5QnXf6sj0o6pKczgPL2zM5K do6Q== MIME-Version: 1.0 Received: by 10.180.78.6 with SMTP id x6mr21572814wiw.18.1331070596206; Tue, 06 Mar 2012 13:49:56 -0800 (PST) Received: by 10.216.198.81 with HTTP; Tue, 6 Mar 2012 13:49:56 -0800 (PST) In-Reply-To: <201203062245.41155.zec@fer.hr> References: <201203062157.22390.zec@fer.hr> <201203062245.41155.zec@fer.hr> Date: Tue, 6 Mar 2012 13:49:56 -0800 Message-ID: From: Adrian Chadd To: Marko Zec Content-Type: text/plain; charset=ISO-8859-1 X-Mailman-Approved-At: Tue, 06 Mar 2012 23:09:55 +0000 Cc: freebsd-virtualization@freebsd.org Subject: Re: VIMAGE + kldload wlan + kldload wtap panic X-BeenThere: freebsd-virtualization@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion of various virtualization techniques FreeBSD supports." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Mar 2012 21:49:57 -0000 Wait a sec. Is it possible that the macro is a no-op when we're building modules w/ VNET? Adrian From owner-freebsd-virtualization@FreeBSD.ORG Tue Mar 6 21:52:44 2012 Return-Path: Delivered-To: freebsd-virtualization@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 8834F1065670 for ; Tue, 6 Mar 2012 21:52:44 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-wi0-f182.google.com (mail-wi0-f182.google.com [209.85.212.182]) by mx1.freebsd.org (Postfix) with ESMTP id 1D5E18FC13 for ; Tue, 6 Mar 2012 21:52:43 +0000 (UTC) Received: by wibhn6 with SMTP id hn6so3900954wib.13 for ; Tue, 06 Mar 2012 13:52:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=CEgWfmvLnmTW0NJKiDgqB3vilGqMrXytzTwgbhC0eQQ=; b=EvKMO/p5wiUAwvlNsEfUUAXqRkI6WwNVfdLABnpnxP0uM27s9E+UnW0coJtBU5dxie c//bVBsXDCUoyqEA53EqqJFjQ8atGxyTIAbvmEFV4z1o2wbYMxcMn6B2Zcgeszt0vhxw GRI6qz370sXJLVjfwvmZ+yhCcNjNELNW48pU/WJREhAcEkfjpbBSfLoPhw97VwqHqJIC u0y4BzlnIBy9Y/XKzTlhasl+RHtL3koG07xOM/cGjxtEcJTKqw1tLviwzKVEC47WXqCj xiyOS1anL+qrRDWfCkoZxFtWKjsjl1lUOdhJyjNDdoL/qNO6qT6Ts0PmkQyxFTbrJ5Dg cc0Q== MIME-Version: 1.0 Received: by 10.180.78.6 with SMTP id x6mr21584806wiw.18.1331070763123; Tue, 06 Mar 2012 13:52:43 -0800 (PST) Received: by 10.216.198.81 with HTTP; Tue, 6 Mar 2012 13:52:43 -0800 (PST) In-Reply-To: <201203062251.39786.zec@fer.hr> References: <201203062245.41155.zec@fer.hr> <201203062251.39786.zec@fer.hr> Date: Tue, 6 Mar 2012 13:52:43 -0800 Message-ID: From: Adrian Chadd To: Marko Zec Content-Type: text/plain; charset=ISO-8859-1 X-Mailman-Approved-At: Tue, 06 Mar 2012 23:09:55 +0000 Cc: freebsd-virtualization@freebsd.org Subject: Re: VIMAGE + kldload wlan + kldload wtap panic X-BeenThere: freebsd-virtualization@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion of various virtualization techniques FreeBSD supports." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Mar 2012 21:52:44 -0000 On 6 March 2012 13:51, Marko Zec wrote: > On Tuesday 06 March 2012 22:49:56 Adrian Chadd wrote: >> Wait a sec. Is it possible that the macro is a no-op when we're >> building modules w/ VNET? > > Yes that's it, the VNET stuff resolves (mostly) to whitespace when options > VIMAGE is not on! So the question is - how the heck are the modules supposed to pull in the VNET config? is there a missing opt_.h somewhere? Adrian From owner-freebsd-virtualization@FreeBSD.ORG Tue Mar 6 21:54:46 2012 Return-Path: Delivered-To: freebsd-virtualization@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id B320E1065672 for ; Tue, 6 Mar 2012 21:54:46 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-wi0-f182.google.com (mail-wi0-f182.google.com [209.85.212.182]) by mx1.freebsd.org (Postfix) with ESMTP id 3CDAB8FC08 for ; Tue, 6 Mar 2012 21:54:45 +0000 (UTC) Received: by wibhn6 with SMTP id hn6so3902234wib.13 for ; Tue, 06 Mar 2012 13:54:45 -0800 (PST) Received-SPF: pass (google.com: domain of adrian.chadd@gmail.com designates 10.180.95.1 as permitted sender) client-ip=10.180.95.1; Authentication-Results: mr.google.com; spf=pass (google.com: domain of adrian.chadd@gmail.com designates 10.180.95.1 as permitted sender) smtp.mail=adrian.chadd@gmail.com; dkim=pass header.i=adrian.chadd@gmail.com Received: from mr.google.com ([10.180.95.1]) by 10.180.95.1 with SMTP id dg1mr27406292wib.21.1331070885352 (num_hops = 1); Tue, 06 Mar 2012 13:54:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type:content-transfer-encoding; bh=NNQAjIlItlL3UqigcNPnIhL7iJFUfBAMF7m/Ucd/E3Q=; b=ApiGmR53RMznHBInRPSZ0hb5QwxXpIgQ3rYvtbEox9JiRX5tsBOvk668yaKCLngyK5 II7deO5F9X1urJbxCms+M8qLr1E4mwS0B3zkel8TajiXX0yVcdxTLzp8hIRGO8KJYq20 mgwW96/w3j+ECJFXyWqpzsCo+MdTnYyyIDUtQ9THTERHBjq0EaJFm9VamC9Ifqbe0QW+ uJkLfdSVATBKDTm6sjEH6OqQk3IfJnK9u8g2vmKJGr6H86cxP7xPeAfCSnYc9Y4mE2H1 ShyKYgvvAgVdSsgm2Hq0DGFqWpsO7kWAhgGNtAgUQc6JdBGLO95Ipc2G6A0KqvI42sDL PUJA== MIME-Version: 1.0 Received: by 10.180.95.1 with SMTP id dg1mr21703523wib.21.1331070885105; Tue, 06 Mar 2012 13:54:45 -0800 (PST) Received: by 10.216.198.81 with HTTP; Tue, 6 Mar 2012 13:54:44 -0800 (PST) In-Reply-To: References: <201203062245.41155.zec@fer.hr> <201203062251.39786.zec@fer.hr> Date: Tue, 6 Mar 2012 13:54:44 -0800 Message-ID: From: Adrian Chadd To: Monthadar Al Jaberi Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Mailman-Approved-At: Tue, 06 Mar 2012 23:09:55 +0000 Cc: Marko Zec , freebsd-virtualization@freebsd.org Subject: Re: VIMAGE + kldload wlan + kldload wtap panic X-BeenThere: freebsd-virtualization@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion of various virtualization techniques FreeBSD supports." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Mar 2012 21:54:46 -0000 No, VIMAGE should be pulled in from an existing configuration in your compile/{KERNEL}/opt_global.h, right? So why's the driver not pulling it in? adrian On 6 March 2012 13:53, Monthadar Al Jaberi wrote: > something like > .if defined(KERNBUILDDIR) > MKDEP=3D =A0 =A0 =A0 =A0 =A0-include ${KERNBUILDDIR}/opt_global.h > .else > CFLAGS+=3D =A0 =A0 =A0 =A0-include opt_global.h > MKDEP=3D =A0 =A0 =A0 =A0 =A0-include opt_global.h > > opt_global.h: > =A0 =A0 =A0 =A0echo "#define VIMAGE 1" > ${.TARGET} > .endif > > ? > > On Tue, Mar 6, 2012 at 10:52 PM, Adrian Chadd wr= ote: >> On 6 March 2012 13:51, Marko Zec wrote: >>> On Tuesday 06 March 2012 22:49:56 Adrian Chadd wrote: >>>> Wait a sec. Is it possible that the macro is a no-op when we're >>>> building modules w/ VNET? >>> >>> Yes that's it, the VNET stuff resolves (mostly) to whitespace when opti= ons >>> VIMAGE is not on! >> >> So the question is - how the heck are the modules supposed to pull in >> the VNET config? >> >> is there a missing opt_.h somewhere? >> >> >> Adrian > > > > -- > Monthadar Al Jaberi From owner-freebsd-virtualization@FreeBSD.ORG Tue Mar 6 21:58:10 2012 Return-Path: Delivered-To: freebsd-virtualization@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 0C182106564A for ; Tue, 6 Mar 2012 21:58:10 +0000 (UTC) (envelope-from adrian.chadd@gmail.com) Received: from mail-ww0-f50.google.com (mail-ww0-f50.google.com [74.125.82.50]) by mx1.freebsd.org (Postfix) with ESMTP id 8BB278FC14 for ; Tue, 6 Mar 2012 21:58:09 +0000 (UTC) Received: by wgbds12 with SMTP id ds12so4811816wgb.31 for ; Tue, 06 Mar 2012 13:58:08 -0800 (PST) Received-SPF: pass (google.com: domain of adrian.chadd@gmail.com designates 10.216.138.135 as permitted sender) client-ip=10.216.138.135; Authentication-Results: mr.google.com; spf=pass (google.com: domain of adrian.chadd@gmail.com designates 10.216.138.135 as permitted sender) smtp.mail=adrian.chadd@gmail.com; dkim=pass header.i=adrian.chadd@gmail.com Received: from mr.google.com ([10.216.138.135]) by 10.216.138.135 with SMTP id a7mr4823675wej.19.1331071088658 (num_hops = 1); Tue, 06 Mar 2012 13:58:08 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=SZkRqo2ZN2ZvsolkkcBtemcivulFrzUytSNt2tDnVqw=; b=Lwq/wHSFgmRSph0W+4LsiDu5eOzDZuSgxo5ofa47+K9uMv98cHIhGxoFILwR7cPMWh fs5UD/F3/9u364OIVRmilvmcETxq/skrCZb6nnEKm4sOV4L/LE3HGED924wQ6oAHMOTI dHTlbWn26xR+D63N/Mm0jTZHq0xBivTJEwq9fPW83IPpWCaxMWWTK5r7lcRXXJ8F1UxA jQXvHWYOUi6sUv5a2ABDOE7PNho+9WRlXVDHMHDm4uRwU+OBZXaKmY7NR+MA9dPtBnbG U0O9fpH0zpulav1BPhPTUUUKrSFvR/OR+aqYFQVZeMiudMHcfdtMKL/MNUE16sFZZV6z 9Zug== MIME-Version: 1.0 Received: by 10.216.138.135 with SMTP id a7mr3818560wej.19.1331071088448; Tue, 06 Mar 2012 13:58:08 -0800 (PST) Received: by 10.216.198.81 with HTTP; Tue, 6 Mar 2012 13:58:08 -0800 (PST) In-Reply-To: <201203062255.41480.zec@fer.hr> References: <201203062251.39786.zec@fer.hr> <201203062255.41480.zec@fer.hr> Date: Tue, 6 Mar 2012 13:58:08 -0800 Message-ID: From: Adrian Chadd To: Marko Zec Content-Type: text/plain; charset=ISO-8859-1 X-Mailman-Approved-At: Tue, 06 Mar 2012 23:09:55 +0000 Cc: freebsd-virtualization@freebsd.org Subject: Re: VIMAGE + kldload wlan + kldload wtap panic X-BeenThere: freebsd-virtualization@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion of various virtualization techniques FreeBSD supports." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 06 Mar 2012 21:58:10 -0000 I -know- i have booted a compiled kernel with VIMAGE, but the module failed .. Adrian From owner-freebsd-virtualization@FreeBSD.ORG Thu Mar 8 17:14:36 2012 Return-Path: Delivered-To: freebsd-virtualization@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 773241065672 for ; Thu, 8 Mar 2012 17:14:36 +0000 (UTC) (envelope-from grehan@freebsd.org) Received: from alto.onthenet.com.au (alto.OntheNet.com.au [203.13.68.12]) by mx1.freebsd.org (Postfix) with ESMTP id 352878FC17 for ; Thu, 8 Mar 2012 17:14:36 +0000 (UTC) Received: from dommail.onthenet.com.au (dommail.OntheNet.com.au [203.13.70.57]) by alto.onthenet.com.au (Postfix) with ESMTPS id 19B0B13152; Fri, 9 Mar 2012 03:14:29 +1000 (EST) Received: from Peter-Grehans-MacBook-Pro.local (pos-ext.netapp.com [198.95.226.40]) by dommail.onthenet.com.au (MOS 4.2.4-GA) with ESMTP id BCK97709 (AUTH peterg@ptree32.com.au); Fri, 9 Mar 2012 03:14:26 +1000 Message-ID: <4F58E8EE.6060609@freebsd.org> Date: Thu, 08 Mar 2012 10:14:22 -0700 From: Peter Grehan User-Agent: Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.27) Gecko/20120216 Thunderbird/3.1.19 MIME-Version: 1.0 To: Brandon Falk References: <4F519365.80207@gamozo.org> In-Reply-To: <4F519365.80207@gamozo.org> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Junkmail-Info: SPF_SOFTFAIL X-Junkmail-Status: score=6/51, host=dommail.onthenet.com.au Cc: freebsd-virtualization@freebsd.org Subject: Re: BHyVe GSoC X-BeenThere: freebsd-virtualization@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Discussion of various virtualization techniques FreeBSD supports." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 08 Mar 2012 17:14:36 -0000 Hi Brandon, > Will BHyVe be part of Google Summer of Code? Need to work out if I (or anyone else) will have time to mentor a project. > Also, how's the development > base looking. I'd love to contribute as I really would like to see a > proper VT-x facing VM under the BSD license. There's working code but lots remaining to do. > I'd love to see something like QEMU though, I really enjoy being able to > play with so many different architectures with QEMU. Well... it's not the intent of BHyVe to be a generic instruction-set emulator ala Qemu. Though, I'd like to see it run on other arch's that support h/w virt assist. later Peter.