From owner-freebsd-net@FreeBSD.ORG Fri Mar 12 04:59:47 2010 Return-Path: Delivered-To: freebsd-net@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 21003106566C; Fri, 12 Mar 2010 04:59:47 +0000 (UTC) (envelope-from dhorn2000@gmail.com) Received: from mail-fx0-f209.google.com (mail-fx0-f209.google.com [209.85.220.209]) by mx1.freebsd.org (Postfix) with ESMTP id 03B8F8FC20; Fri, 12 Mar 2010 04:59:45 +0000 (UTC) Received: by fxm1 with SMTP id 1so142962fxm.13 for ; Thu, 11 Mar 2010 20:59:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:cc:content-type; bh=UfzzI8KpY8YJ3TVNm9HrXjH/P7Fs/zwUTicSpBKnyW8=; b=EkazdndZE4AGKl6R6Uae/dNOp6clRk2wLuO9OgPA3RGFl1R0dhvZvs8OFugYAj499j RR10w0bBAXRPvkO7tNeLALBhkLEYIlho4Gt2nncE6W1WWKjddkWFU7F42JbiZxK/RmWn BLqbahE4QHYItyfzszQFsKaxTmz78xoKNxJcw= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; b=wnE6X4MTYZDx7mnW60ccgctXeumc7HT9MfUPnnjmgcPGvivJrPXlM2oLMiZo16xxGH bLVE+KkOjH849pI6MI7xPoYRmt+WMGpXMSEBwxv2JamuGDR0qMFgk5QGbTGQjsNUaT6N N/qHRnpMcVBrcqjJkfP379CVFtg1QhXqugsgw= MIME-Version: 1.0 Received: by 10.239.189.12 with SMTP id r12mr427628hbh.94.1268369984675; Thu, 11 Mar 2010 20:59:44 -0800 (PST) In-Reply-To: <25ff90d61003110809s4cc775e9r2ff6ebee151be6f6@mail.gmail.com> References: <4B945AA7.6070000@FreeBSD.org> <20100309.072719.200228546.hrs@allbsd.org> <25ff90d61003082037v3519995bx7e119e9d14143db4@mail.gmail.com> <20100309.135917.161082188.hrs@allbsd.org> <25ff90d61003110809s4cc775e9r2ff6ebee151be6f6@mail.gmail.com> Date: Thu, 11 Mar 2010 23:59:44 -0500 Message-ID: <25ff90d61003112059r2648543bn812468893fc3b19@mail.gmail.com> From: David Horn To: Hiroki Sato Content-Type: multipart/mixed; boundary=001485f630826160b6048193660e Cc: freebsd-net@freebsd.org, dougb@freebsd.org, freebsd-rc@freebsd.org Subject: Re: Un-obsolete'ing ipv6_enable X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 12 Mar 2010 04:59:47 -0000 --001485f630826160b6048193660e Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable for brevity sake >> dh> Question 2) Assuming that people do desire consistency with allowing >> dh> for both a global, and a per-interface setting, do you agree with >> dh> having a global default for DHCPv4 (dhcpv4_default_enable), and for >> dh> IPv6 slaac/accept_rtadv =A0(ipv6-slaac_default_enable), and the >> dh> per-interface DHCPv4 (ifconfig_IF0=3D"dhcp") aka a meta configuratio= n >> dh> variable, and a per-interface IPv6 slaac (ifconfig_IF0=3D"slaac") ak= a a >> dh> meta configuration variable. >> >> =A0I think the global configuration can be realized by setting something >> =A0like ifconfig_DEFAULT_=3D"AUTO" instead of adding a new global >> =A0knobs. > > Yes, that is certainly one method that can work. > > I will put together two review versions of a diff. =A0One with backward > compatible logic included (at least for the ipv6_enable YES/NO cases, > and the ipv6_ifconfig_IF syntax ), and one with the backwards compat > code removed to further this discussion. > OK, now I am certain I have looked at this far too long at the moment, but here is a stab at a working diff (actually as promised, two diffs against -current, one without backwards compatibility logic). Background: Historically (8.0-RELEASE and prior), there was a global rc.conf knob for ipv6 (ipv6_enable, default=3D"NO") that performed several functions: a) Enabled (or disabled) ipv6 link-local address for every interface (auto_linklocal AND -ifdisabled) b) Enabled (or disabled) ipv6 SLAAC by default for every interface by setting the global net.inet6.ip6.accept_rtadv=3D1 sysctl c) inherently specified utilization of a ipv6 address (AAAA) over an ipv4 address (A) when both were available from a dns query when using getaddrinfo() d) Others I can not think of at the moment ? As well, there has always been a per-interface variable for IPv4 dhcp (The pseudo-variable of "dhcp" on an ifconfig_IF rc.conf line), but no global knob. Now, I propose two new global variables: ipv6_slaac_default_enable, ipv4_dhcp_default_enable and several new/updated per-interface pseudo variables: auto, noauto, accept_rtadv, -accept_rtadv, slaac, noslaac, dhcp, nodhcp Changelist: 1) New or updated global knob for interface configuration: ipv6_enable {global} =3D UNDEFINED/YES/NO, Default=3DUNDEFINED Old, depreciated knob for several ipv6 functions listed above (only in backwards compatible version) Takes precedence over per-interface setting (if it exists) ipv4_dhcp_default_enable {global} =3D YES/NO, Default=3DNO New, global knob for enabling any interface for dhcp by default that does not have a per-interface configuration over-ride. ipv6_slaac_default_enable {global} =3D YES/NO, Default=3DNO New, global knob for enabling any interface for ipv6 slaac by default that does not have a per-interface configuration over-ride. ipv6_prefer {global} =3D YES/NO, Default=3DNO Removed overloading of ipv6_prefer to no longer mean default to enable interface for ipv6 (-ifdisabled). This global variable now just effects rc.d/ip6addrctl behavior. Under seperate cover, I am proposing changing ipv6_prefer behavior to a more useful autoconfigured default (if it can be done reliably) to eliminate the need for the user to need to specify ipv6_prefer at all in most cases. (Check for global ipv6 address assigned to an up interface) TBD. Stay tuned... 2) New or updated interface specific pseudo-variables for ifconfig_IF and/or ifconfig_IF_ipv6: auto {interface-specific} =3D enable both IPv4 DHCP and IPv6 SLAAC noauto {interface-specific} =3D no automatic boot-time configuration - only slightly extended, as this already existed accept_rtadv {interface-specific} =3D enable SLACC via ipv6 router advertisement Note: Also an ifconfig IF inet6 parameter -accept_rtadv {interface-specific} =3D disable SLAAC/ACCEPT_RTADV for that interface Note: Also an ifconfig IF inet6 parameter slaac {interface-specific} =3D ALIAS for accept_rtadv, enable SLAAC via ipv6 router advertisement noslaac {interface-specific} =3D ALIAS for -accept_rtadv, disable SLAAC/ACCEPT_RTADV for that interface Note: Only really needed if global ipv6_slaac_default_enable knob is on dhcp {interface-specific} =3D enable IPv4 DHCP - No change, just listed for completeness sake nodhcp {interface-specific} =3D disable IPv4 DHCP Note: Only really needed if global ipv4_dhcp_default_enable knob is on 3) On Backwards compatible version: ipv6_enable is UNDEFINED by default. If the user has ipv6_enable=3D"NO" defined, this will now DISABLE ipv6 everywhere (just like it used to) If the user has ipv6_enable=3D"YES" define, this will now ENABLE ipv6 everywhere (just like it used to) 4) Misc changes/fixes: Changed ifconfig_up() to use ipv6_autoconfif() rather than re-checking some values for itself, and now allow ifconfig_em0_ipv6=3D"inet6 2001:db8::1" to work with AND without user-specified "inet6", as it used to be implied, and most recently was required, and is now optional. Changed ifalias_ipv6_[up|down]() to allow with and without user specified "inet6", and to use the ifconfig_IF_ipv6_aliasX not ifconfig_IF_aliasX, I can revert this change, but then the "inet6" component would be required. After thinking about this, it is a toss up. Change ipv6_network_interfaces to default to "AUTO" just like network_interfaces (consistency is the theme) I am perfectly happy with renaming any of these variable/pseudo variable names to any consensus approved names, or adding/removing aliases, etc. No bikesheds allowed. ;) If anyone requires, I guess I could remove the backwards compatible logic, but add a new global variable for people that want all interfaces disabled for ipv6 completely. As well, I am open to looking at the ifconfig_DEFAULT / ifconfig_DEFAULT_ipv6 syntax rather than adding ipv6_slaac_default_enable and ipv4_dhcp_default_enable global knobs if consensus concurs, but I think the FOO_enable syntax is probably more desirable. The only thing I am really shooting for is a consistant set of knobs and behaviors (as much as is sensible), and to allow a less complicated configuration set for ipv6 rc.conf moving forward. Once there is consensus, I will take a stab at updating the man page for rc.conf as well. Examples: Example 1: enable IPv4 dhcp, and IPv6 slaac on the em0 interface (which happens to be the only interface): In 8.0-RELEASE this would be: ifconfig_em0=3D"dhcp" ipv6_enable=3D"YES" Would now be any of the following (all four are functionally identical): ifconfig_em0=3D"auto" or ifconfig_em0=3D"dhcp slaac" or ifconfig_em0=3D"dhcp" ifconfig_em0_ipv6=3D"slaac" or ifconfig_em0=3D"dhcp accept_rtadv" As well, in the backwards compatible version: ifconfig_em0=3D"dhcp" ipv6_enable=3D"YES" will still work. Example 2: (wlan0)- enable IPv4 dhcp, and IPv6 link-local without slaac (bfe0)- disable IPv4 dhcp, and enable IPv6 slaac (bfe1)- disable IPv4 dhcp, and enable IPv6 static eui64 (bfe2)- enable IPv4 static with no IPv6 link-local In 8.0-RELEASE this would be not possible to disable ipv6 slaac on a per-interface basis, so would require a custom startup script using ndp to disable. The rest of the configuration would be: wlans_iwn0=3D"wlan0" ifconfig_wlan0=3D"wpa dhcp" ifconfig_bfe0=3D"up" ipv6_ifconfig_bfe1=3D"2001:db8:1:: eui64" ifconfig_bfe2=3D"inet 192.168.1.50 netmask 255.255.255.0" ipv6_enable=3D"YES" ndp script would be something like: ndp -i wlan0 nud -accept_rtadv ndp -i bfe2 disabled Would now be: wlans_iwn0=3D"wlan0" ifconfig_wlan0=3D"wpa dhcp" ifconfig_bfe0=3D"slaac" ifconfig_bfe1_ipv6=3D"2001:db8:1:: eui64" ifconfig_bfe2=3D"inet 192.168.1.50 netmask 255.255.255.0" ifconfig_bfe2_ipv6=3D"ifdisabled" I am still trying to track down one bug I have found in my testing (related to ifconfig and eui64 when no link-local address has yet been assigned to a down interface), and am still attempting to grok the $_cfg usage in ifconfig_up(), and I still have several more test cases to complete, but give it a spin (or read if you prefer), and let me know if I have gone horribly off track. As such, this is a work in progress. Comments welcome. --Thanks! --Dave Horn --001485f630826160b6048193660e Content-Type: text/plain; charset=US-ASCII; name="ipv6-network.backcompat.diff.txt" Content-Disposition: attachment; filename="ipv6-network.backcompat.diff.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g6oikhn20 SW5kZXg6IGV0Yy9uZXR3b3JrLnN1YnIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZXRjL25ldHdvcmsuc3Vicgko cmV2aXNpb24gMjA1MDE5KQorKysgZXRjL25ldHdvcmsuc3Vicgkod29ya2luZyBjb3B5KQpAQCAt OTYsNDUgKzk2LDQ3IEBACiAJIyBpbmV0NiBzcGVjaWZpYwogCWlmIGFmZXhpc3RzIGluZXQ2OyB0 aGVuCiAJCWlmIGlwdjZpZiAkMTsgdGhlbgotCQkJaWYgY2hlY2t5ZXNubyBpcHY2X2dhdGV3YXlf ZW5hYmxlOyB0aGVuCisJCQlpZiBpcHY2X2F1dG9jb25maWYgJDE7IHRoZW4KKwkJCQlfaXB2Nl9v cHRzPSJhY2NlcHRfcnRhZHYiCisJCQllbHNlCiAJCQkJX2lwdjZfb3B0cz0iLWFjY2VwdF9ydGFk diIKIAkJCWZpCi0JCWVsc2UKLQkJCWlmIGNoZWNreWVzbm8gaXB2Nl9wcmVmZXI7IHRoZW4KLQkJ CQlfaXB2Nl9vcHRzPSItaWZkaXNhYmxlZCIKLQkJCWVsc2UKLQkJCQlfaXB2Nl9vcHRzPSJpZmRp c2FibGVkIgorCisJCQkjIGlmY29uZmlnX0lGX2lwdjYKKwkJCWlmY29uZmlnX2FyZ3M9YGlmY29u ZmlnX2dldGFyZ3MgJDEgaXB2NmAKKwkJCWlmIFsgLW4gIiR7aWZjb25maWdfYXJnc30iIF07IHRo ZW4KKwkJCQlpZmNvbmZpZyAkMSBpbmV0NiAtaWZkaXNhYmxlZAorCQkJCSMgQmUgbmljZSB0byB1 c2VycyAob3B0aW9uYWwgaW5ldDYpCisJCQkJY2FzZSAke2lmY29uZmlnX2FyZ3N9IGluCisJCQkJ CWluZXQ2XCAqKQorCQkJCQkJaWZjb25maWcgJDEgJHtpZmNvbmZpZ19hcmdzfQorCQkJCQkJOzsK KwkJCQkJKikKKwkJCQkJCWlmY29uZmlnICQxIGluZXQ2IFwKKwkJCQkJCSAke2lmY29uZmlnX2Fy Z3N9CisJCQkJCQk7OworCQkJCWVzYWMKKwkJCQlfY2ZnPTAKIAkJCWZpCiAKLQkJCSMgYmFja3dh cmQgY29tcGF0aWJpbGl0eTogJGlwdjZfZW5hYmxlCi0JCQljYXNlICRpcHY2X2VuYWJsZSBpbgot CQkJW1l5XVtFZV1bU3NdKQotCQkJCV9pcHY2X29wdHM9IiR7X2lwdjZfb3B0c30gYWNjZXB0X3J0 YWR2IgotCQkJCTs7Ci0JCQllc2FjCisJCQkjIGJhY2t3YXJkIGNvbXBhdGlibGl0eTogJGlwdjZf aWZjb25maWdfSUYKKwkJCWlmY29uZmlnX2FyZ3M9YGdldF9pZl92YXIgJDEgaXB2Nl9pZmNvbmZp Z19JRmAKKwkJCWlmIFsgLW4gIiR7aWZjb25maWdfYXJnc30iIF07IHRoZW4KKwkJCQl3YXJuICJc JGlwdjZfaWZjb25maWdfJDEgaXMgb2Jzb2xldGUuIiBcCisJCQkJICAgICIgIFVzZSBpZmNvbmZp Z18kMV9pcHY2IGluc3RlYWQuIgorCQkJCWlmY29uZmlnICQxIGluZXQ2IC1pZmRpc2FibGVkCisJ CQkJaWZjb25maWcgJDEgaW5ldDYgJHtpZmNvbmZpZ19hcmdzfQorCQkJCV9jZmc9MAorCQkJZmkK KworCQllbHNlCisJCQlfaXB2Nl9vcHRzPSJpZmRpc2FibGVkIgogCQlmaQogCiAJCWlmIFsgLW4g IiR7X2lwdjZfb3B0c30iIF07IHRoZW4KIAkJCWlmY29uZmlnICQxIGluZXQ2ICR7X2lwdjZfb3B0 c30KIAkJZmkKLQotCQkjIGlmY29uZmlnX0lGX2lwdjYKLQkJaWZjb25maWdfYXJncz1gaWZjb25m aWdfZ2V0YXJncyAkMSBpcHY2YAotCQlpZiBbIC1uICIke2lmY29uZmlnX2FyZ3N9IiBdOyB0aGVu Ci0JCQlpZmNvbmZpZyAkMSBpbmV0NiAtaWZkaXNhYmxlZAotCQkJaWZjb25maWcgJDEgJHtpZmNv bmZpZ19hcmdzfQotCQkJX2NmZz0wCi0JCWZpCi0KLQkJIyBiYWNrd2FyZCBjb21wYXRpYmxpdHk6 ICRpcHY2X2lmY29uZmlnX0lGCi0JCWlmY29uZmlnX2FyZ3M9YGdldF9pZl92YXIgJDEgaXB2Nl9p ZmNvbmZpZ19JRmAKLQkJaWYgWyAtbiAiJHtpZmNvbmZpZ19hcmdzfSIgXTsgdGhlbgotCQkJd2Fy biAiXCRpcHY2X2lmY29uZmlnXyQxIGlzIG9ic29sZXRlLiIgXAotCQkJICAgICIgIFVzZSBpZmNv bmZpZ18kMV9pcHY2IGluc3RlYWQuIgotCQkJaWZjb25maWcgJDEgaW5ldDYgLWlmZGlzYWJsZWQK LQkJCWlmY29uZmlnICQxIGluZXQ2ICR7aWZjb25maWdfYXJnc30KLQkJCV9jZmc9MAotCQlmaQor CQkKIAlmaQogCiAJaWYgWyAke19jZmd9IC1lcSAwIF07IHRoZW4KQEAgLTI0NCwxMSArMjQ2LDE3 IEBACiAKIAlmb3IgX2FyZyBpbiAkX3RtcGFyZ3M7IGRvCiAJCWNhc2UgJF9hcmcgaW4KKwkJW0Fh XVtVdV1bVHRdW09vXSkgOzsKKwkJW0FhXVtDY11bQ2NdW0VlXVtQcF1bVHRdX1tScl1bVHRdW0Fh XVtEZF1bVnZdKSA7OwogCQlbRGRdW0hoXVtDY11bUHBdKSA7OwogCQlbTm5dW09vXVtBYV1bVXVd W1R0XVtPb10pIDs7CisJCVtObl1bT29dW0RkXVtIaF1bQ2NdW1BwXSkgOzsKKwkJW05uXVtPb11b U3NdW0xsXVtBYV1bQWFdW0NjXSkgOzsKIAkJW05uXVtPb11bU3NdW1l5XVtObl1bQ2NdW0RkXVtI aF1bQ2NdW1BwXSkgOzsKIAkJW1NzXVtZeV1bTm5dW0NjXVtEZF1bSGhdW0NjXVtQcF0pIDs7CisJ CVtTc11bTGxdW0FhXVtBYV1bQ2NdKSA7OwogCQlbV3ddW1BwXVtBYV0pIDs7CisJCS1bQWFdW0Nj XVtDY11bRWVdW1BwXVtUdF1fW1JyXVtUdF1bQWFdW0RkXVtWdl0pIDs7CiAJCSopCiAJCQlfYXJn cz0iJF9hcmdzICRfYXJnIgogCQkJOzsKQEAgLTI4Niw2ICsyOTQsMTIgQEAKIAogCWZvciBfYXJn IGluICRfdG1wYXJnczsgZG8KIAkJY2FzZSAkX2FyZyBpbgorCQlbTm5dW09vXVtBYV1bVXVdW1R0 XVtPb118W05uXVtPb11bRGRdW0hoXVtDY11bUHBdKQorCQkJcmV0dXJuIDEKKwkJCTs7CisJCVtB YV1bVXVdW1R0XVtPb10pCisJCQlyZXR1cm4gMAorCQkJOzsKIAkJW0RkXVtIaF1bQ2NdW1BwXSkK IAkJCXJldHVybiAwCiAJCQk7OwpAQCAtMjk4LDYgKzMxMiwxMCBAQAogCQllc2FjCiAJZG9uZQog CisJaWYgY2hlY2t5ZXNubyBpcHY0X2RoY3BfZGVmYXVsdF9lbmFibGU7IHRoZW4KKwkJcmV0dXJu IDAKKwlmaQorCiAJcmV0dXJuIDEKIH0KIApAQCAtNDEwLDYgKzQyOCwxNiBAQAogCQlyZXR1cm4g MQogCWZpCiAKKwkjIGJhY2t3YXJkIGNvbXBhdGliaWxpdHk6ICRpcHY2X2VuYWJsZQorCWNhc2Ug JGlwdjZfZW5hYmxlIGluCisJW1l5XVtFZV1bU3NdfFtUdF1bUnJdW1V1XVtFZV18W09vXVtObl18 MSkKKwkJcmV0dXJuIDAKKwkJOzsKKwlbTm5dW09vXXxbRmZdW0FhXVtMbF1bU3NdW0VlXXxbT29d W0ZmXVtGZl18MCkKKwkJcmV0dXJuIDEKKwkJOzsKKwllc2FjCisKIAkjIGxvMCBpcyBhbHdheXMg SVB2Ni1lbmFibGVkCiAJY2FzZSAkX2lmIGluCiAJbG8wKQpAQCAtNDUwLDYgKzQ3OCw3IEBACiAj IGlwdjZfYXV0b2NvbmZpZiBpZgogIwlSZXR1cm5zIDAgaWYgdGhlIGludGVyZmFjZSBzaG91bGQg YmUgY29uZmlndXJlZCBmb3IgSVB2NiB3aXRoCiAjCVN0YXRlbGVzcyBBZGRyZXNzIENvbmZpZ3Vy YXRpb24sIDEgb3RoZXJ3aXNlLgorIwlDaGVja3MgcGVyLWludGVyZmFjZSBzZXR0aW5nIGZpcnN0 LCB0aGVuIGdsb2JhbCBkZWZhdWx0CiBpcHY2X2F1dG9jb25maWYoKQogewogCWxvY2FsIF9pZiBf dG1wYXJncyBfYXJnCkBAIC00ODMsMzAgKzUxMiw3MyBAQAogCiAJIyBiYWNrd2FyZCBjb21wYXRp YmlsaXR5OiAkaXB2Nl9lbmFibGUKIAljYXNlICRpcHY2X2VuYWJsZSBpbgotCVtZeV1bRWVdW1Nz XSkKKwlbWXldW0VlXVtTc118W1R0XVtScl1bVXVdW0VlXXxbT29dW05uXXwxKQogCQlyZXR1cm4g MAogCQk7OworCVtObl1bT29dfFtGZl1bQWFdW0xsXVtTc11bRWVdfFtPb11bRmZdW0ZmXXwwKQor CQlyZXR1cm4gMQorCQk7OwogCWVzYWMKIAogCV90bXBhcmdzPWBfaWZjb25maWdfZ2V0YXJncyAk X2lmIGlwdjZgCiAJZm9yIF9hcmcgaW4gJF90bXBhcmdzOyBkbwogCQljYXNlICRfYXJnIGluCi0J CWFjY2VwdF9ydGFkdikKKwkJW05uXVtPb11bQWFdW1V1XVtUdF1bT29dfFtObl1bT29dW1NzXVtM bF1bQWFdW0FhXVtDY10pCisJCQlyZXR1cm4gMQorCQkJOzsKKwkJLVtBYV1bQ2NdW0NjXVtFZV1b UHBdW1R0XV9bUnJdW1R0XVtBYV1bRGRdW1Z2XSkKKwkJCXJldHVybiAxCisJCQk7OworCQlbQWFd W1V1XVtUdF1bT29dfFtTc11bTGxdW0FhXVtBYV1bQ2NdKQorIAkJCXJldHVybiAwCisgCQkJOzsK KwkJW0FhXVtDY11bQ2NdW0VlXVtQcF1bVHRdX1tScl1bVHRdW0FhXVtEZF1bVnZdKQogCQkJcmV0 dXJuIDAKIAkJCTs7CiAJCWVzYWMKIAlkb25lCisgCisJX3RtcGFyZ3M9YF9pZmNvbmZpZ19nZXRh cmdzICRfaWZgCisgICAgICAgIGZvciBfYXJnIGluICRfdG1wYXJnczsgZG8KKyAgICAgICAgICAg ICAgICBjYXNlICRfYXJnIGluCisJCVtObl1bT29dW0FhXVtVdV1bVHRdW09vXXxbTm5dW09vXVtT c11bTGxdW0FhXVtBYV1bQ2NdKQorCQkJcmV0dXJuIDEKKwkJCTs7CisJCS1bQWFdW0NjXVtDY11b RWVdW1BwXVtUdF1fW1JyXVtUdF1bQWFdW0RkXVtWdl0pCisJCQlyZXR1cm4gMQorCQkJOzsKKwkJ W0FhXVtVdV1bVHRdW09vXXxbU3NdW0xsXVtBYV1bQWFdW0NjXSkKKyAJCQlyZXR1cm4gMAorIAkJ CTs7CisJCVtBYV1bQ2NdW0NjXVtFZV1bUHBdW1R0XV9bUnJdW1R0XVtBYV1bRGRdW1Z2XSkKKwkJ CXJldHVybiAwCisJCQk7OworCQllc2FjCisgICAgICAgIGRvbmUKIAotCSMgYmFja3dhcmQgY29t cGF0aWJpbGl0eTogJGlwdjZfaWZjb25maWdfSUYKLQlfdG1wYXJncz1gZ2V0X2lmX3ZhciAkX2lm IGlwdjZfaWZjb25maWdfSUZgCi0JZm9yIF9hcmcgaW4gJF90bXBhcmdzOyBkbwotCQljYXNlICRf YXJnIGluCi0JCWFjY2VwdF9ydGFkdikKKyAJIyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5OiAkaXB2 Nl9pZmNvbmZpZ19JRgorIAlfdG1wYXJncz1gZ2V0X2lmX3ZhciAkX2lmIGlwdjZfaWZjb25maWdf SUZgCisgCWZvciBfYXJnIGluICRfdG1wYXJnczsgZG8KKyAJCWNhc2UgJF9hcmcgaW4KKwkJW05u XVtPb11bQWFdW1V1XVtUdF1bT29dfFtObl1bT29dW1NzXVtMbF1bQWFdW0FhXVtDY10pCisJCQly ZXR1cm4gMQorCQkJOzsKKwkJLVtBYV1bQ2NdW0NjXVtFZV1bUHBdW1R0XV9bUnJdW1R0XVtBYV1b RGRdW1Z2XSkKKwkJCXJldHVybiAxCisJCQk7OworCQlbQWFdW1V1XVtUdF1bT29dfFtTc11bTGxd W0FhXVtBYV1bQ2NdKQorIAkJCXJldHVybiAwCisgCQkJOzsKKwkJW0FhXVtDY11bQ2NdW0VlXVtQ cF1bVHRdX1tScl1bVHRdW0FhXVtEZF1bVnZdKQogCQkJcmV0dXJuIDAKIAkJCTs7CiAJCWVzYWMK IAlkb25lCiAKKwlpZiBjaGVja3llc25vIGlwdjZfc2xhYWNfZGVmYXVsdF9lbmFibGU7IHRoZW4K KwkJcmV0dXJuIDAKKwlmaQorCQogCXJldHVybiAxCiB9CiAKQEAgLTU0Myw3ICs2MTUsNiBAQAog CWlmICEgaXB2NmlmICRfaWY7IHRoZW4KIAkJcmV0dXJuIDAKIAlmaQotCiAJaWZhbGlhc191cCAk e19pZn0gaW5ldDYgJiYgX3JldD0wCiAJaXB2Nl9wcmVmaXhfaG9zdGlkX2FkZHJfdXAgJHtfaWZ9 ICYmIF9yZXQ9MAogCWlwdjZfYWNjZXB0X3J0YWR2X3VwICR7X2lmfSAmJiBfcmV0PTAKQEAgLTcy NSwxMiArNzk2LDE2IEBACiAJIyBpZmNvbmZpZ19JRl9hbGlhc04gd2hpY2ggc3RhcnRzIHdpdGgg ImluZXQ2IgogCWFsaWFzPTAKIAl3aGlsZSA6IDsgZG8KLQkJaWZjb25maWdfYXJncz1gZ2V0X2lm X3ZhciAkMSBpZmNvbmZpZ19JRl9hbGlhcyR7YWxpYXN9YAorCQlpZmNvbmZpZ19hcmdzPWBnZXRf aWZfdmFyICQxIGlmY29uZmlnX0lGX2lwdjZfYWxpYXMke2FsaWFzfWAKIAkJY2FzZSAiJHtpZmNv bmZpZ19hcmdzfSIgaW4KKwkJIiIpCisJCQlicmVhaworCQkJOzsKIAkJaW5ldDZcICopCiAJCQlp ZmNvbmZpZyAkMSAke2lmY29uZmlnX2FyZ3N9IGFsaWFzICYmIF9yZXQ9MAogCQkJOzsKLQkJIiIp CisJCSopCisJCQlpZmNvbmZpZyAkMSBpbmV0NiAke2lmY29uZmlnX2FyZ3N9IGFsaWFzICYmIF9y ZXQ9MAogCQkJYnJlYWsKIAkJCTs7CiAJCWVzYWMKQEAgLTgxNiwxMyArODkxLDE2IEBACiAJIyBp ZmNvbmZpZ19JRl9hbGlhc04gd2hpY2ggc3RhcnRzIHdpdGggImluZXQ2IgogCWFsaWFzPTAKIAl3 aGlsZSA6IDsgZG8KLQkJaWZjb25maWdfYXJncz1gZ2V0X2lmX3ZhciAkMSBpZmNvbmZpZ19JRl9h bGlhcyR7YWxpYXN9YAorCQlpZmNvbmZpZ19hcmdzPWBnZXRfaWZfdmFyICQxIGlmY29uZmlnX0lG X2lwdjZfYWxpYXMke2FsaWFzfWAKIAkJY2FzZSAiJHtpZmNvbmZpZ19hcmdzfSIgaW4KKwkJIiIp CisJCQlicmVhaworCQkJOzsKIAkJaW5ldDZcICopCiAJCQlpZmNvbmZpZyAkMSAke2lmY29uZmln X2FyZ3N9IC1hbGlhcyAmJiBfcmV0PTAKIAkJCTs7Ci0JCSIiKQotCQkJYnJlYWsKKwkJKikKKwkJ CWlmY29uZmlnICQxIGluZXQ2ICR7aWZjb25maWdfYXJnc30gLWFsaWFzICYmIF9yZXQ9MAogCQkJ OzsKIAkJZXNhYwogCQlhbGlhcz0kKCgke2FsaWFzfSArIDEpKQpJbmRleDogZXRjL2RlZmF1bHRz L3JjLmNvbmYKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PQotLS0gZXRjL2RlZmF1bHRzL3JjLmNvbmYJKHJldmlzaW9uIDIw NTAxOSkKKysrIGV0Yy9kZWZhdWx0cy9yYy5jb25mCSh3b3JraW5nIGNvcHkpCkBAIC0xNTgsNiAr MTU4LDggQEAKIGR1bW15bmV0X2VuYWJsZT0iTk8iCQkjIExvYWQgdGhlIGR1bW15bmV0KDQpIG1v ZHVsZQogaXBfcG9ydHJhbmdlX2ZpcnN0PSJOTyIJCSMgU2V0IGZpcnN0IGR5bmFtaWNhbGx5IGFs bG9jYXRlZCBwb3J0CiBpcF9wb3J0cmFuZ2VfbGFzdD0iTk8iCQkjIFNldCBsYXN0IGR5bmFtaWNh bGx5IGFsbG9jYXRlZCBwb3J0CitpcHY0X2RoY3BfZGVmYXVsdF9lbmFibGU9Ik5PIgkjIFNldCB0 byBZRVMgdG8gZGVmYXVsdCBhbGwgaW50ZXJmYWNlcworCQkJCSMgdG8gYXV0b21hdGljYWxseSB1 c2UgREhDUCBmb3IgSVB2NAogaWtlX2VuYWJsZT0iTk8iCQkJIyBFbmFibGUgSUtFIGRhZW1vbiAo dXN1YWxseSByYWNvb24gb3IgaXNha21wZCkKIGlrZV9wcm9ncmFtPSIvdXNyL2xvY2FsL3NiaW4v aXNha21wZCIJIyBQYXRoIHRvIElLRSBkYWVtb24KIGlrZV9mbGFncz0iIgkJCSMgQWRkaXRpb25h bCBmbGFncyBmb3IgSUtFIGRhZW1vbgpAQCAtNDM5LDggKzQ0MSwxMCBAQAogaWNtcF9ibWNhc3Rl Y2hvPSJOTyIJIyByZXNwb25kIHRvIGJyb2FkY2FzdCBwaW5nIHBhY2tldHMKIAogIyMjIElQdjYg b3B0aW9uczogIyMjCi1pcHY2X25ldHdvcmtfaW50ZXJmYWNlcz0ibm9uZSIJIyBMaXN0IG9mIElQ djYgbmV0d29yayBpbnRlcmZhY2VzCitpcHY2X25ldHdvcmtfaW50ZXJmYWNlcz0iYXV0byIJIyBM aXN0IG9mIElQdjYgbmV0d29yayBpbnRlcmZhY2VzCiAJCQkJIyAob3IgImF1dG8iIG9yICJub25l IikuCitpcHY2X3NsYWFjX2RlZmF1bHRfZW5hYmxlPSJOTyIgICMgU2V0IHRvIFlFUyB0byBlbmFi bGUgSVB2NiBTTEFBQy9hY2NlcHRfcnRhZHYKKwkJCQkjIG9uIGFsbCBpbnRlcmZhY2VzIGJ5IGRl ZmF1bHQKIGlwdjZfZGVmYXVsdHJvdXRlcj0iTk8iCQkjIFNldCB0byBJUHY2IGRlZmF1bHQgZ2F0 ZXdheSAob3IgTk8pLgogI2lwdjZfZGVmYXVsdHJvdXRlcj0iMjAwMjpjMDU4OjYzMDE6OiIJIyBV c2UgdGhpcyBmb3IgNnRvNCAoUkZDIDMwNjgpCiBpcHY2X3N0YXRpY19yb3V0ZXM9IiIJCSMgU2V0 IHRvIHN0YXRpYyByb3V0ZSBsaXN0IChvciBsZWF2ZSBlbXB0eSkuCg== --001485f630826160b6048193660e Content-Type: text/plain; charset=US-ASCII; name="ipv6-network.nobackcompat.diff.txt" Content-Disposition: attachment; filename="ipv6-network.nobackcompat.diff.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g6oikve61 SW5kZXg6IGV0Yy9uZXR3b3JrLnN1YnIKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gZXRjL25ldHdvcmsuc3Vicgko cmV2aXNpb24gMjA1MDE5KQorKysgZXRjL25ldHdvcmsuc3Vicgkod29ya2luZyBjb3B5KQpAQCAt OTYsNDUgKzk2LDM3IEBACiAJIyBpbmV0NiBzcGVjaWZpYwogCWlmIGFmZXhpc3RzIGluZXQ2OyB0 aGVuCiAJCWlmIGlwdjZpZiAkMTsgdGhlbgotCQkJaWYgY2hlY2t5ZXNubyBpcHY2X2dhdGV3YXlf ZW5hYmxlOyB0aGVuCisJCQlpZiBpcHY2X2F1dG9jb25maWYgJDE7IHRoZW4KKwkJCQlfaXB2Nl9v cHRzPSJhY2NlcHRfcnRhZHYiCisJCQllbHNlCiAJCQkJX2lwdjZfb3B0cz0iLWFjY2VwdF9ydGFk diIKIAkJCWZpCi0JCWVsc2UKLQkJCWlmIGNoZWNreWVzbm8gaXB2Nl9wcmVmZXI7IHRoZW4KLQkJ CQlfaXB2Nl9vcHRzPSItaWZkaXNhYmxlZCIKLQkJCWVsc2UKLQkJCQlfaXB2Nl9vcHRzPSJpZmRp c2FibGVkIgorCisJCQkjIGlmY29uZmlnX0lGX2lwdjYKKwkJCWlmY29uZmlnX2FyZ3M9YGlmY29u ZmlnX2dldGFyZ3MgJDEgaXB2NmAKKwkJCWlmIFsgLW4gIiR7aWZjb25maWdfYXJnc30iIF07IHRo ZW4KKwkJCQlpZmNvbmZpZyAkMSBpbmV0NiAtaWZkaXNhYmxlZAorCQkJCSMgQmUgbmljZSB0byB1 c2VycyAob3B0aW9uYWwgaW5ldDYpCisJCQkJY2FzZSAke2lmY29uZmlnX2FyZ3N9IGluCisJCQkJ CWluZXQ2XCAqKQorCQkJCQkJaWZjb25maWcgJDEgJHtpZmNvbmZpZ19hcmdzfQorCQkJCQkJOzsK KwkJCQkJKikKKwkJCQkJCWlmY29uZmlnICQxIGluZXQ2IFwKKwkJCQkJCSAke2lmY29uZmlnX2Fy Z3N9CisJCQkJCQk7OworCQkJCWVzYWMKKwkJCQlfY2ZnPTAKIAkJCWZpCiAKLQkJCSMgYmFja3dh cmQgY29tcGF0aWJpbGl0eTogJGlwdjZfZW5hYmxlCi0JCQljYXNlICRpcHY2X2VuYWJsZSBpbgot CQkJW1l5XVtFZV1bU3NdKQotCQkJCV9pcHY2X29wdHM9IiR7X2lwdjZfb3B0c30gYWNjZXB0X3J0 YWR2IgotCQkJCTs7Ci0JCQllc2FjCisJCWVsc2UKKwkJCV9pcHY2X29wdHM9ImlmZGlzYWJsZWQi CiAJCWZpCiAKIAkJaWYgWyAtbiAiJHtfaXB2Nl9vcHRzfSIgXTsgdGhlbgogCQkJaWZjb25maWcg JDEgaW5ldDYgJHtfaXB2Nl9vcHRzfQogCQlmaQotCi0JCSMgaWZjb25maWdfSUZfaXB2NgotCQlp ZmNvbmZpZ19hcmdzPWBpZmNvbmZpZ19nZXRhcmdzICQxIGlwdjZgCi0JCWlmIFsgLW4gIiR7aWZj b25maWdfYXJnc30iIF07IHRoZW4KLQkJCWlmY29uZmlnICQxIGluZXQ2IC1pZmRpc2FibGVkCi0J CQlpZmNvbmZpZyAkMSAke2lmY29uZmlnX2FyZ3N9Ci0JCQlfY2ZnPTAKLQkJZmkKLQotCQkjIGJh Y2t3YXJkIGNvbXBhdGlibGl0eTogJGlwdjZfaWZjb25maWdfSUYKLQkJaWZjb25maWdfYXJncz1g Z2V0X2lmX3ZhciAkMSBpcHY2X2lmY29uZmlnX0lGYAotCQlpZiBbIC1uICIke2lmY29uZmlnX2Fy Z3N9IiBdOyB0aGVuCi0JCQl3YXJuICJcJGlwdjZfaWZjb25maWdfJDEgaXMgb2Jzb2xldGUuIiBc Ci0JCQkgICAgIiAgVXNlIGlmY29uZmlnXyQxX2lwdjYgaW5zdGVhZC4iCi0JCQlpZmNvbmZpZyAk MSBpbmV0NiAtaWZkaXNhYmxlZAotCQkJaWZjb25maWcgJDEgaW5ldDYgJHtpZmNvbmZpZ19hcmdz fQotCQkJX2NmZz0wCi0JCWZpCisJCQogCWZpCiAKIAlpZiBbICR7X2NmZ30gLWVxIDAgXTsgdGhl bgpAQCAtMjQ0LDExICsyMzYsMTcgQEAKIAogCWZvciBfYXJnIGluICRfdG1wYXJnczsgZG8KIAkJ Y2FzZSAkX2FyZyBpbgorCQlbQWFdW1V1XVtUdF1bT29dKSA7OworCQlbQWFdW0NjXVtDY11bRWVd W1BwXVtUdF1fW1JyXVtUdF1bQWFdW0RkXVtWdl0pIDs7CiAJCVtEZF1bSGhdW0NjXVtQcF0pIDs7 CiAJCVtObl1bT29dW0FhXVtVdV1bVHRdW09vXSkgOzsKKwkJW05uXVtPb11bRGRdW0hoXVtDY11b UHBdKSA7OworCQlbTm5dW09vXVtTc11bTGxdW0FhXVtBYV1bQ2NdKSA7OwogCQlbTm5dW09vXVtT c11bWXldW05uXVtDY11bRGRdW0hoXVtDY11bUHBdKSA7OwogCQlbU3NdW1l5XVtObl1bQ2NdW0Rk XVtIaF1bQ2NdW1BwXSkgOzsKKwkJW1NzXVtMbF1bQWFdW0FhXVtDY10pIDs7CiAJCVtXd11bUHBd W0FhXSkgOzsKKwkJLVtBYV1bQ2NdW0NjXVtFZV1bUHBdW1R0XV9bUnJdW1R0XVtBYV1bRGRdW1Z2 XSkgOzsKIAkJKikKIAkJCV9hcmdzPSIkX2FyZ3MgJF9hcmciCiAJCQk7OwpAQCAtMjg2LDYgKzI4 NCwxMiBAQAogCiAJZm9yIF9hcmcgaW4gJF90bXBhcmdzOyBkbwogCQljYXNlICRfYXJnIGluCisJ CVtObl1bT29dW0FhXVtVdV1bVHRdW09vXXxbTm5dW09vXVtEZF1bSGhdW0NjXVtQcF0pCisJCQly ZXR1cm4gMQorCQkJOzsKKwkJW0FhXVtVdV1bVHRdW09vXSkKKwkJCXJldHVybiAwCisJCQk7Owog CQlbRGRdW0hoXVtDY11bUHBdKQogCQkJcmV0dXJuIDAKIAkJCTs7CkBAIC0yOTgsNiArMzAyLDEw IEBACiAJCWVzYWMKIAlkb25lCiAKKwlpZiBjaGVja3llc25vIGlwdjRfZGhjcF9kZWZhdWx0X2Vu YWJsZTsgdGhlbgorCQlyZXR1cm4gMAorCWZpCisKIAlyZXR1cm4gMQogfQogCkBAIC00MjMsMTIg KzQzMSw2IEBACiAJCXJldHVybiAwCiAJZmkKIAotCSMgYmFja3dhcmQgY29tcGF0aWJpbGl0eTog VHJ1ZSBpZiAkaXB2Nl9pZmNvbmZpZ19JRiBpcyBkZWZpbmVkLgotCV90bXBhcmdzPWBnZXRfaWZf dmFyICRfaWYgaXB2Nl9pZmNvbmZpZ19JRmAKLQlpZiBbIC1uICIke190bXBhcmdzfSIgXTsgdGhl bgotCQlyZXR1cm4gMAotCWZpCi0KIAljYXNlICIke2lwdjZfbmV0d29ya19pbnRlcmZhY2VzfSIg aW4KIAlbQWFdW1V1XVtUdF1bT29dKQogCQlyZXR1cm4gMApAQCAtNDUwLDYgKzQ1Miw3IEBACiAj IGlwdjZfYXV0b2NvbmZpZiBpZgogIwlSZXR1cm5zIDAgaWYgdGhlIGludGVyZmFjZSBzaG91bGQg YmUgY29uZmlndXJlZCBmb3IgSVB2NiB3aXRoCiAjCVN0YXRlbGVzcyBBZGRyZXNzIENvbmZpZ3Vy YXRpb24sIDEgb3RoZXJ3aXNlLgorIwlDaGVja3MgcGVyLWludGVyZmFjZSBzZXR0aW5nIGZpcnN0 LCB0aGVuIGdsb2JhbCBkZWZhdWx0CiBpcHY2X2F1dG9jb25maWYoKQogewogCWxvY2FsIF9pZiBf dG1wYXJncyBfYXJnCkBAIC00ODEsMzIgKzQ4NCw0NiBAQAogCQk7OwogCWVzYWMKIAotCSMgYmFj a3dhcmQgY29tcGF0aWJpbGl0eTogJGlwdjZfZW5hYmxlCi0JY2FzZSAkaXB2Nl9lbmFibGUgaW4K LQlbWXldW0VlXVtTc10pCi0JCXJldHVybiAwCi0JCTs7Ci0JZXNhYwotCiAJX3RtcGFyZ3M9YF9p ZmNvbmZpZ19nZXRhcmdzICRfaWYgaXB2NmAKIAlmb3IgX2FyZyBpbiAkX3RtcGFyZ3M7IGRvCiAJ CWNhc2UgJF9hcmcgaW4KLQkJYWNjZXB0X3J0YWR2KQorCQlbTm5dW09vXVtBYV1bVXVdW1R0XVtP b118W05uXVtPb11bU3NdW0xsXVtBYV1bQWFdW0NjXSkKKwkJCXJldHVybiAxCisJCQk7OworCQkt W0FhXVtDY11bQ2NdW0VlXVtQcF1bVHRdX1tScl1bVHRdW0FhXVtEZF1bVnZdKQorCQkJcmV0dXJu IDEKKwkJCTs7CisJCVtBYV1bVXVdW1R0XVtPb118W1NzXVtMbF1bQWFdW0FhXVtDY10pCisgCQkJ cmV0dXJuIDAKKyAJCQk7OworCQlbQWFdW0NjXVtDY11bRWVdW1BwXVtUdF1fW1JyXVtUdF1bQWFd W0RkXVtWdl0pCiAJCQlyZXR1cm4gMAogCQkJOzsKIAkJZXNhYwogCWRvbmUKLQotCSMgYmFja3dh cmQgY29tcGF0aWJpbGl0eTogJGlwdjZfaWZjb25maWdfSUYKLQlfdG1wYXJncz1gZ2V0X2lmX3Zh ciAkX2lmIGlwdjZfaWZjb25maWdfSUZgCi0JZm9yIF9hcmcgaW4gJF90bXBhcmdzOyBkbwotCQlj YXNlICRfYXJnIGluCi0JCWFjY2VwdF9ydGFkdikKKyAKKwlfdG1wYXJncz1gX2lmY29uZmlnX2dl dGFyZ3MgJF9pZmAKKyAgICAgICAgZm9yIF9hcmcgaW4gJF90bXBhcmdzOyBkbworICAgICAgICAg ICAgICAgIGNhc2UgJF9hcmcgaW4KKwkJW05uXVtPb11bQWFdW1V1XVtUdF1bT29dfFtObl1bT29d W1NzXVtMbF1bQWFdW0FhXVtDY10pCisJCQlyZXR1cm4gMQorCQkJOzsKKwkJLVtBYV1bQ2NdW0Nj XVtFZV1bUHBdW1R0XV9bUnJdW1R0XVtBYV1bRGRdW1Z2XSkKKwkJCXJldHVybiAxCisJCQk7Owor CQlbQWFdW1V1XVtUdF1bT29dfFtTc11bTGxdW0FhXVtBYV1bQ2NdKQorIAkJCXJldHVybiAwCisg CQkJOzsKKwkJW0FhXVtDY11bQ2NdW0VlXVtQcF1bVHRdX1tScl1bVHRdW0FhXVtEZF1bVnZdKQog CQkJcmV0dXJuIDAKIAkJCTs7CiAJCWVzYWMKLQlkb25lCisgICAgICAgIGRvbmUKIAorCWlmIGNo ZWNreWVzbm8gaXB2Nl9zbGFhY19kZWZhdWx0X2VuYWJsZTsgdGhlbgorCQlyZXR1cm4gMAorCWZp CisJCiAJcmV0dXJuIDEKIH0KIApAQCAtNTQzLDcgKzU2MCw2IEBACiAJaWYgISBpcHY2aWYgJF9p ZjsgdGhlbgogCQlyZXR1cm4gMAogCWZpCi0KIAlpZmFsaWFzX3VwICR7X2lmfSBpbmV0NiAmJiBf cmV0PTAKIAlpcHY2X3ByZWZpeF9ob3N0aWRfYWRkcl91cCAke19pZn0gJiYgX3JldD0wCiAJaXB2 Nl9hY2NlcHRfcnRhZHZfdXAgJHtfaWZ9ICYmIF9yZXQ9MApAQCAtNzI1LDMwICs3NDEsMTcgQEAK IAkjIGlmY29uZmlnX0lGX2FsaWFzTiB3aGljaCBzdGFydHMgd2l0aCAiaW5ldDYiCiAJYWxpYXM9 MAogCXdoaWxlIDogOyBkbwotCQlpZmNvbmZpZ19hcmdzPWBnZXRfaWZfdmFyICQxIGlmY29uZmln X0lGX2FsaWFzJHthbGlhc31gCisJCWlmY29uZmlnX2FyZ3M9YGdldF9pZl92YXIgJDEgaWZjb25m aWdfSUZfaXB2Nl9hbGlhcyR7YWxpYXN9YAogCQljYXNlICIke2lmY29uZmlnX2FyZ3N9IiBpbgot CQlpbmV0NlwgKikKLQkJCWlmY29uZmlnICQxICR7aWZjb25maWdfYXJnc30gYWxpYXMgJiYgX3Jl dD0wCi0JCQk7OwogCQkiIikKIAkJCWJyZWFrCiAJCQk7OwotCQllc2FjCi0JCWFsaWFzPSQoKCR7 YWxpYXN9ICsgMSkpCi0JZG9uZQotCi0JIyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5OiBpcHY2X2lm Y29uZmlnX0lGX2FsaWFzTi4KLQlhbGlhcz0wCi0Jd2hpbGUgOiA7IGRvCi0JCWlmY29uZmlnX2Fy Z3M9YGdldF9pZl92YXIgJDEgaXB2Nl9pZmNvbmZpZ19JRl9hbGlhcyR7YWxpYXN9YAotCQljYXNl ICIke2lmY29uZmlnX2FyZ3N9IiBpbgotCQkiIikKLQkJCWJyZWFrCisJCWluZXQ2XCAqKQorCQkJ aWZjb25maWcgJDEgJHtpZmNvbmZpZ19hcmdzfSBhbGlhcyAmJiBfcmV0PTAKIAkJCTs7CiAJCSop CiAJCQlpZmNvbmZpZyAkMSBpbmV0NiAke2lmY29uZmlnX2FyZ3N9IGFsaWFzICYmIF9yZXQ9MAot CQkJd2FybiAiXCRpcHY2X2lmY29uZmlnXyQxX2FsaWFzJHthbGlhc30gaXMgb2Jzb2xldGUuIiBc Ci0JCQkgICAgIiAgVXNlIGlmY29uZmlnXyQxX2FsaWFzTiBpbnN0ZWFkLiIKKwkJCWJyZWFrCiAJ CQk7OwogCQllc2FjCiAJCWFsaWFzPSQoKCR7YWxpYXN9ICsgMSkpCkBAIC04MTYsMzAgKzgxOSwx NiBAQAogCSMgaWZjb25maWdfSUZfYWxpYXNOIHdoaWNoIHN0YXJ0cyB3aXRoICJpbmV0NiIKIAlh bGlhcz0wCiAJd2hpbGUgOiA7IGRvCi0JCWlmY29uZmlnX2FyZ3M9YGdldF9pZl92YXIgJDEgaWZj b25maWdfSUZfYWxpYXMke2FsaWFzfWAKKwkJaWZjb25maWdfYXJncz1gZ2V0X2lmX3ZhciAkMSBp ZmNvbmZpZ19JRl9pcHY2X2FsaWFzJHthbGlhc31gCiAJCWNhc2UgIiR7aWZjb25maWdfYXJnc30i IGluCi0JCWluZXQ2XCAqKQotCQkJaWZjb25maWcgJDEgJHtpZmNvbmZpZ19hcmdzfSAtYWxpYXMg JiYgX3JldD0wCi0JCQk7OwogCQkiIikKIAkJCWJyZWFrCiAJCQk7OwotCQllc2FjCi0JCWFsaWFz PSQoKCR7YWxpYXN9ICsgMSkpCi0JZG9uZQotCi0JIyBiYWNrd2FyZCBjb21wYXRpYmlsaXR5OiBp cHY2X2lmY29uZmlnX0lGX2FsaWFzTi4KLQlhbGlhcz0wCi0Jd2hpbGUgOiA7IGRvCi0JCWlmY29u ZmlnX2FyZ3M9YGdldF9pZl92YXIgJDEgaXB2Nl9pZmNvbmZpZ19JRl9hbGlhcyR7YWxpYXN9YAot CQljYXNlICIke2lmY29uZmlnX2FyZ3N9IiBpbgotCQkiIikKLQkJCWJyZWFrCisJCWluZXQ2XCAq KQorCQkJaWZjb25maWcgJDEgJHtpZmNvbmZpZ19hcmdzfSAtYWxpYXMgJiYgX3JldD0wCiAJCQk7 OwogCQkqKQogCQkJaWZjb25maWcgJDEgaW5ldDYgJHtpZmNvbmZpZ19hcmdzfSAtYWxpYXMgJiYg X3JldD0wCi0JCQl3YXJuICJcJGlwdjZfaWZjb25maWdfJDFfYWxpYXMke2FsaWFzfSBpcyBvYnNv bGV0ZS4iIFwKLQkJCSAgICAiICBVc2UgaWZjb25maWdfJDFfYWxpYXNOIGluc3RlYWQuIgogCQkJ OzsKIAkJZXNhYwogCQlhbGlhcz0kKCgke2FsaWFzfSArIDEpKQpJbmRleDogZXRjL3JjLmQvbmV0 aWYKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PQotLS0gZXRjL3JjLmQvbmV0aWYJKHJldmlzaW9uIDIwNTAxOSkKKysrIGV0 Yy9yYy5kL25ldGlmCSh3b3JraW5nIGNvcHkpCkBAIC00MSw4ICs0MSw2IEBACiBleHRyYV9jb21t YW5kcz0iY2xvbmV1cCBjbG9uZWRvd24iCiBjbWRpZm49CiAKLXNldF9yY3Zhcl9vYnNvbGV0ZSBp cHY2X2VuYWJsZSBpcHY2X3ByZWZlcgotCiBuZXR3b3JrX3N0YXJ0KCkKIHsKIAkjIFNldCB0aGUg bGlzdCBvZiBpbnRlcmZhY2VzIHRvIHdvcmsgb24uCkluZGV4OiBldGMvcmMuZC9pcDZhZGRyY3Rs Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT0KLS0tIGV0Yy9yYy5kL2lwNmFkZHJjdGwJKHJldmlzaW9uIDIwNTAxOSkKKysr IGV0Yy9yYy5kL2lwNmFkZHJjdGwJKHdvcmtpbmcgY29weSkKQEAgLTIwLDggKzIwLDYgQEAKIHBy ZWZlcl9pcHY2X2NtZD0iaXA2YWRkcmN0bF9wcmVmZXJfaXB2NiIKIHByZWZlcl9pcHY0X2NtZD0i aXA2YWRkcmN0bF9wcmVmZXJfaXB2NCIKIAotc2V0X3JjdmFyX29ic29sZXRlIGlwdjZfZW5hYmxl IGlwdjZfcHJlZmVyCi0KIGlwNmFkZHJjdGxfcHJlZmVyX2lwdjYoKQogewogCWFmZXhpc3RzIGlu ZXQ2IHx8IHJldHVybiAwCkluZGV4OiBldGMvZGVmYXVsdHMvcmMuY29uZgo9PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t LSBldGMvZGVmYXVsdHMvcmMuY29uZgkocmV2aXNpb24gMjA1MDE5KQorKysgZXRjL2RlZmF1bHRz L3JjLmNvbmYJKHdvcmtpbmcgY29weSkKQEAgLTE1OCw2ICsxNTgsOCBAQAogZHVtbXluZXRfZW5h YmxlPSJOTyIJCSMgTG9hZCB0aGUgZHVtbXluZXQoNCkgbW9kdWxlCiBpcF9wb3J0cmFuZ2VfZmly c3Q9Ik5PIgkJIyBTZXQgZmlyc3QgZHluYW1pY2FsbHkgYWxsb2NhdGVkIHBvcnQKIGlwX3BvcnRy YW5nZV9sYXN0PSJOTyIJCSMgU2V0IGxhc3QgZHluYW1pY2FsbHkgYWxsb2NhdGVkIHBvcnQKK2lw djRfZGhjcF9kZWZhdWx0X2VuYWJsZT0iTk8iCSMgU2V0IHRvIFlFUyB0byBkZWZhdWx0IGFsbCBp bnRlcmZhY2VzCisJCQkJIyB0byBhdXRvbWF0aWNhbGx5IHVzZSBESENQIGZvciBJUHY0CiBpa2Vf ZW5hYmxlPSJOTyIJCQkjIEVuYWJsZSBJS0UgZGFlbW9uICh1c3VhbGx5IHJhY29vbiBvciBpc2Fr bXBkKQogaWtlX3Byb2dyYW09Ii91c3IvbG9jYWwvc2Jpbi9pc2FrbXBkIgkjIFBhdGggdG8gSUtF IGRhZW1vbgogaWtlX2ZsYWdzPSIiCQkJIyBBZGRpdGlvbmFsIGZsYWdzIGZvciBJS0UgZGFlbW9u CkBAIC00MzksOCArNDQxLDEwIEBACiBpY21wX2JtY2FzdGVjaG89Ik5PIgkjIHJlc3BvbmQgdG8g YnJvYWRjYXN0IHBpbmcgcGFja2V0cwogCiAjIyMgSVB2NiBvcHRpb25zOiAjIyMKLWlwdjZfbmV0 d29ya19pbnRlcmZhY2VzPSJub25lIgkjIExpc3Qgb2YgSVB2NiBuZXR3b3JrIGludGVyZmFjZXMK K2lwdjZfbmV0d29ya19pbnRlcmZhY2VzPSJhdXRvIgkjIExpc3Qgb2YgSVB2NiBuZXR3b3JrIGlu dGVyZmFjZXMKIAkJCQkjIChvciAiYXV0byIgb3IgIm5vbmUiKS4KK2lwdjZfc2xhYWNfZGVmYXVs dF9lbmFibGU9Ik5PIiAgIyBTZXQgdG8gWUVTIHRvIGVuYWJsZSBJUHY2IFNMQUFDL2FjY2VwdF9y dGFkdgorCQkJCSMgb24gYWxsIGludGVyZmFjZXMgYnkgZGVmYXVsdAogaXB2Nl9kZWZhdWx0cm91 dGVyPSJOTyIJCSMgU2V0IHRvIElQdjYgZGVmYXVsdCBnYXRld2F5IChvciBOTykuCiAjaXB2Nl9k ZWZhdWx0cm91dGVyPSIyMDAyOmMwNTg6NjMwMTo6IgkjIFVzZSB0aGlzIGZvciA2dG80IChSRkMg MzA2OCkKIGlwdjZfc3RhdGljX3JvdXRlcz0iIgkJIyBTZXQgdG8gc3RhdGljIHJvdXRlIGxpc3Qg KG9yIGxlYXZlIGVtcHR5KS4K --001485f630826160b6048193660e--