From owner-freebsd-net@FreeBSD.ORG Mon Dec 26 11:44:40 2005 Return-Path: X-Original-To: freebsd-net@freebsd.org Delivered-To: freebsd-net@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id C546016A41F for ; Mon, 26 Dec 2005 11:44:40 +0000 (GMT) (envelope-from subscriber@osk.com.ua) Received: from gandalf.osk.com.ua (osk.com.ua [195.5.17.76]) by mx1.FreeBSD.org (Postfix) with ESMTP id 0EE7843D49 for ; Mon, 26 Dec 2005 11:44:34 +0000 (GMT) (envelope-from subscriber@osk.com.ua) Received: from localhost (localhost [127.0.0.1]) by gandalf.osk.com.ua (Postfix) with ESMTP id 510DA78C23 for ; Mon, 26 Dec 2005 13:48:40 +0200 (EET) Received: from gandalf.osk.com.ua ([127.0.0.1]) by localhost (gandalf.osk.com.ua [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 49043-13 for ; Mon, 26 Dec 2005 13:48:38 +0200 (EET) Received: from OLEG (unknown [192.168.82.111]) by gandalf.osk.com.ua (Postfix) with ESMTP id 5DA8678C22 for ; Mon, 26 Dec 2005 13:48:37 +0200 (EET) Date: Mon, 26 Dec 2005 13:41:50 +0200 From: Oleg Tarasov X-Mailer: The Bat! (v3.0.1.33) Professional X-Priority: 3 (Normal) Message-ID: <1687545235.20051226134150@osk.com.ua> To: freebsd-net@freebsd.org MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----------5A10119D24A09821" X-Virus-Scanned: amavisd-new at osk.com.ua Subject: Router on 6.0-stable fails to route tcp packets due to NAT?? malfunction X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: FreeBSD MailList List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 26 Dec 2005 11:44:40 -0000 ------------5A10119D24A09821 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: quoted-printable Hello, all SYSTEM DESCRIPTION I have built a production system based on FreeBSD 6.0-stable. The main Internet connection is established using mpd 3.18 which is started by attached script "mpd". It is rcorder'ed similar to ppp-user. mpd configuration is attached in mpd.conf and mpd.links. Shortly, ng0 is a PPPoE connection on rl1 interface. By the way user ppp failed to work with PPPoE connection correctly usually causing "No buffer space available" error which caused all network connections to stop working. Manual restart of ppp helped but it is quite unacceptable for production system. I attach ppp.conf Firewall is configured to manually divert packets to natd. I attach rc.firewall which was simplifyed to a minimum of functions for test purposes. natd is configured using the following config file: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D log no use_sockets yes same_ports yes interface ng0 unregistered_only yes log_ipfw_denied yes log_denied yes =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D I attach kernel configuration file used to compile it. Here is output of ifconfig: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D rl0: flags=3D8843 mtu 1500 options=3D8 inet 192.168.82.253 netmask 0xffffff00 broadcast 192.168.82.255 ether 00:30:4f:1c:ed:19 media: Ethernet autoselect (100baseTX ) status: active rl1: flags=3D8843 mtu 1500 options=3D8 ether 00:30:4f:1c:ed:17 media: Ethernet autoselect (100baseTX ) status: active plip0: flags=3D108810 mtu 1500 lo0: flags=3D8049 mtu 16384 inet 127.0.0.1 netmask 0xff000000 ng0: flags=3D88d1 mtu 1492 inet my.ip.add.ress --> prov.ip.add.ress netmask 0xffffffff =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Here is output of netstat -rn: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Destination Gateway Flags Refs Use Netif Expire default prov.ip.add.ress UGS 0 512334 ng0 my.ip.add.ress lo0 UHS 0 2426 lo0 127.0.0.1 127.0.0.1 UH 0 21881 lo0 192.168.82 link#1 UC 0 0 rl0 192.168.82.253 00:30:4f:1c:ed:19 UHLW 1 1162 lo0 prov.ip.add.ress my.ip.add.ress UH 1 0 ng0 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Windows client configuration: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D inet 192.168.82.111 netmask 255.255.255.0 192.168.82.253 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D Windows client routing table =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D 0.0.0.0 0.0.0.0 192.168.82.253 192.168.82.111 30 127.0.0.0 255.0.0.0 127.0.0.1 127.0.0.1 1 192.168.0.0 255.255.255.0 192.168.82.204 192.168.82.111 1 192.168.82.0 255.255.255.0 192.168.82.111 192.168.82.111 30 192.168.82.111 255.255.255.255 127.0.0.1 127.0.0.1 30 192.168.82.255 255.255.255.255 192.168.82.111 192.168.82.111 30 224.0.0.0 240.0.0.0 192.168.82.111 192.168.82.111 30 255.255.255.255 255.255.255.255 192.168.82.111 192.168.82.111 1 Default gateway: 192.168.82.253 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D The system has SQUID, mail, ftp systems and usually direct packet routing was not used so the problem was located after a month of usage of the system. PROBLEM DESCRIPTION I have a number of Windows XP clients in the network which are configured to use This machine as a default gateway. Any icmp packets to Internet work quite normal. Web worked normally too but when using proxy, so packet routing is not used for that. The problem was first encountered when trying to play online game which did not use proxy. Later it was confirmed when trying to serf the Web with usage of proxy turned off. Problem is that almost all data is not transmitted normally using tcp connections. For example trying to open www.gnome.org fails completely but packet flow seems to be normal. The most strange thing is that this problem occurs only on some clients when other ones work quite fine!!! From malfunctioning machines some sites can be opened too!!! Some sites can be opened partitially - some parts like pictures can fail to open. You can say - "How can we be sure that you client machines are configured normally?" - I am system administrator for some years and have plenty of servers and clients confugured by my hands. Also I have a production system based on 5.4p5 which is configured similarly to this one but using kernel ppp for internet connection - but that one had no problems. Everything in the LAN works perfectly. Also everything going through proxy also works fine. Any connection made directly from server has no problems. This makes me think the problem is in routing or NAT. For test purposes I have reinstalled my own client machine (which also has the problem described above) from scratch - no result. I changed network card, changed IP address - no positive result. From=20all above I make a conclusion that possible reason is in the NAT malfunction. Or I dont know what... Here is the dump on both interfaces ng0 and rl0 which are Internet and LAN interfaces. I try to open www.gnome.org and I see this: tcpdump on ng0 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D 09:55:13.757127 IP (tos 0x0, ttl 127, id 56112, offset 0, flags [DF], proto= : TCP (6), length: 48) piramida.com.ua.1140 > window.gnome.org.http: S, cks= um 0x2b0b (correct), 687058407:687058407(0) win 16384 09:55:13.982233 IP (tos 0x0, ttl 47, id 0, offset 0, flags [DF], proto: TC= P (6), length: 48) window.gnome.org.http > piramida.com.ua.1140: S, cksum 0= x6f48 (correct), 3785163588:3785163588(0) ack 687058408 win 5840 09:55:13.982616 IP (tos 0x0, ttl 127, id 56115, offset 0, flags [DF], proto= : TCP (6), length: 40) piramida.com.ua.1140 > window.gnome.org.http: ., cks= um 0x6e6c (correct), ack 1 win 17520 09:55:13.982774 IP (tos 0x0, ttl 127, id 56116, offset 0, flags [DF], proto= : TCP (6), length: 322) piramida.com.ua.1140 > window.gnome.org.http: P 1:2= 83(282) ack 1 win 17520 09:55:14.219491 IP (tos 0x0, ttl 47, id 58466, offset 0, flags [DF], proto= : TCP (6), length: 40) window.gnome.org.http > piramida.com.ua.1140: ., cks= um 0x98a2 (correct), ack 283 win 6432 09:55:59.300589 IP (tos 0x0, ttl 127, id 62999, offset 0, flags [DF], proto= : TCP (6), length: 40) piramida.com.ua.1140 > window.gnome.org.http: R, cks= um 0xb1be (correct), 283:283(0) ack 1 win 0 09:55:59.417698 IP (tos 0x0, ttl 64, id 36993, offset 0, flags [none], pro= to: TCP (6), length: 40) 192.168.82.111.1140 > window.gnome.org.http: ., ck= sum 0x58ec (correct), ack 3785163589 win 0 ^^^^^^ = ^^^^^^^^^^^^^^^^^^ !!!!!! = !!!!!!!!!!!!!!!!!! =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D tcpdump on rl0 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D 09:55:13.756938 IP (tos 0x0, ttl 128, id 56112, offset 0, flags [DF], proto= : TCP (6), length: 48) 192.168.82.111.1140 > window.gnome.org.http: S, cksu= m 0xd233 (correct), 687058407:687058407(0) win 16384 09:55:13.982399 IP (tos 0x0, ttl 46, id 0, offset 0, flags [DF], proto: TC= P (6), length: 48) window.gnome.org.http > 192.168.82.111.1140: S, cksum 0x= 1671 (correct), 3785163588:3785163588(0) ack 687058408 win 5840 09:55:13.982538 IP (tos 0x0, ttl 128, id 56115, offset 0, flags [DF], proto= : TCP (6), length: 40) 192.168.82.111.1140 > window.gnome.org.http: ., cksu= m 0x1595 (correct), ack 1 win 17520 09:55:13.982719 IP (tos 0x0, ttl 128, id 56116, offset 0, flags [DF], proto= : TCP (6), length: 322) 192.168.82.111.1140 > window.gnome.org.http: P 1:28= 3(282) ack 1 win 17520 09:55:14.219666 IP (tos 0x0, ttl 46, id 58466, offset 0, flags [DF], proto= : TCP (6), length: 40) window.gnome.org.http > 192.168.82.111.1140: ., cksu= m 0x3fcb (correct), ack 283 win 6432 09:55:59.300444 IP (tos 0x0, ttl 128, id 62999, offset 0, flags [DF], proto= : TCP (6), length: 40) 192.168.82.111.1140 > window.gnome.org.http: R, cksu= m 0x58e7 (correct), 283:283(0) ack 1 win 0 09:55:59.417786 IP (tos 0x0, ttl 64, id 36994, offset 0, flags [none], pro= to: TCP (6), length: 40) window.gnome.org.http > 192.168.82.111.1140: ., ck= sum 0x58ec (correct), ack 283 win 0 =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D I am not sure what the hell is happening. The same problem occurs when trying to connect to ftp server - ftp commands work fine but when I'm trying to download file and massive tcp connection forms connection hangs. I would appriciate any useful information on this topic and information on how can I debug this more deeply. --=20 Best regards, Oleg Tarasov mailto:subscriber@osk.com.ua ------------5A10119D24A09821 Content-Type: text/plain; name="dmesg.txt" Content-transfer-encoding: base64 Content-Disposition: attachment; filename="dmesg.txt" Q29weXJpZ2h0IChjKSAxOTkyLTIwMDUgVGhlIEZyZWVCU0QgUHJvamVjdC4KQ29weXJpZ2h0 IChjKSAxOTc5LCAxOTgwLCAxOTgzLCAxOTg2LCAxOTg4LCAxOTg5LCAxOTkxLCAxOTkyLCAx OTkzLCAxOTk0CiAgICAgICAgVGhlIFJlZ2VudHMgb2YgdGhlIFVuaXZlcnNpdHkgb2YgQ2Fs aWZvcm5pYS4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KCUZyZWVCU0QgNi4wLVJFTEVBU0UgIzA6 IFR1ZSBOb3YgMjkgMTU6MzI6NTMgRUVUIDIwMDUKCSAgICByb290QGdhbmRhbGYucGlyYW1p ZGEuY29tLnVhOi91c3Ivb2JqL3Vzci9zcmMvc3lzL1BJUkFNSURBCgkgICAgV0FSTklORzog ZGVidWcubXBzYWZlbmV0IGZvcmNlZCB0byAwIGFzIGlwc2VjIHJlcXVpcmVzIEdpYW50Cgkg ICAgV0FSTklORzogTVBTQUZFIG5ldHdvcmsgc3RhY2sgZGlzYWJsZWQsIGV4cGVjdCByZWR1 Y2VkIHBlcmZvcm1hbmNlLgoJICAgIFRpbWVjb3VudGVyICJpODI1NCIgZnJlcXVlbmN5IDEx OTMxODIgSHogcXVhbGl0eSAwCgkgICAgQ1BVOiBJbnRlbChSKSBDZWxlcm9uKFRNKSBDUFUg ICAgICAgICAgICAgICAgMTEwME1IeiAoMTA5My45MC1NSHogNjg2LWNsYXNzIENQVSkKCSAg ICAgIE9yaWdpbiA9ICJHZW51aW5lSW50ZWwiICBJZCA9IDB4NmIxICBTdGVwcGluZyA9IDEK CSAgICAgICAgRmVhdHVyZXM9MHgzODNmOWZmPEZQVSxWTUUsREUsUFNFLFRTQyxNU1IsUEFF LE1DRSxDWDgsU0VQLE1UUlIsUEdFLE1DQSxDTU9WLFBBVCxQU0UzNixNTVgsRlhTUixTU0U+ CgkJcmVhbCBtZW1vcnkgID0gNDAyNTg3NjQ4ICgzODMgTUIpCgkJYXZhaWwgbWVtb3J5ID0g Mzg0MzM5OTY4ICgzNjYgTUIpCgkJbnB4MDogW0ZBU1RdCgkJbnB4MDogPG1hdGggcHJvY2Vz c29yPiBvbiBtb3RoZXJib2FyZAoJCW5weDA6IElOVCAxNiBpbnRlcmZhY2UKCQlhY3BpMDog PEludGVsUiBBV1JEQUNQST4gb24gbW90aGVyYm9hcmQKCQlhY3BpMDogUG93ZXIgQnV0dG9u IChmaXhlZCkKCQlwY2lfbGluazA6IDxBQ1BJIFBDSSBMaW5rIExOS0E+IGlycSA5IG9uIGFj cGkwCgkJcGNpX2xpbmsxOiA8QUNQSSBQQ0kgTGluayBMTktCPiBpcnEgMTEgb24gYWNwaTAK CQlwY2lfbGluazI6IDxBQ1BJIFBDSSBMaW5rIExOS0M+IGlycSAxMSBvbiBhY3BpMAoJCXBj aV9saW5rMzogPEFDUEkgUENJIExpbmsgTE5LRD4gaXJxIDUgb24gYWNwaTAKCQlwY2lfbGlu azQ6IDxBQ1BJIFBDSSBMaW5rIExOS0U+IGlycSAwIG9uIGFjcGkwCgkJcGNpX2xpbms1OiA8 QUNQSSBQQ0kgTGluayBMTktGPiBpcnEgMCBvbiBhY3BpMAoJCXBjaV9saW5rNjogPEFDUEkg UENJIExpbmsgTE5LMD4gaXJxIDAgb24gYWNwaTAKCQlwY2lfbGluazc6IDxBQ1BJIFBDSSBM aW5rIExOSzE+IGlycSAxMSBvbiBhY3BpMAoJCVRpbWVjb3VudGVyICJBQ1BJLWZhc3QiIGZy ZXF1ZW5jeSAzNTc5NTQ1IEh6IHF1YWxpdHkgMTAwMAoJCWFjcGlfdGltZXIwOiA8MjQtYml0 IHRpbWVyIGF0IDMuNTc5NTQ1TUh6PiBwb3J0IDB4NDA4LTB4NDBiIG9uIGFjcGkwCgkJY3B1 MDogPEFDUEkgQ1BVPiBvbiBhY3BpMAoJCWFjcGlfdGhyb3R0bGUwOiA8QUNQSSBDUFUgVGhy b3R0bGluZz4gb24gY3B1MAoJCWFjcGlfYnV0dG9uMDogPFBvd2VyIEJ1dHRvbj4gb24gYWNw aTAKCQlhY3BpX2J1dHRvbjE6IDxTbGVlcCBCdXR0b24+IG9uIGFjcGkwCgkJcGNpYjA6IDxB Q1BJIEhvc3QtUENJIGJyaWRnZT4gcG9ydCAweGNmOC0weGNmZiBvbiBhY3BpMAoJCXBjaTA6 IDxBQ1BJIFBDSSBidXM+IG9uIHBjaWIwCgkJYWdwMDogPEludGVsIDgyODE1IChpODE1IEdN Q0gpIGhvc3QgdG8gUENJIGJyaWRnZT4gbWVtIDB4ZTgwMDAwMDAtMHhlYmZmZmZmZiBhdCBk ZXZpY2UgMC4wIG9uIHBjaTAKCQlwY2liMTogPFBDSS1QQ0kgYnJpZGdlPiBhdCBkZXZpY2Ug MS4wIG9uIHBjaTAKCQlwY2kxOiA8UENJIGJ1cz4gb24gcGNpYjEKCQlwY2kxOiA8ZGlzcGxh eSwgVkdBPiBhdCBkZXZpY2UgMC4wIChubyBkcml2ZXIgYXR0YWNoZWQpCgkJcGNpYjI6IDxB Q1BJIFBDSS1QQ0kgYnJpZGdlPiBhdCBkZXZpY2UgMzAuMCBvbiBwY2kwCgkJcGNpMjogPEFD UEkgUENJIGJ1cz4gb24gcGNpYjIKCQlybDA6IDxSZWFsVGVrIDgxMzkgMTAvMTAwQmFzZVRY PiBwb3J0IDB4YzAwMC0weGMwZmYgbWVtIDB4ZWUwMDAwMDAtMHhlZTAwMDBmZiBpcnEgMTEg YXQgZGV2aWNlIDIuMCBvbiBwY2kyCgkJbWlpYnVzMDogPE1JSSBidXM+IG9uIHJsMAoJCXJs cGh5MDogPFJlYWxUZWsgaW50ZXJuYWwgbWVkaWEgaW50ZXJmYWNlPiBvbiBtaWlidXMwCgkJ cmxwaHkwOiAgMTBiYXNlVCwgMTBiYXNlVC1GRFgsIDEwMGJhc2VUWCwgMTAwYmFzZVRYLUZE WCwgYXV0bwoJCXJsMDogRXRoZXJuZXQgYWRkcmVzczogMDA6MzA6NGY6MWM6ZWQ6MTkKCQly bDA6IFtHSUFOVC1MT0NLRURdCgkJcmwxOiA8UmVhbFRlayA4MTM5IDEwLzEwMEJhc2VUWD4g cG9ydCAweGM0MDAtMHhjNGZmIG1lbSAweGVlMDAxMDAwLTB4ZWUwMDEwZmYgaXJxIDUgYXQg ZGV2aWNlIDMuMCBvbiBwY2kyCgkJbWlpYnVzMTogPE1JSSBidXM+IG9uIHJsMQoJCXJscGh5 MTogPFJlYWxUZWsgaW50ZXJuYWwgbWVkaWEgaW50ZXJmYWNlPiBvbiBtaWlidXMxCgkJcmxw aHkxOiAgMTBiYXNlVCwgMTBiYXNlVC1GRFgsIDEwMGJhc2VUWCwgMTAwYmFzZVRYLUZEWCwg YXV0bwoJCXJsMTogRXRoZXJuZXQgYWRkcmVzczogMDA6MzA6NGY6MWM6ZWQ6MTcKCQlybDE6 IFtHSUFOVC1MT0NLRURdCgkJaXNhYjA6IDxQQ0ktSVNBIGJyaWRnZT4gYXQgZGV2aWNlIDMx LjAgb24gcGNpMAoJCWlzYTA6IDxJU0EgYnVzPiBvbiBpc2FiMAoJCWF0YXBjaTA6IDxJbnRl bCBJQ0gyIFVETUExMDAgY29udHJvbGxlcj4gcG9ydCAweDFmMC0weDFmNywweDNmNiwweDE3 MC0weDE3NywweDM3NiwweGYwMDAtMHhmMDBmIGF0IGRldmljZSAzMS4xIG9uIHBjaTAKCQlh dGEwOiA8QVRBIGNoYW5uZWwgMD4gb24gYXRhcGNpMAoJCWF0YTE6IDxBVEEgY2hhbm5lbCAx PiBvbiBhdGFwY2kwCgkJdWhjaTA6IDxJbnRlbCA4MjgwMUJBL0JBTSAoSUNIMikgVVNCIGNv bnRyb2xsZXIgVVNCLUE+IHBvcnQgMHhkMDAwLTB4ZDAxZiBpcnEgNSBhdCBkZXZpY2UgMzEu MiBvbiBwY2kwCgkJdWhjaTA6IFtHSUFOVC1MT0NLRURdCgkJdXNiMDogPEludGVsIDgyODAx QkEvQkFNIChJQ0gyKSBVU0IgY29udHJvbGxlciBVU0ItQT4gb24gdWhjaTAKCQl1c2IwOiBV U0IgcmV2aXNpb24gMS4wCgkJdWh1YjA6IEludGVsIFVIQ0kgcm9vdCBodWIsIGNsYXNzIDkv MCwgcmV2IDEuMDAvMS4wMCwgYWRkciAxCgkJdWh1YjA6IDIgcG9ydHMgd2l0aCAyIHJlbW92 YWJsZSwgc2VsZiBwb3dlcmVkCgkJcGNpMDogPHNlcmlhbCBidXMsIFNNQnVzPiBhdCBkZXZp Y2UgMzEuMyAobm8gZHJpdmVyIGF0dGFjaGVkKQoJCXVoY2kxOiA8SW50ZWwgODI4MDFCQS9C QU0gKElDSDIpIFVTQiBjb250cm9sbGVyIFVTQi1CPiBwb3J0IDB4ZDgwMC0weGQ4MWYgaXJx IDExIGF0IGRldmljZSAzMS40IG9uIHBjaTAKCQl1aGNpMTogW0dJQU5ULUxPQ0tFRF0KCQl1 c2IxOiA8SW50ZWwgODI4MDFCQS9CQU0gKElDSDIpIFVTQiBjb250cm9sbGVyIFVTQi1CPiBv biB1aGNpMQoJCXVzYjE6IFVTQiByZXZpc2lvbiAxLjAKCQl1aHViMTogSW50ZWwgVUhDSSBy b290IGh1YiwgY2xhc3MgOS8wLCByZXYgMS4wMC8xLjAwLCBhZGRyIDEKCQl1aHViMTogMiBw b3J0cyB3aXRoIDIgcmVtb3ZhYmxlLCBzZWxmIHBvd2VyZWQKCQlwY2kwOiA8bXVsdGltZWRp YSwgYXVkaW8+IGF0IGRldmljZSAzMS41IChubyBkcml2ZXIgYXR0YWNoZWQpCgkJYWNwaV90 ejA6IDxUaGVybWFsIFpvbmU+IG9uIGFjcGkwCgkJZmRjMDogPGZsb3BweSBkcml2ZSBjb250 cm9sbGVyPiBwb3J0IDB4M2YwLTB4M2Y1LDB4M2Y3IGlycSA2IGRycSAyIG9uIGFjcGkwCgkJ ZmRjMDogW0ZBU1RdCgkJZmQwOiA8MTQ0MC1LQiAzLjUiIGRyaXZlPiBvbiBmZGMwIGRyaXZl IDAKCQlzaW8wOiA8MTY1NTBBLWNvbXBhdGlibGUgQ09NIHBvcnQ+IHBvcnQgMHgzZjgtMHgz ZmYgaXJxIDQgZmxhZ3MgMHgxMCBvbiBhY3BpMAoJCXNpbzA6IHR5cGUgMTY1NTBBCgkJc2lv MTogPDE2NTUwQS1jb21wYXRpYmxlIENPTSBwb3J0PiBwb3J0IDB4MmY4LTB4MmZmIGlycSAz IG9uIGFjcGkwCgkJc2lvMTogdHlwZSAxNjU1MEEKCQlwcGMwOiA8U3RhbmRhcmQgcGFyYWxs ZWwgcHJpbnRlciBwb3J0PiBwb3J0IDB4Mzc4LTB4MzdmIGlycSA3IG9uIGFjcGkwCgkJcHBj MDogR2VuZXJpYyBjaGlwc2V0IChOSUJCTEUtb25seSkgaW4gQ09NUEFUSUJMRSBtb2RlCgkJ cHBidXMwOiA8UGFyYWxsZWwgcG9ydCBidXM+IG9uIHBwYzAKCQlwbGlwMDogPFBMSVAgbmV0 d29yayBpbnRlcmZhY2U+IG9uIHBwYnVzMAoJCWxwdDA6IDxQcmludGVyPiBvbiBwcGJ1czAK CQlscHQwOiBJbnRlcnJ1cHQtZHJpdmVuIHBvcnQKCQlwcGkwOiA8UGFyYWxsZWwgSS9PPiBv biBwcGJ1czAKCQlhdGtiZGMwOiA8S2V5Ym9hcmQgY29udHJvbGxlciAoaTgwNDIpPiBwb3J0 IDB4NjAsMHg2NCBpcnEgMSBvbiBhY3BpMAoJCWF0a2JkMDogPEFUIEtleWJvYXJkPiBpcnEg MSBvbiBhdGtiZGMwCgkJa2JkMCBhdCBhdGtiZDAKCQlhdGtiZDA6IFtHSUFOVC1MT0NLRURd CgkJcHNtMDogPFBTLzIgTW91c2U+IGlycSAxMiBvbiBhdGtiZGMwCgkJcHNtMDogW0dJQU5U LUxPQ0tFRF0KCQlwc20wOiBtb2RlbCBOZXRNb3VzZS9OZXRTY3JvbGwgT3B0aWNhbCwgZGV2 aWNlIElEIDAKCQlwbXRpbWVyMCBvbiBpc2EwCgkJc2MwOiA8U3lzdGVtIGNvbnNvbGU+IGF0 IGZsYWdzIDB4MTAwIG9uIGlzYTAKCQlzYzA6IFZHQSA8MTYgdmlydHVhbCBjb25zb2xlcywg ZmxhZ3M9MHgzMDA+CgkJdmdhMDogPEdlbmVyaWMgSVNBIFZHQT4gYXQgcG9ydCAweDNjMC0w eDNkZiBpb21lbSAweGEwMDAwLTB4YmZmZmYgb24gaXNhMAoJCVRpbWVjb3VudGVyICJUU0Mi IGZyZXF1ZW5jeSAxMDkzOTAyNDQyIEh6IHF1YWxpdHkgODAwCgkJVGltZWNvdW50ZXJzIHRp Y2sgZXZlcnkgMS4wMDAgbXNlYwoJCUlQc2VjOiBJbml0aWFsaXplZCBTZWN1cml0eSBBc3Nv Y2lhdGlvbiBQcm9jZXNzaW5nLgoJCWlwZncyICgraXB2NikgaW5pdGlhbGl6ZWQsIGRpdmVy dCBsb2FkYWJsZSwgcnVsZS1iYXNlZCBmb3J3YXJkaW5nIGVuYWJsZWQsIGRlZmF1bHQgdG8g YWNjZXB0LCBsb2dnaW5nIGxpbWl0ZWQgdG8gMzAwIHBhY2tldHMvZW50cnkgYnkgZGVmYXVs dAoJCWFkMDogMzgyMDRNQiA8U0FNU1VORyBTUDA0MTFOIFRXMTAwLTA4PiBhdCBhdGEwLW1h c3RlciBVRE1BMTAwCgkJYWNkMDogQ0RST00gPEFTVVMgQ0QtUzUyMC9BNC8xLjI+IGF0IGF0 YTEtbWFzdGVyIFVETUEzMwoJCVRyeWluZyB0byBtb3VudCByb290IGZyb20gdWZzOi9kZXYv YWQwczFhCgkJcmwxOiBsaW5rIHN0YXRlIGNoYW5nZWQgdG8gVVAKCQk= ------------5A10119D24A09821 Content-Type: application/octet-stream; name=KERNEL Content-transfer-encoding: base64 Content-Disposition: attachment; filename=KERNEL IwojIEdFTkVSSUMgLS0gR2VuZXJpYyBrZXJuZWwgY29uZmlndXJhdGlvbiBmaWxlIGZvciBG cmVlQlNEL2kzODYKIwojIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoaXMgZmlsZSwgcGxl YXNlIHJlYWQgdGhlIGhhbmRib29rIHNlY3Rpb24gb24KIyBLZXJuZWwgQ29uZmlndXJhdGlv biBGaWxlczoKIwojICAgIGh0dHA6Ly93d3cuRnJlZUJTRC5vcmcvZG9jL2VuX1VTLklTTzg4 NTktMS9ib29rcy9oYW5kYm9vay9rZXJuZWxjb25maWctY29uZmlnLmh0bWwKIwojIFRoZSBo YW5kYm9vayBpcyBhbHNvIGF2YWlsYWJsZSBsb2NhbGx5IGluIC91c3Ivc2hhcmUvZG9jL2hh bmRib29rCiMgaWYgeW91J3ZlIGluc3RhbGxlZCB0aGUgZG9jIGRpc3RyaWJ1dGlvbiwgb3Ro ZXJ3aXNlIGFsd2F5cyBzZWUgdGhlCiMgRnJlZUJTRCBXb3JsZCBXaWRlIFdlYiBzZXJ2ZXIg KGh0dHA6Ly93d3cuRnJlZUJTRC5vcmcvKSBmb3IgdGhlCiMgbGF0ZXN0IGluZm9ybWF0aW9u LgojCiMgQW4gZXhoYXVzdGl2ZSBsaXN0IG9mIG9wdGlvbnMgYW5kIG1vcmUgZGV0YWlsZWQg ZXhwbGFuYXRpb25zIG9mIHRoZQojIGRldmljZSBsaW5lcyBpcyBhbHNvIHByZXNlbnQgaW4g dGhlIC4uLy4uL2NvbmYvTk9URVMgYW5kIE5PVEVTIGZpbGVzLgojIElmIHlvdSBhcmUgaW4g ZG91YnQgYXMgdG8gdGhlIHB1cnBvc2Ugb3IgbmVjZXNzaXR5IG9mIGEgbGluZSwgY2hlY2sg Zmlyc3QKIyBpbiBOT1RFUy4KIwojICRGcmVlQlNEOiBzcmMvc3lzL2kzODYvY29uZi9HRU5F UklDLHYgMS40MjkuMi4zLjIuMSAyMDA1LzEwLzI4IDE5OjIyOjQxIGpoYiBFeHAgJAoKbWFj aGluZQkJaTM4NgpjcHUJCUk0ODZfQ1BVCmNwdQkJSTU4Nl9DUFUKY3B1CQlJNjg2X0NQVQpp ZGVudAkJUElSQU1JREEKCm9wdGlvbnMgICAgICAgICBTTVAKb3B0aW9ucyAgICAgICAgIElQ RklSRVdBTEwKb3B0aW9ucyAgICAgICAgIElQRklSRVdBTExfVkVSQk9TRQpvcHRpb25zICAg ICAgICAgSVBGSVJFV0FMTF9WRVJCT1NFX0xJTUlUPTMwMApvcHRpb25zICAgICAgICAgSVBG SVJFV0FMTF9ERUZBVUxUX1RPX0FDQ0VQVApvcHRpb25zICAgICAgICAgSVBGSVJFV0FMTF9G T1JXQVJECm9wdGlvbnMgICAgICAgICBJUERJVkVSVApvcHRpb25zICAgICAgICAgSVBTVEVB TFRICm9wdGlvbnMgICAgICAgICBEVU1NWU5FVApvcHRpb25zICAgICAgICAgSFo9MTAwMApv cHRpb25zICAgICAgICAgVkVTQQoKb3B0aW9ucyAgICAgICAgIElQU0VDCm9wdGlvbnMgICAg ICAgICBJUFNFQ19FU1AKb3B0aW9ucyAgICAgICAgIElQU0VDX0RFQlVHCgojIFRvIHN0YXRp Y2FsbHkgY29tcGlsZSBpbiBkZXZpY2Ugd2lyaW5nIGluc3RlYWQgb2YgL2Jvb3QvZGV2aWNl LmhpbnRzCiNoaW50cwkJIkdFTkVSSUMuaGludHMiCQkjIERlZmF1bHQgcGxhY2VzIHRvIGxv b2sgZm9yIGRldmljZXMuCgptYWtlb3B0aW9ucwlERUJVRz0tZwkJIyBCdWlsZCBrZXJuZWwg d2l0aCBnZGIoMSkgZGVidWcgc3ltYm9scwoKI29wdGlvbnMgCVNDSEVEX1VMRQkJIyBVTEUg c2NoZWR1bGVyCm9wdGlvbnMgCVNDSEVEXzRCU0QJCSMgNEJTRCBzY2hlZHVsZXIKb3B0aW9u cyAJUFJFRU1QVElPTgkJIyBFbmFibGUga2VybmVsIHRocmVhZCBwcmVlbXB0aW9uCm9wdGlv bnMgCUlORVQJCQkjIEludGVyTkVUd29ya2luZwojb3B0aW9ucyAJSU5FVDYJCQkjIElQdjYg Y29tbXVuaWNhdGlvbnMgcHJvdG9jb2xzCm9wdGlvbnMgCUZGUwkJCSMgQmVya2VsZXkgRmFz dCBGaWxlc3lzdGVtCm9wdGlvbnMgCVNPRlRVUERBVEVTCQkjIEVuYWJsZSBGRlMgc29mdCB1 cGRhdGVzIHN1cHBvcnQKb3B0aW9ucyAJVUZTX0FDTAkJCSMgU3VwcG9ydCBmb3IgYWNjZXNz IGNvbnRyb2wgbGlzdHMKb3B0aW9ucyAJVUZTX0RJUkhBU0gJCSMgSW1wcm92ZSBwZXJmb3Jt YW5jZSBvbiBiaWcgZGlyZWN0b3JpZXMKb3B0aW9ucyAJTURfUk9PVAkJCSMgTUQgaXMgYSBw b3RlbnRpYWwgcm9vdCBkZXZpY2UKb3B0aW9ucyAJTkZTQ0xJRU5UCQkjIE5ldHdvcmsgRmls ZXN5c3RlbSBDbGllbnQKb3B0aW9ucyAJTkZTU0VSVkVSCQkjIE5ldHdvcmsgRmlsZXN5c3Rl bSBTZXJ2ZXIKb3B0aW9ucyAJTkZTX1JPT1QJCSMgTkZTIHVzYWJsZSBhcyAvLCByZXF1aXJl cyBORlNDTElFTlQKb3B0aW9ucyAJTVNET1NGUwkJCSMgTVNET1MgRmlsZXN5c3RlbQpvcHRp b25zIAlDRDk2NjAJCQkjIElTTyA5NjYwIEZpbGVzeXN0ZW0Kb3B0aW9ucyAJUFJPQ0ZTCQkJ IyBQcm9jZXNzIGZpbGVzeXN0ZW0gKHJlcXVpcmVzIFBTRVVET0ZTKQpvcHRpb25zIAlQU0VV RE9GUwkJIyBQc2V1ZG8tZmlsZXN5c3RlbSBmcmFtZXdvcmsKb3B0aW9ucyAJR0VPTV9HUFQJ CSMgR1VJRCBQYXJ0aXRpb24gVGFibGVzLgpvcHRpb25zIAlDT01QQVRfNDMJCSMgQ29tcGF0 aWJsZSB3aXRoIEJTRCA0LjMgW0tFRVAgVEhJUyFdCm9wdGlvbnMgCUNPTVBBVF9GUkVFQlNE NAkJIyBDb21wYXRpYmxlIHdpdGggRnJlZUJTRDQKb3B0aW9ucyAJQ09NUEFUX0ZSRUVCU0Q1 CQkjIENvbXBhdGlibGUgd2l0aCBGcmVlQlNENQpvcHRpb25zIAlTQ1NJX0RFTEFZPTUwMDAJ CSMgRGVsYXkgKGluIG1zKSBiZWZvcmUgcHJvYmluZyBTQ1NJCm9wdGlvbnMgCUtUUkFDRQkJ CSMga3RyYWNlKDEpIHN1cHBvcnQKb3B0aW9ucyAJU1lTVlNITQkJCSMgU1lTVi1zdHlsZSBz aGFyZWQgbWVtb3J5Cm9wdGlvbnMgCVNZU1ZNU0cJCQkjIFNZU1Ytc3R5bGUgbWVzc2FnZSBx dWV1ZXMKb3B0aW9ucyAJU1lTVlNFTQkJCSMgU1lTVi1zdHlsZSBzZW1hcGhvcmVzCm9wdGlv bnMgCV9LUE9TSVhfUFJJT1JJVFlfU0NIRURVTElORyAjIFBPU0lYIFAxMDAzXzFCIHJlYWwt dGltZSBleHRlbnNpb25zCm9wdGlvbnMgCUtCRF9JTlNUQUxMX0NERVYJIyBpbnN0YWxsIGEg Q0RFViBlbnRyeSBpbiAvZGV2Cm9wdGlvbnMgCUFIQ19SRUdfUFJFVFRZX1BSSU5UCSMgUHJp bnQgcmVnaXN0ZXIgYml0ZmllbGRzIGluIGRlYnVnCgkJCQkJIyBvdXRwdXQuICBBZGRzIH4x MjhrIHRvIGRyaXZlci4Kb3B0aW9ucyAJQUhEX1JFR19QUkVUVFlfUFJJTlQJIyBQcmludCBy ZWdpc3RlciBiaXRmaWVsZHMgaW4gZGVidWcKCQkJCQkjIG91dHB1dC4gIEFkZHMgfjIxNWsg dG8gZHJpdmVyLgpvcHRpb25zIAlBREFQVElWRV9HSUFOVAkJIyBHaWFudCBtdXRleCBpcyBh ZGFwdGl2ZS4KCmRldmljZQkJYXBpYwkJCSMgSS9PIEFQSUMKCiMgQnVzIHN1cHBvcnQuCmRl dmljZQkJZWlzYQpkZXZpY2UJCXBjaQoKIyBGbG9wcHkgZHJpdmVzCmRldmljZQkJZmRjCgoj IEFUQSBhbmQgQVRBUEkgZGV2aWNlcwpkZXZpY2UJCWF0YQpkZXZpY2UJCWF0YWRpc2sJCSMg QVRBIGRpc2sgZHJpdmVzCmRldmljZQkJYXRhcmFpZAkJIyBBVEEgUkFJRCBkcml2ZXMKZGV2 aWNlCQlhdGFwaWNkCQkjIEFUQVBJIENEUk9NIGRyaXZlcwpkZXZpY2UJCWF0YXBpZmQJCSMg QVRBUEkgZmxvcHB5IGRyaXZlcwpkZXZpY2UJCWF0YXBpc3QJCSMgQVRBUEkgdGFwZSBkcml2 ZXMKb3B0aW9ucyAJQVRBX1NUQVRJQ19JRAkjIFN0YXRpYyBkZXZpY2UgbnVtYmVyaW5nCgoj IFNDU0kgQ29udHJvbGxlcnMKZGV2aWNlCQlhaGIJCSMgRUlTQSBBSEExNzQyIGZhbWlseQpk ZXZpY2UJCWFoYwkJIyBBSEEyOTQwIGFuZCBvbmJvYXJkIEFJQzd4eHggZGV2aWNlcwpkZXZp Y2UJCWFoZAkJIyBBSEEzOTMyMC8yOTMyMCBhbmQgb25ib2FyZCBBSUM3OXh4IGRldmljZXMK ZGV2aWNlCQlhbWQJCSMgQU1EIDUzQzk3NCAoVGVrcmFtIERDLTM5MChUKSkKZGV2aWNlCQlp c3AJCSMgUWxvZ2ljIGZhbWlseQojZGV2aWNlIAlpc3BmdwkJIyBGaXJtd2FyZSBmb3IgUUxv Z2ljIEhCQXMtIG5vcm1hbGx5IGEgbW9kdWxlCmRldmljZQkJbXB0CQkjIExTSS1Mb2dpYyBN UFQtRnVzaW9uCiNkZXZpY2UJCW5jcgkJIyBOQ1IvU3ltYmlvcyBMb2dpYwpkZXZpY2UJCXN5 bQkJIyBOQ1IvU3ltYmlvcyBMb2dpYyAobmV3ZXIgY2hpcHNldHMgKyB0aG9zZSBvZiBgbmNy JykKZGV2aWNlCQl0cm0JCSMgVGVrcmFtIERDMzk1VS9VVy9GIERDMzE1VSBhZGFwdGVycwoK ZGV2aWNlCQlhZHYJCSMgQWR2YW5zeXMgU0NTSSBhZGFwdGVycwpkZXZpY2UJCWFkdwkJIyBB ZHZhbnN5cyB3aWRlIFNDU0kgYWRhcHRlcnMKZGV2aWNlCQlhaGEJCSMgQWRhcHRlYyAxNTR4 IFNDU0kgYWRhcHRlcnMKZGV2aWNlCQlhaWMJCSMgQWRhcHRlYyAxNVswMTJdeCBTQ1NJIGFk YXB0ZXJzLCBBSUMtNlsyM102MC4KZGV2aWNlCQlidAkJIyBCdXNsb2dpYy9NeWxleCBNdWx0 aU1hc3RlciBTQ1NJIGFkYXB0ZXJzCgpkZXZpY2UJCW5jdgkJIyBOQ1IgNTNDNTAwCmRldmlj ZQkJbnNwCQkjIFdvcmtiaXQgTmluamEgU0NTSS0zCmRldmljZQkJc3RnCQkjIFRNQyAxOEMz MC8xOEM1MAoKIyBTQ1NJIHBlcmlwaGVyYWxzCmRldmljZQkJc2NidXMJCSMgU0NTSSBidXMg KHJlcXVpcmVkIGZvciBTQ1NJKQpkZXZpY2UJCWNoCQkjIFNDU0kgbWVkaWEgY2hhbmdlcnMK ZGV2aWNlCQlkYQkJIyBEaXJlY3QgQWNjZXNzIChkaXNrcykKZGV2aWNlCQlzYQkJIyBTZXF1 ZW50aWFsIEFjY2VzcyAodGFwZSBldGMpCmRldmljZQkJY2QJCSMgQ0QKZGV2aWNlCQlwYXNz CQkjIFBhc3N0aHJvdWdoIGRldmljZSAoZGlyZWN0IFNDU0kgYWNjZXNzKQpkZXZpY2UJCXNl cwkJIyBTQ1NJIEVudmlyb25tZW50YWwgU2VydmljZXMgKGFuZCBTQUYtVEUpCgojIFJBSUQg Y29udHJvbGxlcnMgaW50ZXJmYWNlZCB0byB0aGUgU0NTSSBzdWJzeXN0ZW0KZGV2aWNlCQlh bXIJCSMgQU1JIE1lZ2FSQUlECmRldmljZQkJYXJjbXNyCQkjIEFyZWNhIFNBVEEgSUkgUkFJ RApkZXZpY2UJCWFzcgkJIyBEUFQgU21hcnRSQUlEIFYsIFZJIGFuZCBBZGFwdGVjIFNDU0kg UkFJRApkZXZpY2UJCWNpc3MJCSMgQ29tcGFxIFNtYXJ0IFJBSUQgNSoKZGV2aWNlCQlkcHQJ CSMgRFBUIFNtYXJ0Y2FjaGUgSUlJLCBJViAtIFNlZSBOT1RFUyBmb3Igb3B0aW9ucwpkZXZp Y2UJCWhwdG12CQkjIEhpZ2hwb2ludCBSb2NrZXRSQUlEIDE4MngKZGV2aWNlCQlpaXIJCSMg SW50ZWwgSW50ZWdyYXRlZCBSQUlECmRldmljZQkJaXBzCQkjIElCTSAoQWRhcHRlYykgU2Vy dmVSQUlECmRldmljZQkJbWx5CQkjIE15bGV4IEFjY2VsZVJBSUQvZVh0cmVtZVJBSUQKZGV2 aWNlCQl0d2EJCSMgM3dhcmUgOTAwMCBzZXJpZXMgUEFUQS9TQVRBIFJBSUQKCiMgUkFJRCBj b250cm9sbGVycwpkZXZpY2UJCWFhYwkJIyBBZGFwdGVjIEZTQSBSQUlECmRldmljZQkJYWFj cAkJIyBTQ1NJIHBhc3N0aHJvdWdoIGZvciBhYWMgKHJlcXVpcmVzIENBTSkKZGV2aWNlCQlp ZGEJCSMgQ29tcGFxIFNtYXJ0IFJBSUQKZGV2aWNlCQltbHgJCSMgTXlsZXggREFDOTYwIGZh bWlseQpkZXZpY2UJCXBzdAkJIyBQcm9taXNlIFN1cGVydHJhayBTWDYwMDAKZGV2aWNlCQl0 d2UJCSMgM3dhcmUgQVRBIFJBSUQKCiMgYXRrYmRjMCBjb250cm9scyBib3RoIHRoZSBrZXli b2FyZCBhbmQgdGhlIFBTLzIgbW91c2UKZGV2aWNlCQlhdGtiZGMJCSMgQVQga2V5Ym9hcmQg Y29udHJvbGxlcgpkZXZpY2UJCWF0a2JkCQkjIEFUIGtleWJvYXJkCmRldmljZQkJcHNtCQkj IFBTLzIgbW91c2UKCmRldmljZQkJdmdhCQkjIFZHQSB2aWRlbyBjYXJkIGRyaXZlcgoKZGV2 aWNlCQlzcGxhc2gJCSMgU3BsYXNoIHNjcmVlbiBhbmQgc2NyZWVuIHNhdmVyIHN1cHBvcnQK CiMgc3lzY29ucyBpcyB0aGUgZGVmYXVsdCBjb25zb2xlIGRyaXZlciwgcmVzZW1ibGluZyBh biBTQ08gY29uc29sZQpkZXZpY2UJCXNjCm9wdGlvbnMgICAgICAgICBTQ19BTFRfTU9VU0Vf SU1BR0UKb3B0aW9ucyAgICAgICAgIFNDX01PVVNFX0NIQVI9MHgzCiNvcHRpb25zICAgICAg ICBTQ19QSVhFTF9NT0RFCm9wdGlvbnMgICAgICAgICBTQ19UV09CVVRUT05fTU9VU0UKCgoj IEVuYWJsZSB0aGlzIGZvciB0aGUgcGN2dCAoVlQyMjAgY29tcGF0aWJsZSkgY29uc29sZSBk cml2ZXIKI2RldmljZQkJdnQKI29wdGlvbnMgCVhTRVJWRVIJCSMgc3VwcG9ydCBmb3IgWCBz ZXJ2ZXIgb24gYSB2dCBjb25zb2xlCiNvcHRpb25zIAlGQVRfQ1VSU09SCSMgc3RhcnQgd2l0 aCBibG9jayBjdXJzb3IKCmRldmljZQkJYWdwCQkjIHN1cHBvcnQgc2V2ZXJhbCBBR1AgY2hp cHNldHMKCiMgUG93ZXIgbWFuYWdlbWVudCBzdXBwb3J0IChzZWUgTk9URVMgZm9yIG1vcmUg b3B0aW9ucykKI2RldmljZQkJYXBtCiMgQWRkIHN1c3BlbmQvcmVzdW1lIHN1cHBvcnQgZm9y IHRoZSBpODI1NC4KZGV2aWNlCQlwbXRpbWVyCgojIFBDQ0FSRCAoUENNQ0lBKSBzdXBwb3J0 CiMgUENNQ0lBIGFuZCBjYXJkYnVzIGJyaWRnZSBzdXBwb3J0CmRldmljZQkJY2JiCQkjIGNh cmRidXMgKHllbnRhKSBicmlkZ2UKZGV2aWNlCQlwY2NhcmQJCSMgUEMgQ2FyZCAoMTYtYml0 KSBidXMKZGV2aWNlCQljYXJkYnVzCQkjIENhcmRCdXMgKDMyLWJpdCkgYnVzCgojIFNlcmlh bCAoQ09NKSBwb3J0cwpkZXZpY2UJCXNpbwkJIyA4MjUwLCAxNls0NV01MCBiYXNlZCBzZXJp YWwgcG9ydHMKCiMgUGFyYWxsZWwgcG9ydApkZXZpY2UJCXBwYwpkZXZpY2UJCXBwYnVzCQkj IFBhcmFsbGVsIHBvcnQgYnVzIChyZXF1aXJlZCkKZGV2aWNlCQlscHQJCSMgUHJpbnRlcgpk ZXZpY2UJCXBsaXAJCSMgVENQL0lQIG92ZXIgcGFyYWxsZWwKZGV2aWNlCQlwcGkJCSMgUGFy YWxsZWwgcG9ydCBpbnRlcmZhY2UgZGV2aWNlCiNkZXZpY2UJCXZwbwkJIyBSZXF1aXJlcyBz Y2J1cyBhbmQgZGEKCiMgSWYgeW91J3ZlIGdvdCBhICJkdW1iIiBzZXJpYWwgb3IgcGFyYWxs ZWwgUENJIGNhcmQgdGhhdCBpcwojIHN1cHBvcnRlZCBieSB0aGUgcHVjKDQpIGdsdWUgZHJp dmVyLCB1bmNvbW1lbnQgdGhlIGZvbGxvd2luZwojIGxpbmUgdG8gZW5hYmxlIGl0IChjb25u ZWN0cyB0byB0aGUgc2lvIGFuZC9vciBwcGMgZHJpdmVycyk6CiNkZXZpY2UJCXB1YwoKIyBQ Q0kgRXRoZXJuZXQgTklDcy4KZGV2aWNlCQlkZQkJIyBERUMvSW50ZWwgREMyMXg0eCAoYGBU dWxpcCcnKQpkZXZpY2UJCWVtCQkjIEludGVsIFBSTy8xMDAwIGFkYXB0ZXIgR2lnYWJpdCBF dGhlcm5ldCBDYXJkCmRldmljZQkJaXhnYgkJIyBJbnRlbCBQUk8vMTBHYkUgRXRoZXJuZXQg Q2FyZApkZXZpY2UJCXR4cAkJIyAzQ29tIDNjUjk5MCAoYGBUeXBob29uJycpCmRldmljZQkJ dngJCSMgM0NvbSAzYzU5MCwgM2M1OTUgKGBgVm9ydGV4JycpCgojIFBDSSBFdGhlcm5ldCBO SUNzIHRoYXQgdXNlIHRoZSBjb21tb24gTUlJIGJ1cyBjb250cm9sbGVyIGNvZGUuCiMgTk9U RTogQmUgc3VyZSB0byBrZWVwIHRoZSAnZGV2aWNlIG1paWJ1cycgbGluZSBpbiBvcmRlciB0 byB1c2UgdGhlc2UgTklDcyEKZGV2aWNlCQltaWlidXMJCSMgTUlJIGJ1cyBzdXBwb3J0CmRl dmljZQkJYmZlCQkjIEJyb2FkY29tIEJDTTQ0MHggMTAvMTAwIEV0aGVybmV0CmRldmljZQkJ YmdlCQkjIEJyb2FkY29tIEJDTTU3MHh4IEdpZ2FiaXQgRXRoZXJuZXQKZGV2aWNlCQlkYwkJ IyBERUMvSW50ZWwgMjExNDMgYW5kIHZhcmlvdXMgd29ya2FsaWtlcwpkZXZpY2UJCWZ4cAkJ IyBJbnRlbCBFdGhlckV4cHJlc3MgUFJPLzEwMEIgKDgyNTU3LCA4MjU1OCkKZGV2aWNlCQls Z2UJCSMgTGV2ZWwgMSBMWFQxMDAxIGdpZ2FiaXQgRXRoZXJuZXQKZGV2aWNlCQluZ2UJCSMg TmF0U2VtaSBEUDgzODIwIGdpZ2FiaXQgRXRoZXJuZXQKZGV2aWNlCQludmUJCSMgblZpZGlh IG5Gb3JjZSBNQ1Agb24tYm9hcmQgRXRoZXJuZXQgTmV0d29ya2luZwpkZXZpY2UJCXBjbgkJ IyBBTUQgQW03OUM5N3ggUENJIDEwLzEwMChwcmVjZWRlbmNlIG92ZXIgJ2xuYycpCmRldmlj ZQkJcmUJCSMgUmVhbFRlayA4MTM5QysvODE2OS84MTY5Uy84MTEwUwpkZXZpY2UJCXJsCQkj IFJlYWxUZWsgODEyOS84MTM5CmRldmljZQkJc2YJCSMgQWRhcHRlYyBBSUMtNjkxNSAoYGBT dGFyZmlyZScnKQpkZXZpY2UJCXNpcwkJIyBTaWxpY29uIEludGVncmF0ZWQgU3lzdGVtcyBT aVMgOTAwL1NpUyA3MDE2CmRldmljZQkJc2sJCSMgU3lzS29ubmVjdCBTSy05ODR4ICYgU0st OTgyeCBnaWdhYml0IEV0aGVybmV0CmRldmljZQkJc3RlCQkjIFN1bmRhbmNlIFNUMjAxIChE LUxpbmsgREZFLTU1MFRYKQpkZXZpY2UJCXRpCQkjIEFsdGVvbiBOZXR3b3JrcyBUaWdvbiBJ L0lJIGdpZ2FiaXQgRXRoZXJuZXQKZGV2aWNlCQl0bAkJIyBUZXhhcyBJbnN0cnVtZW50cyBU aHVuZGVyTEFOCmRldmljZQkJdHgJCSMgU01DIEV0aGVyUG93ZXIgSUkgKDgzYzE3MCBgYEVQ SUMnJykKZGV2aWNlCQl2Z2UJCSMgVklBIFZUNjEyeCBnaWdhYml0IEV0aGVybmV0CmRldmlj ZQkJdnIJCSMgVklBIFJoaW5lLCBSaGluZSBJSQpkZXZpY2UJCXdiCQkjIFdpbmJvbmQgVzg5 Qzg0MEYKZGV2aWNlCQl4bAkJIyAzQ29tIDNjOTB4IChgYEJvb21lcmFuZycnLCBgYEN5Y2xv bmUnJykKCiMgSVNBIEV0aGVybmV0IE5JQ3MuICBwY2NhcmQgTklDcyBpbmNsdWRlZC4KZGV2 aWNlCQljcwkJIyBDcnlzdGFsIFNlbWljb25kdWN0b3IgQ1M4OXgwIE5JQwojICdkZXZpY2Ug ZWQnIHJlcXVpcmVzICdkZXZpY2UgbWlpYnVzJwpkZXZpY2UJCWVkCQkjIE5FWzEyXTAwMCwg U01DIFVsdHJhLCAzYzUwMywgRFM4MzkwIGNhcmRzCmRldmljZQkJZXgJCSMgSW50ZWwgRXRo ZXJFeHByZXNzIFByby8xMCBhbmQgUHJvLzEwKwpkZXZpY2UJCWVwCQkjIEV0aGVybGluayBJ SUkgYmFzZWQgY2FyZHMKZGV2aWNlCQlmZQkJIyBGdWppdHN1IE1CODY5NnggYmFzZWQgY2Fy ZHMKZGV2aWNlCQlpZQkJIyBFdGhlckV4cHJlc3MgOC8xNiwgM0M1MDcsIFN0YXJMQU4gMTAg ZXRjLgpkZXZpY2UJCWxuYwkJIyBORTIxMDAsIE5FMzItVkwgTGFuY2UgRXRoZXJuZXQgY2Fy ZHMKZGV2aWNlCQlzbgkJIyBTTUMncyA5MDAwIHNlcmllcyBvZiBFdGhlcm5ldCBjaGlwcwpk ZXZpY2UJCXhlCQkjIFhpcmNvbSBwY2NhcmQgRXRoZXJuZXQKCiMgSVNBIGRldmljZXMgdGhh dCB1c2UgdGhlIG9sZCBJU0Egc2hpbXMKI2RldmljZQkJbGUKCiMgV2lyZWxlc3MgTklDIGNh cmRzCmRldmljZQkJd2xhbgkJIyA4MDIuMTEgc3VwcG9ydApkZXZpY2UJCWFuCQkjIEFpcm9u ZXQgNDUwMC80ODAwIDgwMi4xMSB3aXJlbGVzcyBOSUNzLgpkZXZpY2UJCWF3aQkJIyBCYXlT dGFjayA2NjAgYW5kIG90aGVycwpkZXZpY2UJCXJhbAkJIyBSYWxpbmsgVGVjaG5vbG9neSBS VDI1MDAgd2lyZWxlc3MgTklDcy4KZGV2aWNlCQl3aQkJIyBXYXZlTEFOL0ludGVyc2lsL1N5 bWJvbCA4MDIuMTEgd2lyZWxlc3MgTklDcy4KI2RldmljZQkJd2wJCSMgT2xkZXIgbm9uIDgw Mi4xMSBXYXZlbGFuIHdpcmVsZXNzIE5JQy4KCiMgUHNldWRvIGRldmljZXMuCmRldmljZQkJ bG9vcAkJIyBOZXR3b3JrIGxvb3BiYWNrCmRldmljZQkJcmFuZG9tCQkjIEVudHJvcHkgZGV2 aWNlCmRldmljZQkJZXRoZXIJCSMgRXRoZXJuZXQgc3VwcG9ydApkZXZpY2UJCXNsCQkjIEtl cm5lbCBTTElQCmRldmljZQkJcHBwCQkjIEtlcm5lbCBQUFAKZGV2aWNlCQl0dW4JCSMgUGFj a2V0IHR1bm5lbC4KZGV2aWNlCQlwdHkJCSMgUHNldWRvLXR0eXMgKHRlbG5ldCBldGMpCmRl dmljZQkJbWQJCSMgTWVtb3J5ICJkaXNrcyIKZGV2aWNlCQlnaWYJCSMgSVB2NiBhbmQgSVB2 NCB0dW5uZWxpbmcKZGV2aWNlCQlmYWl0aAkJIyBJUHY2LXRvLUlQdjQgcmVsYXlpbmcgKHRy YW5zbGF0aW9uKQoKIyBUaGUgYGJwZicgZGV2aWNlIGVuYWJsZXMgdGhlIEJlcmtlbGV5IFBh Y2tldCBGaWx0ZXIuCiMgQmUgYXdhcmUgb2YgdGhlIGFkbWluaXN0cmF0aXZlIGNvbnNlcXVl bmNlcyBvZiBlbmFibGluZyB0aGlzIQojIE5vdGUgdGhhdCAnYnBmJyBpcyByZXF1aXJlZCBm b3IgREhDUC4KZGV2aWNlCQlicGYJCSMgQmVya2VsZXkgcGFja2V0IGZpbHRlcgoKIyBVU0Ig c3VwcG9ydApkZXZpY2UJCXVoY2kJCSMgVUhDSSBQQ0ktPlVTQiBpbnRlcmZhY2UKZGV2aWNl CQlvaGNpCQkjIE9IQ0kgUENJLT5VU0IgaW50ZXJmYWNlCmRldmljZQkJZWhjaQkJIyBFSENJ IFBDSS0+VVNCIGludGVyZmFjZSAoVVNCIDIuMCkKZGV2aWNlCQl1c2IJCSMgVVNCIEJ1cyAo cmVxdWlyZWQpCiNkZXZpY2UJCXVkYnAJCSMgVVNCIERvdWJsZSBCdWxrIFBpcGUgZGV2aWNl cwpkZXZpY2UJCXVnZW4JCSMgR2VuZXJpYwpkZXZpY2UJCXVoaWQJCSMgIkh1bWFuIEludGVy ZmFjZSBEZXZpY2VzIgpkZXZpY2UJCXVrYmQJCSMgS2V5Ym9hcmQKZGV2aWNlCQl1bHB0CQkj IFByaW50ZXIKZGV2aWNlCQl1bWFzcwkJIyBEaXNrcy9NYXNzIHN0b3JhZ2UgLSBSZXF1aXJl cyBzY2J1cyBhbmQgZGEKZGV2aWNlCQl1bXMJCSMgTW91c2UKZGV2aWNlCQl1cmFsCQkjIFJh bGluayBUZWNobm9sb2d5IFJUMjUwMFVTQiB3aXJlbGVzcyBOSUNzCmRldmljZQkJdXJpbwkJ IyBEaWFtb25kIFJpbyA1MDAgTVAzIHBsYXllcgpkZXZpY2UJCXVzY2FubmVyCSMgU2Nhbm5l cnMKIyBVU0IgRXRoZXJuZXQsIHJlcXVpcmVzIG1paWJ1cwpkZXZpY2UJCWF1ZQkJIyBBRE10 ZWsgVVNCIEV0aGVybmV0CmRldmljZQkJYXhlCQkjIEFTSVggRWxlY3Ryb25pY3MgVVNCIEV0 aGVybmV0CmRldmljZQkJY2RjZQkJIyBHZW5lcmljIFVTQiBvdmVyIEV0aGVybmV0CmRldmlj ZQkJY3VlCQkjIENBVEMgVVNCIEV0aGVybmV0CmRldmljZQkJa3VlCQkjIEthd2FzYWtpIExT SSBVU0IgRXRoZXJuZXQKZGV2aWNlCQlydWUJCSMgUmVhbFRlayBSVEw4MTUwIFVTQiBFdGhl cm5ldAoKIyBGaXJlV2lyZSBzdXBwb3J0CmRldmljZQkJZmlyZXdpcmUJIyBGaXJlV2lyZSBi dXMgY29kZQpkZXZpY2UJCXNicAkJIyBTQ1NJIG92ZXIgRmlyZVdpcmUgKFJlcXVpcmVzIHNj YnVzIGFuZCBkYSkKZGV2aWNlCQlmd2UJCSMgRXRoZXJuZXQgb3ZlciBGaXJlV2lyZSAobm9u LXN0YW5kYXJkISkK ------------5A10119D24A09821 Content-Type: application/octet-stream; name=mpd Content-transfer-encoding: base64 Content-Disposition: attachment; filename=mpd IyEvYmluL3NoCiMKIyAkRnJlZUJTRDogcG9ydHMvbmV0L21wZC9maWxlcy9tcGQuc2gsdiAx LjIgMjAwNS8wMi8xNCAyMTo0Njo1NyBhcmNoaWUgRXhwICQKIwojIFBST1ZJREU6IG1wZAoj IFJFUVVJUkU6IG5ldGlmIGlzZG5kCiMgS0VZV09SRDogbm9qYWlsCgojIEFkZCB0aGUgZm9s bG93aW5nIGxpbmUgdG8gL2V0Yy9yYy5jb25mIHRvIGVuYWJsZSBtcGQ6CiMKIyBtcGRfZW5h YmxlPSJZRVMiCiMKCm1wZF9mbGFncz0iLWIiCiNtcGRfZW5hYmxlPSJOTyIKCi4gL2V0Yy9y Yy5zdWJyCgpuYW1lPW1wZApyY3Zhcj1gc2V0X3JjdmFyYAoKcHJlZml4PS91c3IvbG9jYWwK cHJvY25hbWU9JHtwcmVmaXh9L3NiaW4vbXBkCnBpZGZpbGU9L3Zhci9ydW4vbXBkLnBpZAoj cmVxdWlyZWRfZmlsZXM9IiR7cHJlZml4fS9ldGMvbXBkL21wZC5jb25mICR7cHJlZml4fS9l dGMvbXBkL21wZC5saW5rcyIKY29tbWFuZD0iJHtwcmVmaXh9L3NiaW4vbXBkIgpzdGFydF9w b3N0Y21kPSJtcGRfcG9zdGNtZCIKCm1wZF9wb3N0Y21kICgpCnsKCmVjaG8gIldhaXRpbmcg Zm9yIG5nMCB0byBiZSBjcmVhdGVkIgoKdW50aWwgaWZjb25maWcgfCBncmVwIG5nMCA+IG51 bApkbwogICAgd2FpdApkb25lCgplY2hvICJuZzAgc3VjY2Vzc2Z1bGx5IGNyZWF0ZWQiCgpp ZmNvbmZpZyBuZzAgaW5ldCA/bXkuaXAuYWRkLnJlc3M/IG5ldG1hc2sgMHhmZmZmZmZmZiA/ cHJvdi5pcC5hZGQucmVzcz8gbXR1IDE0OTIKfQoKbG9hZF9yY19jb25maWcgJHtuYW1lfQpy dW5fcmNfY29tbWFuZCAiJDEiCgo= ------------5A10119D24A09821 Content-Type: application/octet-stream; name="mpd.conf" Content-transfer-encoding: base64 Content-Disposition: attachment; filename="mpd.conf" ZGVmYXVsdDoKICAgICAgICBsb2FkIHVrcnRlbAoKdWtydGVsOgogICAgICAgIG5ldyAtaSBu ZzAgVWtydGVsX1BQUG9FIFVrcnRlbF9QUFBvRV9saW5rCglzZXQgaWZhY2UgYWRkcnMgbXku aXAuYWRkLnJlc3MgcHJvdi5pcC5hZGQucmVzcwoJc2V0IGlmYWNlIGRpc2FibGUgb24tZGVt YW5kCglzZXQgaWZhY2UgaWRsZSAwCglzZXQgaWZhY2Ugcm91dGUgZGVmYXVsdAoKICAgICAg ICBzZXQgaXBjcCB5ZXMgdmpjb21wCiAgICAgICAgc2V0IGlwY3AgcmFuZ2VzIDAuMC4wLjAv MCAwLjAuMC4wLzAKCiAgICAgICAgc2V0IGJ1bmRsZSBkaXNhYmxlIG11bHRpbGluawogICAg ICAgIHNldCBidW5kbGUgYXV0aG5hbWUgIj8/Pz8/Pz8/Pz8iCiAgICAgICAgc2V0IGJ1bmRs ZSBwYXNzd29yZCAiPz8/Pz8/Pz8/PyIKCiAgICAgICAgc2V0IGxpbmsgbm8gYWNmY29tcCBw cm90b2NvbXAKICAgICAgICBzZXQgbGluayBkaXNhYmxlIHBhcCBjaGFwCiAgICAgICAgc2V0 IGxpbmsgYWNjZXB0IGNoYXAKICAgICAgICBzZXQgbGluayBtdHUgMTQ5MgogICAgICAgIHNl dCBsaW5rIGtlZXAtYWxpdmUgMTAgNjAKICAgICAgICBvcGVuIGlmYWNlCgkJCQkJCQkJCQkJ ------------5A10119D24A09821 Content-Type: application/octet-stream; name="mpd.links" Content-transfer-encoding: base64 Content-Disposition: attachment; filename="mpd.links" VWtydGVsX1BQUG9FX2xpbms6CglzZXQgbGluayB0eXBlIHBwcG9lCglzZXQgcHBwb2UgaWZh Y2UgcmwxCglzZXQgcHBwb2Ugc2VydmljZSAiVWtydGVsZWtvbSIKCXNldCBwcHBvZSBkaXNh YmxlIGluY29taW5nCglzZXQgcHBwb2UgZW5hYmxlIG9yaWdpbmF0ZQoJCQkJCQ== ------------5A10119D24A09821 Content-Type: application/octet-stream; name="ppp.conf" Content-transfer-encoding: base64 Content-Disposition: attachment; filename="ppp.conf" IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKIyBQUFAgIFNhbXBsZSBDb25maWd1cmF0aW9uIEZpbGUKIyBPcmlnaW5h bGx5IHdyaXR0ZW4gYnkgVG9zaGloYXJ1IE9ITk8KIyBTaW1wbGlmaWVkIDUvMTQvMTk5OSBi eSB3c2VsZkBjZHJvbS5jb20KIwojIFNlZSAvdXNyL3NoYXJlL2V4YW1wbGVzL3BwcC8gZm9y IHNvbWUgZXhhbXBsZXMKIwojICRGcmVlQlNEOiBzcmMvZXRjL3BwcC9wcHAuY29uZix2IDEu MTAgMjAwNC8xMS8xOSAxNzoxMjo1NiBvYnJpZW4gRXhwICQKIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCmRlZmF1 bHQ6CiAgICBlbmFibGUgZm9yY2Utc2NyaXB0cwogICAgc2V0IGRldmljZSBQUFBvRTpybDEK ICAgIHNldCBzcGVlZCBzeW5jCiAgICBzZXQgbXJ1IDE0OTIKICAgIHNldCBtdHUgMTQ5Mgog ICAgZW5hYmxlIGxxcgogICAgc2V0IGNkIDUKICAgIHNldCBkaWFsCiAgICBzZXQgbG9naW4K ICAgIHNldCByZWRpYWwgMCAwCiMgICAgc2V0IHJlY29ubmVjdCAwIDAKICAgIHNldCB0aW1l b3V0IDAKICAgIHNldCBjdHNydHMgb2ZmCgp1a3J0ZWw6CiAgICAgIAogICAgc2V0IGF1dGhu YW1lICI/Pz8/Pz8/Pz8/IgogICAgc2V0IGF1dGhrZXkgIj8/Pz8/Pz8/PyIKCiAgICBhZGQg ZGVmYXVsdCBISVNBRERSCQkJIyBBZGQgYSAoc3RpY2t5KSBkZWZhdWx0IHJvdXRlCg== ------------5A10119D24A09821 Content-Type: application/octet-stream; name="rc.firewall" Content-transfer-encoding: base64 Content-Disposition: attachment; filename="rc.firewall" IyEvYmluL3NoIC0KIyBTdWNrIGluIHRoZSBjb25maWd1cmF0aW9uIHZhcmlhYmxlcy4KaWYg WyAteiAiJHtzb3VyY2VfcmNfY29uZnNfZGVmaW5lZH0iIF07IHRoZW4KCWlmIFsgLXIgL2V0 Yy9kZWZhdWx0cy9yYy5jb25mIF07IHRoZW4KCQkuIC9ldGMvZGVmYXVsdHMvcmMuY29uZgoJ CXNvdXJjZV9yY19jb25mcwoJZWxpZiBbIC1yIC9ldGMvcmMuY29uZiBdOyB0aGVuCgkJLiAv ZXRjL3JjLmNvbmYKCWZpCmZpCgppZiBbIC1uICIkezF9IiBdOyB0aGVuCglmaXJld2FsbF90 eXBlPSIkezF9IgpmaQoKIyMjIyMjIyMjIyMjCiMgU2V0IHF1aWV0IG1vZGUgaWYgcmVxdWVz dGVkCiMKY2FzZSAke2ZpcmV3YWxsX3F1aWV0fSBpbgpbWXldW0VlXVtTc10pCglmd2NtZD0i L3NiaW4vaXBmdyAtcSIKCTs7CiopCglmd2NtZD0iL3NiaW4vaXBmdyIKCTs7CmVzYWMKCiMj IyMjIyMjIyMjIwojIEZsdXNoIG91dCB0aGUgbGlzdCBiZWZvcmUgd2UgYmVnaW4uCiMKJHtm d2NtZH0gLWYgZmx1c2gKCmNhc2UgJHtmaXJld2FsbF90eXBlfSBpbgpbTW1dW1l5XVtTc11b SWldW01tXVtQcF1bTGxdW0VlXSkKCSMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KCSMgVGhpcyBpcyBteSBydWxlc2V0 IGZvciBpcGZ3KDgpLiAyMCBNYXJjaCAyMDA1CgkjID09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09CgoJIyBTZXQgdGhlc2Ug dG8geW91ciBvdXRzaWRlIGludGVyZmFjZSBuZXR3b3JrIGFuZCBuZXRtYXNrIGFuZCBpcAoJ b2lmPSJuZzAiCglvaXA9Im15LmlwLmFkZC5yZXNzIgoKCSMgU2V0IHRoZXNlIHRvIHlvdXIg aW5zaWRlIGludGVyZmFjZSBuZXR3b3JrIGFuZCBuZXRtYXNrIGFuZCBpcAoJaWlmPSJybDAi CglpaXA9IjE5Mi4xNjguODIuMjUzIgoJaW5ldD0iMTkyLjE2OC44Mi4wLzI0IgoJCgkjIFNl dHVwIExvb3BiYWNrCgkke2Z3Y21kfSBhZGQgMTEwIHNldCAwIHBhc3MgYWxsIGZyb20gYW55 IHRvIGFueSB2aWEgbG8wCgkke2Z3Y21kfSBhZGQgMTIwIHNldCAwIGRlbnkgYWxsIGZyb20g YW55IHRvIDEyNy4wLjAuMC84Cgkke2Z3Y21kfSBhZGQgMTMwIHNldCAwIGRlbnkgaXAgZnJv bSAxMjcuMC4wLjAvOCB0byBhbnkKCgkke2Z3Y21kfSBhZGQgMjAwIHNldCAxIGRlbnkgbG9n IGlwIGZyb20gYW55IHRvIGFueQoJCgoJJHtmd2NtZH0gYWRkIDUwMDAgc2V0IDAgc2tpcHRv IDEwMDAwIGFsbCBmcm9tIGFueSB0byBhbnkgaW4gcmVjdiAke29pZn0KCSR7ZndjbWR9IGFk ZCA1MDEwIHNldCAwIHNraXB0byAyMDAwMCBhbGwgZnJvbSBhbnkgdG8gYW55IG91dCB4bWl0 ICR7b2lmfQoJJHtmd2NtZH0gYWRkIDUwMjAgc2V0IDAgc2tpcHRvIDMwMDAwIGFsbCBmcm9t IGFueSB0byBhbnkgaW4gcmVjdiAke2lpZn0KCSR7ZndjbWR9IGFkZCA1MDMwIHNldCAwIHNr aXB0byA0MDAwMCBhbGwgZnJvbSBhbnkgdG8gYW55IG91dCB4bWl0ICR7aWlmfSAKCQoJJHtm d2NtZH0gYWRkIDUwODAgc2V0IDAgYWxsb3cgYWxsIGZyb20gYW55IHRvIGFueSB2aWEgcmwx CgoJJHtmd2NtZH0gYWRkIDUxMDAgc2V0IDAgZGVueSBsb2cgYWxsIGZyb20gYW55IHRvIGFu eQoJIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjCgkjIFByb2Nlc3MgcGFja2V0cyBpbiB2aWEgJHtvaWZ9ICMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMKCSMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIwoKCSR7ZndjbWR9IGFkZCAxMDAwMCBzZXQgMCBjb3VudCBhbGwg ZnJvbSBhbnkgdG8gYW55IGluIHJlY3YgJHtvaWZ9CgoJIyBTcG9vZmluZwoJJHtmd2NtZH0g YWRkIDEwMTAwIHNldCAwIGRlbnkgYWxsIGZyb20gYW55IHRvIDE5Mi4xNjguMC4wLzE2IGlu IHZpYSAke29pZn0KCSR7ZndjbWR9IGFkZCAxMDExMCBzZXQgMCBkZW55IGFsbCBmcm9tIDE5 Mi4xNjguMC4wLzE2IHRvIGFueSBpbiB2aWEgJHtvaWZ9CgoJIyBSZXNldCBpZGVudCBpbmNv bWluZyBjb25uZWN0aW9ucwoJJHtmd2NtZH0gYWRkIDEwMjAwIHNldCAwIGRlbnkgbG9nIHRj cCBmcm9tIGFueSB0byBtZSAxMTMgaW4gcmVjdiAke29pZn0gc2V0dXAKCgkjIERlbnkgJiBs b2cgc3VzcGljaW91cyBwYWNrZXRzIChsaWtlIG5tYXAgc2NhbnMpCgkke2Z3Y21kfSBhZGQg MTAyMTAgc2V0IDAgZGVueSBsb2cgdGNwIGZyb20gYW55IHRvIGFueSBpbiB0Y3BmbGFncyBz eW4sZmluCgoJIyBIZXJlIGNvbWVzIE5BVCAqKioqKioqKioqKioqKioqKioqKioqKioKCSR7 ZndjbWR9IGFkZCAxNTAwMCBzZXQgMCBkaXZlcnQgbmF0ZCBhbGwgZnJvbSBhbnkgdG8gbWUg aW4gdmlhICR7b2lmfQoJIyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioKCQoJIyBIZXJlIGNvbWUgdGhlIGR5bmFtaWMgcnVsZXMKCSMgTk9URTogY2hlY2stc3Rh dGUgaGVyZSB3aWxsIGFsc28gcHJvY2VzcyBydWxlcyBjcmVhdGVkIGJ5CgkjIGtlZXAtc3Rh dGUgZnJvbSAiaW4gcmVjdiAke2lpZn0iICEKCSR7ZndjbWR9IGFkZCAxNjAwMCBzZXQgMCBj aGVjay1zdGF0ZQoJJHtmd2NtZH0gYWRkIDE2MDEwIHNldCAwIGRlbnkgdGNwIGZyb20gYW55 IHRvIG1lIGVzdGFibGlzaGVkCgoJIyBOT1RFOiAgbGltaXQgc3JjLWFkZHIgZHN0LWFkZHIg TiAgaXMgZm9yIERvUyBwcm90ZWN0aW9uCgkjIEFsbG93IGFjY2VzcyB0byBvdXIgRlRQICgy MCwyMSksIFNTSCAoMjIpLCBTTVRQICgyNSksIEROUyAoNTMpLCBQT1AzLXNzbCAoOTk1KQoJ JHtmd2NtZH0gc2V0IGRpc2FibGUgMTEKCSR7ZndjbWR9IGFkZCAxNjEwMCBzZXQgMTEgcGFz cyB0Y3AgZnJvbSBhbnkgdG8gbWUgMjAsMjEgaW4gcmVjdiAke29pZn0gc2V0dXAgbGltaXQg c3JjLWFkZHIgNAoJJHtmd2NtZH0gYWRkIDE2MjAwIHNldCAxMiBwYXNzIHRjcCBmcm9tIGFu eSB0byBtZSAyMiBpbiByZWN2ICR7b2lmfSBzZXR1cCBsaW1pdCBzcmMtYWRkciA0Cgkke2Z3 Y21kfSBhZGQgMTYzMDAgc2V0IDEzIHBhc3MgdGNwIGZyb20gYW55IHRvIG1lIDI1IGluIHJl Y3YgJHtvaWZ9IHNldHVwIGtlZXAtc3RhdGUKCSR7ZndjbWR9IGFkZCAxNjQwMCBzZXQgMTQg cGFzcyB0Y3AgZnJvbSBhbnkgdG8gbWUgNTMgaW4gcmVjdiAke29pZn0gc2V0dXAga2VlcC1z dGF0ZQoJJHtmd2NtZH0gYWRkIDE2NTAwIHNldCAxNSBwYXNzIHRjcCBmcm9tIGFueSB0byBt ZSA5OTUgaW4gcmVjdiAke29pZn0gc2V0dXAgbGltaXQgc3JjLWFkZHIgNAoJJHtmd2NtZH0g YWRkIDE2NjAwIHNldCAxNiBwYXNzIHVkcCBmcm9tIGFueSB0byBtZSA1MyBpbiByZWN2ICR7 b2lmfSBrZWVwLXN0YXRlCgoJIyBBbGxvdyBzb21lIGljbXAKCSMgZWNobyByZXBseSAoMCks IGRlc3RpbmF0aW9uIHVucmVhY2hhYmxlICgzKSwgc291cmNlIHF1ZW5jaCAoNCksIGVjaG8g cmVxdWVzdCAKCSMgKDgpLCB0aW1lLXRvLWxpdmUgZXhjZWVkZWQgKDExKSwgSVAgaGVhZGVy IGJhZCAoMTIpCgkjJHtmd2NtZH0gYWRkIDE3MTAwIHNldCAwIHBhc3MgaWNtcCBmcm9tIGFu eSB0byBhbnkgaWNtcHR5cGUgMCwzLDQsOCwxMSwxMgoJIyR7ZndjbWR9IGFkZCAxNzEwMSBz ZXQgMCBkZW55IGljbXAgZnJvbSBhbnkgdG8gYW55Cgkke2Z3Y21kfSBhZGQgMTcxMDAgc2V0 IDAgcGFzcyBpY21wIGZyb20gYW55IHRvIGFueQoKCSMgQWxsb3cgSVAgZnJhZ21lbnRzIHRv IHBhc3MgdGhyb3VnaAoJJHtmd2NtZH0gYWRkIDE3MjAwIHNldCAwIHBhc3MgYWxsIGZyb20g YW55IHRvIGFueSBmcmFnCgoJIyBBbmQgZW5vdWdoCgkke2Z3Y21kfSBhZGQgMTkwMDAgc2V0 IDAgc2tpcHRvIDY1MDAwIGFsbCBmcm9tIGFueSB0byBhbnkgaW4gcmVjdiAke29pZn0KCgkj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMKCSMgUHJvY2VzcyBwYWNrZXRzIG91dCB2aWEgJHtvaWZ9ICMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIwoJIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjCgoJJHtmd2NtZH0gYWRkIDIwMDAwIHNldCAwIGNvdW50IGFsbCBmcm9t IGFueSB0byBhbnkgb3V0IHhtaXQgJHtvaWZ9CgoJIyBTcG9vZmluZwoJJHtmd2NtZH0gYWRk IDIwMTAwIHNldCAwIGRlbnkgYWxsIGZyb20gYW55IHRvIDE5Mi4xNjguMC4wLzE2IG91dCB4 bWl0ICR7b2lmfQoKCgkjIEhlcmUgY29tZXMgTkFUKioqKioqKioqKioqKioqKioqKioKCSR7 ZndjbWR9IGFkZCAyNTAwMCBzZXQgMCBkaXZlcnQgbmF0ZCBhbGwgZnJvbSAke2luZXR9IHRv IGFueSBvdXQgeG1pdCAke29pZn0KCSMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKgoJCgkjIE5PVEU6IGNoZWNrLXN0YXRlIGhlcmUgZG9lcyBub3RoaW5nLgoJIyBrZWVw LXN0YXRlIGlzIG9ubHkgZm9yIE1FLiBMb2NhbCBuZXQgd2lsbCBub3QgdXNlIGNyZWF0ZWQg cnVsZXMuCgkke2Z3Y21kfSBhZGQgMjYwMDAgc2V0IDAgY2hlY2stc3RhdGUKCSR7ZndjbWR9 IGFkZCAyNjEwMCBzZXQgMCBhbGxvdyB0Y3AgZnJvbSBtZSB0byBhbnkgb3V0IHhtaXQgJHtv aWZ9IGtlZXAtc3RhdGUKCSR7ZndjbWR9IGFkZCAyNjIwMCBzZXQgMCBhbGxvdyB1ZHAgZnJv bSBtZSB0byBhbnkgb3V0IHhtaXQgJHtvaWZ9IGtlZXAtc3RhdGUKCgkjIEFsbG93IHNvbWUg aWNtcAoJIyBlY2hvIHJlcGx5ICgwKSwgZGVzdGluYXRpb24gdW5yZWFjaGFibGUgKDMpLCBz b3VyY2UgcXVlbmNoICg0KSwgZWNobyByZXF1ZXN0IAoJIyAoOCksIHRpbWUtdG8tbGl2ZSBl eGNlZWRlZCAoMTEpLCBJUCBoZWFkZXIgYmFkICgxMikKCSMke2Z3Y21kfSBhZGQgMjYzMDAg c2V0IDAgcGFzcyBpY21wIGZyb20gYW55IHRvIGFueSBpY21wdHlwZSAwLDMsNCw4LDExLDEy CgkjJHtmd2NtZH0gYWRkIDI2MzAxIHNldCAwIGRlbnkgaWNtcCBmcm9tIGFueSB0byBhbnkK CSR7ZndjbWR9IGFkZCAyNjMwMCBzZXQgMCBwYXNzIGljbXAgZnJvbSBhbnkgdG8gYW55CgoJ IyBBbGxvdyBJUCBmcmFnbWVudHMgdG8gcGFzcyB0aHJvdWdoCgkke2Z3Y21kfSBhZGQgMjY0 MDAgc2V0IDAgcGFzcyBhbGwgZnJvbSBhbnkgdG8gYW55IGZyYWcKCQoJIyBFbm91Z2gKCSR7 ZndjbWR9IGFkZCAyOTAwMCBzZXQgMCBza2lwdG8gNjUwMDAgYWxsIGZyb20gYW55IHRvIGFu eSBvdXQgeG1pdCAke29pZn0KCgkjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCSMgUHJvY2VzcyBwYWNrZXRzIGluIHZpYSAke2lp Zn0gIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoJIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgoKCSR7ZndjbWR9IGFkZCAzMDAw MCBzZXQgMCBjb3VudCBhbGwgZnJvbSBhbnkgdG8gYW55IGluIHJlY3YgJHtpaWZ9CgoJJHtm d2NtZH0gYWRkIDM1MDAwIHNldCAwIGNoZWNrLXN0YXRlCgkke2Z3Y21kfSBhZGQgMzUxMDAg c2V0IDAgZGVueSB0Y3AgZnJvbSBhbnkgdG8gbWUgZXN0YWJsaXNoZWQgaW4gcmVjdiAke2lp Zn0KCSR7ZndjbWR9IGFkZCAzNTIwMCBzZXQgMCBhbGxvdyB0Y3AgZnJvbSAke2luZXR9IHRv IGFueSBpbiByZWN2ICR7aWlmfSBzZXR1cCBrZWVwLXN0YXRlCgkke2Z3Y21kfSBhZGQgMzUz MDAgc2V0IDAgYWxsb3cgdWRwIGZyb20gJHtpbmV0fSB0byBhbnkgaW4gcmVjdiAke2lpZn0g a2VlcC1zdGF0ZQoKCSMgQWxsb3cgc29tZSBpY21wCgkjIGVjaG8gcmVwbHkgKDApLCBkZXN0 aW5hdGlvbiB1bnJlYWNoYWJsZSAoMyksIHNvdXJjZSBxdWVuY2ggKDQpLCBlY2hvIHJlcXVl c3QgCgkjICg4KSwgdGltZS10by1saXZlIGV4Y2VlZGVkICgxMSksIElQIGhlYWRlciBiYWQg KDEyKQoJIyR7ZndjbWR9IGFkZCAzNjAwMCBzZXQgMCBwYXNzIGljbXAgZnJvbSBhbnkgdG8g YW55IGljbXB0eXBlIDAsMyw0LDgsMTEsMTIKCSMke2Z3Y21kfSBhZGQgMzYwMDEgc2V0IDAg ZGVueSBpY21wIGZyb20gYW55IHRvIGFueQoJJHtmd2NtZH0gYWRkIDM2MDAwIHNldCAwIHBh c3MgaWNtcCBmcm9tIGFueSB0byBhbnkKCgkjIEFsbG93IElQIGZyYWdtZW50cyB0byBwYXNz IHRocm91Z2gKCSR7ZndjbWR9IGFkZCAzNjEwMCBzZXQgMCBwYXNzIGFsbCBmcm9tIGFueSB0 byBhbnkgZnJhZwoKCSMgRW5vdWdoCgkke2Z3Y21kfSBhZGQgMzkwMDAgc2V0IDAgc2tpcHRv IDY1MDAwIGFsbCBmcm9tIGFueSB0byBhbnkgaW4gcmVjdiAke2lpZn0KCgkjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKCSMgUHJv Y2VzcyBwYWNrZXRzIG91dCB2aWEgJHtpaWZ9ICMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoJ IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMj IyMjCgoJJHtmd2NtZH0gYWRkIDQwMDAwIHNldCAwIGNvdW50IGFsbCBmcm9tIGFueSB0byBh bnkgb3V0IHhtaXQgJHtpaWZ9CgoJIyBOT1RFOiBvbmx5IHBhY2tldHMgZnJvbSBNRSBoYXZl IG5vIGR5bmFtaWNseSBmb3JtZWQgcnVsZXMgbm93CgoJJHtmd2NtZH0gYWRkIDQ1MDAwIHNl dCAwIGNoZWNrLXN0YXRlCgkke2Z3Y21kfSBhZGQgNDUxMDAgc2V0IDAgYWxsb3cgdGNwIGZy b20gbWUgdG8gYW55IGtlZXAtc3RhdGUKCSR7ZndjbWR9IGFkZCA0NTIwMCBzZXQgMCBhbGxv dyB1ZHAgZnJvbSBtZSB0byBhbnkga2VlcC1zdGF0ZQoJJHtmd2NtZH0gYWRkIDQ1MjUwIHNl dCAwIGFsbG93IGFsbCBmcm9tIGFueSB0byAke2VtdWxlfQoKCSR7ZndjbWR9IGFkZCA0NTMw MCBzZXQgMCBhbGxvdyBhbGwgZnJvbSAxOTIuMTY4LjAuMC8xNiB0byAke2luZXR9IGtlZXAt c3RhdGUKCQoKCSMgQ2xpZW50LWJhbmsuIE5vIHNlbnNlLiBNYWtlIGl0IGNsZWFyLgoJIyR7 ZndjbWR9IGFkZCA0NzMwMCBzZXQgMzAgYWxsb3cgbG9nIHRjcCBmcm9tIGFueSAyMCB0byAk e2luZXR9CgkjIEFuZCB0aGlzIG9uZSBpcyBvbiBwYXNzaXZlIG1vZGU/IFBhY2tldHMgY29t ZSBmcm9tIHBvcnRzIDMwMDAwKwoJIyR7ZndjbWR9IGFkZCA0NzMxMCBzZXQgMzAgYWxsb3cg bG9nIHRjcCBmcm9tIDgwLjI0OS4yMjUuMTEwIHRvICR7aW5ldH0KCgkjIEFsbG93IHNvbWUg aWNtcAoJIyBlY2hvIHJlcGx5ICgwKSwgZGVzdGluYXRpb24gdW5yZWFjaGFibGUgKDMpLCBz b3VyY2UgcXVlbmNoICg0KSwgZWNobyByZXF1ZXN0IAoJIyAoOCksIHRpbWUtdG8tbGl2ZSBl eGNlZWRlZCAoMTEpLCBJUCBoZWFkZXIgYmFkICgxMikKCSMke2Z3Y21kfSBhZGQgNDgwMDAg c2V0IDAgcGFzcyBpY21wIGZyb20gYW55IHRvIGFueSBpY21wdHlwZSAwLDMsNCw4LDExLDEy CgkjJHtmd2NtZH0gYWRkIDQ4MDAxIHNldCAwIGRlbnkgaWNtcCBmcm9tIGFueSB0byBhbnkK CSR7ZndjbWR9IGFkZCA0ODAwMCBzZXQgMCBwYXNzIGljbXAgZnJvbSBhbnkgdG8gYW55CgoJ IyBBbGxvdyBJUCBmcmFnbWVudHMgdG8gcGFzcyB0aHJvdWdoCgkke2Z3Y21kfSBhZGQgNDgx MDAgc2V0IDAgcGFzcyBhbGwgZnJvbSBhbnkgdG8gYW55IGZyYWcKCgkjIyMjIyMjIyMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwoJIyBUaGF0J3Mg YWxsLCBmb2xrcyBkZW55IGFuZCBsb2cgZXZlcnl0aGluZyAjIyMjIyMjIyMjIyMKCSMjIyMj IyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjCgkj IFJlamVjdCAmIGxvZyBhbGwgb3RoZXIgdWRwIGNvbm5lY3Rpb25zCgkke2Z3Y21kfSBhZGQg NjUwMDAgc2V0IDUgZGVueSBsb2cgdWRwIGZyb20gYW55IHRvIGFueQoKCSMgUmVqZWN0ICYg bG9nIGV2ZXJ5dGhpbmcgZWxzZQoJJHtmd2NtZH0gYWRkIDY1MTAwIHNldCA1IGRlbnkgbG9n IGFsbCBmcm9tIGFueSB0byBhbnkKCgkjIERpc2FibGUgcnVsZSAyMDAsIG9wZW4gZmlyZXdh bGwgZm9yIHdvcmsKCSR7ZndjbWR9IHNldCBkaXNhYmxlIDEKCSM9PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 Cgk7OwoJCiopCglpZiBbIC1yICIke2ZpcmV3YWxsX3R5cGV9IiBdOyB0aGVuCgkJJHtmd2Nt ZH0gJHtmaXJld2FsbF9mbGFnc30gJHtmaXJld2FsbF90eXBlfQoJZmkKCTs7CmVzYWMK ------------5A10119D24A09821--